一种处理器地址数据跟踪的装置及方法

文档序号:6585367阅读:175来源:国知局
专利名称:一种处理器地址数据跟踪的装置及方法
技术领域
本发明涉及一种获取处理器数据的装置及方法,尤其涉及一种处理器地址数据跟
踪的装置及方法。
背景技术
在现代计算机系统的软硬件设计中,软硬件的调试与程序分析占据了研发过程的 很高比重。 设置于处理器内的用于收集处理器地址数据信息的数据采集装置根据接收到的 指令采集处理器地址数据信息并发送至外部以供分析。 现有的在线调试方式中,很难在不影响待测程序正常工作的前提下,快速、批量获 得待测程序执行中的指令流和数据信息。通常情况下都会或多或少的影响到中央处理器的 工作。有时,为了在不同环境下达到相同的性能,则会相对占用到较大的处理器面积;而有
时,在占用相同的处理器面积时,则又达不到预期的速度。这一矛盾严重制约了软硬件调试 的进一步发展,也影响了程序优化的进程。

发明内容
本发明针对现有技术的弊端,提供一种处理器地址数据跟踪的装置及方法。
本发明所述的处理器地址数据跟踪的装置,包括设置于处理器内用于收集处理器 地址数据信息的数据收集装置,还包括 触发装置,用于根据预定触发条件向同步信息生成装置及数据包生成装置发出触 发信息; 同步信息生成装置,用于根据接收到的触发信息生成当前处理器地址数据信息对 应的同步信息,并将该同步信息发送至数据包生成装置; 数据包生成装置,用于根据接收到的触发信息、同步信息、以及处理器地址数据信 息生成处理器地址数据包; 数据包存储装置,用于存储数据包生成装置生成的处理器地址数据包;
数据包导出装置,用于将数据包存储装置内存储的处理器地址数据包导出。
本发明所述的处理器地址数据跟踪的装置中,进一步包括用于将导出的处理器地 址数据包还原为对应于处理器地址数据信息格式的数据还原装置。 本发明所述的处理器地址数据跟踪的装置中,所述预定触发条件包括外部输入指 令、或数据断点、或进程切换,或处理器模式的切换。 本发明所述的处理器地址数据跟踪的装置中,所述数据包生成装置进一步包括数 据信息压縮装置、数据信息转换装置、以及数据包组装装置,其中, 所述数据信息压縮装置用于根据预定规则对处理器地址数据信息进行压縮;
所述数据转换装置用于将压縮后的处理器地址数据信息打包为预定格式的处理 器地址数据包;
所述数据包组装装置用于将设定数量的处理器地址数据包根据预定规则组装为 一个新的处理器地址数据包。 本发明所述的处理器地址数据跟踪的装置中,所述数据信息压縮装置压縮处理器 地址数据信息的预定规则包括 在指令流发生断续时传送处理器指令,且仅传送当前处理器指令与上一条处理器 指令的差值,同时将该指令的差值添加为压縮标识信息; 或者,传送当前地址数据与上一条地址数据的差值,同时将该地址数据的差值添 加为压縮标识信息。 本发明所述的处理器地址数据跟踪的装置中,所述预定格式包括时序信息、指令 程序计数器信息、存储指令地址信息、存储指令数据信息、指令类型信息、数据压縮方式信 息、数据内容信息、及/或是否为同一条指令产生的数据包的信息。 本发明所述的处理器地址数据跟踪的装置中,所述数据包组装装置组装的预定规 则为将设定数量的处理器地址数据包组装为与数据包存储装置的存储器宽度相同的新的 处理器地址数据包,并记录该新的处理器地址数据包中第一个处理器地址数据包的位置信 息。 本发明所述的处理器地址数据跟踪的装置中,所述数据包存储装置进一步包括存 储控制装置,该存储控制装置根据数据包组装装置组装的新的处理器地址数据包数量及数 据包导出装置导出的处理器地址数据包的数量控制数据包存储装置内相应行列的写入或 读出。 本发明所述的处理器地址数据跟踪的装置中,所述数据包导出装置通过JTAG导
出处理器地址数据包,或者,通过硬件仿真加速器导出处理器地址数据包。 本发明还提供一种处理器地址数据跟踪的方法,包括如下步骤 步骤一,根据预定触发条件将处理器地址数据信息转换为处理器地址数据包,同
时生成与当前处理器地址数据信息对应的同步信息; 步骤二,将上述转换的处理器地址数据包及生成的同步信息进行存储; 步骤三,根据外部指令将上述处理器地址数据包及同步信息导出。 本发明所述的处理器地址数据跟踪的方法中,所述步骤三进一步包括,将导出的
处理器地址数据包还原为对应于处理器地址数据信息的格式。 本发明所述的处理器地址数据跟踪的方法中,所述步骤一中,所述触发条件包括 外部输入指令、或数据断点、或进程切换,或处理器模式的切换。 本发明所述的处理器地址数据跟踪的方法中,所述步骤一中,将处理器地址数据 信息根据预定规则进行压縮,并打包为预定格式的处理器地址数据包,再将设定数量的处 理器地址数据包根据预定规则组装为一个新的处理器地址数据包。 本发明所述的处理器地址数据跟踪的方法中,所述压縮处理器地址数据信息的预 定规则包括 在指令流发生断续时传送处理器指令,且仅传送当前处理器指令与上一条处理器 指令的差值,同时将该指令的差值添加为压縮标识信息; 或者,传送当前地址数据与上一条地址数据的差值,同时将该地址数据的差值添 加为压縮标识信息。
5
本发明所述的处理器地址数据跟踪的方法中,所述预定格式包括时序信息、指令 程序计数器信息、存储指令地址信息、存储指令数据信息、指令类型信息、数据压縮方式信 息、数据内容信息、及/或是否为同一条指令产生的数据包的信息。 本发明所述的处理器地址数据跟踪的方法中,所述组装处理器地址数据包的预定 规则为将设定数量的处理器地址数据包组装为与存储新的处理器地址数据包的存储器宽 度相同的新的处理器地址数据包,并记录该新的处理器地址数据包中第一个处理器地址数 据包的位置信息。 本发明所述的处理器地址数据跟踪的装置及方法中,实现了对处理器地址数据信 息的实时收集及快速导出,对处理器的实际工作影响得到降低,更加方便研发人员发现硬 件上的设计缺陷,分析系统瓶颈,以及对程序进行优化。


