电子设备、计算机系统及它们的控制方法
[相关申请]
本申请享有以日本专利申请2018-65039号(申请日:2018年3月29日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。
技术领域
本发明的实施方式涉及一种具备非易失性存储器的电子设备、计算机系统及它们的控制方法。
背景技术
近年来,具备非易失性存储器的存储器正广泛地普及。
作为这种存储器之一,已知有具备NAND(Not And,与非)型闪速存储器的固态驱动器(SSD)。SSD被用作多种计算装置的主存储器。
现有的SSD始终全力(尽最大努力)处理并响应来自主机的指令要求。所谓全力,意味着例如当存在读取或写入等从主机(PC(Personal Computer,个人计算机))向存储装置(SSD)发布的多个要求指令时,尽可能快速地执行依次处理所要求的全部指令并进行数据的读写、通知处理完成为止的一系列处理,直到不再从主机发布指令要求为止。
对于搭载在利用电池驱动的便携式PC的SSD,重要的是使SSD转换为低耗电状态。这种SSD通常是在对输入到指令队列的全部指令进行处理之后,经过一段时间(例如数秒)不进行任何处理的状态之后再进入到低耗电状态。
在实际用例中,尤其是对于面向消费者的SSD,也假定了SSD无需全力动作的情况。因此,必须实现能够通过根据状况的指令调度来削减耗电的新功能。
发明内容
本发明的实施方式提供一种能够根据状况对指令进行调度且削减耗电的电子设备、计算机系统及它们的控制方法。
根据实施方式,电子设备具备非易失性存储器及控制器,该控制器电连接于所述非易失性存储器,且能并行地处理由主机发布的多个指令。所述控制器构成为,当由所述主机发布分别被指定了应被处理的截止期限时间的一个以上的指令时,基于所述截止期限时间来决定表示所述一个以上的指令各自被处理的时点的调度方式,按照所述调度方式,执行与所述一个以上的指令相应的处理。
附图说明
图1是表示实施方式的计算机系统的构成例的框图。
图2是用来说明本实施方式的计算机系统中的指令处理的动作的例子的图。
图3是表示本实施方式的计算机系统中所使用的指定了截止期限时间的指令(提交队列项)的格式的例子的图。
图4是表示图3的截止期限时间的格式的例子的图。
图5是表示轮循(round robin)方式的指令仲裁的例子的图。
图6是表示加权轮循方式的指令仲裁的例子的图。
图7是表示本实施方式的计算机系统中的指令仲裁的例子的图。
图8是表示本实施方式的计算机系统中所使用的包含完成时间的完成队列项的格式的例子的图。
图9是表示通过本实施方式的计算机系统中所设置的主机来执行的指令发布处理的顺序的例子的流程图。
图10是表示通过本实施方式的计算机系统中所设置的主机来执行的指令中止处理的顺序的例子的流程图。
图11是表示通过本实施方式的计算机系统中所设置的SSD来执行的执行控制处理的顺序的例子的流程图。
图12是用来说明本实施方式的计算机系统中的流动作的图。
图13是用来说明本实施方式的计算机系统中的下载动作的图。
图14是用来说明本实施方式的计算机系统中的备份动作的图。
图15是用来说明对本实施方式的计算机系统中的多层存储器系统的存取动作的图。
图16是表示图15的存取动作的处理顺序的图。
图17是表示本实施方式的计算机系统中所设置的SSD的电力状态的转变的例子的图。
图18是用来说明本实施方式的计算机系统中所设置的SSD的耗电的变化的图。
图19是用来说明本实施方式的计算机系统中所设置的SSD的耗电削减的效果的图。
图20是表示无基于截止期限时间的调度的计算机系统中的消耗功率与总线分析器波形的转变的例子的图。
图21是表示本实施方式的计算机系统中的消耗功率与总线分析器波形的转变的例子的图。
图22是表示本实施方式的计算机系统中所设置的主机的构成例的框图。
具体实施方式
以下,参照附图对实施方式进行说明。
首先,参照图1,对实施方式的计算机系统1的构成进行说明。
计算机系统1包含主机(主机装置)2及一个以上的半导体存储装置,该半导体存储装置是以对非易失性存储器写入数据,且从非易失性存储器读出数据的方式构成。
主机2是对半导体存储装置进行存取的信息处理装置(计算装置)。主机2既可为将大量且多样的数据保存到半导体存储装置的服务器(存储服务器),也可为个人计算机。半导体存储装置是以例如具备NAND型闪速存储器的固态驱动器(SSD)3的形式实现的。
SSD3能用作作为主机2发挥功能的信息处理装置的主存储器。SSD3既可内置于该信息处理装置中,也可经由线缆或网络连接于该信息处理装置。
作为用来将主机2与SSD3相互连接的接口,可使用SCSI(Small Computer SystemInterface,小型计算机系统接口)、串行连接的SCSI(SAS)、ATA(Advanced TechnologyAttachment,高级技术附件)、串行ATA(SATA)、PCI Express(Peripheral ComponentInterconnect Express,外围组件互连高速)(PCIe)(注册商标)、以太网(Ethernet)(注册商标)、光纤通道、NVM Express(Non-Volatile Memory Express,非易失性存储器标准)(NVMe)(注册商标)、通用闪速存储器(UFS,Universel Flash Storage)、嵌入式多媒体卡(eMMC(注册商标))等。
SSD3具备控制器4及非易失性存储器(NAND型闪速存储器)5。控制器4能通过像芯片上系统(SoC,System-on-a-chip)这样的电路实现。SSD3也可具备作为易失性存储器的随机存取存储器、例如DRAM(Dynamic Random Access Memory,动态随机存取存储器)6。或者,也可将像SRAM(Static Random Access Memory,静态随机存取存储器)这样的随机存取存储器内置于控制器4。
在DRAM6等随机存取存储器,例如设置着:读取缓冲区(RB)61,它是用来暂时存储从NAND型闪速存储器5读出的数据的缓冲区域;写入缓冲区(WB)62及GC(Garbage-Collection,垃圾回收)缓冲区63,它们是用来暂时存储对NAND型闪速存储器5写入的数据的缓冲区域;以及作为地址转换表(逻辑物理地址转换表)发挥功能的查找表(LUT)64的高速缓冲区域。进而,在DRAM6等随机存取存储器,也可设置着处理中所使用的各种信息的存储区域。此外,DRAM6也可设置在控制器4的内部。LUT64对各逻辑地址与NAND型闪速存储器5的各物理地址之间的映射进行管理。
NAND型闪速存储器5也可包含多个NAND型闪速存储芯片(多个NAND型闪速存储裸片)。各芯片是以构成为能够在每个存储单元存储多个比特的闪速存储器的形式实现。
控制器4经由像双态DDR(Double Data Rate,双数据速率)、开放式NAND闪速接口(ONFI,Open NAND Flash Interface)这样的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)与各物理地址之间的映射的管理是使用作为地址转换表(逻辑物理地址转换表)发挥功能的LUT64来执行。控制器4是使用LUT64,以特定的管理大小为单位对各LBA与各物理地址之间的映射进行管理。对应于某LBA的物理地址表示写入有该LBA的数据的NAND型闪速存储器5内的物理记忆位置。LUT64也可为在SSD3的电源接通时从NAND型闪速存储器5加载到DRAM6。
关于向一个页的数据写入,每一个P/E(Program/Erase,编程/擦除)循环只能实施1次。因此,控制器4将对应于某LBA的更新数据写入到其它物理记忆位置,而非写入到存储有对应于该LBA的旧数据的物理记忆位置。然后,控制器4将LUT64更新而使该LBA与该其它物理记忆位置相关联,并且使以前的数据无效化。以下,将参照自LUT64的数据(也就是与逻辑地址相关联的数据)称为有效数据。另外,将未与任何逻辑地址相关联的数据称为无效数据。有效数据是之后有可能被主机2读取的数据。无效数据是已无可能被主机2读取的数据。
块管理包含坏块的管理、耗损平均及垃圾回收(GC)等。
控制器4也可包含主机接口11、CPU(Central Processing Unit,中央处理器)12、NAND接口13及DRAM接口14等。这些主机接口11、CPU12、NAND接口13及DRAM接口14是经由总线10而相互连接。
主机接口11作为从主机2接收多种指令、例如I/O(Input/Output,输入/输出)指令及各种控制指令等的电路发挥功能。I/O指令可包含写入指令、读取指令、取消映射指令(修正指令)、格式指令及闪速指令等。
DRAM接口14作为以控制DRAM6的存取的方式构成的DRAM控制器发挥功能。DRAM6的记忆区域被用来存储读取缓冲区(RB)61、写入缓冲区(WB)62、GC缓冲区63及LUT64等。
CPU12是以控制主机接口11、NAND接口13及DRAM接口14的方式构成的处理器。CPU12通过执行未图示的ROM(Read Only Memory,只读存储器)等中所存储的控制程序(固件)而进行多种处理。该CPU12除能够执行所述FTL的处理以外,也能够执行用来处理来自主机2的多种指令的指令处理等。CPU12的动作是通过由CPU12执行的所述的固件而进行控制。此外,FTL处理及指令处理的一部分或全部也可由控制器4内的专用硬件执行。
接下来,对主机2的构成进行说明。
主机2是执行多种程序的信息处理装置。由信息处理装置执行的程序包含应用层41、操作系统(OS)42及装置驱动程序(中间件)43等。
如一般所知,OS42是以管理主机2整体,控制主机2内的硬件,执行用来使应用可使用硬件及SSD3的控制的方式构成的软件。
装置驱动程序43是用于向SSD3存取的软件。装置驱动程序43也可与进行用于文件操作(创建、保存、更新及删除等)的控制的文件系统协同使用。例如将ZFS(Zettabyte FileSystem,动态文件系统)、Btrfs(B-tree file system,B树文件系统)、XFS(Extents FileSystem,扩展文件系统)、ext4(Fourth extended file system,第四代扩展文件系统)、NTFS(New Technology File System,新技术文件系统)等用作文件系统。或者,也可将文件对象系统(例如对象存储精灵协助程序(Ceph Object Storage Daemon)、密钥存储系统(Key Value Store System)(例如Rocks DB(Rocks Data base,岩石数据库))用作文件系统。
多种应用软件线程在应用层41上运行。作为应用软件线程的例子,有用户端软件、数据库软件及虚拟设备等。
在应用层41需对SSD3发布如读取指令或写入指令的请求时,应用层41对OS42送出该请求。OS42将该请求送出到装置驱动程序43。装置驱动程序43将该请求转换成指令(读取指令、写入指令等)。装置驱动程序43对SSD3发布指令。当接收到来自SSD3的回应时,装置驱动程序43将该回应送出到OS42。OS42将该回应送出到应用层41。
在主机2设置着被输入对SSD3发布的指令的队列30。队列30例如包含一个以上的提交队列31、及一个以上的完成队列32。提交队列31是具有特定的时隙大小,且被用来供主机2(主机软件)发布(输入)由SSD3的控制器4执行的指令的命令队列。完成队列32是具有特定的时隙大小,且被用来通知与已完成的指令相关的状态的响应队列。
装置驱动程序43具备指令发布部431。指令发布部431当受理来自OS42(应用层41)的请求时,决定与该请求对应的指令在SSD3中应被处理的截止期限时间。然后,指令发布部431发布指定了该截止期限时间的指令,并输入到提交队列31。
指令发布部431例如当无需使SSD3全力动作时,基于主机2对SSD3要求的适当的性能(例如读取性能、写入性能等)、速度(例如读取速度、写入速度等)及时点(例如读取时间、写入时间等)中的至少任一个来决定截止期限时间。就SSD3来说,通过基于被指定的截止期限时间适当地对指令进行调度,能够获得省电化及QoS(Quality of Service,服务质量)提高(例如适当的资源分配)的效果。
另外,设置在SSD3的控制器4内的CPU12能够作为读取控制部121、写入控制部122、GC控制部123及仲裁控制部124发挥功能。
读取控制部121是基于对应于逻辑地址(LBA)的LUT64的项,求出对应于LBA的物理地址,从NAND型闪速存储器5读出相应于读取指令的数据。
写入控制部122是将根据写入指令,从主机2接收到的用户数据存储到DRAM6上的写入缓冲区62。然后,如果在写入缓冲区62内存储了NAND型闪速存储器5的写入单位量的用户数据,写入控制部122便将该写入单位量的用户数据传送到NAND型闪速存储器5的芯片(芯片的数据锁存)。写入控制部122将写入缓冲区62内存储着经传送的用户数据的区域释放。
接着,写入控制部122指示NAND型闪速存储器5的芯片进行编程。也就是说,写入控制部122通过将编程指令发送给NAND型闪速存储器5的芯片,而针对该芯片将经传送的用户数据编程到写入目标块。芯片内的存储单元阵列包含多个块。块大致分为两种:存储有效数据,且无法重新写入数据的块(活动块);以及未存储有效数据,通过经历擦除处理便可用于新的数据的写入的块(空闲块)。从1个以上的空闲块中选择1个块,通过经历擦除处理而分配作为写入目标块。写入目标块能存储有效数据。
GC控制部123也能使用GC缓冲区63,与如上所述的写入控制部122的写入动作同样地,进行对NAND型闪速存储器5的写入。GC控制部123从存储着有效数据的活动块群中选择垃圾回收源块(GC源块),将该GC源块内的有效数据写入到从空闲块群中被确保为写入目标块的垃圾回收目的块(GC目的块)。
另外,仲裁控制部124能够按照任意的顺序提取提交队列31内的项、也就是指令。SSD3内的各部是根据所提取的指令而动作。例如,根据所提取的读取指令,进行读取控制部121的读取处理,另外,根据所提取的写入指令,进行写入控制部122的写入处理。
就初始的ATA HDD(Hard Disk Drive,硬盘驱动器)(并行(Parallel)ATA)来说,在1个指令的处理完成之前无法送出下一指令,但能够利用SATA(串行(Serial)ATA)HDD/SSD规格中的指令队列调度规格的扩展对一个指令队列有序要求多个指令。进而,就NVMe规格来说是以能够对多个指令队列无序要求多个指令的方式扩展。NVMe规格上,指令队列(提交)的个数可定义为64K个,在1个指令队列中能要求的指令的数量可定义为64K个。
在市场上流通的SSD及Windows(注册商标)10等OS中,例如相应于CPU的个数的量(例如8个)创建每一个为1K项的指令队列。在该情况下,最多能够同时发布1K×8个=8K个指令,接收数千个以上的指令的SSD能够从无数某处理的排列(组合)中按照任意的顺序处理指令。对于具有有限的运算资源的SSD,难以得出最佳的处理顺序。SSD例如尽力依照被从多个指令队列加入数个指令的顺序利用简单轮循(或加权轮循)进行处理,难以完全按照公平的顺序处理指令。
本实施方式的仲裁控制部124能够以如下方式进行控制,也就是基于对提交队列31中所存储的各指令指定的截止期限时间,从截止期限时间早的指令依次进行处理(提取)。仲裁控制部124当在提交队列31存储着一个以上的指令时,基于对各指令指定的截止期限时间,决定表示这些一个以上的指令各自被处理的时点的调度方式(scheduling)。仲裁控制部124例如以在各个截止期限时间之前对一个以上的指令进行处理,且尽可能使该处理延迟的方式,决定调度方式。该调度方式也可进而表示出根据指令被处理的时点,将SSD3设定为哪一种电力状态。SSD3能被设定的电力状态例如为全速动作的电力状态、或浅休眠(Shallow Sleep)或者深休眠的低耗电状态。浅休眠表示浅的休眠状态,深休眠表示深的休眠状态。例如,被设定为浅休眠的SSD3所消耗的电力大于被设定为深休眠的SSD3所消耗的电力。仲裁(arbitration)控制部124是以按照所决定的调度方式执行相应于一个以上的指令的处理的方式控制SSD3内的各部。
此外,一般来说,SSD3不具有实时时钟,所以无法在它内部获得当前时刻。NVMe规格中规定了主机2能够对SSD3(控制器4)设定当前时刻的可选指令、也就是SetFeatures指令。就该SetFeatures指令来说,作为用来识别设定哪一种特征的Feature Identifier,指定表示时间戳的“OEh”。
关于SSD3,在为正常电力状态的期间,能够使用被通知的当前时刻,将内部计时器进行递增计数,由此获得当前时刻。但是,当在低耗电状态下内部计时器也停止时,无法实现从当前时刻起的递增计数,所以在从低耗电状态转变为正常电力状态时,每次都需要从主机2对SSD3通知当前时刻。
以下,表示主机2与SSD3经由基于NVMe规格的接口连接的例子,对于利用UFS、SATA、eMMC、SCSI等其它存储接口连接的情况也能够同样地应用。
参照图2,对利用主机2与SSD3的控制器4的指令处理的动作的例子更具体地进行说明。
首先,主机2(指令发布部431)在对提交队列31的项(提交队列项)写入指令时,指定期待该指令的处理的时间。该“期待处理的时间”是指令应被处理的时间,例如可使用像指令的输入发布时刻、SSD3内的处理开始时刻(例如从提交队列31提取指令的时刻)、开始与指令相应的数据的传送的时刻、完成与指令相应的数据的传送的时刻、通知与指令相应的中断的时刻这样的与指令的处理相关的任意的时刻。以下,将该“期待处理的时间”也称为截止期限时间。
主机2(指令发布部431)例如接收来自应用层41的指示并指定截止期限时间。主机2例如使用处理优先度、LBA的位置、参照频度(存取频度)、所传送的数据的大小、应用名、文件系统元数据(例如利用NTFS的$MFT)、SSD3的电源状态等信息,算出(决定)截止期限时间。
提交队列31具有特定的时隙大小,且被用于供主机2(主机软件)发布(输入)由SSD3的控制器4执行的指令。各提交队列项相当于指令。指令例如具有64字节的大小。也就是说,每一个指令使用64字节的存储区域,从主机2对SSD3指示处理。
图3表示计算机系统1中所使用的提交队列项的格式的例子。此处,对将NVMe规格(Revision 1.3)所示的提交队列项的格式以进而指定与截止期限时间相关的信息的方式变更的情况进行说明。
在发布写入指令或读取指令的情况下,在提交队列项中,对[3-0]字节内的对应于[7-0]比特的作业码(Opcode)(OPC(Operation Code))字段设定表示写入的“01h”或表示读取的“02h”。
提交队列项内的[15-8]字节的字段在NVMe规格中为空闲字段(预留(Reserved)),在本实施方式中,为了设定截止期限时间的时间戳而使用该字段。例如当所发布的指令为写入指令或读取指令时,对该字段设定该写入指令或读取指令应被处理的截止期限时间。
图4表示对8字节的字段设定的时间戳的格式的例子。如图4所示,对8字节的字段中的[5-0]字节设定时间戳。该时间戳例如以从1970年1月1日上午0点(UTC(UniversalTime Coordinated,协调世界时))起经过的以毫秒(ms)为单位的秒数表示。
此外,主机2也能发布用来要求输入到提交队列31的指令中止的异常终止指令。异常终止指令例如被输入到管理提交队列,作为尽最大努力指令被处理。在异常终止指令中,例如特定出应中止的指令的识别信息、及被输入了该指令的提交队列31的识别信息。
返回到图2中,控制器4基于由主机2指定的截止期限时间,辨识各指令的处理优先度。然后,控制器4根据其优先度,对提交队列31内的指令进行调度。由此,例如当在主机2内设置着多个提交队列31时,会专注于特定的提交队列内的指令的处理,所以其它提交队列内的指令的处理会延迟,从而能够避免使主机2上的应用超出所需限度地等待。
更具体来说,控制器4基于对各指令指定的截止期限时间,从提交队列31提取一个指令。控制器4基于提交队列31中所存储的一个以上的指令各自的截止期限时间,例如在各自的截止期限时间之前对这些一个以上的指令进行处理,且决定能够减少由SSD3消耗的电力的指令处理的调度方式。该调度方式例如表示执行(提取)各指令的时点。另外,该调度方式是基于截止期限时间,例如以使相应于各指令的处理的开始尽可能延迟的方式决定时点。
通过使相应于各指令的处理的开始尽可能延迟的调度,例如当根据在中途取消某动作的用户操作等,而想要通过发布异常终止指令来中止已输入到提交队列31的指令时,能够避免已经正在进行或者已进行过相应于该已输入过的指令的处理这一状况的可能性增大。由此,能够相应于应被中止的处理所需的电力,削减SSD3的耗电。
另外,当在主机2设置着多个提交队列31(管理提交队列及I/O提交队列)时,在NVMe规格中规定了轮循、加权轮循及厂商专用仲裁这三种算法作为这些队列31的仲裁算法。
如图5所示,在轮循的仲裁中,多个提交队列31被以均等的优先度进行处理,控制器4针对每个回合,从各提交队列31选择(提取)应进行特定数量的处理的候补指令。
另外,如图6所示,在加权轮循的仲裁中,规定三个优先度类别及三个优先度级别。三个优先度类别包括最高优先度的管理类91、第二高优先度的紧急(urgent)类92、及最低优先度的加权轮循类93。
对管理类91分配管理提交队列911。发布(输入)给管理提交队列911的指令具有比发布给对除该管理类91以外的类别92、93分配的提交队列的指令高的优先度。
发布给对紧急类92分配的I/O提交队列921的指令是在发布给管理提交队列911的指令之后且发布给对加权轮循类93分配的I/O提交队列的指令之前被处理。此外,在对紧急类92分配的多个I/O提交队列921之间,应用轮循的仲裁。
加权轮循类93包含使用加权轮循仲裁共有剩余的带宽的高优先度(High)93H、中优先度(Medium)93M、及低优先度(Low)93L这三个级别。对各级别93H、93M、93L分别分配I/O提交队列931、932、933。在对同一级别分配的多个I/O提交队列之间,应用轮循的仲裁。而且,针对加权轮循的每个回合,例如从各级别选择相应于权重的数量的候补指令。
就这种轮循及加权轮循的仲裁来说,都是在从某提交队列提取指定数量的指令之后,将提取的对象转移到其它提交队列。因此,例如当对特定的提交队列暂时输入了大量的细小单位(4KiB)的指令时,会迫使其它提交队列的要求等待。
由NVMe规格的仲裁方式规定的另一厂商专用仲裁的安装方法是在NVMe规格书的范围外,厂商能够选择的仲裁方式。
在本实施方式中,以使用该厂商专用仲裁的方式构成SSD3,作为该厂商专用仲裁,对应进行处理的被指定了截止期限时间的指令设定基于考虑到截止期限时间的调度的仲裁。作为这种调度方式,能够利用OS动态地决定处理的执行顺序的各种调度方式,例如可列举按照截止期限时间由早到晚的顺序进行处理的最早截止期限时间优先(EDF,EarliestDeadIine First)、或最小松弛(LL,Least Laxity)、最早截止期限时间零松弛(EDZL,Earliest Deadline Zero Laxity)、最早截止期限时间临界松弛(EDCL,EarliestDeadline Critical Laxity)、及最小空闲时间(LST,Least Slack Time)等。
图7表示基于EDF调度的仲裁的例子。此处,假定对主机2设有四个提交队列31-1、31-2、31-3、31-4。在各提交队列31-1、31-2、31-3、31-4中分别存储着多个指令351~362。
控制器4按照被指定的截止期限时间由早到晚的顺序提取提交队列31-1、31-2、31-3、31-4中所存储的指令351~362。在图7所示的例子中,控制器4是像截止期限时间为5毫秒的指令351、截止期限时间为8毫秒的指令361、截止期限时间为10毫秒的指令352、截止期限时间为15毫秒的指令357、……这样,按照截止期限时间由早到晚的顺序提取指令。
通过这种基于EDF调度的仲裁,能够对所有提交队列进行公平的仲裁。因此,能够以软件实时系统的形式实现包括主机2及SSD3的计算机系统1,且能够削减从主机2向SSD3的存取的最坏时延。
软件实时系统是如下一种系统:即使产生了对系统赋予的任务的处理未在截止期限时间内结束的现象(截止期限差错),系统整体也不会产生致命的损坏,该处理的价值会根据完成时间等而降低。与此相对,硬件实时系统是因截止期限差错而导致故障的系统,固件实时系统是虽然截止期限差错不会赋予致命的损坏,但因在截止期限时间之前未结束而导致该处理的价值立即成为零的系统。
返回到图2中,控制器4执行所提取的指令。也就是说,控制器4与SSD3内的各部协同来执行相应于指令的处理(例如读取处理、写入处理等)。
而且,控制器4在指令的执行已完成的情况下,对完成队列32写入表示所提取的指令及指令完成时间的完成队列项。由此,主机2能够获取各指令的完成时间。指令完成时间既可以是相应于指令的处理已完成的时间,也可以是实际进行以指定的截止期限时间为对象的动作(例如提取、数据传送开始、数据传送完成及中断通知等)的时间。
完成队列32是用来通知与已完成的指令相关的状态。已完成的指令是基于由主机2分配的相关联的识别信息与指令的识别信息的组而唯一特定出。也可使多个提交队列31与一个完成队列32相关联。另外,完成队列32的各项例如具有至少16字节的大小。
图8表示计算机系统1中所使用的完成队列项的格式(响应讯息协议)的例子。此处,对将NVMe规格(Revision 1.3)所示的完成队列项的格式以进而指定与指令完成时间相关的信息的方式变更的情况进行说明。
该格式是以通知指令执行的成功/失败及其原因、以及提交队列31及完成队列32的状态的方式构成。在本实施方式中,将完成队列项内的对应于[3-0]字节的Dword 0区域、及对应于[7-4]字节的Dword 1区域用作用来设定指令的完成时间的时间戳的区域。例如当发布的指令为写入指令或读取指令时,对该字段设定该写入指令或读取指令的处理完成的时间。进而,将该项内的对应于[15-12]字节的区域内的对应于[29-28]比特对应的区域用作设定表示是否超过指定的截止期限时间对指令进行处理的信息(实效(Expired))的区域。
主机2能够使用该完成队列项,辨识存在无法在指定的截止期限时间内进行处理的指令,所以能够进行以下等处置,也就是调整对利用应用的用户传达的指令的输入量;当设置着多个存储装置时研究其它存储装置的利用;以及在存储装置中存在大量进行存取的其它应用,如果这些应用多余便使它们中止。
此外,在主机2的装置驱动程序43,也可进而设置着疲劳度推定部432。疲劳度推定部432对与被处理的指令相关的来自SSD3的响应、也就是完成队列项进行分析,推定SSD3的疲劳度。完成队列项例如包含表示是否超过指令完成时间及被指定的截止期限时间对指令进行处理的信息。疲劳度推定部432例如通过使用表示是否超过被指定的截止期限时间对指令进行处理的信息,或者将该指令完成时间与主机2所要求的截止期限时间加以比较,根据是否在截止期限时间之前对指令进行处理而推定SSD3的疲劳度。
所推定出的疲劳度的利用方法是依据主机2的运用,想出多个应用例,例如列举以下3点。
(1)判断SSD3的寿命接近,对用户发出警告,催促更换。
(2)使存在误差的区域(LBA+大小)的数据移动到其它区域并释放(更新)。
(3)在使用多台SSD的计算机系统1中,以如下方式进行处置。
·将多台SSD中的未在截止期限时间之前对指令进行处理的违反数量最多的SSD判断为接近寿命并更换。
·在从多台SSD选择写入目的地的SSD时,违反数量越多的SSD则越难以被选择。
·当多台SSD包含镜像等复制的SSD时,违反数量越多的SSD,则发布指定了越长的截止期限时间的指令。由此,利用违反数量少的SSD实际进行如读取动作的处理,与此对应,对于违反数量多的SSD,取消指令且不进行实际的处理。也就是说,对于违反数量多的SSD,通过指定长的截止期限时间,容易取消指令。
接着,图9的流程图表示由主机2执行的指令发布处理的顺序的例子。
主机2是通过在主机2上执行的应用41或OS42等,判定是否被要求针对SSD3的指令的发布(步骤S11)。在未被要求指令的发布的情况下(步骤S11为否(NO)),返回到步骤S11。
在被要求指令的发布的情况下(步骤S11为是(YES)),主机2决定该指令的处理的截止期限时间(步骤S12)。然后,主机2将被指定了截止期限时间的指令输入到提交队列(步骤S13)。例如,主机2将指令ID(identifier,标识符)、截止期限时间等写入到提交队列项。
根据以上,能够对提交队列31输入与要求相应的指令。
另外,图10的流程图表示由主机2执行的指令中止处理的顺序的例子。
主机2判定是否被要求输入到提交队列31的指令中止(步骤S21)。主机2例如根据与所发布的指令对应的处理已被中止,而判定被要求该指令中止。在未被要求指令中止的情况下(步骤S21为否),返回到步骤S21。
在被要求指令中止的情况下(步骤S21为是),主机2将用以使该指令中止的异常终止指令输入到提交队列(管理提交队列)31(步骤S22)。
SSD3的控制器4能够根据该异常终止指令,进行用以使所指定的指令的处理中止(取消)的处理。
图11的流程图表示由SSD3的控制器4执行的执行控制处理的顺序的例子。此处,为了易于理解说明,对在提交队列31中统一输入多个指令,且在该处理中未输入新的指令的情况进行例示。
控制器4判定是否已对提交队列31输入指令(步骤S31)。在未对提交队列31输入指令的情况下(步骤S31为否),返回到步骤S31。
在已对提交队列31输入指令的情况下(步骤S31为是),控制器4基于对提交队列31内的各指令指定的截止期限时间,决定表示各指令被处理(提取)的时点的调度方式(步骤S32)。
接着,控制器4基于所决定的调度方式,判定是否存在应提取的指令(步骤S33)。在存在应提取的指令的情况下(步骤S33为是),控制器4从提交队列31提取该指令(步骤S35)。
另一方面,在不存在应提取的指令的情况下(步骤S34为否),控制器4基于调度方式,待机直到指令应被提取的时点为止(步骤S34),之后,从提交队列31提取指令(步骤S35)。此外,在步骤S34的待机中,SSD3也可转换为低耗电状态。
控制器4执行与所提取的指令相应的处理(步骤S36)。控制器4例如根据读取指令从NAND型闪速存储器5读出数据,或根据写入指令对NAND型闪速存储器5写入数据。
然后,控制器4判定与指令相应的处理的执行是否已完成(步骤S37)。在执行未完成的情况下(步骤S37为否),返回到步骤S37。
在执行已完成的情况下(步骤S37为是),控制器4对完成队列32写入与已完成的指令相关的完成队列项(步骤S38)。该完成队列项包含表示是否在完成时间或截止期限时间之前完成执行的信息等。
接着,控制器4判定与所输入的全部指令相应的处理是否已完成(步骤S39)。在与全部指令相应的处理未完成的情况下(步骤S39为否),返回到步骤S33,继续进行基于调度方式的处理。
另一方面,在与全部指令相应的处理已完成的情况下(步骤S39为是),返回到步骤S31。
此外,当在所述处理中输入了新的指令时,包含该新的指令的提交队列内的指令的执行(提取)也可被再次调度。
根据以上的构成,能够根据状况对指令进行调度且削减SSD3的耗电。主机2发布应进行处理的被指定了截止期限时间的一个以上的指令,并输入到队列。SSD3基于各截止期限时间,决定表示各指令被执行的时点的调度方式。SSD3是以如下方式决定调度方式的、也就是能够在各截止期限时间之前对指令进行处理,且使SSD3能够转换为低耗电状态的期间变长。因此,在计算机系统1中,能够根据与一个以上的指令对应的一个以上的截止期限时间的状况对指令进行调度,且削减SSD3的耗电。
以下,对应用具有如上所述的构成的计算机系统1的应用例进行若干说明。
(应用例1)
图12表示计算机系统1中的用于动画播放的流(streaming)动作的例子。此处,假定主机2一边读出SSD3中所存储的动画文件51,一边播放基于所读出的动画文件51的数据的动画的用例。
在动画文件的播放中,由文件内的程序流(PS)/传输流(TS)等流信息,预先了解应读出流(数据)的比特率。当主机对SSD发布了大量的读取指令时,在正常动作中,在这些所有读取指令的处理完成之前,SSD无法转换为低耗电状态(低耗电模式)。
在本实施方式中,主机2在发布用来读出动画文件51的读取指令的情况下,SSD3将应响应于主机2的时间设为截止期限时间并发布指定的读取指令,且输入到提交队列31。SSD3的控制器4能够在指定的截止期限时间之前予以响应,且以削减SSD3的耗电的方式,对处理各指令的时点进行调度。
关于控制器4,即使提交队列31中存在指令(要求),例如只要是截止期限时间为10分钟后的指令,就判定为低优先度指令,且使其它指令优先。针对应响应的截止期限时间为10分钟后的读取指令,SSD3例如即使在从当前时间点起9分钟内被设定为低电力状态之后,恢复为正常电力状态(正常模式),开始与读取指令相应的数据的读出,在主机2中也能够不使动画有破绽地适当地播放。
进而,对于主机2,也有可能在从当前时间点起5分钟之后指示动画播放的停止,在这种情况下,如果预先读出比从当前时间点起5分钟后更靠后的数据,则该读出所需的能量(电力)浪费。
例如,关于动画数据的比特率,DVD(Digital Video Disk,数字多功能光盘)为10Mbps左右、蓝光(注册商标)为30~50Mbps、超HD(High Definition,高清晰度)蓝光为80~100Mbps,如果与作为SSD3的顺序读取性能的1000~3000MB/s相比,则连几百分之一都不满足。通过降低SSD3的读取速度,在能够降低SSD3的电力的情况下,通过使NAND型闪速存储器5的并行动作减少到1/N,也能够削减峰值电力。
将动画数据以哪种程度预先读出依赖于应用的安装,每当完成一个读取指令的处理时便发布下一次的读取指令,在为如持续保持缓冲区满的处理流程的情况下,不仅SSD3,连主机2内的CPU内核(处理器内核)也无法进入到长时间的低耗电状态。
另外,就最近的PC平台来说,多数情况下硬件解码器搭载于CPU或GPU(GraphicsProcessing Unit,图形处理器)内。由于硬件解码器的解码时间是确定的,所以只要能够在指定的截止期限时间之前将数据供给至主机2,就能实现适当的动画播放。
(应用例2)
图13表示计算机系统1中的文件的下载动作的例子。此处,假定主机2一边花费较长时间从网络上的服务器等下载大小较大的文件,一边将该文件的数据写入到SSD3的用例。此外,对于主机2,下载速度的粗略的比特率是已知的。
主机2发布用来写入已下载的数据的写入指令,且输入到提交队列31。对于写入指令,基于下载的比特率,指定应将数据写入到SSD3的截止期限时间。
关于控制器4,即使提交队列31中存在指令,例如只要是截止期限时间为10分钟后的指令,就判断为低优先度指令,且使其它指令优先。另外,针对应写入的截止期限时间为3分钟后的写入指令,例如即使在从当前时间点起2分钟后开始数据的写入,在主机2中也能够适当地下载文件。
例如,当主机2以8Mbps的比特率花费约16分钟下载1GB的文件时,控制器4无需以全速力将下载的数据写入到NAND型闪速存储器5,直到SSD3的写入性能的极限为止。SSD3如果一边最大限度延迟,一边以8Mbps的速率写入,则主机2与SSD3的下载动作不会产生破绽。
通过这种动作,能够预料在下载中,用户要求执行不同的处理时的回应改善。另外,在文件的下载被中止(取消)的情况下,已写入到SSD3的数据多余,所以会被删除。因此,相应于写入指令的处理已完成的数据因下载中止而浪费。
但是,在使相应于写入指令的处理的开始延迟的情况下,主机2发布异常终止指令,由此能够使提交队列31内的写入指令中断。因此,就使用写入/擦除次数(程序/擦除轮循数)存在限制的NAND型闪速存储器5的SSD3来说,能够期待其寿命的延长。
(应用例3)
图14表示设置着多个SSD3A、3B的计算机系统1中的从第1 SSD3A向第2 SSD3B的数据的备份动作的例子。第1 SSD3A及第2 SSD3B分别具有与所述SSD3相同的构成。通常,多数情况下SSD的写入性能比读取性能低。此处,假定按照SSD3A、3B的顺序的读取性能为3000MB/s,写入性能为1000MB/s,读取性能与写入性能不平衡的情况。此外,例示两个SSD3A、3B的读取/写入性能相同的情况,但第1 SSD3A的读取/写入性能与第2 SSD3B的读取/写入性能也可不同。
第2 SSD3B无法以与第1 SSD3A以其读取性能的极限、也就是全速力(峰值性能)读出数据的速度(3000MB/S)相同的写入速度写入数据。一般来说,主机2是等待第2SSD3B的写入完成,而对第1 SSD3A发布下一读取指令的,所以相应于用来向第2SSD3B写入数据的时间,第1 SSD3A中产生空闲时间,但因为是断续地发布读取指令,所以第1 SSD3A无法转换为低耗电状态。
因此,在将第1 SSD3A中所存储的数据复制(备份)到第2 SSD3B的情况下,主机2对第1 SSD3A通知能以与第2 SSD3B的写入性能相当的读取速度(1000MB/S)缓慢地读出。更具体来说,主机2基于第1 SSD3A的读取性能与第2 SSD3B的写入性能,以满足与第2 SSD3B的写入性能相当的读取速度的方式决定应对用来从第1 SSD3A读出数据的读取指令进行处理的截止期限时间。
然后,主机2发布被指定了该截止期限时间的读取指令,并输入到用于第1 SSD3A的提交队列31。由此,第1 SSD3A能够基于截止期限时间对读取指令的执行时点进行调度,例如能够在达到缓冲区的容量的极限之前读出数据后,转换为长时间的低耗电状态。
另外,主机2发布用来将从第1 SSD3A读出的数据写入到第2 SSD3B的写入指令,并输入到用于第2 SSD3B的提交队列31。主机2也能以在写入该数据时,第2 SSD3B发挥写入性能(1000MB/S)的方式指定截止期限时间。
当与在短时间内完成备份相比,重要的是使SSD3A、3B所消耗的峰值电力下降时,以优先减少对NAND型闪速存储器5进行编程/读取的并行数的方式,对指令进行调度。由此,能够减少峰值耗电。
(应用例4)
图15表示设置着多层存储系统7的计算机系统1中的从主机2向多层存储器系统7的存取的例子。多层存储器系统7包含属于不同的存取性能层的多个存储装置。此处,假定多层存储器系统7包含:高速的高速缓冲SSD3C,具有第1读取/写入性能;中速的数据SSD3D,具有低于第1读取/写入性能的第2读取/写入性能;低速的备份SSD3E,具有低于第2读取/写入性能的第3读取/写入性能。高速缓冲SSD3C、数据SSD3D及备份SSD3E分别具有与所述SSD3相同的构成。
在这种多层存储器系统中,有各存储装置具有对在截止期限时间(限制时间)内未完成的指令,尽早将表示超过限制时间的误差退回到主机的功能(快速失败(Fast Fail))的情况。主机当对某层的存储装置发布指令,且关于该指令表示超过限制时间的误差被退回时,对其它层的存储装置发布相同的指令,由此能够缩短多层存储器系统整体的指令的响应时间。
本实施方式的主机2在接收到由快速失败功能所致的误差后,并非对其它层的存储装置发布指令,而是对属于多个层的多个存储装置3C、3D、3E的各者,一同投机地发布性能越高则指定越短的截止期限时间的指令。主机2如果从对指定了较短的截止期限时间的指令进行处理的存储装置(例如高速缓冲SSD3C)接收到正常结束的响应,则对发布指定更长的截止期限时间的指令的其它存储装置(例如数据SSD3D及备份SSD3E)进而发布要求该指令的取消的异常终止指令。
另外,如果对指定了较短的截止期限时间的指令进行处理的存储装置(例如高速缓冲SSD3C)异常结束,则继续进行利用发布了指定更长的截止期限时间的其它存储装置的指令处理。根据以上,对于具有冗余性的多层存储器系统7,能不消耗浪费的能量而进行投机的存取,且整体的响应时间也缩短。
例如,假定从主机2对多层存储器系统7发布读取指令。如图15所示,主机2同时投机地对高速缓冲SSD3C发布指定5毫秒的截止期限时间的读取指令、对数据SSD3D发布指定50毫秒的截止期限时间的读取指令、及对备份SSD3E发布指定500毫秒的截止期限时间的读取指令。然后,当从发布的时间点起1毫秒后,从高速缓冲SSD3C接收到表示读取的正常结束的响应时,主机2对数据SSD3D及备份SSD3E发布用于取消读取指令的异常终止指令。
图16表示从主机2对多层存储器系统7发布读取指令的情况下的处理顺序的例子。此处,为了易于理解说明,例示了在多层存储器系统7设置着高速缓冲SSD3C及数据SSD3D的情况,但设置着3台以上的SSD(存储装置)的情况也相同。
首先,主机2同时对数据SSD3D发布被指定了50毫秒的截止期限时间的第1读取指令,且对高速缓冲SSD3C发布被指定了5毫秒的截止期限时间的第2读取指令,由此送出请求(A1、A2)。也就是说,这两个读取指令从发布一读取指令至发布另一读取指令之前不进行等待特定时间的等候而被发布。所发布的指令例如被输入到分别对应于SSD3C、3D的提交队列31。在同时发布多个读取指令的情况下,相比分别发布的情况,对主机2施加的负荷减轻相应于无等候所需的负荷的量。
数据SSD3D是基于对第1读取指令指定的50毫秒的截止期限时间,等待(50-α)毫秒(A3)。时间α例如对应于数据SSD3D进行相应于第1读取指令的读取处理所需的时间。也就是说,数据SSD3D是以使相应于第1读取指令的读取处理的开始尽可能延迟的方式,决定指令处理的调度方式。该调度方式例如表示在从当前时间点起(50-α)毫秒后,进行提取及读取动作(A8、A9)。
另一方面,高速缓冲SSD3C是基于对第2读取指令指定的5毫秒的截止期限时间,例如,立即提取第2读取指令(A4)。然后,高速缓冲SSD3C进行相应于第2读取指令的读取动作(A5),响应于主机2(A6)。该响应包含表示只要读取动作正常结束则正常结束的信息。以下,假定读取动作正常结束。
主机2根据该响应,对数据SSD3D发布用来取消对数据SSD3D发布的第1读取指令的异常终止指令(A7)。数据SSD3D根据该异常终止指令使第1读取指令中止。因此,将被调度的第1读取指令提取(A8)并读取的动作(A9)被中止。
为了像这样从多层存储器系统7读出某数据,对多个SSD发布多个读取指令,但实际进行读取动作的SSD能够以被限制为发布了读取指令的多个SSD中的一个的方式进行控制。由此,能够减少计算机系统1整体上消耗的电力,并且也能够减少由存取所致的NAND型闪速存储器的疲劳。
此外,发布读取指令的高速缓冲SSD3C与数据SSD3D并不直接进行通信。在计算机系统1中,对由主机2发布的各指令指定截止期限时间,在各SSD3C、3D内进行基于截止期限时间的动作的控制,所以无需SSD3C、3D间的通信。
接着,参照图17至图19,对SSD3中的指令的处理与电力状态的关系进行说明。
图17表示SSD3的动作中的三个电力状态、及这些状态间的转变的例子。
电力状态PS0是SSD3以全速动作时的电力状态。也就是说,认为电力状态PS0的SSD3为运转状态。电力状态PS0的SSD3的最大电力例如为5W。此处,作为为运转状态的情况下的电力状态,仅表示出PS0,但也可进而设置耗电低于PS0的电力状态PS1、PS2。
电力状态PS3为SSD3进入到浅休眠时的电力状态。电力状态PS3的SSD3的最大电力例如为50mW。另外,电力状态PS4是SSD3进入到深休眠时的电力状态。电力状态PS4的SSD3的最大电力例如为2.5mW。电力状态PS3或PS4的SSD3为非运转状态。
以下,为了易于理解说明,如图17所示,对SSD3以三个电力状态PS0、PS3、PS4中的任一状态动作情况进行例示。
电力状态PS0的SSD3相应于经过0.5秒的闲置时间,转变为电力状态PS3。电力状态PS3的SSD3相应于经过10秒的闲置时间,转变为电力状态PS4。另外,电力状态PS3或电力状态PS4的SSD3是相应于被输入请求(指令),而转变为电力状态PS0。
图18表示像这样进行状态转变的SSD3对指令进行处理的情况下的耗电的变化的例子。在图18所示的例子中,表示请求851、852、853被输入三次的情况下的无基于截止期限时间的调度的动作的耗电86、及存在基于截止期限时间的调度的动作的耗电87的变化。此处,作为一例,假定各请求851、852、853包含一个以上的读取指令。
首先,对无基于截止期限时间的调度的动作的耗电86进行说明。相应于被输入第一次的请求851,SSD3从PS4转变为PS0,执行与该请求851相应的所有读取处理。之后,如果经过0.5秒的闲置时间,则SSD3从PS0转变为PS3,由此进入到浅休眠。在对应于浅休眠的PS3中,消耗比PS0下的电力低的电力。
在该浅休眠的时间小于10秒的期间内,输入第2次的请求852,相应于此,SSD3从PS3转变为PS0,且执行相应于该请求852的所有读取处理。之后,如果经过0.5秒的闲置时间,则SSD3从PS0转变为PS3,由此进入到浅休眠。
进而,在该浅休眠的时间小于10秒的期间内,输入第3次的请求853,相应于此,SSD3从PS3转变为PS0,且执行相应于该请求853的所有读取处理。之后,如果经过0.5秒的闲置时间,则SSD3从PS0转变为PS3,由此进入到浅休眠。
如上所述,SSD3相应于经过10秒的闲置时间,从PS3转变为PS4(深休眠)。因此,如果从某请求的处理后转变为PS3到被输入新的请求为止的间隔小于10秒,则SSD3重复PS0与PS3之间的转变,不会转变为PS4。
接着,对本实施方式的计算机系统1中的存在基于截止期限时间的调度的动作的耗电87进行说明。
相应于被输入第1次的请求851,SSD3从PS4转变为PS0,且执行相应于该请求851的所需最小限度的读取处理,并转变为PS4。也就是说,SSD3是基于截止期限时间,以尽可能延迟地执行读取处理的方式进行调度,仅执行无法延迟的读取处理。然后,SSD3从PS0转变为PS4,在应执行延迟的读取处理的时间之前或被输入新的请求之前,进入到深休眠。就对应于深休眠的PS4来说,消耗比浅休眠的PS3下的电力低的电力。
相应于在深休眠中被输入第2次的请求852,SSD3从PS4转变为PS3,判定能够使相应于该请求852的所有读取处理的执行延迟,并对延迟的读取处理进行调度。因为能够使相应于请求852的所有读取处理的执行延迟,所以SSD3再次从PS3转变为PS4。
进而,相应于在深休眠中被输入第3次的请求853,SSD3从PS4转变为PS3,判定能够使相应于该请求853的所有读取处理的执行延迟,并对延迟的读取处理进行调度。因为能够使相应于请求853的所有读取处理的执行延迟,所以SSD3再次从PS3转变为PS4。
之后,如果基于调度方式,达到应重新开始读取处理的执行的时间,则SSD3从PS4转变为PS0,且执行读取处理。由此,以在截止期限时间之前对请求851、852、853进行处理的方式,执行读取处理。然后,SSD3从PS0转变为PS3(或PS4)。
如上所述,SSD3是基于对请求(读取指令)指定的截止期限时间,以尽可能延迟地执行读取处理的方式进行调度,执行所需最小限度的读取处理,并从PS0转变为PS4。因此,除在基于调度方式需要读取处理的情况下转变为PS0,且在被输入新的请求的情况下转变为PS3以外,尽可能设定为耗电最低的PS4。
图19表示在无基于截止期限时间的调度的情况、及存在基于截止期限时间的调度的情况下,在图18所示的整个期间内,被设定为各电力状态PS0、PS3、PS4的期间的比率。
被设定为进行全速动作的PS0的期间在无基于截止期限时间的调度的情况、及存在基于截止期限时间的调度的情况下均为10%。也就是说,在与请求851、852、853相应的同一处理内容中,为PS0的活动时间相同。
被设定为浅休眠的PS3的期间在无基于截止期限时间的调度的情况下为90%,在存在基于截止期限时间的调度的情况下为1%。另外,被设定为深休眠的PS4的期间在无基于截止期限时间的调度的情况下为0%,在存在基于截止期限时间的调度的情况下为89%。
在无基于截止期限时间的调度的情况下无被设定为PS4的期间,这是因为如果从某请求的处理后转变为PS3到输入新的请求为止的间隔小于10秒,则SSD3重复PS0与PS3之间的转变,不会转变为PS4。另外,在存在基于截止期限时间的调度的情况下被设定为PS4的期间较长,这是因为相应于基于截止期限时间以尽可能延迟地执行处理的方式进行调度,且执行所需最小限度的处理,相应于此,从PS0转变为PS4。也就是说,这是因为除了基于调度方式需要处理的情况及被输入新的请求的情况以外,尽可能设定为耗电最低的PS4。
根据这种被设定为各电力状态PS0、PS3、PS4的期间的比率的差异,在无基于截止期限时间的调度的情况下消耗的总电力为545mW,与此相对,在存在基于截止期限时间的调度的情况下消耗的总电力为503mW。因此,认为在该例子中,通过进行基于截止期限时间的调度,能获得7.8%的电力削减效果。
接着,参照图20及图21,对用来判断某SSD3是在无基于截止期限时间的调度的情况下动作,还是在存在基于截止期限时间的调度的情况下动作的例子进行说明。此处,假定在SSD3设置着电流计及总线分析器,该电流计是用来对供给至该SSD3的流过电源(例如DC3.3V)的电流进行计测,该总线分析器是在附有时刻信息的情况下对主机2与SSD3之间的总线(主机I/F11)的逻辑通信量(指令或数据)进行观测。
图20表示在无基于截止期限时间的调度的情况下动作的SSD3的耗电81与表示通信量的有无的总线分析器波形82的转变。
首先,SSD3为了对由主机2统一输入的请求(指令)854对应的工作1、2、3进行处理,分别以电力P1、P2a、P2b动作。在此期间,总线分析器波形82虽然在相当于工作1与工作2之间的位置、及相当于工作2与工作3之间的位置,包含表示无与主机2之间传输的通信量(断开(OFF))的微小的闲置时间Tidle(例如1ms),但大致表示出存在通信量(接通(ON))。
相应于与请求854对应的工作1、2、3的处理完成,且经过超过阈值(例如0.5秒)的闲置时间TidIe,SSD3转变为低耗电状态(例如PS3)。在此期间,无与主机2之间传输的通信量,所以总线分析器波形82表示断开。
然后,SSD3为了像GC这样的SSD3的内部动作而非为了主机2的请求,以电力固定器(电力Pinner)动作。因为是SSD3的内部动作,所以在此期间,无与主机2之间传输的通信量,总线分析器波形82表示断开。
另外,图21表示本实施方式的在存在基于截止期限时间的调度的情况下动作的SSD3的耗电83与表示通信量的有无的总线分析器波形84的转变。
首先,SSD3基于所指定的截止期限时间将与由主机2统一输入的请求(指令)854对应的工作1、2、3进行调度。然后,SSD3为了对工作1、2、3中的应立即处理的最小限度的工作1进行处理,而以电力P1动作。在此期间,存在相应于工作1的处理在与主机2之间传输的通信量,所以总线分析器波形84表示接通。
SSD3相应于工作1的处理已完成,以基于调度方式的待机时间Twait(例如100ms)进入到低耗电状态(例如PS4)。在此期间,无与主机2之间的传输的通信量,所以总线分析器波形84表示断开。
如果经过待机时间Twait,则SSD3基于调度方式以电力P2动作,以对工作2进行处理。在此期间,存在相应于工作2的处理在与主机2之间传输的通信量,所以总线分析器波形84表示接通。
然后,SSD3在相应于工作2的处理已完成,而转变为低耗电状态(例如PS4)之后,为了像GC这样的SSD3的内部动作而非为了主机2的请求,以电力固定器动作。因为是SSD3的内部动作,所以在此期间,无与主机2之间传输的通信量,总线分析器波形84表示断开。
进而,SSD3在相应于该内部动作已完成,而转变为低耗电状态(例如PS4)之后,为了基于调度方式对工作3进行处理而以电力P3动作。在此期间,根据工作3的处理存在与主机2之间传输的通信量,所以总线分析器波形84表示接通。
对于图20所示的在无基于截止期限时间的调度的情况下动作的SSD,在对应于请求的工作1、2、3的处理完成之前,耗电81仍然较高,另外,总线分析器波形82也除了在工作间的微小的闲置时间TidIe成为断开,仍然保持接通。然后,在工作1、2、3的处理完成之后,有为了实现像GC这样的SSD3的内部动作而耗电81变高的情况,但只要未输入后续的请求(工作),则总线分析器波形82仍然为断开,只要未输入后续的请求,则不会产生和主机2之间的通信量。
与此相对,对于图21所示的在存在基于截止期限时间的调度的情况下动作的本实施方式的SSD3,仅对与请求对应的工作1、2、3中的所需最小限度的工作1进行处理,其它工作2、3的处理尽可能延迟。因此,在未完成所有工作1、2、3的处理的状态(例如仅完成工作1的处理的状态)下,耗电83减少(成为低耗电状态),且产生总线分析器波形84也成为断开的较长的待机时间Twait。进而,在该待机时间Twait之后,未输入新的请求,耗电变高(P2、P3),且产生总线分析器波形84成为接通的期间。因此,在对相应于某请求854的所有工作1、2、3进行处理的期间内,产生较长的待机时间Twait。
这样,就在存在基于截止期限时间的调度的情况下动作的SSD3、及在无基于截止期限时间的调度的情况下动作SSD3来说,有在对相应于请求854的工作进行处理的期间,总线分析器波形82、84成为断开的时间的长度不同的情况。例如,如图20及图21所示,在存在基于截止期限时间的调度的情况下动作的SSD3的工作1的处理与工作2的处理之间的待机时间Twait比在无基于截止期限时间的调度的情况下动作的SSD3的工作1的处理与工作2的处理之间的闲置时间TidIe长。
因此,在对相应于某请求的所有工作进行处理的期间内,如果在无基于截止期限时间的调度的情况下动作的SSD中产生比假定的闲置时间TidIe长的待机时间Twait,则认为该SSD是本实施方式的存在基于截止期限时间的调度的SSD3。因此,通过对被输入主机2的请求之后的耗电与总线分析器波形进行计测,能够判别某SSD3是在无基于截止期限时间的调度的情况下动作,还是在存在基于截止期限时间的调度的情况下动作。
另外,图22表示作为主机2发挥功能的信息处理装置(计算装置)的硬件构成例。
该信息处理装置是以像服务器(例如存储服务器)这样的计算装置的形式实现。该信息处理装置包含处理器(CPU)101、主存储器102、BIOS-ROM(Basic Input/OutputSystem-Read Only Memory,基本输入输出系统-只读存储器)103、网络控制器105、周边接口控制器106、控制器107、及嵌入式控制器(EC)108等。
处理器101是以控制该信息处理装置的各组件的动作的方式构成的CPU。该处理器101执行从多个SSD3中的任一者加载到主存储器102的多种程序。主存储器102包含像DRAM这样的随机存取存储器。由处理器101执行的程序包含所述应用层41、OS42及装置驱动程序43。
另外,处理器101也执行作为非易失性存储器的BIOS-ROM103中所存储的基本输入输出系统(BIOS)。BIOS是用于硬件控制的系统程序。
网络控制器105是像有线LAN(Local Area Network,局域网络)控制器、无线LAN控制器这样的通信装置。通过使用网络控制器105的有线通信或无线通信,例如也能在与存储装置之间收发数据。
周边接口控制器106是以执行与如USB装置的周边装置的通信的方式构成。
控制器107是以执行与分别连接于多个连接器107A的装置的通信的方式构成。多个SSD3也可分别连接于多个连接器107A。控制器107为SAS扩展器、PCIe切换器、PCIe扩展器、闪速阵列控制器、或RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列)控制器等。
EC108作为以执行信息处理装置的电力管理的方式构成的系统控制器发挥功能。EC108对应于用户对电源开关的操作而开启及关闭信息处理装置。EC108是以单芯片微控制器等处理电路的形式实现的。EC108也可内置控制键盘等输入装置的键盘控制器。
如以上所作说明般,根据本根据实施方式,能够根据状况调度指令且削减耗电。主机2内的处理器101在被要求对SSD3发布一个以上的指令的情况下,决定这些一个以上的指令分别应被处理的一个以上的截止期限时间,将分别被指定一个以上的截止期限时间的一个以上的指令发布给SSD3。SSD3的控制器4是基于一个以上的截止期限时间,决定表示一个以上的指令各自被执行的时点的调度方式,且按照该调度方式执行一个以上的指令。
这样,计算机系统1包含:主机2,发布根据状况的被指定了截止期限时间的指令;以及SSD3,将该指令适当地进行调度并处理。由此,能够获得削减由计算机系统1消耗的电力量且缩短最坏情况下的指令响应时间、也就是提高QoS的效果。
另外,本实施方式中所记载的多种功能的各者也可通过电路(处理电路)来实现。处理电路的例子中包含像中央处理装置(CPU)这样的经编程的处理器。该处理器是通过执行存储器中所存储的计算机程序(命令群),来执行所记载的各功能。该处理器也可为包含电气电路的微处理器。处理电路的例子中也包含数字信号处理器(DSP)、针对指定用途的集成电路(ASIC)、微控制器、控制器及其它电气电路零件。本实施方式中所记载的CPU以外的其它组件各自也可通过处理电路实现。
另外,本实施方式的各种处理能够通过计算机程序实现,所以只要通过存储着该计算机程序的计算机可读取的记忆媒体将该计算机程序安装于计算机并执行,便能够容易地实现与本实施方式相同的效果。
已对本发明的若干实施方式进行了说明,但这些实施方式是作为例子而提出的,并不意图限定发明的范围。这些新颖的实施方式能以其它多种方式实施,能够在不脱离发明主旨的范围内进行各种省略、置换、变更。这些实施方式或其变化包含在发明的范围或主旨中,并且包含在权利要求书所记载的发明及其均等的范围内。
符号的说明
1 计算机系统
2 主机
3 SSD
4 控制器
5 NAND型闪速存储器
6 DRAM
10 总线
11 主机I/F
12 CPU
13 NAND I/F
14 DRAM I/F
121 读取控制部
122 写入控制部
123 GC控制部
124 仲裁控制部
30 队列
31 提交队列
32 完成队列
41 应用层
42 OS
43 装置驱动程序
431 指令发布部
432 疲劳度推定部