CN112543908A - 写入缓冲器管理 - Google Patents
写入缓冲器管理 Download PDFInfo
- Publication number
- CN112543908A CN112543908A CN201980050390.4A CN201980050390A CN112543908A CN 112543908 A CN112543908 A CN 112543908A CN 201980050390 A CN201980050390 A CN 201980050390A CN 112543908 A CN112543908 A CN 112543908A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- memory component
- memory
- determining
- 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 claims abstract description 287
- 230000004044 response Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 66
- 238000012937 correction Methods 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 23
- 238000011084 recovery Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 17
- 238000013519 translation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011066 ex-situ storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
- G06F11/1612—Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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
-
- 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
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
可执行从存储器组件检索数据且在与读取操作相关联的读取数据路径中略过缓冲器处对所述数据的先前搜索的所述读取操作。响应于执行略过所述缓冲器处对所述数据的所述先前搜索的所述读取操作,将所述数据传回到主机***。
Description
技术领域
本公开的实施方案大体上涉及存储器子***,更具体地说,涉及存储器子***内的写入缓冲器管理。
背景技术
存储器子***可为存储***,例如固态驱动器(SSD),并且可包含存储数据的一或多个存储器组件。存储器子***可包含例如非易失性存储器组件和易失性存储器组件等存储器组件。一般来说,主机***可利用存储器子***将数据存储在存储器子***的存储器组件处,且从存储器子***的存储器组件检索数据。
附图说明
根据以下给出的详细描述以及本公开的各种实施方案的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施方案的包含存储器子***的实例计算环境。
图2说明根据本公开的一些实施方案的包含存储器子***的另一实例计算环境。
图3为根据一些实施方案的执行读取操作的实例方法的流程图。
图4为根据一些实施方案的执行读取操作的实例方法的流程图。
图5为可操作本公开的实施方案的计算机***的实例机器的框图。
具体实施方式
本公开的方面涉及存储器子***内的缓冲器管理。存储器子***在下文也称为“存储器装置”。存储器子***的实例是存储***,例如固态驱动器(SSD)。在一些实施方案中,存储器子***是混合式存储器/存储子***。一般来说,主机***可以利用包含一或多个存储器组件的存储器子***。主机***可以提供数据以存储在存储器子***处并且可以请求从存储器子***检索数据。
由存储器子***使用的存储器组件可具有在存储器子***的操作上提供挑战的特定特性。举例来说,存储器组件可具有一特性,其中在数据已经写入到存储器组件处的位置之后在时间窗内(例如,1毫秒(ms)内)从存储器组件处的位置读取数据可引起数据的大量错误。错误数可超出由存储器子***使用的错误校正码(ECC)的错误校正能力且可引起读取失败。一些常规***在延迟周期(例如,1毫秒内)之后对存储器组件执行读取操作以确保写入到存储器组件上的位置的数据正确地经编程且避免数据损坏。延迟周期可通过在从存储器组件检索数据并将数据传回到主机***时引起冗长时延而降低存储器子***的服务质量。
在执行写入操作时,存储器子***可载入和存储数据以在缓冲器(例如,最新的写入缓冲器)处写入。存储在缓冲器处的数据可用于将数据写入到存储器组件。来自缓冲器的数据可经读取而不具有延迟(例如,延迟读取)且可在错误数相对较少的情况下从缓冲器检索数据。缓冲器可在一定量的时间内存储数据,直到例如所述数据通过与新写入操作相关联的新数据改写。新数据存储于缓冲器上且用于写入到存储器组件。在执行读取操作时,一些常规***在从存储器组件读取数据之前针对每一读取操作检测缓冲器以搜索数据以供读取。每一读取操作在缓冲器处对数据的最初搜索可减少由存储器组件的特性引起的数据损坏,但也可通过在检索数据并将数据传回到主机***时增大时延而造成服务质量降低。举例来说,每一读取操作在缓冲器处对数据的最初搜索需要时间,这有助于增大时延。随着缓冲器变大,由每一读取操作的在缓冲器处对数据的最初搜索引起的时延增大。在最近已经写入到的存储器组件位置处执行的读取操作的数目可为存储器子***的读取操作的总数目的成比例的少量,这使得由每一读取操作在缓冲器处对数据的最初搜索引起的时延甚至更不理想。
本公开的各方面通过执行略过缓冲器处对数据的初始搜索且直接从存储器组件读取数据的读取操作而解决上述和其它缺陷。在一些实施方案中,对从存储器组件检索的数据执行初始错误校正码操作。响应于确定数据未损坏或通过错误校正码操作校正,将数据传回到主机***。响应于确定数据无法通过初始错误校正码操作校正,控制器搜索缓冲器以搜索数据。在一些实施方案中,响应于发现缓冲器处的数据,来自缓冲器的数据被传回到主机***且用于重新编程(例如,重写)存储器组件。
本公开的各方面,例如执行略过缓冲器处对数据的初始搜索且直接从存储器组件读取数据的读取操作通过由减小传回数据(例如,传回到主机***)时的时延改进存储器子***的服务质量并在执行存储器操作(例如读取操作)时改进存储器子***的速度而改进存储器子***的操作。另外,通过例如使用来自控制器的缓冲器的数据重编程存储器组件提高存储在存储器子***处的数据的可靠性而进一步改进存储器子***的操作。
图1说明根据本公开的一些实施方案的包含存储器子***110的实例计算环境100。存储器子***110可包含介质,如存储器组件112A到112N。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施方案中,存储器子***是存储***。存储***的实例是SSD。在一些实施方案中,存储器子***110是混合式存储器/存储子***。一般来说,计算环境100可包含使用存储器子***110的主机***120。举例来说,主机***120可将数据写入到存储器子***110以及从存储器子***110读取数据。
主机***120可以是计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机***120可包含或耦合到存储器子***110使得主机***120可从存储器子***110读取数据或将数据写入到存储器子***110。主机***120可经由物理主机接口耦合到存储器子***110。如本文中所使用,“耦合到”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(serial advanced technology attachment;SATA)接口、***组件互连高速(peripheral component interconnect express;PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接的SCSI(Serial Attached SCSI;SAS)等。物理主机接口可以用于在主机***120与存储器子***110之间传输数据。当存储器子***110通过PCIe接口与主机***120耦合时,主机***120可进一步利用NVM高速(NVM Express;NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供接口以用于在存储器子***110与主机***120之间传送控制、地址、数据以及其它信号。
存储器组件112A到112N可以包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)类型快闪存储器。存储器组件112A到112N中的每一个可以包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施方案中,特定存储器组件可以包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一个可存储由主机***120使用的一或多个数据位(例如,数据块)。虽然描述了例如NAND类型快闪存储器的非易失性存储器组件,但是存储器组件112A到112N可以基于任何其它类型的存储器,例如易失性存储器。在一些实施方案中,存储器组件112A到112N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM),以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,相比于许多基于快闪的存储器,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112A到112N中的存储器单元可以分组为存储器页或数据块,所述存储器页或数据块可以指用于存储数据的存储器组件的单元。
存储器***控制器115(下文称为“控制器”)可以与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。控制器115可以是微控制器、专用逻辑电路***(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。控制器115可包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子***110的操作(包含处置存储器子***110与主机***120之间的通信)的各种程序、操作、逻辑流和例程。在一些实施方案中,本地存储器119可以包含存储器寄存器,其存储存储器指针、获取的数据等。本地存储器119还可以包含用于存储微码的只读存储器(ROM)。尽管图1中的实例存储器子***110已经说明为包含控制器115,但在本公开的另一实施方案中,存储器子***110可不包含控制器115,且可替代地依赖于外部控制(例如,由外部主机或与存储器子***分离的处理器或控制器提供)。
一般来说,控制器115可以从主机***120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令,以实现对存储器组件112A到112N的期望的存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和在与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含主机接口电路***以经由物理主机接口与主机***120通信。主机接口电路***可将从主机***接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机***120的信息。
在一些实施方案中,控制器115可包含主机存储器转译电路***(未展示),其包含用于转译从主机接口电路***接收到的主机指令的硬件(例如,电路***)、软件(例如,固件)或其组合。主机存储器转译电路***可被配置成将主机地址(例如,逻辑地址)转译为存储器组件112A到112N的存储器地址(例如,物理地址)。举例来说,主机***120可将一或多个请求(例如,读取请求、写入请求等)发送到控制器115。所述请求可包含主机命令和上面将执行主机命令的数据的主机地址。举例来说,读取请求可包含主机读取命令和请求读取的数据的主机地址。写入请求可包含主机写入命令和请求写入的数据的主机地址。主机地址可由主机存储器转译电路***转换成存储器地址,例如识别存储器组件112A到112N的特定数据单元的物理存储器地址。
存储器子***110还可以包含未说明的额外电路***或组件。在一些实施方案中,存储器子***110可以包含高速缓存或缓冲器(例如,DRAM),以及可以从控制器115接收地址并对地址进行解码以存取存储器组件112A到112N的地址电路***(例如,行解码器和列解码器)。
存储器子***110包含缓冲器管理组件113(例如,电路***、专用逻辑、可编程逻辑、固件等)以执行本文中所描述的操作。在一些实施方案中,控制器115包含缓冲器管理组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其被配置成执行存储于本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施方案中,缓冲器管理组件113是主机***110、应用程序或操作***的部分。
在一些实施方案中,缓冲器管理组件113可从主机***120接收读取存储在存储器组件112处的数据的请求。响应于读取数据的请求,缓冲器管理组件113执行从存储器组件112读取数据的读取操作,其在与读取操作相关联的读取数据路径中略过缓冲器处对数据的初始搜索。响应于执行略过缓冲器处对数据的初始搜索的读取操作,缓冲器管理组件113将数据传回到主机***120。下文描述关于缓冲器管理组件113的操作的另外细节。
图2说明根据本公开的一些实施方案的包含存储器子***的另一实例计算环境200。图1的计算环境100的元件可用于帮助说明图2。举例来说,计算环境200包含图1的主机***120、控制器115和存储器组件112A至112N。可注意到,计算环境200出于说明而非限制的目的提供。在实施方案中,计算环境200可包含图1的计算环境100的一些、所有、无、更多或不同元件。也可注意到,计算环境200的存储器子***210可包含图1的存储器子***110的一些、所有、无、更多或不同元件。缓冲器管理组件113可执行相对于图2的控制器115所描述的操作中的一或多个。
在一些实施方案中,控制器115可包含主机接口(I/F)220、主机存储器转译222、缓冲器224、内容可寻址存储器(CAM)226,和缓冲器管理组件113。
在一些实施方案中,存储器组件112A到112N可包含非易失性存储器组件,此种非易失性存储器组件包含非易失性存储器单元的交叉点阵列。如上文所示,非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,相比于执行异地写入操作(例如,在可将其它数据编程到待写入位置之前擦除所述位置的数据)的许多基于快闪的存储器,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。一般来说,本公开的各方面可应用于其它类型的非易失性存储器组件或其它类型的存储器组件。
在一些实施方案中,控制器115可包含主机接口(I/F)220,其包含用于与主机***120介接的硬件(例如,电路***)、软件(例如,固件)或其组合。主机接口220可将从主机***接收到的命令包(例如,使用***组件互连高速(PCIe)总线)转换成用于主机存储器转译222的命令指令。主机接口220也可将来自主机存储器转译222的响应转换成用于传输到主机***120的主机命令。举例来说,主机***120可将读取存储在存储器组件112处的数据的读取请求、将数据存储于存储器组件112处的写入请求或擦除存储在存储器组件112处的数据的擦除请求发送到控制器115的主机接口220。主机接口220可将读取请求转换为由控制器115执行的读取操作以读取存储在存储器组件112处的数据并将数据传回到主机***120。主机接口220可将写入请求转换为由控制器115执行的写入操作以将从主机***120接收到的数据写入到存储器组件112。主机接口可将擦除请求转换为由控制器115执行的擦除操作以擦除存储器组件112处的数据。读取操作、写入操作、擦除操作为一些存储器操作的实例。
在一些实施方案中,控制器115可包含主机存储器转译222,其包含用于转译从主机接口220接收到的主机指令的硬件(例如,电路***)、软件(例如,固件)或其组合。主机存储器转译222可被配置成将主机地址(例如,逻辑地址)转译为存储器组件112的存储器地址(例如,物理地址)。举例来说,主机***120可将一或多个请求(例如,读取请求、写入请求等)发送到控制器115。所述请求可包含主机命令和上面将执行主机命令的数据的主机地址。举例来说,读取请求可包含主机读取命令和请求读取的数据的主机地址。写入请求可包含主机写入命令和请求写入的数据的主机地址。主机地址可通过主机存储器转译222转换成存储器地址,例如识别存储器组件112的特定逻辑单元号(LUN)的物理存储器地址。逻辑单元号可以指存储器单元。举例来说,存储器单元可为存储器组件112的裸片。在其它实施方案中,存储器单元可为不同量的存储器。
在一些实施方案中,控制器115可包含缓冲器224,其可包含将待写入或最近已经写入(例如,在1ms内)的数据(例如,本文中也被称作“主机数据”)存储在存储器组件112处的硬件(例如,电路***)、软件(例如,固件)或其组合。在一些实施方案中,缓冲器224(本文中也被称为“最新的写入缓冲器”或“写入缓冲器”)可包含易失性存储器,例如静态随机存取存储器(SRAM)。举例来说,在执行写入操作(例如,响应于来自主机***120的写入请求)时,控制器115可暂时存储数据以写入于缓冲器224上,并从缓冲器224检索数据以将数据写入到存储器组件112。由于新数据由缓冲器224接收(例如,响应于新写入请求),因此缓冲器224处的更早数据经改写(例如,使用先进先出(FIFO)方案)。
在一些实施方案中,控制器115可包含内容可寻址存储器(CAM)226,其可包含存储指示存储在缓冲器224处的数据的信息的硬件(例如,电路***)、软件(例如,固件)或其组合。在一些实施方案中,在执行写入操作时,数据存储于缓冲器224上且与数据相关联的存储器地址(例如,存储器组件112)可存储在内容可寻址存储器226处。在实施方案中,内容可寻址存储器226可实施查找表功能,其中内容可寻址存储器226接收数据字(例如,存储器地址)并搜索存储器以确定数据是否存储在内容可寻址存储器226处。在一些实施方案中,响应于发现数据字,内容可寻址存储器226可传回缓冲器处与数据字相关联的数据或缓冲器处数据的位置。在一些实施方案中,内容可寻址存储器226可在单个时钟循环中使用专用比较电路***执行查找表功能。
在实施方案中,为了执行读取操作,控制器115可执行缓冲器224处对数据的搜索。控制器115可搜索内容可寻址存储器226以搜索数据的相关联存储器地址。响应于发现待在内容可寻址存储器226处读取的数据的存储器地址,控制器115可确定数据存储在缓冲器224处并从缓冲器224(例如,而非存储器组件112)检索数据。响应于未发现待在内容可寻址存储器226处读取的数据的存储器地址,控制器115可确定数据未存储在内容可寻址存储器226处。
在实施方案中,控制器115的元件说明执行读取操作或写入操作时使用的简化数据路径205(例如,读取数据路径或写入数据路径)。数据路径205可包含执行数据处理操作的一或多个功能单元。数据路径205包含主机接口220、主机存储器转译222、缓冲器224和内容可寻址存储器226。更一般来说,计算环境200的数据路径可指代主机***120、控制器115的数据路径205,和存储器组件112。
图3为根据一些实施方案的执行读取操作的实例方法的流程图。方法300可由可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施方案中,方法300可由图1或图2的控制器115的缓冲器管理组件113执行。可注意到,在其它实施方案中,方法300可包含按相同或不同次序执行的相同、不同、额外或更少操作。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述程序的次序。因此,所说明的实施方案应仅被理解为实例,并且所说明的操作可以不同的次序执行,并且一些操作可以并行地执行。另外,在各种实施方案中,可以省略一或多个操作。因此,并非在每个实施方案中都需要所有操作。其它程序流程是可能的。前述图式的元件可用于帮助说明图3。
在框305处,处理逻辑从主机***120接收读取存储在存储器组件112处的数据的读取请求。读取请求进一步相对于图2描述。
在框310处,处理逻辑响应于读取请求执行读取操作并从存储器组件112读取数据。处理逻辑可使用与数据相关联的一或多个存储器地址从存储器组件112读取数据。在实施方案中,为了执行读取操作,处理逻辑在与读取操作相关联的数据路径205中略过缓冲器224处对数据的初始搜索(本文中也被称为“先前搜索”)。举例来说,控制器115可略过缓冲器224处对数据的初始搜索并直接从存储器组件112读取数据(例如,而无需缓冲器224处对数据的先前搜索),而非在存储器组件112处对数据的搜索之前执行缓冲器处对数据的初始搜索。
在框315处,处理逻辑对从存储器组件112读取的数据执行一或多个错误校正码(ECC)操作。在一些实施方案中,控制器115可执行一或多个错误校正码操作以尝试检测或校正数据中的错误。举例来说,一或多个错误校正码操作可检测数据的一或多个错误。响应于检测到错误,控制器115可执行一或多个额外错误校正码操作以校正数据的多个错误。一或多个错误校正码操作可校正小于或等于错误校正码的校正能力的错误数(本文中也被称为“t”)。如果数据中的错误数大于错误校正码的校正能力,那么错误校正码不能够校正数据中的所有错误(例如,不可校正错误)。在实施方案中,错误校正码操作可与一或多个种类的错误校正码相关联,例如奇偶校验、产品码、Bose-Chaudhuri-Hocquenghem(BCH)码、低密度奇偶检验码(LDPC)等。
在框320处,处理逻辑鉴于一或多个错误校正码操作确定从存储器组件112读取的数据是否存在错误。在一个实施方案中,处理逻辑在从存储器组件112读取的数据中未检测到任何错误。响应于确定数据不含有任何错误,处理逻辑可继续进行到框330并将从存储器组件112读取的数据传回到主机***120。
在另一个实施方案中,处理逻辑可确定对数据执行的一或多个错误校正码操作校正从存储器组件112读取的数据的一或多个错误(例如,可校正错误)(例如,数据的错误数小于或等于错误校正码的错误校正能力)。响应于确定数据中的错误已经校正(且数据中无错误),处理逻辑可继续进行到框330并将经校正数据传回到主机***120。
在某一实施方案中,一或多个错误校正码操作无法校正数据中检测到的一或多个错误(例如,不可校正错误)(例如,数据的错误数大于或等于错误校正码的错误校正能力)。处理逻辑可确定一或多个错误校正码操作未校正从存储器组件112读取的数据的一或多个错误(例如,不可校正错误)。响应于确定一或多个错误校正码操作未校正从存储器组件112读取的数据的错误(例如,一或多个错误不可校正),处理逻辑可继续进行到框325以执行缓冲器224处对数据的后续搜索。
在框325处,处理逻辑执行缓冲器224处对数据的后续搜索(例如,在从存储器组件112读取数据之后)。进一步相对于图2描述缓冲器224处对数据的搜索。
在框335处,响应于执行缓冲器224处对数据的后续搜索,处理逻辑确定数据是否存储在缓冲器224处。在实施方案中,响应于确定数据存储在缓冲器224处,处理逻辑从缓冲器224读取数据并继续进行到框330以将从缓冲器224读取的数据传回到主机***120。在实施方案中,响应于确定数据存储在缓冲器224处,处理逻辑从缓冲器224读取数据并继续进行到框345以重写存储器组件112处的数据。可注意到,在从存储器组件112读取的数据已经因紧接在将数据写入到存储器组件112之后读取数据而损坏(如上文所描述)的情况下,重写数据可校正损坏的数据。在一些实施方案中,响应于确定数据未存储在缓冲器224处,处理逻辑继续进行到框340以执行错误恢复。
在框340处,响应于确定数据未存储在缓冲器224处,处理逻辑执行一或多个错误恢复操作以校正从存储器组件112读取的数据中的错误(例如,经由框320的ECC的不可校正错误)。错误恢复操作可类似于错误校正码操作,使得错误恢复操作可校正小于或等于错误恢复的校正能力的错误数(或可包含类似种类的ECC)。在一些实施方案中,错误恢复操作相较于框315的错误校正码操作更复杂(例如,改变装置读取参数、ECC参数等)。在实施方案中,错误恢复操作的错误校正能力可大于框315的错误校正码操作的错误校正能力(例如,可校正较大错误数)。在一些实施方案中,由执行错误恢复操作引起的时延可大于由执行框315的错误校正码操作引起的时延。举例来说,错误恢复操作的执行耗时长于框310的错误校正码操作,这可在将数据传回到主机***120时引起较大延迟。
在一些实施方案中,响应于确定错误恢复操作未成功校正从存储器组件112读取的数据中的错误,处理逻辑生成报告(例如,识别具有不可校正错误的数据)并将报告提交到主机***120(未展示)。
在一些实施方案中,响应于使用错误恢复操作校正从存储器组件112读取的数据中的错误,处理逻辑可继续进行到框330并将经校正数据传回到主机***120。在一些实施方案中,响应于使用错误恢复操作校正从存储器组件112读取的数据中的错误,处理逻辑继续进行到框345以将数据重写到存储器组件112。
在框330处(如上文所示),处理逻辑响应于读取请求将数据传回到主机***120(例如,框305)。
在框345处,处理逻辑执行写入操作(例如,重写操作)以将存储在缓冲器处的数据写入到存储器组件112。在一些实施方案中,写入操作为就地写入操作。在一些实施方案中,执行写入操作将缓冲器224的数据写入到存储器组件112的相同位置(例如,相同存储器地址),读取操作从所述位置读取数据(例如,在框310处)。可注意到,数据可因读取操作而损坏(例如,框310),且处理逻辑将数据重写到存储器组件112的相同位置以校正损坏的数据。在一些实施方案中,处理逻辑可同时、串行或以其它方式执行框330和框345的操作。
图4为根据一些实施方案的执行读取操作的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施方案中,方法400可由图1或图2的控制器115的缓冲器管理组件113执行。可注意到,在其它实施方案中,方法400可包含按相同或不同次序执行的相同、不同、额外或更少操作。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述程序的次序。因此,所说明的实施方案应仅被理解为实例,并且所说明的操作可以不同的次序执行,并且一些操作可以并行地执行。另外,在各种实施方案中,可以省略一或多个操作。因此,并非在每个实施方案中都需要所有操作。其它程序流程是可能的。前述图式的元件可用于帮助说明图4。
在框405处,处理逻辑从主机***120接收请求以读取存储在存储器组件112处的主机数据。在框410处,响应于读取主机数据的请求,处理逻辑执行读取操作,其从存储器组件112读取主机数据且在与读取操作相关联的读取数据路径205中略过缓冲器224处对主机数据的初始搜索。在框415处,响应于执行略过缓冲器224处对主机数据的初始搜索的读取操作,处理逻辑将主机数据传回到主机***120。
图5说明计算机***500的实例机器,所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机***500可对应于包含、耦合到或利用存储器子***(例如,图1的存储器子***110或图2的存储器子***210)的主机***(例如,图1的主机***120)或可用于执行控制器的操作(例如,执行操作***以执行对应于图1或图2的缓冲器管理组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、开关或桥接器,或能够(依序或以其它方式)执行指定由机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机***500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM))、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储***518,其经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行指令526以用于执行本文中所论述的操作和步骤。计算机***500可进一步包含网络接口装置508以经由网络520通信。
数据存储***518可包含机器可读存储介质524(也称为计算机可读介质),其上存储有一或多个指令集526或体现本文中所描述的任何一或多种方法或功能的软件。指令526还可在其由计算机***500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储介质。机器可读存储介质524、数据存储***518和/或主存储器504可对应于图1的存储器子***110或图2的存储器子***210。
在一个实施例中,指令526包含实施对应于缓冲器管理组件(例如,图1或图2的缓冲器管理组件113)的功能性的指令。尽管在实例实施例中将机器可读存储介质524展示为单个介质,但术语“机器可读存储介质”应被认为包含存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多种的任何介质。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质以及磁性介质。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在此并且通常被认为是产生期望的结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控并将计算机***的寄存器和存储器内的表示为物理(电子)量的数据变换为计算机***存储器或寄存器或其它这类信息存储***内的类似地表示为物理量的其它数据的计算机***或类似电子计算装置的动作和程序。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的介质,它们各自耦合到计算机***总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用***可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些***的结构。此外,并不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机***(或其它电子装置)以执行根据本公开的程序的指令的机器可读介质。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
词语“实例”或“示范性”在本文中用以意味着充当实例、例子或说明。本文中描述为“实例”或“示范性”的任何方面或设计未必应解释为比其它方面或设计优选或有利。而是,词语“实例”或“示范性”的使用希望以具体方式呈现概念。如本申请中所使用,术语“或”希望意味着包含性的“或”而非排他性的“或”。也就是说,除非另外指定,或从上下文清楚可见,否则“X包含A或B”希望意味着任何自然的包含性排列。也就是说,如果X包含A;X包含B;或X包含A和B两者,那么“X包含A或B”在上述任何情况下都满足。另外,如在本申请和所附权利要求书中使用的冠词“一(a/an)”一般来讲可以解释为意味着“一或多个”,除非另外指定或从上下文清楚可见表示单数形式。此外,除非如此描述,否则通篇使用术语“一实施方案”或“一个实施方案”或“一实施例”或“一个实施例”并不希望意味着同一实施方案或实施例。如本文中所使用的术语“第一”、“第二”、“第三”、“第四”等意图作为标记来区分开不同元件,且可能未必具有根据其数字名称的序数含义。
Claims (20)
1.一种***,其包括:
存储器组件;和
处理装置,其耦合到所述存储器组件,所述处理装置用以:
从主机***接收读取存储在所述存储器组件处的数据的请求;
响应于读取所述数据的所述请求,执行从所述存储器组件检索所述数据的读取操作;
确定从所述存储器组件检索的所述数据是否包括不可校正的错误;以及
响应于确定从所述存储器组件检索的所述数据包括不可校正的错误,在与所述存储器组件相关联的数据路径中在缓冲器处对所述数据进行搜索。
2.根据权利要求1所述的***,其中为了执行从所述存储器组件检索所述数据的所述读取操作,所述处理装置进一步用以:
直接从所述存储器组件读取所述数据而无需预先执行对所述缓冲器的初始搜索以确定所述数据是否存储在所述缓冲器处。
3.根据权利要求1所述的***,所述处理装置进一步用以:
对从所述存储器组件检索的所述数据执行一或多个错误校正码操作。
4.根据权利要求3所述的***,所述处理装置进一步用以:
鉴于所述一或多个错误校正码操作的所述执行确定从所述存储器组件检索的所述数据不存在所述错误;和
响应于确定从所述存储器组件检索的所述数据不存在所述错误,将从所述存储器组件检索的所述数据传回到所述主机***。
5.根据权利要求3所述的***,所述处理装置进一步用以:
确定对所述数据执行的所述一或多个错误校正码操作校正从所述存储器组件检索的所述数据的所述错误;和
响应于确定所述一或多个错误校正码操作校正所述错误,将经校正数据传回到所述主机***。
6.根据权利要求3所述的***,所述处理装置进一步用以:
鉴于所述一或多个错误校正码操作的所述执行确定从所述存储器组件检索的所述数据包括为不可校正错误的所述错误。
7.根据权利要求6所述的***,所述处理装置进一步用以:
确定所述数据存储在所述缓冲器处;和
响应于确定所述数据存储在所述缓冲器处,从所述缓冲器检索所述数据,其中将从所述缓冲器检索的所述数据传回到所述主机***。
8.根据权利要求7所述的***,所述处理装置进一步用以:
响应于确定所述数据存储在所述缓冲器处,执行就地写入操作以将所述数据从所述缓冲器写入到所述存储器组件。
9.根据权利要求8所述的***,其中所述就地写入操作将所述数据写入到所述存储器组件的相同位置,所述读取操作从所述位置检索所述数据。
10.根据权利要求7所述的***,所述处理装置进一步用以:
响应于确定所述数据未存储在所述缓冲器处,对所述数据执行错误恢复操作。
11.根据权利要求1所述的***,其中所述存储器组件包括非易失性存储器组件,在所述非易失性存储器组件处执行就地写入操作。
12.根据权利要求1所述的***,其中所述缓冲器包括一或多个易失性存储器组件以存储最近写入在所述存储器组件处的数据。
13.一种方法,其包括:
通过处理装置从主机***接收读取存储在存储器组件处的数据的请求;
响应于读取所述数据的所述请求,通过所述处理装置执行从所述存储器组件检索所述数据的读取操作;
确定从所述存储器组件检索的所述数据是否包括不可校正的错误;
响应于确定从所述存储器组件检索的所述数据包括不可校正的错误,在与存储器子***相关联的数据路径中在缓冲器处对所述数据进行搜索。
14.根据权利要求13所述的方法,其进一步包括:
对从所述存储器组件检索的所述数据执行错误校正码操作。
15.根据权利要求14所述的方法,其进一步包括:
鉴于所述一或多个错误校正码操作的所述执行确定从所述存储器组件检索的所述数据不存在所述错误;和
响应于确定从所述存储器组件检索的所述数据不存在所述错误,将从所述存储器组件检索的所述数据传回到所述主机***。
16.根据权利要求14所述的方法,其进一步包括:
鉴于所述一或多个错误校正码操作确定从所述存储器组件检索的所述数据包括不可校正的所述错误;
确定所述数据存储在所述缓冲器处;以及
响应于确定所述数据存储在所述缓冲器处,从所述缓冲器检索所述数据,其中将从所述缓冲器检索的所述数据传回到所述主机***。
17.一种非暂时性计算机可读介质,其包括指令,所述指令响应于由处理装置执行而使得所述处理装置:
执行从存储器组件检索数据且在与读取操作相关联的读取数据路径中略过缓冲器处对所述数据的先前搜索的所述读取操作;和
响应于执行略过所述缓冲器处对所述数据的所述先前搜索的所述读取操作,将所述数据传回到主机***。
18.根据权利要求17所述的非暂时性计算机可读介质,所述处理装置进一步用以:对从所述存储器组件检索的所述数据执行错误校正码操作。
19.根据权利要求18所述的非暂时性计算机可读介质,所述处理装置进一步用以:确定所述一或多个错误校正码操作未校正从所述存储器组件检索的所述数据中的错误;和
响应于确定所述一或多个错误校正码操作未校正从所述存储器组件检索的所述数据中的所述错误,执行所述缓冲器处对所述数据的后续搜索。
20.根据权利要求19所述的非暂时性计算机可读介质,所述处理装置进一步用以:
基于所述缓冲器处对所述数据的所述后续搜索的所述执行而确定所述数据存储在所述缓冲器处;和
响应于确定所述数据存储在所述缓冲器处,从所述缓冲器检索所述数据,其中将从所述缓冲器检索的所述数据传回到所述主机***。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/039,683 US10877835B2 (en) | 2018-07-19 | 2018-07-19 | Write buffer management |
US16/039,683 | 2018-07-19 | ||
PCT/US2019/042461 WO2020018831A1 (en) | 2018-07-19 | 2019-07-18 | Write buffer management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112543908A true CN112543908A (zh) | 2021-03-23 |
CN112543908B CN112543908B (zh) | 2024-05-17 |
Family
ID=69161892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980050390.4A Active CN112543908B (zh) | 2018-07-19 | 2019-07-18 | 写入缓冲器管理 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10877835B2 (zh) |
EP (1) | EP3824381A4 (zh) |
KR (1) | KR20210024188A (zh) |
CN (1) | CN112543908B (zh) |
WO (1) | WO2020018831A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877835B2 (en) * | 2018-07-19 | 2020-12-29 | Micron Technology, Inc. | Write buffer management |
US10761588B2 (en) * | 2018-08-09 | 2020-09-01 | Micron Technology, Inc. | Power configuration component including selectable configuration profiles corresponding to operating characteristics of the power configuration component |
US11734115B2 (en) * | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11841767B2 (en) | 2021-11-24 | 2023-12-12 | Samsung Electronics Co., Ltd. | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140053016A1 (en) * | 2012-08-20 | 2014-02-20 | International Business Machines Corporation | Using A Buffer To Replace Failed Memory Cells In A Memory Component |
CN104978147A (zh) * | 2014-04-03 | 2015-10-14 | 光宝科技股份有限公司 | 固态储存装置及其错误更正控制方法 |
US20160132259A1 (en) * | 2014-11-12 | 2016-05-12 | International Business Machines Corporation | Performance optimization of read functions in a memory system |
CN106158038A (zh) * | 2015-04-14 | 2016-11-23 | 飞思卡尔半导体公司 | 从非易失性存储器读取数据的方法 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储***和主机***错误校正码 |
CN109154813A (zh) * | 2016-05-24 | 2019-01-04 | 美光科技公司 | 基于存储器装置错误的自适应刷新率及方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4887235A (en) * | 1982-12-17 | 1989-12-12 | Symbolics, Inc. | Symbolic language data processing system |
FR2655222B1 (fr) * | 1989-11-28 | 1992-02-07 | Alcatel Transmission | Procede et dispositif de transmission numerique d'informations, avec demande automatique de retransmission, ou "arq". |
US7224702B2 (en) * | 2000-08-30 | 2007-05-29 | The Chinese University Of Hong Kong | System and method for error-control for multicast video distribution |
US6983413B2 (en) * | 2000-12-12 | 2006-01-03 | Kabushiki Kaisha Toshiba | Data processing method using error-correcting code and an apparatus using the same method |
US8904098B2 (en) * | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US8638653B2 (en) * | 2008-03-27 | 2014-01-28 | Intel Corporation | Adaptive transmissions for optimized application delivery in wireless networks |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8301948B2 (en) * | 2009-08-10 | 2012-10-30 | Hitachi Global Storage Technologies Netherlands B.V. | Storage device with adaptive error-correcting code for improved areal efficiency |
US8352831B2 (en) * | 2009-12-29 | 2013-01-08 | Cleversafe, Inc. | Digital content distribution utilizing dispersed storage |
ES2566916T3 (es) * | 2011-01-14 | 2016-04-18 | Ge Video Compression, Llc | Esquema de codificación y descodificación por entropía |
KR102050896B1 (ko) | 2013-02-19 | 2019-12-02 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
US9298549B2 (en) * | 2013-12-11 | 2016-03-29 | International Business Machines Corporation | Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems |
US9514848B2 (en) | 2014-04-03 | 2016-12-06 | Lite-On Electronics (Guangzhou) Limited | Solid state drive and associated error check and correction method |
JP2015215774A (ja) | 2014-05-12 | 2015-12-03 | Tdk株式会社 | メモリコントローラ、メモリシステム及びメモリ制御方法 |
CA3031067A1 (en) * | 2016-07-18 | 2018-01-25 | Nantomics, Llc | Distributed machine learning systems, apparatus, and methods |
US10567006B2 (en) | 2016-08-05 | 2020-02-18 | Sandisk Technologies Llc | Data relocation |
US10877835B2 (en) * | 2018-07-19 | 2020-12-29 | Micron Technology, Inc. | Write buffer management |
-
2018
- 2018-07-19 US US16/039,683 patent/US10877835B2/en active Active
-
2019
- 2019-07-18 EP EP19837962.0A patent/EP3824381A4/en active Pending
- 2019-07-18 KR KR1020217004564A patent/KR20210024188A/ko not_active Application Discontinuation
- 2019-07-18 CN CN201980050390.4A patent/CN112543908B/zh active Active
- 2019-07-18 WO PCT/US2019/042461 patent/WO2020018831A1/en active Application Filing
-
2020
- 2020-11-20 US US17/100,571 patent/US11526395B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140053016A1 (en) * | 2012-08-20 | 2014-02-20 | International Business Machines Corporation | Using A Buffer To Replace Failed Memory Cells In A Memory Component |
CN104978147A (zh) * | 2014-04-03 | 2015-10-14 | 光宝科技股份有限公司 | 固态储存装置及其错误更正控制方法 |
US20160132259A1 (en) * | 2014-11-12 | 2016-05-12 | International Business Machines Corporation | Performance optimization of read functions in a memory system |
CN106158038A (zh) * | 2015-04-14 | 2016-11-23 | 飞思卡尔半导体公司 | 从非易失性存储器读取数据的方法 |
CN109154813A (zh) * | 2016-05-24 | 2019-01-04 | 美光科技公司 | 基于存储器装置错误的自适应刷新率及方法 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储***和主机***错误校正码 |
Also Published As
Publication number | Publication date |
---|---|
US11526395B2 (en) | 2022-12-13 |
KR20210024188A (ko) | 2021-03-04 |
EP3824381A1 (en) | 2021-05-26 |
EP3824381A4 (en) | 2022-04-20 |
US10877835B2 (en) | 2020-12-29 |
CN112543908B (zh) | 2024-05-17 |
WO2020018831A1 (en) | 2020-01-23 |
US20210073068A1 (en) | 2021-03-11 |
US20200026595A1 (en) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11056198B2 (en) | Read disturb scan consolidation | |
CN112543908B (zh) | 写入缓冲器管理 | |
CN114981892A (zh) | 预读取及读取阈值电压优化 | |
US11726869B2 (en) | Performing error control operation on memory component for garbage collection | |
US11023177B2 (en) | Temperature correction in memory sub-systems | |
CN111837108A (zh) | 基于不成功错误校正操作将经恢复数据提供到存储器子***处的新存储器单元 | |
US11705216B2 (en) | Data redirection upon failure of a program operation | |
CN112673429A (zh) | 与写入操作相关联的预读取操作的调整 | |
CN112449693B (zh) | 在存储***的两遍编程之前执行读取操作 | |
CN114270304B (zh) | 存储器组件的同一平面内的数据压缩 | |
KR102403173B1 (ko) | 메모리 시스템에의 중요 데이터 저장 | |
US11221912B2 (en) | Mitigating an undetectable error when retrieving critical data during error handling | |
CN114051605A (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 |