CN114691571B - 数据处理方法、重排序缓存器及互联设备 - Google Patents

数据处理方法、重排序缓存器及互联设备 Download PDF

Info

Publication number
CN114691571B
CN114691571B CN202011590024.9A CN202011590024A CN114691571B CN 114691571 B CN114691571 B CN 114691571B CN 202011590024 A CN202011590024 A CN 202011590024A CN 114691571 B CN114691571 B CN 114691571B
Authority
CN
China
Prior art keywords
transmission
read
transmission request
response
port
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
Application number
CN202011590024.9A
Other languages
English (en)
Other versions
CN114691571A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN202011590024.9A priority Critical patent/CN114691571B/zh
Publication of CN114691571A publication Critical patent/CN114691571A/zh
Application granted granted Critical
Publication of CN114691571B publication Critical patent/CN114691571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种数据处理方法,其特征在于,所述方法包括:接收上游设备的传输请求,记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备,在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址,根据所述存储器地址,将所述传输响应存储至存储器,按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。本发明的数据处理方法更加灵活,可以实现高速率、高带宽、低功耗的重排序缓冲器。

Description

数据处理方法、重排序缓存器及互联设备
技术领域
本发明涉及芯片领域,特别涉及一种数据处理方法、重排序缓冲器以及一种互联设备。
背景技术
数据传输协议可以用于实现片上系统(SoC)或片上网络(NoC)上不同装置或节点之间的数据传输的控制。数据传输协议的示例是AXI(Advancede Xtensible Interface)协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发(burst)传输中,只需要首地址,同时分离的读写数据通道,并支持Outstanding传输访问和乱序(out-of-order)访问,并更加容易进行时序收敛。AXI是AMBA中一个新的高性能协议。AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
重排序缓冲器(re-order buffer,ROB)可以使指令在乱序执行之后按照原有顺序提交。采用AXI协议实现重排序缓冲器时,通常采用双口SRAM或缓冲器实现。以读操作为例,重排序缓冲器在收到AXI协议上游设备的请求(Request)后,预先分配SRAM的地址空间,并将该地址作为标签(Tag)或ID发送给下游设备,下游设备将所述标签或ID返回,当重排序缓冲器收到下游设备的响应(Response)时,直接将响应写入SRAM的所述标签地址中。
当使用的AXI协议数据宽度较大,Outstanding较高时,需要存储的数据容量大,采用上述常规方式实现重排序缓冲器,其资源消耗、功耗和芯片后端实现时绕线难度都较大,难以用于高带宽、低功耗的片上系统(SoC)中。因此,需要一种高速率、高带宽、低功耗的方法实现重排序缓冲器。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理方法、重排序缓冲器和互连设备。
根据本公开的一方面,提供一种数据处理方法,其特征在于,所述方法包括:
接收上游设备的传输请求;
记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
根据所述存储器地址,将所述传输响应存储至存储器;
按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
根据本公开的另一方面,提供一种重排序缓存器,其特征在于,所述装置包括:
请求接收模块,用于接收上游设备的传输请求;
排序模块,用于记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
地址分配模块,用于在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
存储器,用于根据所述存储器地址,将所述传输响应存储至存储器;
读取模块,用于按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
根据本公开的另一方面,提供一种互联设备,其特征在于,所述互联设备包含本公开上述任一项所述的重排序缓存器。
不同于常规的重排序缓冲器需要为传输请求预先分配存储器的地址空间,本公开的数据处理方法、装置和系统在接收到传输响应时才为其分配存储器的地址空间,更加灵活,可以实现高速率、高带宽、低功耗的重排序缓冲器。
附图说明
图1为一实施例的应用场景的示意图;
图2为一实施例的数据处理方法流程图;
图3为一实施例的数据处理方法中步骤S13的方法流程图;
图4为一实施例的重排序缓冲器的框图;
图5为一实施例的重排序缓冲器中地址分配模块43的框图。
图6为一实施例的互联设备的框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
图1示出根据本公开一实施例的应用场景的示意图,如图1所示,包括多个AXI协议的主设备1(Master Component)、从设备2(Slave Component)和互连设备3(InterconnectComponent)。根据AXI协议的规定,主设备1为发起传输(transaction)的设备。一个设备有可能既可以充当主设备又可以充当从设备。例如,直接内存访问(DMA)组件在发起移动数据的传输时可以是主设备,而当它被编程时则为从设备。从设备2是接收传输并响应传输的设备。同理,一个设备有可能同时充当从设备和主设备。例如,直接内存访问(DMA)组件在被编程时可以是从组件,而在发起移动数据的传输时可以是主设备。互连设备3是可将一个或多个主设备连接到一个或多个从设备的具有多个AMBA接口的组件。互连设备3可用于将以下各项组合在一起:一组主设备,以便它们显示为单个主设备的接口;一组从设备,以便它们显示为单个从设备接口。一个AXI传输在一个主设备和一个或多个从设备之间运行,并且可以通过一个或多个中间设备。对于特定的AXI传输,上游和下游指的是AXI设备在AXI拓扑中的相对位置。对于特定的传输,在任何一个中间设备中,上游设备是指该设备与发起主设备之间的设备,并且包括发起主设备,下游设备是指该设备与目标从设备之间的设备,并且包括目标从设备。下游设备和上游设备是相对于整个传输定义的,而不是相对于传输中的单个数据流定义的。
图2示出根据本公开一实施例的数据处理方法流程图,如图2所示,本公开提供的数据处理方法可以包括以下步骤:
步骤S11,接收上游设备的传输请求;
步骤S12,记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
具体的,所述传输请求的标识可以是AXI协议为各个传输分配的ID值。
步骤S13,在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
不同于常规的重排序缓冲器需要为传输请求预先分配固定的存储器的地址空间,本实施例的数据处理方法在接收到传输响应之后才为其分配存储器地址空间,因而可以根据存储器的情况进行灵活分配,从而实现高速率、高带宽、低功耗的重排序缓冲器。示例性的,可以将所述传输响应的存储器地址与其对应的传输请求的标识相关联,使得传输响应的存储器地址与其对应的传输请求具有绑定关系。如果数据传输协议为传输请求指定的标识不唯一的话,可以基于指定的标识,重新为传输请求生成唯一的标识,从而确保传输响应的存储器地址与其对应的传输请求具有唯一的绑定关系。
在一种可选地的实施方式中,所述传输请求对应至少一个传输响应。所述的在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址,包括:在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输请求对应的至少一个传输响应分配存储器地址;其中,所述存储器地址指向的存储空间用于存储所述至少一个传输响应。
示例性的,当一个传输请求对应多个传输响应时,则为所述多个传输响应分配地址。本公开的实施例中,在接收到下游设备对传输请求的第一个传输响应后,为所述传输请求的多个传输响应分配存储器地址。其中,该存储器地址可以是存储器中一段存储空间的起始地址,该新分配的存储空间可以用于存储传输请求的多个响应。例如,一个传输请求对应4个传输响应,那么在接收到传输请求的第一个传输响应时,可以为该传输响应分配存储器地址为0,该存储器地址为存储空间的起始地址,该传输请求的传输响应所需的存储空间大小为4,因此可以将存储器地址0-3分别分配给4个传输响应。
步骤S14,根据所述存储器地址,将所述传输响应存储至存储器;
步骤S15,按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
具体的,所述传输响应可以为AXI协议下乱序(Out-of-Order)或交错(Interleaving)返回的响应。采用本实施例的数据处理方法,可以按照传输的ID或标签的顺序返回响应,因此可以实现重排序缓冲器(Re-Order Buffer,ROB)的功能。
在其他可选的实施例中,所述存储器可以为单口SRAM,并支持ECC校验。单口SRAM相较于同规模(深度x宽度)的双口SRAM或缓冲器面积更小,比双口SRAM的最大运行频率高,比缓冲器更易布线,因此使用单口SRAM的方式几乎不会造成性能损失。本公开的实施例中,所述存储器可以包括一个单口SRAM,该单口SRAM可以包括多个bank,本公开可以对该单口SRAM的多个bank进行交替读写。或者,所述存储器可以包括多块单口SRAM,本公开可以对多块单口SRAM进行交替读写。
本公开实施例中,存储器包含的多块单口SRAM可以分为多组,其中,每组单口SRAM包括至少一个单口SRAM。
图3示出根据本公开一实施例的实现步骤S13的方法流程图,如图3所示,对于步骤S13,当所述存储器为多块单口SRAM时,将所述多块单口SRAM分为多组。由于单口SRAM不能同时进行读写操作,所以在收到下游设备的响应时,根据所述多块单口SRAM的空/满状态、SRAM读写使能和读写地址来重新分配地址。上述的存储器地址分配过程可以包括:
本公开的实施例中,将传输响应存储至存储器的指定地址的过程可以为单口SRAM的数据写入过程,将传输请求对应传输响应从存储器地址读出的过程可以为上述的读取单口SRAM的过程。
步骤S131,当读取其中一组单口SRAM时,分配将数据写入其他组未满的单口SRAM中;
本公开中,在多块单口SRAM均未满,当读取其中一组单口SRAM时,则可以将该传输响应的存储器地址确定为其他组未满的单口SRAM,以将所述传输响应存储至存储器中。本公开通过对多块SRAM的交替读写,能够提交重排序缓存器的读写效率。
当其中一组或多组单口SRAM满时,此时,可能会需要同时读取或写入一组单口SRAM,该单口SRAM可以是未满的状态。此时根据该组单口SRAM的读写优先级确定所需执行的操作。本公开实施例中,所述各组单口SRAM具有读优先级和写优先级,所述方法还可以包括:
步骤S132,如果分配同时读取和写入一组单口SRAM时,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是先执行读取操作还是写入操作;
可选地,单口SRAM的写优先级可以高于读优先级,即当同时读写一单口SRAM时,撤销优先级较低的读取操作,先执行对该单口SRAM的写入操作。可选地,单口SRAM的读优先级可以高于写优先级,即当同时读写一单口SRAM时,撤销优先级较低的写入操作,先执行对该单口SRAM的读取操作。本公开不对读写优先级进行限定,SRAM的读写优先级可以根据实际需求进行确定。
步骤S133,在写入其中一组单口SRAM时,如果又分配读取相同的一组单口SRAM,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是执行读取操作还是写入操作。
可选地,单口SRAM的读优先级可以高于写优先级,即当同时读写一单口SRAM时,撤销优先级较低的写操作,先执行对该单口SRAM的读取操作。可选地,单口SRAM的写优先级可以高于读优先级,即当同时读写一单口SRAM时,撤销优先级较低的读操作,先执行对该单口SRAM的写操作。本公开不对读写优先级进行限定,SRAM的读写优先级可以根据实际需求进行确定。
由于单口SRAM比同规模的双口SRAM的面积更小,最大运行频率更高,采用本公开实施例中的数据处理方法可以实现高速率、高带宽的重排序缓冲器。本公开的实施例并不限定单口SRAM的数量,优选的实施例中可以为2块单口SRAM。
需要说明的是,本公开的实施例采用AXI协议作为示例,本公开的数据处理方法和装置也可以用于其他高带宽、低延迟的数据传输协议。
本公开还提供了一种重排序缓存器,图4示出根据本公开一实施例的重排序缓存器4的框图,如图4所示,所述装置4可以包括:
请求接收模块41,用于接收上游设备的传输请求;
排序模块42,用于记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
具体的,所述传输请求的标识可以是AXI协议为各个传输分配的ID值。
地址分配模块43,在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
不同于常规的重排序缓冲器需要为传输请求预先分配固定的存储器的地址空间,本实施例的数据处理装置在接收到传输响应之后才为其分配存储器地址空间,因而可以根据存储器的情况进行灵活分配,从而实现高速率、高带宽、低功耗的重排序缓冲器。示例性的,可以将所述传输响应的存储器地址与其对应的传输请求的标识相关联,使得传输响应的存储器地址与其对应的传输请求具有绑定关系。如果数据传输协议为传输请求指定的标识不唯一的话,可以基于指定的标识,重新为传输请求生成唯一的标识,从而确保传输响应的存储器地址与其对应的传输请求具有唯一的绑定关系。
在一种可选地的实施方式中,当一个传输请求对应多个传输响应时,则为所述多个传输响应分配地址。本公开的实施例中,在接收到下游设备对传输请求的第一个传输响应后,为所述传输请求的多个传输响应分配存储器地址。其中,该存储器地址可以是存储器中一段存储空间的起始地址,该新分配的存储空间可以用于存储传输请求的多个响应。例如,一个传输请求对应4个传输响应,那么在接收到传输请求的第一个传输响应时,可以为该传输响应分配存储器地址为0,该存储器地址为存储空间的起始地址,该传输请求的传输响应所需的存储空间大小为4,因此可以将存储器地址0-3分别分配给4个传输响应。
存储器44,用于根据所述存储器地址,将所述传输响应存储至存储器;
读取模块45,用于按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
具体的,所述传输响应可以为AXI协议下乱序(Out-of-Order)或交错(Interleaving)返回的响应。采用本实施例的数据处理方法,可以按照传输的ID或标签的顺序返回响应,因此可以实现重排序缓冲器(Re-Order Buffer,ROB)的功能。
在其他可选的实施例中,所述存储器可以为单口SRAM,并支持ECC校验。单口SRAM相较于同规模(深度x宽度)的双口SRAM或缓冲器面积更小,比双口SRAM的最大运行频率高,比缓冲器更易布线,因此使用单口SRAM的方式几乎不会造成性能损失。
本公开的实施例中,所述存储器可以包括一个单口SRAM,该单口SRAM可以包括多个bank,本公开可以对该单口SRAM的多个bank进行交替读写。或者,所述存储器可以包括多块单口SRAM,本公开可以对多块单口SRAM进行交替读写。
本公开的实施例中,存储器包含的多块单口SRAM可以分为多组,其中,每组单口SRAM包括至少一个单口SRAM。图5示出根据本公开一实施例的重排序缓存器中地址分配模块43的框图,如图5所示,当所述存储器为多块单口SRAM时,由于单口SRAM不能同时进行读写操作,所以在收到下游设备的响应时,所述地址分配模块43根据所述多块单口SRAM的空/满状态、SRAM读写使能和读写地址来重新分配地址,在一种可能的实现方式中,所述地址分配模块43还用于当读取其中一组单口SRAM时,分配将数据写入其他组未满的单口SRAM中。
本公开的实施例中,在多块单口SRAM均未满,当读取其中一组单口SRAM时,则可以将该传输响应的存储器地址确定为其他组未满的单口SRAM,以将所述传输响应存储至存储器中。本公开通过对多块SRAM的交替读写,能够提交重排序缓存器的读写效率。
当其中一组或多组单口SRAM满时,此时,可能会需要同时读取或写入一组单口SRAM,该单口SRAM可以是未满的状态。此时根据该组单口SRAM的读写优先级确定所需执行的操作。本公开实施例中,所述各组单口SRAM具有读优先级和写优先级,本公开的实施例中,所述重排序缓存器还包括读写控制模块431,用于如果分配同时读取和写入一组单口SRAM时,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是先执行读取操作还是写入操作。
可选地,单口SRAM的写优先级可以高于读优先级,即当同时读写一单口SRAM时,撤销优先级较低的读取操作,先执行对该单口SRAM的写入操作。可选地,单口SRAM的读优先级可以高于写优先级,即当同时读写一单口SRAM时,撤销优先级较低的写入操作,先执行对该单口SRAM的读取操作。本公开不对读写优先级进行限定,SRAM的读写优先级可以根据实际需求进行确定。
本公开的实施例中,所述读写控制模块431还用于,在写入其中一组单口SRAM时,如果又分配读取相同的一组单口SRAM,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是执行读取操作还是写入操作。
可选地,单口SRAM的读优先级可以高于写优先级,即当同时读写一单口SRAM时,撤销优先级较低的写操作,先执行对该单口SRAM的读取操作。可选地,单口SRAM的写优先级可以高于读优先级,即当同时读写一单口SRAM时,撤销优先级较低的读操作,先执行对该单口SRAM的写操作。本公开不对读写优先级进行限定,SRAM的读写优先级可以根据实际需求进行确定。
由于单口SRAM比同规模的双口SRAM的面积更小,最大运行频率更高,采用本公开实施例中的数据处理装置可以实现高速率、高带宽的重排序缓冲器。本公开的实施例并不限定单口SRAM的数量,优选的实施例中可以为2块单口SRAM。
本公开还提供了一种互联设备,图6示出根据本公开一实施例的一种互联设备6的框图,如图6所示,所述互联设备6可以包括:
重排序缓存器4,其中,所述数据处理装置用于执行本公开各实施例中所述数据处理方法;
处理器5,用于与重排序缓存器4进行通信。
在其他实施例中,所述重排序缓存器4内的存储器为多块单口SRAM。本公开的实施例并不限定单口SRAM的数量,优选的实施例中可以为2块单口SRAM。
需要说明的是,本公开的实施例采用AXI协议作为示例,本公开的数据处理方法和装置也可以用于其他高带宽、低延迟的数据传输协议。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1、一种数据处理方法,其特征在于,所述方法包括:
接收上游设备的传输请求;
记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
根据所述存储器地址,将所述传输响应存储至存储器;
按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
条款A2、根据条款A 1所述的方法,其特征在于:
所述传输响应可以为AXI协议下乱序或交错返回的响应,所述传输请求对应至少一个传输响应;
所述的在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址,包括:
在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输请求对应的至少一个传输响应分配存储器地址;其中,所述存储器地址指向的存储空间用于存储所述至少一个传输响应。
条款A3、根据条款A 1所述的方法,其特征在于,所述存储器为多块单口SRAM,将所述多块单口SRAM分为多组;所述为所述传输响应分配存储器地址,还包括:
当读取其中一组单口SRAM时,分配将数据写入其他组未满的单口SRAM中。
条款A4、根据条款A 3所述的方法,其特征在于,所述各组单口SRAM具有读优先级和写优先级,所述方法还包括:
如果分配同时读取和写入一组单口SRAM时,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是先执行读取操作还是写入操作。
条款A5、根据条款A 3所述的方法,其特征在于,所述各组单口SRAM具有读优先级和写优先级,所述方法还包括:
在写入其中一组单口SRAM时,如果又分配读取相同的一组单口SRAM,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是执行读取操作还是写入操作。
条款A 6、一种重排序缓存器,其特征在于,所述装置包括:
请求接收模块,用于接收上游设备的传输请求;
排序模块,用于记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
地址分配模块,用于在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
存储器,用于根据所述存储器地址,将所述传输响应存储至存储器;
读取模块,用于按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
条款A 7、根据条款A 6所述的重排序缓存器,其特征在于:
所述传输响应可以为AXI协议下乱序或交错返回的响应,所述传输请求对应至少一个传输响应;
所述地址分配模块用于在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输请求对应的至少一个传输响应分配存储器地址;其中,所述存储器地址指向的存储空间用于存储所述至少一个传输响应。
条款A8、根据条款A 7所述的重排序缓存器,其特征在于,所述存储器为多块单口SRAM时,所述多块单口SRAM分为多组,所述地址分配模块还用于:
当读取其中一组单口SRAM时,分配将数据写入其他组未满的单口SRAM中。
条款A9、根据条款A 8所述的重排序缓存器,其特征在于,所述重排序缓存器还包括:
读写控制模块,用于如果分配同时读取和写入一组单口SRAM时,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是先执行读取操作还是写入操作。
条款A10、根据条款A 8所述的重排序缓存器,其特征在于,所述读写控制模块还用于,在写入其中一组单口SRAM时,如果又分配读取相同的一组单口SRAM,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是执行读取操作还是写入操作。
条款A11、一种互联设备,其特征在于,所述互联设备包含权利要求6-10任一项所述的重排序缓存器。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

