|
I. Controller ÀÇ ÀǹÌ
1.
CPU?
(1) CPUÀÇ µ¿ÀÛ :
Central Processing Unit
CPU´Â
±âº»ÀûÀ¸·Î GUM, ALU(Arithmetical and Logical Unit)¿Í Bus
Controller, Instruction Decoder, Register File(include
SFRs) µîÀ¸·Î ±¸¼ºµÇ¾î Àִµ¥, ¿©±â¼ ÀÌ¿¡ ´ëÇØ °£´ÜÈ÷ ¾Ë¾Æº¸ÀÚ
ALU
: CPUÀÇ ÇÙ½ÉÀûÀÎ? ºÎºÐÀ¸·Î¼ º¸Åë »ê¼ú ¿¬»ê(+, -, *, /)°ú ³í¸® ¿¬»ê(AND,
OR, Ex-OR, Complement, Shift, etc..) À» ´ã´çÇÏ°Ô µÇ´Â
ºÎºÐ
Bus
Controller : ³»ºÎ/¿ÜºÎ bus¸¦ Á¦¾îÇÏ´Â ÀåÄ¡·Î¼ CPU°¡ ¸Þ¸ð¸®¸¦ Àаųª ¾µ ¶§,
Address bus¿Í Data bus¸¦ Á¦¾îÇØ¼ data¸¦ Àаųª ¾²µµ·Ï ÇØÁØ´Ù. ÀÌ ¶§ ¿ÜºÎ
¹ö½º¸¦ Á¦¾îÇϱâ À§ÇÑ ½ÅÈ£·Î´Â ALE, RD#, WR#, BHE#, HOLD#, HLDA#
µîÀÌ ÀÖ°í ÀÌ´Â CPU¸¶´Ù Á¶±Ý¾¿ ´Ù¸£´Ù.
Instruction Decoder : instruction À̶õ °£´ÜÈ÷
¸»ÇØ ¸í·ÉÀ» ¶æÇϸç CPU¿¡ µû¶ó instructionÀº ´Ù¸£´Ù. instruction
decoder´Â °£´ÜÈ÷ ¸í·É ÇØ¼® ÀåÄ¡¶ó°í ÇÒ ¼ö ÀÖ´Ù. °¢°¢ÀÇ instructionÀ» ÇØµ¶ÇÏ¿©
CPU°¡ ¾î¶² µ¿ÀÛÀ» ÇÒ °ÍÀΰ¡¸¦ °áÁ¤ÇÏ°Ô ÇØÁØ´Ù.
Register File : CPU³»ºÎÀÇ ÀÏÁ¾ÀÇ RAMÀ¸·Î ¿ÜºÎ ¸Þ¸ð¸®¸¦
accessÇÏ´Â °Í º¸´Ù ºü¸£°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×¸®°í SFR(Special Function
Register)Àº Ư¼ö ±â´ÉÀ» °¡Áø register¸¦ ¸»Çϸç, ÀÌ´Â CPUÀÇ Æ¯¼ö ±â´ÉµéÀ» Á¦¾îÇÒ
¼ö ÀÖ´Â registerÀÌ´Ù.
CPU°¡ ÇÏ´Â
ÀÏÀº °£´ÜÇÏ´Ù. CPU´Â ´Ü¼øÈ÷ memory¿¡¼ ¸í·ÉÀ» Àоî À̸¦ ÇØµ¶ÇÏ°í ½ÇÇàÇÑ´Ù. ¸í·ÉÀ» Àоî¿À±â
À§Çؼ ¿ÜºÎ¿¡ data BUS¿Í address BUS°¡ ÀÖ°í, °¢Á¾ Á¦¾î ½ÅÈ£°¡ ÀÖ´Ù. ÀÌ ¶§ ÀÌ
¸í·ÉÀ» instruction ȤÀº ±â°è¾î¶ó°í ÇÑ´Ù. ÀÌ´Â CPU¸¸ ¾Æ´Â ¸í·ÉÀ¸·Î »ç¶÷Àº ¾Æ¹«¸®
µé¿©´ÙºÁµµ ¸ð¸¥´Ù. ´ÙÀ½ ±×¸²Àº °£´ÜÇÑ ³ëÀ̸¸ architecture(3-bus
architecture)ÀÇ ¿¹ÀÌ´Ù.

