CN116881065A - 总线传输延时检测模块、电路及方法 - Google Patents
总线传输延时检测模块、电路及方法 Download PDFInfo
- Publication number
- CN116881065A CN116881065A CN202311150090.8A CN202311150090A CN116881065A CN 116881065 A CN116881065 A CN 116881065A CN 202311150090 A CN202311150090 A CN 202311150090A CN 116881065 A CN116881065 A CN 116881065A
- Authority
- CN
- China
- Prior art keywords
- command
- delay
- request
- module
- response
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 131
- 230000005540 biological transmission Effects 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000002093 peripheral effect Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 3
- 230000003111 delayed effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000001934 delay Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明实施例公开了一种总线传输延时检测模块、电路及方法。该模块包括:请求计数模块,用于对总线发送的若干个命令中每个命令的请求延时进行计数,以得到每个命令的请求延时值;初始命令的请求延时值为0,每个命令为读命令或写命令;响应计数模块,用于对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;所述初始命令的响应延时值为所述初始命令的延时值;运算模块,用于对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值,进而可以检测出总线上每个主设备的命令的实际延时,同时总线传输延时检测电路可以由至少一个总线传输延时检测模块构成,实现了处理总线上多个主设备的情况。
Description
技术领域
本发明涉及数据传输总线技术领域,尤其涉及一种总线传输延时检测模块、电路及方法。
背景技术
延时(Latency)和带宽(Bandwidth)是衡量AXI 总线的传输性能的两个重要的指标。现有技术中,通常会将总线监控器(Bus Monitor)放在总线上,并通过实时监控获取总线的延时和带宽,从而达到测量总线性能的目的。但是该方式在检测总线延时的过程中,需要根据AMBA (Advanced Microcontroller Bus Architecture,高级微控制器总线架构)协议的描述对每个事务操作(Transaction)一一进行延时计算,导致计算量大且复杂。
为解决总线的延时的计算量大且复杂的技术问题,中国发明专利CN106326045A中采用计算所有命令的总延时再除以数据量,进而以得到每个字节的平均延时。但是该方式无法计算出总线上每个主设备的命令的实际延时,同时也无法处理总线上多个主设备的情况。
发明内容
针对现有技术的不足,本发明提供了一种总线传输延时检测模块、电路及方法,旨在解决现有技术中无法计算出总线上每个主设备的命令的实际延时且无法处理总线上多个主设备的技术问题。
为解决上述问题,第一方面,本发明提供了一种总线传输延时检测模块,其包括:
请求计数模块,用于对总线发送的若干个命令中每个命令的请求延时进行计数,以得到每个命令的请求延时值;其中,若干个命令中初始命令的请求延时值为0,每个命令为读命令或写命令;非初始命令的请求延时为总线传输的一个命令的请求至总线传输下一个命令的请求之间的间隔时间;
响应计数模块,用于对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;其中,所述初始命令的响应延时值为所述初始命令的延时值;初始命令的响应延时为初始命令的请求至初始命令的请求被响应之间的间隔时间,非初始命令的响应延时为非初始命令的前一个命令的请求被响应至非初始命令的请求被响应之间的间隔时间;
运算模块,用于对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值;每个命令的延时值为命令的请求至命令的请求被响应之间的时间间隔。
进一步地,在所述的总线传输延时检测模块中,还包括:命令请求检测接口;
其中,所述命令请求检测接口根据请求所述若干个命令的第一握手信号生成每个命令的第一有效信号,并将所述第一有效信号发送至所述请求计数模块中;其中,所述第一握手信号包括第一Valid信号和第一Ready信号;
所述请求计数模块在接收到所述若干个命令中第一命令的第一有效信号后,若所述第一命令为初始命令,所述请求计数模块对所述若干个命令中第二命令的请求延时进行计数;若所述第一命令为非初始命令,所述请求计数模块停止对所述第一命令的请求延时进行计数,并对所述第二命令的请求延时进行计数;其中,所述第一命令为所述第二命令的前一个命令。
更进一步地,在所述的总线传输延时检测模块中,还包括:第一响应计数接口;
其中,若所述第一命令为初始命令,所述第一响应计数接口用于所述请求计数模块在接收到所述第一命令的第一有效信号后,触发所述响应计数模块对所述第一命令的响应延时进行计数。
进一步地,在所述的总线传输延时检测模块中,还包括:命令响应检测接口;
其中,所述命令响应检测接口根据响应所述若干个命令的第二握手信号生成每个命令的第二有效信号,并将所述第二有效信号发送至所述响应计数模块中;其中,所述第二握手信号包括第二Valid信号或第二Ready信号;
所述响应计数模块在接收到所述若干个命令中第三命令的第二有效信号后,停止对所述第三命令的响应延时进行计数,并对所述若干个命令中第四命令的响应延时进行计数;其中,所述第三命令为所述第四命令的前一个命令。
更进一步地,在所述的总线传输延时检测模块中,还包括:第二响应计数接口;
其中,所述第二响应计数接口用于在所述响应计数模块停止对的一个命令进行计数后,将命令的响应延时值发送至所述运算模块中。
进一步地,在所述的总线传输延时检测模块中,还包括:FIFO模块;
其中,所述FIFO模块用于存储每个命令的请求延时值;
所述运算模块用于对所述FIFO模块发送的每个命令的请求延时值、所述响应计数模块发送的每个命令的响应延时值进行运算,以得到每个命令的延时值。
更进一步地,在所述的总线传输延时检测模块中,还包括:第一请求计数接口和第二请求计数接口;
其中,所述第一请求计数接口用于将所述若干个命令中非初始命令的请求延时值发送至所述FIFO模块中进行存储;
所述第二请求计数接口用于将所述FIFO模块中的请求延时值发送至所述运算模块中,以实现所述运算模块对每个命令的请求延时值和响应延时值进行运算。
进一步地,在所述的总线传输延时检测模块中,还包括命令延时存储模块和第一命令延时接口;
其中,所述第一命令延时接口用于将每个命令的延时值发送至所述命令延时存储模块中;
所述命令延时存储模块用于存储每个命令的延时值。
进一步地,在所述的总线传输延时检测模块中,所述运算模块还用于每个命令的请求延时值和响应延时值进行运算,以得到每个命令的平均延时值。
第二方面,本发明还提供了一种总线传输延时检测电路,其包括:外围总线从模块、第二命令延时接口以及至少一个第一方面所述的总线传输延时检测模块;
其中,所述外围总线从模块用于根据所述第二命令延时接口读取每个命令的延时值。
进一步地,在所述的总线传输延时检测电路中,总线上一个主设备的若干个命令对应有一个总线传输延时检测模块进行延时检测,总线上主设备的数量与总线传输延时检测模块的数量相等,各总线传输延时检测模块采用依次交替的方式对相应的主设备中每个命令进行延时检测。
进一步地,在所述的总线传输延时检测电路中,所述电路还包括平均延时接口;
其中,所述外围总线从模块用于根据平均延时接口从所述运算模块中读取每个命令的平均延时值。
第三方面,本发明还提供了一种总线传输延时检测方法,其应用于第二方面所述的总线传输延时检测电路中,所述方法包括:
所述请求计数模块对总线发送的若干个命令中非初始命令的请求延时进行计数,以得到所述若干个命令中非初始命令的请求延时值;其中,每个命令为读命令或写命令;
所述响应计数模块对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;其中,所述若干个命令中初始命令的响应延时值为所述初始命令的延时值;
所述运算模块对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值;
所述外围总线从模块根据所述第二命令延时接口读取每个命令的延时值。
本发明提供了一种总线传输延时检测模块、电路及方法,总线传输延时检测模块由请求计数模块、响应计数模块以及运算模块构成,请求计数模块用于对总线发送的若干个命令中每个命令的请求延时进行计数以得到每个命令的请求延时值,初始命令的请求延时值为0,每个命令为读命令或写命令,响应计数模块用于对每个命令的响应延时进行计数以得到每个命令的响应延时值;初始命令的响应延时值为初始命令的延时值;运算模块用于对每个命令的请求延时值和响应延时值进行运算以得到每个命令的延时值,进而可以检测出总线上每个主设备的命令的实际延时,同时总线传输延时检测电路可以由至少一个总线传输延时检测模块构成,进而可以处理总线上多个主设备的命令的实际延时值。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的总线传输延时检测模块的示意框图;
图2为本发明实施例提供的总线传输延时检测模块的一示意框图;
图3为本发明实施例提供的总线传输延时检测模块的另一示意框图;
图4为本发明实施例提供的总线发送的四个命令在总线传输延时检测模块中的流程示意图;
图5为在图4的基础上增加了FIFO模块的总线传输延时检测模块的示意框图;
图6为在图5的基础上增加了第二请求技术接口的总线传输延时检测模块的示意框图;
图7为在图6的基础上增加了第一命令延时接口以及命令延时模块的总线传输延时检测模块的示意框图;
图8为本发明实施例提供的总线传输延时检测电路的意框图;
图9为本发明实施例提供的不同ID在总线传输延时检测电路中的流程示意图;
图10为本发明实施例提供的总线传输延时检测方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如本申请背景技术所分析的,现有技术中无法计算出每个命令的实际延时且无法处理总线上多个主设备的情况,为解决上述技术问题,如图1、图8以及图10所示,本申请提供了一种总线传输延时检测模块10、电路及方法。
请参阅图1,图1为本发明实施例提供的总线传输延时检测模块10的示意框图。如图1所示,一种总线传输延时检测模块10,其包括:
请求计数模块101,用于对总线发送的若干个命令中每个命令的请求延时进行计数,以得到每个命令的请求延时值;其中,若干个命令中初始命令的请求延时值为0,每个命令为读命令或写命令;
响应计数模块102,用于对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;其中,所述初始命令的响应延时值为所述初始命令的延时值;
运算模块103,用于对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值。
在本实施例中,总线传输延时检测模块10主要用于检测AXI 总线上主设备在向从设备写入数据或读取数据时的延时情况,总线发送的若干个命令为AXI 总线上的一个主设备在向从设备进行连续写入数据或读取数据的命令。
具体的,请求延时为总线传输的一个命令的请求至总线传输下一个命令的请求之间的间隔时间。其中,初始命令不存在前一个命令,故初始命令的请求延时值为0。
请求计数模块101在对总线发送的若干个命令的请求延时进行计数时,只对总线传输的非初始命令的请求延时进行计数,每个非初始命令的请求延时均是从前一个命令的请求开始计数,并在该非初始命令的请求开始结束。
初始命令的响应延时为初始命令的请求至初始命令的请求被响应之间的间隔时间,非初始命令的响应延时为非初始命令的前一个命令的请求被响应至该非初始命令的请求被响应之间的间隔时间。
响应计数模块102在对总线的一个命令进行响应延时计数时,若该命令为初始命令,响应计数模块102则可以直接在总线传输该命令的请求时进行响应延时计数,并在该命令的请求被响应后停止计数,进而得到该命令的响应延时值;若该命令为非初始命令,响应计数模块102则可以在该命令的前一个命令的请求被响应后开始计数,并在该命令的请求被响应后停止计数,进而便可以得到该命令的响应延时值。
命令的延时值为该命令的请求至该命令的请求被响应之间的时间间隔。
其中,运算模块103在对每个命令的延时值进行计算时,若该命令为初始命令,则可以直接将该命令的响应延时值作为该命令的延时值,即初始命令的响应延时值的计算公式为:latency0=0+resp_gap0,latency0为初始命令的延时值,resp_gap0为初始命令的响应延时值;若该命令为非初始命令,则可以对该命令的前一个命令的延时值、该命令的请求延时值以及响应延时值进行计算,以得到该命令的延时值,其计算公式为:latencyn=latencyn-1+resp_gapn-req_gapn,n为整数且大于1,latencyn-1为第n-1个命令的延时值,latencyn为第n个命令的延时值,resp_gapn为第n个命令的响应延时值,req_gapn为第n个命令的请求延时值。
在一些实施例中,如图2所示,总线传输延时检测模块10还包括:命令请求检测接口104;其中,所述命令请求检测接口104根据请求所述若干个命令的第一握手信号生成每个命令的第一有效信号,并将所述第一有效信号发送至所述请求计数模块101中;其中,所述第一握手信号包括第一Valid信号和第一Ready信号。
具体的,命令请求检测接口104为命令总线检测信号接口,第一握手信号为在命令的请求完成双向握手后,由命令请求检测接口104生成,若命令为读命令,且命令请求检测接口104检测到Arvalid信号与Arready信号时,即第一Valid信号和第一Ready信号,便可以生成读命令的第一握手信号,请求计数模块101便停止该读命令的请求延时的计数工作,同时进行该命令的下一个读命令的请求延时的计数工作;若命令为写命令,且命令请求检测接口104检测到Awvalid信号与Awready信号时,其也为第一Valid信号和第一Ready信号,便可以生成写命令的第一握手信号,请求计数模块101便停止该写命令的请求延时的计数工作,同时进行该写命令的下一个写命令的请求延时的计数工作。
在本实施例中,所述请求计数模块101在接收到所述若干个命令中第一命令的第一有效信号后,若所述第一命令为初始命令,所述请求计数模块101对所述若干个命令中第二命令的请求延时进行计数;若所述第一命令为非初始命令,所述请求计数模块101停止对所述第一命令的请求延时进行计数,并对所述第二命令的请求延时进行计数;其中,所述第一命令为所述第二命令的前一个命令。
也就是说,当第一命令为初始命令时,请求计数模块101直接对第一命令的请求延时值计数为0,同时对第一命令的下一个命令的请求延时进行计数;当第一命令为非初始命令时,请求计数模块101则停止对第一命令的请求延时进行计数,并对第一命令的下一个命令(第二命令)的请求延时进行计数。
在一些实施例中,如图3所示,总线传输延时检测模块10还包括:第一响应计数接口106;其中,若所述第一命令为初始命令,所述第一响应计数接口106用于所述请求计数模块101在接收到所述第一命令的第一有效信号后,触发所述响应计数模块102对所述第一命令的响应延时进行计数。
在本实施例中,第一响应计数接口106主要作用是请求计数模块101在接收到初始命令的第一有效信号后,请求计数模块101通过第一响应计数接口106通知响应计数模块102可以开始对初始命令的响应延时进行计数,进而便可以得到初始命令的响应延时值。
在一些实施例中,如图2所示,总线传输延时检测模块10还包括:命令响应检测接口105;其中,所述命令响应检测接口105根据响应所述若干个命令的第二握手信号生成每个命令的第二有效信号,并将所述第二有效信号发送至所述响应计数模块102中;其中,所述第二握手信号包括第二Valid信号或第二Ready信号。
具体的,命令响应检测接口105为返回响应总线检测信号接口,第二握手信号为在命令的请求被响应完成双向握手后,由命令响应检测接口105生成,若命令为读命令,则命令响应检测接口105根据一个Burst的第一个rvalid信号(第二Valid信号)产生第二握手信号,此时响应计数模块102便停止对读命令的响应延时进行计数,同时对该读命令的下一个读命令的响应延时进行计数;若命令为写命令,则命令响应检测接口105根据Bvalid上Bready信号(第二Ready信号)产生第二握手信号,此时响应计数模块102便停止对写命令的响应延时进行计数,同时对该写命令的下一个写命令的响应延时进行计数。其中,命令请求检测接口104的读与命令响应检测接口105的读配对,命令请求检测接口104的写与返回命令响应检测接口105的写配对。
在本实施例中,所述响应计数模块102在接收到所述若干个命令中第三命令的第二有效信号后,停止对所述第三命令的响应延时进行计数,并对所述若干个命令中第四命令的响应延时进行计数;其中,所述第三命令为所述第四命令的前一个命令。
比如,如图4所示,若总线传输的若干个命令分别为req0、req1、req2、req3,当命令请求检测接口104检测到命令req0的第一握手信号后,由于命令req0为初始命令,请求计数模块101直接将命令req0的请求延时值计数为0,同时对命令req1的请求延时进行计数,同时也通过第一响应计数接口106触发响应计数模块102对命令req0的响应延时进行计数;当命令响应检测接口105检测到命令req0的第二握手信号后,响应计数模块102停止对命令req0的响应延时进行计数,进而得到命令req0的响应延时值,即命令req0的延时值latency0,同时响应计数模块102对命令req1的响应延时进行计数;当命令请求检测接口104检测到命令req1的第一握手信号后,请求计数模块101停止对命令req1的请求延时进行计数,进而得到命令req1的请求延时值req_gap1,同时请求计数模块101对命令req2的请求延时进行计数;当命令响应检测接口105检测到命令req1的第二握手信号后,响应计数模块102停止对命令req1的响应延时进行计数,进而得到命令req1的响应延时值resp_gap1,同时响应计数模块102对命令req2的响应延时进行计数;当命令请求检测接口104检测到命令req2的第一握手信号后,请求计数模块101停止对命令req2的请求延时进行计数,进而得到命令req2的请求延时值req_gap2,同时请求计数模块101对命令req3的请求延时进行计数;当命令响应检测接口105检测到命令req2的第二握手信号后,响应计数模块102停止对命令req2的响应延时进行计数,进而得到命令req2的响应延时值resp_gap2,同时响应计数模块102对命令req3的响应延时进行计数;当命令请求检测接口104检测到命令req3的第一握手信号后,请求计数模块101停止对命令req3的请求延时进行计数,进而得到命令req3的请求延时值req_gap3;当命令响应检测接口105检测到命令req3的第二握手信号后,响应计数模块102停止对命令req3的响应延时进行计数,进而得到命令req2的响应延时值resp_gap2。
具体的,命令req0、req1、req2、req3的请求延时值以及响应延时值便可以输入至运算模块103中进行计算,从而可以分别得到延时值latency0、latency1、latency2、latency3的具体数值。其中,具体数值计算过程为:
latency1=latency0+resp_gap1-req_gap1=1+2-1=2
latency2=latency1+resp_gap2-req_gap2=2+2-3=1
latency3=latency2+resp_gap3-req_gap3=1+2-2=1
在一些实施例中,如图3所示,总线传输延时检测模块10还包括:第二响应计数接口107;其中,所述第二响应计数接口107用于在所述响应计数模块102停止对的一个命令进行计数后,将命令的响应延时值发送至所述运算模块103中。
在一些实施例中,如图5所示,总线传输延时检测模块10还包括:FIFO模块108;其中,所述FIFO模块108用于存储每个命令的请求延时值;所述运算模块103用于对所述FIFO模块108发送的每个命令的请求延时值、所述响应计数模块102发送的每个命令的响应延时值进行运算,以得到每个命令的延时值。
在本实施例中,命令的请求延时值在FIFO模块108中采用先进先出的方式进行存储,FIFO模块108存储模块存储命令的请求延时值req_gapn的最大个数由总线发送的最大outstaning(发出去的地址数量)个数决定,比如总线的发送端最大具备可以发送64个outstanding能力,那么FIFO模块108就需要有64个空间存储命令的请求延时值req_gapn。
在一些实施例中,如图6所示,总线传输延时检测模块10还包括第一请求计数接口109和第二请求计数接口1010;其中,所述第一请求计数接口109用于将所述若干个命令中非初始命令的请求延时值发送至所述FIFO模块108中进行存储;所述第二请求计数接口1010用于将所述FIFO模块108中的请求延时值发送至所述运算模块103中,以实现所述运算模块103对每个命令的请求延时值和响应延时值进行运算。
在一些实施例中,如图7所示,总线传输延时检测模块10还包括命令延时存储模块1011和第一命令延时接口1012;其中,所述第一命令延时接口1012用于将每个命令的延时值发送至所述命令延时存储模块1011中;所述命令延时存储模块1011用于存储每个命令的延时值。
在本实施例中,命令的响应延时值也可以在命令延时存储模块1011中采用先进先出的方式进行存储,命令延时存储模块1011可以为FIFO模块,其存储命令的响应延时值resp_gapn的最大个数根据存储多少个命令的延迟信息决定。
在一些实施例中,所述运算模块103还用于每个命令的请求延时值和响应延时值进行运算,以得到每个命令的平均延时值。
在本实施例中,运算模块103具体是将每个命令的延时值相加后,除以命令的个数,进而便可以得到总线传输的若干个命令中每个命令的平均延时值。其具体计算公式为:latencyaverage=(latency0+…+latencyn-1+latencyn)/(n+1),其中,latency0为初始命令的延时值,latencyn为命令reqn的延时值,latencyn-1为命令reqn-1的延时值,命令reqn-1为命令reqn的的上一个命令。
本发明提供的总线传输延时检测模块10由请求计数模块101、响应计数模块102以及运算模块103构成,请求计数模块101用于对总线发送的若干个命令中非初始命令的请求延时进行计数以得到非初始命令的请求延时值;每个命令为读命令或写命令;响应计数模块102用于对每个命令的响应延时进行计数以得到每个命令的响应延时值;初始命令的响应延时值为初始命令的延时值;运算模块103用于对每个命令的请求延时值和响应延时值进行运算以得到每个命令的延时值,进而可以检测出每个命令的实际延时。
在一些实施例中,如图8所示,本发明还提供了一种总线传输延时检测电路,其包括:外围总线从模块20、第二命令延时接口1013以及至少一个上述所述的总线传输延时检测模块10;其中,所述外围总线从模块20用于根据所述第二命令延时接口1013读取每个命令的延时值。
在本实施例中,外围总线从模块20为APB slave模块,其负责处理APB总线协议,并从第二命令延时接口1013读取数据。总线传输延时检测电路存在多个总线传输延时检测模块10时,每个总线传输延时检测模块10均需要实例化,总线上的多个主设备中每个主设备对应有一个ID,一个主设备的若干个命令对应有一个总线传输延时检测模块10进行延时检测,总线上主设备的数量与总线传输延时检测模块10的数量相等,各总线传输延时检测模块10采用依次交替的方式对相应的主设备中每个命令进行延时检测。
例如,如图9所示,总线上有两个主设备分别各自对一个从设备进行读命令或写命令,两个主设备分别用ID0和ID1进行表示,ID0发送的两个命令分别为req0_ID0、req1_ID0,ID1发送的两个命令分别为req0_ID1、req1_ID1,req0_ID0、req1_ID0、req0_ID1、req1_ID1的请求延时值分别为req_gap0_ID0、req_gap1_ID0、req_gap0_ID1、req_gap1_ID1,响应延时值分别为resp _gap0_ID0、resp _gap1_ID0、resp _gap0_ID1、resp _gap1_ID1,延时值分别为latency0_ID0、latency1_ID0、latency0_ID1、latency1_ID1。其中,req0_ID0作为初始命令,也就是说命令req0_ID0的延时值可以直接为命令req0_ID0的响应延时值,即latency0_ID0=1。
命令req1_ID0的延时值计算公式为:
latency1_ID0=latency0_ID0+resp_gap1_ID0-req_gap1_ID0=1
命令req0_ID1的延时值计算公式为:
latency0_ID1=latency0_ID0+resp_gap0_ID1-req_gap0_ID1=2
命令req1_ID1的延时值计算公式为:
latency1_ID1= latency0_ID1+resp_gap1_ID1-req_gap1_ID1=1
也就是说,当总线上有多个设备分别各自对一个从设备进行读命令或写命令时,其中一个主设备的第一个命令作为初始命令,此时其他主设备对应的总线传输延时检测模块10中的请求计数模块101对对应主设备的第一个命令进行计数,当对应的总线传输延时检测模块10中的命令请求检测接口104检测到第一命令的第一握手信号后,请求计数模块101停止对第一个命令停止计数,同时触发对应的总线传输延时检测模块10中的响应计数模块102对第一个命令的响应延时进行计数,进而便可以实现对上的多个主设备的每个命令的实际延时值进行检测。
在一些实施例中,如图8所示,总线传输延时检测电路还包括平均延时接口1014;其中,所述外围总线从模块20用于根据平均延时接口1014从所述运算模块103中读取每个命令的平均延时值,
本发明提供的总线传输延时检测电路由至少一个总线传输延时检测模块10构成,其在处理多个主设备的情况时,一个主设备的若干个命令可以对应一个总线传输延时检测模块10进行延时检测,主设备的数量与总线传输延时检测模块10的数量相等,各总线传输延时检测模块10采用依次交替的方式对相应主设备中的每个命令进行延时检测,进而实现了检测多主设备中命令的实际延时值。
在一些实施例中,如图10所示,本发明还提供了一种总线传输延时检测方法,其应用于第二方面所述的总线传输延时检测电路中,所述方法包括步骤S10、S20、S30和S40。
S10、所述请求计数模块101对总线发送的若干个命令中非初始命令的请求延时进行计数,以得到所述若干个命令中非初始命令的请求延时值;其中,每个命令为读命令或写命令;
S20、所述响应计数模块102对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;其中,所述若干个命令中初始命令的响应延时值为所述初始命令的延时值;
S30、所述运算模块103对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值;
S40、所述外围总线从模块20根据所述第二命令延时接口1013读取每个命令的延时值。
本发明提供的总线传输延时检测方法,通过请求计数模块101对总线发送的若干个命令中非初始命令的请求延时进行计数以得到非初始命令的请求延时值,并采用响应计数模块102对每个命令的响应延时进行计数以得到每个命令的响应延时值,同时采用运算模块103对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值,最后外围总线从模块20根据第二命令延时接口1013读取每个命令的延时值,进而可以检测出总线上每个主设备的命令的实际延时,同时还可以处理总线上多个主设备的命令的实际延时值,不仅提高了命令的延时计算的效率,而且提高了命令的延时计算的准确性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种总线传输延时检测模块,其特征在于,包括:
请求计数模块,用于对总线发送的若干个命令中每个命令的请求延时进行计数,以得到每个命令的请求延时值;其中,若干个命令中初始命令的请求延时值为0,每个命令为读命令或写命令;非初始命令的请求延时为总线传输的一个命令的请求至总线传输下一个命令的请求之间的间隔时间;
响应计数模块,用于对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;其中,所述初始命令的响应延时值为所述初始命令的延时值;初始命令的响应延时为初始命令的请求至初始命令的请求被响应之间的间隔时间,非初始命令的响应延时为非初始命令的前一个命令的请求被响应至非初始命令的请求被响应之间的间隔时间;
运算模块,用于对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值;每个命令的延时值为命令的请求至命令的请求被响应之间的时间间隔。
2.根据权利要求1所述的总线传输延时检测模块,其特征在于,还包括:命令请求检测接口;
其中,所述命令请求检测接口根据请求所述若干个命令的第一握手信号生成每个命令的第一有效信号,并将所述第一有效信号发送至所述请求计数模块中;其中,所述第一握手信号包括第一Valid信号和第一Ready信号;
所述请求计数模块在接收到所述若干个命令中第一命令的第一有效信号后,若所述第一命令为初始命令,所述请求计数模块对所述若干个命令中第二命令的请求延时进行计数;若所述第一命令为非初始命令,所述请求计数模块停止对所述第一命令的请求延时进行计数,并对所述第二命令的请求延时进行计数;其中,所述第一命令为所述第二命令的前一个命令。
3.根据权利要求2所述的总线传输延时检测模块,其特征在于,还包括:第一响应计数接口;
其中,若所述第一命令为初始命令,所述第一响应计数接口用于所述请求计数模块在接收到所述第一命令的第一有效信号后,触发所述响应计数模块对所述第一命令的响应延时进行计数。
4.根据权利要求1所述的总线传输延时检测模块,其特征在于,还包括:命令响应检测接口;
其中,所述命令响应检测接口根据响应所述若干个命令的第二握手信号生成每个命令的第二有效信号,并将所述第二有效信号发送至所述响应计数模块中;其中,所述第二握手信号包括第二Valid信号或第二Ready信号;
所述响应计数模块在接收到所述若干个命令中第三命令的第二有效信号后,停止对所述第三命令的响应延时进行计数,并对所述若干个命令中第四命令的响应延时进行计数;其中,所述第三命令为所述第四命令的前一个命令。
5.根据权利要求4所述的总线传输延时检测模块,其特征在于,还包括:第二响应计数接口;
其中,所述第二响应计数接口用于在所述响应计数模块停止对的一个命令进行计数后,将命令的响应延时值发送至所述运算模块中。
6.根据权利要求1所述的总线传输延时检测模块,其特征在于,还包括:FIFO模块;
其中,所述FIFO模块用于存储每个命令的请求延时值;
所述运算模块用于对所述FIFO模块发送的每个命令的请求延时值、所述响应计数模块发送的每个命令的响应延时值进行运算,以得到每个命令的延时值。
7.根据权利要求6所述的总线传输延时检测模块,其特征在于,还包括:第一请求计数接口和第二请求计数接口;
其中,所述第一请求计数接口用于将所述若干个命令中非初始命令的请求延时值发送至所述FIFO模块中进行存储;
所述第二请求计数接口用于将所述FIFO模块中的请求延时值发送至所述运算模块中,以实现所述运算模块对每个命令的请求延时值和响应延时值进行运算。
8.根据权利要求1所述的总线传输延时检测模块,其特征在于,还包括命令延时存储模块和第一命令延时接口;
其中,所述第一命令延时接口用于将每个命令的延时值发送至所述命令延时存储模块中;
所述命令延时存储模块用于存储每个命令的延时值。
9.根据权利要求1-8中任一项所述的总线传输延时检测模块,其特征在于,所述运算模块还用于每个命令的请求延时值和响应延时值进行运算,以得到每个命令的平均延时值。
10.一种总线传输延时检测电路,其特征在于,包括:外围总线从模块、第二命令延时接口以及至少一个权利要求1-9中任一项所述的总线传输延时检测模块;
其中,所述外围总线从模块用于根据所述第二命令延时接口读取每个命令的延时值。
11.根据权利要求10所述的总线传输延时检测电路,其特征在于,总线上一个主设备的若干个命令对应有一个总线传输延时检测模块进行延时检测,总线上主设备的数量与总线传输延时检测模块的数量相等,各总线传输延时检测模块采用依次交替的方式对相应的主设备中每个命令进行延时检测。
12.根据权利要求10所述的总线传输延时检测电路,其特征在于,所述电路还包括平均延时接口;
其中,所述外围总线从模块用于根据平均延时接口从所述运算模块中读取每个命令的平均延时值。
13.一种总线传输延时检测方法,其特征在于,应用于权利要求10所述的总线传输延时检测电路中,所述方法包括:
所述请求计数模块对总线发送的若干个命令中非初始命令的请求延时进行计数,以得到所述若干个命令中非初始命令的请求延时值;其中,每个命令为读命令或写命令;
所述响应计数模块对所述若干个命令中每个命令的响应延时进行计数,以得到每个命令的响应延时值;其中,所述若干个命令中初始命令的响应延时值为所述初始命令的延时值;
所述运算模块对每个命令的请求延时值和响应延时值进行运算,以得到每个命令的延时值;
所述外围总线从模块根据所述第二命令延时接口读取每个命令的延时值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311150090.8A CN116881065B (zh) | 2023-09-07 | 2023-09-07 | 总线传输延时检测模块、电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311150090.8A CN116881065B (zh) | 2023-09-07 | 2023-09-07 | 总线传输延时检测模块、电路及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116881065A true CN116881065A (zh) | 2023-10-13 |
CN116881065B CN116881065B (zh) | 2023-12-15 |
Family
ID=88263080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311150090.8A Active CN116881065B (zh) | 2023-09-07 | 2023-09-07 | 总线传输延时检测模块、电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881065B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU1815644C (ru) * | 1990-08-20 | 1993-05-15 | Уфимский авиационный институт им.Серго Орджоникидзе | Устройство дл контрол хода программы управл ющей вычислительной машины |
US5944840A (en) * | 1997-09-10 | 1999-08-31 | Bluewater Systems, Inc. | Continuous monitor for interrupt latency in real time systems |
JP2008059047A (ja) * | 2006-08-29 | 2008-03-13 | Oki Electric Ind Co Ltd | 情報処理システム及びこの制御方法 |
US20090106602A1 (en) * | 2007-10-17 | 2009-04-23 | Michael Piszczek | Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency |
US20130238941A1 (en) * | 2010-10-14 | 2013-09-12 | Fujitsu Limited | Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program |
CN105487953A (zh) * | 2015-11-23 | 2016-04-13 | 福州瑞芯微电子股份有限公司 | 一种总线性能分析方法和装置 |
CN106326045A (zh) * | 2015-06-30 | 2017-01-11 | 展讯通信(上海)有限公司 | 一种检测总线延时的方法 |
CN106708671A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种片上系统总线行为检测方法和装置 |
CN110704351A (zh) * | 2019-09-24 | 2020-01-17 | 山东华芯半导体有限公司 | 基于axi总线的主机设备数据传输扩展方法 |
CN111506461A (zh) * | 2019-01-14 | 2020-08-07 | 新岸线(北京)科技集团有限公司 | 一种基于总线、用于测试的反压模块及其实现方法 |
CN112559261A (zh) * | 2020-11-27 | 2021-03-26 | 中国船舶重工集团公司第七0九研究所 | 一种基于层次状态机的axi总线性能分析方法及装置 |
CN114330229A (zh) * | 2022-03-11 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种存储器的延时建模的方法、装置、设备及介质 |
CN116089343A (zh) * | 2023-02-24 | 2023-05-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的数据存储方法、装置、存储介质及设备 |
-
2023
- 2023-09-07 CN CN202311150090.8A patent/CN116881065B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU1815644C (ru) * | 1990-08-20 | 1993-05-15 | Уфимский авиационный институт им.Серго Орджоникидзе | Устройство дл контрол хода программы управл ющей вычислительной машины |
US5944840A (en) * | 1997-09-10 | 1999-08-31 | Bluewater Systems, Inc. | Continuous monitor for interrupt latency in real time systems |
JP2008059047A (ja) * | 2006-08-29 | 2008-03-13 | Oki Electric Ind Co Ltd | 情報処理システム及びこの制御方法 |
US20090106602A1 (en) * | 2007-10-17 | 2009-04-23 | Michael Piszczek | Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency |
US20130238941A1 (en) * | 2010-10-14 | 2013-09-12 | Fujitsu Limited | Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program |
CN106326045A (zh) * | 2015-06-30 | 2017-01-11 | 展讯通信(上海)有限公司 | 一种检测总线延时的方法 |
CN106708671A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种片上系统总线行为检测方法和装置 |
CN105487953A (zh) * | 2015-11-23 | 2016-04-13 | 福州瑞芯微电子股份有限公司 | 一种总线性能分析方法和装置 |
CN111506461A (zh) * | 2019-01-14 | 2020-08-07 | 新岸线(北京)科技集团有限公司 | 一种基于总线、用于测试的反压模块及其实现方法 |
CN110704351A (zh) * | 2019-09-24 | 2020-01-17 | 山东华芯半导体有限公司 | 基于axi总线的主机设备数据传输扩展方法 |
CN112559261A (zh) * | 2020-11-27 | 2021-03-26 | 中国船舶重工集团公司第七0九研究所 | 一种基于层次状态机的axi总线性能分析方法及装置 |
CN114330229A (zh) * | 2022-03-11 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种存储器的延时建模的方法、装置、设备及介质 |
CN116089343A (zh) * | 2023-02-24 | 2023-05-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的数据存储方法、装置、存储介质及设备 |
Non-Patent Citations (1)
Title |
---|
杨玉生;张春熹;李立京;: "IEEE-1394异步传输机制建模及性能分析", 北京航空航天大学学报, no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN116881065B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120042105A1 (en) | Bus arbitration apparatus | |
US8051222B2 (en) | Concatenating secure digital input output (SDIO) interface | |
JP4063529B2 (ja) | バスシステムおよびリトライ方法 | |
CN113468097B (zh) | 基于片上系统的数据交换方法 | |
US7124232B2 (en) | Bus connection circuit and bus connection system having plural request queues, a bus interface portion outputting request signals, an arbiter performing arbitration of plural requests and a bus interface portion outputting a request signal indicating allocation of pre-fetch buffers corresponding to arbitrated requests | |
US20140333779A1 (en) | Apparatus for distributing bus traffic of multiple camera inputs of automotive system on chip and automotive system on chip using the same | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN112765082A (zh) | 多主机仲裁方法、装置和可读存储介质 | |
CN116881065B (zh) | 总线传输延时检测模块、电路及方法 | |
CN112749057A (zh) | 用于读事务的总线监视器 | |
KR100288036B1 (ko) | 정보처리장치용 프로세서 | |
CN113032305B (zh) | 一种接口中断测量方法及装置 | |
US8510482B2 (en) | Data processing system having peripheral-paced DMA transfer and method therefor | |
CN109428771B (zh) | 一种高速外围组件互联报文性能检测方法和装置 | |
EP0378422A2 (en) | Look ahead bus transfer request | |
CN110413461A (zh) | 测量加速卡与主机之间传输延时的系统、方法及加速卡 | |
CN111177048A (zh) | 一种ahb总线的设备及其进行数据流传输的方法 | |
US10983927B2 (en) | Electronic device for recovering from buffer overrun in a bus system | |
JP4152387B2 (ja) | バスシステム | |
JP2000276437A (ja) | Dma制御装置 | |
JP6822670B2 (ja) | コンピュータ装置、データ転送制御装置、及び方法 | |
US7644201B2 (en) | Method and system for performance enhancement via transaction verification using a counter value in a polled data storage environment | |
JP2992621B2 (ja) | ロック転送方式 | |
JPH10307763A (ja) | バス監視装置 | |
CN118605692A (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 |