CN108681500B - 具有事务记录能力的系统和事务记录方法 - Google Patents
具有事务记录能力的系统和事务记录方法 Download PDFInfo
- Publication number
- CN108681500B CN108681500B CN201810403436.3A CN201810403436A CN108681500B CN 108681500 B CN108681500 B CN 108681500B CN 201810403436 A CN201810403436 A CN 201810403436A CN 108681500 B CN108681500 B CN 108681500B
- Authority
- CN
- China
- Prior art keywords
- recording
- module
- transaction
- transaction information
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Abstract
一种具有事务记录能力的系统和事务记录方法,该具有事务记录能力的系统用于记录系统运行过程中产生的事务信息,具有第一功能模块、第二功能模块、监控模块、全局控制模块和记录模块。第一功能模块产生事务信息,第二功能模块接收所述事务信息,监控模块采集所述事务信息并根据触发配置信息决定是否存储所述事务信息,如果需要存储,则产生记录信号并转发所述事务信息,全局控制模块接收、解析并执行硬件控制指令以设置所述触发配置信息及记录配置信息,当接收到所述记录信号时,所述记录模块依据所述记录配置信息确定记录方式并使用所述记录方式记录由所述监控模块转发过来的所述事务信息。本发明能够提高硬件调试效率。
Description
技术领域
本发明涉及硬件调试领域,并且更特别的涉及通过记录硬件运行过程中产生的连续的事务信息的机制来提高硬件调试效率。
背景技术
随着硬件技术的发展,有些硬件设备的结构变得越来越复杂,对硬件的调试成为一个越来越困难的任务。硬件调试的困难在于硬件本身的不透明性。在发生问题的时候,工程师没有办法像软件调试那样看到硬件内部发生了什么,也不能像调试软件那样在中间设置一个断点把硬件停下来以查看硬件的内部信息。
为方便对硬件的调试,硬件设计人员开发出很多种硬件调试方法来降低硬件调试的难度,传统上有DebugBus、扫描路径法和ARM CoreSightTM技术。这些方法的目的都是用某种方法将硬件内部信息暴露给工程师,降低硬件的不透明性,但他们暴露出的信息都是硬件内部某个时间点的静态信息,对硬件工程师的帮助是有限的。
DebugBus技术是最早在芯片设计中引进的调试技术。他的基本原理是在硬件设计中添加一批状态寄存器,每个模块都把自己的状态编码后送到这些状态寄存器中。当发生问题的时候,工程师读取状态寄存器中的状态码,从而可以分析问题发生的原因。
DebugBus技术缺陷在于,状态寄存器的位是有限的,所以能反映的模块的状态也是有限的,工程师通过状态码只能大概了解模块的真实情况。
基于扫描路径法的可测性设计技术是可测性设计(DFT)技术的一个重要的方法,这种方法能够从芯片外部设定电路中各个触发器的状态,并通过简单的扫描链的设计,通过扫描观测触发器是否工作在正常状态,以此来检测电路的正确性。
这种技术的缺陷在于速度太慢,因为它是串行操作,不能一次性读出全部的数据,而这导致工程师不能得到即时的数据。
CoreSightTM技术是ARM公司在2004年推出的一种新的调试体系架构,以提供更为强大的调试能力。
CoreSightTM技术比较适合于软件调试,因为它提供给工程师的是模块之间的指令和寄存器传递序列,软件工程师可以知道自己送给硬件的命令是如何在硬件各个模块之间传递的。但硬件开发工程师更多的是想了解模块和模块之间完整的会话信息,甚至是模块内部的一些信号。
发明内容
鉴于以上问题,本发明提供一种具有事务记录能力的系统和事务记录方法,通过记录硬件运行过程中硬件内部各模块之间产生的连续的事务信息来提高硬件调试效率。
本发明所揭露的具有事务记录能力的系统具有第一功能模块、第二功能模块、监控模块、全局控制模块和记录模块。第一功能模块基于第一时脉信号而动作,用于产生事务信息;第二功能模块基于第二时脉信号而动作,用于接收所述事务信息;监控模块耦接所述第一功能模块和所述第二功能模块,并采集所述事务信息并根据触发配置信息决定是否存储所述事务信息,如果需要存储,则产生一记录信号并转发所述事务信息;全局控制模块耦接所述第一功能模块、所述第二功能模块与所述监控模块,并接收、解析并执行硬件控制指令以设置所述触发配置信息及记录配置信息;记录模块耦接所述监控模块和所述全局控制模块,当接收到所述记录信号时,所述记录模块依据所述记录配置信息确定记录方式并使用所述记录方式记录由所述监控模块转发过来的所述事务信息。
本发明所揭露的事务记录方法,适于记录第一功能模块与第二功能模块之间的事务信息,该事务记录方法包含以下步骤:经由存储器映射输入输出接口接收硬件控制指令,解析并执行所述硬件控制指令以设置触发配置信息和记录配置信息;经由所述第一功能模块生成一事务信息,发送至所述第二功能模块;采集所述事务信息并根据所述触发配置信息判断采集到的所述事务信息是否满足记录条件;如果满足记录条件,则根据所述记录配置信息确定记录方式,并使用所确定的所述记录方式记录所述事务信息。
附图说明
图1是依据本发明一实施例的具有事务记录能力的设备100的功能方块图。
图2是依据本发明一实施例的包含图1中具有事务记录能力的设备100的具有事务记录能力的系统200的功能方块图。
图3是依据本发明一实施例的具有事务记录能力的系统400的功能方块图。
图4是依据本发明另一实施例的具有事务记录能力的设备100的功能方块图。
图5是本发明一实施例具有事务记录能力的系统的所执行的事务记录方法的流程图。
其中,附图中符号的部分说明如下:
TRANS:事务信息
REC:记录信号
CMD:硬件控制指令
CLK_G:全局时脉信号
CLK1:第一时脉信号
CLK2:第二时脉信号
HOLD:暂停信号
FIN:完成信号
SAVE_REQ:转存请求信号
HEAD:循环缓冲区头指针
TAIL:循环缓冲区尾指针。
具体实施方式
为使本发明实施例的目的、技术方案和技术优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分的实施例,而不是全部的实施例。基于本发明的实施例,本领域的普通技术人员在没有创造性劳动的前提下所获得的所有其它实施例,都属于本发明所保护的范围。
申请人在授权公告号CN 105446863 B的中国专利中揭露了一个具有记录能力的电子装置与电路状态记录方法,其中所揭露的电子装置与电路状态记录方法用于记录电子装置内部模块之间传输的全部指令信息到系统内存。该中国专利案根据其目的透过引用将其所有内容并入本申请。由于电子装置内部模块之间传输的指令信息非常多,很多记录下来的指令信息不但对于系统的调试没有任何帮助,反而会影响系统开发人员的调试工作。另外,由于需要把所有的指令信息保存到系统内存,导致系统总线上的信息变多从而影响了电子装置的运行环境,所以该电子装置的有些的硬件错误无法被发现。
本发明公开的具有事务记录能力的系统和事务记录方法,通过硬件指令CMD设置记录条件以实现只记录系统开发人员希望记录的各模块之间的连续的事务信息TRANS,从而提高调试效率;通过硬件指令CMD设置记录配置信息DUMP_MODE的方式,可以不把事务信息TRANS保存到系统内存,从而可以发现因为把事务信息TRANS保存到内存而无法发现的硬件错误。因此本发明克服了授权公告号CN 105446863 B的中国专利中揭露的具有记录能力的电子装置与电路状态记录方法中存在的缺陷。
图1是依据本发明一实施例的具有事务记录能力的设备100的功能方块图。如图1所示,具有事务记录能力的设备100包括第一功能模块202、第二功能模块204、监控模块206、全局控制模块208和记录模块210。在一实施例中,第一和第二功能模块202和204为待测试的芯片内部的功能模块,本发明基于抓取第一和第二功能模块202和204之间的完整事务信息供测试主机(未示出)分析以进行硬件调试,值得注意的是,本发明并不限制被测芯片中功能模块的数量,即,本发明可以抓取多组功能模块之间的事务信息,后面会详述。
第一功能模块202,基于第一时脉信号CLK1而动作,用于产生事务信息TRANS;第二功能模块204,基于第二时脉信号CLK2而动作,用于接收事务信息TRANS;监控模块206,耦接第一功能模块202和第二功能模块204,其根据触发配置信息TRIGGER_CFG决定是否存储事务信息TRANS,如果需要存储,则产生一记录信号REC并转发事务信息TRANS;全局控制模块208,耦接第一功能模块202、第二功能模块204与监控模块206,其接收、解析并执行硬件控制指令CMD以设置触发配置信息TRIGGER_CFG及记录配置信息DUMP_CFG;记录模块210,耦接监控模块206和全局控制模块208,当接收到记录信号REC时,记录模块210依据记录配置信息DUMP_MODE确定记录方式并使用所确定的记录方式记录由监控模块206转发过来的事务信息TRANS。在一实施例中,记录配置信息DUMP_MODE所指示的记录方式包括记录到记录模块210内部及记录到系统内存(未绘示),后面图1结合图2会详述记录到记录模块210内部的实施方式,后面图3会详述记录到系统内存的实施方式。在另一实施例中,记录模块210还包括记录配置暂存器2101,用于保存记录配置信息DUMP_MODE。
图2是依据本发明一实施例的包含图1中具有事务记录能力的设备100的具有事务记录能力的系统200的功能方块图。如图2所示,本实施例中的具有事务记录能力的系统200除了包括如图1所示的具有事务记录能力的设备100,更进一步包括存储器映射输入输出接口102、文件保存模块104和硬件控制模块106。其中,硬件控制模块106通过存储器映射输入输出接口102耦接至具有事务记录能力的设备100,文件保存模块104通过存储器映射输入输出接口102耦接至具有事务记录能力的设备100。在一实施例中,具有事务记录能力的设备100为被测对象,具有事务记录能力的系统200的其余模块,包括存储器映射输入输出接口102、文件保存模块104及硬件控制模块106,均实现在一测试主机中。
硬件控制模块106从控制终端软件或配置文件接收字符形式的控制指令,并将字符形式的控制指令翻译成硬件控制指令CMD(下文会详述),然后通过存储器映射输入输出接口102传送给具有事务记录能力的设备100进行处理。
具有事务记录能力的设备100在硬件控制指令CMD的控制下完成相关设置并启动事务记录功能,文件保存模块104通过存储器映射输入输出接口102将具有事务记录能力的设备100记录下来的事务信息保存到文件中(下文会详述)。
在一实施例中,硬件控制模块106通过存储器映射输入输出接口102读取全局控制模块208中的状态信息,并传送给控制终端软件进行显示。
在一实施例中,文件保存模块104和硬件控制模块106是用软件实现的,但本发明不限于此。存储器映射输入输出接口102占用中央处理器(CPU)的物理地址空间,文件保存模块104和硬件控制模块106对存储器映射输入输出接口102的访问使用中央处理器(未绘示)访问内存的指令进行。值得注意的是,前述的中央处理器是指测试主机的中央处理器,在一实施例中,具有事务记录能力的设备100通过PCI(Peripheral ComponentInterconnect)或PCI-e(Peripheral Component Interconnect Express)总线耦接到测试主机,在某些实施例中存储器映射输入输出接口102在物理上遵从PCI或PCI-e总线协议规范。在另一实施例中,具有事务记录能力的设备100通过AXI(Advanced eXtensibleInterface)接口耦接到测试主机,在某些实施例中存储器映射输入输出接口102在物理上遵从AXI总线协议规范。
下面结合图1和图2描述一实施例的执行过程。
硬件控制模块106经由存储器映射输入输出接口102发送设置触发配置信息TRIGGER_CFG的硬件控制指令CMD给全局控制模块208,全局控制模块208执行接收到的设置触发配置信息TRIGGER_CFG的硬件控制指令CMD后,为监控模块206设置触发配置信息TRIGGER_CFG。在另一实施例中,监控模块206包括一触发配置暂存器2063,用于保存触发配置信息TRIGGER_CFG。
硬件控制模块106经由存储器映射输入输出接口102发送设置记录配置信息DUMP_MODE的硬件控制指令CMD给全局控制模块208,全局控制模块208执行接收到的设置记录配置信息DUMP_MODE的硬件控制指令CMD后,为记录模块210设置记录配置信息DUMP_MODE。在本实施例中,记录配置信息DUMP_MODE指示将事务信息TRANS保存在记录模块210内部。在另一实施例中,记录模块210包括一记录配置暂存器2101,用于保存记录配置信息DUMP_MODE。
在另一实施例中,先执行设置记录配置信息DUMP_MODE的硬件控制指令CMD,再执行设置触发配置信息TRIGGER_CFG的硬件控制指令CMD。本发明并不以此为限。
在另一实施例中,硬件控制模块106经由存储器映射输入输出接口102发送开始事务记录的硬件控制指令CMD给全局控制模块208,全局控制模块208执行接收到的开始事务记录的硬件控制指令CMD后,指示具有事务记录功能的设备100进入事务记录模式。具有事务记录功能的设备100进入事务记录模式后,监控模块206才会根据触发配置信息TRIGGER_CFG决定是否存储采集到事务信息TRANS,如果需要存储,则产生记录信号REC。
第一功能模块202生成事务信息TRANS发给第二功能模块204,监控模块206采集到事务信息206并依据触发配置信息TRIGGER_CFG判断接收到的事务信息TRANS是否需要记录。如果需要记录,则产生记录信号REC并将事务信息TRANS转送给记录模块210。由于记录配置信息DUMP_MODE指示将事务信息TRANS保存到记录模块210内部,记录模块210在接收到记录信号REC和事务信息TRANS后,将事务信息TRANS直接保存到内部存储器2103中。如果内部存储器2103已经存满,则用新收到的事务信息TRANS将先前最早存储的事务信息TRANS覆盖,即用循环覆盖的方式进行写入操作。值得注意的是,内部存储器2103可以是一静态随机存取存储器(Static Random-Access Memory,SRAM),但本发明并不局限于此,内部存储器2103也可以是其它类型的存储器,只要是可以经由存储器映射输入输出接口102以MMIO(Memory Mapping I/O)方式访问的存储器即可。
文件保存模块104在任何时候都可以通过存储器映射输入输出接口102将内部存储器2103中存储的事务信息TRANS读取并直接保存到文件(未绘示)中,在一实施例中,当需要根据内部存储器2103中保存的事务信息TRANS分析事故原因时,例如当具有事务记录能力的设备100由于硬件错误发生停止运行时,调试人员通过控制终端软件(未绘示)发送字符命令给文件保存模块104,文件保存模块104在根据收到的该字符命令通过存储器映射输入输出接口102将内部存储器2103中存储的事务信息TRANS读取并直接保存到文件(未绘示)中。值得注意的是,这种将内部存储器2103中存储的事务信息TRANS直接保存到文件中的方式,只能抓取短时间内连续的事务信息TRANS,但是由于在测试过程中不需要占用测试主机中的访存总线(未绘示)传输事务信息TRANS,因而可以抓到系统调试过程中出现的大约10%的硬件错误相关的事务信息TRANS。
在另一实施例中,硬件控制模块106经由存储器映射输入输出接口102发送设置事务选择配置信息TRANS_SEL_CFG的硬件控制指令CMD给全局控制模块208,全局控制模块208执行接收到的设置事务选择配置信息TRANS_SEL_CFG的硬件控制指令CMD后,为监控模块206设置事务选择配置信息TRANS_SEL_CFG。在另一实施例中,监控模块206还包括一事务选择配置暂存器2061,用于保存事务选择配置信息TRANS_SEL_CFG。当监控模块206接收到事务信息TRANS后,如果触发配置信息TRIGGER_CFG被设置为一第一预设值时,该第一预设值指示当事务信息TRANS为特定类型时触发记录,则当事务选择配置信息TRANS_SEL_CFG的设置中包含了接收到的事务信息TRANS的类型时(例如,当接收到的事务信息TRANS的类型信息匹配于事务选择配置信息TRANS_SEL_CFG中所包含的类型信息时),则监控模块206生成记录信号REC通知记录模块210记录事务信息TRANS。
在另一实施例中,当监控模块206接收到事务信息TRANS后,如果触发配置信息TRIGGER_CFG被设置为一第二预设值时,监控模块206根据具有事务记录能力的系统200访问的系统内存地址是否处于特定的地址范围内以决定是否存储事务信息TRANS,例如当具有事务记录能力的系统200正在访问的系统内存地址处于某特定的地址范围内时,则监控模块206生成记录信号REC通知记录模块210记录事务信息TRANS。
在另一实施例中,当监控模块206接收到事务信息TRANS后,如果触发配置信息TRIGGER_CFG被设置为第三预设值,则当接收到任何事务信息时均触发记录,即监控模块206直接存储所接收到的事务信息,监控模块206生成记录信号REC通知记录模块210记录事务信息TRANS。
在另一实施例中,硬件控制模块106经由存储器映射输入输出接口102发送设置中断的控制指令CMD给全局控制模块208,全局控制模块208执行接收到的设置中断的硬件控制指令CMD后,将在所设置的中断条件发生时暂停输出第一时脉信号CLK1和暂停输出第二时脉信号CLK2。
在另一实施例中,硬件控制模块106经由存储器映射输入输出接口102发送开始全部事务记录的硬件控制指令CMD给全局控制模块208,全局控制模块208执行接收到的开始全部事务记录的硬件控制指令CMD后,监控模块206将在接收到任何事务信息TRANS均生成记录信号REC通知记录模块210记录所接收到的事务信息TRANS。
在另一实施例中,硬件控制模块106还经由存储器映射输入输出接口102发送停止事务记录的硬件控制指令CMD给全局控制模块208,全局控制模块208执行接收到的停止事务记录的硬件控制指令CMD后,监控模块206在接收到事务信息TRANS后不做任何处理。
图3是依据本发明一实施例的具有事务记录能力的系统400的功能方块图。与图1中具有事务记录能力的设备100相比,本实施例中的具有事务记录能力的设备300还包括转存模块212与循环缓冲区控制模块214。
与图2中具有事务记录能力的系统200相比,图3所示实施例中的具有事务记录能力的系统400还包括系统内存108和直接内存存取接口(DMA)110。在一实施例中,具有事务记录能力的设备300为被测对象,具有事务记录能力的系统400的其余模块,包括存储器映射输入输出接口102、文件保存模块104、硬件控制模块106、系统内存108及直接内存存取接口(DMA)110,均实现在一测试主机中。
与图2所示的实施例不同的是,本实施例中,具有事务记录能力的设备300中的记录模块210将事务信息TRANS通过转存模块212和循环缓冲器区控制模块214存入系统内存108;文件保存模块104通过直接内存存取接口(DMA)110从系统内存108中读取事务信息TRANS并存入文件(未绘示);文件保存模块104先在系统内存108中生成一个循环缓冲区并通过存储器映射输入输出接口102设置循环缓冲区控制模块214的循环缓冲区头指针HEAD和循环缓冲区尾指针TAIL,全局控制模块208通过硬件控制命令CMD设置记录设置信息DUMP_MODE,本实施例中记录设置信息DUMP_MODE指示将保存到系统内存108,因而记录模块210在接收到记录信号REC和事务信息TRANS后,会通过转存模块212和循环缓冲区控制模块214把事务信息TRANS转存到系统内存108。
下面结合图3来描述一实施例中将事务信息TRANS转存到系统内存108并保存到文件中的运行过程。
记录模块210接收到记录信号REC和事务信息TRANS后,查看内部存储器2103是否有足够的空间保存事务信息TRANS,如果内部存储器2103空间不足,记录模块210生成暂停信号HOLD;全局控制模块208收到暂停信号HOLD后暂停输出第一时脉信号CLK1和第二时脉信号CLK2;记录模块210每隔一定的时间就去查看内部存储器2103是否有足够的空间保存事务信息TRANS,当检测到内部存储器2103中有足够的空间存储接收到的事务信息TRANS时,记录模块210将事务信息TRANS存入内部存储器2103,然后生成完成信号FIN和转存请求信号SAVE_REQ;全局控制模块208接收到完成信号FIN后恢复输出第一时脉信号CLK1和恢复输出第二时脉信号CLK2。如果内部存储器2103空间充足,则记录模块210直接将事务信息TRANS存入内部存储器2103,然后生成转存请求信号SAVE_REQ。
转存模块212接收到转存请求信号SAVE_REQ后,根据循环缓冲区控制模块214的循环缓冲区头指针HEAD和循环缓冲区尾指针TAIL的值判断循环缓冲区是否有空闲的存储空间,如果没有空闲存储空间则等待,如果有空闲存储空间,则根据转存请求信号SAVE_REQ读取记录模块210保存在内部存储器2103中相应位置的事务信息TRANS,并将读取到的事务信息TRANS通过循环缓冲区控制模块214存放到系统内存108中,然后修改循环缓冲区尾指针TAIL并释放内部存储器2103中已转存完的事务信息TRANS所占用的空间。
文件保存模块104还通过直接内存存取(DMA)接口110将循环缓冲区头指针HEAD所指向的存储于系统内存108中的事务信息TRANS读取并保存到文件中,文件保存模块104在读取完事务信息TRANS后修改循环缓冲区头指针HEAD以释放读出的事务信息TRANS所占用的系统内存108中的空间。在一实施例中,文件保存模块104还通过存储器映射输入输出接口102读取循环缓冲区头指针HEAD和循环缓冲区尾指针TAIL,并根据循环缓冲区头指针HEAD和循环缓冲区尾指针TAIL的值计算循环缓冲区中事务信息TRANS的数量。当循环缓冲区中事务信息TRANS的数量达到预先定义的阀值的时候,文件保存模块104就产生一个直接内存存取请求,然后通过直接内存存取(DMA)接口110读取循环缓冲区头指针HEAD所指向的事务信息TRANS并保存到文件中,保存完成后修改循环缓冲区头指针HEAD以释放循环缓冲区空间;然后再读取并保存下一个事务信息TRANS直到循环缓冲区为空。通过将内部存储器2103中存储的事务信息TRANS先保存到系统内存108再通过直接内存存取接口(DMA)110保存到文件中的方式,可以抓取很长一段时间内连续的事务信息TRANS,从而可以抓到作为被测对象的具有事务记录能力的设备300在调试过程中出现的大约90%的硬件错误。
在另一实施例中具有事务记录能力的设备300包括多个记录模块210、多个监控模块206和多组第一和第二功能模块202和204。每个监控模块206可以采集各组功能模块之间的多个事务信息TRANS,每个事务信息TRANS包含一个在具有事务记录能力的系统300中唯一的标识;硬件开发工程师根据需要将各组功能模块之间的事务信息TRANS传给对应的一个监控模块206、各监控模块206都将采集到的事务信息TRANS传给其对应的记录模块210、各记录模块210都将采集到的事务信息TRANS传给同一个转存模块212,转存模块212再根据记录配置信息DUMP_MODE对接收到的事务信息TRANS进行相应的转存操作。
图4是依据本发明另一实施例的具有事务记录能力的设备100的功能方块图。本实施例与图1所示的实施例的不同之处是,监控模块206采集到事务信息TRANS后,如果根据触发配置信息TRIGGER_CFG判定为需要保存所接收到的事务信息TRANS则生成暂停信号HOLD,全局控制模块208接收到暂停信号HOLD后暂停输出第一时脉信号CLK1和暂停输出第二时脉信号CLK2并生成记录信号REC,记录模块210接收到记录信号REC后记录监控模块206发送过来的事务信息TRANS,记录完成后生成完成信号FIN,全局控制模块208收到完成信号FIN后恢复输出第一时脉信号CLK1和恢复输出第二时脉信号CLK2,监控模块206接收到完成信号FIN后复位暂停信号HOLD。值得注意的是,相较于图4的实施例,在图3的实施例中,如果记录模块210依据记录配置信息DUMP_MODE确定的记录方式是记录到系统内存108,则记录模块210查看内部存储器2103是否有足够的空间存储这笔事务信息TRANS,如果没有足够的存储空间,则产生暂停信号,全局控制模块208根据该暂停信号暂停输出第一时脉信号CLK1和第二时脉信号CLK2;当内部存储器2103有足够的空间存储这笔事务信息TRANS时,记录模块210记录的同时产生完成信号,全局控制模块208根据完成信号恢复输出第一时脉信号CLK1及第二时脉信号CLK2。
图5是本发明一实施例具有事务记录能力的系统所执行的事务记录方法的流程图,该方法用于记录从第一功能模块202生成并传递到第二功能模块204的事务信息TRANS:首先执行步骤501:经由存储器映射输入输出接口102接收硬件控制指令CMD,解析并执行硬件控制指令CMD以设置触发配置信息TRIGGER_CFG和记录配置信息DUMP_MODE。接着执行步骤503:经由第一功能模块202生成事务信息TRANS,发送至第二功能模块204。接着执行步骤505:采集从第一功能模块202发出的事务信息TRANS,并根据触发配置信息TRIGGER_CFG判断采集到的事务信息TRANS是否满足记录条件;如果满足记录条件,则执行步骤507:根据记录配置信息DUMP_MODE确定记录方式,并使用所确定的记录方式记录所述事务信息TRANS。在一实施例中,记录配置信息DUMP_MODE所指示的记录方式包括记录到记录模块210内部及记录到系统内存108,下面结合图1和图2详述记录到记录模块210内部的实施方式,结合图3详述记录到系统内存的实施方式。
下面结合图1和图2详细说明图5所示的处理流程图。
图5中的处理流程开始于步骤501,图1中的全局控制模块208根据接收到的硬件控制指令CMD设置触发配置信息TRIGGER_CFG和记录配置信息DUMP_CFG。然后,全局控制模块208根据执行接收到的开始事务记录的硬件控制指令CMD开始事务记录,处理流程进入步骤503。
在步骤503中,第一功能模块202生成事务信息TRANS并发送给第二功能模块204,同时也发送给监控模块206,处理流程进入步骤505。
在步骤505中,监控模块206采集到事务信息TRANS并根据触发配置信息TRIGGER_CFG判断是否需要保存接收采集到的事务信息TRANS;如果需要保存,则监控模块206生成记录信号REC并把事务信息TRANS传给记录模块210,处理流程进入步骤507;否则处理流程进入步骤503等待处理下一个事务信息TRANS。
在步骤507中,记录模块210接收到记录信号REC后,如果记录配置信息DUMP_MODE的设置的记录方式为记录到记录模块210内部,则依据记录配置信息DUMP_MODE将接收到的事务信息TRANS直接写入内部存储器2103,当内部存储器2103满的时候,最早存入的事务信息TRANS将被新接收到的事务信息TRANS覆盖,记录完成后处理流程进入步骤503等待处理下一个事务信息TRANS。在一实施例中,当需要根据内部存储器2103中保存的事务信息TRANS分析事故原因时,例如当具有事务记录能力的设备100由于硬件错误发生停止运行时,调试人员通过控制终端软件(未绘示)发送字符命令给文件保存模块104,文件保存模块104在根据收到的该字符命令通过存储器映射输入输出接口102将内部存储器2103中存储的事务信息TRANS读取并直接保存到文件(未绘示)中。
下面结合图3详细说明图5所示的处理流程图。
本实施例处理流程的步骤501~505与图1结合图2的实施方式相同,在此不再赘述,不同之处在于步骤507,记录模块210接收到记录信号REC后,如果记录配置信息DUMP_MODE的设置的记录方式为记录到测试主机的系统内存108,记录模块210则会查看内部存储器2103是否有足够的空间保存事务信息TRANS,如果内部存储器2103空间不足,记录模块210每隔一定的时间就去查看内部存储器2103是否有足够的空间保存事务信息TRANS,当检测到内部存储器2103中有足够的空间存储接收到的事务信息TRANS时,记录模块210将事务信息TRANS存入内部存储器2103,然后生成转存请求信号SAVE_REQ;如果内部存储器2103空间充足,则记录模块210直接将事务信息TRANS存入内部存储器2103,然后生成转存请求信号SAVE_REQ。转存模块212接收到转存请求信号SAVE_REQ后,读取记录模块210保存在内部存储器2103中相应位置的事务信息TRANS,并将读取到的事务信息TRANS通过循环缓冲区控制模块214存放到系统内存108中。文件保存模块104通过直接内存存取(DMA)接口110将存储于系统内存108中的事务信息TRANS读取并保存到文件中。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可以在此基础上做进一步的改进和变化,因此本发明的保护范围应当以本申请的权利要求书所界定的范围为准。
Claims (17)
1.一种具有事务记录能力的系统,其特征在于,用于记录该系统中各功能模块之间的事务信息,所述具有事务记录能力的系统包括:
第一功能模块,基于第一时脉信号而动作,用于产生事务信息;
第二功能模块,基于第二时脉信号而动作,用于接收所述事务信息;
监控模块,耦接所述第一功能模块和所述第二功能模块,所述监控模块采集所述事务信息并根据触发配置信息决定是否存储所述事务信息,如果需要存储,则产生记录信号并转发所述事务信息;
全局控制模块,耦接所述第一功能模块、所述第二功能模块与所述监控模块,并接收、解析并执行硬件控制指令以设置所述触发配置信息及记录配置信息;及
记录模块,耦接所述监控模块和所述全局控制模块,当接收到所述记录信号时,所述记录模块依据所述记录配置信息确定记录方式并使用所确定的所述记录方式记录由所述监控模块转发过来的所述事务信息。
2.根据权利要求1所述的具有事务记录能力的系统,其特征在于,所述监控模块还包括:
触发配置暂存器,用于存储所述触发配置信息;及
事务选择配置暂存器,用于存储事务选择配置信息,其中,所述事务选择配置信息由所述全局控制模块通过执行所述硬件控制指令设置,当所述触发配置信息被设置为第一预设值时,所述监控模块进一步根据所述事务选择配置信息决定是否存储所述事务信息。
3.根据权利要求1所述的具有事务记录能力的系统,其特征在于,当所述触发配置信息被设置为第二预设值时,所述监控模块根据所述具有事务记录能力的系统访问的系统内存地址是否处于特定的地址范围内以决定是否存储所述事务信息。
4.根据权利要求1所述的具有事务记录能力的系统,其特征在于,当所述触发配置信息被设置为第三预设值时,所述监控模块直接存储所述事务信息。
5.根据权利要求1所述的具有事务记录能力的系统,其特征在于,所述全局控制模块还将主时脉信号选择性的输出为所述第一时脉信号与所述第二时脉信号。
6.根据权利要求1所述的具有事务记录能力的系统,其特征在于,还包括:
硬件控制模块,通过存储器映射输入输出接口耦接至所述全局控制模块,其接收字符形式的控制指令,将其翻译成所述硬件控制指令后经由所述存储器映射输入输出接口传送给所述全局控制模块;
其中,所述字符形式的控制指令来自于配置文件或控制终端软件。
7.根据权利要求1所述的具有事务记录能力的系统,其特征在于,所述记录模块还包括:
记录配置暂存器,用于存储所述记录配置信息,其中所述记录方式包括记录到所述记录模块内部及记录到系统内存。
8.根据权利要求1所述的具有事务记录能力的系统,其特征在于,如果所述记录模块依据所述记录配置信息确定的所述记录方式是记录到所述记录模块内部,则所述记录模块将所述事务信息采用循环覆盖的方式写入所述记录模块中的内部存储器。
9.根据权利要求8所述的具有事务记录能力的系统,其特征在于,还包括:
文件保存模块,用于根据控制终端软件发送的字符命令通过存储器映射输入输出接口将存储于所述内部存储器中的所述事务信息读取并直接保存到文件中。
10.根据权利要求1所述的具有事务记录能力的系统,其特征在于,如果所述记录模块依据所述记录配置信息确定的所述记录方式是记录到系统内存,则所述记录模块查看所述记录模块中的内部存储器是否有足够的空间存储所述事务信息,如果有足够的存储空间,则将所述事务信息存入所述内部存储器并生成转存请求信号。
11.根据权利要求10所述的具有事务记录能力的系统,其特征在于,还包括:
转存模块,耦接至所述记录模块,用于依据所述转存请求信号将所述记录模块记录的所述事务信息转存到所述系统内存。
12.根据权利要求11所述的具有事务记录能力的系统,其特征在于,还包括:
循环缓冲区控制模块,耦接至所述转存模块,用于将所述转存模块转发的所述事务信息保存到所述系统内存的循环缓冲区,且包括:
循环缓冲区头指针,用于保存所述循环缓冲区的当前头指针;
循环缓冲区尾指针,用于保存所述循环缓冲区的当前尾指针;
其中,所述循环缓冲区控制模块将所述转存模块转发过来的所述事务信息保存到所述系统内存后,更新所述循环缓冲区尾指针。
13.根据权利要求12所述的具有事务记录能力的系统,其特征在于,
所述循环缓冲区控制模块能够通过比较所述循环缓冲区头指针和所述循环缓冲区尾指针的值来判断所述系统内存中的循环缓冲区是否还有空闲存储空间;当所述系统内存中的循环缓冲区没有空闲存储空间时,所述循环缓冲区控制模块生成空间满信号,所述转存模块依据所述空间满信号暂停转存操作;当所述系统内存中的循环缓冲区有空闲存储空间时,所述循环缓冲区控制模块生成空间空闲信号,所述转存模块依据所述空间空闲信号恢复转存操作。
14.根据权利要求12所述的具有事务记录能力的系统,其特征在于,还包括:
文件保存模块,用于通过直接内存存取接口将所述循环缓冲区头指针所指向的存储于所述系统内存中的所述事务信息读取并保存到文件中,
其中,所述文件保存模块读取完所述事务信息后修改所述循环缓冲区头指针以释放读出的所述事务信息所占用的所述系统内存中的空间。
15.根据权利要求1所述的具有事务记录能力的系统,其特征在于,如果所述记录模块依据所述记录配置信息确定的所述记录方式是记录到系统内存,则所述记录模块查看所述记录模块中的内部存储器是否有足够的空间存储所述事务信息,如果没有足够的存储空间,则产生暂停信号,所述全局控制模块根据所述暂停信号暂停输出所述第一时脉信号和暂停输出所述第二时脉信号;当所述内部存储器有足够的空间存储所述事务信息时,所述记录模块将所述事务信息存入所述内部存储器并产生完成信号,所述全局控制模块根据所述完成信号恢复输出所述第一时脉信号和恢复输出所述第二时脉信号。
16.根据权利要求1所述的具有事务记录能力的系统,其特征在于,当所述监控模块根据所述触发配置信息决定要存储采集到的所述事务信息时,产生暂停信号,所述全局控制模块根据所述暂停信号暂停输出所述第一时脉信号和暂停输出所述第二时脉信号并生成记录信号;所述记录模块根据所述记录信号开始记录所述事务信息,当所述记录模块完成记录所述事务信息时产生完成信号,所述全局控制模块根据所述完成信号恢复输出所述第一时脉信号和恢复输出所述第二时脉信号。
17.一种事务记录方法,其特征在于,用于记录从第一功能模块传递到第二功能模块的事务信息,该事务记录方法包含如下步骤:
经由存储器映射输入输出接口接收硬件控制指令,解析并执行所述硬件控制指令以设置触发配置信息和记录配置信息;
经由所述第一功能模块生成事务信息,发送至所述第二功能模块;
采集所述事务信息并根据所述触发配置信息判断采集到的所述事务信息是否满足记录条件;及
如果满足记录条件,则根据所述记录配置信息确定记录方式,并使用所确定的所述记录方式记录所述事务信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810403436.3A CN108681500B (zh) | 2018-04-28 | 2018-04-28 | 具有事务记录能力的系统和事务记录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810403436.3A CN108681500B (zh) | 2018-04-28 | 2018-04-28 | 具有事务记录能力的系统和事务记录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108681500A CN108681500A (zh) | 2018-10-19 |
CN108681500B true CN108681500B (zh) | 2021-09-07 |
Family
ID=63801890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810403436.3A Active CN108681500B (zh) | 2018-04-28 | 2018-04-28 | 具有事务记录能力的系统和事务记录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108681500B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890790B2 (en) * | 2006-12-29 | 2011-02-15 | Intel Corporation | Transactional flow management interrupt debug architecture |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及系统 |
CN103154908A (zh) * | 2010-07-28 | 2013-06-12 | 英特尔公司 | 用于事务存储器的最后分支记录指示符 |
KR20150037002A (ko) * | 2013-09-30 | 2015-04-08 | 주식회사 유니테스트 | Fpga 기반의 비실장형 스토리지 테스트 장치 |
CN104765792A (zh) * | 2015-03-24 | 2015-07-08 | 华为技术有限公司 | 一种维度数据存储的方法、装置及系统 |
CN105446863A (zh) * | 2015-11-23 | 2016-03-30 | 上海兆芯集成电路有限公司 | 具有记录能力的电子装置与电路状态记录方法 |
CN105939393A (zh) * | 2016-06-30 | 2016-09-14 | 北京奇虎科技有限公司 | 一种任务运行状态的监控方法和系统 |
CN106055467A (zh) * | 2015-04-13 | 2016-10-26 | Arm 有限公司 | 逻辑分析 |
CN107003894A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 用于硬件事务内存程序的剖析器的装置和方法 |
CN107111488A (zh) * | 2014-12-23 | 2017-08-29 | Arm 有限公司 | 调试数据处理事务 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183147B2 (en) * | 2012-08-20 | 2015-11-10 | Apple Inc. | Programmable resources to track multiple buses |
US9217774B2 (en) * | 2013-11-01 | 2015-12-22 | International Business Machines Corporation | Cycle-accurate replay and debugging of running FPGA systems |
JP6427979B2 (ja) * | 2014-06-19 | 2018-11-28 | 富士通株式会社 | 原因特定方法、原因特定プログラム、情報処理システム |
-
2018
- 2018-04-28 CN CN201810403436.3A patent/CN108681500B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890790B2 (en) * | 2006-12-29 | 2011-02-15 | Intel Corporation | Transactional flow management interrupt debug architecture |
CN103154908A (zh) * | 2010-07-28 | 2013-06-12 | 英特尔公司 | 用于事务存储器的最后分支记录指示符 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及系统 |
KR20150037002A (ko) * | 2013-09-30 | 2015-04-08 | 주식회사 유니테스트 | Fpga 기반의 비실장형 스토리지 테스트 장치 |
CN107003894A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 用于硬件事务内存程序的剖析器的装置和方法 |
CN107111488A (zh) * | 2014-12-23 | 2017-08-29 | Arm 有限公司 | 调试数据处理事务 |
CN104765792A (zh) * | 2015-03-24 | 2015-07-08 | 华为技术有限公司 | 一种维度数据存储的方法、装置及系统 |
CN106055467A (zh) * | 2015-04-13 | 2016-10-26 | Arm 有限公司 | 逻辑分析 |
CN105446863A (zh) * | 2015-11-23 | 2016-03-30 | 上海兆芯集成电路有限公司 | 具有记录能力的电子装置与电路状态记录方法 |
CN105939393A (zh) * | 2016-06-30 | 2016-09-14 | 北京奇虎科技有限公司 | 一种任务运行状态的监控方法和系统 |
Non-Patent Citations (2)
Title |
---|
A Performance Debugging Framework for Unnecessary Lock Contentions with Record/Replay Techniques;Xiaofei Liao;《IEEE Transactions on Parallel and Distributed Systems ( Volume: 27, Issue: 7, July 1 2016)》;20150825;全文 * |
基于USB2I2C接口的CMOS图像传感器在线调试系统;姚洪涛;《电子设计工程》;20150915;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108681500A (zh) | 2018-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220252665A1 (en) | On-chip Debugging Device and Method | |
US9047400B2 (en) | Data processor device for handling a watchpoint and method thereof | |
JP4138021B2 (ja) | プロセッサベースのデバイス、ソフトウェア性能プロファイリング情報をもたらす方法およびソフトウェア性能プロファイリング情報を生成し分析するためのソフトウェア開発システム | |
US6065078A (en) | Multi-processor element provided with hardware for software debugging | |
US6609221B1 (en) | Method and apparatus for inducing bus saturation during operational testing of busses using a pattern generator | |
JP2010044747A (ja) | ソフトウェアアプリケーション用メッセージロギング | |
US7596719B2 (en) | Microcontroller information extraction system and method | |
US9069896B2 (en) | Data processor device for handling a watchpoint and method thereof | |
WO2013158788A2 (en) | Devices for indicating a physical layer error | |
EP3961403A1 (en) | Bus monitoring device and method, storage medium, and electronic device | |
EP1125200B1 (en) | Maintaining object size information concurrent with data optimization for debugging | |
US7360117B1 (en) | In-circuit emulation debugger and method of operation thereof | |
CN108681500B (zh) | 具有事务记录能力的系统和事务记录方法 | |
JP6070220B2 (ja) | 電子機器用のデバイス | |
JP2016091277A (ja) | トレースシステムおよびicチップ | |
JP2006323726A (ja) | モニタプログラムおよびリアルタイムトレースシステム | |
CN116991651B (zh) | 一种错误注入方法、片上系统、计算机设备及存储介质 | |
CN117236277B (zh) | 用于检查寄存器的方法及装置、电子设备 | |
US7673121B2 (en) | Circuit for monitoring a microprocessor and analysis tool and inputs/outputs thereof | |
JP5312918B2 (ja) | タイムスタンプ取得回路及びタイムスタンプ取得方法 | |
JP4892406B2 (ja) | 情報処理装置のトランザクション管理方法及び情報処理装置 | |
JP2002132743A (ja) | メモリアクセス監視装置、メモリアクセス監視方法およびメモリアクセス監視用プログラムを記録した記録媒体 | |
JPS62164140A (ja) | デ−タ処理システムの試験方法 | |
CN117194118A (zh) | 用于处理单元系统的数据访问方法及数据访问装置 | |
TWI298438B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210207 Address after: 200131 3rd floor, building 2, No. 200, zhangheng Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Gryfield Intelligent Technology Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Applicant before: Shanghai Zhaoxin Integrated Circuit Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |