CN103377136A - 存储器的管理方法、存储装置及搭载了该存储装置的计算机 - Google Patents
存储器的管理方法、存储装置及搭载了该存储装置的计算机 Download PDFInfo
- Publication number
- CN103377136A CN103377136A CN2013101259080A CN201310125908A CN103377136A CN 103377136 A CN103377136 A CN 103377136A CN 2013101259080 A CN2013101259080 A CN 2013101259080A CN 201310125908 A CN201310125908 A CN 201310125908A CN 103377136 A CN103377136 A CN 103377136A
- Authority
- CN
- China
- Prior art keywords
- piece
- mentioned
- data
- threshold value
- empty
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明是存储器的管理方法、存储装置及搭载了该存储装置的计算机。即使在从非易失性存储器读出数据时发生错误的情况下,也能够使存储装置的运转时间延长。存储装置具有非易失性存储器、RAM和存储器控制器。RAM具有空块管理表和消耗块管理表。存储器控制器当空块的数为阈值1以上、且在从非易失性存储器读出的数据包含阈值2以上且不足阈值3的错误时,将相应块作为消耗块在消耗块管理表登记。存储器控制器当空块的数为不足阈值1时,将在消耗块管理表登记的消耗块作为空块在空块管理表登记。
Description
技术领域
本发明涉及存储器的管理方法、存储装置及搭载该存储装置的计算机。
背景技术
作为信息设备的辅助存储装置,一般广泛采用磁盘存储装置。但是近年来取代该磁盘存储装置,将半导体存储器作为存储介质的存储装置逐渐增多。其中,使用作为电气地可删除且可再写入的非易失性存储器(EEPROM:Electrically Erasable Programmable Read OnlyMemory)的一种的闪速存储器的存储装置成为主流。
该闪速存储器与磁盘相比,在读出及写入速度上更出色。另一方面,也存在以下问题:如果写入次数、读出次数增加则在内部保存的数据发生变化而错误发生等。
因此,在使用闪速存储器的存储装置中,往往在控制控制器内部设置错误更正电路,使得能够容许一定数量内的错误。另外,为了确保可靠性,与数据保持区域分开地设置预备区域,在错误为一定数量以上的情况下,有时也废弃相应的数据保持区域而代替地使用预备区域。但是,采用该方法时,如果错误多发则预备区域急速消失,存在存储装置的运转时间变短的危险。
作为使用了该闪速存储器的存储装置的背景技术,有专利文献1。在专利文献1中,为了防止因错误导致预备区域急剧减少,记载了“在闪速存储器装置中设置错误更正电路和块管理单元,在预备块的残数达到被块管理单元设定的阈值后,对存在比特(bit)错误的数据进行错误更正而向主机送出,并刷新发生该错误的块。通过将该块的包含错误更正后的数据的全部数据复制到空块或预备块并删除原来的块的数据来执行刷新。或者,通过复制到空块或预备块后写回到原来的块来执行。”。
专利文献
专利文献1:日本特开2010-86404号公报
在专利文献1中,预备块变成不足一定数量的情况下,刷新错误数为不足阈值2(6比特)的块,与空块或者预备块进行调换。但是该方法中,预备块为一定数以上时不进行块的刷新,将错误数为阈值1(4比特)以上且不足阈值2的块作为不良块而废弃。因此,可刷新的块数少,运转时间的延长效果小。
为了实现运转时间的延长效果,必须重新研究作为不良块而废弃的区域的处理。具体地说,必须重新研究预备块为一定数以上、错误数为阈值1(4比特)以上且不足阈值2时的处理。
因而,本发明提供能够进一步延长运转时间的存储器的管理方法、存储装置及搭载了该存储装置的计算机。
发明内容
为了解决上述课题,采用例如权利要求的范围所记载的构成。
本申请包含多个解决上述课题的单元,举一个例子来说,其特征在于:“一种存储装置10,具备:非易失性存储器40,具有作为某规定的写入单位的页面40b、以及作为比上述写入单位大的删除单位的块40a;RAM 50,能够进行数据的读出及写入;存储器控制器30,进行向上述非易失性存储器40及上述RAM 50的读出及写入处理,上述RAM 50具有管理空块61的空块管理表52和管理消耗块62的消耗块管理表53,上述存储器控制器30当在上述空块管理表52登记的空块61的数为阈值1以上、且在从上述非易失性存储器40读出的数据包含阈值2以上且不足阈值3的错误时,将保持着该数据的数据块60在上述消耗块管理表53登记为消耗块62,当在上述空块管理表52登记的空块61的数为不足上述阈值1时,将在上述消耗块管理表53登记的消耗块62在上述空块管理表52登记为空块61”。
根据本发明,即使在空块为一定数以上的状态下也确保消耗块,当空块为不足一定数时,通过将确保的消耗块补充为空块,能够进一步延长存储装置的运转时间。
上述以外的课题、构成及效果通过以下的实施方式的说明将变得明显。
附图说明
图1是说明本发明的实施例1的硬件构成图。
图2是非易失性存储器的内部构成图。
图3是表示非易失性存储器的各块40a的使用状态的图。
图4是表示实施例1中的逻辑/物理地址变换表的内容的图。
图5是表示实施例1中的空块管理表的内容的图。
图6是表示实施例1中的消耗块管理表的内容的图。
图7是实施例1中的数据读出处理的流程图。
图8是实施例1中的块交替处理的流程图。
图9是实施例1中对空块的数据移动处理的流程图。
图10是实施例1中的空块补充处理的流程图。
图11是将实施例1中的块管理方法用映射表示的图。
图12是实施例2中的硬件构成图。
图13是实施例3中的硬件构成图。
图14是表示实施例3中的消耗块管理表的内容的图。
图15是实施例3中的块交替处理的流程图。
图16是实施例3中的空块补充处理的流程图。
图17是实施例4中的硬件构成图。
图18是表示实施例4中的错误计数信息的内容的图。
图19是实施例4中的块交替处理的流程图。
图20是实施例5中的硬件构成图。
图21是表示实施例5中的逻辑/物理地址变换表的内容的图。
图22是实施例5中的数据读出处理的流程图。
图23是实施例5中从物理地址B进行数据读出处理的流程图。
图24是实施例5中的块交替处理A的流程图。
图25是实施例5中的块交替处理B的流程图。
图26是实施例5中向空块A的数据移动处理的流程图。
图27是实施例5中向空块B的数据移动处理的流程图。
图28是实施例6中的硬件构成图。
图29是实施例6中的块交替处理A的流程图。
图30是实施例6中的块交替处理B的流程图。
图31是实施例6中向消耗块A的数据移动处理的流程图。
图32是实施例6中向消耗块B的数据移动处理的流程图。
(符号的说明)
1:计算机;
3:命令处理装置;
10、10A、10B、10C、10D、10E:存储装置;
30、30A、30B、30C、30D、30E:存储器控制器;
34:阈值设定寄存器;
40:非易失性存储器;
50、50B、50C、50D:RAM;
51、51D:逻辑/物理地址变换表;
52:空块管理表;
53、53B:消耗块管理表;
54:错误计数信息;
54b:错误计数值;
60:数据块;
61:空块;
62:消耗块。
具体实施方式
以下,用附图说明实施例。
(实施例1)
在实施例1中,说明能够将运转时间进一步延长的存储装置的例子。
图1是实施例1中的硬件构成图的例子。
计算机1具备存储装置10、命令处理装置3、主存储存储器4、输入输出控制装置5、网络控制装置6、显示装置7、数据总线2。存储装置10、命令处理装置3、主存储存储器4、输入输出控制装置5、网络控制装置6、显示装置7之间,相互经由数据总线2连接。
其中,命令处理装置3根据在存储装置10或主存储存储器4保存的命令来处理数据,控制输入输出控制装置5、网络控制装置6、显示装置7。
存储装置10和主存储存储器4按照来自命令处理装置3的处理,进行数据的写入和写入数据的读出。
输入输出控制装置5是控制命令处理装置3经由数据总线2与外部设备(未图示)的数据的输入输出的装置。经由输入输出控制装置5输入输出数据的外部设备是例如键盘、鼠标、外部的存储装置10等。
网络控制装置6是控制命令处理装置3经由数据总线2与网络(未图示)的数据的输入输出的装置。
显示装置7是通过命令处理装置3的控制而进行数据的显示的装置。
存储装置10具备I/F(接口)控制部20、存储器控制器30、RAM 50、一个以上的非易失性存储器40。
I/F控制部20进行命令处理装置3和存储器控制器30之间的数据的输入输出控制。
存储器控制器30控制RAM 50和非易失性存储器40。存储器控制器30具有块管理部31、错误更正电路32和非易失性存储器控制部33。
块管理部31按照来自命令处理装置3的命令,控制对非易失性存储器40的数据输入输出。另外,管理使用图3而在后面描述的数据块60、空块61、消耗块62,进行RAM 50内的逻辑/物理地址变换表51、空块管理表52、消耗块管理表53的更新。
错误更正电路32判断从非易失性存储器40读出的数据是否包含错误,在包含错误时实施错误更正。另外,还对块管理部31进行错误数的通知。
非易失性存储器控制部33按照来自块管理部31的指示,进行对非易失性存储器40的数据的写入及读出。
非易失性存储器40保存由非易失性存储器控制部33指示写入的数据。在本实施例中记载的非易失性存储器40具有规定的写入单位和比写入单位大的删除单位,在改写数据时,需要在写入前进行删除动作。非易失性存储器40的构成将在后记的图2中详细说明。
RAM 50保存逻辑/物理地址变换表51、空块管理表52、消耗块管理表53。逻辑/物理地址变换表51表示在非易失性存储器40内保存的数据的保存场所,通过后记的图4详细说明。空块管理表进行空块信息的管理,通过后记的图5详细说明。消耗块管理表53进行消耗块信息的管理,通过后记的图6详细说明。
该RAM 50可以是SRAM(Static RAM,静态随机存储器)、DRAM(Dynamic RAM,动态随机存储器)这样的易失性存储器,也可以是MRAM(Magnetic RAM,磁性随机存储器)、ReRAM(ResistanceRAM,电阻式随机存储器)、PRAM(Phase change RAM,相变随机存储器)这样的非易失性存储器。但是,在使用非易失性存储器时,需要是在数据改写时不需要删除动作的非易失性存储器。另外,RAM50也可以在存储器控制器30的内部。
图2是表示非易失性存储器40的构成的图。非易失性存储器40包括一个以上的删除单位,该删除单位称为块40a。另外,该块40a包括一个以上的写入单位,该写入单位称为页面40b。在本实施例中,非易失性存储器40的块数设为M块,每块的页面数设为N页面。
图3是表示非易失性存储器40中的各块40a的使用状态的图。在本实施例中,将块40a分为数据块60、空块61、消耗块62的3个作用来使用。数据块60是保持从命令处理装置3接受了写入命令的数据的块。空块61是在各页面40b都未保持数据的块。
消耗块62与空块61同样,也是在各页面40b都未保持数据的块。空块61和消耗块62的差异是错误发生的有无,这通过图9的块交替处理流程图来详细说明。
图4是实施例1中的逻辑/物理地址变换表51的构成图。逻辑/物理地址变换表51是管理与逻辑页面地址51a对应的物理地址51b的表。逻辑/物理地址变换表51具有逻辑页面地址51a、物理地址51b,物理地址51b由物理块编号51c和物理页面编号51d的组合表示。逻辑页面地址51a是将命令处理装置3指定的逻辑地址汇总到页面40b单位而形成。
图5是实施例1中的空块管理表52的构成图。空块管理表52是保存空块61的管理信息的表,具有空块条目编号52a、有效标志52b、物理块编号52c。
空块条目编号52a是空块61的登记编号,在本实施例中,能够登记最大C个空块61。
有效标志52b是表示在对象的空块条目编号52a登记的物理块编号52c的块能够作为空块61使用的信息。如果相应的块能够作为空块61使用,则在有效标志52b保存“1”,如果不能使用,则保存“0”。
图6是实施例1中的消耗块管理表53的构成图。消耗块管理表53是保存消耗块62的管理信息的表,具有消耗块条目编号53a、有效标志53b、物理块编号53c。
消耗块条目编号53a是消耗块62的登记编号,在本实施例中,可登记最大W个消耗块62。
有效标志53b是表示在对象的消耗块条目编号53a登记的物理块编号53c的块可作为消耗块62使用的信息。如果相应的块可作为消耗块62使用,则在有效标志53b保存“1”,如果不能使用,则保存“0”。
图7是实施例1中的数据读出处理的流程图。另外,在流程图出现的处理中,步骤编号相同的部分全部进行相同处理。因此,对于以前说明过的处理,不再度进行说明而省略。
在图1中,如果从命令处理装置4对存储装置10请求数据读出,则存储装置10开始数据读出处理。
另外,在含图7在内以后说明的流程图中的处理基本上在存储装置10内的存储器控制器30中执行。关于具体存储器控制器30的哪个功能(块管理部31、错误更正电路32、非易失性存储器控制部33)执行,在各流程图块的左侧通过这些记号显示。
首先,在步骤S10中,存储器控制器30内的块管理部31经由I/F控制部20,从命令处理装置3接收读出对象的逻辑地址和数据尺寸。
接着,在步骤S11中,块管理部31将接收的逻辑地址变换为逻辑页面地址51a。其后,块管理部31使用图4的逻辑/物理地址变换表51,读出与逻辑页面地址51a对应的物理地址51b。
在步骤S12中,块管理部31指示非易失性存储器控制部33,以使得从在步骤S11读出的物理地址51b读出数据。非易失性存储器控制部33按照来自块管理部31的指示,从图1的非易失性存储器40读出数据。
在步骤S13中,非易失性存储器控制部33将在步骤S12中从非易失性存储器40读出的数据转发到错误更正电路32。错误更正电路32判断在从非易失性存储器控制部33接收的数据中是否包含错误。
此时,如果在数据中包含错误,则转移到步骤S14的处理。如果在数据中不包含错误,则将数据向块管理部31转送后,转移到步骤S19的处理。
在步骤S14中,错误更正电路32判断在数据中包含的错误是否能够更正。在能够更正时,转移到步骤S15的处理,在不能更正时,转移到步骤S18的处理。
在步骤S15中,错误更正电路32进行数据内的错误更正。此时,错误更正电路32将更正后的数据向块管理部31转送,并将更正的错误数通知给块管理部31。
在步骤S16中,块管理部31经由I/F控制部20,将更正后的数据向命令处理装置3转送。
在步骤S17中,块管理部31实施块交替处理。关于该块交替处理在后记的图8中详细说明。
在步骤S18中,错误更正电路32将不能进行错误更正的情况通知给块管理部31。块管理部31接受来自错误更正电路32的通知,经由I/F控制部20向命令处理装置3通知数据读出错误。
在步骤S19中,块管理部31将从错误更正电路32接收的数据经由I/F控制部20向命令处理装置3转送。
如果步骤S17、步骤S18、步骤S19的任一个的处理完成后,存储装置10结束图7的数据读出处理。
通过图7的处理,如果对存储装置10E向数据总线2送出的数据的处理进行整理,则如以下的那样。首先,在从非易失性存储器40取出的数据中没有错误时原样转送。在有错误且能够更正时,转送更正数据并提供更正错误数的信息。在有错误且不能更正时,提供数据读出错误。
图8是实施例1中的块交替处理的流程图。
在步骤S20中,块管理部31判断在空块管理表52登记的空块数是否为阈值1以上。如果空块数为阈值1以上,则转移到步骤S21的处理,如果空块数为不足阈值1,则转移到步骤S25的处理。
如图5所示,在空块管理表52的空块条目编号52a登记的空块61最大为C个。这里,其中参照有效标志52b的信息抽出能够使用(数据“1”)的个数,将其与阈值1比较。
在步骤S21中,块管理部31判断从错误更正电路32通知的错误数是否为阈值2以上。如果错误数为阈值2以上,则转移到步骤S22的处理,如果为不足阈值2,则结束块交替处理。
在步骤S22中,块管理部31及非易失性存储器控制部33实施向空块的数据移动。向该空块的数据移动通过后记的图9详细说明。
在向空块的数据移动后的步骤S23中,块管理部31判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上,则结束块交替处理,如果为不足阈值3,则转移到步骤S24的处理。另外,阈值3是比阈值2大的值。
在步骤S24中,块管理部31从RAM 50读出消耗块管理表53(图6),检索有效标志53b成为“0:不能作为消耗标志使用”的消耗块条目编号53a。然后,在相应的消耗块条目编号53a的物理块编号53c登记发生错误的块编号,将有效标志53b变更为“1:能够作为消耗标志使用”。在步骤S24的处理完成后,块管理部31结束块交替处理。
在步骤S25中,块管理部31判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数是阈值3以上,则转移到步骤S22的处理(向空块的数据移动处理),如果为不足阈值3,则结束块交替处理。
在步骤S26中,块管理部31实施空块补充处理。该空块补充处理通过后记的图10详细说明。步骤S26的处理完成后,块管理部31结束块交替处理。
通过以上的图8的处理,根据错误数的个数如以下那样进行处理。首先,在错误个数少(不足阈值2)时,不进行数据移动处理。在错误个数多(阈值3以上)时,进行向空块的数据移动处理,且通过该处理空块的个数减少,因此补充空块的个数。在错误个数是中间(阈值2以上、不足阈值3)时,通过在消耗块管理表53进行登记,以后作为消耗块进行管理。
图9是实施例1中的向空块的数据移动处理(图8的步骤S22)的流程图。
在步骤S30中,块管理部31从RAM 50读出空块管理表52(图5),选择一个有效标志52b成为“1:能够作为空块使用”的空块条目编号52a,取得其物理块编号52c。这里,空块条目编号52a的选择方式没有特别限定,例如也可以如FIFO(First In First Out,先入先出)那样从登记早的条目按顺序选择。
在步骤S31中,块管理部31向非易失性存储器控制部33进行指示,以使得将发生错误的数据块60保持的数据拷贝到在步骤S30选择的物理块编号52c。非易失性存储器控制部33按照块管理部31的指示,实施向所选择的块的数据拷贝。另外,数据拷贝完成后,块管理部31向非易失性存储器控制部33发出指示,以使得删除发生错误的数据块60的数据。非易失性存储器控制部33按照来自块管理部31的指示,删除相应块内的数据。
在步骤S32中,块管理部31在逻辑/物理地址变换表51(图4)中,将与拷贝的数据的逻辑页面地址51a对应的物理地址51b更新为作为拷贝目的地的空块61。
在步骤S33中,块管理部31在空块管理表52(图5)中,将由步骤S30选择的空块条目编号52a的有效标志52b变更为“0:不能作为空块使用”。
这样,通过向空块的数据移动处理(图8的步骤S22),将发生错误的数据块60保持的数据拷贝到新的空块,以后将该拷贝的空块作为数据块进行处理。
另外,向空块的数据移动处理(图8的步骤S22)与其后的步骤S24组合实施(阈值2以上且不足阈值3的错误时),从而在以后将原来发生错误的数据块60作为消耗块62来进行管理。
图10是实施例1中的空块补充处理的流程图。
在步骤S40中,块管理部31从RAM 50读出消耗块管理表53(图6),选择一个有效标志53b成为“1:能够作为消耗块使用”的消耗块条目编号53a,取得该物理块编号53c。这里,消耗块条目编号53a的选择方式没有特别限定,例如也可以如FIFO(First In First Out)那样从登记早的条目按顺序选择。
在步骤S41中,块管理部31从RAM 50读出空块管理表52(图5),检索有效标志52b成为“0:不能作为空块使用”的空块条目编号52a。然后,向相应的空块条目编号52a的物理块编号52c登记由步骤S26取得的物理块编号53c,将有效标志52b变更为“1:能够作为空块使用”。然后,在消耗块管理表53中,将步骤S26选择的消耗块条目编号53a的有效标志53b变更为“0:不能作为消耗块使用”。在步骤S41的处理完成后,块管理部31结束空块补充处理。
通过图10的一系列处理,将消耗块内选择的块在以后作为空块使用。即,补充了空块的个数。另外,在为阈值3以上的错误时,虽然是原来发生错误的数据块60的处理,但是该块在基于图9的数据的移动完成后,未登记为消耗块62,因此,事实上以作为不良块以后不使用的方式进行处理。
图11是将实施例1中的块管理方法映射状地表示的图。
在本图中,在纵轴描述在空块管理表52登记的空块数,在横轴描述数据读出时的错误发生数。这里,根据纵横的条件,分为A1到A6的6个区域来决定处理对应。
在实施例1的处理事例中,在数据读出时的错误发生数少(错误数不足阈值2)时,如区域A1、A2所示,无论在空块管理表登记的空块数是多少,都仅进行错误更正处理。
另外,在实施例1的处理事例中,在数据读出时的错误发生数多(错误数为阈值3以上)时,如区域A5、A6所示,无论在空块管理表登记的空块数是多少,都进行块废弃处理。
另外,在数据读出时的错误发生数是中间(错误数为阈值2以上且不足阈值3)、且在空块管理表登记的空块数少(空块数为不足阈值1)时,如区域A3所示,也仅进行错误更正处理。
与此相对,在本发明中对区域A4的处理下工夫。即,特征在于以下的点:重新研究预备块(空块)为一定数以上、错误数为阈值2以上且不足阈值3时的处理。
在空块数为阈值1(纵轴)以上、且数据读出时的错误数为阈值2以上且不足阈值3(横轴)时,与区域A4相应。此时,在实施错误更正后,将发生错误的块的数据拷贝到空块61。然后,将发生错误的块在消耗块管理表53登记,将数据拷贝目的地的空块61作为数据块60。从空块61到数据块60的变更通过逻辑/物理地址变换表51的更新来实施。
在空块数为阈值1以上(纵轴)、且数据读出时的错误数为阈值3以上(横轴)时,与区域A6相应。此时,在实施错误更正后,将发生错误的块的数据拷贝到空块61。然后,废弃发生错误的块,并将数据拷贝目的地的空块61作为数据块60。通过更新逻辑/物理地址变换表51并从物理地址51b消除发生错误的块而实施块的废弃。
在空块数不足阈值1(纵轴)、且数据读出时的错误数为阈值3以上(横轴)时,与区域A5相应。此时,在实施错误更正后,将发生错误的块的数据拷贝到空块61。然后,废弃发生错误的块,并将数据拷贝目的地的空块61变更为数据块60,进行将消耗块62之一变更为空块61的处理。
如果整理以上的想法,则实施例1是由作为删除单位的多个块构成存储器,并将存储器的多个块分为多个数据块、多个空块和消耗块而使用的存储器的管理方法,其中,在从存储器读出数据时进行数据校验,在读出数据的错误数不足阈值2时,将保持该数据的数据块作为数据块而继续使用,在读出数据的错误数为不足阈值3时,将保持该数据的数据块废弃,在空块的数为阈值1以上、且在读出数据中包含阈值2以上且不足阈值3的错误时,将保持该数据的数据块作为消耗块,在空块的数不足阈值1、且在读出数据中包含阈值3以上的错误时,将消耗块作为空块来使用。
以上说明的实施例1中,具有如下的效果。
块管理部31即使在空块管理表52登记的空块数为阈值1以上时,也将错误发生的数据块60在消耗块管理表53作为消耗块62登记。由此,在空块管理表52登记的空块数成为不足阈值1时,能够确保大量的可补充的消耗块62,能够进一步延长存储装置10的运转时间。
本发明的以下的实施例中也在区域A4的使用上下工夫。
(实施例2)
在本实施例中,说明能够进一步延长运转时间并且能够任意变更阈值的存储装置的例子。
图12表示实施例2中的硬件构成图的例子。另外,对与实施例1中的硬件构成图相同的要素附了相同的符号。另外,与实施例1的附图相比较,存在变更、追加部分时,通过二重框显示来明示主要的变更处所。该显示的约定在以下的附图中沿袭。在图12的情况下,与图1相比较,所追加的阈值设定寄存器34进行二重框显示。
实施例2中的存储装置10A具有与实施例1中的存储装置10的存储器控制器30不同的存储器控制器30A。除此以外,是与实施例1的存储装置10同样的构成。
实施例2的存储器控制器30A除了实施例1的存储器控制器30以外,还具有阈值设定寄存器34。该阈值设定寄存器34能够任意变更在块管理中使用的阈值1、阈值2、阈值3。
阈值设定寄存器34的值可以设为仅仅在制造时能够设定,也可以设为任意地从外部能够变更。作为从外部变更的方法,例如可以是从命令处理装置3提供变更指示,也可以由在存储装置10搭载的开关来进行切换。
在图12中,阈值设定寄存器34设置在存储器控制器30的内部。但是并不限于此,阈值设定寄存器34可以在存储器控制器30的外部,而且也可以是开关、管脚等。
实施例2中的存储装置10A的动作与实施例1中的存储装置10同样。即,实施例2中的数据读出处理、块交替处理、向空块的数据移动处理、空块补充处理全部与实施例1同样。
以上说明的实施例2中,具有如下效果。
存储装置10A中的存储器控制器30A通过具有阈值设定寄存器34,能够任意变更在块管理中使用的阈值1、阈值2、阈值3。
(实施例3)
在本实施例中,说明能够进一步延长运转时间并能够提高可靠性的存储装置的例子。
图13表示实施例3中的硬件构成图的例子。另外,对与实施例1中的硬件构成图相同的要素附了相同的符号。
实施例3中的存储装置10B具有与实施例1中的存储装置10的存储器控制器30不同的存储器控制器30B。另外,实施例3中的存储装置10B具有与实施例1中的存储装置10的RAM 50不同的RAM 50B。除此以外,实施例3的存储装置10B与实施例1的存储装置10是同样的构成。
实施例3的存储器控制器30B具有与实施例1的存储器控制器30中的块管理部31不同的块管理部31B。除此以外,实施例3的存储器控制器30B与实施例1的存储器控制器30是同样的构成。
实施例3的RAM 50B具有与实施例1的RAM 50中的消耗块管理表53不同的消耗块管理表53B。除此以外,实施例3的RAM 50B与实施例1的RAM 50是同样的构成。
图14是实施例3中的消耗块管理表53B的构成图。实施例3的消耗块管理表53B除了实施例1的消耗块管理表53以外,还具有发生错误数53d。该发生错误数53d在向消耗块管理表53B登记消耗块62时,保存在数据读出中发生的错误数。
实施例3中的存储装置10B的数据读出动作与实施例1中的存储装置10同样。
图15是实施例3中的块交替处理的流程图。从而,实施例1中的图8的块交替处理的流程图被置换为图15来处理。另外,对与实施例1相同的要素附了相同的符号。
实施例3中的步骤S20到步骤S23的处理与实施例1同样。
在步骤S24B中,存储器控制器30B内的块管理部31B从RAM 50B读出消耗块管理表53B,检索有效标志53b成为“0:不能作为消耗块使用”的消耗块条目编号53a。然后,在相应的消耗块条目编号53a的物理块编号53c登记发生错误的块编号,将有效标志53b变更为“1:能够作为消耗块使用”。另外,块管理部31B在相应的消耗块条目编号53a的错误发生数53d保存从错误更正电路32通知的错误数。
实施例3中的步骤S25的处理与实施例1同样。
在步骤S26B中,块管理部31B实施空块补充处理。该空块补充处理通过后记的图16详细说明。
实施例3中的存储装置10B的向空块的数据移动处理与实施例1同样地由图9的流程图执行。
图16是实施例3中的空块补充处理的流程图。从而,实施例1中的图10的块交替处理的流程图被置换为图16而处理。
在步骤S40B中,块管理部31B从RAM 50B读出消耗块管理表53B,选择一个有效标志53b成为“1:能够作为消耗块使用”的消耗块条目编号53a,取得其物理块编号53c。这里,在选择消耗块条目编号53a时,优先地选择错误发生数53d少的消耗块条目编号53a。在错误发生数53d相同的消耗块条目编号53a存在多个时,选择其中登记早的消耗块条目编号53a。
实施例3中的步骤S41的处理与实施例1同样。
在以上说明的实施例3中,总而言之是以下这样的实施例:在实施例1中,将消耗块作为空块使用时,优先地使用发生错误数小的消耗块,具有如下效果。
存储装置10B中的存储器控制器30B内的块管理部31B选择从消耗块管理表53B向空块管理表52移动的消耗块62时,优先地选择错误发生数53d少的消耗块62。由此,能够将错误数少的消耗块62作为空块61来使用,能够提高存储装置10B的可靠性。
(实施例4)
在本实施例中,说明能够进一步延长运转时间并且能够提高可靠性的存储装置的例子。在该实施例中,将错误计数数设为新的管理项目。
图17表示实施例4中的硬件构成图的例子。另外,对与实施例1中的硬件构成图相同的要素附了相同的符号。
实施例4中的存储装置10C具有与实施例1中的存储装置10的存储器控制器30不同的存储器控制器30C。另外,实施例4中的存储装置10C具有与实施例1中的存储装置10的RAM 50不同的RAM 50C。除此以外,实施例4的存储装置10C与实施例1的存储装置10是同样的构成。
实施例4的存储器控制器30C具有与实施例1的存储器控制器30中的块管理部31不同的块管理部31C。除此以外,实施例4的存储器控制器30C与实施例1的存储器控制器30是同样的构成。
实施例4的RAM 50C除了实施例1的RAM 50以外,还具有错误计数信息54。该错误计数信息54通过后记的图18详细说明。
图18是实施例4中的错误计数信息54的构成图。错误计数信息54保存与物理块编号54a对应的错误计数值54b。该错误计数值54b在数据读出时发生错误的情况下,由块管理部31C进行加法运算。
实施例4中的存储装置10C的数据读出动作与实施例1中的存储装置10同样。
图19是实施例4中的块交替处理的流程图。从而,实施例1中的图10的块交替处理的流程图、或者实施例3中的图15的块交替处理的流程图被置换为图16而处理。另外,与实施例1中的块交替处理的流程图相同的要素附了相同的符号。
在图19中,步骤S20到步骤S26的处理与实施例1同样。在将图19与实施例1的图8相比较时,判断步骤S21和S23的判断顺序不同,但是,总而言之,作为错误数为阈值2以上且不足阈值3时的处理,仅仅在追加了步骤S50、S51这一点上不同。
由此,作为错误数为阈值2以上且不足阈值3时的处理,在步骤S50中,存储器控制器30C内的块管理部31C从RAM 50C读出错误计数信息54,将与发生错误的块一致的物理块编号54a的错误计数值54b加一。
在步骤S51中,块管理部31C判断在步骤S50中进行加法运算后的错误计数值54b是否为阈值4以上。如果错误计数值54b为阈值4以上,则转移到步骤S22的处理,如果为不足阈值4则结束块交替处理。
实施例4中的存储装置10C的向空块的数据移动处理与实施例1中的存储装置10同样。
在以上说明的实施例4中,总而言之是以下这样的实施例:在实施例1中,当空块的数为阈值1以上、且在读出的数据中包含阈值2以上且不足阈值3的错误时,对该数据的错误次数进行计数,在错误计数值成为阈值4以上时作为消耗块62使用,由此具有如下效果。
存储装置10C中的存储器控制器30C内的块管理部31C在数据读出时发生了阈值2以上且不足阈值3的错误时,对相应块的错误计数值54b进行加法运算。然后,将错误计数值54b为阈值4以上的块在消耗块管理表53登记。由此,继续使用仅仅发生突发错误的数据块60,长期性地发生错误的数据块60成为消耗块62。因而,与通过1次的错误发生数来判定的情况相比,判定精度更佳,且能够兼顾存储装置10C的运转时间和可靠性的提高。
(实施例5)
在本实施例中,说明能够进一步延长运转时间并提高可靠性的存储装置的例子。
图20表示实施例5中的硬件构成图的例子。另外,对与实施例1中的硬件构成图相同的要素附了相同的符号。
实施例5中的存储装置10D具有与实施例1中的存储装置10的存储器控制器30不同的存储器控制器30D。另外,实施例5中的存储装置10D具有与实施例1中的存储装置10的RAM 50不同的RAM 50D。除此以外,实施例5的存储装置10D与实施例1的存储装置10是同样的构成。
实施例5的存储器控制器30D具有与实施例1的存储器控制器30中的块管理部31不同的块管理部31D。除此以外,实施例5的存储器控制器30D与实施例1的存储器控制器30是同样的构成。
实施例5的RAM 50D具有与实施例1的RAM 50中的逻辑/物理地址变换表51不同的逻辑/物理地址变换表51D。除此以外,实施例5的RAM 50D与实施例1的RAM 50是同样的构成。
图21是实施例5中的逻辑/物理地址变换表51D的构成图。实施例5的逻辑/物理地址变换表51D由2个物理地址和有效标志构成。物理地址A(51e)取代实施例1的逻辑/物理地址变换表51中的物理地址51b,另外具有物理地址B(51i)。
有效标志B(51h)表示与逻辑页面地址51a对应的物理地址B(51i)是否有效,有效时为“1”,无效时为“0”。
物理地址B(51i)是与逻辑页面地址51a对应的非易失性存储器40的物理地址,保存与物理地址A(51e)不同的物理地址。另外,该物理地址B(51i)由物理块编号B(51j)和物理页面编号B(51k)的组合构成。
图22是实施例5中的数据读出处理的流程图。从而,实施例1中的图7的数据读出处理的流程图被置换为图22而处理。另外,与实施例1中的数据读出处理的流程图相同的要素附了相同的符号。
步骤S10、步骤S13到步骤S16、步骤S18到步骤S19进行与实施例1同样的处理。以下,对于图22的处理的流程按顺序说明。
首先,在步骤S10中,存储器控制器30内的块管理部31D经由I/F控制部20从命令处理装置3接收读出对象的逻辑地址和数据尺寸。
在步骤S11D中,存储器控制器30D内的块管理部31D将步骤S10中从命令处理装置3接收的逻辑地址变换为逻辑页面地址51a。其后,块管理部31D使用逻辑/物理地址变换表51D,读出与逻辑页面地址51a对应的物理地址A(51e)。
在步骤S12D中,块管理部31D对非易失性存储器控制部33进行指示,以使得从在步骤S11D中读出的物理地址A(51e)读出数据。非易失性存储器控制部33按照来自块管理部31D的指示,从非易失性存储器40读出数据。
在步骤S13中,非易失性存储器控制部33将在步骤S12D中从非易失性存储器40读出的数据转发到错误更正电路32。错误更正电路32判断从非易失性存储器控制部33接收的数据中是否包含错误。
此时,如果在数据中包含错误,则转移到步骤S14的处理。如果在数据中不包含错误,则向块管理部31D转送数据后,转移到步骤S19的处理。
在步骤S14中,错误更正电路32判断在数据中包含的错误是否能够更正。在能够更正时转移到步骤S15的处理,在不能更正时转移到步骤S60的处理。
在步骤S15中,错误更正电路32进行数据内的错误更正。此时,错误更正电路32将更正后的数据向块管理部31D转送,并将更正的错误数通知给块管理部31D。
在步骤S16中,块管理部31D经由I/F控制部20,将更正后的数据向命令处理装置3转送。
在步骤S17D中,块管理部31D实施块交替处理A。关于该块交替处理A通过后记的图24详细说明。
另一方面,在步骤S14中,在被设为不能更正的步骤S60的处理中,块管理部31D判定与逻辑/物理地址变换表51D的逻辑页面地址51a对应的有效标志B(51h)是否为“1:物理地址B为有效”。如果有效标志B(51h)为“1:物理地址B为有效”,则进行步骤S61的处理,如果为“0:物理地址B为无效”,则进行步骤S18的处理。
在步骤S18中,错误更正电路32将不能进行错误更正的情况通知块管理部31D。块管理部31D接受来自错误更正电路32的通知,经由I/F控制部20向命令处理装置3通知数据读出错误。
在步骤S61中,块管理部31D实施来自物理地址B的数据读出。该来自物理地址B的数据读出通过后记的图23详细说明。
图23是实施例5中来自物理地址B的数据读出处理的流程图。另外,图23中来自物理地址B的数据读出处理执行基本上与实施例1中的图7的数据读出处理的流程图相同的处理。对与实施例1中的数据读出处理的流程图相同的要素标记了相同的符号。
在图23的作为最初的处理即步骤S11E中,存储器控制器30D内的块管理部31D使用逻辑/物理地址变换表51D,读出与逻辑页面地址51a对应的物理地址B(51i)。
在步骤S12E中,块管理部31D对非易失性存储器控制部33进行指示,以使得从在步骤S11E中读出的物理地址B(51i)读出数据。非易失性存储器控制部33按照块管理部31D的指示,从非易失性存储器40读出数据。
在步骤S13到步骤S16、步骤S18到步骤S19进行与实施例1同样的处理。图23的数据读出处理的流程图与图7不同的本质的点是采用了块交替处理B这一点。
在步骤S17E中,块管理部31D实施块交替处理B。关于该块交替处理B通过后记的图25详细说明。这样,在实施例5中,执行2个块交替处理。首先,说明图24的块交替处理A,其后说明图25的块交替处理B。
图24表示实施例5、步骤S17D中的块交替处理A的流程图。另外,对与实施例1、图8中的块交替处理的流程图相同的要素附了相同的符号。
步骤S20到步骤S26的处理与实施例1同样。
首先,在步骤S20中,块管理部31D判断在空块管理表52登记的空块数是否为阈值1以上。如果空块数为阈值1以上,则转移到步骤S21的处理,如果空块数为不足阈值1,则转移到步骤S25的处理。
另外,如图5所示,在空块管理表52的空块条目编号52a登记的空块61最大为C个。这里,其中,参照有效标志52b的信息,抽出能够使用(数据“1”)的个数,将其与阈值1比较。
在步骤S21中,块管理部31D判断从错误更正电路32通知的错误数是否为阈值2以上。如果错误数为阈值2以上,则转移到步骤S70的处理,如果为不足阈值2,则结束块交替处理A。
在步骤S70中,块管理部31D实施向空块A的数据移动处理。该向空块A的数据移动处理通过后记的图26详细说明。
在向空块的数据移动后的步骤S23中,块管理部31D判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上,则结束块交替处理A,如果为不足阈值3,则转移到步骤S24的处理。另外,阈值3是比阈值2大的值。
在步骤S24中,块管理部31D从RAM 50读出消耗块管理表53(图6),检索有效标志53b成为“0:不能作为消耗标志使用”的消耗块条目编号53a。然后,在相应的消耗块条目编号53a的物理块编号53c登记发生错误的块编号,将有效标志53b变更为“1:能够作为消耗标志使用”。在步骤S24的处理完成后,块管理部31D结束块交替处理A。
另一方面,在步骤S25中,块管理部31D判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上,则转移到步骤S70的处理(向空块A的数据移动处理),如果为不足阈值3,则结束块交替处理。
步骤S70的向空块A的数据移动处理执行与前述相同的处理,这里省略说明。
在后续的步骤S71中,块管理部31D判定与逻辑/物理地址变换表51D的逻辑页面地址51a对应的有效标志B(51h)是否为“0:物理地址B为无效”。如果有效标志B(51h)为“0:物理地址B为无效”,则转移到步骤S72的处理,如果有效标志B(51h)为“1:物理地址B为有效”,则结束块交替处理A。
在步骤S72中,块管理部31D实施向空块B的数据移动处理。该向空块B的数据移动处理通过后记的图27详细说明。
在步骤S26中,块管理部31D实施空块补充处理。该空块补充处理如通过图10详细说明的那样,这里省略说明。在步骤S26的处理完成后,块管理部31D结束块交替处理A。
图25是实施例5中的块交替处理B的流程图。另外,对与块交替处理A相同的要素标记了相同的符号。
在步骤S25中,块管理部31D判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上则转移到步骤S72的处理,如果为不足阈值3则转移到步骤S70的处理。
这里,步骤S70及步骤S72的处理与实施例5的块交替处理A同样。总之,如果错误数为阈值3以上,则执行向空块B的数据移动处理、向空块A的数据移动处理、空块的补充,如果错误数为不足阈值3,则执行向空块A的数据移动处理和空块的补充。
另外,在步骤S26的处理中,块管理部31D实施空块补充处理。该空块补充处理如通过图10详细说明的那样。
图26是实施例5中向空块A的数据移动处理的流程图。另外,对与实施例1、图9中向空块的数据移动处理相同的要素标记了相同的符号。
首先,在步骤S30中,块管理部31D从RAM 50读出空块管理表52(图5),选择一个有效标志52b成为“1:能够作为空块使用”的空块条目编号52a,取得其物理块编号52c。这里,空块条目编号52a的选择方式没有特别限定,例如也可以如FIFO(First In First Out)那样从登记早的条目按顺序选择。
在步骤S31中,块管理部31D向非易失性存储器控制部33进行指示,以使得将发生错误的数据块60保持的数据拷贝到通过步骤S30选择的物理块编号52c。非易失性存储器控制部33按照块管理部31D的指示,实施向所选择的块的数据拷贝。另外,在数据拷贝完成后,块管理部31D向非易失性存储器控制部33进行指示,以使得将发生错误的数据块60的数据删除。非易失性存储器控制部33按照来自块管理部31D的指示,删除相应块内的数据。
接着,在步骤S32D中,块管理部31D在逻辑/物理地址变换表51D中将与所拷贝的数据的逻辑页面地址51a对应的物理地址A(51e)更新为作为拷贝目的地的空块61的编号。
最后,在步骤S33中,块管理部31D在空块管理表52(图5)中将通过步骤S30选择的空块条目编号52a的有效标志52b变更为“0:不能作为空块使用”。
图27是实施例5中向空块B的数据移动处理的流程图。另外,对与实施例1中向空块的数据移动处理相同的要素标记了相同的符号。
在该图中,步骤S30到步骤S31、步骤S33的处理与图25同样,因此这里仅仅说明步骤S32E。
在步骤S32E中,块管理部31D在逻辑/物理地址变换表51D中将与所拷贝的数据的逻辑页面地址51a对应的物理地址B(51i)更新为作为拷贝目的地的空块61的编号。另外,将与逻辑页面地址51a对应的有效标志B(51h)变更为“1:物理地址B为有效”。
以上说明的实施例5中,具有如下效果。
空块管理表52内的空块数成为不足阈值1时,补充消耗块62作为空块61。因此,在空块管理表52内,原来为空块61的可靠性高的块和原本为消耗块62的可靠性低的块成为混杂的状态。
实施例5中,在成为该状态的情况下,在从发生错误的数据块60向空块61移动数据时,对2个空块61保存相同的数据。这样,通过使数据二重化,即使在将可靠性低的块选择为数据移动目的地的空块61的情况下,也能够降低移动的数据被丢失的可能性,能够提高存储装置10D的可靠性。
(实施例6)
本实施例是实施例5的变形例。
图28表示实施例6中的硬件构成图的例子。另外,对与实施例5中的硬件构成图相同的要素附了相同的符号。
实施例6中的存储装置10E具有与实施例5中的存储装置10D的存储器控制器30D不同的存储器控制器30E。除此以外,实施例6的存储装置10E与实施例5的存储装置10D是同样的构成。
实施例6的存储器控制器30E具有与实施例5的存储器控制器30D中的块管理部31D不同的块管理部31E。除此以外,实施例6的存储器控制器30E与实施例5的存储器控制器30D是同样的构成。
实施例6中的数据读出动作与实施例5同样。
实施例6中的从物理地址B的数据读出动作与实施例5同样。
图29表示实施例6中的块交替处理A的流程图。另外,对与实施例5中的块交替处理A的流程图相同的要素标记相同的符号。
在步骤S20D中,块管理部31E判定在空块管理表52是否登记了一个以上的空块61。在登记了一个以上的空块61时,进行步骤S21的处理,如果没有登记的空块61,则转移到步骤S25的处理。
步骤S21、步骤S23到步骤S25、步骤S70到步骤S71的处理与实施例5同样。
在步骤S21中,块管理部31E判断从错误更正电路32通知的错误数是否为阈值2以上。如果错误数为阈值2以上,则转移到步骤S70的处理,如果为不足阈值2,则结束块交替处理A。
在步骤S70中,块管理部31E实施向空块A的数据移动处理。该向空块A的数据移动处理如通过图26说明的那样。
在向空块的数据移动后的步骤S23中,块管理部31E判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上,则结束块交替处理A,如果为不足阈值3则转移到步骤S24的处理。另外,阈值3是比阈值2大的值。
在步骤S24中,块管理部31E从RAM 50读出消耗块管理表53(图6),检索有效标志53b成为“0:不能作为消耗标志使用”的消耗块条目编号53a。然后,在相应的消耗块条目编号53a的物理块编号53c登记发生错误的块编号,将有效标志53b变更为“1:能够作为消耗标志使用”。在步骤S24的处理完成后,块管理部31E结束块交替处理A。
另一方面,在步骤S25中,块管理部31E判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上,则转移到步骤S80的处理(向空块的数据移动处理),如果为不足阈值3,则结束块交替处理A。
在步骤S80中,块管理部31E实施向消耗块A的数据移动处理。该向消耗块A的数据移动处理通过后记的图31详细说明。
在后续的步骤S71中,块管理部31E判定与逻辑/物理地址变换表51D的逻辑页面地址51a对应的有效标志B(51h)是否为“0:物理地址B为无效”。如果有效标志B(51h)为“0:物理地址B为无效”,则转移到步骤S81的处理,如果有效标志B(51h)为“1:物理地址B为有效”,则结束块交替处理A。
在步骤S81中,块管理部31E实施向消耗块B的数据移动处理。该向消耗块B的数据移动处理通过后记的图32详细说明。在步骤S81处理的完成后,块管理部31E结束块交替处理A。
图30是实施例6中的块交替处理B的流程图。另外,对与实施例6中的块交替处理A相同的要素标记相同的符号。
首先,在步骤S25中,块管理部31E判断从错误更正电路32通知的错误数是否为阈值3以上。如果错误数为阈值3以上,则转移到步骤S81的处理,如果为不足阈值3则转移到步骤S80的处理。总之,如果错误数为阈值3以上,则向消耗块B和消耗块A移动数据,如果错误数为不足阈值3,则仅仅向消耗块A移动数据。
步骤S80及步骤S81的处理与实施例6中的块交替处理A同样。
图31是实施例6中向消耗块A的数据移动处理的流程图。
在步骤S90中,块管理部31E从RAM 50D读出消耗块管理表53,选择一个有效标志53B成为“1:物理地址B为有效”的消耗块条目编号53a,取得其物理块编号53c。
在步骤S91中,块管理部31E向非易失性存储器控制部33进行指示,以使得将发生错误的数据块60保持的数据拷贝到通过步骤S90选择的物理块编号53c。非易失性存储器控制部33按照块管理部31E的指示,实施向所选择的块的数据拷贝。另外,数据拷贝完成后,块管理部31E向非易失性存储器控制部33发出指示,以使得将发生错误的数据块60的数据删除。非易失性存储器控制部33按照来自块管理部31E的指示,删除相应块内的数据。
在步骤S92中,块管理部31E在逻辑/物理地址变换表51D中将与拷贝的数据的逻辑页面地址51a对应的物理地址A(51e)更新为作为拷贝目的地的消耗块62的编号。
在步骤S93中,块管理部31E在消耗块管理表53中将通过步骤S80选择的消耗块条目编号53a的有效标志53B变更为“0:物理地址B为无效”。在步骤S93的处理完成后,块管理部31E完成向消耗块A的数据移动处理。
图32是实施例6中向消耗块B的数据移动处理的流程图。另外,对与实施例6中向消耗块A的数据移动处理的流程图相同的要素附了相同的符号。
步骤S90、步骤S91、步骤S93的处理与实施例6中向消耗块A的数据移动处理同样。
在步骤S94中,块管理部31E在逻辑/物理地址变换表51D中将与拷贝的数据的逻辑页面地址51a对应的物理地址B(51i)更新为作为拷贝目的地的消耗块62的编号。另外,将与逻辑页面地址51a对应的有效标志B(51h)变更为“1:物理地址B为有效”。
以上说明的实施例6中,具有如下效果。
通过将块管理中使用的阈值1的值设定成1,块管理部31E在空块61消失之前不使用消耗块62。消耗块62是已经发生阈值2以上的错误的块,因此,与空块61相比可靠性低。与可靠性低的消耗块62相比,先使用空块61,从而能够提高存储装置10E的可靠性。
另外,本发明不限于上述实施例,包含各种变形例。例如,上述实施例为了容易理解本发明而说明,进行了详细说明,但是并不一定限定为具备所说明的全部构成。另外,能够将某实施例的构成的一部分置换为其他实施例的构成,也能够在某实施例的构成添加其他实施例的构成。另外,对各实施例的一部分也能够进行其他构成的追加、删除、置换。
另外,上述的各构成、功能、处理部、处理单元等也可以例如通过由集成电路进行设计等而以硬件方式来实现它们的一部分或全部。另外,上述的各构成、功能等也可以通过由处理器解释、执行实现各个功能的程序而以软件方式来实现。实现各功能的程序、表、文件等的信息能够置于存储器、硬盘、SSD(Solid State Drive)等的记录装置,或IC卡、SD卡、DVD等的记录介质。
另外,仅仅示出了考虑为说明上需要的控制线、信息线,未必限定为示出了产品上全部的控制线、信息线。实际上,可以考虑为几乎全部的构成都相互连接。
Claims (18)
1.一种存储器的管理方法,是由作为删除单位的多个块构成存储器,并将该存储器的多个块分为多个数据块、多个空块和消耗块而使用的存储器的管理方法,其特征在于,
从上述存储器读出数据时进行数据校验,在所读出的数据的错误数为不足阈值2时,将保持着该数据的数据块作为数据块继续使用,在所读出的数据的错误数为阈值3以上时,将保持着该数据的数据块废弃,
在上述空块的数为阈值1以上、且在所读出的数据包含阈值2以上且不足阈值3的错误时,将保持着该数据的数据块设为消耗块,
在上述空块的数为不足上述阈值1、且在所读出的数据包含阈值3以上的错误时,将上述消耗块作为上述空块使用。
2.如权利要求1所述的存储器的管理方法,其特征在于,
将上述消耗块作为上述空块使用时,优先地使用发生错误数小的消耗块。
3.如权利要求1所述的存储器的管理方法,其特征在于,
在上述空块的数为阈值1以上、且在所读出的数据包含阈值2以上且不足阈值3的错误时,对该数据的错误次数进行计数,在错误计数值成为阈值4以上时,作为消耗块使用。
4.如权利要求1所述的存储器的管理方法,其特征在于,
在上述空块的数为阈值1以上、且在所读出的数据包含阈值2以上且不足阈值3的错误时,将发生错误的数据块内的数据向上述空块移动,并将该数据块设为上述消耗块,
在上述空块的数为不足上述阈值1、且在所读出的数据包含阈值3以上的错误时,将发生错误的数据块内的数据向上述消耗块移动,将上述消耗块作为上述空块使用。
5.一种存储装置,具备:非易失性存储器,具有作为某规定的写入单位的页面、以及作为比上述写入单位大的删除单位的块;RAM,能够进行数据的读出及写入;存储器控制器,进行向上述非易失性存储器及上述RAM的读出及写入处理,该存储装置的特征在于,
上述RAM具有管理空块的空块管理表、以及管理消耗块的消耗块管理表,
上述存储器控制器当在上述空块管理表登记的空块的数为阈值1以上、且在从上述非易失性存储器读出的数据包含阈值2以上且不足阈值3的错误时,将保持着该数据的数据块在上述消耗块管理表登记为消耗块,当在上述空块管理表登记的空块的数为不足上述阈值1时,将在上述消耗块管理表登记的消耗块在上述空块管理表登记为空块。
6.如权利要求5所述的存储装置,其特征在于,
在所读出的数据的错误数为不足阈值2时,将保持着该数据的数据块作为数据块继续使用,在所读出的数据的错误数为阈值3以上时,将保持着该数据的数据块废弃。
7.如权利要求5所述的存储装置,其特征在于,
上述存储器控制器具有阈值设定寄存器,
通过上述阈值设定寄存器的值,变更上述阈值1、上述阈值2、上述阈值3的值。
8.如权利要求5所述的存储装置,其特征在于,
上述消耗块管理表具有发生错误数,
上述存储器控制器当将在上述消耗块管理表登记的消耗块在上述空块管理表登记为空块时,优先地登记上述发生错误数小的消耗块。
9.如权利要求5所述的存储装置,其特征在于,
上述存储器控制器当在上述空块管理表登记的空块的数为不足阈值1、且在从上述非易失性存储器读出的数据包含阈值3以上的错误时,将发生错误的数据块内的数据向在上述空块管理表登记的多个空块移动。
10.一种存储装置,具备:非易失性存储器,具有作为某规定的写入单位的页面、以及作为比上述写入单位大的删除单位的块;RAM,能够进行数据的读出及写入;存储器控制器,进行向上述非易失性存储器及上述RAM的读出及写入处理,该存储装置的特征在于,
上述RAM具有管理空块的空块管理表、以及管理消耗块的消耗块管理表,
上述存储器控制器当在上述空块管理表登记的空块的数为阈值1以上、且在从上述非易失性存储器读出的数据包含阈值2以上且不足阈值3的错误时,将保持着该数据的数据块的错误计数值加1,上述错误计数值为阈值4以上时,将上述数据块在上述消耗块管理表登记为消耗块,在上述空块管理表登记的空块的数为不足上述阈值1时,将在上述消耗块管理表登记的消耗块在上述空块管理表登记为空块。
11.如权利要求10所述的存储装置,其特征在于,
上述存储器控制器具有阈值设定寄存器,
通过上述阈值设定寄存器的值,变更上述阈值1、上述阈值2、上述阈值3、上述阈值4的值。
12.如权利要求10所述的存储装置,其特征在于,
上述消耗块管理表具有发生错误数,
上述存储器控制器当将在上述消耗块管理表登记的消耗块在上述空块管理表登记为空块时,优先地登记上述发生错误数小的消耗块。
13.权利要求10所述的存储装置,其特征在于,
上述存储器控制器当在上述空块管理表登记的空块的数为不足阈值1、且在从上述非易失性存储器读出的数据包含阈值3以上的错误时,将发生错误的数据块内的数据向在上述空块管理表登记的多个空块移动。
14.一种存储装置,具备:非易失性存储器,具有作为某规定的写入单位的页面、以及作为比上述写入单位大的数据删除单位的块;RAM,能够进行数据的读出及写入;存储器控制器,进行向上述非易失性存储器及上述RAM的读出及写入处理,该存储装置的特征在于,
上述RAM具有管理空块的空块管理表、以及管理消耗块的消耗块管理表,
上述存储器控制器当在上述空块管理表登记了空块、且在从上述非易失性存储器读出的数据包含阈值2以上且不足阈值3的错误时,将发生错误的数据块内的数据向在上述空块管理表登记的空块移动,并将上述数据块在上述消耗块管理表登记为消耗块,当在上述空块管理表未登记有空块、且在从上述非易失性存储器读出的数据包含阈值3以上的错误时,将发生错误的数据块内的数据向在上述消耗块管理表登记的消耗块移动。
15.如权利要求14所述的存储装置,其特征在于,
上述存储器控制器具有阈值设定寄存器,
通过上述阈值设定寄存器的值,变更上述阈值1、上述阈值2、上述阈值3的值。
16.如权利要求14所述的存储装置,其特征在于,
上述消耗块管理表具有发生错误数,
上述存储器控制器将发生错误的数据块内的数据向上述消耗块管理表登记的消耗块移动时,优先地选择上述发生错误数小的消耗块。
17.如权利要求14所述的存储装置,其特征在于,
上述存储器控制器对上述消耗块移动上述数据块内的数据时,对多个消耗块移动上述数据。
18.一种具有命令处理装置和存储装置的计算机,其特征在于,
具有权利要求5所述的存储装置作为上述存储装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-091671 | 2012-04-13 | ||
JP2012091671A JP2013222236A (ja) | 2012-04-13 | 2012-04-13 | メモリの管理方法、記憶装置およびそれを搭載した計算機 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103377136A true CN103377136A (zh) | 2013-10-30 |
Family
ID=49326201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101259080A Pending CN103377136A (zh) | 2012-04-13 | 2013-04-12 | 存储器的管理方法、存储装置及搭载了该存储装置的计算机 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9026892B2 (zh) |
JP (1) | JP2013222236A (zh) |
CN (1) | CN103377136A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105723344A (zh) * | 2013-11-01 | 2016-06-29 | 高通股份有限公司 | 用于非易失性ram差错重映射的方法和装置 |
CN105874434A (zh) * | 2014-01-02 | 2016-08-17 | 高通股份有限公司 | 比特重映射系统 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372551B2 (en) * | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
US9536577B2 (en) * | 2013-09-26 | 2017-01-03 | Intel Corporation | Data movement in memory devices |
US9299457B2 (en) | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
KR20180012009A (ko) * | 2016-07-26 | 2018-02-05 | 에스케이하이닉스 주식회사 | 데이터 맵핑을 수행하는 반도체 장치 및 시스템 |
JP6819319B2 (ja) * | 2017-01-27 | 2021-01-27 | 日本電気株式会社 | 情報処理システムおよび情報処理システムの制御方法 |
KR20180106494A (ko) * | 2017-03-20 | 2018-10-01 | 에스케이하이닉스 주식회사 | 반도체장치 |
CN113074053B (zh) * | 2021-05-07 | 2023-07-18 | 潍柴动力股份有限公司 | V型发动机两排气缸运行的优先级方法、装置以及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1653340A1 (en) * | 2004-10-27 | 2006-05-03 | Sony Corporation | Storage device and information processing system |
TW200809487A (en) * | 2006-06-30 | 2008-02-16 | Toshiba Kk | Memory controller and semiconductor memory device |
US20110302477A1 (en) * | 2010-06-03 | 2011-12-08 | Seagate Technology Llc | Data Hardening to Compensate for Loss of Data Retention Characteristics in a Non-Volatile Memory |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007132456A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
JP2010086404A (ja) | 2008-10-01 | 2010-04-15 | Hagiwara Sys-Com:Kk | メモリの管理方法及びフラッシュメモリデバイス |
US8949515B2 (en) | 2009-12-03 | 2015-02-03 | Hitachi, Ltd. | Storage device and memory controller |
JP5295286B2 (ja) | 2011-02-23 | 2013-09-18 | 株式会社日立製作所 | 記憶装置およびそれを搭載した計算機 |
-
2012
- 2012-04-13 JP JP2012091671A patent/JP2013222236A/ja active Pending
-
2013
- 2013-04-09 US US13/859,131 patent/US9026892B2/en not_active Expired - Fee Related
- 2013-04-12 CN CN2013101259080A patent/CN103377136A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1653340A1 (en) * | 2004-10-27 | 2006-05-03 | Sony Corporation | Storage device and information processing system |
TW200809487A (en) * | 2006-06-30 | 2008-02-16 | Toshiba Kk | Memory controller and semiconductor memory device |
US20110302477A1 (en) * | 2010-06-03 | 2011-12-08 | Seagate Technology Llc | Data Hardening to Compensate for Loss of Data Retention Characteristics in a Non-Volatile Memory |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105723344A (zh) * | 2013-11-01 | 2016-06-29 | 高通股份有限公司 | 用于非易失性ram差错重映射的方法和装置 |
CN105874434A (zh) * | 2014-01-02 | 2016-08-17 | 高通股份有限公司 | 比特重映射系统 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
US9026892B2 (en) | 2015-05-05 |
JP2013222236A (ja) | 2013-10-28 |
US20130275836A1 (en) | 2013-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377136A (zh) | 存储器的管理方法、存储装置及搭载了该存储装置的计算机 | |
TWI492225B (zh) | 記憶體系統及其耗損平均方法 | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
TWI590049B (zh) | 記憶體裝置與其操作方法 | |
CN104216665B (zh) | 多层单元固态硬盘的存储管理方法 | |
US9665481B2 (en) | Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit | |
CN109753443B (zh) | 一种数据处理方法、装置及电子设备 | |
TW201214121A (en) | Method for performing block management, and associated memory device and controller thereof | |
US20170336992A1 (en) | Method, device, and program for managing a flash memory for mass storage | |
US10310766B2 (en) | Memory system and data relocating method | |
US10635527B2 (en) | Method for processing data stored in a memory device and a data storage device utilizing the same | |
US9582224B2 (en) | Memory control circuit unit, memory storage apparatus and data accessing method | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
JP6317039B2 (ja) | メモリウェアレベリング | |
CN108415853A (zh) | 一种垃圾回收的方法、装置及存储设备 | |
US8527733B2 (en) | Memory system | |
US20180107386A1 (en) | Data storage device and operating method thereof | |
TW201833781A (zh) | 管理裝置、資訊處理裝置及管理方法 | |
JP2008276832A (ja) | 半導体記憶装置およびその駆動方法 | |
JP2019028572A (ja) | 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム | |
CN106326135B (zh) | 一种平移非易失性存储器nvm的数据的方法及装置 | |
US20170115925A1 (en) | Valid data merging method, memory controller and memory storage apparatus | |
KR20180039802A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
JP2014186772A (ja) | 半導体記憶装置、コントローラ、及びメモリシステム | |
JP2012123498A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131030 |