CN101410906B - 闪烁存储器系统及控制方法 - Google Patents
闪烁存储器系统及控制方法 Download PDFInfo
- Publication number
- CN101410906B CN101410906B CN200780011511.1A CN200780011511A CN101410906B CN 101410906 B CN101410906 B CN 101410906B CN 200780011511 A CN200780011511 A CN 200780011511A CN 101410906 B CN101410906 B CN 101410906B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- memory
- programming
- memory devices
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
- G11C7/1021—Page serial bit line access mode, i.e. using an enabled row address stroke pulse with its associated word line address and a sequence of enabled column address stroke pulses each with its associated bit line address
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/22—Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/24—Nonvolatile memory in which programming can be carried out in one memory bank or array whilst a word or sector in another bank or array is being erased simultaneously
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种闪烁存储器系统结构,具有串联的闪烁存储器设备用于获取数据的高速编程。通过数据页面的交错编程到系统中的存储器设备来实现数据的高速编程,使得不同页面的数据存储在不同的存储器设备。存储器控制器发出编程命令用于每一存储器设备。当每一存储器设备接收到编程命令,其开始编程操作或者将命令传输到下一个存储器设备。因此,闪烁系统中的存储器设备一个接一个地顺序编程页面数据,使得编程每一页面数据到闪烁存储器系统的延迟最小化。存储器控制器可以执行耗损平衡算法用于最大化每一存储设备的耐久性或者对于任意尺寸数据来优化编程性能和耐久性。
Description
相关申请的交叉引用
本申请要求申请日2006年3月31日提交的美国临时专利申请60/788,083的优先权,其所有内容通过引用全部包括在本申请中。
技术领域
本发明总的涉及闪烁存储器,更具体地,本发明涉及用于大容量存储应用的多设备闪烁存储器系统。
背景技术
闪烁存储器是常用的一类非易失性存储器,其广泛用作消费电子(诸如数字照相机和便携数字音乐播放器)的大容量存储。当前可用的闪烁存储器芯片的密度可达32G比特(4GB),由于单个闪烁芯片的小尺寸,其适合用在流行的USB闪烁驱动器中。
八百万像素的数字照相机和具有音乐和视频功能的便携数字娱乐设备的出现促进了对于存储大量数据的超高容量的要求,而这种要求是单个闪烁存储器设备不能满足的。因此,将多个闪烁存储器设备组合在一起形成存储器系统来有效增加可用的存储容量。例如,这些应用可以要求20GB的闪烁存储密度。
图1的框图示出与主机系统12一起集成的现有技术的闪烁存储器系统10。闪烁存储器系统10包括和主机系统12通信的闪烁存储器控制器14以及多个非易失性存储器设备16。主机系统包括诸如微控制器、微处理器或者计算机系统的处理设备。图1的闪烁存储器设备10被配置包括一个通道20,其中多个存储器设备16并行连接到通道20。本领域的普通技术人员可以理解存储器系统10可以具有与通道相连的任意数量的存储器设备。
通道20包括一组公用总线,包括连接到所有相应的存储器设备的数据和控制线路。虽然没有示出,但是每一存储器设备可以由闪烁存储器控制器14提供的相应芯片选择信号来使能或者禁止。闪烁控制器14用于根据主机系统12的操作经通道发送命令和数据到所选择的存储器设备。 从存储器设备读取的数据经通道被返回所述闪烁存储器控制器14和主机系统12。闪烁存储器系统10通常称为多点(multi-drop)配置,其中所述存储器设备10关于通道20并行连接。
在闪烁存储器系统10中,非易失性存储器设备16互相相同,并且典型地实现为与非闪烁存储器设备。本领域内的普通技术人员可以理解闪烁存储器可以组织在存储体中,每一存储体可以被组合到块中以有利于块擦除。大部分商业可用的与非闪烁存储器设备被配置具有两个存储体。在讨论闪烁存储器系统10的操作之前,简要描述单个与非闪烁存储器设备存储器核。
图2的总的框图示出公知与非闪烁存储器的一个存储体。存储体30被组织到k+1个块中。每一块包括与非存储器单元串,具有互相串联的多达i+1个闪烁存储器单元。相应地,字线WL0到WLi连接到存储器单元串中的每一个闪烁存储器单元的栅极。与信号SSL(串选择线)相连的串选择设备选择性地将存储器单元串连接到位线,同时连接到信号GSL(接地选择线)的接地选择设备将存储器单元串选择性地连接到诸如VSS的电源线。串选择设备和接地选择设备为n沟道晶体管。存储体30的所有块公用j+1个位线,并且每一位线连接到块[0]到[k]的每一块中的一个与非存储器单元串。每一字线(WL0到WLi)、SSL和GSL信号连接到块中的每个与非存储器单元串中的同一对应的晶体管设备。本领域内的普通技术人员应该可以意识到沿着一个字线存储在闪烁存储器单元中的数据称为一个数据页面。
数据寄存器32连接到存储体30外部的每一位线,用于存储将要编程到闪烁存储器单元的一个页面的写数据的一个页面中。数据寄存器32还包括感应电路用于感应从闪烁存储器单元的一个页面读取的数据。在编程操作期间,数据寄存器执行编程验证操作以确保该数据被正确编程到与所选字线相连接的闪烁存储器单元中。块中的编程通常从对应于WL0的页面开始,顺序执行到WLi直到完成本块,然后继续从新块的WL0开始编程。在一个设备中,顺序编程多个块。
返回到图1的闪烁存储器系统10,存在多个特定问题对系统性能产生不利的影响。一些是物理的而另一些是结构上的。
闪烁存储器系统10的配置产生物理性能的限制。由于大量并行信号运行通过系统,由于串扰、信号偏斜、同步开关噪声(SSN),所 传输信号的信号完整性将削弱。在此配置中的功耗由于闪烁控制器和闪烁存储器设备之间的每个信号线为了信号传输频繁充放电也成为一个问题。随着系统时钟频率的增长,功耗也随之增加。
从结构上看去,编程操作将占用太多的时间。闪烁控制器14的基本功能是管理数据到系统中的存储器设备的写入。在闪烁存储器的上下文中,写数据通常是指编程数据。关于闪烁编程存在两个显著的难题。第一,相对于诸如DRAM和SRAM的易失性存储器和诸如硬盘驱动器的非易失性存储器,闪烁编程较慢。编程数据到闪烁存储器单元需要高电压和分步骤编程序列以获得严格的编程阈值电压分布。在具有两个存储体的与非闪烁存储器设备中,两个页面的数据并行编程,一个页面用于一个存储体。由于每一个存储体仅有一个数据寄存器,其它的编程操作需要等到当前页面成功编程之后。因此,将大量数据编程到闪烁设备16就需要消耗非常大量的时间。
传统闪烁存储器系统10的第二个问题是编程数据的线性文件结构。图3示出用于具有四个存储器设备的闪烁存储器系统50的传统文件结构。在图3中,每个存储器设备52、54、56和58具有总数为n的物理页面的存储空间,这些存储空间分配在任意数量的块。在所示例子中,假设n个页面在两个存储体之间平均分配。大多数闪烁存储器系统将包括多个数据页面的数据文件线性存储到一个存储器设备中。例如,数据文件的第一页面存储在设备52的页面0中,随后的数据页面依次存储在后续页面中。一旦设备52存满,系统50中将要存储的其余数据文件从设备54中的页面0开始,以此类推。箭头60示出数据写到闪烁存储器系统50的存储模式。
此线性文件结构以及每一存储器设备的每一页面的数据文件需要相对长的编程时间,使得闪烁存储器系统需要显著长的时间来存储数据。涉及线性文件结构的另一个问题是设备可靠性,并且更具体地,是一个存储器设备相对于系统中其它存储器设备的编程/擦除耗损。编程/擦除耗损是指由于累积的编程和擦除操作导致的闪烁存储器的渐进的性能下降。此累积的编程和擦除操作的结果改变存储单元的编程和擦除特性而偏离最佳参数。当存储器单元性能下降,需要较高的编程和擦除电压来编程或者擦除存储器单元到期望的阈值电压。最后,存储器单元不能正常操作。这就是闪烁存储器标定出有限次数的擦除-编程循环的原因,其次数在 10000到100000个循环之间。
例如,如果图3中的第一存储器设备52经历多于其它任一存储器设备的编程和擦除循环,存储器设备52将早于其它存储器设备出现故障。当存储器设备52出现故障,由于存储器设备是封装在一起的并且替换单个存储器设备是不现实的,整个系统50将不能够使用。由于系统中的其余设备仍然可用并且还具有显著长的寿命,对于存储器设备这种浪费很让人遗憾。
大部分闪烁存储器的内部技术结构中,可擦除的存储器的最小单元为存储块。这就意味着如果即使块中的一个页面要被修改,整个块必须使用新的页面重新编程。这称为块重编程,其需要显著长的编程时间,并给系统的性能带来负面影响。
因此,目前公知的闪烁存储器系统具有用于编程数据的较低的吞吐量,并且由于设备上的编程和擦除耗损的不平衡,整个系统的寿命被限制为出现故障的第一存储器设备的寿命。
因此,期望提供一种具有最大化系统寿命的方案的高速闪烁存储器系统结构。
发明内容
本发明的一个目的是避免或者减轻闪烁存储器系统的先前控制方案的至少一个缺陷。更具体地,本发明的目的是通过系统的每一闪烁存储器设备中的交错编程操作来改进闪烁存储器系统编程吞吐量。
在第一方面,本发明提供一种用于控制连接到通道的第一和第二闪烁存储器设备的方法。所述方法包括响应第一命令在所述第一闪烁存储器设备中执行第一操作,并且响应第二命令在所述第二闪烁存储器设备中启动第二操作,同时所述第一闪烁存储器设备正在执行所述第一操作。
在本发明的一个实施例中,所述第一闪烁存储器设备和所述第二闪烁存储器设备互相串行连接,并且在所述启动步骤之前所述第二命令通过所述第一闪烁存储器设备传输到所述第二闪烁存储器设备。在另一实施例中,执行所述第一操作的步骤包括编程所述第一存储器设备中的数据文件的至少一个页面。所述第二操作包括启动编程所述第二存储器设备中的数据文件的至少一个其它页面,同时所述方法还包括响应第三命令在 所述第一闪烁存储器设备中启动第三操作。所述第二操作包括启动所述第二存储器设备中的数据的读操作或者启动所述第二存储器设备中的擦除操作。在又一个实施例中,执行所述第一操作包括所述第一存储器设备中的读操作和擦除操作的其中一个。
在第二方面,本发明提供一种用于在具有多个闪烁存储器设备的闪烁存储器系统中的高速耗损平衡编程的方法。所述方法包括接收具有k个页面的数据文件,k为大于0的整数;选择对应于尺寸k和闪烁存储器系统的配置参数的编程配置文件;并且根据所选择的编程配置文件编程多个闪烁存储器设备的至少两个的每一个中的数据文件的k个页面的至少一个。
根据本方面的实施例,所述配置参数包括j个闪烁存储器设备,j个闪烁存储器设备的每一个具有每一块i个页面,其中,i和j为大于0的整数。所述选择的步骤包括计算z的上限函数(ceilingfunction),其中z=k/i,所述编程配置文件包括当z小于或等于j时用于存储j个闪烁存储器设备的z个中的数据文件的k个页面的单个文件结构。所述编程的步骤包括顺序提供编程命令到z个闪烁存储器设备的每一个用于编程k个页面,其中,每个编程命令编程k个页面的至少一个。
在本方面的另一个实施例中,当z大于j时,所述编程配置文件包括一个复合文件结构。所述复合文件结构包括存储数据文件的j*i个页面的m个单元到j个闪烁存储器设备中,并且当z小于或等于j时,存储数据文件的k-(m*(j*i))个页面到j个闪烁存储器设备的z个中,其中,m是大于0的整数。编程的步骤包括顺序提供编程命令到j个闪烁存储器设备的每一个,用于编程所述数据文件的j*i个页面,其中,每个编程命令编程所述k个页面的至少一个。编程的步骤还包括顺序提供编程命令到z个闪烁存储器设备的每一个,用于编程所述k-(m*(j*i))个页面,其中每个编程命令编程所述k个页面的至少一个。
在第三方面,本发明提供一种数据文件存储结构用于具有连接到同一通道的至少两个存储器设备的存储器系统。所述数据文件存储结构包括存储在至少两个存储器设备的两个中的数据文件的部分。根据本发明的实施例,所述数据文件的部分大小互相基本相同,并且所述数据文件的部分存储在存储器系统的至少两个存储器设备的每一个中。
在第四方面,本发明提供一种用于在具有j个闪烁存储器设 备的闪烁存储器系统中的高速耗损平衡编程的方法,其中,j个闪烁存储器设备的每一个具有每块i个页面,其中,i和j为大于0的整数。所述方法包括接收具有k个页面的数据文件,k为大于0的整数;如果z=k/i的上限函数小于或者等于j,提供命令用于编程j个存储器设备的z个中的k个页面;如果z=k/i的上限函数大于j,提供命令用于编程j个存储器设备中的j*i个页面;通过设置k=k-(j*i)来更新k;并且重复编程更新的k个页面的步骤。
在第五方面,本发明提供一种闪烁存储器系统,所述闪烁存储器系统包括控制器、第一闪烁存储器设备和第二闪烁存储器设备。所述控制器具有提供第一命令和第二命令的通道。所述第一闪烁存储器设备耦合于所述通道用于响应所述第一命令执行第一操作。所述第二闪烁存储器设备耦合于所述通道用于响应所述第二命令启动第二操作,同时所述第一闪烁存储器设备正在执行所述第一操作。
根据本方面的实施例,所述第一闪烁存储器设备和所述第二闪烁存储器设备互相串行连接,并且所述第二命令通过所述第一闪烁存储器设备传输到所述第二闪烁存储器设备。所述第一操作包括编程操作,并且所述第一闪烁存储器设备编程数据文件的至少一个页面。所述第二操作包括另一编程操作,并且所述第二闪烁存储器设备编程所述数据文件的至少一个其它页面。
对本领域普通技术人员来说,通过结合附图阅读下面本发明具体实施例的描述,本发明的其他方面和特征是显而易见的。
附图说明
结合附图,仅通过示例方式来说明本发明的实施例,其中:
图1为现有技术闪烁存储器系统的框图;
图2为现有技术与非闪烁存储器核的示意图;
图3为用于闪烁存储器系统的传统文件结构的示意图;
图4为根据本发明的实施例的闪烁存储器系统的框图;
图5为根据本发明的实施例的由图4的闪烁控制器发送的编程命令的时序图;
图6的时序图示出图4中闪烁存储器系统的每一存储器设备接收的编程命令;
图7为根据本发明的实施例说明高速交错编程方法的流程图;
图8为根据图7的高速交错编程方法产生的图4所示的闪烁存储器系统中的文件结构的示意图;
图9的流程图示出根据本发明的实施例的高速耗损平衡编程方法;和
图10的时序图示出交错编程和读操作。
具体实施方式
闪烁存储器系统结构具有串联的闪烁存储器设备用于获取数据的高速编程。通过在系统的存储器设备间交错数据页面,获取数据的高速编程,使得不同页面的数据存储在不同的存储器设备中。存储器控制器以具有一个或者多个信号线的位流的形式发出用于每一存储器设备的编程命令。当每一存储器设备接收到编程命令时,其开始编程操作,或者其可以传输此命令到下一个存储器设备。因此,闪烁系统中存储器设备一个接着另一个顺序地编程数据的页面,因此最小化了编程每一页面的数据到闪烁存储器系统中的延迟。所述存储器控制器执行耗损平衡控制算法(wear level control algorithm)对任意尺寸数据来优化编程性能和耐久性。
图4的框图示出根据本发明的实施例的具有串联的存储器设备的闪烁存储器系统,用于执行具有耗损平衡控制的高速数据编程操作。闪烁存储器系统100包括和主机系统104通信的闪烁存储器控制器102,以及四个串联的闪烁存储器设备106、108、110和112。尽管本实施例示出四个存储器设备,本发明的实施例将有效的用于具有至少两个存储器设备的存储器系统。该四个闪烁存储器设备的每一个具有串行输入/输出接口电路,用于存储器设备之间的串行操作。此闪烁存储器设备的一个例子在申请日为2005年12月30申请号为11/324023的共同拥有的美国专利申请以及在申请日2006年7月31日申请号11/496278的共同拥有的美国专利申请中描述,二者的内容通过引用全部包括在本申请中。美国专利申请11/324023的闪烁存储器设备称为多个独立串行链接设备(MISL)。如图1中所示系统,主机系统将包括诸如微控制器、微处理器或者计算机系统的处理设备。
闪烁存储器设备106为该链路中的第一个设备,用于从闪烁存储器控制器102接收命令(诸如读、编程和擦除命令)。在美国专利申 请11/324023的MISL闪烁设备中,所有的命令、数据和地址信息以串行位流格式接收。该命令包括数据信息、地址信息和存储器执行特定操作所需的任意其它信息。因为每一闪烁存储器设备应该包括流通(flow-through)逻辑电路,任一所接收到的目的并不是用于该特定设备的命令被传送到下一个闪烁存储器设备,以此类推,直到由目的闪烁存储器设备对其作用。链路中的最后一个闪烁存储器设备112的输出连接到闪烁存储器控制器102,用于响应读命令来提供读数据。图4的所示实施例中具有一个从闪烁存储器设备的链路接收和发送数据的通道。本领域的普通技术人员可以理解闪烁存储器控制器102可选地具有多个通道用于适应相应数量的闪烁存储器设备的链路。由于每一闪烁存储器设备优选地与另一设备紧密布置,所以闪烁存储器设备之间互联的导线将被最小化。因此,如图1的闪烁存储器系统10中,相对于总线长度将不存在物理性能限制。
如前所述,闪烁存储器控制器102用于发送对于每一闪烁存储器设备的编程命令。对于根据本发明的实施例的数据高速编程,数据文件的多个页面被编程到不同的存储器设备。通过一个接着另一个串行发送编程命令以快速连续地启动每一闪烁存储器设备中的编程操作来完成这一操作。图5和图6有助于说明如何获取此高速编程。
图5的时序图用于根据本发明的实施例说明由闪烁存储器控制器102发出编程命令来最大化闪烁存储器系统100的总体编程速度。在所示例子中,四个编程命令Data[0]、Data[1]、Data[2]和Data[3]由闪烁存储器控制器102分别在时间周期t1到t4被串行发送用于编程一个数据文件。用于每一编程命令的方括号中的标识数字指示从闪烁存储器控制器102发送编程命令的依次顺序。每一编程命令将包括但不限于命令200和用于特定存储器设备的数据202的至少一个页面。该命令200包括将数据的页面编程去往的地址和用于将编程命令与特定存储器设备相匹配的设备标识符。闪烁存储器设备106、108、110和112分别用于编程命令Data[0]、Data[1]、Data[2]和Data[3]。由于闪烁存储器设备串行连接并且编程命令被串行发送,所以每一闪烁存储器设备的核编程操作与下一闪烁存储器设备的操作相交迭,除了接收编程命令的最后一个闪烁存储器设备。
假设每一编程命令需要大约85微秒发送到存储器设备(时间t1),则发送四个编程命令的总的时间将需要4×85微秒=340微秒。用 于编程每个存储器设备的至少一个页面所需的时间是固定的,假设大约为200微秒。因此,用于编程所有数据到闪烁存储器系统100的总的使用时间将大约为340微秒+200微秒=540微秒。最后一个存储器设备将要求该200微秒的编程时间以接收编程命令。与此相对照,编程4个页面到同一存储器设备将占用1140微秒。图6的延展的时序图中将更清晰地示出闪烁存储器设备的交迭编程操作。
图6的延展的时序图用于响应相应的编程命令Data[0]、Data[1]、Data[2]和Data[3]示出闪烁存储器设备106、108、110和112的操作。时间周期t1到t4对应于图5中的同样的时间周期。参见图7的流程图描述图6的编程顺序。图7中描述的闪烁系统编程控制实施例称为高速交错编程方法,其中编程操作在不同存储器设备之间交错。该方法开始于步骤300,其中,串行提供至少两个编程命令到系统中的第一存储器设备106。第一编程命令对应编程命令Data[0],同时第二编程命令对应编程命令Data[1]。在步骤302,存储器设备106在第一时间周期t1期间接收编程命令Data[0],随后是步骤304的编程操作。在时间周期t1期间,编程命令Data[0]被发送到存储器设备106,同时存储器设备108、110和112保持在无操作(NOP)状态。
当编程命令Data[0]被发送到存储器设备106后,在第二时间周期t2期间由存储器设备108接收第二编程命令Data[1](步骤306)。随后在步骤308进行编程操作,由于用于存储器设备106的编程操作已经在时间周期t1的结束时开始,所以存在一个时间周期其中存储器设备106和108二者在同时执行编程操作。该过程以同样方式重复用于下一个编程命令和存储器设备。在此例中,存储器设备106和108中的编程操作将在时间周期t4的结束时完成。在存储器设备112中的编程操作继续进行时存储器设备110中的编程操作将完成。
上例提供的方案中接收命令的第一存储器设备是106。或者是,系统中的任意一个存储器设备可以是用来接收第一编程命令的第一存储器设备。如果设备106已经完成其编程操作,在时间周期t4后第五个编程命令发送给存储器设备106。本领域内的普通技术人员可以理解不同的闪烁存储器设备将具有不同的编程时间。在图6所示的例子中,存储器设备106已经在时间周期t4的开始完成了编程其数据,所以一旦存储器设备112完成接收编程命令Data[3],存储器设备106准备好接收下一个 编程命令Data[4]。如果闪烁存储器设备具有相当长的核编程时间,闪烁存储器控制器将需要在发出Data[4]编程命令之前等待,直到存储器设备106完成编程操作。闪烁存储器设备通常提供准备好状态信号给闪烁存储器控制器用来指示编程操作何时完成。
图8的示意图示出闪烁存储器设备106、108、110和112在图6和图7中描述的高速编程序列已经执行用于编程命令Data[0]、Data[1]、Data[2]、Data[3]和Data[4]之后的文件结构。图8中所示文件结构假设设备106、108和112的存储块在编程之前为空。这就是页面被编程到这些设备的物理页面0的原因。另一方面在存储器设备110中,存储块在物理页面0和1中可以具有其它数据。因此,Data[2]被编程到块中下一个可用页面,即物理页面2。如图8中所示,存储器设备106的物理页面1为此处所示高速编程序列中要编程的最后一个页面。下一个编程序列将在存储器设备108的物理页面1处开始编程数据,并且将如前所述以同样方式继续用于图6中所示编程序列。因此,当编程命令被串行发送到连续串联的存储器设备时,获得闪烁存储器系统100的最大的编程速度。换句话说,在数据分布在串联的闪烁存储器系统中的最大数目的存储器设备上的文件结构将导致数据文件的最高速编程。应该注意该数据并不一定需要以同样的物理页面数量在所有的存储器设备中被编程。
尽管高速编程有益于使用闪烁存储器系统100的系统,一些系统可以要求最大化闪烁存储器系统100的耐久时间。图8中所示的文件结构将不会最大化所有存储器设备上的编程/擦除耗损,主要是由于闪烁存储器设备的块擦除结构。例如,如果在每一存储器设备中的一个块上交错编程20页数据文件,有可能所有的四个存储器设备需要在更新数据文件之前执行块擦除。相反,如果所有的20页数据文件存储在一个存储器设备的一个块中,则仅该块需要被擦除。
因此,根据本发明的另一个实施例,调整上述高速编程控制方法以最小化编程/擦除耗损,或者优化编程性能和编程/擦除耗损。更具体地,图4的闪烁控制器102执行编程控制算法用于基于预定标准优化编程性能和编程/擦除耗损。预定标准包括将要编程的数据的特性和闪烁存储器系统的存储器设备的特性。数据特性包括将编程数据的页面数量,并且存储器设备特性包括每一块的页面数量。
图9的流程图示出使用高速和耗损平衡控制来编程闪烁存储 器系统中的多个闪烁存储器设备的实施例。此编程控制实施例将称为高速耗损平衡编程方法。耗损平衡是指用于延长闪烁存储器系统的寿命的方案。此处所述实施例通过使用多个编程配置文件来优化要编程的任意数据文件的耗损平衡和性能。编程配置文件通常对应于用于存储具有特定文件存储结构的数据页面的编程序列。最后,编程配置文件将数据文件的多个页面分配在闪烁存储器系统的存储器设备。此处所述的方法可以由诸如图4所示的闪烁控制器102的存储器控制器在串联的存储器设备的系统中执行。
在步骤400开始高速耗损平衡编程方法,其中变量i被设置为闪烁存储器系统的每一存储器设备中的每一块的页面数量,变量j被设置为闪烁存储器系统中的存储器设备的数量。假设闪烁存储器系统中的所有存储器设备都相同,并且具有同样的块尺寸。此信息被预编程到存储器控制器中。在步骤402,存储控制器接收包括k个页面的数据文件用于编程。继续步骤404,计算k是否小于或者等于i。如果k小于或者等于i,意味着数据文件小于或者等于存储器设备中的一块存储空间,随后在步骤406,数据文件的所有k个页面被编程到一个存储器设备的一个块。这是具有单个文件结构的编程配置文件的例子。存储器控制器根据一个或者多个选择参数选择数据文件将要被编程到的具体存储器设备。例如,一个选择参数为具有最大数量的剩余编程/擦除循环的存储器设备,而另一个选择参数包括将编程到的最后一个存储器设备。
另一方面,如果k大于i,意味着数据文件包括大于存储器设备中的一个块的存储空间的多个页面,在步骤408继续执行本方法。在步骤408,计算k/i是否小于或者等于j。应当注意到k/i的结果仅应该产生整数。由于本方法确定用于存储k个数据所需的最小数量的块,具有整数和小数部分的非整数结果(即,实数)指示需要大于该整数的一个块。通过诸如上限函数的数学函数可以实现此功能。本领域的普通技术人员可以理解上限函数返回不低于该实数的最小整数。另一方面,从k/i直接产生的结果并不需要其它的数学处理。由此可以看到,谈到k/i的结果将假设其已经应用过上限函数。
如果k/i的整数值小于j(闪烁存储器系统中存储器设备的数量),在步骤410,k个页面的数据文件被交错编程到k/i个存储器设备上。这是具有单个文件结构的编程配置文件的另一个例子。如图7方法中 描述的继续执行该交错编程。在一个实例中,如果i=32,j=4并且k=61,则k/i=1.90。由于k/i的结果是实数,上限函数将1.90的结果取为整数2。因此在步骤410中,所有的k=61个页面被交错编程到2个存储器设备。存储器控制器选择闪烁存储器系统中的任意两个存储器设备,无论其是直接相连或者间接相连。两个间接相连的存储器设备可以具有在它们之间相连的至少一个中介存储器设备。由于数据文件被编程到两个存储器设备中,大约一半的页面被编程到一个存储器设备中,并且剩余页面被存储在另一个存储器设备。
如果k/i不小于j(系统中的存储器设备的数量),随后将使用不同的优化编程序列用于编程不同大小的组的数据文件。更具体地,较大数据文件被认为是多个单元的较小数据文件,其可以根据在先所述任一编程序列被编程。继续步骤412,根据步骤410的交错编程序列,位于每一存储器设备的一个块中的所有页面以数据文件的k个页面的j*i个页面被编程。继续步骤414,更新页面数量k,使其等于k-(j*i)。因此,计算需要编程的剩余的页面数量。该方法循环返回步骤404,基于更新的k值,重复决策树的执行和编程序列。总之,本方法反复编程数据文件的j*i个页面的多个单元,该数据文件对于j*i个页面的每一单元使用同一文件结构;并且随后使用不同文件结构编程剩余的k-(j*i)个页面。因此,本方法的编程配置文件包括用于数据文件的多个文件结构。
现在使用一个实例来说明此实施例。如果i=32,j=4并且k=192,随后在步骤412,第一128个页面将被编程到所有的存储器设备。在步骤414,k被更新为192-(128)=64。剩余的64个页面被编程到步骤410中所述的两个存储器设备。如前所述,选择任意两个存储器设备用于编程剩余的64个页面。尽管本实施例说明该方法的编程使用重新计算的k值,通过闪烁控制器预先并且在使用上述计算过程开始任一编程操作之前可以确定整个序列。尽管假设要编程的数据文件的第一页面为j*i个页面,但是要编程的第一页面也可以是k-(j*i)个页面,然后才是j*i个页面的多个单元。
对于具有单一通道的闪烁存储器系统(诸如图4中所示的实施例),已经描述此处所述的高速耗损平衡编程方法。本发明此处所述的实施例也可以在具有两个或者多个通道的闪烁存储器系统中执行。在此替代实施例中,并行编程至少两个数据文件,第一数据文件在一个通道,第 二数据文件在另一个通道中。
此外,本实施例已经描述了使用具有单一存储体的存储器设备一起操作。当然,也可以使用具有两个或者多个存储体的存储器设备。当使用两个存储体时,就有两个可用的页面缓存器用于存储多达两个页面的数据。在多存储体设备配置中,可以使用多种编程选择。在第一选择中,需要编程到一个存储器设备的数据的所有页面被编程到存储器设备的一个体中的一个块。此操作类似于仅具有一个存储体的存储器设备。在第二选择中,数据文件的两个页面并行地或者以单个编程命令载入一个存储器设备。由于每一存储器设备同时编程两个页面,这有效地提高了编程吞吐量。在第三选择中,在存储器设备的多个存储体之间交错编程操作。例如,编程页面到两个存储器设备将按以下序列执行:设备1[存储体1],设备2[存储体1],设备1[存储体2]和设备2[存储体2]。对于具有多于两个存储体的存储器设备该编程序列也应该是明显的。
此外,尽管此处所述高速耗损平衡编程方法描述用于具有串联或者菊花链存储器设备的存储器系统,该实施例也可用于诸如图1所示的多点配置闪烁系统。通过启动合适的存储器设备并且在不同时间提供相应的命令数据到公用总线可以实现。
本发明前述实施例示出的例子中,图4的闪烁存储器系统中的编程操作是交错的。根据本发明的另一个实施例,由图4的闪烁存储器系统执行交错编程和读操作。
图10的时序图示出用于图4的闪烁存储器系统的高速交错读取和编程操作。在此例中,使用数据编程存储器设备106和112,同时存储器设备108和10用于提供读数据。在时间周期t1期间,存储器设备106接收编程命令Data[0],随后立即开始核内部序列用于编程数据。在时间周期t2开始时,存储器设备108接收读命令,并且继续执行内部数据传输操作(xfer)。例如,内部数据传输操作使用20微秒用于读出数据并将所述数据载入寄存器,此时间之后,在时间周期t3开始时闪烁控制器将发送用于存储器设备110的读命令。存储器设备108输入内部NOP周期500以允许数据从其数据寄存器输出之前将命令流通到下游存储器设备。
存储器设备110在接收到其各自读命令之后将开始其内部数据传输操作。但是,由于存储器设备108和110之间的信号线没有使用, 上游存储器设备108将开始输出其数据寄存器中的数据到存储器设备110,存储器设备110将数据传输到存储器设备112。例如,这以串行方式实现。在时间周期t3结束时,存储器设备108将完成其所有的读数据的输出,从而允许存储器设备110在时间周期t4的开始时开始输出其读数据。由于直到存储器设备108完成输出其数据,存储器设备110才能输出其数据,则进入内部NOP周期502。在时间周期t4结束时,由于来自存储器设备110的所有数据已经通过存储器设备112输出,将不再使用存储器设备110和112之间的信号线。因此,在时间周期t5的开始时,存储器设备112接收编程命令Data[1]。
尽管已经示出交错读和编程操作,但可以以任意组合执行交错读取、编程和擦除操作。
前述的高速交错编程方法用于最大化具有串联闪烁存储器系统中的编程性能。高速交错编程应用于任一尺寸的数据文件。但是,为了提高所有存储器设备的耐用性,高速耗损平衡编程方法用于使用基于数据文件的尺寸的文件结构来分配数据文件的页面。虽然本实施例针对闪烁存储器设备,但本发明的实施例可以应用于其它存储器设备,其中数据文件的页面被编程或者写到至少两个存储器设备。
在之前描述中,出于解释的目的,为了对本发明的实施例有全面理解而提供多个细节。但是,很明显对于本领域内的普通技术人员来说为了实现本发明并不一定需要这些具体细节。在其它例子中,框图形式所示的公知的电结构和电路是为了不模糊本发明。例如,对于此处所述的本发明的实施例是否被实现为软件程序、硬件电路、固件或其组合,没有提供具体细节。
本发明的实施例可以被表示为机器可读介质(也称为计算机可读介质、处理器可读介质或者具有以计算机可读程序代码实现的计算机可用介质)中存储的软件产品。机器可读介质可以是任意适合的有形介质,包括磁性、光学或者电子存储介质(包括磁盘、紧密盘只读存储器(CD-ROM)、存储器设备(易失性和非易失性)或者类似的存储机制)。这些机器可读介质可以包含多组指令、代码序列、配置信息或者其他数据,其可以在执行时使得处理器执行根据本发明的实施例的方法中的步骤。本领域内的普通技术人员可以意识到其它的用于实现所述方法必须的指令和操作也可以存储在机器可读介质。从机器可读介质运行的软件可以和电 路连接用于执行所述任务。
上述的本发明的实施例仅用于示例。对于本领域技术人员来说,在不脱离由所附的权利要求整体限定的本发明范围的前提下,可以实现特定实施例的各种替换、修改和变更。
Claims (7)
1.一种用于控制连接到通道的第一闪烁存储器设备和第二闪烁存储器设备的方法,所述第一闪烁存储器设备和所述第二闪烁存储器设备互相串行连接,所述方法包括如下步骤:
a)串行提供第一命令和第二命令到所述第一闪烁存储器设备;
b)响应第一命令在所述第一闪烁存储器设备中执行第一操作;
c)通过所述第一闪烁存储器设备传输所述第二命令到所述第二闪烁存储器设备;并且
d)在传输所述第二命令的步骤之后,响应第二命令在所述第二闪烁存储器设备中启动第二操作,同时所述第一闪烁存储器设备正在执行所述第一操作。
2.如权利要求1所述的方法,其中,启动所述第二操作包括启动所述第二闪烁存储器设备中的数据的读操作。
3.如权利要求1或2任一项所述的方法,其中,启动所述第二操作包括启动所述第二闪烁存储器设备中的擦除操作。
4.如权利要求1或2任一项所述的方法,其中,执行所述第一操作包括所述第一闪烁存储器设备中的读操作或擦除操作的其中一个。
5.一种闪烁存储器系统,包括:
控制器,具有串行提供第一命令和第二命令的通道;
互相串行连接的第一闪烁存储器设备和第二闪烁存储器设备,
所述第一闪烁存储器设备,耦合于所述通道用于:
从所述通道接收第一命令和第二命令;
响应第一命令执行第一操作;和
通过所述第一闪烁存储器设备传输所述第二命令到所述第二闪烁存储器设备;
所述第二闪烁存储器设备,通过所述第一闪烁存储器设备耦合于所述通道,用于响应第二命令启动第二操作,同时所述第一闪烁存储器设备正在执行所述第一操作。
6.如权利要求5所述的闪烁存储器系统,其中,所述第一操作包括编程操作,并且所述第一闪烁存储器设备编程数据文件的至少一个页面。
7.如权利要求6所述的闪烁存储器系统,其中,所述第二操作包括另一编程操作,并且所述第二闪烁存储器设备编程所述数据文件的至少一个其它页面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78808306P | 2006-03-31 | 2006-03-31 | |
US60/788,083 | 2006-03-31 | ||
PCT/CA2007/000501 WO2007112555A1 (en) | 2006-03-31 | 2007-03-29 | Flash memory system control scheme |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010566734.8A Division CN102063931B (zh) | 2006-03-31 | 2007-03-29 | 闪烁存储器系统控制方案 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101410906A CN101410906A (zh) | 2009-04-15 |
CN101410906B true CN101410906B (zh) | 2015-04-29 |
Family
ID=38563033
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010566734.8A Expired - Fee Related CN102063931B (zh) | 2006-03-31 | 2007-03-29 | 闪烁存储器系统控制方案 |
CN200780011511.1A Expired - Fee Related CN101410906B (zh) | 2006-03-31 | 2007-03-29 | 闪烁存储器系统及控制方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010566734.8A Expired - Fee Related CN102063931B (zh) | 2006-03-31 | 2007-03-29 | 闪烁存储器系统控制方案 |
Country Status (10)
Country | Link |
---|---|
US (2) | US7802064B2 (zh) |
EP (2) | EP2002442B1 (zh) |
JP (1) | JP5214587B2 (zh) |
KR (1) | KR101194965B1 (zh) |
CN (2) | CN102063931B (zh) |
AT (1) | ATE488009T1 (zh) |
DE (1) | DE602007010439D1 (zh) |
ES (1) | ES2498096T3 (zh) |
TW (2) | TW201445576A (zh) |
WO (1) | WO2007112555A1 (zh) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US9003354B2 (en) * | 2006-07-20 | 2015-04-07 | Texas Instruments Incorporated | Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data |
TW200828320A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Method for performing static wear leveling on flash memory |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US8310872B2 (en) * | 2008-01-25 | 2012-11-13 | Rambus Inc. | Multi-page parallel program flash memory |
WO2009100149A1 (en) * | 2008-02-10 | 2009-08-13 | Rambus, Inc. | Segmentation of flash memory for partial volatile storage |
JP2009266349A (ja) * | 2008-04-28 | 2009-11-12 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8275970B2 (en) * | 2008-05-15 | 2012-09-25 | Microsoft Corp. | Optimizing write traffic to a disk |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US8825940B1 (en) | 2008-12-02 | 2014-09-02 | Siliconsystems, Inc. | Architecture for optimizing execution of storage access commands |
US8880970B2 (en) * | 2008-12-23 | 2014-11-04 | Conversant Intellectual Property Management Inc. | Error detection method and a system including one or more memory devices |
US9176859B2 (en) * | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US8412880B2 (en) * | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
US8924661B1 (en) * | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
EP2394221A4 (en) * | 2009-02-09 | 2012-11-21 | Rambus Inc | NON-VOLATILE MEMORY WITH MULTIPLE LEVELS WITH SYNCHRONIZED CONTROL |
TWI396090B (zh) * | 2009-02-18 | 2013-05-11 | Silicon Motion Inc | 快閃記憶裝置、資料儲存系統、以及傳送特殊命令至快閃記憶裝置之方法 |
US10079048B2 (en) * | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8341501B2 (en) | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
US8639877B2 (en) | 2009-06-30 | 2014-01-28 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
US8234520B2 (en) | 2009-09-16 | 2012-07-31 | International Business Machines Corporation | Wear leveling of solid state disks based on usage information of data and parity received from a raid controller |
US8327092B2 (en) * | 2009-09-21 | 2012-12-04 | Freescale Semiconductor, Inc. | Memory device configurable as interleaved or non-interleaved memory |
US9244836B2 (en) * | 2009-11-23 | 2016-01-26 | Agiga Tech Inc. | Flash memory organization for reduced failure rate |
TWI486769B (zh) * | 2010-05-26 | 2015-06-01 | Netac Technology Co Ltd | 存儲設備及其輪詢方法 |
CN101923570B (zh) * | 2010-07-21 | 2012-07-04 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面Nand Flash存储系统的方法 |
EP2418584A1 (en) | 2010-08-13 | 2012-02-15 | Thomson Licensing | Method and apparatus for storing at least two data streams into an array of memories, or for reading at least two data streams from an array of memories |
US8769374B2 (en) | 2010-10-13 | 2014-07-01 | International Business Machines Corporation | Multi-write endurance and error control coding of non-volatile memories |
WO2012048444A1 (en) | 2010-10-14 | 2012-04-19 | Freescale Semiconductor, Inc. Are | Memory controller and method for accessing a plurality of non-volatile memory arrays |
US8539139B1 (en) | 2010-12-17 | 2013-09-17 | Teradota Us, Inc. | Managing device wearout using I/O metering |
US8797799B2 (en) * | 2012-01-05 | 2014-08-05 | Conversant Intellectual Property Management Inc. | Device selection schemes in multi chip package NAND flash memory system |
US9501437B2 (en) | 2012-11-15 | 2016-11-22 | Empire Technology Development Llc | Scalable storage system having multiple storage channels |
US10642505B1 (en) | 2013-01-28 | 2020-05-05 | Radian Memory Systems, Inc. | Techniques for data migration based on per-data metrics and memory degradation |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9092353B1 (en) | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US9397701B1 (en) | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
US9590656B2 (en) | 2013-03-15 | 2017-03-07 | Microsemi Storage Solutions (Us), Inc. | System and method for higher quality log likelihood ratios in LDPC decoding |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
US9728526B2 (en) | 2013-05-29 | 2017-08-08 | Sandisk Technologies Llc | Packaging of high performance system topology for NAND memory systems |
US9324389B2 (en) * | 2013-05-29 | 2016-04-26 | Sandisk Technologies Inc. | High performance system topology for NAND memory systems |
KR102254099B1 (ko) | 2014-05-19 | 2021-05-20 | 삼성전자주식회사 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
US9417804B2 (en) * | 2014-07-07 | 2016-08-16 | Microsemi Storage Solutions (Us), Inc. | System and method for memory block pool wear leveling |
US9292210B1 (en) | 2014-08-29 | 2016-03-22 | International Business Machines Corporation | Thermally sensitive wear leveling for a flash memory device that includes a plurality of flash memory modules |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
KR102296740B1 (ko) * | 2015-09-16 | 2021-09-01 | 삼성전자 주식회사 | 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10283215B2 (en) | 2016-07-28 | 2019-05-07 | Ip Gem Group, Llc | Nonvolatile memory system with background reference positioning and local reference positioning |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
US9928907B1 (en) * | 2017-01-27 | 2018-03-27 | Western Digital Technologies, Inc. | Block erase schemes for cross-point non-volatile memory devices |
US10600484B2 (en) | 2017-12-20 | 2020-03-24 | Silicon Storage Technology, Inc. | System and method for minimizing floating gate to floating gate coupling effects during programming in flash memory |
US10552319B2 (en) * | 2018-06-01 | 2020-02-04 | Intel Corporation | Interleave set aware object allocation |
KR102671402B1 (ko) | 2019-04-16 | 2024-05-31 | 삼성전자주식회사 | 문턱전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작방법 |
US11315649B2 (en) | 2019-04-16 | 2022-04-26 | Samsung Electronics Co., Ltd. | Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods |
US11049570B2 (en) | 2019-06-26 | 2021-06-29 | International Business Machines Corporation | Dynamic writes-per-day adjustment for storage drives |
US11163482B2 (en) | 2019-06-26 | 2021-11-02 | International Business Machines Corporation | Dynamic performance-class adjustment for storage drives |
US11137915B2 (en) | 2019-06-27 | 2021-10-05 | International Business Machines Corporation | Dynamic logical storage capacity adjustment for storage drives |
US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655277A (zh) * | 2004-02-09 | 2005-08-17 | 联想(北京)有限公司 | 多功能数据存储装置及方法 |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4174536A (en) | 1977-01-21 | 1979-11-13 | Massachusetts Institute Of Technology | Digital communications controller with firmware control |
EP0179605B1 (en) | 1984-10-17 | 1992-08-19 | Fujitsu Limited | Semiconductor memory device having a serial data input circuit and a serial data output circuit |
US4683555A (en) | 1985-01-22 | 1987-07-28 | Texas Instruments Incorporated | Serial accessed semiconductor memory with reconfigureable shift registers |
EP0417314B1 (en) | 1989-03-15 | 1997-06-04 | Oki Electric Industry Company, Limited | Serial in to parallel out converting circuit |
US5126808A (en) | 1989-10-23 | 1992-06-30 | Advanced Micro Devices, Inc. | Flash EEPROM array with paged erase architecture |
US5175819A (en) | 1990-03-28 | 1992-12-29 | Integrated Device Technology, Inc. | Cascadable parallel to serial converter using tap shift registers and data shift registers while receiving input data from FIFO buffer |
US5243703A (en) | 1990-04-18 | 1993-09-07 | Rambus, Inc. | Apparatus for synchronously generating clock signals in a data processing system |
US5430859A (en) | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
JP3178909B2 (ja) * | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
KR950000761B1 (ko) | 1992-01-15 | 1995-01-28 | 삼성전자 주식회사 | 직렬 입력신호의 동기회로 |
JP3088180B2 (ja) | 1992-03-26 | 2000-09-18 | 日本電気アイシーマイコンシステム株式会社 | シリアル入力インタフェース回路 |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
KR960000616B1 (ko) | 1993-01-13 | 1996-01-10 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치 |
JPH06266596A (ja) * | 1993-03-11 | 1994-09-22 | Hitachi Ltd | フラッシュメモリファイル記憶装置および情報処理装置 |
JPH06275069A (ja) | 1993-03-20 | 1994-09-30 | Hitachi Ltd | シリアルメモリ |
US5365484A (en) | 1993-08-23 | 1994-11-15 | Advanced Micro Devices, Inc. | Independent array grounds for flash EEPROM array with paged erase architechture |
JPH0793219A (ja) | 1993-09-20 | 1995-04-07 | Olympus Optical Co Ltd | 情報処理装置 |
US5602780A (en) | 1993-10-20 | 1997-02-11 | Texas Instruments Incorporated | Serial to parallel and parallel to serial architecture for a RAM based FIFO memory |
US5452259A (en) | 1993-11-15 | 1995-09-19 | Micron Technology Inc. | Multiport memory with pipelined serial input |
US5404460A (en) | 1994-01-28 | 1995-04-04 | Vlsi Technology, Inc. | Method for configuring multiple identical serial I/O devices to unique addresses through a serial bus |
US5596724A (en) | 1994-02-04 | 1997-01-21 | Advanced Micro Devices | Input/output data port with a parallel and serial interface |
DE4429433C1 (de) | 1994-08-19 | 1995-10-26 | Siemens Ag | Adreßzuordnungsverfahren |
US5473566A (en) | 1994-09-12 | 1995-12-05 | Cirrus Logic, Inc. | Memory architecture and devices, systems and methods utilizing the same |
KR0142367B1 (ko) | 1995-02-04 | 1998-07-15 | 김광호 | 열 리던던씨를 가지는 불휘발성 반도체 메모리의 소거 검증회로 |
US5636342A (en) | 1995-02-17 | 1997-06-03 | Dell Usa, L.P. | Systems and method for assigning unique addresses to agents on a system management bus |
US5568423A (en) * | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
US5835935A (en) | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
JP3693721B2 (ja) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
TW307869B (en) | 1995-12-20 | 1997-06-11 | Toshiba Co Ltd | Semiconductor memory |
KR100211760B1 (ko) | 1995-12-28 | 1999-08-02 | 윤종용 | 멀티뱅크 구조를 갖는 반도체 메모리 장치의 데이타 입출력 경로 제어회로 |
KR0170723B1 (ko) | 1995-12-29 | 1999-03-30 | 김광호 | 단일 ras 신호에 의해 동시 동작이 가능한 이중 뱅크를 갖는 반도체 메모리 장치 |
US5828899A (en) | 1996-01-04 | 1998-10-27 | Compaq Computer Corporation | System for peripheral devices recursively generating unique addresses based on the number of devices connected dependent upon the relative position to the port |
JPH09231740A (ja) | 1996-02-21 | 1997-09-05 | Nec Corp | 半導体記憶装置 |
US5941974A (en) | 1996-11-29 | 1999-08-24 | Motorola, Inc. | Serial interface with register selection which uses clock counting, chip select pulsing, and no address bits |
KR100243335B1 (ko) | 1996-12-31 | 2000-02-01 | 김영환 | 독립적인 리프레쉬 수단을 가지는 데이지 체인 구조의 반도체 장치 |
KR100272037B1 (ko) | 1997-02-27 | 2000-12-01 | 니시무로 타이죠 | 불휘발성 반도체 기억 장치 |
GB2329792A (en) | 1997-08-20 | 1999-03-31 | Nokia Telecommunications Oy | Identification signals enable a transceiver module to correctly configure itself to an attached functional module |
JPH1166841A (ja) | 1997-08-22 | 1999-03-09 | Mitsubishi Electric Corp | 半導体記憶装置 |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
KR100240873B1 (ko) | 1997-08-26 | 2000-01-15 | 윤종용 | 송수신 겸용의 레지스터를 갖는 직렬인터페이스장치 |
JP4039532B2 (ja) | 1997-10-02 | 2008-01-30 | 株式会社ルネサステクノロジ | 半導体集積回路装置 |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US6148364A (en) | 1997-12-30 | 2000-11-14 | Netlogic Microsystems, Inc. | Method and apparatus for cascading content addressable memory devices |
US6002638A (en) | 1998-01-20 | 1999-12-14 | Microchip Technology Incorporated | Memory device having a switchable clock output and method therefor |
DE19980546B4 (de) | 1998-03-02 | 2011-01-27 | Lexar Media, Inc., Fremont | Flash-Speicherkarte mit erweiterter Betriebsmodus-Erkennung und benutzerfreundlichem Schnittstellensystem |
US6085290A (en) | 1998-03-10 | 2000-07-04 | Nexabit Networks, Llc | Method of and apparatus for validating data read out of a multi port internally cached dynamic random access memory (AMPIC DRAM) |
US6144576A (en) | 1998-08-19 | 2000-11-07 | Intel Corporation | Method and apparatus for implementing a serial memory architecture |
US5995417A (en) | 1998-10-20 | 1999-11-30 | Advanced Micro Devices, Inc. | Scheme for page erase and erase verify in a non-volatile memory array |
JP4601737B2 (ja) | 1998-10-28 | 2010-12-22 | 株式会社東芝 | メモリ混載ロジックlsi |
JP2000149564A (ja) | 1998-10-30 | 2000-05-30 | Mitsubishi Electric Corp | 半導体記憶装置 |
US6304921B1 (en) | 1998-12-07 | 2001-10-16 | Motorola Inc. | System for serial peripheral interface with embedded addressing circuit for providing portion of an address for peripheral devices |
KR100284742B1 (ko) | 1998-12-28 | 2001-04-02 | 윤종용 | 입출력 센스앰프의 개수가 최소화된 메모리장치 |
US7130958B2 (en) * | 2003-12-02 | 2006-10-31 | Super Talent Electronics, Inc. | Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes |
US6680904B1 (en) | 1999-12-27 | 2004-01-20 | Orckit Communications Ltd. | Bi-directional chaining of network access ports |
US20050160218A1 (en) * | 2004-01-20 | 2005-07-21 | Sun-Teck See | Highly integrated mass storage device with an intelligent flash controller |
US6442098B1 (en) | 2000-02-08 | 2002-08-27 | Alliance Semiconductor | High performance multi-bank compact synchronous DRAM architecture |
WO2001069411A2 (en) | 2000-03-10 | 2001-09-20 | Arc International Plc | Memory interface and method of interfacing between functional entities |
US6816933B1 (en) | 2000-05-17 | 2004-11-09 | Silicon Laboratories, Inc. | Serial device daisy chaining method and apparatus |
US6535948B1 (en) | 2000-05-31 | 2003-03-18 | Agere Systems Inc. | Serial interface unit |
US6317350B1 (en) | 2000-06-16 | 2001-11-13 | Netlogic Microsystems, Inc. | Hierarchical depth cascading of content addressable memory devices |
US6754807B1 (en) | 2000-08-31 | 2004-06-22 | Stmicroelectronics, Inc. | System and method for managing vertical dependencies in a digital signal processor |
US6317352B1 (en) | 2000-09-18 | 2001-11-13 | Intel Corporation | Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules |
US6853557B1 (en) | 2000-09-20 | 2005-02-08 | Rambus, Inc. | Multi-channel memory architecture |
JP3992960B2 (ja) * | 2000-10-26 | 2007-10-17 | 松下電器産業株式会社 | 記録装置及びプログラム |
FR2816751A1 (fr) | 2000-11-15 | 2002-05-17 | St Microelectronics Sa | Memoire flash effacable par page |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
US6996644B2 (en) | 2001-06-06 | 2006-02-07 | Conexant Systems, Inc. | Apparatus and methods for initializing integrated circuit addresses |
KR100413762B1 (ko) | 2001-07-02 | 2003-12-31 | 삼성전자주식회사 | 뱅크 수를 가변할 수 있는 반도체 장치 및 그 방법 |
US6928501B2 (en) | 2001-10-15 | 2005-08-09 | Silicon Laboratories, Inc. | Serial device daisy chaining method and apparatus |
US6763426B1 (en) | 2001-12-27 | 2004-07-13 | Cypress Semiconductor Corporation | Cascadable content addressable memory (CAM) device and architecture |
US7062601B2 (en) | 2002-06-28 | 2006-06-13 | Mosaid Technologies Incorporated | Method and apparatus for interconnecting content addressable memory devices |
KR100499686B1 (ko) | 2002-07-23 | 2005-07-07 | 주식회사 디지털웨이 | 메모리 확장 가능한 휴대용 플래쉬 메모리 장치 |
CA2396632A1 (en) | 2002-07-31 | 2004-01-31 | Mosaid Technologies Incorporated | Cam diamond cascade architecture |
KR100487539B1 (ko) | 2002-09-02 | 2005-05-03 | 삼성전자주식회사 | 직렬 에이티에이 케이블과 연결되는 불휘발성 반도체메모리 장치 |
DE60229649D1 (de) | 2002-11-28 | 2008-12-11 | St Microelectronics Srl | Nichtflüchtige Speicheranordnungsarchitektur, zum Beispiel vom Flash-Typ mit einer seriellen Übertragungsschnittstelle |
US7296112B1 (en) * | 2002-12-10 | 2007-11-13 | Greenfield Networks, Inc. | High bandwidth memory management using multi-bank DRAM devices |
KR100493884B1 (ko) | 2003-01-09 | 2005-06-10 | 삼성전자주식회사 | 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩 |
US20040199721A1 (en) | 2003-03-12 | 2004-10-07 | Power Data Communication Co., Ltd. | Multi-transmission interface memory card |
US20050166006A1 (en) | 2003-05-13 | 2005-07-28 | Advanced Micro Devices, Inc. | System including a host connected serially in a chain to one or more memory modules that include a cache |
JP4156986B2 (ja) | 2003-06-30 | 2008-09-24 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7779212B2 (en) * | 2003-10-17 | 2010-08-17 | Micron Technology, Inc. | Method and apparatus for sending data from multiple sources over a communications bus |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
CN100495369C (zh) * | 2004-01-20 | 2009-06-03 | 特科2000国际有限公司 | 使用多个存储器设备的便携数据存储设备 |
US8375146B2 (en) * | 2004-08-09 | 2013-02-12 | SanDisk Technologies, Inc. | Ring bus structure and its use in flash memory systems |
KR100705221B1 (ko) | 2004-09-03 | 2007-04-06 | 에스티마이크로일렉트로닉스 엔.브이. | 플래쉬 메모리 소자 및 이를 이용한 플래쉬 메모리 셀의소거 방법 |
US6950325B1 (en) | 2004-10-07 | 2005-09-27 | Winbond Electronics Corporation | Cascade-connected ROM |
-
2007
- 2007-03-29 AT AT07719433T patent/ATE488009T1/de not_active IP Right Cessation
- 2007-03-29 US US11/693,027 patent/US7802064B2/en active Active
- 2007-03-29 ES ES10171414.5T patent/ES2498096T3/es active Active
- 2007-03-29 CN CN201010566734.8A patent/CN102063931B/zh not_active Expired - Fee Related
- 2007-03-29 DE DE602007010439T patent/DE602007010439D1/de active Active
- 2007-03-29 CN CN200780011511.1A patent/CN101410906B/zh not_active Expired - Fee Related
- 2007-03-29 EP EP07719433A patent/EP2002442B1/en active Active
- 2007-03-29 KR KR1020087026519A patent/KR101194965B1/ko not_active IP Right Cessation
- 2007-03-29 JP JP2009501801A patent/JP5214587B2/ja not_active Expired - Fee Related
- 2007-03-29 EP EP10171414.5A patent/EP2242058B1/en not_active Not-in-force
- 2007-03-29 WO PCT/CA2007/000501 patent/WO2007112555A1/en active Application Filing
- 2007-03-30 TW TW103126004A patent/TW201445576A/zh unknown
- 2007-03-30 TW TW096111391A patent/TWI456582B/zh not_active IP Right Cessation
-
2010
- 2010-08-12 US US12/855,171 patent/US20100325353A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655277A (zh) * | 2004-02-09 | 2005-08-17 | 联想(北京)有限公司 | 多功能数据存储装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2007112555A1 (en) | 2007-10-11 |
EP2242058B1 (en) | 2014-07-16 |
TW200805396A (en) | 2008-01-16 |
CN101410906A (zh) | 2009-04-15 |
EP2242058A3 (en) | 2011-05-25 |
EP2002442A4 (en) | 2009-05-06 |
US20070233939A1 (en) | 2007-10-04 |
DE602007010439D1 (de) | 2010-12-23 |
KR20090017494A (ko) | 2009-02-18 |
CN102063931B (zh) | 2014-07-30 |
KR101194965B1 (ko) | 2012-10-25 |
EP2002442A1 (en) | 2008-12-17 |
US20100325353A1 (en) | 2010-12-23 |
US7802064B2 (en) | 2010-09-21 |
TWI456582B (zh) | 2014-10-11 |
EP2002442B1 (en) | 2010-11-10 |
JP5214587B2 (ja) | 2013-06-19 |
CN102063931A (zh) | 2011-05-18 |
ATE488009T1 (de) | 2010-11-15 |
JP2009531747A (ja) | 2009-09-03 |
ES2498096T3 (es) | 2014-09-24 |
EP2242058A2 (en) | 2010-10-20 |
TW201445576A (zh) | 2014-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101410906B (zh) | 闪烁存储器系统及控制方法 | |
US11150808B2 (en) | Flash memory system | |
US8120990B2 (en) | Flexible memory operations in NAND flash devices | |
CN101617372B (zh) | 具有动态多模式操作的非易失性存储器 | |
CN101933095B (zh) | 具有可配置页面尺寸的非易失性存储器设备 | |
JP4649503B2 (ja) | 半導体装置 | |
JP2015503798A (ja) | Slc−mlc消耗バランシング | |
JP2014022031A (ja) | 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法 | |
CN106170833A (zh) | 在数据存储系统中的具有模块化擦除的数据管理 | |
JP2006323981A (ja) | メモリーをアクセスする方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: Ontario, Canada Applicant after: Examine Vincent Zhi Cai management company Address before: Ontario, Canada Applicant before: Mosaid Technologies Inc. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: MOSAID TECHNOLOGIES INC. TO: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. |
|
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: 20150429 Termination date: 20160329 |