【技术实现步骤摘要】
本专利技术涉及通信
,更具体地,涉及一种PC1-E设备及其接收数据重排序方法。
技术介绍
PCI Express (快速外围组件互连,简称为PC1-E或者PCIe)是第三代高性能的计算机及通信平台的外设I/O总线标准。PCI Express架构抛弃了上一代PCI (PeripheralComponent Interconnect,外围组件互连)以及PC1-X总线的并联共享结构,采用了串行的、点对点的通讯方式。多个PCI Express设备通过开关进行互联。PCI Express使用基于包的协议在两个设备之间传输信息,协议的最上层为传输层,负责传输层包(Transaction Layer Packet, TLP)的封装与拆封。通讯双方的数据传输是通过交换TLP(包括请求包和完成包)来完成的,S卩,PCI Express设备之间通过发送TLP来传输信息。每个传输层包中包含唯一的传输ID,以保证系统可以对所有的传输层包进行正确的路由。具体的,请求者发送请求包给完成者,如果需要响应数据,则完成者通过完成包将响应的数据发送给请求者。其中,对读请求包的响应是通过分割传 ...
【技术保护点】
一种快速外围组件互连PCI?E设备的接收数据重排序方法,其特征在于,包括:接收读完成包;将接收到的针对同一个读请求的读完成包的数据,依次暂存到排序缓存器中与该读请求对应的存储块中,其中,所述排序缓存器被预先划分成至少一个存储块,每一个存储块用于存储一个读请求的读完成包的数据;按照读请求发送的先后次序,从所述排序缓存器的各个存储块中,将已完成的读请求的读完成包的数据读出,并写入到先入先出FIFO存储器。
【技术特征摘要】
1.一种快速外围组件互连PC1-E设备的接收数据重排序方法,其特征在于,包括 接收读完成包; 将接收到的针对同一个读请求的读完成包的数据,依次暂存到排序缓存器中与该读请求对应的存储块中,其中,所述排序缓存器被预先划分成至少一个存储块,每一个存储块用于存储一个读请求的读完成包的数据; 按照读请求发送的先后次序,从所述排序缓存器的各个存储块中,将已完成的读请求的读完成包的数据读出,并写入到先入先出FIFO存储器。2.根据权利要求1所述的方法,其特征在于,在接收读完成包之前,还包括 初始化活动请求表;其中,所述活动请求表中的每一行包括标签ID和标签ID状态,其中,标签ID状态表示对应的标签ID当前是否正在被使用,标签ID状态的初始化值为空闲;所述活动请求表的行数等于所述PC1-E设备能同时处理的读请求的最大数量; 当需要发送读请求时,从所述活动请求表中获取标签ID状态为空闲、且最小的标签ID,并更新所获取的标签ID的标签ID状态为使用中; 发送读请求,其中,该读请求中携带有所获取的标签ID、请求的数据的长度、以及请求的数据的首地址。3.根据权利要求2所述的方法,其特征在于, 在从所述活动请求表中获取标签ID状态为空闲、且最小的标签ID之前,还包括 初始化请求序列表;其中,所述请求序列表具有读指针和写指针,所述读指针和所述写指针的初始化值为1,所述读指针和所述写指针的值分别表示其所指向的所述请求序列表的行的行号;所述请求序列表中的每一行用于保存一个读请求的处理信息;所述活动请求表中的每一行还包括请求序列表指针,其中,请求序列表指针表示对应的标签ID所标识的读请求的处理信息在所述请求序列表中的存放位置; 当需要发送读请求时,确定所述请求序列表的写指针当前所指向的行可用; 在从所述活动请求表中获取标签ID状态为空闲、且最小的标签ID之后,还包括将所述活动请求表中与所述所获取的标签ID相对应的请求序列表指针的值更新为所述请求序列表的写指针当前所指向的行的行号; 将需要发送的读请求的处理信息写入到所述请求序列表的写指针当前所指向的行中; 若所述请求序列表的写指针的当前值小于最大值,则将写指针的值加1,否则,将写指针的当前值重新置为1,其中,所述最大值为所述请求序列表的行数,所述请求序列表的行数等于所述排序缓存器中的存储块的总数。4.根据权利要求3所述的方法,其特征在于,所述处理信息包括 标签ID、排序缓存器块内偏移量、请求长度、以及请求状态;则所述请求序列表中的每一行包括标签ID、排序缓存器块内偏移量、请求长度、以及请求状态,其中,标签ID为该行对应的读请求所使用的标签ID,且该行的行号等于针对该读请求的读完成包的数据所要存储的存储块的序号;排序缓存器块内偏移量表示该读请求对应的存储块的写指针的块内偏移量;请求长度表示该读请求所请求的数据的长度;请求状态表示该读请求的当前处理状态,请求状态的初始化值为空闲; 将需要发送的读请求的处理信息写入到所述请求序列表的写指针当前所指向的行中包括在所述请求序列表的写指针当前所指向的行中,将标签ID的值置为所述所获取的标签ID,将排序缓存器块内偏移量的值置为零,将请求长度置为所述需要发送的读请求所请求的数据的长度,并将请求状态更新为传输中。5.根据权利要求4所述的方法,其特征在于,将接收到的针对同一个读请求的读完成包的数据,依次暂存到排序缓存器中与该读请求对应的存储块包括每次接收到读完成包时,均执行的操作包括 从所述活动请求表中,判定与接收到的读完成包中携带的标签ID相对应的标签ID状态为使用中之后,读取出与该标签ID相对应的请求序列表指针的值; 在所述请求序列表中,从所读取出的请求序列表指针的值所指示的行中,读取出排序缓存器块内偏移量的值; 计算出序号等于所述所读取出的请求序列表指针的值的存储块的首地址; 将所计算出的存储块的首地址与所读取出的排序缓存器块内偏移量的值之和,作为接收到的读完成包的数据在所述排序缓存器中的存储首地址; 从计算出的存储首地址开始,将所述接收到的读完成包的数据,依序存储至所述排序缓存器中,将排序缓存器块内偏移量的值更新为排序缓存器块内偏移量的当前值与接收到的读完成包的数据长度之和; 若所述接收到的读完成包是对应的读请求的最后一个读完成包,则在所述请求序列表中,将所述所读取出的请求序列表指针的值所指示的行中的请求状态的值更新为传输完成,并在所述活动请求表中,将与接收到的读完成包中携带的标签ID相对应的标签ID状态更新为空闲。6.根据权利要求4所述的方法,其特征在于,所述请求序列表中的每一行还包括超时计数值,所述超时计数值由减I计数的超时计数器控制;则, 将需要发送的读请求的处理信息写入到所述请求序列表的写指针当前所指向的行中还包括在所述请求序列表的写指针当前所指向的行中,初始化超时计数值,并启动对应的超时计数器从该超时计数值的初始化值开始减I计数; ...
【专利技术属性】
技术研发人员:王海洋,蔡娅,
申请(专利权)人:北京同步科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。