CN100511181C - 非易失性存储装置及其写入方法 - Google Patents
非易失性存储装置及其写入方法 Download PDFInfo
- Publication number
- CN100511181C CN100511181C CNB2004800248336A CN200480024833A CN100511181C CN 100511181 C CN100511181 C CN 100511181C CN B2004800248336 A CNB2004800248336 A CN B2004800248336A CN 200480024833 A CN200480024833 A CN 200480024833A CN 100511181 C CN100511181 C CN 100511181C
- Authority
- CN
- China
- Prior art keywords
- address
- logical
- block
- physical block
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Credit Cards Or The Like (AREA)
Abstract
本发明提供一种非易失性存储装置及其写入方法,能够消除如下缺点,即伴随半导体存储卡的大容量化,因外部的数据管理大小与半导体存储卡内部的数据管理大小不同,在写入时花费的时间长。不管非易失性存储装置内的物理块大小如何,都使用对应于外部管理大小的部分物理块。通过按部分物理块单位写入数据、按物理块单位来确保删除块,可实现写入的高速化。
Description
技术领域
本发明涉及一种具有可改写的非易失性存储器的非易失性存储装置及其写入方法。
背景技术
具有可改写的非易失性存储器的半导体存储器作为存储卡需求扩大。作为该存储卡主要使用的非易失性存储器的NAND型闪速存储器,以16KB为删除单位。因此,使用存储卡的外部主机设备使用16KB大小作为写入的管理单位。
然而,近年来由于存储卡容量的增加,内置的NAND型闪速存储器容量也增加,与之相伴,提议删除单位为128KB的NAND型闪速存储器。可是,由于对来自使用存储卡的外部主机设备的16KB单位的写入,由存储卡内部的控制器处理成作为NAND型闪速存储器的删除单位的128KB单位,所以存在从主机设备看相对地花费写入16KB单位所需的时间的缺点。
下面,更具体地说明现有的半导体存储卡。图1是表示现有的存储卡100的图,设置控制器101和作为非易失性存储器的闪速存储器FM0~FM3。各闪速存储器FM0~FM3分别具有例如128MB的容量,构成有效数据区域,作为500MB的存储卡。另外,如图1所示,控制器101由如下构成:CPU111;具有2KB容量的暂时保存缓冲器112;具有512B容量的数据传送缓冲器;以12位为1个字(word)、具有4K个字即6KB容量的地址转换表114;及以1位为1个字、具有4K个字即全部512B容量的登记表115。
并且,如图1所示,闪速存储器FM0~FM3分别具有128MB的容量。如图2(a)所示,各闪速存储器FM0~FM3分别具有128MB的容量,由1024个物理块(PB0~PB1023)构成。由此,存储卡100的非易失性存储器的整个容量为512MB。其中,主机设备102可用作数据区域的容量为500MB。
图2(b)示出闪速存储器内的1个物理块PBi(i=0~1023)的结构。物理块由物理页PP0~PP63共64个物理页构成。各物理页如图3所示,由具有2KB容量的数据区域、和具有64B容量的管理区域构成。
并且,从外部的主机设备102看,该存储卡100具有500MB存储容量,根据图4所示的逻辑映射来分配逻辑地址。即将500MB的数据区域分割成从逻辑块LB0至逻辑块LB3999的4000个逻辑块(LB),各逻辑块具有128KB的容量。该逻辑块地址与主机设备指定的地址相对应。
图1示出的地址转换表114在提供表示逻辑组的逻辑地址时,指定闪速存储器和其中的物理块。其中,最先的2位是表示闪速存储器FM0至FM3中任一个的位,接着的10位是表示该闪速存储器内的哪个物理块的位。另外,登记表115是由对应于4096个物理块的、1位结构的标记构成的表。如果已删除,则该标记为1;在已写入时为0。
下面,使用图5的数据读出概略图说明数据的读出处理。设来自主机设备102的逻辑地址(LA)中,128KB单位的地址为逻辑块地址(LBA),不满128KB的地址为逻辑页地址(LPA)。以逻辑块地址为基准,从地址转换表114指定物理块PB,设该物理块为读出源物理块。而且,读出读出源物理块的逻辑页地址的数据,经数据传送缓冲器113传送到主机设备102。然后,检查读出是否结束,如果未结束,则检查逻辑页地址在块内是否为最终。如果不是最终,则增加逻辑页地址,重复同样的处理。如果逻辑页地址在块内为最终,则设逻辑页地址为0,增加逻辑块地址,重复同样的处理。这样,可从指定的逻辑地址中读出数据。
下面,使用图6的流程图说明写入处理。在写入数据时,首先在步骤S301中设来自主机设备102的逻辑地址LA中、128KB单位的地址为逻辑块地址(LBA),将不满128KB的地址分成逻辑页地址(LPA)。接着在步骤S302中检索登记表,得到已删除的物理块,设为写入目标物理块(PB)。然后,将登记表115中的该位更新成已写入「0」。接着前进到步骤S303,检查逻辑页地址LPA是否为0,如果不为0,则执行后述的前半部分的嵌入处理(步骤S304)。如果逻辑页地址为0,则不进行该处理,前进到步骤S305。然后,在步骤S305中,将来自主机设备102的写入数据经页缓冲器传送到闪速存储器,写入到写入目标物理块的逻辑页地址中。这时,在管理区域中同时写入用于写入的管理信息。然后,在步骤S306中,检查写入是否结束,如果未结束,则在步骤S307中检查逻辑页地址(LPA)是否是块内的最终。如果不是最终,则在步骤S308中增加逻辑地址LPA,返回到步骤S305。如果逻辑页地址是最终块,则在步骤S309中进行删除和表更新,在步骤S310中设逻辑页地址LPA为0,增加逻辑块地址LBA,返回到步骤S302。另外,如果在步骤S306中写入结束,则在步骤S311中检查逻辑页地址在块内是否是最终。如果不是最终,则在步骤S312中执行后半部分的嵌入处理。如果在块内是最终,则不进行该处理,前进到步骤S313,进行删除和数据更新,结束处理。
这样,根据现有的非易失性存储装置的数据写入方法,如图7所示,读出源物理块120有128KB,其中,即便在写入主机设备管理的16KB的新数据122时,写入目标物理块121也以128KB单位进行写入。就读出源物理块120中未写入物理块的前半部分区域120-1而言,通过前半部分嵌入处理复制到闪速存储器的写入目标物理块121-1中。同样地,就后半部分区域120-2而言,通过后半部分的嵌入处理,复制写入页地址以后的逻辑页地址到写入目标物理块121-2中。因而,根据现有的数据写入处理,如图7所示,即便由外部的主机设备管理的数据处理单位为16KB,也以写入目标的物理块单位进行写入。
这样,根据现有的非易失性存储装置的数据写入方法,存在如下缺点:即在写入比闪速存储器的删除大小小的数据时,由于在闪速存储器的内部写入与闪速存储器的删除大小相等的数据,所以写入速度降低。
发明内容
本发明鉴于这样的现有问题作出,其目的在于在减小写入单位、可在高速下进行写入的同时,通过集中写入的数据,确保已删除的块,对确保的已删除的区域容易进行下一次写入。
为了实现该课题,本发明是一种非易失性存储装置,具有非易失性存储和控制器,根据从外部提供的逻辑地址,向所述非易失性存储器中写入数据及读出,其特征在于:所述非易失性存储器由多个物理块构成,所述各物理块由以1个或多个物理页构成的部分物理块组成,所述物理页由写入所述数据的数据区域及写入管理信息的管理区域组成,并从外部提供包含一系列逻辑组地址、属于各逻辑组的一系列逻辑块地址和属于各逻辑块的一系列页地址,所述控制器具有:地址转换表,该表具有将从外部提供的逻辑地址中逻辑组地址转换成记录该逻辑组所属的逻辑块的物理块地址的地址转换区域;及在多个物理块中重复记录某逻辑组的数据时,表示重复记录的物理块地址的重复地址登录区域;和对各物理块表示已写入及已删除之一的登记表,在从外部提供写入用的数据和其逻辑地址时,在未写入的区域中按对应于所述逻辑块地址的部分物理块的单位同时写入该数据和表示至少写入了包含在相同逻辑组中的数据的部分物理块地址的该管理信息,并且在所述地址转换表的地址转换区域中,对该逻辑块所属的逻辑组登录其写入目标物理块地址,如果在该地址转换区域中已经登录其他的物理块地址,则在重复地址登录区域中登录该物理块地址,构成所述非易失性存储器的物理块的部分物理块的数据容量与所述非易失性存储装置的外部数据管理单位相等。
根据具有这样特征的本发明,设数据写入时的写入单位与主机设备使用的数据写入单位相同,此外,即便在存储卡内的非易失性存储器的删除单位因大容量化而扩大时,从外部主机设备来看也可在短时间内进行数据的写入。另外,即便在写入区域中的一部分被使用时,也可得到通过进行已删除块的确保处理来形成可写入区域的效果。
附图说明
图1是现有的非易失性存储器的结构图。
图2是表示现有的闪速存储器、及其物理块的结构图。
图3是表示写入现有的物理块的逻辑页的结构图。
图4是表示现有的逻辑块的结构图。
图5是表示现有的非易失性存储器数据读出时的动作的示意图。
图6是表示现有的非易失性存储装置的数据写入处理的流程图。
图7是表示现有的数据写入时的动作的示意图。
图8是表示本发明实施方式1的非易失性存储装置的整体结构框图。
图9是表示实施方式1的闪速存储器和其物理块的结构图。
图10是表示实施方式1的逻辑组的结构图。
图11是表示实施方式1的地址转换表的结构图。
图12是表示实施方式1的物理页内的逻辑页的结构图。
图13是表示实施方式1的表初始化处理的流程图。
图14是表示实施方式1的地址转换表的登录处理的流程图。
图15是表示实施方式1的地址转换表的修正处理的流程图。
图16是表示实施方式1的数据读出处理的流程图。
图17是表示实施方式1的数据读出处理的动作的示意图。
图18是表示实施方式1的数据写入处理(之1)的流程图。
图19是表示实施方式1的数据写入处理(之2)的流程图。
图20是表示实施方式1的重复地址登录处理的流程图。
图21是表示实施方式1的删除块确保处理的流程图。
图22是表示实施方式1的删除块确保处理前的第1例的图。
图23是表示实施方式1的第1例的删除块确保处理后的状态图。
图24是表示实施方式1的删除块确保处理前的第2例的图。
图25是表示实施方式1的第2例的删除块确保处理后的状态图。
图26是表示实施方式1的前半部分嵌入处理的流程图。
图27是表示实施方式1的后半部分嵌入处理的流程图。
图28是表示实施方式1的删除和数据更新处理的流程图。
图29是表示实施方式1的数据写入处理的动作的示意图。
图30是表示本发明实施方式2的逻辑组的结构图。
具体实施方式
(实施方式1)
图8是本发明实施方式1的存储卡的结构框图。如图所示,存储卡1由控制器2及非易失性存储器,例如具有128MB容量的闪速存储器FM0~FM3构成。控制器2包括:CPU11;具有2KB容量的暂时保存缓冲器12;具有512B容量的数据传送缓冲器13;以15位为1个字、具有4K个字、即7.5KB容量的地址转换表14;和以1位为1个字、具有4K个字、即512B容量的登记表15。
而且,闪速存储器FM0~FM3如图8所示,分别具有128MB的容量。各闪速存储器FM0~FM3如图9(a)所示,由各自具有128KB容量的1024个物理块(PB0~PB1023)构成。由此,存储卡1的非易失性存储器的整个数据容量为512MB,其中可从外部用作数据区域的容量为500MB。
图9(b)表示闪速存储器内的1个物理块PBi(i=0~1023)。这里,物理块由64个物理页PP0~PP63构成。而且,设其中的各8页、即与主机设备的管理大小相等的16KB为部分物理块PPB。例如设PP0~PP7为部分物理块PPB0。即物理块PBi分别由8个部分物理块构成。这里,部分物理块PPB具有与后述的逻辑块相同的大小,是写入逻辑块的数据的区域。另外,物理页为数据的写入单位。
从外部的主机设备3看,该存储卡1具有500MB的存储容量,根据图10所示的逻辑映射来分割逻辑地址。即,将500MB的数据区域从逻辑组LG0至逻辑组LG3999分割成4000个逻辑组(LG)。各逻辑组具有128KB的数据容量。而且,将各逻辑组分割成8个16KB数据容量单位的逻辑块(LB)。逻辑块LB如图所示,被分配以LG0~LG31999的一系列序号。其逻辑地址与主机设备指定的地址相对应。然后,将不同逻辑组的数据配置到包含在物理上必然不同的删除单位(物理块)中的部分物理块中。另外,各逻辑块被分别配置在1个部分物理块中。部分物理块的8个物理页分别对应于8个逻辑页,各物理页由具有2KB容量的数据区域、和具有64B容量的管理区域组成。物理页的数据结构如后在图12中示出,但不占有与数据区域和管理区域都连接的区域,而在多个区域中离散地构成。
图11是表示地址转换表14的框图。如图所示,在地址转换表14提供表示逻辑组的逻辑地址时,设置了指定闪速存储器和其中的物理块及其部分物理块的15位的地址转换区域ACR14a。其中,最先的2位是表示闪速存储器FM0至FM3任一个的位,接着的10位是表示该闪速存储器内的哪个物理块PB的位,接着的3位是表示该物理块内的哪个部分物理块PPB的位。在除地址转换表14的地址转换区域14a之外的空闲区域的一部分中设置重复地址登录区域OARR14b。由于横跨多个物理块地记录了某逻辑组的数据,所以这时登录在重复地址登录区域14b中。重复地址登录区域14b具有16个区域,各区域由15位重复部分物理块地址OPPBA、12位重复逻辑组地址OLGA组成。在重复地址登录区域14b中,设重复部分物理块地址的无效值为0。由于将包含于闪速存储器FM0的开头物理块PB0中的部分物理块PPB0预定为固定写入数据的区域,所以作为重复部分物理块地址而取得的有效值为8~32767。另外,设重复逻辑地址的无效值为4095。作为重复逻辑地址而取得的值是外部主机设备3可指定的逻辑组0~3999。在结束后述的地址转换表修正流程的处理后,将重复地址登录区域14b的重复部分物理块地址的低3位全部变为1。另外,这里,在地址转换区域中按每个逻辑组地址登录部分物理块地址,但也可登录物理块地址来替代部分物理块地址。另外,在重复地址登录区域中,也可只登录表示简单重复的物理块的物理块地址。如果已知物理块地址,则可通过检索该物理块内的部分物理块,得到最新的部分物理块地址,通过读出该物理块地址的管理区域,可得到逻辑组地址。
下面,在图12中示出写入各物理页的逻辑页的结构。逻辑页为继24字节块管理区域BMR之后,512字节数据区域SDR、8字节管理区域SMR交替连续的结构,最后设置8字节页管理区域PMR。数据区域SDR为4个,构成共计2K字节的数据区域。另外,在块管理区域中设置逻辑块地址LBA、地址表AT、环形计数器、地址管理区域。这里,地址表AT表示写入包含在该物理块所属的逻辑组中的8个逻辑块的部分物理块的地址。其内容在属于同一逻辑块的每个逻辑页中相同。由于地址表分别以15位表现,所以例如使用其第16位,可知该逻辑页是否已删除。另外,环形计数器是用于判别地址表新旧的计数器。在每次地址表更新时增加。
另外,图8示出的登记表15是由对应于4096个物理块、1位结构的标记构成的表。如果已删除,则该标记为1,在已写入时为0。
这里,控制器2的CPU11具有删除块确保单元的功能,在重复地址转换区域中没有可登录的空间时,参照地址转换表14的重复地址登录区域14b,对在多个物理块中重复记录的逻辑组的数据,通过在任一物理块中集中该逻辑组的数据来确保删除块。删除块确保单元也可在不存在所有部分物理块都已删除的物理块的情况下确保删除块。
下面,参照图13的流程图说明表的初始化处理。初始化处理是在电源接通后,对应非易失性存储器的状态,生成地址转换表14、登记表15的处理。首先,在步骤S11中设登记表15的全部数据为0。然后,设地址转换表14的全部数据为无效地址。这里,设无效地址为0。有效地址是8~32767。接着,设闪速存储器FM的指针为0(步骤S13),在步骤S14中设物理块PB的指针为0。接着,在步骤S15中从被指定的物理块的页0的管理区域中读出逻辑块地址,检查该块是否已删除。如果已删除,则在登记表15中登录成已删除(步骤S17),如果不是已删除,则在步骤S18中登录在地址转换表14中。该处理将在后面描述。接着,在步骤S19中检查是否是最终物理块,如果不是最终物理块,则在步骤S20中增加物理块的指针,返回到步骤S15。另外,在步骤S19中如果是最终物理块,则前进到步骤S21,检查是否是最终闪速存储器。如果不是最终闪速存储器,则在步骤S22中增加闪速存储器的指针,返回到步骤S14。在步骤S21中如果是最终闪速存储器,则前进到步骤S23,执行后述的地址转换表的修正处理,结束处理。
下面,使用图14的流程图,说明步骤S18对地址转换表14的登录。在图14中,一旦开始地址转换表的登录,则首先在步骤S31中设表偏置(OFFSET)页(TOP)为56。接着,在步骤S32中读出物理块的表偏置页的管理区域的逻辑块地址。然后,在步骤S33中,检查该页是否已删除,如果已删除,则设表偏置页TOP-8(步骤S34),返回到步骤S32。另外,如果未已删除,则前进到步骤S35,读出对应于从物理块的表偏置页读出的逻辑组地址的地址转换表的值。然后,在步骤S36中判定对应于读出的逻辑地址的地址转换表的数据已被登录还是未被登录。如果该值是无效地址0,则判定为未登录。然后,在步骤S37中,在对应于从地址转换表14的转换区域14a读出的逻辑块地址所属的逻辑组地址的位置,登录作为读出对象的部分物理块的地址。在步骤S36中,如果有效地址已登录,则从步骤S36前进到S38。然后,在地址转换表14的重复地址登录区域14b中,登录作为读出对象的部分物理块的地址和从物理块管理区域读出的逻辑组地址LGA的值。
下面,就图15的流程图说明步骤S23的地址转换表修正处理。所谓地址转换表的修正处理是如下处理:在属于同一逻辑组的逻辑块的数据被离散配置在多个物理块中时,进行修正以使新写入的某个部分物理块的地址被登录到地址转换区域14a中,而以前写入的部分物理块被登录到重复地址登录区域14b中。首先,在步骤S41中设指针i为0,在步骤S42中得到地址转换表14的重复地址登录区域14b的第i个逻辑组地址LGA和部分物理块地址PPBA。接着,在步骤S43中判别这些地址是否是有效值。如果是有效值,则前进到步骤S44,读出第i个部分物理块的任意页的管理区域,得到环形计数器值。接着,在步骤S45中,以第i个逻辑地址为基准,从地址转换表14的地址转换区域14a得到对应的部分物理块的地址。进而在步骤S46中,读出对应于第i个逻辑地址的部分物理块地址的管理区域,得到环形计数器值。然后,在步骤S47中,根据环形计数器值判定重复地址登录区域的表是否是新的。如果该表是新的,则在步骤S48中变换第i个部分物理块和对应于第i个逻辑地址的部分物理块地址。另一方面,在步骤S47中,如果表不是新的,则不执行该处理,前进到步骤S49,检查指针i是否是15,如果不是15,则使i加1(步骤S50),返回到步骤S42。如果指针i为15,则结束处理。这样,可修正地址转换表14。
下面,用图16的流程图及图17的数据读出示意图来说明数据的读出处理。在步骤S51中,设来自主机设备3的逻辑地址中128KB单位的地址为逻辑组地址LGA,16KB单位的地址为逻辑块地址LGB,不满16KB的地址为逻辑页地址LPA。接着,在步骤S52中,以逻辑组地址为基准,设从地址转换表14得到的部分物理块为表部分物理块TPPB。接着,在步骤S53中读出表部分物理块的任意页的地址表,设写入逻辑块地址的数据的部分物理块为读出源部分物理块。在步骤S54中读出读出源部分物理块的逻辑页地址的数据,经数据传送缓冲器13将其传送到主机设备3。然后,在步骤S55中检查读出是否结束,如果未结束,则在步骤S56中检查逻辑页地址在块内是否为最终。如果不是最终,则增加逻辑页地址LPA(步骤S57),返回到步骤S54,重复同样的处理。如果逻辑页地址在块内为最终,则在步骤S58中检查逻辑块地址在逻辑组内是否是最终。如果不是最终,则设逻辑页地址为0,增加逻辑块地址(步骤S59)。而且,返回到步骤S54,重复同样的处理。如果逻辑块地址在逻辑组内是最终,则前进到步骤S60,设逻辑页地址为0,增加逻辑块地址及逻辑组地址,返回到步骤S52。这样,可根据指定的逻辑页地址读出数据。
下面,使用图18、图19说明数据写入处理。一旦开始数据写入处理,则首先在步骤S61中设来自主机设备3的逻辑地址中128KB单位的地址为逻辑组地址LGA,16KB单位的地址为逻辑块地址LBA,不满16KB的地址为逻辑页地址LPA。接着,在步骤S62,将基于逻辑组地址从地址变换表中得到的部分物理块作为表部分物理块TPPB。接着在步骤S63,读出表部分物理块的任意页的地址表后保持。然后,前进到步骤S64,检查表部分物理块的地址是否是物理块PB内的最终部分物理块。如果不是最终部分物理块,则前进到步骤S65,设表部分物理块的地址的下一部分物理块为写入目标部分物理块PPB。另外,在步骤S64中如果是最终部分物理块,则在步骤S66中进行后述的重复地址登录处理。然后在步骤S67中检索登记表15,得到已删除的物理块,设其开头的部分物理块为写入目标部分物理块PPB。并且,将登记表的该物理块的当前位更新成已写入「0」。这样,在决定了写入目标部分物理块之后,在步骤S68中将地址表中对应于逻辑块地址的地址保持为读入源部分物理块。然后在步骤S69中,检查在地址表中是否存在属于与读入源部分物理块相同的物理块的部分物理块。即,检测该部分物理块是否是最后的部分物理块。如果不是,则在步骤S70中,由于也可删除属于与读入源部分物理块相同的物理块的部分物理块,所以将其保持为预定删除物理块。在步骤S69中如果不是与其相当的部分物理块,则不执行步骤S70的处理,而前进到步骤S71,在控制器的内部,将地址表中对应于逻辑块地址的地址更换成写入目标部分物理块。
接着,在图19中,检查逻辑页地址LPA是否是0,如果不是0,则如后述,执行前半部分嵌入处理(步骤S73)。如果逻辑页地址是0,则不执行该处理,前进到步骤S74,将来自主机设备3的写入数据经数据传送缓冲器13传送到闪速存储器。然后将其写入到写入目标部分物理块的逻辑页地址中。这时,在管理区域中也同时写入写入管理信息。然后在步骤S75中检查是否结束写入,如果未结束,则在步骤S76中检查逻辑页地址是否是逻辑块内的最终页。如果不是最终,则在步骤S77中增加逻辑页地址,返回到步骤S74。如果是逻辑块内的最终页,则在步骤S78中执行删除和表的更新处理,接着在步骤S79中检查逻辑块地址是否为逻辑组内的最终,如果不是最终,则在步骤S80中设逻辑页地址为0,增加逻辑块地址。接着,在步骤S81中在表部分物理块中写入写入目标部分物理块的地址。然后,返回到图18的步骤S64,重复同样的处理。另外,在步骤S79中,如果逻辑块地址在逻辑组内是最终,则在步骤S82中使逻辑页地址为0,增加逻辑块地址和逻辑组地址,返回到步骤S62。然后,如果在步骤S75中写入处理结束,则在步骤S83中检查逻辑页地址在逻辑块内是否是最终。如果不是最终,则在步骤S84中执行后半部分嵌入处理。如果逻辑页地址在块内是最终,则在步骤S85中执行删除和表的更新,并结束处理。
下面,用图20说明步骤S66的重复地址登录处理。在重复地址登录处理中,在步骤S91确认重复地址登录区域的登录状况。然后,判别是否有空闲区域,如果没有空闲区域,则执行后述的删除块确保处理(步骤S93)。如果有空闲区域,则在步骤S94中,在重复地址登录区域的空闲登录区域的重复部分物理块地址中写入表部分物理块,在重复逻辑组地址中写入逻辑组地址。
下面,用图21的流程图说明步骤S93的删除块确保处理。首先,在步骤S101中,检索重复地址登录区域14b的有效地址,得到1组重复部分物理块地址和重复逻辑组地址。然后设这些地址为取消部分物理块地址及取消逻辑组地址。接着,在步骤S102中,以取消逻辑组地址为基准,从地址转换表的地址转换区域得到对应的部分物理块地址,并将其设为取消表部分物理块(取消TPPB)。而且,在步骤S103中,从取消表部分物理块的任意页读出地址表。在步骤S104中,检查是否已将属于取消表部分物理块的物理块中、已被写入的部分物理块全部写入到地址表中。该处理判定在属于取消表部分物理块的物理块中是否可集中全部有效数据,如果是YES,则在步骤S105中设取消表部分物理块的下一部分物理块为取消写入目标部分物理块。如果在步骤S104中是NO,则前进到步骤S106,在新的物理块中写入全部数据。即,检索登记表、得到已删除的物理块。然后设其开头的部分物理块为取消写入目标部分物理块。然后将登记表的该位更新成已写入「0」。接着,在执行这些处理中的任一处理之后,前进到步骤S107,将地址表中不在取消写入目标部分物理块的所属物理块中的数据依次复制到取消写入目标物理块中。这时,也依次更新地址表和地址转换表的地址转换区域。接着,前进到步骤S108,删除具有与重复地址登录区域中取消逻辑组地址一致的重复组地址的组的重复部分物理块的所属物理块的数据,使重复部分物理块地址OPPB和重复组地址OGA无效。这是因为由于经过至少3个物理块而产生了重复,所以削除该重复。接着,在步骤S109中,对应于该删除地将对应于登记表的重复部分物理块地址的数据更新成已删除,并结束处理。
下面,沿图22、图23说明该删除块确保处理的实例。图22表示确保删除块之前的物理块PB100和PB101的实例。如图所示,物理块PB100具有PPB800~807作为部分物理块,物理块PB101具有部分物理块PPB808~815。然后,将逻辑组LG0的逻辑块LB0~7的数据暂时写入物理块PB100中,之后更新逻辑组LG0的逻辑块LB0~6,并将其写入物理块PB101的部分物理块PPB808~814中。因此,物理块PB100中,部分物理块PPB800~806的数据被无效。在图22中用阴影示出该数据。这时,物理块PB101的部分物理块PPB815是未写入的区域。在图22中也同时示出地址转换表14和登记表15在确保该删除块前的状态。在地址转换表14的逻辑组LG0的位置登录逻辑组LG0中最新存储的部分物理块PPB814。另外,在重复地址登录区域14b中登录重复部分物理块PPB807、重复逻辑组LG0。这表示在物理块PB100内的部分物理块PPB807中记录有效的逻辑组LG0、逻辑块LB7的数据。这时,通过将逻辑组LG0、逻辑块LB7的数据写入部分物理块PPB815中,能够如步骤S104所示,在物理块PB101中集中全部的数据。
因此,通过将取消表部分物理块设为取消表部分物理块的下一部分物理块(步骤S104),即在该例中为部分物理块815,如图23所示,将逻辑组LG0、逻辑块LB7的数据写入部分物理块PPB815中,可在物理块PB101中集中逻辑组LG0的全部数据。这样,物理块PB100通过已全部删除而变成未写入,可写入新的数据。登记表15表示物理块PB100为「1」、可写入。
用图24、图25说明确保删除块的另一实例。图24表示如下状态:首先在物理块PB100中写入逻辑组LG0的逻辑块LB0~7,之后,再在物理块PB101的部分物理块PPB808~813中写入逻辑组LG0的逻辑块LB0~5。然后,如阴影所示,这时物理块PB100的部分物理块PPB800~805变成无效。进而,将逻辑组LG0的逻辑块LB0写入物理块PB101的部分物理块PPB814中,使部分物理块PPB808的数据无效。这时,就地址转换表14而言,对逻辑组LG0写入部分物理块PPB814,在重复地址登录区域14b中写入重复部分物理块807和该重复逻辑组0。这时,在步骤S104中,不能在属于取消表部分物理块的物理块PB101中集中有效的数据。即表示在图21的步骤S104中,取消表部分物理块的所属物理块中、已写入的部分物理块未全部写入地址表中的情况。因此,在步骤S106中检索登记表15,得到已删除的物理块。这时,得到物理块PB102,在该物理块中写入全部的数据。图25表示这样写入全部数据的状态。这时,示出了物理块PB100、101为已删除,登记表15的标志变为1,可写入新数据的状态。
下面,用图26的流程图说明步骤S73的前半部分嵌入处理。首先,一旦开始动作,则在步骤S111中设嵌入页地址为0。接着,在步骤S112中,将读出源部分物理块的嵌入页地址的数据读出到暂时保存缓冲器12中。接着,传送该数据到闪速存储器,并写入到写入目标物理块的嵌入页地址。这时,在管理区域中也同时写入写入管理信息。接着,前进到步骤S113,增加嵌入页地址,在步骤S114中检查嵌入页地址是否与逻辑页地址一致。如果两者不一致,则返回到步骤S112,重复同样的处理。在一致时,结束前半部分嵌入处理。
下面,用图27的流程图说明步骤S84的后半部分嵌入处理。后半部分嵌入处理一旦开始动作,则首先在步骤S121中设逻辑页地址+1为嵌入页地址。接着,在步骤S122中将读出源物理块的嵌入页地址的数据读出到暂时保存缓冲器12中。然后,传送该数据到闪速存储器,并将其写入到写入目标物理块的嵌入页地址。这时,在管理区域中也同时写入写入管理信息。接着,前进到步骤S123,检查嵌入页地址是否是最终页地址。如果不是最终页,则在步骤S124中增加嵌入页地址,返回到步骤S122。如果嵌入页地址是最终页,则结束后半部分嵌入处理。这样,嵌入处理与现有例不同,通过按页单位来执行,以闪速存储器的写入管理单位为16KB,缩短嵌入处理的时间。
下面,用图28的流程图来说明步骤S76、S85的删除和表更新处理。一旦该开始处理,则首先在步骤S131中检查在预定删除块中是否存在有效值。如果存在有效值,则在步骤S132中删除预定删除物理块。接着,在步骤S133中,使地址转换表的重复地址登录区域中、对应于通过此次写入删除的物理块的重复部分物理块地址和重复逻辑组地址无效。接着,在步骤S134中将对应于登记表的预定删除物理块的数据更新成已删除。然后在步骤S135中,将地址转换表的逻辑组地址的数据改写到写入目标部分物理块中。另外,在步骤S131中,如果在预定删除物理块中没有有效值,则不执行步骤S134之前的处理,进行步骤S135的处理之后结束该流程。
图29表示执行这样的处理,将从主机设备提供的16KB单位的数据经数据传送缓冲器13写入到写入目标物理块中的实例。表示在从主机设备3提供以16KB为写入单位的数据时,将该数据写入到写入目标物理块中的任一部分物理块中的状态。这时,与现有例不同,就该写入目标物理块的其他部分物理块而言,原样维持原来的状态不变、即已删除。接着,在从主机设备重新提供16KB的数据作为写入数据时,在其他的部分物理块中写入新的数据。保持该物理块的其他区域不变。这样,在从主机设备3提供16KB单位的数据作为写入数据时,仅对闪速存储器中16KB的区域进行写入,不必对物理块的整个128KB的区域写入数据,可缩短写入时间。
(实施方式2)
下面说明本发明的实施方式2。该实施方式与实施方式1几乎相同。由于外部主机设备在属于逻辑组0的逻辑块中配置了用于称为FAT的文件管理的数据,所以容易频繁发生写入处理,随之频繁进入删除块的确保处理。因此,就逻辑上假想逻辑地址发生偏移的逻辑地址区域而言,如图30所示,减小逻辑组的大小。即就逻辑组0、1而言,分割成如逻辑组LG0-0~LG0-7、逻辑组LG1-0~LG1-7这样的16KB单位。在该部分中,逻辑组和逻辑块变成相同大小的16KB。逻辑块与实施方式1一样,被赋予从0到31999这一系列的逻辑块序号。这样,对于假想逻辑地址发生偏移的逻辑组而言,所分配的物理块的大小128KB比逻辑组的大小16KB大,所以可降低删除块确保处理的频率,防止速度的降低。
另外,这里说明的各实施方式中的数据容量等数值仅是举例,也可为其他的数值。
产业上的可利用性
本发明是具有可改写的非易失性存储器的非易失性存储装置及其写入方法,在大容量的情况下写入速度也可比现有例高。因此,可用于必需大容量、高速写入的非易失性存储器的各种用途。
Claims (10)
1、一种非易失性存储装置,具有非易失性存储器和控制器,用于根据从外部提供的逻辑地址,向所述非易失性存储器写入数据和进行读出,其特征在于:
所述非易失性存储器由多个物理块构成,所述各物理块由以1个或多个物理页构成的部分物理块组成,所述各物理页由写入所述数据的数据区域和写入管理信息的管理区域组成,
并从外部提供逻辑地址,该地址包含一系列逻辑组地址、属于各逻辑组的一系列逻辑块地址和属于各逻辑块的一系列页地址,
所述控制器具有:
地址转换表,该表具有地址转换区域和重复地址登录区域,其中所述地址转换区域将从外部提供的逻辑地址中的逻辑组地址转换成用于记录该逻辑组所属的逻辑块的物理块地址;当在多个物理块中重复记录某逻辑组的数据时,所述重复地址登录区域表示被重复记录的物理块地址;和
表示针对各物理块已进行写入或已进行删除的登记表,
其中,在从外部提供了写入用数据及其逻辑地址时,按对应于所述逻辑块地址的部分物理块的单位将该数据和表示至少写入了包含在相同逻辑组中的数据的部分物理块地址的该管理信息同时写入未写入的区域中,并且更新所述地址转换表的地址转换区域或重复地址登录区域,
构成所述非易失性存储器的物理块的部分物理块的数据容量与所述非易失性存储装置的外部数据管理单位相等。
2、根据权利要求1所述的非易失性存储装置,其特征在于:
所述控制器还包括删除块确保单元,在所述地址转换区域的所述重复地址登录区域中没有可登录的空间时,通过参照所述地址转换表的所述重复地址登录区域、并将被重复记录在多个物理块中的逻辑组的数据集中到任一物理块中,来确保删除块。
3、根据权利要求2所述的非易失性存储装置,其特征在于:
所述删除块确保单元就某物理块而言,存在已写入区域及未写入区域,并且在属于被记录在该物理块中的逻辑组的逻辑块的数据可从其他物理块移动时,通过集中在该物理块中来确保删除块。
4、根据权利要求2所述的非易失性存储装置,其特征在于:
所述删除块确保单元在就某物理块而言、记录了属于同一逻辑组的一部分逻辑块,且在该物理块的未写入区域中不能写入属于该逻辑组的其他逻辑块的数据的情况下,通过参照所述登记表、检索新的未写入的物理块、并在检索出的物理块中写入属于同一逻辑组的全部逻辑块的数据来确保删除块。
5、根据权利要求1所述的非易失性存储装置,其特征在于:
对存取次数多的上位组而言,所述逻辑组由数据容量比其他的逻辑组少的逻辑组组成。
6、一种非易失性存储装置的数据写入方法,所述非易失性存储装置具有非易失性存储器和控制器,用于根据从外部提供的逻辑地址,向所述非易失性存储器写入数据和进行读出,所述数据写入方法的特征在于:
从外部提供逻辑地址,该地址包含一系列逻辑组地址、属于各逻辑组的一系列逻辑块地址和属于各逻辑块的一系列页地址,
在所述控制器中的地址转换表所具有的地址转换区域中,将从外部提供的逻辑地址中的逻辑组地址转换成用于记录该逻辑组所属的逻辑块的物理块地址,
当在多个物理块中重复记录某逻辑组的数据时,将被重复记录的物理块地址登录到所述控制器中的地址转换表所具有的重复地址登录区域中,
在所述控制器中的登记表中表示针对各物理块已进行写入或已进行删除,
其中,在从外部提供了写入用数据及其逻辑地址时,按对应于所述逻辑块地址的部分物理块的单位将该数据和表示至少写入了包含在相同逻辑组中的数据的部分物理块地址的该管理信息同时写入未写入的区域中,并且更新所述地址转换表的地址转换区域或重复地址登录区域,
构成所述非易失性存储器的物理块的部分物理块的数据容量与所述非易失性存储装置的外部数据管理单位相等,
所述非易失性存储器中包含的多个物理块中的每一个物理块由以1个或多个物理页构成的部分物理块组成,所述各物理页由写入所述数据的数据区域和写入管理信息的管理区域组成。
7、根据权利要求6所述的非易失性存储装置的数据写入方法,其特征在于:
还具有删除块确保处理,用于在所述地址转换区域的所述重复地址登录区域中没有可登录的空间时,通过参照所述地址转换表的所述重复地址登录区域、并将被重复记录在多个物理块中的逻辑组的数据集中到任一物理块中,来确保删除块。
8、根据权利要求7所述的非易失性存储装置的数据写入方法,其特征在于:
所述删除块确保处理就某物理块而言,存在已写入区域及未写入区域,并且在属于被记录在该物理块中的逻辑组的逻辑块的数据可从其他物理块移动时,通过集中在该物理块中来确保删除块。
9、根据权利要求7所述的非易失性存储装置的数据写入方法,其特征在于:
所述删除块确保处理在就某物理块而言、记录了属于同一逻辑组的一部分逻辑块,且在该物理块的未写入区域中不能写入属于该逻辑组的其他逻辑块的数据的情况下,通过参照所述登记表、检索新的未写入的物理块、并在检索出的物理块中写入属于同一逻辑组的全部逻辑块的数据来确保删除块。
10、根据权利要求6所述的非易失性存储装置的数据写入方法,其特征在于:
对存取次数多的上位组而言,所述逻辑组由数据容量比其他的逻辑组少的逻辑组组成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP306160/2003 | 2003-08-29 | ||
JP2003306160 | 2003-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1846199A CN1846199A (zh) | 2006-10-11 |
CN100511181C true CN100511181C (zh) | 2009-07-08 |
Family
ID=34269378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800248336A Active CN100511181C (zh) | 2003-08-29 | 2004-08-26 | 非易失性存储装置及其写入方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7987314B2 (zh) |
EP (1) | EP1659497A4 (zh) |
JP (1) | JP4667243B2 (zh) |
CN (1) | CN100511181C (zh) |
TW (1) | TW200511012A (zh) |
WO (1) | WO2005022393A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2005103903A1 (ja) * | 2004-04-20 | 2007-08-30 | 松下電器産業株式会社 | 不揮発性記憶システム |
WO2007066326A2 (en) * | 2005-12-09 | 2007-06-14 | Sandisk Il Ltd. | Method for flash-memory management |
US8307149B2 (en) * | 2005-12-09 | 2012-11-06 | Panasonic Corporation | Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table |
JP2007233838A (ja) * | 2006-03-02 | 2007-09-13 | Toshiba Corp | メモリシステムの制御方法 |
JP4991320B2 (ja) * | 2007-01-12 | 2012-08-01 | 株式会社東芝 | ホスト装置およびメモリシステム |
JP5026213B2 (ja) * | 2007-09-28 | 2012-09-12 | 株式会社日立製作所 | ストレージ装置及びデータ重複排除方法 |
KR20100133359A (ko) | 2007-12-24 | 2010-12-21 | 동우 화인켐 주식회사 | 이리듐 착물, 이를 포함하는 유기전기발광소자 |
CN101727292B (zh) * | 2008-10-16 | 2013-04-17 | 深圳市朗科科技股份有限公司 | 存储设备的访问***、方法及存储设备 |
CN101650690B (zh) * | 2009-09-21 | 2011-03-02 | 中兴通讯股份有限公司 | 大容量存储卡的应用方法及移动终端 |
TWI494948B (zh) * | 2011-01-31 | 2015-08-01 | Phison Electronics Corp | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 |
US9645739B2 (en) * | 2014-09-26 | 2017-05-09 | Intel Corporation | Host-managed non-volatile memory |
JP7213712B2 (ja) * | 2019-02-14 | 2023-01-27 | キオクシア株式会社 | 不揮発性半導体記憶装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154909A (ja) * | 1999-11-25 | 2001-06-08 | Casio Comput Co Ltd | フラッシュメモリ管理装置及び記録媒体 |
JP2002366423A (ja) * | 2001-06-04 | 2002-12-20 | Samsung Electronics Co Ltd | フラッシュメモリの管理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256642B1 (en) * | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
US5838614A (en) | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
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 |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US7617352B2 (en) * | 2000-12-27 | 2009-11-10 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
US7039788B1 (en) * | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical block |
-
2004
- 2004-08-26 CN CNB2004800248336A patent/CN100511181C/zh active Active
- 2004-08-26 US US10/569,880 patent/US7987314B2/en active Active
- 2004-08-26 JP JP2005513535A patent/JP4667243B2/ja active Active
- 2004-08-26 EP EP04772668A patent/EP1659497A4/en not_active Ceased
- 2004-08-26 WO PCT/JP2004/012714 patent/WO2005022393A1/ja active Application Filing
- 2004-08-27 TW TW093125934A patent/TW200511012A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154909A (ja) * | 1999-11-25 | 2001-06-08 | Casio Comput Co Ltd | フラッシュメモリ管理装置及び記録媒体 |
JP2002366423A (ja) * | 2001-06-04 | 2002-12-20 | Samsung Electronics Co Ltd | フラッシュメモリの管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1846199A (zh) | 2006-10-11 |
JP4667243B2 (ja) | 2011-04-06 |
JPWO2005022393A1 (ja) | 2006-10-26 |
TW200511012A (en) | 2005-03-16 |
TWI354893B (zh) | 2011-12-21 |
US7987314B2 (en) | 2011-07-26 |
EP1659497A1 (en) | 2006-05-24 |
EP1659497A4 (en) | 2008-01-23 |
WO2005022393A1 (ja) | 2005-03-10 |
US20070276986A1 (en) | 2007-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806985B (zh) | 用来管理一记忆装置的方法以及其相关的记忆装置 | |
CN113282522B (zh) | 数据储存装置以及其操作方法 | |
CN100485642C (zh) | 非易失性存储器***及操作非易失性存储器***的方法 | |
CN101147133B (zh) | 可再编程非易失性存储器***的方法及存储器*** | |
CN101164037B (zh) | 闪速存储器中的直接数据文件存储 | |
JP4418439B2 (ja) | 不揮発性記憶装置およびそのデータ書込み方法 | |
CN100511181C (zh) | 非易失性存储装置及其写入方法 | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
US7404031B2 (en) | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory | |
KR100847506B1 (ko) | 기억 장치, 메모리 관리 방법 및 프로그램 | |
US7461198B2 (en) | System and method for configuration and management of flash memory | |
KR100899242B1 (ko) | 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법 | |
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
US5717886A (en) | Semiconductor disk device and memory management method | |
US20060179263A1 (en) | Flash memory device and associated data merge method | |
CN101542447B (zh) | 一次写入记录装置 | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件***的使用 | |
JP2002508862A (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
EP1898312A1 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
TWI659307B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
KR19990045218A (ko) | 불휘발성 기억 장치, 불휘발성 기억 장치의 제어 방법 및 불휘발성 기억 장치를 제어하는 프로그램을 기록한 정보 기록 매체 | |
JP2000505215A (ja) | メモリ管理 | |
JPH07219720A (ja) | 半導体メモリ装置ならびにその制御方法 | |
JP2006011533A (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
JP2000030375A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |