CN108074593A - 用于非易失性存储器的接口 - Google Patents
用于非易失性存储器的接口 Download PDFInfo
- Publication number
- CN108074593A CN108074593A CN201710196664.3A CN201710196664A CN108074593A CN 108074593 A CN108074593 A CN 108074593A CN 201710196664 A CN201710196664 A CN 201710196664A CN 108074593 A CN108074593 A CN 108074593A
- Authority
- CN
- China
- Prior art keywords
- port
- order
- data
- controller
- bare die
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/025—Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
-
- 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/1048—Data bus control circuits, e.g. precharging, presetting, equalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- 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/10—Programming or data input circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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
- 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/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Abstract
公开了用于访问非易失性存储器的装置、系统、方法和计算机程序产品。一种装置包括一个或多个存储器裸片。存储器裸片包括非易失性存储器单元阵列、一组端口、以及裸片上控制器。所述一组端口包括第一端口和第二端口。所述第一端口包括第一多个电触头,并且所述第二端口包括第二多个电触头。所述裸片上控制器经由所述一组端口进行通信以接收命令和地址信息并且传送用于对所述非易失性存储器单元阵列的数据操作的数据。所述裸片上控制器在第一模式中使用所述第一端口和所述第二端口,并且在第二模式中使用所述第一端口而不使用所述第二端口。所述第二模式提供了与传统类型的存储器裸片的接口的兼容性。
Description
相关申请的交叉引用
本专利申请要求Jiwang Lee等人于2016年11月11日提交的印度专利申请号201641038622的优先权,出于所有目的通过引用将所述申请的全部内容结合在此。
技术领域
本公开内容在多个不同实施例中涉及非易失性存储器,并且更具体地涉及用于访问非易失性存储器的接口。
背景技术
随着非易失性存储器技术以比先前的非易失性技术更高的速度出现,与先前非易失性技术相关联的接口和协议可能不适合于更高速度的非易失性存储器技术。类似地,尽管易失性存储器接口和协议可以用于使用易失性存储器的高速数据传送,但是易失性存储器接口和协议可能不适合于非易失性存储器技术的不同延时或持久性。
发明内容
呈现了多种用于访问非易失性存储器的装置。在一个实施例中,一种装置包括一个或多个存储器裸片。在某一实施例中,存储器裸片包括非易失性存储器单元阵列。在另一实施例中,存储器裸片包括一组端口。在一个实施例中,所述一组端口包括第一端口和第二端口。在某一实施例中,所述第一端口包括第一多个电触头,并且所述第二端口包括第二多个电触头。在一个实施例中,存储器裸片包括裸片上控制器,所述裸片上控制器经由所述一组端口进行通信以接收命令和地址信息并且传送对所述非易失性存储器单元阵列的数据操作的数据。在某一实施例中,所述裸片上控制器在第一模式中使用第一端口和第二端口,并且在第二模式中使用第一端口而不使用第二端口。在另一实施例中,所述第二模式提供了与传统类型的存储器裸片的接口的兼容性。
在另一实施例中,一种装置包括在存储器裸片上的非易失性存储器单元阵列、以及裸片上控制器。在一个实施例中,所述裸片上控制器被配置成用于在命令队列的输入级处对用于对所述非易失性存储器单元阵列的数据操作的多个命令进行排队。在某一实施例中,所述裸片上控制器被配置成用于响应于来自设备控制器的时钟脉冲序列而服务来自所述命令队列的输出级的命令。在另一实施例中,所述裸片上控制器被配置成用于响应于所述时钟脉冲的计数满足阈值而将所述命令队列的输出级移位到后续命令。
呈现了多种用于访问非易失性存储器的系统。在一个实施例中,一种系统包括一个或多个存储器裸片以及设备控制器。在某一实施例中,存储器裸片包括非易失性存储器单元阵列。在另一实施例中,存储器裸片包括一组端口。在一个实施例中,所述一组端口包括第一端口和第二端口。在某一实施例中,所述第一端口包括第一多个电触头,并且所述第二端口包括第二多个电触头。在一个实施例中,存储器裸片包括裸片上控制器,所述裸片上控制器在命令队列的输入级处对多个命令进行排队,响应于来自设备控制器的时钟脉冲序列而服务来自所述命令队列的输出级的命令,并且响应于所述时钟脉冲的计数满足阈值而将所述命令队列的输出级移位到后续命令。在一个实施例中,所述设备控制器针对选定裸片经由所述一组端口与所述裸片上控制器通信,以发送命令和地址信息并且传送用于对所述选定裸片的数据操作的数据。在某一实施例中,所述设备控制器在第一模式中使用第一端口和第二端口,并且在第二模式中使用第一端口而不使用第二端口。在另一实施例中,所述第二模式提供了与传统类型的存储器裸片的接口的兼容性。
附图简要说明
下面参考附图中所示的具体实施例阐述更具体的描述。应当理解,这些附图仅仅描绘了本公开内容的某些实施例、并且因此不应认为是对其范围的限制,通过使用附图,以附加特征和细节来描述和解释本公开内容,在附图中:
图1是包括接口部件的系统的一个实施例的示意性框图;
图2是展示非易失性存储器元件的一个实施例的示意性框图;
图3是展示非易失性存储器元件的另一实施例的示意性框图;
图4A是展示用于存储器裸片的外围部件的一个实施例的示意性框图;
图4B是展示用于存储器裸片的外围部件的另一实施例的示意性框图;
图5A是展示用于存储器裸片的外围部件的一个实施例的示意性框图;
图5B是展示用于存储器裸片的外围部件的另一实施例的示意性框图;
图6A是展示用于非易失性存储器接口的时序的一个实施例的示意性方框时间线;
图6B是展示用于非易失性存储器接口的时序的另一实施例的示意性方框时间线;
图6C是展示用于非易失性存储器接口的时序的另一实施例的示意性方框时间线;
图7A是展示用于非易失性存储器的裸片上控制器的一个实施例的示意性框图;
图7B是展示用于非易失性存储器的裸片上控制器的另一实施例的示意性框图;并且
图8是展示用于管理非易失性存储器的命令队列的方法的一个实施例的示意性流程图。
具体实施方式
本公开内容的多个方面可以体现为装置、系统、方法或计算机程序产品。因此,本公开的各方面可以采取如下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或将软件和硬件方面相结合的实施例,在此通常可以被称为“电路”、“模块”、“装置”或“系统”。而且,本公开的各方面可以采取在一个或多个非瞬态计算机可读存储介质中具体化的计算机程序产品的形式,所述计算机可读存储介质存储有计算机可读和/或可执行程序代码。
本说明书中所描述的功能单元中的许多功能单元已经被标记为模块,以便更具体地强调其实现独立性。例如,模块可以实现为包括定制VLSI电路或门阵列、成品半导体(诸如逻辑芯片、晶体管或其他离散部件)的硬件电路。模块还可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等。
模块还可以至少部分地在由各种类型的处理器执行的软件中实现。例如,可执行代码的识别模块可以包括一个或多个计算机指令的物理或逻辑块,其可以例如被组织为对象、进程或函数。然而,识别模块的可执行代码不必在物理上定位在一起,而是可以包括存储在不同位置中的不同指令,当逻辑上结合在一起时,这些指令包括模块并且实现所述模块的所阐述的目的。
实际上,可执行代码的模块可以包括单个指令、或许多指令,并且甚至可以在若干不同的代码段上、不同程序之中、跨若干存储器设备而分布。当以软件实现模块或模块的多个部分时,软件部分可以存储在一个或多个计算机可读和/或可执行存储介质上。可以采用一个或多个计算机可读存储介质的任意组合。例如,计算机可读存储介质可以包括但不限于电子、磁、光、电磁、红外、电阻(例如,电阻式随机存取存储器(ReRAM)、存储器电阻器(忆阻器)存储器、可编程金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫族化物RAM或C-RAM等)或半导体系统、装置或设备或上述的任何合适的组合,但将不包括传播信号。在本文的上下文中,计算机可读和/或可执行存储介质可以是任何可以包含或存储程序的有形介质和/或非瞬态介质,所述程序可以被指令执行系统、装置、处理器或设备使用或者与其结合使用。
可以以一种或多种编程语言的任意组合来编写用于实施本公开的各方面的操作的计算机程序代码,所述编程语言包括面向对象的编程语言(诸如Python、Java、Smalltalk、C++、C#、对象C等)、常规的程序化编程语言(诸如“C”编程语言、脚本编程语言、和/或其他类似的编程语言)。程序代码可以通过数据网络等部分地或者全部在用户的计算机和/或远程计算机或服务器中的一项或多项上执行。
如在此使用的部件包括有形的、物理的、非瞬态设备。例如,部件可以实现为包括定制VLSI电路、门阵列或其他集成电路的硬件逻辑电路;成品半导体,如逻辑芯片、晶体管或其他分立设备;和/或其他机械或电气设备。部件还可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等。部件可以包括通过印刷电路板(PCB)等的电导线与一个或多个其他部件进行电通信的一个或多个硅集成电路设备(例如,芯片、裸片、裸片平面、封装体)或其他离散电气设备。在某些实施例中,在此描述的模块中的每个模块可以可替代地由部件体现或者被实现为部件。
贯穿本说明书对“一个实施例(one embodiment)”、“一种实施例(anembodiment)”或类似语言的引述意味着在本公开的至少一个实施例中包括了所描述的与所述实施例相联系的具体特征、结构或特性。因此,除非另外明确规定,贯穿本说明书的短语“在一个实施例中(in one embodiment)”、“在一实施例中(in an embodiment)”或类似的语言的出现可以但并不一定都指代同一个实施例,而是意味着“一个或多个而不是所有的实施例”。术语“包括”、“包含”、“具有”及其变体指“包括但不限于”,除非另外明确规定。列举的项目列表并不暗示这些项目中的任意一个或所有是互斥的和/或互相包括的,除非另外明确规定。术语“一个”、“一种”和“该”还指“一个或多个”,除非另外明确规定。
以下参照根据本公开的实施例的方法、装置、系统和计算机程序产品的示意性流程图和/或示意性框图来描述本公开的各方面。将理解的是,示意性流程图和/或示意性框图中的每个方框以及示意性流程图和/或示意性框图中各方框的组合可由计算机程序指令来实现。可以将这些计算机程序指令提供至计算机或其他可编程数据处理装置的处理器以制造机器,从而使得经由处理器或其他可编程数据处理装置执行的指令创建用于实施示意性流程图和/或示意性框图方框或多个方框中指定的功能/动作的装置。
还应该指出的是,在某些替代性实现方式中,方框中标明的功能可以不按图中标记的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两方框,或有时候可以按相反的顺序执行所述方框。可以构想到在功能、逻辑、或效果上与展示的附图的一个或多个方框、或其部分等效的其他步骤和方法。虽然可以在流程图和/或框图中采用各种箭头类型和线条类型,但应该理解它们并非限制对应实施例的范围。例如,箭头可以指示所描绘的实施例列举的步骤之间未指定持续时间的等待或监测时期。
在以下详细描述中,参考了形成该描述的一部分的附图。前述概述仅是说明性的,并且不旨在以任何方式进行限制。除了上文描述的说明性方面、实施例以及特征之外,进一步方面、实施例以及特征通过参考附图以及以下详细描述将变得清楚。对每张附图中的元件的描述可以指代前面图中的元件。相同的数字可以指代附图中相同的元件,包括替代性实施例的相同元件。
图1是包括用于非易失性存储器设备120的接口部件150的系统100的一个实施例的框图。接口部件150可以是非易失性存储器介质控制器126、非易失性存储器元件123、设备驱动器等的一部分和/或与之通信。接口部件150可以在计算设备110的非易失性存储器系统102上操作,所述计算设备可以包括处理器111、易失性存储器112、以及通信接口113。处理器111可以包括一个或多个中央处理单元、一个或多个通用处理器、一个或多个专用处理器、一个或多个虚拟处理器(例如,计算设备110可以是在主机内操作的虚拟机)、一个或多个处理器核等。通信接口113可以包括被配置成用于通信地将计算设备110和/或非易失性存储器控制器126耦合至通信网络115(诸如因特网协议(IP)网络、存储区域网络(SAN)、无线网络、有线网络等)的一个或多个网络接口。
在各实施例中,非易失性存储器设备120可以布置在相对于计算设备110的一个或多个不同的位置中。在一个实施例中,非易失性存储器设备120包括一个或多个非易失性存储器元件123(诸如半导体芯片或封装体或者布置在一个或多个印刷电路板上的其他集成电路设备)、存储壳体、和/或其他机械和/或电支持结构。例如,非易失性存储器设备120可以包括一个或多个直插存储器模块(DIMM)卡、一个或多个扩展卡和/或子卡、固态驱动器(SSD)或其他硬盘驱动设备,和/或可以具有另一种存储器和/或存储形状因子。非易失性存储器设备120可以与计算设备110的母板集成和/或安装在计算设备的母板上、安装在计算设备110的端口和/或槽中、安装在不同的计算设备110上和/或网络115上的专用存储电器上、通过外部总线(例如,外部硬盘驱动器)与计算设备110进行通信等。
在一个实施例中,非易失性存储器设备120可以布置在处理器111(例如,代替易失性存储器112在与易失性存储器112相同的存储器总线上、在与易失性存储器112不同的存储器总线上等)的存储器总线上。在进一步实施例中,非易失性存储器设备120可以布置在计算设备110的外围总线上,诸如高速外围部件互联(PCI高速或PCIe)总线、串行高级技术附件(SATA)总线、并行高级技术附件(PATA)总线、小型计算机系统接口(SCSI)总线、火线总线、光纤通道连接、通用串行总线(USB)、PCIe高级切换(PCIe-AS)总线等。在另一实施例中,非易失性存储器设备120可以布置在数据网络115上,诸如以太网、无限带宽网络、通过网络115的SCSI RDMA、存储区域网络(SAN)、局域网(LAN)、广域网(WAN,诸如因特网)、另一有线和/或无线网络115等。
计算设备110可以进一步包括非瞬态、计算机可读存储介质114。计算机可读存储介质114可以包括被配置成用于使计算设备110(例如,处理器111)执行在此公开的方法中的一种或多种方法的步骤的可执行指令。可替代地或另外,接口部件150的一个或多个部分可以实施为存储在非暂时性存储介质114上的一个或多个计算机可读指令。
在所描绘的实施例中,非易失性存储器系统102包括接口部件150。在一个实施例中,接口部件150被配置成用于针对非易失性存储器件120和/或一个或多个非易失性存储器元件123上的数据操作传输和接收数据。例如,接口部件150可以包括非易失性存储器介质控制器的硬件、一个或多个非易失性存储器元件123的硬件等。在一个实施例中,接口部件150可以包括具有用于非易失性存储器件120和/或元件123的第一多个电触头的第一端口152、以及具有用于非易失性存储器件120和/或元件123的第二多个电触头的第二端口154。接口部件150可以支持多种访问模式,如可以提供对非易失性存储器介质122的一个或多个独特特征的全速和/或访问的第一模式(如,串模式),可以对不同访问协议(如,仿真不同类型的存储器介质122(如NAND闪存)的较旧的访问协议等)提供支持的第二模式(如,传统模式或兼容模式)。例如,在一个实施例中,非易失性存储器介质122可以包括如ReRAM的电阻式存储器介质、忆阻器存储器、可编程金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫族化物RAM或C-RAM)等,并且接口部件150可以为配置为使用传统访问些以的客户端116提供两种访问模式,一种模式包括仿真NAND快闪访问协议的传统或兼容模式(如,NAND快闪切换模式)等。
在第一模式(例如,串模式、本地模式等)中,第一端口152可以接收用于在非易失性存储器设备120和/或元件123上的数据操作的命令和/或地址信息,而第二端口154传输所述数据操作的数据(例如,从客户端116接收用于写请求的数据,向客户116发送用于读请求的数据等)。在第二模式(例如,传统模式、兼容模式等)中,第一端口152可以接收用于数据操作的命令和地址信息并且传输用于这些操作的数据(例如,使得第二模式中未使用第二端口154)。接口部件150可以包括存储有待在一个或多个非易失性存储器元件123上执行的多个命令的命令队列,即使这些命令处于不同的模式亦是如此。
在某些实施例中,接口部件150可以根据在一个或多个命令和地址选通线上接收到的第一时钟/选通信号来锁存和/或时钟化用于一个或多个非易失性存储器元件123(例如,集成电路芯片、封装件、裸片、裸片平面或非易失性存储器介质122的其他分立单元)的命令的命令和地址信息。接口部件150可以根据在一个或多个数据选通线上接收到的第二时钟信号来锁存和/或时钟化用于一个或多个非易失性存储器元件123的命令的数据。
以这种方式,在某些实施例中,接口部件150可以在非易失性存储器介质控制器126和非易失性存储器元件123之间没有自由运行时钟地操作,而是依赖于一个或多个命令和地址选通信号和/或一个或多个数据选通信号。如下面更详细描述的,在一个实施例中,自由运行的时钟包括贯穿多个命令很少或没有中断地传输(例如,从控制器126到非易失性存储器元件123等)的交替定时信号,以提供用于所述多个命令和/或其他操作的定时。在某些实施例中,当控制器126处于通电状态时,自由运行的时钟可以是基本上恒定的和/或连续的。在一个实施例中,接口部件150可以基于时钟使能信号中的转变对命令和地址选通和/或数据选通的感测进行计时,从而避免使用自由运行的时钟。如本文所使用的选通和/或选通信号包括针对单个命令和/或操作或更少(例如针对命令和/或操作的一部分)所传输(例如,从控制器126到非易失性存储器元件123等)的临时定时信号。
在一个实施例中,接口部件150可以包括一个或多个非易失性存储器设备120的逻辑硬件,如非易失性存储器介质控制器126、非易失性存储器元件123、设备控制器、现场可编程门阵列(FPGA)或其他可编程逻辑、用于FPGA或其他可编程逻辑的固件、用于在微控制器上执行的微代码、专用集成电路(ASIC)等。在另一实施例中,接口部件150可以包括存储在计算机可读存储介质114上用于在处理器111上执行的可执行软件代码,如设备驱动器等。在另一实施例中,接口部件150可以包括可执行软件代码和逻辑硬件两者的组合。
在一个实施例中,接口部件150被配置成用于经由总线125或类似物接收来自设备驱动器或其他可执行应用的存储请求。接口部件150可以进一步被配置成用于经由总线125向/从设备驱动器和/或存储客户端116传输数据。因此,在一些实施例中,接口部件150可以包括一个或多个直接存储器访问(DMA)模块、远程DMA模块、总线控制器、桥接器、缓冲器等和/或与其通信,以便于传输存储请求和相关联的数据。在另一实施例中,接口部件150可以接收作为来自存储客户端116的API调用、作为IO-CTL命令等的存储请求。
根据多个不同实施例,与一个或多个接口部件150通信的非易失性存储器控制器126可以管理一个或多个非易失性存储器设备120和/或非易失性存储器元件123。(多个)非易失性存储器设备120可以包括记录设备、存储器设备、和/或存储设备,诸如被安排成和/或分区为多个可寻址介质存储位置的(多个)固态存储设备和/或(多个)半导体存储设备。如本文中所使用的,介质存储位置指存储器的任何物理单元(例如,非易失性存储器设备120上的任何量的物理存储介质)。存储器单元可以包括但不限于:页、存储器划分、块、扇区、物理存储位置(例如,逻辑页、逻辑块)的集合或集等。
在某些实施例中,设备驱动程序和/或非易失性存储器介质控制器126可以将逻辑地址空间134呈现给存储客户端116。如在此使用的,逻辑地址空间134指代存储器资源的逻辑表示。逻辑地址空间134可以包括多个(例如,一系列)逻辑地址。如在此使用的,逻辑地址指用于引用存储器资源(例如,数据)的任何标识符,包括但不限于:逻辑块地址(LBA)、柱面/磁头/扇区(CHS)地址、文件名、对象标识符、索引节点、通用唯一标识符(UUID)、全局唯一标识符(GUID)、散列码、签名、索引条目、范围、程度等等。
用于非易失性存储器设备120的设备驱动程序可以维护元数据135(诸如逻辑到物理地址映射结构)以便将逻辑地址空间134的逻辑地址映射至(多个)非易失性存储器设备120上的介质存储位置。设备驱动程序可以被配置成用于向一个或多个存储客户端116提供存储服务。存储客户端116可以包括在计算设备110上操作的本地存储客户端116和/或经由网络115和/或网络接口113可访问的远程存储客户端116。存储客户端116可以包括但不限于:操作系统、文件系统、数据库应用、服务器应用、内核级进程、用户级进程、应用等。
设备驱动程序可以通信地耦合至一个或多个非易失性存储器设备120。所述一个或多个非易失性存储器设备120可以包括不同类型的非易失性存储器设备,所述非易失性存储器设备包括但不限于:固态存储设备、半导体存储设备、SAN存储资源等。所述一个或多个非易失性存储器设备120可以包括一个或多个对应的非易失性存储器介质控制器126和非易失性存储器介质122。设备驱动器可以经由传统块I/O接口131提供对所述一个或多个非易失性存储器设备120的访问。另外,设备驱动器可以通过SCM接口132提供对增强的功能的访问。元数据135可以用于管理和/或跟踪通过块I/O接口131、SCM接口132、缓存接口133、或其他相关接口中任一接口所执行的数据操作。
缓存接口133可以暴露经由用于非易失性存储器设备120的设备驱动程序可访问的特定缓存特征。而且,在一些实施例中,呈现给存储客户端116的SCM接口132提供对由所述一个或多个非易失性存储器设备120和/或所述一个或多个非易失性存储器介质控制器126实施的数据转换的访问。
设备驱动程序可以通过一个或多个接口向存储客户端116呈现逻辑地址空间134。如以上讨论的,逻辑地址空间134可以包括多个逻辑地址,每个逻辑地址与所述一个或多个非易失性存储器设备120上的相应介质位置相对应。设备驱动程序可以维护包括逻辑地址与介质位置之间的任意对任意映射的元数据135等。
设备驱动器可以进一步包括非易失性存储器设备接口139和/或与其通信,所述非易失性存储器设备接口被配置成用于通过总线125向所述一个或多个非易失性存储器设备120传送数据、命令和/或查询,所述总线可以包括但不限于:处理器111的存储器总线、高速外围部件互连(PCI Express或PCIe)总线、串行高级技术附件(ATA)总线、并行ATA总线、小型计算机系统接口SCSI)、火线、光纤信道、通用串行总线(USB)、PCIe高级交换(PCIe-AS)总线、网络115、无限带宽(Infiniband)、SCSI RDMA等。非易失性存储器设备接口139可以使用(多个)输入输出控制(IO-CTL)命令、(多个)IO-CTL命令扩展、远程直接存储器访问与所述一个或多个非易失性存储器设备120进行通信。
通信接口113可以包括被配置成用于通信地将计算设备110和/或非易失性存储器控制器126耦合至通信网络115和/或耦合至一个或多个远程、网络可访问的存储器客户端116的一个或多个网络接口。存储客户端116可以包括在计算设备110上进行操作的本地存储客户端116和/或经由网络115和/或网络接口113可访问的远程存储客户端116。非易失性存储器控制器126是一个或多个非易失性存储器设备120的一部分和/或与其进行通信。虽然图1描绘了单个非易失性存储器设备120,但是本公开不限于此方面并且可被适配成用于合并任何数量的非易失性存储器设备120。
非易失性存储器设备120可以包括非易失性存储器介质122的一个或多个元件123,其可以包括但不限于:ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫族化物RAM或C-RAM)、NAND闪存、NOR闪存、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶体线的存储器、基于氧化硅的亚10米工艺存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、磁存储介质(例如,硬盘、磁带)、光学存储介质等。在某些实施例中,非易失性存储器介质122的所述一个或多个元件123包括存储级内存(SCM)。
虽然传统技术(比如,NAND闪存)可以是块和/或页可寻址的,但是在一个实施例中存储级内存是字节可寻址的。在进一步实施例中,存储级内存可以是更快速的和/或具有比NAND闪存更长的寿命(例如,耐久性);可以具有更低的成本、使用较少的电力、和/或具有比DRAM更高的存储密度;或者当与其他技术进行比较时提供一种或多种其他益处或改进。例如,存储级内存可以包括ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器、纳米RAM、基于纳米晶体线的存储器、基于二氧化硅的亚10纳米进程存储器、石墨烯存储器、SONOS存储器、PMC存储器、CBRAM、MRAM的一个或多个非易失性存储器元件123、和/或其变形。
虽然非易失性存储器介质122在本文中被称为“存储器介质”,但是在各实施例中,非易失性存储器介质122通常可以包括能够记录数据的一个或多个非易失性记录介质(所述一个或多个非易失性记录介质可以被称为非易失性存储器介质)、非易失性存储介质等。进一步地,在各种实施例中,非易失性存储器设备120可以包括非易失性记录设备、非易失性存储器设备、非易失性存储设备等。
非易失性存储器介质122可以包括一个或多个非易失性存储器元件123,所述一个或多个非易失性存储器元件可以包括但不限于:芯片、封装体、平面、裸片等。非易失性存储器介质控制器126可以被配置成用于管理非易失性存储器介质122上的数据操作,并且可以包括一个或多个处理器、可编程处理器(例如,FPGA)、ASIC、微控制器等。在一些实施例中,非易失性存储器介质控制器126被配置成用于将数据存储在非易失性存储器介质122上和/或从非易失性存储器介质中读取数据,从而向/从非易失性存储器设备120传送数据。
非易失性存储器介质控制器126可以通过总线127的方式通信地耦合至非易失性存储器介质122。总线127可以包括用于向/从非易失性存储器元件123传送数据的I/O总线。总线127可以进一步包括用于向非易失性存储器元件123传送寻址和其他命令和控制信息的控制总线。在一些实施例中,总线127可以并行地将非易失性存储器元件123通信地耦合至非易失性存储器介质控制器126。这种并行访问可以允许非易失性存储器元件123作为组被管理,从而形成逻辑存储器元件129。逻辑存储器元件可以被分区为对应的逻辑存储器单元(例如,逻辑页)和/或逻辑存储器划分(例如,逻辑块)。逻辑存储器单元可以通过逻辑地合并非易失性存储器元件中的每个非易失性存储器元件的物理存储器单元被形成。
非易失性存储器控制器126可以包括在计算设备110上执行的设备驱动程序和/或与其进行通信。设备驱动程序可以经由一个或多个接口131、132、和/或133向存储客户端116提供存储服务。在一些实施例中,设备驱动程序提供存储客户端116通过其执行块级I/O操作的块设备I/O接口131。可替代地或另外地,设备驱动程序可以提供存储级内存(SCM)接口132,其可以向存储客户端116提供其他存储服务。在一些实施例中,SCM接口132可以包括对块设备接口131的扩展(例如,存储客户端116可以通过对块设备接口131的扩展或添加来访问SCM接口132)。可替代地或另外地,SCM接口132可以被设置为单独的API、服务和/或库。设备驱动程序可以进一步地被配置成用于提供使用非易失性存储器系统102来缓存数据的缓存接口133。
如以上所述的,设备驱动程序可以进一步包括非易失性存储器设备接口139,所述非易失性存储器设备接口被配置成用于通过总线125向非易失性存储器介质控制器126传送数据、命令、和/或查询。
图2描绘了非易失性存储器元件123的一个实施例。在所描绘的实施例中,非易失性存储器元件123包括具有多个裸片202或多个核202(例如,2个裸片、4个裸片、6个裸片、8个裸片、10个裸片,12个裸片、14个裸片、16个裸片、32个裸片、64个裸片或另一数量的裸片202或核202)的封装件。每个裸片202或核202包括非易失性存储器的半导体设备。裸片202或核202可以被划分成多个存储体组204,每个存储体组具有非易失性存储器的多个存储体206(例如,在所描绘的实施例中,各自具有4个存储体206的2个存储体组204)。在所描述的实施例中,每个存储体206包括可被安排成页面或类似物的两个非易失性存储器单元子阵列208。在一个实施例中,裸片202或核202被分成两个或更多个信道210a、b。这些信道210a、b中的对应裸片202可以包括裸片202的列212。例如,在每个信道210a、b有八个裸片202的实施例中,每个非易失性存储器元件123可以有八列0-7。
在一个示例实施例中,每个子阵列208可以包括32,768,000个8字节页面(例如,对于64千兆字节设备),其中每个子阵列208具有256兆字节;每个子阵列可以包括65,536,000个8字节页面(例如,对于128千兆字节设备)等,其中每个子阵列208具有512兆字节。每个存储体206的所述两个或更多个子阵列208可以是独立可寻址的。在一个实施例中,使用四个存储体206的存储体组204和每个存储体组204八个子阵列208来提交存储器写入,以支持每个裸片202的多个并发的可独立寻址的写入事务。例如,在存储器裸片202上使用写入分组,可以在输入寄存器中对每个子阵列208的一个待决写入事务进行排队。
可以对存储体组204中的子阵列208同时执行排队数据的写入,诸如此类。在某些实施例中,可以针对每个存储体206(例如,2个子阵列208)独立地执行数据读取。在一个实施例中,可以支持两种读取模式,如从存储体206中的单个子阵列208的低延时读取以及从存储体206中的两个子阵列208的高带宽组读取。对于组读取,可以在可连续发送组读取的地址并且可连续地接收读取数据的控制器126中进行读取分组。裸片202可以通过读取来支持写入暂停。
在一个实施例中,裸片202支持用于在初始写入周期完成之后具有位错误的写入的延长时间。例如,在写入存储体组204子阵列208的基础上,可以在裸片202上捕获需要额外时间的写入。扩展写入缓冲器刷新(flush)命令可以指示何时将一个或多个扩展写入缓冲器中的数据重写到存储器子阵列208等。
图3描绘了非易失性存储器元件123的一个实施例。在所描述的实施例,非易失性存储器元件123(例如,封装件等)各自包括多个裸片202的两个信道210a、b。在所描述的实施例中,裸片202被电连接到一个或多个数据线302(例如,数据选通线DQSt、数据选通互补线DQSc、双向数据总线DQ等)、一个或多个使能线304(例如,读取使能线REt、读取使能互补线REc、列组时钟使能线CKEG等)、一个或多个时钟使能线306(例如,时钟使能线CKEn等)、一个或多个命令和地址线308(例如,命令和地址总线CA、命令和地址选通真线CASt、命令和地址选通互补线CASc等)、一个或多个芯片使能线310(例如,芯片使能线CEn)等。例如,非易失性存储器元件123可以包括与控制器126电通信的多个电连接件(例如,焊盘、引脚、焊球、迹线、端口、导线或其他导体),以将来自控制器126的电信号传导到非易失性存储器元件123内的裸片202。在某些实施例中,为了保持电连接和/或为了效率,对于在非易失性存储器元件123的不同模式、不同操作和/或不同状态中的不同的信号类型,可以使用相同的电触头或线302、304、306、308、310。
在一个实施例中,设备控制器126使用芯片使能线CEn 310来为命令和地址总线CA308选定目标裸片202。例如,当芯片使能信号CEn 310为低时,可以选定目标裸片202来用于接收命令和地址信息。当芯片使能信号CEn 310变高时,在一个实施例中,裸片202接收器可以进入降低的功率状态(例如,经受预定义唤醒时间等),并且可以在裸片202核中继续相关的读取或写入操作,直到完成,诸如此类。在所描绘的实施例中,芯片使能线CEn 310是八位线,使得芯片使能线CEn 310的第一位启用或禁用用于接收命令和地址信息的第一裸片202,芯片启用线CEn 310的第二位启用或禁用用于接收命令和地址信息的第二裸片202等。
在某些实施例中,设备控制器126使用时钟使能线CKEn 306来选定用于数据总线DQ 302的目标裸片202。例如,当时钟使能线CKEn 306为低时,可以选定目标裸片202来用于传输用于读取或写入操作的数据。在一个实施例中,当时钟使能线CKEn 306变高时,读取使能RE信号304和/或数据选通线DQS信号302不能被目标裸片202识别,并且读取或写入操作在裸片202核中继续,直到完成,诸如此类。
在具有多列的实施例中,列组时钟使能线CKEG 304在低时可以使得将时钟使能信号306施加到第一组裸片202列(例如,列0、1、2和3等)。列组时钟使能线CKEG 304在高时可以使得将时钟使能信号306施加到第二组裸片202列(例如,列4、5、6和7等)。例如,在所描绘的实施例中,时钟使能线CKEn 306是四位线,使得时钟使能线CKEn 306的第一位启用或禁用用于传输数据的列0或列4的裸片202,时钟使能线CKEn 306的第二位启用或禁用用于传送数据的列1或列5的裸片202,等等,并且列组时钟使能线CKEG 304标识这些时钟使能信号306是否施加到较低列或较高列的裸片202。
在某些实施例中,所述一个或多个命令和地址选通线CAS 308可以包括命令和地址选通真线CASt 308和/或命令和地址选通互补线CASc 308。命令和地址选通线CAS 308(例如,CASt线308)可以控制命令和地址总线CA 308上的命令和/或地址的锁存,在一个实施例中,命令和/或地址在信号308的选通的上升沿和/或下降沿(例如,双倍数据速率(DDR)信令)锁存。在某些实施例中,命令和地址选通互补线CASc 308是具有相反值的、命令和地址选通真线CASt 308的互补信号,以改进物理信道上的信令的鲁棒性等。
在一个实施例中,命令和地址总线CA 308将命令和/或地址信息传送到非易失性存储器元件123和/或裸片202。命令和地址总线CA 308可以包括多位总线(例如,5位等)。在一个实施例中,命令和地址总线CA 308是单向总线。
在某些实施例中,所述一个或多个读取使能线RE 304启用从目标裸片202输出的串行数据。在一个实施例中,所述一个或多个读取使能线RE 304包括读取使能真线REt 304和为其互补信号(例如,具有相反值)的读取使能互补线REc 304,这可以提高物理信道上的信令的鲁棒性等。
在一个实施例中,所述一个或多个数据选通线DQS 302限定和/或指示用于在双向数据总线DQ 302上输出读数据或输入写数据的数据值窗口。在某些实施例中,DDR信令等可以用于数据,其中读数据是边缘对齐的,写数据是居中的等。在一个实施例中,所述一个或多个数据选通线DQS 302包括数据选通真线DQSt 302和为其互补信号的、具有相反值的数据选通互补线DQSc 302,以提高物理信道上的信令的鲁棒性等。
在某些实施例中,在控制器126和非易失性存储器元件123之间不存在自由运行的时钟,而是使用如上所述的选通信号DQS 302和CAS 308来锁存入或选通出命令、地址和数据。在一个实施例中,自由运行的时钟可以包括贯穿多个命令很少或没有中断地传输(例如,从控制器126到非易失性存储器元件123等)的交替定时信号,以提供用于所述多个命令和/或其他操作的定时。在某些实施例中,当控制器126处于通电状态时,自由运行的时钟可以是基本上恒定的和/或连续的。在一个实施例中,非易失性存储器裸片202可以基于临时时钟使能信号中的转变对命令和地址选通和/或数据选通的感测进行计时,从而避免使用自由运行的时钟。如本文所使用的选通和/或选通信号包括针对单个命令和/或操作或更少(例如针对命令和/或操作的一部分)所传输(例如,从控制器126到非易失性存储器元件123等)的临时定时信号。
例如,在一个实施例中,芯片202的非易失性存储器介质122可以具有比如DRAM等的易失性存储器更高的延时。在等待操作完成的同时不断地运行时钟可能不必要地消耗功率,特别是在高频下。在某些实施例中,非易失性存储器元件123与外部时钟的同步操作也可能不必要地增加设计的复杂性。
在所描绘的实施例中,不同的信道210a、210b具有基本上独立的信号302、304、306、308、310。在某些实施例中,信号302、304、306、308、310中的一者或多者可以针对这两个信道210a、210b共同结合在一起,如CKEG列组时钟使能信号304,所述信号启用这两个信道210a、210b中相同列的裸片202。在所描绘的实施例中,非易失性存储器元件123还包括多个电源和/或接地输入312,非易失性存储器元件123可以在内部将其分配给裸片202和/或其他电气部件。
图4A和图4B描绘了用于存储器裸片202的外围部件400、410的实施例。如上文关于图2所描述的,在某些实施例中,裸片202可以是非易失性存储器的半导体设备。在所描绘的实施例中,裸片202包括被称为核的非易失性存储器单元阵列、以及与所述核通信以执行数据操作(如读取、写入、擦除等)的外围部件400、410。在某些实施例中,“单元”可以指代裸片202的存储器或存储的最小或基本物理单元,并且可以可互换地称为“存储单元”、“存储器单元”等。例如,单元可以是用于NAND闪存存储器的浮栅晶体管、用于电阻存储器的忆阻器等。因此,在另一实施例中,单元阵列可以是二维网格、三维块、组或其他类似的单元集合,其中可以物理地存储数据,以便短期存储器使用、长期存储使用等。在某些实施例中,外围部件400、410包括裸片202的除了核单元阵列之外的部件。在所描绘的实施例中,外围部件400、410包括一组端口和裸片上控制器450,所述一组端口包括第一端口152和第二端口154。
在多个不同实施例中,裸片202可以指代包括核非易失性存储器单元阵列和用于与核通信的外围部件400、410两者的集成电路。在一个实施例中,这样的集成电路可以是包括多个裸片平面和/或层的三维集成电路,但仍然可以被称为裸片202。在某些实施例中,裸片202可以包括多于一个的核非易失性存储器单元阵列。例如,多核裸片202可以在从一个核读取数据时将数据写入另一个核。然而,在其他实施例中,裸片202可以包括单个核非易失性存储器单元阵列。如关于图1-3所描述的,非易失性存储器设备120或非易失性存储器元件123可以包括一个或多个裸片202。
在所描述的实施例中,所述一组端口包括第一端口152和第二端口154,其可以是基本上如上面关于图1所描述的。每个端口152、154包括多个电触头,从而第一端口152包括第一多个电触头并且,第二端口154包括第二多个电触头。下面关于图5A和5B进一步详细描述每个端口152、154的特定电触头。
在多个不同实施例中,用于裸片202的电触头可以指代被配置成用于在裸片202和如设备控制器(如,非易失性存储器介质控制器126)的外部部件之间传达电信号或值的焊盘、导线、线等。在另外的实施例中,端口可以指代一个或多个电触头的组和、分组或集合。在某些实施例中,端口可以指代与其他触头物理上分离的一组电触头。例如,在一个实施例中,用于第一端口152的电触头可以与用于第二端口154的电触头物理上分离。作为另一实施例,第一端口152可以包括用于裸片202的第一行或阵列的输入/输出(I/O)焊盘,并且第二端口154可以包括用于裸片202的由不包括I/O焊盘的区域分开的第二行或阵列的I/O焊盘。在另一实施例中,端口可以指代电触头的逻辑分组,而不管这些触头是否与其他端口的触头物理上分离。例如,用于第二端口154的触头可以在用于第一端口152的触头之间交错。根据本公开内容,安排电触头和将电触头分组到端口152、154中的各种方式是清楚的。
在一个实施例中,裸片上控制器450经由所述一组端口进行通信以接收命令和地址信息并且传送对所述核存储器单元阵列的数据操作的数据。在多个不同实施例中,裸片上控制器450可以指代裸片202上的部件、控制/操作逻辑、一组部件等,其接收命令和/或地址信息、经由一组端口传送数据、在一组端口与核存储器单元阵列之间进行数据通信、和/或使用所通信的数据执行数据操作。经由所述一组端口进行的通信可以包括经由第一端口152和/或第二端口154的电触头发送或接收信息的任何形式。
命令和地址信息可以包括多个命令(如读取命令、写入命令、程序命令、擦除命令、状态查询命令以及裸片202支持的任何其他命令)以及对应于这些命令的地址(如向其写入数据的地址和从中读取数据的地址等)。裸片上控制器450可以从设备控制器(如非易失性存储器介质控制器126)接收命令和地址信息。例如,设备控制器可以使用多个命令和地址线308发送命令和地址信息,这些命令和地址线包括命令和地址总线CA、命令和地址选通真线CASt、以及命令和地址选通互补线CASc。
数据操作可以包括读取、写入、编程或擦除操作等,并且用于这些数据操作的数据可以包括有待写入核存储器单元阵列的数据、有待从核存储器单元阵列读取的数据等。因此,在某些实施例中,传送用于数据操作的数据可以包括将写入数据传送到核存储器单元阵列、传送来自核存储器单元阵列的读取数据等。传送数据可以包括发送数据、接收数据、使数据可用于锁存器上的设备控制器等。在一个实施例中,裸片上控制器450可以在核存储器单元阵列和设备控制器(如非易失性存储器介质控制器126)之间传送多项数据操作的数据。例如,对于写入操作,裸片上控制器450可以从设备控制器接收有待写入的数据。类似地,对于读取操作,裸片上控制器450可以将所读取的数据发送到设备控制器。在某些实施例中,裸片上控制器450和/或设备控制器可以使用包括双向数据总线DQ、数据选通真线DQSt和数据选通互补线DQSc的数据线302来传送数据操作的数据。
图4A描绘了在第一模式中的外围部件400的一个实施例。在所述第一模式中,裸片上控制器450使用第一端口152和第二端口154两者。在某些实施例中,所述第一模式包括存储类存储器接口,在所述模式中裸片上控制器450经由第一端口152接收用于数据操作的命令和地址信息、并且经由第二端口154传送用于所述数据操作的数据。
一般地,在多个不同实施例中,存储类存储器可以指代将用于长期非易失性数据存储(典型的传统存储设备)的能力与快速字节级访问(典型的传统DRAM易失性存储器)相结合的非易失性存储器。在某些实施例中,存储类存储器的延时可能仍然大于DRAM,但是可以基本上小于传统NAND闪存存储设备的延时。例如,在一个实施例中,NAND闪速存储设备的延时可以在几十微秒内测量,而DRAM的延时可以在几十纳秒内测量,并且存储类存储器的延时可以在几百纳秒内测量。一般地,在多个不同实施例中,存储类存储器可以比DRAM的存储密度明显更大,但比传统存储设备明显更快。在某些实施例中,存储类存储器可以包括以下各项的一个或多个非易失性存储器元件123:ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器、纳米RAM、基于纳米晶体线的存储器、基于氧化硅的亚10纳米过程存储器、石墨烯存储器、SONOS存储器、PMC存储器、CBRAM、MRAM和/或其变体。
在另外的实施例中,存储类存储器接口可以指代用于存储类存储器的提供对不是传统或惯例非易失性存储器设备的典型存储类存储器特征的访问的任何接口。例如,存储类存储器接口能够以字节级粒度、以四字节串、八字节串等提供对存储类存储器的全速访问。(相比之下,用于非易失性存储的传统块I/O接口可能以页面级或块级粒度提供较低速度的访问。)
在所描绘的实施例中,由这些外围部件400提供的第一模式是具有固定串长度的随机存取(例如,字节可寻址)的读取和/或写入操作的串模式(例如,ReRAM串模式)。例如,在串模式中,非易失性存储器裸片202可以接收与读取和/或写入命令相关联的地址(例如,以字节粒度)、并且可以执行用于所接收的地址和预定义数量的附加地址(例如,固定串长度的附加地址)的命令,在所接收的地址之后依次读取和/或写入用于整个序列的命令的数据(例如,8字节、16字节、24字节、32字节、48字节、64字节和/或128字节的固定串长度等)。
在第一模式中,裸片上控制器450可以使用第一端口152和第二端口154两者。在第一模式,在所描绘的实施例中,第一端口152的多个电触头接收对非易失性存储器元件123的数据操作的命令和地址信息。在所述第一模式的所描绘的实施例中,第二端口154的多个电触头传输所述数据操作的数据(例如,接收用于写入/编程操作的数据、发送用于读取操作的数据等)。在某些实施例中,当处于第一模式时,第一端口152仅用于命令和地址信息(例如,命令和地址总线CA 308、一个或多个命令和地址选通信号CAS 308等),并且第二端口154仅用于数据(例如,数据总线DQ 302、一个或多个数据选通信号DQS 302、一个或多个读取使能信号RE 304等),从而允许有两组分开的I/O,每个端口152、154上一组。
在所描绘的实施例中,在第一模式中,命令和地址总线CA和数据总线DQ都是双数据速率总线。在第一端口152处经由命令和地址总线CA接收命令和地址信息。所述命令和地址信息到达裸片上控制器450,所述裸片上控制器控制第二端口154和在核与第二端口154之间(经由内部数据总线)的数据传输。裸片上控制器450经由第二端口154接收用于写入命令的数据、或者发送用于读取命令的数据。
在多个不同实施例中,使用第一端口152来接收命令和地址信息并且使用第二端口154来传送数据可以允许裸片上控制器450同时接收命令和地址信息并传送数据。例如,可以在针对较早的命令传送数据的同时接收用于稍后命令的命令和地址信息。在某些实施例中,当使用第一端口152接收命令和地址时,用于裸片上控制器450的命令队列存储这些命令和地址,而裸片202顺序地执行这些命令(例如,按照在第一端口152上接收命令的顺序),并且使用第二端口154顺序地发送用于每个操作的数据(例如,按照在第一端口152上接收命令的顺序),从而允许控制器126将多个命令进行一次排队以用于连续执行、重叠执行、并行执行等。
图4B描绘了在第二模式中的外围部件410的一个实施例。在所述第二模式中,裸片上控制器450使用第一端口152而不使用第二端口154。在某些实施例中,所述第二模式提供了与传统类型的存储器裸片的接口的兼容性。一般地,在多个不同实施例中,传统类型的存储器裸片可以指代比裸片202更旧类型的存储器裸片。例如,裸片202可以包括存储类存储器,而传统类型的存储器裸片可以包括不同类型的非易失性存储器介质和/或非易失性存储介质,如(例如)NAND闪存。在另一实施例中,传统类型的存储器裸片可以使用比用于裸片202的存储类接口更旧的协议,如开放NAND闪存接口(ONFI)协议、切换模式或双数据速率(DDR)协议、共用闪存存储器接口(CFI)等。在第二模式中,裸片上控制器450可以通过仿真传统存储器介质、仿真传统协议等提供与传统存储器裸片的兼容性。在某些实施例中,使用两种模式并且在第二模式中提供与传统存储器裸片的向后兼容性可以允许多个客户端在第一模式中访问存储类存储器的全特征集合、并且可以允许较旧的客户端在第二模式中使用存储类存储器,就像所述存储类存储器是较旧型的存储器或存储一样。
在某些实施例中,所述第二模式提供NAND存储接口,在所述模式中裸片上控制器450经由第一端口152既接收所述命令和地址信息又传送所述数据。在多个不同实施例中,NAND存储接口可以指代用于访问NAND闪存存储器的任何接口,如开放NAND闪存接口(ONFI)接口、切换模式NAND接口、公共闪存存储器接口(CFI)等。在某些实施例中,NAND存储接口可以提供对存储或存储器单元的页面级或块级、而不是字节级访问。在一些实施例中,NAND存储接口可以仿真NAND闪存存储器的多个方面,如页面级编程和块级擦除,即使当用于核存储器单元阵列的底层存储器是存储类存储器时亦是如此。
在第二模式(例如,传统模式、兼容模式、NAND切换模式等)中,不使用第二端口154,并且仅使用第一端口152。在所描述的实施例中,第一端口152用于既接收用于数据操作的命令和地址信息又发送所述数据操作的数据(例如,接收用于写入/编程操作的数据、发送读取操作的数据等)。在所描绘的实施例中,在第二模式中,数据总线DQ是双数据速率总线,如在第一模式中一样,但是命令和地址总线CA是单数据速率总线。在第一端口152处经由命令和地址总线CA接收命令和地址信息。所述命令和地址信息到达裸片上控制器450,所述裸片上控制器控制核与第一端口152之间(经由内部数据总线)的数据传输。第二端口154在第二模式中无效。使用第一端口152用于命令和地址信息以及数据可以防止命令和地址信息与用于数据操作的数据同时传送,但是可以提供与传统NAND设备或其他类型的传统存储的向后兼容性。
因此,在多个不同实施例中,在第一模式中,对于数据操作使用第一端口152和第二端口154两者,但是在第二模式中,对于数据操作使用第一端口152而不使用第二端口154。在某些实施例中,甚至对于可以在命令队列中相邻的顺序地接收的命令,外围部件400、410也可以基于所接收的命令、所使用的协议等从第一模式动态地转变到第二模式。
图5A和图5B描绘了用于存储器裸片202的外围部件500、520的实施例,包括裸片上控制器450以及被分组为第一端口152和第二端口154的多个触头550,如上所述。在所描绘的实施例中,用于第一端口152的触头550包括用于五位控制和地址总线CA的五个触头550、用于传入命令和地址信息(或用于传统或兼容模式中的数据)的锁存器、以及用于真和互补的命令和地址选通信号CASt和CASc的触头550。为I/O线508提供三个附加触头550,以在传统或兼容性模式中提供八位宽的数据传送。提供一个触头550用于接收芯片使能信号CEn。(关于图3描述的封装件包括用于八个裸片202的八位芯片使能线,并且单个裸片202可以被启用或禁止用于通过一个位接收命令/地址信息)。
在所描绘的实施例中,用于第二端口154的触头550包括用于八位双向数据总线DQ的八个触头550、用于数据的锁存器、以及用于真和互补的数据选通信号DQSt和DQSc的触头550。触头550还包括用于读取使能时钟RE的真和互补信号的触头550。最后,多个触头550被提供用于接收时钟使能信号CKEn和列组时钟使能信号CKEG。(关于图3描述的封装件包括用于八个裸片202的四位时钟使能线和一位列组时钟使能线CKEG,使得对于一个时钟使能位与列组时钟使能线之间的数据传送,单个裸片202可以被激活或去激活)。在所描述的实施例中,裸片上控制器450包括如多路复用器(MUX)和内部数据总线驱动器的多路复用部件506、命令和地址解码器510、以及命令队列512。
图5A描绘了用于处于第一模式(例如,串模式、ReRAM串模式等)中的非易失性存储器裸片202的外围部件500的一个实施例。在所描绘的实施例中,在第一模式中使用第一端口152和第二端口154两者,第一端口152用于多个命令的命令和地址信息,并且第二端口154用于传输这些命令的数据。如虚线轮廓所示,在第一模式中未使用第一端口152的某些复用部件506和I/O线508。例如,I/O线508可以用于在第二模式中经由第一端口152提供八位数据传输,但是在第一模式中可以未被使用、禁用或去激活。另外,这些复用部件506可以提供一个或多个传统功能、可以辅助多个模式之间的切换等。在某些实施例中,在第一模式中使用分开的数据路径可以降低读取延时、去除额外的多路复用逻辑506等(例如,由于共享用于命令和地址信息以及命令的数据的单个数据路径可能需要更多数据、时钟、信号等的复用)。
图5B描绘了用于处于第二模式(例如,传统模式、兼容模式、NAND切换模式等)中的非易失性存储器裸片202的外围部件520的一个实施例。在所描绘的实施例中,在第二模式中仅使用第一端口152,既用于多个命令的命令和地址信息又用于传输这些命令的数据。在所描绘的实施例中,在第二模式中使用了第一端口152的多路复用部件506和I/O线508。然而,在第二模式中未使用第二端口154,如虚线轮廓所示。
在某些实施例中,可以使用命令队列512(例如,先进先出(FIFO)命令队列)来确定哪个模式与下一个命令相关联、以及是否启用第二端口154。例如,可以在第一端口152上发出多个命令(例如,在第一模式中、在第二模式中、在两种模式的混合中),并且在第二端口154上传输(例如,切换)数据之前将这些命令存储在命令队列512中。在某些实施例中,命令队列512可以包括分开的读取队列和写入队列,其中指针移动通过所述队列中的命令(例如,在时钟脉冲串或序列结束处、在命令结束处、在预定数量的循环结束时等移动到下一个命令)。
在图5A和5B所描绘的实施例中,裸片上控制器450可以使用所述一组端口152、154中的至少一组触头550用于单端输入/输出、并且可以使用所述一组端口152、154中的至少一对触头550进行差分选通。在多个不同实施例中,单端输入/输出可以指代共享公共电压参考(例如,地和/或另一个参考电压)的输入或输出。例如,五位命令和地址总线CA和/或八位数据总线DQ可以是单端总线,使得用于五位总线的一组五个触头550或者用于八位总线的一组八个触头550分别承载五个或八个电压、并且使用公共电压参考。在某些实施例中,用于命令和地址总线CA的电压参考可以不同于用于数据总线DQ的电压参考。
在某些实施例中,差分选通可以指代使用一对触头550承载的用于真和互补信号的时钟、选通或其他定时信号。例如,在一些实施例中,一个触头550可以承载真命令和地址选通CASt,并且第二触头550可以承载互补(例如,相反)信号CASc。(数据选通DQS、和/或读取使能时钟RE可以类似地分别是具有真和互补信号DQSt/DQSc和REt/REc的差分选通)。在某些实施例中,真信号和互补信号之间的差异可以提供以比任一信号单独地更大的振幅振荡的选通。另外,一个信号中的噪声可以基于其是否反映在其他信号中而与合法上升沿或下降沿区分开。因此,使用一对触头550进行差分选通可以提高物理信道上的信令的鲁棒性。
一般地,在多个不同实施例中,这些选通信号对命令和地址信息和数据的传输进行编集。在一个实施例中,裸片上控制器450根据命令和地址选通信号CAS通过命令和地址总线CA接收所述命令和地址信息。可以经由所述一组端口的一个或多个命令和地址选通线(例如,用于单端CAS选通的单触头550,用于差分CASt/c选通的一对触头550等)来接收所述命令和地址选通信号。所述命令和地址选通信号可以由设备控制器(如非易失性存储器介质控制器126)发送,以控制命令和/或地址的锁存。例如,在第一模式(例如,串模式)中,可以在四个CAS时钟周期的串中(或使用双倍数据速率信令的八次传送)发送命令。
在另一实施例中,裸片上控制器450根据数据选通信号DQS传送用于数据操作的数据。可以经由所述一组端口的一个或多个数据选通线(例如,用于单端DQS选通的单触头550,用于差分DQSt/c选通的一对触头等)来接收所述数据选通信号。对于写入操作,数据选通信号可以由设备控制器(如非易失性存储器介质控制器126)发送,以在其从设备控制器发送时对有待写入的数据进行编集。例如,可以通过八位双向数据总线DQ在四个CAS时钟周期的串或序列中(或使用双倍数据速率信令的八次传送)发送有待写入的64位数据。对于读取操作,数据选通信号DQS可以由裸片上控制器450发送到设备控制器,以在其被发送到设备控制器时对数据的传输进行编集。在某一实施例中,可以基于由设备控制器发送的读取使能时钟信号RE由裸片上控制器450发送用于读取的数据选通信号DQS。
在某一实施例中,命令和地址选择通用脉冲信号CAS可以独立于数据选通信号DQS。可以独立地(例如,通过分开的振荡器等)、而不是基于彼此或基于公共全局时钟地产生多个独立信号。在某些实施例中,全局(或其他非局部)时钟信号的分布可能消耗大量的功率。相比之下,使用独立的CAS和DQS选通可以通过避免需要分配全局时钟来节省功率。读取使能时钟RE可以类似地独立于命令和地址选通信号CAS。(然而,数据选通信号DQS可以是基于用于读取的RE时钟)。
另外,在一些实施例中,CAS、DQS和/或RE信号在不使用时可以是无效的。当时钟或选通信号处于固定电压、浮动电压或者不切换、循环或振荡时,其可以被称为无效。例如,在某一实施例中,除了当裸片上控制器450接收到命令和地址信息时,命令和地址选通信号CAS可以是无效的,并且除了当裸片上控制器450传送数据时,数据选通信号DQS可以是无效的。在某些实施例中,当时钟不需要或正在使用时切换时钟可能消耗大量的功率。相比之下,在不使用时停用CAS、DQS和/或RE信号可以节省功率。例如,DRAM易失性存储器可以使用自由运行(例如,连续或不间断的)全局时钟来锁存命令和地址信息并且传送数据。在开始命令和开始数据传送之间的几十纳秒的延时时期可以对应于少量的时钟周期,使得自由运行的时钟对于DRAM是合理实用的。相比之下,存储类存储器的数百纳秒的延时时期可以对应于大得多的时钟周期数,使得可以通过在延时时期内停用(多个)时钟来实现显著的功率节省。
图6A、图6B和图6C描绘了用于非易失性存储器接口的时间线600、610、620的实施例。一般地,在多个不同实施例中,设备控制器126发送具有命令和地址选通信号CAS 308的命令和地址信息。对于写入操作,设备控制器126发送数据和数据选通信号DQS 302。对于读取操作,设备控制器向裸片上控制器450发送读取使能时钟信号RE 304、并且从裸片上控制器450接收数据和数据选通信号DQS 302。裸片上控制器450可以基于读取使能信号304发送数据选通信号DQS 302。
因此,在所描绘的实施例中,这些时间线600、610、620描绘了由设备控制器126发送的信号(或由裸片上控制器450基于来自设备控制器126的读取使能信号RE而发送的DQS信号)。在某些实施例中,设备控制器126可以生成命令和地址选通信号CAS 308、读取使能时钟信号RE 304和/或数据选通信号DQS 302,而不向所述一个或多个非易失性存储器元件123发送自由运行的时钟信号。如上所述,当设备控制器126处于通电状态时,自由运行的时钟可以是基本上恒定的和/或连续的。相比之下,生成命令和地址选通信号CAS 308、读取使能时钟信号RE 304和/或数据选通信号DQS 302,而不向所述一个或多个非易失性存储器元件123发送自由运行的时钟信号可以通过在各种时钟信号不使用时避免切换各种时钟信号来节省功率。
图6A描绘了用于非易失性存储器接口的写入操作的时间线600。在所描绘的实施例中,设备控制器126在命令串中向裸片上控制器450发送命令和地址信息。命令串包括用于命令和地址选通CAS 308的四个时钟周期。(差分信号CASt和CASc都被描绘出,使得当CASt为高时CASc为低,反之亦然)。使用双数据速率信令,命令串在四个时钟周期中包括八次5位传输。在另一实施例中,命令串可以包括不同数量的时钟周期、不同的命令总线宽度等,使得命令串包括更大或更小量的命令和地址信息。
在延时时间602之后,设备控制器126在数据串中发送有待写入的数据和数据选通信号DQS 302。数据串包括用于数据选通DQS 302的四个时钟周期。(差分信号DQSt和DQSc都被描绘出,使得当DQSt为高时DQSc为低,反之亦然)。使用双数据速率信令,数据串在四个时钟周期中包括八次8位传输,从而在每个数据串中传送64位。在另一实施例中,数据串可以包括不同数量的时钟周期、不同的数据总线宽度等,使得数据串包括更大或更小量的数据。
对于读取操作(未示出),设备控制器126在延时时间602之后发送读取使能串(例如,用于读取使能时钟信号RE 304的四个时钟周期),并且裸片上控制器450在数据串中发送数据和数据选通信号DQS 302,其中数据选通信号DQS 302是基于读取使能时钟信号RE304的。在多个不同实施例中,数据选通信号DQS 302可以是以各种方式基于读取使能时钟信号RE 304的。例如,在某一实施例中,数据选通信号DQS 302可以是读取使能时钟信号RE304的延迟复制。在某些实施例中,延迟读取使能时钟信号RE 304可以允许裸片上控制器件450生成与来自设备控制器126的读取使能时钟信号RE 304匹配的具有前同步码时间、后同步码时间等的数据选通信号DQS 302,而不向裸片上控制器450添加另外的定时电路以生成时钟信号、产生前同步码和后同步码时期等。在多个不同的另外的实施例中,裸片上控制器450那个以多个不同的另外的方式(例如,通过延迟、放大等)来变换读取使能时钟信号RE304,以产生数据选通信号DQS 302。
在某一实施例中,响应于在设备控制器126启动命令和地址选通信号CAS 308之后等待一段延时时间602,设备控制器126可以发送用于写入操作的数据选通信号DQS 302或用于读取操作的读取使能时钟信号RE 304。一般地,在多个不同实施例中,延时时间602可以指代命令与用于服务所述命令的信号(如用于写入操作的数据选通信号DQS 302或用于读取操作的读取使能时钟信号RE 304)之间的任何时间测量值。在一些实施例中,延时时间602可以具体地指代设备控制器126在用于命令的命令和地址选通信号CAS 308的第一沿与用于服务所述命令的数据选通信号DQS 302或读取使能时钟信号RE 304的第一沿之间等待的时间。然而,在多个不同的另外的实施例中,那个以各种方式测量延时时间602。
作为等待延时时间602的示例,对于读取操作,设备控制器126可以在启动读取命令和发送读取使能时钟信号RE 304之间等待一段读取延时时间tRL。类似地,对于写入操作,设备控制器126可以在启动写入命令和发送具有数据选通信号DQS 302的数据之间等待写入延时时间tWL。在某些实施例中,如读取延时或写入延时的延时时间602可以基于裸片上控制器450准备好发送或接收数据的时间量。例如,在读取延时时间期间,裸片上控制器450可以向核非易失性存储器单元阵列发送地址、并且在多个锁存器中获得读取数据,使得所述读取数据在读取延时时间之后准备好被锁存到设备控制器
126。类似地,在写入延时时间期间,裸片上控制器450可以对写入地址进行解码、制备用于接收数据的锁存器等。在一个实施例中,写入延时时间可以等于读取延时时间。在另一个实施例中,写入延时时间可以大于或小于读取延时时间,这取决于裸片上控制器450实际使用多少时间来准备用于不同操作的数据传输。在某些实施例中,裸片202或裸片上控制器450的规格可以包括推荐或最小延时时间602,并且设备控制器126可以在启动命令与发送用于写入操作的数据选通信号DQS 302或发送用于读取操作的读取使能时钟信号RE304之间至少等待所述推荐或最小延时时间602。
为了便于描述,图6A省略了在命令和地址选通信号CAS 308的第一沿与数据选通信号DQS 302之间的用于写入操作的延时时间602的大部分。然而,在某些实施例中,延时时间602可以显着长于发送命令串或数据串所花费的时间。例如,对于533Mhz的时钟,时钟周期可以是1.875ns。命令串或数据串可以仅需要四个时钟周期,但是150ns的延时时间602可以等于80个时钟周期。在某些实施例中,延时时间602可以是以时间单位指定的,如纳秒。在另一实施例中,延时时间602以是以时钟周期指定的。在一些实施例中,延时时间602可以包括在不同时钟频率下的不同数量的时钟周期,使得延时时间602在更快的时钟频率下不会下降到最小延时时间602以下。
因为延时时间602可以明显长于命令串或数据串,所以在第一模式中分离用于命令和地址信息的路径或端口以及数据传输可以允许裸片202在延时时间602期间接收多个附加命令并对其进行排队。相比之下,在第二模式中,一个端口中的I/O焊盘用于命令和地址信息和数据两者,裸片202可以不在延时时间602期间对命令进行排队,因为裸片上控制器450在延时时间602期间正在启用用于数据传输的I/O焊盘。下面关于图7A和7B进一步详细描述命令排队。
图6B描绘了用于非易失性存储器接口的读取操作的时间线610。在所描绘的实施例中,设备控制器126在多个读取命令串612中发送多个读取命令。为了便于描述,这些命令串612、读取使能串616以及数据串618被示出为块,而不描绘每个时钟周期。然而,在多个不同实施例中,时钟脉冲串或序列可以包括固定数量的时钟周期(例如,如图6A所示)。如上面关于图6A所述,设备控制器450可以在启动命令串与启动用于服务所述命令的读取使能串之间等待读取延时时间tRL,并且裸片上控制器450可以在读取使能串开始之后使所述数据串进一步延迟tDQSRE时间。为了便于描述,在图6B中实际的tRL和tDQSRE时间被压缩;实际上,在某些实施例中,读取延时时间tRL可以显着长于发送用于读取命令的命令和地址信息的命令串。
在所描绘的实施例中,设备控制器126在发送用于第一数据操作的命令和地址信息与发送用于后续数据操作的命令和地址信息之间至少等待一段间隔时间614(例如,气泡614)。虽然描述了读取命令,但是设备控制器126可以在后续写入命令之间或者在读取命令和写入命令之间切换时应用类似的间隔时间614。在多个不同实施例中,设备控制器126在发送用于不同命令串612、不同读取使能串616、不同数据串618等的信号之间至少等待一段间隔时间614。
在多个不同实施例中,间隔时间614可以指代命令串612之间的时间的任何测量值。例如,在某一实施例中,间隔时间614指代在一个命令串612结束与另一个命令串612开始之间的时间、时钟周期数等。然而,在另一实施例中,可以在多个命令串612的开始之间测量间隔时间614。在一个实施例中,等待多个命令串612之间的间隔时间614可以避免当将第一命令发送到第一裸片202并且将第二命令发送到第二裸片202时裸片202之间的争用。在另一实施例中,等待读取命令和写入命令之间的间隔时间614可以提供时间来切换裸片上控制器450和设备控制器126之间的数据信道的控制。在某些实施例中,相比于延时时间602,间隔时间614可以是小的(例如小于10ns、小于10个时钟周期等)。
控制器126可以基于用于不同命令612的裸片202、用于不同命令612的存储体212、用于不同命令612的列206、用于不同命令的子阵列208、不同命令612的类型和/或影响定时的另一因素来确定间隔时间614(例如气泡614)的长度。例如,控制器126可以选定间隔时间614以避免在总线或其他线路(例如,一个或多个数据选通线DQS 302、数据总线DQ 302等)上的多个裸片202、存储体206、子阵列208、列212等的争用;基于读取延时和/或写入延时;基于切换到另一裸片202、存储体组204、存储体206、子阵列208、列212等的I/O控制时间;基于裸片202内的内部数据路径冲突;基于在命令类型之间切换(例如,读取到写入、写入到读取)的时间;和/或基于另一定时因素。例如,在某些实施例中,对于单个列212的读取,在发送用于单个列212的读取命令串612之间、在发送用于单个列212的不同读取使能串616之间、和/或在发送用于单个列212的不同数据串618之间的间隔时间614可以是零。
图6C描绘了用于启用非易失性存储器接口的读取操作的时间线620的一个实施例。一般地,在多个不同实施例中,选通或如命令和地址选通信号CAS 308的时钟信号、读取使能时钟信号RE 304以及数据选通信号DQS 302是基于使能信号来门控的,使得这些选通通脉冲仅在由使能信号启用时在非易失性存储器元件123和/或裸片202内部有效。在多个不同实施例中,使能信号可以指代启用或禁用用于接收命令和地址信息或用于传送数据的裸片202(或裸片202列或组)的任何信号。例如,在某些实施例中,使能信号可以包括芯片使能信号CEn 310(其门控命令和地址选通通脉冲信号CAS 308)、列组时钟使能信号CKEG(其选择用于数据操作的一列或一组裸片202)、和/或时钟使能信号CKEn 306(其门控用于数据传送的读取使能时钟信号RE304和/或数据选通信号DQS 302)等。
作为由使能信号门控的选通或时钟信号的实例,图6C描绘了由时钟使能信号CKEn306门控的读取使能RE 304输入,使得当时钟使能信号CKEn 306为低时读取使能RE 304输入仅在非易失性存储器元件123和/或裸片202内部有效。在另一实施例中,只有当所述使能信号为高时,选通信号才可以是有效的。鉴于本公开内容,使用使能信号来门控输入的各种方式将是清楚的。
在某些实施例中,设备控制器126可以在发送使能信号与发送相应的选通或时钟信号(例如,命令和地址选通信号CAS 308、读取使能时钟信号RE 304和/或数据选通信号DQS 302)之间至少等待一段预定义前同步码时间624。因为在某些实施例中,没有来自设备控制器126等的自由运行时钟,所以可以包括预定义量的时间以考虑时钟使能信号CKE n306的定时不确定性,如所描绘的设置时间622和/或前同步码时间624。在一个实施例中,设备控制器126在发送选通信号以在读取使能RE线304(例如,用于读取操作)和/或数据选通DQS线302(例如,针对写入操作向内锁存,针对读取操作向外锁存等)上向内或向外锁存数据之前至少等待设置时间622和/或前同步码时间624。在某些实施例中,设备控制器126可以在发送选通信号以在读取使能RE线304和/或数据选通DQS线302上向内或向外锁存数据之后、在发送另一选通信号之前至少等待后同步码时间626和/或保持时间628。
在所描绘的实施例中,读取使能串629包括用于读取使能时钟信号RE 304的四个时钟周期。(然而,在另一实施例中,串629可以包括不同数量的时钟周期)。在某一实施例中,前同步码时间624可以指代发送使能信号与启动串629之间的时间的测量值。在一些实施例中,前同步码时间624可以是预定义的。例如,在某一实施例中,前同步码时间624可以是基于裸片上控制器450在接收到所述使能信号之后准备选通信号的时间,并且裸片202或裸片上控制器450的规格可以包括推荐前同步码时间624、前同步码时间624的推荐范围、最小前同步码时间624等。
图7A和图7B描绘了用于非易失性存储器的裸片上控制器450的实施例。在所描绘的实施例中,裸片上控制器450包括一个或多个命令队列702和一个或多个同步器710。在某些实施例中,如图7B所描绘的,裸片上控制器450进一步包括I/O线启用/禁用部件712。
一般地,在多个不同实施例中,裸片上控制器450在命令队列702的输入级706处对多个命令进行排队,响应于来自设备控制器126的时钟脉冲串而服务来自所述命令队列702的输出级704的命令,并且响应于所述时钟脉冲的计数满足阈值而将所述命令队列702的输出级704移位到后续命令。在某些实施例中,多个排队命令可以允许裸片上控制器450在第一命令的延时时期内接收后续命令,同时传送用于第一命令的数据等。
命令队列702可以包括被配置成用于对多个命令进行排队的FIFO、环形缓冲器、一系列易失性存储器、一组锁存器等。在某些实施例中,命令队列702包括先进先出(FIFO)队列、异步FIFO队列等。在一个实施例中,如图7A所描绘的,读取命令和写入命令可以由单个命令队列702a进行排队或跟踪。在另一实施例中,如图7B所描绘的,裸片上控制器450可以包括分开的读取命令队列702b和写入命令队列702c,用于分别对读取命令和写入命令进行排队。在另一实施例中,命令队列702可以对于一个或多个系统、控制、和/或管理命令进行排队和/或跟踪。
在一个实施例中,由命令队列702进行排队的命令可以包括经由第一端口152接收到的命令和地址信息。在另一实施例中,命令队列702可以包括关于如指示命令是否已经开始、成功完成等的字段的命令的进一步信息。在另一实施例中,可以分开地对多个地址进行排队,并且命令队列702可以简单地跟踪命令是读取命令还是写入命令。例如,单比特锁存器的队列702可以指示命令是用于读取数据还是用于写入数据。
在某些实施例中,输入级706可以指代命令队列702中接收传入命令的位置(例如,队列702的尾部)。例如,在一个实施例中,输入级706可以指代指向队列702中的第一空白空间的指针。当接收到附加命令时,输入级706可以移动或移位。类似地,在某些实施例中,输出级704可以指代命令队列702中从其服务多个命令的位置(例如,队列702的头部)。例如,在一个实施例中,输出级704可以指代指向队列702中的第一未服务命令的指针。当对多个命令进行服务时,输出级704可以移动或移位。
在某些实施例中,命令队列702可以在开始传送或切换第二端口154上的数据之前在第一端口152上接收多个命令并对其进行排队,从而通过一次执行多个命令(例如,同时地、在流水线中等)提供并行性。命令和地址解码器可以确定命令的类型(例如,读取命令、写入命令、控制命令等)并且将命令类型的指示符发送到命令队列702。命令队列702可以基于命令队列702可跟踪和/或排队的命令数量具有预定义大小,如2个命令、4个命令、8个命令、16个命令、32个命令、48个命令、64个命令等。
在某一实施例中,裸片上控制器450可以响应于来自设备控制器123的时钟脉冲串或序列而服务来自命令队列702的输出级704的命令。在多个不同实施例中,服务读取命令或写入命令可以包括传送用于所述命令的数据。例如,如果输出级704处的命令是读取命令,则裸片上控制器450可以响应于用于读取使能时钟信号RE 304的时钟脉冲串或序列来服务所述读取命令。类似地,如果输出级704处的命令是写入命令,则裸片上控制器450可以响应于用于数据选通信号DQS 302的时钟脉冲串或序列来服务所述写入命令。时钟脉冲串或序列可以包括用于命令串或数据串的预定数量的脉冲。例如,用于64位数据串的时钟脉冲串或序列可以指代在八位数据总线上的四个时钟脉冲的序列(使用双数据速率信令时为八次传输)。在另一实施例中,时钟脉冲串或序列可以指代不同数量的时钟脉冲,这取决于有待传送的信息量、总线的宽度、是否使用双倍数据速率信令等。在某些实施例中,服务成串的命令可以为存储类存储器提供快速随机存取或字节可寻址的数据传送。
在一个实施例中,裸片上控制器450可以响应于所述时钟脉冲的计数满足阈值而将命令队列702的输出级704移位到后续命令。在一个实施例中,将输出级704移位可以指代将指针移位到队列702中的下一命令。在另一实施例中,将输出级704移位可以指代删除命令、并且使多个命令在队列702中向前移位。在某些实施例中,用于将输出级704移位的阈值可以指代用于时钟脉冲串或序列的预定义数量的时钟脉冲。例如,如果时钟脉冲串或序列被定义为包括四个时钟脉冲,则当第四时钟脉冲完成时可以满足阈值。
在某一实施例中,同步器710可以对时钟脉冲串或序列中的时钟脉冲进行计数、并且响应于时钟脉冲的计数满足所述阈值将序列结束和/或脉冲串结束信号EOB 708发送到命令队列702,使得将命令队列702的输出级704的移位是响应于序列结束/脉冲串结束信号。在一些实施例中,如图7B所描绘的,裸片上控制器450包括读取命令队列702b和写入命令队列702c,裸片上控制器450可以进一步包括读取同步器710b和写入同步器710c,所述读取同步器对用于读取使能时钟信号RE的脉冲进行计数并且将序列结束/脉冲串结束读取信号EOB_RD 708b发送到读取命令队列702b以便移动输出级704b,所述写入同步器对用于数据选通信号DQS的脉冲进行计数并且将序列结束/脉冲串结束信号EOB_WT 708c发送到写入命令队列702c以便移动输出级704c。
在多个不同实施例中,序列结束/脉冲串结束信号708可以指代发送到命令队列702的指示时钟脉冲串或序列完成、或时钟脉冲的计数满足阈值的任何信号。在一些实施例中,使用同步器710对时钟周期进行计数并将序列结束/脉冲串结束信号708发送到命令队列702允许裸片上控制器450服务命令队列702中的后续命令,而无需等待来自设备控制器126的关于第一命令已经完成的任何指示(除了时钟脉冲串结束之外)。
命令队列702可以包括一个或多个序列结束/脉冲串结束输入,所述(多个)同步器710可以用于向命令队列702指示串操作完成。例如,读取同步器710b可以对读取使能脉冲(例如,4个脉冲、8个脉冲、16个脉冲、24个脉冲、32个脉冲、64个脉冲等)进行计数并且可以向读取命令队列702b发送序列结束/脉冲串结束读取信号708b(例如,添加到读取命令队列702b的脉冲、状态转变、序列结束/脉冲串结束指示符,和/或另一预定义信号),致使读取命令队列702b将输出指针或输出级704b到读取命令队列702b中的下一个命令。在另一实施例中,写入同步器710c可以对数据选通脉冲(例如,4个脉冲、8个脉冲、16个脉冲、24个脉冲、32个脉冲、64个脉冲等)进行计数并且可以向写入命令队列702c发送序列结束/脉冲串结束读取信号708c(例如,添加到写入命令队列702c的脉冲、状态转变、序列结束/脉冲串结束指示符,和/或另一预定义信号),致使写入命令队列702c将输出指针或输出级704c到写入命令队列702c中的下一个命令。
命令队列702可以接收一个或多个输入,如输入指针时钟、读取命令、写入命令、控制命令、序列结束/脉冲串结束读取信号708b、序列结束/脉冲串结束写入信号708c等。另外,命令队列702可以提供一个或多个输出,如输出指针时钟、读取使能输出、写使能输出等。在某些实施例中,命令和地址解码器在向命令队列702提供命令之前引入延迟,以考虑读取延时、写入延时等。
在某些实施例中,裸片上控制器450可以使用I/O线启用/禁用部件712基于来自命令队列702的输出级704的命令来启用和/或禁用一个或多个输入/输出线。在多个不同实施例中,输入/输出线可以被连接到第一端口152或第二端口154的触头550。启用输入/输出线可以指代将所述线配置为发送或接收信息。类似地,禁用输入/输出线可以指代将所述线配置为既不发送信息又不接收信息。例如,在多个不同实施例中,输入/输出线可以通过将线耦合和/或连接到发送数据的部件来启用发送,通过将线耦合和/或连接到接收数据的部件来启用接收,或者通过对所述线进行解耦和/或解除连接或者简单地通过忽略所述线上的信号来禁用。
在多个不同实施例中,基于来自命令队列702的输出级704的命令来启用或禁用输入/输出线路可以制备用于服务所述命令和传送相关联的数据的裸片上控制器450。例如,在来自命令队列702的输出级704的命令是读取命令的实施例中,裸片上控制器450响应于所述读取命令而启用用于接收读取使能时钟信号和用于发送数据和数据选通脉冲的一个或多个输入/输出线,并且禁用用于接收写数据和数据选通脉冲的一个或多个输入/输出线。在来自命令队列702的输出级704的命令是写入命令的另一实施例中,裸片上控制器450响应于所述写入命令而启用用于接收写数据和数据选通脉冲的一个或多个输入/输出线,并且禁用用于接收读取使能时钟信号和用于发送数据和数据选通脉冲的一个或多个输入/输出线。在另外的实施例中,第二端口154的多个不同的其他电触头550可以由裸片上控制器450基于命令队列702和/或相关联的命令的状态来启用或禁用。
图8描绘了用于管理非易失性存储器的命令队列的方法800。方法800开始,并且裸片上控制器450在命令队列702的输入级706处对多个传入命令进行排队。响应于接收804时钟脉冲串或序列中的时钟脉冲,裸片上控制器450开始(或继续)服务806来自命令队列702的输出级704的命令。如果没有接收804到时钟脉冲,则裸片上控制器450继续对多个传入命令进行排队802,并且方法800继续。
同步器710确定808是否达到时钟脉冲串或序列的结束(例如,时钟脉冲的计数是否满足阈值)。如果否,则方法800继续裸片上控制器450继续对任何传入命令进行排队802,并且响应于接收804后续时钟脉冲,继续服务806来自命令队列702的输出级704的命令。如果同步器710确定808已经达到时钟脉冲串或序列的结束(例如,时钟脉冲的计数满足阈值),则裸片上控制器450将命令队列702的输出级704移位810到后续命令,并且方法800继续。
在多个不同实施例中,用于对多个命令进行排队的手段可以包括命令队列702a、读取命令队列702b、写入命令队列702c、裸片上控制器450、FIFO、环形缓冲器、一系列存储器位置、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于对多个命令进行排队的类似或等效手段。
在多个不同实施例中,用于服务命令的手段可以包括:裸片上控制器450、控制和地址解码器、核非易失性存储器单元阵列、内部数据总线、数据锁存器、一个或多个复用器、一个或多个串行器-解串器、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于服务多个命令的类似或等效手段。
在多个不同实施例中,用于将命令队列702的输出级704移位的手段可以包括裸片上控制器450、命令队列702、同步器710、响应于序列结束/脉冲串结束信号708而增加指针的寄存器或缓冲器、其他逻辑硬件和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于使输出级704移位的类似或等效手段。
在不脱离本公开内容的精神或本质特征的情况下,能够以其他具体形式实施本公开内容。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。因此,本公开内容的范围由所附权利要求而不是由前述描述指示。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。
Claims (20)
1.一种装置,包括:
一个或多个存储器裸片,存储器裸片包括:
非易失性存储器单元阵列;
一组端口,所述一组端口包括第一端口和第二端口,所述第一端口包括第一多个电触头,并且所述第二端口包括第二多个电触头;以及
裸片上控制器,所述裸片上控制器经由所述一组端口进行通信以接收命令和地址信息并且传送用于对所述非易失性存储器单元阵列的数据操作的数据,所述裸片上控制器在第一模式中使用所述第一端口和所述第二端口并且在第二模式中使用所述第一端口而不使用所述第二端口,所述第二模式提供与传统类型的存储器裸片的接口的兼容性。
2.如权利要求1所述的装置,所述第一模式包括存储类存储器接口,其中,所述裸片上控制器经由所述第一端口接收所述命令和地址信息,并且经由所述第二端口传送所述数据。
3.如权利要求1所述的装置,所述第二模式提供NAND存储接口,其中,所述裸片上控制器经由所述第一端口既接收所述命令和地址信息又传送所述数据。
4.如权利要求1所述的装置,其中,所述裸片上控制器使用所述一组端口中的至少一组触头进行单端输入/输出,并且使用所述一组端口中的至少一对触头进行差分选通。
5.如权利要求1所述的装置,其中,所述裸片上控制器根据经由所述一组端口中的一个或多个命令和地址选通线接收到的命令和地址选通信号来接收所述命令和地址信息,并且根据经由所述一组端口中的一个或多个数据选通线通信的数据选通信号来传送所述数据,所述命令和地址选通信号独立于所述数据选通信号。
6.如权利要求5所述的装置,其中,除了当所述裸片上控制器接收到所述命令和地址信息时,所述命令和地址选通信号是无效的,并且除了当所述裸片上控制器传送所述数据时,所述数据选通信号是无效的。
7.如权利要求5所述的装置,进一步包括设备控制器,所述设备控制器:
发送所述命令和地址信息以及所述命令和地址选通信号;
对于写入操作,发送所述数据和所述数据选通信号;并且
对于读取操作,发送读取使能时钟信号并且接收所述数据和所述数据选通信号,所述数据选通信号是由所述裸片上控制器基于所述读取使能时钟信号而发送的。
8.如权利要求7所述的装置,其中,所述设备控制器生成所述命令和地址选通信号、所述读取使能时钟信号、以及所述数据选通信号中的一者或多者,而不向所述一个或多个存储器裸片发送自由运行时钟信号。
9.如权利要求7所述的装置,其中,所述设备控制器响应于在启动用于所述数据操作的所述命令和地址选通信号之后等待了一段延时时间而发送所述数据选通信号和所述读取使能时钟信号中的一者。
10.如权利要求7所述的装置,其中,所述设备控制器在发送用于所述数据操作的所述命令和地址信息与发送用于后续数据操作的命令和地址信息之间至少等待一段间隔时间。
11.如权利要求7所述的装置,其中,所述设备控制器在发送使能信号与发送所述命令和地址选通信号、所述读取使能时钟信号和所述数据选通信号中的一者或多者之间至少等待一段预定义前同步码时间。
12.如权利要求1所述的装置,其中,所述裸片上控制器在命令队列的输入级处对多个命令进行排队,响应于来自设备控制器的时钟脉冲突发而服务来自所述命令队列的输出级的命令,并且响应于所述时钟脉冲的计数满足阈值而向所述命令队列提供突发结束信号以将所述命令队列的所述输出级移位到后续命令。
13.一种装置,包括:
在存储器裸片上的非易失性存储器单元阵列;以及
控制器,所述控制器被配置成:
在命令队列的输入级处对用于对所述非易失性存储器单元阵列的数据操作的多个命令进行排队;
响应于来自设备控制器的时钟脉冲序列而服务来自所述命令队列的输出级的命令;并且
响应于所述时钟脉冲的计数满足阈值而将所述命令队列的所述输出级移位到后续命令。
14.如权利要求13所述的装置,其中,所述控制器包括同步器,所述同步器对所述时钟脉冲进行计数并且响应于所述时钟脉冲的所述计数满足所述阈值而将序列结束指示符添加到所述命令队列,其中,使所述命令队列的所述输出级移位响应所述序列结束指示符。
15.如权利要求13所述的装置,其中,所述控制器包括用于对读取命令进行排队的第一命令队列以及用于对写入命令进行排队的第二命令队列。
16.如权利要求13所述的装置,其中,所述控制器基于来自所述命令队列的所述输出级的所述命令来启用一个或多个输入/输出线。
17.如权利要求16所述的装置,其中,来自所述命令队列的所述输出级的所述命令是读取命令,并且所述控制器响应于所述读取命令而启用用于接收读取使能时钟信号和用于发送数据和数据选通脉冲的一个或多个输入/输出线,并且禁用用于接收写入数据和数据选通脉冲的一个或多个输入/输出线。
18.如权利要求16所述的装置,其中,来自所述命令队列的所述输出级的所述命令是写入命令,并且所述控制器响应于所述写入命令而启用用于接收写入数据和数据选通脉冲的一个或多个输入/输出线,并且禁用用于接收读取使能时钟信号和用于发送数据和数据选通脉冲的一个或多个输入/输出线。
19.一种系统,包括:
一个或多个存储器裸片,存储器裸片包括:
非易失性存储器单元阵列;
一组端口,所述一组端口包括第一端口和第二端口,所述第一端口包括第一多个电触头,并且所述第二端口包括第二多个电触头;以及
裸片上控制器,所述裸片上控制器在命令队列的输入级处对多个命令进行排队,响应于来自设备控制器的时钟脉冲突发而服务来自所述命令队列的输出级的命令,并且响应于所述时钟脉冲的计数满足阈值而将所述命令队列的所述输出级移位到后续命令;以及
设备控制器,所述设备控制器针对选定裸片经由所述一组端口与所述裸片上控制器通信,以发送命令和地址信息并且传送用于对所述选定裸片的数据操作的数据,其中,所述设备控制器在第一模式中使用所述第一端口和所述第二端口并且在第二模式中使用所述第一端口而不使用所述第二端口,所述第二模式提供与传统类型的存储器裸片的接口的兼容性。
20.如权利要求19所述的系统,其中:
所述第一模式包括存储类存储器接口,其中,所述设备控制器经由所述第一端口发送所述命令和地址信息,并且经由所述第二端口传送所述数据;并且
所述第二模式包括NAND存储接口,其中,所述设备控制器经由所述第一端口既发送所述命令和地址信息又传送所述数据。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201641038622 | 2016-11-11 | ||
IN201641038622 | 2016-11-11 | ||
US15/365,944 | 2016-11-30 | ||
US15/365,944 US10528255B2 (en) | 2016-11-11 | 2016-11-30 | Interface for non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108074593A true CN108074593A (zh) | 2018-05-25 |
CN108074593B CN108074593B (zh) | 2021-07-16 |
Family
ID=62108485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710196664.3A Active CN108074593B (zh) | 2016-11-11 | 2017-03-29 | 用于非易失性存储器的接口 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10528255B2 (zh) |
CN (1) | CN108074593B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109799959A (zh) * | 2019-01-22 | 2019-05-24 | 华中科技大学 | 一种提高开放通道固态盘写并行性的方法 |
CN111090598A (zh) * | 2018-10-24 | 2020-05-01 | 英韧科技(上海)有限公司 | 用于组合多个存储信道的系统和方法 |
CN111466025A (zh) * | 2018-07-05 | 2020-07-28 | 桑迪士克科技有限责任公司 | 具有池式电容器的非易失性存储器 |
CN113448498A (zh) * | 2020-03-25 | 2021-09-28 | 桑迪士克科技有限责任公司 | 非易失性存储器接口 |
CN113468518A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 用于针对非易失性存储器进行信息保护的方法和设备 |
CN113767435A (zh) * | 2019-02-22 | 2021-12-07 | 美光科技公司 | 存储器装置接口及方法 |
CN114207720A (zh) * | 2019-08-05 | 2022-03-18 | 赛普拉斯半导体公司 | 具有存储体分配的多端口非易失性存储器设备以及相关系统和方法 |
CN114930310A (zh) * | 2019-12-10 | 2022-08-19 | 美光科技公司 | 存储器子系统的有源输入/输出扩展器 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452594B2 (en) * | 2015-10-20 | 2019-10-22 | Texas Instruments Incorporated | Nonvolatile logic memory for computing module reconfiguration |
US10331203B2 (en) | 2015-12-29 | 2019-06-25 | Texas Instruments Incorporated | Compute through power loss hardware approach for processing device having nonvolatile logic memory |
US10254967B2 (en) | 2016-01-13 | 2019-04-09 | Sandisk Technologies Llc | Data path control for non-volatile memory |
US10528286B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Interface for non-volatile memory |
US10528267B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Command queue for storage operations |
US10936046B2 (en) * | 2018-06-11 | 2021-03-02 | Silicon Motion, Inc. | Method for performing power saving control in a memory device, associated memory device and memory controller thereof, and associated electronic device |
KR102605205B1 (ko) * | 2018-07-25 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 프로세싱 시스템 |
US11762558B2 (en) * | 2018-09-21 | 2023-09-19 | Samsung Electronics Co., Ltd. | Storage device having a controller that communicates with each of two memories through separate interfaces |
US11074182B2 (en) * | 2019-08-22 | 2021-07-27 | Micron Technology, Inc. | Three tiered hierarchical memory systems |
US11561726B2 (en) * | 2019-08-27 | 2023-01-24 | Micron Technology, Inc. | Read refresh via signal calibration for non-volatile memories |
US11081193B1 (en) | 2020-06-16 | 2021-08-03 | Sandisk Technologies Llc | Inverter based delay chain for calibrating data signal to a clock |
CN113934375B (zh) * | 2021-10-14 | 2024-04-19 | 西安紫光国芯半导体有限公司 | 固态硬盘ssd控制器、三维集成装置以及数据处理方法 |
US20230178126A1 (en) * | 2021-12-08 | 2023-06-08 | Advanced Micro Devices, Inc. | Read clock toggle at configurable pam levels |
US20230178138A1 (en) | 2021-12-08 | 2023-06-08 | Advanced Micro Devices, Inc. | Read clock start and stop for synchronous memories |
CN117806523A (zh) * | 2022-09-23 | 2024-04-02 | 戴尔产品有限公司 | 同步存取数据的方法、电子设备和计算机程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769050B1 (en) * | 2001-09-10 | 2004-07-27 | Rambus Inc. | Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules |
CN101641745A (zh) * | 2007-03-23 | 2010-02-03 | 晶像股份有限公司 | 多端口存储器设备的渐进功率控制 |
CN101877242A (zh) * | 2009-04-30 | 2010-11-03 | 旭曜科技股份有限公司 | 具隐藏更新及双端口能力的sram兼容嵌入式dram装置 |
US8019950B1 (en) * | 2008-03-27 | 2011-09-13 | Xilinx, Inc. | Memory controller interface for an embedded processor block core in an integrated circuit |
CN102955756A (zh) * | 2011-08-23 | 2013-03-06 | 三星电子株式会社 | 多端口存储元件和包括其的半导体设备及系统 |
CN103345448A (zh) * | 2013-07-10 | 2013-10-09 | 广西科技大学 | 寻址与存储一体化两读出一写入存储控制器 |
US20160125930A1 (en) * | 2007-12-21 | 2016-05-05 | Rambus Inc. | Method and apparatus for calibrating write timing in a memory system |
Family Cites Families (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5022004A (en) | 1988-10-28 | 1991-06-04 | Apollo Computer, Inc. | Method and apparatus for DRAM memory performance enhancement |
US5548795A (en) | 1994-03-28 | 1996-08-20 | Quantum Corporation | Method for determining command execution dependencies within command queue reordering process |
US5664114A (en) | 1995-05-16 | 1997-09-02 | Hewlett-Packard Company | Asynchronous FIFO queuing system operating with minimal queue status |
US5951635A (en) | 1996-11-18 | 1999-09-14 | Vlsi Technology, Inc. | Asynchronous FIFO controller |
KR100257865B1 (ko) | 1997-09-04 | 2000-06-01 | 윤종용 | 데이터 입/출력 제어 회로를 구비한 동기형 메모리장치 |
US6263410B1 (en) | 1998-09-15 | 2001-07-17 | Industrial Technology Research Institute | Apparatus and method for asynchronous dual port FIFO |
US6216178B1 (en) | 1998-11-16 | 2001-04-10 | Infineon Technologies Ag | Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution |
US6614798B1 (en) | 1999-03-30 | 2003-09-02 | Integrated Device Technology, Inc. | Asynchronous FIFO increment and decrement control for interfaces that operate at differing clock frequencies |
US6166564A (en) | 1999-07-09 | 2000-12-26 | Intel Corporation | Control circuit for clock enable staging |
EP1073064A1 (en) | 1999-07-30 | 2001-01-31 | STMicroelectronics S.r.l. | Non-volatile memory with the functional capability of simultaneous modification of the contents and burst mode read or page mode read |
US6393534B1 (en) | 1999-09-27 | 2002-05-21 | Ati International Srl | Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory |
US6393512B1 (en) | 1999-09-27 | 2002-05-21 | Ati International Srl | Circuit and method for detecting bank conflicts in accessing adjacent banks |
US8266367B2 (en) | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
JP2001283594A (ja) | 2000-03-29 | 2001-10-12 | Sharp Corp | 不揮発性半導体記憶装置 |
US6504768B1 (en) | 2000-08-25 | 2003-01-07 | Micron Technology, Inc. | Redundancy selection in memory devices with concurrent read and write |
KR100360409B1 (ko) | 2000-09-16 | 2002-11-13 | 삼성전자 주식회사 | 명령 및 어드레스 전용 스트로브 신호를 이용하는 반도체메모리장치 및 이의 명령 및 어드레스 입력방법 |
JP4907011B2 (ja) | 2001-04-27 | 2012-03-28 | 株式会社半導体エネルギー研究所 | 不揮発性メモリとその駆動方法、及び半導体装置 |
US6628563B1 (en) | 2001-07-09 | 2003-09-30 | Aplus Flash Technology, Inc. | Flash memory array for multiple simultaneous operations |
US6851011B2 (en) | 2001-08-09 | 2005-02-01 | Stmicroelectronics, Inc. | Reordering hardware for mass storage command queue |
US6385129B1 (en) | 2001-08-30 | 2002-05-07 | Micron Technology, Inc. | Delay locked loop monitor test mode |
US6839797B2 (en) | 2001-12-21 | 2005-01-04 | Agere Systems, Inc. | Multi-bank scheduling to improve performance on tree accesses in a DRAM based random access memory subsystem |
US6850438B2 (en) | 2002-07-05 | 2005-02-01 | Aplus Flash Technology, Inc. | Combination nonvolatile memory using unified technology with byte, page and block write and simultaneous read and write operations |
JP4225749B2 (ja) | 2002-08-07 | 2009-02-18 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
JP2004079002A (ja) | 2002-08-09 | 2004-03-11 | Renesas Technology Corp | 不揮発性記憶装置 |
JP4222803B2 (ja) | 2002-09-11 | 2009-02-12 | Necエレクトロニクス株式会社 | データ処理装置およびデータ処理回路 |
US6891753B2 (en) | 2002-09-24 | 2005-05-10 | Sandisk Corporation | Highly compact non-volatile memory and method therefor with internal serial buses |
US6940753B2 (en) | 2002-09-24 | 2005-09-06 | Sandisk Corporation | Highly compact non-volatile memory and method therefor with space-efficient data registers |
US6983428B2 (en) | 2002-09-24 | 2006-01-03 | Sandisk Corporation | Highly compact non-volatile memory and method thereof |
ITTO20021035A1 (it) | 2002-11-29 | 2004-05-30 | St Microelectronics Srl | Dispositivo di memoria non volatile a lettura e scrittura simulante. |
US7184508B2 (en) | 2002-12-23 | 2007-02-27 | Sun Microsystems, Inc. | Capturing data and crossing clock domains in the absence of a free-running source clock |
US7310396B1 (en) | 2003-03-28 | 2007-12-18 | Xilinx, Inc. | Asynchronous FIFO buffer for synchronizing data transfers between clock domains |
US7237043B2 (en) | 2003-11-21 | 2007-06-26 | Lsi Corporation | System for improving PCI write performance |
JP4284527B2 (ja) | 2004-03-26 | 2009-06-24 | 日本電気株式会社 | メモリインターフェイス制御回路 |
US7562193B2 (en) * | 2004-04-19 | 2009-07-14 | Nokia Corporation | Memory with single and dual mode access |
US7038952B1 (en) | 2004-05-04 | 2006-05-02 | Xilinx, Inc. | Block RAM with embedded FIFO buffer |
US7213095B2 (en) | 2004-06-08 | 2007-05-01 | Arm Limited | Bus transaction management within data processing systems |
US7277982B2 (en) | 2004-07-27 | 2007-10-02 | International Business Machines Corporation | DRAM access command queuing structure |
US20080109627A1 (en) | 2004-11-10 | 2008-05-08 | Matsushita Electric Industrial Co., Ltd. | Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device |
US20060140007A1 (en) | 2004-12-29 | 2006-06-29 | Raul-Adrian Cernea | Non-volatile memory and method with shared processing for an aggregate of read/write circuits |
KR100745374B1 (ko) | 2006-02-21 | 2007-08-02 | 삼성전자주식회사 | 멀티포트 반도체 메모리 장치 및 그에 따른 신호 입출력방법 |
US7391664B2 (en) | 2006-04-27 | 2008-06-24 | Ovonyx, Inc. | Page mode access for non-volatile memory arrays |
EP2022262A1 (en) | 2006-05-14 | 2009-02-11 | SanDisk IL Ltd. | Dual mode digital multimedia connector |
US7831801B1 (en) * | 2006-08-30 | 2010-11-09 | Xilinx, Inc. | Direct memory access-based multi-processor array |
US7684225B2 (en) | 2006-10-13 | 2010-03-23 | Ovonyx, Inc. | Sequential and video access for non-volatile memory arrays |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US7567471B2 (en) | 2006-12-21 | 2009-07-28 | Intel Corporation | High speed fanned out system architecture and input/output circuits for non-volatile memory |
WO2008127698A2 (en) | 2007-04-12 | 2008-10-23 | Rambus Inc. | Memory system with point-to-point request interconnect |
US8397010B1 (en) | 2007-04-16 | 2013-03-12 | Juniper Networks, Inc. | Convenient, flexible, and efficient management of memory space and bandwidth |
ATE495489T1 (de) | 2007-05-16 | 2011-01-15 | Nxp Bv | Fifo-puffer |
KR101456593B1 (ko) * | 2007-06-22 | 2014-11-03 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 메모리 시스템 |
CN100530138C (zh) | 2007-06-28 | 2009-08-19 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
CN100547566C (zh) | 2007-06-28 | 2009-10-07 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
US7652932B2 (en) | 2007-07-19 | 2010-01-26 | Mosaid Technologies Incorporated | Memory system having incorrupted strobe signals |
US7911824B2 (en) | 2007-08-01 | 2011-03-22 | Panasonic Corporation | Nonvolatile memory apparatus |
WO2009029335A1 (en) * | 2007-08-28 | 2009-03-05 | Rambus Inc. | Detachable interconnect for configurable width memory system |
US20090157985A1 (en) | 2007-12-18 | 2009-06-18 | Arm Limited | Accessing memory arrays |
CN101632068B (zh) | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
WO2009140112A1 (en) * | 2008-05-13 | 2009-11-19 | Rambus Inc. | Fractional program commands for memory devices |
US8914589B2 (en) | 2008-09-22 | 2014-12-16 | Infineon Technologies Ag | Multi-port DRAM architecture for accessing different memory partitions |
US8656093B1 (en) | 2008-12-01 | 2014-02-18 | Nvidia Corporation | Supporting late DRAM bank hits |
EP2377129A4 (en) | 2008-12-09 | 2013-05-22 | Rambus Inc | NON-VOLATILE MEMORY DEVICE FOR SIMULTANEOUS AND OVERLAP MEMORY OPERATIONS |
US20100185703A1 (en) | 2009-01-14 | 2010-07-22 | Tatu Ylonen Oy Ltd | Lock-free hash table based write barrier buffer for large memory multiprocessor garbage collectors |
US8169841B2 (en) | 2009-01-23 | 2012-05-01 | Micron Technology, Inc. | Strobe apparatus, systems, and methods |
US7970977B1 (en) | 2009-01-30 | 2011-06-28 | Xilinx, Inc. | Deadlock-resistant bus bridge with pipeline-restricted address ranges |
US20110041039A1 (en) | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
JP2011054249A (ja) | 2009-09-02 | 2011-03-17 | Toshiba Corp | 半導体記憶装置 |
US20110051519A1 (en) | 2009-09-03 | 2011-03-03 | Aplus Flash Technology, Inc. | Novel NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface |
US8775719B2 (en) | 2009-09-21 | 2014-07-08 | Aplus Flash Technology, Inc. | NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with parallel interface |
US8996785B2 (en) | 2009-09-21 | 2015-03-31 | Aplus Flash Technology, Inc. | NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface |
US8331123B2 (en) | 2009-09-21 | 2012-12-11 | Ocz Technology Group, Inc. | High performance solid-state drives and methods therefor |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
JP5259765B2 (ja) | 2011-03-29 | 2013-08-07 | 株式会社東芝 | 不揮発性半導体メモリ |
US8977810B2 (en) | 2011-04-08 | 2015-03-10 | Altera Corporation | Systems and methods for using memory commands |
US9584385B2 (en) | 2012-01-19 | 2017-02-28 | Comcast Cable Communications, Llc | Adaptive buffer control |
US9251055B2 (en) | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
JP2013174975A (ja) | 2012-02-23 | 2013-09-05 | Toshiba Corp | メモリシステムとそのデータ書き込み方法 |
US9087568B1 (en) | 2012-04-02 | 2015-07-21 | Rambus Inc. | Memory with merged control input |
CN104272283B (zh) | 2012-05-01 | 2017-08-04 | 马维尔国际贸易有限公司 | 用于dqs选通的系统和方法 |
JP5813589B2 (ja) | 2012-07-13 | 2015-11-17 | 株式会社東芝 | メモリシステムおよびその制御方法 |
US20140075174A1 (en) | 2012-09-10 | 2014-03-13 | Texas Instruments Incorporated | Boot State Restore from Nonvolatile Bitcell Array |
US9411722B2 (en) | 2013-03-04 | 2016-08-09 | Sandisk Technologies Llc | Asynchronous FIFO buffer for memory access |
US8832324B1 (en) | 2013-03-15 | 2014-09-09 | International Business Machines Corporation | First-in-first-out queue-based command spreading |
US9417816B2 (en) | 2014-01-02 | 2016-08-16 | Advanced Micro Devices, Inc. | Partitionable memory interfaces |
US10489158B2 (en) | 2014-09-26 | 2019-11-26 | Intel Corporation | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
US20160124639A1 (en) | 2014-11-05 | 2016-05-05 | SanDisk Technologies, Inc. | Dynamic storage channel |
US10254967B2 (en) | 2016-01-13 | 2019-04-09 | Sandisk Technologies Llc | Data path control for non-volatile memory |
US10175889B2 (en) | 2016-03-10 | 2019-01-08 | Toshiba Memory Corporation | Memory system capable of accessing memory cell arrays in parallel |
JP6122170B1 (ja) | 2016-03-16 | 2017-04-26 | 株式会社東芝 | 不揮発性ram及び不揮発性ramを含むシステム |
US10120816B2 (en) | 2016-07-20 | 2018-11-06 | Sandisk Technologies Llc | Bad column management with data shuffle in pipeline |
TWI607448B (zh) | 2016-09-07 | 2017-12-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US9851905B1 (en) | 2016-09-29 | 2017-12-26 | Intel Corporation | Concurrent memory operations for read operation preemption |
US10528286B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Interface for non-volatile memory |
US10528267B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Command queue for storage operations |
US10114589B2 (en) | 2016-11-16 | 2018-10-30 | Sandisk Technologies Llc | Command control for multi-core non-volatile memory |
US10275378B2 (en) | 2017-03-07 | 2019-04-30 | Western Digital Technologies, Inc. | Data buffer pointer fetching for direct memory access |
US10114586B1 (en) | 2017-06-22 | 2018-10-30 | Western Digital Technologies, Inc. | System and method for using host command data buffers as extended memory device volatile memory |
-
2016
- 2016-11-30 US US15/365,944 patent/US10528255B2/en active Active
-
2017
- 2017-03-29 CN CN201710196664.3A patent/CN108074593B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769050B1 (en) * | 2001-09-10 | 2004-07-27 | Rambus Inc. | Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules |
CN101641745A (zh) * | 2007-03-23 | 2010-02-03 | 晶像股份有限公司 | 多端口存储器设备的渐进功率控制 |
US20160125930A1 (en) * | 2007-12-21 | 2016-05-05 | Rambus Inc. | Method and apparatus for calibrating write timing in a memory system |
US8019950B1 (en) * | 2008-03-27 | 2011-09-13 | Xilinx, Inc. | Memory controller interface for an embedded processor block core in an integrated circuit |
CN101877242A (zh) * | 2009-04-30 | 2010-11-03 | 旭曜科技股份有限公司 | 具隐藏更新及双端口能力的sram兼容嵌入式dram装置 |
CN102955756A (zh) * | 2011-08-23 | 2013-03-06 | 三星电子株式会社 | 多端口存储元件和包括其的半导体设备及系统 |
CN103345448A (zh) * | 2013-07-10 | 2013-10-09 | 广西科技大学 | 寻址与存储一体化两读出一写入存储控制器 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111466025B (zh) * | 2018-07-05 | 2023-09-26 | 桑迪士克科技有限责任公司 | 具有池式电容器的非易失性存储器 |
CN111466025A (zh) * | 2018-07-05 | 2020-07-28 | 桑迪士克科技有限责任公司 | 具有池式电容器的非易失性存储器 |
CN111090598A (zh) * | 2018-10-24 | 2020-05-01 | 英韧科技(上海)有限公司 | 用于组合多个存储信道的系统和方法 |
CN111090598B (zh) * | 2018-10-24 | 2024-03-08 | 英韧科技股份有限公司 | 用于组合多个存储信道的系统和方法 |
CN109799959B (zh) * | 2019-01-22 | 2020-07-10 | 华中科技大学 | 一种提高开放通道固态盘写并行性的方法 |
CN109799959A (zh) * | 2019-01-22 | 2019-05-24 | 华中科技大学 | 一种提高开放通道固态盘写并行性的方法 |
CN113767435A (zh) * | 2019-02-22 | 2021-12-07 | 美光科技公司 | 存储器装置接口及方法 |
CN116049050B (zh) * | 2019-08-05 | 2023-10-31 | 赛普拉斯半导体公司 | 具有存储体分配的多端口非易失性存储器设备以及相关系统和方法 |
CN114207720A (zh) * | 2019-08-05 | 2022-03-18 | 赛普拉斯半导体公司 | 具有存储体分配的多端口非易失性存储器设备以及相关系统和方法 |
US11449441B2 (en) | 2019-08-05 | 2022-09-20 | Cypress Semiconductor Corporation | Multi-ported nonvolatile memory device with bank allocation and related systems and methods |
CN114207720B (zh) * | 2019-08-05 | 2023-03-14 | 赛普拉斯半导体公司 | 具有存储体分配的多端口非易失性存储器设备以及相关系统和方法 |
CN116049050A (zh) * | 2019-08-05 | 2023-05-02 | 赛普拉斯半导体公司 | 具有存储体分配的多端口非易失性存储器设备以及相关系统和方法 |
CN114930310A (zh) * | 2019-12-10 | 2022-08-19 | 美光科技公司 | 存储器子系统的有源输入/输出扩展器 |
CN113448498A (zh) * | 2020-03-25 | 2021-09-28 | 桑迪士克科技有限责任公司 | 非易失性存储器接口 |
CN113448498B (zh) * | 2020-03-25 | 2024-04-16 | 桑迪士克科技有限责任公司 | 非易失性存储器接口 |
CN113468518A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 用于针对非易失性存储器进行信息保护的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108074593B (zh) | 2021-07-16 |
US10528255B2 (en) | 2020-01-07 |
US20180136843A1 (en) | 2018-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108074593A (zh) | 用于非易失性存储器的接口 | |
US10528267B2 (en) | Command queue for storage operations | |
US10528286B2 (en) | Interface for non-volatile memory | |
CN107025069A (zh) | 非易失性存储器的数据路径控制 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN104951412B (zh) | 一种通过内存总线访问的存储装置 | |
US10114589B2 (en) | Command control for multi-core non-volatile memory | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
KR101560469B1 (ko) | 메모리 시스템 컨트롤러들을 포함하는 장치 및 관련 방법들 | |
CN108733581A (zh) | 交叉点存储器阵列寻址 | |
CN103336745B (zh) | 一种基于ssd缓存的fc hba及其设计方法 | |
US9990138B2 (en) | Out of order SGL read sorting in a mixed system with PRP read or system that supports only SGL reads | |
CN109923530A (zh) | 混合式存储器中的数据重新定位 | |
KR20100133288A (ko) | 계층적 메모리 구조를 위한 메모리 장치 | |
CN109582596A (zh) | 从具有不同读取和写入定时的模式寄存器进行读取 | |
CN108431896A (zh) | 用于非易失性储存阵列操作的数据寄存器复制 | |
CN110447075B (zh) | 多内核管芯上存储器微控制器 | |
CN105528299B (zh) | 读取命令排程方法以及使用该方法的装置 | |
US10241938B1 (en) | Output data path for non-volatile memory | |
CN108701086A (zh) | 用于通过重新映射地址空间来提供连续可寻址存储器区域的方法和设备 | |
US20230092562A1 (en) | System, device, and method for memory interface including reconfigurable channel | |
CN113094303A (zh) | 用于基于动态接近度的管芯上终结的技术 | |
CN108780427A (zh) | 用于促使内容模式被存储到存储器装置的存储器单元的技术 | |
CN108139993A (zh) | 内存装置、内存控制器、数据缓存装置及计算机系统 | |
CN109783404A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |