CN1235148C - 管理数据处理器***中虚拟化的物理存储器的方法和*** - Google Patents
管理数据处理器***中虚拟化的物理存储器的方法和*** Download PDFInfo
- Publication number
- CN1235148C CN1235148C CN03127739.XA CN03127739A CN1235148C CN 1235148 C CN1235148 C CN 1235148C CN 03127739 A CN03127739 A CN 03127739A CN 1235148 C CN1235148 C CN 1235148C
- Authority
- CN
- China
- Prior art keywords
- memory module
- memory
- true address
- storage
- address
- 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.)
- Expired - Fee Related
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
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
技术领域
本发明一般地涉及数据处理,特别涉及管理数据处理***中的物理存储器。更特别地,本发明涉及通过操作***控制自主地管理数据处理***中的物理存储器的方法和***。
背景技术
在计算机***中,习惯上,在处理器产生的存储地址和***的物理存储器中的特定区域之间具有一一对应的关系。这将操作***和应用程序限制在由***中安装的实际物理存储器确定的地址空间上。此外,许多现代计算机***运行多个并行任务或处理,每个各有其自己的地址空间。将存储器的全部补码专用于每个任务和操作***是昂贵的,尤其因为许多处理在任何给定时间都只使用其地址空间的一小部分。现代计算机***已通过使用虚拟存储器而克服了这一限制,其实现了将程序地址(或虚拟地址)映射到实际存储地址的变换表。虚拟存储器使得程序能够在看上去很大而且连续的、全部专用于该程序的物理存储地址空间上运行。然而,实际上,多个程序或处理之间共享虚拟存储***中的可用物理存储器。通过结合计算机硬件和软件而使处理中使用的虚拟地址转换为物理存储器的实际地址。这一处理被称为存储器映射或地址转换。
在虚拟存储***中,最一般地,由操作***软件(OS)进行存储器的分配。操作***的一个功能是确保程序当前使用的数据和代码在主存储器中,并且转换表可以正确地将虚拟地址映射到实际地址。这需要指令序列的中断,以便使特权内核代码可以将物理存储器分配给被访问的区域,从而正常程序流可以无错误地继续。这一中断和分配物理存储器的内核处理需要大量处理时间,并且扰乱了通过CPU的指令的正常流水线操作。
当在计算机***运转期间重新配置物理存储器时,管理物理存储器的操作***的负担增加了。在物理存储器的大小增加或减小的情况下,或者当在***操作期间替换存储器模块时(例如,当在需要替换的存储器模块中发生错误时),OS需要临时中断正在处理的任务,修改转换表中的***存储器配置信息,并使用已改变的物理地址来将数据从坏存储设备存储到盘上,然后重新配置剩余的存储设备。如果存储设备已被移走,OS必须使移走的设备的物理地址空间无效,并保持无效的地址空间,以使其不能被使用,实质上,在存储***的可寻址空间内留下了不可用的空间块。然后,操作***必须将逻辑地址映射到物理地址上,以避免具有坏存储位置的页。这一问题增加了OS的开销,并且使存储器的控制变得复杂。需要一种能够解决现有技术的上述问题,并且能够迅速而又有效地根据需要实现物理存储器的动态重新配置的物理存储器控制方法和***。
发明内容
根据优选实施例,提供一种管理多处理器***中虚拟化的物理存储器的方法和***。多处理器***耦接到具有多个用于存储数据作为多个存储块的存储器模块的物理存储***,每个存储块包括物理存储器的邻接字节,并进一步耦接到至少一个存储器控制器,其中至少一个存储器控制器中的每一个存储器与多个存储器模块中的一个或多个存储器模块耦接,其中至少一个存储器控制器中的每一个存储器控制器通过写入和读取在与其耦接的一个或多个存储器模块内存储的存储块,响应存储器存取。多处理器***包括至少一个处理器设备,用于产生包含与物理存储***的存储位置关联的真实地址的存储器存取,以对其读和写数据。处理器设备内的寄存器具有:第一字段,用于存储对应于与其耦接的多个存储器模块中的第一存储器模块的来自真实地址,其中耦接到第一存储器模块的第一存储器控制器被编程为响应寻址到FROM(来自)真实地址的存储器请求;和第二字段,用于存储对应于与其耦接的多个存储器模块中的第二存储器模块的TO(去向)真实地址,其中耦接到第二存储器模块的第二存储器控制器被编程为响应寻址到去向真实地址的存储器请求。处理器设备内的移动引擎响应于有关正在修改第一和第二存储器模块的配置的通知,基于来自真实地址和去向真实地址,将多个存储块从第一存储器模块复制到第二存储器模块。在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块期间,响应于处理器设备发出寻址到第一字段或第二字段之一中存储的真实地址的写入存储器请求,处理器设备内的操作***发出寻址到来自真实地址和去向真实地址的写入存储器请求,并在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之后,将第二存储器控制器编程为响应寻址到来自真实地址的存储器请求。
在替换实施例中,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块期间,响应于处理器设备请求寻址到来自真实地址的写入存储器请求,操作***发出既寻址到来自真实地址又寻址到去向真实地址的写入存储器请求。
在另一个替换实施例中,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块,而操作***使得第二存储器控制器能够响应寻址到去向真实地址的存储器存取之后,从物理存储***中移走第一存储器模块。
在另一个替换实施例中,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,来自真实地址位于物理存储***的当前可寻址空间中。
在另一个替换实施例中,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,在物理存储***中***第二存储器模块。
在另一个替换实施例中,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,去向真实地址位于物理存储***的当前可寻址空间之外。
附图说明
在所附权利要求中阐明了本发明的确信新颖的特征。然而,通过参考附图详细描述本发明的示范实施例,本发明自身以及其优选使用模式、其它目的和优点将变得更加清楚,其中:
图1图解了根据本发明的优选实施例实现的数据处理***;
图2展示了根据本发明的优选实施例,对如图1所示的数据处理***的存储***进行的存储地址转换处理的方框图表示;
图3展示了根据本发明的优选实施例,在将存储器模块从物理存储***中移走的情况下,图1所示的数据处理***的简化图;
图4展示了根据本发明的优选实施例,在将存储器模块从物理存储***中移走的情况下,图1所示的数据处理***的简化图。
具体实施方式
下面参考附图,特别参考图1,其中图解了根据本发明的一个实施例,支持对虚拟化的物理存储器的存储器管理的多处理器(MP)数据处理***的高级方框图。如图所示,数据处理***8包括大量(例如64个)处理单元10,通过***互连12耦接以进行通信。每个处理单元10是包括一个或多个处理器核心14的集成电路。除了寄存器、指令流逻辑以及用于执行程序指令的执行单元,每个处理器核心14包括关联第一级(L1)指令和数据高速缓冲存储器16和18,其分别临时缓冲指令和操作数(operand)数据,很可能由关联处理器核心14访问。
图1中还图解,数据处理器***8的存储器分层体系还包括:物理存储器22,物理存储器22包括一个或多个存储器模块(如存储器模块M1、M2以及M3所示),其形成了存储器分层体系中最低级的易失性数据存储器;以及一个或多个较低级高速缓冲存储器,例如片上(on-chip)第二级(L2)高速缓冲存储器20,用于将指令和操作数据从物理存储器22分阶段传递到处理器核心14。本领域一般技术人员应该明白,与较高级相比,存储器分层体系中每个随后的较低级通常能存储更大量的数据,但是需要更多的存取等待时间。如图所示,通过存储器控制器24,34以及44与互连12接口的物理存储器22可以存储操作数数据、部分或更多操作***以及一个或多个应用程序。存储器控制器24、34以及44分别耦接并控制对应的存储器模块M1、M2以及M3(尽管图中只展示了每个存储器控制器与单个存储器模块耦接,但是应该明白,存储器控制器可以控制存储***22中多个存储器模块)。包括所有或部分存储器模块M1、M2以及M3的集合组成机器的操作***和应用程序的一组物理存储器资源。操作***(OS)36存储在存储器模块M1的物理存储器的最底层。
***互连12可以包括一个或多个总线、转换器结构或其它连接架构,其用于在耦接到***互连12上的设备(例如处理单元10、存储器控制器24、34、44等)中通信的渠道。***互连12上的典型事务以请求开始,请求可以包括指示事务类型的事务字段、一个或多个指示事务来源和/或计划的接收者的标记、以及地址和/或数据。每个连接到***互连12的设备最好探查***互连12上的所有事务,并且如果合适的话,用探查响应来响应请求。这些行为可以包括确定***互连12上的数据的来源、存储通过请求探查器提供的数据、使高速缓冲存储器的数据无效等。输入/输出连接器52也耦接到互连12,并通过桥接器54提供在耦接到互连12的其它设备和耦接到PCI总线58的外部设备之间通信的渠道。
数据处理***8利用虚拟存储***,其实现了将程序地址(或有效地址)映射到实际存储地址的转换表。虚拟存储***使得可用物理存储器能够在多个程序或处理之间共享。通过提供将有效地址(EA)转换为物理地址(PA)的地址转换机制,处理单元10使得处理单元的地址空间(“逻辑地址空间”)能够具有与可用物理存储器22不同的大小,这里,物理地址指实际物理存储器中的位置。该虚拟存储***还允许多个程序能够同时驻留在***存储器中,而各自不需要了解其物理基地址的位置。相反地,这多个程序只需要知道其逻辑基地址。此外,不需要尝试保持对每个可能的有效地址转换或映射,虚拟存储***将有效和物理存储器划分为多个块。在许多***中,这些块大小固定,并称作节(section)或页(page)。单个页中的地址都具有相同的最高位。因此,存储地址由对应于地址较高位的页号和对应于地址较低位的页偏移串联而成。
通常,数据结构保持在物理存储器中,以从有效页号转换为真实页地址。这些数据结构经常采用转换表的形式,通常称作段表(segment table)和页表。段表通过有效页地址或号码来索引,并且通常具有大量对应于有效地址空间中的页的条目。每个条目都是特定页号或有效页地址向虚拟页地址的映射。页表通过虚拟页地址或号码来索引,并且通常具有大量对应于虚拟地址空间中的页的条目。每个条目都是特定页号或虚拟页地址向真实页地址的映射。
在处理器单元10中使用专门的硬件高速缓冲存储器(未示出)来进行有效到真实地址转换,该硬件高速缓冲存储器被称作地址转换高速缓冲存储器或转换后备缓冲器(TLB),其专用于转换。TLB是快速而又小型的静态存储器,用于存储页表中最常被引用的条目。其通常具有固定数量的条目。当处理存储器请求时,计算机首先尝试在TLB中发现合适的地址转换。如果未发现这样的地址转换,则自动访问页表,以检索适当的转换。
本领域一般技术人员将明白,数据处理***8可以包括许多附加的未示出的组件,例如I/O适配器、互连桥接器、非易失性存储器、用于连接到网络或附属设备的端口等。因为这样的附加组件对理解本发明没有必要,所以图1中没有示出,这里也没有讨论。然而,应该明白,本发明提供的增强可应用于任何架构的数据处理***,并且决不限于图1所示一般化的MP架构。
现在参考图2,其中展示了根据本发明的优选实施例,存储管理***为数据处理***8的虚拟存储***进行的存储器映射。有效地址空间(EffectiveAddress Space)表示其中有多个处理在彼此独立操作的处理器单元10上操作的地址空间。图中展示了三个处理,处理(Process)1(P1)、处理2(P2)以及处理3(P3),各有其自己的逻辑地址空间。对于每个处理,由有效地址对其可寻址空间中的页或块寻址。如图2所示,对三个执行处理,物理地址空间(PhysicalAddress Space)中当前载入页在有效地址空间内的有效地址分别被示为P1-EA、P2-EA以及P3-EA。每个有效地址是通过段表转换(Segment TtableTranslation)204而转换的64位地址。由处理器核心14内的段后备缓冲器(SLB)或段后备寄存器(SLR)进行段表转换204。由SLB或SLR将应用程序地址空间P1、P2以及P3内的每个可寻址空间转换为虚拟地址空间(Virtual AddressSpace)206内的80位虚拟地址。从而,P1-EA、P2-EA以及P3-EA通过段表转换而分别转换为P2-VA、P1-VA以及P3-VA。然后,使用处理器核心14内的转换后备缓冲器(TLB),每个虚拟地址空间P2-VA、P2-VA以及P3-VA通过页表转换(Page Table Translation)208而转换到真实地址空间(Real AddressSpace)210中,从而将每个80位虚拟地址P1-VA、P2-VA以及P3-VA转换为其代表***存储器内的真实地址的64位真实地址P1-RA、P2-RA以及P3-RA。真实地址RA通常由两个字段组成:将物理页号编码为数字“i”个位的字段,例如高阶位;和将从物理页开始起的偏移编码为数字“j”个位的字段,例如低阶位。二的数字j次幂表示页的大小,例如数字j等于十二表示页大小为四千字节。二的数字i次幂表示以页数表示的物理存储器的大小,例如数字i等于二十表示一个物理百万页的数量,或四吉字节(gigabytes)的物理存储器。
如图1所示,存储器控制器24、34以及44进行对真实地址的物理映射,以访问存储器模块M1、M2以及M3中所请求的页。因此,如果在L1高速缓冲存储器16、18以及L2高速缓冲存储器20中没有发现真实地址空间210中已寻址的页,在互连12上请求存储器存取。一旦在互连12中检测到存储器存取请求,每个存储器控制器24、34、44核对由存储器存取寻址的真实地址空间。由存储器控制器24、34以及44将来自处理器单元的真实地址的高阶位解码,存储器控制器24、34以及44识别每个存储器控制器的相应存储器模块M1、M2、M3的可寻址真实空间。每个存储器控制器24、34以及44响应已寻址到其对应的存储器模块的存储器存取。
如图2所示,这样由存储器控制器24、34、44进行物理映射212。物理映射212为地址页P1-RA、P2-RA以及P3-RA转换真实地址,并将其分别映射到对应的物理地址P1-PA、P2-PA以及P3-PA,而物理地址P1-PA、P2-PA以及P3-PA表示所请求的那些页在对应的存储器模块M1、M2以及M3中的物理地址。物理地址指示存储寻址信息的存储器模块内的特定存储位置。例如,P2-PA指定特定的行和列地址,以唯一地识别存储器模块2中已寻址的页。这一物理映射机制对操作***OS是不可见的,操作***OS借助于真实地址查看所有物理存储器资源,而不将这些资源的位置推理地辨别为特定的***存储器22内的存储器模块M1、M2、M3。
返回参考图1,在每个处理器单元10中包含有移动引擎28。存储器模块M1存储由OS 36操纵并利用的映射值306、308。如图所示,映射值306、308最好存储在存储器模块M1中最接近OS 36的位置;然而,应该明白映射值306、308可以存储在物理存储器22的任何存储器中。根据优选实施例,OS 36和移动引擎28提供物理存储器的虚拟化功能,以使得能够有效地重新配置物理存储器22。当物理存储器22被重新配置之后,例如当在***中***、移走或替换存储器模块M1、M2以及M3中的一个时,移动引擎28进行物理存储器22的存储器模块之间的数据传输,而OS 36控制存储器模块M1、M2、M3的从属存储器模块的真实到物理寻址,以使得能够添加、减去或替换特定的存储器模块。这一存储器管理由硬件和OS有效地完成,只产生继续存储***操作中的少量中断,以完成物理存储器的重新配置。在操作中,OS 36为正在被重新配置的所选择的存储器模块提供真实地址空间(具体说来,高阶真实地址位)的可配置分配,这有效地改变了该存储设备的基地址。
图3在数据处理***8的简化图中图解了从物理存储器移走存储器模块的实施例。如下面将说明的,处理器的移动引擎结合操作***工作,以在将关联的存储器模块移走之前使其脱机,但是使剩余物理存储器继续正常工作。一般地,移动引擎将要移走的存储器模块的内容复制到物理存储器中剩余的存储器模块中。然后,将该存储器模块的真实地址重新分配给接收所复制内容的存储器模块。
在此例子中,将存储器模块M2从数据处理***8中移走。第一步,处理器单元10向操作***报告其总可用物理存储器现在减少了一个存储器模块。例如,如果每个存储器模块M1、M2、M3都是64吉位(GB)的存储设备,则向操作***通知现在其可用物理存储器为128GB。相应地,操作***立即开始换出页,以减少所存储数据的量。处理器单元10向所有移动引擎28通知,存储器模块M2正在从物理存储器22中被移走。移动引擎28立即选择将用于存储包含在存储器模块M2中的数据的剩余的一个或多个模块。
OS 36存取存储器模块M1中的存储器字段306、308,以存储被移走的存储器模块的“FROM(来自)”真实地址和被移走的存储器模块的内容的“TO(去向)”真实地址(在这里使用的真实地址指整个真实地址或需要唯一地识别用于存储由存储器的已索引块寻址的数据的关联存储器模块的那一部分(例如高阶位))。OS 36按需要存取并修改存储器字段306、308,以进行给定的存储器重新配置。在替换实施例中,字段306、308中保持的FROM(来自)和TO(去向)存储器地址可以存储在处理器中的通用寄存器中,或存储在另一个存储设备中。
如图3所示,存储器字段306包含存储器模块M2的来自(FROM)真实地址,而字段308包含将保留移走的模块的存储内容的对应存储器模块(在此例中是存储器模块M3)的去向(TO)真实地址。字段306显示存储器模块M2的来自真实地址为RA2,而字段308显示存储器模块M2的去向真实地址为RA3。
在图3所示的例子中,移动引擎28选择存储器模块M3接收存储器模块M2中存储的数据,并向OS 36报告此事。OS 36修改存储***的页表(pagetable),以将Write(写)存储器存取限制到存储器模块M2,并将存储器模块M3的内容复制到盘或其它外部存储设备。存储器模块M1保持在线,对处理器单元10的连续存取可用,并且不从存储器模块M2接收任何数据。然后,移动引擎28开始“移动处理”,以将来自真实地址(RA2)处的存储器地址空间的内容复制到去向真实地址(RA3)处的存储器地址空间。相应地,移动引擎28通过在互连12上向存储器控制器发出存储器存取请求,而开始将存储器模块M2中的内容复制到存储器模块M3中,以将存储器模块M2的每个存储单元复制到真实地址RA3处的存储器地址空间。从而,移动引擎28将由真实地址RA2寻址的存储器模块M2中的所有存储内容复制到由真实地址RA3寻址的存储器模块M3中,如路径325所示。在替换实施例中,移动引擎28将存储器模块M2的部分内容复制到存储器模块M3中,而将剩余部分复制到存储***22的其它存储器模块中(例如存储器模块M1)。
在移动存储器存储内容的处理期间,存储器控制器24、34以及44机继续响应互连12上的存储器存取请求。然而,OS 36限制所有寻址到在由来自真实地址字段306指示的来自真实地址处存储的存储器的“Write(写)”存储器请求(但是准许“Read(读)”),以确保整个移动处理中的一致性。在图3的例子中,存储器模块M2会继续响应寻址到真实地址RA2的Read,如路径327所示。存储***因为对RA2的存储器写入继续存储在存储器模块M2和M3两者中。
一旦完成从存储器模块M2向存储器模块M3的数据传输,移动引擎28就将去向真实地址复制到字段306的来自真实地址中,或重置存储器字段。然后存储器控制器44重新编程,以响应先前由存储器控制器34管理的真实地址RA2,并且OS 36使正常Read/Write存储器存取能存取真实地址RA2。现在,存储器模块M1由真实地址RA1寻址,而存储器模块M3由真实地址RA2寻址。现在,存储器控制器44进行RA2空间中真实地址向存储器模块M3的直接物理映射,从而创建从操作***正使用的可寻址真实地址空间向虚拟物理地址空间的虚拟化物理映射。
下面参考图4,其中展示了数据处理***8的简化方框图,其描绘了***物理存储器22中的存储器模块M2。处理器单元10通知移动引擎28和OS36:存储器模块正被添加到物理存储器22中,并且要***与存储器控制器34关联并由其控制的存储器槽中。在这一点上,数据处理***8的当前真实地址空间由存储器模块M1和M3的物理存储器组成,并且可以由真实地址空间RA1-RA2寻址。
根据优选实施例,存储器字段306、308用各自的来自和去向真实地址来编程。分配给存储器模块M2的真实地址用物理存储器22的当前真实地址空间之外的去向真实地址(此例中为RA4)来编程。来自真实地址是在真实可寻址空间***和重新编程之后,分配有***的存储器模块的地址。字段306用来自真实地址RA2来编程,而字段308用去向真实地址RA4来编程。OS 36对与***的存储器模块关联的存储器控制器(此例中为存储器控制器34)编程,以响应真实地址RA4。应该明白,为每个字段选择的真实地址取决于***的存储器模块M2的大小和现有存储器模块M3的大小。在此例中,假设它们大小相同。在它们大小不同的情况下,将存储器模块M3的真实地址选择落在存储器模块M2的存储器边界上,以提供邻接的真实存储空间。
在将存储器模块M2物理地***物理存储器22之后,移动引擎28开始“移动处理”,以将去向真实地址(RA4)处的存储地址空间的内容复制到来自真实地址(RA2)处的存储地址空间。相应地,通过在互连12上向存储器控制器44发出存储器存取请求,移动引擎28开始将存储器模块M3的内容复制到存储器模块M2,以将存储器模块M3的每个存储单元复制到真实地址RA4处的存储器地址空间。存储器控制器44从存储器模块M3的每个存储单元接收写入,并将其映射到存储器模块M2的物理地址空间。这在图4中由路径425表示,其展示了真实地址RA2处的存储单元向真实地址RA4处的存储单元的复制。
在移动处理期间,由被编程为响应真实地址空间RA2的存储器控制器44为从处理器单元10指向真实地址RA2的Read存储器存取继续服务。从处理器单元10指向真实地址RA2的Write存储器存取将停止,直到物理存储器22被重新配置。应该明白,这一机制允许移动处理期间的存储一致性。
一旦完成了移动处理,OS 36指引存储器控制器34响应从互连12指向字段306中的来自真实地址的存储器存取,并指引存储器控制器44响应从互连1 2指向被重新配置的实存储器空间内另一个真实地址的存储器存取。在此例中,存储器控制器44被重新编程以响应真实地址RA3,以提供邻接的真实可寻址存储器RA1-RA3。然后OS 36将开始跨越存储器模块M1、M2以及M3的真实地址空间RA1-RA3存储和存取存储页。
应该明白,有些情况下,***的存储器模块与现有存储器的存储器边界相匹配,而真实地址空间不必重新配置。因此,在替换实施例中,不进行存储移动处理,而OS 36立即对与***的存储器模块关联的存储器控制器编程,以响应与添加的真实地址空间关联的去向真实地址。例如,如果将图4所示的存储器模块M2***物理存储器22,那么将用真实地址RA3对字段306和308每一个编程。在这种情况下,不将存储器模块M3中存储的数据复制到存储器模块M2,而保留在存储器模块M3中。一旦在物理存储器22的存储器插槽中添加了存储器模块M2,OS 36就指引存储器控制器34立即开始响应对真实地址RA3的存储器存取。
在替换物理存储器22中的存储器模块的情况下,根据结合图3描述的处理,从物理存储器22中移走存储器模块,然后,根据结合图4描述的处理,向物理存储器插回TO(去向)存储器模块。同样,现在返回参考图1,当对根据优选实施例重新配置的存储器模块进行直接存储器存取操作时,输入/输出连接器52以与处理器单元10相似地方式操作。应该明白,***可以具有附加的输入/输出连接器,与输入/输出连接器52相同,连接到互连12。随着在PCI总线58(或其它类似的从属总线)上添加或移走诸如盘驱动器和视频监视器的各种输入/输出设备,OS 36连同移动引擎28操作,以准许对该输入/输出设备的物理地址的虚拟化,其操作方式与上面描述的在物理存储器22中移走或添加存储器模块的方式相同。
应该明白,优选实施例使OS和移动引擎能提供物理存储器的虚拟化功能,以准许在物理存储器中***、移走或替换存储器模块。当重新配置物理存储器时,移动引擎28在物理存储器22的存储器模块之间进行数据传输,而OS 36控制从属存储器模块的真实到物理寻址,以准许特定存储器模块的添加、减去或替换。这一存储器管理通过硬件和OS、以较少地继续存储***操作中断有效地完成,以完成物理存储器的重新配置。
尽管参考优选实施例具体展示和描述了本发明,但是本领域一般技术人员应该明白,在不脱离本发明的精神和范围的情况下,可以对其进行形式和细节上的各种修改。
Claims (17)
1.一种计算***,耦接到具有多个用于存储数据作为多个存储块的存储器模块的物理存储***,每个存储块包括物理存储器的邻接字节,并进一步耦接到至少一个存储器控制器,其中至少一个存储器控制器中的每一个存储器与多个存储器模块中的一个或多个存储器模块耦接,其中至少一个存储器控制器中的每一个存储器控制器通过写入和读取在与其耦接的一个或多个存储器模块内存储的存储块,响应存储器存取,并且进一步耦接到处理器设备,用于产生包含与物理存储***的存储位置关联的真实地址的存储器存取,并对其读和写数据,该计算***包括:
第一字段,位于物理存储***中,用于存储对应于与其耦接的多个存储器模块中的第一存储器模块的来自(FROM)真实地址,其中耦接到第一存储器模块的第一存储器控制器被编程为响应寻址到来自真实地址的存储器请求;和第二字段,位于物理存储***中,用于存储对应于与其耦接的多个存储器模块中的第二存储器模块的去向(TO)真实地址,其中耦接到第二存储器模块的第二存储器控制器被编程为响应寻址到去向真实地址的存储器请求;
移动引擎,响应于有关正在修改第一和第二存储器模块的配置的通知,基于来自真实地址和去向真实地址,将多个存储块从第一存储器模块复制到第二存储器模块;以及
操作***,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块期间,限制向寻址到第一字段或第二字段之一中存储的真实地址的物理存储***发出任何写入存储器请求,并在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之后,将第二存储器控制器编程为响应寻址到来自真实地址的存储器请求。
2.如权利要求1所述的计算***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块期间,操作***准许寻址到来自真实地址的读取存储器请求。
3.如权利要求1所述的计算***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块,而后操作***使得第二存储器控制器能够响应寻址到来自真实地址的存储器存取之后,从物理存储***中移走第一存储器模块。
4.如权利要求3所述的计算***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,去向真实地址位于物理存储***的当前可寻址空间中。
5.如权利要求1所述的计算***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,在物理存储***中***第二存储器模块。
6.如权利要求5所述的计算***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,去向真实地址位于物理存储***的当前可寻址空间之外。
7.一种数据处理***内的数据处理方法,其特征在于,数据处理***包括处理器设备,用于产生包含与物理存储***的存储位置关联的物理地址的存储器存取,并对其读和写数据;物理存储***包括多个存储器控制器,通过对与其耦接的一个或多个存储器模块内存储的存储块写入和读取,每个存储器控制器响应由处理器设备请求的存储器存取,该方法包括:
对在物理存储***中存储的第一字段和第二字段进行设置,以分别指示对应于第一和第二存储器模块的来自真实地址和去向真实地址,第一和第二存储器模块分别与第一和第二存储器控制器耦接;
基于来自真实地址和去向真实地址,将多个存储块从第一存储器模块复制到第二存储器模块;
在完成复制步骤之后,配置第一和第二存储器控制器,以便只响应寻址到去向真实地址的存储器存取。
8.如权利要求7所述的方法,其特征在于,在复制步骤期间,响应于处理器设备发出寻址到去向真实地址的写入存储器请求,不发出寻址到去向真实地址的写入存储器请求。
9.如权利要求7所述的方法,在配置步骤之后,还包括从物理存储***中移走第一存储器模块的步骤,其中来自真实地址在物理存储***的当前可寻址空间内。
10.如权利要求7所述的方法,在复制步骤之前,还包括在存储***中***第一存储器模块的步骤,其中去向真实地址在物理存储器的当前可寻址空间之外。
11.如权利要求7所述的方法,还包括向处理器通知多个存储器模块的配置正被修改,其中响应于该通知而进行设置步骤。
12.一种数据处理***,包括:
物理存储***,其具有多个存储器模块,用于作为多个存储块存储数据,每个存储块包括物理存储器的邻接字节;
多个存储器控制器,其中多个存储器控制器中的每一个存储器控制器与多个存储器模块中的一个或多个存储器模块耦接,其中多个存储器控制器中的每一个存储器控制器,通过写入和读取在与其耦接的一个或多个存储器模块内存储的存储块,响应存储器存取;以及
多个处理器设备,用于产生包含与物理存储***的存储位置关联的真实地址的存储器存取,以对其读取和写入数据;
第一字段,位于物理存储***中,用于存储对应于与其耦接的多个存储器模块中的第一存储器模块的来自真实地址,其中耦接到第一存储器模块的第一存储器控制器被编程为响应寻址到来自真实地址的存储器请求;和第二字段,位于物理存储***中,用于存储对应于与其耦接的多个存储器模块中的第二存储器模块的去向真实地址,其中耦接到第二存储器模块的第二存储器控制器被编程为响应寻址到去向真实地址的存储器请求;
移动引擎,响应于有关正在修改第一和第二存储器模块的配置的通知,基于来自真实地址和去向真实地址,将多个存储块从第一存储器模块复制到第二存储器模块;以及
操作***,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块期间,限制向寻址到第一字段或第二字段之一中存储的真实地址的物理存储***发出任何写入存储器请求,并在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之后,将第二存储器控制器编程为响应寻址到来自真实地址的存储器请求。
13.如权利要求12所述的***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块期间,操作***准许读取存储器请求寻址到来自真实地址。
14.如权利要求12所述的***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块,而后操作***使得第二存储器控制器能够响应寻址到来自真实地址的存储器存取之后,从物理存储***中移走第一存储器模块。
15.如权利要求14所述的***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,去向真实地址位于物理存储***的当前可寻址空间内。
16.如权利要求12所述的***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,在物理存储***中***第二存储器模块。
17.如权利要求16所述的***,其特征在于,在移动引擎将多个存储块从第一存储器模块复制到第二存储器模块之前,去向真实地址位于物理存储***的当前可寻址空间之外。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/268,741 | 2002-10-10 | ||
US10/268,741 US6920521B2 (en) | 2002-10-10 | 2002-10-10 | Method and system of managing virtualized physical memory in a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1489058A CN1489058A (zh) | 2004-04-14 |
CN1235148C true CN1235148C (zh) | 2006-01-04 |
Family
ID=32068638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03127739.XA Expired - Fee Related CN1235148C (zh) | 2002-10-10 | 2003-08-13 | 管理数据处理器***中虚拟化的物理存储器的方法和*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US6920521B2 (zh) |
CN (1) | CN1235148C (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050193169A1 (en) * | 2004-03-01 | 2005-09-01 | Ahluwalia Manish K. | Memory management |
JP2006024024A (ja) * | 2004-07-08 | 2006-01-26 | Toshiba Corp | 論理ディスク管理方法及び装置 |
US7562179B2 (en) | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US7418629B2 (en) * | 2005-02-11 | 2008-08-26 | International Business Machines Corporation | Synchronizing triggering of multiple hardware trace facilities using an existing system bus |
US7437618B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing |
US7437617B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers |
US7421619B2 (en) * | 2005-02-11 | 2008-09-02 | International Business Machines Corporation | Method in a processor for performing in-memory tracing using existing communication paths |
US8019854B2 (en) * | 2005-11-25 | 2011-09-13 | Samsung Electronics Co., Ltd. | System and method of providing information on computer memory use |
US7454585B2 (en) * | 2005-12-22 | 2008-11-18 | International Business Machines Corporation | Efficient and flexible memory copy operation |
US7506132B2 (en) * | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
US20070261059A1 (en) * | 2006-04-25 | 2007-11-08 | Orth Joseph F | Array-based memory abstraction |
US7581074B2 (en) * | 2006-05-19 | 2009-08-25 | International Business Machines Corporation | Facilitating use of storage access keys to access storage |
US7836129B2 (en) * | 2006-12-19 | 2010-11-16 | International Business Machines Corporation | Communication between host systems using a queuing system and shared memories |
US7991839B2 (en) * | 2006-12-19 | 2011-08-02 | International Business Machines Corporation | Communication between host systems using a socket connection and shared memories |
US7984454B2 (en) * | 2006-12-19 | 2011-07-19 | International Business Machines Corporation | Migration of single root stateless virtual functions |
US7860930B2 (en) * | 2006-12-19 | 2010-12-28 | International Business Machines Corporation | Communication between host systems using a transaction protocol and shared memories |
US7836238B2 (en) * | 2006-12-19 | 2010-11-16 | International Business Machines Corporation | Hot-plug/remove of a new component in a running PCIe fabric |
US7813366B2 (en) | 2006-12-19 | 2010-10-12 | International Business Machines Corporation | Migration of a virtual endpoint from one virtual plane to another |
US8271604B2 (en) | 2006-12-19 | 2012-09-18 | International Business Machines Corporation | Initializing shared memories for sharing endpoints across a plurality of root complexes |
CN101458631B (zh) * | 2007-12-14 | 2011-09-21 | 联想(北京)有限公司 | 一种自适应虚拟机调度的方法及装置 |
CN101381229B (zh) * | 2008-10-28 | 2011-07-06 | 昆明理工大学 | 低温共烧铌酸锌基微波介质陶瓷及其制备方法 |
TW201140316A (en) * | 2010-04-30 | 2011-11-16 | Asus Technology Suzhou Co Ltd | Storage apparatus and associated controlling method applied to computer system |
CN103152394B (zh) | 2013-02-06 | 2016-09-28 | 华为技术有限公司 | 数据存取***、内存共享设备及数据读取方法 |
CN109376123B (zh) * | 2014-08-12 | 2022-08-19 | 华为技术有限公司 | 管理文件的方法、分布式存储***和管理节点 |
CN106294210B (zh) * | 2015-06-26 | 2019-06-11 | 伊姆西公司 | 用于处理物理驱动器的移动的方法及装置 |
CN104991869B (zh) * | 2015-07-31 | 2017-11-10 | 成都腾悦科技有限公司 | 一种微处理器存储管理方法 |
US10360205B2 (en) | 2015-09-23 | 2019-07-23 | International Business Machines Corporation | Cooperative MKEY locking for managing infiniband networks |
US10432470B2 (en) * | 2015-09-23 | 2019-10-01 | International Business Machines Corporation | Distributed subnet manager for InfiniBand networks |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4956282A (en) * | 1985-07-29 | 1990-09-11 | Calgene, Inc. | Mammalian peptide expression in plant cells |
US5977438A (en) * | 1988-02-26 | 1999-11-02 | Biosource Technologies, Inc. | Production of peptides in plants as viral coat protein fusions |
US5316931A (en) * | 1988-02-26 | 1994-05-31 | Biosource Genetics Corp. | Plant viral vectors having heterologous subgenomic promoters for systemic expression of foreign genes |
US5495070A (en) * | 1988-10-04 | 1996-02-27 | Agracetus, Inc. | Genetically engineering cotton plants for altered fiber |
NL8901932A (nl) * | 1989-07-26 | 1991-02-18 | Mogen Int | Produktie van heterologe eiwitten in planten of plantecellen. |
US5959177A (en) * | 1989-10-27 | 1999-09-28 | The Scripps Research Institute | Transgenic plants expressing assembled secretory antibodies |
US5202422A (en) * | 1989-10-27 | 1993-04-13 | The Scripps Research Institute | Compositions containing plant-produced glycopolypeptide multimers, multimeric proteins and method of their use |
JP3102495B2 (ja) * | 1989-12-28 | 2000-10-23 | 株式会社日立製作所 | 仮想記憶管理方法 |
CA2074355C (en) * | 1990-01-22 | 2008-10-28 | Ronald C. Lundquist | Method of producing fertile transgenic corn plants |
UA48104C2 (uk) * | 1991-10-04 | 2002-08-15 | Новартіс Аг | Фрагмент днк, який містить послідовність,що кодує інсектицидний протеїн, оптимізовану для кукурудзи,фрагмент днк, який забезпечує направлену бажану для серцевини стебла експресію зв'язаного з нею структурного гена в рослині, фрагмент днк, який забезпечує специфічну для пилку експресію зв`язаного з нею структурного гена в рослині, рекомбінантна молекула днк, спосіб одержання оптимізованої для кукурудзи кодуючої послідовності інсектицидного протеїну, спосіб захисту рослин кукурудзи щонайменше від однієї комахи-шкідника |
US5670349A (en) * | 1993-08-02 | 1997-09-23 | Virginia Tech Intellectual Properties, Inc. | HMG2 promoter expression system and post-harvest production of gene products in plants and plant cell cultures |
DE69529495T2 (de) * | 1994-01-21 | 2003-06-12 | Powderject Vaccines, Inc. | Gasbetätigtes element zum austragen von genmaterial |
US6080560A (en) * | 1994-07-25 | 2000-06-27 | Monsanto Company | Method for producing antibodies in plant cells |
US5615352A (en) * | 1994-10-05 | 1997-03-25 | Hewlett-Packard Company | Methods for adding storage disks to a hierarchic disk array while maintaining data availability |
JPH0973412A (ja) * | 1995-06-30 | 1997-03-18 | Toshiba Corp | データ転送方法及びメモリ管理装置 |
ES2326705T3 (es) * | 1995-09-14 | 2009-10-16 | Virginia Tech Intellectual Properties, Inc. | Produccion de enzimas lisosomicas en sistemas de expresion basados en plantas. |
JPH0991230A (ja) * | 1995-09-26 | 1997-04-04 | Matsushita Electric Ind Co Ltd | データ転送システム |
DE59509980D1 (de) * | 1995-09-28 | 2002-02-07 | Endress Hauser Gmbh Co | Elektronikgehäuse |
US5804694A (en) * | 1995-11-06 | 1998-09-08 | Prodigene, Inc. | Commercial production of β-glucuronidase in plants |
US5819310A (en) * | 1996-05-24 | 1998-10-06 | Emc Corporation | Method and apparatus for reading data from mirrored logical volumes on physical disk drives |
JPH10105345A (ja) * | 1996-09-27 | 1998-04-24 | Fujitsu Ltd | アレイディスク装置 |
US5926836A (en) * | 1996-12-03 | 1999-07-20 | Emc Corporation | Computer and associated method for restoring data backed up on archive media |
US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
US5990284A (en) * | 1997-09-04 | 1999-11-23 | Univera Pharmaceuticals, Inc. | Process for the isolation and purification of zeamatin |
US6223269B1 (en) * | 1997-09-27 | 2001-04-24 | Emc Corporation | Stacked mapped storage system |
US6442650B1 (en) * | 1997-10-06 | 2002-08-27 | Emc Corporation | Maximizing sequential output in a disk array storage device |
US6356991B1 (en) * | 1997-12-31 | 2002-03-12 | Unisys Corporation | Programmable address translation system |
US6037456A (en) * | 1998-03-10 | 2000-03-14 | Biosource Technologies, Inc. | Process for isolating and purifying viruses, soluble proteins and peptides from plant sources |
JP3672159B2 (ja) * | 1998-03-31 | 2005-07-13 | ヤマハ株式会社 | 音源システム |
US6269431B1 (en) * | 1998-08-13 | 2001-07-31 | Emc Corporation | Virtual storage and block level direct access of secondary storage for recovery of backup data |
US6457139B1 (en) * | 1998-12-30 | 2002-09-24 | Emc Corporation | Method and apparatus for providing a host computer with information relating to the mapping of logical volumes within an intelligent storage system |
US6442649B1 (en) * | 1999-08-18 | 2002-08-27 | Intel Corporation | Dynamic expansion of storage device array |
US6434681B1 (en) * | 1999-12-02 | 2002-08-13 | Emc Corporation | Snapshot copy facility for a data storage system permitting continued host read/write access |
US6341341B1 (en) * | 1999-12-16 | 2002-01-22 | Adaptec, Inc. | System and method for disk control with snapshot feature including read-write snapshot half |
US6665787B2 (en) * | 2000-02-29 | 2003-12-16 | International Business Machines Corporation | Very high speed page operations in indirect accessed memory systems |
US6662289B1 (en) * | 2001-05-15 | 2003-12-09 | Hewlett-Packard Development Company, Lp. | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems |
-
2002
- 2002-10-10 US US10/268,741 patent/US6920521B2/en not_active Expired - Fee Related
-
2003
- 2003-08-13 CN CN03127739.XA patent/CN1235148C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6920521B2 (en) | 2005-07-19 |
US20040073742A1 (en) | 2004-04-15 |
CN1489058A (zh) | 2004-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1235148C (zh) | 管理数据处理器***中虚拟化的物理存储器的方法和*** | |
CN1227593C (zh) | 存储控制器和处理器中管理虚拟化物理存储器方法和*** | |
CN1227594C (zh) | 管理多处理器***中虚拟化的物理存储器的方法和*** | |
CN1084005C (zh) | 用于动态控制地址空间分配的方法和设备 | |
US10042814B2 (en) | System and method for using a mask register to track progress of gathering and scattering elements between data registers and memory | |
US6895491B2 (en) | Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching | |
US6662289B1 (en) | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems | |
EP0258736B1 (en) | Parallel computer with distributed shared memories and distributed task activating circuits | |
US5095424A (en) | Computer system architecture implementing split instruction and operand cache line-pair-state management | |
CA1165898A (en) | Computer having indexed local ram | |
US5418927A (en) | I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines | |
US7856542B1 (en) | Paging cache optimization for virtual machine | |
US5297285A (en) | System for dynamically linking modular portions of computer software | |
EP0026589A2 (en) | Multi-programming data processing system process suspension | |
CN102985910A (zh) | 对无用存储单元收集的gpu支持 | |
CN1301473C (zh) | 多处理器***共享引导模块的方法 | |
US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
EP0175620A2 (en) | Access verification arrangement for digital data processing system which has demand-paged memory | |
EP0532690B1 (en) | Method and apparatus for managing page zero memory accesses in a multi-processor system | |
CN1016830B (zh) | 利用存取和故障逻辑信号保护主存储器单元的设备和方法 | |
CN112470134B (zh) | 数据处理装置和数据处理方法 | |
EP0271187B1 (en) | Split instruction and operand cache management | |
EP0389886B1 (en) | Ring reduction logic mechanism | |
US20130262790A1 (en) | Method, computer program and device for managing memory access in a multiprocessor architecture of numa type | |
US20050138340A1 (en) | Method and apparatus to reduce spill and fill overhead in a processor with a register backing store |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060104 |