8051
AVR
EZLab
PIC
80C196KC
DSP
ARM
VHDL
¸¶ÀÌÅ©·Î¸¶¿ì½º
·Îº¿Ã౸
Battle ·Îº¿
·Îº¿´ëȸ
È޸շκ¿
Embeded Linux
HW/SW °­ÁÂ
RTOS
 
 

 

 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)ÀÇ ¿¹ÀÌ´Ù.

                                           img9.gif

ÀÌ´Â ´Ü¼øÈ÷ 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°¡ µÉ °ÍÀÌ´Ù.



 

»óÈ£ : (ÁÖ) ·Îº¸ºí·° »ç¾÷ÀÚµî·Ï¹øÈ£:214-86-56219 Åë½ÅÆǸž÷½Å°í19-2544 ´ëÇ¥: ½Å´ë¼· ÀüÈ­:(02)2679-8556 Fax :(02)2679-8557 [°³ÀÎÁ¤º¸Ã³¸®¹æħ]
º»»ç : °æ±âµµ ºÎõ½Ã ¿ø¹Ì±¸ ¾à´ëµ¿ ºÎõ Å×Å©³ëÆÄÅ© 401µ¿ 502È£     ¼­¿ï»ç¹«¼Ò : ¼­¿ï½Ã ¿µµîÆ÷±¸ ¹®·¡µ¿ 4°¡ 8-1 4Ãþ
Copyright(C) 2004, (ÁÖ) ·Îº¸ºí·° ½Ã½ºÅÛÁî All Rights Reserved E-Mail : WebMaster