CN116414767A - 一种对基于axi协议乱序响应的重排序方法及系统 - Google Patents
一种对基于axi协议乱序响应的重排序方法及系统 Download PDFInfo
- Publication number
- CN116414767A CN116414767A CN202310679591.9A CN202310679591A CN116414767A CN 116414767 A CN116414767 A CN 116414767A CN 202310679591 A CN202310679591 A CN 202310679591A CN 116414767 A CN116414767 A CN 116414767A
- Authority
- CN
- China
- Prior art keywords
- reordering
- data
- response
- read
- buffer
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种对基于AXI协议乱序响应的重排序方法及系统,应用于AXI协议的主设备,方法包括:向目标从设备发起多个读请求,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;接收目标从设备返回的读响应数据;当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据。通过本发明提供的方法及系统,能够使得主设备具备对乱序响应进行重排序的能力,最大限度保证了传输的效率和并行性,在保证主设备接收数据正确性的同时节省了整个系统的资源消耗,提高了系统的运行带宽。
Description
技术领域
本发明涉及AXI传输技术领域,具体涉及一种对基于AXI协议乱序响应的重排序方法及系统。
背景技术
AXI(Advanced eXtensible Interface)协议是一种总线协议,能够连接多个主设备(Master)和从设备(Slave),实现多个内存映射的设备之间的地址和数据传输。它的地址/控制和数据相位是分离的,共有五个通道,包括:读地址通道(read address channel,AR通道)、读数据通道(read data address channel, R通道)、写地址通道(write addresschannel, AW通道)、写数据通道(write data channel, W通道)和写响应通道(writeresponse channel, B通道)。
AXI 4.0协议是ARM公司提出的AMBA(Advanced Microcontroller BusArchitecture)协议的一种,该总线是基于ID标号进行读写数据传输的顺序控制的。对于写传输来说,AW通道会携带AWID标号,而对于读传输来说,AR通道会携带ARID标号。Slave返回的写响应只有一拍,携带BID标号,而对于读响应来说,由于携带了Slave返回给Master的读响应数据,可以是一拍到十六拍的响应包。这些包会携带RID作为标号。当Slave同时响应Master下发的多个请求时,Slave往往不能一次性把某个请求的所有数据都准备好,因此Slave可能会乱序返回响应数据。例如Master向Slave下发了连续的两个请求,其ARID分别为m和n,m请求的数据长度为7,n请求的数据长度为4。此时,Slave先准备好了m请求的前4笔数据,返回给Master。接下来,slave准备好了n请求的前2笔数据,返回给Master。后续,Slave又分别准备好了n请求的最后2笔数据和m请求的最后3笔数据,并分别发给Master。然而Master接收到这样的乱序响应时,必须要对乱序的响应进行重排序后才可以使用这些读数据。
针对前述问题,由于Master不具备重排序的能力,当前技术解决办法是使Slave按照顺序返回这些响应,然而该类解决方法存在以下问题:
1、由于目前芯片的规模越来越大,对片上网络或总线互联的要求越来越高,即有越来越多的Master和Slave需要被连接成一个复杂的网络进行数据传输。而这些Master和Slave的连接像一张复杂的网络,中间有很多条通路可以进行数据的传输。因此,Master和Slave之间的数据包依赖于不同的ID选择不同的传输路径进行传输。值得注意的是,根据AXI4.0协议的规定,相同的ID必须是保证顺序的,则相同ID必须选择相同的传输路径以保证传输的顺序。基于此,即使Slave是按照顺序返回响应,不同ID的响应到达Master的时候,可能顺序已经乱了,而这种乱序响应包含了多种可能,难以预测。因此,要求Slave返回给Master的数据通路必须是保序的,这在很大程度降低了片上网络进行数据传输的并行性,损失了读响应数据返回的带宽。
2、即使Slave发出的响应是按照顺序的,但如果线路上有一定并行性,会让不同ID的响应走不同的路径进行返回,则Slave不同路径的延迟也是难以预测的,会造成返回响应的乱序,因此要求Slave到达Master的路径必须是有保序能力的,同时Slave必须按照顺序发出不同ID的读响应。对于Master来说,不同ID代表不同的业务请求,比如ID1的响应中的部分数据是要求读取Slave控制的外设中的数据,如外挂的Flash存储器中的数据,通常Flash的工作频率为100MHz,总线位宽4bit或8bit,故ID1部分数据响应会非常慢;ID2是读取Slave本地的数据,由于数据在本地,ID2可以很快返回响应。如果ID1的请求先到,ID1把部分先准备好的数据已经发送给了Master,那么这时,即使ID2的数据早已准备好,但是必须等到ID1很慢的一部分数据发送给Master后,才会把ID2数据发给Master,这样会造成系统极大的性能损失。
发明内容
因此,本发明提供了一种对基于AXI协议乱序响应的重排序方法及系统,使得主设备具有对乱序响应重排序的能力,能够最大限度的保证传输的效率和并行性,提高整个系统的运行带宽,以解决上述背景中提出的技术问题。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供对基于AXI协议乱序响应的重排序方法,应用于AXI协议的主设备,包括:
向目标从设备发起多个读请求,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;
接收目标从设备返回的读响应数据;
当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据。
优选地,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号。
优选地,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据。
优选地,重排序电路支持参数的动态配置,参数包括重排序缓存深度参数和数据缓存深度参数,其中重排序缓存深度参数用于配置编号缓存容纳的ID个数,数据缓存深度参数用于配置重排序数据缓存中每个ID能够被正确接收最长响应的数据长度。
优选地,重排序缓存深度参数和数据缓存深度参数的动态配置依据目标从设备的类型以及实际业务的应用需求和资源确定。
优选地,利用重排序电路对乱序响应进行重排序处理的过程,包括:
根据发起的读请求的地址确定目标从设备;
对重排序电路的重排序缓存深度参数和数据缓存深度参数进行配置,确定编号缓存容纳的ID个数和重排序数据缓存对应同一个ID请求的读响应的数据长度;
将所有编号缓存的标记位设为无效,根据所有读请求的ID编号,将其按顺序存入编号缓存中并将对应的编号缓存标记位设为有效,同时将ID编号对应的读响应数据存入重排序数据缓存中;
当某一ID编号对应存入重排序数据缓存中读响应数据接收完整之后,将对应的编号缓存标记位设为无效。
优选地,通过目标从设备返回的读响应数据最后一笔携带的Last标记来识别存入重排序数据缓存中读响应数据是否接收完整。
第二方面,本发明实施例提供一种对基于AXI协议乱序响应的重排序系统,应用于AXI协议的主设备,包括:
请求发起模块,用于向目标从设备发起多个读请求,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;
响应接收模块,用于接收目标从设备返回的读响应数据;
重排序处理模块,用于当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据。
第三方面,本发明实施例提供一种计算机设备,包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行本发明实施例第一方面的对基于AXI协议乱序响应的重排序方法。
第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行本发明实施例第一方面的对基于AXI协议乱序响应的重排序方法。
本发明技术方案,具有如下优点:
本发明提供的一种对基于AXI协议乱序响应的重排序方法及系统,应用于AXI协议的主设备,方法包括:向目标从设备发起多个读请求,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;接收目标从设备返回的读响应数据;当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据。本发明提供的方法及系统,能够使主设备具有对乱序响应重排序的能力,最大限度保证了传输的效率和并行性,在保证主设备接收数据正确性的同时节省了整个系统的资源消耗,提高了系统的运行带宽。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例中提供的对基于AXI协议乱序响应的重排序方法的流程示意图;
图2的(a)和(b)分别为本发明实施例中提供的基于AXI协议乱序传输机制和交织传输机制对应的读响应数据的时序示意图;
图3本发明实施例中提供的重排序电路的设计示意图;
图4本发明实施例中提供的对基于AXI协议乱序响应的重排序系统的模块组成图;
图5本发明实施例中提供的计算机设备一个具体示例的组成图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分的实施例,不是全部的实施例,而并非要限制本发明公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要的混淆本发明公开的概念。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供对基于AXI协议乱序响应的重排序方法,应用于AXI协议的主设备,如图1所示,该方法包括:
步骤S1:向目标从设备发起多个读请求,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号。
需要说明的是,主设备(Master)通过一个片上网络(network on chip, NoC)和从设备(Slave)进行互联,重排序电路安装在NoC的Master一侧。本实施例中Master和Slave的个数不做具体限制,依据实际应用需求确定。
在本实施例中,读请求的地址用于确定目标从设备。具体地,该地址是用来选择Master通过NoC将请求发往哪一个Slave的。例如,Master读请求的地址0x00~0xFF对应Slave0,地址0x100~0x1FF对应Slave1,当Master读请求的地址为0x00~0xFF时,通过NoC网络译码,就能确定该读请求是发往Slave0的,即目标从设备为Slave0,仅作为举例说明。
在本实施例中,目标从设备为一个Slave或多个Slave,发起的多个读请求包含两个及以上数目的读请求,读请求的数目不做具体限制,依据实际应用需求确实。
步骤S2:接收目标从设备返回的读响应数据。
需要说明的是,AXI协议数据的传输服务,即事务(Transaction)在地址通道上都有地址和控制信息,这些信息描述了要传输数据的性质。AXI协议使用双向VALID和READY握手机制,当VALID和READY信号都是高电平时,就会发生地址信息或数据的传输。AXI协议中包含两种传输事务,即读事务(Read Transaction)和写事务(Write Transaction)。又由于AXI协议数据传输为基于突发的(Burst-Based),因此通常将Transaction与Burst等同。在AXI协议中,Transfer是Burst的组成元素,一个Burst由一个或多个Transfer构成。
实际应用中,对于Read Transaction,如果Slave连续收到多个ARID不同的Transaction(Transaction来源为同一个Master或不同Master),而Slave返回读响应数据时其RID的顺序与Master发出的ARID顺序不同,则称为读乱序。在本实施例中,由于AXI协议存在乱序传输机制和交织传输机制,使得目标从设备会乱序返回对应读请求的读响应数据,见图2的(a)和(b)所示,时序示意图中均已略去握手信号VALID和READY。由图2的(a)可知,当Slave连续收到ARID分别为ID0和ID1的读地址信号时,由于未知原因,对ID1的响应速度比对ID0更快,Slave先返回RID为ID1的读响应数据,即读数据信号,再返回RID为ID0的读响应数据。读乱序是Transaction级的乱序。读交织作为读乱序一具体实现形式,是Transfer级的乱序。由图2的(b)可知,当Slave连续收到ARID分别为ID0、ID1和ID2的读地址信号时,ID2包含两个Transfer,由于未知原因,Slave在返回了一个RID为ID2的读响应数据后,中间间插返回了ID0与ID1的读响应数据,最后才返回ID2的另一个的读响应数据。然而,在AXI协议中同一RID的读响应数据之间需要保序,故对于读交织机制(即同一个Transaction中间插了来自其他Transaction的Transfer,)是否支持该机制只与Slave的设计有关,实际应用中若要满足Slave返给Master读响应数据的保序要求,将会极大地提高Slave设计复杂度。
步骤S3:当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据。
在本实施例中,不考虑Master与Slave交互过程对Slave的额外设计,仅通过设置重排序电路,用于对乱序返回的读响应进行重排序处理,及时把读响应数据发送至Master进行后续处理使用。本发明实施例的重排序电路,能够最大限度保证Master接收数据的正确性;使得Slave能够最大限度提高响应的速率,提高系统的带宽,同时也无需对不同ID的响应数据进行过多的暂存、控制和重排序处理,极大减轻了Slave设计复杂度,节省了资源的消耗。
在本实施例中,如图3所示,重排序电路支持参数的动态配置,参数包括重排序缓存深度参数和数据缓存深度参数,用于确定编号缓存和重排序数据缓存的深度。其中,重排序缓存深度参数用于配置编号缓存容纳的ID个数,数据缓存深度参数用于配置重排序数据缓存中每个ID能够被正确接收最长响应的数据长度。需要说明的是,重排序缓存深度参数和数据缓存深度参数的动态配置依据目标从设备的类型以及实际业务的应用需求和资源确定。
本实施例中,重排序电路会在一定程度消耗系统的资源,因此需要根据实际业务需求和应用,动态配置重排序缓存深度和数据缓存深度参数,使得在满足业务需求的前提下,最大限度的节省重排序电路造成的系统资源的消耗。
具体地,重排序缓存深度支持2-1024的范围配置,该参数用于配置含有编号缓存的个数。例如,配置成16,则编号缓存一共能容纳16个不同的ID,同时对应包含16个重排序数据缓存。数据缓存深度为每个重排序数据缓存的桶深度,该参数支持1-256的范围配置,其参考了AXI4协议支持的数据长度(1~256)。但是一般系统中还会考虑Master请求数据的长度类型以及系统内部缓存的大小,对其分配4或8或16这样的典型数值。综上,上述两个参数的具体数值仅作为举例说明,需根据Master的行为,Slave的类型及实际需求和系统资源动态调整。例如,当Slave为普通设备时,重排序缓存深度配置范围为2-32,数据缓存深度配置范围为1-16;当Slave为FLASH内存时,重排序缓存深度配置范围为2-16,数据缓存深度配置范围为1-256。
一具体实施例中,利用重排序电路对乱序响应进行重排序处理的过程,包括:
1、依据实际应用需求对重排序电路的重排序缓存深度参数和数据缓存深度参数进行配置,确定编号缓存容纳的ID个数和重排序数据缓存对应同一个ID请求的读响应的数据长度。
具体地,Master接收读响应通道的数据并将当前读响应的RID信息存储在编号缓存中。其中,编号缓存的每一个ID都带有一个标记位,包含有效(Valid)和无效(Not)两种状态,用于标记当前这个ID的空间是否是有效数据或无效数据。
2、将所有编号缓存的标记位设为无效(Not),根据所有读请求的ID编号,将其按顺序存入编号缓存中并将对应的编号缓存标记位设为有效,同时将ID编号对应的读响应数据存入重排序数据缓存中。
具体地,工作开始时将所有的编号缓存的标记位都设为无效(Not),无效(Not)表示所有的ID及其对应的重排序数据缓存都能使用。第一个ID响应进来后,会先存储在ID0的位置,同时标记该编号缓存为有效(Valid)。后续响应的数据进来后,如果是相同的ID,则继续把数据存储在这个编号缓存对应的桶中。如果是不同的ID,则按照ID0, ID1, …, ID M的顺序继续往后分配,其中M代表编号缓存容纳的ID最大个数。需要注意的是,同ID的数据将按照Transfer0, Transfer1, …, Transfer N的顺序写入该ID对应的重排序数据缓存中,N代表重排序数据缓存对应同一个ID请求的读响应的数据的最大长度。
实际应用中,由于接收到的读响应数据是不可预测的,因此当某一个编号缓存对应的数据接收满之后,这个编号缓存的标记位将设置为无效,则后续再进来的不同ID能重复使用该编号缓存中的空间。本发明实施例的编号缓存通过对有效和无效的标记位的重复使用,能够动态使用整个编号缓存的空间,在保证节省资源的前提下,快速实现了重排序的功能。
需注意的是,重排序电路的重排序缓存深度参数的数值设计需满足实际业务中Master发出不同ID请求的最大个数,若重排序缓存深度设计的数值较小,但当前业务中Master发出的请求不同ID的个数又比较大,则会造成编号缓存都被标记为有效,当又来了新的不同的ID的响应时,会导致丢包并造成系统错误。数据缓存深度的设置必须保证Master发出读请求的最长响应能够被完全接收下来,否则当前业务中重排序数据缓存已满,同时还没有接收完所有读响应数据时,返回给Master时会导致系统的挂死。
3、通过目标从设备返回的读响应数据最后一笔携带的Last标记来识别存入重排序数据缓存中读响应数据是否接收完整,即当某一ID编号对应存入重排序数据缓存中读响应数据接收完整之后,将对应的编号缓存标记位设为无效(Not),并将该ID的所有数据将从重排序电路中读出,用于Master的使用。
需要说明的是,在AXI协议的读数据通道和写数据通道都包含一个 LAST信号,即Last标记,用于指示事务内最终数据项的传输何时发生。
综上,本发明实施例提供的对基于AXI协议乱序响应的重排序方法,通过重排序电路的设计和对应参数的动态配置,使得主设备具有对乱序响应重排序的能力,提高了整个系统的运行带宽,能够最大限度的保证传输的效率和并行性。
实施例2
本发明实施例提供一种对基于AXI协议乱序响应的重排序系统,应用于AXI协议的主设备,如图4所示,包括:
请求发起模块,用于向目标从设备发起多个读请求,读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;此模块执行实施例1中的步骤S1所描述的方法,在此不再赘述。
响应接收模块,用于接收目标从设备返回的读响应数据;此模块执行实施例1中的步骤S2所描述的方法,在此不再赘述。
重排序处理模块,用于当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理,重排序电路包括:编号缓存和重排序数据缓存,编号缓存用来存储不同读请求的ID编号,重排序数据缓存用于存储对应ID编号的响应数据;此模块执行实施例1中的步骤S3所描述的方法,在此不再赘述。
本发明实施例提供的对基于AXI协议乱序响应的重排序系统,对于NoC网络传输来说,能根据不同ID设计不同的传输通路,使得主设备具有对乱序响应重排序的能力,最大限度提高了系统的并行度和运行带宽;在满足业务需求的前提下,节省了重排序电路造成的系统资源浪费,保证传输效率的同时提高了系统的整体性能。
实施例3
本发明实施例提供一种计算机设备,为用于AXI协议的主设备,如图5所示,包括:至少一个处理器501,至少一个通信接口503,存储器504和至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信,通信接口503可以包括显示屏和键盘,可选通信接口503还可以包括标准的有线接口、无线接口。存储器504可以是高速易挥发性随机存取存储器,也可以是非不稳定的存储器,还可以是至少一个位于远离前述处理器501的存储装置。其中处理器501可以执行实施例1的对基于AXI协议乱序响应的重排序方法。存储器504中存储一组程序代码,且处理器501调用存储器504中存储的程序代码,以用于执行实施例1的对基于AXI协议乱序响应的重排序方法。
其中,通信总线502可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。通信总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器504可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,简称RAM);存储器也可以包括非易失性存储器(Non-volatileMemory),例如快闪存储器(Flash Memory),硬盘(Hard Disk Drive,简称HDD)或固态硬盘(Solid-state Drive,简称SSD);存储器504还可以包括上述种类的存储器的组合。
其中,处理器501可以是中央处理器(Central Processing Unit,简称CPU),网络处理器(Network Processor,简称NP)或者CPU和NP的组合。
其中,处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,简称ASIC),可编程逻辑器件(Programmable Logic Device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,简称CPLD)、现场可编程逻辑门阵列(FieldProgrammable Gate Array,简称FPGA)、通用阵列逻辑(Generic Array Logic,简称GAL)或其任意组合。
可选地,存储器504还用于存储程序指令。处理器501可以调用程序指令,实现如本发明执行实施例1中的对基于AXI协议乱序响应的重排序方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行实施例1的对基于AXI协议乱序响应的重排序方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory,简称ROM)、随机存储记忆体(Random Access Memory,简称RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,简称HDD)或固态硬盘(Solid State Drive,简称SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (6)
1.一种对基于AXI协议乱序响应的重排序方法,应用于AXI协议的主设备,其特征在于,包括:
向目标从设备发起多个读请求,所述读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;
接收目标从设备返回的读响应数据;
当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理;所述重排序电路包括:编号缓存和重排序数据缓存,所述编号缓存用来存储不同读请求的ID编号,所述重排序数据缓存用于存储对应ID编号的响应数据;所述重排序电路支持参数的动态配置,所述参数包括重排序缓存深度参数和数据缓存深度参数,重排序缓存深度参数用于配置编号缓存容纳的ID个数,数据缓存深度参数用于配置重排序数据缓存中每个ID能够被正确接收最长响应的数据长度;
其中,基于重排序电路对乱序响应进行重排序处理的过程,包括:
根据发起的读请求的地址确定目标从设备;
对重排序电路的重排序缓存深度参数和数据缓存深度参数进行配置,确定编号缓存容纳的ID个数和重排序数据缓存对应同一个ID请求的读响应的数据长度;
将所有编号缓存的标记位设为无效,根据所有读请求的ID编号,将其按顺序存入编号缓存中并将对应的编号缓存标记位设为有效,同时将ID编号对应的读响应数据存入重排序数据缓存中;
当某一ID编号对应存入重排序数据缓存中读响应数据接收完整之后,将对应的编号缓存标记位设为无效。
2.根据权利要求1所述的对基于AXI协议乱序响应的重排序方法,其特征在于,重排序缓存深度参数和数据缓存深度参数的动态配置依据目标从设备的类型以及实际业务的应用需求和资源确定。
3.根据权利要求1所述的对基于AXI协议乱序响应的重排序方法,其特征在于,通过目标从设备返回的读响应数据最后一笔携带的Last标记来识别存入重排序数据缓存中读响应数据是否接收完整。
4.一种对基于AXI协议乱序响应的重排序系统,应用于AXI协议的主设备,其特征在于,包括:
请求发起模块,用于向目标从设备发起多个读请求,所述读请求包括:读请求的地址、读请求的数据长度以及读请求的ID编号;
响应接收模块,用于接收目标从设备返回的读响应数据;
重排序处理模块,用于当读响应为乱序响应时,利用重排序电路对乱序响应进行重排序处理;所述重排序电路包括:编号缓存和重排序数据缓存,所述编号缓存用来存储不同读请求的ID编号,所述重排序数据缓存用于存储对应ID编号的响应数据;所述重排序电路支持参数的动态配置,所述参数包括重排序缓存深度参数和数据缓存深度参数,重排序缓存深度参数用于配置编号缓存容纳的ID个数,数据缓存深度参数用于配置重排序数据缓存中每个ID能够被正确接收最长响应的数据长度;
其中,基于重排序电路对乱序响应进行重排序处理的过程,包括:
根据发起的读请求的地址确定目标从设备;
对重排序电路的重排序缓存深度参数和数据缓存深度参数进行配置,确定编号缓存容纳的ID个数和重排序数据缓存对应同一个ID请求的读响应的数据长度;
将所有编号缓存的标记位设为无效,根据所有读请求的ID编号,将其按顺序存入编号缓存中并将对应的编号缓存标记位设为有效,同时将ID编号对应的读响应数据存入重排序数据缓存中;
当某一ID编号对应存入重排序数据缓存中读响应数据接收完整之后,将对应的编号缓存标记位设为无效。
5.一种计算机设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1至3中任一所述的对基于AXI协议乱序响应的重排序方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1至3中任一所述的对基于AXI协议乱序响应的重排序方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310679591.9A CN116414767B (zh) | 2023-06-09 | 2023-06-09 | 一种对基于axi协议乱序响应的重排序方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310679591.9A CN116414767B (zh) | 2023-06-09 | 2023-06-09 | 一种对基于axi协议乱序响应的重排序方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116414767A true CN116414767A (zh) | 2023-07-11 |
CN116414767B CN116414767B (zh) | 2023-09-29 |
Family
ID=87054647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310679591.9A Active CN116414767B (zh) | 2023-06-09 | 2023-06-09 | 一种对基于axi协议乱序响应的重排序方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116414767B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719764A (zh) * | 2023-08-07 | 2023-09-08 | 苏州仰思坪半导体有限公司 | 数据同步方法、系统以及相关装置 |
CN118368293A (zh) * | 2024-06-19 | 2024-07-19 | 深圳星云智联科技有限公司 | 一种数据传输方法、计算机设备及介质 |
CN118503165A (zh) * | 2024-07-18 | 2024-08-16 | 芯潮流(珠海)科技有限公司 | 数据交织处理方法、axi vip设备、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067549A1 (en) * | 2005-08-29 | 2007-03-22 | Judy Gehman | Method for request transaction ordering in OCP bus to AXI bus bridge design |
CN110928811A (zh) * | 2018-09-19 | 2020-03-27 | Arm有限公司 | 用于处理突发读取事务的装置和方法 |
CN112703489A (zh) * | 2020-04-14 | 2021-04-23 | 深圳市大疆创新科技有限公司 | 控制器、存储器件访问系统、电子设备和数据传输方法 |
CN113297018A (zh) * | 2021-05-14 | 2021-08-24 | 山东华芯半导体有限公司 | 一种axi从机乱序传输的验证方法 |
CN114691571A (zh) * | 2020-12-28 | 2022-07-01 | 上海寒武纪信息科技有限公司 | 数据处理方法、重排序缓存器及互联设备 |
-
2023
- 2023-06-09 CN CN202310679591.9A patent/CN116414767B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067549A1 (en) * | 2005-08-29 | 2007-03-22 | Judy Gehman | Method for request transaction ordering in OCP bus to AXI bus bridge design |
CN110928811A (zh) * | 2018-09-19 | 2020-03-27 | Arm有限公司 | 用于处理突发读取事务的装置和方法 |
CN112703489A (zh) * | 2020-04-14 | 2021-04-23 | 深圳市大疆创新科技有限公司 | 控制器、存储器件访问系统、电子设备和数据传输方法 |
CN114691571A (zh) * | 2020-12-28 | 2022-07-01 | 上海寒武纪信息科技有限公司 | 数据处理方法、重排序缓存器及互联设备 |
CN113297018A (zh) * | 2021-05-14 | 2021-08-24 | 山东华芯半导体有限公司 | 一种axi从机乱序传输的验证方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719764A (zh) * | 2023-08-07 | 2023-09-08 | 苏州仰思坪半导体有限公司 | 数据同步方法、系统以及相关装置 |
CN116719764B (zh) * | 2023-08-07 | 2023-12-01 | 苏州仰思坪半导体有限公司 | 数据同步方法、系统以及相关装置 |
CN118368293A (zh) * | 2024-06-19 | 2024-07-19 | 深圳星云智联科技有限公司 | 一种数据传输方法、计算机设备及介质 |
CN118368293B (zh) * | 2024-06-19 | 2024-09-10 | 深圳星云智联科技有限公司 | 一种数据传输方法、计算机设备及介质 |
CN118503165A (zh) * | 2024-07-18 | 2024-08-16 | 芯潮流(珠海)科技有限公司 | 数据交织处理方法、axi vip设备、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116414767B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116414767B (zh) | 一种对基于axi协议乱序响应的重排序方法及系统 | |
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
KR101842568B1 (ko) | 트랜잭션 버퍼링된 메모리에서의 초기 식별 | |
CN114443529B (zh) | 内存直接访问架构、系统、方法、电子设备和介质 | |
KR101611516B1 (ko) | 직렬 포트 메모리 통신 레이턴시 및 신뢰성을 향상시키기 위한 방법 및 시스템 | |
JP2757055B2 (ja) | ディジタル・コンピュータのデータ転送方法 | |
US7797467B2 (en) | Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features | |
BR112019026942B1 (pt) | Tecnologia de acesso à memória e sistema de computador | |
JPH02227765A (ja) | デジタル・コンピユータのデータ転送装置 | |
US20170090781A1 (en) | Method for providing read data flow control or error reporting using a read data strobe | |
CN104320317B (zh) | 一种以太网物理层芯片状态的传送方法和装置 | |
US20100228901A1 (en) | Input output control apparatus with a plurality of ports and single protocol processing circuit | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
CN109783933B (zh) | 一种ahb总线访问片上sram的桥接方法 | |
CN116074406B (zh) | 指令发送方法及装置 | |
CN116414743A (zh) | 用于控制存储器的方法、存储器控制器及芯片 | |
CN113360130B (zh) | 一种数据传输方法、装置及系统 | |
US11169947B2 (en) | Data transmission system capable of transmitting a great amount of data | |
US11392533B1 (en) | Systems and methods for high-speed data transfer to multiple client devices over a communication interface | |
CN114641763B (zh) | 协议转换器模块系统和使用该协议转换器模块系统的方法 | |
CN107870885A (zh) | 通信系统、装置及方法 | |
CN110659236A (zh) | 可自主回复写应答的axi总线传输装置 | |
US20050144331A1 (en) | On-chip serialized peripheral bus system and operating method thereof | |
WO2024001332A1 (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 |