CN101174245A - 混合数据存储的方法和装置 - Google Patents
混合数据存储的方法和装置 Download PDFInfo
- Publication number
- CN101174245A CN101174245A CNA2007101671944A CN200710167194A CN101174245A CN 101174245 A CN101174245 A CN 101174245A CN A2007101671944 A CNA2007101671944 A CN A2007101671944A CN 200710167194 A CN200710167194 A CN 200710167194A CN 101174245 A CN101174245 A CN 101174245A
- Authority
- CN
- China
- Prior art keywords
- memory
- equipment
- data
- sram
- dram
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/306—In system interconnect, e.g. between two buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请描述用于混合数据存储的方法与设备。实施例可以包括混合存储器控制器,用于促进存取多于一种存储器设备,下文主要称为混合存储器设备或混合高速缓存设备。该混合存储器控制器可以包括用于确定是否将写请求的数据分割成为多于一部分并将各部分存储在不同种类的数据存储设备中的分割逻辑。例如,一个实施例包括将数据存储在SRAM与DRAM设备两者中的混合存储器控制器。该SRAM与DRAM设备可以包括硅片上的不同的电路、芯片内的不同的硅片、存储模块上的不同的芯片、不同的存储模块等。
Description
技术领域
本公开总体涉及数据存储设备。更具体地,本公开涉及用于平衡低延迟(latency)存取和高密度数据存储的混合数据存储的方法和设备。
背景技术
存储器瓶颈是关于现代计算机系统的速度和处理能力的重大问题。制造商继续增加处理器时钟速度、总线速度和带宽以及存储器容量,以提高系统性能,但是处理器不能比存储器能够存取命令以将命令发送到处理器更快地执行命令。因此,如果不能如处理器能够执行指令一样迅速地存取存储器,则尽管所增加的时钟及总线速度和总线带宽,处理器仍将停顿(stall),从而大大影响系统的整体性能。
在很多这种系统中经常使用高速缓冲存储器,或高速缓存,以相对成本有效(cost-effective)的方式来缓解该问题并增加性能。如今所采用的两种主要类型的固态存储器是静态随机存取存储器(SRAM)以及动态随机存取存储器(DRAM)。概念上,使用触发器(flip-flop)作为存储设备实现SRAM,并且使用电容器作为存储设备实现DRAM。SRAM被看作是静态的,因为其不需像DRAM那样被更新(refresh)。泄漏电流减少由DRAM存储的电荷,所以需要定时地更新DRAM。
SRAM与DRAM都提供随机存取能力,并且对于其他系统组件来说看起来基本等同,然而,SRAM具有更加低的初始延迟。例如,SRAM可以提供比DRAM的初始存取时间快大约十倍的初始存取时间。另外,SRAM的周期比DRAM的周期短得多,因为SRAM不需在存取之间的暂停。然而,这种更低的初始延迟和更短的周期的出现是以更低的存储密度和更高的功率消耗为代价的。例如,SRAM的功率消耗可以是DRAM的大约十倍。此外,SRAM比DRAM昂贵得多,例如,每比特大约贵十倍。
在SRAM还是DRAM的实施间的决定通常是在一方面是速度要求与另一方面是存储密度、物理空间、功率约束以及成本间的折衷。一般,在对于诸如高速缓冲存储器之类的存取速度重于其他考虑因素的系统中,实施SRAM,而在对于诸如主要存储器系统的高存储密度重于其他考虑因素的系统中,实施DRAM。
目前,计算机系统,从服务器到低功率嵌入处理器,典型并入SRAM作为第一级高速缓存L1,并经常作为第二和第三级高速缓存L2和L3。在处理器硅片(die)上或附近典型地并入L1和L2高速缓冲存储器,使被频繁存取的数据和指令的存储能够接近处理器的执行单元,以最小化存取延迟。理想地,在用于指令执行的时间接近时,该指令及对应的数据被从更远的主存储器或L3高速缓存移动到L2高速缓存。然而,SRAM作为高速缓存的并入,损失了更高密度的存储。
计算机系统也并入DRAM作为主存储器。该主存储器担当用于从诸如硬盘驱动、紧致盘、远程系统等的甚至更高的延迟的、大量或大容量(bulk)存储设备存取的数据和指令的缓冲器。尽管很多改进已经增加了从DRAM的数据突发(bursting)速度,但初始延迟可能很大,因而为了更高密度的存储,用于主存储器的DRAM的并入牺牲了较低的初始存取时间,这可能显著影响整体的系统性能。
发明内容
以上所标识的问题很大程度上由在此所提供的响应于事件来从系统收集数据的方法与设备解决。一个实施例包括存取在存储器中的数据的方法。该方法可以包括:由存储器控制器标识与写请求关联的数据的第一部分;由存储器控制器在第一存储器设备中存储该数据的第一部分;以及由存储器控制器在第二存储器设备中存储该数据的第二部分。第一存储器设备具有比第二存储器设备的初始存取延迟短的初始存取延迟,并且第一部分和第二部分的存储位置具有连续的存储地址。
另一实施例包括存取数据的设备。该设备可以包括:第一种存储器设备;第二种存储器设备;以及与第一种存储器设备及第二种存储器设备耦合的存储器控制器。该存储器控制器将响应于写请求而将与写请求关联的数据写到第一种存储器设备与第二种存储器设备。该存储器控制器还响应于对于该数据的读请求而在与第二种存储器设备中的数据的第二部分的存取关联的初始延迟期间从第一种存储器设备读取该数据的第一部分,并且给用于该数据的第一部分与该数据的第二部分的存储位置分配连续的存储地址。
另一实施例包括一种系统。该系统可以包括:处理器;静态随机存取存储器(SRAM)设备;动态随机存取存储器(DRAM)设备;以及经由总线与处理器耦合的存储器控制器。该存储器控制器将来自处理器的写请求的数据存储在SRAM与DRAM设备中,并且可以包括将数据分割成至少存储在SRAM设备中的第一部分与存储在DRAM设备中的第二部分。第一部分和第二部分的存储位置具有连续的存储地址。
再一个实施例包括一种设备。该设备可以包括:带有低初始存取延迟的第一存储器设备;带有高初始存取延迟的第二存储器设备;以及与该第一存储器设备与第二存储器设备互连的地址解码逻辑。该地址解码逻辑可以将第一连续物理地址范围与第一存储器设备关联,以及将第二连续物理地址范围与第二存储器设备关联,其中,该第一连续物理地址范围是与该第二连续物理地址范围连续的。
附图说明
在阅读以下详细描述以及参考附图之后,本发明的方面将变得显而易见,在附图中,相似的参考符号可以指示类似的元件:
图1描述包括混合存储器控制器与混合存储器设备的处理系统;
图2描述用于从混合存储器设备响应于读请求的时序图;
图3A图示包括用于存取静态随机存取存储器(SRAM)与动态随机存取存储器(DRAM)以减少或充分掩盖存取存储在DRAM中的数据的初始延迟的逻辑的混合存储器控制器;
图3B描述包括与SRAM设备及DRAM设备互连以给SRAM及DRAM设备组提供连续物理地址的地址解码逻辑的混合存储器设备的实施例;
图4图示通过混合存储器控制器来响应于写请求的实施例的流程图;以及
图5图示通过混合存储器控制器来响应于获取数据的读请求的实施例的流程图。
具体实施方式
以下是对附图中所描绘的新颖实施例的详细描述。如此详细描述本实施例,以便清晰传达本主题。然而,所提供的大量细节不是打算限制所描述的实施例的预期变更;相反,权利要求和详细的描述旨在覆盖落入在如由所附权利要求所限定的本讲授的主旨和范围内的所有的修改、等效物以及替换物。设计以下详细描述以使该实施例对于相关领域的技术人员来说可以理解。
在此一般地描述用于处理系统的混合数据存储的方法和装置。实施例可以包括来促进混合存储器——即,不止一种类型的存储器设备——的存取的混合存储器控制器。为了方便,以下一般将混合存储器称作混合存储器设备,并且有时更特别称作混合高速缓存设备,其指示系统中的存储器的职能。混合存储器设备可以是被特别设计用于向位于处理系统的共同位置或不同位置处的混合存储器或松散耦合的存储器设备分配连续地址的设备。
混合存储器控制器可以包括分割(split)逻辑,其来确定是否将写请求数据分割为不止一部分,并在不同类型的数据存储设备中存储各部分。例如,一个实施例包括来在SRAM与DRAM两者中存储数据的混合存储器控制器。SRAM与DRAM设备可以包括硅片(die)上的完全不同的电路、芯片内的完全不同的硅片、存储模块上的完全不同的芯片、完全不同的存储模块等。
混合存储器控制器可以是一个或更多的芯片,并且可以包括用于每一种类型的存储器设备的存储器队列控制器,诸如用于SRAM设备的队列控制器与用于DRAM设备的队列控制器。此外,混合存储器控制器可以包括地址翻译器和地址表,用于跟踪在不止一个存储器设备间的数据分割的部分、以及在一些实施例中向不止一个存储器设备间的数据分割分配连续的逻辑地址。
更多的实施例包括带有将连续地址与不止一种类型的存储器关联的地址解码逻辑的混合存储器设备。该混合存储器设备可以包括被交叉存取(interleaved)并耦合于地址解码逻辑的不止一种类型的存储器。该地址解码逻辑可以分配连续的地址到不同类型的存储器,以充分掩盖与诸如DRAM的高初始存取延迟存储器设备关联的初始存取延迟。例如,可以将关于写请求所接收的数据的第一部分写到诸如SRAM的低初始存取延迟存储器设备,并且可以将该数据的剩余部分写入高初始存取延迟存储器设备的连续存储地址中。在很多实施例中,混合存储器设备可以代替当前存储模块,而无需在相应的存储器控制器中实现特殊逻辑。
虽然以下将参考特定的存储器设备、电路、队列配置或逻辑配置描述特定实施例,但是相关领域的技术人员将认识到,可以有利地用其他存储器设备、电路、队列配置及逻辑配置实施本公开的实施例。
现在转向图1,示出了处理系统100,该处理系统100包括混合存储器控制器,诸如混合高速缓存控制器120、混合视频存储器控制器140、高速缓存控制器155以及混合存储器控制器165,以存取混合存储器设备,诸如混合二级(L2)高速缓存125、混合三级(L3)高速缓存160、混合视频存储器145以及混合系统存储器170。处理系统100可以是诸如分布式计算系统、超型计算机、高性能计算系统、计算群集(cluster)、主机计算机、小型机、客户服务器系统、个人计算机(PC)、工作站、服务器、便携计算机、膝上型计算机、平板(tablet)计算机、诸如个人数字助理(PDA)的手持设备、或用于处理或传输信息的其他设备的计算机系统。实施相似的实施例作为例如诸如便携音乐播放器或便携视频播放器、轻便电话或其他蜂窝电话、电话机、数字视频相机、数字静态相机、外部存储设备等的娱乐设备。其它实施例实现诸如服务器系统的较大规模服务器系统。
处理系统100包括诸如通过主总线(host bus)130与存储器控制器集线器(MCH)135及输入-输出(I/O)控制器集线器(ICH)150耦合的处理器105、视频控制器137、存储器控制器、以及按照在诸如主板的平面上的存储器的组件。处理系统100包括诸如处理器105的组件,该处理器包括与混合高速缓存控制器120及混合二级(L2)高速缓存125耦合的处理器核110。处理器105可以是国际商用机器个人台式机处理器、英特尔奔腾处理器、Cyrix处理器或先进微型设备8486处理器或任何其他适合的处理器。在另外的实施例中,处理器105可以是与主总线130耦合的多个处理器之一。在很多实施例中,一级(L1)高速缓存可以被合并到处理器核110中。
混合存储器设备可以提供用于在以在低延迟存储器和大容量存储器之间平衡的精细粒度(granularity),并且在一些实施例中,甚至提供在部署后可调整的粒度。例如,混合L2高速缓存125可以支配性地包括诸如静态随机存储器(SRAM)设备的低延迟存储器126用于数据存储,以提供低延迟存取。然而,混合L2高速缓存125还可以包括诸如动态随机存储器(DRAM)设备的大容量存储器127,以增加可以以每字节相对更低的成本、更低的功率消耗水平、和/或相对更高的密度而被存储的数据量,以降低处理器105的硅片上的硅区域的影响。SRAM和DRAM设备可以包括硅片上的不同的电路、芯片内的不同的硅片、存储模块上不的芯片、不同的存储器模块等。
混合高速缓存控制器120可以提供高速缓存算法和其它这样的功能以及对于用于处理器核110的指令的低延迟的存取。此外,高速缓存控制器120可以包括分割逻辑,其将写数据划分成部分以存储在低延迟存储器126与大容量存储器127中、跟踪该数据的部分以及从低延迟存储器126与大容量存储器127两者中获取该数据的部分。在一些实施例中,可以设计混合高速缓存控制器120,以基于所预期或启发式确定的读数据的大小将该数据分割成为预定义的部分。在很多实施例中,预定义的部分基于执行在处理系统100上的应用而变化。例如,服务器执行与台式计算机不同的应用,并当存取更大的数据时,对于混合L2高速缓存125的每个请求平均可以更有效地运行。因此,在一些服务器实施例中,在大容量存储器127中所存储的部分的大小平均可以比对于台式实施例的相应的部分大。
可以基于在大容量存储器127正准备突发剩余数据时能够从低延迟存储器126所读取的数据量来限定低延迟存储器126的预定义部分。在很多实施例中,该部分考虑与低延迟存储器126关联的初始延迟以及与对大容量存储器127的存取关联的初始延迟。因此,低延迟存储器126的预定部分可以充分掩盖大容量存储器127的初始存取延迟。
可以基于用于典型、均值或平均读请求的预期的数据量以及低延迟存储器126的预定义部分来确定大容量存储器127的预定义部分。在其他实施例中,可以基于读请求的期望最大、典型最大或均值最大的大小来确定大容量存储器127的预定义部分。在几个实施例中,基于这些预定义部分来确定混合L2高速缓存125中低延迟存储器126与大容量存储器127的比例,例如SRAM与DRAM的比例。在另外的实施例中,可以设计混合高速缓存控制器120,来学习或细化(refine)要安放在低延迟存储器126以及大容量存储器127中的部分的大小,以满足一个或更多所指示或预定义的目的。在这些实施例中,该比例可以主要基于其他因素。
响应于来自处理器核110的读请求,混合高速缓存控制器120可以首先从低延迟存储器126读数据,以将数据迅速返回到处理器核110。在混合高速缓存控制器120开始存取低延迟存储器126中的数据部分的时间内,混合高速缓存控制器120可以开始读取大容量存储器127中所存储的数据部分。然后混合高速缓存控制器120可以在一次基本连续的突发或两次不同的突发中以从低延迟存储器126获取的数据部分继之以从大容量存储器127获取的数据部分来响应处理器核110。在一些实施例中,来自大容量存储器127的数据的突发速度与低延迟存储器126的突发速度相当或基本相同,但是低延迟存储器126的初始延迟比大容量存储器127的延迟低。
MCH135与ICH150代表处理系统100的核心逻辑芯片集的部分,该部分分别促进从存储器设备以及I/O设备到处理器105的存取以及从处理器105到存储器设备以及I/O设备的存取。MCH135可以包括适应于由视频控制器137进行的直接存储器存取(DMA)的总线149。在一些实施例中,该总线149可以是加速图形接口(AGP)。AGP可以是被设计用于视频控制器137的高速端口,并可以提供在视频控制器137与混合系统存储器170之间的直接通信。AGP可以使用例如32位总线来提供诸如每秒264兆字节、每秒528兆字节、每秒十亿字节以及每秒二十亿字节的数据传送率。在其他实施例中,总线149可以是外围组件交互链接(PCI)总线,诸如PCI快速(PCI-E)总线。
视频控制器137可以生成并更新用于处理系统100的显示诸如液晶显示(LCD)。视频控制器137可以包括混合视频存储器控制器140以及混合视频存储器145。混合视频存储器控制器140可以包括被设计来在一个或更多类型存储器诸如低延迟存储器146(例如,双端口SRAM)与大容量存储器147(例如,VRAM,其本质上是被专门设计用于视频处理的双端口DRAM)之间分割写数据的存储器控制器。与混合高速缓存控制器120类似,混合视频存储器控制器140可以把来自写请求的数据划分成为部分,以存储在低延迟存储器126以及大容量存储器127中。然而,低延迟存储器146与大容量存储器147的相对大小,以及低延迟存储器146与大容量存储器147中存储的数据部分的相对大小可以基于与视频控制器137关联的算法和功能。
MCH 135还可以提供经由高速缓存控制器155到三级(L3)高速缓存160以及经由混合存储器控制器165到混合系统存储器170的存取。混合L3高速缓存160可以存储由处理器105重复存取的指令和数据,包括不那么足够频繁被存取而被提升到混合L2高速缓存125的指令和数据。混合L3高速缓存160包括两种存储器设备,低延迟存储器162和大容量存储器163。在一些实施例中,混合L3高速缓存160可以包括低延迟存储器162和大容量存储器163的交叉存取存储区(interleaved bank)。在其他实施例中,混合L3高速缓存160可以包括低延迟存储器162和大容量存储器163的一个或更多模块。
高速缓存控制器155是被设计用于存取L3高速缓存的标准存储器控制器。当高速缓存控制器155向混合L3高速缓存160中的连续地址范围写入时,混合L3高速缓存160的地址解码逻辑161可以将数据的第一部分写到低延迟存储器162,并将数据的第二部分写到大容量存储器163。其后,响应于对于该地址范围的读请求,地址解码逻辑161可以获取数据的第一部分,以突发对于该读请求的初始响应。基本同时地,地址解码逻辑161可以从大容量存储器163获取数据的第二部分,以突发对于该读请求的剩余响应。在另外的实施例中,操作系统或其他存储器管理代码可以了解混合L3高速缓存160,并以从混合L3高速缓存160中的两种存储器类型得到更多优势的方式选择用于数据存储的地址。在其他实施例中,用于高速缓存控制器155的混合存储器控制器的实施可以从混合L3高速缓存160得到更多优势。
混合系统存储器170可以包括诸如SRAM的低延迟存储模块与诸如双倍数据速率(DDR)同步动态随机存取存储器(SDRAM)的大容量存储模块。混合系统存储器170由一个或更多存储模块组成,并且混合存储器控制器165包括地址翻译器,用于映射(mapping)地址到处理器105以及从处理器105到混合系统存储器170的特定区域,诸如低延迟存储器172内的区域与大容量存储器173内的区域。
混合存储器控制器165可以包括分割逻辑,用于确定是否要将写数据分割为部分,以存储在低延迟存储器172与大容量存储器173中。例如,如果写数据的大小没达到或超过阈值大小,那么分割逻辑可以将所有数据存储在大容量存储器173中或存储在低延迟存储器172中。例如,阈值可以是如下大小,在该值处大量数据将被存储在更高密度的大容量存储器173中,而不是存储在低延迟存储器172中。在几个实施例中,动态确定阈值,而在另外的实施例中,预定阈值,或至少默认阈值是预先定义的。在一些实施例中,要在低延迟存储器172与大容量存储器173之间分割的写数据的选择可以基于与数据关联的优先级、用于该数据的阈值大小、低延迟存储器172中的剩余空间量、低延迟存储器172或大容量存储器173的碎片(fragmentaion)和/或其他因素。
设计ICH150以协调与各种I/O设备的通信。例如,ICH150可以与局域网(LAN)适配器、通用串行总线(USB)端口、独立磁盘冗余阵列(RAID)控制器、集成驱动电子(integrated adapter electronics,IDE)总线、PCI-E总线、PCI总线以及低管脚数(low pin count,LPC)总线耦合。LAN适配器可以被耦合到PCI总线或直接耦合到ICH150,以促进LAN上与远程计算机或服务器的通信。LAN适配器还可以被认为是网络接口卡(NIC)。
图2描述用于通过诸如混合高速缓存控制器120、混合视频存储器控制器140以及混合存储器控制器165之类的混合存储器控制器的对于数据的读请求的响应的实施例的时序图200。在该实施例中,混合存储器控制器在SRAM 210的初始延迟——其位于t0与tSRAM之间——之后从SRAM 210突发数据的第一部分220。在涂覆数据的第一部分220后,混合存储器控制器从DRAM 250突发该数据的第二部分260。从DRAM 250突发数据的第二部分260的初始延迟位于t0与tDRAM之间。
在一些高速缓存实施例中,从SRAM突发的数据的第一部分220可以比从DRAM250突发的数据的第二部分260大。然而,在很多系统存储器实施例中,从DRAM250突发的数据的第二部分260比从SRAM突发的数据的第一部分220大。
在许多实施例中,数据的第一部分220的突发的结束可能不在DRAM250的初始延迟周期的结束处,因而虚线270指示SRAM210可以结束的潜在时间的范围。在这些实施例的几个中,数据的第二部分260的突发可能开始在数据的第一部分220的突发的结束处或其之后。在其他实施例中,暂停可以发生在突发之间,或突发可以交迭。
参考图3A,示出了混合存储器控制器300的实施例,该混合存储器控制器300包括分割逻辑310,用于存取SRAM设备与DRAM设备,以降低或充分掩盖对存储在DRAM设备中的数据的存取的初始延迟。混合存储器控制器300可以包括微控制器、特定用途系统诸如状态机或特定用途处理器、由代码配置的通用机、以上两者的组合等。具体地,混合存储器控制器300可以接收用于存取混合存储器的命令,也称作请求,诸如读(或加载)命令与写(或存储)命令。在一些实施例中,混合存储器控制器300可以基于与服务该指令关联的延迟以及与该指令关联的优先级而重新排序(re-order)命令,以减少与存取存储器有关的延迟。混合存储器控制器300包括分割逻辑310、仲裁器(arbiter)330、与DRAM队列控制器345耦合的一个或多个DRAM队列340、以及与SRAM队列控制器355耦合的一个或多个SRAM队列350。混合存储器控制器300还可以包括突发协调器360。
分割逻辑310可以从请求器,例如诸如图1中的处理器105的处理器,接收到来的命令,并用数据或业务确认来响应该命令。例如,分割逻辑310可以处理读命令,并通过返回数据到请求器而响应。分割逻辑310可以如下处理写命令:将与写指令关联的数据存储在DRAM设备和/或SRAM设备中,并用确认数据已经被写到或在正在被写到DRAM设备和/或SRAM设备的处理中的完成来响应该请求器。
分割逻辑310可以包括到来的队列312、地址翻译器314、地址表格316以及选择逻辑318。到来的队列312可以包括一个或更多队列,在其中存储将被处理的命令。在一些实施例中,到来的队列312可以包括接收所有到来的命令的单个队列。然后分割逻辑310可以将命令分离成为读命令队列和写命令队列。在另外的实施例中,到来的队列312可以具有包括一个或多个队列的第二级,用于保持被处理的命令直到仲裁器330将命令传输到DRAM队列340或SRAM队列350。
地址翻译器314翻译由分割逻辑310接收的命令所针对的地址。具体地,基于命令的地址指示,物理(或真实)地址被附加或与到来的命令关联。地址翻译器314与地址表格316耦合,以将命令的逻辑地址指示转换成用于描述该命令旨在对其进行操作的存储器扩展(memory extent)与存储区的物理地址。对于读命令,如果在DRAM设备与SRAM设备间分割数据,则地址翻译器314可以返回DRAM设备的物理地址与SRAM设备的物理地址,并将这些物理地址与地址表格316中的连续逻辑地址关联。在另外的实施例中,可以以诸如物理关联或预定逻辑关联的其他方式关联SRAM设备与DRAM设备内的物理地址。操作可以包括例如从存储位置加载数据或向存储位置写数据。在很多实施例中,地址翻译器314还验证与命令关联的存储地址是否是有效地址。
选择逻辑318可以标识对于其数据将被分割成为部分以存储在SRAM设备与DRAM设备中的写命令。在一些实施例中,选择逻辑318可以确定该数据是否适合于划分成为第一和第二部分。例如,选择逻辑318可以包括数据的默认或预定义的阈值大小。在这些实施例中,如果与写命令关联的数据达到或超过了阈值大小,该数据将被分割。
在一些实施例中,选择逻辑318可以基于与写命令关联的优先级分割数据。例如,命令可以包括用于分割数据的指示或可以包括与数据关联的优先级级别的指示。在这种情况下,选择逻辑318可以基于该指示分割数据,或基于该优先级如果在例如SRAM设备中有足够的空间可用,则分割数据。在很多这样的实施例中,可以针对一些或每个优先级级别提供分配(allocation),并且如果有足够的空间可用,选择逻辑318可以分割数据。
在几个实施例中,选择逻辑318还可以确定要存储在SRAM设备中的数据的第一部分的大小。选择逻辑318可以基于与写命令关联的数据量、与写命令的数据关联的优先级、基于与数据关联的优先级的对于该数据的可用空间量、在SRAM设备内的可用空间量、启发式确定的大小、预定大小、默认大小等来确定该大小。
选择逻辑318可以将决定是否分割的指示、以及可能将数据的第一部分的大小与写命令关联,从而地址翻译器314可以将一个或更多物理地址与写命令关联。在一个实施例中,将数据的第一部分的大小预定义为在与从DRAM设备突发数据的第二部分相关联的初始延迟期间能够被突发的大小。在这样的实施例中,地址翻译器314可以基于来自选择逻辑318的关于与写命令关联的数据是否已经达到或超过阈值大小的指示来分配地址给写命令。
仲裁器330可以在由地址翻译器314给命令分配了物理地址后把来自到来的队列312的命令传送到相应的DRAM队列340和/或SRAM队列350。在一些实施例中,当DRAM队列340中空间变为可用来接收命令时,仲裁器330可以将命令传输到DRAM队列340。类似地,当空间变为可用时,仲裁器330可以将命令传输到SRAM队列350。
DRAM队列340可以包括一个或更多诸如先入先出(FIFO)队列的队列。在一些实施例中,DRAM队列340可以包括基于命令的优先级或性质来快速跟踪(track)一些命令的逻辑。例如,至少可以先于写命令执行读命令,直到未决的(pending)写命令的数量达到阈值数量。在很多实施例中,DRAM队列340可以包括用于读命令与写命令的分离的队列。在这些实施例中,DRAM队列340可以包括用于比较与读命令与写命令关联的地址,而保证对于相同的地址不会先于先前接收的写命令而处理读命令的逻辑。
DRAM队列340与DRAM队列控制器345耦合,以存取DRAM设备的DRAM存储区而从该存储区读数据或向该存储区写数据。DRAM队列控制器345可以包括用于存取DRAM设备的一个或更多定序器。
SRAM队列350可以包括一个或更多队列,并且与DRAM队列340类似,一些实施例将基于命令的优先级或性质来快速跟踪一些命令的逻辑提供给SRAM队列350。在很多实施例中,SRAM队列350可以包括用于读命令与写命令的分离的队列。在这些实施例中,SRAM队列350可以包括用于比较与读命令与写命令关联的地址,而保证对于相同的地址不会先于先前接收的写命令而处理读命令的逻辑。SRAM队列350与SRAM队列控制器355耦合,以存取SRAM设备。
突发协调器360可以协调从DRAM设备与SRAM设备读取的数据的突发,以在对于读命令的单一响应中或作为与同一响应关联的一系列信息包返回该数据。在一些实施例中,突发协调器360可以动态影响队列中的命令的优先级来协调对于请求的响应。在另外的实施例中,突发协调器360可以包括用于促进协调对于读命令的响应的缓冲器,其中用于响应的数据的第一部分存储在SRAM设备中并且该数据的第二部分存储在DRAM设备中。
图3B描述诸如可以与图3A中的混合存储器控制器300耦合的混合存储器设备的混合存储器设备365的实施例。混合存储器设备365可以包括与SRAM设备374、384及394、DRAM设备376、386及396互连的地址解码逻辑370,用于为SRAM与DRAM设备组提供连续的物理地址,以减少或充分掩盖DRAM设备中所存储的数据的存取的初始延迟。一个替代的实施例利用逻辑地址分配来提供连续的存储地址。其他实施例可以包括不同于SRAM设备的具有快速初始存取的存储器设备和/或不同于DRAM设备的具有慢初始存取的存储器设备。另外的实施例包括多于两种存储器设备的组合,其中每个组合被分配连续的存储地址范围。
地址解码逻辑370可以是将物理地址与模块或芯片关联的更高级别的逻辑,并且/或者可以为扩展和存储区提供更低级别的地址解码。地址解码逻辑370例如经由连接372与SRAM设备374及DRAM设备376互连,以对于SRAM设备374关联第一连续物理地址范围,以及对于DRAM设备376关联第二连续物理地址范围。在很多实施例中,第一连续物理地址范围与第二连续物理地址范围是连续的。
类似地,地址解码逻辑370经由连接382与SRAM设备384及DRAM设备386耦合,并经由连接392与SRAM设备394及DRAM设备396耦合。在一些实施例中,连接372、382以及392每个可以包括线路(line),或在其他实施例中可以包括总线。
SRAM设备374、384以及394每个可以包括SRAM的存储区、扩展、存储区组、硅片、芯片、芯片组、模块、模块组等。类似地,DRAM设备376、386以及396每个可以包括DRAM的存储区、扩展、存储区组、硅片、芯片、芯片组、模块、模块组等。此外,像其他SRAM与DRAM组一样,SRAM设备374与DRAM设备376组可以包括SRAM与DRAM组合的存储区、扩展、存储区组、硅片、芯片、芯片组、模块、模块组等。例如,SRAM设备374可以是SRAM的第一硅片,DRAM设备376可以是DRAM的第二硅片,并且在一些实施例中,硅片可以存在于单一的芯片包中。
图4图示通过混合存储器控制器响应写请求的实施例的流程图400。流程图400以接收写请求开始(单元410)。例如,混合存储器控制器可以从处理器接收业务,其包括具有地址指示与要写的数据的的写请求。在一些实施例中,处理器可以是诸如处理系统100的处理器105的用于处理系统的通用处理器。在另外的实施例中,处理器可以是视频或图形卡上的处理器,并且混合存储器控制器可以是安装在视频卡上的存储器的视频存储器控制器。
然后决定关于是否要将写请求的数据分割成为部分,以存储在诸如SRAM的较低初始延迟设备与诸如扩展的数据输出(extended data out,EDO)DRAM的较高初始延迟设备中(单元415)。在一些实施例中,多于两种的存储器设备可能可利用,并且在其内写数据的设备的数量与种类的选择可以依赖要写的数据的数量及性质。例如,处理器将周期执行或操作的大量数据可以被给予高优先级,并被写到多于两个设备,以增加混合存储器设备的有效带宽。另一方面,较低优先级的较小量数据可以被写到一个或两个存储器设备中。
如果混合存储器控制器确定不将数据分割成为部分,则可以传输该数据到所选择的存储器设备以存储(单元420),并且可以在地址表中存储地址指示,以促进响应于随后的读请求的数据获取(单元450)。如果混合存储器控制器确定将数据分割成为部分,则可以传输该数据的第一部分到低延迟存储器以存储(单元440),并可以传输该数据的第二部分到较高的初始延迟存储器设备用于存储(单元445)。然后当设备变为可用于写数据时,可以将该数据的第一与第二部分写到相应的存储器设备,并且可以将用于该数据的地址位置指示存储在地址表中,并与连续的逻辑地址关联,以促进用于后续的读请求的获取(单元450)。
图5图示通过混合存储器控制器响应于读请求而获取数据的实施例的流程图500。该方法开始于接收对于数据的读请求(单元510)。该读请求可以包括指示要从存储器读取的数据的逻辑地址。然后该混合存储器控制器可以翻译该逻辑地址(单元515),以确定在SRAM设备内的对于数据的第一部分的物理地址以及在DRAM设备内的对于数据的第二部分的物理地址。
响应于确定用于数据的第一部分的地址,混合存储器控制器可以从SRAM设备获取该数据的第一部分来准备对读请求的响应(单元520),并传输该响应到与该读请求关联的请求器(单元525)。
响应于确定在DRAM设备内的用于数据的第二部分的地址,混合存储器控制器可以获取该数据的第二部分(单元530),并响应于读请求传输数据的第二部分(单元535)。在很多实施例中,可以确定存储在SRAM设备中的数据量近似为为了充分掩盖从DRAM设备突发数据的第二部分所涉及的初始延迟的所必需的量。
本发明的另一实施例被实现为用于实现诸如参考图1-5所描述的系统与方法的数据收集逻辑的程序制品。本发明能够采取完全硬件实施例、完全软件实施例、或包含硬件与软件元件两者的实施例的形式。在一个实施例中,本发明以软件实施,其包括但不限于固件、常驻软件、微码等。
此外,本发明能够采取可从计算机可用或计算机可读介质获得的计算机程序制品的形式,该介质提供用于由计算机或任何指令执行系统使用或与之结合的程序代码。出于该描述的目的,计算机可用或计算机可读介质可以是能够包含、存储、通信、传播或传送用于由指令执行系统、装置或设备使用或与之有关的程序的任何装置。
该介质可以是电子的、磁的、光的、电磁的、红外的或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁碟、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘以及光盘。目前的光盘示例包括紧致盘-只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)以及DVD。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个直接或通过系统总线间接耦合到存储器元件的处理器。该存储器元件可以包括在程序代码的实际执行期间所使用的本地存储器、大容量存储器以及高速缓冲存储器,该高速缓冲存储器提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储器获取代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等)能够直接或通过插入I/O控制器耦合到系统。网络适配器也可以耦合到系统,使数据处理系统能够通过插入私有或公共网络而耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器以及以太网适配器卡只是目前可用种类的网络适配器的一些。
如上描述的逻辑可以用于集成电路芯片的设计部分。在图形计算机编程语言中创建芯片设计,并存储在计算机存储介质(诸如盘、带子、物理硬驱动或诸如存储存取网络中的虚拟硬驱动)中。如果设计者不制造芯片或用于制造芯片的照相平版印刷的掩模,设计者将得到的设计直接或间接通过物理装置(例如通过提供存储设计的存储介质的拷贝)或电子地(例如通过网络)传输到这些机构。然后将所存储的设计转换成为用于照相平版印刷的掩模的装配的适当格式(例如GDS II),其典型包括所谈论的将在晶片上形成的芯片设计的多个拷贝。利用照相平版印刷的掩模来限定将被蚀刻或不同处理的晶片的区域(和/或其上的层)。
制造者能够以未加工的晶片形式(即,作为具有多个开包芯片的单个晶片)作为裸硅片或以信息包的形式分布所得到的集成电路芯片。在后者情况下,芯片被按照在单个的芯片包(诸如带有附于主板的导线的塑料载体或其他较高级别的载体)中或多芯片包(诸如具有表面互连或埋存(buried)互连之一或两者的陶瓷载体)中。在任一情况下,该芯片然后与其他芯片、离散电路元件和/或其他信号处理设备集合作为或(a)诸如主板的中间制品或(b)终端制品的部分。该终端制品可以是从玩具及其他低档应用到具有显示器、键盘或其他输入设备以及中央处理器的先进的计算机制品范围内包括集成电路芯片的任意制品。
显然对于受益于本公开的相关领域的技术人员来说,本公开专注于用于混合存储器存储的方法与设备。可以理解,仅作为示例采取在详细描述与图中所示出与描述的实施例的形式。意要广泛诠释以下的权利要求,以包括所公开的示范实施例的所有变更。
尽管对于一些实施例已经详细描述了本公开及其一些优势,应该理解,于此可以不脱离如由附加权利要求所限定的本公开的主旨与范围做出各种改变、替换与变化。尽管本发明的特定实施例可以实现多个目的,但不是落入附加权利要求范围内的每个实施例都将实现所有的目的。此外,不是要将本应用的范围限于说明书中所描述的处理、机器、制造、内容组成、装置、方法以及步骤的特殊实施例。如相关领域的普通技术人员将从本发明的公开容易意识到的,根据本发明可以利用目前存在或以后将开发的与在此描述的实施例进行完全相同的功能或实现完全相同的结果的处理、机器、制造、内容组成、装置、方法以及步骤。因此,所附权利要求意要将这些处理、机器、制造、内容组成、装置、方法以及步骤包括在其范围内。
Claims (20)
1.一种在存储器中存储数据的方法,所述方法包括:
由存储器控制器标识与写请求关联的所述数据的第一部分;
由所述存储器控制器在第一存储器设备中存储所述数据的第一部分;以及
由所述存储器控制器在第二存储器设备中存储所述数据的第二部分,所述第一存储器设备具有比所述第二存储器设备的初始存取延迟短的初始存取延迟,其中,所述第一部分与所述第二部分的存储位置具有连续的存储地址。
2.如权利要求1所述的方法,还包括为所述数据的第一部分与第二部分的存储位置分配所述连续的存储地址作为逻辑存储地址。
3.如权利要求1所述的方法,还包括:
接收对于所述数据的读请求;
由所述存储器控制器存取所述第一存储器设备,以获取所述数据的第一部分;
在存取所述第一存储器设备期间由所述存储器控制器存取所述第二存储器设备,以获取所述数据的第二部分;以及
响应于所述读请求,传输所述数据的第一与第二部分。
4.如权利要求1所述的方法,还包括确定所述写请求的数据适合于划分成所述第一与第二部分。
5.如权利要求1所述的方法,其中标识所述第一部分包括标识要存储在所述第一存储设备中的数据量以充分掩盖从所述第二存储器设备响应以所述数据的第二部分的初始延迟。
6.如权利要求1所述的方法,其中,存储所述数据的第一部分包括在第一芯片中存储所述第一部分,其中,存储所述第二部分包括在第二芯片中存储所述第二部分。
7.如权利要求1所述的方法,其中,存储所述数据的第一部分包括传输所述第一部分到第一队列以存储在静态随机存取存储器中,以及存储所述数据的第二部分包括传输所述第二部分到第二队列以存储在动态随机存取存储器中。
8.一种存储数据的装置,该装置包括:
第一种存储器设备;
第二种存储器设备;以及
存储器控制器,其与所述第一种存储器设备及第二种存储器设备耦合,所述存储器控制器响应于写请求来将与所述写请求关联的数据写到所述第一种存储器设备与第二种存储器设备,以及响应于对于所述数据的读请求来在与所述第二种存储器设备中的所述数据的第二部分的存取关联的初始延迟期间从所述第一种存储器设备读取所述数据的第一部分,其中,分配连续的存储地址给所述数据的第一部分与所述数据的第二部分的存储位置。
9.如权利要求8所述的装置,其中,所述第一种存储器设备包括静态随机存取存储器(SRAM)设备,并且所述第二种存储器设备包括动态随机存取存储器(DRAM)设备。
10.如权利要求8所述的装置,其中,所述第一种存储器设备与第二种存储器设备包括硅片上的交叉存取的存储器存储区。
11.如权利要求8所述的装置,其中,存储器控制器包括用于标识要存储在所述第一种存储器设备中的所述数据的第一部分的选择逻辑。
12.如权利要求8所述的装置,其中,所述存储器控制器包括用于确定是否将所述数据的第一部分存储在所述第一种存储器设备中的选择逻辑。
13.如权利要求12所述的装置,其中,所述选择逻辑包括基于与所述数据关联的优先级而确定将所述数据的第一部分存储在所述第一种存储器设备中的逻辑。
14.一种用于混合存储器存储的系统,所述系统包括:
处理器;
静态随机存取存储器(SRAM)设备;
动态随机存取存储器(DRAM)设备;以及
存储器控制器,其经由总线与所述处理器耦合,以将来自所述处理器的写请求的数据存储在所述SRAM与DRAM设备中,其中,所述存储器控制器包括用于将所述数据分割成至少要存储在所述SRAM设备中的第一部分和要存储在所述DRAM设备中的第二部分的逻辑,所述第一部分与第二部分的存储位置具有连续的存储地址。
15.如权利要求14所述的系统,其中,所述SRAM设备与DRAM设备被安装在存储器模块上。
16.如权利要求14所述的系统,其中,所述SRAM设备包括第一存储器模块,并且所述DRAM设备包括不同的存储器模块
17.如权利要求14所述的系统,其中,所述存储器控制器包括用于存取所述SRAM设备的第一存储器控制器以及用于存取所述DRAM设备的第二存储器控制器。
18.一种设备,包括:
带有低初始存取延迟的第一存储器设备;
带有高初始存取延迟的第二存储器设备;以及
与所述第一存储器设备及第二存储器设备互连的地址解码逻辑,所述地址解码逻辑将第一连续物理地址范围与所述第一存储器设备关联,以及将第二连续物理地址范围与所述第二存储器设备关联,其中,所述第一连续物理地址范围与所述第二连续物理地址范围是连续的。
19.如权利要求18所述的设备,其中,所述第一存储器设备包括SRAM的存储区,并且所述第二存储器设备包括一个或更多DRAM存储区。
20.如权利要求18所述的设备,其中,所述第一存储器设备包括第一硅片,并且所述第二存储器设备包括第二硅片。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/555,718 | 2006-11-02 | ||
US11/555,718 US7584335B2 (en) | 2006-11-02 | 2006-11-02 | Methods and arrangements for hybrid data storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101174245A true CN101174245A (zh) | 2008-05-07 |
CN101174245B CN101174245B (zh) | 2010-06-09 |
Family
ID=39422767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101671944A Expired - Fee Related CN101174245B (zh) | 2006-11-02 | 2007-11-02 | 混合数据存储的方法和装置及混合存储设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7584335B2 (zh) |
CN (1) | CN101174245B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937321A (zh) * | 2010-09-15 | 2011-01-05 | 中兴通讯股份有限公司 | 一种实现混合缓存的方法和装置 |
CN101587426B (zh) * | 2008-05-20 | 2011-09-28 | 索尼株式会社 | 信息记录方法和信息记录装置 |
WO2012119449A1 (zh) * | 2011-09-30 | 2012-09-13 | 华为技术有限公司 | 在混合存储环境下配置存储设备的方法和系统 |
CN102999438A (zh) * | 2011-07-26 | 2013-03-27 | 辉达公司 | 用于平衡对具有不同存储器类型的存储器的访问的技术 |
CN102103545B (zh) * | 2009-12-16 | 2013-03-27 | 中兴通讯股份有限公司 | 一种数据缓存的方法、装置及系统 |
CN103718163A (zh) * | 2011-08-03 | 2014-04-09 | 国际商业机器公司 | 数据在存储设备上的碎片中的放置 |
CN103853665A (zh) * | 2012-12-03 | 2014-06-11 | 华为技术有限公司 | 存储空间分配方法及设备 |
CN104052683A (zh) * | 2013-03-14 | 2014-09-17 | 雷凌科技股份有限公司 | 处理分组交换的网络处理器及方法、网络交换系统 |
CN105103138A (zh) * | 2013-04-05 | 2015-11-25 | 大陆汽车系统公司 | 用于实时应用的嵌入式存储器管理方案 |
CN105335308A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 对存储设备的访问信息处理方法和装置、系统 |
CN109416667A (zh) * | 2015-11-12 | 2019-03-01 | 道达尔阶段公司 | 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器 |
CN109426443A (zh) * | 2017-08-31 | 2019-03-05 | 慧荣科技股份有限公司 | 存储器控制装置和方法 |
CN112905499A (zh) * | 2021-02-26 | 2021-06-04 | 四川泽字节网络科技有限责任公司 | 一种碎片化内容相近存储方法 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157940A1 (en) * | 2007-12-15 | 2009-06-18 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques For Storing Data In Multiple Different Data Storage Media |
US8756369B2 (en) * | 2008-09-26 | 2014-06-17 | Netapp, Inc. | Priority command queues for low latency solid state drives |
US9152569B2 (en) * | 2008-11-04 | 2015-10-06 | International Business Machines Corporation | Non-uniform cache architecture (NUCA) |
US9390029B2 (en) * | 2009-11-04 | 2016-07-12 | St-Ericsson Sa | Dynamic management of random access memory |
US8341353B2 (en) * | 2010-01-14 | 2012-12-25 | Qualcomm Incorporated | System and method to access a portion of a level two memory and a level one memory |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
US10114746B2 (en) * | 2010-10-14 | 2018-10-30 | Micron Technology, Inc. | Nonvolatile storage using low latency and high latency memory |
US20120159083A1 (en) * | 2010-12-17 | 2012-06-21 | Deniz Balkan | Systems and Methods for Processing Memory Transactions |
US9477597B2 (en) | 2011-03-25 | 2016-10-25 | Nvidia Corporation | Techniques for different memory depths on different partitions |
US8996461B1 (en) * | 2011-03-28 | 2015-03-31 | Emc Corporation | Method and apparatus for replicating the punch command |
US8701057B2 (en) | 2011-04-11 | 2014-04-15 | Nvidia Corporation | Design, layout, and manufacturing techniques for multivariant integrated circuits |
US20130166865A1 (en) * | 2011-12-22 | 2013-06-27 | Alex Lemberg | Systems and Methods for Managing Parallel Access to Multiple Storage Systems |
US20140101370A1 (en) * | 2012-10-08 | 2014-04-10 | HGST Netherlands B.V. | Apparatus and method for low power low latency high capacity storage class memory |
US10019176B2 (en) | 2012-10-30 | 2018-07-10 | Hewlett Packard Enterprise Development Lp | Smart memory buffers |
US9727338B2 (en) | 2012-11-05 | 2017-08-08 | Nvidia Corporation | System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same |
US20140129788A1 (en) * | 2012-11-07 | 2014-05-08 | Taejin Info Tech Co., Ltd. | High-performance large scale semiconductor storage module with hybrid technology |
KR101752583B1 (ko) | 2013-03-14 | 2017-07-11 | 마이크론 테크놀로지, 인크. | 트레이닝, 데이터 조직, 및/또는 섀도잉을 포함하는 메모리 시스템들 및 방법들 |
US9304913B2 (en) * | 2013-03-15 | 2016-04-05 | Qualcomm Incorporated | Mixed memory type hybrid cache |
GB2519349B (en) * | 2013-10-18 | 2018-06-27 | Stmicroelectronics Grenoble2 Sas | Method and apparatus for supporting the use of interleaved memory regions |
CN105612499B (zh) * | 2013-10-29 | 2018-11-13 | 华中科技大学 | 混合高速缓存管理 |
US9558143B2 (en) | 2014-05-09 | 2017-01-31 | Micron Technology, Inc. | Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device |
US9711194B2 (en) | 2015-01-28 | 2017-07-18 | Xilinx, Inc. | Circuits for and methods of controlling the operation of a hybrid memory system |
KR20170059049A (ko) * | 2015-11-19 | 2017-05-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US9747038B2 (en) * | 2015-12-02 | 2017-08-29 | Qualcomm Incorporated | Systems and methods for a hybrid parallel-serial memory access |
US9830086B2 (en) * | 2016-03-03 | 2017-11-28 | Samsung Electronics Co., Ltd. | Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group |
US10860475B1 (en) * | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10819647B2 (en) * | 2017-12-06 | 2020-10-27 | Marvell Israel (M.I.S.L) Ltd. | Network device having reduced latency |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10770433B1 (en) * | 2019-02-27 | 2020-09-08 | Apple Inc. | High bandwidth die to die interconnect with package area reduction |
KR20220113535A (ko) * | 2019-12-26 | 2022-08-12 | 마이크론 테크놀로지, 인크. | 적층된 메모리 시스템을 위한 호스트 기술 |
US11561731B2 (en) | 2019-12-26 | 2023-01-24 | Micron Technology, Inc. | Truth table extension for stacked memory systems |
CN111984201B (zh) * | 2020-09-01 | 2023-01-31 | 云南财经大学 | 基于持久化内存的天文观测数据高可靠性采集方法和系统 |
US11614892B2 (en) * | 2020-12-17 | 2023-03-28 | Micron Technology, Inc. | Memory system architecture for heterogeneous memory technologies |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2011518C (en) | 1989-04-25 | 1993-04-20 | Ronald N. Fortino | Distributed cache dram chip and control method |
US5652723A (en) * | 1991-04-18 | 1997-07-29 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
US5615328A (en) * | 1995-08-30 | 1997-03-25 | International Business Machines Corporation | PCMCIA SRAM card function using DRAM technology |
US6704838B2 (en) * | 1997-10-08 | 2004-03-09 | Seagate Technology Llc | Hybrid data storage and reconstruction system and method for a data storage device |
AU1798999A (en) * | 1997-12-05 | 1999-06-28 | Intel Corporation | Memory system including a memory module having a memory module controller |
JPH11345326A (ja) | 1998-06-03 | 1999-12-14 | Hitachi Ltd | 画像処理装置 |
JP2000195262A (ja) * | 1998-12-25 | 2000-07-14 | Internatl Business Mach Corp <Ibm> | Sdram及びsdramのデ―タ・アクセス方法 |
JP2000339954A (ja) * | 1999-05-31 | 2000-12-08 | Fujitsu Ltd | 半導体記憶装置 |
US6151236A (en) | 2000-02-29 | 2000-11-21 | Enhanced Memory Systems, Inc. | Enhanced bus turnaround integrated circuit dynamic random access memory device |
US6892279B2 (en) * | 2000-11-30 | 2005-05-10 | Mosaid Technologies Incorporated | Method and apparatus for accelerating retrieval of data from a memory system with cache by reducing latency |
JP4049297B2 (ja) * | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US7484045B2 (en) * | 2004-03-30 | 2009-01-27 | Intel Corporation | Store performance in strongly-ordered microprocessor architecture |
CN100508064C (zh) * | 2005-01-31 | 2009-07-01 | 上海奇码数字信息有限公司 | 存储器存取控制器与存储器存取方法 |
US7613876B2 (en) * | 2006-06-08 | 2009-11-03 | Bitmicro Networks, Inc. | Hybrid multi-tiered caching storage system |
-
2006
- 2006-11-02 US US11/555,718 patent/US7584335B2/en not_active Expired - Fee Related
-
2007
- 2007-11-02 CN CN2007101671944A patent/CN101174245B/zh not_active Expired - Fee Related
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587426B (zh) * | 2008-05-20 | 2011-09-28 | 索尼株式会社 | 信息记录方法和信息记录装置 |
CN102103545B (zh) * | 2009-12-16 | 2013-03-27 | 中兴通讯股份有限公司 | 一种数据缓存的方法、装置及系统 |
CN101937321B (zh) * | 2010-09-15 | 2013-08-21 | 中兴通讯股份有限公司 | 一种实现混合缓存的方法和装置 |
CN101937321A (zh) * | 2010-09-15 | 2011-01-05 | 中兴通讯股份有限公司 | 一种实现混合缓存的方法和装置 |
CN102999438B (zh) * | 2011-07-26 | 2016-03-16 | 辉达公司 | 用于平衡对具有不同存储器类型的存储器的访问的方法 |
CN102999438A (zh) * | 2011-07-26 | 2013-03-27 | 辉达公司 | 用于平衡对具有不同存储器类型的存储器的访问的技术 |
CN103718163A (zh) * | 2011-08-03 | 2014-04-09 | 国际商业机器公司 | 数据在存储设备上的碎片中的放置 |
WO2012119449A1 (zh) * | 2011-09-30 | 2012-09-13 | 华为技术有限公司 | 在混合存储环境下配置存储设备的方法和系统 |
US9171021B2 (en) | 2011-09-30 | 2015-10-27 | Huawei Technologies Co., Ltd. | Method and system for configuring storage device in hybrid storage environment |
CN103853665A (zh) * | 2012-12-03 | 2014-06-11 | 华为技术有限公司 | 存储空间分配方法及设备 |
CN103853665B (zh) * | 2012-12-03 | 2017-06-06 | 华为技术有限公司 | 存储空间分配方法及设备 |
CN104052683A (zh) * | 2013-03-14 | 2014-09-17 | 雷凌科技股份有限公司 | 处理分组交换的网络处理器及方法、网络交换系统 |
CN105103138A (zh) * | 2013-04-05 | 2015-11-25 | 大陆汽车系统公司 | 用于实时应用的嵌入式存储器管理方案 |
CN105103138B (zh) * | 2013-04-05 | 2018-11-16 | 大陆汽车系统公司 | 用于实时应用的嵌入式存储器管理方案 |
US10901883B2 (en) | 2013-04-05 | 2021-01-26 | Continental Automotive Systems, Inc. | Embedded memory management scheme for real-time applications |
CN105335308A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 对存储设备的访问信息处理方法和装置、系统 |
CN105335308B (zh) * | 2014-05-30 | 2018-07-03 | 华为技术有限公司 | 对存储设备的访问信息处理方法和装置、系统 |
CN109416667A (zh) * | 2015-11-12 | 2019-03-01 | 道达尔阶段公司 | 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器 |
CN109426443A (zh) * | 2017-08-31 | 2019-03-05 | 慧荣科技股份有限公司 | 存储器控制装置和方法 |
US10474364B2 (en) | 2017-08-31 | 2019-11-12 | Silicon Motion, Inc. | Memory control device and method |
CN112905499A (zh) * | 2021-02-26 | 2021-06-04 | 四川泽字节网络科技有限责任公司 | 一种碎片化内容相近存储方法 |
CN112905499B (zh) * | 2021-02-26 | 2022-10-04 | 四川泽字节网络科技有限责任公司 | 一种碎片化内容相近存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101174245B (zh) | 2010-06-09 |
US7584335B2 (en) | 2009-09-01 |
US20080126716A1 (en) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101174245B (zh) | 混合数据存储的方法和装置及混合存储设备 | |
US5301279A (en) | Apparatus for conditioning priority arbitration | |
US6636918B1 (en) | Mobile computing device and associated base stations | |
US7474670B2 (en) | Method and system for allocating bandwidth | |
CA2099025C (en) | Personal computer with programmable threshold fifo registers for data transfer | |
US20170017586A1 (en) | Memory buffering system that improves read/write performance and provides low latency for mobile systems | |
CN1866230B (zh) | 一种存储器仲裁器、处理器系统及存储器仲裁方法 | |
US20230205717A1 (en) | System on chip having semaphore function and method for implementing semaphore function | |
US7016994B2 (en) | Retry mechanism for blocking interfaces | |
EP1269330B1 (en) | Bus bridge including a memory controller having an improved memory request arbitration mechanism | |
CN110858188B (zh) | 具有分布式信箱结构的多处理器系统及其沟通方法 | |
KR20210038313A (ko) | 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경 | |
US7469309B1 (en) | Peer-to-peer data transfer method and apparatus with request limits | |
CN101436171B (zh) | 模块化通信控制系统 | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
US20220350655A1 (en) | Controller and memory system having the same | |
US5859649A (en) | Data processing system having display controller with bursting direct memory access | |
JP5551201B2 (ja) | メモリ制御装置 | |
US6735643B2 (en) | Electronic card with dynamic memory allocation management | |
US6430640B1 (en) | Self-arbitrating, self-granting resource access | |
GB2289356A (en) | Serial access memory device | |
US6088761A (en) | Reduced pin system interface | |
US20020116561A1 (en) | System and method for data transmission | |
TW552507B (en) | Bridge device | |
CN103106157B (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 | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100609 Termination date: 20151102 |
|
EXPY | Termination of patent right or utility model |