您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第12章 DMA消息收发单元
第十二章DMA/消息收发单元12.1概述DMA/消息收发单元支持不同总线上两个的处理器之间的通信,例如本地处理器和PCI总线上的处理器。该单元在运行时使用通用(generic)消息和门铃寄存器。图12-1是DMA/消息收发单元的结构图。图12-1DMA/消息收发单元结构图该部件还提供了DMA控制器,用于传输数据块,不受本地处理器或PCI主设备的约束。DMA模块拥有四个高速DMA通道,这四个通道共享I/O定序器(ISOI/OSequencer)中的缓存空间,方便数据的收集和发送。12.2特性DMA/消息收发单元包括下列特性:用于处理器间通信的消息和门铃寄存器DMA控制器四个DMA通道跨多个通道的并发执行,可编程带宽控制非对齐传输能力数据链和直通模式在完成段、链和错误时产生中断每个通道都具有可选的外部控制信号(REQ/ACK/DONE)12.3外部信号说明本节介绍DMA信号12.3.1详细信号说明表12-1包含DMA接口信号的详细说明。表12-1DMA接口信号——详细信号说明信号I/O说明/DREQ[0:3]IDMA请求信号,每个通道一个。DMA请求信号指示DMA传输的开始或继续。/DREQn的下降沿引起DMAMRn[CS]置位,从而激活DMA通道。状态含义有效——如果DMAMRn[EMSEN]为1,则/DREQn有效启动或恢复一个DMA传输。无效——/DREQn无效不起作用。时序有效——可以异步有效。无效——应一直保持有效,直到/DACKn有效或到外设的请求事务出现为止。/DACK[0:3]ODMA应答信号,每个通道一个。DMA应答信号反映DMAMRn[CS]的值。状态含义有效——正在进行DMA传输。无效——DMA传输停止或完成。时序有效——在内部控制逻辑启动或恢复DMA传输时异步有效。无效——在内部控制逻辑停止或完成DMA传输时异步无效。注意,在/DACKn无效后,在总线流水上可能还存在未完成的写事务。/DDONE[0:3]ODMA完成信号,每个通道一个。DMA完成信号指示DMA传输已经完成。状态含义有效——DMA传输完毕。无效——DMA传输正在进行或停止。时序有效——在内部控制逻辑完成DMA传输时异步有效。注意,在/DDONEn有效后,在总线流水上可能还存在未完成的写事务。无效——在内部控制逻辑开始DMA传输时异步无效。12.4内存映射/寄存器定义表12-2列出了内存映射模块的地址和访问方式。表12-2模块的内存映射偏移寄存器访问复位节/页0x0_8030OMISR-外向(outbound)消息中断状态寄存器特殊0x0000_000012.5.1/12-40x0_8034OMIMR-发送消息中断屏蔽寄存器R/W0x0000_000012.5.2/12-40x0_8050IMR0-内向(inbound)消息寄存器0R/W0x0000_000012.5.3/12-40x0_8054IMR1-接收消息寄存器1R/W0x0000_000012.5.3/12-40x0_8058OMR0-发送消息寄存器0R/W0x0000_000012.5.4/12-40x0_805COMR1-发送消息寄存器1R/W0x0000_000012.5.4/12-40x0_8060ODR-发送门铃寄存器R/W0x0000_000012.5.5/12-40x0_8068IDR-接收门铃寄存器R/W0x0000_000012.5.5/12-40x0_8080IMISR-接收消息中断状态寄存器R/W0x0000_000012.5.6/12-40x0_8084IMIMR-接收消息中断屏蔽寄存器R/W0x0000_000012.5.7/12-40x0_8100DMAMR0-DMA0模式寄存器R/W0x0000_000012.5.8.1/12-40x0_8104DMASR0-DMA0状态寄存器R/W0x0000_000012.5.8.2/12-40x0_8108DMACDAR0-DMA0当前描述符地址寄存器R/W0x0000_000012.5.8.3/12-40x0_8110DMASAR0-DMA0源地址寄存器R/W0x0000_000012.5.8.4/12-40x0_8118DMADAR0-DMA0目的地址寄存器R/W0x0000_000012.5.8.5/12-40x0_8120DMABCR0-DMA0字节计数寄存器R/W0x0000_000012.5.8.6/12-40x0_8124DMANDAR0-DMA0下一个描述符地址寄存器R/W0x0000_000012.5.8.7/12-40x0_8180DMAMR1-DMA1模式寄存器R/W0x0000_000012.5.8.1/12-40x0_8184DMASR1-DMA1状态寄存器R/W0x0000_000012.5.8.2/12-40x0_8188DMACDAR1-DMA1当前描述符地址寄存器R/W0x0000_000012.5.8.3/12-40x0_8190DMASAR1-DMA1源地址寄存器R/W0x0000_000012.5.8.4/12-40x0_8198DMADAR1-DMA1目的地址寄存器R/W0x0000_000012.5.8.5/12-40x0_81A0DMABCR1-DMA1字节计数寄存器R/W0x0000_000012.5.8.6/12-40x0_81A4DMANDAR1-DMA1下一个描述符地址寄存器R/W0x0000_000012.5.8.7/12-40x0_8200DMAMR2-DMA2模式寄存器R/W0x0000_000012.5.8.1/12-40x0_8204DMASR2-DMA2状态寄存器R/W0x0000_000012.5.8.2/12-40x0_8208DMACDAR2-DMA2当前描述符地址寄存器R/W0x0000_000012.5.8.3/12-40x0_8210DMASAR2-DMA2源地址寄存器R/W0x0000_000012.5.8.4/12-40x0_8218DMADAR2-DMA2目的地址寄存器R/W0x0000_000012.5.8.5/12-40x0_8220DMABCR2-DMA2字节计数寄存器R/W0x0000_000012.5.8.6/12-40x0_8224DMANDAR2-DMA2下一个描述符地址寄存器R/W0x0000_000012.5.8.7/12-40x0_8280DMAMR3-DMA3模式寄存器R/W0x0000_000012.5.8.1/12-40x0_8284DMASR3-DMA3状态寄存器R/W0x0000_000012.5.8.2/12-40x0_8288DMACDAR3-DMA3当前描述符地址寄存器R/W0x0000_000012.5.8.3/12-40x0_8290DMASAR3-DMA3源地址寄存器R/W0x0000_000012.5.8.4/12-40x0_8298DMADAR3-DMA3目的地址寄存器R/W0x0000_000012.5.8.5/12-40x0_82A0DMABCR3-DMA3字节计数寄存器R/W0x0000_000012.5.8.6/12-40x0_82A4DMANDAR3-DMA31下一个描述符地址寄存器R/W0x0000_000012.5.8.7/12-40x0_82A8DMAGSR-DMA通用状态寄存器R0x0000_000012.5.1.8/12-40x0_82B0-0x0_82FF保留---12.5寄存器说明下面几节介绍DMA/消息收发单元的配置、控制和状态寄存器。注意,所有注释为PCI总线可访问的消息收发单元寄存器也可以从PCI总线访问。但只有一个/INTA信号,所以建议用使用/INTA信号的PCI总线使用消息收发单元的发送部分。注意本节介绍的寄存器使用小端格式字节序。运行在本地处理器上的使用大端格式模式的软件必须交换数据的字节。从PCI总线访问这些寄存器时不进行字节交换。12.5.1发送消息中断状态寄存器(OMISROutboundMessageInterruptstatusRegister)OMISR包括门铃和发送消息寄存器的中断状态。PCI设备将1写入合适的状态位应答发送消息中断:OMISR[OM1I]或OMISR[OM0I]。置位其中的某一位清除中断和对应的状态位。本地处理器写入两个发送消息寄存器中的某一个激活发送消息中断:OMR0或OMR1。可以从CSB或PCI总线访问OMISR,但通常只从PCI总线访问该寄存器。图12-2显示了OMISR的字段。图12-2发送消息中断状态寄存器(OMISR)表12-3说明了OMISR寄存器。表12-3OMISR字段说明位名字说明31-4-保留3ODI发送门铃中断。该只读位指示ODR位的状态。由OMIMR[ODIM]屏蔽。0无发送门铃中断。1有发送门铃中断。2-保留1OM1I发送消息1中断。当置位时,指示有一个发送消息1中断。向该位置写入1清除该位。0无发送消息1中断。1有发送消息1中断。0OM0I发送消息0中断。当置位时,指示有一个发送消息0中断。向该位置写入1清除该位。0无发送消息0中断。1有发送消息0中断。12.5.2发送消息中断屏蔽寄存器(OMIMROutboundMessageInterruptMaskRegister)OMIMR包括本地处理器产生的门铃和消息寄存器事件的中断屏蔽。可以从CSB或PCI总线读取OMIMR,但只从PCI总线清除该寄存器。图12-3显示了OMIMR的字段。图12-3发送消息中断屏蔽寄存器(OMIMR)表12-4说明了OMIMR寄存器。表12-4OMIMR字段说明位名字说明31-4-保留3ODIM发送门铃中断屏蔽。0允许发送门铃中断。1屏蔽发送门铃中断。2-保留1OM1IM发送消息1中断屏蔽。0允许发送消息1中断。1屏蔽发送消息1中断。0OM0IM发送消息0中断屏蔽。0允许发送消息0中断。1屏蔽发送消息0中断。12.5.3接收消息寄存器(IMR0-IMR1InboundMessageRegister)可以从主机或代理模式中的PCI总线或CSB读取接收消息寄存器。只能从PCI总线写入该寄存器。图12-4显示了IMR0和IMR1的字段。图12-4接收消息寄存器(IMR0,IMR1)表12-5说明了IMRn寄存器。表12-5IMR0和IMR1字段说明位名字说明31-0IMSGn接收消息n。包括要在本地处理器和外部主设备之间传递的通用数据。12.5.4发送消息寄存器(OMR0-OMR1OutboundMessageRegister)可以从主控或代理模式中的PCI总线或CSB读取发送消息寄存器。只能从CSB写入该寄存器。图12-5发送消息寄存器(OMR0-OMR1)表12-6说明了OMRn寄存器。表12-6OMR0和OMR1字段说明位名字说明31-0OMSGn发送消息n。包括要在本地处理器和外部主设备之间传递的通用数据。12.5.5门铃寄存器(DoorbellRegister)下面几节介绍发送和接收门铃寄存器。12.5.5.1发送门铃寄存器(ODROutboundDoorbellRegister)ODR对主机或代理模式中的PCI总线或CSB都是可访问的。图12-6显示了ODRn的字段。图12-6发送门铃寄存器(ODR)表12-7说明了ODRn寄存器。表12-7ODR字段说明位名字说明31-29-保留28-0ODRn发送门铃n。从CSB写入1置位。从PCI总线写入1清除。写入0不起作用。(从CSB写入该寄存器的某一位引起中断(/INTA)产生。)12.5.5.2接收门铃寄存器(IDRInboundDoorbellRegister)IDR对主机或代理模式中的PCI总线或CSB都是可访问的。图12-7显示了IDRn的字段。图12-7发送门铃寄存器(IDR)表12-8说明了IDRn寄存器。表12-8IDR字段说明位名字说明31IMC接收机器检查。从PCI总线写入1置位。从CSB写入1清除。写入0
本文标题:第12章 DMA消息收发单元
链接地址:https://www.777doc.com/doc-5976915 .html