暂时抑制受约束存储操作数请求的处理的制作方法

文档序号:18516470发布日期:2019-08-24 09:29阅读:201来源:国知局
暂时抑制受约束存储操作数请求的处理的制作方法

一般而言,一个或多个方面涉及计算环境内的处理,尤其涉及改进这种处理。

在多处理计算环境中,诸如中央处理单元(cpu)或内核的多个处理单元被连接以共享对共同存储(诸如,共同主存储位置)的访问。跨该配置的存储阶层(hierarchy)可包括每个处理单元本地的各种高速缓存层级、在若干处理单元间共享的各种高速缓存层级及主存储。当处理单元将更新存储位置时,存储行由存储阶层转移至处理单元,且该行在执行更新的处理单元本地的高速缓存层级内被独占地持有。当存储行由处理单元独占地持有时,不准许其它处理单元更新或读取该存储行,直至该行被释放并且不再由任一处理单元独占地持有为止。

旨在增强单个处理单元性能(诸如,管线化、超标量、无序执行以及分支预测)的处理单元特征可导致推测性(speculative)存储器请求。推测性请求是可能或可能不要求完成特定程序路径的请求。在启动推测性请求时,确定是否要求请求的条件尚未决定。



技术实现要素:

在一个或多个方面中,通过提供如权利要求1所述的促进计算环境中的处理的方法和对应的系统以及计算机程序来克服现有技术的某些缺点以及提供额外优点。

有利地,计算机环境处理通过以下操作来增强:提供用于程序的设施(或能力)以向处理单元发信号通知对应于由计算环境的多个处理单元共享的共同存储位置的特定存储操作数请求或访问应受约束。基于将特定存储操作数请求识别为受约束,如果不能使用该处理单元私有的高速缓存实现所识别的存储操作数的处理,则该处理单元推迟该存储操作数请求的处理。可推迟(或暂时抑制)该处理,直至在指定所识别的存储操作数的指令(或指令的操作)前的指令已完成处理。这有利地确保识别为受约束的存储操作数访问仅在被要求时执行,并且如果不能仅使用私有高速缓存实现该存储操作数请求,则该存储操作数请求访问并不推测性地执行。有利地,因此,可减少共同共享存储行徒劳遍历(traverse)该计算环境的次数,从而增加整体系统性能。

在一个或多个实施方式中,该暂时抑制包括:抑制该存储操作数请求的处理,其中该存储操作数请求要求对由该计算环境的该多个处理单元共享的共同存储位置的访问,以便处理该存储操作数请求。更特别地,该方法可由处理单元执行,该处理单元可确定该存储操作数请求是否命中该处理单元的私有高速缓存,并基于该存储操作数请求在该私有高速缓存中产生命中,可使用该私有高速缓存继续进行该存储操作数请求的处理,而不执行该抑制。

在一个或多个实施例中,该暂时抑制包括:抑制该存储操作数请求的处理,直至与该存储操作数请求相关联的指令或指令的操作接近完成。在增强型实施例中,该方法可进一步包括将该存储操作数请求放置在存储操作数请求队列中,其中该存储操作数请求要求对由该计算环境的该多个处理单元共享的该共同存储位置的访问。通过示例,该暂时抑制可包括在该存储操作数请求队列中保留该存储操作数请求,直至与该存储操作数请求相关联的指令或指令的操作接近完成。

在一个或多个实施方式中,该方法可进一步包括将该存储操作数请求识别为受约束。该识别可包括由处理单元获得指示与下一个顺序指令的操作数相关联的访问意图的访问意图指令,其中该访问意图将该存储操作数请求的使用指示为受约束。在一个或多个实施方式中,该访问意图指令可以是下一个指令访问意图指令,并且将该存储操作数请求识别为受约束可包括:在下一个指令访问意图指令内提供约束访问意图码。

在一个或多个实施例中,该存储操作数请求是与指令或指令的操作相关联的推测性存储操作数请求。

通过本文中所描述的技术实现额外特征及优点。本文中详细描述其它实施例及方面,并且将其视为所要求保护的方面的一部分。

附图说明

在本说明书的结论处的权利要求中,一个或多个方面作为示例被特别指出并清楚地要求保护。通过以下结合附图的详细描述,一个或多个方面的前述内容和目的、特征及优点是显而易见的,在附图中:

图1描绘了结合和使用本发明的一个或多个方面的计算环境的一个示例;

图2描绘了结合和使用本发明的一个或多个方面的计算环境的再一示例;

图3描绘了结合和使用本发明的一个或多个方面的多处理单元环境的一个示例;

图4描绘了根据本发明的一个或多个方面的处理的一个实施例;

图5描绘了根据本发明的一个或多个方面的处理的更详细的示例;

图6a说明了根据本发明的一个或多个方面有用的指令格式的一个实施例;

图6b说明了根据本发明的一个或多个方面的诸如图6a中描绘的指令格式的访问意图控制字段的一个实施例;

图7说明了根据本发明的一个或多个方面的可用于使用诸如图6a和图6b中描绘的指令来控制处理行为的流程图的实施例;

图8a和图8b描绘了根据本发明的一个或多个方面的存储操作数请求的处理的再一示例;

图9a描绘了结合和使用本发明的一个或多个方面的计算环境的另一示例;

图9b描绘了图9a中的存储器的进一步的细节;

图10描绘了云计算环境的一个实施例;以及

图11描绘了抽象模型层的一个示例。

具体实施方式

如所指出,旨在增强单个处理单元性能(诸如,管线化、超标量、无序执行以及分支预测)的处理单元特征可导致推测性(speculative)存储器请求。对私有存储位置的推测性请求可以是有利的,但对共同存储位置的过度推测性请求可对整体系统性能不利。对于不必要的推测性请求,共享存储行可遍历存储阶层,而不使任何单个处理程序受益。

用于共同共享存储位置的处理单元间的竞争随着以下而增大:推测性存储器请求的数量由计算环境或配置中的每个处理单元来增加,计算环境中的处理单元的数量增加,或在实现同时多线程(smt)的处理器中的线程的数量增加等。随着处理单元间的竞争增大,每个单个处理单元变得越来越难成功地获得包含特定共享存储器位置的存储行。结果,可使整体系统性能降级。

根据本发明的一个或多个方面,提供一种用于程序的设施,其向处理单元发信号通知特定存储操作数访问请求对应于在整个计算环境中的多个处理单元间共享的共同存储位置。如果不能仅使用处理单元本地或私有的高速缓存层级实现被识别为受约束的存储操作数的处理,则向该处理单元发信号通知推迟对共同外部阶层的任何查询,直至在指定所识别的存储操作数的指令前的指令已完成处理。这有利地确保所识别的存储操作数请求仅在要求时执行,并且不推测性地执行。结果,减少了共同共享存储行徒劳遍历计算环境的次数,从而增加整体系统性能。

参考图1描述结合和使用本发明的一个或多个方面的计算环境的一个实施例。在一个示例中,计算环境可基于由纽约阿蒙克市的国际商业机器公司提供的z/体系结构。在2015年3月的ibm公开号为sa22-7832-10的“z/architectureprinciplesofoperation(z/体系结构的工作原理)”中描述了z/体系结构的一个实施例。z/architecture是美国纽约阿蒙克市的国际商业机器公司的注册商标。

在另一示例中,计算环境可基于由纽约阿蒙克市的国际商业机器公司提供的power体系结构。在2015年4月9日的国际商业机器公司的“powerisatmversion2.07b(powerisatm版本2.07b)”中描述了power体系结构的一个实施例。powerarchitecture为美国纽约阿蒙克市的国际商业机器公司的注册商标。

计算环境还可以基于其它体系结构,包括但不限于英特尔x86体系结构。也存在其它例子。

如图1所示,计算环境100包括例如节点10,该节点具有例如计算机系统/服务器12,该计算机系统/服务器与众多其它通用或专用计算系统环境或配置一起操作。可适于与计算机系统/服务器12一起操作的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机(pc)系统、服务器计算机系统、瘦客户机、厚客户机、手持型或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子产品、网络pc、小型计算机系统、大型计算机系统及包括以上系统或设备中的任一者的分布式云计算环境等。

可在由计算机系统执行的计算机系统可执行指令(诸如,程序模块)的一般情境下描述计算机系统/服务器12。通常,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可在多个计算环境中实践,包括但不限于通过通信网络链接的远程处理设备执行任务的分布式云计算环境。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。

如图1所示,计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16,系统存储器28,以及将包括系统存储器28的各种系统组件耦接到处理器16的总线18。

