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

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

Info

Publication number
CN1617113A
CN1617113A CNA2004100922570A CN200410092257A CN1617113A CN 1617113 A CN1617113 A CN 1617113A CN A2004100922570 A CNA2004100922570 A CN A2004100922570A CN 200410092257 A CN200410092257 A CN 200410092257A CN 1617113 A CN1617113 A CN 1617113A
Authority
CN
China
Prior art keywords
memory
page
address
cache
new
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
Application number
CNA2004100922570A
Other languages
English (en)
Other versions
CN1617113B (zh
Inventor
拉马克利什宁·拉加蒙尼
艾尔莫塔兹贝拉赫·N·艾尔诺扎伊
詹姆斯·L·彼德森
哈齐姆·沙菲
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 CN1617113A publication Critical patent/CN1617113A/zh
Application granted granted Critical
Publication of CN1617113B publication Critical patent/CN1617113B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

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

一种在数据处理系统中将虚拟内存分配到物理内存的方法,为新页面映射分配相邻的物理内存页面集,指示存储控制器根据新页面映射移动虚拟内存页面,然后当存储控制器仍在将虚拟内存页面复制到新物理内存页面集时,允许使用新页面映射访问虚拟内存页面。存储控制器可以使用映射表,所述映射表用于临时存储旧页面地址和新页面地址的条目,并在每一个条目的复制完成之后,释放条目。在由存储控制器完成内存页面的复制之前,处理器核心中的翻译后援缓冲器(TLB)条目对于新页面地址而更新。本发明可以扩展到非均匀存储器阵列(NUMA)系统。对于具有高速缓冲存储器的系统,受到页面移动影响的任何高速缓存条目都可以通过根据新页面映射修改其地址标记来进行更新。此标记修改可以仅限于脏一致性状态下的高速缓存条目。高速缓存可以进一步基于任何已修改的地址标记的更改的同余类重新定位高速缓存条目。

Description

向物理内存分配虚拟内存的方法、 存储控制器和计算机系统
技术领域
一般来说,本发明涉及计算机系统,具体来说,涉及计算机的内存子系统,更具体来说,涉及提供虚拟内存和物理内存之间的有效的映射的方法。
背景技术
图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 PowerPCTM 604系列处理器。高速缓存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中的槽多。这是通过使用迭代过程创建超级页面来实现的。
虽然是通过参考具体实施例来对本发明进行描述的,但是,此描述不能从狭义的意义上来理解。在参考本发明的说明时,所说明的实施例的各种修改,以及本发明的其他实施例将变得显而易见。因此,可以预期,在不偏离如所附的权利要求所定义的本发明的精神和范围的情况下,可以进行各种修改。

Claims (23)

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所述的高速缓冲存储器,其中,所述高速缓存控制器基于已修改的地址标记的更改的同余类重新定位高速缓存条目。
CN2004100922570A 2003-11-13 2004-11-05 分配虚拟内存的方法、存储控制器和计算机系统 Expired - Fee Related CN1617113B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/713,733 US8417913B2 (en) 2003-11-13 2003-11-13 Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US10/713,733 2003-11-13

Publications (2)

Publication Number Publication Date
CN1617113A true CN1617113A (zh) 2005-05-18
CN1617113B CN1617113B (zh) 2010-04-07

Family

ID=34573793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100922570A Expired - Fee Related CN1617113B (zh) 2003-11-13 2004-11-05 分配虚拟内存的方法、存储控制器和计算机系统

Country Status (2)

Country Link
US (2) US8417913B2 (zh)
CN (1) CN1617113B (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462941C (zh) * 2006-01-26 2009-02-18 深圳艾科创新微电子有限公司 一种实现可配置risc cpu中的存储器空间的方法
CN101827071A (zh) * 2008-06-09 2010-09-08 飞塔公司 网络协议集合加速
CN101477477B (zh) * 2009-01-12 2012-01-11 华为技术有限公司 内核空间隔离方法、空间管理实体及系统
CN102460400A (zh) * 2009-06-29 2012-05-16 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
CN102467399A (zh) * 2010-11-18 2012-05-23 鸿富锦精密工业(深圳)有限公司 基板管理控制器的韧体更新系统及方法
CN102483754A (zh) * 2009-06-26 2012-05-30 森普利维蒂公司 在非均匀存取存储器中的可扩展编制索引
CN102612685A (zh) * 2009-11-16 2012-07-25 微软公司 经由存储器高速缓存操纵的无阻碍数据传送
CN102819497A (zh) * 2012-05-31 2012-12-12 华为技术有限公司 一种内存分配方法、装置及系统
CN103197957A (zh) * 2013-03-20 2013-07-10 无锡江南计算技术研究所 一种用户程序执行时页面复制方法
CN103577333A (zh) * 2012-08-03 2014-02-12 国际商业机器公司 用于自动使用大页面的方法和装置
CN103870333A (zh) * 2012-12-17 2014-06-18 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
CN104298616A (zh) * 2013-07-15 2015-01-21 华为技术有限公司 数据块初始化方法、高速缓冲存储器和终端
CN104917784A (zh) * 2014-03-10 2015-09-16 华为技术有限公司 一种数据迁移方法、装置及计算机系统
WO2016019566A1 (zh) * 2014-08-08 2016-02-11 华为技术有限公司 内存管理方法、装置和系统、以及片上网络
CN105612499A (zh) * 2013-10-29 2016-05-25 华中科技大学 混合高速缓存管理
CN105874440A (zh) * 2014-01-02 2016-08-17 高通股份有限公司 用于对存储器进行碎片整理的系统和方法
CN106776376A (zh) * 2015-11-24 2017-05-31 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN108363620A (zh) * 2017-01-27 2018-08-03 三星电子株式会社 提供虚拟内存容量的内存模块及其操作方法
CN108780441A (zh) * 2016-03-18 2018-11-09 高通股份有限公司 用于定点矩阵乘法的内存减少方法
CN110347614A (zh) * 2019-07-08 2019-10-18 青岛镕铭半导体有限公司 存储空间映射算法、缓存状态机、存储装置、存储介质
CN110383254A (zh) * 2016-12-01 2019-10-25 安培计算有限责任公司 优化与网络节点相关联的内存映射
CN110780806A (zh) * 2018-07-30 2020-02-11 阿里巴巴集团控股有限公司 促进元数据和数据捆绑存储的原子性保证的方法和系统
CN111712802A (zh) * 2018-02-26 2020-09-25 国际商业机器公司 数据存储系统中的虚拟存储驱动器管理
CN112947851A (zh) * 2019-11-25 2021-06-11 阿里巴巴集团控股有限公司 Numa系统和系统中的页面迁移方法
CN113168293A (zh) * 2019-01-31 2021-07-23 华为技术有限公司 用于访问集群存储系统中的缓存的方法和装置

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206906B1 (en) * 2004-03-10 2007-04-17 Sun Microsystems, Inc. Physical address mapping framework
US7363456B2 (en) * 2005-04-15 2008-04-22 International Business Machines Corporation System and method of allocating contiguous memory in a data processing system
US7437529B2 (en) * 2005-06-16 2008-10-14 International Business Machines Corporation Method and mechanism for efficiently creating large virtual memory pages in a multiple page size environment
US7934054B1 (en) 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7516274B2 (en) * 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
JP4940738B2 (ja) * 2006-04-12 2012-05-30 株式会社日立製作所 記憶領域動的割当方法
US9185160B2 (en) * 2007-02-12 2015-11-10 Oracle America, Inc. Resource reservation protocol over unreliable packet transport
KR100867269B1 (ko) * 2007-02-22 2008-11-06 삼성전자주식회사 프로세서의 추론적 로드 명령 실행 방법 및 상기 방법을채용한 프로세서
US9244855B2 (en) 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US8271989B2 (en) * 2008-02-07 2012-09-18 International Business Machines Corporation Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
US8195915B2 (en) * 2008-02-29 2012-06-05 International Business Machines Corporation Mechanism for visualizing memory fragmentation
US8516221B2 (en) * 2008-10-31 2013-08-20 Hewlett-Packard Development Company, L.P. On-the fly TLB coalescing
US9071843B2 (en) * 2009-02-26 2015-06-30 Microsoft Technology Licensing, Llc RDP bitmap hash acceleration using SIMD instructions
US9535767B2 (en) 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
US9529636B2 (en) 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8966195B2 (en) * 2009-06-26 2015-02-24 Hewlett-Packard Development Company, L.P. Direct memory access and super page swapping optimizations for a memory blade
US8645610B2 (en) 2009-06-29 2014-02-04 Hewlett-Packard Development Company, L.P. Organizing and managing a memory blade with super pages and buffers
US8195917B2 (en) * 2009-07-01 2012-06-05 Advanced Micro Devices, Inc. Extended page size using aggregated small pages
US8473684B2 (en) 2009-12-22 2013-06-25 International Business Machines Corporation Delayed replacement of cache entries
US8838935B2 (en) 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
US20120144110A1 (en) * 2010-12-02 2012-06-07 Lsi Corporation Methods and structure for storage migration using storage array managed server agents
US9104690B2 (en) * 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9092359B2 (en) * 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) * 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9176889B1 (en) 2013-03-15 2015-11-03 Google Inc. Virtual machine memory management
WO2015156615A1 (en) * 2014-04-09 2015-10-15 Samsung Electronics Co., Ltd. Application execution method and apparatus
KR102262102B1 (ko) 2014-04-09 2021-06-09 삼성전자 주식회사 애플리케이션 실행 방법 및 장치
CN103984599B (zh) * 2014-04-14 2017-05-17 北京大学 一种提高操作系统大页使用率的方法
US9734066B1 (en) * 2014-05-22 2017-08-15 Sk Hynix Memory Solutions Inc. Workload-based adjustable cache size
RU2610582C2 (ru) * 2014-09-30 2017-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ передачи и способ получения объекта от первого процесса второму процессу, машиночитаемый носитель (2 варианта)
US9542333B2 (en) * 2014-12-04 2017-01-10 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture
US9575881B2 (en) 2014-12-04 2017-02-21 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture
KR101815673B1 (ko) * 2015-05-19 2018-01-11 한양대학교 산학협력단 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법
US10565121B2 (en) * 2016-12-16 2020-02-18 Alibaba Group Holding Limited Method and apparatus for reducing read/write contention to a cache
US10241925B2 (en) 2017-02-15 2019-03-26 Ati Technologies Ulc Selecting a default page size in a variable page size TLB
US10282309B2 (en) 2017-02-24 2019-05-07 Advanced Micro Devices, Inc. Per-page control of physical address space distribution among memory modules
US10339068B2 (en) 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10613990B2 (en) 2017-12-05 2020-04-07 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
US12117940B2 (en) 2017-12-05 2024-10-15 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
US11360794B2 (en) 2018-02-14 2022-06-14 Google Llc System for live migration of virtual machines with assigned peripheral devices
US20200019412A1 (en) * 2018-07-12 2020-01-16 Dell Products L.P. Systems and methods for optimal configuration of information handling resources
CN112115073A (zh) * 2020-09-04 2020-12-22 北京易捷思达科技发展有限公司 应用于Bcache的回收方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US612613A (en) * 1898-10-18 Island
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
US5386526A (en) 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
EP0663636B1 (en) * 1994-01-12 2001-10-31 Sun Microsystems, Inc. Logically addressable physical memory for a virtual memory computer system that supports multiple page sizes
US5835964A (en) * 1996-04-29 1998-11-10 Microsoft Corporation Virtual memory system with hardware TLB and unmapped software TLB updated from mapped task address maps using unmapped kernel address map
US6175906B1 (en) * 1996-12-06 2001-01-16 Advanced Micro Devices, Inc. Mechanism for fast revalidation of virtual tags
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
US5974507A (en) 1997-04-14 1999-10-26 International Business Machines Corporation Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm
US6275897B1 (en) 1997-06-17 2001-08-14 Emc Corporation Remote cache utilization for mirrored mass storage subsystem
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6182198B1 (en) * 1998-06-05 2001-01-30 International Business Machines Corporation Method and apparatus for providing a disc drive snapshot backup while allowing normal drive read, write, and buffering operations
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
US6212613B1 (en) * 1999-03-22 2001-04-03 Cisco Technology, Inc. Methods and apparatus for reusing addresses in a computer
US6434670B1 (en) 1999-11-09 2002-08-13 International Business Machines Corporation Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
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
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
US6732238B1 (en) * 2001-06-08 2004-05-04 Tensilica, Inc. Set-associative cache memory having variable time decay rewriting algorithm
US6581151B2 (en) * 2001-07-18 2003-06-17 Ip-First, Llc Apparatus and method for speculatively forwarding storehit data based on physical page index compare
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US6907494B2 (en) * 2002-10-10 2005-06-14 International Business Machines Corporation Method and system of managing virtualized physical memory in a memory controller and processor system
US6904490B2 (en) * 2002-10-10 2005-06-07 International Business Machines Corporation Method and system of managing virtualized physical memory in a multi-processor system
US7117312B1 (en) 2003-11-17 2006-10-03 Sun Microsystems, Inc. Mechanism and method employing a plurality of hash functions for cache snoop filtering

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462941C (zh) * 2006-01-26 2009-02-18 深圳艾科创新微电子有限公司 一种实现可配置risc cpu中的存储器空间的方法
CN101827071B (zh) * 2008-06-09 2014-05-28 飞塔公司 网络协议集合加速方法与网络装置
CN101827071A (zh) * 2008-06-09 2010-09-08 飞塔公司 网络协议集合加速
CN101477477B (zh) * 2009-01-12 2012-01-11 华为技术有限公司 内核空间隔离方法、空间管理实体及系统
CN102483754B (zh) * 2009-06-26 2015-03-11 森普利维蒂公司 在非均匀存取存储器中的可扩展编制索引
CN102483754A (zh) * 2009-06-26 2012-05-30 森普利维蒂公司 在非均匀存取存储器中的可扩展编制索引
US10176113B2 (en) 2009-06-26 2019-01-08 Hewlett Packard Enterprise Development Lp Scalable indexing
CN102460400A (zh) * 2009-06-29 2012-05-16 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
CN102460400B (zh) * 2009-06-29 2014-09-24 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
US8812817B2 (en) 2009-11-16 2014-08-19 Microsoft Corporation Non-blocking data transfer via memory cache manipulation
CN102612685B (zh) * 2009-11-16 2013-11-06 微软公司 经由存储器高速缓存操纵的无阻碍数据传送
CN102612685A (zh) * 2009-11-16 2012-07-25 微软公司 经由存储器高速缓存操纵的无阻碍数据传送
US8495299B2 (en) 2009-11-16 2013-07-23 Microsoft Corporation Non-blocking data transfer via memory cache manipulation
CN102467399A (zh) * 2010-11-18 2012-05-23 鸿富锦精密工业(深圳)有限公司 基板管理控制器的韧体更新系统及方法
CN102819497B (zh) * 2012-05-31 2015-09-30 华为技术有限公司 一种内存分配方法、装置及系统
CN102819497A (zh) * 2012-05-31 2012-12-12 华为技术有限公司 一种内存分配方法、装置及系统
CN103577333A (zh) * 2012-08-03 2014-02-12 国际商业机器公司 用于自动使用大页面的方法和装置
CN103870333B (zh) * 2012-12-17 2017-08-29 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
WO2014094472A1 (zh) * 2012-12-17 2014-06-26 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
CN103870333A (zh) * 2012-12-17 2014-06-18 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
US9652150B2 (en) 2012-12-17 2017-05-16 Huawei Technologies Co., Ltd. Global memory sharing method and apparatus, and communications system
CN103197957A (zh) * 2013-03-20 2013-07-10 无锡江南计算技术研究所 一种用户程序执行时页面复制方法
CN103197957B (zh) * 2013-03-20 2016-06-08 无锡江南计算技术研究所 一种用户程序执行时页面复制方法
CN104298616A (zh) * 2013-07-15 2015-01-21 华为技术有限公司 数据块初始化方法、高速缓冲存储器和终端
CN104298616B (zh) * 2013-07-15 2017-10-17 华为技术有限公司 数据块初始化方法、高速缓冲存储器和终端
CN105612499B (zh) * 2013-10-29 2018-11-13 华中科技大学 混合高速缓存管理
CN105612499A (zh) * 2013-10-29 2016-05-25 华中科技大学 混合高速缓存管理
CN105874440A (zh) * 2014-01-02 2016-08-17 高通股份有限公司 用于对存储器进行碎片整理的系统和方法
CN105874440B (zh) * 2014-01-02 2017-09-26 高通股份有限公司 用于对存储器进行碎片整理的系统和方法
CN104917784A (zh) * 2014-03-10 2015-09-16 华为技术有限公司 一种数据迁移方法、装置及计算机系统
CN104917784B (zh) * 2014-03-10 2018-06-05 华为技术有限公司 一种数据迁移方法、装置及计算机系统
WO2016019566A1 (zh) * 2014-08-08 2016-02-11 华为技术有限公司 内存管理方法、装置和系统、以及片上网络
CN106776376A (zh) * 2015-11-24 2017-05-31 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN106776376B (zh) * 2015-11-24 2019-08-06 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN108780441B (zh) * 2016-03-18 2022-09-06 高通股份有限公司 用于定点矩阵乘法的存储减少方法
CN108780441A (zh) * 2016-03-18 2018-11-09 高通股份有限公司 用于定点矩阵乘法的内存减少方法
CN110383254A (zh) * 2016-12-01 2019-10-25 安培计算有限责任公司 优化与网络节点相关联的内存映射
CN110383254B (zh) * 2016-12-01 2023-06-23 安培计算有限责任公司 优化与网络节点相关联的内存映射
CN108363620A (zh) * 2017-01-27 2018-08-03 三星电子株式会社 提供虚拟内存容量的内存模块及其操作方法
CN108363620B (zh) * 2017-01-27 2023-01-10 三星电子株式会社 提供虚拟内存容量的内存模块及其操作方法
CN111712802B (zh) * 2018-02-26 2023-08-18 国际商业机器公司 数据存储系统中的虚拟存储驱动器管理
CN111712802A (zh) * 2018-02-26 2020-09-25 国际商业机器公司 数据存储系统中的虚拟存储驱动器管理
CN110780806A (zh) * 2018-07-30 2020-02-11 阿里巴巴集团控股有限公司 促进元数据和数据捆绑存储的原子性保证的方法和系统
CN110780806B (zh) * 2018-07-30 2023-05-09 阿里巴巴集团控股有限公司 促进元数据和数据捆绑存储的原子性保证的方法和系统
CN113168293A (zh) * 2019-01-31 2021-07-23 华为技术有限公司 用于访问集群存储系统中的缓存的方法和装置
CN110347614B (zh) * 2019-07-08 2022-08-12 镕铭微电子(济南)有限公司 存储空间映射算法、缓存状态机、存储装置、存储介质
CN110347614A (zh) * 2019-07-08 2019-10-18 青岛镕铭半导体有限公司 存储空间映射算法、缓存状态机、存储装置、存储介质
CN112947851A (zh) * 2019-11-25 2021-06-11 阿里巴巴集团控股有限公司 Numa系统和系统中的页面迁移方法

Also Published As

Publication number Publication date
CN1617113B (zh) 2010-04-07
US20050108496A1 (en) 2005-05-19
US8417913B2 (en) 2013-04-09
US20070067604A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
CN1617113A (zh) 向物理内存分配虚拟内存的方法、存储控制器和计算机系统
US4985829A (en) Cache hierarchy design for use in a memory management unit
Smith Sequential program prefetching in memory hierarchies
Smith Disk cache—miss ratio analysis and design considerations
US6594751B1 (en) Method and apparatus for pointer relocation optimization for virtual memory mapping and transaction management in a database system
US5390310A (en) Memory management unit having cross-domain control
CN1135477C (zh) 实现动态显示存储器的方法和装置
US5581722A (en) Memory management unit for managing address operations corresponding to domains using environmental control
JP3795985B2 (ja) コンピュータメモリシステムの競合キャッシュ
KR100373313B1 (ko) 캐시 메모리를 관리하는 방법 및 시스템
US5088026A (en) Method for managing a data cache using virtual external storage addresses as arguments
CN1227593C (zh) 存储控制器和处理器中管理虚拟化物理存储器方法和系统
US7472253B1 (en) System and method for managing table lookaside buffer performance
US20100321397A1 (en) Shared Virtual Memory Between A Host And Discrete Graphics Device In A Computing System
US20060101227A1 (en) Method and apparatus for sharing TLB entries
JPH07253926A (ja) キャッシュ・ミスによる時間ペナルティ減少方法
EP3058467A1 (en) Computer processor employing cache memory storing backless cache lines
US6029224A (en) Self-contained memory apparatus having diverse types of memory and distributed control
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
Hill et al. Wisconsin architectural research tool set
US5619673A (en) Virtual access cache protection bits handling method and apparatus
EP0170525B1 (en) Cache hierarchy design for use in a memory management unit
Woo et al. FMMU: a hardware-accelerated flash map management unit for scalable performance of flash-based SSDs
Ritchie TLB for free: In-cache address translation for a multiprocessor workstation
US20090024798A1 (en) Storing Data

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

Granted publication date: 20100407

Termination date: 20181105

CF01 Termination of patent right due to non-payment of annual fee