Claims (9)

1.一种数据处理方法,其特征在于,
所述方法包括:
接收上游设备的传输请求;
记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
根据所述存储器地址,将所述传输响应存储至存储器,其中,所述存储器为多块单口SRAM,将所述多块单口SRAM分为多组;所述为所述传输响应分配存储器地址,还包括:当读取其中一组单口SRAM时,分配将数据写入其他组未满的单口SRAM中;
按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
2.根据权利要求1所述的方法,其特征在于:
所述传输响应为AXI协议下乱序或交错返回的响应,所述传输请求对应至少一个传输响应;
所述的在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址,包括:
在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输请求对应的至少一个传输响应分配存储器地址;其中,所述存储器地址指向的存储空间用于存储所述至少一个传输响应。
3.根据权利要求1所述的方法,其特征在于,
所述各组单口SRAM具有读优先级和写优先级,所述方法还包括:
如果分配同时读取和写入一组单口SRAM时,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是先执行读取操作还是写入操作。
4.根据权利要求1所述的方法,其特征在于,
所述各组单口SRAM具有读优先级和写优先级,所述方法还包括:
在写入其中一组单口SRAM时,如果又分配读取相同的一组单口SRAM,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是执行读取操作还是写入操作。
5.一种重排序缓存器,其特征在于,
所述重排序缓存器包括:
请求接收模块,用于接收上游设备的传输请求;
排序模块,用于记录所述传输请求的标识和接收顺序,将所述传输请求发送给下游设备;
地址分配模块,用于在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输响应分配存储器地址;
存储器,用于根据所述存储器地址,将所述传输响应存储至存储器,其中,所述存储器为多块单口SRAM时,所述多块单口SRAM分为多组,所述地址分配模块还用于:当读取其中一组单口SRAM时,分配将数据写入其他组未满的单口SRAM中;
读取模块,用于按照所述传输请求的接收顺序,将所述传输请求对应的传输响应从所述存储器地址读出并发送给所述上游设备。
6.根据权利要求5所述的重排序缓存器,其特征在于:
所述传输响应为AXI协议下乱序或交错返回的响应,所述传输请求对应至少一个传输响应;
所述地址分配模块用于在接收到所述下游设备对所述传输请求的传输响应之后,为所述传输请求对应的至少一个传输响应分配存储器地址;其中,所述存储器地址指向的存储空间用于存储所述至少一个传输响应。
7.根据权利要求6所述的重排序缓存器,其特征在于,
所述重排序缓存器还包括:
读写控制模块,用于如果分配同时读取和写入一组单口SRAM时,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是先执行读取操作还是写入操作。
8.根据权利要求7所述的重排序缓存器,其特征在于,
所述读写控制模块还用于,在写入其中一组单口SRAM时,如果又分配读取相同的一组单口SRAM,基于该组单口SRAM的读优先级还是写优先级的优先级更高,确定是执行读取操作还是写入操作。
9.一种互联设备,其特征在于,
所述互联设备包含权利要求5-8任一项所述的重排序缓存器。
CN202011590024.9A 2020-12-28 2020-12-28 数据处理方法、重排序缓存器及互联设备 Active CN114691571B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011590024.9A CN114691571B (zh) 2020-12-28 2020-12-28 数据处理方法、重排序缓存器及互联设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011590024.9A CN114691571B (zh) 2020-12-28 2020-12-28 数据处理方法、重排序缓存器及互联设备

