一种动态可重构高速串行总线的dma传输装置与方法

文档序号:1504666 发布日期:2020-02-07 浏览:24次 >En<

阅读说明:本技术 一种动态可重构高速串行总线的dma传输装置与方法 (DMA transmission device and method for dynamically reconfigurable high-speed serial bus ) 是由 张伟功 周继芹 刘屹霄 王晶 高岚 朱晓燕 于 2019-11-07 设计创作,主要内容包括:一种动态可重构高速串行总线的DMA传输装置与方法,其特征在于:所述动态可重构高速串行总线的DMA传输装置,包括PCIe总线控制器、DMA寄存器、总线操作控制器、主机读写控制器、总线访问控制器和总线通信控制器,通过对动态可重构高速串行总线数据访问与主机存储访问的并行执行,可以提高动态可重构高速串行总线与主机之间的数据传输效率。(A DMA transmission device and method of a dynamic reconfigurable high-speed serial bus is characterized in that: the DMA transmission device of the dynamic reconfigurable high-speed serial bus comprises a PCIe bus controller, a DMA register, a bus operation controller, a host read-write controller, a bus access controller and a bus communication controller, and can improve the data transmission efficiency between the dynamic reconfigurable high-speed serial bus and a host by executing the data access of the dynamic reconfigurable high-speed serial bus and the storage access of the host in parallel.)

一种动态可重构高速串行总线的DMA传输装置与方法

技术领域

本发明涉及一种高速串行总线的数据传输方法及装置,尤其涉及一种动态可重构高速串行总线与主机之间的数据传输方法及装置。

背景技术

动态可重构高速串行总线(以下简称UM-BUS总线)是针对系统小型化与嵌入式一体化设计提出的一种能够将冗余容错与高速通信有机统一,具备远程扩展能力的高速串行总线。如图1所示,它采用基于MLVDS(Multipoint Low VoltageDifferential Signaling,多点低压差分信号)技术的总线型拓扑结构,支持多节点直接互连,最多可使用32条通道并发传输通信,通信速率可达6.4Gbps。在通信过程中,如果某些通道出现故障,总线控制器可实时地监测出来,并将数据动态分配到剩余有效通道上进行传输,实现动态重构,对通信故障进行动态容错。

UM-BUS总线采用主从命令应答的通信模式,通过总线数据包的形式进行信息交互。UM-BUS总线设备分为主控节点、从节点和监视节点,只有主控节点才能主动发起总线通信,从节点只能响应总线通信命令发送通信应答包,监视节点则不能向总线发送任何信息,只能对总线上的通信活动进行监听。

UM-BUS总线支持对总线节点的远程存储访问,支持存储器、IO和属性三个地址空间,存储器空间用于进行可缓冲的数据访问,属性空间用于存储节点的配置属性,IO空间用于访问实时变化信息。对存储器空间可以进行单字或256字读写访问,对IO空间和属性空间只能进行单字读写。UM-BUS总线单个字的大小是32位,共4字节。

对UM-BUS总线的访问都会转换为总线上传输的通信命令包和应答包进行信息交互。通信命令包与应答包分为长包和短包两种格式,统称为通信协议包,存储器256字读操作的应答包及存储器256字写操作的命令包采用长包格式,其它命令与应答均采用短包格式。UM-BUS总线通信协议包采用如图2所示的固定格式,包括命令头和数据两部分,短包只有命令头,长包则包括命令头和数据两部分。命令头部分共16字节,包括目标设备号、源设备号、命令/状态字、地址偏移、短包数据、响应命令字、执行状态字、命令头CRC;数据部分共1025字节,包括256字(1024字节)数据主体和一个CRC校验字节。

