CN101216805A - 用于在处理器存储装置内的数据移动的方法和系统 - Google Patents
用于在处理器存储装置内的数据移动的方法和系统 Download PDFInfo
- Publication number
- CN101216805A CN101216805A CNA2008100025249A CN200810002524A CN101216805A CN 101216805 A CN101216805 A CN 101216805A CN A2008100025249 A CNA2008100025249 A CN A2008100025249A CN 200810002524 A CN200810002524 A CN 200810002524A CN 101216805 A CN101216805 A CN 101216805A
- Authority
- CN
- China
- Prior art keywords
- page
- address
- storage
- physical storage
- increment
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种用于在计算机系统中的存储器地址之间移动数据的方法,其中存储器地址所引用的数据被存储在物理存储器中。该方法包括:提供一种转换机制用于根据指定映射将连续的存储器地址中的各页映射到物理存储器中的相应位置,其中存储器地址中的第一页被映射到物理存储器中的第一位置而存储器地址中的第二页被映射到物理存储器中的第二位置;以及将该转换机制的指定映射改变成一种新映射,其中存储器地址的第二页被映射到物理存储器中的第一位置,由此高效地将存储在第一位置处的数据从存储器地址中的第一页移动到存储器地址中的第二页,而无需在物理存储器中的各地址之间移动数据。
Description
技术领域
本发明的实施例涉及可以通过修改与动态分配的主存储器相关联的转换表(TT)来直接操纵存储器页的系统。
背景技术
在计算机系统中,通常在处理器所产生的存储器地址与系统的物理存储器中的特定区域之间存在一一对应。处理器请求访问不具有相关联的物理存储器区域的地址是一种错误。这将操作系统(OS)和应用限制在由该系统中所安装的实际物理存储器所确定的地址空间。现代计算机系统通过使用虚拟存储器已经克服了这种局限,虚拟存储器实现用于将程序地址映射到实际存储器地址的转换表(TT)。
通过使用虚拟存储器,程序工作在仅受处理器架构限制的地址空间中。OS的一种功能是确保程序的数据和代码位于主存储器中以及确保TT可以将虚拟地址正确地映射到实际地址。
在虚拟存储器系统中,存储器的分配最通常是由操作系统软件来执行。这需要中断指令序列,从而特权内核代码可以将物理存储器分配给正被访问的区域,使得正常程序流可以无错误地继续。这种中断以及分配物理存储器的内核处理需要相当长的处理时间,并且打乱了经过中央处理器单元(CPU)的指令的正常流水线操作。
然而,在诸如IBM z/OS操作系统之类的已采用了中央存储机制的计算机系统中,在系统上运行的大多数应用不能够方便地利用附加的中央存储装置,其中中央存储机制在以前的架构限制之上增大了系统中的中央存储装置的最大允许量。
z/OS操作系统是来自IBM的64位服务器操作系统。它是IBM大型机操作系统OS/390的继承者,其合并了多虚拟存储装置(MVS)和UNIX系统服务(一种与POSIX兼容的UNIX的大型机实现,以前被称作MVS公开版本)。z/OS是高度安全、可升级、高性能的企业操作系统,在其上可构建和配置因特网和具有Java能力的应用或传统应用,z/OS提供了全面和多样的应用执行环境。
新软件产品的一个重要特征是能够与公司的传统应用一起工作或者至少具有能够从它们导入数据的能力。在信息技术中,传统应用和数据是已经从比当前技术更早的语言、平台和技术中继承的那些应用和数据。使用计算机的大多数企业具有为关键性商业需求服务的传统应用和数据库。
在此处所讨论的情况中,这些传统应用基于中央存储装置可寻址性的旧架构限制来工作。在某些环境下,这些传统应用总体上对高达旧架构限制的中央存储装置的管理设置了与系统的中央存储装置不相称的“约束”。
由此,在软件操作系统(例如,IBM z/OS)中,需要设计一种方法来特殊地处理对低于旧限制的中央存储装置设置的不相称的“约束”。这种机制还必须以最大的效率来执行其功能,以在用于执行该功能的机器“时钟周期”数目方面对操作系统的侵扰减到最小。操作系统所消耗的时钟周期越多,则用于实现客户的商业目标的客户应用的可用时钟周期就越少。
在新的传统存储装置的释放过程期间,当该传统存储装置变成受约束时相当多的中央处理单元(CPU)资源被消耗。在苛刻的约束条件下,结果可能是每秒从传统帧移动数以千计的页至高帧(在超出以前的架构限制的寻址范围中的中央存储装置)。
考虑到这种移动必须将比特和字节从一个物理存储位置拷贝到另一物理存储位置的事实,就不会奇怪会引起高CPU消耗。
因此,非常期望提供一种使用动态分配的物理存储器和用于管理该存储器的转换表(TT)的计算机系统,以及一种用于在无需使用处理器的条件下执行这些页操作的机制。还期望成功地管理对中央存储装置设置的不相称的“约束”,使用于执行功能的机器“时钟周期”的数目减到最小和使CPU消耗减到最小,以及还期望提出一种具有虚拟地从计算环境中移除物理存储装置的能力的系统。
发明内容
本发明的各实施例包括一种用于在计算机系统中的存储器地址之间移动数据的方法和计算机程序产品,其中存储器地址所引用的数据被存储在物理存储器中。该方法包括:提供一种转换机制用于根据指定映射将连续的存储器地址中的各页映射到物理存储器中的相应位置,其中存储器地址中的第一页被映射到物理存储器中的第一位置而存储器地址中的第二页被映射到物理存储器中的第二位置;以及将该转换机制的指定映射改变成一种新映射,其中存储器地址的第二页被映射到物理存储器中的第一位置,由此高效地将存储在第一位置处的数据从存储器地址中的第一页移动到存储器地址中的第二页,而无需在物理存储器中的各地址之间移动数据。
本发明的另一实施例是一种用于执行数据页操作的计算系统,该计算系统包括:物理存储器,其中存储了存储器地址所引用的数据;处理设备,用于生成与供进行读取和写入数据的物理存储器的存储器位置相关联的一个或多个实际地址;转换机制,用于根据指定映射将连续存储器地址中的各页映射到物理存储器中的相应位置,其中存储器地址中的第一页被映射到物理存储器中的第一位置而存储器地址中的第二页被映射到物理存储器中的第二位置;该转换机制将该指定映射改变成新映射,其中存储器地址中的第二页被映射到物理存储器中的第一位置,由此高效地将存储在第一位置处的数据从存储器地址中的第一页移动到存储器地址中的第二页而无需在物理存储器中的位置之间移动数据。
附图说明
对照以下描述、所附权利要求和附图将更好地理解本发明的各实施例中的装置和方法的其它特征、方面和优点,其中:
图1描绘了许多计算系统在使用的当前工作机制,其需要将比特和字节从一个物理存储位置移动到另一个物理存储位置。
图2说明了根据本发明的实施例的一种机制,该机制用于在实际帧层面上将实际地址从一个物理片位置重新分配到另一物理片位置,因为这种结构可能先于RRF指令的执行出现。
图3说明根据本发明的实施例的一种机制,该机制用于在RRF执行和清理之后在实际帧层面上将实际地址从一个物理片位置重新分配到另一物理片位置。
图4说明根据本发明的实施例的一种机制,该机制用于在RRF执行和清理之后在实际帧层面上将实际地址从一个物理片位置重新分配到另一物理片位置,其支持重新配置存储装置。
图5示出从虚拟地址到实际地址并最终到物理地址的常规转换。
图6示出从虚拟地址到实际地址的常规转换。
图7示出从实际地址到物理地址的常规转换。
图8示出根据本发明的第一实施例的从实际地址到物理地址的转换。
图9示出根据本发明的第二实施例的从实际地址到物理地址的转换。
具体实施方式
本申请涉及数据处理系统,并且特别涉及动态分配主存储器以供操作系统和/或应用软件使用的数据处理系统。本发明的各实施例涉及一种转换机制,其包括与动态分配主存储器相关联的转换表(TT)。更为具体地,本发明的实施例具有第二TT用于将逻辑计算机地址从第一物理地址断开并且将该逻辑计算机地址重新连接到第二物理地址以便实现在没有实际发生任何数据移动时看起来有数据移动。
本发明的实施例提供一种使用动态分配的物理存储器以及用于管理该存储器的转换表(TT)的计算机系统,一种用于在无需处理器的干预的情况下执行页操作的机制。
本发明的实施例将两个实际地址从它们的物理片位置断开并且将每个断开的物理地址指向另一片位置。此外,本发明的实施例维护供所有处理器使用的单份数据拷贝。这是通过在没有实际发生任何数据移动时看起来有数据移动来实现的。
为了理解本发明的实施例的功能,下面给出了对处理器资源/系统管理器(PR/SM)和逻辑分区(LPAR)的介绍。
物理服务器可被分区成多个逻辑服务器。通称为逻辑分区(LPAR)的这种特征允许多至十五个逻辑服务器被配置在一个物理服务器内。
诸如IBM系统/390(S/390)处理器及其后续产品zSeries和系统z9处理器之类的处理器具有称为处理器资源/系统管理器(PR/SM)的硬件分区能力。每个逻辑分区可以与所有其它逻辑分区隔离开。每个逻辑分区运行它自己的z/OS或其它操作系统以及它自己的工作量。每个逻辑分区对于其上运行的软件而言看起来是与下层物理处理器具有相同指令集架构(ISA)的一个或多个逻辑处理器。尽管本发明不受限于任何特定的ISA,但是在以下的描述中将假设每个这样的逻辑处理器根据例如在“z/Architecture principles of Operation,SA22-7832-04(2005年9月)中所限定的z/Architecture(z/架构)来执行(除了下面所描述的新指令以外)。如在该出版物中所描述的那样,每个结构化的(architected)中央处理单元(CPU)除别的设施之外包含16个通用寄存器,其可被用于指明操作数,将在下文对其进一步描述。
处理器资源/系统管理器(PR/SM)硬件电路和微码被构建进IBM系统/390和后续的大型机中,并且支持逻辑分区(LPAR)。LPAR是大型机的存储器和其它资源的逻辑分段,其允许它运行它自己的那份操作系统拷贝和相关联的应用。LPAR是由特殊的硬件电路和微码实现的,并且允许多个系统镜像在一个机器中运行。这可以是相同的操作系统或不同的操作系统的多个实例。
LPAR允许多个系统镜像运行在单个处理器组上。每个这样的镜像具有包括CPU(专用的或共享的)、中央存储装置、扩展的存储装置和信道的全部部件。PR/SM是允许将物理服务器分区成若干逻辑服务器(LPAR)的硬件(微码)设施。PR/SM将各个操作系统实例映射/调度到单独的CPU或时间片,于是映射/调度到单个CPU。
在具有PR/SM能力的计算机中,每个LPAR具有它自己的一套实际地址,其范围是从地址零到分配给该特定LPAR的物理片存储装置的数量所允许的最大实际地址。同样,具有LPAR能力的机器具有动态地将中央存储装置从一个LPAR重新配置到同一单个物理计算机的另一个LPAR的能力。
这种重新配置提取在一个LPAR上被分配了一个实际地址的物理片位置,并且将该物理片位置分配给另一LPAR,可能在接收LPAR上给予它完全不同的实际地址。这种能力在存储增量层面上工作并且依赖于机器内的第二转换机制的存在,该第二转换机制根据第二转换表所限定的映射将呈现给操作系统的实际地址或绝对地址转换成物理片位置。
从实际地址到片位置的转换是通过该第二转换机制来实现的,其在存储增量层面上工作。例如,始于存储增量边界处的实际地址范围被转换成在该片的存储增量边界处的某个片位置。通过使用这种转换机制,机器能够提取单个物理片存储增量范围并将不同范围的实际存储地址重新分配给该物理增量。
当应用试图访问存储位置时,机器通过动态地址转换(DAT)将虚拟存储位置转换成实际存储位置。
在知道实际存储地址时,机器于是通过查阅用于确定物理片位置的增量转换结构来操纵实际地址以获得特定的实际地址所关联的存储增量号,并且接着使用实际存储地址中的剩余比特作为距离该物理片的存储增量边界的位移以定位准确的片位置,其中将在该片位置处执行所请求的操作。例如,在31比特寻址模式中,实际存储地址可能包括比特1-31,其中比特1是最高地址位而比特31是最低地址位。如果假设增量尺寸为1兆字节(MB)(220个字节)而页尺寸为4k字节(KB)(212个字节),则在这些地址比特中,比特1-11可标识特定的1MB增量,比特12-19可标识在该1MB增量内的特定的4KB页,而比特20-31可标识4KB页内的特定位置。
将数据的全部实际帧从一个实际帧移动到另一个实际帧需要高成本的问题可以经由本发明的实施例通过在实际帧层面上将实际地址从一个物理片位置重新分配到另一个物理片位置来解决,本发明的实施例描述了附加的矢量表,其位于下面参考图1-4所描述的增量(硬件/微码)转换机制下。
在间接寻址的存储器系统中,可通过直接操纵转换表(TT)中的项来执行某些公共操作,而无需实际访问数据字节。这些类型的操作通常是对存储器的页执行。页是由操作系统中的虚拟存储器管理器用来将实际存储器资源分配给系统中的进程的分配单位。虚拟存储器页通常是几千字节的固定尺寸,其中4096个字节是最常使用的页尺寸。应该理解,被操作的存储器页可具有任意尺寸,并且本发明的实施例不限于4096个字节的页。
图1描绘了在本发明的实施例之前的一种用于在实际帧层面上将数据从一个物理片位置移动到另一个物理片位置的机制。
图1被用作若干页操作的例子的起始点。图1描绘了源页2和目标页4。页帧表项(PFTE)(A、B、C、D)中的每个项都是系统上的单个实际地址的软件表示。每个PFTE具有与系统/LPAR中的实际存储装置中的帧8之一的一一对应12。接下来,实际存储装置中的每个帧8具有到分配给系统/LPAR的物理片存储装置10中的同等尺寸页的一一对应。
实际帧重新分配的流程如下。组件8表示实际帧。当操作系统确定它需要将数据从一个实际帧E移动到另一个实际帧时,它已经具有一种用于定位它可以向其中引导该数据转移的第二未使用的实际帧F的机制。一旦两个帧E、F都被获得,则通过使用本领域的普通技术人员所公知的许多计算指令中的任何一种将比特和字节从源物理片位置转移到目标物理片位置。
一旦该指令被发出,则微码/硬件就提取实际地址,操纵该实际地址以获得与该输入的实际地址相对应的实际地址增量号,接着定位进入该物理增量的正确位移。接着,通过将数据G转移到先前存储数据H的存储位置,发生了数据的物理移动。如可以在图1中所看见的那样,物理的数据移动仅在如由组件10所示的一个物理片(单个增量)中发生。为了简化起见,图1示出单个物理存储增量。在实际中,可能还存在任何数目的物理增量被分配给系统,并且可以从任何增量中的任何位置到任何其它增量中的任何位置发生物理数据移动,也可在各增量内发生转移。换言之,物理移动是如图1中所说明的将数据G移入先前存储数据H的存储位置。
图5-7以硬件转换结构示出了图1中的系统。因此,图5示出系统500,其中程序所理解的虚拟地址502通过第一转换机制504变换成程序正在其中运行的特定逻辑分区所理解的实际地址506。实际地址506接着被第二转换机制508转换成用于表示数据在物理存储装置中的真实位置的物理地址510。
图6更加详细地示出了图5中的虚拟到实际地址转换步骤。虚拟地址506可被看成是由虚拟页部分602和偏移量部分604来构成。虚拟页部分602(也即高阶地址部分)指示数据位于虚拟地址空间中的特定的页(也即4096或212个字节的连续集合)。偏移量部分604(也即包括低12位(LSB)的低阶地址部分),指示该数据距离该页的开始处的字节偏移。
如图6中还示出的那样,第一转换机制504包括第一转换表606,第一转换表606包含多个页帧表项(PFTE)608。每个这样的项608指示对应于虚拟页的对应的实际页(或实际帧),其中虚拟页部分602用作进入表格606的索引。以这种方式获取的表项608与原始字节偏移604进行连接以产生包括页部分610和偏移量部分612的实际地址506。因此,虚拟到实际地址转换的粒度是页,其包括4096(或212)个字节。实际上,在z/Architecture中使用若干连续的查找来执行这种虚拟到实际地址转换,但是它们可以逻辑地由单个表606来表示。
现在参考图7,使用类似的表格查找过程从实际地址508获得物理地址510。出于这种目的,实际地址506可被认为包括高阶增量部分702和低阶位移部分704。增量部分702指示数据被存储在(在存储位置712处)的特定的物理片增量710。增量部分702用作进入第二转换表706(实现第二转换机制506)的索引,第二转换表706用于查找片增量710的基地址708。位移部分704表示存储位置712距离片增量710的基地址708的位移(以字节为单位)。
在实际地址506的增量部分702与位移部分704之间的具体划分线依赖于片增量710的尺寸。例如,如果片增量710具有1兆字节(也即,220个字节)的尺寸,则位移部分704将由实际地址506的20个LSB构成,而增量部分702将由该实际地址的剩余比特构成。对于不同尺寸的片增量710,增量部分508和位移部分510的尺寸将相应地发生变化。注意,与图6中的虚拟到实际地址转换不同,这种常规的实际到物理地址转换的粒度基本上是片增量710的尺寸,在这种情况下是1兆字节。因此,实际页在这种常规配置中不能被彼此相对地任意地重新定位,除非它们位于不同的片增量710上。
本发明通过执行具有图6中的虚拟到实际地址转换的页粒度的实际到物理地址转换,克服了常规配置的这种局限。因此,可以将物理存储器页任意地从一个实际页重新分配给另一个实际页,实现从一个实际地址到另一个实际地址的数据移动而无需物理存储器中的任何相应的移动。改变实际到物理的转换表以反映地址的重新分配,而不是在物理存储器中实际移动数据,下面将对其进一步解释。
图8说明根据本发明的用于执行实际到物理地址转换的地址转换机制508-1。出于这种目的,实际地址506被分解成高阶页部分802和低阶偏移量部分804,其与图6中示出的部分610和612相同。偏移量部分804包含实际地址506的12个LSB,而页部分802包含实际地址的剩余比特。
页部分804充当进入包含项808的第二转换表806的索引。以与第一转换表606(图6)中的PFTE 608相类似的方式,第二转换表806中的每个项808指示物理地址510的增量部分810和页部分812,该物理地址510还包含偏移量部分814。增量部分810指向其上存储数据(在存储位置712处)的特定的物理增量710(也即包含物理增量710的基地址)。页部分812指示数据被存储在的增量710内的特定的4096字节的页(未被单独示出),而偏移量部分814(其与实际地址506中的偏移量部分804相同)表示数据在该特定的页内的字节偏移。页部分812与偏移量部分814进行连接以构成进入增量710以访问存储位置712的索引。注意,与图7中所示出的常规配置相反,本发明的这种配置中连续的实际页可以被任意地映射到不同的物理页,甚至是在不同的片增量710上的不同的物理页。
图9示出根据本发明的用于执行实际到物理地址转换的替代性的地址转换机制508-2。从整体实际到物理地址转换的观点来看,转换机制508-2以与图8中所示出的转换机制508-1相类似的方式操作。然而,转换机制508-2与转换机制508-1的不同在于其使用两个连续的转换表来执行查找。出于这种目的,实际地址506的页部分804(图8)被进一步分解成增量部分902和页部分904。增量部分902充当进入包含项908的增量表906的索引,每个项908均指向一个页表910(也即存储其基地址)。每个页表910接着包含项912,项912与页表806(图8)中的项808相类似且用于以类似的方式生成物理地址510。除了该两个表格的使用以外,转换机制508-2的操作与图8中所示出的转换机制508-1的相同。
图2说明根据本发明的实施例的一种用于在实际帧层面上将实际地址从一个物理片位置重新分配到另一个物理片位置的方案,其使用通过诸如转换机制508-1(图8)或508-2(图9)之类的转换机制实现的转换矢量表(TVT)。图3示出在下面所讨论的重新分配实际帧(REASSIGN REAL FRAME(RRF))执行和清理之后的状态。RRF指令的操作数是两个通用寄存器r1和r2的内容,其中r1是第一操作数位置而r2是第二操作数位置。尽管本发明不限于任何特定的指令格式,但是一种用于RRF指令的可能格式(z/Architecture中的所谓的RR格式)具有8比特操作码,紧随其后的是4比特的寄存器说明r1和r2,如下所示:
操作码 | r1 | r2 |
在第一通用寄存器(r1)中所包含的是操作系统希望数据出现到其中的实际地址(目标)。第二通用寄存器(r2)包含在发出指令前数据位于的实际地址(源)。在RRF执行之前,实际地址3000是可分配给系统中的任何虚拟页的空闲地址。在图2中这是通过将实际地址3000的对应PFTE示为“可用”来指示的(意思是此刻没有任何PFTE指向实际地址3000)。此刻,该实际帧通过将要描述的转换矢量表(TVT)转换到物理位置1xx0。在该(TVT)项“1xx0”中,最左边的数字“1”指明该实际帧正被映射到的物理增量,而最右边的数字“0”(与中间的数字“xx”一起)指示该帧的开始处距离该增量的开始处的位移。
在RRF执行之前的某个点处,虚拟地址被分配给(也即,它的PFTE被更新以指向)目标实际页。图2说明页帧表项(PFTE)20,其中每个页帧表项对应数据的一个页。图2中与图1中的组件相类似的的各组件将不描述。项20的状态是可用(或空)、9000、2000和C000,这些值中的每一个在相应的虚拟地址存在的情况下是相应的虚拟地址,并且在没有任何虚拟地址存在的情况下是“可用”。在具有地址(1000,2000,3000,4000)的实际帧22与PFTE项20之间存在一一对应。虽然出于解释的目的,在图中将虚拟地址示出为被包含在PFTE 20中,但对于本领域的普通技术人员而言(以及从图6中)以下是显而易见的:虚拟地址是进入包含PFTE的转换表的索引并且每个PFTE包含指向相应的实际页的指针;因此,虚拟页3000索引包含指向实际页1000的指针的PFTE,虚拟页9000索引包含指向实际页2000的指针的PFTE,等等。此外,在实际地址(1000,2000,3000,4000)与包含指针(3xx1,1xx2,1xx0和2003)的转换表24中的各项之间存在一一对应。组件28表示分配给系统的第一物理存储增量,组件30表示分配给系统的第二物理存储增量,而组件32表示分配给系统的第三物理存储增量
图2中的机制是一种用于生成与供进行读取和写入数据的实际存储器系统中的存储器位置相关联的一个或多个实际地址的处理机制。实际地址(1000,2000,3000,4000)被描绘为组件22,其TVT 24映射到存储增量28-32中的特定的存储器位置。实际地址22和PFTE 20概念上是实际存储器系统中的一部分。
PFTE 20、实际存储器地址22和转换矢量表TVT 24中的项全部都对应于存储数据的实际存储器。这些组件(20,22,24中的项)中的每个可以被看作表示作为物理存储器中的连续字节的数据页。
图2说明一种新的实际地址转换矢量表(TVT)24,该表中的项使用实际地址中跟在最小的对应增量边界之后且排除了进入帧的索引(对应于图9中所示出的偏移量部分804和当使用4096字节的页时当前最右边的12比特)的那部分(对应于图9中所示出的页部分904)作索引。在计算该索引时所使用的在实际地址内的准确起始比特偏移量是可变的,因为由于增量尺寸基于已安装的物理中央存储装置的量的缘故在任何给定的机器中存储增量的尺寸是可变的。
转换矢量表是由项构成的表,其中如上所述项以实际地址中跟在最低的对应增量边界之后且排除了进入实际帧的索引的那部分作索引的,并且其中第二转换表的所述项中的每个项都至少具有片增量位置和至帧边界的位移。
同样,此表格中的项的数目是可变的,因为它基于存储增量中所包含的实际帧的数目。该表中的每个项具有足够的尺寸以包含片增量位置和至帧边界的位移(如图9中所示出)。在机器中对每个实际存储增量分配一个这样的表格。
假设现在在实际地址(1000,2000,3000和4000)与物理增量内的增量页28、30和32中的给定片位置之间存在着一一对应,则TVT现在加进它自己作为在它的表项与实际存储地址以及物理增量之间的一一对应。
实际帧的重新分配的流程如下。当操作系统确定它需要将数据从一个实际帧移动到另一个实际帧时,它已经在某处具有用于定位它可以向其中引导数据转移的第二未使用的实际帧(可用的)的机制。一旦两个帧都被获得,则操作系统的存储管理器将发出被叫做重新分配实际帧(RRF)的新指令。
RRF指令的输入操作数包括通用寄存器号。在第一通用寄存器(r1)内所包含的是操作系统希望数据出现到其中的实际地址(目标或实际地址3000)。第二通用寄存器(r2)包含在发出指令之前数据位于的实际地址(源或实际地址1000)。
一旦指令被发出,微码/硬件提取r2中的实际地址并且操纵实际地址(通过如图9中所示出的那样分解它)以获得实际地址增量号。接着,它转换实际地址增量号以获得TVT开始位置。通过使用该实际地址,它操纵该地址以获得进入TVT的索引以获得对应于源实际地址(r2)的项。对应于源实际地址(r2)的TVT将微码/硬件引导向存储增量3(32)的索引1,该存储增量包含数据GHI。
当源TVT项被定位时,微码/硬件提取r1中的目标实际地址并且操纵该实际地址以获得实际地址增量号。接着,它转换实际地址增量号以获得TVT开始位置。通过使用该实际地址,它操纵该地址以获得进入TVT的索引以获得对应于数据在其中结束的目标实际地址(r1)的项。
图3中与图1和图2中的组件相类似的组件将不被描述。图3说明一种根据本发明的实施例的用于在实际帧层面上将实际地址从一个物理片位置重新分配到另一个物理片位置的机制。该图表示了在执行RRF指令之后距离初始图(图2)的状态改变。
参考图3,此刻,针对源2和目标4二者的TVT 24中的项已经被定位。接着,简单地交换每个TVT项中的当前内容。例如,在执行RRF指令之前(图2),对应于实际地址3000(22)的TVT 24项(1xx0)指向物理增量1(28)中的页0的位置,而对应于实际地址1000(22)的TVT 24项(3xx1)指向物理增量3(32)中的页1的位置并且展示数据GHI。紧随着RRF指令的执行(图3),对应于实际地址3000(22)的TVT(24)项的内容已经与对应于实际地址1000(22)的TVT(24)项的内容进行交换,因此展示数据GHI给实际地址3000(22)。对应于实际地址1000(22)的TVT(24)项被用指针1xx0所填充,其导致实际地址1000现在转换到存储增量1(28)的页0的索引。于是,使表示实际地址1000(22)的PFTE可用。所有其它TVT项在指令执行期间都保持未改变。
由此,用于目标实际地址的表项指向源数据位于的物理片位置。同样,用于源实际地址的表项指向目标实际地址被用来指向的物理片位置。
图4说明一种根据本发明的实施例的用于在实际帧层面上将实际地址从一个物理片位置重新分配到另一物理片位置的机制,其支持在RRF执行和清理之后对存储装置的重新配置。
在正常环境下,在已经执行了RRF指令之后,操作系统将简单地释放旧源实际地址1000并且它将可用于重新分配给某个另外的虚拟页。
最后,在实际地址与物理片位置之间的关系变得高度随机化。在支持动态的中央存储装置重新配置的操作系统环境中,假定中央存储装置是由对应于顺序的物理增量存储装置的实际地址范围重新配置的这一事实,则这种随机化将是有问题的。
由此,对于中央存储装置重新配置请求,操作系统必须能够知道哪个实际帧对应于哪个另外的实际帧的物理位置。通过知道这种关系,操作系统可以重新分配两个位置的实际帧使得实际存储范围可以恢复到由它的原始物理增量所表示的它的原始状态。
参考图2,因为TVT 24保持在实际地址(1000,2000,3000,4000)与物理片位置(例如ABC、DEF、GHI)之间的一一对应,所以可以通过知道实际地址或者通过知道物理片位置来定位单个TVT项。在上面参考图2和图3的RRF执行图表和描述中,仅用TVT项现在指向的物理位置来更新该TVT项。通过扩展表项以包括第二字段26,它还可能在项中包括哪个实际地址/增量的TVT项指向(26)该TVT项的对应物理片位置。因为RRF指令每次执行总是交换两个位置,所以该信息在执行时是已知的并且可被保存在TVT字段26中。TVT字段26是字段24的逆。第一字段24映射实际地址以得到物理片位置。TVT第二字段26将物理片位置(增量和索引)映射到指向该物理片位置的第一字段24中的项。换言之,在图4中第一字段24由上至下转换。在图4中,第二字段26由下至上转换。TVT第二字段26可通过图4中所示出的索引和增量格式来引用TVT第一字段。为了看清楚这是如何工作的,考虑图3中所示出的实际帧到物理片位置的最终分配。出于这种目的,对应于TVT 24项的实际帧将分别被标识成帧1xx0、1xx1、1xx2和1xx3;例如,实际帧1xx0的地址可被想像成具有增量部分1和页部分xx0。如该图中所示出,TVT 24项连续地指向片位置1xx0、1xx2、3xx1和2003,其是由该对应表格来指示的:
实际帧 | 片位置 |
1xx0 | 1xx0 |
1xx1 | 1xx2 |
1xx2 | 3xx1 |
1xx3 | 2003 |
如果上表中的各列被交换并且通过现在的第一列来对该表进行分类,则获得以下表格,其包括相同的信息但是以片位置作索引而不是实际帧。
片位置 | 实际帧 |
1xx0 | 1xx0 |
1xx2 | 1xx1 |
2003 | 1xx3 |
3xx1 | 1xx2 |
如在上面的表格中的第一个表中所示的那样,在RRF指令执行之后,实际帧1xx0被分配给片位置1xx0而实际帧1xx1被分配给片位置1xx2。同样,如在上面的表格中的第二个表中所示出的那样,在RRF指令执行之后,片位置1xx0被分配给实际帧1xx0而片位置1xx2被分配给片位置1xx1。如图4中所示出的那样,这种对应是由用于片位置1xx0的第二字段项1xx0(所示出的四个项中的第一个)和用于片位置1xx2的第二字段项1xx1(所示出的四个项中的第三个)来指示的。通过类似的方式,被分配给片位置2003和3xx1的实际帧是由用于增量30和32的在TVT中的对应的第二字段项(未被示出)来指示的。最后,从用于增量32的在TVT中的对应的第一字段项(未被示出)获得用于片位置1xx1和1xx3的TVT第二字段项3xx3和3xx0(在图4中示出的TVT第二字段项中的第二个和第四个)。
能够双向转换提供了这样的重新配置,其能够撤销在物理存储器增量被离线地取走的情况下所有RRF指令执行已经做出的改变。
在重新配置时,以下是简单的事情:通过各种当前服务处理器接口询问服务处理器以获得指向物理片位置的实际地址,该物理片地址对应于被离线地取走的实际地址。
获得指向实际地址的对应物理片位置的实际地址的另一途径将是RRF指令自身的各种变体,诸如在通用寄存器0中具有一比特,其用信号通知指令执行这是对返回实际地址的请求,该实际地址的TVT项指向所提供的实际地址的对应物理片位置。
当具有已返回的实际地址时,操作系统的重新配置处理器可以发出RRF以交换两个实际地址,将离线地定位目标的实际地址的TVT项返回指向它的原始物理片位置。
由此,本发明的实施例将两个实际地址从它们的物理片位置断开并且将每个已经断开的物理地址指向其它片位置。此外,本发明的实施例维护供所有处理器使用的单份数据拷贝。这是通过在没有实际发生任何数据移动时看起来是数据移动来实现的。另外,这些实施例使得具有从计算环境中移除物理存储装置的能力。
因此,根据本发明的实施例,操作中所涉及的页的实际数据从来没有被处理器访问过,并且由此它也从来没有被要求位于存储器高速缓存体系中,因此消除了通常与这些页操作相关联的高速缓存损坏。此外,对转换表的操纵涉及读取和写入少许字节以执行该操作,其与在操纵页时读取和写入成百上千的字节相反。
本发明的实施例的这种方法和装置使得显著节省了执行实际操作的时间并且还表现对处理器的其它活动的更小的性能影响。优选地,可在用于服务器设备、PC等等的压缩存储器管理系统的设计中实现本发明的实施例的方法和装置,实现压缩和解压缩算法。
如上所述,可以用计算机实现的处理和用于实现那些处理的装置的形式来具体实现本发明的实施例。还可以用包含具体实现在诸如系统存储器、CD-ROM、硬盘驱动器或其它计算机可读存储装置介质之类的有形媒质中的指令的计算机程序代码的形式来具体实现本发明的各实施例,其中当该计算机程序代码被装载进计算机并被该计算机执行时,该计算机就是用于实现本发明的装置。本发明还可以用计算机程序代码的形式来具体实现,例如,无论该计算机程序代码是否被存储在存储介质中,是否被装载进计算机和/或被计算机执行,或者是否像通过电线或电缆、穿过光纤或者经由电磁辐射这样通过某些传输介质进行传输,其中当该计算机程序代码被装载进计算机并被该计算机执行时,该计算机就成了用于实现本发明的装置。当在通用微处理器上实现时,计算机程序代码段配置微处理器以创建特定的逻辑事件。
尽管已经关于本发明的说明性的和预形成的实施例具体地示出和描述了本发明,但是本领域的普通技术人员将理解,在不偏离本发明的精神和范围的条件下可做出在形式和细节中的上述和其它改变,本发明将仅受所附权利要求书的范围的限制。
Claims (19)
1.一种用于在计算机系统中的各存储器地址之间移动数据的方法,其中所述存储器地址所引用的数据存储在物理存储器中,所述方法包括:
提供一种转换机制用于根据指定映射将连续的存储器地址中的各页映射到所述物理存储器中的相应位置,其中存储器地址中的第一页被映射到所述物理存储器中的第一位置而存储器地址中的第二页被映射到所述物理存储器中的第二位置;以及
将所述转换机制的所述指定映射改变成一种新映射,其中存储器地址的所述第二页被映射到所述物理存储器中的所述第一位置,由此高效地将存储在所述第一位置处的所述数据从存储器地址中的所述第一页移动到存储器地址中的所述第二页,而无需在所述物理存储器中的各地址之间移动所述数据。
2.根据权利要求1所述的方法,其中所述新映射将存储器地址中的所述第一页映射到所述物理存储器中的所述第二位置。
3.根据权利要求1所述的方法,其中所述转换机制包括包含多个项的表,所述多个项中的每个项以指向所述页之一的存储器地址引用作索引并且指明了所述页被映射到的所述物理存储器中的特定位置。
4.根据权利要求3所述的方法,其中第一表项指明所述物理存储器中的所述第一位置而第二表项指明所述物理存储器中的所述第二位置,所述改变包括将所述第一表项拷贝进所述第二表项。
5.根据权利要求4所述的方法,其中所述改变包括交换所述第一表项和第二表项。
6.根据权利要求3所述的方法,其中所述表项中的每个表项都与另外的表项相关联,所述另外的表项以指向所述物理存储器中的位置的引用作索引并且指明了被映射到所述位置的存储器地址中的特定页。
7.根据权利要求3所述的方法,其中所述存储器地址每个都包含标识增量的第一索引部分和标识所述增量内的页的第二索引部分,所述转换机制包括:
多个页表,其分别对应于所述增量并且每个都包含多个项,每个所述表项以所述第二索引部分作索引并且指明了所述页被映射到的所述物理存储器中的特定增量和所述增量中的特定位置;以及
增量表,其包含多个项,每个项以所述第一索引部分作索引并且指明了所述页表中的特定页表。
8.根据权利要求1所述的方法,其中响应于程序指令指明了存储器地址中的所述第一页和第二页而执行所述改变。
9.根据权利要求1所述的方法,其中所述物理存储器包括多个增量,每个增量都包含多个所述位置。
10.根据权利要求1所述的方法,其中所述存储器地址是从程序所提供的虚拟存储器地址生成的实际存储器地址。
11.一种用于执行数据页操作的计算系统,所述计算系统包括:
物理存储器,其中存储了存储器地址所引用的数据;
处理设备,用于生成与供进行读取和写入数据的物理存储器的存储器位置相关联的一个或多个实际地址;
转换机制,用于根据指定映射将连续存储器地址中的各页映射到所述物理存储器中的相应位置,其中存储器地址中的第一页被映射到所述物理存储器中的第一位置而存储器地址中的第二页被映射到所述物理存储器中的第二位置;
所述转换机制将所述指定映射改变成新映射,其中存储器地址中的所述第二页被映射到所述物理存储器中的所述第一位置,由此高效地将存储在所述第一位置处的所述数据从存储器地址中的所述第一页移动到存储器地址中的所述第二页而无需在所述物理存储器中的位置之间移动所述数据。
12.根据权利要求11所述的计算系统,其中所述新映射将存储器地址中的所述第一页映射到所述物理存储器中的所述第二位置。
13.根据权利要求11所述的计算系统,其中所述转换机制包括包含多个项的表,所述多个项中的每个项以指向所述页之一的存储器地址引用作索引并且指明了所述页被映射到的所述物理存储器中的特定位置。
14.根据权利要求13所述的计算系统,其中第一表项指明所述物理存储器中的所述第一位置而第二表项指明所述物理存储器中的所述第二位置,所述改变包括将所述第一表项拷贝进所述第二表项。
15.根据权利要求13所述的计算系统,其中所述表项中的每个表项都与另外的表项相关联,所述另外的表项以指向所述物理存储器中的位置的引用作索引并且指明了被映射到所述位置的存储器地址中的特定页。
16.根据权利要求13所述的计算系统,其中所述存储器地址每个都包含标识增量的第一索引部分和标识所述增量内的页的第二索引部分,所述转换机制包括:
多个页表,其分别对应于所述增量并且每个都包含多个项,每个所述表项以所述第二索引部分作索引并且指明了所述页被映射到的所述物理存储器中的特定增量和所述增量中的特定位置;以及
增量表,其包含多个项,每个项以所述第一索引部分作索引并且指明了所述页表中的特定页表。
17.根据权利要求11所述的计算系统,其中响应于程序指令指明了存储器地址中的所述第一页和第二页而执行所述改变。
18.根据权利要求11所述的计算系统,其中所述物理存储器包括多个增量,每个增量都包含多个所述位置。
19.根据权利要求11所述的计算系统,其中所述存储器地址是从程序所提供的虚拟存储器地址生成的实际存储器地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/620,676 | 2007-01-07 | ||
US11/620,676 US7685399B2 (en) | 2007-01-07 | 2007-01-07 | Method, system, and computer program products for data movement within processor storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101216805A true CN101216805A (zh) | 2008-07-09 |
CN101216805B CN101216805B (zh) | 2010-06-02 |
Family
ID=39595272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100025249A Expired - Fee Related CN101216805B (zh) | 2007-01-07 | 2008-01-07 | 用于在处理器存储装置内的数据移动的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7685399B2 (zh) |
CN (1) | CN101216805B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102741820A (zh) * | 2010-02-08 | 2012-10-17 | 微软公司 | 虚拟存储器的后台迁移 |
CN106227678A (zh) * | 2016-07-21 | 2016-12-14 | 北京四维益友信息技术有限公司 | 一种虚拟存储介质的存取方法 |
CN107273311A (zh) * | 2012-05-09 | 2017-10-20 | 英特尔公司 | 使用多个页表的执行 |
CN108780423A (zh) * | 2016-03-22 | 2018-11-09 | 英特尔公司 | 多级存储器管理 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8725927B2 (en) | 2008-10-15 | 2014-05-13 | Micron Technology, Inc. | Hot memory block table in a solid state storage device |
US8103827B2 (en) * | 2009-02-24 | 2012-01-24 | International Business Machines Corporation | Managing processing systems access to control blocks providing information on storage resources |
JP5632082B2 (ja) * | 2011-02-02 | 2014-11-26 | 株式会社日立製作所 | ストレージ装置及びデータ管理方法 |
JP2012234482A (ja) * | 2011-05-09 | 2012-11-29 | Canon Inc | 記憶制御装置及びその制御方法、並びにプログラム |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
US8935499B2 (en) | 2011-10-17 | 2015-01-13 | International Business Machines Corporation | Interface for management of data movement in a thin provisioned storage system |
US9396142B2 (en) * | 2014-06-10 | 2016-07-19 | Oracle International Corporation | Virtualizing input/output interrupts |
US11226904B2 (en) | 2019-04-26 | 2022-01-18 | Hewlett Packard Enterprise Development Lp | Cache data location system |
US20220108135A1 (en) * | 2021-12-17 | 2022-04-07 | Intel Corporation | Methods and apparatus for performing a machine learning operation using storage element pointers |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1228728B (it) | 1989-03-15 | 1991-07-03 | Bull Hn Information Syst | Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi. |
JPH0661068B2 (ja) | 1989-07-18 | 1994-08-10 | 株式会社日立製作所 | 記憶再配置方法および階層化記憶システム |
US5752275A (en) * | 1995-03-31 | 1998-05-12 | Intel Corporation | Translation look-aside buffer including a single page size translation unit |
JPH0973412A (ja) | 1995-06-30 | 1997-03-18 | Toshiba Corp | データ転送方法及びメモリ管理装置 |
US5953520A (en) | 1997-09-22 | 1999-09-14 | International Business Machines Corporation | Address translation buffer for data processing system emulation mode |
US6341325B2 (en) | 1999-01-12 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for addressing main memory contents including a directory structure in a computer system |
CN1275734A (zh) * | 1999-05-28 | 2000-12-06 | 曼特亚克公司 | 利用存储器重新映射技术降低处理器工作量的方法及系统 |
US7523290B2 (en) | 2000-02-29 | 2009-04-21 | International Business Machines Corporation | Very high speed page operations in indirect accessed memory systems |
TW594743B (en) * | 2001-11-07 | 2004-06-21 | Fujitsu Ltd | Memory device and internal control method therefor |
US20030110205A1 (en) | 2001-12-07 | 2003-06-12 | Leith Johnson | Virtualized resources in a partitionable server |
JP3565830B2 (ja) | 2002-08-21 | 2004-09-15 | 沖電気工業株式会社 | データ処理装置 |
US7383414B2 (en) * | 2004-05-28 | 2008-06-03 | Oracle International Corporation | Method and apparatus for memory-mapped input/output |
-
2007
- 2007-01-07 US US11/620,676 patent/US7685399B2/en not_active Expired - Fee Related
-
2008
- 2008-01-07 CN CN2008100025249A patent/CN101216805B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102741820A (zh) * | 2010-02-08 | 2012-10-17 | 微软公司 | 虚拟存储器的后台迁移 |
CN102741820B (zh) * | 2010-02-08 | 2015-04-01 | 微软公司 | 虚拟存储器的后台迁移 |
US9081510B2 (en) | 2010-02-08 | 2015-07-14 | Microsoft Technology Licensing, Llc | Background migration of virtual storage |
US10025509B2 (en) | 2010-02-08 | 2018-07-17 | Microsoft Technology Licensing, Llc | Background migration of virtual storage |
CN107273311A (zh) * | 2012-05-09 | 2017-10-20 | 英特尔公司 | 使用多个页表的执行 |
CN107273311B (zh) * | 2012-05-09 | 2020-10-23 | 英特尔公司 | 计算设备、用于计算的方法和用于计算的装置 |
US11119918B2 (en) | 2012-05-09 | 2021-09-14 | Intel Corporation | Execution using multiple page tables |
CN108780423A (zh) * | 2016-03-22 | 2018-11-09 | 英特尔公司 | 多级存储器管理 |
CN108780423B (zh) * | 2016-03-22 | 2023-06-02 | 英特尔公司 | 多级存储器管理电路、管理方法和管理设备 |
CN106227678A (zh) * | 2016-07-21 | 2016-12-14 | 北京四维益友信息技术有限公司 | 一种虚拟存储介质的存取方法 |
CN106227678B (zh) * | 2016-07-21 | 2018-12-28 | 北京四维益友信息技术有限公司 | 一种虚拟存储介质的存取方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080168253A1 (en) | 2008-07-10 |
US7685399B2 (en) | 2010-03-23 |
CN101216805B (zh) | 2010-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101216805B (zh) | 用于在处理器存储装置内的数据移动的方法和系统 | |
CN102906722B (zh) | 将消息信号中断转换为i/o适配器事件通知 | |
CN102132256B (zh) | 一种使用名称解析来供应虚拟资源的方法和系统 | |
RU2568241C2 (ru) | Трансформация прерывистых спецификаторов команд в непрерывные спецификаторы команд | |
CN100399300C (zh) | 用于数据处理的系统和方法和用于分配资源的系统和方法 | |
CN102906719B (zh) | 输入/输出地址到存储器地址的转换 | |
US9256546B2 (en) | Transparent code patching including updating of address translation structures | |
US9569115B2 (en) | Transparent code patching | |
CN102906701B (zh) | 在计算环境中控制对适配器的访问的方法和系统 | |
RU2526287C2 (ru) | Управление скоростью, с которой обрабатываются запросы на прерывание, формируемые адаптерами | |
EP2771794B1 (en) | Software translation lookaside buffer for persistent pointer management | |
CN1786927B (zh) | 应用层高速缓存映像知晓和再分配的系统和方法 | |
CN102918516B (zh) | 适配器中断源的类型的标识 | |
US20120047107A1 (en) | System and method for implementing on demand cloud database | |
CN111316248B (zh) | 促进对存储器局部域信息的访问 | |
CN102906694B (zh) | 用于与适配器进行通信的加载指令的方法和系统 | |
CN102906716A (zh) | 依据适配器的多个地址空间 | |
MX2012013864A (es) | Ajuste de tamaño de espacios de direccion concurrente con acceso a los espacios de direccion. | |
CN102906705A (zh) | 将消息信号中断转换为对客户操作系统的i/o适配器事件通知 | |
CN102971727B (zh) | 在软件分布式共享存储器系统中记录脏信息 | |
CN103597453B (zh) | 用于测试耦合设施的操作员消息命令 | |
CN103562864B (zh) | 执行开始操作员消息命令 | |
CN103597462B (zh) | 发送操作员消息命令到耦合设施 | |
CN103562877A (zh) | 处理操作员消息命令 | |
KR20130114661A (ko) | 통신 환경의 격리된 메모리 공간사이에서의 통신 개선 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100602 Termination date: 20210107 |