一种对cpld数据包进行有序存储的方法及系统的制作方法_3

文档序号:9506141阅读:来源:国知局
成DMA读请求所需要的数据。第一个接收到的CPLD对应的内部存储首地址为基地址+偏移地址0,第二个CPLD对应的内部存储首地址为基地址+第一个CPLD包的数据长度,第三个CPLD对应的内部存储首地址为基地址+前两个CPLD包的数据长度之和。不管针对某个特定Tag的DMA读请求而返回的CPLD数据包有多少个,都是用类似原理来计算该CPLD存储的地址。
[0065]以上实施过程在已经在Xi 1 inx KC705开发板上已经进行了验证,并取得高数据吞吐率的指标。本发明建立了标签有序分发体制,建立了标签页指针体制,建立了针对完成数据包(CPLD)的同一标签数据的偏移地址计算体制,并成为一套完整实现了 PCI Express端点设备高速DMA读和CPLD数据在RAM中有序存储的高效高速无延迟存储方案。
[0066]如图5所示,一种对CPLD数据包进行有序存储的系统,包括DMA请求发送模块、存储基址计算模块、偏移地址计算模块和数据包存储模块;
[0067]所述DMA请求发送模块,其用于利用标签有序分发体制将PCI Express端点设备向主机内存发起的DMA读请求以分割的带有连续标签的多个子DMA请求发送至主机;
[0068]所述存储基址计算模块,其用于接收主机返回的CPLD数据包,根据CPLD数据包的标签确定所述CPLD数据包在PCI Express端点设备的存储基址;
[0069]所述偏移地址计算模块,其用于对带有相同标签的CPLD数据包进行偏移地址计算,确定所述CPLD数据包的偏移地址;
[0070]所述数据包存储模块,其用于根据确定的所述CPLD数据包在PCI Express端点设备的存储基址和偏移地址对相应CPLD数据包进行存储。
[0071 ] 具体地,所述DMA请求发送模块包括DMA请求分割单元和标签分发单元;所述DMA请求分割单元,其用于在PCI Express端点设备向主机内存发起DMA读请求时,根据DMA请求包的大小和PCI Express总线规范中的Max Request Size的大小将DMA请求包分割成多个子DMA请求包,多个子DMA请求包对内存的寻址地址前后衔接;所述标签分发单元,其用于为子DMA请求包按照发送顺序依次分配以连续的标签号码Tag以区别不同的寻址空间
[0072]上述技术方案还包括页指针触发模块,其用于在PCI Express端点设备一次发起的DMA读的寻址范围超过所述标签有序分发体制所有标签的最大寻址量时,启动标签页指针体制,以区分不同的寻址空间,其中每个标签具有一个页指针;当启动所述标签页指针体制后,所述存储基址计算模块根据CPLD数据包的标签及相应标签的页指针确定所述CPLD数据包的存储基址。
[0073]所述标签页指针体制具体为:如果一个标签未被使用时,将该标签对应的页指针为零,如果该标签被使用过一次,那么该标签对应的页指针自动加一。
[0074]所述偏移地址计算模块计算偏移地址具体为:带有相同标签的第一个收到的CPLD数据包的偏移地址为0,第二个收到的CPLD数据包的偏移地址为第一收到的CPLD数据包的数据长度,第i个收到的CPLD的数据包的偏移地址为第一至第1-Ι个收到的CPLD数据包的数据长度之和,其中i为大于等于3的整数。
[0075]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种对CPLD数据包进行有序存储的方法,其特征在于,包括如下步骤: 步骤1,利用标签有序分发体制将PCI Express端点设备向主机内存发起的DMA读请求分割成带有连续标签的多个子DMA读请求发送至主机; 步骤2,接收主机返回的CPLD数据包,根据CPLD数据包的标签确定所述CPLD数据包在PCI Express端点设备的存储基址; 步骤3,对带有相同标签的CPLD数据包进行偏移地址计算,确定所述CPLD数据包的偏移地址; 步骤4,根据确定的所述CPLD数据包在PCI Express端点设备的存储基址和偏移地址对相应CPLD数据包进行存储。2.根据权利要求1所述一种对CPLD数据包进行有序存储的方法,其特征在于,步骤1的具体实现为:当PCI Express端点设备向主机内存发起DMA读请求时,根据DMA读请求包的大小和PCI Express总线规范中的Max Request Size的大小将DMA读请求包分割成多个子DMA读请求包,多个子DMA读请求包对内存的寻址地址前后衔接,每个子DMA读请求包按照发送顺序依次被标签有序分发体制分配以连续的标签号码Tag以区别不同的寻址空间。3.根据权利要求2所述一种对CPLD数据包进行有序存储的方法,其特征在于,当PCIExpress端点设备一次发起的DMA读的寻址范围超过所述标签有序分发体制所有标签的一次最大寻址量时,启动标签页指针体制,以区分不同的寻址空间,其中每个标签具有一个页指针;当启动所述标签页指针体制后,步骤2中根据CPLD数据包的标签及相应标签的页指针确定所述CPLD数据包在PCI Express端点设备的存储基址。4.根据权利要求3所述一种对CPLD数据包进行有序存储的方法,其特征在于,所述标签页指针体制具体为:如果一个标签未被使用时,将该标签对应的页指针为零,如果该标签被使用过一次,那么该标签对应的页指针自动加一。5.根据权利要求1所述一种对CPLD数据包进行有序存储的方法,其特征在于,所述步骤3的具体实现为:带有相同标签的第一个收到的CPLD数据包的偏移地址为0,第二个收到的CPLD数据包的偏移地址为第一个收到的CPLD数据包的数据长度,第i个收到的CPLD的数据包的偏移地址为第一至第i_l个收到的CPLD数据包的数据长度之和,其中i为大于等于3的整数。6.一种对CPLD数据包进行有序存储的系统,其特征在于,包括DMA请求发送模块、存储基址计算模块、偏移地址计算模块和数据包存储模块; 所述DMA请求发送模块,其用于利用标签有序分发体制将PC IExpress端点设备向主机内存发起的DMA读请求分割成带有连续标签的多个子DMA读请求发送至主机; 所述存储基址计算模块,其用于接收主机返回的CPLD数据包,根据CPLD数据包的标签确定所述CPLD数据包在PCI Express端点设备的存储基址; 所述偏移地址计算模块,其用于对带有相同标签的CPLD数据包进行偏移地址计算,确定所述CPLD数据包的偏移地址; 所述数据包存储模块,其用于根据确定的所述CPLD数据包在PCI Express端点设备的存储基址和偏移地址对相应CPLD数据包进行存储。7.根据权利要求6所述一种对CPLD数据包进行有序存储的系统,其特征在于,所述DMA请求发送模块包括DMA请求分割单元和标签分发单元; 所述DMA请求分割单元,其用于在PCI Express端点设备向主机内存发起DMA读请求时,根据DMA读请求包的大小和PCI Express总线规范中的Max Request Size的大小将DMA读请求包分割成多个子DMA读请求包,多个子DMA读请求包对内存的寻址地址前后衔接; 所述标签分发单元,其用于为子DMA读请求包按照发送顺序依次分配以连续的标签号码Tag以区别不同的寻址空间。8.根据权利要求7所述一种对CPLD数据包进行有序存储的系统,其特征在于,还包括页指针触发模块,其用于在PCI Express端点设备一次发起的DMA读的寻址范围超过所述标签有序分发体制所有标签的一次最大寻址量时,启动标签页指针体制,以区分不同的寻址空间,其中每个标签具有一个页指针;当启动所述标签页指针体制后,所述存储基址计算模块根据CPLD数据包的标签及相应标签的页指针确定所述CPLD数据包的存储基址。9.根据权利要求8所述一种对CPLD数据包进行有序存储的系统,其特征在于,所述标签页指针体制具体为:如果一个标签未被使用时,将该标签对应的页指针为零,如果该标签被使用过一次,那么该标签对应的页指针自动加一。10.根据权利要求6所述一种对CPLD数据包进行有序存储的系统,其特征在于,所述偏移地址计算模块计算偏移地址具体为:带有相同标签的第一个收到的CPLD数据包的偏移地址为0,第二个收到的CPLD数据包的偏移地址为第一收到的CPLD数据包的数据长度,第i个收到的CPLD的数据包的偏移地址为第一至第1-Ι个收到的CPLD数据包的数据长度之和,其中i为大于等于3的整数。
【专利摘要】本发明涉及一种对CPLD数据包进行有序存储的方法及系统,所述方法包括利用标签有序分发体制将由PCI?Express端点设备向主机内存发起的DMA读请求分割成带有连续标签的多个子DMA读请求发送至主机;接收主机返回的CPLD数据包,根据CPLD数据包的标签确定所述CPLD数据包在PCIExpress端点设备内的存储基址;对带有相同标签的CPLD数据包进行偏移地址计算,确定所述CPLD数据包的偏移地址;根据确定的所述CPLD数据包在PCI?Express端点设备内的存储基址和偏移地址对相应CPLD数据包进行存储。本发明建立了标签有序分发体制,实现大数据量的DMA读操作,建立基址与偏移地址计算体制,实现PCI?Express端点设备高速DMA读和CPLD数据在RAM中有序存储的高效高速无延迟存储方案,大大提高了数据吞吐率。
【IPC分类】G06F13/28
【公开号】CN105260332
【申请号】CN201510573588
【发明人】苗全, 刘晓东, 张岳公
【申请人】北京三未信安科技发展有限公司
【公开日】2016年1月20日
【申请日】2015年9月9日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1