日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書頻道 > 電子 > 《計(jì)算機(jī)組成原理與匯編語(yǔ)言》 > 第5章 輸入輸出技術(shù)

第5節(jié) 直接存貯器存取(DMA)

5.4.1 DMA的工作過(guò)程
 
   要實(shí)現(xiàn)DMA傳送,目前都采用大規(guī)模集成電路芯片DMA控制器(DMAC)。

   DMA的工作過(guò)程大致如下:


   ①外設(shè)向DMAC發(fā)出DMA傳送請(qǐng)求。

   ②DMAC通過(guò)連接到CPU的HOLD信號(hào)向CPU提出DMA請(qǐng)求。

   ③CPU在完成當(dāng)前總線周期后會(huì)立即對(duì)DMA請(qǐng)求做出響應(yīng)。

   ④待CPU將總線置高阻——放棄總線控制權(quán),DMAC即開始對(duì)總線實(shí)施控制并向外設(shè)送出DMA的應(yīng)答信號(hào)。
   
   ⑤DMAC送出地址信號(hào)和控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存的數(shù)據(jù)傳送。

   ⑥D(zhuǎn)MAC將規(guī)定的數(shù)據(jù)字節(jié)傳送完之后,通過(guò)向CPU發(fā)HOLD信號(hào),撤消對(duì)CPU的DMA請(qǐng)求。 
   

 

 

5.4.2 DMA控制器8237

   1. 8237的引線及功能

       DMAC8237的外部引線圖如圖5.33所示。

       A0~A3:雙向地址線,具有三態(tài)輸出。
 
       A4~A7:三態(tài)輸出線。 

       DB0~DB7:雙向三態(tài)數(shù)據(jù)總線。  

 

 

      HRQ:保持請(qǐng)求信號(hào) 

       HLDA:保持響應(yīng)信號(hào) 

       DREQ0~DREQ3:DMA請(qǐng)求(通道0~3)信號(hào)。
       
      DACK0~DACK3:DMA響應(yīng)信號(hào),分別對(duì)應(yīng)通道0~3。
       
      CLK:時(shí)鐘輸入。

       RESET:過(guò)程結(jié)束,低電平有效的雙向信號(hào)。


   2.8237的工作方式

       8237工作有兩種周期,即空閑周期和工作周期。


   (1)空閑周期


   (2)工作周期

    ①單字節(jié)傳送方式。

    ②數(shù)據(jù)塊傳送。

    ③請(qǐng)求傳送。

    ④級(jí)聯(lián)方式。 
   

   (3) 傳送類型

   ① 接口到存貯器的傳送。
 
   ② 存貯器到接口。
 
   ③ 存貯器到存貯器。


   (4) 優(yōu)先級(jí)


   (5) 傳送速率


   3. 8237的內(nèi)部寄存器

        8237有4個(gè)獨(dú)立的DMA通道,有許多內(nèi)部寄存器。 表5.3給出這些寄存器的名稱、長(zhǎng)度和數(shù)量。

   (1)基地址寄存器 

   (2)基字?jǐn)?shù)寄存器

   (3)當(dāng)前地址寄存器

   (4)當(dāng)前字?jǐn)?shù)寄存器

   (5)地址暫存寄存器和字?jǐn)?shù)暫存寄存器

   (6)方式寄存器

   (7)命令寄存器

   (8)請(qǐng)求寄存器

   (9)屏蔽寄存器

 

 

       ①單個(gè)通道屏蔽字。
 
       ②四通道屏蔽字。
 
   (10)狀態(tài)寄存器

   (11)暫存寄存器

   (12)字節(jié)指針觸發(fā)器

 

  4. 8237的尋址及連接

     8237的4個(gè)通道的寄存器及其他各種寄存器的尋址編碼如表5.4和表5.5所示。

 

 

 

 

    5. 8237的初始化

       下面我們抽出PC機(jī)中BIOS對(duì)8237初始化部分加以說(shuō)明:

   ①為了對(duì)DMAC8237初始化,首先進(jìn)行總清。
 
   ②對(duì)DMAC(8237)的4個(gè)通道的基地址寄存器與當(dāng)前地址寄存器、基字?jǐn)?shù)寄存器及當(dāng)前字?jǐn)?shù)寄存器先寫入FFFFH,再讀出比較,看讀寫操作是否正確。
 
   ③程序?qū)MAC(8237)的零通道初始化。一行刷新結(jié)束,HRQ變?yōu)闊o(wú)效,退出DMA。

   此處給出通道0初始化程序如下:

   OUT DMA+0DH,AL ;總清8237

   ;INITIALIZEANDSTARTDMAFORMEMORYREFRESH

   MOV DS,BX

   MOV ES,BX ;初始化DS和ES

   MOV AL,0FFH

   OUT DMA+1,AL ;通道0的傳送字節(jié)數(shù),為64K字節(jié)

   OUT DMA+1,AL
   MOV DL,0BH ;使DX=000BH

   MOV AL,58H

   OUT DX,AL ;寫方式字

   MOV AL,0

   OUT DMA+8,AL ;寫入命令字

   OUT DMA+10,AL; ;寫屏蔽字
   


DMAC初始化程序如下:

   INITADM:OUT DMA+0DH,AL ;總清

   MOV AL,40H

   OUT DMA+2,AL ;送地址低字節(jié)到通道1

   MOV AL,74H

   OUT DMA+2,AL ;送地址高字節(jié)到通道1

   MOV AL,80H


   OUT PAG,AL ;送頁(yè)寄存器
   MOV AL,64H

   OUT DMA+3,AL;送傳送字節(jié)數(shù)低字節(jié)到通道1
   MOV AL,0

   OUT DMA+3,AL ;送傳送字節(jié)數(shù)高字節(jié)到通道1

   MOV AL,59H ;通道1方式字:讀操作,單字節(jié) ;傳送

   OUT DMA+11,AL ;地址遞增,自動(dòng)預(yù)置

   MOV AL,0 ;命令字,允許工作,固定優(yōu)先級(jí)

   OUT DMA+8,AL ;DACK低有效

   OUT DMA+15,AL ;寫屏蔽寄存器,規(guī)定允許  ;4個(gè)通道均可請(qǐng)求

       程序中,將取數(shù)的存貯單元的首地址87440H分別寫到頁(yè)寄存器(外加的三態(tài)輸出寄存器)和DMAC通道1的高低字節(jié)寄存器中。

   這里每次傳送一個(gè)字節(jié)。每傳送100個(gè)字節(jié)循環(huán)。開始可以不用總清命令,以免影響其他通道。這時(shí)可以換成只清字節(jié)指針觸發(fā)器的命令,即:

   MOV AL,0

   OUT DMA+12, AL

 

?
鄂伦春自治旗| 密云县| 江安县| 香格里拉县| 八宿县| 鸡东县| 和硕县| 株洲市| 井冈山市| 陆良县| 开阳县| 穆棱市| 邮箱| 鲜城| 惠州市| 昌都县| 洛扎县| 登封市| 文山县| 光山县| 平南县| 丰都县| 田阳县| 镇康县| 龙门县| 景德镇市| 上蔡县| 锦州市| 怀远县| 临颍县| 沽源县| 勃利县| 吕梁市| 金沙县| 新巴尔虎左旗| 耿马| 多伦县| 安庆市| 大丰市| 绥滨县| 寻乌县|