CN1581106A - 用于大数据体的先进内存管理体系 - Google Patents

用于大数据体的先进内存管理体系 Download PDF

Info

Publication number
CN1581106A
CN1581106A CN200410054989.0A CN200410054989A CN1581106A CN 1581106 A CN1581106 A CN 1581106A CN 200410054989 A CN200410054989 A CN 200410054989A CN 1581106 A CN1581106 A CN 1581106A
Authority
CN
China
Prior art keywords
memory
data buffer
data
application
physical memory
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
CN200410054989.0A
Other languages
English (en)
Other versions
CN100507876C (zh
Inventor
G·帕拉迪尼
T·莫勒
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.)
Siemens Medical Solutions USA Inc
Original Assignee
Siemens Corporate Research Inc
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 Siemens Corporate Research Inc filed Critical Siemens Corporate Research Inc
Publication of CN1581106A publication Critical patent/CN1581106A/zh
Application granted granted Critical
Publication of CN100507876C publication Critical patent/CN100507876C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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

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

一种内存管理系统,包括用于存储分页文件的存储设备203;耦合到该存储设备的一个优先权链接列表206,其中该优先权链接列表的节点与所述存储设备的分页文件对应;以及包含多个数据缓冲器的虚拟内存空间201,每个数据缓冲器耦合到该优先权链接列表的一个唯一的节点。

Description

用于大数据体的先进内存管理体系
技术领域
本发明涉及数据处理,更具体地涉及一种用于处理大数据体的虚拟内存管理系统和方法。
背景技术
用于可视化三维体数据的应用采用内存增强方法,如Ray-Casting、Splatting、以及Shear-Warp。通过这些方法可视化的体数据可以从医疗层析成像扫描器如磁共振(MR)、计算机断层照相(CT)、正电子发射X射线层析照相(PET)、或任何其它能够产生一系列类似栅格阵列的切片的其它装置中获得。许多体可视化方法是利用程序化计算机实现的,依赖于计算机的虚拟内存和用于存储和访问切片数据的虚拟分页系统。当今可用的个人计算机典型地采用诸如Windows NT、Windows XP、Unix、或Linux的操作系统。这些操作系统运用虚拟内存寻址和虚拟分页的方法。当为大的三维体的大量切片分配内存,并且被分配的内存大于程序化计算机的可用随机存取存储器(RAM),也称为物理内存时,该程序化计算机中虚拟内存寻址和虚拟分页的性能显著降低。该虚拟内存寻址和虚拟分页性能的降低还导致体可视化方法性能的显著降低。
由于最近层析成像领域的技术进步,提高了空间分辨率和数据采集速度,导致产生了包含数百甚至数千切片的大数据集,使得内存限制进一步加剧。例如,使用西门子SOMATOM VolumeZoomTMCT扫描器可以快速产生1024个切片的序列,其中每个切片包括512×512像素的一个栅格,从而产生512×512×1024个体积元素的三维体(超过26.8千万个数据值)。在石油天然气工业中,地震数据测量值也存储在很大的三维体中,其中具有多达2048×2048×2048个栅格元素(超过85亿个数据值)。这些类型的数据可能大于现代计算机上可用的RAM存储量。一些三维阵列可以大到超出多数个人计算机和图形工作站中的32位中央处理器(CPU)的内存寻址能力,其典型地限于42亿个数据元素。
本领域中可用的传统虚拟分页方法的限制之一是它们针对通用目的设计的,它们的性能并不是针对有效处理大量三维体的切片而优化。当计算机的RAM由于过多切片缓冲而过载时,虚拟分页系统将切片内存缓冲器的部分页出到盘的可能性增加,该部分是体可视化方法随后马上就要用到的,从而可能导致不断的页入/页出效应,严重降低计算机的处理性能。该问题通称为“盘颠簸(disk thrashing)”。
例如,Windows XP虚拟内存管理器只有当所有物理内存都用尽时(即当再没有可用内存时),才开始将内存分页到盘。在这样的低内存条件下,所有应用都变得反应非常迟钝,因为操作系统忙于将内存段页出到盘和从盘页入。由于每个分页的段只是64K字节,因此需要很长时间才能从低内存状态恢复。
此外,Windows XP虚拟内存管理器不知道哪些图像数据缓冲器正被使用,哪些不是,因此,它将所有图像数据缓冲器都保留在内存中,直到所有物理内存都饱和。当将图像数据分页到盘上时,其不知道该数据是否很快就会再次需要,因此,效率将很低。
另一个限制是32位CPU的虚拟内存寻址能力,其寻址大约42亿字节元素。在一些虚拟内存寻址系统中,32个地址位中的一位为操作系统的内核保留,因此,剩余的可用于虚拟内存分配的寻址空间减少了一半,即21亿字节元素。这样,虚拟内存的大小可能被超过,例如,具有2048个切片缓冲器,每个缓冲器具有2048×2048栅格元素的三维地震数据体将要求超过85亿字节元素的存储空间,超过32位CPU的虚拟内存寻址能力。如果需要分配多个大数据体,用于切片缓冲器的有限个数的虚拟内存地址也会存在问题。
如上所述,由于有限的物理内存量、有限的虚拟地址空间、和操作系统虚拟内存管理和交换文件的低效率,计算机很难适应处理大数据体的应用。
因此,需要一种高效的内存管理方法来处理大数据体。
发明内容
根据本发明的一个实施例,一种管理用于大数据体的内存系统的方法包括由一个中央内存管理系统在多个应用和程序化计算机的物理内存之间提供一个接口。
该方法进一步包括保持一个由多个应用分配的内存缓冲器的全局优先权列表作为链接列表,其中该列表按照每个缓冲器被一个应用最后访问的时间排序。该优先权列表将存储设备的数据映射到虚拟内存的缓冲器,其中所述虚拟内存的缓冲器当被所述多个应用请求时,被页入到物理内存。
该方法包括指定一个低物理内存限制,并监视可用物理内存量,一旦判断可用物理内存量降到低物理内存限制以下,即通过所述内存管理接口将最近用过的切片缓冲器从物理内存页出,从而将可用物理内存增加到特定的高物理内存限制左右。
该方法进一步包括判断耦合到物理内存的内存系统的虚拟地址空间中未使用的数据缓冲器,标记该未使用的数据缓冲器,以及一旦检测到程序化计算机正在分配多于计算机处理器所能寻址的虚拟内存时,通过从虚拟地址空间解映射未使用的数据缓冲器,恢复虚拟地址空间。
该方法进一步包括通过内存管理接口,在多个应用之间共享物理内存中存储的数据缓冲器,其中所述数据缓冲器包含共享数据,以及判断由所述多个应用访问的缓冲器的优先权列表,其中所述优先权列表将数据缓冲器映射到一个存储设备。
该方法包括根据所包含的共享数据唯一地识别一个给定的数据缓冲器,其中创建该给的数据缓冲器的一个创建应用指定一个标识符,以及判断该标识符是否先前已经被指定给一个共享数据缓冲器,一旦判断该标识符已经存在于物理内存中,则给予所述创建应用访问该共享数据缓冲器的权力。
该方法包括在一个中央内存管理系统中利用使用该中央内存管理系统的应用内部的内存地址寻址指向一个数据缓冲器的对象,并使用一个密钥确认该内存地址,其中所述密钥包括唯一的信息,并且为对象的发送者和接收者所知。该方法包括提供唯一的句柄,在快速恢复句柄中组合该内存地址和句柄,在两个或更多应用之间共享该快速恢复句柄,以及一旦访问对象,即判断由快速恢复句柄识别的该对象是否有效。
保持全局优先权列表进一步包括在创建一个数据缓冲器后,对应于该数据缓冲器向全局优先权列表加入一个对象,以及在判断对应于该对象的数据缓冲器指针删除后,将该对象从全局优先权列表中去除。其中该对象在全局优先权列表中的父对象和子对象在去除该对象之前被链接。保持列表进一步包括一旦判断该对象要被使用时,将该对象移到列表末尾,其中在全局优先权列表末尾的对象比在全局优先权列表开头的对象被溢出(flush)的可能性小。该方法包括通知所述多个应用,由于内存解映射或映射操作,缓冲器的地址改变。
根据本发明的一个实施例,内存管理系统包括:一个或多个存储设备,用于存储分页文件;耦合到该存储设备的一个优先权链接列表,其中该优先权链接列表的节点与存储设备中的分页文件对应;以及包含多个数据缓冲器的虚拟内存空间,每个数据缓冲器耦合到优先权链接列表的一个唯一的节点。
根据本发明的一个实施例,内存管理系统或者与多个应用直接接口,或者耦合到一个中央图像处理服务器,该图像处理服务器再提供至少一个应用与内存管理系统之间的接口。
附图说明
下面将参考附图更详细描述本发明的优选实施例:
图1示出有关图像处理应用的内存利用的典型使用情况;
图2示出根据本发明一个实施例的内存管理系统中物理、虚拟、和硬盘内存之间的关系,以及通过优先权链接列表对其进行管理;
图3为根据本发明一个实施例的系统;
图4为根据本发明一个实施例实现内存管理的系统;
图5示出根据本发明一个实施例的应用服务器体系;
图6示出根据本发明一个实施例用于多个应用的内存管理系统;
图7示出根据本发明一个实施例用于多个应用的内存管理系统;
图8示出根据本发明一个实施例的中央服务内存管理系统的一个实施例中使用的将对象地址与系统内存映射句柄结合起来的快速恢复句柄。
具体实施方式
根据本发明的一个实施例,计算机内存被有效管理,其中内存根据数据体分配。一种管理内存的方法通过举例,根据用于二维切片和包含这样的切片的三维体的存储和可视化的成像应用加以描述。参考图2,为每个二维切片分配一系列内存缓冲器201。每个内存缓冲器中包含的数据例如是从医疗层析成像扫描器如磁共振(MR)、计算机断层照相(CT)、正电子发射X射线层析照相(PET)、或任何其它能够产生一系列类似栅格阵列的切片的其它装置中获得。每个内存缓冲器或切片缓冲器具有其自身的虚拟分页文件,如202,其可以从存储设备203页入或页出到存储设备203。存储设备可以是例如磁硬盘设备。内存管理器204能够在多个存储设备如205上创建和访问多个虚拟分页文件,从而使实现内存管理器204的程序化计算机的存储能力最大化。
根据本发明的一个实施例,通过采用记录最近被使用的和最远(least recently)被使用的二维切片缓冲器201的全局链接列表206,改善了程序化计算机的现有虚拟内存分页系统和磁硬盘装置的性能。当程序化计算机访问切片缓冲器的数据时,内存管理器204判断程序化计算机的可用RAM量是否降低到预定下限以下。如果是,则将一组最远使用过的内存缓冲器页出到存储设备,如硬盘设备,直到恢复了预定量的可用RAM。这样,防止了计算机内存过载,允许包括大量切片的三维体的有效可视化。
操作大量数据的应用可能向程序化计算机请求多于实际的资源才能有效操作。例如,存在允许用户创建任意期望数量的光栅和各种大小的位平面对象的图像处理应用。大量的这些对象可能很快用尽所有可用的物理内存(如RAM内存),迫使虚拟内存管理器如Windows XP虚拟内存管理器不断将内存段交换到盘,从而大大降低系统性能。根据本发明的一个实施例,采用内存管理体系分配你存缓冲器防止了低内存状态,并保持了期望水平的性能和交互性。该内存管理体系可以就任何对象类型实现。对象类型可以体现分组、从属/相关、通知、或其它高级功能。
应当理解,本发明可以在各种形式的硬件、软件、固件、专用处理器、或者其组合中实现。在一个实施例中,本发明可以实现为软件,作为明确体现在程序存储设备上的应用程序。该应用程序可以上载到包含任何合适结构的及其中并由其执行。
参考图3,根据本发明的一个实施例,用于实现本发明的计算机系统301可以包括:中央处理器(CPU)302、内存303、和输入/输出(I/O)接口304。计算机系统301通常通过I/O接口304耦合到显示器305和各种输入设备306,如鼠标和键盘。支持电路可以包括诸如高速缓存、电源、时钟电路、和通信总线等电路。内存103可以包括RAM、ROM、盘驱动、带驱动等,或其结合。本发明可以实现为存储在内存303中并且由CPU302执行以处理来自信号源308的信号的程序。同样,计算机系统301是通用计算机系统,当执行本发明的程序307时成为专用计算机系统。
计算机系统301还包括操作系统和微指令代码。此处所描述的各种处理和功能可以是微指令代码的一部分,或者是应用程序的一部分(或其组合),其通过操作系统执行。此外,各种其它外部设备也可连接到计算机平台,如附加的数据存储设备和打印设备。
进一步应当理解,因为附图中描述的部分组成系统部件和方法步骤可以实现为软件,系统部件(或处理步骤)之间的实际连接可能随本发明被编程的方法不同而不同。给出此处提供的本发明的启示,本领域的普通技术人员将能够想象出本发明的这些和类似的实现或配置。
参考图4,内存管理系统401可以同时支持多个应用(402、404、405)。即,内存管理系统401适合内存库的多个实例。应用程序可以直接与内存管理系统401接口,也可通过其它层如库服务器403接口。
管理内存系统的方法包括在多个应用之间共享物理内存中存储的数据缓冲器,其中所述数据缓冲器包含共享数据。内存管理器知道物理内存中存储的所有共享数据缓冲器。该方法包括根据所包含的共享数据识别一个给定数据缓冲器,其中创建给定数据缓冲器的创建应用指定一个标识符。该标识符对数据缓冲器的数据是唯一的,因此,如果两个应用试图创建同一数据的数据缓冲器,将产生同样的标识符。该方法包括判断所述标识符先前是否已被分配给一个共享数据缓冲器,一旦判断该标识符已经存在于物理内存中,则赋予所述创建应用访问该共享数据缓冲器的权力。
根据本发明的一个实施例,提供了内存映射对象类型和内存管理器对象类型。
内存映射对象使用内存映射的缓冲器分配内存。内存映射的缓冲器可以向任何其它内存缓冲器一样使用,例如被分配C语言运行时间的malloc或new函数,但此外内存映射的缓冲器提供其它优点。
不是被缺省操作系统的交换文件支持,每个内存映射的缓冲器由临时分页文件支持,该分页文件可以按照程序指定。这使得可以分配的内存比能够适合典型操作系统交换文件的多。内存映射对象还允许在不同盘上创建临时文件,其中总的分配内存可以与多个盘上可用的所有自由空间的总和一样多,如若干G字节。
内存映射的缓冲器可以在不同处理和/或应用之间共享。这对于在客户-服务器体系中的过程之间传递数据是很重要的,例如,见图5,其中不必制作数据的附加拷贝。
与其它内存缓冲器(如,被分配malloc或new的缓冲器)不同,根据本发明一个实施例的内存映射缓冲器可以按照程序溢出物理内存。
再参考成像应用的例子,当创建光栅或位平面对象时,在内部图像数据被存储在内存映射对象类型的例子中,其分配一个内存映射的图像缓冲器。一组配置参数(如,由操作系统提供)允许对参数的说明,如需要多少盘进行内存映射,每个盘可以用多少空间,以及临时分页文件将被创建的路径名称。
内存管理器对象的一个实例负责监视可用的自由物理内存,并用于当接近低内存状态时,将最远使用过的内存映射缓冲器溢出到盘。这样,内存管理器对象能够记录哪些图像缓冲器正被使用,哪些图像缓冲器最近没有被使用。通过利用活动/不活动缓冲器的知识,内存管理器对象可以选择哪些缓冲器被溢出,从而提供比利用如Windows NT虚拟内存管理器可获得的更高的分页效率。
内存管理器对象可以一次将整个内存映射图像缓冲器分页到盘,从而提供附加的自由物理内存。
内存管理器对象可以持续溢出,直到将期望的内存大小如若干M字节被页出到盘。因此,低内存状态之间的周期可以延长。
内存管理器对象可以在所有内存饱和之前将内存映射缓冲器溢出到物理内存之外,从而维持足够的内存,使得应用能够具有期望的响应时间。
一组配置参数允许规定在缓冲器被溢出之前自由物理内存的最小量,以及溢出缓冲器后需要恢复的物理内存量。
参考图5,内存管理器对象501包括由客户图像处理应用创建的所有内存映射对象的链接列表502、503、505。链接列表502保持排序顺序,从而最远使用的缓冲器总能在列表开头找到(如首先将被溢出的项目),而最近使用的缓冲器在列表末尾找到(如最后将被溢出的项目)。
用于保持链接列表为排序顺序的方法效率很高,且几乎不需要系统开销。链接列表不需要由排序操作重新安排,所涉及的操作仅仅是在列表的末尾添加或移去项目。通过实现下列步骤使链接列表保持排序:
只要创建一个图像缓冲器,则新分配的一个内存映射对象将其自己加到列表末尾,因为它很可能很快就被用到。
只要删除一个图像缓冲器,其对应内存映射对象自己从列表中去除,并将其父链接与子链接结合,因此,该列表在删除项目时不需要被遍历。
只要图像缓冲器要被使用,其对应内存映射对象被移到列表末尾,从而使其不易被溢出。然后检查总的自由物理内存,如果降到特定阈值之下,列表中的第一个项目被溢出到盘,并且在列表的末尾还移动。
这些步骤足以保证当前使用的图像缓冲器和刚刚被溢出的缓冲器在列表的末尾。在列表开头剩余的项目总是最远使用过的缓冲器。应当理解,可以预期其它保持链接列表的方法,本领域的技术人员可以理解这些其它方法的实现。例如,最频繁使用的链接列表。
内存映射对象允许应用在访问一个缓冲器时将其闭锁。该信息存储在对应于可以访问内存管理器对象的缓冲器的一个标记中。因此,根据这些标记,内存管理器知道哪些缓冲器当前被图像处理应用使用。利用指示缓冲器是否被使用的标记,内存管理器对象能够解映射当前不被使用的内存映射缓冲器,以减小应用的虚拟地址空间上的印记。该优化发生在请求一个不适合图像处理应用的可用虚拟地址空间的新的缓冲器时,该优化对于应用本身是透明的,允许寻址比处理器体系自然支持的更多的数据,如2G字节。
当内存管理器对象从应用的虚拟地址空间解映射一个缓冲器,并且随后当该缓冲器再次被访问时将其映射回去时,虚拟地址空间内的地址可能与创建该缓冲器时初始指定的地址不同。因此,需要将应用编程为不保持超过对应对象生存期的内存映射缓冲器地址,因为它们可能已经变得无效。但是,根据本发明的一个实施例,任何通过内存映射对象使用内存映射缓冲器的应用都可以得到关于缓冲器地址是否由于映射操作而改变的通知,从而应用能够保持最新的数据地址。
上述内存管理实施例也可应用于并行运行的图像处理应用,如图6和7所示。并行运行的应用使用内存管理器对象401的中央示例(instance),其管理所有应用的所有内存映射缓冲器的链接列表。关于哪些缓冲器被溢出以便优化可用物理内存的决定根据该全局列表作出。一旦选定最老的缓冲器被溢出物理内存,则通知所有持有这些缓冲器的索引的应用。这样,溢出指令需要由共享该缓冲器的所有应用发出。
为了允许直接访问而不需要附加的列表遍历或查表,需要在集中式内存管理和应用之间交换内存映射对象示例的地址索引。但是,直接访问这些地址存在万一对象示例同时被毁坏的情况下非法访问的危险。用于并行图像处理应用的内存管理的一个实施例可以将内存映射对象地址801与系统内存映射句柄802结合,以确认内存地址801的完整性,如图8所示。一旦应用接收到恢复句柄803,则地址指针801只在附加的系统内存映射句柄802在给定地址也能发现的情况下才被确认。
尽管通过标识符寻址远程对象导致管理标识符的列表时附加的开销,具体地是每次需要寻址一个对象时需要遍历该列表,但是通过用对象的内存地址在应用之间直接对其寻址,并利用一个密钥确认该内存地址,可以减少或消除该附加开销。该密钥提供附加的随对象而变化的信息,并且为发送者和接收者所知。在一个远程站点,对象的密钥需要存储在远程对象的内存地址内,例如,作为类成员变量或面向对象的编程语言中的域。当删除一个对象时,该密钥被一个缺省值覆盖,例如利用面向对象的编程语言中的类析构函数。将对象的内存地址801与密钥803组合成单个单元或可恢复句柄803允许以安全方式在逻辑或物理边界内直接寻址远程对象。在访问可恢复句柄803内存储的内存地址之前,该远程端判断来自可恢复句柄803的密钥803是否也在给定内存地址801出现。这只有对生存期尚未终止的对象才会发生。
密钥802可以是任意足够独特的字母数字值,例如,序列号、随机产生的数字、或与一个对象关联的系统资源的资源句柄。
以上描述了用于处理大数据体的虚拟内存系统和方法的实施例,应当注意,根据以上叙述,本领域的技术人员能够进行修改和变化,因此应当理解,可以对本发明的实施例进行变化,这包含在所附权利要求定义的本发明的范围和主旨内。这样利用细节和专利法要求的特性描述了本发明,所要求和期望专利保护的范围在所附权利要求中提出。

Claims (24)

1.一种管理用于大数据体的内存系统的方法,包括提供一个中央内存管理系统,该系统包括一个程序化计算机的多个应用和物理内存之间的内存管理接口。
2.如权利要求1所述的方法,进一步包括保持数据缓冲器的一个全局优先权列表,该数据缓冲器由所述多个应用分配,作为链接列表,其中该列表按照数据缓冲器被所述多个应用访问的顺序排序。
3.如权利要求2所述的方法,其中所述全局优先权列表将存储设备的数据映射到虚拟内存的数据缓冲器,其中所述虚拟内存的数据缓冲器在被所述多个应用请求时,被页入到物理内存。
4.如权利要求1所述的方法,进一步包括:
指定一个低物理内存限制;和
监视可用物理内存的量,一旦判断可用物理内存下降到该低物理内存限制以下,则通过所述内存管理接口将最远使用过的内存缓冲器从物理内存页出,从而将可用物理内存增加到大约为一个指定的高物理内存限制。
5.如权利要求1所述的方法,进一步包括:
判断耦合到所述物理内存的内存系统的虚拟地址空间中未使用的数据缓冲器;
标记该未使用的数据缓冲器;和
一旦检测到所述程序化计算机正在分配的虚拟内存多于计算机处理器所能寻址的量,则通过从所述虚拟地址空间解映射所述未使用的数据缓冲器来恢复虚拟地址空间。
6.如权利要求1所述的方法,进一步包括:
通过所述内存管理接口,在所述多个应用之间共享所述物理内存中存储的数据缓冲器,其中所述数据缓冲器包含共享数据;和
确定由所述多个应用访问的缓冲器的优先权列表,其中该优先权列表将数据缓冲器映射到存储设备。
7.如权利要求1所述的方法,进一步包括:
根据其中包含的共享数据唯一地识别一个给定数据缓冲器,其中创建该给定数据缓冲器的一个创建应用指定一个标识符;和
判断该标识符是否先前已经指定给一个共享数据缓冲器,一旦判断该标识符已经在物理内存中存在,则赋予该创建应用访问该共享数据缓冲器的权利。
8.如权利要求1所述的方法,进一步包括:
直接利用内存地址从使用中央内存管理系统的一个应用中寻址指向该中央内存管理系统中的一个数据缓冲器的对象;和
使用一个密钥确认该内存地址,其中该密钥包含唯一的信息,并且为该对象的发送方和接收方所知。
9.如权利要求8所述的方法,进一步包括:
提供唯一的句柄;
将所述内存地址和句柄结合为一个快速恢复句柄;
在两个或多个应用中共享该快速恢复句柄;和
在访问一个对象时,判断由该快速恢复句柄标识的对象是否有效。
10.如权利要求2所述的方法,其中保持所述全局优先权列表进一步包括:
在创建一个数据缓冲器后,对应于一个该数据缓冲器向所述全局优先权列表加入一个对象;
在判断对应于该对象的数据缓冲器指针被删除后,将该对象从所述全局优先权列表中去除,其中该对象在全局优先权列表中的父对象和子对象在去除该对象之前被链接;和
一旦判断该对象要被使用时,将该对象移到列表末尾,其中在全局优先权列表末尾的对象比在全局优先权列表开头的对象被溢出的可能性小。
11.如权利要求8所述的方法,进一步包括通知所述多个应用,由于内存映射或解映射操作,缓冲器地址改变。
12.一个内存管理系统,包括:
用于存储分页文件的存储设备;
耦合到该存储设备的一个优先权链接列表,其中该优先权链接列表的节点与所述存储设备的分页文件对应;以及
包含多个数据缓冲器的虚拟内存空间,每个数据缓冲器耦合到该优先权链接列表的一个唯一的节点。
13.如权利要求12所述的系统,包括两个或多个存储设备。
14.如权利要求12所述的系统,其中一个内存管理系统耦合到一个中央图像处理服务器,在至少一个应用与该内存管理系统之间提供接口。
15.一种机器可读程序存储设备,明确(tangibly)实施可由该机器执行的指令的程序,以执行用于管理大数据体的内存系统的方法步骤,该方法步骤包括:
提供一个中央内存管理系统,该系统包括一个程序化计算机的多个应用与物理内存之间的一个内存管理接口。
16.如权利要求15所述的方法,进一步包括保持数据缓冲器的一个全局优先权列表,该数据缓冲器由所述多个应用分配,作为链接列表,其中该列表按照数据缓冲器被所述多个应用访问的顺序排序。
17.如权利要求16所述的方法,其中所述全局优先权列表将存储设备的数据映射到虚拟内存的数据缓冲器,其中所述虚拟内存的数据缓冲器在被所述多个应用请求时,被页入到物理内存。
18.如权利要求15所述的方法,进一步包括:
指定一个低物理内存限制;和
监视可用物理内存的量,一旦判断可用物理内存下降到该低物理内存限制以下,则通过所述内存管理接口将最远使用过的内存缓冲器从物理内存页出,从而将可用物理内存增加到大约为一个指定的高物理内存限制。
19.如权利要求15所述的方法,进一步包括:
判断耦合到所述物理内存的内存系统的虚拟地址空间中未使用的数据缓冲器;
标记该未使用的数据缓冲器;和
一旦检测到所述程序化计算机正在分配的虚拟内存多于计算机处理器所能寻址的量,则通过从所述虚拟地址空间解映射所述未使用的数据缓冲器来恢复虚拟地址空间。
20.如权利要求15所述的方法,进一步包括:
通过所述内存管理接口,在所述多个应用之间共享所述物理内存中存储的数据缓冲器,其中所述数据缓冲器包含共享数据;和
确定由所述多个应用访问的缓冲器的优先权列表,其中该优先权列表将数据缓冲器映射到存储设备。
21.如权利要求15所述的方法,进一步包括:
根据其中包含的共享数据唯一地识别一个给定数据缓冲器,其中创建该给定数据缓冲器的一个创建应用指定一个标识符;和
判断该标识符是否先前已经指定给一个共享数据缓冲器。一旦判断该标识符已经在物理内存中存在,则赋予该创建应用访问该共享数据缓冲器的权利。
22.如权利要求15所述的方法,进一步包括:
直接利用内存地址从使用中央内存管理系统的一个应用中寻址指向该中央内存管理系统中的一个数据缓冲器的对象;和
使用一个密钥确认该内存地址,其中该密钥包含唯一的信息,并且为该对象的发送方和接收方所知。
23.如权利要求16所述的方法,其中保持所述全局优先权列表进一步包括:
在创建一个数据缓冲器后,对应于一个该数据缓冲器向所述全局优先权列表加入一个对象;
在判断对应于该对象的数据缓冲器指针被删除后,将该对象从所述全局优先权列表中去除,其中该对象在全局优先权列表中的父对象和子对象在去除该对象之前被链接;和
一旦判断该对象要被使用时,将该对象移到列表末尾,其中在全局优先权列表末尾的对象比在全局优先权列表开头的对象被溢出的可能性小。
24.如权利要求19所述的方法,进一步包括通知所述多个应用,由于内存映射或解映射操作,缓冲器地址改变。
CNB2004100549890A 2003-08-07 2004-08-06 用于大数据体的先进内存管理体系 Expired - Fee Related CN100507876C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/636434 2003-08-07
US10/636,434 US7032088B2 (en) 2003-08-07 2003-08-07 Advanced memory management architecture for large data volumes

