电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法与流程

文档序号:18939982发布日期:2019-10-23 01:04阅读:243来源:国知局
电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法与流程

本申请享有以日本专利申请2018-58610号(申请日:2018年3月26日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。

本发明的实施方式涉及一种具备非易失性存储器的电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法。



背景技术:

近年来,具备非易失性存储器的储存器广为普及。

作为这种储存器之一,已知有具备nand(notand,与非)型闪速存储器的固态驱动器(ssd)。ssd用作各种计算装置的主储存器。

在ssd中,通过垃圾回收(gc)动作,垃圾回收源块(gc源块)内的有效数据被移动至垃圾回收宿块(gc宿块),从而生成空闲块。各空闲块可通过经历删除处理而作为新的写入目的地块使用。

作为gc源块,例如选择有效数据量较少的块。通过这样选择gc源块,能有效率地生成更多空闲块。

另一方面,难以选择有效数据量较多的块作为gc源块,因此相当于该块内无效数据区域的剩余容量(超额配置:overprovisioning,op)始终无法用于数据的写入。而且,当存在很多有效数据量较多的块的情况下,会存在大量这种无效数据区域。



技术实现要素:

本发明的实施方式提供一种既能减少对来自主机的存取的影响,又能回收冷块内的剩余容量的电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法。

实施方式的电子机器能经由接口与主机连接,且包括:非易失性存储器,包括多个块;以及控制器,电连接于所述非易失性存储器。在所述电子机器与所述主机连接的情况下,能将与所述非易失性存储器中所储存的冷数据对应的第1逻辑地址、及表示用来使包含所述冷数据的冷块成为可写入数据的块的处理时间或处理量的信息发送至所述主机。

附图说明

图1是表示第1实施方式的计算机系统的构成例的框图。

图2是用来说明通过第1实施方式的计算机系统而回收的冷块内的剩余容量(op)的图。

图3(a)、(b)是用来说明通常的垃圾回收(gc)、及考虑到写入时期的gc的图。

图4(a)、(b)是用来说明进行通常的gc的情况下消耗的nand存取的频带宽度、及进而进行以冷块为gc源块的gc的情况下消耗的nand存取的频带宽度的图。

图5是用来说明第1实施方式的计算机系统的用来回收冷块内的op的动作的例的图。

图6是表示第1实施方式的计算机系统的用来回收冷块内的op的构成的例的框图。

图7是表示第1实施方式的计算机系统中所使用的块管理信息的一个构成例的图。

图8是表示第1实施方式的计算机系统中所使用的冷块信息的一个构成例的图。

图9是表示第1实施方式的计算机系统中,用来要求回收冷块内的op的指令的格式的例的图。

图10是表示通过第1实施方式的计算机系统内的固态驱动器(ssd)而执行的冷块管理处理的步序的例的流程图。

图11是表示通过图10的ssd而执行的op回收控制处理的步序的例的流程图。

图12是表示通过第1实施方式的计算机系统内的主机而执行的冷块控制处理的步序的例的流程图。

图13是表示通过第2实施方式的计算机系统内的ssd而执行的冷块管理处理的步序的例的流程图。

图14是表示通过第2实施方式的计算机系统内的主机而执行的冷块控制处理的步序的例的流程图。

图15是用来说明第3实施方式的计算机系统的用来回收冷块内的op的动作的例的图。

图16是表示第3实施方式的计算机系统中所使用的冷数据的列表的格式的例的图。

图17是表示第3实施方式的计算机系统中,从主机向ssd发布的写入指令中包含的存取频度属性的格式的例的图。

图18是表示通过第3实施方式的计算机系统内的ssd而执行的冷块管理处理的步序的例的流程图。

图19是表示通过第3实施方式的计算机系统内的主机而执行的冷块控制处理的步序的例的流程图。

图20是用来说明如下例的图,即:在通过第4实施方式的计算机系统回收冷块内的op的情况下,冷数据的lba(logicblockaddress,逻辑块地址)范围的周边的lba的数据也被移动。

图21是表示如下例的图,即:在第4实施方式的计算机系统中所使用的冷数据的列表所示的lba范围,也包括周边的lba(lba范围)。

图22是表示通过第4实施方式的计算机系统内的主机而执行的冷块控制处理的步序的例的流程图。

图23是用来说明第5实施方式的计算机系统的用来回收冷块内的op的动作的例的图。

图24是表示第5实施方式的计算机系统中所使用的管理表的一个构成例的图。

图25是表示通过第5实施方式的计算机系统内的主机而执行的冷块控制处理的步序的例的流程图。

图26是用来说明第6实施方式的计算机系统的用来回收冷块内的op的动作的例的图。

图27是用来说明第7实施方式的计算机系统的用来回收冷块内的op的动作的例的图。

图28是表示通过第7实施方式的计算机系统内的ssd而执行的op回收控制处理的步序的例的流程图。

图29是表示通过第7实施方式的计算机系统内的主机而执行的冷块控制处理的步序的例的流程图。

图30是表示主机的构成例的框图。

具体实施方式

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

(第1实施方式)

首先,参照图1,对实施方式的计算机系统1的构成进行说明。

计算机系统1包含主机(主机装置)2及半导体储存装置,该半导体储存装置是以向非易失性存储器写入数据,从非易失性存储器读出数据的方式构成。

主机2是对半导体储存装置进行存取的信息处理装置(计算装置)。主机2可为将大量且多样的数据保存至半导体储存装置的服务器(储存服务器),也可为个人计算机。半导体储存装置是以例如具备nand型闪速存储器的固态驱动器(ssd)3的形态实现的。

ssd3可用作作为主机2而发挥功能的信息处理装置的主储存器。ssd3可内置于该信息处理装置中,也可经由线缆或网络连接于该信息处理装置。ssd3例如作为直接附接储存器(das)连接于主机2。

作为用来将主机2与ssd3相互连接的接口,可使用scsi(smallcomputersysteminterface,小型计算机系统接口)、串行连接的scsi(sas)、ata(advancedtechnologyattachment,高级技术附件)、串行ata(sata)、pciexpress(pcie)(注册商标)、ethernet(注册商标)、光纤通道、nvmexpress(nvme)(注册商标)等。

ssd3具备控制器4及nand型闪速存储器5。控制器4可由芯片上系统(system-on-a-chip,soc)等电路实现。ssd3也可具备作为易失性存储器的随机存取存储器、例如dram(dynamicrandomaccessmemory,动态随机存取存储器)6。或者,也可将sram(staticrandomaccessmemory,静态随机存取存储器)等随机存取存储器内置于控制器4中。

在dram6等随机存取存储器,例如设置有:读取缓冲区(rb)31,它是用来暂时地储存从nand型闪速存储器5读出的数据的缓冲区域;写入缓冲区(wb)32及gc缓冲区33,它们是用来暂时地储存向nand型闪速存储器5写入的数据的缓冲区域;以及作为地址转换表(逻辑物理地址转换表)而发挥功能的对照表(lut)34的高速缓冲区域。进而,在dram6等随机存取存储器,也可设置有处理过程中所使用的各种信息(例如,块管理信息35、冷块信息36等)的储存区域。此外,也可将dram6设置于控制器4的内部。lut34对逻辑地址各者与nand型闪速存储器5的物理地址各者之间的映射进行管理。

nand型闪速存储器5也可包含多个nand型闪速记忆芯片(多个nand型闪速记忆单片)。各芯片是以构成为每个记忆单元可储存复数比特的闪速存储器的形态实现的。

控制器4经由双态ddr(全称为ddrsdram(doubledataratesynchronousdynamicrandomaccessmemory,双数据速率同步动态随机存取存储器)、开放式nand闪速接口(opennandflashinterface,onfi)等nand接口13,电连接于作为非易失性存储器的nand型闪速存储器5。nand接口13作为以控制nand型闪速存储器5的方式构成的nand控制电路而发挥功能。nand接口13也可经由多个通道,与nand型闪速存储器5内的多个芯片分别连接。

控制器4作为以控制nand型闪速存储器5的方式构成的存储器控制器而发挥功能。

控制器4也可作为以执行nand型闪速存储器5的数据管理及块管理的方式构成的闪速转换层(ftl)而发挥功能。通过该ftl而执行的数据管理包括:(1)表示逻辑地址各者与nand型闪速存储器5的物理地址各者之间的对应关系的映射信息的管理,(2)用来隐藏以页为单位的读取/写入、及以块为单位的删除动作的处理,等。逻辑地址是为对ssd3进行地址指定而被主机2所使用的地址。作为该逻辑地址,例如使用逻辑块地址(lba)。

逻辑块地址(lba)各者与物理地址各者之间的映射的管理是利用作为地址转换表(逻辑物理地址转换表)发挥功能的对照表(lut)34而执行的。控制器4利用lut34,以指定的管理尺寸为单位,对lba各者与物理地址各者之间的映射进行管理。对应于某lba的物理地址表示写入有该lba的数据的nand型闪速存储器5内的物理记忆位置。关于lut34,也可为在ssd3的电源接通时将其从nand型闪速存储器5加载至dram6。

向1个页中写入数据时,每1个p/e(program/erase,编程/删除)循环只能实施1次该数据写入动作。因此,控制器4将对应于某lba的更新数据写入至其他物理记忆位置,而非将其写入至储存有对应于该lba的旧数据的物理记忆位置。然后,控制器4更新lut34,以使该lba与该其他物理记忆位置相关联,并且将旧数据无效化。以下,将引用自lut34的数据(即与逻辑地址有关联的数据)称为有效数据。另外,将与任何逻辑地址均无关联的数据称为无效数据。有效数据是之后有可能被主机2读取的数据。无效数据是已无可能被主机2读取的数据。

块管理包括坏块的管理、耗损平均、垃圾回收(gc)等。

如上所述,在nand型闪速存储器5中,数据的写入/读取是以页为单位而进行的,删除是以块为单位而进行的。块的删除需要较长时间,且nand型闪速存储器5内的各块具有进行删除前无法在相同的物理记忆位置覆写数据的特性。

因此,ssd3是通过将从主机2所接收到的写入数据追记至nand型闪速存储器5上的新的物理记忆位置的写入方式而运行的。若继续推进这种追记,则数据的写入目的地块会枯竭,因此要进行用来生成空闲块的gc。

在gc中,从已完成写入的块(工作块)中选择gc源块,从gc源块收集有效数据,并将该有效数据写入至新的块(gc宿块),而使原本储存有效数据的块成为空闲块。空闲块可通过经历删除处理,而作为新的写入目的地块使用。作为gc源块,大多选择有效数据数较少的块。其原因在于:这样选择时,空闲块的生成效率良好。

控制器4也可包含主机接口11、cpu(centralprocessingunit,中央处理器)12、nand接口13、dram接口14等。这些主机接口11、cpu12、nand接口13、dram接口14也可经由总线10而相互连接。

主机接口11作为从主机2接收各种指令,例如i/o(input/output,输入/输出)指令、各种控制指令等的电路而发挥功能。i/o指令可包括写入指令、读取指令、映射释放指令(清理指令)、格式指令、闪速指令等。格式指令是用来对存储器系统(ssd3)整体进行映射释放的指令。闪速指令是用来通过将被高速缓冲(缓冲)至存储器系统内的废数据(用户数据及相关管理数据)写入至nand型闪速存储器5而使它们全部成为干净状态的指令。

dram接口14作为以控制dram6的存取的方式构成的dram控制器而发挥功能。dram6的记忆区域是用来储存读取缓冲区(rb)31、写入缓冲区(wb)32、gc缓冲区33、lut34、块管理信息35、冷块信息36等。

cpu12是以控制主机接口11、nand接口13、及dram接口14的方式构成的处理器。cpu12通过执行未图示的rom等中所储存的控制程序(固件)而进行各种处理。该cpu12除所述ftl的处理以外,也可执行用来处理来自主机2的各种指令的指令处理等。cpu12的动作是通过使用cpu12来执行的所述固件而控制的。此外,ftl处理及指令处理的一部分或全部也可通过控制器4内的专用硬件而执行。

另外,计算机系统1具有用来回收ssd3的冷块内的剩余容量(超额配置:op)的功能。冷块是该块内的大部分数据由冷数据所构成的块。冷数据是指存取频度较低的lba范围的数据。冷块中基本上会包含很多有效数据,但也会包含无效数据。无效数据将成为冷块内的op。

在本实施方式中,ssd3对与冷数据及冷块相关的信息进行管理,经由接口将该信息从ssd3通知主机2,由此实现ssd3与主机2协作而处理冷数据的方式。由此,ssd3能与主机2协作,而回收冷块内的op。

参照图2,对通过计算机系统1而回收的冷块内的op进行说明。

nand型闪速存储器5整体的物理容量(安装容量)20由标称容量(容量(capacity):cap)211及剩余容量(op)212构成。剩余容量212是物理容量20与标称容量211之差。将剩余容量212相对于标称容量211的比率称为余裕率。一般来说,余裕率越高,则nand型闪速存储器5整体上的有效数据量越少,因此gc中的空闲块的生成效率越为提高,写入放大因数(waf)越为降低。因此,op的确保较为重要。

关于用户的工作负荷,假设存取范围不具局部性的情况、及存取范围具有局部性的情况。存取范围不具局部性的工作负荷例如相当于如下存取模式,即:在时间序列上近接的存取(多个指令)中,存取对象的逻辑地址跨及广大的逻辑地址空间,而未被收敛于狭窄的逻辑地址空间内。另外,存取范围具有局部性的工作负荷例如相当于如下存取模式,即:在时间序列上近接的存取中,存取对象的逻辑地址被收敛于狭窄的逻辑地址空间内。

在用户的工作负荷的存取范围不具局部性的情况下,标称容量211与剩余容量212均成为实质上有效的容量。

另一方面,在用户的工作负荷的存取范围具有局部性的情况下,存在nand型闪速存储器5内的冷块22增加,另外,这些冷块22内无效数据所占的记忆区域、即剩余容量(op)224增加的情况。

冷块22包含例如作为有效数据的冷数据223、及对应于剩余容量224的无效数据。将向对应的逻辑地址进行存取的频度较低的ssd3内的数据(例如,存取频度未达第1阈值的逻辑地址的数据)称为冷数据223。另外,将块内的大部分数据由冷数据所构成的块称为冷块22。例如,冷数据的数据量超过第2阈值的块、及块内的冷数据相对于总数据的比率超过指定比率的块为冷块22。

冷块22不会被用于数据的新的写入,故而除该冷块22以外的储存有作为有效数据的热数据221的容量、及剩余容量(op)222成为实质上有效的容量。热数据221是向对应的逻辑地址进行存取的频度较高的ssd3内的数据(例如,存取频度为第1阈值以上的数据)。

为回收这种冷块22内的剩余容量(op)224,例如,可考虑执行以冷块22为gc源块的gc动作。通过该gc动作,冷块22内所包含的剩余容量224会被回收,故而能将加上所被回收的剩余容量224后的剩余容量225、及储存有热数据的容量221用作实质上有效的容量。

参照图3,对通常的gc动作、及以冷块为gc源块的gc动作进行说明。这里,对按写入时期由近至远依次有块251、252、253、254的情形进行例示。各块包含由有效数据所构成的有效丛集25a、及由无效数据所构成的无效丛集25b中的至少一者。

图3(a)表示通常的gc动作中的gc源块。在通常的gc动作中,选择有效数据量较少的块251、252作为gc源块。各块的有效数据量例如可由有效丛集数、块内的有效丛集数相对于丛集总数的比率、及相当于有效丛集的字节等单位表示。

在通常的gc动作中,有效数据量较多的块253、254未被选作gc源块,而是留下。也就是说,包含存取频度较低的冷数据的冷块253、254即便包含少量无效数据(无效丛集),也不会成为gc对象,而是留下。因此,块253、254中所包含的无效数据部分的容量(op)在通常的gc动作中无法被回收。

图3(b)表示考虑到写入时期的gc动作中的gc源块。在考虑到写入时期的gc动作中,不仅有效数据量较少的块251、252被选作gc源块,写入时期较早的块254(例如,包含在较指定日期时间更早的前写入的有效数据的块)也被选作gc源块。也就是说,写入时期较早的块254即便在有效数据量(有效丛集)较多的情况下也被选作gc源块。因此,在考虑到写入时期的gc动作中,也能回收写入时期较早、有效数据量较多的冷块254中所包含的无效数据部分的容量(op)。

但在以有效数据量较多的冷块254为gc源块的gc动作中,要将冷块254内的多数有效数据复制(移动)至gc宿块,因此会大量消耗对nand型闪速存储器5进行存取的频带宽度。

参照图4,对向nand型闪速存储器5进行存取的频带宽度进行说明。nand型闪速存储器5中包含多个记忆芯片mc0~mc3。控制器4经由多个通道,对多个记忆芯片mc0~mc3分别进行存取。用来对各记忆芯片mc0~mc3进行存取的频带宽度有限,若该有限的频带宽度全部被消耗,则将无法对记忆芯片mc0~mc3进行存取。因此,会发生要等到频带宽度出现空闲为止才能对记忆芯片mc0~mc3进行存取的潜时。

图4(a)表示出了进行与通过主机2而发布的写入指令相应的动作(主机写入动作)、及通常的gc动作的情形。在主机写入动作中,因为要经由主机i/f11及ftl120,将遵照写入指令而接收的用户数据写入至记忆芯片mc0~mc3,故而会消耗对记忆芯片mc0~mc3进行存取的频带宽度。另外,因为要对应于通过ftl120内的gc控制部126而执行的通常的gc动作,从gc源块向gc宿块261移动数据,故而会消耗对记忆芯片mc0~mc3进行存取的频带宽度。因此,在图4(a)所示的例子中,主机写入动作及通常的gc动作会消耗对记忆芯片mc0~mc3进行存取的频带宽度。

继而,图4(b)表示出了除主机写入动作及通常的gc动作以外,进而进行以冷块为gc源块的冷块gc动作的情形。在该情况下,因为要对应于通过ftl120内的冷块gc控制部127而执行的冷块gc动作,从作为冷块的gc源块向作为冷块的gc宿块262移动数据,故而会进而消耗对记忆芯片mc0~mc3进行存取的频带宽度。因此,在图4(b)所示的例子中,主机写入动作、通常的gc动作、及冷块的gc动作会消耗对记忆芯片mc0~mc3进行存取的频带宽度。

冷块中储存有大量有效数据,因此为了将该有效数据复制至gc宿块262,会大量消耗对记忆芯片mc0~mc3进行存取的频带宽度。在主机2向ssd3送出了存取要求时,若ssd3内的冷块gc动作消耗对记忆芯片mc0~mc3进行存取的频带宽度,则站在主机2侧来说会理解为相对于存取发生了潜时。潜时的变动是评价ssd3的品质的重要要素,即便其起因于用来回收冷块内的op的动作,也难以被容许。

另外,也可考虑以给对nand型闪速存储器5进行存取的频带宽度造成影响的速度,例如,花费非常长的时间,进行回收冷块内的op的gc动作。但gc动作花费较长时间会延长冷块内的op的回收完成的时间,故而不理想。

进而,也可考虑不回收冷块内的op而将其置之不理的判断,但在具有局部性的存取模式中,也有大量产生冷块的可能性。因此,即便各者中所包含的op为少量,不回收大量冷块内的op而将其置之不理也不理想。

据此,需要实现既能减少对来自主机2的存取的影响,又能回收冷块内的op的新的功能。在本实施方式中,为实现该功能,主机2与ssd3协作而运行。

以下,对与所述功能相关的构成更具体地进行说明。

返回至图1,ssd3上所设置的控制器4内的cpu12能作为冷块控制接口(i/f)部121、块管理部122、冷块控制部123、读取控制部124、写入控制部125、gc控制部126、及冷块gc控制部127而发挥功能。

冷块控制i/f部121具有与主机2通信以控制ssd3内的冷块的接口功能。

块管理部122针对ssd3内的每一个块,逐一对包含删除次数(编程/删除循环数)、删除序号、有效数据数(有效数据量)等的块管理信息35进行管理。块管理部122监视例如对各块的写入动作、清理(映射释放)动作、删除动作等,每当此等动作实施,便更新块管理信息35。

冷块控制部123利用块管理信息35,从nand型闪速存储器5内的多个块b0~bm-1中,选择冷块。然后,冷块控制部123对应于例如来自主机2的问询,生成与被选择的冷块相关的冷块信息36。冷块信息36包含可从冷块回收的op量、及用来使冷块成为可写入数据的块(空闲块)的处理时间或处理量等。

读取控制部124基于与被读取指令所指定的逻辑地址(lba)对应的lut34的条目,求出对应于lba的物理地址,并从nand型闪速存储器5读出与读取指令相应的数据。

写入控制部125将遵照写入指令从主机2所接收到的用户数据蓄存至dram6上的写入缓冲区32。写入控制部125是预先确保用来蓄存用户数据的写入缓冲区32的区域,在无法确保该区域的期间,不从主机2受理写入指令。

然后,一旦在写入缓冲区32内蓄存有与nand型闪速存储器5的写入单位相当的量的用户数据,写入控制部125便将该与写入单位相当的量的用户数据传送至nand型闪速存储器5的芯片(芯片的数据闩锁)。写入控制部125释放写入缓冲区32内的蓄存被传送的用户数据的区域。

继而,写入控制部125指示nand型闪速存储器5的芯片执行编程。也就是说,写入控制部125对nand型闪速存储器5的芯片发送编程指令,由此使该芯片将被传送的用户数据编程至写入目的地块。芯片内的记忆单元阵列包含多个块。块大致分为两种:一,储存有效数据、无法写入新数据的块(工作块);二,不储存有效数据、通过经历删除处理便可用于新的数据的写入的块(空闲块)。从1个以上空闲块中,选择1个块,通过经历删除处理,而将其分配为写入目的地块。写入目的地块可储存有效数据。

gc控制部126也能利用gc缓冲区33,与如上所述的写入控制部125所实施的写入动作同样地,对nand型闪速存储器5进行写入。gc控制部126从储存有有效数据的工作块群中,选择gc源块,将该gc源块内的有效数据写入至空闲块群中被确保为写入目的地块的gc宿块。

另外,冷块gc控制部127也能与gc控制部126同样地,对nand型闪速存储器5进行写入。冷块gc控制部127以冷块为gc源块,将该gc源块内的有效数据写入至空闲块群中被确保为写入目的地块的gc宿块。gc控制部127也可利用与gc缓冲区33不同的缓冲区,执行gc动作。

接着,对主机2的构成进行说明。主机2具有用来对作为das而连接的ssd3进行存取的功能。另外,主机2也可具有用来对网络(云)上的储存器进行存取的功能。

主机2是执行各种程序的信息处理装置。通过信息处理装置而执行的程序包括应用层41、操作系统(os)42、文件系统43等。

正如一般所知,操作系统(os)42是以管理主机2整体,控制主机2内的硬件,执行用来使应用可使用硬件及ssd3的控制的方式构成的软件。

文件系统43是用来进行操作(创建、保存、更新、删除等)文件用的控制。例如,也可将zfs(zettabytefilesystem,动态文件系统)、btrfs、xfs、ext4、ntfs(newtechnologyfilesystem,新技术文件系统)等用作文件系统43。或者,也可将文件对象系统(例如,对象储存后台程序(cephobjectstoragedaemon))、密钥储存系统(keyvaluestoresystem)(例如,岩石数据库(rocksdb))用作文件系统43。

各种应用软件线程在应用层41上运行。作为应用软件线程的例子,有用户端软件、数据库软件、虚拟机器等。

在应用层41需将读取指令或写入指令等请求送出至ssd3时,应用层41向os42送出该请求。os42将该请求送出至文件系统43。文件系统43将该请求转换成指令(读取指令、写入指令等)。文件系统43将指令送出至ssd3。当接收到来自ssd3的回应时,文件系统43将该回应送出至os42。os42将该回应送出至应用层41。

文件系统43包含冷块控制i/f部431。冷块控制i/f部431具有与ssd3通信以控制ssd3内的冷块的接口功能。冷块控制i/f部431例如向ssd3问询与冷块相关的信息。另外,冷块控制i/f部431在利用与冷块相关的信息,得知是应当进行冷块内的op的回收的时点的情况下,要求ssd3回收冷块内的op。

另外,文件系统43也可还包含冷数据管理部432。冷数据管理部432对某lba范围的数据储存于哪个ssd进行管理。

图5表示用来回收计算机系统1中的冷块内的op的动作的例子。这里,ssd3作为das,1对1地连接于主机2。

首先,主机2向ssd3问询冷块信息36。ssd3对应于该问询,将冷块信息36发送至主机2。冷块信息36包含与ssd3的nand型闪速存储器5内的冷块相关的信息。更具体来说,冷块信息36包含:可从冷块回收的op量;仅进行了从冷块回收op的动作(冷块gc动作)时所推定出的处理时间或处理量;等。

主机2利用冷块信息36,对是否要对ssd3要求冷块gc的执行进行判定。主机2例如,主机2处于闲置状态的情况下,即使执行了冷块gc,对从主机2向ssd3进行存取的影响较小的情况下,对ssd3要求冷块gc的执行。ssd3对应于主机2的要求,开始对nand型闪速存储器5执行冷块gc。

另外,图6表示用来回收冷块内的op的计算机系统1内的构成。主机2具备冷块控制i/f部431。ssd3具备冷块控制i/f部121,ftl120中具备块管理部122、冷块控制部123、及冷块gc控制部127。以下,对各部用来回收冷块内的op的步序进行说明。

(1)ssd3的块管理部122对该ssd3内的每一块,管理删除次数(编程/删除循环数)、删除序号、有效数据数(有效数据量)等块管理信息35。

图7表示通过块管理部122而生成及更新的块管理信息35的一个构成例。块管理信息35包含与nand型闪速存储器5内的多个块b0~bm-1对应的多个记录。各记录包含例如块编号、删除次数、删除序号、及有效数据量。

对应于某块的记录中,“块编号”表示分配给该块的块编号。此外,也可使用用来识别该块的任意信息以取代块编号。

“删除次数”表示该块被删除的次数(例如,至此为止对该块实施的删除处理的次数)。因此,随着对该块实施删除处理,对应于该块的删除次数便会增加1。

“删除序号”是从例如某时间点(例如,ssd3的使用开始时间点)起,每当对nand型闪速存储器5内的任一个块实施删除处理便递增计数的编号,且被设定为与该被实施删除处理的块对应的记录的“删除处理编号”。

“有效数据量”表示对应的块中所包含的有效数据的量。各块的有效数据量既可由丛集数表示,也可由百分比表示,或可以如字节的单位表示。

(2)ssd3的冷块控制部123利用块管理信息35,从nand型闪速存储器5内的多个块b0~bm-1中选择冷块,生成冷块的列表。所生成的列表中包含例如与被选作冷块的一个以上块对应的一个以上块编号。冷块是例如改写时期较早的块。例如,若改写的日期时间早在指定日期时间,则冷块控制部123将某块判定为冷块。

此外,冷块控制部123也可利用每块的删除序号,对某块是否为冷块进行判定。如上所述,删除序号是从例如某时间点(例如,ssd3的使用开始时间点)起,每当对nand型闪速存储器5内的任一个块实施删除处理便递增计数的编号。删除序号与该被实施删除处理的块相关联。冷块控制部123也可将删除序号小于指定编号的块判定为冷块。另外,冷块控制部123也可对最新的删除序号(删除序号的最大值)与所关注的块的删除序号进行比较,若两者之差超过第3阈值,则将该块判定为冷块。

或者,冷块控制部123也可将删除次数未达第4的块判定为冷块。其原因在于:删除次数较少的块未被选作gc源块而留下,意味着它为大量包含存取频度较低的冷数据的冷块。

(3)主机2的冷块控制i/f部431向ssd3问询冷块信息36。

(4)ssd3的冷块控制部123经由冷块控制i/f部121,受理主机2对冷块信息36的问询。冷块控制部123对应于该问询,而基于所生成的冷块的列表生成冷块信息36。冷块信息36例如包含:在于ssd3中仅执行用来回收冷块内的op的处理的情况下(未从主机2发布新的i/o指令的情况下等)从冷块内的有效数据量推定出的从该开始至完成为止的处理时间或处理量、及随着该处理的完成变得可利用的op量(也就是说,所要回收的冷块内的op量)。冷块控制部123经由冷块控制i/f部121,向主机2发送冷块信息36。

图8表示通过冷块控制部123而生成的冷块信息36的一个构成例。冷块信息36包含与被判别为冷块的一个以上块对应的一个以上记录。各记录包含例如块编号、处理时间(或处理量)、及op回收量。

对应于某冷块的记录中,“块编号”表示分配给该块的块编号。“处理时间”表示推定为使该块成为gc源块的gc动作所需的的处理时间(或处理量)。“op回收量”表示通过以该块为gc源块的gc动作而回收的记忆容量。

此外,也可将包含仅设定有“块编号”的值的记录的冷块信息36用作步序(2)的冷块的列表。

(5)主机2的冷块控制i/f部431从ssd3接收冷块信息36,并利用该冷块信息36,对是否为应进行冷块内的op的回收的时点进行判定。冷块控制i/f部431基于推定为使冷块成为gc源块的gc动作所需的处理量、对ssd3进行存取的频度、主机2的资源处于忙碌状态的时间、正由主机2的处理器执行的进程(process)的量中的至少任一者,对是否为应进行冷块内的op的回收的时点进行判定。

更具体来说,冷块控制i/f部431基于在主机2上同时运行的进程数、或各种资源处于忙碌状态的时间等指标,在对ssd3进行存取的频度较低时,判定为应进行冷块内的op的回收的时点。冷块控制i/f部431在例如进程数未达第4阈值的情况下、资源处于忙碌状态的时间未达第5阈值的情况下等,判定为应进行冷块内的op的回收的时点。关于第4阈值及第5阈值,例如可为利用冷块信息36,在ssd3中仅进行用来回收冷块内的op的处理的情况下的处理时间越长,则将其设定得越小。另外,关于第4阈值或第5阈值,也可为利用冷块信息36,随着在ssd3中用来回收冷块内的op的处理的完成变得可利用的op量越多,则将其设定得越大。

(6)冷块控制i/f部431在判定为应进行冷块内的op的回收的时点的情况下,向ssd3发布回收冷块内的op的请求。

作为实现该请求的方法的一例,例如有利用nvme规格的装置自测(deviceself-test)的方法。装置自测指令分为nvmeadmin指令,主要用于装置从身的测试。按照要求,装置自测处理应在后台执行。因此,在需要处理其他指令的情况下,ssd3的控制器4会暂且中断装置自测处理,而处理该其他指令。该其他指令的处理完成后,控制器4再重新开始装置自测处理。

图9表示出了装置自测所使用的指令的格式。如图9所示,在与指令内的[03:00]比特对应的字段,设定锁定通过该指令而发生的行为的自测码(stc)。对应于在该字段设定“1h”或“2h”的指令,开始它所关联的自测操作。另外,对应于在该字段设定“fh”的指令,中断(abort)正在执行的装置自测。

(7)ssd3的冷块gc控制部127对应于从主机2接收到了回收冷块内的op的请求,而进行回收冷块内的op的动作。也就是说,在ssd3中,除通常的动作(主机写入、gc等)以外,也进行回收冷块内的op的动作。

冷块gc控制部127通过执行例如以步序(2)中所生成的列表所示的各冷块为gc源块的gc动作,而回收冷块内的op。更具体来说,冷块gc控制部127读出(gc读取)作为gc源块的冷块内的有效数据(冷数据),并将其蓄存至gc缓冲区33。然后,一旦gc缓冲区33中蓄存有相当于写入单位的量(相对于页的量)的数据,便将该数据写入至冷块的gc宿块(gc写入)。

(8)冷块gc控制部127在列表所示的所有冷块内的op已被回收的情况下(也就是说,以所有冷块为gc源块的gc处理完成的情况下),通知主机2该完成讯息。

此外,在所述步序(7)中,主机2的冷块控制i/f部431也可根据主机2上的进程数或资源的状况,向ssd3发布将回收冷块内的op的处理中断的请求。例如,在使用nvme的装置自测指令的情况下,冷块控制i/f部431发布已将用来指示装置自测的中断(abort)的值设定完毕的指令,由此要求ssd3将回收冷块内的op的处理中断。

ssd3的冷块gc控制部127遵照这种指令的要求,将回收冷块内的op的动作中断。由此,ssd3移行至通常的动作(主机写入、gc等)。然后,冷块控制部123对应于中断,更新步序(2)中所生成的冷块的列表。在重新开始回收冷块内的op的动作的情况下,例如,主机2的冷块控制i/f部431从向ssd3问询冷块信息36的步序(3)开始。

另外,作为回收op的对象的块也可为包含为了数据保留(可靠性)所应移动的数据的块。在该情况下,例如,基于作为数据保留对策而实施的巡回(巡逻)中读取时的错误校正的错误比特数等,锁定包含发生保留错误的可能性较高的数据的块。通过将针对所述冷块的动作替换成针对所锁定的块的动作,即可回收该块内的op。

图10的流程图表示出了通过ssd3的控制器4而执行的冷块管理处理的步序的例子。

控制器4生成(更新)块管理信息35(步骤s11)。块管理信息35中包含如图7所示的每个块的记录。控制器4在对应于与从主机2所接收到的指令相应的动作、或垃圾回收动作,而发生删除动作的情况下、或各块的有效数据量变动的情况下,更新块管理信息35。

继而,控制器4对是否为列出冷块列表的时点进行判定(步骤s12)。控制器4例如每隔固定时间,便判定为列出冷块列表的时点。

在为列出冷块列表的时点的情况下(步骤s12为是),控制器4生成(更新)冷块的列表(步骤s13)。控制器4利用块管理信息35,检测出被推定为冷块的块,由此生成(更新)冷块的列表。

在不为列出冷块列表的时点的情况下(步骤s12为否),跳过步骤s13。

然后,控制器4对从主机2是否有冷块信息36的问询进行判定(步骤s14)。在无冷块信息36的问询的情况下(步骤s14为否),返回至步骤s11,继续执行块管理信息35的更新。

另一方面,在有冷块信息36的问询的情况下(步骤s14为是),控制器4利用块管理信息35及冷块的列表,生成冷块信息36(步骤s15)。然后,控制器4将所生成的冷块信息36发送至主机2(步骤s16)。

图11的流程图表示出了通过ssd3的控制器4而执行的op回收控制处理的步序的例子。

控制器4对是否被主机2指示了回收冷块内的op进行判定(步骤s21)。在未被指示回收冷块内的op的情况下(步骤s21为否),返回至步骤s21。

在被指示了回收冷块内的op的情况下(步骤s21为是),控制器4执行冷块内的op回收处理、即以冷块为gc源块的gc处理(步骤s22)。

然后,一旦该冷块内的op回收处理完成,控制器4便通知主机2回收已完成(步骤s23)。

另外,图12的流程图表示出了通过主机2而执行的冷块控制处理的步序的例子。

主机2对是否为向ssd3问询冷块信息36的时点进行判定(步骤s31)。主机2例如每隔固定时间,便判定为问询冷块信息36的时点。在不为问询冷块信息36的时点的情况下(步骤s31为否),返回至步骤s31。

在为问询冷块信息36的时点的情况下(步骤s31为是),主机2向ssd3问询冷块信息36(步骤s32)。然后,主机2对应于该问询,接收通过ssd3而发送的冷块信息36(步骤s33)。

继而,主机2对是否为冷块内的op回收指示时点进行判定(步骤s34)。主机2基于例如在主机2上同时运行的进程数较少等指标,检测出对ssd3进行存取的频度较低的时点,作为冷块内的op回收指示时点。在判定不为冷块内的op回收指示时点的情况下(步骤s34为否),返回至步骤s31。

另一方面,在判定为冷块内的op回收指示时点的情况下(步骤s34为是),控制器4向ssd3发布冷块内的op回收的请求(步骤s35)。

然后,主机2对是否从ssd3接收到了op回收完成通知进行判定(步骤s36)。在未接收到完成通知的情况下(步骤s36为否),返回至步骤s36。另一方面,在接收到了完成通知的情况下(步骤s36为是),结束处理。

综上所述,主机2利用从ssd3所接收到的冷块信息36,在对来自主机2的存取的影响较少的时点,对ssd3指示冷块内的op的回收。由此,既能减少对来自主机2的存取的影响,又能在ssd3中回收冷块内的op。

(第2实施方式)

在第1实施方式中,ssd3对应于来自主机2的问询,将包含回收冷块内的op所需的处理时间或处理量、及可从冷块回收的op量等的冷块信息36发送至主机2。与此相对地,在第2实施方式中,无论有无来自主机2的问询,只要满足指定条件,ssd3便会将内容为应回收冷块内的op的信息通知主机2。

第2实施方式的计算机系统1的构成与第1实施方式的计算机系统1相同,在第2实施方式与第1实施方式中,仅通过ssd3的冷块控制部123而执行的处理的步序不同。以下,仅对与第1实施方式不同的点进行说明。

冷块控制部123利用块管理信息35,从nand型闪速存储器5内的多个块b0~bm-1中,选择冷块,并生成冷块的列表。然后,冷块控制部123基于该冷块的列表,生成冷块信息36。如参照图8所述般,冷块信息36包含:例如,在于ssd3中仅执行用来回收冷块内的op的回收处理的情况下(未从主机2发布新的i/o指令的情况下等),由冷块内的有效数据量推定出的从该回收处理开始至完成为止的处理时间或处理量;及通过该回收处理的完成而变得可利用的op量(也就是说,所要回收的冷块内的op量)。

冷块控制部123利用冷块信息36,对是否应回收冷块内的op进行判定。例如,在冷块内的op量超过第6阈值的情况下,冷块控制部123判定应回收冷块内的op。冷块控制部123在判定应回收冷块内的op的情况下,将内容为应回收冷块内的op的信息(也就是说,内容为需要执行使冷块成为可写入数据的一个以上块的处理的信息)通知主机2。另外,冷块控制部123也可通知主机2冷块内的op量(无效数据量)超过了第6阈值。另外,冷块控制部123也可将冷块信息36连同如上通知一起发送至主机2。

主机2的冷块控制i/f部431根据该通知,对是否为应进行冷块内的op的回收的时点进行判定。冷块控制i/f部431基于在主机2上同时运行的进程数、及各种资源处于忙碌状态的时间等指标,在对ssd3进行存取的频度较低时,判定为应进行冷块内的op的回收的时点。然后,冷块控制i/f部431在判定为应进行冷块内的op的回收的时点的情况下,向ssd3发布回收冷块内的op的请求。

关于用来回收冷块内的op的处理,同第1实施方式中所述者。

通过以上构成,能在ssd3中,对是否应回收冷块内的op进行判断。主机2无需对ssd3进行与冷块相关的问询,便会被ssd3通知内容为应回收冷块内的op的信息,相应地能基于主机2上的进程、及资源的状况,对是否为应进行冷块内的op的回收的时点进行判断。

图13的流程图表示出了通过ssd3的控制器4而执行的冷块管理处理的步序的例子。

首先,控制器4生成(更新)块管理信息35(步骤s41)。继而,控制器4对是否为列出冷块列表的时点进行判定(步骤s42)。控制器4例如每隔固定时间,便判定为列出冷块列表的时点。

在不为列出冷块列表的时点的情况下(步骤s42为否),返回至步骤s41,继续执行块管理信息35的更新。

另一方面,在为列出冷块列表的时点的情况下(步骤s42为是),控制器4生成(更新)冷块的列表(步骤s13)。控制器4利用块管理信息35,对被推定为冷块的块进行检测,由此生成(更新)冷块的列表。然后,控制器4利用块管理信息35及冷块的列表,生成冷块信息36(步骤s44)。

继而,控制器4对是否需要回收冷块内的op进行判定(步骤s45)。基于例如冷块内的op量是否超过阈值,在冷块内的op量超过阈值的情况下,控制器4判定需要回收冷块内的op。在判定无需回收冷块内的op的情况下(步骤s45为否),返回至块b41。

另一方面,在判定需要回收冷块内的op的情况下(步骤s45为是),控制器4通知主机2需要回收冷块内的op(步骤s45)。控制器4也可将冷块信息36连同该通知一起发送至主机2。

另外,图14的流程图表示出了通过主机2而执行的冷块控制处理的步序的例子。

主机2对是否从ssd3接收到了内容为需要回收冷块内的op的通知进行判定(步骤s51)。在未接收到内容为需要回收冷块内的op的通知的情况下(步骤s51为否),返回至步骤s51。

在接收到了内容为需要回收冷块内的op的通知的情况下(步骤s51为是),主机2执行步骤s52至步骤s54的步序。该步骤s52至步骤s54的步序与参照图12的流程图所述的步骤s34至步骤s36的步序相同。

样一来,便也可在ssd3中而非在主机2中,对是否需要回收冷块内的op进行判断,并从ssd3通知主机2需要回收冷块内的op。

(第3实施方式)

在第1实施方式中,ssd3将包含回收冷块内的op所需的处理时间或处理量、及可从冷块回收的op量等的冷块信息36发送至主机2;另外,在第2实施方式中,ssd3将内容为应回收冷块内的op的信息通知主机2。与此相对地,在第3实施方式中,ssd3将表示冷数据的逻辑地址范围的列表发送至主机2。

第3实施方式的计算机系统1的构成与第1及第2实施方式的计算机系统1相同,在第3实施方式与第1及第2实施方式中,仅通过ssd3的冷块控制部123及主机2的冷块控制i/f部431而执行的处理的步序不同。以下,仅对与第1及第2实施方式不同的点进行说明。

图15表示出了本实施方式的计算机系统1的用来回收冷块内的op的动作的例子。这里,ssd3作为直接附接储存器(das),1对1地连接于主机2。

首先,主机2向ssd3问询冷块信息36。ssd3(控制器4)对应于该问询,生成冷块信息36,并将其发送至主机2。冷块信息36包含与ssd3的nand型闪速存储器5内的冷数据对应的逻辑地址的范围(lba范围)的列表。冷数据是冷块内的有效数据,且是向对应的lba范围进行存取的频度较低的数据。

如图15所示,冷块信息36包含分别表示冷数据的lba范围的一个以上条目。lba范围例如由起始lba及其长度(例如,逻辑块数)所表示。另外,lba范围也可由起始lba及终结lba所表示。此外,冷块信息36中也可还包含可从冷块回收的op量、及用来使冷块成为可写入数据的块(也就是说,用来从冷块回收op)的推定的ssd3的处理时间或处理量等。

冷块信息36中所包含、与冷数据对应的lba范围的列表可按例如遵照nvme规格的数据集管理指令的格式而制作。在该格式中,如图16所示,例如,最大可表示256个lba范围(range0至range255),关于各lba范围,包含起始lba、逻辑块长度、及上下文属性。

“起始lba”表示lba范围的开头的lba。“逻辑块长度”表示该lba范围内所包含的逻辑块数量(nlb)。“上下文属性”表示与该lba范围相关的各种属性。在该格式中,与各lba范围对应的信息的尺寸为16字节。因此,能将表示256个lba范围的冷块信息36以4千字节(kib)发送至主机2。

主机2利用从ssd3所接收到的冷块信息36,向ssd3发布指定了冷数据的lba范围的读取指令。ssd3遵照读取指令,从nand型闪速存储器5读出被指定的lba范围的冷数据,并将其发送至主机2。通过以上,主机2能从ssd3读出冷数据。

然后,主机2对ssd3发布指定了该lba范围且用来写入所读出的冷数据的写入指令。此外,该写入指令中也可包含表示被写入的数据为冷数据的信息。

作为表示被写入的数据为冷数据的信息,例如可使用存取频度,该存取频度是所述nvme的数据集管理指令的“上下文属性”中所设定的属性之一。图17表示与上下文属性的[03:00]比特对应的存取频度的字段中可设定的值。在图17所示的例子中,表示以较低频度向对应的lba范围内进行写入的值即“0010b”或“0011b”用作表示被写入的数据为冷数据的信息。

ssd3根据写入指令,向nand型闪速存储器5写入该冷数据。ssd3将冷数据写入至与此前写入有冷数据的第1物理记忆区域不同的第2物理记忆区域(主机写入的写入目的地块)。ssd3也可根据写入指令中所包含、表示被写入的数据为冷数据的信息,选择适于写入冷数据的块(例如,编程/删除循环数较多的块)作为写入目的地块。通过以上,主机2能向ssd3新写入冷数据。

通过这种冷数据的读出及写入,能将冷数据从冷块移动至用于主机写入的写入目的地块。ssd3更新lut34,以使被写入指令所指定的lba范围映射于被新写入该冷数据的第2物理记忆区域。因此,此前写入有冷数据的冷块内的第1物理记忆区域成为不映射于任何lba、储存无效数据的区域。

主机2对冷块信息36所示的每个lba范围,逐一执行所述动作。通过这种动作,在ssd3中,若冷块内的所有冷数据(有效数据)被移动至用于主机写入的写入目的地块,则该冷块成为不储存有效数据、通过经历删除处理可用来写入新的数据的空闲块。因此,能回收冷块内的op。

此外,作为回收op的动作的对象的块也可为包含为了数据保留(可靠性)所应移动的数据的块。在该情况下,例如,基于作为数据保留对策而实施的巡回中读取时的错误校正的错误比特数等,锁定发生保留错误的可能性较高的数据。通过将包含与所述冷数据对应的lba范围的列表冷块信息36替换成包含与该锁定的数据对应的lba范围的列表的信息,能将包含发生保留错误的可能性较高的数据的块内的op回收。

图18的流程图表示出了通过ssd3的控制器4而执行的冷块管理处理的步序的例子。步骤s61至步骤s64的步序与参照图10的流程图所述的步骤s11至步骤s14的步序相同。

在从主机2有冷块信息36的问询的情况下(步骤s64为是),控制器4生成包含表示冷数据的列表的冷块信息36(步骤s65)。表示冷数据的列表为例如基于图16所示的格式的列表,包含储存有冷数据的lba区域的开头的lba(起始lba)及其长度(逻辑块数:nlb)。控制器4将所生成的包含表示冷数据的列表的冷块信息36发送至主机2(步骤s66)。

另外,图19的流程图表示出了通过主机2而执行的冷块控制处理的步序的例子。

主机2对是否为向ssd3问询冷块信息36的时点进行判定(步骤s71)。主机2例如每隔固定时间,便判定为问询冷块信息36的时点。在不为问询冷块信息36的时点的情况下(步骤s71为否),返回至步骤s71。

在为问询冷块信息36的时点的情况下(步骤s71为是),主机2向ssd3问询冷块信息36(步骤s72)。然后,主机2接收对应于该问询通过ssd3而发送、包含表示冷数据的列表的冷块信息36(步骤s73)。表示冷数据的列表中包含与对应于冷数据的一个以上lba范围对应的一个以上条目。

继而,主机2对是否为冷块内的op的回收时点进行判定(步骤s74)。主机2基于例如在主机2上同时运行的进程数较少等指标,检测出对ssd3进行存取的频度较低的时点,作为冷块内的op的回收时点。在判定不为冷块内的op的回收时点的情况下(步骤s74为否),返回至步骤s71。

另一方面,在判定为冷块内的op的回收时点的情况下(步骤s74为是),主机2基于表示冷数据的列表内的某条目,向ssd3发布指定了与冷数据对应的lba范围的读取指令(步骤s75)。在ssd3中,遵照该读取指令,读出被指定的lba范围的冷数据,并将其发送至主机2。

继而,主机2向ssd3发布指定了该lba范围并用来写入所读出的冷数据的写入指令(步骤s76)。在ssd3中,遵照该写入指令,向其他第2物理记忆区域而非向储存有冷数据的第1物理记忆区域写入冷数据。然后,在ssd3中,更新lut34,以使该lba范围与第2物理记忆区域相关联,并且将此前储存的第1物理记忆区域的数据无效化。因此,第2物理记忆区域中所储存的数据为有效数据,第1物理记忆区域中所储存的数据成为无效数据。

然后,主机2对表示冷数据的列表中是否包含表示应移动的冷数据的其他条目进行判定(步骤s77)。在列表中包含其他条目的情况下(步骤s77为是),返回至步骤s75,继续执行基于该其他条目的处理。

在列表中未包含其他条目的情况下(步骤s77为否),也就是说,基于列表内的所有条目的处理均已完成的情况下,结束冷块控制处理。

如上所述,ssd3将包含表示冷数据的lba范围的列表的冷块信息36发送至主机2。然后,主机2发布用来读出列表所示的lba范围的冷数据的读取指令、及用来向该lba范围写入所读出的冷数据的写入指令。遵照这些指令,将列表所示的逻辑地址范围的冷数据从冷块移动至新的写入目的地块,由此回收冷块内的op。主机2能控制发布指令的时点,因此能在主机2的资源、或对从主机2向ssd3的存取造成的影响较低的时点,使ssd3执行用来回收冷块内的op的动作。

(第4实施方式)

在第3实施方式中,ssd3将包含表示冷数据的逻辑地址范围的列表的冷块信息36发送至主机2,遵照通过主机2而发布的指令,将列表所示的逻辑地址范围的冷数据从冷块移动至新的写入目的地块,由此回收冷块内的op。与此相对地,在第4实施方式中,不仅将列表所示的逻辑地址范围的冷数据移动至新的写入目的地块,而且将其周边的逻辑地址的数据也移动至新的写入目的地块。

第4实施方式的计算机系统1的构成与第1至第3实施方式的计算机系统1相同,在第4实施方式与第1至第3实施方式中,仅通过主机2的冷块控制i/f部431而执行的处理的步序不同。以下,仅对与第1至第3实施方式不同的点进行说明。

图20表示出了在回收冷块内的op时,将冷数据的lba范围周边的lba的数据也移动至新的写入目的地块的例子。这里,假设将包含与冷块51(冷块a)内的冷数据(有效数据)对应的lba范围的列表的冷块信息36从ssd3发送至主机2的情形。

冷块51中包含有效数据511、及无效数据512、513、514。这些无效数据512、513、514是通过如下方法而获得者,即:遵照将与有效数据511同一时期写入的数据覆写至对应的lba的要求,向其他块52、53、54(块b、c、d)写入新的数据,由此使该与有效数据511同一时期写入的数据无效化。

映射于无效数据512的物理记忆位置的lba与遵照该覆写至lba的要求而新写入至块52的数据521的物理记忆位置映射。映射于无效数据513的物理记忆位置的lba与遵照该覆写至lba的要求而新写入至块53的数据531的物理记忆位置映射。另外,映射于无效数据514的物理记忆位置的lba与遵照该覆写至lba的要求而新写入至块54的数据541的物理记忆位置映射。

这些数据521、531、541可以说是在向冷块51写入时与有效数据511同一时期写入,但其中一部分通过覆写(改写)而写入至其他块52、53、54,并经碎片化的数据。因此,冷块51内的有效数据511与块52、53、54内经碎片化后的数据521、531、541是原本在同一时期写入的一系列数据,故而通过将这些数据511、521、531、541整合而写入至一个块,有望提高存取性能。

因此,在进行回收冷块51的op的处理时,将冷块51内的有效数据511移动至新的写入目的地块55(冷块x),并且将数据521、531、541也移动至该写入目的地块55。这些数据511、521、531、541也可按依照对应的lba的顺序,写入至写入目的地块内。对应于该移动,更新lut34,以使与数据511、521、531、541对应的lba范围与写入有这些数据511、521、531、541的块55的物理记忆位置映射,并且将写入至块51、52、53、54的以往的数据511、521、531、541无效化。由此,冷块51成为不储存有效数据、通过经历删除处理可用来写入新的数据的空闲块。

此外,也可在第1实施方式及第2实施方式中,在进行冷块gc时,与所述同样地将周边的lba的数据也移动至gc宿块。

以下,对用来实现所述处理的构成的一例进行说明。

主机2的冷块控制i/f部431利用表示冷块51内的冷数据(有效数据)的lba范围的列表,如图21所示,生成表示冷数据的lba范围加上与被推定为原初冷数据的数据对应的周边的lba(或lba范围)所得的列表。周边的lba例如为前置在列表所示的lba范围的lba、或后续于该lba范围的lba。

例如,冷块控制i/f部431利用起始lba为“0”且nlb为“10”的第1lba范围的条目、及起始lba为“11”且nlb为“9”的第2lba范围的条目,检测作为其周边的lba的“10”。然后,冷块控制i/f部431对lba为“10”的数据是否为原初冷数据进行判定。冷块控制i/f部431在lba为“10”的数据是例如与第1lba范围的数据及第2lba范围的数据同一时期写入至写入有第1lba范围的数据及第2lba范围的数据的冷块的数据的更新(覆写)数据的情况下,或是与第1lba范围的数据及第2lba范围的数据在同一进程写入至该冷块的数据的更新数据的情况下,判定lba为“10”的数据是原初冷数据。

冷块控制i/f部431在判定lba为“10”的数据是原初冷数据的情况下,变更列表,以使该列表所示的冷数据的lba范围内还包含lba“10”。例如,如图21所示,冷块控制i/f部431将第1lba范围及第2lba范围的条目变更成包含第1lba范围、第2lba范围、及lba“10”且起始lba为“0”、nlb为“20”的条目。

通过利用这样变更后的列表,在回收冷块内的op时,不仅该冷块内的冷数据会被移动至新的写入目的地块,而且作为原初冷数据的周边的lba的数据也会被移动至新的写入目的地块,因此不仅能确保op,也能提高存取性能。

图22的流程图表示出了通过主机2而执行的冷块控制处理的步序的例子。步骤s81至步骤s84的步序与参照图19的流程图所说明的所述步骤s71至步骤s74的步序相同。

在判定为冷块内的op回收时点的情况下(步骤s84为是),主机2利用所接收到的表示冷数据的列表,制作还包含被推定出储存有冷数据的周边的lba(lba范围)的列表(步骤s85)。因此,所制作出的列表中包含例如表示对应于冷数据的lba范围、及被推定为冷数据的数据的lba(lba范围)的一个以上条目。

主机2基于所制作出的列表内的某条目,向ssd3发布指定了与冷数据、及被推定为冷数据的数据中的至少一者对应的lba范围的读取指令(步骤s86)。在ssd3中,遵照该读取指令,读出被指定的lba范围的数据,并将其发送至主机2。

主机2向ssd3发布指定了该lba范围且用来写入被读出的数据的写入指令(步骤s87)。在ssd3中,遵照该写入指令,向其他第2物理记忆区域而非储存有该数据的第1物理记忆区域写入数据。然后,在ssd3中,更新lut34,以使该lba范围与第2物理记忆区域相关联,并且将此前储存的第1物理记忆区域的数据无效化。因此,第2物理记忆区域中所储存的数据是有效数据,第1物理记忆区域中所储存的数据成为无效数据。

然后,主机2对步骤s85中所制作出的列表内是否包含表示应移动的数据的其他条目进行判定(步骤s88)。在列表内包含其他条目的情况下(步骤s88为是),返回至步骤s86,继续执行基于该其他条目的处理。

在列表内未包含其他条目的情况下(步骤s88为否),也就是说,基于列表内的所有条目的处理均完成的情况下,结束冷块控制处理。

(第5实施方式)

在第1至第4实施方式中,在ssd3中,通过将冷块内的冷数据移动至其他块,而回收冷块内的op。与此相对地,在第5实施方式中,通过将ssd3的冷块内的冷数据移动至其他储存器,而回收冷块内的op。

第5实施方式的计算机系统的构成是在与第1至第4实施方式相同的计算机系统1进而设置有其他储存器而成者,仅通过主机2的冷块控制i/f部431及冷数据管理部432而执行的处理的步序不同。以下,仅对与第1至第4实施方式不同的点进行说明。

图23表示出了除主机2及第1ssd3以外还具备第2ssd7的计算机系统1a的用来回收冷块内的op的动作的例子。第1ssd3是用来储存热数据的热储存器,且是作为回收冷块内的op的对象的储存器。另外,第2ssd7是用来储存冷数据的冷储存器。此外,作为冷储存器,也可使用hdd以取代第2ssd7。第1ssd3及第2ssd7分别作为das连接于主机2。

主机2向第1ssd3问询冷块信息36。第1ssd3对应于该问询,将冷块信息36发送至主机2。冷块信息36包含与第1ssd3的nand型闪速存储器5内的冷数据对应的逻辑块地址的范围(lba范围)的列表。关于该冷块信息36,同参照图15及图16所述者。

主机2利用冷块信息36,向第1ssd3发布指定了冷数据的lba范围的读取指令。第1ssd3遵照读取指令,从nand型闪速存储器5读出所指定的lba范围的冷数据,并将其发送至主机2。通过以上,主机2能从第1ssd3读出冷数据。

然后,主机2向第2ssd7发布指定了该lba范围且用来写入被读出的冷数据的写入指令。此外,该写入指令中也可包含如图17所示的表示被写入的数据为冷数据的信息。

第2ssd7遵照写入指令,将该冷数据写入至第2ssd7内的nand型闪速存储器。第2ssd7也可根据写入指令中所包含、表示被写入的数据为冷数据的信息,选择适于写入冷数据的块(例如,编程/删除循环数较多的块)作为写入目的地块。另外,在第2ssd7中,更新第2ssd7内的lut,以使通过写入指令所指定的lba范围映射于写入有冷数据的物理记忆区域。通过以上,主机2能向第2ssd7写入冷数据。

通过这种冷数据的读出及写入,能将冷数据从第1ssd3内的冷块移动至第2ssd7内的用于主机写入的写入目的地块。主机2向第1ssd3发布指定了被移动的数据的lba范围的清理指令。第1ssd3更新lut34,以使被清理指令指定的lba范围成为不映射于任何物理记忆区域的映射释放状态。因此,此前写入有冷数据的冷块内的物理记忆区域成为不映射于任何lba、储存无效数据的区域。

另外,主机2的冷数据管理部432对将某lba范围的数据储存于ssd3、ssd7中的哪一者进行管理。例如,在某lba范围的数据已被从第1ssd3移动至第2ssd7的情况下,对将该lba范围的数据储存于第2ssd7中进行管理。该管理是利用例如lba范围-储存器管理表412a。

图24表示出了lba范围-储存器管理表412a的一个构成例。lba范围-储存器管理表412a包含对应于一个以上lba范围的一个以上记录。各记录包含例如起始lba、长度(逻辑块数)、及储存器id(identification,识别码)。

在对应于某lba范围的记录中,“起始lba”表示该lba范围的开头的lba。“长度”表示该lba范围中所包含的逻辑块数量(nlb)。“储存器id”表示储存有与该lba范围对应的数据的储存器的识别信息。例如,若为图23所示的计算机系统1的构成,则对“储存器id”设定赋予给第1ssd3的识别信息(这里为“0001”)、或赋予给第2ssd7的识别信息(这里为“0002”)中的任一者。

如图24所示,例如,在起始lba为“500”且nlb为“80”的lba范围的数据已被从第1ssd3(储存器id“0001”)移动至第2ssd7(储存器id“0002”)的情况下,冷数据管理部432将对与起始lba为“500”且nlb为“80”的lba范围对应的记录所设的储存器id由“0001”变更为“0002”。

冷数据管理部432是以如下方式进行控制,即:在被要求对某lba范围进行存取的情况下,利用lba范围-储存器管理表412a,对与该lba范围相关联的储存器id的储存器进行存取(例如,对该储存器发布指令)。冷数据管理部432例如是以如下方式进行控制,即:利用图24的更新后的lba范围-储存器管理表412a,被要求对起始lba为“500”且nlb为“80”的lba范围进行存取的情况下,对第2ssd7进行存取。

在主机2中,例如,针对冷块信息36所示的每个lba范围,进行如上所述用来将冷数据从第1ssd3移动至第2ssd7的动作。通过这种动作,第1ssd3内的冷块中包含的所有冷数据(有效数据)移动至第2ssd7内的用于主机写入的写入目的地块后,该冷块即成为不储存有效数据、通过经历删除处理可用来写入新的数据的空闲块。因此,能回收冷块内的op。

图25的流程图表示出了通过主机2而执行的冷块控制处理的步序的例子。

主机2对是否为向第1ssd3问询冷块信息36的时点进行判定(步骤s91)。主机2例如每隔固定时间,便判定为向第1ssd3问询冷块信息36的时点。在不为问询冷块信息36的时点的情况下(步骤s91为否),返回至步骤s91。

在为问询冷块信息36的时点的情况下(步骤s91为是),主机2向第1ssd3问询冷块信息36(步骤s92)。然后,主机2接收通过第1ssd3而发送、包含表示冷数据的列表的冷块信息36(步骤s93)。表示冷数据的列表中包含与对应于冷数据的一个以上lba范围对应的一个以上条目。

继而,主机2对是否为第1ssd3的冷块内的op的回收时点进行判定(步骤s94)。主机2基于例如在主机2上同时运行的序数较少等指标,检测出对第1ssd3进行存取的频度较低的时点,作为冷块内的op的回收时点。在判定不为冷块内的op的回收时点的情况下(步骤s94为否),返回至步骤s91。

另一方面,在判定为冷块内的op的回收时点的情况下(步骤s94为是),主机2基于表示冷数据的列表内的某条目,向第1ssd3发布指定了与冷数据对应的lba范围的读取指令(步骤s95)。在第1ssd3中,遵照该读取指令,读出被指定的lba范围的冷数据,并将其发送至主机2。

继而,主机2向第2ssd7发布指定了该lba范围且用来写入被读出的冷数据的写入指令(步骤s96)。在第2ssd7中,遵照该写入指令,向某物理记忆位置写入冷数据。然后,在第2ssd7中,更新lut,使该lba范围与该物理记忆位置相关联。

一旦第2ssd7中的写入完成,主机2便向第1ssd3发布指定了该lba范围的清理指令(步骤s97)。在第1ssd3中,将对应于被指定的lba范围的物理记忆区域、即写入有冷数据的物理记忆区域的数据无效化,并且更新lut34,以使被指定的lba范围成为不映射于任何物理记忆区域的映射释放状态。

继而,主机2更新lba范围-储存器管理表412a内的对应于该lba范围的记录,以表示出对应于该lba范围的数据储存于第2ssd7中(步骤s98)。由此,主机2能利用lba范围-储存器管理表412a,在对该lba范围的数据进行存取的情况下,判断出应向第2ssd7发布指令。

然后,主机2对表示冷数据的列表中是否包含表示应移动的冷数据的其他条目进行判定(步骤s99)。在列表中包含其他条目的情况下(步骤s99为是),返回至步骤s95,继续执行基于该其他条目的处理。

在列表中未包含其他条目的情况下(步骤s99为否),也就是说,基于列表内的所有条目的处理均已完成的情况下,结束冷块控制处理。

通过以上构成,在进而设置有第2ssd7(冷储存器)的情况下,第1ssd3(热储存器)的冷块内的冷数据被移动至该第2ssd7。由此,能不消耗相对于主机写入的第1ssd3的nand存取的频带宽度地,回收冷块内的op,并且能将冷数据与热数据分离于不同的ssd3、ssd7。

(第6实施方式)

在第5实施方式中,将第1ssd3的冷块内的冷数据写入至作为das连接于主机2的第2ssd7。与此相对地,在第6实施方式中,将第1ssd3的冷块内的冷数据写入至经由网络连接于主机2的其他储存器。

第6实施方式的计算机系统的构成并非使第5实施方式的计算机系统1a内的第2ssd7为das,而是使其为经由网络连接于主机2者,在第6实施方式与第1至第5实施方式中,仅通过主机2的冷块控制i/f部431而执行的处理的步序不同。以下,仅对与第1至第5实施方式不同的点进行说明。

图26表示出了除主机2及第1ssd3以外还具备第2ssd7的计算机系统1b的用来回收冷块内的op的动作的例子。第1ssd3是用来储存热数据的热储存器,且是作为回收冷块内的op的对象的储存器。另外,第2ssd7是用来储存冷数据的冷储存器。此外,作为冷储存器,也可使用hdd以取代第2ssd7,冷储存器也可为多个。第1ssd3作为das连接于主机2。另外,第2ssd7是nas(networkattachedstorage,网络附接储存器)或云储存器等经由网络8连接于主机2的储存器。

主机2向第1ssd3问询冷块信息36。第1ssd3对应于该问询,将冷块信息36发送至主机2。冷块信息36包含与第1ssd3的nand型闪速存储器5内的冷数据对应的逻辑地址的范围(lba范围)的列表。关于该冷块信息36,同参照图15及图16所述。

主机2利用冷块信息36,向第1ssd3发布指定了冷数据的lba范围的读取指令。第1ssd3遵照读取指令,从nand型闪速存储器5读出被指定的lba范围的冷数据,并将其发送至主机2。通过以上,主机2能从第1ssd3读出冷数据。

然后,主机2经由网络8向第2ssd7发布指定了该lba范围且用来写入被读出的冷数据的写入指令。此外,如图17所示,该写入指令中也可包含表示被写入的数据为冷数据的信息。

第2ssd7遵照写入指令,将该冷数据写入至第2ssd7内的nand型闪速存储器。第2ssd7也可遵照写入指令中所包含、表示被写入的数据为冷数据的信息,选择适于写入冷数据的块(例如,编程/删除循环数较多的块)作为写入目的地块。另外,在第2ssd7中,更新第2ssd7内的lut,以使通过写入指令所指定的lba范围映射于写入有冷数据的物理记忆区域。通过以上,主机2能向第2ssd7写入冷数据。

通过这种冷数据的读出及写入,能将冷数据从第1ssd3内的冷块移动至用于第2ssd7内的主机写入的写入目的地块。主机2向第1ssd3发布指定了被移动的数据的lba范围的清理指令。第1ssd3更新lut34,以使被清理指令所指定的lba范围成为不映射于任何物理记忆区域的映射释放状态。因此,此前写入有冷数据的冷块内的物理记忆区域成为不映射于任何lba、储存无效数据的区域。

另外,主机2的冷数据管理部432对将某lba范围的数据储存于ssd3、ssd7中的哪一者进行管理。例如,在某lba范围的数据已被从第1ssd3移动至第2ssd7的情况下,对将该lba范围的数据储存于经由网络8而连接的第2ssd7中进行管理。

该管理是利用例如lba范围-储存器管理表412a。关于lba范围-储存器管理表412a,同参照图24所述者。此外,在将某lba范围的数据储存于经由网络8而连接的第2ssd7中的情况下,也可在lba范围-储存器管理表412a中,管理网络上的位置,以取代管理“储存器id”。

冷数据管理部432是以如下方式进行控制,即:在被要求对某lba范围进行存取的情况下,利用lba范围-储存器管理表412a,对与该lba范围相关联的网络上的位置的储存器进行存取(例如,对该储存器发布指令)。

通过以上构成,即便在经由网络8设置有第2ssd7(冷储存器)的情况下,第1ssd3(热储存器)的冷块内的冷数据也会被移动至该第2ssd7。由此,能不消耗相对于主机写入的第1ssd3的nand存取的频带宽度地,回收冷块内的op,并且能将冷数据与热数据分离于不同的ssd3、ssd7。

(第7实施方式)

在第1及第2实施方式中,主机2要求ssd3回收冷块内的op(执行冷块gc)。另外,在第3至第6实施方式中,通过主机2从ssd3读出冷数据及向ssd3写入冷数据,而回收冷块内的op。在第7实施方式中,与第1及第2实施方式同样地,遵照来自主机2的要求,开始回收冷块内的op,但要通过ssd3向其他ssd7写入冷数据,而回收冷块内的op。

第7实施方式的计算机系统的构成是在第6实施方式的计算机系统1b中,经由网络8,不仅主机2与ssd7连接,而且ssd3与ssd7也连接,在第7实施方式与第1至第6实施方式中,仅通过ssd3的冷块控制部123而执行的处理的步序不同。以下,仅对与第1至第6实施方式不同的点进行说明。

图27表示出了除主机2及第1ssd3以外还具备第2ssd7的计算机系统1b的用来回收冷块内的op的动作的例子。第1ssd3是用来储存热数据的热储存器,且是作为回收冷块的op的对象的储存器。另外,第2ssd7是用来储存冷数据的冷储存器。此外,作为冷储存器,也可使用hdd以取代第2ssd7,冷储存器也可为多个。第1ssd3作为das连接于主机2。另外,第2ssd7是nas或云储存器等经由网络8连接于主机2的储存器。进而,第1ssd3与第2ssd7经由网络8而连接。

主机2向第1ssd3问询冷块信息36。第1ssd3对应于该问询,将冷块信息36发送至主机2。冷块信息36包含例如可从冷块回收的op量、及仅执行从冷块回收op的动作时的推定的处理时间或处理量等。

主机2利用冷块信息36,对是否要指示第1ssd3回收冷块内的op进行判定。主机2例如在如主机2处于闲置状态的情况下般,即便执行了回收冷块内的op的动作,对来自主机2的存取的影响也较小的情况下,指示第1ssd3回收冷块内的op。第1ssd3遵照来自主机2的指示,开始执行用来回收冷块内的op的处理。

第1ssd3(读取控制部124)从冷块的列表所示的冷块中,读出冷数据(有效数据)。冷块的列表包含在例如冷块信息36中。这里,假设被读出的冷数据是对应于第1lba范围的数据。

第1ssd3向第2ssd7发布指定了第1lba范围且用来写入被读出的冷数据的写入指令。此外,如图17所示,该写入指令中也可包含表示被写入的数据为冷数据的信息。

第2ssd7遵照写入指令,将该冷数据写入至第2ssd7内的nand型闪速存储器。第2ssd7也可根据写入指令中所包含、表示被写入的数据为冷数据的信息,选择适于写入冷数据的块(例如,编程/删除循环数较多的块)作为写入目的地块。另外,在第2ssd7中,更新第2ssd7内的lut,以使被写入指令所指定的lba范围映射于写入有冷数据的物理记忆区域。通过以上,第1ssd3能向第2ssd7写入冷数据。

通过这种冷数据的读出及写入,能将冷数据从第1ssd3内的冷块移动至第2ssd7内的写入目的地块。第1ssd3更新lut34,以使被移动至第2ssd7的冷数据的第1lba范围成为不映射于第1ssd3内的任何物理记忆区域的映射释放状态。因此,此前写入有冷数据的冷块内的物理记忆区域成为不映射于任何lba、储存无效数据的区域。

然后,第1ssd3通知主机2第1lba范围的数据已被从第1ssd3移动至第2ssd7。

主机2的冷数据管理部432基于来自第1ssd3的通知,对将第1lba范围的数据储存于第2ssd7中进行管理。该管理是利用例如lba范围-储存器管理表412a。关于lba范围-储存器管理表412a,同参照图24所述者。此外,在将某lba范围的数据储存于经由网络8而连接的第2ssd7中的情况下,也可在lba范围-储存器管理表412a中,管理网络上的位置,以取代管理“储存器id”。

冷数据管理部432是以如下方式进行控制,即:在被要求对某lba范围进行存取的情况下,利用lba范围-储存器管理表412a,对与该lba范围相关联的网络上的位置的储存器进行存取(例如,对该储存器发布指令)。

通过以上构成,第1ssd3遵照来自主机2的冷块内的op的回收指示,将第1ssd3(热储存器)的冷块内的冷数据移动至第2ssd7(冷储存器)。由此,能不消耗相对于主机写入的第1ssd3的nand存取的频带宽度地,回收冷块内的op,并且能将冷数据与热数据分离于不同的ssd3、ssd7。

图28的流程图表示出了通过第1ssd3的控制器4而执行的op回收控制处理的步序的例子。

控制器4对是否被主机2指示了回收冷块内的op进行判定(步骤s201)。在未被指示冷块内的op的回收的情况下(步骤s201为否),返回至步骤s201。

在被指示了冷块内的op的回收的情况下(步骤s201为是),控制器4读出冷块的列表所示的某冷块内的冷数据(有效数据)(步骤s202)。然后,控制器4经由网络8向第2ssd7发布用来向与储存被读出的冷数据的物理记忆区域对应的lba范围写入该被读出的冷数据的写入指令(步骤s203)。在第2ssd7中,遵照该写入指令,向某物理记忆区域写入冷数据。然后,在第2ssd7中,更新lut,使该lba范围与该物理记忆区域相关联。

一旦第2ssd7中的写入完成,控制器4便更新lut34,以使该lba范围成为不映射于任何物理记忆区域的映射释放状态,将对应于该lba范围的物理记忆区域、即写入有冷数据的物理记忆区域的数据无效化(步骤s204)。然后,控制器4通知主机2该lba范围的冷数据已被移动至第2ssd7(步骤s205)。

继而,控制器4对是否有应移动的其他冷数据进行判定(步骤s206)。例如,在冷块中有仍未被移动的冷数据的情况下、或有未被处理的其他冷块的情况下,控制器4判定有应移动的其他冷数据。在有应移动的其他冷数据的情况下(步骤s206为是),返回至步骤s202,继续执行用来将该其他冷数据移动至第2ssd7的处理。

在无应移动的其他冷数据的情况下(步骤s206为否),也就是说,所有冷数据均已被移动至第2ssd7的情况下,控制器4通知主机2冷块内的op的回收已完成(步骤s207)。

另外,图29的流程图表示出了通过主机2而执行的冷块控制处理的步序的例子。

主机2对是否为向第1ssd3问询冷块信息36的时点进行判定(步骤s301)。主机2例如每隔固定时间,便判定为向第1ssd3问询冷块信息36的时点。在不为问询冷块信息36的时点的情况下(步骤s301为否),返回至步骤s301。

在为问询冷块信息36的时点的情况下(步骤s301为是),主机2向第1ssd3问询冷块信息36(步骤s302)。然后,主机2接收通过第1ssd3而发送的冷块信息36(步骤s303)。

继而,主机2对是否为指示第1ssd3回收冷块内的op的时点进行判定(步骤s304)。主机2基于例如在主机2上同时运行的进程数较少等指标,检测出对第1ssd3进行存取的频度较低的时点,作为冷块内的op回收指示时点。在判定不为冷块内的op回收指示时点的情况下(步骤s304为否),返回至步骤s301。

另一方面,在判定为冷块内的op回收指示时点的情况下(步骤s304为是),主机2向第1ssd3发布回收冷块内的op的请求(步骤s305)。

然后,主机2对是否从第1ssd3接收到了表示冷数据已被移动的通知进行判定(步骤s306)。该通知中包含表示与被移动的冷数据对应的lba范围的信息。在未接收到表示冷数据已被移动的通知的情况下(步骤s306为否),返回至步骤s306。

在接收到了表示冷数据已被移动的通知的情况下(步骤s306为是),更新lba范围-储存器管理表412a内的与该lba范围对应的记录,以表示出该通知所示的与lba范围对应的数据储存于第2ssd7中(步骤s307)。由此,主机2可利用lba范围-储存器管理表412a,决定在对某lba范围的数据进行存取的情况下,应向哪个储存器发布指令。

然后,主机2对是否接收到了op回收的完成通知进行判定(步骤s308)。在未接收到完成通知的情况下(步骤s308为否),返回至步骤s306。另一方面,在接收到了完成通知的情况下(步骤s308为是),结束处理。

通过以上构成,在经由网络8设置有第2ssd7(冷储存器)的情况下,通过与来自主机2的要求相应的第1ssd3(热储存器)的动作,将第1ssd3的冷块内的冷数据移动至该第2ssd7。由此,能不消耗第1ssd3的nand存取的频带宽度地,回收冷块内的op,并且能将冷数据与热数据分离至不同的ssd3、ssd7中。

图30表示出了在第1至第7实施方式的任一者中作为主机2而发挥功能的信息处理装置(计算装置)的硬件构成例。

该信息处理装置是以服务器(例如,储存服务器)等计算装置的形态实现的。该信息处理装置包含处理器(cpu)101、主存储器102、bios-rom(basicinput/outputsystem-readonlymemory,基本输入输出系统-只读存储器)103、网络控制器105、周边接口控制器106、控制器107、及嵌入式控制器(ec)108等。

处理器101是以控制该信息处理装置的各组件的动作的方式构成的cpu。该处理器101执行从多个ssd3中的任一者加载至主存储器102的各种程序。主存储器102由dram等随机存取存储器构成。通过处理器101而执行的程序包括所述应用层41、os42、及文件系统43。

另外,处理器101也执行作为非易失性存储器的bios-rom103中所储存的基本输入输出系统(bios)。bios是用于硬件控制的系统程序。

网络控制器105是有线lan(localareanetwork,局域网络)控制器、无线lan控制器等通信装置。通过使用网络控制器105的有线通信或无线通信,例如,也能在与ssd7等储存装置之间收发数据。

周边接口控制器106是以执行与usb装置等周边装置的通信的方式构成。

控制器107是以执行与分别连接于多个连接器107a的装置的通信的方式构成。多个ssd3也可分别连接于多个连接器107a。控制器107为sas扩展器、pcie切换器、pcie扩展器、闪速阵列控制器、或raid(redundantarraysofindependentdisks,独立冗余磁盘阵列)控制器等。

ec108作为执行信息处理装置的电力管理的方式构成的系统控制器而发挥功能。ec108对应于用户对电源开关的操作而开启及关闭信息处理装置。ec108能以单芯片微控制器等处理电路的形态实现的。ec108也可内置控制键盘等输入装置的键盘控制器。

综合以上说明,根据第1至第7实施方式,既能减少对来自主机的存取的影响,又能回收冷块内的剩余容量(op)。例如,ssd3的控制器4将表示与nand型闪速存储器5中所储存的冷数据对应的第1逻辑地址范围、及用来使包含冷数据的冷块成为可写入数据的块的处理量的冷块信息36发送至主机2。主机2的处理器101接收该冷块信息36,向ssd3发布指定了第1逻辑地址范围的读取指令。控制器4遵照该读取指令,从nand型闪速存储器5读出冷数据,并将其发送至主机2。处理器101接收冷数据,向ssd3发布指定了第1逻辑地址范围且用来写入所接收到的冷数据的写入指令。控制器4将遵照该写入指令而接收的冷数据写入至nand型闪速存储器5。

在这种计算机系统1中,主机2能控制发布读取指令及写入指令的时点,故而能不在主机2预期外的时点消耗对主机写入进行nand存取的频带宽度地,回收ssd3中所储存的冷块内的op。主机2能掌握ssd3中所储存的冷数据的状况,从而能根据其用途进行恰当的管理。

另外,第1至第7实施方式中所记载的各种功能各自也可通过电路(处理电路)而实现。处理电路的例子中包括中央处理装置(cpu)等经编程的处理器。该处理器通过执行存储器中所储存的计算机程序(命令群),而执行所记载的功能各者。该处理器也可为包含电气电路的微处理器。处理电路的例子中也包括数字信号处理器(dsp)、针对指定用途的集成电路(asic)、微控制器、控制器、及其他电气电路零件。这些实施方式中所记载的cpu以外的其他组件各自同样地也可通过处理电路而实现。

另外,第1至第7实施方式的各种处理可通过计算机程序而实现,故而只是经由储存有该计算机程序的计算机可读取的记忆媒体将该计算机程序安装至计算机中并加以执行,便能容易地实现与这些实施方式相同的效果。

对本发明的若干实施方式进行了说明,但这些实施方式仅作为示例而提出,并非意图限定发明的范围。这些新颖的实施方式能以其他各种实施方式来实施,可在不脱离发明主旨的范围内,进行各种省略、替换、变更。这些实施方式及其变形包含在发明的范围及主旨中,并且包含在权力要求书所记载的发明及它等同的范围内。

[符号的说明]

1计算机系统

2主机

3ssd

4控制器

5nand型闪速存储器

6dram

10总线

11主机i/f

12cpu

13nandi/f

14drami/f

121冷块控制i/f部

122块管理部

123冷块控制部

124读取控制部

125写入控制部

126gc控制部

127冷块gc控制部

31读取缓冲区

32写入缓冲区

33gc缓冲区

34lut

35块管理信息

36冷块信息

431冷块控制i/f部

432冷数据管理部

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1