CN107111574B - 存储器总线管理 - Google Patents
存储器总线管理 Download PDFInfo
- Publication number
- CN107111574B CN107111574B CN201580071451.7A CN201580071451A CN107111574B CN 107111574 B CN107111574 B CN 107111574B CN 201580071451 A CN201580071451 A CN 201580071451A CN 107111574 B CN107111574 B CN 107111574B
- Authority
- CN
- China
- Prior art keywords
- sub
- memory
- list
- nonvolatile memory
- 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.)
- Active
Links
Classifications
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- 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
- 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
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
一种管理存储器总线的方法,所述方法包括:标识执行命令所需要的子操作;维持仅包含指向被标识为可用的单独裸片的释放的未执行子操作的释放子操作列表;访问所述裸片直到所述列表为空为止;随后,轮询以便标识可用的裸片;以及随后,恢复通过仅执行来自所述列表的子操作来访问所述裸片,直到所述列表为空为止。
Description
背景技术
本申请涉及对如半导体闪存等可重新编程非易失性存储器的操作。
能够对电荷进行非易失性存储的固态存储器(特别是采取被封装为小形状因数卡的EEPROM和闪速EEPROM的形式)已经变成各种移动和手持式设备(尤其是信息电器和消费者电子产品)中的精选存储设备。不像同样作为固态存储器的RAM(随机存取存储器),闪存是非易失性的并且甚至在关掉电源之后保留其存储数据。而且,不像ROM(只读存储器),类似于磁盘存储设备,闪存是可重写的。
闪速EEPROM类似于EEPROM(电可擦除可编程只读存储器),因为它是可以被擦除的并且使新数据写入或“编程”到其存储器单元中的非易失性存储器。两者都利用场效应晶体管结构中被定位在半导体衬底中在源极区域与漏极区域之间的沟道区域之上的浮置(未连接的)导电栅极。然后,通过浮栅提供控制栅极。晶体管的阈值电压特性由保留在浮栅上的电荷的量控制。也就是说,对于浮栅上的给定电荷水平,在“接通”晶体管以便允许其源极区域与漏极区域之间导电之前,存在将向控制栅极施加的相应电压(阈值)。如闪速EEPROM等闪存允许同时擦除整个存储器单元块。
浮栅可以保持一些电荷,并且因此可以被编程到阈值电压窗口内的任何阈值电压水平。阈值电压窗口的大小由设备的最小和最大阈值水平界定,所述最小和最大阈值水平进而与可以编程到浮栅上的所述一些电荷相对应。阈值窗口通常取决于存储器设备的特性、操作条件和历史。原则上,窗口内的每个不同的可分解阈值电压水平范围可以用于指定单元的确切存储器状态。
非易失性存储器设备还由具有用于存储电荷的介电层的存储器单元制成。使用介电层而不是此前描述的导电浮栅元件。ONO介电层延伸跨过源极扩散与漏极扩散之间的沟道。一个数据位的电荷被定位在与漏极相邻的介电层中,而另一个数据位的电荷被定位在与源极相邻的介电层中。通过分别读取电介质内的空间分离电荷储存区域的二进制状态来实施多状态数据存储。
许多非易失性存储器沿着衬底(例如,硅衬底)表面形成为二维(2D)或平面存储器。其他非易失性存储器是三维(3D)存储器,所述3D存储器单片地形成于具有被布置在衬底上方的有源区域的一个或多个物理存储器单元级中。
发明内容
在一些非易失性存储器系统中,两个或更多个存储器裸片可以通过共享总线与存储器控制器通信。如果没有有效地管理,则这种总线可能变成瓶颈。具体地,当通过轮询裸片以便标识裸片何时就绪来占用存储器总线时,这使得存储器总线对其他目的而言不可用,即使当其他裸片可能就绪并且可以使用时。存储器总线管理方案的示例将所接收到的命令解析成子命令,所述子命令然后各自占用存储器总线连续的时间段(即它们不中断地使用存储器总线)。仅当子操作的相应裸片就绪时,所述子操作被释放用于执行。因此,当子操作被释放时,其可以被立刻执行而不轮询相应裸片。轮询仅发生在不再存在所释放的子操作用于执行时。因此,只要存在具有被标识为就绪的相应裸片的子操作,就在不延迟轮询的情况下继续执行子操作。仅当不再存在具有被标识为就绪的相应裸片的子操作时轮询发生,从而使得由于轮询而不失去执行的机会。
一种管理存储器总线的方法的示例,所述方法包括:接收多个存储器访问命令,所述多个存储器访问命令指向连接至所述存储器总线的多个非易失性存储器裸片;标识执行所述多个存储器访问命令所需要的子操作,执行单独存储器访问命令需要执行两个或更多个子操作;维持执行所述多个存储器访问命令所需要的子操作的第一列表,所述第一列表包含指向未被标识为可用的单独裸片的未释放的未执行子操作以及指向被标识为可用的并且门控条件所适用的单独裸片的未执行子操作;维持执行所述多个存储器访问命令所需要的子操作的第二列表,所述第二列表仅包含指向被标识为可用的单独裸片的释放的未执行子操作;通过仅执行来自所述第二列表的子操作经由所述存储器总线访问所述多个存储器裸片,直到所述第二列表为空;随后,当所述第二列表为空时,轮询所述多个非易失性存储器裸片以便标识所述多个非易失性存储器裸片中可用的单独非易失性存储器裸片;响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片,将一个或多个子操作从所述第一列表移至所述第二列表;以及随后,恢复通过仅执行来自所述第二列表的子操作经由所述存储器总线访问所述多个非易失性存储器裸片,直到所述第二列表为空。
可以响应于所述第二列表变为空而发生轮询所述多个非易失性存储器裸片,并且当所述第二列表中存在至少一个子操作时可以不发生轮询。操作可以在轮询所述多个非易失性存储器裸片与经由所述存储器总线访问所述多个非易失性存储器裸片之间交替,直到执行所述多个存储器访问命令所需要的所有子操作被执行为止。一旦向所述第二列表添加了新条目,就可以发生恢复访问所述多个非易失性存储器裸片。执行单独子操作可以是在不中断连续时间段的情况下占用所述存储器总线的原子执行。所述多个存储器访问命令可以包括用于将数据从第一物理位置复制到第二物理位置的重定位命令,并且所述一个或多个子操作可以包括来自所述第一位置的一个或多个读取以及向所述第二位置的一个或多个写入,并且将所述一个或多个写入从所述第一列表移至所述第二列表可以仅在完成所述一个或多个读取之后发生。可以根据与由主机指定执行所述多个存储器访问命令的顺序相对应的执行子操作的顺序来将未执行子操作从所述第一列表移至所述第二列表。可以根据由存储器控制器所指定的顺序将与存储器管理数据有关的未执行的写入子操作从所述第一列表移至所述第二列表。当响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片而将所述一个或多个子操作从所述第一列表移至所述第二列表时,可以延迟将所述一个或多个子操作中的子操作从所述第一列表移至所述第二列表,以便由此维持功耗水平低于功耗限制。当响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片而将所述一个或多个子操作从所述第一列表移至所述第二列表时,可以根据优先级方案对子操作进行优先级排序。所述优先级方案可以将读取读出子操作的优先级排序为高于读取传输子操作。
一种非易失性存储器系统的示例,所述系统包括:多个非易失性存储器裸片;存储器总线,所述存储器总线连接至所述多个非易失性存储器裸片;接口,所述接口被配置成用于接收指向所述多个非易失性存储器裸片的多个存储器访问命令;命令解析单元,所述命令解析单元被配置成用于标识执行所述多个存储器访问命令所需要的子操作,执行单独存储器访问命令需要执行两个或更多个子操作;执行所述多个存储器访问命令所需要的子操作的第一列表,所述第一列表包含未释放的未执行子操作;执行所述多个存储器访问命令所需要的子操作的第二列表,所述第二列表仅包含指向被标识为可用的单独非易失性存储器裸片的释放的未执行子操作,通过仅执行来自所述第二列表的子操作经由所述存储器总线访问所述多个非易失性存储器裸片,直到所述第二列表为空;裸片轮询单元,所述裸片轮询单元被配置成用于轮询所述多个非易失性存储器裸片以便标识所述多个非易失性存储器裸片中可用的单独非易失性存储器裸片;以及列表更新单元,所述列表更新单元被配置成用于响应于将所述多个非易失性存储器裸片中的单独非易失性存储器裸片标识为可用而通过针对所述单独非易失性存储器裸片释放子操作来更新所述第二列表。
所述裸片轮询单元可以被配置成用于每当所述第二列表中存在至少一个未执行子操作时保持不活动。所述命令解析单元可以被配置成用于标识原子的子操作,从而使得单独子操作占用所述存储器总线而不中断连续时段。所述列表更新单元可以根据由主机或存储器控制器所指定的顺序将指向通过所述轮询单元被标识为可用的单独非易失性存储器裸片的单独未执行子操作从所述第一列表移至所述第二列表。所述列表更新单元可以被配置成用于将指向通过所述轮询单元被标识为可用的单独非易失性存储器裸片的单独未执行子操作从所述第一列表移至所述第二列表,从而使得繁忙存储器裸片的数量不超过少于所述多个存储器裸片中的所有存储器裸片的最大数量。所述多个非易失性存储器裸片中的单独非易失性存储器裸片可以是三维非易失性存储器裸片,所述三维非易失性存储器裸片单片地形成在具有被布置在硅基板上方的有源区域的一个或多个物理级存储器单元阵列中。非易失性存储器系统可以包括:附加存储器总线,所述附加存储器总线连接至附加非易失性存储器裸片;并且所述第一列表可以包含指向所述多个非易失性存储器裸片以及所述附加非易失性存储器裸片中的单独非易失性存储器裸片的未执行子操作,并且所述第二列表仅包含指向所述多个非易失性存储器裸片中的单独非易失性存储器裸片的未执行子操作。
一种管理存储器总线的方法的示例,所述方法包括:接收多个存储器访问命令,所述多个存储器访问命令指向连接至所述存储器总线的多个非易失性存储器裸片;标识执行所述多个存储器访问命令所需要的子操作,执行单独存储器访问命令需要执行两个或更多个子操作,每个子操作是在不中断连续时间段的情况下占用所述存储器总线的执行;维持执行所述多个存储器访问命令所需要的未释放子操作的第一列表,所述第一列表包含指向未被标识为可用的单独裸片的未执行子操作以及指向已经具有释放的子操作的裸片的未执行子操作;维持执行所述多个存储器访问命令所需要的释放子操作的第二列表,所述第二列表仅包含指向被标识为可用的单独裸片的未执行子操作,每个被标识为可用的非易失性存储器裸片具有最多一个未执行子操作;通过仅执行来自所述第二列表的释放的子操作经由所述存储器总线访问所述多个存储器裸片,直到所述第二列表为空;随后,响应于确定所述第二列表为空,轮询所述多个非易失性存储器裸片以便标识所述多个非易失性存储器裸片中可用的单独非易失性存储器裸片;响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片,将一个或多个子操作从所述第一列表释放到所述第二列表;随后,恢复通过仅执行来自所述第二列表的释放的子操作经由所述存储器总线访问所述多个非易失性存储器裸片,直到所述第二列表为空,从所述恢复开始没有发生轮询所述多个非易失性存储器裸片直到所述第二列表为空;以及随后,在轮询所述多个非易失性存储器裸片与访问所述多个存储器裸片之间交替,直到执行所述多个存储器访问命令所需要的所有子操作被执行原子。
可以根据以下各项中的至少一项执行将所述一个或多个子操作从所述第一列表释放到所述第二列表:由主机所指定的顺序、由存储器控制器指定的顺序、或者电力需求。所述多个非易失性存储器裸片中的单独非易失性存储器裸片可以是三维非易失性存储器裸片,所述三维非易失性存储器裸片单片地形成在具有被布置在硅基板上方的有源区域的一个或多个物理级存储器单元阵列中。标识子操作可以包括:针对每个接收到的读取命令标识读取读出子操作和读取传输子操作;针对每个接收到的写入命令标识写入传输子操作和写入状态检查子操作;以及针对每个接收到的擦除命令标识擦除启动子操作和擦除状态检查子操作。所述方法还可以包括:接收多个非访问命令,执行单独非访问命令需要执行一个或多个子操作。
各种方面、优点、特征和实施例包括在其示例性示例的以下描述中,所述描述应当结合附图进行。
附图说明
图1示意性地展示了存储器系统的主要硬件部件。
图2示意性地展示了非易失性存储器单元。
图3展示了针对浮栅可以存储的四种不同电荷Q1至Q4的源极-漏极电流ID与控制栅极电压VCG之间的关系。
图4A示意性地展示了组织成NAND串的存储器单元串。
图4B展示了存储器单元的NAND阵列210的示例,所述NAND阵列由NAND串50(如图4A中所示出的NAND串)构成。
图5展示了以NAND配置来组织的被并行读出或编程的存储器单元页。
图6A至图6C展示了对存储器单元群进行编程的示例。
图7示出了3D NAND串的物理结构的示例。
图8示出了U形3D NAND串的物理结构的示例。
图9在y-z平面中示出了具有U形NAND串的3D NAND存储器阵列的横截面的示例。
图10示出了y-z平面上具有直NAND串的3D NAND存储器的截面的示例。
图11展示了存储器总线管理的示例。
图12展示了可以如何处理命令的示例。
图13示出了存储器总线管理中的步骤的示例。
图14展示了具有两个存储器总线的存储器系统。
具体实施方式
存储器系统
半导体存储器设备包括易失性存储器设备(如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”))、非易失性存储器设备(如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存(其还可以被考虑为EEPROM的子集)、铁电随机存取存储器(“FRAM”)、和磁阻随机存取存储器(“MRAM”))、以及能够存储信息的其他半导体元件。每种类型的存储器设备可以具有不同配置。例如,闪存设备可以被配置成NAND或NOR配置。
存储器设备可由无源和/或有源元件以任何组合来形成。通过非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,在一些实施例中,所述元件包括如反熔丝相变材料等电阻率切换存储元件以及(可选地)如二极管等操控元件。进一步通过非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪存设备元件,在一些实施例中,所述元件包括如浮栅、导电纳米颗粒、或电荷存储介电材料等包含了电荷存储区域的元件。
多个存储器元件可以被配置为使得它们串联或使得每个元件是可单独访问的。通过非限制性示例的方式,NAND配置(NAND存储器)中的闪存设备通常包含串联的存储器元件。NAND存储器阵列可以被配置为使得阵列包括多个存储器串,其中,串包括共享单个位线并作为群组被访问的多个存储器元件。替代性地,存储器元件可以被配置为使得每一个元件是可单独访问的(例如,NOR存储器阵列)。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其他方式配置。
位于基板内和/或上方的半导体存储器元件可以被安排在两个或三个维度(如二维存储器结构或三维存储器结构)中。
在二维存储器结构中,半导体存储器元件被安排在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被安排在基本上平行于支撑存储器元件的基板的主表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上方或在其中形成存储器元件层的晶片,或者其可以是在形成存储器元件之后附接至其上的载体基板。作为非限制性示例,基板可以包括如硅等半导体。
可以在单个存储器设备级中将存储器元件安排成有序阵列,如在多个行和/或列中。然而,可以在非规则或非正交配置中排列存储器元件。存储器元件可以各自具有两个或更多个电极或接触线,如位线和字线。
三维存储器阵列被安排成使得存储器元件占据多个平面或多个存储器设备级,由此在三个维度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直于并且x和z方向基本上平行于基板的主表面)中形成结构。
作为非限制性示例,三维存储器结构可以被垂直地安排成多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可以被安排成多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),每列在每列中具有多个存储器元件。可以采用二维配置中(例如,在x-z平面中)来安排所述列,导致存储器元件的三维安排,元件位于多个垂直堆叠的存储器平面上。存储器元件在三个维度中的其他配置也可以构成三维存储器阵列。
通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以被耦合在一起,以便在单个水平(例如,x-z)存储器设备级内形成NAND串。替代性地,存储器元件可以被耦合在一起,以便形成横跨多个水平存储器设备级的垂直NAND串。可以设想其他三维配置,其中,一些NAND串包含单个存储器级中的存储器元件,而其他串包含跨越多个存储器级的存储器元件。还可以在NOR配置中和在ReRAM配置中设计三维存储器阵列。
通常,在单片式三维存储器阵列中,在单个基板上方形成一个或多个存储器设备级。可选地,单片式三维存储器阵列还可以具有至少部分地位于单个基板内的一个或多个存储器层。作为非限制性示例,基板可以包括如硅等半导体。在单片式三维阵列中,构成阵列的每个存储器设备级的层通常在阵列的基础存储器设备级的层上形成。然而,单片式三维存储器阵列的邻近存储器设备级的层可以被共享或在存储器设备级之间存在中间层。
然后,再次,二维阵列可以被单独地形成并且然后被封装在一起,以便形成具有多个存储器层的非单片式存储器设备。例如,非单片式堆叠存储器可以通过在单独地基板上形成存储器级然后将存储器级堆叠在彼此顶上来构造。可以减薄基板或者可以在堆叠之前将其从存储器设备级中移除,但是因为存储器设备级最初地在单独的基板上方形成,所以所产生的存储器阵列不是单片式三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片式或非单片式)可以在单独的芯片上形成然后被封装在一起,以便形成堆叠芯片存储器设备。
存储器元件的操作以及与存储器元件的通信通常需要相关联的电路系统。作为非限制性示例,存储器设备可以具有用于控制和驱动存储器元件完成如编程和读取等功能的电路系统。此相关联的电路系统可以位于与存储器元件相同的基板上和/或位于单独的基板上。例如,用于存储器读-写操作的控制器可以位于单独的控制器芯片上和/或位于与存储器元件相同的基板上。
在其他实施例中,可以使用不同于在此所描述的二维和三维示例性结构的存储器类型。
图1示意性地展示了适合于实施在此所描述的技术中的一些技术的存储器系统的主要硬件部件。存储器系统90通常通过主机接口与主机80一起操作。存储器系统可以采用如存储器卡等可移动存储器形式或者可以采用嵌入式存储器系统的形式。存储器系统90包括存储器102,所述存储器的操作由控制器100控制。存储器102包括分布在一个或多个集成电路芯片上的一个或多个非易失性存储器单元阵列。控制器100可以包括接口电路110、处理器120、ROM(只读存储器)122、RAM(随机存取存储器)130、可编程非易失性存储器124、以及附加部件。控制器通常被形成为ASIC(专用集成电路)以及包括在这种ASIC中通常取决于特定应用的部件。存储器系统可以在各种不同环境中与各种主机一起使用。例如,主机可以是移动设备,如手机、膝上型计算机、音乐播放器(例如,MP3播放器)、全球定位系统(GPS)设备、平板计算机等。这种存储器系统可以是长时期不活动且没有电力的,在所述长时期期间它们可能经受包括高温度、振动、电磁场等各种状况。可以为了宽范围环境条件(例如,宽温度范围)下的低功耗、高数据保留以及可靠性而选择这种主机的存储器系统(无论是可移除的还是嵌入式的)。其他主机可以是固定的。例如,用于互联网应用的服务器可以使用非易失性存储器系统来存储通过互联网发送和接收的数据。这种系统可以在延长的时段(例如,一年或更多)内保持上电而不中断,并且可以贯穿这些时段被频繁地访问。单独块可以被频繁写入和擦除,从而使得耐久性可能是主要关注问题。
物理存储器结构
图2示意性地展示了非易失性存储器单元。存储单元10可以由具有电荷存储单元20的场效应晶体管实施,如浮栅或电荷俘获(介电)层。存储器单元10还包括源极14、漏极16和控制栅极30。
存在许多现今使用的商业上成功的非易失性固态存储器设备。这些存储器设备可以采用不同类型的存储器单元,每种类型具有一个或多个电荷存储器元件。
在实践中,通常通过当参考电压被施加到控制栅极时读出跨单元的源极电极和漏极电极的传导电流来读取单元的存储器状态。因此,对单元的浮栅上的每个给定电荷而言,可以检测关于固定参考控制栅极电压的相应传导电流。类似地,可编程到浮栅上的电荷的范围限定相应阈值电压窗口或相应传导电流窗口。
替代性地,代替在划分的电流窗口当中检测传导电流,有可能在控制栅极处设置测试中的给定存储器状态的阈值电压,并且在传导电流低于或高于阈值电流(单元读取参考电流)时进行检测。在一个实施方式中,通过检查传导电流通过位线的电容放电的速率来完成对相对于阈值电流的传导电流的检测。
图3展示了针对浮栅可以在任何时候选择性地存储的四种不同电荷Q1至Q4的源极-漏极电流ID与控制栅极电压VCG之间的关系。对于固定漏极电压偏置,四条实线ID对VCG曲线表示可以编程到存储器单元的浮栅上的七种可能电荷水平中分别对应于四种可能存储器状态的四种可能电荷水平。作为示例,单元群的阈值电压窗口可以是从0.5V到3.5V的范围。可以通过将阈值窗口划分成每个0.5V间隔的区域来界定七种可能的编程存储器状态“0”、“1”、“2”、“3”、“4”、“5”、“6”和擦除状态(未示出)。例如,如果使用如所示出的2μA的参考电流I参考,则使用Q1来编程的单元可以被视为处于存储器状态“1”,因为其曲线与I参考相交于由VCG=0.5V和1.0V界定的阈值窗口区域中。类似地,Q4处于存储器状态“5”。
如从以上描述中可看出的,使存储器单元存储的状态越多,其阈值电压窗口被划分得越精细。例如,存储器设备可以具有存储器单元,所述存储器单元具有范围为从-1.5V到5V的阈值电压窗口。这提供了6.5V的最大宽度。如果存储器单元用于存储16种状态,则每种状态在阈值窗口中可以占据从200mV到300mV。这将需要编程和读取操作的更高精度,以便能够达到所需要的分辨率。
NAND结构
图4A示意性地展示了组织成NAND串的存储器单元串。NAND串50包括通过其源极和漏极菊链的存储器晶体管M1、M2、...、Mn(例如,n=4、8、16或更高)系列。选择晶体管S1、S2对控制存储器晶体管链的分别经由NAND串的源极端子54和漏极端子56连接至外界。在存储器阵列中,当源极选择晶体管S1接通时,源极端子耦合至源极线(见图4B)。类似地,当漏极选择晶体管S2接通时,NAND串的漏极端子耦合至存储器阵列的位线。链中的每个存储器晶体管10充当存储器单元。其具有用于存储给定量的电荷的电荷存储元件20以便表示预期存储器状态。每个存储器晶体管的控制栅极30允许对读取和写入操作进行控制。如将在图4B中看到的,NAND串一行的相应存储器晶体管的控制栅极30都连接至同一字线。类似地,选择晶体管S1、S2中的每个选择晶体管的控制栅极32提供对分别经由其源极端子54和漏极端子56对NAND串的访问的控制。同样地,NAND串行的相应选择晶体管的控制栅极32全部连接至同一选择线。
当在编程期间读取或验证NAND串内的寻址存储器晶体管10时,其控制栅极30被供应有适当的电压。同时,NAND串50中的非寻址存储器晶体管的剩余部分通过在其控制栅极上应用足够的电压而被完全接通。以此方式,有效地创建从单独存储器晶体管的源极到NAND串的源极端子54的导电路径,并且对单独存储器晶体管的漏极到单元的漏极端子56同样如此。
图4B展示了存储器单元的NAND阵列210的示例,所述NAND阵列由NAND串50(如图4A中所示出的NAND串)构成。沿着每个NAND串列,位线(比如,位线36)耦合至每个NAND串的漏极端子56。沿着个NAND串排,源极线(比如,源极线34)耦合至每个NAND串的源极端子54。而且,沿着NAND串排中的存储器单元行的控制栅极连接至字线(比如,字线42)。沿着NAND串排中的选择晶体管行的控制栅极连接至选择线(比如,选择线44)。NAND串排中的整个存储器单元行可以通过所述NAND串排的字线和选择线上的适当电压而被寻址。
图5展示了以NAND配置来组织的被并行读出或编程的存储器单元页。图5本质上示出了图4B的存储器阵列210中的NAND串50排,其中,像图4A中那样明确地示出了每个NAND串的细节。物理页(比如,页60)是能够并行读出或编程的存储器单元组。这通过读出放大器212的相应页完成。将读出结果锁存在相应锁存器组214中。每个读出放大器可以经由位线耦合至NAND串。页由页的单元的共同连接至字线42的控制栅极使能,并且每个单元可由读出放大器访问,所述读出放大器可经由位线36访问。作为示例,当分别读出或编程单元60的页时,分别将读出电压或编程电压连同位线上的适当电压一起施加到共同字线WL3。
存储器的物理组织
闪存与其他类型的存储器之间的一个差别是闪存单元通常从擦除状态编程。也就是说,通常排空浮栅的电荷。然后编程将期望量的电荷添加回至浮栅中。闪存通常支持从浮栅中移除电荷的一部分以便从更多编程状态到更少编程状态。这意味着更新的数据无法覆写现有数据,并且相反写入到之前的未写入位置。
此外,擦除用于将所有电荷从浮栅中排空,并且通常花费相当多的时间。由于这个原因,逐单元或者甚至逐页地擦除将是繁琐且非常慢的。在实践中,存储器单元阵列被分成大量存储器单元块。如对于闪速EEPROM系统普通的,块是擦除单位。也就是说,每个块包含同时被擦除的最小数量的存储器单元。尽管在待擦除块中并行地聚合大量单元将提高擦除性能,但是大尺寸块还需要处理大量更新和过时数据。
每个块通常被划分成许多物理页。逻辑页是包含等于物理页中的单元数量的许多位的编程或读取的单位。在每单元存储一个位的存储器中(单级单元,或“SLC”存储器),一个物理页存储一个逻辑页的数据。在每单元存储两个位的存储器中,物理页存储两个逻辑页。存储在物理页中的逻辑页的数量因此反映每单元存储的位的数量。术语多级单元(或“MLC”)通常用于指每单元存储多于一个位的存储器,包括每单元存储三个位(TLC)、每单元存储四个位、或每单元存储更多位的存储器。在一个实施例中,单独的页可以被划分成多个段,并且每个段可以包含作为基本编程操作一次写入的最小数量的单元。一个或多个逻辑页的数据通常存储在一个存储器单元行中。页可以存储一个或多个扇区。扇区包括用户数据和开销数据。
MLC编程
图6A至图6C展示了对4状态存储器单元群进行编程的示例。图6A展示了可编程到分别表示存储器状态“E”、“A”、“B”和“C”的阈值电压的四种不同分布中的存储器单元群。图6B展示了擦除存储器的“擦除”阈值电压的初始分布。图6C展示了在存储器单元中的许多存储器单元已经被编程之后的存储器的示例。实质上,单元最初具有“擦除”阈值电压,并且编程将其移动到更高值进入由验证水平vV1、vV2和vV3界定的三个区域中的一个区域中。以此方式,每个存储器单元可以被编程到三种编程状态“A”、“B”和“C”之一或者在“擦除”状态下保持未编程。随着存储器得到更多编程,如图6B中所示出的“擦除”状态的初始分布将变得更窄,并且擦除状态由“0”状态表示。
具有低位和高位的2位代码可以用于表示四种存储器状态中的每种存储器状态。例如,“E”、“A”、“B”和“C”状态分别由“11”、“01”、“00”和“10”表示。可以通过在“完整序列”模式下进行读出来从存储器中读取2位数据,在所述模式下,通过分别相对于三个子通带中的读取界定阈值rV1、rV2和rV3进行读出来一起读出这两个位。
3D NAND结构
常规二维(2D)NAND阵列的替代性安排是三维(3D)阵列。相比于2D NAND阵列(其沿着半导体晶片的平面表面形成),3D阵列从晶片表面向上延伸并且通常包括向上延伸的存储器单元堆或列。各种3D安排是可能的。在一种安排中,与晶片表面处的一端(例如,源极)以及顶部的另一端(例如,漏极)垂直地形成NAND串。在另一种安排中,以U形形状来形成NAND串,从而使得可以在顶部访问NAND串的两端,从而促进这种串之间的连接。
图7示出了在垂直于衬底的x-y平面的垂直方向上延伸(即,在z方向上延伸)的NAND串701的第一示例。在垂直位线(局部位线)703穿过字线(例如,WL0、WL1等)的地方形成存储器单元。局部位线与字线之间的电荷俘获层存储电荷,所述电荷影响由耦合至其所包围的垂直位线(沟道)的字线(栅极)形成的晶体管的阈值电压。可以通过形成字线堆叠并且然后蚀刻出要在其处形成存储器单元的存储器孔来形成这种存储器单元。然后,将存储器孔衬以电荷俘获层并填充以适当的局部位线/沟道材料(填充以适当的介电层以便进行隔离)。
与平面NAND串一样,选择栅极705、707被定位在串的任一端处以便允许NAND串选择性地连接至外部元件709、711或与其隔离。这种外部元件通常为导线(比如,为大量NAND串服务的共用源极线)。可以以与平面NAND串类似的方式来操作垂直NAND串并且单级单元(SLC)或多级单元(MLC)两者都是可能的。虽然图7示出了具有串联连接的32个单元(0至31)的NAND串的示例,但是NAND串中的单元数可以是任何适当数量。为了清晰起见,未示出所有单元。将理解的是,在字线3至29(未示出)与局部垂直位线相交的地方形成附加单元。
图8示出了在垂直方向(z方向)上延伸的NAND串815的第二示例。在这种情况下,NAND串815形成U形形状,与位于结构顶部的外部元件(源极线“SL”和位线“BL”)连接。连接NAND串815的两个翼816A、816B的可控制栅极(背栅“BG”)处于NAND串815的底部。在字线WL0至WL63与垂直局部位线817相交的地方形成总共64个单元(尽管在其他示例中,可以提供其他数量的单元)。选择栅极SGS、SGD被定位在NAND串815的任一端处以便控制对NAND串815的连接/隔离。
垂直NAND串可以被安排成以各种方式形成3D NAND阵列。图9示出了块中的多个U形NAND串连接至位线的示例。在这种情况下,在块中存在连接至位线(“BL”)的n个串(串1至串n)。“n”的值可以是任何适当数字,例如,8、12、16、32或更多。串在取向上与其源极连接处于左方的奇数串以及其源极处于右方的偶数串交替。这种安排是合宜的但不是必要的,并且其他图案也是可能的。
共用源极线“SL”连接至每个NAND串的一端(与连接至位线的端相反)。可以将这视为NAND串的源极端,将位线端视为NAND串的漏极端。可以将共用源极线连接成使得块的所有源极线可由外围电路一起控制。因此,块的NAND串在一端在位线之间平行地延伸并且在另一端在共用源极线之间平行的延伸。
图10示出了存储器结构,其中,直线垂直NAND串从基板中或附近的共用源极连接延伸到在存储器单元的物理级上延伸的全局位线(BL0至BL3)。在块中的给定物理级中的字线由导电材料片形成。存储器孔结构向下延伸穿过这些导电材料板以便形成存储器单元。在给定块内,存在连接至给定位线的多个NAND串。NAND串被分组到共享共用选择栅极的串集合中。因此,例如,由SGS0和SGD0选择的NAND串可以被视为集合,并且可以被指定为串0,而由SGS1和SGD1选择的NAND串可以被视为集合并且可以被指定为如所示出的串1。块可由任何适当数量的这种串集合组成。将理解的是,图10的截面示出了BL0至BL3的部分,这些位线在y方向上进一步延伸。此外,附加位线与BL0至BL3平行地延伸(例如,在沿着x轴的不同位置处,在图10的截面的位置前面或后面)。其他三维存储器基于电阻式元件而不是电荷存储元件。
存储器总线
在一些非易失性存储器系统中,可以将两个或更多个非易失性存储器裸片连接至存储器总线。例如,可以通过存储器总线将四个、八个或更多个NAND闪存裸片连接至NAND控制器。可以将这种多裸片总线与任何形式的非易失性存储器一起使用,包括平面、3D、电荷存储存储器(如闪存)、电阻式存储器(如ReRAM)以及其他形式的存储器。在一些情况下,存储器控制器可以管理多于一条存储器总线,并且每条这种存储器总线可以为多个非易失性存储器裸片服务。
虽然相比于将专用通信信道用于每个存储器裸片,使用存储器总线通过共享通信信道来与多个存储器裸片通信可以提供显著节省,但是在一些情境下,存储器总线可能变成降低存储器系统性能的瓶颈。例如,在一些情况下,可以由于存储器总线繁忙而延迟执行存储器访问命令(读取、写入或擦除命令)。
可能占用存储器总线并阻止执行其他任务的任务的一个示例是对存储器裸片进行轮询以便标识存储器裸片何时变得可用(就绪)。在一些情况下,存储器系统可以对特定裸片进行轮询,同时等待所述裸片由于存在要使用所述裸片来执行的另一个任务而变得可用。例如,在裸片由于其正写入数据而繁忙(不可用)的情况下,存储器系统可以等待裸片变得就绪以便向裸片发送更多数据。在轮询期间,在存储器总线上可能存在可用于写入更多数据的一个或多个其他裸片。然而,因为存储器总线忙于轮询操作,所以数据未被传输至这些裸片。
对单独裸片的进行轮询的替代方案是将多个裸片的块链接到然后一起被并行地操作的元块中。因此,特定存储器总线上的所有裸片可能在基本上相同的时间(或至少以可预测的序列)变得可用,从而使得在其他裸片就绪的同时,几乎没有花费时间对一个裸片进行轮询。
另一个替代方案是使用一个或多个计时器来估计裸片将在何时就绪。因此,当裸片开始特定任务(例如,写入数据的第一部分(例如,页))时,可以针对所述裸片启动计时器。在定时器指示可能已经完成了写入之前(例如,基于所经过的时间与某个之前的写入时间的比较),不可以执行任何轮询。以此方式,几乎不在轮询上浪费时间。然而,这种系统可能相当复杂,因为其需要多个计时器并且需要跟踪通过多个裸片(或如块等更小的单位)进行的各种任务的平均时间并且可以包括将这种时间更新为存储器寿命。这种估计可能不准确。仍可能存在估计时间太短从而使得轮询显著地在裸片就绪之前开始并且轮询浪费时间的时候。在其他情况下,估计时间太长,从而使得轮询被不必要地延迟并且裸片保持空闲。
在图11中展示了用于管理存储器总线的有效方案。例如,通过主机接口从主机接收命令101。命令还可以源于存储器控制器(例如,与内部操作相关的命令,如,垃圾收集、更新存储器管理数据、或块再生)。然后,标识子操作103。
对子操作的标识可以包括将单独命令解析成在执行命令时执行的子操作。子操作可以是占用存储器总线的并且可以作为原子操作而执行(无中断)的任务。子操作通常应当相对短并且不应当是不必要地混在一起的任务,所述任务可以作为单独的子操作而更有效地执行。例如,将读取读出和读取传输考虑为单个子操作将是低效率的,因为存储器总线将在子操作的存储器读出部分期间处于空闲。可以将向多级单元“MLC”(例如,三级单元或“TLC”)存储器单元进行写入视为多个子操作,从而使得在裸片的这种子操作之间,存储器总线可以用于其他目的(即,可以访问其他裸片)。如读取、写入和擦除等存储器访问命令通常需要至少两个这种子操作。例如,读取命令可能需要至少一个读取读出子操作向存储器裸片传输物理地址信息并且可以启动对寻址单元的读出以及至少一次读取传输以便经由存储器总线从裸片传输读出数据。从物理页读取多个逻辑页以及对多个裸片进行读取可能需要许多这种子操作。写入命令可能需要至少一个写入传输子操作通过存储器总线向目的地裸片传输数据和地址信息以及至少一次状态检查以便判定写入是否成功。擦除命令可能需要至少一个第一子操作以便标识待擦除的块并且启动擦除以及至少一个第二子操作以便检查擦除是否成功。在一些情况下,命令可以与单个子操作相对应。例如,用于改变NAND参数的命令(例如,用于改变与对块、平面或裸片进行读取、写入和/或擦除相关联的参数)可能仅需要单个子操作来传输新的NAND参数。
释放子操作105(使得可用于执行),其方式为确保对存储器总线的有效使用。通常将子操作调度成按接收相应命令的顺序执行。在一些情况下,可以执行某种重新排序。只有在相应裸片可用时释放子操作。在一些情况下,仅针对给定裸片释放一个子操作,从而使得所释放的子操作的列表可以是一个子操作深度。在一些情况下,可以以双向的方式有效地执行两个子操作的情况下,一次可以对裸片释放多于一个子操作。例如,针对之前读出数据的读取传输子操作可以与针对待从相同裸片中读取的下一个数据的读取读出子操作一起释放。对子操作的释放可能受制于门控条件,从而使得在一些情况下,无法在相应裸片可用时立即释放子操作。
在一些情况下,轮询可以指示裸片就绪并且相应子操作被立即释放和执行。在其他情况下,对相应子操作的释放并不立即发生,而相反,由于门控条件而被延迟。例如,为了将功耗维持在低于功耗限制的水平上,可以延迟对子操作的释放,直到完成某个其他子操作为止。例如,存储器总线可以具有八个存储器裸片,但是功耗可以将执行写入操作的裸片的数量限制为例如六个裸片。因此,如果六个裸片在另一个裸片变得就绪时已经执行写入子操作,则对最近就绪的裸片的释放可能使七个裸片同时执行写入子操作。在这种情境下,可以延迟对子操作的释放,直到另一个裸片已经完成写入为止。在确定延迟释放时,还可以考虑在读取、擦除或其他操作期间消耗的电力。例如,可以在一个或多个裸片中执行擦除,而在其他裸片中执行读取并且在又其他裸片中执行写入。可以跟踪当前消耗的总电力并将其用于确定当前功耗与功耗限制之差。如果由释放另一个子操作引起的附加消耗在功耗限制内,则可以释放子操作。如果附加消耗不在限制内,则可以延迟释放。由于不同子操作导致消耗不同量的电力,因此可以考虑子操作的类型。因此,在可以不立即释放启动擦除(所述擦除比写入需要更多的电力)的擦除启动子操作的情况下,可以立即释放读取读出子操作。因此,可以应用各种门控条件来判定是否释放特定子操作。
对子操作的释放将向不同列表传输子操作以供执行。图11示出了与子操作释放相关的以上步骤101至105以及与子操作执行相关的以下步骤107至113。这两个操作可以在很大程度上独立地进行并且可以是异步的。仅执行所释放的子操作107。在执行所释放的子操作的时间内,不执行任何轮询。在一些情况下,可能存在例外,例如,多平面MLC写入可以被视为单个子操作而不是被视为多个原子子操作。在这种情况下,可以在多平面写入内执行某次轮询,以便判定何时可以传输下一页,例如,在向两个平面传输更低页数据之后,轮询可以用于判定何时写入更低页数据并且裸片何时准备好接收中间页数据。在完成了一个子操作并且存储器总线变得可用时,判定所释放的子操作列表是否为空109。如果在所释放的子操作列表中仍存在至少一个子操作,则执行继续。如果所释放的子操作的列表为空,则对存储器裸片进行轮询111以便标识任何一个或多个就绪裸片113。因此,轮询仅在不再存在可以立即执行的子操作(即,针对已知就绪的子操作)时发生。只要在列表中存在至少一个子操作,就不发生任何轮询,从而使得对子操作的执行继续,直到列表为空为止。轮询可以限制于活动裸片(即,对不活动裸片的轮询可能是不必要的)。如果所有裸片是不活动的,则可以不执行轮询。因此,当不存在待执行的任何子操作时,系统可以进入低电状态,不执行任何子操作或裸片轮询。随后,当接收到新命令时,可以恢复执行和轮询。当轮询指示一个或多个裸片就绪113时,则传达(虚线)这种情况以便用于标识要释放的子操作,并且释放105和执行107相应子操作。通常,一标识就绪裸片就终止轮询并且启动释放和执行,从而使得轮询不继续延长的时段。例如,可以对被标识为就绪的所有裸片释放下一个子操作。当轮询113结束时,对所释放的子操作列表进行检查109以便判定是否存在最近释放的子操作并且以便执行这种子操作107(如果存在任何这种子操作)。可以看到,这种方案在列表不为空时执行子操作(在这期间,不发生轮询)与对裸片进行轮询(这仅在列表变为空时发生)之间交替。
对子操作的释放还可由除了轮询之外的事件(如对由于应用门控条件而保留的子操作释放)触发。例如,如果子操作由于功耗限制而被保留,则可以在功耗下降到允许执行子操作而不超过功耗限制的水平的任何时候(即,当终止应用门控条件时,可以释放子操作,而无需进行附加轮询)释放子操作。在一些情况下,“虚拟繁忙”状况可以用于指示断言就绪信号的裸片不应被视为就绪(即,将不对这种裸片释放任何子操作)。因此,可以通过断言虚拟繁忙状况来实施门控条件,然后,在满足门控条件时,释放所述虚拟繁忙状况。例如,可以在裸片断言就绪信号时在读取数据传输期间使用虚拟繁忙状况以便管理对随后子操作的释放。
在一些情况下,可能存在可以从未释放子操作列表中释放的两个或更多个操作(因为它们的裸片就绪)。释放和执行这种子操作的顺序可以根据优先级方案确定,所述优先级方案可以基于用于优化性能的规则。例如,如果读取读出子操作准备好针对一个裸片而释放,而读取传输子操作准备好针对另一个裸片而释放,则读取读出将通常被首先释放。这允许裸片中的读出与读取传输操作并行地进行。优先级方案可以包括基于如以上所讨论的电力需求而对子操作进行延迟和/或排序。在一些情况下,主机或控制器可以指定特定的释放和/或执行顺序。可以以特定顺序(例如,以逻辑地址的顺序)将从存储器中读取的数据返回至主机。为了促进这一点,读取读出子操作和读取传输子操作还可以根据逻辑地址而排序。在一些情况下,存储器控制器可以执行需要特定顺序的操作。例如,将数据从一个块重定位到另一个块(例如,在垃圾收集期间)可能需要针对所有裸片的读取读出子操作在执行任何写入子操作之前执行。
图12展示了提供有效存储器总线使用的命令处理的示例。接收待执行的指令并可以将其置于队列221中(例如,以它们被接收的顺序)。命令解析单元223标识与命令相对应的子操作。所标识的子操作置于未决(未释放)的子操作池225中。然后,释放控制器227仅对受制于可能应用的任何门控条件的确定就绪的裸片释放子操作。所释放的子操作被保持在队列229中。子操作由存储器总线控制器执行,每个这种子操作占据存储器总线不间断的时间段。当在队列229中不再存在所释放的子操作时,存储器总线控制器231对裸片进行轮询以便标识任何可用裸片并且向释放控制器227标识可用裸片,然后,所述释放控制器可以将更多子操作释放到队列229,从而使得存储器总线控制器231可以返回执行子操作。
在图13中展示了对存储器总线控制器(例如,存储器总线控制器231)的操作。作出关于在所释放的子操作的队列中是否存在所释放的子操作的判定341。如果在队列中存在任何子操作,则执行队列中的下一个子操作343。如果在队列中未剩下任何所释放的子操作,则对裸片进行轮询以便标识就绪裸片345。如果存在就绪裸片,则存储器总线控制器通知释放控制器,从而使得可以释放相应子操作。
在一些存储器系统中,存储器控制器可以管理多于一条存储器总线。图14示出了管理两条存储器总线(总线1和总线2)的存储器系统451的示例。总线1为裸片A和裸片B服务,而总线2为裸片C和裸片D服务。在此示例中,所有裸片包括两个平面(平面0和平面1)。将理解的是,可以实施各种其他配置。例如,每条总线可以具有多于两个裸片(例如,四个、八个、十六个或更多个裸片),并且控制器可以具有多于两条总线。
存储器控制器453包括主机接口455,所述主机接口通过通信信道457接收主机命令。在存储器控制器453内可以生成附加命令。命令(来自主机或其他)被发送至命令解析器459,所述命令解析器将命令解析成构成子操作。子操作被置于未释放子命令461的队列中。释放控制器463释放来自未释放子命令461的队列的子命令,并且将它们释放到适当的所释放的子命令队列(或者针对总线1的所释放的子命令队列465或者针对总线2的所释放的子命令队列467)中。因此,总线1和总线2共享未释放子命令队列461,而每条总线具有专用的释放的子命令队列(针对总线1的队列465和针对总线2的队列467)。因此,每条总线可以基于其释放的子操作队列而单独进行操作。提供了轮询电路469以便对在针对给定总线的释放的子操作队列为空时对所述总线的裸片进行轮询。虽然示出了单个轮询电路,但是可以为每条总线提供单独的轮询电路,从而使得每条总线具有其自己的专用轮询电路。虽然图14将存储器控制器453展示为包括特定电路,但是将理解的是,还可以在存储器控制器中提供附加电路。还将理解的是,在这种存储器控制器中的电路可以提供为通过软件配置的专用电路、可编程逻辑电路或通用物理电路。因此,在图14中所展示的部件不一定是物理分离的电路,但是可以是存储器控制器的被控制器固件配置成用于特定目的的功能部分。在一些情况下,在专用集成电路(ASIC)中的专用电路和软件可配置电路的组合可以形成这种存储器控制器。
结语
为了解释和说明的目的给出了前述具体实施方式。其不旨在是穷尽的或者限制所附权利要求书。鉴于以上教导,许多修改和变体都是可能的。
Claims (23)
1.一种管理存储器总线的方法,所述方法包括:
接收多个存储器访问命令,所述多个存储器访问命令指向连接至所述存储器总线的多个非易失性存储器裸片;
标识执行所述多个存储器访问命令所需要的子操作,执行单独存储器访问命令需要执行两个或更多个子操作;
维持执行所述多个存储器访问命令所需要的子操作的第一列表,所述第一列表包含指向未被标识为可用的单独非易失性存储器裸片的未释放的未执行子操作以及指向被标识为可用的并且门控条件所适用的单独非易失性存储器裸片的未执行子操作;
维持执行所述多个存储器访问命令所需要的子操作的第二列表,所述第二列表仅包含指向被标识为可用的单独非易失性存储器裸片的释放的未执行子操作;
通过仅执行来自所述第二列表的子操作经由所述存储器总线访问所述多个存储器裸片,直到所述第二列表为空;
随后,当所述第二列表为空时,轮询所述多个非易失性存储器裸片以便标识所述多个非易失性存储器裸片中可用的单独非易失性存储器裸片;
响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片,将一个或多个子操作从所述第一列表移至所述第二列表;以及
随后,恢复通过仅执行来自所述第二列表的子操作经由所述存储器总线访问所述多个非易失性存储器裸片,直到所述第二列表为空。
2.如权利要求1所述的方法,其中,响应于所述第二列表变为空而发生轮询所述多个非易失性存储器裸片,并且当所述第二列表中存在至少一个子操作时不发生轮询。
3.如权利要求2所述的方法,进一步包括:在轮询所述多个非易失性存储器裸片与经由所述存储器总线访问所述多个非易失性存储器裸片之间交替,直到执行所述多个存储器访问命令所需要的所有子操作被执行为止。
4.如权利要求1所述的方法,其中,一旦向所述第二列表添加了新条目,就发生恢复访问所述多个非易失性存储器裸片。
5.如权利要求1所述的方法,其中,执行单独子操作是在不中断连续时间段的情况下占用所述存储器总线的原子执行。
6.如权利要求1所述的方法,其中,所述多个存储器访问命令包括用于将数据从第一物理位置复制到第二物理位置的重定位命令,并且其中,所述一个或多个子操作包括来自所述第一物理位置的一个或多个读取以及向所述第二物理位置的一个或多个写入,并且其中,将所述一个或多个写入从所述第一列表移至所述第二列表仅在完成所述一个或多个读取之后发生。
7.如权利要求1所述的方法,其中,根据与由主机指定执行所述多个存储器访问命令的顺序相对应的执行子操作的顺序来将未执行子操作从所述第一列表移至所述第二列表。
8.如权利要求1所述的方法,其中,根据由存储器控制器所指定的顺序将与存储器管理数据有关的未执行的写入子操作从所述第一列表移至所述第二列表。
9.如权利要求1所述的方法,进一步包括:当响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片而将所述一个或多个子操作从所述第一列表移至所述第二列表时,延迟将所述一个或多个子操作中的子操作从所述第一列表移至所述第二列表,以便由此维持功耗水平低于功耗限制。
10.如权利要求1所述的方法,进一步包括:当响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片而将所述一个或多个子操作从所述第一列表移至所述第二列表时,根据优先级方案对所述一个或多个子操作进行优先级排序。
11.如权利要求10所述的方法,其中,所述优先级方案通过读取传输子操作对读取读出子操作进行优先级排序。
12.一种非易失性存储器系统,包括:
多个非易失性存储器裸片;
存储器总线,所述存储器总线连接至所述多个非易失性存储器裸片;
接口,所述接口被配置成用于接收指向所述多个非易失性存储器裸片的多个存储器访问命令;
命令解析单元,所述命令解析单元被配置成用于标识执行所述多个存储器访问命令所需要的子操作,执行单独存储器访问命令需要执行两个或更多个子操作;
执行所述多个存储器访问命令所需要的子操作的第一列表,所述第一列表包含未释放的未执行子操作;
执行所述多个存储器访问命令所需要的子操作的第二列表,所述第二列表仅包含指向被标识为可用的单独非易失性存储器裸片的释放的未执行子操作,通过仅执行来自所述第二列表的子操作经由所述存储器总线访问所述多个非易失性存储器裸片,直到所述第二列表为空;
裸片轮询单元,所述裸片轮询单元被配置成用于在所述第二列表为空时轮询所述多个非易失性存储器裸片以便标识所述多个非易失性存储器裸片中可用的单独非易失性存储器裸片;以及
列表更新单元,所述列表更新单元被配置成用于响应于将所述多个非易失性存储器裸片中的单独非易失性存储器裸片标识为可用而通过针对所述单独非易失性存储器裸片释放子操作来更新所述第二列表。
13.如权利要求12所述的非易失性存储器系统,其中,所述裸片轮询单元被配置成用于每当所述第二列表中存在至少一个未执行子操作时就保持不活动。
14.如权利要求12所述的非易失性存储器系统,其中,所述命令解析单元被配置成用于标识原子的子操作,从而使得单独子操作占用所述存储器总线而不中断连续时段。
15.如权利要求12所述的非易失性存储器系统,其中,所述列表更新单元根据由主机或存储器控制器所指定的顺序将指向通过所述轮询单元被标识为可用的单独非易失性存储器裸片的单独未执行子操作从所述第一列表移至所述第二列表。
16.如权利要求12所述的非易失性存储器系统,其中,所述列表更新单元被配置成用于将指向通过所述轮询单元被标识为可用的单独非易失性存储器裸片的单独未执行子操作从所述第一列表移至所述第二列表,从而使得繁忙存储器裸片的数量不超过少于所述多个存储器裸片中的所有存储器裸片的最大数量。
17.如权利要求12所述的非易失性存储器系统,其中,所述多个非易失性存储器裸片中的单独非易失性存储器裸片是三维非易失性存储器裸片,所述三维非易失性存储器裸片单片地形成在具有被布置在硅基板上方的有源区域的一个或多个物理级存储器单元阵列中。
18.如权利要求12所述的非易失性存储器系统,进一步包括:
附加存储器总线,所述附加存储器总线连接至附加非易失性存储器裸片;
其中,所述第一列表包含指向所述多个非易失性存储器裸片以及所述附加非易失性存储器裸片中的单独非易失性存储器裸片的未执行子操作,并且所述第二列表仅包含指向所述多个非易失性存储器裸片中的单独非易失性存储器裸片的未执行子操作。
19.一种管理存储器总线的方法,所述方法包括:
接收多个存储器访问命令,所述多个存储器访问命令指向连接至所述存储器总线的多个非易失性存储器裸片;
标识执行所述多个存储器访问命令所需要的子操作,执行单独存储器访问命令需要执行两个或更多个子操作,每个子操作是在不中断连续时间段的情况下占用所述存储器总线的原子执行;
维持执行所述多个存储器访问命令所需要的未释放子操作的第一列表,所述第一列表包含指向未被标识为可用的单独非易失性存储器裸片的未执行子操作以及指向已经具有释放的子操作的单独非易失性存储器裸片的未执行子操作;
维持执行所述多个存储器访问命令所需要的释放子操作的第二列表,所述第二列表仅包含指向被标识为可用的单独非易失性存储器裸片的未执行子操作,每个被标识为可用的非易失性存储器裸片具有最多一个未执行子操作;
通过仅执行来自所述第二列表的释放的子操作经由所述存储器总线访问所述多个存储器裸片,直到所述第二列表为空;
随后,响应于确定所述第二列表为空,轮询所述多个非易失性存储器裸片以便标识所述多个非易失性存储器裸片中可用的单独非易失性存储器裸片;
响应于标识所述多个非易失性存储器裸片中的一个或多个可用非易失性存储器裸片,将一个或多个子操作从所述第一列表释放到所述第二列表;
随后,恢复通过仅执行来自所述第二列表的释放的子操作经由所述存储器总线访问所述多个非易失性存储器裸片,直到所述第二列表为空,从所述恢复开始没有发生轮询所述多个非易失性存储器裸片直到所述第二列表为空;以及
随后,在轮询所述多个非易失性存储器裸片与访问所述多个存储器裸片之间交替,直到执行所述多个存储器访问命令所需要的所有子操作被执行为止。
20.如权利要求19所述的方法,其中,根据以下各项中的至少一项执行将所述一个或多个子操作从所述第一列表释放到所述第二列表:由主机所指定的顺序、由存储器控制器所指定的顺序、或者电力需求。
21.如权利要求19所述的方法,其中,所述多个非易失性存储器裸片中的单独非易失性存储器裸片是三维非易失性存储器裸片,所述三维非易失性存储器裸片单片地形成在具有被布置在硅基板上方的有源区域的一个或多个物理级存储器单元阵列中。
22.如权利要求19所述的方法,其中,标识子操作包括:
针对每个接收到的读取命令标识读取读出子操作和读取传输子操作;
针对每个接收到的写入命令标识写入传输子操作和写入状态检查子操作;以及
针对每个接收到的擦除命令标识擦除启动子操作和擦除状态检查子操作。
23.如权利要求22所述的方法,进一步包括:
接收多个非访问命令,执行单独非访问命令需要执行一个或多个子操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/675,353 | 2015-03-31 | ||
US14/675,353 US9734098B2 (en) | 2015-03-31 | 2015-03-31 | Memory bus management |
PCT/US2015/062947 WO2016160075A1 (en) | 2015-03-31 | 2015-11-30 | Memory bus management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107111574A CN107111574A (zh) | 2017-08-29 |
CN107111574B true CN107111574B (zh) | 2019-02-12 |
Family
ID=54849979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580071451.7A Active CN107111574B (zh) | 2015-03-31 | 2015-11-30 | 存储器总线管理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9734098B2 (zh) |
CN (1) | CN107111574B (zh) |
DE (1) | DE112015005325T5 (zh) |
WO (1) | WO2016160075A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10141034B1 (en) * | 2015-06-25 | 2018-11-27 | Crossbar, Inc. | Memory apparatus with non-volatile two-terminal memory and expanded, high-speed bus |
US9921763B1 (en) | 2015-06-25 | 2018-03-20 | Crossbar, Inc. | Multi-bank non-volatile memory apparatus with high-speed bus |
US10222989B1 (en) | 2015-06-25 | 2019-03-05 | Crossbar, Inc. | Multiple-bank memory device with status feedback for subsets of memory banks |
CN109976661B (zh) | 2017-12-27 | 2020-08-14 | 华为技术有限公司 | 基于nof的读取控制方法、装置及系统 |
KR20190090614A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10656872B2 (en) | 2018-03-15 | 2020-05-19 | Western Digital Technologies, Inc. | Storage device with multi-die management |
US10922014B1 (en) | 2018-06-05 | 2021-02-16 | Seagate Technology Llc | Die access order variation |
KR102695719B1 (ko) | 2018-12-19 | 2024-08-16 | 삼성전자주식회사 | 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법 |
KR20200083048A (ko) * | 2018-12-31 | 2020-07-08 | 삼성전자주식회사 | 폴링 시간을 예측하는 뉴럴 네트워크 시스템 및 이를 이용한 뉴럴 네트워크 모델 처리 방법 |
US11194511B2 (en) * | 2018-12-31 | 2021-12-07 | Micron Technology, Inc. | Arbitration techniques for managed memory |
US11062756B2 (en) * | 2019-10-14 | 2021-07-13 | Western Digital Technologies, Inc. | Extending operating temperature of storage device |
JP7458740B2 (ja) * | 2019-10-21 | 2024-04-01 | キオクシア株式会社 | メモリシステム及び制御方法 |
KR20210065429A (ko) * | 2019-11-27 | 2021-06-04 | 삼성전자주식회사 | 외장형 스토리지 장치 및 외장형 스토리지 장치의 동작 방법 |
US11189347B2 (en) * | 2020-03-13 | 2021-11-30 | Micron Technology, Inc. | Resource management for memory die-specific operations |
US11354041B2 (en) * | 2020-06-12 | 2022-06-07 | Western Digital Technologies, Inc. | Read latency reduction through command and polling overhead avoidance |
US11972135B2 (en) * | 2021-07-21 | 2024-04-30 | Micron Technology, Inc. | Status polling based on die-generated pulsed signal |
US12067289B2 (en) * | 2022-01-10 | 2024-08-20 | SanDisk Technologies, Inc. | Data storage device and method for memory-die-state-aware host command submission |
US12039202B2 (en) * | 2022-09-16 | 2024-07-16 | Western Digital Technologies, Inc. | Dynamic ordering of memory die programming in a metablock |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69521549T2 (de) * | 1994-04-04 | 2001-10-25 | Hyundai Electronics America, Milpitas | Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten |
US20100131701A1 (en) * | 2008-11-25 | 2010-05-27 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with preparation/stress sequence control |
US8954986B2 (en) * | 2010-12-17 | 2015-02-10 | Intel Corporation | Systems and methods for data-parallel processing |
CN102543159B (zh) * | 2010-12-29 | 2014-06-25 | 炬才微电子(深圳)有限公司 | 一种ddr控制器及其实现方法和芯片 |
-
2015
- 2015-03-31 US US14/675,353 patent/US9734098B2/en active Active
- 2015-11-30 CN CN201580071451.7A patent/CN107111574B/zh active Active
- 2015-11-30 DE DE112015005325.5T patent/DE112015005325T5/de active Pending
- 2015-11-30 WO PCT/US2015/062947 patent/WO2016160075A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN107111574A (zh) | 2017-08-29 |
US9734098B2 (en) | 2017-08-15 |
US20160292092A1 (en) | 2016-10-06 |
DE112015005325T5 (de) | 2017-09-14 |
WO2016160075A1 (en) | 2016-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111574B (zh) | 存储器总线管理 | |
US9361991B1 (en) | Efficient scanning of nonvolatile memory blocks | |
CN106575256B (zh) | 子块垃圾收集 | |
TWI679642B (zh) | 用於組態和控制非揮發性快取記憶體的系統及方法 | |
CN103971739B (zh) | 包括非易失性存储设备的存储系统及其编程方法 | |
CN105895160B (zh) | 具有减少的读取干扰的边界字线搜索和开放的块读取方法 | |
CN103765392B (zh) | 存储器装置的损耗均衡 | |
CN107112044B (zh) | 多芯片双写入 | |
CN108694128A (zh) | 存储器系统中的使用单次地址更新的折叠操作 | |
US9123400B1 (en) | Power management for nonvolatile memory array | |
CN108417238A (zh) | 检测存储器阵列中的错位并调整读取和验证定时参数 | |
CN108028071A (zh) | 3-d非易失性存储器中的部分坏的块的操作 | |
CN108885886A (zh) | 基于老化状况的存储器裸片温度调节 | |
CN105810249B (zh) | 用于非易失性存储器装置的操作参数的快速适应性整理 | |
CN108139970A (zh) | 用于直接写入多级单元存储器的系统和方法 | |
US9804785B2 (en) | Nonvolatile memory adaptive to host boot up routine | |
CN106687940A (zh) | 挂起和恢复非易失性存储器操作 | |
CN108874303A (zh) | 非易失性存储器命令冲突避免的储存系统和方法 | |
CN107578793A (zh) | 非易失性存储器系统和非易失性存储器装置的操作方法 | |
CN104584135A (zh) | 采用目标读擦洗算法的闪存 | |
CN101645044A (zh) | 快闪存储器系统中内务处理操作的调度 | |
CN105874438B (zh) | 多裸芯写入管理中的模式突破 | |
US10055267B2 (en) | Block management scheme to handle cluster failures in non-volatile memory | |
CN109859783A (zh) | 3d存储器阵列中的字线桥 | |
CN105718381A (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 |