1.
Controller°¡ ¹¹ÁÒ?
2.
Memory¿Í
IO
(1)
Memory, IO ¶õ?
Memory¶õ ´Ü½Ã°£
¶Ç´Â Àå½Ã°£ ±â¾ïÇÒ ¼ö
ÀÖ´Â ¼ÒÀÚ¸¦ ¸»Çϴµ¥, Å©°Ô
ROM°ú RAMÀ¸·Î ³ª´¶´Ù. RAMÀº
Random Access Memory¸¦
¸»Çϴµ¥, Èֹ߼ºÀ» °¡Áö°í ÀÖ¾î¼
Àü¿øÀÌ ²¨Áö¸é ³»¿ëÀÌ ¾ø¾îÁø´Ù´Â
°ÍÀ» Àß ¾Ë °ÍÀÌ´Ù.
ÀÌ RAMÀº Å©°Ô SRAM(Static RAM)°ú DRAM(Dynamic RAM)ÀÇ µÎ
°¡Áö·Î ºÐ·ùµÇ´Âµ¥, ¿ì¸®´Â ControlÀÌ ½¬¿î SRAMºÎÅÍ
´Ù·ç°Ô µÉ °ÍÀÌ´Ù. ¶Ç
ROMÀº ±â´É¿¡ µû¶ó ¿©·¯
°¡Áö°¡ ÀÖ´Ù. ÈçÈ÷ Á¢ÇÒ
¼ö ÀÖ´Â °ÍÀ¸·Î´Â PROM(Programmable ROM, Çѹø¸¸ ¾µ
¼ö ÀÖ´Ù.), EPROM(Erasable PRAM, Áö¿ì°í ´Ù½Ã ¾µ
¼ö ÀÖ´Ù.)ÀÌ Àִµ¥,
EPROM¿¡´Â UVEPROM(Ultraviolet,
Àڿܼ±À¸·Î Áö¿ï ¼ö ÀÖ´Â
EPROM)°ú EEPROM(Electrically
EPROM)°ú Flash ROMÀÌ ÀÖ´Ù. EEPROM°ú
Flash ROMÀº ¸ðµÎ Àü±âÀûÀ¸·Î Áö¿ï
¼ö°¡ ÀÖÁö¸¸, EEPROMÀº ¸Þ¸ð¸® cellÇÑ
°³ ´ÜÀ§·Î Áö¿ì°í ¾µ
¼ö°¡ ÀÖÀ¸³ª Flash ROMÀº block´ÜÀ§ÀÇ »èÁ¦ ¹×
¾²±â°¡ °¡´ÉÇÏ´Ù´Â °ÍÀÌ ´Ù¸£´Ù.
°ªÀº EEPROMÀÌ Flash ROMº¸´Ù ºñ½Î´Ù. º¸Åë
ÈÞ´ë¿ë MP3 player¿¡´Â °ª ½Ñ Flash
ROMÀÌ »ç¿ëµÈ´Ù. ¶Ç ¿äÁòÀÇ main
board´Â BIOS°¡ Flash³ª EEPROMÀ¸·Î
µÇ¾î ÀÖ¾î¼ »ç¿ë»ç°¡ ³ôÀº
versionÀÇ BIOS·Î ´Ù½Ã programmingÇÒ ¼ö
ÀÖµµ·Ï µÇ¾îÀÖ´Ù.
IO´Â
À§ÀÇ Memory¿Í °ÅÀÇ ºñ½ÁÇÑ
¼º°ÝÀ» °¡Áö°í ÀÖ´Ù. »ç½Ç
Memoryµµ ÀÏÁ¾ÀÇ IO¶ó°í ÇÒ
¼ö ÀÖ´Ù. ±×·¯³ª ±×
±â´ÉÀÌ dataÀÇ ±â¾ïÀå¼Ò³ª ÇÁ·Î±×·¥ÀÇ
À§Ä¡·Î »ç¿ëµÈ´Ù´Â Á¡ÀÌ ´Ù¸¥
°ÍÀÌ´Ù. º¸Åë PC¿¡¼ ¸»ÇÏ´Â
IO´Â ºñµð¿À Ä«µå, »ç¿îµå
Ä«µå³ª ȤÀº °¢Á¾ port, keyboard, mouse µîÀÇ ÀÔ/Ãâ·Â
ÀåÄ¡°¡ µÉ °ÍÀÌ´Ù. À̵é
¿ª½Ã memory¿Í ¸¶Âù°¡Áö·Î ƯÁ¤ÇÑ
address¿Í IRQ, DMA°¡ ÇÒ´çµÇ¾î ÀÖ´Ù.
mouse³ª soccer
robot¿¡¼´Â motor³ª sensor°¡ IO¿¡
ÇØ´çÇÒ °ÍÀÌ´Ù.
(2)
CPUÀÇ memory °ü¸®
System¿¡¼ memory´Â
ƯÁ¤ÇÑ address·Î ÇÒ´çµÇ¾î ÀÖ°Ô
µÈ´Ù. ÀÌ´Â CPU°¡ memory¸¦
°ü¸®Çϱâ À§ÇÑ ¹æ¹ýÀÌ´Ù. Çϳª
ÇϳªÀÇ memory cellÀº °¢°¢ÀÇ address¸¦
°¡Áö°í ÀÖ´Ù. CPU´Â À̸¦
access(Read or Write)Çϱâ
À§Çؼ address BUS¿¡ ±× ÁÖ¼Ò¸¦
³»º¸³»°í data BUS¸¦ ÅëÇØ¼ data¸¦
Àаųª ¾µ ¼ö°¡ ÀÖ´Ù. IO
¿ª½Ã memory¿Í ¸¶Âù°¡Áö·Î °¢°¢ÀÇ
address¸¦ ÇÒ´ç¹Þ°Ô µÈ´Ù. ÀÌ¿Í
°°Àº ¹æ¹ý¿¡¼´Â CPU°¡ °ü¸®ÇÒ ¼ö
ÀÖ´Â memoryÀÇ ¾çÀÌ Á¦ÇѵǾî
Àִµ¥, ÀÌ´Â address BUSÀÇ Æø¿¡ µû¶ó
°áÁ¤µÈ´Ù. ¿¹¸¦ µé¾î 16bit address bus¸¦ °¡Áø
CPU´Â
2=64k
°³ÀÇ memory ¿µ¿ªÀ» °¡Áú ¼ö
ÀÖ´Ù. ¸¸¾à ÀÌ CPU°¡
±âº»ÀûÀ¸·Î 8bit data
BUS¸¦ °¡Áø´Ù¸é, ÃÑ 64kbyteÀÇ
memory¸¦ °ü¸®ÇÒ ¼ö ÀÖ´Ù.
¶Ç
memory¸¦ °ü¸®ÇÏ´Â ¹æ¹ý¿¡´Â segment address¸¦ »ç¿ëÇÏ´Â
¹æ¹ýÀÌ ÀÖ´Ù. Áï, ¸Þ¸ð¸®¸¦
ÀÛÀº ºÎºÐÀ¸·Î ´Ù½Ã ³ª´©¾î
¾²´Â ¹æ¹ýÀÌ´Ù. ÀÌ °æ¿ì
´ÙÀ½°ú °°ÀÌ address¸¦ Ç¥ÇöÇÑ´Ù.
0040:0FF4 0040˼
segment, 0FF4´Â offset
CPU´Â ÀÌ
µÑÀ» ÀÌ¿ëÇØ ½ÇÁ¦ÀûÀÎ address¸¦
¸¸µé¾î ³½´Ù. ÀÌ·± ¹æ½ÄÀ»
segmented addressing À̶ó°í
Çϰí, ±×³É ½ÇÁ¦ ÁÖ¼Ò¸¦
»ç¿ëÇÏ´Â °æ¿ì¸¦ liniear addressingÀ̶ó°í ÇÑ´Ù. x86°è¿Àº
segmented addressingÀ»
»ç¿ëÇÑ´Ù. ±×·¯³ª ´ëºÎºÐÀÇ controllerµéÀº »ç¿ëÇÒ
¼ö ÀÖ´Â memeoryÇÑ Å©Áö ¾ÊÀ¸¹Ç·Î linear
addressingÀ» ¸¹ÀÌ »ç¿ëÇÑ´Ù.
(3)
Address mapping, decoding
À§¿¡¼
¼³¸íÇÑ °Íó·³ ƯÁ¤ ¿µ¿ª¿¡
memory³ª IO¸¦ ÇÒ´çÇÏ´Â °ÍÀ» memory
mapping, IO mapping ȤÀº
¸ðµÎ¸¦ address
mappingÀ̶ó°í ÇÑ´Ù. ¶Ç CPU¿¡
µû¶ó¼ memory¿Í IO¸¦ ±¸ºÐÇÏ¿©
»ç¿ëÇÏ´Â °ÍÀÌ ÀÖ°í, memory¿Í
IOÀÇ ±¸ºÐÀÌ ¾ø´Â °æ¿ì°¡
Àִµ¥, ÀüÀÚÀÇ °æ¿ì¸¦ memory mapped IO, ÈÄÀÚÀÇ °æ¿ì¸¦ IO
mapped IO ¹æ½ÄÀ̶ó°í Çϴµ¥, ÀÌ °æ¿ì´Â
memory¿Í IOÀÇ ¿µ¿ªÀÌ µ¶¸³µÇ¾î
ÀÖ°Ô µÈ´Ù. ´ÙÀ½ ±×¸²Àº
ÀÌ µÎ ¹æ½ÄÀÇ address mapÀ» ³ªÅ¸³½
°ÍÀÌ´Ù.

