[发明专利]一种动态可重构高速串行总线的DMA传输装置与方法在审
申请号: | 201911081108.7 | 申请日: | 2019-11-07 |
公开(公告)号: | CN110765046A | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 张伟功;周继芹;刘屹霄;王晶;高岚;朱晓燕 | 申请(专利权)人: | 首都师范大学 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F13/40 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100048 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速串行总线 动态可重构 控制器 主机 总线通信控制器 数据传输效率 读写控制器 并行执行 存储访问 数据访问 总线操作 总线访问 | ||
1.一种动态可重构高速串行总线的DMA传输装置,其特征在于:包括PCIe总线控制器、DMA寄存器、总线操作控制器、主机读写控制器、总线访问控制器和总线通信控制器,其中所述PCIe总线控制器用于连接主机,在所述DMA传输装置与主机之间进行数据和命令传送;所述DMA寄存器用于存储PCIe总线控制器送来的DMA传输起始地址、传输长度、节点号、读写方向、主机内存地址等传输请求信息;所述总线操作控制器用于DMA传输的控制,根据DMA寄存器存储的传输请求信息,控制总线访问控制器、主机读写控制器进行动态可重构高速总线设备与主机内存之间的数据传输;所述主机读写控制器用于向PCIe总线控制器发送对主机内存进行数据读或写的命令,并向总线操作控制器提供主机侧的数据传输状态;所述总线访问控制器用于向总线通信控制器发送数据通信命令,并向总线操作控制器提供总线侧的数据传输状态;所述总线通信控制器用于连接动态可重构高速串行总线,完成总线编解码,实现对总线通信的管理。
2.根据权利要求1所述的DMA传输装置,其特征在于:将由主机内存到总线设备的传输定义为写操作,将由总线设备到主机内存的传输定义为读操作;为读写操作分别设置1套DMA寄存器用于存储传输请求信息,总线操作控制器根据两套DMA寄存器内容,可以同时进行读和写的DMA传输。
3.根据权利要求1所述的DMA传输装置,其特征在于:所述主机内存地址为物理地址,可以是32位地址也可以是64位地址。
4.根据权利要求1所述的DMA传输装置,其特征在于:总线长包长度为1024字节。
5.根据权利要求1所述的DMA传输装置,其特征在于:总线通信控制器设置两个发送缓冲区,每个缓冲区大小为总线长包长度。
6.一种动态可重构高速串行总线的DMA传输方法,其特征在于,根据权利要求1-5中任一项所述的动态可重构高速串行总线的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传输完成标志,退出传输过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911081108.7/1.html,转载请声明来源钻瓜专利网。