在应用时,UM-BUS总线需要通过常用的系统总线与主机处理器进行连接,主机通过系统总线访问UM-BUS总线通信控制器,完成对总线上其它节点的访问。在PC机系统中,目前常用的系统总线包括PCI、PCIe等。通常UM-BUS总线通信控制器等设备连接到PCIe总线上,PCIe主机只能直接访问通信控制器中的存储器及IO寄存器,要进行一次总线上其它节点的数据访问,必须通过对通信控制器中多个寄存器和存储器的写入构造一个通信命令,再启动通信控制器进行总线访问,然后主机通过查询或中断方式等待通信完成,再通过读取通信控制器的寄存器和存储器获得访问结果。要对总线节点进行大量存储器数据的访问,只能由软件循环执行上述访问,访问效率很低。

DMA是一种从存储器到存储器(或IO)的快速传输方法,不需要主处理器参与,DMA控制器会根据初始化设置,把存储器中的一块数据自动搬移到存储器的其它地址中,或搬移到固定的IO端口,反方向也可以。但目前的DMA操作技术都是针对固定的存储器和存储器(或IO端口),没有跨总线进行传输的技术。具体而言,利用现有技术,可以在PCIe总线上,实现从主机内存到UM-BUS总线通信控制器缓冲区的DMA传输,也可以实现从UM-BUS总线通信控制器缓冲区到主机内存的DMA传输,但不能实现主机内存到UM-BUS总线上其它节点内存的DMA传输。这严重影响了基于UM-BUS总线的系统的数据访问速度,也会占用较多的处理器时间进行数据传输。

为了提高UM-BUS总线节点设备与主机内存之间大量数据的传输效率,降低数据传输中主机处理器的时间开销,本发明提出一种基于自主调度和并发传输的总线数据DMA传输方法及装置,可以大幅度提高UM-BUS总线节点设备与主机内存间的数据传输效率,传输过程中,主机处理器只需要进行一次初始化操作即可。

发明内容

本发明的目的在于设计一种适于UM-BUS总线和主机内存间的高效数据传输装置与方法,为UM-BUS总线在系统中的应用提供高效解决方法。

为实现上述目的,本发明所采用的技术方案为:

一种动态可重构高速串行总线的DMA传输装置,其特征在于:包括PCIe总线控制器、DMA寄存器、总线操作控制器、主机读写控制器、总线访问控制器和总线通信控制器,其中所述PCIe总线控制器用于连接主机,在所述DMA传输装置与主机之间进行数据和命令传送;所述DMA寄存器用于存储PCIe总线控制器送来的DMA传输起始地址、传输长度、节点号、读写方向、主机内存地址等传输请求信息;所述总线操作控制器用于DMA传输的控制,根据DMA寄存器存储的传输请求信息,控制总线访问控制器、主机读写控制器进行动态可重构高速总线设备与主机内存之间的数据传输;所述主机读写控制器用于向PCIe总线控制器发送对主机内存进行数据读或写的命令,并向总线操作控制器提供主机侧的数据传输状态;所述总线访问控制器用于向总线通信控制器发送数据通信命令,并向总线操作控制器提供总线侧的数据传输状态;所述总线通信控制器用于连接动态可重构高速串行总线,完成总线编解码,实现对总线通信的管理。

一种动态可重构高速串行总线的DMA传输方法,其特征在于,根据前述的所述动态可重构高速串行总线的DMA传输装置采用如下步骤方法实现主机与总线设备之间的数据DMA传输:

(1)当需要在主机内存与动态可重构高速串行总线上的设备之间进行成块数据传输时,主机通过PCIe总线控制器,把要进行数据传输的总线设备的节点号、起始地址、传输长度、读写方向、主机内存地址等信息写入到DMA寄存器中,然后向总线操作控制器发送DMA传输启动命令,转步骤(2);

(2)收到DMA传输启动命令后,根据传输方向进行不同的控制,如果是读操作转步骤(3)继续,如果是写操作转步骤(7)继续;

(3)总线操作控制器向总线访问控制器发送一个请求,请求从目标节点起始地址读取总线长包长度的数据,总线访问控制器根据请求构造总线存储器读命令,并写入总线通信控制器,由总线通信控制器开始启动总线读;转步骤(4);

(4)等待总线存储器读完成,完成后,将传输长度减去总线长包长度,起始地址加上总线长包长度,转步骤(5);

(5)如果传输长度变为0,直接转步骤(6);否则,总线操作控制器向总线访问控制器发送一个请求,请求从目标节点起始地址读取总线长包长度的数据,总线访问控制器根据请求构造总线存储器读命令,并写入总线通信控制器,由总线通信控制器开始启动总线读,然后转步骤(6);

(6)总线操作控制器向主机读写控制器发送一个传输请求,将已从总线上读到的总线长包长度的数据写到主机内存中,起始地址为DMA寄存器中的主机内存地址;主机读写控制器根据传输请求控制PCIe总线控制器启动向主机内存的写入操作;将DMA寄存器中的主机内存地址加上总线长包长度,如果传输长度不为0,转步骤(4)继续执行;如果传输长度已变为0,转步骤(12);

(7)总线操作控制器向主机读写控制器发送一个传输请求,从主机内存读取总线长包长度的数据到总线通信控制器的发送缓冲区中,主机内存的起始地址为DMA寄存器中的主机内存地址;主机读写控制器根据传输请求控制PCIe总线控制器启动主机内存的读取,读取完成后,转步骤(8);

(8)总线操作控制器向总线访问控制器发送一个请求,请求向目标节点起始地址写入总线长包长度的数据,总线访问控制器根据请求构造总线存储器写命令,并写入总线通信控制器,由总线通信控制器开始启动总线写;转步骤(9);

(9)将DMA寄存器中的传输长度减去总线长包长度,起始地址加上总线长包长度,主机内存地址加上总线长包长度,如果传输长度变为0转步骤(11),否则转步骤(10);

(10)总线操作控制器向主机读写控制器发送一个传输请求,从主机内存读取总线长包长度的数据到总线通信控制器的发送缓冲区中,主机内存的起始地址为DMA寄存器中的主机内存地址;主机读写控制器根据传输请求控制PCIe总线控制器启动主机内存的读取,转步骤(11);

(11)等待总线通信控制器完成总线写;总线写完成后,如果传输长度已为0,转步骤(12),如果传输长度不为0,转步骤(8);

(12)设置DMA传输完成标志,退出传输过程。

本发明实现的动态可重构高速串行总线的DMA传输装置与方法,能够提高动态可重构高速串行总线和主机内存间的数据传输速度,提高UM-BUS总线与PCIe总线的利用率,传输过程中不再需要主机处理器参与,从而提高系统整体处理能力。

附图说明

图1是动态可重构高速串行总线的拓扑结构图;

图2是动态可重构高速串行总线通信协议包格式;

图3是动态可重构高速串行总线在PC机中的应用结构图;

图4本发明的DMA传输装置组成图;

图5是本发明的DMA传输流程图。

具体实施方式

如图1所示,UM-BUS总线采用基于M-LVDS(TIA/EIA-899)的多通道智能动态冗余的总线型拓扑结构,最多支持30个通信节点直接互连,不需要路由或中继设备。UM-BUS总线使用2~32个通道并发传输数据,最大通信速率可达6.4Gbps,在单个通道上采用串行数据传输方式,通道速率最高200Mbps。UM-BUS总线使用过程中,通道如果出现故障,可通过通道动态冗余及故障重构技术自动屏蔽故障通道,在剩余健康通道上继续通信。UM-BUS总线采用主从应答的通信方式,可为系统提供远程存储访问及非智能扩展能力。

UM-BUS总线上的节点按功能不同可划分为主节点、从节点及监视节点,一次通信过程只能由主节点发起,并且由从节点或其它主节点响应,监视节点用于监视总线上的通信过程。节点间的通信命令与应答通过总线数据包的形式交互信息。一个总线数据包中的所有数据与协议字按字节顺序轮流平均分配到总线的所有可用通道上进行编码传输。

在PC机上使用UM-BUS总线控制器连接到UM-BUS总线时,考虑传输速度等因素,采用图3所示的组成结构,PC机作为UM-BUS总线上的一个主节点,通过PCIe接口连接UM-BUS总线控制器,实现对UM-BUS总线上其它节点设备的访问。按照现行可获得的技术,在PCIe总线与UM-BUS总线控制器之间可以采用DMA方式进行数据传输。

UM-BUS总线控制器完成UM-BUS总线访问的通信控制,对于总线单字读写访问,由主机(PC机)通过PCIe向UM-BUS总线控制器逐一写入通信命令包的命令头,然后启动传输,再等待传输完成后,读取通信应答包的数据字及执行结果;对于总线256字存储器读,则由主机(PC机)通过PCIe向UM-BUS总线控制器逐一写入通信命令包的命令头,然后启动传输,再等待传输完成后,读取通信应答包的数据字及执行结果,对256字读出数据,可以采用DMA方式传回到主机内存中;对于总线256字存储器写,则由主机(PC机)通过PCIe向UM-BUS总线控制器逐一写入通信命令包的命令头和数据主体,然后启动传输,再等待传输完成后,读取通信应答包的执行结果,对256字写入数据,可以采用DMA方式传到UM-BUS总线控制器的缓存中。如果要对UM-BUS总线某个设备进行多个256字存储器数据读写,只能分多次进行,每次读写256字。这样,在进行大量数据传输时,需要软件进行多次控制操作,且不能将UM-BUS总线与PCIe总线的传输并行利用,效率低,开销大。

基于上述UM-BUS总线工作原理,针对存在的问题,本发明的动态可重构高速串行总线的DMA传输装置与方法的一种具体实施方式如下:

将图3中的UM-BUS总线控制器,采用如图4所示的一种动态可重构高速串行总线的DMA传输装置,完成动态可重构高速串行总线设备到主机内存的DMA传输。

如图4所示,该DMA传输装置包括PCIe总线控制器、DMA寄存器、总线操作控制器、主机读写控制器、总线访问控制器和总线通信控制器,其中所述PCIe总线控制器用于连接主机,在所述DMA传输装置与主机之间进行数据和命令传送;所述DMA寄存器用于存储PCIe总线控制器送来的DMA传输起始地址、传输长度、节点号、读写方向、主机内存地址等传输请求信息;所述总线操作控制器用于DMA传输的控制,根据DMA寄存器存储的传输请求信息,控制总线访问控制器、主机读写控制器进行动态可重构高速总线设备与主机内存之间的数据传输;所述主机读写控制器用于向PCIe总线控制器发送对主机内存进行数据读或写的命令,并向总线操作控制器提供主机侧的数据传输状态;所述总线访问控制器用于向总线通信控制器发送数据通信命令,并向总线操作控制器提供总线侧的数据传输状态;所述总线通信控制器用于连接动态可重构高速串行总线,完成总线编解码,实现对总线通信的管理。

将由主机内存到总线设备的传输定义为写操作,将由总线设备到主机内存的传输定义为读操作;为读写操作分别设置1套DMA寄存器用于存储传输请求信息,总线操作控制器根据两套DMA寄存器内容,可以同时进行读和写的DMA传输。总线通信控制器设置两个发送缓冲区,每个缓冲区大小为总线长包长度。根据UM-BUS总线协议,总线长包长度为总线通信协议包数据主体长度1024字节。

基于所述动态可重构高速串行总线的DMA传输装置,如图5所示,采用如下步骤方法实现主机与总线设备之间的数据DMA传输:

