CN106133687B - 用于管理计算环境内的处理的方法和系统 - Google Patents
用于管理计算环境内的处理的方法和系统 Download PDFInfo
- Publication number
- CN106133687B CN106133687B CN201580014448.1A CN201580014448A CN106133687B CN 106133687 B CN106133687 B CN 106133687B CN 201580014448 A CN201580014448 A CN 201580014448A CN 106133687 B CN106133687 B CN 106133687B
- Authority
- CN
- China
- Prior art keywords
- architectural
- instruction
- function
- mode
- architecture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 118
- 238000000034 method Methods 0.000 title claims description 63
- 238000013519 translation Methods 0.000 claims abstract description 87
- 230000006870 function Effects 0.000 claims description 209
- 238000003860 storage Methods 0.000 claims description 119
- 230000015654 memory Effects 0.000 claims description 115
- 238000004891 communication Methods 0.000 claims description 18
- 238000011068 loading method Methods 0.000 claims description 13
- 230000002829 reductive effect Effects 0.000 claims description 13
- 230000001629 suppression Effects 0.000 claims description 6
- 230000014616 translation Effects 0.000 description 76
- 238000004590 computer program Methods 0.000 description 18
- 238000005192 partition Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000006073 displacement reaction Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 238000007792 addition Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- IAXXETNIOYFMLW-UHFFFAOYSA-N (4,7,7-trimethyl-3-bicyclo[2.2.1]heptanyl) 2-methylprop-2-enoate Chemical compound C1CC2(C)C(OC(=O)C(=C)C)CC1C2(C)C IAXXETNIOYFMLW-UHFFFAOYSA-N 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 2
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 101100241173 Caenorhabditis elegans dat-1 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种工具,当安装了所述工具时,所述工具从架构移除选定架构功能,以使得不能够开启/关闭所述功能,而不管环境内的其他控件。当安装所述工具时,当在一种架构模式中基于所述架构处理时,并不支持所述架构功能。这好像所述选定架构功能在所述架构中不再可用,而事实上,可能已删除、绕过或以其他方式消除实施所述工具的代码。一个此类架构功能为虚拟地址转换,诸如动态地址转换(DAT),且所述架构例如为ESA/390。
Description
技术领域
一个或多个方面总体上涉及计算环境内的处理,并且具体地说,涉及管理选定架构功能在计算环境内的使用。
背景技术
计算环境提供一系列能力且包括作为其架构配置的一部分的某些功能。一个此类功能为用于将虚拟地址转换成实地址的虚拟地址转换,诸如动态地址转换。
系统配置包括用于存储应用及数据的物理存储器。物理存储器的数量为固定的且常常不足以支持用户的需求。因此,利用被称作虚拟存储器的存储器管理技术,以便提供额外存储器或至少额外存储器的外观。虚拟存储器使用虚拟寻址,虚拟寻址提供可能看起来比主存储器的物理大小大得多的地址范围。
为了存取包括虚拟存储器的系统配置中的主存储器,请求包括(例如)虚拟地址的存储器存取。使用(例如)动态地址转换或另一转换技术将虚拟地址转换成用于存取物理存储器的实地址。
但是,虚拟存储器测试是昂贵的。在架构过时时,例如对于主要用作命令行解释器环境的使用最少架构支持的系统(如DOS操作系统(例如,MS DOS或CMS)),或对于用于执行BIOS的一部分(并且能够在没有虚拟存储器的复杂性的情况下执行)的环境,可能希望提供旧版环境。
因此,本领域中需要解决上述问题。
发明内容
经由提供一种用于管理计算环境内的处理的计算机程序产品来克服现有技术的缺点且提供优点。所述计算机程序产品包括(例如)计算机可读存储介质,其可由处理电路读取且存储供所述处理电路执行以用于执行一种方法的指令。所述方法包括(例如)由在第一架构模式中处理的主机处理器启动第一客体虚拟机,所述第一客体虚拟机用于在所述第一架构模式中处理,所述第一架构模式具有第一指令集架构且提供第一组架构功能;由所述主机处理器启动第二客体虚拟机,所述第二客体虚拟机用于在第二架构模式中处理,其中所述第二架构模式具有第二指令集架构且提供第二组架构功能,所述第二组架构功能是在所述第一组架构功能中提供的一组精简架构功能,其中在所述第一组架构功能中提供的选定架构功能不存在于所述第二组架构功能中,所述第二架构模式是功能抑制模式;及由所述第二客体虚拟机在所述第二架构模式中执行处理,其中所述执行处理超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件。
从第一方面看,本发明提供一种用于管理计算环境内的处理的方法,所述方法包括:由在第一架构模式中处理的主机处理器启动第一客体虚拟机,所述第一客体虚拟机用于在所述第一架构模式中处理,所述第一架构模式具有第一指令集架构且提供第一组架构功能;由所述主机处理器启动第二客体虚拟机,所述第二客体虚拟机用于在第二架构模式中处理,其中所述第二架构模式具有第二指令集架构且提供第二组架构功能,所述第二组架构功能是在所述第一组架构功能中提供的一组精简架构功能,其中在所述第一组架构功能中提供的选定架构功能不存在于所述第二组架构功能中,所述第二架构模式是功能抑制模式;及由所述第二客体虚拟机在所述第二架构模式中执行处理,其中所述执行处理超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件。
从另一方面看,本发明提供一种管理计算环境内的处理的方法,所述方法包括:由计算环境的处理器获得执行操作的请求,所述操作是使用或启用选定架构功能,所述处理器被配置为同时支持包括第一架构及第二架构的多个架构,所述第一架构被配置为用于且支持所述选定架构功能,且所述第二架构已自其移除所述选定架构功能;基于所述获得,判定所述处理器是正在第一架构模式中基于所述第一架构进行处理还是正在第二架构模式中基于所述第二架构进行处理;基于判定所述处理器正在所述第一架构模式中进行处理,执行所述操作;及基于判定所述处理器正在所述第二架构模式中进行处理且所述选定架构功能已被移除,提供将不使用或不启用所述选定架构功能的指示,其中所述提供在不检查指示所述选定架构特征是否被启用/停用的控件的情况下执行,所述控件与关于移除的指示分离。
从另一方面看,本发明提供一种用于管理计算环境内的处理的计算机系统,所述计算机系统包括:存储器;及处理器,其与所述存储器通信,其中所述计算机系统被配置为执行一方法,所述方法包括:由在第一架构模式中处理的主机处理器启动第一客体虚拟机,所述第一客体虚拟机用于在所述第一架构模式中处理,所述第一架构模式具有第一指令集架构且提供第一组架构功能;由所述主机处理器启动第二客体虚拟机,所述第二客体虚拟机用于在第二架构模式中处理,其中所述第二架构模式具有第二指令集架构且提供第二组架构功能,所述第二组架构功能是在所述第一组架构功能中提供的一组精简架构功能,其中在所述第一组架构功能中提供的选定架构功能不存在于所述第二组架构功能中,所述第二架构模式是功能抑制模式;及由所述第二客体虚拟机在所述第二架构模式中执行处理,其中所述执行处理超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件。
从另一方面看,本发明提供一种用于管理计算环境内的处理的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,其可由处理电路读取并存储由所述处理电路执行以执行本发明的步骤的方法的指令。
从另一方面看,本发明提供一种计算机程序,其存储在计算机可读介质上并可载入数字计算机的内部存储器,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的步骤。
本文亦描述及要求保护涉及一个或多个优选实施例的方法及系统。此外,本文亦描述且可要求保护涉及一个或多个优选实施例的服务。
实现了额外特征及优点。本文中详细描述了其他优选实施例及方面且所述实施例及方面被视为所要求保护的发明的一部分。
附图说明
现在将仅通过实例的方式参考如附图所示的优选实施例描述本发明,这些附图是:
图1A描绘根据本发明的一个优选实施例的结合及使用无动态地址转换(无DAT)工具的一个或多个方面的计算环境的一个实例;
图1B描绘根据本发明的一个优选实施例的结合及使用无DAT工具的一个或多个方面的虚拟计算环境的一个实例;
图2描绘根据本发明的一个优选实施例的结合及使用无DAT工具的一个或多个方面的计算环境的另一个实例;
图3A描绘根据本发明的一个优选实施例的结合及使用无DAT工具的一个或多个方面的计算环境的又一个实例;
图3B描绘根据本发明的一个优选实施例的图3A的存储器的进一步细节;
图4描绘根据本发明的一个优选实施例的64位地址转换的一个实施例;
图5描绘根据本发明的一个优选实施例的加载程序状态字(PSW)指令的一个实例格式;
图6描绘根据本发明的一个优选实施例的程序状态字的一个实例格式;
图7A至7C描绘根据本发明的一个优选实施例的加载实地址指令的实例格式;
图8描绘根据本发明的一个优选实施例的设定系统屏蔽指令的一个实例格式;
图9描绘根据本发明的一个优选实施例的存储后或系统屏蔽(Store Then ORSystem Mask)指令的一个实例格式;
图10描绘根据本发明的一个优选实施例的与无DAT工具相关联的处理的一个实施例;
图11A至11B描绘根据本发明的一个优选实施例的虚拟计算环境中与无DAT工具相关联的处理的一个实施例;
图12描绘根据现有技术并且其中可以实施本发明的一个优选实施例的计算机程序产品的一个实施例;
图13描绘根据现有技术并且其中可以实施本发明的一个优选实施例的主计算机系统的一个实施例;
图14描绘根据现有技术并且其中可以实施本发明的一个优选实施例的计算机系统的另一个实例;
图15描绘根据现有技术并且其中可以实施本发明的一个优选实施例的包括计算机网络的计算机系统的另一个实例;
图16描绘根据现有技术并且其中可以实施本发明的一个优选实施例的计算机系统的各种组件的一个实施例;
图17A描绘根据现有技术并且其中可以实施本发明的一个优选实施例的图16的计算机系统的执行单元的一个实施例;
图17B描绘根据现有技术并且其中可以实施本发明的一个优选实施例的图16的计算机系统的分支单元的一个实施例;
图17C描绘根据现有技术并且其中可以实施本发明的一个优选实施例的图16的计算机系统的加载/存储单元的一个实施例;
图18描绘根据现有技术并且其中可以实施本发明的一个优选实施例的被仿真主计算机系统的一个实施例;
图19描绘根据现有技术并且其中可以实施本发明的一个优选实施例的云计算节点的一个实施例;
图20描绘根据现有技术并且其中可以实施本发明的一个优选实施例的云计算环境的一个实施例;及
图21描绘根据现有技术并且其中可以实施本发明的一个优选实施例的抽象模型层的一个实例。
具体实施方式
根据一个或多个方面,提供一种工具,当安装了所述工具时,所述工具从架构移除选定架构功能,以使得不能够开启/关闭所述功能,而不管环境内的其他控件。当安装了所述工具时,不支持所述架构功能。这好像所述选定架构功能在所述架构中不再可用,而事实上,可能已删除、绕过或以其他方式消除实施所述工具的代码。一个此类架构功能为虚拟地址转换,诸如动态地址转换(DAT),且所述架构例如为ESA/390。
在一特定实施例中,提供一种计算环境,其被配置为支持多个架构模式,例如第一架构模式(诸如,增强型模式,例如z/Architecture)及第二架构模式(诸如,旧版模式,例如ESA/390)。在一个实施例中,第一架构模式具有不同于第二架构模式的架构差异,诸如,第一架构模式提供64位寻址且使用64位通用寄存器,且第二架构模式提供31位寻址且使用32位通用寄存器。另外,诸如DAT的某些架构功能为第一架构模式所支持且可能不为第二架构模式所支持。
虽然计算环境被配置为同时支持多个架构模式,但其仅在这些模式中的一者中处理。因此,根据一方面,基于计算环境的处理器接收执行使用选定架构功能的操作的请求,处理器基于是否已将所述功能自计算环境当前正进行处理所在的架构模式中移除而执行所述功能或提供不执行所述功能的指示。
在另一个实施例中,计算环境为具有在处理器及主机所支持的多个客体虚拟机上执行的主机控制程序的虚拟环境。主机正(例如)在第一架构模式中处理;然而,由主机启动的客体虚拟机可能或可能不在与主机相同的架构模式中处理。举例而言,可在提供选定架构功能的第一架构模式中启动一个虚拟机,且可在不提供该选定架构功能的第二架构模式中启动另一虚拟机。在一个实施例中,第二架构模式提供第一架构模式中的一组精简架构功能。所述选定架构功能并非架构的一部分,因为已将其自架构中移除(例如,在无实施所述功能的代码的情况下建立的架构的版本,或已绕过、删除或以其他方式消除先前在架构中用于支持此功能的代码)。
在另一个实施例中,第二架构模式可提供不同于第一架构的功能或工具,但特定架构能力可在第一架构模式中提供而不在第二架构模式中提供。在一个例示性实施例中,在第一架构中提供DAT转换,但在第二架构中并不提供DAT转换(采取由第一架构定义的形式,或任何其他形式,例如,如可能已根据以下各者中的一者或多者提供:ESA/390、S/390、S/370、S/360、PowerPC、根据书籍3E的PowerPC、Intel/AMD x86、Itanium,或对应于DAT或类似DAT工具的任何其他架构规格)。IBM、Z/OS、Z/VM、Z/Architecture、Processor Resource/Systems Manager、PowerPC和Power Systems为国际商业机器公司在全世界各地的注册商标。本文中使用的其他名称可为国际商业机器公司或其他公司的注册商标、商标或产品名称。Intel和Itanium是英特尔公司或其子公司在美国或其他国家的商标或注册商标。
如本文所指示,在一个实例中,在第一架构中提供但在第二架构中并不提供的架构功能为虚拟地址转换,诸如动态地址转换(DAT)。因此,在一特定实例中,在计算环境中提供无DAT(亦被称作NDAT)工具,其指示特定架构模式(例如,旧版架构模式)并不支持动态地址转换。所述工具消除(例如)动态地址转换(DAT)开启的配置在ESA/390架构模式中的可能性。即,当安装及启用此工具时,ESA/390架构模式中的配置无法使得DAT开启。开启DAT的尝试造成(例如)无DAT异常程序中断。在其他实施例中,指示其他异常代码。
在一个实施例中,NDAT工具亦使得通常结合DAT转换使用的一个或多个指令(诸如加载实地址(LRA)指令)不能够被执行。当加载实地址指令能够在第一架构模式中执行时,(例如)防止其在第二架构模式中执行。
在一个实施例中,可在一个或多个计算环境(例如,处理器、LPAR、客体)中选择性地启用NDAT工具。然而,当在计算环境中启用NDAT工具时,环境无法在第二架构中使用DAT(即,无ESA/390DAT),而不管环境内的其他控件的设定。这些其他控件被绕过或超控。
参看图1A描述结合并使用无DAT工具的一个或多个方面的计算环境的一个实例。参看图1A,在一个实例中,计算环境100基于z/Architecture,所述z/Architecture由纽约阿蒙克市的国际商业机器公司提供。在标题为“z/Architecture-操作原理(z/Architecture-Principles of Operation)”的公开号为SA22-7932-09的IBM公开(2012年9月,第10版)中描述了z/Architecture。尽管计算环境基于z/Architecture,但在一个实施例中,其亦支持一个或多个其他架构配置,诸如ESA/390或ESA/390的子集。
作为一个实例,计算环境100包括中央处理器复合体(CPC)102,其经由一个或多个控制单元108耦接至一个或多个输入/输出(I/O)设备106。中央处理器复合体102包括(例如)耦接至一个或多个中央处理器(亦即,中央处理单元(CPU)110)的处理器存储器104(亦即,主存储器、主存储装置、中央存储装置)及输入/输出子系统111,以上各者中的每一者在下文加以描述。
处理器存储器104包括(例如)一个或多个分区112(例如,逻辑分区),及包含逻辑分区系统管理程序114及其他处理器固件115的处理器固件113。逻辑分区系统管理程序114的一个实例为纽约阿蒙克市的国际商业机器公司提供的Processor Resource/SystemManager(PR/SM)。
逻辑分区充当单独系统且其中具有一个或多个应用120及视情况具有驻留操作系统122,对于每一逻辑分区,这些应用可以是不同的。在一个实施例中,所述操作系统为纽约阿蒙克市的国际商业机器公司提供的z/OS操作系统、z/VM操作系统、z/Linux操作系统或TPF操作系统。逻辑分区112由逻辑分区系统管理程序114管理,所述逻辑分区系统管理程序由在处理器110上运行的固件实施。如本文中所使用,固件包括(例如)处理器的微码和/或毫码(millicode)。其包括(例如)用于实施较高层级机器码的硬件层级指令和/或数据结构。在一个实施例中,其包括(例如)专属码,所述专属码通常作为包括受信任软件的微码或底层硬件所特有的微码递送,且控制操作系统对系统硬件的存取。
中央处理器110为分配给逻辑分区的物理处理器资源。具体地说,每一逻辑分区112具有一个或多个逻辑处理器,这些逻辑处理器中的每一者表示分配给该分区的所有或一部分物理处理器110。特定分区112的逻辑处理器可专用于该分区,以便将底层处理器资源110保留用于该分区;或与另一分区共享所述底层处理器资源,以使得底层处理器资源有可能可用于另一分区。在一个实例中,CPU中的一者或多者包括本文所描述的无DAT(NDAT)工具130的各方面。
输入/输出子系统111引导输入/输出设备106与主存装置104之间的信息流。其耦接至中央处理复合体,其中其可为中央处理复合体的一部分或与中央处理复合体分离。I/O子系统减轻中央处理器的与输入/输出设备直接通信的任务且准许数据处理与输入/输出处理同时进行。为了提供通信,I/O子系统采用I/O通信适配器。存在各种类型的通信适配器,包括(例如)通道、I/O适配器、PCI卡、以太网卡、小型计算机存储接口(SCSI)卡等。在本文所描述的特定实例中,I/O通信适配器为通道,且因此,I/O子系统在本文中被称作通道子系统。然而,这仅为一个实例。可使用其他类型的I/O子系统。
I/O子系统在管理至输入/输出设备106或来自输入/输出设备106的信息流中使用一个或多个输入/输出路径作为通信链路。在此特定实例中,这些路径被称为通道路径,因为通信适配器为通道。
参看图1B描述结合且使用无DAT工具的一个或多个方面的计算环境的另一个实例。在此实例中,计算环境150包括提供虚拟机支持的中央处理器复合体152。CPC 152经由一个或多个控制单元108耦接至一个或多个输入/输出(I/O)设备106。中央处理器复合体152包括(例如)耦接至一个或多个中央处理器(亦即,中央处理单元(CPU))110的处理器存储器154(亦即,主存储器、主存储装置、中央存储装置),及输入/输出子系统111。
处理器存储器154包括(例如)一个或多个虚拟机162,及包含主机系统管理程序164及其他处理器固件165的处理器固件163。主机系统管理程序164的一个实例为纽约阿蒙克市的国际商业机器公司提供的
CPC的虚拟机支持提供操作大量虚拟机162的能力,每一虚拟机能够托管客体操作系统172(诸如,)。每一虚拟机162能够充当单独系统。亦即,每一虚拟机可独立地进行重设,托管客体操作系统,且用不同程序120操作。在虚拟机中运行的操作系统或应用程序看起来能够存取完全及完整系统,但实际上,其仅能够存取其可获得的一部分。Linux是LinusTorvalds在美国和/或其他国家的注册商标。
在此特定实例中,虚拟机的模型为V=V模型,其中虚拟机的绝对或真实存储器依靠主机虚拟存储器,而非真实或绝对存储器。每一虚拟机具有虚拟线性存储空间。物理资源由主机164拥有,且共享物理资源由主机在需要时分派给客体操作系统,以满足其处理需求。此V=V虚拟机(亦即,可分页客体)模型假定:客体操作系统与物理共享机器资源之间的交互由主机控制,因为大量客体通常妨碍主机简单地分割硬件资源及将硬件资源指派给被配置客体。在标题为“z/VM:运行客体操作系统(z/VM:RunningGuest Operating Systems)”的公开号为SC24-5997-02的公开(2001年10月)中进一步描述V=V模型的一个或多个方面。
中央处理器110为可指派给虚拟机的物理处理器资源。举例而言,虚拟机162包括一个或多个逻辑处理器,这些逻辑处理器中的每一者表示可动态地分配给虚拟机的所有或一部分物理处理器资源110。虚拟机162由主机164管理。
在一个实施例中,主机(例如,)及处理器(例如,System z)硬件/固件彼此以受控合作方式交互以便处理V=V客体操作系统操作,而不需要自客体操作系统及主机传送控制/将控制传送至客体操作系统及主机。可经由允许针对可分页存储模式客体解释性地执行指令的工具直接执行客体操作,而无需主机干预。此工具提供主机能够发出的开始解释性执行(SIE)指令,从而指定被称为状态描述的控制块,该控制块保持客体(虚拟机)状态及控件,诸如执行控件及模式控件。所述指令将机器置于直接处理客体指令及中断的解释性执行模式中,直至出现需要主机注意的条件为止。当出现此类条件时,结束解释性执行,且呈现主机中断,或SIE指令完成存储所遇到的条件的细节;此后一动作被称为拦截。在System/370Extended Architecture/Interpretive Execution(IBM公开第SA22-7095-01号,1985年9月)中描述了解释性执行的一个实例。
具体地说,在一个实施例中,解释性执行工具提供用于虚拟机的执行的指令。被称为开始解释性执行(SIE)的此指令由建立客体执行环境的主机发出。主机是直接管理真实机器的控制程序且客体是指任何虚拟或解释机器。由发出SIE指令的主机将机器置于解释性执行模式中。在此模式中,机器提供选定架构(例如,z/Architecture、ESA/390)的功能。所述功能尤其包括(例如)特权程序指令及问题程序指令的执行、地址转换、中断处置,及计时。机器被称为解释其在虚拟机的内容上下文中执行的功能。
SIE指令具有被称为状态描述的操作数,其包括与客体的当前状态相关的信息。当SIE的执行结束时,在将控制返回至主机之前,将表示客体的状态的信息(包括客体PSW)存储于该状态描述中。
解释性执行架构提供用于绝对存储的存储模式,其被称作可分页存储模式。在可分页存储模式中,主机层级处的动态地址转换用于映射客体主存储装置。主机具有以下能力:通过使用主机DAT将可分页存储模式客体的真实存储分散至主机真实存储装置中的任何位置处的可用帧,及将客体数据分页出至辅助存储装置。当分配真实机器资源,同时保持用于客体的一系列连续绝对存储的预期外观时,此技术提供灵活性。
虚拟机环境可能要求应用两次DAT:第一次在客体层级,经由客体管理转换表将客体虚拟地址转换成客体实地址,且接着,对于可分页客体,在主机层级,将对应主机虚拟地址转换成主机实地址。
在某些状况下,主机将在通常委派给机器的操作中调解。为此目的,状态描述包括可由主机设定以“截获”或“拦截”特定条件的控件。拦截控制位请求机器在遇到特定客体指令时将控制返回给主机仿真。干预控件捕获启用状态至PSW中的引入,以使得主机能够呈现中断,该中断针对客体保持未决。可在解释进行的同时由主机在另一真实处理器上异步地设定干预控件。机器周期性地自存储装置重新取回控件,以使得将识别更新后的值。藉此可使得客体中断为未决的,而不会过早地干扰解释。
在本发明的一个优选实施例中,对于虚拟环境,在SIE状态描述中提供执行控制指示符。大体而言,如果此架构功能的指示符为0,则在虚拟机中,并不会使得所述功能为可用的,且如果指示符为1,则尝试相关联功能的解释性执行。在一个实例中,当可分页存储模式客体在ESA/390架构模式中且指示符为1时,将NDAT工具安装于客体中;当指示符为0时,并不安装NDAT。当安装NDAT时,客体并不使用DAT,而不管可管理DAT功能的可用性的其他控件(例如,控制虚拟环境中的执行的其他控件或工具)。(在另一个实施例中,将NDAT提供于虚拟环境中作为全局工具,而不供应特定指示符。)
除执行控件之外,状态描述中的模式控件亦指定客体是在ESA/390中抑或z/Architecture模式中执行且选择多种方式中的一者来表示主机存储装置中的客体虚拟机的客体主存储装置。根据本发明的一个优选实施例,在状态控件中提供控制位以在客体处于第一架构模式中及处于第二架构模式中(例如,分别为z/Architecture及ESA/390)之间进行选择。根据本发明的另一优选实施例,两个相异指令可为主机提供创建第一及第二客体虚拟机的能力,例如,可提供相异指令SIEz及SIEe以分别在z/Architecture及ESA/390模式中启动客体机器。
SIE指令运行由控制程序分派的虚拟服务器,直至已消耗服务器的时间片为止或直至服务器想要执行硬件无法虚拟化或控制程序将重新取得控制的操作为止。在那时,SIE指令结束且将控制返回给控制程序,所述控制程序仿真所述指令或将虚拟服务器置于非自愿等待状态。当完成时,控制程序再次安排虚拟服务器使其运行,且循环再次开始。以此方式,使得CPU的完整能力及速度可用于虚拟服务器。仅拦截需要来自控制程序的辅助或由控制程序进行的验证的那些特权指令。这些SIE拦截(如其被称为地那样)亦供控制程序用于对虚拟服务器可对真实设备执行的操作施加限制。
在ESA/390解释性执行架构(用于VM/ESA的基础,Osisek等人,IBM系统日志,第30卷,第1号,1991年1月,第34至51页)中描述了关于SIE的进一步细节。
在本发明的一个优选实施例中,将NDAT工具自动地安装于ESA/390客体中,而无需参考任何控件。因此,在不参考SIE状态控制块中的任何控件或至SIE或其他虚拟机建立指令的其他选项的情况下,对应于ESA/390模式的虚拟机不能够存取DAT工具。
参看图2描述结合并使用无DAT工具的一个或多个方面的计算环境的另一个实例。在此实例中,计算环境200包括未被分区的环境,其被配置为用于多种架构模式,包括z/Architecture及ESA/390或ESA/390的子集。其包括(例如)处理器(中央处理单元-CPU)202,处理器202包括(例如)无DAT(NDAT)工具204及一个或多个高速缓存206。处理器202通信地耦接至具有一个或多个高速缓存210的存储器部分208,且耦接至输入/输出(I/O)子系统212。I/O子系统212通信地耦接至外部I/O设备214,其可包括(例如)数据输入设备、传感器和/或诸如显示器的输出设备。
参看图3A描述结合并使用无DAT工具的一个或多个方面的计算环境的本发明的另一优选实例。在此实例中,计算环境300包括(例如)本机中央处理单元(CPU)302、存储器304,及一个或多个输入/输出设备和/或接口306,前述各者经由(例如)一个或多个总线308和/或其他连接耦接至彼此。作为实例,计算环境300可包括:由纽约阿蒙克市的国际商业机器公司提供的PowerPC处理器或Power Systems服务器;由加利福尼亚帕洛阿尔托的惠普公司提供的具有Intel Itanium II处理器的HP Superdome;和/或基于由国际商业机器公司、惠普公司、英特尔公司、Oracle公司或其他公司提供的架构的其他机器。
本机中央处理单元302包括一个或多个本机寄存器310,诸如在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器,以及无DAT工具311。这些寄存器包括表示在任何特定时间点的环境的状态的信息。
此外,本机中央处理单元302执行存储于存储器304中的指令及代码。在一特定实例中,中央处理单元执行存储于存储器304中的仿真器代码312。此代码使得在一架构中配置的计算环境能够仿真一个或多个其他架构。举例而言,仿真器代码312允许基于除z/Architecture以外的架构的机器(诸如,PowerPC处理器、Power Systems服务器、HPSuperdome服务器等)仿真z/Architecture(和/或ESA/390)及执行基于z/Architecture开发的软件及指令。
参看图3B描述与仿真器代码312有关的进一步细节。存储于存储器304中的客体指令350包括被开发以在除本机CPU 302的架构以外的架构中执行的软件指令(例如,与机器指令相关)。举例而言,客体指令350可被设计以在z/Architecture处理器202上执行,但改为在本机CPU 302上被仿真,所述本机CPU 302可为(例如)Intel Itanium II处理器。在一个实例中,仿真器代码312包括指令取回例程352以自存储器304中获得一个或多个客体指令350,及视情况提供用于所获得的指令的本地缓冲。所述仿真器代码亦包括指令转换例程354以判定已获得的客体指令的类型且将所述客体指令转换成一个或多个对应的本机指令356。此转换包括(例如)识别待由客体指令执行的功能及选择本机指令(多个)以执行该功能。
另外,仿真器代码312包括仿真控制例程360以使得执行本机指令。仿真控制例程360可使得本机CPU 302执行仿真一个或多个先前所获得的客体指令的本机指令的例程,并且在此执行结束时,将控制返回给指令取回例程以仿真下一客体指令或一组客体指令的获得。本机指令356的执行可包括将数据自存储器304加载至寄存器;将数据自寄存器存储回存储器;或执行某一类型的算术或逻辑运算(如由转换例程判定的)。
每一例程(例如)以软件来实施,软件存储于存储器中且由本机中央处理单元302执行。在其他实例中,这些例程或操作中的一者或多者以固件、硬件、软件或它们的某一组合来实施。所仿真处理器的寄存器可使用本机CPU的寄存器310或通过使用存储器304中的位置来仿真。在多个实施例中,客体指令350、本机指令356及仿真器代码312可驻留于同一存储器中或可分散于不同存储设备中。
根据图3A及图3B的仿真系统的本发明的至少一个优选实施例,具有针对第二架构(例如,ESA/390)安装但针对第一架构(例如,z/Architecture)不安装的NDAT工具的系统的仿真器包含实施用于z/Architecture模式的DAT转换的仿真例程,且不包含实施用于ESA/390架构模式的DAT转换的仿真例程。实际上,用于第二架构模式的仿真器代码312包括用于判定在第二架构模式中运行的仿真程序是否正试图启用DAT转换的测试,且如果在第二架构模式中执行的仿真程序正试图启用DAT转换,则直接产生一个或多个错误指示。在本发明的另一个优选实施例中,当使用公用代码例程实施第一及第二架构时,当由程序调用DAT相关功能时,执行第一测试以判定当前架构模式。如果当前架构模式对应于第一架构模式,则控制转移至实施用于第一架构模式的DAT的代码。在当前模式对应于第二架构模式时,控制转移至错误例程且调用对应于DAT转换的启用或DAT转换的执行的代码。
根据本发明的至少一个优选实施例,结合DAT使用数个指令(例如,LRA),且当安装了NDAT工具时,视情况在第二架构模式中停用数个指令。根据本发明的至少一个优选实施例,仿真器代码312不包含用于仿真与在第二架构模式中结合DAT使用的停用指令对应的指令的代码。根据本发明的一个此类优选实施例,仿真器代码312确实包含用于仿真与在第一架构模式中结合DAT使用的指令对应的指令的代码。在本发明的另一个优选实施例中,当使用公共代码例程实施第一及第二架构时,当由程序调用结合DAT有关功能使用的指令时,执行第一测试以判定当前架构模式。如果当前模式对应于第一架构模式,则控制转移至实施用于第一架构模式的这些指令的代码。在当前模式对应于第二架构模式时,控制转移至错误例程且调用与结合DAT转换或DAT转换的执行使用的指令对应的代码。
上文所描述的计算环境仅为可使用的计算环境的实例。可使用其他环境,包括但不限于其他未分区环境、其他分区环境和/或其他所仿真环境;实施例不限于任何一种环境。另外,尽管本文描述特定架构的实例且描述特定架构差异及不同架构功能,但这些仅为实例。可使用其他架构,可存在其他架构差异,和/或架构中的一者或多者可能支持或可能不支持其他架构功能。
在本发明的一个优选实施例中,每一计算环境被配置为支持多个架构,诸如提供第一组架构功能的第一架构(例如,z/Architecture),所述架构功能包括但不限于动态地址转换;及提供第二组架构功能的第二架构(例如,ESA/390)。第二组架构功能为一组精简功能,其中包括在第一组架构功能中的这些功能中的一者或多者(诸如,DAT)不存在于第二组架构功能中。
动态地址转换(DAT)提供以下能力:在任意时刻中断程序的执行,将程序及其数据记录于辅助存储装置(诸如,直接存取存储设备)中,且在稍后时间将程序及数据返回到不同主存储地址以用于恢复执行。在主存储装置与辅助存储装置之间传送程序及其数据可分次执行,且将信息返回给主存储装置可响应于CPU试图在执行需要信息时存取信息而发生。可执行这些功能而不改变或检查程序及其数据,并不需要用于重新定位程序的任何显式编程惯例,且除了涉及时间延迟以外并不干扰程序的执行。
借助操作系统的适当支持,可使用动态地址转换工具来向用户提供一系统,其中存储空间看起来比在配置中可用的主存储装置大。此显而易见的主存储装置被称作虚拟存储装置,且用于指定虚拟存储装置中的位置的地址被称作虚拟地址。用户的虚拟存储装置可远远超出在配置中可用的主存储装置的大小且通常在辅助存储装置中维护用户的虚拟存储装置。虚拟存储装置被视为由被称为页的地址块构成。仅指派虚拟存储器的最近引用的页以占据物理主存储装置的块。当用户引用并不出现在主存储装置中的虚拟存储装置的页时,将页带入以替换主存储装置中不太可能被需要的页。可由操作系统来执行存储装置的页的调换而无需用户了解。
与虚拟存储装置相关联的虚拟地址序列被称为地址空间。借助操作系统的适当支持,可使用动态地址转换工具来提供数个地址空间。这些地址空间可用于在用户之间提供各种程度的隔离。此类支持能够包括用于每一用户的完全不同的地址空间,从而提供完全隔离,或可通过将每一地址空间的一部分映射至单一公共存储区域来提供共享区域。亦提供准许半特权程序存取一个以上此类地址空间的指令。动态地址转换提供(例如)虚拟地址自多个不同地址空间的转换,而不需要改变控制寄存器中的转换参数。这些地址空间被称为主要地址空间、次要地址空间,及AR指定地址空间。特权程序亦可导致存取归属(home)地址空间。
在使用来自外部介质的新信息替换主存储装置的块的处理中,应判定替换哪一块及是否应记录被替换的块且将其保留于辅助存储装置中。为了辅助进行此决策处理,使参考位及改变位与存储键相关联。
可针对由CPU产生的指令及数据地址指定动态地址转换。
可在24位、31位或64位寻址模式中执行地址计算。当在24位或31位寻址模式中执行地址计算时,分别将40或33个0附加在左侧以形成64位地址。因此,所得逻辑地址的长度为64位。在一个实施例中,由动态地址转换形成的真实或绝对地址及接着由加前缀(prefixing)形成的绝对地址的长度为64位。
动态地址转换是在存储参考期间将虚拟地址转换成对应真实或绝对地址的处理。虚拟地址可为主要虚拟地址、次要虚拟地址、存取寄存器(AR)指定虚拟地址,或归属虚拟地址。分别借助主要、次要、AR指定或归属地址空间控制组件来转换地址。在选择适当地址空间控制组件之后,针对所有四种类型的虚拟地址,转换处理是相同的。地址空间控制组件可为指定2G字节地址空间的段表名称、指定4T字节、8P字节或16E字节空间的区表名称,或指定16E字节空间的真实空间名称。(字母K、M、G、T、P及E分别表示千、210;兆、220;吉、230;太、240;千兆、250;及千兆兆、260)。段表名称或区表名称使得借助于由操作系统在真实或绝对存储空间中建立的表来执行转换。真实空间名称使得简单地将虚拟地址视为实地址,而无需使用存储空间中的表。
在转换处理中,当使用段表名称或区表名称时,识别三种类型的信息单元-区、段及页。区为横跨(例如)2G字节且在2G字节边界处开始的顺序虚拟地址块。段为横跨(例如)1M字节且在1M字节边界处开始的顺序虚拟地址块。页为横跨(例如)4K字节且在4K字节边界处开始的顺序虚拟地址块。
因此,将虚拟地址划分成四个主要字段。位0至32被称为区索引(RX),位33至43被称为段索引(SX),且位44至51被称为页索引(PX),且位52至63被称为字节索引(BX)。
如由其地址空间控制组件判定的,虚拟地址空间可为包括一个区的2G字节空间,或其可高达包括高达8G个区的16E字节空间。在一个实例中,应用于2G字节地址空间的虚拟地址的RX部分应全部为0;否则,识别到异常。
将地址空间的RX部分自身划分成三个字段。位0至10被称为区第一索引(RFX),位11至21被称为区第二索引(RSX),且位22至32被称为区第三索引(RTX)。
参看图4描述将虚拟地址转换成实地址的一个实例。在此实例中,地址空间控制组件400包括表原点402,以及名称类型(DT)控件404,所述名称类型控件为用于进行转换的开始层级的指示(亦即,关于将在分层地址转换中的哪一层级开始的指示)。在使用表原点402及DT 404的情况下,特定表的原点被定位。接着,基于该表,使用虚拟地址的位对特定表编索引以获得下一层级表的原点。举例而言,如果选择区第一表406,则使用虚拟地址的位0至10(RFX)408对区第一表编索引以获得区第二表410的原点。接着,使用虚拟地址的位11至21(RSX)412对区第二表410编索引以获得区第三表414的原点。类似地,使用虚拟地址的位22至32(RTX)416对区第三表414编索引以获得段表418的原点。接着,使用虚拟地址的位33至43(SX)420对段表418编索引以获得页表422的原点,且使用虚拟地址的位44至51(PX)424对页表422编索引以获得具有页帧实地址426的页表表项(PTE)425。接着将页帧实地址与偏移428(位52至63)组合(例如,串接)以获得实地址。
如本文所描述,在一方面中,动态地址转换工具并不包括在由选定架构提供的一组可用功能中。具体地说,在一个实例中,提供无DAT工具,其指示并不支持DAT。在计算环境中可通过安装无DAT工具且视情况设定指示已安装无DAT工具的指示符(诸如,工具位,例如,位140)来提供该无DAT工具。在一个实例中,如果所述位被设定为1,则已安装工具。尽管在一个实施例中,经由工具位启用该工具,但在其他实施例中,可通过其他机制来启用该工具。举例而言,在具有虚拟客体的环境中,可默认启用该工具。
另外,可通过提供不包括DAT工具的选定架构的一子集或一组精简的选定架构来提供无DAT工具。在此环境中,可能并不存在关于并不支持DAT工具的任何显式指示,其只是不存在于该架构中。在一个实施例中,在实施z/Architecture的模型上,无DAT工具(亦被称作NDAT、ESA/390-无DAT或390NDAT)可能为可用的。所述工具消除在ESA/390架构模式中存在动态地址转换(DAT)开启的配置的可能性。亦即,当提供NDAT工具时,ESA/390架构模式中的配置无法使得DAT开启。在一个实施例中,开启DAT的尝试造成无DAT异常程序中断。在其他实施例中,提供其他程序中断代码或指示错误的其他方式。在又一个实施例中,并不指示错误,而是DAT保持停用。
在一个实施例中,在被配置用于该工具的处理器中启用无DAT工具为一选项;但在其他实施例中,无DAT工具被自动地在计算环境的所有处理器(或在又一个实施例中,选定处理器)上安装及启用。在一特定实施例中,将按客体-2配置(第二级客体,其中所述客体由另一客体初始化)安装无DAT工具。在此配置中,如果客体-2在ESA/390中初始化,则其将不能够使用DAT;但是客体-1及主机处理器可在z/Architecture中进行初始化,且因此能够使用DAT。另外,在一个实施例中,可在ESA/390中启动客体-1或主机且不启用无DAT工具。因此,客体-1或主机可使用DAT,同时针对客体-2安装无DAT,且因此,当在ESA/390中时,客体-2无法使用DAT。
当无DAT工具安装于支持多种架构模式的计算环境上时,当环境处于第一架构模式(诸如,z/Architecture架构模式)中时,可执行DAT,但当环境处于第二架构模式(诸如,ESA/390架构模式)中时,不执行DAT。在一个实例中,在处于ESA/390架构模式中且提供NDAT时执行DAT的任何尝试导致(例如)无DAT异常程序中断。在其他实施例中,使用另一程序中断来指示错误。在又一个实施例中,并不指示错误,且执行继续进行,但并不启用DAT。
如本文所指示,当在配置中并未提供动态地址转换功能且进行开启DAT或执行DAT的尝试时,识别无DAT异常。
在以下状况下,识别到异常(作为实例):
1.通过执行加载PSW指令而进行开启DAT的尝试。在改变PSW之前并不检查待加载的值。
2.执行加载实地址指令。执行受到抑制且指令长度码被设定为2。
3.通过执行设定系统屏蔽指令而进行开启DAT的尝试。在改变当前PSW之前并不检查待设定的值。
4.通过执行存储后或系统屏蔽(STORE THEN OR SYSTEM MASK)指令而进行开启DAT的尝试。在改变当前PSW的系统屏蔽之前并不检查被与系统屏蔽“异或”的值。
5.类似于状况1,发生中断且中断-新PSW使位位置5为1。
下文进一步描述上述状况中的每一者:参看图5描述关于加载PSW指令的进一步细节。在一个实施例中,加载PSW指令500包括:操作码字段502,其包括操作码(opcode)以指示加载PSW操作;基本字段(B2)504;及位移字段(D2)506。将由B2字段指定的通用寄存器的内容添加至D2字段的内容以形成存储装置中的第二操作数的地址(被称作第二操作数地址)。
在加载PSW指令的操作中,用16字节PSW替换当前PSW,所述16字节PSW从由第二操作数地址指定的位置处的双字的内容形成。
双字的位12将为1;否则,取决于模型,可识别到指定异常。如果安装了配置z/Architecture架构模式(CZAM)工具,则在双字的位12不为1时,识别到指定异常。在一个实施例中,CZAM工具重新配置计算环境(例如,处理器、LPAR、客体),以使得在支持多个架构的环境中,不再支持架构的一个或多个方面(诸如,ESA/390)。CZAM的安装影响计算环境的某些处理,诸如开机(power-on)、重设等。举例而言,如果安装且启用了CZAM,则开机或重设序列启动z/Architecture,而非(例如)ESA/390。在Gainey等人的标题为“架构模式配置(Architectural Mode Configuration)”的共同申请、共同受让的申请(IBM案号POU920140021US1)中描述了CZAM的各方面。
除了位12被反转以外,将双字的位0至32置于当前PSW的位置0至32中。将双字的位33至63置于当前PSW的位置97至127中。当前PSW的位33至96被设定为0。
在取回操作数之前或之后且又在完成操作之后,执行串行化及检查点同步功能。
将操作数指定为在双字边界上;否则,识别指定异常。如果操作数的位12为0,则取决于模型,可识别指定异常。
除了检查位12以外,在加载待由指令加载的PSW字段之前,不检查这些字段的有效性。然而,紧接载入之后,当以下状况中的任一者针对新近载入的PSW成立时,识别指定异常且发生程序中断:
·位0、2至4、12或24至30中的任一者为1。
·位31及32两者为0,且位97至103并非全部为0。
·位31及32分别为1及0。
在这些状况下,完成操作且所得指令长度码为0。
操作因所有寻址及保护异常而受到抑制。
所得条件代码:如加载的新PSW中所指定那样设定所述码。
程序异常:
·存取(取回,操作数2)
·特权操作
·指定
编程备注:第二操作数应具有ESA/390PSW的格式,下文描述该格式的一个实例。如果操作数的位12为0,则在执行加载PSW期间或之后,将识别指定异常。
在Plambeck等人的“z/Architecture的开发及属性(Development andAttributes of z/Architecture)”(IBM J.Res.&Dev.,第46卷,第4/5号,2002年7月/9月)中描述了关于PSW的进一步细节。
参看图6描述程序状态字(PSW)的格式的一个实施例。参看图6,在此实例中,除了位31被示为EA以外,程序状态字的格式为ESA/390格式,如下文所指示。
在一个实施例中,作为一个实例,程序状态字600包括以下字段:
程序事件记录屏蔽(R)602:位1控制是否针对与程序事件记录(PER)相关联的中断启用CPU。当位为0时,无PER事件可造成中断。当位为1时,准许中断,这受控制寄存器9中的PER事件屏蔽位的影响;
DAT模式(T)604:位5控制是否发生用于存取存储装置的逻辑及指令地址的隐含动态地址转换(DAT)。当位为0时,关闭DAT,且将逻辑及指令地址视为实地址。当位为1时,开启DAT,且调用动态地址转换机制。
I/O屏蔽(IO)606:位6控制是否针对I/O中断启用CPU。当位为0时,无法发生I/O中断。当位为1时,I/O中断受控制寄存器6中的I/O中断子类别屏蔽位的影响。当I/O中断子类别屏蔽位为0时,无法发生针对该I/O中断子类别的I/O中断;当I/O中断子类别屏蔽位为1时,可能发生针对该I/O中断子类别的I/O中断;
外部屏蔽(EX)608:位7通过包括在外部类别中的条件来控制是否针对中断启用CPU。当位为0时,无法发生外部中断。当位为1时,外部中断受控制寄存器0中的对应外部子类别屏蔽位的影响。当子类别屏蔽位为0时,与子类别相关联的条件无法造成中断。当子类别屏蔽位为1时,可能发生该子类别中的中断。
PSW键(键)610:位9至11形成用于供CPU存储参考的存取键。如果参考经受键控保护,则当存储信息时或当自受保护从而免于取回的位置取回信息时,PSW键与存储键匹配。然而,对于移动至主要、移动至次要、随键移动、随源键移动及随目的地键移动中的每一者的操作数中的一者,且对于随可选指定移动的任一操作数或两个操作数,使用指定为操作数的存取键代替PSW键。
位12 612:此位指示当前架构模式。对于ESA/390PSW格式,其被设定为1。对于z/ArchitecturePSW格式,此位被定义为0。当在z/Architecture模式中时,定义加载PSW扩展(LPSWE)指令以用于加载真实z/ArchitecturePSW(其具有与本文所描述的格式不同的格式,包括具有位64至127中的指令地址)。然而,仍支持ESA/390加载PSW(LPSW),且其可用于加载ESA/390格式PSW。当执行LPSW且计算环境处于z/Architecture模式中时,处理器将ESA/390格式PSW扩展至z/Architecture格式,包括将位12反转。此情况为折叠操作系统执行以建立ESA/390格式PSW的z/Architecture PSW格式的反转。亦即,在支持ESA/390及z/Architecture两者的计算环境中,当将PSW的复本放置于存储装置中时,操作系统将完整z/Architecture PSW折叠成ESA/390PSW的大小及格式。因此,具有PSW格式相关性的其他软件可能无法察觉到z/Architecture PSW。
机器检查屏蔽(M)614:位13通过机器检查条件控制是否针对中断启用CPU。当位为0时,无法发生机器检查中断。当位为1时,准许归因于系统损害及指令处理损害产生的机器检查中断,但归因于其他机器检查子类别条件产生的中断受控制寄存器14中的子类别屏蔽位的影响。
等待状态(W)616:当位14为1时,CPU等待;亦即,CPU不处理指令,但可能发生中断。当位14为0时,以正常方式发生指令取回及执行。当位为1时,等待指示符为1。
问题状态(P)618:当位15为1时,CPU处于问题状态。当位15为0时,CPU处于监督状态。在监督状态下,所有指令为有效的。在问题状态下,仅提供有意义的信息至问题程序且无法影响系统完整性的那些指令是有效的;这些指令被称为非特权指令。在问题状态下并非有效的指令被称为特权指令。当问题状态下的CPU试图执行特权指令时,识别特权操作异常。仅在满足特定授权测试的情况下,处于问题状态的CPU才执行被称为半特权指令的另一组指令;否则,取决于所违反的特定要求,识别特权操作异常或某一其他程序异常。
地址空间控件(AS)620:位16及17结合PSW位5控制转换模式。
条件代码(CC)622:位18及19为条件代码的两个位。取决于在执行某些指令中获得的结果,条件代码被设定为0、1、2或3。大部分算术及逻辑运算以及一些其他运算设定条件代码。指令依条件分支(BRANCH ON CONDITION)可将对条件代码值的任何选择指定为用于分支的准则。
程序屏蔽624:位20至23为四个程序屏蔽位。每一位与一种程序异常相关联,如下:
当屏蔽位为1时,异常导致中断。当屏蔽位为0时,不会发生中断。HFP有效值屏蔽位的HFP指数下溢屏蔽位的设定亦确定在发生对应异常时完成操作的方式。
扩展寻址模式(EA)626:位31结合位32、基本寻址模式位控制有效地址的大小及有效地址产生。当位31为0时,由位32控制寻址模式。当位31及32两者为1时,指定64位寻址。
基本寻址模式(BA)628:位31及32控制有效地址的大小及有效地址产生。当位31及32两者为0时,指定24位寻址。当位31为0且位32为1时,指定31位寻址。当位31及32两者为1时,指定64位寻址。位31为1且位32为0的组合为无效组合,其造成识别指定异常。寻址模式并不控制PER地址的大小或用于存取DAT、ASN、可分派单元控件、链接、表项及追踪表或存取列表或链接栈的地址的大小。概述由PSW的位31及32进行的寻址模式的控制如下:
指令地址630:PSW的位33至63为指令地址。除非CPU处于等待状态(PSW的位14为1),否则地址指定待执行的下一指令的最左侧字节的位置。
如上文所描述,除加载PSW指令之外,加载实地址指令亦可造成识别到无DAT异常。
在图7A至7C中描绘加载实地址指令的实例格式。如图7A中所示,在一个实施例中,加载实地址指令700具有多个字段,包括(例如):具有指示加载实地址操作的操作码的操作码字段702;第一寄存器字段(R1)704;索引字段(X2)706;基本字段(B2)708;及位移字段(D2)710。
在另一个实施例中,参看图7B,加载实地址指令720具有多个字段,包括(例如):具有指示加载读取地址操作的操作码的操作码字段722a、722b;第一寄存器字段(R1)724;索引字段(X2)726;基本字段(B2)728;及多个位移字段(DL2、DH2)730a、730b。
在又一个实施例中,参看图7C,加载实地址指令740具有多个字段,包括(例如):具有指示加载读取地址操作的操作码的操作码字段742a、742b;第一寄存器字段(R1)744;索引字段(X2)746;基本字段(B2)748;及多个位移字段(DL2、DH2)750a、750b。
在上述格式中,R1指定包括第一操作数的通用寄存器;且将由X2及B2字段指定的通用寄存器的内容加至D2字段或DH2及DL2字段的内容以形成第二操作数地址。
对于24位或31位寻址模式中的加载实地址(LRA、LRAY),如果对应于第二操作数虚拟地址的64位真实或绝对地址的位0至32全部为0,则将真实或绝对地址的位32至63放置于通用寄存器R1的位位置32至63中,且寄存器的位0至31保持不变。如果实地址或绝对地址的位0至32并非全部为0,则识别特殊操作异常。
对于64位寻址模式中的LRA或LRAY,及对于任何寻址模式中的加载实地址(LRAG),将对应于第二操作数虚拟地址的64位真实或绝对地址放置于通用寄存器R1中。
当增强型DAT-1(EDAT-1)不适用时,或当EDAT-1适用但借助段表表项(STE)(其中STE格式控件为0)转换第二操作数时,放置于通用寄存器R1中的地址为真实的。当EDAT-1适用且借助段表表项(其中STE格式控件为1)转换第二操作数时,或当EDAT-2适用且借助区第三表表项(其中RTTE格式控件为1)转换第二操作数时,放置于通用寄存器R1中的地址为绝对的。
通过X2、B2及D2字段指定的虚拟地址借助于动态地址转换工具来转换,而不管DAT是开启还是关闭。
将用于LRA的位移视为12位无符号二进制整数。将用于LRAY及LRAG的位移视为20位有符号二进制整数。
通过使用取决于地址空间控制位的当前值的地址空间控制组件、PSW的位16及17来执行DAT,如下表中所示:
可借助分别使用ART后备缓冲器(ALB)及转换后备缓冲器(TLB)来执行ART及DAT。
根据由当前PSW的位31及32指定的当前寻址模式来执行虚拟地址计算。
将一个或多个区表表项(如果使用)的地址及段表表项及页表表项(如果使用)的地址视为64位地址,而不管当前寻址模式为何。这些表项的地址是否被视为真实或绝对地址是无法预测的。
当能够完成ART(如果可适用)及DAT两者且并未识别到特殊操作异常时,亦即,当能够获得地址空间控制组件时,设定条件代码0,每一DAT表中的表项位于表内且具有零I位(zero I bit),并且对于24位或31位寻址模式中的LRA或LRAY,所得真实或绝对地址的位0至32为0。不针对边界对准或不针对寻址或保护异常而检查转换后的地址。
当PSW位16及17为01二进制且由于通常将造成下文所示的异常中的一者的条件而使得无法获得地址空间控制组件时,(1)将指派给异常的中断码放置于通用寄存器R1的位位置48至63中,将此寄存器的位32设定为1,将位33至47设定为0,且位0至31保持不变,且(2)通过设定条件代码3而完成指令。
当正常地完成ART时,通过执行DAT而继续进行操作。
当段表表项在表外部且表项的真实或绝对地址的位0至32全部为0时,设定条件代码3,将表项地址的位32至63放置于通用寄存器R1的位位置32至63中,且寄存器的位0至31保持不变。如果地址的位0至32并非全部为0,则结果如下文所示。
对于64位寻址模式中的LRA或LRAY或任何寻址模式中的LRAG,当段表表项中的I位为1时,设定条件代码1,且将段表表项的64位真实或绝对地址放置于通用寄存器R1中。在此情况下,除了LRA或LRAY处于24位或31位寻址模式中以外,如果段表表项的地址的位0至32全部为0,则除了通用寄存器R1的位0至31保持不变以外,结果相同。如果地址的位0至32并非全部为0,则结果如下文所示。
对于64位寻址模式中的LRA或LRAY或任何寻址模式中的LRAG,当页表表项中的I位为1时,设定条件代码2,且将页表表项的64位真实或绝对地址放置于通用寄存器R1中。在此情况下,除了LRA或LRAY处于24位或31位寻址模式中以外,如果页表表项的地址的位0至32全部为0,则除了通用寄存器R1的位0至31保持不变以外,结果相同。如果地址的位0至32并非全部为0,则结果如下文所示。
根据在所尝试的转换期间使用的地址的类型,放置于通用寄存器R1中的段表表项或页表表项地址为真实或绝对的。
如果存在通常将造成下文所示的异常中的一者的条件,则(1)将指派给异常的中断码放置于通用寄存器R1的位位置48至63中,将此寄存器的位32设定为1,将位33至47设定为0,且位0至31保持不变,且(2)通过设定条件代码3而完成指令。
特殊条件
对于24位或31位寻址模式中的LRA或LRAY,当所得64位实地址的位0至32并非全部为0时,识别到特殊操作异常。
当由ART用于取回有效存取列表名称或ALE、ASTE或授权表表项的地址指定在配置中不可用的位置时,或当用于取回一个或多个区表表项(如果存在)、段表表项或页表表项的地址指定在配置中不可用的位置时,识别到寻址异常。
当所存取的区表表项或段表表项或页表表项具有零I位及格式错误时,识别到转换指定异常。
作为用于计算区表表项或段表表项而进行的加法的结果的位位置0的进位输出可能被忽略或可导致寻址异常。
操作因所有寻址异常而受到抑制。
所得条件代码:
0转换可用
1段表表项无效(I位1)
2页表表项无效(I位1)
3地址空间控制组件不可用,区表表项在表外部或无效(I位1),段表表项在表外部,或当表项地址的位0至32并非全部为0时,对于仅LRA及LRAY,且仅在24位或31位寻址模式中,段表表项或页表表项无效(I位1)
程序异常:
·寻址(有效存取列表名称、存取列表表项、ASN-第二表表项、授权表表项、区表表项、段表表项,或页表表项)
·操作(LRAY,如果并未安装长位移工具)
·特权操作
·特殊操作(仅LRA、LRAY)
·事务约束
·转换指定
编程备注:
1.在多处理配置中,应在使用加载实地址时加以注意。由于无效DAT表表项或无效页表表项可在造成清除其他CPU的TLB中的对应表项之前,将存储装置中的I位设定为1,因此,此CPU上的加载实地址及另一CPU上的无效DAT表表项或无效页表表项的同步执行可产生不一致结果。因为加载实地址可存取存储装置中的表,所以区表表项、段表表项或页表表项可能看起来是无效的(条件代码分别为3、1或2),即使对应TLB表项尚未被清除也是如此,并且TLB表项可保持处于TLB中,直至另一CPU上的无效DAT表表项或无效页表表项完成为止。不存在对可在完成加载实地址与清除TLB的表项之间执行的指令数目的保证限制。
当使用比较及交换及清除或比较及替换DAT表表项来显式地设定DAT表表项中的无效位时,针对使用加载实地址的上述注意也适用。
除加载PSW及加载实地址指令之外,设定系统屏蔽指令亦可造成识别到无DAT异常。
参看图8描述设定系统屏蔽指令的格式的本发明的一个优选实施例。参看图8,设定系统屏蔽指令800包括(例如):具有指定设定系统屏蔽操作的操作码(opcode)的操作码字段802;基本字段(B2)804;及位移字段(D2)806。
在操作中,使用由第二操作数地址指定的位置处的字节替换当前PSW的位0至7(通过将由B2指定的通用寄存器的内容与位移字段的值相加而形成)。
特殊条件
当SSM抑制控制位、控制寄存器0的位33为1且CPU处于监督状态时,识别到特殊操作异常。
在加载之前并不针对有效性而检查待加载至PSW中的值,如果PSW的位位置0及2至4的内容并非全部为0,则识别到指定异常,且发生程序中断。在此状况下,完成指令,且将指令长度码设定为2。将指定异常作为此指令的程序异常列出。此异常可被视为由此指令的执行所导致或被视为在准备执行后续指令的处理中较早发生。
操作因所有寻址及保护异常而受到抑制。
条件代码:代码保持不变。
程序异常:
·存取(取回,操作数2)
·特权操作
·特殊操作
·指定
·事务约束
另外,存储后或系统屏蔽指令可造成识别到无Dat异常。参看图9描述存储后或系统屏蔽指令的格式的本发明的一个优选实施例。参看图9,存储后或系统屏蔽指令900包括(例如):具有指定存储后或系统屏蔽操作的操作码的操作码字段902;立即字段(I2)904;基本字段(B1)906;及位移字段(D1)908。在一个实例中,将由B1指定的寄存器的内容加至位移字段以提供第一操作数的地址。立即字段为第二操作数。
在操作中,将当前PSW的位0至7存储于第一操作数位置处。接着,用当前PSW的位位置0至7的原始内容与第二操作数(I2字段)的逻辑“或”替换当前PSW的位位置0至7的内容。
特殊条件
在加载之前并不针对有效性而检查待加载至PSW中的值。然而,紧接加载之后,如果PSW的位位置0及2至4的内容并非全部为0,则识别指定异常,且发生程序中断。在此情况下,完成指令且将指令长度码设定为2。将指定异常作为程序异常列出。其可被视为在准备执行后续指令的处理中较早发生。
操作因寻址及保护异常而受到抑制。
条件代码:代码保持不变。
程序异常:
·存取(存储,操作数1)
·特权操作
·指定
·事务受约束
编程备注:存储后或系统屏蔽指令准许程序将系统屏蔽中的选定位设定为1,同时保持原始内容以供稍后恢复。举例而言,程序可针对I/O中断启用CPU,而无需使得外部屏蔽位的当前状态可用。
对于上文所描述的状况1(加载PSW)及3至5(设定系统屏蔽、存储后或系统屏蔽、中断),紧接将PSW的位5自0改变成1之后,识别到无DAT异常,且发生程序中断。在这些情况下,完成指令执行或PSW交换(在可适用时)且指令长度码为0。无DAT异常可被视为在准备执行下一顺序指令的处理中较早发生。因此,位于由程序旧PSW指定的指令地址处的指令变成空值。由程序中断码十六进制003D(或如果指示同时PER事件,则为十六进制00BD)指示无DAT异常。
中断包括将当前PSW存储为旧PSW,存储识别中断的原因的信息,及取回新PSW。处理如由新PSW指定那样继续执行。
因中断而存储的旧PSW通常含有在接下来执行时不会发生中断的指令的地址,从而准许继续执行被中断的程序。对于程序及监督程序调用中断,所存储的信息还包含识别最后执行的指令的长度的代码,从而准许程序对中断的原因作出响应。在正常响应为重新执行造成中断的指令的一些程序条件的情况下,指令地址直接识别最后执行的指令。
除了重新启动以外,仅当CPU处于操作状态时,才可能发生中断。当CPU处于停止或操作状态时,能够发生重新启动中断。
除了PER基本事件以外,借助程序中断指示仅一个程序中断条件。然而,一个条件的存在并不排除其他条件的存在。当存在一个以上程序中断条件时,在一个实例中,在中断码中识别具有最高优先级的条件。当具有相同优先级的多个条件适用时,指示哪一者是无法预测的。
当同一存储操作数的多个部分经受单独访问控制时,与这些部分相关联的存取异常的优先级是无法预测的且不一定与针对操作数内的字节的存取指定的序列有关。举例而言,当(a)移动(MVC)指令的第一操作数越过段边界,(b)用于转换操作数的最左侧部分的段表表项上的无效位为1,且(c)用于转换操作数的最右侧部分的有效页表表项中的DAT保护位为1时,则识别到段转换异常还是保护异常为无法预测的。
当指令具有两个存储操作数且对于两个操作数存在存取异常条件时,识别到哪个条件为无法预测的。同一指令(具有相同异常条件)的后续执行可导致针对与第一执行相同的操作数或针对另一操作数识别异常条件。
发生的结束的类型(变成空值、抑制,或终止)是针对在中断码中指示的异常的类型定义的类型。然而,如果指示准许终止的条件,并且也存在将导致变成空值或抑制的另一条件,则操作单元被抑制。
参看图10描述与在支持多个架构模式的计算环境中提供无DAT工具相关联的处理的本发明的一个优选实施例。在此特定实例中,两个架构模式被配置用于选定架构功能(亦即,每一架构模式被定义以包括(例如)DAT),但第一架构模式支持该功能,而在第二架构模式中,移除该功能(例如,不支持、绕过、自架构中消除等)以使得即使存在DAT开启/关闭控件,亦无法开启DAT。
参看图10,在一个实例中,计算环境被配置为同时支持多个架构:第一架构(例如,增强型架构,例如z/Architecture),其被配置为用于且支持选定架构功能(例如,DAT);及第二架构(例如,旧版架构,例如ESA/390),其被配置为用于但选择性地移除选定架构功能(步骤1000)。在移除该功能时(例如,开启无DAT或作为永久性工厂安装选项提供无DAT),即使另一控件被设定为开启DAT,亦无法开启DAT。
计算环境的处理器获得执行包括选定架构功能的操作的请求(步骤1002)。进行关于处理器是否正在第二架构模式中基于第二架构进行处理的判定(查询1004)。如果处理器正在不同于第二架构的架构模式(诸如,第一架构,例如z/Architecture)中处理,则执行选定架构功能(步骤1006)。
返回至查询1004,如果处理器处于第二架构模式中,则进行关于是否已移除选定架构功能的判定(查询1008)。在本发明的一个优选实施例中,通过检查工具指示符和/或另一指示符来判定此情形。如果并未移除所述功能(例如,并未安装无DAT),则执行选定架构功能(例如,DAT)(步骤1006)。否则,提供将不执行选定架构功能的指示(步骤1010)。举例而言,提供错误。错误可为异常,且可使用已知的异常类型或新的异常类型。
尽管在上述实例中,第二架构模式被配置为用于DAT,而将DAT自架构中移除,但是在另一个实施例中,第二架构模式并非被配置为用于DAT,而实际上,第二架构包括一组精简后的架构,其中不存在一个或多个选定架构功能(诸如,DAT)。在此情况下,也称为将DAT自架构中移除。
在本发明的另一优选实施例中,在包括可分页存储模式客体的计算环境中包括NDAT工具。在此类环境中,在一个实例中,将主机初始化且可在第一架构模式(例如,z/Architecture)或另一架构模式(诸如,第二架构模式(例如,ESA/390或其子集))中将第一架构模式及客体中的处理初始化。在一个实例中,在ESA/390架构模式中的可分页存储模式客体中,当安装了无DAT工具时,发生以下动作:
1.在本发明的一个优选实施例中,当安装了NDAT时,客体有效地表现为如同并未提供DAT一样,而不管存在于状态控件中的其他指示符(例如,任何及所有其他指示符)或以其他方式控制可管理DAT或其他特征的可用性的虚拟环境中的执行。
2.当进行启用DAT功能、使用DAT功能或执行需要存在DAT功能的指令(例如,包括但不限于LRA指令)的尝试时,存在无DAT异常程序中断。
参看图11A至11B描述在客体环境中提供无DAT工具的逻辑的本发明的一个优选实施例。参看图11A,主机在第一架构模式(例如,z/Architecture)中处理(步骤1100),发出开始解释性执行指令以启动一个或多个客体虚拟机(步骤1102)。第一客体虚拟机将在第一架构模式中处理且第一架构模式具有第一指令集架构且包括第一组架构功能(步骤1104)。然而,第二客体虚拟机将在第二架构模式中处理(步骤1106),且第二架构模式具有第二指令集架构且包括第二组架构功能。第二组架构功能为第一组中的一组精简架构功能,其中不存在一个或多个功能(例如,选定架构功能,诸如DAT)。因此,第二架构模式为功能抑制模式,其抑制诸如DAT的功能。在一个实例中,经由工具位来指示选定架构功能的不存在。然而,在一个或多个实施例中,这是可选的。
在本发明的一个特定优选实施例中,第一架构模式包括64位寻址且使用64位通用寄存器且第二架构模式包括31位寻址且使用32位通用寄存器。
第二客体虚拟机在第二架构模式中执行处理,且此处理超控与可用于控制第二客体虚拟机的执行的选定架构功能相关联的一个或多个控件(步骤1108)。举例而言,如果使用指示符来指示DAT开启,则此指示符为在针对第二客体虚拟机安装无DAT工具时被超控的控件。作为另一个实例,对应于虚拟机的架构的指定控制特定特征的可用性,且此指定也是由NDAT工具超控的控件。被超控的控件的其他实例也是可能的。
在本发明的一个优选实施例中,第二客体获得执行将使用或启用选定功能(例如,DAT)的操作的请求(步骤1120)。进行关于第二客体是否正在第二架构模式中处理的判定(查询1122)。如果第二客体并不在第二架构模式中处理,则可执行可使用或启用选定架构功能的操作(步骤1124)。然而,如果第二客体正在第二架构模式中处理,且因此,并不支持选定功能(亦即,将选定功能移除),则不执行所述操作(步骤1126)并且提供错误(步骤1128)。
尽管在上文所描述的本发明的优选实施例中,两个客体为第一级客体(亦即,每一客体由主机初始化),但在另一个实例中,一个或多个客体为第二级客体,其中客体由另一客体启动。在本发明的此类优选实施例中,如果第二级客体将在ESA/390中处理,则无DAT是默认的。亦即,在ESA/390中启动的第二级客体将不使用DAT,而不管可按不同方式指示的其他控件(例如,SIE控件)。超控关于DAT的任何其他控件。另外,在本发明的一个优选实施例中,对于第二级客体而言,这是默认的,即使第一级客体和/或主机能够在ESA/390或z/Architecture中执行DAT也是如此。在本发明的又一个优选实施例中,ESA/390虚拟机能够仅作为客体-2虚拟机来建立,且在主机及客体-1模式中的一者或两者中不可用。
虽然已特别参考针对第二架构提供无DAT工具描述所述功能,但本文所描述的方面可应用于可能在客体或主机环境的一个架构模式中停用且在另一架构模式中提供的其他处理器功能。
本文描述用于针对指令及数据提供指令集且不包括用于架构的数据地址转换的能力。在一个实施例中进一步描述用于将数据地址转换自特定架构中移除的控件。在一个实施例中,移除根据控制寄存器进行;且在另一个实施例中,移除根据一个或多个默认模式进行以自动地启用数据地址转换的移除(例如,针对客体2)。另外,在本发明的一个优选实施例中,提供中断以指示在移除DAT时启用和/或使用DAT的尝试。另外,在一个或多个实施例中,提供用于虚拟化环境的操作模式。
如本文所描述,提供工具以将选定功能(诸如,DAT转换)自特定架构中移除以使得不再必须对其进行测试。作为实例,当程序(诸如,监督程序)试图启用被移除的功能时,提供指示,诸如错误或异常(使用已知的异常代码或新代码)。另外,作为实例,当程序试图执行利用被移除的功能的指令时,提供指示,诸如错误或异常。
在本发明的一个优选实施例中,无DAT工具可与一个或多个其他工具一起使用,所述一个或多个其他工具包括(例如)CZAM工具和/或控制实用程序引导工具,它们在以下共同申请、共同转让的申请中被描述:Gainey等人的题为“架构模式配置(ArchitecturalMode Configuration)”的申请(申请号:14/217840);及Michael K.Gschwind的“能够在多个架构中初始化的控制实用程序的公共引导序列(Common Boot Sequence for ControlUtility Able to be Initialized in Multiple Architectures)”申请(申请号:14/217800)。
参考图12,在一个实例中,计算机程序产品1200包括(例如)将计算机可读程序代码装置、逻辑和/或指令1204存储于其上的一个或多个非暂时性计算机可读存储介质1202,以提供及促进一个或多个实施例。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
除上述以外,可由供应客户环境的管理的服务提供商提供、供应、部署、管理、服务一个或多个方面等。举例而言,服务提供商可建立、维护、支持计算机代码和/或执行用于一个或多个客户的一个或多个方面的计算机基础结构等。举例而言,作为回报,服务提供商可在订阅和/或收费协议下自客户收取付款。另外或备选地,服务提供商可自广告内容销售至一个或多个第三方而收取付款。
在一个方面中,可部署一应用用于执行一个或多个实施例。作为一个实例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。
作为另一方面,可部署计算基础结构,包括将计算机可读程序代码集成至计算系统中,其中程序代码结合计算系统能够执行一个或多个实施例。
作为又一方面,可提供一种用于集成计算基础结构的处理,其包括将计算机可读程序代码集成至计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。程序代码结合计算机系统能够执行一个或多个实施例。
尽管上文描述各种实施例,但其仅为实例。举例而言,其他架构的计算环境可用于结合及使用一个或多个实施例。此外,可使用不同指令、指令格式、指令字段和/或指令值。此外,其他类型的地址转换可从一个或多个方面受益。此外,可类似地移除其他架构功能。许多变化是可能的。
此外,其他类型的计算环境可有益且可被使用。作为实例,适合于存储和/或执行程序代码的数据处理系统为可使用的,其包括直接或经由系统总线间接耦接至存储器元件的至少两个处理器。存储器元件包括(例如)在程序代码的实际执行期间所使用的本地存储器、大容量存储装置及高速缓冲存储器,所述存储器元件对至少某程序代码提供暂时存储以便减少在执行期间必须自大容量存储装置取回程序代码的次数。
输入/输出或I/O设备(包括(但不限于)键盘、显示器、指点设备、DASD、磁带、CD、DVD、拇指驱动器(thumb drive)及其他存储介质等)可直接或经由中间I/O控制器耦接至所述系统。网络适配器亦可耦接至系统以使得数据处理系统能够经由中间专用或公共网络耦接至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器及以太网络卡仅为可用类型的网络适配器中的少数几种。
参考图13,描绘实施一个或多个实施例的主计算机系统5000的代表性组件。代表性主计算机5000包括与计算机存储器(亦即,中央存储装置)5002通信的一个或多个CPU5001,以及至存储介质设备5011及网络5010以用于与其他计算机或SAN及类似者通信的I/O接口。CPU 5001与具有架构化指令集及架构化功能性的架构兼容。CPU 5001可具有存取寄存器转换(ART)5012,其包括ART后备缓冲器(ALB)5013,用于选择待由用于将存储器的程序地址(虚拟地址)转换为实地址的动态地址转换(DAT)5003使用的地址空间。DAT通常包括用于缓存转换的转换后备缓冲器(TLB)5007,以使得稍后对计算机存储器5002的块的存取不需要地址转换的延迟。通常,在计算机存储器5002与处理器5001之间使用高速缓存5009。高速缓存5009可为具有对一个以上CPU可用的大型高速缓存及在大型高速缓存与每一CPU之间具有较小较快(较低层级)高速缓存的分层结构。在一些实施中,分离较低层级的高速缓存以提供用于指令取回及数据存取的独立低层级高速缓存。
在一个实施例中,指令由指令取回单元5004经由高速缓存5009自存储器5002取回。在指令解码单元5006中解码指令且将其(在一些实施例中,与其他指令一起)分派至一个或多个指令执行单元5008。通常使用数个执行单元5008,例如算术执行单元、浮点执行单元及分支指令执行单元。由执行单元执行指令,从而在需要时自指令指定的寄存器或存储器存取操作数。如果将自存储器5002存取(加载或存储)操作数,则加载/存储单元5005通常在被执行指令的控制下处置存取。可在硬件电路中或在内部微码(固件)中或由以上两者的组合执行指令。
如所指出,计算机系统包括在本地(或主)存储装置中的信息,以及寻址、保护以及参考及改变记录。寻址的一些方面包括地址的格式、地址空间的概念、各种类型的地址及将一种类型的地址转换为另一类型的地址的方式。一些主存储装置包括永久指派的存储位置。主存储装置向系统提供数据的直接可寻址的快速存取存储。在可处理数据与程序两者之前,将其(自输入设备)加载至主存储装置中。
主存储装置可包括一个或多个更小的更快速存取的缓冲存储器,其有时被称为高速缓存。高速缓存通常与CPU或I/O处理器物理关联。除了对性能的影响,对物理构造的影响及不同存储介质的使用通常不可由程序观测。
可针对指令及针对数据操作数维护独立高速缓存。在被称为高速缓存块或高速缓存线(或简称为线)的整体边界上以相连字节维护高速缓存内的信息。模型可提供EXTRACTCACHE ATTRIBUTE指令,其返回高速缓存线的字节大小。在另一实施例中,此信息可(例如)根据由Power架构平台参考规范所指定的接口从固件获得。模型亦可提供数据高速缓存块碰触(debt)、PREFETCH DATA及PREFETCH DATA RELATIVE LONG指令中的一者或多者,这影响至数据或指令高速缓存中的存储的预取回或数据自所述高速缓存的释放。
将存储装置视为位的长水平字串。对于多数操作,对存储装置的存取以从左至右的顺序进行。将位字串再分为八个位的单元。八位单元被称为字节,其为所有信息格式的基础构建块。通过唯一非负整数识别存储装置中的每一字节位置,其为该字节位置的地址或简单地为字节地址。相邻字节位置具有连续地址,在左侧自0开始且以从左至右的顺序进行。地址为无符号的二进制整数且为24个、31个或64个位。
信息在存储装置与CPU或通道子系统之间传输,一次一个字节或一组字节。除非另有指定,否则在(例如)Power ISA及z/Architecture中,存储装置中的一组字节由该组的最左字节寻址。该组中的字节的数目由待执行的操作隐含或显式地指定。当用于CPU操作中时,一组字节被称为字段。在每一组字节内,在(例如)Power ISA及z/Architecture中,位以从左至右的顺序编号。在Power ISA及z/Architecture中,最左位有时被称作“高阶”位,并且最右位被称为“低阶”位。然而,位编号并非存储地址,仅可寻址字节。为对存储装置中的字节的个体位进行操作,存取整个字节。字节中的位从左至右(在例如z/Architecture中)被编号为0至7。针对24位地址,地址中的位可被编号为8至31或40至63,或针对31位地址,其被编号为1至31或33至63;针对64位地址,所述位被编号为0至63。在一个实例中,位8至31及1至31适用于处于为32个位宽的一位置(例如,寄存器)中的地址,而位40至63及33至63适用于处于64位宽位置中的地址。在多个字节的任何其他固定长度格式内,构成该格式的位自0开始连续编号。出于错误检测的目的且优选地用于校正,一个或多个校验位可随每一字节或随一组字节传输。这些校验位由机器自动产生且不可由程序直接控制。存储容量以字节数表达。当存储装置-操作数字段的长度通过指令的操作码暗示时,字段被称为具有固定长度,其可为一个、两个、四个、八个或十六个字节。可针对一些指令暗示较大字段。当不暗示而是显式声明存储装置-操作数字段的长度时,字段被称为具有可变长度。可变长度操作数的长度可变化一个字节的增量(或对于一些指令,以两个字节的倍数或其他倍数变化)。当将信息放置于存储装置中时,替换仅包括在指定字段中的那些字节位置的内容,即使至存储装置的物理路径的宽度可大于所存储的字段的长度。
某些信息单元将在存储装置中的整体边界上。当信息单元的存储地址为以字节为单位的单元长度的倍数时,对于该信息单元,边界被称为整体的。为整体边界上的2、4、8 16及32字节的字段给出特殊名称。半字(halfword)为二字节边界上的两个连续字节的组且为指令的基础构建块。字(word)为在四字节边界上的四个连续字节的组。双字(doubleword)为在八字节边界上的八个连续字节的组。四倍字(quadword)为在16字节边界上的16个连续字节的组。八倍字(octoword)为在32字节边界上的32个连续字节的组。当存储地址指定半字、字、双字、四倍字及八倍字时,地址的二进制表示分别含有一个、两个、三个、四个或五个最右0位。指令将在二字节整体边界上。多数指令的存储操作数不具有边界对准要求。
在针对指令及数据操作数实施独立高速缓存的设备上,无论存储是否更改随后取回的指令,如果程序存储至随后取回指令的高速缓存线中,则可能经历显著延迟。
在一个实例中,可通过软件(有时被称作许可内码、固件、微码、毫码或微微码及类似者,以上中的任一者将与一个或多个优选实施例相一致)实施该实施例。参考图13,体现一个或多个方面的软件程序代码可由主机系统5000的处理器5001自长期存储介质设备5011(诸如CD-ROM驱动器或磁带驱动器或硬盘驱动器)存取。软件程序代码可体现于多种已知介质中的任一者上以与数据处理系统(诸如,磁盘、硬盘驱动器或CD-ROM)使用。代码可分布于此类介质上,或可自计算机存储器5002或一个计算机系统的存储装置经由至其他计算机系统的网络5010分发给用户,以供此类其他系统的用户使用。
软件程序代码包括操作系统,其控制各种计算机组件及一个或多个应用程序的功能及交互。在程序代码可用于由处理器5001进行处理的情况下,通常自存储介质设备5011将程序代码分页至相对较高速度的计算机存储装置5002。在存储器中、在物理介质上体现软件程序代码和/或经由网络分发软件程序代码的技术及方法是公知的且本文将不对其进行进一步论述。在被创建及存储于有形介质(包括(但不限于)电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带及其类似者)上时,程序代码常被称作“计算机程序产品”。计算机程序产品介质通常可由优选地在计算机系统中的处理电路读取以供处理电路执行。
图14说明其中可实施一个或多个优选实施例的代表性工作站或服务器硬件系统。图14的系统5020包括代表性基本计算机系统5021,诸如个人计算机、工作站或服务器,包括可选的周边设备。基本计算机系统5021包括一个或多个处理器5026及用于根据已知技术连接系统5021的处理器5026与其他组件及启用其间的通信的总线。总线将处理器5026连接至存储器5025及长期存储装置5027,其可(例如)包括硬盘驱动器(包括(例如)磁介质、CD、DVD及闪存中的任一者)或磁带驱动器。系统5021亦可包括用户接口适配器,其经由总线将微处理器5026连接至一个或多个接口设备(诸如键盘5024、鼠标5023、打印机/扫描仪5030,和/或其他接口设备),所述一个或多个接口设备可为任何用户接口设备,诸如触敏式屏幕、数字化输入板(entry pad)等。总线亦经由显示器适配器将显示设备5022(诸如LCD屏幕或监视器)连接至微处理器5026。
系统5021可借助能够与网络5029通信的网络适配器与其他计算机或计算机的网络通信5028。实例网络适配器为通信通道、令牌环、以太网或调制解调器。备选地,系统5021可使用诸如CDPD(蜂窝数字分组数据)卡的无线接口进行通信。系统5021可与局域网(LAN)或广域网(WAN)中的此类其他计算机相关联,或系统5021可为与另一计算机的客户端/服务器配置中的客户端等。所有这些配置以及适当通信硬件及软件在本领域中是公知的。
图15说明其中可实施一个或多个优选实施例的数据处理网络5040。数据处理网络5040可包括多个个体网络,诸如无线网络及有线网络,以上中的每一者可包括多个个体工作站5041、5042、5043、5044。另外,如本领域技术人员将了解的,可包括一个或多个LAN,其中LAN可包括耦接至主机处理器的多个智能工作站。
仍参考图15,网络亦可包括大型计算机或服务器,诸如,网关计算机(客户端服务器5046)或应用服务器(可存取数据存储库且亦可直接自工作站5045存取的远程服务器5048)。网关计算机5046充当至每一个体网络的进入点。在将一个网络连接协议连接至另一者时,需要网关。网关5046可借助通信链路优选地耦接至另一网络(例如,因特网5047)。网关5046亦可使用通信链路直接耦接至一个或多个工作站5041、5042、5043、5044。网关计算机可利用可自国际商用机器公司获得的IBM Power Systems服务器及IBM System服务器中的一者来实现。
同时参考图14及图15,可体现一个或多个方面的软件编程码5031可由系统5020的处理器5026自诸如CD-ROM驱动器或硬盘驱动器的长期存储介质5027存取。软件编程码可体现于多种已知介质中的任一者上以与数据处理系统(诸如,磁盘、硬盘驱动器或CD-ROM)使用。所述代码可分布于此类介质上,或可自一个计算机系统的存储器或存储装置经由至其他计算机系统的网络分发给用户5050、5051,以供此类其他系统的用户使用。
备选地,编程码可体现于存储器5025中且由处理器5026使用处理器总线存取。此类编程码包括操作系统,其控制各种计算机组件及一个或多个应用程序5032的功能及交互。在程序代码可用于由处理器5026进行处理的情况下,通常自存储介质5027将程序代码分页至高速存储器5025。在存储器中、在物理介质上体现软件编程码和/或经由网络分布软件程序代码的技术及方法是公知的且本文将不对其进行进一步论述。在被创建及存储于有形介质(包括(但不限于)电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带及其类似者)上时,程序代码常被称作“计算机程序产品”。计算机程序产品介质通常可由优选地在计算机系统中的处理电路读取以供处理电路执行。
可最容易用于处理器的高速缓存(通常比处理器的其他高速缓存更快及更小)为最低(L1或层级1)的高速缓存且主存储(主存储器)为最高层级高速缓存(如果存在3个层级,则为L3)。最低层级高速缓存常划分为保存待执行的机器指令的指令高速缓存(I-高速缓存)及保存数据操作数的数据高速缓存(D-高速缓存)。
参考图16,描绘处理器5026的例示性处理器实施例。通常,一个或多个层级的高速缓存5053用于缓冲存储器块以便改进处理器性能。高速缓存5053为保存可能将使用的存储器数据的高速缓存线的高速缓冲器。通常,高速缓存线为64个、128个或256个字节的存储器数据。独立高速缓存常用于缓存指令而非用于缓存数据。经常通过本领域中公知的各种“窥探(snoop)”算法提供高速缓存一致性(线的复本在存储器及高速缓存中的同步)。处理器系统的主存储装置5025常被称作高速缓存。在具有4个层级的高速缓存5053的处理器系统中,主存储装置5025有时被称作层级5(L5)高速缓存,这是因为其通常更快且仅保存可用于计算机系统的非易失性存储器(DASD、磁带等)的一部分。主存储装置5025“缓存”由操作系统页入及页出主存储装置5025的数据页面。
程序计数器(指令计数器)5061保持待执行的当前指令的地址追踪。z/Architecture处理器中的程序计数器为64个位且可被截断成31或24个位以支持先前寻址限制。Power架构处理器中的程序计数器为64个位且可被截断成32个位以支持先前寻址限制。程序计数器通常体现于计算机的PSW(程序状态字)中,以使得其在上下文切换期间持续。因此,正在进行中的具有程序计数器值的程序可由(例如)操作系统(自程序环境至操作系统环境的上下文切换)中断。在程序不活动时,程序的PSW维持程序计数器值,并且在操作系统正在执行中时,使用操作系统的(PSW中的)程序计数器。通常,程序计数器的增量等于当前指令的字节数。RISC(精简指令集计算)指令通常为长度固定的,而CISC(复杂指令集计算)指令通常为长度可变的。IBM z/Architecture的指令为具有2个、4个或6个字节的长度的CISC指令。IBM Power ISA的指令为具有4个字节的长度的RISC指令。通过(例如)分支指令的上下文切换操作或分支采取操作来修改程序计数器5061。在上下文切换操作中,将当前程序计数器值连同关于正执行的程序的其他状态信息(诸如条件代码)保存于程序状态字中,并且加载新程序计数器值,该值指向新程序模块的待执行的指令。执行分支采取操作以便通过将分支指令的结果加载至程序计数器5061中而准许程序作出决策或在程序内循环。
通常,指令取回单元5055用于代表处理器5026取回指令。取回单元取回“下一顺序指令”、分支采取指令的目标指令或上下文切换后的程序的第一指令。现代指令取回单元常使用预取回技术以基于可使用预取回指令的可能性来以推测方式预取回指令。举例而言,取回单元可取回16个字节的指令,其包括下一顺序指令及额外字节的其他顺序指令。
接着由处理器5026执行被取回的指令。在一个实施例中,将被取回的指令(多个)传递至取回单元的分派单元5056。分派单元将指令(多个)解码且将关于已解码指令(多个)的信息转发至适当单元5057、5058、5060。执行单元5057通常将自指令取回单元5055接收关于已解码算术指令的信息且将根据指令的操作码对操作数执行算术运算。优选地自存储器5025、架构化寄存器5059或自正被执行的指令的立即字段提供操作数至执行单元5057。在存储时,将执行结果存储于存储器5025、寄存器5059中或存储于其他机器硬件(诸如控制寄存器、PSW寄存器及类似者)中。
使用动态地址转换5062及可选地使用存取寄存器转换5063将虚拟地址转变为实地址。
处理器5026通常具有用于执行指令的功能的一个或多个单元5057、5058、5060。参考图17A,执行单元5057可借助接口连接逻辑5071与架构化通用寄存器5059、解码/分派单元5056、加载存储单元5060及其他处理器单元5065通信5071。执行单元5057可使用数个寄存器电路5067、5068、5069以保存信息,算术逻辑单元(ALU)5066将基于所述信息进行操作。ALU执行诸如加法、减法、乘法及除法的算术运算以及诸如“与”、“或”及“异或(XOR)”、循环及移位的逻辑功能。优选地,ALU支持设计相关的专用运算。其他电路可提供其他架构化工具5072,包括(例如)条件代码及恢复支持逻辑。通常,将ALU运算的结果保存在输出寄存器电路5070中,其可将结果转发至多种其他处理功能。存在处理器单元的许多配置,本描述仅意欲提供对一个实施例的代表性理解。
ADD指令例如在具有算术和逻辑功能的执行单元5057中执行,而浮点指令例如在具有专门浮点能力的浮点执行中执行。优选地,执行单元通过针对操作数执行操作码定义的功能来处理由指令标识的操作数。例如,执行单元5057可以对在由指令的寄存器字段标识的两个寄存器5059中找到的操作数执行ADD指令。
执行单元5057对两个操作数执行算术加法并将结果存储在第三操作数中,其中第三操作数可以是第三寄存器或两个源寄存器之一。执行单元优选地使用算术逻辑单元(ALU)5066,算术逻辑单元(ALU)5066能够执行各种逻辑功能(例如Shift、Rotate、“与”、“或”和“异或”)以及各种代数功能(包括加、减、乘、除中的任一种)。有些ALU 5066设计用于标量运算而有些用于浮点运算。根据体系结构,数据可以是大端(BigEndian)(其中最低有效字节在最高字节地址处)或小端(其中最低有效字节在最低字节地址处)。IBM z/Architecture是大端。IBM Power ISA支持大端和小端执行模式两者。根据体系结构,带符号字段可以是符号以及1的补码或2的补码的量值。2的补码数是有利的,因为ALU不需要设计减法功能,原因是采用2的补码的负值或正值在ALU内仅需要加法。数字通常以速记法描述,例如其中一个12位字段定义一个4,096字节块的地址,并且通常被描述为4KB(千字节)块。
参考图17B,通常将用于执行分支指令的分支指令信息发送到分支单元5058,分支单元5058通常采用分支预测算法(例如分支历史表5082)以便在其他条件运算完成之前预测分支的结果。在条件运算完成之前,将取回并推测地执行当前分支指令的目标。当条件运算完成时,根据条件运算的条件以及推测的结果,将完成或丢弃推测地执行的分支指令。典型的分支指令可以测试条件码并分支到目标地址,如果条件码满足分支指令的分支要求,则可以根据若干数值(例如包括在寄存器字段或指令的立即字段中找到的数值)计算目标地址。分支单元5058可以采用具有多个输入寄存器电路5075、5076、5077以及一个输出寄存器电路5080的ALU 5074。分支单元5058可以例如与通用寄存器5059、解码分派单元5056或其他电路5073通信5081。
一组指令的执行可以因各种原因被中断,这些原因例如包括由操作系统发起的上下文切换、导致上下文切换的程序异常或错误、导致上下文切换的I/O中断信号或多个程序的多线程活动(在多线程环境中)。优选地,上下文切换操作将保存有关当前正在执行的程序的状态信息,然后加载有关被调用的其他程序的状态信息。例如,可以将状态信息保存在硬件寄存器或存储器中。状态信息优选地包括指向要执行的下一指令的程序计数器值、条件码、存储器转换信息以及架构寄存器内容。可以由硬件电路、应用程序、操作系统程序或固件代码(微码、微微码或许可内码(LIC))单独或联合实施上下文切换活动。
处理器根据指令定义的方法存取操作数。指令可使用指令的一部分的值提供立即操作数,可提供显式指向通用寄存器或专用寄存器(例如,浮点寄存器)的一个或多个寄存器字段。指令可利用由操作码字段识别为操作数的隐含寄存器。指令可利用操作数的存储器位置。操作数的存储器位置可由寄存器、立即字段或寄存器及立即字段的组合提供,如由以下各者所例示的:z/Architecture长位移工具,其中指令定义基寄存器、索引寄存器及立即字段(位移字段),以上各者加在一起提供(例如)存储器中的操作数的地址;或Power ISA寻址模式,其中D-Form地址定义基寄存器及中间字段(位移字段),以上两者加在一起提供存储器中的操作数的地址;且其中X-Form地址定义基寄存器及索引寄存器,以上两者加在一起提供存储器中的操作数的地址。除非另有指示,否则本文中的位置通常暗示主存储器(主存储装置)中的位置。
参考图17C,处理器使用加载/存储单元5060存取存储装置。加载/存储单元5060可通过获得存储器5053中的目标操作数的地址及将所述操作数加载到寄存器5059或另一存储器5053位置中来执行加载操作,或可通过获得存储器5053中的目标操作数的地址及将自寄存器5059或另一存储器5053位置获得的数据存储于存储器5053中的目标操作数位置来执行存储操作。加载/存储单元5060可为推测式的且可以以相对于指令顺序无序的顺序来存取存储器;然而,加载/存储单元5060用于对程序维持按次序执行指令的表象。加载/存储单元5060可与通用寄存器5059、解码/分派单元5056、高速缓存/存储器接口5053或其他组件5083通信5084,并且包括各种寄存器电路5086、5087、5088及5089、ALU 5085及控制逻辑5090以计算存储地址及提供管线定序以保持操作有序。一些操作可为无序的,但加载/存储单元提供功能性以使无序操作对程序表现为已按次序执行,如本领域中公知的那样。
优选地,应用程序“看到”的地址通常被称为虚拟地址。虚拟地址有时被称为“逻辑地址”和“有效地址”。这些地址是虚拟的,因为它们通过各种动态地址转换(DAT)技术之一被重定向到物理存储器位置,这些技术包括但不限于仅使用偏移值向虚拟地址添加前缀、通过一个或多个转换表转换虚拟地址,所述转换表优选地单独或同时包括至少一个段表和页表,优选地,所述段表具有指向页表的表项。在z/Architecture中,提供了包括区第一表、区第二表、区第三表、段表以及可选的页表的转换层次结构。通常通过使用转换后备缓冲器(TLB)提高地址转换的性能,转换后备缓冲器包括将虚拟地址映射到关联的物理存储器位置的表项。当DAT使用转换表来转换虚拟地址时,将创建表项。然后,虚拟地址的后续使用能够使用快速TLB而不是缓慢顺序转换表存取的表项。可以由包括LRU(最近最少使用)在内的各种替换算法管理TLB内容。
如果处理器是多处理器系统的处理器,则每个处理器都有责任保持诸如I/O、高速缓存、TLB以及存储器之类的共享资源互锁以实现一致性。通常,将使用“窥探”技术保持高速缓存一致性。在窥探环境中,每个高速缓存行可以被标记为处于共享状态、独占状态、已更改状态、无效状态等中的任何一种状态以便于共享。
I/O单元5054(图16)提供用于附接至周边设备(包括(例如)磁带、光盘、打印机、显示器及网络)的构件给处理器。I/O单元通常由软件驱动器呈现至计算机程序。在大型计算机(诸如来自的System z)中,通道适配器及开放系统适配器为在操作系统与周边设备之间提供通信的大型计算机的I/O单元。在RISC服务器(诸如,来自的PowerSystems)中,专有适配器及开放系统适配器为在操作系统与周边设备之间提供通信的I/O单元。
此外,其他类型的计算环境可受益于一个或多个方面。作为一实例,环境可包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括(例如)指令执行、架构化功能(诸如,地址转换)及架构化寄存器)或其子集被仿真(例如,在具有处理器及存储器的本机计算机系统上)。在此类环境中,仿真器的一个或多个仿真功能能够实施一个或多个优选实施例,即使执行仿真器的计算机可能具有不同于正被仿真的能力的架构也是如此。作为一个实例,在仿真模式中,对特定指令或正被仿真的操作进行解码,并且构建适当仿真功能以实施个体指令或操作。
在一仿真环境中,主计算机包括(例如):存储器,其存储指令及数据;指令取回单元,其自存储器取回指令,并且可选地,提供所取回的指令的本地缓冲;指令解码单元,其接收所取回的指令且判定已取回指令的类型;及指令执行单元,其执行所述指令。执行可包括将数据自存储器加载至寄存器中;将数据自寄存器存储回至存储器;或执行某一类型的算术或逻辑运算(如由解码单元所判定的)。在一个实例中,在软件中实施每一单元。举例而言,由所述单元执行的操作被实施为仿真器软件内的一个或多个子例程。
更具体地说,在大型计算机中,经常由编程人员(通常为当今的“C”编程人员)借助编译器应用使用架构化机器指令。可本机地在PowerSystems或z/Architecture服务器中或替代地在执行其他架构的机器中执行存储于存储介质中的这些指令。这些指令可在现有及在未来大型计算机服务器、Power Systems服务器中及在的其他机器(例如,System x服务器)上进行仿真。可在使用由AMD及其他公司制造的硬件的多种机器上运行Linux的机器中执行这些指令。除了在Power架构或z/Architecture下的该硬件上执行以外,可使用以及使用由Hercules、UMX或FSI(Fundamental Software公司)的仿真的机器,其中总体上执行处于仿真模式中。在仿真模式中,由本机处理器执行仿真软件以仿真所仿真处理器的架构。
本机处理器通常执行包括固件或本机操作系统的仿真软件,以执行所仿真处理器的仿真。仿真软件负责取回及执行所仿真的处理架构的指令。仿真软件维护所仿真的程序计数器以保持对指令边界的追踪。仿真软件可一次取回一个或多个所仿真的机器指令且将所述一个或多个所仿真的机器指令转换为一组对应的本机机器指令以供本机处理器执行。这些转换后的指令可被缓存,使得可实现更快的转换。尽管如此,仿真软件用于维持所仿真的处理器架构的架构规则以确保被编写以用于所仿真处理器的操作系统及应用正确地进行操作。此外,仿真软件用于提供由所仿真的处理器架构识别的资源,其包括(但不限于)控制寄存器、通用寄存器、浮点寄存器、包括(例如)段表及页表的动态地址转换功能、中断机制、上下文切换机制、当日时间(TOD)时钟及至I/O子系统的架构化接口,使得被设计以在所仿真处理器上运行的操作系统或应用程序能够在具有仿真软件的本机处理器上运行。
对正被仿真的特定指令进行解码且调用子例程以执行个体指令的功能。例如在“C”子例程或驱动程序中或在为特定硬件提供驱动程序的某一其他方法(如在理解本发明的优选实施例的描述后将属于本领域技术内)中实施仿真所仿真处理器的功能的仿真软件功能。针对本领域技术人员可获得的目标机器,各种软件及硬件仿真专利及许多其他专利例示了达成对针对不同机器架构化的指令格式的仿真的多种已知方式,所述软件及硬件仿真专利包括(但不限于):Beausoleil等人的标题为“Multiprocessor for HardwareEmulation”的美国专利证书第5,551,013号;及Scalzi等人的标题为“Preprocessing ofStored Target Routines for Emulating Incompatible Instructions on a TargetProcessor”的美国专利证书第6,009,261号;及Davidian等人的标题为“Decoding GuestInstruction to Directly Access Emulation Routines that Emulate the GuestInstructions”的美国专利证书第5,574,873号;及Gorishek等人的标题为“SymmetricalMultiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System”的美国专利证书第6,308,255号;及Lethin等人的标题为“Dynamic Optimizing Object Code Translator for Architecture Emulation andDynamic Optimizing Object Code Translation Method”的美国专利证书第6,463,582号;及Eric Traut的标题为“Method for Emulating Guest Instructions on a HostComputer Through Dynamic Recompilation of Host Instructions”的美国专利证书第5,790,825号。
在图18中,提供所仿真主计算机系统5092的一个实例,其仿真主机架构的主计算机系统5000'。在所仿真的主计算机系统5092中,主机处理器(CPU)5091为所仿真的主机处理器(或虚拟主机处理器)且包括仿真处理器5093,其具有不同于主计算机5000'的处理器5091的本机指令集架构。所仿真的主计算机系统5092具有对仿真处理器5093可存取的存储器5094。在该实例实施例中,存储器5094被分区为主计算机存储器5096部分及仿真例程5097部分。根据主计算机架构,主计算机存储器5096可用于所仿真的主计算机5092的程序。仿真处理器5093执行架构与所仿真处理器5091的架构不同的架构化指令集的本机指令,所述本机指令自仿真例程存储器5097获得,并且所述仿真处理器可通过使用在顺序及存取/解码例程中获得的一个或多个指令来从主计算机存储器5096中的程序存取用于执行的主机指令,所述顺序及存取/解码例程可解码所存取的主机指令(多个)以确定用于仿真所存取主机指令的功能的本机指令执行例程。举例而言,被定义用于主计算机系统5000'架构的其他工具可由架构化工具例程仿真,所述工具包括诸如以下各者的工具:通用寄存器、控制寄存器、动态地址转换及I/O子系统支持及处理器高速缓存。仿真例程亦可利用仿真处理器5093中可获得的功能(诸如通用寄存器及虚拟地址的动态转换)以改进仿真例程的性能。亦可提供专用硬件及卸载引擎以帮助处理器5093仿真主计算机5000'的功能。
在另一实施例中,一个或多个方面涉及云计算。首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图19,其中显示了云计算节点的一个例子。云计算节点6010仅仅是适合的云计算节点的一个示例,不应对本发明优选实施例的功能和使用范围带来任何限制。总之,云计算节点6010能够被用来实现和/或执行以上所述的任何功能。
云计算节点6010具有计算机系统/服务器6012,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器6012一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述系统或设备中的任一者的分布式云计算技术环境,等等。
计算机系统/服务器6012可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器6012可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图19所示,云计算节点6010中的计算机系统/服务器6012以通用计算设备的形式表现。计算机系统/服务器6012的组件可以包括但不限于:一个或者多个处理器或者处理单元6016,系统存储器6028,连接不同系统组件(包括系统存储器6028和处理单元6016)的总线6018。
总线6018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器6012典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器6012访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器6028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)6030和/或高速缓存存储器6032。计算机系统/服务器6012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统6034可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线6018相连。如以下将进一步示出和描述的,存储器6028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明的实施例的功能。
作为实例而非限制,具有一组(至少一个)程序模块6042的程序/实用工具6040,可以存储在存储器6028中,这样的程序模块6042包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块6042通常执行在此描述的本发明的实施例中的功能和/或方法。
计算机系统/服务器6012也可以与一个或多个外部设备6014(例如键盘、指向设备、显示器6024等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器6012交互的设备通信,和/或与使得该计算机系统/服务器6012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口6022进行。并且,计算机系统/服务器6012还可以通过网络适配器6020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器6020通过总线6018与计算机系统/服务器6012的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器6012一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图20,其中显示了示例性的云计算环境6050。如图所示,云计算环境6050包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点6010,本地计算设备例如可以是个人数字助理(PDA)或移动电话6054A,台式电脑6054B、笔记本电脑6054C和/或汽车计算机系统6054N。节点6010可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点6010进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境6050提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图20显示的各类计算设备6054A-N仅仅是示意性的,云计算节点6010以及云计算环境6050可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图21,其中显示了云计算环境6050(图20)提供的一组功能抽象层。首先应当理解,图21所示的组件、层以及功能都仅仅是示意性的,本发明的优选实施例不限于此。如图21所示,提供下列层和对应功能:
硬件和软件层6060包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层6062提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个实例中,管理层6064可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层6066提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;以及事务处理。
本文中所用的术语,仅仅是为了描述特定的优选实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另行指出。还要知道,“包含”和/或“包括”在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对一个或多个优选实施例的描述其目的在于示意和描述,并非是穷尽性的,也并非是要将本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,显然可以作出许多修改和变型。对实施例的选择和描述,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种优选实施例。
Claims (17)
1.一种用于管理计算环境内的处理的方法,所述方法包括:
由在第一架构模式中处理的主机处理器启动第一客体虚拟机,所述第一客体虚拟机用于在所述第一架构模式中处理,所述第一架构模式具有第一指令集架构且提供第一组架构功能;
由所述主机处理器启动第二客体虚拟机,所述第二客体虚拟机用于在第二架构模式中处理,其中所述第二架构模式具有第二指令集架构且提供第二组架构功能,所述第二组架构功能是在所述第一组架构功能中提供的一组精简架构功能,其中在所述第一组架构功能中提供的选定架构功能不存在于所述第二组架构功能中,所述第二架构模式是功能抑制模式,所述选定架构功能包括动态地址转换;及
由所述第二客体虚拟机在所述第二架构模式中执行处理,其中所述处理超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件,所述超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件还包括使从所述第二组架构功能中选择的架构功能移除。
2.如权利要求1所述的方法,其中所述主机处理器及所述第一客体虚拟机中的至少一者使用动态地址转换将一个地址转换成另一地址,且其中对于所述第二客体虚拟机,动态地址转换不可用,尽管控制块中的指示符指示动态地址转换开启。
3.如权利要求1所述的方法,其中所述方法进一步包括:
由所述第二客体虚拟机获得执行操作的请求,所述操作是使用或启用所述选定架构功能;
基于获得所述请求,判定所述第二客体虚拟机是否正在所述第二架构模式中处理;及
基于判定所述第二客体虚拟机正在所述第二架构模式中处理,提供所述选定架构功能的启用/停用指示符。
4.如权利要求3所述的方法,其中提供所述指示符包括指示错误。
5.如权利要求4所述的方法,其中所述错误为异常。
6.如权利要求3至5中的任一项所述的方法,其中所述操作包括以下中的一者:加载程序状态字指令,其试图开启所述选定架构功能;加载实地址指令;设定系统屏蔽指令,其试图开启所述选定架构功能;存储后或系统屏蔽指令,其试图开启所述选定架构功能;或中断,其中中断程序状态字试图开启所述选定架构功能。
7.如权利要求3至5中的任一项所述的方法,其中不管用于所述选定架构功能的启用/停用指示符是否指示已启用,基于所述计算环境的指示不支持所述选定架构功能的启用/停用指示符,所述选定架构功能不存在于所述第二组架构功能中。
8.如权利要求3至5中的任一项所述的方法,其中所述第一架构模式包括64位寻址且使用64位通用寄存器,且所述第二架构模式包括31位寻址且使用32位通用寄存器。
9.一种管理计算环境内的处理的方法,所述方法包括:
由计算环境的处理器获得执行操作的请求,所述操作是使用或启用选定架构功能,所述处理器被配置为同时支持包括第一架构及第二架构的多个架构,所述第一架构被配置为用于且支持所述选定架构功能,且所述第二架构已自其移除所述选定架构功能,其中所述选定架构功能包括动态地址转换;
基于所述获得,判定所述处理器是正在第一架构模式中基于所述第一架构进行处理还是正在第二架构模式中基于所述第二架构进行处理,所述第一架构模式具有第一指令集架构且提供第一组架构功能,其中所述第二架构模式具有第二指令集架构且提供第二组架构功能,所述第二组架构功能是在所述第一组架构功能中提供的一组精简架构功能;
基于判定所述处理器正在所述第一架构模式中进行处理,执行所述操作;及
基于判定所述处理器正在所述第二架构模式中进行处理,所述处理超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件,所述超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件还包括使从所述第二组架构功能中选择的架构功能移除,其中如果所述选定架构功能已被移除,提供将不使用或不启用所述选定架构功能的指示,其中所述提供在不检查指示所述选定架构特征是否被启用/停用的控件的情况下执行,所述控件与关于移除的指示分离。
10.如权利要求9所述的方法,其中所述操作包括以下中的一者:加载程序状态字指令,其试图开启所述选定架构功能;加载实地址指令;设定系统屏蔽指令,其试图开启所述选定架构功能;存储后或系统屏蔽指令,其试图开启所述选定架构功能;或中断,其中中断程序状态字试图开启所述选定架构功能。
11.一种用于管理计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;及
处理器,其与所述存储器通信,其中所述计算机系统被配置为执行一方法,所述方法包括:
由在第一架构模式中处理的主机处理器启动第一客体虚拟机,所述第一客体虚拟机用于在所述第一架构模式中处理,所述第一架构模式具有第一指令集架构且提供第一组架构功能;
由所述主机处理器启动第二客体虚拟机,所述第二客体虚拟机用于在第二架构模式中处理,其中所述第二架构模式具有第二指令集架构且提供第二组架构功能,所述第二组架构功能是在所述第一组架构功能中提供的一组精简架构功能,其中在所述第一组架构功能中提供的选定架构功能不存在于所述第二组架构功能中,所述第二架构模式是功能抑制模式,所述选定架构功能包括动态地址转换;及
由所述第二客体虚拟机在所述第二架构模式中执行处理,其中所述处理超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件,所述超控与所述选定架构功能相关联的被定义为控制所述第二客体虚拟机的执行的一个或多个控件还包括使从所述第二组架构功能中选择的架构功能移除。
12.如权利要求11所述的计算机系统,其中所述主机处理器及所述第一客体虚拟机中的至少一者使用动态地址转换将一个地址转换成另一地址,且其中对于所述第二客体虚拟机,动态地址转换不可用,尽管控制块中的指示符指示动态地址转换开启。
13.如权利要求11所述的计算机系统,其中所述方法进一步包括:
由所述第二客体虚拟机获得执行操作的请求,所述操作是使用或启用所述选定架构功能;
基于获得所述请求,判定所述第二客体虚拟机是否正在所述第二架构模式中处理;及
基于判定所述第二客体虚拟机正在所述第二架构模式中处理,提供所述选定架构功能的启用/停用指示符。
14.如权利要求13所述的计算机系统,其中所述操作包括以下中的一者:加载程序状态字指令,其试图开启所述选定架构功能;加载实地址指令;设定系统屏蔽指令,其试图开启所述选定架构功能;存储后或系统屏蔽指令,其试图开启所述选定架构功能;或中断,其中中断程序状态字试图开启所述选定架构功能。
15.如权利要求11至14中任一项所述的计算机系统,其中不管用于所述选定架构功能的启用/停用指示符是否指示已启用,基于所述计算环境的指示不支持所述选定架构功能的启用/停用指示符,所述选定架构功能不存在于所述第二组架构功能中。
16.一种用于管理计算环境内的处理的计算机可读存储介质,其可由处理电路读取并存储由所述处理电路执行以执行如权利要求1至10中任一项所述的方法的指令。
17.一种用于管理计算环境内的处理的系统,所述系统包括用于执行如权利要求1至10中任一项所述的方法的步骤的部件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/217,824 | 2014-03-18 | ||
US14/217,824 US9916185B2 (en) | 2014-03-18 | 2014-03-18 | Managing processing associated with selected architectural facilities |
US14/554,675 US9916186B2 (en) | 2014-03-18 | 2014-11-26 | Managing processing associated with selected architectural facilities |
US14/554,675 | 2014-11-26 | ||
PCT/EP2015/054841 WO2015139988A1 (en) | 2014-03-18 | 2015-03-09 | Managing processing associated with selected architectural facilities |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106133687A CN106133687A (zh) | 2016-11-16 |
CN106133687B true CN106133687B (zh) | 2020-01-10 |
Family
ID=54142212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580014448.1A Active CN106133687B (zh) | 2014-03-18 | 2015-03-09 | 用于管理计算环境内的处理的方法和系统 |
Country Status (22)
Country | Link |
---|---|
US (4) | US9916185B2 (zh) |
EP (1) | EP3117310B1 (zh) |
JP (1) | JP6407299B2 (zh) |
KR (1) | KR101843679B1 (zh) |
CN (1) | CN106133687B (zh) |
AU (1) | AU2015233738B2 (zh) |
BR (1) | BR112016021603B1 (zh) |
CA (1) | CA2940909C (zh) |
DK (1) | DK3117310T3 (zh) |
ES (1) | ES2878147T3 (zh) |
HU (1) | HUE055096T2 (zh) |
IL (1) | IL247855B (zh) |
LT (1) | LT3117310T (zh) |
MX (1) | MX2016011920A (zh) |
PL (1) | PL3117310T3 (zh) |
PT (1) | PT3117310T (zh) |
RU (1) | RU2665243C2 (zh) |
SG (1) | SG11201606097WA (zh) |
SI (1) | SI3117310T1 (zh) |
TW (1) | TWI639084B (zh) |
WO (1) | WO2015139988A1 (zh) |
ZA (1) | ZA201605469B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652210B2 (en) * | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US9588774B2 (en) | 2014-03-18 | 2017-03-07 | International Business Machines Corporation | Common boot sequence for control utility able to be initialized in multiple architectures |
US9916185B2 (en) | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US10447728B1 (en) * | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
US10846117B1 (en) | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
CN111258867B (zh) * | 2015-12-30 | 2022-04-22 | 华为技术有限公司 | 一种公有云的拨测方法和装置 |
US10241924B2 (en) | 2016-07-18 | 2019-03-26 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation using an array of tags |
US10180909B2 (en) | 2016-07-18 | 2019-01-15 | International Business Machines Corporation | Host-based resetting of active use of guest page table indicators |
US10176110B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
US10176111B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Host page management using active guest page table indicators |
US10162764B2 (en) | 2016-07-18 | 2018-12-25 | International Business Machines Corporation | Marking page table/page status table entries to indicate memory used to back address translation structures |
US10802986B2 (en) | 2016-07-18 | 2020-10-13 | International Business Machines Corporation | Marking to indicate memory used to back address translation structures |
US10176006B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Delaying purging of structures associated with address translation |
US10282305B2 (en) | 2016-07-18 | 2019-05-07 | International Business Machines Corporation | Selective purging of entries of structures associated with address translation in a virtualized environment |
US10223281B2 (en) * | 2016-07-18 | 2019-03-05 | International Business Machines Corporation | Increasing the scope of local purges of structures associated with address translation |
US10169243B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation |
US10168902B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing purging of structures associated with address translation |
US10248573B2 (en) | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Managing memory used to back address translation structures |
US10175946B2 (en) * | 2016-09-30 | 2019-01-08 | International Business Machines Corporation | Perform sign operation decimal instruction |
US11327454B2 (en) * | 2016-09-30 | 2022-05-10 | 3M Innovative Properties Company | Synchronizing multiple processing systems |
US10684984B2 (en) | 2016-12-21 | 2020-06-16 | Intel Corporation | Computing devices and server systems with processing cores having different instruction set architectures |
US10552207B2 (en) | 2016-12-21 | 2020-02-04 | Intel Corporation | Systems and methods for multi-architecture computing including program stack translation |
US10713213B2 (en) * | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
US10228981B2 (en) * | 2017-05-02 | 2019-03-12 | Intel Corporation | High-performance input-output devices supporting scalable virtualization |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
TWI649690B (zh) * | 2017-07-24 | 2019-02-01 | 優像數位媒體科技股份有限公司 | Integration of distributed computing engine modules and control of interactive interface analysis modules system |
TWI658365B (zh) * | 2017-10-30 | 2019-05-01 | 緯創資通股份有限公司 | 連接模組 |
US11226839B2 (en) * | 2019-02-27 | 2022-01-18 | International Business Machines Corporation | Maintaining compatibility for complex functions over multiple machine generations |
US12014198B2 (en) | 2021-03-25 | 2024-06-18 | International Business Machines Corporation | Running smaller memory-address width program code in a larger memory-address width address space |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716203A (zh) * | 2004-06-30 | 2006-01-04 | 微软公司 | 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法 |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59123943A (ja) * | 1982-12-29 | 1984-07-17 | Fujitsu Ltd | Vmアシスト制御方式 |
JPS60254358A (ja) | 1984-05-31 | 1985-12-16 | Toshiba Corp | マルチア−キテクチヤマイクロプロセツサシステム |
JPH02135528A (ja) | 1988-11-16 | 1990-05-24 | Oki Electric Ind Co Ltd | マルチosにおける起動os選択方法 |
US5212777A (en) * | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
JPH0447853A (ja) | 1990-06-15 | 1992-02-18 | Nec Home Electron Ltd | 情報処理装置の通信中通話方式 |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
JPH06332803A (ja) | 1993-05-25 | 1994-12-02 | Hitachi Ltd | 仮想計算機システムにおけるtlb制御方法 |
GB2289353B (en) | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Data processing with multiple instruction sets |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US5638525A (en) | 1995-02-10 | 1997-06-10 | Intel Corporation | Processor capable of executing programs that contain RISC and CISC instructions |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6199202B1 (en) | 1998-01-06 | 2001-03-06 | Hewlett-Packard Company | Method and apparatus for the inter-operation of differing architectural and run time conventions |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US20020147969A1 (en) | 1998-10-21 | 2002-10-10 | Richard A. Lethin | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US6772325B1 (en) | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US6496971B1 (en) | 2000-02-07 | 2002-12-17 | Xilinx, Inc. | Supporting multiple FPGA configuration modes using dedicated on-chip processor |
US7058791B1 (en) * | 2000-08-09 | 2006-06-06 | Advanced Micro Devices, Inc. | Establishing a mode indication responsive to two or more indications |
US7146305B2 (en) | 2000-10-24 | 2006-12-05 | Vcis, Inc. | Analytical virtual machine |
US7406682B2 (en) | 2001-03-26 | 2008-07-29 | Emc Corporation | Translator-compiler for converting legacy management software |
US7496498B2 (en) | 2003-03-24 | 2009-02-24 | Microsoft Corporation | Front-end architecture for a multi-lingual text-to-speech system |
US7496915B2 (en) * | 2003-04-24 | 2009-02-24 | International Business Machines Corporation | Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes |
US7552426B2 (en) | 2003-10-14 | 2009-06-23 | Microsoft Corporation | Systems and methods for using synthetic instructions in a virtual machine |
US7234037B2 (en) | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
US8024730B2 (en) | 2004-03-31 | 2011-09-20 | Intel Corporation | Switching between protected mode environments utilizing virtual machine functionality |
US7562209B2 (en) | 2004-04-07 | 2009-07-14 | Marvell International, Ltd. | Supporting different instruction set architectures during run time |
US7339837B2 (en) | 2004-05-18 | 2008-03-04 | Infineon Technologies Ag | Configurable embedded processor |
US7308571B2 (en) * | 2004-10-06 | 2007-12-11 | Intel Corporation | Overriding processor configuration settings |
US7647589B1 (en) | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
US7562349B2 (en) | 2005-04-25 | 2009-07-14 | Sap Ag | Version adaptation interface for integration of different virtual machines |
US7496495B2 (en) | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
KR100663864B1 (ko) | 2005-06-16 | 2007-01-03 | 엘지전자 주식회사 | 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법 |
US7523291B2 (en) * | 2005-07-26 | 2009-04-21 | International Business Machines Corporation | System and method for testing for memory address aliasing errors |
RU2294010C1 (ru) * | 2005-09-05 | 2007-02-20 | Павел Михайлович Шестаков | Способ обработки цифровых данных |
US7409537B2 (en) | 2005-10-06 | 2008-08-05 | Microsoft Corporation | Fast booting an operating system from an off state |
JP2007207074A (ja) | 2006-02-03 | 2007-08-16 | Ricoh Co Ltd | オペレーションシステム、スレッド制御機構、及び情報処理装置 |
EP2087424A4 (en) | 2006-04-26 | 2009-12-23 | Tata Consultancy Services | SYSTEM AND METHOD FOR AUTOMATED RE-ARCHITECTURE OF FORMER SYSTEMS MODELS USING OBJECT-ORIENTED LANGUAGE |
US8001549B2 (en) * | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
US8117614B2 (en) | 2006-05-19 | 2012-02-14 | International Business Machines Corporation | Extract CPU time facility |
CN100470476C (zh) | 2006-05-25 | 2009-03-18 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
US20080093277A1 (en) | 2006-06-13 | 2008-04-24 | John Armour | Cadence detection in a sequence of video fields |
US8028290B2 (en) * | 2006-08-30 | 2011-09-27 | International Business Machines Corporation | Multiple-core processor supporting multiple instruction set architectures |
US8479264B2 (en) * | 2006-09-29 | 2013-07-02 | Micron Technology, Inc. | Architecture for virtual security module |
KR101120956B1 (ko) | 2006-12-31 | 2012-03-05 | 쌘디스크 코포레이션 | 휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐 |
US7783867B2 (en) | 2007-02-01 | 2010-08-24 | International Business Machines Corporation | Controlling instruction execution in a processing environment |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US8677098B2 (en) * | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
US7734900B2 (en) | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
US8321861B2 (en) * | 2008-02-20 | 2012-11-27 | Arm Limited | Non-native program execution across multiple execution environments |
US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
US8176279B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Managing use of storage by multiple pageable guests of a computing environment |
US8095773B2 (en) * | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
US8301865B2 (en) | 2009-06-29 | 2012-10-30 | Oracle America, Inc. | System and method to manage address translation requests |
US20110179254A1 (en) * | 2010-01-15 | 2011-07-21 | Sun Microsystems, Inc. | Limiting speculative instruction fetching in a processor |
GB2478726B (en) | 2010-03-15 | 2013-12-25 | Advanced Risc Mach Ltd | Mapping between registers used by multiple instruction sets |
US9851969B2 (en) * | 2010-06-24 | 2017-12-26 | International Business Machines Corporation | Function virtualization facility for function query of a processor |
US10521231B2 (en) * | 2010-06-24 | 2019-12-31 | International Business Machines Corporation | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor |
US8479172B2 (en) | 2010-11-23 | 2013-07-02 | International Business Machines Corporation | Virtual machine testing |
US9141389B2 (en) * | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US8924695B2 (en) | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US9063747B2 (en) * | 2011-04-28 | 2015-06-23 | Freescale Semiconductor, Inc. | Microprocessor systems and methods for a combined register file and checkpoint repair register |
TW201248499A (en) * | 2011-05-18 | 2012-12-01 | Asustek Comp Inc | Method of swapping between operating systems applied to computer system |
KR101780052B1 (ko) | 2011-08-24 | 2017-09-19 | 한국전자통신연구원 | 정보처리 시스템에서 운영체제 전환방법 |
CN102955713B (zh) | 2011-08-31 | 2015-11-25 | 北京中电华大电子设计有限责任公司 | 一种802.11n无线网卡芯片仿真固件优化的处理方法 |
US20140351563A1 (en) | 2011-12-16 | 2014-11-27 | Hyperion Core Inc. | Advanced processor architecture |
US8930950B2 (en) * | 2012-01-19 | 2015-01-06 | International Business Machines Corporation | Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors |
US9251027B2 (en) * | 2012-03-05 | 2016-02-02 | Dell Productes L.P. | Information handling system performance optimization system |
US9298469B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Management of multiple nested transactions |
WO2014036451A2 (en) * | 2012-08-30 | 2014-03-06 | University of Virginia Patent Foundation d/b/a University of Virginia Licensing & Ventures Group | Ultra low power sensing platform with multimodal radios |
CN103530089B (zh) | 2012-08-31 | 2018-06-15 | 威盛电子股份有限公司 | 微处理器及其操作方法 |
US9348757B2 (en) * | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
JP6075013B2 (ja) | 2012-10-31 | 2017-02-08 | 富士通株式会社 | ログ取得プログラム、ログ取得装置及びログ取得方法 |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9588774B2 (en) | 2014-03-18 | 2017-03-07 | International Business Machines Corporation | Common boot sequence for control utility able to be initialized in multiple architectures |
US9916185B2 (en) | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US9594660B2 (en) * | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
US9921848B2 (en) * | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
-
2014
- 2014-03-18 US US14/217,824 patent/US9916185B2/en active Active
- 2014-11-26 US US14/554,675 patent/US9916186B2/en active Active
-
2015
- 2015-03-09 JP JP2016557127A patent/JP6407299B2/ja active Active
- 2015-03-09 BR BR112016021603-2A patent/BR112016021603B1/pt active IP Right Grant
- 2015-03-09 CN CN201580014448.1A patent/CN106133687B/zh active Active
- 2015-03-09 PL PL15708240T patent/PL3117310T3/pl unknown
- 2015-03-09 WO PCT/EP2015/054841 patent/WO2015139988A1/en active Application Filing
- 2015-03-09 KR KR1020167028749A patent/KR101843679B1/ko active IP Right Grant
- 2015-03-09 SG SG11201606097WA patent/SG11201606097WA/en unknown
- 2015-03-09 RU RU2016126975A patent/RU2665243C2/ru active
- 2015-03-09 ES ES15708240T patent/ES2878147T3/es active Active
- 2015-03-09 CA CA2940909A patent/CA2940909C/en active Active
- 2015-03-09 SI SI201531635T patent/SI3117310T1/sl unknown
- 2015-03-09 LT LTEPPCT/EP2015/054841T patent/LT3117310T/lt unknown
- 2015-03-09 MX MX2016011920A patent/MX2016011920A/es unknown
- 2015-03-09 AU AU2015233738A patent/AU2015233738B2/en active Active
- 2015-03-09 PT PT157082405T patent/PT3117310T/pt unknown
- 2015-03-09 EP EP15708240.5A patent/EP3117310B1/en active Active
- 2015-03-09 HU HUE15708240A patent/HUE055096T2/hu unknown
- 2015-03-09 DK DK15708240.5T patent/DK3117310T3/da active
- 2015-03-17 TW TW104108514A patent/TWI639084B/zh active
-
2016
- 2016-08-05 ZA ZA2016/05469A patent/ZA201605469B/en unknown
- 2016-09-15 IL IL24785516A patent/IL247855B/en active IP Right Grant
-
2017
- 2017-11-27 US US15/822,796 patent/US10747583B2/en active Active
- 2017-11-27 US US15/822,664 patent/US10747582B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716203A (zh) * | 2004-06-30 | 2006-01-04 | 微软公司 | 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106133687B (zh) | 用于管理计算环境内的处理的方法和系统 | |
US11023256B2 (en) | Architectural mode configuration | |
JP6437008B2 (ja) | 複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |