CN115794713A - Axi总线读写事务均衡方法、装置、电子设备及介质 - Google Patents
Axi总线读写事务均衡方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115794713A CN115794713A CN202211426134.0A CN202211426134A CN115794713A CN 115794713 A CN115794713 A CN 115794713A CN 202211426134 A CN202211426134 A CN 202211426134A CN 115794713 A CN115794713 A CN 115794713A
- Authority
- CN
- China
- Prior art keywords
- write
- axi bus
- read
- writing
- difference
- 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.)
- Pending
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
- Bus Control (AREA)
Abstract
本申请提供一种AXI总线读写事务均衡方法、装置、电子设备及介质,方法包括:检测AXI总线中进行的读操作与写操作是否均衡;若读操作与写操作不均衡,将第一目标操作的已准备ready信号配置为目标值;其中,第一目标操作为读操作与写操作中造成不均衡的操作;目标值为表征操作未准备好的值。本申请可通过将造成不均衡的操作的ready信号配置为目标值,使得主设备得以暂停对该类造成不均衡的操作的执行,从而均衡AXI总线中进行的读操作与写操作,缓解可能出现的在一段时间内一直是某一类操作占用总线的情况,进而降低出现在主设备下发了执行另一类操作的命令后,却一直得不到相关命令的应答的情况的概率,提高系统鲁棒性。
Description
技术领域
本申请涉及信号传输控制技术领域,具体而言,涉及一种AXI总线读写事务均衡方法、装置、电子设备及介质。
背景技术
AXI(Advanced extensible Interface,高级可扩展接口)是一种总线协议,该协议是AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)4.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址、控制和数据相位是分离的,支持不对齐的数据传输。同时在突发传输中,只需要首地址即可进行传输。同时,基于AXI协议的数据传输,由于具有分离的读写数据通道、并支持Outstanding(AXI总线的一种能力,该能力可以使得数据传输过程可以获取更大的数据吞吐率)传输访问和乱序访问,更加容易进行时序收敛。
在基于AXI的数据传输过程中,可参见图1所示,主设备和从设备之间通过AXI总线连接,总线具有双向的物理传输通道,分别实现主设备到从设备的信号传输(主要是写请求和读情求,包括写地址信号握手过程中的awvalid信号、写数据信号握手过程中的wvalid信号、wlast信号、需要写入的数据、写响应握手过程中的bready信号、读地址信号握手过程中的arvalid信号、读响应握手过程中的rready信号),和从设备到主设备的信号传输(主要包括写地址信号握手过程中的awready信号、写数据信号握手过程中的wready信号、写响应握手过程中的bvalid信号、读地址信号握手过程中的arready信号、读响应握手过程中的rvalid信号、rlast信号、以及请求读取的数据)。
目前,进行信号传输时,通常是基于操作命令下发的先后顺序,以及是否支持Outstanding能力进行排队(支持Outstanding能力则可以不用等待读写操作过程完全完成后才能进行下一次续写操作,不支持Outstanding能力则需要等待一个读写操作过程完全完成才能进行下一次读写操作)。
而写数据信号握手过程中传输的需要写入的数据、读响应握手过程中传输的需要读取的数据的数据量往往较其他信号内携带的数据量更大,因此传输携带有需要写入的数据的信号和携带有需要读取的数据的信号所需的时长会较其他信号而言更长,因此若一段时间内一直是某一类操作占用总线,那么主设备上下发了执行另一类操作的命令,受持续的写入数据或读取数据的影响,另一类命令将持续处于等待状态,这会导致另一类命令长时间得不到相关应答,导致系统鲁棒性不高。
发明内容
本申请实施例的目的在于提供一种AXI总线读写事务均衡方法、装置、电子设备及计算机可读存储介质,用以在一定程度上解决上述问题,提高系统鲁棒性。
本申请实施例提供了一种AXI总线读写事务均衡方法,包括:检测AXI总线中进行的读操作与写操作是否均衡;若所述读操作与写操作不均衡,将第一目标操作的已准备ready信号配置为目标值;其中,所述第一目标操作为所述读操作与所述写操作中造成所述不均衡的操作;所述目标值为表征操作未准备好的值。
在上述实现过程中,通过检测AXI总线中进行的读操作与写操作是否均衡,进而在读操作与写操作不均衡时,将造成不均衡的操作的ready信号配置为目标值,从而使得主设备得以暂停对该类造成不均衡的操作的执行,转而进行另一类操作,从而均衡AXI总线中进行的读操作与写操作,缓解可能出现的在一段时间内一直是某一类操作占用总线的情况,进而降低出现在主设备下发了执行另一类操作的命令后,却一直得不到相关命令的应答的情况的概率,提高系统鲁棒性。
进一步地,检测AXI总线中进行的读操作与写操作是否均衡,包括:获取所述AXI总线中进行了写请求但未收到写响应的次数K写;获取所述AXI总线中进行了读请求但未收到读响应的次数K读;根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡。
在上述实现过程中,进行了写请求但未收到写响应的次数K写可以反映主设备与从设备之间还未结束的写操作数量,相应的,进行了读请求但未收到度响应的次数K读可以反映主设备与从设备之间还未结束的读操作数量,两者之间的差值即可在体现出当前在主设备与从设备之间进行的两种操作的留存量的相差情况,从而体现出AXI总线中进行的读操作与写操作是否均衡,进而据此可以准确进行AXI总线中读写事务均衡调控。
进一步地,获取所述AXI总线中进行了写请求但未收到写响应的次数K写,包括:获取所述AXI总线中进行的写地址信号的有效握手次数k1;获取所述AXI总线中进行的写响应的有效握手次数k3;计算所述k1与所述k3之间的差值,以得到所述K写;
或,获取所述AXI总线中进行的写数据信号的有效握手次数k2;获取所述AXI总线中进行的写响应的有效握手次数k3;计算所述k2与所述k3之间的差值,以得到所述K写;
或,获取所述AXI总线中进行的写地址信号的有效握手次数k1,并获取所述AXI总线中进行的写数据信号的有效握手次数k2;获取所述AXI总线中进行的写响应的有效握手次数k3;分别计算所述k1与所述k3之间的差值,以及所述k2与所述k3之间的差值,以得到所述K写。
在上述实现方式中,统计AXI总线中进行的写地址信号的有效握手次数k1,以及统计AXI总线中进行的写数据信号的有效握手次数k2,均可以实现对于已发送的写请求的统计;而通过统计AXI总线中进行的写响应的有效握手次数k3,可以实现对于已响应过的写请求的统计。进而基于此,可以得到准确的K写,从而保证方案执行的可靠性。
进一步地,获取所述AXI总线中进行了读请求但未收到读响应的次数K读,包括:获取所述AXI总线中进行的读地址信号的有效握手次数k4;获取所述AXI总线中进行的读响应的有效握手次数k5;计算所述k4与所述k5之间的差值,得到所述K读。
在上述实现方式中,通过统计AXI总线中进行的读地址信号的有效握手次数k4,可以实现对于已发送的写请求的统计。而通过统计AXI总线中进行的读响应的有效握手次数k3,可以实现对于已响应过的读请求的统计。进而基于此,可以得到准确的K读,从而保证方案执行的可靠性。
进一步地,所述K写为所述k1与所述k3之间的差值,或所述K写为所述k2与所述k3之间的差值;根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡,包括:在所述K写和所述K读之间的差值超出预设偏差范围时,确定所述AXI总线中进行的读操作与写操作不均衡;在所述K写和所述K读之间的差值未超出所述预设偏差范围时,确定所述AXI总线中进行的读操作与写操作均衡。
在上述实现方式中,K写仅具有单一值,因此K写和K读之间的差值唯一,因此将K写和K读之间的差值与预设偏差范围进行比较,即可有效确定出两类操作的留存量的相差情况是否在认可的均衡区间内,从而可以有效识别出AXI总线中进行的读操作与写操作是否均衡。
进一步地,所述K写包括所述k1与所述k3之间的差值,以及所述k2与所述k3之间的差值;根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡,包括:在K写1与所述k3之间的差值超出预设偏差范围,且K写2与所述k3之间的差值大于所述预设偏差范围时,确定所述AXI总线中进行的读操作与写操作不均衡;否则,确定所述AXI总线中进行的读操作与写操作均衡;其中,所述K写1为所述k1与所述k3之间的差值,所述K写2为所述k2与所述k3之间的差值。
在AXI总线传输中,由于其支持的地址和数据分离传输机制,尤其是Outstanding能力所支持的多地址提前传输机制,可能导致对于写操作而言,从设备进行接收到了写地址信号,或先接收到了写数据信号,从而导致写地址信号的有效握手次数k1和写数据信号的有效握手次数k2不同,但是两者均可反映主设备发给从设备的写请求数量。为此,在上述实现方式中,通过将K写1和K读之间的差值与预设偏差范围进行比较,并同时将K写2和K读之间的差值也与预设偏差范围进行比较,只有在两者都超出预设偏差范围时,才确定AXI总线中进行的读操作与写操作不均衡,这样可以更为全面和准确的评估AXI总线中进行的读操作与写操作的均衡性,更准确地识别出AXI总线中进行的读操作与写操作是否均衡。
进一步地,在将第一目标操作的ready信号配置为目标值之前,所述方法还包括:确定所述AXI总线中当前存在待进行的第二目标操作;所述第二目标操作为所述读操作与所述写操作中除所述第一目标操作外的另一种操作。
在上述实现过程中,通过在将第一目标操作的ready信号配置为目标值之前,先确定AXI总线中当前存在待进行的第二目标操作,从而可以避免在AXI总线中当前不存在待进行的第二目标操作时,仍旧暂停第一目标操作的执行,从而影响主设备与从设备之间的信号传输效率的问题的发生。
本申请实施例还提供了一种AXI总线读写事务均衡装置,包括:均衡仲裁单元,用于检测AXI总线中进行的读操作与写操作是否均衡;均衡执行单元,用于若所述读操作与写操作不均衡,将第一目标操作的已准备ready信号配置为目标值;其中,所述第一目标操作为所述读操作与所述写操作中造成所述不均衡的操作;所述目标值为表征操作未准备好的值。
本申请实施例还提供了一种电子设备,包括处理器和存储器;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的AXI总线读写事务均衡方法。
本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的AXI总线读写事务均衡方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种主设备和从设备之间通过AXI总线连接的结构示意图;
图2为本申请实施例提供的一种AXI总线读写事务均衡方法的流程示意图;
图3为本申请实施例提供的一种AXI总线读写事务均衡装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为便于理解本申请实施例的方案,下面先对现有的AXI协议中规定的信号进行说明:
awready、awvalid、wready、wvalid、wlast、bready、bvalid、arready、arvalid、rready、rvalid和rlast均为AXI协议中规定的信号。其中:
awvalid为主设备向从设备发送的用于指示相应的写地址信号的有效性的第一写地址指示符;
awready信号为从设备向主设备发送的用于指示是否准备接收相应的写地址信号的第二写地址指示符;
wvalid为主设备向从设备发送的用于指示相应的写数据信号的有效性的第一写数据指示符;
wready为从设备向主设备发送的用于指示是否准备接收相应的写数据信号的第二写数据指示符;
wlast为主设备向从设备发送的用于指示所处位置为本次写操作中最后一段需要写入的数据的第三写数据指示符;
bvalid为从设备向主设备发送的用于指示相应的写响应信号的有效性的第一写响应指示符;
bready为主设备向从设备发送的用于指示是否准备接收相应的写响应信号的第二写响应指示符;
arvalid为主设备向从设备发送的用于指示相应的读地址信号的有效性的第一读地址指示符;
arready为从设备向主设备发送的用于指示是否准备接收相应的所述读地址信号的第二读地址指示符;
rvalid为从设备向主设备发送的用于指示相应的读响应信号的有效性的第一读响应指示符;
rready为主设备向从设备发送的用于指示是否准备接收相应的读响应信号的第二读响应指示符;
rlast为从设备向主设备发送的用于指示所处位置为本次读操作中最后一段需要读出的数据的第三写数据指示符。
本申请实施例中,为了解决基于AXI的数据传输过程中存在的系统鲁棒性不高的问题,本申请实施例中提供了一种AXI总线读写事务均衡方法。可以参见图2所示,图2为本申请实施例中提供的AXI总线读写事务均衡方法的流程示意图,包括:
S201:检测AXI总线中进行的读操作与写操作是否均衡。
在本申请实施例的一种可选实施方式中,可以判断当前传输的信号是否与上一次传输的信号属于同类操作的信号。若是,则可以认为读操作与写操作不均衡,否则认为读操作与写操作均衡。本可选实施方式,可以实现读操作与写操作依次轮询执行,从而实现均衡控制。
而考虑到在实际应用场景中,可能存在主要进行的操作是读操作与写操作中的一类的情况,那么在这种情况下,若对读操作与写操作依次轮询执行,可能并不能很好地满足场景本身的需求。为此,在本申请实施例的另一种可选实施方式中,可以获取AXI总线中进行了写请求但未收到写响应的次数K写,以及获取AXI总线中进行了读请求但未收到读响应的次数K读,进而根据K写和K读之间的差值,确定AXI总线中进行的读操作与写操作是否均衡。
这样,由于进行了写请求但未收到写响应的次数K写可以反映主设备与从设备之间还未结束的写操作数量,相应的,进行了读请求但未收到度响应的次数K读可以反映主设备与从设备之间还未结束的读操作数量,两者之间的差值即可在体现出当前在主设备与从设备之间进行的两种操作的留存量的相差情况,从而体现出AXI总线中进行的读操作与写操作是否均衡,进而据此可以准确进行AXI总线中读写事务均衡调控。
在本申请实施例中,为了获取到AXI总线中进行了写请求但未收到写响应的次数K写,以及AXI总线中进行了读请求但未收到读响应的次数K读,可以在主设备和/或从设备中配置相关功能以统计以下信息:
1、统计AXI总线中进行的写地址信号的有效握手次数k1,和/或,统计AXI总线中进行的写数据信号的有效握手次数k2。
2、统计AXI总线中进行的写响应的有效握手次数k3。
3、统计AXI总线中进行的读地址信号的有效握手次数k4。
4、统计AXI总线中进行的读响应的有效握手次数k5。
可以理解,本申请实施例中AXI总线中进行的有效握手,是指主设备和从设备之间通过AXI总线进行的有效握手。比如,对于AXI总线中进行的写地址信号的有效握手次数k1而言,是指主设备和从设备之间通过AXI总线传输awready信号和awvalid信号实现的有效握手。对于AXI总线中进行的写数据信号的有效握手次数k2而言,是指主设备和从设备之间通过AXI总线传输wready信号、wvalid信号和wlast信号实现的有效握手。对于AXI总线中进行的写响应的有效握手次数k3而言,是指主设备和从设备之间通过AXI总线传输bready信号和bvalid信号实现的有效握手。对于AXI总线中进行的读地址信号的有效握手次数k4而言,是指主设备和从设备之间通过AXI总线传输arready信号和arvalid信号实现的有效握手。对于AXI总线中进行的读响应的有效握手次数k5而言,是指主设备和从设备之间通过AXI总线传输rready信号、rvalid信号和rlast信号实现的有效握手。
可以理解,对于AXI总线中进行的写地址信号的有效握手次数k1,和AXI总线中进行的写数据信号的有效握手次数k2,其都可以反映出已发送的写请求的数量,因此可以仅统计其中一种,当然也可以两种都进行统计。
由于在主设备和/或从设备中会统计上述信息,因此在进行均衡判断时,可以获取到上述信息,从而计算出AXI总线中进行了写请求但未收到写响应的次数K写,和AXI总线中进行了读请求但未收到读响应的次数K读。
示例性的,可以获取AXI总线中进行的写地址信号的有效握手次数k1,和/或,获取AXI总线中进行的写数据信号的有效握手次数k2。以及,获取AXI总线中进行的写响应的有效握手次数k3。然后,计算k1与k3之间的差值,和/或,计算k2与所述k3之间的差值,以得到K写。
可以理解,在一种实施方式中,可以仅获取k1和k3,从而计算k1与k3之间的差值得到K写。在另一种实施方式中,可以仅获取k2和k3,从而计算k2与k3之间的差值得到K写。在又一种实施方式中,可以获取k1、k2和k3,从而计算k1与k3之间的差值得到K写1,计算k2与k3之间的差值得到K写2,K写1和K写2共同构成K写。
相应的,可以获取AXI总线中进行的读地址信号的有效握手次数k4,以及获取AXI总线中进行的读响应的有效握手次数k5。然后计算k4与k5之间的差值,得到K读。
可以理解,在K写为k1与k3之间的差值,或K写为k2与k3之间的差值的实施例中,K写仅具有单一值,因此K写和K读之间的差值唯一,因此可以计算K写和K读之间的差值,进而将K写和K读之间的差值与预设偏差范围进行比较。若K写和K读之间的差值超出预设偏差范围,则可以确定AXI总线中进行的读操作与写操作不均衡。若K写和K读之间的差值小于等于预设偏差范围,则可以确定AXI总线中进行的读操作与写操作均衡。
而在K写同时包括k1与k3之间的差值K写1,以及k2与k3之间的差值K写2的实施例中,则需要分别计算K写1和K读之间的差值△K1,以及K写2和K读之间的差值△K2,然后分别将△K1和△K2与预设偏差范围比较。此时,一种可选的方式是:当△K1超出预设偏差范围,且△K2也超出预设偏差范围时,才确定AXI总线中进行的读操作与写操作不均衡;否则,确定AXI总线中进行的读操作与写操作均衡。这样,可以更为全面和准确的评估AXI总线中进行的读操作与写操作的均衡性,更准确地识别出AXI总线中进行的读操作与写操作是否均衡。
当然,在另一种可选实施方式中,也可以在△K1和△K2中的任一者超出预设偏差范围时,就确定AXI总线中进行的读操作与写操作不均衡。否则,确定AXI总线中进行的读操作与写操作均衡。这样可以防止出现在实际发生了不均衡状态后未能及时进行调整的情况。
可以理解,本申请实施例中,预设偏差范围可以由用户根据实际应用场景的需要进行设置,特别的,该预设偏差范围可以是0至2。
S202:若AXI总线中进行的读操作与写操作不均衡,将第一目标操作的ready信号配置为目标值。
在本申请实施例中,第一目标操作为读操作与写操作中造成不均衡的操作。目标值为表征操作未准备好的值。
可以理解,所谓造成不均衡的操作是指,该操作的暂停可以使得两类操作变得均衡的那一类操作。示例性的,对于读操作与写操作依次轮询执行的可选实施方式而言,造成不均衡的操作即为当前进行的操作。对于根据K写和K读之间的差值,确定AXI总线中进行的读操作与写操作是否均衡的可选实施方式而言,若K写和K读之差超过预设偏差范围的上限值,则造成不均衡的操作即为写操作,若K写和K读之差超过预设偏差范围的下限值,则造成不均衡的操作即为读操作。
还可以理解,在本申请实施例中,ready信号可以是awready信号、wready信号、bready信号、arready信号和rready信号中的一种或多种。示例性的,假设第一目标操作为写操作,则ready信号可以是awready信号、wready信号和bready信号中的一种或多种;假设第一目标操作为读操作,则ready信号可以是arready信号和rready信号中的一种或多种。
根据AXI协议,ready信号为1表征操作已准备好,为0表征操作未准备好。例如,awready信号值为1,表明从设备已准备好接收相应的写地址信号;awready信号值为0,表明从设备未准备好接收相应的写地址信号。又例如,awready信号值为1,表明从设备已准备好接收相应的写数据信号;awready信号值为0,表明从设备未准备好接收相应的写数据信号。
因此,为与现行AXI协议适配,目标值可以设置为0。此时,为了将第一目标操作的ready信号配置为目标值,可以为第一目标操作生成值为0的待与运算信号,然后将该待与运算信号与第一目标操作原有的ready信号进行与运算,得到配置后的ready信号。此时,由于第一目标操作的ready信号被置0,从而可以利用反压作用达到读写均衡化。
当然,可以理解,若协议改变,目标值的设置方式也可以相应改变。例如,表征操作未准备好的值为1,则可以为第一目标操作生成值为1的待或运算信号,然后将该待或运算信号与第一目标操作原有的ready信号进行或运算,得到配置后的ready信号。
在本申请实施例中,在将第一目标操作的ready信号配置为目标值之前,还可以先检测AXI总线中当前是否存在待进行的第二目标操作。述第二目标操作为读操作与所述写操作中除第一目标操作外的另一种操作。
若AXI总线中当前存在待进行的第二目标操作,才将第一目标操作的ready信号配置为目标值。否则,不进行将第一目标操作的ready信号配置为目标值的操作。
这样,通过在将第一目标操作的ready信号配置为目标值之前,先确定AXI总线中当前存在待进行的第二目标操作,从而可以避免在AXI总线中当前不存在待进行的第二目标操作时,仍旧暂停第一目标操作的执行,从而影响主设备与从设备之间的信号传输效率的问题的发生。
基于同一发明构思,本申请实施例中还提供AXI总线读写事务均衡装置300。请参阅图3所示,图3示出了采用图2所示的方法的AXI总线读写事务均衡装置。应理解,装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置300包括至少一个能以软件或固件的形式存储于存储器中或固化在装置300的操作系统中的软件功能模块。具体地:
参见图3所示,装置300包括:均衡仲裁单元301和均衡执行单元302。
其中:
均衡仲裁单元,用于检测AXI总线中进行的读操作与写操作是否均衡;
均衡执行单元,用于若所述读操作与写操作不均衡,将第一目标操作的已准备ready信号配置为目标值;其中,所述第一目标操作为所述读操作与所述写操作中造成所述不均衡的操作;所述目标值为表征操作未准备好的值。
在本申请实施例的一种可行实施方式中,均衡仲裁单元具体用于,获取所述AXI总线中进行了写请求但未收到写响应的次数K写,获取所述AXI总线中进行了读请求但未收到读响应的次数K读,根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡。
在本可行实施方式中,均衡仲裁单元具体用于:
获取所述AXI总线中进行的写地址信号的有效握手次数k1;获取所述AXI总线中进行的写响应的有效握手次数k3;计算所述k1与所述k3之间的差值,以得到所述K写;
或,获取所述AXI总线中进行的写数据信号的有效握手次数k2;获取所述AXI总线中进行的写响应的有效握手次数k3;计算所述k2与所述k3之间的差值,以得到所述K写;
或,获取所述AXI总线中进行的写地址信号的有效握手次数k1,并获取所述AXI总线中进行的写数据信号的有效握手次数k2;获取所述AXI总线中进行的写响应的有效握手次数k3;分别计算所述k1与所述k3之间的差值,以及所述k2与所述k3之间的差值,以得到所述K写。
在本可行实施方式中,均衡仲裁单元具体用于:获取所述AXI总线中进行的读地址信号的有效握手次数k4;获取所述AXI总线中进行的读响应的有效握手次数k5;计算所述k4与所述k5之间的差值,得到所述K读。
在本可行实施方式中,所述K写为所述k1与所述k3之间的差值,或所述K写为所述k2与所述k3之间的差值;
均衡仲裁单元具体用于:在所述K写和所述K读之间的差值超出预设偏差范围时,确定所述AXI总线中进行的读操作与写操作不均衡;在所述K写和所述K读之间的差值未超出所述预设偏差范围时,确定所述AXI总线中进行的读操作与写操作均衡。
在本可行实施方式中,所述K写包括所述k1与所述k3之间的差值,以及所述k2与所述k3之间的差值;均衡仲裁单元具体用于:在K写1与所述k3之间的差值超出预设偏差范围,且K写2与所述k3之间的差值大于所述预设偏差范围时,确定所述AXI总线中进行的读操作与写操作不均衡;否则,确定所述AXI总线中进行的读操作与写操作均衡;其中,所述K写1为所述k1与所述k3之间的差值,所述K写2为所述k2与所述k3之间的差值。
在本申请实施例中,均衡执行单元还用于,在将第一目标操作的ready信号配置为目标值之前,确定所述AXI总线中当前存在待进行的第二目标操作;所述第二目标操作为所述读操作与所述写操作中除所述第一目标操作外的另一种操作。
可以理解,装置300中除了可以包括均衡仲裁单元和均衡执行单元外,还可以包括相关统计单元,用于统计k1和/或k2、k3、k4、k5的值。
需要理解的是,出于描述简洁的考量,部分方法实施例中描述过的内容在本实施例中不再赘述。
为便于理解本申请实施例的方案,下面以一种具体的实施方式为例,对本申请实施例做示例性说明。装置300包括:
写命令地址统计单元,用于对写操作中传输的awready信号和awvalid信号的有效握手情况进行统计计数,得到k1。
写命令数据统计单元,用于对写操作中传输的wready信号、wvalid信号和wlast信号的有效握手情况进行统计计数,得到k2。
写命令响应统计单元,用于对写操作中传输的bready信号和bvalid信号的有效握手情况进行统计计数,得到k3。
读命令地址统计单元,用于对读操作中传输的arready信号和arvalid信号的有效握手情况进行统计计数,得到k4。
读命令响应统计单元,用于对读操作中传输的rready信号、rvalid信号和rlast信号的有效握手情况进行统计计数,得到k5。
均衡仲裁单元,计算k1与k3的差值得到K写1,计算k2与k3的差值得到K写2,计算k4与k5的差值得到K读。计算K写1与K读之间的差值△K1,计算K写2与K读之间的差值△K2。将△K1和△K2分别与预设偏差范围比较。若△K1和△K2均超出预设偏差范围的上限值,则对写操作生成值为0的待与运算信号。此时,均衡执行单元将该待与运算信号与写操作原有的ready信号进行与运算,使得写操作的ready信号置0,从而暂停主设备中对于写操作的相关信号的传输。若△K1和△K2均超出预设偏差范围的下限值,则对读操作生成值为0的待与运算信号。此时,均衡执行单元将该待与运算信号与读操作原有的ready信号进行与运算,使得读操作的ready信号置0,从而暂停主设备中对于读操作的相关信号的传输。
通过上述方案,可以基于对读写操作的相关信号的握手情况进行统计,从而准确确定出AXI总线中进行的读操作与写操作是否均衡。同时,通过将将造成不均衡的操作的ready信号配置为表征操作未准备好的目标值,从而使得主设备得以暂停对该类造成不均衡的操作的执行,从而缓解可能出现的在一段时间内一直是某一类操作占用总线的情况,进而降低出现在主设备下发了执行另一类操作的命令后,却一直得不到相关命令的应答的情况的概率,提高系统鲁棒性。
可以理解,本申请实施例所提供的方案可以应用中通过AXI总线进行信号传输的,由主设备和从设备构成的系统中,并由系统中的主设备或从设备执行。
基于同一发明构思,本实施例提供了一种电子设备,参见图4所示,其包括处理器401和存储器402。其中:
处理器401用于执行存储器402中存储的一个或多个程序,以实现上述AXI总线读写事务均衡方法。
可以理解,而处理器401可以是处理器核心或处理器芯片,或者是可进行程序配置与运行的其他电路。而存储器402可以是RAM(Random Access Memory,随机存取存储器)、ROM(Read-Only Memory,只读存储器)、DDR SDRAM(Double Data Rate SynchronousDynamic Random Access Memory,双倍速率同步动态随机存取存储器)、闪存等,但不作为限制。
还可以理解,图4所示的结构仅为示意,电子设备还可包括用于实现设备间连接的AXI总线。此外,电子设备还可以包括比图4中所示更多的组件,或者具有与图4所示不同的配置。例如,还可以具有内部通信总线,用于实现处理器401和存储器402之间的通信;又例如,还可以具有外部通信接口,例如PCIe(peripheral component interconnect express,外围组件互联Express)、USB(Universal Serial Bus,通用串行总线)接口、CAN(Controller Area Network,控制器局域网络)总线接口等;又例如,还可以具有显示屏等信息显示部件,但不作为限制。
基于同一发明构思,本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(MultimediaCard,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现AXI总线读写事务均衡方法。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种AXI总线读写事务均衡方法,其特征在于,包括:
检测AXI总线中进行的读操作与写操作是否均衡;
若所述读操作与写操作不均衡,将第一目标操作的已准备ready信号配置为目标值;其中,所述第一目标操作为所述读操作与所述写操作中造成所述不均衡的操作;所述目标值为表征操作未准备好的值。
2.如权利要求1所述的方法,其特征在于,检测AXI总线中进行的读操作与写操作是否均衡,包括:
获取所述AXI总线中进行了写请求但未收到写响应的次数K写;
获取所述AXI总线中进行了读请求但未收到读响应的次数K读;
根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡。
3.如权利要求2所述的方法,其特征在于,获取所述AXI总线中进行了写请求但未收到写响应的次数K写,包括:
获取所述AXI总线中进行的写地址信号的有效握手次数k1;
获取所述AXI总线中进行的写响应的有效握手次数k3;
计算所述k1与所述k3之间的差值,以得到所述K写;
或,
获取所述AXI总线中进行的写数据信号的有效握手次数k2;
获取所述AXI总线中进行的写响应的有效握手次数k3;
计算所述k2与所述k3之间的差值,以得到所述K写;
或,
获取所述AXI总线中进行的写地址信号的有效握手次数k1,并获取所述AXI总线中进行的写数据信号的有效握手次数k2;
获取所述AXI总线中进行的写响应的有效握手次数k3;
分别计算所述k1与所述k3之间的差值,以及所述k2与所述k3之间的差值,以得到所述K写。
4.如权利要求2所述的方法,其特征在于,获取所述AXI总线中进行了读请求但未收到读响应的次数K读,包括:
获取所述AXI总线中进行的读地址信号的有效握手次数k4;
获取所述AXI总线中进行的读响应的有效握手次数k5;
计算所述k4与所述k5之间的差值,得到所述K读。
5.如权利要求3所述的方法,其特征在于,所述K写为所述k1与所述k3之间的差值,或所述K写为所述k2与所述k3之间的差值;
根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡,包括:
在所述K写和所述K读之间的差值超出预设偏差范围时,确定所述AXI总线中进行的读操作与写操作不均衡;
在所述K写和所述K读之间的差值未超出所述预设偏差范围时,确定所述AXI总线中进行的读操作与写操作均衡。
6.如权利要求3所述的方法,其特征在于,所述K写包括所述k1与所述k3之间的差值,以及所述k2与所述k3之间的差值;
根据所述K写和所述K读之间的差值,确定所述AXI总线中进行的读操作与写操作是否均衡,包括:
在K写1与所述k3之间的差值超出预设偏差范围,且K写2与所述k3之间的差值大于所述预设偏差范围时,确定所述AXI总线中进行的读操作与写操作不均衡;
否则,确定所述AXI总线中进行的读操作与写操作均衡;
其中,所述K写1为所述k1与所述k3之间的差值,所述K写2为所述k2与所述k3之间的差值。
7.如权利要求1-6任一项所述的方法,其特征在于,在将第一目标操作的ready信号配置为目标值之前,所述方法还包括:
确定所述AXI总线中当前存在待进行的第二目标操作;所述第二目标操作为所述读操作与所述写操作中除所述第一目标操作外的另一种操作。
8.一种AXI总线读写事务均衡装置,其特征在于,包括:
均衡仲裁单元,用于检测AXI总线中进行的读操作与写操作是否均衡;
均衡执行单元,用于若所述读操作与写操作不均衡,将第一目标操作的已准备ready信号配置为目标值;其中,所述第一目标操作为所述读操作与所述写操作中造成所述不均衡的操作;所述目标值为表征操作未准备好的值。
9.一种电子设备,其特征在于,包括处理器和存储器;所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1-7任一项所述的AXI总线读写事务均衡方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的AXI总线读写事务均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211426134.0A CN115794713A (zh) | 2022-11-15 | 2022-11-15 | Axi总线读写事务均衡方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211426134.0A CN115794713A (zh) | 2022-11-15 | 2022-11-15 | Axi总线读写事务均衡方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794713A true CN115794713A (zh) | 2023-03-14 |
Family
ID=85437698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211426134.0A Pending CN115794713A (zh) | 2022-11-15 | 2022-11-15 | Axi总线读写事务均衡方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794713A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938631A (zh) * | 2023-09-19 | 2023-10-24 | 芯原科技(上海)有限公司 | 配置总线生成方法、系统、存储介质及电子设备 |
-
2022
- 2022-11-15 CN CN202211426134.0A patent/CN115794713A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938631A (zh) * | 2023-09-19 | 2023-10-24 | 芯原科技(上海)有限公司 | 配置总线生成方法、系统、存储介质及电子设备 |
CN116938631B (zh) * | 2023-09-19 | 2023-12-29 | 芯原科技(上海)有限公司 | 配置总线生成方法、系统、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6496890B1 (en) | Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters | |
KR100417839B1 (ko) | 컴퓨터 구성요소들 간의 개선된 인터페이스 방법 및 장치 | |
US6374317B1 (en) | Method and apparatus for initializing a computer interface | |
US5805842A (en) | Apparatus, system and method for supporting DMA transfers on a multiplexed bus | |
JP2757055B2 (ja) | ディジタル・コンピュータのデータ転送方法 | |
US6226700B1 (en) | Computer system with bridge logic that includes an internal modular expansion bus and a common master interface for internal master devices | |
US8874959B2 (en) | Information processing apparatus, image forming apparatus, and information processing program | |
US20110040902A1 (en) | Compensation engine for training double data rate delays | |
US9003091B2 (en) | Flow control for a Serial Peripheral Interface bus | |
EP1389760A2 (en) | Data transfer control system, program and data transfer control method | |
CA2055962A1 (en) | Bus arbitration system | |
US6209053B1 (en) | Method and apparatus for operating an adaptive multiplexed address and data bus within a computer system | |
US7171509B2 (en) | Method and apparatus for host messaging unit for Peripheral Component Interconnect busmaster devices | |
US6567881B1 (en) | Method and apparatus for bridging a digital signal processor to a PCI bus | |
US9542251B2 (en) | Error detection on a low pin count bus | |
CN115794713A (zh) | Axi总线读写事务均衡方法、装置、电子设备及介质 | |
US6804736B2 (en) | Bus access arbitration based on workload | |
US6973520B2 (en) | System and method for providing improved bus utilization via target directed completion | |
US5915103A (en) | Method and system for an extensible on silicon bus supporting multiple functional blocks | |
JP3602435B2 (ja) | 制御チップセット間におけるデータトランザクション方法 | |
US6446154B1 (en) | Method and mechanism for virtualizing legacy sideband signals in a hub interface architecture | |
JP2011070372A (ja) | Dma転送制御装置 | |
JP2007507045A (ja) | コンフィグレーション・レジスター・アクセス方法、設定方法、集積回路部品、コンピューター・システム、製品 | |
US6934789B2 (en) | Interface, structure and method for transmitting data of PCI bus which uses bus request signal for judging whether a device supporting dual transmission mode | |
US8713205B2 (en) | Data transfer device and data transfer method |
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 |