利用缓冲器便于指令执行的制作方法

文档序号:6476293阅读:99来源:国知局
专利名称:利用缓冲器便于指令执行的制作方法
技术领域
本发明总体上涉及在处理环境内处理指令,具体涉及利用緩冲器 来便于指令执行。
背景技术
典型情况下,在指令流执行期间,执行指令,进行多个测试继而 执行下一指令等。然而,某些指令要求特殊处理。例如,执行指令指 定可在执行之前被修改的目标指令。将对此修改进行管理。此外,正 在跨越存储器边界(例如,页面边界)的指令要求获得该指令的物理 上不连续的部分。同样,也将管理这种情况。
对于这些情况的处理是重要的。然而,在主线处理期间处理这些 情况会使系统性能降级。

发明内容
基于上述内容,需要一种在主线处理之外处理特殊情况的能力。 具体地,需要一种便于指令执行的能力。在一个例子中,緩冲器用来 便于指令执行,使得在主线处理之外处理特殊情况。当发现具有特殊 情况的指令时,指令的指针指向临时緩冲器,所述临时緩冲器至少具 有该指令的副本。从临时緩冲器执行指令,继而恢复所述指针以指向 存储器中的适当位置。
通过提供如权利要求1所述的方法克服了现有技术的缺点并且 提供了另外的优点。
本文还描述了相应的计算机程序和系统并对其要求保护。
通过本发明的技术,实现了另外的特征和优点。本文详细描述了 本发明的其它实施例和方面,它们被认为是要求保护的本发明的一部


