存储系统以及信息处理系统的制作方法
存储系统以及信息处理系统1.[关联申请][0002]本技术享受以日本专利申请2021-100701号(申请日:2021年06月17日)为基础申请的优先权。本技术通过参考此基础申请包括基础申请的全部内容。
技术领域
::[0003]本发明的实施方式涉及存储系统以及信息处理系统。
背景技术
:::[0004]近年来,具备非易失性存储器的存储系统广泛普及。作为这样的存储系统的一例,已知有例如具备nand型闪速存储器的固态驱动器(ssd:solidstatedrive)。[0005]然而,被写入到上述非易失性存储器中的数据的有效性(即,该数据是有效还是无效)使用数据映射来管理,但期望有效地管理该数据的有效性。另外,期望降低数据映射的处理成本。技术实现要素:[0006]本发明的一个实施方式提供能够降低管理被写入到非易失性存储器中的数据的有效性的数据映射的处理成本的存储系统以及信息处理系统。[0007]根据一个实施方式,存储系统能够与主机连接。存储系统具备非易失性存储器和控制器。非易失性存储器包括多个区块。控制器根据来自主机的指令,控制向非易失性存储器的数据的写入或从非易失性存储器的数据的读出。控制器使用数据映射来管理被写入到非易失性存储器中的数据的有效性。数据映射包括多个第一片段表。多个第一片段表各自保持第一信息和第二信息,该第一信息表示规定尺寸的数据各自的有效性,该规定尺寸的数据是被写入到对该第一片段表分配的非易失性存储器内的物理地址的范围的数据,该第二信息在预先确定的数量的各条目中表示多个规定尺寸的数据的有效性。控制器根据来自主机的写入指令请求向非易失性存储器的写入的写入数据的尺寸,选择写入目标的区块。附图说明[0008]图1是表示包括实施方式的存储系统的信息处理系统的结构的一例的框图。[0009]图2是用于概念性地说明实施方式中的lut的图。[0010]图3是表示实施方式中的lut片段表的数据结构的一例的图。[0011]图4是用于说明实施方式的比较例中的vdm的图。[0012]图5是用于概念性地说明实施方式中的vdm的图。[0013]图6是表示实施方式中的第一vdm片段表的数据结构的一例的图。[0014]图7是表示实施方式中的第二vdm片段表的数据结构的一例的图。[0015]图8是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0016]图9是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0017]图10是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0018]图11是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0019]图12是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0020]图13是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0021]图14是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0022]图15是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0023]图16是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0024]图17是表示实施方式中的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系的图。[0025]图18是表示从主机发送了写入指令的情况下的实施方式的存储系统的处理顺序的一例的流程图。[0026]图19是表示从主机发送了trim指令的情况下的实施方式的存储系统的处理顺序的一例的流程图。[0027]图20是表示确认在非易失性存储器内的特定的pba中写入的数据是有效还是无效时的实施方式的存储系统的处理顺序的一例的流程图。[0028]图21是将非易失性存储器所包括的多个区块各自被循环地利用的一般的方式作为一个比较例进行表示的图。[0029]图22是表示实施方式的存储系统所具有的数据映射的各种管理数据对有效性进行管理的数据的尺寸的图。[0030]图23是表示实施方式的存储系统中的区块的一个利用方式例的图。[0031]图24是用于说明实施方式的存储系统中的写入目标区块的一个选择例的图。[0032]图25是表示实施方式的存储系统的数据写入动作中包括的、与数据尺寸对应的写入目标区块的选择顺序的一例的流程图。[0033]附图标记说明[0034]1…信息处理系统、2…主机、3…存储系统、4…非易失性存储器、5…控制器、41…lut(地址变换表)、41a…pba存储(条目)、41b…lba存储部、41c…管理数据存储部、41d…前指针存储部、41e…后指针存储部、42…vdm(数据映射)、42a…映射存储部、42b…pba存储部、42c…管理数据存储部、42d…前指针存储部、42e…后指针存储部、42f…pba存储部、51…通信接口控制部、52…写入缓冲存储器、53…读出缓冲存储器、54…非易失性存储器控制器、55…存储器、56…处理器、551…高速缓冲存储器、561…写入控制部、562…读出控制部、563…垃圾回收控制部、564…地址变换部、565…管理部、566…高速缓冲存储器控制部。具体实施方式[0035]以下,参照附图对实施方式进行说明。[0036]图1是表示包括本实施方式的存储系统在内的信息处理系统的结构的一例的框图。[0037]在本实施方式中,存储系统是构成为向非易失性存储器写入数据(用户数据)、从该非易失性存储器读出数据的半导体存储设备。该存储系统既可以作为例如固态硬盘(ssd:solidstatedrive)来实现,也可以作为存储卡等其他存储设备来实现。在本实施方式中,假定存储系统作为ssd来实现的情况。[0038]如图1所示,信息处理系统1包括主机2和存储系统3。主机2是相对于存储系统3而言作为主机装置进行动作的信息处理装置,例如可作为个人计算机、服务器装置、移动电话、摄像装置、移动终端(平板电脑或智能手机等)、游戏设备或车载终端(汽车导航系统等)来实现。[0039]存储系统3构成为能够与主机2连接,包括非易失性存储器4和控制对该非易失性存储器4的数据的写入以及读出的控制器5(控制电路)。此外,非易失性存储器4也可以构成为能够相对于控制器5装卸。由此,能够自由地扩展存储系统3的存储容量。[0040]如上所述,在存储系统3作为ssd来实现的情况下,非易失性存储器4例如是nand型闪速存储器。在该情况下,非易失性存储器4(nand型闪速存储器)包括配置成矩阵状的多个存储单元(存储单元阵列)。此外,非易失性存储器4既可以是2维结构的nand型闪速存储器,也可以是3维结构的nand型闪速存储器。[0041]另外,非易失性存储器4的存储单元阵列包括多个区块,该区块分别由多个页面编成。在存储系统3(ssd)中,各个区块作为数据的擦除单位而发挥功能。另外,各个页面是数据写入动作以及数据读入动作的单位。[0042]另外,在非易失性存储器4中写入各种数据,但非易失性存储器4进一步存储被称为lut(lookuptable:查表)的地址变换表(以下,简单表述为lut)41。另外,lut41也被称为l2p(logicaladdresstophysicaladdress:逻辑地址到物理地址)。lut41相当于用于对在主机2访问存储系统3(向非易失性存储器4写入数据或者从非易失性存储器4读出数据)时使用的逻辑地址与对非易失性存储器4内的被写入了数据的物理性的位置进行表示的物理地址之间的对应关系进行管理的数据。换言之,在lut41中,与各逻辑地址建立对应地存储有与该逻辑地址对应的物理地址。[0043]此外,在非易失性存储器4是nand型闪速存储器的情况下,在lut41中被管理的逻辑地址是逻辑区块地址(lba:logicalblockaddress),物理地址是物理区块地址(pba:physicalblockaddress)。在以下的说明中,将逻辑地址作为lba、将物理地址作为pba进行说明。[0044]另外,非易失性存储器4还存储被称为vdm(validdatamap)的数据映射(以下,简单表述为vdm)42。vdm42相当于用于对在非易失性存储器4内的物理地址写入的数据的有效性(即,该数据是有效还是无效)进行管理的数据。[0045]另外,lut41及vdm42中的至少一方例如也可以被存储在非易失性存储器4以外的非易失性存储器中。另外,非易失性存储器4也可以构成为划分出用于存储数据、lut41以及vdm42的存储器(区域)。[0046]控制器5包括通信接口控制部51、写入缓冲存储器52、读出缓冲存储器53、非易失性存储器控制器54、存储器55及处理器56。此外,通信接口控制部51、写入缓冲存储器52、读出缓冲存储器53、非易失性存储器控制器54、存储器55及处理器56通过内部总线ib而电连接。[0047]通信接口控制部51控制外部装置(例如,主机2)与存储系统3之间的通信。具体而言,通信接口控制部51接收来自主机2的各种指令。来自主机2的各种指令包括例如写入指令(写入请求)及读出指令(读取请求)等。[0048]另外,由通信接口控制部51接收的写入指令中包括基于该写入指令而向非易失性存储器4写入的数据以及主机2访问该数据时使用的lba。另外,由通信接口控制部51接收的读出指令中包括主机2访问基于该读出指令而读出的数据时使用的lba(即,与该数据对应的lba)。[0049]在此,在通过通信接口控制部51接收到写入指令的情况下,基于该写入指令向非易失性存储器4写入数据,但写入缓冲存储器52临时存储向该非易失性存储器4写入的数据。存储在写入缓冲存储器52中的数据经由非易失性存储器控制器54被写入到非易失性存储器4中。[0050]另一方面,在通过通信接口控制部51接收到读出指令的情况下,基于该读出指令从非易失性存储器4读出数据,但读出缓冲存储器53临时存储通过非易失性存储器控制器54从该非易失性存储器4读出的数据。此外,存储在读出缓冲存储器53中的数据经由通信接口控制部51向主机2发送。[0051]非易失性存储器控制器54控制向非易失性存储器4的数据的写入以及从该非易失性存储器4的数据的读出。另外,详细的说明予以省略,但非易失性存储器控制器54也可以构成为包括dmac(directmemoryaccesscontroller,直接存储器访问控制器)、纠错部、随机数发生器(或者扰频器)等。[0052]存储器55是作为处理器56的工作用存储器而被使用的主存储装置。存储器55例如是dram(dynamicrandomaccessmemory:动态随机存取存储器),但也可以是sram(staticrandomaccessmemory:静态随机存取存储器)等其他半导体存储器。[0053]此外,存储器55与非易失性存储器4相比较,能够高速地进行写入以及读出,包括高速缓冲存储器551(被利用的区域)。高速缓冲存储器551存储例如在非易失性存储器4中存储的lut41及vdm42等的高速缓存数据。[0054]处理器56经由内部总线ib来控制控制器5整体的动作。处理器56例如通过执行被存储于未图示的rom(readonlymemory:只读存储器)等的控制程序(固件)来执行各种处理(例如针对从主机2接收的各种指令的处理等)。[0055]在本实施方式中,控制器5作为构成为通过这样的处理器56来执行非易失性存储器4(nand型闪速存储器)的数据管理和区块管理的闪存变换层(ftl)发挥功能。[0056]另外,处理器56例如也可以是cpu(centralprocessingunit:中央处理单元)、mpu(micro-processingunit:微处理单元)或dsp(digitalsignalprocessor:数字信号处理器)等。[0057]处理器56通过执行上述的控制程序,实现写入控制部561、读出控制部562、垃圾回收控制部563、地址变换部564、管理部565以及高速缓冲存储器控制部566等功能部。[0058]此外,这些各部561~566如上述那样通过控制程序(即软件)来实现,但既可以通过硬件来实现,也可以通过软件与硬件的组合来实现。[0059]写入控制部561在由通信接口控制部51接收到写入指令的情况下,控制通信接口控制部51、写入缓冲存储器52以及非易失性存储器控制器54,执行将该写入指令中包括的数据向非易失性存储器4写入的处理。[0060]读出控制部562在通过通信接口控制部51接收到读出指令的情况下,控制通信接口控制部51、读出缓冲存储器53以及非易失性存储器控制器54,执行从非易失性存储器4读出与该读出指令中包括的lba对应的数据的处理。[0061]垃圾回收控制部563例如通过与写入控制部561、读出控制部562以及非易失性存储器控制器54协作,由此参照上述的vdm42来执行对非易失性存储器4的垃圾回收(gc)。垃圾回收是将非易失性存储器4的不必要的存储区域(存储器区域)释放的处理。另外,将非易失性存储器4的存储区域的片段化消除的压缩也可以与垃圾回收一起进行。[0062]地址变换部564在由通信接口控制部51接收到上述的读出指令的情况下,执行使用非易失性存储器4中存储的lut41将该读出指令中包括的lba变换为pba(物理地址)的处理。在存储系统3中,能够基于这样由地址变换部564从lba变换出的pba而从非易失性存储器4读出数据(与该lba对应的数据)。[0063]管理部565在由通信接口控制部51接收到上述的写入指令并基于该写入指令将数据写入到非易失性存储器4的情况下,执行更新lut41及vdm42的处理。[0064]高速缓冲存储器控制部566执行如下处理:例如经由读出控制部562从非易失性存储器4读出lut41(的一部分)或vdm42(的一部分)、并将该lut41或vdm42存储于高速缓冲存储器551。另外,高速缓冲存储器控制部566执行如下处理:读出存储在高速缓冲存储器551中的lut41(的一部分)或vdm42(的一部分),并经由写入控制部561将该lut41或vdm42写入(回写)到非易失性存储器4中的处理。[0065]此外,在图1中,对存储系统3设置于主机2的外部的例子进行了说明,但作为该主机2与存储系统3之间的接口,例如也可以使用mvmeoverfabrics等。另外,存储系统3也可以内置于主机2。进而,存储系统3既可以与多个主机2连接,也可以是多个存储系统3与1个以上的主机2连接。[0066]在此,在上述lut41中对lba(逻辑地址)与pba(物理地址)的对应关系进行管理,但例如在由通信接口控制部51接收来自主机2的写入指令,并基于该写入指令将数据写入到非易失性存储器4中的情况下,管理部565需要在lut41中将该写入指令中包括的lba与被写入了该数据的非易失性存储器4内的pba之间的对应关系更新(即,将该对应关系登记于lut41)。[0067]然而,在上述写入指令中指定了较宽范围的lba的情况下,在lut41中将lba与pba的对应关系更新的处理耗费时间。[0068]因此,本实施方式中的lut41采用被构成为具有由多个层级构成的层级结构、且包括与该多个层级对应的多个表(以下,标记为lut片段表)的表。另外,该lut41的层级结构例如基于包括非易失性存储器4的容量等在内的存储系统3的设定信息来决定。[0069]在这样的lut41中,多个lut片段表的每一个例如设为相同的尺寸。另外,关于详细情况在后面叙述,在与多个层级对应的多个lut片段表中的与上位层级对应的lut片段表中,存储有用于参照lba(的范围)和与比该lut片段表更下位的层级对应的lut片段表的参照目标信息(以下,表述为lut指针)等。另外,lut指针包括例如存储有成为参照目标的lut片段表的非易失性存储器4内的pba。另外,在lut41所具有的层级结构中与最下位的层级对应的lut片段表中,存储与分配给该lut片段表的lba的每一个lba对应的pba。[0070]即,在本实施方式中,lut41具有能够依次参照从与上位层级对应的lut片段表到与下位层级对应的lut片段表的层级结构,在该层级结构中管理lba以及pba的对应关系。[0071]以下,参照图2,对具有层级结构的lut41进行概念性地说明。在图2所示的例子中,假定lut41具有由4个层级构成的层级结构的情况。在该情况下,lut41包括多个第一lut片段表t411~第四lut片段表t414。[0072]如图2所示,第一lut片段表t411是与lut41所具有的层级结构中的最下位的层级(以下,表述为第一层级)对应的lut片段表。第二lut片段表t412是与lut41所具有的层级结构中的第一lut片段表t411的上位的层级(以下,表述为第二层级)对应的lut片段表。第三lut片段表t413是与lut41所具有的层级结构中的第二lut片段表t412的上位的层级(以下,表述为第三层级)对应的lut片段表。第四lut片段表t414是与lut41所具有的层级结构中的第三lut片段表t413的上位的层级(以下,表述为第四层级)对应的lut片段表。另外,在图2所示的例子中,第四层级是lut41所具有的层级结构中的最上位的层级。[0073]以下,对上述的第一lut片段表t411~第四lut片段表t414分别进行详细地说明。[0074]首先,多个第一lut片段表t411分别被分配了连续的lba的范围,该第一lut片段表t411包括多个条目c411。另外,在第一lut片段表t411所包括的多个条目c411的每一个中,被分配了对该第一lut片段表t411分配的lba的范围中的各自不同的1个lba,并存储与该lba对应的pba(即,被写入了与该lba对应的数据的pba)。[0075]另外,在本实施方式中,主机2访问存储系统3时使用的lba的整个范围被划分为第一lut片段表t411的数量,该划分后的lba的范围被分配给该第一lut片段表t411的每一个。由此,能够在多个第一lut片段表t411中管理与主机2访问存储系统3时使用的整个范围的lba的每一个lba对应的pba。[0076]接着,多个第二lut片段表t412分别被分配比上述的第一lut片段表t411宽的lba的范围,该第二lut片段表t412包括多个条目c412。另外,在第二lut片段表t412所包括的多个条目c412的每一个中,被分配了对与该第二lut片段表t412的下位的层级对应的第一lut片段表t411分配的lba的范围,并存储表示该第一lut片段表t411(的位置)的lut指针。在该情况下,对第二lut片段表t412的每一个分配的lba的范围相当于对由在该第二lut片段表t412所包括的多个条目c412的每一个条目中存储的lut指针所表示的全部的第一lut片段表t411分配的lba的范围。[0077]另外,多个第三lut片段表t413分别被分配比上述的第二lut片段表t412宽的lba的范围,该第三lut片段表t413包括多个条目c413。另外,在第三lut片段表t413所包括的多个条目c413的每一个中,被分配了对与该第三lut片段表t413的下位的层级对应的第二lut片段表t412分配的lba的范围,并存储表示该第二lut片段表t412(的位置)的lut指针。在该情况下,对第三lut片段表t413的每一个分配的lba的范围相当于对由在该第三lut片段表t413所包括的多个条目c413的每一个条目中存储的lut指针所表示的全部的第二lut片段表t412分配的lba的范围。[0078]进而,多个第四lut片段表t414分别被分配比上述的第三lut片段表t413宽的lba的范围,该第四lut片段表t414包括多个条目c414。另外,在第四lut片段表t414所包括的多个条目c414的每一个中,被分配了对与该第四lut片段表t414的下位的层级相对的第三lut片段表t413分配的lba的范围,并存储表示该第三lut片段表t413(的位置)的lut指针。在该情况下,对第四lut片段表t414的每一个分配的lba的范围相当于对由在该第四lut片段表t414所包括的多个条目c414的每一个条目中存储的lut指针所表示的全部的第三lut片段表t413分配的lba的范围。[0079]在此,与第四层级(即层级结构中的最上位的层级)对应的多个第四lut片段表t414分别与多个命名空间的每一个对应。命名空间是通过将非易失性存储器4所具备的存储区域(多个区块)逻辑地划分而得到的区域。通过按规定范围的每个存储区域分配命名空间,由此即使在例如2个以上的存储区域中lba重复的情况下,也能够使用命名空间id(用于识别命名空间的识别信息)以及lba来进行对适当的数据的访问。由此,能够与对不同的设备的访问同样地处理对不同命名空间的访问。[0080]在图2中,多个第四lut片段表t414与命名空间ns1~nsn(n为2以上的自然数)对应。在该情况下,多个第四lut片段表t414的数量为n。[0081]另外,如图2所示,在lut41中按命名空间ns1~nsn(所对应的第四lut片段表t414)具有层级结构,但该命名空间ns1~nsn的每一个的层级数根据分配给该命名空间ns1~nsn的存储区域(的尺寸)来决定。例如在分配给命名空间的存储区域的尺寸小的情况下,该命名空间的层级数变少。另一方面,例如在分配给命名空间的存储区域的尺寸大的情况下,该命名空间的层级数变多。另外,在图2所示的例子中,示出了命名空间ns1~nsn各自的层级数相同的情况。[0082]在具有上述的图2所示的层级结构的lut41中,构成为:与第四层级(最上位的层级)对应的第四lut片段表t414所包括的各个条目c414中存储的lut指针表示与第三层级对应的第三lut片段表t413,该第三lut片段表t413所包括的各个条目c413中存储的lut指针表示与第二层级对应的第二lut片段表t412,该第二lut片段表t412所包括的各个条目c412中存储的lut指针表示与第一层级(最下位的层级)对应的第一lut片段表t411,该第一lut片段表t411所包括的条目c411存储与1个lba对应的pba。[0083]根据这样的lut41,例如通过基于在各种指令中指定的lba(各种指令中包括的lba)依次参照第四lut片段表t414、第三lut片段表t413、第二lut片段表t412以及第一lut片段表t411,由此能够确定与该lba对应的pba。[0084]在此,在图2所示的例子中,第一lut片段表t411是与lut41所具有的层级结构中的最下位的层级对应的lut片段表,在该第一lut片段表t411所包括的各个条目c411中,存储有与1个lba对应的pba。在该情况下,若设为向1个pba写入的数据的尺寸为4kib,且在1个第一lut片段表t411中包括32个条目c411,则与第一层级对应的1个第一lut片段表t411中被分配32个lba的范围(即,用于访问128kib的数据的lba)。[0085]同样地,若设为在1个第二lut片段表t412中包括32个条目c412、且对被分配了用于访问128kib的数据的32个lba的第一lut片段表t411进行表示的lut指针被存储在该条目c412的每一个中(即,对各条目c412分配了对该第一lut片段表t411分配的32个lba的范围),则与第二层级对应的1个第二lut片段表t412中被分配32×32=1,024个lba的范围(即,用于访问4mib的数据的lba)。[0086]进而,若设为在1个第三lut片段表t413中包括32个条目c413、且对被分配了用于访问4mib的数据的1,024个lba的第二lut片段表t412进行表示的lut指针被存储在该条目c413的每一个中(即,对各条目c413分配了对该第二lut片段表t412分配的1,024个lba的范围),则与第三层级对应的1个第三lut片段表t413中被分配1,024×32=32,768个lba的范围(即,用于访问128mib的数据的lba)。[0087]另外,若设为在1个第四lut片段表t414中包括32个条目c414,、且对被分配了用于访问128mib的数据的32,768个lba的第三lut片段表t413进行表示的lut指针被存储在该条目c414的每一个中(即,对各条目c414分配了对该第三lut片段表t413分配的32,768个lba的范围),则与第四层级对应的1个第四lut片段表t414中被分配32,768×32=1,048,576个lba的范围(即,用于访问4gib的数据的lba)。[0088]即,在图2所示的lut41的例子中,各个第一lut片段表t411管理用于访问128kib的数据的lba的范围,各个第二lut片段表t412管理用于访问4mib的数据的lba的范围,各个第三lut片段表t413管理用于访问128mib的数据的lba的范围,各个第四lut片段表t414管理用于访问4gib的数据的lba的范围。[0089]另外,在图2中例如设为在第四lut片段表t414所包括的多个条目c414的每一个中存储lut指针而进行了说明,但在该lut指针分别表示的多个第三lut片段表t413被连续地配置于非易失性存储器4的情况下,该第四lut片段表t414也可以构成为仅存储对该多个第三lut片段表t413中的开头的第三lut片段表t413进行表示的lut指针(即,将对不是开头的第三lut片段表t413进行表示的lut指针省略)。由此,能够削减lut41的尺寸。在此,对第四lut片段表t414进行了说明,但关于其他lut片段表也是同样的。[0090]另外,例如在被写入了与对1个lut片段表分配的lba的范围对应的数据的非易失性存储器4内的pba的连续性得以确保的情况下,也可以省略与比该lut片段表更下位的层级对应的(即,由在该lut片段表所包括的条目中存储的lut指针表示的)lut片段表。[0091]具体而言,例如第二lut片段表t412管理用于访问4mib的数据的lba的范围,但在通过在该第二lut片段表t412中被管理的lba来访问的4mib的数据被写入到连续的pba的情况下,第三lut片段表t413所包括的条目c413也可以代替表示该第二lut片段表t412的lut指针而存储被写入了该4mib的数据的开头的pba。由此,不需要参照比该第三lut片段表t413更下位的第二lut片段表t412以及第一lut片段表t411,因此能够高效地参照lut41,能够提高对被写入到非易失性存储器4的数据的访问速度。[0092]图3表示本实施方式中的lut41所包括的lut片段表的数据结构的一例。在此,主要说明第一lut片段表t411的数据结构。[0093]第一lut片段表t411例如包括多个pba存储部41a、lba存储部41b及管理数据存储部41c。[0094]pba存储部41a相当于在图2中说明的第一lut片段表t411所包括的条目c411。即,pba存储部41a的数量例如为32个。pba存储部41a存储与分配给该pba存储部41a(条目c411)的1个lba对应的pba(即,被写入了与该lba对应的数据的pba)。另外,与分配给pba存储部41a的1个lba对应的数据被存储在高速缓冲存储器551中的情况下,在该pba存储部41a中存储该高速缓冲存储器551内的地址信息(pba)。存储在pba存储部41a中的pba的尺寸例如是32位。[0095]另外,在pba存储部41a中存储的pba中例如附加有8位的管理数据md1,该管理数据md1与该pba一起被存储在该pba存储部41a中。这样,对pba附加的管理数据md1例如包括对该pba是非易失性存储器4内的pba还是高速缓冲存储器551内的地址信息进行管理的数据。[0096]在该情况下,pba存储部41a各自的尺寸是将pba的尺寸(32位)与管理数据md1的尺寸(8位)相加而得到的40位,32个pba存储部41a的合计尺寸是160字节。[0097]lba存储部41b存储分配给第一lut片段表t411的lba范围内的开头的lba。[0098]在管理数据存储部41c中存储有用于识别第一lut片段表t411所属的命名空间的命名空间id以及与分配给该第一lut片段表t411的lba的范围(该第一lut片段表t411管理的lba的范围)相当的grain。[0099]另外,也可以在管理数据存储部41c中存储其他信息。具体而言,在管理数据存储部41c中,也可以存储用于识别与第一lut片段表t411对应的层级(第一层级)的识别信息(层级id)等。[0100]在此,在本实施方式中,例如在lut41被更新时,该lut41的一部分(成为该更新的对象的lut片段表)被存储在高速缓冲存储器551中。在该情况下,lut41的一部分以高速缓冲线为单位被存储。另外,在高速缓冲存储器551中被更新的lut41的一部分以高速缓冲线为单位被回写到非易失性存储器4。[0101]假定以上述高速缓冲线为单位将第一lut片段表t411存储在高速缓冲存储器551中的情况。若将这样存储在高速缓冲存储器551中的第一lut片段表t411设为lut高速缓存数据,则该lut高速缓存数据除了上述的pba存储部41a、lba存储部41b及管理数据存储部41c以外,还包括例如对在高速缓冲存储器551中应相互建立关联的lut高速缓存数据进行表示的指针。[0102]具体而言,lut高速缓存数据包括:前指针存储部41d,存储对在该lut高速缓存数据之前被参照的lut高速缓存数据进行表示的指针;以及后指针存储部41e,存储对在该lut高速缓存数据之后被参照的其他的lut高速缓存数据进行表示的指针。[0103]作为在上述的前指针存储部41d以及后指针存储部41e中存储的指针,例如使用存储有其他的lut高速缓存数据的pba,但也可以使用其他形式的地址。[0104]通过利用这样的向lut高速缓存数据应参照的前后的lut高速缓存数据的指针,能够使对高速缓冲存储器551的访问高速化,能够实现连续的访问。此外,lut高速缓存数据也可以进一步包括其他的管理数据。[0105]在图3中,对1个第一lut片段表t411的数据结构进行了说明,但lut41所包括的多个第一lut片段表t411全部具有同样的数据结构。[0106]另外,关于第一lut片段表t411以外的其他lut片段表(第二lut片段表t412~第四lut片段表t414)的数据结构,都与第一lut片段表t411相同。但是,在第二lut片段表t412~第四lut片段表t414所包括的pba存储部41a各自中,作为表示与下位的层级对应的lut片段表的lut指针,存储有被存储了该lut片段表的非易失性存储器4内的pba(32位)。另外,在与下位的层级对应的lut片段表被存储在高速缓冲存储器551中的情况下,在pba存储部41a中存储该高速缓冲存储器551内的地址信息。[0107]另外,即使是第二lut片段表t412~第四lut片段表t414中包括的pba存储部41a,也可能存在存储有与分配给该pba存储部41a(条目c412、c413或c424)的lba的范围对应的数据被写入的开头的pba的情况。[0108]另外,在图3所示的例子中,第一lut片段表t411~第四lut片段表t414各自的尺寸例如为168字节的固定长度,存储于高速缓冲存储器551的lut高速缓存数据各自的尺寸例如为188字节的固定长度,但在本实施方式中,设为构成为第一lut片段表t411~第四lut片段表t414(即,lut41所包括的多个lut片段表)具有相同的数据结构。[0109]在此,设为lut41具有由多个层级构成的层级结构进行了说明,但在本实施方式中,vdm42也与lut41同样地具有层级结构。[0110]以下,对本实施方式中的vdm42进行说明,首先,参照图4,对本实施方式的比较例中的vdm进行说明。本实施方式的比较例中的vdm设为,构成为在单一的层级中管理对非易失性存储器4内的物理地址写入的数据的有效性。[0111]如图4所示,本实施方式的比较例中的vdm42'包括与单一的层级对应的多个vdm片段表t421'。在多个vdm片段表t421'中分别被分配了不同的pba(物理地址)的范围,在该vdm片段表t421'的每一个中,管理在分配给该vdm片段表t421'的pba的范围中存储的数据的有效性(即,该数据是有效还是无效)。[0112]在该情况下,例如能够基于来自主机2的写入指令来写入数据的非易失性存储器4内的pba的整个范围被划分为vdm片段表t421'的数量,该划分出的pba的范围被分配给该第一vdm片段表t421'的每一个。由此,在多个vdm片段表t421'中,能够管理在能够基于来自主机2的写入指令来写入数据的非易失性存储器4内的pba的整个范围中被写入的数据的有效性。另外,在多个vdm片段表t421'的每一个中,在分配给该vdm片段表t421'的pba的范围中被写入的数据的有效性,使用后述的位映射(bmp)进行管理。[0113]在此,例如在基于来自主机2的写入指令将数据写入到非易失性存储器4内的pba中的情况下,为了更新写入到该pba中的数据的有效性,需要参照被分配了该pba的vdm片段表t421',但为了参照该vdm片段表t421',需要事先将对上述的多个vdm片段表t421'的每一个(的位置)进行表示的指针保持(展开)到存储器55上。这样事先保持在存储器55上的指针包括例如存储有多个vdm片段表t421'的每一个的非易失性存储器4内的pba。[0114]例如,设为数据的有效性被管理的非易失性存储器4的存储区域的尺寸为2pib、且写入到1个pba中的数据的尺寸(即,管理有效性的数据的单位)为4kib,则为2pib÷4kib=549,755,813,888,在vdm42'中需要管理大致512g个的4kib的数据的有效性。[0115]另外,若设为在1个vdm片段表t421'中管理例如1,280个的4kib的数据,则成为512g÷1,280=429,496,729.6,在vdm42'中所需的vdm片段表t421'的数量成为429,496,730。[0116]进而,若设为对多个vdm片段表t421'的每一个进行表示的指针的尺寸为32位(4byte),则对上述的429,496,730个vdm片段表t421'的全部进行表示的指针的尺寸的合计为429,496,730×4byte=1,717,986,920byte,大致为1.6gib。[0117]即,在使用本实施方式的比较例的vdm42'来管理在非易失性存储器4内的pba中被写入的数据的有效性的情况下,需要事先将对上述的1.6gib的全vdm片段表t421'进行表示的指针始终保持在存储器55上(即,vdm42'的管理所需的信息持续占有存储器55),因此有时会损害可用性(usability)。具体而言,在存储器55(高速缓冲存储器551)中保持lut41对于提高针对来自主机2的指令的响应速度(io响应速度)而言有用,但有可能无法确保用于通过上述vdm片段表t421'的各个指针保持lut41的足够的存储区域。[0118]另外,非易失性存储器4由多个芯片构成,但在例如使该芯片的数量或该芯片自身的容量增加的情况下,非易失性存储器4(即,存储系统3管理的存储区域)内的pba的数量增加。[0119]由此,上述的vdm片段表t421'的数量也增加,因此表示vdm片段表t421'的指针的数量也同样地增加,需要为该指针在存储器55中确保更大的存储区域。[0120]同样地,在非易失性存储器4内的pba的数量增加的情况下,vdm42'自身的尺寸也变大,因此根据需要,有时必须扩大用于高速缓存该vdm42'的存储区域。[0121]对此,例如考虑通过增设存储器(dram)来确保存储区域,但需要避免成本的增大。即,在本实施方式的比较例的vdm42'中,对非易失性存储器4的技术创新(即,存储容量的增大)的应对难易度高。[0122]进而,在启动存储系统3时,需要如上所述在存储器55上展开全部的表示vdm片段表t421'的指针。[0123]另外,在结束(停止)存储系统3时,需要使被保持在存储器55上的指针全部非易失性化。具体而言,例如在1个vdm片段表t421'被高速缓存在存储器55(高速缓冲存储器551)中的情况下,对被保持在存储器55上的该vdm片段表t421'进行表示的指针被变更为该高速缓冲存储器551内的地址信息。在结束存储系统3时,将这样的vdm片段表t421'回写到非易失性存储器4(即,非易失性化),但在该情况下,需要将表示该vdm片段表t421'的指针(高速缓冲存储器551内的地址信息)变更为被写入了该vdm片段表t421'的非易失性存储器4内的pba,并将该变更后的非易失性存储器4内的pba(即指针)写入到非易失性存储器4中。在结束存储系统3的情况下,对高速缓冲存储器551中高速缓存的全部vdm片段表t421'执行这样的处理。[0124]即,在本实施方式的比较例中的vdm42'中,使存储系统3启动及结束时的内部处理(启动处理及结束处理)花费时间。[0125]因此,在本实施方式中,通过采用与上述的lut41同样地、具有层级结构的vdm42,实现高效地管理被写入到非易失性存储器4中的数据的有效性。[0126]具体而言,本实施方式中的vdm42构成为,具有由多个层级构成的层级结构,且包括针对该多个层级的多个vdm片段表。[0127]在这样的vdm42中,设为多个vdm片段表分别例如为相同的尺寸。另外,关于详细情况在后面叙述,在与多个层级对应的多个vdm片段表中的与上位层级对应的vdm片段表中,存储有用于参照pba(的范围)和与比该vdm片段表更下位的层级对应的vdm片段表的参照目标信息(以下,表述为vdm指针)等。另外,vdm指针包括例如被存储了成为参照目标的vdm片段表的非易失性存储器4内的pba。另外,在vdm42所具有的层级结构中,与最下位的层级对应的vdm片段表对在分配给该vdm片段表的pba的范围中存储的规定尺寸的数据(例如4kib的数据)各自的有效性进行管理。[0128]以下,参照图5,对本实施方式中的具有层级结构的vdm42进行概念性地说明。在图5所示的例子中,为了方便,假定vdm42具有由4个层级构成的层级结构的情况。在这种情况下,vdm42包括多个第一vdm片段表t421~第四vdm片段表t424。[0129]如图5所示,第一vdm片段表t421是与vdm42所具有的层级结构中的最下位的层级(以下,表述为第一层级)对应的vdm片段表。第二vdm片段表t422是与vdm42所具有的层级结构中的第一vdm片段表t421的上位的层级(以下,表述为第二层级)对应的vdm片段表。第三vdm片段表t423是与vdm42所具有的层级结构中的第二vdm片段表t422的上位的层级(以下,表述为第三层级)对应的vdm片段表。第四vdm片段表t424是与vdm42所具有的层级结构中的第三vdm片段表t423的上位的层级(以下,表述为第四层级)对应的vdm片段表。另外,在图5所示的例子中,第四层级是vdm42所具有的层级结构中的最上位的层级,在vdm42中,与最上位的层级对应的vdm片段表(即,第四vdm片段表t424)的数目例如是1。在本实施方式中,设为第四vdm片段表t424(与最上位的层级对应的vdm片段表)的数量为1进行说明,但该第四vdm片段表t424的数量也可以是多个。[0130]以下,对上述的第一vdm片段表t421~第四vdm片段表t424分别进行详细说明。[0131]首先,多个第一vdm片段表t421分别被分配连续的pba的范围,该第一vdm片段表t421包括多个条目c421。另外,在第一vdm片段表t421所包括的多个条目c421的每一个中,存储有由1位的位信息构成的位映射(bmp),该位映射(bmp)管理与被分配给该第一vdm片段表t421的pba的范围对应的多个pba中的每一个中存储的数据的有效性。在这样的位映射中,能够对于每个pba,例如在位信息为1的情况下表示该pba中存储的数据是有效的,在位信息为0的情况下表示该pba中存储的数据是无效的。[0132]另外,多个第一vdm片段表t421相当于上述的图4所示的多个vdm片段表t421',能够基于来自主机2的写入指令来写入数据的非易失性存储器4内的pba的整个范围被划分为vdm片段表t421的数量,该划分出的pba的范围被分配给该第一vdm片段表t421的每一个。由此,在多个vdm片段表t421中,能够管理能够基于来自主机2的写入指令来写入数据的非易失性存储器4内的pba的整个范围中被写入的数据的有效性。[0133]接着,多个第二vdm片段表t422分别被分配比上述的第一vdm片段表t421宽的pba的范围,该第二vdm片段表t422包括多个条目c422。另外,在第二vdm片段表t422所包括的多个条目c422的每一个中,被分配了对与该第二vdm片段表t422的下位的层级对应的第一vdm片段表t421分配的pba的范围,并存储表示该第一vdm片段表t421(的位置)的vdm指针。在该情况下,分对各个第二vdm片段表t422分配的pba的范围相当于对由在该第二vdm片段表t422所包括的多个条目c422的每一个条目中存储的vdm指针表示的全部第一vdm片段表t421分配的pba的范围。[0134]另外,多个第三vdm片段表t423分别被分配比上述的第二vdm片段表t422宽的pba的范围,该第三vdm片段表t423包括多个条目c423。另外,在第三vdm片段表t423所包括的多个条目c423的每一个中,被分配了对与该第三vdm片段表t423的下位的层级对应的第二vdm片段表t422分配的pba的范围,并存储表示该第二vdm片段表t422(的位置)的vdm指针。在该情况下,对各个第三vdm片段表t423分配的pba的范围相当于对由在该第三vdm片段表t423所包括的多个条目c423的每一个条目中存储的vdm指针所表示的全部第二vdm片段表t422分配的pba的范围。[0135]进而,第四vdm片段表t424中被分配比上述的第三vdm片段表t423宽的pba的范围,该第四vdm片段表t424包括多个条目c424。另外,在第四vdm片段表t424所包括的多个条目c424的每一个中,被分配了对与该第四vdm片段表t424的下位的层级相对的第三vdm片段表t423分配的pba的范围,并存储表示该第三vdm片段表t423(的位置)的vdm指针。在该情况下,对第四vdm片段表t424分配的lba的范围相当于对由在该第四vdm片段表t424所包括的多个条目c424的每一个条目中存储的vdm指针所表示的全部第三vdm片段表t423分配的pba的范围。[0136]此外,如上所述,在与vdm42所具有的层级结构中的最上位层级对应的第四vdm片段表t424的数量为1的情况下,分配给该第四vdm片段表t424的pba的范围覆盖数据的有效性被管理的非易失性存储器4内的pba的整个范围。[0137]在具有上述的图5所示的层级结构的vdm42中,构成为:与第四层级(最上位的层级)对应的第四vdm片段表t424所包括的各个条目c424存储的vdm指针表示与第三层级对应的第三vdm片段表t423,该第三vdm片段表t423所包括的各个条目c423中存储的vdm指针表示与第二层级对应的第二vdm片段表t422,该第二vdm片段表t422所包括的各个条目c422存储的vdm指针表示与第一层级(最下位的层级)对应的第一vdm片段表t421,该第一vdm片段表t421所包括的各个条目c421存储对多个pba中存储的规定尺寸的数据各自的有效性进行表示的标志信息(位映射)。[0138]根据这样的vdm42,例如通过基于存储有应确认有效性的数据的pba依次参照第四vdm片段表t424、第三vdm片段表t423、第二vdm片段表t422以及第一vdm片段表t421,由此能够掌握该数据的有效性。[0139]即,在图5所示的vdm42中,能够从与第四层级对应的第四vdm片段表t424掌握全部的pba中存储的数据的有效性(即,在第一vdm片段表中被管理的数据的有效性),因此与在上述的图4中说明的本实施方式的比较例中的vdm42'不同,在存储器55中仅保持表示第四vdm片段表t424的vdm指针(即,1个指针)即可。[0140]在此,在图5所示的例子中,第一vdm片段表t421是与vdm42所具有的层级结构中的最下位的层级对应的vdm片段表,在该第一vdm片段表t421所包括的各个条目c421中,存储有对在连续的pba的范围内存储的规定尺寸的数据各自的有效性进行表示的标志信息(位映射)。在该情况下,若设为在1个第一vdm片段表t421中包括32个条目c421、进而在1个条目c421中存储有对32个数据的有效性进行表示的32位的位映射,则与第一层级对应的1个第一vdm片段表t421中被分配32×32=1,024个pba的范围。在该情况下,若如上述那样设为在1个pba中被写入的数据的尺寸为4kib,则在1个第一vdm片段表t421中,能够管理4kib×1,024=4mib的数据的有效性。[0141]同样地,若设为在1个第二vdm片段表t422中包括32个条目c422、且对被分配了供4mib的数据存储的1,024个pba的第一vdm片段表t421进行表示的vdm指针被存储在该条目c422的每一个中(即,对各条目c422分配了对该第一vdm片段表t421分配的1,024个pba的范围),则对与第二层级对应的1个第二vdm片段表t422分配1,024×32=32,768个pba的范围。在该情况下,在1个第二vdm片段表t422中,能够管理4kib×32,768=128mib的数据的有效性。[0142]进而,若设为在1个第三vdm片段表t423中包括32个条目c423、且对被分配了供128mib的数据存储的32,768个pba的第二vdm片段表t422进行表示的指针被存储在该条目c423的每一个中(即,对各条目c423分配了对该第二vdm片段表t422分配的32,768个pba的范围),则对与第三层级对应的1个第三vdm片段表t423分配32,768×32=1,048,576个pba的范围。在该情况下,在1个第三vdm片段表t423中,能够管理4kib×1,048,576=4gib的数据的有效性。[0143]另外,若设为在1个第四vdm片段表t424中包括32个条目c414、且对被分配了供4gib的数据存储的1,048,576个pba的第三vdm片段表t423进行表示的指针被存储在该条目c424的每一个(即,对各条目c424分配了对该第三vdm片段表t423分配的1,048,576个pba的范围),则对与第四层级对应的1个第四vdm片段表t424分配1,048,576×32=33,554,432个pba的范围。在该情况下,在1个第四vdm片段表t424中,能够管理4kib×33,554,432=128gib的数据的有效性。[0144]即,在图5所示的vdm42的例子中,第一vdm片段表t421分别管理供4mib的数据存储的pba的范围,第二vdm片段表t422分别管理供128mib的数据存储的pba的范围,第三vdm片段表t423分别管理供4gib的数据存储的pba的范围,第四vdm片段表t424管理供128gib的数据存储的pba的范围。[0145]另外,在图5中,设为例如在第四vdm片段表t424所包括的多个条目c424的每一个中存储vdm指针进行了说明,但在由该vdm指针各自表示的多个第三vdm片段表t423被连续配置于非易失性存储器4的情况下,该第四vdm片段表t424也可以构成为仅存储对该多个第三vdm片段表t423中的开头的第三vdm片段表t423进行表示的vdm指针(即,省略表示不是开头的第三vdm片段表t423的vdm指针)。由此,能够削减vdm42的尺寸。在此,对第四vdm片段表t424进行了说明,但关于其他vdm片段表也是同样的。[0146]另外,例如在对1个vdm片段表分配的pba的范围中被写入的4kib的数据各自的有效性(有效或无效)共通的情况下,也能够一并管理在该vdm片段表中在该pba的范围中被写入的数据的有效性,并省略与比该vdm片段表更下位的层级对应的(即,由在该vdm片段表所包括的条目中存储的指针表示的)vdm片段表。[0147]具体而言,例如假定第二vdm片段表t422管理供128mib的数据存储的pba的范围,但该128mib的数据(构成该128mib的数据的全部4kib的数据)全部有效或全部无效的情况。在该情况下,也可以通过使对在被分配给第二vdm片段表t422的pba的范围中存储的128mib的数据全部有效或全部无效进行表示的管理数据保持在与该第二vdm片段表t422的上位的层级对应的(即,包括用于存储对该第二vdm片段表t422进行表示的vdm指针的条目的)第三vdm片段表t423中,由此将第二vdm片段表t422和与该第二vdm片段表t422的下位的层级对应的第一vdm片段表t421分布废弃。由此,不需要参照比第三vdm片段表t423更下位的第二vdm片段表t422以及第一vdm片段表t421,因此能够提高对vdm42的访问速度。[0148]图6表示本实施方式中的vdm42所包括的第一vdm片段表t421的数据结构的一例。[0149]第一vdm片段表t421例如包括多个映射存储部42a、pba存储部42b以及管理数据存储部42c。[0150]映射存储部42a相当于图5中说明的第一vdm片段表t421所包括的条目c421。即,映射存储部42a的数量例如为32个。映射存储部42a存储由1位的标志信息构成的位映射,该位映射管理在对该映射存储部42a(条目c421)分配的pba的范围中被写入的4kib的数据各自的有效性(有效或无效)。在映射存储部42a中被分配了32个pba的范围的情况下,存储在该映射存储部42a中的位映射的尺寸是1位×32=32位。[0151]另外,在存储在映射存储部42a中的位映射中例如被附加有8位的管理数据md2,该管理数据md2与该位映射一起被存储在该映射存储部42a中。作为这样附加于位映射的管理数据md2,例如设定被称为vdm模式的幻数。作为管理数据md2而设定的幻数中包括“0xff”及“0x00”。[0152]另外,如上所述那样被存储在映射存储部42a中的位映射由1位的标志信息构成,该1位的标志信息表示在对该映射存储部42a分配的32个pba的每一个中存储的4kib的数据的有效性,在以下的说明中,为了方便,将该32个pba的每一个中存储的4kib的数据称为在该位映射中被管理的数据。[0153]幻数“0xff”表示在附加了该幻数(管理数据md2)的位映射中被管理的数据全部是有效的(即,构成该位映射的标志信息全部为1)这一情况。即,根据该幻数“0xff”,能够一并管理在一定的pba的范围内写入的数据的有效性,能够在不参照被附加了该幻数的位映射的情况下,掌握在该位映射中被管理的全部数据是有效的这一情况。[0154]幻数“0x00”表示在附加了该幻数(管理数据md2)的位映射中被管理的数据全部是无效的(即,构成该位映射的标志信息全部为0)这一情况。即,根据该幻数“0x00”,能够与上述的幻数“0xff”同样地一并管理在一定的pba的范围内写入的数据的有效性,能够在不参照被附加了该幻数的位映射的情况下,掌握在该位映射中被管理的全部数据是无效的这一情况。[0155]此外,在作为管理数据md2而未设定幻数“0xff”以及“0x00”的情况下,意味着被附加了该管理数据md2的位映射由表示有效的标志信息以及表示无效的标志信息构成(即,在该位映射中混合存在表示有效的标志信息以及表示无效的标志信息)。[0156]在如上所述那样映射存储部42a中存储有位映射及管理数据md2的情况下,映射存储部42a各自的尺寸是将该位映射的尺寸(32位)和该管理数据md2的尺寸(8位)相加而得到的40位,32个映射存储部42a的合计尺寸是160字节。[0157]pba存储部42b存储对第一vdm片段表t421分配的pba的范围中的开头的pba。[0158]在管理数据存储部42c中存储有对在被分配给第一vdm片段表t421的pba的范围内存储的多个4kib的数据中的有效的数据的数量进行表示的validaducount以及与被分配给该第一vdm片段表t421的pba的范围(该第一vdm片段表t421所管理的pba的范围)相当的grain。在第一vdm片段表t421的情况下,validaducount的最大值为1,024。[0159]另外,也可以在管理数据存储部42c中存储其他信息。具体而言,在管理数据存储部42c中,也可以存储用于识别与第一vdm片段表t421对应的层级(第一层级)的识别信息(层级id)等。[0160]在此,在本实施方式中,例如在vdm42被更新时,该vdm42的一部分(成为该更新的对象的vdm片段表)被存储于高速缓冲存储器551。在这种情况下,vdm42的一部分以高速缓冲线为单位被存储。此外,在高速缓冲存储器551中更新后的vdm42的一部分以高速缓冲线为单位被回写到非易失性存储器4。[0161]假定第一vdm片段表t421以上述的高速缓冲线为单位被存储在高速缓冲存储器551中。若将这样被存储在高速缓冲存储器551中的第一vdm片段表t421设为vdm高速缓存数据,则该vdm高速缓存数据除了上述的映射存储部42a、pba存储部42b以及管理数据存储部42c之外,还包括例如对在高速缓冲存储器551中应该相互建立关联的vdm高速缓存数据进行表示的指针。[0162]具体而言,vdm高速缓存数据包括:存储对在该vdm高速缓存数据之前被参照的vdm高速缓存数据进行表示的指针的前指针存储部42d以及存储对vdm高速缓存数据之后被参照的其他vdm高速缓存数据进行表示的指针的后指针存储部42e。另外,在前指针存储部42d以及后指针存储部42e中,也可以存储表示上述的lut高速缓存数据的指针。[0163]作为在上述的前指针存储部42d及后指针存储部42e中存储的指针,例如使用存储有其他vdm高速缓存数据的pba,但也可以使用其他形式的地址。[0164]通过利用这样的对vdm高速缓存数据应参照的前后的vdm高速缓存数据的指针,由此能够使对高速缓冲存储器551的访问高速化,能够实现连续的访问。另外,vdm高速缓存数据可以进一步包括其他管理数据。[0165]在图6中,对1个第一vdm片段表t421的数据结构进行了说明,但vdm42中包括的多个第一vdm片段表t421全部具有同样的数据结构。[0166]接着,图7表示本实施方式中的vdm42所包括的第二vdm片段表t422的数据结构的一例。另外,在此主要叙述与上述的图6所示的第一vdm片段表t421不同的点。[0167]在图6中,设为第一vdm片段表t421包括映射存储部42a进行了说明,但第二vdm片段表t422代替该映射存储部42a而包括pba存储部42f。[0168]pba存储部42f相当于图5中说明的第二vdm片段表t422所包括的条目c422。即,pba存储部42f的数量例如为32个。pba存储部42f作为对与第二vdm片段表t422的下位的层级对应的第一vdm片段表t421进行表示的指针而存储了存储有该第一vdm片段表t421的非易失性存储器4内的pba。此外,在与下位的层级对应的第一vdm片段表t421被存储在高速缓冲存储器551中的情况下,在pba存储部42f中存储该高速缓冲存储器551内的地址信息。存储在pba存储部42f中的pba的尺寸例如是32位。[0169]另外,在pba存储部42f中存储的pba中例如被附加了8位的管理数据md3,该管理数据md3与该位映射一起被存储在该pba存储部42f中。作为这样被附加于位映射的管理数据md3,与上述图6中说明的管理数据md2同样地,设定被称为vdm模式的幻数。[0170]另外,作为管理数据md2,设为设定了“0xff”以及“0x00”作为幻数而进行了说明,但作为管理数据md3而设定的幻数中,除了该“0xff”以及“0x00”之外,还包括“0xfc”以及“0xfd”。[0171]幻数“0xfc”表示被附加了该幻数(管理数据md3)的pba是非易失性存储器4内的pba。根据该幻数“0xfc”,能够基于被附加了该幻数的pba,参照(取得)被存储在非易失性存储器4中的第一vdm片段表t421。[0172]幻数“0xfd”表示被附加了该幻数(管理数据md3)的pba是高速缓冲存储器551内的地址信息。根据该幻数“0xfd”,能够基于被附加了该幻数的pba来参照(取得)高速缓冲存储器551中存储的第一vdm片段表t421。[0173]此外,如上所述,基于被存储在pba存储部42f中的pba而参照的第一vdm片段表t421,是与被分配了对该pba存储部42f(条目c422)分配的pba的范围的第一层级对应的vdm片段表。[0174]另外,作为管理数据md3,也可以设定上述的幻数“0xff”或“0x00”。在作为管理数据md3而设定了幻数“0xff”的情况下,意味着在如下pba(例如,1,024个pba)的范围内存储的4kib的数据全部是有效的,该pba(例如,1,024个pba)是对存储被附加了该幻数的pba的pba存储部42f分配的pba。另一方面,在作为管理数据md3而设定了幻数“0x00”的情况下,意味着pba(例如,1024个pba)的范围内存储的4kib的数据全部是无效的,该pba(例如,1024个pba)是对存储被附加了该幻数的pba的pba存储部42f分配的pba。[0175]即,在作为管理数据md3而设定了幻数“0xff”以及“0x00”中的一方的情况下,能够掌握在对存储被附加了该幻数的pba的pba存储部42f(条目c422)分配的pba的范围内存储的全部数据是有效或无效的情况。在该情况下,不需要根据被附加了幻数“0xff”以及“0x00”的pba而参照与下位的层级对应的第一vdm片段表t421。[0176]另一方面,在作为管理数据md3未设定幻数“0xff”以及“0x00”(即,设定了幻数“0xfc”或“0xfd”)的情况下,在对存储有被附加了该幻数的pba的pba存储部42f(条目c422)分配的pba的范围内,能够掌握有效的数据及无效的数据混合存在这一情况。在该情况下,需要根据被附加了幻数“0xfc”或“0xfd”的pba,来参照与下位的层级对应的第一vdm片段表t421。[0177]在如上所述那样pba存储部42f存储有pba以及管理数据md3的情况下,pba存储部42f各自的尺寸是将pba的尺寸(32位)与管理数据md3的尺寸(8位)相加而得到的40位,32个pba存储部42f的合计尺寸是160字节。[0178]另外,第二vdm片段表t422除了pba存储部42f以外还包括pba存储部42b及管理数据存储部42c,但由于该pba存储部42b及管理数据存储部42c如图6中说明的那样,因此在此省略其详细说明。[0179]另外,在高速缓冲存储器551中存储的第二vdm片段表t422(vdm高速缓存数据)中包括前指针存储部42d及后指针存储部42e,但由于该前指针存储部42d和后指针存储部42e也如在图6中说明的那样,因此在此省略其详细的说明。[0180]在图7中,对1个第二vdm片段表t422的数据结构进行了说明,但vdm42中包括的多个第二vdm片段表t422全部具有同样的数据结构。[0181]另外,第二vdm片段表t422以外的其他vdm片段表(第三vdm片段表t423及第四vdm片段表t424)的数据结构也与第二vdm片段表t422相同。即,例如在第三vdm片段表t423中,在作为管理数据md3而设定了单向“0xff”以及“0x00”中的一方的情况下,不需要基于被附加了该幻数的pba来参照与下位的层级对应的第二vdm片段表t422。在第四vdm片段表t424的情况下也是同样的。[0182]另外,在上述的图6及图7所示的例子中,第一vdm片段表t421~第四vdm片段表t424各自的尺寸例如是168字节的固定长度,存储在高速缓冲存储器551中的vdm高速缓存数据各自的尺寸例如是188字节的固定长度,但在本实施方式中,构成为,第一vdm片段表t421~第四vdm片段表t424(即,vdm42中包括的多个vdm片段表)具有相同的数据结构。[0183]另外,如上述的图3、图6以及图7中说明的那样,本实施方式中的lut41(所包括的各lut片段表)以及vdm42(所包括的各vdm片段表)构成为具有同样的数据结构。以下,对上述的lut41与vdm42的关系性进行说明。[0184]首先,若设为lut41如上述那样是用于管理与lba对应的pba的数据、且与最下位的层级(第一层级)对应的1个第一lut片段表t411包括32个条目c411(pba存储部41a),则在该第一lut片段表t411中能够管理32个lba(所对应的pba)。另外,如果与从最下位的层级起上位1个的层级(第二层级)对应的1个第二lut片段表t412同样地包括32个条目c412,则在该第二lut片段表t412中能够管理32×32=1,024个lba(所对应的pba)。在此,对到第二层级为止进行了说明,但对于比该第二层级上位的层级也是同样的。[0185]另一方面,若设为vdm42如上述那样是用于管理在各pba中存储的数据的有效性的数据、且在与最下位的层级(第一层级)对应的1个第一vdm片段表t421的1个条目c421(映射存储部42a)中存储32位的位映射,则在该第一vdm片段表t421中能够管理32位×32=1,024个pba(中存储的数据)。另外,若设为与从最下位的层级起上位1个的层级(第二层级)对应的1个第二vdm片段表t422同样地包括32个条目c422,则在该第二vdm片段表t422中能够管理1,024×32=32,768个pba(中存储的数据)。在此,对到第二层级为止进行了说明,但对于比该第二层级上位的层级也是同样的。[0186]即,在本实施方式中,lut41以及vdm42能够分别通过1个条目来管理与下位的层级对应的1个片段表,在该lut41以及vdm42的任一个中每当层级变为上位1个就能够管理32倍的数量的pba。[0187]在此,假定与连续的1,024个lba的范围对应的4mib的数据被写入(顺序写入)到非易失性存储器4内的连续的1,024个pba中的情况。另外,设为在1,024个pba的每一个中被写入了4kib的数据。[0188]在该情况下,需要在lut41中对与被写入到非易失性存储器4的4mib的数据对应的lba与被写入了该数据的pba之间的对应关系进行管理,但如上所述,第二lut片段表t412能够管理1,024个lba(对应的pba)。[0189]因此,在第二lut片段表t412管理的(即,分配给该第二lut片段表t412的)1,024个lba与上述的4mib的数据所对应的1,024个lba一致的情况下,能够将在与该第二lut片段表t412的上位层级对应的第三lut片段表t413所包括的多个条目c413中存储的lut指针中的、表示该第二lut片段表t412的lut指针更新为被写入了该4mib的数据的1024个pba中的开头的pba。由此,能够通过第三lut片段表t413所包括的1个条目c413来管理与上述的4mib的数据对应的lba与被写入了该数据的pba之间的对应关系。[0190]另一方面,在如上述那样在非易失性存储器4内的连续的1,024个pba中被写入了4mib的数据的情况下,需要将该4mib的数据作为有效的数据在vdm42中进行管理,但如上所述,第一vdm片段表t421能够管理1,024个pba。[0191]因此,在第一vdm片段表t421管理的(即,分配给该第一vdm片段表t421的)1,024个pba与被写入了上述的4mib的数据的1,024个pba一致的情况下,能够将存在与该第一vdm片段表t421的上位的层级对应的第二vdm片段表t422所包括的多个条目c422中存储的vdm指针中的、对该第一vdm片段表t421进行表示的vdm指针中被附加的管理数据md3(幻数)更新为“0xff”。由此,能够通过第二vdm片段表t422所包括的1个条目c422来管理上述的1,024个pba中存储的4mib的数据是有效的这一情况。[0192]即,在与如上述那样连续的1,024个lba的范围对应的4mib的数据被写入到连续的1,024个pba的情况下,该lba以及pba的对应关系能够通过变更lut41所包括的最下位的层级起上两位的层级对应的lut片段表所包括的1个条目(pba)来进行管理。另外,这样被写入到非易失性存储器4中的4mib的数据的有效性,能够通过变更vdm42所包括的最下位的层起上位1个的层级对应的vdm片段表所包括的1个条目(幻数)来进行管理。[0193]这样,在本实施方式中,通过将lut41以及vdm42所包括的各片段表设为同样的数据结构,并使该lut41以及vdm42中的管理单位一致,由此在不更新与最下位的层级对应的片段表的情况下仅通过变更上位层级的片段表所包括的条目就能够完成lut41以及vdm42的更新。[0194]在此,为了如上所述那样通过变更与上位层级对应的片段表所包括的条目来完成lut41以及vdm42的更新,具有与lut41所包括的lut片段表同样的数据结构的vdm42所包括的vdm片段表需要满足[0195]m=y×n^x(以下,表述为条件式)。[0196]另外,在上述的条件式中,n是与最下位的层级对应的第一vdm片段表t421所包括的条目的数量,m是在与最下位的层级对应的第一vdm片段表t421所包括的1个条目中有效性被管理的4kib的数据(即,供该数据存储的pba)的数量。另外,在条件式中,x为0以上的整数,y为1以上且小于n的整数或1以上且小于n的整数的倒数。[0197]以下,对上述的n与m的关系性具体地进行说明。在此,将对各lut片段表分配的lba(所对应的pba)的数量称为该lut片段表的pba管理数,将对各vdm片段表分配的pba的数量称为该vdm片段表的pba管理数。[0198]另外,对与第一层级(最下位的层级)对应的lut片段表(第一lut片段表t411)所包括的1个条目分配的lba(所对应的pba)的数量为1,在以下的说明中也设为是同样的。[0199]图8表示在n=32、m=32的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数之间的关系。[0200]在此,在n=32、m=32的情况下,与第一层级对应的lut片段表的pba管理数是32,与该第一层级对应的vdm片段表(第一vdm片段表t421)的pba管理数是1,024。另外,与第二层级对应的lut片段表(第二lut片段表t412)的pba管理数为1,024,与该第二层级对应的vdm片段表(第二vdm片段表t422)的pba管理数为32,768。[0201]另外,关于与比第二层级更上位的层级对应的lut片段表的pba管理数以及vdm片段表的pba管理数,省略详细的说明,但在n=32的情况下,lut片段表的pba管理数以及vdm片段表的pba管理数均在层级变为上位1个时变为32倍。[0202]若如上所述那样将与同一层级对应的lut片段表与vdm片段表进行比较,则vdm片段表的pba管理数多于lut片段表的管理数。另外,在作为lut41整体的pba管理数与作为vdm42整体的pba管理数相同的情况下,构成本实施方式中的vdm42所具有的层级结构的层级的数量比构成lut41所具有的层级结构的层级的数量少。[0203]另外,在n=32,m=32的情况下,在x=1,y=1时满足上述的条件式。在这样满足条件式的情况下,x相当于lut片段表与vdm片段表的层级的差,y相当于该lut片段表的pba管理数与该vdm片段表的pba管理数的比(即,“vdm片段表的pba管理数/lut片段表的pba管理数”)。具体而言,在着眼于层级的差为1(即,x=1)的第二层级所对应的lut片段表与第一层级所对应的vdm片段表的情况下,该lut片段表的pba管理数为1,024,该vdm片段表的pba管理数为1,024,“vdm片段表的pba管理数/lut片段表的pba管理数”为1(即,y=1)。[0204]这样,如果是满足上述的条件式的n及m,则例如在与对与第二层级对应的lut片段表分配的1,024个lba的范围对应的数据被写入到非易失性存储器4中的情况下,能够通过变更与第三层级对应的lut片段表所包括的1个条目(在pba存储部41a中存储的pba)来完成lut41的更新。同样地,在与1,024个lba的范围对应的数据被写入到对与第一层级对应的vdm片段表分配的1,024个pba的情况下,能够通过变更与第二层级对应的vdm片段表所包括的1个条目(在映射存储部42a中存储的幻数)来完成vdm42的更新。[0205]即,在n=32、m=32的情况下,与i(i为1以上的整数)层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为1:1,例如在确保了lba及pba的连续性的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm42的1条目的变更来应对vdm42的更新。[0206]另外,在图8中说明的n=32,m=32是能够最有效地管理lut41(lba以及pba的对应关系)以及vdm42(数据的有效性)的例子的1个,但例如即使在改变了n的情况下,只要满足上述的条件式,就能够实现lut41以及vdm42的高效的管理。[0207]以下,对改变n的情况进行说明,但对于与上述的图8中说明过的部分相同的部分,省略其详细说明。[0208]图9表示在设为n=8,m=32的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的管理数之间的关系。[0209]在此,在n=8,m=32的情况下,与第一层级对应的lut片段表的pba管理数为8,与该第一层级对应的vdm片段表的pba管理数为256。另外,与第二层级对应的lut片段表的pba管理数为64,与该第二层级对应的vdm片段表的pba管理数为2,048。[0210]另外,关于与比第二层级更上位的层级对应的lut片段表的pba管理数以及vdm片段表的pba管理数,省略详细的说明,但在n=8的情况下,lut片段表的pba管理数以及vdm片段表的pba管理数均在层级变为上位1个时变为8倍。[0211]另外,在n=8,m=32的情况下,在x=1,y=4时满足上述的条件式。具体而言,在着眼于层级的差为1(即,x=1)的第二层级所对应的lut片段表与第一层级所对应的vdm片段表的情况下,该lut片段表的pba管理数为64,该vdm片段表的pba管理数为256,“vdm片段表的pba管理数/lut片段表的pba管理数”为4(即y=4)。[0212]这样,如果是满足上述的条件式的n及m,则例如在与对与第二层级对应的4个lut片段表分配的256个lba的范围对应的数据被写入到非易失性存储器4中的情况下,通过变更与第三层级对应的lut片段表所包括的4个条目,能够完成lut41的更新。同样地,在与256个lba的范围对应的数据被写入到对与第一层级对应的vdm片段表分配的256个pba的情况下,通过变更与第二层级对应的vdm片段表所包括的1个条目来完成vdm42的更新。[0213]即,在n=8,m=32的情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为1:4,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的4条目的变更来应对lut41的更新,能够通过vdm42的1条目的变更来应对vdm42的更新。[0214]另外,在n=8,m=32的情况下,在x=2,y=1/2时也满足上述的条件式。虽然省略了详细的说明,但在该情况下,与i层级对应的lut片段表的pba管理数与与i-2层级对应的vdm片段表的pba管理数之比成为2:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的2条目的变更来应对vdm42的更新。[0215]图10表示在设为n=16,m=32的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数之间的关系。[0216]在此,在n=16,m=32的情况下,与第一层级对应的lut片段表的pba管理数为16,与该第一层级对应的vdm片段表的pba管理数为512。另外,与第二层级对应的lut片段表的pba管理数为256,与该第二层级对应的vdm片段表的pba管理数为8,192。[0217]另外,关于与比第二层级更上位的层级对应的lut片段表的pba管理数以及vdm片段表的pba管理数,省略详细的说明,但在n=16的情况下,lut片段表的pba管理数以及vdm片段表的pba管理数均在层级变为上位1个时变为为16倍。[0218]另外,在n=16,m=32的情况下,在x=1,y=2时满足上述的条件式。具体而言,在着眼于层级的差为1(即,x=1)的第二层级所对应的lut片段表与第一层级所对应的vdm片段表的情况下,该lut片段表的pba管理数为256,该vdm片段表的pba管理数为512,“vdm片段表的pba管理数/lut片段表的pba管理数”为2(即y=2)。[0219]这样,如果是满足上述的条件式的n及m,则例如在与对与第二层级对应的2个lut片段表分配的512个lba的范围对应的数据被写入到非易失性存储器4中的情况下,能够通过变更与第三层级对应的lut片段表所包括的2个条目来完成lut41的更新。同样地,在与512个lba的范围对应的数据被写入到对与第一层级对应的vdm片段表分配的512个pba的情况下,能够通过变更与第二层级对应的vdm片段表所包括的1个条目来完成vdm42的更新。[0220]即,在n=16,m=32的情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为1:2,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的2条目的变更来应对lut41的更新,能够通过vdm片段表的1条目的变更来应对vdm42的更新。[0221]另外,在n=16,m=32的情况下,在x=2,y=1/8时也满足上述的条件式。详细的说明予以省略,但在该情况下,与i层级对应的lut片段表的pba管理数与与i-2层级对应的vdm片段表的pba管理数之比成为8:1,在如上所述那样在lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的8条目的变更来应对vdm42的更新。[0222]图11表示在设为n=64,m=32的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数之间的关系。[0223]在此,在n=64,m=32的情况下,与第一层级对应的lut片段表的pba管理数是64,与该第一层级对应的vdm片段表的pba管理数是2,048。另外,与第二层级对应的lut片段表的pba管理数是4,096,与该第二层级对应的vdm片段表的pba管理数为131,072。[0224]另外,关于与比第二层级更上位的层级对应的lut片段表的pba管理数以及vdm片段表的pba管理数,省略详细的说明,但在n=64的情况下,lut片段表的pba管理数以及vdm片段表的pba管理数均在层级变为上位1个时变为64倍。[0225]另外,在n=64,m=32的情况下,在x=0,y=32时满足上述的条件式。具体而言,在着眼于层级的差为0(即x=0)的第一层级所对应的lut片段表与第一层级所对应的vdm片段表的情况下,该lut片段表的pba管理数是64,该vdm片段表的pba管理数是2,048,“vdm片段表的pba管理数/lut片段表的pba管理数”是32(即y=32)。[0226]这样,如果是满足上述的条件式的n及m,则例如在与对与第一层级对应的32个lut片段表分配的2,048个lba的范围对应的数据被写入到非易失性存储器4中的情况下,能够通过变更与第二层级对应的lut片段表所包括的32个条目来完成lut41的更新。同样地,在与2,048个lba的范围对应的数据被写入到对与第一层级对应的vdm片段表分配的2,048个pba的情况下,能够通过变更与第二层级对应的vdm片段表所包括的1个条目来完成vdm42的更新。[0227]即,在n=64,m=32的情况下,与i层级对应的lut片段表的pba管理数与与i层级对应的vdm片段表的pba管理数之比成为1:32,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的32条目的变更来应对lut41的更新,能够通过vdm片段表的1条目的变更来应对vdm42的更新。[0228]另外,在n=64,m=32的情况下,在x=1,y=1/2时也满足上述的条件式。详细的说明予以省略,但在该情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为2:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的2条目的变更来应对vdm42的更新。[0229]图12表示在设为n=128,m=32的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数之间的关系。[0230]在此,在n=128,m=32的情况下,与第一层级对应的lut片段表的pba管理数是128,与该第一层级对应的vdm片段表的pba管理数是4,096。另外,与第二层级对应的lut片段表的pba管理数为16,384,与该第二层级对应的vdm片段表的pba管理数为524,288。[0231]另外,关于与比第二层级更上位的层级对应的lut片段表的pba管理数以及vdm片段表的pba管理数,省略详细的说明,但在n=128的情况下,lut片段表的pba管理数以及vdm片段表的pba管理数均在层级变为上位1个时变为128倍。[0232]另外,在n=128,m=32的情况下,在x=0,y=32时满足上述的条件式。具体而言,在着眼于层级的差为0(即x=0)的第一层级所对应的lut片段表与第一层级所对应的vdm片段表的情况下,该lut片段表的pba管理数是128,该vdm片段表的pba管理数是4,096,“vdm片段表的pba管理数/lut片段表的pba管理数”是32(即y=32)。[0233]这样,如果是满足上述的条件式的n以及m,则例如在与对与第一层级对应的32个lut片段表分配的4,096个lba的范围对应的数据被写入到非易失性存储器4中的情况下,能够通过变更与第二层级对应的lut片段表所包括的32个条目来完成lut41的更新。同样地,在与4,096个lba的范围对应的数据被写入到对与第一层级对应的vdm片段表分配的4,096个pba的情况下,能够通过变更与第二层级对应的vdm片段表所包括的1个条目来完成vdm42的更新。[0234]即,在n=128,m=32的情况下,与i层级对应的lut片段表的pba管理数与与i层级对应的vdm片段表的pba管理数之比成为1:32,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的32条目的变更来应对lut41的更新,能够通过vdm片段表的1条目的变更来应对vdm42的更新。[0235]另外,在n=128,m=32的情况下,在x=1,y=1/4时也满足上述的条件式。详细的说明予以省略,但在该情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为4:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的4条目的变更来应对vdm42的更新。[0236]在上述的图8~图12中,说明了m=32的情况,以下,参照图13~图17,对m=64的情况进行说明。此外,除了变更了m这一点以外,与上述的图8~图12相同,因此,适当地简化说明图13~图17。[0237]图13表示在n=64,m=64的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数之间的关系。[0238]在n=64,m=64的情况下,在x=1,y=1时满足上述的条件式。即,在n=64,m=64的情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为1:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm42的1条目的变更来应对vdm42的更新。[0239]另外,在如上述的图8中说明的那样n=32,m=32的情况下,也能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm42的1条目的变更来应对vdm42的更新。即,在本实施方式中,可以说在n=m的情况下能够实现lut41以及vdm42的更高效的管理。[0240]图14表示在n=8,m=64的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数之间的关系。[0241]在n=8,m=64的情况下,在x=2,y=1时满足上述的条件式。即,在n=8,m=64的情况下,与i层级对应的lut片段表的pba管理数与与i-2层级对应的vdm片段表的pba管理数之比成为1:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm42的1条目的变更来应对vdm42的更新。[0242]这样,即使在不是n=m的情况下,在lut41的更新中也存在vdm42的更新也能够用1条目的对应的情况。由此,例如即使在m=n^x成立的情况下也能够实现lut41及vdm42的更高效的管理。[0243]图15表示在n=16,m=64的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系。[0244]在n=16,m=32的情况下,在x=1,y=4时满足上述的条件式。即,在n=16,m=64的情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为1:4,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的4条目的变更来应对lut41的更新,能够通过vdm片段表的1条目的变更来应对vdm42的更新。[0245]另外,在n=16,m=64的情况下,在x=2,y=1/4时也满足上述的条件式。在该情况下,与i层级对应的lut片段表的pba管理数与与i-2层级对应的vdm片段表的pba管理数之比成为4:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的4条目的变更来应对vdm42的更新。[0246]图16表示在n=32,m=64的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系。[0247]在n=32,m=64的情况下,在x=1,y=2时满足上述的条件式。即,在n=32,m=64的情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为1:2,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的2条目的变更来应对lut41的更新,能够通过vdm片段表的1条目的变更来应对vdm42的更新。[0248]另外,在n=32,m=64的情况下,在x=2,y=1/16时也满足上述的条件式。在该情况下,与i层级对应的lut片段表的pba管理数与与i-2层级对应的vdm片段表的pba管理数之比成为16:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的16条目的变更来应对vdm42的更新。[0249]图17表示在n=128,m=64的情况下的与各层级对应的lut片段表的pba管理数与vdm片段表的pba管理数的关系。[0250]在n=128,m=64的情况下,在x=0,y=64时满足上述的条件式。即,在n=128,m=64的情况下,与i层级对应的lut片段表的pba管理数与与i层级对应的vdm片段表的pba管理数之比成为1:64,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的64条目的变更来应对lut41的更新,能够通过vdm片段表的1条目的变更来应对vdm42的更新。[0251]另外,在n=128,m=64的情况下,在x=1,y=1/2时也满足上述的条件式。在该情况下,与i层级对应的lut片段表的pba管理数与与i-1层级对应的vdm片段表的pba管理数之比成为2:1,在如上述那样lba以及pba的连续性得以确保的情况下,能够通过lut片段表的1条目的变更来应对lut41的更新,能够通过vdm片段表的2条目的变更来应对vdm42的更新。[0252]在本实施方式中,对m=32的情况和m=64的情况进行了说明,但该m也可以以与存储系统3中的运算位宽度(例如32位或64位等)对应的方式决定。[0253]接着,对本实施方式的存储系统3的动作进行说明。首先,参照图18的流程图,对从主机2发送了写入指令的情况下的存储系统3的处理顺序的一例进行说明。[0254]在如上所述那样从主机2发送了写入指令的情况下,通信接口控制部51接收该写入指令(步骤s1)。此外,在步骤s1中接收的写入指令中包括基于该写入指令而被写入到非易失性存储器4中的数据(以下,表述为对象数据)以及用于访问该数据的lba(以下,表述为对象lba)。另外,对象数据临时存储在写入缓冲存储器52中。[0255]接着,写入控制部561将写入缓冲存储器52中存储的对象数据经由非易失性存储器控制器54写入非易失性存储器4(步骤s2)。在以下的说明中,为了方便,将在步骤s2中被写入了对象数据的非易失性存储器4内的pba称为对象pba。[0256]执行了步骤s2的处理后,管理部565例如通过与非易失性存储器控制器54以及高速缓冲存储器控制部566协作,基于对象pba更新vdm42(步骤s3)。在该步骤s3中,以对对象数据有效(即,写入到对象pba中的数据是有效的)这一情况进行管理的方式更新vdm42。[0257]在此,在本实施方式中,vdm42具有层级结构,包括与各层级对应的多个vdm片段表。在该情况下,在步骤s3中,通过参照vdm42来确定被分配了对象pba的1个或多个vdm片段表,并根据需要从非易失性存储器4读出该所确定的vdm片段表。这样从非易失性存储器4读出的vdm片段表被存储在高速缓冲存储器551中,并且在高速缓冲存储器551上被更新。此外,在如上述那样确定出的vdm片段表已经被存储于高速缓冲存储器551的情况下,不需要从非易失性存储器4读出该vdm片段表。[0258]接着,变更这样确定出的vdm片段表所包括的条目中的被分配了对象pba的条目。这样被变更了条目的vdm片段表被从高速缓冲存储器551读出,并且被回写到非易失性存储器4中。[0259]另外,被变更条目的vdm片段表,既可以是如上述那样与层级结构中的最下位的层级对应的vdm片段表,也可以是与比该层级更上位的层级对应的vdm片段表。[0260]具体而言,如果对象pba是比较窄的范围的pba、且不变更与最下位的层级对应的vdm片段表所包括的条目则无法对被写入到对象pba的对象数据是有效的这一情况进行管理,则变更与该最下位的层级对应的vdm片段表所包括的条目。在该情况下,构成在与最下位的层级对应的vdm片段表所包括的条目中的、被分配了对象pba的条目(映射存储部42a)中存储的位映射的标志信息(与对象pba对应的标志信息)被变更。另外,在对与最下位的层级对应的vdm片段表所包括的至少1个条目分配的连续的pba的整个范围是对象pba的情况下,将存储在该条目中的幻数(管理数据md2)变更为“0xff”。[0261]另一方面,如果对象pba是比较宽的范围的连续的pba、且通过变更与最下位的层级以外的层级对应的vdm片段表所包括的条目能够管理被写入到对象pba的对象数据是有效的这一情况,则只要变更与该最下位的层级以外的层级对应的vdm片段表所包括的条目即可。在该情况下,与最下位的层级以外的层级对应的vdm片段表所包括的条目中的、被分配了对象pba的条目(pba存储部42f)中存储的幻数(管理数据md3)被变更为“0xff”。[0262]另外,在这样与最下位的层级以外的层级对应的vdm片段表所包括的条目被变更了的情况下,仅通过该vdm片段表就能够管理对象数据的有效性,因此能够丢弃与比该vdm片段表更下位的层级对应的vdm片段表(即,由该条目中存储的指针表示的vdm片段表)。[0263]另一方面,在需要变更与最下位的层级对应的vdm片段表所包括的条目的情况下,在不存在(丢弃)该vdm片段表的情况下,新制作包括被分配了对象pba的条目在内的vdm片段表。[0264]在步骤s3中,通过执行这样的处理,能够更新被存储在非易失性存储器4中的vdm42。另外,vdm42向非易失性存储器4的回写只要在步骤s3以后的任意的定时实施即可。[0265]在执行了步骤s3的处理后,管理部565例如通过与非易失性存储器控制器54以及高速缓冲存储器控制部566协作,由此基于写入指令(对象lba)以及对象pba来更新lut41(步骤s4)。在该步骤s4中,以管理对象lba与对象pba的对应关系(即,能够将对象lba变换为对象pba)的方式更新lut41。[0266]在此,在本实施方式中,lut41具有层级结构,包括与各层级对应的多个lut片段表。在该情况下,在步骤s4中,通过参照lut41来确定被分配了对象lba的1个或多个lut片段表,根据需要从非易失性存储器4读出该所确定的lut片段表。这样,从非易失性存储器4读取的lut片段表被存储在高速缓冲存储器551中,并在高速缓冲存储器551上被更新。此外,在如上述那样确定出的lut片段表已经存储于高速缓冲存储器551的情况下,不需要从非易失性存储器4读出该lut片段表。[0267]接着,这样确定出的lut片段表所包括的条目中的被分配了对象lba的条目被变更。在该情况下,被分配了对象lba的条目(pba存储部41a)中存储的pba被变更为对象pba。这样被变更了条目的lut片段表被从高速缓冲存储器551读出,并且被回写到非易失性存储器4中。[0268]另外,被变更条目的lut片段表既可以是如上述那样与层级结构中的最下位的层级对应的lut片段表,也可以是与比该层级更上位的层级对应的lut片段表。[0269]具体而言,如果对象lba为比较窄的范围的lba、且不变更与最下位的层级对应的lut片段表所包括的条目,则无法对对象lba及对象pba的对应关系进行管理,则与该最下位的层级对应的lut片段表所包括的条目被变更。[0270]另一方面,对象lba例如是比较宽的范围的连续的lba、且对象数据被写入到连续的pba中,如果通过变更与最下位的层级以外的层级对应的lut片段表所包括的条目能够管理该对象lba以及对象pba的对应关系,则变更与该最下位的层级以外的层级对应的lut片段表所包括的条目即可。[0271]在步骤s4中,通过执行这样的处理,能够更新被存储在非易失性存储器4中的lut41。另外,lut41向非易失性存储器4的回写只要在步骤s4以后的任意的定时实施即可。[0272]执行了步骤s4的处理后,管理部565经由通信接口控制部51向主机2发送针对在步骤s1中接收到的写入指令的响应(完成响应)(步骤s5)。[0273]在此,对基于来自主机2的写入指令来更新lut41及vdm42的情况进行了说明,但对于从该主机2发送了例如trim指令的情况,也同样需要更新lut41及vdm42。[0274]以下,参照图19的流程图,对从主机2发送了trim指令的情况下的存储系统3的处理顺序的一例进行说明。[0275]trim指令是用于在例如主机2所使用的文件系统中被删除了规定的文件的情况下使与该文件相当的数据无效化的指令。trim指令根据用于连接存储设备的接口标准,也被称为例如unmap指令等。另外,通过trim指令,被写入到非易失性存储器4中的数据不被擦除,该数据通过垃圾回收而被擦除。[0276]在从主机2发送了上述trim指令的情况下,通信接口控制部51接收该trim指令(步骤s11)。另外,在步骤s11中接收到的trim指令中包括用于访问应无效的数据的lba(的范围)。在以下的说明中,将trim指令中包括的lba称为对象lba。[0277]执行了步骤s11的处理后,地址变换部564从上位层级起依次参照lut41所包括的lut片段表,将对象lba变换为pba(步骤s12)。由此,地址变换部564取得与对象lba对应的pba。在以下的说明中,将由地址变换部564取得的pba称为对象pba。[0278]接着,管理部565以管理被存储于对象pba的数据(即,与对象lba对应的数据)是无效的这一情况的方式更新vdm42(步骤s13)。另外,基于trim指令的vdm42的更新处理除了以管理数据是无效的这一情况的方式更新vdm42这一点以外,与图18所示的步骤s3所示的处理是同样的,因此在此省略其详细的说明。[0279]另外,如果对象pba是比较宽的范围的连续的pba,且通过变更与最下位的层级以外的层级对应的vdm片段表所包括的条目能够管理被写入到对象pba的数据是无效的这一情况,则将与该最下位的层级以外的层级对应的vdm片段表所包括的条目中的、被分配了对象pba的条目中存储的幻数被变更为“0x00”。[0280]另外,在对与最下位的层级对应的vdm片段表所包括的至少1个条目分配的连续的pba的整个范围是对象pba的情况下,该条目中存储的幻数被变更为“0x00”。[0281]进而,管理部565以使对象lba与对象pba(存储有应无效的数据的pba)的对应关系无效化的方式更新lut41(步骤s14)。在lut41中使lba与pba的对应关系无效化的情况下,例如对被分配了该lba的lut片段表所包括的条目(pba存储部41a)设定幻数。另外,基于trim指令的lut41的更新处理除了使lba与pba的对应关系无效化这一点以外,与上述图18所示的步骤s4相同,因此在此省略其详细说明。[0282]在如上述那样更新了lut41以及vdm42的情况下,管理部565经由通信接口控制部51向主机2发送针对trim指令的响应(完成响应)(步骤s15)。[0283]在图19所示的例子中,设为在lut41以及vdm42被更新之后向主机2发送完成响应而进行了说明,但也可以采用例如vdm42的更新在完成响应的发送后被执行(即,延迟执行)这样的结构。[0284]在此,上述的vdm42是为了高效地执行垃圾回收而必要的,但在执行该垃圾回收时,需要参照该vdm42来确认在非易失性存储器4内的各pba中写入的数据是有效还是无效。[0285]以下,参照图20的流程图,对确认在非易失性存储器4内的特定的pba(以下,表述为对象pba)中写入的数据是有效还是无效时的存储系统3的处理顺序的一例进行说明。[0286]首先,在本实施方式中,vdm42具有由多个层级构成的层级结构,在存储器55中保持有对与该多个层级中的最上位层级对应的vdm片段表进行表示的vdm指针(存储有该vdm片段表的pba)。另外,在与最上位层级对应的vdm片段表被存储在非易失性存储器4中的情况下,被存储在存储器55中的vdm指针是非易失性存储器4内的pba。另外,在与最上位的层级对应的vdm片段表被存储于高速缓冲存储器551的情况下,存储器55中保持的vdm指针是高速缓冲存储器551内的地址信息。[0287]在这种情况下,管理部565基于存储在存储器55中的vdm指针从非易失性存储器4或高速缓冲存储器551读出vdm片段表(步骤s21)。[0288]接着,管理部565参照在步骤s1中读出的vdm片段表(与最上位的层级对应的vdm片段表)所包括的多个条目中的、被分配了对象pba的条目中存储的幻数(以下,表述为对象幻数)(步骤s22)。[0289]另外,在步骤s21中读出的vdm片段表不是与最下位的层级对应的vdm片段表的情况下,作为在该vdm片段表所包括的条目中存储的幻数(管理数据md3),设定有上述的“0xff”、“0x00”、“0xfc”以及“0xfd”中的1个。[0290]管理部565判定这样参照的对象幻数是否为“0xff”或“0x00”(步骤s23)。[0291]在判定为对象幻数不是“0xff”及“0x00”的情况下(步骤s23的否),管理部565判定该对象幻数是否为“0xfc”或“0xfd”(步骤s24)。[0292]在判定为对象幻数为“0xfc”或“0xfd”的情况下(步骤s24的是),管理部565取得被附加了该对象幻数的vdm指针(步骤s25)。在执行了步骤s25的情况下,返回到步骤s21,并反复进行处理。[0293]在此,幻数“0xfc”表示如上述那样被附加了该幻数的vdm指针(pba)是非易失性存储器4内的pba。因此,在对象幻数为“0xfc”的情况下,在步骤s25之后执行的步骤s21中,基于在该步骤s24中取得的vdm指针,从非易失性存储器4读出与下一个层级(下位的层级)对应的vdm片段表。[0294]另一方面,幻数“0xfd”表示如上述那样被附加了该幻数的vdm指针(pba)是高速缓冲存储器551内的地址信息。因此,在对象幻数为“0xfd”的情况下,在步骤s25之后执行的步骤s21中,基于在该步骤s24中取得的vdm指针,从高速缓冲存储器551读出与下一个层级(下位的层级)对应的vdm片段表。[0295]在本实施方式中,通过这样反复进行步骤s21~s25的处理,能够依次参照与各层级对应的vdm片段表。[0296]另一方面,假定在步骤s23中判定为对象幻数为“0xff”或“0x00”的情况(步骤s23的是)。[0297]在此,幻数“0xff”表示在对存储有该幻数的条目分配的pba的整个范围内写入的全部数据是有效的。即,在对象幻数为“0xff”的情况下,能够掌握存储于对象pba的数据是有效的,因此图20所示的处理结束。[0298]另外,幻数“0x00”表示在对存储有该幻数的条目分配的pba的整个范围内写入的数据是无效的。即,在对象幻数为“0x00”的情况下,能够掌握存储于对象pba的数据是无效的,因此图20所示的处理结束。[0299]另外,在步骤s24中判定为对象幻数不是“0xfc”以及“0xfd”的情况下(步骤s24的否),在被分配了对象pba的条目中,未被设定幻数“0xff”、“0x00”、“0xfc”以及“0xfd”。在该情况下,可知在步骤s21中读出的vdm片段表是与最下位的层级对应的vdm片段表,在将该vdm片段表所包括对象pba包括在内的pba的范围内存储的数据的有效性不共通(即,有效的数据以及无效的数据混合存在)。在该情况下,管理部565取得在被分配了在步骤s21中读出的vdm片段表(与最下位的层级对应的vdm片段表)的对象pba的条目中存储的位映射(步骤s26)。管理部565能够基于构成步骤s26所取得的位映射的多个标志信息中的、对存储在对象pba中的数据的有效性进行表示的标志信息(即,与对象pba对应的标志信息),来掌握该数据是有效还是无效。[0300]如上所述,在本实施方式中,存储在非易失性存储器4中的vdm42(数据映射)具有由至少包括第一层级(最下位的层级)以及第二层级(比最下位的层级更上位的层级)在内的多个层级构成的层级结构,包括与该第一层级对应的多个第一vdm片段表以及与第二层级对应的第二vdm片段表。另外,在本实施方式中,多个第一vdm片段表的每一个对在对该第一vdm片段表分配的非易失性存储器4内的pba(物理地址)的范围内写入的规定尺寸(例如4kib)的数据各自的有效性进行管理。另外,在本实施方式中,第二vdm片段表按照每个第一vdm片段表,对表示该第一vdm片段表的vdm指针(用于参照该第一vdm片段表的参照目标信息)进行管理。[0301]在此,在如上述的本实施方式的比较例中说明的那样构成为vdm42'仅包括与单一的层级对应的多个vdm片段表t421'的情况下,需要事先将对该多个vdm片段表t421'的每一个进行表示的指针(存储有该vdm片段表t421'的pba)全部保持在存储器55中。与此相对,在本实施方式中,通过上述的结构,只要对与最上位的层级对应的vdm片段表进行表示的vdm指针被保持于存储器55即可,因此能够削减在该存储器55上持续占有一定的存储区域的数据(作为vdm42的管理信息,无限接近0),能够高效地管理被写入到非易失性存储器4的数据的有效性。[0302]另外,在本实施方式中,如上所述,通过削减存储器55(例如,表示dram)中存储的数据(表示vdm片段表的vdm指针),由此能够将lut41优先在存储器55上展开(高速缓存于高速缓冲存储器551),因此能够缩短针对来自主机2的指令的响应时间(i/o响应时间)。此外,在执行针对来自主机2的读出指令的处理的情况下,不需要更新vdm42,因此能够进一步缩短i/o响应时间。另外,也可以采用在执行针对上述trim指令的处理时将更新vdm42的处理延迟执行,但在这样的结构的情况下,也可以使对lut41以及vdm42分配的存储区域(即,存储器比例)动态地变更。[0303]进而,在本实施方式的比较例中,如上述那样在使存储系统3启动及结束时的内部处理(启动处理及结束处理)花费时间,但在本实施方式中,只要在启动处理时将对与最上位的层级对应的vdm片段表进行表示的vdm指针在存储器55中展开,并在结束处理时将该vdm指针进行非易失性即可,因此能够缩短内部处理所需的时间。[0304]另外,在本实施方式中,第二vdm片段表在被写入到对第一vdm片段表分配的pba的范围内的规定尺寸的数据各自的有效性不共通(即,作为写入到该pba的范围中的数据而混杂有有效的数据以及无效的数据)的情况下,管理表示与下位的层级对应的第一vdm片段表的vdm指针。另外,第二vdm片段表,在被写入到分配给第一vdm片段表的pba的范围内的规定尺寸的数据各自的有效性共通(即,写入到该pba的范围内的规定尺寸的数据全部有效或无效)的情况下,一并管理该数据的有效性。[0305]在本实施方式中,通过这样的结构,例如在对在连续的宽范围的pba中写入的数据的有效性进行更新的情况下,能够仅仅通过变更第二vdm片段表所包括的条目(幻数)来更新vdm42,因此能够简化用于管理数据的有效性的处理。具体而言,例如如果是能够存储数pib的数据那样的存储系统3(非易失性存储器4)的情况,则例如能够仅仅通过变更在与最上位的层级对应的vdm片段表所包括的1个条目中存储的幻数(8位)就能够一并操作(更新)数g个pba的范围。[0306]即,在本实施方式中,例如能够抑制将第一vdm片段表所包括的位映射单独地更新那样的位操作,能够削减处理成本。[0307]进而,在本实施方式中,根据层级而对vdm片段表分配的pba的范围(粒度)不同,因此能够灵活地更新vdm42。[0308]另外,例如在第二vdm片段表中,在一并管理在对第一vdm片段表分配的pba的范围内写入的规定尺寸的数据各自的有效性的情况下,能够废弃该第一vdm片段表,释放存储有该第一vdm片段表的存储区域。由此,在本实施方式中,能够削减为了存储vdm42所需的存储区域。[0309]进而,在本实施方式中,与第一层级对应的第一vdm片段表以及与第二层级对应的第二vdm片段表具有相同的数据结构。具体而言,第一vdm片段表在预先确定的数量(例如32个)的各条目中管理多个规定尺寸(4kib)的数据的有效性。另外,第二vdm片段表在预先确定的数量(例如32个)的各条目中管理对第一vdm片段数据的每一个进行表示的vdm指针。[0310]在本实施方式中,通过这样的结构,vdm42所具有的层级结构变得简单,能够削减参照该vdm42(各vdm片段表)时的计算成本。另外,例如,为了参照被分配了对象pba的vdm片段表,需要追溯多个层级,但能够不依赖于层级而使这样的情况下的处理均匀化(即,能够使用相同的软件代码),因此能够高效地参照vdm42。[0311]另外,本实施方式中的vdm42只要具有至少包括第一层级及第二层级的层级结构即可,但构成该vdm42所具有的层级结构的层级的数量也可以为3以上。此外,构成vdm42所具有的层级结构的层级的数量例如也可以基于非易失性存储器4的存储容量(pba的数量)等而适当变更。[0312]进而,在本实施方式中,与vdm42同样,lut41(地址变换表)也具有层级结构,但lut41所包括的多个lut片段表分别具有与vdm42所包括的vdm片段表相同的数据结构。[0313]根据这样的结构,即使在为了参照lut41而追溯多个层级的情况下,也能够使用与vdm42相同的软件代码,因此能够实现高效的处理。另外,例如在高速缓冲存储器551上被更新的lut41(lut片段表)以及vdm42(vdm片段表)需要回写到非易失性存储器4(即,不进行非易失性),但由于该lut片段表及vdm片段表以成为相同尺寸的方式构成,因此能够在不区别该lut片段表及vdm片段表的情况下一并进行非易失性化。由此,lut片段表以及vdm片段表向非易失性存储器4的写入效率提高,能够降低非易失性成本。[0314]另外,在本实施方式中,与最下位的层级对应的lut片段表的pba管理数少于与该层级对应的vdm片段表的pba管理数,因此构成vdm42所具有的层级结构的层级的数量(第一数量)比构成lut41所具有的层级结构的层级的数量(第二数量)少。[0315]另外,在本实施方式中,以满足上述的条件式(m=y×n^x)的方式决定在vdm片段表的条目数n以及与最下位的层级对应的vdm片段表的1个条目中被管理有效性的规定尺寸的数据(即,在该条目中管理的pba)的数量m,构成为lut片段表和vdm片段表成为相同的数据结构。[0316]在本实施方式中,通过这样的结构,能够仅仅通过变更与上位的层级对应的lut片段表所包括的条目(pba)来更新lut41,并且能够在不变更位映射(进行位操作)的情况下仅仅通过变更vdm片段表所包括的条目(幻数)来更新vdm42。因此,在本实施方式中,能够兼顾lut41中的lba以及pba的对应关系的高效的管理和vdm42中的数据的有效性的高效的管理。[0317]另外,为了实现lut41及vdm42中的更高效的管理,既可以采用如上述的图14中说明的n=8,m=64那样满足条件式m=n^x(即,m为n的幂)这样的n及m,也可以采用如图8中说明的n=32,、,m=32和及图13中说明的n=64,m=64那样满足条件式m=n(即,m与n相等)这样的n及m。另外,n及m(的值)也可以构成为通过存储系统3的管理者等适当设定或者变更。[0318]这里,例如,c语言中的指针尺寸与运算位宽度相同。在该情况下,例如若设为m小于运算位宽度,则无法将指针(高速缓冲存储器551内的地址信息)原样存储在片段表的条目中。对此,考虑将指针分割而存储等,但处理成本高。[0319]另一方面,如果m比运算位宽度大,则能够将指针原样存储在片段表的条目中,但由于存在未使用位,所以不是高效的(高速缓存被浪费地使用)。进而,在该情况下,由于片段表的尺寸变大,因此非易失性化成本增加。对此,例如考虑执行在使片段表非易失性化之前去除不需要的部分的处理等,但处理成本高。[0320]因此,在本实施方式中,例如也可以以与存储系统3中的运算位宽度(32位或64位)对应(例如一致)的方式决定m。根据这样的结构,能够在不对与运算位宽度及尺寸相同的指针(高速缓冲存储器551内的地址信息)进行加工的情况下将其存储于片段表的条目,因此能够高效地管理lut41以及vdm42。另外,根据这样的结构,不需要不必要地增大片段表的尺寸。[0321]此外,在本实施方式中,设为存储系统3中包括的控制器5作为被构成为执行非易失性存储器4(nand型闪速存储器)的数据管理及区块管理的闪存变换层(ftl)发挥功能而进行了说明,但作为该ftl的功能也可以具有与存储系统3连接的主机2侧。在这样的构成的情况下,在本实施方式中说明的lut41及vdm42由主机2管理,在主机2侧执行该lut41及vdm42的更新处理等。另外,在这样的构成的情况下,存在从lba向pba的地址变换也在主机2侧执行的情况,在该情况下的来自主机2的指令(例如,读出指令)中也可以包括pba。[0322]接着,对具有如以上那样的结构的vdm42、即数据映射的本实施方式的存储系统3为了降低该数据映射的处理成本而进行的控制进行说明。[0323]如上所述,非易失性存储器4的存储单元阵列包括多个区块,该区块分别由多个页面编成。在存储系统3(ssd)中,各个区块作为数据的擦除单位而发挥功能。另外,各个页面是数据写入动作以及数据读入动作的单位。区块的尺寸例如是第二vdm片段表t422的管理数据md3能够一并管理有效性的数据的尺寸(在此,为4kib×32×32=4mib)的整数倍。[0324]在此,关于循环地利用多个区块的每一个的方式,首先,参照图21,将一般的方式作为一个比较例进行说明。另外,在此,使用本实施方式的存储系统3的结构(写入控制部561、垃圾回收控制部563),对该一个比较例进行说明。[0325]多个区块大致被被分类为属于空闲区块组a1的区块(空闲区块a11)和属于分配完毕区块组a2的区块(写入中区块a21、写入完毕区块a22)。[0326]空闲区块a11是未被进行数据写入的区块。写入控制部561接受空闲区块a11的供给,将来自主机2的写入指令请求向非易失性存储器4写入的写入数据写入。写入数据被写入后,该区块从空闲区块a11转移到写入中区块a21。即,写入中区块a21是写入控制部561作为数据的写入目标的区块。[0327]写入控制部561在写入中区块a21内存在空闲页面期间,对该写入中区块a21执行写入数据的写入。写入数据被写入到写入中区块a21内的全部页面时,该区块从写入中区块a21向写入完毕区块a22转移。即,写入完毕区块a22是基于写入控制部561的数据的写入已完成的区块。写入控制部561在完成了向某写入中区块21的数据的写入时,新接受空闲区块a11的供给,并执行写入数据的写入。[0328]若上述的工序前进,则空闲区块a11的数量减少,另一方面,写入完毕的区块a22的数量增加。另外,在无法进行数据的覆盖的ssd中,将某个页面中存储的更新前的数据无效化,并将更新后的数据写入到另一个页面,由此执行数据的更新。因此,在某个写入完毕区块a22中,可能产生无效的数据占据大半的状况。[0329]垃圾回收控制部563使存在较多无效数据的n个写入完毕区块a22内的有效数据移动至m(m<n)个区块,形成n-m个空闲区块a11。即,通过垃圾回收控制部563的垃圾回收(gc),一部分写入完毕区块a22向空闲区块a11转移。[0330]这样,多个区块的每一个循环地被利用为空闲区块a11→写入中区块a21→写入完毕区块a22→空闲区块a11。[0331]在此,参照图22,确认本实施方式的存储系统3所具有的数据映射(vdm42)的标志信息及各种管理数据(md2、md3)管理有效性的数据的尺寸。在图22中,符号b1表示第一vdm片段表t421的标志信息管理有效性的数据的尺寸。标志信息用1位表示被写入到1个pba的数据(在此,为4kib)的有效性。[0332]如上所述,第一vdm片段表t421例如具有32个条目。在各条目中例如包括32个标志信息。关于各条目中的该32个标志信息,针对被写入到32个pba的数据(4kib×32=128kib的数据),形成各位对4kib的数据的有效性进行表示的32位的位映射。[0333]符号b2表示第一vdm片段表t421的管理数据md2管理有效性的数据的尺寸。管理数据md2在第一vdm片段表t421的各条目中各设置有1个。管理数据md2能够设定将由32个标志信息形成的32位的位映射所示的128kib的数据的有效性一并表示的幻数。即,管理数据md2能够将128kib的数据的有效性一并表示。[0334]符号b3表示第二vdm片段表t422的管理数据md3管理有效性的数据的尺寸。管理数据md3相对于1个第一vdm片段表t421各设置有1个。管理数据md3可以设定将由第一vdm片段表t421的32个管理数据md2表示的128kib×32=4mib的数据的有效性(由32×32=1024个标志信息表示的1024个pba中写入的数据的有效性)一并表示的幻数。即,管理数据md3能够将4mib的数据的有效性一并表示。[0335]在具有包括上述标志信息以及管理数据(md2、md3)在内的数据映射(vdm42)的本实施方式的存储系统3中,在1个区块中写入的全部数据例如是管理数据md2能够一并管理有效性的数据的尺寸(128kib)的整数倍的情况下,标志信息的操作(位操作)变得不需要。另外,例如,在为管理数据md3能够一并管理有效性的数据的尺寸(4mib)的整数倍的情况下,管理数据md2的操作进而变得不需要。[0336]换言之,在为比管理数据md2能够一并管理有效性的数据的尺寸(128kib)小的尺寸的数据、该尺寸的整数倍+小于该尺寸的尺寸的数据(包括小于该尺寸的尾数的数据)的情况下,需要标志信息的操作。因此,主机2的写入数据优选与管理数据md2能够一并管理有效性的数据的尺寸(128kib)的整数倍一致,或者,与管理数据md3能够一并管理有效性的数据的尺寸(4mib)的整数倍一致。[0337]但是,主机2例如关于操作系统(os)为了管理文件、目录等而使用的文件系统,针对存储系统3,以高频率产生例如小于4kib这样的极小尺寸的数据访问。另外,主机2例如能够根据在os的控制下动作的应用程序的处理,使针对存储系统3的数据访问的单位变动。[0338]假定写入控制部561接受空闲区块a11的供给后,首先写入比管理数据md2能够一并管理有效性的数据的尺寸(128kib)小的尺寸的数据。在该情况下,接下来,即使被发送了管理数据md2能够一并管理有效性的数据的尺寸(128kib)的整数倍的数据作为写入数据,对于在紧前面的数据之后向(从上述空闲区块a11转移后的)写入中区块a21写入的该写入数据,以后,对于该一部分(前后的尾数部),也需要进行标志信息的操作。[0339]基于这一点,接下来,参照图23,对本实施方式的存储系统3中的区块的一个利用方式例进行说明。[0340]在本实施方式的存储系统3中,写入控制部561也向空闲区块a11写入写入数据。与前述的一个比较例的不同之处在于,本实施方式中的写入控制部561根据写入数据的尺寸来确保多种作为数据的写入目标的写入中区块a21(例如,第一区块a21-1,第二区块a21-2,第三区块a21-3)。更详细而言,写入控制部561控制数据的写入,以使得比管理数据md2能够一并管理有效性的数据的尺寸(128kib)小的尺寸的数据或者该尺寸的整数倍+小于该尺寸的尺寸的数据、与该尺寸的整数倍的尺寸的数据(包括小于该尺寸的尾数的数据)不会混合存在于1个区块中。换言之,写入控制部561将标志信息的操作为必要的数据汇集到同一种类的区块。[0341]此外,如在前述的一个比较例中也说明的那样,多个区块的每一个循环地被利用为空闲区块a11→写入中区块a21→写入完毕区块a22→空闲区块a11。因此,例如,在作为第一区块a21-1而被用于写入的区块转移为写入完毕区块a22→空闲区块a11的情况下,即使下次不限于的第一区块a21-1而设为第一区块a21-1、第二区块a21-2或第三区块a21-3中的某一个,也能够对写入控制部561供给。即,各区块并不是预先与第一区块a21-1、第二区块a21-2或第三区块a21-3中的某一个建立关联。[0342]或者,各区块例如也可以在从属于空闲区块组a1的状态向属于分配完毕区块组a2的状态转移的定时,每次决定编成该区块的多个页面。即,也可以适当地进行编织多个区块的每一个区块的多个页面的重组。[0343]图24是用于说明本实施方式中的基于写入控制部561的写入目标区块的一选择例的图。[0344]首先,写入控制部561判定主机2的写入数据的尺寸是否为管理数据md2能够一并管理有效性的数据的尺寸(128kib)的整数倍。在不是128kib的整数倍的情况下,写入控制部561在该时刻,选择第二区块a21-2作为该写入数据的写入目标。即,第二区块a21-2是将标志信息的操作成为必要的数据汇集的区块。[0345]在是128kib的整数倍的情况下,写入控制部561接着判定主机2的写入数据的尺寸是否为管理数据md3能够一并管理有效性的数据的尺寸(4mib)的整数倍。另外,在此,假定数据映射(vdm42)具有包括第一vdm片段表t421(第一层级[最下位层])和第二vdm片段表t422(第二层级[第一层级的上位层])的层级结构,但在例如仅为第一vdm片段表t421这样的不具有层级结构的情况下,写入控制部561也可以在判定为主机2的写入数据的尺寸为128kib的整数倍的时刻,选择第一区块a21-1作为该写入数据的写入目标。[0346]在不是4mib的整数倍的情况下,写入控制部561选择第一区块a21-1作为该写入数据的写入目标。第一区块a21-1不需要标志信息的操作,但是为管理数据md2的操作成为必要的数据用的区块。另一方面,在是4mib的整数倍的情况下,写入控制部561选择第三区块a21-3作为该写入数据的写入目标。第三区块a21-3不需要标志信息及管理数据md2的操作,是仅操作管理数据md3即可的数据用的区块。[0347]写入控制部561例如在向第一区块a21-1写入数据时,在该区块装满的情况下,即使在第二区块a21-2或第三区块a21-3中存在空闲,也不会将它们选择为数据的写入目标,而是新接受空闲区块a11的供给而设为第一区块a21-1,执行剩余的数据的写入。[0348]这样,通过根据主机2的写入数据的尺寸来切换写入目标的区块,由此在本实施方式的存储系统3中,对于第二区块a21-2以外的第一区块a21-1及第三区块a21-3,在数据的写入时及数据的更新时(更新前数据的无效化时),能够使标志信息的操作(位操作)为不需要。关于第三区块a21-3,进一步能够使管理数据md2的操作为不需要。[0349]另外,在垃圾回收(gc)中,对于从作为写入中区块a21之一的第一区块a21-1转移到写入完毕区块a22的区块,在使该区块内的有效的数据移动时,标志信息的参照(位扫描)变得不需要。对于从第三区块a21-3转移到写入完毕区块a22的区块,进一步管理数据md2的参照也变得不需要。不仅仅是移动源的区块,在移动目标的区块中,标志信息的操作也是不需要的,通过管理数据md2以及管理数据md3或者仅管理数据md3的操作即可。[0350]进而,在垃圾回收(gc)中,在从第一区块a21-1或第三区块a21-3转移到写入完毕区块a22的区块被选择为对象的情况下,也能够期待开销削减的效果。例如,在页面尺寸为16kib时,若仅16kib中的4kib有效,则发生“16kib读出,4kib写入”这样的12kib的无用的读出。在从第一区块a21-1或第三区块a21-3转移到写入完毕区块a22的区块中,可能仅存在128kib单位或4mib单位的大的数据,因此不会产生这样的浪费。并且,能够以多页面的汇总的尺寸来执行有效的数据的读出、向移动目标的该有效的数据的写入。[0351]另外,在数据映射(vdm42)具有层级结构的情况下,通过基于写入数据的尺寸的写入目标区块的切换,地址连续性得以保证,从而例如也能够提高表压缩的压缩率,削减为了该数据映射用而在存储器55上确保的存储容量。也能够将该存储容量的削减量使用于存储系统3的性能改善,或者也能够减小存储器55自身的容量。[0352]图25是表示参照图18说明的、本实施方式的存储系统3的数据写入动作中包括的、与数据尺寸对应的写入目标区块的选择顺序的一例的流程图。该步骤是在图18的步骤s2中写入控制部561执行的步骤。[0353]写入控制部561判定数据的尺寸是否为(管理数据md2能够一并管理有效性的)128kib的整数倍(步骤s31)。在不是128kib的整数倍的情况下(步骤s31的否),写入控制部561选择第二区块a21-2作为数据的写入目标(步骤s32)。[0354]在是128kib的整数倍的情况下(步骤s31的是),写入控制部561接着判定数据的尺寸是否为(管理数据md3能够一并管理有效性的)4mib的整数倍(步骤s33)。在是4mib的整数倍的情况下(步骤s33的是),写入控制部561选择第三区块a21-3作为数据的写入目标(步骤s34)。另一方面,在不是4mib的整数倍的情况下(步骤s33的否),写入控制部561选择第一区块a21-1作为数据的写入目标(步骤s35)。[0355]如上所述,本实施方式的存储系统3通过根据数据的尺寸来切换写入目标的区块,从而能够降低数据映射(vdm42)的处理成本。[0356]另外,也可以是,如上所述,主机2具有作为ftl的功能,通过主机2管理lut41及vdm42,在主机2侧执行该lut41及vdm42的更新处理等。在该情况下,用于降低数据映射的处理成本的写入目标区块的选择也可以在主机2侧执行。另外,在该情况下,在与最下位层的层级对应的第一vdm片段表t421所包括的1个条目中被管理有效性的数据(存储该数据的pba)的数量即m,也可以以与主机2中的运算位宽度对应的方式决定。[0357]对本发明的几个实施方式进行了说明,但这些实施方式是作为例子而提示的,并不意图限定发明的范围。这些新的实施方式能够以其他各种方式实施,在不脱离发明的主旨的范围内,能够进行各种省略、置换、变更。这些实施方式及其变形包括在发明的范围或主旨内,并且包括在权利要求书所记载的发明及其等同的范围内。当前第1页12当前第1页12
技术特征:
1.一种存储系统,能够与主机连接,具备:包括多个区块的非易失性存储器;以及控制器,根据来自主机的指令,控制向所述非易失性存储器的数据的写入或从所述非易失性存储器的数据的读出,所述控制器使用数据映射对被写入到所述非易失性存储器中的数据的有效性进行管理,所述数据映射包括多个第一片段表,所述多个第一片段表各自保持第一信息和第二信息,该第一信息表示规定尺寸的数据各自的有效性,该规定尺寸的数据是被写入到对该第一片段表分配的所述非易失性存储器内的物理地址的范围的数据,该第二信息在预先确定的数量的各条目中表示多个规定尺寸的数据的有效性,所述控制器根据写入数据的尺寸,选择写入目标的区块,该写入数据的尺寸是来自所述主机的写入指令请求向所述非易失性存储器写入的写入数据的尺寸。2.根据权利要求1所述的存储系统,其中,所述控制器,在所述写入数据的尺寸是有效性由所述第二信息来表示的数据总量的整数倍的情况下,选择第一区块作为所述写入目标的区块,在不是整数倍的情况下,选择第二区块作为所述写入目标的区块。3.根据权利要求2所述的存储系统,其中,在所述多个第一片段表各自的所述预先确定的数量的各条目中,形成位映射,该位映射是排列了对有效性由所述第二信息来表示的所述多个规定尺寸的数据各自的有效性进行表示的所述第一信息而成的位映射,所述位映射的尺寸对应于所述控制器中的运算位宽度。4.根据权利要求1至3中任一项所述的存储系统,其中,所述数据映射具有至少由所述多个第一片段表所对应的第一层级以及比所述第一层级上位的第二层级构成的层级结构,还包括与所述第二层级对应的第二片段表,所述第二片段表针对每个所述第一片段表而保持第三信息和第四信息,该第三信息是用于参照该第一片段表的信息,该第四信息是在被写入到对该第一片段表分配的物理地址的范围内的所述规定尺寸的数据各自的有效性共通的情况下将该规定尺寸的数据的有效性一并表示的信息,所述控制器在所述写入数据的尺寸是有效性由所述第四信息来一并表示的数据总量的整数倍的情况下,选择第三区块作为所述写入目标的区块。5.一种信息处理系统,具备主机和能够与所述主机通信地连接的存储系统,所述存储系统具有包括多个区块的非易失性存储器,所述主机使用数据映射对被写入到所述非易失性存储器中的数据的有效性进行管理,所述数据映射包括多个第一片段表,所述多个第一片段表各自保持第一信息和第二信息,该第一信息表示规定尺寸的数据各自的有效性,该规定尺寸的数据是被写入到对该第一片段表分配的所述非易失性存储器内的物理地址的范围的数据,该第二信息在预先确定的数量的各条目中表示多个规定尺寸的数据的有效性,
所述主机根据写入数据的尺寸,选择写入目标的区块,该写入数据的尺寸是针对所述存储系统请求向所述非易失性存储器写入的写入数据的尺寸。6.根据权利要求5所述的信息处理系统,其中,所述主机,在所述写入数据的尺寸是有效性由所述第二信息来表示的数据总量的整数倍的情况下,选择第一区块作为所述写入目标的区块,在不是整数倍的情况下,选择第二区块作为所述写入目标的区块。7.根据权利要求6所述的信息处理系统,其中,在所述多个第一片段表各自的所述预先确定的数量的各条目中,形成位映射,该位映射是排列了对有效性由所述第二信息来表示的所述多个规定尺寸的数据各自的有效性进行表示的所述第一信息而成的位映射,所述位映射的尺寸对应于所述主机中的运算位宽度。8.根据权利要求5至7中任一项所述的信息处理系统,其中,所述数据映射具有至少由所述多个第一片段表所对应的第一层级以及比所述第一层级上位的第二层级构成的层级结构,还包括与所述第二层级对应的第二片段表,所述第二片段表针对每个所述第一片段表而保持第三信息和第四信息,该第三信息是用于参照该第一片段表的信息,该第四信息是在被写入到对该第一片段表分配的物理地址的范围内的所述规定尺寸的数据各自的有效性共通的情况下将该规定尺寸的数据的有效性一并表示的信息,所述主机在所述写入数据的尺寸是有效性由所述第四信息来一并表示的数据总量的整数倍的情况下,选择第三区块作为所述写入目标的区块。
技术总结
本发明的一个实施方式提供能够降低管理被写入到非易失性存储器中的数据的有效性的数据映射的处理成本的存储系统以及信息处理系统。根据一个实施方式,存储系统具备非易失性存储器和控制器。控制器根据来自主机的指令来控制非易失性存储器。控制器使用数据映射来管理非易失性存储器上的数据的有效性。数据映射包括多个第一片段表。多个第一片段表各自保持第一信息和第二信息,该第一信息表示规定尺寸的数据各自的有效性,该规定尺寸的数据是被写入到对该第一片段表分配的非易失性存储器内的物理地址的范围的数据,该第二信息在预先确定的数量的各条目中表示多个规定尺寸的数据的有效性。据的有效性。据的有效性。
