CN117032970A - 负载减少的非易失性存储器接口 - Google Patents
负载减少的非易失性存储器接口 Download PDFInfo
- Publication number
- CN117032970A CN117032970A CN202311023111.XA CN202311023111A CN117032970A CN 117032970 A CN117032970 A CN 117032970A CN 202311023111 A CN202311023111 A CN 202311023111A CN 117032970 A CN117032970 A CN 117032970A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- buffer
- data buffer
- nvm
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 357
- 239000000872 buffer Substances 0.000 claims abstract description 389
- 230000005540 biological transmission Effects 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 29
- 238000012549 training Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 24
- 230000003139 buffering effect Effects 0.000 claims description 9
- 230000009977 dual effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 25
- 238000012545 processing Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 12
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 239000007787 solid Substances 0.000 description 10
- 230000008878 coupling Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 9
- 238000005859 coupling reaction Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101000682328 Bacillus subtilis (strain 168) 50S ribosomal protein L18 Proteins 0.000 description 1
- UGFAIRIUMAVXCW-UHFFFAOYSA-N Carbon monoxide Chemical compound [O+]#[C-] UGFAIRIUMAVXCW-UHFFFAOYSA-N 0.000 description 1
- 229910002092 carbon dioxide Inorganic materials 0.000 description 1
- 239000001569 carbon dioxide Substances 0.000 description 1
- 229910002091 carbon monoxide Inorganic materials 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/1673—Details of memory controller using buffers
-
- 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/0877—Cache access modes
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2254—Calibration
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
Abstract
存储电路包括耦合在存储控制器与非易失性存储器设备之间的缓冲器。电路包括一个或多个非易失性存储器(NVM)设备组、用于控制对NVM设备的访问的存储控制器以及缓冲器。缓冲器耦合在存储控制器与NVM设备之间。缓冲器用于在NVM设备与存储控制器之间在总线上重新驱动信号,包括将信号同步到用于信号的时钟信号。电路可以包括数据缓冲器、命令缓冲器或二者。
Description
本申请是2017年6月2日提交的申请号为201780033934.7的同名专利申请的分案申请。
优先权
本申请根据美国专利法§365(c)要求享有于2016年7月1日提交的题为LOADREDUCED NONVOLATILE MEMORY INTERFACE的美国申请第15/201,370号的优先权。本申请要求享有该申请的优先权的利益。
技术领域
概括而言,描述涉及存储设备,并且更具体而言,描述涉及负载减少的非易失性存储器接口。
版权声明/许可
本专利文件的公开内容的部分可以包含受版权保护的材料。版权所有者不反对由任何人复制专利和商标局专利文件或记录中出现的专利文件或专利公开内容,但在其他方面保留所有版权。版权声明应用于如以下描述的所有数据并且应用于附于本文的附图中,并且以用于以下描述的任何软件:版权所有2016,英特尔公司,保留所有权利(Copyright2016,Intel Corporation,All Rights Reserved)。
背景技术
对更多存储空间的需求和提供存储的设备的更高吞吐量的需求将继续大幅增长。与传统的旋转磁盘存储装置相比,固态技术具有许多性能和技术优点,并且固态驱动器(SSD)的使用越来越多。SSD的容量正在接近用传统旋转磁盘技术制造的设备的容量,并且价格正在下降到被认为更负担得起的水平。
然而,容量不是SSD感兴趣的仅有的衡量标准。不幸的是,更高容量的SSD当前未提供低容量驱动器的等同性能。研究表明,中档容量SSD提供最佳吞吐量。SSD存储控制器要求到非易失性存储器(NVM)设备的存储器通道驱动最少数量的存储器设备或管芯以使命令和数据总线保持最大活动,并且使存储器管芯被并行访问。当增加的电容负载需要降低控制器和NVM设备之间的总线上的时钟频率时,增加存储器通道上的存储器管芯的数量最终降低整体吞吐量性能。对于单个存储器通道,系统设计者传统上必须在高带宽和低容量或者低带宽和高容量之间进行选择。
由于通常考虑关于单个通道的权衡,因此通常的解决方案是添加存储器通道,并且将他们全部配置为用于更高带宽和更低容量。然而,添加更多通道增加控制器以及SSD本身的管芯尺寸和封装尺寸。增加的控制器尺寸和封装增加成本。
附图说明
以下描述包括对具有通过本发明实施例的实施方式的示例的方式给出的说明的附图的讨论。附图应当通过示例的方式(而不是通过限制的方式)来理解。如本文使用的,对一个或多个“实施例”的引用应当被理解为描述被包括在本发明的至少一个实施方式中的特定特征、结构和/或特性。因此,本文中出现的诸如“在一个实施例中”或“在替代实施例中”之类的短语描述了本发明的各种实施例和实施方式,并且不一定都指代相同的实施例。然而,他们也不一定是相互排斥的。
图1是计算机系统的实施例的框图,在所述系统中非易失性存储装置包括缓冲器。
图2是具有固态驱动器的系统的实施例的框图,所述固态驱动器包括控制器和非易失性存储器设备之间的缓冲器。
图3是具有数据缓冲器的存储系统的实施例的框图。
图4是具有可训练的主机侧和存储器侧接口的数据缓冲器的实施例的框图。
图5是具有数据缓冲器和命令缓冲器的存储系统的实施例的框图。
图6是具有级联数据缓冲器的存储系统的实施例的框图。
图7A是用于访问多级存储器中的数据的过程的实施例的流程图。
图7B是用于在具有高压缩性标记的系统中处理读取访问请求的过程的实施例的流程图。
图7C是用于在具有高压缩性标记的系统中处理写入访问请求的过程的实施例的流程图。
图8是具有其中可以实现高压缩性标记的多级存储器的计算系统的实施例的框图。
图9是具有其中可以实现高压缩性标记的多级存储器的移动设备的实施例的框图。
以下是对某些细节和实施方式的描述,包括对附图的描述,其可以描绘以下描述的实施例中的一些或全部,以及讨论本文呈现的发明构思的其他潜在的实施例或实施方式。
具体实施方式
如本文描述的,存储电路包括耦合在存储控制器与非易失性存储器(NVM)设备之间的缓冲器。电路包括一个或多个NVM设备组,以及用于控制对NVM设备的访问的存储控制器。缓冲器减少总线上的NVM设备到存储控制器的电负载。缓冲器用于在总线上重新驱动信号,包括将信号同步到用于信号的时钟信号。电路可以包括数据缓冲器、命令缓冲器或二者。减小的负载使得能够增加NVM设备或存储器管芯的密度。如本文描述的,存储电路可以是高带宽以及高容量,而无需添加通道。
即使在更高容量的系统的情况下,减少的负载也实现更高的吞吐量性能。因此,存储系统可以包括具有存储器通道的控制器,所述存储器通道具有并联耦合的更多NVM设备,其中,由于存储器通道上的较低电容负载,所以时钟频率可以保持与较低容量系统相同或相似。通过增加通道的容量,系统可以在更少通道的情况下包括更高容量,这可以保持封装尺寸和系统形状因子。替代地,可以实现更小的形状因子以获得类似的容量。
图1是计算机系统的实施例的框图,在所述系统中非易失性存储装置包括缓冲器。系统100提供了包括非易失性存储器的系统的一个示例,例如膝上型计算机、服务器、嵌入式设备、手持设备或其他计算机系统。处理器110表示执行操作系统(OS)和应用的主机计算平台的处理单元,其可以被统称为“主机”。OS和应用执行引起对存储器或存储装置或二者的访问的操作。处理器110可以包括一个或多个单独的处理器。每个单独的处理器可以包括单个处理单元、多核处理单元或组合。处理单元可以是诸如CPU(中央处理单元)之类的主处理器、外围处理器、GPU(图形处理单元)或其他处理器、或组合。
系统100示出了存储器122,其表示系统100中的易失性存储器。易失性存储器是这样的存储器:如果中断设备的电力,则其状态(以及因此存储在其上的数据)是不确定的。NVM 112是非易失性存储器,其是指这样的存储器:即使中断设备的电力,其状态也是确定的。动态易失性存储器需要刷新存储在设备中的数据以维持状态。动态易失性存储器作为用于存储供处理器110执行的代码和数据的系统主存储器是常见的。NVM 132不需要被刷新。
处理器110经由存储器控制器120访问存储器(或存储器设备)122,所述存储器控制器120表示一个或多个存储器控制器电路或设备,包括响应于由处理器110执行操作而生成存储器访问命令的控制逻辑。在一个实施例中,存储器控制器120与处理器110集成(例如,集成的存储器控制器(iMC))。在一个实施例中,存储器122包括直接安装在计算设备的主板或主机系统平台(例如,处理器110安装在其上的PCB(印刷电路板))上的设备。在一个实施例中,存储器122可以被组织成存储器模块,例如双列直插式存储器模块(DIMM)。
存储器122可以是或包括动态易失性存储器,例如DRAM(动态随机存取存储器),或某个变体,例如同步DRAM(SDRAM)。存储器设备122可以包括各种存储器技术,例如DDR3(双倍数据速率版本3,原始版本由JEDEC(联合电子设备工程委员会)在2007年6月27日发布,当前为版本21)、DDR4(DDR版本4,初始规范由JEDEC于2012年9月发布),DDR4E(DDR版本4扩展,当前在由JEDEC讨论)、LPDDR3(低功耗DDR版本3,JESD209-3B,由JEDEC在2013年8月发布)、LPDDR4(低功耗双倍数据速率(LPDDR)版本4,JESD209-4,最初由JEDEC于2014年8月发布)、WIO2(Wide I/O 2(WideIO2)、JESD229-2,最初由JEDEC在2014年8月发布)、HBM(高带宽存储器,JESD235,最初由JEDEC在2013年10月发布)、DDR5(DDR版本5,当前在由JEDEC讨论)、LPDDR5(当前在由JEDEC讨论)、HBM2(HBM版本2,当前在由JEDEC讨论)或其他存储器技术、或存储器组合技术的组合、以及基于这样的规范的衍生或扩展的技术。
处理器110经由存储控制器130访问NVM(或NVM设备)132,所述存储控制器130表示一个或多个存储控制器电路或设备。存储控制器130包括控制逻辑,其响应于由处理器110执行命令而生成到NVM 132的存储事务。事务是指存储器访问操作,例如读取或写入,其可以包括命令序列和数据交换,并且可以在多个传输循环(时钟或单位间隔(UI))上发生。这样的交易可以是访问数据以放置在存储器122中或者处理器110的高速缓存中或二者。存储控制器130包括调度逻辑和用于生成命令的命令逻辑。存储控制器130可以包括或可以访问缓冲器或临时存储装置,其用于保存用于数据以供读取或写入。
NVM 132可以是或包括非易失性存储器设备,例如块可寻址存储器设备,例如NAND或NOR技术。NVM 132可以包括诸如三维交叉点(3DXP)存储器设备、其他字节可寻址非易失性存储器设备或使用硫属化物相变材料(例如,硫属化物玻璃)的存储器设备之类的设备技术。在一个实施例中,存储器设备可以是或包括多门限级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)或具有开关的相变存储器(PCMS)、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、包括忆阻器技术的磁阻随机存取存储器(MRAM)存储器或自旋转移力矩(STT)-MRAM,或以上各项中的任何一个的组合或其他非易失性存储器技术。
可以说系统100在一个或多个存储器通道上访问易失性存储器或非易失性存储器(其可以被称为“存储器”和“存储装置”以用于在描述中进行区分)或二者。例如,处理器110可以经由一个或多个存储器控制器120经由一个或多个存储器通道访问存储器122。在一个实施例中,处理器110经由一个或多个存储器通道134访问NVM 132。在一个实施例中,系统100可以包括多个存储控制器130。在一个实施例中,存储控制器130包括到NVM 132的多个存储器通道。无论来自存储器控制器120的通道还是来自存储控制器130的通道,每个单独的通道都耦合到并行耦合到多个设备的总线和信号线。每个通道都是独立可操作的。因此,每个通道被独立地访问和控制,并且定时、数据传输、命令和地址交换以及其他操作对于每个通道是单独的。如本文使用的,耦合可以指电耦合、通信耦合、物理耦合或这些的组合。物理耦合可以包括直接接触。电耦合包括允许组件之间的电流动或允许组件之间的信令或二者的接口或互连。通信耦合包括使组件能够交换数据的连接,包括有线或无线连接。
在一个实施例中,存储控制器130表示固态驱动器(SSD)上的ASIC(专用集成电路)或其他控制器。如此,存储控制器130可以经由处理器110中的或者将存储资源互连到处理器110的芯片组中的一个或多个其他控制电路与处理器110接合。存储控制器130可以被称为SSD控制器。在一个实施例中,NVM 132包括可以对易失性存储器设备命令协议(例如,DDR4协议)进行响应的设备。在一个实施例中,控制器130支持存储器命令协议和用于缓冲器140的命令协议,其可以使通道134能够将多个NVM设备132耦合到树形网络(而不是点对点网络)中的缓冲器140。
缓冲器140表示通道134上的缓冲设备,其可以减少存储器通道上的负载。例如,作为点对点网络,当更多NVM设备132耦合到通道时,通道134遭受显著负载。作为缓冲的通道,存储控制器130的I/O(输入/输出)硬件仅看到缓冲器140的加载,并且缓冲器140将通道134上的信号重新驱动到NVM设备132。因此,缓冲器140可以充当存储控制器130和NVM 132之间的减载器和直放站。
如简要提到的,可以认为通道134支持两个命令协议。第一命令协议是用于将命令发送到NVM 132的存储器命令协议。第二命令协议是用于缓冲器140的命令协议,其使得能够对缓冲器的操作进行控制。在一个实施例中,存储控制器130首先发送存储器命令(例如,在命令/地址总线上,所述命令/地址总线可以被称为C/A总线或ADD/CMD总线或其他名称)。在这样的实施例中,存储控制器130在缓冲器命令总线上将命令发送到缓冲器140,并且在将命令发送到NVM 132之后发送这样的命令。在一个实施例中,通道134可以经由调度定时来组织命令协议以确保满足存储器通道协议定时。
例如,考虑其中通道134根据DDR4协议操作以与作为NVM 132的3DXP存储器设备接合的情况。通过控制对3DXP存储器设备和缓冲器140的命令信号的调度,存储控制器130可以确保通道134符合用于与存储控制器130交换数据的DDR4协议定时,以及在存在差异的程度上的3DXP协议定时。这样的协议定时合规性不一定需要改变3DXP设备,并且可以使得符合DDR4的数据缓冲器能够用作缓冲器140(例如,重用LRDIMM(负载减少的双列直插式存储器模块)的数据缓冲器)。作为对命令信号的定时控制的替代,缓冲器140可以被设计为具有可能容适两种协议定时的逻辑。这样的逻辑可以影响系统100的DIMM实施方式中的写入和读取延时,其中,NVM设备132安装在一个或多个DFMM中。
在一个实施例中,通道134支持训练缓冲器140的主机接口(关于耦合到存储控制器130的通道134)和存储器接口(关于NVM 132)。在一个实施例中,对以上讨论的两个命令协议的支持对于实现对两个接口的训练而言可以是必要的。在一个实施例中,通道134可以将固定模式写入缓冲器140的寄存器(例如,多用途寄存器(MPR))中,以使缓冲器140能够将读取数据与用于读取延迟训练的NVM的固定模式进行比较。因此,存储控制器130和缓冲器140可以训练主机接口,并且存储控制器可以将数据写入缓冲器140中,缓冲器可以使用所述数据来训练存储器接口的定时。应当理解,在其中协议是不同的实施方式中,存储器接口或连接缓冲器140和NVM 132的硬件可以实现主机接口,其中,定时由缓冲器命令调整以也符合NVM 132的协议。
在一个实施例中,系统100支持使用级联树结构或其他类型的树来耦合多个缓冲器140和多组NVM设备132。作为一个示例,考虑以下参考图6进行的描述。在一个实施例中,关于不同协议的定时,存储控制器130可以控制命令信号的定时以实现更长的数据传输突发,即使在将应用不同数据突发的存储器设备或协议的情况下也是如此。以下关于图3提供了更多细节。
图2是具有固态驱动器(SSD)的系统的实施例的框图,所述固态驱动器在控制器和非易失性存储器设备之间包括缓冲器。系统200包括耦合到SSD 230的主机210。系统200根据图1的系统100提供了系统的一个示例。主机210表示连接到SSD 230的主机硬件平台。主机210包括CPU(中央处理单元)212或其他处理器。CPU 212表示生成用于访问存储在SSD230上的数据的请求的任何主机处理器,其用于读取数据或将数据写入存储器或二者。主机210包括芯片组214,其表示可以被包括在CPU 212和SSD 230之间的连接中的其他硬件组件。例如,芯片组214可以包括驱动器和其他逻辑或电路,以提供对SSD 230的访问。在一个实施例中,芯片组214包括存储控制器,其是与SSD 230内的控制器240分离的主机侧控制器。
在虚线的一侧上,主机210示出了主机210的硬件平台的选择的组件。在虚线的另一侧上,主机210示出了主机210的逻辑层的一个实施例。在一个实施例中,主机210包括主机OS222,其表示主机操作系统或用于主机的软件平台。CPU 212可以执行主机OS222并提供应用、服务、代理或其他软件在其上执行的软件平台。文件系统224表示用于控制对SSD 230的访问的控制逻辑。文件系统224可以管理什么地址或存储器位置用于存储什么数据。存在许多已知的文件系统,并且文件系统224可以实现已知的文件系统或其他专有系统。在一个实施例中,文件系统224是主机OS222的部分。驱动器226表示控制硬件的系统级模块。在一个实施例中,驱动器226包括用于控制SSD 230的硬件的软件应用。
SSD 230表示固态驱动器,其包括用于存储数据的NVM设备272以及用于将NVM设备272耦合到控制器240的缓冲器260。控制器240控制对NVM设备272的访问。在一个实施例中,控制器240表示根据本文描述的任何实施例的存储控制器。在一个实施例中,存储控制器240是专用集成电路(ASIC)。控制器240包括主机接口242,其用于直接或通过其他硬件组件耦合到CPU 212。控制器240包括NVM接口246,其用于接合到NVM设备272。主机接口242和NVM接口246可以表示用于与信号线接合以互连设备的硬件组件,以及用于控制接口的软件或固件组件。在一个实施例中,可以经由状态机或其他逻辑控制接口。这样的逻辑可以用硬件、软件或组合来实现。
固件244控制硬件接口以实现通信。在一个实施例中,固件244包括可以被认为是主机接口242或NVM接口246或二者的逻辑的至少一部分。在一个实施例中,固件244向NVM设备272提供一系列命令序列,并且可以控制命令序列的定时。SSD 230包括缓冲器260,所述缓冲器260表示根据本文描述的任何实施例的缓冲器,其减少SSD 230中的、NVM设备272在存储器通道上的加载。在一个实施例中,固件244控制到缓冲器260的命令定时,以控制去往NVM设备272以进行写入事务的数据传输,或者来自NVM设备272以用于读取事务的数据传输。
控制器240包括调度器252,其用于调度诸如命令的生成和发送或用于数据访问事务的数据传输之类的操作。在一个实施例中,调度器252包括一个或多个队列以用于缓冲操作序列。在一个实施例中,控制器240包括错误控制逻辑254,其用于处理所访问的数据中的数据错误以及就符合信令和通信接合而言的角落情况。
SSD 230包括一个或多个缓冲器260。在一个实施例中,缓冲器260表示数据缓冲器,其缓冲并重新驱动数据信号以进行读取或写入事务。在一个实施例中,缓冲器260包括命令缓冲器,其缓冲并重新驱动命令信号。应当理解,系统200的共同实施方式与从命令缓冲相比将更多地从数据缓冲受益,这是因为对于每个命令通常存在数据的多个数据传输循环。即便如此,也应当理解,除了数据缓冲之外,还可以执行命令缓冲。
在一个实施例中,一个或多个缓冲器260是改变用途的数据缓冲器组件,例如用于易失性存储器DIMM解决方案中的数据缓冲器。在一个实施例中,一个或多个缓冲器260重用DDR4 LRDIMM数据缓冲器DDR4DB02(DB)组件。在一个实施例中,缓冲器260充当用于信号的直放站。缓冲器260可以被认为是用于主机210的负载减少代理者(agent)或代理(proxy)。缓冲器260可以为NVM设备272提供负载减少。在一个实施例中,控制器240以速度与NVM设备272接合或与传统易失性存储器接口的修改的接口接合。即使在重用已知数据缓冲器的情况下,系统200也与包括负载缓冲的传统易失性存储器系统不同地配置。例如,到NVM设备272的接口将是不同的,至少在于一个或多个定时将与典型的易失性存储器接口不同地控制。在一个实施例中,除了重新驱动来自NVM设备272的信号(例如,数据信号或命令信号或二者)或去往NVM设备272的信号或二者之外,缓冲器260还可以对信号重新定时。重新定时可以包括将信号同步到选通信号或时钟信号。
在一个实施例中,NVM设备272被组织为一个或多个设备组270。NVM设备272的组270包括多个设备。NVM设备272可以是或包括封装的设备。NVM设备272可以是或包括电路管芯,其可以直接安装在电路基板上,或者每I/C(集成电路)封装与多个管芯一起封装。在一个实施例中,SSD 230每N个NVM设备272的组270包括一个缓冲器260,所述N个NVM设备例如八个或十六个设备。在一个实施例中,SSD 230包括多个NVM资源电路板,每电路板具有数据缓冲器260和NVM设备组270。在一个实施例中,这样的电路板可以耦合在树形网络中,以在层级中分层缓冲器。
在一个实施例中,NVM设备272和缓冲器260支持突发中的数据传输。数据突发包括数据传输的单位间隔的指定突发长度(BL)数量,其中,传输每传输循环或每单位间隔包括来自存储器接口的每个信号线的一个比特。数据访问事务包括数据访问请求,响应于所述请求控制器240发出数据访问命令,所述数据访问命令在多个传输循环内与数据接口的每条信号线上的连续比特突发相关联。因此,作为数据缓冲器的缓冲器260的实施方式将接收用于存储器访问事务的比特流。
在其中突发长度被使用的实施例中,数据缓冲器260的BL配置与NVM设备272的BL配置之间可以存在不匹配。例如,考虑数据缓冲器260被配置为缓冲8个循环的数据比特,或者被配置为用于BL8,并且NVM设备272被配置为用于BL16的数据访问事务。在一个实施例中,控制器240发出背对背请求或命令,并且数据缓冲器260两次接收相同的命令。在一个实施例中,响应于接收到相同的连续命令,数据缓冲器260将命令视为具有两倍突发长度的单个命令。例如,用于数据传输的连续命令,其中,数据缓冲器260将命令视为BL8命令,数据缓冲器可以将两个请求视为用于单个BL16命令。其他突发长度是可能的。
在一个实施例中,组270包括多个DIMM,每个所述DIMM具有多个NVM设备。在一个实施例中,存储器通道可以被认为是耦合到多点总线上的多个缓冲器260。在一个实施例中,在具有多个DIMM(或用于组270的其他群组)和多个缓冲器260的多点场景中,将存在是命令的目标的组270,其中,目标是存储数据以用于读取或者要存储数据以用于写入的组270。其他组270将是非目标组270。在一个实施例中,非目标组270终止传输的信号以减少信号反射,这改善了目标组270的信号质量。在一个实施例中,终止包括同步终止。在一个实施例中,缓冲器260包括计数器,其用于对传输的脉冲进行计数以确保良好的终止和性能。
如所描述的,在一个实施例中,系统200包括NVM设备272的一个或多个组270。每个组270可以包括多个NVM设备272。存储控制器240控制或管理对NVM设备272的读取和写入。一个或多个缓冲器260(例如,每组270一个缓冲器)耦合在存储控制器240和NVM设备组270之间。在一个实施例中,缓冲器260在数据总线上,并且重新驱动数据总线上的数据信号,并且将数据信号同步到时钟信号。SSD 230可以包括多个缓冲器260和组270。
图3是具有数据缓冲器的存储系统的实施例的框图。系统300示出了根据系统100或系统200中的任何一个或二者的实施例的存储控制器和NVM设备的示例。在一个实施例中,系统300表示SSD。控制器310表示存储控制器。系统300包括组320[0]到320[N-1],为方便起见,其可以简称为组320或多个组320。组320均包括多个NVM设备322。在一个实施例中,每个组320包括相同的数量的NVM设备322,但这样的配置对于一些实施方式可以不是必要的。
系统300包括与每个组320相对应的数据缓冲器。因此,系统300被示出为具有数据缓冲器330[0]到330[N-1],其分别对应于组320[0]到320[N-1]。类似于组320,为方便起见,数据缓冲器330[0]到330[N-1]可以简称为数据缓冲器330或多个数据缓冲器330。
将控制器310互连到数据缓冲器330和组320的线表示用于系统300的存储器通道的信号线。在一个实施例中,存储器通道包括命令和地址(C/A)总线,其中,通常地址信息被包括在被提供有命令信息的一个或多个信息字段中。地址标识由命令指示的存储器事务应当应用于的存储器位置。C/A总线由具有长破折号的线表示。系统300的存储器通道包括数据(DQ)总线,其使得能够将数据从控制器310传输到NVM设备322以进行写入,并且将数据从NVM设备322传输到控制器310以进行读取。数据总线由实线表示。在一个实施例中,存储器通道包括缓冲器命令总线(在系统300中表示为BUF,但是其可以由不同的标签指定)。缓冲器命令总线由点划线表示。
系统300在控制器310处向存储器通道提供减少的负载,这可以在不添加存储器通道的情况下实现高带宽和高容量SSD实施方式。在一个实施例中,数据总线从控制器310耦合到数据缓冲器330,所述数据缓冲器330可以调整DQS(数据选通)和DQ(数据)信号以考虑去往/来自控制器310和NVM设备320或在控制器310与NVM设备320之间的传播延迟。在一个实施例中,缓冲器330可以调整DQS和DQ数据信号以考虑电压变化、温度变化、工艺变化或组合。
在一个实施例中,用于传输C/A信号的时钟信号可以耦合到数据缓冲器330。数据缓冲器330可以重新计时数据信号并基于用于系统300中的命令的时钟信号的定时来同步数据信号的传输。命令和地址信息以及时钟可以耦合到NVM设备322的组320。在一个实施例中,控制器310经由缓冲器命令总线控制到数据缓冲器330的信号的定时。例如,基于到数据缓冲器330的信号的定时和事务本身的定时,控制器310可以使系统300能够符合一个或多个协议。
在一个实施例中,控制器310将背对背数据访问命令发送到NVM设备322,NVM设备将所述背对背数据访问命令解释为双倍长度的单个命令。数据缓冲器330可以在控制器310和NVM设备322之间缓冲数据,这可以使得能够将两个连续BL的数据作为单个BL进行传输。例如,在一个实施例中,数据缓冲器330支持被配置以用于BL8的DDR4协议,并且NVM设备322包括3DXP设备,其根据被配置以用于BL16的3DXP协议进行操作。在一个实施例中,数据缓冲器330传输16字节而不是8字节。在一个实施例中,数据缓冲器330可以内部地跳过第二命令并继续突发第二突发长度的数据(例如,首先传输8字节并继续传输第二8字节)而没有停顿循环。除了NVM设备322将一定量的数据信号的两倍视为单个事务之外,数据缓冲器还可以可能被触发以针对BL循环数量的两倍进行操作。
应当理解,数据缓冲器330提供与NAND SSD中使用的无源开关不同的功能,所述无源开关将SSD写入数据扇出到所选择的存储器管芯。如本文描述的,数据缓冲器330可以向所有连接的管芯广播数据。在一个实施例中,NVM设备322遵循固定的写入和读取协议定时和延时,例如确定性数据传输。传统的NAND设备遵循ONFI(开放式NAND闪存接口)协议,所述协议传统上在传输之前等待数据就绪。ONFI协议不提供确定性数据传输。如本文描述的,NAND NVM设备可以与数据缓冲器330一起使用以提供负载减少的数据传输。
在一个实施例中,控制器310在将缓冲器命令信号发送到数据缓冲器330之前将命令和地址数据发送到NVM设备322。在一个实施例中,缓冲器命令信号可以被称为一个或多个控制信号,其将触发数据缓冲器330将数据信号传输到NVM设备322的相关联的组320。在一个实施例中,缓冲器命令信号可以被称为一个或多个控制信号,其将触发数据缓冲器330以将数据信号传输到NVM设备322的相关联的组320。在一个实施例中,缓冲器命令信号可以将数据信号同步到来自命令和地址和时钟信息的时钟信号的传输循环。在一个实施例中,数据缓冲器330可以将数据信号同步到NVM设备322的接口的协议定时。在一个实施例中,数据缓冲器330可以将数据信号同步到存储控制器接口的协议定时。
图4是具有可训练的主机侧和存储器侧接口的数据缓冲器的实施例的框图。系统400示出了根据系统100、系统200或系统300的实施例的存储系统的组件。系统400包括控制器410,其表示存储控制器。系统400包括NVM设备460,其表示非易失性介质。
系统400具体示出了控制器410中的输入/输出(I/O)接口逻辑412,其将存储控制器与数据缓冲器430接合,并且更具体而言,接合到I/O接口逻辑432。I/O接口逻辑432表示用于数据缓冲器430的主机侧或面向主机的接口,而I/O接口逻辑412表示用于控制器410的存储器侧或面向存储器的接口。数据缓冲器430包括用于与NVM设备460接合的I/O接口逻辑434,并且更具体而言,接合到I/O接口逻辑462。I/O接口逻辑462表示用于NVM设备460的主机侧或面向主机的接口,而I/O接口逻辑434表示用于数据缓冲器430的存储器侧或面向存储器的接口。为方便起见,I/O接口逻辑可以在本文中简称为I/O,例如I/O 412、I/O 432、I/O 434和I/O 462。
信号线420表示将控制器410耦合到数据缓冲器430的信号线或一个或多个总线。信号线450表示将数据缓冲器430耦合到NVM设备460的信号线或一个或多个总线。总线可以包括命令信号线、数据信号线、选通信号线、警报线、辅助线或其他信号线中的至少一个或组合。应当理解,系统400示出了数据总线,其由数据缓冲器430缓冲。命令总线还可以由命令缓冲器(未明确示出)缓冲,或者可以在点对点网络中耦合到NVM设备460(未明确示出)。
I/O接口逻辑可以包括引脚、焊盘、连接器、信号线、迹线或导线、或用于连接设备的其他硬件、或这些的组合。I/O接口逻辑可以包括硬件接口。如所示,I/O接口逻辑可以至少包括用于信号线的驱动器/收发器,其用于将信号线(420、450)驱动到期望的电压电平。通常,集成电路接口内的导线与焊盘、引脚或连接器耦合,以将设备之间的信号线或迹线或其它导线接合。I/O接口逻辑可以包括驱动器、接收器、收发器或终端、或其他电路或电路的组合,以在设备之间的信号线上交换信号。信号的交换包括发送或接收中的至少一个。
控制器410被示出为包括调度器414,所述调度器414表示控制器中的用于控制将命令信号发送到NVM 460的定时的逻辑。虽然命令信号线未在系统400中明确示出,但是控制器将命令发送到NVM 460以用于数据访问。在一个实施例中,控制器410将缓冲器命令发送到与数据访问命令分开的数据缓冲器430,并且可以控制数据缓冲器430如何处理与数据访问命令相关的数据。
数据缓冲器430被示出为包括一个或多个缓冲器442,所述缓冲器442表示用于实现控制器410和NVM 460之间的具有减少的负载的数据传输的数据缓冲器。在一个实施例中,写入数据经由I/O 432进入数据缓冲器430,并且被放置在缓冲器442中。数据缓冲器430响应于一个或多个命令信号或一个或多个时钟信号或二者而将写入数据传输出I/O 434。在一个实施例中,数据缓冲器430包括用于调整数据信号的定时的定时控制444。因此,数据缓冲器430可以响应于命令或时钟信号或二者而基于定时控制444的控制逻辑来重新定时数据信号,这使得数据缓冲器430能够确保存储器通道符合一个或多个协议。对于读取数据,在一个实施例中,NVM 460将读取数据发送到数据缓冲器430,所述数据缓冲器430经由I/O 434接收它并且将其放置在缓冲器442中。定时控制444可以表示用于经由I/O 432将读取数据从缓冲器442发送到控制器410的定时控制。定时控制444可以使数据缓冲器430能够提供确定性高速存储接口。在一个实施例中,系统400可以包括以DDR4频率操作的3DXP NVM460。定时控制444可以确保与控制器410的接口根据DDR4信号进行操作,同时还符合用于与NVM 460的接口的3DXP定时协议。
应当理解,I/O接口412、432、434和462通过将信号线420和450驱动到期望的逻辑电平来交换信号,例如针对“0”或者逻辑低电平将信号线驱动到低电压门限,并且针对“1”或逻辑高电平将信号线驱动到高电压门限。电压门限可以基于实施方式而变化,但是通常存在信号眼,其定义可以在另一侧上被正确解码的信号,其中,眼包括门限高或低电平,以及门限上升和下降时间。如本领域中所理解的,各种配置设置可以影响信号眼,例如电压水平、电流水平、温度、用于驱动和接收信号的延迟以及其他设置。I/O接口通常参与用于训练信号眼的“握手”或其他配置过程。训练信号眼是指调整配置设置以实现信号眼,所述信号眼实现在每时间段错误的最大门限的情况下的信号传输。
应当理解,给定不同协议所期望的不同定时,并且给定取决于突发长度是多长或者什么类型的信号被发送而发生的不同电特性,对于不同的协议,信号眼训练可以是不同的。在一个实施例中,系统400的组件包括训练状态机,其用于执行一个或多个训练例程,并且可以包括用于存储用训练例程确定的变量或配置设置的寄存器或其他存储位置。在一个实施例中,可以使用不同的训练例程来训练数据缓冲器430以确保数据缓冲器430符合面向主机的存储器通道协议,并且符合面向存储器的存储器通道协议。例如,数据缓冲器430可以针对用于主机侧交换的DDR4定时以及用于存储器侧交换的3DXP定时来训练。
在一个实施例中,数据缓冲器442包括一个或多个寄存器446,其可以是或包括多用途寄存器(MPR)。在一个实施例中,控制器410将数据写入一个或多个寄存器446以进行训练。在一个实施例中,数据缓冲器430应用来自寄存器446的数据以训练与NVM 460的接口。数据缓冲器430可以以迭代方式用数据来应用不同的配置设置,以找到提供门限性能的配置设置(例如,每时间段或每传输循环数具有最大错误数的数据传输)。配置设置可以包括用于定时控制器444的至少一个定时设置。在一个实施例中,训练可以使用于数据缓冲器430的定时能够根据用于NVM 460的或NVM 460的I/O接口逻辑462的协议定时来重新驱动写入数据。在一个实施例中,训练可以使用于数据缓冲器430的定时能够根据用于控制器410的或控制器410的I/O接口逻辑412的协议定时来重新驱动读取数据。
图5是具有数据缓冲器和命令缓冲器的存储系统的实施例的框图。系统500示出了根据系统100或系统200中的任何一个或二者的实施例的存储控制器和NVM设备的示例。系统500可以提供根据系统300的系统的示例。在一个实施例中,系统500表示SSD。控制器510表示存储控制器。系统500包括组520[0]到520[N-1],为方便起见,其可以简称为组520或多个组520。组520均包括多个NVM设备522。在一个实施例中,每个组520包括相同数量的NVM设备522,但这样的配置对于一些实施方式可以不是必要的。
系统500包括与每个组520相对应的数据缓冲器。因此,系统500被示出为具有数据缓冲器530[0]到530[N-1],分别对应于组520[0]到520[N-1]。类似于组520,为方便起见,数据缓冲器530[0]到530[N-1]可以简称为数据缓冲器530或多个数据缓冲器530。在一个实施例中,系统500包括命令缓冲器540[0]到540[N-1],分别对应于组520[0]到520[N-1]。为方便起见,命令缓冲器540[0]到540[N-1]可以简称为命令缓冲器540或数据命令缓冲器540。
将控制器510互连到数据缓冲器530、命令缓冲器540和组520的线表示用于系统500的存储器通道的信号线。为简单起见,在系统500中仅指定了命令和数据信号线。在一个实施例中,存储器通道包括命令和地址(C/A)总线,如CMD或命令总线示出的,由具有长短划线的线表示。系统500的存储器通道包括数据(DQ)总线,其实现将数据从控制器510传输到NVM设备522以进行写入,并且从NVM设备522传输到控制器510以进行读取。数据总线由实线表示。在一个实施例中,系统500将包括一个或多个缓冲器命令总线,其到数据缓冲器530或到命令缓冲器540或到二者。
系统500为数据总线和命令总线提供对存储器通道的减少的加载。在一个实施例中,数据总线从控制器510耦合到数据缓冲器530,所述数据缓冲器530可以调整DQS(数据选通)和DQ(数据)信号以考虑传播延迟、电压变化、温度变化、工艺变化或组合。在一个实施例中,命令总线从控制器510耦合到命令缓冲器540,所述命令缓冲器540可以调整命令定时以考虑传播延迟或一个或多个变化。
在一个实施例中,控制器310在将缓冲器命令信号发送到数据缓冲器330之前将命令和地址数据发送到NVM设备322。在一个实施例中,缓冲器命令信号可以被称为一个或多个控制信号,这将触发数据缓冲器330将数据信号传输到NVM设备322的相关联的组320。在一个实施例中,缓冲器命令信号可以被称为一个或多个控制信号,其将触发数据缓冲器330以传输来自NVM设备322的相关联的组320的数据信号。在一个实施例中,缓冲器命令信号可以将数据信号同步到来自命令和地址和时钟信息的时钟信号的传输循环。在一个实施例中,数据缓冲器330可以将数据信号同步到NVM设备322的接口的协议定时。在一个实施例中,数据缓冲器330可以将数据信号同步到存储控制器接口的协议定时。
图6是具有级联数据缓冲器的存储系统的实施例的框图。系统600示出了根据系统100或系统200中的任何一个或二者的实施例的存储控制器和NVM设备的示例。系统600可以提供根据系统300的系统的示例。系统600示出了如何制造超高容量非易失性存储设备或超高容量SSD。
控制器610表示用于存储系统的存储控制器。系统600包括多层的数据缓冲器。虽然可以使用不同的结构,但是可以使用多于两层的数据缓冲器,系统600示出了树结构,其中,数据缓冲器可以按层级进行组织。因此,一个或多个数据缓冲器可以在“存储器侧接口”上耦合到下游数据缓冲器。例如,数据缓冲器620[0]下游地耦合到数据缓冲器630[0]到630[N-1]。为方便起见,数据缓冲器620[0]到620[N-1]和数据缓冲器630[0]到630[N-1]分别可以简称为数据缓冲器620或多个数据缓冲器620或者数据缓冲器630或多个数据缓冲器630。根据系统600的实施例,一个或多个数据缓冲器可以在“主机侧接口”上耦合到上游数据缓冲器而不是直接耦合到控制器610。例如,数据缓冲器630上游地耦合到数据缓冲器620[0]。数据缓冲器620[N-1]和数据缓冲器620[1]到620[N-2]还可以被理解为耦合到一个或多个NVM设备组。在一个实施例中,数据缓冲器620中的一个或多个可以直接耦合到NVM设备组,而没有诸如数据缓冲器630之类的中间数据缓冲层。因此,系统600的级联布置或树结构是灵活的。
系统600包括组640[0]到640[N-1],为方便起见,其可以简称为组640或多个组640。组640均包括多个NVM设备642。在一个实施例中,每个组640包括相同数量的NVM设备642,但是这样的配置对于一些实施方式可以不是必要的。为了简化说明和描述,系统600仅示出了控制器610和NVM设备642之间的数据总线(DQ)。应当理解,系统600包括对于交换控制和命令必要的适当的命令和地址总线、控制总线或组合,所述控制和命令与在数据总线上交换数据相关。响应于数据访问命令而发生数据交换。数据交换由数据缓冲器630和数据缓冲器620的控制操作控制。
在一个实施例中,多个数据缓冲器620可以级联在PCB上的菊花链中,或者多联合的(multi-ganged)PCB电路(例如,具有耦合到一个或多个连接器的一个或多个跨接板(jumper board))。系统600的级联使得能够以与传统SSD相同或相似的性能实现非常高容量的固态存储系统,而无需将存储器通道添加控制器610。应当理解,添加数据缓冲器引入一些延时,并且添加多层数据缓冲器添加另外的延迟。然而,通过缓冲层添加的延时是小的(例如,1.6ns),而减少的加载允许增加的频率操作,这倾向于不只是补偿数据缓冲器中的添加的延时。对去往NVM设备642(以及未具体示出的其他NVM设备)的命令的调度和发出以及对包括缓冲器控制信号的命令的调度和发出可以调整由数据缓冲器620和630引入的延迟。
图7A是用于访问多级存储器中的数据的过程的实施例的流程图。过程700提供根据诸如系统100、系统200等的数据存储系统的实施例的用于向NVM存储装置发出写入请求的操作的示例,所述NVM存储装置在存储器通道中具有缓冲的数据总线。主机对进程和操作的执行生成用于将数据存储到NVM存储装置的写入请求,702。在一个实施例中,存储控制器生成并调度操作以完成写入,704。写入是指写入事务,其中,存储控制器将一个或多个命令发送到NVM设备,并且发送数据以写入特定的存储器地址。用于写入的数据在多个传输循环期间被发送。
在一个实施例中,作为写入事务的第一部分,存储控制器将命令和地址信息发送到NVM设备,706。发送命令和地址信息可以在数据开始到达NVM设备时之前实现去往NVM设备的命令和地址信息。在一个实施例中,存储控制器将写入数据发送到数据缓冲器,708,并且在将命令和地址信息发送到NVM设备之后将控制信号发送到数据缓冲器,710。控制信号将数据缓冲器配置为将数据传输到NVM设备。控制信号可以是或包括缓冲器命令或缓冲器命令序列。
在一个实施例中,至少部分地响应于来自存储控制器的控制信号,数据缓冲器重新定时数据信号,712。重新定时数据信号可以包括调整延迟、信令参数或其他重新定时以使数据信号符合协议。在一个实施例中,重新定时包括将数据信号同步到与用于与NVM设备(例如,存储器侧接口)相关联的定时的时钟信号。在一个实施例中,NVM设备在本机协议上操作,所述本机协议与存储控制器与主机的接口的本机协议不同。数据缓冲器根据定时将写入数据传输到NVM设备,714。
在一个实施例中,存储控制器为被发送到NVM设备的每个数据访问命令提供缓冲器命令。在一个实施例中,存储控制器针对被发送到NVM设备的每个数据访问命令发送多个连续缓冲器命令。在一个实施例中,NVM设备将期望用于写入的2N个传输循环的数据,并且数据缓冲器通常将响应于命令而发送N个数据传输循环。在这样的实施例中,连续命令可以使数据缓冲器将2N个传输循环的数据作为单个命令事务发送到NVM设备。在一个实施例中,数据缓冲器可以内部地消除数据的第一N个传输循环和数据的第二N个传输循环之间的任何延迟。
图7B是用于在具有高压缩性标记的系统中处理读取访问请求的过程的实施例的流程图。过程720提供了根据诸如系统100、系统200等的数据存储系统的实施例的用于向NVM存储装置发出读取请求的操作的示例,所述NVM存储装置在存储器通道中具有缓冲的数据总线。主机对进程和操作的执行生成用于访问来自NVM存储装置的数据的读取请求,722。在一个实施例中,存储控制器生成并调度用于完成读取的操作,704。读取是指读取事务,其中,存储控制器将一个或多个命令发送到NVM设备,并且响应于命令,NVM设备将数据从特定存储器地址发送到存储控制器以提供给主机。用于读取的数据在多个传输循环期间被发送。
在一个实施例中,作为读取事务的第一部分,存储控制器将命令和地址信息发送到NVM设备,726。发送命令和地址信息可以在数据缓冲器准备好将数据从NVM设备传输到存储控制器时之前实现去往NVM设备的命令和地址信息。在一个实施例中,NVM设备将读取的数据发送到数据缓冲器,728,并且在将命令和地址信息发送到NVM设备之后将控制信号发送到数据缓冲器,730。控制信号将数据缓冲器配置为将数据从NVM设备传输到存储控制器。控制信号可以是或包括缓冲器命令或缓冲器命令序列。
在一个实施例中,至少部分地响应于来自存储控制器的控制信号,数据缓冲器重新定时数据信号,732。重新定时数据信号可以包括调整延迟、信令参数或其他重新定时以使数据信号符合协议。在一个实施例中,重新定时包括将数据信号同步到用于与存储控制器(例如,主机侧接口)相关联的定时的时钟信号。在一个实施例中,NVM设备在本机协议上操作,所述本机协议与存储控制器与主机的接口的本机协议不同。数据缓冲器根据定时将读取的数据传输到存储控制器,734。
在一个实施例中,存储控制器为被发送到NVM设备的每个数据访问命令提供缓冲器命令。在一个实施例中,存储控制器针对被发送到NVM设备的每个数据访问命令发送多个连续缓冲器命令。在一个实施例中,NVM设备针对单个读取事务发送2N个传输循环的数据,并且数据缓冲器通常将期望响应于命令而接收N个传输循环的数据。在这样的实施例中,连续命令可以使数据缓冲器从NVM设备作为单个读取事务接收2N个传输循环的数据。在一个实施例中,数据缓冲器可以内部地消除数据的第一N个传输循环和数据的第二N个传输循环之间的任何延迟。在一个实施例中,数据缓冲器将数据作为两个单独的N个传输循环的数据传输到存储控制器。
图7C是用于在具有高压缩性标记的系统中处理写入访问请求的过程的实施例的流程图。过程740提供了根据诸如系统100、系统200等的数据存储系统的实施例的用于训练用于NVM存储系统的缓冲器(例如,数据缓冲器或命令缓冲器)的接口的操作的示例,所述NVM存储系统在存储器通道中具有缓冲的数据总线。在一个实施例中,条件或事件引起训练序列的发起,742。例如,系统可以在满足了重置条件时训练I/O接口,所述重置条件无论是机器的初始引导,还是从睡眠或低功率模式醒来。在一个实施例中,存储系统训练缓冲器的主机侧接口和缓冲器的存储器侧接口二者。定时参数在主机侧和存储器侧可以是不同的,尤其是当在NVM设备中使用与管理通道的存储控制器不同的协议时。
在一个实施例中,存储控制器生成用于缓冲器的主机接口的训练数据,744。在一个实施例中,数据缓冲器配置用于主机接口的I/O设置,746,这可以包括设置控制存储控制器和数据缓冲器之间的信号定时的一个或多个值。存储控制器可以迭代地发送训练数据并且评估事务的性能,748,并且确定是否存在其他配置设置要针对I/O接口进行测试,750。如果存在更多设置要评估,750是(YES)分支,则数据缓冲器将I/O设置配置为用于另一数据传输,746。如果最后一个配置设置已被评估,750否(NO)分支,则在一个实施例中,数据缓冲器保持被提供了经评估的配置设置的最佳性能的用于I/O接口设置的配置设置,752。
在一个实施例中,存储控制器首先训练数据缓冲器的主机侧接口,并且然后训练存储器侧接口。然而,次序可以颠倒,或者两次训练可以在基本相同的时间处发生。在一个实施例中,存储控制器生成用于数据缓冲器的存储器接口的训练数据,754。训练数据可以是与用于训练主机侧接口的数据相同的数据或不同的数据。在一个实施例中,存储控制器可以经由主机接口将固定数据模式写入数据缓冲器上的寄存器,然后数据缓冲器可以使用所述固定数据模式来训练数据缓冲器的存储器接口。在一个实施例中,数据缓冲器配置用于存储器接口的I/O设置,类似于用于训练主机接口的配置,756。数据缓冲器可以在存储器接口上迭代地将训练数据发送到VM设备并且评估事务的性能,758,并且确定是否存在其他配置设置要针对I/O接口进行测试,760。如果存在更多设置要评估,760YES分支,则数据缓冲器配置I/O设置以用于另一数据传输,756。如果已经评估了最后的配置设置,760否分支,则在一个实施例中,数据缓冲器保持用于被提供了所评估的配置设置的最佳性能的I/O接口设置的配置设置,762。
图8是具有其中可以实现高压缩性标记的多级存储器的计算系统的实施例的框图。系统800表示根据本文描述的任何实施例的计算设备,并且可以是膝上型计算机、桌上型计算机、服务器、游戏或娱乐控制系统、扫描仪、复印机、打印机、路由或交换设备、嵌入式计算设备或其他电子设备。
系统800包括处理器810,其为系统800提供处理、操作管理和指令的执行。处理器810可以包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心、或用于为系统800提供处理的其他处理硬件、或处理器的组合。处理器810控制系统800的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等、或这样的设备的组合。
在一个实施例中,系统800包括耦合到处理器810的接口812,所述处理器810可以表示用于需要更高带宽连接的系统组件(例如,存储器子系统820或图形接口组件840)的更高速接口或高吞吐量接口。接口812可以表示“北桥”电路,其可以是独立组件或者可以集成在处理器管芯上。图形界面840接合到图形组件,以用于向系统800的用户提供视觉显示。在一个实施例中,图形界面840基于存储在存储器830中的数据或基于由处理器810执行的操作或二者来生成显示。
存储器子系统820表示系统800的主存储器,并且为要由处理器810执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统820可以包括一个或多个存储器设备830,例如只读存储器(ROM)、闪速存储器、一种或多种随机存取存储器(RAM)、或其他存储器设备,或这样的设备的组合。存储器830存储和托管操作系统(OS)832等,以提供用于在系统800中执行指令的软件平台。另外,应用834可以在OS 832的软件平台上从存储器830执行。应用834表示具有他们自己的操作逻辑来执行一个或多个功能的程序。进程836表示向OS 832或一个或多个应用834或组合提供辅助功能的代理或例程。OS 832、应用834和进程836提供用于为系统800提供功能的逻辑。在一个实施例中,存储器子系统820包括存储器控制器822,其是用于向存储器830生成并发出命令的存储器控制器。应当理解,存储器控制器822可以是处理器810的物理部分或接口812的物理部分。例如,存储器控制器822可以是集成存储器控制器,其集成到具有处理器810的电路上。
虽然未具体示出,但是应当理解,系统800可以包括设备之间的一个或多个总线或总线系统,例如存储器总线、图形总线、接口总线等。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者既通信地又电气地耦合组件。总线可以包括物理通信线路、点对点连接、桥、适配器、控制器或其他电路或组合。总线可以包括例如以下各项中的一项或多项:系统总线、外围组件互连(PCI)总线、HyperTransport或工业标准架构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)或电气和电子工程师协会(IEEE)标准1394总线(通常被称为“Firewire”)。
在一个实施例中,系统800包括接口814,其可以耦合到接口812。与接口812相比,接口814可以是的较低速接口。在一个实施例中,接口814可以是“南桥”电路,其可以是包括独立组件和集成电路。在一个实施例中,多个用户界面组件或外围组件或二者耦合到接口814。网络接口850向系统800提供用于在一个或多个网络上与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口850可以包括以太网适配器、无线互连组件、USB(通用串行总线)或其他有线或无线的基于标准的或专有的接口。网络接口850可以与远程设备交换数据,所述远程设备可以包括发送存储在存储器中的数据或接收要存储在存储器中的数据。
在一个实施例中,系统800包括一个或多个输入/输出(I/O)接口860。I/O接口860可以包括用户通过其与系统800交互(例如,音频、字母数字、触觉/触摸或其他接合)的一个或多个接口组件。外围接口870可以包括以上没有具体提到的任何硬件接口。外围设备通常是指依赖于系统800连接的设备。依赖连接是其中系统800提供操作在其上执行以及用户与之交互的软件平台或硬件平台或二者的连接。
在一个实施例中,系统800包括用于以非易失性方式存储数据的存储子系统880。存储子系统880包括NVM存储设备884,其可以是或包括实现在高速存储器通道上进行访问的任何固态存储器设备。存储装置884以持久状态保存代码或指令和数据886(即,尽管中断系统800电力,仍保留值)。存储装置884可以在遗传上被认为是“存储器”,但存储器830通常是用于向处理器810提供指令的执行或操作存储器。虽然存储装置884是非易失性的,但是存储器830可以包括易失性存储器(即,如果系统800电力被中断,则数据的值或状态是不确定的)。
在一个实施例中,存储子系统880包括用于与存储装置884接合的控制器882。在一个实施例中,控制器882可以附加于是接口814或处理器810的部分的存储控制电路,或者可以包括处理器810和接口814二者中的电路或逻辑。在一个实施例中,存储子系统880包括缓冲器890,所述缓冲器890表示根据本文描述的任何实施例的用于存储系统的存储器通道的缓冲器。缓冲器890可以表示数据缓冲器或用于命令和地址信号的缓冲器或二者。根据本文描述的任何实施例,缓冲器890在控制器882和NVM存储装置884之间重新定时信号。
电源802向系统800的组件提供电力。更具体而言,电源802通常接合到系统802中的一个或多个供电装置804,以向系统800的组件提供电力。在一个实施例中,供电装置804包括用于插入墙上插座中的AC到DC(交流到直流)适配器。这样的AC电力可以是可再生能源(例如,太阳能)电源802。在一个实施例中,电源802包括DC电源,例如外部AC到DC转换器。在一个实施例中,电源802或供电装置804包括用于经由接近充电场进行充电的无线充电硬件。在一个实施例中,电源802可以包括内部电池或燃料电池源。
系统800示出了存储器子系统820中的高速缓存控制器890,其表示根据本文描述的任何实施例的包括和使用高压缩性标记的高速缓存控制器。高速缓存控制器890可以被理解为具有高速缓存(未具体示出)的多级存储器以及存储器830的部分。在一个实施例中,高速缓存控制器890包括可以以与高速缓存数据库相比较低的延迟来被访问的资源上HC标志。在一个实施例中,高速缓存控制器890集成在处理器810或接口812上。在一个实施例中,高速缓存控制器890是存储器控制器822的部分。根据本文描述的任何实施例,高速缓存控制器890至少部分地基于高压缩性标记的值来返回对被高速缓存的数据的存储器访问请求的实现。
图9是具有其中可以实现高压缩性标记的多级存储器的移动设备的实施例的框图。设备900表示移动计算设备,例如计算平板、移动电话或智能手机、支持无线的电子阅读器、可穿戴计算设备或其他移动设备或嵌入式计算设备。应当理解,组件中的某些组件被概括地示出,并且并非这样的设备的所有组件都在设备900中被示出。
设备900包括处理器910,其执行设备900的主要处理操作。处理器910可以包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑器件或其他处理单元。由处理器910执行的处理操作包括应用和设备功能在其上被执行的操作平台或操作系统的执行。处理操作包括与人类用户或其他设备的I/O(输入/输出)相关的操作、与电力管理相关的操作、与将设备900连接到另一设备相关的操作或组合。处理操作还可以包括与音频I/O、显示I/O或其他接合或组合相关的操作。处理器910可以执行存储在存储器中的数据。处理器910可以写入或编辑存储在存储器中的数据。
在一个实施例中,系统900包括一个或多个传感器912。传感器912表示嵌入式传感器或到外部传感器的接口或组合。传感器912使系统900能够监测或检测其中实现系统900的环境或设备的一个或多个条件。传感器912可以包括环境传感器(例如,温度传感器、运动检测器、光检测器、相机、化学传感器(例如,一氧化碳、二氧化碳或其他化学传感器))、压力传感器、加速度计、陀螺仪、医疗或生理传感器(例如,生物传感器、心率监测器或用于检测生理属性的其他传感器)、或其他传感器、或组合。传感器912还可以包括用于生物辨识系统的传感器,例如指纹辨识系统、面部检测或辨识系统、或检测或辨识用户特征的其他系统。传感器912应当被广泛地理解,并且不限于可以用系统900实现的许多不同类型的传感器。在一个实施例中,一个或多个传感器912经由与处理器910集成的前端电路耦合到处理器910。在一个实施例中,一个或多个传感器912经由系统900的另一组件耦合到处理器910。
在一个实施例中,设备900包括音频子系统920,其表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动程序、编解码器)组件。音频功能可以包括扬声器或耳机输出,以及麦克风输入。用于这样的功能的设备可以集成到设备900中,或者连接到设备900。在一个实施例中,用户通过提供由处理器910接收和处理的音频命令来与设备900交互。
显示子系统930表示硬件(例如,显示设备)和软件组件(例如,驱动程序),其提供用于向用户进行呈现的视觉显示。在一个实施例中,显示器包括供用户与计算设备交互的触觉组件或触摸屏元件。显示子系统930包括显示接口932,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示接口932包括与处理器910(例如,图形处理器)分离的用于执行与显示器相关的至少一些处理的逻辑。在一个实施例中,显示子系统930包括向用户提供输出和输入二者的触摸屏设备。在一个实施例中,显示子系统930包括向用户提供输出的高清(HD)显示器。高清可以指具有大约100PPI(每英寸像素)或更大的像素密度的显示器,并且可以包括诸如全HD(例如,1080p)、视网膜显示器、4K(超高清或UHD)之类的格式或者其他格式。在一个实施例中,显示子系统930基于存储在存储器中的数据和由处理器910执行的操作来生成显示信息。
I/O控制器940表示关联于与用户的交互的硬件设备和软件组件。I/O控制器940可以操作以管理是音频子系统920或显示子系统930或二者的部分的硬件。另外,I/O控制器940示出了连接到设备900的另外的设备的连接点,用户可以通过所述设备900与系统交互。例如,可以附接到设备900的设备可以包括麦克风设备、扬声器或立体声系统、视频系统或其他显示设备、键盘或按键板设备或用于与特定应用一起使用的其他I/O设备(例如,读卡器或其他设备)。
如以上提到的,I/O控制器940可以与音频子系统920或显示子系统930或二者交互。例如,通过麦克风或其他音频设备的输入可以为设备900的一个或多个应用或功能提供输入或命令。另外,可以提供音频输出以代替或附加于显示输出。在另一示例中,如果显示子系统包括触摸屏,则显示设备还充当输入设备,其可以至少部分地由I/O控制器940管理。设备900上还可以存在另外的按钮或开关,以提供由I/O控制器940管理的I/O功能。
在一个实施例中,I/O控制器940管理诸如加速度计、相机、光传感器或其他环境传感器、陀螺仪、全球定位系统(GPS)或可以被包括在设备900中的其他硬件或传感器912之类的设备。输入可以是直接用户交互的部分,也可以向系统提供环境输入以影响其操作(例如,滤除噪声、针对亮度检测调整显示、针对相机应用闪光灯、或其他特征)。
在一个实施例中,设备900包括管理电池电力使用、电池的充电以及与电力节省操作相关的特征的电力管理950。电力管理950管理来自电源952的电力,所述电源952向系统900的组件提供电力。在一个实施例中,电源952包括用于插入到墙上插座中的AC到DC(交流到直流)适配器。这样的AC电力可以是可再生能源(例如,太阳能、基于运动的电力)。在一个实施例中,电源952仅包括DC电力,其可以由DC电源提供,所述DC电源例如外部AC到DC转换器。在一个实施例中,电源952包括用于经由接近充电场来充电的无线充电硬件。在一个实施例中,电源952可以包括内部电池或燃料电池源。
存储器子系统960包括用于在设备900中存储信息的存储器设备962。存储器子系统960可以包括非易失性存储器996(如果存储器设备的电力被中断,则状态不改变)或易失性存储器设备962(如果存储设备的电力中断,则状态是不确定的)或组合。存储器960可以存储应用数据、用户数据、音乐、照片、文档或其他数据、以及与系统900的应用和功能的执行相关的系统数据(无论是长期的还是临时的)。在一个实施例中,存储器子系统960包括存储器控制器964(其也可以被认为是系统900的控制的部分,并且可以潜在地被认为是处理器910的部分)。存储器控制器964包括调度器,其用于生成和发出命令以控制对存储器设备962的访问。
在一个实施例中,存储器子系统960包括NVM控制器992,其包括调度器,所述调度器用于生成和发出命令以控制对NVM 996的访问。在一个实施例中,存储器子系统960包括缓冲器994,其表示用于根据本文描述的任何实施例的存储系统的存储器通道的缓冲器。缓冲器994可以表示数据缓冲器或用于命令和地址信号的缓冲器或二者。根据本文描述的任何实施例,缓冲器944在NVM控制器992和NVM 996之间重新定时信号。
连接970包括硬件设备(例如,无线或有线连接器和通信硬件,或有线和无线硬件的组合)和软件组件(例如,驱动程序、协议栈),其用于使设备900能够与外部设备进行通信。外部设备可以是单独的设备,例如其他计算设备、无线接入点或基站以及诸如耳机、打印机或其他设备之类的外围设备。在一个实施例中,系统900与外部设备交换数据以在存储器中存储或在显示设备上显示。交换的数据可以包括要存储在存储器中的数据,或者已经存储在存储器中的数据,以读取、写入或编辑数据。
连接970可以包括多种不同类型的连接。概括而言,设备900被示出为具有蜂窝连接972和无线连接974。蜂窝连接972通常指由无线运营商提供的蜂窝网络连接,例如经由GSM(全球移动通信系统)或变型或衍生物、CDMA(码分多址)或变型或衍生物、TDM(时分复用)或变型或衍生物、LTE(长期演进——还被称为“4G”)或其他蜂窝服务标准)提供的连接。无线连接974是指非蜂窝的无线连接,并且可以包括个域网(例如,蓝牙)、局域网(例如,WiFi)或广域网(例如,WiMax)或其他无线通信或组合。无线通信是指通过使用经调制的电磁辐射通过非固体介质传输数据。有线通信通过固体通信介质发生。
外围连接980包括硬件接口和连接器,以及用于进行外围连接的软件组件(例如,驱动程序、协议栈)。应当理解,设备900既可以是到其他计算设备的外围设备(“到”982),也可以具连接到其的外围设备(“从”984)。设备900通常具有“对接”连接器以连接到其他计算设备,以用于诸如管理(例如,下载、上载、改变、同步)设备900上的内容的目的。另外,对接连接器可以允许设备900连接到某些外围设备,其允许设备900控制(例如,到视听或其他系统)内容输出。
除了专有对接连接器或其他专有连接硬件之外,设备900还可以经由公共的或基于标准的连接器进行外围连接980。常见类型可以包括通用串行总线(USB)连接器(其可以包括多个不同硬件接口中的任何一个)、包括MiniDisplayPort(MDP)的DisplayPort、高清多媒体接口(HDMI)、Firewire或其他类型。
系统900示出了存储器子系统960中的高速缓存控制器990,其表示根据本文描述的任何实施例的包括和使用高压缩性标记的高速缓存控制器。高速缓存控制器990可以被理解为是具有高速缓存(未具体示出)的多级存储器以及存储器962的部分。在一个实施例中,与高速缓存数据存储库相比,高速缓存控制器990包括可以以较低的延迟访问的资源上HC标志。在一个实施例中,高速缓存控制器990集成在处理器910上。在一个实施例中,高速缓存控制器990是存储器控制器964的部分。高速缓存控制器990至少部分地基于根据本文描述的任何实施例的高压缩性标记的值来返回对高速缓存的数据的存储器访问请求的实现。
在一个方面中,一种用于数据存储的系统包括:非易失性存储器(NVM)设备组;存储控制器,其耦合到NVM设备组,存储控制器用于管理对NVM设备的读取和写入;以及数据缓冲器,其在数据总线上耦合在NVM设备组与存储控制器之间,数据缓冲器用于在数据总线上重新驱动数据信号,并且将数据信号同步到时钟信号。
在一个实施例中,存储控制器用于首先将命令信号发送到NVM设备组,并且然后将控制信号发送到数据缓冲器,其中,控制信号用于触发数据缓冲器以将数据信号传输到NVM设备组。在一个实施例中,NVM设备用于以突发模式进行操作,以在2N个循环期间传输数据,并且数据缓冲器用于操作以在N个循环期间传输数据,其中,存储控制器用于向数据缓冲器发出连续命令,以使数据缓冲器响应于连续命令而在2N个循环内进行操作。在一个实施例中,数据缓冲器用于内部地消除停顿循环,以响应于连续命令而产生2N个循环的连续数据传输。在一个实施例中,数据缓冲器包括到存储控制器的主机接口和到NVM设备组的存储器接口,并且其中,数据缓冲器用于针对主机接口应用与存储器接口不同的配置设置,其中,不同的配置设置至少包括不同的定时配置设置。在一个实施例中,数据缓冲器用于将数据信号从存储控制器重新驱动到NVM设备,包括将数据信号同步到NVM设备的接口的协议定时。在一个实施例中,数据缓冲器用于将数据信号从NVM设备重新驱动到存储控制器,包括将数据信号同步到存储控制器接口的协议定时。在一个实施例中,NVM设备组包括第一组并且数据缓冲器包括第一数据缓冲器,并且还包括第二NVM设备组和耦合在第二NVM设备组与存储控制器之间的第二数据缓冲器。在一个实施例中,还包括第三数据缓冲器,其中,第一组和第二组以级联方式耦合到存储控制器,其中,第三数据缓冲器耦合在存储控制器与第一数据缓冲器和第二数据缓冲器之间。在一个实施例中,还包括命令缓冲器,其在命令总线上耦合在NVM设备组与存储控制器之间,命令缓冲器用于在命令总线上重新驱动命令信号,并且将命令信号同步到时钟信号。在一个实施例中,还包括以下各项中的一项或多项:至少一个处理器,其通信地耦合到存储控制器;存储器控制器,其通信地耦合到存储控制器;显示器,其通信地耦合到至少一个处理器;电池,其用于为系统供电;或者网络接口,其通信地耦合到至少一个处理器。
在一个方面中,一种固态驱动器(SSD)包括:存储控制器,其包括用于耦合到主机处理器的接口,存储控制器用于管理来自主机处理器的读取请求和写入请求;以及多个存储电路,其耦合到存储控制器,多个存储电路包括:多个非易失性存储器(NVM)设备;以及数据缓冲器,其在数据总线上耦合在多个NVM设备与存储控制器之间,数据缓冲器用于在数据总线上重新驱动数据信号,并且将数据信号同步到时钟信号。
在一个实施例中,存储控制器用于首先将命令信号发送到NVM设备组,并且然后将控制信号发送到数据缓冲器,其中,控制信号用于触发数据缓冲器以将数据信号传输到NVM设备组。在一个实施例中,NVM设备用于以突发模式进行操作,以在2N个循环期间传输数据,并且数据缓冲器用于操作以在N个循环期间传输数据,其中,存储控制器用于向数据缓冲器发出连续命令,以使数据缓冲器响应于连续命令而在2N个循环内进行操作。在一个实施例中,数据缓冲器用于内部地消除停顿循环,以响应于连续命令而产生2N个循环的连续数据传输。在一个实施例中,数据缓冲器包括到存储控制器的主机接口和到NVM设备组的存储器接口,并且其中,数据缓冲器用于针对主机接口应用与存储器接口不同的配置设置,其中,不同的配置设置至少包括不同的定时配置设置。在一个实施例中,数据缓冲器用于将数据信号从存储控制器重新驱动到NVM设备,包括将数据信号同步到NVM设备的接口的协议定时。在一个实施例中,数据缓冲器用于将数据信号从NVM设备重新驱动到存储控制器,包括将数据信号同步到存储控制器接口的协议定时。在一个实施例中,多个存储电路以级联方式组织,其中,第一数据缓冲器和第二数据缓冲器分别耦合到第一多个NVM设备和第二多个NVM设备,并且第三数据缓冲器耦合在第一数据缓冲器和第二数据缓冲器与存储控制器之间。在一个实施例中,多个存储电路还包括:命令缓冲器,其在命令总线上耦合在NVM设备组和存储控制器之间,命令缓冲器用于在命令总线上重新驱动命令信号,并且将命令信号同步到时钟信号。
在一个方面中,一种用于数据访问的方法包括:在耦合在非易失性存储器(NVM)设备组与存储控制器之间的缓冲器处接收缓冲器命令,缓冲器命令用于在向NVM设备组发出的数据访问命令之后发出;以及响应于接收到缓冲器命令,在NVM设备与存储控制器之间在数据总线上重新驱动数据信号,包括将数据信号同步到时钟信号。
在一个实施例中,接收缓冲器命令包括接收两个连续命令,并且响应于接收到两个连续命令,将数据信号的两个连续突发重新驱动为数据信号的一个双倍长度突发。在一个实施例中,还包括:重新定时数据信号以内部地消除停顿循环,以响应于连续命令而产生连续数据传输的双倍长度突发。在一个实施例中,还包括:训练耦合到存储控制器的主机接口,以配置用于主机接口的设置;以及训练耦合到NVM设备的存储器接口,以配置用于存储器接口的设置,其中,训练存储器接口包括经由主机接口将固定数据模式写入缓冲器上的寄存器。在一个实施例中,在数据总线上重新驱动数据信号包括:将写入数据信号从存储控制器重新驱动到NVM设备。在一个实施例中,重新驱动写入数据信号包括:将写入数据信号同步到NVM设备的接口的协议定时。在一个实施例中,在数据总线上重新驱动数据信号包括:将读取数据信号从NVM设备重新驱动到存储控制器。在一个实施例中,重新驱动读取数据信号包括将读取数据信号同步到存储控制器接口的协议定时。在一个实施例中,在数据总线上重新驱动数据信号包括将写入数据信号从存储控制器重新驱动到NVM设备。在一个实施例中,缓冲器包括数据缓冲器,并且还包括:在耦合在非易失性存储器(NVM)设备组与存储控制器之间的命令缓冲器处接收缓冲器命令;以及响应于接收到缓冲器命令,在NVM设备与存储控制器之间在命令总线上重新驱动数据访问命令,包括将数据访问命令同步到时钟信号。在一个方面中,一种装置包括用于执行以上方法的任何实施例的用于执行用于数据访问的方法的操作的单元。在一个方面中,一种制品包括其上存储有内容的计算机可读存储介质,所述内容当被访问时,使机器执行操作以执行以上方法的任何实施例的用于数据访问的方法。
在一个方面中,缓冲器设备包括:存储器接口逻辑,其用于耦合到非易失性存储器(NVM)设备组;主机接口逻辑,其用于耦合到存储控制器,存储控制器用于管理对NVM设备的读取和写入;以及控制逻辑,其用于在数据总线上在NVM设备与存储控制器之间重新驱动数据信号,并且将数据信号同步到时钟信号。
在一个实施例中,存储控制器用于首先将命令信号发送到NVM设备组,并且然后将控制信号发送到数据缓冲器,其中,控制信号用于触发数据缓冲器以将数据信号传输到NVM设备组。在一个实施例中,NVM设备用于以突发模式进行操作,以在2N个循环期间传输数据,并且数据缓冲器用于操作以在N个循环期间传输数据,其中,存储控制器用于向数据缓冲器发出连续命令,以使数据缓冲器响应于连续命令而在2N个循环内进行操作。在一个实施例中,数据缓冲器用于内部地消除停顿循环以响应于连续命令而产生2N个连续数据传输循环。在一个实施例中,数据缓冲器包括到存储控制器的主机接口和到NVM设备组的存储器接口,并且其中,数据缓冲器应用于主机接口的不同于存储器接口的配置设置,其中,不同的配置设置至少包括不同的定时配置设置。在一个实施例中,数据缓冲器用于将数据信号从存储控制器重新驱动到NVM设备,包括将数据信号同步到NVM设备的接口的协议定时。在一个实施例中,数据缓冲器用于将数据信号从NVM设备重新驱动到存储控制器,包括将数据信号同步到存储控制器接口的协议定时。在一个实施例中,NVM设备组包括第一组并且数据缓冲器包括第一数据缓冲器,并且还包括第二NVM设备组和耦合在第二NVM设备组与存储控制器之间的第二数据缓冲器。在一个实施例中,还包括第三数据缓冲器,其中,第一组和第二组以级联方式耦合到存储控制器,其中,第三数据缓冲器耦合在存储控制器与第一数据缓冲器和第二数据缓冲器之间。在一个实施例中,还包括命令缓冲器,其在命令总线上耦合在NVM设备组与存储控制器之间,命令缓冲器用于在命令总线上重新驱动命令信号,并且将命令信号同步到时钟信号。
如本文示出的流程图提供了各种过程动作的序列的示例。流程图可以指示由软件或固件例程执行的操作以及物理操作。在一个实施例中,流程图可以示出有限状态机(FSM)的状态,其可以以硬件、软件或组合来实现。尽管以特定顺序或次序示出,但除非另有说明,否则可以修改动作的次序。因此,示出的实施例应当仅被理解为示例,并且过程可以以不同次序执行,并且一些动作可以并行执行。另外,在各种实施例中可以省略一个或多个动作;因此,并非所有动作在每个实施例中都是必需的。其他流程是可能的。
在本文中描述各种操作或功能的程度上,可以将他们描述或定义为软件代码、指令、配置、数据或组合。内容可以直接可执行(“对象”或“可执行”形式)、源代码或差异代码(“增量”或“补丁”代码)。本文描述的实施例的软件内容可以经由其上存储有内容的制品而被提供,或者经由操作通信接口以经由通信接口发送数据的方法而被提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以可由机器(例如,计算设备、电子系统等)访问的形式存储信息的任何机构,例如可记录/非可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器设备等)。通信接口包括接合到硬连线、无线、光学等的介质以与另一设备通信的任何机构,例如存储器总线接口、处理器总线接口、互联网连接、磁盘控制器等。可以通过提供配置参数或发送信号或二者来配置通信接口,以准备通信接口以提供描述软件内容的数据信号。可以经由被发送到通信接口的一个或多个命令或信号来访问通信接口。
本文描述的各种组件可以是用于执行所描述的操作或功能的单元。本文描述的每个组件包括软件、硬件或这些的组合。组件可以实现为软件模块、硬件模块、专用硬件(例如,应用特定的硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路等。
除了本文描述的内容之外,可以对本发明的所公开的实施例和实施方式进行各种修改,而不脱离其范围。因此,本文的说明和示例应当被解释为说明性的而非限制性的。应当仅通过参考以下权利要求来考量本发明的范围。
Claims (20)
1.一种系统,包括:
多个非易失性存储器(NVM)设备;
存储控制器,所述存储控制器用于管理对所述NVM设备的读取和写入;以及
数据缓冲器,所述数据缓冲器利用主机侧数据总线接口在双倍数据速率数据总线上耦合到所述存储控制器,并且所述数据缓冲器利用存储器侧数据总线接口耦合到所述NVM设备,所述数据缓冲器用于在所述存储控制器与所述NVM设备之间缓冲数据,其中,所述数据缓冲器用于:训练所述主机侧数据总线接口用于所述存储控制器与所述数据缓冲器之间的DDR(双倍数据速率)协议;以及单独地训练专用于所述NVM设备的非易失性介质的所述存储器侧数据总线接口,
其中,所述存储控制器用于:首先利用命令信号和时钟信号向所述NVM设备发送命令,其中,利用所述命令信号旁路所述数据缓冲器并且向所述数据缓冲器提供所述时钟信号;以及随后向所述数据缓冲器发送单独的控制信号以触发所述数据缓冲器在所述存储控制器与所述NVM设备之间传输数据,其中,所述数据缓冲器用于基于所述时钟信号传输所述数据。
2.如权利要求1所述的系统,其中,所述存储控制器用于首先将命令信号发送到所述NVM设备,然后将控制信号发送到所述数据缓冲器,其中,所述控制信号用于触发所述数据缓冲器将数据传输到所述NVM设备。
3.如权利要求1所述的系统,其中,所述NVM设备用于以突发模式进行操作,以在2N个周期期间传输数据,并且所述数据缓冲器用于操作以在N个周期期间传输数据,其中,所述存储控制器用于向所述数据缓冲器发出连续命令,以使所述数据缓冲器响应于所述连续命令而在2N个周期内进行操作。
4.如权利要求3所述的系统,其中,所述数据缓冲器用于内部地消除停顿周期,以响应于所述连续命令而产生2N个周期的连续数据传输。
5.如权利要求1所述的系统,其中,所述数据缓冲器用于:应用第一配置设置以将所述主机侧数据总线接口的数据信号线上的数据信号与所述主机侧数据总线接口的选通信号对齐;以及应用第二配置设置以将所述存储器侧数据总线接口的数据信号线上的数据信号与所述存储器侧数据总线接口的选通信号对齐。
6.如权利要求1所述的系统,其中,所述数据缓冲器用于将数据信号从所述存储控制器重新驱动到所述NVM设备,包括将数据同步到所述NVM设备的接口的协议定时。
7.如权利要求1所述的系统,其中,所述数据缓冲器用于将数据信号从所述NVM设备重新驱动到所述存储控制器,包括将数据同步到存储控制器接口的协议定时。
8.如权利要求1所述的系统,其中,所述NVM设备包括第一NVM设备组并且所述数据缓冲器包括第一数据缓冲器,并且还包括第二NVM设备组和耦合在所述第二NVM设备组与所述存储控制器之间的第二数据缓冲器。
9.如权利要求8所述的系统,还包括第三数据缓冲器,其中,所述第一NVM设备组和所述第二NVM设备组以级联方式耦合到所述存储控制器,其中,所述第三数据缓冲器耦合在所述存储控制器与所述第一数据缓冲器和所述第二数据缓冲器之间。
10.如权利要求1所述的系统,还包括命令缓冲器,其在命令总线上耦合在所述NVM设备与所述存储控制器之间,所述命令缓冲器用于在所述命令总线上重新驱动命令信号,并且将命令信号同步到时钟信号。
11.如权利要求1所述的系统,还包括以下各项中的一项或多项:
至少一个处理器,其通信地耦合到所述存储控制器;
存储器控制器,其通信地耦合到所述存储控制器;
显示器,其通信地耦合到至少一个处理器;
电池,其用于为所述系统供电;或者
网络接口,其通信地耦合到至少一个处理器。
12.如权利要求1所述的系统,其中,所述非易失性介质包括NAND闪速存储器。
13.一种双列直插式存储器模块(DIMM),包括:
存储控制器,所述存储控制器用于管理到所述DIMM的非易失性存储器的读取请求和写入请求;以及
多个存储电路,所述多个存储电路耦合到所述存储控制器,所述多个存储电路包括:
多个非易失性存储器(NVM)设备;以及
数据缓冲器,所述数据缓冲器利用主机侧数据总线接口在双倍数据速率数据总线上耦合到所述存储控制器,并且所述数据缓冲器利用存储器侧数据总线接口耦合到所述NVM设备,所述数据缓冲器用于在所述存储控制器与所述多个NVM设备之间缓冲数据,其中,所述数据缓冲器用于:训练所述主机侧数据总线接口用于所述存储控制器与所述数据缓冲器之间的DDR协议;以及单独地训练专用于所述多个NVM设备的非易失性介质的所述存储器侧数据总线接口,
其中,所述存储控制器用于:首先利用命令信号和时钟信号向所述NVM设备发送命令,其中,利用所述命令信号旁路所述数据缓冲器并且向所述数据缓冲器提供所述时钟信号;以及随后向所述数据缓冲器发送单独的控制信号以触发所述数据缓冲器在所述存储控制器与所述多个NVM设备之间传输数据,其中,所述数据缓冲器用于基于所述时钟信号传输所述数据。
14.如权利要求13所述的DIMM,其中,所述存储控制器用于首先将命令信号发送到所述多个NVM设备,然后将控制信号发送到所述数据缓冲器,其中,所述控制信号用于触发所述数据缓冲器将数据传输到所述多个NVM设备。
15.如权利要求13所述的DIMM,其中,所述数据缓冲器用于将数据信号从所述存储控制器重新驱动到所述多个NVM设备,包括将数据同步到所述多个NVM设备的接口的协议定时。
16.如权利要求13所述的DIMM,其中,所述数据缓冲器用于将数据信号从所述多个NVM设备重新驱动到所述存储控制器,包括将数据同步到存储控制器接口的协议定时。
17.如权利要求13所述的DIMM,其中,所述多个存储电路以级联方式组织,其中,第一数据缓冲器和第二数据缓冲器分别耦合到所述多个NVM设备中的第一多个NVM设备和第二多个NVM设备,并且第三数据缓冲器耦合在所述第一数据缓冲器和所述第二数据缓冲器与所述存储控制器之间。
18.如权利要求13所述的DIMM,其中,所述多个存储电路还包括:
命令缓冲器,其在命令总线上耦合在所述多个NVM设备与所述存储控制器之间,所述命令缓冲器用于在所述命令总线上重新驱动命令信号,并且将命令信号同步到时钟信号。
19.如权利要求13所述的DIMM,其中,所述数据缓冲器用于:应用第一配置设置以将所述主机侧数据总线接口的数据信号线上的数据信号与所述主机侧数据总线接口的选通信号对齐;以及应用第二配置设置以将所述存储器侧数据总线接口的数据信号线上的数据信号与所述存储器侧数据总线接口的选通信号对齐。
20.如权利要求13所述的DIMM,其中,所述非易失性介质包括NAND闪速存储器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/201,370 | 2016-07-01 | ||
US15/201,370 US10459855B2 (en) | 2016-07-01 | 2016-07-01 | Load reduced nonvolatile memory interface |
CN201780033934.7A CN109313617B (zh) | 2016-07-01 | 2017-06-02 | 负载减少的非易失性存储器接口 |
PCT/US2017/035716 WO2018004996A1 (en) | 2016-07-01 | 2017-06-02 | Load reduced nonvolatile memory interface |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780033934.7A Division CN109313617B (zh) | 2016-07-01 | 2017-06-02 | 负载减少的非易失性存储器接口 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117032970A true CN117032970A (zh) | 2023-11-10 |
Family
ID=60787806
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780033934.7A Active CN109313617B (zh) | 2016-07-01 | 2017-06-02 | 负载减少的非易失性存储器接口 |
CN202311023111.XA Pending CN117032970A (zh) | 2016-07-01 | 2017-06-02 | 负载减少的非易失性存储器接口 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780033934.7A Active CN109313617B (zh) | 2016-07-01 | 2017-06-02 | 负载减少的非易失性存储器接口 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10459855B2 (zh) |
CN (2) | CN109313617B (zh) |
DE (1) | DE112017003334T5 (zh) |
WO (1) | WO2018004996A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10679722B2 (en) * | 2016-08-26 | 2020-06-09 | Sandisk Technologies Llc | Storage system with several integrated components and method for use therewith |
US20180059945A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Media Controller with Response Buffer for Improved Data Bus Transmissions and Method for Use Therewith |
US20180059943A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Media Controller and Method for Management of CPU-Attached Non-Volatile Memory |
US10613772B2 (en) * | 2017-03-16 | 2020-04-07 | Qualcomm Incorporated | Methods and apparatuses for copying a data page in an unmanaged flash memory device |
US10140222B1 (en) * | 2017-07-06 | 2018-11-27 | Micron Technology, Inc. | Interface components |
US10514748B2 (en) * | 2017-09-27 | 2019-12-24 | Western Digital Technologies, Inc. | Reactive power management for non-volatile memory controllers |
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) |
KR102637166B1 (ko) | 2018-04-17 | 2024-02-16 | 삼성전자주식회사 | 대용량 데이터를 저장하는 네트워크 스토리지 장치 |
KR102519572B1 (ko) | 2018-05-11 | 2023-04-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP2020047340A (ja) | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 不揮発性メモリ及びメモリシステム |
CN110989918B (zh) * | 2018-10-03 | 2023-03-28 | 慧荣科技股份有限公司 | 写入控制方法以及数据存储装置及其控制器 |
KR20200126678A (ko) * | 2019-04-30 | 2020-11-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11139010B2 (en) | 2018-12-11 | 2021-10-05 | SK Hynix Inc. | Memory system and operating method of the memory system |
KR20200126666A (ko) | 2019-04-30 | 2020-11-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11404097B2 (en) | 2018-12-11 | 2022-08-02 | SK Hynix Inc. | Memory system and operating method of the memory system |
KR20200124045A (ko) | 2019-04-23 | 2020-11-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200137548A (ko) | 2019-05-30 | 2020-12-09 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 테스트 동작 방법 |
CN110060721A (zh) * | 2019-04-08 | 2019-07-26 | 苏州汇峰微电子有限公司 | 一种动态随机存储器数据传输通道 |
US11132292B2 (en) * | 2019-12-10 | 2021-09-28 | Micron Technology, Inc. | Active input/output expander of a memory sub-system |
WO2021136881A1 (en) * | 2020-01-03 | 2021-07-08 | Nokia Technologies Oy | Method for real time texture adaptation |
US11150842B1 (en) * | 2020-04-20 | 2021-10-19 | Western Digital Technologies, Inc. | Dynamic memory controller and method for use therewith |
US11281399B2 (en) | 2020-06-24 | 2022-03-22 | Western Digital Technologies, Inc. | Dual-interface storage system and method for use therewith |
US11442665B2 (en) | 2020-12-04 | 2022-09-13 | Western Digital Technologies, Inc. | Storage system and method for dynamic selection of a host interface |
CN115145487A (zh) * | 2022-07-01 | 2022-10-04 | 英韧科技(上海)有限公司 | 用于存储器设备的指令传输方法、存储系统 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3369227B2 (ja) | 1992-11-09 | 2003-01-20 | 株式会社東芝 | プロセッサ |
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 |
US7076678B2 (en) | 2002-02-11 | 2006-07-11 | Micron Technology, Inc. | Method and apparatus for data transfer |
US7234099B2 (en) | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
DE102004004796B4 (de) * | 2004-01-30 | 2007-11-29 | Infineon Technologies Ag | Vorrichtung zur Datenübertragung zwischen Speichern |
US7437497B2 (en) * | 2004-08-23 | 2008-10-14 | Apple Inc. | Method and apparatus for encoding memory control signals to reduce pin count |
US7571296B2 (en) | 2004-11-11 | 2009-08-04 | Nvidia Corporation | Memory controller-adaptive 1T/2T timing control |
US7620773B2 (en) * | 2005-04-15 | 2009-11-17 | Microsoft Corporation | In-line non volatile memory disk read cache and write buffer |
US9384818B2 (en) | 2005-04-21 | 2016-07-05 | Violin Memory | Memory power management |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8397013B1 (en) * | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
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 |
US7577039B2 (en) * | 2005-11-16 | 2009-08-18 | Montage Technology Group, Ltd. | Memory interface to bridge memory buses |
US7793059B2 (en) * | 2006-01-18 | 2010-09-07 | Apple Inc. | Interleaving policies for flash memory |
US7769942B2 (en) * | 2006-07-27 | 2010-08-03 | Rambus, Inc. | Cross-threaded memory system |
US8272781B2 (en) | 2006-08-01 | 2012-09-25 | Intel Corporation | Dynamic power control of a memory device thermal sensor |
US20080114924A1 (en) * | 2006-11-13 | 2008-05-15 | Jack Edward Frayer | High bandwidth distributed computing solid state memory storage system |
JP5130754B2 (ja) * | 2007-03-15 | 2013-01-30 | 富士通セミコンダクター株式会社 | 半導体集積回路及びメモリシステム |
US8154918B2 (en) | 2008-06-30 | 2012-04-10 | Sandisk Il Ltd. | Method for page- and block based scrambling in non-volatile memory |
US8230138B2 (en) * | 2008-11-28 | 2012-07-24 | Panasonic Corporation | Memory control device, data processor, and data read method |
US9001607B2 (en) | 2009-08-19 | 2015-04-07 | Samsung Electronics Co., Ltd. | Method and design for high performance non-volatile memory |
US8862966B2 (en) | 2009-09-09 | 2014-10-14 | Advanced Micro Devices, Inc. | Adjustment of write timing based on error detection techniques |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
US8665665B2 (en) | 2011-03-30 | 2014-03-04 | Mediatek Inc. | Apparatus and method to adjust clock duty cycle of memory |
US8607089B2 (en) * | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US10198350B2 (en) | 2011-07-28 | 2019-02-05 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US10380022B2 (en) | 2011-07-28 | 2019-08-13 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US8934317B2 (en) * | 2012-01-13 | 2015-01-13 | Samsung Electronics Co., Ltd. | Semiconductor memory devices having internal clock signals and memory systems including such memory devices |
KR101962784B1 (ko) * | 2012-10-09 | 2019-03-27 | 삼성전자주식회사 | 온도에 따라 차별화된 리드 동작 및 라이트 동작을 갖는 반도체 메모리 장치 |
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 |
JP6212367B2 (ja) | 2012-12-28 | 2017-10-11 | キヤノンイメージングシステムズ株式会社 | 情報処理装置、携帯端末、デバイス制御システム、およびその制御方法 |
US9990246B2 (en) | 2013-03-15 | 2018-06-05 | Intel Corporation | Memory system |
KR102171262B1 (ko) * | 2013-12-26 | 2020-10-28 | 삼성전자 주식회사 | 입력 버퍼와 입력 버퍼를 포함하는 플래쉬 메모리 장치 |
KR102193681B1 (ko) * | 2014-01-28 | 2020-12-21 | 삼성전자주식회사 | Dll을 이용한 ilpll 회로 |
US20150261446A1 (en) * | 2014-03-12 | 2015-09-17 | Futurewei Technologies, Inc. | Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller |
KR102112024B1 (ko) * | 2014-04-14 | 2020-05-19 | 삼성전자주식회사 | 데이터 스토리지 시스템에서의 스트로브 신호 성형방법 및 그에 따른 스트로브 신호 성형장치 |
US9484070B2 (en) | 2014-04-30 | 2016-11-01 | Micron Technology, Inc. | Apparatuses supporting multiple interface types and methods of operating the same |
US9792965B2 (en) | 2014-06-17 | 2017-10-17 | Rambus Inc. | Memory module and system supporting parallel and serial access modes |
US20160179388A1 (en) * | 2014-12-18 | 2016-06-23 | CNEXLABS, Inc. | Method and apparatus for providing programmable nvm interface using sequencers |
EP3230982A4 (en) | 2015-01-28 | 2018-08-29 | Hewlett-Packard Development Company, L.P. | Supporting differfent types of memory devices |
KR20160102770A (ko) * | 2015-02-23 | 2016-08-31 | 삼성전자주식회사 | 메모리 모듈, 이를 포함하는 메모리 시스템, 및 이를 포함하는 데이터 저장 시스템 |
KR20170024807A (ko) * | 2015-08-26 | 2017-03-08 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이를 위한 수신회로 |
US10031677B1 (en) | 2015-10-14 | 2018-07-24 | Rambus Inc. | High-throughput low-latency hybrid memory module |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US9653147B1 (en) * | 2015-12-02 | 2017-05-16 | Integrated Device Technology Inc. | Asymmetrical emphasis in a memory data bus driver |
US10163508B2 (en) | 2016-02-26 | 2018-12-25 | Intel Corporation | Supporting multiple memory types in a memory slot |
US10108564B2 (en) * | 2016-03-28 | 2018-10-23 | Qualcomm Incorporated | Active and stall cycle based dynamic scaling of processor frequency and bus bandwidth |
US10152262B2 (en) * | 2016-05-03 | 2018-12-11 | Micron Technology, Inc. | Memory access techniques in memory devices with multiple partitions |
-
2016
- 2016-07-01 US US15/201,370 patent/US10459855B2/en active Active
-
2017
- 2017-06-02 CN CN201780033934.7A patent/CN109313617B/zh active Active
- 2017-06-02 DE DE112017003334.9T patent/DE112017003334T5/de active Pending
- 2017-06-02 WO PCT/US2017/035716 patent/WO2018004996A1/en active Application Filing
- 2017-06-02 CN CN202311023111.XA patent/CN117032970A/zh active Pending
-
2019
- 2019-10-25 US US16/664,535 patent/US11500795B2/en active Active
-
2022
- 2022-10-21 US US17/971,201 patent/US11789880B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11500795B2 (en) | 2022-11-15 |
US20230116774A1 (en) | 2023-04-13 |
US11789880B2 (en) | 2023-10-17 |
US20180004688A1 (en) | 2018-01-04 |
US10459855B2 (en) | 2019-10-29 |
DE112017003334T5 (de) | 2019-03-21 |
US20200133899A1 (en) | 2020-04-30 |
CN109313617A (zh) | 2019-02-05 |
WO2018004996A1 (en) | 2018-01-04 |
CN109313617B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313617B (zh) | 负载减少的非易失性存储器接口 | |
JP7456083B2 (ja) | ロウハンマ緩和のホスト支援のためのリフレッシュコマンド制御 | |
TWI709853B (zh) | 特定記憶體裝置之自我更新進入與退出技術 | |
TWI721003B (zh) | 記憶體裝置及用於記憶體管理的系統 | |
CN110023914B (zh) | 用于重复写入存储器的可编程数据样式 | |
JP7235226B2 (ja) | 記憶デバイスにおけるシステムタイムスタンプを用いたバックグラウンドデータ・リフレッシュ | |
CN109582596B (zh) | 从具有不同读取和写入定时的模式寄存器进行读取 | |
CN108604456B (zh) | 在存储器插槽中支持多个存储器类型 | |
CN109478177B (zh) | 双数据率命令总线 | |
JP2020166832A5 (zh) | ||
CN109661654B (zh) | 存储器中的差错校验和纠正码的扩展应用 | |
TWI718213B (zh) | 彈性dll(延遲鎖定迴路)校準技術 | |
US11750190B2 (en) | Encoded on-die termination for efficient multipackage termination | |
KR20210038313A (ko) | 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경 | |
US20180348838A1 (en) | Techniques to change a mode of operation for a memory device | |
US11200113B2 (en) | Auto-increment write count for nonvolatile memory | |
JP2021149931A (ja) | 双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル | |
CN115700944A (zh) | 闭环压缩连接器引脚 | |
CN113434330A (zh) | 行可寻址且列可寻址的存储器中的动态数据的错误纠正 | |
NL2031713B1 (en) | Double fetch for long burst length memory data transfer | |
CN115203080A (zh) | 避免在低功率下存取相干存储器设备时处理器停止 | |
CN115858438A (zh) | 用于存储器模块数据宽度的灵活配置的使能逻辑 | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
CN116343845A (zh) | 用于高频通信中的串扰减少的封装布线 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |