CN110678852A - 控制对缓冲器的存储器操作的设备和方法 - Google Patents
控制对缓冲器的存储器操作的设备和方法 Download PDFInfo
- Publication number
- CN110678852A CN110678852A CN201880034824.7A CN201880034824A CN110678852A CN 110678852 A CN110678852 A CN 110678852A CN 201880034824 A CN201880034824 A CN 201880034824A CN 110678852 A CN110678852 A CN 110678852A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- cache
- memory
- host
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 170
- 239000000872 buffer Substances 0.000 title claims abstract description 130
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000004044 response Effects 0.000 claims description 20
- 230000008672 reprogramming Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 101100028920 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cfp gene Proteins 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011094 buffer selection Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000720945 Hosta Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0656—Data buffering 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本公开涉及控制对缓冲器的存储器操作的设备和方法。实例设备包含存储器装置和主机。所述存储器装置包含缓冲器和存储器胞元阵列,且所述缓冲器包含多个高速缓冲存储器。所述主机包含系统控制器,且所述系统控制器被配置成控制对所述缓冲器中的数据的存储器操作的执行。所述存储器操作与所述多个高速缓冲存储器当中的数据移动相关联。
Description
技术领域
本公开大体上涉及存储器装置,并且更具体地说,涉及控制对缓冲器的存储器操作的设备和方法。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等等。非易失性存储器可通过当未被供电时保持所存储的数据而提供持久的数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁阻性随机存取存储器(MRAM)等等。
存储器装置可组合到一起以形成存储器系统的存储容量,例如固态驱动器(SSD)。固态驱动器可包含非易失性存储器(例如,NAND快闪存储器和NOR快闪存储器),且/或可包含易失性存储器(例如,DRAM和SRAM),以及各种其它类型的非易失性和易失性存储器。
SSD可用以替换硬盘驱动器,作为用于计算机的主要存储容量,这是因为固态驱动器在性能、大小、重量、耐用性、工作温度范围和电力消耗方面可具有优于硬盘驱动器的优点。举例来说,SSD当与磁盘驱动器相比时由于其不含移动部分而可具有优良性能,这可避免与磁盘驱动器相关联的寻道时间、时延和其它机电延迟。
电子系统常常包含数个处理资源(例如一或多个处理器),所述处理资源可检索并执行指令且将所执行指令的结果存储到合适的位置。处理器可包括例如可用以通过对数据(例如,一或多个操作数)执行操作(例如,计算操作)来执行指令的数个功能单元,例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路和组合逻辑块。如本文中所使用,计算操作可为例如布尔操作,例如AND、OR、NOT、NOT、NAND、NOR和XOR,以及/或其它可涉及操控数据的操作(例如,反转、移位、算术、统计数据,以及多个其它可能的操作)。举例来说,功能单元电路可用以经由数个逻辑操作对操作数执行算术操作,例如加法、减法、乘法和除法。例如上文所描述的计算操作可区别于“存储器操作”,如本文中所使用,所述存储器操作可以指不涉及数据操控(例如,经由通常与处理资源相关联的功能单元)的操作。存储器操作的实例包含数据读取、数据写入和数据刷新操作。
在存储器装置处从主机接收的数据可暂时存储于缓冲器中。举例来说,主机可将数据发送到存储器装置,且缓冲器可存储数据的一部分,同时将数据的另一部分编程到存储器装置。因而,主机无需在完成将数据编程到存储器装置之前等待将另一数据发送到存储器装置。缓冲器以各种方式(例如,由主机)的利用可为有用的。
附图说明
图1是根据本公开的数个实施例的呈用于控制对缓冲器的存储器操作的计算系统形式的设备的框图。
图2是根据本公开的数个实施例的呈被配置成控制对缓冲器的存储器操作的存储器装置形式的设备的框图。
图3是根据本公开的数个实施例的呈被配置成控制对缓冲器的存储器操作的多平面存储器装置形式的设备的框图。
图4是根据本公开的数个实施例的呈与控制对缓冲器的存储器操作相关联的缓冲器形式的设备的框图。
图5说明根据本公开的数个实施例的说明维持在主机内部的设定特征接口的实例的表。
图6说明根据本公开的数个实施例的与控制对缓冲器的存储器操作相关联的时序图。
图7说明根据本公开的数个实施例的与控制对缓冲器的存储器操作相关联的时序图。
具体实施方式
本公开涉及控制对缓冲器的存储器操作的设备和方法。实例设备包含存储器装置和主机。存储器装置包含缓冲器和存储器胞元阵列,且缓冲器包含多个高速缓冲存储器。主机包含系统控制器,且系统控制器被配置成控制对缓冲器中的数据的存储器操作的执行。存储器操作与多个高速缓冲存储器当中的数据移动相关联。
本公开的实施例可提供多个益处,例如将额外存储器资源提供给主机。举例来说,本公开的数个实施例提供用于主机起始的对存储器装置的内部缓冲器的数据的操作的机构。考虑不能够控制/跟踪正在对内部缓冲器执行的操作的主机。在此方法中,(例如,内部缓冲器的)多个高速缓冲存储器各自可充当例如静态随机存取存储器(SRAM),其不被认为是主机的存储器资源,因为内部缓冲器仅将从主机接收的数据传送到存储器装置的存储器胞元阵列。因而,内部缓冲器的多个高速缓冲存储器不用作主机的存储器资源。
相比之下,在本文中所描述的数个实施例中,主机可被配置成控制对内部缓冲器的多个高速缓冲存储器中的数据的操作(例如,存储器操作和/或计算操作)的执行。因而,主机可将存储于内部缓冲器中的数据移动到其它位置,且使用多个高速缓冲存储器作为额外存储器资源。可通过主机起始并且对内部缓冲器执行的操作也可与改进存储器装置的可靠性以及多个其它益处相关联。
在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过说明方式展示可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例,且可在不脱离本公开的范围的情况下进行工艺、电气和结构改变。
应理解,本文中所用的术语仅仅是为了描述具体实施例且并不意图为限制性的。如本文中所使用,除非上下文另外明确指示,否则单数形式“一”和“所述”可包括单个和多个指示物。另外,“数个”、“至少一个”和“一或多个”,例如数个存储器阵列,可指一或多个存储器阵列,而“多个”预期指此类事物中的多于一个。此外,贯穿本申请案以许可的意义,即具有能够的潜力,而非以强制性的意义,即必须,使用单词“可能”和“可”。术语“包含”和其派生词意指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意味着物理上直接或间接连接或存取和移动(发射)命令和/或数据。视上下文而定,术语“数据”和“数据值”在本文中可互换地使用并可具有相同含义。
本文中的图遵循编号定则,其中一或多个第一数字对应于图号,且剩余的数字标识图式中的元件或组件。可通过使用类似数字来标识不同图式之间的类似元件或组件。举例来说,126可参考在图1中的元件“26”,且相似元件可在图4中表示为426。可以附图标记后跟着连字符和另一数目或字母来表示一个图内的多个类似元件。因此,126-0可参考在图1中的元件26-0,且126-1可参考可类似于元件26-0的元件26-1。可大体上参考此类类似元件而无需连字符和额外数字或字母。举例来说,元件126-0和126-0可大体上标记为205。
图1是根据本公开的数个实施例的呈用于控制对缓冲器的存储器操作的计算系统100形式的设备的框图。如本文所使用,主机(例如,102)、存储器装置系统(例如,104)、主机控制器(例如,系统控制器118)或存储器装置控制器(例如,装置控制器120)也可能各自单独地视为“设备”。
计算系统100包含经由装置接口108耦合到主机102的存储器装置系统104(例如,SSD)。如本文中所使用,“耦合到”意图指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,无需中介组件),不管是有线的还是无线的都包含例如电、光学、磁性等连接。存储器装置系统104可为例如使用数个SSD实施的固态存储器具。除主机内部的控制器(例如,系统控制器118)之外,计算系统100可包含存储器装置系统104内部的控制器(例如,装置控制器120)。装置控制器120可经由数个适合的存储器接口(未示出)耦合到存储器装置系统104中的数个存储器资源。在数个实施例中,存储器资源可包含数个SSD存储器资源,例如存储器装置124-0、…、124-N-1,其可包含易失性存储器装置(例如,DRAM、SRAM等)和/或非易失性存储器装置(例如,NAND、NOR等)。
实例主机102可包含手提式计算机、个人计算机、数码相机、数字记录和重放装置、移动电话、个人数字助理(PDA)、存储卡读取器和接口集线器,以及其它主机系统。主机接口106可包含串行高级技术附件(SATA)、外围组件互连高速(PCIe)或通用串行总线(USB),以及用于与主机组件交互的其它连接器和接口。主机接口106与装置接口108组合可提供用于在存储器装置系统104与主机102之间传送控制、地址、数据和其它信号的接口。
主机102可包含耦合到存储器与总线控制107的数个处理器105(例如,并行处理器、协同处理器、中央处理单元(CPU)等)。处理器105可以是数个微处理器,或某一其它类型的控制电路,例如数个专用集成电路(ASIC)。计算系统100的其它组件也可以具有处理器。存储器与总线控制107可具有存储器116和/或与其耦合的其它组件。在此实例中,存储器与总线控制107耦合到主机存储器116,所述主机存储器116在数个实施例中可包含易失性存储器(例如,DRAM)和/或非易失性存储器(例如,NAND),以及其它类型的存储器。在此实例中,外围设备与总线控制109可耦合(例如,经由主机接口106)到主机存储器116、快闪驱动器(未示出)(例如,经由通用串行总线(USB)接口)、非易失性存储器主机控制接口(NVMHCI)快闪存储器(未示出),和/或存储器装置系统104(例如,经由系统控制器118和/或经由装置接口108)。存储器装置系统104可补充或代替数个不同计算系统中的硬盘驱动器(HDD)来使用。图1中所示出的计算系统100是这类系统的一个实例;然而,本公开的实施例不限于图1中示出的配置。
作为一个实例,存储器装置系统104可为SSD。存储器装置系统104可包含经由总线(例如,总线122-0、…、122-N-1)耦合到数个存储器资源(例如,存储器装置124-0、…、124-N-1)的装置控制器120(例如,存储器控制电路、固件和/或软件)。结合图2和3进一步描述SSD存储器资源的实例。在232处示出并且结合图2描述用于将装置控制器120耦合到单个单元存储器装置230的总线(例如,引脚)的实例(例如,作为输入/输出(I/O)线I/O 0、I/O1、…、I/O 7,不过这类I/O线的数目不限于8个I/O线)。在342处示出并且结合图3描述用于将装置控制器120耦合到多平面存储器装置340(包含多个平面343)的总线(例如,引脚)的实例(例如,作为数据(DQ)总线DQ 0、DQ 1、…、DQ 7,不过这类DQ总线的数目不限于8个I/O线)。借助于实例呈现图2中示出的具有I/O线232的单个单元存储器装置230和图3中示出的具有DQ总线342的多平面存储器装置340;然而,本公开的实施例不限于这些实例。
系统控制器118包含用于与主机102通信的主机接口106和用于经由总线122-0、…、122-N-1(例如,232和/或342)与存储器装置124-0、…、124-N-1通信的装置接口108。各个总线还可在存储器装置140和/或其装置控制器120与系统控制器118之间发送和/或接收各种信号(例如,数据信号、控制信号和/或地址信号等)。
系统控制器118包含被配置成将多个设定特征命令发到存储器装置124的设定特征接口119。在一些实施例中,设定特征接口119可与系统控制器118相关联(例如,形成为其部分)。响应于接收到设定提供命令,存储器装置124被配置成例如对缓冲器126执行存储器操作。在519处示出并且结合图5描述设定特征接口119的实施例。
系统控制器118可被配置成控制对缓冲器126(例如,126-0、…、126-N-1)中的数据的存储器操作的执行。通过系统控制器118执行的操作可与多个高速缓冲存储器当中的数据移动相关联。如结合图4示出和描述,数据移动可包含例如使存储于缓冲器126的第二高速缓冲存储器(例如,二级数据高速缓冲存储器(SDC)427)上的数据移动到相应缓冲器126的第一高速缓冲存储器(例如,一级数据高速缓冲存储器((PDC)429),使得缓冲器126第二高速缓冲存储器可作为存储器资源用于外部控制器(例如,系统控制器118)。
除非上下文另外明确规定(例如,通过使用例如邻近等术语),否则例如第一和第二和/或一级和二级等序数数字在本文用以帮助使相似的和/或可选择地耦合的组件(例如,数据部分和/或数据高速缓冲存储器等)相关和/或区分开,且不用以指示组件之间的特定排序和/或关系。
作为一个实例,系统控制器118可被进一步配置成接收对如下操作的请求:在将数据从缓冲器126编程到存储器胞元阵列128(例如,128-0、…、128-N-1)的同时发出与第二高速缓冲存储器(例如,SDC 427)的使用相关联的程序暂停命令,并且发出第一命令以使得数据的第一部分从第二高速缓冲存储器(例如,SDC 427)移动到多个第一高速缓冲存储器(例如,PDC 429)中的高速缓冲存储器。数据的第一部分是在将数据编程到存储器胞元阵列128期间不被编程到存储器胞元阵列128的一定量的位。在此实例中,系统控制器118还可被配置成发出第二命令,即程序暂停命令,以使得在数据的第一部分存储于相应多个第一高速缓冲存储器中的高速缓冲存储器上时对第二高速缓冲存储器执行与程序暂停命令相关联的操作,发出第三命令以使得数据的第一部分从相应多个第一高速缓冲存储器中的高速缓冲存储器移动到第二高速缓冲存储器,发出第四命令,即程序恢复命令,并且发出第五命令以使得数据的第一部分从缓冲器126编程到存储器胞元阵列。因而,在发出程序暂停命令之前已经编程到存储器胞元阵列128的数据的第二部分无需重新编程到存储器胞元阵列128。结合图6描述与使数据在多个高速缓冲存储器当中(例如,在SDC 427和PDC 429-0、…、429-N-1当中)移动相关联的另外细节。
通过系统控制器118执行的操作可包含使存储于缓冲器126上的数据移动到主机102,以使得缓冲器126的多个高速缓冲存储器(例如,SDC 427和/或PDC 429)可作为存储器资源用于外部控制器(例如,在存储器装置外部的系统控制器118)。作为实例,系统控制器118可被进一步配置成在程序暂停状态期间发出第一命令以使得数据从多个第一高速缓冲存储器(例如,PDC 429)中的高速缓冲存储器移动到第二高速缓冲存储器,并且经由I/O线从第二高速缓冲存储器(例如,SDC 427)移动到系统控制器118。在此实例中,系统控制器118可被进一步配置成执行与第二高速缓冲存储器和相应多个第一高速缓冲存储器中的高速缓冲存储器的使用相关联的读取操作,并且在读取操作完成后即刻和第二命令以使得数据从主机102移动到第二高速缓冲存储器,并且从第二高速缓冲存储器移动所述相应多个第一高速缓冲存储器中的高速缓冲存储器。结合图7描述与使数据从缓冲器126移动到主机102相关联的另外细节。
通过系统控制器118执行的操作还可包含响应于与将数据编程到存储器胞元阵列128相关联的故障事件,使数据经由缓冲器126从存储器胞元阵列128移动到主机102。举例来说,主机102可被配置成控制/跟踪数据从缓冲器126编程到存储器胞元阵列128。因而,被另一操作(例如,被给定高于数据编程的较高优先级)打断的数据编程不引起数据丢失。
虽然图1中所示出的实例包含充当总线的单个装置接口108,但存储器装置系统104可包含单独数据总线(DQ总线)、控制总线和/或地址总线。这类总线可具有各种类型的总线结构,包含但不限于与如下各项有关的总线结构:开放NAND快闪接口(ONFI)、压缩快闪接口、多媒体卡(MMC)、安全数字(SD)、CE-ATA、工业标准架构(ISA)、微通道架构(MSA)、扩展ISA(EISA)、智能驱动电子装置(IDE)、VESA本地总线(VLB)、外围组件互连(PCI)、卡片总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、火线(IEEE 1394)和小型计算机系统接口(SCSI)。系统控制器118可被配置成支持与存储器装置系统104相关联的各种数据接口类型(例如,NV-DDR、NV-DDR2、NV-DDR3等等)。
在数个实施例中,系统控制器118可包含转换组件(未示出),其可以是例如与在主机102与存储器装置系统104之间的逻辑到物理地址转换相关联的快闪转换层(FTL)。举例来说,所述转换组件可包含逻辑块地址(LBA)到物理块地址(PBA)的映射表。本文所描述的页、块、平面和/或相关联字线还可从逻辑地址映射到物理地址(例如,通过装置控制器120)。虽然图1中未示出,但装置控制器120还可包含以硬件、固件和/或软件实施且与存储器装置系统104的管理相关联的各种其它组件。
在数个实施例中,数个存储器装置124-0、…、124-N-1中的每个可包含缓冲器126(例如,126-1、…、126-N-1),以及存储器胞元阵列128(例如,128-0、…、128-N-1)。在数个实施例中,缓冲器126-0、…、126-N-1中的每个可为相应存储器装置124-0、…、124-N-1的内部缓冲器(例如,位于存储器装置124-0内部的缓冲器126-0)。如本文中所说明,装置控制器120耦合到数个存储器装置124-0、…、124-N-1中的每个所借助的总线122(例如,122-0、…、122-N-1)可耦合到缓冲器的高速缓冲存储器(例如,SDC 427)。因而,经由装置控制器从主机102接收的数据和/或信号可在存储器装置124的缓冲器126处并且接着在存储器胞元阵列124处被接收。
图2是根据本公开的数个实施例的呈被配置成控制对缓冲器的存储器操作的存储器装置230形式的设备的框图。如本文中所描述,图2中所示出的存储器装置230示出可在数个实施例中用于控制对缓冲器的存储器操作的单个单元存储器装置的实例。存储器装置230可配置为易失性存储器资源(例如,DRAM,以及其它易失性存储器装置配置)和/或非易失性存储器资源(例如,NAND,以及其它非易失性存储器装置配置)。
如结合图1所描述,图2中所示出的存储器装置230可包含用于耦合到包含存储器装置230的存储器装置系统104内部的装置控制器120(例如,用于通过主机102内部的系统控制器118经由装置接口106所引导的编程操作的输入和/或输出)的数个总线232(例如,I/O 0、I/O 1、…、I/O 7)。在数个实施例中,如本文中所描述,存储器装置230可包含多个块。作为一个实例,单个块(例如,231)可包含与数个字线(未示出)相关联的64页。在此实例中,各自与单个字线相关联的八页(其中每个字线耦合到单个总线(例如,图2中的八个总线232))产生用于单个块231的64页。在数个实施例中,每页可具有2048(2K)字节的数据存储容量且存储器装置230可具有1024(1K)块;然而,本公开的实施例不限于图2中示出的配置。
结合图2描述的每个字线可耦合到总线232。在数个实施例中,每个总线可耦合到一或多个字线。举例来说,每一总线232的多个字线可竖直定向(例如,堆叠)于块231中,以形成总线的数目(例如,图2中的八个)的倍数乘以每一总线232的多个字线的数目作为每一块231的字线的数目。
图3是根据本公开的数个实施例的呈被配置成控制对缓冲器的存储器操作的多平面存储器装置340形式的设备的框图。图3中所示出的多平面存储器装置340展示可在数个实施例中用于控制对缓冲器的存储器操作的四平面存储器装置(例如,如343处所示的平面0、平面1、平面2和平面3,不过实施例可包含2、4、8、16等个平面)的实例。多平面存储器装置340的多个平面的组合可被称为逻辑单元(LUN)。多平面存储器装置340可配置为易失性存储器资源(例如,DRAM、其它易失性存储器装置配置)或配置为非易失性存储器资源(例如,NAND、其它非易失性存储器装置配置)。为了清楚起见,在下文在非易失性NAND配置中描述图3中所示出的多平面存储器装置340。
在数个实施例中,LUN 340可提供用于结合图1示出和描述的存储器装置系统104的存储容量。平面343可为裸片或芯片,其可组合称为LUN 340。举例来说,平面343可为各自包含数个裸片的多芯片封装(MCP)。裸片可为例如NAND裸片,其包含数个NAND快闪存储器胞元阵列和相关联外围电路(例如,写入电路、读取电路、I/O电路、缓冲器等)。
如结合图1所描述,图3中所示出的LUN 340可包含用于耦合到存储器装置系统104内部的装置控制器120(例如,用于通过主机102内部的系统控制器118经由装置接口106所引导的编程操作的输入和/或输出)的数个总线342(例如,数据总线DQ 0、DQ1、…、DQ 7)。在数个实施例中,如本文中所描述,存储器平面343中的每个可包含多个块。作为一个实例,每个平面中的单个块(例如,341)可包含与数个字线(未示出)相关联的128页。在此实例中,各自与单个字线相关联的16页(其中每个字线耦合到单个总线(例如,图3中的八个总线342))产生用于每个平面343中的单个块341的128页。在数个实施例中,每页可具有8192(8K)字节的数据存储容量且LUN 340的每个平面343可具有2048(2K)块。如图3中所说明,LUN的平面的组合可包含8192(8K)块(4个平面乘以每一平面的2048个块等于8192块);然而,本公开的实施例不限于图3中示出的配置。
结合图3描述的每个字线可耦合到总线342。在数个实施例中,每个总线可耦合到一或多个字线。举例来说,每一总线342的多个字线可竖直定向(例如,堆叠)于每个平面343的每一块341中,以形成总线的数目(例如,图3中的八个)的倍数乘以每一总线342的多个字线的数目作为每一块341的字线的数目。
在图3中示出的实例中,由来自平面0、1、2和3中的每个的块形成的每一块0、1、…、8191包含可一起作为一单元擦除的存储器胞元(例如,每个物理块中的胞元可以与擦除单元基本同步的方式擦除)。每一块可包含可各自耦合到相应字线(例如,存取线)的数个物理行的存储器胞元。每一块中的行的数目可为32、64或128,但实施例不限于特定数目的行,所述行可统称为每块的行。
如所属领域的普通技术人员将了解,耦合到字线的每行可包含数个物理页的胞元。物理页的胞元可以指可一起或作为功能群组被编程、读取和/或写入的数个存储器胞元。举例来说,每行可包含多个物理页的胞元(例如,与耦合到偶数编号的位线的胞元相关联的偶数页,以及与耦合到奇数编号的位线的胞元相关联的奇数页)。另外,对于包含多层级胞元的实施例,物理页可存储多个逻辑页的数据,其中物理页中的每个胞元朝向逻辑下部页贡献一位,朝向逻辑上部页贡献一位,且朝向相应数目的逻辑中间页贡献一或多个位。
在数个实施例中,被描述为用于图2中所示出的存储器装置230和/或图3中所示出的LUN 340的实例存储器资源的NAND存储器装置可包含NAND裸片(例如,NAND快闪阵列),其具有被配置成存储单个数据单元(例如,一个位)的单层级胞元(SLC)和/或被配置成存储多于一个数据单元的多层级胞元(MLC)。另外,胞元可为可经由各种不同编程处理程序进行编程的,所述不同编程处理程序可取决于每胞元存储的数据单元的量;然而,被配置成每胞元存储特定量的数据单元(例如,2位、3位、4位等)的胞元可为可经由不同编程处理程序进行编程的。举例来说,3位MLC可为可经由两遍次编程处理程序(例如,4-8处理程序,其中第一编程遍次基于下部页和中间页数据状态使胞元的阈值电压从擦除状态置于四个分布中的一个,且其中第二编程遍次基于上部页数据状态使胞元的阈值电压从四个分布中的所述一个置于八个分布中的一个)或三遍次编程处理程序(例如,2-4-8处理程序)进行编程的。
本公开的实施例不限于图3中示出的实例。举例来说,根据本公开的实施例的存储器系统可包含每一LUN 340的多于或少于四个的平面343并且不限于特定存储器阵列架构(例如,NAND、NOR、DRAM、PCM等)。另外,虽然针对图1中的每一存储器装置系统示出一个装置控制器120,但实施例可包含在的图2中的每一存储器装置230的装置控制器120和/或针对图3中的每一LUN 340或其平面343的装置控制器120(例如,每一NAND裸片一个控制器)。
在数个实施例中,耦合到内部SSD装置控制器的存储器装置系统104中的存储器装置124可为配置为非易失性存储器资源(例如,NAND)的数个SSD,不过实施例不限于此。在数个实施例中,存储器装置124、230和/或340被配置成响应于接收到来自主机102的命令,对缓冲器126中的数据执行存储器操作。响应于接收到来自主机102的命令而对缓冲器126中的数据执行存储器操作可提供如所结合图6和7进一步描述,例如使用缓冲器126的多个高速缓冲存储器作为存储器资源的益处。
作为一个实例,存储器装置124可响应于接收到来自主机的命令,被配置成在处于程序暂停状态中的情况下,使数据从缓冲器126移动到主机102,使得缓冲器的第二高速缓冲存储器(例如,SDC 427)和多个第一高速缓冲存储器(例如,PDC 429)中的高速缓冲存储器可用作主机102的存储器资源;在数据存储于主机102上的情况下,执行与缓冲器的第二高速缓冲存储器和多个第一高速缓冲存储器中的高速缓冲存储器的使用相关联的读取操作;和在读取操作完成后即刻使数据从主机移动到缓冲器126。
图4是根据本公开的数个实施例的呈与控制对缓冲器的存储器操作相关联的缓冲器426形式的设备的框图。如结合图1所示和描述,缓冲器426位于存储器装置124内部,并且经由总线122(例如,如结合图2和3所描述的I/O 232或DQ 342)耦合到装置控制器120。
如图4中所示,缓冲器426可包含多个高速缓冲存储器,其包含多个一级数据高速缓冲存储器(例如,PDC 429)和二级数据高速缓冲存储器(例如,SDC 427)。SDC 427可经由I/O线432耦合到系统控制器118。在数个实施例中,SDC 427可经由I/O 432(例如,如图1中所描述的总线122)耦合到装置控制器120,所述装置控制器120接着耦合到主机102,不过实施例不限于此。因而,缓冲器426可在SDC处接收之后在多个PDC429-0、…、429-N-1处接收来自主机102的数据和/或命令。多个PDC耦合到SDC 427并且耦合到存储器胞元阵列428(例如,128-0、…、128-N-1)。因而,在缓冲器426处接收的数据可在编程到存储器胞元阵列428之前存储于多个PDC 429中。
虽然在图4中示出单个SDC 427,但实施例不限于此。举例来说,缓冲器426可包含多个SDC 427,其中多个SDC 427中的每个经由I/O线432耦合到主机402并且耦合到一组多个PDC 429(例如,429-0、429-1、429-2、…、429-N-1)。因而,在此实例中,缓冲器426可经由各自耦合到相应SDC 427的多个I/O线432从主机402接收数据和/或信号。
在数个实施例中,主机402经由系统控制器118可被配置成控制对多个高速缓冲存储器(例如,SDC 427和/或PDC 429)的各种存储器操作的执行。举例来说,存储器操作可包含重置缓冲器的多个高速缓冲存储器,使数据在缓冲器的多个高速缓冲存储器当中移动,和/或使存储于多个高速缓冲存储器中的第一高速缓冲存储器上的数据与存储于多个高速缓冲存储器中的第二高速缓冲存储器上的其它数据交换。
在数个实施例中,系统控制器118可被进一步配置成对多个高速缓冲存储器(例如,SDC 427和/或PDC 429)中的数据执行计算操作。举例来说,系统控制器118可将命令发到存储器装置124以引导从多个高速缓冲存储器开始的数据移动。所述数据可移动到可在执行计算操作时使用的特定计算组件,且可将所述计算操作的结果存储和/或移动到不同位置(例如,缓冲器126、存储器胞元阵列128和/或主机102)。
图5说明根据本公开的数个实施例的说明维持在主机102内部的设定特征接口519的实例的表。如在119处示出并且结合图1描述,主机102内部的设定特征接口519可与系统控制器118相关联(例如,形成为其部分)。
在数个实施例中,图5中所示的设定特征接口519的表可包含数个特征561,其中数个特征具有多个选项552。可经由命令的输入选择性地启用(例如,应用)设定特征接口519中的特征561和/或选项552。在各种实施例中,可从处理器105、存储器与总线控制107、外围设备和总线控制109、主机存储器116、系统控制器118和/或用户(未示出)以及其它可能项输入所述命令。
设定特征接口519中的特征561的实例可为对可对缓冲器(例如,缓冲器126)执行的页缓冲器操作563的选择的引导。举例来说,页缓冲器操作563可包含在数个实施例中可选择性地启用(例如,引导)到特定I/O线232和/或数据总线342(例如,在542处示出的DQ 0、DQ 1、…、DQ 7)的复制操作554-1、重置操作554-2和交换操作554-3。
举例来说,可关于数据总线DQ 6和DQ 7启用复制操作554-1。可通过键入用于设定特征接口519中的数据总线DQ 6和DQ 7的0数据值来启用复制操作554-1。重置操作554-2是可启用的另一选项552。举例来说,可例如通过键入用于DQ 7的1数据值并且键入用于DQ 6的0数据值来启用重置操作554-2。交换操作554-3是可启用的另一选项552。举例来说,可通过键入用于DQ 6的1数据值并且键入用于DQ 7的0数据值来启用交换操作。
设定特征接口519中的特征561的另一实例可为对平面选择565的引导。举例来说,在数个实施例中,选择特定平面可选择性地启用(例如,引导)到特定DQ(例如,在542处示出为DQ 0、DQ 1、…、DQ 7)。举例来说,可通过键入用于DQ 7的1数据值来启用选项556-1以选择平面0(例如,指配给数据总线DQ 7的特定平面)。在另一实例中,可通过键入用于DQ 6和DQ 7的1数据值来启用选项556-2以选择平面0和平面1(例如,平面1指配给数据总线DQ 6)。因而,可通过键入用于多个数据总线542的对应数据值(例如,数据值1)来同时选择多个平面(例如,平面0和平面1)。举例来说,可通过键入用于指配给相应平面的所有数据总线的1数据值(例如,当存在四个平面时,通过键入用于DQ 4、DQ 5、DQ 6和DQ 7的1数据值)来启用选项556-3以选择所有平面。
设定特征接口519中的特征561的另一实例可为对缓冲器选择567(例如,单个高速缓冲存储器)的指导。举例来说,在数个实施例中,选择特定高速缓冲存储器可选择性地启用(例如,引导)到特定DQ(例如,在542处示出的DQ 0、DQ 1、…、DQ 7)。举例来说,可通过键入用于DQ 7的1数据值来启用选项558-1以选择SDC 427。在另一实例中,可通过键入用于DQ6的1数据值来启用选项558-2以选择PDC 0(例如,429-0)。类似地,可选择性地启用选项558-3、558-4和558-3以分别选择PDC 1(例如,427-1)、PDC 2(例如,427-2)和PDC 3(例如,427-3)。举例来说,可通过键入用于DQ 3、DQ 4和DQ 5的1数据值来分别选择PDC 1(例如,427-1)、PDC 2(例如,427-2)和PDC 3(例如,427-3)。
设定特征接口519中的特征561的另一实例可为对缓冲器选择569(例如,同时多个高速缓冲存储器)的指导。举例来说,在数个实施例中,选择特定高速缓冲存储器可选择性地启用(例如,引导)到特定DQ(例如,在542处示出的DQ 0、DQ 1、…DQ 7)。举例来说,可通过键入用于DQ 3、DQ 5和DQ 7的1数据值来启用选项560-1以选择SDC 427、PDC 1(例如,429-1)和PDC 3(例如,429-3)。在另一实例中,可通过键入用于DQ 3和DQ 4的1数据值来启用选项560-2以选择PDC 2(例如,429-2)和PDC 3(例如,429-3)。
其它特征561和/或选项552可在设定特征接口519中是可用的。另外,可维持用于计算系统100的多于一个的设定特征接口519。举例来说,在数个实施例中,可当存储器装置系统104包含可包含易失性存储器资源和/或非易失性存储器资源的多个存储器装置124时维持多个设定特征接口519。
图6说明根据本公开的数个实施例的与控制对缓冲器626的存储器操作相关联的时序图。在此实例中,在时间t1处,存储器装置被配置成起始将(例如,从主机602接收的)数据从缓冲器626编程到存储器胞元阵列628(例如,如由箭头671指示)。在数个实施例中,编程数据可包含如结合图3所描述的两遍次或三遍次编程。在时间t2处,主机602接收对在编程数据(例如,在时间t1处起始)时发出程序暂停命令的请求。作为实例,箭头672表示对发出程序暂停命令的请求。在时间t3处,主机602(例如,经由系统控制器118)将第一命令发到存储器装置624(如由箭头673指示),使得数据的不被编程到存储器胞元阵列628的部分移动(例如,从SDC 427移动到PDCx 429)。
如由箭头674指示,存储器装置624被配置成响应于接收到来自主机602的第一命令,使数据的不被编程到存储器胞元阵列628的第一部分从缓冲器626的第二高速缓冲存储器移动到多个第一高速缓冲存储器中的高速缓冲存储器。举例来说,数据的不被编程到存储器胞元阵列628的第一部分可移动到并存储于耦合到缓冲器626的SDC 427的PDC 429中的一个(例如,PDCx)中。因此,SDC 427可作为存储器资源用于主机602。因此,在时间t4处,主机602可发出起始程序暂停状态的第二命令(例如,程序暂停命令)并且通过使用SDC 427和PDC 429的可作为存储器资源用于主机602的部分来执行与程序暂停状态相关联的操作(例如,如由箭头675指示)。
在时间t5处,可在完成与程序暂停状态相关联的操作后即刻从主机602发出第三命令(如由箭头676指示),使得数据的第一部分移动回到其最初被存储处。如由箭头677指示,存储器装置624可被配置成响应于接收到来自主机602的第三命令,使数据的第一部分从多个第一高速缓冲存储器中的高速缓冲存储器移动到缓冲器的第二高速缓冲存储器。举例来说,存储于PDC 429中的一个(例如,PDCx)中的数据的第一部分可移动回到SDC 427,其中数据的第一部分最初在时间t1处存储于所述SDC 427中。在时间t6处,主机602可响应于使数据的第一部分移动回到SDC 427而发出第四命令(例如,程序恢复命令)(例如,如由箭头678指示)。举例来说,响应于发出第四命令(例如,程序恢复命令),计算系统100可终止程序暂停状态并且到中另一状态(例如,在进入程序暂停状态之前的状态)。在时间t8处,存储器装置被进一步配置成响应于在时间t7处从主机602接收到第五命令(例如,如由箭头679指示),将数据的第一部分从缓冲器624编程到存储器胞元阵列628(例如,如由箭头680指示)。
在发出程序暂停命令之前已经编程到存储器胞元阵列的数据的第二部分不重新编程到存储器胞元阵列。举例来说,考虑不能够跟踪/控制正在存储器装置的内部缓冲器中执行的存储器操作的主机。由于主机不能够跟踪编程(例如,如结合图3所描述的二遍次或三遍次编程)是如何完成的,因此主机可能需要将数据重新发送到存储器装置(例如,当将数据编程到存储器胞元阵列被另一操作打断时),以使得整个数据可从缓冲器重写到存储器胞元阵列。
相比之下,在数个实施例中,主机602具有跟踪/控制存储器操作(例如,跟踪/控制数据从缓冲器626编程到存储器胞元阵列628)的能力。因而,即使当将数据从缓冲器626编程到存储器胞元阵列628被给定较高优先级的另一操作(例如,与程序暂停命令相关联的操作)中断时,无需从主机602重新发送整个数据。替代地,主机602被配置成将命令发到存储器装置624以使得存储器装置624被配置成将数据的第一部分(例如,未被编程到存储器胞元阵列628)存储于PDC 429中的一个中,并且重新起始将数据的第一部分编程到存储器胞元阵列628而无需重新编程数据的已经编程到存储器胞元阵列628的第二部分。因此,可减小与将数据从缓冲器626编程到存储器胞元阵列628相关联的时延。
图7说明根据本公开的数个实施例的与控制对缓冲器726的存储器操作相关联的时序图。在此实例中,在时间t1处,主机702发出起始程序暂停状态的第一命令(例如,程序暂停命令)(例如,如由箭头781指示)。在时间t2处,主机702在程序暂停状态(例如,通过第一命令键入的状态)期间发出将存储于缓冲器726中的数据移动到主机702的第二命令(例如,如由箭头782指示)。在数个实施例中,第二命令可为设定特征命令。举例来说,第二命令可为将存储于一个位置中的数据移动到另一位置的复制命令554-1。
响应于接收到第二命令,存储器装置124可被配置成使(例如,存储于缓冲器726中的)数据从缓冲器726移动主机702(例如,如由箭头782指示)。举例来说,存储器装置被配置成将存储于PDC 429中的一个(例如,PDCx)中的数据移动到SDC 427(例如,如由箭头783指示),并且在时间t3处从SDC 427移动到主机702(例如,如由箭头784指示)。因此,缓冲器726的至少两个高速缓冲存储器可作为存储器资源用于主机702。因而,在时间t4处,可在先前存储于缓冲器726的两个高速缓冲存储器中的数据存储于主机702(例如,主机存储器116)中的情况下,执行使用至少两个高速缓冲存储器(例如,SDC 427和PDC 429中的一个)的操作(例如,如由箭头785指示)。与使用缓冲器726的两个高速缓冲存储器相关联的操作可包含软位读取操作、经校正读取操作、高速缓冲存储器读取操作,以及/或与调整供在例如硬和/或软数据读取中使用的感测电压和/或读取参考电压相关联的通道校准。在数个实施例中,软数据可例如指示硬数据(例如,关于胞元存储硬数据的概率或胞元存储不同数据的概率的信息)的质量和/或置信度。因此,软数据可提供例如增加的准确度和/或可靠性(例如,减小的差错率)和/或增加的存储器寿命以及其它益处等益处。
在时间t5处,主机702可在完成与使用SDC 427和PDC 429中的一个(例如,PDCx)相关联的操作后即刻将第三命令(例如,如由箭头786指示)发到存储器装置624(例如,缓冲器726)。第三命令可为设定特征命令。举例来说,第三命令可为使数据从一个位置(例如,主机702)移动到另一位置(例如,缓冲器726)的复制命令554-1。在时间t6处,存储器装置624被配置成使数据从主机702移动到缓冲器726(例如,响应于接收到来自主机702的第三命令),数据在移动到主机702(例如,如由箭头787指示)之前最初存储于所述缓冲器726中。举例来说,存储于主机702中的数据(例如,在执行与使用SDC 427和PDCx 429相关联的操作的同时)可从主机702移动到SDC 427(例如,如由箭头788指示),且从SDC 427移动到PDCx 429(例如,如由箭头788指示),数据在移动到主机702之前最初存储于所述PDCx 429中。在时间t7处,主机702可响应于将数据移动到PDCx 429,发出终止程序暂停状态的第四命令(例如,编程恢复命令)(例如,如由箭头789指示)。
结合图7描述的实施例提供例如经由主机起始的命令改进存储器装置的可靠性的益处。举例来说,考虑即使在编程到存储器胞元阵列128之后仍保持于多个高速缓冲存储器(例如,SDC 427和PDC 429)中的数据(例如,包含一定量的用户数据和一定量的禁止数据,所述禁止数据指示何时终止二遍次或三遍次编程)。发出程序暂停命令(例如,进而进入程序暂停状态)可防止主机和/或存储器装置将剩余的数据从多个高速缓冲存储器移动到其它位置(例如,主机和/或存储器胞元阵列)。因而,只要剩余的数据存储于多个高速缓冲存储器中,就可无需执行与使用至少两个高速缓冲存储器相关联的操作(例如,除无需采用两个高速缓冲存储器的正常读取操作以外)。
相比之下,在数个实施例中,主机702可被配置成使剩余的数据从多个高速缓冲存储器(例如,SDC 427和PDC 429)移动到其它位置,例如主机存储器116。因此,多个高速缓冲存储器(例如,SDC 427和PDC 429)可作为存储器资源用于主机702,且主机702可被配置成执行与使用两个高速缓冲存储器相关联的操作。因而,实施例提供例如经由主机起始的命令改进存储器装置的可靠性的益处。
虽然已在本文中示出并描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所示出的具体实施例。本公开意欲涵盖本公开的若干实施例的改编或变化。应理解,以上描述是以说明性方式进行的,而不是限制性的。对于所属领域的技术人员来说,在审阅上述描述之后,上述实施例的组合以及本文中未具体描述的其它实施例将是显而易见的。本公开的若干实施例的范围包含其中使用上述结构和方法的其它应用。因此,本公开的若干实施例的范围应当参考所附权利要求书连同此类权利要求有权享有的等效物的完整范围来确定。
在前述具体实施方式中,出于简化本公开的目的而将一些特征一并归到单个实施例中。本公开的这一方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如所附权利要求书所反映,本发明标的物在于单个所公开实施例的少于全部的特征。因此,所附权利要求特此并入于具体实施方式中,其中每项权利要求独自作为单独实施例。
Claims (20)
1.一种设备,其包括:
存储器装置,其包含缓冲器和存储器胞元阵列,其中所述缓冲器包含多个高速缓冲存储器;和
主机,其包含系统控制器,所述系统控制器被配置成控制对所述缓冲器中的数据的存储器操作的执行,其中所述存储器操作与所述多个高速缓冲存储器当中的数据移动相关联。
2.根据权利要求1所述的设备,其中所述系统控制器被进一步配置成:
在将数据从所述缓冲器编程到所述存储器胞元阵列时,接收对发出程序暂停命令的请求;
发出第一命令以使得所述数据的第一部分从第二高速缓冲存储器移动到多个第一高速缓冲存储器中的高速缓冲存储器,其中所述数据的所述第一部分是在将所述数据编程到所述存储器胞元阵列期间不被编程到所述存储器胞元阵列的一定量的位;和
发出第二命令,即所述程序暂停命令,使得在程序暂停状态期间,在所述数据的所述第一部分存储于相应多个第一高速缓冲存储器中的所述高速缓冲存储器上的情况下,对所述第二高速缓冲存储器执行特定操作。
3.根据权利要求3所述的设备,其中所述系统控制器被进一步配置成:
发出第三命令以使得所述数据的所述第一部分从所述相应多个第一高速缓冲存储器中的所述高速缓冲存储器移动到所述第二高速缓冲存储器;
发出第四命令,即编程恢复命令;和
发出第五命令以使得所述数据的所述第一部分从所述缓冲器编程到所述存储器胞元阵列。
4.根据权利要求3所述的设备,其中所述数据的在发出所述第一命令之前已经编程到所述存储器胞元阵列的第二部分不重新编程到所述存储器胞元阵列。
5.根据权利要求1所述的设备,其中所述系统控制器被进一步配置成:
发出第一命令,即起始程序暂停状态的程序暂停命令;
在所述程序暂停状态期间发出第二命令,以使得数据从多个第一高速缓冲存储器中的高速缓冲存储器移动到第二高速缓冲存储器,并且经由输入/输出I/O线从所述第二高速缓冲存储器移动到所述主机,其中所述第二高速缓冲存储器经由所述I/O线耦合到所述主机;
在所述数据存储于所述主机中的情况下,使用所述第二高速缓冲存储器和所述相应多个第一高速缓冲存储器中的所述高速缓冲存储器执行读取操作;和
在完成所述读取操作后即刻发出第三命令,以使得所述数据从所述主机移动到所述第二高速缓冲存储器并且从所述第二高速缓冲存储器移动到所述相应多个第一高速缓冲存储器中的所述高速缓冲存储器。
6.根据权利要求1-5中任一权利要求所述的设备,其中所述系统控制器包括被配置成将多个设定特征命令发到所述存储器装置的设定特征接口。
7.根据权利要求1-5中任一权利要求所述的设备,其中所述系统控制器被进一步配置成对所述多个高速缓冲存储器中的数据执行计算操作。
8.一种设备,其包括:
主机,其被配置成发出命令;和
存储器装置,其包含缓冲器和存储器胞元阵列;且其中:
所述存储器装置被配置成响应于接收到来自所述主机的命令,对所述缓冲器中的数据执行存储器操作;且
所述缓冲器包含耦合到第二高速缓冲存储器的多个第一高速缓冲存储器和经由输入/输出I/O线耦合到所述主机的所述第二高速缓冲存储器。
9.根据权利要求8所述的设备,其中在程序暂停状态期间对所述缓冲器中的所述数据执行所述存储器操作,使得所述缓冲器的所述多个第一高速缓冲存储器和所述第二高速缓冲存储器可用作所述主机的存储器资源。
10.根据权利要求8所述的设备,其中所述主机:
在将数据从所述缓冲器编程到所述存储器胞元阵列时,接收对发出程序暂停命令的请求;和
响应于所述对所述请求的接收而将第一命令和第二命令发到所述存储器装置;
其中所述存储器装置被进一步配置成:
响应于接收到来自所述主机的所述第一命令,将所述数据的不被编程到所述存储器胞元阵列的第一部分从所述缓冲器的所述第二高速缓冲存储器移动到所述多个第一高速缓冲存储器中的高速缓冲存储器;和
响应于接收到在完成与所述程序暂停状态相关联的操作后即刻从所述主机发出的所述第二命令,将所述数据的所述第一部分从所述多个第一高速缓冲存储器中的所述高速缓冲存储器移动到所述缓冲器的所述第二高速缓冲存储器。
11.根据权利要求10所述的设备,其中在所述程序暂停状态期间,在所述数据的所述第一部分存储于所述多个第一高速缓冲存储器中的所述高速缓冲存储器中的情况下,对所述缓冲器的所述第二高速缓冲存储器执行特定操作。
12.根据权利要求10所述的设备,其中:
所述存储器装置被进一步配置成响应于接收到在完成所述程序暂停状态后即刻从所述主机发出的第三命令,将所述数据的所述第一部分从所述缓冲器编程到所述存储器胞元阵列;且
所述数据的在发出所述程序暂停命令之前已经编程到所述存储器胞元阵列的第二部分不重新编程到所述存储器胞元阵列。
13.根据权利要求8-12中任一权利要求所述的设备,其中响应于接收到来自所述主机的所述命令,所述存储器装置被进一步配置成:
在处于程序暂停状态中的情况下,使数据从所述缓冲器移动到所述主机,以使得所述缓冲器的所述第二高速缓冲存储器和所述多个第一高速缓冲存储器中的高速缓冲存储器可用作所述主机的存储器资源;
在所述数据存储于所述主机中的情况下,使用所述第二高速缓冲存储器和所述多个第一高速缓冲存储器中的所述高速缓冲存储器执行读取操作;和
在完成所述读取操作后即刻使所述数据从所述主机移动到所述缓冲器。
14.根据权利要求13所述的设备,其中所述读取操作包括选自以下各项的操作:
软位读取操作
经校正读取操作;
高速缓冲存储器读取操作;和
通道校准。
15.一种方法,其包括:
从外部控制器接收发到存储器装置的命令,所述存储器装置包括存储器胞元阵列和缓冲器;和
响应于接收到来自所述外部控制器的所述命令,对所述缓冲器中的数据执行存储器操作以使得所述缓冲器可用作所述外部控制器的存储器资源;
其中所述外部控制器位于主机内部,使得所述主机被进一步配置成控制对所述缓冲器中的所述数据执行所述存储器操作。
16.根据权利要求15所述的方法,其另外包括:
将存储于所述缓冲器上的数据移动到所述主机,使得所述缓冲器的多个高速缓冲存储器可作为所述存储器资源用于所述外部控制器。
17.根据权利要求15所述的方法,其中所述存储器操作另外包括选自以下各项的操作:
重置所述缓冲器的多个高速缓冲存储器;
使数据在所述缓冲器的所述多个高速缓冲存储器当中移动;和
使存储于所述多个高速缓冲存储器的第一高速缓冲存储器上的数据与存储于所述多个高速缓冲存储器的第二高速缓冲存储器上的其它数据交换。
18.根据权利要求15-17中任一权利要求所述的方法,其中所述主机被进一步配置成经由所述外部控制器控制对所述缓冲器中的所述数据执行所述存储器操作,这分别对应于所述存储器装置的内部控制器。
19.根据权利要求15-17中任一权利要求所述的方法,其另外包括:
在将数据从所述缓冲器编程到所述存储器胞元阵列时,接收对执行与使用所述缓冲器的第二高速缓冲存储器相关联的操作的请求;
在执行与使用所述缓冲器的所述第二高速缓冲存储器相关联的所述操作时,将所述数据的不被编程到所述存储器胞元阵列的第一部分存储于所述缓冲器的第一高速缓冲存储器上;和
响应于完成所述操作,将所述数据的所述部分编程到所述存储器胞元阵列且无需重新编程所述数据的已经编程到所述存储器胞元阵列的第二部分。
20.根据权利要求15-17中任一权利要求所述的方法,其另外包括:
将数据从所述缓冲器编程到所述存储器胞元阵列;和
响应于与将所述数据编程到所述存储器胞元阵列相关联的故障事件,经由所述缓冲器将所述数据从所述存储器胞元阵列移动到所述主机。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/609,569 | 2017-05-31 | ||
US15/609,569 US10372353B2 (en) | 2017-05-31 | 2017-05-31 | Apparatuses and methods to control memory operations on buffers |
PCT/US2018/035100 WO2018222692A2 (en) | 2017-05-31 | 2018-05-30 | Apparatuses and methods to control memory operations on buffers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110678852A true CN110678852A (zh) | 2020-01-10 |
CN110678852B CN110678852B (zh) | 2023-11-24 |
Family
ID=64455017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880034824.7A Active CN110678852B (zh) | 2017-05-31 | 2018-05-30 | 控制对缓冲器的存储器操作的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10372353B2 (zh) |
KR (1) | KR102321221B1 (zh) |
CN (1) | CN110678852B (zh) |
WO (1) | WO2018222692A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11029950B2 (en) | 2019-07-03 | 2021-06-08 | International Business Machines Corporation | Reducing latency of common source data movement instructions |
KR20210155467A (ko) * | 2020-06-16 | 2021-12-23 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
US11188473B1 (en) * | 2020-10-30 | 2021-11-30 | Micron Technology, Inc. | Cache release command for cache reads in a memory sub-system |
WO2022125909A1 (en) * | 2020-12-11 | 2022-06-16 | Micron Technology, Inc. | Multi-tier cache for a memory system |
US11922011B2 (en) * | 2021-09-01 | 2024-03-05 | Micron Technology, Inc. | Virtual management unit scheme for two-pass programming in a memory sub-system |
US11971829B2 (en) * | 2021-09-16 | 2024-04-30 | Sandisk Technologies Llc | On-the-fly compression scheme for soft bit data in non-volatile memory |
US11894068B2 (en) | 2021-09-16 | 2024-02-06 | Sandisk Technologies Llc | Efficient sensing of soft bit data for non-volatile memory |
US11901019B2 (en) | 2021-09-16 | 2024-02-13 | Sandisk Technologies Llc | Use of data latches for compression of soft bit data in non-volatile memories |
US11971826B2 (en) | 2021-09-16 | 2024-04-30 | Sandisk Technologies Llc | Architecture and data path options for compression of soft bit data in non-volatile memories |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070211529A1 (en) * | 2006-03-13 | 2007-09-13 | Luca De Santis | Memory device distributed controller system |
US20120250431A1 (en) * | 2011-03-30 | 2012-10-04 | Hynix Semiconductor Inc. | Semiconductor memory apparatus and method for driving the same |
US20130205085A1 (en) * | 2009-09-09 | 2013-08-08 | Fusion-Io | Program suspend/resume for memory |
US20160026406A1 (en) * | 2014-06-05 | 2016-01-28 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for providing flexible host memory buffer |
CN106104499A (zh) * | 2014-06-02 | 2016-11-09 | 美光科技公司 | 高速缓冲存储器架构 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
US5584039A (en) * | 1993-11-08 | 1996-12-10 | International Business Machines Corporation | System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices |
US5539895A (en) * | 1994-05-12 | 1996-07-23 | International Business Machines Corporation | Hierarchical computer cache system |
KR100684873B1 (ko) | 2004-11-22 | 2007-02-20 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 워드라인 전압 제어 방법 |
US8700830B2 (en) | 2007-11-20 | 2014-04-15 | Spansion Llc | Memory buffering system that improves read/write performance and provides low latency for mobile systems |
US8775717B2 (en) | 2007-12-27 | 2014-07-08 | Sandisk Enterprise Ip Llc | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories |
JP5026309B2 (ja) * | 2008-03-06 | 2012-09-12 | 株式会社日立製作所 | バックアップデータ管理システム及びバックアップデータ管理方法 |
US8111549B2 (en) | 2009-07-13 | 2012-02-07 | Intel Corporation | Dynamic wordline start voltage for nand programming |
JP5521816B2 (ja) * | 2010-06-18 | 2014-06-18 | 富士通株式会社 | 記憶装置、制御装置および記憶装置の制御方法 |
US9164679B2 (en) * | 2011-04-06 | 2015-10-20 | Patents1, Llc | System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class |
JP5323170B2 (ja) * | 2011-12-05 | 2013-10-23 | ウィンボンド エレクトロニクス コーポレーション | 不揮発性半導体メモリおよびそのデータの読出し方法 |
US8719507B2 (en) * | 2012-01-04 | 2014-05-06 | International Business Machines Corporation | Near neighbor data cache sharing |
US9311239B2 (en) * | 2013-03-14 | 2016-04-12 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US20170031601A1 (en) | 2015-07-30 | 2017-02-02 | Kabushiki Kaisha Toshiba | Memory system and storage system |
TWI553478B (zh) | 2015-09-23 | 2016-10-11 | 瑞昱半導體股份有限公司 | 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 |
US10102129B2 (en) * | 2015-12-21 | 2018-10-16 | Intel Corporation | Minimizing snoop traffic locally and across cores on a chip multi-core fabric |
US10152436B2 (en) * | 2016-03-30 | 2018-12-11 | Oracle International Corporation | Mutual exclusion in a non-coherent memory hierarchy |
-
2017
- 2017-05-31 US US15/609,569 patent/US10372353B2/en active Active
-
2018
- 2018-05-30 KR KR1020197036807A patent/KR102321221B1/ko active IP Right Grant
- 2018-05-30 CN CN201880034824.7A patent/CN110678852B/zh active Active
- 2018-05-30 WO PCT/US2018/035100 patent/WO2018222692A2/en active Application Filing
-
2019
- 2019-07-09 US US16/506,020 patent/US10936210B2/en active Active
-
2021
- 2021-02-26 US US17/187,066 patent/US11556251B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070211529A1 (en) * | 2006-03-13 | 2007-09-13 | Luca De Santis | Memory device distributed controller system |
US20130205085A1 (en) * | 2009-09-09 | 2013-08-08 | Fusion-Io | Program suspend/resume for memory |
US20120250431A1 (en) * | 2011-03-30 | 2012-10-04 | Hynix Semiconductor Inc. | Semiconductor memory apparatus and method for driving the same |
CN106104499A (zh) * | 2014-06-02 | 2016-11-09 | 美光科技公司 | 高速缓冲存储器架构 |
US20160026406A1 (en) * | 2014-06-05 | 2016-01-28 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for providing flexible host memory buffer |
Also Published As
Publication number | Publication date |
---|---|
US20180349029A1 (en) | 2018-12-06 |
KR20190142416A (ko) | 2019-12-26 |
KR102321221B1 (ko) | 2021-11-04 |
WO2018222692A3 (en) | 2019-02-21 |
WO2018222692A2 (en) | 2018-12-06 |
US11556251B2 (en) | 2023-01-17 |
US10936210B2 (en) | 2021-03-02 |
CN110678852B (zh) | 2023-11-24 |
US20190332284A1 (en) | 2019-10-31 |
US10372353B2 (en) | 2019-08-06 |
US20210181955A1 (en) | 2021-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110678852B (zh) | 控制对缓冲器的存储器操作的设备和方法 | |
US10877887B2 (en) | Data storage device and operating method thereof | |
US10902924B2 (en) | Memory system varying pass voltage based on erase count of target memory block and operating method thereof | |
US20210141532A1 (en) | Storage device and method of operating the same | |
CN111104059A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN111258793A (zh) | 存储器控制器及其操作方法 | |
KR20210123884A (ko) | 스토리지 장치 및 그 동작 방법 | |
CN114078543A (zh) | 存储器控制器及其操作方法 | |
US11056162B2 (en) | Memory device and method of operating the same | |
CN112687314A (zh) | 存储器设备和操作存储器设备的方法 | |
CN115588451A (zh) | 存储装置及其操作方法 | |
CN111445939A (zh) | 存储装置及其操作方法 | |
US11699491B2 (en) | Double interleaved programming of a memory device in a memory sub-system | |
KR20220132026A (ko) | 메모리 디바이스의 다중 핀 구성 | |
KR20220022407A (ko) | 저장 장치 및 그 동작 방법 | |
US11762553B2 (en) | Runtime selection of memory devices and storage devices in a disaggregated memory system | |
US11194512B2 (en) | Data storage device which selectively performs a cache read or a normal read operation depending on work load and operating method thereof | |
KR20220077679A (ko) | 메모리 장치 및 그 동작 방법 | |
JP2021525924A (ja) | データの2つの部分を有するメモリのデータの再配置 | |
US12019550B2 (en) | Concurrent page cache resource access in a multi-plane memory device | |
US11756612B2 (en) | All levels dynamic start voltage programming of a memory device in a memory sub-system | |
US20220391321A1 (en) | Concurrent page cache resource access in a multi-plane memory device | |
US11868658B2 (en) | Memory controller including first processor for generating commands and second processor for generating logging information and method of operating the memory controller | |
US11182310B2 (en) | Priority determination circuit and method of operating the priority determination circuit for preventing overlapping operation | |
US20240028204A1 (en) | Memory controller and method of operating the same |
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 |