一种基于按键功能控制的移动数据及设置存储键

文档序号:74760 发布日期:2021-10-01 浏览:51次 >En<

阅读说明:本技术 一种基于按键功能控制的移动数据及设置存储键 (Mobile data and set storage key based on key function control ) 是由 T·什莱格尔 E·特佐罗塔托斯 于 2020-02-14 设计创作,主要内容包括:执行单个架构化指令以执行多个功能。所述执行包括执行所述多个功能中的第一功能和所述多个功能中的第二功能。所述第一功能包括将数据块从一个位置移动到另一个位置,以及所述第二功能包括使用一个选择的键设置存储键的一部分,并使用另一个选择的键设置所述存储键的另一部分。所述存储键与数据块相关联,并且控制对数据块的访问。所述第一功能和所述第二功能作为单个架构化指令的一部分被执行。(A single architected instruction is executed to perform multiple functions. The performing includes performing a first function of the plurality of functions and a second function of the plurality of functions. The first function comprises moving a data block from one location to another location and the second function comprises setting a portion of a storage key using one selected key and setting another portion of the storage key using another selected key. The storage key is associated with the data block and controls access to the data block. The first function and the second function are performed as part of a single architected instruction.)

一种基于按键功能控制的移动数据及设置存储键

背景技术

一个或多个方面一般涉及促进计算环境内的处理,尤其涉及促进与移动数据相关联的处理。

在计算机处理中,数据通常从存储器中的一个位置(例如,源页)移动到存储器中的另一位置(例如,目的页)。在一个或一个以上架构中,这是使用架构化指令来执行。例如,在纽约Armonk的国际商业机器公司提供的硬件体系结构中,使用移动页面(Move Page)指令将数据从一个位置移动到另一个位置。

此外,在z/Architecture硬件架构中,存储键与被移动的数据相关联,并且用于控制对数据的访问。具体地,存储键与配置中的每个存储器块(例如,每个存储器页)相关联,并且用于控制对其对应的存储器块的访问。为了在例如目标页上设置存储键,使用设置存储键扩展(Set Storage Key Extend)指令。移动页面和设置存储键扩展指令是单独的指令,每个都是特权指令,由操作系统独立地分派,所述操作系统例如是由纽约Armonk的国际商业机器公司提供的操作系统。

发明内容

通过提供如权利要求1所述的方法以及相应的系统和计算机程序,克服了现有技术的缺点,并且提供了附加的优点。

通过使用单个架构指令来执行多个功能,设置存储键功能不需要单独的架构指令。因此,可以更快地执行功能,减少执行时间,并且改进处理器和/或整体系统性能。

在一个示例中,执行第一功能和执行第二功能是同时执行的。

此外,在一个示例中,所述执行所述指令包括从与所述指令相关联的位置获得键功能控制,所述键功能控制指定待执行的所述第二功能。

键功能控制的使用使得一个指令能够执行多个设置存储键功能,使得能够根据单个架构指令的键功能控制以不同的方式设置存储键。

在一个示例中,所述键功能控制指定所述存储键的所述一部分要通过复制选择的操作数的一个选择的键的对应部分来设置,并且所述存储键的另一部分要从与所述指令相关联的位置中提供的所述另一选择的键的对应部分来设置。作为示例,所述选择的操作数的所述一个选择的键是第二操作数的存储键,而在与指令相关联的位置中提供的所述另一个选择的键是与所述指令相关联的寄存器中的存储键。与所述指令相关联的位置包括例如与所述指令相关联的隐型寄存器(implied register)。

作为示例,所述存储键的一部分包括访问控制字段和获取保护字段,而所述存储键的另一部分包括引用字段和改变字段。

在一个示例中,所述移动数据块包括用一个位置的数据块替换另一位置的数据,所述另一位置和所述一个位置由所述指令指定。例如,通过由所述指令的一个寄存器字段指示的一个寄存器来指定所述另一位置,并且通过由所述指令的另一寄存器字段指示的另一寄存器来指定所述一个位置。

此外,作为一个示例,所述数据块包括数据页。

本文还描述并要求保护与一个或多个方面相关的计算机实现的方法和系统。此外,本文还描述并要求保护与一个或多个方面相关的服务。

通过本文所述的技术实现了额外的特征和优点。其它实施例和方面在本文中详细描述,且被视为所主张的方面的一部分。

附图说明

在说明书结尾处的权利要求中作为示例特别指出并清楚地要求了一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述和目的、特征和优点将变得显而易见,在附图中:

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

图1B示出了根据本发明的一个或多个方面的图1A的处理器的进一步细节;

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

图3A示出了根据本发明的一个方面用于移动数据和设置存储键的移动页面指令的一种格式;

图3B示出了根据本发明的一个方面由移动页面指令指定的寄存器R1的内容的一个示例;

图3C示出了根据本发明的一个方面由移动页面指令指定的另一寄存器R2的内容的一个示例;

图3D示出了根据本发明的一个方面指令所使用的隐型寄存器,通用寄存器0的字段的一个示例;

图4示出了根据本发明的一个方面与移动页面指令的执行相关联的处理的一个示例;

图5A-5B示出了根据本发明的一个方面促进计算环境内的处理的一个示例;

图6A示出了用于结合和使用本发明的一个或多个方面的计算环境的另一示例;

图6B示出了图6A的存储器的进一步细节;

图7示出了云计算环境的一个实施例;以及

图8示出了抽象模型层的一个示例。

具体实施方式

根据本发明的一个方面,提供了一种能力以促进在计算环境中进行处理。作为一个示例,提供单个指令(例如,硬件/软件接口处的单个架构的机器指令)以作为单个指令的一部分执行多个功能或操作,诸如移动数据和设置与数据相关联的存储键。该指令是通用处理器指令集体系结构(ISA)的一部分,其由诸如通用处理器的处理器上的程序(例如,操作系统)分派。

在一个示例中,被称为移动页面指令的指令用于将数据块(例如,数据页)从源位置(例如,源页面)移动到目的地位置(例如,目的地页面)并且在目的地位置上设置存储键。作为示例,数据块是数据页,其例如是4K字节的数据。在其它实例中,数据块可不同于数据页和/或数据页可不同于4K字节的数据。

在一个示例中,同时执行多个功能以提高性能;然而,在其它实例中,多个功能由单个指令执行,但未必同时执行。许多变化是可能的。

参考图1A描述了用于结合和使用本发明的一个或多个方面的计算环境的一个实施例。计算环境100包括例如处理器102(例如中央处理单元)、存储器104(例如主存储器;也称为系统存储器、主存储器、中央存储装置、存储装置)以及经由例如一个或多个总线108和/或其它连接彼此耦合的一个或多个输入/输出(I/O)设备和/或接口106。

在一个示例中,处理器102基于硬件架构,并且是服务器的一部分,诸如也由国际商业机器公司提供的并且实现z/Architecture硬件架构的IBM 服务器。z/Architecture硬件架构的一个实施例在题为“z/Architecture工作原理”的出版物中描述,IBM出版物号No.SA22-7832-11,第12版,2017年9月。然而,z/Architecture硬件架构仅是一个示例架构;其它体系结构和/或其它类型的计算环境可包括和/或使用本发明的一个或多个方面。在一个示例中,处理器执行操作系统,诸如操作系统。

处理器102包括用于执行指令的多个功能组件。如图1B所示,这些功能组件包括,例如,指令获取组件120,用于获取要执行的指令;指令解码单元122,用于对所获取的指令进行解码并获得所解码的指令的操作数;指令执行组件124,用于执行解码的指令;存储器访问组件126,用于在必要时访问存储器以用于指令执行;以及写回组件130,用于提供所执行指令的结果。根据本发明的一个或多个方面,这些组件中的一个或多个可以包括在移动数据和设置与之相关联的存储键(或可以使用本发明的一个或多个方面的其它处理)中使用的一个或多个其它组件的至少一部分或可以访问这些组件,如这里所述。一个或多个其他组件包括例如移动数据/设置存储键组件(或其他组件)136。

在一个示例中,存储器访问组件126使用一个或多个存储键128来确定请求访问一个或多个存储器块的指令是否被授权用于所请求的访问类型。

参考图2描述了包含和使用本发明的一个或多个方面的计算环境的另一示例,在一个示例中,计算环境基于z/Architecture硬件体系结构;然而,计算环境可以基于由国际商业机器公司或其它公司提供的其它体系结构。

参考图2,在一个示例中,计算环境包括中央电子复合体(central electronicscomplex)(CEC)200。CEC 200包括多个组件,例如,耦合到一个或多个处理器(也称为中央处理单元(CPU))204和输入/输出子系统206的存储器202(也称为系统存储器、主存储器、主存储、中央存储、存储)。

存储器202包括例如一个或多个逻辑分区208、管理逻辑分区的管理程序210、处理器固件212和存储键214(本文描述的)。管理程序210的一个示例是由纽约阿芒克(Armonk)的国际商业机器公司提供的处理器资源/系统管理器(PR/SMTM)管理程序。如这里所使用的,固件包括例如处理器的微代码。它包括例如在实现更高级的机器代码时使用的硬件级指令和/或数据结构。在一个实施例中,它包括例如专有代码,该专有代码通常作为包括可信软件的微代码或底层硬件专用的微代码来传递,并且控制操作系统对系统硬件的访问。

每个逻辑分区208能够作为单独的系统。即,每个逻辑分区可以被独立地重置,运行诸如z/OS操作系统的客户操作系统220或另一操作系统,并且利用不同的程序222来操作。在逻辑分区中运行的操作系统或应用程序看起来可以访问整个系统,但实际上,只有一部分系统是可用的。

存储器202耦合到处理器(例如,CPU)204,其是可以分配给逻辑分区的物理处理器资源。例如,逻辑分区208包括一个或多个逻辑处理器,每个逻辑处理器代表可以动态分配给逻辑分区的物理处理器资源204的全部或一部分。

此外,存储器202耦合到I/O子系统206。I/O子系统206可以是中央电子复合体的一部分或与其分离。它引导主存储装置202和输入/输出控制单元230以及耦合到中央电子复合体的输入/输出(I/O)设备240之间的信息流。

可以使用许多类型的I/O设备。一种特定类型是数据存储设备250。数据存储设备250可以存储一个或多个程序252、一个或多个计算机可读程序指令254和/或数据等。计算机可读程序指令可以被配置为执行本发明的各方面的实施例的功能。

作为一个示例,每个处理器204包括和/或具有对移动数据/设置存储键组件(或其他组件)260的访问,该组件260用于执行包括移动数据和设置存储键(和/或本发明的一个或多个方面的其他操作)的多个功能。在各种示例中,可以存在执行这些功能的一个或多个组件。许多变化是可能的。

中央电子复合体200可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。应当理解,其它硬件和/或软件组件可以与中央电子复合体200结合使用。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。

此外,中央电子复合体200可以与许多其他通用或专用计算系统环境或配置一起操作。适合与中央电子复合体200一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。

尽管在此描述了计算环境的各种示例,但是本发明的一个或多个方面可以与许多类型的环境一起使用。这里提供的计算环境仅仅是示例。

根据本发明的一个方面,诸如计算环境100或中央电子复合体200的计算环境采用移动页面和设置键工具(facility),其提供移动数据块和设置存储键的机制,作为分派单个指令的一部分。在一个示例中,当工具指示符被设置为例如1时,移动页面和设置键工具被安装在系统中。作为z/Architecture硬件架构的一个特定示例,当以z/Architecture模式安装工具时,工具位149被设置为例如1。该工具包括例如移动页面指令,下面描述其实施例。

参考图3A-3D描述了执行包括移动数据块(例如,数据页)和设置存储键的多个功能的移动页面指令的一个实施例。在一个示例中,使用通用处理器(例如,处理器102或204)来执行指令。在本文的描述中,指示了特定位置、特定字段和/或字段的特定大小(例如,特定字节和/或位)。然而,可以提供其他位置、字段和/或大小。此外,尽管指定了将位设置为特定值,例如1或0,但这仅是示例。在其它实例中,可将所述位设定为不同值,例如相反值或另一值。许多变化是可能的。

参考图3A,在一个示例中,移动页面指令300的格式是RRE格式,RRE格式表示具有扩展的操作码(opcode)字段的寄存器和寄存器操作。作为示例,指令包括具有指示移动页面操作的操作码字段302(例如,位0-15);第一寄存器字段(R1)304(例如,位24-27),其指定通用寄存器R1,其内容包括例如存储中的第一操作数的最左字节;以及指定通用寄存器R2的第二寄存器字段(R2)306(例如,位28-31),其内容包括例如存储中的第二操作数的最左字节。在一个示例中,指令的位16-23被保留并且应当包含零;否则,程序在将来可能不兼容地运行。如这里所使用的,程序是发出指令的程序。例如,它是特权程序,诸如操作系统。

关于通用寄存器R1和通用寄存器R2的进一步细节参考图3B-图3C描述。例如,如图3B所示,通用寄存器R1310包括第一操作数的最左字节的位置;即第一操作数地址312。此外,参看图3C,通用寄存器R2320包含第二操作数的最左字节的位置;即第二操作数地址322。

通用寄存器R1和R2中地址的处理取决于寻址模式。例如,在24位寻址模式中,附加了12个最右零的通用寄存器的位位置40-51的内容是地址,并且忽略寄存器中的位0-39和52-63。在31位寻址模式中,附加了12个最右零的通用寄存器的位位置33-51的内容是地址,并且忽略寄存器中的位0-32和52-63。在64位寻址模式中,附加了12个最右零的通用寄存器的位位置0-51的内容是地址,并且忽略寄存器中的位52-63。

除了通用寄存器R1和R2之外,指令的执行包括使用一个或多个隐型通用寄存器(即,未由指令明确指定的寄存器)。例如,通用寄存器0用于指令的执行,并且在一个示例中,包含影响指令操作的各种控制。

作为一个示例,参考图3D,通用寄存器0(330)包括多个字段,例如:

键功能控制332:在一个示例中,根据本发明的一个方面,通用寄存器0的位51-53包含键功能控制(KFC),其用于确定将如何使用或设置位56-62中的所提供的存储键。示例控制代码如下所示:

KFC 含义

0 PSW(程序状态字)键用于访问两个操作数。在操作数1块上的存储键中设置引用(R)和改变(C)位。

1 PSW键用于对第一操作数的存储访问,而所提供的ACC键(例如,通用寄存器0的位56-59)用于对第二操作数的获取访问。在操作数1块上的存储键中设置引用(R)和改变(C)位。

2 所提供的ACC键(例如,通用寄存器0的位56-59)用于对第一操作数的存储访问,而PSW键用于对第二操作数的获取访问。在操作数1块上的存储键中设置引用(R)和改变(C)位。

3 保留

4 键控制保护不应用于第一操作数。PSW键用于对第二操作数的获取访问。第一操作数的4K字节块的存储键被设置为通用寄存器0的位56-62中提供的全键。

5 键控制保护不应用于第一操作数。PSW键用于对第二操作数的获取访问。第一操作数的4K字节块的存储键被设置如下:从第二操作数的存储键复制访问控制位(ACC)和提取保护位(F),并且引用位(R)和改变位(C)使用通用寄存器0的位61-62中提供的值。

6-7 保留

在一个示例中,当没有安装移动页面和设置键工具时,KFC值的4和5也被保留。如果指定了保留值,则识别出指定异常。

目的地引用意图指示符334:在一个示例中,通用寄存器0的位54是目的地引用意图位。

条件码选项指示符336:在一个示例中,位55是条件码选项位。

存储键338:在一个示例中,通用寄存器0的位56-62包含存储键。存储键例如与配置中可用的每个存储块(例如,每个4K字节块)相关联。

存储键包括以下字段:

访问控制(ACC)340:通用寄存器0中的存储键的位56-59是访问控制位。如果引用受到键控制保护,则当存储信息时以及当从被保护以防止获取的位置获取信息时,四个访问控制位,位0-3,与四位访问键匹配。

获取保护(F)342:通用寄存器0中的存储键的位60是获取保护位。如果引用受到键控制保护,则获取保护位控制键控制保护是否应用于获取类型引用:0指示仅监视存储类型引用,并且允许用任何访问键来获取;1指示键控制保护应用于获取和存储。在指令获取和操作数获取之间没有区别。

引用(R)344:通用寄存器0中的存储键的位61是引用位。引用位通常被设置为1,例如每次引用相应存储块中的位置以便存储或获取信息时。

改变(C)346:通用寄存器0中的存储键的位62是改变位。每当信息被存储在相应的存储块中的位置时,改变位被设置为1。

在一个示例中,存储键不是可寻址存储的一部分。

在一个示例中,通用寄存器0的位48-50将为零;否则,识别出规范异常。忽略通用寄存器0的位0-47和位63。当没有安装移动页面和设置键工具时,位60-62也被忽略。在一个示例中,位60、61和62没有意义,除非使用KFC值4或5。

