CN101946286B - 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 - Google Patents
用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 Download PDFInfo
- Publication number
- CN101946286B CN101946286B CN200880126592.4A CN200880126592A CN101946286B CN 101946286 B CN101946286 B CN 101946286B CN 200880126592 A CN200880126592 A CN 200880126592A CN 101946286 B CN101946286 B CN 101946286B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- host
- controller
- write
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
一种用于模拟每单元单个位的NAND闪存器件的每单元多个位的NAND闪存器件的控制器。该控制器可以包括:主机NAND接口,用于从NAND主机设备接收主机数据;以及数据集合器,用于将主机数据与补充数据集合,由此创建可被存储在NAND闪存器件的NAND闪存单元的阵列的器件页中的器件数据。在创建器件数据后,控制器将器件数据写入NAND闪存单元的器件页中。该控制器还包括数据解析器,用于当控制器执行数据读取操作时,从器件数据解析主机数据。如需要,控制器使用数据解析器以在控制器执行数据写入操作时,从器件数据解析补充数据。
Description
技术领域
本公开一般涉及闪存器件,并更具体地涉及通过一种类型的NAND闪存器件(例如每单元多个位(Multiple Bit per Cell)(“MBC”)闪存器件)来模拟另一类型的NAND闪存器件(例如每单元单个位(Single Bit per Cell)(“SBC”)闪存器件)。
背景技术
多年来已知闪存器件、一种非易失存储器器件。闪存器件包括存储器单元的阵列,其中每个存储器单元由通常具有浮置栅极区、漏极区和源极区的半导体晶体管来实现。存储器单元可以具有通过控制在浮置栅极内存储的电荷量来实现的两个或更多不同的状态。即,每个状态与存储在浮置栅极内的不同电荷量相关。为了实际使用存储器单元,其每个状态与二进制值相关。
一种闪存器件是基于公知为“每单元单个位”(SBC)的技术的,其意味着SBC存储器器件中的每个存储器单元存储一位。每单元存储一位意味着该单元被配置为处于(即存储)两种可能状态之一。通常,该单元的一个状态与存储在该单元的浮置栅极中的零电荷相关。该状态是该单元的“未写入”状态,并且通常这表示二进制数字“1”。该单元的另一状态通常与浮置栅极中的某些负电荷量相关。该状态是该单元的“已写入”状态,并且通常这表示二进制数字“0”。浮置栅极中的负电荷的存在导致该单元的晶体管的阈值电压增加,以及由此,必须被施加到晶体管的控制栅极以便致使晶体管导电的电压增加。
闪存器件能够执行三种操作:向存储器单元中写(由于历史原因,经常称作“编程”)数据、从存储器单元读数据、以及从存储器单元擦除数据。这些操作由外部主机设备发起,但是由控制器本地处理。向存储器单元中写二进制数字(即“0”或“1”)涉及改变晶体管的浮置栅极中的电荷以由此改变该单元的阈值电压。读取存储在存储器单元中的二进制数字涉及检查该单元的阈值电压的电平-如果阈值电压处于较高状态,则将位值译为逻辑值“0”。但是,如果阈值电压处于较低状态,则将位值译为逻辑值“1”。实际上,不需要准确地读取该单元的阈值电压。而是,正确地标识该单元当前处于两个状态中的哪一个状态就足够了。为了实现这点,必须将单元的阈值电压与其值在两个状态之间的参考电压相比较,并确定该单元的阈值电压是在参考值以下还是以上。
对于许多种闪存,例如NAND闪存,不能在各个存储器单元上进行写和擦除操作,而是,在各组存储器单元上进行这些操作。在“页”上进行写操作,“页”相对小(对于NAND闪存器件来说,通常是512字节、2K字节或者4K字节),而在“块”上进行擦除操作,“块”大于页(对于NAND闪存器件来说,通常是32K字节或128K字节)。
另一种闪存器件是基于公知为“每单元多个位”(MBC)的技术。在MBC存储器器件中,每个存储器单元存储N位(N≥2),这意味着MBC存储器单元被配置为存储2N个状态。例如,存储2位的存储器单元存储四个状态,其每个与四个二进制值“00”、“01”、“10”、“11”之一相关。
由于单元的状态由该单元的阈值电压表示,因此存储两位的MBC单元支持该单元的阈值电压的四个不同范围。对于SBC单元,MBC单元的每个状态实际上是一个电压范围而不是单个电压。当读取单元的内容(即所存储的二进制值)时,该单元的阈值电压必须与校正电压范围正确地相关。例如在Harari的美国专利No.5434825中讨论了MBC快闪器件。
当最初构思闪存技术的概念时,MBC NAND快闪器件相对不成熟,而SBC器件很普遍。因此,利用闪存技术的主机的传统设计是面向SBC的,这导致其与MBC器件不兼容。因此,即使MBC NAND技术已经成熟、比SBC器件更具成本效率(至少在每美元的兆字节方面)并已经在市场上可获得,但是基于MBC的NAND器件也不能由符合SBC的主机设备使用,这阻止了MBC技术的进一步发展,即使MBC器件比SBC器件提供了每个相同物理区域的更多存储容量。即使包含使用每单元的相同数量的位来存储数据的存储器单元,如果存储器件是由不同的存储器厂商供应的,因为不存在对于NAND接口的标准,并且不同的厂商可以并且确实使用不同种类的NAND接口,因此也可能存在其他的技术不匹配。
克服此兼容性问题(即,使得MBC快闪器件和符合SBC的主机能够彼此交互)并不容易,因为SBC器件和MBC器件在几个技术方面中本质不同。例如,SBC器件和MBC器件利用不同大小的数据页和数据块。另外,因为SBC单元的两个状态之间的电压间隔(“误差余量”)大于在MBC的每两个相邻状态之间存在的误差余量,因此SBC单元提供了更高水平的可靠性,由于此原因,通常使用SBC单元来引导(boot)计算机系统。为了补偿其相对低的可靠性,MBC器件使用更强的误差校正方案,例如更强的纠错码(ECC)。
随着SBC闪存器件提供了更高的可靠性和更快的响应性,已经做出努力来将SBC的能力与MBC组合。但是,这些努力指向仅改善MBC闪存器件的特定技术方面。一些现有技术致力于引导方面,即其提供在MBC闪存器件中的特定区域中存储初始化(即引导)程序,以获得与由“真正的”SBC技术提供的可靠性类似的引导可靠性。其他现有技术致力于可靠性方面,并提供了更强的误差校正机制。其他现有技术致力于响应速度方面并允许在MBC器件中专用和使用SLC缓存,等等。但是,现有技术未教导将SBC数据写入MBC闪存器件中作为常规MBC数据,或者从MBC数据中读取SBC数据。
发明内容
结合意为示例和图示而非在范围上限制的系统、工具和方法来描述和图示以下示例实施例及其方面。
作为本公开的一部分,提供了一种用于将主机数据写入到闪存器件中的方法,该方法包括:通过闪存器件的控制器从主机设备接收写指令,用于将主机数据写入被分组成单独可写的器件页的NAND闪存单元阵列中。控制器可以将主机数据与补充数据集合,由此创建可存储在所述器件页中的一个或多个中的器件数据,然后将所述器件数据写入所述器件页中的一个或多个中。
作为本公开的一部分,提供了一种用于从闪存器件读取主机数据的方法,该方法包括步骤:从主机设备接收读指令,用于从被分组成单独可读的器件页的NAND闪存单元的阵列中读取主机数据,所述主机数据是被存储在器件页中的器件数据的一部分;从所述器件数据解析所述主机数据;以及将解析的主机数据发送到主机设备。
作为本公开的一部分,提供了一种执行用于从闪存器件擦除主机数据的擦除指令的方法,该方法包括步骤:从主机设备接收擦除指令,用于从被分组成可单独擦除的器件块的NAND闪存单元的阵列中擦除主机数据,所述主机数据是被存储在器件块中的器件数据的一部分;将所述主机数据标记为被擦除;以及向主机设备发送主机数据已经被擦除的消息。该方法还可以包括实际擦除包含主机数据的器件块的步骤。
作为本公开的一部分,提供了一种用于闪存器件的控制器,其实现写入、读取和擦除方法。该控制器可以包括:主机NAND接口,用于从NAND主机设备接收主机数据;以及数据集合器,用于将主机数据与补充数据集合,由此创建器件数据。该控制器可以将器件数据写入与闪存器件相关的NAND闪存单元的阵列的器件页中。该控制器还包括数据解析器,用于当控制器执行数据写入操作时,解析补充数据,并当控制器执行数据读取操作时,解析主机数据。
主机数据可以被构造用于按每单元M位地存储数据的存储器单元的NAND阵列,并且NAND闪存单元可以被设计为按每单元N位地存储数据,其中N和M是整数并且N大于M。在一个示例实施例中,N等于2并且M等于1。在另一示例实施例中,N等于4并且M等于1。在另一示例实施例中,N等于4并且M等于2。
除了以上所述的示例方面和实施例以外,通过参考附图并通过学习以下详细描述,进一步的方面和实施例将变得显而易见。
附图说明
在参考的附图中图示了示例实施例。意要在此公开的示例实施例是图示的而不是限制性的。但是,当结合附图阅读时,参考以下详细描述可以更好地理解本公开,在附图中:
图1示意性图示了根据本公开的一个示例实施例的闪存器件;
图2示出了根据本公开的一个示例实施例的用于由闪存器件处理主机命令序列的示例方法;以及
图3示出了根据本公开的示例实施例的伪PPP的使用。
将认识到,为了简化并清楚图示,图中所示的元件不是必须按比例绘出的。此外,在认为适当时,可以在各图中重复参考标记以指示相同、相应或者类似的元件。
具体实施方式
通过参考本发明的示例实施例的此具体实施方式,将更好地理解权利要求书。此具体实施方式不是意要限制本发明的范围而是提供示例。
如上所述,NAND闪存器件被设计为在分别处理的页中存储数据。取决于主机设备所发起的操作的类型(即,将主机数据写到闪存器件中、从闪存器件中读取主机数据或者从闪存器件中擦除主机数据),“分别处理的页”可以指代“分别可写”或者“分别可读”的页。当涉及“擦除”操作时,按块来擦除数据,其中每个块由几页构成。“页”的大小和块的大小取决于NAND闪存器件的类型,并且如上所述,由同一闪存器件处理各种大小的数据页并不容易,因为通常NAND闪存器件被设计或者至少被最优化用于特定的页和块大小。由于此原因,被设计用于某种页大小的主机设备通常不能、至少不能高效地与被设计用于不同页大小的闪存器件交互。
通常,源自主机设备的“命令序列”可以包括数据(下文中称为“主机数据”)、与闪存器件内的物理页相关的逻辑页地址以及用于闪存器件使用该逻辑地址将主机数据写到物理页中的写指令。通过将主机逻辑地址映射到相应器件页的逻辑地址、然后将器件页的逻辑地址映射到器件页的物理地址来执行从主机逻辑地址到器件页的物理地址的映射。或者,“命令序列”可以包括逻辑地址和用于闪存器件使用该逻辑地址从闪存器件的物理页中读取主机数据的读指令,或者包括逻辑地址和用于使用该逻辑地址从闪存器件中擦除主机数据的擦除指令。“命令序列”还可以包括可以由闪存器件使用的管理数据和其他类型的数据或信息。从主机设备转发到闪存器件的命令序列在下文中被称为“主机命令序列”。因为在NAND快闪器件中,数据被分组成页,可以说“主机数据”被分组成“主机页”。
图1示出了根据本公开的一个示例实施例的闪存器件(在102示出)。NAND闪存系统100包括NAND主机设备101和NAND闪存器件102,该NAND闪存器件102与主机设备101接口。闪存器件102包括主机接口(I/F)105、控制器103和用于按每单元N位来存储数据的NAND存储器单元130的阵列,其中N等于或大于2。
主机设备101经由主机I/F 105将主机命令序列转发(在104示出)到闪存器件102。主机命令序列包括用于存储在闪存器件102中的主机数据,该主机数据被分组成小于器件页的大小的、按主机大小的页。例如,如果主机设备101是被设计为与SBC闪存器件交互的SBC器件,则主机数据具有SBC数据的大小和其他特性,同样,主机命令序列是或者类似于SBC命令序列。SBC页的大小通常小于4K字节(例如2K字节)。
可存储在存储器单元阵列130中的数据在下文中被称作“器件数据”,而在存储器单元阵列130内的用于存储器件数据的存储器单元的组在此被称为“器件页”。器件页具有与其相关的指示页在存储器单元阵列130内的相对位置的物理地址以及指示由主机设备101所认知的页的相对位置的逻辑地址两者。通常,使用翻译表来将一种类型的地址翻译成另一类型。
例如,如果闪存器件是MBC器件,则器件页具有MBC页的大小和其他特性,同样,作为可由控制器103内部使用的命令序列的器件命令序列被构建或者构造(format)为符合MBC技术。MBC页的大小通常至少是4K字节。注意,在本公开的背景下,无论所涉及的技术如何(例如SBC、MBC等),主机数据都小于器件数据。
闪存器件通常包括整体快闪控制器(在图1中未示出),用于管理存储器器件与其主机设备之间的数据交换以及各种内部处理(例如磨损均衡(wearleveling))。如果闪存器件和其主机设备使用相同的页大小和相同的块大小而工作,则闪存器件可以不使用诸如图1的控制器103的控制器而与其主机设备交互。但是,本公开适用于符合不同技术(例如SBC vs.MBC)的主机设备101和闪存器件102,而且还适用于基于相同技术(例如MBC)但使用不兼容的NAND接口的主机设备和闪存器件。如上所述,主机设备101可以符合SBC技术,而闪存器件102可以符合MBC技术。控制器103按如下所述的方式来解决主机101和闪存器件102之间的技术差异。
控制器103包括主机命令解析器(parser)(“HCP”)110、控制电路150、数据集合器(aggregator)120和数据解析器140。HCP 110连接到(在106示出)主机I/F 105、数据集合器120(在121示出)和控制电路150(在151示出)。数据集合器120可以连接到诸如RAM 160的随机存取存储器(“RAM”)以临时存储主机数据以及可能的其他数据(例如哑数据(dummydata))。数据集合器120连接到(在142示出)数据解析器140。数据集合器120和数据解析器140连接到NAND存储器单元阵列130(分别在131和141示出)。“哑数据”指的是可由控制器103标识为除了表示在器件页内的空闲空间外不具有任何含义的数据的特定数据,并且不可由诸如主机设备101的外部设备访问。
控制器103被适配或配置为经由主机I/F 105从主机设备101接收主机命令序列(例如SBC命令序列)来处理主机数据,该主机数据可能是SBC数据。主机命令解析器(HCP)110被适配或配置为从该主机命令序列产生器件命令序列以与可应用于存储器单元阵列130的器件页操作(例如MBC操作)一致地处理该主机数据。“处理主机数据”在此指的是如下情况:其中,主机命令序列可能实际上包括用于存储在(写入或被编程到)闪存器件中的主机数据,或者主机数据已经被存储在闪存器件中并需要从存储器单元阵列130中读出或擦除。
主机命令解析器(HCP)110通过将主机命令序列解析为主机操作码(opcode)(“HOC”)111、主机逻辑地址(“HLA”)112和主机数据113,(如需要的话)翻译可由闪存器件102使用的操作码,来产生器件命令序列。如下所述处理从主机命令序列解析的数据(即主机数据)。“主机数据”可以指与要处理(即,写入、读取或擦除)的数据相关的数据、元数据和/或管理数据。
替换实施例可以包括更多、更少、其他的或者功能上等效的模块、组件或元件。例如,传统的闪存器件包括快闪管理器,即管理入口(ingress)和出口(egress)数据以及诸如磨损均衡、逻辑地址到物理地址的翻译和反过来的翻译的其它内部处理的一种控制器。因此,图1的控制器103可以是与快闪管理器交互的单独的器件,或者快闪管理器的功能性可以被集成、嵌入或结合到控制器103中。尽管在图1中被示出为单独的组件,但是主机接口105可以是控制器103的构成部分。尽管在图1中被示出为控制器103的构成部分,但是RAM 160或翻译表154或者两者可以存在于控制器103的外部。
“写”操作
如果在检查了主机操作码111后,HCP 110确定主机命令序列包括将主机数据写入存储器单元阵列130中的写指令,则如果该写指令不是兼容存储器器件的,则HCP 110将主机的写命令翻译成可由闪存器件102使用的写指令。否则(即,不需要指令翻译),控制电路150可以照原样利用该主机写指令。从而,HCP 110将原始写指令或(即如果该写指令不可由闪存器件102使用)其翻译转发(在151示出)到控制电路150。然后控制电路150可以控制数据集合器120的操作(在153示出)以及如需要的话还可以控制数据解析器140的操作(在152示出),以遵循主机设备发出的写指令。
参考标记170指定在所接收的主机命令序列中的从主机设备101接收的示例主机数据。如果操作码111是写指令,这意味着控制器103必须将主机数据170写到存储器单元阵列130中。在这些情况下,HCP 110将作为示例主机数据113的主机数据170转发(在121示出)到数据集合器120用于处理。
参考标记173、174和175指定仅具有与器件页相同大小(例如4KB)的器件数据能被写入的、或者能从其读取具有与器件页相同大小的数据的示例器件页。为了简化,图1仅示出了三个示例器件页(即器件页173、174和175),而实际上存储器单元阵列130将具有大量器件页。因为主机数据170小于器件页(例如器件页175),并且由于与每个页大小相关的各种技术复杂性,主机数据170不能照原样被写入存储器单元阵列130中,而是必须在控制器103将其写入存储器单元阵列130中之前被控制器103处理。
为了将主机数据170(或者用于该主题的任何其他主机数据)写入存储器单元阵列130中,控制器103包括数据集合器120,其被适配或配置为创建可存储在存储器单元阵列130中的一个或多个器件页中、例如在器件页175中的器件数据。数据集合器120通过将主机数据170与补充数据集合来创建器件数据。在完成数据集合处理后,数据集合器120将新创建的器件数据写到(在131示出)例如器件页173、174和175中的一个或多个中。
数据集合器120可以使用各种选择将主机数据与补充数据集合。根据第一选择,补充数据是从主机设备101接收的并被在闪存器件102中排队的其他主机数据。该选择包含等待直到从主机设备101接收到足够数量的新主机数据并将其在例如随机存取存储器(RAM)160中排队。
在没有足够数量的主机数据被排队在闪存器件102中的情况下,可以采用第二选择,其包含从存储器单元阵列130中读取剩余的补充数据。为了便于第二选择,控制电路150向数据解析器140发送(在152示出)器件页173、174和175的与需要的一样多的物理地址,数据解析器140可以从这些物理地址读取剩余的补充数据(即使不存在不足够数量的主机数据被排队在闪存器件102中的情况也能够采用此第二选择)。数据解析器140通过使用物理地址从被寻址的器件页提取相应的器件数据来从存储器单元阵列130读取数据。如果要读取的数据是主机数据,则数据解析器140从器件数据解析主机数据。
第三选择包含仅在规定的时间段内没有主机数据到达的情况下从存储器单元阵列130提取补充数据。第四选择包含将当前接收的主机数据临时存储在存储器单元阵列130中的某器件页中(即器件页173、174、175或任何其他的器件页中),并在接收到附加的主机数据后,稍后将该当前接收的主机数据与补充数据集合。
关于器件页的物理地址,如果控制电路150例如通过使用翻译表154发现潜在的补充数据被存储在一个具体器件页中,则控制电路150可以仅将该具体器件页(例如器件页175)的物理地址发送(在152示出)到数据解析器140。但是,如果控制电路150发现潜在的补充数据被分布在存储器单元阵列130内的几个器件页之中,则控制电路150将分别对应于这几个器件页的几个物理地址发送(在152示出)到数据解析器140。
然后,数据解析器140利用从控制电路150发送的物理地址从存储器单元阵列130中提取(在141示出)器件数据,数据解析器140可以从该器件数据中解析所需的补充数据。然后,数据解析器140可以将该补充数据转发(在142示出)到数据集合器120,该数据集合器120将其与主机数据集合由此创建新的器件数据。然后,数据集合器120将该器件数据写到(在131示出)已经从控制电路150发送了(在153示出)其物理地址的目标器件页中(例如器件页175),以由此完成“写”指令111。注意,如以下结合图3所讨论的,该补充数据可以是哑数据。即,要存储在器件页中的主机数据可以与哑数据集合,并且该器件页将被控制器103认为是仅包含主机数据。通过示例,示出示例器件页175包含主机数据176、主机数据177和哑数据178。在此示例中,数据集合器120接收了主机数据176并决定等待附加的主机数据177,然后将主机数据176和主机数据177两者写入闪存单元阵列130中。在等待附加的主机数据(即主机数据177)时,数据集合器120将主机数据176临时保存在RAM 160中。然后,数据集合器120接收了主机数据177,并将主机数据176与主机数据177以及哑数据178集合。最终,数据集合器120将得到的集合数据写到器件页175中,如图1所示。
注意,代替将器件页的物理地址发送到数据解析器140(如152所示)以及数据集合器120(如153所示),控制电路150可以使用器件页的物理地址来从存储器单元阵列130中读取感兴趣的器件数据,并视具体情况将其发送到数据解析器140或者数据集合器120。
“读”操作
如果接收的操作码111被控制电路150译为“读”指令,则控制电路150执行“读”指令,在其器件控制电路150将主机逻辑地址112翻译成存储器单元阵列130内的器件页(下文中被称为“被请求的器件页”)的物理地址,其中应该从该器件页读取主机数据(下文中被称为“被请求的主机数据”)。因为主机数据被存储在器件页中作为器件数据的一部分,因此需要从存储在所涉及的器件页中的器件数据解析被请求的主机数据(即要读取的主机数据)。因此,控制电路150将被请求的器件页的物理地址转发(在152示出)到数据解析器140。然后,数据解析器140利用被请求的器件页的物理地址来读取(在141示出)被请求的器件数据。然后,数据解析器140从提取的器件数据中解析被请求的主机数据,并经由主机I/F 105将被请求的主机数据发送(在143示出)到主机设备101,以由此完成“读”命令111。
注意,代替将被请求的器件页的物理地址发送到数据解析器140(如152所示),控制电路150可以使用被请求的器件页的物理地址来取得被请求的器件数据并将其发送到数据解析器140。
“擦除”操作
如果所接收的操作码111被控制电路150译为“擦除”指令,则控制电路150执行“擦除”指令。不同于对“页”执行的“写”和“读”操作,在NAND闪存器件中按“块”地擦除数据。“主机块”由多个主机页构成,并且“器件块”由多个器件页构成。因此,如果控制电路150标识擦除主机数据的擦除指令,则控制电路150查考翻译表154,以得到存储了包括要被擦除的主机数据的器件数据的存储器单元阵列130中的器件块的地址。然后,控制电路150在翻译表154中将主机数据标记为被擦除,并向主机设备101发送消息:主机数据已经被擦除。控制电路150实际上可以稍后在适当的时间或者方便时从存储器单元阵列130擦除主机数据。为了实际擦除主机数据,控制电路150将与主机数据相关的主机逻辑地址112翻译成包含该主机数据的器件块的相应物理地址,然后控制电路154擦除该器件块。
图2示出了根据本公开的用于由闪存器件处理主机命令序列的示例方法。将结合图1描述图2,并假设主机设备101符合SBC技术,而闪存器件102符合MBC技术。如上所述,不解决使设备相互区别的各个技术方面,SBC主机设备和MBC闪存器件不能交互。除了区别页的大小和块的大小之外,在SBC闪存器件中在新数据被写入页之前擦除该整个页。然而,如果新数据可以被写到该页中的足够大的空闲空间中,可以省略“擦除”步骤,这是本领域中通常称为部分页编程(“PPP”)的特征。与SBC闪存器件相反,MBC闪存器件总是在新数据可以被写入页中之前擦除该整个页。另外,SBC闪存器件将数据随机地写入页中,而MBC闪存器件按顺序将数据写入页中,即数据被写入页0中,然后写入页1中、页2中,等等。如以上结合图1所述,控制器103通过使用主机命令解析器110、数据集合器120和数据解析器140来解决这些技术差别。
在步骤201,NAND闪存器件102的控制器103从主机设备101接收(在图1中的104示出)主机命令序列,在此示例中该主机命令序列是SBC命令序列。在步骤202,主机命令解析器(HCP)110将SBC命令序列解析为SBC操作码111、SBC逻辑地址112和主机数据113,在此示例中该主机数据113是SBC数据。在步骤203,检查操作码是否是“写”指令。如果SBC操作码是“写”指令(在203示出为“是”),则在步骤204,控制电路150指令(在153示出)数据集合器120集合或合并SBC数据113与可能是其他SBC数据的补充数据,以由此创建可存储在MBC单元阵列130的一个或多个器件页中的器件数据(在此示例中是MBC数据)。由于控制电路150指令(在153示出)数据集合器120将包括SBC数据的所创建的器件数据(即MBC数据)写入MBC单元阵列130的(一个或多个)器件页中,因此在步骤205,SBC数据被写入(一个或多个)相应的MBC页中。
补充数据可以是从主机设备101接收并被排队在闪存器件102中的其他主机数据。补充数据可以是已经被存储在NAND闪存单元阵列130中作为其他器件数据的一部分并从其解析的主机数据。补充数据可以是哑数据。关于写操作,存储器单元阵列130的器件页被分组成块并在每个块内以逻辑的方式(logically-wise)相继被写入,使得这些器件页的物理地址不一定连续。换句话说,数据可以被写入不连续的、零散的或者不规则放置的器件页中,并且存储在不连续的、零散的或者不规则放置的器件页中的数据就像它们被存储在连续的器件页中那样被导入(introduce)主机设备。
响应于主机设备101使用PPP方案写入或试图写入主机数据,可以使用伪部分页编程(“PPP”)方案由控制器103将主机数据写入闪存单元阵列130中。使用伪PPP方案包括使用哑数据作为补充数据。可以由控制器103将主机数据写入例如与已经被写入的器件页不相邻的器件页中,以改善电力故障保护。
但是,如果SBC操作码111不是“写”指令(在步骤203处示出为“否”),则在步骤204,检查操作码是否是“读”指令。如果SBC操作码是用于从存储器单元阵列130中读取SBC数据的“读”指令(在步骤206处示出为“是”),其中SBC数据是存储在器件页中的MBC数据的一部分,则在步骤207,控制电路150命令(在152示出)数据解析器140从存储器单元阵列130中读取(示出在141)MBC数据,并从该MBC数据解析SBC数据。在步骤208,控制电路150命令(示出在152)数据解析器140将解析的SBC数据发送到主机设备101,以由此完成读操作。
但是,如果SBC操作码111不是“读”指令(在206处示出为“否”),则操作码111是用于从存储器单元阵列130擦除SBC数据的“擦除”指令,其中SBC数据是存储在器件块中的MBC数据的一部分。在步骤209,控制器103将SBC数据内部地(例如,在翻译表154中)标记为被擦除,并向主机设备101发送消息:SBC数据已经被擦除。在可选步骤210,控制器103在使用逻辑地址112来标识包含该SBC数据的MBC块的相应物理地址后,从该MBC块中实际擦除该SBC数据。
注意,通过使用诸如图1的控制器103的控制器,SBC主机设备可以与MBC闪存器件工作(即,向MBC闪存器件发出“写”、“读”和“擦除”指令),就像MBC闪存器件是SBC闪存器件一样。还注意,本公开不限于与NAND MBC闪存器件工作的NAND SBC主机设备。本公开还适用于任意的NAND主机设备和NAND闪存器件,假如主机数据被分组成小于器件页的主机页。例如,如果与MBC主机设备相关的数据页小于与MBC闪存器件相关的数据页,则本公开适用于与MBC闪存器件工作的MBC主机设备。
模拟SBC部分页编程(“PPP”)
图3示出了根据本公开的部分页编程(“PPP”)的示例模拟,这是由SBC闪存器件使用的特征。如果主机器件101(根据一个示例,其是SBC器件)希望使用PPP,其可以正常使用它,并且闪存器件102将通过使用伪-PPP方案来响应由主机设备发出的结果“写”指令,如下所述。通常,如果主机设备希望将各种数据元素写在一个逻辑SBC页中,则伪PPP方案包含将这些数据元素写在MBC闪存器件中的单个物理MBC页中。
将结合图1描述图3。为了简化,将假设主机设备101是SBC器件(即,其处理被分组成SBC页的数据),并且闪存器件102是MBC器件。主机设备101将SBC数据(被指定为310、311和312)发送到闪存器件102,每次一个数据元素。因为SBC主机器件可以使用部分页编程(PPP),因此图3图示了MBC闪存器件102可以如何处理PPP,即使传统MBC闪存器件未被设计来应对这些操作。
为了主机设备101将SBC数据310发送到MBC闪存器件102,主机设备101将示例SBC数据310写到其逻辑地址是301的SBC页中,并在时间t1,按相应的“写”命令序列将SBC页301发送到嵌入的闪存器件102中。数据页301内的存储空间320是无数据的或空的,并且在SBC存储器件中,可以单独将附加的数据写入页301中而不用擦除数据310,由于这个原因,按在此所述的方式将数据写入页301中被称为“部分页编程”。MBC闪存器件102经过主机接口105接收数据310,并具有几种选择来将数据310写入MBC单元阵列130中以完成由主机设备101发出的写命令。一种选择包含使用数据集合器120来将数据310与补充数据集合,以由此建立可以被写入存储器单元阵列130的MBC页中的数据结构(即器件数据)。根据此选择,且如上所述,补充数据可以是仍要在输出器件102中被接收的其他主机数据,或者是被排队在闪存器件102中的主机数据,或者是已经被存储在存储器单元阵列130中的数据。将要在以下详细描述的第二选择是按类似PPP的方式(类似PPP操作在此被称为“伪-PPP”)通过闪存器件102处理数据310。为了实现伪PPP选择,数据310可以被存储在MBC页330中,同时使得存储空间331为空,或者数据集合器120可以将数据310与哑数据集合以创建MBC数据,并将创建的MBC数据写入存储器单元阵列130中。
在时间t2,SBC主机设备101将数据311写入逻辑页301中的空闲空间320中,并将页301发送到闪存器件102来存储。将数据311写入页301中得到页301中的更小的空闲空间(在321示出)。因为在一些MBC闪存器件中,物理页可以被写入仅一次而不首先擦除它们,因此即使存储器单元阵列130中的物理页330仍然具有空闲空间(即空间331),但数据311也不能被写入物理页330中。即,根据图3所示的示例,使得闪存器件将当前接收的数据写入存储器单元阵列130中的新的空闲MBC物理页中。但是为了按类似PPP操作的方式动作,数据解析器140从物理页330中提取数据310,并且数据集合器120将其与当前接收的数据311相集合(即将其附于(append to)当前接收的数据311)。然后,数据集合器120将数据310和所附的数据311写入存储器单元阵列130内的新的空闲物理页340中。同样,当主机设备101在时间t3向闪存器件102发送数据312时,即使物理页340仍然具有足够的空闲空间(即空间341),数据312也不能被写入物理页340中。而是,数据解析器140从物理页340中提取数据310和数据311,并且数据集合器120将数据310和数据311与所接收的数据312集合(即将其附于所接收的数据312)。然后,数据集合器120将数据310、数据311和新附上的数据312写入存储器单元阵列130内的新的空闲MBC物理页350中。作为操作的替换模式,数据310、311和312可以分别被写入物理页330、340和350中,然后,数据集合器120可以将其集合并全部写入存储器单元阵列130内的新的空闲物理页中。物理MBC页330、340和350物理上彼此相邻,因为根据图3的示例,MBC页连续被写入。
如果诸如主机设备101的主机设备使用部分编程(即PPP)来将与数据310、311和312类似的各个数据元素写入与逻辑页301类似的逻辑页中,则其可能就像所包含的闪存器件(即闪存器件102)是SBC闪存器件那样而进行。所包含的闪存器件然后将通过使用上述的伪PPP方案来将各个主机设备数据元素写入相同的物理MBC页中(在此示例中写入MBC页350中)来响应主机发出的写指令。注意,主机设备101不知道伪PPP方案,并且就主机设备101而言,闪存器件102已经将数据元素310、311和312写入一个物理SBC页中。
控制器103维持用于将来自主机设备101的SBC页的逻辑地址翻译为存储器单元阵列130内的MBC页(即器件页)的物理地址的翻译表154。通过使用翻译表154,控制器103追踪存储器单元阵列130内的器件页的物理地址,它们用于存储数据,并且控制器103在每次数据解析器140从存储器单元阵列130提取数据或者数据集合器120向存储器单元阵列130中写入数据时更新翻译表154。另外,就在从主机设备接收到存储器命令时,或者响应于这样的命令,控制器103可能偶尔需要临时或永久地、全部或部分地在存储器单元阵列130中重新排列或重新定位器件数据。在这样做时,控制器103利用在重新排列和重新定位数据时所包含的临时和最终的逻辑和物理地址或其部分来更新翻译表154。在闪存管理的背景下处理翻译表本身是本领域公知的,因此在此不再详细描述。
页间依赖性、P/E周期和可靠性
在闪存中,每个快闪单元可以存储的位越多,存在越多的操作问题,这需要解决以便使得快闪单元有用。尽管下面将参照MBC闪存和SBC闪存,但是同样的原理适用于每单元存储两位的MBC器件和每单元存储多于两位的MBC器件。
关于页间依赖性,MBC闪存器件在电力故障期间易于出现致命的数据写/读错误。这部分地由于两页之间的物理接近(closeness)。另一方面,SBC闪存器件较不易于出现这样的错误。因此,不像SBC主机器件那样,MBC主机器件需要采取特别的预防措施来应对电力故障。因此,如果SBC主机器件按连续主机页的形式发送主机数据,则数据集合器将主机页写入物理器件页的特别序列中(通常是不相邻的),使得电力故障的影响将被最小化。换句话说,连续接收的主机页不一定按照连续器件页的顺序被存储在器件页中。有时(即取决于主机设备发送的数据的类型),将需要内部地备份数据的至少一部分,作为应对电力故障的另外手段。
关于编程/擦除(P/E)周期和可靠性,MBC闪存中的成功P/E周期的最大数量比SBC闪存中的低得多,并且其可靠性不利地受较低数量的P/E周期影响。一些SBC主机器件使用中等的或较不严格的闪存管理算法,因为假设SBC器件提供更高的P/E限制和更好的可靠性,这对于许多类型的SBC闪存是成立的。因此,控制电路150致使主机数据按照如下方式被传送到存储器单元阵列130中的器件页:结果将是输出到SBC主机器件的P/E周期的数量增加。换句话说,通过使用在翻译表154中保存的信息,控制电路150标识每个器件页经历了多少P/E周期,然后控制电路150致使数据集合器120将主机数据写入磨损(worn-out)较小的器件页中。否则(如果控制器103未进行上述预防步骤),在所谓的“标准”SLC闪存中,SBC主机设备在稍后可能希望读取的数据将比预期的快得多地被破环。“更快”意味着在更少的P/E周期中。
闪存器件的可靠性取决于不同于P/E周期的其他因素。例如,其取决于错误的数量和闪存单元保留数据的能力。为了达到主机设备期望的可靠性,控制电路150可能必须使用一个或多个内部参数(即与器件页的功能有关的参数)来重新定位存储器单元阵列130内的器件数据。
为了便于上述的预防手段(即将各个主机数据写入物理器件页的特定序列中,将主机数据传送到器件页,以及重新定位器件页内的器件数据),数据集合器采用相应的映射算法,并用所包含的逻辑和物理地址以及与数据位置有关的信息来更新翻译表154,与数据位置有关的信息与上述的各个性能方面相关。
在本发明的说明书和权利要求书中,每个动词“包含”、“包括”和“具有”及其变化形式用于指示动词的一个或多个宾语不是必须是该动词的一个或多个主语的元件、组件、要素或部分的完整列举。
在此使用冠词“一个”来指代一个或多于一个(即至少一个)的冠词的语法对象,这取决于上下文。通过示例,取决于上下文,“一个要素”可以移位一个或多于一个的要素。
在此使用术语“包括”意味短语“包括但不限于”,并可与其互换地使用。
在此使用术语“或者”和“和”意味术语“和/或”,并且可与其互换地使用,除非上下文另外明确指出。
在此使用术语“诸如”意味短语“诸如但不限于”,并可与其互换地使用。
因此描述了本发明的示例实施例,将对本领域技术人员显而易见的是,所公开的示例实施例的修改将在本发明的范围内。例如,主机设备不是必须是SBC主机设备,因为本公开加以必要的修正同样可适用于其他类型的主机设备和其他类型的NAND快闪器件。从而,尽管以上未特别描述,但是仍然意图并暗示所公开的发明的另外的替换、修改和改进在本发明的精神和范围内。
Claims (19)
1.一种将主机数据写入闪存器件中的方法,该方法包括:
a)通过闪存器件的控制器从主机设备接收写指令,用于将主机数据写入被分组成单独可写的器件页的NAND闪存单元的阵列中;
b)通过控制器将主机数据与补充数据相集合,由此创建可存储在所述器件页的一个或多个中的器件数据;以及
c)通过控制器将所述器件数据写入所述器件页的一个或多个中;
其中响应于主机设备使用部分页编程方案写入主机数据,通过控制器使用伪部分页编程方案将所述主机数据写入到闪存单元阵列中,所述部分页编程方案是新数据可以被写到该器件页中的足够大的空闲空间中而无需擦除该器件页的方案,而伪部分页编程方案是将当前接收的数据附接到从一个MBC物理页提取的数据并将所提取的数据与所附接的数据一起写入新的空闲MBC物理页。
2.根据权利要求1所述的方法,其中所述补充数据是从主机设备接收的并被排队在闪存器件中的其他主机数据。
3.根据权利要求1所述的方法,其中所述补充数据是作为其他器件数据的一部分已经被存储在NAND闪存单元的阵列中并从该其他器件数据解析出的主机数据。
4.根据权利要求1所述的方法,其中所述器件页被分组成块,并在每个块内以逻辑的方式相继被写入,使得其物理地址不一定是连续的。
5.根据权利要求1所述的方法,其中通过控制器使用伪部分页编程方案包括使用哑数据作为补充数据。
6.根据权利要求1所述的方法,其中所述主机数据被控制器写入到与已经被写入的器件页不相邻的器件页中。
7.一种用于闪存器件的控制器,该控制器包括:
a)主机NAND接口,被适配为从主机设备接收主机数据;
b)数据集合器,被适配为将主机数据与补充数据集合,由此创建器件数据,并被适配为将器件数据写入与闪存器件相关的NAND闪存单元的阵列的器件页中;以及
c)控制电路,被适配为响应于主机设备使用部分页编程方案写入主机数据,使用伪部分页编程方案将主机数据写入闪存单元阵列中,
其中所述部分页编程方案是新数据可以被写到该器件页中的足够大的空闲空间中而无需擦除该器件页的方案,而伪部分页编程方案是将当前接收的数据附接到从一个MBC物理页提取的数据并将所提取的数据与所附接的数据一起写入新的空闲MBC物理页。
8.根据权利要求7所述的控制器,其中所述补充数据是从主机设备接收的并被排队在闪存器件中用于存储在NAND闪存单元的阵列中的其他主机数据。
9.根据权利要求7所述的控制器,还包括:
d)数据解析器,被适配为从器件数据中解析补充数据。
10.根据权利要求9所述的控制器,其中所述补充数据是从器件数据解析的其他主机数据。
11.根据权利要求9所述的控制器,其中所述数据解析器还被适配为在从主机设备接收到用于读取给定的主机数据的命令时从器件数据中解析该给定的主机数据。
12.根据权利要求7所述的控制器,其中器件页被分组成器件块,以及其中所述数据集合器还被适配为在每个块内以逻辑的方式将数据相继写入器件页中,使得其物理地址不一定连续。
13.根据权利要求7所述的控制器,其中在从主机设备接收到擦除给定的主机数据的指令时,由控制器将该给定的主机数据标记为“被擦除”,并且向主机设备发送给定的主机数据已经被擦除的消息。
14.根据权利要求7所述的控制器,其中在使用伪部分页编程方案时,所述控制电路使用哑数据作为补充数据。
15.根据权利要求7所述的控制器,其中所述控制电路被适配为在从主机设备接收到擦除给定的主机数据的指令时,将该给定的主机数据标记为被擦除,并向主机设备发送给定的主机数据已经被擦除的消息。
16.根据权利要求7所述的控制器,其中所述主机数据被构造用于按每单元M位地存储数据的存储器单元的阵列,以及其中所述闪存器件的存储器单元阵列按每单元N位地存储数据,其中N和M是正整数并且N大于M。
17.根据权利要求16所述的控制器,其中N等于2并且M等于1。
18.根据权利要求16所述的控制器,其中N等于4并且M等于1。
19.根据权利要求16所述的控制器,其中N等于4并且M等于2。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/964,741 | 2007-12-27 | ||
US11/964,741 US8001316B2 (en) | 2007-12-27 | 2007-12-27 | Controller for one type of NAND flash memory for emulating another type of NAND flash memory |
PCT/IL2008/000040 WO2009083945A1 (en) | 2007-12-27 | 2008-01-08 | A controller for a multiple bit per cell nand flash memory for emulating a single bit per cell nand flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101946286A CN101946286A (zh) | 2011-01-12 |
CN101946286B true CN101946286B (zh) | 2014-06-18 |
Family
ID=39708308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880126592.4A Expired - Fee Related CN101946286B (zh) | 2007-12-27 | 2008-01-08 | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8001316B2 (zh) |
EP (1) | EP2225759B1 (zh) |
JP (1) | JP5213965B2 (zh) |
KR (1) | KR101517416B1 (zh) |
CN (1) | CN101946286B (zh) |
TW (1) | TWI375151B (zh) |
WO (1) | WO2009083945A1 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
TWI494756B (zh) * | 2009-08-26 | 2015-08-01 | Phison Electronics Corp | 下達讀取指令的方法、快閃記憶體控制器與快閃記憶體儲存系統 |
EP2317442A1 (en) * | 2009-10-29 | 2011-05-04 | Thomson Licensing | Solid state memory with reduced number of partially filled pages |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US20110153912A1 (en) * | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8924629B1 (en) * | 2011-06-07 | 2014-12-30 | Western Digital Technologies, Inc. | Mapping table for improving write operation efficiency |
CN103890724B (zh) | 2011-08-19 | 2017-04-19 | 株式会社东芝 | 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法 |
US9588883B2 (en) * | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
US9588762B2 (en) * | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US9054717B2 (en) * | 2012-11-09 | 2015-06-09 | Novachips Canada Inc. | PLL locking control in daisy chained memory system |
KR102272228B1 (ko) * | 2014-05-13 | 2021-07-06 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
US9423961B2 (en) | 2014-09-08 | 2016-08-23 | Apple Inc. | Method to enhance programming performance in multilevel NVM devices |
US9588701B2 (en) * | 2014-09-09 | 2017-03-07 | Sandisk Technologies Llc | Multi-stage programming at a storage device using multiple instructions from a host |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US10063569B2 (en) * | 2015-03-24 | 2018-08-28 | Intel Corporation | Custom protection against side channel attacks |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
JP6453729B2 (ja) | 2015-08-17 | 2019-01-16 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
KR102480016B1 (ko) | 2015-08-18 | 2022-12-21 | 삼성전자 주식회사 | 다수의 맵핑 단위를 이용하는 불휘발성 메모리 시스템 및 그 동작방법 |
US9904543B2 (en) | 2015-10-26 | 2018-02-27 | Hewlett-Packard Development Company, L.P. | Setting a build indicator to enable or disable a feature |
US10521118B2 (en) * | 2016-07-13 | 2019-12-31 | Sandisk Technologies Llc | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB) |
US10049764B2 (en) | 2016-12-13 | 2018-08-14 | Macronix International Co., Ltd. | Control method for memory device and memory controller |
US9823961B1 (en) * | 2016-12-13 | 2017-11-21 | Macronix International Co., Ltd. | Memory controller and operating method thereof |
JP6403130B2 (ja) * | 2017-08-03 | 2018-10-10 | 東芝メモリ株式会社 | 情報記録システム |
US10732838B2 (en) | 2017-11-29 | 2020-08-04 | Western Digital Technologies, Inc. | Logical grouping for hybrid dual write |
US11188497B2 (en) | 2018-11-21 | 2021-11-30 | SambaNova Systems, Inc. | Configuration unload of a reconfigurable data processor |
US10831507B2 (en) | 2018-11-21 | 2020-11-10 | SambaNova Systems, Inc. | Configuration load of a reconfigurable data processor |
US10698853B1 (en) * | 2019-01-03 | 2020-06-30 | SambaNova Systems, Inc. | Virtualization of a reconfigurable data processor |
US11386038B2 (en) | 2019-05-09 | 2022-07-12 | SambaNova Systems, Inc. | Control flow barrier and reconfigurable data processor |
US11055141B2 (en) | 2019-07-08 | 2021-07-06 | SambaNova Systems, Inc. | Quiesce reconfigurable data processor |
US11874768B1 (en) * | 2019-11-14 | 2024-01-16 | Xilinx, Inc. | Flash memory emulation |
US11809908B2 (en) | 2020-07-07 | 2023-11-07 | SambaNova Systems, Inc. | Runtime virtualization of reconfigurable data flow resources |
US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
US11556494B1 (en) | 2021-07-16 | 2023-01-17 | SambaNova Systems, Inc. | Defect repair for a reconfigurable data processor for homogeneous subarrays |
US11409540B1 (en) | 2021-07-16 | 2022-08-09 | SambaNova Systems, Inc. | Routing circuits for defect repair for a reconfigurable data processor |
US11327771B1 (en) | 2021-07-16 | 2022-05-10 | SambaNova Systems, Inc. | Defect repair circuits for a reconfigurable data processor |
US11487694B1 (en) | 2021-12-17 | 2022-11-01 | SambaNova Systems, Inc. | Hot-plug events in a pool of reconfigurable data flow resources |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5541886A (en) * | 1994-12-27 | 1996-07-30 | Intel Corporation | Method and apparatus for storing control information in multi-bit non-volatile memory arrays |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
CN1437721A (zh) * | 2000-02-17 | 2003-08-20 | 三因迪斯克公司 | 多数据区段同时编程和在其它指定块中存储物理块特征的闪速eeprom系统 |
WO2006067791A2 (en) * | 2004-12-23 | 2006-06-29 | M-Systems Flash Disk Pioneers Ltd. | A method for using a multi-bit cell flash device in a system not designed for the device |
KR100625711B1 (ko) * | 2003-09-12 | 2006-09-20 | 가부시끼가이샤 르네사스 테크놀로지 | 반도체 기억 장치 |
CN101079322A (zh) * | 2006-03-31 | 2007-11-28 | 三星电子株式会社 | 多位存储装置和存储系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5268870A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
EP0617363B1 (en) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Defective cell substitution in EEprom array |
US8108590B2 (en) * | 2000-01-06 | 2012-01-31 | Super Talent Electronics, Inc. | Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear |
ITMI20032134A1 (it) * | 2003-11-06 | 2005-05-07 | St Microelectronics Srl | Dispositivo integrato di memoria con comando di cancellazione multisettore |
US8180931B2 (en) * | 2004-01-20 | 2012-05-15 | Super Talent Electronics, Inc. | USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch |
US7336531B2 (en) * | 2004-06-25 | 2008-02-26 | Micron Technology, Inc. | Multiple level cell memory device with single bit per cell, re-mappable memory block |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7752382B2 (en) * | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
WO2007037757A1 (en) * | 2005-09-29 | 2007-04-05 | Trek 2000 International Ltd | Portable data storage using slc and mlc flash memory |
SG130988A1 (en) * | 2005-09-29 | 2007-04-26 | Trek 2000 Int Ltd | Portable data storage device incorporating multiple flash memory units |
JP2007141376A (ja) * | 2005-11-18 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 半導体記憶装置及びその制御方法 |
US7366013B2 (en) * | 2005-12-09 | 2008-04-29 | Micron Technology, Inc. | Single level cell programming in a multiple level cell non-volatile memory device |
US8055979B2 (en) * | 2006-01-20 | 2011-11-08 | Marvell World Trade Ltd. | Flash memory with coding and signal processing |
US7646636B2 (en) * | 2007-02-16 | 2010-01-12 | Mosaid Technologies Incorporated | Non-volatile memory with dynamic multi-mode operation |
-
2007
- 2007-12-27 US US11/964,741 patent/US8001316B2/en active Active
-
2008
- 2008-01-08 CN CN200880126592.4A patent/CN101946286B/zh not_active Expired - Fee Related
- 2008-01-08 EP EP08702622.5A patent/EP2225759B1/en not_active Not-in-force
- 2008-01-08 JP JP2010540215A patent/JP5213965B2/ja not_active Expired - Fee Related
- 2008-01-08 KR KR1020107015590A patent/KR101517416B1/ko active IP Right Grant
- 2008-01-08 WO PCT/IL2008/000040 patent/WO2009083945A1/en active Application Filing
- 2008-01-17 TW TW097101843A patent/TWI375151B/zh not_active IP Right Cessation
-
2011
- 2011-07-12 US US13/181,477 patent/US8296509B2/en active Active
-
2012
- 2012-09-14 US US13/620,323 patent/US8683116B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5541886A (en) * | 1994-12-27 | 1996-07-30 | Intel Corporation | Method and apparatus for storing control information in multi-bit non-volatile memory arrays |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
CN1437721A (zh) * | 2000-02-17 | 2003-08-20 | 三因迪斯克公司 | 多数据区段同时编程和在其它指定块中存储物理块特征的闪速eeprom系统 |
KR100625711B1 (ko) * | 2003-09-12 | 2006-09-20 | 가부시끼가이샤 르네사스 테크놀로지 | 반도체 기억 장치 |
WO2006067791A2 (en) * | 2004-12-23 | 2006-06-29 | M-Systems Flash Disk Pioneers Ltd. | A method for using a multi-bit cell flash device in a system not designed for the device |
CN101079322A (zh) * | 2006-03-31 | 2007-11-28 | 三星电子株式会社 | 多位存储装置和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2225759B1 (en) | 2014-03-05 |
US8296509B2 (en) | 2012-10-23 |
KR101517416B1 (ko) | 2015-05-04 |
JP5213965B2 (ja) | 2013-06-19 |
US8001316B2 (en) | 2011-08-16 |
TWI375151B (en) | 2012-10-21 |
WO2009083945A1 (en) | 2009-07-09 |
KR20100113083A (ko) | 2010-10-20 |
JP2011508357A (ja) | 2011-03-10 |
TW200928736A (en) | 2009-07-01 |
US8683116B2 (en) | 2014-03-25 |
US20110271045A1 (en) | 2011-11-03 |
CN101946286A (zh) | 2011-01-12 |
US20090172247A1 (en) | 2009-07-02 |
EP2225759A1 (en) | 2010-09-08 |
US20130024611A1 (en) | 2013-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101946286B (zh) | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 | |
US10347349B2 (en) | Method and device for fail-safe erase of flash memory | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9009436B2 (en) | Flushed data alignment with physical structures | |
CN109840215A (zh) | 未对齐写入的处理 | |
CN106067321A (zh) | 适于存储器编程暂停-恢复的控制器 | |
CN101346771A (zh) | 用于传统主机的方法和存储器系统 | |
CN103635969A (zh) | 包含存储器系统控制器的设备和相关方法 | |
US20120278535A1 (en) | Data writing method, memory controller, and memory storage apparatus | |
KR20170108334A (ko) | 메모리 시스템 및 그 동작 방법 | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN112230849B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN102467459B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN114822664A (zh) | 基于数据优先级的风险评估方法、存储装置及控制电路 | |
CN104008020A (zh) | 用于追踪死扇区以自动搜索和誊写的鲁棒扇区id方案 | |
US11954329B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
US11620072B2 (en) | Memory management method, memory control circuit unit and memory storage apparatus | |
US11803331B2 (en) | Method for recording unit management information, memory storage device and memory control circuit unit | |
TWI718492B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111723022B (zh) | 数据存储方法、存储器存储装置及存储器控制电路单元 | |
CN113419674B (zh) | 数据编程管理方法、存储器及其控制器,以及计算机系统 | |
CN109308930A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
US10957398B2 (en) | Electronic device with memory erased by page | |
CN116149571A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN110286846A (zh) | 数据移动方法及储存控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140618 Termination date: 20200108 |