在说明书结束处的权利要求中,本发明的一个或多个方面被作为 例子特别指出并清楚地要求保护。结合附图,根据以下的详细描述,
本发明的上述及其它目的、特征和优点将更加清楚,其中
图1描绘了用于并入和使用本发明的一个或多个方面的处理环
境的一个实施例;
图2依照本发明的方面,描绘了图1的处理环境的系统体系结构
的一个实施例;
图3依照本发明的方面,描绘了图2的系统体系结构的仿真器的 一个实施例的进一步细节;
图4A依照本发明的方面,描绘了图3的仿真器的中央处理器 (CPU)实现方式的一个实施例的进一步细节;
图4B依照本发明的方面,描绘了图4A的CPU实现方式的解释 器代码的一个实施例的进一步细节;
图5依照本发明的方面,描绘了指令执行流的一个实施例;
图6依照本发明的方面,描绘了与执行指令流相关联的逻辑的一 个实施例;
图7依照本发明的方面,描绘了与处理图6的测试集相关联的逻 辑的一个实施例;和
图8描绘了用于并入本发明的一个或多个方面的计算机程序产 品的一个实施例。
具体实施例方式
依照本发明的方面,提供了用于在处理环境中控制指令执行的能 力。作为一个例子,响应于通过了单个测试,继续处理主线指令流内 的指令。然而,如果测试失败,则执行测试集,而不是主线流中的指令。单个测试包括比较指令计数器与变量(本文称之为范围末端), 将该变量有选择地设置为某值。当不满足该值时,指令执行继续前进 到主线指令流中的下一指令。然而,当达到或超过该值时,执行落至 继而被执行的预定测试集。
在一个实施例中,在处理测试集期间,可以利用緩沖器来便于指 令执行。例如,在被处理时,某些指令要求特殊的处理(例如,执行 指令和跨越页面边界的指令)。为了便于此处理,使用緩沖器,在緩 冲器中复制了目标指令,使得能够对指令进行修改(如果有必要或需 要)。
参考图1描绘了用于并入和使用本发明的一个或多个方面的处
理环境的一个实施例。在此例子中,处理环境IOO基于一个体系结构
(其可被称为本地体系结构),但是仿真另一体系结构(其可被称为
客体(guest )体系结构)。作为例子,本地体系结构是由纽约Armonk 的国际商用才几器公司所提供的Power4或PowerPC⑧体系结构,或者 由英特尔公司所提供的Intef体系结构;客体体系结构是也由纽约 Armonk的国际商用机器公司所提供的z/Architecture 。在2005年9 月的 IBM 7>布号 SA22-7832漏04"z/Architecture Principles of Operation"中描述了 z/Architecture⑧的各个方面,在此通过引用方式 将其全部内容并入本文。
例如,处理环境100包括本地处理器102 (例如,中央处理器 (CPU))、存储器104 (例如,主存储器)和一个或多个输入/输出 (1/0)设备106,它们经由例如一个或多个总线108相互耦合。作为 例子,处理器102是由纽约Armonk的国际商用机器公司(IBM ) 所提供的pSeries⑧服务器的一部分。IBM , pSeries⑧Power PC ,和 2/八"1^6"11^@是美国纽约Armonk的国际商用机器公司的注册商 标。Intef是英特尔公司的注册商标。本文所使用的其它名称可能是 国际商用机器公司或其它公司的注册商标、商标或产品名称。
本地中央处理器102包括在环境内的处理期间所使用的一个或 多个本地寄存器110,诸如一个或多个通用寄存器和/或一个或多个专
5用寄存器。这些寄存器包括用于表示在任何特定时间点的环境状态的 信息。
为了提供仿真,处理环境被构建为包括仿真器、客体操作系统和
一个或多个客体应用。进一步参考图2来描述所构建的这些特征。
参照图2,描述了处理环境100的系统体系结构200的一个实施 例。系统体系结构200包括例如多个实现层,用于定义所构建的环境 方面。在此特定的例子中,作为例子,所述层包括硬件202、主机操 作系统208、仿真器210、客体操作系统212和一个或多个客体应用 214,其中所述硬件202经由一个或多个接口和/或控制器耦合到存储 器204和输入/输出i殳备和/或网络206。 一个层经由一个或多个接口耦 合到至少一个其它层。例如,客体应用214经由至少一个接口耦合到 客体操作系统212。其它接口用来耦合其它层。此外,体系结构还可 以包括其它层和/或接口。下面进一步描述图2中所描绘的各个层。
硬件202是处理环境的本地体系结构,基于例如Power4、 PowerPC , Inte^或其它体系结构。在所述硬件上运行的是主机操作 系统208,诸如由国际商用机器公司所提供的AIX⑧或者LINUX。 AIX 是纽约Armonk的国际商用机器公司的注册商标。
仿真器210包括用于仿真与本地体系结构不同的体系结构的许 多组件。在此实施例中,被仿真的体系结构是国际商用机器公司提供 的z/Architecture ,但也可以仿真其它体系结构。所述仿真使得客体 操作系统212(例如,z/OS ,国际商用机器公司的注册商标)能够在 本地体系结构上执行并且能够支持一个或多个客体应用214 (例如, Z应用)。参考图3描述了关于仿真器210的进一步细节。
参照图3,仿真器210包括被耦合到一个或多个服务进程302的 共享存储器300、输入/输出(I/O)实现304和中央处理器(CPU) 实现306,下面进一步详细描述它们中的每一个。
共享存储器300表示主机中从服务进程302、 I/O实现304和CPU 实现306可见的存储器的一部分。这是各独立进程(例如,服务进程, I/O实现,CPU实现)通过读取数据和把数据存储到共享存储器中来进行通信的存储区。作为一个例子,共享存储器包括多个区域,所述
多个区域包括例如系统全局信息、CPU上下文和信息、仿真的主存储 器、仿真的主存储密钥和子通道(即,用于表示I/O设备的数据结构)。
服务进程302包括用于创建CPU的一个或多个进程和一个或多 个其它进程,以及提供所构建的操作人员设施,诸如开始、停止、复 位、初始程序载入(IPL)等。它还可以提供其它功能,诸如显示或 更改所仿真的系统设施、获得/释放共享资源、其它的维护命令等。
输入/输出实现304包括例如一个或多个子通道进程和用于与 1/0设备通信的1/0控制器。依照本发明的一个方面,1/0控制器负责 开始子通道进程和执行恢复。
中央处理器(CPU)实现306负责执行指令和管理处理。它包括 参考图4A-4B描述的许多组件。
参照图4A, CPU实现306包括例如用于获得、转换和执行指令 的解释器代码400、所构建的用来帮助初始启动和与芯片(例如,服 务调用逻辑处理器(SCLP)进程)通信的协处理器402以及负责仿 真器的定时功能的定时装置404。参考图4B来描述关于解释器代码 400的进一步细节。
解释器代码400包括例如被耦合到存储器存取单元422、 CPU控 制426、异步中断处理才几428和同步中断处理机430的解释单元420。
解释单元420负责从存储器获得一个或多个客体指令、对于所述 客体指令提供本地指令以及执行本地指令。客体指令包括软件指令 (例如,机器指令),其被开发用于在除本地CPU102的体系结构之 外的体系结构中执行。例如,客体指令可以被设计成在z/Architecture 处理器上执行,但替代地在本地CPU 102上仿真,所述本地CPU 102 可以是例如pSeries⑧服务器。
在一个例子中,提供本地指令包括选择仿真器中与客体指令相关 联的代码段。例如,每个客体指令在仿真器中具有相关联的代码段, 其包括一个或多个本地指令的序列,并且该代码段被选择来执行。
在更进一步的例子中,所述提供包括在例如转换进程期间为给定客体指令创建本地指令流。这包括标识所述功能和创建等效的本地指 令。
如果指令包括存储器存取,那么使用存储器存取例程422来存取 共享存储器300。所述存储器存取例程可以使用转换机制,诸如动态 地址转换(DAT) 432或存取寄存器转换(ART) 434,以把逻辑地 址转换为绝对地址,然后使用所述绝对地址来存取存储器或者可以将 其进一步转换(若需要)。
在此实施例中,将使解释单元420内的处理流水线化。从而,如 果出现更复杂的情况,诸如等待状态,或者从一个体系结构层次改变 到另一体系结构层次(例如,z/Architecture⑧到ESA/390)等,则控 制4皮转移到CPU控制426,所述CPU控制426处理事件继而把控制 返回到解释单元420。
此外,如果中断发生,如果是异步中断,那么处理从解释单元 420转移到异步中断处理机428,或者如果是同步中断,转移到同步 中断处理机430。在处理中断之后,处理返回到解释单元420。
具体地,解释单元监视共享存储器中的某些位置,如果位置发生 改变,那么这表示中断已被CPU或I/O之一设置。从而,解释单元 调用适当的中断处理机。
参考图5来描述关于解释单元420的进一步细节。具体地,图5 描绘了与解释单元相关联的处理流程的一个实施例。在此实施例中,
由于每个指令例程具有相关联的解码/调度例程(即,没有中央控制), 因此处理流程被认为是线程化的。在一个实施例中,此流程正在执行
用于仿真2/入1^1^6"11^@的指令。
参考图5,示出了处理流程500包括两个部分,本文将一部分称 为主线处理502,将另一部分称为测试集处理504。主线处理是流水 线处理,其中处理从一个指令例程进行至另一个指令例程,而不执行 指令间的大量测试。在此实施例中,在指令执行之间进行的唯一测试 是简单测试,该简单测试确定是否继续主线处理或者处理是否将落至 测试集。如果要进行进一步测试或者要求其它动作,那么处理退出主线处理,并进入测试集处理504。 一旦执行了所述测试或其它处理, 那么处理重新进入主线处理。期望在大部分时间,处理将保持在主线 处理。
在一个实施例中,在进入主线处理之前,执行特定的初始化。例 如,指针被输入到解释单元420 (图4b),所述指针指示包括要执行 的指令流的特定文件或存储区。此指令流包括例如将在本地处理器上 执行的Z指令。
除了提供到指令流的指针之外,还提供用于指令流的指令计数 器,以及与被仿真的处理环境相关联的状态(例如,Z状态)。所述 状态包括各种寄存器和标记,所述标记例如用于指示指令程序事件记 录(I-PER)模式是否有效、I-STEP或ADSTOP是否有效、当前的 执行模式等。评估所述状态并且根据该评估,来选择测试集处理504 (图5)的测试集之一。例如,如果I-PER模式有效,那么可以选择 PER测试集。将指针设置至所选择的测试集,并且处理在该测试集处 继续。
执行所选择的测试集,这可以包括执行一个或多个测试和/或一 个或多个动作,如下所述。在测试集中,判定如果处理再次落至主线 处理,接下来将选择哪个测试集。此外,设置变量"范围末端",所 述变量在单个测试中使用以便确定是否继续主线处理。根据正^行的 测试和指令流的处理阶段来设置此变量,如下面进一步详细描述的。
在执行测试集之后,处理继续到主线处理的指令例程506,这由 测试集确定。当所选择的指令例程被完成时,控制在与所选择的指令 例程506相关联的解码/调度例程508处继续。
解码/调度例程读取用于下一操作码的指令流并且进行至该指令 或者落至测试集。例如,在解码/调度例程中,执行单个测试以确定是 否继续流水线主线处理或者处理是否临时落至测试集处理。即,在解 码/调度点,进行测试以确定是否需要更复杂的处理或处理是否能够保 持在主要的线内流(main inline stream)中。如果要求更复杂的处理, 那么在前进到指令例程之前,在预定测试集中人工修改该指令周围的情况,以使所述情况简单,这是因为指令例程假定情形是简单的。例 如,指令流假定它可以从物理上连续的位置取出指令。如果解码/调度
指示因为指令跨越页面边界而无法取出指令,那么处理继续至执行附 加处理的测试集。
存在可以被选择用于处理的各种测试集,包括例如指令页面边 界跨越510、恢复511、 I画PER取出512、 I-Step和Adstop514、开始 和退出516以及收集统计判定执行模式(JIT模式)518。尽管提供了 这些测试集作为例子,不过也可以使用另外的、较少的或不同的测试 集。每个测试集可以包括将在返回到主线处理之前执行的一个或多个 动作。下面将描述关于测试集的进一步细节。
可以选择的一个测试集是指令页面边界跨越测试集510,其用来 确定指令是否正在跨越页面边界。当指令接近于页面(或存储器的其 它指定单元)的末端时调用此测试集。例如,范围末端变量被设置为 例如等于页面末端减去4个字节的值。在与刚刚完成的指令例程相关 联的解码/调度例程中,把范围末端值与指令计数器相比较,以确定指 令是否接近于页面末端。如果满足此单个测试,那么在此例子中调用 测试集510。
在测试集510中,执行测试以便确定指令是否跨越一个以上页 面。作为一个例子,如果所述页面依然具有4个字节并且指令只是2 个字节,那么它仍然在所述页面上。从而,处理重新进入到主线处理 中,所述主线处理执行指令。然而,如果指令是6个字节并且指令只 有4个字节在一个页面上,那么确定所述指令正在跨越页面边界。由 于指令的最后2个字节在逻辑上是连续的,但是在物理上是不连续的, 所以执行处理以便获得所述最后2个字节,并提供所述6个字节,就 好像它们在物理上是连续的。获得所述6个字节,就好像它们在物理
上连续的存储器中,并且(经由指针)将所述6个字节提供给要执行 的适当指令例程。
如上所述,代替在主线处理中在每个指令内执行页面边界跨越测
试,仅当需要或必要时执行此测试。即,只有当确定所述指4^接近于页面末端时,才执行此测试。
另一测试集是恢复测试集511。在需要对指令进行特殊处理时, 调用此测试集,如下面进一步详细描述的。在一个例子中,存储各种 变量的值,随后改变那些变量。然后使用恢复来把那些变量返回到所 保存的值。
另一测试集是I-PER取出测试集512。 PER监视是用于监视某 些程序事件(诸如,从指定的存储区取出指令)的z/Architected调试 工具。当范围末端值指示将要开始I-PER模式时,使用此测试集。例 如,如果PER监视将在页面中间开始,并且范围末端变量与指令计 数器的比较指示页面的中间,以及将开始PER监视,那么调用此测 试集并且执行与PER相关联的处理。
另 一测试集是I-Step和Adstop测试集514。 I-Step和Adstop是 所构建的2/入"1^6"11^@中的调试工具。对于I-Step来说,处理器被 置于其中对单个指令进行单步调试继而进入暂停(halt)状态的模式 下。在暂停状态期间,检查机器的状态。例如,手动读取寄存器,此 后,发出继续I-Step模式。对于将调用的I-Step测试集来说,范围末 端变量与指令计数器一致。在执行任何种类的指令之后,指令计数器 将立即超过范围末端,从而范围末端被人工设置为零。从而,在每个 指令之后,程序执行立即进入测试块。它将进入暂停状态,等待用户 交互,然后继续。
当指令地址在特定范围内时,停止Adstop。它类似于PER模式。
另一测试集是开始和退出测试集。当控制将被转移到CPU控制 以及返回时,使用此测试集。当程序执行从一个体系结构模式改变成 另一体系结构模式时,那么此流程退出,利用CPU控制来继续控制。 作为例子,为了调用此测试集,范围末端变量被设置为零。
收集统计/判定执行模式测试集518用来确定将使用哪个模式来 执行。此测试集收集使用统计并且根据所述统计来选择执行模式。执 行模式的例子包括解释模式(返回到主线处理502 );将每个执行 的指令复制到緩冲器的记录模式;以及当地址已在先前被转换时使用的转换模式。作为例子,为了调用此测试集,范围末端变量被设置为 零。这允许在每个指令之后处理此测试集。
尽管在以上测试集中,指示了主要的测试或动作,不过每个测试 集可以包括其它动作。例如,除了主要的测试或动作之外,每个测试 集还可以检查例如是否正在进行指令页面边界跨越或者中断是否待 决。还存在许多其它例子。
参考图6来描述与由解释器420处理指令流相关联的进一步细节。
初始地,连同与指令流相关联的指令计数器和状态一起,将指令 流的指针输入到解释器420,步骤600。所述状态包括例如寄存器和 用于指示例如PER模式有效、I-Step有效等的标记,所述寄存器包括 浮点、通用、控制和/或寻址寄存器(作为例子)。评估此状态,步骤 602。
基于所述评估,选择测试集之一并且开始该测试集的处理,步骤 604。由于所述评估指示将以特定的测试集开始处理,所以此测试集 是预定的。在测试集中,依据所述测试集来执行某些动作。另外,测 试集确定将调用的下一测试集(如果需要),并且设置测试集指针指 向该下一测试集。根据在测试集内执行的评估(例如,PER有效,接 近于页面边界跨越,I-Step有效等),下一测试集可以是同一测试集 或不同的测试集。
响应于执行测试集,流程继续至主线处理中的所选指令例程,并 且执行该例程,步骤606。在一个例子中,所述例程包括一个指令; 不过在其它例子中,它可以包括多个指令。当指令例程完成时,处理 继续与指令例程相关联的解码/调度例程,步骤608。在解码/调度,执
行单个测试以便确定处理是将继续至下一指令还是落至测试集,步骤 610。此单个测试是关于是否已经满足范围末端值的检查。如果尚未 满足(询问612),那么处理继续进行主线执行,步骤606。否则, 处理落至预定的测试集,步骤614,然后处理测试集,步骤616。然 后处理继续至将处理的下一指令例程,如测试集所指示的。参考图7来描述与处理测试集相关的另外的细节。在处理测试集 期间,可以执行包括特殊处理的指令。为了便于处理这种指令,使用 緩冲器,如下所述。
参照图7,开始测试集的处理并遇到指令,步骤700。确定此指 令是否为要求特殊处理的类型,询问702。例如,检查该指令是执行 指令还是跨越页面边界的指令。如果它是要求特殊处理的指令,那么 利用緩冲器。此緩冲器是位于处理器的本地存储器中的临时緩冲器。 例如,如果指令是执行指令,其是用于指定将执行的目标指令的Z指 令,那么目标指令被加载到緩冲的存储器位置中,步骤704。通过把 目标指令复制到緩冲器,可以修改与该指令相关联的至少一个方面, 步骤706。例如,假定目标指令是移动字符(MVC)指令并且要修改 要被移动的字节数(如指令中所指定的)。所述指令被复制到緩冲器 并且被修改以指示要移动的字节数。例如,如果要移动的字节的原始 数目为4个字节,那么它可以变成另一个值,例如8个字节。从而, 代替移动4个字节,修改目标指令以移动8个字节(或任何其它数目 的字节)。
作为进一步的例子,假定该指令是跨越页面边界的指令。在这种 情况下,目标指令是要执行的指令,并且在逻辑上是连续的,但是在 物理上是不连续的,指令的字节被复制到緩冲器以使它们在物理上连 续。例如,位于一个页面上的指令的第一組字节被复制到緩冲器,以 及另一个页面上的指令的剩余字节也被复制到緩冲器,步骤704。在 此例子中,不必修改指令,因此省略步骤706。
在初始化緩冲器之后,执行各种任务,作为被处理的测试集的一 部分。这些任务包括例如把指令指针重定向到緩冲器以及保存各种变 量的值以供以后使用,步骤708。例如,保存范围末端变量的当前值, 以及下一测试集指示符的当前值。
此后,替换这些变量的值,步骤710。例如,将范围末端设置为 零,将下一测试集指示符设置为指向恢复测试集。
然后执行緩沖器中的指令。在解码/调度,单个测试(例如,变量末端)失败,因此选择恢复测试集,步骤714。在恢复期间,撤消 在步骤708-710执行的动作。例如,将指令指针重定向到原始的指令 流;将范围末端变量设置为其保存值;还将下一测试集指示符重新设 置成其保存值。然后处理继续至下一指令,步骤716。
返回到询问702,如果指令不属于要求特殊处理的类型,那么处 理继续至测试集的下一指令或者返回到主线处理,如测试集所指引 的。
本发明的一个或多个方面可以被包括在具有例如计算机可用介 质的制造产品(例如, 一个或多个计算机程序产品)中。所述介质其 中具有例如计算机可读程序代码装置或逻辑(例如,指令,代码,命 令等),以提供本发明的能力和便于其执行。制造产品可以作为计算 机系统的一部分-皮包括或独立地销售。
参考图8描述了并入了本发明的一个或多个方面的制造产品或 计算机程序产品的一个例子。计算机程序产品800包括例如一个或多 个计算机可用介质802,用于在其上存储计算机可读程序代码装置或 逻辑804以提供本发明的一个或多个方面并使之便于进行。所述介质 可以是电、磁、光、电磁、红外或半导体系统(或设备或装置)或传 播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可 拆卸计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、 硬磁盘和光盘。光盘的例子包括光盘只读存储器(CD-ROM)、读/ 写光盘(CD-R/W )和DVD。
由一个或多个计算机可读程序代码装置或逻辑所定义的程序指 令序列或一个或多个相关模块的逻辑组件用于指引本发明的一个或 多个方面的执行。
有益地是,提供了用于控制指令执行的能力,其中把控制保持在 主线处理内,除非要求(除单个范围末端测试之外的)测试或其它动 作,如由单个范围末端测试所确定的。通过只有在需要时才执行测试, 提高了性能并且简化了编码(例如,每个指令不必包括用于所有测试 的代码)。 "有益地是,由于分支出现在下一例程(假定不必处理测试集), 而不是返回到解释器继而至下 一例程,所以使处理流水线化。
作为进一步的优点,通过使用緩冲器,减少了与某些指令相关联 的开销,诸如执行指令的开销。对于执行指令,存在与从存储器的一 个页面跳转到存储器的另一页面相关联的开销。例如,执行位于存储 器的一个页面上的执行指令,继而执行位于存储器的不同页面上的目 标指令。在执行目标指令之后,处理返回到所述执行指令之后的指令。 存在与此分支的往复相关联的开销。然而,通过使用緩冲器,保持离 开第一页面时的记录,因此当处理返回时,可以执行恢复,而不必执 行另外的测试和/或动作(例如,地址转换等)。
尽管上面描述了各个实施例,不过这些只是例子。例如,处理环
境可以包括基于除了 Power4、 PowerPC⑧或Inte^之外的体系结构的 处理单元。另外,除了 pSeries⑧服务器之外的服务器可以并入和使用 本发明的一个或多个方面。此外,可以使用除了本文提到的那些操作 系统之外的操作系统。此外,处理环境也可以仿真除了 z/Architecture 之外的环境。另外,可以使用各种仿真器。仿真器可由市场上提供以 及由各个公司提供。更进一步地,处理环境不必包括仿真器代码。许 多其它类型的处理环境可以并入和/或使用本发明的一个或多个方面。
另外,尽管在处理某些指令(诸如执行指令和跨越页面边界的指 令)时利用緩冲器,不过可以存在要使用緩冲器的其它指令和/或情况, 这些也包括在本发明的范围内。
此外,尽管作为例子已经提供了测试集。不过,可以利用另外的、 较少的和/或其它的测试集。所包括的测试集的数目视设计而定。对本
此外,在一个或多个实施例中,适于存储和/或执行程序代码的 数据处理系统是可用的,其包括通过系统总线被直接或间接地耦合到 存储器元件的至少一个处理器。存储器元件包括例如在实际执行程序 代码期间所利用的本地存储器、大容量存储器和高速緩冲存储器,所 述存储器用于临时存储至少 一些程序代码以便减少在执行期间必须从大容量存储器中获取代码的次数。
输入/输出或1/0设备(包括但不限于键盘、显示器、指示设备、 DASD、磁带、CD、 DVD、闪盘及其它存储介质等)可以被直接或通 过居间的I/O控制器耦合到系统。还可以把网络适配器耦合到系统以 便使数据处理系统能够通过居间的专用或公共网络而耦合到其它数 据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器 和以太网卡只是网络适配器可用类型中的几种。
本发明的一个或多个方面的能力可以用软件、固件、硬件或它们 的一些组合来实现。可以提供可被机器读取的至少一个程序存储设 备,用于包含可被所述机器执行以实现本发明能力的至少一个指令程 序。
本文所描绘的流程图只是例子。在不脱离本发明精神的情况下, 本文描述的这些图或步骤(或操作)存在许多变化。例如,可以依照 不同的次序来执行所述步骤,或者可以添加、删除或修改所述步骤。 所有这些变化被认为是要求保护的本发明的一部分。
尽管本文已经详细描绘和描述了实施例,不过对本领域技术人员 来说显而易见的是,在不脱离本发明的精神的情况下可以进行各种修 改、添加、替换等,因此这些被认为处于如下面的权利要求所定义的 本发明的范围内。
权利要求
1.一种便于处理环境中的指令执行的方法,所述方法包括下述步骤向缓冲器提供指令;确定所述缓冲器中的所述指令的方面是否将被修改;响应于所述确定步骤,修改所述方面;以及把指令指针重定向到所述缓冲器,以便能够执行来自所述缓冲器的指令,而不是执行存储器中的指令。
2. 如权利要求1所述的方法,其中所述提供步骤包括把指令从存 储器中的逻辑上连续但是物理上不连续的位置复制到緩冲器中的物 理上连续的位置。
3. 如权利要求1所述的方法,其中所述指令包括跨越页面边界的 指令,以及所述提供步骤包括把所述指令的第 一部分从存储器的一个 页面复制到緩冲器以及把所述指令的第二部分从存储器的另一个页 面复制到所述緩冲器。
4. 如权利要求1所述的方法,其中所述指令包括执行指令的目标 指令,以及其中所述修改步骤包括修改所述目标指令的寄存器。
5. 如权利要求1所述的方法,其中所述处理环境包括仿真器。
6. —种包括适合于执行依照先前任何一个方法权利要求所述的 方法的所有步骤的装置的系统。
7. —种计算机程序,包括当在计算机系统上执行所述计算机程序 时,用于执行依照先前任何一个方法权利要求所述的方法的所有步骤 的指令。
全文摘要
通过利用缓冲器处理具有特殊情况的指令,来便于指令执行。当要执行这种指令时,指令的指针指向缓冲器。从缓冲器执行指令继而恢复指针以指向不同于缓冲器的位置。
文档编号G06F9/45GK101583926SQ200880002611
公开日2009年11月18日 申请日期2008年1月21日 优先权日2007年2月1日
发明者M·戴克, T·波希克, V·吉瑞斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1