存储器件、存储控制方法以及程序的制作方法

文档序号:6774804阅读:149来源:国知局
专利名称:存储器件、存储控制方法以及程序的制作方法
技术领域
本发明涉及存储数据的存储器件。更具体地,本发明涉及在例如快闪存储器等存储介质上存储数据的存储器件。
现有技术在用于处理音乐数据或视频数据的便携装置的存储器件中,都用像快闪存储器这样的存储介质的原因如下1)可以重写数据,2)存储介质是完全便携的,3)不需要电池等保持数据。
但是,目前在使用中快闪存储器存在的问题是当重写数据时需要等待时间。其原因是写传送到快闪存储器上的缓冲器的数据将要比要写入的数据传送到存储器件中的缓冲器所需的时间长得多。
在公开了具有多个快闪存储器的存储器件的待审日本专利申请No.2000-132982中对解决该问题进行了尝试。由于数据可以并行地写入到多个快闪存储器中,该存储器件不存在等待时间问题。
通常,在快闪存储器中用作写入数据的标准的单位或量称作区段(sector),而在快闪存储器中擦除数据(在后面介绍)的单位叫做块。即,如图9(a)所示,快闪存储器中的数据按块(block)管理,每块由32个区段组成(应当理解区段的数据长度为512字节,而块的数据长度为16千字节)。
快闪存储器的特征是只能进行单向数据重写。换句话说,不能将数据的值从1重写为0(或从0改为1)。因此,在写入数据之前,必须将要写入位置处所有的数据值转换为1(或0)。(下文中,该转换成为“擦除”。完成擦除的区称作“擦除区”,而未完成擦除的区称作“未擦除区”。)在这种情况下,当要重写图9(b)中所示的块A中的数据0-15时,如图9(c)所示,首先从快闪存储器F1中读出不需要重写的数据16-31,放入缓冲器B。然后,在缓冲器B中的读出的数据16-31重写到另一个快闪存储器F2的擦除区E中,然后擦除块A的数据区。
这一系列步骤(即,为了使不需要重写的数据16到31在重写中不受重写影响所采取的步骤)称作数据腾出(evacuation),这是降低快闪存储器的数据写入速度的主要原因。在如图9(d)所示的重写之后,数据0到15从外部传送到存储器件中。关于该步骤,不再给出详细介绍。
在待审日本专利申请No.2000-132982中公开的存储器件中,数据可以并行写入到多个快闪存储器中,并且不会出现等待时间问题。但是,问题是如果数据并行写入到多个快闪存储器中,在重写中腾出的频率增加了。
即,如果某个音乐数据M1要写入到快闪存储器中,将在快闪存储器F1到F4的最后块(后面说明)B1到B4中出现空白区,如