Publications (2)

Publication Number Publication Date
CN1581106A true CN1581106A (zh) 2005-02-16
CN100507876C CN100507876C (zh) 2009-07-01

Family

ID=34116429

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100549890A Expired - Fee Related CN100507876C (zh) 2003-08-07 2004-08-06 用于大数据体的先进内存管理体系

Country Status (3)

Country Link
US (2) US7032088B2 (zh)
CN (1) CN100507876C (zh)
DE (1) DE102004036323A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103558992A (zh) * 2011-02-24 2014-02-05 泰若考特股份有限公司 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
CN112166427A (zh) * 2018-05-30 2021-01-01 日本电信电话株式会社 保护装置及保护方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617249B2 (en) * 2003-09-06 2009-11-10 Oracle International Corporation Method and system of handling document operation requests on documents having large collections with constrained memory
US20050207407A1 (en) * 2004-03-16 2005-09-22 Baumberger Daniel P Method, apparatus and system for improved packet demultiplexing on a host virtual machine
US20050228971A1 (en) * 2004-04-08 2005-10-13 Samra Nicholas G Buffer virtualization
US20050246502A1 (en) * 2004-04-28 2005-11-03 Texas Instruments Incorporated Dynamic memory mapping
US7523284B1 (en) 2004-08-10 2009-04-21 American Megatrends, Inc. Method and apparatus for providing memory management within a system management mode
US20060050155A1 (en) * 2004-09-02 2006-03-09 Ing Stephen S Video camera sharing
US20060114254A1 (en) * 2004-11-26 2006-06-01 Tim Day Volume rendering apparatus and method
CN100432957C (zh) * 2005-02-12 2008-11-12 美国博通公司 一种管理存储器的方法
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US7707362B2 (en) * 2005-06-30 2010-04-27 Seagate Technology Llc Context-free data transactions between dual operating systems embedded within a data storage subsystem
US7911474B2 (en) 2006-04-03 2011-03-22 Siemens Medical Solutions Usa, Inc. Memory management system and method for GPU-based volume rendering
JP2008003976A (ja) * 2006-06-26 2008-01-10 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
US20080229053A1 (en) * 2007-03-13 2008-09-18 Edoardo Campini Expanding memory support for a processor using virtualization
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8526326B1 (en) * 2008-08-27 2013-09-03 Juniper Networks, Inc. Lock-less access of pre-allocated memory buffers used by a network device
KR101515621B1 (ko) * 2008-09-26 2015-04-29 삼성전자주식회사 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
US7979607B2 (en) * 2009-02-27 2011-07-12 Honeywell International Inc. Cascadable high-performance instant-fall-through synchronous first-in-first-out (FIFO) buffer
US9558040B2 (en) 2011-06-20 2017-01-31 Microsoft Technology Licensing, Llc Memory manager with enhanced application metadata
US9229875B2 (en) * 2012-10-17 2016-01-05 Electronics And Telecommunications Research Institute Method and system for extending virtual address space of process performed in operating system
US20140143298A1 (en) * 2012-11-21 2014-05-22 General Electric Company Zero footprint dicom image viewer
CN104881441B (zh) * 2015-05-12 2018-11-06 福建天晴数码有限公司 基于局域网的文件接收及存储方法、查看方法及系统
CN107122309A (zh) * 2016-02-25 2017-09-01 瑞昱半导体股份有限公司 电子装置及其控制方法
US10379745B2 (en) * 2016-04-22 2019-08-13 Samsung Electronics Co., Ltd. Simultaneous kernel mode and user mode access to a device using the NVMe interface
WO2017209876A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. Buffer manager

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3569938A (en) 1967-12-20 1971-03-09 Ibm Storage manager
US4821185A (en) * 1986-05-19 1989-04-11 American Telephone And Telegraph Company I/O interface system using plural buffers sized smaller than non-overlapping contiguous computer memory portions dedicated to each buffer
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US6247042B1 (en) * 1997-09-24 2001-06-12 Microsoft Corporation Method and system for restoring the state of physical memory as the focus changes among application programs in a computer
US6552723B1 (en) * 1998-08-20 2003-04-22 Apple Computer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US7370217B2 (en) * 2001-11-16 2008-05-06 Intel Corporation Regulating file system device access
CN1183453C (zh) 2001-12-21 2005-01-05 上海贝尔有限公司 一种内存管理系统及其分配方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103558992A (zh) * 2011-02-24 2014-02-05 泰若考特股份有限公司 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
CN112166427A (zh) * 2018-05-30 2021-01-01 日本电信电话株式会社 保护装置及保护方法

Also Published As

Publication number Publication date
DE102004036323A1 (de) 2005-04-07
US20060123215A1 (en) 2006-06-08
US20050033934A1 (en) 2005-02-10
US7032088B2 (en) 2006-04-18
CN100507876C (zh) 2009-07-01
US7802066B2 (en) 2010-09-21

Similar Documents

Publication Publication Date Title
CN100507876C (zh) 用于大数据体的先进内存管理体系
US7853760B2 (en) Advanced memory management architecture for large data volumes
Barnes Jr et al. Warp speed: executing time warp on 1,966,080 cores
US6321240B1 (en) Data structure partitioning with garbage collection to optimize cache utilization
US10242050B2 (en) Database caching in a database system
US6330556B1 (en) Data structure partitioning to optimize cache utilization
KR102043886B1 (ko) 프로파일링 캐시 대체
CN1240000C (zh) 用于改进超高速缓存性能的输入/输出页面删除确定
US8832674B2 (en) Off-heap direct-memory data stores, methods of creating and/or managing off-heap direct-memory data stores, and/or systems including off-heap direct-memory data store
EP2488950B1 (en) A tiered data management method and system for high performance data monitoring
Erlichson et al. SoftFLASH: Analyzing the performance of clustered distributed virtual shared memory
CN111602377B (zh) 高速缓存中资源调整方法、数据访问方法及装置
US9411736B2 (en) System and method for an accelerator cache based on memory availability and usage
CN1829979A (zh) 数据缓存方法
WO2015116487A1 (en) Efficient data reads from distributed storage systems
CN1786927A (zh) 应用层高速缓存映像知晓和再分配的系统和方法
CN1542623A (zh) 一种实现内存管理的方法
CN1841330A (zh) 用于管理多节点smp系统的方法和系统
CN1497448A (zh) 在操作系统内核环境中高速缓存应用数据的系统和方法
WO2021216883A1 (en) Adjustment of garbage collection parameters in a storage system
CN1829962A (zh) 数据所有权的动态再分配
CN1889038A (zh) 以类为单位的远程构件生命周期的管理方法
CN1764905A (zh) 借助于偏移量在共享存储器中寻址数据的方法
US20160267006A1 (en) Massive access request for out-of-core textures by a parallel processor with limited memory
McCalpin Address hashing in Intel processors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SIEMENS MEDICAL SYSTEMS, INC.

Free format text: FORMER OWNER: SIEMENS MEDICAL SOLUTIONS

Effective date: 20061110

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20061110

Address after: American Pennsylvania

Applicant after: American Siemens Medical Solutions Inc.

Address before: new jersey

Applicant before: Siemens Corporate Research, Inc.

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: 20090701

Termination date: 20170806