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¸¦ »ç¿ëÇϸé ÀÛ°Ô
¸¸µé ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.
¿ì¸®°¡
¾ÕÀ¸·Î ´Ù·ç°Ô µÉ °ÍÀº
¹Ù·Î ÀÌ controller°¡ µÉ °ÍÀÌ´Ù.

|