CN118069578B - 数据处理方法、数据传输系统、电子设备和存储介质 - Google Patents
数据处理方法、数据传输系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN118069578B CN118069578B CN202410473846.0A CN202410473846A CN118069578B CN 118069578 B CN118069578 B CN 118069578B CN 202410473846 A CN202410473846 A CN 202410473846A CN 118069578 B CN118069578 B CN 118069578B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- channel
- type
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及集成电路技术领域,尤其涉及数据处理方法、数据传输系统、电子设备和存储介质,该方法包括:在符合写入条件的情况下,响应于接收到包括标志位、数据字段和类型字段的第一数据包,剔除数据字段中的标志位为无效的数据,以从第一数据包提取数据字段中的标志位为有效的有效数据字段和类型字段,第一数据包是对通道类型数据包进行带宽转换后得到的类型数据包,通道类型数据包是发送接口从AXI接口接收到的;根据有效数据字段和类型字段生成slope数据单元,将所生成的slope数据单元顺序写入包括多个先入先出存储结构的第一先入先出存储矩阵,slope数据单元包括有效数据字段和类型字段。由此,能够有效提高带宽利用率。
Description
技术领域
本公开涉及集成电路技术领域,尤其涉及一种数据处理方法、数据传输系统、电子设备和存储介质。
背景技术
在跨设备的互连中,主要采用标准的高速外围组件互连(Peripheral ComponentInterface Express,PCIE)协议栈完成端到端的通用数据传输。
在芯片间的互连中,通常采用高速通用芯粒互连(Universal ChipletInterconnect Express,UCIE)协议标准。UCIE提供一系列标准接口规范,在协议层采用PCIE或CXL(Compute Express Link)协议,能够实现不同厂商/工艺的裸片(Die)间通用互连。
PCIE和CXL等标准协议栈具备多层次的协议传输结构和完善的功能设计。 在芯片到芯片(Die-to-Die,D2D)互连中,芯片通常以高级总线接口(Advanced eXtensibleInterface,AXI)总线接口作为数据原始发送/接收端。通过PCIE或CXL协议栈对数据进行多层次封装和解析,再经过物理层传输,来实现互连通信以传输数据。然而,标准协议的多层次结构和完善的功能设计,往往会存在一定的带宽利用率限制问题。
发明内容
有鉴于此,本公开提出了一种数据处理方法、数据传输系统、电子设备和存储介质,从而能够有效提高带宽利用率。
根据本公开的第一方面,提供了一种数据处理方法,包括:提取步骤,在符合写入条件的情况下,响应于接收到包括标志位、数据字段和类型字段的第一数据包,剔除所述数据字段中的标志位为无效的数据,以从所述第一数据包提取所述数据字段中的标志位为有效的有效数据字段和类型字段,其中,所述第一数据包是对通道类型数据包进行带宽转换后得到的类型数据包,所述通道类型数据包是芯片到芯片D2D接口的发送接口从AXI接口接收到的,所述标志位用于标识所述数据字段的各位数据是否为有效类型数据,所述类型字段表示所述第一数据包的类型;写入步骤,根据所提取的有效数据字段和类型字段生成slope数据单元,将所生成的slope数据单元顺序写入第一先入先出存储矩阵,其中,所述第一先入先出存储矩阵包括多个先入先出存储结构,所述slope数据单元包括有效数据字段和类型字段。
在一种可能的实现方式中,所述写入条件包括所述第一先入先出存储矩阵中的所有先入先出存储结构的将满信号无效。
在一种可能的实现方式中,在所述写入步骤之后,所述数据处理方法还包括:读取步骤,在符合读取条件的情况下,从所述第一先入先出存储矩阵中的被选中的先入先出存储结构顺序读取各自存储的slope数据单元;生成步骤,将顺序读取的多个slope数据单元转换为Flit数据包;发送步骤,发送所述Flit数据包。
在一种可能的实现方式中,所述读取条件包括所述第一先入先出存储矩阵中的至少连续7个先入先出存储结构的空信号无效,相应地,所述至少连续7个先入先出存储结构被选中,所述读取步骤包括:从连续7个先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,所述生成步骤包括:将顺序读取的7个slope数据单元顺序组合成1个Flit数据包。
在一种可能的实现方式中,所述读取条件包括所述第一先入先出存储矩阵中的空信号无效的先入先出存储结构的个数小于7,相应地,空信号无效的先入先出存储结构被选中,所述读取步骤包括:从被选中的先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,所述生成步骤包括:将顺序读取的多个slope数据单元和无效数据顺序组合成1个Flit数据包。
在一种可能的实现方式中,在所述提取步骤之前还包括:经由所述发送接口接收所述AXI接口所传输的各通道数据包;将所述各通道数据包转换为各通道AXI协议数据包;将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包,其中所述各类型数据包包括数据字段、表示该数据包的类型的类型字段和表示数据字段的各位数据是否为有效类型数据的标志位;对所述各类型数据包进行仲裁,以按照仲裁的顺序传输所述各类型数据包,其中按照仲裁的顺序传输的所述各类型数据包为所述第一数据包。
在一种可能的实现方式中,所述各通道数据包包括写地址AW通道数据包、读地址AR通道数据包、写响应B通道数据包、写数据W通道数据包和读数据R通道数据包,相应地,所述各通道AXI协议数据包包括AW通道AXI协议数据包、AR通道AXI协议数据包、B通道AXI协议数据包、W通道AXI协议数据包、R通道AXI协议数据包;相应地,将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包包括:根据所述AW通道AXI协议数据包、所述AR通道AXI协议数据包和所述B通道AXI协议数据包至少之一以及无效数据进行组合,生成长度为所述预定值的AW_AR_B数据包;根据所述W通道AXI协议数据包生成长度为所述预定值的W数据包;根据所述R通道AXI协议数据包生成长度为所述预定值的R数据包。
在一种可能的实现方式中,在所述发送步骤之后,所述数据处理方法还包括:接收所述Flit数据包;对所接收到的Flit数据包进行解析,根据解析出的类型字段对解析出的多个有效slot数据单元进行并行分类处理;按照所述生成步骤将多个slope数据单元转换成Flit数据包的顺序,将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵。
在一种可能的实现方式中,在将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵之后,所述数据处理方法还包括:从各类型的先入先出存储矩阵读取预定个数的有效slope数据单元;针对所读取的各类型的有效slope数据单元,检验该类型的有效slope数据单元是否完整;如果该类型的有效slope数据单元是完整的,则按照AXI格式将该类型的有效slope数据单元还原为该类型的AXI协议数据包;经由所述D2D接口的接收接口将各类型的AXI协议数据包传输到所述AXI接口。
根据本公开的第二方面,提供了一种数据传输系统,包括:发送侧缓存控制模块,用于:在符合写入条件的情况下,响应于接收到包括标志位、数据字段和类型字段的第一数据包,剔除所述数据字段中的标志位为无效的数据,以从所述第一数据包提取所述数据字段中的标志位为有效的有效数据字段和类型字段,其中,所述第一数据包是对通道类型数据包进行带宽转换后得到的类型数据包,所述通道类型数据包是芯片到芯片D2D接口的发送接口从AXI接口接收到的,所述标志位用于标识所述数据字段的各位数据是否为有效类型数据,所述类型字段表示所述第一数据包的类型;根据所提取的有效数据字段和类型字段生成slope数据单元,将所生成的slope数据单元顺序写入第一先入先出存储矩阵,其中,所述第一先入先出存储矩阵包括多个先入先出存储结构,所述slope数据单元包括有效数据字段和类型字段。
在一种可能的实现方式中,所述写入条件包括所述第一先入先出存储矩阵中的所有先入先出存储结构的将满信号无效。
在一种可能的实现方式中,所述发送侧缓存控制模块还用于:在符合读取条件的情况下,从所述第一先入先出存储矩阵中的被选中的先入先出存储结构顺序读取各自存储的slope数据单元;将顺序读取的多个slope数据单元转换为Flit数据包;发送所述Flit数据包。
在一种可能的实现方式中,所述读取条件包括所述第一先入先出存储矩阵中的至少连续7个先入先出存储结构的空信号无效,相应地,所述至少连续7个先入先出存储结构被选中,所述发送侧缓存控制模块用于:从连续7个先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,将顺序读取的7个slope数据单元顺序组合成1个Flit数据包。
在一种可能的实现方式中,所述读取条件包括所述第一先入先出存储矩阵中的空信号无效的先入先出存储结构的个数小于7,相应地,空信号无效的先入先出存储结构被选中,所述发送侧缓存控制模块用于:从被选中的先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,将顺序读取的多个slope数据单元和无效数据顺序组合成1个Flit数据包。
在一种可能的实现方式中,所述数据传输系统还包括:所述发送接口,用于接收所述AXI接口所传输的各通道数据包;格式生成器,用于将所述各通道数据包转换为各通道AXI协议数据包,并将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包,其中所述各类型数据包包括数据字段、表示该数据包的类型的类型字段和表示数据字段的各位数据是否为有效类型数据的标志位;仲裁器,用于对所述各类型数据包进行仲裁,以按照仲裁的顺序传输所述各类型数据包,其中按照仲裁的顺序传输的所述各类型数据包为所述第一数据包。
在一种可能的实现方式中,所述各通道数据包包括写地址AW通道数据包、读地址AR通道数据包、写响应B通道数据包、写数据W通道数据包和读数据R通道数据包,相应地,所述各通道AXI协议数据包包括AW通道AXI协议数据包、AR通道AXI协议数据包、B通道AXI协议数据包、W通道AXI协议数据包、R通道AXI协议数据包;相应地,所述格式生成器用于:根据所述AW通道AXI协议数据包、所述AR通道AXI协议数据包和所述B通道AXI协议数据包至少之一以及无效数据进行组合,生成长度为所述预定值的AW_AR_B数据包;根据所述W通道AXI协议数据包生成长度为所述预定值的W数据包;根据所述R通道AXI协议数据包生成长度为所述预定值的R数据包。
在一种可能的实现方式中,所述数据传输系统还包括:解析模块,用于接收所述Flit数据包,对所接收到的Flit数据包进行解析,根据解析出的类型字段对解析出的多个有效slot数据单元进行并行分类处理;接收侧缓存控制模块,用于按照所述发送侧缓存控制模块将多个slope数据单元转换成Flit数据包的顺序,将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵。
在一种可能的实现方式中,所述数据传输系统还包括:类型生成器,用于从各类型的先入先出存储矩阵读取预定个数的有效slope数据单元,针对所读取的各类型的有效slope数据单元,检验该类型的有效slope数据单元是否完整;如果该类型的有效slope数据单元是完整的,则按照AXI格式将该类型的有效slope数据单元还原为该类型的AXI协议数据包;所述D2D接口的接收接口,用于将各类型的AXI协议数据包传输到所述AXI接口。
根据本公开的第三方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述数据处理方法。
根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述数据处理方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述数据处理方法。
本公开提供的数据处理方法和数据传输系统,对于接收到的通过对经由D2D接口的发送接口从AXI接口接收到的通道类型数据包进行带宽转换后得到的类型数据包,仅将该类型数据包中的有效数据字段和类型字段写入FIFO矩阵,而不将无效数据(即“气泡”)写入FIFO矩阵,因此,虽然输入FIFO矩阵的数据包是有气泡的,但是写入FIFO矩阵的数据是无气泡的,由此,不仅能够避免FIFO矩阵的浪费,而且还能够提高带宽利用率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1是本公开一实施例的数据传输系统的框图。
图2是AXI数据包格式的示意图。
图3是slope数据单元格式的示意图。
图4是本公开一实施例的数据处理方法的流程图。
图5是固定格式数据包的示意图。
图6是FIFO矩阵读写控制原理的示意图。
图7是本公开一实施例的数据处理方法的流程图。
图8是本公开一实施例的数据处理方法的流程图。
图9是本公开一实施例的数据处理方法的流程图。
图10是Flit解包器解包和分类的示意图。
图11是类型FIFO矩阵缓存的数据格式的示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1是本公开一实施例的数据传输系统的框图。如图1所示,该数据传输系统可以应用于芯片间互连的应用场景,并且该数据传输系统可以包括发送通道和接收通道。发送通道用于将来自AXI接口的五种类型的通道数据进行接口协议间的数据转换、并借助于物理层(PHY层)作为底层传输媒介,通过串行数据传输将转换后的数据传输至接收通道。接收通道用于借助于PHY层,通过串行数据传输来接收发送通道所发送的数据,对所接收的数据进行接口协议间的数据逆变换,再将逆变换后的数据传输至AXI接口。比如,可以采用该数据传输系统来实现芯片A和芯片B之间的互连通信。其中,芯片A(对应于发送接口)从AXI接口接收通道数据,经由发送通道将通道数据进行接口协议间的数据转换、并借助于PHY层将转换后的数据传输至接收通道,经由接收通道将该数据进行接口协议间的数据逆变换,再将逆变换后的数据传输至芯片B(对应于接收接口),芯片B将该数据发送至AXI接口。
在一种实现方式中,AXI接口可以包括AXI4接口或AXI5接口,这些AXI接口可以包括如下5个不同的通道:读地址通道(Read address channel,AR)、写地址通道(Writeaddress channel,AW)、读数据通道(Read data channel,R)、写数据通道(Write datachannel,W)、写响应通道(Write response channel,B)。每个通道都是一个独立的AXI握手协议。相应地,AXI接口传输的通道类型数据包可以包括AW通道数据包、AR通道数据包、B通道数据包、W通道数据包和R通道数据包。芯片A可以通过握手机制从AXI接口接收这些通道类型数据包,芯片B可以通过握手机制向AXI接口发送对应的数据包。
如图1所示,发送通道可以包括微片(Flit)先入先出(Frist In Frist Out,FIF0)控制模块,Flit FIFO控制模块的输入数据包是由格式生成器中的AW_AR_B_混合打包器打包出的数据包、由格式生成器中的W打包器打包出的数据包、以及由格式生成器中的R打包器打包出的数据包,这三个打包器打包出的数据包都是9个时隙(slot)的数据,每个slot传输8Byte的数据,因此这三个打包器打包出的数据包的长度都是72Byte,即,这些数据包的数据长度相同。其中,AW_AR_B_混合打包器对AW_FIFO缓存的AW通道数据包(AW_PKT)所转换的AW通道AXI协议数据包、AR_FIFO缓存的AR通道数据包(AR_PKT)所转换的AR通道AXI协议数据包、B_FIFO缓存的B通道数据包(B_PKT)所转换的B通道AXI协议数据包这三路数据包任意组合以形成打包后的数据包;W打包器对W_FIFO缓存的W通道数据包(W_PKT)所转换的W通道AXI协议数据包这一路独立数据包进行打包;R打包器对R_FIFO缓存的R通道数据包(R_PKT)所转换的R通道AXI协议数据包这一路独立数据包进行打包。
如图1和图2所示,AW通道AXI协议数据包和AR通道AXI协议数据包都是2时隙的数据,因此AW通道AXI协议数据包和AR通道AXI协议数据包的长度都是16 Byte。B通道AXI协议数据包是1时隙的数据,因此B通道AXI协议数据包的长度是8 Byte。W通道AXI协议数据包是10时隙的数据,因此W通道AXI协议数据包的长度是80 Byte。R通道AXI协议数据包是9时隙的数据,因此R通道AXI协议数据包的长度是72 Byte。
也就是说,AW_AR_B_混合打包器、W打包器、R打包器分别对数据长度不同的AXI协议数据包进行打包,并且三者最终打包出的数据长度相同(8个slope单元),其中,AW_AR_B_混合打包器将长度较短的数据包即AW通道AXI协议数据包、AR通道AXI协议数据包和B通道AXI协议数据包进行任意混合,W打包器和R打包器分别对实际接收到的W通道AXI协议数据包和R通道AXI协议数据包进行打包。需要注意的是,W通道AXI协议数据包的第1个slot单元只有WL信息有用,不会单独打包成1个slope。但WL信息会跟随最后1个slot单元一起打包成1个slope(W8或W9),WL信息通过W8/W9类型字段携带。这样,可以将带宽拉到符合设计要求的最大带宽,形成固定长度的固定格式数据包(Fix Format数据包)。比如,通过向数据长度未达到该固定长度的数据包中填充空数据(例如“0”,也称为无效数据)来扩展数据长度,所填充的“0”为无效数据,即气泡。其中,图2所示的AXI数据包格式为AXI协议规定的格式,在此不再赘述。
其中,为了数据类型均衡化,本实施例将各数据包转换成固定长度的固定格式数据包。同时,考虑到AW_PKT、AR_PKT和B_PKT这三种类型的数据包的长度较短,如果将这三种类型的数据包分别打包为固定格式数据包,则导致长度较短的这三个数据包各自需要耗费一个时钟周期,从而可能降低传输效率。为此,AW_AR_B_混合打包器对AW_PKT、AR_PKT和B_PKT进行任意组合,具体的组合方式可以参见图5。如果混合后的数据长度仍未到达固定长度,则可以添加空数据,以将数据长度扩展至固定长度。由此,相较于将这三种类型的数据包分别打包为固定格式数据包并进行后续处理,本实施例对这三种类型的数据包进行混合处理,从而能够提高数据传输效率。
另外,如果只有AW_PKT、AR_PKT和B_PKT其中一种类型的数据包,在轮询仲裁时将优先权给了这种类型的数据包的情况下,考虑到实际传输时可能没有那么多的有效数据待传输,因此可以不必等待其它类型的数据包而是先将该一种类型的数据包转换为固定格式数据包并进行传输,相较于一直等待其它类型的数据包的方式而言,也能够提高数据传输效率。
在向FIFO矩阵输入AW_AR_B_混合打包器打包出的数据包、由W打包器打包出的数据包、以及由R打包器打包出的数据包时,如果符合写入条件,则Flit FIFO控制模块将这些固定格式数据包按图3所示的本实施例自定义的数据单元slope(69bit)重新组合,采用可变长度的滑窗写方式,无气泡顺序循环写入FIFO矩阵(Matrix)。其中,Flit FIFO控制模块用作本公开的发送侧缓存控制模块。
FIFO矩阵实际是多个FIFO的组合体。以单个FIFO为粒度形成并行排列组合,并按顺序编号,通过一种可变长度的滑窗方式循环移动使能FIFO读/写信号,构成一种能够灵活支持变长度的有效数据输入和有效数据输出的缓存组件。在一种可能的实现方式中,FIFO矩阵由9个FIFO组合构成,用于实现固定格式数据包的有效slope单元的缓存。每个FIFO的数据位宽为69bits,用于存储1个完整的slope数据单元,即:“数据(Data, slot单元)+类型(Type),具体格式请参见图3,slope数据单元包括64bits的数据字段和5bits的类型字段。该数据字段是从固定格式数据包提取出的有效数据,该类型字段是根据数据字段内部生成的。
考虑到固定长度的固定格式数据包是对AW_PKT、W_PKT、AR_PKT、R_PKT、B_PKT这5种通道类型数据包进行带宽转换后得到的类型数据包,如前文所描述的,对于数据长度未达到该固定长度的数据包,向该数据包填充空数据来使其数据长度扩展至该固定长度,因此,在进行该带宽转换时向数据长度未达到该固定长度的通道类型数据包中引入了气泡。如果不剔除这些气泡,则会对这些气泡进行缓存和传输,这将导致缓存的浪费,并且会降低带宽利用率。
为此,Flit FIFO控制模块执行图4所示的步骤S401和S402。
在步骤S401中,Flit FIFO控制模块在符合写入条件的情况下,响应于接收到包括标志位(STRB)、数据字段(比如WO-W8)和类型字段(TYPE)的第一数据包,剔除所述数据字段中的标志位为无效的数据,以从所述第一数据包提取所述数据字段中的标志位为有效的有效数据字段和类型字段,其中,所述第一数据包是对通道类型数据包进行带宽转换后得到的类型数据包,所述通道类型数据包是D2D接口的发送接口从AXI接口接收到的,所述标志位用于标识所述数据字段的各位数据是否为有效类型数据,所述类型字段表示所述第一数据包的类型。其中,标志位是模块内部生成的,标志位为STRB[8:0],每个bit位表示对应的数据单位是否为有效类型数据,有效则置为1,否则为0。
本实施例中,第一数据包为前文描述的固定格式数据包和对应的标志位。其中,第一数据包包括图5所示的10种类型数据包,如图5所示,该固定格式数据包可以包括:W类型固定格式数据包、R类型固定格式数据包、B类型固定格式数据包、AW类型固定格式数据包、AR类型固定格式数据包、AWAR类型固定格式数据包、AWB类型固定格式数据包、ARB类型固定格式数据包、AWARB类型固定格式数据包,其中,BLANK表示“空”,该数据为无效数据,对应的标志位STRB为0。其中,B类型、AW类型、AR类型、AWAR类型、AWB类型、ARB类型、AWARB类型固定格式数据包为AW_AR_B_混合打包器对AW_PKT、AR_PKT和B_PKT进行任意组合得到的固定格式数据包。
由于AXI协议规定需要标识是否是最后一笔写数据,因此,本实施例的W类型固定格式数据包包括WL数据包和L数据包,两者的区别在于WL数据包没有用于标识是最后一笔写数据的W9的类型字,而L数据包带有W9的类型字。这表明,WL数据包是最后一笔写数据之前的任意一笔写数据,L数据包是最后一笔写数据。
以WL数据包为例,其类型字段的5bits表征该数据包的类型为W_wo,并且W0-W8各自的STRB均为“1”,表示W0-W8均为有效数据。以L类数据包为例,其类型字段的5bits表征该数据包的类型为W_wW,并且W0-W8各自的STRB均为“1”,表示W0-W8均为有效数据。以R数据包为例,其类型字段的5bits表征该数据包的类型为R,并且R0-R8各自的STRB均为“1”,表示R0-R8均为有效数据。以B数据包为例,其类型字段的5bits表征该数据包的类型为B,B的STRB为“1”,表示B为有效数据,其余位的STRB为“0”,表示均为无效数据。依此类推,应能够理解图5中的其它数据包的含义。
如图5所示的,B类型、AW类型、AR类型、AWAR类型、AWB类型、ARB类型、AWARB类型固定格式数据包均带有气泡,因此,Flit FIFO控制模块在接收到第一数据包时,需要剔除第一数据包中的气泡,这样,第一数据包剩下的就是有效数据和类型。比如,B类型固定格式数据包进行剔除处理后剩下的是B数据和TYPE。
在步骤S402中,Flit FIFO控制模块根据所提取的有效数据字段和类型字段生成slope数据单元,将所生成的slope数据单元顺序写入第一先入先出存储矩阵,其中,所述第一先入先出存储矩阵包括多个先入先出存储结构,所述slope数据单元包括有效数据字段和类型字段。
本实施例中,Flit FIFO控制模块将有效数据和类型按照图3所示的格式组合成slope数据单元,这样,slope数据单元不携带气泡,可以将不携带气泡的slope顺序写入FIFO矩阵中。如图6和下述表1所示,根据识别出的类型Type,对slope数据单元和STRB(充当写使能)进行循环移位以实现滑窗操作。循环移位值取决于滑窗起点值,滑窗移位后的9对slope数据单元/STRB分配对应到9个FIFO的wdata/wr_en输入端口,由STRB分别控制FIFO写入操作是否生效。其中,滑窗起始点由当前写起始指针指向位置(wr_start_ptr)获取。滑窗有效长度由字段STRB有效位长度相加获得。下一次写起始指针:当前滑窗起始点和滑窗有效长度相加,然后对N(FIFO总数)取模,生成下一次写起始指针位置。
表1 FIFO矩阵的写入操作
比如,每个时钟周期写一笔数据,则如图6所示的,第0笔自FIFO 0开始连续写入AWARB类型的5个有效数据,为了写入数据保序,指针变成5,第1笔自FIFO 5开始连续写入W类型的9个有效数据,为了写入数据保序,指针变成5,第2笔自FIFO 5开始写入DLLP类型的1个有效数据,为了写入数据保序,指针变成6,第3笔自FIFO 6开始连续写入R类型的9个有效数据。可见,写入的都是有效数据。
由此,Flit FIFO控制模块采用可变长度的滑窗写方式,无气泡顺序循环向FIFO矩阵写入slope数据单元。其中,FIFO矩阵可以用作本公开的第一先入先出存储矩阵。
根据本实施例,对于接收到的通过对经由D2D接口的发送接口从AXI接口接收到的通道类型数据包进行带宽转换后得到的类型数据包,仅将该类型数据包中的有效数据字段和类型字段写入FIFO矩阵,而不将气泡写入FIFO矩阵,因此,虽然输入FIFO矩阵的数据包是有气泡的,但是写入FIFO矩阵的数据是无气泡的,由此,不仅能够避免FIFO矩阵的浪费,而且还能够提高带宽利用率。
另外,根据本实施例,自定义slope数据单元,相较于现有技术中的协议数据包比如PCIE协议数据包的协议包的封装较复杂且数据包有效数据的利用率不够,本实施例能够简化数据包的封装且能够提高数据包中有效数据的利用率。
在一种可能的实现方式中,写入条件可以包括所述第一先入先出存储矩阵中的所有先入先出存储结构的将满信号无效。
这里,将满信号(afull)有效指示对应的先入先出存储结构中已缓存的数据量大于预设将满阈值,例如,当FIFO内包含的数据量大于等于预设将满阈值时,将满信号有效(例如afull为1),将满信号传输给上游模块,通知上游模块停止发送数据,防止FIFO发生溢出。将满信号无效指示对应的先入先出存储结构中已缓存的数据量小于预设将满阈值,还可以继续向先入先出存储结构中写入数据。
本实施例中,如果FIFO矩阵中的所有FIFO存储结构都是非将满的,则符合写入条件,否则,不符合写入条件。由此,根据这样的写入条件来控制向FIFO矩阵的写入,能够确保容纳最大的输入位宽数据。
在一种可能的实现方式中,如图7所示,数据处理方法还包括步骤S701、S702和S703。
在步骤S701中,在符合读取条件的情况下,从所述第一先入先出存储矩阵中的被选中的先入先出存储结构顺序读取各自存储的slope数据单元。
在步骤S702中,将顺序读取的多个slope数据单元转换为Flit数据包。
在步骤S703中,发送所述Flit数据包。
在一种可能的实现方式中,所述读取条件包括所述第一先入先出存储矩阵中的至少连续7个先入先出存储结构的空信号无效,相应地,所述至少连续7个先入先出存储结构被选中,步骤S701包括:从连续7个先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,步骤S702包括:将顺序读取的7个slope数据单元顺序组合成1个Flit数据包。
本实施例中,如图6和下述表2所示,Flit FIFO控制模块根据当前读起始指针位置(rd_start_ptr),对STRB(充当读使能)进行循环移位操作,在满足读条件的情况下,被选中的FIFO的rd_en输入端口被置位生效,对应的rdata输出端口进行数据输出,没有选中的FIFO或空的FIFO不进行读数据操作。可以将读取出的有效rdata按照Flit格式形成完整的Flit数据包,并输出该Flit数据包。其中,滑窗起始点由当前写起始指针指向位置(wr_start_ptr)获取。滑窗有效长度由设置的STRB字段有效位长度相加获得。下一次读起始指针:同写起始指针生成方式相同,即,当前滑窗起始点和滑窗有效长度相加,然后对N(FIFO总数)取模,生成下一次读起始指针位置。
表2 FIFO矩阵的读取操作
每个时钟周期读一笔数据,则如图6所示的,第0笔自FIFO 0开始连续读取7个有效数据,为了传输数据保序,指针变成7;第1笔自FIFO 7开始连续读取7个有效数据,为了传输数据保序,指针变成5;第2笔自FIFO 5开始连续读取7个有效数据,以此类推。可见,读取的数据都是有效数据。
由此,Flit FIFO控制模块无气泡顺序读取FIFO矩阵所缓存的slope数据单元,从而能够提高数据包有效数据利用率。
在一种可能的实现方式中,所述读取条件包括所述第一先入先出存储矩阵中的空信号无效的先入先出存储结构的个数小于7,相应地,空信号无效的先入先出存储结构被选中,步骤S701包括:从被选中的先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,步骤S702包括:将顺序读取的多个slope数据单元和无效数据顺序组合成1个Flit数据包。
本实施例中,如果一个时钟周期读取的数据不够7个,则可以等待直到凑够7个数据再进行数据传输,这样,传输的数据都是有效数据,能够提高数据包有效数据利用率。当然,也可以不等待而是直接传输有效数据不到7个的数据,这样虽然混入了空的数据包,但是无需一直等待其它有效数据,能够将有效数据及时传输到对端。显然,这种带宽浪费,是在设计带宽够用的情况下,由实际应用场景自动引入的,并不属于不合理设计造成的带宽浪费。因此能够提高数据传输效率。应能够理解,这些空的数据包将在下文描述的解析过程中剔除。
在一种可能的实现方式中,如图8所示,数据处理方法还可以包括步骤S801、S802、S803和S804。
在步骤S801中,经由所述发送接口接收所述AXI接口所传输的各通道数据包。
本实施例中,如图1所示,数据传输系统的发送通道还可以包括发送接口。发送接口作为对接HBF总线AXI接口的从(slave)端,并充当D2D互连的发送端。发送接口与AXI接口通过握手机制能够获取到AXI4各通道(channel)数据包,其中各通道数据包可以包括AW通道数据包、AR通道数据包、B通道数据包、W通道数据包和R通道数据包。发送接口可以将各通道数据包分别缓存于相应类型的FIFO。比如,发送接口将AW通道数据包、AR通道数据包、B通道数据包、W通道数据包和R通道数据包分别缓存于AW_FIFO、AR_FIFO、B_FIFO、W_FIFO、R_FIFO。各AXI通道类型FIFO的主要配置参数:FIFO数据位宽等于AXI协议数据包格式位宽。比如,AW_FIFO、AR_FIFO、B_FIFO、W_FIFO、R_FIFO数据位宽分别为16Byte、16Byte、8Byte、80Byte、72Byte。
在步骤S802中,将所述各通道数据包转换为各通道AXI协议数据包。
在步骤S803中,将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包,其中所述各类型数据包包括数据字段、表示该数据包的类型的类型字段和表示数据字段的各位数据是否为有效类型数据的标志位。
本实施例中,如图1所示,数据传输系统的发送通道还可以包括格式生成器,格式生成器将AW通道数据包、AR通道数据包、B通道数据包、W通道数据包和R通道数据包分别转换为AW通道AXI协议数据包、AR通道AXI协议数据包、B通道AXI协议数据包、W通道AXI协议数据包、R通道AXI协议数据包。
接着,格式生成器的AW_AR_B_混合打包器按照前文描述的打包方式对AW通道AXI协议数据包、AR通道AXI协议数据包、B通道AXI协议数据包进行任意组合,以将其转换为固定长度的AW_AR_B数据包,格式生成器的W打包器和R打包器分别按照前文描述的打包方式分别对W通道AXI协议数据包和R通道AXI协议数据包进行打包,以将其分别转换为固定长度的W数据包和R数据包。其中,该固定长度为该预定值,比如为72Byte。固定长度的AW_AR_B数据包、W数据包和R数据包的格式可以参阅图5以及前文描述。
在步骤S804中,对所述各类型数据包进行仲裁,以按照仲裁的顺序传输所述各类型数据包,其中按照仲裁的顺序传输的所述各类型数据包为所述第一数据包。
本实施例中,如图1所示,数据传输系统的发送通道还可以包括仲裁器,仲裁器可以采用轮询优先级方式,进行AW_AR_B数据包、W数据包和R数据包的仲裁选择,从而能够保证各种类型数据包均衡传输。
在一种可能的实现方式中,如图9所示,数据处理方法还可以包括步骤S901、S902、S903、S904、S905、S906。
在步骤S901中,接收所述Flit数据包。
在步骤S902中,对所接收到的Flit数据包进行解析,根据解析出的类型字段对解析出的多个有效slop数据单元进行并行分类处理。
本实施例中,如图1所示,数据传输系统的接收通道可以包括Flit解包器,Flit解包器经由PHY层接收发送通道所发送的Flit数据包,如图10所示,Flit解包器可以对接收的Flit数据包进行解包和类型数据分类。其中,Flit解包器根据Flit数据包的Type[6:0]判断各个slot有效数据单元(slot0~slot6)的具体类型,并按照图3所示的格式还原生成7个slope数据单元。而且,Flit解包器可以对解析生成的7个slope数据单元进行并行Type分类处理,从而能够匹配最大的接收数据速率。
在步骤S903中,按照步骤S702将多个slope数据单元转换成Flit数据包的顺序,将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵。
本实施例中,如图1所示,数据传输系统的接收通道还可以包括类型FIFO控制模块,与发送通道的FIFO控制模块类似地,类型FIFO控制模块同样采用可变长度的滑窗写方式,按照图11所示的格式将各类型slope数据单元无气泡顺序缓存于相应的类型FIFO矩阵。即,类型FIFO控制模块将同一类型的slope数据单元分别按照Flit数据包中的原定顺序连续地寄存到对应的类型FIFO矩阵(data_out[6:0][68:0])。类型FIFO矩阵也称为类型数据寄存器组。
如图1所示,类型FIFO矩阵可以包括AW FIFO矩阵、W FIFO矩阵、AR FIFO矩阵、RFIFO矩阵、B FIFO矩阵。类型FIFO控制模块可以将类型为AW的slope数据单元、W的slope数据单元、AR的slope数据单元、R的slope数据单元、B的slope数据单元分别按照Flit数据包中的原定顺序连续地寄存到AW FIFO矩阵、W FIFO矩阵、AR FIFO矩阵、R FIFO矩阵、B FIFO矩阵。各类型FIFO矩阵可以相互独立工作。由于各类型FIFO矩阵不一定寄存满,所有对于没有有效类型数据的类型FIFO矩阵默认为空(BLANK),相应的“有效数据标志位”STRB为0。
各类型FIFO矩阵中输入数据的格式为data[69×N-1:0]。其中,W/R FIFO矩阵中N=9,B/AW/AR FIFO矩阵中N=7。STRB[N-1:0]是有效数据标志位寄存器组。STRB中表示FIFO的slope数据单位是否为有效类型数据。各类型FIFO矩阵数据对应的输入数据格式可参见图11。
在步骤S904中,从各类型的先入先出存储矩阵读取预定个数的有效slope数据单元。
本实施例中,如图1所示,针对各类型的FIFO矩阵,类型FIFO控制模块可以采用固定长度的滑窗读方式读取预定个数的有效slope数据单元,用于还原成AXI协议数据包。
在步骤S905中,针对所读取的各类型的有效slope数据单元,检验该类型的有效slope数据单元是否完整;如果该类型的有效slope数据单元是完整的,则按照AXI格式将该类型的有效slope数据单元还原为该类型的AXI协议数据包。
本实施例中,如图1所示,数据传输系统的接收通道还可以包括类型生成器,类型生成器检验各类型的有效slope数据单元的类型字段是否完整,并按照AXI格式重组还原为该类型的AXI协议数据包。
在步骤S906中,经由所述D2D接口的接收接口将各类型的AXI协议数据包传输到所述AXI接口。
本实施例中,如图1所示,数据传输系统的接收通道还可以包括接收接口(RXInterface),接收接口负责接收并缓存类型生成器输出的各类型完整数据包,并按照AXI接口协议格式,通过握手机制,将各类型数据包传输到HBF总线。
接收接口作为对接HBF总线AXI接口的主(master)端,并充当D2D互连的接收端。接收接口与AXI接口通过握手机制能够向AXI接口传输AXI各通道数据包。与发送接口类似地,接收接口可以将各类型完整数据包分别缓存于相应类型的FIFO。比如,接收接口将AW_PKT、AR_PKT、B_PKT、W_PKT、R_PKT分别缓存于AW_FIFO、AR_FIFO、B_FIFO、W_FIFO、R_FIFO。
可见,数据传输系统的发送通道可以包括D2D接口的发送接口、格式生成器、仲裁器、Flit FIFO控制模块,发送接口通过握手机制从AXI接口接收5种通道数据包,并对这些数据包进行一级缓存,格式生成器将所缓存的各类型通道数据包转换为各类型通道AXI协议数据包、再将各类型通道AXI协议数据包处理转换为固定格式数据包,Flit FIFO控制模块对这些固定格式数据包采用可变长度的滑窗写方式,无气泡顺序循环写入FIFO矩阵,无气泡顺序读取FIFO矩阵所缓存的slope数据单元,经由PHY层向接收通道发送这些slope数据单元。
并且,数据传输系统的接收通道可以包括D2D接口的接收接口、类型生成器、类型FIFO控制模块、Flit解包器,Flit解包器经由PHY层接收到发送通道所发送的上述slope数据单元,对这些slope数据单元进行解析并按照类型字段对这些slope数据单进行分类,类型FIFO控制模块采用可变长度的滑窗写方式,将各类型的slope数据单元无气泡顺序缓存于相应的类型FIFO矩阵,采用滑窗方式从各类型的FIFO矩阵读取特定个数的slope数据单元,类型生成器将各类型的slope数据单元还原为该类型的AXI协议数据包,并将各类型的AXI协议数据包还原为各类型的通道数据包,接收接口通过握手机制向AXI接口发送各类型的通道数据包。
因此,相较于现有技术需要多层次的协议传输结构以及完善的功能、控制机制设计,本实施例的数据传输系统删减了一些不需要的附带的功能,比如电源管理功能;简化了一些控制机制,比如credit等流控设计,因此,能够减少协议传输层次结构,简化控制过程,从而总体上能够提升设计带宽的有效利用率,降低数据传输延时。
相较于现有技术,本实施例的数据处理方法自定义了slope数据单元,采用自定义协议包格式,从而能够提高数据包有效数据的利用率。另外,采用FIFO矩阵实现协议间数据位宽匹配和无气泡缓存,从而能够保证设计带宽利用率最大。这样,能够实现以较大有效数据率在芯片间实现D2D互连通信。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的数据处理方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述数据处理方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述数据处理方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述数据处理方法。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种数据处理方法,其特征在于,包括:
提取步骤,在符合写入条件的情况下,响应于接收到包括标志位、数据字段和类型字段的第一数据包,剔除所述数据字段中的标志位为无效的数据,以从所述第一数据包提取所述数据字段中的标志位为有效的有效数据字段和类型字段,其中,所述第一数据包是对通道类型数据包进行带宽转换后得到的固定长度的类型数据包,在对数据长度未达到所述固定长度的通道类型数据包进行带宽转换时,通过向数据长度未达到所述固定长度的通道类型数据包中填充无效数据来得到所述第一数据包,所述通道类型数据包是芯片到芯片D2D接口的发送接口从AXI接口接收到的,所述标志位用于标识所述数据字段的各位数据是否为有效类型数据,所述类型字段表示所述第一数据包的类型;
写入步骤,根据所提取的有效数据字段和类型字段生成slope数据单元,将所生成的slope数据单元顺序写入第一先入先出存储矩阵,其中,所述第一先入先出存储矩阵包括多个先入先出存储结构,所述slope数据单元包括有效数据字段和类型字段。
2.根据权利要求1所述的数据处理方法,其特征在于,所述写入条件包括所述第一先入先出存储矩阵中的所有先入先出存储结构的将满信号无效。
3.根据权利要求1所述的数据处理方法,其特征在于,在所述写入步骤之后,所述数据处理方法还包括:
读取步骤,在符合读取条件的情况下,从所述第一先入先出存储矩阵中的被选中的先入先出存储结构顺序读取各自存储的slope数据单元;
生成步骤,将顺序读取的多个slope数据单元转换为Flit数据包;
发送步骤,发送所述Flit数据包。
4.根据权利要求3所述的数据处理方法,其特征在于,
所述读取条件包括所述第一先入先出存储矩阵中的至少连续7个先入先出存储结构的空信号无效,相应地,
所述至少连续7个先入先出存储结构被选中,
所述读取步骤包括:从连续7个先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,
所述生成步骤包括:将顺序读取的7个slope数据单元顺序组合成1个Flit数据包。
5.根据权利要求3所述的数据处理方法,其特征在于,
所述读取条件包括所述第一先入先出存储矩阵中的空信号无效的先入先出存储结构的个数小于7,相应地,
空信号无效的先入先出存储结构被选中,
所述读取步骤包括:从被选中的先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,
所述生成步骤包括:将顺序读取的多个slope数据单元和无效数据顺序组合成1个Flit数据包。
6.根据权利要求1-5中任一项所述的数据处理方法,其特征在于,在所述提取步骤之前,所述数据处理方法还包括:
经由所述发送接口接收所述AXI接口所传输的各通道数据包;
将所述各通道数据包转换为各通道AXI协议数据包;
将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包,其中所述各类型数据包包括数据字段、表示该数据包的类型的类型字段和表示数据字段的各位数据是否为有效类型数据的标志位;
对所述各类型数据包进行仲裁,以按照仲裁的顺序传输所述各类型数据包,其中按照仲裁的顺序传输的所述各类型数据包为所述第一数据包。
7.根据权利要求6所述的数据处理方法,其特征在于,
所述各通道数据包包括写地址AW通道数据包、读地址AR通道数据包、写响应B通道数据包、写数据W通道数据包和读数据R通道数据包,相应地,所述各通道AXI协议数据包包括AW通道AXI协议数据包、AR通道AXI协议数据包、B通道AXI协议数据包、W通道AXI协议数据包、R通道AXI协议数据包;相应地
将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包包括:
根据所述AW通道AXI协议数据包、所述AR通道AXI协议数据包和所述B通道AXI协议数据包至少之一以及无效数据进行组合,生成长度为所述预定值的AW_AR_B数据包;
根据所述W通道AXI协议数据包生成长度为所述预定值的W数据包;
根据所述R通道AXI协议数据包生成长度为所述预定值的R数据包。
8.根据权利要求3-5中任一项所述的数据处理方法,其特征在于,在所述发送步骤之后,所述数据处理方法还包括:
接收所述Flit数据包;
对所接收到的Flit数据包进行解析,根据解析出的类型字段对解析出的多个有效slot数据单元进行并行分类处理;
按照所述生成步骤将多个slope数据单元转换成Flit数据包的顺序,将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵。
9.根据权利要求8所述的数据处理方法,其特征在于,在将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵之后,所述数据处理方法还包括:
从各类型的先入先出存储矩阵读取预定个数的有效slope数据单元;
针对所读取的各类型的有效slope数据单元,
检验该类型的有效slope数据单元是否完整;
如果该类型的有效slope数据单元是完整的,则按照AXI格式将该类型的有效slope数据单元还原为该类型的AXI协议数据包;
经由所述D2D接口的接收接口将各类型的AXI协议数据包传输到所述AXI接口。
10.一种数据传输系统,其特征在于,包括:
发送侧缓存控制模块,用于:
在符合写入条件的情况下,响应于接收到包括标志位、数据字段和类型字段的第一数据包,剔除所述数据字段中的标志位为无效的数据,以从所述第一数据包提取所述数据字段中的标志位为有效的有效数据字段和类型字段,其中,所述第一数据包是对通道类型数据包进行带宽转换后得到的固定长度的类型数据包,在对数据长度未达到所述固定长度的通道类型数据包进行带宽转换时,通过向数据长度未达到所述固定长度的通道类型数据包中填充无效数据来得到所述第一数据包,所述通道类型数据包是芯片到芯片D2D接口的发送接口从AXI接口接收到的,所述标志位用于标识所述数据字段的各位数据是否为有效类型数据,所述类型字段表示所述第一数据包的类型;
根据所提取的有效数据字段和类型字段生成slope数据单元,将所生成的slope数据单元顺序写入第一先入先出存储矩阵,其中,所述第一先入先出存储矩阵包括多个先入先出存储结构,所述slope数据单元包括有效数据字段和类型字段。
11.根据权利要求10所述的数据传输系统,其特征在于,所述写入条件包括所述第一先入先出存储矩阵中的所有先入先出存储结构的将满信号无效。
12.根据权利要求10所述的数据传输系统,其特征在于,所述发送侧缓存控制模块还用于:
在符合读取条件的情况下,从所述第一先入先出存储矩阵中的被选中的先入先出存储结构顺序读取各自存储的slope数据单元;
将顺序读取的多个slope数据单元转换为Flit数据包;
发送所述Flit数据包。
13.根据权利要求12所述的数据传输系统,其特征在于,
所述读取条件包括所述第一先入先出存储矩阵中的至少连续7个先入先出存储结构的空信号无效,相应地,
所述至少连续7个先入先出存储结构被选中,
所述发送侧缓存控制模块用于:
从连续7个先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,
将顺序读取的7个slope数据单元顺序组合成1个Flit数据包。
14.根据权利要求12所述的数据传输系统,其特征在于,
所述读取条件包括所述第一先入先出存储矩阵中的空信号无效的先入先出存储结构的个数小于7,相应地,
空信号无效的先入先出存储结构被选中,
所述发送侧缓存控制模块用于:
从被选中的先入先出存储结构顺序读取各个先入先出存储结构存储的slope数据单元,
将顺序读取的多个slope数据单元和无效数据顺序组合成1个Flit数据包。
15.根据权利要求10-14中任一项所述的数据传输系统,其特征在于,还包括:
所述发送接口,用于接收所述AXI接口所传输的各通道数据包;
格式生成器,用于将所述各通道数据包转换为各通道AXI协议数据包,并将所述各通道AXI协议数据包转换为长度均为预定值的各类型数据包,其中所述各类型数据包包括数据字段、表示该数据包的类型的类型字段和表示数据字段的各位数据是否为有效类型数据的标志位;
仲裁器,用于对所述各类型数据包进行仲裁,以按照仲裁的顺序传输所述各类型数据包,其中按照仲裁的顺序传输的所述各类型数据包为所述第一数据包。
16.根据权利要求15所述的数据传输系统,其特征在于,
所述各通道数据包包括写地址AW通道数据包、读地址AR通道数据包、写响应B通道数据包、写数据W通道数据包和读数据R通道数据包,相应地,所述各通道AXI协议数据包包括AW通道AXI协议数据包、AR通道AXI协议数据包、B通道AXI协议数据包、W通道AXI协议数据包、R通道AXI协议数据包;相应地
所述格式生成器用于:
根据所述AW通道AXI协议数据包、所述AR通道AXI协议数据包和所述B通道AXI协议数据包至少之一以及无效数据进行组合,生成长度为所述预定值的AW_AR_B数据包;
根据所述W通道AXI协议数据包生成长度为所述预定值的W数据包;
根据所述R通道AXI协议数据包生成长度为所述预定值的R数据包。
17.根据权利要求12-14中任一项所述的数据传输系统,其特征在于,还包括:
解析模块,用于接收所述Flit数据包,对所接收到的Flit数据包进行解析,根据解析出的类型字段对解析出的多个有效slot数据单元进行并行分类处理;
接收侧缓存控制模块,用于按照所述发送侧缓存控制模块将多个slope数据单元转换成Flit数据包的顺序,将分类后的各类型的有效slope数据单元写入对应类型的先入先出存储矩阵。
18.根据权利要求17所述的数据传输系统,其特征在于,还包括:
类型生成器,用于从各类型的先入先出存储矩阵读取预定个数的有效slope数据单元,针对所读取的各类型的有效slope数据单元,
检验该类型的有效slope数据单元是否完整;
如果该类型的有效slope数据单元是完整的,则按照AXI格式将该类型的有效slope数据单元还原为该类型的AXI协议数据包;
所述D2D接口的接收接口,用于将各类型的AXI协议数据包传输到所述AXI接口。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1-9中任意一项所述的数据处理方法。
20.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-9中任意一项所述的数据处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410473846.0A CN118069578B (zh) | 2024-04-19 | 2024-04-19 | 数据处理方法、数据传输系统、电子设备和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410473846.0A CN118069578B (zh) | 2024-04-19 | 2024-04-19 | 数据处理方法、数据传输系统、电子设备和存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118069578A CN118069578A (zh) | 2024-05-24 |
| CN118069578B true CN118069578B (zh) | 2024-07-30 |
Family
ID=91102336
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410473846.0A Active CN118069578B (zh) | 2024-04-19 | 2024-04-19 | 数据处理方法、数据传输系统、电子设备和存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118069578B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118474209B (zh) * | 2024-07-11 | 2024-10-11 | 山东海量信息技术研究院 | 内存扩展系统及其数据包封装方法、设备、介质、产品 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109688606A (zh) * | 2018-12-29 | 2019-04-26 | 京信通信系统(中国)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
| CN116795763A (zh) * | 2023-07-31 | 2023-09-22 | 摩尔线程智能科技(北京)有限责任公司 | 基于axi协议的数据分组传输的方法、片上系统和芯片 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4755810A (en) * | 1985-04-05 | 1988-07-05 | Tektronix, Inc. | Frame buffer memory |
| US6701390B2 (en) * | 2001-06-06 | 2004-03-02 | Koninklijke Philips Electronics N.V. | FIFO buffer that can read and/or write multiple and/or selectable number of data words per bus cycle |
| CN113254368B (zh) * | 2021-07-15 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 从axi总线到opb总线的数据写入方法及读取方法 |
| CN116431079A (zh) * | 2023-04-28 | 2023-07-14 | 上海壁仞智能科技有限公司 | 数据读取、写入方法及装置、带宽转换装置和电子设备 |
-
2024
- 2024-04-19 CN CN202410473846.0A patent/CN118069578B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109688606A (zh) * | 2018-12-29 | 2019-04-26 | 京信通信系统(中国)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
| CN116795763A (zh) * | 2023-07-31 | 2023-09-22 | 摩尔线程智能科技(北京)有限责任公司 | 基于axi协议的数据分组传输的方法、片上系统和芯片 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118069578A (zh) | 2024-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8165120B2 (en) | Buffering architecture for packet injection and extraction in on-chip networks | |
| CN111131091B (zh) | 一种面向片上网络的片间互连方法和系统 | |
| JP6377844B2 (ja) | Sfenceを用いずに最適化されたpio書込みシーケンスを用いるパケット送信 | |
| US7426599B2 (en) | Systems and methods for writing data with a FIFO interface | |
| US8630358B2 (en) | Data packet flow control across an asynchronous clock domain boundary | |
| CN101833502A (zh) | Asic芯片验证方法和可编程门阵列 | |
| CN118295956B (zh) | 一种裸片对裸片传输中的控制方法、裸片及系统 | |
| CN118069578B (zh) | 数据处理方法、数据传输系统、电子设备和存储介质 | |
| CN116719755B (zh) | 一种多应用内存访问的方法、装置、设备 | |
| JP5028316B2 (ja) | セル分散型スイッチファブリック | |
| CN112511537B (zh) | 一种sce-mi协议桥及仿真系统 | |
| CN116804977A (zh) | 片间数据传输系统及片间数据传输方法 | |
| CN113726693A (zh) | 一种fpga片间低速并行异步通信方法及通信系统 | |
| US12432156B2 (en) | Method and apparatus for efficient packing of flow control units | |
| CN103279442B (zh) | 一种高速互联总线的报文过滤系统及方法 | |
| CN118740735A (zh) | 一种流量控制方法、装置及系统 | |
| US20230035810A1 (en) | Method for data processing of frame receiving of an interconnection protocol and storage device | |
| US11169947B2 (en) | Data transmission system capable of transmitting a great amount of data | |
| US5748917A (en) | Line data architecture and bus interface circuits and methods for dual-edge clocking of data to bus-linked limited capacity devices | |
| US20250103360A1 (en) | Extending synchronous circuit designs over asynchronous communication links utilizing a transactor-based framework | |
| US7610415B2 (en) | System and method for processing data streams | |
| KR100236941B1 (ko) | 비동기 전달 모드 셀 세그멘테이션 시스템의 직접 메모리 읽기및 셀 송출 장치 | |
| CN111679998A (zh) | 多芯片系统及其数据传输方法 | |
| US20250310305A1 (en) | Method and Apparatus for Flit Format Conversion | |
| CN119415460A (zh) | 一种数据处理系统、数据处理方法及芯粒 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |