Giáo trình kiến trúc máy tính - Phần 3

Một trong các hoạt động cơ bản của máy tính là lưu trữ dữ liệu dạng nhị phân. Các dữ liệu này là các chương trình hoặc số liệu mà Vi xử lý đưa ra hoặc đọc vào tuỳ theo yêu cầu. Bộ nhớ là các thiết bị để thực hiện nhiệm vụ lưu trữ dữ liệu của máy vi tính.
Mỗi ô nhớ được xác định bởi một địa chỉ. Thông thường mỗi ô nhớ có dung lượng là 1 byte. Các byte được ghép thành từ. Những máy 16 bit số liệu thì tổ chức 2 byte/từ, còn các máy 32 bit số liệu thì độ dài từ gấp đôi (4 byte/từ).
doc 41 trang xuanthi 28/12/2022 1140
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình kiến trúc máy tính - Phần 3", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • docgiao_trinh_kien_truc_may_tinh_phan_3.doc

Nội dung text: Giáo trình kiến trúc máy tính - Phần 3

  1. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa ë c¸c h×nh 6.14, 6.15 ®· nªu ra c¸ch tỉ chøc nhí Cache, cïng c¸c format cđa ENTRY SET, c¸c tr­êng ®Þa chØ cđa c¶ hai tr­êng hỵp Cache trùc tiÕp vµ Cache hai ®­êng. Trong tr­êng hỵp Cache hai ®­êng, ngoµi hai Directory A vµ B øng víi hai bé ENTRY, cßn cã thªm 512 cê Least Recently Used dµi 1 bit (LRU bit). Nh÷ng cê nµy theo dâi xem BANK A hoỈc BANK B ®ang gi÷ th«ng tin l©u kh«ng sư dơng. Nh÷ng cê nµy ®­ỵc Controller kiĨm tra b»ng thuËt to¸n thay thÕ nh÷ng th«ng tin l©u kh«ng dïng. Thao t¸c ®äc th«ng tin tõ nhí Cache hai ®­êng cịng gièng nh­ ë Cache trùc tiÕp. BiÕt r»ng (ë s¬ ®å h.6.15) SET_ADDRESS chØ cã 9 bit. §Çu tiªn ®Þa chØ 9 bit nµy ®­ỵc dïng ®Ĩ chän 1 trong 512 lèi vµo SET cđa c¶ hai Directory A vµ B. TiÕp theo TAG_ADDRESS 18 bit ®­ỵc so s¸nh víi TAG trong mçi lèi vµo SET, TAG_VALID_BITS ®­ỵc kiĨm tra, vµ LINE_VALID_BIT t­¬ng øng víi m· cđa LINE_SELECT (A2 ®Õn A4) ®­ỵc kiĨm tra trong mçi lèi vµo SET. NÕu ba ®iỊu kiƯn kiĨm tra ®­ỵc tho¶ m·n ®èi víi mét trong hai lèi vµo SET th× ta nãi lµ trĩng Cache vµ th«ng tin cđa dßng ®­ỵc ®äc vµo VXL tõ BANK t­¬ng øng cđa nhí Cache. MỈt kh¸c, sÏ x¶y ra tr­ỵt Cache nÕu kh«ng khíp c¸c TAG hoỈc nÕu c¶ hai VALID_BIT bÞ xo¸, hoỈc nÕu LINE_VALID_BIT kh«ng ®­ỵc lËp trong bÊt cø lèi vµo nµo, khi ®ã algorithm sÏ kiĨm tra bit cê LRU ®èi víi SET ®­ỵc chän bëi ®Þa chØ SET ®Ĩ x¸c ®Þnh xem lèi vµo cđa BANK A hay BANK B lµ l©u kh«ng ®­ỵc dïng h¬n, sau ®ã th«ng tin ®­ỵc ®äc vµo tõ bé nhí chÝnh vµ viÕt vµo BANK nhí nµo l©u kh«ng ®­ỵc dïng. III.9. Lµm t­¬i bé nhí DRAM Bé nhí DRAM cã c¸c hµng cÇn ph¶i ®­ỵc lµm t­¬i trong mçi chu kú 2mS. M¹ch lµm t­¬i trong chip nhí ph¶i kiĨm tra ®iƯn ¸p c¸c « nhí, nÕu nã lín h¬n Vcc/2 th× n¹p nã tíi Vcc , nÕu bÐ h¬n Vcc/2 th× x¶ hÕt vỊ 0V. §Ĩ ®äc mét tõ tõ BANK nhí DRAM, tr­íc hÕt DRAM Controller hoỈc mét m¹ch kh¸c cÊp tÝn hiƯu WE# = 1. Sau ®ã gưi nưa thÊp cđa ®Þa chØ, øng víi ®Þa chØ hµng, råi tÝn hiƯu RAS# = 0. Sau 1 thêi gian, controller cÊp nưa ®Þa chØ cao, øng víi ®Þa chØ cét, råi tÝn hiƯu CAS# = 0. Sau thêi gian nhÊt ®Þnh, tõ cÇn cã sÏ xuÊt hiƯn trªn Output Data cđa nhí. §Ĩ viÕt vµo DRAM, c¸c tÝn hiƯu cịng t­¬ng tù, ngo¹i trõ sau tÝn hiƯu CAS# = 0, controller cÊp WE# = 0 ®Ĩ quy ®Þnh viÕt vµo RAM. Controller lµm t­¬i DRAM b»ng c¸ch gưi ra mçi ®Þa chØ trong 512 ®Þa chØ hµng vµ cÊp RAS# = 0 theo chu kú, kho¶ng 4mS. ViƯc lµm t­¬i ®­ỵc tiÕn hµnh hoỈc theo burst mode hoỈc theo distributed mode. Trong burst mode toµn bé 512 hµng ®­ỵc ®Þnh ®Þa chØ vµ ®¸nh nhÞp lÇn l­ỵt c¸ch nhau 4mS. Cßn ë distributed mode hµng ®­ỵc ®Þnh ®Þa chØ vµ ®¸nh nhÞp sau 4/512 mS. H×nh 6.16 lµ m¹ch lµm t­¬i DRAM víi controller lµm t­¬i 8208. Photocopyable 71
  2. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa H×nh 6.16 m« t¶ s¬ ®å Controller 8208 lµm t­¬i 1 MByte cho hƯ VXL 8086. Bé nhí chia thµnh 2 BANK (mçi BANK 8 bit). Controller b¶o ®¶m cÊp c¸c ®Þa chØ hµng vµ ®Þa chØ cét, tÝn hiƯu RAS#, CAS#, vµ c¸c tÝn hiƯu READ/WRITE. C¸c ch©n tr¹ng th¸i ra S0 - S3 cđa VXL ®Êu th¼ng tíi c¸c ch©n vµo cđa 8208. Controller gi¶i m· c¸c tÝn hiƯu nµy ®Ĩ cho ra c¸c tÝn hiƯu ®äc vµ viÕt mµ VXL yªu cÇu. Do ®ã, ®a sè thßi gian cđa VXL®­ỵc dïng ®Ĩ ®äc byte/tõ cđa RAM mµ kh«ng cÇn cã c¸c chu kú chê. NÕu trong khi 8208 ®ang ë gi÷a chu kú lµm t­¬i nhí mµ VXL muèn ®äc RAM th× 8208 l­u gi÷ AACK cao vµ buéc VXL cÊp thªm mét chu kú ®ỵi ®Ĩ 8208 kÞp hoµn thµnh chu kú lµm t­¬i. §Ĩ tiÕt kiƯm ch©n, kh«ng cã c¸c ch©n sè liƯu (®Ĩ n¹p tõ ®iỊu khiĨn), ch©n PDI nèi mass sÏ cho phÐp 8208 tù khëi ®Çu ho¹t ®éng trong ®a sè c¸c øng dơng. Cßn c¸c tr­êng hỵp kh¸c th× ch©n PDI sÏ ®­ỵc ®iỊu khiĨn bëi mét thanh ghi dÞch vµo song song - ra nèi tiÕp, nhê ®ã tõ ®iỊu khiĨn ®­ỵc n¹p vµo 8208. Sau khi Reset ch©n WE/PCLK sÏ cÊp ra mét d·y xung ®¸nh nhÞp cho tõ ®iỊu khiĨn tõ thanh ghi dÞch n¹p vµo 8208. Tõ ®iỊu khiĨn ®­ỵc thùc hiƯn b»ng nèi ë lèi vµo cđa thanh ghi dÞch. Ta cịng cã thĨ dïng DMAC ®Ĩ lµm t­¬i bé nhí. H×nh 6.17 lµ vÝ dơ m¹ch 4 BANK víi dung l­ỵng 256KB nhí. ë ®©y m¸y tÝnh dïng chÕ ®é ®äc DMA ¶o. Bé ®Þnh thêi 8253 lËp tr×nh ®Ĩ ph¸t xung nhÞp 15S. Xung nµy ®­ỵc nèi vµo mét trong c¸c lèi vµo xin DMA (DMA Request) lµ DREQ0 cđa 8237 DMAC ®­ỵc lËp tr×nh ®Ĩ ®äc tõ nhí vµ viÕt vµo mét cỉng kh«ng tån t¹i. Khi DMAC nhËn xung nµy, nã gưi mét tÝn hiƯu HOLD_REQUEST tíi VXL råi VXL tr¶ lêi b»ng tÝn hiƯu HLDA vµ ®Ỉt c¸c ch©n cđa nã ë tr¹ng th¸i trë kh¸ng cao. Khi ®ã: 8237 chiÕm lÊy bus, gưi ra c¸c ®Þa chØ nhí, tÝn hiƯu ®äc nhí vµ tÝn hiƯu chÊp nhËn DMA kªnh 0 (DACK0). T¸m bit ®Þa chØ thÊp gưi tíi nhí, cßn DACK0 ®Ĩ cung cÊp xung RAS# cho c¸c bank DRAM ®Ĩ lµm t­¬i nhí ®éng. Sau mçi thao t¸c DMA thanh ghi ®Þa chØ hiƯn hµnh trong DMAC ®­ỵc tù ®éng t¨ng/gi¶m (tuú thuéc c¸ch lËp tr×nh lĩc ®Çu) ®Ĩ lµm t­¬i hµng (row) nhí sau. NÕu 8237 lËp tr×nh ®Ĩ truyỊn 64 kByte, khái ®Çu ë ®Þa chØ 0, t¨ng ®Õm sau mçi lÇn DMA, vµ tù khëi ®éng (autoinitialize), th× dÉy c¸c ®Þa chØ gưi ra sÏ lµm t­¬i tÊt c¶ 256 trong hµng DRAM. Mçi hµng lµm t­¬i 15ns. VÝ dơ víi tÇn sè clock 4.77MHz dïng trong IBM PC, mét chu kú DMA ®Ĩ lµm t­¬i mÊt 820 ns mçi 15 ns, tøc 5% thêi gian cđa VXL. §Ĩ kiĨm tra Parity mçi bank nhí cã 9 bit, 8 bit ®Ĩ gi÷ sè liƯu, bit thø 9 lµ bit Parity. Mçi m¹ch 74 LS280 dïng ®Ĩ ph¸t/ kiĨm parity cho mçi byte vµ cÊt vµo parity bit mçi khi byte ®­ỵc viÕt vµo nhí. Khi 9 bit ®­¬c ®äc ra, parity ®­ỵc kiĨm tra. NÕu parity sai th× tÝn hiƯu b¸o lçi sÏ ®­ỵc gưi tíi cỉng 8255 ®Ĩ cho VXL ®äc. Khi b¾t ®Çu bËt m¸y, th× qu¸ tr×nh POST x¶y ra, nã viÕt mÉu byte vµo tÊt c¶ « nhí, råi kiĨm tra b»ng c¸ch ®äc l¹i chĩng cïng víi parity bit. Photocopyable 73
  3. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa I.10 . ChuyĨn mét m¶ng sè liƯu b»ng DMA Th­êng xuyªn cã c¸c nhu cÇu chuyĨn m¶ng sè liƯu nhí vµ ngo¹i vi. Lĩc ®ã ta dïng DMAC. H×nh 6.17 m« t¶ c¬ chÕ ho¹t ®éng cđa DMAC víi VXL ®Ĩ truyỊn sè liƯu gi÷a nhí vµ ngo¹i vi. AD0-AD15 Address ADDRESS BUS ALE Latches MEMORY DATA BUS DATA BUS CPU CONTROL BUS CONTROL BUS HLDA HOLD HOLD HRQ HLDA DMA CONTROLLER PERIPHERAL DREQ DEVICE DACK0 - H×nh 6.17. C¬ chÕ ho¹t ®éng cđa DMAC víi VXL Khi ta bËt m¸y lĩc ®Çu c¸c kho¸ ë vÞ trÝ ®ãng tõ VXL tíi ngo¹i vi, vµ nhí. Chĩng ta lËp tr×nh ®Ĩ ch¹y DMAC, vÝ dơ ®Ĩ ®äc file tõ ỉ ®Üa ®Ĩ viÕt vµo nhí. Muèn thÕ ph¶i gưi mét lo¹t lƯnh tíi controller ỉ ®Üa yªu cÇu nã ®äc nh÷ng block d÷ liƯu tõ ®Üa. Khi controller ®· cã byte ®Çu tiªn, nã gưi DMA Request(DREQ) cho DMAC, nÕu channel ®ã cđa DMAC kh«ng bÞ che ch¾n , DMAC gưi HOLD REQUEST tíi ch©n HOLD cđa VXL, VXL treo c¸c bus cao vµ gưi ra HLDA cho DMAC, khi DMAC nhËn HLDA cđa VXL, nã cho tÝn hiƯu ®iỊu khiĨn ®Ĩ ®Ỉt ba kho¸ vỊ vÞ trÝ DMA, c¾t VXL ra, sau ®ã DMAC cho ra ®Þa chØ cÊp cho nhí, DMAC gưi DMA- Acknowlege (DACK0) cho ỉ ®Üa ®Ĩ nã ®­a ra sè liƯu, cuèi cïng nã cÊp MEMW#=0 vµ IOR#=0 ra bus ®iỊu khiĨn, nhê vËy liƯu ®­ỵc ®äc vµo tõ ngoaÞ vi vµ viÕt ra « nhí, khi truyỊn sè liƯu hoµn thµnh DMAC thu l¹i tÝn hiƯu HRQ, do ®ã VXL lÊy l¹i c¸c bus cđa nã cho ®Õn lÇn DMA sau. H×nh lµ m¹ch chi tiÕt cđa s¬ ®å h×nh . Trong ®ã 8237 lµ DMAC cßn 8272 lµ controller ỉ ®Üa mỊm, 8282 dïng ®Ĩ latch 8 bit ®Þa chØ gưi ra tõ VXL (do ALE cđa 8086 ®iỊu khiĨn ) hoỈc 8237 (do AEN vµ ADdress STrobe ®iỊu khiĨn). Khi ®ãng ®iƯn DMAC cÊp AEN = 0, c¸c vi m¹ch U1, U2, U4 ®­ỵc h÷u hiƯu. Vµ ALE tõ VXL ®­ỵc dïng ®Ĩ ®¸nh nhÞp (STroBe) cho 3 vi m¹ch nµy. Do ®ã chĩng chèt c¸c ®Þa chØ A0-A19 cđa VXL ra bus ®Þa chØ nh­ tr­êng hỵp th«ng th­êng (kh«ng DMA). Photocopyable 75
  4. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa Table a SIGNALS A3 A2 A1 A0 IOR IOW Operation 1 0 0 0 0 1 Read status register 1 0 0 0 1 0 write command register 1 0 0 1 0 1 illegal 1 0 0 1 1 0 write request register 1 0 1 0 0 1 illegal 1 0 1 0 1 0 write single mask register set 1 0 1 1 0 1 illegal 1 0 1 1 1 0 write mode register 1 1 0 0 0 1 illegal 1 1 0 0 1 0 clear byte pointer flip/ flop 1 1 0 1 0 1 read temporary register 1 1 0 1 1 0 master clear 1 1 1 0 0 1 illegal 1 1 1 0 1 0 clear mask register 1 1 1 1 0 1 illegal 1 1 1 1 1 0 write all mask register bits Table b Name Size number base address register 16 bits 4 base word count register 16 bits 4 current address register 16 bits 4 current word count register 16 bits 4 temporary address register 16 bits 1 temporary word count register 16 bits 1 status register 8 bits 1 command register 8 bits 1 temporary register 8 bits 1 mode register 6 bits 4 mask register 4 bits 1 request register 4 bits 1 Photocopyable 77
  5. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa 1 w8 - w15 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 3 Base and current address write 0 1 0 0 1 1 0 0 A0 - a7 1 a8 - a15 Current address read 0 1 0 0 1 1 0 0 A0 - a7 1 a8 - a15 Base and current word count write 0 0 1 0 1 1 0 0 W0 - w7 1 w8 - w15 Current word count read 0 0 1 0 1 1 0 0 w0 - w7 1 w8 - w15 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 B¶ng : C¸c thanh ghi vµ ®Þa chØ trong cđa DMAC8237. Photocopyable 78
  6. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa Bé nhí ¶o cã thĨ ®­ỵc qu¶n lý b»ng c¸ch chia bé nhí thµnh c¸c m¶ng nhá cã ®é lín tÝnh theo ®o¹n, c¬ chÕ nµy gäi lµ ph©n ®o¹n (®èi víi hä Intel cã tõ c¸c bé VXL 80286 trë ®i) hoỈc trang, c¬ chÕ nµy gäi lµ ph©n trang ( ®èi víi hä Intel cã tõ c¸c bé VXL 80386) trë ®i. Trong bé nhí ¶o nh­ vËy, tõng m¶ng m· lƯnh vµ m¶ng d÷ liƯu dïng cho ch­¬ng tr×nh hiƯn t¹i ®­ỵc t¶i tõ ỉ ®Üa vµo DRAM vµ ®­ỵc truy nhËp ®Õn bëi bé ®iỊu khiĨn cđa bé nhí Èn khi cÇn thiÕt. NÕu ch­¬ng tr×nh ®ang ch¹y cÇn ®Õn mét m¶ng m· lƯnh hay mét m¶ng d÷ liƯu nµo ®ã mµ kh«ng chøa trong DRAM th× nã sÏ ®­ỵc t¶i vµo DRAM. NÕu DRAM kh«ng cßn ®đ kh«ng gian ®Ĩ chøa th× mét m¶ng nµo ®ã cđa DRAM sÏ ®­ỵc x¸c ®Þnh theo c¸c tiªu chuÈn nhÊt ®Þnh ®Ĩ bÞ ®Èy l¹i ỉ ®Üa, nh­êng chç cho m¶ng ®ang cÇn lÊy vµo. Mét c¬ chÕ t­¬ng tù cịng sÏ ®iỊu khiĨn ho¹t ®éng cđa bé nhí Èn vµ bé nhí chÝnh. Nãi c¸ch kh¸c, bé nhí DRAM ®ãng vai trß lµ bé nhí Èn cđa bé nhí phơ, bé nhí cache dãng vai trß bé nhí Èn cho DRAM. Trong thùc tÕ 1 ®o¹n cã thĨ cã ®é lín tõ 1 byte ®Õn 4GB cßn 1 trang th«ng th­êng cã ®é lín 4KB. Theo quan ®iĨm cđa bé nhí ¶o th× bé nhí vËt lý chØ lµ chç chøa c¸c m¶ng (c¸c ®o¹n hay c¸c trang) hiƯn ®ang cã liªn hƯ víi hƯ ®iỊu hµnh hoỈc víi ch­¬ng tr×nh nng­êi sư dơng. §Ĩ truy nhËp ®Õn bé nhí ¶o ta dïng ®Þa chØ ¶o (®Þa chØ l«gic), cßn truy nhËp ®Õn bé nhí vËt lý ta ph¶i dïng ®Þa chØ vËt lý. Trong hƯ VXL cã MMU, CPU khi ho¹t ®éng cÇn ®äc lƯnh hay to¸n h¹ng th× nã ®­a ra ®Þa chØ ¶o cđa lƯnh hoỈc to¸n h¹ng ®ã. MMU nhËn ®Þa chØ ¶o vµ dÞch (chuyĨn ®ỉi) nã ra ®Þa chØ vËt lý, ®Þa chØ nµy ®­ỵc ®­a lªn bus ®Þa chØ ®Ĩ truy nhËp bé nhí vËt lý (h×nh 6.18). bé dÞch ®Þa chØ cđa ®Þa chØ ¶o MMU ®Þa chØ vËt lý H×nh 6.18. Chøc n¨ng chuyĨn ®ỉi ®Þa chØ cđa MMU. III.1. Ph©n trang bé nhí. Trong chÕ ®é lµm viƯc theo kiĨu ph©n trang, ®é lín c¸c trang ®­ỵc chän lµ 4KB ®Ĩ ®¹t ®­ỵc tèc ®é tèi ­u khi trao ®ỉi c¸c trang d÷ liƯu gi÷a ỉ ®Üa vµ bé nhí. Khi lµm viƯc theo kiĨu ph©n trang, ®Þa chØ l«gic ®­ỵc ®­a qua bé phËn ph©n trang ®Ĩ dÞch thµnh ®Þa chØ vËt lý. Trong c¸c bé VXL tõ 80386 trë ®i cã c¸c thanh ghi ®iỊu khiĨn CR dµi 32 bit, ®­ỵc ®¸nh sè tõ CR0-CR3. Khi muèn cho c¸c bé vi xư lý lµm viƯc theo chÕ ®é ph©n trang, ta ph¶i ®­a bit ®iỊu khiĨn thÝch hỵp vµo thanh ghi CR0 sao cho CR031 = 1. CR3 lĩc nµy sÏ chøa ®Þa chØ c¬ së cđa b¶ng danh mơc b¶ng trang. §Þa chØ tuyÕn tÝnh gåm ba phÇn: + PhÇn danh mơc (Directory) sÏ céng víi néi dung cđa CR3 ®Ĩ chØ vµo mét danh mơc mong muèn trong danh mơc c¸c b¶ng trang. Photocopyable 79
  7. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa Ch­¬ng VII. Giao diƯn trong m¸y vi tÝnh Mét hƯ thèng m¸y tÝnh ®iĨn h×nh tõ cì nhá ®Õn cì trung b×nh, bao gåm mét bé vi xư lý trung t©m, bé nhí trong vµ hƯ thèng phèi ghÐp vµo/ ra. C¸c thµnh phÇn nµy liªn hƯ víi nhau th«ng qua hƯ thèng c¸c bus. Ch­¬ng nµy sÏ nghiªn cøu phÇn cuèi cïng cđa hƯ thèng m¸y tÝnh, lµ bé phèi ghÐp vµo/ ra. Cơ thĨ lµ c¸c chip phèi ghÐp vµo/ ra, m¸y tÝnh ®­ỵc liªn hƯ víi thÕ giíi bªn ngoµi th«ng qua c¸c chip nµy. I. C¸c chip vµo/ ra (I/O chip) Trong thÕ giíi m¸y tÝnh, ®· cã rÊt nhiỊu lo¹i chip vµo/ra vµ c¸c chđng lo¹i chip míi cịng liªn tơc xuÊt hiƯn. Trong sè c¸c chip th«ng dơng cã thĨ nãi ®Õn c¸c chip ®iỊu khiĨn truyỊn th«ng UART, USART, chip ®iỊu khiĨn hiĨn thÞ mµn h×nh CRTC, chip ®iỊu khiĨn c¸c ®¬n vÞ ỉ ®Üa HDC/FDC vµ c¸c chip ®iỊu khiĨn vµo/ ra qua c¸c cỉng song song PIO. I.1. Chip nhËn - ph¸t kh«ng ®ång bé UART Chip UART (Universal Asynchronous Receiver Transmitter), cã thĨ ®äc mét byte d÷ liƯu tõ bus d÷ liƯu vµ chuyĨn tõng bit d÷ liƯu cđa nã lªn ®­êng d©y nèi tiÕp tíi c¸c thiÕt bÞ ®Çu cuèi (terminal) hoỈc nhËn d÷ liƯu tõ terminal. C¸c chip UART th­êng ho¹t ®éng ë tèc ®é tõ 50bps tíi 19,2 Kbps. I.2. Chip nhËn - ph¸t ®ång bé/kh«ng ®ång bé USART Chip USART(Universal Synchronouns Asynchronous Receiver Transmitter) cã thĨ qu¶n lý viƯc truyỊn d÷ liƯu ®ång bé b»ng viƯc sư dơng nhiỊu giao thøc kh¸c nhau, cịng nh­ cã thĨ sư dơng tÊt c¶ c¸c chøc n¨ng cđa UART. I.3. C¸c chip vµo/ra song song PIO(Parallel I/O) Mét trong nh÷ng chip PIO ®iĨn h×nh lµ chip 8255A, nh­ h×nh 7.1. Nã cã 24 cỉng vµo/ra, cã thĨ ghÐp nèi víi mäi thiÕt bÞ t­¬ng thÝch TTL, nh­ bµn phÝm, c¸c chuyĨn m¹ch, m¸y in. Cho phÐp CPU ®äc hoỈc ghi c¸c bit d÷ liƯu trªn mäi cỉng vµo/ra, lµm cho chip nµy ho¹t ®éng rÊt linh ho¹t. Photocopyable 81
  8. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa M¸y tÝnh trao ®ỉi tin khi ®äc thÊy tr¹ng th¸i s½n sµng. - NÕu viƯc trao ®ỉi tin do TBN yªu cÇu: ®Ĩ gi¶m thêi gian chê ®ỵi tr¹ng th¸i s½n sµng cđa TBN, m¸y tÝnh cã thĨ khëi ®éng TBN råi thùc hiƯn c¸c nhiƯm vơ kh¸c. ViƯc trao ®ỉi tin diƠn ra khi: TBN gưi yªu cÇu trao ®ỉi tin tíi bé xư lý ng¾t cđa khèi ghÐp nèi, ®Ĩ ®­a yªu cÇu ng¾t ch­¬ng tr×nh ®Õn m¸y tÝnh. NÕu cã nhiỊu thiÕt bÞ ngoµi cïng gưi yªu cÇu, KGN xư lý theo møc ­u tiªn ng¾t ®Þnh tr­íc, råi ®­a yªu cÇu trao ®ỉi tin cho m¸y tÝnh. M¸y tÝnh nhËn yªu cÇu, chuÈn bÞ trao ®ỉi vµ gưi tÝn hiƯu x¸c nhËn s½n sµng trao ®ỉi. KGN nhËn vµ truyỊn tÝn hiƯu x¸c nhËn cho TBN. TBN trao ®ỉi tin víi KGN vµ KGN trao ®ỉi tin víi m¸y tÝnh (nÕu lµ ®­a tin vµo) hoỈc m¸y tÝnh trao ®ỉi tin víi KGN vµ KGN trao ®ỉi tin víi TBN (nÕu lµ ®­a tin ra). II. CÊu trĩc chung cđa khèi ghÐp nèi II.1. NhiƯm vơ cđa c¸c khèi trong KGN. KGN cã nhiƯm vơ chung lµ nhËn vµ chuyĨn tin gi÷a m¸y tÝnh vµ TBN. Nh­ng cơ thĨ, cã nh÷ng nhiƯm vơ nhá kh¸c nhau trong s¬ ®å khèi. Nh÷ng nhiƯm vơ vµ c¸c khèi t­¬ng øng lµ: 1. GhÐp nèi vµ biÕn ®ỉi tin gi÷a MT - KGN vµ KGN - TBN vỊ: - Møc vµ c«ng suÊt tÝn hiƯu. - D¹ng tin (song song, nèi tiÕp, tÝn hiƯu sè, tÝn hiƯu analog). 2. Gi¶i m· ®Þa chØ, gi¶i m· lƯnh cho c¸c thanh ghi ®Ưm cđa KGN. 3. Ghi nhËn tr¹ng th¸i TBN hay yªu cÇu trao ®ỉi tin cđa TBN, xư lý yªu cÇu ­u tiªn, gưi yªu cÇu vµo MT vµ x¸c nhËn trao ®ỉi tin tõ MT. 4. Ghi nhËn, biÕn ®ỉi d¹ng tin, ph¸t tin cho thiÕt bÞ nhËn tin. 5. NhËn vµ ph¸t tÝn hiƯu nhÞp thêi gian trao ®ỉi tin cho c¸c khèi trong KGN vµ TBN. II.2. S¬ ®å khèi. Photocopyable 83
  9. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa 2. Khèi gi¶i m· ®Þa chØ - lƯnh. Mçi thanh ghi ®Ưm (®iỊu khiĨn, tr¹ng th¸i, sè liƯu ®äc vµo, sè liƯu ®­a ra) cđa KGN ®­ỵc chän ®Ĩ ghi vµ ®äc tin nhê c¸c lƯnh ®äc, ghi tõ khèi gi¶i m· ®Þa chØ - lƯnh. Khèi gi¶i m· nµy lµ nh÷ng vi m¹ch gi¶i m· hay tỉ hỵp c¸c cỉng logic. Lèi vµo ®­ỵc nèi víi bus I/O cđa MT, ®Ĩ nhËn c¸c tÝn hiƯu ®Þa chØ (A0 An), tÝn hiƯu ®iỊu khiĨn ®äc, ghi, c¸c tÝn hiƯu chèt ®Þa chØ, chèt d÷ liƯu. Lèi ra cđa khèi nµy lµ c¸c tÝn hiƯu ®äc, ghi cho tõng thanh ghi ®Ưm cđa KGN. 3. C¸c thanh ghi ®Ưm gåm: - Thanh ghi ®iỊu khiĨn chÕ ®é ho¹t ®éng, thanh ghi ®iỊu khiĨn TBN. - Thanh ghi tr¹ng th¸i hay yªu cÇu trao ®ỉi tin cđa TBN. - Thanh ghi ®Ưm sè liƯu ghi - Thanh ghi ®Ưm sè liƯu ®äc. 4. Khèi xư lý ng¾t. Khi nhËn, che ch¾n yªu cÇu trao ®ỉi tin cđa TBN, xư lý ­u tiªn vµ ®­a yªu cÇu trao ®ỉi tin vµo MT. 5. Khèi ph¸t nhÞp thêi gian. Ph¸t nhÞp thêi gian cho c¸c ho¹t ®éng truyỊn vµ xư lý tin trong KGN hay TBN. §«i khi, ®Ĩ ®ång bé, khèi cßn nhËn tÝn hiƯu nhÞp ®ång hå tõ MT. 6. Khèi ®Ưm TBN. Khèi cã thĨ biÕn ®ỉi møc (TTL), biÕn ®ỉi c«ng suÊt (cho c¸c TBN lµ c¸c m¹ch ®iỊu khiĨn c«ng suÊt) vµ biÕn ®ỉi vỊ d¹ng tin. 7. Khèi ®iỊu khiĨn: §iỊu khiĨn ho¹t ®éng cđa c¸c khèi, nh­ khèi ph¸t nhÞp thêi gian, chÕ ®é ho¹t ®éng, vv . III. Gi¶i m· ®Þa chØ cho bé ghÐp nèi. ViƯc gi¶i m· ®Þa chØ cho bé ghÐp nèi cịng gÇn gièng nh­ gi¶i m· ®Þa chØ cho m¹ch nhí. Chđ yÕu ta nghiªn cøu viƯc gi¶i m· ®Þa chØ cho c¸c cỉng. Th«ng th­êng c¸c cỉng cã ®Þa chØ 8 bit t¹i A0-A7 hoỈc cã ®Þa chØ 16 bit t¹i A0-A15. Tuú theo ®é dµi cđa to¸n h¹ng trong lƯnh lµ 8 hay 16 bit ta sÏ cã 1 cỉng 8 bit hay 2 cỉng 16 bit cã ®Þa chØ liỊn nhau ®Ĩ t¹o nªn tõ víi ®é dµi t­¬ng øng. Trong thùc tÕ Ýt cã hƯ sư dơng hÕt 256 cỉng I/O kh¸c nhau, nªn ta chØ xÐt ë ®©y c¸c bé gi¶i m· ®Þa chØ 8 bit A0-A7 vµ m¹ch gi¶i m· th«ng dơng nh­ 74LS138 ®Ĩ t¹o ra c¸c xung chän thiÕt bÞ. Photocopyable 85
  10. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa III. C¸c ph­¬ng ph¸p ®iỊu khiĨn vµo ra d÷ liƯu. Nãi chung, ng­êi ta ph©n biƯt ra 3 ph­¬ng ph¸p ®iỊu khiĨn vµo/ ra d÷ liƯu nh­ sau: + vµo/ra d÷ liƯu ®iỊu khiĨn b»ng c¸ch th¨m dß tr¹ng th¸i s½n sµng cđa thiÕt bÞ ngo¹i vi. + vµo/ra d÷ liƯu ®iỊu khiĨn b»ng c¸ch ng¾t bé VXL. + vµo/ ra d÷ liƯu ®iỊu khiĨn b»ng phÇn cøng phơ ®Ĩ th©m thËp trùc tiÕp vµo bé nhí (dïng DMAC). Mçi ph­¬ng ph¸p ®iỊu khiĨn vµo/ra d÷ liƯu nãi trªn cã nh÷ng ®Ỉc ®iĨm kh¸c nhau vµ ®­ỵc øng dơng trong nh÷ng tr­êng hỵp kh¸c nhau. Trong phÇn nµy chĩng ta sÏ lÇn l­ỵt nghiªn cøu tõng ph­¬ng ph¸p ®iỊu khiĨn trªn. III.1. Vµo/ra d÷ liƯu b»ng ph­¬ng ph¸p th¨m dß. VÊn ®Ị ®iỊu khiĨn vµo/ra d÷ liƯu sÏ lµ ®¬n gi¶n nÕu thiÕt bÞ ngo¹i vi lu«n s½n sµng ®Ĩ lµm viƯc víi CPU. VÝ dơ, víi thiÕt bÞ vµo nh­ bé phËn ®o nhiƯt ®é sè l¾p s½n trong mét hƯ thèng ®iỊu khiĨn lĩc nµo cịng cã thĨ cung cÊp sè ®o vỊ nhiƯt ®é cđa ®èi t­ỵng cÇn ®iỊu chØnh, hay thiÕt bÞ ra nh­ bé ®Ìn LED dïng ®Ĩ hiĨn thÞ gi¸ trÞ nhiƯt ®é trong hƯ thèng nãi trªn th× lĩc nµo cịng cã thĨ biĨu hiƯn th«ng tin ®ã. Nh­ vËy khi CPU cÇn cã th«ng tin vỊ nhiƯt ®é cđa ®èi t­ỵng th× nã chØ viƯc ®äc d÷ liƯu t¹i cỉng phèi ghÐp víi bé ®o nhiƯt ®é vµ nÕu CPU muèn biĨu diƠn th«ng tin võa ®äc lªn ®Ìn LED th× nã chØ viƯc ®­a ra tÝn hiƯu ®iỊu khiĨn tíi ®ã mµ kh«ng cÇn kiĨm tra xem c¸c thiÕt bÞ nµy cã ®ang s½n sµng lµm viƯc hay kh«ng. Tuy nhiªn, trong thùc tÕ kh«ng ph¶i lĩc nµo CPU cịng lµm viƯc víi c¸c ®èi t­ỵng lu«n s½n sµng nh­ trªn. Th«ng th­êng khi CPU muèn trao ®ỉi d÷ liƯu víi mét ®èi t­ỵng nµo ®ã, tr­íc tiªn nã ph¶i kiĨm tra xem thiÕt bÞ ®ã cã ®ang ë tr¹ng th¸i s½n sµng hay kh«ng, nÕu cã th× míi thùc hiƯn viƯc trao ®ỉi d÷ liƯu. ViƯc kiĨm tra t×nh tr¹ng thiÕt bÞ ®­ỵc thùc hiƯn nhê tÝn hiƯu mãc nèi (handshake signal) ®­ỵc lÊy tõ m¹ch ghÐp nèi, do ng­êi thiÕt kÕ t¹o ra. H×nh 8.4 vÝ dơ mét c¸ch t¹o ra tÝn hiƯu mãc nèi . Trong vÝ dơ nµy, ®Ĩ ®¬n gi¶n ta gi¶ thiÕt CPU chØ lµm viƯc víi mét thiÕt bÞ vµo vµ 1 thiÕt bÞ ra. Mét cỉng vµo sè 0 (cã ®Þa chØ 00) ®­ỵc dïng ®Ĩ ®äc tr¹ng th¸i s½n sµng cđa hai thiÕt bÞ trªn. TÝn hiƯu s½n sµng cđa thiÕt bÞ ngo¹i vi sè 1 (cỉng vµo 01) ®­ỵc ®Ỉt t¹i bit D0, tÝn hiƯu s½n sµng cđa thiÕt bÞ ngo¹i vi sè 2 (cỉng ra 02) ®­ỵc ®Ỉt vµo bit D1. C¸c bit nµy sÏ cã gi¸ trÞ 1 khi thiÕt bÞ ngo¹i vi t­¬ng øng ë tr¹ng th¸i s½n sµng lµm viƯc víi CPU vµ chĩng sÏ ®­ỵc ®­a vµo bus d÷ liƯu khi CPU ®äc nã b»ng lƯnh ®äc cỉng vµo sè 0. Ch­¬ng tr×nh trao ®ỉi d÷ liƯu sÏ kiĨm tra c¸c bit b¸o s½n sµng nµy vµ sÏ cã c¸c ®¸p øng phï hỵp. Photocopyable 87
  11. Gi¸o tr×nh KiÕn trĩc m¸y tÝnh Ng« Nh­ Khoa III.2. Vµo/ra d÷ liƯu b»ng c¸ch ng¾t CPU. Trong c¸ch vµo/ra d÷ liƯu ®iỊu khiĨn b»ng ph­­ng ph¸p th¨m dß, tr­íc khi tiÕn hµnh trao ®ỉi d÷ liƯu CPU ph¶i dµnh toµn bé thêi gian vµo viƯc x¸c ®Þnh tr¹ng th¸i s½n sµng cđa thiÕt bÞ cÇn trao ®ỉi. Trong hƯ thèng VXL víi c¸ch lµm viƯc nh­ vËy, th«ng th­êng CPU ®­ỵc thiÕt kÕ chđ yÕu chØ lµ ®Ĩ phơc vơ cho viƯc vµo/ ra d÷ liƯu vµ thùc hiƯn c¸c t¸c vơ xư lý d÷ liƯu liªn quan. Trong thùc tÕ, ng­êi ta ph¶i tËn dơng nh÷ng kh¶ n¨ng cđa CPU ®Ĩ thùc hiƯn nh÷ng c«ng viƯc kh¸c ngoµi viƯc trao ®ỉi d÷ liƯu víi TBN, chØ khi nµo cã yªu cÇu trao ®ỉi d÷ liƯu th× míi yªu cÇu CPU t¹m dõng c«ng viƯc hiƯn t¹i ®Ĩ phơc vơ viƯc trao ®ỉi d÷ liƯu. Sau khi hoµn thµnh th× CPU l¹i trë l¹i thùc hiƯn tiÕp c«ng viƯc ®ang tiÕn hµnh, hoỈc thùc hiƯn mét c«ng viƯc míi. C¸ch lµm viƯc nh­ vËy gäi lµ ng¾t CPU ®Ĩ trao ®ỉi d÷ liƯu. Mét hƯ thèng nh­ vËy cã thĨ ®¸p øng rÊt nhanh víi c¸c yªu cÇu trao ®ỉi d÷ liƯu trong khi vÉn cã thĨ thùc hiƯn c¸c c«ng viƯc kh¸c. H×nh 8.5. tr×nh bµy mét c¸ch ®¬n gi¶n ®Ĩ ®­a ng¾t sè hiƯu N vµo bus d÷ liƯu trong khi cịng t¹o ra yªu cÇu ng¾t ®­a vµo ch©n INTR cđa bé VXL 8088. AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 OC1 74LS244 INTA OC2 5V INTR IR0  IR3  IR6 H×nh 8.5. §­a sè hiƯu ng¾t vµo bus d÷ liƯu Trong tr­êng hỵp ®¬n gi¶n, t¹i mét thêi ®iĨm nhÊt ®Þnh chØ cã mét yªu cÇu ng¾t IRi ®­ỵc t¸c ®éng, khi ®ã ë ®Çu ra m¹ch NAND sÏ cã xung yªu cÇu ng¾t ®Õn CPU. TÝn hiƯu IRi ®­ỵc ®ång thêi ®­a qua m¹ch khuyÕch ®¹i ®Ưm ®Ĩ t¹o ra sè hiƯu ng¾t t­¬ng øng, sè hiƯu ng¾t nµy ®­ỵc CPU ®äc vµo khi nã ®­a ra tÝn hiƯu chÊp nhËn ng¾t. Photocopyable 89