一种基于增强型外设互连协议总线的数据传输方法及装置与流程

文档序号:12484901阅读:来源:国知局

技术特征:

1.一种基于增强型外设互连PCIe协议总线的数据传输方法,其特征在于,所述方法应用于控制器,所述控制器中包括第一工作模块、第二工作模块、第三工作模块和第四工作模块,所述方法包括:

接收对端设备发送的数据包,所述数据包上携带有工作类型标志位;

在工作类型标志位表示为读操作时,将所述数据包分配给第一工作模块,所述第一工作模块解析所述数据包获得读操作命令,将所述读操作命令发送给目标设备,接收目标设备返回的读数据,并将所述读数据发送给所述对端设备;

在工作类型标志位表示为写操作时,将所述数据包分配给第二工作模块,所述第二工作模块解析所述数据包获得写操作命令时,将所述数据包中的写操作命令发送给目标设备,接收目标设备返回的写操作完成信号;

所述第二工作模块解析所述数据包获得直接存储访问DMA读操作命令时,启动所述第三工作模块,将所述DMA读操作命令发送给所述第三工作模块,所述第三工作模块根据所述DMA读操作命令获得所述对端设备中的发送报文,将所述发送报文发送给目标设备;

所述第二工作模块解析所述数据包获得DMA写操作命令时,启动所述第四工作模块,将所述DMA写操作命令发送给所述第四工作模块,所述第四工作模块根据所述DMA写操作命令将目标设备发送的接收报文,发送给对端设备。

2.根据权利要求1所述的方法,其特征在于,所述第一工作模块解析所述数据包获得读操作命令,将所述读操作命令发送给目标设备,接收目标设备返回的读数据,并将所述读数据发送给所述对端设备,包括:

所述第一工作模块解析数据包获得CPU读操作命令,然后将所述CPU读操作命令转换为一个或多个通用寄存器读操作访问命令;其中,所述CPU读操作命令中包括读使能、读初始地址、读数据个数,所述通用寄存器读操作访问命令包括读使能、读地址;

第一工作模块将所述一个或多个通用寄存器读操作访问命令缓存到第一异步先入先出缓存器FIFO中;

所述第一工作模块中的第一异步FIFO将所述一个或多个通用寄存器读操作访问命令的时序转换为符合目标设备的时序,并在转换后将所述一个或多个通用寄存器读操作访问命令通过配置通道发送给所述目标设备;通用寄存器读操作访问命令用于所述目标设备进行读操作获得读数据;

所述第一工作模块中的第二异步FIFO通过配置通道接收所述读数据,并将所述读数据转换为符合PCIe协议要求的TLP包结构形式和时序;并将转换后的读数据发送给对端设备。

3.根据权利要求2所述的方法,其特征在于,所述第一工作模块的第二异步FIFO在第一预设时间内未接收到所述目标设备发送的读数据时,自行生成无效读数据。

4.根据权利要求1所述的方法,其特征在于,所述第二工作模块解析所述数据包获得写操作命令时,将所述数据包中的写操作命令发送给目标设备,接收目标设备返回的写操作完成信号,包括:

所述第二工作模块解析数据包获得CPU写操作命令,然后将所述CPU写操作命令转换为一个或多个通用寄存器写操作访问命令;其中,所述CPU写操作命令中包括写使能、写数据、写初始地址、写数据个数,所述通用寄存器写操作访问命令包括写使能、写地址、所述写地址对应的单个写数据;

第二工作模块将所述一个或多个通用寄存器写操作访问命令缓存到第三异步FIFO中;

所述第二工作模块中的第三异步FIFO将所述一个或多个通用寄存器写操作访问命令的时序转换为符合目标设备的时序,并在转换后将所述一个或多个通用寄存器写操作访问命令通过配置通道发送给所述目标设备;通用寄存器写操作访问命令用于所述目标设备在写地址写入所述写地址对应的单个写数据;

所述第二工作模块通过配置通道接收所述目标设备发送的写操作完成信号。

5.根据权利要求4所述的方法,其特征在于,所述第二工作模块在第二预 设时间内未接收到所述目标设备发送的写操作完成信号时,所述第二工作模块自行生成所述写操作完成信号。

6.根据权利要求1所述的方法,其特征在于,所述DMA读操作命令中包括报文发送指示信息的初始地址和地址空间大小;所述第三工作模块根据所述DMA读操作命令获得所述对端设备中的发送报文,将所述发送报文发送给目标设备,包括:

在第i次时,所述第三工作模块根据所述DMA读操作命令将报文发送指示信息的地址发送给对端设备;其中,所述报文发送指示信息的地址为报文发送指示信息的初始地址+i-1,i为大于等于1的整数;

所述第三工作模块接收对端设备发送的所述报文发送指示信息的地址中的报文发送指示信息内容;其中,所述报文发送指示信息内容包括报文发送有效指示信息、报文大小和报文初始缓存的地址;