图10所示,除非数据大小是(快闪存储器的一块的大小)x(快闪存储器的数量)的整数倍。然后,如果另一个音乐数据M2写入到快闪存储器F1到F4,则音乐数据M2将写入到从最后一个块B1到B4开始的空白区中,结果,不同的音乐数据M1、M2存在于同一块中。然后,如果需要擦除所有的音乐数据M1,则需要腾出写在最后一个块B1到B4中的音乐数据M2。
注意,上面所述的最后一个块是要写入的数据最后写入的块。即,如图6所示,当数据写入到m片快闪存储器中时,在点划线的左侧所示的阴影块中没有出现空白区,但在点划线右侧的阴影块中有出现空白区的可能性。可能出现空白区的块是数据最后写入的块,由此,这些块被称作“最后的块”。
发明概述本发明是考虑到上述情况作出的,本发明的目的是降低在数据并行写入多个快闪存储器中的存储器件中重写所需的腾出频率。
为了实现上述目的,本发明采用了如下方法。即,本发明基于图1所示的存储器件,该存储器件在完成擦除的存储区中写入数据,并且并行写入数据(数据的写入请求来自外部)到多个存储介质21、22、23、24上,在这些存储介质上,数据逐块整体擦除,每一块由多个存储区构成。
从外部请求写入的所有数据的大小用q表示,存储介质的数量用m表示,块的大小用p表示,地址管理单元42首先将从外部请求写入的所有数据的大小q除以块的大小p,得到商zm+w+y(z0≤z(整数);w0≤w<m(整数);y0≤y<1)。然后,地址管理单元42控制数据传送,将zm块数据并行写入到m片存储介质中,随后将(q-zm)数据写入到w+1(在y=0的情况下为w)片存储介质中。
例如,地址管理单元42控制数据传送,将(q-zm)块数据并行写入到w+1片存储介质中,如图8(a)所示。与现有技术相比,这减少了出现空白区的块的数量。不用说,这降低了在重写中需要腾出的频率。
当然,如图8(b)所示,可以这样控制数据传送,使得当写入(q-zm)块数据时,在w+1片存储介质上并行进行在一片存储介质上写入y块数据的处理,之后,在w片存储介质上并行进行在一片存储介质上写入(1-y)块数据的处理。这样,产生腾空的块数最多为一,因此,进一步降低了在重写中需要腾出的频率。
或者,可以这样控制数据传送,将(q-zm)块数据分配到w+1片存储介质上,并如图8(c)所示以特定顺序写入到各存储介质上。该控制方法在存储区(即被请求的写入目标)所属的块中存在“不需要重写的数据”时特别有效。即,在这种情况下,地址管理单元42这样控制数据传送将不需要重写的数据以及请求写入的数据的总和视为(q-zm)块数据。
附图简要说明图1是实施本发明的存储器件的方框图。
图2是第一数据写入控制方法的说明图。
图3是进行第一数据写入控制时的块控制表。
图4是第二数据写入控制方法的说明图。
图5是进行第二数据写入控制时的块管理表。
图6是判断数据写入控制方法的技术的说明图。
图7是数据重写图。
图8是重写(q-zm)块数据时的图。
图9是重写时块、区段和空白的说明图。
图10是存在其它数据的块的说明图。
优选实施例介绍图1是实施本发明的存储器件的方框图,下面将介绍其结构。在下面的介绍中,预先假定区段的数据长度为512字节,块的数据长度为16千字节。
首先,收到来自外部的写入、读出或擦除数据等请求后,输入和输出控制单元41将用于启动所请求的处理的指令发给地址管理单元42,并如下控制数据的输入和输出。
即,收到写入数据请求后,输入和输出控制单元41将自外部输入的数据以512字节为单位一个接一个地写入到多个缓冲器31、32、33、34中。另一方面,接收到读出数据请求后,输入和输出控制单元41以512字节为单位从多个缓冲器31、32、33、34中读出数据,并以512字节为单位依次输出到外部。
根据来自输入和输出控制单元41的处理启动指令,地址管理单元42控制多个快闪存储器21、22、23、24与多个缓冲器31、32、33、34之间的数据传送,控制多个快闪存储器21、22、23、24中的数据擦除,并管理写在多个快闪存储器21、22、23、24中的数据(将在后面详细介绍)。
此外,根据来自地址管理单元42的连接转换信号,选择器43切换多个快闪存储器21、22、23、24与多个缓冲器31、32、33、34之间的数据总线的连接。
地址管理单元42有两种方法控制数据的写入。一种控制方法是在收到的数据写入请求要在还没有写入数据的逻辑地址区写入数据时使用(下文中称作“第一数据写入控制方法”),另一种控制方法是在收到的数据写入请求要在已经写入数据的逻辑地址区写入数据时使用(下文中称作“第二数据写入控制方法”)。
下面详细介绍这些数据写入控制方法。首先,收到在没有写入数据的逻辑地址区中写入数据的请求后,在现有技术中,数据并行写入到4个快闪存储器21、22、23、24中。但是,在本发明中,控制如图2(a)到(c)所示的在快闪存储器21、22、23、24的各最后块中写入数据的方法根据要写入的数据大小而有所不同。
例如,在要写入的数据的大小为64k字节的情况下,即使数据并行写入到4个快闪存储器21、22、23、24中,任何一个最后块B21、B22、B23、B24中都不会有空白区。这是由于64k字节的数据相当于4个块,并与最后块B21、B22、B23、B24的总和相等。
因此,在这种情况下,地址管理单元42这样控制数据传送,数据0到127将并行写入到最后块B21、B22、B23、B24中,如图2(a)所示(下文中这种写入方式称作“4块写入”)。
在要写入的数据的大小为32k字节的情况下,如果该数据写入到4个快闪存储器21、22、23、24中,各最后块B21、B22、B23、B24中的1/2区域将是空白。这是由于32k字节的数据相当于两个块,并等于最后块B21、B22、B23、B24的总和的1/2。
因此,在这种情况下,地址管理单元42这样控制数据传送,使数据0到63只写入到两个最后块B21、B22中。即,为了防止块出现空白区,地址管理单元42这样控制数据传送,在写入最后块B21、B22、B23、B24时,并行度从4变为2(下文中这种写入方式称作“两块写入”)。
这里,如果要写入的数据的大小为24k字节,则即使并行度限制为与数据大小为32k字节的情况一样也不能防止最后块中出现空白区。这是由于24k字节数据相当于1.5个块,并且不是块的整数倍。
因此,在这种情况下,地址管理单元42这样控制数据传送,如图2(c)所示,只有最后一个块出现空白区(见块B22),而且尽可能使数据0到47并行写入。
换句话说,在一块的数据0到31并行写入到两个最后块B21、B22之后,剩下的0.5块零碎数据32到47单独写入到最后块B21中(下文中这种写入方式称作“1.5块写入”)。这里所用的术语“单独写入”意思是以并行度1并行写入。
如上所述,地址管理单元42根据要写入的数据的大小选择一种控制方法。下面介绍选择技术。
首先,设请求写入的所有数据的大小为q、快闪存储器的数量为m、块的大小为p,所有数据的大小q除以块的大小p,得到商zm+w+y(z0≤z(整数);w0≤w(整数)<m;y0≤y<1)。
在公式中,zm是并行度为m的块的数量,而公式w+y表示并行度没有达到m的块的数量。即,参考图6,在点划线的左侧所示的阴影块的数量对应于zm,而在点划线右侧的阴影块的数量对应于w+y(w对应于块B1,y对应于块B2)。
因此,地址管理单元42控制数据传送,使zm块数据并行写入到m片快闪存储器中,之后,将(q-zm)块数据写入到w+1(在y=0的情况下为w)片快闪存储器中。但是,当写入(q-zm)块数据时,在w+1片快闪存储器上并行进行在一片快闪存储器中写入y块数据的处理,之后,在w片快闪存储器上并行进行在一片快闪存储器中写入(1-y)块数据的处理。
作为选择技术的具体例子,将说明一个块为16k字节,在4片快闪存储器中写入152k字节数据(p=16,m=4,q=152)的控制过程。
首先,因为q÷p=zm+w+y为152÷16=2×4+1+0.5,得到z为2;w为1;y为0.5。
因此,在4片快闪存储器中并行写入两块数据,之后,在2片快闪存储器中写入1.5块数据。但是,当写入1.5块数据时,在两片快闪存储器中进行在一片快闪存储器中写入0.5块数据的处理,之后,在一片快闪存储器中进行在一片快闪存储器中写入(1-0.5)块数据的处理。即,参考图6,0.5块数据分别写入到块B1和块B2中,之后,0.5块数据仅单独写入到块B1中。
上面已经介绍了请求写入的全部数据的大小p为152k字节,块的大小q为16k字节。大小p和大小q的单位并不限于字节。例如,即使请求写入的全部数据的大小q为304个区段,块的大小p为32个区段,也能得到相同的结果。
如上所述,根据本发明,具有空白区的块的数量最多为一个。这降低了在重写中腾出的频率。总体上,能够改进快闪存储器中写入的性能。
但是根据本发明,并行度有时是有限的,这降低了写入速度。然而,并行度只在最后块受限,并且在最后块中写入时也是尽可能并行进行。因此,即使如上所述并行度受到限制,其对写入速度的影响也是非常小的。
在以上介绍中,说明了在快闪存储器中以快闪存储器21→22→23→24→21→…的顺序并行写入的过程,但是本发明并不限于此。即,各快闪存储器的硬件性能是有差别的,每个写入所需的时间也是不同的。因此,希望这样控制数据传送,数据在这些快闪存储器准备好写入时相继写入到快闪存储器中,而不是如上所述的并行写入。
在以上介绍中,“准备好写入”的意思如下如果特定的数据正在写入到特定块的特定区段中,则禁止向该特定块的该特定区段中写入下一个新的数据。在完成到该特定区段的该特定数据的写入之后,对该特定区段的该写入才生效。因此,“准备好写入”的意思是完成前一个数据的写入之后的状态。
如图2(b)、(c)所示,如果要写入的数据的大小为32k字节或24k字节,则有一段时间并行度限制为2,即,有一段时间在两个快闪存储器21、22中并行写入。因此,如果在剩余的快闪存储器23、24中存在未擦除区,则希望与写快闪存储器21、22一起擦除该区。
此外,在以上介绍中,当写入(q-zm)块数据时,在w+1片快闪存储器上并行进行在一片快闪存储器中写入y块数据的处理,之后,在w片快闪存储器上并行进行在一片快闪存储器中写入(1-y)块数据的处理。但是,本发明并不限于此。即,如图8(a)所示,(q-zm)块数据可以并行写入到w+1片快闪存储器中。
但是,在这种情况下,存在具有空白区的块的数量为2或更多的可能。然而,不用说,该数量小于现有技术中的有m个空白区的情况。
同时,为了读出或重写如上所述并行写入的数据,地址管理单元42必须控制和管理在快闪存储器21、22、23、24中写入数据的状态。即,安排地址管理单元42,使之生成一个块管理表(参看图3),该表对于从外部请求访问的每一个逻辑地址块提供如下字段。
并行度字段表示有多少快闪存储器数据并行写入。即,在如上所述有4块写入的逻辑地址块的并行度字段中,并行度为“4”,如图3(a)所示。同时,在两块写入和1.5块写入的逻辑地址块的并行度字段中为“2”,如图3(b)、(c)所示。在没有块写入的逻辑地址块的并行度字段中为“0”。
“非并行区段的数量“字段的意思是在逻辑地址块中含有的32个区段中,没有进行并行写入的区段的数量。即,在四块写入和两块写入情况下的“非并行区段的数量”字段中为“0”,如图3(a)、(b)所示。同时,在1.5块写入的情况下的非并行区段的数量字段中为为“16”,如图3(c)所示。
接下来,快闪存储器标识字段表示地址块所在的快闪存储器。例如,存在于快闪存储器21中的逻辑地址块的快闪存储器标识字段中为“0”,存在于快闪存储器22中的逻辑地址块的快闪存储器标识字段中为“1”。存在于快闪存储器23中的逻辑地址块的快闪存储器标识字段中为“2”,存在于快闪存储器24中的逻辑地址块的快闪存储器标识字段中为“3”。
接着,物理地址字段表示对应于逻辑地址块的物理地址。不用说,在该字段中的物理地址为快闪存储器标识字段指示的快闪存储器中的物理地址。
然后,区段行控制字段表示区段的并行写入顺序。例如,如果并行写入以快闪存储器21→22→23→24→21→…的顺序进行,则“0”为对应于逻辑地址a的区段行控制信息,“1”为对应于逻辑地址a+1的区段行控制信息,“2”为对应于逻辑地址a+2的区段行控制信息,“3”为对应于逻辑地址a+3排的区段行控制信息,它们如图3(a)所示排列。同时,要写入到快闪存储器中的数据通常为一系列图像数据或音乐数据(一个图像电影或一个音乐文件)。即使当写入到快闪存储器中的数据被擦除时,存在一系列图像数据或音乐数据(即,连续写入的数据)被整体(by the lump)擦除的可能性。因此,在第一数据写入控制中,数据原则上尽可能并行地写入,从而不降低写入的速度。
但是,与用第一数据写入控制方法尽可能并行写入相比,如果从总体上看,在某些情况下在快闪存储器中单独写入有时能提高写入数据的性能。
例如,在编辑快闪存储器中写入的音乐数据的工作中,需要重写一部分连续写入的数据。在这种情况下,要重写的数据最好写入到一个块中,如图7(b)中的阴影区所示,而不是写入到多个块中,如阴影区所示。这是因为在图7(a)所示(现有技术)的情况下,在重写中必须腾出四块,而在图7(b)所示的情况下,在重写中只需要腾出一块。
由于该原因,如果用第一数据写入控制方法在多个快闪存储器中并行写入连续数据之后,必须重写该连续数据的一部分,则最好采用以下控制方法。
收到写入数据的请求时,地址管理单元42访问块控制表的内容,并判断写入数据的请求是否是请求重写连续数据的一部分(下文中称作“请求重写数据”)或请求写入新的连续数据(下文中称作“请求写入新数据”)。换句话说,在请求在已经写入数据的逻辑地址区中写入数据的情况下,该写入数据的请求被判断为请求写入数据,在请求在还没有写入数据的逻辑地址区中写入数据的情况下,该写入数据的请求被判断为请求写入新数据。
判断写入数据的请求为请求写入新数据后,地址管理单元42采用第一数据写入控制方法。另一方面,判断写入数据的请求为请求重写数据的地址管理单元42还判断在要写入的数据所属的块中是否有不需要重写的数据。
例如,如图4所示,当用1.5块写入方法在快闪存储器21、22中写入数据0到47并且有重写数据32到47的请求时,在数据32到47所属的块中数据0到31(除了奇数)不需要重写。因此,在这种情况下,地址管理单元42判断有不需要重写的数据,并进行如下控制。
首先,地址管理单元42将1.5块数据作为(q-zm)块数据,1.5块数据为不需要重写的数据0-31(32片区段数据)与请求写入的数据32到47(16片区段数据)的总和。这里,不用说,w为1,y为0.5。
地址管理单元42控制数据传送,从而当(q-zm)块数据分配给w+1片快闪存储器23、24时,以特定的顺序(在这种情况下为23→24)写入各快闪存储器23、24中。即,这样控制数据传送,使得,首先将并行写入到两个块中的数据0-31读出到缓冲器中,然后单独重写到快闪存储器23的擦除区中,然后,数据32到47单独写到快闪存储器24的擦除区中。注意,数据32到47从外部通过输入输出控制单元41、缓冲器34提交给地址管理单元42。
根据上述的第二数据写入控制,在快闪存储器23、24的块中,数据尽可能连续排列。在该方案下,如果需要重写数据0到31或数据32到47,不会在重写时进行腾出。
上面已经说明了如果地址管理单元42判断“存在不需要重写的数据”的操作。即,没有提及当地址管理单元42判断“没有数据不需要重写”的操作。在这种判断中,方案如此设计地址管理单元42采用第一数据写入控制方法。
这是由于“没有数据不需要重写”的意思是所有的数据都要重写。例如,在1.5块区中写入两块数据的请求意味着以前的1.5块数据不需要了。因此,认为该数据写入请求为新写入连续数据的请求是合理的。
最后,在图5中示出了第二数据写入控制的一个例子如何改变块控制表中的内容。字段和设置信息的方案与第一数据写入控制的相同,不再介绍。
权利要求
1.一种存储器件,其中在完成擦除的存储区中写入数据,从外部请求写入的数据被并行写入其中的数据被逐块整体擦除的多个存储介质,每一块由多个存储区构成,所述器件包括;地址管理单元,它这样控制数据传送令从外部请求写入的所有数据的大小为q,所述存储介质的数量为m,所述块的大小为p,大小q除以块的大小p,得到商zm+w+y(z0≤z(整数);w0≤w(整数)<m;y0≤y<1),将zm块数据并行写入到存储介质中,之后,将(q-zm)块数据写入到w+1(在y=0的情况下为w)片存储介质中。
2.根据权利要求1的存储器件,其中所述地址管理单元这样控制数据传送,使所述(q-zm)块数据并行写入到w+1片存储介质中。
3.根据权利要求1的存储器件,其中所述地址管理单元这样控制数据传送当写入所述(q-zm)块数据时,在w+1片存储介质上并行进行在一片存储介质中写入y块数据的处理,之后,在w片存储介质上并行进行在一片存储介质中写入(1-y)块数据的处理。
4.根据权利要求1的存储器件,其中所述地址管理控制这样控制数据传送所述(q-zm)块数据分配给w+1片存储介质,并以指定给各存储介质的特定的顺序写入。
5.根据权利要求4的存储器件,其中当在作为写入目标的存储区所属的块中存在不需要重写的数据时,所述地址管理单元这样控制数据传送将不需要重写的数据与请求写入的数据的总和作为所述(q-zm)块数据。
6.根据权利要求1的存储器件,其中所述地址管理单元这样控制数据传送当所述存储介质准备好写入时,数据依次写入到存储介质中。
7.根据权利要求1的存储器件,其中当在不是写入目标的存储介质上存在没有擦除的块时,所述地址管理单元从块中擦除数据并同时写入数据。
8.根据权利要求1的存储器件,其中所述地址管理单元具有管理表,其中可以设置关于从外部请求访问的逻辑地址的信息,所述信息为以下信息种类中的至少一种指定存储介质的存储介质标识信息、表示数据写入的存储介质的物理地址的物理地址信息、表示数据是否并行写入到多个存储介质中的并行度信息、表示数据不是并行写入的存储区的数量的非并行存储区信息以及表示由存储区到存储区的并行写入顺序的存储区行管理信息。
9.一种存储控制方法,其中数据写入到已经完成擦除的存储区中,从外部请求写入的数据被并行写入到其中的数据逐块整体擦除的多个存储区中,每一块由多个存储区构成,所述存储控制方法这样控制数据传送令从外部请求写入的所有数据的大小为q,所述存储介质的数量为m,所述块的大小为p时,从外部请求写入的所有数据的大小q除以块的大小p,得到商zm+w+y(z0≤z(整数);w0≤w(整数)<m;y0≤y<1),zm块数据并行写入到存储介质中,之后,将(q-zm)块数据写入到w+1(在y=0的情况下为w)片存储介质中。
10.一种使存储器件执行地址管理控制处理的程序,所述存储器件中,数据写入到已经完成擦除的存储区中,从外部请求写入的数据并行写入到其中的数据逐块整体擦除的多个存储介质中,每一块由多个存储区构成,并且其中,令从外部请求写入的所有数据的大小为q,所述存储介质的数量为m,所述块的大小为p时,从外部请求写入的所有数据的大小q除以块的大小p,得到商zm+w+y(z0≤z(整数);w0≤w(整数)<m;y0≤y<1),zm块数据并行写入到存储介质中,之后,将(q-zm)块数据写入到w+1(在y=0的情况下为w)片存储介质中。
11.根据权利要求10的程序,这样控制数据传送所述(q-zm)块数据并行写入到w+1片存储介质中。
12.根据权利要求10的程序,这样控制数据传送当写入所述(q-zm)块数据时,在w+1片存储介质上进行在一片存储介质中写入y块数据的处理,之后,在w片存储介质上并行进行在一片存储介质中写入(1-y)块数据的处理。
13.根据权利要求10的程序,这样控制数据传送所述(q-zm)块数据分配给w+1片存储介质并且数据以特定的顺序写入。
14.根据权利要求13的程序,这样控制数据传送,当作为被请求的写入目标的存储区所属的块中存在不需要重写的数据时,不需要写入的数据与请求写入的数据的总和作为所述(q-zm)块数据。
全文摘要
一种存储器件,其中在擦除步骤中腾出已有数据的频率降低了。令从外部请求写入的所有数据的大小为q,存储介质的数量为m,块的大小为p,所有数据q除以块的大小p,得到商zm+w+y(z0≤z(整数);w0≤w(整数)<m;y0≤y<1)。并且zm块数据并行写入到m片存储介质中,之后,将(q-zm)块数据写入到w+1(在y=0的情况下为w)片存储介质中。由此,降低了擦除过程中的腾出频率。
文档编号G11C8/12GK1471670SQ01817898
公开日2004年1月28日 申请日期2001年10月26日 优先权日2000年10月26日
发明者大竹俊彦, 关部勉 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1