CN101185067A - 存储器控制器、非易失性存储装置、非易失性存储系统及存储器控制方法 - Google Patents
存储器控制器、非易失性存储装置、非易失性存储系统及存储器控制方法 Download PDFInfo
- Publication number
- CN101185067A CN101185067A CNA2006800177503A CN200680017750A CN101185067A CN 101185067 A CN101185067 A CN 101185067A CN A2006800177503 A CNA2006800177503 A CN A2006800177503A CN 200680017750 A CN200680017750 A CN 200680017750A CN 101185067 A CN101185067 A CN 101185067A
- Authority
- CN
- China
- Prior art keywords
- address
- write
- memory
- nonvolatile memory
- read
- 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.)
- Granted
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
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种存储器控制器,其能够避免在正常动作时由于地址管理表的写回处理所引起的存取速度下降,并且能够缩短在存储器卡初始化时地址管理表的生成时间。存储器控制器(114)具有,暂时存储地址管理表(112)的读写存储器(113);存储器控制部(122),在数据的写入目标的物理块从某地址范围切换到其它地址范围时,其向非易失性存储器(115)写入读写存储器中暂时存储的地址管理表和用于将切换后的地址范围特定下来的地址范围确定信息;以及地址管理表生成部(107),在初始化时基于地址范围确定信息,读取在特定的地址范围内中包含的、用于管理物理块的状态的分布管理信息,并基于读取的分布管理信息生成地址管理表(112)。
Description
技术领域
本发明涉及具备以快闪存储器作为主存储器的半导体存储卡等的非易失性存储装置,以及内置于该非易失性存储装置内的存储器控制器、具有非易失性存储装置和存取装置的非易失性存储系统及存储器控制方法。
背景技术
具备可重写的非易失性存储器的非易失性存储装置,主要是应用于半导体存储卡的需求逐步增加。并且,使用半导体存储卡的非易失性存储系统,主要是应用于数字照相机或个人计算机等的需求逐步增加。
实际使用的半导体存储器卡,通常在内部内置有作为非易失性存储器的快闪存储器以及作为控制该快闪存储器的控制电路,即控制器LSI。近些年,伴随着半导体存储器卡的大容量化需求,非易失性存储器芯片本身也通过多值化而发展为大容量。且,由于安装技术的进步,半导体存储器卡上安装的非易失性存储器的芯片个数也在增加。例如存储器空间超过1G字节的半导体存储器卡已投入使用。
半导体存储器卡中,现有技术利用分散型管理方法作为地址管理方法。所谓“分散型管理方法”是:在写入单位的页的管理区域中存储逻辑地址或者该页的状态标志,在初始化时,基于逻辑地址或页的状态标志而生成地址管理表,保存到控制器LSI内的RAM中。以下,将前述逻辑地址或该页的状态标志统称为“分布管理信息”。
然而,具有大容量存储器空间的半导体存储器卡,在初始化时,读取全部存储器空间的分布管理信息,需要很多的时间。因此,超过半导体存储器卡标准中的初始化时间上限值等的违反标准的现象就会发生。特别是,在没有标准的半导体存储器卡中,虽然没有违反标准,但是,在变为可存取状态为止的等待时间这一点上,则将缺点强加给用户。还有,暂时存储地址管理表等的RAM的容量剧增,在成本方面也有问题。
作为避免这样的问题的方法,提出了“集中型管理方法”,这在专利文献1中得以揭示。专利文献1的非易失性存储装置中,半导体存储器卡中安装的非易失性存储器的地址空间划分为多个地址范围,将与各地址范围对应的多个地址管理表存储到非易失性存储器中,根据来自主机的规定的逻辑地址的写入或擦除命令,将对应的地址管理表读入RAM。
并且,专利文献2中揭示了,分散型管理方法以及将地址管理表本身统一存储在非易失性存储器中的集中型管理方法,这两者合并使用的方法。专利文献2中揭示的方法及装置,并不是在来自主机等的存取装置的每个写入指令中,将地址管理表写回到非易失性存储器,而是在电源切断等的没有存取的规定时刻,将地址管理表写回到非易失性存储器,在初始化时判断地址管理表的有效性,如果有效就使用地址管理表,如果不是有效,就基于分散型管理信息生成地址管理表。
专利文献1:(日本)特开2001-142774号公报
专利文献2:(日本)特开平11-73379号公报
发明内容
专利文献1中,因为可以在初始化时,从非易失性存储器中只读取地址管理表,所以可在短时间内完成初始化处理。但是,为了对应电源切断等的故障,通常,来自主机的规定的对逻辑地址进行写入或擦除的每个命令中,都要更新RAM上的地址管理表,还必须在用户数据的写入或擦除之后将更新的地址管理表写回到非易失性存储器中。此方法,与前述分散型管理方法相比,具有地址管理表的写回处理的时间造成存取速度下降这样的问题。
专利文献2中,因为在不进行存取的规定时刻,向非易失性存储器写回地址管理表,所以数据写入时的存取速度不会降低。但是,由于电源切断等,如果地址管理表没有被正确地写回到非易失性存储器,就必须在初始化时,基于非易失性存储器中的全部区域的分布管理信息,生成地址管理表。这样,无法解决发生电源切断等的故障时,初始化时间变长的问题。
本发明鉴于现有技术中的问题,旨在避免通常动作时地址管理表的写回处理引起的存取速度下降,而且,即使在发生电源切断等的故障时也能缩短初始化时地址管理表的生成时间。
解决问题的手段
本发明是一种存储器控制器,其用于对具有多个由1个以上的物理块所构成的地址范围的非易失性存储器进行数据写入或读取,所述存储器控制器具有:读写存储器,其用于暂时存储对所述物理块的状态进行管理的地址管理表;存储器控制部,其在写入数据时,向所述物理块写入数据和用于生成所述地址管理表的分布管理信息,从而对所述读写存储器的所述地址管理表进行更新,在数据的写入目标从某地址范围切换到其它地址范围时,向所述非易失性存储器写入所述读写存储器中暂时存储的所述地址管理表;以及,地址管理表生成部,在初始化时,其从初始化前已存取的所述地址范围内读取所述分布管理信息,基于所读取的所述分布管理信息,在所述读写存储器上生成所述地址管理表。
本发明不需要在初始化时对非易失性存储器的全部区域的分布管理信息进行查询,所以能够缩短在初始化时地址管理表的生成时间。而且,不需要在来自存取装置的每个写入指示中,向非易失性存储器写回地址管理表,所以能够避免在通常动作时由于地址管理表的写回处理所引起的存取速度下降。
优选的是,所述地址范围是对所述非易失性存储器的存储区域进行划分得到的每个具有规定大小的区域,包含与由存取装置指定的多个逻辑单位相对应的多个物理块;所述地址管理表是统一管理所述地址范围内中包含的多个逻辑单位的表。
优选的是,所述地址范围是在由存取装置指定的每个逻辑单位提供的区域,所述地址管理表是统一管理多个所述地址范围的表。
优选的是,当数据的写入目标的物理块从某地址范围切换到其它地址范围时,所述存储器控制部向所述非易失性存储器写入用于将作为切换后的地址范围特定下来的地址范围确定信息。
优选的是,所述存储器控制部将所述地址范围确定信息,以编入到所述地址管理表的形式,写入到所述非易失性存储器。
优选的是,在初始化时,所述存储器控制部基于所述地址范围确定信息,将初始化前已存取的所述地址范围特定下来。
本发明的另一存储器控制器,其用于对具有多个由1个以上的物理块所构成的地址范围的非易失性存储器进行数据写入或读取,所述存储器控制器具有:读写存储器,其暂时存储包含第一表和第二表的地址管理表,所述第一表用于管理1个所述地址范围内的物理块的写入状态,所述第二表用于管理多个所述地址范围内的物理块的状态;存储器控制部,其在写入数据时,向所述非易失性存储器写入数据和用于生成所述地址管理表的分布管理信息,从而对所述读写存储器的所述地址管理表进行更新,在数据的写入目标从某地址范围切换到其它地址范围时,向所述非易失性存储器写入所述读写存储器中暂时存储的所述地址管理表,在初始化时,从所述非易失性存储器读取所述第二表,保存到所述读写存储器中;以及,地址管理表生成部,在初始化时,其从初始化前已存取的所述地址范围内读取所述分布管理信息,基于所读取的所述分布管理信息生成所述第一表,保存到所述读写存储器中。
本发明的非易失性存储装置包括:非易失性存储器,其具有多个由1个以上的物理块所构成的地址范围;以及,前述存储器控制器,其控制对所述非易失性存储器的数据写入或读取。
本发明的非易失性存储系统具有前述非易失性存储装置,其包含具有多个由1以上的物理块所构成的地址范围的非易失性存储器;以及,
存取装置,其指定所述地址范围,并控制对所述非易失性存储器的数据的写入或者读取。
本发明的存储器控制方法,其对非易失性存储装置进行控制,所述非易失性存储装置具有:具有多个由1个以上的物理块所构成的地址范围的非易失性存储器,以及,用于暂时存储对所述物理块的状态进行管理的地址管理表的读写存储器,所述存储器控制方法,具有下述步骤:在写入数据时,向所述物理块写入数据和用于生成所述地址管理表的分布管理信息,从而对所述读写存储器的所述地址管理表进行更新,在数据的写入地址从某地址范围切换到其它地址范围时,向所述非易失性存储器写入所述读写存储器中暂时存储的所述地址管理表的步骤;以及,在初始化时,从初始化前已存取的所述地址范围内读取所述分布管理信息,基于所读取的所述分布管理信息,在所述读写存储器上生成所述地址管理表。
发明效果
本发明能够避免在通常动作时由于地址管理表的写回处理所引起的存取速度下降,并且能够实现缩短在初始化时地址管理表的生成时间。
附图说明
图1是表示本发明第一实施方式非易失性存储系统的结构的框图。
图2是表示第一实施方式非易失性存储器的内部结构的图。
图3是表示第一实施方式物理块的结构的图。
图4是表示第一实施方式逻辑地址的格式的图。
图5是表示第一实施方式地址转换表的图。
图6是表示第一实施方式物理区域管理表的图。
图7是表示第一实施方式地址范围切换部的结构的电路图。
图8是表示第一实施方式地址范围确定信息的图。
图9是表示第一实施方式地址范围不切换时的写入顺序的图。
图10是表示第一实施方式地址范围切换时的写入顺序的图。
图11是表示本发明第二实施方式非易失性存储系统的结构的框图。
图12是表示第二实施方式非易失性存储器的内部结构的图。
图13是表示第二实施方式物理块的图。
图14是表示第二实施方式逻辑地址的格式的图。
图15是表示第二实施方式地址转换表的图。
图16是表示第二实施方式物理区域管理表的图。
图17是表示第二实施方式写入管理表的图。
图18是表示第二实施方式地址范围确定信息的图。
图19是表示第二实施方式地址范围不切换时的写入顺序的图。
图20是表示第二实施方式地址范围切换时的写入顺序的图。
图21是表示第二实施方式地址范围切换时的另一种写入顺序的图。
附图标记
100 存取装置
101 主机I/F部
102 CPU
103 RAM
104 ROM
105 地址范围切换部
106 地址范围确定部
107 地址管理表生成部
108 地址管理表控制部
109 非易失性存储器存取部
110 地址转换表
111 物理区域管理表
112 地址管理表
113 读写存储器
114 存储器控制器
115 非易失性存储器
116 用户数据区
117 地址管理表区域
118 当前地址范围编号存储区域
122 存储器控制部
123 非易失性存储装置
124 地址范围控制部
1110 地址转换表
1111 物理区域管理表
1112 地址管理表
1115 非易失性存储器
1116 用户数据区
1117 地址管理表区域
1121 写入管理表
具体实施方式
下面参照附图,具体说明表示用于实施本发明的最佳方式的实施方式。
(第一实施方式)
图1表示本实施方式中非易失性存储系统的结构。本实施方式的非易失性存储系统具有:存取装置100以及根据由存取装置100发送的用户数据(以下简称:数据)的读写命令而动作的非易失性存储装置123。
非易失性存储装置123具有:对于由存取装置100发送的数据进行保存的非易失性存储器115、以及基于存取装置100发送的读写命令和逻辑地址而控制非易失性存储器115的存储器控制器114。非易失性存储器115的存储区域被划分为多个地址范围。
(存储器控制器的内部结构)
存储器控制器114具有:主机接口部(以下称为:主机I/F部)101、用于工作的RAM103、保存程序的ROM104、以及利用用于工作的RAM103和保存于ROM 104的程序而控制存储器控制器1 14内全体的CPU 102。
存储器控制器114还具有:用于控制非易失性存储器115的存储器控制部122、用于生成地址管理表112的地址管理表生成部107、以及暂时保存地址管理表112的读写存储器113。
存储器控制部122具有:用于判断非易失性存储器115的地址范围的切换的地址范围控制部124、用于控制对非易失性存储器115的数据读写等的非易失性存储器存取部109、以及用于将读写存储器113中暂时保存的地址管理表112,通过非易失性存储器存取部109,写入到非易失性存储器115的地址管理表控制部108。
(非易失性存储器的存储区域的结构)
图2具体表示本实施方式的非易失性存储器115的存储区域的结构。图2中,非易失性存储器115是1GB,安装有8片1G比特的快闪存储器。非易失性存储器115由多个物理块211构成。在此,所谓物理块211是能够有选择地擦除的最小单位,即擦除块,在本实施方式中具有大约4kB的大小。
非易失性存储器115,在图2的长度方向上划分为地址范围0~地址范围7这8个地址范围,在宽度方向上划分为存储体(bank)0~存储体3这4个存储体。各地址范围由4k块物理块211构成。各地址范围具有用于保存数据的用户数据区116和用于保存地址管理表112的地址管理表区域117。本实施方式中,各地址范围中设立的地址管理表区域117里存储对应于各个地址范围的地址管理表112。
地址管理表区域117从低位侧(图2中的上侧)开始顺序保存地址管理表112。然后,依序擦除不用的旧的地址管理表112,以存储新的地址管理表112。这样,可以重复使用地址管理表区域117。例如,在存取装置100发出写入命令,有效数据被写入到非易失性存储器115中的状态下,如果地址范围1的最新地址管理表被写入到2047_a0~2047_d0,相对低位侧(图2中的上侧)的2046_a1~2046_d1与2046_a0~2046_d0中保存的地址管理表被擦除,成为无效块。之后,成为无效块的区域在后面会用到。
非易失性存储器115还具有,用于保存如图8所示的地址范围确定信息801(后面详述)的当前地址范围编号存储区域118。本实施方式中,当前地址范围编号存储区域118设于地址范围7的高位侧。地址范围7的用户数据区116与地址管理表区域117的大小之和,比其它地址范围的大少更小。未使用非易失性存储器115时,当前地址范围编号存储区域118从低位侧(图2中的上侧)开始顺序保存地址范围确定信息801。之后,为了能够存储新的地址范围确定信息801,不用的旧地址范围确定信息801被顺序擦除。这样,可以重复使用当前地址范围编号存储区域118。
非易失性存储器115中,关于写入安全相关信息或制造商代码等的所谓系统区域,省略说明。
图3表示本实施方式物理块211的具体示例。物理块211有页0和页1这2页。页是写入单位,在图2中,最大同时写入数是每页4个存储体,即最大4页。各页具有2048字节的数据区域212与64字节的管理区域213。1扇区是512字节,数据区域212由4个扇区构成。数据区域212是来自存取装置100的数据被写入的区域。页0的管理区域213中,保存着分布管理信息214。分布管理信息214包含存取装置100所指定的逻辑块编号,以及表示物理块21 1的状态(status)的块状态。来自存取装置100的数据被写入到页0中的数据区域212时,分布管理信息214被写入到页0中的管理区域213。
(逻辑地址的格式)
图4表示本实施方式存取装置100向非易失性存储装置123发送的逻辑地址400的格式。图4中的逻辑地址400的格式中,比特0~比特1(b0~b1)是扇区编号401;比特2~比特3(b2~b3)是存储体编号402;比特4(b4)是页编号403。比特5~比特14(b5~b14)中的编号404与存储体编号402共12比特是逻辑块编号411;比特15~比特17(b15~b17)是地址范围编号405。利用3比特的地址范围编号405,指定非易失性存储器115的地址范围0~7。且,对应于逻辑块编号411的12比特,是向物理块编号412进行地址转换的对象。
(地址管理表的结构)
回到图1,地址管理表112包含地址转换表110与物理区域管理表111。
图5表示本实施方式地址转换表110。地址转换表110是将由存取装置100指定的逻辑地址400中所包含的逻辑块编号411,转换成非易失性存储器115内的物理块编号412的表。地址转换表110表示与每个逻辑块编号411相对应的物理块编号412。本实施方式中,为了在每个地址范围生成地址转换表110,地址转换表110包含用4096个逻辑块编号411所指定的物理块编号412。
图6表示本实施方式物理区域管理表111。物理区域管理表111是存储非易失性存储器115内的擦除单位即物理块211的状态,即,记录有效数据是否存储在物理块211等的块状态的表。物理区域管理表111表示非易失性存储器115的每个物理块编号412中的各物理块的状态。表示物理块的状态的块状态包含有效块、无效块、坏块等。2进制的“00”表示已写入有效数据的有效块;2进制的“11”表示数据已擦除或者已写入的数据是无用数据的无效块。2进制的“10”表示存储单元上的由于硬伤(solid error)等造成不能使用的坏块。这样,块状态至少包含3种状态。本实施方式中,因为在每个地址范围内生成物理区域管理表111,所以物理区域管理表111保存与4096个物理块编号412相对应的块状态。
(地址管理表的生成)
图1所示地址管理表生成部107,在电源接通等引起初始化时,基于用户数据区116中保存的分布管理信息214而生成地址管理表112,存储在读写存储器113上。本实施方式中,只读取从当前地址范围编号存储区域118读取的地址范围中的用户数据区116中存储的分布管理信息214。换言之,初始化时,生成地址范围0~7中的任一个地址范围的地址管理表112。
读写存储器113是诸如SRAM等的易失性存储器或者诸如强电介质存储器等的非易失性存储器,暂时存储地址管理表112。根据存取装置100的指示而进行的数据写入是参考读写存储器113中保存的地址管理表112,一边更新一边进行。
存储器控制部122,根据来自存取装置100的写入指示,向用户数据区116写入数据和分布管理信息214。此时,存储器控制部122内的地址管理表控制部108更新在读写存储器113中暂时存储的地址管理表112。当存取装置100所指示的写入地址从当前地址范围切换到其它地址范围时,地址管理表控制部108通过非易失性存储器存取部109,向当前地址范围的地址管理表区域117写入在读写存储器113中暂时存储的地址管理表112。
(地址范围确定信息的写入)
地址范围确定信息801是用于将切换后的地址范围特定下来的信息。图8表示本实施方式地址范围确定信息801。地址范围确定信息801包含:用于识别时间的前后关系的时刻信息711以及切换地址范围时的切换后的地址范围编号712。低位侧的27比特表示时刻信息711,高位3比特表示地址范围编号712。
图1所示地址范围控制部124具有地址范围切换部105和地址范围确定部确定部106。为了将当前正在存取的地址范围是哪个地址范围存储在非易失性存储器115内,即,为了在电源刚接通时的初始化时,将电源接通前或者重置前被存取的地址范围能够特定下来,在刚刚切换了地址范围之后,开始向切换后的地址范围进行写入时,地址范围确定部106通过非易失性存储器存取部109,将地址范围确定信息801保存到非易失性存储器115的当前地址范围编号存储区域118。而且,在电源接通后的初始化时,地址范围确定部106从非易失性存储器115中的当前地址范围编号存储区域118中读取具有最新的时刻信息711的地址范围确定信息801,将地址范围编号712特定下来。由此,例如,即使在由于电源切断等故障引起的重新启动时,地址范围确定部106也能将启动前存取的地址范围编号712特定下来。
图7表示本实施方式地址范围切换部105的结构。地址范围切换部105具有计数器701、寄存器702、比较器703、以及寄存器704。寄存器702将存取装置100转发的逻辑地址400中包含的地址范围编号405与系统时钟SCK对应地暂时存储起来。比较器703将存取装置100转发的地址范围编号405与寄存器702暂时存储的地址范围编号405进行比较,如果两者不同,则激活地址范围切换信号并输出。当地址范围切换信号被激活时,寄存器704暂时存储存取装置100转发的地址范围编号405。切换地址范围时,寄存器704的输出就成为切换后的地址范围编号712。
在启动时,计数器701中事先设置当前地址范围编号存储区域118中保存的最新地址范围确定信息801的时刻信息711。因为刚刚出厂的非易失性存储器115的物理块211全部被擦除,所以读取当前地址范围编号存储区域118的最低位的1页数据,在计数器701中事先设置初始值0的时刻信息。当地址范围切换信号激活时,计数器701的值加1。
下面说明本实施方式的计数器701的比特数。如果来自存取装置100的1个写入指令中的平均的写入数据容量是4个物理块(即,FAT16中1个簇)的16kB,1个地址范围的用户数据区116中,对所有物理块进行写入的指令数根据式(1)为大约1k次(2的10次方)。
(4k块×4kB)÷16kB=1k(1)
假设非易失性存储器115的擦写寿命,即,低于保证良块率时的擦写次数为10万回(2的17次方),由式(2)得知,本实施方式的计数器701的比特数为27比特。
17+10=27(2)
但是,考虑到非易失性存储器115的擦写寿命的不同、设计裕量,也可增加比特数。
上述结构的地址范围切换部105,基于存取装置100转发的逻辑地址400,检测出是否已切换地址范围编号405,如果检测出已切换,则输出切换后的地址范围编号712,并且输出表示时间前后关系的时刻信息711,以获知存取装置100转发的命令是何时的命令。
(初始化处理)
下面说明上述结构的非易失性存储系统中,非易失性存储装置123的初始化处理。利用存取装置100使非易失性存储装置123的电源接通时,CPU 102基于ROM 104中存储的程序进行初始化处理。除了在电源接通时,非易失性存储装置123重置时也可以进行初始化处理。
在初始化处理中,地址范围确定部106通过非易失性存储器存取部109,搜索非易失性存储器115的当前地址范围编号存储区域118,从当前地址范围编号存储区域118中保存着的地址范围确定信息801中,读出时刻信息711的最大值,作为最新地址范围确定信息801。由此,将电源接通前存取的地址范围编号712特定下来。且,在计数器701中事先设置在地址范围确定信息801中包含的时刻信息711。但是,如果时刻信息711所有比特的值为1,则判断为刚出厂,将计数器701事先设置为0值。
地址管理表生成部107读取在特定的地址范围内的用户数据区116中保存的分布管理信息214,生成地址转换表110和物理区域管理表111,然后保存到读写存储器113中。如果初始化处理结束,则非易失性存储装置123进入可以接收来自存取装置100的读写等指令的状态。
(地址范围内的数据的写入处理)
如果存储器控制器114接收到来自存取装置100的向任意地址范围内进行写入的写入指示,例如指定“0”的地址范围编号405的逻辑地址400,那么地址范围切换部105判断,存取装置100转发的地址范围编号405是否与初始化处理时特定的地址范围编号712相同。如果相同,则基于地址管理表112,将逻辑地址400中包含的逻辑块编号411转换成物理块编号412,向由物理块编号412指定的物理块211写入数据。
图9表示本实施方式地址范围不切换时的正常写入顺序。图9中表示向物理块211中的页0中写入数据的数据写入期间TA0,以及向物理块211中的页1写入数据的数据写入期间TA1。本实施方式中,通过同时写入存储体0~3这4页中的页0或者页1的多存储体写入,向非易失性存储器115写入数据。数据写入期间TA0及TA1包含写入指令及寻址/数据转发期间Ta1、擦除忙期间Ta2、程序忙期间Ta3。
在数据写入期间TA0,首先,存储器控制器114向非易失性存储器115转发写入指令、用户数据区116内的物理块编号412及存储体0~3这4页的数据(写入指令及寻址/数据转发期间Ta1)。此时,还同时向非易失性存储器115转发分布管理信息214。然后,擦除由物理块编号412指定的物理块211(擦除忙期间Ta2)。最后,向存储体0~3的物理块211中的页0写入数据和分布管理信息214,更新读写存储器113上的地址管理表112(程序忙期间Ta3)。
接着,在数据写入期间TA1,进行与数据写入期间TA0相同的处理,向存储体0~3的4页的物理块211中的页1写入数据。但是,不向页1写入分布管理信息214。
利用如图9所示的1个数据写入期间TA0及TA1,例如向逻辑地址0_a0~0_d0和0_a1~0_d1的物理块211写入数据。在地址范围0内,通过反复进行数据写入期间TA0及TA1的动作,例如在从逻辑地址0_a0~0_d0到1021_a1~1021_d1的物理块211中写入数据。
使用FAT16的存取装置100中,通常1簇是16kB,在众多的产品中,存取装置100以16kB单位向非易失性存储装置123转发写入指示。专利文献1所示现有半导体存储器装置中,写入16kB后,向非易失性存储器115写回读写存储器113中暂时存储的地址管理表112,其时间开销引起处理速度下降。然而,本实施方式的非易失性存储装置123,如果地址范围不变,就不进行向非易失性存储器115写回读写存储器113中暂时存储的地址管理表112的处理,在数据写入的同时写入分布管理信息214,使开销合理化。
(地址范围切换时的数据的写入处理)
下面,说明存取装置100转发的地址范围编号切换时的非易失性存储装置123的动作。图10表示地址范围切换时的写入顺序。如果地址范围切换部105利用比较器703检测到地址范围发生切换,存储器控制部123按照地址管理表写入期间(以下称为:AT写入期间)TB、地址管理表读取期间(以下称为:AT读取期间)TC、以及地址范围确定信息写入期间TD的顺序进行处理。下面,以存取装置100的指定地址范围从0变为1的情况为例进行说明。
向地址范围0的逻辑地址1021_a1~1021_d1的物理块211写入数据后,如果存储器控制器114从存取装置100接收到指定地址范围1的逻辑地址400,地址范围切换部105利用比较器703检测到地址范围从0变为1。然后,存储器控制器114首先进行旧地址范围的后期处理,即,AT写入期间TB中的处理。
在AT写入期间TB,存储器控制器114向非易失性存储器115的地址范围0的地址管理表区域117中写回读写存储器113暂时保存的地址范围0的地址管理表112,以作为最新的地址管理表。首先,存储器控制器114向非易失性存储器115转发写入指令、地址范围0内的地址管理表区域117内的物理块编号412、以及读写存储器113中保存的地址管理表112(写入指令及寻址/AT转发期间Tb1)。接着,对物理块编号412指定的物理块211进行擦除(擦除忙期间Tb2)。最后,向已擦除的物理块211写入地址管理表112(程序忙期间Tb3)。
这样结束了对地址范围0的写入处理,在AT写入期间TB的结束时间点和AT读取期间TC的开始时间点之间,存在实际的地址范围切换时间点TS。接着,进行新地址范围的前期处理,即,AT读取期间TC和地址范围确定信息写入期间TD的处理。
AT读取期间TC中,CPU 102向非易失性存储器存取部109发出对地址范围1的地址管理表112进行读取的读取指示,非易失性存储器存取部109从地址范围1的地址管理表区域117读取地址范围1的地址管理表112,地址管理表控制部108将读取的地址管理表112存储到读写存储器113中(读取及寻址/AT转发期间Tc1)。在此读取的地址管理表112是地址范围1内的地址管理表区域117内的最新的地址管理表。按以下方式判断地址管理表112是否是最新的。首先,将地址管理表区域117内的物理块的页中的最高位地址,具体而言是图2中的逻辑地址2047_a1~2047_d1这4页(共8kB)作为一组,判断其是否被擦除。如果未被擦除,则判断逻辑地址2047_a1~2047_d1一组是最新的地址管理表。如果已被擦除,在图2中的高位方向,即,非易失性存储器115的低位侧进行搜索,选择未被擦除的,即,写入了某值的4页作为最新的地址管理表。
非易失性存储装置123刚刚出厂时,非易失性存储器115的物理块全部处于被擦除的状态。实际上,系统区域中写有规定的值,本实施方式中对此状态省略说明。在此情况下,最低位(图2中的上侧)的4页,即,2046_a0~2046_d0被读取到读写存储器113,作为地址管理表112。此时,图6所示物理区域管理表111显示为全部是无效块的“11”,从而显示在地址范围1中未存储有效数据的状态。
在地址范围确定信息写入期间TD,存储器控制器114将包含如图8所示切换后的地址范围编号712的地址范围确定信息801,保存到非易失性存储器115的当前地址范围编号存储区域118。首先,地址范围确定部106内的计数器701增值的同时,切换后的地址范围编号712被保存到寄存器704中。地址范围确定部106生成包含计数器701的时刻信息711和寄存器704中保存的地址范围编号712的地址范围确定信息801。非易失性存储器存取部109向非易失性存储器115转发写入指令、非易失性存储装置115的当前地址范围编号存储区域118内的物理块编号412以及地址范围确定信息801(写入指令及寻址/地址范围确定信息转发期间Td1)。接着,对由物理块编号412指定的物理块211进行擦除(擦除忙期间Td2)。最后,在已擦除的物理块211中写入地址范围确定信息801(程序忙期间Td3)。
在地址范围确定信息写入期间TD后的数据写入期间TA0,向地址范围1的逻辑地址1024_a0~1024_d0中写入数据。
在地址范围确定信息写入期间TD,通过将地址范围确定信息801存储到非易失性存储器115的当前地址范围编号存储区域118,下一次启动时,就能将启动前存取的地址范围编号712特定下来。由此,即使在发生电源切断等故障后再启动时,地址范围确定部106也能判别在哪个地址范围的处理中发生了电源切断等的故障。不用向处理过程中中断的地址范围的地址管理表区域117中写回地址管理表112,在初始化处理时,也能利用分布管理信息214生成关于地址范围确定信息801中存储的地址范围的地址转换表112,因此,不会错误地使用旧地址转换表112。
(初始化处理所需时间)
本实施方式中,地址管理表生成部107通过非易失性存储器存取部109而读取的分布管理信息214只限于在1个地址范围内。例如,如果非易失性存储器115具有多存储体页读取功能,各多存储体页读取所需时间为100μ秒,由式(3)可知,用大约100m秒就完成分布管理信息214的读取。
100μ秒×1k=100m秒 (3)
如果是具有1GB容量的半导体存储器装置(8片快闪存储器芯片),由式(4)可知,大约用800m秒。
100m秒×8片=800m秒 (4)
相反,专利文献2所示现有半导体存储器装置读取全部区域的分布管理信息所用的读取时间,由式(5)可知,大约为6400m秒。
800m秒×8=6400m秒 (5)
因为专利文献2的非易失性存储器115没有被分为8片,所以式(5)的值与式(4)相比,是8倍。此值作为用户启动时的等待时间,则是过长的时间。且,非易失性存储器的容量越大,此式(5)的值越大,这是致命的问题。
本实施方式的初始化处理所需时间是专利文献2的1/8,可以短时间完成处理。
(数据的擦写率)
接着,定量地说明利用本实施方式提高写入速度。图9所示的数据写入期间TA0及TA1和图10所示的AT写入期间TB及数据写入期间TA0,分别假设是1.5m秒。
专利文献1所示的现有半导体存储器装置中,向例如逻辑地址0_a0~0_d0和0_a1~0_d1的4个物理块写入数据时,因为在图9的数据写入期间TA1之后必须有AT写入期间TB,所以由式(6)可知,需要4.5m秒。
1.5m秒×3=4.5m秒 (6)
另一方面,本实施方式中,在地址范围不变的情况下,向例如逻辑地址0_a0~0_d0和逻辑地址0_a1~0_d1这4个物理块写入数据时,由式(7)可知,需要3m秒。
1.5m秒×2=3m秒 (7)
这样,地址范围不变时,本实施方式的写入时间比专利文献1所示写入时间更短。
地址范围切换时,如图10所示,本实施方式需要进行旧地址范围的后期处理的AT写入期间TB与进行新地址范围的前期处理的AT读取期间TC以及地址范围确定信息写入期间TD,比专利文献1需要更多的处理时间。
考虑到此,根据以16kB单位全部擦写整个1个逻辑范围的擦写率值,将本实施方式与专利文献1进行比较。首先,1个地址范围的容量大约是16MB(简便起见,将地址管理表区域作为误差),为了用16kB单位的写入来擦写1个地址范围,由式(8)知,存取装置100需要指示1k次写入。
16MB÷16kB=1k次 (8)
此时,专利文献1所示的现有半导体存储器装置中,如式(9)所示擦写率平均是3.6MB/秒。
16MB÷(1k次×4.5m秒)3.6MB/秒 (9)
另一方面,在本实施方式的非易失性存储装置123中,擦写率是式(10)所示平均5.5MB/秒,利用本实施方式非易失性存储装置123能够高速擦写1个地址范围。
16MB÷{(1k次×3m秒)+(2次×1.5m秒)}5.5MB/秒 (10)
地址范围切换时瞬间的速度劣化是数毫秒的程度,所以,利用存取装置100侧常备的缓冲,能够被完全吸收。由此,处理不会有问题。
如上所述,本实施方式中,即使非易失性存储器115的存储器容量变大,也能够使启动时的初始化时间极小化,并且,使地址管理表112更新的时间开销合理化,因此提高擦写率。换言之,本发明中,能够避免正常动作时地址管理表112的写回处理引起的存取速度下降的同时,也能够使电源切断等的故障之后的初始化时地址管理表112的生成时间缩短。
图3中的管理区域213,除了分布管理信息214之外,也可以保存时刻信息711。例如,向用户数据区116的数据区域212写入数据之时,将时刻信息711写入到向管理区域213。在初始化处理时,将地址范围特定之后,可以通过只读取写入了与地址范围确定信息801的时刻信息711一致的时刻信息711的物理块211,对地址管理表区域117中存储的最新地址管理表112进行修改。由此,在短时间内就能够更新地址管理表区域117的地址管理表112,在由于电源切断等引起的处理中断之后的初始化处理中有用。
读写存储器113也可以使用除RAM之外的读写存储器,只要能进行比较高速的存取。非易失性存储器115也可以内置多个非易失性存储器芯片。非易失性存储器115也可以使用除快闪存储器之外的非易失性存储器。
非易失性存储器115既可以用1个快闪存储器芯片构成,也可以用多个快闪存储器芯片构成。
虽然在本实施方式中,地址管理表区域117设在各个地址范围内,但是地址范围0~7的地址管理表区域117也可以集中设在一个范围内,例如设在非易失性存储器115最后的区域内。
也可以使地址管理表112的存储位置不像本实施方式那样物理固定在地址管理表区域117内。例如,不设置地址管理表区域117,而是将地址管理表112保存在用户数据区116的物理块211内。此时,可以将用于指示地址管理表112的保存处的物理地址的指示器信息存储到非易失性存储器115内,根据该指示器信息搜索存储位置。
当前地址范围编号存储区域118的位置并不限于在地址范围7的高位侧。且,本实施方式中,地址范围确定信息801被存储在非易失性存储器115的当前地址范围编号存储区域118中,但是,也可以单独提供非易失性存储器115之外的非易失性存储器,将地址范围确定信息801存储在那里。
可以在地址范围切换时,以编入到对应于切换前的地址范围的地址管理表112的形式,将地址范围确定信息801写回到非易失性存储器115。在这种情况下,电源接通后的初始化中,对在全部地址范围0~7中存储的最新地址管理表112进行查询,将包含最接近的时刻信息711的地址管理表112内所存储的地址范围编号712判断为在电源切断时刻的地址范围编号。
(第二实施方式)
图11表示本发明的第二实施方式非易失性存储系统。第二实施方式的非易失性存储系统,与第一实施方式不同在于:非易失性存储器1115的地址范围大小以及地址管理表1112初始化时的生成方法。
本实施方式的非易失性存储系统具有:存取装置100以及基于由存取装置100发送的数据的读写命令而动作的非易失性存储装置123。
非易失性存储装置123具有:用于保存由存取装置100转发的数据的非易失性存储器1115,以及基于存取装置100发送的数据的读写命令和逻辑地址而控制非易失性存储器1115的存储器控制器114。非易失性存储器1115的存储区域具有多个地址范围。
(存储器控制器的内部结构)
存储器控制器114具有:主机I/F部101、工作用RAM 103、保存了程序的ROM 104、及利用工作用RAM 103和ROM 104中保存的程序而控制存储器控制器114整体的CPU 102。
存储器控制器114进一步包括:用于控制非易失性存储器1115的存储器控制部122、用于生成地址管理表1112的地址管理表生成部107、及用于暂时保存地址管理表1112的读写存储器113。
存储器控制部122具有:用于对非易失性存储器1115的地址范围的切换进行判断的地址范围控制部124、对非易失性存储器1115进行数据读写等控制的非易失性存储器存取部109、以及将读写存储器113中暂时存储的地址管理表1112,通过非易失性存储器存取部109而写入到非易失性存储器1115的写入地址管理表控制部108。
(非易失性存储器的内部结构)
本实施方式中,非易失性存储器1115的存储区域具有:用于存储数据的用户数据区1116、用于存储地址管理表1112的地址管理表区域1117、以及用于保存如图18所示的地址范围确定信息1801的当前地址范围编号存储区域118。
图12表示本实施方式的非易失性存储器1115的存储区域的具体结构。图12中,非易失性存储器1115是1GB,安装有8片1G比特的快闪存储器。非易失性存储器1115由多个物理块211构成。在此,物理块211是能够有选择地擦除的最小单位,即擦除块,在本实施方式中具有大约4kB的大小。
非易失性存储器1115,在宽度方向上划分为存储体0~存储体3这4个存储体。在本实施方式中,地址范围1201从用户数据区1116内的每个存储体中选择一个,共由4个物理块211构成。例如,包含逻辑地址0_a0和0_a1~0_d0和0_d1的逻辑块编号“0”的这4个物理块是一个地址范围1201。换言之,本实施方式中,逻辑块编号是指定地址范围1201的地址范围编号,例如逻辑块编号“0”=地址范围编号“0”。图12中,用户数据区1116具有地址范围0~8188。
本实施方式中,地址管理表区域1117不是设在地址范围1201内,而是设在非易失性存储器1115的高位侧区域。地址管理表区域1117从低位侧(图12中的上侧)开始顺序保存地址管理表1112。之后,顺序擦除不用的旧地址管理表1112,以存储新的地址管理表1112。这样,地址管理表区域1117被重复使用。例如、在存取装置100发出写入命令,有效数据写入到非易失性存储器1115的状态下,如果最新地址管理表1112被保存到逻辑地址8190_a0~8190_d0,由此,低位(图12中的上侧)的8189_a1~8189_d1和8189_a0~8189_d0中保存的地址管理表1112被擦除,成为无效块。之后,该区域在后面会使用到。
非易失性存储器1115的存储区域,在地址管理表区域1117的高位侧具有当前地址范围编号存储区域118。当前地址范围编号存储区域118是用于保存使地址范围编号特定的信息的区域,其保存如图18所示的地址范围确定信息1801。利用设置当前地址范围编号存储区域118,当由于电源切断等的故障而再启动时,能够将启动前已存取的地址范围编号特定。当前地址范围编号存储区域118对已保存不用的旧地址范围确定信息1801的物理块211进行擦除并重复使用。
非易失性存储器1115中,关于已写入安全相关信息或制造商代码等的所谓系统区域,省略说明。
图13表示本实施方式物理块211的具体示例。物理块211有页0和页1这2页。页是写入单位,在图12中,最大同时写入数是4个存储体中各有1页,即最大4页。各页具有2048字节的数据区域212与64字节的管理区域213。1扇区是512字节,数据区域212由4个扇区构成。数据区域212是被写入来自存取装置100的数据的区域。页0的管理区域213中保存着分布管理信息214。分布管理信息214包含存取装置100所指定的逻辑块编号,以及表示物理块211的状态(status)的块状态。存取装置100转发的数据被写入到页0中的数据区域212时,分布管理信息214被写入到页0中的管理区域213。
(逻辑地址的格式)
图4表示本实施方式存取装置100向非易失性存储装置123发送的逻辑地址1400的格式。逻辑地址1400从低位比特开始顺序具有:扇区编号401、存储体编号402、页编号403、及地址范围编号1405。本实施方式中,地址范围编号1405是逻辑块编号1411。与逻辑块编号1411对应的13个比特是向物理块编号1412进行地址转换的对象。
(地址管理表的结构)
如图11所示,本实施方式的地址管理表1112包含地址转换表1110、物理区域管理表1111和写入管理表1121。
图15表示本实施方式地址转换表1110。地址转换表1110是将由存取装置100指定的逻辑地址1400中所包含的逻辑块编号1411,转换成非易失性存储器1115内的物理块编号1412的表。地址转换表1110表示与每个逻辑块编号1411相对应的物理块编号1412。本实施方式中,地址转换表1110包含与非易失性存储器1115内的全部逻辑块编号1411相对应的物理块编号1412。而且,地址转换表1110根据来自存取装置100的写入指示,将最新获得的物理块编号存储到最后。
图16表示本实施方式物理区域管理表1111。物理区域管理表1111是表示非易失性存储器1115内的擦除单位,即物理块211的状态的表,其存储表示是否存储有有效数据等的块状态。物理区域管理表1111保存在地址转换表1110中包含的全部物理块编号1412的块状态,本实施方式的物理区域管理表1111的容量不同于第一实施方式的物理区域管理表111的容量。除容量之外,本实施方式的物理区域管理表1111与第一实施方式的物理区域管理表111相同。
图17表示本实施方式写入管理表1121。写入管理表1121是存储与地址转换表1110所管理的1个单位的逻辑块相对应的物理块的写入状态的表。写入管理表1121用1个比特表示页0和页1的每个存储体是否已完成写入的状态,未写入时存储“1”,已写入时存储“0”。例如,根据来自存取装置100的写入指示,获取新的4个物理块的情况下,写入管理表1121全部的比特被设置为2进制的“1”。接着,当写入数据时,与已写入的页相对应的比特被设置为2进制的“0”。当向已经设置为“0”的页写入数据时,写入管理表1121判断是否需要再次获取新的物理块。
(地址管理表的生成)
在初始化时,图11所示地址管理表控制部108从非易失性存储器1115的地址管理表区域1117读取地址转换表1110和物理区域管理表1111。
地址管理表生成部107,基于电源接通前存取的地址范围的物理块211中存储的分布管理信息214,生成写入管理表1121。
读写存储器113是SRAM等的易失性存储器或者强电介质存储器等的非易失性存储器,暂时存储地址管理表1112。由存取装置100指示的数据的写入等,参照读写存储器113中保存的地址管理表1112,一边更新一边进行。
存储器控制部122根据存取装置100的写入指示,向用户数据区1116写入数据和分布管理信息214。此时,存储器控制部122内的地址管理表控制部108对读写存储器113中暂时存储的地址管理表1112进行更新。在存取装置100指示的写入地址从当前的地址范围切换到其它地址范围时,地址管理表控制部108将读写存储器113上暂时存储的地址管理表1112写入到非易失性存储器1115的地址管理表区域1117中。
(地址范围确定信息的写入)
地址范围确定信息1801是将切换后的地址范围特定下来的信息。图18表示本实施方式地址范围确定信息1801。地址范围确定信息1801具有时刻信息711以及用于将切换后的地址范围特定下来的地址范围编号1712。地址范围编号1712的比特数不同于第一实施方式的地址范围编号712的比特数。
图11所示地址范围控制部124具有地址范围切换部105和地址范围确定部106。
地址范围切换部105的内部结构与第一实施方式中的图7相同。地址范围切换部105基于存取装置100已转发的逻辑地址,检测出地址范围编号1712是否已切换。如果检测到已切换,则输出切换后的地址范围编号1712,并且,输出表示各命令的时间前后关系的时刻信息711,以获知存取装置100已转发的命令是什么时间点的命令。
在刚刚切换了地址范围,开始向切换后的地址范围进行写入时,地址范围确定部106通过非易失性存储器存取部109,将地址范围确定信息1801存储到非易失性存储器1115的当前地址范围编号存储区域118中。而且,地址范围确定部106基于在电源接通后的初始化时,当前地址范围编号存储区域118中存储的地址范围确定信息1801,将电源接通前已存取的地址范围1201特定下来。由此,例如,即使在由于电源切断等的故障引起的再启动的情况下,地址范围确定部106也能将启动前已存取的地址范围编号1712特定下来。
(初始化处理)
下面说明具有上述结构的本实施方式的非易失性存储系统的初始化处理。电源接通后,CPU 102基于ROM 104中存储的程序,向非易失性存储器存取部109发出地址管理表区域1117内的地址转换表1110和物理区域管理表1111的读取指示。除电源接通时之外,初始化处理也可以在非易失性存储装置123重置时进行。非易失性存储器存取部109从非易失性存储器1115的地址管理表区域1117中,读取地址转换表1110和物理区域管理表1111。地址管理表控制部108将地址转换表1110和物理区域管理表1111写入到读写存储器113。
初始化处理时读取的地址转换表1110和物理区域管理表1111是,地址管理表区域1117内的物理块211中保存的最新地址转换表1110和物理区域管理表1111。对于哪个是最新的判断,是以下述内容为基准:与地址管理表区域1117相对应的物理块211的页中的最高位地址,具体而言是指图12中逻辑地址8190_a1~8190_d1这4页(共8kB)作为一组是否已被擦除。到图12中的高位方向进行搜索,将未擦除的,即写有某值的4页选择为最新地址转换表1110和物理区域管理表1111。
而且,CPU 102向非易失性存储器存取部109发出地址范围确定信息1801的读取指示。地址范围确定部106通过非易失性存储器存取部109,从非易失性存储器1115的当前地址范围编号存储区域118中检索出具有最大时刻信息711的地址范围确定信息1801,将检索到的地址范围确定信息1801中包含的地址范围编号1712转发到地址管理表生成部107。地址管理表生成部107基于电源接通前存取的地址范围的物理块211的分布管理信息214,生成写入管理表1121,保存到读写存储器113上。但是,对于全部比特值为1的时刻信息711,地址范围确定信息1801则判断是尚未写入。
作为非易失性存储系统的存储媒体的非易失性存储装置123出厂后,最初使用时,非易失性存储器1115的物理块211全部处于被擦除的状态。实际上,系统区域中写有规定的值,在此对此状态省略说明。工厂出厂后,最低位(图2中的上侧)的8189_a0~8189_d0这4页被读取到读写存储器113,作为地址管理表1112。此时,因为非易失性存储器1115中没有存储有效数据,所以图16所示物理区域管理表1111存储的全部是无效块“11”。且,图17所示写入管理表1121存储的全部是表示未写入状态的“1”。
如上所述,向读写存储器113写入了地址转换表1110、物理区域管理表1111及写入管理表1121后,存储器控制器101进入接收来自存取装置100的读写等的指令的接收状态。
(地址范围内的数据写入处理)
图19表示地址范围没有切换时的写入处理。第一实施方式中,对非易失性存储器115的存取以16kB为单位,但是在第二实施方式中是以2kB为单位。图19中,在数据写入期间TA0,地址范围0内的逻辑地址0_a0所表示的物理块211的页0中写入2kB的数据,在接下来的数据写入期间TB1,地址范围0内的逻辑地址0_b0所表示的物理块211的页0中写入2kB的数据。写入指令、寻址/数据转发期间Ta1、擦除忙期间Ta2、及程序忙期间Ta3与第一实施方式的图9相同。
专利文献1所示的现有半导体存储器装置中,在写入了2kB的数据后,将读写存储器113中暂时存储的地址管理表1112写回到非易失性存储器1115,因此该时间开销是造成处理速度下降的原因。然而,本发明的第二实施方式中,在地址范围不切换的情况下,不进行向非易失性存储器1115写回读写存储器113中暂时存储的地址管理表1112的处理,在数据写入时一并将分布管理信息214写入到用户数据区1116,由此使前述开销合理化。
(地址范围切换时的数据的写入处理)
图20表示有地址范围的切换时的写入处理。图20以地址范围1201从“3”切换到“4”的情况为例。数据写入期间TA3和数据写入期间TA0之间是地址范围切换时间点TS。
数据写入期间TA3中,3_d1物理块211的页1中写入了数据后,地址范围切换部105如果收到来自存取装置100的指定地址范围4的逻辑地址1400,就检测到地址范围从“3”切换到“4”。由此,对地址范围3的处理结束,数据写入期间TA3和数据写入期间TA0之间是地址范围切换时间点TS。
接下来的数据写入期间TA0,在4_a0物理块211的页0中写入数据。此时,地址管理表控制部108将为向地址范围4写入而保留的物理块编号1412写入地址转换表1110的新获取的块。
之后,在AT写入期间TB,读写存储器113中暂时存储的地址转换表1110、物理区域管理表1111及写入管理表1121被保存到非易失性存储器1115的地址管理表区域1117。
接着,在地址范围确定信息写入期间TD,包含地址范围“4”的地址范围确定信息1801被写入到非易失性存储器1115的当前地址范围编号存储区域118。通过这样的处理,发生电源切断等的故障时,其后立即启动时,也能判别是在哪个地址范围的处理中发生了电源切断等的故障。
写入指令及寻址/数据转发期间Ta1、Tb1、Td1、擦除忙期间Ta2、Tb2、Td2、及程序忙期间Ta3、Tb3、Td3的详细结构与第一实施方式中的图10相同。
在初始化处理时,因为本实施方式在读写存储器113中保存有对应于全部逻辑块编号1411的地址转换表1110以及对应于地址转换表1110中包含的全部物理块编号1412的物理区域管理表1111,所以也可以不设置图10中的AT读取期间TC。
如上述,本实施方式的非易失性存储装置123并非在每次写入数据时都将地址管理表1112写回到非易失性存储器1115。因此,发生电源切断等的故障时,非易失性存储器1115上的地址管理表1112有可能不是最新的地址管理信息。因此,在电源切断等的故障发生后立即启动时,地址范围确定部106将发生电源切断等的故障时的地址范围特定下来;基于该地址范围中存储的分布管理信息214,地址管理表生成部107在读写存储器113上生成有写入管理表1121。
(初始化处理所需时间)
地址管理表生成部107通过非易失性存储器存取部109读取的数据量只限于地址范围内的分布管理信息214,所以能够用比较少的时间进行读取。例如非易失性存储器1115具有多存储体页读取功能,假设每页的多存储体页读取所需时间是100μ秒,由式(11)可知,大约用0.8m秒完成读取。
100μ秒×8=0.8m秒 (11)
如果具有1GB容量的半导体存储器装置(8片快闪存储器芯片),由式(12)可知,大约为6.4m秒。
0.8m秒×8片=6.4m秒 (12)
另一方面,专利文献2所示的现有半导体存储器装置中,全部区域的分布管理信息的读取时间,由式(13)可知大约是6400m秒。
100μ秒×8k×8=6400m秒 (13)
此值作为用户启动时的等待时间则是过长的时间。随着半导体存储器装置的容量变大,这样的问题就成为致命的问题。但是,本实施方式可以在短时间内进行初始化处理。
(数据的擦写率)
接下来定量地说明写入速度的提高。图19所示数据写入期间TA0、TA1及图20所示的数据写入期间TA3、TA0、AT写入期间TB、地址范围确定信息写入期间TD分别是1.5m秒。
专利文献1所示的现有半导体存储器装置中,图19中的数据写入期间TA0、TA1之后必须有AT写入期间TB,所以写入2页的数据,由式(14)可知,需要4.5m秒。
1.5m秒×3=4.5m秒 (14)
另外,本实施方式地址范围不切换时写入2页的数据,由式(15)可知,是3m秒。
1.5m秒×2=3m秒 (15)
但是,本实施方式中,图20所示地址范围切换时,地址范围确定信息写入期间TD比现有例需要更多的处理时间。
考虑到此,根据以2kB为单位全部擦写1个地址范围的擦写率值,将本实施方式与专利文献1进行比较。本实施方式中,1个地址范围的容量是16kB。用2kB单位的写入来擦写1个地址范围时,由式(16)知,存取装置100指示8次写入。
16kB÷2kB=8次 (16)
专利文献1所示的现有半导体存储器装置的擦写率,如式(17)所示,平均是444kB/秒。
16kB÷(8次×4.5m秒)444kB/秒 (17)
另一方面,本实施方式的非易失性存储装置123的擦写率,如式(18)所示平均是593kB/秒。本实施方式非易失性存储装置123能够比现有半导体存储器装置更加高速地进行擦写。
16kB÷{(8次×3m秒)+(2次×1.5m秒)}593kB/秒 (18)
逻辑地址范围切换时瞬间的速度劣化是数毫秒的程度,所以,利用存取装置100侧常备的缓冲,能够被完全吸收。由此,处理不会有问题。
如上所述,本实施方式中,即使半导体装置的存储器容量变大,也能够使发生电源切断等的故障后再启动时的初始化时间极小化,并且,使地址管理表1112更新的时间开销合理化,因此提高擦写率。
然而,也可以取代图20,用图21所示写入顺序来进行地址范围切换后的处理。图21中,AT写入期间TB设在数据写入期间TA3之后,AT写入期间TB和数据写入期间TA0之间是地址范围切换时间点TS。
图13中的管理区域213,除了分布管理信息214等之外,也可存储时刻信息711。由此,只是基于与图12中的当前地址范围编号存储区域118中存储的地址范围确定信息1801中的时刻信息711相一致的物理块的信息,对地址管理表区域中存储的最新地址管理表1112进行修改,就能够生成真正的最新的地址管理表1112。
读写存储器113也可以使用除RAM之外的读写存储器,只要能进行比较高速的存取。
此外,非易失性存储器1115可以用1片快闪存储器芯片构成,也可以用多个快闪存储器芯片构成。并且,非易失性存储器1115也可以使用除了快闪存储器之外的非易失性存储器。
不同于本实施方式的地址管理表区域1117,也可以使地址管理表1112的存储位置并非物理固定,独立提供指示用于地址管理信息的区域的物理地址的指示器信息,在与用户数据区1116相同的区域中,使地址管理表1112混同存在,根据指示器信息来移动存储位置。
本实施方式中,采用的是将用于将时刻信息711等的地址范围特定下来的地址范围确定信息1801存储到非易失性存储器1115的当前地址范围编号存储区域118中,但是也可以独立提供除非易失性存储器1115之外的非易失性存储器,将地址范围确定信息1801存储到那里。
在地址范围切换之际,可以以编入到对应于切换后的地址范围的地址管理表1112的形式,将地址范围确定信息1801写回到非易失性存储器1115。但是,在这种情况下,电源接通后的初始化中,对地址管理表区域1117内的全部地址范围0~8188所对应的最新的地址管理表1112进行查询,将包含最近的时刻信息711的地址管理表1112内存储的地址范围编号1712判断为在电源切断时刻的地址范围编号1712。将其中所写入的切替时的地址范围编号1712特定为,在发生电源切断等的故障的时间点来自存取装置100的写入指示等被转发的地址范围编号1712。
本发明的非易失性存储装置,利用使用快闪存储器等的非易失性存储器的存储卡等的存储媒体,具有同时实现高速写入和缩短初始化时间的效果,可应用于静止图像记录再现装置、动态图像记录再现装置等便携式AV设备,或者移动电话等便携式通信设备的记录媒体中。
Claims (10)
1.一种存储器控制器,其用于对具有多个由1个以上的物理块所构成的地址范围的非易失性存储器进行数据写入或读取,其特征在于,
所述存储器控制器具有:
读写存储器,其用于暂时存储对所述物理块的状态进行管理的地址管理表;
存储器控制部,其在写入数据时,向所述物理块写入数据和用于生成所述地址管理表的分布管理信息,从而对所述读写存储器的所述地址管理表进行更新,在数据的写入目标从某地址范围切换到其它地址范围时,向所述非易失性存储器写入所述读写存储器中暂时存储的所述地址管理表;以及,
地址管理表生成部,在初始化时,其从初始化前已存取的所述地址范围内读取所述分布管理信息,基于所读取的所述分布管理信息,在所述读写存储器上生成所述地址管理表。
2.如权利要求1所述的存储器控制器,其特征在于,
所述地址范围是对所述非易失性存储器的存储区域进行划分得到的每个具有规定大小的区域,包含与由存取装置指定的多个逻辑单位相对应的多个物理块;
所述地址管理表是统一管理所述地址范围内中包含的多个逻辑单位的表。
3.如权利要求1所述的存储器控制器,其特征在于,
所述地址范围是针对由存取装置指定的每个逻辑单位设置的区域,所述地址管理表是统一管理多个所述地址范围的表。
4.如权利要求1所述的存储器控制器,其特征在于,
当数据的写入目标的物理块从某地址范围切换到其它地址范围时,所述存储器控制部向所述非易失性存储器写入用于将切换后的地址范围特定下来的地址范围确定信息。
5.如权利要求4所述的存储器控制器,其特征在于,
所述存储器控制部将所述地址范围确定信息,以编入到所述地址管理表的形式,写入到所述非易失性存储器。
6.如权利要求4所述的存储器控制器,其特征在于,
在初始化时,所述存储器控制部基于所述地址范围确定信息,将初始化前已存取的所述地址范围特定下来。
7.一种存储器控制器,其用于对具有多个由1个以上的物理块所构成的地址范围的非易失性存储器进行数据写入或读取,其特征在于,
所述存储器控制器具有:
读写存储器,其暂时存储包含第一表和第二表的地址管理表,所述第一表用于管理1个所述地址范围内的物理块的写入状态,所述第二表用于管理多个所述地址范围内的物理块的状态;
存储器控制部,其在写入数据时,向所述非易失性存储器写入数据和用于生成所述地址管理表的分布管理信息,从而对所述读写存储器的所述地址管理表进行更新,在数据的写入目标从某地址范围切换到其它地址范围时,向所述非易失性存储器写入所述读写存储器中暂时存储的所述地址管理表,在初始化时,从所述非易失性存储器读取所述第二表,保存到所述读写存储器中;以及,
地址管理表生成部,在初始化时,其从初始化前已存取的所述地址范围内读取所述分布管理信息,基于所读取的所述分布管理信息生成所述第一表,保存到所述读写存储器中。
8.一种非易失性存储装置,其特征在于,包括:
非易失性存储器,其具有多个由1个以上的物理块所构成的地址范围;以及,
如权利要求1所述的存储器控制器,其控制对所述非易失性存储器的数据写入或读取。
9.一种非易失性存储系统,其特征在于,包括:
如权利要求8所述的非易失性存储装置,其包含具有多个由1个以上的物理块所构成的地址范围的非易失性存储器;以及,
存取装置,其指定所述地址范围,并控制对所述非易失性存储器的数据的写入或者读取。
10.一种存储器控制方法,其对非易失性存储装置进行控制,
所述非易失性存储装置具有:
具有多个由1个以上的物理块所构成的地址范围的非易失性存储器,以及,
用于暂时存储对所述物理块的状态进行管理的地址管理表的读写存储器,
所述存储器控制方法,其特征在于,具有下述步骤:
第一步骤:在写入数据时,向所述物理块写入数据和用于生成所述地址管理表的分布管理信息,从而对所述读写存储器的所述地址管理表进行更新,在数据的写入目标从某地址范围切换到其它地址范围时,向所述非易失性存储器写入所述读写存储器中暂时存储的所述地址管理表;以及,
第二步骤:
在初始化时,从初始化前已存取的所述地址范围内读取所述分布管理信息,基于所读取的所述分布管理信息,在所述读写存储器上生成所述地址管理表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP149047/2005 | 2005-05-23 | ||
JP2005149047 | 2005-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101185067A true CN101185067A (zh) | 2008-05-21 |
CN100590608C CN100590608C (zh) | 2010-02-17 |
Family
ID=37451870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680017750A Expired - Fee Related CN100590608C (zh) | 2005-05-23 | 2006-05-18 | 存储器控制器及其控制方法、非易失性存储装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8051270B2 (zh) |
JP (1) | JP4884382B2 (zh) |
CN (1) | CN100590608C (zh) |
WO (1) | WO2006126445A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270215A (zh) * | 2010-06-01 | 2011-12-07 | 巴比禄股份有限公司 | 文件管理装置以及文件管理方法 |
CN104050396A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于保护数字内容的装置和方法 |
WO2015172677A1 (zh) * | 2014-05-16 | 2015-11-19 | 华为技术有限公司 | 非易失性存储器nvm页框初始化方法、装置和系统 |
CN107045484A (zh) * | 2016-02-05 | 2017-08-15 | 爱思开海力士有限公司 | 数据存储装置 |
CN109032958A (zh) * | 2017-06-12 | 2018-12-18 | 西部数据技术公司 | 用于在控制同步操作期间读取数据的方法和设备 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007083449A1 (ja) * | 2006-01-20 | 2007-07-26 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置、不揮発性記憶システム、及び不揮発性記憶装置の不良管理方法 |
JPWO2007105688A1 (ja) * | 2006-03-16 | 2009-07-30 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム |
US20100005225A1 (en) * | 2006-07-26 | 2010-01-07 | Panasonic Corporation | Nonvolatile memory device, nonvolatile memory system, and host device |
WO2008013230A1 (fr) * | 2006-07-26 | 2008-01-31 | Panasonic Corporation | dispositif de stockage non volatil, système de stockage non volatil et dispositif d'hôte |
WO2008013228A1 (fr) * | 2006-07-26 | 2008-01-31 | Panasonic Corporation | Contrôleur de mémoire, dispositif de stockage non-volatile, dispositif d'accès et système de stockage non-volatile |
JP4551940B2 (ja) * | 2008-03-01 | 2010-09-29 | 株式会社東芝 | メモリシステム |
JP2010152517A (ja) * | 2008-12-24 | 2010-07-08 | Toshiba Corp | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
US8554987B2 (en) * | 2009-06-18 | 2013-10-08 | Panasonic Corporation | Nonvolatile memory system for improving stream data writing |
JP5525605B2 (ja) * | 2009-11-04 | 2014-06-18 | 株式会社日立製作所 | フラッシュメモリモジュール |
JP5592293B2 (ja) * | 2010-03-12 | 2014-09-17 | パナソニック株式会社 | 不揮発性記憶装置、アクセス装置及び不揮発性記憶システム |
JP5295286B2 (ja) * | 2011-02-23 | 2013-09-18 | 株式会社日立製作所 | 記憶装置およびそれを搭載した計算機 |
US20130254463A1 (en) * | 2012-03-23 | 2013-09-26 | Kabushiki Kaisha Toshiba | Memory system |
US9772781B2 (en) | 2013-11-27 | 2017-09-26 | Ngd Systems, Inc. | System and method for supporting atomic writes in a flash translation layer |
US8838936B1 (en) * | 2013-11-27 | 2014-09-16 | NXGN Data, Inc. | System and method for efficient flash translation layer |
WO2015145932A1 (ja) * | 2014-03-28 | 2015-10-01 | パナソニックIpマネジメント株式会社 | 不揮発性メモリ装置 |
JP6119682B2 (ja) * | 2014-06-27 | 2017-04-26 | 株式会社デンソー | 電子制御装置 |
US9936019B2 (en) * | 2016-03-16 | 2018-04-03 | Google Llc | Efficient live-migration of remotely accessed data |
KR102710360B1 (ko) * | 2016-10-17 | 2024-09-30 | 에스케이하이닉스 주식회사 | 메모리 장치 |
US20180239532A1 (en) | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US10372351B2 (en) * | 2017-02-23 | 2019-08-06 | Western Digital Technologies, Inc. | Techniques for non-blocking control information and data synchronization by a data storage device |
WO2018186453A1 (ja) * | 2017-04-07 | 2018-10-11 | パナソニックIpマネジメント株式会社 | 使用回数を増大させた不揮発性メモリ |
JP6708762B1 (ja) * | 2019-01-29 | 2020-06-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US11294579B2 (en) * | 2020-06-18 | 2022-04-05 | Western Digital Technologies, Inc. | Mode handling in multi-protocol devices |
US11816349B2 (en) | 2021-11-03 | 2023-11-14 | Western Digital Technologies, Inc. | Reduce command latency using block pre-erase |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3072722B2 (ja) * | 1997-06-20 | 2000-08-07 | ソニー株式会社 | フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体 |
US6377500B1 (en) * | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
JP2001142774A (ja) * | 1999-11-11 | 2001-05-25 | Toshiba Corp | メモリカード及び同カードに適用されるアドレス変換方法 |
KR100439507B1 (ko) * | 2002-03-18 | 2004-07-09 | 삼성전기주식회사 | 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 |
US6901498B2 (en) * | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
JP3912355B2 (ja) * | 2003-10-14 | 2007-05-09 | ソニー株式会社 | データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
-
2006
- 2006-05-18 US US11/914,989 patent/US8051270B2/en not_active Expired - Fee Related
- 2006-05-18 CN CN200680017750A patent/CN100590608C/zh not_active Expired - Fee Related
- 2006-05-18 WO PCT/JP2006/309933 patent/WO2006126445A1/ja active Application Filing
- 2006-05-18 JP JP2007517793A patent/JP4884382B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270215A (zh) * | 2010-06-01 | 2011-12-07 | 巴比禄股份有限公司 | 文件管理装置以及文件管理方法 |
CN104050396A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于保护数字内容的装置和方法 |
US9673985B2 (en) | 2013-03-15 | 2017-06-06 | Intel Corporation | Apparatus and method to protect digital content |
CN104050396B (zh) * | 2013-03-15 | 2018-11-06 | 英特尔公司 | 用于保护数字内容的装置和方法 |
WO2015172677A1 (zh) * | 2014-05-16 | 2015-11-19 | 华为技术有限公司 | 非易失性存储器nvm页框初始化方法、装置和系统 |
CN107045484A (zh) * | 2016-02-05 | 2017-08-15 | 爱思开海力士有限公司 | 数据存储装置 |
CN107045484B (zh) * | 2016-02-05 | 2020-08-25 | 爱思开海力士有限公司 | 数据存储装置 |
CN109032958A (zh) * | 2017-06-12 | 2018-12-18 | 西部数据技术公司 | 用于在控制同步操作期间读取数据的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US8051270B2 (en) | 2011-11-01 |
US20080168252A1 (en) | 2008-07-10 |
JPWO2006126445A1 (ja) | 2008-12-25 |
WO2006126445A1 (ja) | 2006-11-30 |
CN100590608C (zh) | 2010-02-17 |
JP4884382B2 (ja) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100590608C (zh) | 存储器控制器及其控制方法、非易失性存储装置及系统 | |
CN1658171B (zh) | 通过控制频繁受访问扇区对非易失性存储器的更快写操作 | |
CN100487632C (zh) | 双媒体存储装置 | |
EP2200045B1 (en) | Method of updating contents of a multibit flash memory | |
CN101739344B (zh) | 控制非易失性存储装置中损耗的存储器控制器及操作方法 | |
CN101131860B (zh) | 半导体存储装置 | |
JP4044067B2 (ja) | シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ | |
US8195971B2 (en) | Solid state disk and method of managing power supply thereof and terminal including the same | |
CN102054533A (zh) | 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器 | |
WO2014141140A1 (en) | Device power control | |
JPWO2006093201A1 (ja) | メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法 | |
CN102063943A (zh) | Nand闪存参数自动检测系统 | |
KR20070118533A (ko) | 불휘발성 메모리 | |
JP2000020252A (ja) | 不揮発性半導体メモリを用いた記憶装置 | |
JPH0728690A (ja) | フラッシュメモリシステム | |
CN101944011A (zh) | 运行程序的装置、芯片和方法 | |
JP3768088B2 (ja) | メモリカード装置 | |
US12086429B2 (en) | Memory system and controlling method | |
EP3783490A1 (en) | Operating method of memory controller and storage device | |
CN106980513A (zh) | 一种双引导文件的切换方法及装置 | |
US11023370B2 (en) | Memory system having a plurality of memory chips and method for controlling power supplied to the memory chips | |
CN102650971A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
KR102027573B1 (ko) | 캐시 메모리 제어 방법 및 그 장치 | |
KR100490603B1 (ko) | 플래시 메모리 동작 제어 방법 및 장치 | |
JP2005216042A (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 | ||
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: 20100217 Termination date: 20210518 |