CN103890688A - 一种flash-dram混合存储器模块 - Google Patents

一种flash-dram混合存储器模块 Download PDF

Info

Publication number
CN103890688A
CN103890688A CN201280047758.XA CN201280047758A CN103890688A CN 103890688 A CN103890688 A CN 103890688A CN 201280047758 A CN201280047758 A CN 201280047758A CN 103890688 A CN103890688 A CN 103890688A
Authority
CN
China
Prior art keywords
memory
data
subsystem
controller
volatile
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
CN201280047758.XA
Other languages
English (en)
Other versions
CN103890688B (zh
Inventor
李贤�
陈季硕
杰弗里·C.·索罗蒙
斯科特·米尔顿
杰西·巴克塔
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.)
Netlist Inc
Original Assignee
Netlist Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=47601785&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN103890688(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Netlist Inc filed Critical Netlist Inc
Priority to CN201710824058.1A priority Critical patent/CN107656700B/zh
Publication of CN103890688A publication Critical patent/CN103890688A/zh
Application granted granted Critical
Publication of CN103890688B publication Critical patent/CN103890688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/183Internal mounting support structures, e.g. for printed circuit boards, internal connecting means
    • G06F1/185Mounting of expansion boards
    • 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
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • 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/4027Coupling between buses using bus bridges
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • 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/0009Digital 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 DRAM cell
    • G11C14/0018Digital 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 DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种能够连接到主系统的存储控制器集线器(MCH)的存储器模块,包括非易失存储子系统,连接至该非易失存储子系统的数据管理器,连接至该数据管理器并通过该数据管理器可用于与非易失存储子系统交换数据的易失存储子系统,以及可用于接收来自MCH的命令的控制器,该控制器基于该命令管理MCH、易失存储子系统或非易失存储子系统中的任意两个或两个以上间的数据传输。

Description

一种 FLASH-DRAM 混合存储器模块
优先权声明
本发明申请要求享有以下申请的优先权:2011年7月28日提交的申请号为61/512,6871的美国临时专利申请;2012年7月26日提交的申请号为13/559,476的美国专利申请,其为要求2007年6月1日提交的申请号为60/941,586的美国临时专利申请的优先权的2008年6月2日提交的申请号为12/131,873的美国专利继续申请的2008年9月29日提交的申请号为12/240,916的美国专利申请的部分继续申请。上述申请的全部内容都以引用的方式并入到本申请中。
本发明申请也可能被认为与2012年6月28日提交的且在此共同拥有的申请号为13/536,173的共同审理中的美国专利申请有关。
技术领域
本发明涉及计算机存储设备,特别地,涉及采用不同类型存储设备,如Flash和随机存取存储器(Random Access Memories, RAM),的设备。
背景技术
随着技术进步,以及便携式计算设备,如平板笔记本电脑,的使用的增加,更多的数据需要在数据中心间传输,并输入/输出给终端用户。在许多情况下,数据中心通过聚集多个联网服务器建立,以提高性能。
虽然有许多类型的对于应用预期类型而言特定的联网服务器,但是基本概念通常是通过动态地分配计算和存储资源来提高服务器性能。今年来,服务器技术已经发展为针对特定应用,如“金融交易”(例如,记点服务计划、银行同业交易、证据市场交易)、“科学计算”(例如,流体动力学汽车和船舶设计、天气预报、石油和天然气勘探)、“医疗诊断”(例如,基于模糊逻辑的诊断、医用数据处理)、“简单的信息共享和搜索”(例如,网页搜索、零售商店网站、公司主页)、“电子邮件”(信息分发和存档)、“安全服务”、“娱乐”(例如,视频点播),等等。然而,由于高速CPU(中央处理单元)不能在相对低速的存储或内存子系统内外有效地传输数据,特别是由于数据通常通过CPU输入/输出(I/O)通道传输,因此所有这些应用都要承受相同的信息传输瓶颈。
图1所示的配置举例说明了由于CPU的数据传输限制,这种限制与主存储器(例如,硬盘(Hard Disk,HD)或固态驱动器(Solid State Drive,SSD))和内存子系统(例如,与前端总线(Front Side Bus FSB)连接的动态随机访问存储器双列直插式内存模块(Dynamic Random Access Memory Dual In-line Memory Module,DRAM DIMM))间的数据传输有关。在图1所示的配置中,传统存储器配置的SSD/HD和DRAM DIMM通过单独的存储器控制端口(未显示)连接至CPU。图1特别地通过双箭头显示了计算机或服务器主存储器(SSD/HD)与DRAM DIMM间的数据流路径。由于SSD/HD数据I/O和DRAM DIMM数据I/O受CPU控制,CPU需要分配其处理周期来控制这些I/O,这可能包括了CPU周期性执行的中断请求(Interrupt Request,IRQ)服务。可以理解的是,CPU分配越多的时间来控制数据传输流量,CPU不得不用越少的时间执行其他任务。因此,服务器的整体性能将随着CPU耗费在执行数据传输上的时间的增加而恶化。
已经有多种不同的方法来增加进出主存储器,如SSD/HS,到局部存储器,如DRAMDIMM的数据传输吞吐率。在如图2所示的一个实施例中,飞索半导体(Spansion)开发的EcoRAM 提供了一种假定了DIMM实体尺寸的基于存储SSD的系统。EcoRAM
Figure 697796DEST_PATH_IMAGE001
由Flash存储器和使用DRAM用作数据缓冲的相对小的存储容量组成。虽然SSD/HD通常通过SATA(serial AT attachment,串行高级技术附件)、USB(Universal Serial Bus,通用串行总线)或PCI-E(Peripheral Component Interface Express,外围组件接口快速)连接,但是EcoRAM
Figure 804817DEST_PATH_IMAGE001
通过高速接口,如HT(Hyper Transport,超传输)接口,连接至CPU(中央处理单元),因此这种配置方式相比基于标准SSD的系统能够提供更高的吞吐率。例如,相比于使用标准PCI-E总线的NAND SSD 存储子系统400MB/s的读速率,EcoRAM
Figure 20772DEST_PATH_IMAGE001
的读随机访问吞吐率接近3GB/s。这是7.5倍的性能提升。然而,写随机访问吞吐率的性能提升小于2倍(EcoRAM为197MB/s,NAND SSD为104MB/s)。这主要是由于写速率不可能比NAND Flash的写访问时间快。图2是使用具有标准DIMM 的SSD 的EcoRAM的一个实施例,其可以连接至FSB(前端总线)。然而,由于DRAM和Flash的接口协议不同,占用了其中一个服务器CPU插槽的接口设备(EcoRAM Accelerator
Figure 168037DEST_PATH_IMAGE001
)被使用,并因此通过减少可用CPU插槽的数量进一步降低服务器性能,并相应地降低整体计算效率。由于读写操作间数据传输吞吐率的巨大不同导致的CPU总线的有限利用,服务器的性能将进一步受到负面影响。
EcoRAM
Figure 990499DEST_PATH_IMAGE001
架构使得CPU将Flash DIMM控制芯片认作具有大量可供CPU访问的存储空间的处理器。
通常,Flash系统的访问速率受到以下四方面限制:Flash存储器的读/写速率;CPU的FSB总线速率和性能;Flash DIMM控制其的固有延长;HT互连速率和取决于CPU和Flash DIMM控制器芯片中的HT接口控制器的性能。
已经公开的文献结果表明由于读操作的最大吞吐率为1.56 GBs,写操作的最大吞吐率为104 MBs,上述缺点是明显的。这些速率为工作在400MHz的DRAM读访问速率的25%,和DRAM写访问速率的1.7%。读操作和写操作间访问速率(15到1)的不同突出了这种结构的主要缺点。由于DRAM技术比Flash存储器技术进步得快得多,这种类型架构和JEDEC标准DRAM DIMM间的访问速率的差别预计将越来越大。
发明内容
本发明的一方面提供一种能够连接到主系统的存储控制器的存储器模块。该存储器模块包括非易失存储子系统,数据管理器,其连接至所述非易失存储子系统;易失存储子系统,其连接至所述数据管理器,并可操作,以通过该数据管理器与所述非易失存储子系统交换数据;控制器,其可操作,以接收来自所述存储控制器的命令,该控制器管理(1)所述非易失存储子系统的运作、(2)所述易失存储子系统的运作以及(3)基于至少一个接收到的来自所述存储控制器的命令在所述存储控制器、所述易失存储子系统或所述非易失存储子系统中的任意两个或两个以上之间的数据传输。
本发明的另一方面提供一种通过存储控制器管理存储器模块的方法,该存储器模块包括易失和非易失存储子系统。该方法包括接收来自存储控制器的控制信息,其中,该控制信息使用易失存储子系统的协议接收。该方法还包括识别用于使用接收到的控制信息将数据传入或传出该存储器模块的数据通路,使用该存储器模块的数据管理器和控制器基于至少一个接收到的控制信息和识别的数据通路在存储控制器、易失存储子系统和非易失存储子系统中的任意两个或两个以上间传输数据。
在本发明的存储器模块中,所述数据管理器用于响应接收到的来自控制器的至少一个控制信号和控制信息来控制数据流速率、数据传输大小、数据缓存大小、数据错误监测以及数据错误纠正中的一个或多个。
在本发明的存储器模块中,所述数据管理器基于接收到的来自所述控制器的指令控制存储控制器、易失存储子系统或非易失存储子系统中的任意两个或两个以上间的数据通信。
在本发明的存储器模块中,所述数据通信控制涉及数据流速率、数据传输大小、数据缓存大小、数据传输位宽、格式信息、数据流方向和数据传输起始时间中的任意一个或多个。
在本发明的存储器模块中,所述控制器响应接收到的来自存储控制器的命令以和所述存储器模块的存储地址空间初始化信息中的至少一个来配置易失存储子系统的第一存储地址空间和非易失存储子系统的第二存储地址空间中的至少一个。
在本发明的存储器模块中,所述数据管理器配置为具有两组或两组以上与易失存储子系统和非易失存储子系统中任意一个连接的数据端口的双向数据传输结构。
在本发明的存储器模块中,所述易失存储子系统和非易失存储子系统中的至少一个包括一个或多个存储段。
在本发明的存储器模块中,每个存储段包括至少一个存储电路、存储设备或存储晶粒。
在本发明的存储器模块中,所述易失存储子系统包括DRAM存储器。
在本发明的存储器模块中,所述非易失存储子系统包括Flash存储器。
在本发明的存储器模块中,至少一组数据端口由所述数据管理器进行操作以独自和/或同时地将数据传入或传出所述易失存储子系统或非易失存储子系统中的一个或多个存储段。
在本发明的存储器模块中,所述数据管理器和控制器响应通过控制器接收到的来自存储控制器的存储器访问命令来实现所述存储控制器和非易失存储子系统间的数据传输。
在本发明的存储器模块中,所述易失存储子系统用作所述存储控制器和非易失存储子系统间的数据传输缓存。
在本发明的存储器模块中,所述数据控制器还包括数据格式模块,用于根据接收到的来自控制器的控制信息将数据按一定格式在存储控制器、易失存储子系统和非易失存储子系统中的任意两个或两个以上间传输。
在本发明的存储器模块中,所述数据管理器还包括数据缓存,用以缓存传入到传出非易失存储子系统的数据。
在本发明的存储器模块中,所述控制器用于执行存储器地址转换、存储器地址映射、地址域转换、存储器存取控制、数据错误纠正和易失存储子系统与非易失存储子系统间的数据位宽调节中的一个或多个。
在本发明的存储器模块中,所述控制器用于依照规定的协议实现与主系统的操作。
在本发明的存储器模块中,所述规定的协议选自DDR、DDR2、DDR3和DDR4协议中的一种或多种。
在本发明的存储器模块中,所述控制器能够基于以下至少一种信息配置存储空间:接收到的来自存储控制器的命令;写入寄存器的可编程的值;对应易失存储子系统开始部分的值;对应非易失存储子系统开始部分的值;以及时间值。
在本发明的存储器模块中,所述控制器至少使用所述易失存储子系统开始部分和所述非易失存储子系统开始部分配置所述存储器模块的存储空间,并且该控制器向所述存储控制器给出统一的存储空间。
在本发明的存储器模块中,所述控制器使用专用的分割指令配置存储器模块中的存储空间。
在本发明的存储器模块中,所述控制器在上电过程中用于从非易失存储子系统向易失存储子系统复制启动信息。
在本发明的存储器模块中,所述控制器包括易失存储器控制模块、非易失存储器控制模块、数据管理器控制模块、命令解析模块和调度模块。
在本发明的存储器模块中,从易失存储器控制模块到易失存储子系统的命令从属于从存储控制器到控制器的命令。
在本发明的存储器模块中,所述控制器实现从非易失存储器到易失存储器的数据的预取。
在本发明的存储器模块中,所述预取通过所述存储控制器向所述控制器的寄存器写入请求数据的地址而发出。
在本发明的存储器模块中,所述控制器用于发起所述易失存储子系统中封闭块到所述非易失存储子系统中目标块的数据复制操作。
在本发明的存储器模块中,如果所述封闭块解封,那么所述控制器用于中止所述复制操作,并且从所述非易失存储子系统擦除所述目标块。
在本发明的存储器模块中,所述数据传输包括非易失存储子系统和易失存储子系统间的数据双向传输。
本发明的管理存储器模块的方法还包括操作所述数据管理器控制数据流速率,、数据传输大小、数据位宽大小、数据缓存大小、数据错误监测、数据错误纠正和数据传输起始时间中的一个或多个。
本发明的管理存储器模块的方法还包括操作所述数据管理器控制存储控制器和易失存储子系统和非易失存储子系统中至少一个间的数据通信。
在本发明的管理存储器模块的方法中,所述数据通信控制数据传输大小、格式信息、数据流方向和数据传输起始时间中的任意一个或多个。
在本发明的管理存储器模块的方法中,由通过所述数据管理器的数据通信控制基于接收到的来自所述控制器的指令。
本发明的管理存储器模块的方法还包括将所述数据管理器用作具有两组或两组以上与易失存储子系统和非易失存储子系统中任意一个连接的数据端口的双向数据传输结构。
在本发明的管理存储器模块的方法中,所述易失存储子系统和非易失存储子系统中的至少一个包括一个或多个存储段。
在本发明的管理存储器模块的方法中,每个存储段均包括至少一个存储电路、存储设备或存储晶粒。
在本发明的管理存储器模块的方法中,所述易失存储子系统包括DRAM存储器。
在本发明的管理存储器模块的方法中,所述非易失存储子系统包括Flash存储器。
本发明的管理存储器模块的方法还包括操作所述数据端口独自和/或同时地将数据传入或传出所述易失存储子系统或非易失存储子系统中的一个或多个存储段。
本发明的管理存储器模块的方法还包括响应通过控制器接收到的来自存储控制器的存储器访问命令,使用数据管理器管理所述易失存储子系统和非易失存储子系统间的数据双向传输。
本发明的管理存储器模块的方法还包括使用所述易失存储子系统缓存所述存储控制器和非易失存储子系统间传输的数据。
本发明的管理存储器模块的方法还包括使用所述控制器执行存储器地址转换、存储器地址映射、地址域转换、存储器存取控制、数据错误纠正和易失存储子系统与非易失存储子系统间的数据位宽调节中的一个或多个。
本发明的管理存储器模块的方法还包括使用所述控制器依照规定的协议通过所述易失存储子系统实现与主系统间的通信。
在本发明的管理存储器模块的方法中,所述规定的协议选自DDR、DDR2、DDR3和DDR4协议中的一种或多种。
本发明的管理存储器模块的方法还包括使用所述控制器基于以下至少一种信息配置所述存储器模块中的存储空间:接收到的来自存储控制器的命令;写入寄存器的可编程的值;对应易失存储子系统开始部分的值;对应非易失存储子系统开始部分的值;以及时间值。
在本发明的管理存储器模块的方法中,所述控制器至少使用所述易失存储子系统开始部分和所述非易失存储子系统开始部分配置所述存储器模块的存储空间,并且该控制器向所述存储控制器给出统一的存储空间。
在本发明的管理存储器模块的方法中,所述控制器使用专用的分割指令配置存储器模块中的存储空间。
本发明的管理存储器模块的方法还包括在上电过程中使用所述控制器从非易失存储子系统向易失存储子系统复制启动信息。
在本发明的管理存储器模块的方法中,所述控制器包括易失存储器控制模块,所述方法还包括响应来自所述存储控制器的命令,通过易失存储器控制模块生产命令,并且将生产的命令传输到易失存储子系统中。
本发明的管理存储器模块的方法还包括预取从非易失存储器到易失存储器的数据。
在本发明的管理存储器模块的方法中,所述预取通过所述存储控制器向所述控制器的寄存器写入请求数据的地址而发出。
本发明的管理存储器模块的方法还包括发起所述易失存储子系统中封闭块到所述非易失存储子系统中目标块的数据复制操作。
本发明的管理存储器模块的方法还包括当所述易失存储子系统的封闭块解封时,中止所述复制操作,并擦除所述非易失存储子系统中的所述目标块。
附图说明
以下并入并构成本说明书的一部分的附图,举例说明了本发明的一个或多个实施例,其结合对优选实施例的具体描述,有助于理解本发明原理及实施本发明。
图1为一个常规存储器配置中经过CPU的数据传输路径框图;
图2为一种已知的EcoRAM™架构框图;
图3A和3B为非易失存储器DIMM或NVDIMM的框图;
图4A和4B为Flash-DRAM混合DIMM或FDHDIMM的框图;
图5A为本发明特定实施例中的存储器模块500的框图;
图5B为展示了图5A所示的存储器模块的部分功能的框图;
图6为展示了数据管理器(DMgr)部分细节的框图;
图7为模组控制器(CDC)的功能框图;
图8A为展示了如图4A和4B所示的现有技术中Flash-DRAM混合DIMM(FDHDIMM)更多细节的框图;
图8B为根据本发明特定实施例的Flash-DRAM混合DIMM(FDHDIMM)的框图;
图9为针对示范的FDHDIMM中数据从Flash存储器传到DRAM存储器以及从DRAM存储器传到Flash存储器的的流程图;
图10为展示了将DRAM地址空间映射到Flash存储空间的框图;
图11为使用各种平均块使用时间的不同DRAM密度在写回Flash存储器的一个队列中对最大允许封闭块的评估表格。
具体实施方式
本文在计算机系统、服务器、控制器、存储器模块、硬盘驱动和软件前提下对实施例进行了描述。本领域的一般技术人员将认识到下面所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本领域技术人员很容易借助本发明的优先想到其他实施例。现在,将做出详细参考以执行附图所示的实施例。附图和以下描述所使用的相同的参考编号涉及相同或相似的物件。
为了本发明的描述更清晰,没有对本文所描述的实现方式的全部常规特征都进行显示和叙述。当然,可以理解的是,在发展任何这样的实际实现中,必须做出许多的特定于实现的决定以实现开发人员的具体目标,如符合应用和业务相关的约束,并且这些具体目标从一种实现方式到另一种实现方式以及从一个开发人员到另一个开发人员将会改变。此外,还可以理解的是,这样的开发工作可能是负责并且费时的,然而,借助于本发明,对于本领域一般技术人员而言这不过是常规工程任务。
根据本发明,本文所述的组件、处理步骤和/或数据结构可以使用各种类型的操作系统、计算平台、计算机程序和/或通用设备实现。此外,本领域一般技术人员将认识到也可以使用具有更少通用用途的设备,如硬连接设备、现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)等等,而不脱离本发明的范围和精神。由计算机或机器实现的包含一系列处理步骤的方法以及这些处理步骤可以存储为一系列机器可读指令,它们可能存储在有形媒介中,如计算机存储设备(例如,ROM(Read Only Memory,只读存储器)、PROM(Programmable Read Only Memory,可编程只读存储器)、EEPROM(Electrically Eraseable Programmable Read Only Memory,电可擦除可编程只读存储器)、Flash存储器、跳转驱动(Jump Drive)等等)、磁存储媒质(例如,磁带、磁盘驱动器等等)、光存储媒质(例如,CD-ROM、DVD-ROM、纸卡和纸带等等),以及其他类型的程序存储器。
本文用到的“示范的”术语用来表示“作为一个例子、实例或说明”。本文描述的任何“示范的”实施例不一定被理解为比其他实施例更优或更好。
本文所公开的配置可以提高存储器访问速率和处理读数据吞吐率和写数据吞吐率间的悬殊差异(15比1的比率)。在一个配置中,使用了具有集成的Flash-DRAM的Flash-DRAM混合DIMM (FDHDIMM)。下面将介绍对这种配置的控制方法。
在一些实施例中,DIMM的实际存储密度(大小或容量)和/或DRAM存储器到Flash存储器的比率都是可配置的以实现特定应用的最优化使用(例如,POS、银行同业交易、证券市场交易、如汽车和船舶设计流体动力学等的科学计算、天气预报、石油和天然气勘探、如基于模糊逻辑的诊断、医用数据处理等的医疗诊断、如例如,网页搜索、零售商店网站、公司主页、电子邮件或信息分发和存档等的简单的信息共享和搜索、安全服务以及如视频点播等的娱乐)。
在一些实施例中,所述设备包括具有低密度DRAM的高密度Flash存储器,其中,该DRAM用作读/写操作的数据缓存。该Flash充当主存储器。这里描述的实施例克服了在启动命令(可以称为RAS)和对应的读或写命令(可以称为开始CAS命令)间对长的间隔期的需要。
根据本发明的一个实施例,参考图3A和3B,存储系统300包括非易失(例如,Flash)存储子系统302和易失(例如DRAM)存储子系统304。图3A和3B的例子针对非易失DIMM (NVDIMM) NVDIMM系统架构,该系统可能把包括电池或电容器的电源子系统(未显示)用作能量存储以便在运行过程中检测到发生或预计发生供电中断时将DRAM存储器上的数据复制到Flash存储器上。当供电恢复正常时,发起恢复NVDIMM操作,存储在Flash存储器中的数据被正确地存储进DRAM存储器。在这种架构中,Flash的密度和DRAM存储容量差不多一样,或者在几倍的范围内,然而,在一些应用中,Flash的密度可能更大。这种架构还可能用于提供连接至FSB(前端总线)非易失存储以支持基于RAID(Redundant Array of Independent Disk,独立磁盘冗余阵列)的系统或其他类型的操作。NVDIMM控制器306接收并解析来自系统存储控制器集线器(Memory Controller Hub,MCH)的命令。该NVDIMM控制器306控制NVDIMM DRAM和Flash存储器的操作。在图3A中,DRAM 304与MCH进行数据通信,而内部总线308用于DRAM存储子系统和Flash存储子系统间的数据传输。在图3B中,NVDIMM 300’的NVDIMM控制器306’监视事件或命令并且使得DRAM 304'和Flash 302'间的第一模式或DRAM和MCH间的第二模式发生数据传输。
根据本发明的一个实施例,Flash-DRAM混合DIMM(FDHDIMM)系统400的一般架构如图4A所示。FDHDIMM与MCH接合以操纵和用作高密度DIMM,其中,与MCH接合的非易失存储子系统(例如,Flash)402由FDHDIMM控制器404控制。虽然MCH通过FDHDIMM控制器与Flash接合,但是FDHDIMM全部性能由Flash访问时间决定。易失存储子系统(例如,DRAM)406主要用作数据缓存或临时存储位置,使得来自Flash存储器402的数据能够以Flash访问速度传输到DRAM 406,并缓存或收集进DRAM 406,而后该易失存储子系统将缓存的数据基于DRAM访问时间传输到MCH。类似地,当MCH传输数据到DRAM 406,FDHDIMM控制器404管理从DRAm406到Flash 402的数据传输。由于Flash存储访问速度(读和写)相对DRAM要慢,(例如,读访问需要几百毫秒),FDHDIMM 400的平均数据吞吐率受限于Flash访问速度。因此,DRAM 406充当需要传入/传出Flash 402的数据的临时存储。此外,根据本发明的一个实施例,MCH将作为高密度DIMM 运作的FDHDIMM的物理密度仅识别为Flash密度。
根据本发明的一个实施例,读操作可以由MCH通过向FDHDIMM 400发送启动命令(可以简单地称为RAS,或行地址选通)以进行从Flash 402到DRAM 406的预取读数据操作来执行,预取数据大小为,例如,一页(1KB或2KB,或可以设计为任意大小)。接着MCH发送读命令(可以简单地称为CAS,或列地址选通)以从DRAM读取数据。在这个实施例中,从Flash到DRAM的数据传输发生在Flash访问速率,而从DRAM到MCH的数据传输发生在DRAM访问速率。在这个实施例中,只要读操作执行在预先发送的以从Flash预取数据到DRAM的启动命令打开的页上,数据延迟和吞吐率与任意DRAM操作相同。因此,考虑到从Flash预取数据到DRAM需要花费的时间,RAS(例如,启动命令)和首个CAS(列地址选通,例如,读或写命令)间需要更长的间隔时间。
图4B展示了运作为具有SSD的DDR DIMM的FDHDIMM的例子,其中,FDHDIMM 400'具有到MCH的两个不同接口解析。在第一个接口解析中,MCH把FDHDIMM 400'看作DRAM DIMM和SSD(未显示)的组合。以这种方式,MCH需要管理两个地址空间,一个用于DRAMs 402',另一个用于Flash 404'。MCH连接并控制DRAM存储子系统和Flash存储子系统。这种方式的一个优点是当数据从DRAM转移到Flash或者从Flash到DRAM,CPU不需要在数据路径中。在第二接口解析中,MCH把FDHDIMM 400'看作在扩展的内存空间中具有SSD的DIMM上Flash,该扩展的内存空间在DRAM空间之后。因此,以这种方式,MCH物理地从SSD获取数据到DDR DRAM,接着DRAM将该数据发送到MCH。由于所有的数据传送都发生在FDHDIMM上,这种方式比起通过或经过CPU传送数据提供更好的性能。
根据本发明的一个实施例,如图4B所示,FDHDIMM 400'接收来自MCH的控制信号,其中,该控制信号可能包括专门针对DRAM 402'操作的一个或多个控制信号和专门针对Flash 404'操作的一个或多个控制信息。在这个实施例中,MCH或CPU通过将MCH连接至DRAM的单数据总线接口410连接到FDHDIMM。
图5A和5B为连接到主系统(未显示)的存储器模块500的框图。该主系统可能为服务器或包含存储系统控制器或向一个或多个存储系统提供并控制读/写访问的MCH的任何其他系统,其中,每个存储系统可能包括多个存储子系统、多个存储设备或至少一个存储器模块。术语“读/写访问”表示MCH与存储系统或子系统接口的性能,以向其写入或从其读取数据,该性能取决于特殊时间的特殊要求。
在一些实施例中,存储器模块500为Flash-DRAM混合存储器系统,该系统可能集成有主系统的其他组件。在一些实施例中,存储器模块500为具有DIMM(双内联存储模块)形状因数的Flash-DRAM混合存储器模块,其可以被称作FDHDIMM,然而,可以理解的是,它与上述FDHDIMM和参照图4A和4B的描述在结构和操作上可能不同。存储器模块500包括两个模块上中间组件:控制器和数据管理器。这些模块上中间组件可能是物理上分离的组件、电路或模块,或者它们可能集成到一个集成电路或设备上,或者与其他存储设备集成,例如,在三维堆栈中,或在本领域技术人员已知用以实现特定设计、应用或经济目标的其他可能的若干集成的实施例中的任意一个中。至于DIMM,这些模块上中间组件为DIMM上控制器(CDC)502和DIMM上数据管理器(DMgr)504。尽管DIMM形状因子将占本文讨论的主导地位,可以理解的是,这只是为了便于说明,存储系统也是可以考虑使用其他形状因子。CDC 502和数据管理器DMgr 504用于管理非易失存储子系统(如Flash 506)和易失存储子系统(如DRAM 508)间的接口,以及由MCH 510所代表的主系统。
在一些实施例中,CDC 502控制从DRAM存储器508到Flash存储器506或从Flash存储器506到DRAM存储器508,以及从MCH 510.到Flash 506或从Flash 506到MCH 510的读/写访问。DRAM 508、Flash 506和MCH 510间的读/写访问在这一般可以称为通信,其中,控制和访问信息C/A 560从MCH 510发送到CDC 502,并且可能的数据传输遵循数据550、数据555和/或数据556所示的路径。在一些实施例中,CDC 502执行特定功能来进行存储地址转换,如地址转换、映射或地址域转换、Flash访问控制、数据错误纠正、Flash存储器和DRAM间数据位宽或数据格式调整或数据调制,等等。在一些实施例中,CDC 502确保存储器模块500依照特定工业标准,如DDR、DDR2、DDR3、DDR4协议,提供对MCH的透明操作。在如图5A和5B所示的配置中,没有从MCH 510到Flash 506存储子系统的直接访问。因此,根据一些实施例,Flash访问速度对整个FDHDIMM访问速度的影响微乎其微。在图5B的示意图中,根据一个实施例,CDC控制器505从MCH接收标准DDR命令,解析并生产命令和/或控制信号来控制数据管理器(DMgr)、Flash存储器和DRAM存储器的操作。DMgr控制DRAM、Flash和MCH之间的数据路径的选路,正如下面所提到的。数据路径选路控制信号独立运作没有任何排外性。
参照图6,将对DMgr 504的示范作用进行描述。在一些实施例中,响应来自CDC 502的通信,DMgr 504提供了各种功能来控制数据流速率、数据传输大小、数据缓存大小、数据错误监测或数据错误纠正。例如,这些功能或操作可以即时执行(当数据通过DMgr 504传输)或在DRAM或缓存中缓存或存储的数据上执行。此外,DMgr 504的一个作用是在各种存储子系统或组件和/或MCH 510中提供互操作性。
在一个实施例中,示范的主系统运作开始于初始化。CDC 502从MCH 510接收第一个命令,使用特定存储空间对FDHDIMM 500进行初始化。由MCH 510控制的该存储空间,在初始化期间或初始化完成后可以被配置或编程。MCH 510可以通过针对主系统需要运行或执行的特定应用优化的各种方式对该存储空间进行分割或解析。在一个实施例中,CDC 502使用MCH 510通过第一个命令发送的信息映射实际物理Flash 506和DRAM 508存储空间。在一个实施例中,CDC 502使用接收到的来自主系统的、存储在FDHDIMM 500寄存器中的或存储在非易失存储子系统的存储单元中的存储地址映射信息映射Flash 506和DRAM 508存储子系统中的任意一个的存储地址空间,例如,Flash 506的一部分或单独的非易失存储子系统。在一个实施例中,该存储地址空间信息对应FDHDIMM 500初始化信息的一部分。
在一个实施例中,MCH 510可能发送从Flash 506恢复一定量的数据信息到DRAM 508的命令。CDC 502提供控制信息到DMgr 504,从而适当地从Flash 506复制必要信息到DRAM 508。这种操作可以对各种主系统启动操作和/或特定主系统上电操作提供支持。
在一个实施例中,MCH 510发送可能包含各种字段的命令,该字段包括关于数据传输大小、数据格式选项和/或启动时间的控制信息。CDC 502接收并解析该命令,并向DMgr 504提供控制信息,从而控制Flash 506、DRAM 508和MCH 510间的数据通信。例如,DMgr 504从CDC 502接收数据传输大小、格式信息、数据流方向(通过一个或多个多路选择器,如下面所述的611、612、621、622),以及实际数据传输的启示时间。DMgr 504还可能从CDC 502接收附加的控制信息,从而建立数据流路径和/或正确地建立数据传输结构。在一些实施例中,DMgr 504还用作双向数据传输结构。例如,DMgr 504可能具有两组以上面向Flash 506和DRAM 508的数据端口。多路选择器611和612提供从DRAM 508(1)和508(2) (DRAM-A 和 DRAM-B)中任意一个到MCH 510和Flash 506中任意一个的可控制的数据路径。类似的,多路选择器621和622提供从MCH 510和Flash 506中任意一个到DRAM 508(1)和508(2) (DRAM-A 和 DRAM-B)中任意一个的可控制的数据路径。在一个实施例中,DRAM 508(1)是DRAM 508的一段,而在其他实施例中,DRAM 508(1)是单独的DRAM存储子系统。可以理解的是,每个存储段能够包含一个或多个存储电路、存储设备和/或存储集成电路。当然,DRAM 508的其他配置也是可以的,并且也可以考虑使用复杂数据路径的其他数据传输结构和合适类型的多路选择逻辑。
根据本发明的一个实施例,两组多路选择器611、612和621、622允许从DRAM-A 508(1)和DRAM-B 508(2)到Flash 506的独立数据传输。例如,响应来自CDC 502的一个或多个控制信号或命令,DMgr 504可以通过多路选择器611从DRAM-A 508(1)向MCH 510传输数据,同时,通过多路选择器612从DRAM-B 508(2)向Flash 506传输数据;或者数据通过多路选择器611从DRAM-B 508(2)传输到MCH 510,同时,数据通过多路选择器621从Flash 506传输到DRAM-A 508(1)。此外,通过相同的方式,数据可以以全局或分段方式传入或传出DRAM存储器,数据可以以全局或分段方式传入或传出Flash存储器,因而可以访问并存取Flash存储器。
根据本发明的一个实施例,DMgr 504数据传输结构举例说明的配置还允许CDC 502通过使用缓存602缓存来自Flash506的数据,以及匹配MCH 510的数据速率和/或数据格式,从而控制从Flash存储器到MCH的数据传输。如图6所示,缓存602是数据格式模块604的一部分。然而,缓存602也可能是分散式的缓存,这样多路选择器逻辑元件组,显示为多路选择器611、612、621和622,中的每一个均使用一个缓存。可以使用各种缓存配置,诸如大小可编程的缓存,以满足给定系统设计要求,例如,读/写访问时间之间的差异;或整体系统性能,例如,延迟。在一些实施例中,缓存604可以对MCH 510、DRAM508和Flash506间的数据通信路径引入一个或多个时钟周期的时滞。
在一些实施例中,数据格式模块604包括数据格式化子系统(为显示),使得DMgr依照接收到的来自CDC502的控制信息将数据以一定格式传输。上面讨论的数据格式模块602的数据缓存604还支持连接至Flash存储器506工作在第一频率的宽数据总线606,而使用位宽较小且工作在第二频率的数据总线608从DRAM508接收数据,在一些实施例中,该第二频率大于该第一频率。缓存602设计用以匹配DRAM 508和Flash 506间的数据流速率。
寄存器690提供寄存通过C/A 560(图5A)接收来自MCH 510的命令的能力。寄存器690可能将这些命令传达至CDC 502和/或DRAM 508和/或Flash 506。寄存器690将这些寄存的命令传达至CDC 502进行处理。寄存器690还可能包括多个寄存器(未显示),这样其可以提供存储多个命令、一系列命令的能力,或为接收到的来自MCG510的特定命令的缓存和提供受控的执行而提供流水延时。
在一些实施例中,寄存器690可能寄存来自MCH 510的命令,并将寄存的命令传送至DRAM 508和/或Flash 506存储子系统。在一些实施例中,CDC 502通过控制和地址总线C/A 560监控接收到的来自MCH510的命令,并向DMgr 504、DRAM 508或Flash 506提供合适的控制信息以实行这些命令并通过MCH数据总线610在MCH 510和FDHDIMM 500间执行数据传输操作。
图7为CDC 502的功能框图。在一些实施例中,CDC 502主要的功能模块为DRAM控制模块DRAMCtrl 702、Flash控制模块FlashCtrl 704、MCH命令解析模块Cmdlnt 706、DRAM-Flash接口调度模块Scheduler 708和DMgr控制模块DMgrCtrl 710。
根据本发明的一个实施例,DRAMCtrl 702生产独立于MCH 510发出的命令的DRAM命令。根据发明的一个实施例,当MCH 510向当前正在执行来自DRAMCtrl 702命令的相同的DRAM 508发起读/写操作时,CDC 502可能选择指示DRAMCtrl 702中止其操作,从而执行由MCH发起的操作。然而,CDC 502还可能流水化处理该操作,这样其导致在执行MCH的操作前DRAMCtrl 702既可以停止也可以完成它当前的操作。一旦来自MCH 510的命令完成了,CDC 502还可以指示DRAMCtrl 702继续它的操作。
根据本发明的一个实施例,FlashCtrl 704为适当地读/写操作生产合适的Flash命令。Cmdlnt 706截获接收到的来自MCH 510的命令,生成合适的控制信息和控制信号,并将它们传送至合适的FDHDIMM功能模块。例如,当MCH发出与当前正在执行的或等待执行的DRAMCtrl 702发起的独立于MCH 510的命令冲突(抵触)的命令,Cmdlnt 706向DRAMCtrl 702发出中断信号,从而使得上述来自DRAMCtrl的命令从属与来自MCH的命令。调度器708对Flash-DRAM接口操作进行调度,使得DMgr 504中不存在资源冲突。根据本发明的一个实施例,调度器708基于当前状态和接收到的或可接收到的来自MCH的挂起的命令为DRAMCtrl 702和FlashCtrl 704操作分配时隙。DMgrCtrl 710为正确操作及控制数据传输结构生成并发送合适的控制信息和控制信号,以使能或不使能Flash 506、DRAM 508和MCH 510间的数据路径。
FIG. 8A为Flash-DRAM混合DIMM (FDHDIMM)801的框图。如图8A所示,Flash-DRAM混合DIMM要求两个分离且独立的地址总线来分别控制地址空间:一个用于Flash存储器Flash 803,另一个用于DRAM存储器DRAM 805。MCH 810把DRAM 805和Flash 803看作单独的存储子系统,例如,DRAM存储子系统和SSD/HD存储子系统。在每个地址空间中的存储器均由MCH直接控制。然而,Flash 803和DRAM 805间的DIMM上数据路径807允许Flash 803和DRAM 805间发生直接数据传输以响应来自Ctrl 830的控制信息。在这个实施例中,数据传输机制为执行来自MCH的命令提供直接支持,无需MCH直接控制数据传输,这提高了从Flash 803到DRAM 805的数据传输性能。然而,MCH需要同时管理两个地址空间和两个不同的存储器协议。此外,MCH需要将DRAM存储空间映射到Flash存储空间,并且由于Flash存储器和DRAM存储器的数据访问时间不同,因此数据接口时间将会受到负面影响。
根据本发明的一个实施例,Flash-DRAM混合DIMM的存储空间映射如图8B所示。主系统的存储控制器(未显示)使用单一地址空间控制DRAM 508地址空间和Flash 506地址空间。CDC 502从MCH接收存储器访问命令,并为合适的映射和Flash和DRAM存储子系统间的数据传输生成控制信息,以正确实施存储器访问命令。在一个实施例中,主系统的存储控制器视大的Flash存储空间为DRAM存储空间,并且使用访问DRAM的标准DDR(double data rate,双数据速率)协议访问该统一了的存储空间。在这种情况下,该统一了的存储空间可以显示Flash 506和DRAM 508间重叠的存储地址空间。该重叠的存储地址空间可能用作Flash 506和DRAM 508间的数据传输的暂存或缓存。例如,DRAM存储空间可能保存有复制自选择的Flash存储空间的数据,因此MCH能够通过DDR存储器访问命令访问该数据。CDC 502响应接收到的来自主系统存储控制器的命令来控制Flash 506和DRAM 508存储子系统。
在一个实施例中,统一了的存储空间对应连续的地址空间,该连续的地址空间包括Flash 506地址空间的第一部分和DRAM 508地址空间的第一部分。Flash 506地址空间的第一部分可以通过保存有对应需要使用的Flash存储大小的第一值的第一可编程寄存器确定。类似的,DRAM 508地址空间的第一部分可以通过保存有对应需要使用的DRAM存储大小的第二值的第二可编程寄存器确定。在一个实施例中,Flash 506地址空间的第一部分和DRAM 508地址空间的第一部分中的任意一个均可以通过对应性能要求或存储器大小的第一值确定,该第一值通过主系统的存储控制器发送的命令由CDC 502接收。
根据本发明的一个实施例,图9为针对示范的FDHDIMM中数据从Flash存储器传到DRAM存储器以及从DRAM存储器传到Flash存储器的流程图。在一些实施例中,从Flash 506到DRAM 508的数据传输按照CDC 502接收的来自主系统存储控制器的存储器访问命令进行。在一些实施例中,CDC 502控制从DRAM 508到Flash 506的数据传输,以避免与当前正执行的任何存储操作冲突。例如,当特定DRAM存储块中的全部页都关闭。CDC 502为了对所需应用的支持最优化,将DRAM存储空间划分为若干块。控制器基于接收到的来自MCH的一个或多个命令、接收到的来自MCH的指令、写入寄存器的可编程值、对应易失存储子系统第一部分的值、对应非易失存储子系统第一部分的值和时序值中的至少一个对存储器模块中的存储空间进行配置。此外,块大小可以由主系统的存储控制器配置,这样,可以优化块中的页数以支持特定的应用或任务。进一步地,块大小可以即时配置,例如,CDC 502可以通过存储器命令或可编程值从存储控制器接收关于需要的块大小的指令。
在一些实施例中,存储控制器使用标准访问协议(如JEDEC的DDR DRAM)通过向CDC 502发送存储器访问命令访问存储器模块,其中,CDC 502依次确定数据传输操作的类型以及对应的存储数据信息的目标地址,例如,数据信息存储在DRAM 508或Flash 506存储子系统中。响应读操作时,如果CDC 502确定数据信息,如页(或块),不属于DRAM 508而属于Flash 506,那么CDC 502将发起并控制从Flash 506到DRAM 508的全部必要的数据传输操作,随后再将数据传输到存储控制器。在一个实施例中,一旦CDC 502完成请求的数据信息从Flash 506到DRAM 508的数据传输,CDC 502将通知存储控制器从DRAM 508取回数据信息。在一个实施例中,存储控制器通过向CDC 502中的寄存器写入目标Flash地址和有效的块大小,发起从Flash 506到DRAM 508的数据信息复制。CDC 502依次执行合适的操作并生成控制信息以将数据信息复制到DRAM 508。因此,存储控制器可以使用标准存储器访问命令或协议访问或取回数据信息。
图9为一个示范的流程图,先是起始步骤或上电902,接着为初始化步骤904,存储控制器初始化,在步骤906中,通过向CDC 502的控制寄存器写入目标地址和大小,数据从Flash 506移至DRAM 508,在步骤908中,CDC 502将数据从Flash 506复制至DRAM 508并擦除Flash中的块。从Flash擦除数据信息可能独立于(或同时于)在该流程图中CDC 502执行的其他步骤完成,例如,在擦除Flash块的步骤中,其他步骤可以同时执行。一旦数据信息或数据信息块移到了DRAM 508上,在步骤910,存储控制器可以使用标准存储访问协议或命令操作该数据块。在步骤912,CDC 502检查是否每个DRAM 508块或复制的块都关闭了。如果DRAM 508中每个打开的块都被存储控制器关闭了,在步骤914,CDC 502发起Flash写操作将关闭的块从DRAM 508写到Flash 506。此外,在步骤916,存储控制器重新打开当前正被写进Flash 506的关闭的块,然后CDC 502停止Flash写操作并擦除已经被写入的Flash块,如步骤918所示。否则,CDC 502在步骤920继续并完成向Flash的写操作。
图9中的虚线表示了可以由CDC 502执行的单独的或并行的活动。在任何时候,CDC 502接收到来自存储控制器的DRAM加载命令,在步骤922,该存储控制器向RC寄存器写入Flash目标地址和/或块大小信息,如上所述。接着,CDC 502执行加载DRAM w/RC步骤906,并且发起包含步骤908-922的另一活动分支(线路)。在一个实施例中,CDC 502控制DRAM 508和Flash 506间的数据传输操作,这样,Flash 506对存储控制器是完全隐藏的。CDC 502监控由存储控制器使用标准DRAM协议发送的全部存储器访问命令,并且恰当配置并操作Flash 506和DRAM 508存储子系统来执行被请求的存储器访问操作,并因此达到预期的效果。该存储控制器不直接与Flash存储子系统接口。代替的是,该存储控制器与CDC 502和/或DMgr 504接口,如图5和图6所示。此外,存储控制器可能使用一种或多种协议,如DDR、DDR2、DDR3、DDR4协议等等。
根据本发明的一个实施例,图10展示了将DRAM地址空间映射到Flash存储地址空间的例子。形成24位扩展存储页面地址的两组(1002、1004)AD6到AD17的地址位分配为块地址。例如,假定256K字节的块大小,接着24位块地址空间(使用两组AD6到AD17的1002和1004)将能够访问4TB的Flash存储器存储空间。如果存储器模块具有1GB DRAM存储容量,它可以在DRAM存储器中保存大约4K个数据块,每个块包含265K字节数据。对应4K个块的DRAM地址空间可以分配给不同虚拟物理行(rank)和逻辑行(bank),其中,虚拟物理行和逻辑行的数量是可配置的,并且可以进行操作以满足特定设计或性能需求。例如,如果1G字节存储器模块被配置为两个物理行,每个物理行具有八个逻辑行,接着,每个逻辑行可保存250个块或相当于62 M字节或62K页面,其中每页对应1K字节。还可以使用具有不同页数、块数、物理行数或逻辑行数的其他配置。此外,图10展示了使用上述块寻址示范地将24位DDR DIMM块地址映射到Flash存储器地址上。该24位地址可以按字段分解,比如逻辑单元号LUN(Logical Unit Number)地址1060字段、块(Block)地址1050字段、平面(Plane)地址1040、页(Page)地址1030,以及一组最低有效地址位A0A1 1020。平面地址1040为块地址的子地址,并且它可以用于支持多页IO以便提高Flash存储子系统的操作。在这个例子中,可以理解的是,该24位地址的每个字段可以分配不同个数的位数。
CDC 502通过对准备写回Flash存储器的块进行排序来管理块写回操作。如上所述,如果写操作的排列了的块中的任意一个页被重新打开,那么CDC 502将停止该排列了的块的写操作,并将该块移除队列。一旦块中的所有页都关闭,那么CDC 502重新开始写回操作并为写操作将该块排序。
根据本发明的一个实施例,执行从Flash 506到DRAM 508示范的读操作大约需要400μs,而执行从Flash 506到DRAM 508示范的写操作大约需要22 ms,导致读写比率为55比1。因此,如果主系统的存储控制器花在访问DRAM的块中的数据信息的平均时间为22ms(这为包含一个或多个页的块打开的持续时间),那么从DRAM到Flash的块写回操作不会影响性能,并且读和写访问间的差异因此可能完全对存储控制器隐藏。如果块使用时间为11ms而不是22ms,那么CDC 502控制DRAM 508和Flash 506间的数据传输操作,这样,在队列中不超过9个封闭块可以写回到Flash存储器中,因此标准DDR DRAM操作可以持续大约100ms的平均时间。此外,队列中要写回Flash存储子系统的封闭块的数量随着平均块使用时间以及特定主系统或使用该主系统资源运行的特定应用的性能要求的变化而变化。
因此,要写回Flash的封闭块的最大数可以约为
((每个逻辑行的块数)/(Flash块写时间与Flash块读时间的比率)*((块使用时间)/(Flash块写时间))
为了排列了的写回块持续小于100ms时间周期,使用具有22ms每个块的写访问时间的Flash存储子系统,导致对向Flash 506的写操作最大数量为四的块进行排列。因此,块平均大约88ms(22ms * 4)表示每个逻辑行不应有超过四个的需要写回Flash506的块。
上式还表明了更大的DRAM存储空间可以支持更短的块使用时间。例如,2GB DRAM存储器允许8个封闭块写回Flash。图11为使用各种平均块使用时间的不同DRAM密度在写回Flash存储器的一个队列中对最大允许封闭块的评估表格。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (24)

1.一种可连接到主系统的存储控制器的存储器模块,包括:
非易失存储子系统;
数据管理器,其连接至所述非易失存储子系统;
易失存储子系统,其连接至所述数据管理器,并可操作,以通过该数据管理器与所述非易失存储子系统交换数据;
控制器,其可操作,以接收来自所述存储控制器的命令,该控制器管理(1)所述非易失存储子系统的运作、(2)所述易失存储子系统的运作以及(3)基于至少一个接收到的来自所述存储控制器的命令在所述存储控制器、所述易失存储子系统或所述非易失存储子系统中的任意两个或两个以上之间的数据传输。
2.根据权利要求1所述的存储器模块,其特征在于,所述数据管理器响应接收到的来自控制器的至少一个控制信号和控制信息来控制数据流速率、数据传输大小、数据缓存大小、数据错误监测以及数据错误纠正中的一个或多个。
3.根据权利要求1所述的存储器模块,其特征在于,所述数据管理器基于接收到的来自所述控制器的指令控制所述存储控制器、所述易失存储子系统或所述非易失存储子系统中的任意两个或两个以上间的数据通信。
4.根据权利要求3所述的存储器模块,其特征在于,所述数据通信控制涉及数据流速率、数据传输大小、数据缓存大小、数据传输位宽、格式信息、数据流方向和数据传输起始时间中的任意一个或多个。
5.根据权利要求1所述的存储器模块,其特征在于,所述控制器响应接收到的来自所述存储控制器的命令和所述存储器模块的存储地址空间初始化信息中的至少一个来配置所述易失存储子系统的第一存储地址空间和所述非易失存储子系统的第二存储地址空间中的至少一个。
6.根据权利要求1所述的存储器模块,其特征在于,所述数据管理器配置为具有两组或两组以上与所述易失存储子系统和所述非易失存储子系统中任意一个连接的数据端口的双向数据传输结构。
7.根据权利要求6所述的存储器模块,其特征在于,所述易失存储子系统和非易失存储子系统中的至少一个包括一个或多个存储段。
8.根据权利要求7所述的存储器模块,其特征在于,每个存储段包括至少一个存储电路、存储设备或存储晶粒。
9.根据权利要求1所述的存储器模块,其特征在于,所述易失存储子系统包括DRAM存储器。
10.根据权利要求7所述的存储器模块,其特征在于,至少一组数据端口由所述数据管理器进行操作以独自和/或同时地将数据传入或传出所述易失存储子系统或所述非易失存储子系统中的一个或多个存储段。
11.根据权利要求6所述的存储器模块,其特征在于,所述数据控制器还包括数据格式模块,用于根据接收到的来自所述控制器的控制信息将数据按一定格式在所述存储控制器、所述易失存储子系统和所述非易失存储子系统中的任意两个或两个以上间传输。
12.根据权利要求11所述的存储器模块,其特征在于,所述数据管理器还包括数据缓存,用以缓存传入到传出所述非易失存储子系统的数据。
13.一种通过存储控制器管理存储器模块的方法,该存储器模块包括易失和非易失存储子系统,该方法包括:
接收来自所述存储控制器的控制信息,其中,该控制信息使用易失存储子系统的协议接收;
识别数据通路,该数据通路用于使用接收到的所述控制信息将数据传入或传出所述存储器模块;
使用所述存储器模块的数据管理器和控制器基于至少一个接收到的控制信息和识别的数据通路,在所述存储控制器、所述易失存储子系统和所述非易失存储子系统中的任意两个或两个以上间传输数据。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括操作所述数据管理器控制数据流速率,、数据传输大小、数据位宽大小、数据缓存大小、数据错误监测、数据错误纠正和数据传输起始时间中的一个或多个。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括将所述数据管理器用作具有两组或两组以上与所述易失存储子系统和所述非易失存储子系统中任意一个连接的数据端口的双向数据传输结构。
16.根据权利要求13所述的方法,其特征在于,所述易失存储子系统和非易失存储子系统中的至少一个包括一个或多个存储段。
17.根据权利要求15所述的方法,其特征在于,所述方法还包括操作所述数据端口以独自和/或同时地将数据传入或传出所述易失存储子系统或所述非易失存储子系统中的一个或多个存储段。
18.根据权利要求13所述的方法,其特征在于,所述方法还包括响应通过所述控制器接收到的来自存储控制器的存储器访问命令,使用所述数据管理器管理所述易失存储子系统和所述非易失存储子系统间的数据双向传输。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括使用所述易失存储子系统缓存所述存储控制器和所述非易失存储子系统间传输的数据。
20.根据权利要求13所述的方法,其特征在于,所述方法还包括使用所述控制器执行存储器地址转换、存储器地址映射、地址域转换、存储器存取控制、数据错误纠正和易失存储子系统与非易失存储子系统间的数据位宽调节中的一个或多个。
21.根据权利要求13所述的方法,其特征在于,所述方法还包括使用所述控制器基于以下至少一种信息配置所述存储器模块中的存储空间:接收到的来自存储控制器的命令,写入寄存器的可编程的值,对应易失存储子系统开始部分的值,对应非易失存储子系统开始部分的值,以及时间值。
22.根据权利要求21所述的方法,其特征在于,所述控制器至少使用所述易失存储子系统开始部分和所述非易失存储子系统开始部分配置所述存储器模块的存储空间,并且该控制器向所述存储控制器给出统一的存储空间。
23.根据权利要求21所述的方法,其特征在于,所述控制器使用专用的分割指令配置所述存储器模块中的存储空间。
24.根据权利要求13所述的方法,其特征在于,所述方法还包括:
当所述存储系统处于第一工作模式下,即数据在所述易失存储子系统和所述主系统间通信时,所述易失存储子系统工作在第一时钟频率;
当所述存储系统处于第二工作模式下,即数据在所述易失存储子系统和所述非易失存储子系统间通信时,所述非易失存储子系统工作在第二时钟频率;
当所述存储系统处于所述第二工作模式下,所述易失存储子系统工作在第三时钟频率,该第三时钟频率小于所述第一时钟频率。
CN201280047758.XA 2011-07-28 2012-07-28 一种flash‑dram混合存储器模块 Active CN103890688B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710824058.1A CN107656700B (zh) 2011-07-28 2012-07-28 一种flash-dram混合存储器模块

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161512871P 2011-07-28 2011-07-28
US61/512,871 2011-07-28
US13/559,476 2012-07-26
US13/559,476 US8874831B2 (en) 2007-06-01 2012-07-26 Flash-DRAM hybrid memory module
PCT/US2012/048750 WO2013016723A2 (en) 2011-07-28 2012-07-28 Flash-dram hybrid memory module

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710824058.1A Division CN107656700B (zh) 2011-07-28 2012-07-28 一种flash-dram混合存储器模块

Publications (2)

Publication Number Publication Date
CN103890688A true CN103890688A (zh) 2014-06-25
CN103890688B CN103890688B (zh) 2017-10-13

Family

ID=47601785

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710824058.1A Expired - Fee Related CN107656700B (zh) 2011-07-28 2012-07-28 一种flash-dram混合存储器模块
CN201280047758.XA Active CN103890688B (zh) 2011-07-28 2012-07-28 一种flash‑dram混合存储器模块

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710824058.1A Expired - Fee Related CN107656700B (zh) 2011-07-28 2012-07-28 一种flash-dram混合存储器模块

Country Status (6)

Country Link
US (7) US8874831B2 (zh)
EP (3) EP2737383B1 (zh)
KR (1) KR20140063660A (zh)
CN (2) CN107656700B (zh)
PL (1) PL3293638T3 (zh)
WO (1) WO2013016723A2 (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354156A (zh) * 2015-12-10 2016-02-24 浪潮电子信息产业股份有限公司 一种支持nvdimm的主板设计方法
CN105575433A (zh) * 2015-12-10 2016-05-11 北京兆易创新科技股份有限公司 Nand存储器及其平衡wl电压建立时间的装置
CN105917317A (zh) * 2014-12-18 2016-08-31 联发科技股份有限公司 具有动态阈值的异构交换空间
CN106886495A (zh) * 2015-12-15 2017-06-23 北京兆易创新科技股份有限公司 一种嵌入式系统及其控制方法
CN107077303A (zh) * 2014-12-22 2017-08-18 英特尔公司 分配和配置持久存储器
CN107710175A (zh) * 2015-04-20 2018-02-16 奈特力斯股份有限公司 存储器模块以及操作系统和方法
CN108268391A (zh) * 2016-12-30 2018-07-10 三星电子株式会社 半导体系统及其控制方法
CN108459974A (zh) * 2017-01-25 2018-08-28 三星电子株式会社 集成闪存的高带宽存储器设备
CN108874306A (zh) * 2017-05-11 2018-11-23 三星电子株式会社 用于支持数据缓冲器的内部dq终结的存储器系统
CN108874684A (zh) * 2018-05-31 2018-11-23 北京赫芯斯信息技术有限公司 拆分cache缓存的nvdimm接口数据读写装置
CN109416656A (zh) * 2016-10-31 2019-03-01 拉姆伯斯公司 混合存储器模块
CN109716314A (zh) * 2016-09-23 2019-05-03 Arm有限公司 用于控制数据传输的装置、存储器控制器、存储器模块和方法
CN109753237A (zh) * 2017-11-01 2019-05-14 三星电子株式会社 计算设备和非易失性双列直插式存储器模块
CN111176585A (zh) * 2013-11-07 2020-05-19 奈特力斯股份有限公司 混合内存模块以及操作混合内存模块的系统和方法
CN112771490A (zh) * 2018-09-24 2021-05-07 美光科技公司 通过读取标识(rid)号在存储器中寻址
CN113946290A (zh) * 2021-10-14 2022-01-18 西安紫光国芯半导体有限公司 基于三维异质集成的存储器件以及存储系统
CN116955241A (zh) * 2023-09-21 2023-10-27 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US9720616B2 (en) * 2008-06-18 2017-08-01 Super Talent Technology, Corp. Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2013028849A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US9507534B2 (en) * 2011-12-30 2016-11-29 Intel Corporation Home agent multi-level NVM memory architecture
US20130318268A1 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US9665503B2 (en) 2012-05-22 2017-05-30 Xockets, Inc. Efficient packet handling, redirection, and inspection using offload processors
US20140089573A1 (en) * 2012-09-24 2014-03-27 Palsamy Sakthikumar Method for accessing memory devices prior to bus training
KR20140064546A (ko) * 2012-11-20 2014-05-28 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 컴퓨터 시스템
US10910025B2 (en) * 2012-12-20 2021-02-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Flexible utilization of block storage in a computing system
US9280497B2 (en) * 2012-12-21 2016-03-08 Dell Products Lp Systems and methods for support of non-volatile memory on a DDR memory channel
US9378161B1 (en) 2013-01-17 2016-06-28 Xockets, Inc. Full bandwidth packet handling with server systems including offload processors
KR20160037827A (ko) 2013-01-17 2016-04-06 엑소케츠 인코포레이티드 시스템 메모리로의 연결을 위한 오프로드 프로세서 모듈들
CN103970219B (zh) * 2013-01-30 2018-03-20 鸿富锦精密电子(天津)有限公司 存储设备及支持所述存储设备的主板
CN104798060A (zh) * 2013-01-30 2015-07-22 惠普发展公司,有限责任合伙企业 存储器模块中数据的运行时备份
JP6276296B2 (ja) * 2013-03-14 2018-02-07 マイクロン テクノロジー, インク. トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
KR20160127168A (ko) 2013-03-15 2016-11-02 인텔 코포레이션 메모리 시스템
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9858181B2 (en) * 2013-06-20 2018-01-02 Hitachi, Ltd. Memory module having different types of memory mounted together thereon, and information processing device having memory module mounted therein
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9436563B2 (en) 2013-10-01 2016-09-06 Globalfoundries Inc. Memory system for mirroring data
US20150106547A1 (en) * 2013-10-14 2015-04-16 Micron Technology, Inc. Distributed memory systems and methods
US9152584B2 (en) * 2013-10-29 2015-10-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing bus resiliency in a hybrid memory system
TWI527058B (zh) 2013-11-01 2016-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置與記憶體控制電路單元
US11182284B2 (en) 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
CN104636267B (zh) * 2013-11-11 2018-01-12 群联电子股份有限公司 存储器控制方法、存储器存储装置与存储器控制电路单元
KR102156284B1 (ko) * 2013-11-27 2020-09-15 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈
US9547447B2 (en) * 2014-01-03 2017-01-17 Advanced Micro Devices, Inc. Dedicated interface for coupling flash memory and dynamic random access memory
WO2015127327A1 (en) * 2014-02-23 2015-08-27 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2015155103A1 (de) * 2014-04-08 2015-10-15 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
US20150347151A1 (en) * 2014-05-28 2015-12-03 Diablo Technologies Inc. System and method for booting from a non-volatile memory
US9645829B2 (en) * 2014-06-30 2017-05-09 Intel Corporation Techniques to communicate with a controller for a non-volatile dual in-line memory module
US9753793B2 (en) * 2014-06-30 2017-09-05 Intel Corporation Techniques for handling errors in persistent memory
US9747200B1 (en) * 2014-07-02 2017-08-29 Microsemi Solutions (U.S.), Inc. Memory system with high speed non-volatile memory backup using pre-aged flash memory devices
KR20160046391A (ko) * 2014-10-20 2016-04-29 삼성전자주식회사 하이브리드 딤 스트럭쳐 및 하이브리드 딤 스트럭쳐의 구동 방법
US11775443B2 (en) * 2014-10-23 2023-10-03 Hewlett Packard Enterprise Development Lp Supervisory memory management unit
US9721660B2 (en) 2014-10-24 2017-08-01 Microsoft Technology Licensing, Llc Configurable volatile memory without a dedicated power source for detecting a data save trigger condition
JP2016091523A (ja) * 2014-11-11 2016-05-23 レノボ・シンガポール・プライベート・リミテッド バックアップ・モジュールの容量を拡大する方法、nvdimmシステムおよび情報処理装置
US9715453B2 (en) * 2014-12-11 2017-07-25 Intel Corporation Computing method and apparatus with persistent memory
US10949286B2 (en) 2015-01-12 2021-03-16 Hewlett Packard Enterprise Development Lp Handling memory errors in memory modules that include volatile and non-volatile components
US20160232112A1 (en) * 2015-02-06 2016-08-11 Futurewei Technologies, Inc. Unified Memory Bus and Method to Operate the Unified Memory Bus
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
CN106155926B (zh) * 2015-04-09 2019-11-26 澜起科技股份有限公司 存储器及存储器的数据交互方法
WO2016175855A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Replicating data using dual-port non-volatile dual in-line memory modules
WO2016175857A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Dual-port non-volatile dual in-line memory modules
US20170371776A1 (en) * 2015-04-30 2017-12-28 Hewlett Packard Enterprise Development Lp Migrating data using dual-port non-volatile dual in-line memory modules
US11257527B2 (en) 2015-05-06 2022-02-22 SK Hynix Inc. Memory module with battery and electronic system having the memory module
KR20160131171A (ko) * 2015-05-06 2016-11-16 에스케이하이닉스 주식회사 배터리를 포함하는 메모리 모듈
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9799402B2 (en) 2015-06-08 2017-10-24 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof
US10152413B2 (en) 2015-06-08 2018-12-11 Samsung Electronics Co. Ltd. Nonvolatile memory module and operation method thereof
US10261697B2 (en) 2015-06-08 2019-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
KR102290988B1 (ko) * 2015-06-08 2021-08-19 삼성전자주식회사 불휘발성 메모리 모듈 및 그것의 동작 방법
US9619329B2 (en) 2015-06-22 2017-04-11 International Business Machines Corporation Converting volatile memory module devices to flashless non-volatile memory module devices
US9904490B2 (en) 2015-06-26 2018-02-27 Toshiba Memory Corporation Solid-state mass storage device and method for persisting volatile data to non-volatile media
US9645939B2 (en) 2015-06-26 2017-05-09 Intel Corporation Hardware apparatuses and methods for distributed durable and atomic transactions in non-volatile memory
KR102274038B1 (ko) 2015-08-03 2021-07-09 삼성전자주식회사 백업 기능을 갖는 메모리 모듈
US9720604B2 (en) 2015-08-06 2017-08-01 Sandisk Technologies Llc Block storage protocol to RAM bypass
KR102427262B1 (ko) 2015-09-11 2022-08-01 삼성전자주식회사 랜덤 액세스 메모리 장치들 및 불휘발성 메모리 장치들을 포함하는 저장 장치
KR102430561B1 (ko) 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
CN116560563A (zh) * 2015-10-01 2023-08-08 拉姆伯斯公司 具有高速缓存的存储器模块操作的存储器系统
US10503657B2 (en) 2015-10-07 2019-12-10 Samsung Electronics Co., Ltd. DIMM SSD Addressing performance techniques
US10031674B2 (en) * 2015-10-07 2018-07-24 Samsung Electronics Co., Ltd. DIMM SSD addressing performance techniques
US20170109101A1 (en) * 2015-10-16 2017-04-20 Samsung Electronics Co., Ltd. System and method for initiating storage device tasks based upon information from the memory channel interconnect
US9880778B2 (en) * 2015-11-09 2018-01-30 Google Inc. Memory devices and methods
KR102420152B1 (ko) 2015-11-18 2022-07-13 삼성전자주식회사 메모리 시스템에서의 다중 통신 장치
US10303372B2 (en) 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR102513903B1 (ko) * 2015-12-03 2023-03-28 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR102513913B1 (ko) * 2015-12-03 2023-03-28 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
US10025508B2 (en) 2015-12-02 2018-07-17 International Business Machines Corporation Concurrent upgrade and backup of non-volatile memory
US10019367B2 (en) 2015-12-14 2018-07-10 Samsung Electronics Co., Ltd. Memory module, computing system having the same, and method for testing tag error thereof
KR102491651B1 (ko) 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US10437483B2 (en) 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
US9971511B2 (en) 2016-01-06 2018-05-15 Samsung Electronics Co., Ltd. Hybrid memory module and transaction-based memory interface
US20170206165A1 (en) * 2016-01-14 2017-07-20 Samsung Electronics Co., Ltd. Method for accessing heterogeneous memories and memory module including heterogeneous memories
US9891864B2 (en) * 2016-01-19 2018-02-13 Micron Technology, Inc. Non-volatile memory module architecture to support memory error correction
US20170212835A1 (en) * 2016-01-22 2017-07-27 Samsung Electronics Co., Ltd. Computing system with memory management mechanism and method of operation thereof
KR102523141B1 (ko) 2016-02-15 2023-04-20 삼성전자주식회사 휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 모듈
US10409719B2 (en) 2016-03-17 2019-09-10 Samsung Electronics Co., Ltd. User configurable passive background operation
KR102547056B1 (ko) 2016-03-28 2023-06-22 에스케이하이닉스 주식회사 비휘발성 메모리 모듈의 커맨드 어드레스 스누핑
KR102567279B1 (ko) * 2016-03-28 2023-08-17 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템의 파워 다운 인터럽트
KR102535738B1 (ko) 2016-03-28 2023-05-25 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템, 메모리 모듈, 및 메모리 모듈의 동작 방법
CN105938458B (zh) * 2016-04-13 2019-02-22 上海交通大学 软件定义的异构混合内存管理方法
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10089228B2 (en) * 2016-05-09 2018-10-02 Dell Products L.P. I/O blender countermeasures
KR20170132483A (ko) 2016-05-24 2017-12-04 삼성전자주식회사 메모리 장치의 구동 방법
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10747694B2 (en) * 2016-06-07 2020-08-18 Ncorium Multi-level data cache and storage on a memory bus
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10452539B2 (en) * 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US11977484B2 (en) * 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
KR102649048B1 (ko) 2016-11-02 2024-03-18 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10585624B2 (en) 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
US10002086B1 (en) 2016-12-20 2018-06-19 Sandisk Technologies Llc Multi-channel memory operations based on bit error rates
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US10635613B2 (en) 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
CN108877856B (zh) * 2017-05-10 2021-02-19 慧荣科技股份有限公司 储存装置、记录方法以及预载方法
KR102400102B1 (ko) * 2017-05-11 2022-05-23 삼성전자주식회사 데이터 버퍼의 내부 데이터(dq) 터미네이션을 지원하는 메모리 시스템
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US10585754B2 (en) 2017-08-15 2020-03-10 International Business Machines Corporation Memory security protocol
US10606513B2 (en) 2017-12-06 2020-03-31 Western Digital Technologies, Inc. Volatility management for non-volatile memory device
US10431305B2 (en) * 2017-12-14 2019-10-01 Advanced Micro Devices, Inc. High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)
EP3759582B1 (en) * 2018-03-01 2024-05-01 Micron Technology, Inc. Performing operation on data blocks concurrently and based on performance rate of another operation on data blocks
US11579770B2 (en) 2018-03-15 2023-02-14 Western Digital Technologies, Inc. Volatility management for memory device
US11157319B2 (en) 2018-06-06 2021-10-26 Western Digital Technologies, Inc. Processor with processor memory pairs for improved process switching and methods thereof
US10636455B2 (en) 2018-07-12 2020-04-28 International Business Machines Corporation Enhanced NVDIMM architecture
CN112805692A (zh) * 2018-09-17 2021-05-14 美光科技公司 混合式双列直插式存储器模块中的高速缓存操作
US10732892B2 (en) * 2018-09-24 2020-08-04 Micron Technology, Inc. Data transfer in port switch memory
US10949117B2 (en) * 2018-09-24 2021-03-16 Micron Technology, Inc. Direct data transfer in memory and between devices of a memory module
US10901657B2 (en) 2018-11-29 2021-01-26 International Business Machines Corporation Dynamic write credit buffer management of non-volatile dual inline memory module
US11163475B2 (en) * 2019-06-04 2021-11-02 International Business Machines Corporation Block input/output (I/O) accesses in the presence of a storage class memory
EP3754512B1 (en) 2019-06-20 2023-03-01 Samsung Electronics Co., Ltd. Memory device, method of operating the memory device, memory module, and method of operating the memory module
US11222671B2 (en) 2019-06-20 2022-01-11 Samsung Electronics Co., Ltd. Memory device, method of operating the memory device, memory module, and method of operating the memory module
US11526441B2 (en) 2019-08-19 2022-12-13 Truememory Technology, LLC Hybrid memory systems with cache management
US11055220B2 (en) 2019-08-19 2021-07-06 Truememorytechnology, LLC Hybrid memory systems with cache management
US11513725B2 (en) * 2019-09-16 2022-11-29 Netlist, Inc. Hybrid memory module having a volatile memory subsystem and a module controller sourcing read strobes to accompany read data from the volatile memory subsystem
US11531601B2 (en) 2019-12-30 2022-12-20 Advanced Micro Devices, Inc. Error recovery for non-volatile memory modules
US11137941B2 (en) * 2019-12-30 2021-10-05 Advanced Micro Devices, Inc. Command replay for non-volatile dual inline memory modules
US11379393B2 (en) * 2020-02-28 2022-07-05 Innogrit Technologies Co., Ltd. Multi-frequency memory interface and methods for configurating the same
CN112000276B (zh) * 2020-06-19 2023-04-11 浙江绍兴青逸信息科技有限责任公司 一种内存条
US11355214B2 (en) * 2020-08-10 2022-06-07 Micron Technology, Inc. Debugging memory devices
KR20220091794A (ko) 2020-12-24 2022-07-01 삼성전자주식회사 반도체 장치 및 이를 포함하는 전자 장치
FR3119483B1 (fr) * 2021-01-29 2023-12-29 Commissariat Energie Atomique Dispositif comportant un circuit mémoire non volatil
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management
US11527270B2 (en) 2021-05-06 2022-12-13 Advanced Micro Devices, Inc. Hybrid library latch array
US11715514B2 (en) 2021-05-06 2023-08-01 Advanced Micro Devices, Inc. Latch bit cells
US11586266B1 (en) 2021-07-28 2023-02-21 International Business Machines Corporation Persistent power enabled on-chip data processor
US11494319B1 (en) * 2021-08-17 2022-11-08 Micron Technology, Inc. Apparatuses, systems, and methods for input/output mappings
CN114153402B (zh) * 2022-02-09 2022-05-03 阿里云计算有限公司 存储器及其数据读写方法
FR3138709A1 (fr) * 2022-08-04 2024-02-09 STMicroelectronics (Alps) SAS Dispositif à mémoire FLASH
US20240111421A1 (en) * 2022-09-30 2024-04-04 Advanced Micro Devices, Inc. Connection Modification based on Traffic Pattern
CN116719486B (zh) * 2023-08-10 2023-11-17 杭州智灵瞳人工智能有限公司 一种内置数据自动传输功能的多模存储装置及控制方法
CN117033267B (zh) * 2023-10-07 2024-01-26 深圳大普微电子股份有限公司 混合存储主控制器及混合存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017460A (zh) * 2005-12-28 2007-08-15 硅存储技术公司 统一的存储器和控制器
US20080104344A1 (en) * 2006-10-25 2008-05-01 Norio Shimozono Storage system comprising volatile cache memory and nonvolatile memory
US20100274953A1 (en) * 2009-04-23 2010-10-28 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
CN102110057A (zh) * 2009-12-25 2011-06-29 澜起半导体(上海)有限公司 存储器模组及存储器模组内的数据交换方法
CN102132250A (zh) * 2008-06-26 2011-07-20 格马尔托股份有限公司 管理具有多个控制器的便携式电子设备中的数据的方法

Family Cites Families (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2043099A (en) 1933-10-26 1936-06-02 Gen Electric Electrical protective system
US3562555A (en) 1967-09-01 1971-02-09 Rca Corp Memory protecting circuit
US3916390A (en) 1974-12-31 1975-10-28 Ibm Dynamic memory with non-volatile back-up mode
US4234920A (en) 1978-11-24 1980-11-18 Engineered Systems, Inc. Power failure detection and restart system
US4420821A (en) 1982-02-19 1983-12-13 International Business Machines Corporation Static RAM with non-volatile back-up storage and method of operation thereof
US4449205A (en) 1982-02-19 1984-05-15 International Business Machines Corp. Dynamic RAM with non-volatile back-up storage and method of operation thereof
US4607332A (en) 1983-01-14 1986-08-19 At&T Bell Laboratories Dynamic alteration of firmware programs in Read-Only Memory based systems
US4658204A (en) 1986-02-07 1987-04-14 Prime Computer, Inc. Anticipatory power failure detection apparatus and method
US4884242A (en) 1988-05-26 1989-11-28 Applied Automation, Inc. Backup power system for dynamic memory
US4882709A (en) 1988-08-25 1989-11-21 Integrated Device Technology, Inc. Conditional write RAM
US4965828A (en) 1989-04-05 1990-10-23 Quadri Corporation Non-volatile semiconductor memory with SCRAM hold cycle prior to SCRAM-to-E2 PROM backup transfer
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5490155A (en) 1992-10-02 1996-02-06 Compaq Computer Corp. Error correction system for n bits using error correcting code designed for fewer than n bits
US5430742A (en) 1992-10-14 1995-07-04 Ast Research, Inc. Memory controller with ECC and data streaming control
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH0729386A (ja) 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
US5675725A (en) 1993-07-19 1997-10-07 Cheyenne Advanced Technology Limited Computer backup system operable with open files
KR0130873B1 (ko) 1994-01-11 1998-04-20 호리에 유키지 콤바인의 곡물 탱크
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
US5519663A (en) 1994-09-28 1996-05-21 Sci Systems, Inc. Preservation system for volatile memory with nonvolatile backup memory
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
JPH08278916A (ja) 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US5563839A (en) 1995-03-30 1996-10-08 Simtek Corporation Semiconductor memory device having a sleep mode
US5630096A (en) 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
US5619644A (en) * 1995-09-18 1997-04-08 International Business Machines Corporation Software directed microcode state save for distributed storage controller
US5799200A (en) 1995-09-28 1998-08-25 Emc Corporation Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller
US5914906A (en) 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
US6199142B1 (en) 1996-07-01 2001-03-06 Sun Microsystems, Inc. Processor/memory device with integrated CPU, main memory, and full width cache and associated method
US5813029A (en) 1996-07-09 1998-09-22 Micron Electronics, Inc. Upgradeable cache circuit using high speed multiplexer
US5757712A (en) 1996-07-12 1998-05-26 International Business Machines Corporation Memory modules with voltage regulation and level translation
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5870350A (en) 1997-05-21 1999-02-09 International Business Machines Corporation High performance, high bandwidth memory bus architecture utilizing SDRAMs
US5991885A (en) 1997-06-11 1999-11-23 Clarinet Systems, Inc. Method and apparatus for detecting the presence of a remote device and providing power thereto
KR100238188B1 (ko) 1997-09-12 2000-01-15 윤종용 비디오 콘트롤러에서 메모리클럭 발생방법 및 그 장치
US6145068A (en) 1997-09-16 2000-11-07 Phoenix Technologies Ltd. Data transfer to a non-volatile storage medium
US5953215A (en) 1997-12-01 1999-09-14 Karabatsos; Chris Apparatus and method for improving computer memory speed and capacity
US6721860B2 (en) 1998-01-29 2004-04-13 Micron Technology, Inc. Method for bus capacitance reduction
US6158015A (en) 1998-03-30 2000-12-05 Micron Electronics, Inc. Apparatus for swapping, adding or removing a processor in an operating computer system
US6216247B1 (en) 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
US6658507B1 (en) 1998-08-31 2003-12-02 Wistron Corporation System and method for hot insertion of computer-related add-on cards
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
US6363450B1 (en) 1999-03-17 2002-03-26 Dell Usa, L.P. Memory riser card for a computer system
US6336176B1 (en) 1999-04-08 2002-01-01 Micron Technology, Inc. Memory configuration data protection
US6487623B1 (en) 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
US7827348B2 (en) 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
US6336174B1 (en) 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
DE10052877B4 (de) 1999-10-21 2008-07-03 Samsung Electronics Co., Ltd., Suwon Mikrocontroller
US6571244B1 (en) 1999-10-28 2003-05-27 Microsoft Corporation Run formation in large scale sorting using batched replacement selection
JP2001166993A (ja) 1999-12-13 2001-06-22 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
US8171204B2 (en) 2000-01-06 2012-05-01 Super Talent Electronics, Inc. Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels
US6459647B1 (en) 2000-02-08 2002-10-01 Alliance Semiconductor Split-bank architecture for high performance SDRAMs
JP3871853B2 (ja) * 2000-05-26 2007-01-24 株式会社ルネサステクノロジ 半導体装置及びその動作方法
US6691209B1 (en) * 2000-05-26 2004-02-10 Emc Corporation Topological data categorization and formatting for a mass storage system
JP3871184B2 (ja) * 2000-06-12 2007-01-24 シャープ株式会社 半導体記憶装置
DE10032236C2 (de) 2000-07-03 2002-05-16 Infineon Technologies Ag Schaltungsanordnung zum Umschalten einer Receiverschaltung insbesondere in DRAM-Speichern
US6769081B1 (en) 2000-08-30 2004-07-27 Sun Microsystems, Inc. Reconfigurable built-in self-test engine for testing a reconfigurable memory
US6487102B1 (en) 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
JP3646303B2 (ja) 2000-12-21 2005-05-11 日本電気株式会社 コンピュータシステムとそのメモリ管理方法、及びメモリ管理プログラムを記録した記録媒体
US7107480B1 (en) 2000-12-22 2006-09-12 Simpletech, Inc. System and method for preventing data corruption in solid-state memory devices after a power failure
US6662281B2 (en) 2001-01-31 2003-12-09 Hewlett-Packard Development Company, L.P. Redundant backup device
JP4817510B2 (ja) 2001-02-23 2011-11-16 キヤノン株式会社 メモリコントローラ及びメモリ制御装置
US6816982B2 (en) 2001-03-13 2004-11-09 Gonen Ravid Method of and apparatus for computer hard disk drive protection and recovery
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US7228383B2 (en) 2001-06-01 2007-06-05 Visto Corporation System and method for progressive and hierarchical caching
JP4049297B2 (ja) 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
TWI240864B (en) 2001-06-13 2005-10-01 Hitachi Ltd Memory device
US6614685B2 (en) 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
JP4765222B2 (ja) 2001-08-09 2011-09-07 日本電気株式会社 Dram装置
JP4015835B2 (ja) 2001-10-17 2007-11-28 松下電器産業株式会社 半導体記憶装置
US6771553B2 (en) 2001-10-18 2004-08-03 Micron Technology, Inc. Low power auto-refresh circuit and method for dynamic random access memories
US6799241B2 (en) 2002-01-03 2004-09-28 Intel Corporation Method for dynamically adjusting a memory page closing policy
JP3756818B2 (ja) * 2002-01-09 2006-03-15 株式会社メガチップス メモリ制御回路および制御システム
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
US20030158995A1 (en) 2002-02-15 2003-08-21 Ming-Hsien Lee Method for DRAM control with adjustable page size
US7249282B2 (en) 2002-04-29 2007-07-24 Thomson Licensing Eeprom enable
US6707748B2 (en) 2002-05-07 2004-03-16 Ritek Corporation Back up power embodied non-volatile memory device
US6810513B1 (en) 2002-06-19 2004-10-26 Altera Corporation Method and apparatus of programmable interconnect array with configurable multiplexer
JP4159415B2 (ja) 2002-08-23 2008-10-01 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
JP4499982B2 (ja) * 2002-09-11 2010-07-14 株式会社日立製作所 メモリシステム
US7111142B2 (en) 2002-09-13 2006-09-19 Seagate Technology Llc System for quickly transferring data
US6910635B1 (en) 2002-10-08 2005-06-28 Amkor Technology, Inc. Die down multi-media card and method of making same
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US6944042B2 (en) 2002-12-31 2005-09-13 Texas Instruments Incorporated Multiple bit memory cells and methods for reading non-volatile data
US7089412B2 (en) 2003-01-17 2006-08-08 Wintec Industries, Inc. Adaptive memory module
US20040163027A1 (en) 2003-02-18 2004-08-19 Maclaren John M. Technique for implementing chipkill in a memory system with X8 memory devices
US20040190210A1 (en) 2003-03-26 2004-09-30 Leete Brian A. Memory back up and content preservation
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
JP2004355351A (ja) * 2003-05-29 2004-12-16 Hitachi Ltd サーバ装置
US7170315B2 (en) 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US20050044302A1 (en) 2003-08-06 2005-02-24 Pauley Robert S. Non-standard dual in-line memory modules with more than two ranks of memory per module and multiple serial-presence-detect devices to simulate multiple modules
US7231488B2 (en) 2003-09-15 2007-06-12 Infineon Technologies Ag Self-refresh system and method for dynamic random access memory
KR100574951B1 (ko) 2003-10-31 2006-05-02 삼성전자주식회사 개선된 레지스터 배치 구조를 가지는 메모리 모듈
US9213609B2 (en) 2003-12-16 2015-12-15 Hewlett-Packard Development Company, L.P. Persistent memory device for backup process checkpoint states
US7281114B2 (en) 2003-12-26 2007-10-09 Tdk Corporation Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
KR100528482B1 (ko) 2003-12-31 2005-11-15 삼성전자주식회사 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
JP4428055B2 (ja) 2004-01-06 2010-03-10 ソニー株式会社 データ通信装置及びデータ通信装置のメモリ管理方法
KR100606242B1 (ko) 2004-01-30 2006-07-31 삼성전자주식회사 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치
WO2005076137A1 (en) 2004-02-05 2005-08-18 Research In Motion Limited Memory controller interface
KR101133607B1 (ko) 2004-02-25 2012-04-10 엘지전자 주식회사 드럼세탁기의 댐퍼 핀
US7916574B1 (en) 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
US7532537B2 (en) 2004-03-05 2009-05-12 Netlist, Inc. Memory module with a circuit providing load isolation and memory domain translation
US20050204091A1 (en) * 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
DE602004010239T2 (de) 2004-05-20 2008-09-25 Stmicroelectronics S.R.L., Agrate Brianza Verbesserter Seitenspeicher für eine programmierbare Speichervorrichtung
US7535759B2 (en) 2004-06-04 2009-05-19 Micron Technology, Inc. Memory system with user configurable density/performance option
US20060069896A1 (en) 2004-09-27 2006-03-30 Sigmatel, Inc. System and method for storing data
US20060080515A1 (en) 2004-10-12 2006-04-13 Lefthand Networks, Inc. Non-Volatile Memory Backup for Network Storage System
US7200021B2 (en) 2004-12-10 2007-04-03 Infineon Technologies Ag Stacked DRAM memory chip for a dual inline memory module (DIMM)
KR100666169B1 (ko) 2004-12-17 2007-01-09 삼성전자주식회사 플래쉬 메모리 데이터 저장장치
US7053470B1 (en) 2005-02-19 2006-05-30 Azul Systems, Inc. Multi-chip package having repairable embedded memories on a system chip with an EEPROM chip storing repair information
US7493441B2 (en) 2005-03-15 2009-02-17 Dot Hill Systems Corporation Mass storage controller with apparatus and method for extending battery backup time by selectively providing battery power to volatile memory banks not storing critical data
KR100759427B1 (ko) * 2005-03-17 2007-09-20 삼성전자주식회사 전력 소모가 적은 하드디스크 드라이버 및 이를 구비한 정보처리 시스템, 그리고 그들의 데이터 입출력 방법
JP4724461B2 (ja) 2005-05-17 2011-07-13 Okiセミコンダクタ株式会社 システムlsi
US20060294295A1 (en) 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
US20080126690A1 (en) 2006-02-09 2008-05-29 Rajan Suresh N Memory module with memory stack
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US20070136523A1 (en) * 2005-12-08 2007-06-14 Bonella Randy M Advanced dynamic disk memory module special operations
US7409491B2 (en) 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US20070147115A1 (en) 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
KR20070076849A (ko) * 2006-01-20 2007-07-25 삼성전자주식회사 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
JP4780304B2 (ja) 2006-02-13 2011-09-28 株式会社メガチップス 半導体メモリおよびデータアクセス方法
US7421552B2 (en) 2006-03-17 2008-09-02 Emc Corporation Techniques for managing data within a data storage system utilizing a flash-based memory vault
JP4768504B2 (ja) * 2006-04-28 2011-09-07 株式会社東芝 不揮発性フラッシュメモリを用いる記憶装置
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7464240B2 (en) 2006-05-23 2008-12-09 Data Ram, Inc. Hybrid solid state disk drive with controller
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US8407395B2 (en) 2006-08-22 2013-03-26 Mosaid Technologies Incorporated Scalable memory system
US20080126624A1 (en) * 2006-11-27 2008-05-29 Edoardo Prete Memory buffer and method for buffering data
EP4254413A3 (en) 2006-12-14 2023-12-27 Rambus Inc. Multi-die memory device
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
US20080189479A1 (en) * 2007-02-02 2008-08-07 Sigmatel, Inc. Device, system and method for controlling memory operations
US7752373B2 (en) 2007-02-09 2010-07-06 Sigmatel, Inc. System and method for controlling memory operations
US8427891B2 (en) * 2007-04-17 2013-04-23 Rambus Inc. Hybrid volatile and non-volatile memory device with a shared interface circuit
KR100909965B1 (ko) 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US7952179B2 (en) 2007-06-28 2011-05-31 Sandisk Corporation Semiconductor package having through holes for molding back side of package
US8200885B2 (en) 2007-07-25 2012-06-12 Agiga Tech Inc. Hybrid memory system with backup power source and multiple backup an restore methodology
US7865679B2 (en) 2007-07-25 2011-01-04 AgigA Tech Inc., 12700 Power interrupt recovery in a hybrid memory subsystem
US8001434B1 (en) 2008-04-14 2011-08-16 Netlist, Inc. Memory board with self-testing capability
US20090313416A1 (en) * 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
KR101606880B1 (ko) 2009-06-22 2016-03-28 삼성전자주식회사 데이터 저장 시스템 및 그것의 채널 구동 방법
US8266501B2 (en) 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8898324B2 (en) * 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US8418026B2 (en) 2010-10-27 2013-04-09 Sandisk Technologies Inc. Hybrid error correction coding to address uncorrectable errors
US8806245B2 (en) 2010-11-04 2014-08-12 Apple Inc. Memory read timing margin adjustment for a plurality of memory arrays according to predefined delay tables
US8713379B2 (en) 2011-02-08 2014-04-29 Diablo Technologies Inc. System and method of interfacing co-processors and input/output devices via a main memory system
KR101800445B1 (ko) 2011-05-09 2017-12-21 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US8792273B2 (en) 2011-06-13 2014-07-29 SMART Storage Systems, Inc. Data storage system with power cycle management and method of operation thereof
CN102411548B (zh) 2011-10-27 2014-09-10 忆正存储技术(武汉)有限公司 闪存控制器以及闪存间数据传输方法
US20140059170A1 (en) * 2012-05-02 2014-02-27 Iosif Gasparakis Packet processing of data using multiple media access controllers
US20140032820A1 (en) 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017460A (zh) * 2005-12-28 2007-08-15 硅存储技术公司 统一的存储器和控制器
US20080104344A1 (en) * 2006-10-25 2008-05-01 Norio Shimozono Storage system comprising volatile cache memory and nonvolatile memory
CN102132250A (zh) * 2008-06-26 2011-07-20 格马尔托股份有限公司 管理具有多个控制器的便携式电子设备中的数据的方法
US20100274953A1 (en) * 2009-04-23 2010-10-28 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
CN102110057A (zh) * 2009-12-25 2011-06-29 澜起半导体(上海)有限公司 存储器模组及存储器模组内的数据交换方法

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176585A (zh) * 2013-11-07 2020-05-19 奈特力斯股份有限公司 混合内存模块以及操作混合内存模块的系统和方法
CN111176585B (zh) * 2013-11-07 2024-05-03 奈特力斯股份有限公司 混合内存模块以及操作混合内存模块的系统和方法
CN105917317A (zh) * 2014-12-18 2016-08-31 联发科技股份有限公司 具有动态阈值的异构交换空间
CN107077303B (zh) * 2014-12-22 2022-11-15 英特尔公司 分配和配置持久存储器
CN107077303A (zh) * 2014-12-22 2017-08-18 英特尔公司 分配和配置持久存储器
CN107710175A (zh) * 2015-04-20 2018-02-16 奈特力斯股份有限公司 存储器模块以及操作系统和方法
CN107710175B (zh) * 2015-04-20 2021-12-14 奈特力斯股份有限公司 存储器模块以及操作系统和方法
CN105575433B (zh) * 2015-12-10 2019-11-22 北京兆易创新科技股份有限公司 Nand存储器及其平衡wl电压建立时间的装置
CN105575433A (zh) * 2015-12-10 2016-05-11 北京兆易创新科技股份有限公司 Nand存储器及其平衡wl电压建立时间的装置
CN105354156A (zh) * 2015-12-10 2016-02-24 浪潮电子信息产业股份有限公司 一种支持nvdimm的主板设计方法
CN106886495A (zh) * 2015-12-15 2017-06-23 北京兆易创新科技股份有限公司 一种嵌入式系统及其控制方法
CN106886495B (zh) * 2015-12-15 2019-10-18 北京兆易创新科技股份有限公司 一种嵌入式系统及其控制方法
CN109716314A (zh) * 2016-09-23 2019-05-03 Arm有限公司 用于控制数据传输的装置、存储器控制器、存储器模块和方法
CN109416656A (zh) * 2016-10-31 2019-03-01 拉姆伯斯公司 混合存储器模块
CN109416656B (zh) * 2016-10-31 2023-08-11 拉姆伯斯公司 混合存储器模块
CN108268391A (zh) * 2016-12-30 2018-07-10 三星电子株式会社 半导体系统及其控制方法
CN108268391B (zh) * 2016-12-30 2023-08-08 三星电子株式会社 半导体系统及其控制方法
US11921638B2 (en) 2017-01-25 2024-03-05 Samsung Electronics Co., Ltd. Flash-integrated high bandwidth memory appliance
CN108459974A (zh) * 2017-01-25 2018-08-28 三星电子株式会社 集成闪存的高带宽存储器设备
CN108459974B (zh) * 2017-01-25 2023-07-07 三星电子株式会社 集成闪存的高带宽存储器设备
CN108874306A (zh) * 2017-05-11 2018-11-23 三星电子株式会社 用于支持数据缓冲器的内部dq终结的存储器系统
CN108874306B (zh) * 2017-05-11 2022-08-16 三星电子株式会社 用于支持数据缓冲器的内部dq终结的存储器系统
CN109753237A (zh) * 2017-11-01 2019-05-14 三星电子株式会社 计算设备和非易失性双列直插式存储器模块
CN109753237B (zh) * 2017-11-01 2024-04-05 三星电子株式会社 计算设备和非易失性双列直插式存储器模块
CN108874684B (zh) * 2018-05-31 2021-05-28 北京领芯迅飞科技有限公司 拆分cache缓存的nvdimm接口数据读写装置
CN108874684A (zh) * 2018-05-31 2018-11-23 北京赫芯斯信息技术有限公司 拆分cache缓存的nvdimm接口数据读写装置
CN112771490A (zh) * 2018-09-24 2021-05-07 美光科技公司 通过读取标识(rid)号在存储器中寻址
CN113946290A (zh) * 2021-10-14 2022-01-18 西安紫光国芯半导体有限公司 基于三维异质集成的存储器件以及存储系统
CN113946290B (zh) * 2021-10-14 2023-06-06 西安紫光国芯半导体有限公司 基于三维异质集成的存储器件以及存储系统
CN116955241B (zh) * 2023-09-21 2024-01-05 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片
CN116955241A (zh) * 2023-09-21 2023-10-27 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片

Also Published As

Publication number Publication date
CN107656700A (zh) 2018-02-02
US20160196223A1 (en) 2016-07-07
US9158684B2 (en) 2015-10-13
WO2013016723A2 (en) 2013-01-31
EP2737383A4 (en) 2015-07-08
US11016918B2 (en) 2021-05-25
KR20140063660A (ko) 2014-05-27
US20130086309A1 (en) 2013-04-04
US20210279194A1 (en) 2021-09-09
US11232054B2 (en) 2022-01-25
EP3985518A1 (en) 2022-04-20
US8874831B2 (en) 2014-10-28
US9928186B2 (en) 2018-03-27
EP3293638A1 (en) 2018-03-14
US20210124701A1 (en) 2021-04-29
US20150242313A1 (en) 2015-08-27
CN107656700B (zh) 2020-09-01
EP2737383B1 (en) 2017-09-20
US20190004985A1 (en) 2019-01-03
EP3293638B1 (en) 2021-10-06
US20220222191A1 (en) 2022-07-14
EP2737383A2 (en) 2014-06-04
CN103890688B (zh) 2017-10-13
PL3293638T3 (pl) 2022-03-28
WO2013016723A3 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
CN103890688A (zh) 一种flash-dram混合存储器模块
US20230145212A1 (en) Switch Device for Interfacing Multiple Hosts to a Solid State Drive
US10216419B2 (en) Direct interface between graphics processing unit and data storage unit
US8996781B2 (en) Integrated storage/processing devices, systems and methods for performing big data analytics
CN103150275B (zh) 掉电后重建闪存控制器中使用的元数据的方法及闪存装置
CN102012791B (zh) 基于Flash的数据存储PCIE板卡
US9092426B1 (en) Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing
US20160259568A1 (en) Method and apparatus for storing data
US10824574B2 (en) Multi-port storage device multi-socket memory access system
CN110275840B (zh) 在存储器接口上的分布式过程执行和文件系统
US20230342073A1 (en) Memory expander, heterogeneous computing device using memory expander, and operation method of heterogenous computing
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
US9417819B2 (en) Cache device for hard disk drives and methods of operations
EP4002139A2 (en) Memory expander, host device using memory expander, and operation method of server system including memory expander
WO2017107162A1 (zh) 一种异构混合内存组件、系统及存储方法
US11556279B2 (en) System device, and method for memory interface including reconfigurable channel
US20080133836A1 (en) Apparatus, system, and method for a defined multilevel cache
CN115687193A (zh) 存储模块、包括其的系统以及存储模块的操作方法
Bai et al. An Analysis on Compute Express Link with Rich Protocols and Use Cases for Data Centers
US20130151766A1 (en) Convergence of memory and storage input/output in digital systems
US10846020B2 (en) Drive assisted storage controller system and method
CN118069037A (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
GR01 Patent grant
GR01 Patent grant