在调试异构体系结构中的集成可执行程序时设置断点的方法和设备技术

技术编号:2871837 阅读:244 留言:0更新日期:2012-04-11 18:40
一种在第二执行环境中设置断点的方法,包括:    选择与断点相关的映射标记;    返回一个对应于映射标记的存储器地址;    选择与至少一个第二执行环境中的执行相关联的一个代码模块,其中所选择的代码模块包含所选择的映射标记;    确定是否将所选择的代码模块从至少一个第一执行环境加载到至少一个第二执行环境;    如果至少一个第二执行环境包含所选择的代码模块,在该第二执行环境中的返回的存储器地址设置断点;    如果第二执行环境包含所选择的代码模块,生成与设置断点相关联的断点标记;以及    记录该断点标记,其中该断点标记包含可用来将该模块加载到至少一个第二执行环境的信息。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及多处理,具体而言,本专利技术涉及在面向并行处理器计算系统中的多个处理器的代码和数据上使用调试程序。
技术介绍
在计算机技术中,并行处理非常重要。并行处理通常包括使用多个连接到同一系统的微处理器,用来并发处理一批数据。并行处理一般主要包括三种。这些并行处理系统使用共享存储器或分布式存储器或二者的组合。一般情况下,共享存储器是可以由多个处理器以单个操作,如“加载”或“读”命令来访问的存储器。分布式存储器是被本地化成单个处理器的存储器。换句话说,每个处理器都可以在单个的访问操作中访问与其本身相关联的存储器,但无法在单个操作中访问与其他处理器相关联的存储器。最后,还有一种混合或“异构”的并行处理,其中既有共享存储器又有分布存储器。典型的这样一种混合并行处理器系统包括一个精减指令集(RISC)主处理器单元(MPU),如PowerPCTM处理器,和一个专用或“附加”处理器(APU),如SynergisticTMAPU(SPU)。一般而言,使用MPU来执行通用代码,其中通用代码包括复杂控制流并协调总体的混合并行处理功能。MPU能够访问所有的系统存储器。APU通常用来执行数据流操作。也就是说,APU计算高度重复的多媒体、图形、信号或网络处理工作量,这些工作量的特点是具有高的计算与控制决策比例。在常规的混合系统中,APU无法访问系统存储器,并且其本身的存储器,即局部存储器,通常比共享存储器小。一般情况下,使用混合系统虽然提供了高的计算性能,但对编程模型提出了重大的挑战。这类问题与APU相关。APU无法直接寻址系统存储器。因此,任何代码要在APU上运行,必须先传送到与APU相关联的局部存储器,然后才能在APU上执行此代码。此外,APU和MPU还可以具有不同的指令集。此外,还存在与调试要被编译和链接以在独立的执行环境中运行的有关软件调试其他问题。为帮助解决软件设计和实现过程中存在的各种问题,程序员使用调试程序。一般而言,调试程序使用的低级操作按照三种原语之一进行分类。第一种调试程序原语涉及在一个已经定义的位置停止程序。这要求调试程序(1)识别与函数名称、文件/行号或其他唯一标识源代码结构关联的地址,以及(2)设置一个断点。第二个调试程序原语是关于将一个程序位置映射到函数名称、文件/行号或其他唯一标识源代码结构关联的地址。这要求调试程序将一个存储器地址映射到这种源结构。所映射的存储器地址通常是程序计数器PC的当前地址,程序计数器PC涉及到由调试程序再次读取PC寄存器的值。本领域技术人员应该理解,程序计数器包括当前正在执行的指令的存储器地址。第三个调试程序原语允许读取和写入程序数据。这要求调试程序识别与数据对象或变量相关的存储器地址。一般情况下,设置断点与读访问或写访问地址存储器位置的内容结合使用。通常,上述三个原语中的每一个包括一个映射步骤和一个操作步骤。映射步骤识别可执行对象代码和源代码之间的相关性,而操作步骤包括由调试程序执行的其他操作。为了执行映射步骤,调试程序使用最初由编译器生成并由链接器更新的映射表和调试表,对每个程序对象的位置、每个标签、文件/行号和对象地址之间的相关性、变量的布置、堆栈的布置等等进行描述。通常,在非异构体系结构中为调试程序设置断点采用如下两种方式。第一种方式是在带有陷阱指令的“断点”,或者在将要中断程序的正常执行的其他序列替换所选择的指令或数据,并将控制传送给调试程序。第二种方式是用断点的地址值(或地址范围)初始化断点寄存器。硬件比较程序计数器,即包含执行的指令地址的寄存器,与一个或多个断点寄存器的值。如果值匹配,则在断点寄存器中的值与程序计数器匹配时,将控制转移到调试程序。匹配可以包括各种匹配函数,如“等于”,“落入一个范围”,“小于”,“大于”或其它布尔函数。但是,在异构体系结构中设置断点会更加复杂。例如,单独处理器组件的指令集可以不同。这在调试中会带来问题。例如,根据是否将一个模块加载到第二执行环境,该模块的各种代码配置是不同的。此外,当在可以加载和卸载的模块中设置断点时,在这种加载和卸载活动中与所请求的断点相一致,正确地保持断点是很重要的。因此,当一个模块由另一个模块取代,并在之后重新加载时,必须注意在断点已经设置时保持所有断点。因此,希望有一个能够在混合并行处理系统使用的调试程序,能够克服常规调试程序的局限性。
技术实现思路
本专利技术提供了一个第一执行环境,一个第二执行环境,以及一个断点请求。模块带有与之相关联的请求断点。该模块在执行从第一执行环境向第二执行环境的传送时使用。还提供了一个断点请求表。读取该断点请求表,从该断点请求表提取断点标记。断点标记在将一个断点插入到与该断点请求相关的地址时使用。附图简要说明为了更全面地理解本专利技术及其各种优点,下面将结合附图对本专利技术进行详细说明,其中附图为附图说明图1概括地描述了一种其中使用调试程序的混合并行处理环境;图2描述了在与APU相关的局部存储器中设置断点的方法;图3描述了当从系统存储器向与APU相关的局部存储器加载模块时,在与APU相关的存储器中设置断点的方法;图4描述从局部存储器和系统存储器删除断点的方法。具体实施例方式在下文中阐述了各种特定的细节以便于全面地理解本专利技术。但是,本领域普通技术人员应该认识到本专利技术不需要这些特定细节的内容也可以实现本专利技术。在其他的实例中,对公知的部件用示意图或框图的形式来说明,以免不必要的细节妨碍对本专利技术的清楚理解。此外,对于大部分内容,关于网络通信、电磁信号技术等的细节内容均略去,因为这些内容对完整地理解本专利技术是不必要的,并且这些内容应该是相关领域的普通技术人员能够理解的。还应提起注意的是,除非另外指明,这里描述的所有功能都可以即用硬件又用软件,或者用二者组合的形式实现。但在优选实施例中,除非另外指明,这些功能是由处理器根据计算机程序代码、软件和/或被编程为执行这些功能的集成电路执行的,如计算机或电子数据处理器。参考图1,引用标记100通常指异构并行处理体系结构,提供了一种环境,用来使用存根函数传送信息。该体系结构100包括一个分布式计算环境110和一个系统存储器160,二者由一个接口150以电子方式连接。环境110包括多个APU120,每个都带有其各自的局部存储器125。环境110还包括一个MPU130,如RISC处理器及其一级缓冲存储器135。在一个实施例中,MPU130通过一个信号路径145连接到系统存储器160。在一个实施例中,APU包括一个SPU。在另一个实施例中,使用了多个MPU。环境110还包括一个存储器流控制器(MFC)140。通常,MFC140用来实现MPU130和APU120处理器之间的数据移动和同步功能,并提供主系统存储器160和局部存储器125之间的数据传送。在图1中,MFC140通过接口150连接到系统存储器160。通常,MFC140根据主处理器130或APU120的请求,在系统存储器160和APU120的局部存储器125之间实现文本(即代码)和数据这些信息的移动。因为APU120不能直接访问系统存储器160,MFC140根据传送函数,如在APU120或MPU130上运行的存根函数的请求,在系统存储器160和APU120的局部存储器125之间传送信息。在一个实本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:迈克尔·K·克施温德凯瑟琳·M·奥布莱恩约翰·K·奥布莱恩瓦伦蒂纳·萨拉普罗
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1