CN104750624A - 群集级数据一致性模型和协议 - Google Patents

群集级数据一致性模型和协议 Download PDF

Info

Publication number
CN104750624A
CN104750624A CN201410705574.9A CN201410705574A CN104750624A CN 104750624 A CN104750624 A CN 104750624A CN 201410705574 A CN201410705574 A CN 201410705574A CN 104750624 A CN104750624 A CN 104750624A
Authority
CN
China
Prior art keywords
node
memory
district
storage
semaphore
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
CN201410705574.9A
Other languages
English (en)
Other versions
CN104750624B (zh
Inventor
D·达斯莎玛
M·J·库马
B·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.)
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 CN104750624A publication Critical patent/CN104750624A/zh
Application granted granted Critical
Publication of CN104750624B publication Critical patent/CN104750624B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文描述一种提供数据一致性的装置。该装置包括全局持续存储器。使用包括输入/输出(I/O)语义和存储器语义的协议访问该全局持续存储器。该装置也包括反射存储器区。该反射存储器区是全局持续存储器的一部分,多个节点中的每个节点将该反射存储器区映射到不可高速缓存的空间中。进一步说,该装置包括信号量存储器。该信号量存储器为所实施的数据一致性提供硬件辅助。

Description

群集级数据一致性模型和协议
技术领域
本公开一般涉及多节点系统。更具体地,本公开涉及共享存储器。
背景技术
多节点系统可以包括多个节点,其中,可以跨越各节点共享存储器。在一些情形下,节点被连接成可将其视为单个系统的形式。可将该系统称为群集,其包括但不限于:网络或机柜服务器系统及其类似物。可以连接该群集的节点,使得可以在节点间共享存储器。但是,一个节点中的失效会引起整个群集失效。进一步说,通过经输入/输出(I/O)驱动器传递消息,跨越群集之内的各节点来访问存储器。
附图说明
参考所附附图可以更好地理解下述详细描述,所附附图包含本公开主题多个对象和特征的具体示例。
图1是确保数据一致性的架构的图示;
图2是全局存储器映射、节点地址映射和另一个节点地址映射的图示;以及
图3是提供群集级数据一致性模型和协议的进程流程图。
在整个公开和附图中使用相同的标号指示相似的组件和特征。100系列的标号涉及在图1中最初可见的特征,200系列的标号涉及在图2中最初可见的特征,以此类推。
具体实施方式
可以使用若干配置或架构实现计算群集。在一些情形下,使用局域网(LAN)连接群集的节点。中间件可用于协调每个节点间的活动。为了共享数据,可以使用诸如I/O栈之类的软件在群集的每个节点之间传递消息和数据。可能存在与通过I/O栈传递的消息关联的高等待时间。此外,由于更高的等待时间可能阻止每个节点访问最新的数据,数据在节点间可能是不一致的。此外,与维持这样的群集关联的成本可能很高,因为每个节点是单独管理的。
本文描述的实施例涉及群集级数据一致性模型和协议。在实施例中,提供全局持续存储器、反射存储器区和信号量(semaphore)存储器区。使用包括输入/输出(I/O)语义和存储器语义的协议访问全局持续存储器。反射存储器区是全局持续存储器的一部分,多个节点中的每个节点将反射存储器区映射到不可高速缓存的空间中。此外,信号量存储器为所实施的数据一致性提供硬件辅助。通过各存储器区,实现数据一致性,其中通过支持存储器加载存储语义和为数据一致性提供硬件辅助的低等待时间结构连接节点群集。可以通过群集的节点使用低等待时间加载存储机制,以在节点间传递信息。这种低等待时间传递确保了共享的数据在每个群集的节点之间保持一致。
在以下描述和权利要求书中,可使用术语“耦合的”和“连接的”及其衍生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在具体实施例中,“连接的”用于指示两个或更多元件彼此直接物理或电接触。“耦合的”可表示两个或多个元件直接物理或电接触。然而,“耦合的”也可表示两个或更多个元件并未彼此直接接触,但是仍然彼此协作、彼此作用。
一些实施例可在硬件、固件和软件中的一者或组合中实现。一些实施例还可被实现为存储在机器可读介质上的指令,其可由计算平台读取和执行,以执行本文所述的操作。机器可读介质可以包括用于存储或传输机器(例如:计算机)可读形式的信息的任何机制。例如,机器可读介质可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备等。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“另一些实施例”的引用表示结合这些实施例而描述的特定特征、结构、或特性被包括在本发明的至少一些实施例中,而不一定在所有的实施例中。“实施例”、“一个实施例”、“一些实施例”的各自出现不一定都指代相同的实施例。一个实施例的元件或方面可与另一个实施例的元件或方面组合。
并非本文中描述和示出的所有组件、特征、结构、特性等等都需要被包括在特定实施例或多个实施例中。例如,如果说明书陈述“可以”、“可能”、“能”、或“能够”包括组件、特征、结构、或特性,则不一定包括该特定组件、特征、结构、或特性。如果说明书或权利要求书提到“一”或“一个”元件,则这并不意味着仅有一个该元件。如果说明书或权利要求书引用“附加的”元件,则不排除有一个以上该附加的元件。
要注意的是,虽然参考特定实现方式描述了一些实施例,但根据一些实施例,其他实现方式也是可能的。另外,附图中所示的和/或本文描述的电路元件或其它特征的配置和/或顺序不必以所示和所描述的特定方式安排。根据某些实施例,其他许多配置也是可能的。
在附图中示出的每个系统中,在一些情形下的每个元件可具有相同或不同的附图标记,表明所表示的元件可能不同和/或相似。但是,元件可以足够灵活,具有不同的实现方式,并与本文所示或所述的一些或所有系统一起操作。附图中所示的各元件可以相同或不同。将哪个称为第一元件以及将哪个称为第二元件是任意的。
图1是确保数据一致性的架构的图示。部分一致性系统100包括节点102和节点104。节点102包括结构存储器控制器(FMC)106,而节点104包括FMC 108。此外,节点102包括节点存储器114和本地存储器118。节点104包括节点存储器116和本地存储器120。FMC 106和FMC 108中的每一个都可以是具有如图1所示的其各自节点的分立元件。在一些实施例中,FMC 106和FMC 108可以集成进多节点系统的每个节点中的CPU中。相应地,在一些实施例中,FMC 106可以集成进节点102的CPU 110A和CPU 110B中,而FMC 108可以集成进节点104的CPU 112A和CPU 112B中。CPU 110A、CPU 110B、CPU 112A和CPU 112B中的每一个使用PLM(Plattsmouth)协议访问全局存储器,该协议是类似于SMI3的存储器语义(用于系统存储器映射)和用于块型存储器访问的I/O协议(如:PCIe)的组合。全局存储器包括节点存储器114和节点存储器116。在实施例中,可以将全局存储器作为共享存储器或块存储器来访问。全局存储器可以分成多个区。具体来说,全局存储器包括反射存储器区(reflected memoryregion)和信号量存储器区。
FMC 106和FMC 108分别实现故障隔离边界107A和故障隔离边界107B,在其中,甚至在当本地节点停机时,其他节点也可以访问全局存储器。FMC支持跨越其他FMC的存储器复制(包括各种形式的RAIDs),也提供在FMC(或其关联的全局存储器)停机时重构被复制的存储器的内容的能力。
可以使用Plattsmouth(PLM)链路将每一个CPU连接到FMC。相应地,节点102包括将CPU 110A和CPU 110B连接到FMC 106的一对PLM链路122。类似地,节点104包括将CPU 112A和CPU 112B连接到FMC 108的一对PLM链路124。也可以使用PLM链路126A和PLM链路126B将节点102和节点104分别连接到交换机128。每个PLM链路能够支持具有诸如SMI3之类的可选的目录信息的存储器语义和诸如外围组件互联快速(PCIe)协议之类的具有加载和存储功能的I/O协议。在实施例中,可以使用能够用公共引脚组支持存储器语义和I/O协议的任何链路将节点连接到SMC。此外,可以使用能够用公共引脚组支持存储器语义和I/O协议的任何链路将CPU连接到FMC。此外,可以使用PCIe架构的物理层实现PLM链路。
可以通过交换机128访问全局存储器。可以使用交换机128连接来自多个节点系统内的多个节点的多个FMC。在一些情形下,交换机128可以是Stormlake(STL)交换机、被用作交换机的另一个FMC或直接附连机制。在一些情形下,包括有备份交换机。交换机128可以用于为一个或多个节点间的全局数据路由请求。在任何情况下,交换机128被用于跨越全局存储器传递低等待时间消息语义。在实施例中,多个FMC或直接使用PLM链路,或通过另一个FMC交换机彼此连接。此外,在实施例中,通过经STL交换机在诸如STL之类的网络栈上隧穿(tunneling)PLM协议,连接多个FMC。
作为FMC连接多个节点的结果,全局存储器被分享,并且能够通过加载存储语义访问该全局存储器。对于在节点本地的计算,该节点可以访问其为那些计算保留的存储器。在一些情形下,节点的本地存储器是本地持续存储器。驻留在多个节点上的全局存储器可以具有相同的特性存储器,每个节点可以在该存储器上执行操作可以使用诸如DIMM、非易失性存储器、易失性存储器及类似存储器之类的任何存储设备实现全局存储器。此外,可以通过策略将节点分配到全局存储器的特定片,且可以由连接多个节点的FMC的每个节点或交换机保持该策略。
加载存储语义用于通过FMC在节点间进行通信,而非通过RMDA传递消息。每个FMC实现故障隔离边界,在其中,即便节点的CPU失效,也可以通过FMC访问每个节点的全局存储器。如上文讨论的那样,通过STL网络栈或PLM链路,共享存储器可以是可访问的。多个节点中的每个FMC可以使用加载/存储语义在节点间传递消息,但是不占用该多个节点的通信量。
可以使用各种技术实现FMC的故障隔离边界。在一些实施例中,使用硬件确保在相同节点和系统中的每个CPU独立于其他CPU。通过这种方式,独立CPU的失效不影响其他CPU的操作。在另一些实施例中,CPU的失效可能导致其他CPU失效,但是,失效节点内的全局存储器可以上电并活动,使得节点失效而不影响其他节点的处理,并且失效节点的存储器仍然可以访问。
图2是全局存储器映射200、节点地址映射202和另一个节点地址映射204的图示。全局存储器映射200示出为对用作路由器或交换机以协调对跨越节点的全局存储器的访问的一个或多个FMC可见。如上文讨论的那样,可以将全局存储器的诸部分存储到一个或多个节点上。相应地,节点地址映射202示出第一节点的存储器,而节点地址映射204示出第二节点的存储器。
全局存储器可以被分成多个共享存储器区206。节点地址映射202和节点地址映射204分别包括共享存储器区208和共享存储器区210。全局存储器映射共享存储器区208和全局存储器区210。这样,全局存储器映射200包括共享存储器区206。每个节点可以具有对每个共享存储器区的不同访问权。
节点地址映射202的共享存储器区208可以包括任何数目的共享存储器区,范围从1到n。节点204的共享存储器区210可以包括其他数目的共享存储器区,范围从1到p。然后,由全局存储器映射的共享存储器区206包括对范围从1到n的共享存储器区208的映射和对范围从1到p的共享存储器区210的映射.每个共享存储器区可以被物理附连到一个FMC,或跨过多个FMC被剥离。此外,存储器区的大小可以是可变或固定的。在实施例中,可以将每个区保持在页级粒度内,使得整个存储器区可以作为存储器管理方案的一部分被编页。如图1所示,每个节点可以包括不能由FMC访问且不由全局存储器映射200表示的本地存储器。全局群集存储器映射200包括识别局部一致存储器区214的部分212和作为每个单个节点的私有存储器的局部一致存储器区216,并且通过加载-存储结构是不可访问的。
共享存储器区208和共享存储器区210可以像全局群集存储器映射200一样,对具有相同地址范围的每一个节点是可见的。每个共享存储器区可以具有对每个节点组的不同访问权。访问权可以基于一组策略。此外,由一组范围寄存器实施每个共享存储器区的地址范围和任何访问权。在一些情形下,如果上述区是FMC中的(超级)页,则可以通过驻留在存储器内的页表实现每个共享存储器区的地址范围和访问权。如果节点具有合适的访问权,则全局存储器在任何节点中是可高速缓存的。但是,管理全局存储器的一个或多个FMC可以不实施节点间基于硬件的缓存一致性机制。替代地,由在每个节点上运行的软件实施数据一致性。
本地一致存储器区214和本地一致存储器区216可以用作消息区。相应地,本地一致存储器区214和本地一致存储器区216分别包括消息区218和消息区220。虽然本地消息区218和消息区220不能直接由用作交换机或路由器以跨越节点共享存储器的FMC直接访问,但是,FMC可以通过全局存储器映射200中所示的消息区222,经由每个节点传递的直接存储器访问(DMA)消息间接访问本地消息区218和消息区220。在一些情形下,DMA消息实现邮箱机制,在其中,每个节点能够为来自其他节点的消息检查其“邮箱”。
可以使用消息区218和消息区220以确保跨越对应于节点地址映射202和节点地址映射204的节点的数据一致性。每个节点能够向具有对存储器特定部分的访问权的其他节点广播消息,并且能够请求涉及该存储器特定部分的状态的信息。例如,如果第一节点具有属于存储器特定区域的数据,则该第一节点可以请求具有属于存储器特定区域的数据的任何节点更新该存储器区域。具有该存储器区域的任何节点能够对该消息做出响应,并通知提出请求的第一节点,该存储器区域已被更新和替换。在一些情形下,传递消息以访问全局存储器是基于软件的握手,该握手是直接存储器访问,并且不使用I/O栈访问数据。
全局群集地址映射200在通过共享存储器区208和共享存储器区210启用全局共享存储器区时,使每个节点能够保持私有存储器区(如:本地一致存储器区214和本地一致存储器区216)。全局存储器的部分可以用于节点间通信。存在有对应于可用于节点间通信的两种类型的通信机制的两种不同类型的存储器。反射存储器区可用于在节点间传递的消息,而信号量存储器区可用于实现信号量语义。反射存储器区和信号量存储器区都由物理存储器支持。
节点地址映射202包括反射存储器区224,而节点地址映射206包括反射存储器区226。每个反射存储器区包括两个子区域:消息区和中断区。相应地,节点地址映射202包括中断区228和消息区230。节点地址映射204包括中断区232和消息区234。每个节点将反射存储器区映射到其“不可高速缓存的”空间。如现在所使用的,不可高速缓存的空间指示不被映射到全局存储器中的每个节点的部分。这样,节点地址映射202将反射存储器区224映射到本地一致存储器区214中。类似地,节点地址映射204将反射存储器区226映射到本地一致存储器区216中。在一些情形下,每个节点使用存储器写入语义向其DMA消息区写入。在一些情形下,当向反射存储器区写入时使用的地址可能与在将其与目的地节点的本地一致存储器区内的地址比较时使用的地址不同。然后,将DMA消息区映射到全局存储器中,其他节点可以访问全局存储器的DMA消息区内的数据和消息。在一些情形下,DMA消息区对基于策略的节点是可用的。可以类似于使用DMA消息区那样使用中断区。但是,对中断区的写入立即引起节点的注意。管理全局存储器的FMC生成去往一个或多个目的地节点的中断消息。
通过反射存储器区,每个节点能够将消息或数据从其本地一致存储器区传递到其他节点。取决于地址范围,反射存储器区可以是单播或多播的。在单播寻址方案中,向反射存储器区的消息区的写入会导致向可以仅在目的地节点中是可高速缓存的目的地节点的私有存储器区的写入。在多播寻址方案中,向反射存储器区的消息区的写入会导致向可以仅在目的地节点中是可高速缓存的目的地节点的私有存储器区的多次写入。在一个实施例中,这种向反射存储器区的写入可以出现在目的地节点中作为通过PCIe硬件栈的DMA写入。在另一个实施例中,向反射存储器区的写入可以使用一致性和存储器语义的组合去往目的地节点。存储器语义可以指在小单元内可寻址的访问,例如:高速缓存行对I/O访问,该访问是块可寻址的,通常是每块4KB访问。一致性语义可以指相对于处理器缓存一致的访问,所述一致体现在即便在当副本仅驻留在处理器缓存上时,也总是保证返回最新的副本。这包括需要诸如快路径互连技术(也被称为QPI或Keizer技术互连(KTI))或SMI3之类的一致性插槽间结构的一致性语义。管理全局存储器的FMC可以在一个或多个目的地节点中的每个节点中实现一个(或多个)循环消息队列结构,使得FMC向目的地节点的合适的尾指针附加消息。FMC可以基于由源节点使用以执行写入的地址范围确定目的地节点。
可以使用加载或存储操作访问信号量区,以完全使用由数据一致性模型启用的加载存储架构。使用存储器语义,信号量区是可访问的。信号量区不是硬件一致的。相反,信号量区为每个节点内软件实施的一致性机制启用硬件辅助。在一些情形下,共享存储器的每一个块对应于存储器信号量区中的目录。每个节点具有涉及存储器的每一个共享块的目录的地址的信息。当节点需要对数据块的访问权时,该节点使用信号量区内的目录以确定节点对数据是否有访问权。该节点也可以为数据块更新目录,以表明其具有数据,并且该数据已被保护。此外,目录能够通知节点对数据有访问权,但是该数据正在使用中。在一些情形下,可以使用DMA消息或中断以通知节点数据可用。
每个节点可以通过使用锁来保护共享数据。可以通过锁来保护所有的共享数据。在一些情形下,可以通过锁管理器来管理锁。节点可以在访问共享数据之前,通过请求锁来更新FMC处的目录信息。该锁可以是写入或更新由其保护的数据的“专属”锁,或是读取由其保护的数据的“共享”锁。如果节点被授予专属锁,则锁管理器保证该节点是具有共享块内的数据的锁的唯一节点。如果节点具有共享锁,则其他节点也可以具有特定块上的数据的共享锁,但是没有节点能够拥有该共享块的专属锁。
FMC可以使用某些函数操作对应于信号量区内的每个信号量的元数据,以保持对该区内给定部分的访问权的历史。该函数可以是固定的或可编程的。例如,远程节点通过向信号量存储器地址发出读取来请求锁(共享的或专属的,读取或写入)(由被读取的信号量地址的更低地址位确定是共享的还是专属的,是读取的还是写入的)。FMC进而确定是否可以授予锁请求,如果是,则向该节点返回请求者的节点ID。如果信号量已经被锁,则FMC返回锁拥有者的节点ID。FMC进一步保持与每个信号量关联的元数据,该元数据跟踪锁请求者的队列、每个请求者请求的锁类型、当前的锁拥有者和超时计数器。
如果正在请求锁的远程节点被授予锁,则FMC会向其自身返回提出请求的节点的节点ID以表明已授予锁。其他方案也是可能的,在其中,FMC返回0以表明锁授予,返回1以表明锁由其他某个节点拥有。
锁拥有者通过向信号量地址写入来放弃锁。FMC解释该写入,在比较出该写入源于锁拥有者之后,将该锁分配给下一个请求者。给予对信号量的访问权的策略是可配置的FMC参数。例如,可由FMC逻辑支持的策略的一些示例有:先来先得(First Come First Served)、循环(Round Robin)、加权循环(Weighted Round Robin)及类似策略。
在一些示例中,32节点系统需要保持在512B级粒度(块大小)上的全局共享存储上的数据一致性。FMC可以为每个共享块实现16B大小的“目录”。在每个节点中运行的软件获悉每个共享块的该16B地址,并相应作出访问。16B地址的位[33:32]可以实现总目录信息(如:2’b00“无效的”、2’b01“共享的”、2’b010“专属的”)。16B地址的位[31:0]可以标识哪个(哪些)节点可以具有该块(共享的或专属的)。其他位(如:16B地址的位58:34)可以包含管理信息,如:可以使整个目录变成“无效”的特许写入。例如,在恢复软件清理紧接着节点失效的行之后,无效的目录可能出现。如果做出请求的节点已确保其已通过其他机制注意了数据一致性,则也可以使用管理信息来覆写该目录。此外,管理信息也可以包括诸如指示下一访问的优先级指针位于哪里之类的信息。
在示例中,16B地址的位[95:64]可以存储数据的请求队列。如果节点需要“共享的”访问权,其可以在偏移为0处读取16B地址。对于专属的访问权,该节点可以在偏移为4B处读取16B地址,对于管理访问权,该节点可以在偏移为8B处读取16B地址。假设节点需要对数据块的共享访问权。该节点向偏移为0B处发送“读取”。作为对共享访问权的请求的响应,FMC读取16B目录。如果该块是“无效的”或“共享的”,则该FMC向提出请求的节点返回表明成功的预定值。在一些示例中,该预定值可以是全0。然后,FMC将该块的状态存储为“共享的”,且提出请求的节点的ID位被设置在位[31:0]。如果该块是“专属的”,则FMC可以向提出请求的节点返回“稍后尝试”数据。在一些情形下,该稍后尝试数据可以全是1。或者,FMC能够返回标识具有块的节点的32位向量,使得请求者节点能够使用由DMA消息区描述的邮箱机制发送消息。节点也可以使用中断区以获得对块的访问权。在另一替代例中,FMC能够发送“清除”请求。在一些情形下,使用中断区的DMA消息区发送该清除请求。在该清除请求后,该FMC能够将提出请求的节点置于其“队列”中。当块已经被共享时,FMC可以通过向节点已经访问过的16B信号量区发出DMA写入以发送消息或覆写读取-返回。在这种情形下,每个节点访问信号量一次,然后再在该信号量的本地缓存副本处徘徊,直到其得到合适的访问权。注意,节点能够通过向FMC提供不同的地址偏移来动态选择这些访问机制中的任何机制。节点可以通过向16B目录写入来放弃对块的拥有权。FMC将简单读取16B目录,然后在需要时更新目录信息,并且将节点从其保持的拥有列表中去除。
这样,全局存储器可以包括协议,根据该协议,节点能够在全局存储器中取得和更新数据,存在一个具有节点间握手的存储器的群集模型。此外,FMC能够为每个节点确保合适的访问权,并且能够提供对任何已经死去的节点的数据的访问权。使用加载/存储语义和硬件使访问发生,而没有I/O软件栈的延迟。此外,可以以逐字节的线性方式,像访问平存储器那样访问存储器,而不是进行块访问。在一些情形下,共享存储器区是可高速缓存的。
图3是提供群集级数据一致性模型和协议的进程流程图300。在参考号302处,启用可高速缓存的全局存储器。在一些情形下,跨越多个节点存储该全局存储器。在参考号304处,跨越多个节点保持数据一致性。在一些情形下,使用存储于多个节点中的每个节点上的软件和在连接多个节点的每个节点的结构存储器控制器上的硬件辅助机制保持数据一致性。在一些情形下,将该结构存储器控制器集成成为下一代英特尔高性能计算主机结构接口的一部分。在参考号306处,为多个节点中的每个节点实现独立故障域。可以将该独立故障域实现为:在多个节点的第一节点上的共享存储器甚至当该第一节点失效时也可由其他节点访问该共享存储器。
本技术提供非常低等待时间的机制,以在被映射向用户空间的节点间传递消息。本技术也提供低等待时间机制,以在甚至当底层处理器硬件不能支持向不可高速缓存区域的信号量操作时实现信号量和交换信息。这为节点间共享的存储创建了具有低等待时间消息传递和数据一致性的高效群集解决方案。此外,可以使用具有任何高密度机柜级架构(RSA)的本技术。
示例1:
本文描述一种提供数据一致性的装置。该装置包括全局持续存储器、反射存储器区和信号量存储器。使用包括输入/输出(I/O)语义和存储器语义的协议访问全局持续存储器。反射存储器区是全局持续存储器的一部分,多个节点中的每个节点将反射存储器区映射到不可高速缓存的空间中。此外,信号量存储器为所实施的数据一致性提供硬件辅助。
可以使用Plattsmouth链路实现输入/输出(I/O)语义和存储器语义。全局持续存储器的一部分可以用作节点间通信。此外,全局存储器可以包括消息区,对全局存储器的消息区的写入可以产生对目的地节点的私有存储器区的写入。可以使用存储器语义访问消息区。此外,可以在信号量区内为全局存储器的每个共享存储器块保持目录。可以使用DIMM、非易失性存储器、易失性存储器、任何存储设备和存储器设备或上述的任意组合实现全局存储器。此外,反射存储器区和信号量存储器区可以由物理存储器支持。每个节点也可以将反射存储器区映射到其不可高速缓存的空间。
示例2:
本文描述一种提供群集级数据一致性的系统。该系统包括多个节点,其中,多个节点包括软件一致性机制。该系统也包括全局共享存储器,其中,该全局共享存储器包括消息区、信号量区和共享存储器区。进一步说,该系统包括一个或多个结构存储器控制器,其中,该一个或多个结构存储器连接多个节点,并为群集级数据一致性提供硬件辅助。
该结构存储器控制器可以是支持存储器加载存储语义和具有加载和存储功能的输入/输出协议的低等待时间结构。该结构存储器控制器也可以是支持Plattsmouth协议的低等待时间结构。可以将该结构存储器控制器集成成为CPU的主机结构接口的一部分。此外,可以将该结构存储器控制器集成成为英特尔高性能计算主机结构接口的一部分。此外,可以将该结构存储器控制器集成到CPU插槽中。
可以使用DIMM、非易失性存储器、易失性存储器、任何存储设备和存储器设备或上述的任意组合实现全局存储器。可以使用非易失性存储器或存储实现全局存储器,其中,非易失性技术是下一代非易失性技术。还可以使用非易失性存储器或存储实现全局存储器,其中,非易失性技术是相变存储器和开关(PCMS)器件。
多个节点中每个节点的本地存储器可以包括本地消息区,全局存储器通过多个节点中的每个节点传递的DMA消息,间接访问本地消息区。此外,本地消息区可以使用作为直接存储器访问而不使用I/O栈来访问数据的基于软件的握手来传递消息以访问全局存储器。可以使用信号量存储器区实现用于节点间通信的信号量语义。可以将反射存储器区用于在节点间传递的消息。进一步说,该反射存储器区可以包括用于节点间通信的中断区。
示例3:
本文描述一种实现群集级数据一致性的方法。该方法包括启用可高速缓存的全局存储器,其中,跨越多个节点存储该全局存储器。该方法也包括跨越多个节点保持数据一致性。此外,该方法包括为多个节点中的每个节点实现独立故障域。可以使用存储于多个节点中的每个节点上的软件和在连接多个节点中的每个节点的结构存储器控制器上的硬件辅助机制保持数据一致性。此外,可以将该独立故障域实现为诸如:在多个节点中的第一节点上的共享存储器甚至在该第一节点失效时也可由其他节点访问。
上述描述中描述了本公开主题的各个方面。出于解释的目的,列出具体的数字、系统和配置,以提供对本主题的深入理解。但是,对得益于本公开的本领域技术人员来说显而易见的是,不需要具体细节就可以实施本主题。在另一些实例中,省略、简化、组合或分解熟知的特征、组件或模块以使本主题不变得模糊。
可以在硬件、固件、软件或其组合中实现本公开主题的各实施例,并且可以参考或连同程序代码一起描述本公开主题的各实施例,所述程序代码诸如是指令、函数、程序、数据结构、逻辑、应用程序、设计表达或模拟、仿真和设计制作格式,当由机器访问所述指令时,使该机器执行任务,定义抽象数据类型或低级硬件上下文,或产生结果。
为了模拟,程序代码可以标识使用硬件描述语言或基本提供如何期待所设计的硬件执行的模型的其他功能描述语言的硬件。程序代码可以是汇编或机器语言,或是可被编译和/或解释的数据。此外,在本领域中,将以一种形式谈及的软件在另一种形式下说成执行动作或产生结果是很常见的。这种表达仅是说明通过使处理器执行动作或产生结果的处理系统执行程序代码的速记方式。
程序代码可以被存储于诸如:包括诸如存储设备和/或包括固态存储器、硬驱动器、软盘、光存储、磁带、闪存、记忆棒、数字视频盘、数字多功能盘(DVD)等的关联的机器可读或机器可访问介质之类的易失性和/或非易失性存储器,以及诸如机器可访问生物学状态保存存储之类的更奇特的介质。机器可读介质可以包括用于以机器可读形式存储、传输或接收信息的任何有形机制,例如:天线、光纤、通信接口等。可以以分组、串行数据、并行数据等形式传输程序代码,并可以以压缩或加密的格式使用程序代码。
可以以在可编程机器上执行的程序实现程序代码,可编程机器包括诸如移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机和其他电子设备,其中每一个都包括处理器、处理器可读的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。可以使用输入设备将程序代码应用与输入的数据,以执行所描述的实施例和生成输出信息。可以将输出信息应用于一个或多个输出设备。本领域普通技术人员可以领会,可以利用各种计算机系统配置实施本公开主题的实施例,包括:多处理器或多核处理器系统、小型计算机、大型计算机,以及实际可以嵌入到任何设备中的普遍的或微型的计算机或处理器。也可以在分布式计算环境中实施本公开主题的实施例,在分布式计算环境中,可以由通过通信网络被连接的远程处理设备执行任务。
虽然可以以顺序的进程描述操作,但事实上,可以以并行的、同时的,和/或在分布式环境中,和利用用于单处理器或多处理器机器的访问的存储于本地和/或远程的程序代码执行一些操作。此外,在一些实施例中,可以重新安排操作次序,而不背离本公开主题的精神。可以由或连同嵌入式控制器一起使用程序代码。
虽然已经参考示例性实施例描述了本公开主题,但该描述并不旨在在限制性的意义上被解释。示例性实施例的各种修改和对涉及本公开主题的本领域技术人员而言显而易见的本主题的其他实施例也被视为落在本公开主题的范围之内。