所述第三工作模块在所述报文发送有效指示信息为有效时,将所述报文大小和报文初始缓存地址发送给对端设备;

所述第三工作模块接收所述对端设备发送的所述报文大小和报文初始缓存地址对应的发送报文;

所述第三工作模块将所述发送报文缓存到第四异步FIFO中,经过时序转换、数据位宽转换后,转换为通用包结构形式报文,通过DMA通道发送给目标设备;

所述第三工作模块向对端设备发送报文发送完成命令,所述报文发送完成命令用于所述对端设备将所述发送报文对应的报文发送有效指示信息更改为无效;

依次循环进行上述步骤,直至所述报文发送指示信息的地址超出所述报文发送指示信息的初始地址和地址空间大小限定的地址范围。

7.根据权利要求1所述的方法,其特征在于,所述DMA写操作命令中包括报文接收指示信息的初始地址和地址空间大小;所述第四工作模块根据所述DMA写操作命令将目标设备发送的接收报文,发送给对端设备,包括:

在第j次时,所述第四工作模块根据所述DMA写操作命令将报文接收指示信息的地址发送给对端设备;其中,所述报文接收指示信息的地址为报文接收指示信息的初始地址+j-1,j为大于等于1的整数;

所述第四工作模块接收对端设备发送的所述报文接收指示信息的地址中的报文接收指示信息内容;其中,所述报文接收指示信息内容包括报文接收有效指示信息、接收报文的初始缓存地址;

所述第四工作模块的第五异步FIFO将目标设备发送的通用包结构形式的接收报文进行缓存、时序转换和数据位宽转换后,转换为符合PCIe协议要求的TLP包结构形式和时序的报文数据包;

在所述报文接收有效指示信息为有效时,所述第四工作模块将所述接收报文的初始缓存地址以及从第五异步FIFO输出的报文数据包发送给对端设备;所述接收报文的初始缓存地址用于所述对端设备从所述接收报文的初始缓存地址处缓存报文数据包;

所述第四工作模块对端设备发送报文接收完成命令,所述报文接收完成命令用于所述对端设备将所述报文数据包初始缓存地址对应的报文接收有效指示信息更改为无效;

依次循环进行上述步骤,直至所述报文接收指示信息的地址超出所述报文接收指示信息的初始地址和地址空间大小限定的地址范围。

8.一种基于增强型外设互连PCIe协议总线的数据传输装置,其特征在于,所述装置包括:接收模块,分配模块,第一工作模块、第二工作模块、第三工作模块和第四工作模块,其中,

接收模块,用于接收对端设备发送的数据包,所述数据包上携带有工作类型标志位;

分配模块,用于在所述接收模块接收到的工作类型标志位表示为读操作时,将所述数据包分配给第一工作模块;

所述第一工作模块,用于在解析出所述分配模块分配的数据包获得读操作命令时,将所述读操作命令发送给目标设备,接收目标设备返回的读数据,并 将所述读数据发送给所述对端设备;

分配模块,还用于在所述接收模块接收到的工作类型标志位表示为写操作时,将所述数据包分配给第二工作模块;

所述第二工作模块,用于在解析出所述分配模块分配的所述数据包获得写操作命令时,将所述数据包中的写操作命令发送给目标设备,接收目标设备返回的写操作完成信号;

所述第二工作模块,还用于在解析所述数据包获得直接存储访问DMA读操作命令时,启动所述第三工作模块,并将所述DMA读操作命令发送给所述第三工作模块;

所述第三工作模块,用于根据所述第二工作模块发送的所述DMA读操作命令获得所述对端设备中的发送报文,并将所述发送报文发送给目标设备;

所述第二工作模块,还用于在解析出所述数据包获得DMA写操作命令时,启动所述第四工作模块,将所述DMA写操作命令发送给所述第四工作模块;

所述第四工作模块,用于根据所述第二工作模块发送的所述DMA写操作命令将目标设备发送的接收报文,发送给对端设备。

9.根据权利要求8所述的装置,其特征在于,所述第一工作模块中包括:第一处理模块,第一异步先入先出缓存器FIFO模块和第二异步FIFO模块;其中,

所述第一处理模块,用于解析数据包获得CPU读操作命令,然后将所述CPU读操作命令转换为一个或多个通用寄存器读操作访问命令;其中,所述CPU读操作命令中包括读使能、读初始地址、读数据个数,所述通用寄存器读操作访问命令包括读使能、读地址;

所述第一处理模块,还用于将所述一个或多个通用寄存器读操作访问命令缓存到第一异步先入先出缓存器FIFO模块中;

所述第一异步FIFO模块,用于将所述第一处理模块缓存的一个或多个通用寄存器读操作访问命令的时序转换为符合目标设备的时序,并在转换后将所述一个或多个通用寄存器读操作访问命令通过配置通道发送给所述目标设备; 通用寄存器读操作访问命令用于所述目标设备进行读操作获得读数据;

