版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十二章 DMA/消息收發(fā)單元12.1 概述DMA/消息收發(fā)單元支持不同總線上兩個(gè)的處理器之間的通信,例如本地處理器和PCI總線上的處理器。該單元在運(yùn)行時(shí)使用通用(generic)消息和門(mén)鈴寄存器。圖12-1是DMA/消息收發(fā)單元的結(jié)構(gòu)圖。圖12-1 DMA/消息收發(fā)單元結(jié)構(gòu)圖該部件還提供了DMA控制器,用于傳輸數(shù)據(jù)塊,不受本地處理器或PCI主設(shè)備的約束。DMA模塊擁有四個(gè)高速DMA通道,這四個(gè)通道共享I/O定序器(ISO I/O Sequencer)中的緩存空間,方便數(shù)據(jù)的收集和發(fā)送。12.2 特性DMA/消息收發(fā)單元包括下列特性:l 用于處理器間通信的消息和門(mén)鈴寄存器l DMA控制器n 四
2、個(gè)DMA通道n 跨多個(gè)通道的并發(fā)執(zhí)行,可編程帶寬控制n 非對(duì)齊傳輸能力n 數(shù)據(jù)鏈和直通模式n 在完成段、鏈和錯(cuò)誤時(shí)產(chǎn)生中斷n 每個(gè)通道都具有可選的外部控制信號(hào)(REQ/ACK/DONE)12.3 外部信號(hào)說(shuō)明本節(jié)介紹DMA信號(hào)12.3.1 詳細(xì)信號(hào)說(shuō)明表12-1包含DMA接口信號(hào)的詳細(xì)說(shuō)明。表12-1 DMA接口信號(hào)詳細(xì)信號(hào)說(shuō)明信號(hào)I/O說(shuō)明/DREQ0:3IDMA請(qǐng)求信號(hào),每個(gè)通道一個(gè)。DMA請(qǐng)求信號(hào)指示DMA傳輸?shù)拈_(kāi)始或繼續(xù)。/DREQn的下降沿引起DMAMRnCS置位,從而激活DMA通道。狀態(tài)含義有效如果DMAMRnEMSEN為1,則/DREQn有效啟動(dòng)或恢復(fù)一個(gè)DMA傳輸。無(wú)效/DRE
3、Qn無(wú)效不起作用。時(shí)序有效可以異步有效。無(wú)效應(yīng)一直保持有效,直到/DACKn有效或到外設(shè)的請(qǐng)求事務(wù)出現(xiàn)為止。/DACK0:3ODMA應(yīng)答信號(hào),每個(gè)通道一個(gè)。DMA應(yīng)答信號(hào)反映DMAMRnCS的值。狀態(tài)含義有效正在進(jìn)行DMA傳輸。無(wú)效DMA傳輸停止或完成。時(shí)序有效在內(nèi)部控制邏輯啟動(dòng)或恢復(fù)DMA傳輸時(shí)異步有效。無(wú)效在內(nèi)部控制邏輯停止或完成DMA傳輸時(shí)異步無(wú)效。注意,在/DACKn無(wú)效后,在總線流水上可能還存在未完成的寫(xiě)事務(wù)。/DDONE0:3ODMA完成信號(hào),每個(gè)通道一個(gè)。DMA完成信號(hào)指示DMA傳輸已經(jīng)完成。狀態(tài)含義有效DMA傳輸完畢。無(wú)效DMA傳輸正在進(jìn)行或停止。時(shí)序有效在內(nèi)部控制邏輯完成DM
4、A傳輸時(shí)異步有效。注意,在/DDONEn有效后,在總線流水上可能還存在未完成的寫(xiě)事務(wù)。無(wú)效在內(nèi)部控制邏輯開(kāi)始DMA傳輸時(shí)異步無(wú)效。12.4 內(nèi)存映射/寄存器定義表12-2列出了內(nèi)存映射模塊的地址和訪問(wèn)方式。表12-2模塊的內(nèi)存映射偏移寄存器訪問(wèn)復(fù)位節(jié)/頁(yè)0x0_8030OMISR外向(outbound)消息中斷狀態(tài)寄存器特殊0x0000_0000/12-40x0_8034OMIMR發(fā)送消息中斷屏蔽寄存器R/W0x0000_0000/12-40x0_8050IMR0內(nèi)向(inbound)消息寄存器0R/W0x0000_0000/12-40x0_8054IMR1接收消息寄存器1R/W0x0000_
5、0000/12-40x0_8058OMR0發(fā)送消息寄存器0R/W0x0000_0000/12-40x0_805COMR1發(fā)送消息寄存器1R/W0x0000_0000/12-40x0_8060ODR發(fā)送門(mén)鈴寄存器R/W0x0000_0000/12-40x0_8068IDR接收門(mén)鈴寄存器R/W0x0000_0000/12-40x0_8080IMISR接收消息中斷狀態(tài)寄存器R/W0x0000_0000/12-40x0_8084IMIMR接收消息中斷屏蔽寄存器R/W0x0000_0000/12-40x0_8100DMAMR0DMA 0模式寄存器R/W0x0000_0000.1/12-40x0_8104
6、DMASR0DMA 0狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8108DMACDAR0DMA 0當(dāng)前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8110DMASAR0DMA 0源地址寄存器R/W0x0000_0000.4/12-40x0_8118DMADAR0DMA 0目的地址寄存器R/W0x0000_0000.5/12-40x0_8120DMABCR0DMA 0字節(jié)計(jì)數(shù)寄存器R/W0x0000_0000.6/12-40x0_8124DMANDAR0DMA 0下一個(gè)描述符地址寄存器R/W0x0000_0000.7/12-40x0_8180DMAMR1D
7、MA 1模式寄存器R/W0x0000_0000.1/12-40x0_8184DMASR1DMA 1狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8188DMACDAR1DMA 1當(dāng)前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8190DMASAR1DMA 1源地址寄存器R/W0x0000_0000.4/12-40x0_8198DMADAR1DMA 1目的地址寄存器R/W0x0000_0000.5/12-40x0_81A0DMABCR1DMA 1字節(jié)計(jì)數(shù)寄存器R/W0x0000_0000.6/12-40x0_81A4DMANDAR1DMA 1下一個(gè)描述符地址寄
8、存器R/W0x0000_0000.7/12-40x0_8200DMAMR2DMA 2模式寄存器R/W0x0000_0000.1/12-40x0_8204DMASR2DMA 2狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8208DMACDAR2DMA 2當(dāng)前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8210DMASAR2DMA 2源地址寄存器R/W0x0000_0000.4/12-40x0_8218DMADAR2DMA 2目的地址寄存器R/W0x0000_0000.5/12-40x0_8220DMABCR2DMA 2字節(jié)計(jì)數(shù)寄存器R/W0x0000_000
9、0.6/12-40x0_8224DMANDAR2DMA 2下一個(gè)描述符地址寄存器R/W0x0000_0000.7/12-40x0_8280DMAMR3DMA 3模式寄存器R/W0x0000_0000.1/12-40x0_8284DMASR3DMA 3狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8288DMACDAR3DMA 3當(dāng)前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8290DMASAR3DMA 3源地址寄存器R/W0x0000_0000.4/12-40x0_8298DMADAR3DMA 3目的地址寄存器R/W0x0000_0000.5/12-40x
10、0_82A0DMABCR3DMA 3字節(jié)計(jì)數(shù)寄存器R/W0x0000_0000.6/12-40x0_82A4DMANDAR3DMA31下一個(gè)描述符地址寄存器R/W0x0000_0000.7/12-40x0_82A8DMAGSRDMA通用狀態(tài)寄存器R0x0000_0000.8/12-40x0_82B00x0_82FF保留12.5 寄存器說(shuō)明下面幾節(jié)介紹DMA/消息收發(fā)單元的配置、控制和狀態(tài)寄存器。注意,所有注釋為PCI總線可訪問(wèn)的消息收發(fā)單元寄存器也可以從PCI總線訪問(wèn)。但只有一個(gè)/INTA信號(hào),所以建議用使用/INTA信號(hào)的PCI總線使用消息收發(fā)單元的發(fā)送部分。注意本節(jié)介紹的寄存器使用小端格式
11、字節(jié)序。運(yùn)行在本地處理器上的使用大端格式模式的軟件必須交換數(shù)據(jù)的字節(jié)。從PCI總線訪問(wèn)這些寄存器時(shí)不進(jìn)行字節(jié)交換。12.5.1 發(fā)送消息中斷狀態(tài)寄存器(OMISR Outbound Message Interrupt status Register)OMISR包括門(mén)鈴和發(fā)送消息寄存器的中斷狀態(tài)。PCI設(shè)備將1寫(xiě)入合適的狀態(tài)位應(yīng)答發(fā)送消息中斷:OMISROM1I或OMISROM0I。置位其中的某一位清除中斷和對(duì)應(yīng)的狀態(tài)位。本地處理器寫(xiě)入兩個(gè)發(fā)送消息寄存器中的某一個(gè)激活發(fā)送消息中斷:OMR0或OMR1??梢詮腃SB或PCI總線訪問(wèn)OMISR,但通常只從PCI總線訪問(wèn)該寄存器。圖12-2顯示了OMI
12、SR的字段。圖12-2 發(fā)送消息中斷狀態(tài)寄存器(OMISR)表12-3說(shuō)明了OMISR寄存器。表12-3 OMISR字段說(shuō)明位名字說(shuō)明314保留3ODI發(fā)送門(mén)鈴中斷。該只讀位指示ODR位的狀態(tài)。由OMIMRODIM屏蔽。0 無(wú)發(fā)送門(mén)鈴中斷。1 有發(fā)送門(mén)鈴中斷。2保留1OM1I發(fā)送消息1中斷。當(dāng)置位時(shí),指示有一個(gè)發(fā)送消息1中斷。向該位置寫(xiě)入1清除該位。0 無(wú)發(fā)送消息1中斷。1 有發(fā)送消息1中斷。0OM0I發(fā)送消息0中斷。當(dāng)置位時(shí),指示有一個(gè)發(fā)送消息0中斷。向該位置寫(xiě)入1清除該位。0 無(wú)發(fā)送消息0中斷。1 有發(fā)送消息0中斷。12.5.2 發(fā)送消息中斷屏蔽寄存器(OMIMR Outbound Mes
13、sage Interrupt Mask Register)OMIMR包括本地處理器產(chǎn)生的門(mén)鈴和消息寄存器事件的中斷屏蔽??梢詮腃SB或PCI總線讀取OMIMR,但只從PCI總線清除該寄存器。圖12-3顯示了OMIMR的字段。圖12-3 發(fā)送消息中斷屏蔽寄存器(OMIMR)表12-4說(shuō)明了OMIMR寄存器。表12-4 OMIMR字段說(shuō)明位名字說(shuō)明314保留3ODIM發(fā)送門(mén)鈴中斷屏蔽。0 允許發(fā)送門(mén)鈴中斷。1 屏蔽發(fā)送門(mén)鈴中斷。2保留1OM1IM發(fā)送消息1中斷屏蔽。0 允許發(fā)送消息1中斷。1 屏蔽發(fā)送消息1中斷。0OM0IM發(fā)送消息0中斷屏蔽。0 允許發(fā)送消息0中斷。1 屏蔽發(fā)送消息0中斷。12.
14、5.3 接收消息寄存器(IMR0IMR1 Inbound Message Register)可以從主機(jī)或代理模式中的PCI總線或CSB讀取接收消息寄存器。只能從PCI總線寫(xiě)入該寄存器。圖12-4顯示了IMR0和IMR1的字段。圖12-4 接收消息寄存器(IMR0,IMR1)表12-5說(shuō)明了IMRn寄存器。表12-5 IMR0和IMR1字段說(shuō)明位名字說(shuō)明310IMSGn接收消息n。包括要在本地處理器和外部主設(shè)備之間傳遞的通用數(shù)據(jù)。12.5.4 發(fā)送消息寄存器(OMR0OMR1 Outbound Message Register)可以從主控或代理模式中的PCI總線或CSB讀取發(fā)送消息寄存器。只能從
15、CSB寫(xiě)入該寄存器。圖12-5 發(fā)送消息寄存器(OMR0OMR1)表12-6說(shuō)明了OMRn寄存器。表12-6 OMR0和OMR1字段說(shuō)明位名字說(shuō)明310OMSGn發(fā)送消息n。包括要在本地處理器和外部主設(shè)備之間傳遞的通用數(shù)據(jù)。12.5.5 門(mén)鈴寄存器(Doorbell Register)下面幾節(jié)介紹發(fā)送和接收門(mén)鈴寄存器。12.5.5.1 發(fā)送門(mén)鈴寄存器(ODR Outbound Doorbell Register)ODR對(duì)主機(jī)或代理模式中的PCI總線或CSB都是可訪問(wèn)的。圖12-6顯示了ODRn的字段。圖12-6 發(fā)送門(mén)鈴寄存器(ODR)表12-7說(shuō)明了ODRn寄存器。表12-7 ODR字段說(shuō)明
16、位名字說(shuō)明3129保留280ODRn發(fā)送門(mén)鈴n。從CSB寫(xiě)入1置位。從PCI總線寫(xiě)入1清除。寫(xiě)入0不起作用。(從CSB寫(xiě)入該寄存器的某一位引起中斷(/INTA)產(chǎn)生。)12.5.5.2 接收門(mén)鈴寄存器(IDR Inbound Doorbell Register)IDR對(duì)主機(jī)或代理模式中的PCI總線或CSB都是可訪問(wèn)的。圖12-7顯示了IDRn的字段。圖12-7 發(fā)送門(mén)鈴寄存器(IDR)表12-8說(shuō)明了IDRn寄存器。表12-8 IDR字段說(shuō)明位名字說(shuō)明31IMC接收機(jī)器檢查。從PCI總線寫(xiě)入1置位。從CSB寫(xiě)入1清除。寫(xiě)入0不起作用。(從PCI總線寫(xiě)入該寄存器的某一位引起到本地處理器的機(jī)器檢查
17、中斷。)300IDRn接收門(mén)鈴n。從PCI總線寫(xiě)入1置位。從CSB寫(xiě)入1清除。寫(xiě)入0不起作用。(從PCI總線寫(xiě)入該寄存器的某一位引起到本地處理器的機(jī)器檢查中斷。)12.5.6 接收消息中斷狀態(tài)寄存器(IMISR Inbound Message Interrupt status Register)IMISR包括門(mén)鈴和接收消息寄存器事件的中斷狀態(tài)。將1寫(xiě)入IM1I清除該位。事件由PCI主設(shè)備產(chǎn)生。應(yīng)只從CSB訪問(wèn)IMISR,且只能為代理模式。從主機(jī)模式或從PCI總線訪問(wèn)產(chǎn)生未定義的結(jié)果。圖12-8顯示了IMISR的字段。圖12-8 接收消息中斷狀態(tài)寄存器(IMISR)表12-9說(shuō)明了IMISR寄存
18、器。表12-9 IMISR字段說(shuō)明位名字說(shuō)明315保留4MCI機(jī)器檢查中斷。指示是否出現(xiàn)了置位IDR31所產(chǎn)生的機(jī)器檢查中斷的情況。將1寫(xiě)入IDR31清除該中斷。0 無(wú)機(jī)器檢查中斷。1 有機(jī)器檢查中斷。4IDI接收門(mén)鈴中斷。指示是否出現(xiàn)了接收門(mén)鈴中斷。0 無(wú)接收門(mén)鈴中斷。1 有接收門(mén)鈴中斷。2保留1IM1I接收消息1中斷。指示是否出現(xiàn)了接收消息1中斷。向該位置寫(xiě)入1清除該位。0 無(wú)接收消息1中斷。1 有接收消息1中斷。0IM0I發(fā)送消息0中斷。指示是否出現(xiàn)了接收消息0中斷。向該位置寫(xiě)入1清除該位。0 無(wú)接收消息0中斷。1 有接收消息0中斷。12.5.7 接收消息中斷屏蔽寄存器(IMIMR In
19、bound Message Interrupt Mask Register)該寄存器包括PCI主設(shè)備產(chǎn)生的門(mén)鈴和消息寄存器事件的中斷屏蔽。應(yīng)只從CSB訪問(wèn)IMIMR,且只能為代理模式。從主機(jī)模式或從PCI總線訪問(wèn)產(chǎn)生未定義的結(jié)果。圖12-9顯示了IMIMR的字段。圖12-9 接收消息中斷屏蔽寄存器(IMIMR)表12-10說(shuō)明了IMIMR寄存器。表12-10 IMIMR字段說(shuō)明位名字說(shuō)明315保留4MCIM機(jī)器檢查中斷屏蔽。0 允許從IDR產(chǎn)生機(jī)器檢查中斷。1 屏蔽機(jī)器檢查中斷。清除IMISRMCI。4IDIM接收門(mén)鈴中斷屏蔽。0 允許接收門(mén)鈴中斷。1 屏蔽接收門(mén)鈴中斷。清除IMISRIDI。
20、2保留1IM1IM接收消息1中斷屏蔽。0 允許接收消息1中斷。1 屏蔽接收消息1中斷。清除IMISRIM1I。0IM0IM發(fā)送消息0中斷屏蔽。0 允許接收消息0中斷。1 屏蔽接收消息0中斷。清除IMISRIM0I。12.5.8 DMA寄存器每個(gè)DMA通道都有一組七個(gè)32位的寄存器(模式、狀態(tài)、當(dāng)前描述符地址、下一個(gè)當(dāng)前描述符地址、源地址、目的地址和字節(jié)計(jì)數(shù))支持事務(wù)。下面幾節(jié)介紹DMA支持寄存器的格式。12.5.8.1 DMA模式寄存器(DMAMRn DMA Mode Register)本節(jié)介紹DMA模式寄存器。DMA模式寄存器允許軟件啟動(dòng)DMA傳輸,并控制各種DMA傳輸特性。圖12-10顯示
21、了DMAMRn的字段。圖12-10 DMA模式寄存器(DMAMRn)表12-11說(shuō)明了DMAMRn寄存器。表12-11 DMAMRn字段說(shuō)明位名字說(shuō)明3128保留2724DRCNTDMA請(qǐng)求計(jì)數(shù)。該字段指定當(dāng)EMSEN為1時(shí)每個(gè)DMA請(qǐng)求有效所傳輸?shù)腸ache行的數(shù)量。如果EMSEM為0,則不使用該字段。0101 1個(gè)cache行0110 2個(gè)cache行0111 4個(gè)cache行1000 8個(gè)cache行1110 16個(gè)cache行1010 32個(gè)cache行其他保留2321BWC帶寬控制。僅在多個(gè)通道并發(fā)執(zhí)行傳輸時(shí)使用。該字段確定在給定的通道被準(zhǔn)許訪問(wèn)IOS接口之后、將接口釋放給下一個(gè)通道
22、之前,允許該給定通道傳輸多少個(gè)cache行。這樣就允許用戶定義DMA通道的優(yōu)先級(jí)。BWC的值如下所列:000 1個(gè)cache行001 2個(gè)cache行010 4個(gè)cache行011 8個(gè)cache行100 16個(gè)cache行其他保留20DMSEN直通模式監(jiān)聽(tīng)允許。該位控制直通模式DMA事務(wù)的監(jiān)聽(tīng)。0 禁止監(jiān)聽(tīng)。1 允許監(jiān)聽(tīng)。19IRQS中斷導(dǎo)向。該位確定DMA中斷的目的地。0 所有DMA中斷都發(fā)送給片上中斷控制器。1 所有DMA中斷都通過(guò)/INTA發(fā)送給PCI總線。18EMSEN外部主設(shè)備啟動(dòng)允許。當(dāng)DMA傳輸完成時(shí)清除該位,所以必須為每一次傳輸重新置位該位。0 由軟件置位CS位啟動(dòng)通道。1
23、由硬件將/DREQ置為有效啟動(dòng)通道。1716DAHTS目的地址保持傳輸長(zhǎng)度。當(dāng)DAHE為1時(shí),該字段指示每個(gè)事務(wù)所使用的傳輸長(zhǎng)度。字節(jié)計(jì)數(shù)寄存器必須為該長(zhǎng)度的整數(shù)倍,且目的地址寄存器必須按該長(zhǎng)度對(duì)齊。00 1個(gè)字節(jié)01 2個(gè)字節(jié)10 4個(gè)字節(jié)11 8個(gè)字節(jié)1514SAHTS源地址保持傳輸長(zhǎng)度。當(dāng)SAHE為1時(shí),該字段指示每個(gè)事務(wù)所使用的傳輸長(zhǎng)度。字節(jié)計(jì)數(shù)寄存器必須為該長(zhǎng)度的整數(shù)倍,且源地址寄存器必須按該長(zhǎng)度對(duì)齊。00 1個(gè)字節(jié)01 2個(gè)字節(jié)10 4個(gè)字節(jié)11 8個(gè)字節(jié)13DAHE目的地址保持允許。該位允許DMA控制器保持每個(gè)傳輸?shù)哪康牡刂凡蛔?。傳輸使用的長(zhǎng)度由DAHTS指示。注意,對(duì)于該特性,
24、硬件僅支持對(duì)齊傳輸。0 不保持目的地址不變。1 保持目的地址不變。注意:DMA不支持同一傳輸中源和目的的同時(shí)地址保持。12SAHE源地址保持允許。該位允許DMA控制器保持每個(gè)傳輸?shù)脑吹刂凡蛔儭鬏斒褂玫拈L(zhǎng)度由SAHTS指示。注意,對(duì)于該特性,硬件僅支持對(duì)齊傳輸。0 不保持源地址不變。1 保持源地址不變。注意:DMA不支持同一傳輸中源和目的的同時(shí)地址保持。1110PRCPCI讀命令。該字段指示使用的PCI讀命令的類(lèi)型。00 1個(gè)PCI讀01 2個(gè)PCI讀行10 4個(gè)PCI讀多行11 8保留98保留7EOTIE傳輸結(jié)束中斷允許。該位確定在完成DMA傳輸時(shí)是否產(chǎn)生中斷。將傳輸結(jié)束定義為直通模式傳輸結(jié)
25、束,或在鏈模式中,鏈的最后一段傳輸結(jié)束。0 不產(chǎn)生EOT中斷。1 產(chǎn)生EOT中斷。64保留3TEM傳輸錯(cuò)誤屏蔽。該位確定出現(xiàn)傳輸錯(cuò)誤事件的DMA的響應(yīng)。0 當(dāng)出現(xiàn)傳輸錯(cuò)誤時(shí)(DMASRnTE置位),DMA停止。1 不論是否出現(xiàn)傳輸錯(cuò)誤(TE未置位),DMA都將完成傳輸。2CTM通道傳輸模式。0 鏈模式。1 直通模式。1CC通道繼續(xù)。該位僅用于鏈模式。置位該位指示應(yīng)重復(fù)當(dāng)前描述符段。一旦開(kāi)始重復(fù),DMA就清除CC,所以它只引起一次重復(fù)。0 正常鏈。1 不從DMANDAR裝入DMACDAR,重復(fù)當(dāng)前描述符段。0CS通道啟動(dòng)。當(dāng)通道不忙時(shí)(DMASRnCB位為0),如果該位發(fā)生從0到1的跳變,則啟動(dòng)
26、DMA處理。如果通道忙且出現(xiàn)了從0到1的跳變,則DMA通道從上次停止?fàn)顟B(tài)重新啟動(dòng)。當(dāng)通道忙時(shí)(CB位為1),如果發(fā)生從1到0的跳變,則停止DMA處理。如果通道不忙且出現(xiàn)了從1到0的跳變,則什么也不會(huì)發(fā)生。在傳輸結(jié)束時(shí),DMA清除該位。12.5.8.2 DMA狀態(tài)寄存器(DMASRn DMA Status Register)本節(jié)介紹DMA狀態(tài)寄存器。狀態(tài)寄存器報(bào)告DMA傳輸期間和之后的各種DMA狀態(tài)。將1寫(xiě)入特定的、置位了的位清除該位。圖12-11顯示了DMASRn的字段。圖12-11 DMA狀態(tài)寄存器(DMASRn)表12-12說(shuō)明了DMASRn寄存器。表12-12 DMASRn字段說(shuō)明位名字
27、說(shuō)明318保留7TE傳輸錯(cuò)誤。在DMA傳輸期間出現(xiàn)錯(cuò)誤時(shí)置位該位,并清除DMAMRnTEM位。63保留2CB通道忙。該位指示通道是否忙。下列任何一種情況都清除該位:DMA傳輸(1)錯(cuò)誤,(2)停止,(3)完成。0 當(dāng)前未進(jìn)行DMA傳輸。1 當(dāng)前正進(jìn)行DMA傳輸。1EOSI段結(jié)束中斷。在傳輸了一個(gè)數(shù)據(jù)段之后,如果當(dāng)前描述符地址寄存器中的DMACDARnEOSIE置位,則置位該位,并產(chǎn)生一個(gè)中斷。0EOCDI鏈/直通結(jié)束。當(dāng)完成了最后一個(gè)DMA傳輸時(shí),不論是在鏈模式中還是在直通模式中,如果DMAMREOTIE置位,則置位該位,并產(chǎn)生一個(gè)中斷。12.5.8.3 DMA當(dāng)前描述符地址寄存器(DMACD
28、ARn DMA Current Descriptor Address Register)DMACDARn包括正在傳輸?shù)漠?dāng)前段描述符的地址。在鏈模式中,軟件必須初始化該寄存器,使其指向鏈中的第一個(gè)描述符。在處理完第一個(gè)描述符之后,DMA控制器將下一個(gè)描述符地址寄存器的內(nèi)容移動(dòng)到DMACDAR中,將后面的描述符裝入到DMANDAR中,并執(zhí)行當(dāng)前傳輸。圖12-12和圖12-13顯示了DMACDARn的字段。圖12-12 DMA當(dāng)前描述符地址寄存器(DMACDARn)圖12-13 DMA當(dāng)前描述符地址寄存器(DMACDARn)表12-13說(shuō)明了DMACDARn寄存器。表12-13 DMACDARn字段
29、說(shuō)明位名字說(shuō)明315CDA當(dāng)前描述符地址。該字段包括存貯器中的段描述符的當(dāng)前描述符地址。它必須按8字邊界對(duì)齊。4SNEN監(jiān)聽(tīng)允許。0 在當(dāng)前段的DMA事務(wù)上禁止監(jiān)聽(tīng)。1 在當(dāng)前段的DMA事務(wù)上允許監(jiān)聽(tīng)。3EOSIE段結(jié)束中斷允許。0 不產(chǎn)生段結(jié)束中斷。1 當(dāng)完成當(dāng)前描述符的當(dāng)前DMA傳輸時(shí),產(chǎn)生一個(gè)中斷。20保留12.5.8.4 DMA源地址寄存器(DMASARn DMA Source Address Register)DMASARn指示DMA控制器將從哪個(gè)地址讀取數(shù)據(jù)。軟件必須保證該地址正確。圖12-14顯示了DMASARn的字段。圖12-14 DMA源地址寄存器(DMASARn)表12-1
30、4說(shuō)明了DMASARn寄存器。表12-14 DMASARn字段說(shuō)明位名字說(shuō)明310SADMA傳輸?shù)脑吹刂贰C看蜠MA讀操作之后都更新該字段的內(nèi)容。12.5.8.5 DMA目的地址寄存器(DMADARn DMA Destination Address Register)DMADARn指示DMA控制器將數(shù)據(jù)寫(xiě)入哪個(gè)地址。軟件必須保證該地址正確。圖12-15顯示了DMADARn的字段。圖12-15 DMA目的地址寄存器(DMADARn)表12-15說(shuō)明了DMADARn寄存器。表12-15 DMADARn字段說(shuō)明位名字說(shuō)明310DADMA傳輸?shù)哪康牡刂?。每次DMA寫(xiě)操作之后都更新。12.5.8.6 D
31、MA字節(jié)計(jì)數(shù)寄存器(DMABCRn DMA Byte Count Register)DMABCRn包括每次傳輸?shù)淖止?jié)數(shù)(最大傳輸長(zhǎng)度為64M字節(jié))。圖12-16顯示了DMABCRn的字段。圖12-16 DMA字節(jié)計(jì)數(shù)寄存器(DMABCRn)表12-16說(shuō)明了DMABCRn寄存器。表12-15 DMABCRn字段說(shuō)明位名字說(shuō)明3126保留250BC字節(jié)計(jì)數(shù)。該字段包括要傳輸?shù)淖止?jié)數(shù)。每次DMA讀操作之后,該寄存器的值遞減。12.5.8.7 DMA下一個(gè)描述符地址寄存器(DMANDARn DMA Next Descriptor Address Register)DMANDARn包括鏈中下一個(gè)段描述
32、符的地址。在鏈模式中,將當(dāng)前描述符地址寄存器指向的描述符的“下一個(gè)描述符”字段裝入到該寄存器。圖12-17顯示了DMANDARn的字段。圖12-17 DMA下一個(gè)描述符地址寄存器(DMANDARn)表12-17說(shuō)明了DMANDARn寄存器。表12-17 DMANDARn字段說(shuō)明位名字說(shuō)明315NDA下一個(gè)描述符地址。該字段包括存貯器中的段描述符的下一個(gè)描述符地址。它必須按8字邊界對(duì)齊。4NSNEN下一個(gè)監(jiān)聽(tīng)允許。0 在DMA事務(wù)上禁止監(jiān)聽(tīng)。1 在DMA事務(wù)上允許監(jiān)聽(tīng)。3NEOSIE下一個(gè)段結(jié)束中斷允許。0 不產(chǎn)生段結(jié)束中斷。1 當(dāng)完成下一個(gè)描述符的DMA傳輸時(shí),產(chǎn)生一個(gè)中斷。21保留0EOTD
33、傳輸結(jié)束描述符。0 該描述符包括到另一個(gè)描述符的鏈接。1 該描述符是要執(zhí)行的最后一個(gè)。12.5.8.8 DMA通用狀態(tài)寄存器(DMAGSR DMA General Status Register)DMAGSR將所有DMA通道的狀態(tài)位組合到一個(gè)寄存器中,提供對(duì)狀態(tài)位的更快速的訪問(wèn)。該寄存器的每個(gè)字節(jié)都提供一個(gè)通道的DMA狀態(tài)寄存器的位70。對(duì)每個(gè)DMA狀態(tài)寄存器的寫(xiě)操作?則清除這些位。圖12-18顯示了DMAGSR的字段。圖12-18 DMA通用狀態(tài)寄存器(DMAGSR)12.6 功能說(shuō)明12.6.1 消息單元嵌入式處理器通常是包括許多處理器和分布式存貯器的更大系統(tǒng)的一部分。這些處理器在處理任務(wù)
34、時(shí)往往不受系統(tǒng)中的主處理器或其他外圍處理器的約束。由于任務(wù)的獨(dú)立性本質(zhì),有必要在外圍處理器和系統(tǒng)的其余部分之間提供通信機(jī)制。其中的一種方法是使用消息。該部件提供消息收發(fā)單元,進(jìn)一步方便了主設(shè)備和外圍設(shè)備之間的通信。消息單元使用通用消息和門(mén)鈴寄存器。12.6.1.1 消息收發(fā)寄存器(IMR0IMR1)有兩個(gè)32位的接收消息寄存器(IMR0IMR1)和兩個(gè)32位的發(fā)送消息寄存器(OMR0OMR1)。IMR0和IMR1允許遠(yuǎn)程主機(jī)或PCI主設(shè)備寫(xiě)入32位的值,之后引起到片上中斷控制器的中斷請(qǐng)求,中斷控制器驅(qū)動(dòng)到本地處理器的中斷線路。OMR0和OMR1允許本地處理器寫(xiě)入發(fā)送的消息,之后引起發(fā)送中斷信號(hào)
35、/INTA有效。將1寫(xiě)入合適的IMISR位清除到本地處理器的中斷。將1寫(xiě)入合適的OMISR位清除到PCI(/INTA)的中斷。12.6.1.2 門(mén)鈴寄存器(IDR和ODR)該部件包括接收門(mén)鈴寄存器(IDR)和發(fā)送門(mén)鈴寄存器(ODR)。接收門(mén)鈴寄存器允許遠(yuǎn)程處理器從PCI總線置位該寄存器中的某一位,之后引起到片上中斷控制器的中斷請(qǐng)求,中斷控制器驅(qū)動(dòng)到本地處理器的中斷線路。本地處理器可以寫(xiě)入ODR,它會(huì)引起發(fā)送中斷信號(hào)/INTA有效,進(jìn)而中斷PCI總線上的遠(yuǎn)程處理器。將1寫(xiě)入合適的IDR位清除到本地處理器的中斷。將1寫(xiě)入合適的ODR位清除到PCI(/INTA)的中斷。12.6.2 DMA控制器DM
36、A控制器傳輸一塊數(shù)據(jù),不受本地處理器或PCI主設(shè)備的約束。數(shù)據(jù)移動(dòng)發(fā)生在PCI總線和/或CSB上。DMA模塊擁有四個(gè)高速DMA通道,它們共享IOS中的緩存空間,方便了數(shù)據(jù)的收集和發(fā)送。本地處理器和PCI主設(shè)備都可以啟動(dòng)DMA傳輸。DMA控制器具有以下特性:l 四個(gè)DAM通道l 跨多個(gè)通道的并發(fā)執(zhí)行,可編程帶寬控制l 所有通道對(duì)本地處理器和PCI主設(shè)備都是可訪問(wèn)的l 非對(duì)齊傳輸能力l 數(shù)據(jù)鏈和直通模式l 在完成段、鏈和錯(cuò)誤時(shí)產(chǎn)生中斷圖12-19給出了該集成設(shè)備中DMA控制器的結(jié)構(gòu)圖。圖12-19 DMA控制器結(jié)構(gòu)圖12.6.3 DMA操作DMA控制器按下列兩種模式操作:l 直通模式。在直通模式中
37、,DMA控制器不從存貯器讀取描述符鏈,而是使用DMA寄存器中的當(dāng)前參數(shù)啟動(dòng)DMA傳輸。當(dāng)字節(jié)計(jì)數(shù)寄存器規(guī)定的所有字節(jié)都被傳輸完之后,DMA傳輸完成。關(guān)于初始化步驟的更詳細(xì)信息參見(jiàn)節(jié)“直通模式中的初始化步驟”。l 鏈模式。在鏈模式中,DMA控制器在DMA傳輸之前從存貯器裝入描述符。DMA控制器根據(jù)為每個(gè)段裝入的描述符信息開(kāi)始傳輸。一旦當(dāng)前段完成,DMA控制器就從存貯器讀取下一個(gè)描述符,開(kāi)始另一個(gè)DMA傳輸。如果當(dāng)前描述符是鏈中的最后一個(gè),則處理完成。關(guān)于初始化步驟的更詳細(xì)信息參見(jiàn)節(jié)“鏈模式中的初始化步驟”。在這兩種模式中,置位DMA模式寄存器中的啟動(dòng)位開(kāi)始DMA傳輸。DMA控制器支持源地址和目的
38、地址的非對(duì)齊傳輸。它在源地址處開(kāi)始收集數(shù)據(jù),在將數(shù)據(jù)發(fā)送給目的之前將其對(duì)齊。DMA控制器假定源和目的地址是正確的PCI或CSB存貯器地址。對(duì)CSB存貯器的訪問(wèn)與源和目的地址的對(duì)齊及傳輸?shù)拈L(zhǎng)度有關(guān)。如果可能,DMA控制器就傳輸整個(gè)cache行。未對(duì)齊的目的地址導(dǎo)致在開(kāi)始時(shí)和傳輸?shù)淖詈髱着臑閹讉€(gè)小于一個(gè)cache行的子傳輸,中間幾拍則傳輸整個(gè)cache行。配置DMA通道的地址保持模式DMAMRn避免cache行傳輸。PCI存貯器讀操作與模式寄存器中的PRC(PCI讀命令)字段、源地址對(duì)齊和傳輸長(zhǎng)度有關(guān)。如果可能,DMA控制器就試圖讀取一個(gè)完整的cache行。寫(xiě)入PCI存貯器與目的地址對(duì)齊和傳輸長(zhǎng)度
39、有關(guān)。12.6.3.1 外部控制任何通道的DMA傳輸,不論是直通模式還是鏈模式,都可以用DMA請(qǐng)求輸入信號(hào)控制。置位外部主設(shè)備啟動(dòng)允許(EMSEN)位而不是DMA模式寄存器(DMAMRn)中的通道啟動(dòng)(CS)位,就可以允許外部控制。當(dāng)使用外部控制時(shí),有下列限制:l 源和目的地址必須與32個(gè)字節(jié)邊界對(duì)齊l 在鏈模式中,除最后一個(gè)外,所有的字節(jié)計(jì)數(shù)值都必須為32個(gè)字節(jié)的整數(shù)倍。/DREQn的下降沿置位DMAMRnCS啟動(dòng)傳輸,并宣告對(duì)應(yīng)的/DACKn輸出信號(hào)有效。傳輸DMA模式寄存器(DMAMRn)中的DMA請(qǐng)求計(jì)數(shù)(DRCNT)位規(guī)定的Cache行的數(shù)量(或剩余字節(jié)計(jì)數(shù),如果更小),然后清除CS
40、位,讓/DACKn輸出信號(hào)無(wú)效,停止傳輸,直到下一次/DREQn有效為止。當(dāng)使用/DACKn握手信號(hào)時(shí),應(yīng)一直保持/DREQn有效,直到/DACKn有效為止,此時(shí)/DREQn可以無(wú)效。一旦/DACKn無(wú)效,/DREQn可以再次有效,恢復(fù)傳輸或啟動(dòng)一個(gè)新的傳輸。如果未使用/DACKn握手信號(hào),則應(yīng)一直保持/DREQn有效,直到DMA傳輸?shù)牡谝粋€(gè)事務(wù)出現(xiàn)在外部接口上為止。此時(shí)/DREQn可以無(wú)效。在/DREQn無(wú)效后的最早一個(gè)時(shí)鐘周期,盡管當(dāng)前傳輸還在進(jìn)行,但/DREQn可以再次有效,恢復(fù)傳輸或啟動(dòng)一個(gè)新的傳輸。在處理傳輸時(shí),DMA控制器可以記錄新的/DREQn有效,一旦傳輸停止,就再次置位DMA
41、MRnCS。一旦傳輸完成,DMA控制器就清除DMAMRnEMSEN,并且在用戶置位DMAMRnEMSEN之前,不再置位DMAMRnCS。/DREQn有效和DMAMRnEMSEN置位可以任意次序出現(xiàn),后面出現(xiàn)的將激活DMA傳輸。當(dāng)DMA傳輸完成時(shí),/DDONEn輸出信號(hào)有效,即字節(jié)計(jì)數(shù)寄存器或描述符規(guī)定的所有字節(jié)都已經(jīng)被傳輸了??梢园言撔盘?hào)用作傳輸?shù)腸ache行數(shù)可能小于DRCNT字段規(guī)定數(shù)的指示。注意/DACKn和/DDONEn輸出信號(hào)是用于/DREQn的握手信號(hào)的。它們根據(jù)DMA控制器內(nèi)部邏輯變?yōu)橛行Ш蜔o(wú)效。這些信號(hào)與出現(xiàn)在設(shè)備外部引腳上的事務(wù)并不同步。特別地,/DACKn 無(wú)效或/DDON
42、En有效并不意味著DMA傳輸?shù)乃惺聞?wù)象在外部引腳上看到的那樣都已經(jīng)完成了。關(guān)于初始化步驟的更詳細(xì)信息參見(jiàn)節(jié)“利用外部信號(hào)的直通模式中的初始化步驟”和12.7.4節(jié)“利用外部信號(hào)的鏈模式中的初始化步驟”。12.6.3.2 DMA一致性四個(gè)DMA通道使用多達(dá)四個(gè)cache行(128個(gè)字節(jié))的IOS中的緩存空間和16個(gè)字節(jié)的本地空間。因?yàn)樵谶@些內(nèi)部隊(duì)列中沒(méi)有地址監(jiān)聽(tīng),在進(jìn)行DMA傳輸時(shí),這些隊(duì)列存儲(chǔ)的數(shù)據(jù)對(duì)系統(tǒng)的其余部分是不可見(jiàn)的。應(yīng)用軟件有責(zé)任保證在DMA處理期間正被傳輸區(qū)域的一致性。在DMA事務(wù)期間,可以選擇監(jiān)聽(tīng)CPU或處理器數(shù)據(jù)cache。在DMA當(dāng)前描述符地址寄存器(DMACDARn)和D
43、MA下一個(gè)描述符地址寄存器(DMANDARn)中提供了一個(gè)監(jiān)聽(tīng)位,允許軟件按段控制何時(shí)監(jiān)聽(tīng)cache。12.6.3.3 停止和錯(cuò)誤情況清除DMA模式寄存器(DMAMRn)中的CS位或在遇到錯(cuò)誤情況時(shí),都停止DMA傳輸。不論哪一種情況,應(yīng)用軟件都可以進(jìn)行下列某個(gè)處理:l 繼續(xù)DMA傳輸l 重新配置DMA進(jìn)行新的傳輸l 讓通道處于停止?fàn)顟B(tài)當(dāng)DMA通道停止時(shí),其可編程模型是完全可訪問(wèn)的。如果DMA由于錯(cuò)誤情況而停止,則必須清除DMA狀態(tài)寄存器(DMASRn)中的TE(傳輸錯(cuò)誤)位,然后才可以恢復(fù)傳輸或啟動(dòng)一個(gè)新的傳輸。注意,硬件不自動(dòng)清除TE位。12.6.4 DMA段描述符DMA段描述符包括數(shù)據(jù)段的
44、源和目的地址、段字節(jié)計(jì)數(shù)和到下一個(gè)描述符的鏈接。段描述符按cache行(32個(gè)字節(jié))邊界在CSB或PCI存貯器中建立,并用下一個(gè)描述符地址字段鏈接在一起形成鏈。表12-18 DMA段描述符字段描述符字段說(shuō)明源地址包括DMA傳輸?shù)脑吹刂贰T贒MA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA源地址寄存器(DMASARn)中。目的地址包括DMA傳輸?shù)哪康牡刂?。在DMA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA目的地址寄存器(DMADARn)中。下一個(gè)描述符地址指向存貯器中的下一個(gè)描述符。在DMA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA下一個(gè)描述符地址寄存器(DMANDA
45、Rn)中。字節(jié)計(jì)數(shù)包括要傳輸?shù)淖止?jié)數(shù)。在DMA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA字節(jié)計(jì)數(shù)寄存器(DMABCRn)中。應(yīng)用軟件初始化DMA當(dāng)前描述符地址寄存器(DMACDARn),讓它指向鏈中的第一個(gè)描述符。對(duì)于鏈中的每一個(gè)描述符,DMA控制器都用描述符規(guī)定的控制參數(shù)啟動(dòng)一個(gè)新的DMA傳輸。DMA控制器遍歷描述符鏈,直到到達(dá)最后一個(gè)描述符為止(其EOTD位置位)。圖12-20 段描述符的DMA鏈12.6.4.1 大端格式模式中的描述符在大端格式模式中,CSB存貯器中的描述符應(yīng)這樣設(shè)定:數(shù)據(jù)按有效字節(jié)升序順序出現(xiàn)。如果將段描述符寫(xiě)入CSB中的存貯器,應(yīng)將它門(mén)當(dāng)作就好象它們是從大端格式轉(zhuǎn)換為小端格式的。例:大端格式模式描述符的數(shù)據(jù)結(jié)構(gòu)。注意,描述符結(jié)構(gòu)必須是按8字邊界對(duì)齊的。structdouble a;double b;/* 0x55667788aabbccdddouble word *
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人合伙藝術(shù)品交易公司退伙收益分配合同4篇
- 2025年度個(gè)人入股合作協(xié)議書(shū)范本:旅游文化產(chǎn)業(yè)股權(quán)投資協(xié)議4篇
- 2024年優(yōu)化金融環(huán)境治理金融亂象攻堅(jiān)戰(zhàn)實(shí)施方案
- 二零二五年度股權(quán)抵押融資租賃合同范本3篇
- 二零二五年度金屬模具加工與維修服務(wù)合同3篇
- 2025年銷(xiāo)售薪資與績(jī)效獎(jiǎng)金合同范本
- 影視培訓(xùn)網(wǎng)上課程設(shè)計(jì)
- 2025年度酒店餐飲廢棄物資源化利用技術(shù)研發(fā)合同3篇
- 2025年重型貨車(chē)抵押貸款合同模板4篇
- 2025年水果產(chǎn)品線上線下聯(lián)合促銷(xiāo)合同3篇
- 初級(jí)會(huì)計(jì)實(shí)務(wù)會(huì)計(jì)專(zhuān)業(yè)考試試題及解答參考(2025年)
- 三級(jí)人工智能訓(xùn)練師(高級(jí))職業(yè)技能等級(jí)認(rèn)定考試題及答案
- 華為全屋智能試題
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識(shí)清單 統(tǒng)編版語(yǔ)文八年級(jí)下冊(cè)
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門(mén)診病歷
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無(wú)違法犯罪記錄證明申請(qǐng)表(個(gè)人)
- 大學(xué)生勞動(dòng)教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
評(píng)論
0/150
提交評(píng)論