Claims (25)

1.一种提供数据一致性的装置,包括:
全局持续存储器,其中,使用包括输入/输出(I/O)语义和存储器语义的协议访问所述全局持续存储器;
反射存储器区,其中,所述反射存储器区是所述全局持续存储器的一部分,多个节点中的每个节点将所述反射存储器区映射到不可高速缓存的空间中;和
信号量存储器,其中,所述信号量存储器为所实施的数据一致性提供硬件辅助。
2.如权利要求1所述的装置,其特征在于,使用Plattsmouth链路实现输入/输出(I/O)语义和存储器语义。
3.如权利要求1或2所述的装置,其特征在于,所述全局持续存储器的一部分用于节点间通信。
4.如权利要求1所述的装置,其特征在于,所述全局存储器包括消息区,向所述全局存储器的所述消息区的写入产生对目的地节点的私有存储器区的写入。
5.如权利要求4所述的装置,其特征在于,使用存储器语义访问所述消息区。
6.如权利要求1所述的装置,其特征在于,在所述信号量区内,为所述全局存储器的每个共享存储器块保持目录。
7.如权利要求1所述的装置,其特征在于,使用DIMM、非易失性存储器、易失性存储器、任何存储设备和存储器设备或所述DIMM、非易失性存储器、易失性存储器、任何存储设备和存储器设备的任意组合实现所述全局存储器。
8.如权利要求1所述的装置,其特征在于,所述反射存储器区和所述信号量存储器区由物理存储器支持。
9.如权利要求1所述的装置,其特征在于,每个节点将所述反射存储器区映射进所述每个节点的不可高速缓存空间。
10.一种提供群集级数据一致性的系统,包括:
多个节点,其中,所述多个节点包括软件一致性机制;
全局共享存储器,其中,所述全局共享存储器包括消息区、信号量区和共享存储器区;和
一个或多个结构存储器控制器,其中,所述一个或多个结构存储器控制器连接所述多个节点,并为群集级数据一致性提供硬件辅助。
11.如权利要求10所述的系统,其特征在于,所述结构存储器控制器是支持存储器加载存储语义和具有加载和存储功能的输入/输出协议的低等待时间结构。
12.如权利要求10或11所述的系统,其特征在于,所述结构存储器控制器是支持Plattsmouth协议的低等待时间结构。
13.如权利要求10所述的系统,其特征在于,将所述结构存储器控制器集成成为CPU的主机结构接口的一部分。
14.如权利要求10所述的系统,其特征在于,将所述结构存储器控制器集成成为英特尔高性能计算主机结构接口的一部分。
15.如权利要求10所述的系统,其特征在于,将所述结构存储器控制器集成进CPU插槽中。
16.如权利要求10所述的系统,其特征在于,使用DIMM、非易失性存储器、易失性存储器、任何存储设备和存储器设备或所述DIMM、非易失性存储器、易失性存储器、任何存储设备和存储器设备的任意组合实现所述全局存储器。
17.如权利要求10所述的系统,其特征在于,使用非易失性存储器或存储实现所述全局存储器,其中,非易失性技术是下一代非易失性技术。
18.如权利要求10所述的系统,其特征在于,使用非易失性存储器或存储实现所述全局存储器,其中,非易失性技术是相变存储器和开关(PCMS)器件。
19.如权利要求10所述的系统,其特征在于,所述多个节点中每个节点的本地存储器包括本地消息区,所述全局存储器通过所述多个节点中的每个节点传递的DMA消息,间接访问所述本地消息区。
20.如权利要求10所述的系统,其特征在于,所述本地消息区使用作为直接存储器访问而不使用I/O栈来访问数据的基于软件的握手来传递消息,以访问所述全局存储器。
21.如权利要求10所述的系统,其特征在于,使用所述信号量存储器区实现节点间通信的信号量语义。
22.如权利要求10所述的系统,其特征在于,所述反射存储器区用于在节点间传递的消息。
23.一种实现群集级数据一致性的方法,所述方法包括:
启用可高速缓存的全局存储器,其中,跨越多个节点存储所述全局存储器;
跨越所述多个节点保持数据一致性;和
为所述多个节点中的每个节点实现独立故障域。
24.如权利要求23所述的方法,其特征在于,使用存储于所述多个节点中的每个节点上的软件和在连接所述多个节点中的每个节点的结构存储器控制器上的硬件辅助机制保持数据一致性。
25.如权利要求23或24所述的方法,其特征在于,将所述独立故障域实现为:在所述多个节点中的第一节点上的共享存储器甚至在所述第一节点失效时也可由其他节点访问。
CN201410705574.9A 2013-12-27 2014-11-27 群集级数据一致性模型和协议 Expired - Fee Related CN104750624B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/142,733 US9383932B2 (en) 2013-12-27 2013-12-27 Data coherency model and protocol at cluster level
US14/142,733 2013-12-27

