发明名称 基于PCI-E总线的直接存取数据传输控制装置
摘要 本发明公开了一种基于PCI-E总线的直接存取数据传输控制装置,所述直接存取数据传输控制装置内嵌在FPGA芯片中,用于完成上位机(11)与下位机板卡(13)之间通过PCI-E总线(12)的高速数据流控制;所述基于PCI-E总线的直接存取数据传输控制装置由寄存器监控单元(1)、寄存器(2)、解码单元(3)、发送单元(4)和接收信用处理单元(5)组成。本发明采用Verilog2001编程技术在FPGA芯片(14)上形成用户逻辑控制单元(132)和直接存取数据传输控制装置,采用IP复用技术在FPGA芯片(14)上形成缓存器(131)和总线接口(134)。
申请公布号 CN101276318B 申请公布日期 2010.06.09
申请号 CN200810106201.4 申请日期 2008.05.12
申请人 北京航空航天大学 发明人 张勇;曲国远;朱晓颖;李栋;段东升;林晓令
分类号 G06F13/38(2006.01)I;G06F13/42(2006.01)I;G06F13/28(2006.01)I 主分类号 G06F13/38(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 1.一种基于PCI-E总线的直接存取数据传输控制装置,所述直接存取数据传输控制装置内嵌在FPGA芯片中,用于完成上位机(11)与下位机板卡(13)之间通过PCI-E总线(12)的高速数据流控制,其特征在于:由寄存器监控单元(1)、寄存器(2)、解码单元(3)、发送单元(4)和接收信用处理单元(5)组成;所述寄存器监控单元(1)用于(A)对上位机(11)通过PCI-E总线(12)下发的符合PCI-E总线协议定义的存储器写事务D<sub>134-1</sub>、进行接收,所述写事务中至少包括表征读取请求启动信息的有效数据D<sub>1-1</sub>、寄存器(2)的偏移地址和有效数据的长度,所述表征读取请求启动信息的有效数据D<sub>1-1</sub>有上位机(11)的内存首地址PAR、下位机板卡(13)中DDR的地址LAR、需要从缓存器(131)中提取的数据源D<sub>13</sub>字节数CBR和传输数据状态CSR四种类型,所述传输数据状态CSR由读/写状态位、开始状态位和工作状态位组成,工作状态位包括有两种状态,其中编译语言中的“1”表示控制装置处于工作状况,编译语言中的“0”表示控制装置处于空闲状况;(B)依照存储器写事务D<sub>134-1</sub>中寄存器(2)的偏移地址将存储器写事务D<sub>134-1</sub>中的读取请求启动信息的有效数据D<sub>1-1</sub>写入寄存器(2);(C)依据解码单元(3)输出的触发指令D<sub>3-1</sub>提取寄存在寄存器(2)中的表征读取请求启动信息的有效数据D<sub>1-1</sub>,并组成启动信息集合D<sub>1-2</sub>={PAR,LAR,CBR,CSR}输出给解码单元(3);所述寄存器(2)对接收的表征读取请求启动信息的有效数据D<sub>1-1</sub>进行存储;所述解码单元(3)用于(A)对接收的启动信息集合D<sub>1-2</sub>={PAR,LAR,CBR,CSR}进行分析,并采用PCI-E总线协议规定的带数据有效载荷数据包的组装原则获得数据包头信息集合D<sub>3-3</sub>和传输数据包头的总个数;(B)依据发送单元(4)下发的发送完成信号D<sub>4-1</sub>将发送新包信号D<sub>3-2</sub>和数据包头信息集合D<sub>3-3</sub>传输给发送单元(4);(C)依据传输数据包头的总个数向发送单元(4)发送中断请求信号D<sub>3-4</sub>;所述数据包头信息集合<img file="F2008101062014C00011.GIF" wi="800" he="93" />中包括有数据有效载荷大小Length、属性Attr、中毒标志EP、摘要标志TD、传输类别TC、类型Type、格式Fmt、读请求完成前的剩余字节数ByteCount、修改的字节计数BCM、完成状况代码CS、完成者的标识号CompleterID、低地址LowerAddress、标记Tag、请求者的标识号RequesterID;所述发送单元(4)用于(A)依据接收的数据包头信息集合D<sub>3-3</sub>中数据有效载荷大小Length对缓存器(131)中数据进行读取,读取由数据有效载荷大小Length所表示数量的有效数据D131,其中缓存器(131)的启动由控制信号D<sub>4-2</sub>控制;(B)对有效数据D131和数据包头信息集合D<sub>3-3</sub>按照PCI-E总线协议中带数据完成数据包的格式要求进行打包,获得读完成事务D<sub>4-3</sub>,并将读完成事务D<sub>4-3</sub>发送到PCI-E总线接口(134);(C)依据中断请求信号D<sub>3-4</sub>将工作状态信号D<sub>4-4</sub>发送到用户逻辑控制单元(132);(D)将中断请求信号D<sub>3-4</sub>写入总线接口;所述接收信用处理单元(5)用于(A)对上位机(11)通过PCI-E总线(12)下发的存储器写事务D<sub>134-1</sub>进行接收,依据存储器写事务D<sub>134-1</sub>获得需要占用的信用值;(B)对PCI-E总线(12)下发的存储器写事务D<sub>134-1</sub>接收状态信号D<sub>134-2</sub>进行监测;(C)依照接收状态信号D<sub>134-2</sub>,向总线接口(134)发送可释放的信用值D<sub>5-1</sub>。
地址 100083 北京市海淀区学院路37号