图1为本发明所述处理器地址数据跟踪的装置的结构示意图;
图2为本发明所述处理器地址数据跟踪的方法的流程示意图。
具体实施例方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文 字能够据以实施。 本发明所述的处理器地址数据跟踪的装置及方法,应用于计算机系统软硬件设计 中。 如图1所示,本发明所述的处理器地址数据跟踪的装置,包括数据收集装置、同步 信息生成装置、触发装置、数据包生成装置、数据包存储装置、数据包导出装置,还可以在上 述基础上增加数据还原装置。 下面详细说明上述构成处理器地址数据跟踪的装置中的各个装置。 所述数据收集装置设置于处理器内,该数据收集装置从处理器的各个流水级中,
在不同时间、不同位置收集处理器地址数据信息,并将处理器地址数据信息储存到操作队
列中以供后续的数据包生成装置使用。 所述数据收集装置收集的处理器地址数据信息可分为三类。 第一类信号,是之前没有保存的,例如,在访存指令地址虚实转换时存下的地址, 在访存指令读取缓存或外部存储器时存下数据到访存指令队列,到写回时一起存入操作队 列。 第二类信号,是有些信息不用特地保存,可以复用处理器原有的信号,例如,在提 交总线上可以得到指令的程序计数器信息。 第三类信号,是有一些信号在处理器中使用后就丢弃了,没有反映到提交总线上, 也要把它保留并引出来,例如,存储指令的数据。 所述触发装置用于根据预定的触发条件向同步信息生成装置及数据包生成装置 发出触发信息,该触发信息可触发同步信息生成装置生成与当前处理器地址数据信息对应 的同步信息,以及触发数据包生成装置生成处理器地址数据包。所述触发装置可被预先定 义好的多种事件触发,即所述预定触发条件可包括外部输入指令、或数据断点、或进程切换,或处理器模式的切换。 在触发装置内部包含一个状态机,可以根据用户配置的状态机事件改变状态机的 状态。当触发装置接收到外部输入指令时,其状态机的状态即会改变,由此,可判断处理器 地址数据跟踪进程的开始或结束, 所述同步信息生成装置用于根据接收到的触发信息生成当前处理器地址数据信 息对应的同步信息,并将该同步信息发送至数据包生成装置。该同步信息主要是供后续的 数据还原装置在将处理器地址数据包还原为处理器地址数据信息时使用。当处理器地址数 据跟踪进程开始或者处理器模式改变时均需要需要通知数据还原装置,此时,同步信息生 成装置即生成反应当前处理器状态的同步信息。 所述数据包生成装置用于根据接收到的触发信息、同步信息、以及数据收集装置 收集到的处理器地址数据信息生成处理器地址数据包。该生成的处理器地址数据包可在后 续被还原后供软硬件调试参考之用。 如图1所示,本发明中所述数据包生成装置可具体包括数据信息压縮装置、数据 信息转换装置、以及数据包组装装置。 其中,所述数据信息压縮装置用于根据预定规则对处理器地址数据信息进行压 縮。该数据信息压縮装置分别与同步信息生成装置、触发装置、数据收集装置相连,其接收 到处理器地址数据信息、同步信息、触发信息后,根据触发信息启动对处理器地址数据信息 压縮,并将压縮后的处理器地址数据信息与同步信息一同传送至后续的数据信息转换装 置。所述对处理器地址数据信息进行压縮的预定规则可以包括在指令流发生断续的情况 下传送处理器指令,且仅传送当前处理器指令与上一条处理器指令的差值,这样可以降低 有效位数,在上述压縮过程中,还需将该指令的差值作为所采用的压縮方式的标识信息添 加到压縮后的处理器地址数据中,以便后续还原处理器地址数据信息之用。所述对处理器 地址数据信息进行压縮的预定规则还可以包括传送当前地址数据与上一条地址数据的差 值,同时将该地址数据的差值作为所采用的压縮方式的标识信息添加到压縮后的地址数据 中,以便后续还原处理器地址数据信息之用。或者,将用户不需要的地址数据信息去除,以 减少数据的有效位数。 所述数据信息转换装置用于将数据信息压縮装置压縮后的处理器地址数据信息 打包为预定格式的处理器地址数据包。这里所述的预定格式主要是为后续处理器地址数据 包还原之用,该预定格式即打包后的处理器地址数据包中可以包括时序信息、指令程序计 数器信息、存储指令地址信息、存储指令数据信息、指令类型信息、数据压縮方式信息、数据 内容信息、及/或是否为同一条指令产生的数据包的信息。 所述数据包组装装置用于将上述转换而成的设定数量的处理器地址数据包根据 预定规则组装为一个新的处理器地址数据包。这里所述的处理器地址数据包的设定数量是 由所述预定规则决定的。在本发明中,所述预定规则在于将设定数量的处理器地址数据包 组装为与数据包存储装置的存储器宽度相同的新的处理器地址数据包,并记录该新的处理 器地址数据包中第一个处理器地址数据包的位置信息。因此,根据数据包存储装置的存储 器宽度,所述数据包组装装置组装而成的新的处理器地址数据包的数量要根据处理器一个 时钟周期内生成的信息数量决定,可以是一个,也可以是多个。 所述数据包存储装置用于存储上述生成的新的处理器地址数据包。该数据包存储
7的数据包导出装置导出。所述数据包 存储装置根据数据包组装装置在一个时钟周期内可以组装的的包的数量来组织,可以有一 列或多列,列数一般为2的N次方。 本发明中,所述数据包存储装置还进一步包括存储控制装置,该存储控制装置根 据数据包组装装置组装的新的处理器地址数据包数量及数据包导出装置导出的处理器地 址数据包的数量控制数据包存储装置内相应行列的写入或读出。当数据包导出装置需要处 理器地址数据时,该存储控制装置可将数据包存储装置内的处理器地址数据包传送至数据 包导出装置。所述数据包存储装置可同时被读写,当数据包存储装置的某一列没有被写入 的时候可以被读出,如果发生读写冲突,则写优先于读。如果处理器地址数据溢出,该存储 控制装置可以根据预先的设定,选择暂停程序运行或丢弃已有的处理器地址数据信息,并 循环写入覆盖。当数据包组装装置有组装成的处理器地址数据包要写入数据包存储装置 时,不能读取相应的行,而只能读取未被写入的行。 所述数据包导出装置用于将数据包存储装置内存储的处理器地址数据包导出。该 数据包导出装置具有专门定义的指令,可将读取的处理器地址数据包送到调试软件或外部 寄存器中。 该数据包导出装置导出处理器地址数据包的方式可包含如下两种一种是通过设 置于处理器内的JTAG传送到上位机,此种导出方法相对较慢;另一种是通过单独设置的硬 件仿真加速器导出,此种导出方法相对较快。所述数据包导出装置根据JTAG指令和用户设 置生成两种方式的握手信号,同时为输出提供缓冲,解决位宽不等,并行转串行的问题。
本发明中还可设置用于将导出的处理器地址数据包还原为对应于原始处理器地 址数据信息格式的数据还原装置。所述数据还原装置还原处理器地址数据包时,需要参考 数据包中的同步信息。对应前述数据包生成装置中的数据信息压縮装置,该数据还原装置 对处理器地址数据包的还原也包含了解压縮的过程;而对应前述数据信息转换装置及数据 包组装装置,该数据还原装置对处理器地址数据包的还原还包含了格式识别的过程。通过 该数据还原装置,导出的处理器地址数据包被还原为用户可识别的程序执行信息。
本发明还提供一种处理器地址数据跟踪的方法,如图2所示,包括如下步骤
步骤101,根据预定触发条件将处理器地址数据信息转换为处理器地址数据包,同 时生成与当前处理器地址数据信息对应的同步信息。 本步骤中,根据预定触发条件,处理器地址数据信息被转换为处理器地址数据包。 由于处理器地址数据信息的数据量比较大,若不进行转换会导致传输速度很慢,并使处理 器停顿等待传输数据的时间增长。因此,本发明中将处理器地址数据信息转换为处理器地 址数据包,该转换过程包括将处理器地址数据信息根据预定规则进行压縮,并打包为预定 格式的处理器地址数据包,再将设定数量的处理器地址数据包根据预定规则组装为一个新 的处理器地址数据包。 这里所述预定的触发条件可包括外部输入指令、或数据断点、或进程切换,或处理
器模式的切换。而处理器地址数据信息在该触发条件下被转换为处理器地址数据包,同时,
为方便后续还原该处理器地址数据包,还会根据触发条件产生与当前处理器地址数据信息
对应的同步信息,该同步信息随转换后的处理器地址数据包一同传输至后续进程。 这里所述的压縮的预定规则包括在指令流发生断续的情况下传送处理器指令,且仅传送当前处理器指令与上一条处理器指令的差值,这样可以降低有效位数,在上述压 縮过程中,还需将该指令的差值作为所采用的压縮方式的标识信息添加到压縮后的处理器 地址数据中,以便后续还原处理器地址数据信息之用。所述对压縮的预定规则还可以包括 传送当前地址数据与上一条地址数据的差值,同时将该地址数据的差值作为所采用的压縮 方式的标识信息添加到压縮后的地址数据中,以便后续还原处理器地址数据信息之用。或 者,将用户不需要的地址数据信息去除,以减少数据的有效位数。 所述预定的格式主要为方便后续的处理器地址数据包还原进程而考虑。该处理器 地址数据包的预定的格式可包含如下信息时序信息、指令程序计数器信息、存储指令地址 信息、存储指令数据信息、指令类型信息。
所述组装新的处理器地址数据包的预定规则可为将设定数量的处理器地址数据
包组装为与存储该新的处理器地址数据包的存储器宽度相同的新的处理器地址数据包,并
记录该新的处理器地址数据包中第一个处理器地址数据包的位置信息。
步骤102,将上述转换的处理器地址数据包及生成的同步信息进行存储。 对应上述,本步骤中,将组装后的新的处理器地址数据包及前述产生的同步信息
进行存储,以供后续程序调用。 步骤103,根据外部指令将上述处理器地址数据包及同步信息导出。 本步骤中,遇有要求导出新的处理器地址数据包的外部指令输入时,将步骤102
中存储的新的处理器地址数据包连通同步信息一并导出,以供外部程序调用。 在将处理器地址数据包及同步信息导出时,可采取如下两种方式一种是通过设
置于处理器内的JTAG传送到上位机,此种导出方法相对较慢;另一种是通过单独设置的硬
件仿真加速器导出,此种导出方法相对较快。 本发明所述处理器地址数据跟踪的方法,实现了对处理器地址数据信息的收集及 导出,但最终还需将上述处理器地址数据信息进行再现及使用。因此,本发明还在步骤103 中进一步包括了如下步骤,即将导出的处理器地址数据包还原为对应于原始的处理器地址 数据信息的格式。在进行还原的过程中,需要参考数据包中的同步信息。对应前述数据包 生成过程中的数据压縮过程,该还原过程也包含了解压縮的过程;而对应数据包组装过程, 该还原过程还包含了格式识别的过程。通过该还原过程,导出的处理器地址数据包被成为 用户可识别的程序执行信息。 本发明所述的处理器地址数据跟踪的装置及方法中,实现了对处理器地址数据信 息的实时收集及快速导出,对处理器的实际工作影响得到降低,更加方便研发人员发现硬 件上的设计缺陷,分析系统瓶颈,以及对程序进行优化。 尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列 运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地 实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限 于特定的细节和这里示出与描述的图例。
权利要求
一种处理器地址数据跟踪的装置,包括设置于处理器内用于收集处理器地址数据信息的数据收集装置,其特征在于,还包括触发装置,用于根据预定触发条件向同步信息生成装置及数据包生成装置发出触发信息;同步信息生成装置,用于根据接收到的触发信息生成当前处理器地址数据信息对应的同步信息,并将该同步信息发送至数据包生成装置;数据包生成装置,用于根据接收到的触发信息、同步信息、以及处理器地址数据信息生成处理器地址数据包;数据包存储装置,用于存储数据包生成装置生成的处理器地址数据包;数据包导出装置,用于将数据包存储装置内存储的处理器地址数据包导出。
2. 如权利要求1所述的处理器地址数据跟踪的装置,其特征在于,进一步包括用于将 导出的处理器地址数据包还原为对应于处理器地址数据信息格式的数据还原装置。
3. 如权利要求2所述的处理器地址数据跟踪的装置,其特征在于,所述预定触发条件 包括外部输入指令、或数据断点、或进程切换,或处理器模式的切换。
4. 如权利要求2所述的处理器地址数据跟踪的装置,其特征在于,所述数据包生成装 置进一步包括数据信息压縮装置、数据信息转换装置、以及数据包组装装置,其中,所述数据信息压縮装置用于根据预定规则对处理器地址数据信息进行压縮; 所述数据转换装置用于将压縮后的处理器地址数据信息打包为预定格式的处理器地 址数据包;所述数据包组装装置用于将设定数量的处理器地址数据包根据预定规则组装为一个 新的处理器地址数据包。
5. 如权利要求4所述的处理器地址数据跟踪的装置,其特征在于,所述数据信息压縮 装置压縮处理器地址数据信息的预定规则包括在指令流发生断续时传送处理器指令,且仅传送当前处理器指令与上一条处理器指令 的差值,同时将该指令的差值添加为压縮标识信息;或者,传送当前地址数据与上一条地址数据的差值,同时将该地址数据的差值添加为 压縮标识信息。
6. 如权利要求4所述的处理器地址数据跟踪的装置,其特征在于,所述预定格式包括 时序信息、指令程序计数器信息、存储指令地址信息、存储指令数据信息、指令类型信息、数 据压縮方式信息、数据内容信息、及/或是否为同一条指令产生的数据包的信息。
7. 如权利要求4所述的处理器地址数据跟踪的装置,其特征在于,所述数据包组装装 置组装的预定规则为将设定数量的处理器地址数据包组装为与数据包存储装置的存储器 宽度相同的新的处理器地址数据包,并记录该新的处理器地址数据包中第一个处理器地址 数据包的位置信息。
8. 如权利要求2所述的处理器地址数据跟踪的装置,其特征在于,所述数据包存储装 置进一步包括存储控制装置,该存储控制装置根据数据包组装装置组装的新的处理器地址 数据包数量及数据包导出装置导出的处理器地址数据包的数量控制数据包存储装置内相 应行列的写入或读出。
9. 如权利要求2所述的处理器地址数据跟踪的装置,其特征在于,所述数据包导出装置通过JTAG导出处理器地址数据包,或者,通过硬件仿真加速器导出处理器地址数据包。
10. —种处理器地址数据跟踪的方法,其特征在于,包括如下步骤步骤一,根据预定触发条件将处理器地址数据信息转换为处理器地址数据包,同时生 成与当前处理器地址数据信息对应的同步信息;步骤二,将上述转换的处理器地址数据包及生成的同步信息进行存储; 步骤三,根据外部指令将上述处理器地址数据包及同步信息导出。
11. 如权利要求io所述的处理器地址数据跟踪的方法,其特征在于,所述步骤三进一步包括,将导出的处理器地址数据包还原为对应于处理器地址数据信息的格式。
12. 如权利要求11所述的处理器地址数据跟踪的方法,其特征在于,所述步骤一中,所 述触发条件包括外部输入指令、或数据断点、或进程切换,或处理器模式的切换。
13. 如权利要求11所述的处理器地址数据跟踪的方法,其特征在于,所述步骤一中,将 处理器地址数据信息根据预定规则进行压縮,并打包为预定格式的处理器地址数据包,再 将设定数量的处理器地址数据包根据预定规则组装为一个新的处理器地址数据包。
14. 如权利要求13所述的处理器地址数据跟踪的方法,其特征在于,所述压縮处理器 地址数据信息的预定规则包括在指令流发生断续时传送处理器指令,且仅传送当前处理器指令与上一条处理器指令 的差值,同时将该指令的差值添加为压縮标识信息;或者,传送当前地址数据与上一条地址数据的差值,同时将该地址数据的差值添加为 压縮标识信息。
15. 如权利要求13所述的处理器地址数据跟踪的方法,其特征在于,所述预定格式包 括时序信息、指令程序计数器信息、存储指令地址信息、存储指令数据信息、指令类型信息、 数据压縮方式信息、数据内容信息、及/或是否为同一条指令产生的数据包的信息。
16. 如权利要求13所述的处理器地址数据跟踪的方法,其特征在于,所述组装处理器 地址数据包的预定规则为将设定数量的处理器地址数据包组装为与存储新的处理器地址 数据包的存储器宽度相同的新的处理器地址数据包,并记录该新的处理器地址数据包中第 一个处理器地址数据包的位置信息。
全文摘要
本发明公开了一种处理器地址数据跟踪的装置及方法,所述装置包括数据收集装置,还包括触发装置、同步信息生成装置、数据包生成装置、数据包存储装置、数据包导出装置。所述方法包括如下步骤根据预定触发条件将处理器地址数据信息转换为处理器地址数据包,同时生成与当前处理器地址数据信息对应的同步信息;将上述转换的处理器地址数据包及生成的同步信息进行存储;根据外部指令将上述处理器地址数据包及同步信息导出。本发明所述的处理器地址数据跟踪的装置及方法中,实现了对处理器地址数据信息的实时收集及快速导出,对处理器的实际工作影响得到降低,更加方便研发人员发现硬件上的设计缺陷,分析系统瓶颈,以及对程序进行优化。
文档编号G06F11/36GK101739338SQ200910243810
公开日2010年6月16日 申请日期2009年12月21日 优先权日2009年12月21日
发明者冯睿鑫, 徐翠萍, 李祖松 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1