总线18表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或使用多种总线体系结构中的任何总线体系结构的局域总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(isa)总线,微通道体系结构(mca)总线,增强型isa(eisa)总线,视频电子标准协会(vesa)局域总线和外围组件互连(pci)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,它包括易失性和非易失性介质,可移动和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可以用于读写不可移动的、非易失性磁介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是可以提供用于对可移动非易失性磁盘(例如,“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(诸如cd-rom,dvd-rom或其它光学介质)读写的光盘驱动器。在这种情况下,每个驱动器可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置为执行本发明的实施例的功能。

以示例说明而非限制,具有一组(至少一个)程序模块42的程序/实用工具40以及操作系统17、一个或多个应用程序、其它程序模块和程序数据可存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块和程序数据中的每一个或它们的某种组合可包括网络环境的实现。程序模块42通常执行如本文所描述的本发明的实施例的功能和/或方法。

计算机系统/服务器12还可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信;还可与一个或多个使得用户能够与计算机系统/服务器12交互的设备通信;和/或与使得计算机系统/服务器12能够与一个或多个其它计算设备进行通信的任何设备(例如,网卡,调制解调器等)通信。这种通信可以通过输入/输出(i/o)接口22进行。此外,计算机系统/服务器12还可以通过网络适配器20与一个或多个网络(例如局域网(lan),广域网(wan),和/或公共网络(例如,因特网))通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。应该理解,尽管未示出,但是其它硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码,设备驱动器,冗余处理单元,外部磁盘驱动阵列,raid系统,磁带驱动器和数据备份存储系统等。

作为示例,处理单元16可包括用于执行指令的多个功能组件。这些功能组件可包括:例如,用于提取要执行的指令的指令提取组件;用于解码所提取的指令的指令解码单元;用于执行解码指令的指令执行组件;在需要的情况下,访问用于指令执行的存储器的存储器访问组件;以及提供执行指令的结果的写回组件。根据本发明的一个方面,如以下进一步描述的,这些组件中的一个或多个可用于实现被识别为受约束的存储操作数请求的抑制或延迟处理。

在一个实施例中,处理单元16还包括由该功能组件中的一个或多个使用的一个或多个寄存器。

参考图2描述了结合和使用本发明的一个或多个方面的计算环境的另一示例。在一个示例中,计算环境可再次基于上文提及的由纽约阿蒙克市的国际商业机器公司提供的z/体系结构。在另一示例中,计算环境可基于上文提及的由纽约阿蒙克市的国际商业机器公司提供的power体系结构。计算环境还可基于其它体系结构,包括但不限于因特尔64和ia-32体系结构。还存在其它示例。

参考图2,在一个示例中,计算环境200包括耦接到一个或多个较高层级高速缓存205的至少一个处理单元(pu),诸如,中央处理单元(cpu)。中央处理单元16包括例如一个或多个执行单元201以请求和消耗(consume)数据。执行单元201耦接到加载/存储单元(lsu)202,该加载/存储单元(lsu)202包括加载/存储队列(lsq)203。加载/存储单元202发出检索预取的数据或使该数据从存储器子系统或较高层级高速缓存提取的存储器访问操作(加载和存储)。lsu202可经由(例如)转换(translation)机构(诸如,转换后援缓冲器(tlb)或有效至实际地址转换表(erat))耦接到本地高速缓存204。

处理单元16耦接到存储器阶层并与其通信,该存储器阶层包括例如:本地高速缓存204,其可包括l1数据高速缓存;一个或多个较高层级高速缓存205,其可包括单个层二(l2)高速缓存或多个其它按顺序编号的较高层级,例如,l3、l4;存储器215;以及相关联的存储器控制器210,其控制对存储器215的访问。本地高速缓存204充当用于被预取的数据(和/或数据流)的预取缓冲器。本地高速缓存204具有对应的加载未命中队列(lmq),高速缓存利用其保存关于进行中的预取请求的信息。

另外,在一个实施例中,本地高速缓存204可具有相关联的高速缓存目录,其可被实现为高速缓存的部分或维持与高速缓存分开。高速缓存目录可包括针对本地高速缓存中的每个高速缓存行的标签。该标签提供关于高速缓存行的信息,包括:高速缓存行中的数据的实际或绝对地址的至少一部分,以及状态信息,诸如,该数据是独占式地持有还是共享等;数据的使用,诸如,其最近使用、最近不太使用,或处于最近使用与最近不太使用之间等;和/或其它状态信息。该标签还可包括关于高速缓存行中的数据的额外信息。每个高速缓存层级可具有相关联的高速缓存目录,或为其自身目录,或为共享目录。

除了示例存储器阶层之外,计算环境200还可包括从处理单元16的角度看来形成存储器阶层的一部分的额外存储设备。该存储设备可为一个或多个电子存储介质,诸如,软盘、硬盘驱动器、cd-rom或dvd。cpu102通过各种机制(作为示例,包括经由总线和/或直接信道)与存储器阶层内的以上设备中的每一个进行通信。

总线可表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或使用多种总线体系结构中的任何总线体系结构的局域总线。以示例说明而非限制,这样的体系结构包括行业标准体系结构(isa)总线、视频电子标准协会(vesa)局域总线和外围组件互连(pci)总线。

在另一实施例中,本文中公开的处理可在多处理器环境中使用,诸如,以下参考图3描述的环境。在一个示例中,多处理器环境300包括多个内核302a……302n。每个内核包括至少一个硬件线程或处理单元304a、304n,其包括本地高速缓存,诸如,l1高速缓存306a、306n。每个内核302a、302n耦接到零或更多个较高层级私有高速缓存(例如,l2高速缓存)。另外,多处理器环境300包括零或更多个共享高速缓存310,诸如,l3和/或l4高速缓存,其在内核之间共享,并且更特别地,在处理单元之间共享。还可存在其它拓朴。

多处理器环境(或处理单元的子集)中的每个处理单元还可包括将要用于查询高速缓存(如果可用,包括共享高速缓存中的一个或多个)中的一个或多个的查询功能,以获得高速缓存驻留状态和/或选定数据的其它信息。

如所指出,根据本发明的一个或多个方面,本文中提供一种用于增强计算环境内的处理的设施。如图4中所示,该设施可包括确定对由计算环境的多个处理单元共享的共同存储位置的存储操作数请求是否受约束400的能力。基于确定该操作数请求受约束,可暂时抑制该存储操作数,即,可推迟依照该存储操作数请求对该共同存储位置的一个或多个访问查询410。

在一个或多个实施方式中,抑制存储操作数请求可包括抑制该存储操作数请求的处理,直至与该存储操作数请求相关联的指令或指令的操作接近完成。在存储操作数请求要求对由计算环境的多个处理单元共享的共同存储的访问以便处理存储操作数请求的情况下,可发生抑制。另外,实现处理的处理单元可进一步确定存储操作数请求是否命中处理单元的私有高速缓存,以及基于存储操作数请求在私有高速缓存中产生命中,可继续进行存储操作数请求的处理,而不执行抑制。

在一个或多个实施方式中,可将该存储操作数请求放置在存储操作数请求队列中,其中该存储操作数请求要求对由该计算环境的该多个处理单元共享的该共同存储位置的访问。通过示例,该暂时抑制可包括在该存储操作数请求队列中(例如,在加载存储单元中)保留该存储操作数请求,直至与该存储操作数请求相关联的指令或指令的操作接近完成。

此外,该设施可包括将该存储操作数请求识别为受约束的能力。该识别可包括由处理单元获得指示与下一个顺序指令的操作数相关联的访问意图的访问意图指令。该访问意图可指示该存储操作数请求的使用受约束。如本文中进一步描述的,在一个或多个实施方式中,该访问意图指令可以是下一个指令访问意图指令,并且将该存储操作数请求识别为受约束可包括在该下一个指令访问意图指令内提供约束访问意图码。

在一个或多个实施例中,该存储操作数请求是与指令或指令的操作相关联的推测性存储操作数请求,其中指令可指如在指令集架构中的架构指令,并且指令的操作可指微操作,诸如,可破解的架构化指令的组成部分。

图5描绘根据本发明的一个或多个方面的过程流程的更详细的实施例。如图所示,处理单元可提取指令500,并解码该指令以确定例如操作数有关的信号、执行单元(lsu、fxu等)、“受约束”指定等505。如所指出,提供受约束指定的能力可在指令集架构(isa)中实现,它的一个示例在以下参考图6a至图7描述。

将指令排入队列以用于执行510,并且处理单元确定该指令是否准备发出515。如果为“否”,则指令保留在队列中510。否则,向执行单元发出指令。在此示例中,假定该指令包括存储操作数请求或访问并且被发出到加载存储单元(lsu)501。

在所提供的示例中,lsu501确定存储操作数地址530,并且向该处理单元的一个或多个本地或私有高速缓存请求存储操作数访问535。处理单元确定该请求命中还是未命中本地高速缓存540。如果存在高速缓存命中,则处理单元继续标准指令处理。然而,如果存在高速缓存未命中,则将指令返回到队列510,并且将与该指令相关联的存储操作数请求放置在存储操作数请求队列中以用于可能的推测性执行。

在所描绘的实施方式中,lsu501确定存储操作数请求队列中的下一个存储操作数请求545是否被指定为受约束550。如果为“否”,则处理单元请求对该处理单元外部的存储阶层的访问,即,请求对由计算环境的多个处理单元共享的共同存储位置的访问。如果该存储操作数请求被指定为受约束,则该处理单元确定与该请求相关联的指令或指令的操作是否接近完成(ntc)555。如果在用于执行的指令的队列中,对应的指令接近完成,则处理单元将访问查询发送到在处理单元外部的存储阶层。否则,将该存储操作数请求返回到存储操作数请求队列545以暂时抑制该存储操作数请求。抑制继续,直至与该请求相关联的指令(或操作)接近完成,在该时间点,请求导致对在处理单元外部的存储阶层的查询以用于访问所期望的共同存储位置。

根据本发明的一个或多个实施例可使用的指令格式的一个实施例在以下参考图6a、图6b和图7描述。在图6a中,所描绘的指令格式被认为是下一个指令访问意图(niai)指令。该指令格式可包括操作码字段601,其指示这是下一个指令访问意图指令。另外,可提供保留字段602,其在一个或多个实施例中可包含零。该指令格式还可包括字段或操作数,诸如,访问意图控制字段603(i1),及另一访问意图控制字段604(i2)。

对于这种指令格式,术语主要访问操作数指的是指令的最低编号的存储操作数。类似地,术语次要访问操作数指的是指令的下一个最低编号的存储操作数。这些术语不具有与术语第一操作数和第二操作数相同的意义,即使可存在某种相关性。

受到i1603和i2604字段中的控制,向cpu发信号通知针对下一个顺序指令的主要访问和次要访问操作数中的任一者或两者的未来访问意图。下一个顺序指令可以是在niai指令后检索和执行的指令。i1603字段可包含向cpu发信号通知针对下一个顺序指令的主要访问操作数的访问意图的码。i2604字段可包含向cpu发信号通知针对下一个顺序指令的次要访问操作数的访问意图的码。当下一个顺序指令仅具有单个存储操作数时,可省略i2604字段。

指令格式的一个实施例可包括单个访问意图字段。指令格式的另一实施例可包括两个访问意图字段。指令格式的另一实施例可包括多个访问意图字段。指令格式的再一实施例可包括包含指定后续接下来顺序指令的数量的值的字段或操作数。访问意图控制字段i1603和i2604可具有诸如图6b中描绘的格式610,其中i1603和i2604字段的位的设定数量包含无符号整数,其用作向cpu发信号通知针对下一个顺序指令的对应的操作数的访问意图的码。

根据本发明的一个或多个方面,如果访问意图控制字段包含“受约束”值,例如,值4,则下一个顺序指令的对应的操作数参考是用于多处理环境中的共同存储区域。如果不能仅使用cpu的本地(或私有)高速缓存层级来实现操作数的处理,则推荐cpu推迟对外部存储阶层的任何查询,直至在下一个顺序指令前的任何指令已完成处理。有利地,用于下一个指令访问意图指令的受约束的访问意图值可用于避免对在整个配置中被高度竞争的存储位置的推测性请求,从而减少存储子系统中的不必要的操作。

取决于cpu的模型,cpu可不必辨识操作数的所有访问意图。对于未由cpu辨识的访问意图,该指令可充当否操作。否操作是指令实际上不执行操作的情况。另外,下一个指令访问意图指令可仅影响后续指令操作数访问,并且其可例如不影响后续指令提取。

在一个或多个实施例中,预料程序可或可不使用具有可与一个或多个高速缓存行边界交叉的对应的存储操作数的访问意图值。

另外,如果在下一个指令访问意图的执行后并且在下一个顺序指令的执行前出现中断,则下一个指令访问意图可充当否操作并且忽略指定访问意图。

在一个或多个实施方式中,受约束的访问意图值可采用主要访问操作数使用,如由i1字段指定。

参考图7描述根据实施例的流程图的一个实施例。如图所示,在一个或多个实施方式中,cpu获得指示访问意图的访问意图指令700。访问意图可与下一个顺序指令的操作数相关联。访问意图还可指示由在下一个顺序指令后的指令使用该操作数。cpu接着执行访问意图指令710。在一个实施例中,处理单元可通过将访问意图内部存储(例如)于内部存储器或内部控制寄存器中来记住该访问意图。cpu获得下一个顺序指令720。执行该下一个顺序指令,并且作为执行的部分,基于访问意图指令的访问意图控制处理单元行为730。

在一个实施例中,所控制的处理单元行为在本文中被描述为选择性地抑制存储操作数请求的处理,其中使用例如访问意图指令将该存储操作数请求确定或识别为受程序约束。如上所指出,在一个或多个实施方式中,可利用访问意图指令的控制字段中的一个或多个控制字段中的所指定的访问意图码来实现将存储操作数请求识别为受约束。

更特别地,通过指定本文中指出的访问意图值,可提供对在针对符号地址cntr(例如,其是用于在配置中的多个cpu间共享的计数器的存储位置)的cpu的本地高速缓存层级外部的存储阶层的推测性查询。如果要求对在cpu的本地高速缓存层级外部的存储阶层的查询以处理cntr,则推迟查询,直至在与该请求相关联的指令或指令的操作前的指令已完成处理。当针对cntr的多个cpu间的查询的数量被最少化,每个cpu更新cntr所需的时间也最少化。

参考图8a和图8b,根据本发明的一个或多个方面,促进在计算环境内的处理(800)包括:确定对由计算环境的多个处理单元共享的共同存储位置的存储操作数请求是否受约束;以及基于确定该存储操作数请求受约束,暂时抑制请求依照该存储操作数请求对该共同存储位置的访问。

该暂时抑制可包括抑制该存储操作数请求的处理,其中,该存储操作数请求要求对由该计算环境的该多个处理单元共享的该共同存储位置的访问以便处理该存储操作数请求(805)。另外,在该处理由处理单元执行的情况下,该处理单元可进一步确定该存储操作数请求是否命中该处理单元的私有高速缓存,以及基于该存储操作数请求在该私有高速缓存中产生命中,可继续进行该存储操作数请求的处理,而不执行该抑制(810)。

此外,该抑制可包括抑制存储操作数请求的处理,直至与该存储操作数请求相关联的指令或指令的操作接近完成(815)。这可包括例如将该存储操作数请求放置在存储操作数请求队列中,其中,该存储操作数请求要求对由该计算环境的该多个处理单元共享的该共同存储位置的访问(820)。通过示例,该暂时抑制可包括在该存储操作数请求队列中保留该存储操作数请求,直至与该存储操作数请求相关联的指令或指令的操作接近完成(825)。

在一个或多个实施方式中,促进处理可进一步包括将存储操作数请求识别为受约束(830)。该识别可包括由处理单元获得指示与下一个顺序指令的操作数相关联的访问意图的访问意图指令。该访问意图指示可指示存储操作数请求的使用受约束(830)。例如,该访问意图指令可以是下一个指令访问意图指令,并且将存储操作数请求识别为受约束可包括在该下一个指令访问意图指令内提供约束访问意图码(835)。

在一个或多个实施方式中,该存储操作数请求可以是与指令或指令的操作相关联的推测性存储操作数请求(840)。

参考图9a描述结合和使用一个或多个方面的计算环境的另一实施例。在此示例中,计算环境900包括:例如,本机中央处理单元(cpu)902、存储器904,以及经由例如一个或多个总线908和/或其它连接而彼此耦接的一个或多个输入/输出设备和/或接口906。作为示例,计算环境900可包括:由纽约阿蒙克市的国际商业机器公司提供的powerpc处理器或pseries服务器;由加利福尼亚州帕洛阿尔托的惠普公司提供的配备英特尔安腾ii处理器的hpsuperdome;和/或基于由国际商业机器公司、惠普公司、因特尔公司、甲骨文公司或其它公司提供的体系结构的其它机器。

本机中央处理单元902包括一个或多个本机寄存器910,诸如,在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。

此外,本机中央处理单元902执行存储在存储器904中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器904中的仿真器代码912。该代码使得在一个体系结构中配置的计算环境能够仿真另一种体系结构。例如,仿真器代码912允许基于不同于z/体系结构的体系结构的机器(诸如,powerpc处理器、pseries服务器、hpsuperdome服务器或其它)仿真z/体系结构并执行基于z/体系结构开发的软件和指令。

参考图9b描述与仿真器代码912有关的进一步细节。共同地参考图9a和图9b,存储在存储器904中的访客指令950包括被开发为在不同于本机cpu902的体系结构的体系结构中执行的软件指令(例如,与机器指令相关)。例如,访客指令950可能已经被设计为在z/体系结构处理器上执行,但是相反地,其在可以是例如英特尔安腾ii处理器的本机cpu902上进行仿真。在一个示例中,仿真器代码912包括指令提取例程952,以从存储器904获得一个或多个访客指令950,并且可选地为所获得的指令提供本地缓冲。它还包括指令转换例程954,以确定所获得的访客指令的类型,并将访客指令转换成一个或多个对应的本机指令956。该转换包括:例如,识别将要由访客指令执行的功能,并选择执行该功能的本机指令。

另外,仿真器代码912包括仿真控制例程960以使本机指令被执行。仿真控制例程960可使本机cpu902执行仿真一个或多个先前所获得的访客指令的本机指令的例程,并且在这种执行结束时,将控制返回到指令提取例程以仿真下一个访客指令或访客指令组的获得。本机指令956的执行可包括:将数据从存储器904加载到寄存器中;将数据从寄存器存储回存储器;或者执行如由转换例程确定的某种类型的算术或逻辑运算。

每个例程例如以软件实现,该软件存储在存储器中并由本机中央处理单元902执行。在其它示例中,一个或多个例程或操作以固件、硬件、软件或它们的一些组合实现。所仿真处理器的寄存器可使用本机cpu的寄存器910或通过使用存储器904中的位置来仿真。在实施例中,访客指令950、本机指令956和仿真器代码912可驻留在同一存储器中或可分配在不同的存储器设备中。

如本文中所使用的,固件包括例如处理器的微代码、毫代码(millicode)和/或宏代码。例如,该术语包括用于实现更高级机器代码的硬件级指令和/或数据结构。在一个实施例中,固件可包括例如通常作为微代码传送的专有代码,其包括特定于底层硬件的可信软件或微代码,并控制对系统硬件的操作系统访问。

已获得、转换并执行的访客指令950例如是本文中描述的指令中的一个或多个指令。将具有一种体系结构(例如,z/体系结构)的指令从存储器中提取、转换并表示为一系列的具有另一种体系结构(例如,powerpc、pseries、intel等)的本机指令956。然后可执行这些本机指令。

尽管提供了各种示例,但在不脱离所要求保护的方面的精神的情况下,可以进行变化。例如,在其它实施例中,在由指令使用的寄存器和/或字段中包括的值可以在其它位置,例如存储器位置等。多个其它变体是可能的。

一个或多个方面可涉及云计算。

事先应理解,尽管本公开包括关于云计算的详细描述,但本文中所述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。

云计算是服务交付的模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源能够以最小的管理成本或与服务提供商进行最少的交互来快速部署和释放。可配置计算资源例如是:网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务。这种云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型。

特征如下:

按需自助式服务:云的消费者在无需与服务提供商进行人为交互的情况下,能够单方面自动地按需部署计算能力,诸如服务器时间和网络存储。

广泛的网络接入:计算能力通过网络获得,并通过标准机制访问,该标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如,移动电话,膝上型电脑和pda)的使用。

资源池:提供商的计算资源被归入资源池,以使用多租户模式为多个消费者提供服务,其中根据需求动态分配和重新分配不同的实体资源和虚拟资源。通常消费者不能控制或者并不知晓所提供的资源的确切位置,但是可能能够在更高抽象级别(例如,国家,州或数据中心)指定位置,因此具有位置无关性。

迅速弹性:可以迅速、有弹性地(有时是自动地)部署计算能力,以快速扩展,并且能迅速释放来快速缩小。对于消费者来说,用于部署的可用计算能力通常显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如,存储,处理,带宽和活跃用户帐户)的某种抽象级别的计量能力来自动控制和优化资源使用。可以监视,控制和报告资源使用,从而为所使用的服务的提供者和消费者提供透明度。

服务模型如下:

软件即服务(saas):提供给消费者的能力是使用提供商在云基础架构上运行的应用。可以通过诸如网络浏览器(例如,基于网络的电子邮件)的瘦客户机接口从各种客户机设备访问应用。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统、存储、甚至单个应用能力,可能的例外是有限的特定于用户的应用配置设置。

平台即服务(paas):提供给消费者的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用由提供商支持的编程语言和工具创建。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统或存储,但可以控制已部署的应用以及可能的应用托管环境配置。

基础架构即服务(iaas):提供给消费者的能力是部署处理、存储、网络和其它基础计算资源,其中消费者能够部署和运行任意软件,该软件可以包括操作系统和应用。消费者既不管理也不控制底层云基础设施,而是具有对操作系统,存储,部署的应用的控制,以及具有可能的对选择的网络组件(例如,主机防火墙)的有限控制。

部署模型如下:

私有云:云基础架构单独为组织运行。它可以由组织或第三方管理,可以存在于该组织内部或外部。

共同体云:云基础架构由多个组织共享,并支持具有共同利害关系(例如,任务使命,安全要求,策略和合规考虑)的特定共同体。它可能由组织或第三方管理,并且可能存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供,并由销售云服务的组织所有。

混合云:云基础架构由两个或多个云(私有云,共同体云或公共云)组成,这些云仍然是独特的实体,但通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态,低耦合性,模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础设施。一个这样的节点是图1中所描绘的节点10。

计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够实现和/或执行上文阐述的任何功能。

现在参考图10,描绘了示意性的云计算环境50。如图所示,云计算环境50包括云的消费者使用本地计算设备可以与其通信的一个或多个计算节点10,本地计算设备例如是个人数字助理(pda)或蜂窝电话54a,台式计算机54b,膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未示出),例如如上所述的私有云,共同体云,公共云或混合云,或其组合。这样,云的消费者无需维护本地计算设备上的资源就能够允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务。应该理解,图7中所示的计算设备54a-n的类型仅仅是示意性的,而计算节点10和云计算环境50可以(例如,使用网络浏览器)通过任何类型的网络和/或网络可寻址连接与任何类型的计算设备通信。

现在参考图11,示出了由云计算环境50(图10)提供的一组功能抽象层。应该事先理解图11中所示的组件、层和功能仅仅是示意性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:

硬件和软件层60包括硬件和软件组件。硬件组件的示例包括主机61;基于risc(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。

虚拟层70提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器71;虚拟存储72;虚拟网络73(包括虚拟私有网络);虚拟应用和操作系统74;和虚拟客户端75。

在一个示例中,管理层80可以提供下面描述的功能。资源供应功能81提供用于在云计算环境内执行任务的计算资源和其它资源的动态获取。计量和定价功能82在云计算环境内对资源的使用进行成本跟踪,并且提供用于消费这些资源的帐单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云的消费者和任务提供身份认证,以及为数据和其它资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(sla)计划和履行功能85为根据sla预测的对云计算资源未来需求提供预先安排和供应。

工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发和生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;和指令处理96。

本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。

计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。

本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如smalltalk,c++等的面向对象的编程语言,以及诸如“c”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分地在用户计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。

本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。

附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上并行地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

除了上述之外,可以由提供客户环境管理的服务提供商提供、给予、部署、管理、服务一个或多个方面。例如,服务提供商可以创建、维护、支持计算机代码和/或为一个或多个客户执行一个或多个方面的计算机基础设施。作为回报,服务提供商可以例如根据订阅和/或费用协议从客户接收付款。附加地或替代地,服务提供商可以从向一个或多个第三方销售广告内容来接收付款。

在一方面中,可以部署应用以执行一个或多个实施例。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。

作为另一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能够执行一个或多个实施例。

作为又一方面,可以提供一种用于集成计算基础设施的过程,包括将计算机可读代码集成到计算机系统中。该计算机系统包括计算机可读介质,其中该计算机介质包括一个或多个实施例。与计算机系统结合的代码能够执行一个或多个实施例。

尽管以上描述了各种实施例,但这些仅是示例。例如,具有其它体系结构的计算环境可用于合并和使用一个或多个实施例。此外,可以使用不同的指令,指令格式,指令字段和/或指令值。多个变化是可能的。

此外,其它类型的计算环境可以受益并被使用。作为示例,适用于存储和/或执行程序代码的数据处理系统是可用的,其包括直接或通过系统总线间接耦接到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间使用的本地存储器,大容量存储和高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储,以便减少执行期间必须从大容量存储重新取回代码的次数。

输入/输出或i/o设备(包括但不限于键盘,显示器,指示设备,dasd,磁带,cd,dvd,拇指驱动器和其它存储介质等)可以直接耦接到系统或通过介入i/o控制器而耦接到系统。网络适配器还可以耦接到系统,以使数据处理系统能够通过介入私有或公共网络而耦接到其它数据处理系统或远程打印机或存储设备。调制解调器,电缆调制解调器和以太网卡只是可用类型的网络适配器中的一小部分。

本文使用的术语仅出于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”,“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或者添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们的组合。

以下权利要求中的所有装置或步骤加功能元件的相应结构、材料、动作和等同物(如果有的话)旨在包括如所具体要求保护的用于结合其它要求保护的元件来执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了对一个或多个实施例的描述,但是并不旨在穷举或限制于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释各个方面和实际应用,并且使本领域普通技术人员能够理解具有各种修改的各种实施例适合于预期的特定用途。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1