所述第二异步FIFO模块,用于通过配置通道接收所述读数据,并将所述读数据转换为符合PCIe协议要求的TLP包结构形式和时序;并将转换后的读数据发送给对端设备。

10.根据权利要求9所述的装置,其特征在于,所述第一异步FIFO模块,还用于在第一预设时间内未接收到所述目标设备发送的读数据时,自行生成无效读数据。

11.根据权利要求8所述的装置,其特征在于,所述第二工作模块中包括:第二处理模块,第三异步FIFO模块;其中,

所述第二处理模块,用于解析数据包获得CPU写操作命令,然后将所述CPU写操作命令转换为一个或多个通用寄存器写操作访问命令;其中,所述CPU写操作命令中包括写使能、写数据、写初始地址、写数据个数,所述通用寄存器写操作访问命令包括写使能、写地址、所述写地址对应的单个写数据;

所述第二处理模块,还用于将所述一个或多个通用寄存器写操作访问命令缓存到第三异步FIFO模块中;

所述第三异步FIFO模块,用于将所述第二处理模块缓存的所述一个或多个通用寄存器写操作访问命令的时序转换为符合目标设备的时序,并在转换后将所述一个或多个通用寄存器写操作访问命令通过配置通道发送给所述目标设备;通用寄存器写操作访问命令用于所述目标设备在写地址写入所述写地址对应的单个写数据;

所述第二处理模块,还用于通过配置通道接收所述目标设备发送的写操作完成信号。

12.根据权利要求11所述的装置,其特征在于,所述第二处理模块,还用于在第二预设时间内未接收到所述目标设备发送的写操作完成信号时,生成所述写操作完成信号。

13.根据权利要求8所述的装置,其特征在于,所述DMA读操作命令中包括报文发送指示信息的初始地址和地址空间大小;所述第三工作模块包括第 三处理模块和第四异步FIFO模块;其中,

第三处理模块,用于在第i次时,根据所述DMA读操作命令将报文发送指示信息的地址发送给对端设备;其中,所述报文发送指示信息的地址为报文发送指示信息的初始地址+i-1,i为大于等于1的整数;所述报文发送指示信息的地址不超出所述报文发送指示信息的初始地址和地址空间大小限定的地址范围

第三处理模块,还用于接收对端设备发送的所述报文发送指示信息的地址中的报文发送指示信息内容;其中,所述报文发送指示信息内容包括报文发送有效指示信息、报文大小和报文初始缓存的地址;

第三处理模块,还用于在所述报文发送有效指示信息为有效时,将所述报文大小和报文初始缓存地址发送给对端设备;

第三处理模块,还用于接收所述对端设备发送的所述报文大小和报文初始缓存地址对应的发送报文,并将所述发送报文缓存到第四异步FIFO模块中

所述第四异步FIFO模块,用于在将所述第三处理模块缓存的发送报文经过时序转换、数据位宽转换后,转换为通用包结构形式报文,通过DMA通道发送给目标设备;

第三处理模块,还用于在所述第四异步FIFO模块将所述发送报文发送给目标设备后,向对端设备发送报文发送完成命令,所述报文发送完成命令用于所述对端设备将所述发送报文对应的报文发送有效指示信息更改为无效。

14.根据权利要求8所述的装置,其特征在于,所述DMA写操作命令中包括报文接收指示信息的初始地址和地址空间大小;所述第四工作模块包括:第四处理模块和第五异步FIFO模块,其中,

所述第四处理模块,用于在第j次时,根据所述DMA写操作命令将报文接收指示信息的地址发送给对端设备;其中,所述报文接收指示信息的地址为报文接收指示信息的初始地址+j-1,j为大于等于1的整数;所述报文接收指示信息的地址未超出所述报文接收指示信息的初始地址和地址空间大小限定的地址范围;

所述第四处理模块,还用于接收对端设备发送的所述报文接收指示信息的地址中的报文接收指示信息内容;其中,所述报文接收指示信息内容包括报文接收有效指示信息、接收报文的初始缓存地址;

所述第五异步FIFO模块,用于将目标设备发送的通用包结构形式的接收报文进行缓存、时序转换和数据位宽转换后,转换为符合PCIe协议要求的TLP包结构形式和时序的报文数据包;

所述第四处理模块,还用于在所述报文接收有效指示信息为有效时,将所述接收报文的初始缓存地址以及所述第五异步FIFO模块输出的报文数据包发送给对端设备;所述接收报文的初始缓存地址用于所述对端设备从所述接收报文的初始缓存地址处缓存报文数据包;

所述第四处理模块,还用于向对端设备发送报文接收完成命令,所述报文接收完成命令用于所述对端设备将所述报文数据包初始缓存地址对应的报文接收有效指示信息更改为无效。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1