掌桥专利:专业的专利平台
掌桥专利
首页

存储系统以及控制方法

文献发布时间:2023-06-19 16:11:11



本申请享受以日本特许申请2021-11137号(申请日:2021年1月27日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。

技术领域

本发明的实施方式涉及具备非易失性存储器的存储系统以及对非易失性存储器进行控制的方法。

背景技术

近年来,具备非易失性存储器的存储系统取得了广泛的普及。作为这样的存储系统之一,已知具备NAND型闪速存储器的固态硬盘驱动器(SSD)。

如能够进行高速的数据输入输出的SSD那样的储存设备由于其高性能,也被有效利用为交换区域。交换区域是被使用于使通过在主机中执行的操作系统的交换功能从主机的存储器换出(swapout)的数据暂时性地进行退避的存储区域。在SSD中执行如下处理:用于以非易失的方式存储从主机的存储器换出到了SSD的数据。由此,该被换出了的数据能跨SSD的电源循环地被保存在SSD内。

然而,对交换区域要求的是与设置于主机的易失性的存储器同样地仅在主机的电源为接通的期间保持所存储的数据。因此,跨SSD的电源循环地将从主机的存储器换出的数据保持在SSD内会成为在SSD内持续保持已经不被主机使用的数据。由此,可能引起SSD内的非易失性存储器的不必要的消耗。

因此,要求实现能够减少非易失性存储器的消耗的新技术。

发明内容

本发明的一个实施方式要解决的课题在于提供能够减少非易失性存储器的消耗的存储系统以及控制方法。

根据实施方式,能够与主机连接的存储系统具备非易失性存储器和与非易失性存储器电连接的控制器。控制器根据从主机接收到指定第1属性的第1命名空间制作命令这一状况,制作包括第1逻辑地址范围并具有第1属性的第1命名空间。控制器在第1期间将第1逻辑地址范围所包括的各个逻辑地址设为未映射非易失性存储器的物理地址的未分配状态,该第1期间是从主机接收到电源断开预告通知或者检测到存储系统的不正常电源断开到再次向存储系统供给电力而控制器成为能够对来自主机的命令进行处理的就绪状态为止的期间,该电源断开预告通知是对向存储系统的电力供给被断开这一状况进行预告的通知。

附图说明

图1是表示包括实施方式涉及的存储系统的信息处理系统的结构例的框图。

图2是表示实施方式涉及的存储系统内的NAND型闪速存储器的结构例的图。

图3是表示在实施方式涉及的存储系统中进行管理的逻辑物理地址变换表的结构例的图。

图4是用于对在实施方式涉及的存储系统中进行管理的多个命名空间进行说明的图。

图5是表示在实施方式涉及的存储系统中进行管理的命名空间管理表的图。

图6是表示在实施方式涉及的存储系统中进行管理的块管理表的图。

图7是表示在实施方式涉及的存储系统中进行管理的块使用顺序管理表的图。

图8是用于对在实施方式涉及的存储系统所包括的NAND型闪速存储器中所写入的数据进行说明的图。

图9A是用于对在实施方式涉及的存储系统中执行的、逻辑物理地址变换表的复原准备处理进行说明的第一个图。

图9B是用于对在实施方式涉及的存储系统中执行的、逻辑物理地址变换表的复原准备处理进行说明的第二个图。

图10是用于对在实施方式涉及的存储系统中执行的、制作具有清除(clear)属性的命名空间的动作和用于省略与具有清除属性的命名空间关联的逻辑物理地址变换表的复原准备处理的动作进行说明的图。

图11是用于对在实施方式涉及的存储系统中执行的清除处理进行说明的图。

图12是用于对在实施方式涉及的存储系统中执行的、将与具有清除属性的命名空间关联了的逻辑物理地址变换表设定为初始状态或者废弃的动作进行说明的图。

图13是用于对在实施方式涉及的存储系统中执行的、将之前与具有清除属性的命名空间关联的块分别作为空闲块来进行管理的动作进行说明的图。

图14是用于对在主机中执行的、对具有清除属性的命名空间进行再格式化的处理进行说明的图。

图15是表示在实施方式涉及的存储系统中执行的命名空间制作处理的步骤的流程图。

图16是表示在实施方式涉及的存储系统中执行的复原准备处理的步骤的流程图。

图17是表示在从自主机接收到电源断开预告通知起到再次向存储系统供给电力而存储系统的控制器成为就绪状态为止的期间、在实施方式涉及的存储系统中执行的处理的步骤的流程图。

图18是表示在从检测到不正常电源断开到再次向存储系统供给电力而存储系统的控制器成为就绪状态为止的期间、在实施方式涉及的存储系统中执行的处理的步骤的流程图。

图19是表示在实施方式涉及的存储系统中执行的关闭(shutdown)准备处理的步骤的流程图。

图20是表示在实施方式涉及的存储系统中执行的暂停(suspend)准备处理的步骤的流程图。

图21是表示在实施方式涉及的存储系统中执行的清除处理的步骤的流程图。

图22是表示在再次向存储系统供给了电力之后、在实施方式涉及的存储系统和主机中执行的处理的步骤的流程图。

标号说明

1信息处理系统、2主机、3SSD、4控制器、5NAND型闪速存储器、6DRAM、7电源电路、10总线、11主机接口、12CPU、13NAND接口、14DRAM接口、15DMAC、16SRAM、17ECC编码/解码部、21命名空间管理命令处理部、22I/O命令处理部、23清除处理部、24复原处理部、31-1~31-nL2P表、32命名空间管理表、33块管理表、34块使用顺序管理表。

具体实施方式

以下,参照附图对实施方式进行说明。

图1是表示包括实施方式涉及的存储系统的信息处理系统1的结构例的框图。信息处理系统1包括主机(主机设备)2和SSD3。

存储系统是构成为向非易失性存储器写入数据、从非易失性存储器读出数据的半导体储存设备。存储系统例如可以作为包括NAND型闪速存储器5的SSD3来实现。

SSD3也可以经由电缆或者网络而连接于主机2。或者,SSD3也可以内置于主机2。作为用于将主机2与SSD3连接的逻辑接口的标准,可以使用NVM Express

主机2是构成为对SSD3进行控制的信息处理装置。主机2的例子包括个人计算机、服务器计算机、便携终端、车载设备。

主机2包括处理器101和存储器102。处理器101是构成为对主机2内的各组件的动作进行控制的CPU(Central Processing Unit,中央处理单元)。处理器101执行从与主机2连接的其他储存设备或者SSD3加载到存储器102的软件(主机软件)。主机软件包括操作系统(OS)1011。在操作系统1011之外,主机软件还包括文件系统、设备驱动以及应用程序等。

存储器102是设置于主机2的主存储器。存储器102例如由如DRAM(Dynamic RandomAccess Memory,动态随机访问存储器)那样的随机访问存储器来实现。DRAM是当电源的供给被断开时、所存储的数据会丢失的易失性存储器。

操作系统1011对包括处理器101、存储器102以及SSD3的信息处理系统1整体的资源进行管理。另外,操作系统1011进行在主机2上工作的应用程序(以下简称为“程序”)的管理。

在图1的例子中,操作系统1011包括处理(process)管理部1111和存储器管理部1112。处理管理部1111对在主机2中执行的各处理的生成、各处理的执行、各处理的结束进行管理。存储器管理部1112基于来自处理管理部1111的存储器分配要求,执行将存储器102内的一部分存储区域分配给特定处理的处理。

在开始执行某程序时,操作系统1011内的处理管理部1111生成该程序用的处理。并且,处理管理部1111对存储器管理部1112要求对于该生成的处理的存储器分配。接受到存储器分配的要求的存储器管理部1112将存储器102内的一部分存储区域分配给该处理。处理管理部1111从SSD3或者信息处理系统1内的其他储存设备读出该程序,将该程序加载到该所分配的存储区域。

在此,对被分配给某处理的存储区域的内容在换出或者换入(swapin)的定时被写入到SSD3或者被从SSD3读出进行说明。

从处理管理部1111接受到了存储器分配要求的存储器管理部1112有时为了确保用于分配给该处理的存储区域,使保存于被分配给其他处理的存储区域的数据退避到SSD3。该退避处理被称为换出。从存储器102换出到了SSD3的数据被写入到SSD3内的非易失性存储器。在处理器101上再次执行暂时换出的处理时,进行从SSD3读出进行了换出的数据、并使之恢复到存储器102内的存储区域的处理。该恢复处理被称为换入。

在此,存储器102与SSD3之间的换出和换入仅在主机2的电源为接通(on)时进行。在由于操作系统1011被关闭而主机2的电源成为了断开(off)之后,也即是在从主机2向SSD3的电力的供给被断开之后,通过换出而被写入到SSD3的数据成为已经不被主机2使用的数据。

与通过换出而被写入到SSD3的数据同样地,例如被写入到被称为“Tmp文件夹”(或者“/Tmp目录”)的文件夹的文件也在由于操作系统1011的关闭而主机2的电源成为了断开之后、也即是向SSD3的电力的供给被断开之后,成为不被主机2使用的数据。

接着,对SSD3的构成进行说明。SSD3包括控制器4、非易失性存储器(例如NAND型闪速存储器5)、随机访问存储器(例如DRAM6)以及电源电路7。

控制器4对基于从主机2接收到的命令将数据写入到NAND型闪速存储器5的数据写入动作和基于从主机2接收到的命令从NAND型闪速存储器5进行读出对象数据的读出的数据读出动作进行控制。

控制器4也可以由如片上系统(System-on-a-chip(SoC))那样的电路来实现。控制器4的各功能可以由专用硬件电路、执行程序(固件)的处理器或者这些的组合中的任一方来实现。

控制器4不限定于此,但经由遵循Toggle NAND闪速接口或者Open NAND闪速接口(ONFI)的NAND接口13而与NAND型闪速存储器5电连接。控制器4作为存储器控制器来进行动作,该存储器控制器构成为对NAND型闪速存储器5进行控制。

控制器4可以作为闪速转换层(Flash Translation Layer,FTL)发挥功能,该闪速转换层构成为执行NAND型闪速存储器5的数据管理和块管理。

由FTL执行的数据管理包括(1)对各个逻辑地址与NAND型闪速存储器5的各个物理地址之间的对应关系进行表示的地址变换数据(映射信息)的管理、(2)用于隐藏NAND型闪速存储器5的制约(例如页单位的读/写动作和块单位的擦除动作)的处理等。与某逻辑地址对应的物理地址表示写入了与该逻辑地址对应的数据的NAND型闪速存储器5内的物理上的存储位置。控制器4使用逻辑物理地址变换表(logical-to-physical addresstranslation table:L2P表),对各个逻辑地址与各个物理地址之间的映射进行管理。作为逻辑地址,可以使用逻辑块地址(LBA)。

在本实施方式中,控制器4构成为:使用分别与多个命名空间对应的多个L2P表(例如L2P表31-1~31-n),按命名空间对与该命名空间对应的各个逻辑地址与NAND型闪速存储器5的各个物理地址之间的映射进行管理。

L2P表31-1~31-n各自的地址变换数据的一部分或者全部在根据向SSD3供给了电力这一状况而由控制器4执行的初始化处理的期间,被从NAND型闪速存储器5加载到DRAM5。

L2P表31-1~31-n各自不被限定,但也可以作为阶层L2P表来实现,该阶层L2P表包括与多个阶层等级对应的多个表。关于阶层L2P表的结构例,将参照图3来在后面进行描述。

NAND型闪速存储器5包括存储单元阵列,该存储单元阵列包括呈矩阵状配置的多个存储单元。NAND型闪速存储器5既可以是二维构造的闪速存储器,也可以是三维构造的闪速存储器。

如图2所示,NAND型闪速存储器5的存储单元阵列包括多个块BLK0~BLKx-1。块BLK0~BLKx-1分别包括多个页(在此为页P0~Py-1)。各页包括与同一字线连接的多个存储单元。块BLK0~BLKx-1分别是擦除数据的数据擦除动作的单位。页P0~Py-1分别是数据写入动作和数据读出动作的单位。

使说明返回到图1。NAND型闪速存储器5被使用于保存分别与多个命名空间NS#1~NS#n对应的多个L2P表31-1~31-n和分别与多个命名空间NS#1~NS#n对应的多个用户数据41-1、……、41-n。

DRAM6是易失性存储器。DRAM6的存储区域的一部分被使用于保存L2P表31-1~31-n、命名空间管理表32、块管理表33以及块使用顺序管理表34。对于命名空间管理表32、块管理表33以及块使用顺序管理表34的详细,将参照图5、图6以及图7来在后面进行描述。

电源电路7使用从主机2供给的电力、也即是电源电压Vcc,生成用于对控制器4进行驱动的电源电压、用于对NAND型闪速存储器5进行驱动的电源电压以及用于对DRAM6进行驱动的电源电压,将所生成的电源电压分别供给至控制器4、NAND型闪速存储器5以及DRAM6。

另外,电源电路7进行与控制器4的通信。在电源电压Vcc的电压值降低到了预定值以下的情况下,电源电路7对控制器4通知向SSD3的电力的供给被断开了这一状况(以下称为电源断开检测通知)。例如,在从主机2接收到对向SSD3的电力的供给被断开这一状况进行预告的通知(以下称为电源断开预告通知)之前,从电源电路7接收到电源断开检测通知的情况下,控制器4检测出发生了不正常电源断开。不正常电源断开意味着未对SSD3通知向SSD3的电力的供给不久就要被断开而向SSD3的电力的供给突然被断开的现象。

另外,电源电路7也可以具有如下的失电保护(PLP)功能:使得能够在从发生不正常电源断开起的预定期间的期间中,继续分别向控制器4、NAND型闪速存储器5以及DRAM6供给电源电压。在该情况下,电源电路7例如也可以与电容器71连接。在由于不正常电源断开而从主机2向电源电路7的电源电压Vcc的供给断开了时,电源电路7使用蓄积于电容器71的能量,在从发生不正常电源断开起的预定期间的期间,分别向控制器4、NAND型闪速存储器5以及DRAM6供给电源电压。

接着,对控制器4的详细构成进行说明。控制器4包括主机接口(主机I/F)11、CPU12、NAND接口(NAND I/F)13、DRAM接口(DRAM I/F)14、直接存储器访问控制器(DMAC)15、静态随机访问存储器(SRAM)16以及纠错码(ECC)编码/解码部17。这些主机接口11、CPU12、NAND接口13、DRAM接口14、DMAC15、SRAM16以及ECC编码/解码部17经由总线10相互连接。

主机接口11是构成为执行与主机2的通信的主机接口电路。主机接口电路11从主机2接收各种各样的要求或者通知。各种各样的要求或者通知的例子包括电源断开预告通知、命名空间制作要求(命名空间制作命令)、命名空间删除要求(命名空间删除命令)、写要求(写命令)、读要求(读命令)。

电源断开预告通知是如上所述那样对向SSD3的电力的供给被断开这一状况进行预告的通知。在主机2的电源成为断开之前,主机2向SSD3发送电源断开预告通知,对SSD3通知向SSD3的电力的供给不久就要被断开这一状况。

作为电源断开预告通知,例如可以使用由NVMe标准规定的ShutdownNotification、由SATA标准规定的STANDBY IMMEDIATE命令。

在从主机2接收到电源断开预告通知的情况下,控制器4进行关闭准备处理,该关闭准备处理包括将尚未写入到NAND型闪速存储器5的DRAM6的内容(例如被进行了更新的L2P表的内容)写入到NAND型闪速存储器5的处理。主机2在被从控制器4通知SSD3的关闭准备处理已完成这一状况之前,或者在从向SSD3发送电源断开预告通知起经过预定期间之前,不切断向SSD3的电力供给。

命名空间制作命令是对SSD3要求命名空间的制作的命令。命名空间删除命令是对SSD3要求特定的命名空间的删除的命令。

写命令是对SSD3要求向特定的命名空间写入数据(写数据)的命令。写命令指定应该写入写数据的命名空间的命名空间标识符、与写数据对应的开始LBA、写数据的大小(size,LBA的数量)以及对保存有写数据的存储器102内的位置进行表示的数据指针(缓存地址)等。

读命令是对SSD3要求读对象数据的读出的命令。读命令指定应该读出读对象数据的命名空间的命名空间标识符、与读对象数据对应的开始LBA、读对象数据的大小(LBA的数量)以及对应该被传送读对象数据的存储器102内的位置进行表示的数据指针(缓存地址)等。

NAND接口13是构成为在CPU12的控制下对NAND型闪速存储器5进行控制的NAND控制器。在NAND型闪速存储器5由多个NAND型闪速存储器芯片(NAND型闪速存储器裸片)构成的情况下,NAND接口13也可以经由多个通道(Ch)与这些NAND型闪速存储器芯片连接。

DRAM接口14是构成为在CPU12的控制下对DRAM6进行控制的DRAM控制器。

DMAC15在CPU12的控制下执行主机2的存储器102与SRAM16(或者DRAM6)之间的数据传送。

SRAM16是易失性存储器。SRAM16包括内部缓存161。内部缓存161也可以被作为用于暂时性地存储应该写入到NAND型闪速存储器5的写数据的写缓存来使用。

ECC编码/解码部17通过在应该对NAND型闪速存储器5写入写数据时对写数据进行编码,对该写数据附加ECC作为冗余码。在从NAND型闪速存储器5读出了数据时,ECC编码/解码部17使用附加于所读出的数据的ECC,进行该数据的纠错。

CPU12是构成为对主机接口11、NAND接口13、DRAM接口14、DMAC15、SRAM16以及ECC编码/解码部17进行控制的处理器。CPU12通过将保存于NAND型闪速存储器5或者未图示的ROM的控制程序(固件)加载到SRAM16(或者DRAM6),然后执行该固件,从而进行各种各样的处理。

CPU12能够作为命名空间管理命令处理部21、I/O命令处理部22、清除处理部23以及复原处理部24发挥功能。这些命名空间管理命令处理部21、I/O命令处理部22、清除处理部23以及复原处理部24各自的一部分或者全部也可以由控制器4内的专用的硬件来实现。

命名空间管理命令处理部21根据从主机2接收的命名空间制作命令来制作命名空间,对所制作的命名空间进行管理。命名空间管理命令处理部21能够制作以及管理多个命名空间。多个命名空间是相互独立的逻辑地址范围。多个命名空间被使用于使一个储存设备犹如是多个储存设备那样进行动作。多个命名空间是为了对SSD3进行访问而由主机2进行使用的。

另外,根据从主机2接收的命名空间删除命令,命名空间管理命令处理部21删除由该命名空间删除命令指定的命名空间。

在本实施方式中,命名空间管理命令处理部21构成为制作以及管理具有清除属性的命名空间。具有清除属性的命名空间是被允许了在向SSD3的电力的供给被断开了之后、使与该命名空间的逻辑地址范围关联了的数据无效化的命名空间。换言之,具有清除属性的命名空间是不需要跨SSD3的电源循环来保持被写入到了该命名空间的数据的命名空间。

从主机2向SSD3的电力的供给被断开、然后再次从主机2向SSD3供给电力的过程相当于SSD3的一次电源循环。

当向SSD3的电力的供给被暂且断开时,即使再次向SSD3供给电力,在向SSD3的电力的供给被断开之前由主机2写入到了具有清除属性的命名空间的数据也已经无法由主机2进行参照。被写入到了具有清除属性的命名空间的数据仅在向SSD3供给电力的期间、也即是仅在主机2的电源状态为能够执行主机软件的工作状态(电源接通状态)的期间被加以保持。

命名空间管理命令处理部21支持能够指定清除属性的新的命名空间制作命令。该新的命名空间制作命令包括指定应该制作的命名空间的属性是清除属性和非清除属性中的哪个属性的参数。该参数由主机2设定为表示清除属性的值和表示非清除属性的值中的某一个值。

在从主机2接收到指定清除属性的命名空间制作命令、也即是包括被设定为了表示清除属性的值的参数的命名空间制作命令的情况下,命名空间管理命令处理部21制作具有清除属性的命名空间,向主机2发送所制作的命名空间的命名空间标识符。并且,命名空间管理命令处理部21通过使用命名空间管理表32,将该所制作的命名空间的命名空间标识符与表示清除属性的属性信息相关联地进行管理。

主机2能够将具有清除属性的命名空间作为不需要跨SSD3的电源循环地进行保持的数据的写入目的地命名空间、例如交换区域来进行使用。

在从主机2接收到不指定清除属性的命名空间制作命令、也即是包括被设定为了表示非清除属性的值的参数的命名空间制作命令的情况下,命名空间管理命令处理部21制作具有非清除属性的命名空间。具有非清除属性的命名空间是需要跨SSD3的电源循环来保持与该命名空间的逻辑地址范围关联了的数据的命名空间。并且,命名空间管理命令处理部21通过使用命名空间管理表32,将该所制作的命名空间的命名空间标识符与表示非清除属性的属性信息相关联地进行管理。

主机2能够将具有非清除属性的命名空间作为需要跨SSD3的电源循环地进行保持的数据的写入目的地命名空间来进行使用。

I/O命令处理部22执行从主机2接收到的各种各样的I/O命令的处理。I/O命令包括写命令、读命令等。

在控制器4从主机2接收到指定某命名空间标识符的写命令的情况下,I/O命令处理部22执行将与所接收到的写命令关联了的数据写入到NAND型闪速存储器5的处理。在该情况下,I/O命令处理部22对根据由所接收到的写命令指定的命名空间标识符识别的特定的命名空间用的写入目的地块进行分配。接着,I/O命令处理部22将与所接收到的写命令关联了的数据写入到该写入目的地块。此外,在该特定的命名空间用的写入目的地块已经被进行了分配的情况下,不需要进行对写入目的地块重新进行分配的处理。并且,I/O命令处理部22对与该特定的命名空间关联了的L2P表进行更新,以使得对被写入了该数据的NAND型闪速存储器5内的物理存储位置进行表示的物理地址映射于与该数据对应的逻辑地址。与该特定的命名空间关联了的L2P表被用于对该特定的命名空间的逻辑地址范围所包括的各个逻辑地址与NAND型闪速存储器5内的各个物理地址之间的映射进行管理。

在控制器4从主机2接收到指定某命名空间标识符的读命令的情况下,I/O命令处理部22对与由该命名空间标识符指定的命名空间关联的L2P表进行参照,取得映射于由所接收到的读命令指定的读对象数据的LBA的物理地址。I/O命令处理部22从NAND型闪速存储器5读出在由所取得的物理地址表示的NAND型闪速存储器5内的物理存储位置所保存的数据。并且,I/O命令处理部22将所读出的数据作为读对象数据返回到主机2。

清除处理部23对具有清除属性的命名空间执行清除处理。清除处理在控制器4从主机2接收到电源断开预告通知或者检测到不正常电源断开起到再次向SSD3供给电力而控制器4成为能够对命令进行处理的就绪状态为止的期间中被加以执行。

清除处理是将具有清除属性的命名空间所包括的逻辑地址范围所包含的逻辑地址分别设为未映射物理地址的未分配状态的处理。通过该清除处理,与具有清除属性的命名空间所包括的逻辑地址范围关联的数据全部成为无效数据。因此,通过清除处理,具有清除属性的命名空间成为与尚未写入数据的刚制作之后的命名空间同样的状态。由此,与具有清除属性的命名空间关联的全部块成为不包含有效数据的空闲块。

因此,例如通过将具有清除属性的命名空间作为不需要跨SSD3的电源循环地进行保持的数据的保存目的地、例如交换区域来进行使用,能够防止NAND型闪速存储器5内的物理存储区域被不需要跨SSD3的电源循环地进行保持的数据无用地进行消耗。

清除处理部23例如可以在从再次向SSD3供给电力到控制器4成为就绪状态为止的期间执行清除处理。

或者,清除处理部23也可以根据控制器4从主机2接收到电源断开预告通知这一状况,或者根据控制器4检测到不正常电源断开这一状况,执行清除处理。在根据控制器4从主机2接收到电源断开预告通知这一状况、或者根据控制器4检测到不正常电源断开这一状况、清除处理部23执行清除处理的情形中,清除处理部23优选在完成了清除处理时,将表示清除处理已完成的信息作为清除处理的状态信息写入到NAND型闪速存储器5。由此,在再次向SSD3供给了电力之后,清除处理部23能够判定对于具有清除属性的命名空间的清除处理是否正常地完成。

在从再次向SSD3供给电力起到控制器4成为就绪状态为止的期间执行清除处理的情形中,清除处理部23不需要在控制器4从主机2接收到电源断开预告通知时或者控制器4检测到不正常电源断开时执行清除处理。由此,例如能够缩短从SSD3接收电源断开预告通知起到SSD3转变为能够安全地关闭的状态为止所需要的时间。进一步,也不需要执行将表示清除处理是否已完成的状态信息写入到NAND型闪速存储器5的处理,因此,与根据接收到电源断开预告通知这一状况或者检测到不正常电源断开这一状况来执行清除处理的情形相比,能够减少控制器4需要执行的处理的量。

清除处理部23为了将具有清除属性的命名空间(例如命名空间NS#1)所包括的各逻辑地址设为未分配状态,可以将与具有清除属性的命名空间NS#1对应的L2P表31-1设定为初始状态。L2P表31-1为初始状态是指用于表示未分配状态的特定的值(例如初始值)被作为地址变换数据保存于L2P表31-1的状态。

或者,清除处理部23也可以代替将与具有清除属性的命名空间NS#1对应的L2P表31-1设定为初始状态,而是废弃与具有清除属性的命名空间NS#1对应的L2P表31-1,由此将命名空间NS#1所包括的逻辑地址分别设为未分配状态。在该情况下,清除处理部23也可以新生成初始状态的L2P表,将所生成的表作为命名空间NS#1用的新的L2P表31-1来分配给命名空间NS#1。

在L2P表31-1作为包括与多个阶层等级对应的多个表的阶层L2P表来实现的情况下,清除处理部23通过仅将阶层L2P表内的多个阶层等级中的最上位阶层等级的表设定为初始状态或者废弃,能够将命名空间NS#1所包括的逻辑地址分别容易地设为未分配状态。

作为用于如计算机那样的系统的电力控制的规格标准,已知高级配置与电源接口(Advanced Configuration and Power Interface(ACPI))方式。在ACPI方式中,系统的电源状态被作为系统状态(S0状态~S5状态)进行规定,设备的电源状态作为设备功率状态(D0状态~D3状态)进行规定。在以下的说明中,不限定于此,作为主机2和SSD3可取的电源状态,例示在ACPI方式中所规定的电源状态。

在主机2的电源状态、也即是系统电源状态从工作状态(S0状态)转变为暂停状态(S3状态或者S4状态)时,主机2向SSD3发送用于将SSD3的当前的电源状态(也即是SSD3的当前的设备功率状态)从接通状态(D0状态)变更为与主机2的暂停状态(S3状态或者S4状态)对应的低电力状态(例如D1状态、D2状态或者D3状态)的指示(以下称为暂停指示)。

在此,工作状态(S0状态)是处理器101执行命令、能够由处理器101执行存储器102的读以及写的状态。作为暂停状态,可使用睡眠状态(S3状态)或者休眠状态(S4状态)。在睡眠状态(S3状态)下,除了存储器102以外的主机2内的几乎全部构成要素成为电源断开状态。另一方面,在休眠状态(S4状态)中,在存储器102的内容被作为休眠文件保存于SSD3内的非清除属性的命名空间的状态下,包括存储器102的主机2内的几乎全部组件成为电源断开状态。

根据从主机2接收到该暂停指示这一状况,控制器4使SSD3的当前的电源状态从接通状态(D0状态)转变为低电力状态(D1状态、D2状态或者D3状态)。

接通状态(D0状态)是向SSD3供给电力、SSD3能够执行命令处理的状态。低电力状态(D1状态、D2状态或者D3状态)是功耗比接通状态(D0状态)少的电源状态。在低电力状态下,基本上不执行命令处理。在D3状态下,供给至SSD3的电力被断开。在D1状态和D2状态下,为了减少SSD3的功耗,例如在维持了向SSD3供给电力的状态不变的情况下,向SSD3的组件的至少一部分、例如DRAM6的电力的供给被断开。

例如在主机2的电源状态从工作状态(S0状态)转变为睡眠状态(S3状态)时,主机2也可以向SSD3发送用于将SSD3的当前的电源状态例如从D0状态变更为D1状态或者D2状态的暂停指示。在该情况下,SSD3的当前的电源状态从D0状态转变为D1状态或者D2状态。

另外,例如在主机2的电源状态从工作状态(S0状态)转变为休眠状态(S4状态)时,主机2也可以向SSD3发送用于将SSD3的当前的电源状态例如从D0状态变更为D3状态的暂停指示。在该情况下,SSD3的当前的电源状态从D0状态转变为D3状态。

另外,在主机2的电源状态从暂停状态恢复为工作状态而操作系统101重新开始处理时,主机2向SSD3发送用于使SSD3的当前的电源状态从低电力状态(例如D1状态、D2状态或者D3状态)恢复为工作状态(D0状态)的指示(以下称为重新开始(resume)指示)。

在SSD3为D3状态的期间,向SSD3的电源电压Vcc的供给被停止。因此,在使SSD3的当前的电源状态从D3状态恢复为D0状态时,主机2也开始向SSD3供给电源电压Vcc,由此,再次向SSD3供给电力(电源电压Vcc)。

根据从主机2接收到该重新开始指示这一状况,控制器4使SSD3的当前的电源状态从低电力状态(D1状态、D2状态或者D3状态)转变为接通状态(D0状态)。

在主机2的电源状态从暂停状态恢复为了工作状态时,操作系统1011有时使在转变为暂停状态之前换出到了SSD3的数据返回到存储器102。

因此,在从主机2接收到暂停指示的情况下、或者从主机2接收到重新开始指示的情况下,清除处理部23不进行清除处理。由此,SSD3能够持续保持被写入到了具有清除属性的命名空间的数据。由此,主机2能够从SSD3正常地读出在转变为暂停状态之前换出到了SSD3的数据。

复原处理部24执行将L2P表从NAND型闪速存储器5加载到DRAM6的处理、关闭准备处理、用于复原L2P表的复原处理、以及用于该复原处理的准备处理即复原准备处理。

在从主机2向SSD3供给了电力之后,复原处理部24将保存于NAND型闪速存储器5的L2P表31-1~31-n各自所包括的地址变换数据加载到DRAM6。在该情况下,复原处理部24不需要一定将各L2P表所包括的地址变换数据整体加载到DRAM6,也可以仅将各L2P表所包括的地址变换数据的一部分加载到DRAM6。在执行了向某命名空间的数据的写入的情况下,I/O命令处理部22对保存于DRAM6的与该命名空间对应的地址变换数据进行更新,以使得被写入了该数据的物理地址映射于与该数据对应的逻辑地址。这样,L2P表31-1~31-n各自的地址变换数据在DRAM6上被进行更新。

关于与具有非清除属性的命名空间分别对应的L2P表,复原处理部24根据控制器4从主机2接收到电源断开预告通知这一状况,进行关闭准备处理。在该关闭准备处理中,复原处理部24将尚未反映于保存在NAND型闪速存储器5中的L2P表的DRAM6内的被进行了更新的地址变换数据写入到NAND型闪速存储器5。由此,能够在向SSD3的电力的供给被断开之前,使尚未反映于保存在NAND型闪速存储器5中的L2P表的DRAM6内的被进行了更新的地址变换数据反映于保存在NAND型闪速存储器5中的L2P表。此外,在电源电路7具有PLP功能的情况下,在由控制器4检测到发生了不正常电源断开时,复原处理部24也能够进行对于与具有非清除属性的命名空间分别对应的L2P表的关闭准备处理。

关于与具有清除属性的命名空间分别对应的L2P表,复原处理部24省略关闭准备处理的执行。也即是,在控制器4从主机2接收到电源断开预告通知的情况下,复原处理部24不将尚未反映于保存在NAND型闪速存储器5中的L2P表的DRAM6内的被进行了更新的地址变换数据写入到NAND型闪速存储器5。在电源电路7具有PLP功能的情况下,在由控制器4检测到发生了不正常电源断开时,复原处理部24也省略对于与具有清除属性的命名空间对应的L2P表的关闭准备处理的执行。

这样,通过省略对于与具有清除属性的各命名空间对应的L2P表的关闭准备处理的执行,与执行对于与全部命名空间对应的全部L2P表的关闭准备处理的构成相比,能够减少向NAND型闪速存储器5的写入量。

在发生了不正常电源断开的情况下,有时无法正常地执行对于与具有非清除属性的各命名空间对应的L2P表的关闭准备处理,与具有非清除属性的各命名空间对应的最新的L2P表的内容会丢失。在该情况下,在不正常电源断开之后,再次向SSD3供给了电力之后,复原处理部24执行用于对与具有非清除属性的命名空间分别对应的L2P表进行复原的复原处理。复原处理部24不执行用于对与具有清除属性的命名空间分别对应的L2P表进行复原的复原处理。关于复原处理的详细,将参照图9A~图9B来在后面进行描述。

另外,在SSD3为开启(on)状态(D0状态)的期间,复原处理部24仅执行用于与具有非清除属性的命名空间分别对应的L2P表的复原准备处理,不执行用于与具有清除属性的命名空间分别对应的L2P表的复原准备处理。

在用于与具有非清除属性的命名空间对应的L2P表的复原准备处理中,复原处理部24执行以下的处理。

复原处理部24执行:(1)每当检查点时,将尚未反映于保存在NAND型闪速存储器5中的L2P表的DRAM6内的被进行了更新的地址变换数据写入到NAND型闪速存储器5的动作;和(2)每当检查点时,将对当前被分配为该命名空间用的写入目的地块的块所赋予的序列编号作为用于对应该使用于该命名空间用的L2P表的复原处理的块组进行确定的信息来写入NAND型闪速存储器5的动作。关于复原准备处理的详细,将参照图9A~图9B来在后面进行描述。

关于与具有清除属性的命名空间对应的L2P表,复原处理部24不执行复原准备处理。

即,关于与具有清除属性的命名空间对应的L2P表,复原处理部24不执行复原准备处理,该复原准备处理包括:(3)每当检查点时,将尚未反映于保存在NAND型闪速存储器5中的L2P表的DRAM6内的被进行了更新的地址变换数据写入到NAND型闪速存储器5的动作;和(4)每当检查点时,将对当前被分配为该命名空间用的写入目的地块的块所赋予的序列编号作为用于对应该使用于该命名空间用的L2P表的复原处理的块组进行确定的信息来写入到NAND型闪速存储器5的动作。

这样,通过省略对于与具有清除属性的命名空间对应的L2P表的复原准备处理的执行,与执行对于与全部命名空间对应的全部L2P表的复原准备处理的构成相比,能够减轻控制器4的负荷。

接着,对地址变换表的结构例进行说明。图3是表示在实施方式涉及的SSD3中管理的地址变换表的结构例的图。

L2P表31-1~31-n各自可以作为不具有阶层构造的单一等级的L2P表或者具有阶层构造的阶层L2P表来实现。在图3中设想了与命名空间NS#1对应的L2P表31-1作为阶层L2P表来实现的情况。

作为阶层L2P表所实现的L2P表31-1包括分别与多个阶层等级对应的多个表。阶层等级的数量为2个以上的任意数量即可,但在此例示了阶层等级的数量为3的情况。

L2P表31-1包括下位表T1-1、上位表T1-2以及最上位表T1-3。

下位表T1-1是用于对被写入了从主机2接收到的数据的NAND型闪速存储器5内的各个物理地址进行管理的表。命名空间NS#1的逻辑地址范围进一步被分割为多个范围。多个范围分别包括连续的特定个数的逻辑地址(LBA)。例如,下位表T1-1包括与这些多个范围的个数相同数量的多个地址变换数据。在命名空间NS#1的逻辑地址范围被分割为分别包括32个LBA的128个范围的情形中,下位表T1-1包括被称为片段(segment)的128个地址变换数据、也即是片段#0、#1、……、#96、……、#127。

下位表T1-1的一个片段包括分别与连续的32个LBA对应的32个物理地址来作为映射信息。属于下位表T1-1的各片段也被称为下位片段。由一个下位片段覆盖的逻辑地址范围相当于32个LBA。

上位表T1-2是用于对写入有各下位片段的NAND型闪速存储器5内的物理地址进行管理的表。上位表T1-2也包括被称为片段的多个地址变换数据、例如片段#0、#1、……、#3。

上位表T1-2的一个片段例如表示保存有连续的32个下位片段的各下位片段的NAND型闪速存储器5内的32个位置(物理存储位置)。上位表T1-2的各片段表示32个下位片段的位置,因此,上位表T1-2所包括的片段的总数为下位片段的总数的1/32。由上位表T1-2的一个片段覆盖的逻辑地址的范围相当于32×32个LBA。上位表T1-2的各片段也被称为上位片段。

最上位表T1-3包括被称为片段的一个地址变换数据。最上位表T1-3的片段表示保存有全部上位片段#0、#1、……、#3的各个上位片段的NAND型闪速存储器5内的位置(物理存储位置)。也即是,最上位表T1-3的片段包括分别与上位片段#0、#1、…、#3对应的4个指针(指针0、1、2、3)。4个指针分别表示所对应的上位片段的位置。由最上位表T1-3的片段覆盖的逻辑地址范围相当于4×32×32个LBA。最上位表T1-3的片段被称为最上位片段或者根表。

这样,由一个最上位片段覆盖的逻辑地址范围比由一个上位表片段覆盖的逻辑地址范围大。另外,由一个上位表片段覆盖的逻辑地址范围比由一个下位表片段覆盖的逻辑地址范围大。

因此,控制器4例如只是对上位片段#0内的32个记入项目(entry)分别设定表示未分配状态的特定值,就能够将与上位片段#0对应的32×32个LBA设为未分配状态。另外,也可以代替对上位片段#0内的32个记入项目分别设定特定值,控制器4例如将最上位片段内的指针0的值设定为表示未分配状态的特定值。在该情况下,也能够将与上位片段#0对应的32×32个LBA设为未分配状态。

在对于命名空间NS#1的清除处理中,控制器4例如将最上位片段内的4个指针设定为表示未分配状态的特定值。由此,能够将命名空间NS#1所包括的全部LBA容易地设为未分配状态。或者,控制器4也可以将最上位片段自身废弃。在该情况下,也能够将命名空间NS#1所包括的全全部LBA设为未分配状态。在废弃了最上位片段的情况下,控制器4也可以制作新的最上位片段,将所制作的新的最上位片段作为命名空间NS#1的L2P表的最上位表来进行再分配。

图4是用于对在实施方式涉及的SSD3中管理的多个命名空间进行说明的图。

在图4中例示了命名空间NS#1、命名空间NS#2、……、命名空间NS#n由SSD3的控制器4进行管理的情况。各命名空间由命名空间标识符(NSID)进行识别。

各命名空间包括连续的多个逻辑地址(LBA)的集合。与各命名空间对应的逻辑地址范围从LBA0开始。各命名空间可以设定为任意的大小。各命名空间的大小与各命名空间所包括的LBA的个数对应。

在图4中例示了如下情况:命名空间NS#1包括从LBA0到LBAi的连续的i+1个LBA,命名空间NS#2包括从LBA0到LBAj的连续的j+1个LBA,命名空间NS#n包括从LBA0到LBAk的连续的k+1个LBA。

为了对与这些命名空间关联的信息进行管理而使用命名空间管理表32。

图5是表示在实施方式涉及的SSD3中管理的命名空间管理表32的图。在命名空间管理表32中,关于所制作的各个命名空间,命名空间标识符、清除标识符以及命名空间的尺寸被作为命名空间信息进行管理。

各命名空间的命名空间标识符(NSID)是为了对各命名空间进行访问而由控制器4使用的标识符。清除标识符是表示所对应的命名空间是否具有清除属性的标识符。清除标识符被作为表示清除属性和非清除属性中的一方的属性信息来进行使用。例如被设置为“1”的清除标识符表示所对应的命名空间具有清除属性。另一方面,例如被设置为“0”的清除标识符表示所对应的命名空间具有非清除属性。

在图5中例示了如下情况:被赋予了命名空间标识符NSID1的命名空间NS#1和被赋予了命名空间标识符NSIDn的命名空间NS#n具有清除属性,被赋予了命名空间标识符NSID2的命名空间NS#2没有清除属性(具有非清除属性)。

命名空间的大小由所对应的命名空间具有的逻辑地址范围所包括的逻辑地址(LBA)的数量表示。

接着,对实施方式涉及的SSD3中的块管理进行说明。

I/O命令处理部22当控制器4从主机2接收到写命令时,基于写命令所包括的命名空间标识符,决定写入目的地的命名空间。当前分配给各命名空间用的写入目的地块由块管理表33进行管理。如图6所示,在块管理表33中,分别与命名空间NS#1、NS#2、……、NS#n对应的激活块列表331-1、331-2、…、331-n被进行管理。

在激活块列表331-1、331-2、……、331-n的各个激活块列表中,所对应的命名空间的保存有有效数据的激活块各自的块标识符被进行管理。在激活块列表331-1、331-2、……、331-n的各个激活块列表中,当前分配给所对应的命名空间用的写入目的地块的块标识符也被作为激活块的块标识符之一来进行管理。

有效数据意味着与某逻辑地址关联的数据。例如,由某L2P表参照的物理地址所存储的数据(即,作为最新的数据而与逻辑地址关联的数据)是有效数据。有效数据是之后有可能由主机2进行读取的数据。写入有至少一个有效数据的块被作为激活块进行管理。

无效数据意味着与哪个逻辑地址都不关联的数据。例如,不由任何L2P表进行参照的物理地址所存储的数据是无效数据。无效数据是已经不可能由主机2进行读取的数据。当与某逻辑地址关联的更新数据被写入到NAND型闪速存储器5时,在那之前与该逻辑地址关联的数据成为无效数据,更新数据成为有效数据。另外,在对某命名空间执行了清除处理的情况下,在那之前与该命名空间的逻辑地址关联的全部有效数据成为无效数据。

不包含有效数据的各块的块标识符被作为空闲块的块标识符来由空闲块列表332进行管理。

以下,对向命名空间NS#2的写入和分配给命名空间NS#2的各块的管理进行说明。关于其他命名空间也进行同样的处理。

激活块列表331-2是对与命名空间NS#2关联了的激活块各自的块标识符进行管理的列表。例如,在控制器4从主机2接收到的写命令包括命名空间NS#2的命名空间标识符(NSID2)的情况下,I/O命令处理部22向分配给命名空间NS#2的写入目的地块内的接下来的能够写入的页写入与该写命令关联了的写数据。并且,I/O命令处理部22对与命名空间NS#2关联了的L2P表31-2进行更新,以使得被写入了写数据的NAND型闪速存储器5内的物理地址关联于与写数据对应的逻辑地址。

I/O命令处理部22在向写入目的地块写入接下来的数据时在该写入目的地块不存在能够写入的页的情况下,从空闲块列表332选择任意的空闲块,将所选择的空闲块新分配为命名空间NS#2用的写入目的地块。

当新的块被分配为命名空间NS#2用的写入目的地块时,控制器4对该新的块赋予序列编号。序列编号是表示块被分配为了命名空间NS#2用的写入目的地块的顺序的编号。

图7是表示在实施方式涉及的SSD3中管理的块使用顺序管理表34的图。

块使用顺序管理表34按命名空间而对被分配为了该命名空间用的写入目的地块的块各自的块标识符与对这些块分别所赋予了的序列编号之间的对应关系进行管理。

在此,着眼于与命名空间NS#2关联了的块使用顺序管理表341-2来进行说明。首先,制作命名空间NS#2,当第一次接收到与命名空间NS#2关联了的写命令时,控制器4从空闲块列表332选择任意的空闲块(例如块BLK1),将块BLK1分配为命名空间NS#2用的写入目的地块。此时,控制器4对块BLK1赋予序列编号1。

在进行对于块BLK1的数据的写入、变为了在块BLK1不存在能够写入的页之后,控制器4从空闲块列表332例如选择块BLK3,将块BLK3分配为命名空间NS#2用的写入目的地块。并且,控制器4对块BLK3赋予序列编号2。

通过反复进行该动作,控制器4对被分配为了命名空间NS#2用的接下来的写入目的地块的块BLK0、进一步被分配为了接下来的写入目的地块的块BLK2赋予序列编号3、4。

由此,在块使用顺序管理表341-2中,BLK1、BLK3、BLK0、BLK2被作为被赋予了序列编号1、2、3、4的块各自的块标识符来进行管理。

图8是用于对在实施方式涉及的SSD3所包括的NAND型闪速存储器5所写入的数据进行说明的图。

在此,对被写入到块BLK1的数据的一个例子进行说明。在图8中,块BLK1内的各行表示页,从上起依次为页0、页1、……、页y-1。

在各页中,例如各自具有4KiB的大小的4个数据被与分别对应于这些4个数据的4个逻辑地址(LBA)一起进行保存。例如,被写入到了页0的4个数据分别对应于LBA16、LBA17、LBA18、LBA20。控制器4能够从块BLK1内的各页读出4个数据和与这些4个数据对应的4个LBA,由此能够获知与分别写入有这些4个数据的4个物理地址对应的4个LBA。此外,控制器4也可以代替在各页保存数据和LBA的对,而在块BLK1内的最后的页Py-1写入分别与被写入到了块BLK1的数据对应的LBA的列表。

这样,通过在各块中与数据一起写入LBA的结构,即使是在因不正常电源断开而尚未反映于NAND型闪速存储器5内的L2P表的DRAM6内的被进行了更新的地址变换数据丢失了的情况下,通过对最后进行了写入的几个块的内容进行解析,也能够对NAND型闪速存储器5内的L2P表进行复原。

接着,对由复原处理部24执行的复原准备处理的例子进行说明。在此,对针对具有非清除属性的命名空间NS#2的复原准备处理进行说明。

首先,对将L2P表31-2的被进行了更新的地址变换数据写入到NAND型闪速存储器5的动作进行说明。

图9A是用于对在实施方式涉及的SSD3中执行的L2P表31-2的复原准备处理进行说明的第一个图,图9B是用于对在实施方式涉及的SSD3中执行的L2P表31-2的复原准备处理进行说明的第二个图。

复原处理部24周期性地进行将L2P表31-2的被进行了更新的地址变换数据从DRAM6写入到NAND型闪速存储器5的动作。进行该动作的定时被称为检查点。检查点的周期既可以是每一定时间,也可以由特定的算法进行决定。

在最初的检查点cp1,复原处理部24将尚未反映于NAND型闪速存储器5上的L2P表31-2的DRAM6内的被进行了更新的地址变换数据写入到NAND型闪速存储器5,由此,将被进行了更新的地址变换数据的内容反映于NAND型闪速存储器5上的L2P表31-2。

在图9A中设想如下情况:分别与LBA10、LBA35、LBA290对应的地址变换数据尚未反映于NAND型闪速存储器5上的L2P表31-2。在该情况下,复原处理部24将分别与LBA10、LBA35、LBA290对应的地址变换数据作为被进行了更新的地址变换数据来写入到NAND型闪速存储器5,以使得分别与这些LBA10、LBA35、LBA290对应的地址变换数据被反映于NAND型闪速存储器5内的L2P表31-2。

此时,复原处理部24将对当前分配为命名空间NS#2用的写入目的地块的块赋予的序列编号作为检查点信息来写入到NAND型闪速存储器5。如图9B所示,在检查点cp1的时间点,块BLK0被分配为命名空间NS#2用的写入目的地块。因此,复原处理部24将对块BLK0所赋予的序列编号3作为检查点信息写入到NAND型闪速存储器5。

在接下来的检查点cp2,复原处理部24将尚未反映于NAND型闪速存储器5上的L2P表31-2的DRAM6内的被进行了更新的地址变换数据再次写入到NAND型闪速存储器5,由此,将被进行了更新的地址变换数据的内容反映于NAND型闪速存储器5上的L2P表31-2。

在图9A中设想如下情况:分别与LBA26、LBA34、LBA553对应的地址变换数据尚未反映于NAND型闪速存储器5上的L2P表31-2。在该情况下,复原处理部24将分别与LBA26、LBA34、LBA553对应的地址变换数据作为被进行了更新的地址变换数据写入到NAND型闪速存储器5,以使得分别与这些LBA26、LBA34、LBA553对应的地址变换数据反映于NAND型闪速存储器5内的L2P表31-2。

此时,复原处理部24将对当前分配为命名空间NS#2用的写入目的地块的块赋予的序列编号作为检查点信息来写入到NAND型闪速存储器5。如图9B所示,在检查点cp2的时间点,块BLK20被分配为命名空间NS#2用的写入目的地块。因此,复原处理部24将对块BLK20所赋予的序列编号8作为检查点信息写入到NAND型闪速存储器5。

如图9A所示,在接下来的检查点cp3,复原处理部24将分别与LBA7、LBA88、LBA357对应的地址变换数据作为被进行了更新的地址变换数据来写入到NAND型闪速存储器5。

另外,复原处理部24将对当前分配为命名空间NS#2用的写入目的地块的块赋予的序列编号作为检查点信息来写入到NAND型闪速存储器5。如图9B所示,在检查点cp3的时间点,块BLK31被分配为命名空间NS#2用的写入目的地块。因此,复原处理部24将对块BLK31所赋予的序列编号23作为检查点信息写入到NAND型闪速存储器5。

在不正常电源断开之后,在从主机2再次向SSD3供给了电力的情况下,复原处理部24基于在最后的检查点取得的检查点信息(序列编号),确定为了L2P表31-2的复原处理所应该使用的块组。

例如设想如下情况:在紧接着检查点cp1之后发生了不正常电源断开。在该情况下,在L2P表31-2的复原处理中,复原处理部24从块使用顺序管理表341-2取得对当前分配为命名空间NS#2用的写入目的地块的块、也即是在发生了不正常电源断开时分配为写入目的地块的块所赋予的序列编号。并且,将分别被赋予了如下序列编号的块组确定为为了L2P表31-2的复原处理所应该使用的块组,该序列编号属于从在检查点cp1所取得的序列编号3到对在发生了不正常电源断开时被分配为了写入目的地块的块所赋予的序列编号为止的范围。

例如在块BLK2被分配为写入目的地块的状态下发生了不正常电源断开的情况下,对在发生了不正常电源断开时被分配为了写入目的地块的块BLK2所赋予的序列编号为4,因此,被赋予了在检查点cp1所取得的序列编号3的块BLK0和被赋予了序列编号4的块BLK2被确定为为了L2P表31-2的复原处理所应该使用的块组。

接着,复原处理部24使用分别保存于这些块BLK0和块BLK2的LBA组,确定块BLK0和块BLK2内的各个物理地址与分别保存于这些物理地址的数据所对应的LBA之间的对应关系。并且,复原处理部24使用各物理地址与各LBA之间的所确定的对应关系,将NAND型闪速存储器5内的L2P表31-2复原为最新的内容。

图10是用于对在实施方式涉及的SSD3中执行的、制作具有清除属性的命名空间的动作和省略用于与具有清除属性的命名空间关联的L2P表的复原准备处理的动作进行说明的图。

例如在希望制作被作为交换区域进行使用的命名空间的情况下,主机2向SSD3发送指定清除属性的命名空间制作命令。当控制器4从主机2接收到该命名空间制作命令时,命名空间管理命令处理部21制作具有清除属性的命名空间。命名空间管理命令处理部21通过使用命名空间管理表32,将该所制作的命名空间的命名空间标识符与表示清除属性的属性信息相关联地进行管理。并且,控制器4制作与所制作的命名空间对应的L2P表。另外,按由命名空间管理命令处理部21制作的命名空间,控制器4使用块管理表33进行激活块列表的管理,并且,使用块使用顺序管理表34进行块使用顺序的管理。

命名空间管理命令处理部21当控制器4从主机2接收到要求删除命名空间的命名空间删除命令时,删除具有由命名空间删除命令指定的命名空间标识符的命名空间。

复原处理部24跳过与具有清除属性的命名空间关联的L2P表的复原准备处理。复原准备处理包括:每当检查点时,将尚未反映于保存在NAND型闪速存储器5中的L2P表的DRAM6内的被进行了更新的地址变换数据写入到NAND型闪速存储器5的动作;和每当检查点时,将对当前分配为该命名空间用的写入目的地块的块所赋予了的序列编号作为用于对应该使用于该L2P表的复原处理的块组进行确定的信息来写入到NAND型闪速存储器5的动作。

图11是用于对在实施方式涉及的SSD3中执行的清除处理进行说明的图。

清除处理部23在控制器4从主机2接收到电源断开预告通知或者检测到不正常电源断开起到再次向SSD3供给电力而控制器4成为能够给对来自主机2的命令进行处理的就绪状态为止的期间执行清除处理。

例如,清除处理部23也可以根据向SSD3再次供给了电力这一状况,执行清除处理以使得具有清除属性的命名空间所包括的逻辑地址分别成为未分配状态。在清除处理中,例如清除处理部23通过将与具有清除属性的命名空间关联了的L2P表设定初始状态或者废弃,从而将具有清除属性的命名空间所包括的逻辑地址设为未分配状态。

图12是用于对通过在实施方式涉及的SSD3中执行的清除处理将与具有清除属性的命名空间关联了的逻辑物理地址变换表设定为初始状态或者废弃的动作进行说明的图。

在此,设想如下情况:与命名空间NS#1关联了的L2P表31-1、与命名空间NS#2关联了的L2P表31-2、……、与命名空间NS#n关联了的L2P表31-n分别被作为阶层L2P表来实现。

L2P表31-1包括下位表T1-1、上位表T1-2以及最上位表T1-3。L2P表31-2包括下位表T2-1、上位表T2-2以及最上位表T2-3。L2P表31-n包括下位表Tn-1、上位表Tn-2以及最上位表Tn-3。

此外,在图12中示出了下位片段的数量和上位片段的数量在全部L2P表之间好像相同,但实际上,某L2P表所包括的下位片段的数量和上位片段的数量根据与该L2P表对应的命名空间的大小来决定。

清除处理部23从命名空间NS#1~NS#n中选择具有清除属性的命名空间NS#1和NS#n,执行对于命名空间NS#1和NS#n的清除处理。

首先,对针对命名空间NS#1的清除处理进行说明。清除处理部23将在与命名空间NS#1关联了的L2P表31-1中进行管理的各个逻辑地址设为未分配状态。例如,清除处理部23将L2P表31-1所包括的最上位表T1-3设定初始状态或者废弃。当最上位表T1-3被设定为初始状态或者废弃时,控制器4变为无法参照上位表T1-2,进一步,变为也无法参照下位表T1-1。

由此,通过将最上位表T1-3设定为初始状态或者废弃,命名空间NS#1所包括的逻辑地址各自均成为未分配状态。

同样地,清除处理部23将在L2P表31-n中进行管理的逻辑地址分别设为未分配状态。例如,清除处理部23将L2P表31-n所包括的最上位表Tn-3设定为初始状态或者废弃。由此,命名空间NS#n所包括的各个逻辑地址均成为未分配状态。

由此,与具有清除属性的命名空间NS#1关联的全部激活块和与具有清除属性的命名空间NS#n关联的全部激活块成为只存储无效数据的块。因此,清除处理部23使之前与具有清除属性的命名空间NS#1和NS#n关联的激活块的块标识符全部移动至空闲块列表332。

图13是用于对通过在实施方式涉及的SSD3中执行的清除处理将之前与具有清除属性的命名空间关联的块(激活块)分别作为空闲块进行管理的动作进行说明的图。

当清除处理部23将命名空间NS#1所包括的各逻辑地址设定为未分配状态时,保存于由激活块列表331-1管理的任何激活块的数据都成为无效数据。同样地,当清除处理部23将命名空间NS#n所包括的各逻辑地址设定为未分配状态时,保存于由激活块列表331-n管理的任何激活块的数据都成为无效数据。

因此,在由激活块列表331-1管理的块中不再存在写入有有效数据的块。清除处理部23使由激活块列表331-1管理的全部块的块标识符移动至空闲块列表332。

同样地,在由激活块列表331-n管理的块中不再存在写入有有效数据的块。清除处理部23使由激活块列表331-n管理的全部块的块标识符移动至空闲块列表332。由此,之前与具有清除属性的各命名空间关联的激活块分别成为能够作为能利用于数据(或者L2P表等的管理信息)的写入的物理存储区域来进行再利用。

图14是用于对在主机2中执行的、对具有清除属性的命名空间进行再格式化的处理进行说明的图。

在某命名空间的LBA0周边的几个LBA写入有与该命名空间的格式有关的信息、例如表示与该命名空间对应的文件系统的种类的信息、表示该命名空间的挂载点(mountpoint)的信息等。当执行对于具有清除属性的命名空间的清除处理时,无法从该具有清除属性的命名空间读取与这些格式有关的信息。因此,主机2为了使得能够将该具有清除属性的命名空间再次利用于数据的写入和读出,执行用于在该具有清除属性的命名空间再次写入与格式有关的信息的再格式化处理。

在再次向SSD3供给电力而控制器4成为了就绪状态之后,主机2也可以首先从SSD3取得与由SSD3管理的各个命名空间有关的信息,从由SSD3管理的命名空间中确定具有清除属性的命名空间。

在该情况下,主机2向控制器4发送对特定的命名空间的NSID进行指定的命名空间信息取得要求。作为命名空间信息取得要求,例如可以使用由NVMe标准规定的identify命令(Identify Namespace data structure)。

接收到命名空间信息取得要求的命名空间管理命令处理部21向主机2发送与具有所指定的NSID的命名空间有关的命名空间信息。在该命名空间信息包括与具有所指定的NSID的命名空间有关的各种各样的信息、例如用于唯一地识别该命名空间的全局的命名空间标识符、作为该命名空间的属性信息的清除标识符以及该命名空间的大小等。作为全局的命名空间标识符,例如也可以使用Namespace Globally Unique Identifier(NGUID)。遵循了NVMe标准的储存设备可以包括多个控制器。NGUID是能够唯一地识别在遵循了NVMe标准的储存设备中管理的各个命名空间的标识符。

主机2当确认到该命名空间是具有清除属性的命名空间时,对SSD3指示格式动作的执行,由此,执行对于该命名空间的再格式化。通过执行该命名空间的再格式化,能够将与该命名空间的格式有关的信息再次写入到该命名空间的LBA0周边的几个LBA。由此,主机2能够将具有清除属性的该命名空间例如再次作为交换区域来开始利用。

在对于具有清除属性的全部命名空间的再格式化处理完成之后,主机2向SSD3发布I/O命令(写命令、读命令),与SSD3协作地进行向各命名空间的数据的写入和从各命名空间的数据的读出。

图15是表示在实施方式涉及的SSD3中执行的命名空间制作处理的步骤的流程图。

首先,控制器4从主机2接收命名空间制作命令(步骤S101)。命名空间制作命令是要求制作命名空间的命名空间管理命令。命名空间制作命令对应该制作的命名空间的大小和应该制作的命名空间具有的属性(清除属性或者非清除属性)进行指定。

控制器4判定在步骤S101中接收到的命名空间制作命令是否指定清除属性(步骤S102)。

在所接收到的命名空间制作命令指定了清除属性的情况下(步骤S103:是),控制器4制作具有清除属性的命名空间(步骤S103)。在步骤S103中,控制器4通过使用命名空间管理表32,将在步骤S103中制作的命名空间的命名空间标识符与表示清除属性的属性信息相关联地进行管理。

在所接收到的命名空间制作命令不指定清除属性(也即是指定非清除属性)的情况下(步骤S103:否),控制器4制作具有非清除属性的命名空间(步骤S104)。控制器4通过使用命名空间管理表32,将在步骤S104中制作的命名空间的命名空间标识符与表示非清除属性的属性信息相关联地进行管理。

控制器4向主机2返回与在步骤S103或者步骤S104中制作的命名空间有关的命名空间信息(步骤S105)。在此,控制器4向主机2发送的命名空间信息至少包括所制作的命名空间的命名空间标识符。命名空间信息也可以包括所制作的命名空间的命名空间标识符、所制作的命名空间的大小、表示所制作的命名空间具有的属性(清除属性或者非清除属性)的属性信息。

图16是表示在实施方式涉及的SSD3中执行的复原准备处理的步骤的流程图。

控制器4将分别与由控制器4管理的多个命名空间对应的多个L2P表作为成为复原准备处理的对象的L2P表来一个一个地按顺序进行选择,按所选择出的L2P表来执行以下处理。

控制器4首先选择成为复原准备处理的对象的一个L2P表(步骤S201)。控制器4判定在步骤S201中选择出的L2P表所关联了的命名空间是否具有清除属性(步骤S202)。

在所选择出的L2P表所关联了的命名空间具有清除属性的情况下(步骤S202:是),控制器4结束复原准备处理。这是由于不需要对与具有清除属性的命名空间关联了的L2P表执行复原处理。

在所选择出的L2P表所关联了的命名空间没有清除属性(具有非清除属性)的情况下(步骤S202:否),控制器4每当检查点时进行对于所选择出的L2P表的复原准备处理。在此设想如下情况:所选择出的L2P表是与命名空间NS#2关联的L2P表31-2。

在到达了检查点的定时的情况下,控制器4首先将保存于DRAM6的所选择的L2P表31-2的地址变换数据中的、尚未反映于保存在NAND型闪速存储器5中的L2P表31-2的被进行了更新的地址变换数据写入到NAND型闪速存储器5(步骤S203)。

然后,控制器4将对当前分配为命名空间NS#2用的写入目的地块的块所赋予了的序列编号作为用于对为了L2P表31-2的复原所应该使用的块组进行确定的检查点信息来写入到NAND型闪速存储器5(步骤S204)。在步骤S204中,控制器4例如进行如下处理:将该序列编号与用于确定当前的检查点的检查点编号一起作为检查点信息记录于NAND型闪速存储器5。

图17是表示在从主机2接收到电源断开预告通知起到再次向SSD3供给电力而SSD3的控制器4成为就绪状态为止的期间、在实施方式涉及的SSD3中执行的处理的步骤的流程图。

在此设想如下情况:在再次向SSD3供给了电力之后执行清除处理。

控制器4从主机2接收电源断开预告通知或者暂停指示(步骤S301)。控制器4判定在步骤S301中接收到的通知/指示是电源断开预告通知和暂停指示的哪个、也即是应该执行的处理为关闭准备处理和暂停准备处理中的哪个(步骤S302)。

在步骤S301中接收到的通知/指示为电源断开预告通知的情况下(步骤S302:关闭),控制器4执行关闭准备处理(步骤S303)。在关闭准备处理中,控制器4选择与具有非清除属性的命名空间关联了的L2P表,执行将被进行了更新的地址变换数据写入到NAND型闪速存储器5的处理。

当关闭准备处理完成时,控制器4向主机2通知关闭准备处理已完成(步骤S304)。主机2当确认到SSD3的关闭准备处理已完成时,切断向SSD3的电力供给。

在向SSD3的电力供给被断开之后,在从主机2向SSD3再次供给了电力的情况下(步骤S305:电源接通),控制器4开始用于使控制器4的状态成为能够对来自主机2的命令进行处理的就绪状态的一系列初始化顺序。在该初始化顺序中,控制器4执行对于具有清除属性的命名空间的清除处理(步骤S306)。在步骤S306中,控制器4将具有清除属性的命名空间的逻辑地址范围所包含的各逻辑地址设为未分配状态,进一步,使与具有清除属性的命名空间关联了的各块的块标识符移动至空闲块列表332。

另外,在该初始化顺序中,控制器4也执行从NAND型闪速存储器5向DRAM6加载L2P表31-1、……、31-n各自的地址变换数据的至少一部分的动作。例如在与具有清除属性的命名空间NS#1关联了的L2P表31-1被废弃了的情况下,制作命名空间NS#1用的新的L2P表,该所制作的L2P表的地址变换数据的至少一部分被加载到DRAM6。

当初始化顺序完成时,控制器4成为能够进行来自主机2的命令的处理的就绪状态。控制器4向主机2通知控制器4成为了就绪状态(步骤S310)。

在步骤S301中接收到的通知/指示为暂停指示的情况下(步骤S302:暂停),控制器4执行暂停准备处理(步骤S307)。在暂停准备处理中,控制器4关于与全部命名空间对应的L2P表,执行将保存于DRAM6的被进行了更新的地址变换数据写入到NAND型闪速存储器5的处理。并且,控制器4执行用于使SSD3的当前的电源状态从接通状态(D0状态)转变为由暂停指示指定的低电力状态(D1状态、D2状态或者D3状态)的处理。

当暂停准备处理完成时,控制器4向主机2通知暂停准备处理已完成(步骤S308)。在由暂停指示指定的转变目标的电源状态为D3状态的情况下,主机2当确认到SSD3的暂停准备处理已完成时,切断向SSD3的电力供给。

在SSD3的电源状态转变为了低电力状态之后,当从主机2接收到重新开始指示时(步骤S309),控制器4开始用于使SSD3的电源状态从低电力状态恢复为接通状态(D0状态)的处理。在SSD3进入到了D3状态的情况下,也可以从主机2向SSD3供给电力,并且,从主机2向SSD3发送重新开始指示。

当SSD3的电源状态从低电力状态恢复为接通状态(D0状态)、控制器4成为能够对来自主机2的命令进行处理的就绪状态时,控制器4向主机2通知控制器4成为了就绪状态(步骤S310)。

图18是表示在从检测到不正常电源断开到再次向SSD3供给电力而SSD3的控制器4成为就绪状态为止的期间、在实施方式涉及的SSD3中执行的处理的步骤的流程图。

在此设想如下情况:在再次向SSD3供给了电力之后执行清除处理。在电源电路7具有PLP功能的情况下,在发生了不正常电源断开时也执行参照图17说明过的关闭准备处理。在电源电路7没有PLP功能的情况下,在发生了不正常电源断开时,不执行关闭准备处理。以下设想如下情况:电源电路7没有PLP功能。

控制器4在从主机2接收到电源断开预告通知之前从电源电路7接收到电源断开检测通知的情况下,检测出发生了不正常电源断开这一状况(步骤S401)。

在因不正常电源断开而向SSD3的电力供给被断开之后,在再次从主机2向SSD3供给了电力的情况下(步骤S402:电源接通),控制器4开始初始化顺序。在该初始化顺序中,控制器4执行对于具有清除属性的命名空间的清除处理(步骤S403)。在步骤S403中,控制器4将具有清除属性的命名空间所包括的逻辑地址分别设为未分配状态,进一步,使之前与具有清除属性的命名空间关联的激活块移动至空闲块列表332。

在初始化顺序中,控制器4进一步执行与具有非清除属性的各命名空间对应的L2P表的复原处理(步骤S404)。与具有清除属性的命名空间关联的L2P表被设定为初始状态或者废弃,因此,控制器4仅对与具有非清除属性的各命名空间关联了的L2P表执行复原处理。

另外,在该初始化顺序中,控制器4也执行从NAND型闪速存储器5向DRAM6加载L2P表31-1、……、31-n各自的地址变换数据的至少一部分的动作。例如,在与具有清除属性的命名空间NS#1关联了的L2P表31-1被废弃了的情况下,制作命名空间NS#1用的新的L2P表,该所制作的L2P表的地址变换数据的至少一部分被加载到DRAM6。

当初始化顺序完成时,控制器4成为能够进行来自主机2的命令的处理的就绪状态。控制器4向主机2通知控制器4成为了就绪状态(步骤S405)。

图19是表示在实施方式涉及的SSD3中执行的关闭准备处理的步骤的流程图。

在从主机2接收到电源断开预告通知的情况下,控制器4开始关闭准备处理。在电源电路7具有PLP功能的情况下,在检测到发生了不正常电源断开这一状况的情况下,控制器4也开始关闭准备处理。

在关闭准备处理中,控制器4首先判定是否在DRAM6中存在被进行了更新的地址变换数据、且在该被进行了更新的地址变换数据中存在尚未实施步骤S502~步骤S505的处理的未选择的地址变换数据(步骤S501)。在存在未选择的地址变换数据的情况下(步骤S501:是),控制器4对DRAM6内的被进行了更新的地址变换数据中的、尚未选择的地址变换数据进行选择(步骤S502)。在DRAM6内不存在被进行了更新的地址变换数据的情况下、或者在对被进行了更新的全部地址变换数据实施步骤S502~步骤S505的处理而变为了不存在未选择的地址变换数据的情况下(步骤S501:否),图19的处理结束。

在步骤S502中,控制器4从尚未反映于保存在NAND型闪速存储器5中的L2P表31-1、……、31-n的DRAM6内的被进行了更新的地址变换数据中选择尚未被选择的任意的地址变换数据。

控制器4判定在步骤S502中选择出的地址变换数据是否与具有清除属性的命名空间相关联(步骤S503)。也即是,控制器4判定与包括所被选择的地址变换数据的L2P表关联的命名空间是否具有清除属性。

在步骤S502中选择出的地址变换数据与具有清除属性的命名空间相关联的情况下(步骤S503:是),控制器4跳过将所选择的地址变换数据写入到NAND型闪速存储器5的处理的执行(步骤S504)。

在步骤S502中所选择的地址变换数据与具有非清除属性的命名空间相关联的情况下(步骤S503:否),控制器4执行向NAND型闪速存储器5写入所选择的地址变换数据的处理(步骤S505)。由此,所被选择的地址变换数据的内容被反映于与该所选择的地址变换数据对应的NAND型闪速存储器5内的L2P表。

在步骤S504或者步骤S505之后,处理返回到步骤S501。在步骤S501中,控制器4再次判定在DRAM6内的被进行了更新的地址变换数据中是否存在未选择的地址变换数据。

在DRAM6内的被进行了更新的地址变换数据中存在未选择的地址变换数据的情况下(步骤S501:是),控制器4再次执行步骤S502~S505的处理。

在DRAM6内的被进行了更新的地址变换数据中不再存在未选择的地址变换数据的情况下(步骤S501:否),控制器4结束处理。

图20是表示在实施方式涉及的SSD3中执行的暂停准备处理的步骤的流程图。

当从主机2接收到暂停指示时,控制器4开始暂停准备处理。

在暂停准备处理中,控制器4首先判定是否在DRAM6中存在被进行了更新的地址变换数据、且在该被进行了更新的地址变换数据中存在尚未实施步骤S602~步骤S603的处理的未选择的地址变换数据(步骤S601)。在存在未选择的地址变换数据的情况下(步骤S601:是),控制器4对DRAM6内的被进行了更新的地址变换数据中的、尚未被选择的地址变换数据进行选择(步骤S602)。在DRAM6内不存在被进行了更新的地址变换数据的情况下、或者在对被进行了更新的全部地址变换数据实施步骤S602~步骤S603的处理而变为了不存在未选择的地址变换数据的情况下(步骤S601:否),图20的处理结束。

在步骤S602中,控制器4从尚未反映于保存在NAND型闪速存储器5中的L2P表31-1、……、31-n的DRAM6内的被进行了更新的地址变换数据中选择尚未被选择的任意的地址变换数据。

控制器4将在步骤S602中所选择的地址变换数据写入到NAND型闪速存储器5(步骤S603)。由此,所被选择了的地址变换数据的内容被反映于NAND型闪速存储器5内的与该所被选择了的地址变换数据对应的L2P表。

在步骤S603之后,处理返回到步骤S601。在步骤S601中,控制器4再次判定在DRAM6内的被进行了更新的地址变换数据中是否存在未选择的地址变换数据。

在DRAM6内的被进行了更新的地址变换数据中存在尚未选择的地址变换数据的情况下(步骤S601:是),也即是在DRAM6内残存有尚未反映于保存在NAND型闪速存储器5中的L2P表31-1、……、31-n的被进行了更新的地址变换数据的情况下,控制器4再次执行步骤S602~S603的处理。

在变为了在DRAM6内的被进行了更新的地址变换数据中不存在未选择的地址变换数据的情况下(步骤S601:是否),也即是在DRAM6内不残存有尚未反映于保存在NAND型闪速存储器5中的L2P表31-1、……、31-n的被进行了更新的地址变换数据的情况下,控制器4结束处理。

图21是表示在实施方式涉及的SSD3中执行的清除处理的步骤的流程图。

控制器4通过对命名空间管理表32进行参照,判定是否存在具有清除属性的命名空间(步骤S701)。

在存在具有清除属性的命名空间的情况下(步骤S701:是),控制器4例如通过将与具有清除属性的命名空间关联了的L2P表设定为初始状态或者废弃,从而将具有清除属性的命名空间所包括的逻辑地址范围所包含的各逻辑地址设为未分配状态(步骤S702)。在与具有清除属性的命名空间关联了的L2P表由阶层L2P表来实现的情况下,在步骤S702中,控制器4将阶层L2P表内的最上位阶层等级的表设定为初始状态或者废弃。

并且,控制器4使之前与具有清除属性的命名空间关联的全部块的块标识符移动至空闲块列表332,将这些全部块作为空闲块来进行管理(步骤S703)。

在不存在具有清除属性的命名空间的情况下(步骤S701:否),控制器4结束清除处理。

图22是表示在再次向SSD3供给了电力之后、在实施方式涉及的SSD3和主机2中执行的处理的步骤的流程图。

在向SSD3的电力供给被断开了之后,当再次向SSD3供给电力时,SSD3内的控制器4开始包括清除处理的初始化处理(步骤S801)。在初始化处理中,控制器4也执行将NAND型闪速存储器5内的L2P表31-1~31-n各自的地址变换数据的至少一部分加载到DRAM6上的处理。

当控制器4成为就绪状态时,控制器4将该状况通知给主机2(S802)。当被从控制器4通知控制器4成为了就绪状态这一状况时,主机2向控制器4发送对特定的命名空间的NSID进行指定的命名空间信息取得要求(步骤S803)。从主机2接收到命名空间信息的取得要求的控制器4向主机2发送与具有所指定的NSID的命名空间有关的命名空间信息(步骤S804)。命名空间信息包括用于唯一地识别该命名空间的全局的命名空间标识符、作为该命名空间的属性信息的清除标识符以及该命名空间的大小等。

主机2当确认到该命名空间是具有清除属性的命名空间时,执行用于将与该命名空间的格式有关的信息写入到该命名空间的LBA0周边的几个LBA的再格式化处理(步骤S805)。由此,能够正常地执行对于已经被进行了清除处理的该命名空间的访问。

如以上说明的那样,根据本实施方式,控制器4在从主机2接收到指定清除属性的命名空间制作命令的情况下,制作具有清除属性的命名空间。根据从主机2接收到指定对具有清除属性的命名空间进行识别的命名空间标识符的写命令这一状况,控制器4执行将与所接收到的写命令关联了的数据写入到NAND型闪速存储器5的动作。另外,控制器4执行如下动作:对与具有该清除属性的命名空间对应的L2P表进行更新,以使得被写入了该数据的NAND型闪速存储器5的物理地址映射于与该数据对应的逻辑地址。

并且,在从接收到电源断开预告通知或者检测到不正常电源断开到再次向SSD3供给电力而控制器4成为就绪状态为止的期间,控制器4将具有清除属性的命名空间的逻辑地址范围所包含的各个逻辑地址设为未映射NAND型闪速存储器5的物理地址的未分配状态。其结果,与具有清除属性的命名空间所包括的逻辑地址范围关联的数据全部成为无效数据,因此,该具有清除属性的命名空间成为与尚未被写入数据的刚制作之后的命名空间同样的状态。由此,与具有清除属性的命名空间关联的全部块成为不包含有效数据的空闲块。

因此,例如通过将具有清除属性的命名空间作为不需要跨SSD3的电源循环地进行保持的数据的保存目的地来进行使用,能够防止NAND型闪速存储器5内的物理存储区域被不需要跨SSD3的电源循环地进行保持的数据无用地使用。由此,能够减少NAND型闪速存储器5的消耗。

另外,在控制器4从主机2接收到电源断开预告通知的情况下,关于与具有清除属性的命名空间对应的L2P表,控制器4不执行将保存于DRAM6的被进行了更新的地址变换数据写入到NAND型闪速存储器5的处理。这样,通过省略用于将与具有清除属性的命名空间对应的L2P表维持为最新的内容的处理,能够减少向NAND型闪速存储器5的写入量,因此,能够进一步减少NAND型闪速存储器5的不必要的消耗。

另外,在SSD3为开启状态(D0状态)的期间,控制器4也省略对于与具有清除属性的命名空间对应的L2P表的复原准备处理的执行。

这样,在本实施方式中,通过关于与具有清除属性的命名空间关联的L2P表的地址变换数据省略各种各样的处理,能够降低控制器4的负荷,另外,能够抑制NAND型闪速存储器5的消耗。

以上对本发明的几个实施方式进行了说明,但这些实施方式是作为例子提示的,并不是意在限定发明的范围。这些新的实施方式能够以其他各种各样的方式来实施,能够在不脱离发明的宗旨的范围内进行各种省略、置换、变更。这些实施方式及其变形包含在发明的范围、宗旨内,并且,包含在权利要求书记载的发明及其等同的范围内。

技术分类

06120114733127