Danh mục

Chương 8 - Vào/ra Dữ liệu bằng DMA

Số trang: 18      Loại file: pdf      Dung lượng: 298.52 KB      Lượt xem: 12      Lượt tải: 0    
Jamona

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trực tiếp vào bộ nhớ (DMA)Trong các cách điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và hệ vi xử lý bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi hay bằng cách ngắt bộ vi xử lý đã đ-ợc nói đến ở các ch-ơng tr-ớc, dữ liệu th-ờng đ-ợc chuyển từ bộ nhớ qua bộ vi xử lý để rồi từ đó ghi vào thiết bị ngoại vi hoặc ng-ợc lại, từ thiết...
Nội dung trích xuất từ tài liệu:
Chương 8 - Vào/ra Dữ liệu bằng DMA Ch−¬ng 8 Vμo/ra D÷ liÖu b»ng DMA1. Nguyªn t¾c cña viÖc trao ®æi d÷ liÖu víi thiÕt bÞ ngo¹i vi b»ng c¸chth©m nhËp trùc tiÕp vμo bé nhí (DMA) Trong c¸c c¸ch ®iÒu khiÓn viÖc trao ®æi d÷ liÖu gi÷a thiÕt bÞ ngo¹i vi vμ hÖ vixö lý b»ng c¸ch th¨m dß tr¹ng th¸i s½n sμng cña thiÕt bÞ ngo¹i vi hay b»ng c¸ch ng¾tbé vi xö lý ®· ®−îc nãi ®Õn ë c¸c ch−¬ng tr−íc, d÷ liÖu th−êng ®−îc chuyÓn tõ bé nhíqua bé vi xö lý ®Ó råi tõ ®ã ghi vμo thiÕt bÞ ngo¹i vi hoÆc ng−îc l¹i, tõ thiÕt bÞ ngo¹i vinã ®−îc ®äc vμo bé vi xö lý ®Ó råi tõ ®ã ®−îc chuyÓn ®Õn bé nhí. V× thÕ tèc ®é trao ®æid÷ liÖu phô thuéc rÊt nhiÒu vμo tèc ®é thùc hiÖn cña c¸c lÖnh MOV, IN vμ OUT cñabé vi xö lý vμ do ®ã viÖc trao ®æi d÷ liÖu kh«ng thÓ tiÕn hμnh nhanh ®−îc. Trong thùc tÕ cã nh÷ng khi ta cÇn trao ®æi d÷ liÖu thËt nhanh víi thiÕt bÞngo¹i vi: nh− khi cÇn ®−a d÷ liÖu hiÖn thÞ ra mμn h×nh hoÆc trao ®æi d÷ liÖu víi bé®iÒu khiÓn ®Üa. Trong c¸c tr−êng hîp ®ã ta cÇn cã ®−îc kh¶ n¨ng ghi/®äc d÷ liÖu trùctiÕp víi bé nhí (direct memory access, DMA - th©m nhËp vμo bé nhí trùc tiÕp kh«ngth«ng qua CPU) th× míi ®¸p øng ®−îc yªu cÇu vÒ tèc ®é trao ®æi d÷ liÖu. §Ó lμm ®−îc®iÒu nμy c¸c hÖ vi xö lý nãi chung ®Òu ph¶i dïng thªm m¹ch chuyªn dông ®Ó ®iÒukhiÓn viÖc th©m nhËp trùc tiÕp vμo bé nhí (direct memory access controller, DMAC). Cã thÓ lÊy 1 thÝ dô cô thÓ ®Ó minh ho¹ ®iÒu nμy. Trong khi mét m¹ch DMACnh− 8237A-5 cña Intel cã thÓ ®iÒu khiÓn viÖc chuyÓn 1 byte trong 1 m¶ng d÷ liÖu tõ232bé nhí ra thiÕt bÞ ngo¹i vi chØ hÕt 4 chu kú ®ång hå th× bé vi xö lý 8088 ph¶i lμm hÕtcì 40 chu kú: ; Sè chu kú ®ång hå Lap: MOV AL,[SI] ; 10 OUT PORT,AL ; 10 ; 2 inc SI ; 17 Looop Lap ;Céng: 39 chu kú §Ó hç trî cho viÖc trao ®æi d÷ liÖu víi thiÕt bÞ ngo¹i vi b»ng c¸ch th©m nhËptrùc tiÕp vμo bé nhí, t¹i mçi vi m¹ch CPU th−êng tån t¹i ch©n yªu cÇu treo HOLD ®ÓthiÕt bÞ ngo¹i vi, mçi khi cã yªu cÇu dïng bus cho viÖc trao ®æi d÷ liÖu víi bé nhí th×th«ng qua ch©n nμy mμ b¸o cho CPU biÕt. §Õn l−ît CPU, khi nhËn ®−îc yªu cÇu treoth× nã tù treo lªn (tù t¸ch ra khái hÖ thèng b»ng c¸ch ®−a c¸c bus vμo tr¹ng th¸i trëkh¸ng cao) vμ ®−a xung HLDA ra ngoμi ®Ó th«ng b¸o CPU cho phÐp sö dông bus. S¬ ®å khèi cña mét hÖ vi xö lý cã kh¶ n¨ng trao ®æi d÷ liÖu theo kiÓu DMA®−îc thÓ hiÖn trªn h×nh 8.1. Bus A CPU Bus D DMAC MEM. I/O HOLD HRQ D RQ DRQ HLDA HACK DACK DACK Bus C (c¸c tÝn hiÖu quan träng: IOR, IOW, MEMR, MEMW) H×nh 8.1. HÖ vi xö lý víi DMAC. Ta nhËn thÊy trong hÖ thèng nμy, khi CPU tù t¸ch ra khái hÖ thèng b»ng viÖctù treo (øng víi vÞ trÝ hiÖn thêi cña c¸c c«ng t¾c chuyÓn m¹ch) ®Ó trao quyÒn sö dôngbus cho DMAC th× DMAC ph¶i chÞu tr¸ch nhiÖm ®iÒu khiÓn toμn bé ho¹t ®éng trao®æi d÷ liÖu cña hÖ thèng. §Ó lμm ®−îc ®iÒu ®ã DMAC ph¶i cã kh¶ n¨ng t¹o ra ®−îcc¸c tÝn hiÖu ®iÒu khiÓn cÇn thiÕt gièng nh− c¸c tÝn hiÖu cña CPU vμ b¶n th©n nã ph¶i 233lμ mét thiÕt bÞ lËp tr×nh ®−îc (®Ó CPU dÆn dß nã b»ng c¸ch ®−a vμo c¸c tõ ®iÒukhiÓn tr−íc khi nã cã thÓ ho¹t ®éng ®éc lËp). Qu¸ tr×nh ho¹t ®éng cña hÖ thèng trªn cã thÓ ®−îc tãm t¾t nh− sau: Khi thiÕt bÞ ngo¹i vi cã yªu cÇu trao ®æi d÷ liÖu kiÓu DMA víi bé nhí, nã ®−ayªu cÇu DRQ=1 ®Õn DMAC, DMAC sÏ ®−a yªu cÇu treo HRQ=1 ®Õn ch©n HOLD cñaCPU. NhËn ®−îc yªu cÇu treo, CPU sÏ treo c¸c bus cña m×nh vμ tr¶ lêi chÊp nhËntreo qua tÝn hiÖu HLDA=1 ®Õn ch©n HACK cña DMAC. DMAC sÏ th«ng b¸o cho thiÕtbÞ ngo¹i vi th«ng qua tÝn hiÖu DACK=1 lμ nã cho phÐp thiÕt bÞ ngo¹i vi trao ®æi d÷liÖu kiÓu DMA. Khi qu¸ tr×nh DMA kÕt thóc th× DMAC ®−a ra tÝn hiÖu HRQ=0. Trong thùc tÕ tån t¹i 3 kiÓu trao ®æi d÷ liÖu b»ng c¸ch th©m nhËp trùc tiÕpvμo bé nhí nh− sau: + Treo CPU mét kho¶ng thêi gian ®Ó trao ®æi c¶ m¶ng d÷ liÖu. + Treo CPU ®Ó trao ®æi tõng byte. + TËn dông thêi gian kh«ng dïng bus cña CPU ®Ó trao ®æi d÷ liÖu. Ta sÏ lÇn l−ît giíi thiÖu qua c¸c kiÓu trao ®æi d÷ liÖu nμy. • Trao ®æi c¶ mét m¶ng d÷ liÖu Trong chÕ ®é nμy CPU bÞ treo trong suèt qu¸ tr×nh trao ®æi m¶ng d÷ liÖu. ChÕ®é nμy ®−îc dïng khi ta cã nhu cÇu trao ®æi d÷ liÖu víi æ ®Üa hoÆc ®−a d÷ liÖu r ...

Tài liệu được xem nhiều: