存储系统的制作方法

文档序号:6745572阅读:181来源:国知局
专利名称:存储系统的制作方法
技术领域
本发明涉及存储系统,特别是存储数据块结构数据的存储系统。本发明用于非易失性存储单元用作存储媒体的场合。本发明所用非易失性存储单元的特殊类型是不允许擦除单个单元的但允许擦除存储单元的字块的存储单元。可以使用不同的存储单元,如FLASH EPROM单元,硫族化物存储单元,铁光单元。
许多计算机用普通存储器存储单元是基于如磁盘驱动器这样的旋转存储媒体。然而,旋转存储媒体有些缺点。由于它们由旋转的磁盘构成,所以需要较大的功率。因为寻找等数时间(移动磁头至正确位置所需时间)和旋转等数时间(找出轨道正确部分的时间),它们的读写速度比较慢。磁盘笨重且不坚固(它们对震动敏感)。相反,半导体存储器重量轻,坚固,消耗很少的功率并运算很快。由于这些理由,人们希望使用一种固态磁盘装置。选作固态存储器特殊半导体有最理想的高密度、非易失性和每一位的低价格。这使得FLASH存储器成为理想的候补者。
对于使用FLASH存储器作为一个固态磁盘驱动器的存储媒体,有许多现有技术的参考资料。这些参考资料包括以下的专利EP 0 392895,EP 0 424 191,EP 0 522 780,EP 0 597 706,EP 0 617 363,EP 0 618 535,EP 0 619 541,GB 2 251 323,WO 93 02418,WO94 19746,WO 9420906,WO 9423369,WO 9423432,WO9514272,WO95 10083,US4511964,WO8400628,WO9510083,WO9514272。许多这些参考资料有一些共同的特征。例如,大多参考资料公开使用一个表来变换来自主机的逻辑地址(通常在CHS-柱面,首标和扇区格式中)至FLASH存储器内的物理地址,或变换至将用于产生FLASH存储器内物理地址的中间地址。大多数参考资料还有一些方法可以保证一个字块比另一个字块不被写入更多的次数。闪光固态磁盘仿真器的第三个共同特征是一个增加向半导体写入速度的缓冲器。缓冲器通常由一些快速存储器构成,这样的存储器如SRAM(静态随机存取存储器)。
任何使用FLASH存储器作为存储方式的固态磁盘仿真系统也有一些控制单元擦除和写入的方法。这是因为单元需要相对长的时间才能擦去以及单元在需要擦去之前只能写入一次。本发明使用一种算法,此算法用在一个固态磁盘仿真系统中以控制存储单元的写入和擦除。
EP 0522 780描述一个固态磁盘的控制方法,此控制方法使用一个存储器管理表记录每个单元擦除次数,每一存储器字块和缓冲器的状态,以保持写入存储器数据。此方法包括在擦去初始字块前复制被擦去扇区至另一字块。
EP 0 392 895是有关使用超高速缓冲存储器以缓冲对FLASH存储器的写入来增加存储器的运算速度。在公开的存储系统中使用确定“自每个数据文件最后写入的时间”的方法。它也涉及纠正错误和替代不足,而这些又是下面将提到的部分应用的主题。
EP 0 618 535是关于具有替代不足的固态磁盘仿真器。
EP 0 617 363是涉及纠正FLASH存储器中缺陷单元的方法,其做法是使用指示字将存储器中的缺陷位置指至空闲位置。
EP 0 424 191是关于在一个按规定指令可以存取的存储器中进行顺序数据存储的方法。存储器中的缺陷被储存在有序的目录中,这使得当存储器被写入时这些缺陷位置进行跳越。
EP 0 619 541提供一个固态磁盘仿真系统,其允许从一个中心处理单元进行随机存取。它还可以测量每个存储器字块的擦除计数,以便使一个字块避免写入很多次数。
EP 0 597 706介绍一种固态外围存储器件,这种存储器件使用一个MAP ROM变换主机提供的逻辑扇区段地址至半导体存储器中的物理地址。半导体存储器中的任何坏扇区地址被记录在MAP ROM中。一种微定序器用来控制变换的进行。
GB 2 251 323叙述了一种FLASH存储器的磁盘仿真系统。公开描述的擦除运算只在感测中是自动的,这当满足一定的条件时作为一个背景任务而发生。或擦去最少的循环字块,或擦去有最多删除扇区的字块。这产生了一个用于擦除的基本随机字块选择。
WO 94 20906叙述了一个FLASH文件系统,此系统用于仿真磁盘驱动器的操作。它使用一个字块存储分配变换来储存在能写入的FLASH存储器中的数据块上的信息。在一个字块要被更新时,储存分配变换被扫描直至空闲字块得到定位。一个传送单元用来促进系统存储器的回收。此传送单元是存储器的一个未写但已被擦的字块。现用数据(一般是有效的)来自含有老数据(老数据块)存储器的字块,此现用数据被写入在传送单元(新数据块)的同样位置,而老字块被擦除。老字块然后成为传送单元。
WO 94 234 32表示一个FLASH存储器大容量存储体系结构。通过将变更的数据文件编入空白的大容量存储字块来避免擦除循环。用多扇区擦除来周期地擦除该存储。使用一个计数器来保证无字块被擦除次数大于最大次数。
WO 9423369表示一个非常类似WO 94 23432所述结构的FLASH存储器大容量存储结构。此两个专利的申请人为同一人。
WO 94 19746公开一个同时储存两个字节的闪光固态驱动器。每次一个扇区被写入FLASH存储器,一个首标也随之被写入。如果此扇区的老版本存在存储器之中,则它将标记为无效。在存储空间下降低于某一阈值时,则进行擦除操作。来自扇区的好数据则复制在缓冲器上,扇区被擦除并好数据被复制回此扇区。
WO8400628公开一个管理存储媒体中缺陷的方法。此方法包括从主机接收地址,补偿低于此地址的缺陷位置数的被接收地址,存取被补偿的地址。构成存储媒体中缺陷位置的顺序表。
WO 9510083使用计算器记下擦除每个字块已经历的循环数,并复制数据文件的更改版本至新的位置。周期性地擦除字块以清除系统。半导体存储器的字块与商用硬磁盘扇区尺寸相一致。
WO 9514272提供一种从多个被存取逻辑字块产生正确的物理起始地址的方法。
本发明的优选实施例提供了整个存储器内的擦除/写循环的自动均衡。该自动均衡在最完备的意义上是自动的,即在数据正写入时发生均衡,而不是在其后的时间内作为一个背景任务。它也能提供存储数据的自动压缩。在使用可使用FLASH存储器容量时可以得到100%的效率,也就是说使用了所有的可用FLASH存储器。它也允许使用其有任何可擦除字块长度的FLASH存储器可擦除字块长度不到512字节。这允许存储数据的每一段包括有误差修正码。本发明也可以促进从物理地址至FLASH地址空间的非常简单的变换。
本发明提供仿真磁盘驱动器的固态存储器,包括翻译逻辑地址至存取一个储存的二次地址的翻译方法;一个存储器是由字块中的可擦除的非易失性存储器单元构成;其特征在于第一指示字指出存储中的未写位置,第二个指示字用来指出下一个未擦除的可擦除字块,此字块紧挨着含有所说未写存储器位置的可擦除字块;所提供的控制方法保证在第一和第二指示字之间至少总有一个可擦除字块处于被擦除状态。所说存储中的未写位置的一个固态存储器是此存储中的最低未写位置。
所说的存储中未写位置的一个固态存储器是存储中的最高未写位置。
一个固态存储器,在那里所说下一个未擦除但可擦除字块紧接着包含所说未写存储器位置,是在第一指示字之上具有最低物理地址的未擦除但可擦除的字块。
一个固态存储器,在那里所说下一个未擦除但可擦除字块紧接着包含所说未写存储器位置,是在第一指示字之下具有最高物理地址数未擦除但可擦除的字块。
一个固态存储器,在那里所说下一个未擦除但可擦除字块紧接着包含所说未写存储器位置,是由合适的算法确定。一个固态存储器,使用一缓冲器,以增加写入数据到存储器的速度。
一个固态存储器,在那里所说的缓冲器是一个SRAM缓冲器。
一个固态存储器,在那里所说的缓冲器是一个DRAM(动态随机存取存储器)缓冲器。
一个固态存储器,在那里所说的存储是FLASH EPROM(闪光可擦除可编程只读存储器)。
一个固态存储器,在那里所说的存储器是由硫族化合物单元组成。
一个固态存储器,在那里所说的存储器是一个铁-光存储器。
一个固态存储器,在那里所说的控制方法是由一个微处理器,一个微控制器或一个状态机提供。
在本申请中一个未写存储器位置不属于一个从未写入的存储器位置,但它属于处于被擦除状态的一个位置。
在本申请中第二地址可以是一个物理地址,一个物理字块地址或一个中间地址。
将通过例子并参考附图对本发明进行叙述,其中

图1表示仿真一个磁盘驱动器的存储器系统的图2表示一个FLASH存储器中的子分割分级结构;图3A和3B阐明写/擦除算法如何管理位在主机FLASH存储器中擦除和写运算的位置和次数。
图3A表示擦除/写算法见效前的一个FLASH存储器。图3B表示写/擦除算法见效后的一个FLASH存储器。
参见图1,FLASH存储器10用作从主机接收数据的主存储器。FLASH存储器10由存储器控制器12进行控制。此存储器12在FLASH存储器10和一个工艺无关的接口14之间操作。存储器控制器12控制物理存储器(FLASH存储器10)内高水平功能的低水平执行。存储器控制器12是存储器工艺有关的。
工艺无关接口14连接存储器控制器12至一系统控制器16。系统控制器16管理主FLASH存储器10内和写入缓冲器18内的字块结构数据的储存和存取,该写入缓冲器是为增加向FLASH存储器10数据写入速度的。系统控制器16执行以下功能。它翻译来自主机的逻辑地址至采用FLASH存储器10时的合适地址。在下文称为逻辑至物理地址的翻译。这种翻译导致一些中间地址的产生。它保持所需的任何地址对照表。它管理FLASH存储器10中的有缺陷的存储位置。它管理写入缓冲器18。它管理FLASH存储器10的字块的擦除。在加入或去掉电源后管理系统的开启和关闭。
所有来自主机的扇区写入指向写入缓冲器18。这将FLASH存储器的慢写入速度的作用减至最小。扇区数据从写入缓冲器18传递至作为背景任务的FLASH存储器10。在使用时,写入速度不重要时可省去写入缓冲器18。
系统控制器16被连至二级存储器20和主机接口22。二级存储器20用来存储如有缺陷的字块和FLASH存储器10的可擦字块表信息,地址翻译表,误差记录和微控制器固件。二级存储器可直接从主机接口22存取以提供给主机一个直接变换存储器地址空间。参见图2,主FLASH存储器10在子分割的下面分级结构中排列。FLASH存储器由一些半导体芯片30组成。半导体芯片30是一个物理子分割,此子分割没有任何逻辑意义。一个擦除字块32是半导体芯片30的一个子分割。它是在一个擦除操作中可能删去的最小单元数。一个半导体芯片中的擦除字块的数目根据芯片的大小和芯片的排布而变化。矩形字组被指定为FLASH字块。一个FLASH字块34对缺陷管理来说是最小可标记字块尺寸。如果一个单元出现故障,则可以标记和取代的最小区域是一个FLASH字块34。缺陷变换具有一个FLASH字块34的量化度。根据磁盘仿真协议一个扇区是一个数据单位。FLASH存储器中储存的数据(典型的为512字节加ECC字节和一个标题)后文将归于一个闪光扇区由主机操作系统发送的数据(典型的为512字节)其后将归于一个主机扇区。一个主机扇区是随主机传递数据的基本单位。最一般的主机扇区长度为512字节。一个帧36是一个FLASH字块34的可寻址子单位,例如一矩形FLASH字块34内的一行。每一字38作为工艺无关接口14的最小可寻址单元是可随机存取的。对存储器系统用数据I/O的宽度将字的长度设定它可以是一、二或四个字节。
实际一个字中的位的物理位置对本发明所用算法是透明的。FLASH存储器被简单地处理成一个字位置矩形阵列。
FLASH字块34能设定等于主机扇区长度(在大多数情况,主机扇区长度是512字节),帧长度或甚至字长度。存储结果(可用于数据存储的主存储器的部分)达到FLASH字块长度某值以下的一个坪,这样使得FLASH字块长度进一步减小不会导致存储结果的更多改善。然而,有些缺陷同使用一个小FLASH字块长度相关。FLASH字块长度越小,则需要更多的存储管理空间。也增加了部件试验的复杂性。因此,对于FLASH字块的长度存在一个最佳范围。
在本发明中可使用不同的寻址格式,这并不会离开本发明的概念。
对于100%存储器的实用情况,一个扇区的初始地址必须是紧跟前一扇区末端地址的一个字。为此,初始地址被定义为单一字的一个解。由于FLASH扇区在没有插入间隙情况下被存储,FLASH扇区将溢出FLASH字块和擦除字块。在这种情况下,将FLASH扇区作为分离扇区来认识,其连续区域位在下一闪光字块或擦除字块的开始。因此,FLSH字块内的FLASH扇区的初始地址对每一FLASH字块是不同的。为保证容易对此进行管理,必须保证在其中写入擦除字块的命令准确符合它们的物理地址命令。如果在一个FLASH字块中有一个缺陷单元,则此字块将被标出。这可能产生一种情况,部分FLASH扇区被存储在一个FLASH字块中,下一个FLASH字块被标出,FLASH扇区的剩余立即存储在标出FLASH字块上面的FLASH字块内。因此FLASH存储器空间可以是不连续的。
图3A和3B表明写/擦莫法如何管理主FLASH存储器的擦除、写操作位置和次数。图3A表示擦/写状态前的一个FLASH存储器,图3B表示写/擦状态后的同样的FLASH存储器。
此算法基于存在两个指示字,写入指示器和擦除指示字,规定现在的写和擦除位置。位置被规定为物理扇区地址和通过物理扇区地址空间的指示字循环。写入指示字规定下一个扇区写入操作应指向的物理扇区数据。此扇区的物理位置保证为准备写入数据提前用存储器系统中的系统控制器16进行擦除。被写入的扇区数据或来自跟随来自主机的扇区写入的写入缓冲器18,或来自为准备擦除字块擦除操作的FLASH存储器10中的另一扇区。随着扇区写入操作,写入指示字递增一以指出下一个最高物理扇区地址。当写入指示字达到最高可用物理扇区地址时,然后它绕接并指示最低可用物理地址。
擦除指示字规定在计划擦除的下一擦除字块的FLASH存储器空间中的擦除字块地址。在擦除指示字中的第二字段规定位在擦除字块底部的第一完全扇区的物理扇区数。随着擦除字块擦除操作,擦除字块数递增1。一个对照表(下文中称为擦除字块表)提供擦除指示字区指示的擦除字块中第一扇区的物理扇区地址。如果擦除字块全是有缺陷的并不包含能被写入的扇区(在擦除字块表中由具体条目表示),则擦除指示字再增加。当擦除指示字达到最高可用擦除字块时,然后它回到存储器的最低部分并指出最低可用擦除字块。擦除字块以一个速度进行擦除,此速度旨在保持目前写入位置上直接被擦除的扇区的位置的一个大约不变的数目。因此,在当擦除指示字和写入指示字中规定的扇区数间的差落在某阈值以下时则进行一个擦除操作。在一个擦除字块擦除之前,在那个擦除字块内含有有效数据的扇区必须被再定位。此有效数据的再定位是将含有效数据的扇区读到一个再定位缓冲器(下文称为一个传送缓冲器)中来完成,并将它们写回写入指示字所指的位置。逻辑至物理地址的翻译表改为指示扇区的新的物理扇区地址。由于用此方法只有有效扇区被再定位和数据失效的扇区被自动擦除,则可提供储存数据的自动压缩。
以此算法建立的过程可看作等价于通过整个FLASH存储器空间的被擦除存储器循环的一个小的邻接区域。从而移去在其上限遇见的分段扇区并在其下限对其压缩和再定位。
将理解,在本发明范围内可以对上述实施例作出各种修改。例如,在另一个装置中,按其他方向移动的被擦除存储器单元的邻接区域即,如果紧接低于下限的下限被移去的分段扇区和有效数据被写入紧接低于上限的位置。
权利要求
1.一个存储器设备包含多个存储装置,每一个装置有一个预定的物理地址,翻译装置是用于将一个逻辑地址翻译至所说的预定物理地址的唯一地址,所说的存储装置是由字决中可擦除的非易失性存储器单元组成;其特征在于所说的存储器包括存储第一个指示字以指示空闲存储装置的装置和存储第二个指示字以向包含所说的未被写入存储器位置的可擦除字块指示一预定序列中的下一个未擦除但可擦除字块的装置;控制装置,以保证在由一第一指示字指出的存储装置和由第二指示字指出的存储装置之间至少总有一个空闲的可擦除的字块。
2.按权利要求1的固态存储器,其特征在于,存储器中未写位置是存储器中的最低未写位置。
3.按权利要求1的固态存储器,其特征在于,存储器中的未写位置是存储器中的最高未写位置。
4.按权利要求1或2的固态存储器,其特征在于,与含有所说的未写存储器位置的可擦除字块相邻的下一个未擦除但可擦除字块是在第一指示字上面有最低物理地址的未擦除但可擦除字块。
5.按权利要求1至3的固态存储器,其特征在于,与含有所说的未写存储器位置的可擦除字块相邻的下一个未擦除但可擦除字块是在第一指示字下面的最高物理地址的未擦除但可擦除字块。
6.按任何前述权利要求的固态存储器,其特征在于,与含有所说的未写存储器位置的可擦除字块相邻的下一个未擦除但可擦除字块由一个合适的算法决定。
7.按任何前述权利要求的固态存储器,其特征在于,使用一个缓冲器来增加向存储器写入数据的速度。
8.按权利要求7的固态存储器,其特征在于所说的缓冲器是一个SRAM缓冲器。
9.按权利要求7的固态存储器,其特征在于所说的缓冲器是一个DRAM缓冲器。
10.按任何前述权利要求的固态存储器,其特征在于,所说的存储器是FLASH EPROM。
11.按任何前述权利要求的固态存储器,其特征在于,所说的存储器由硫族化合物单元构成。
12.按任何前述权利要求的固态存储器,其特征在于,所说的存储器是一个铁—光存储器。
13.按任何前述权利要求的固态存储器,其特征在于,所说的控制范围是由一个微处理器,一个微控制器或一个状态机器提供。
全文摘要
一个模拟磁盘驱动的固态存储器包括:将逻辑区段地址译至主存储地址的译码设备;由部件中可控除非易失性存储器组成的主存储器;其特征在于,第一指示字用于指示主存储器中的未写区域,第二指示字用于指示紧接着含有所说的未写存储区的可擦除字块的下一个未擦除但可擦除字块;提供的控制装置可保证至少总有一个可擦除数字块处于第一和第二指示字间的擦除状态。
文档编号G11C16/02GK1198226SQ96197240
公开日1998年11月4日 申请日期1996年2月6日 优先权日1995年9月27日
发明者A·W·辛克莱尔 申请人:记忆体公共有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1