(1)当需要在主机内存与动态可重构高速串行总线上的设备之间进行成块数据传输时,主机通过PCIe总线控制器,把要进行数据传输的总线设备的节点号、起始地址、传输长度、读写方向、主机内存地址等信息写入到DMA寄存器中,然后向总线操作控制器发送DMA传输启动命令,转步骤(2);

(2)收到DMA传输启动命令后,根据传输方向进行不同的控制,如果是读操作转步骤(3)继续,如果是写操作转步骤(7)继续;

(3)总线操作控制器向总线访问控制器发送一个请求,请求从目标节点起始地址读取总线长包长度的数据,总线访问控制器根据请求构造总线存储器读命令,并写入总线通信控制器,由总线通信控制器开始启动总线读;转步骤(4);

(4)等待总线存储器读完成,完成后,将传输长度减去总线长包长度,起始地址加上总线长包长度,转步骤(5);

(5)如果传输长度变为0,直接转步骤(6);否则,总线操作控制器向总线访问控制器发送一个请求,请求从目标节点起始地址读取总线长包长度的数据,总线访问控制器根据请求构造总线存储器读命令,并写入总线通信控制器,由总线通信控制器开始启动总线读,然后转步骤(6);

(6)总线操作控制器向主机读写控制器发送一个传输请求,将已从总线上读到的总线长包长度的数据写到主机内存中,起始地址为DMA寄存器中的主机内存地址;主机读写控制器根据传输请求控制PCIe总线控制器启动向主机内存的写入操作;将DMA寄存器中的主机内存地址加上总线长包长度,如果传输长度不为0,转步骤(4)继续执行;如果传输长度已变为0,转步骤(12);

(7)总线操作控制器向主机读写控制器发送一个传输请求,从主机内存读取总线长包长度的数据到总线通信控制器的发送缓冲区中,主机内存的起始地址为DMA寄存器中的主机内存地址;主机读写控制器根据传输请求控制PCIe总线控制器启动主机内存的读取,读取完成后,转步骤(8);

(8)总线操作控制器向总线访问控制器发送一个请求,请求向目标节点起始地址写入总线长包长度的数据,总线访问控制器根据请求构造总线存储器写命令,并写入总线通信控制器,由总线通信控制器开始启动总线写;转步骤(9);

(9)将DMA寄存器中的传输长度减去总线长包长度,起始地址加上总线长包长度,主机内存地址加上总线长包长度,如果传输长度变为0转步骤(11),否则转步骤(10);

(10)总线操作控制器向主机读写控制器发送一个传输请求,从主机内存读取总线长包长度的数据到总线通信控制器的发送缓冲区中,主机内存的起始地址为DMA寄存器中的主机内存地址;主机读写控制器根据传输请求控制PCIe总线控制器启动主机内存的读取,转步骤(11);

(11)等待总线通信控制器完成总线写;总线写完成后,如果传输长度已为0,转步骤(12),如果传输长度不为0,转步骤(8);

(12)设置DMA传输完成标志,退出传输过程。

对于PC机,从应用程序角度看,内存地址可以是虚拟地址,也可以是物理地址,对64位操作系统内存地址为64位,对于32位系统内存地址只有32位。在上述实现中,总线DMA的主机内存地址必须是物理地址,可以通过地址标识指定地址为64位或32位两种格式。

本发明实现的动态可重构高速串行总线的DMA传输装置与方法,将主机存储器到UM-BUS总线通信缓冲区的传送与UM-BUS总线设备访问实现了并发,可以提升数据传输效率;采用总线操作控制器实现了大量数据传输的自动控制,降低了主机处理器在数据传输过程中的参与度,从而提高主机的数据处理能力。

在不脱离本发明精神的范围内,本发明可以具有多种变形,如:可以将主机总线修改为PCIe以外的其他总线,使用UM-BUS总线以外的其它类似总线,读写缓冲区数量变化等,均可在不同的实施中改变。这些变形也包含在本发明所要求保护的范围之内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于指令集的数字信号控制系统、FPGA模块及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!