CN106708671A - 一种片上系统总线行为检测方法和装置 - Google Patents
一种片上系统总线行为检测方法和装置 Download PDFInfo
- Publication number
- CN106708671A CN106708671A CN201510793469.XA CN201510793469A CN106708671A CN 106708671 A CN106708671 A CN 106708671A CN 201510793469 A CN201510793469 A CN 201510793469A CN 106708671 A CN106708671 A CN 106708671A
- Authority
- CN
- China
- Prior art keywords
- bus
- data
- axi
- signal
- ace
- 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.)
- Withdrawn
Links
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
-
- 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
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)
- Debugging And Monitoring (AREA)
- Bus Control (AREA)
Abstract
本发明实施例公开了一种片上系统(SoC)总线行为检测方法,包括:接收SoC总线信号,所述SoC总线信号包括SoC高级可扩展接口(AXI)总线信号;基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线的通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线的通道数据包括至少以下一种数据:所述AXI总线的写数据通道传输的数据、所述AXI总线的读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。本发明实施例还公开了一种SoC总线行为检测装置。
Description
技术领域
本发明涉及片上系统(System on Chip,SoC)领域,尤其涉及一种SoC总线行为检测方法和装置。
背景技术
当前SoC芯片运行速度越来越快,其处理器的主频已经达到2GHz以上,因此单靠测试机台无法捕捉到瞬间信号,更不可能深入到芯片内部捕捉总线信号,这就需要一个监控模块嵌入到芯片内部实时捕捉总线信号。
然而,现有的监控模块如SonicsMT和FlexNoC监控模块中,只能对高级可扩展接口(Advanced eXtensible Interface,AXI)总线的某些信号进行抓取,具体地说,现有的监控模块只能对AXI总线地址和命令进行抓取,而无法对AXI总线数据进行抓取;总之,现有的监控模块功能较为单一,无法满足对SoC芯片进行调试的多样化需求。
发明内容
为解决上述技术问题,本发明实施例期望提供一种SoC总线行为检测方法和装置,能够满足SoC总线调试的多样化需求。
本发明的技术方案是这样实现的:
本发明实施例提供了一种片上系统SoC总线行为检测方法,包括:
接收SoC总线信号,所述SoC总线信号包括SoC高级可扩展接口AXI总线信号;
基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。
上述方案中,所述抓取AXI总线通道数据,包括:在AXI总线信号中写地址通道(Write address channel,AW)传输的信号满足预设的第一触发条件,或AXI总线信号中读地址通道(Read address channel,AR)传输的信号满足预设的第二触发条件时,抓取AXI总线通道数据。
上述方案中,所抓取的AXI总线通道数据为AXI总线信号中使能信号有效的各个通道的数据。
上述方案中,所述方法还包括:设置K组寄存器,每组寄存器用于存储总线传输参数的一次统计结果,K为大于1的整数;
在对AXI总线数据传输时总线传输参数进行统计时,在L组寄存器被写入统计结果时,读取所述L组寄存器中的统计结果,L为小于K的整数。
上述方案中,进行AXI总线数据传输时每次统计的总线传输的平均延时的计算公式为:
T=total_delay/n
其中,T表示对应一次统计的总线传输的平均延时,Total_delay表示对应的统计时间内各个Burst传输所耗费的时间之和,n表示对应的统计时间内所发生的Burst传输的个数;
进行AXI总线数据传输时每次统计的总线传输所占有的平均带宽B的计算公式为:
B=total_byte/total_cycle
其中,B表示对应的一次统计的总线传输所占有的平均带宽,total_byte表示对应的统计时间内各个Burst传输所传输的数据量的和,total_cycle表示对应的统计时间所经历的时钟周期数。
上述方案中,所述方法还包括:接收AXI总线信号对应的时间戳信息。
上述方案中,所述SoC总线信号还包括:AXI一致性扩展(AXI CoherencyExtensions,ACE)总线信号;
在接收SoC总线信号之后,所述方法还包括:基于接收的ACE总线信号抓取ACE总线通道数据。
上述方案中,所述抓取ACE总线通道数据包括:在ACE总线信号AC通道传输的信号满足预设的第三触发条件时,抓取ACE总线通道数据。
上述方案中,所抓取的ACE总线通道数据为ACE总线信号中使能信号有效的各个通道的数据。
上述方案中,所述方法还包括:抓取ACE总线信号对应的时间戳信息。
本发明实施例还提供了一种SoC总线行为检测装置,包括:接收模块和检测模块;其中,
接收模块,用于接收SoC总线信号,所述SoC总线信号包括AXI总线信号;
检测模块,用于基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。
上述方案中,所述检测模块,具体用于在AXI总线信号中AW通道传输的信号满足预设的第一触发条件,或AXI总线信号中AR通道传输的信号满足预设的第二触发条件时,抓取AXI总线通道数据。
上述方案中,所抓取的AXI总线通道数据为AXI总线信号中使能信号有效的各个通道的数据。
上述方案中,所述检测模块还包括K组寄存器,每组寄存器用于存储总线传输参数的一次统计结果,K为大于1的整数;
在对AXI总线数据传输时总线传输参数进行统计时,在L组寄存器被写入统计结果时,读取所述L组寄存器中的统计结果,L为小于K的整数。
上述方案中,所述接收模块,还用于接收ACE总线信号;
在接收SoC总线信号之后,所述方法还包括:基于接收的ACE总线信号抓取ACE总线通道数据。
上述方案中,所述检测模块,具体用于在ACE总线信号AC通道传输的信号满足预设的第三触发条件时,抓取ACE总线通道数据。
上述方案中,所抓取的ACE总线通道数据为ACE总线信号中使能信号有效的各个通道的数据。
本发明实施例提供的一种SoC总线行为检测方法和装置,接收SoC总线信号,所述SoC总线信号包括AXI总线信号;基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。如此,本发明实施例支持对AXI总线数据的抓取和AXI总线数据的参数统计,能够满足SoC总线调试的多样化需求。
附图说明
图1为本发明SoC总线行为检测方法的第一实施例的流程图;
图2为本发明SoC总线行为检测方法的第一实施例中抓取AXI总线通道数据的过程的示意图;
图3为本发明SoC总线行为检测方法的第一实施例中统计一次总线传输参数的时序示意图;
图4为本发明SoC总线行为检测方法的第一实施例中统计总线传输参数的过程的示意图;
图5为本发明SoC总线行为检测方法的第一实施例中进行连续统计的时序示意图;
图6为本发明SoC总线行为检测方法的第一实施例中抓取ACE总线通道数据的过程的示意图;
图7为本发明SoC总线行为检测方法的第二实施例的应用场景的示意图;
图8为本发明SoC总线行为检测方法的第二实施例中总线数据抓取的流程图;
图9为本发明SoC总线行为检测方法的第二实施例中总线传输参数的统计的流程图;
图10为本发明实施例SoC总线行为检测装置的第一组成结构示意图;
图11为本发明实施例SoC总线行为检测装置的第二组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明SoC总线行为检测方法的第一实施例的流程图,如图1所示,该方法包括:
步骤100:接收SoC总线信号,SoC总线信号包括AXI总线信号。
这里,AXI总线信号通常包括以下至少一个通道的信号:AR通道信号、AW通道信号、读数据通道(Read data channel,R)信号、写数据通道(Write datachannel,W)信号和写响应通道(Write response channel,B)信号。
进一步地,还可以接收AXI总线信号对应的时间戳(timestamp)信息,从而可以准确地获知总线握手的时刻以及响应握手的时刻。
本步骤中,为了改善AXI总线信号的各个通道信号之间的时序,可以在接收AXI总线信号之前,对AXI总线信号的各个通道信号之间的时序进行调整,例如,采用基本逻辑单位slice对AXI总线信号的各个通道信号之间的时序进行调整。
本步骤中,SoC总线信号还可以包括AXI一致性扩展(AXI CoherencyExtensions,ACE)总线信号;这里,ACE总线信号通常包括以下至少一个通道的信号:AC通道(snoop address channel)信号、CR通道(snoop responsechannel)信号、CD通道(snoop data channel)信号。
进一步地,还可以接收ACE总线信号对应的时间戳信息,从而可以准确地获知总线握手的时刻以及响应握手的时刻。
本步骤中,为了改善ACE总线信号的各个通道信号之间的时序,可以在接收ACE总线信号之前,对ACE总线信号的各个通道信号之间的时序进行调整,例如,采用基本逻辑单位slice对ACE总线信号的各个通道信号之间的时序进行调整。
步骤101:基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。
具体地,所述抓取AXI总线通道数据包括:接收第一数据抓取信号;在第一数据抓取信号有效时,对接收的AXI总线各个通道的数据进行抓取,在第一数据抓取信号无效时,停止对接收的AXI总线各个通道的数据的抓取流程。这里,第一数据抓取信号的有效性可以预先设置,例如,第一数据抓取信号为高电平信号或低电平信号,当第一数据抓取信号为高电平信号时,表明第一数据抓取信号有效;当第一数据抓取信号为低电平信号时,表明第一数据抓取信号无效。
本步骤中,所述抓取AXI总线通道数据包括:在AXI总线信号中AW通道传输的信号满足预设的第一触发条件,或AXI总线信号中AR通道传输的信号满足预设的第二触发条件时,抓取AXI总线通道数据;在AXI总线信号中AW通道传输的信号不满足预设的第一触发条件,且AXI总线信号中AR通道传输的信号不满足预设的第二触发条件时,不抓取AXI总线通道数据。
这里,预设的第一触发条件可以根据以下至少一个要素设置:AW通道传输的AWID信号、AW通道传输的AWADDR信号、AW通道传输的AWLEN信号、AW通道传输的AWSIZE信号、AW通道传输的AWBURST信号;预设的第二触发条件可以根据以下至少一个要素设置:AR通道传输的ARID信号、AR通道传输的ARADDR信号、AR通道传输的ARLEN信号、AR通道传输的ARSIZE信号、AR通道传输的ARBURST信号。
本步骤中,所抓取的AXI总线通道数据为AXI总线信号中使能信号有效的各个通道的数据。这里,与AXI总线信号中每个通道信号对应的使能信号的有效性可以预先设置。
如此,通过合理地设置第一触发条件、第二触发条件和使能信号的有效性,可以灵活地抓取AXI总线通道数据,降低抓取的AXI总线通道数据的数据量。
示例性地,下面通过一个具体例子对抓取AXI总线通道数据的过程进行说明。
AXI协议支持Outstanding传输访问,即能够发出多个未完成的事务;AXI协议可以利用ID标记每个Burst传输,因此在本发明第一实施例中设置两个寄存器组id_reg及id_cnt,其中,寄存器组id_reg用于记录每个Burst传输的ID号,id_cnt用于记录相同ID号的Burst传输到达的先后顺序的索引,这里,若存在相同的ID号的多个Burst传输,将第i1个到达的Burst传输的先后顺序的索引记为i1,i1为自然数。
图2为本发明SoC总线行为检测方法的第一实施例中抓取AXI总线通道数据的过程的示意图,如图2所示,gbal_id_reg表示按照预先设置的查询顺序排列的Burst传输的查询顺序,预先设置的查询顺序为图2中的箭头顺序(由上到下);寄存器组id_reg由多个存储单元(slot)组成,每个slot用于存储一个ID号,寄存器组id_cnt由多个存储单元组成,每个slot用于存储一个索引的值。
图2描述了从T0时刻到T4时刻AXI总线通道数据的抓取过程,具体说明如下:
在T0时刻,第一数据抓取信号由无效变为有效,然而,此时还存在一个ID为0的Burst传输没有完成。
在T1时刻,接收到一个Burst传输的响应,在接收到的Burst传输的响应与T0时刻未完成的Burst传输匹配时,表示T0时刻未完成的ID为0的Burst传输已经在T1时刻完成,此时,在寄存器组id_reg和寄存器组id_cnt中,将与T0时刻未完成的ID为0的Burst传输相对应的slot无效,图2中,将无效的slot存储的数据标记为X。
在T2时刻,针对新的Burst传输,在寄存器组id_reg和寄存器组id_cnt中,查找有效的slot,搜索出满足预设的第一触发条件或第二触发条件的Burst传输对应的slot,将该slot标记为“已匹配”;将不满足预设的第一触发条件且不满足预设的第二触发条件的Burst传输对应的slot标记为“不匹配”。这里,对于“不匹配”的slot,不需要抓取对应的Burst传输数据。图2中,标记为“已匹配”的slot对应T2时刻表格的第二行,标记为“不匹配”的slot对应T2时刻表格的第三行至第五行。
在T2时刻,对于写数据操作,如果写ID标记(WID)与标记为“已匹配”的slot中存储的ID相同,且对应的标记为“已匹配”的slot存储的索引的值最小,则认为WID与对应的标记为“已匹配”的slot中存储的ID匹配,此时将写数据(WDATA)、写选通(WSTRB)、写最后一个(WLAST)和写ID标记(WID)全部抓取,并将抓取后的数据发送到FIFO中。
在T2时刻,对于读数据操作,如果读ID标记(RID)与标记为“已匹配”的slot中存储的ID相同,且对应的标记为“已匹配”的slot存储的索引的值最小,则认为RID与对应的标记为“已匹配”的slot中存储的ID匹配,此时将读数据(RDATA)、读响应(RRESP)、RID及读最后一个(RLAST)全部抓取,并将抓取后的数据发送到FIFO中。
在T3时刻,对于写数据操作,在响应ID(BID)等于0时,如果BID与标记为“已匹配”的slot中存储的ID相同,且对应的标记为“已匹配”的slot存储的索引的值最小,则认为BID与对应的标记为“已匹配”的slot中存储的ID匹配,此时标记为“已匹配”的slot对应的Burst传输已经完成,因此将T3时刻Burst传输已经完成的slot标记为无效,该无效的slot对应图2中T3时刻表格的第二行;然后,在寄存器组id_reg和寄存器组id_cnt中,将其余ID等于0的slot对应的索引值均减1,并将写响应(BRESP)、BID发送到FIFO中。
在T3时刻,对于读数据操作,在RID等于0且RLAST有效的情况下,如果RID与标记为“已匹配”的slot中存储的ID相同,且对应的标记为“已匹配”的slot存储的索引的值最小,则认为标记为“已匹配”的slot对应的Burst传输已经完成,因此将T3时刻Burst传输已经完成的slot标记为无效;然后,在寄存器组id_reg和寄存器组id_cnt中,将其余ID等于0的slot对应的索引值均减1,并将RLAST、RDATA和RRESP发送到FIFO中。
在T4时刻,对于写数据操作,在BID等于0时,如果BID与标记为“不匹配”的slot中存储的ID相同,且对应的标记为“不匹配”的slot存储的索引的值最小,则认为BID与对应的标记为“不匹配”的slot中存储的ID匹配,此时标记为“不匹配”的slot对应的Burst传输已经完成,仅将T4时刻Burst传输已经完成的slot标记为无效,而不进行数据的抓取和发送,这时因为Burst传输并不满足预设的第一触发条件和第二触发条件。
在T4时刻,对于读数据操作,在RID等于0且RLAST有效的情况下,如果RID与标记为“不匹配”的slot中存储的ID相同,且对应的标记为“不匹配”的slot存储的索引的值最小,则认为标记为“不匹配”的slot对应的Burst传输已经完成,此时仅将T4时刻Burst传输已经完成的slot标记为无效,该标记为无效的slot对应图2中T4时刻表格的第三行;在T4时刻不进行数据的抓取,这是因为Burst传输并不满足预设的第一触发条件和第二触发条件。
本步骤中,进行AXI总线数据传输时通常使用Burst传输机制进行数据传输,Burst传输机制包括但不限于递增猝发、回卷猝发。
示例性地,进行AXI总线数据传输时每次统计的总线传输的平均延时可以根据以下公式计算:
T=total_delay/n
其中,T表示对应一次统计的总线传输的平均延时,Total_delay表示对应的统计时间内各个Burst传输所耗费的时间之和,n表示对应的统计时间内所发生的Burst传输的个数;具体地,Total_delay=T1+T2+…+Tn,T1至Tn分别表示对应的统计时间内第1个Burst传输至第n个Burst传输所耗费的时间。
进行AXI总线数据传输时每次统计的总线传输所占有的平均带宽可以根据以下公式计算:
B=total_byte/total_cycle
其中,B表示对应的一次统计的总线传输所占有的平均带宽,total_byte表示对应的统计时间内各个Burst传输所传输的数据量的和,单位为位,total_cycle表示对应的统计时间所经历的时钟周期数,total_cycle为自然数;具体地,total_byte的计算公式为:Total_byte=(L1+L2+…+Ln)*8,其中,L1至Ln分别表示对应的统计时间内第1个Burst传输至第n个Burst传输所传输的数据量,单位为字节。
图3为本发明SoC总线行为检测方法的第一实施例中统计一次总线传输参数的时序示意图,如图3所示,ACLK表示全局时钟信号,AWVALID表示写地址有效,AWREADY表示写地址准备,AWADDR表示写地址,AWSIZE表示一次写传输中一拍数据的最大字节数,AWLEN指示一次写传输有多少拍数据,BVALID表示写响应有效,BREADY表示响应准备,BRESP表示写响应;图3中示例性的说明了T1至Tn的含义。
进一步地,所述对进行AXI总线数据传输时的总线传输参数进行至少一次统计包括:接收统计触发信号;在统计触发信号有效时,对进行AXI总线数据传输时总线传输参数依次进行至少一次统计,在统计触发信号无效时,停止对进行AXI总线数据传输时总线传输参数进行统计。这里,统计触发信号的有效性可以预先设置,例如,统计触发信号为高电平信号或低电平信号,当统计触发信号为高电平信号时,表明统计触发信号有效;否则,当统计触发信号为低电平信号时,表明统计触发信号无效。
具体地,可以采用如下两种统计模式来确定每次统计的终止时间点。
第一种统计模式:对进行AXI总线数据传输时的总线传输参数进行第1次统计的开始时间点为统计触发信号由无效变为有效的时刻,终止时间点为以下两个时间点中的较早的时间点:统计触发信号由有效变为无效的时刻、第1次统计所经历的时钟周期数超过预设的时钟周期数Fixed_cycle的时刻。
当j大于1时,对进行AXI总线数据传输时总线传输参数进行第j次统计的开始时间点为第j-1次统计的终止时间点或第j-1次统计的终止时间点之后总线握手首次成功的时刻,对进行AXI总线数据传输时总线传输参数进行第j次统计的终止时间点为以下两个时间点中的较早的时间点:统计触发信号由有效变为无效的时刻、第j次统计所经历的时钟周期数超过预设的时钟周期数Fixed_cycle的时刻。
第二种统计模式:对进行AXI总线数据传输时总线传输参数进行第1次统计的开始时间点为统计触发信号由无效变为有效的时刻,终止时间点为以下两个时间点中的较早的时间点:统计触发信号由有效变为无效的时刻、进行第1次统计时各个Burst传输所传输的数据量的和大于预设的数据量Fixed byte的时刻。
当j大于1时,对进行AXI总线数据传输时总线传输参数进行第j次统计的开始时间点为第j-1次统计的终止时间点或第j-1次统计的终止时间点之后总线握手首次成功的时刻,对进行AXI总线数据传输时总线传输参数进行第j次统计的终止时间点为以下两个时间点中的较早的时间点:统计触发信号由有效变为无效的时刻、进行第j次统计时各个Burst传输所传输的数据量的和大于预设的数据量Fixed byte的时刻。
这里,第一种统计模式可以称为规定时钟周期数的统计模式,第二种统计模式可以称为规定数据量的统计模式。
示例性地,下面通过一个具体例子对进行AXI总线数据传输时统计总线传输参数的过程进行说明。
由于AXI协议可以利用ID标记每个Burst传输,因此通过记录AXI总线上ID的变化,可以计算每个Burst传输的延时和他们花费的总延时。具体地,设置三个寄存器组gbal_ID_reg、ID_reg和ID_cnt,其中,寄存器组gbal_ID_reg用于记录整个统计时间内每个Burst传输的ID,寄存器组ID_reg用于记录统计触发信号有效的时间内每个Burst传输的ID,寄存器组ID_cnt用于记录相同ID号的Burst传输到达的先后顺序的索引,这里,若存在相同的ID号的多个Burst传输,将第i2个到达的Burst传输的先后顺序的索引记为i2,i2为自然数。
图4为本发明SoC总线行为检测方法的第一实施例中统计总线传输参数的过程的示意图,如图4所示,寄存器组gbal_ID_reg存储的ID号按照预先设置的查询顺序排列,预先设置的查询顺序为图4中的箭头顺序(由上到下);,寄存器组gbal_ID_reg由多个slot组成,每个slot用于存储一个ID号,寄存器组ID_reg由多个slot组成,每个slot用于存储一个ID号,寄存器组ID_cnt由多个slot组成,每个slot用于存储一个索引的值。寄存器组ID_reg和寄存器组ID_cnt的深度为5。图4示例性地描述了从T0时刻到T4时刻统计总线传输参数的过程,具体说明如下:
在T0时刻,统计触发信号无效,还有两个Burst传输的响应没有返回,即图4中寄存器组gbal_ID_reg中ID为0的Burst传输响应没有返回;这里,寄存器组gbal_ID_reg中ID为X的slot为无效的slot,该无效的slot对应图4中T0时刻的第一行和第三行。在T0时刻,不记录没有返回响应的Burst传输的ID顺序,只记录没有返回响应的Burst传输的ID;在任意一个Burst传输的响应返回时,将对应的返回响应的Burst传输的RID/BID与寄存器组gbal_ID_reg中ID进行比较;在对应的返回响应的Burst传输的RID/BID与寄存器组gbal_ID_reg中的ID匹配时,将对应的slot无效,直至寄存器组gbal_ID_reg中所有的slot都无效。
在T1时刻,统计触发信号变为无效,新的Burst传输有效,针对新的Burst传输,在寄存器组ID_reg和寄存器组ID_cnt中,查找有效的slot,搜索出满足预设的第一触发条件或第二触发条件的Burst传输对应的slot,将该slot标记为“已匹配”,标记为“已匹配”的slot对应T1时刻表格的第二行。在T1时刻,将不满足预设的第一触发条件且不满足预设的第二触发条件的Burst传输对应的slot标记为“不匹配”。这里,对于“不匹配”的slot,不需要抓取对应的总线传输数据。
针对标记为“已匹配”的Burst传输,从新的Burst传输有效开始的时刻对时钟周期数进行计数。
需要说明的是,在T1时刻,当ID号为0的Burst传输的响应返回时,需要先在寄存器组ID_reg和寄存器组ID_cnt中,将与统计触发信号有效前寄存器组gbal_ID_reg中ID为0的Burst传输对应的slot无效,以避免统计触发信号有效前Burst传输对统计造成影响,这里,无效的slot对应图4中T1时刻表格的第三行。
在T2时刻,当ID号为0的Burst传输的响应返回时,在寄存器组ID_reg和寄存器组ID_cnt中,将与统计触发信号有效前寄存器组gbal_ID_reg中ID为0的Burst传输对应的slot无效,以避免统计触发信号有效前Burst传输对统计造成影响。从图4中可以看出,此时,统计触发信号有效前所有的Burst传输均已传输完成。
在T3时刻,新的Burst传输有效,针对新的Burst传输,在寄存器组ID_reg和寄存器组ID_cnt中,查找有效的slot,搜索出满足预设的第一触发条件或第二触发条件的Burst传输对应的slot,在T3时刻,将不满足预设的第一触发条件且不满足预设的第二触发条件的Burst传输对应的slot标记为“不匹配”。这里,对于“不匹配”的slot,不需要抓取对应的Burst传输数据;这里,“不匹配”的slot对应图4中T3时刻表格的第一行。
在T4时刻,ID为0的Burst传输的响应返回,由于统计触发信号有效前的Burst传输均已传输完成,此时,在寄存器组ID_reg和寄存器组ID_cnt中,查找ID为0且索引值为1的slot,将该slot无效,该slot对应图4中T4时刻表格的第二行,停止对时钟周期数的计数,得出完成对应的Burst传输所耗费的时间。在T4时刻,新的Burst传输出现,该Burst传输满足预设的第一触发条件或第二触发条件,将该Burst传输对应的slot标记为“已匹配”,重新针对该新的Burst传输进行时钟周期数的计数,这里,该标记为“已匹配”的slot对应图4中T4时刻表格的第三行。
进一步地,AXI总线可以连接多个主设备以及多个从设备;在一个主设备通过AXI总线读取一个从设备的数据,或者,一个主设备通过AXI总线向一个从设备写入数据时,可以根据预先配置的任意一个主设备的地址,来统计该主设备读写数据时的平均时延和所占有的平均带宽;同理,可以根据预先配置的任意一个从设备的地址,来统计从设备被读取数据/被写入数据时的平均时延和所占用的平均带宽;进一步地,可以根据预先配置的任意一个主设备和任意一个从设备的地址,来统计对应主设备读写对应从设备的数据时的平均时延和所占用的平均带宽。
优选地,还可以设置K组寄存器来存储统计结果,K为大于1的整数,每组寄存器用于存储总线传输参数的一次统计结果;在对AXI总线数据传输时的总线传输参数进行统计时,如果L组寄存器被写入统计结果,则利用外部设备将该L组寄存器的统计结果读取出去,L为小于K的整数;例如,在L组寄存器被写入统计结果之后,产生中断并向外部的CPU发出请求信息,请求将该L组寄存器的统计结果读取出去。这里,L和K的值可以根据实际应用场景进行设置,例如K取8,L取4。
需要说明的是,如果外部设备不能及时将该L组寄存器的统计结果读取出去,则在该L组寄存器的统计结果被新的统计结果覆盖时,产生写覆盖中断。
可以看出,对进行AXI总线数据传输时总线传输参数进行多次统计时,可以实现统计触发信号有效的持续时间内总线传输参数的连续统计,如此,可以绘制出总线传输参数随时间的变化波形图,有利于更准确的掌握总线行为。
图5为本发明SoC总线行为检测方法的第一实施例中进行连续统计的时序示意图,如图5所示,windows表示统计触发信号有效的持续时间,ACLK表示全局时钟信号,START表示统计触发信号,当START为高电平时,表示统计触发信号有效,当START为低电平时,表示统计触发信号无效;perf表示统计结果获取时序,P1至Pk分别表示统计触发信号有效的持续时间内获取的k个统计结果,k大于1;end_flag为高电平信号或低电平信号,当end_flag为低电平信号时,表示正在进行某一次统计,当end_flag变为高电平,end_flag拉起时,表示某一次统计终止。
进一步地,如果步骤100中SoC总线信号还包括ACE总线信号,则在本步骤中,还需要基于接收的ACE总线信号抓取ACE总线通道数据。
具体地,所述抓取ACE总线通道数据包括:接收第二数据抓取信号;在第二数据抓取信号有效时,对接收的ACE总线各个通道的数据进行抓取,在第二数据抓取信号无效时,停止对接收的ACE总线各个通道的数据的抓取流程。这里,第二数据抓取信号的有效性可以预先设置,例如,第二数据抓取信号为高电平信号或低电平信号,当第二数据抓取信号为高电平信号时,表明第二数据抓取信号有效;否则,当第二数据抓取信号为低电平信号时,表明第二数据抓取信号无效。
本步骤中,所述抓取ACE总线通道数据包括:在ACE总线信号AC通道传输的信号满足预设的第三触发条件时,抓取ACE总线通道数据;在ACE总线信号AC通道传输的信号不满足预设的第三触发条件时,不抓取ACE总线通道数据。
这里,预设的第三触发条件可以根据以下至少一个要素设置:AC通道传输的ACADDR信号、AC通道传输的ACSNOOP信号。
本步骤中,所抓取的ACE总线通道数据为ACE总线信号中使能信号有效的各个通道的数据。这里,与ACE总线信号中每个通道信号对应的使能信号的有效性可以预先设置。
如此,通过合理地设置第三触发条件和使能信号的有效性,可以灵活地抓取ACE总线通道数据,降低抓取的ACE总线通道数据的数据量。
示例性地,下面通过一个具体例子对抓取ACE总线通道数据的过程进行说明。
ACE总线协议不支持利用ID标记每个Burst传输,在本发明第一实施例中设置寄存器组cnt、cnt_cd、max_cnt、max_cnt_cd,其中,寄存器组cnt用于记录AC通道传输的先后顺序,寄存器组cnt包括多个slot,每个slot用于存储一个表示AC通道传输的先后顺序的索引值,在有多个AC通道传输的信号先后到达的情况下,索引值越小,则说明对应的AC通道传输的信号越先到达;寄存器组cnt_cd用于记录CD通道传输的先后顺序,寄存器组cnt包括多个slot,每个slot用于存储一个表示CD通道传输的先后顺序的索引值,在有多个CD通道传输的信号先后到达的情况下,索引值越小,则说明对应的CD通道传输的信号越先到达。通常,寄存器组cnt和寄存器组cnt_cd存储的索引值大于等于1的自然数。
图6为本发明SoC总线行为检测方法的第一实施例中抓取ACE总线通道数据的过程的示意图,如图6所示,寄存器组max_cnt包括至少一个slot,每个slot用于记录第二数据抓取信号有效前未传输完成的一个Burst传输对应的AC通道传输的先后顺序的索引值;寄存器组max_cnt_cd包括至少一个slot,每个slot用于记录第二数据抓取信号有效前未传输完成的一个Burst传输对应的CD通道传输的先后顺序的索引值。
图6示例性地描述了从T0时刻到T4时刻ACE总线通道数据的抓取过程,具体说明如下:
在T0时刻,第二数据抓取信号无效,CRRESP信号或CDLAST信号有效,此时直至寄存器组max_cnt和寄存器组max_cnt_cd中每个slot记录的索引值变为不断进行减1处理,直至寄存器组max_cnt和寄存器组max_cnt_cd中每个slot记录的索引值变为0,此时第二数据抓取信号有效前所有的Burst传输均已完成。
在T1时刻,第二数据抓取信号有效,如果ACE总线信号满足预设的第三触发条件,则将寄存器组cnt/寄存器组cnt_cd中对应的slot标记为“已匹配”,这里,标记为“已匹配”的slot对应图6中T1时刻表格的第二行和第四行,此时,将标记为“已匹配”的slot对应的AC通道传输的信号发送到FIFO中,AC通道传输的信号至少包括以下一种:ACVALID信号、ACREADY信号、ACADDR信号、ACSNOOP信号、ACPORT信号。
在T1时刻,如果AC通道传输的数据/CD通道传输的数据不满足预设的第三触发条件,则将寄存器组cnt/寄存器组cnt_cd中对应的slot标记为“不匹配”,这里,标记为“不匹配”的slot对应图6中T1时刻表格的第一行、第三行和第五行。
在T2时刻,CDLAST信号有效,此时将寄存器组cnt_cd中索引值为1的slot无效,并将寄存器组cnt_cd中记录的其余索引值全部减1,这里,该无效的slot在图6中用索引值X表示;在T2时刻,ACE总线信号满足预设的第三触发条件,则将寄存器组cnt/寄存器组cnt_cd中对应的slot标记为“已匹配”,此时,将标记为“已匹配”的slot对应的CD通道传输的信号发送到FIFO中,CD通道传输的信号至少包括以下一种:CDVALID信号、CDREADY信号、CDDATA信号、CDLAST信号。
在T3时刻,CRRESP信号有效,此时将寄存器组cnt中索引值为1的slot无效,并将寄存器组cnt中记录的其余索引值全部减1,里,该无效的slot在图6中用索引值X表示;在T3时刻,ACE总线信号满足预设的第三触发条件,则将寄存器组cnt/寄存器组cnt_cd中对应的slot标记为“已匹配”,此时,将标记为“已匹配”的slot对应的CR通道传输的信号发送到FIFO中,CR通道传输的信号至少包括以下一种:CRVALID信号、CRREADY信号、CRRESP信号。
在T4时刻,CRRESP信号和CDLAST信号有效,将寄存器组cnt中索引值为1的slot无效,将寄存器组cnt_cd中索引值为1的slot无效,并将寄存器组cnt_cd和寄存器组cnt中记录的其余索引值全部减1;在T4时刻ACE总线信号不满足预设的第三触发条件,则将寄存器组cnt/寄存器组cnt_cd中对应的slot标记为“不匹配”,此时,不会将抓取ACE总线通道数据。
本发明的SoC总线行为检测方法的第一实施例,首先可以对AXI总线数据进行抓取,与现有的只能对AXI总线地址和命令进行抓取的技术方案相比,可以更准确的获知总线行为;其次可以对ACE总线信号进行抓取,能够适用更多的应用场景;最后可以完成对AXI总线传输的相关参数的统计;如此,本发明的SoC总线行为检测方法的第一实施例可以支持多种功能,能够满足SoC总线调试的多样化需求。
第二实施例
为了能更加说明本发明的目的,在本发明第一实施例的基础上,进行进一步的举例说明。
图7为本发明SoC总线行为检测方法的第二实施例的应用场景的示意图,如图7所示,处理器700代表一个主设备,处理器700和从设备701之间通过AXI总线/ACE总线进行数据传输;检测仪702用于采用本发明对处理器和从设备之间的总线数据传输的行为进行检测,DDR存储器703用于存储检测仪得出的总线行为检测结果。检测仪702通过从接口连接AXI总线/ACE总线,用于监控AXI总线/ACE总线;检测仪702通过主接口连接DDR存储器703,检测仪702对AXI总线/ACE总线的监控属于非侵入式监控,因此不会干扰处理器和从设备之间的总线数据传输。
具体地,针对上述应用场景,分别对总线数据抓取和总线传输参数的统计的流程进行说明。
图8为本发明SoC总线行为检测方法的第二实施例中总线数据抓取的流程图,如图8所示,该流程包括:
步骤800:预先配置总线数据抓取的参数;配置第一数据抓取信号/第二数据抓取信号有效,跳至步骤801。
具体地,预先配置总线数据抓取的参数包括:设置触发条件,配置AXI总线/ACE总线各个通道的使能信号的有效性,设置AXI总线/ACE总线信号的时间戳抓取功能,配置AXI总线/ACE总线各个通道在DDR存储器中存储空间,配置AXI总线/ACE总线每个通道在DDR存储器中存储的粒度为1K;
进一步地,预先配置SoC总线行为检测的各种参数还包括:配置针对AXI总线/ACE总线至少一个通道的中断屏蔽,配置中断清除和抓取数据结束时的中断信号,抓取数据结束时的中断信号标记为drain_out,当drain_out拉高为高电平时,表示发出抓取数据结束时的中断信号。
当某一个通道配置有中断屏蔽时,忽略对应通道发出的中断信号。
步骤801:判断AXI总线/ACE总线的至少一个通道是否发出中断信号,如果是,则跳至步骤802;否则,跳至步骤804。
步骤802:判断发出中断信号的通道是否配置有中断屏蔽,如果是,则返回至步骤801;如果否,则跳至步骤803。
步骤803:将DDR中与发出中断信号的通道对应的数据读出,待数据读出后,清除中断,返回至步骤801。
本步骤中,所述将DDR中与发出中断信号的通道对应的数据读出包括:查询中断号,根据中断号判断中断信号来自哪个通道,之后,通知CPU配置相应的DMA读取方式,将对应通道的数据从DDR读取出来,将读取出的数据存储到外部存储器如USB中。
步骤804:判断是否结束总线数据抓取,如果不结束总线数据抓取,则返回至步骤801;如果结束总线数据抓取,则配置第一数据抓取信号/第二数据抓取信号无效,跳至步骤805。
这里,结束总线数据抓取的时机可以用户自己确定。
步骤805:检测仪将自身内部的残余数据排空,发出抓取数据结束时的中断信号,将DDR中与没有设置中断屏蔽的每个通道对应的数据读出,在数据读取完毕时,清除中断,结束流程。
具体地,所述将DDR中与没有设置中断屏蔽的每个通道对应的数据读出包括:基于没有设置中断屏蔽的各个通道,通知CPU配置相应的DMA读取方式,将对应通道的数据从DDR读取出来,将读取出的数据存储到外部存储器中。
需要说明的是,如果AXI总线/ACE总线各个通道均设置中断屏蔽,则在检测仪将自身内部的残余数据排空后,直接结束流程。
图9为本发明SoC总线行为检测方法的第二实施例中总线传输参数的统计的流程图,如图9所示,该流程包括:
步骤900:预先配置总线传输参数的统计参数;配置统计触发信号有效,跳至步骤901。
具体地,配置总线传输参数的统计参数包括:配置至少一个主设备的地址,用于统计对应主设备在总线数据传输时的平均时延和所占有的平均带宽;配置至少一个从设备的地址,用于统计对应从设备在总线数据传输时的平均时延和所占有的平均带宽;预先配置至少一个主设备的地址和至少一个从设备的地址,用于统计对应主设备到对应从设置之间的总线数据传输的平均时延和所占有的平均带宽;配置统计模式。
配置总线传输参数的统计参数还可以包括:配置针对至少一个通道的统计结果的中断屏蔽,配置中断清除和统计结束时的中断信号。
步骤901:判断是否收到CPU发出的读请求中断,如果有,则跳至步骤902,否则,跳至步骤904。
具体地,检测仪内部配置有八组统计寄存器,每次统计结束后会将统计结果发送到一个统计寄存器中,当得出四组统计结果时,发出读请求中断,请求CPU读取统计结果。
步骤902:根据需要读取的每组统计结果的类型,判断对应的统计结果是否设置有中断屏蔽,如果是,则返回至步骤901;如果否,则跳至步骤903。
步骤903:将统计结果读出,待数据读出后,清除中断,返回至步骤901。
步骤904:判断是否结束统计过程,如果不结束统计过程,则返回至步骤901;如果结束统计过程,则配置统计触发信号无效,跳至步骤905。
这里,结束统计过程的时机可以用户自己确定。
步骤905:发出统计结束时的中断信号,基于没有设置中断屏蔽的各个通道的统计结果,将剩余的统计结果读出,清除中断,结束流程,此时,可以针对统计结果进行分析。
需要说明的是,如果获取的AXI总线各个通道的统计结果均设置中断屏蔽,则在步骤904之后,直接结束流程。
第三实施例
针对本发明实施例的方法,本发明实施例还提供了一种SoC总线行为检测装置。
图10为本发明实施例SoC总线行为检测装置的第一组成结构示意图,如图10所示,该装置包括:接收模块1000和检测模块1001;其中,
接收模块1000,用于接收SoC总线信号,所述SoC总线信号包括AXI总线信号。
检测模块1001,用于基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。
具体地,所述检测模块1001,用于在AXI总线信号中AW通道传输的信号满足预设的第一触发条件,或AXI总线信号中AR通道传输的信号满足预设的第二触发条件时,抓取AXI总线通道数据。
这里,所抓取的AXI总线通道数据为AXI总线信号中使能信号有效的各个通道的数据。
进一步地,所述检测模块1001还包括K组寄存器,每组寄存器用于存储总线传输参数的一次统计结果,K为大于1的整数。
在对AXI总线数据传输时总线传输参数进行统计时,在L组寄存器被写入统计结果时,读取所述L组寄存器中的统计结果,L为小于K的整数。
进一步地,所述接收模块1000,还用于接收ACE总线信号。
在接收SoC总线信号之后,所述方法还包括:基于接收的ACE总线信号抓取ACE总线通道数据。
具体地,所述检测模块1001,用于在ACE总线信号AC通道传输的信号满足预设的第三触发条件时,抓取ACE总线通道数据。
这里,所抓取的ACE总线通道数据为ACE总线信号中使能信号有效的各个通道的数据。
在实际应用中,所述接收模块1000和检测模块1001均可由位于终端设备中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro ProcessorUnit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
第四实施例
为了能更加体现本发明的目的,在本发明第三实施例的基础上,进行进一步的举例说明。
图11为本发明实施例SoC总线行为检测装置的第二组成结构示意图,如图11所示,该装置包括:第一时序调整单元1100、第二时序调整单元1101、AXI总线检测单元1102、ACE总线检测单元1103、统计单元1104、配置单元1105、第一清除单元1106、第二清除单元1107、数据传输单元1108和第三时序调整单元1109;其中,
配置单元1105,用于配置总线数据抓取的参数和总线传输参数的统计参数,将配置完成的总线数据抓取的参数发送至AXI总线检测单元/ACE总线检测单元,将配置完成的总线传输参数的统计参数发送至统计单元。这里,配置总线数据抓取的参数和总线传输参数的统计参数的过程已经在本发明第二实施例中作出详细说明,这里不再赘述。
进一步地,配置单元1105可以接收来自外部设备的配置信息,并基于接收到的配置信息来配置相关参数;配置单元1105与外部设备通过APB((AdvancedHigh performance Bus)接口进行交互。
第一时序调整单元1100,用于接收AXI总线各个通道的信号,对接收的各个通道的信号进行时序调整,将时序调整的各个通道的信号分别发送至AXI总线检测单元、第一清除单元、第二清除单元和统计单元;这里,第一时序调整单元1100可以采用基本逻辑单位slice实现;图1中,AW、AR、W、R、B分别表示AXI总线AW通道、AR通道、W通道、R通道和B通道。
第二时序调整单元1101,用于接收ACE总线各个通道的信号,对接收的各个通道的信号进行时序调整,将时序调整的各个通道的信号分别发送至ACE总线检测单元、第一清除单元和统计单元;这里,第二时序调整单元1100可以采用基本逻辑单位slice实现;图1中,AC、CR、CD分别表示AXI总线AC通道、CR通道和CD通道。
第一清除单元1106,用于实时监控AXI总线行为和ACE总线行为,接收第一数据抓取信号和第二数据抓取信号,在第一数据抓取信号有效时,对第一数据抓取信号有效前AXI总线检测单元接收的数据进行清除;在第二数据抓取信号有效时,对第二数据抓取信号有效前ACE总线检测单元接收的数据进行清除;如此,可以防止对应数据抓取信号有效前接收的总线数据对总线数据抓取造成影响。
第二清除单元1107,用于实时监控AXI总线行为,接收统计触发信号,在统计触发信号有效时,对统计触发信号有效前统计单元接收的数据进行清除;如此,可以防止统计触发信号有效前统计单元接收的数据对后续的总线传输参数的统计过程造成影响。
AXI总线检测单元1102,用于在第一数据抓取信号有效时,对接收的AXI总线各个通道的数据进行抓取,将抓取的各个通道的数据发送至数据传输单元。这里,对AXI总线各个通道的数据进行抓取的过程已经在本发明第一实施例作出说明,这里不再重复。
ACE总线检测单元1103,用于在第二数据抓取信号有效时,对接收的ACE总线各个通道的数据进行抓取,将抓取的各个通道的数据发送至数据传输单元。这里,对ACE总线各个通道的数据进行抓取的过程已经在本发明第一实施例作出说明,这里不再重复。
统计单元1104,用于在统计触发信号有效时,对进行AXI总线数据传输时总线传输参数依次进行至少一次统计,将得出的统计结果通过配置单元向外发送。这里,对总线传输参数的统计过程已经在本发明第一实施例作出说明,这里不再重复。
数据传输单元1108,用于对接收的数据进行打包处理,并将打包处理后的数据发送至第三时序调整单元。
具体地,数据传输单元1108包括先入先出队列(First Input First Output,FIFO)子单元和数据处理子单元;其中,FIFO子单元用于接收来自AXI总线检测单元1102和ACE总线检测单元1103的数据,在接收的至少一个通道的数据达到对应的通道阈值时,启动写操作,将达到通道阈值的数据发送至数据处理子单元;示例性地,当FIFO深度为16时,AW通道、AR通道和AC通道的通道阈值为4,W通道、R通道、B通道、CD通道和CR通道的阈值为8。这里,如果FIFO子单元中,如果多个通道的数据同时达到对应的通道阈值,则采用预设的轮询顺序轮询将对应的多个通道的数据发送至数据处理子单元。
数据处理子单元,用于将接收的各个通达的数据按照约定的数据结构组装后输出。这里,为了降低开发难道和验证复杂程度,SoC总线行为检测装置向外输出数据的数据宽度规定为64位,这样,数据处理子单元向外输出的数据的数据宽度需要是恒定值。也就是说,数据处理子单元要将接收的数据组合成为固定长度的数据并向外输出;特别地,当AXI总线各个通道的数据抓取过程结束时,如果FIFO子单元中的至少一个通道的数据没有达到对应的通道阈值,这时,针对对应通道的数据添入冗余数据,使之达到对应的通道阈值,这样有利于数据处理子单元的数据处理过程。
为了高效地传输数据,在该数据处理子单元占用中设置了两个状态机,一个是地址状态机,用于地址的产生和拆分(比如跨4K传输时,需要将一个完整的数据结构打断),另一个是地址状态机,用于数据的合并和拆分,示例性地,AXI总线通道数据的数据宽度是32位时,数据处理子单元就需要将两个AXI总线通道数据合并后向外输出;在AXI总线的通道数据的数据宽度时32位时,数据处理子单元将一个AXI总线的通道数据拆分为两组数据向外输出;如此,数据处理子单元通过数据的合并和拆分,可以大大提高数据的传输效率。
第三时序调整单元1109,用于对接收的数据进行时序调整,并将经时序调整后的数据发送至外部的存储单元中;这里,第三时序调整单元1109可以采用基本逻辑单位slice实现。
进一步地,为了解决抓取的数据量大,外部的存储单元无法存取的问题,在外部的存储单元中为每个通道的数据设置一块受限的地址空间,地址空间粒度为1K,在这块地址空间上进行写操作,当抓取的一个通道的数据的数据量达到对应通道的地址空间的一半时,发出中断,通知CPU将抓取的对应通道的数据读取。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (17)
1.一种片上系统SoC总线行为检测方法,其特征在于,所述方法包括:
接收SoC总线信号,所述SoC总线信号包括SoC高级可扩展接口AXI总线信号;
基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。
2.根据权利要求1所述的方法,其特征在于,所述抓取AXI总线通道数据,包括:在AXI总线信号中AW通道传输的信号满足预设的第一触发条件,或AXI总线信号中AR通道传输的信号满足预设的第二触发条件时,抓取AXI总线通道数据。
3.根据权利要求1或2所述的方法,其特征在于,所抓取的AXI总线通道数据为AXI总线信号中使能信号有效的各个通道的数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置K组寄存器,每组寄存器用于存储总线传输参数的一次统计结果,K为大于1的整数;
在对AXI总线数据传输时总线传输参数进行统计时,在L组寄存器被写入统计结果时,读取所述L组寄存器中的统计结果,L为小于K的整数。
5.根据权利要求1或4所述的方法,其特征在于,进行AXI总线数据传输时每次统计的总线传输的平均延时的计算公式为:
T=total_delay/n
其中,T表示对应一次统计的总线传输的平均延时,Total_delay表示对应的统计时间内各个Burst传输所耗费的时间之和,n表示对应的统计时间内所发生的Burst传输的个数;
进行AXI总线数据传输时每次统计的总线传输所占有的平均带宽B的计算公式为:
B=total_byte/total_cycle
其中,B表示对应的一次统计的总线传输所占有的平均带宽,total_byte表示对应的统计时间内各个Burst传输所传输的数据量的和,total_cycle表示对应的统计时间所经历的时钟周期数。
6.根据权利要求1、2或4所述的方法,其特征在于,所述方法还包括:接收AXI总线信号对应的时间戳信息。
7.根据权利要求1所述的方法,其特征在于,所述SoC总线信号还包括:AXI一致性扩展ACE总线信号;
在接收SoC总线信号之后,所述方法还包括:基于接收的ACE总线信号抓取ACE总线通道数据。
8.根据权利要求7所述的方法,其特征在于,所述抓取ACE总线通道数据包括:在ACE总线信号AC通道传输的信号满足预设的第三触发条件时,抓取ACE总线通道数据。
9.根据权利要求7或8所述的方法,其特征在于,所抓取的ACE总线通道数据为ACE总线信号中使能信号有效的各个通道的数据。
10.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:抓取ACE总线信号对应的时间戳信息。
11.一种SoC总线行为检测装置,其特征在于,所述装置包括:接收模块和检测模块;其中,
接收模块,用于接收SoC总线信号,所述SoC总线信号包括AXI总线信号;
检测模块,用于基于接收的AXI总线信号进行至少以下一种操作:抓取AXI总线通道数据、对进行AXI总线数据传输时总线传输参数进行至少一次统计;所抓取的AXI总线通道数据包括至少以下一种数据:所述AXI总线写数据通道传输的数据、所述AXI总线读数据通道传输的数据;每次统计的总线传输参数包括:对应的统计时间内总线传输的平均延时或所占有的平均带宽。
12.根据权利要求11所述的方法,其特征在于,所述检测模块,具体用于在AXI总线信号中AW通道传输的信号满足预设的第一触发条件,或AXI总线信号中AR通道传输的信号满足预设的第二触发条件时,抓取AXI总线通道数据。
13.根据权利要求11或12所述的方法,其特征在于,所抓取的AXI总线通道数据为AXI总线信号中使能信号有效的各个通道的数据。
14.根据权利要求10所述的装置,其特征在于,所述检测模块还包括K组寄存器,每组寄存器用于存储总线传输参数的一次统计结果,K为大于1的整数;
在对AXI总线数据传输时总线传输参数进行统计时,在L组寄存器被写入统计结果时,读取所述L组寄存器中的统计结果,L为小于K的整数。
15.根据权利要求10所述的装置,其特征在于,所述接收模块,还用于接收ACE总线信号;
在接收SoC总线信号之后,所述方法还包括:基于接收的ACE总线信号抓取ACE总线通道数据。
16.根据权利要求15所述的装置,其特征在于,所述检测模块,具体用于在ACE总线信号AC通道传输的信号满足预设的第三触发条件时,抓取ACE总线通道数据。
17.根据权利要求15或16所述的装置,其特征在于,所抓取的ACE总线通道数据为ACE总线信号中使能信号有效的各个通道的数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510793469.XA CN106708671A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
CN201611159991.3A CN106708679A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
PCT/CN2016/105176 WO2017084523A1 (zh) | 2015-11-17 | 2016-11-09 | 一种片上系统总线行为检测方法、装置和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510793469.XA CN106708671A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611159991.3A Division CN106708679A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106708671A true CN106708671A (zh) | 2017-05-24 |
Family
ID=58717379
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510793469.XA Withdrawn CN106708671A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
CN201611159991.3A Withdrawn CN106708679A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611159991.3A Withdrawn CN106708679A (zh) | 2015-11-17 | 2015-11-17 | 一种片上系统总线行为检测方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN106708671A (zh) |
WO (1) | WO2017084523A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427629A (zh) * | 2018-03-12 | 2018-08-21 | 杭州朔天科技有限公司 | 一种数据压缩的SoC芯片信息追踪装置和性能优化方法 |
CN109522194A (zh) * | 2018-11-14 | 2019-03-26 | 北京遥感设备研究所 | 针对axi协议从设备接口的自动化压力测试系统及方法 |
CN112486871A (zh) * | 2020-11-25 | 2021-03-12 | 海光信息技术股份有限公司 | 一种用于片上总线的路由方法以及系统 |
CN116881065A (zh) * | 2023-09-07 | 2023-10-13 | 湖北芯擎科技有限公司 | 总线传输延时检测模块、电路及方法 |
CN117009276A (zh) * | 2023-06-27 | 2023-11-07 | 进迭时空(珠海)科技有限公司 | 一种基于axi总线的信号压缩传输的方法、装置及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781120B (zh) * | 2019-10-23 | 2023-02-28 | 山东华芯半导体有限公司 | 一种axi总线主机设备跨4kb传输的实现方法 |
CN113190400B (zh) * | 2021-04-19 | 2022-11-04 | 思澈科技(上海)有限公司 | 一种适用于ahb协议的总线监控模块与监控方法 |
CN115357926B (zh) * | 2022-10-19 | 2023-03-24 | 南京芯驰半导体科技有限公司 | 基于SoC芯片的AXI总线协议访问权限控制方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612648B1 (en) * | 2010-07-19 | 2013-12-17 | Xilinx, Inc. | Method and apparatus for implementing quality of service in a data bus interface |
CN103605625A (zh) * | 2013-11-29 | 2014-02-26 | 山东大学 | 基于AXI总线的Nor Flash芯片的控制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192192B (zh) * | 2006-11-21 | 2010-08-18 | 华为技术有限公司 | 用于实时操作系统的任务异常诊断方法及系统 |
CN101639816B (zh) * | 2009-05-21 | 2012-08-08 | 无锡中星微电子有限公司 | 一种总线的实时跟踪系统及相应的跟踪、调试方法 |
CN101988863B (zh) * | 2009-07-30 | 2014-05-21 | 中国商用飞机有限责任公司 | 力纷争试验装置 |
CN101788947B (zh) * | 2010-02-09 | 2012-10-17 | 华为技术有限公司 | 系统总线的监测方法、系统总线监测器及片上系统 |
CN102207913B (zh) * | 2011-06-09 | 2019-05-31 | 中兴通讯股份有限公司 | 嵌入式系统中写保护的控制方法和装置 |
EP3060992B1 (en) * | 2013-10-27 | 2019-11-27 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
CN103888227B (zh) * | 2014-04-21 | 2017-02-08 | 华北水利水电大学 | 一种基于vl的数据帧接收分析设备和方法 |
CN104156487B (zh) * | 2014-08-28 | 2017-10-03 | 北京国双科技有限公司 | 网页数据统计方法及装置 |
-
2015
- 2015-11-17 CN CN201510793469.XA patent/CN106708671A/zh not_active Withdrawn
- 2015-11-17 CN CN201611159991.3A patent/CN106708679A/zh not_active Withdrawn
-
2016
- 2016-11-09 WO PCT/CN2016/105176 patent/WO2017084523A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612648B1 (en) * | 2010-07-19 | 2013-12-17 | Xilinx, Inc. | Method and apparatus for implementing quality of service in a data bus interface |
CN103605625A (zh) * | 2013-11-29 | 2014-02-26 | 山东大学 | 基于AXI总线的Nor Flash芯片的控制方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427629A (zh) * | 2018-03-12 | 2018-08-21 | 杭州朔天科技有限公司 | 一种数据压缩的SoC芯片信息追踪装置和性能优化方法 |
CN109522194A (zh) * | 2018-11-14 | 2019-03-26 | 北京遥感设备研究所 | 针对axi协议从设备接口的自动化压力测试系统及方法 |
CN109522194B (zh) * | 2018-11-14 | 2022-02-25 | 北京遥感设备研究所 | 针对axi协议从设备接口的自动化压力测试系统及方法 |
CN112486871A (zh) * | 2020-11-25 | 2021-03-12 | 海光信息技术股份有限公司 | 一种用于片上总线的路由方法以及系统 |
CN117009276A (zh) * | 2023-06-27 | 2023-11-07 | 进迭时空(珠海)科技有限公司 | 一种基于axi总线的信号压缩传输的方法、装置及系统 |
CN116881065A (zh) * | 2023-09-07 | 2023-10-13 | 湖北芯擎科技有限公司 | 总线传输延时检测模块、电路及方法 |
CN116881065B (zh) * | 2023-09-07 | 2023-12-15 | 湖北芯擎科技有限公司 | 总线传输延时检测模块、电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017084523A1 (zh) | 2017-05-26 |
CN106708679A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708671A (zh) | 一种片上系统总线行为检测方法和装置 | |
CN103810074B (zh) | 一种片上系统芯片及相应的监控方法 | |
CN108694109A (zh) | 同步硬件事件收集 | |
CN102904766B (zh) | 串行通信波特率识别方法、装置及监控设备 | |
CN103995764B (zh) | 一种具有串行总线协议连续触发功能的逻辑分析仪 | |
CN104917645B (zh) | 一种在线检测报文传输超时的方法与装置 | |
CN103198001B (zh) | 能够自测pcie接口的存储系统及测试方法 | |
CN106506266B (zh) | 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法 | |
CN105301991A (zh) | 使用有限状态机的数字触发 | |
CN107015896B (zh) | 一种嵌入式设备cpu及其外设状态实时监测方法、系统 | |
US9612934B2 (en) | Network processor with distributed trace buffers | |
CN103577294B (zh) | 用于互连跟踪的方法和装置 | |
CN103593271A (zh) | 一种片上系统芯片追踪调试的方法及装置 | |
CN107885517A (zh) | 嵌入式系统处理器程序加载电路 | |
CN104765701B (zh) | 数据访问方法及设备 | |
CN104765792A (zh) | 一种维度数据存储的方法、装置及系统 | |
CN101854259B (zh) | 一种数据包的计数方法及系统 | |
CN105391576B (zh) | 一种片上网络运行过程重现方法及系统 | |
CN116074267B (zh) | 一种数据通信系统及SoC芯片 | |
CN104572515B (zh) | 跟踪模块、方法、系统和片上系统芯片 | |
CN107463475A (zh) | 一种芯片及获取芯片调试数据的方法 | |
CN107607853A (zh) | 芯片的调试方法、装置、存储介质和处理器 | |
CN106708779A (zh) | 一种服务器及其处理数据的方法 | |
CN105591729A (zh) | 网络设备和用于网络设备中的时间戳获取方法 | |
CN106201809A (zh) | 用于非调试域系统复位的调试触发器接口 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170524 |