Publications (2)

Publication Number Publication Date
CN104750624A true CN104750624A (zh) 2015-07-01
CN104750624B CN104750624B (zh) 2018-07-17

Family

ID=53372167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410705574.9A Expired - Fee Related CN104750624B (zh) 2013-12-27 2014-11-27 群集级数据一致性模型和协议

Country Status (4)

Country Link
US (2) US9383932B2 (zh)
KR (2) KR101684490B1 (zh)
CN (1) CN104750624B (zh)
DE (1) DE102014117463A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704212A (zh) * 2017-10-31 2018-02-16 紫光华山信息技术有限公司 一种数据处理方法及装置
CN112486703A (zh) * 2020-11-27 2021-03-12 中船重工(武汉)凌久电子有限责任公司 基于多核多处理器并行系统的全局数据存储器管理方法
CN117950599A (zh) * 2024-03-27 2024-04-30 国家超级计算天津中心 基于分布式系统的i/o栈构建方法、装置、设备及介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012398211B2 (en) * 2012-12-28 2016-12-08 Huawei Technologies Co., Ltd. Caching method for distributed storage system, a lock server node, and a lock client node
DE112013007724B4 (de) * 2013-12-26 2024-01-11 Intel Corporation System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
US9588855B2 (en) * 2015-04-22 2017-03-07 PernixData, Inc. Management and utilization of fault domains in distributed cache systems
US20170078367A1 (en) * 2015-09-10 2017-03-16 Lightfleet Corporation Packet-flow message-distribution system
US10296580B1 (en) 2015-09-18 2019-05-21 Amazon Technologies, Inc. Delivering parsed content items
US10127210B1 (en) 2015-09-25 2018-11-13 Amazon Technologies, Inc. Content rendering
US10241983B1 (en) 2015-09-28 2019-03-26 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10691750B1 (en) 2015-09-28 2020-06-23 Amazon Technologies, Inc. Browser configured to efficiently store browsing session state
US10341345B1 (en) 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration
US10348797B1 (en) 2015-12-15 2019-07-09 Amazon Technologies, Inc. Network browser configuration
US10162770B2 (en) 2016-06-30 2018-12-25 Intel Corporation Virtual machine migration in rack scale systems
US10585818B2 (en) 2017-04-05 2020-03-10 International Business Machines Corporation Low overhead exclusive control for shared memory objects
US10540227B2 (en) 2018-01-03 2020-01-21 Hewlett Packard Enterprise Development Lp Sequential memory access on a high performance computing system
US11714755B2 (en) 2020-07-31 2023-08-01 Hewlett Packard Enterprise Development Lp System and method for scalable hardware-coherent memory nodes
US11573898B2 (en) * 2020-08-17 2023-02-07 Hewlett Packard Enterprise Development Lp System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing
CN112612422B (zh) * 2020-12-29 2022-08-23 重庆邮电大学 移动边缘计算中副本的动态一致性维护方法
US11966590B2 (en) 2022-02-25 2024-04-23 Samsung Electronics Co., Ltd. Persistent memory with cache coherent interconnect interface

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245703A (en) * 1988-06-27 1993-09-14 Bull S.A. Data processing system with multiple communication buses and protocols
US20010052054A1 (en) * 1999-03-29 2001-12-13 Hubertus Franke Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US20030149844A1 (en) * 2002-02-06 2003-08-07 Duncan Samuel H. Block data mover adapted to contain faults in a partitioned multiprocessor system
US20050223265A1 (en) * 2004-03-29 2005-10-06 Maclaren John Memory testing
US20130117600A1 (en) * 2009-06-23 2013-05-09 International Business Machines Corporation Memory management in a non-volatile solid state memory device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4338075B2 (ja) * 2003-07-22 2009-09-30 株式会社日立製作所 記憶装置システム
JP4286826B2 (ja) * 2004-10-15 2009-07-01 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムで多重構成をサポートする方法及び装置
US7237149B2 (en) * 2005-02-25 2007-06-26 Freescale Semiconductor, Inc. Method and apparatus for qualifying debug operation using source information
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8775880B2 (en) * 2009-06-11 2014-07-08 STMicroelectronics Intenational N.V. Shared fuse wrapper architecture for memory repair
US9448940B2 (en) * 2011-10-28 2016-09-20 The Regents Of The University Of California Multiple core computer processor with globally-accessible local memories
US9697223B2 (en) * 2013-07-08 2017-07-04 International Business Machines Corporation Providing identifiers to data files in a data deduplication system
US9842015B2 (en) * 2013-09-27 2017-12-12 Intel Corporation Instruction and logic for machine checking communication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245703A (en) * 1988-06-27 1993-09-14 Bull S.A. Data processing system with multiple communication buses and protocols
US20010052054A1 (en) * 1999-03-29 2001-12-13 Hubertus Franke Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US20030149844A1 (en) * 2002-02-06 2003-08-07 Duncan Samuel H. Block data mover adapted to contain faults in a partitioned multiprocessor system
US20050223265A1 (en) * 2004-03-29 2005-10-06 Maclaren John Memory testing
US20130117600A1 (en) * 2009-06-23 2013-05-09 International Business Machines Corporation Memory management in a non-volatile solid state memory device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704212A (zh) * 2017-10-31 2018-02-16 紫光华山信息技术有限公司 一种数据处理方法及装置
CN107704212B (zh) * 2017-10-31 2019-09-06 新华三信息技术有限公司 一种数据处理方法及装置
CN112486703A (zh) * 2020-11-27 2021-03-12 中船重工(武汉)凌久电子有限责任公司 基于多核多处理器并行系统的全局数据存储器管理方法
CN112486703B (zh) * 2020-11-27 2024-02-06 中船重工(武汉)凌久电子有限责任公司 基于多核多处理器并行系统的全局数据存储器管理方法
CN117950599A (zh) * 2024-03-27 2024-04-30 国家超级计算天津中心 基于分布式系统的i/o栈构建方法、装置、设备及介质
CN117950599B (zh) * 2024-03-27 2024-07-19 国家超级计算天津中心 基于分布式系统的i/o栈构建方法、装置、设备及介质

