CN102193872A - 存储系统 - Google Patents
存储系统 Download PDFInfo
- Publication number
- CN102193872A CN102193872A CN2010102751238A CN201010275123A CN102193872A CN 102193872 A CN102193872 A CN 102193872A CN 2010102751238 A CN2010102751238 A CN 2010102751238A CN 201010275123 A CN201010275123 A CN 201010275123A CN 102193872 A CN102193872 A CN 102193872A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- free piece
- piece
- free
- 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.)
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
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)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了存储系统,其控制方法及信息处理装置。根据实施例,将非易失性半导体存储器所包含的自由块分类为多个自由块管理列表。按通常优先度取得自由块时,从存在比第1阈值多的自由块数的自由块管理列表取得自由块。按高优先度取得自由块时,与第1阈值无关,从自由块管理列表取得自由块。
Description
相关申请的参照
本申请享受2010年03月17日申请的日本专利申请号2010-061181的优先权的利益,该日本专利申请的全内容在本申请中援用。
技术领域
本发明一般地说涉及具备非易失性半导体存储器的存储系统。
背景技术
具备NAND型闪速存储器的存储系统,通过并行驱动多个芯片提高传送性能。
作为NAND型闪速存储器寻求的性能之一,有在主机设备指定的逻辑地址基本上连续写入即顺序写入(逐次写入)时的数据传送性能(以下,顺序写入性能)。为了提高顺序写入性能,同时驱动多个芯片等,尽可能提高写入并行数是重要的。
发明内容
本发明提供可防止写入并行度降低的存储系统。
根据实施例,块选择部将非易失性半导体存储器所包含的自由块用可并行工作的块的集合单位分类为多个自由块管理列表。第1自由块选择部按通常优先度取得自由块时,从存在比第1阈值多的自由块数的自由块管理列表取得自由块。第2自由块选择部按高优先度取得自由块时,从存在比第1阈值多的自由块数的自由块管理列表和不存在比第1阈值多的自由块数的自由块管理列表取得自由块。
附图说明
图1是SSD的构成例的方框图。
图2是NAND控制器和NAND存储器的连接形态的示图。
图3是NAND控制器的内部构成例的方框图。
图4是NAND存储器的物理构成的示图。
图5是NAND存储器及RAM内形成的功能构成的方框图
图6是LBA逻辑地址的示图。
图7是比较例的动态块分配方式的概念示图。
图8是比较例的动态块分配方式的概念示图。
图9是第1实施例的要部构成的功能方框图。
图10是自由块列表及激活块列表的示图
图11是写入工作的全体流程的流程图。
图12是通常优先度的自由块选择顺序的流程图。
图13是高优先度的自由块选择顺序的流程图。
图14是第1实施例的要部构成的功能方框图。
图15是第2实施例的工作顺序的流程图。
图16是个人电脑的外观的立体图。
图17是个人电脑的功能构成例的示图。
具体实施方式
以下参照附图,详细说明本发明实施例的存储系统。另外,这些实施例不限定本发明。
NAND型闪速存储器中,主机设备指定的数据的逻辑地址与NAND型闪速存储器上的实际的存储区域即物理地址的关系,采用每次数据更新都动态进行相关的逻辑物理变换方式。该逻辑物理变换方式中,将空块分类为多个组,按可并行写入的组合从各组选择空块,实现并行处理,但是,根据主机设备指定的数据地址,选择集中到特定组的块,选择集中的组的块没有后,结果无法按可并行写入的组合来选择空块,有降低并行度的可能性。
[第1实施例]
图1是作为存储系统的一例的SSD(Solid State Drive,固态驱动器)100的构成例的方框图。SSD100具备:作为SSD控制器的驱动控制电路4;作为非易失性半导体存储器的NAND型闪速存储器(以下简称NAND存储器)10;起到缓冲存储器、操作用存储区域等的功能的例如易失性半导体存储器构成的RAM20;ATA接口(ATA I/F)2等的存储器连接接口等。SSD100经由ATA I/F2与个人电脑或者CPU芯片等的主机装置(以下简称主机)1连接,起到主机1的外部存储器的功能。
NAND存储器10存储由主机指定的用户数据,并存储RAM20管理的管理信息以用于备份。NAND存储器10具有使多个存储单元矩阵状排列的存储单元阵列,各个存储单元可使用上位页面及下位页面进行多值存储。NAND存储器10由多个存储芯片构成,各存储芯片通过排列多个数据删除单位即物理块而构成。另外,NAND存储器10中,按每个物理页面进行数据的写入及数据的读出。物理块由多个物理页面构成。图1中,NAND存储器10经由4信道(4ch:ch0~ch3)与驱动控制电路4内部的NAND控制器113并行连接,可使4个信道(channel)并行工作要素10a~10d并行工作。信道数不限于4个,可采用任意的信道数。
RAM20用作数据传送用、管理信息记录用或操作区域用的存储部。具体地,作为数据传送用存储部(数据传送用缓冲器),用于在将主机1请求写入的数据写入NAND存储器10前暂时地保存,将主机1请求读出的数据从NAND存储器10读出后暂时地保存。另外,作为管理信息记录用存储部,用于存储用于管理NAND存储器10存储的数据的存储位置等的管理信息(NAND存储器10存储的各种管理表在启动时等展开的管理表、这些管理表的变更差分信息即日志等)。
驱动控制电路4在主机1和NAND存储器10之间经由RAM20进行数据传送控制,并控制SSD100内的各构成要素。
驱动控制电路4具备数据访问用总线101、电路控制用总线102。电路控制用总线102与控制驱动控制电路4全体的处理器104连接。电路控制用总线102经由ROM控制器106,与存储了引导NAND存储器10存储的各管理程序(FW:固件)的引导用程序的引导ROM105连接。
ATA接口控制器(ATA控制器)1、NAND控制器113及RAM控制器114与数据访问用总线101和电路控制用总线102的两方连接。ATA控制器111经由ATA接口2与主机1之间收发指令(写、读、快闪等)及数据等。数据访问用总线101经由SRAM控制器16与作为数据操作区域及固件展开区域使用的SRAM115连接。NAND存储器10存储的固件启动时,根据引导ROM105存储的引导用程序,向SRAM115传送。
RAM控制器114执行处理器104与RAM20的接口处理等。NAND控制器113执行处理器104和NAND存储器10的接口处理、NAND存储器10-RAM2O间的数据传送控制、纠错码的编码/解码处理等。
图2表示了NAND控制器113和NAND存储器10的连接形态。NAND存储器10如前述,由多个信道并行工作要素(要件)10a~10d构成。各信道并行工作要素10a~10d由存储体可交织的多个存储体(bank)(图2中为4存储体,Bank0~Bank3)构成,各信道并行工作要素10a~10d内的各个存储体由多个存储芯片(图2中为2存储芯片,Chip0、Chip1)构成。
如图2所示,NAND控制器113具有多个信道,各信道中,通过4个芯片使能信号(CE)按每个存储体个别控制共有控制器I/O信号(CtrlI/O)的多个存储芯片。另外,进行控制,使横跨多个信道地共有4个就绪/忙碌信号(RyBy),共有就绪/忙碌信号(RyBy)的各信道的存储芯片同时工作。将共有就绪/忙碌信号(RyBy)的存储芯片群称为存储体,各存储体可独立进行写入/读出/删除工作。
图3表示NAND控制器13的内部构成例。NAND控制器13中,为了使各信道独立工作,按每个信道具备DMA控制器(DMAC)50、纠错电路(ECC)51、进行指令发行的NAND接口(NANDI/F)52。各NAND I/F52与4存储体量的芯片使能信号CE(CE0~CE3)连接,根据访问的存储体,控制CE信号(CE0~CE3)。另外,为了使4存储体独立工作,按每个存储体具备4个监视共同连接的RyBy信号并管理存储体的状态的存储体控制器(BANK-C)53。RANK-C53具备将对各存储体的请求排队的功能,存在对各存储体的请求时,确保信道的使用权,执行自身管理的存储体的读出/写入/删除请求。调停控制电路54,监视NANDI/F 52及BANK-C 53,按照规定的规则调停各存储体的信道使用权。
图4表示了NAND存储器10的更详细内部构成。图4中,信道数表示了(M+1)个,存储体数表示了N+1个,芯片数表示了K+1个。如图4所示,各存储芯片(chip0~chipK)例如分割为分别包含多个物理块的层面0(plane0)、层面1(plane1)的2个区域(District)。层面0及层面1具有相互独立的周边电路(例如,行解码器、列解码器、页面缓冲器、数据缓存存储器(cache)等),通过使用倍速模式,可同时进行删除/写入/读出。即,虽然无法并行访问同一层面内的多个物理块,但是可并行访问属于不同层面的物理块。存储芯片内的层面数不限于2个,可任意。另外,1个存储芯片如图4扩大所示,由多个物理块构成(图4中为X+1个物理块)。
这样,NAND存储器10中,多个信道的并行工作、多个存储体的并行工作、采用多个层面的倍速模式的并行工作成为可能,信道数为4、存储体数为4、层面数为2的场合,可使最大32个物理块并行工作。
图5表示了在NAND存储器10及RAM20内形成的功能块。在主机1和NAND存储器10之间,介有在RAM20上构成的写入缓冲器(WB)21及读出缓冲器(RB)22。WB21暂时保存来自主机1的写入数据,RB22暂时保存来自NAND存储器10的读出数据。为了减少NAND存储器10内的块进行写入时对NAND存储器10的删除量,通过处理器104向中间存储区域(VS)12及主存储区域(MS)11这样的各管理区域分配。VS12将来自WB21的数据按「小单位」即簇(cluster)单位管理。MS11将来自WB21、VS2的数据按「大单位」即轨道(track)单位管理。
接着,说明图5的各构成要素的具体的功能构成。主机1对SSD100读出或写入时,经由ATA接口2输入作为逻辑地址的LBA(Logical BlockAddressing,逻辑块地址)。LRA如图6所示,是对扇区(尺寸:512B)赋予从0开始的流水编号的逻辑地址。本实施例中,作为图5的各构成要素即WB21、RB22、VS12、MS11的管理单位,定义了由从LBA的下位(s+1)比特到上位的比特列构成的簇地址和由从LBA的下位(s+t+1)比特到上位的比特列构成的轨道地址。
轨道和逻辑块的尺寸可以相同,轨道尺寸也可以比逻辑块的尺寸小。逻辑块是NAND存储器10的芯片上的多个物理块组合构成的假想块,该实施例中,逻辑块是将一个物理块以最大并行信道数(该场合,如图1所示最大4ch)汇总的单位。另外,构成逻辑块的物理块为了有效利用存储体交织,从属于同一存储体的物理块选择。簇尺寸在扇区(sector)尺寸以上,例如,簇尺寸设定为比逻辑页面尺寸小。逻辑页面也同样,是将一个物理页面以最大并行信道数汇总的单位。轨道尺寸设为簇尺寸的2以上的自然数倍。
NAND存储器10中,如前述,多个存储体的并行工作、采用多个层面的倍速模式的并行工作成为可能。从而,在考虑到逻辑块单位的场合,NAND存储器10中,通过进行存储体的并行工作、采用层面的并行工作,可以使逻辑块多个并行工作。
读出缓冲器(RB)22
RB22是用于针对主机1的读出请求,暂时地保存来自NAND存储器10(VS12,MS11)的读出数据的区域,也可以具有缓存存储功能。到主机1的数据传送基本从RB22进行。在WR21存在最新的数据的场合,从WB21向主机1进行数据传送。
写入缓冲器(WB)21
WB21是用于针对主机1的写入请求,暂时地保存来自主机1的写入数据的区域,也可以具有缓存存储功能。WR21上的数据按簇单位管理,写入和有效数据的管理按扇区单位进行。WB21的资源不足的场合,将WB21的存储数据向NAND存储器10转移(驱逐)。该转移时,将WB21上有效簇多的轨道(高密度轨道)向MS11转移,将WB21上有效簇少的轨道(低密度轨道)向VS12转移。高密度数据是在规定的逻辑地址范围内有效数据比规定比例多的数据,低密度数据是在规定的逻辑地址范围内有效数据比规定比例少的数据。
主存储区域(MS)11
MS11按轨道单位进行数据的管理,存储大部分的用户数据。WB21上有效簇多的轨道(高密度轨道:有效簇在规定的阈值α以上的轨道),从WB12直接写入MS11。另外,VS12管理不过来的数据输入MS11。对于与输入MS11的轨道同一LBA的轨道,在MS11的逻辑块内无效化,释放该逻辑块。对于属于与输入MS11的轨道同一LBA的轨道的簇,在VS12内无效化,释放逻辑块内的全簇成为无效的逻辑块。
中间存储区域(VS)12
VS12是按簇单位管理数据的例如FIFO构造的缓冲器,输入按将多个簇汇总的逻辑页面单位进行。VS12中写入WB21上有效簇少的轨道(低密度轨道:有效簇不足规定的阈值α的轨道)。VS12例如形成按数据的写入顺序排列逻辑块的FIFO构造。将与在VS12存在的簇同一LBA的簇输入VS12的场合,可以仅仅使VS12内的簇无效化,不伴随改写工作。对于与输入VS12的簇同一LBA的簇,在逻辑块内无效化,释放逻辑块内的全簇成为无效的逻辑块。VS12的容量饱和时,将VS12内的簇综合为轨道,向MS1转移。
这样,NAND存储器10的存储区域分为MS11和VS12进行管理,因此,LBA地址基本连续的写入即顺序写入的数据作为高密度数据,主要写入MS11,LRA地址不连续的随机的写入即随机写入的数据作为低密度数据,主要写入VS2。
这里,第1实施例中,将逻辑块区别为自由块FB、激活块AB进行管理。自由块FB是内部不包含有效数据,用途未分配的逻辑块。激活块AB是内部包含有效数据,分配了用途的(例如,向VS12、MS11分配的)逻辑块。作为与主机1之间使用的LBA的逻辑地址和表示实际的NAND存储器10上的存储位置的物理地址的关系,按块单位管理。SSD100中,逻辑地址和物理地址的关系不预先静态地确定,采用数据写入时动态地进行相关的逻辑物理变换方式。
例如,在覆写相同LBA地址上的数据时,如下进行块交换。在逻辑地址A1保存有效数据,使用块B1作为存储区域。从主机1接收了覆写逻辑地址A1的数据(尺寸与块相同)的指令的场合,确保1个自由块FB(设为块B2),对该自由块FB写入从主机接收的数据。然后,使逻辑地址A1和块B2相关。结果,块B2成为激活块AB,块B1保存的数据成为无效,因此块B1成为自由块FB。这样,SSD100中,即使是相同逻辑地址A1的数据,在每次写入时,作为实际的记录区域使用的块也变化。
自由块FB由FB管理列表管理。FB管理列表是例如按照成为自由块FB的时间顺序或块的删除次数顺序排序的FIFO形式的列表,在列表的各入口保持块识别符。将从激活块AB成为自由块FB的自由块FR向FB管理列表追加,使用自由块FB时从FB管理列表取出。FB管理列表中,执行使全部逻辑块的删除次数、删除间隔大致相等的损耗平衡(wear leveling)处理。
接着,说明本实施例的要部。本实施例中,将VS12和MS11中的自由块FB的分配管理分离,优先向MS11分配自由块FB。
最初,说明比较例。NAND存储器10的写入速度慢,因此SSD100中如前述,可进行信道、层面、存储体的并行工作,提高传送性能。顺序写入时确保逻辑块的写入并行数的最简单方法是采用固定LBA的顺序和并行写入的存储体、层面的顺序的LBA固定分配方式,总是以最大并行数写入。但是,该方式中,若对特定的LBA反复写入,则特定层面的删除次数增加,有制品寿命缩短的可能性。
因而,考虑LBA和存储体/芯片/层面的分配动态可变的LBA动态块分配方式。该方式中,如图7所示,作成可并行写入的层面的组(按层面单位构成的可并行写入的多个FB管理列表),每次有写入请求时,将并行写入的块按轮循(round-robin)分配给新数据。空白的四角表示自由块FB,插入「0」的四角设为存储了LBA地址「0」的数据的块。图7中,表示了主机中4个线程(thread)顺序写入的状态,第1线程的LBA地址设为「0,1,2,3,…」,第2线程的LBA地址设为「8,9,10,11,…」,第3线程的LBA地址设为「16,17,18,19,…」,第4线程的LBA地址设为「24,25,26,27,…」,从主机1按图示顺序向SSD100输入数据。图7中,数据的输入顺序通过轮循选择层面,LBA地址分散在各层面。
这样,采用轮循方式的场合,在通常的利用中,LBA地址概率地分散到各层面,但是依赖于写入图形,有各层面的块使用数不平衡的情况。若块的使用数不平衡,无法从特定的层面确保块,则写入的并行数不平衡,传送性能降低。
图8表示了即使采用LBA动态块分配方式也因特定的LBA图形而使各层面的块使用数不平衡的情况。首先,最初对全层面进行顺序写入(全面顺序写入)。采用单纯的轮循的场合,如图8(a)所示,成为与LBA固定分配方式同样的映射。接着,设为进行仅仅更新特定层面(该场合是层面0)存在的块的写入。即,在层面0的块存储8的倍数的逻辑地址「0,8,16,24,…」的数据,设为对8的倍数的逻辑地址「0,8,16,24,…」进行更新写入。在LBA动态块分配方式中,如前述,即使是相同逻辑地址A1的数据,在每次写入时,作为实际的记录区域使用的块也变化,因此如图8(b)所示,更新写入的数据分散写入各层面的块,与此伴随,全面顺序写入时写入数据的层面0的块作为自由块FB释放。其结果,自由块FB仅仅集中在层面0,在层面0以外的层面中,块的释放(激活块的自由块化)不发生,因此自由块枯竭。这样,即使采用LBA动态块分配方式,根据写入图形,也有特定层面的使用数多,写入并行度降低的可能性。
如前述,LBA地址基本连续的写入即顺序写入的数据作为高密度数据主要写入MS11,LBA地址不连续的随机写入即随机写入的数据作为低密度数据主要写入VS12。在进行顺序写入的MS11,为了提高顺序写入性能,请求提高写入并行数,因此,虽然也考虑采用LBA固定分配方式,但是该方式中,如前述,若对特定的LBA反复写入,则特定的层面的删除次数增加,有制品寿命缩短的可能性。
如上所述,本实施例中,在VS12和MS11的双方采用动态块分配方式,将VS12和MS11中的自由块FB的分配管理分离,通过优先向MS11分配自由块FB,可以防止顺序写入时的块并行度的降低。
图9是第1实施例的要部构成的功能方框图。控制器5具备数据读出部60、数据写入部61、数据管理部62,这些功能要素由前述固件实现。也可以由控制器5应实现的功能作为电路嵌入的SoC(System-on-a-chip)构成控制器5。控制器5经由总线与前述的ATA控制器111、写入缓冲器21、NAND存储器10连接。
数据管理部62管理作为与主机1之间使用的LBA的逻辑地址和表示实际的NAND存储器10上的存储位置的物理地址的逻辑物理关系。逻辑地址和物理地址的关系不预先静态确定,而是采用数据写入时动态地进行相关的前述逻辑物理变换方式。
数据读出部60被通知来自ATA控制器111的读出指令接收后,使数据管理部62检索与指令指定的地址对应的块,从检索的块将数据读出到读出缓冲器(RB)22(参照图5)。数据读出部60然后控制ATA控制器111,将指令指定的范围的数据向主机发送。
数据写入部61被通知来自ATA控制器111的写入指令接收后,控制ATA控制器111,以确保写入缓冲器(WB)21的空区域,从主机1接收数据。然后,数据写入部61在写入缓冲器(WB)21蓄积了足够的写入数据而需要数据转移时,对块管理部70发出确保数据写入所需要数的自由块FB的请求,向由块管理部70确保的块写入数据。然后,数据写入部61对数据管理部62请求登记地址和块的对应关系。
块管理部70具有自由块选择部71、自由块管理部80、激活块管理部90,进行块的管理、数据写入时使用的自由块FB的选择以及激活块AB的选择。
自由块管理部80管理自由块FB的部分,具有用于按层面管理自由块FB的多个自由块列表(FB列表)。FB列表作为前述管理信息,在RAM20中存储并使用。各自由块由与自身所属层面对应的自由块列表管理。作为FB列表的详细形态,有以包含与各自由块FB对应的块识别符的块信息为节点链接的列表形态。向自由块列表链接块的顺序可以是单纯的FIF0,也可以是按块的删除次数排序的顺序。
激活块管理部90管理激活块AB,具有按每个层面管理激活块AB的多个激活块列表(AB列表)。AB列表作为前述管理信息,在RAM20存储并使用。各激活块由与自身所属的层面对应的激活块列表管理。作为AB列表的详细形态,有以包含与各激活块AB对应的块识别符的块信息为节点链接的列表形态。向AB列表链接块的顺序设为单纯FIFO,以按照确保的顺序排序。若可判定确保的顺序,则可以是双向列表的构造等,不限于FIFO等的构造。
自由块选择部71为了确保从数据写入部61请求的自由块数β,从自由块管理部80管理的多个FB列表选择请求数β的自由块FB。自由块选择部71选择可并行写入的自由块FB的组时,按照规定的顺序规则选择FB列表,从选择的FB列表取得自由块FB。
本实施例中,例如,从各信道集中具有同一存储体编号/芯片编号/层面编号的物理块来构成逻辑块。即,本实施例中,关于构成逻辑块的物理块的组合方法,设置下记(1)至(4)的制约。
(1)逐一选择各信道的物理块。
(2)各信道的物理块从属于同一芯片编号的物理块选择。
(3)各信道的物理块从属于同一层面编号的物理块选择。
(4)选择同一存储体内的物理块。
从而,逻辑块可按每个存储体、每个芯片、每个层面进行分类。另外,如图10所示,FB列表80-0~80-7分别构成具有同一存储体编号、芯片编号、层面编号的逻辑块的列表。
顺序规则优选是若以该顺序选择FB列表,则可取得可并行写入的组的自由块FB的顺序。
例如,存储体数为4个,各存储体内的芯片数为1个,各芯片内的层面数为2个的场合(芯片数合计4个),总共存在8个层面,这些层面间全部可并行写入。该场合,若从各层面逐一选择自由块,则最大可进行8并行的写入。该场合,各层面对应的自由块列表附上0到7的识别符,作成{0,1,2,3,4,5,6,7}这样的长度8的顺序规则。若反复该顺序规则,无论从哪个位置开始自由块列表的选择,都可以选择最大可8并行写入的自由块。例如从位置4开始的场合,以{4,5,6,7,0,1,2,3}选择自由块列表即可。
在可并行写入的层面的组存在制约的场合,无法并行写入的层面在顺序规则中以尽可能远的距离配置即可。例如,上述同样芯片数合计为4个,而存储体数为2个,各存储体内的芯片数为2个,各芯片内的层面数为2个的场合,即,各芯片2个一组构成2个存储体,存在属于同一存储体的芯片无法进行并行写入的制约的情况。该情况下,虽然存在合计8个层面,但是最大并行度为4。此时,将各层面表示为「B(存储体编号)C(存储体内芯片编号)P(芯片内层面编号)」,则如图10所示,作成
{B0C0P0,B0C0P1,B1C0P0,B1C0P1,B0C1P0,B0C1P1,B1C1P0,B1C1P1}这样的顺序规则即可。
图10中,属于同一存储体的芯片无法并行写入,因此,属于FB列表80-0~80-3的4个自由块FB可并行工作。属于FB列表80-4~80-7的4个自由块FB也可并行工作。属于FB列表80-2~80-5的4个自由块FB也可并行工作。属于FB列表80-6~80-1的4个自由块FB也可并行工作。但是属于FB列表80-0~80-1的自由块FR和属于FB列表80-4~80-5的自由块FB不可并行工作,属于FB列表80-2~80-3的自由块FB和属于FB列表80-6~80-7的自由块FB不可并行工作,它们在顺序规则中隔着距离配置。
另外,图10中也表示了激活块列表90-0~90-7。将从各层面的FB列表80-1~80-7取得的自由块的块识别符与同一层面的AB列表90-1~90-7关联(连接),作为激活块AB登记。
自由块选择部71保持表示在顺序规则上选择了第几个的信息。该信息表示按照顺序规则作成FB列表的顺序列时在顺序列上的位置,因此称为位置信息P。另外,自由块选择部71具有按照顺序规则和位置信息P选择FB列表的列表选择部和在自由块选择后更新位置信息P的位置信息更新部。列表选择部及位置信息更新部按优先度类别具备高优先处理部和通常优先处理部的2组。
本实施例中,为了确保写入时的传送能力,主机接收的写入数据暂时在写入缓冲器21蓄积,积累足够量的数据后,并行写入NAND存储器10的多个自由块。写入NAND存储器10时,采用根据来自写入缓冲器21的成为转移对象(闪存对象)的数据的粒度(高密度,低密度),变更写入目的地(MS11或VS12)的方式。该方式在特愿2009-535161号中进行了详细说明。例如,顺序写入中,形成连续的(高密度的)大数据,按块单位汇总,并确保尽可能大的并行度,并行写入MS11。
预备块数信息95保持各FB列表中作为预备块确保的自由块数。该确保的自由块数设为R。该预备块仅仅高优先列表选择部72可使用,通常优先列表选择部74无法使用。
高优先列表选择部72在从数据写入部R1指定高优先度时工作,为了确保从数据写入部61请求的自由块数β,进行FB列表的选择。高优先列表选择部72从FB列表选择自由块FB时,可以使用各FB列表确保的预备块。高优先位置信息更新部73在高优先列表选择部72工作时,进行顺序规则的位置信息P的更新。
通常优先列表选择部74在从数据写入部61指定通常优先度时工作,为了确保从数据写入部61请求的自由块数β,进行FB列表的选择。通常优先列表选择部74从FB列表选择自由块FB时,无法使用各FB列表中确保的预备块。通常优先位置信息更新部75在通常优先列表选择部74工作时,进行顺序规则的位置信息P的更新。另外,设置高优先位置信息更新部73及通常优先位置信息更新部75,独立进行高优先及通常优先时的位置信息P的更新,但是高优先及通常优先时的位置信息P的更新也可以共用。
接着,按照图11说明写入处理的全体顺序的概要。ATA控制器111判断从主机1接收指令时(步骤S100)接收的指令是否为写入指令(步骤S110)。是写入指令以外的指令的场合,ATA控制器111执行与接收指令相应的处理(步骤S120)。
ATA控制器111在接收的指令是写入指令的场合,执行以下的处理。首先,ATA控制器111向控制器5通知写入指令接收(步骤S130)。通过该通知,控制器5的数据写入部61向ATA控制器111输出指示,以在写入缓冲器21内确保接收写入数据的区域,在确保区域接收数据(步骤S140)。接着,ATA控制器111从主机1接收写入数据,接收的数据存储到写入缓冲器21上的指示区域(步骤S150)。接着,数据写入部61,通过将写入缓冲器21的蓄积数据与规定的闪存阈值比较,判断在写入缓冲器21上是否蓄积了足够的数据(步骤S160),在写入缓冲器21上未蓄积足够数据的场合,顺序转移到步骤S100,返回指令等待的状态。
在写入缓冲器21蓄积了闪存阈值以上的数据的场合,数据写入部61计算从写入缓冲器21向NAND存储器10转移数据所需要的自由块数β(请求数β)(步骤S170)。数据写入部61判定转移数据的粒度(密度),数据的粒度细的场合(低密度的场合),指定通常优先度,数据的粒度粗的场合(高密度的场合),指定高优先度,与必要的自由块数β一起,向块管理部70请求自由块FB(步骤S180)。
块管理部70选择请求数β以下的可并行写入的自由块的组,将选择的自由块通知数据写入部61(步骤S190)。块管理部中,将从FB列表选择的自由块FB作为激活块AB,与对应的同一层面的AB列表链接(步骤S200)。该步骤S190的处理将在后详述。
数据写入部61向RAM控制器114及NAND控制器113(参照图1)请求将写入缓冲器21上的数据并行写入从块管理部70通知的自由块。RAM控制器114执行从写入缓冲器21的数据读出,NAND控制器113将从写入缓冲器21读出的数据以确保的并行度写入NAND存储器10(步骤S210)。
数据写入部61向数据管理部62请求登记写入NAND存储器10的数据的逻辑地址和块的物理地址的对应关系。数据管理部62登记进行了数据写入的逻辑地址和块的逻辑物理关系(步骤S220),而且将与进行了数据写入的逻辑地址以前相关的激活块AB从AB列表除去,通知块管理部作为自由块FB进行管理(步骤S230)。块管理部70确定与从数据管理部62通知的自由块所属层面对应的FB列表,将通知的自由块与确定的FB列表链接。
数据写入部61判断步骤S190选择的可并行写入的自由块的个数是否达到请求数β(步骤S240)。换言之,数据写入部61判断是否还剩余必须从写入缓冲器21向NAND存储器10转移的数据。可并行写入的自由块的个数若未达到请求数β,则返回步骤S170,再计算请求数β。达到请求数β后,从写入缓冲器21向NAND存储器10的数据转移处理结束。
接着,按照图12说明图11的步骤S180指定通常优先度时的块管理部70的工作顺序。另外,将来自数据写入部61的自由块请求数设为β(请求数β)。
通常优先列表选择部74从通常优先位置信息更新部75取得位置信息P(步骤S300)。该位置信息P是前次通常优先的自由块选择中的顺序规则的结束位置的下一个位置。通常优先列表选择部74计算从取得的位置信息P开始时的最大并行度m(步骤S310)。例如,图10所示FB列表构造中,如前述,从FB列表80-0开始自由块FB的取得时,可选择从FB列表80-0到FB列表80-3的4个FB列表,最大并行度成为4,但是从FB列表80-1开始自由块FB的取得时,只能选择从FB列表80-1到FB列表80-3的3个FB列表,最大并行度成为3。接着,通常优先列表选择部74设置块取得数nb=0,列表选择次数i=0(步骤S320,S330)。
通常优先列表选择部74判定在与位置信息P对应的FB列表(P)是否剩余了自由块FB作为预备块数信息95设定的R个以上(步骤S340)。该判定为自由块不足R个时,通常优先列表选择部74不从该FB列表(P)取得自由块FB,顺序转移到步骤S370。步骤S340的判定为在FB列表(P)存在R个以上自由块时,通常优先列表选择部74从FB列表(P)取得自由块FB(步骤S350)。接着,通常优先列表选择部74使块取得数nb加一,使列表选择次数i加一(步骤S360,S370)。
接着,通常优先列表选择部74将位置信息P加一,将位置信息P更新到下一个位置(步骤S380)。位置信息P超过顺序规则的最终位置时,将位置信息P设定成顺序规则的开头。接着,通常优先列表选择部74判定块取得数nb是否达到请求数β(步骤S390),nb=β时,结束处理。另外,通常优先列表选择部74判定列表选择次数i是否达到计算的最大并行度m(步骤S395),i=m时,结束处理。这样,一边更新位置信息P,一边从FB列表(P)取得自由块,直到nb=β或i=m成立为止。
这样,通常优先列表选择部74从FB列表选择自由块FB时,无法使用各FB列表确保的预备块。
接着,按照图13说明图11的步骤S180指定高优先度时的块管理部70的工作顺序。来自数据写入部61的自由块请求数设为β(请求数β)。
高优先列表选择部72从高优先位置信息更新部73取得位置信息P(步骤S400)。该位置信息P是前次高优先的自由块选择中的顺序规则的结束位置的下一个位置。高优先列表选择部72计算从取得的位置信息P开始时的最大并行度m(步骤S410)。接着,高优先列表选择部72使块取得数nb加一,使列表选择次数i加一(步骤S420,S430)。
高优先列表选择部72判定与位置信息P对应的FR列表(P)是否存在自由块FB(步骤S440)。该判定为没有自由块时,高优先列表选择部72不从该FR列表(P)取得自由块FB,顺序转移到步骤S470。步骤S440的判定为FB列表(P)存在自由块时,高优先列表选择部72从FB列表(P)取得自由块FB(步骤S450)。接着,高优先列表选择部72使块取得数nb加一,使列表选择次数i加一(步骤S460,S470)。
接着,高优先列表选择部72将位置信息P加一,将位置信息P更新到下一个位置(步骤S480)。位置信息P超过顺序规则的最终位置时,将位置信息P设定成顺序规则的开头。接着,高优先列表选择部72判定块取得数nb是否达到请求数β(步骤S490),nb=β时,结束处理。另外,高优先列表选择部72判定列表选择次数i是否达到计算的最大并行度m(步骤S495),i=m时,结束处理。这样,一边更新位置信息P,一边从FB列表(P)取得自由块,直到nb=β或i=m成立为止。
这样,高优先列表选择部72从FB列表选择自由块FB时,可以使用各FB列表确保的预备块。
另外,步骤S310、S410中计算最大并行度时,在β>m时,变更位置信息P,将位置信息P设为例如与顺序规则的开头的层面的FB列表对应的位置,也可以尽可能确保最大并行度。
另外,上述中,选择FB列表时,采用单纯的轮循方式,例如,也可以通过与在各存储体/芯片/层面发生的不良块BB的个数(BB数)逆向对应的值(例如BB数的倒数)、在各存储体/芯片/层面可利用的逻辑块数(自由块FB的数和激活块AB的数的总和)、属于各FB列表的块的个数等加权的轮循方式,选择取得自由块FB的列表。不良块BB是错误多等而无法作为存储区域使用的物理块,例如,删除工作未正常结束的物理块登记为不良块BB。这样,通过加权的轮循方式选择取得自由块FB的列表的方式,在日本特愿2009-30299号中进行了详细说明。
这样在第1实施例中,采用基于LBA动态块分配方式的自由块列表管理,在各自由块列表保留规定个数R的预备块,这些预备块在向NAND存储器10进行高密度数据的写入时使用,在进行低密度数据的写入时不使用,因此,即使发生仅仅更新特定层面存在的块这样的特殊写入,也不会降低进行高密度轨道的写入的顺序写入时的写入并行度,可高速访问。
另外,预备块数的设定值R也可以因各自由块列表内的不良块BB的个数等而异。
[第2实施例]
接着,说明本发明的第2实施例。用第1实施例的方法也可以避免自由块数在各FB列表间的不平衡。因而,第2实施例中,在块的使用数在层面间(FB列表间)变得不平衡的场合,利用没有来自主机1的访问的时间,将数据从块的使用数多的层面向少的层面移动,在各层面中,使块的使用数在一定以下。
图14是第2实施例的要部构成的功能方框图。图14中,向图9所示的控制器5追加了块移动部78。其他构成要素与图9所示相同,重复的说明省略。
块移动部78进行从与自由块变少的层面对应的激活块列表释放激活块AB,将释放的块向FB列表补充的处理。块移动部78具有记录对哪个自由块列表进行了处理的列表位置信息79。
第2实施例中,写入处理的全体顺序与用图11说明的顺序同样,重复的说明省略。以下,按照图15说明块移动部78的数据移动处理的顺序。
块移动部78,首先,设置列表位置信息79的位置信息P=0(步骤S500)。块移动部78判定与位置信息P对应的FB列表(P)中是否剩余(R-1)个以上自由块(步骤S510)。该判定为在FB列表(P)未剩余(R-1)个以上自由块的场合,块移动部78从相同位置信息P的AB列表(P),取得存储了最旧数据的激活块AB(步骤S520)。而且,块移动部78将取得的激活块AB从AB列表(P)删除(步骤S530)。
接着,块移动部78向RAM20的操作区域读出取得的激活块AB的存储数据(步骤S540)。接着,块移动部78指定通常优先度,向自由块选择部71请求一个自由块。通常优先列表选择部74按照图12的顺序,选择一个自由块FB。通常优先列表选择部74的FB列表选择中,如前述,不选择自由块未剩余R个以上的FB列表,因此,通常优先列表选择部74从与步骤S510的判断为否的FB列表不同的FB列表选择自由块。通常优先列表选择部74将选择的自由块的块识别符通知块移动部78(步骤S550)。
块移动部78将读出到RAM20的操作区域的激活块AB的存储数据写入通知了块识别符的自由块(步骤S560)。接着,块移动部78将步骤S520选择的位置信息P的激活块AB作为自由块,与具有相同位置信息P的FB列表(P)链接(步骤S570)。而且,块移动部78将步骤S550取得的自由块FB与该自由块所属层面对应的FB列表链接(步骤S580)。接着,块移动部78再度判定在相同位置信息P对应的FB列表(P)是否剩余(R-1)个以上自由块(步骤S510),在FB列表(P)未剩余(R-1)个以上自由块的场合,反复步骤S520~S580的处理,直到步骤S510的判断为是。
步骤S510中,判定剩余(R-1)个以上自由块的场合,块移动部78将位置信息P加一,将位置信息P更新到下一个位置(步骤S590)。接着,块移动部78判定位置信息P是否成为FB列表的最终位置(步骤S600),反复上述的处理,直到位置信息P成为FB列表的最终位置为止。位置信息P成为FB列表的最终位置的场合,处理结束。
另外,在步骤S520选择激活块时,在选择的最旧激活块AB是来不及写入的块,即可预计从写入数据的时刻到现在为止的期间不满足规定时间的场合,也可以不选择该激活块AB,而从具有其他位置信息P的AB列表选择激活块。即,对于可预计短期释放激活块的FB列表,由于可以期待即使不进行列表间的数据移动处理也可增加自由块,因此,在步骤S520选择激活块时,也可以中止对该激活块列表的选择,将顺序转移到步骤S590。预计可以按如下方法进行。
使每个激活块列表持有每次对该激活列表更新时加一的顺序计数C,对自由块写入数据,与激活块列表链接时,将该块与该时刻的计数C相关。以下,与某块b相关的计数C记述为BC(b)。计数C与激活块列表中的最旧块AB的BC(AB)的差越小,则可判定激活块AB越是近期被写入,例如,某层面的所有块按照顺序使用的场合,该差成为与激活块列表的长度相等的关系。
从而,在步骤S520选择最旧激活块AB时,比较BC(AB)和激活块列表的计数C,差在阈值以下的场合,判定该激活块AB最近被写入,跳过从该激活块列表释放激活块,转移到步骤S590。作为阈值,也可以采用将激活块列表的长度乘以一定的系数后的值等。
这样,第2实施例中,将与自由块数比阈值(R-1)少的自由块管理列表对应的激活块列表的激活块的数据,移动到从自由块数在阈值R以上的自由块管理列表选择的自由块,因此,可以向自由块少的自由块列表补充自由块,避免自由块数在各自由块列表间产生不平衡,可以总是在各自由块列表确保R个以上的预备块,即使在动态块分配方式中,也难以发生顺序写入性能的降低。
另外,图15的步骤S510中,作为阈值,使用(R-1)个,但是阈值也可以是小于R的其他数值。该场合,在各自由块列表总是确保的预备块的数也变得比R少。
另外,块移动部78的数据移动处理可以利用没有来自主机1的访问的时间进行,也可以在块移动部78检测到与任一层面对应的FB列表中自由块数低于(R-1)个时,比其他处理优先地进行。
另外,上述第1、第2实施例中,NAND存储器10构成为通过多个信道进行信道并行工作,但是通过单一信道也可以将NAND存储器10和驱动控制电路4连接。另外,上述第1、第2实施例中,由多个物理块构成逻辑块,以逻辑块为单位管理自由块列表,但是也可以不构成逻辑块,以逻辑块为单位管理自由块列表。
另外,上述第1、第2实施例中,使用信道、存储体、芯片、层面将自由块列表分类为多个,但是,也可以根据非易失性半导体存储器的规格,使用信道、存储体、芯片、层面中的一个以上将自由块列表分类为多个。另外,自由块列表的分类单位不限于信道、存储体、芯片、层面,只要是使块可并行工作的块的集合单位,则也可以使用其他任意的集合单位。
另外,上述第1、第2实施例中,根据数据是高密度数据还是低密度数据来进行高优先、通常优先的自由块选择,但是也可以根据其他选择基准进行高优先、通常优先的切换选择。例如,若可以附加在主机1写入时指定是顺序写入还是随机写入的信息,则也可以在指定顺序写入的场合判断为高优先,指定随机写入的场合判断为通常优先,进行切换选择。
另外,例如,对于管理表的变更差分信息即日志等预知尺寸小的数据,也可以判断为通常优先。另外,为了进入待机状态,从写入缓冲器21向NAND10转移数据的场合等需要高数据传送速度的场合,也可以将全部数据判断为高优先。另外,上述第1、第2实施例中,按高优先及通常优先的2个优先度进行自由块列表的管理,但是优先度也可以分3个以上进行管理。
[第3实施例]
图16是搭载SSD100的个人电脑1200的一例的立体图。个人电脑1200具备本体1201及显示单元1202。显示单元1202具备显示器外壳1203和该显示器外壳1203收容的显示装置1204。
本体1201具备框体1205、键盘1206、指示器装置即触摸板1207。框体1205内部收容了主电路基板、ODD(Optical Disk Device,光盘设备)单元、卡槽及SSD100等。
卡槽在框体1205的周壁邻接设置。在周壁设置了与卡槽对向的开口部1208。用户通过该开口部1208,可以从框体1205的外部向卡槽插拔追加设备。
SSD100作为传统的HDD的置换,可以以在个人电脑1200内部安装的状态使用,也可以在插入个人电脑1200具备的卡槽的状态,作为追加设备使用。
图17表示搭载SSD的个人电脑的系统构成例。个人电脑1200具备:CPU1301、北桥1302、主存储器1303、视频控制器1304、音频控制器1305、南桥1309、BI0S-ROM1310、SSD100、ODD单元1311、嵌入控制器/键盘控制器IC(EC/KBC)1312及网络控制器1313等。
CPU1301是用于控制个人电脑1200的工作的处理器,执行从SSD100向主存储器1303加载的操作系统(OS)。而且,在ODD单元1311可对装填的光盘执行读出处理及写入处理的至少一个处理时,CPU1301进行这些处理的执行。
另外,CPU1301也执行BI0S-ROM1310存储的系统BIOS(Basic Input Output System,基本输入输出系统)。另外,系统BIOS是用于个人电脑1200内的硬件控制的程序。
北桥1302是连接CPU1301的本地总线和南桥1309之间的桥装置。在北桥1302也内置了对主存储器1303进行访问控制的存储控制器。
另外,北桥1302也具有执行经由AGP(Accelerated Graphics Port,加速图形端口)总线1314等与视频控制器1304及音频控制器1305通信的功能。
主存储器1303暂时地存储程序、数据,起到CPU1301的工作区的功能。主存储器1303由例如RAM构成。
视频控制器1304是控制作为个人电脑1200的显示器使用的显示单元1202的视频再生控制器。
音频控制器1305是控制个人电脑1200的扬声器1306的音频再生控制器。
南桥1309控制LPC(Low Pin Count,低脚位数)总线上的各装置及PCI(Peripheral Component Interconnect,外围组件互连)总线1315上的各装置。另外,南桥1309经由ATA接口控制存储各种软件及数据的存储装置即SSD100。
个人电脑1200以扇区为单位进行SSD100的访问。经由ATA接口,写入指令、读出指令、缓存闪存指令等输入SSD100。
另外,南桥1309也具有对BI0S-ROM1310及ODD单元1311进行访问控制的功能。
EC/KBC1312是集成了电力管理用的嵌入控制器和用于控制键盘(KB)1206及触摸板1207的键盘控制器的单芯片微计算机。
该EC/KBC1312具有根据用户对电源按钮的操作使个人电脑1200的电源ON/OFF的功能。网络控制器1313是例如执行与互联网等的外部网络的通信的通信装置。
尽管描述了特定的实施例,但这些实施例仅仅用于示例,而不是限制本发明的范围,实际上,这里描述的新颖实施例可以通过各种其他形式体现,此外,这里描述的实施例的各种省略、替换和改变都没有脱离本发明的思想。所附的权利要求及其等同物旨在覆盖落入本发明的范围和思想内的这些形式或修改。
Claims (23)
1.一种存储系统,其特征在于,具备:
非易失性半导体存储器,其具有多个作为数据删除单位的块;和
控制器,其具有在对上述非易失性半导体存储器进行写入时从上述非易失性半导体存储器选择需要数目的不包含有效数据的自由块的块选择部和对上述选择的自由块进行写入的写入控制部;
上述块选择部具备:
列表部,其将上述非易失性半导体存储器所包含的自由块用可并行工作的块的集合单位分类为多个自由块管理列表;
第1自由块选择部,其按通常优先度取得自由块时,从存在比第1阈值多的自由块数的上述自由块管理列表取得自由块;和
第2自由块选择部,其按高优先度取得自由块时,从存在比第1阈值多的上述自由块数的自由块管理列表和不存在比第1阈值多的自由块数的上述自由块管理列表取得自由块。
2.根据权利要求1所述的存储系统,其特征在于,
上述第1自由块选择部在向上述非易失性半导体存储器写入在规定的逻辑地址范围内有效数据比规定比例少的低密度数据时工作,
上述第2自由块选择部在向上述非易失性半导体存储器写入在规定的逻辑地址范围内有效数据比规定比例多的高密度数据时工作。
3.根据权利要求2所述的存储系统,其特征在于,
上述各自由块管理列表以与一个以上的上述块相对应的逻辑块单位管理上述自由块。
4.根据权利要求3所述的存储系统,其特征在于,
还具备缓存存储器,
上述控制器具有将上述非易失性半导体存储器的存储区域以上述逻辑块单位分配为第1和第2管理存储区域的管理部,
上述写入控制部进行将写入上述缓存存储器的扇区单位的多个数据作为第1管理单位的数据向上述第1管理存储区域转移的第1转移和将写入上述缓存存储器的扇区单位的多个数据作为上述第1管理单位的2以上自然数倍大小的第2管理单位的数据向上述第2管理存储区域转移的第2转移,
上述写入控制部在进行第1转移时,向由上述第1自由块选择部取得的自由块写入上述低密度数据,在进行第2转移时,向由上述第2自由块选择部取得的自由块写入上述高密度数据。
5.根据权利要求4所述的存储系统,其特征在于,
上述非易失性半导体存储器具有多个由多个存储芯片构成的信道并行工作要素,各存储芯片分割为可并行工作的多个层面,各层面具有多个上述块,并行驱动的各信道并行工作要素内的多个存储芯片跨越多个信道并行工作要素而被分割为各个共有就绪/忙碌信号的多个存储体,
上述块选择部根据与从上述并行驱动的多个信道并行工作要素选择的多个块相对应的逻辑块,管理自由块,
上述写入控制部控制上述层面、存储体或信道并行工作要素的并行工作,
上述多个自由块管理列表根据持有同一存储体编号、同一芯片编号、同一层面编号的上述逻辑块分类。
6.根据权利要求1所述的存储系统,其特征在于,
上述多个自由块管理列表,在可并行工作的上述块的集合单位的组存在制约的场合,在上述第1或第2自由块选择部从多个自由块管理列表按照规定的顺序规则依次取得自由块时,不可与该自由块管理列表并行工作的自由块管理列表,与可与该自由块管理列表并行工作的自由块管理列表相比,关于上述顺序规则,配置得离该自由块管理列表更远。
7.根据权利要求1所述的存储系统,其特征在于,
还具备保持上述第1阈值的预备块信息存储部,上述第1阈值是上述多个自由块管理列表中作为预备块确保的自由块数,
上述第1自由块选择部以不从自由块数比上述预备块信息存储部保持的第1阈值少的上述自由块管理列表取得上述自由块的方式工作,
上述第2自由块选择部从自由块数比上述预备块信息存储部保持的第1阈值少的上述自由块管理列表和自由块数在上述预备块信息存储部保持的第1阈值以上的上述自由块管理列表取得上述自由块。
8.根据权利要求7所述的存储系统,其特征在于,
上述预备块信息存储部保持的上述第1阈值根据各自由块管理列表所包含的不良块数,由自由块管理列表单位可变地设定。
9.根据权利要求1所述的存储系统,其特征在于,
上述第1和第2自由块选择部从上述多个自由块管理列表取得自由块,以确保上述写入控制部请求的自由块数。
10.根据权利要求1所述的存储系统,其特征在于,
上述第1和第2自由块选择部采用以与不良块数逆向对应的值加权的轮循,从多个自由块管理列表选择需要数目的自由块管理列表。
11.根据权利要求3所述的存储系统,其特征在于,
上述第1和第2自由块选择部采用以进入自由块管理列表的逻辑块的个数加权的轮循,从多个自由块管理列表选择需要数目的自由块管理列表。
12.根据权利要求3所述的存储系统,其特征在于,
上述第1和第2自由块选择部采用以可作为自由块和作为包含有效数据的块的激活块使用的逻辑块的个数加权的轮循,从多个自由块管理列表选择需要数目的自由块管理列表。
13.根据权利要求1所述的存储系统,其特征在于,
上述列表部还具有将上述非易失性半导体存储器所包含的、作为包含有效数据的块的激活块用上述块的集合单位分类的多个激活块管理列表,
上述存储系统还具备将与自由块数比第2阈值少的自由块管理列表对应的激活块列表的激活块的数据移动到自由块数比第2阈值以上的第3阈值多的自由块管理列表的自由块的块移动部。
14.根据权利要求13所述的存储系统,其特征在于,
上述块移动部进行上述移动,直到自由块数成为第2阈值以上。
15.根据权利要求14所述的存储系统,其特征在于,
上述块移动部,在上述移动时,从激活块列表优先选择存储了较旧数据的激活块。
16.根据权利要求15所述的存储系统,其特征在于,
上述块移动部,在上述选择的激活块是从数据写入该激活块的时刻到现在为止的期间不足规定的阈值的块时,不选择该激活块,而从其他激活块列表选择激活块。
17.根据权利要求13所述的存储系统,其特征在于,
上述块移动部,在上述移动时,由上述第1自由块选择部选择自由块数比第2阈值以上的第3阈值多的自由块管理列表的自由块,将上述激活块的数据移动到由上述第1自由块选择部选择的自由块。
18.根据权利要求13所述的存储系统,其特征在于,
上述块移动部将上述数据被移动到自由块管理列表的自由块的激活块,作为自由块登记到对应的自由块管理列表。
19.一种存储系统的控制方法,其特征在于,
上述存储系统具备:
非易失性半导体存储器,其具有多个作为数据删除单位的块;和
控制器,其在对上述非易失性半导体存储器进行写入时从上述非易失性半导体存储器选择需要数目的不包含有效数据的自由块,并对上述选择的自由块进行写入;
上述控制方法包括以下步骤:
将上述非易失性半导体存储器所包含的自由块用可并行工作的块的集合单位分类为多个自由块管理列表;
按通常优先度取得自由块时,从存在比第1阈值多的自由块数的上述自由块管理列表取得自由块;以及
按高优先度取得自由块时,从存在比第1阈值多的自由块数的上述自由块管理列表和不存在比第1阈值多的自由块数的上述自由块管理列表取得自由块。
20.根据权利要求19所述的存储系统的控制方法,其特征在于,
在向上述非易失性半导体存储器写入在规定的逻辑地址范围内有效数据比规定比例少的低密度数据时,以上述通常优先度取得自由块,
在向上述非易失性半导体存储器写入在规定的逻辑地址范围内有效数据比规定比例多的高密度数据时,以上述高优先度取得自由块。
21.根据权利要求20所述的存储系统的控制方法,其特征在于,
通过以与一个以上的上述块相对应的逻辑块单位管理上述自由块,来管理上述各自由块管理列表。
22.根据权利要求21所述的存储系统的控制方法,其特征在于,
上述存储系统还具备缓存存储器,
上述控制器将上述非易失性半导体存储器的存储区域以上述逻辑块单位分配为第1和第2管理存储区域,
进行将写入上述缓存存储器的扇区单位的多个数据作为第1管理单位的数据向上述第1管理存储区域转移的第1转移和将写入上述缓存存储器的扇区单位的多个数据作为上述第1管理单位的2以上自然数倍大小的第2管理单位的数据向上述第2管理存储区域转移的第2转移,
在进行上述第1转移时,向以上述通常优先度取得的自由块写入上述低密度数据,在进行上述第2转移时,向以上述高优先度取得的自由块写入上述高密度数据。
23.一种信息处理装置,其特征在于,具备:
CPU;
主存储存储器;和
外部存储装置;
上述外部存储装置具备:
非易失性半导体存储器,其具有多个作为数据删除单位的块;和
控制器,其具有在对上述非易失性半导体存储器进行写入时从上述非易失性半导体存储器选择需要数目的不包含有效数据的自由块的块选择部和对上述选择的自由块进行写入的写入控制部;
上述块选择部具备:
列表部,其将上述非易失性半导体存储器所包含的自由块用可并行工作的块的集合单位分类为多个自由块管理列表;
第1自由块选择部,其按通常优先度取得自由块时,从存在比第1阈值多的自由块数的上述自由块管理列表取得自由块;和
第2自由块选择部,其按高优先度取得自由块时,从存在比第1阈值多的上述自由块数的自由块管理列表和不存在比第1阈值多的自由块数的上述自由块管理列表取得自由块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010061181A JP5404483B2 (ja) | 2010-03-17 | 2010-03-17 | メモリシステム |
JP061181/2010 | 2010-03-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102193872A true CN102193872A (zh) | 2011-09-21 |
CN102193872B CN102193872B (zh) | 2014-09-17 |
Family
ID=44601967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010275123.8A Expired - Fee Related CN102193872B (zh) | 2010-03-17 | 2010-09-06 | 存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8266396B2 (zh) |
JP (1) | JP5404483B2 (zh) |
CN (1) | CN102193872B (zh) |
TW (1) | TWI475561B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN104798063A (zh) * | 2012-10-30 | 2015-07-22 | 株式会社东芝 | 存储设备和主机设备 |
CN113094306A (zh) * | 2021-04-06 | 2021-07-09 | 深圳宏芯宇电子股份有限公司 | 有效数据管理方法、存储器存储装置及存储器控制器 |
CN117131036A (zh) * | 2023-10-26 | 2023-11-28 | 环球数科集团有限公司 | 一种基于大数据和人工智能的数据维护系统 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101632068B (zh) | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
JP5032371B2 (ja) | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
EP2396729B1 (en) | 2009-02-12 | 2019-05-22 | Toshiba Memory Corporation | Memory system and method of controlling memory system |
JP2012128644A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012128643A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012203863A (ja) * | 2011-03-28 | 2012-10-22 | Toshiba Corp | メモリシステム |
US8924636B2 (en) | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US9251055B2 (en) | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
JP5994647B2 (ja) * | 2013-01-11 | 2016-09-21 | 三菱電機株式会社 | データ記録装置、及びデータ記録方法 |
US9620181B2 (en) | 2013-01-31 | 2017-04-11 | Hewlett Packard Enterprise Development Lp | Adaptive granularity row-buffer cache |
JP6053557B2 (ja) * | 2013-02-19 | 2016-12-27 | 三菱電機株式会社 | メモリ管理装置 |
WO2015083225A1 (ja) * | 2013-12-02 | 2015-06-11 | 富士通株式会社 | 情報処理装置、ストレージ、及びアクセス制御方法 |
US10055267B2 (en) * | 2015-03-04 | 2018-08-21 | Sandisk Technologies Llc | Block management scheme to handle cluster failures in non-volatile memory |
US9846650B2 (en) * | 2015-03-09 | 2017-12-19 | Samsung Electronics Co., Ltd. | Tail response time reduction method for SSD |
US10346039B2 (en) | 2015-04-21 | 2019-07-09 | Toshiba Memory Corporation | Memory system |
JP6358219B2 (ja) * | 2015-10-02 | 2018-07-18 | 京セラドキュメントソリューションズ株式会社 | 記憶域管理プログラム及び電子機器 |
TWI639112B (zh) * | 2016-03-14 | 2018-10-21 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 |
US10248333B1 (en) | 2017-02-07 | 2019-04-02 | Crossbar, Inc. | Write distribution techniques for two-terminal memory wear leveling |
US10409714B1 (en) * | 2017-02-09 | 2019-09-10 | Crossbar, Inc. | Logical to physical translation for two-terminal memory |
US10169246B2 (en) * | 2017-05-11 | 2019-01-01 | Qualcomm Incorporated | Reducing metadata size in compressed memory systems of processor-based systems |
US10877691B2 (en) * | 2017-12-29 | 2020-12-29 | Intel Corporation | Stream classification based on logical regions |
CN108920387B (zh) * | 2018-06-06 | 2021-04-20 | 深圳忆联信息系统有限公司 | 降低读延迟的方法、装置、计算机设备及存储介质 |
KR20200042791A (ko) * | 2018-10-16 | 2020-04-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP2022094705A (ja) * | 2020-12-15 | 2022-06-27 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US20220283738A1 (en) * | 2021-03-04 | 2022-09-08 | Macronix International Co., Ltd. | Flash memory and writing method thereof |
JP2022146494A (ja) * | 2021-03-22 | 2022-10-05 | キオクシア株式会社 | 半導体記憶装置およびメモリシステム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1248334A (zh) * | 1997-12-16 | 2000-03-22 | Tdk株式会社 | 闪速存储器系统 |
CN1922571A (zh) * | 2003-12-30 | 2007-02-28 | 桑迪士克股份有限公司 | 数据运行编程 |
WO2009084724A1 (en) * | 2007-12-28 | 2009-07-09 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0628879A (ja) * | 1992-07-07 | 1994-02-04 | Fujitsu Ltd | メモリ管理方式 |
JP2001101057A (ja) * | 1999-09-30 | 2001-04-13 | Casio Comput Co Ltd | フラッシュrom制御方法及び記録媒体 |
JP4812192B2 (ja) * | 2001-07-27 | 2011-11-09 | パナソニック株式会社 | フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法 |
JP5162846B2 (ja) * | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
KR101089150B1 (ko) * | 2005-08-03 | 2011-12-02 | 쌘디스크 코포레이션 | 스케쥴링된 리클레임 작동들을 갖는 비휘발성 메모리 |
JP3934659B1 (ja) * | 2005-12-05 | 2007-06-20 | Tdk株式会社 | メモリコントローラ及びフラッシュメモリシステム |
JP2007199905A (ja) * | 2006-01-25 | 2007-08-09 | Toshiba Corp | 半導体記憶装置の制御方法 |
US8429352B2 (en) * | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
JP4439569B2 (ja) | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
JP4551958B2 (ja) | 2008-12-22 | 2010-09-29 | 株式会社東芝 | 半導体記憶装置および半導体記憶装置の制御方法 |
JP2010152514A (ja) | 2008-12-24 | 2010-07-08 | Toshiba Corp | メモリシステム |
JP5198245B2 (ja) | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
JP2010157130A (ja) | 2008-12-27 | 2010-07-15 | Toshiba Corp | メモリシステム |
JP5317689B2 (ja) | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
EP2396729B1 (en) * | 2009-02-12 | 2019-05-22 | Toshiba Memory Corporation | Memory system and method of controlling memory system |
-
2010
- 2010-03-17 JP JP2010061181A patent/JP5404483B2/ja active Active
- 2010-08-30 TW TW099129131A patent/TWI475561B/zh not_active IP Right Cessation
- 2010-09-06 CN CN201010275123.8A patent/CN102193872B/zh not_active Expired - Fee Related
- 2010-09-17 US US12/884,844 patent/US8266396B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1248334A (zh) * | 1997-12-16 | 2000-03-22 | Tdk株式会社 | 闪速存储器系统 |
CN1922571A (zh) * | 2003-12-30 | 2007-02-28 | 桑迪士克股份有限公司 | 数据运行编程 |
WO2009084724A1 (en) * | 2007-12-28 | 2009-07-09 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456357B (zh) * | 2012-06-01 | 2018-03-09 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
US9715444B2 (en) | 2012-06-01 | 2017-07-25 | Samsung Electronics Co., Ltd. | Storage device having nonvolatile memory device and write method |
US10353586B2 (en) | 2012-10-30 | 2019-07-16 | Toshiba Memory Corporation | Memory device and host device |
US9983794B2 (en) | 2012-10-30 | 2018-05-29 | Toshiba Memory Corporation | Memory device and host device |
CN104798063B (zh) * | 2012-10-30 | 2019-01-11 | 东芝存储器株式会社 | 存储设备和主机设备 |
CN104798063A (zh) * | 2012-10-30 | 2015-07-22 | 株式会社东芝 | 存储设备和主机设备 |
US10976930B2 (en) | 2012-10-30 | 2021-04-13 | Toshiba Memory Corporation | Memory device and host device |
US11573701B2 (en) | 2012-10-30 | 2023-02-07 | Kioxia Corporation | Memory device and host device |
CN113094306A (zh) * | 2021-04-06 | 2021-07-09 | 深圳宏芯宇电子股份有限公司 | 有效数据管理方法、存储器存储装置及存储器控制器 |
CN113094306B (zh) * | 2021-04-06 | 2023-12-05 | 深圳宏芯宇电子股份有限公司 | 有效数据管理方法、存储器存储装置及存储器控制器 |
CN117131036A (zh) * | 2023-10-26 | 2023-11-28 | 环球数科集团有限公司 | 一种基于大数据和人工智能的数据维护系统 |
CN117131036B (zh) * | 2023-10-26 | 2023-12-22 | 环球数科集团有限公司 | 一种基于大数据和人工智能的数据维护系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201133487A (en) | 2011-10-01 |
US20110231610A1 (en) | 2011-09-22 |
TWI475561B (zh) | 2015-03-01 |
CN102193872B (zh) | 2014-09-17 |
JP5404483B2 (ja) | 2014-01-29 |
US8266396B2 (en) | 2012-09-11 |
JP2011197788A (ja) | 2011-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102193872B (zh) | 存储系统 | |
US20230315342A1 (en) | Memory system and control method | |
US20240126433A1 (en) | Method of controlling nonvolatile semiconductor memory | |
JP3507132B2 (ja) | フラッシュメモリを用いた記憶装置およびその記憶制御方法 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
CN105027093B (zh) | 用于压缩和紧凑虚拟存储器的方法和装置 | |
CN103186350B (zh) | 混合存储系统及热点数据块的迁移方法 | |
KR101269366B1 (ko) | 메모리 시스템 및 메모리 시스템의 제어 방법 | |
US20140258596A1 (en) | Memory controller and memory system | |
CN103608782A (zh) | Lsb页面和msb页面中的选择性数据存储 | |
US20170286008A1 (en) | Smart storage platform apparatus and method for efficient storage and real-time analysis of big data | |
JP2009238114A (ja) | ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム | |
US20080091638A1 (en) | Storage system operation management method and storage system | |
CN104866428A (zh) | 数据存取方法和数据存取装置 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
US11520520B2 (en) | Memory system and method of controlling nonvolatile memory | |
JPWO2015114829A1 (ja) | 情報処理装置 | |
KR100988388B1 (ko) | 플래시 메모리 장치의 성능 향상 방법 및 이를 수행하는 플래시 메모리 장치 | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
CN116795735B (zh) | 固态硬盘空间分配方法、装置、介质及系统 | |
CN114442946B (zh) | 物理块管理方法和固态硬盘 | |
CN107688435B (zh) | Io流调节方法与装置 | |
JP4095840B2 (ja) | キャッシュメモリ管理方法 | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
TW202314470A (zh) | 記憶體系統及控制方法 |
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: 20140917 Termination date: 20170906 |