向物理内存分配虚拟内存的方法、存储控制器和计算机系统的制作方法

文档序号:6439412阅读:168来源:国知局
专利名称:向物理内存分配虚拟内存的方法、存储控制器和计算机系统的制作方法
技术领域
一般来说,本发明涉及计算机系统,具体来说,涉及计算机的内存子系统,更具体来说,涉及提供虚拟内存和物理内存之间的有效的映射的方法。
背景技术
图1显示了常规的计算机系统10的基本结构。计算机系统10可以具有一个或多个处理单元,图中描述了其中两个处理单元12a和12b,它们连接到各种外围设备,包括输入/输出(I/O)设备14(如显示监视器、键盘和永久存储设备),内存设备16(如随机存取存储器或RAM),供处理单元用来执行程序指令,以及固件18,其主要用途是每当计算机首次打开时从其中一个外围设备(通常是永久存储设备)中寻找和加载操作系统。处理单元12a和12b通过各种装置与外围设备进行通信,包括通用互连或总线20。计算机系统10可以具有许多其他未显示的组件,如用于连接到调制解调器或打印机的串行、并联和通用总线端口。本领域技术人员应进一步理解,有其他组件可以与图1的方框图中显示的那些组件一起使用;可以使用显示适配器来控制视频显示监视器,可以使用存储控制器访问内存16等等。此外,可以不将I/O设备14直接连接到总线20,可以将它们连接到辅助(I/O)总线,所述辅助(I/O)总线再进一步连接到I/O电桥,再连接到总线20。计算机可以具有两个以上的处理单元。
在对称多处理器(SMP)计算机中,所有处理单元基本上都是相同的,即,它们都使用共同的指令和协议集或子集来进行操作,一般来说,具有相同的体系结构。图1显示了一种典型的体系结构。处理单元包括处理器核心22,所述处理器核心具有多个寄存器和执行单元,所述寄存器和执行单元执行程序指令,以便使计算机运转。一个处理单元的示例包括由IBM公司销售的PowerPCTM处理器。处理单元还可以具有一个或多个高速缓存,如指令高速缓存24和数据高速缓存26,所述指令高速缓存和数据高速缓存是使用高速内存设备实现的。高速缓存通常用于临时存储可能反复被处理器访问的值,以便通过避免从内存16中加载值来提高处理速度。当这些高速缓存与处理器核心集成在一个集成芯片28上时,它们被称为“机载”。每一个高速缓存都与高速缓存控制器(未显示)关联,所述高速缓存控制器对处理器核心和高速缓冲存储器之间的数据传输进行管理。
处理单元12可以包括其他高速缓存,如高速缓存30,该高速缓存被称为二级(L2)高速缓存,因为它支持机载(一级)高速缓存24和26。换句话说,高速缓存30充当内存16和机载高速缓存之间的中介,所能存储的信息量(指令和数据)比机载高速缓存存储的信息量大得多,但访问时间比较长。例如,高速缓存30可以是存储容量为256或512千字节的芯片,而处理器可以是具有总存储量为64千字节的机载高速缓存的IBM PowerPCTM604系列处理器。高速缓存30连接到总线20,从内存16到处理器核心22的所有信息的加载操作通常都是通过高速缓存30进行的。虽然图1只描述了二级高速缓存层次结构,但是,也可以提供多级高速缓存层次结构,可以有多个互连的高速缓存的级别。主内存可以进一步在非均匀存储器阵列(NUMA)中的多个处理器群集之间进行分配。
高速缓存具有多个区块,分别存储各种程序指令和操作数数据值。任何高速缓存中的区决都可以被分成叫做集或同余类的区块组。集是给定内存区块可以驻留在其中的高速缓存区块的集合。对于任何给定的内存区块,在高速缓存中有一个唯一的集,区块可以根据预置的映射函数映射到所述唯一的集中。一个集中的区块的数量被称为高速缓存的关联性,例如,2路集关联表示,对于任何给定内存区块,高速缓存中有两个区块可以被映射到其中的两个内存区块;然而,主内存中的多个不同的区块可以映射到任何给定的集。1路集关联高速缓存是直接映射的,即,只有一个高速缓存区块可以包含特定的内存区块。如果内存区块可以占用任何高速缓存区块,即,有一个同余类,并且地址标记是内存区块的全地址,则可以说高速缓存是完全关联的。
典型的高速缓存线(区块)包括地址标记字段、状态位字段、包含性位字段,以及用于存储程序指令或操作数数据的值字段。状态位字段和包含性位字段用于维护多处理器计算机系统中的高速缓存的一致性(以指出高速缓存中存储的值的有效性)。例如,一致性状态可用于指出高速缓存线有效但不一定与主内存一致,即,当一个进程将值写入到该高速缓存线中,但该值还没有沿着内存层次结构向下迁移到“系统”内存中(这样的高速缓存线被称为“脏的”)。地址标记是对应的内存区块的全地址的子集。传入的地址与地址标记字段内的其中一个标记比较匹配表示高速缓存“命中”。高速缓存中的所有地址标记的集合(有时包括状态位和包含性位字段)被称为目录,所有值字段的集合是高速缓存条目阵列。
当一个给定高速缓存的同余类中的所有区块已满并且该高速缓存接收到发往映射到全部同余类的内存位置的请求时,无论是读取还是写入请求,高速缓存都必须清除当前正在类中的其中一个区块。高速缓存通过本领域技术人员通常所知道的许多方法之一(最近最少使用的(LRU)、随机、伪LRU等等)选择要清除的区块。如果修改了所选区块中的数据,则该数据将写入到内存层次结构中的次最低级别,可能是另一个高速缓存(在L1或机载高速缓存的情况下)或主内存(在L2高速缓存的情况下,如图1的二级体系结构中所描述的)。根据包含的原理,层次结构的较低级别已经具有一个区块可用于保留写入的修改数据。然而,如果所选区块中的数据没有修改,则只需丢弃该区块,而不写入到层次结构中的次最低级别。此从层次结构的一个级别中删除区块的过程被称为清除。在此过程结束时,高速缓存不再保留被清除区块的区块的副本。
应用程序利用内存的过程如图2所示。应用程序是使用被称为虚拟内存的相对内存地址来进行编译的,所述相对内存地址对应于物理内存中的位置。例如,在两个进程32a、32b中,每一个进程都利用从0到4千兆字节(GB)的虚拟内存地址,但这些虚拟地址映射到内存16中的不同的物理地址,可以提供64GB的总物理内存。一个进程的内存被分成多个“页面”以比较有效地使用物理内存,因为一个进程在任何给定时间都不需要访问所有虚拟内存空间。虚拟内存映射允许多个进程共享内存的给定物理页面,如物理页面34所指出的。虚拟到物理内存的映射是在处理器核心22通过提供翻译后援缓冲器(TLB)29来进行处理的,所述翻译后援缓冲器的条目跟踪当前的虚拟到物理内存地址分配。
许多计算机体系结构都支持多种虚拟页面大小。比较大的页面(大于最小的虚拟页面大小)有时被称为“超级页面”,这些虚拟超级页面映射到大小类似的“超级”物理页面。如此,在页面大小是4千字节(KB)的系统中,64KB的虚拟超级页面映射到构成64KB的16个相邻的4KB的物理页面。超级页面通常在虚拟和物理地址空间方面都具有对准要求。如此,64KB的虚拟超级页面通常必须在64KB的边界上对齐。同样,它将映射到其中的64KB的物理页面也必须在64KB的边界上对齐。然而,使用超级页面也会产生缺点。尽管超级页面可以通过减少TLB中需要同时维护的条目的数量改进TLB命中率,但是它们也会在应用程序不使用整个超级页面的情况下导致物理内存利用不足的缺点。
这一缺点可以通过提供基于应用程序的需要动态地改变超级页面大小的能力来加以解决。基于应用程序的执行特征动态地改变超级页面大小的概念是已知的;请参阅Romer等人所著的题为“ReducingTLB and Memory Overhead Using Online Superpage Promotion”的文章(22nd Annual Proceedings of the International Symposium onComputer Architecture,1995)。该解决方案采取软件引导的内存复制,以便使相邻的物理页面集保留应用程序数据。然而,此方法仍有缺点。当操作系统(OS)判断必须将两个或更多(超级)页面接合为较大的超级页面时,它首先留出足够大的相邻的物理页面集以映射较大的超级页面,并从高速缓存中清空任何脏线。接下来,它使用处理器将数据从原始物理页面集中复制到构成超级页面的物理页面。只有在完成复制之后才能通过接合页面表条目来形成超级页面。在此时间内,应用程序仍没有摆脱比较差的TLB行为的影响。
另一种处理此缺点的方法是使用硬件方法,如Fang等人所著的题为“Reevaluating Online Superpage Promotion with HardwareSupport”的文章中所讨论的(Proceedings of the Seventh InternationalSymposium on High Performance Computer Architecture,pp.63-72,January 2001)。该脉冲(Impulse)方法不实际将页面复制到新物理位置,而是在主存储控制器提供额外的地址重新映射级别。重新映射的地址作为虚拟地址的映射被插入到TLB。存储控制器为这些“阴影”内存映射维护其自己的页面表。Impulse方法也具有其缺点。首先,物理超级页面不是相邻的。其次,存储控制器页面表的大小限制了重新映射的超级页面的可用性,映射表会快速地增大。在具有4KB页面的典型的4GB的应用程序中,映射表会很容易地需要一百万以上的条目。最后,此查找过程位于内存访问的关键路径上。这些局限性在具有多个存储控制器的NUMA系统中会更加严重。
鉴于前述的内容,应该发明一种改进的超级页面接合方法,该方法不应该受到硬件表的大小的限制,但可以使应用程序TLB行为立即得到改善,即,无需等待软件引导的复制。如果该方法能够轻松地适用于NUMA系统,将是比较有利的。

发明内容
因此,本发明的一个目的是提供在数据处理系统中使用的超级页面接合的改善的方法。
本发明的另一个目的是提供这样的方法促进有效的超级页面接合,同时降低与页面复制关联的延迟。
本发明还有一个目的是提供在包括一个或多个高速缓存级别的内存层次结构中迁移虚拟到物理内存映射的硬件支持的方法。
前述的目的是以在数据处理系统中将虚拟内存分配到物理内存的方法来实现的,一般来说,包括如下步骤为新虚拟超级页面分配对齐的、相邻的物理内存页面集,指示存储控制器将对应于旧映射的多个物理内存页面移到对应于新页面映射的潜在地不同的物理内存页面集,然后当存储控制器仍在将旧物理内存页面复制到新物理内存页面集时,使用新页面映射访问构成超级页面的虚拟内存页面。在一个实施例中,存储控制器使用映射表,所述映射表用于临时存储旧页面地址和新页面地址的条目,并在每一个条目的复制完成之后,释放映射表中的条目。在复制过程中,对受影响的页面的访问是按如下方式处理的。对当前正在被复制的新页面映射的地址的任何读取操作都被定向到旧页面映射的对应的地址。对当前正在被复制的新页面映射的地址的任何写入操作都被定向到新页面映射的地址和旧页面映射的对应的地址。对还没有被复制的新页面映射的地址的任何写入操作都只被定向到旧页面映射的对应的地址。在由存储控制器完成内存页面的复制之前,处理器核心中的翻译后援缓冲器(TLB)条目对于新页面地址而更新。本发明可以通过允许一个存储控制器中的条目指向新页面映射中的位于由其他存储控制器控制的远程存储器阵列中的物理页面而扩展到非均匀存储器阵列(NUMA)系统。
对于具有高速缓冲存储器的系统,受到页面移动影响的任何高速缓存条目都可以通过根据新页面映射修改其地址标记来进行更新。此标记修改可以仅限于脏一致性状态下的高速缓存条目,即,只用于包含在内存层次结构中别处不存在的有效值的那些条目。高速缓存可以进一步基于已修改的地址标记的更改的同余类重新定位高速缓存条目。
通过下面详细的描述,本发明的上述以及其他目的、功能和优点将变得显而易见。


通过参考附图,那些本领域技术人员将会更好地理解本发明,本发明的目的、特点和优点将变得显而易见。
图1是常规的计算机系统的方框图,描述了包括主内存设备和多个内存高速缓存的内存层次结构;图2是如图1显示的计算机系统中的虚拟到物理内存映射的常规技术的图形表示;图3是根据本发明构建的内存子系统的一个实施例的方框图,所述内存子系统具有存储控制器,所述存储控制器允许计算机系统当组成页面的复制仍在进行中时快速使用新映射的超级页面地址;图4是具有非均匀存储器阵列的多处理器计算机系统的一个实施例的方框图,所述多处理器计算机系统优选情况下可以使用类似于图3的存储控制器的多个存储控制器来实现本发明;图5是根据本发明构建的高速缓冲存储器的一个实施例的方框图,所述高速缓冲存储器基于新映射的虚拟到物理内存位置更新地址标记信息并以更改的关联性重新定位高速缓存线;以及图6是说明根据本发明的一个实施例的逻辑流程的图表。
不同图形中的相同的附图标记表示类似或相同的项目。
具体实施例方式
现在参考附图,具体来说,参考图3,该图描述了根据本发明构建的内存子系统的一个实施例40。一般来说,内存子系统40由存储控制器42和系统或主存储器阵列44组成,并用于促进操作系统的超级页面接合,从而控制数据处理系统中的虚拟到物理页面的映射。操作系统(OS)可以具有许多常规的功能,包括确定页面映射的适当软件,并判断何时将页面接合到较大的(超级)页面中比较合适;这样的详细信息超出了本发明的范围,但对于本领域技术人员是显而易见的。
内存子系统40为超级页面接合提供了硬件解决方案,减少或清除了在采用现有技术的软件引导的复制解决方案中会发生的比较差的TLB行为。在本发明中,OS可以立即将其组成页面的映射更改为新超级页面的一个映射,延迟接近于零,无需等待实际页面复制完成。OS可以立即使用新映射,因为存储控制器维护了从新物理页面返回旧物理页面的临时映射,直到新物理页面被更新。结果,应用程序TLB行为会立即改善。
存储控制器42具有一个输入端,用于从通用互连或系统总线接收读取和写入指令,并以已知的方式通过访问主存储器阵列44来处理那些指令。存储控制器42还接收内存管理指令,包括有关超级页面接合的指令。具体来说,存储控制器42可以从操作系统中接收定义作为接合过程的一部分复制到新物理内存位置的页面集。旧物理页面地址和新物理页面地址临时存储在映射表46中。当页面到页面的复制正在进行中时,映射表46维护了映射信息。虽然映射表46中的条目的数量是有限的,但是它们是可重复使用的,因为一旦复制完成,就不再需要它们,因此,重复的超级页面形成是无限的。依据特定的操作系统和涉及的页面大小,映射表46中的条目的数量可以不同,但具有32个槽的表是典型的。
存储控制器42可以利用状态引擎48来调试复制过程。状态引擎48按顺序读取映射表46中的成对的FROM(旧)和TO(新)地址,并控制直接存储器访问(DMA)引擎50,所述直接存储器访问引擎不让操作系统接触,以避免执行复制。DMA引擎50在后台运行,即,无需中断程序处理。当映射表46中的给定的页面的复制懒洋洋地完成时,该条目被状态引擎48清空,即,它被从临时映射函数中取出,一旦所有复制都已经完成,不保留任何映射。OS可以相应地立即使用新超级页面映射,无需等待物理页面的实际复制完成,对那些页面的读取/写入指令可以由存储控制器42通过引用旧物理页面地址来进行处理,直到新物理页面被更新。
现在参考图4,该图描述了具有非均匀存储器阵列(NUMA)的多处理器计算机系统52的一个实施例,所述多处理器计算机系统优选情况下可以利用本发明来进行页面迁移。计算机系统52具有许多处理群集54a、54b。尽管只描述了两个处理群集,但是,系统可以具有更多。一个给定处理群集包括两个或更多处理单元56,每一个处理单元都由处理器核心和一个或多个高速缓存级别组成,处理器核心和高速缓存级别通过系统总线58互连到存储控制器42、本地存储器阵列44,以及网络接口60。处理群集可以通过将两个网络接口60互相连接起来的处理器间的通信总线62进行交互。
计算机系统52没有集中式主内存,而是将主内存跨不同处理群集中的多个本地存储器阵列44进行分配,并使用多个存储控制器,所述多个存储控制器对于超级页面接合过程具有相同的维护临时映射的能力。存储控制器的映射表中的指针可以横跨存储控制器边界,即,它们可以映射到可用内存的总量中的任何地方的物理位置,而不只是映射到其对应的本地存储器阵列中的该控制器控制的那些物理位置。如此,虚拟页面可以轻松地从一个处理群集中的旧物理位置迁移到第二处理群集中的新物理位置,例如,使数据集接近于正在使用数据的处理群集。
对于利用高速缓存的诸如计算机系统52之类的数据处理系统,页面迁移/接合必须考虑到其页面映射已经改变的任何当前(有效)高速缓存条目。解决这一问题的一种方式是通过清空旧页面映射中的所有高速缓存区块(即,将高速缓存的值写入回系统内存并使高速缓存线失效)。清空任何受影响的高速缓存线的操作可以由操作系统使用标准高速缓存指令来执行,但是这种方法会产生另外的延迟。另一种方法是提供高速缓存,可以修改该高速缓存中的受影响的数据线的地址标记,无需向主内存中移动数据或从主内存中移动数据。图5说明了根据本发明构建的这样的高速缓冲存储器70的一个实施例,所述高速缓冲存储器基于新映射的虚拟到物理内存位置更新地址标记信息。
高速缓存70包括高速缓存控制器72、数据阵列74以及其条目分别对应于数据阵列74中的值的标记阵列76。高速缓存控制器72以已知的方式接收高速缓存指令并访问数据阵列74和标记阵列76,以执行读取和写入操作。高速缓存控制器72还从OS接收页面接合/迁移指令,所述页面接合/迁移指令可以广播到计算机系统中的所有高速缓存。高速缓存控制器72将页面映射信息传递到状态机78。状态机78检查标记阵列76中的每一个条目,以判断当前是否有高速缓存线受到重新映射的影响。如果有有效的标记在重新映射的地址范围内,则还另外检查其一致性状态,以确定适当的操作。对于“清洁的”一致性状态(表示对应的高速缓存值是有效的,并存储在内存层次结构中的别处),可以基于新映射重写高速缓存标记,以便当通过新映射进行访问时不会产生更多的延迟。对于“脏”一致性状态(表示对应的高速缓存值是有效的,但不存储内存层次结构中的别处),可以基于新映射重写标记。为该行维护了脏一致性状态,因此,优选情况下此标记开关允许脏数据停留在高速缓存中。不论是哪一种情况(清洁的或脏的),都没有必要将任何数据写入到系统内存中或者从系统内存中读取任何数据,可以保证所有其余的有效的标记与新映射一致。
对于集关联的高速缓存,还必须考虑其标记已经修改的任何脏高速缓存线的适当的同余类。状态机78判断修改的标记的同余类,如果不同于旧标记的同余类,则指示高速缓存控制器72重新定位受影响的高速缓存线。高速缓存控制器72处理此类似于标准写入指令的指令,搜索适当的集中的可用的高速缓存线(清洁的或无效的),并重写数据,如在80中所指出的那样。然后,使旧高速缓存线失效。如果新集中没有高速缓存线可用,则优选情况下使用默认的清除过程(例如,最近最少使用的)以使一条线可用,并并数据重写到该条线。或者,如果对于新集没有发现清洁的或无效的条目,则可以对高速缓存控制器72进行编程,以将受影响的高速缓存线清空到内存层次结构的较低级别。
高速缓存70的所描述的实施例使用状态机78本地控制标记重新映射,但该过程可以由其关联的处理器核心进行远程控制。
通过参考图6的流程图,可以对本发明有进一步的理解。当OS判断将页面集接合到较大的超级页面(90)时,过程开始。关于这一点,本领域技术人员应该理解,术语“超级页面”不能在狭义的意义上来解释,即,对于页面的实际大小或者接合的较小的页面的总数。OS通过留出相邻的物理页面集来分配页面(92),以映射新超级页面,并将新映射(94)通知给存储控制器。存储控制器创建临时映射表,OS立即开始使用新映射(96)。对于任何相同的映射,即,当超级页面接合导致其新物理地址与旧地址相同的页面复制指令时,不需要条目。为保持一致性,当在更新高速缓存时(100),OS使用保护位停止处理器TLB上的写入操作(98)。此后,将更改TLB条目以反映较大的超级页面(102)。当正在使用新映射时,存储控制器复制页面(104)。当复制继续进行时,可以通过使用新页面映射向存储控制器提及操作来处理到新超级页面的读取操作,存储控制器会将读取转移到旧页面。定向到当前正在被复制的内存位置的写入操作将写入到旧页面和新页面。定向到正在存储控制器映射中但还没有被复制的内存位置的写入操作将只写到旧页面。当在复制页面时,存储控制器会逐渐删除临时映射,直到所有页面复制完成(106)。本发明允许创建由更多(超级)页面构成的超级页面,比图3中的存储控制器42的表46中的槽多。这是通过使用迭代过程创建超级页面来实现的。
虽然是通过参考具体实施例来对本发明进行描述的,但是,此描述不能从狭义的意义上来理解。在参考本发明的说明时,所说明的实施例的各种修改,以及本发明的其他实施例将变得显而易见。因此,可以预期,在不偏离如所附的权利要求所定义的本发明的精神和范围的情况下,可以进行各种修改。
权利要求
1.一种在数据处理系统中将虚拟内存分配到物理内存的方法,包括下列步骤为新的虚拟超级页面映射分配数据处理系统的物理内存页面集;指示数据处理系统的存储控制器将对应于旧页面映射的多个虚拟内存页面移到对应于新虚拟超级页面映射的物理内存页面集中;以及当存储控制器正在将旧物理内存页面复制到新物理内存页面时,使用新虚拟超级页面映射至少访问其中一个虚拟内存页面。
2.根据权利要求1所述的方法,其中,所述分配步骤分配相邻的物理内存页面集。
3.根据权利要求1所述的方法,其中,所述访问步骤包括指示对当前正在被复制到旧页面映射的对应的地址的新页面映射的地址执行读取操作的步骤。
4.根据权利要求1所述的方法,其中,所述访问步骤包括指示对当前正在被复制到新页面映射的地址和旧页面映射的对应的地址的新页面映射的地址执行写入操作的步骤。
5.根据权利要求1所述的方法,其中,所述访问步骤包括指示对当前还没有被复制到旧页面映射的对应的地址的新页面映射的地址执行写入操作的步骤。
6.根据权利要求1所述的方法,进一步包括通过根据新页面映射修改高速缓存条目的地址标记,更新数据处理系统的高速缓冲存储器中的对应于虚拟内存页面中的内存位置的条目的步骤。
7.一种存储控制器,包括用于接收页面重新映射指令的输入装置;映射表,用于临时存储与页面重新映射指令关联的旧页面地址和对应的新页面地址的条目;以及内存访问设备,所述内存访问设备指示将内存页面从旧页面地址复制到新页面地址,并在每一个条目的复制完成之后,释放所述映射表中的条目。
8.根据权利要求7所述的存储控制器,其中,所述映射表具有32个槽,用于接收对应的旧页面地址和新页面地址对。
9.根据权利要求7所述的存储控制器,其中,所述内存访问设备指示对当前正在被复制到对应的旧页面地址的新页面地址执行读取操作。
10.根据权利要求7所述的存储控制器,其中,所述内存访问设备指示对当前正在被复制到新页面地址和对应的旧页面地址的新页面地址执行写入操作。
11.根据权利要求7所述的存储控制器,其中,所述内存访问设备指示对当前还没有被复制到对应的旧页面地址的新页面地址执行写入操作。
12.根据权利要求7所述的存储控制器,其中,所述内存访问设备包括状态引擎,所述的状态引擎按顺序读取所述映射表中的成对的旧和新页面地址。
13.根据权利要求12所述的存储控制器,其中,所述内存访问设备进一步包括由所述状态机控制的直接存储器访问(DMA)引擎,所述直接存储器访问引擎执行实际的内存页面的复制。
14.一种计算机系统,包括处理单元;连接到所述处理单元的互连总线;存储器阵列;以及连接到所述互连总线和所述存储器阵列的存储控制器,其中,所述存储控制器在所述处理单元使用新页面地址执行程序指令时将内存页面从旧页面地址复制到新页面地址。
15.根据权利要求14所述的计算机系统,其中所述处理单元包括处理器核心,所述处理器核心具有翻译后援缓冲器(TLB),其条目跟踪当前的虚拟到物理内存地址分配;以及在由存储控制器完成内存页面的复制之前,所述TLB条目对于新页面地址而更新。
16.根据权利要求14所述的计算机系统,其中所述处理单元具有处理器核心和关联的高速缓存;以及所述高速缓存修改对应于新页面地址中的内存位置的高速缓存条目的地址标记。
17.根据权利要求16所述的计算机系统,其中,所述高速缓存响应高速缓存条目包含在系统中的别处不存在的有效值的判断修改高速缓存条目的地址标记。
18.根据权利要求16所述的计算机系统,其中,所述高速缓存进一步基于已修改的地址标记的更改的同余类重新定位高速缓存条目。
19.根据权利要求14所述的计算机系统,其中,所述存储控制器包括映射表,用于临时存储旧页面地址和对应的新页面地址的条目;以及内存访问设备,所述内存访问设备指示将内存页面从旧页面地址复制到新页面地址,并在每一个条目的复制完成之后,释放所述映射表中的条目。
20.根据权利要求14所述的计算机系统,其中,所述处理单元、所述互连总线、所述存储器阵列和所述存储控制器都是第一个处理群集的组成部分,并进一步包括网络接口,所述网络接口允许所述第一处理群集与第二处理群集进行通信,所述存储控制器至少具有一个新页面地址的指针,映射到所述第二处理群集中的物理内存位置。
21.处理单元的高速缓冲存储器,包括存储与系统内存中的相应的位置关联的值的数据阵列;存储对应于所述数据阵列中的值的地址标记的标记阵列;高速缓存控制器,用于接收高速缓存指令并访问所述数据阵列和所述标记阵列,以执行读取和写入操作;以及状态机,用于基于高速缓存条目的关联的内存位置的新内存映射,修改高速缓存条目的地址标记。
22.根据权利要求21所述的高速缓冲存储器,其中,所述状态机响应高速缓存条目具有脏一致性状态的判断修改地址标记。
23.根据权利要求21所述的高速缓冲存储器,其中,所述高速缓存控制器基于已修改的地址标记的更改的同余类重新定位高速缓存条目。
全文摘要
一种在数据处理系统中将虚拟内存分配到物理内存的方法,为新页面映射分配相邻的物理内存页面集,指示存储控制器根据新页面映射移动虚拟内存页面,然后当存储控制器仍在将虚拟内存页面复制到新物理内存页面集时,允许使用新页面映射访问虚拟内存页面。存储控制器可以使用映射表,所述映射表用于临时存储旧页面地址和新页面地址的条目,并在每一个条目的复制完成之后,释放条目。在由存储控制器完成内存页面的复制之前,处理器核心中的翻译后援缓冲器(TLB)条目对于新页面地址而更新。本发明可以扩展到非均匀存储器阵列(NUMA)系统。对于具有高速缓冲存储器的系统,受到页面移动影响的任何高速缓存条目都可以通过根据新页面映射修改其地址标记来进行更新。此标记修改可以仅限于脏一致性状态下的高速缓存条目。高速缓存可以进一步基于任何已修改的地址标记的更改的同余类重新定位高速缓存条目。
文档编号G06F12/08GK1617113SQ20041009225
公开日2005年5月18日 申请日期2004年11月5日 优先权日2003年11月13日
发明者拉马克利什宁·拉加蒙尼, 艾尔莫塔兹贝拉赫·N·艾尔诺扎伊, 詹姆斯·L·彼德森, 哈齐姆·沙菲 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1