本申请案享有以日本专利申请案2015-249553号(申请日:2015年12月22日)为基础申请案的优先权。本申请案通过参照该基础申请案而包含基础申请案的全部内容。
技术领域
本发明的实施方式涉及一种非易失性存储器及控制方法。
背景技术:
近年来,包括非易失性存储器的存储器系统得到广泛普及。
作为此种存储器系统之一,已知有以NAND(Not AND,与非)闪存技术为基础的固态硬盘(SSD,Solid State Drive)。
SSD是因其低电力消耗、高性能的特征而用作各种电脑的主存储器。
另外,为了获得更高的性能、更大的容量,也开发有利用多个SSD的阵列技术。
为了使SSD的阵列效率良好地动作,理想的是使阵列内的多个SSD协调动作。因此,要求实现能够提供用于该协调动作所需的有用的信息的新构造。
技术实现要素:
本发明的实施方式提供一种能够对主机或阵列内的其他SSD提供有用的信息的存储器系统及控制方法。
根据实施方式,能够作为使数据跨及多个半导体存储装置分散的存储阵列内的一个半导体存储装置进行动作的存储器系统具备:非易失性存储器;及控制器,与所述非易失性存储器电连接,且以执行将从主机接收的数据写入到所述非易失性存储器的写入动作、及用于管理所述存储器系统的内部动作的方式构成。所述控制器是在开始所述内部动作的情况下,根据所述开始的所述内部动作的内容而推断由所述内部动作开始引起的所述写入动作的性能降低的量。所述控制器将所述推断的所述写入动作的性能降低的量通知给所述主机或所述存储阵列内的其他一个以上的半导体存储装置。
附图说明
图1是对包含应用实施方式的存储器系统的存储阵列的信息处理系统的构成例进行说明的框图。
图2是对包含应用实施方式的存储器系统的存储阵列的信息处理系统的另一构成例进行说明的框图。
图3是对应用实施方式的存储器系统的存储阵列的写入动作的例子进行说明的图。
图4是对存储阵列内的某SSD的写入性能降低的情况下的存储阵列的写入动作进行说明的图。
图5是对在存储阵列内的某SSD的写入性能降低期间由其他SSD执行的垃圾回收(GC,Garbage Collection)动作进行说明的图。
图6是对在存储阵列内的某SSD的写入性能降低期间由其他SSD执行的写入动作及GC动作进行说明的图。
图7是对在存储阵列内的某SSD的写入性能降低期间由其他SSD执行的节流动作进行说明的图。
图8是对作为送出侧SSD发挥功能的存储器系统的构成例进行说明的框图。
图9是用来对由作为送出侧SSD发挥功能的存储器系统执行的依次分配空闲区块用于写入来自主机的数据的动作进行说明的图。
图10是对由作为送出侧SSD发挥功能的存储器系统执行的垃圾回收动作进行说明的图。
图11是对作为送出侧SSD发挥功能的存储器系统内的NAND接口与多个NAND存储器芯片的关系进行说明的图。
图12是对由作为送出侧SSD发挥功能的存储器系统执行的工作周期比控制动作进行说明的图。
图13是用来对由作为送出侧SSD发挥功能的存储器系统执行的性能降低通知处理的例子进行说明的图。
图14是用来对由作为送出侧SSD发挥功能的存储器系统执行的性能降低通知处理的另一例进行说明的图。
图15是对由作为送出侧SSD发挥功能的存储器系统执行的GC动作及性能降低通知处理的次序进行说明的流程图。
图16是对由作为送出侧SSD发挥功能的存储器系统执行的热节流动作及性能降低 通知处理的次序进行说明的流程图。
图17是对由作为送出侧SSD发挥功能的存储器系统执行的电力限制节流动作及性能降低通知处理的次序进行说明的流程图。
图18是对作为接收侧SSD发挥功能的存储器系统的构成例进行说明的框图。
图19是对接收到性能降低通知时由作为接收侧SSD发挥功能的存储器系统执行的写入性能降低处理的次序进行说明的流程图。
图20是对接收到性能降低通知时由作为接收侧SSD发挥功能的存储器系统执行的GC动作的次序进行说明的流程图。
图21是对接收到性能降低通知时由作为接收侧SSD发挥功能的存储器系统执行的节流动作的次序进行说明的流程图。
图22是对具有送出侧SSD及接收侧SSD该两者的功能的存储器系统的构成例进行说明的框图。
图23是对主机的构成例进行说明的框图。
图24是表示包含该实施方式的存储器系统与主机的电脑的构成例的图。
具体实施方式
以下,参照附图对实施方式进行说明。
首先,参照图1对包含一实施方式的存储器系统的信息处理系统1的构成进行说明。
该存储器系统是以将数据写入到非易失性存储器且从非易失性存储器读取数据的方式构成的半导体存储装置。该存储器系统例如作为以NAND闪存技术为基础的固态硬盘(SSD)3而实现。
信息处理系统1包含主机(主机装置)2、及包括多个半导体存储装置(SSD)的存储阵列(SSD阵列)。该SSD阵列也可通过RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)级别0、RAID级别5、RAID级别6之类的RAID阵列实现。
本实施方式的SSD3能够作为SSD阵列内的一个半导体存储装置(SSD)发挥功能。也可为仅SSD阵列内的一个SSD通过本实施方式的SSD3实现,也可为SSD阵列内的所有SSD通过本实施方式的SSD3实现。在图1中,例示SSD阵列内的所有SSD通过本实施方式的SSD3实现的情况。
在该SSD阵列中,通过分条而使数据跨及多个SSD3分散。应通过主机2写入到SSD阵列的数据被分割为具有某数据大小的多个数据块,这些数据块通过分条而跨及多个SSD3分散。
在SSD阵列通过RAID级别5或RAID级别6实现的情况下,伴有奇偶校验块的数据通过分条而跨及多个SSD3分散。
以下,虽无限定,但主要对SSD阵列为与RAID级别0(分条)对应的RAID阵列的情况进行说明。
在图1中,设想SSD阵列由4个SSD3(SSD#1、SSD#2、SSD#3、SSD#4)构成的情况。
应通过主机2写入到SSD阵列的数据被分割为4个数据块“数据#1”、“数据#2”、“数据#3”、“数据#4”。而且,这些数据块“数据#1”、“数据#2”、“数据#3”、“数据#4”被从主机2发送到SSD#1、SSD#2、SSD#3、SSD#4,且通过SSD#1、SSD#2、SSD#3、SSD#4同时执行写入这些数据块“数据#1”、“数据#2”、“数据#3”、“数据#4”的动作。数据块“数据#1”、“数据#2”、“数据#3”、“数据#4”构成一个条带。
当所述4个数据块“数据#1”、“数据#2”、“数据#3”、“数据#4”的写入完成时,接下来的4个数据块“数据#5”、“数据#6”、“数据#7”、“数据#8”被从主机2发送到SSD#1、SSD#2、SSD#3、SSD#4,通过SSD#1、SSD#2、SSD#3、SSD#4同时执行写入这些数据块“数据#5”、“数据#6”、“数据#7”、“数据#8”的动作。
主机2是服务器、个人电脑之类的信息处理装置。SSD阵列内的各SSD3可内置于信息处理装置,也可经由缆线或网络而连接于信息处理装置。
作为用于将主机2与各SSD3相互连接的接口,能够使用SCSI(Small Computer System Interface,小型电脑系统接口)、串行连接的SCSI(SAS,Serial Attached SCSI)、ATA(Advanced Technology Attachment,串行高级技术附件)、串行ATA(SATA,Serial ATA)、PCI Express(PCIe,Peripheral Component Interconnect Express,快捷外围部件互连)等。
本实施方式的SSD3能够作为送出侧SSD或接收侧SSD的至少一者发挥功能。所谓送出侧SSD是指具有将该SSD的写入性能降低的量通知给主机2或SSD阵列内的其他SSD的功能的SSD。所谓接收侧SSD是指具有从送出侧SSD或主机3接收送出侧SSD的写入性能降低的量并根据送出侧SSD的写入性能降低的量而使自身的写入性能降低的功能的SSD。
SSD3的写入性能有时因用于管理SSD3的内部动作而降低。此种内部动作的典型的例子包含垃圾回收动作、防止SSD3过热的热保护动作(例如热节流)、将SSD3的电力消耗抑制在SSD3所容许的最大电力以下的电力限制动作(例如电力限制节流)等。
所谓SSD3的写入性能是指将从主机2接收的数据写入到SSD3内的非易失性存储 器的写入动作的性能。该写入性能也可通过写入吞吐量表示。写入吞吐量表示每单位时间内能够从主机2传输到SSD3的数据量、即数据传输率。
这里,设想SSD#2作为送出侧SSD发挥功能的情况。
在设想SSD#2的写入性能(写入吞吐量)因内部动作的开始而降低的情况下,SSD#2是根据该内部动作的内容而推断SSD#2的降低后的写入性能,并将SSD#2的写入性能降低的量通知给主机2或SSD阵列内的其他SSD。例如,在设想SSD#2的写入性能自未执行内部动作的通常状态时的写入性能(例如,1G字节/秒的传输率)降低至512M字节/秒的传输率的情况下,SSD#2也可为了使SSD阵列内的所有SSD的写入性能一致为512M字节/秒而将表示SSD#2的写入性能降低至512M字节/秒的通知发送到主机2或SSD阵列内的其他各SSD。
从主机2或从送出侧SSD接收到该通知的各SSD(接收侧SSD),能够根据通过所接收到的通知所指定的写入性能降低的量而使自身的写入性能降低。
例如,接收到该通知的各SSD也可进行用于使自身的写入性能降低至通过所接收到的通知指定的降低后的写入性能(此处为512M字节/秒的传输率)的控制。例如,在接收到该通知的各SSD以1G字节/秒的写入性能进行动作的情况下,所述各SSD也可通过使自身的写入性能(写入速度)降低至512M字节/秒而减小自身的电力消耗。或者,所述各SSD也可使自身的写入性能降低至512M字节/秒且使用剩余的写入性能(此处为512M字节/秒)预先执行垃圾回收动作。
如此,送出侧SSD的通知功能使得其他SSD能够有效利用送出侧SSD的写入性能降低的期间以预先执行自身的电力消耗的减少或垃圾回收动作。
作为用于将送出侧SSD的写入性能降低的量通知给主机2的方法,能够使用能够将送出侧SSD的写入性能降低的量报告给主机2的任意方法。例如,当送出侧SSD开始内部动作时,送出侧SSD也可通过对主机2发送中断信号而将送出侧SSD的写入性能降低的量通知给主机2。或者,在主机2具有通过轮询而定期对送出侧SSD的内部寄存器进行读取的功能的情况下,送出侧SSD也可对该内部寄存器设定送出侧SSD的写入性能降低的量。
已被从送出侧SSD通知有写入性能降低的量的主机2也可将该写入性能降低的量发送到SSD阵列内的其他各SSD。或者,已被从送出侧SSD通知有写入性能降低的量的主机2也可根据该写入性能降低的量而执行用于使SSD阵列内的其他各SSD的写入性能降低的控制。
送出侧SSD的写入性能降低的量也可不经由主机2(主机CPU(Central Processing Unit,中央处理器))而通知给SSD阵列内的其他各SSD。作为该通知方法,能够使用能够不经由主机2(例如主机CPU)而于SSD间通讯的任意方法。例如,在SSD阵列内的各SSD经由PCI Express(PCIe)总线与主机2电连接的情况下,也可经由用于将PCIe总线间连接的的总线开关执行送出侧SSD与其他各SSD之间的通讯(端到端通讯)。
或者,在使用如图2所示般各SSD经由阵列控制器(例如RAID控制器)2A与主机2电连接的阵列构成的情况下,也可经由阵列控制器2A执行送出侧SSD与其他各SSD之间的通讯。
阵列控制器2A执行将从主机2接收的写入数据通过分条跨及多个SSD3分散的控制。阵列控制器2A也可通过RAID控制器实现。
图3表示SSD阵列的写入动作的例子。
此处,设想SSD阵列包含4个SSD#1~#4的情况。
主机2或阵列控制器2A例如将规定大小(例如128K字节)的数据分割为4个数据块(例如各数据块的大小为32K字节),使4个SSD#1~#4并列执行所述4个数据块的写入。
例如,在时点T10,主机2或阵列控制器2A对4个SSD3依次发送写入命令与数据块。在该情况下,128K字节的数据的最初的32K字节的数据块作为写入数据被发送到SSD#1。该128K字节的数据的第2个32K字节的数据块作为写入数据被发送到SSD#2。该128K字节的数据的第3个32K字节的数据块作为写入数据被发送到SSD#3。该128K字节的数据的最后的32K字节的数据块作为写入数据被发送到SSD#4。
SSD#1~#4分别将所接收到的数据块写入到SSD#1~#4内的非易失性存储器。利用SSD#1~#4进行的数据写入动作完成后,在例如时点T11,主机2或阵列控制器2A对4个SSD3依次发送写入命令及下一个128K字节数据内的数据块。在该情况下,下一个128K字节的数据的最初的32K字节的数据块作为写入数据被发送到SSD#1。该128K字节的数据的第2个32K字节的数据块作为写入数据被发送到SSD#2。该128K字节的数据的第3个32K字节的数据块作为写入数据被发送到SSD#3。该128K字节的数据的最后的32K字节的数据块作为写入数据被发送到SSD#4。
图4表示SSD阵列内的某SSD的写入性能降低的情况下的SSD阵列的写入动作的例子。
在图4中,设想因SSD#2的写入性能降低而SSD#2的写入动作在所排定的时点T11未完成的情况。
在时点T11,主机2或阵列控制器2A能够将下一个128K字节的数据的最初的数 据块发送到SSD#1。
但是,因为SSD#2为其写入动作进行中的忙碌状态,所以SSD#2无法开始下一写入动作。也就是说,在SSD#2的当前的写入动作完成之前等待从主机2或阵列控制器2A向SSD#2的下一个数据块的发送。因该SSD#2成为瓶颈而导致也等待从主机2或阵列控制器2A向SSD#3、SSD#4的数据块的发送。
SSD#2的数据写入动作完成后,在例如时点T12,主机2或阵列控制器2A对SSD#2、SSD#3、SSD#4依次发送写入命令及该128K字节的数据内的数据块。该128K字节的数据的第2个32K字节的数据块作为写入数据被发送到SSD#2。该128K字节的数据的第3个32K字节的数据块作为写入数据被发送到SSD#3。该128K字节的数据的最后的32K字节的数据块作为写入数据被发送到SSD#4。
因此,在时点T11~T12的期间,SSD#3、SSD#4有可能维持为不存在应执行的工作负载的闲置状态。
在SSD#4的数据写入动作完成之前等待从主机2或阵列控制器2A向SSD#1的下一个数据块的通讯。因此,在时点T12~T13的期间,SSD#1有可能维持为闲置状态。
如此,SSD阵列整体的写入性能被限速为SSD#2的降低后的写入性能。
图5表示在SSD阵列内的SSD#2的写入性能降低期间通过其他SSD执行的垃圾回收(GC)动作。
SSD#2如所述般能够作为送出侧SSD发挥功能。因此,当SSD#2的写入性能降低时,SSD#2能够将其写入性能降低的量通知给主机2或SSD阵列内的其他各SSD。
由此,例如,SSD#1、SSD#3、SSD#4分别能够在等待SSD#2的数据写入动作完成的时点T11~T12的期间预先执行垃圾回收(GC)动作。
预先执行垃圾回收(GC)动作是指在剩余空闲区块的数量减少到应开始垃圾回收(GC)动作的临界个数以下之前开始垃圾回收(GC)动作。由此,能够在较早的时期使SSD#1、SSD#3、SSD#4各自的空闲区块的数量增加,因此,能够使SSD#1、SSD#3、SSD#4开始下一GC动作的时点推迟。由此,能够使由垃圾回收(GC)动作开始引起的SSD#1、SSD#3、SSD#4各自的写入性能降低的时期推迟。
图6表示在SSD阵列内的SSD#2的写入性能降低期间通过其他SSD执行的写入动作及垃圾回收(GC)动作。
在图5中,对SSD#1、SSD#3、SSD#4分别在时点T11~T12的期间内执行垃圾回收(GC)动作的情况进行了说明,但在图6中,SSD#1、SSD#3、SSD#4分别在时点T10~T12的期间并列执行从主机2接收的数据的写入动作及垃圾回收(GC)动作。
例如,在SSD#1~SSD#4以1G字节/秒的写入性能进行动作的情况下,SSD#2的写入性能降低至512M字节/秒时,SSD#1、SSD#3、SSD#4分别能够通过将512M字节/秒的写入性能用于从主机2接收的数据的写入且将剩余的512M字节/秒的写入性能用于垃圾回收(GC)动作而并列执行从主机2接收的数据的写入动作及垃圾回收(GC)动作。
图7表示在SSD阵列内的SSD#2的写入性能降低期间通过其他SSD执行的节流动作。
此处,所谓节流动作是指限制写入性能的动作。节流动作的例子如下所述。
(1)限制被同时驱动(并列动作)的非易失性存储器芯片的数量
(2)限制包含多个非易失性存储器芯片被同时驱动(并列动作)的第1期间与多个非易失性存储器芯片未被驱动(动作)的第2期间的1个周期内的第1期间的比例(工作周期比)
(3)限制被同时驱动(并列动作)的非易失性存储器芯片的数量,且限制工作周期比
SSD#1、SSD#3、SSD#4分别通过在时点T10~T12的期间内执行节流动作而使各自的写入性能降低至与SSD#2的降低后的写入性能同等程度的较低的写入性能。
通常,SSD的写入吞吐量越高,则SSD的电力消耗增加。由此,通过使SSD#1、SSD#3、SSD#4的写入性能降低,能够使SSD#1、SSD#3、SSD#4的电力消耗减少。
如此,在本实施方式中,送出侧SSD并非将表示剩余空闲区块的数量等的信息而是将表示其写入性能降低的量(例如,降低后的写入性能)本身的通知发送到主机2或其他SSD。由此,其他各SSD能够容易地使自身的写入性能降低至与送出侧SSD的降低后的写入性能同等程度的较低的性能,其结果,不利用主机2进行特别的处理即可效率良好地使SSD阵列内的所有SSD的写入性能平衡。
图8表示作为所述送出侧SSD发挥功能的SSD3的构成例。
SSD3包括控制器4、非易失性存储器(NAND存储器)5、DRAM(Dynamic Random Access Memory,动态随机存取存储器)6、及温度传感器7。NAND存储器5并无限定,也可包含多个NAND存储器芯片(非易失性存储器芯片)。
NAND存储器5包含多个NAND区块(区块)B0~Bm-1。区块B0~Bm-1作为删除单位发挥功能。区块有时也称为“物理块”或“删除块”。
区块B0~Bm-1包含多个页面(物理页面)。即,区块B0~Bm-1分别包含页面P0~Pn-1。在NAND存储器5中,数据的读取及数据的写入以页面为单位执行。数据的删除以区块为单位执行。
控制器4是经由Toggle、ONFI(Open NAND Flash Interface,开放NAND闪存接口)之类的NAND接口13而与作为非易失性存储器的NAND存储器5电连接。NAND接口 13也可包含多个信道。于各信道连接有若干NAND存储器芯片。控制器4能够使与NAND接口13连接的多个NAND存储器芯片并列执行写入动作及读出动作。
控制器4能够作为以执行NAND存储器5的数据管理及NAND存储器5的区块管理的方式构成的闪存转换层(FTL,Flash Translation Layer)发挥功能。
数据管理包含(1)表示逻辑区块地址(LBA)与物理地址之间的对应关系的映射信息的管理、(2)用于将以页面为单位的读取/写入及以区块为单位的删除动作隐蔽的处理等。LBA与物理地址之间的映射的管理是使用作为逻辑物理地址转换表发挥功能的查找表(LUT,Look Up Table)33而执行。查找表(LUT)33是以规定的管理大小为单位对LBA与物理地址之间的映射进行管理。来自主机2的写入命令中的大部分要求写入4K字节的数据。因此,查找表(LUT)33也能以例如4K字节为单位对LBA与物理地址之间的映射进行管理。与某LBA对应的物理地址表示写入有该LBA的数据的NAND存储器5内的物理存储位置。物理地址包含物理区块地址与物理页面地址。对所有页面分配有物理页面地址,另外,对所有区块分配有物理区块地址。
向页面的数据写入在每1个删除周期只能进行1次。
因此,控制器4将向同一LBA的写入(覆写)映射到NAND存储器5上的其他页面。也就是说,控制器4对该其他页面写入数据。而且,控制器4更新查找表(LUT)33而将该LBA与该其他页面建立关联,并且使原先的页面(即,与该LBA建立关联的旧数据)无效化。
区块管理包含不良区块的管理、耗损均衡、及垃圾回收等。耗损均衡是用于使物理区块各自的编程/擦除次数平均化的动作。
垃圾回收是用于制造NAND存储器5内的空闲空间的动作。该垃圾回收动作是为了增加NAND存储器5的空闲区块的个数而将有效数据与无效数据混合存在的若干区块内的所有有效数据复制到其他区块(复制目标空闲区块)。有效数据是与某LBA建立关联的最新数据。无效数据是通过该数据的更新或删除而已经无法被主机2利用的数据,即不与任一LBA建立关联的旧数据。而且,垃圾回收动作是更新查找表(LUT)33而将所复制的有效数据的LBA分别映射到正确的物理地址。通过将有效数据复制到其他区块而仅有无效数据的区块作为空闲区块而开放。由此,该区块能够在删除后重新利用。
主机2将写入命令发送到SSD3。该写入命令包含写入数据(即,应写入的数据)的逻辑地址(开始逻辑地址)与传输长度。在本实施方式中,LBA用作逻辑地址,但在其他实施方式中,也可使用对象ID(identifier,标识符)作为逻辑地址。LBA通过对逻辑扇区(逻辑区块)赋予的序列号而表现。序列号从零开始。逻辑扇区的大小为例如512字节。
SSD3的控制器4是将通过写入命令内的开始逻辑地址与传输长度指定的写入数据写入到NAND存储器5内的区块的页面。进而,控制器4通过更新查找表(LUT)33而将与被写入的数据对应的LBA映射到表示写入有该数据的物理存储位置的物理地址。
更详细而言,控制器4分配NAND存储器5内的一个空闲区块用于写入来自主机2的数据。该被分配的区块是应写入来自主机2的数据的写入对象区块,也称为“写入目标区块”或“输入区块”等。控制器4一边更新查找表(LUT)33,一边将从主机2接收的写入数据依次写入到写入对象区块(写入目标区块)的能够利用的页面。于在写入目标区块中不存在能够利用的页面的情况下,控制器4分配新的空闲区块作为写入目标区块。
接下来,对控制器4的构成进行说明。
控制器4包含主机接口11、CPU12、NAND接口13、DRAM接口14、SRAM(Static Random Access Memory,静态随机存取存储器)15等。所述CPU12、NAND接口13、DRAM接口14、SRAM15经由总线10而相互连接。
主机接口11从主机2接收各种命令(写入命令、读取命令、取消映射(UNMAP)命令等)。
写入命令是要求对SSD3写入通过该写入命令指定的数据。写入命令包含应写入的最初的逻辑区块的LBA(起始LBA)与传输长度(逻辑区块的数量)。读取命令是要求相对于SSD3读取通过该读取命令指定的数据。读取命令包含应读取的最初的逻辑区块的LBA(起始LBA)与传输长度(逻辑区块的数量)。
CPU12是以控制主机接口11、NAND接口13、DRAM接口14、SRAM15的方式构成的处理器。CPU12除执行所述FTL的处理以外,还执行用于对来自主机2的各种命令进行处理的命令处理等。
例如,当控制器4从主机2接收到写入命令时,在CPU12的控制下,控制器4执行将通过写入命令指定的写入数据写入到NAND存储器5的以下的写入动作。
也就是说,控制器4是将写入数据写入到当前的写入目标区块的物理存储位置(能够利用的页面),然后更新查找表(LUT)33,将该物理存储位置的物理地址映射到写入命令中包含的LBA(起始LBA)。
所述FTL处理及命令处理也可由通过CPU12执行的固件控制。该固件是使CPU12作为垃圾回收(GC)动作控制部21、热保护节流控制部22、电力限制节流控制部23、及写入性能降低通知部24发挥功能。
垃圾回收动作控制部21执行将选择为垃圾回收动作的对象的若干区块(片段化的区块)内的有效数据复制到其他区块(复制目标区块)的垃圾回收动作。垃圾回收动作例如在 NAND存储器6内的空闲区块的个数减少到规定的临界个数以下的情况下执行。垃圾回收动作消耗SSD3的资源及性能。因此,有在执行垃圾回收动作的过程中将从主机2接收的数据写入到写入目标区块的写入动作的性能(即写入性能)降低的情况。
热保护节流控制部22是根据通过温度传感器7检测的温度来执行用于防止SSD3过热的热保护动作(热节流动作)。热节流动作是通过限制SSD3的写入性能而执行。更详细而言,热保护节流控制部22是根据通过温度传感器7检测的温度而限制被同时驱动(并列动作)的NAND存储器芯片的数量,或者限制包含多个NAND存储器芯片被同时驱动(并列动作)的第1期间与这些NAND存储器芯片未被驱动(动作)的第2期间的1个周期内的第1期间的比例。
电力限制节流控制部23执行将SSD3的电力消耗抑制在SSD3所容许的最大电力以下的电力限制动作(电力限制节流动作)。SSD3所容许的最大电力也可通过主机2预先通知给SSD3。该最大电力表示容许SSD3消耗的最大电力消耗量。
电力限制节流动作也可通过限制SSD3的写入性能而执行。更详细而言,电力限制节流控制部23是根据SSD3所容许的最大电力及各NAND存储器芯片的电力消耗量而限制被同时驱动(并列动作)的NAND存储器芯片的数量,或者限制包含多个NAND存储器芯片被同时驱动(并列动作)的第1期间与这些NAND存储器芯片未被驱动(动作)的第2期间的1个周期内的第1期间的比例。
写入性能降低通知部24是在内部动作(垃圾回收动作、热节流动作或电力限制节流动作)开始的情况下,根据开始的内部动作的内容而推断由内部动作开始引起的写入性能降低的量,并将所推断的写入性能降低的量通知给主机2或SSD阵列内的其他一个以上的SSD。
所推断的写入性能降低的量也可为由内部动作开始引起的写入性能降低后的性能。在该情况下,例如,写入性能从1G字节/秒降低至500M字节/秒的情况下,也可将500M字节/秒推断为写入性能降低的量。
或者,所推断的写入性能降低的量也可为由内部动作引起的写入性能的降低量、即从通常状态的写入性能减去降低后的写入性能所得的值。在该情况下,例如,写入性能从1G字节/秒降低至500M字节/秒的情况下,也可将524M字节/秒(=1024-500)推断为写入性能降低的量。
当通过内部动作结束而恢复写入性能时,写入性能降低通知部24也可将写入性能已恢复为通常状态的写入性能(1G字节/秒)的这一情况通知给主机2或SSD阵列内的其他的一个以上的SSD。
接下来,对控制器4内的其他组件进行说明。
NAND接口13是以在CPU12的控制下控制NAND存储器5的方式构成的NAND控制器。NAND接口13也可包含多信道、例如8个信道(CH#1~CH#8)。各信道包含用于传输数据、命令、及地址的总线。
DRAM接口14是以在CPU12的控制下控制DRAM6的方式构成的DRAM控制器。
DRAM6的存储区域的一部分也可用作用于暂时存储应写入到NAND存储器5的数据的写入缓冲器(WB)31。另外,DRAM6的存储区域也可用作用于暂时存储垃圾回收(GC)动作中移动的数据的GC缓冲器32。另外,DRAM6的存储区域也可用于存储所述查找表33。
SSD3也可保持进而其他各种管理信息。此种管理信息的例子也可包含保持与各个物理地址对应的有效/无效旗标的页面管理表。各有效/无效旗标表示对应的物理地址(物理页面)是有效还是无效。物理页面有效是指该物理页面内的数据为有效数据。物理页面无效是指该物理页面内的数据为通过更新(重写)而无效化的数据。
接下来,对主机2的构成进行说明。
主机2是执行各种程序的信息处理装置。通过信息处理装置执行的程序中包含应用软件层41、操作系统(OS,Operating System)42、文件系统43。
像一般所知道的那样,操作系统(OS)42是以如下方式构成的软件,即,管理主机2整体而控制主机2内的硬件,执行用于使应用程序能够使用硬件及SSD3的控制。
文件系统43是为了进行用于文件的操作(制作、保存、更新、删除等)的控制而使用。例如,也可使用ZFS(Zettabyte File System,Zettabyte文件系统)、BtrfS、XFS、ext4(Fourth extended filesystem,第四代扩展文件系统)、NTFS(New Technology File System,新技术文件系统)等作为文件系统43。或者,也可使用文件对象系统(例如,Ceph Object Storage Daemon,Ceph对象存储守护进程)、Key Value Store System(键值存储系统)(例如,Rocks DB)作为文件系统43。
各种应用软件线程在应用软件层41上运行。作为应用软件线程的例子,有客户端软件、数据库软件、虚拟机等。
当应用软件层41必须将读取命令或写入命令之类的请求送出至SSD3时,应用软件层41将该请求送出至OS42。OS42将该请求送出至文件系统43。文件系统43将该请求翻译成命令(读取命令、写入命令等)。文件系统43将命令送出至SSD3。接收到来自SSD3的应答时,文件系统43将该应答送出至OS42。OS42将该应答送出至应用软件层41。
进而,主机2也可包含装置性能管理部44。装置性能管理部44是从SSD阵列内的 某SSD接收性能降低的通知,并将所接收到的性能降低的通知发送到SSD阵列内的其他各SSD。
图9表示依次分配空闲区块用于写入来自主机2的数据的动作。
控制器4是将通过空闲区块列表60表示的一个空闲区块分配为写入目标区块62。
控制器4将从主机2接收的写入数据写入到写入缓冲器31。然后,控制器4一边更新查找表(LUT)33,一边将写入缓冲器31内的写入数据从写入目标区块62的前导页面朝向最终页面依次写入。
如果写入目标区块62中不存在能够利用的页面,则控制器4将写入目标区块62作为主动块(包含数据的区块)进行管理。因此,控制器4将写入目标区块62移动到主动块列表61。然后,控制器4分配空闲区块列表60的空闲区块作为新的写入目标区块62。
如果主动块列表61内的任一区块的所有数据通过其更新而无效化,则该区块被移动到空闲区块列表60。
如果空闲区块列表60内的空闲区块的数量减少到规定的临界值以下,则执行形成空闲区块的所述垃圾回收(GC)动作。
图10表示通过控制器4执行的垃圾回收(GC)动作。
在图10中,例示4个区块B11、B12、B13、B14被选择为GC动作的对象的情况。控制器4从有效数据(即有效页面)与无效数据(即无效页面)混合存在的区块中选择应设为GC动作的对象的若干区块。控制器4也可通过参照保持与各个物理地址对应的有效/无效旗标的所述页面管理表而优先选择无效数据的量较多的区块作为GC动作的对象。控制器4将作为GC动作的对象的各区块内的有效数据复制到一个以上的复制目标区块。
GC动作所需的复制目标区块的个数是根据应通过GC动作复制的有效数据的量来决定。在图10中,表示将2个空闲区块分配为复制目标区块B101、B102的情况。
复制目标区块B101、B102被有效数据占满。区块B11、B12、B13、B14成为不包含有效数据的空闲区块。成为空闲区块的区块B11、B12、B13、B14被移动到空闲区块列表60。
图11表示NAND接口13与多个NAND存储器芯片的关系。
在图11中,例示在NAND接口13所包含的8个信道(CH#1~CH#8)的各者连接着4个NAND存储器芯片的情况。在控制器4的控制下,NAND接口13能够变更每一信道的被同时驱动(并列动作)的NAND存储器芯片的数量。
如果每一信道的并列动作的NAND存储器芯片的数量设定为4,则被同时驱动(并列动作)的NAND存储器芯片的总数成为32(最大写入性能)。
如果每一信道的并列动作的NAND存储器芯片的数量设定为3,则被同时驱动(并列动作)的NAND存储器芯片的总数成为24(最大写入性能的75%的写入性能)。
如果每一信道的并列动作的NAND存储器芯片的数量设定为2,则被同时驱动(并列动作)的NAND存储器芯片的总数成为16(最大写入性能的50%的写入性能)。
如果每一信道的并列动作的NAND存储器芯片的数量设定为1,则被同时驱动(并列动作)的NAND存储器芯片的总数成为8(最大写入性能的25%的写入性能)。
通过变更被同时驱动(并列动作)的NAND存储器芯片的数量(总数),能够对SSD3的写入性能、电力消耗、发热量进行调整。
图12表示工作周期比控制动作。
在用于对NAND存储器5写入数据的写入动作中,32个NAND存储器芯片被间歇驱动。用于间歇驱动的周期(工作周期范围)包含执行写入动作的接通期间、及不执行写入动作的断开期间。
在接通期间内,32个即所有NAND存储器芯片被同时驱动(并列动作)。各NAND存储器芯片成为写入动作进行中的忙碌状态。
在断开期间内,32个即所有NAND存储器芯片未被驱动(动作)。各NAND存储器芯片成为不执行写入动作及读出动作的闲置状态。
通过控制接通期间相对于1个周期的比例,能够对SSD3的写入性能、SSD3的写入性能、电力消耗、发热量进行调整。例如,在1个周期(工作周期范围)为10秒的情况下,如果接通期间设定为1秒(工作周期比=10%),则SSD3的写入性能被限制为最大写入性能的10%。SSD3的10秒间的平均电力消耗成为最大写入性能时的电力消耗的1/10。
图13表示通过送出侧SSD执行的性能降低通知处理的例子。
作为送出侧SSD发挥功能的SSD#2内的控制器4视需要开始进行成为所述SSD#2的写入性能降低的原因的处理(所述内部动作)(步骤S11)。在步骤S11中,控制器4推断SSD#2的写入性能降低的量,并将表示SSD#2的写入性能降低的性能降低的通知发送到主机2。该性能降低的通知包含所推断的写入性能(例如,降低后的写入性能)及原因信息。原因信息表示该写入性能降低的原因为垃圾回收(GC)动作、热节流动作或电力限制节流动作中的哪一个。
当主机2从SSD#2接收到性能降低的通知时,主机2将所接收到的性能降低的通知分别发送到SSD#1、SSD#3、SSD#4。SSD#1、SSD#3、SSD#4分别作为以使自身的写入性能降低至所接收到的降低后的写入性能的方式构成的接收侧SSD发挥功能。SSD#1的控制器执行使自身的写入性能降低至所接收到的降低后的写入性能的处理(步骤S12)。 在步骤S12中,SSD#1的控制器也可在SSD#1的写入性能不低于所接收到的降低后的写入性能的范围内执行GC动作。或者,SSD#1的控制器也可在SSD#1的写入性能不低于所接收到的降低后的写入性能的范围内执行限制被同时驱动的NAND存储器芯片的数量或工作周期比的节流动作。SSD#1的控制器也可根据所接收到的原因信息而决定执行GC动作或节流动作中的哪一个。
例如,如果所接收到的原因信息表示GC动作或电力限制(节流动作),则SSD#1的控制器能够执行GC动作或节流动作的任一者。
另一方面,如果表示写入性能降低的原因为“用于防止过热的热保护”(热节流动作),则SSD#1的控制器不通过GC动作而通过节流动作使自身的写入性能降低。由此,能够抑制SSD阵列整体的过度的温度上升。
同样地,SSD#3、SSD#4也执行使自身的写入性能降低至所接收到的降低后的写入性能的处理(步骤S13、S14)。
图14表示通过送出侧SSD执行的性能降低通知处理的另一例。
作为送出侧SSD发挥功能的SSD#2内的控制器4视需要开始进行成为所述SSD#2的写入性能降低的原因的处理(所述内部动作)(步骤S21)。在步骤S21中,控制器4推断SSD#2的写入性能降低的量,并将性能降低的通知分别发送到SSD#1、SSD#3、SSD#4。该性能降低的通知包含所推断的写入性能(例如,降低后的写入性能)及所述原因信息。
SSD#1、SSD#3、SSD#4执行使自身的写入性能降低至所接收到的降低后的写入性能的处理(步骤S22、S23、S24)。
图15的流程图表示通过送出侧SSD执行的GC动作及性能降低通知处理的次序。
送出侧SSD的控制器4定期检查剩余空闲区块的数量(步骤S31),并判定剩余空闲区块的数量是否为临界个数以下(步骤S32)。
如果剩余空闲区块的数量为临界个数以下(步骤S32的是(YES)),则控制器4选择无效数据量较多的高阶的若干区块作为GC对象区块(GC候补)(步骤S33)。控制器4是根据GC动作中必须复制的数据量、即GC对象区块各自的有效数据的量,而推断GC期间中的送出侧SSD的写入性能(例如,由GC引起的降低后的写入性能)(步骤S34)。
控制器4是将包含所推断出的写入性能与原因信息(GC动作)的性能降低的通知发送到主机2或SSD阵列内的其他各SSD,由此,将送出侧SSD的写入性能降低、送出侧SSD的写入性能降低至何种程度的性能、及该写入性能降低的原因通知给主机2或SSD阵列内的其他各SSD(步骤S35)。
控制器4执行通过将GC对象区块各自的有效数据复制到一个以上的复制目标区块 而增加空闲区块的数量的GC动作(步骤S36)。在步骤S36中,控制器4并列执行将从主机2接收的写入数据(主机数据)写入到写入目标区块的处理及GC动作。在该情况下,控制器4也可根据GC动作中必须复制的数据量,决定写入到写入目标区块的来自主机2的写入数据的量与用于GC动作而复制到复制目标区块的数据的量的比率,以该比率并列执行将写入数据写入的处理及GC动作。
如果GC动作已完成(步骤S37的是),则控制器4将送出侧SSD的写入性能恢复的通知发送到主机2或SSD阵列内的其他各SSD,由此,将送出侧SSD的写入性能恢复为通常状态时的写入性能通知给主机2或SSD阵列内的其他各SSD(步骤S38)。写入性能恢复的通知中也可包含表示通常状态时的写入性能的值(例如,1G字节/秒)。
图16的流程图表示通过送出侧SSD执行的热节流动作及性能降低通知处理的次序。
送出侧SSD的控制器4是定期检查通过温度传感器7检测的送出侧SSD内的温度,并判定该检测温度是否为临界温度T1以上(步骤S41)。
如果检测温度为临界温度T1以上(步骤S41的是),则控制器4决定同时驱动的NAND存储器芯片的数量或所述工作周期比(步骤S42)。控制器4是根据所决定的同时驱动的NAND存储器芯片的数量或所决定的工作周期比,而推断温度保护期间(热节流动作期间)中的送出侧SSD的写入性能(例如,由热节流动作引起的降低后的写入性能)(步骤S43)。
控制器4是将包含所推断出的写入性能与原因信息(热节流动作)的性能降低的通知发送到主机2或SSD阵列内的其他各SSD,由此,将送出侧SSD的写入性能降低、送出侧SSD的写入性能降低至何种程度的性能、及该写入性能降低的原因通知给主机2或SSD阵列内的其他各SSD(步骤S44)。
控制器4是通过根据步骤S42中的决定来限制同时驱动的NAND存储器芯片的数量或工作周期比而开始热节流动作(步骤S45)。通过该热节流动作,而送出侧SSD的发热量减少。
控制器4是定期检查通过温度传感器7检测的送出侧SSD内的温度,并判定该检测温度是否已降低至临界温度T2以下(步骤S46)。临界温度T2也可设定为较临界温度T1低的温度。
如果检测温度为临界温度T2以下(步骤S46的是),则控制器4通过将同时驱动的NAND存储器芯片的数量的限制或工作周期比的限制解除而结束热节流动作(步骤S47)。然后,控制器4将送出侧SSD的写入性能恢复的通知发送到主机2或SSD阵列内的其他各SSD,由此,将送出侧SSD的写入性能恢复为通常状态时的写入性能通知给主机2 或SSD阵列内的其他各SSD(步骤S48)。写入性能恢复的通知中也可包含表示通常状态时的写入性能的值(例如,1G字节/秒)。
在图16中,对根据检测温度对2个状态(热节流动作的开始、热节流动作的停止)进行切换的动作进行了说明,但也可执行根据检测温度而分多个阶段切换同时驱动的NAND存储器芯片的数量或工作周期比的控制。例如,当检测温度降低至临界温度T1与临界温度T2之间的临界温度T3时,也可重新决定同时驱动的NAND存储器芯片的数量或工作周期比,并根据重新决定的NAND存储器芯片的数量或工作周期比而限制同时驱动的NAND存储器芯片的数量或工作周期比。在该情况下,控制器4也可根据重新决定的NAND存储器芯片的数量或工作周期比而再次推断写入性能降低的量,并将包含所推断出的写入性能与原因信息(热节流动作)的性能降低的通知发送到主机2或SSD阵列内的其他各SSD。
图17的流程图表示通过送出侧SSD执行的电力限制节流动作及性能降低通知处理的次序。
送出侧SSD的控制器4是根据送出侧SSD的电力消耗与送出侧SSD所容许的最大电力的关系判定是否应开始电力限制、即是否满足电力限制开始条件(步骤S51)。送出侧SSD的电力消耗是根据每1个NAND存储器芯片的电力消耗量与同时驱动的NAND存储器芯片的数量(或工作周期比)的函数而计算。如果送出侧SSD的电力消耗大于主机2对送出侧SSD容许的最大电力,则控制器4是以送出侧SSD的电力消耗成为送出侧SSD所容许的最大电力以下的方式,根据送出侧SSD所容许的最大电力与NAND存储器芯片各自的电力消耗量(每一芯片的电力消耗量),决定同时驱动的NAND存储器芯片的数量或所述工作周期比(步骤S52)。
控制器4是根据所决定的同时驱动的NAND存储器芯片的数量或所决定的工作周期比,推断电力限制期间(电力限制节流动作期间)中的送出侧SSD的写入性能(例如,由电力限制节流动作引起的降低后的写入性能)(步骤S53)。
控制器4是将包含所推断出的写入性能与原因信息(热节流动作)的性能降低的通知发送到主机2或SSD阵列内的其他各SSD,由此,将送出侧SSD的写入性能降低、送出侧SSD的写入性能降低至何种程度的性能、及该写入性能降低的原因通知给主机2或SSD阵列内的其他各SSD(步骤S54)。
控制器4通过根据步骤S52中的决定限制同时驱动的NAND存储器芯片的数量或工作周期比而开始电力限制节流动作(步骤S55)。通过该电力限制节流动作而送出侧SSD的电力消耗降低。
主机2也可视需要变更送出侧SSD所容许的最大电力。例如,如果主机2期望增加SSD阵列整体的写入性能,则主机2也可增加应对各SSD容许的最大电力。在该情况下,控制器4是根据送出侧SSD所容许的变更后的最大电力,判定是否不具有电力限制的必要性(步骤S56)。
如果不具有电力限制的必要性(步骤S56的是),则控制器4通过将同时驱动的NAND存储器芯片的数量的限制或工作周期比的限制解除而结束电力限制节流动作(步骤S57)。然后,控制器4将送出侧SSD的写入性能恢复的通知发送到主机2或SSD阵列内的其他各SSD,由此,将送出侧SSD的写入性能恢复为通常状态时的写入性能通知给主机2或SSD阵列内的其他各SSD(步骤S58)。写入性能恢复的通知中也可包含表示通常状态时的写入性能的值(例如,1G字节/秒)。
另外,主机2为了使信息处理系统1的电力消耗减少,主机2也可使应对各SSD容许的最大电力减少。在该情况下,控制器4是以送出侧SSD的电力消耗成为送出侧SSD所容许的变更后的最大电力以下的方式,根据送出侧SSD所容许的变更后的最大电力与NAND存储器芯片各自的电力消耗量(每一芯片的电力消耗量),重新决定同时驱动的NAND存储器芯片的数量或所述工作周期比。然后,控制器4根据重新决定的NAND存储器芯片的数量或工作周期比限制同时驱动的NAND存储器芯片的数量或工作周期比。控制器4是根据重新决定的NAND存储器芯片的数量或工作周期比再次推断写入性能降低的量,并将包含所推断出的写入性能与原因信息(电力限制节流动作)的性能降低的通知发送到主机2或SSD阵列内的其他各SSD。
图18表示作为所述接收侧SSD发挥功能的SSD3的构成例。
接收侧SSD包含写入性能调整部25而代替送出侧SSD的写入性能降低通知部24。
写入性能调整部25是从主机2或其他SSD接收表示其他SSD的写入性能降低的通知,并根据由该通知指定的写入性能降低的量及由该通知指定的性能降低的原因,而执行使接收侧SSD的写入性能降低的处理。
如果所接收到的通知中包含的原因信息为GC动作或电力限制节流,则写入性能调整部25也可执行GC动作。在该情况下,写入性能调整部25根据写入性能降低的量而决定写入到写入目标区块的来自主机2的写入数据的量与用于GC动作而复制到复制目标区块的数据的量的比率。然后,写入性能调整部25根据该比率使用垃圾回收动作控制部21执行GC动作。
例如,如果写入数据的量与用于GC动作而复制的数据的量的比率为1比1,则每当将规定量的写入数据写入到写入目标区块时,也可执行将规定量的有效数据从GC对 象区块复制到复制目标区块的动作。
如果所接收到的通知中包含的原因信息为热节流,则写入性能调整部25不执行GC动作而通过节流动作使接收侧SSD的写入性能降低。在该情况下,写入性能调整部25是根据写入性能降低的量,而决定同时驱动的NAND存储器芯片的数量或工作周期比,并根据所决定的同时驱动的NAND存储器芯片的数量或所决定的工作周期比,而限制同时驱动的NAND存储器芯片的数量或工作周期比。
图19的流程图表示通过接收侧SSD执行的写入性能降低处理的次序。
当接收侧SSD的控制器4从主机2或其他SSD接收到其他SSD的写入性能降低的通知时(步骤S61的是),控制器4是根据该接收到的通知中包含的原因信息而检查其他SSD的写入性能降低的原因(步骤S62)。
如果其他SSD的写入性能降低的原因为GC动作(步骤S63的是),则接收侧SSD的控制器4通过预先执行GC动作或者执行节流动作而使接收侧SSD的写入性能降低至与其他SSD的降低后的写入性能大致相等的性能(步骤S64)。
如果其他SSD的写入性能降低的原因为热保护(热节流)(步骤S65的“是”),则接收侧SSD的控制器4通过执行节流动作而使接收侧SSD的写入性能降低至与其他SSD的降低后的写入性能大致相等的性能(步骤S66)。为了防止SSD阵列整体的温度过度上升,而禁止接收侧SSD预先执行GC动作。
如果其他SSD的写入性能降低的原因为电力限制(电力限制节流)(步骤S67的是),则接收侧SSD的控制器4通过执行节流动作而使接收侧SSD的写入性能降低至与其他SSD的降低后的写入性能大致相等的性能(步骤S68)。或者,接收侧SSD的控制器4也可在接收侧SSD的电力消耗不超过接收侧SSD所容许的最大电力的范围内预先执行GC动作。
另外,当接收侧SSD的控制器4从主机2或其他SSD接收到其他SSD的写入性能恢复的通知时,控制器4通过停止GC动作或者停止节流动作而执行将接收侧SSD的写入性能恢复为通常状态时的写入性能(例如,1G字节/秒)的处理。
图20的流程图表示接收到性能降低通知时通过接收侧SSD执行的GC动作的次序。
接收侧SSD的控制器4是根据写入性能降低的量,计算写入到写入目标区块的来自主机2的写入数据的量与用于GC动作而复制到复制目标区块的数据的量的比率(步骤S71),并以该比率执行GC动作(步骤S72)。
例如,在接收侧SSD的控制器4以写入性能(1G字节/秒)进行动作且送出侧SSD的写入性能降低至512M字节/秒的情况下,接收侧SSD的控制器4也可使接收侧SSD的 写入性能降低至512M字节/秒且将剩余的写入性能(此处为512M字节/秒)用于GC动作。在该情况下,写入数据的量与用于GC动作而复制的数据的量的比率成为1比1。在步骤S72中,以来自主机2的写入数据的量与用于GC动作而复制的数据的量的比率成为1比1的方式并行执行写入动作与GC动作。
图21的流程图表示接收到性能降低通知时通过接收侧SSD执行的节流动作的次序。
接收侧SSD的控制器4是根据写入性能降低的量而决定在接收侧SSD内同时驱动的NAND存储器芯片的数量或用于使接收侧SSD内的NAND存储器芯片间歇动作的工作周期比(步骤S81),以该NAND存储器芯片的数量或工作周期比一边执行节流动作,一边执行写入动作(步骤S82)。
图22表示具有送出侧SSD及接收侧SSD该两者的功能的SSD的构成例。
具有送出侧SSD及接收侧SSD该两者的功能的SSD3的控制器4包含所述写入性能降低通知部24与所述写入性能调整部25该两者。
图23表示作为主机2发挥功能的信息处理装置的硬件构成例。
该信息处理装置是作为服务器电脑或个人电脑而实现。该信息处理装置包含处理器(CPU)101、主存储器102、BIOS(Basic Input Output System,基本输入输出系统)-ROM(Read Only Memory,只读存储器)103、网络控制器105、周边接口控制器106、控制器107、及嵌入式控制器(EC,Embedded Controller)108等。
处理器101是以控制该信息处理装置的各组件的动作的方式构成的CPU。该处理器101执行从多个SSD3的任一者或其他存储装置载入到主存储器102的各种程序。主存储器102包括DRAM之类的随机存取存储器。通过处理器101执行的程序包含所述应用软件层41、OS42、文件系统43、及装置性能管理部44。
另外,处理器101也执行存储在作为非易失性存储器的BIOS-ROM103的基本输入输出系统(BIOS)。BIOS是用于硬件控制的系统程序。
网络控制器105是有线LAN(Local Area Network局域网)控制器、无线LAN控制器之类的通讯装置。周边接口控制器106是以执行与USB(Universal Serial Bus,通用串行总线)装置这样的周边装置的通讯的方式构成。
控制器107是以执行与多个连接器107A分别连接的装置的通讯的方式构成。在本实施方式中,多个SSD3分别连接于多个连接器107A。控制器107也可为具有RAID控制器的功能的芯片组。如果处理器101包含PCIe开关,则多个SSD3各自也可经由PCIe总线直接连接于处理器101。
EC108是作为以执行信息处理装置的电力管理的方式构成的系统控制器发挥功能。 EC108是根据用户对电源开关的操作而将信息处理装置通电及断电。EC108是作为单片微控制器这样的处理电路而实现。EC108也可内置于控制键盘(KB)等输入装置的键盘控制器。
图24表示包含多个SSD3与主机2的信息处理装置的构成例。
该信息处理装置具备能够收容于机架的较薄的箱形的壳体201。多个SSD3也可配置在壳体201内。在该情况下,各SSD3也可能够拆卸地插入至设置在壳体201的前表面201A的插槽。
系统板(母板)202配置在壳体201内。在系统板(母板)202上安装着包含CPU101、存储器102、网络控制器105、控制器107的各种电子零件。这些电子零件作为主机2发挥功能。
如以上说明所述,根据本实施方式的送出侧SSD,在通过送出侧SSD开始内部动作的情况下,推断将从主机2接收的数据写入到NAND存储器5的写入动作的性能降低的量,并将该推断的写入动作的性能降低的量通知给主机2或SSD阵列内的其他一个以上的SSD。因此,能够将为了使阵列内的SSD能够协调动作而有用的信息提供给主机2或其他SSD,由此,SSD阵列内的其他SSD能够有效利用送出侧SSD的写入性能降低的期间。
另外,在本实施方式中,作为非易失性存储器而例示了NAND存储器。但是,本实施方式的功能也可应用于例如MRAM(Magnetoresistive Random Access Memory,磁阻式随机存取存储器)、PRAM(Phase change Random Access Memory,相变随机存取存储器)、ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)、或FeRAM(Ferroelectric Random Access Memory,铁电随机存取存储器)之类的其他各种非易失性存储器。
对本发明的若干实施方式进行了说明,但这些实施方式是作为例而提出来者,并未意图限定发明的范围。这些新颖的实施方式能以其他多种方式实施,且能够在不脱离发明的主旨的范围内进行各种省略、置换、变更。这些实施方式或其变化包含在发明的范围或主旨中,并且包含在权利要求书所记载的发明及其均等的范围。