Publications (2)

Publication Number Publication Date
CN114691571A CN114691571A (zh) 2022-07-01
CN114691571B true CN114691571B (zh) 2024-05-28

Family

ID=82132204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011590024.9A Active CN114691571B (zh) 2020-12-28 2020-12-28 数据处理方法、重排序缓存器及互联设备

Country Status (1)

Country Link
CN (1) CN114691571B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116414767B (zh) * 2023-06-09 2023-09-29 太初(无锡)电子科技有限公司 一种对基于axi协议乱序响应的重排序方法及系统
CN116521095B (zh) * 2023-07-03 2023-09-08 摩尔线程智能科技(北京)有限责任公司 响应输出系统、方法、电子设备、存储介质及程序产品

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124231B1 (en) * 2002-06-14 2006-10-17 Cisco Technology, Inc. Split transaction reordering circuit
CN101146029A (zh) * 2006-09-13 2008-03-19 华为技术有限公司 一种分组重排序方法和系统
CN101236741A (zh) * 2008-01-24 2008-08-06 华为技术有限公司 一种数据读写方法和装置
CN101739366A (zh) * 2008-11-25 2010-06-16 联发科技股份有限公司 缓冲区管理装置及存储器的缓冲区管理方法
CN102521155A (zh) * 2011-12-12 2012-06-27 盛科网络(苏州)有限公司 实现表项在物理存储器上动态分配的方法和装置
CN102929562A (zh) * 2012-10-09 2013-02-13 无锡江南计算技术研究所 基于识别标识的可扩展重排序方法
CN103049240A (zh) * 2011-10-13 2013-04-17 北京同步科技有限公司 Pci-e设备及其接收数据重排序方法
CN104536921A (zh) * 2015-01-19 2015-04-22 浪潮电子信息产业股份有限公司 一种edma控制器分离式并行数据通道的设计方法
CN110928811A (zh) * 2018-09-19 2020-03-27 Arm有限公司 用于处理突发读取事务的装置和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10234934A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Antwortreihenwiederherstellungsmechanismus
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
JP2010212987A (ja) * 2009-03-10 2010-09-24 Kyocera Corp データ伝送システムおよびそのデータ読出し方法
US20110213949A1 (en) * 2010-03-01 2011-09-01 Sonics, Inc. Methods and apparatus for optimizing concurrency in multiple core systems
US8656078B2 (en) * 2011-05-09 2014-02-18 Arm Limited Transaction identifier expansion circuitry and method of operation of such circuitry
US9542323B2 (en) * 2014-03-28 2017-01-10 Samsung Electronics Co., Ltd. Address re-ordering mechanism for efficient pre-fetch training in an out-of-order processor
US10616333B2 (en) * 2014-04-09 2020-04-07 Stmicroelectronics S.R.L. System for the management of out-of-order traffic in an interconnect network and corresponding method and integrated circuit
GB2526849B (en) * 2014-06-05 2021-04-14 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
US9836397B2 (en) * 2015-11-20 2017-12-05 International Business Machines Corporation Direct memory access of dynamically allocated memory

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124231B1 (en) * 2002-06-14 2006-10-17 Cisco Technology, Inc. Split transaction reordering circuit
CN101146029A (zh) * 2006-09-13 2008-03-19 华为技术有限公司 一种分组重排序方法和系统
CN101236741A (zh) * 2008-01-24 2008-08-06 华为技术有限公司 一种数据读写方法和装置
CN101739366A (zh) * 2008-11-25 2010-06-16 联发科技股份有限公司 缓冲区管理装置及存储器的缓冲区管理方法
CN103049240A (zh) * 2011-10-13 2013-04-17 北京同步科技有限公司 Pci-e设备及其接收数据重排序方法
CN102521155A (zh) * 2011-12-12 2012-06-27 盛科网络(苏州)有限公司 实现表项在物理存储器上动态分配的方法和装置
CN102929562A (zh) * 2012-10-09 2013-02-13 无锡江南计算技术研究所 基于识别标识的可扩展重排序方法
CN104536921A (zh) * 2015-01-19 2015-04-22 浪潮电子信息产业股份有限公司 一种edma控制器分离式并行数据通道的设计方法
CN110928811A (zh) * 2018-09-19 2020-03-27 Arm有限公司 用于处理突发读取事务的装置和方法

