CN106133682B - 用于能在多种架构中初始化的控制实用工具的公用引导序列 - Google Patents
用于能在多种架构中初始化的控制实用工具的公用引导序列 Download PDFInfo
- Publication number
- CN106133682B CN106133682B CN201580014476.3A CN201580014476A CN106133682B CN 106133682 B CN106133682 B CN 106133682B CN 201580014476 A CN201580014476 A CN 201580014476A CN 106133682 B CN106133682 B CN 106133682B
- Authority
- CN
- China
- Prior art keywords
- framework
- architecture
- processor
- instruction
- mode
- 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 claims abstract description 105
- 238000003860 storage Methods 0.000 claims description 128
- 238000000034 method Methods 0.000 claims description 41
- 230000006870 function Effects 0.000 description 68
- 238000004891 communication Methods 0.000 description 29
- 230000008859 change Effects 0.000 description 17
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000005192 partition Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 15
- 238000009434 installation Methods 0.000 description 14
- 238000013519 translation Methods 0.000 description 14
- 230000014616 translation Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 238000007689 inspection Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000977 initiatory effect Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008093 supporting effect Effects 0.000 description 4
- 238000000151 deposition Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 241001269238 Data Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 1
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012141 concentrate Substances 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
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- QWXYZCJEXYQNEI-OSZHWHEXSA-N intermediate I Chemical compound COC(=O)[C@@]1(C=O)[C@H]2CC=[N+](C\C2=C\C)CCc2c1[nH]c1ccccc21 QWXYZCJEXYQNEI-OSZHWHEXSA-N 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种公用引导序列工具,其使得控制实用工具(例如,作为实例的操作系统、控制程序或其他独立工具)能够在不改变所述引导序列的情况下被以多个配置引导。操作系统或其他控制实用工具使用所述公用引导序列以便能够在第一架构配置中抑或在第二架构配置中引导,所述第一架构配置在一个架构(例如ESA/390)中初始化且接着切换至(例如)用于处理的另一架构(例如z/Architecture),所述第二架构配置在所述另一架构(例如z/Architecture)中进行初始化及处理。
Description
技术领域
一个或多个方面总体上涉及计算环境的配置,并且具体地说,涉及支持多个配置。
背景技术
计算环境提供一系列视环境的架构配置而定的能力及功能。已由提供的两种架构包括ESA/390及ESA/390为z/Architecture的旧版架构。然而,当引入z/Architecture时,ESA/390继续受到支持。为在一个环境中支持两种架构,遵循某些程序。举例而言,在上电时,使ESA/390引导,并且接着在需要时可进行至z/Architecture的切换。这允许传统软件继续执行而无需改变。提供其他此类程序以便在一个环境中支持两种架构配置。
甚至在软件已过渡到较新架构时还维护较早架构增加了复杂性。
因此,本领域中需要解决上述问题。
发明内容
从第一方面看,本发明提供一种用于在计算环境中初始化控制实用工具的方法,所述方法包括:由处理器执行引导序列以便以基于选定架构的选定架构模式引导所述控制实用工具,所述控制实用工具被编写以用于所述选定架构且被配置为以第一架构配置或第二架构配置中的至少一者被初始化,所述第一架构配置在一个架构中初始化且切换至用于处理的所述选定架构,所述第二架构配置在所述选定架构中进行初始化及处理,并且其中执行所述引导序列包括:执行一个或多个指令而不考虑所述处理器是将基于所述第一架构配置还是基于所述第二架构配置执行初始化,所述一个或多个指令对所述一个架构及所述选定架构是公用的,原因在于所述一个或多个指令被定义在所述一个架构及所述选定架构中,并且所述执行包括执行切换操作以请求对所述处理器的架构模式的切换而不考虑所述处理器是将在所述一个架构还是在所述选定架构中执行初始化,其中所述切换操作基于所述处理器将执行初始化的架构是所述一个架构还是所述选定架构而以不同方式执行,并且基于执行所述切换操作,以所述选定架构模式引导所述控制实用工具。
从另一方面看,本发明提供一种用于在计算环境中初始化控制实用工具的计算机系统,所述计算机系统包括:存储器;及处理器,其与所述存储器通信,其中所述计算机系统被配置为执行一种方法,所述方法包括:由处理器执行引导序列以便以基于选定架构的选定架构模式引导所述控制实用工具,所述控制实用工具被编写以用于所述选定架构且被配置为以第一架构配置或第二架构配置中的至少一者被初始化,所述第一架构配置在一个架构中初始化且切换至用于处理的所述选定架构,所述第二架构配置在所述选定架构中进行初始化及处理,并且其中执行所述引导序列包括:执行一个或多个指令而不考虑所述处理器是将基于所述第一架构配置还是基于所述第二架构配置执行初始化,所述一个或多个指令对所述一个架构及所述选定架构是公用的,原因在于所述一个或多个指令被定义在所述一个架构及所述选定架构中,并且所述执行包括执行切换操作以请求对所述处理器的架构模式的切换而不考虑所述处理器是将在所述一个架构还是在所述选定架构中执行初始化,其中所述切换操作基于所述处理器将执行初始化的架构是所述一个架构还是所述选定架构而以不同方式执行,并且基于执行所述切换操作,以所述选定架构模式引导所述控制实用工具。
从另一方面看,本发明提供一种用于在计算环境中初始化控制实用工具的计算机程序产品,所述计算机程序产品包括:计算机可读存储介质,其可由处理电路读取并存储由所述处理电路执行以执行一种用于执行本发明的步骤的方法的指令。
从另一方面看,本发明提供一种计算机程序,其存储在计算机可读介质上并可载入数字计算机的内部存储器,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的步骤。
经由提供一种用于在计算环境内初始化控制实用工具的计算机程序产品来克服先前技术的缺点及提供优点。所述计算机程序产品包括(例如)计算机可读存储介质,其可由处理电路读取且存储供所述处理电路执行以用于执行方法的指令。所述方法包括(例如):由处理器执行引导序列以便以基于选定架构的选定架构模式引导所述控制实用工具,所述控制实用工具被编写以用于所述选定架构且被配置为以第一架构配置或第二架构配置中的至少一者被初始化,所述第一架构配置在一个架构中初始化且切换至用于处理的所述选定架构,所述第二架构配置在所述选定架构中进行初始化及处理,并且其中执行所述引导序列包括:执行一个或多个指令而不考虑所述处理器是将基于所述第一架构配置还是基于所述第二架构配置执行初始化,所述一个或多个指令对所述一个架构及所述选定架构是公用的,原因在于所述一个或多个指令被定义在所述一个架构及所述选定架构中,并且所述执行包括执行切换操作以请求对所述处理器的架构模式的切换而不考虑所述处理器是将在所述一个架构还是在所述选定架构中执行初始化,其中所述切换操作基于所述处理器将执行初始化的架构是所述一个架构还是所述选定架构而以不同方式执行,并且基于执行所述切换操作,以所述选定架构模式引导所述控制实用工具。
本文亦描述及要求保护涉及一个或多个优选实施例的方法及系统。此外,本文亦描述且可要求保护涉及一个或多个优选实施例的服务。
实现了额外特征及优点。本文中详细描述了其他优选实施例及方面且所述实施例及方面被视为所要求保护的发明的一部分。
附图说明
现在将仅通过实例的方式参考如附图所示的优选实施例描述本发明,这些附图是:
图1描绘根据本发明的一个优选实施例的结合及使用公用引导序列工具的一个或多个方面的计算环境的一个实例;
图2描绘根据本发明的一个优选实施例的结合及使用公用引导序列工具的一个或多个方面的计算环境的另一实例;
图3A描绘根据本发明的一个优选实施例的结合及使用公用引导序列工具的一个或多个方面的计算环境的再一实例;
图3B描绘根据本发明的一个优选实施例的图3A的存储器的其他细节;
图4A描绘根据本发明的一个优选实施例的在一个架构模式中使计算环境通电的逻辑的一个实施例;
图4B描绘根据本发明的一个优选实施例的与图4A的通电处理相关联的进一步处理的一个实施例;
图5描绘根据本发明的一个优选实施例的程序状态字的格式的一个实施例;
图6A描绘根据本发明的一个优选实施例的在与图4A中通电的一个架构模式不同的架构模式中使计算环境通电的逻辑的一个实施例;
图6B描绘根据本发明的一个优选实施例的与图6A的通电处理相关联的进一步处理的一个实施例;
图7描绘根据本发明的一个优选实施例的加载程序状态字指令的一个实例格式;
图8A描绘根据本发明的一个优选实施例的信号处理器指令的一个实例格式;
图8B描绘根据本发明的一个优选实施例的与图8A的信号处理器指令相关联的处理的一个实施例;
图9描绘根据本发明的一个优选实施例的执行其中在ESA/390中初始化控制实用工具的引导的逻辑的一个实施例;
图10描绘执行其中在z/Architecture中初始化控制实用工具的引导的逻辑的一个实施例;
图11描绘根据本发明的一个优选实施例的用于公用引导序列的逻辑的一个实施例;
图12描绘根据本发明的一个优选实施例的用于公用引导序列的逻辑的另一实施例;
图13描绘根据本发明的一个优选实施例的提取程序状态字指令的一个实例格式;
图14描绘根据本发明的一个优选实施例的用于公用引导序列的逻辑的又一实施例;
图15描绘根据本发明的一个优选实施例的执行重设以使控制实用工具重新引导的逻辑的一个实施例;
图16描绘根据本发明的一个优选实施例的执行重设以使控制实用工具重新引导的逻辑的另一实施例;
图17描绘根据本发明的一个优选实施例的执行重设以使控制实用工具重新引导的逻辑的再一实施例;
图18描绘根据本发明的一个优选实施例的当不兼容的控制实用工具涉及引导序列时检测该不兼容的控制实用工具的逻辑的一个实施例;
图19描绘根据本发明的一个优选实施例的与执行控制实用工具的引导相关联的处理的一个实施例;
图20描绘根据现有技术并且其中可以实施本发明的一个优选实施例的计算机程序产品的一个实施例;
图21描绘根据现有技术并且其中可以实施本发明的一个优选实施例的主计算机系统的一个实施例;
图22描绘根据现有技术并且其中可以实施本发明的一个优选实施例的计算机系统的又一实例;
图23描绘根据现有技术并且其中可以实施本发明的一个优选实施例的包括计算机网络的计算机系统的另一实例;
图24描绘根据现有技术并且其中可以实施本发明的一个优选实施例的计算机系统的各种元件的一个实施例;
图25A描绘根据现有技术并且其中可以实施本发明的一个优选实施例的图24的计算机系统的执行单元的一个实施例;
图25B描绘根据现有技术并且其中可以实施本发明的一个优选实施例的图24的计算机系统的分支单元的一个实施例;
图25C描绘根据现有技术并且其中可以实施本发明的一个优选实施例的图24的计算机系统的加载/存储单元的一个实施例;
图26描绘仿真主计算机系统的一个实施例;
图27描绘根据现有技术并且其中可以实施本发明的一个优选实施例的云计算节点的一个实施例;
图28描绘根据现有技术并且其中可以实施本发明的一个优选实施例的云计算环境的一个实施例;及
图29描绘根据现有技术并且其中可以实施本发明的一个优选实施例的抽象模型层的一个实例。
具体实施方式
根据一个或多个方面,提供一种公用引导序列工具,其使得控制实用工具(例如,作为实例的操作系统、控制程序或无需操作系统来引导的其他独立工具(诸如维护及管理(例如,转储、磁盘格式)实用工具)能够在不改变引导序列的情况下被以多个配置引导。举例而言,操作系统或其他控制实用工具使用公用引导序列以能够在第一架构配置中或在第二架构配置中引导,所述第一架构配置在一个架构(例如ESA/390)中初始化且接着切换至另一架构(诸如z/Architecture)以用于处理,所述第二架构配置在(例如)所述另一架构(例如z/Architecture)中进行初始化及处理。
当逐步引入z/Architecture时,控制实用工具继续在ESA/390(z/Architecture的旧版架构)中引导,并且接着在引导序列期间,处理将切换至z/Architecture。这允许传统软件继续执行而无需改变。然而,可存在其中需要直接引导至z/Architecture中的情况。因此,提供一种公用引导序列,其使得控制实用工具能够以透明方式被以任一配置引导。举例而言,被编写以用于z/Architecture的操作系统使用所述引导序列以便在ESA/390中引导及接着切换至z/Architecture,或直接引导至z/Architecture。尽管参考ESA/390及z/Architecture描述本文中的实施例,但一个或多个方面亦适用于其他架构。
参考图1描述结合及使用公用引导序列工具的一个或多个方面的计算环境的一个实例。参考图1,在一个实例中,计算环境100基于由IBM提供的z/Architecture。z/Architecture在标题为“z/Architecture-Principles of Operation”的公开号为SA22-7932-09号的IBM出版物(2012年9月,第10版)中描述。尽管计算环境是基于z/Architecture的,但在一个优选实施例中,其亦支持一个或多个其他架构配置,诸如ESA/390。
作为一个实例,计算环境100包括中央处理器复合体(CPC)102,其经由一个或多个控制单元108耦接至一个或多个输入/输出(I/O)设备106。中央处理器复合体102包括(例如)耦接至一个或多个中央处理器(亦称为中央处理单元(CPU))110及输入/输出子系统111的处理器存储器104(亦称为主存储器、主存储装置、中央存储装置),在下文描述中央处理器及输入/输出子系统中的每一者。
处理器存储器104包括(例如)一个或多个分区112(例如,逻辑分区)及处理器固件113,所述处理器固件包括逻辑分区系统管理程序114及其他处理器固件115。逻辑分区系统管理程序114的一个实例为Processor Resource/System ManagerTM(PR/SM)。IBM、Z/OS、Z/VM、Z/Architecture及Processor Resource/System Manager为国际商业机器公司在全世界各地的注册商标。本文中使用的其他名称可为国际商业机器公司或其他公司的注册商标、商标或产品名称。
逻辑分区充当独立系统且其中具有一个或多个应用120及可选地具有驻留操作系统122,对于每一逻辑分区,此情况可能不同。在一个优选实施例中,所述操作系统为纽约阿蒙克市的国际商业机器公司所提供的z/OS操作系统、z/VM操作系统、z/Linux操作系统或TPF操作系统。作为实例,操作系统可包括公用引导序列工具124,或所述公用引导序列工具可独立于操作系统提供而用于使所述操作系统引导(或初始化)。
逻辑分区112由逻辑分区系统管理程序114管理,所述逻辑分区系统管理程序是由运行于处理器110上的固件实施的。如本文中所使用,固件包括(例如)处理器的微码和/或毫码(millicode)。其包括(例如)用于实施较高层级机器码的硬件层级指令和/或数据结构。在一个优选实施例中,其包括(例如)专属码,所述专属码通常作为包括受信任软件的微码或特定于底层硬件的微码被传送,并且控制对系统硬件的操作系统访问。
中央处理器110为分配至逻辑分区的物理处理器资源。具体地说,每一逻辑分区112具有一个或多个逻辑处理器,所述逻辑处理器中的每一者表示分配至该分区的所有或一部分物理处理器110。特定分区112的逻辑处理器可专用于该分区,以便为该分区保留基本处理器资源110或与另一分区共享所述基本处理器资源,以使得基本处理器资源对于另一分区为潜在可用的。在一个实例中,一个或多个CPU可包括本文中所描述的配置架构模式工具130的多个方面。
输入/输出子系统111引导输入/输出设备106与主存储装置104之间的信息流。输入/输出子系统111耦接至中央处理复合体,以便其可为中央处理复合体的一部分或与所述中央处理复合体分离。I/O子系统减轻中央处理器的与输入/输出设备直接通信的任务且准许数据处理与输入/输出处理同时进行。为提供通信,I/O子系统使用I/O通信适配器。存在各种类型的通信适配器,包括(例如)通道、I/O适配器、PCI卡、以太网卡、小型计算机存储接口(SCSI)卡等。在本文所描述的特定实例中,I/O通信适配器为通道,并且因此I/O子系统在本文中被称作通道子系统。然而,此仅为一个实例。可使用其他类型的I/O子系统。
I/O子系统在管理往返于输入/输出设备106的信息流时使用一个或多个输入/输出路径作为通信链路。在此特定实例中,因为通信适配器为通道,故所述路径被称为通道路径。
参考图2描述结合及使用公用引导序列工具的一个或多个方面的计算环境的另一实例。在此实例中,计算环境200包括未分区的环境,所述环境可被配置以用于多个架构模式(包括z/Architecture及ESA/390)。所述计算环境包括(例如)处理器(中央处理单元-CPU)202,所述处理器包括(例如)配置架构模式工具204及一个或多个高速缓存206。处理器202以通信方式耦接至具有一个或多个高速缓存210的存储器部分208且耦接至输入/输出(I/O)子系统212。I/O子系统212以通信方式耦接至外部I/O设备214,所述外部I/O设备可包括(例如)数据输入设备、传感器和/或诸如显示器的输出设备。
在一个实例中,存储器部分208亦包括诸如操作系统的至少一个控制实用工具220,其在引导时使用公用引导序列222。
参考图3A描述结合及使用公用引导序列工具的一个或多个方面的计算环境的另一实例。在此实例中,计算环境300包括(例如)本机中央处理单元(CPU)302、存储器304及一个或多个输入/输出设备和/或接口306,以上各者经由(例如)一个或多个总线308和/或其他连接彼此耦接。作为实例,计算环境300可包括:处理器或Power SystemsTM服务器;由加州帕洛阿尔托的惠普公司(Hewlett Packard Co.,Palo Alto,California)提供的具有英特尔安腾II(Intel Itanium II)处理器的HP Superdome;和/或基于由国际商用机器公司、惠普公司、英特尔公司、甲骨文公司(Oracle)或其他公司提供的架构的其他机器。PowerPC和Power Systems为国际商业机器公司在全世界各地的注册商标。Intel和Itanium是英特尔公司或其子公司在美国或其他国家的商标或注册商标。
本机中央处理单元302包括一个或多个本机寄存器310,诸如在环境内进行处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器,并且可选地包括配置架构模式工具311。这些寄存器包括表示在任何特定时间点处的环境状态的信息。
此外,本机中央处理单元302执行存储于存储器304中的指令及代码。在一个特定实例中,中央处理单元执行存储于存储器304中的仿真器代码312。此代码使在一个架构中配置的计算环境能够仿真一个或多个其他架构。举例而言,仿真器代码312允许基于除z/Architecture以外的架构的机器(诸如PowerPC处理器、Power Systems服务器、HPSuperdome服务器或其他)仿真z/Architecture(和/或ESA/390)及执行基于z/Architecture开发的软件及指令。
参考图3B描述关于仿真器代码312的更多细节。存储于存储器304中的客体(guest)指令350包括软件指令(例如,与机器指令相关),所述软件指令经开发以在与本机CPU 302的架构不同的架构中执行。举例而言,客体指令350可经设计以在z/Architecture处理器202上执行,而相反在本机CPU 302上被仿真,所述本机CPU可为例如英特尔安腾II处理器。在一个实例中,客体指令包括公用引导序列351。在一个实例中,仿真器代码312包括指令取回例程352以自存储器304获得一个或多个客体指令350且可选地为所获得的指令提供本地缓冲。所述仿真器代码亦包括指令转换例程354以判定已获得的客体指令的类型且将所述客体指令转换为一个或多个对应的本机指令356。此转换包括(例如)识别待由客体指令执行的功能及选择本机指令(多个)来执行该功能。
此外,仿真器代码312包括仿真控制例程360以使本机指令得以执行。仿真控制例程360可使本机CPU 302执行仿真一个或多个先前所获得的客体指令的本机指令的例程,并且在此类执行结束时返回对指令取回例程的控制,以仿真下一客体指令或一组客体指令的获得。本机指令356的执行可包括:将数据自存储器304加载至寄存器中;将数据自寄存器存储回至存储器;或执行某一类型的算术或逻辑运算,如由转换例程所判定的。
每一例程例如实施于软件中,所述软件存储于存储器中且由本机中央处理单元302执行。在其他实例中,一个或多个例程或操作实施于固件、硬件、软件或其某一组合中。所仿真处理器的寄存器可使用本机CPU的寄存器310或通过使用存储器304中的位置来仿真。在优选实施例中,客体指令350、本机指令356及仿真器代码312可驻留于同一存储器中或可分布在不同存储器设备之间。
上文所描述的计算环境仅为可使用的计算环境的实例。可使用其他环境,包括(但不限于)其他未分区环境、其他分区环境和/或其他仿真环境;各实施例不限于任何一个环境。
如本文所描述,提供公用引导序列以使控制实用工具在多个架构配置中的一者中引导,所述多个架构配置包括(例如)第一配置或第二配置,在所述第一配置中,在第一架构模式(例如,传统模式,诸如ESA/390)中初始化控制实用工具且接着处理切换至第二架构模式(例如,增强模式,诸如z/Architecture),在所述第二配置中,控制实用工具在(例如)第二架构模式中进行初始化及处理。在一个实施例中,第一架构模式包括第一指令“设定架构(Set Architecture)”且具有第一组受支持特征,诸如31位寻址、使用32位通用寄存器及各种工具。此外,第二架构模式包括第二指令“设定架构”且具有第二组受支持特征,诸如64位寻址、使用64位通用寄存器及各种工具(诸如,动态地址转换和/或其他工具)。
在一个实施例中,通过安装配置架构模式工具而促进第二配置,其中引导实用工具以所述第二配置在选定架构模式(诸如z/Architecture)中初始化且直接进行处理。如本文所描述,此工具提供用于计算环境(例如,处理器、LPAR、虚拟客体)的通电或引导序列,所述通电或引导序列使计算环境在选定架构模式中引导。因此,在提供关于公用引导序列的更多细节之前,描述配置架构模式工具的各方面。然而,应注意,公用引导序列能力亦可用于不包括配置架构模式工具的环境中。
在一个实施例中,将配置架构模式(CAM)工具安装在计算环境的一个或多个处理器(例如中央处理单元)中以控制该环境的重新配置。举例而言,在将CAM安装于支持多个架构模式的计算环境中时,计算环境经重新配置以使得限制至少一个架构模式的一个或多个方面的使用。
配置架构模式工具的一个特定实例为配置z/Architecture架构模式(CZAM)工具。CZAM的安装由(例如)工具安装指示符(例如,设定为(例如)1的位138)指示。在一个特定实例中,当位138被设定为1时,安装CZAN工具,并且在安装时,正常重设及清除重设将配置置于z/Architecture架构模式中。因此,在一个实例中,指示z/Architecture架构模式为活动的工具位(例如,位2)亦被设定为1。
基于CZAM的安装,计算环境(例如,单处理器、逻辑分区、虚拟客体等)经重新配置以使得选定架构(例如ESA/390)的一个或多个方面不再受到支持。下文描述不再受到支持的各种方面和/或受CZAM的安装影响的某些处理。尽管在本文所描述的优选实施例中,多个架构模式包括传统架构(例如ESA/390)及增强型架构(例如z/Architecture)且传统架构ESA/390的各方面不再受到支持,但其他优选实施例可包括其他架构。ESA/390及z/Architecture仅为实例。
受CZAM的安装影响的一个处理为通电处理。为描述此处理如何受到影响,首先参考图4A至图4B描述用于支持多个架构配置且不包括CZAM工具的环境的通电处理,并且接着参考图6A至图6B描述用于针对多个架构配置且确实包括CZAM工具的环境的通电处理。系统的通电包括(例如)起动系统及发起引导序列或发起系统中的操作的其他手段。所述通电可对应于物理通电、硬件重设和/或虚拟通电(例如,在仿真系统、虚拟机或客体环境中)。
首先参考图4A,基于正在被通电的计算环境的处理器及正在被激活的操作者键(例如,加载正常(load-normal)或加载清除(load clear)键),处理器进入加载状态且将计算环境设定为特定架构模式(例如ESA/390模式),步骤400。举例而言,执行初始程序加载(IPL),诸如通道控制字(CCW)初始程序加载(IPL),步骤402。初始程序加载提供用于使得自指定设备读取程序及用于发起该程序的执行的人工手段。通过将加载单元地址控件设定为四数字编号来指定输入设备及通过随后激活用于特定CPU的加载清除或加载正常键来人工发起CCW型IPL。
激活加载清除键引起对配置执行清除重设,并且激活加载正常键引起对此CPU(其上激活了键的CPU)执行初始CPU重设,引起CPU重设传播至所述配置中的所有其他CPU,并且引起对所述配置的剩余部分执行子系统重设。激活加载清除键或加载正常键设定架构模式(例如,ESA/390)。
在操作的加载部分中,在已执行重设之后,此CPU接着进入加载状态。此CPU不必在重设操作的执行期间进入停止状态。加载指示符在CPU处于加载状态的同时为开启的。
随后,从由加载单元地址控件指定的I/O设备发起通道程序读取操作。执行通道程序的效果与以下一样:始于绝对存储位置0处的格式0CCW用修饰符位0、数据地址0、字节计数24、链式命令及SL1标志1及所有其他标志0指定读取命令。
当成功完成IPL输入/输出操作时,将用于IPL设备的子系统标识字存储于所选的绝对存储位置(例如,位置184至187),将0存储于其他所选绝对存储位置(例如,位置188至191),并且自所选绝对存储位置(例如,位置0至7)加载新程序状态字(PSW),步骤404。程序状态字控制计算环境的操作。
如果PSW加载成功且未检测到机器故障,则此CPU离开加载状态且关闭加载指示符。如果速率控件被设定至处理位置,则CPU进入工作状态,并且计算环境的操作在新程序状态字(PSW)的控制下继续,步骤406。引导后的计算环境接着运行,步骤408,如参考图4B进一步描述的。
参考图4B,在ESA/390模式中启动引导后的计算环境,步骤420,并且因此在ESA/390模式中执行操作,步骤422。在某一时刻,可作出将架构模式自ESA/390变为z/Architecture的请求。具体地说,程序将命令码(例如,指定“设定架构”的代码)发送至处理器,所述处理器用所述命令码发出信号处理器(SIGP)指令,以自ESA/390模式切换至z/Architecture模式,步骤424。举例而言,使用CPU信令及响应工具,其包括信号处理器指令(下文所描述)及解译及作用于服务器命令码(包括用于“设定架构”的命令码)的机制。所述工具提供在CPU之间的通信,包括:传输、接收及解码一组被指派的命令码;发起指定操作;及响应发出信令的CPU。通过使用“设定架构”,将架构模式设定为期望配置,例如,z/Architecture。下文进一步描述此处理的更多细节。
此后,作出关于是否接受SIGP操作的判定,查询426。基于返回码,在已作出CPU已处于代码所指定的架构模式中的判定时(亦即,判定“设定架构”表示切换至当前模式自身,或判定是否自一个模式切换至另一模式),可诊断大量错误条件,包括“无效参数”指示。如果接受SIGP且“设定架构”表示合法模式切换操作,则接收SIGP操作的计算环境的所有处理器使用(例如)本文所描述的“设定架构”处理转变成z/Architecture模式,步骤428。然而,如果SIGP操作为不合法的,则指示错误,步骤430。
如上文所描述,通电操作加载程序状态字。参考图5描述程序状态字(PSW)的格式的一个实施例。参考图5,在此实例中,程序状态字的格式为ESA/390格式,除将位31展示为EA之外,如下文所指示。
在一个实施例中,作为一个实例,程序状态字500包括以下字段:
Per屏蔽(R)502:位1控制是否针对与程序事件记录(PER)相关联的中断启用CPU。当位为0时,没有PER事件可引起中断。当位为1时,受控制寄存器9中的PER事件屏蔽位的影响,准许中断。
DAT模式(T)504:位5控制是否发生用于存取存储装置的逻辑及指令地址的隐含动态地址转换(DAT)。当位为0时,DAT关闭,并且将逻辑及指令地址视为实地址。当位为1时,DAT开启,并且调用动态地址转换机制。
I/O屏蔽(IO)506:位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)508:位7控制是否藉由包括在外部类别中的条件针对中断启用CPU。当位为0时,外部中断不可发生。当位为1时,外部中断受控制寄存器0中的对应的外部子类别屏蔽位的影响。当子类别屏蔽位为0时,与子类别相关联的条件不能引起中断。当子类别屏蔽位为1时,该子类别中的中断可发生。
PSW键(键)510:位9至11形成供CPU进行存储参考的存取键。如果参考经受键控保护,则在存储信息时或在自受保护而免于取回的位置取回信息时,将PSW键与存储键相匹配。然而,对于移动至主要键(Move to Primary)、移动至次要键(Move to Secondary)、以键移动(Move with Key)、以源键移动(Move with Source Key)及以目的地键移动(Movewith Destination Key)中的每一者的操作数中的一者,并且对于以可选的规格移动(Movewith Optional Specification)的任一或两个操作数,使用指定为操作数的存取键取代PSW键。
位12 512:此位指示当前架构模式。其针对ESA/390PSW格式设定为1。对于z/Architecture PSW格式,此位被定义为0。当处于z/Architecture模式中时,定义加载PSW扩展(LPSWE)指令用于加载真实的z/Architecture PSW(其具有与本文中所描述的格式不同的格式,包括具有位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)514:位13控制是否通过机器检查条件针对中断启用CPU。当位为0时,机器检查中断不可发生。当位为1时,准许归因于系统损坏及指令处理损坏的机器检查中断,但归因于其他机器检查子类别条件的中断受控制寄存器14中的子类别屏蔽位影响。
等待状态(W)516:当位14为1时,CPU处于等待中;亦即,CPU未处理任何指令,但可发生中断。当位14为0时,指令取回及执行以正常方式发生。当位为1时,等待指示符为1。
问题状态(P)518:当位15为1时,CPU处于问题状态中。当位15为0时,CPU处于监督状态中。在监督状态中时,所有指令为有效的。在问题状态中,仅提供有意义信息至问题程序且不影响系统完整性的那些指令是有效的;这些指令被称为非特权指令。在问题状态下为无效的指令被称为特权指令。当问题状态下的CPU尝试执行特权指令时,识别特权操作异常。仅在满足具体授权测试时,藉由处于问题状态中的CPU执行被称为半特权指令的另一组指令;否则,视所违反的特定要求而定,识别特权操作异常或某一其他程序异常。
地址空间控件(AS)520:位16及17结合PSW位5控制转换模式。
条件代码(CC)522:位18及19为条件代码的两个位。视在执行某些指令时所获得的结果而定,条件代码被设定为0、1、2或3。多数算术及逻辑运算以及一些其他运算设定条件代码。指令BRANCH ON CONDITION能够将条件代码值的任何选择指定为用于分支的准则。
程序屏蔽524:位20至23为四个程序屏蔽位。每一位如下与程序异常相关联:
当屏蔽位为1时,异常导致中断。当屏蔽位为0时,不发生中断。HFP有效值屏蔽位的HFP指数下溢屏蔽位的设定还确定在对应异常发生时完成计算的方式。
扩展寻址模式(EA)526:位31结合位32(基本寻址模式位)控制有效地址的大小及有效地址产生。当位31为0时,藉由位32控制寻址模式。当位31及32两者均为1时,指定64位寻址。
基本寻址模式(BA)528:位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对寻址模式的控制概括如下:
指令地址530:PSW的位33至63为指令地址。除非CPU处于等待状态中(PSW的位14为1),否则所述地址指定待执行的下一指令的最左字节的位置。
根据一个方面,当在计算环境中安装及激活诸如配置z/Architecture架构模式(CZAM)工具的配置架构模式工具时,改变通电处理。参考图6A描述CZAM通电处理的一个实施例。
参考图6A,基于正被通电的计算环境的处理器,在安装CZAM时,将计算环境设定为由配置架构模式工具指定的特定架构模式(例如,z/Architecture模式)(亦被称作ESAME),步骤600。举例而言,如上文所述,执行初始程序加载(IPL),诸如通道控制字(CCW)初始程序加载(IPL),步骤602,并且当成功完成IPL输入/输出操作时,将用于IPL设备的子系统标识字存储于所选绝对存储位置(例如,位置184的187)中,将0存储于其他所选绝对存储位置(例如,位置188至191)中,并且在此实施例中,从所选绝对存储位置(例如,位置0至7)产生16字节新程序状态字(PSW),步骤604。新16字节PSW例如从所选存储双字(例如,位置0至7)的内容形成。双字的位12将为1;否则可指示错误。(所述错误可为识别到的指定异常、机器检查或又一错误指示)。将新产生的PSW的位0至32设定为所选双字的位0至32,不同之处在于位12被反转。将新产生的PSW的位33至96设定为0。根据所选双字的位33至63初始化新产生的PSW的位位置97至127。
在一个实施例中,在加载待由指令加载的PSW字段之前,未检查其有效性。在一个实施例中,检查PSW的位12的有效性。在又一实施例中,检查所有字段的有效性。在另一实施例中,在已初始化PSW之后,检查在加载PSW之前未检查的任何位的有效性,并且处理器可指示错误(例如,藉由引发识别到的指定异常、机器检查或又一错误指示)。
计算环境进入工作状态,并且计算环境的操作在新程序状态字(PSW)的控制下继续进行,步骤606。接着运行引导后的计算环境,步骤608,如参考图6B进一步描述。
参考图6B,在z/Architecture模式中启动引导后的计算环境,步骤620,并且因此在z/Architecture模式中执行操作,步骤622。无需模式切换,并且以z/Architecture模式中的处理直接继续进行处理。因此,在一个实施例中,不需要以下步骤:自ESA/390模式切换至z/Architecture模式的信号处理器(SIGP)操作;关于SIGP操作是否为接受的操作的判定;在其为接受的操作时至z/Architecture的转变;或在不接受SIGP操作时的错误指示。
在不执行上文所指示的步骤的情况下,计算环境(亦即,正被配置的环境,例如,单处理器、逻辑分区、VM客体)的所有处理器处于z/Architecture模式中。因此,如本文所描述,根据一个方面,自针对ESA/390及z/Architecture两者配置的计算环境移除在ESA/390模式中引导或通电的能力。具体地说,尽管计算环境被配置为支持多种架构,但提供限制被配置架构中的至少一者的某些方面的能力,所述方面中的一者是在该架构中通电的能力。
在一个或多个优选实施例中,在z/Architecture模式中的通电提供一种机制以指定(1)逻辑分区(客体-1)及(2)逻辑分区中的一者及客体-2将在z/Architecture模式中引导及重设而无需在ESA/390模式中引导。可无条件地或在配置切换的控制下安装此特征。
修改关于PSW初始化的引导序列。举例而言,在IPL结束时,加载绝对位置0至7处的IPL PSW。如当前所进行的一样,在重设条件为ESA/390时,位12为1,从而形成有效ESA/390IPL PSW,并且程序继续在ESA/390架构模式中执行指令。在安装CZAM后,重设条件为z/Architecture,位12仍为1,从而形成有效ESA/390IPL PSW,但在16字节z/Architecture当前PSW的形成期间反转位12,如上文所定义。
除通电处理之外,亦可藉由安装配置架构模式工具来改变或影响其他处理、行为和/或操作。这些受影响的处理、行为和/或操作特定于ESA/390及z/Architecture模式。然而,对于其他类型的架构,类似和/或不同的处理可受影响。在一个或多个优选实施例中可受影响的实例处理、行为和/或操作包括(例如):
(1)启用自模式至自身(例如,自z/Architecture模式至z/Architecture模式)的切换而不产生错误(或忽略所述错误)。亦即,处理器可发出切换至z/Architecture模式的SIGP指令,并且如果已处于该模式中,则将不产生错误。先前,切换至与当前模式对应的模式的尝试产生了错误。
(2)停用至ESA/390模式的切换。基于安装及激活CZAM,停用至ESA/390的切换且现产生错误。如果位12未被设定为指示z/Architecture模式(由存储装置中为“1”的位12表示,该位被反转为位“0”以在ESA/390PSW被转换为有效z/Architecture PSW时表示PSW中的z/Architecture),藉由检查PSW的位12及考虑到异常来阻止切换回至ESA/390。
(3)修改加载PSW操作以限制对位12的处置。如果安装配置z/Architecture架构模式工具,则加载PSW在其第二操作数的位12不为1时识别到指定异常。加载PSW将其第二操作数的位0至32(只有位12被反转)及操作数的位33至63分别作为当前PSW的位0至32及位97至127加载,并且其将当前PSW的位33至96设定为0。
参考图7描述关于加载PSW指令的更多细节。在一个实施例中,加载PSW指令700包括:操作码字段702,其包括操作码以指示加载PSW操作;基本字段(B2)704;及位移字段(D2)706。将通过B2字段指定的通用寄存器的内容添加至D2字段的内容以形成存储装置中的第二操作数的地址(被称作第二操作数地址)。
在加载PSW指令的操作中,由16字节PSW替换当前PSW,所述16字节PSW由在通过第二操作数地址所指定的位置处的双字的内容形成。
双字的位12将为1;否则,视模型而定,可识别指定异常。如果安装了配置z/Architecture架构模式工具,则在双字的位12不为1时识别到指定异常。
将双字的位0至32(只有位12被反转)放置于当前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等人的“Development and Attributes of z/Architecture”(IBMJ.Res.&Dev.,第46卷,第4/5号,2002年7月/9月)中描述关于PSW的更多细节。
除了可归因于配置架构模式工具的安装而改变的以上处理、操作和/或行为以外,在一个或多个优选实施例中亦可改变重设模式,如下文所解释。
(4)改变重设模式(例如,用于重设、清除重设及针对重设的其他动作)。在安装了CZAM工具时,如果CPU重设是由(例如)加载正常键的激活而引起的,则CPU重设将架构模式设定为z/Architecture模式。
存在包括为ESA/390及z/Architecture模式的一部分的大量重设功能,其包括(例如)CPU重设、初始CPU重设、子系统重设、清除重设及通电重设,于下文中描述以上中的每一者。
CPU重设
CPU重设提供在受损信息量最少的情况下清除设备检查指示及任何由此产生的CPU状态的不可预测性的手段。具体地说,CPU重设用于在保存CPU状态以用于分析或重续操作时清除检查条件。如果未安装配置z/Architecture架构模式(CZAM)工具,则在CPU重设是由加载正常键(操作者工具)的激活引起时,CPU重设将架构模式设定为ESA/390模式。在安装了CZAM工具时,在CPU重设是由加载正常键的激活引起时,CPU重设将架构模式设定为z/Architecture模式。当CPU重设设定ESA/390模式时,其保存当前PSW以使得可通过将架构模式变回至z/Architecture的信号处理器“设定架构”命令还原PSW。
在一个实施例中,CPU重设引起以下动作:
1.终止当前指令或其他处理序列(诸如中断)的执行,并且清除所有程序中断及监督程序调用中断条件。
2.清除在CPU本地的任何待决外部中断条件。不清除浮动外部中断条件。
3.清除在CPU本地的任何待决机器检查中断条件及错误指示,以及任何检查停止状态。不清除浮动机器检查中断条件。报告至配置中的所有CPU且已对CPU待决的任何机器检查条件被称为在CPU的本地。
4.清除预取回指令或操作数的所有复本。另外,清除由于在当前检查点间隔中执行指令而待存储的任何结果。
5.清除ART(存取寄存器转换)后备缓冲器及转换后备缓冲器中的表项。
6.如果重设是由配置中的任何CPU上的加载正常键的激活而引起的,则发生以下动作:
a.当未安装CZAM工具时,将CPU的架构模式(及由于初始CPU重设或通过配置中的所有其他CPU执行的CPU重设,所有其他CPU的架构模式)自z/Architecture模式变为ESA/390模式。如果安装了CZAM工具,则将CPU的架构模式(及由于初始CPU重设或通过配置中的所有其他CPU执行的CPU重设,所有其他CPU的架构模式)设定为z/Architecture模式。
b.当未安装CZAM工具时,保存当前PSW以供还原z/Architecture模式的信号处理器“设定架构”命令随后使用。
c.当未安装CZAM工具时,将当前PSW自16个字节变为8个字节。八字节的PSW的位被设定为如下:将位0至11及13至32设定为等于16字节的PSW的相同位;将位12设定为1;及将位33至63设定为等于16字节的PSW的位97至127。
通过系统重设正常键或通过信号处理器CPU重设命令的激活引起的CPU重设及ESA/390模式中的任何CPU重设不影响所捕获的z/Architecture-PSW寄存器(亦即,当CPU最后由于具有代码0的“设定架构”命令或归因于加载正常键的激活的CPU重设,而自z/Architecture模式进入ESA/390模式时保存的PSW)。
7.在已完成动作1至6之后,将CPU置于停止状态中。当CCW型IPL序列遵循在该CPU上的重设功能时,CPU在重设功能完成时进入加载状态且不必在重设操作的执行期间进入停止状态。当列表引导式IPL序列遵循在该CPU上的重设功能时,CPU进入工作状态且不必在重设操作的执行期间进入停止状态。
寄存器、存储装置内容及在CPU外部的条件状态藉由CPU重设保持不变。然而,如果在重设时改变内容的操作正在进行中,则寄存器的后续内容、位置或状态是不可预测的。未通过CPU重设释放在执行PERFORMLOCKED OPERATION(执行锁定操作)时由CPU持有的锁。
当在CPU正执行I/O指令或正执行I/O中断时发起CPU中的重设功能时,可能完成或可能不完成CPU与通道子系统之间的当前操作,并且相关联的通道子系统工具的由此产生的状态可能不可预测。
编程备注:
1.将改变字段的状态、条件或内容的多数操作在CPU处于停止状态时不可发生。然而,一些信号处理器功能及一些操作者功能可改变这些字段。为消除在发出CPU重设时丢失字段的可能性,CPU应停止且应无操作者功能在进行中。
2.如果架构模式变为ESA/390模式且当前PSW的位31为1,则PSW无效。
初始CPU重设
初始CPU重设提供以下功能:CPU重设连同当前PSW、捕获的z/Architecture PSW、CPU定时器、时钟比较器、前缀、突发事件地址控制、浮点控制及当日时间(TOD)可编程寄存器的初始化。如果未安装CZAM工具,则在初始CPU重设是由加载正常键的激活引起时,初始CPU重设将架构模式设定为ESA/390模式。当安装了CZAM工具时,在初始CPU重设是由加载正常键的激活引起时,初始CPU重设将架构模式设定为z/Architecture模式。
初始CPU重设将CPU重设功能与以下清除及初始化功能进行组合:
1.当未安装CZAM工具时,如果加载正常键的激活引起重设,则将所述CPU(及配置中的所有其他CPU)的架构模式设定为ESA/390模式。否则,如果安装了CZAM工具,则将所述CPU(及配置中的所有其他CPU)的架构模式设定为z/Architecture模式。
2.将当前PSW、捕获的z/Architecture PSW、前缀、CPU定时器、时钟比较器及TOD可编程寄存器的内容设定为0。当IPL序列遵循该CPU上的重设功能时,不必将PSW的内容设定为0。
3.将控制寄存器的内容设定为其初始z/Architecture值。设定控制寄存器的所有64个位而不考虑CPU是在ESA/390架构模式中还是在z/Architecture架构模式中
4.将浮点控制寄存器的内容设定为0。
5.将突发事件地址寄存器的内容初始化为0000000000000001十六进制。
这些清除及初始化功能包括验证。
在CPU在操作结束时处于ESA/390架构模式中时将当前PSW设定为0使PSW无效,因为PSW位12在该模式中将为1。因此,在此情况下,如果在重设后将CPU置于工作状态中而未首先引入新PSW,则识别指定异常。
子系统重设
子系统重设提供用于清除浮动中断条件以及用于调用I/O系统重设的手段。
清除重设
清除重设使初始CPU重设及子系统重设被执行,并且另外,除TOD时钟以外,清除或初始化配置中的所有CPU中的所有存储位置及寄存器。此种清除用于调试程序及确保用户隐私。清除重设亦解除PERFORMLOCKED OPERATION指令使用的所有锁。如果未安装CZAM工具,则清除重设将架构模式设定为ESA/390模式。在安装了CZAM工具时,清除重设将架构模式设定为z/Architecture模式。清除并不影响外部存储装置,诸如,控制程序所使用以保存不可寻址页面的内容的直接存取存储设备。
清除重设将初始CPU重设功能与引起以下动作的初始化功能相组合:
1.在未安装CZAM工具时,将配置中的所有CPU的架构模式设定为ESA/390模式。如果安装了CZAM工具,则将配置中的所有CPU的架构模式设定为z/Architecture模式。
2.将配置中的所有CPU的存取寄存器、通用寄存器及浮点寄存器设定为0。将通用寄存器的所有64个位设定为0而不考虑在发起清除重设功能时,CPU是在ESA/390架构模式中还是在z/Architecture架构模式中。
3.使用有效块检查码将配置中的主存储装置的内容及相关联存储键设定为0。
4.解除在执行PERFORM LOCKED OPERATION指令时由配置中的任何CPU使用的锁。
5.执行子系统重设。
验证包括在设定寄存器及清除存储装置及存储键中。
编程备注:
1.架构模式未由系统重设正常键的激活或信号处理器CPU重设或初始CPU重设命令的执行而改变。配置中的所有CPU处于同一架构模式中。
2.由于CPU重设操作不影响将保持不变的字段的内容,故CPU将不执行指令且将针对重设时的所有中断而停用。除了CPU定时器的操作以及机器检查中断发生的可能性以外,可通过将CPU置于等待状态中及通过针对I/O及外部中断停用所述CPU来停止所有CPU活动。为避免在正更新CPU定时器或发生机器检查中断时引起重设的可能性,CPU将不处于停止状态。
3.CPU重设、初始CPU重设、子系统重设及清除重设并不影响TOD时钟的值及状态。
4.CPU进入检查停止状态的条件取决于模型且包括妨碍当前操作的完成的故障。因此,如果在CPU处于检查停止状态中的同时执行CPU重设或初始CPU重设,则PSW、寄存器及存储位置(包括在发生错误时存取的存储键及存储位置)的内容可具有不可预测值,并且在一些情况下,在通过所述重设清除检查停止状态后,内容可仍为错误的。在此情景下,需要清除重设来清除错误。
通电重设
将用于机器的组件的通电重设功能作为用于该组件的通电序列的一部分执行。可包括用于TOD时钟、主存储装置、扩展存储装置及通道子系统的通电序列来作为CPU通电序列的一部分,或可单独发起用于那些单元的通电序列。
CPU通电重设:通电重设引起初始CPU重设得以执行且可能引起或可能不引起I/O子系统重设在通道子系统中执行。使用有效块检查码将通用寄存器、存取寄存器及浮点寄存器的内容清除为0。除非其由已通电的CPU持有,否则解除PERFORM LOCKED OPERATION所使用且与CPU相关联的锁。如果未安装CZAM工具且重设与建立配置相关联,则将CPU置于ESA/390模式中;否则,将CPU置于已在配置中的CPU的架构模式中。如果安装了CZAM工具,则将CPU置于z/Architecture模式中。
可通过使用操作者工具人工发起CPU重设、初始CPU重设、子系统重设、及清除重设。初始CPU重设为初始程序加载功能的一部分。作为通电的一部分执行通电重设。
当未安装CZAM工具时,如果通过系统重设清除键、加载正常键或加载清除键或通过建立配置的CPU通电重设来发起重设,则将架构模式设定为ESA/390模式;否则,架构模式不改变,不同之处在于通电重设将该模式设定为已处于所述配置中的CPU的该模式。如果安装了CZAM工具,则将架构模式设定为z/Architecture模式。
下文描述可归因于配置架构模式工具的安装而改变的其他处理、操作和/或行为:
(5)在执行重设时,抑止所采取以促进在ESA/390与z/Architecture模式之间的变化的其他重设相关动作。当未安装CZAM工具时,保存当前PSW以供还原z/Architecture模式的信号处理器“设定架构”命令随后使用。当未安装CZAM工具时,将当前PSW自16个字节变为8个字节。在一个实例中,八字节PSW的位被设定如下:将位0至11及13至32设定为等于16字节PSW的相同位;将位12设定为1;及将位33至63设定为等于16字节PSW的位97至127。当安装了CZAM工具时,不保存PSW以供还原z/Architecture模式的信号处理器“设定架构”命令随后使用,并且不将当前PSW自16字节变为8字节。
(6)改变用于以配置CPU SCLP(服务调用逻辑处理器)命令及加载键操作来配置CPU的处理。在由重设定义的模式中进行配置而非在ESA/390中进行配置。配置CPU SCLP命令将主体CPU置于已处于被配置状态中的CPU的架构模式中。结合CPU通电重设将置于一配置中的至少第一CPU置于该架构模式,并且作为该重设的一部分,将其置于在CPU通电重设中定义的架构模式中。在模型设定被配置CPU的模式时,所述模型可替代地设定处于待用状态的CPU的模式。
激活加载清除键或加载正常键分别如在清除重设或初始CPU重设中所定义的那样来设定架构模式。
(7)改变SIGP以不允许“设定架构”命令将架构模式变为ESA/390。
参考图8A描述信号处理器(SIGP)指令的一个实施例。在一个实施例中,信号处理器指令800具有多个字段,包括(例如):具有指示信号处理器操作的操作码的操作码字段(操作码)802;第一寄存器字段(R1)804;第二寄存器字段(R3)806;基本字段(B2)808及位移字段(D2)810。R1表示通用寄存器,其内容为第一操作数;R3表示通用寄存器,其内容为第三操作数;且将由R2表示的寄存器的内容与D2中的位移相加以提供第二操作数的地址。
在运算中,将八位命令码及(如果被调用)32位参数传输至由第三操作数中所含的CPU地址所表示的CPU。此结果由条件代码指示且可由在第一操作数位置的位位置32至63中组合的状态详述。
第二操作数地址不用于寻址数据;相反,地址的位56至63含有八位命令码。忽略第二操作数地址的位0至55。命令码指定待由被寻址CPU执行的功能。在一个实例中,命令码的指派及定义包括(例如)以下各者:
代码
通用寄存器R3的位位置48至63中所含的16位二进制编号形成CPU地址。忽略寄存器的位0至47。当指定的命令为“设定架构”命令时,忽略CPU地址;配置中的所有其他CPU被认为已寻址。
在位位置32至63中含有32位参数的通用寄存器为R1或R1+1,其中任一者为奇数编号寄存器。这视是否提供参数的命令码且使用其的目的而定。
在一个实例中,刚描述的操作数具有以下格式:
由R1表示的通用寄存器:位0至31未被使用;位32至63包括状态;
由R1或R1+1表示的通用寄存器,其中任一者为奇数编号寄存器:位0至31未被使用;位32至63包括参数;
由R3表示的通用寄存器:位0至48未被使用;位49至63包括CPU地址;
第二操作数地址:位0至55未被使用;位56至63包括命令码。
在运算开始之前及在运算完成之后,两次执行串行化功能。
在接受命令码且未返回非0状态时,设定条件代码0。当由此CPU(执行SIGP的CPU)产生或由已寻址的CPU返回状态信息时,将状态放置于通用寄存器R1的位位置32至63中,该寄存器的位0至31保持不变,并且设定条件代码1。
当至已寻址的CPU的存取路径忙碌或已寻址的CPU可操作但处于其不可回应命令码的状态中时,设定条件代码2。
当已寻址的CPU不可操作(亦即,其未在安装中提供,其不在配置中,其处于某些客户工程师测试模式中的任一者中或其电源被关闭)时,设定条件代码3。
所得条件代码:
0接受命令码
1存储状态
2忙碌
3不可操作
程序异常:
·特权操作
·事务约束
当在信号处理器指令的第二操作数地址的位位置56至63中指定“设定架构”信号处理器命令时,将参数寄存器的位位置56至63的内容用作指定配置中的所有CPU将被设定到的架构模式的代码:代码0指定ESA/390模式,并且代码1及2指定z/Architecture模式。代码1指定,对于配置中的所有CPU中的每一者,将当前ESA/390PSW变换为z/ArchitecturePSW。代码2指定,将执行信号处理器的CPU的PSW变换为z/Architecture PSW,并且对于配置中的所有其他CPU中的每一者,将使用用于该CPU的捕获的z/Architecture-PSW寄存器的值设定PSW。倘若捕获的z/Architecture-PSW寄存器尚未通过重设设定为全部为0,则使用捕获的z/Architecture-PSW寄存器的值设定PSW将还原CPU最后在z/Architecture模式中时所存在的PSW。
忽略参数寄存器的位0至55。忽略信号处理器指令的CPU地址寄存器的内容;配置中的所有其他CPU被认为已寻址。
当未安装CZAM工具时,仅在以下情况中接受命令:代码为0、1或2,CPU尚未处于由所述代码指定的模式中,所有其他CPU中的每一者处于停止状态抑或检查停止状态中,并且无其他条件妨碍接受命令。
当安装了CZAM工具时,因为不准许返回至ESA/390模式,故不接受代码0,并且由于CPU已处于z/Architecture架构模式,代码1及2的指定产生指示无效参数及条件代码1的完成。可以检查也可以不检查通常由“设定架构”命令验证的其他前提条件。
如果接受,则在信号处理器的执行期间由所有CPU完成命令。在此实施例中,在任何情况下不同CPU皆处于相同架构模式中。
在一个实例中,如下完成“设定架构”命令:
·如果参数寄存器中的代码不为0、1或2,或如果CPU已处于由所述代码指定的架构模式中,则不接受命令。相反,将由信号处理器指令的R1字段表示的通用寄存器的位55(无效参数)设定为1,并且设定条件代码1。
·如果并非配置中的所有其他CPU处于停止或检查停止状态中,则不接受命令。相反,将由信号处理器指令的R1字段表示的通用寄存器的位54(不正确状态)设定为1,并且设定条件代码1。
·如由代码所指定的那样来设定配置中的所有CPU的架构模式(例如,将用于控制操作的PSW的位12设定为指定架构模式,和/或设定计算环境中指示指定架构模式的另一指示)。
·如果命令将架构模式自ESA/390变为z/Architecture且代码为1,则对于配置中的每一CPU,将八字节的当前PSW变为16字节PSW,并且16字节PSW的位被设定如下:将位0至11及13至32设定为等于八字节PSW的相同位;将位12及33至96设定为0;及将位97至127设定为等于八字节PSW的位33至63。此外,将变为z/Architecture前缀的位51的ESA/390前缀的位19设定为0。
如果代码为2,则如在代码1情况中一样来设定执行信号处理器的CPU的PSW及所有CPU的前缀值。对于配置中的所有其他CPU中的每一者,使用捕获的z/Architecture-PSW寄存器的值设定PSW。然而,如果CPU在架构模式转变时或随后执行不同于CPU重设的重设,则捕获的z/Architecture-PSW寄存器已被设定为全部为0。
·如果命令将架构模式自z/Architecture变为ESA/390,则对于配置中的每一CPU,(1)将在执行信号处理器的CPU的情况下为更新后的PSW的当前PSW保存于捕获的z/Architecture-PSW寄存器中,及(2)通过如下设定八字节PSW的位来将16字节的当前PSW变为八字节PSW:将位0至11及13至32设定为等于16字节PSW的相同位;将位12设定为1;及将位33至63设定为等于16字节PSW的位97至127。变为ESA/390前缀的位19的z/Architecture前缀的位51保持不变。
·清除配置中的所有CPU的ALB及TLB的内容。
·对配置中的所有CPU执行串行化及检查点同步功能。
如果命令将架构模式自z/Architecture变为ESA/390且信号处理器指令引起指令取回PER事件的出现,仅将指令地址的最右31个位存储于ESA/390PER地址字段中。
在一个实施例中,以下为关于CZAM的前提条件:所有其他CPU中的每一者处于停止或检查停止状态中,并且无其他条件妨碍接受命令。当安装了CZAM工具时,因为不准许返回至ESA/390模式,故不接受代码0,并且由于CPU已处于z/Architecture架构模式中,代码1及2的指定产生指示无效参数及条件代码1的完成。可以检查也可以不检查通常由“设定架构”命令验证的其他前提条件。在又一实施例中,具有代码1及2的SIGP指示成功完成而无需进一步指示。
参考图8B描述与针对“设定架构”命令码执行SIGP指令相关联的处理的一个实施例。参考图8B,计算环境的处理器执行SIGP指令且获得指示“设定架构”操作的命令码,步骤850。在一个实例中,命令码包括在SIGP指令的第二操作数地址中。
另外,自(例如)通过SIGP指令指定的参数寄存器获得待切换至的所请求架构模式,步骤852。此外,作出关于是否安装了诸如CZAM的配置架构模式工具的判定,查询854。在一个实例中,此通过工具指示符来判定。
如果未安装CZAM,则作出关于CPU是否已处于所请求架构模式的进一步判定,查询856。如果如此,则在(例如)由SIGP指令表示的寄存器中提供状态,步骤858,并且将所述状态视为错误,步骤860。然而,如果CPU未处于所请求的模式中,查询856,则作出关于是否满足由指令指定的其他条件(诸如,正被配置的计算环境的其他CPU是否处于停止状态等)的判定,查询862。如果不满足所述条件,则处理继续至步骤858。否则,接受命令,步骤864,并且架构模式将被改变。因此,如上文所描述设定PSW,步骤866,并且用于指令的此方面的处理结束,步骤868。
返回至查询854,如果安装了CZAM,则作出关于CPU是否处于所请求模式中的判定,查询870。如果CPU已处于所请求模式中,则在一个实例中,提供CPU已处于所请求架构模式(例如,z/Architecture)中的状态,步骤872。然而,在此实施例中,此状态是可接受的且不被视为错误,步骤874。或者忽略该状态,或在另一实施例中,可提供为非错误码的条件代码。在再一实施例中,状态仅指示成功完成。其他可能性亦存在,以指示即使CPU已处于所请求架构模式也无错误。
返回至查询870,然而如果CPU不处于所请求模式中,则不接受命令,因为返回至一个架构模式(例如,ESA/390)是非法的,步骤876。提供状态,步骤878,该状态被视为错误,步骤880。
在一个实施例中,当CZAM在系统中作为不可选的工具时,则可省略查询854且控制可自步骤852直接传递至步骤870。在此实施例中,可不实施步骤854至868。
在另一实施例中,当接收切换至当前架构模式的命令时,在步骤874中可不接受所述命令且可指示错误。
可基于CAM的安装改变的其他行为、处理和/或操作包括:
(8)对工具位的改变:将新位(例如,位138)添加至工具位以指示配置z/Architecture架构模式工具,并且将指示z/Architecture架构模式是否活动的位2设定为1(指示活动)。
如上文所描述,计算环境可在一个架构模式(例如ESA/390)中引导且接着切换至用于处理的另一架构模式(例如,z/Architecture);或计算环境可直接引导至其将要进行处理的架构模式(例如,z/Architecture)中。因此,根据一个或多个方面,提供控制实用工具(包括(但不限于)操作系统或不需要操作系统引导的其他独立实用工具),其可在第一架构配置或第二架构配置中引导,在所述第一架构配置中,控制实用工具在一个架构模式(例如,ESA/390)中初始化且接着切换至另一架构模式(例如,z/Architecture),在所述第二架构配置中,控制实用工具在选定架构模式(例如,z/Architecture)中初始化且进行处理。在一个实施例中,选定架构模式为其中编写控制实用工具的架构。
参考图9描述与使控制实用工具在第一架构配置中引导相关联的逻辑的一个实施例。首先,处理器(例如,硬件)设定待用于控制执行的程序状态字(PSW),步骤900。在此实例中,硬件自存储器加载PSW且所述PSW具有一个架构模式(例如,ESA/390)的格式。接着在一个架构模式中执行设定代码,步骤902。举例而言,控制实用工具开始执行由程序状态字指定的第一组指令。此后,在一个实施例中,准备自一个架构模式ESA/390切换至诸如z/Architecture的另一架构模式,步骤904。举例而言,控制实用工具通过使用命令码(例如,“设定架构”命令码)设定寄存器及将该寄存器传递至被称作信号处理器指令的指令来准备进行模式切换。
处理器执行信号处理器指令以将处理器且因此将控制实用工具置于z/Architecture模式中,步骤906。此后,在一个实施例中,作出关于是否成功执行了信号处理器指令的判定,查询908。如果存在信号处理器错误条件,则中止控制实用工具的引导,步骤910;否则,在z/Architecture模式中执行剩余代码,步骤912。
在另一实施例中,被编写以用于选定架构(例如,z/Architecture)的控制实用工具直接在该架构中引导而不是在一个架构中引导且切换模式。参考图10描述在不需要切换的系统(诸如,包括CZAM工具的系统)上使控制实用工具直接引导的逻辑的一个实施例。参考图10,首先,处理器(例如,硬件)设定来自存储装置的程序状态字,步骤1000。在一个实例中,自所选的绝对存储位置(例如,位置0至7)产生16字节的新程序状态字(PSW)。新16字节PSW例如从所选存储双字(例如,位置0至7)的内容形成。双字的位12将为1;否则,可指示错误。(错误可为识别的指定异常、机器检查或又一错误指示)。将新产生的PSW的位0至32设定为所选双字的位0至32,只有位12被反转。将新产生的PSW的位33至96设定为0。根据所选双字的位33至63初始化新产生的PSW的位位置97至127。
此后,在z/Architecture模式中执行设定码,因为系统已处于该模式中,步骤1002。此外,亦在z/Architecture模式中执行代码的其余部分,步骤1004。
尽管可取决于架构配置(例如,第一配置或第二配置)单独使用以上引导序列,但在一个实施例中,提供在不考虑控制实用工具在其中引导的架构模式的情况下能够使用的引导序列。亦即,提供能够用于多个架构配置中的公用引导序列,所述多个架构配置包括(但不限于)第一架构配置及第二架构配置。
参考图11描述与公用引导序列相关联的逻辑的一个实施例。最初,处理器(例如,硬件)设定来自存储装置的程序状态字,步骤1100。在此实施例中,架构模式可为多个模式中的任一者,包括传统模式(诸如ESA/390)或增强型架构模式(诸如z/Architecture)。因此,程序状态字反映处理器的初始架构模式。
此后,可执行指令的公共子集以执行某些量的设定,步骤1102。这些指令同样适用于不同架构模式,尽管它们可基于模式而表现不同。所述指令是公用的,原因在于它们被定义在不同架构中且可被执行而不考虑当前架构模式。
除了执行指令的公共子集以执行某一设定以外和/或作为其一部分,执行模式切换而不考虑当前架构模式,步骤1104。如上所述,将命令码放置在寄存器中且转发至SIGP指令。执行SIGP指令以将环境置于z/Architecture模式中,步骤1106。具体地说,在一个实施例中,如果环境处于ESA/390中,则SIGP指令的执行将环境置于z/Architecture模式中。然而,如果环境已处于z/Architecture模式中,则SIGP指令的执行并不执行模式切换,并且相反提供环境已处于z/Architecture模式中的状态。接受此状态作为非错误。
接着在z/Architecture模式中执行代码的其余部分,步骤1108。
简单引导序列的一个实例可包括(例如)用于初始化控制寄存器、使用命令寄存器加载寄存器以执行SIGP指令的一个或多个加载控制指令(LCTL)及SIGP指令。可在ESA/390或z/Architecture模式中发出这些指令及“类似”结果,以使得在完成SIGP之后,系统首先被配置且处于z/Architecture模式中。在至少一个实施例中,代码可在完成SIGP指令后检查条件代码以判定系统首先是在ESA/390模式中配置(例如,借助指示执行自ESA/390的成功切换的条件代码值0)还是在z/Architecture中配置(例如,借助指示由于系统已处于所请求架构模式中而未执行切换的条件代码1)。
参考图12描述使用公用引导序列以引导控制实用工具的另一实施例。在此实例中,处理器(例如,硬件)在处理器首先进行处理的架构模式中设定来自存储装置的PSW,如上文所描述,步骤1200。接着,检查PSW的位12以判定计算环境的架构模式,查询1202。在一个实施例中,为检查PSW位,使用提取PSW指令。参考图13描述提取PSW指令的一个实例。
参考图13,在一个实施例中,提取PSW指令1300包括:操作码1302,其包括指示提取PSW操作的操作码;第一寄存器字段(R1)1304及第二寄存器字段(R2)1306。在操作中,将当前PSW的位0至31放置于第一操作数(由第一寄存器字段指定的寄存器)的位位置32至63且操作数的位0至31保持不变。随后,将当前PSW的位32至63放置于第二操作数(由第二寄存器字段指定的寄存器)的位位置32至63且操作数的位0至31保持不变。在一个实例中,如果R2字段为0,则不执行与第二操作数关联的动作。
返回图12,如果架构模式为(例如)ESA/390(例如,PSW位12=1),则在ESA/390中执行设定码,步骤1204。处理器准备进行模式切换,步骤1206,并且SIGP指令用于将模式变为z/Architecture模式,步骤1208。此外,作出关于是否成功完成SIGP指令的判定,步骤1210。如果其未成功完成,则呈现错误,步骤1214。否则,在z/Architecture模式中执行代码的其余部分,步骤1216。
返回至查询1202,如果PSW的位12的检查指示计算环境处于z/Architecture模式(例如,PSW位12=0),则在z/Architecture模式中执行设定码,步骤1215,并且处理继续在z/Architecture中执行代码的其余部分,步骤1216。
参考图14描述使用公用引导序列的又一实施例。在此实例中,处理器(例如,硬件)基于处理器首先在其中进行处理的架构模式设定来自存储装置的PSW,如上文所描述,步骤1400,并且使用指令的公共子集(例如,少量指令,诸如1至5个指令)执行设定码,步骤1402。处理器准备进行模式切换,步骤1404,并且执行SIGP指令以切换至z/Architecture模式,步骤1406。
作出关于是否成功完成SIGP指令的判定,查询1408。如果成功,则响应于在ESA/390模式中引导而执行某一z/Architecture代码,步骤1410,并且在z/Architecture中执行代码的其余部分,步骤1412。举例而言,在将执行软件重设时,可保存指示应将重设执行至ESA/390模式中的指示符。在另一方面中,引导至ESA/390模式中的模型可使一些控制寄存器以与引导至z/Architecture模式中的模型不同的方式初始化,并且响应于已在ESA/390模式中引导的代码能够重新配置控件以对应于对于z/Architecture优选的设定。
返回查询1408,如果SIGP指令由于计算环境已处于z/Architecture模式中而不执行切换,则执行响应于已在z/Architecture模式中引导的某一z/Architecture代码,步骤1414,并且亦在z/Architecture模式中执行代码的其余部分,步骤1412。举例而言,编程人员可保存重设应执行至z/Architecture模式的指示符。在另一方面中,引导至z/Architecture模式中的模型可提供额外控制寄存器,它们可在步骤1414中初始化,如果系统在ESA/390模式中引导,则它们将不适于初始化。再次地,在此实施例中,SIGP可“失败”,原因在于其可不执行切换,但不存在错误条件。此为SIGP的可接受用途。
除了控制实用工具的以上引导之外,亦提供控制实用工具归因于重设的重新引导。在一个实施例中,存在通过将系统重设至特定模式(诸如,传统模式(例如,ESA/390))及分支至引导加载器来重设整个机器且仿真重新引导的代码。然而,在安装CZAM的情况下,不发生此情况。因此,存在几个其他选项,包括:(例如)判定当前模型是在传统模式(例如,ESA/390)还是在增强型架构模式(例如,z/Architecture)中通电,将机器模式设定为对应模式,及根据机器模式分支至处于本机引导模式中的引导加载器;或将当前模型作为z/Architecture引导模型重新引导而不考虑本机硬件引导模式,亦即,执行软件发起的重新初始化,如同其为z/Architecture重新引导(即使是在ESA/390系统上)那样。此情况可能的原因在于其为软件重新引导(亦被称为热重新引导),其中处理器如同重新引导而不退出至磁盘及再次加载整个控制实用工具那样再循环。寄存器及PSW被初始化至相同状态(如同执行了引导那样),并且接着分支至引导序列的第一指令。
参考图15描述重设的一个实施例。首先,处理器开始终止环境,包括(例如)断开I/O,使机器停顿及总体上终止操作,步骤1500。此后,读取工具位或另一指示符以判定是否安装了CZAM,步骤1502。如果未安装CZAM,查询1504,则处理器通过使用SIGP指令的命令码设定寄存器来准备进行模式切换,步骤1506,并且执行SIGP指令以切换至ESA/390模式,步骤1508。此后,对控制实用工具引导序列的开始执行分支,上文描述了其实例,步骤1510。接着在ESA/390模式中执行引导码同时切换至z/Architecture模式。
返回至查询1504,如果安装了CZAM,则由于计算环境已处于z/Architecture模式中,故不需要切换,并且因此,如上所述,对控制实用工具引导序列的开始执行分支,步骤1514。接着在z/Architecture模式中执行引导码,步骤1512。
在未提供CZAM工具指示符的一个实施例中,可替代地使用被保存作为步骤1410、1414的一部分的指示符来指示引导配置架构模式。
参考图16描述重设逻辑的进一步实施例。首先,处理器开始终止环境,包括(例如)断开I/O,使机器停顿及总体上终止操作,步骤1600。此后,读取工具位或另一指示符以判定是否安装了CZAM,步骤1602。如果未安装CZAM,查询1604,则处理器准备进行模式切换,步骤1606,并且执行SIGP指令以切换至ESA/390模式,步骤1608。此外,将PSW设定为重设PSW,步骤1610。举例而言,在重设时将PSW初始化为已知值,例如,初始化为存储在如本文中所描述的绝对位置0至7处的值,或通过架构规范所定义的固定值来初始化PSW。接着,如上文所描述,对控制实用工具引导码的开始执行分支,步骤1612。接着在ESA/390模式中执行引导码,同时切换至z/Architecture,步骤1614。
返回值查询1604,如果安装了CZAM,则不需要切换,将PSW设定成重设PSW,步骤1616,如上文所描述,对控制实用工具引导码的开始执行分支,步骤1618,并且在z/Architecture模式中执行引导码,步骤1614。
在重设的又一实施例中,如同处于z/Architecture模式中一样执行重设,如参考图17所描述。在此实施例中,首先,系统开始终止环境,步骤1700。接着,将PSW设定为重设z/Architecture PSW,步骤1702,并且对控制实用工具引导码的开始执行分支,步骤1704。在z/Architecture模式中执行引导码而不考虑机器是在ESA/390中还是本机地在z/Architecture中引导,步骤1706。
在另一方面中,提供检测逻辑以判定被引导的控制实用工具是否与公用引导序列兼容。举例而言,在本文中的实例中,编写控制实用工具以用于一个特定架构(例如,z/Architecture),并且引导序列是基于此的。因此,如果结果是在未预期z/Architecture的情况下,编写控制实用工具以用于另一架构(诸如ESA/390),则发生失配。
因此,在一个实施例中,在引导序列早期执行对于SIGP指令的检查,在一个实例中,所述检查将为关于控制实用工具是否意谓用于z/Architecture的指示。此逻辑可直接包括在实施引导序列的初始化的程序逻辑中,并且SIGP指令可包括在引导序列中,如图11中所描述。
参考图18描述此检测逻辑的一个实施例。首先,执行引导序列中至多预定义数目的指令,步骤1800。如果已执行预定义数目(n)的指令而不执行SIGP指令,查询1802,则采取校正动作,此是因为假定了控制实用工具不是公用引导实用工具,步骤1804。此动作包括(例如)停止执行、产生异常和/或提供通知。
返回至查询1802,如果已执行SIGP,则如上文所描述,假定引导序列能够继续处理,步骤1806。
以上逻辑假定将在公用引导序列中发出SIGP。如果使用其中可不执行SIGP的其他类型的引导序列,则可使用其他检测逻辑。在另一个实施例中,在控制实用工具适于在z/Architecture模式中本机地引导的系统上的独占式执行时,使用相同检测逻辑,如(例如)参考图10所描述。例如使用SIGP“设定架构”(或其他指示符,诸如包括(但不限于):指示正使z/Architecture应用引导的新定义的SIGP“断言z/Architecture”)增强图10的引导序列,以满足图18的控制逻辑的要求。
上文详细描述使用公用引导序列使控制实用工具在多个架构配置中引导的能力。在具有此能力的情况下,处理器可使同一操作系统以及在计算环境上于ESA/390中引导且切换至z/Architecture的其他控制实用工具及于z/Architecture中引导的那些控制实用工具引导。在一个实例中,修改硬件,如果SIGP尝试切换至同一架构模式,则不报告SIGP中的错误。
参考图19描述关于公用引导序列的其他方面。首先,发起引导序列以在选定架构模式中使控制实用工具(诸如操作系统)引导,步骤1900。选定架构模式是基于选定架构的,控制实用工具被编写以用于所述选定架构。控制实用工具被配置为以第一架构配置或第二架构配置中的至少一者被初始化,所述第一架构配置在一个架构中初始化且切换至用于处理的选定架构,所述第二架构配置在选定架构中进行初始化及处理。
执行引导序列,并且所述引导序列包括(例如)基于处理器的当前架构配置设定程序状态字,步骤1902。此外,执行一个或多个指令而不考虑处理器将基于第一架构配置还是第二架构配置执行初始化,步骤1904。一个或多个指令可包括准备进行模式切换,步骤1906,其中处理器准备执行切换操作而不考虑处理器的架构模式。举例而言,提供“设定架构”命令码至SIGP指令以执行切换操作,步骤1908。切换操作请求对用于处理器的架构模式的切换而不考虑处理器将在所述一个架构中还是所述选定架构中执行初始化。切换操作将基于处理器将执行初始化的架构是所述一个架构还是选定架构而以不同方式执行。举例而言,如果处理器处于所述一个架构中,则切换操作自一个架构切换至选定架构且控制实用工具的处理在选定架构中。然而,如果处理器已处于选定架构中,则切换操作请求自选定架构模式至选定架构模式的切换。此情况导致存储指示处理器当前处于选定架构模式的状态,但该状态对切换操作的发布者而言被视为可接受的。亦即,其不被视为错误。在执行切换操作后,在选定架构中使控制实用工具引导并且执行代码,步骤1910。
在本文所描述的流程中,可与指令的公共子集分开展示对模式切换操作的准备及SIGP指令。然而,它们可包括在公共子集中和/或与公共子集分离。
公用引导实用工具工具的多个方面可与一个或多个其他工具(包括例如CZAM工具及No-DAT工具)一起使用,CZAM工具及No-DAT工具分别描述于以下共同申请且共同转让的申请中:Michael K.Gschwind的“Architectural Mode Configuration”(IBM案号:POU920140021US1);及Gainey等人的“Managing Processing Associated with SelectedArchitectural Facilities”(IBM案号:POU920140020US1),以上申请中的每一者在此以全文引用的方式并入本文中。
参考图20,在一个实例中,计算机程序产品2000包括(例如)将计算机可读程序代码装置、逻辑和/或指令2004存储于其上的一个或多个非暂时性计算机可读存储介质2002,以提供及促进一个或多个优选实施例。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
除上述以外,可由供应客户环境的管理的服务提供商提供、供应、部署、管理、服务一个或多个方面等。举例而言,服务提供商可建立、维护、支持计算机代码和/或执行用于一个或多个客户的一个或多个方面的计算机基础结构等。举例而言,作为回报,服务提供商可在订阅和/或收费协议下自客户收取付款。另外或备选地,服务提供商可自广告内容销售至一个或多个第三方而收取付款。
在一个方面中,可部署一应用用于执行一个或多个优选实施例。作为一个实例,应用的部署包括提供可操作以执行一个或多个优选实施例的计算机基础结构。
作为另一方面,可部署计算基础结构,包括将计算机可读程序代码集成至计算系统中,其中程序代码结合计算系统能够执行一个或多个优选实施例。
作为又一方面,可提供一种用于集成计算基础结构的处理,其包括将计算机可读程序代码集成至计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个优选实施例。程序代码结合计算机系统能够执行一个或多个优选实施例。
尽管上文描述各种实施例,但其仅为实例。举例而言,其他架构的计算环境可用于结合及使用一个或多个优选实施例。此外,可使用不同指令、指令格式、指令字段和/或指令值。此外,可使用其他引导及重新引导序列。许多变化是可能的。
此外,其他类型的计算环境可有益且可被使用。作为实例,适合于存储和/或执行程序代码的数据处理系统为可使用的,其包括直接或经由系统总线间接耦接至存储器元件的至少两个处理器。存储器元件包括(例如)在程序代码的实际执行期间所使用的本地存储器、大容量存储装置及高速缓冲存储器,所述存储器元件对至少某程序代码提供暂时存储以便减少在执行期间必须自大容量存储装置取回程序代码的次数。
输入/输出或I/O设备(包括(但不限于)键盘、显示器、指点设备、DASD、磁带、CD、DVD、拇指驱动器(thumb drive)及其他存储介质等)可直接或经由中间I/O控制器耦接至所述系统。网络适配器亦可耦接至系统以使得数据处理系统能够经由中间专用或公共网络耦接至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器及以太网络卡仅为可用类型的网络适配器中的少数几种。
参考图21,描绘实施一个或多个优选实施例的主计算机系统5000的代表性组件。代表性主计算机5000包括与计算机存储器(亦即,中央存储装置)5002通信的一个或多个CPU 5001,以及至存储介质设备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位。指令将在二字节整体边界上。多数指令的存储操作数不具有边界对准要求。
在针对指令及数据操作数实施独立高速缓存的设备上,无论存储是否更改随后取回的指令,如果程序存储至随后取回指令的高速缓存线中,则可能经历显著延迟。
在一个实例中,可通过软件(有时被称作许可内码、固件、微码、毫码或微微码及类似者,以上中的任一者将与一个或多个优选实施例相一致)实施该实施例。参考图21,体现一个或多个方面的软件程序代码可由主机系统5000的处理器5001自长期存储介质设备5011(诸如CD-ROM驱动器或磁带驱动器或硬盘驱动器)存取。软件程序代码可体现于多种已知介质中的任一者上以与数据处理系统(诸如,磁盘、硬盘驱动器或CD-ROM)使用。代码可分布于此类介质上,或可自计算机存储器5002或一个计算机系统的存储装置经由至其他计算机系统的网络5010分发给用户,以供此类其他系统的用户使用。
软件程序代码包括操作系统,其控制各种计算机组件及一个或多个应用程序的功能及交互。在程序代码可用于由处理器5001进行处理的情况下,通常自存储介质设备5011将程序代码分页至相对较高速度的计算机存储装置5002。在存储器中、在物理介质上体现软件程序代码和/或经由网络分发软件程序代码的技术及方法是公知的且本文将不对其进行进一步论述。在被创建及存储于有形介质(包括(但不限于)电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带及其类似者)上时,程序代码常被称作“计算机程序产品”。计算机程序产品介质通常可由优选地在计算机系统中的处理电路读取以供处理电路执行。
图22说明其中可实施一个或多个优选实施例的代表性工作站或服务器硬件系统。图22的系统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可为与另一计算机的客户端/服务器配置中的客户端等。所有这些配置以及适当通信硬件及软件在本领域中是公知的。
图23说明其中可实施一个或多个优选实施例的数据处理网络5040。数据处理网络5040可包括多个个体网络,诸如无线网络及有线网络,以上中的每一者可包括多个个体工作站5041、5042、5043、5044。另外,如本领域技术人员将了解的,可包括一个或多个LAN,其中LAN可包括耦接至主机处理器的多个智能工作站。
仍参考图23,网络亦可包括大型计算机或服务器,诸如,网关计算机(客户端服务器5046)或应用服务器(可存取数据存储库且亦可直接自工作站5045存取的远程服务器5048)。网关计算机5046充当至每一个体网络的进入点。在将一个网络连接协议连接至另一者时,需要网关。网关5046可借助通信链路优选地耦接至另一网络(例如,因特网5047)。网关5046亦可使用通信链路直接耦接至一个或多个工作站5041、5042、5043、5044。网关计算机可利用可自国际商用机器公司获得的IBM Power Systems服务器及IBM System服务器中的一者来实现。System为国际商业机器公司在全世界各地的注册商标。
同时参考图22及图23,可体现一个或多个方面的软件编程码5031可由系统5020的处理器5026自诸如CD-ROM驱动器或硬盘驱动器的长期存储介质5027存取。软件编程码可体现于多种已知介质中的任一者上以与数据处理系统(诸如,磁盘、硬盘驱动器或CD-ROM)使用。所述代码可分布于此类介质上,或可自一个计算机系统的存储器或存储装置经由至其他计算机系统的网络分发给用户,以供此类其他系统的用户使用。
备选地,编程码可体现于存储器5025中且由处理器5026使用处理器总线存取。此类编程码包括操作系统,其控制各种计算机组件及一个或多个应用程序5032的功能及交互。在程序代码可用于由处理器5026进行处理的情况下,通常自存储介质5027将程序代码分页至高速存储器5025。在存储器中、在物理介质上体现软件编程码和/或经由网络分布软件程序代码的技术及方法是公知的且本文将不对其进行进一步论述。在被创建及存储于有形介质(包括(但不限于)电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带及其类似者)上时,程序代码常被称作“计算机程序产品”。计算机程序产品介质通常可由优选地在计算机系统中的处理电路读取以供处理电路执行。
可最容易用于处理器的高速缓存(通常比处理器的其他高速缓存更快及更小)为最低(L1或层级1)的高速缓存且主存储(主存储器)为最高层级高速缓存(如果存在3个层级,则为L3)。最低层级高速缓存常划分为保存待执行的机器指令的指令高速缓存(I-高速缓存)及保存数据操作数的数据高速缓存(D-高速缓存)。
参考图24,描绘处理器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。参考图25A,执行单元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设计用于标量运算而有些用于浮点运算。根据体系结构,数据可以是大端(Big Endian)(其中最低有效字节在最高字节地址处)或小端(其中最低有效字节在最低字节地址处)。IBM z/Architecture是大端。IBM Power ISA支持大端和小端执行模式两者。根据体系结构,带符号字段可以是符号以及1的补码或2的补码的量值。2的补码数是有利的,因为ALU不需要设计减法功能,原因是采用2的补码的负值或正值在ALU内仅需要加法。数字通常以速记法描述,例如其中一个12位字段定义一个4,096字节块的地址,并且通常被描述为4KB(千字节)块。
参考图25B,通常将用于执行分支指令的分支指令信息发送到分支单元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地址定义基寄存器及索引寄存器,以上两者加在一起提供存储器中的操作数的地址。除非另有指示,否则本文中的位置通常暗示主存储器(主存储装置)中的位置。
参考图25C,处理器使用加载/存储单元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(图24)提供用于附接至周边设备(包括(例如)磁带、光盘、打印机、显示器及网络)的构件给处理器。I/O单元通常由软件驱动器呈现至计算机程序。在大型计算机(诸如来自的System z)中,通道适配器及开放系统适配器为在操作系统与周边设备之间提供通信的大型计算机的I/O单元。在RISC服务器(诸如,来自的PowerSystems)中,专有适配器及开放系统适配器为在操作系统与周边设备之间提供通信的I/O单元。
此外,其他类型的计算环境可受益于一个或多个方面。作为一实例,环境可包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括(例如)指令执行、架构化功能(诸如,地址转换)及架构化寄存器)或其子集被仿真(例如,在具有处理器及存储器的本机计算机系统上)。在此类环境中,仿真器的一个或多个仿真功能能够实施一个或多个优选实施例,即使执行仿真器的计算机可能具有不同于正被仿真的能力的架构也是如此。作为一个实例,在仿真模式中,对特定指令或正被仿真的操作进行解码,并且构建适当仿真功能以实施个体指令或操作。
在一仿真环境中,主计算机包括(例如):存储器,其存储指令及数据;指令取回单元,其自存储器取回指令,并且可选地,提供所取回的指令的本地缓冲;指令解码单元,其接收所取回的指令且判定已取回指令的类型;及指令执行单元,其执行所述指令。执行可包括将数据自存储器加载至寄存器中;将数据自寄存器存储回至存储器;或执行某一类型的算术或逻辑运算(如由解码单元所判定的)。在一个实例中,在软件中实施每一单元。举例而言,由所述单元执行的操作被实施为仿真器软件内的一个或多个子例程。
更具体地说,在大型计算机中,经常由编程人员(通常为当今的“C”编程人员)借助编译器应用使用架构化机器指令。可本机地在Power Systems或z/Architecture服务器中或替代地在执行其他架构的机器中执行存储于存储介质中的这些指令。这些指令可在现有及在未来大型计算机服务器、Power Systems服务器中及在的其他机器(例如,System x服务器)上进行仿真。可在使用由AMD及其他公司制造的硬件的多种机器上运行Linux的机器中执行这些指令。除了在Power架构或z/Architecture下的该硬件上执行以外,可使用以及使用由Hercules、UMX或FSI(Fundamental Software公司)的仿真的机器,其中总体上执行处于仿真模式中。在仿真模式中,由本机处理器执行仿真软件以仿真所仿真处理器的架构。Linux是Linus Torvalds在美国和/或其他国家的注册商标。
本机处理器通常执行包括固件或本机操作系统的仿真软件,以执行所仿真处理器的仿真。仿真软件负责取回及执行所仿真的处理架构的指令。仿真软件维护所仿真的程序计数器以保持对指令边界的追踪。仿真软件可一次取回一个或多个所仿真的机器指令且将所述一个或多个所仿真的机器指令转换为一组对应的本机机器指令以供本机处理器执行。这些转换后的指令可被缓存,使得可实现更快的转换。尽管如此,仿真软件用于维持所仿真的处理器架构的架构规则以确保被编写以用于所仿真处理器的操作系统及应用正确地进行操作。此外,仿真软件用于提供由所仿真的处理器架构识别的资源,其包括(但不限于)控制寄存器、通用寄存器、浮点寄存器、包括(例如)段表及页表的动态地址转换功能、中断机制、上下文切换机制、当日时间(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号,以上中的每一者在此以全文引用的方式并入本文中。
在图26中,提供所仿真主计算机系统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):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图27,其中显示了云计算节点的一个例子。云计算节点6010仅仅是适合的云计算节点的一个示例,不应对本发明优选实施例的功能和使用范围带来任何限制。总之,云计算节点6010能够被用来实现和/或执行以上所述的任何功能。
云计算节点6010具有计算机系统/服务器6012,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器6012一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述系统或设备中的任一者的分布式云计算技术环境,等等。
计算机系统/服务器6012可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器6012可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图27所示,云计算节点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系统、磁带驱动器以及数据备份存储系统等。
现在参考图28,其中显示了示例性的云计算环境6050。如图所示,云计算环境6050包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点6010,本地计算设备例如可以是个人数字助理(PDA)或移动电话6054A,台式电脑6054B、笔记本电脑6054C和/或汽车计算机系统6054N。节点6010可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点6010进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境6050提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图28显示的各类计算设备6054A-N仅仅是示意性的,云计算节点6010以及云计算环境6050可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图29,其中显示了云计算环境6050(图28)提供的一组功能抽象层。首先应当理解,图29所示的组件、层以及功能都仅仅是示意性的,本发明的优选实施例不限于此。如图29所示,提供下列层和对应功能:
硬件和软件层6060包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层6062提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个实例中,管理层6064可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层6066提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;以及事务处理。
本文中所用的术语,仅仅是为了描述特定的优选实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另行指出。还要知道,“包含”和/或“包括”在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对一个或多个优选实施例的描述其目的在于示意和描述,并非是穷尽性的,也并非是要将本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,显然可以作出许多修改和变型。对实施例的选择和描述,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种优选实施例。
Claims (18)
1.一种用于在计算环境中初始化控制实用工具的方法,所述方法包括:
由处理器执行引导序列以便以基于选定架构的选定架构模式引导所述控制实用工具,所述控制实用工具被编写以用于所述选定架构且被配置为以第一架构配置或第二架构配置中的至少一者被初始化,所述第一架构配置在一个架构中初始化且切换至用于处理的所述选定架构,所述第二架构配置在所述选定架构中进行初始化及处理,并且其中执行所述引导序列包括:
执行一个或多个指令而不考虑所述处理器是将基于所述第一架构配置还是基于所述第二架构配置执行初始化,所述一个或多个指令对所述一个架构及所述选定架构是公用的,原因在于所述一个或多个指令被定义在所述一个架构及所述选定架构中,并且所述执行包括执行切换操作以请求对所述处理器的架构模式的切换而不考虑所述处理器是将在所述一个架构还是在所述选定架构中执行初始化,其中所述切换操作基于所述处理器将执行初始化的架构是所述一个架构还是所述选定架构而以不同方式执行,并且基于执行所述切换操作,以所述选定架构模式引导所述控制实用工具。
2.如权利要求1所述的方法,其中所述控制实用工具包括操作系统。
3.如权利要求1或2所述的方法,其中执行所述引导序列包括:
基于所述处理器是将在所述一个架构还是所述选定架构中执行初始化,以所述一个架构或所述选定架构的格式设定程序状态字;及
准备模式切换以执行所述切换操作。
4.如权利要求1或2所述的方法,其中执行所述切换操作包括:自所述一个架构切换至所述选定架构,其中所述控制实用工具的处理是在所述选定架构中。
5.如权利要求1或2所述的方法,其中执行所述切换操作包括向所述选定架构请求自所述选定架构切换,并且其中执行所述切换操作导致存储指示所述处理器当前处于所述选定架构模式中的状态,所述状态对所述切换操作的发布者而言被视为可接受的。
6.如权利要求5所述的方法,其中所述切换操作包括信号处理器指令。
7.如权利要求1或2所述的方法,其中所述一个架构使用31位寻址及32位通用寄存器,并且所述选定架构使用64位寻址及64位通用寄存器。
8.如权利要求1或2所述的方法,其中执行所述引导序列包括:判定所述控制实用工具是否被编写以用于所述选定架构;及基于所述控制实用工具被编写以用于所述选定架构,继续执行所述引导序列。
9.如权利要求1或2所述的方法,进一步包括:执行重设以重新引导所述控制实用工具。
10.如权利要求9所述的方法,其中执行所述重设包括:设定程序状态字以反映所述重设。
11.一种用于在计算环境中初始化控制实用工具的计算机系统,所述计算机系统包括:
存储器;及
处理器,其与所述存储器通信,其中所述计算机系统被配置为执行一种方法,所述方法包括:
由处理器执行引导序列以便以基于选定架构的选定架构模式引导所述控制实用工具,所述控制实用工具被编写以用于所述选定架构且被配置为以第一架构配置或第二架构配置中的至少一者被初始化,所述第一架构配置在一个架构中初始化且切换至用于处理的所述选定架构,所述第二架构配置在所述选定架构中进行初始化及处理,并且其中执行所述引导序列包括:
执行一个或多个指令而不考虑所述处理器是将基于所述第一架构配置还是基于所述第二架构配置执行初始化,所述一个或多个指令对所述一个架构及所述选定架构是公用的,原因在于所述一个或多个指令被定义在所述一个架构及所述选定架构中,并且所述执行包括执行切换操作以请求对所述处理器的架构模式的切换而不考虑所述处理器是将在所述一个架构还是在所述选定架构中执行初始化,其中所述切换操作基于所述处理器将执行初始化的架构是所述一个架构还是所述选定架构而以不同方式执行,并且基于执行所述切换操作,以所述选定架构模式引导所述控制实用工具。
12.如权利要求11所述的计算机系统,其中执行所述引导序列包括:
基于所述处理器是将在所述一个架构还是所述选定架构中执行初始化,以所述一个架构或所述选定架构的格式设定程序状态字;及
准备模式切换以执行所述切换操作。
13.如权利要求11或12所述的计算机系统,其中执行所述切换操作包括:自所述一个架构切换至所述选定架构,其中所述控制实用工具的处理是在所述选定架构中。
14.如权利要求11或12所述的计算机系统,其中执行所述切换操作包括向所述选定架构请求自所述选定架构切换,并且其中执行所述切换操作导致存储指示所述处理器当前处于所述选定架构模式中的状态,所述状态对所述切换操作的发布者而言被视为可接受的。
15.如权利要求11或12所述的计算机系统,其中所述一个架构使用31位寻址及32位通用寄存器,并且所述选定架构使用64位寻址及64位通用寄存器。
16.如权利要求11或12所述的计算机系统,其中执行所述引导序列包括:判定所述控制实用工具是否被编写以用于所述选定架构;及基于所述控制实用工具被编写以用于所述选定架构,继续执行所述引导序列。
17.如权利要求11或12所述的计算机系统,进一步包括执行重设以重新引导所述控制实用工具。
18.一种用于在计算环境中初始化控制实用工具的计算机可读存储介质,其上存储有可由处理电路读取并由所述处理电路执行以执行如权利要求1至10中的任一权利要求所述的方法的指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/217,800 | 2014-03-18 | ||
US14/217,800 US9588774B2 (en) | 2014-03-18 | 2014-03-18 | Common boot sequence for control utility able to be initialized in multiple architectures |
US14/554,313 US9600292B2 (en) | 2014-03-18 | 2014-11-26 | Common boot sequence for control utility able to be initialized in multiple architectures |
US14/554,313 | 2014-11-26 | ||
PCT/EP2015/053638 WO2015139917A1 (en) | 2014-03-18 | 2015-02-20 | Common boot sequence for control utility able to be initialized in multiple architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106133682A CN106133682A (zh) | 2016-11-16 |
CN106133682B true CN106133682B (zh) | 2019-04-09 |
Family
ID=54142192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580014476.3A Active CN106133682B (zh) | 2014-03-18 | 2015-02-20 | 用于能在多种架构中初始化的控制实用工具的公用引导序列 |
Country Status (22)
Country | Link |
---|---|
US (2) | US9588774B2 (zh) |
EP (1) | EP3120239B1 (zh) |
JP (1) | JP6437008B2 (zh) |
KR (1) | KR101918831B1 (zh) |
CN (1) | CN106133682B (zh) |
AU (1) | AU2015233763B2 (zh) |
BR (1) | BR112016021599B1 (zh) |
CA (1) | CA2940867C (zh) |
DK (1) | DK3120239T3 (zh) |
ES (1) | ES2746479T3 (zh) |
HU (1) | HUE045068T2 (zh) |
IL (1) | IL247819B (zh) |
LT (1) | LT3120239T (zh) |
MX (1) | MX2016011922A (zh) |
PL (1) | PL3120239T3 (zh) |
PT (1) | PT3120239T (zh) |
RU (1) | RU2665238C2 (zh) |
SG (1) | SG11201606096VA (zh) |
SI (1) | SI3120239T1 (zh) |
TW (1) | TWI639090B (zh) |
WO (1) | WO2015139917A1 (zh) |
ZA (1) | ZA201605468B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US10234921B2 (en) * | 2016-03-04 | 2019-03-19 | Schneider Electric USA, Inc. | Systems and methods for operating a virtual power environment |
US10282327B2 (en) * | 2017-01-19 | 2019-05-07 | International Business Machines Corporation | Test pending external interruption instruction |
US10423191B2 (en) | 2017-01-19 | 2019-09-24 | International Business Machines Corporation | Clock comparator sign control |
US10705825B2 (en) | 2018-09-20 | 2020-07-07 | Hewlett Packard Enterprise Development Lp | Creation of images |
US11188497B2 (en) | 2018-11-21 | 2021-11-30 | SambaNova Systems, Inc. | Configuration unload of a reconfigurable data processor |
TWI766211B (zh) * | 2018-11-21 | 2022-06-01 | 美商聖巴諾瓦系統公司 | 可重組態資料處理器的組態加載和卸載 |
US10831507B2 (en) | 2018-11-21 | 2020-11-10 | SambaNova Systems, Inc. | Configuration load of a reconfigurable data processor |
CN110109707B (zh) * | 2019-04-10 | 2022-05-31 | 广州视源电子科技股份有限公司 | 终端启动方法、装置及终端 |
US11386038B2 (en) | 2019-05-09 | 2022-07-12 | SambaNova Systems, Inc. | Control flow barrier and reconfigurable data processor |
WO2020236133A1 (en) * | 2019-05-17 | 2020-11-26 | Hewlett-Packard Development Company, L.P. | Disabling software persistence |
US11055141B2 (en) | 2019-07-08 | 2021-07-06 | SambaNova Systems, Inc. | Quiesce reconfigurable data processor |
US11500653B2 (en) | 2020-02-05 | 2022-11-15 | International Business Machines Corporation | Signal handling between programs associated with different addressing modes |
US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
CN112591152B (zh) * | 2020-12-01 | 2023-01-31 | 上海航天控制技术研究所 | 空间站太阳翼控制系统 |
US11556494B1 (en) | 2021-07-16 | 2023-01-17 | SambaNova Systems, Inc. | Defect repair for a reconfigurable data processor for homogeneous subarrays |
US11409540B1 (en) | 2021-07-16 | 2022-08-09 | SambaNova Systems, Inc. | Routing circuits for defect repair for a reconfigurable data processor |
US11327771B1 (en) | 2021-07-16 | 2022-05-10 | SambaNova Systems, Inc. | Defect repair circuits for a reconfigurable data processor |
US12118387B2 (en) | 2021-08-05 | 2024-10-15 | International Business Machines Corporation | Query and update of processor boost information |
US11487694B1 (en) | 2021-12-17 | 2022-11-01 | SambaNova Systems, Inc. | Hot-plug events in a pool of reconfigurable data flow resources |
US20240320341A1 (en) * | 2023-03-23 | 2024-09-26 | Intel Corporation | Apparatus and method for booting an application processor |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02135528U (zh) * | 1989-04-13 | 1990-11-09 | ||
JPH06332803A (ja) * | 1993-05-25 | 1994-12-02 | Hitachi Ltd | 仮想計算機システムにおけるtlb制御方法 |
US6496971B1 (en) * | 2000-02-07 | 2002-12-17 | Xilinx, Inc. | Supporting multiple FPGA configuration modes using dedicated on-chip processor |
JP2006018819A (ja) * | 2004-06-30 | 2006-01-19 | Microsoft Corp | 64ビットx86プロセッサ上でレガシ32ビットx86仮想マシンを実行するためのシステムおよび方法 |
JP2007207074A (ja) * | 2006-02-03 | 2007-08-16 | Ricoh Co Ltd | オペレーションシステム、スレッド制御機構、及び情報処理装置 |
US7596705B2 (en) * | 2005-06-16 | 2009-09-29 | Lg Electronics Inc. | Automatically controlling processor mode of multi-core processor |
US7821849B2 (en) * | 2004-05-18 | 2010-10-26 | Infineon Technologies Ag | Configurable embedded processor |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6629894A (en) | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
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 |
US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | 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 |
US7406682B2 (en) | 2001-03-26 | 2008-07-29 | Emc Corporation | Translator-compiler for converting legacy management software |
US7234037B2 (en) | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
GB0407384D0 (en) | 2004-03-31 | 2004-05-05 | Ignios Ltd | Resource management in a multicore processor |
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 |
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 |
US7409537B2 (en) * | 2005-10-06 | 2008-08-05 | Microsoft Corporation | Fast booting an operating system from an off state |
WO2007122640A2 (en) | 2006-04-26 | 2007-11-01 | Tata Consultancy Services | A system and method for automated re-architectureing of legacy systems using object-oriented language |
US8117614B2 (en) | 2006-05-19 | 2012-02-14 | International Business Machines Corporation | Extract CPU time facility |
US20080093277A1 (en) * | 2006-06-13 | 2008-04-24 | John Armour | Cadence detection in a sequence of video fields |
WO2008083277A1 (en) | 2006-12-31 | 2008-07-10 | San Disk Corporation | Portable multi-platform booting systems and architectures |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US7734900B2 (en) | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
US8321861B2 (en) | 2008-02-20 | 2012-11-27 | Arm Limited | Non-native program execution across multiple execution environments |
US8176280B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
WO2013098643A2 (en) | 2011-12-16 | 2013-07-04 | Hyperion Core Inc. | Advanced processor architecture |
US8301865B2 (en) | 2009-06-29 | 2012-10-30 | Oracle America, Inc. | System and method to manage address translation requests |
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 |
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 |
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 | 한국전자통신연구원 | 정보처리 시스템에서 운영체제 전환방법 |
TW201321949A (zh) | 2011-11-23 | 2013-06-01 | Inventec Corp | 電源開機控制方法及其系統 |
US9298469B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Management of multiple nested transactions |
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 |
-
2014
- 2014-03-18 US US14/217,800 patent/US9588774B2/en active Active
- 2014-11-26 US US14/554,313 patent/US9600292B2/en active Active
-
2015
- 2015-02-20 EP EP15705333.1A patent/EP3120239B1/en active Active
- 2015-02-20 PT PT157053331T patent/PT3120239T/pt unknown
- 2015-02-20 CA CA2940867A patent/CA2940867C/en active Active
- 2015-02-20 LT LTEP15705333.1T patent/LT3120239T/lt unknown
- 2015-02-20 ES ES15705333T patent/ES2746479T3/es active Active
- 2015-02-20 SG SG11201606096VA patent/SG11201606096VA/en unknown
- 2015-02-20 JP JP2016557115A patent/JP6437008B2/ja active Active
- 2015-02-20 AU AU2015233763A patent/AU2015233763B2/en active Active
- 2015-02-20 MX MX2016011922A patent/MX2016011922A/es unknown
- 2015-02-20 RU RU2016126976A patent/RU2665238C2/ru active
- 2015-02-20 SI SI201530886T patent/SI3120239T1/sl unknown
- 2015-02-20 DK DK15705333.1T patent/DK3120239T3/da active
- 2015-02-20 HU HUE15705333A patent/HUE045068T2/hu unknown
- 2015-02-20 BR BR112016021599-0A patent/BR112016021599B1/pt active IP Right Grant
- 2015-02-20 PL PL15705333T patent/PL3120239T3/pl unknown
- 2015-02-20 CN CN201580014476.3A patent/CN106133682B/zh active Active
- 2015-02-20 KR KR1020167026898A patent/KR101918831B1/ko active IP Right Grant
- 2015-02-20 WO PCT/EP2015/053638 patent/WO2015139917A1/en active Application Filing
- 2015-03-17 TW TW104108516A patent/TWI639090B/zh active
-
2016
- 2016-08-05 ZA ZA2016/05468A patent/ZA201605468B/en unknown
- 2016-09-14 IL IL247819A patent/IL247819B/en active IP Right Grant
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02135528U (zh) * | 1989-04-13 | 1990-11-09 | ||
JPH06332803A (ja) * | 1993-05-25 | 1994-12-02 | Hitachi Ltd | 仮想計算機システムにおけるtlb制御方法 |
US6496971B1 (en) * | 2000-02-07 | 2002-12-17 | Xilinx, Inc. | Supporting multiple FPGA configuration modes using dedicated on-chip processor |
US7821849B2 (en) * | 2004-05-18 | 2010-10-26 | Infineon Technologies Ag | Configurable embedded processor |
JP2006018819A (ja) * | 2004-06-30 | 2006-01-19 | Microsoft Corp | 64ビットx86プロセッサ上でレガシ32ビットx86仮想マシンを実行するためのシステムおよび方法 |
US7596705B2 (en) * | 2005-06-16 | 2009-09-29 | Lg Electronics Inc. | Automatically controlling processor mode of multi-core processor |
JP2007207074A (ja) * | 2006-02-03 | 2007-08-16 | Ricoh Co Ltd | オペレーションシステム、スレッド制御機構、及び情報処理装置 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106133682B (zh) | 用于能在多种架构中初始化的控制实用工具的公用引导序列 | |
CN106133683B (zh) | 计算系统中的架构模式配置 | |
CN106104478B (zh) | 条件事务和指令 | |
CN106133680B (zh) | 在计算环境中执行机器指令的计算机系统和方法 | |
CN106133687A (zh) | 管理与选定架构工具相关联的处理 | |
CN106462505B (zh) | 同步计算环境中对状态指示符的更新 | |
CN104364772B (zh) | 控制一计算环境中的事务执行的方法及系统 | |
CN104350468B (zh) | 非事务储存指令 | |
US9870210B2 (en) | Partition mobility for partitions with extended code | |
CN104412232B (zh) | 事务处理方法、系统、介质 | |
CN104335181B (zh) | 事务诊断区块 | |
CN104350474B (zh) | 用于控制计算环境中的事务的执行的装置、系统和方法 | |
CN104380246B (zh) | 用于管理计算环境中的中断的方法、系统及介质 | |
CN105593807B (zh) | 跨群组界限的指令群组最佳化 | |
CN104054054B (zh) | 用于促进计算环境中的处理的方法、系统及存储介质 | |
CN108701050A (zh) | 事务的优先级 | |
CN104335184A (zh) | 事务执行分支指示 | |
CN102906708A (zh) | 响应于适配器事件采取的动作的操作系统通知 | |
CN110235102A (zh) | 测试待处理外部中断指令 | |
US10901736B2 (en) | Conditional instruction end operation | |
CN103562864B (zh) | 执行开始操作员消息命令 | |
CN109643293A (zh) | 检测总线上锁条件并且避免总线锁 | |
CN104054052B (zh) | 由一个程序向另一个程序提供对警告追踪设施的存取 | |
CN103597462B (zh) | 发送操作员消息命令到耦合设施 | |
CN107636624A (zh) | 没有使用的特殊指令的垃圾收集 |
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 |