[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN102971727B - 在软件分布式共享存储器系统中记录脏信息 - Google Patents

在软件分布式共享存储器系统中记录脏信息 Download PDF

Info

Publication number
CN102971727B
CN102971727B CN201080068022.1A CN201080068022A CN102971727B CN 102971727 B CN102971727 B CN 102971727B CN 201080068022 A CN201080068022 A CN 201080068022A CN 102971727 B CN102971727 B CN 102971727B
Authority
CN
China
Prior art keywords
dirty
device system
table entry
page table
software
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.)
Active
Application number
CN201080068022.1A
Other languages
English (en)
Other versions
CN102971727A (zh
Inventor
S.严
Y.高
X.周
H.陈
B.萨哈
S.罗
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN102971727A publication Critical patent/CN102971727A/zh
Application granted granted Critical
Publication of CN102971727B publication Critical patent/CN102971727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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]
    • 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/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

可以利用页表项脏位系统来针对软件分布式共享存储器系统记录脏信息。在一些实施例中,因为该脏位记录系统已经在某些处理器中可以得到,所以这可以改善性能而基本上不增加开销。通过提供附加位,可以关于现有的页表项脏位的所有其他使用来获得相干性。

Description

在软件分布式共享存储器系统中记录脏信息
技术领域
本发明通常涉及软件分布式共享存储器系统,并且更具体地,涉及在软件分布式共享存储器系统中记录脏信息。
背景技术
在分布式共享存储器(DSM)系统中,在群集中的每个节点除了访问每个节点的非共享私有存储器之外,还访问共享存储器。软件DSM(SDSM)可以在操作系统中被实现或被实现为编程库。如果在编程库中被实现,则其对于开发者而言是可访问的,但如果其在操作系统中被实现,则其对于开发者而言是不可访问的。
一些SDSM系统依赖于针对多个事物的页面错误,包括脏(dirty)记录。脏记录是用于精确地获知哪个数据已经被修改并且因此自上次数据同步以来是“脏的”的机制。脏记录可能在减少必须被传输的相干数据的量的方面是有用的。SDSM系统保护存储器免于被写入,并且因此增强到其中记录了精确的脏信息的处理机(handler)中的错误的后续写入。
然而,页面错误以及存储器保护是耗时的操作,其可能导致较低性能的脏记录。页面错误可能占据共享存储器运行时间开销的相对大的比率。
发明内容
根据本发明的第一方面,提供了一种用于在软件分布式共享存储器系统中记录脏信息的方法,包括:使用页表项脏位记录系统,以用于软件分布式共享存储器系统中的脏记录,使用第一位来指示页表项是脏的;为虚拟共享的存储器页面提供第一附加位来明了数据对于该软件分布式共享存储器系统而言是否是脏的;以及为虚拟共享的存储器页面提供第二附加位来明了数据对于操作系统而言是否是脏的。
根据本发明的第二方面,提供了一种用于在软件分布式共享存储器系统中记录脏信息的设备,包括:用于使用页表项脏位记录系统,以用于软件分布式共享存储器系统中的脏记录,使用第一位来指示页表项是脏的之装置;用于为虚拟共享的存储器页面提供第一附加位来明了数据对于该软件分布式共享存储器系统而言是否是脏的之装置;以及用于为虚拟共享的存储器页面提供第二附加位来明了数据对于操作系统而言是否是脏的之装置。
根据本发明的第三方面,提供了一种用于在软件分布式共享存储器系统中记录脏信息的系统,包括:图形处理器;以及通用处理器,其耦合到所述图形处理器,所述通用处理器和图形处理器被配置为软件分布式共享存储器系统中的节点,所述通用处理器用于使用用于指示页表项是脏的之第一位、用于明了数据对于该软件分布式共享存储器系统而言是否是脏的之第一附加位、以及用于明了数据对于操作系统而言是否是脏的之第二附加位来使用页表项脏位记录系统,以用于所述软件分布式共享存储器系统中的脏记录。
附图说明
图1是用于本发明的一个实施例的流程图;以及
图2是用于本发明的一个实施例的示意性描绘。
具体实施方式
在一些实施例中,已经在包括由Intel公司(SantaClara,California)所制造的X86处理器的一些处理器上可用的现有的页表项脏位记录系统可以在软件分布式共享存储器中被用作脏记录系统。因为该记录系统已经存在,所以在一些实施例中其可以被用于具有相对低开销的脏记录。此外,在一些实施例中,其可以改善具有可访问的X86处理器的共享存储器系统中的性能。因此,在一些实施例中,可编程性优点可以在不损害性能的情况下被实现。
在一个实施例中,共享存储器系统可以在X86处理器和图形处理单元之间被实现。然而,本发明不限于这种特定实施例。
在X86处理器中,在针对页面存储器中的每个页面的页表项中存在脏位簿记(bookkeeping)系统。如果相关页面首次被修改,则X86处理器自动设置页表项中的脏位。对该位的清除不由处理器处理,而是替代的是系统软件的职责。
根据本发明的一些实施例,与在脏位簿记的传统应用中不同地处理位清除。页表脏位记录机制可以被用来给系统软件并且尤其是操作系统的存储器管理模块提供用于识别哪个页面更适合于被页出(pageout)以及在页出页面时是否有必要回写(writeback)的能力。因为该系统是用硬件来实现的,所以其可以是比依赖页面错误更有效的脏记录机制。
在一个实施例中,查询页表项脏位以获知页面是否被修改。页表项脏位可以被清除以指示该页面已经被跨越SDSM中的节点而同步。例如,一个节点可以是X86处理器,而另一个节点可以是图形处理器。然后,在一些实施例中,页面错误不需要被用于脏记录。
一个问题出现了,即,在运行时间,一个以上的代理将出于不同原因而操纵该页表项脏位。操作系统存储器模块查询关于其页面替换决定的页表项脏位并清除它,例如,关于从第二储存器到存储器的新加载。
通过为每个虚拟共享的存储器页面提供两个附加位,可以使用页表项脏位以用于针对SDSM系统的脏记录的该附加功能,而不干扰在该页表项中使用的脏位的操作。
在一个实施例中,为每个虚拟系统存储器页面提供两个附加位。一个附加位是“SDSM脏”,而另一个是“操作系统(OS)脏”。连同硬件支持的页表项脏位(“PTE脏”)一起,在系统中每个虚拟共享存储器页面存在三个位。
当然,尽管当前描述讨论设置位,但可以通过设置标记完成相同的事情。因此,本文中的术语“设置位”还包括设置标记。
本发明的实施例提供了用于组合的通用和图形处理器平台的编程模块,包括集成或离散设备、多个图形处理卡、以及混合图形处理系统。另外,本发明的实施例提供了通用处理器和图形处理器之间的共享存储器模型。代替共享整个虚拟地址空间,在一个实施例中,仅可以共享虚拟地址空间的一部分。
数据结构可以在处理器之间共享,并且指针可以从一方传递到另一方,而不需要任何编组(即,前后串行化)。例如,在一个实施例中,游戏引擎可以包括物理过程(physics)、人工智能(AI)和渲染。物理过程和AI代码可以在通用处理器上被最佳地执行,而渲染可以在图形处理器上被最佳地执行。数据结构可能需要在处理器之间共享,诸如场景图。然而,在共享存储器模型的实施例中,场景图可以简单地驻留在共享存储器中并且由两个处理器来访问。
在一个实施例中,实现了包括语言和运行时间支持的整个编程环境。多个高度并行的非图形工作负荷可以被端接到该环境。该实现方式可以工作在异构操作系统(即,具有运行在每个处理器上的不同的操作系统)上。此外,在处理器之间可以允许用户级通信。
在一个实施例中,存储器模型诸如以分割全局地址空间(PGAS)语言提供处理器之间的共享虚拟地址的窗口。通常可以在该空间中由编程者分配在处理器之间共享的任何数据结构。该系统可以提供在该空间中分配数据的特殊分配内存功能。可以用类型量词来注释静态变量,以使它们在共享窗口中被分配。然而,不像PGAS语言那样,在共享窗口中不存在相似性的概念。这是因为共享空间中的数据在其变得由每个处理器使用时在处理器高速缓冲存储器之间迁移。而且不像PGAS实现方式那样,指针的表示不在共享和私有空间之间改变。剩余的虚拟地址空间对于处理器而言是私有的。默认情况下,数据得以在该空间130中被分配,并且对于另一方而言不是可见的。该分割地址空间方法可以对需要被保持相干的存储器的量进行削减,并且使得能够实现用于离散设备的更有效的实现方式。
存储器模型的实施例可以被扩展到多图形处理和混合配置。尤其是,共享虚拟地址的窗口可以被跨越所有设备扩展。在该共享地址窗口中分配的任何数据结构对于所有代理而言可以是可见的,并且该空间中的指针可以被自由交换。另外,每个代理具有其自己的私有存储器。
可以采用所有权来扩大共享存储器模型的实施例,以使得能够实现进一步的相干优化。在共享的虚拟地址窗口内,任一处理器可以指定其拥有特定的地址块。如果共享窗口中的地址范围由通用处理器拥有,则通用处理器获知图形处理器不能访问那些地址,并因此不需要维持那些地址与图形处理器的相干性。图形处理器所拥有的地址同样如此。
在一个实施例中,共享数据可以通过从共享空间复制到私有空间而被私有化。包含数据结构的非指针可以简单地通过复制存储器内容而被私有化。在复制包含数据结构的指针的同时,到共享数据中的指针必须被转换成到私有数据中的指针。
私有数据可以通过从私有空间复制到共享空间而被全局化,并使其对于其他计算而言可见。包含数据结构的非指针可以简单地通过复制存储器内容而被全局化。在复制包含数据结构的指针的同时,到私有数据中的指针必须被转换为到共享数据中的指针(私有化示例的相反)。
在一个实施例中,编译器生成两个二进制—一个用于在每个处理器上执行。由于两个操作系统可能具有不同的可执行格式,所以生成两个不同的可执行(executable)。图形二进制包含将在图形处理器上执行的代码,而通用二进制包含通用处理器功能。运行时间库具有用于每个处理器的组件,其与用于每个处理器的应用二进制链接,以创建用于每个处理器的可执行。当通用二进制开始执行时,其调用加载图形可执行的运行时间功能。两个二进制创建被用于处理器间通信的守护线程。
在一个实施例中,每个处理器可以具有不同的页表和不同的虚拟到物理存储器转换。因此,为了同步处理器之间(例如在释放点处)的虚拟地址V的内容,不同物理地址的内容被同步。然而,通用处理器不可以访问图形页表,并且图形处理器不可以访问通用页表。
在初始化期间,总线孔径空间的一部分可以被映射到应用的用户空间中,并且被利用任务队列、消息队列和复制缓冲器来实例化。例如,当需要从通用处理器复制页面到图形处理器时,运行时间将页面复制到总线孔径复制缓冲器中,并用虚拟地址和处理标识符来标记该缓冲器。在图形侧,守护线程通过使用虚拟地址标签来将缓冲器的内容复制到其地址空间中。因此,可以按照两步骤处理来执行该复制—通用处理器从其地址空间复制到两个处理器均可访问的公用缓冲器(总线孔径)中,而图形处理器从公用缓冲器获得该页面到其地址空间中。由于该孔径是被钉住的存储器,所以如果处理使上下文(context)切断,该孔径的内容并不丢失。这允许两个处理器异步地执行,这可能是关键的,因为这两个处理器可能具有不同的操作系统,并且因此上下文切换不可以被同步。此外,孔径空间可以被映射到应用的用户空间中,因此使得能够实现用户级处理器间通信。这使得应用程序栈比经历OS驱动器栈大大地更加有效。
当图形处理器执行采集操作时,对应页面可以被设置成在该图形处理器上无访问。在随后的读取操作处,如果该页面自上次图形处理器采集以来已经被通用处理器更新和释放,则图形处理器上的页面错误处理机将页面从通用处理器进行复制。目录和私有版本号可以被用来对此进行确定。页面然后被设置成只读。在随后的写操作处,页面错误处理机创建页面的备份副本,将页面标记为读-写,并且增加该页面的本地版本号。在释放点处,用该页面的备份副本来执行差分(diff),并且将改变发送到标识位置(homelocation),同时增加目录版本号。差分操作计算两个页面(即,该页面及其备份)之间的存储器位置方面的差,以找出已经做出了的改变。通用处理器操作以对称方式来完成。因此,在采集和释放点之间,处理器在它们的本地存储器和高速缓冲存储器之外进行操作,并且仅在明确的同步点处与彼此通信。
在启动时,该实现方式决定将在处理器之间共享的地址范围,并且确保该地址范围总是保持被映射(例如,使用mmap或Linux)。该地址范围可以动态增长,并且不必须是邻近的,虽然在64位地址空间中,运行时间系统可以保留在前面的连续块。
参照图1,算法开始于最初是清洁的页面,这意味着所有三个位(SDSMD,、osD和pteD)是零,如图1中的状态10中所指示的那样。这里,可以存在SDSM查询、操作系统(OS)查询、处理器读取、SDSM清除和OS清除,其不改变该三个位中的任意一个,并且不表示任何状态改变。当PTE脏位从零转变到一时,X86处理器写12自动地设置PTE脏位(pteD),如状态14中所示的那样。
当操作系统清除该PTE脏位时,其首先将该PTE脏位备份到SDSM脏位(SDSMD)中,并且然后实际清除PTE脏位和操作系统脏位(osD)。这在操作42处被示出,其是操作系统清除。在这种情况下,该PTE脏位变为零,该操作系统脏位保持为零,以及SDSM脏位变为一,从而为SDSM系统保持该脏位状态。当操作系统查询该脏位时,其读取PTE脏位和操作系统脏位的逻辑或(OR)。当SDSM运行时间清除该脏位时,其首先将该PTE脏位备份到操作系统脏位中,并且然后实际清除PTE脏位和SDSM脏位,如由操作16和状态18所指示的那样。
当SDSM运行时间查询该脏位时,其读取PTE脏位和SDSM脏位的逻辑或(OR)。附加脏位备份保证当一个代理正更新脏位时,该脏信息对于其他代理而言不丢失。例如,即使SDSM系统已经清除了PTE脏位和SDSM脏位,操作系统实际上使该脏信息被保持在其操作系统脏位中。使用逻辑或(OR)操作保证了任何代理可以从其自己的视角看到完整的脏信息。例如,即使SDSM系统已经清除了该PTE脏位和SDSM脏位,操作系统仍可以看到它采用PTE脏位和操作系统脏位的逻辑或(OR)应该看到的东西。
从状态18,处理器写20使用相同的技术转变到状态22。SDSM清除24转变到状态18。从状态22,操作系统清除26转变到状态28。从状态28,处理器写34转变到状态36。操作系统清除38转变回状态28。从状态36,SDSM清除40转变到状态18。从状态18,操作系统清除32转变到状态10。从状态28,SDSM清除30也转变回状态10。
除了维持脏位外,操作系统可以具有系统调用以将查询/清除服务暴露给SDSM运行时间。查询系统调用取得虚拟共享存储器地址作为输入,并返回布尔值以指示该页面是否是脏的。清除系统调用取得虚拟共享存储器地址作为其输入。SDSM运行时间调用查询系统调用以获知自上次同步且仅在脏页面的情况下的同步以来页面是否已经被修改了。SDSM运行时间在同步之后调用清除系统调用。
在一些实施例中,系统调用可以取得地址范围作为输入以减少系统调用开销。在这种情况下,查询系统调用可以返回位图以从SDSM运行时间的视点来指示地址范围中的那些页面是脏的。
在一个实施例中,附加位可以被存储在与用于存储器页面的核心数据结构相关联的单独的表格中。在包含页表项中的未使用的位的X86处理器体系结构的情况下,这两个附加位可以是两个未使用的位。在多处理器/多核系统中,脏位清除操作还需要适当地进行翻译后援缓冲器(TLB)失效和强行中止。
作为替代实施例,因为操作系统仅清除存储器分页操作上的脏位,所以还可行的是将SDSM虚拟共享存储器页面锁定为不可分页。这使SDSM运行时间成为可清除脏位的唯一一个代理。在SDSM中的节点之间的数据同步之后,相关页面被改变成清洁状态。然后如果页面被修改,则其可以被标记为脏的。然后,对于下一次数据同步,SDSM运行时间仅查询每个页面的脏位,并仅同步具有设置的脏位的页面。在此之后,SDSM运行时间简单地清除脏的页面的页表项脏位。
图2中所示的计算机系统130可以包括硬盘驱动器134和可移除介质136,其通过总线104耦合到芯片组核心逻辑110。键盘和鼠标120或其他传统组件可以被经由总线108耦合到芯片组核心逻辑。在一个实施例中,核心逻辑可以经由总线105耦合到图形处理器112,以及主或通用处理器100。通用处理器100可以是具有页表项脏位记录系统的X86处理器或任何处理器。图形处理器112还可以通过总线106耦合到帧缓冲器114。帧缓冲器114可以通过总线107耦合到显示屏118。在一个实施例中,图形处理器112可以是使用单指令多数据(SIMD)体系结构的多线程、多核并行处理器。
本文中描述的图形处理技术可以以各种硬件体系结构来实现。例如,图形功能可以被集成在芯片组内。替代地,可以使用离散图形处理器。作为又一个实施例,图形功能可以通过包括多核处理器的通用处理器来实现。
遍及本说明书中对“一个实施例”或“实施例”的提及意思是结合该实施例所描述的特定特征、结构或特性被包括在本发明中包含的至少一个实现方式中。因此,用语“一个实施例”或“在实施例中”的出现不必然指相同实施例。此外,特定特征、结构或特性可以按照除了所说明的特定实施例外的其他合适的形式来设立,并且所有这些形式可以被包含在本申请的权利要求内。
虽然已经针对有限数量的实施例描述了本发明,但是本领域的技术人员将理解由此而来的许多修改和变化。所意图的是,所附的权利要求覆盖所有这些修改和变化,如同落入该本发明的真实精神和范围之内。

Claims (20)

1.一种用于在软件分布式共享存储器系统中记录脏信息的方法,包括:
使用页表项脏位记录系统,以用于软件分布式共享存储器系统中的脏记录,使用第一位来指示页表项是脏的;
为虚拟共享的存储器页面提供第一附加位来明了数据对于该软件分布式共享存储器系统而言是否是脏的;以及
为虚拟共享的存储器页面提供第二附加位来明了数据对于操作系统而言是否是脏的。
2.根据权利要求1所述的方法,包括提供基于硬件的脏记录。
3.根据权利要求1所述的方法,包括实现软件分布式共享存储器系统,其中一个节点是图形处理器并且另一个节点是通用处理器。
4.根据权利要求3所述的方法,包括使用具有页表项脏位记录系统的通用处理器。
5.根据权利要求1所述的方法,包括当页表项脏位被清除时,保持用于该软件分布式共享存储器系统的附加位的状态。
6.根据权利要求5所述的方法,包括当页表项脏位被清除时,保持用于操作系统的附加位的状态。
7.根据权利要求1所述的方法,包括使用两个位的逻辑或来查询脏位。
8.一种用于在软件分布式共享存储器系统中记录脏信息的设备,包括:
用于使用页表项脏位记录系统,以用于软件分布式共享存储器系统中的脏记录,使用第一位来指示页表项是脏的之装置;
用于为虚拟共享的存储器页面提供第一附加位来明了数据对于该软件分布式共享存储器系统而言是否是脏的之装置;以及
用于为虚拟共享的存储器页面提供第二附加位来明了数据对于操作系统而言是否是脏的之装置。
9.根据权利要求8所述的设备,进一步包括用于实现软件分布式共享存储器系统的装置,在该软件分布式共享存储器系统中一个节点是图形处理器并且另一个节点是通用处理器。
10.根据权利要求8所述的设备,进一步包括用于当页表项脏位被清除时保持用于该软件分布式共享存储器系统的附加位的状态的装置。
11.根据权利要求10所述的设备,进一步包括用于当页表项脏位被清除时保持用于操作系统的附加位的状态的装置。
12.根据权利要求8所述的设备,进一步包括用于使用两个位的逻辑或来查询脏位的装置。
13.根据权利要求8所述的设备,进一步包括用于将软件分布式共享存储器系统的虚拟共享存储器页面锁定为不可分页的装置。
14.根据权利要求13所述的设备,进一步包括用于在软件分布式共享存储器系统的节点之间的同步之后将页面改变成清洁状态的装置。
15.一种用于在软件分布式共享存储器系统中记录脏信息的系统,包括:
图形处理器;以及
通用处理器,其耦合到所述图形处理器,所述通用处理器和图形处理器被配置为软件分布式共享存储器系统中的节点,所述通用处理器用于使用用于指示页表项是脏的之第一位、用于明了数据对于该软件分布式共享存储器系统而言是否是脏的之第一附加位、以及用于明了数据对于操作系统而言是否是脏的之第二附加位来使用页表项脏位记录系统,以用于所述软件分布式共享存储器系统中的脏记录。
16.根据权利要求15所述的系统,所述通用处理器用于在页表项脏位被清除时,保持用于该软件分布式共享存储器系统的附加位的状态。
17.根据权利要求16所述的系统,所述通用处理器用于在页表项脏位被清除时,保持用于操作系统的附加位的状态。
18.根据权利要求16所述的系统,所述通用处理器用于使用两个位的逻辑或来查询脏位。
19.根据权利要求15所述的系统,所述通用处理器存储软件分布式共享存储器系统的虚拟共享存储器页面,所述虚拟共享存储器页面被锁定为不可分页。
20.根据权利要求19所述的系统,所述通用处理器用于在软件分布式共享存储器系统的节点之间的同步之后将页面改变成清洁状态。
CN201080068022.1A 2010-05-11 2010-05-11 在软件分布式共享存储器系统中记录脏信息 Active CN102971727B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/000670 WO2011140673A1 (en) 2010-05-11 2010-05-11 Recording dirty information in software distributed shared memory systems

