在处理环境中控制指令执行的制作方法

文档序号:6476371阅读:130来源:国知局
专利名称:在处理环境中控制指令执行的制作方法
技术领域
本发明一般涉及处理环境中的处理,具体地,涉及在处理环境中控制指
令执行。
背景技术
通常,在指令流的执行期间,执行单个指令,进行多个测试,且接着执 行下一个指令等。被进行的测试包括例如检查是否正跨越页边界、检查特定
处理模式(诸如,某些调试模式)是否在作用中(active),以及确定适当的 执行模式。在每一指令后进行这些测试以确保指令执行正确地继续进行。
虽然这些测试的进行确保合适的指令执行,但其成本很高。即,在每一 指令后这些测试的执行相当大地影响系统性能。

发明内容
基于前述内容,存在对于使处理流线化(streamline)的能力的需求,使得 不太频繁地进行测试。举例而言,存在不必进行测试的时间。作为一示例, 如果被执行的指令处于页的开始,则不必检查页边界跨越。因此,存在对于 允许在选定时间进行测试的能力的需求。另外,存在对于在不进行各种测试 的情况下使一指令能够在另一指令后被处理的能力的需求。
通过提供如权利要求l所述的方法、相应系统和计算机程序,先前技术的 缺点得以克服且提供了额外优点,
通过本发明的技术来实现额外的特征以及优点。本发明的其它实施例以 及方面在这里得以详细描述且被考虑为所请求保护的本发明的一部分。