Also Published As

Publication number Publication date
KR20150077296A (ko) 2015-07-07
US20150186057A1 (en) 2015-07-02
US9383932B2 (en) 2016-07-05
US10296399B2 (en) 2019-05-21
KR101684490B1 (ko) 2016-12-09
CN104750624B (zh) 2018-07-17
KR102204751B1 (ko) 2021-01-19
KR20160143619A (ko) 2016-12-14
DE102014117463A1 (de) 2015-07-02
US20170046208A1 (en) 2017-02-16

Similar Documents

Publication Publication Date Title
CN104750624A (zh) 群集级数据一致性模型和协议
JP6202756B2 (ja) 支援型コヒーレント共有メモリ
Aguilera et al. Remote memory in the age of fast networks
AU2017201918B2 (en) Prioritizing data reconstruction in distributed storage systems
ES2535943T3 (es) Propagación de recuento de referencia
CN104750559B (zh) 跨多节点的存储器资源的池化
US20200371700A1 (en) Coordinated allocation of external memory
CN109154910A (zh) 用于存储器中处理的高速缓存一致性
EP3465444B1 (en) Data access between computing nodes
CN103080918A (zh) 功率优化的中断传递
JP2006252545A (ja) 外部raid対応キャッシュ
CN103744799A (zh) 一种内存数据访问方法、装置和系统
TW201732610A (zh) 用於範圍保護的系統、方法及設備
US20090248989A1 (en) Multiprocessor computer system with reduced directory requirement
CN104050093A (zh) 用于追踪统一虚拟存储器系统中的页面故障的故障缓冲区
US11023178B2 (en) Implementing coherency and page cache support for a storage system spread across multiple data centers
CN104049904A (zh) 用于管理统一虚拟存储器的页面状态目录
KR102387181B1 (ko) 컴퓨팅 디바이스 및 그것의 동작방법
CN104049903A (zh) 用于统一虚拟存储器系统的迁移方案
US20130145210A1 (en) Flexible replication with skewed mapping in multi-core chips
CN104049905A (zh) 在异构处理器之间迁移不同尺寸的页
BR112017017306B1 (pt) Método para acessar dados em um sistema com múltiplos núcleos, dispositivo de cache de diretório, sistema com múltiplos núcleos, e unidade de armazenagem de diretório

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
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: 20180717

Termination date: 20191127