±×¸²1
memory mapped IO¿Í IO mapped IOÀÇ
address space
3
bus architecture system¿¡¼ memory³ª
IO¿¡ Á¢±ÙÇϱâ À§Çؼ´Â ÀÌ¿¡ ÇÊ¿äÇÑ
control signalÀÌ ÇÊ¿äÇѵ¥, º¸Åë
RD#, WR# ½ÅÈ£°¡ ÀÖ´Ù. RD#Àº low
active signal·Î data¸¦ Àбâ À§ÇÑ
½ÅÈ£À̰í, WR#´Â low active signal·Î
data¸¦ ¾²±â À§ÇÑ ½ÅÈ£ÀÌ´Ù. memory
mapped IO¿¡¼´Â MRD#, MWR#, IOR#,
IOW# ȤÀº RD#, WR#, IO/MÀÇ ½ÅÈ£°¡
ÇÊ¿äÇÏ´Ù.

±×¸²
2 µÎ °æ¿ìÀÇ control signal
ÇÑÆí
memory¸¦ »ç¿ëÇÔ¿¡ ÀÖ¾î¼ Æ¯Á¤ ¿µ¿ªÀ»
ƯÁ¤ ¿ëµµ·Î »ç¿ëÇϵµ·Ï mappingÀ»
ÇÏ°Ô µÇ´Âµ¥, ÀÌ °úÁ¤À» address decodingÀ̶ó°í
ÇÑ´Ù. ¶Ç ÀÌ·¸°Ô decoding ȤÀº mappingµÈ
°¢ ¿µ¿ªÀ» ³ªÅ¸³½ °ÍÀ» address ȤÀº
IO mapÀ̶ó°í ÇÑ´Ù. ¿¹¸¦ µé¾î PC(AT)ÀÇ
address map°ú IO mapÀº ´ÙÀ½°ú °°´Ù.
interrupt vector table |
0
|
BIOS data ¿µ¿ª |
1K
|
MS-DOS program
device driver |
|
Application program |
|
ROM ¿µ¿ª
(ROM BIOS, video, etc) |
640K
1M |
DMA controller(8237A-5) |
000-01F |
Interrupt
controller(8259A) |
020-03F |
Timer |
040-05F |
Keyboard(8042) |
060-06F |
Realtime clock(MC146818) |
070-07F |
DMA page resister |
080-09F |
Interrupt
controller2(8259A) |
0A0-0BF |
DMA controller2(8237A-5) |
0C0-0DF |
Math Coprocessor |
0F0-0F1 |
Math Coprocessor |
0F8-0FF |
Hard disk controller |
1F0-1F8 |
Game port |
200-207 |
Interface for 2nd parallel
printer |
278-27F |
2nd serial interface |
2F8-2FF |
Prototype card |
300-31F |
Network card |
360-36F |
Interface for 1st parallel
printer |
378-37F |
Monochrome Display Adapter
and parallel printer
connection |
3B0-3BF |
Color/Graphics Adapter |
3D0-3DF |
Disk controller |
3F0-3F7 |
1st serial interface |
3F8-3FF |
16
bit
adderss
BUS(A0~A15)ÀÇ
°æ¿ì
address
decodingÀÇ
¿¹¸¦
µé¾îº¸¸é
´ÙÀ½°ú
°°´Ù.
¿ì¸®°¡
¿øÇÏ´Â
memory
map˼
´ÙÀ½°ú
°°´Ù.
¿ëµµ |
address(HEX) |
address (Bin) |
size |
ROM |
0000-7FFF |
0000 0000 0000 0000 - 0111 1111 1111
1111 |
32k |
RAM1 |
8000-BFFF |
1000 0000 0000 0000 - 1011 1111 1111
1111 |
16k |
RAM2 |
C000-DFFF |
1100 0000 0000 0000 - 1101 1111 1111
1111 |
8k |
IO |
E000-FFFF |
1110 0000 0000 0000 - 1111 1111 1111
1111 |
8k |
¿©±â¼
binary·Î
Ç¥ÇöµÈ
address¸¦
º¸¸é,
ȗˤ
3bitÀ¸·Î
address¸¦
decoding
ÇÒ
¼ö
ÀÖÀ½À»
¾Ë
¼ö
ÀÖ´Ù.
µû¶ó¼
¿©±â¿¡¼
°¢°¢ÀÇ
select
½ÅÈ£´Â
´ÙÀ½
½Ä¿¡
ÀÇÇØ¼
¸¸µé¾îÁú
¼ö
ÀÖ´Ù.
ROM# =
A15
RAM1# =
A15'
+
A14
RAM2# =
A15'
+
A14'
+
A13
IO# =
A15'
+
A16'
+
A17'
¶Ç
À̸¦
°£´ÜÈ÷
±¸ÇöÇØº¸¸é
´ÙÀ½°ú
°°´Ù.

±×¸²
3
Address
decoder
Âü°í> 74138ÀÇ
Truth table
A |
B |
C |
G1 |
G2 |
Y0 |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
Y7 |
X |
X |
X |
L |
X |
H |
H |
H |
H |
H |
H |
H |
H |
X |
X |
X |
X |
H |
H |
H |
H |
H |
H |
H |
H |
H |
L |
L |
L |
H |
L |
L |
H |
H |
H |
H |
H |
H |
H |
L |
L |
H |
H |
L |
H |
L |
H |
H |
H |
H |
H |
H |
L |
H |
L |
H |
L |
H |
H |
L |
H |
H |
H |
H |
H |
L |
H |
H |
H |
L |
H |
H |
H |
L |
H |
H |
H |
H |
H |
L |
L |
H |
L |
H |
H |
H |
H |
L |
H |
H |
H |
H |
L |
H |
H |
L |
H |
H |
H |
H |
H |
L |
H |
H |
H |
H |
L |
H |
L |
H |
H |
H |
H |
H |
H |
L |
H |
H |
H |
H |
H |
L |
H |
H |
H |
H |
H |
H |
H |
L |
(4)
Address / Data Bus Multiplexing, non-DMA cycle System BUS
timing
CPU°¡ ¿ÜºÎ
memory¸¦ accessÇϱâ À§Çؼ´Â ¿ì¼± Address
BUS¿Í Data BUS°¡ ÇÊ¿äÇÏ´Ù. ±×·±µ¥
CPU°¡ °ü¸®ÇÒ ¼ö ÀÖ´Â
memory°¡ Ä¿Áö¸é address BUS Æøµµ ´Ã¾î³¯ °ÍÀÌ´Ù.
ÀÌ·± ÀÌÀ¯·Î ¸¹Àº controllerµéÀº(intel °è¿)
Address BUS¿Í Data
BUS°¡ multiplexµÇ¾î ÀÖ´Ù. 196ÀÇ
°æ¿ì, 196Àº 16 bit data¸¦ »ç¿ëÇϹǷÎ, Address BUS 16bit¿Í Data BUS 16bit°¡ ÇÊ¿äÇϹǷÎ,
¿©±â¿¡ ÃÑ 32 °³ÀÇ ¿ÜºÎ
pinÀÌ ÀÖ¾î¾ßÇÑ´Ù. µû¶ó¼ chipÀÇ Å©±â°¡
Ä¿Áö¹Ç·Î, À̸¦ multiplexÇÏ¿© 16bit¸¸À» »ç¿ëÇϰí, ½Ã°£À»
ºÐÇÒÇÏ°í Æ¯º°ÇÑ ½ÅÈ£¸¦ ¸¸µé¾î¼
Address¿Í Data¸¦ ±¸º°Çϵµ·Ï ÇÑ´Ù.
ÀÌ·¸°Ô Çϸé chipÀÇ Å©±â¸¦
ÁÙÀÏ ¼ö°¡ ÀÖ´Ù. º¸Åë
ÀÌ·± CPU¿¡¼´Â ALE(Address Latch Enable)À̶ó´Â ½ÅÈ£¸¦ µû·Î
µÎ¾î¼ ALE=1À̸é Address Ãâ·Â, ALE=0À̸é Data ÀÔÃâ·ÂÀ» ÇÏ°Ô µÈ´Ù.
(°°Àº BUS¸¦ »ç¿ëÇÏ¿©) ÀÌ
¶§¹®¿¡, ÀÌ·¯ÇÑ CPU¿¡´Â ¿ÜºÎ¿¡
º°µµÀÇ Address Latch°¡ ÇÊ¿äÇÏ´Ù. Address¸¦
HoldingÇϰí ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù.
(Address, Data ºÐ¸®)
´ÙÀ½Àº ÀÌ °æ¿ìÀÇ BUS±¸Á¶¿Í
Latch »ç¿ëÀÇ ¿¹ÀÌ´Ù.

±×¸²
4
Address/
data
BUSÀÇ
multiplexing
¶Ç
ÀÌ ¶§ÀÇ Read/Write timingÀº ´ÙÀ½°ú °°´Ù. (non
DMA cycle)

±×¸²
5
Read
Cycle

±×¸²
6
Write
cycle

|