具体实施方式
下面,参照附图,对实施方式进行说明。
首先,参照图1,对实施方式涉及的包含信息处理装置的信息处理系统1的构成进行说明。
该信息处理系统1包括主机计算机(主机装置)2和多个存储设备3-1、3-2、3-3、3-4、3-5。主机计算机2是访问多个存储设备3-1、3-2、3-3、3-4、3-5的信息处理装置(计算设备)。主机计算机2可以是将大量的各种数据存储到多个存储设备3-1、3-2、3-3、3-4、3-5的存储服务器,也可以是个人计算机。
存储设备3-1、3-2、3-3、3-4、3-5分别可以内置于作为主机计算机2发挥功能的信息处理装置中,也可以经由电缆而连接于该信息处理装置。
作为用于将主机计算机2与存储设备3-1、3-2、3-3、3-4、3-5分别相互连接的接口,可以使用SCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)、Ethernet(注册商标)、Fibre channel、NVM Express(NVMe)(注册商标)等。
存储设备3-1、3-2、3-3、3-4、3-5分别具备DRAM那样的易失性存储器和非易失性存储介质,使用地址变换表对各逻辑地址与非易失性存储介质的各物理地址之间的映射进行管理。易失性存储器作为暂时存储来自主机计算机2的写入数据的写缓冲器使用。另外,为了能够高速访问非易失性存储介质内的地址变换表,地址变换表的至少一部分被从非易失性存储介质加载到易失性存储器。在与某个逻辑地址对应的数据被写入到非易失性存储介质的情况下,对保存于易失性存储器的地址变换表(地址变换信息)进行更新,以将表示写入有该数据的非易失性存储介质的物理存储位置的物理地址映射到该逻辑地址。更新后的地址变换信息随后被写回非易失性存储介质。由此,地址变换信息的更新内容被反映到非易失性存储介质内的地址变换表。
这样的存储设备的例子包括基于NAND闪存技术的固态硬盘(SSD)和使用了瓦记录(Shingled magnetic recording:SMR)技术的硬盘驱动器(HDD)。下面,以存储设备3-1、3-2、3-3、3-4、3-5分别由SSD实现的情况为例进行说明,但这些存储设备可以是SSD、使用了SMR技术的HDD的任意一种。
SSD3-1具备控制器4以及非易失性存储器(NAND型闪速存储器)5。SSD3-1也可以还具备随机存取存储器,例如DRAM6。DRAM6作为上述易失性存储器发挥功能,NAND型闪速存储器5作为上述非易失性存储介质发挥功能。SSD3-1进而具有用于连接于主机计算机2的连接器8。
NAND型闪速存储器5包括存储单元阵列,该存储单元阵列包含配置成矩阵状的多个存储单元。NAND型闪速存储器5可以是二维结构的NAND型闪速存储器,也可以是三维结构的NAND型闪速存储器。控制器4使用地址变换表,对各逻辑地址与NAND型闪速存储器5的各物理地址之间的映射进行管理。该地址变换表也可作为逻辑物理地址变换表(Logial-to-physical address translation table)进行参照。
SSD3-1利用经由连接器8从主机计算机2供给的电力VCC动作。SSD3-2~3-5也具有与SSD3-1同样的构成。在本实施方式中,在发生了停电那样的意外断电事件的情况下,在某一有限的期间,从主机计算机2向SSD3-1~3-5供给备用电力。因此,SSD3-1~3-5无需包含用于进行失电保护(PLP)的电容器等。
主机计算机2包括处理器(CPU)40、存储器41、系统控制器42、电源电路43、以及备用电源44等。
处理器40是构成为对该主机计算机2的各部件的动作进行控制的CPU。该处理器40执行从多个SSD3-1~3-5的任一个加载到存储器41的各种程序。存储器41由DRAM那样的随机存取存储器构成。由处理器40执行的程序包括各种应用程序(APL)61、操作系统(OS)62、用于控制SSD3-1~3-5的设备驱动器63。
OS62也可以包括PLP管理器64。PLP管理器64包括在发生了停电那样的意外断电事件的情况下用于对所有SSD3-1~3-5的用户数据进行安全保护的各种命令。能够从主机计算机2供给的备用电力量有限。因此,若SSD3-1~3-5的一部分SSD在完成用户数据的保存之后无条件开始元数据(更新后的地址变换信息)的保存,则会导致更多的电力被一部分SSD耗损。在该情况下,在其他SSD完成用户数据的保存之前,来自主机计算机2的备用电力有可能会中断。其结果,导致部分用户数据丢失或破坏。
为了防止部分用户数据丢失或破坏,处理器40通过执行PLP管理器64的命令群,执行以下的处理。
处理器40在断电事件之后,分别向SSD3-1~3-5发送第1保存指示。第1保存指示对SSD3-1~3-5进行如下指示:应当将未写入NAND型闪速存储器5的用户数据从DRAM6保存到NAND型闪速存储器5。各SSD仅将用户数据保存到NAND型闪速存储器5,不执行将更新后的地址变换信息保存到NAND型闪速存储器5的动作。
在从所有SSD3-1~3-5接收到表示用户数据向NAND型闪速存储器5的保存完成的响应的情况下,处理器40向所有SSD3-1~3-5或者SSD3-1~3-5中的一个以上SSD发送第2保存指示。第2保存指示对各SSD进行如下指示:应当将表示地址变换表的更新内容并且未写入NAND型闪速存储器5的更新后的地址变换信息从DRAM6保存到NAND型闪速存储器5。接收到第2保存指示的各SSD将更新后的地址变换信息保存到NAND型闪速存储器5。由此,能够将用于高速访问NAND型闪速存储器5的地址变换表维持为最新的状态。因此,在已将更新后的地址变换信息保存到NAND型闪速存储器5的SSD中,当电源恢复时,无需重建该地址变换表。因此,已将更新后的地址变换信息保存到NAND型闪速存储器5的SSD在来自主机计算机2的电源恢复后,能够立即变为能够通常工作状态。
在向SSD3-1~3-5中的一个以上SSD发送第2保存指示的情形下,处理器40也可以仅向为了重建地址变换表而需要更多时间的一个以上SSD发送第2保存指示。并且,在从该一个以上SSD的全部接收到表示更新后的地址变换信息的保存完成的响应的情况下,处理器40也可以向剩余的各SSD发送第2保存指示。由此,为了重建地址变换表而需要更多时间的SSD能够保证完成对更新后的地址变换信息的保存。这样,能够缩短在电源恢复后直至所有的SSD3-1~3-5恢复到通常工作状态所需的时间。
或者,在向SSD3-1~3-5内的一个以上SSD发送第2保存指示的情形下,处理器40也可以选择存储有具备高访问频度的数据的一个以上SSD、或者存储有重要度更高的用户数据的一个以上SSD,仅向该选择的一个以上SSD发送第2保存指示。并且,在从该一个以上SSD的全部接收到表示更新后的地址变换信息的保存完成的响应的情况下,处理器40也可以向剩余的各SSD发送第2保存指示。由此,能够使得存储有具备高访问频度的数据或者重要度更高的用户数据的SSD更迅速地恢复到通常工作状态。
系统控制器42作为构成为对各种周边设备进行控制的控制器发挥功能。系统控制器42也可以包括SAS expander、PCIe Switch、PCIeexpander、闪存阵列控制器、或者RAID控制器。
电源电路43连接于外部电源50以及备用电源(Backup Power Source)44。电源电路43响应停电那样的意外断电事件,将电源从外部电源50切换至备用电源(Backup PowerSource)44,使用来自备用电源(BackupPower Source)44的电力向主机计算机2内的部件以及SSD3-1~3-5供给电力(备用电力)。该电源电路43对从外部电源50供给的电源电压进行监视,当该电源电压降低时,检测出发生了断电事件。发生断电事件时,该电源电路43可以产生向处理器40的中断信号,由此通知处理器40发生了断电事件。
图2表示PLP管理器64的构成例。
PLP管理器64包括电力量通知模块64A、失电检测模块64B、第1保存指示发送模块64C、第1保存完成通知接收模块64D、第2保存指示发送模块64E、第2保存完成通知接收模块64F。
电力量通知模块64A包括在发生意外断电事件前的通常工作期间用于向SSD3-1~3-5通知断电事件后能够供给的电力量(备用电力量)的命令群。断电事件后能够供给的电力量例如表示能够向1台SSD供给的电力量。该电力量也可以因每个SSD而不同。例如,可以对消耗电力大的SSD分配更多的电力量。该电力量也可以由每单位时间的电力[W]以及能够供给电力的期间[秒]来表示。
失电检测模块64B包括通过与电源电路43进行通信来检测意外断电事件的命令群。
第1保存指示发送模块64C包括用于将上述第1保存指示向SSD3-1~3-5发送的命令群。第1保存完成通知接收模块64D包括从SSD3-1~3-5接收到表示用户数据的保存完成的响应而用于将表示用户数据的保存完成/未完成的状态登记到用户数据保存管理表71的命令群。用户数据保存管理表71包括分别与多个存储设备(此处为SSD)对应的多个条目。各条目中设置有表示用户数据的保存未完成的值“0”、或者表示用户数据的保存完成的值“1”。
第2保存指示发送模块64E包括以下命令群:用于参照用户数据保存管理表71来判定是否从所有SSD3-1~3-5接收到表示用户数据的保存完成的响应的命令群、以及用于将上述第2保存指示向所有SSD3-1~3-5或者SSD3-1~3-5的至少一个发送的命令群。应当被发送第2保存指示的SSD基于存储设备管理信息表72的内容来决定。该存储设备管理信息表72包括分别与多个存储设备(此处为SSD)对应的多个条目。各条目中登记有对应的存储设备的存储容量、地址变换管理大小、数据种类、存储设备种类等。地址变换管理大小表示逻辑物理地址变换用的管理大小。例如,关于构成为以4K字节单位对各逻辑物理地址与各物理地址之间的映射进行管理的存储设备,4K字节即为地址变换管理大小。数据种类表示对应的存储设备中所存储的用户数据的重要度。或者,数据种类也可以是表示访问频度的统计值。
在本实施方式中,能够对为了重建地址变换表而需要更多时间的一个以上SSD优先发送第2保存指示。通常,存储容量越大,所需地址变换表的大小越增加。另外,逻辑物理地址变换用的管理大小越小,所需地址变换表的大小越增加。因此,第2保存指示发送模块64E也可以包括用于基于存储容量或者地址变换管理大小的至少一个而从SSD3-1~3-5中选择为了重建地址变换表而需要更多时间的一个以上SSD的命令群。
另外,也可以对存储有重要度更高的用户数据的一个以上SSD优先发送第2保存指示。在该情况下,第2保存指示发送模块64E也可以包括用于基于由数据种类表示的用户数据的重要度而从SSD3-1~3-5中选择存储有重要度更高的用户数据的一个以上SSD的命令群。
另外,也可以优先对存储有具有高访问频度的用户数据的一个以上SSD发送第2保存指示。
第2保存完成通知接收模块64F包括从SSD3-1~3-5接收到表示更新后的地址变换信息(元数据)的保存完成的响应而用于将表示元数据的保存完成/未完成的状态登记到元数据保存管理表73的命令群。元数据保存管理表73包括分别与多个存储设备(此处为SSD)对应的多个条目。各条目中设置有表示元数据的保存未完成的值“0”、或者表示元数据的保存完成的值“1”。
进而,第2保存指示发送模块64E也可以包括以下命令群:用于参照元数据保存管理表73来判定是否从被优先发送第2保存指示的几个SSD全部接收到表示元数据的保存完成的响应的命令群、以及在从被优先发送第2保存指示的几个SSD全部接收到表示元数据的保存完成的响应的情况下用于向剩余的各SSD发送第2保存指示的命令群。
图3表示SSD3-1的构成例。
其他SSD也具有与SSD3-1同样的构成。
如上所述,SSD3-1包括控制器4、NAND型闪速存储器5、以及DRAM6。
NAND型闪速存储器5的存储单元阵列包括多个区块B0~Bm-1。区块B0~Bm-1分别由多个页(此处为页P0~Pn-1)组成。区块B0~Bm-1作为擦除单位发挥功能。区块有时也被称作“擦除区块”或“物理区块”。页P0~Pn-1分别包括连接于同一字线的多个存储单元。页P0~Pn-1是数据写入动作以及数据读入动作的单位。
区块B0~Bm-1具备有限的擦除次数。擦除次数也可以由程序/擦除周期(Program/Erase cycles)的数来表示。某个区块的一个程序/擦除周期(Program/Erase cycles)包括:用于使该区块内的所有存储单元成为擦除状态的擦除动作、以及在该区块的每个页写入数据的写入动作(程序动作)。
控制器4经由Toggle、Open NAND Flash Interface(ONFI)那样的NAND接口13电连接于作为非易失性存储器的NAND型闪速存储器5。NAND接口13作为构成为对NAND型闪速存储器5进行控制的NAND控制电路而发挥功能。NAND型闪速存储器5也可以包括多个NAND型闪速存储器芯片。在该情况下,NAND接口13也可以经由多个通道Ch连接于这些NAND型闪速存储器芯片。一个通道与一个以上NAND型闪速存储器芯片连接。
控制器4也可以作为构成为执行NAND型闪速存储器5的数据管理以及区块管理的闪存变换层(FTL)而发挥功能。由该FTL执行的数据管理包括(1)表示各逻辑地址与NAND型闪速存储器5的各物理地址之间的对应关系的映射信息的管理、(2)用于隐藏页单位的读/写和区块单位的擦除动作的处理等。逻辑地址是为了指定SSD3-1的地址而由主机计算机2使用的地址。作为该逻辑地址可使用LBA(logical block address(addressing))。
各逻辑地址与各物理地址之间的映射管理,使用作为地址变换表(逻辑物理地址变换表)发挥功能的查找表(LUT)32来执行。控制器4使用查找表(LUT)32,以预定的管理大小单位对各逻辑地址与各物理地址之间的映射进行管理。与某个逻辑地址对应的物理地址表示写入有该逻辑地址的数据的NAND型闪速存储器5内的最新物理存储位置。地址变换表(LUT32)也可以在SSD3的电源接通时,从NAND型闪速存储器5加载到DRAM6。
对于页的数据写入,在每个擦除周期只能够进行1次。因此,控制器4将与某个逻辑地址对应的更新数据写入到其他物理存储位置,而不是存储有与该逻辑地址对应的以前的数据的物理存储位置。然后,控制器4更新查找表(LUT)32,将该逻辑地址与该其他物理存储位置相关联,并且使以前的数据无效。
区块管理包括:坏块管理、耗损均衡、垃圾收集等。耗损均衡是用于使每个区块的耗损均衡的动作。垃圾收集是指为了增加能够写入数据的空闲块的个数而将有效数据与无效数据混合存在的几个对象区块内的有效数据移动到其他区块(例如空闲块)。在此,有效数据意味着从LUT32参照的数据(也就是根据逻辑地址而作为最新数据关联的数据),之后有可能由主机计算机2读取的数据。无效数据意味着已经不可能由主机计算机2读取的数据。例如,与某个逻辑地址相关联的数据是有效数据,未与任何逻辑地址相关联的数据是无效数据。
然后,控制器4更新查找表(LUT)32,将有效数据被移动后的各逻辑地址映射到移动目的地的物理地址。通过将有效数据移动到其他区块,将仅成为了无效数据的区块作为空闲块释放。由此,该区块在擦除后能够再利用。
控制器4也可以包括主机接口11、CPU12、NAND接口13、DRAM接口14等。该CPU12、NAND接口13、DRAM接口14可以经由总线10相互连接。
主机接口11从主机计算机2接收各种指令(例如写指令、读指令、未映射(UNMAP)/修剪(Trim)指令、用于第1保存指示的指令、用于第2保存指示的命令等)。写指令包括写数据的逻辑地址(开始LBA)和传送长度。读指令包括表示应读取的数据的最初逻辑区块的逻辑地址(开始LBA)和数据长度。
CPU12是构成为对主机接口11、NAND接口13、以及DRAM接口14进行控制的处理器。CPU12响应SSD3的电源接通,将NAND型闪速存储器5所存储的控制程序(固件)加载到DRAM6上,通过执行该固件,来进行各种处理。例如,该CPU12除了上述FTL的处理以外,还能够执行用于处理来自主机计算机2的各种指令的指令处理等。CPU12的动作通过由CPU12执行的上述固件进行控制。此外,FTL处理以及指令处理的部分或全部也可以通过控制器4内的专用硬件执行。
CPU12可以作为备用电力量判定部21、第1保存部22、第1保存完成通知部23、第2保存部24、第2保存完成通知部25、以及地址变换表重建部26发挥功能。
在通常工作期间从主机计算机2接收到表示断电事件后能够供给的电力量的通知的情况下,备用电力量判定部21基于该通知的电力量,对能够存储于DRAM6内的写缓冲器(WB)31的未写入的用户数据的量、以及能够存储于DRAM6的未写入的更新后的地址变换信息的量(也就是,能够保持于查找表(LUT)32内的废数据的量)进行限制。废数据是与各逻辑地址对应的更新后的物理地址的集合。另外,备用电力量判定部21判定是否能够利用该通知的电力量对用户数据进行保存,也就是该通知的电力量是否为保存用户数据所需的足够的电力量。备用电力量判定部21将表示该判定结果的消息返还到主机计算机2。若通知的电力量不满足保护用户数据所需的电力量,则备用电力量判定部21将不能保存用户数据的意旨返还到主机计算机2。主机计算机2的PLP管理器64可以基于来自SSD3-1~3-5的消息,调整对于SSD3-1~3-5的电力量的分配,以使得所有SSD3-1~3-5至少能保存用户数据。
第1保存部22在从主机计算机2接收到上述第1保存指示的情况下,将未写入NAND型闪速存储器5的写缓冲器(WB)31内的用户数据保存到NAND型闪速存储器5,由此完成未完成的写入。此外,第1保存部22也可以将用户数据、以及用于重建地址变换表的地址信息这两者保存到NAND型闪速存储器5。为了能够重建地址变换表,该地址信息包含与该用户数据对应的逻辑地址。第1保存部22也可以从写缓冲器(WB)31读取与1页容量对应的一个以上用户数据部,将该一个以上用户数据部、以及与该一个以上用户数据部对应的地址信息(与该一个以上用户数据部对应的一个以上逻辑地址)写入同一页。各页也可以包含用户数据区域和冗余区域。在该情况下,与1页容量对应的一个以上用户数据部被写入页内的用户数据区域,一个以上逻辑地址被写入该页内的冗余区域。
未写入NAND型闪速存储器5的写缓冲器(WB)31内的所有用户数据的保存完成的情况下,第1保存完成通知部23将用户数据的保存完成通知给主机计算机2。
第2保存部24在从主机计算机2接收到上述第2保存指示的情况下,将未写入NAND型闪速存储器5的更新后的地址变换信息(查找表(LUT)32内的废数据)保存到NAND型闪速存储器5,由此,使得更新后的地址变换信息反映到NAND型闪速存储器5内的地址变换表。在未写入NAND型闪速存储器5的更新后的地址变换信息全部的保存完成的情况下,第2保存完成通知部25将更新后的地址变换信息的保存完成通知给主机计算机2。
来自主机计算机2的电力从断电恢复的情况下,地址变换表重建部26使用被写入各页的地址信息,重建地址变换表。此外,若已能将更新后的地址变换信息全部反映到NAND型闪速存储器5内的地址变换表,则无需重建地址变换表。
图4表示由主机计算机2和SSD3-1执行的写入动作的处理顺序。
当SSD3-1从主机计算机2接收到写指令,进而从主机计算机2接收到写数据时,SSD3-1将接收到的写数据暂时存储到写缓冲器(WB)31(步骤S101)。当将写数据存储到写缓冲器31后,SSD3-1将指令完成的响应返回到主机计算机2。
接着,SSD3-1以页为单位将写缓冲器31内的写数据写入NAND型闪速存储器5内的区块(步骤S102)。在该情况下,SSD3-1将与写数据对应的各逻辑地址(LBA)作为地址变换表重建用的地址信息写入页内的冗余区域。也就是说,SSD3-1将1页写数据以及与该1页写数据对应的各LBA写入同一页。
当写入写数据后,SSD3-1更新地址变换表(LUT)32,将表示写入了写数据的物理存储位置的物理地址映射到与写数据对应的各LBA中(步骤S103)。
之后,SSD3-1判定在步骤S102中写入了写数据的页的下一个写入目的页是否为区块内的最终页(步骤S104)。若写入了写数据的页的下一个写入目的页是区块内的最终页(步骤S104的是),则SSD3-1可以将LBA列表写入区块的最终页(步骤S105)。该LBA列表是为了能够高速重建地址变换表而追加的地址信息。写入到某个区块的最终页的LBA列表是在该区块内写入到各页的各用户数据所对应的LBA的集合。
图5表示写入NAND型闪速存储器5内的区块内的同一页的用户数据与LBA的关系、以及写入区块内的特定页的LBA列表。
在图5中,为了简化图示,假设区块BLK包括8个页(页0~7)。另外,假设各页的用户数据区域的大小为16K字节,逻辑物理地址变换用的管理大小为4K字节。
在页0中,用户数据区域写入数据d1、数据d2、数据d3、以及数据d4,冗余区域写入LBA1~4。LBA1~4是与数据d1~d4对应的逻辑地址(逻辑区块地址)。
在页1中,用户数据区域写入数据d5、数据d6、数据d7、以及数据d8,冗余区域写入LBA5~8。LBA5~8是与数据d5~d8对应的逻辑地址(逻辑区块地址)。
在页2中,用户数据区域写入数据d9、数据d10、数据d11、以及数据d12,冗余区域写入LBA9~12。LBA9~12是与数据d9~d12对应的逻辑地址(逻辑区块地址)。
在页3中,用户数据区域写入数据d13、数据d14、数据d15、以及数据d16,冗余区域写入LBA13~16。LBA13~16是与数据d13~d16对应的逻辑地址(逻辑区块地址)。
在页4中,用户数据区域写入数据d17、数据d18、数据d19、以及数据d20,冗余区域写入LBA17~20。LBA17~20是与数据d17~d20对应的逻辑地址(逻辑区块地址)。
在页5中,用户数据区域写入数据d21、数据d22、数据d23、以及数据d24,冗余区域写入LBA21~24。LBA21~24是与数据d21~d24对应的逻辑地址(逻辑区块地址)。
在页6中,用户数据区域写入数据d25、数据d26、数据d27、以及数据d28,冗余区域写入LBA25~28。LBA25~28是与数据d25~d28对应的逻辑地址(逻辑区块地址)。
在区块的最终页、也就是图5的页7中,可以写入LBA列表。LBA列表包括与数据d1~d28对应的LBA1~28。该LBA列表的写入目的页并不一定是区块的最终页。
图6表示由SSD3-1执行的第1保存动作的处理顺序。
在SSD3-1从主机计算机2接收到第1保存指示的情况下,SSD3-1将未写入NAND型闪速存储器5的写缓冲器31内的写数据以页为单位写入到NAND型闪速存储器5内的写入目的区块(步骤S201)。在该情况下,SSD3-1将与写数据对应的各逻辑地址(LBA)作为地址变换表重建用的地址信息写入页内的冗余区域。也就是说,SSD3-1将1页写数据以及与该1页写数据对应的各LBA写入同一页。
当写数据写入到写入目的区块之后,SSD3-1更新地址变换表(LUT)32,将表示写入有写数据的物理存储位置的物理地址数据映射到与写数据对应的各LBA中(步骤S202)。
接着,SSD3-1判定从写缓冲器31向NAND型闪速存储器5的所有未写入写数据的保存是否完成(步骤S203)。反复进行步骤S201~S202的处理,直至从写缓冲器31向NAND型闪速存储器5的所有未写入写数据的保存完成。
若所有未写入写数据的保存完成(步骤S204),则SSD3-1判定是否需要进行用数据填补当前写入目的区块的填补(padding)处理(步骤S204)。在当前写入目的区块存在未写入数据的空白区域的情况下,判定为需要填补处理。
若判定为需要填补处理(步骤S204中的是),则SSD3-1在当前写入目的区块的空白区域写入哑数据(dummy data)(步骤S205)。然后,SSD3-1将LBA列表写入当前写入目的区块的最终页(步骤S206)。
当LBA列表的写入完成后,SSD3-1将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
图7表示通过第1保存动作写入NAND型闪速存储器5内的区块BLK内的同一页的用户数据与LBA的关系、以及写入该区块内的特定页的LBA列表。
在图7中,假设未写入NAND型闪速存储器5的写缓冲器31内的写数据为数据d1~d14。另外,与图5中说明的情形同样地,假设区块BLK包括8个页(页0~7),各页的用户数据区域的大小为16K字节,逻辑物理地址变换用的管理大小为4K字节。
在页0中,用户数据区域写入数据d1、数据d2、数据d3、以及数据d4,冗余区域写入与数据d1~d4对应的LBA1~4。
在页1中,用户数据区域写入数据d5、数据d6、数据d7、以及数据d8,冗余区域写入与数据d5~d8对应的LBA5~8。
在页2中,用户数据区域写入数据d9、数据d10、数据d11、以及数据d12,冗余区域写入与数据d9~d12对应的LBA9~12。
在页3中,用户数据区域写入数据d13、数据d14,冗余区域写入与数据d13~d14对应的LBA13~14。页3的用户数据区域内的剩余区域写入哑数据(填补处理)。与哑数据对应的LBA不写入第3页的冗余区域。
关于页4~6,由于不存在应当写入写缓冲器31的数据,因而在用户数据区域以及冗余区域写入哑数据(填补处理)。由此,能够用数据填补区块BLK的页0~6。若未写入哑数据,则有可能导致长时间不发生对于写入目的区块BLK内的擦除状态的空白区域的数据的写入。在这样的情况下,有可能导致擦除状态的空白区域的可靠性降低。
页7(区块的最终页)中可以写入LBA列表。
图8表示由主机计算机2和SSD3-1~3-4执行的第1保存动作以及第2保存动作。
主机计算机2的处理器40判定是否发生了停电那样的意外断电事件(步骤S301)。若发生了意外断电事件(步骤S301的是),则处理器40向SSD3-1~3-4发送第1保存指示。
SSD3-1的控制器4当接收到第1保存指示时,将未写入NAND型闪速存储器5的写缓冲器(WB)31内的用户数据保存到NAND型闪速存储器5(步骤S302)。然后,当用户数据的保存完成后,SSD3-1的控制器4将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
SSD3-2也同样,当接收到第1保存指示时,将未写入SSD3-2内的NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5(步骤S303)。然后,当用户数据的保存完成后,SSD3-2将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
SSD3-3也同样,当接收到第1保存指示时,将未写入SSD3-3内的NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5(步骤S304)。然后,当用户数据的保存完成后,SSD3-3将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
SSD3-4也同样,当接收到第1保存指示时,将未写入SSD3-4内的NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5(步骤S305)。然后,当用户数据的保存完成后,SSD3-4将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
主机计算机2的处理器40判定是否从发送了第1保存指示的全部存储设备(此处为SSD3-1~3-4)接收到第1保存完成通知(步骤S306)。若从发送了第1保存指示的全部存储设备接收到第1保存完成通知(步骤S306的是),则处理器40向所有SSD3-1~3-4或者SSD3-1~3-4中的至少一个SSD发送第2保存指示。在图8中,例举了将第2保存指示向所有SSD3-1~3-4发送的情况。
SSD3-1的控制器4当接收到第2保存指示时,将未写入NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S307)。然后,当更新后的地址变换信息的保存完成后,SSD3-1的控制器4将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
SSD3-2也同样,当接收到第2保存指示时,将未写入SSD3-2内的NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S308)。然后,当更新后的地址变换信息的保存完成后,SSD3-2将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
SSD3-3也同样,当接收到第2保存指示时,将未写入SSD3-3内的NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S309)。然后,当更新后的地址变换信息的保存完成后,SSD3-3将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
SSD3-4也同样,当接收到第2保存指示时,将未写入SSD3-4内的NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S310)。然后,当地址变换信息的保存完成后,SSD3-4将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
图9表示由主机计算机2和SSD3-1~3-4执行的第1保存动作以及第2保存动作的另一处理顺序。
主机计算机2的处理器40判定是否发生了停电那样的意外断电事件(步骤S311)。若发生了意外断电事件(步骤S311的是),则处理器40向SSD3-1~3-4发送第1保存指示。
SSD3-1的控制器4当接收到第1保存指示时,将未写入NAND型闪速存储器5的写缓冲器(WB)31内的用户数据保存到NAND型闪速存储器5(步骤S312)。然后,当用户数据的保存完成后,SSD3-1的控制器4将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
SSD3-2也同样,当接收到第1保存指示时,将未写入SSD3-2内的NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5(步骤S313)。然后,当用户数据的保存完成后,SSD3-2将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
SSD3-3也同样,当接收到第1保存指示时,将未写入SSD3-3内的NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5(步骤S314)。然后,当用户数据的保存完成后,SSD3-3将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
SSD3-4也同样,当接收到第1保存指示时,将未写入SSD3-4内的NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5(步骤S315)。然后,当用户数据的保存完成后,SSD3-4将表示用户数据的保存完成的第1保存完成通知向主机计算机2发送。
主机计算机2的处理器40判定是否从发送了第1保存指示的全部存储设备(此处为SSD3-1~3-4)接收到第1保存完成通知(步骤S316)。若从发送了第1保存指示的全部存储设备接收到第1保存完成通知(步骤S316的是),则处理器40向所有SSD3-1~3-4或者SSD3-1~3-4内的至少一个SSD发送第2保存指示。在图9中,例举了仅向属于第1组的一个以上SSD(此处为SSD3-1、SSD3-2)发送第2保存指示的情况。属于第1组的SSD例如是,重建地址变换表所需时间比其他SSD长的SSD。通过向属于第1组的几个SSD优先发送第2保存指示,能够缩短在电源恢复后所有SSD恢复到通常工作状态所需的时间。
主机计算机2的处理器40仅向SSD3-1、SSD3-2发送第2保存指示。
SSD3-1的控制器4当接收到第2保存指示时,将未写入NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S317)。然后,当更新后的地址变换信息的保存完成后,SSD3-1的控制器4将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
SSD3-2也同样,当接收到第2保存指示时,将未写入SSD3-2内的NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S318)。然后,当更新后的地址变换信息的保存完成后,SSD3-2将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
主机计算机2的处理器40判定是否从第1组内的全部存储设备(此处为SSD3-1以及SSD3-2)接收到第2保存完成通知(步骤S319)。若从第1组内的全部存储设备(此处为SSD3-1以及SSD3-2)接收到第2保存完成通知(步骤S319的是),则处理器40向剩余的存储设备(此处为SSD3-3、SSD3-4)发送第2保存指示。
SSD3-3当接收到第2保存指示时,将未写入SSD3-3内的NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S320)。然后,当更新后的地址变换信息的保存完成后,SSD3-3将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
SSD3-4也同样,当接收到第2保存指示时,将未写入SSD3-4内的NAND型闪速存储器5的更新后的地址变换信息保存到NAND型闪速存储器5(步骤S321)。然后,当地址变换信息的保存完成后,SSD3-4将表示更新后的地址变换信息的保存完成的第2保存完成通知向主机计算机2发送。
图10的流程图表示由主机计算机2执行的、发送第1保存指示的处理的顺序。
当主机计算机2的处理器40检测出断电事件时(步骤S401),处理器40判定当前的指示模式是第1模式还是第2模式(步骤S402)。
第1模式是指,检测出断电事件之后立即向所有存储设备发送第1保存指示的模式。第2模式是指,在备用电源44的剩余电力量降低到阈值以下的情况下,向所有存储设备发送第1保存指示的模式。在备用电源44的剩余电力量降低到阈值以下之前外部电源50恢复的情况下,不向任何存储设备发送第1保存指示。由此,在发生了瞬间断电的情况下,不向任何存储设备发送第1保存指示,因而各存储设备能够继续通常动作。
若当前的指示模式是第1模式(步骤S402的是),则处理器40向全部存储设备发送第1保存指示(步骤S403)。
另一方面,若当前的指示模式不是第1模式、而是第2模式(步骤S402的否),则处理器40判定是否在备用电源44的剩余电力量降低到阈值X1以下之前外部电源50恢复(步骤S404、S405)。若在备用电源44的剩余电力量降低到阈值X1以下之前外部电源50恢复(步骤S405的是),则处理器40结束处理。另一方面,若在备用电源44的剩余电力量降低到阈值X1之前外部电源50没有恢复(步骤S405的否)而备用电源44的剩余电力量降低到阈值X1以下(步骤S404的是),则处理器40向全部存储设备发送第1保存指示(步骤S406)。
图11的流程图表示由主机计算机2执行的、发送第2保存指示的处理的顺序。
若主机计算机2的处理器40从全部存储设备接收到第1保存完成通知(步骤S501的是),则处理器40基于重建地址变换表(LUT)32所需的时间,确定属于第1组的存储设备(步骤S502)。在步骤S502中,处理器40基于与存储设备(此处为SSD3-1~3-5)对应的存储容量以及地址变换管理大小,将重建地址变换表(LUT)32所需时间更长的一个以上存储设备(一个以上SSD)决定为属于第1组的存储设备。
然后,处理器40向属于第1组的各个存储设备发送第2保存指示(步骤S503)。
接着,处理器40判定是否从属于第1组的所有存储设备接收到第2保存完成通知(步骤S504)。
若从属于第1组的所有存储设备接收到第2保存完成通知(步骤S504YES),则处理器40判定备用电源44的剩余电力量(例如剩余容量)是否为阈值X2(<X1)以上(步骤S505)。
若备用电源44的剩余电力量小于阈值X2(步骤S505的否),则处理器40不向剩余的所有存储设备(属于第1组的存储设备以外的存储设备)发送第2保存指示,而是执行用于关闭主机计算机2的处理(步骤S508)。由此,主机计算机2成为电源关闭状态,各存储设备也成为电源关闭状态。
若备用电源44的剩余电力量为阈值X2以上(步骤S505的是),则处理器40向剩余的所有存储设备发送第2保存指示(步骤S506)。处理器40判定是否从剩余的所有存储设备接收到第2保存完成通知(步骤S507)。
若处理器40从剩余的所有存储设备接收到第2保存完成通知(步骤S507的是),则执行用于关闭主机计算机2的处理(步骤S508)。
图12的流程图表示由主机计算机2执行的、发送第2保存指示的处理的另一顺序。
若主机计算机2的处理器40从全部存储设备接收到第1保存完成通知(步骤S601的是),则处理器40基于所存储的用户数据的重要度,确定属于第1组的存储设备(步骤S602)。在步骤S602中,处理器40将存储有重要度更高的用户数据的一个以上存储设备(一个以上SSD)决定为属于第1组的存储设备。
然后,处理器40向属于第1组的各存储设备发送第2保存指示(步骤S603)。
接着,处理器40判定是否从属于第1组的所有存储设备接收到第2保存完成通知(步骤S604)。
若从属于第1组的所有存储设备接收到第2保存完成通知(步骤S604的是),则处理器40判定备用电源44的剩余电力量(例如剩余容量)是否为阈值X2(<X1)以上(步骤S605)。
若备用电源44的剩余电力量小于阈值X2(步骤S605的否),则处理器40不向剩余的所有存储设备(属于第1组的存储设备以外的存储设备)发送第2保存指示,而是执行用于关闭主机计算机2的处理(步骤S608)。由此,主机计算机2成为电源关闭状态,各存储设备也成为电源关闭状态。
若备用电源44的剩余电力量为阈值X2以上(步骤S605的是),则处理器40向剩余的所有存储设备发送第2保存指示(步骤S606)。处理器40判定是否从剩余的所有存储设备接收到第2保存完成通知(步骤S607)。
若处理器40从剩余的所有存储设备接收到第2保存完成通知(步骤S607的是),则执行用于关闭主机计算机2的处理(步骤S608)。
此外,在步骤S602中,也可以将存储有具有高访问频度的用户数据的一个以上存储设备(一个以上SSD)决定为属于第1组的存储设备。
图13表示在断电事件发生前的通常工作期间内由主机计算机2和SSD3-1~3-5执行的处理顺序。
在意外断电事件发生前的通常工作期间内,主机计算机2的处理器40推定能够从备用电源44向各存储设备(此处为SSD3-1~3-5)供给的电力量(步骤S901)。该电力量也可以针对每个存储设备推定。然后,处理器40将推定的各个电力量通知给存储设备。
SSD3-1的控制器4当接收到能够向SSD3-1供给的电力量的通知时,对通知的电力量与保存用户数据所需的电力量进行比较(步骤S902)。保存用户数据所需的电力量也可以基于能够储存于写缓冲器(WB)31的用户数据的最大量进行推定。通常,能够储存于写缓冲器(WB)31的用户数据的最大量越大,写入性能越高。原因在于,能够并行地执行对于多个NAND型闪速存储器芯片的数据写入动作。
若通知的电力量为保存用户数据所需的电力量以上,则SSD3-1的控制器4判定为能够用从主机计算机2供给的备用电力保存用户数据。另一方面,若通知的电力量小于保存用户数据所需的电力量,则SSD3-1的控制器4判定为无法用从主机计算机2供给的备用电力保存用户数据。然后,SSD3-1的控制器4将能否保存用户数据(判定结果)通知给主机计算机2。
SSD3-2也同样,当接收到能够向SSD3-2供给的电力量的通知时,对通知的电力量与保存用户数据所需的电力量进行比较(步骤S903)。在此,判定是否能够用通知的电力量保存用户数据。然后,SSD3-2将能否保存用户数据(判定结果)通知给主机计算机2。
SSD3-3也同样,当接收到能够向SSD3-3供给的电力量的通知时,对通知的电力量与保存用户数据所需的电力量进行比较(步骤S904)。在此,判定是否能够用通知的电力量保存用户数据。然后,SSD3-3将能否保存用户数据(判定结果)通知给主机计算机2。
SSD3-4也同样,当接收到能够向SSD3-4供给的电力量的通知时,对通知的电力量与保存用户数据所需的电力量进行比较(步骤S905)。在此,判定是否能够用通知的电力量保存用户数据。然后,SSD3-4将能否保存用户数据(判定结果)通知给主机计算机2。
主机计算机2的处理器40当从全部存储设备接收到能否保存用户数据的通知时,对应当向各存储设备供给的电力量进行调整(步骤S906)。
例如,在主机计算机2的处理器40从SSD3-2~SSD3-4接受到能够保存用户数据这一通知、并且从SSD3-1接收到无法保存用户数据这一通知的情况下,处理器40可以进行以下调整:增加应当向SSD3-1供给的电力量,减少应当向SSD3-2~SSD3-4供给的电力量。
此外,在图13中,说明了对所有存储设备通知断电后能够供给的电力量的例子,但是主机计算机2的处理器40也可以对所有存储设备通知断电后能够供给电力的期间。各存储设备可以基于通知的期间,判定是否能够将用户数据保存到NAND型闪速存储器5。
图14表示用于对能够存储于SSD3-1内的DRAM6的未写入的用户数据的量以及能够存储于DRAM6中的未写入的更新后的地址变换信息的量进行限制的处理顺序。
在意外断电事件发生前的通常工作期间内,主机计算机2的处理器40推定能够从备用电源44向各存储设备(此处为SSD3-1~3-5)供给的电力量(步骤S1001)。然后,处理器40将推定的各电力量通知给存储设备。
SSD3-1的控制器4当接收到能够向SSD3-1供给的电力量的通知时,基于通知的电力量,计算出能够储存于DRAM6的未写入的用户数据的量以及能够储存于DRAM6的未写入的更新后的地址变换信息的量(步骤S1002)。
之后,当SSD3-1的控制器4从主机计算机2接收写指令,进而从主机计算机2接收到写数据时,SSD3-1的控制器4将接收到的写数据暂时到存储到写缓冲器31(步骤S1003)。当写数据存储到写缓冲器31后,SSD3-1的控制器4将指令完成的响应返回到主机计算机2。
接着,控制器4判定写缓冲器31内所存储的未写入的写数据的量是否达到限制值(步骤S1004)。该限制值表示在步骤S1002中算出的能够储存于DRAM6的未写入的用户数据的量。在写缓冲器31内所存储的未写入的写数据的量达到限制值之前,控制器4能够将从主机计算机2接收的新的写数据储存于写缓冲器31,而不是将写缓冲器31内的写数据写入NAND型闪速存储器5。
若写缓冲器31内所存储的未写入的写数据的量达到限制值(步骤S1004的是),则控制器4将写缓冲器31内的写数据写入NAND型闪速存储器5(步骤S1005)。然后,控制器4更新LUT32,将表示写入有写数据的物理存储位置的物理地址映射到与写数据对应的各LBA(步骤S1006)。
接着,控制器4判定LUT32内的更新后的地址变换信息的量是否达到限制值(步骤S1007)。该限制值表示在步骤S1002中算出的能够储存于DRAM6的未写入的更新后的地址变换信息的量。在LUT32内的未写入的更新后的地址变换信息的量达到限制值之前,控制器4能够继续LUT32的更新,而不是将未写入的更新后的地址变换信息保存到NAND型闪速存储器5。
若未写入的更新后的地址变换信息的量达到限制值(步骤S1007的是),则控制器4将未写入的更新后的地址变换信息写入NAND型闪速存储器5(步骤S1008)。
此外,在图14中,说明了对能够储存于DRAM6的未写入的用户数据的以及能够储存于DRAM6的未写入的更新后的地址变换信息的量这两者进行限制的情况,但是也可以基于通知的电力量,仅对能够储存于DRAM6的未写入的用户数据的量进行限制。
接着,参照图15以及图16,对重建地址变换表的处理进行说明。
图15表示将未写入NAND型闪速存储器5的用户数据保存到NAND型闪速存储器5的多个区块BLK11~BLK13的动作。
在从主机计算机2接收到第1保存指示的情况下,控制器4将未写入NAND型闪速存储器5的写缓冲器31内的用户数据、以及用于重建LUT32的地址信息(用户数据的LBA)保存到NAND型闪速存储器5。
在图15中,在BLK11中,页0中写入用户数据d1~d4以及与用户数据d1~d4对应的LBA1~4,页1中写入用户数据d5~d8以及与用户数据d5~d8对应的LBA5~8,页2中写入用户数据d9~d12以及与用户数据d9~d12对应的LBA9~12,页3中写入用户数据d13~d16以及与用户数据d13~d16对应的LBA13~16。
在BLK12中,页0中写入用户数据d21~d24以及与用户数据d21~d24对应的LBA21~24,页1中写入用户数据d25~d28以及与用户数据d25~d28对应的LBA25~28,页2中写入用户数据d29~d32以及与用户数据d29~d32对应的LBA29~32,页3中写入用户数据d33~d36以及与用户数据d33~d36对应的LBA33~36。
在BLK13中,页0中写入用户数据d41~d44以及与用户数据d41~d44对应的LBA41~44,页1中写入用户数据d45~d48以及与用户数据d45~d48对应的LBA45~48,页2中写入用户数据d49~d52以及与用户数据d49~d52对应的LBA49~52,页3中写入用户数据d53~d56以及与用户数据d53~d56对应的LBA53~56。
图16表示重建地址变换表的动作的例子。
地址变换表保持分别与多个LBA对应的物理地址。SSD3-1的控制器4对存储有用户数据的各区块内的各页所存储的地址变换表重建用的地址信息(LBA)进行读取。
例如,控制器4从区块BLK11的页0读取LBA1~4,将与LBA1对应的物理地址变更为表示存储有数据d1的物理存储位置的物理地址(BLK11、Page0、Offset0),将与LBA2对应的物理地址变更为表示存储有数据d2的物理存储位置的物理地址(BLK11、Page0、Offset1),将与LBA3对应的物理地址变更为表示存储有数据d3的物理存储位置的物理地址(BLK11、Page0、Offset2),将与LBA4对应的物理地址变更为表示存储有数据d3的物理存储位置的物理地址(BLK11、Page0、Offset3)。
接着,控制器4从区块BLK11的页1读取LBA5~8,将与LBA5对应的物理地址变更为表示存储有数据d5的物理存储位置的物理地址(BLK11、Page1、Offset0),将与LBA6对应的物理地址变更为表示存储有数据d6的物理存储位置的物理地址(BLK11、Page1、Offset1),将与LBA7对应的物理地址变更为表示存储有数据d7的物理存储位置的物理地址(BLK11、Page1、Offset2),将与LBA8对应的物理地址变更为表示存储有数据d8的物理存储位置的物理地址(BLK11、Page1、Offset3)。
接着,控制器4从区块BLK11的页2读取LBA9~12,将与LBA9对应的物理地址变更为表示存储有数据d9的物理存储位置的物理地址(BLK11、Page2、Offset0),将与LBA10对应的物理地址变更为表示存储有数据d10的物理存储位置的物理地址(BLK11、Page2、Offset1),将与LBA11对应的物理地址变更为表示存储有数据d11的物理存储位置的物理地址(BLK11、Page2、Offset2),将与LBA12对应的物理地址变更为表示存储有数据d12的物理存储位置的物理地址(BLK11、Page2、Offset3)。
接着,控制器4从区块BLK11的页3读取LBA13~16,将与LBA13对应的物理地址变更为表示存储有数据d13的物理存储位置的物理地址(BLK11、Page3、Offset0),将与LBA14对应的物理地址变更为表示存储有数据d14的物理存储位置的物理地址(BLK11、Page3、Offset1),将与LBA15对应的物理地址变更为表示存储有数据d15的物理存储位置的物理地址(BLK11、Page3、Offset2),将与LBA16对应的物理地址变更为表示存储有数据d16的物理存储位置的物理地址(BLK11、Page3、Offset3)。
同样,控制器4读取在区块BLK12存储的LBA21~36,将与LBA21~36对应的物理地址变更为表示存储有数据d21~d36的物理存储位置的物理地址。
进而,控制器4读取在区块BLK13存储的LBA41~56,将与LBA41~56对应的物理地址变更为表示存储有数据d41~d56的物理存储位置的物理地址。
图17的流程图表示由SSD3-1执行的重建地址变换表32的处理顺序。
在从主机计算机2向SSD3-1供给的电力恢复了的情况下,SSD3-1的控制器4判定断电时第2保存动作(更新后的地址变换信息的保存)是否完成(步骤S1101)。若更新后的地址变换信息已保存到NAND型闪速存储器5(步骤S1101的是),则控制器4从NAND型闪速存储器5读取反映了更新后的地址变换信息的地址变换表的全部或部分,将地址变换表的全部或部分作为查找表(LUT)32存储到DRAM6(步骤S1102)。
若更新后的地址变换信息未保存到NAND型闪速存储器5(步骤S1101的否),则控制器4读取存储有用户数据的各区块内的各页所存储的地址变换表重建用的地址信息(LBA)(步骤S1103)。然后,控制器4基于读取的各LBA以及与该LBA对应的各页的物理地址,重建地址变换表(步骤S1104)。此外,在各区块的最终页存储有LBA列表的情况下,控制器4可以使用各区块的LBA列表,重建地址变换表。
在以上的说明中,主要说明了作为能够连接于主机计算机2的多个存储设备而使用SSD3-1~3-5的情况,如上所述,这些存储设备也可以是使用了瓦记录(Shingledmagnetic recording:SMR)技术的硬盘驱动器(HDD)。
图18表示使用了SMR技术的硬盘驱动器(HDD)的构成例。
图18所示的HDD具备:盘(磁盘)111、头(磁头)112、主轴电机(SPM)113、致动器114、驱动器IC115、头IC116、控制器117、以及DRAM118。
在该HDD中,应用被分配到逻辑地址的盘111上的物理位置(例如扇区位置)不固定的寻址方式。
盘111例如是在其一面上具备供磁记录数据的记录面的记录介质(非易失性存储介质)。盘111通过SPM113而高速旋转。SPM113由从驱动器IC115供给(施加)的驱动电流(电压)驱动。盘111(更详细地说是盘111的记录面)例如被区划为多个同心圆状的存储区域。也就是说,盘111具备多个同心圆状的存储区域。存储区域的数量设为n。n个存储区域的各个一般被称作区,分别具备多个磁道。各区例如作为数据一次写入型访问区域使用。也就是说,以盘111上的区为单位改写数据。另外,以区为单位擦除数据。
头112与盘111的记录面对应地配置。头12具备用于从盘111读取数据的读元件和用于向盘111写入数据的写元件。读元件及写元件也分别被称为读取器(reader)及写入器(writer)。写元件的宽度设为大于读元件的宽度。向盘111上的区的数据的写入使用叠瓦式磁记录(SMR)。叠瓦式磁记录中,从区内的起始磁道到最终磁道依次写入数据。然后,每当1个磁道那么多的数据被写入区时,写元件(头112)就在盘111的半径方向上移动与读元件的跟踪轨迹(读磁道)对应的间距。
头112安装于致动器114的前端。头112通过盘111高速旋转而浮于该盘111上。致动器114具有作为该致动器114的驱动源的音圈电机(VCM)140。VCM140由从驱动器IC115供给(施加)的驱动电流(电压)驱动。通过致动器114由VCM140驱动,头112在盘111上在该盘111的半径方向上,以描绘圆弧的方式移动。
此外,与图18所示的构成不同,HDD也可以具备多个盘。另外,图18所示的盘111也可以构成为:在其两个面上具备记录面,与该记录面的每个记录面对应地配置头。
驱动器IC115根据控制器117(更详细地说是控制器117内的CPU173)的控制,对SPM113和VCM140进行驱动。头IC116包括读放大器,对由头112再现的信号(即再现信号)进行放大。头IC116还包括写驱动器,将从控制器117内的R/W通道171送出的写数据变换为写电流,并将该写电流向头112送出。
控制器117例如使用多个元件集成到单一芯片的被称作system-on-a-chip(SOC)的大规模集成电路(LSI)来实现。控制器117具备:读/写(R/W)通道171、硬盘控制器(HDC)172、以及CPU173。
R/W通道171处理与读/写相关联的信号。R/W通道171通过模拟-数字变换器将再现信号(读信号)变换为数字数据,从数字数据解码读数据。另外,R/W通道171从数字数据中提取头112定位所需的伺服数据。另外,R/W通道171对写数据进行编码。
HDC172与主机(主机装置)连接。HDC172接受从主机转送的指令(写指令、读指令等)。HDC172对主机与DRAM118之间的数据转送以及DRAM118与R/W通道171之间的数据转送进行控制。
CPU173作为图18所示的HDD的主控制器发挥功能。CPU173根据控制程序,对包括HDC172的、HDD内的至少一部分要素进行控制。
DRAM118的存储区域的一部分作为用于暂时存储从主机计算机2接收的写数据的写缓冲器(WB)118A使用。另外,DRAM118的存储区域的另一部分用于存储地址变换表118B。进而,DRAM118的存储区域的又一部分也可以用于存储各种系统管理信息33。
地址变换表118B用于以写入有数据的扇区为单位,对逻辑地址与物理地址的对应进行管理。在此,假设向区新写入与某个逻辑地址(例如LBA)对应的数据。在该情况下,不将数据写入与该LBA对应的区,而是写入空白区域。在向区的写入完成时,HDC172更新HDC172地址变换表118B中的表示LBA与物理地址的对应关系的信息。
图19表示更新数据的写入动作。
在图19中,为了简化图示,示出了两个区。各区具有多个磁道(例如Track0~4)。
对区1所记录的用户数据的一部分进行改写的情况下,更新数据记录到不同于区1的其他新区。此时,地址变换表118B被更新,表示更新数据的物理存储位置的物理地址被映射到更新前的数据所对应的LBA。
图20表示作为主机计算机2发挥功能的计算机的构成例。
该计算机具备能够收纳于机架(rack)的薄盒形的壳体201。多个SSD3也可以配置在壳体201内。在该情况下,各SSD也可以以能够拆卸的方式插入到设置于壳体201的前面201A的插槽。
系统板(主板,mother board)202配置于壳体201内。在系统板(主板)202上,安装有包括处理器40、存储器41、系统控制器42、电源电路43在内的各种电子部件。这些电子部件作为主机计算机(主机装置)2发挥功能。
如上所述,根据本实施方式,主机计算机2在断电事件之后,向多个存储设备发送第1保存指示,该第1保存指示指示应该将未写入NAND型闪速存储器5那样的非易失性存储介质的用户数据从DRAM6那样的易失性存储器保存到非易失性存储介质。并且,在从多个存储设备的全部接受到表示向非易失性存储介质的用户数据的保存完成的响应的情况下,主机计算机2向多个存储设备的全部或多个存储设备内的一个以上存储设备发送第2保存指示,该第2保存指示指示应该将更新后的地址变换信息从易失性存储器保存到非易失性存储介质。由此,在所有存储设备完成用户数据的保存之后,能够转向将更新后的地址变换信息保存的追加的保存处理。由此,能够防止即使存在正在保存用户数据的存储设备,几个存储设备仍开始追加的保存处理的情况。因此,能够大幅降低在某个存储设备完成用户数据的保存之前来自主机计算机2的备用电力中断的可能性。
另外,主机计算机2能够向重建地址变换表所需时间更长的一个以上第1存储设备优先发送第2保存指示。然后,在从一个以上第1存储设备全部接受到表示更新后的地址变换信息的保存完成的响应的情况下,主机计算机2向剩余的各存储设备发送所述第2保存指示。由此,能够缩短在电源恢复后所有存储设备恢复到通常工作状态所需的时间。
此外,在本实施方式中,作为非易失性存储器例举了NAND型闪速存储器。但是,本实施方式的功能也能应用于例如MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、或者FeRAM(Ferroelectric Random Access Memory)那样其他各种非易失性存储器。
虽然对本发明的几个实施方式进行了说明,但是这些实施方式是作为例子提出的,并非旨在限定发明的范围。这些新颖的实施方式能够以其他各种方式实施,在不脱离发明宗旨的范围内,可以进行各种省略、置换、变更。这些实施方式和/或其变形包含在发明的范围和/或宗旨中,并且,包含在技术方案所记载的发明和其等同的范围内。