ÀÌ´Â ´Ü¼øÈ÷
CPU°¡
¿ÜºÎ¿¡¼ ¸í·É(instruction)À» ÀдÂ
°úÁ¤À» ³ªÅ¸³½
°ÍÀ¸·Î address´Â
memory¿¡¼ÀÇ instructionÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â °ÍÀ̰í, ¿©±â¿¡¼ ÀÐÇôÁø data´Â instructionÀÌ´Ù. ¶Ç control BUS´Â
ÀÌ
memory¸¦ Á¦¾îÇϱâ
À§ÇÑ °ÍÀÌ´Ù.
(À§ÀÇ BUS controller¿¡¼ ¿ÜºÎ·Î
³ª¿À´Â ºÎºÐ)
ÀÌ °úÁ¤(CPU°¡ ¿ÜºÎ¿¡¼ instructionÀ» ÀдÂ
°úÁ¤)À» Fetch¶ó°í ÇÑ´Ù.
data¸¦
memory³ª IO¿¡ ¾²°Å³ª Àоî¿À´Â °úÁ¤ ¿ª½Ã À§¿Í ºñ½ÁÇÏ´Ù. ÀÌ ¶§ memory´Â programÀÌ ¾Æ´Ï¶ó
±×´ë·ÎÀÇ data°¡ µÈ´Ù. IO¿ª½Ã ¸¶Âù°¡ÁöÀÌ´Ù.
(2) ±â°è¾î,
¾î¼Àºí·¯(Assembler)
À§¿¡¼ CPU´Â
instructionÀ»
Àаí À̸¦ ½ÇÇàÇÏ´Â
°ÍÀ»
¾Ë¾Ò´Ù. ÀÌ CPU¸¸
¾Ë
¼ö ÀÖ´Â Low
levelÀÇ ¾ð¾î°¡
±â°è¾îÀÌ´Ù. ¶Ç À§¿¡¼
¾ð±ÞÇÑ
instruction decoder¿¡´Â °¢°¢ÀÇ
instruction¿¡
´ëÇÑ code°¡ Á¤ÀǵǾî ÀÖ´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.
|
instruction
code(Hex) |
function |
|
0FFH |
CPU
reset |
|
0D0H |
¾Æ¹«°Íµµ ÇÏÁö
¾ÊÀ½ |
|
59H |
Á÷Á¢ ¹øÁö ÁöÁ¤ data Àü¼Û |
|
90H |
Return |
Áï, À§ÀÇ ¿¹¿¡¼ º¼
¶§, 0FFH°¡ instructionÀ¸·Î ½ÇÇàµÇ¸é CPU´Â resetÀÌ µÇ°í, 0D0H°¡ instructionÀÌ µÇ¸é CPU´Â ¾Æ¹« °Íµµ
ÇÏÁö ¾Ê°Ô µÈ´Ù.
±×·¸´Ù¸é
»ç¶÷ÀÌ programÀ» ¸¸µé±â À§Çؼ À§¿Í °°ÀÌ °¢°¢ÀÇ codeµé°ú ±×¿¡
´ëÀÀÇÏ´Â ±â´ÉµéÀ» ÀÏÀÏÀÌ Ã£¾Æ°¡¸ç programÀ» Â¥¾ßÇÒ±î?
±×·¸´Ù¸é
programÀÌ
³Ê¹« ¾î·Á¿öÁö°í, ¸»
±×´ë·Î
'»ðÁú'ÀÌ µÉ °ÍÀÌ´Ù.
±×·¡¼
À̸¦ ÇØ°áÇϱâ À§ÇØ
Assembler¶ó´Â
°ÍÀÌ ÀÖ´Ù. ÀÌ´Â
»ç¶÷ÀÌ
Á¤ÇÑ ±ÔÄ¢´ë·Î
programÀ» ¸¸µé¾î¼
±â°è¾î·Î ¹Ù²ãÁÖ´Â ¿ªÇÒÀ»
ÇÑ´Ù.
¾Æ·¡´Â 196¿¡¼ÀÇ ÇÑ
¿¹ÀÌ´Ù. (list
file)
addr
code
line
program
8203
B1000F 76 LDB IOPORT1, #0 ; port1(motor
connected) initialize
77
8206
A10A001C 78
LD EX,
#10
820A
B1801F 79
LDB CH,
#10000000B
820D
B01F0F 80
HH: LDB
IOPORT1, CH ; blink
LED
8210 2806
81 CALL DELAY
8212
95801F 82
XORB CH,
#10000000B
8215
E01CF5 83
DJNZ EX,
HH
84
85
8218 86
MAINL:
87
8218
A100801A 88
DELAY:
LD
AX, #08000H
821C FD
89 DELAY1: NOP
821D FD
90 NOP
821E
E01AFB 91
DJNZ
AX, DELAY1
8221 F0
92 RET
À§ÀÇ 2¹øÂ°
ÁÙÀÇ
³»¿ëÀÌ ¹Ù·Î ±â°è¾î
code·Î¼
ÃÖÁ¾ÀûÀÎ ¸ñÇ¥°¡ µÈ´Ù.
assembler´Â
ÀÌ·± ¿ªÇÒÀ» ÇÑ´Ù.
ÀÌ
¿Ü¿¡µµ compiler³ª
linkerµî¿¡ ´ëÇØ¼
¾Ë °ÍÀÌ´Ù. ÀÌ´Â
assemblerº¸´Ù
´õ ³ôÀº ¼öÁØÀÇ
¾ð¾î¸¦
½ÇÇà °¡´ÉÇÑ code·Î
¸¸µé¾î
ÁÖ´Â °ÍÀÌ´Ù.
Assembler¿¡ ´ëÇØ¼´Â µÞºÎºÐ¿¡¼
´õ¿í ÀÚ¼¼È÷ ´Ù·çµµ·Ï
ÇϰڴÙ.
ÀÌ code´Â
memory¿¡
µé¾î°¡°Ô µÇ°í, CPU´Â
À̸¦
¼ø¼´ë·Î ÀÐ¾î¼ ¸í·ÉÀ»
¼öÇàÇÑ´Ù.
ÀÌ ¶§ CPU´Â
ÇöÀç
ÀÚ½ÅÀÌ ¾î´À À§Ä¡¸¦
ÀаíÀÖ´ÂÁö¸¦
¾Ë¾Æ¾ß
Çϴµ¥, ¿©±â¿¡ ÇÊ¿äÇÑ
°ÍÀÌ
IP(Instruction Pointer)ÀÌ´Ù. IP´Â ÇöÀç ½ÇÇàÁßÀÎ memoryÀÇ address¸¦ ³ªÅ¸³½´Ù. ¶Ç CPU¸¶´Ù °¢°¢ÀÇ reset °ªÀ» °¡Áö°í
ÀÖ´Ù. (Ãʱâ ÇÁ·Î±×·¥ ½ÇÇàÀ§Ä¡¸¦ ¾Ë¾Æ¾ß Çϱ⠶§¹®¿¡)
(3)
Embedded controller
¿äÁò ¿ì¸®°¡
ÈçÈ÷
Á¢ÇÏ´Â CPU´Â
Pentium Âë µÉ
°ÍÀÌ´Ù. º¸Åë
Processor¸¦ CPU¶ó°í Çϴµ¥, processor´Â À§¿¡¼ ¼³¸íÇÑ CPUÀÇ ±â´É¹Û¿¡ ÇÏÁö ¸øÇÑ´Ù. ±×·¯³ª ÀÛÀº systemÀ̳ª ƯÁ¤ÇÑ ¸ñÀûÀÇ control
system¿¡¼´Â
processing ¿ÜÀÇ
±â´ÉµéÀÌ ¸¹ÀÌ ÇÊ¿äÇÏ°Ô µÈ´Ù. µû¶ó¼ ÇÑ chip¾È¿¡ ÀÌ·±
±â´ÉÀ» °¡Áø ÁÖº¯ ÀåÄ¡¸¦
¸ðµÎ ³ÖÀº °ÍÀ» controller¶ó°í ÇÑ´Ù.
ÈçÈ÷ Embed¶ó´Â ¸»À» ºÙÀÌ´Â
ÀÌÀ¯´Â controller·Î¼ÀÇ ±â´ÉÀÌ °Á¶µÇ¾ú±â ¶§¹®ÀÌ´Ù. controller´Â
º¸Åë
ÁÖº¯ÀåÄ¡(serial, timer, counter,
interrupt controller, general purpose IO)µîÀ» Æ÷ÇÔÇÏ¿© ½ÉÁö¾î´Â RAMÀ̳ª ROM±îÁö ¸ðµÎ °¡Áö°í ÀÖ¾î chip ÇѰ³·Îµµ systemÀ» ¸¸µé
¼ö°¡ ÀÖ´Ù. ¿ì¸®°¡ ÈçÈ÷
Á¢ÇÏ´Â ÀüÀÚÁ¦Ç°¿¡´Â ÀÌ·± controller°¡ µé¾î°¡
ÀÖÀ» °ÍÀÌ´Ù. processor¸¦ »ç¿ëÇϸé
ÀÛ°Ô ¸¸µé ¼ö ¾ø±â
¶§¹®ÀÌ´Ù.
|