CN103890737A - 映射持久存储器 - Google Patents

映射持久存储器 Download PDF

Info

Publication number
CN103890737A
CN103890737A CN201180074041.XA CN201180074041A CN103890737A CN 103890737 A CN103890737 A CN 103890737A CN 201180074041 A CN201180074041 A CN 201180074041A CN 103890737 A CN103890737 A CN 103890737A
Authority
CN
China
Prior art keywords
processor
controller
data block
descriptor
aperture
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
CN201180074041.XA
Other languages
English (en)
Other versions
CN103890737B (zh
Inventor
加里·戈斯廷
克雷格·韦尔纳
约翰·W·博克豪斯
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN103890737A publication Critical patent/CN103890737A/zh
Application granted granted Critical
Publication of CN103890737B publication Critical patent/CN103890737B/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/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供一种访问存储器的计算机装置和相关方法。在一个方面中,控制器将存储器的数据块的地址范围映射至多个处理器中至少一个处理器的可访问内存地址范围内。在另一方面中,该控制器保证由多个处理器在多个内存中缓存的数据块的复本是一致的。

Description

映射持久存储器
背景技术
云计算和手持设备的出现已经增加了对数据更快、更可靠访问的需求。数据库性能严重依赖于处理器对存储器的平均访问时间。此前的系统利用各种技术来增强处理器和存储器之间的数据转移性能。
附图说明
图1图示根据本申请的方面的计算机装置。
图2是根据本申请的方面的控制器的并拢图示。
图3是处理器和存储器的说明性地址空间。
图4图示根据本申请的方面的流程图。
图5是根据本申请的方面所存储的数据的工作示例。
图6是根据本申请的方面向处理器转移的数据的工作示例。
具体实施方式
从随机存取内存(“RAM”)获取数据通常快于从存储器获取。因此,过去许多使处理器和存储器之间的延迟最小化的尝试涉及多种RAM缓存策略。然而,存储器中可利用的地址范围通常宽于处理器的内存地址空间。相应地,所缓存的数据必须经常转移至存储器和从存储器转移出,以保证处理器可访问内存缓存中的必要的存储部分。RAM和存储器之间的连续交换低于理想情况,并且对性能有负面影响。
本申请的方面提供用处理器直接访问存储器的计算机装置和方法。在一个方面中,持久存储介质中的数据块的地址范围可以被映射到多个处理器中至少一个处理器的可访问的内存地址范围。在另一方面,保持在多个内存中缓存的数据块的请求部分的复本的一致性。
当参考下面的示例描述和附图时,本申请的方面、特征和优势将被理解。下面的描述不局限于申请,相反本申请的范围由所附权利要求和等同物限定。
图1呈现根据本申请的方面的绘出各个组件的说明性计算机装置100的示意图。计算机装置100可以包括与计算机相关正常使用的所有组件。例如,其可以具有键盘、鼠标和/或诸如笔输入、游戏杆、按键、触摸屏等之类的各种其它类型的输入设备以及显示器,显示器能够包括例如CRT、LCD、等离子屏监视器、TV、投影仪等。计算机装置100还可以包含处理器110和处理器122、内存112和存储器114。内存112可以存储可以由处理器110和处理器122获取并运行的指令115。在一个示例中,内存112可以是RAM设备,如动态随机存取内存(“DRAM”)设备。在另一示例中,内存112可以被分成多个内存片段,这些内存片段被组织为双列直插式内存模块(“DIMM”)。
处理器110和处理器122可以是任何数量的众所周知的处理器,如来自
Figure BDA0000488039790000021
公司的处理器。可替代地,处理器可以是用于运行操作的专用控制器,如专用集成电路(“ASIC”)。处理器110和处理器122可以分别包括本地缓存111和本地缓存123。每个本地缓存可以由静态随机存取内存(“SRAM”)设备构成,或者作为单层缓存内存或者作为具有缓存层次的多层缓存内存。处理器110和处理器122还可以可通信地联接至输入/输出(“I/O”)接口113,该输入/输出接口113与诸如键盘、鼠标或监视器之类的基本输入/输出设备接合。尽管图1中仅示出两个处理器和一个内存,但是要理解,计算机装置100可以具有附加处理器和内存,图1仅是说明性的。
指令115可以包括待由处理器(多个处理器)直接地运行(如机器代码)或间接地运行(如脚本)的任何指令集。在这一方面,术语“指令”、“步骤”和“程序”可以在本文中可互换地使用。指令可以以任何计算机语言或任何格式存储,如以目标代码或源代码的模块。指令115可以将处理器110和处理器122配置为向存储器114写数据并且从存储器114读数据。
存储器114可以是允许处理器110和处理器122获取、操纵和存储信息的存储介质。存储器114可以利用由蔡少棠(Leon Chua)在1971年假定的忆阻器技术。名称“忆阻器”是记忆电阻器的缩写。忆阻器是两端子无源设备,其电阻状态依赖于其前一状态和其当前电偏置条件。考虑到它们结构简单和电子无源性,忆阻器可以适于用作存储介质。然而,存储器114可以是其它类型的非易失性存储设备,如相变存储器(“PCM”)或者旋转力矩转移RAM(“STT-RAM”)。在另一示例中,存储器可以是闪存或有后备电池的DRAM。存储器114还可以被分成多个片段,该多个片段被组织为DIMM。在另一示例中,存储器114可以位于与处理器110和处理器122物理地远离但是仍可由处理器110和处理器122访问的位置。在又一示例中,数据可以在多个存储设备之间分布。
图1还示出控制器116,控制器116可以是负责存储器114和处理器110、122之间的通信的任何类型的芯片集或控制逻辑。控制器116可以是可编程逻辑器件(PLD)、可编程逻辑阵列(PLA)、ASIC等。第一总线118可以用来将控制器116可通信地与处理器110和处理器122联接。第一总线118可以是高速/高频率串行链路,如
Figure BDA0000488039790000031
QuickPath Interconnect(快速通道互联)。在另一示例中,第一总线118可以符合超传输规范修订版3.1(超传输技术联盟,2008年8月18日发布)和/或其它修订版。第二总线120可以是与第一总线118相同或不同的技术。尽管图1示出与处理器110、处理器122和存储器114直接联接的控制器116,但是应当理解在它们之间可以布置和配置其它组件或设备。在这一点上,应当理解可以在处理器110、处理器122、存储器112和I/O接口113之间布置和配置其它组件或设备。尽管计算机装置100的所有组件在图1中从功能上被示出为位于相同框内,但是将理解这些组件可以被存储在或可以不被存储在相同物理外壳内。
计算机装置100可以包括适合于与其它计算机或设备通信的电路(未示出),如实现由电气电子工程师协会(“IEEE”)完成的标准(标准802.3)的以太网接口。在另一示例中,计算机装置100可以利用根据一套IEEE802.11标准的无线保真(“Wi-Fi”)接口。要理解,可以利用其它标准或协议,如蓝牙或令牌环。
图2呈现根据本公开内容的方面的控制器116的并拢图示。控制器116的一种可能功能可以是将持久存储介质中的数据块的地址映射到多个处理器中至少一个处理器的可访问内存地址范围内,如框201所示。孔径(aperture)在本文中被定义为内存地址的处理器可访问范围中预限定的地址范围。描述符表212可以存储多个描述符,每个描述符可以包括孔径和存储器块之间的关联。尽管描述符中的孔径和存储器块之间关联可以更改,但是描述符仅可以与一个孔径关联。孔径与存储器块的关联可以通过改变该描述符中表示的存储器块来改变。于是,该存储器块可以由处理器或I/O设备经由孔径的地址范围直接访问。每个描述符还可以包括:待与孔径关联的存储器块的指针或索引,以及表示对与该孔径对应的存储器块所允许的访问类型(例如读取访问、写入访问等)的至少一个标志(flag)。尽管图2示出在控制器116中布置的描述符表212,但是将理解,描述符表212可以存储在不同于控制器116的位置处的易失性内存或非易失性内存中。描述符表212可以以硬件、软件或硬件及软件的组合的形式实现。
控制器116的另一可能功能可以是保证由多个处理器在多个内存中缓存的数据块的请求部分的复本是一致的(即,缓存一致性(cache coherency)),如框202所示。内存可以是缓存内存或者是其它本地内存。控制器116可以包括缓存一致性引擎117,缓存一致性引擎117可以是例如用于管理处理器和存储器之间的缓存一致性的硬线状态机(hardwired state machine)。缓存一致性引擎117可以保证一个处理器对数据的更新被施加至由其它处理器缓存的相同数据的复本。在另一示例中,缓存一致性引擎117可以保证存储器114中的数据与由处理器缓存的数据一致。对于描述符表212而言,缓存一致性引擎117还可以以硬件、软件或者硬件及软件的组合的形式实现。
在图3中,地址空间302代表处理器的说明性内存地址空间,地址空间303代表存储器的说明性地址空间。处理器可访问的内存地址范围通常受其地址总线和寄存器的宽度限制。存储器的地址范围一般宽于处理器可访问的范围。例如,如果存储器114是忆阻器存储设备,则存储器114的地址范围可以是大约264个字节,而处理器的地址范围可以是大约246个字节。此外,处理器的地址空间的一部分可以为其它用途保留。在图3的示例中,地址范围304是专用于内存112的地址空间的区域。
在一个示例中,孔径的大小可以与由计算机装置100的操作系统确定的存储器块大小一致。在另一示例中,指令115可以确定孔径的大小。孔径可以对应于存储器中相同大小的地址范围(即,存储器块)。例如,图3的孔径306-312可以分别对应于数据块322-328。数据块322-328被示出为在地址空间303各处散布。描述符336-342每个可以代表孔径和存储器块之间的关联。如果处理器110需要来自例如存储器块322的数据的多个部分,则处理器110可以使用描述符336来使孔径306与存储器块322关联,如图3所示。由于孔径306具有位于处理器110的地址空间内的地址范围,所以处理器可以通过引用孔径306的地址来访问存储器块322的多个部分。因此,即便其地址位于处理器的地址空间以外,处理器110仍可以访问存储器块322。
本系统和方法的一个工作示例在图4至图6中示出。具体地,图4图示用于将数据从存储器直接转移至多个处理器之一的过程400的流程图。为了便于说明,下面的工作示例集中于控制器116和处理器110之间的通信。图5和图6图示存储器数据转移的方面。图5和图6所示的动作将在下面关于图4的流程图介绍。
在图4的框401中,处理器选择孔径。在使该孔径与存储器块关联以前,处理器110可以确定与该孔径关联的描述符是否被缓存,如框402所示。如果该描述符未被缓存,则缓存遗失结果并且处理器110可以请求该描述符,如框404所示。在提供该描述符以前,在框408中,控制器116可以确定当前与该孔径关联的数据块的先前请求部分是否仍被缓存在内存(如本地缓存111)中。如果数据块的先前的请求部分被缓存在内存中,则控制器116可以从中移除这些数据块部分,将任何被修改的数据转移至存储器114中的对应数据块,如框410所示。这可以保证对数据块的所有修改在处理器访问该描述符以前都已经被存储并交付给存储器114。参考图5的示例,处理器110的本地缓存111被示出为具有孔径306,孔径306可以包含来自存储器114的先前获取的块322的复本。在图5的时刻t1,处理器110可以从缓存一致性引擎117请求描述符。在将描述符传输至处理器110以前,控制器116的缓存一致性引擎117可以在时刻t2从本地缓存111中移除孔径306的内容。在时刻t3,缓存一致性引擎117可以将孔径306的内容存储在其在存储器114中对应的地址中。在图5的示例中,描述符表212的描述符336表示孔径306与存储器中的地址322关联。
在图4的框412中,控制器116可以将该描述符传输至处理器110。如图5所示,在时刻t4,处理器110可以接收该描述符并且将其存储在位置502处的本地缓存111中,这允许处理器修改该描述符。返回参考图4,处理器可以修改该描述符,以使对应的孔径与不同的存储器块关联,如框406所示。现在参考图6,缓存位置502处的描述符可以改变,以便改变与来自322至333的孔径306关联的数据块。在图4的框407中,处理器可以访问该孔径的现在被映射至新选择的存储器块(数据块333)的一部分。在框414中,处理器110可以确定来自新映射的存储器块的数据的请求部分是否已经经由所选择的孔径被缓存。如果数据未被缓存,则缓存遗失结果并且处理器可以经由该孔径从存储器请求数据块的多个部分,如框417所示。在转发该数据以前,控制器116可以确定该描述符是否已被缓存,如框416所示。如果描述符已被缓存,则控制器116可以从中移除该描述符,如框418所示。控制器可以将所修改的描述符存储在描述符表中,这改变孔径映射,如框419所示。这可以保证在处理器访问该数据块以前存储对先前请求的描述符做出的改变。图6的示例图示在描述符表212的描述符336中存储的孔径306和存储器块333之间的关联。在图6的时刻t1,处理器110可以经由孔径306请求新数据块的多个部分。缓存一致性引擎117可以在时刻t2获取该描述符并且在时刻t3将其存储在描述符表112中。在时刻t4,所请求的数据块部分可以从块333经由孔径306转移至处理器110。返回参考图4,在图4的块420中,控制器116现在可以经由孔径306将数据从存储器传输至处理器。在框422中,处理器可以接收数据,并且在框424中,处理器可以访问该数据。
有利地,上面描述的装置和方法允许处理器直接访问来自存储设备的数据,该存储设备的地址范围大于该处理器的地址范围。在这一点上,程序访问数据库的速度被增大。于是,终端用户体验更少的数据获取延迟。
尽管已经关于特定示例描述了本文的公开内容,但是应当理解这些示例仅说明本公开内容的原理。因此应当理解,可以对这些示例进行多种修改并且可以设计其它布置,而不背离由所附权利要求限定的公开示例的精神和范围。此外,尽管在附图中以特定顺序示出特定过程,但是这样的过程不局限于任何特定的顺序,除非这样的顺序在本文中明确地表达。相反能够以不同的顺序或同时处理各个步骤,并且可以省略或添加步骤。

Claims (15)

1.一种计算机装置,包括:
控制器,该控制器:
将持久存储介质中的数据块的地址范围映射至多个处理器中至少一个处理器的可访问内存地址范围中;以及
保证由所述多个处理器在多个内存中缓存的所述数据块的请求部分的复本保持一致。
2.根据权利要求1所述的计算机装置,其中所述至少一个处理器是如下的处理器,该处理器:
选择孔径,所述孔径是位于所述至少一个处理器的可访问内存地址范围内的预确定的地址范围,所述孔径的所述预确定的地址范围与所述数据块的地址范围关联;并且
引用所述孔径的所述预确定的地址范围内的地址来访问所述数据块的请求部分。
3.根据权利要求2所述的计算机装置,其中所述控制器是存储描述符的控制器,该描述符包括所述孔径和所述数据块之间的关联。
4.根据权利要求3所述的计算机装置,其中所述描述符与所述孔径关联。
5.根据权利要求4所述的计算机装置,其中所述描述符进一步包括:对所述数据块的索引或指针,以及在经由所述孔径访问所述数据块时表示对所述数据块的访问许可的至少一个标志。
6.根据权利要求4所述的计算机装置,其中所述控制器是如下的控制器,该控制器保证由一个处理器缓存的所述孔径和所述描述符的复本与由其它处理器缓存的所述孔径和所述描述符的其它复本一致。
7.根据权利要求6所述的计算机装置,其中所述控制器是如下的控制器,该控制器:
保证由处理器对先前请求的数据块所做的修改在该处理器访问所述描述符以前被存储;并且
保证由所述处理器对先前请求的描述符所做的修改在该处理器访问所述数据块以前被存储。
8.根据权利要求1所述的计算机装置,其中所述持久存储介质是忆阻器设备。
9.一种计算机装置,包括:
控制器,该控制器:
使孔径与忆阻器存储设备中的数据块关联,所述孔径是位于多个处理器中至少一个处理器的可访问内存地址范围内的预确定的地址范围,所述孔径的所述预确定的地址范围对应于所述数据块的地址范围;
将所述数据块的请求部分经由所述孔径转移至所述至少一个处理器;以及
保证由所述多个处理器在多个内存中缓存的所述数据块的请求部分的复本保持一致。
10.根据权利要求9所述的计算机装置,其中所述至少一个处理器是如下的处理器,该处理器:
选择所述孔径;并且
引用所述孔径的所述预确定的地址范围内的地址来访问所述数据块的请求部分。
11.根据权利要求9所述的计算机装置,其中所述控制器是如下的控制器,该控制器存储描述符,该描述符包括所述孔径和所述数据块之间的关联。
12.根据权利要求11所述的计算机装置,其中所述描述符与所述孔径关联。
13.根据权利要求12所述的计算机装置,其中所述描述符进一步包括:与所述数据块关联的索引或指针,以及在经由所述孔径访问所述数据块时表示对所述数据块的访问许可的至少一个标志。
14.根据权利要求13所述的计算机装置,其中所述控制器是如下的控制器,该控制器保证由一个处理器缓存的所述孔径和所述描述符的复本与由其它处理器缓存的所述孔径和所述描述符的其它复本一致。
15.根据权利要求13所述的计算机装置,其中所述控制器是如下的控制器,该控制器:
保证由处理器对先前请求的数据块所做的修改在该处理器访问所述描述符以前被存储;并且
保证由所述处理器对先前请求的描述符所做的修改在该处理器访问所述数据块以前被存储。
CN201180074041.XA 2011-10-07 2011-10-07 映射持久存储器 Expired - Fee Related CN103890737B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/055226 WO2013052061A1 (en) 2011-10-07 2011-10-07 Mapping persistent storage

Publications (2)

Publication Number Publication Date
CN103890737A true CN103890737A (zh) 2014-06-25
CN103890737B CN103890737B (zh) 2016-09-21

Family

ID=48044035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180074041.XA Expired - Fee Related CN103890737B (zh) 2011-10-07 2011-10-07 映射持久存储器

Country Status (5)

Country Link
US (2) US9342452B2 (zh)
EP (1) EP2764439B1 (zh)
KR (1) KR20140077167A (zh)
CN (1) CN103890737B (zh)
WO (1) WO2013052061A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718242A (zh) * 2016-01-15 2016-06-29 中国人民解放军国防科学技术大学 多核dsp中支持软硬件数据一致性的处理方法及系统
CN107111454A (zh) * 2014-12-11 2017-08-29 英特尔公司 计算方法以及具有持久性存储器的设备
CN110347614A (zh) * 2019-07-08 2019-10-18 青岛镕铭半导体有限公司 存储空间映射算法、缓存状态机、存储装置、存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016175814A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Mapping apertures of different sizes
US10503643B1 (en) 2018-07-11 2019-12-10 Qualcomm Incorporated Cache coherence with functional address apertures

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2260630A (en) * 1991-10-16 1993-04-21 Intel Corp A memory management system for preserving cache coherency
US5860079A (en) * 1996-05-10 1999-01-12 Apple Computer, Inc. Arrangement and method for efficient calculation of memory addresses in a block storage memory system
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6138176A (en) * 1997-11-14 2000-10-24 3Ware Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers
US7502877B2 (en) * 2003-12-16 2009-03-10 Intel Corporation Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
US20100095053A1 (en) * 2006-06-08 2010-04-15 Bitmicro Networks, Inc. hybrid multi-tiered caching storage system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE254778T1 (de) 1997-09-05 2003-12-15 Sun Microsystems Inc Nachschlagtabelle und verfahren zur datenspeicherung darin
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US7302514B2 (en) 2004-06-15 2007-11-27 Intel Corporation Device, system, and method of virtual machine memory mapping
US7734889B1 (en) * 2006-12-22 2010-06-08 Emc Corporation Methods and apparatus for distributing information to multiple nodes
US20090019232A1 (en) * 2007-07-11 2009-01-15 Freescale Semiconductor, Inc. Specification of coherence domain during address translation
US7882327B2 (en) 2007-07-31 2011-02-01 Advanced Micro Devices, Inc. Communicating between partitions in a statically partitioned multiprocessing system
US8966219B2 (en) * 2007-10-30 2015-02-24 International Business Machines Corporation Address translation through an intermediate address space
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
US7769919B2 (en) 2008-05-15 2010-08-03 International Business Machines Corporation Protecting computer memory from simultaneous direct memory access operations using active and inactive translation tables
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8898417B1 (en) * 2009-10-20 2014-11-25 Micron Technology, Inc. Block-based storage device with a memory-mapped interface

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2260630A (en) * 1991-10-16 1993-04-21 Intel Corp A memory management system for preserving cache coherency
US5860079A (en) * 1996-05-10 1999-01-12 Apple Computer, Inc. Arrangement and method for efficient calculation of memory addresses in a block storage memory system
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6138176A (en) * 1997-11-14 2000-10-24 3Ware Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers
US7502877B2 (en) * 2003-12-16 2009-03-10 Intel Corporation Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
US20100095053A1 (en) * 2006-06-08 2010-04-15 Bitmicro Networks, Inc. hybrid multi-tiered caching storage system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111454A (zh) * 2014-12-11 2017-08-29 英特尔公司 计算方法以及具有持久性存储器的设备
CN107111454B (zh) * 2014-12-11 2020-07-14 英特尔公司 计算方法以及具有持久性存储器的设备
CN105718242A (zh) * 2016-01-15 2016-06-29 中国人民解放军国防科学技术大学 多核dsp中支持软硬件数据一致性的处理方法及系统
CN105718242B (zh) * 2016-01-15 2018-08-17 中国人民解放军国防科学技术大学 多核dsp中支持软硬件数据一致性的处理方法及系统
CN110347614A (zh) * 2019-07-08 2019-10-18 青岛镕铭半导体有限公司 存储空间映射算法、缓存状态机、存储装置、存储介质
CN110347614B (zh) * 2019-07-08 2022-08-12 镕铭微电子(济南)有限公司 存储空间映射算法、缓存状态机、存储装置、存储介质

Also Published As

Publication number Publication date
WO2013052061A1 (en) 2013-04-11
EP2764439A4 (en) 2015-07-15
EP2764439A1 (en) 2014-08-13
US20160232094A1 (en) 2016-08-11
US10025716B2 (en) 2018-07-17
US20140250274A1 (en) 2014-09-04
EP2764439B1 (en) 2019-06-26
CN103890737B (zh) 2016-09-21
US9342452B2 (en) 2016-05-17
KR20140077167A (ko) 2014-06-23

Similar Documents

Publication Publication Date Title
US20210311637A1 (en) Unified addressing and hierarchical heterogeneous storage and memory
KR102683696B1 (ko) 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법
US11341059B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US10782904B2 (en) Host computing arrangement, remote server arrangement, storage system and methods thereof
JP5348429B2 (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
US10296250B2 (en) Method and apparatus for improving performance of sequential logging in a storage device
US10402335B2 (en) Method and apparatus for persistently caching storage data in a page cache
KR102575913B1 (ko) 비대칭 세트 결합된 캐시
US10503655B2 (en) Data block sizing for channels in a multi-channel high-bandwidth memory
US10025716B2 (en) Mapping processor address ranges to persistent storage
US9477605B2 (en) Memory hierarchy using row-based compression
US20180285282A1 (en) Method and apparatus for erase block granularity eviction in host based caching
US20190004968A1 (en) Cache management method, storage system and computer program product
US20170255565A1 (en) Method and apparatus for providing a contiguously addressable memory region by remapping an address space
US11836087B2 (en) Per-process re-configurable caches
US20170228321A1 (en) Pinning Objects in Multi-Level Memory Hierarchies
CN112703481A (zh) 混合式存储器系统接口
US20240211406A1 (en) Systems, methods, and apparatus for accessing data from memory or storage at a storage node
CN117032554A (zh) 存储装置、计算装置以及计算装置的操作方法

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
C41 Transfer of patent application or patent right or utility model
GR01 Patent grant
TA01 Transfer of patent application right

Effective date of registration: 20160829

Address after: Texas, USA

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT L.P.

Address before: Texas, USA

Applicant before: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

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

Granted publication date: 20160921

Termination date: 20211007

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