Giáo trình kiến trúc máy tính - Ngô Như Khoa
I. Khái niệm về kiến trúc máy tính
Kiến trúc máy tính (Computer architecture) là một khái niệm trừu tượng của một hệ thống tính toán dưới quan điểm của người lập trình hoặc người viết chương trình dịch.
Nói cách khác, kiến trúc máy tính được xem xét theo khía cạnh mà người lập trình có thể can thiệp vào mọi mức đặc quyền, bao gồm các thanh ghi, ô nhớ các ngắt ... có thể được thâm nhập thông qua các lệnh.
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 - Ngô Như Khoa", để 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:
- giao_trinh_kien_truc_may_tinh_ngo_nhu_khoa.doc
Nội dung text: Giáo trình kiến trúc máy tính - Ngô Như Khoa
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa Cßn tõ c¸c æ ®Üa trë ®i, viÖc qu¶n lý bé nhí lµ thùc hiÖn c¸c lÖnh co¶ hªn ®iÒu hµnh lªn c¸c file (cã ®Þa chØ 3 chiÒu lµ C-H-S), cô thÓ lµ truyÒn sè liÖu nhê DMAC gi÷a vïng ®Öm (buffer) cña bé ®iÒu khiÓn æ ®Üa víi bé nhí RAM. C¸c bé vi xö lý Intel tõ thÕ hÖ 286 trë ®i ph©n biÖt hai mode ®Þa chØ: mode ®Þa chØ thùc (chØ qu¶n lý 20 bit ®Þa chØ vËt lý cña bé nhí) vµ mode ®Þa chØ b¶o vÖ (qu¶n lý tíi 32 bit ®Þa chØ ¶o nhê c¸c thanh ghi Èn trong bé vi xö lý). ë cÊp díi, tøc cÊp ngo¹i vi, nh bé ®iÒu khiÓn æ ®Üa, bé ®iÒu khiÓn mµn h×nh, m¸y in còng cã tæ chøc bé nhí riªng cña chóng ®Ó tiÖn cho viÖc cÊt gi÷ vµ xö lý víi c¸c ®Æc thï riªng. C¸c bé nhí RAM-ROM vµ c¸c vïng nhí cña bé nhí ngoµi (trªn c¸c æ ®Üa), kh¸c nhau vÒ c¸ch m· ho¸ c¸c bit, c¸ch tæ chøc, do ®ã c¶ c¸ch truy nhËp còng kh¸c nhau. II. Tæ chøc bé nhí cña vi xö lý. Bé nhí cña vi xö lý cã thÓ xem nh bao gåm cã bé nhí ROM vµ bé nhí RAM. Bé nhí RAM cña vi xö lý chÝnh lµ c¸c thanh ghi (thanh ghi chung, thanh ghi chØ sè, thanh ghi ®o¹n, thanh ghi ng¨n xÕp, thanh ghi tr¹ng th¸i, thanh ghi cê, c¸c bé ®Öm sè liÖu/ ®Þa chØ/ ®iÒu khiÓn ). Cßn bé nhí RAM lµ bé phËn gi¶i m· lÖnh ®Ó ph¸t ra c¸c vi lÖnh. Nh»m môc ®Ých qu¶n lý ®îc sè lîng ®Þa chØ nhí (¶o) nhiÒu h¬n sè ®êng ®Þa chØ cña bé vi xö lý vµ b¶o vÖ c¸c vïng nhí cña c¸c nhiÖm vô kh¸c nhau (task) vµ cña h¹t nh©n (kernal) chèng truy nhËp kh«ng hîp ph¸p, c¸c vi xö lý cã c¸c c¸ch tæ chøc ®Æc biÖt c¸c thanh ghi ®Þa chØ (bé phËn ph©n trang, ®iÒu khiÓn ®o¹n cña c¸c nhiÖm vô). C¸c bé vi xö lý tõ thÕ hÖ 486 trë ®i cßn cã mét bé nhí Cache Memory víi kÝch thíc nhiÒu Kbyte ®Ó chøa m¶ng c¸c lÖnh vµ sè liÖu ®ang thêng dïng lÊy tõ bé nhí RAM, nh»m t¨ng tèc ®é truy nhËp. §Ó t¨ng tèc ®é tÝnh to¸n c¸c phÐp to¸n dÊu chÊm ®éng, trong c¸c bé vi xö lý tõ 486 trë ®i cßn cã bé phËn dÊu chÊm ®éng (FPU, Floating Point Unit), bé phËn nµy còng cã c¸c thanh ghi FPU phôc vô riªng cho nã. III. Tæ chøc bé nhí trong cña m¸y vi tÝnh Bé nhí trong cña m¸y tÝnh dïng ®Ó chøa ch¬ng tr×nh vµ sè liÖu cña phÇn ch¬ng tr×nh h¹t nh©n vµ c¸c nhiÖm vô. Mçi byte ®îc g¸n cho mét ®Þa chØ ®Ó vØ lý vµ DMAC cã thÓ truy nhËp tíi. Bé nhí RAM ë nh÷ng m¸y tõ 386 trë ®i cã thÓ ®îc t¸ch riªng ra bé nhí ®Öm (cache memory), lµ RAM tÜnh víi thêi gian truy nhËp nhanh, cã kÝch thíc díi 1Mb ®îc nèi ngay vµo bus néi bé cña m¸y tÝnh s¸t ngay vi xö lý vµ ®îc ®iÒu khiÓn bëi Cache controller. PhÇn cßn l¹i lµ DRAM, chËm h¬n nhng rÎ h¬n vµ cã dung lîng lín h¬n. H×nh 7.3 thÓ hiÖn s¬ ®å khèi bªn trong mét m¸y 386. Photocopyable 54
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa - Ph¸t tÝn hiÖu ready, tÝn hiÖu Reset CPU - Giao tiÕp gi÷a ®ång xö lý víi CPU. Controller ISA 82344 nèi gi÷a bus local cña CPU víi bus hÖ thèng ®Ó lµm c¸c chøc n¨ng giao tiÕp víi CPU, system controller 346, data buffer 345, ROM, bus, c¸c thiÕt bÞ ngo¹i vi nh sau: - NhËn c¸c tÝn hiÖu BE0# - BE3# cña CPU, ROM8# vµ IOCHRDY tõ bus ISA ®Ó sinh ra c¸c tÝn hiÖu chän byte ch½n vµ byte lÎ SA0# vµ SBHE# - T¹o c¸c tÝn hiÖu giao tiÕp gi÷a 344, 345 vµ 346. - Chøa khèi ®iÒu khiÓn ngo¹i vi Peripheral Control gåm c¸c vi m¹ch cã ®é tÝch hîp cùc cao (VLSI) quen thuéc: hai 82C59 (ng¾t), hai chip 82C37A (DMAC), vi m¹ch ®Þnh thêi 82C54, thanh ghi ®Þa chØ trang 74LS612, bé driver cho loa, port B parallel I/O, ®ång hå thêi gian thùc vµ bé ®Õm lµm t¬i bé nhí. - Gi¶i m· ®Þa chØ ®Ó t¹o ra c¸c tÝn hiÖu chän chip CS8042# cho controller bµn phÝm 8042 vµ ROMCS# ®Ó cho phÐp chän ROM BIOS. Vi m¹ch Peripheral Combo 82341 ®îc ghÐp vµo bus më réng cña bus ISA, nã chøa c¸c VLSI ®Ó thùc hiÖn mét sè chøc n¨ng cña c¸c thiÕt bÞ ngo¹i vi sau ®©y: - Hai cæng nèi tiÕp kh«ng ®ång bé 16C450 - Mét cæng song song cho m¸y in - §ång hå thêi gian thùc - RAM sæ tay, c¸c controller cho bµn phÝm vµ chuét. - Interface cho ®Üa cøng (tiªu chuÈn IDE). Controller ®Üa mÒm 82077 cã thÓ ®iÒu khiÓn tíi 4 æ ®Üa mÒm c¸c lo¹i 5”1/2 vµ 3”1/2. III.2. Tæ chøc bé nhí RAM cña m¸y tÝnh. XÐt trêng hîp m¸y 386, nã cã 32 bit ®Þa chØ, tõ 00000000H ®Õn FFFFFFFFH, øng víi 4 GByte kh«ng gian nhí vËt lý. VÒ quan ®iÓm phÇn cøng, ta chia kh«ng gian ®ã thµnh 4 d·y nhí ®éc lËp nhau, lµ bank0 - bank3, mçi bank kÝch thíc 1 GByte. Chóng cÇn c¸c tÝn hiÖu Bank Enable BE0# tíi BE3#. Trong h×nh 7.4 sau, ta thÊy c¸c ®Þa chØ A2 - A31 ®îc ®Æt song song vµo tÊt c¶ 4 bank nhí. Cßn mçi bank nhí chØ cung cÊp 1 byte sè liÖu cho 32 ®êng sè liÖu. ë chÕ ®é thùc, 386 chØ dïng c¸c ®êng ®Þa chØ A2 - A19 vµ 4 tÝn hiÖu BE# dïng ®Ó chän bank nhí. Mçi bank chØ cã 256 KByte. Tõ h×nh 7.4 ta thÊy kh«ng gian nhí vËt lý ®îc tæ chøc thµnh d·y c¸c tõ kÐp (32bit). Do ®ã mmçi tõ kÐp xÕp ®óng hµng (aligned) b¾t ®Çu ë ®Þa chØ béi sè cña 4. Dïng tæ hîp c¸c tÝn hiÖu BE# cã thÓ truy nhËp ®îc vµo c¸c fámat kh¸c nhau (byte, tõ, tõ kÐp) nh h×nh 7.5. ViÖc truy nhËp vµo ®Þa chØ ®Çu cña tõ kÐp cã thÓ cÇn 1 chu kú bus (khi tõ kÐp xÕp ®óng hµng) hoÆc 2 chu kú bus (khi tõ kÐp xÕp lÖch hµng, misaligned). Photocopyable 56
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa II.3. Interface gi÷a VXL vµ bé nhí (h 7.7). S¬ ®å giao tiÕp gi÷a vi xö lý 386 víi bé nhí ë chÕ ®é b¶o vÖ ®îc vÏ trªn h×nh 7.6. Ta thÊy r»ng giao tiÕp bao gåm c¸c viÖc: - Gi¶i m· c¸c tr¹ng th¸i cña vi xö lý (ADS#, M/IO#, D/C#, W/R#) ®Ó cÊp ra c¸c tÝn hiÖu ®iÒu khiÓn bus (ALE#, MWTC#, MRDC#, OE# cho bé nhí, DT/R# vµ DEN#). - Gi¶i m· 3 ®Þa chØ cao nhÊt (A29-A31) ®Ó cã ®îc 8 tÝn hiÖu chän chip CE0# - CE7#, cho trêng hîp mçi chip 1 bit, råi chèt c¸c ®Þa chØ A2-A28 vµ CE0# - CE7# ®Ó ®a sang bé nhí. - §Öm truyÒn sè liÖu hai chiÒu gi÷a VXL vµ bé nhí ®îc ®iÒu khiÓn bëi c¸c tÝn hiÖu cho phÐp ®a ra sè liÖu EN# vµ ®Þnh híng truyÒn DIR. - Tõ c¸c tÝn hiÖu BE0# - BE3# vµ MWTC# cÊp ®iÒu khiÓn viÕt lªn c¸c bank nhí WEB0# - WEB3#. - Bé nhí cÊp c¸c tÝn hiÖu NA#, BS# vµ READY# cho VXL. III.4. Gi¶i m· ®Þa chØ vµ Latch ®Þa chØ, ®Öm hai chiÒu sè liÖu. Bé gi¶i m· ®Þa chØ cã thÓ ®Æt tríc hoÆc sau bé chèt (h 7.7a,b). Sau bé chèt ®Þa chØ cã khi cÇn ®Öm riªng cho ®Þa chØ I/O. VÝ dô dïng 4F244 cã thÓ sink ®îc 64 mA (h 7.7c). Photocopyable 58
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa II.5. Gi¶i m· tr¹ng th¸i bus VXL VXL 386 cÊp trùc tiÕp ra ba tÝn hiÖu quy ®Þnh kiªuy cña chu kú nhí hiÖn hµnh cña bus lµ: Mem/IO#, Data/Control# vµ Write/Read#. B¶ng 7.1 chØ ra 8 kiÓu cña chu kú bus cña 386. Ngoµi ra, VXL cßn cÊp AM, vµ tÝn hiÖu ADS# (Address Status) h¹ xuèng møc 0 ®Ó b¸o r»ng 3 tÝn hiÖu trªn AM lµ b×nh æn h÷u hiÖu. ë h×nh 7.6 ta thÊy mét m¹ch logic ®iÒu khiÓn bus, ®îc dung ®Ó gi¶i m· kiÓu cña chu kú bus nh»m cÊp ra c¸c ®iÒu khiÓn t¬ng øng tíi Mem/IO, Latch Address. Controller bus cã thÓ ®îc chÕ t¹o bëi c¸c PLA (Programable Logic Arrays), nã lµ c¸c m¹ch cã nhiÒu lèi ra, mçi lèi ra thø i lµ nghÞch ®¶o cña tæng c¸c tÝch c¸c lèi vµo thø j. 7 16 Output i Input j k 1 j 1 C¸c PLA thêng cã cöa ra ba tr¹ng th¸i (víi ch©n ®iÒu khiÓn CE#). Cã lo¹i cßn cã thanh ghi D - Latch ë lèi ra. ViÖc lËp tr×nh PLA thùc hiÖn ë nhµ m¸y, b»ng c¸ch ®èt ch¸y nh÷ng mèi nèi kh«ng muèn cã t¹i c¸c nót. II.6. Bé phËn Cache Memory vµ Controller Cache Memory. MÆc dï cã dïng c¸c thiÕt bÞ nhí DRAM tèc ®é truy nhËp tíi 60nS, EPROM 120nS, , nhng nã vÉn chËm ngay c¶ víi c¸c hÖ m¸y 386 zero-wait-state. VÝ dô 386 lo¹i 25 MHz ®· ®ßi hái nhí cã thêi gian truy nhËp nhá h¬n 40nS. V× vËy ta vÉn ph¶i ®a thªm c¸c wait-state vµo c¸c chu kú bus truy nhËp cã nhí. V× vËy ta ®a vµo gi÷a VXL vµ bé nhí trong chËm, rÎ tiÒn mét vïng nhí SRAM cã dung lîng nhá, thêi gian truy nhËp rÊt nhanh ®Ó c¶i thiÖn vÊn ®Ò truy nhËp bé nhí cña m¸y vi tÝnh. Bé phËn ®ã gäi lµ Cache Memory. Bé phËn nhí nµy nhanh vµ cã thÓ ®îc truy nhËp kh«ng cã chu kú ®îi. Nh vËy Cache Mem gi÷ c¸c lÖnh vµ sè liÖu mµ CPU lÊy tõ bé nhí chÝnh ®Ó ®a vµ xö lý. Vµ mçi khi t×m lÖnh hay sè liÖu, CPU ph¶i x¸c ®Þnh xem chóng ®· ®îc cÊt trong Cache cha; nÕu nã t×m thÊy trong Cache, ta gäi lµ tróng Cache, nÕu kh«ng, gäi lµ trît. H×nh 7. lµ s¬ ®å bè trÝ vµ t¬ng t¸c gi÷a VXL, Cache, bé nhí chÝnh trong trêng hîp thùc hiÖn mét roitine lÆp (loop). Photocopyable 60
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa Ngoµi ra cßn cã c¸c tÝn hiÖu do Controller cÊp lµ - BACP (Bus Address Clock Pulse) t¹o xung nhÞp cho c¸c m¹ch Latch. - BAOE (Bus Address Output Enable) ®iÒu khiÓn pin OE# cña Latch. - BT/R# (Bus Transmit/ Receive), DOE# (Data Ouput Enable) vµ LDSTB (Local Data Strobe) ®iÒu khiÓn transceive sè liÖu 646. Nh÷ng tÝn hiÖu giao tiÕp gi÷a Controller víi bus local cña nã gåm: - BBE0# - BBE3# (Bus Byte Enable). - BADS# (Bus Next Address Request) - BLOCK# (Bus Lock), BHOLD, BHLDA(Bus Hold Acknowledge) - FLUSH ®Ó khëi ®Çu xo¸ nhí Cache bëi thiÕt bÞ ngoµi. - MISS (Cache Miss) chØ ra r»ng ®Þa chØ hiÖn hµnh trªn bus kh«ng t¬ng øng víi sè liÖu ®ang cã trong Cache vµ ph¶i ®äc l¹i th«ng tin tõ bé nhí chÝnh. -WBS (Write Buffer Status) chØ ra r»ng c¸c thanh ghi trong 646 chøa nh÷ng sè liÖu (®Ó viÕt vµo bé nhí chÝnh) ®· kh«ng ®îc viÕt vµo bé nhí chÝnh. II.7. Ho¹t ®éng cña Cache trùc tiÕp vµ Cache hai ®êng. C¸c ho¹t ®éng cña Cache trùc tiÕp vµ Cache 2 ®êng ®îc m« t¶ ë h×nh 7. . Trong m¸y tÝnh 386 toµn bé kh«ng gian nhí vËt lý 4 GByte ®îc chia thµnh 217-1 trang nhí 32 KByte. V× m¸y 386 cã tæ chøc sè liÖu 32 bit, nªn mçi trang cã 8Kb tõ bÐp. Controller chøa 1024 lèi vµo 26 bit, cã tªn lµ SET 0 - SET 1023 ®Ó chøa tr¹ng th¸i cña c¸c « nhí cña Cache Directory. trong trêng hîp Cache trùc tiÕp, mçi lèi vµo t¬ng øng víi 8 dßng liªn tiÕp (tõ kÐp) trong d·y nhí Cache. Trong trêng hîp Cache 2 ®êng, cã hai Cache Directory lµ A vµ B øng víi c¸c Bank A vµ Bank B cña nhí Cache, mçi Bank chøa 4 KByte tõ kÐp, do ®ã trong Controller Photocopyable 62
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa A31 A15 A14 A5 A4 A2 17 bits TAG Set address Line select (1 of 217 pages) (1 of 1024 SETS) (1 of 8 LINES) A31 A14 A13 A5 A4 A2 17 bits TAG Set address Line select (1 of 218 pages) (1 of 512 SETS) (1 of 8 LINES) H×nh 7. . C¸c trêng bit ®Þa chØ dïng cho Cache trùc tiÕp vµ hai ®êng. Khi mét ®Þa chØ do VXL ®Æt vµo lèi vµo ®Þa chØ cña Controller, phÇn SET cña ®Þa chØ ®ã ®îc dïng ®Ó chän 1 trong 1024 ENTRY cña SET trong Cache Directory. Sau ®ã Controller tiÕn hµnh 3 kiÓm tra nh sau: - So s¸nh trêng TAG trong ®Þa chØ víi TAG trong ENTRY cña SET ®· ®îc chän, chóng ph¶i trïng nhau. - Bit TAG_VALID_BIT cña ENTRY SET ®îc chän ph¶i b»ng 1. - LINE_VALID_BIT cña ENTRY t¬ng øng víi gi¸ trÞ trong phÇn LINE_SELECT cña ®Þa chØ ph¶i = 1. NÕu c¶ ba ®iÒu kiÖn trªn tho¶ m·n th× th«ng tin cÇn ph¶i ®äc tõ bé nhí ®· ®îc lu trong bé nhí Cache vµ h÷u hiÖu. Vµ Controller khëi ®Çu chu kú ®äc d÷ liÖu tõ Cache thay v× tõ bé nhí chÝnh. §©y lµ trêng hîp tróng Cache. NÕu hai ®iÒu kiÖn ®Çu tho¶ m·n, cßn LINE_VALID_BIT = 0 th× trît Cache, tøc lµ ENTRY cña SET trong Directory t¬ng øng víi trang ®óng cña nhí chÝnh, nhng dßng tõ kÐp cÇn ph¶i ®äc vµo VXL l¹i cha ®îc chuyÓn sang Cache, gäi lµ trît dßng. Khi ®ã VXL ph¶i ®äc tõ bé nhí chÝnh mét tõ kÐp, ®ång thêi ®îc ®a vµo nhí Cache vµ LINE_VALID_BIT trong ENTRY cña Cache Directory ®îc x¸c ®Þnh b»ng 1. Do ®ã th«ng tin ®îc ®äc vµo Cache vµ ®¸nh dÊu lµ h÷u hiÖu. NÕu trong khi kiÓm tra hoÆc c¸c TAG kh«ng khíp hoÆc TAG_VALID_BIT = 0 th× x¶y ra trît TAG (tag miss). §ã lµ trêng hîp ®äc mét trang ®· kh«ng ®îc Cache, hoÆc ®· Cache nhng kh«ng h÷u hiÖu. Trong trêng hîp nµy Controller ph¶i khëi ®Çu mét chu kú ®äc tõ bé nhí chÝnh viÕt vµo bé nhí Cache. Lóc ®ã TAG trong SET ENTRY cña Directory ®îc cËp nhËt b»ng phÇn TAG cña ®Þa chØ, TAG_VALID_BIT ®îc lËp b»ng 1, mét LINE_VALID_BIT do ®Þa chØ trá ra ®îc lËp b»ng 1, mét LINE_VALID_BITS bÞ xo¸ ®i. B»ng c¸ch nµy mét trang h÷u hiÖu vµ ENTRY dßng ®îc lËp nªn vµ tÊt c¶ c¸c ENTRY kh¸c trong SET baay giê t¬ng øng víi th«ng tin trong mét trang kh¸c cña nhí chÝnh trë nªn kh«ng h÷u hiÖu. Photocopyable 64
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa mode hµng ®îc ®Þnh ®Þa chØ vµ ®¸nh nhÞp sau 4/512 mS. H×nh 7. lµ m¹ch lµm t¬i DRAM víi controller lµm t¬i 8208. H×nh 7. . M¹ch lµm t¬i bé nhí dïng 8028. Nh÷ng nhiÖm vô chÝnh cña viÖc ®iÒu khiÓn nhí DRAM cña m¸y tÝnh lµ: - Lµm t¬i mçi « nhí sau mét kho¶ng thêi gian vµi mS. - CÊp hai nöa ®Þa chØ cïng c¸c tÝn hiÖu RAS#, CAS# thÝch hîp. - B¶o ®¶m thao t¸c ®äc/viÕt vµ lµm t¬i kh«ng x¶y ra ®ång thêi. - CÊp tÝn hiÖu ®äc/viÕt ®Ó ®iÒu khiÓn chiÒu sè liÖu. H×nh 7. 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 lu 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 7. 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 15S. 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). Photocopyable 66
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa 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µ AD dress 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 68
- 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 70
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa Trong m¸y tÝnh AT ta dïng hai DMAC, ®Þa chØ cña chóng trong mapping I/O lµ nh sau: 000 -01F : DMAC 1(8237A) 0C0 -0DF : DMAC 2 (8237) 087, 083, 081, 082, 08B, 089, 08A, 08F: DMA Page Register (cÊp c¸c ®Þa chØ A16 -A23 cho c¸c kªnh 0, 1, 2, 3, 5, 6, 7, vµ lµm t¬i). Bèn kªnh cña DMAC 1 (®¸nh sè tõ 0 tíi 3 ) dïng ®Ó truyÒn sè liÖu 8 bit gi÷a c¸c adapter I/O 8 bit víi nhí 16 bit. Mçi kªnh cã thÓ gióp truyÒn 16 MByte sè liÖu tæ chøc thµnh c¸c khèi 64 kByte. ( C¸c ch©n BHE lµ ®¶o cña A0). DMAC2 cã c¸c kªnh tõ 4 -7. Kªnh 4 dïng ®Ó nèi tÇng bèn kªnh 0 ®Õn 3 vµo VXL. Ba kªnh 5, 6, 7 dïng truyÒn sè liÖu 16 bit gi÷a c¸c adapter I/O16 bit víi nhí 16 bit. C¸c kªnh DMA cã thÓ truyÒn 16 MByte cña c¸c khèi 128 kByte. C¸c kªnh 5, 6, 7 kh«ng thÓ truyÒn sè liÖu cña c¸c byte b¾t ®Çu b»ng ®Þa chØ lÎ (c¸c ch©n A0, vµ BHE ®Òu = 0). Trong slot ISA cña m¸y vi tÝnh AT cã c¸c ch©n sau dïng cho hai DMAC: DRQ0, DRQ1, , DRQ2, DRQ3, DRQ4, DRQ5, DRQ6, DRQ7 vµ DACK0 ACK1, DACK2, DACK3, DACK4, DACK5, DACK6, DACK7. Photocopyable 72
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa CPU cã thÓ ®Þnh cÊu h×nh cho 8255A b»ng c¸ch n¹p gi¸ trÞ cho c¸c thanh ghi tr¹ng th¸i bªn trong vi m¹ch nµy. Vi m¹ch gåm: a. PhÇn ghÐp nèi víi vi xö lý cã: - Bé ®Öm sè liÖu ®Ó trao ®æi d÷ liÖu hai chiÒu (vµo, ra) gi÷a vi xö lý vµ vi m¹ch. - Bé logic ®iÒu khiÓn ®äc/ghi, tøc lµ bé gi¶i m· ®Þa chØ lÖnh cho c¸c thanh ghi ®Öm vµ thanh ghi ®iÒu khiÓn. b. PhÇn ghÐp nèi víi c¸c thiÕt bÞ ngoµi cã: - Tr¹m A vµ tr¹m B, mçi tr¹m nµy ®îc g¾n víi mét thanh ghi chèt 8 bit, cã chøc n¨ng vµo hoÆc ra tuú theo ch¬ng tr×nh khëi ph¸t. - Tr¹m C 8 bit, chia thµnh hai phÇn, nöa thÊp 4 bit vµ nöa cao 4 bit. Tuú theo chÕ ®é sö dông ®îc x¸c lËp bëi lêi ®iÒu khiÓn, tr¹m C cã thÓ ®îc dïng ®Ó trao ®æi d÷ liÖu vµo hoÆc ra (chÕ ®é 0); ®iÒu khiÓn hoÆc ®èi tho¹i víi thiÕt bÞ ngoµi vµ vi xö lý khi tr¹m A vµ tr¹m B ë chÕ ®é 0 b»ng c¸ch x¸c lËp vµ xo¸ tõng bit PCj ; ®iÒu khiÓn hoÆc ®èi tho¹i víi thiÕt bÞ ngoµi vµ vi xö lý khi c¸c tr¹m A vµ B ë chÕ ®ä 1 vµ 2. ë c¸c chÕ ®é 1 vµ 2, ®äc c¸c bit cña tr¹m C, ta biÕt ®îc trangh th¸i cña tr¹m A vµ B. c. PhÇn c¸c m¹ch ®iÒu khiÓn néi bé: Cã c¸c khèi ®iÒu khiÓn (nhãm A hay nhãm B) c¸c tr¹m A, B vµ C. I.1.1. C¸c lÖnh ghi vµ ®äc c¸c cöa (tr¹m) vµ c¸c thanh ghi ®iÒu khiÓn Víi tæ hîp cña c¸c tÝn hiÖu ®Þa chØ (A0, A1), chän chip (CS), c¸c lÖnh ®äc ( RD ), vµ ghi ( WR ) cña vi xö lý Photocopyable 74
- 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 cå ®î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 chng 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. Nhng 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 76
- Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa 1. Khèi phèi hîp ®êng d©y MT. Khèi cã nhiÖm vô: - Phèi hîp møc vµ c«ng suÊt tÝn hiÖu víi bus I/O cña MT. - C« lËp bus I/O víi c¸c TBN khi kh«ng trao ®æi tin. - §iÒu khiÓn ®a tin ra, ®a tin vµo bus I/O. C¸c nhiÖm vô trªn dîc thùc hiÖn nhê c¸c vi m¹ch ®Öm ba tr¹ng th¸i. 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¶ 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 . Photocopyable 78