Also Published As

Publication number Publication date
CN114691571A (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
CN100527107C (zh) 无序的动态随机存取存储器序列器
JP4212167B2 (ja) ランダムアクセスメモリに使用するメモリアクセス方法およびメモリアクセス回路、並びに、シンクロナス・ダイナミックランダムアクセスメモリ装置および半導体記憶装置
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
EP1032882B1 (en) Buffering data that flows between buses operating at different frequencies
US7454555B2 (en) Apparatus and method including a memory device having multiple sets of memory banks with duplicated data emulating a fast access time, fixed latency memory device
EP1738267B1 (en) System and method for organizing data transfers with memory hub memory modules
CN114691571B (zh) 数据处理方法、重排序缓存器及互联设备
CN111742305A (zh) 调度具有不统一等待时间的存储器请求
TW200304066A (en) Dynamic random access memory system with bank conflict avoidance feature
US20020184453A1 (en) Data bus system including posted reads and writes
CN117501230A (zh) 多存储列存储器控制器中的高效存储列切换
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
CN108139993B (zh) 内存装置、内存控制器、数据缓存装置及计算机系统
US7904624B2 (en) High bandwidth split bus
US8819325B2 (en) Interface device and system including the same
CN116010309B (zh) 存储器控制器、系统及片上系统、时序参数控制方法
JP4514411B2 (ja) バス間通信インタフェース装置
CN118152310A (zh) 一种基于PCIe AXI bridge写数据存储、搜索及传输处理方法及系统
CN115762596A (zh) 一种mcu的存取记忆体数字电路架构
CN117389767A (zh) 基于soc芯片的共享存储池的数据交换方法及装置
CN118069037A (zh) 存储器控制器、电子系统和控制存储器访问的方法
CN109634880A (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