当前位置: 首页 > 专利查询>英特尔公司专利>正文

采用无探针跟踪捕获的重播体系结构执行制造技术

技术编号:8304014 阅读:265 留言:0更新日期:2013-02-07 11:38
一种用于捕获在系统上执行的软件的体系结构数据的系统和方法,其中体系结构数据可包括状态数据和事件数据。被捕获的体系结构数据可在模拟器中重放,其中可从模拟器获得对应于软件的故障信息。

【技术实现步骤摘要】
【国外来华专利技术】
实施例一般涉及软件故障的评估。更具体地,实施例涉及被捕获的体系结构数据的重放以评估软件故障。讨论调试软件的现有技术可涉及在所讨论的平台上执行测试内容并手动地修剪测试内容以隔离故障源。此类方法在问题解决之前可能需要多次迭代。此外,修剪测试内容可能仅在内容源可用时才是可行的。调试软件的其他技术可涉及使用逻辑分析器来跟踪所执行的软件逻辑,其中进行跟踪数据的全面分析。然而,多核和/或多线程处理器的趋势可引 起探针通道的数量的增加和逻辑分析器的成本和复杂度的增加。简言之,调试软件的传统方法可能是耗时且昂贵的。附图说明通过阅读以下说明书和所附权利要求,以及通过参照以下附图,本专利技术的实施例的各个优点对本领域普通技术人员而言是显而易见的,其中图I是根据一实施例的评估软件的方案的示例的框图;图2是根据一实施例的捕获存储器事务的方法的示例的流程图;图3是根据一实施例的系统的示例的框图。具体实施例方式实施例可提供一种方法,在该方法中捕获在系统上执行的软件体系结构数据。体系结构数据可在模拟器中重放,其中可从模拟器获得对应于软件的故障信息。其他实施例可包括具有一组存储的指令的计算机可读存储介质,该指令在被处理器执行时使得计算机捕获在系统上执行的软件的体系结构数据并在模拟器中重放该体系结构数据。指令还可使得计算机从模拟器获得故障信息,其中故障信息对应于软件。此外,实施例可提供一种方法,其中利用系统的固件以响应于多个中断周期性地捕获在系统上执行的软件的体系结构数据。体系结构数据可包括状态数据和事件数据。体系结构数据的格式可被转换为与模拟器相关联的格式,其中体系结构数据可在模拟器中被重放。该方法还可提供从模拟器获得故障信息,其中故障信息对应于软件。现转到图1,示出了在系统上执行的评估软件的方案10。方案10可用于支持、管理和/或提高诸如所评估软件的调试、验证和优化之类的各种各样的操作。此外,在其上执行软件的系统可包括诸如膝上型计算机、个人数字助理(PDA)、移动互联网设备(MID)、无线智能手机、媒体播放器、成像设备等等或其任何组合之类的移动平台。系统也可以是诸如个人计算机计算机(PC)、服务器、工作站等的固定平台的一部分。一般而言,所示方案10包括硅执行序列12和模拟器执行序列14。硅执行序列12可与通过诸如通用处理器的单核或多核、固定功能硬件(例如,嵌入式微处理器)等集成电路的软件执行相关联,其中,集成电路可使用诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术或其任何组合之类的电路技术来制造。在一个示例中,由于诸如多线程或多核环境之类的复杂执行环境,软件具有很多交互和依赖关系O在所示示例中,通过开始在执行处理框16的系统上执行软件,将系统置于测试下。箭头实例18 (18a-18b)表示以周期方式或以其它方式发出中断,其中中断可发起通过转储处理程序20对体系结构状态数据22的捕获。被捕获的体系结构状态数据22可包括与诸如取指令单元、指令解码器、高速缓存、执行单元、寄存器等等系统体系结构的多个方 面相关的数据。随着软件的执行在后续执行处理框30和34继续,体系结构事件数据24还可分别经由事件捕获处理框26和32捕获。体系结构事件数据可包括存储器事务(例如,力口载一存储)数据和其他数据。所示序列12继续直至在框28遇到故障点。图2示出捕获存储器事务数据的方法42。方法42可在作为储存在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM (PR0M)、闪存等存储器的机器或计算机可读介质中的一组逻辑指令的可执行软件中实现,也可以在使用诸如ASIC、CMOS或TTL技术或其中任何组合的电路技术的固定功能硬件中实现。举例而言,可以用一种或多种编程语言的任意组合来编写用于实施在方法42中所示的操作的计算机程序代码,这些编程语言包括诸如Java、Smalltalk、C++等面向对象的编程语言以及诸如“C”编程语言或类似的编程语言的传统程序的编程语言。另一方面,诸如汇编语言编程或机器代码之类的固定功能硬件或更低级固件指令可用于实施在方法42中所示的操作。实际上,上述体系结构状态转储处理器20操作、体系结构事件捕获框26、32和中断箭头实例18 (图I)均可在被测试系统的固件(例如,定制微码)中全部自动化。因此,所示方法不需要手动调试或使用复杂的逻辑分析器(例如,提供无外部设备的“无探针”测试布置)来获得被测试软件的故障信息。所示的处理框44提供确定存储器事务数据捕获固件是否启用。如果启用,通过测试软件的操作访问的一个或多个地址可在框46中被标识并捕获。捕获可包括在每次存储器访问中涉及的物理以及线性地址。还可收集诸如尝试每个存储器访问的执行流中的指令之类的其他执行数据和在加载操作的情况(例如对标志、寄存器的改变,等等)下的每个存储器操作的结果。如下所讨论的,框48提供封装被捕获的地址和执行数据,以及框50提供存储经封装的信息以用于后续转换和/或传输至模拟器。此外,在框52可退出存储器操作,而不引起被测试软件的宏观或微观操作流的任何变化。返回至图1,被捕获的体系结构状态数据22和事件数据24可被转换为与模拟器相关联的格式,其中模拟器处理框36提供利用被捕获的体系结构状态数据22来初始化模拟器。体系结构模拟器的示例包括但不限于从新罕布什尔州纳舒厄市的Gambit通信公司购买的MlMlCwi模拟器、Bochs开源仿真器(例如,Bochs IA-32仿真器v2. 4. 5, 2010年4月25日,Geeknet公司)以及QEMU开源仿真器(例如,QEMU vO. 12. 4,2010年5月4日)。处理框38提供使用被捕获的事件数据24在模拟器中重放软件,其中可在框40从模拟器获得被测试软件的故障信息。故障信息可被用于进行诸如调试操作、验证操作和优化操作之类的附加操作。例如,在系统调试使用模型中,体系结构重放可启用对被归类为软件故障的问题的快速分类。一个副产品可能是在需要更详细的调制时对问题的隔离。同样,从环境和BIOS(基本输入/输出系统)相关原因所显现的故障问题可使用所示方法来标识。在验证的情况下,故障信息可对互操作性和/或兼容性有影响,尤其在多核/多线程环境下操作时。可能浮现的问题包括但不限于核/线程之间的同步问题、处理器间加载/存储问题、处理器间中断的排序,等等。因此,体系结构重放可便于对潜在故障进行根本原因分析。此外,所示方法可被包含在软件开发包中,当与诸如编译器和线程化工具之类的其他工具相联系时,软件开发包可由设备制造商和软件供应商使用以启用和优化软件工具链。图3示出了计算系统54,其中系统54可以是诸如膝上型计算机、PDA、MID、无线 智能电话、媒体播放器、成像设备等等或其任何组合之类的移动平台的一部分。系统54也可以是诸如PC、服务器、工作站等固定平台的一部分。所示系统10包括主机处理器56,该主机处理器56可包括提供对系统存储器60的访问的集成存储器控制器58,该系统存储器60可包括双数据率(DDR)同步动态随机存取存储器(SDRAM,例如DDR3 SDRAMJEDEC标准JESD79-3C,2008年4月)模块。系统存储器60的模块可被合并为单列直插式存本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:R·德瓦拉杰J·D·弗兰科
申请(专利权)人:英特尔公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1