Publications (2)

Publication Number Publication Date
CN102971727A CN102971727A (zh) 2013-03-13
CN102971727B true CN102971727B (zh) 2016-05-11

Family

ID=44913815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080068022.1A Active CN102971727B (zh) 2010-05-11 2010-05-11 在软件分布式共享存储器系统中记录脏信息

Country Status (5)

Country Link
US (1) US8516220B2 (zh)
EP (1) EP2569718B1 (zh)
CN (1) CN102971727B (zh)
TW (1) TWI443515B (zh)
WO (1) WO2011140673A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266102B2 (en) * 2010-05-26 2012-09-11 International Business Machines Corporation Synchronization of sequential access storage components with backup catalog
US9558048B2 (en) * 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment
US9087085B2 (en) * 2012-12-10 2015-07-21 International Business Machines Corporation Pre-assimilation values and post-assimilation values in hardware instance identifiers
GB2514107B (en) * 2013-05-13 2020-07-29 Advanced Risc Mach Ltd Page table data management
US11734192B2 (en) 2018-12-10 2023-08-22 International Business Machines Corporation Identifying location of data granules in global virtual address space
US11016908B2 (en) * 2018-12-11 2021-05-25 International Business Machines Corporation Distributed directory of named data elements in coordination namespace
CN109960686B (zh) * 2019-03-26 2021-07-20 北京百度网讯科技有限公司 数据库的日志处理方法和装置
CN110569001B (zh) * 2019-09-17 2020-09-22 深圳忆联信息系统有限公司 基于固态硬盘的L2P表dirty位标记方法和装置
US11928497B2 (en) * 2020-01-27 2024-03-12 International Business Machines Corporation Implementing erasure coding with persistent memory
CN111597076B (zh) * 2020-05-12 2024-04-16 第四范式(北京)技术有限公司 操作数据的方法和装置以及管理持久化跳表的方法和装置
US12112200B2 (en) 2021-09-13 2024-10-08 International Business Machines Corporation Pipeline parallel computing using extended memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0810527A1 (en) * 1996-05-30 1997-12-03 Hewlett-Packard Company A sectored virtual memory management system and translation look-aside buffer (TLB) for the same
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
CN101241492A (zh) * 2007-02-06 2008-08-13 中兴通讯股份有限公司 具有容量动态控制功能的内存数据存储装置及其实现方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5633813A (en) * 1994-05-04 1997-05-27 Srinivasan; Seshan R. Apparatus and method for automatic test generation and fault simulation of electronic circuits, based on programmable logic circuits
US6105113A (en) * 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US6049853A (en) * 1997-08-29 2000-04-11 Sequent Computer Systems, Inc. Data replication across nodes of a multiprocessor computer system
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
FI115015B (fi) * 2002-04-22 2005-02-15 Metso Automation Oy Menetelmä ja järjestelmä väylän varmistamiseksi sekä ohjauspalvelin
US7020804B2 (en) * 2002-12-03 2006-03-28 Lockheed Martin Corporation Test data generation system for evaluating data cleansing applications
US7111145B1 (en) * 2003-03-25 2006-09-19 Vmware, Inc. TLB miss fault handler and method for accessing multiple page tables
US7904906B2 (en) * 2004-11-23 2011-03-08 Stratus Technologies Bermuda Ltd. Tracking modified pages on a computer system
US8127174B1 (en) * 2005-02-28 2012-02-28 Symantec Operating Corporation Method and apparatus for performing transparent in-memory checkpointing
US7774645B1 (en) * 2006-03-29 2010-08-10 Emc Corporation Techniques for mirroring data within a shared virtual memory system
US20090164715A1 (en) * 2007-12-20 2009-06-25 International Business Machines Corporation Protecting Against Stale Page Overlays

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0810527A1 (en) * 1996-05-30 1997-12-03 Hewlett-Packard Company A sectored virtual memory management system and translation look-aside buffer (TLB) for the same
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
CN101241492A (zh) * 2007-02-06 2008-08-13 中兴通讯股份有限公司 具有容量动态控制功能的内存数据存储装置及其实现方法

Also Published As

Publication number Publication date
US20120023296A1 (en) 2012-01-26
TW201214120A (en) 2012-04-01
CN102971727A (zh) 2013-03-13
EP2569718B1 (en) 2018-07-11
US8516220B2 (en) 2013-08-20
WO2011140673A1 (en) 2011-11-17
EP2569718A4 (en) 2014-03-12
TWI443515B (zh) 2014-07-01
EP2569718A1 (en) 2013-03-20

Similar Documents

Publication Publication Date Title
CN102971727B (zh) 在软件分布式共享存储器系统中记录脏信息
CN102625934B (zh) 共享虚拟存储器
US9195542B2 (en) Selectively persisting application program data from system memory to non-volatile data storage
US9710396B2 (en) Sharing virtual memory-based multi-version data between the heterogeneous processors of a computer platform
US8982140B2 (en) Hierarchical memory addressing
US20080235477A1 (en) Coherent data mover
CN110892381B (zh) 用于在数据处理系统中进行快速上下文克隆的方法和装置
US11314420B2 (en) Data replica control
US10146696B1 (en) Data storage system with cluster virtual memory on non-cache-coherent cluster interconnect
KR20070066865A (ko) 미러링된 로크 캐시들을 사용한 데이터 전파
US9448934B2 (en) Affinity group access to global data
CN103885902A (zh) 用于经由纹理硬件实施存储器访问操作的技术
KR20130079865A (ko) 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US11907091B2 (en) Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches
CN104519103A (zh) 网络数据的同步处理方法、服务器及相关系统
CN103870247A (zh) 用于保存和恢复线程组操作状态的技术
US7644114B2 (en) System and method for managing memory
US20050015568A1 (en) Method and system of writing data in a multiple processor computer system
US9026743B2 (en) Flexible replication with skewed mapping in multi-core chips
Imgrund et al. Rambrain-a library for virtually extending physical memory
US9298622B2 (en) Affinity group access to global 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