CN103890737A - 映射持久存储器 - Google Patents
映射持久存储器 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable 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可以是任何数量的众所周知的处理器,如来自公司的处理器。可替代地,处理器可以是用于运行操作的专用控制器,如专用集成电路(“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可以是高速/高频率串行链路,如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所述的计算机装置,其中所述控制器是如下的控制器,该控制器:
保证由处理器对先前请求的数据块所做的修改在该处理器访问所述描述符以前被存储;并且
保证由所述处理器对先前请求的描述符所做的修改在该处理器访问所述数据块以前被存储。
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)
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)
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)
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)
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 |
-
2011
- 2011-10-07 EP EP11873708.9A patent/EP2764439B1/en active Active
- 2011-10-07 KR KR1020147009069A patent/KR20140077167A/ko not_active Application Discontinuation
- 2011-10-07 US US14/349,070 patent/US9342452B2/en active Active
- 2011-10-07 CN CN201180074041.XA patent/CN103890737B/zh not_active Expired - Fee Related
- 2011-10-07 WO PCT/US2011/055226 patent/WO2013052061A1/en active Application Filing
-
2016
- 2016-04-15 US US15/099,984 patent/US10025716B2/en active Active
Patent Citations (6)
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)
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 |