存储装置以及该装置中的管理信息退避方法与流程

文档序号:11387980阅读:280来源:国知局
本发明的实施方式涉及存储装置以及该装置中的管理信息退避(转移保存)方法。
背景技术
::作为存储装置例如磁盘装置中使用的管理信息,已知有系统信息。系统信息由系统(例如,磁盘装置的控制器)用于管理(例如,已写入盘的数据的管理)。为了处理的高速化,系统信息被存储于动态ram(dram)这样的易失性存储器来使用。保存在易失性存储器中的系统信息因向磁盘装置供给电力的切断(断电)而消失。另一方面,为了避免因断电导致数据消失,即,为了保护数据避免断电影响,以往以来提出了各种方法。这些方法之一是如下方法:在断电时使用备用电源将保存在易失性存储器中的数据(例如,未写入盘的写数据)退避到闪速rom这样的非易失性存储器。使用该方法提供的数据保护功能也被称为掉电保护(powerlossprotection:plp)功能。因此,考虑利用plp功能将系统信息从易失性存储器退避到非易失性存储器。但是,即使利用了plp功能,也难以在能够从备用电源供给电力的时间(即,可备份时间)内将易失性存储器内的全部系统信息(更详细而言,全部种类的系统信息)退避到非易失性存储器。如果存在未退避的系统信息,则该未退避的系统信息因断电而消失。该情况下,磁盘装置的控制器必须在该磁盘装置被启动时将未退避的系统信息恢复到即将发生断电之前的状态。上述的恢复所需的时间主要取决于应恢复的系统信息的种类。plp功能例如也通过固态驱动器(ssd)这样的、磁盘装置以外的存储装置来提供。即使在这样的存储装置中利用了plp功能,在发生了断电的情况下,也未必能够退避全部系统信息。技术实现要素:本发明的实施方式提供一种能够缩短对在断电时未从易失性存储器退避到非易失性存储器的管理信息进行恢复所需的时间的存储装置以及该装置中的管理信息退避方法。实施方式的具备非易失性存储介质的存储装置,具备易失性存储器、能够以比所述非易失性存储介质快的速度进行访问的非易失性存储器、以及控制器。所述易失性存储器保存用于所述存储装置中的管理的多个管理信息。所述控制器基于对所述多个管理信息分别进行恢复所需的恢复时间,将一个以上的管理信息决定为应退避到所述非易失性存储器的退避对象。所述控制器进一步相应于向所述存储装置的电力供给的切断而将所述决定出的管理信息退避到所述非易失性存储器。附图说明图1是表示实施方式涉及的磁盘装置的典型结构的框图。图2是表示图1所示的dram内的缓冲区域的典型的存储器映射图(memorymap)的例子的图。图3是表示图2所示的系统缓冲区域的cpu存储器空间中的映射(mapping)的例子的图。图4是表示图1所示的from内的退避区域的典型的存储器映射图的例子的图。图5是表示图1所示的系统缓冲管理表的数据构造例的图。图6是表示图1所示的from管理表的数据构造例的图。图7是表示图1所示的退避管理表的数据构造例的图。图8是表示该实施方式中的系统信息退避处理的典型步骤的流程图。图9是表示系统信息退避处理所包含的退避对象决定处理的典型步骤的流程图。具体实施方式以下,参照附图对实施方式进行说明。图1是表示实施方式涉及的磁盘装置的典型结构的框图。磁盘装置是存储装置的一例,也被称为硬盘驱动器(hdd)。因此,在以下的说明中,将磁盘装置表述为hdd。图1所示的hdd具备头盘组件(hda)11、驱动器ic12、控制器13、dram14、闪速rom(from)15以及备用电源16。hda11包括盘110。盘110例如是在该盘110的至少一个面具备以磁方式记录数据的记录面的非易失性存储介质。即,盘110具有存储区域111。存储区域111的一部分被用作媒体缓存(mediacache,mc)区域112,该存储区域111的另外一部分被用作用户数据区域113。用户数据区域113例如被划分成被称为带(band)的多个同心圆状的区域。各带例如被用作数据补记型访问区域。mc区域112例如构成不能被用户访问的区域(所谓的系统区域)的一部分。mc区域112被用于对保存在dram14的缓冲区域141内的数据缓冲区域144(图2)中的数据的一部分(例如,随机访问的写数据)按次序进行保存(退避)。在本实施方式中,数据缓冲区域144和mc区域112分别被用作一次缓存和二次缓存。用户数据区域113例如用于保存由来自主机的写命令确定的写数据。hda11还包括头、主轴马达(spm)以及致动器等周知的机械要素。但是,这些要素在图1中省略。头被支承于悬架,包括读元件和写元件。写元件的宽度设为比读元件的宽度大。写元件和读元件的宽度是指与悬架的中心线正交的方向上的宽度。在本实施方式中,对于向盘110写入数据,使用叠瓦式磁记录(shingledmagneticrecording)。在叠瓦式磁记录中,从各带内的开头的磁道到末尾的磁道依次写入数据。并且,每当一个磁道的数据被写入带时,写元件以与写磁道的一部分重叠的方式在盘110的半径方向上移动与读元件跟随的轨迹(读磁道)对应的间距。使用叠瓦式磁记录而被写入数据的各带包括第1磁道和与该第1磁道局部重叠的第2磁道。spm使盘110旋转。驱动器ic12按照控制器13(更详细而言,控制器13内的cpu133)的控制来驱动spm以及致动器。控制器13例如使用将多个元件集成在单个芯片上的被称为片上系统(system-on-a-chip,soc)的大规模集成电路(lsi)来实现。控制器13包括主机接口控制器(以下,称为hif控制器)131、盘接口控制器(以下,称为dif控制器)132以及cpu133。hif控制器131经由主机接口20与主机装置(以下,称为主机)连接。hif控制器131接收从主机传送的命令(写命令、读命令等)。hif控制器131控制主机与dram14之间的数据传送。dif控制器132控制盘110与dram14之间的数据传送。dif控制器132包括读/写通道(未图示)。读/写通道处理与对盘110的读/写关联的信号。读/写通道将从盘110读取的信号(读信号)通过模拟-数字转换器转换成数字数据,从数字数据解码读数据。另外,读/写通道从数字数据提取头的定位所需的伺服数据。另外,读/写通道对向盘110写入的写数据进行编码。此外,读/写通道也可以独立于dif控制器132而设置。该情况下,dif控制器132控制dram14与读/写通道之间的数据传送即可。cpu133是作为图1所示的hdd的主控制器发挥功能的处理器。cpu133按照控制程序来控制hdd内的其他要素的至少一部分。该至少一部分包括驱动器ic12、hif控制器131以及dif控制器132,在本实施方式中,控制程序被预先保存于盘110或from15的特定的存储区域中。cpu133包括sram134。sram134是通常具有比dram14高的访问速度的易失性存储器。但是,也可以取代sram134而使用dram14。控制程序的至少一部分例如在开始了从主电源向hdd供给电力的情况下,被从from15加载到sram134(或dram14)的存储区域的一部分。另外,控制程序也可以被预先保存于盘110或读取专用的非易失性存储器(例如rom)(未图示)。控制程序的至少一部分也可以不一定被加载到sram134(或dram14)。sram134的存储区域的另外一部分被用于保存系统缓冲管理表135以及from管理表136。表135以及136被预先保存于盘110的特定的存储区域,在hdd启动时被从该特定的存储区域加载到sram134(或dram14)。另外,表135以及136也可以预先保存于from15或rom(未图示)。表135以及136不一定需要被加载到sram134(或dram14)。dram14的存储区域的一部分被用作缓冲区域141。缓冲区域141的一部分被用作用于保存多个系统信息(更详细而言,多个种类的系统信息)的系统缓冲区域143(图2)。缓冲区域141的另外一部分被用作用于保存应向盘110写入的数据以及从盘110读出的数据的数据缓冲区域144(图2)。dram14的存储区域的另外一部分用于保存退避管理表142。退避管理表142用于保持与多个系统信息的退避相关的管理信息。此外,退避管理表142也可以保存于sram134。from15是可改写的非易失性存储器。在本实施方式中,在from15的存储区域的一部分预先保存有初始程序加载程序(ipl)。cpu133例如通过相应于开始从主电源向hdd供给电力来执行ipl,由此将保存在from15的存储区域的另外一部分或盘110中的控制程序的至少一部分加载到sram134。ipl例如也可以预先保存于rom。from15的存储区域的另外一部分被用作退避区域150。退避区域150用于在从主电源向hdd的电力供给被切断的情况下对保存在dram14的缓冲区域141中的信息的一部分进行退避。此外,dram14以及from15也可以设置于控制器13的内部。备用电源16相应于向hdd的电力供给的切断(断电)而暂时生成电力。所生成的电力被用于将保存在缓冲区域141中的信息的一部分退避到from15内的退避区域150。但是,在本实施方式中,所生成的电力设为也用于使头撤回到偏离盘110的地方(所谓的斜坡)。图2表示dram14内的缓冲区域141的典型的存储器映射图的例子。如前所述,缓冲区域141包括系统缓冲区域143和数据缓冲区域144。系统缓冲区域143例如用于保存表tbl1至tbl5。表tbl1至tbl5分别用于保持用于hdd管理的第1至第5种系统信息(管理信息)。在本实施方式中,各表tbl1至tbl5(第1至第5种系统信息)的大小已预先确定,在图2中,如括弧内所记载的那样,分别是20000h、50000h、40000h、30000h以及10000h。此外,它们的大小的单位为字节,末尾的h表示是16进制表述。系统缓冲区域143被分配到能够被cpu133识别的存储器空间(即cpu存储器空间)的特定的地址范围。图3表示cpu存储器空间中的系统缓冲区域143的映射的例子。如图3所示,系统缓冲区域143例如被分配到cpu存储器空间30中的地址范围40000h至4f0000h。地址范围40000h至4f0000h的大小等于表tbl1至tbl5的大小的总和(f0000h)。因此,保存在系统缓冲区域143中的表tbl1、tbl2、tbl3、tbl4以及tbl5分别被分配到cpu存储器空间30中的地址范围40000h至42000h、42000h至47000h、47000h至4b000h、4b000h至4e000h、以及4e000h至4f000h。该情况下,cpu133例如通过使用cpu地址40000h至42000h的任一个,能够对保存在系统缓冲区域143中的表tbl1内的条目进行访问。图4表示from15内的退避区域150的典型的存储器映射图的例子。退避区域150包括用于使用plp功能来退避dram14内的表tbl1至tbl5的表退避区域151至155。在本实施方式中,对于表退避区域151、152、153、154以及155,from15中的地址(即,from地址)的范围分别被确保为0h至20000h、20000h至70000h、70000h至b0000h、b0000h至e0000h、以及e0000h至f0000h的区域。图5表示系统缓冲管理表135的数据构造例。系统缓冲管理表135具有与表tbl1至tbl5分别关联的条目。系统缓冲管理表135内的第i个(i=1,2,3,4,5)条目用于保持用于对cpu存储器空间30(即,分配有系统缓冲区域143的cpu存储器空间30)中的表tbli(第i种系统信息)的保存目的地(映射目的地)进行管理的管理信息(系统缓冲管理信息)。系统缓冲管理信息包括表tbli的标识符(id)、cpu地址和大小信息。cpu地址表示分配有表tbli(更详细而言,保存表tbli的dram14内的区域)的cpu存储器空间30内的cpu地址范围的开头位置。大小信息表示cpu地址范围的大小。该大小等于表tbli的大小。图6表示from管理表136的数据构造例。from管理表136具有与表tbl1至tbl5分别关联的条目。from管理表136内的第i个条目用于保持用于对from15中的表tbli的退避目的地进行管理的管理信息(退避目的地管理信息)。但是,在本实施方式中,在使用了plp功能的退避工作中,不限于将表tbl1至tbl5全部退避到由from管理表136管理的退避目的地。退避目的地管理信息包括表tbli的id、from地址和大小信息。from地址表示作为表tbli的退避目的地而使用的from15内的from地址范围的开头位置。大小信息表示from地址范围的大小。该大小等于表tbli的大小。在本实施方式中,设为系统缓冲管理表135以及from管理表136的内容通过控制程序被预先确定、且不被更新。另外,在表135以及136中,与表tbl1至tbl5关联的条目的顺序也通过控制程序被预先确定。因此,cpu133能够按照控制程序在表135以及136中确定与表tbl1至tbl5关联的条目。因此,表135以及136的各条目不一定需要具有对应的表的id。图7表示退避管理表142的数据构造例。退避管理表142具有与表tbl1至tbl5分别关联的条目。退避管理表142内的第i个条目用于保持用于对表tbli的退避进行管理的管理信息(退避管理信息)。退避管理信息包括表tbli的id、更新标志(flag)、大小信息、恢复时间信息和退避标志。更新标志表示是否为表tbli已被更新但该更新后的表tbli未保存到盘110。在更新标志表示表tbli的更新以及未保存(即,更新后的表tbli的未保存)的情况下,该更新标志也表示表tbli是断电时的退避的候选。大小信息表示表tbli的大小。恢复时间信息表示假设在更新后的表tbli未保存到盘110的状态下尽管发生了断电但该表tbli却未被退避时、在hdd启动时应执行的用于恢复该表tbli的工作所需的时间(恢复时间)。图7所示的恢复时间的单位例如为毫秒(ms)。表tbli的恢复时间主要取决于该表tbli的种类(更详细而言,该表tbli所保持的系统信息的种类),例如,通过恢复时间决定处理来决定。退避标志表示表tbli是否在断电时应被退避。退避标志以及上述的更新标志在初始状态下被清除(clear)。在图7中,退避标志和更新标志分别被设置(set,置位)的状态由“1”表示,退避标志和更新标志分别被清除的状态由“0”表示。接着,对于与上述的恢复时间相关的恢复工作,以恢复表tbli的情况为例来说明。在本实施方式中,表tbli(更详细而言,更新后的表tbli)适当地(例如,在未从主机请求访问的hdd的空闲状态下)保存于盘110的特定区域。在此,设为尽管表tbli已被更新但在被保存到盘110之前发生了断电。该情况下,如果更新后的表tbli(即,最新的表tbli)未被退避到例如from15,则该最新的表tbli消失。另外,上述的更新未反映于在该更新以前保存在盘110的特定区域中的表tbli(更详细而言,旧表tbli)。因此,cpu133在hdd启动时,执行用于将表tbli恢复到即将发生断电之前的状态的恢复工作。设为表tbli例如是用于管理mc区域112所保存的数据(即,随机访问的写数据)的表(以下,称为mc管理表)。该情况下,表tbli按来自主机的写命令而保持用于管理写数据(随机访问写数据)的管理信息。该管理信息包括逻辑地址(例如逻辑块地址)、mc地址以及大小信息。逻辑块地址表示写数据的开头的逻辑位置(即,由主机识别的位置)。mc地址表示保存在mc区域112中的写数据的开头的物理位置(即,盘110上的位置)。大小信息表示写数据的大小。在该写数据(随机访问写数据)被保存于mc区域112的情况下,对该写数据附加报头(header)。该报头与表tbli所保持的管理信息同样地,包括逻辑块地址、mc地址以及大小信息。在恢复工作中,cpu133在表tbli最近被退避到盘110的特定区域的时刻以后,读取被写入到mc区域112的数据。并且,cpu133基于对所读取的数据附加的报头的信息来恢复表tbli。为了该恢复,cpu133需要使用读取工作来检测因断电导致数据的写入未完成的mc区域112上的部位(写入未完成点)。如本实施方式所示,在向mc区域112写入的数据是随机访问写数据的情况下,写入未完成点的检测需要较长时间。其主要要因如下。如本实施方式所示,在对向盘110的数据写入应用叠瓦式磁记录的情况下,一个磁道的数据先被重叠于已写入数据的磁道的一部分而写入。也就是说,在叠瓦式磁记录中,因重叠写入而损坏相邻磁道的数据的一部分。因此,在数据的写入到达带的终端之前发生了断电的情况下,在该带的一部分会产生包含数据受损的扇区的磁道(与正在写入的磁道相邻的接着的磁道)。因此,dif控制器132针对数据受损的部分,为了尽可能地读取数据,反复多次进行重试。这就是写入未完成点的检测需要较长时间的理由。重试所需的最大的或平均的时间(第1时间)和二分法检索(binarysearch)所需的最大的或平均的时间(第2时间)能够通过计算来算出。因此,在表tbli是mc管理表的情况下,cpu133通过执行恢复时间决定处理,能够基于第1时间以及第2时间来决定(预测)该表tbli的恢复所需的时间。接着,设为表tbli是用于管理数据流的管理表(以下,称为旁路表(bypasstable))。各数据流由序列数据构成。该情况下,表tbli按各个数据流来保持用于管理对应的序列数据(序列写数据)的管理信息。在本实施方式中,表tbl1至tbl5之一是mc管理表,表tbl1至tbl5的另外之一是旁路表。另外,设为表tbl1至tbl5不包括用于管理数据的逻辑地址(例如逻辑块地址)与实际保存该数据的盘110(非易失性存储介质)上的物理地址的对应管理的地址转换表。其理由是因为:在hdd中应用的地址转换表的更新频度比较低,因此,在本实施方式中,当地址转换表每次被更新时,cpu133都将该更新后的地址转换表保存于盘110的特定区域。但是,表tbl1至tbl5之一也可以是地址转换表。在本实施方式中,在多个数据流的写入完成之前,有可能会发生断电。例如,设为从主机对hdd依次发布了写命令wc1至wc8。设为由写命令wc1、wc2、wc4以及wc7确定的写数据wd1、wd2、wd4以及wd7是序列,并被写入到盘110的用户数据区域113的第1区域。另外,设为由写命令wc3以及wc5确定的写数据wd3以及wd5也是序列,并被写入到盘110的用户数据区域113的第2区域。进而,设为由写命令wc6以及wc8确定的写数据wd6以及wd8也是序列,在该写数据wd8正在被写入到盘110的用户数据区域113的第3区域的过程中发生了断电。该情况下,表tbli(最新的表tbli)如果未被退避到例如from15,则该最新的表tbli消失。因此,cpu133在hdd启动时,执行用于将表tbli恢复到即将发生断电之前的状态的恢复工作。在上述的例子中,cpu133搜索3个数据流,基于对所搜索出的3个数据流附加的报头的信息来恢复表tbli。为了该恢复,cpu133检测写入未完成点。将搜索数据流所需的最大的或平均的时间称为第3时间。另外,将写入未完成点的检测所需的最大的或平均的时间称为第4时间。该情况下,若设为表tbli是旁路表,则cpu133通过执行恢复时间决定处理,能够基于第3时间以及第4时间来决定该表tbli的恢复所需的时间。通常,旁路表的恢复时间比mc管理表的恢复时间长。在旁路表的情况下,需要根据用途而准备100个以上的数据流,因此恢复需要较长时间。接着,以包含系统信息(表)退避工作的系统信息退避处理为例,参照图8以及图9对本实施方式的工作进行说明。图8是表示系统信息退避处理的典型步骤的流程图,图9是表示系统信息退避处理所包含的退避对象决定处理的典型步骤的流程图。首先,cpu133监视由退避管理表142管理的表(在本实施方式中,表tbl1至tbl5)的更新,判定是否在表tbl1至tbl5的任一个表中发生了更新(a101)。此外,在本实施方式中,cpu133也执行表更新。但是,也可以是与cpu133不同的cpu(处理器)来执行表更新。如果未发生表更新(a101:否),则cpu133判定从主电源向hdd的电力供给是否被切断(a105)。在本实施方式中,cpu133在检测到从主电源施加于hdd的电源电压超过一定期间地小于一定电平(即,阈值)的状态的情况下,判定为电力供给被切断(即,断电)。如果未发生断电(a105:否),则cpu133返回到a101。另一方面,如果发生了表更新(a101:是),则cpu133确定被更新的表(a102)。在此,设为表tbli被确定为被更新的表。该情况下,cpu133对与所确定出的表tbli关联的退避管理表142内的条目设置更新标志(a103)。在该a103中,cpu133也可以计算所确定(更新)出的表tbli的恢复所需的时间(恢复时间),并将与该表tbli关联的退避管理表142内的恢复时间信息更新成表示该计算出的时间。被设置的更新标志在表tbli例如在hdd的空闲状态下已被保存于盘110的特定区域的情况下被清除。接着,cpu133执行退避对象决定处理(a104)。退避对象决定处理包括如下的处理步骤,该处理步骤用于将由退避管理表142管理的表tbl1至tbl5中的、在断电时应退避到from15的退避区域150的一个以上的表决定为退避对象。在此,参照图9对退避对象决定处理进行说明。首先,cpu133参照退避管理表142,从该退避管理表142中选择设置有更新标志的全部条目(a201)。在图7所示的退避管理表142的例子中,选择表tbl1至tbl4的条目。在图7所示的退避管理表142的例子中,在表tbl1以及tbl2关联的条目设置有退避标志。但是,在执行a201的时刻,未对与表tbl1以及tbl2关联的条目设置退避标志。接着,cpu133确定与所选择出的条目关联的表(a202)。例如,在选择了表tbl1至tbl4的条目的情况下,可确定该表tbl1至tbl4。接着,cpu133生成包含所确定出的表中的一个以上表的全部组合(a203)。在确定出表tbl1至tbl4的情况下,所生成的组合中的包含单个表的组合是如下的第1至第4组合。第1至第4组合分别包含表tbl1至tbl4。因此,将第1至第4组合分别表述为组合c1[tbl1]至c4[tbl4]。所生成的组合中的包含2个表的组合是如下的第5至第10组合。第5、第6和第7组合分别包含表tbl1以及tbl2、表tbl1以及tbl3、和表tbl1以及tbl4。第8、第9和第10组合分别包含表tbl2以及tbl3、表tbl2以及tbl4、和表tbl3以及tbl4。因此,将第5、第6、第7、第8、第9以及第10组合分别表述为组合c5[tbl1,tbl2]、c6[tbl1,tbl3]、c7[tbl1,tbl4]、c8[tbl2,tbl3]、c9[tbl2,tbl4]以及c10[tbl3,tbl4]。所生成的组合中的包含3个表的组合是如下的第11至第14组合。第11、第12、第13和第14组合分别包含表tbl1至tbl3;表tbl1、tbl2以及tbl4;tbl1、tbl3以及tbl4;以及表tbl2至tbl4。因此,将第11、第12、第13以及第14的组合分别表述为组合c11[tbl1,tbl2,tbl3]、c12[tbl1,tbl2,tbl4]、c13[tbl1,tbl3,tbl4]以及c14[tbl2,tbl3,tbl4]。所生成的组合中的包含4个表的组合仅为如下的第15组合。第15组合包含表tbl1至tbl4。因此,将第15组合表述为组合c15[tbl1,tbl2,tbl3,tbl4]。此外,为了简化,有时也将第1至第15组合分别表述为组合c1至c15。cpu133在执行a203时,按所生成的每个组合,基于退避管理表142算出对应的组合所包含的一个以上的表的大小的总和(a204)。将与组合c1至c15对应的总大小分别表述为ts1_c1至ts15_c15。在图7所示的退避管理表142的例子中,表tbl1、tbl2、tbl3以及tbl4的大小分别为20000h、50000h、40000h以及30000h(字节)。该情况下,ts1_c1(=ts1_c1[tbl1])、ts2_c2(=ts2_c2[tbl2])、ts3_c3(=ts3_c3[tbl3])以及ts4_c4(=ts4_c4[tbl4])也分别为20000h、50000h、40000h以及30000h。接着,ts5_c5(=ts5_c5[tbl1,tbl2])、ts6_c6(=ts6_c6[tbl1,tbl3])以及ts7_c7(=ts7_c7[tbl1,tbl4])分别为20000h+50000h=70000h、20000h+40000h=60000h以及20000h+30000h=50000h。ts8_c8(=ts8_c8[tbl2,tbl3])、ts9_c9(=ts9_c9[tbl2,tbl4])以及ts10_c10(=ts10_c10[tbl3,tbl4])分别为50000h+40000h=90000h、50000h+30000h=80000h以及40000h+30000h=70000h。接着,ts11_c11(=ts11_c11[tbl1,tbl2,tbl3])、ts12_c12(=ts12_c12[tbl1,tbl2,tbl4])、ts13_c13(=ts13_c13[tbl1,tbl3,tbl4])以及ts14_c14(=ts14_c14[tbl2,tbl3,tbl4])分别为20000h+50000h+40000h=b0000h、20000h+50000h+30000h=a0000h、20000h+40000h+30000h=90000h以及50000h+40000h+30000h=c0000h。ts15_c15(=ts15_c15[tbl1,tbl2,tbl3,tbl4])为20000h+50000h+40000h+30000h=e0000h。接着,cpu133从总大小ts1至ts15中检测大小阈值以下的总大小,选择与检测出的总大小对应的全部组合(a205)。大小阈值表示在能够从备用电源16供给电力的时间(可备份时间)内能够从dram14的系统缓冲区域143退避到from15的退避区域150的信息的大小。在本实施方式中,大小阈值为80000h。该情况下,大小阈值以下的总大小为ts1_c1至ts7_c7、ts9_c9以及ts10_c10,因此cpu133选择组合c1至c7、c9以及c10。接着,cpu133按所选择出的每个组合,基于退避管理表142来算出对应的组合所包含的一个以上的表的恢复时间的总和(a206)。将与组合c1至c7、c9以及c10对应的总恢复时间分别表述为trp1_c1至trp7_c7、trp9_c9以及trp10_c10。在图7所示的退避管理表142的例子中,表tbl1、tbl2、tbl3以及tbl4的恢复时间分别为3000、3000、1000以及2000(ms)。该情况下,trp1_c1(=trp1_c1[tbl1])、trp2_c2(=trp2_c2[tbl2])、trp3_c3(=trp3_c3[tbl3])以及trp4_c4(=trp4_c4[tbl4])也分别为3000、3000、1000以及2000。接着,trp5_c5(=trp5_c5[tbl1,tbl2])、trp6_c6(=trp6_c6[tbl1,tbl3])以及trp7_c7(=trp7_c7[tbl1,tbl4])分别为3000+3000=6000、3000+1000=4000以及3000+2000=5000。trp9_c9(=trp9_c9[tbl2,tbl4])以及trp10_c10(=trp10_c10[tbl3,tbl4])分别为3000+2000=5000以及1000+2000=3000。接着,cpu133从总恢复时间trp1_c1至trp7_c7、trp9_c9以及trp10_c10中检测最大的总恢复时间(a207)。在a207中,cpu133将与所检测出的总恢复时间对应的组合决定为在断电时应退避到from15的退避区域150的退避对象。在上述的例子中,因为trp5_c5最大,所以cpu133将组合c5[tbl1,tbl2])决定为退避对象。即,cpu133将构成组合c5[tbl1,tbl2])的表tbl1以及tbl2决定为退避对象。接着,cpu133对与构成所决定出的组合的一个以上的表关联的退避管理表142内的一个以上的条目(第1条目)设置退避标志(a208)。在上述的例子中,cpu133对与表tbl1以及tbl2关联的退避管理表142内的条目设置退避标志(a208)。图7示出了执行了该a208之后的退避管理表142的内容。在此,设为在退避对象决定处理(图8的a104)开始之前,对退避管理表142内的一个以上的条目已经设置有退避标志。另外,设为已经设置有退避标志的一个以上的条目包括第1条目以外的第2条目。这样的状态有可能会因伴随上次的表更新(图8的a101:是)的退避对象决定处理而产生。在对第2条目已经设置有退避标志的情况下,在a208中,cpu133将对该第2条目已经设置的退避标志清除。此外,也可以在退避对象决定处理的例如开头,cpu133将退避管理表142内的全部退避标志清除。cpu133在执行了a208时,结束按照图9的流程图的退避对象决定处理(图8的a104),进入a105(图8)。如前所述,在a105中,cpu133判定是否发生了断电。如果未发生断电(a105:否),则cpu133返回到a101。与此相对,如果发生了断电(a105:是),则cpu133启动plp功能(a106)。于是,备用电源16生成电力。在本实施方式中,备用电源16在电力的生成中使用spm的反电动势。该情况下,也可以将备用电源16的至少一部分安装于驱动器ic12。但是,也可以是备用电源16使用通过施加于hdd的电源电压进行充电的电容器来生成电力。由备用电源16生成的电力被供给到hdd内的至少驱动器ic12、控制器13、dram14以及from15。但是,在图1中,省略了用于从备用电源16向驱动器ic12、dram14以及from15供给电力的路径。cpu133接受由备用电源16生成的电力来继续进行系统信息退避处理。首先,cpu133基于在退避管理表142中是否包含设置有退避标志的条目,判定是否残留有应退避的表(a107)。如果残留有应退避的表(a107:是),则cpu133选择应退避的一个表,将该选择出的表退避到from15的退避区域150(a108)。以下说明该a108的详细内容。首先,cpu133通过确定退避管理表142所包含的设置有退避标志的1个条目,选择与该确定出的条目关联的表。接着,cpu133基于与所选择出的表关联的系统缓冲管理表135内的条目,确定保存有该选择出的表的系统缓冲区域143内的第1地址范围(更详细而言,cpu存储器空间30中的地址范围)。另外,cpu133基于与所选择出的表关联的from管理表136内的条目,确定应退避该选择出的表的退避区域150内的第2地址范围。接着,cpu133从dram14内的系统缓冲区域143所包含的、且映射到第1地址范围的区域中读取所选择出的表(所保持的系统信息)。cpu133将所读取出的表退避到from15的退避区域150中的第2地址范围。由此,cpu133结束a108的执行。于是,cpu133将与已被退避的表关联的、退避管理表142内的条目中的退避标志清除(a109)。然后,cpu133返回到a107。如果仍残留有应退避的表(a107:是),则cpu133再次执行a108以及a109,返回到a107。与此相对,如果未残留应退避的表(a107:否),则cpu133结束系统信息退避处理。在图7所示的退避管理表142的例子中,作为应退避的表,选择表tbl1以及tbl2(a108)。该情况下,表tbl1以及tbl2分别被退避到from15内的表退避区域151以及152。cpu133在相应于向hdd的电力供给的再次开始而启动该hdd时,根据系统缓冲管理表135以及from管理表136将已退避到表退避区域151以及152的表tbl1以及tbl2从该表退避区域151以及152加载到dram14的系统缓冲区域143。在图7的例子中,表tbl3至tbl5未被退避到from15。而且,表tbl3以及tbl4已被更新。该情况下,在hdd启动时,cpu133执行用于将表tbl3以及tbl4恢复到即将发生断电之前的状态的恢复处理。从图7可知,该表tbl3以及tbl4的恢复所需的时间大致为1000+2000=3000(ms)。与此相对,设为:不同于本实施方式,表tbl3以及tbl4相应于断电而退避到from15内的表退避区域153以及154,表tbl1以及tbl2在hdd启动时被恢复。该情况下,表tbl1以及tbl2的恢复所需的时间大致为3000+3000=6000(ms),时间比本实施方式长。如此,根据本实施方式,cpu133相应于断电而将恢复需要较长时间的一个以上的表退避到from15。由此,能够缩短在hdd启动时恢复尽管已被更新但未被退避的表(系统信息)所需的时间(即,hdd的启动所需的时间)。在本实施方式中,from管理表136被预先确定。即,表tbl1至tbl5的退避所使用的from15内的表退避区域被预先确定。但是,实际退避到from15的表是表tbl1至tbl5的一部分。因此,cpu133也可以将应退避的表按序列退避到退避区域150。但是,应退避的表与该表的退避目的地的关系未被预先确定。因此,cpu133例如可以在图9中的a207之后或a208之后针对应退避的表生成from管理表136。因为生成的from管理表136的内容不固定,所以该表136也需要被退避。因此,cpu133例如可以在图8中的紧接a106之后或紧接a107之后从退避区域150的开头位置退避from管理表136。此外,在所生成的from管理表136只有与应退避的表关联的条目的情况下,该表136的大小根据应退避的表的个数而变化。该情况下,cpu133可以将表示from管理表136的大小的报头附加于该表136。在本实施方式中,系统信息退避处理中的a101至a105(图8)构成该系统信息退避处理的前处理。因此,也可以使该前处理(a101至a105)从系统信息退避处理独立。该情况下,系统信息退避处理变为由a106至a109构成。另外,本实施方式将对向盘110写入数据使用叠瓦式磁记录的情况作为前提。但是,不一定需要使用叠瓦式磁记录。另外,本实施方式将存储装置为hdd的情况作为前提。但是,存储装置也可以是具有包含非易失性存储器(例如nand存储器)组在内的非易失性存储介质的、ssd那样的半导体驱动器单元。在存储装置例如为ssd的情况下,表tbl1至tbl5包含地址转换表、读取计数表以及读取阈值表。读取计数表用于保持各块(或页)的读取次数。读取次数是为了读取干扰(rd,readdisturb)的对策而使用的计数值。rd是指由于数据读出导致附近的存储器单元的值(或阈值电压)发生变化的现象。读取阈值表用于保持各块(或页)的读取阈值(阈值电压的值)。如果将地址转换表、读取计数表以及读取阈值表的恢复时间分别表述为rta、rtb以及rtc,则通常为rta>rtb>rtc。根据以上说明的至少一个实施方式,能够缩短对未退避的系统信息进行恢复所需的时间。对本发明的几个实施方式进行了说明,但这些实施方式是作为例子而提示的,没有限定发明范围的意图。这些新的实施方式能够以其它各种方式来实施,在不脱离发明主旨的范围内能够进行各种省略、替换、变更。这些实施方式及其变形包含在发明的范围和/或要旨内,并且包含在权利要求书所记载的发明及其等同的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1