本发明的一个或多个方面被特别指出,并且被清楚地主张为说明书的结 论处的权利要求中的示例。依据结合附图进行的下列详细描述,本发明的上 述和其它目标、特征和优点是显而易见的,在所述附图中图l描绘了合并且使用本发明的 一个或多个方面的处理环境的 一 实施例; 图2描绘了根据本发明一方面的、图1的处理环境的系统架构的一实施例; 图3描绘了根据本发明 一 方面的、图2的系统架构的仿真器的 一 实施例的 进一步细节;
图4A描绘了根据本发明一方面的、图3的仿真器的中央处理单元(CPU)实 现的 一 实施例的进一 步细节;
图4B描绘了根据本发明 一方面的、图4A的CPU实现的解译器代码 (interpreter code )的 一 实施例的进一 步细节;
图5描绘了根据本发明 一方面的指令执行的流程的 一 实施例;
图6描绘了根据本发明 一 方面的、与执行指令流相关联的逻辑的 一 实施
例;
图7描绘了根据本发明一方面的、与处理图6的测试组相关联的逻辑的一 实施例;以及
图8描绘了合并本发明 一个或多个方面的计算机程序产品的 一 实施例。
具体实施例方式
根据本发明的一方面,提供在处理环境中控制指令执行的能力。作为一 示例,响应于通过单个测试,主线(mainline)指令流内的指令继续被处理。然 而,如果测试失败,则4丸行测试组(test set),而非主线流中的指令。
单个测试包括将指令计数器与变量比较,该变量在本文中被称作范围末 端(end-of-range),其被选择性地设置为一值。当不满足该值时,指令执行继 续进行至主线指令流中的下一个指令。然而,当达到或超过该值时,执行 (execution )转到预定测试组,接下来执行该预定测试组。
在一实施例中,在测试组的处理期间,可采用緩冲器以有助于指令执行。 举例而言,当被处理时,某些指令需要特殊处置(例如,执行指令,以及跨越 页边界的指令)。为了有助于此处置,使用緩冲器,在其中复制目标指令,从 而能够对指令进行修改(若必要或需要)。
参看图l,描述了合并且使用本发明的一个或多个方面的处理环境的一实 施例。在此示例中,处理环境100基于一架构(其可被称作本地架构),但仿真 另一架构(其可被称作客户机架构)。作为示例,本地架构是由纽约Armonk的 International Business Machines Corporation提供的Power4或PowerPC⑧架构,或者由Intel Corporation提供的Inte产架构;并且,客户机架构是也由纽约Armonk 的International Business Machines Corporation提供的z/Architecture 。 z/Architecture 的各方面描述于2005年9月的IBM公告第SA22-7832-04号 "z/Architecture Principles of Operation"中,该公告的全部内容以引用的方式
并入本文中。
举例而言,处理环境100包括经由例如一个或多个总线108相互耦接的本 地处理器102(例如,中央处理单元(CPU))、存储器104(例如,主存储器)以及 一个或多个输入/输出(I/0)装置106。作为示例,处理器102是由纽约Armonk 的International Business Machines Corporation (IBM⑧)提供的pSeries⑧月良务器的 一部分。IBM 、 pSeries 、 PowerPC⑧以及z/Architecture⑧是美国纽约Armonk 的International Business- Machines Corporation的注册商标。Intel 是Intel Corporation的注册商标。本文中使用的其它名称可以是International Business Machines Corporation或其它公司的注册商标、商标或产品名称。
本地中央处理单元102包括在该环境内的处理期间^吏用的一个或多个本 地寄存器110,诸如, 一个或多个通用寄存器和/或一个或多个专用寄存器。 这些寄存器包括表示在任一特定时间点时的环境状态的信息。
为了提供仿真,将处理环境构建为包括仿真器、客户机操作系统以及一 个或多个客户机应用程序。参看图2来进一步描述这些构建的特征。
参看图2,描述处理环境100的系统架构200的一实施例。举例而言,系统 架构200包括多个实现层,它们定义该环境的构建的各方面。在此特定示例中, 作为示例,这些层包括硬件202,其经由一个或多个接口和/或控制器耦接 至存储器204以及输入/输出装置和/或网络206;主机操作系统208;仿真器210; 客户机操作系统212;以及一个或多个客户冲几应用程序214。经由一个或多个 接口将一层耦接至至少一个其它层。举例而言,经由至少一个接口将客户机 应用程序214耦接至客户机操作系统212。其它接口用以耦接其它层。此外, 该架构还可以包括其它层和/或接口 。下面进一步描述图2中描绘的各种层。
硬件202是处理环境的本地架构,且基于例如Power4、 PowerPC 、 Intel 或其它架构。在该石更件上运行的是主机操作系统202,诸如由International Business Machines Corporation提供的AIX⑧,或者LINUX。 AIX②是纽约Armonk 的International Business Machines Corporation的注册商才示。
仿真器210包括用以仿真与本地架构不同的架构的许多组件。在此实施例中,正被仿真的架构是由International Business Machines Corporation提供的 z/Architecture ,但也可以仿真其它架构。该仿真使得客户机操作系统212(例 如,z/OS , International Business Machines Corporation的注册商标)能够在本 地架构上执行,并且能够支持一个或多个客户机应用程序214(例如,Z应用程 序)。参看图3描述关于仿真器210的进一步细节。参看图3,仿真器210包括耦接至一个或多个ill务进程(process) 302的共 享存储器300、输入/输出(I/0)实现(implementation) 304以及中央处理单元 (CPU)实现306,下面进一步详细描述其中的每一个。共享存储器300表示主机中的存储器的、从服务进程302、 1/O实现304以及 CPU实现306可见的一部分。其是存储区域,在其中独立的进程(例如,服务 进程、1/0实现、CPU实现)通过读取数据以及将数据存储至共享存储器内来通 信。作为一示例,共享存储器包括多个区(region),这些区包括例如系统全 局信息、CPU上下文(context)和信息、仿真的主要存储设备、仿真的主要存储设备密钥以及子信道(即,表示i/o装置的数据结构)。服务进程302包括一个或多个进程,用以建立CPU以及一个或多个其它进 程,以及提供构建的操作者功能程序(operator facility),诸如,开始、停止、 重置、初始程序加载(IPL)等。其也可以提供其它功能,诸如,仿真的系统功 能程序的显示或更改、获得/释放共享资源、其它维护命令等。输入/输出实现304包括例如一个或多个子信道进程以及用以与1/0装置通 信的I/0控制器。在本发明的一方面中,1/0控制器负责开始子信道进程以及执 行恢复。中央处理单元(CPU)实现306负责执行指令以及管理处理。其包括参看图 4A至图4B描述的许多组件。参看图4A, CPU实现306包括例如解译器代码400,其用以获得、转译 以及执行指令;构建的协处理器402,其辅助初始启动以及与芯片(例如,月l 务调用逻辑处理器(SCLP)进程)的通信;以及定时功能程序404,其负责仿真 器的定时功能。参看图4B描述关于解译器代码400的进一步细节。解译器代码400包括例如解译单元420,该解译单元420耦接至存储器访问 单元422、 CPU控制426、异步中断处理程序(handler) 428以及同步中断处理 程序430。解译单元420负责从存储器获得一个或多个客户机指令、针对客户机指令提供本地指令以及执行本地指令。客户机指令包含经开发以在除了本地CPU102的架构之外的架构中执行的软件指令(例如,机器指令)。举例而言,客户机指令可已经设计为在2/八1"^1&^1 ^@处理器上执行,但替代地在本地CPU102上仿真,本地CPU 102可为例如口861^3@服务器。在一示例中,本地指令的提供包括选择仿真器中与客户机指令相关联的 代码段。举例而言,每一客户机指令在仿真器中具有相关联的代码段,其包 括一个或多个本地指令的序列,并且,选择该代码段以被执行。在另 一示例中,该提供包括在例如转译进程期间针对给定客户机指令来 建立本地指令流。这包括识别该功能以及建立等效的本地指令。如果指令包括存储器访问,则存储器访问例程422用以访问共享存储器 300。存储器访问例程可使用转译机制(诸如,动态地址转译(DAT)432或访问 寄存器转译(ART)434)来将逻辑地址转译为绝对地址,该绝对地址接着用以访 问存储器或者可进一步加以转译(若需要)。在此实施例中,要使解译单元420中的处理流线化。因此,如果出现更复 杂的情况,诸如,等待状态或者从一架构级改变至另一架构级(例如, z/Architectm^至ESA/390)等,则控制转移至CPU控制426,其处置该事件且接 着使控制返回至解译单元420。此外,如果发生中断,则处理从解译单元420过渡至异步中断处理程序 428(若其为异步中断)或者同步中断处理程序430(若其为同步中断)。在处置了 中断后,处理返回至解译单元420。具体地,解译单元监视共享存储器中的某些位置,并且,如果位置已改 变,则其表示中断已由CPU或I/0中的一个设置。因此,解译单元调用适当的 中断处理程序。参看图5,描述关于解译单元420的进一步的细节。具体地,图5描绘了与 解译单元相关联的处理流程的一实施例。在此实施例中,由于每一指令例程具有相关联的解码/调度(dispatch)例程(即,无中央控制),所以认为该处理 流程是线状的(threaded )。在一实施例中,此流程正执4亍正在仿真 z/Architecture②的指令。参看图5,其示出处理流程500包括两个部分, 一个在本文中被称作主线 处理502,以及另一个被称作测试组处理504。主线处理是流线化处理,在其 中处理从一指令例程继续进行至另 一指令例程,而并不进行指令间的大量测试。在此实施例中,在指令执行之间进行的唯一测试是简单测试,其确定主 线处理是否要继续、或者处理是否要转到测试组。如果要进行进一步的测试或需要其它动作,则处理退出主线处理,且进入测试组处理504。 一旦进行了 这些测试或其它处理,则处理在主线处理中重新开始(resume )。期望在大多 数时间,处理将保持处于主线处理中。在一实施例中,在进入主线处理前,进行某一初始化。举例而言,将指 针输入至解译单元420(图4B),该指针指示包括要执行的指令流的特定文件或 存储器区域。此指令流包括例如要在本地处理器上执行的Z指令。除了将指针提供至指令流之外,还提供用于指令流的指令计数器、以及 与正被仿真的处理环境相关联的状态(例如,Z状态)。该状态包括各种寄存器 以及标志,它们指示例如指令程序事件记录(I-PER)模式是否在作用中、I-STEP 或ADSTOP是否在作用中、当前执行模式等。评估该状态,并且基于该评估 来选择测试组处理504(图5)的测试组中的一个。举例而言,如果I-PER模式在 作用中,则可选择PER测试组。将指针设置至选定的测试组,且处理在该测 试组处继续。执行选定的测试组,其可包括进行一个或多个测试和/或一个或多个动作, 如下面描述的。在测试组中,如果处理再次转到主线处理,则作出关于接下 来选择哪个测试组的决定。另外,设置一变量(范围末端),其用于单个测试 中以确定是否继续主线处理。如下面进一步详细描述的,基于正进行的测试 以及指令流的处理阶段来设置此变量。在执行了测试组后,处理继续至主线处理的指令例程506,其由测试组确 定。当完成了选定的指令例程时,控制在与选定的指令例程506相关联的解码 /调度例程508处继续。解码/调度例程读取下一个操作码(opcode)的指令流,且继续进行至该 指令或转到测试组。举例而言,在解码/调度例程中,进行单个测试以确定流 线化主线处理是否继续、或者处理是否临时转到测试组处理。即,在解码/调 度点处,进行测试以确定是否需要更复杂的处理、或者处理是否可保持于主 要的线内(inline)流中。如果需要更复杂的处理,则在进展至指令例程前, 在预定测试组中人工修改指令周围的情况以使其简单,因为指令例程假定情 形是简单的。举例而言,指令流假定其可从物理上相邻的位置提取指令。如 果解码/调度指示因为指令跨越页边界,所以其不可能,则处理继续至在其中执行额外处理的测试组。存在可被选择用于包括例如下列各项处理的各种测试组指令页边界跨 越(Instruction Page Boundary Crossing ) 510、恢复(Recover)511 、 I-PER提耳又 (Fetch)512、 I-Step以及Adstop 514、开始以及退出(Start and Exit)516以及收集 统计决定执行模式(Collect Statistics Decide Execution Mode)(JIT才莫式)518。虽 然提供这些测试组作为示例,但可使用额外的、较少或不同的测试组。每个 测试组可包括在返回至主线处理前要被执行的一个或多个动作。以下描述关 于测试组的进一步细节。可被选择的一个测试组是指令页边界跨越测试组510,其用以确定指令是 否正跨越页边界。当指令靠近页(或其它指定的存储器单元)的末端时,调用此 测试组。举例而言,将范围末端变量设置为例如等于页末端减4字节的值。在 与刚完成的指令例程相关联的解码/调度例程中,将范围末端值与指令计数器 相比较,以确定指令是否靠近页末端。如果满足此单个测试,则在此示例中, 调用测试组510。在测试组510中,进行测试以确定该指令是否跨越一个以上页。作为一示 例,如果该页仍具有4个字节且指令仅为2个字节,则指令仍位于该页上。因 此,处理在执行该指令的主线处理中重新开始。然而,如果指令是6个字节且 该指令的仅4个字节处于一页上,则确定该指令正跨越页边界。由于指令的最 后2个字节在逻辑上是相邻的,但在物理上不相邻,所以执行处理,以便获得 最后2个字节且提供6个字节,如同它们在物理上是相邻的。获得6个字节,如 同它们处于物理上相邻的存储器中,且它们被提供至要被执行的适当指令例 程(经由指针)。如上所述,代替在主线处理中的每一指令内进行页边界跨越测试,仅当 需要或必要时执行此测试。即,仅当确定指令靠近页的末端时执行此测试。另一测试组是恢复测试组511。当需要对指令的特殊处置时,调用此测试 组,如以下进一步详细描述的。在一示例中,存储各种变量的值,且随后改 变这些变量。接着使用恢复(Recover)以将这些变量返回至保存的值。另 一测试组是I-PER提取测试组512。 PER监视是监视某些程序事件(诸如, 从指定的存储区域提取指令)的z/Architected(架构)调试(debugging)工具。当 范围末端值指示I-PER模式要开始时,使用此测试组。举例而言,如果PERj3i 视要在页的中间开始,且范围末端变量与指令计数器的比较指示页的中间以及PERJ^视要开始,则调用此测试组且执行与PER相关联的处理。另 一测试组是I-Step以及Adstop测试组514。 I-Step以及Adstop是构建的 z/Architecture②中的调试工具。对于I-Step,将处理器置于跨过单个指令且接着 进入至暂停状态的模式下。在暂停状态期间,检验机器的状态。举例而言, 手动读取这些寄存器,且其后,发出连续的I-Step模式。对于要被调用的I-Step 测试组,范围末端变量与指令计数器一致。在执行任何种类的指令后,指令 计数器将立即超过范围末端,因此,人工地将范围末端设置为零。因此,在 每个指令后,程序执行立即进入至测试区块。其将进入至暂停状态,等待用 户交互,且随后继续。Adstop是当指令地址处于特定范围内时的停止。其类似于PER模式。 另 一测试组是开始以及退出测试组。当要将控制转移至CPU控制以及返 回时,使用此测试组。当程序执行从一个架构模式改变至另一架构模式时, 退出此流程,且控制依据CPU控制而继续。作为一示例,为了调用此测试组, 将范围末端变量设置为零。收集统计/决定执行模式测试组518用以确定要使用哪个模式用于执行。此 测试组收集使用统计,且基于该统计选择执行模式。执行模式的示例包括 解译模式(返回至主线处理502);记录模式,在该4莫式下,将每个执行的指令 复制至緩冲器;以及转译模式,当先前已转译了地址时,使用该转译模式。 作为一示例,为了调用此测试组,将范围末端变量设置为零。这允许在每个 指令后处理此测试组。虽然在以上测试组中,指示主要的测试或动作,但每个测试组可包括其 它动作。举例而言,除了主要的测试或动作之外,每个测试组还可以检查例 如是否正进行指令页边界跨越或者中断是否待决(pending )。也存在许多其 它示例。参看图6,描述关联于由解译器420处理指令流的进一步细节。 初始地,将指向指令流的指针连同与该指令流相关联的指令计数器以及 状态输入至解译器420,步骤600。状态包括例如寄存器,其包括浮点、一 般(general )、控制和/或寻址寄存器,作为示例;以及标志,其指示例如PER 模式在作用中、I-Step在作用中等。评估此状态,步骤602。基于评估,选择测试组中的一个,且开始该测试组的处理,步骤604。预 确定此测试组,其中该评估指示处理要以特定测试组开始。在该测试组中,取决于测试组而进行某些动作。另外,测试组确定下一个要被调用(若需要) 的测试组,且设置测试组指针以指向该下一个测试组。取决于在该测试组中进行的评估(例如,PER在作用中、靠近一页边界跨越、I-Step在作用中等), 下一个测试ia可为相同测试组或不同测试组。响应于执行测试组,流程继续进行至主线处理中选定的指令例程,且执 行该例程,步骤606。在一示例中,例程包括一个指令;爿f旦在其它示例中,其 可包括多个指令。当指令例程完成时,处理以与指令例程相关联的解码/调度 例程而继续,步骤608。在解码/调度处,进行单个测试,以确定处理要继续 至下一个指令还是转到测试组,步骤610。此单个测试是关于是否已满足范围 末端的值的检查。如果尚未满足该值(询问(INQUIRY) 612),则处理以主 线执行继续,步骤606。否则,处理转到预定测试组,步骤614,且处理该测 试组,步骤616。处理随后以下一个要处理的指令例程继续,如由测试组指示 的。参看图7,描述关于处理测试组的额外细节。在测试组的处理期间,可执 行包括特殊处置的指令。为了有助于处置这样的指令,使用緩冲器,如下所 述。参看图7,开始测试组的处理,且遇到指令,步骤700。进行关于此指令 是否是需要特殊处置的类型的确定,询问702。举例而言,进行关于该指令是 否是执行指令或跨越页边界的指令的检查。如果其为需要特殊处置的指令, 则使用緩冲器。此緩沖器是驻留于处理器的本地存储器中的临时緩沖器。举 例而言,如果该指令是执行指令(其为指定要被执行的目标指令的Z指令), 则将目标指令加载至经緩冲的存储器位置中,步骤704。通过将目标指令复制 至緩冲器,可修改与该指令相关联的至少一方面,步骤706。举例而言,假定 目标指令是移动字符(MVC)指令,且要修改要被移动的字节的数目(如在指令 中指定)。该指令被复制至緩冲器,且被修改以指示要被移动的字节的数目。 举例而言,如果要被移动的字节的原始数目是4个字节,则可将此改变至另一 值,诸如,8个字节。因此,代替移动4个字节,修改目标指令以移动8个字节 (或任何其它数目的字节)。作为另一示例,假定该指令是跨越页边界的指令。在此情况下,目标指 令是要被执行的指令,并且在逻辑上相邻但在物理上不相邻,将该指令的字 节复制至缓冲器以使它们在物理上相邻。举例而言,将该指令位于一页上的第 一组字节复制至緩冲器,并且还将该指令在另 一 页上的剩余字节复制至缓冲器,步骤704。在此示例中,不必修改该指令,且因此,省略步骤706。在初始化緩冲器后,执行各种任务,作为正被处理的测试组的一部分。 举例而言,这些任务包括将指令指针重定向至緩冲器、以及保存各种变量的 值以供稍后使用,步骤708。举例而言,保存范围末端变量的当前值、以及下 一个测试组指示符的当前值。其后,替换这些变量的值,步骤710。举例而言,将范围末端设置为零, 且设置下 一 个测试组指示符以指向恢复测试组。接着执行緩冲器中的指令。在解码/调度处,单个测试(例如,变量末端) 失败,因此,选择恢复测试组,步骤714。在恢复期间,不进行(undone)在步 骤708-710处的动作。举例而言,将指令指针重定向至原始指令流,将范围末 端变量设置为其保存值,且还将下一个测试组指示符重置为其保存值。处理 随后在下一个指令处继续,步骤716。返回至询问702,如果该指令不是需要特殊处置的类型,则处理继续该测 试组的下一个指令或者返回于主线处理中,如由测试组所指引。举例而言,本发明的一个或多个方面可包括于具有例如计算机可用介质 的产品(例如, 一个或多个计算机程序产品)中。举例而言,介质在其中具有计 算机可读程序代码构件或逻辑(例如,指令、代码、命令等),以提供并有助于 本发明的能力。可将该产品包括为计算机系统的一部分或单独出售。参看图8描述合并本发明的 一个或多个方面的产品或计算机程序产品的 一示例。举例而言,计算机程序产品800包括一个或多个计算机可用介质802, 以将计算机可读程序代码构件或逻辑804存储于其上,以提供并有助于本发明 的一个或多个方面。介质可为电子、;兹性、光学、电-兹、红外或半导体系统(或 设备或装置)或者传播介质。计算机可读介质的示例包括半导体或固态存储 器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、 硬质磁盘以及光盘。光盘的示例包括光盘只读存储器(CD-ROM)、光盘-读/写 (CD-R/W)以及DVD。程序指令序列或者由一个或多个计算机可读程序代码构件或逻辑定义的 一个或多个相关模块的逻辑集合(assembly)指引本发明的一个或多个方面 的执行。有利地,提供用于控制指令执行的能力(其中将控制维持于主线处理中),除非需要测试(不同于单个范围末端测试)或其它动作,如由单个范围末端测试 所确定的。通过仅当需要时执行这些测试,增强了性能并且简化了编码(例 如,每个指令不必包括所有测试的代码)。有利地,使处理流线化,其中分支出现至下一个例程(假定不必处理测试 组),而不是返回至解i奪器且随后至下一个例程。作为另一优点,通过使用緩沖器,减少了与某些指令(诸如,执行指令) 相关联的开销。依据执行指令,存在与从存储器的一页跳至存储器的另一页 相关联的开销。举例而言,执行处于存储器的一页上的执行指令,且接着执 行处于存储器的不同页上的目标指令。在执行了目标指令后,处理返回至该 执行指令后的指令。存在与此来回分支相关联的开销。然而,通过使用緩冲 器,维持离开第一页的记录,因此当处理返回时,可执行恢复,且不必执行 额外测试和/或动作(例如,地址转-泽等)。虽然以上描述了各种实施例,但这些实施例仅为示例。举例而言,处理环境可包括基于不同于Power4、 PowerPC②或Intef的架构的处理单元。另夕卜, 不同于?86『168@服务器的服务器可合并并且使用本发明的一个或多个方面。此 外,可使用除了本文中提到的操作系统之外的操作系统。另外,处理环境可 仿真不同于z/Architectm^的环境。另外,可使用各种仿真器。仿真器是市售 的且由各公司提供。再另外,处理环境不必包括仿真器代码。许多其它类型 的处理环境可合并和/或使用本发明的一个或多个方面。另外,虽然在处理某些指令(诸如,执行指令以及跨越页边界的指令)中使 用緩冲器,但可存在要使用緩沖器的其它指令和/或情形,并且这些指令和/ 或情形包括于本发明的范围中。另外,虽然已将测试组作为示例提供。但可使用额外的、较少和/或其它 测试组。包括的测试组的数目取决于设计。对本发明的许多变化是可能的且 包括于本发明的范围中。此外,在一个或多个实施例中,适合于存储和/或执行程序代码的数据处 理系统是有用的,其包括经由系统总线直接或间接耦接至存储器组件的至少 一个处理器。所述存储器组件包括例如在程序代码的实际执行期间使用的本 地存储器、大容量存储设备以及高速缓存,高速緩存提供至少一些程序代码 的临时存储,以便减少在执行期间必须从大容量存储设备恢复代码的次数。输入/输出或I/0装置(包括但不限于键盘、显示器、指示(pointing)装置、DASD、磁带、CD、 DVD、随身碟(thumb drive)以及其它存储介质等)可直 接或经由中间的I/0控制器而耦接至系统。网络适配器也可以耦接至系统,以 使该数据处理系统能够变为经由中间的私有或共享网络而耦接至其它数据处 理系统或远程打印机或存储装置。调制解调器、电缆调制解调器以及以太网 卡仅为可用类型的网络适配器中的少数几种。可以用软件、固件、硬件或者它们的一些组合来实现本发明的一个或多 个方面的能力。可提供可由机器读取的至少一个程序存储装置,该装置包含 可由该机器执行以执行本发明的能力的至少 一个程序的指令。本文中描绘的流程图仅为示例。在不脱离本发明的精神的情况下,可存 在对本文中描述的这些附图或步骤(或操作)的许多变化。举例而言,可按不同 次序执行这些步骤,或者可添加、删除或修改这些步骤。将所有这些变化考 虑为请求保护的本发明的 一部分。虽然本文中已详细描绘以及描述了实施例,但对于相关领域的技术人员 将显而易见的是,在不脱离本发明的精神的情况下,可进行各种修改、添加、 替换以及其类似操作,并且因此将这些修改、添加、替换及其类似操作考虑 为处于如下列权利要求书中定义的本发明的范围内。
权利要求
1.一种在处理环境中控制指令执行的方法,所述方法包括执行指令流的指令例程;响应于执行该指令例程,使用测试来确定处理要继续至该指令流的另一指令例程还是转到测试组;以及响应于该确定,执行该另一指令例程或该测试组。
2. 如权利要求l所述的方法,其中该测试在该确定中使用动态设置的变量。
3. 如权利要求2所述的方法,其中该变量被设置为取决于被执行以设置 该变量的一个或多个测试的结果的值,并且其中该值在该指令流的执行期间 是可改变的。
4. 如权利要求2所述的方法,其中使用该测试包括将该指令例程的指令 计数器与该变量的值相比较,以确定如何继续。
5. 如权利要求l所述的方法,其中该测试组可由多个指令例程使用,并 且使得该多个指令例程能够无该测试组代码。
6. 如权利要求l所述的方法,其中先前从多个测试组选择该测试组。
7. 如权利要求6所述的方法,其中该多个测试组包括下列各项中的至少 一个指令页边界跨越测试组、I-PER提取测试组、I-Step以及adstop测试组、 开始和退出测试组,以及收集统计和决定l丸行^t式测试组。
8. 如权利要求l所述的方法,还包括 执行该处理环境的状态的评估;以及 至少部分基于该评估来选4奪该测试组。
9. 如权利要求l所述的方法,其中该指令例程正在仿真客户机架构的一 个或多个指令。
10. 如权利要求l所述的方法,其中该处理环境包括仿真的环境,所述处 理环境基于一个架构并且仿真与该一个架构不同的另 一架构。
11. 如权利要求IO所述的方法,其中该另 一架构包括该z/Architecture, 并且该一个架构包括非z/Architecture。
12. 如权利要求l所述的方法,其中该测试包括于与该指令例程相关联的 解码/调度例程中,其中该指令流的每个指令例程具有与其相关联的分散的解码/调度例程。
13. 如权利要求l所述的方法,其中该另一指令例程可与所执行的指令例 程相同或与所执行的指令例程不同。
14. 一种系统,包括适于执行如任何在前方法权利要求所述的方法的所 有步骤的装置。
15. —种包括指令的计算机程序,其中所述指令用于当在计算机系统上执行所述计算机程序时,执行如任何在前方法权利要求所述的方法的所有步
全文摘要
通过确定处理应在主线处理中继续还是转到测试组的单个测试来控制指令执行。该单个测试将动态设置的变量与指令计数器相比较。如果满足该测试,则主线处理继续。否则,处理转到测试组。
文档编号G06F11/14GK101601013SQ200880003881
公开日2009年12月9日 申请日期2008年1月22日 优先权日2007年2月1日
发明者维克托·久瑞斯, 西奥多·博希齐克, 马克·德克尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1