CN117355824A - 重置动态地址转换保护指令 - Google Patents

重置动态地址转换保护指令 Download PDF

Info

Publication number
CN117355824A
CN117355824A CN202280035564.1A CN202280035564A CN117355824A CN 117355824 A CN117355824 A CN 117355824A CN 202280035564 A CN202280035564 A CN 202280035564A CN 117355824 A CN117355824 A CN 117355824A
Authority
CN
China
Prior art keywords
protection
address translation
processor
translation
processors
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.)
Pending
Application number
CN202280035564.1A
Other languages
English (en)
Inventor
B·贾梅
T·什莱格尔
C·博恩特雷格
D·奥西塞克
L·海勒
U·格特纳
C·约斯特
E·特佐罗塔托斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN117355824A publication Critical patent/CN117355824A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

提供在被执行时执行重置地址转换保护操作的指令。执行该指令包括:由处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置。基于确定地址转换保护位将被重置,执行该指令包括:重置地址转换保护位以去激活对存储块的写保护。重置不等待计算环境的一个或多个其它处理器的动作。

Description

重置动态地址转换保护指令
背景技术
一个或多个方面一般涉及促进计算环境内的处理,尤其涉及改进这样的处理。
计算机架构通常为操作系统(OS)程序提供一种机制,以激活和去激活对存储块的写保护。在一个或多个实施例中,在这种情况下由操作系统提供的存储器管理可以包括事件序列,其中包括操作系统激活对特定存储块的写保护,以及应用程序尝试对该特定存储块进行写,使得处理器或中央处理单元(CPU)阻止写并且向操作系统通知所尝试的写。操作系统通过执行适当的存储器管理过程并去激活对该特定存储块的写保护来响应。应用程序重复尝试写入特定存储块,并且现在被允许执行操作。
当操作系统改变对存储块的写许可时,经由广播操作通知计算环境中的所有处理器,并且每个处理器执行动作以确保在本地观察到改变。在计算环境中的所有处理器之间所需的广播和串行化过程被称为停顿(quiescing)操作。作为停顿操作的一部分,每个处理器必须到达可中断点,执行本地所需的任何动作(例如,移除任何现在过时的转换后备缓冲区(TLB)数据)以保证改变是可观察的,并且用它已经执行此操作来响应发起处理器。可能依赖于更新后的许可的任何指令处理被挂起,直到配置中的所有处理器已经指示它们的响应并且发起者已经对指定存储块的写许可进行了全系统更新之后为止。
所描述的事件序列可以在频繁的存储器管理操作(诸如写时拷贝和改变跟踪)期间发生。计算环境中的处理器越多,执行停顿操作所花费的时间就越长。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品,克服了现有技术的某些缺点,并且提供了附加的优点。所述计算机程序产品包括至少一个计算机可读存储介质,其存储程序指令。所述程序指令能够由处理器读取以使得所述处理器执行一种方法,所述方法包括执行用于执行重置地址转换保护操作的指令。执行所述指令包括:由所述处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置;以及基于确定,重置所述地址转换保护位以去激活对所述存储块的写保护。所述重置不等待所述计算环境的一个或多个其他处理器的动作。通过在不等待计算环境的其它处理器的动作的情况下进行重置,使用所述指令增强了性能。
在一个或多个实施例中,执行所述指令包括:基于重置所述地址转换保护位以去激活对所述存储块的写保护不需要所述计算环境的所述一个或多个其他处理器的停顿操作,结束所述指令的执行。注意,在此上下文中的停顿操作通常需要计算环境中的所有处理器之间的串行化。由于避免了停顿操作,所以不需要处理器之间的串行化以便使用该指令去激活对存储块的写保护。这导致计算环境的其它处理器的指令处理的挂起减少,从而提高性能。此外,它减少了系统中对停顿串行化机制的争用。该指令向操作系统提供了去激活对存储块的写保护而不需要计算环境的所有处理器之间的串行化以响应该改变的选项。此外,用于执行重置地址转换保护操作的指令是执行确定和重置操作的单个指令,这提高了性能,并且减少了资源的使用。通过提供单个指令来执行确定和重置操作,能够比使用软件范例更有效地执行某些任务。确定和重置操作被执行得更快,减少了执行时间,并提高了处理器和整体系统性能。
在一个实例中,执行所述指令进一步包括:清除所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目。在另一实例中,执行所述指令进一步包括:重置所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目中的保护指示。有利地,处理器可以简单地重置条目中的保护指示,同时保留条目的剩余部分完整,而不是清除转换后备缓冲区条目。这允许写入继续完成,而不需要重新转换地址以重构所需的转换后备缓冲区条目。
在一个或多个实现中,执行所述指令进一步包括:向所述计算环境的一个或多个其他处理器广播信号以清除或修改所述一个或多个其他处理器中与所述指定转换表条目相关联的转换后备缓冲区条目。在一个示例中,执行所述指令进一步包括:测试与所述存储块相关联的所述指定转换表条目中的所述地址转换保护位,其中,所述广播至少部分基于所述测试的结果。通过使用重置地址转换保护指令来执行确定、重置和广播操作,提高了性能,并且减少了资源的使用。
在一个或多个实施例中,所述计算环境的所述一个或多个其他处理器中的另一个处理器尝试对所述存储块的写访问,而所述另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件。基于所述地址转换保护异常条件,所述另一个处理器检查所述地址转换保护位以识别所述地址转换保护异常条件是过指示,并且基于识别所述地址转换保护异常条件是所述过指示的检查,对所述存储块的写访问被允许。检查地址转换保护位以识别地址转换保护异常条件是过指示通过允许访问并避免对操作系统的程序中断处理程序的需要,有利地提高了这种情况下的处理性能。
在一个或多个实施例中,所述计算环境的所述一个或多个其他处理器中的另一个处理器尝试对所述存储块的写访问,而所述另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件。基于所述地址转换保护异常条件,所述另一个处理器检查所述地址转换保护位以识别所述地址转换保护异常条件是过指示,并且基于识别所述地址转换保护异常条件是所述过指示的检查,所述另一个处理器清除或修改其相关联的包含被过指示的地址转换保护位的转换后备缓冲区条目。有利地,检查地址转换保护位以识别地址转换保护异常条件是过指示通过允许写访问继续进行,改进了这种情况下的处理性能。
在一个或多个实施例中,所述一个或多个其他处理器中的另一个处理器尝试对所述存储块的写访问,而所述另一个处理器的相关联的转换后备缓冲区条目没有被清除,从而导致地址转换保护异常条件,以及基于所述地址转换保护异常条件,向所述计算环境的操作系统报告所述异常条件。基于报告所述异常条件,所述操作系统向所述另一个处理器发出在所述一个或多个其他处理器中的所述另一个处理器处执行所述重置地址转换保护操作的指令。有利地,用于执行重置地址转换保护操作的指令为操作系统提供了选项,以便于响应于该改变而去激活对存储块的写保护,而不需要计算环境的所有处理器之间的停顿操作。
本文还描述并要求保护与一个或多个方面相关的计算机系统和计算机实现的方法。此外,本文还描述并可以要求保护与一个或多个方面相关的服务。
通过本文所述的技术实现了额外的特征和优点。其它实施例和方面在本文中详细描述,且被视为所要求保护的方面的一部分。
附图说明
在说明书结尾处的权利要求中作为示例特别指出并清楚地要求保护一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述内容和目的、特征以及优点将变得显而易见,在附图中:
图1A描绘了用于结合和使用本发明的一个或多个方面的计算环境的一个示例;
图1B描绘了根据本发明的一个或多个方面的图1A的处理器的进一步细节;
图2A描绘了根据本发明的一个或多个方面的地址转换以及要被重置的地址转换保护位的一个示例;
图2B描绘了根据本发明的一个或多个方面的地址转换以及要被重置的地址转换保护位的另一个示例;
图2C描绘了根据本发明的一个或多个方面的地址转换后备缓冲区的一个实施例;
图3A-3E描绘了根据本发明的一个或多个方面的重置动态地址转换保护指令的格式的一个示例;
图4A描绘了根据本发明的一个或多个方面的与重置动态地址转换保护指令的执行相关联的处理的一个实施例;
图4B描绘了根据本发明的一个或多个方面的与重置动态地址转换保护指令的执行相关联的处理的另一个实施例;
图5A-5C描绘了说明本发明的一个或多个实施例的某些方面的工作流程的一个实施例;
图6A-6B描绘了根据本发明的一个或多个方面的促进计算环境内的处理的一个示例;
图7A描绘了结合和使用本发明的一个或多个方面的计算环境的另一个示例;
图7B描绘了根据本发明的一个或多个方面的用于图7A的计算环境的存储器的进一步细节的一个示例;
图7C描绘了根据本发明的一个或多个方面的用于图7A的计算环境的存储器的进一步细节的另一个示例;
图8A描绘了结合和使用本发明的一个或多个方面的计算环境的又一个示例;
图8B描绘了根据本发明一个或多个方面的图8A的存储器的进一步细节;
图9描绘了根据本发明的一个或多个方面的云计算环境的一个实施例;以及
图10描绘了根据本发明的一个或多个方面的抽象模型层的一个示例。
具体实施方式
根据本发明的一个方面,提供了一种能力以促进计算环境中的处理。作为一个示例,提供单个指令(例如,中央处理单元/软件接口处的单个架构的机器指令)以执行重置操作。该指令(在此称为重置动态地址转换保护指令,或重置地址转换保护指令)是通用处理器指令集架构(ISA)的一部分,其由处理器(例如通用处理器)上的程序分派。(在另一个示例中,该指令可以是专用处理器(例如被配置用于某些功能的协处理器)的一部分)
作为执行单个指令(例如,重置动态地址转换保护指令)的一部分,执行各种操作,包括:由处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置,以及基于该确定,重置地址转换保护位以去激活对存储块的写保护,其中,重置操作和指令执行独立于计算环境的一个或多个其他处理器的任何相关联的操作,诸如不存在或不需要计算环境的一个或多个其他处理器的停顿操作以在处理器中重置对存储块的写保护。这些操作中的每一个都作为执行单个指令的一部分来执行,从而提高了系统性能,并减少了系统资源的使用。
如上所述,计算环境或计算机架构通常为操作系统(OS)程序提供进程或事件序列,以选择性地激活和/或去激活对一个或多个存储块的写保护。由操作系统提供的存储器管理通常包括以下事件序列:1)操作系统激活对特定存储块的写保护;2)应用程序尝试写入该特定存储块,使得处理器或中央处理单元(CPU)向OS通知所尝试的写入访问;3)OS执行适当的存储器管理反应处理,并且去激活对该特定存储块的写保护;以及4)应用程序重复尝试写入特定存储块,并且现在被允许执行该操作。
当OS改变对存储块的写许可时,计算配置或环境中的所有处理器通常都被通知,并执行相关联的动作以确保该改变被遵守。这种改变所需的广播和串行化过程被称为计算环境中的处理器之间的停顿操作。作为停顿操作的一部分,在每个处理器对该改变作出反应之后,每个处理器挂起指令处理,直到计算配置中的所有处理器都已经指示反应已经被完成之后为止。
所描述的事件序列发生在频繁的存储器管理操作(例如写时拷贝和变化跟踪)期间。此外,计算环境中的处理器或CPU越多,执行停顿操作所花费的时间就越长。因此,消除停顿操作减少了计算配置对写许可的该公共改变作出反应所需的时间量,提高了这些操作的性能,并由此促进计算环境内的处理。此外,由于停顿硬件的串行化要求,这些资源在系统中是受限的。在这种情况下消除对停顿的需要也减少了该硬件所经历的系统范围的约束。
有利地,本文公开的重置地址转换保护指令为OS提供了停用对存储块的写保护的选项,而不需要处理器或CPU之间的串行化作为对改变的计算配置响应的一部分。该改变被应用于执行该指令以去激活写保护的处理器(即,基于先前(启用保护的)表条目的信息被从该处理器的转换后备缓冲区(TLB)中清除),以及该改变可以或可以不被应用于计算配置中的一个或多个其他处理器,诸如所有其他处理器。当OS选择使用重置地址转换保护指令操作时,OS知道另一个处理器可能继续报告针对特定存储块的写保护违反(即,地址转换保护异常条件)的可能性。在这种情况下,OS识别出过指示,以及可以去激活对指示违反的处理器上的存储块的写保护(通过清除或修改该(第二)处理器的TLB)。在一个或多个实施例中,例如,当计算配置中的其它处理器不太可能也正在访问特定存储块时,OS可以使用本文提供的重置地址转换保护指令。由于在执行重置地址转换保护操作时不需要处理器之间的串行化,所以减少了计算环境中的其它处理器对指令处理的挂起。结果,性能得到改进。
参考图1A描述了用于结合和使用本发明的一个或多个方面的计算环境的一个实施例。作为示例,计算环境基于由纽约阿蒙克的国际商业机器公司提供的指令集架构。在题为“z/Architecture Principles of Operation”的出版物(IBM出版物编号SA22-7832-12,第十三版,2019年9月,其全部内容通过引用并入本文)中描述了z/Architecture指令集架构的一个实施例。然而,z/Architecture指令集架构仅是一个示例架构;国际商业机器公司和/或其他实体的其他架构和/或其他类型的计算环境可以包括和/或使用本发明的一个或多个方面。z/Architecture和IBM是国际商业机器公司在至少一个司法管辖区的商标或注册商标。
参考图1A,计算环境100包括例如以通用计算设备的形式示出的计算机系统102。计算机系统102可以包括但不限于经由一个或多个总线和/或其他连接110彼此耦合的一个或多个处理器或处理单元104(例如,中央处理单元(CPU))、存储器106(也称为系统存储器、主存储器、主存装置、中央存储装置或存储装置)以及一个或多个输入/输出(I/O)接口108。
存储器106可以包括例如高速缓存112(诸如共享高速缓存),其可以耦合到处理器104的本地高速缓存114。此外,存储器106可以包括一个或多个程序或应用116以及至少一个操作系统118。示例操作系统包括由纽约阿蒙克的国际商业机器公司提供的操作系统。z/OS是国际商业机器公司在至少一个司法管辖区的商标或注册商标。也可使用由国际商业机器公司和/或其它实体提供的其它操作系统。存储器106还可以包括一个或多个计算机可读程序指令120,其可以被配置为执行本发明的各方面的实施例的功能。
计算机系统102可以经由例如I/O接口108(例如,外围组件互连(PCI)和/或其它I/O接口连接)与一个或多个外部设备130(例如,用户终端、磁带驱动器、指点设备、显示器和一个或多个数据存储设备134等)通信。数据存储设备134可以存储一个或多个程序136、一个或多个计算机可读程序指令138和/或数据等。计算机可读程序指令可以被配置为执行本发明的各方面的实施例的功能。
计算机系统102还可以经由例如I/O接口108与网络接口132通信,这使得计算机系统102能够与一个或多个网络(诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网))通信,从而提供与其他计算设备或系统的通信。
计算机系统102可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。应当理解,其它硬件和/或软件组件可以与计算机系统102结合使用。实例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。
计算机系统102可以与许多其它通用或专用计算系统环境或配置一起操作。适合与计算机系统102一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
在一个示例中,处理器(例如,处理器104)包括用于执行指令的多个功能组件。如图1B所示,这些功能组件包括例如:指令取回组件150,用于取回要执行的指令;指令解码单元152,用于对所取回的指令进行解码并获得所解码的指令的操作数;一个或多个指令执行组件154,用于执行解码的指令;存储器访问组件156,用于在必要时访问存储器以用于指令执行;以及写回组件158,用于提供所执行的指令的结果。一个或多个组件可以在指令处理中访问和/或使用一个或多个寄存器160。此外,根据本发明的一个或多个方面,一个或多个组件可以包括一个或多个其它组件的至少一部分或可以访问一个或多个其它组件,该一个或多个其它组件用于执行例如重置动态地址转换保护指令的重置运算(或可以使用本发明的一个或多个方面的其它处理),如本文所述。一个或多个其它组件包括例如重置地址转换保护组件(或一个或多个其它组件)170。
本文描述的计算环境支持架构功能,例如动态地址转换(DAT)。在操作系统的适当支持下,动态地址转换工具可以用于向用户提供其中存储看起来大于在配置中可用的主存储(也称为主存储器)的系统。该视在(apparent)主存储器被称为虚拟存储器,并且用于指定虚拟存储器中的位置的地址被称为虚拟地址。用户的虚拟存储器可能远远超过配置中可用的主存储器的大小,并且通常被保持在辅助存储器(例如,不能直接寻址的存储器)中。虚拟存储器被认为由称为页的地址块组成。仅最近引用的虚拟存储器的页被分配以占用物理主存储器(例如,随机存取存储器(RAM))的块。当用户引用未出现在主存储器中的虚拟存储器页时,它们被带入以替换主存储器中不太可能被需要的页。存储器页的交换可以由操作系统在用户不知道的情况下执行。
此外,在虚拟计算环境中,解释执行架构提供了一种用于绝对存储的存储模式,称为可分页存储模式。在可分页存储模式中,主机级处的动态地址转换被用于映射客机主存储器。主机具有通过使用主机DAT将可分页存储模式客机的真实存储分散到主机真实存储器中的任何位置的可用帧,以及将客机数据页调出到辅助存储的能力。该技术在分配真实机器资源时提供了灵活性,同时保留了用于客机的绝对存储器的连续范围的预期外观。
虚拟机环境可以多次调用DAT的应用:首先在客机级通过客机管理转换表将客机虚拟地址转换成客机非虚拟地址,然后对于可分页客机,在主机级将相应的主机虚拟地址(即,客机非虚拟地址)转换成主机非虚拟地址,例如主机实地址或绝对地址。
与虚拟存储器相关联的虚拟地址序列被称为地址空间,并且动态地址转换工具可以被用于提供多个地址空间。这些地址空间可以被用于提供用户之间的隔离度。这种支持可以包括用于每个用户的完全不同的地址空间,从而提供完全的隔离,或者可以通过将每个地址空间的一部分映射到单个公共存储区域来提供共享区域。还提供了允许半特权程序访问一个以上这种地址空间的指令。动态地址转换提供了例如来自多个不同地址空间的虚拟地址的转换,而不需要改变控制寄存器中的转换参数。
动态地址转换是在存储引用期间将虚拟地址转换成相应的实地址或绝对地址的过程。可针对由CPU生成的指令和数据地址而指定动态地址转换。在一个实施例中,通过动态地址转换形成的实地址或绝对地址以及然后通过加前缀形成的绝对地址的长度为64位。虚拟地址可以是主要虚拟地址、次要虚拟地址、存取寄存器(AR)指定的虚拟地址或归属虚拟地址。分别借助于主要、次要、AR指定或归属地址空间控制元素(ASCE)来转换地址。在选择适当的地址空间控制元素之后,转换过程对于所有四种类型的虚拟地址都是相同的。地址空间控制元素可以是段表指定或区表指定。段表指定或区表指定使得转换借助于由操作系统在实际或绝对存储器中建立的表来执行。
在使用段表指定或区表指定时的转换过程中,识别三种类型的信息单元-区、段和页。因此,虚拟地址被分成四个字段。在一个实例中,位0-32被称为区索引(RX),位33-43被称为段索引(SX),位44-51被称为页索引(PX),以及位52-63被称为字节索引(BX)。虚拟地址的RX部分本身被分成三个字段。在一个实施例中,位0-10被称为区第一索引(RFX),位11-21被称为区第二索引(RSX),而位22-32被称为区第三索引(RTX)。
参考图2A描述了将虚拟地址转换为实地址的一个示例。该过程在此被称为DAT遍历(或页遍历),其中,遍历地址转换表以将一个地址(例如,虚拟地址)转换为另一地址(例如,实地址)。在该示例中,地址空间控制元素(ASCE)200包括表原点202以及指定类型(DT)控件204,其是转换的开始级别的指示(即,地址转换要在层级中的哪个级别开始的指示)。使用表原点202和DT 204,定位特定表的原点。然后,基于该表,虚拟地址的位被用于索引到特定表中以获得下一级表的原点。例如,如果选择了区第一表(RFT)206,则虚拟地址的位0-10(RFX)208被用于索引到区第一表中以获得区第二表(RST)210的原点。然后,虚拟地址的位11-21(RSX)212被用于索引到区第二表210中以获得区第三表(RTT)214的原点。类似地,虚拟地址的位22-32(RTX)216被用于索引到区第三表214中以获得段表218的原点。然后,虚拟地址的位33-43(SX)220被用于索引到段表218中以获得页表222的原点,以及虚拟地址的位44-51(PX)224被用于索引到页表222中以获得具有页帧实地址(PFRA)226的页表条目(PTE)225。然后,页帧实地址被与偏移228(位52-63)组合(例如,串接)以获得实地址。然后可以应用加前缀以获得相应的绝对地址。
在一个实施例中,诸如页表222的一个或多个转换表条目包括地址转换保护位P,其可用于控制对与转换表条目相关联的一个或多个存储块的写访问。当该位是第一值,例如“0”时,去激活对存储块的写保护,而当该位是第二值,例如“1”时,激活对存储块的写保护。例如,当被设置时,地址转换保护位指示地址转换保护应用于例如页表条目的上下文中的特定页。(对于段表条目,地址转换保护位控制是否可以对整个段进行写访问。)在一个实施例中,该位对取回访问没有影响,仅对写访问有影响。如果保护位是'0',则允许写访问,而如果该位是'1',则不允许写访问(即,在一个实施例中)。
参考图2B描述地址转换的另一示例。在该示例中,执行DAT遍历以将初始客机虚拟地址转换成最终主机实地址。在此示例中,地址空间控制元素(ASCE)200是客机地址空间控制元素,并且ASCE 200的DT 204指示由客机地址转换结构260确定的客机转换将在由表原点202指向的区第一表206处开始。因此,初始客机虚拟地址(例如,RFX 208)的适当位被用于索引到区第一表206中以获得区第一表的条目的指针。区第一表条目(RFTE)的地址是客机实地址或绝对地址。在应用了主存储来源和限制的情况下,该客机实地址或绝对地址对应于主机虚拟地址。然后,使用主机地址转换结构270来转换该中间主机虚拟地址。具体地,地址空间控制元素(ASCE)250是用于指示转换在主机地址转换结构272中的开始级别的主机地址空间控制元素。基于由ASCE 250的DT 254指示的开始级别(例如,区第一表),主机虚拟地址的特定位被用于索引到具有表原点252的所指示的表中,以用于使用主机地址转换结构272的转换,如参考图2A所描述的。继续进行与客机RFTE相对应的主机虚拟地址的转换,直到获得主机页帧实地址(PFRA)274a为止。
中间主机页帧实地址处的数据是指向客机地址转换结构的下一级(例如,在该特定示例中,客机区第二表210)的指针,并且转换继续,如上所述。具体地,主机地址转换结构276、278、280和282用于分别转换与客机区第二表210、区第三表214、段表218和页表222相关联的中间主机虚拟地址,从而分别产生主机PFRA 274b、274c、274d和274e。主机页帧实地址274e包括客机页表条目225的地址。客机页表条目225包括客机页帧实地址226,其被与从初始客机虚拟地址的偏移串接以获得相应的客机绝对地址。然后应用主存储来源和限制以计算相应的主机虚拟地址,然后如上所述,使用地址转换结构284来转换该主机虚拟地址,以获得主机页帧实地址274f。然后,主机页帧实地址被与主机虚拟地址的偏移(例如,位52-63)组合(例如,串接),以获得最终主机实地址。这完成了客机虚拟地址到主机实地址的转换。
尽管在以上示例中,转换开始于区第一表,但这仅是一个示例。转换可以在客机或主机的任何区表或段表级别开始。此外,注意,作为一个或多个转换表条目的一部分,诸如对于区第二表、区第三表、段表、页表,地址转换保护位P可被包括在表条目中,并且在对相关联的一个或多个存储块的写访问的处理期间被引用,以确定写访问是否被允许继续进行。当地址转换保护位是第一值(例如,“0”)时,允许对一个或多个存储块的写访问,以及当地址转换保护位是第二值(例如,“1”)时,对一个或多个存储块的写保护是有效的,并且写访问被阻止。
此外,在一个实施例中,为了改进地址转换,虚拟地址到实地址或绝对地址转换映射可以被存储在与地址转换相关联的结构(例如转换后备缓冲区(TLB))的条目中。TLB是由存储器管理硬件用于提高虚拟地址转换速度的高速缓存。下一次请求虚拟地址的转换时,将检查TLB,并且如果相应的条目驻留在TLB中,则存在TLB命中,并且从其中取得实地址或绝对地址。否则,如上所述,执行页遍历。
在一个实例中,如图2C中所描绘,转换后备缓冲区290可包括一个或多个条目292。任何给定的转换后备缓冲区条目可以包括地址转换保护位P 296,其可以被用于控制对与转换表条目相关联的一个或多个存储块的写访问,如本文所述。此外,TLB条目可与地址转换表的区表条目、段表条目或页表条目相关联。在一个或多个实施例中,除了页表条目中的地址转换保护位P之外,区表条目和段表条目还可以具有保护位。在转换后备缓冲区中,所有的地址转换保护位P将被“或”,以从客机(或虚拟)地址转换到实地址。条目可以是用于计算环境的主机或客机(或两者),并且可以用指示符(例如,H/G指示符294)来如此标记。例如,如果H/G 294被设置为1,则它是主机条目,而如果被设置为0,则它是客机条目,反之亦然。在一些实施例中,依次执行客机和主机级转换,每个转换都通过这些用于客机和主机级的表级,并且对来自所有客机和主机级表条目的保护位进行“或”以形成复合转换后备缓冲区条目中的保护位。转换后备缓冲区的许多实施方案是可能的。
如所指示的,客机转换可被包括在TLB中。这些条目可以是隐式地包括一个或多个主机转换的复合客户/主机条目。例如,客户虚拟TLB条目可缓冲从初始客户虚拟地址向下到最终主机实地址或绝对地址的整个转换。在这种情况下,如上图2B所述,客机TLB条目隐式地包括所有中间主机转换272、276、278、280和282,以及最终主机转换284。在另一实例中,分级TLB可在TLB的第一级中含有条目,该条目缓冲从初始客机虚拟地址向下到客机页表222的关联原点的转换。此第一级条目表示(例如)组合区表和段表条目(CRSTE),以及可以被称为TLB的CRSTE部分。此外,分级TLB可包含与TLB的第二级分离的条目,该条目缓冲从客机页表条目地址向下到最终主机实地址或绝对地址的转换。在该示例中,TLB的第一级中的客机条目隐式地包括中间主机转换272、276、278和280,它们对应于支持客机区表和段表的主机转换,而第二级中的客机条目隐式地包括支持客机页表的中间主机转换282和最终主机转换284,如图2B中所述。转换后备缓冲区的许多实施方案是可能的。
根据本发明的一个方面,提供了一种指令,在此称为重置动态地址转换保护指令、重置DAT保护指令或者重置地址转换保护指令,以作为执行单个指令的一部分,由执行该指令的处理器或者CPU确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置,以及基于确定保护位将被重置,重置地址转换保护位以去激活对存储块的写保护。重置没有或不需要计算环境的其他处理器的停顿操作。在一个或多个实施例中,执行指令是基于所尝试的对存储块的写访问,其中在执行该指令之前,写访问被指定的转换表条目中的地址转换保护位所阻止。此外,执行该指令可以包括:基于重置地址转换保护位以去激活对存储块的写保护不等待计算环境的一个或多个其他处理器的任何关联动作,结束指令的执行。以这种方式,执行重置地址转换保护指令的处理器独立于计算环境的一个或多个其他处理器处的任何相关联的处理而继续。
操作系统可以激活和/或去激活一个或多个存储块的地址转换保护异常,作为例如对特定存储位置的写时复制操作或变化跟踪的一部分。如上所述,可应用的转换表条目的地址转换保护位指定何时存在地址转换保护异常条件。修改地址转换保护的现有方法通常涉及停顿操作,该停顿操作涉及计算环境中的所有其它处理器。如所解释的,在一个或多个实施例中,在此提供了重置地址转换保护指令,该指令的执行提供了一种机制,用于清除转换表条目的地址转换保护位、清除或修改关联的TLB条目的本地副本、以及可选地在适当时将改变广播到配置中的其它CPU,而不需要停顿操作的串行化方面。因此,与需要计算环境的处理器之间的停顿以进行重置操作并完成重置操作的典型方法相比,所公开的重置地址转换保护操作提供了性能增强。此外,所公开的重置地址转换保护操作防止了消耗有限的、全系统的停顿资源,从而允许资源可用于其它操作。
如上所述,作为重置动态地址转换保护指令执行的一部分,指定的转换表条目的地址转换保护位(例如DAT保护位)被设置为零,或被验证为零。此外,清除或修改执行指令的处理器或CPU中的相关联的转换后备缓冲区条目。当本地清除控件为零时,与指令的执行异步地,计算环境中的其他处理器中的相关联的转换后备缓冲区条目可以被或可以不被清除或修改。注意,在一个实施例中,即使在指定的地址转换保护位在指令执行开始时未有效的情况下,执行重置指令的处理器中的相关联的转换后备缓冲区也被清除或修改。
下面参考图3A-3E描述用于执行重置操作的重置动态地址转换保护指令的一个实施例。在一个示例中,使用通用处理器(例如,图1A的处理器104)来执行该指令。在本文的描述中,指示了特定位置、特定字段和/或字段的特定大小(例如,特定字节和/或位)。然而,可以提供其他位置、字段和/或大小。此外,尽管可以指定将位设置为特定值,例如1或0,但是这仅是示例。在其它实例中,位可以被设置为不同的值,例如相反值或另一个值。许多变型是可能的。
在一个实例中,重置动态地址转换保护指令具有表示具有扩展操作码(opcode)和附加寄存器的寄存器和寄存器操作的格式。如图3A所示,在一个示例中,重置动态地址转换保护指令300具有多个字段,并且字段可以具有与之相关联的下标数字。与指令的字段相关联的下标数字表示该字段所应用到的操作数。例如,与寄存器R1相关联的下标数字1表示使用R1指定的寄存器包括第一操作数,以此类推。寄存器操作数是一个寄存器的长度,其例如为64位。
在一个实施例中,重置动态地址转换保护(RDP)指令300包括:操作码(opcode)字段302(例如,位0-15),其指示重置操作;第一寄存器(R1)字段308(例如,位24-27),用于指定至少一个第一寄存器;第二寄存器(R2)字段310(例如,位28-31),用于指定至少一个第二寄存器;第三寄存器(R3)字段304(例如,位16-19),用于指定至少一个第三寄存器;以及掩码(M4)字段306(例如,比特20-23),下面描述其中的每一个。在一个实施例中,字段是彼此分离和独立的;然而,在其它实施例中,可以组合多于一个字段。下面描述关于这些字段的进一步信息。
在一个实施例中,寄存器(R1)字段308包含具有段表条目的格式的内容,其中仅使用页表原点,如图3B所示。
在一个实例中,寄存器(R2)字段310可具有虚拟地址的格式,其中仅使用页索引,如图3C中所说明。
在一个或多个实施例中,重置指令的寄存器(R3)字段304具有地址空间控制元素(ASCE)的格式,其中仅使用表原点和指定类型控件(DT)。图3D示出了这样的示例,其中寄存器(R3)字段304包括用于清除的ASCE的区表或段表原点。这些内容可用于进一步选择待清除或修改的转换后备缓冲区条目。如果指令的R3字段为零,则忽略R3的全部内容,并且清除转换后备缓冲区条目,而不管用于形成它们的ASCE如何。
在一个示例中,在执行指令时使用一个或多个控件。示例控件被包括在M4字段306中。参考图3E,M4字段306包括(在一个实施例中)本地清除控制(LC)位,当被设置时,其指示仅在本地处理器或CPU中的相关联的转换后备缓冲区条目被清除或修改,以及当未被设置时,除了清除本地处理器中的相关联的转换后备缓冲区条目之外,计算环境或计算机配置中的所有处理器中的相关联的转换后备缓冲区条目可以被清除或修改,也可以不被清除或修改。
在一个或多个特定实施例中,页表原点和页索引指定页表条目,遵循用于页表查找的动态地址转换规则。在架构模式中,页表原点被视为64位地址,并且通过使用用于64位地址算术的规则来执行加法,而不管当前寻址模式如何。由这两个分量形成的地址是实地址或绝对地址。
在该过程期间,不需要检查页表条目的格式错误,并且不需要检查条目中包含的页帧实地址是否有寻址异常。另外,地址转换保护(或DAT保护)位被设置为零(或被验证为零),而不管页无效位的值如何。
如其它处理器所观察到的,整个页表条目看起来被从存储器中同时取回。检查DAT保护位。当在指令的开始处DAT保护位是“1”时,存储包含DAT保护位的字节。当在指令的开始处DAT保护位是“0”时,是否存储包含DAT保护位的字节是模型相关的。
如果没有识别到异常,则处理器从其转换后备缓冲区中清除所选择的条目。然后,如果LC位为零,则处理器可以发信号通知配置中的所有处理器,以便在方便时从它们的转换后备缓冲区中清除或修改所选择的条目而不执行停顿操作。当转换后备缓冲区受到影响时,至少清除转换后备缓冲区的满足以下条件的那些条目:1)通用寄存器R1中的页表原点与用于形成TLB表条目的页表原点相匹配;2)通用寄存器R2中的页索引与TLB表条目中的页索引相匹配;3)R3字段为零,或者通用寄存器R3中的表原点和指定类型字段与用于形成TLB表条目的地址空间控制元素(ASCE)中的表原点和指定类型字段相匹配;以及4)包含在指定的页表条目中的页帧实地址(PFRA)与用于形成TLB表条目的PFRA相匹配。
在一个或多个实施例中,在重置操作开始之前,在执行该指令的处理器上执行串行化功能,并且在操作完成之后,再次执行串行化功能。如针对所有串行化操作的情况,这种串行化仅应用于执行重置地址转换保护指令的处理器。有利地,不需要串行化或停顿其它处理器来执行本文所公开的指令。
如下所述,在执行重置地址转换保护指令之后,配置中的其他处理器可以继续识别与由该指令修改的页表条目相对应的页(即,存储块)的地址转换保护异常。在这种情况下,对于没有执行该指令的处理器,对应于修改后的页表条目的转换后备缓冲区条目尚未被清除或修改。此外,在这种情况下,不执行该指令的处理器可以观察到修改后的页表条目的地址转换保护位为零。在计算环境中操作的操作系统或控制程序知道并处理潜在的场景,如下面参考图4A-5C进一步描述的。
为了进一步提高性能,计算环境中的其他处理器可以在相关联的转换后备缓冲区条目尚未被清除或修改的情况下最小化向操作系统呈现不必要的地址转换保护异常的情况。例如,在呈现DAT保护异常之前,处理器可以检查转换表条目的DAT保护位的内容。如果发现该位为零,则处理器可以丢弃保护异常条件,清除或修改它的本地TLB中包含过时保护指示的条目,并重新执行触发异常的指令。此外,在已执行RDP指令的处理器上,当在指令的开始处指定页表条目的DAT保护位为零时,不必向计算环境中的其他处理器发信号通知操作,因为处理器没有进行改变,并且如果前一个处理器已经进行了改变,则前一个处理器将在适当时已经广播了信号。此外,甚至在没有进一步广播信号的情况下也确保了正确的操作,因为任何其它处理器将如本文所讨论的那样识别并处理过指示,或呈现异常,从而使得操作系统在该处理器上发出另一个RDP。
如所述的,在另一个实施例中,处理器可以就地修改或更改TLB条目以停用保护,而不是清除TLB中具有保护指示的条目。有利地,这避免了在指令被重新执行时执行另一次页遍历以重构条目。
注意,在一个或多个实施例中,重置地址转换保护指令可以应用于页表条目。在一个或多个其他实施例中,重置地址转换保护指令可以应用于段表或区表条目,以及应用于页表条目。
还应注意,尽管描述了重置动态地址转换保护指令的各种字段和寄存器,但是本发明的一个或多个方面可以使用其他、附加和/或更少的字段和/或寄存器,和/或其他大小的字段和/或寄存器等。许多变化是可能的。例如,可以使用隐式寄存器来代替显式指定的寄存器和/或指令的字段,和/或可以使用显式指定的寄存器和/或字段来代替隐式寄存器和/或字段。其它变化也是可能的。
如本文所述,地址转换保护位(例如,DAT保护位)可以在地址转换表条目中提供,作为操作系统激活和去激活对存储块的写保护的手段或机制。为了激活写保护,操作系统在对感兴趣的存储块的尝试写访问期间使用的转换表条目中将地址转换保护位设置为“1”。为了去激活写保护,操作系统将同一个地址转换保护位设置为零。在某些实现中,计算环境(例如,IBM)可以提供地址转换保护程序异常,作为计算环境向操作系统通知应用程序试图写入具有阻止写访问的对应转换表条目(TTE)的存储块的机制。如上所述,为了增强性能,计算环境处理器可以实现转换后备缓冲区(TLB)。与地址转换相关联的信息可以保留在TLB条目中。这样的信息可以包括在地址转换期间使用的转换表条目的内容,诸如地址转换保护位。当需要地址转换作为执行指令的一部分时,处理器可以使用TLB条目(如果可用)来代替处理转换表条目,因为使用TLB节省了处理器时间。
计算架构(例如IBM)可以提供指令,以使操作系统以在计算配置中的所有处理器之间提供一致结果的方式来修改转换表条目的内容。迄今为止,对转换表条目的改变包括清除计算配置中的处理器中的关联TLB条目,以及执行停顿操作。
如上所述,在一个或多个方面,在此提供了重置动态地址转换(DAT)保护指令(或RDP指令)。RDP指令为操作系统提供了这样的选项:即,作为对改变的计算环境响应的一部分,针对不需要在所有处理器之间广播或串行化(即,不需要停顿操作)的存储块,将转换表条目的地址转换保护位(例如,DAT保护位)设置为零(去激活写保护)。执行重置地址转换保护指令的处理器可以测试指定的转换表条目中的地址转换保护位。如果地址转换保护位是'1',则它被改变为0。不管在指令执行开始时的值如何,在执行重置地址转换保护指令的处理器中清除或修改相关联的TLB条目(如果有)。当没有指定本地清除选项时,执行重置地址转换保护指令的处理器可以向计算环境中的所有其他处理器广播信号以清除或修改其他处理器中的相关联的TLB条目,并且可以指示指令完成而无需等待所有处理器的TLB清除或修改。有利地,在执行重置地址转换保护指令期间不需要执行停顿操作。
作为进一步的示例,图4A和4B描绘了根据本发明的一个或多个方面的基于重置动态地址转换保护指令的执行的处理的不同实施例。在一个示例中,诸如通用处理器或CPU104(图1A)的处理器或CPU被用于执行该指令。作为示例,处理器的硬件和固件被用于执行该指令。硬件和固件可以在处理器内或者耦合到处理器以用于从处理器接收指令的目的,处理器例如获得、解码和设置指令以在硬件上执行。其它变化也是可能的。
图4A示出了与在多处理器(即,多CPU)计算环境或配置中执行用于去激活对存储块X的写保护的重置动态地址转换保护指令相关联的处理的一个示例。如图所示,该过程首先开始于400,其中在处理器(CPU A)上运行的应用程序尝试写入存储块X,并且被阻止402。在这种情况下,处理器(CPU A)向操作系统(OS)报告地址转换保护异常(例如DAT-P异常)。操作系统执行用于存储块X的存储器管理操作,根据本发明的一个或多个方面,这些操作包括在处理器(CPU A)上发出重置动态地址转换保护(RDP)指令404(在一个示例中)。处理器(CPU A)获得(例如,接收、取回等)RDP指令并执行指令406。
在一个实施例中,该指令的执行可以包括测试转换表条目中的DAT保护位(TTE.P),以及当被设置为写保护时,更新用于存储块X的转换表条目以去激活对存储块的写保护(例如,存储块X的TTE.P被设置为'0')。此外,RDP指令的执行还清除或修改处理器(CPU A)中的相关联的转换后备缓冲区(TLB)条目。如果本地清除控件没有被设置(即LC=0),则可以向计算环境的其它处理器广播信号,以便在方便时清除或修改其它处理器中的相关联的转换后备缓冲区条目。在一个实施例中,信号被发送到计算环境中的所有其它处理器。RDP指令的执行独立于计算环境中的其它处理器的任何相关联的处理,并且因此结束而无需等待计算环境中的其它处理器的任何动作,诸如无需计算环境的一个或多个其它处理器的串行化或停顿操作。注意,在此提供的描述的上下文中的串行化意味着在某些实施例中确保对配置范围的资源(例如转换表条目)的更新在指令完成之前对配置中的所有处理器可见。
应用程序恢复处理器(CPU A)上的操作,并且现在被允许写入存储块X 408,这结束与处理器(CPU A)上的RDP指令相关联的处理410。此外,如图4A所示,当一个或多个其它处理器(例如,CPU B)接收到请求清除或修改相关联的TLB条目的广播信号时,其它处理器(例如,CPU B)对在方便时清除或修改相关联的TLB条目的请求进行排队412。注意,在此方面,TLB可具有多个级。在一个实施方案中,TLB可包括1级TLB和2级TLB。对于CPU B,在接收到在方便时清除或修改关联的TLB条目的请求之后,应当但不是必需清除或修改TLB条目。例如,不需要清除1级TLB条目,且其它处理器依赖于关联的条目老化,以及可以在后台进程中清除或修改2级TLB条目,这需要较少的开销。用于处理请求清除或修改关联的TLB条目的广播信号的特定方法是实现特定的。
如图4A所示,当在另一处理器(CPU B)上运行的应用程序试图向存储块X写入时422,发生与第一开始400异步的第二开始420。基于此,处理确定是否已由CPU B检测到DAT-P异常条件424。如果否,则允许应用程序写入存储块X 426,这完成了处理410。
在由CPU B检测到DAT-P异常条件的情况下,处理基于CPU B检查转换表条目保护位(TTE.P)来确定用于存储块X的TTE.P是否为零428。如果不是,则CPU B向操作系统报告DAT-P异常430以供进一步处理。
基于转换表条目保护位(TTE.P)的内容为零,验证该条件为过检测。因此,清除或修改CPU B中的相关联的TLB条目,验证该条件是过检测,并且不被报告给操作系统432。应用程序恢复在CPU B上的操作,并且现在被允许写入存储块X 434,这完成了处理410。注意,关于以上讨论,如果操作系统选择性地利用在此公开的重置地址转换保护指令,则预期地址转换保护异常的过检测将是罕见的。
图4B示出了与在多处理器(即,多CPU)计算环境或配置中执行用于去激活对存储块X的写保护的重置动态地址转换保护指令相关联的处理的替代实施例。在图4A的实施例中,提供了能够在通知操作系统之前验证所检测的条件的CPU实现,以及在图4B的实施例中,假设CPU实现未被验证不能在通知操作系统之前验证所检测的条件。
如图所示,该过程首先开始于400,其中在处理器(CPU A)上运行的应用程序尝试写入存储块X,并且被阻止402。在这种情况下,处理器(CPU A)向操作系统(OS)报告地址转换保护异常(例如DAT-P异常)。操作系统执行用于存储块X的存储器管理操作,根据本发明的一个或多个方面,这些操作包括向处理器(CPU A)发出重置动态地址转换保护(RDP)指令404(在一个示例中)。处理器(CPU A)获得(例如,接收、取回等)RDP指令并执行指令406。
在一个实施例中,该指令的执行可以包括测试DAT保护位(TTE.P),并且当被设置为写保护时,更新用于存储块X的转换表条目以去激活对存储块的写保护(例如,存储块X的TTE.P被设置为'0')。此外,RDP指令的执行还清除或修改处理器(CPU A)中的相关联的转换后备缓冲区(TLB)条目。如果本地清除控件没有被设置(即LC=0),则可以向计算环境的其它处理器广播信号,以便在方便时清除或修改其它处理器中的相关联的转换后备缓冲区条目。在一个实施例中,信号被发送到计算环境中的所有处理器。RDP指令的执行独立于计算环境中的其它处理器中的任何相关联的处理,并且因此结束而无需等待计算环境中的其它处理器的任何动作,诸如无需计算环境的一个或多个其它处理器的串行化或停顿操作。
应用程序恢复处理器(CPU A)上的操作,并且现在被允许写入存储块X 408,这结束与处理器(CPU A)上的RDP指令相关联的处理410。如图4A所示,在信号是广播的情况下,当一个或多个其它处理器(例如,CPU B)接收到请求清除或修改相关联的TLB条目的广播信号时,其它处理器(例如,CPU B)对在方便时清除或修改相关联的TLB条目的请求进行排队412。
在异步的第二开始420中,在另一处理器(CPU B)上运行的应用程序尝试写入存储块X 422。基于此,处理确定是否已经由CPU B针对存储块X检测到地址转换保护异常(例如,DAT-P异常)条件424。如果否,则应用程序被允许写入存储块X 426,这完成了处理410。
在已经由CPU B检测到DAT-P异常条件的情况下,由另一处理器(CPU B)向操作系统通知针对存储块X的地址转换保护异常(例如DAT-P异常)440。操作系统测试转换表条目保护位(例如,TTE.P),并由此将所报告的条件识别为过指示,并发出另一个重置地址转换保护指令,这次是到另一处理器(CPU B)442。这导致另一处理器(CPU B)执行重置地址转换保护指令以重置地址转换保护位,以去激活对被检查的(并且被验证为零的)存储块的写保护444。此外,清除或修改该另一处理器(CPU B)上的关联的TLB条目,以防止该处理器上的条件的后续过指示。此外,由于转换表条目保护位(例如,TTE.P)被验证为“0”,因此不需要将信号广播到计算环境的其它处理器。然后,另一处理器上的应用程序可以恢复操作,并且现在被允许写入存储块X 446,这结束了处理410。注意,在这点上,如果操作系统选择性地利用在此公开的重置地址转换保护指令,则预期地址转换保护异常的过指示将是罕见的。
图5A-5C描绘了说明本发明的一个或多个实施例的某些方面的工作流程的另一实施例。
参考图5A,操作系统从在多处理器计算环境的处理器(CPU A)上运行的应用程序接收重置对存储块X的写保护的请求500。基于接收到该请求,操作系统锁定与存储块X相关联的动态地址转换(DAT)条目502,并且如果写保护有效,则发出重置DAT保护(RDP)指令,而不指定本地清除504。处理器(CPU A)获得(例如,接收、取回等)RDP指令并执行该指令506。
在一个或多个实施例中,该指令的执行可以包括测试DAT保护位(TTE.P),以及当被设置为写保护时,更新用于存储块X的转换表条目以去激活对存储块的写保护(例如,用于存储块X的TTE.P被设置为'0')。此外,RDP指令的执行还清除或修改处理器(CPU A)中的关联的转换后备缓冲区(TLB)条目。如果本地清除控件没有被设置(即LC=0),则可以向计算环境的其它处理器广播信号,以便在方便时也清除或修改其它处理器的关联的转换后备缓冲区条目。在一个实施例中,信号被发送到计算环境中的所有其它处理器。RDP指令的执行独立于计算环境中的其它处理器的任何关联的处理,并且因此结束而无需等待计算环境中的其它处理器的任何动作,诸如无需计算环境的一个或多个其它处理器的串行化或停顿操作。
如一个实施例中所示,操作系统(OS)获得处理器(CPU A)已经执行RDP指令的指示508,并且继续以解锁DAT条目510,从而完成处理512。
在多系统或多处理器计算环境中,应用程序可以从多个不同的处理器(CPU)访问同一个存储块。这种访问可使TLB条目被存储在多个不同的处理器上。如本文所公开的,操作系统服务被用于激活和去激活对存储块的写保护。参考图5B,在一个或多个实现中,在CPU B上运行的应用程序在处理接收到的广播信号以清除或修改处理器的(CPU B的)相关联的TLB条目之前,尝试写入存储块X520。
基于此,操作系统接收由硬件向操作系统发出的写保护异常中断522。操作系统获得控制以处理写保护异常中断524,并检查用于存储块的条目,其指示(例如,基于以上结合图5A描述的处理)写保护未被激活526。操作系统执行或发起针对存储块X的RDP指令,该RDP指令指定处理器(CPU B)(其尝试了导致写保护异常中断的写访问)的本地清除,以清除或修改处理器(CPU B)上的关联的TLB条目528。操作系统完成写保护异常中断,向CPU B发出请求信号以重试试图向存储块X写入的指令530。处理器(CPU B)重试对存储块X的写访问,并且写访问将完成532,这结束处理534。
最后,计算环境的所有处理器(CPU)将处理原始广播信号,或者在处理存储块的写操作异常的同时在本地清除或修改关联的TLB条目。如图5C所示,可能遇到这样的情况,其中在所有处理器都已经处理了广播的去激活请求(例如,基于前一个处理器(CPU A)执行RDP指令(参见图5A))之前,应用请求激活对同一个存储块X的写保护540。基于该激活请求,操作系统可以在更新与存储块X相关联的DAT条目以指示写保护有效之前,发出停顿指令以清除多处理器系统中的所有处理器(CPU)上的相关联的TLB条目542,这完成了处理544。
如本文所述,在一个方面,提供指令(例如,硬件/软件接口处的单个架构化机器指令,例如,重置动态地址转换保护指令)以执行重置操作。该指令例如是在指令集架构(ISA)中定义的指令,该指令确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置,以及基于该确定,重置地址转换保护位以去激活对存储块的写保护。该重置不要求由计算环境的一个或多个其他处理器进行的停顿操作;即,独立于计算环境的一个或多个其它处理器的相关联的处理。此外,该重置可以不向系统中的其它处理器广播此操作。因此,降低了与执行重置操作相关的处理的复杂度。此外,重置操作的性能得到改进,从而处理器的性能得到改进。指令执行减少了执行时间并提高了性能,以及还释放了全系统的停顿资源以供其他处理器使用。
本发明的一个或多个方面不可分地依赖于计算机技术,并促进计算机内的处理,从而提高计算机的性能。使用单个架构化机器指令来执行与重置相关的操作通过降低复杂度、减少资源的使用并提高处理速度来改进计算环境内的性能。该指令可以用于许多技术领域,例如计算机处理、医疗处理、工程、汽车技术、制造等。通过提供对重置对存储块的写访问的优化,这些技术领域通过减少执行时间而得到改进。
参考图6A-6B描述了与本发明的一个或多个方面相关的促进计算环境内的处理的一个实施例的进一步细节。
参考图6A,在一个实施例中,执行指令以执行重置操作600。执行该指令包括:例如由处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置602,以及基于该确定,重置地址转换保护位以去激活对存储块的写保护,其中重置不等待计算环境的一个或多个其他处理器的动作604。通过在不需要计算环境的一个或多个其它处理器的停顿操作的情况下进行重置(即,独立于计算环境的一个或多个其它处理器的相关联的处理),通过减少计算环境内的指令处理的挂起而增强性能。此外,通过使用RDP指令来至少执行确定和重置操作,提高了性能,并且减少了资源的使用。
在一个示例中,执行该指令包括:基于重置地址转换保护位以去激活对存储块的写保护不需要计算环境的一个或多个其他处理器的停顿操作,结束指令的执行606。在不需要计算环境的一个或多个其它处理器的停顿操作的情况下结束指令的执行有利地导致计算环境的改进的性能,以及释放全系统停顿资源以供其它处理器使用。
在一个实施例中,执行该指令进一步包括:清除处理器中与指定的转换表条目相关联的任何转换后备缓冲区条目608。在另一实例中,执行该指令进一步包括:重置处理器中与指定转换表条目相关联的任何转换后备缓冲区条目中的保护指示610。有利地,处理器可以简单地重置条目中的保护指示,同时保留条目的剩余部分完整,而不是清除转换后备缓冲区条目。这允许写入继续完成,而不需要重新转换地址以重构所需的转换后备缓冲区条目。
在一个实施例中,执行该指令进一步包括:向计算环境的一个或多个其他处理器广播信号以清除或修改一个或多个其他处理器中与指定转换表条目相关联的转换后备缓冲区条目612。在一个实施例中,执行该指令进一步包括:测试与存储块相关联的指定转换表条目中的地址转换保护位,其中,广播至少部分基于测试的结果614。通过使用重置地址转换保护指令来执行确定、重置和广播操作,提高了性能,并且减少了资源的使用。
参考图6B,在一个示例中,一个或多个其他处理器中的另一个处理器尝试对存储块的写访问,而另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件的过检测,并且基于此,另一个处理器检查地址转换保护位以识别地址转换保护异常条件是过检测,以及基于识别地址转换保护异常条件是过检测的检查,对存储块的写访问被允许616。检查地址转换保护位以识别地址转换保护异常条件是过指示通过允许访问并避免对操作系统的程序中断处理程序的需要,有利地提高了这种情况下的处理性能。
在进一步的示例中,一个或多个其他处理器中的另一个处理器尝试对存储块的写访问,而另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件,并且基于此,另一个处理器检查地址转换保护位以识别地址转换保护异常条件是过指示,以及基于识别地址转换保护异常条件是过指示的检查,另一个处理器清除或修改相关联的转换后备缓冲区中包含被过指示的地址转换保护位的条目618。有利地,检查地址转换保护位以识别地址转换保护异常条件是过指示通过允许写访问继续进行,改进了这种情况下的处理性能。
在一个示例中,一个或多个其他处理器中的另一个处理器尝试对存储块的写访问,而另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致过检测的地址转换保护异常条件,另一个处理器向计算环境的操作系统报告异常条件,基于报告异常条件,操作系统向另一个处理器发出在一个或多个其他处理器中的另一个处理器处执行重置地址转换保护操作的指令620。有利地,用于执行重置地址转换保护操作的指令为操作系统提供了选项,以便于响应于该改变而去激活对存储块的写保护,而不需要计算环境的所有处理器之间的停顿操作。
其它变化和实施例是可能的。例如,在一个或多个其它实现中,转换保护指示可以在现有TLB条目中被重置,而不是清除条目并要求重构条目。
本发明的各方面可由许多类型的计算环境使用。参考图7A描述了用于结合和使用本发明的一个或多个方面的计算环境的另一个示例。作为示例,图7A的计算环境基于由纽约阿蒙克的国际商业机器公司提供的指令集架构。然而,z/Architecture硬件架构仅是一个示例架构。同样,计算环境可以基于其它架构,包括但不限于/>x86架构、国际商业机器公司的其它架构和/或其它公司的架构。Intel是英特尔公司或其子公司在美国和其它国家/地区的商标或注册商标。
在一个示例中,计算环境10包括中央电子复合体(CEC)11。中央电子复合体11包括多个组件,例如耦合到一个或多个处理器(也称为中央处理单元(CPU))13和输入/输出(I/O)子系统14的存储器12(也称为系统存储器、主存储器、主存、中央存储、存储)。
I/O子系统14可以是中央电子复合体的一部分或者与其分离。它引导主存储器12和耦合到中央电子复合体的输入/输出控制单元15以及输入/输出(I/O)设备16之间的信息流。
可以使用许多类型的I/O设备。一种特定类型是数据存储设备17。数据存储设备17可以存储一个或多个程序18、一个或多个计算机可读程序指令19和/或数据等。计算机可读程序指令可以被配置为执行本发明的各方面的实施例的功能。
中央电子复合体11可包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。可理解,其它硬件和/或软件组件可以与中央电子复合体11结合使用,示例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据档案存储系统等。
此外,中央电子复合体11可以与许多其它通用或专用计算系统环境或配置一起操作。适合与中央电子复合体11一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
中央电子复合体11在一个或多个实施例中提供逻辑分区和/或虚拟化支持。在一个实施例中,如图7B所示,存储器12包括例如一个或多个逻辑分区20、管理逻辑分区的系统管理程序21、以及处理器固件22。系统管理程序21的一个示例是由纽约阿蒙克的国际商业机器公司提供的处理器资源/系统管理器(PR/SMTM)。如这里所使用的,固件包括例如处理器的微代码。它包括例如在实现更高级的机器代码时使用的硬件级指令和/或数据结构。在一个实施例中,它包括例如专有代码,该专有代码通常作为包括可信软件的微代码或底层硬件专用的微代码来传递,并且控制操作系统对系统硬件的访问。PR/SM是国际商业机器公司在至少一个管辖区内的商标或注册商标。
每个逻辑分区20能够作为单独的系统。即,每个逻辑分区可以被独立地重置,运行客户操作系统23(诸如由纽约阿蒙克的国际商业机器公司提供的操作系统),或其它控制代码24(诸如耦合设施控制代码(CFC)),并与不同的程序25一起操作。在逻辑分区中运行的操作系统或应用程序看似访问完全且完整的系统,但在现实中,仅其一部分可用。尽管z/OS操作系统是作为示例提供的,但是根据本发明的一个或多个方面,也可以使用由国际商业机器公司和/或其它公司提供的其它操作系统。
存储器12耦合到CPU 13(图7A),其是可分配给逻辑分区的物理处理器资源。例如,逻辑分区20包括一个或多个逻辑处理器,每个逻辑处理器代表可被动态分配给逻辑分区的物理处理器资源13的全部或一部分。
在又一实施例中,中央电子复合体提供虚拟机支持(具有或不具有逻辑分区支持)。如图7C所示,中央电子复合体11的存储器12包括例如一个或多个虚拟机26、管理虚拟机的虚拟机管理器(例如系统管理程序27)以及处理器固件28。系统管理程序27的一个示例是由纽约阿蒙克的国际商业机器公司提供的管理程序。系统管理程序有时被称为主机。z/VM是国际商业机器公司在至少一个司法管辖区的商标或注册商标。
中央电子复合体的虚拟机支持提供了操作大量虚拟机26的能力,每个虚拟机能够与不同的程序29一起操作并且运行客户操作系统30,诸如操作系统。每个虚拟机26能够用作单独的系统。也就是说,每个虚拟机可以被独立地重置,运行客机操作系统,并且利用不同的程序来操作。在虚拟机中运行的操作系统或应用程序看似访问整个系统,但是实际上,仅有一部分是可用的。尽管作为示例提供z/VM和Linux,但是根据本发明的一个或多个方面,可以使用其它虚拟机管理器和/或操作系统。注册商标/>是根据来自Linus Torvalds的专有被许可人Linux基金会的分许可人在全球基础上使用的。
参考图8A描述了用于结合和使用本发明的一个或多个方面的计算环境的另一个实施例。在该示例中,计算环境36包括经由例如一个或多个总线40和/或其它连接彼此耦合的例如本机中央处理单元(CPU)37、存储器38、以及一个或多个输入/输出设备和/或接口39。作为示例,计算环境36可包括纽约阿蒙克的国际商业机器公司提供的处理器;加利福尼亚州帕罗奥图的惠普公司提供的具有/>II处理器的HPSuperdome;和/或基于由国际商业机器公司、惠普、英特尔公司、甲骨文和/或其它公司提供的架构的其它机器。PowerPC是国际商业机器公司在至少一个管辖区内的商标或注册商标。Itanium是英特尔公司或其子公司在美国和其它国家/地区的商标或注册商标。
本机中央处理单元37包括一个或多个本机寄存器41,诸如在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本机中央处理单元37执行存储在存储器38中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器38中的仿真器代码42。该代码使得在一个架构中配置的计算环境能够仿真另一个架构。例如,仿真器代码42允许基于z/Architecture硬件架构之外的架构的机器(诸如PowerPC处理器、HP Superdome服务器或其它)来仿真z/Architecture硬件架构,并且执行基于z/Architecture硬件架构开发的软件和指令。
参考图8B描述了与仿真器代码42有关的进一步细节。存储在存储器38中的客机指令43包括软件指令(例如,与机器指令相关),其被开发为在不同于本机CPU 37的架构中执行。例如,客机指令43可以被设计为在基于z/Architecture硬件架构的处理器上执行,但是替代地,在本机CPU 37上被仿真,本机CPU 37可以是例如Intel Itanium II处理器。在一个示例中,仿真器代码42包括指令取回例程44,以从存储器38获得一个或多个客机指令43,并且可选地为所获得的指令提供本地缓冲。它还包括指令转换例程45,以确定所获得的客机指令的类型,并且将客机指令转换成一个或多个对应的本机指令46。该转换包括例如标识要由客机指令执行的功能以及选择(一个或多个)本机指令来执行该功能。
此外,仿真器代码42包括仿真控制例程47以使得执行本机指令。仿真控制例程47可以使本机CPU 37执行仿真一个或多个先前获得的客机指令的本机指令的例程,并且在该执行结束时,将控制返回到指令取回例程以仿真下一个客机指令或一组客机指令的获得。本机指令46的执行可包括将数据从存储器38加载到寄存器中;将数据从寄存器存储回存储器;或者执行由转换例程确定的某种类型的算术或逻辑运算。
例如,每个例程以软件实现,该软件存储在存储器中并由本机中央处理单元37执行。在其它示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合实现。被仿真的处理器的寄存器可使用本机CPU的寄存器41或通过使用存储器38中的位置来仿真,在实施例中,客机指令43、本机指令46和仿真器代码42可驻留在同一个存储器中,或者可被分配在不同的存储器设备之间。
根据本发明的一个方面,可以被仿真的一个指令是在此描述的重置动态地址转换保护指令。
上述计算环境仅是可以使用的计算环境的示例。可以使用其它环境,包括但不限于:非分区环境、分区环境、云环境和/或仿真环境;实施例不限于任何一种环境。尽管在此描述了计算环境的各种示例,但是本发明的一个或多个方面可以与许多类型的环境一起使用。本文提供的计算环境仅仅是示例。
每个计算环境能够被配置为包括本发明的一个或多个方面。
一个或多个方面可以涉及云计算。
可理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,该可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,该软件可包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图9,描述了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点52,本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点52可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施即服务、平台即服务和/或软件即服务,云消费者不需要为其维护本地计算设备上的资源。可理解,图9中所示的计算设备54A-N的类型仅旨在说明,并且计算节点52和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图10,示出了由云计算环境50(图9)提供的一组功能抽象层。可预先理解,图10中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的计帐单或开发票。在一个示例中,这些资源可包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其它资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及重置处理96。
本发明的各方面可以是处于任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可被提供给计算机或其它可编程数据处理装置的处理器以产生机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其它设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其它可编程装置或其它设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
除了上述之外,可以由提供客户环境管理的服务提供商来提供、部署、管理、服务等一个或多个方面。例如,服务提供商可以创建、维护、支持等执行一个或多个客户的一个或多个方面的计算机代码和/或计算机基础设施。作为回报,服务提供商可以例如在订阅和/或费用协议下从客户接收支付。另外或替代地,服务提供商可以从向一个或多个第三方销售广告内容接收支付。
在一个方面,可以部署应用以执行一个或多个实施例。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。
作为另一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能够执行一个或多个实施例。
作为又一方面,可以提供一种用于集成计算基础设施的过程,包括将计算机可读代码集成到计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。与计算机系统结合的代码能够执行一个或多个实施例。
尽管上文描述了各种实施例,但这些仅是实例。例如,其它架构的计算环境可用于结合和/或使用一个或多个方面。此外,可以使用不同的指令或操作。另外,可以使用不同类型的寄存器和/或不同的寄存器。许多变型是可能的。
本文描述了各个方面。此外,在不背离本发明的各方面的精神的情况下,许多变化是可能的。应当注意,除非另外不一致,否则本文所述的每个方面或特征及其变型可与任何其它方面或特征组合。
此外,其它类型的计算环境也可以受益并被使用。作为示例,适于存储和/或执行程序代码的数据处理系统是可用的,其包括通过系统总线直接或间接耦合到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间采用的本地存储器、大容量存储装置和缓冲存储器,其提供至少一些程序代码的临时存储以减少在执行期间必须从大容量存储装置取得代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备、DASD、磁带、CD、DVD、拇指驱动器和其它存储介质等)可以直接或通过中间I/O控制器耦合到系统。网络适配器也可耦合到系统,以使数据处理系统能够通过中间专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是几种可用的网络适配器类型。
本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,在本说明书中使用术语“包括”和/或“包含”时,指定所描述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
如果存在,下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。出于说明和描述的目的呈现了对一个或多个实施例的描述,但是该描述不旨在是穷尽的或者限于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释各个方面和实际应用,并且使本领域的其它普通技术人员能够理解具有适合于所设想的特定用途的各种修改的各种实施例。

Claims (20)

1.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
至少一个计算机可读存储介质,其存储程序指令,所述程序指令能够由处理器读取以使得所述处理器执行一种方法,所述方法包括:
执行用于执行重置地址转换保护操作的指令,执行所述指令包括:
由所述处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置;以及
基于所述确定,重置所述地址转换保护位以去激活对所述存储块的写保护,所述重置不等待所述计算环境的一个或多个其他处理器的动作。
2.根据前述权利要求所述的计算机程序产品,其中,执行所述指令进一步包括:基于重置所述地址转换保护位以去激活对所述存储块的写保护不需要所述计算环境的所述一个或多个其他处理器的停顿操作,结束所述指令的执行。
3.根据前述权利要求中任一项所述的计算机程序产品,其中,执行所述指令进一步包括:清除所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目。
4.根据前述权利要求中任一项所述的计算机程序产品,其中,执行所述指令进一步包括:重置所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目中的保护指示。
5.根据前述权利要求中任一项所述的计算机程序产品,其中,执行所述指令进一步包括:向所述计算环境的一个或多个其他处理器广播信号以清除或修改所述一个或多个其他处理器中与所述指定转换表条目相关联的转换后备缓冲区条目。
6.根据前述权利要求所述的计算机程序产品,其中,执行所述指令进一步包括:测试与所述存储块相关联的所述指定转换表条目中的所述地址转换保护位,并且其中,所述广播至少部分基于所述测试的结果。
7.根据前两个权利要求中任一项所述的计算机程序产品,其中,所述一个或多个其他处理器中的另一个处理器尝试对所述存储块的写访问,而所述另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件,以及基于所述地址转换保护异常条件,所述另一个处理器检查所述地址转换保护位以识别所述地址转换保护异常条件是过指示,并且基于识别所述地址转换保护异常条件是所述过指示的检查,对所述存储块的写访问被允许。
8.根据前三个权利要求中任一项所述的计算机程序产品,其中,所述一个或多个其他处理器中的另一个处理器尝试对所述存储块的写访问,而所述另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件,以及基于所述地址转换保护异常条件,所述另一个处理器检查所述地址转换保护位以识别所述地址转换保护异常条件是过指示,并且基于识别所述地址转换保护异常条件是所述过指示的检查,所述另一个处理器清除或修改其相关联的转换后备缓冲区中的包含被过指示的地址转换保护位的条目。
9.根据前三个权利要求中任一项所述的计算机程序产品,其中,所述一个或多个其他处理器中的另一个处理器尝试对所述存储块的写访问,而所述另一个处理器的相关联的转换后备缓冲区条目没有被清除或修改,从而导致地址转换保护异常条件,以及基于所述地址转换保护异常条件,向所述计算环境的操作系统报告所述异常条件,所述操作系统基于所述异常条件向所述另一个处理器发出在所述一个或多个其他处理器中的所述另一个处理器处执行所述重置地址转换保护操作的指令。
10.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
与所述存储器通信的处理器,其中,所述计算机系统被配置为执行一种方法,所述方法包括:
由所述处理器执行用于执行重置地址转换保护操作的指令,执行所述指令包括:
由所述处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置;以及
基于所述确定,重置所述地址转换保护位以去激活对所述存储块的写保护,所述重置不等待所述计算环境的一个或多个其他处理器的动作。
11.根据前述权利要求所述的计算机系统,其中,执行所述指令进一步包括:基于重置所述地址转换保护位以去激活对所述存储块的写保护不需要所述计算环境的所述一个或多个其他处理器的停顿操作,结束所述指令的执行。
12.根据前两个权利要求中任一项所述的计算机系统,其中,执行所述指令进一步包括:清除所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目。
13.根据前三个权利要求中任一项所述的计算机系统,其中,执行所述指令进一步包括:重置所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目中的保护指示。
14.根据前四个权利要求中任一项所述的计算机系统,其中,执行所述指令进一步包括:向所述计算环境的一个或多个其他处理器广播信号以清除或修改所述一个或多个其他处理器中与所述指定转换表条目相关联的转换后备缓冲区条目。
15.根据前述权利要求所述的计算机系统,其中,执行所述指令进一步包括:测试与所述存储块相关联的所述指定转换表条目中的所述地址转换保护位,并且其中,所述广播至少部分基于所述测试的结果。
16.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
由处理器执行用于执行重置地址转换保护操作的指令,执行所述指令包括:
由所述处理器确定与存储块相关联的指定转换表条目中的地址转换保护位将被重置;以及
基于所述确定,重置所述地址转换保护位以去激活对所述存储块的写保护,所述重置不等待所述计算环境的一个或多个其他处理器的动作。
17.根据前述权利要求所述的计算机实现的方法,其中,执行所述指令进一步包括:基于重置所述地址转换保护位以去激活对所述存储块的写保护不需要由所述计算环境的所述一个或多个其他处理器的停顿操作,结束所述指令的执行。
18.根据前两个权利要求中任一项所述的计算机实现的方法,其中,执行所述指令进一步包括:清除所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目。
19.根据前三个权利要求中任一项所述的计算机实现的方法,其中,执行所述指令进一步包括:重置所述处理器中与所述指定转换表条目相关联的任何转换后备缓冲区条目中的保护指示。
20.根据前四个权利要求中任一项所述的计算机实现的方法,其中,执行所述指令进一步包括:向所述计算环境的一个或多个其他处理器广播信号以清除或修改所述一个或多个其他处理器中与所述指定转换表条目相关联的转换后备缓冲区条目。
CN202280035564.1A 2021-06-01 2022-05-31 重置动态地址转换保护指令 Pending CN117355824A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/335,224 2021-06-01
US17/335,224 US20220382682A1 (en) 2021-06-01 2021-06-01 Reset dynamic address translation protection instruction
PCT/EP2022/064836 WO2022253866A1 (en) 2021-06-01 2022-05-31 Reset dynamic address translation protection instruction

Publications (1)

Publication Number Publication Date
CN117355824A true CN117355824A (zh) 2024-01-05

Family

ID=82258376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280035564.1A Pending CN117355824A (zh) 2021-06-01 2022-05-31 重置动态地址转换保护指令

Country Status (9)

Country Link
US (1) US20220382682A1 (zh)
EP (1) EP4348432A1 (zh)
KR (1) KR20230170079A (zh)
CN (1) CN117355824A (zh)
AU (1) AU2022287210A1 (zh)
BR (1) BR112023021648A2 (zh)
CA (1) CA3217151A1 (zh)
TW (1) TW202248864A (zh)
WO (1) WO2022253866A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117608667A (zh) * 2024-01-23 2024-02-27 合芯科技(苏州)有限公司 指令集处理系统、方法及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11914509B1 (en) * 2022-08-23 2024-02-27 Arm Limited Circuitry and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0415850D0 (en) * 2004-07-15 2004-08-18 Imagination Tech Ltd Memory management system
US8250331B2 (en) * 2009-06-26 2012-08-21 Microsoft Corporation Operating system virtual memory management for hardware transactional memory
US8930635B2 (en) * 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
US8806179B2 (en) * 2009-12-15 2014-08-12 International Business Machines Corporation Non-quiescing key setting facility
US8683175B2 (en) * 2011-03-15 2014-03-25 International Business Machines Corporation Seamless interface for multi-threaded core accelerators
US20130339656A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Compare and Replace DAT Table Entry
GB2514107B (en) * 2013-05-13 2020-07-29 Advanced Risc Mach Ltd Page table data management
US11048542B2 (en) * 2019-02-22 2021-06-29 Intel Corporation Dynamical switching between EPT and shadow page tables for runtime processor verification
US11226902B2 (en) * 2019-09-30 2022-01-18 International Business Machines Corporation Translation load instruction with access protection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117608667A (zh) * 2024-01-23 2024-02-27 合芯科技(苏州)有限公司 指令集处理系统、方法及电子设备
CN117608667B (zh) * 2024-01-23 2024-05-24 合芯科技(苏州)有限公司 指令集处理系统、方法及电子设备

Also Published As

Publication number Publication date
AU2022287210A1 (en) 2023-11-02
EP4348432A1 (en) 2024-04-10
KR20230170079A (ko) 2023-12-18
TW202248864A (zh) 2022-12-16
US20220382682A1 (en) 2022-12-01
BR112023021648A2 (pt) 2023-12-26
WO2022253866A1 (en) 2022-12-08
CA3217151A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
US11016907B2 (en) Increasing the scope of local purges of structures associated with address translation
US10956341B2 (en) Multi-engine address translation facility
US9916186B2 (en) Managing processing associated with selected architectural facilities
JP6585612B2 (ja) アーキテクチャ・モードの構成
US10282305B2 (en) Selective purging of entries of structures associated with address translation in a virtualized environment
US10176006B2 (en) Delaying purging of structures associated with address translation
US20180018283A1 (en) Selective purging of guest entries of structures associated with address translation
CN117355824A (zh) 重置动态地址转换保护指令
AU2018208453B2 (en) Temporarily suppressing processing of a restrained storage operand request
US11593275B2 (en) Operating system deactivation of storage block write protection absent quiescing of processors
US11151267B2 (en) Move data and set storage key based on key function control
JP2024521867A (ja) 動的アドレス変換保護リセット命令
US10831480B2 (en) Move data and set storage key instruction
CN117897692A (zh) 虚拟机执行期间不可访问的前缀页

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40099078

Country of ref document: HK