在一个示例中,在移动页面指令的执行中,第一操作数被第二操作数替换,并且可选地,存储键被设置在第一操作数的4K字节块上。第一和第二操作数都是例如4K字节边界上的4K字节。结果在条件码中指出。对第一操作数位置或第二操作数位置而非对这两个位置的访问可通过使用通用寄存器0中指定的键(例如,存储键338)来执行;否则,通过使用程序状态字(PSW)键来执行对操作数位置的访问。

在一个示例中,当已移动数据块(例如,4K字节)时,设定条件码0。

当存在页转换异常条件时,如果条件码选项指示符(例如,通用寄存器0中的位55)为1,那么不识别所述异常;相反,设置条件码1或2。举例来说,如果对于第一操作数而非对于第二操作数存在页转换异常条件,那么设置条件码1。例如,如果对于第二操作数存在页面转换异常条件,则设置条件码2,而不管第一操作数是否存在该条件。

当KFC值为4或5且第一操作与第二操作数的真实或绝对地址(可能在动态地址转换(DAT)之后)相同时,如果辨识出操作数异常,那么其是依赖模型。

当可以识别两个操作数的访问异常时,不可预测的是,识别哪个操作数的异常。如果异常之一是将导致设置条件码1或2的页面转换异常,则不可预测的是,是否识别了另一操作数的访问异常,或者是否设置了条件码1或2。

当通过设置条件码1或条件码2来完成指令,并且PER零地址检测条件也存在于第一操作数或第二操作数中时,无法预测零地址检测条件是否被识别。

对主存储的引用不必是单个访问引用,并且不必在从左到右的方向上执行,如由其它CPU和通道程序所观察到的。

当在第一操作数块(例如,KFC值4或5)上设置存储键时,不必执行停顿操作。

当KFC值为4或5时,在一个实施例中,在操作开始之前且在操作完成之后再次执行串行化和检查点同步功能。

示例条件:

在问题状态中,当KFC值为1或2时,例如仅当通用寄存器0中指定的访问键有效时,即,如果控制寄存器3中的对应PSW键掩码位为1时,才执行操作。否则,识别特权操作异常。在超级用户状态中,指定访问键的任何值都是有效的。

当KFC值为0时,不测试通用寄存器0中的存取键的有效性,且不识别特权操作异常。在问题状态中,当安装移动页面和设置键工具并且KFC值是4或5时,识别特权操作异常。

在问题状态下,当KFC值为3并且通用寄存器0中的访问键不被PSW键掩码允许时,不能预测是识别出规范异常还是特权操作异常。在一个实施例中,KFC值为6或7导致规范异常。

在ESA/390兼容模式中,当例如配置也未在ESA/扩展配置(ESA/XC)模式中操作时,识别出操作异常。

示例结果条件码:

0 数据移动,并且可选地,设置键

1 条件码选项位1、用于第一操作数无效的页表条目以及用于第二操作数有效的页表条目

2 条件码选项位1及用于第二操作数无效的页表条目

3--

程序异常:

·访问(获取,操作数2;存储,操作数1)

·操作数

·特权操作(在问题状态下,指定的访问键和选择的PSW键掩码(PSW-key-mask)位为零;在问题状态下,KFC值4或5)

·规范

·事务约束

编程注释:

*当使用KFC值4或5时,在通过键设置操作将引用和改变位设置为其最终值之前,另一CPU可简单地观察到第一操作数块的引用和改变位设置为1。

*当存在通过移动页面以外的指令来引用第一操作数的意图时,将目的地引用意图位设置为1。该位可以允许控制程序更有效地处理页面转换异常。

*如果条件码选项位为0或如果DAT为关,则通常不需要检查由指令设置的条件码。

参考图4描述了根据本发明的一个方面的基于移动页面指令的执行的处理的一个实施例的进一步细节,在一个示例中,操作系统发布指令,该指令使用诸如通用处理器102或204之类的处理器来执行。例如,处理器的硬件被用于执行指令。硬件可以在处理器内或耦合到处理器以用于从处理器接收指令,处理器例如获得、解码和设置指令以在硬件上执行。其它变化是可能的。

参考图4,最初,在步骤400,由诸如处理器102或204之类的处理器获得(例如,获取、接收、提供等)移动页面指令,并且在步骤402执行该指令。在步骤404,所述执行包括例如获得指令的键功能控制。键功能控制由指令所使用的位置(例如,寄存器,诸如隐型通用寄存器0)来指定。在步骤406,所述执行进一步包含获得第二操作数数据,其为例如第二操作数位置处的数据块(例如,数据页)。例如,在由指令的字段(例如,寄存器字段306)指定的通用寄存器(例如,R2)中指示第二操作数位置。此外,第二操作数数据的访问基于所获得的键功能控制。例如,根据键功能控制,可以使用在通用寄存器0中指定的存储键或程序状态字键来执行访问。

在步骤408中,第二操作数数据替换第一操作数数据(例如,数据块,例如数据页)。同样,如上所述,对第一操作数和第二操作数的访问依赖于键功能控制。

除了移动数据之外,根据本发明的一方面,可更新与数据相关联的存储键。例如,基于所获得的键功能控制,确定是否要设置存储键的一个或多个字段,步骤410。如果在询问412处将设置存储键的至少部分,那么在步骤414处基于键功能控制来设置存储键的一个或多个字段。例如,如果键功能控制被设置为4,则第一操作数数据的存储键(例如,第一操作数的4K字节块)被设置为通用寄存器0的存储键中提供的全键。作为另一示例,如果键功能控制被设置为5,则第一操作数数据的存储键设置例如如下:从第二操作数的存储键复制访问控制和获取保护值,并且引用和改变字段使用通用寄存器0的存储键中提供的值。其他示例也是可能的。

在步骤416通过设置条件码来完成指令的执行。

如这里所描述的,在一个方面,提供单个指令(例如,硬件/软件接口处的单个架构的机器指令,例如,移动页面指令)以使用例如通用处理器来执行移动数据和设置存储键操作。该指令例如是在指令集架构(ISA)中定义的硬件指令。结果,降低了与移动数据和设置存储键有关的程序的复杂性。此外,通过消除指令(例如,设置存储键指令)来改进功能的性能,并因此改进处理器的性能。处理更快,减少了执行时间,提高了性能。

虽然描述了移动页面指令的各种字段和寄存器,但是本发明的一个或多个方面可以使用其它的、附加的或更少的字段或寄存器,或者其它大小的字段和寄存器等。许多变化是可能的。例如,可以使用隐型寄存器来代替明确指定的寄存器或指令的字段,和/或可以使用明确指定的寄存器或字段来代替隐型寄存器或字段。其它变化也是可能的。

本发明的一个或多个方面不可分地依赖于计算机技术,并便于计算机内的处理,从而提高其性能。使用单个架构化机器指令来执行数据的移动并设置存储键改进了计算环境内的性能。该数据可以用于许多技术领域,例如计算机处理、医疗处理、安全等。通过提供移动数据和设置存储键的优化,通过减少执行时间来改进这些技术领域。

参考图5A-5B描述了与本发明的一个或多个方面相关的便于计算环境内的处理的一个实施例的进一步细节。

参考图5A,在一个实施例中,获得指令以执行多个功能(500),其中该指令是单个架构化指令(502)。执行指令(504),并且执行包括执行多个功能中的第一功能(506)和多个功能中的第二功能(508)。所述第一功能包括将数据块从一个位置移动到另一个位置,所述第二功能包括使用一个选择的键设置存储键的一部分,并使用另一个选择的键设置存储键的另一部分。存储键与数据块相关联,并控制对数据块的访问(510)。所述第一功能和所述第二功能作为单个架构化指令的一部分被执行(512)。

在一个示例中,执行第一功能和执行第二功能是同时执行的(514)。

此外,在一个示例中,执行所述指令包含从与所述指令相关联的位置获得键功能控制,所述键功能控制指定待执行的所述第二功能(516)。

在一个示例中,参考图5B,键功能控制指定通过复制选择的操作数的一个选择的键的相应部分来设置存储键的一部分,以及从与指令相关联的位置中提供的另一个选择的键的相应部分来设置存储键的另一部分(518)。作为示例,所述选择的操作数的所述一个选择的键是第二操作数的存储键,而在与指令相关联的位置中提供的所述另一个选择的键是与指令相关联的寄存器中的存储键(520)。与所述指令相关联的位置包括例如与所述指令相关联的隐型寄存器(522)。

作为示例,存储键的一部分包括访问控制字段和获取保护字段,并且存储键的另一部分包括引用字段和改变字段(524)。

在一个示例中,移动数据块包括用一个位置的数据块替换另一位置的数据,所述另一位置和所述一个位置由所述指令指定(526)。例如,通过由所述指令的一个寄存器字段指示的一个寄存器来指定所述另一位置,并且通过由所述指令的另一寄存器字段指示的另一寄存器来指定所述一个位置(528)。

在一个示例中,数据块包括数据页(530)。

其它变化和实施例是可能的。

本发明的各方面可由许多类型的计算环境使用。参考图6A描述了用于结合和使用本发明的一个或多个方面的计算环境的另一实施例。在该示例中,计算环境10包括例如本地中央处理单元(CPU)12、存储器14、以及经由例如一个或多个总线18和/或其他连接彼此耦合的一个或多个输入/输出设备和/或接口16。作为示例,计算环境10可包括由纽约阿芒克(Armonk)的国际商业机器公司提供的处理器;加利福尼亚州帕洛阿尔托市(Palo Alto)Hewlett Packard公司提供的带有Intel Itanium II处理器的HP Superdome;和/或基于由国际商业机器公司、Hewlett Packard、Intel公司、Oracle或其它公司提供的体系结构的其它机器。IBM、z/Architecture、IBM Z、z/OS、PR/SM和PowerPC是国际商业机器公司在至少一个司法管辖区内的商标或注册商标。英特尔和安腾是英特尔公司或其子公司在美国和其他国家的商标或注册商标。

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

此外,本地中央处理单元12执行存储在存储器14中的指令和代码,在一个特定示例中,中央处理单元执行存储在存储器14中的仿真器代码22,该代码使得在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码22允许基于z/Architecture硬件架构之外的架构的机器,诸如PowerPC处理器、HP Superdome服务器或其他,来仿真z/Architecture硬件架构,并且基于z/Architecture硬件架构执行开发的软件和指令。

参考图6B描述了与仿真器代码22有关的进一步细节。存储在存储器14中的客户指令30包括软件指令(例如,与机器指令相关),其被开发为在不同于本地CPU 12的架构中执行,例如,客户指令30可以被设计为基于z/Architecture硬件架构在处理器上执行,但是替代地,在本地CPU 12上被仿真,其可以是例如Intel Itanium II处理器。在一个示例中,仿真器代码22包括指令获取例程32,以从存储器14获得一个或多个客户指令30,并且可选地为所获得的指令提供本地缓冲。它还包括指令转换例程34,以确定已经获得的客户指令的类型,并且将客户指令转换成一个或多个对应的本地指令36。该转换包括例如标识要由客户指令执行的功能以及选择(一个或多个)本地指令来执行该功能。

此外,仿真器代码22包括仿真控制例程40以使得执行本地指令。仿真控制例程40可以使本地CPU 12执行仿真一个或多个先前获得的客户机指令的本地指令的例程,并且在这样的执行结束时,将控制返回到指令获取例程以仿真下一个客户机指令或一组客户机指令的获得。执行本地指令36可以包括从存储器14加载数据到寄存器中;将数据从寄存器存储回存储器;或者执行由转换例程确定的某种类型的算术或逻辑运算。

例如,每个例程以软件实现,该软件存储在存储器中并由本地中央处理单元12执行,在其他示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合实现。被仿真的处理器的寄存器可以使用本地CPU的寄存器20或者通过使用存储器14中的位置来仿真,在实施例中,客户指令30、本地指令36和仿真器代码22可以驻留在相同的存储器中或者可以在不同的存储器设备之间分配。

上述计算环境仅是可以使用的计算环境的示例。可以使用其它环境,包括但不限于非分区环境、分区环境和/或仿真环境;实施例不限于任何一种环境。

每个计算环境能够被配置成包括本发明的一个或多个方面。例如,根据本发明的一个或多个方面,每个可以被配置成提供移动数据/集合存储键处理。

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

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

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

特征包括:

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

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

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

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户账号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

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

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

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

部署模型如下:

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

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

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

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

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图7,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点52,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点52之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点52进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图7显示的各类计算设备54A-N仅仅是示意性的,云计算节点52以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图8,其中显示了云计算环境50(图7)提供的一组功能抽象层。首先应当理解,图8所示的组件、层以及功能都仅仅是示意性的,本发明的实施例并非限制性的。如图所示,提供以下层和相应的功能。

硬件和软件层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控制器耦合到系统。网络适配器也可以耦合到系统,以使数据处理系统能够通过中间专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是几种可用的网络适配器类型。

本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所用,单数形式“一个(a)”、“一个(an)”和“该(the)”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括(comprises)”和/或“包括(comprising)”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。

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

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:应用程序的处理方法、装置、存储介质及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!