存储系统的制作方法

文档序号:22400676发布日期:2020-09-29 18:12阅读:137来源:国知局
存储系统的制作方法

相关申请的交叉引用

本申请基于并主张2019年3月19日提交的序列号为2019-50997的日本专利申请的优先权益,该申请的全部内容通过引用并入本文中。

本文描述的实施例一般地涉及存储系统。



背景技术:

在包括非易失性存储器的存储系统中,在从主机接收到写命令时,存储系统执行该写命令以将数据写入非易失性存储器中。针对此类存储系统,已经开发出各种技术来提高将数据写入非易失性存储器中的效率。



技术实现要素:

实施例提供了能够有效地将写数据写入非易失性存储器中的存储系统。

一般而言,根据一个实施例,一种存储系统包括非易失性存储器、接口电路和控制器,所述控制器被配置为在经由所述接口电路接收到用于将写数据存储在所述非易失性存储器中的多个写命令时,获取关于与每个写命令相关联的所述写数据的压缩比信息,基于所获取的压缩比信息确定每个写数据的压缩比;以及基于所确定的压缩比确定所述写命令的执行顺序。

附图说明

图1是示出根据第一实施例的包括存储系统的信息处理系统的配置的图。

图2是示出根据第一实施例的由包括存储系统的信息处理系统执行的操作的序列图。

图3是示出根据第一实施例的获得压缩比估计信息的处理的图。

图4是示出根据第一实施例的命令执行顺序确定处理的流程图。

图5是示出根据第一实施例的命令执行顺序确定处理的图。

图6是示出根据第一实施例的压缩比转换信息的数据结构的图。

图7是示出根据第二实施例的包括存储系统的信息处理系统的配置和操作的图。

图8是示出根据第三实施例的包括存储系统的信息处理系统的配置和操作的图。

图9是示出根据第三实施例的命令执行顺序确定处理的流程图。

图10是示出根据第四实施例的命令执行顺序确定处理的流程图。

图11是示出根据第五实施例的命令执行处理的流程图。

具体实施方式

在下文中,将参考附图详细描述根据实施例的存储系统。本公开不限于以下实施例。

第一实施例

根据第一实施例的存储系统是包括非易失性存储器的存储系统。当从主机等接收到指示写入写数据的写命令时,存储系统对非易失性存储器执行该写命令。由此,将写数据写入非易失性存储器中。

为了增加存储系统的存储容量,已经开发了一种压缩写数据(例如,用户数据)并将压缩后的写数据写入非易失性存储器中的方法。因此,存储系统具有数据压缩功能。因此,存储系统压缩要写入的数据,并执行写命令以将压缩后的写数据写入非易失性存储器中。用户数据使用无损压缩方法来压缩,因此,压缩后的用户数据的大小趋于变化。

在非易失性存储器中,以预定的写入单位(以下称为写入单位)执行数据向存储器单元阵列中的写入。在非易失性存储器中,当写数据大小不是写入单位大小的整数倍时,将虚设数据(dummydata)添加到写数据以填充写入单位的未写区域(在本文中称为浪费区域),从而使得写数据加上虚设数据的大小是写入单位大小的整数倍。在写入压缩后的写数据时,压缩后的写数据的大小趋于变化,并且这种趋势变得明显。因此,未写区域的数量趋于增加。这可能导致将写数据写入非易失性存储器中的效率降低,并且可能难以有效地使用存储系统的存储容量。

此外,开发了一种这样的方法:将压缩比划分为多个级别,提供包括与多个压缩比级别相对应的多个缓冲区的缓冲存储器,压缩写数据,测量写数据的压缩比,以及将每个写数据存储在与压缩比级别相对应的缓冲区中。在这种情况下,为了根据写数据的压缩比级别将压缩后的写数据有效地适合写入单位,并减少未写区域的量,可以改变写命令的执行顺序。

然而,当提供包括与多个压缩比级别相对应的多个缓冲区的缓冲存储器时,需要具有大容量的缓冲存储器。因此,可能增加存储系统的成本。

因此,在根据本实施例的存储系统中,通过使用链接到写命令的压缩比估计信息(即,压缩比提示(hint))来估计写数据的压缩比,并基于估计的压缩比确定写命令的执行顺序,可以防止缓冲存储器的容量增加并提高写数据的写入效率。压缩比估计信息可以被包括在写命令中。

具体地,根据本实施例的主机和存储系统具有以下特征(1)和(2)。

(1)在发送写命令之前由主机计算写数据的熵信息,并且将熵信息链接到写命令,作为用于预测压缩后的写数据的大小的提示。熵信息是例如指示写数据可以被压缩到什么程度的信息。

(2)存储系统通过参考链接到写命令的熵信息,基于预定写入单位的剩余数据可写量来确定写命令的执行顺序。可以基于熵信息来重新布置压缩后的数据,因此可以使缓冲区与预定写入单位一样小。另外,基于nvme标准的写命令可以以乱序的方式执行。

更具体地,包括存储系统100的信息处理系统1可以具有图1所示的配置。图1是示出包括存储系统100的信息处理系统1的配置的图。

存储系统100连接到主机2,以便与主机2通信,并用作主机2的外部存储设备。存储系统100是例如基于通用闪速存储(ufs)标准或嵌入式多媒体卡(emmc)标准嵌入使用的闪速存储器、固态驱动器(ssd)等。主机2是例如微处理器、成像设备、pc等。在下文中,将以主机2和存储系统100经由通信路径基于非易失性存储器express(nvme)标准发送和接收数据包(packet)的情况为例进行描述。

主机2和存储系统100可以基于ufs标准、串行连接scsi(sas)标准、串行高级技术附件(sata)标准或外围组件互连express(pcie)标准,而不是nvme标准,来发送和接收数据包。

主机2包括主机控制器3和主机存储器4。主机控制器3包括直接存储器存取控制器(dmac)5。dmac5包括熵计算单元5a。当dmac5发出写命令时,熵计算单元5a通过检查写数据中的符号出现频率,获得压缩比估计信息(例如,熵信息)作为与写命令相对应的写数据的压缩比的提示。dmac5发出包括由熵计算单元5a获得的压缩比估计信息的写命令。

主机存储器4包括命令发出队列4a、命令完成队列4b和缓冲区4c。在命令发出队列4a中,对由dmac5发出的写命令进行排队。命令发出队列4a基本上具有fifo(先进先出)结构,并且可以具有乱序执行结构。在命令完成队列4b中,对指示出存储系统100完成命令执行的写命令完成信息进行排队。在缓冲区4c中,存储与在命令发出队列4a中排队的写命令相对应的写数据。

例如,假设排队顺序由i(i=1至n,n是2或更大的整数)表示,写命令wci包括标识信息idi、命令类型wr、起始地址lbai、指针prti、数据大小信息sizei和熵信息entropyi。标识信息idi从其它写命令wci识别出写命令wci。命令类型wr指示命令的类型(在这种情况下,为写命令)。起始地址lbai指示写数据的头部的逻辑地址。指针prti指示写数据在缓冲区4c中的存储位置(即,写数据在缓冲区4c中的地址)。数据大小信息sizei指示写数据的大小(即,未压缩的写数据的大小)。熵信息entropyi是由熵计算单元5a获得的写数据的熵信息。

存储系统100包括控制器110、缓冲存储器120和非易失性存储器130。控制器110包括nvme接口111、缓冲接口112、cpu113、压缩单元114、解压缩单元115、纠错电路(ecc)116、随机存取存储器(ram)117和存储器接口118。

非易失性存储器130包括多个存储器芯片。每个存储器芯片包括存储器单元阵列。在每个存储器芯片的存储器单元阵列中,数据可被集体写入和读取的读写单位是物理页。由多个物理页组成的最小存取单位是物理块,它是数据擦除单位。数据管理单位是簇,其大小小于一个物理页的大小。假定非易失性存储器130中的数据由cpu113管理。簇大小等于或大于扇区的大小,扇区是主机2的最小存取单位,簇大小被确定以使得自然数乘以簇大小对应于物理页大小。一个物理页可以包括四个簇,而一个逻辑页可以包括64个簇。

例如,写入单位的大小可以是簇大小、页大小、块大小或与这些大小不同的大小。簇大小可以是4kb,页大小可以是16kb。

nvme接口111是基于nvme标准的接口电路,并且包括门铃寄存器111a和门铃寄存器111b。门铃寄存器111a是与主机存储器4的命令发出队列4a相对应的寄存器。例如,用于通知已发出的写命令的有效位被主机2存储在门铃寄存器111a中。当有效位被存储在门铃寄存器111a中时,nvme接口111访问主机存储器4的命令发出队列4a,并且例如按照发出的顺序(即,按照排队的顺序)获取写命令。

门铃寄存器111b是与主机存储器4的命令完成队列4b相对应的寄存器。例如,用于通知完成信息的确认的有效位被主机2存储在门铃寄存器111b中。

cpu113控制控制器110的每个部分。当经由nvme接口111获取写命令时,cpu113确定写数据在非易失性存储器130中的存储区域(即,写目的地),并且将写命令中包含的逻辑地址与对应于该存储区域的物理地址进行关联。逻辑地址和物理地址之间的相关性被管理作为lut(即,地址转换信息)121。lut121被存储在缓冲存储器120中。cpu113读取lut121,并在必要时将lut121缓存在ram等中。每当逻辑地址和物理地址之间的相关性改变时,cpu113可以更新lut121。

ram117由cpu113用作工作区域。ram117临时存储lut121。此外,ram117还存储压缩比转换信息117a。压缩比转换信息117a是这样的信息:其中,对于多个不同的熵,熵与压缩比彼此相关。

缓冲存储器120用作临时存储信息的存储区域。例如,缓冲存储器120可以是诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)之类的通用存储器。另外,缓冲存储器120可以被设置在控制器110中,或者可以独立于控制器110而被设置在控制器110的外部。lut121被存储在缓冲存储器120中。另外,在缓冲存储器120中,写缓冲区(wrbuf)122被分配作为用于存储写数据的区域。在缓冲存储器120中,压缩数据量管理区域123被分配作为这样的区域:该区域存储用于在压缩写数据时管理写数据的大小的信息。

cpu113被编程为用作命令执行顺序确定单元113a。或者,命令执行顺序确定单元113a可以由逻辑电路实现。命令执行顺序确定单元113a使用链接到写命令的压缩比估计信息来估计写数据的压缩比。

命令执行顺序确定单元113a可以将包括在由nvme接口111获取的写命令中的熵信息指定为压缩比估计信息。另外,当指定熵信息时,命令执行顺序确定单元113a可以通过从ram117读取压缩比转换信息117a并指定与压缩比转换信息117a的熵信息相对应的压缩比来估计写数据的压缩比。命令执行顺序确定单元113a基于估计的压缩比确定多个写命令在非易失性存储器130上的执行顺序。

例如,命令执行顺序确定单元113a在写缓冲区122上分配具有与写入单位相对应的大小(例如,页大小、簇大小或块大小)的存储区域122a。当按照多个写命令的发出顺序将写数据映射到存储区域122a中时,命令执行顺序确定单元113a基于估计的压缩比将压缩后的写数据的总大小写入压缩数据量管理区域123中。命令执行顺序确定单元113a基于写入压缩数据量管理区域123中的压缩后数据的总大小而确定写数据是否适合于(fitin)存储区域122a。当写数据不适合于存储区域122a时,命令执行顺序确定单元113a将多个写命令的执行顺序确定为与发出顺序不同。

cpu113以由命令执行顺序确定单元113a所确定的执行顺序来指示写命令的执行。

存储器接口118是经由总线连接至非易失性存储器130的接口电路,并且控制与非易失性存储器130的通信。例如,当从cpu113指示执行写命令时,存储器接口118将写数据和从cpu113指示的写命令传送到非易失性存储器130。另外,当由cpu113指示并经由存储器接口118接收的写命令的执行完成时,非易失性存储器130向存储器接口118发送完成通知,并且存储器接口118从非易失性存储器130接收完成通知。

当经由存储器接口118接收到与由cpu113指示的写命令相对应的完成通知时,cpu113经由nvme接口111在主机存储器4的命令完成队列4b中登记指示写命令的执行完成的完成信息。

缓冲接口112是控制控制器110对缓冲存储器120的存取的控制器电路,允许以例如双倍数据速率(ddr)对缓冲存储器120进行存取。

ecc116在cpu113的控制下对写数据执行纠错编码。ecc116基于写数据生成奇偶校验(parity),并生成包括奇偶校验的写数据。

在将写数据写入非易失性存储器130中之前,压缩单元114在cpu113的控制下压缩包括奇偶校验的写数据。压缩单元114使用无损压缩方法来压缩写数据。压缩单元114可以是硬件引擎或知识产权核(ip核)。

解压缩单元115在cpu113的控制下对从非易失性存储器130读取的压缩后的读数据进行解压缩。解压缩单元115使用无损解压缩方法对压缩后的读数据进行解压缩。解压缩单元115可以是硬件引擎或ip核。

ecc116在cpu113的控制下对解压缩的读数据执行纠错解码。ecc116从读数据中提取奇偶校验,并基于该奇偶校验纠正错误位。

接下来,将参考图2描述包括存储系统100的信息处理系统1的操作。图2是示出包括存储系统100的信息处理系统1的操作的序列图。

主机2将写数据传送到主机存储器4上的特定地址(sq1)。此时,主机2获得写数据的压缩比估计信息(即,熵信息)(sq2)。主机2基于例如写数据的位值的冗余而获得熵信息。

例如,如图3所示,主机2可以通过确认写数据的位值“1”的出现概率并且基于确认结果以多个级别(例如,在图3的情况下为八个级别)对出现概率进行分级(ranking)来获得熵信息。图3是示出获得压缩比估计信息(即,熵信息)的处理的图。如图3所示,当位值“1”的出现概率为1/2时,可以获得指示该写数据不可压缩的最大熵值etincomp。

返回图2,主机2发出包括在sq2中获得的压缩比估计信息(即,熵信息)的写命令(sq3),并在主机存储器4上的命令发出队列4a中对该写命令进行排队。

之后,主机2访问存储系统100,并将有效位存储在nvme接口111的门铃寄存器111a中。由此,主机2调用存储系统100以执行写命令。

存储系统100等待,直至有效位被存储在门铃寄存器111a中为止(sq6中的“否”)。当有效位被存储在门铃寄存器111a中时(sq6中的“是”),存储系统100充当主导装置(master)。因此,存储系统100直接访问主机存储器4的命令发出队列4a和缓冲区4c,并获取写命令和写数据。存储系统100使用链接到写命令的压缩比估计信息(例如,写命令中包括的熵信息)来估计写数据的压缩比。存储系统100基于估计的压缩比确定多个写命令在非易失性存储器130上的执行顺序(sq7)。存储系统100根据所确定的执行顺序,经由ecc116将写数据从写缓冲区122写入非易失性存储器130中。当写入完成时,充当主导装置的存储系统100直接访问主机存储器4的命令完成队列4b,并将完成信息登记在命令完成队列4b中(sq8)。当确认完成信息被登记在命令完成队列4b中时,主机2访问存储系统100,并将有效位存储在nvme接口111的门铃寄存器111b中。由此,主机2向存储系统100通知完成信息的确认。另外,主机2可以使与完成信息相对应的写命令从命令发出队列4a出队并丢弃该写命令,然后从缓冲区4c删除与该完成信息相对应的写数据。

当主机2的dmac5确认存储在缓冲区4c中的多条写数据时,可以立即对该多条写数据执行sq2的处理。

另外,基于nvme标准的写命令仅包括指示写数据是否不可压缩(例如,熵是否具有图3所示的最大值etincomp)的一位字段。为此,在sq3中,可以使用基于nvme标准的写命令的未使用字段(例如,保留字段)作为包括压缩比估计信息的写命令的字段。

接下来,将参考图4和图5详细描述sq7的命令执行顺序确定处理。图4是示出命令执行顺序确定处理的流程图。图5是示出命令执行顺序确定处理的图。图4所示的命令执行顺序确定处理由例如控制器110的nvme接口111、命令执行顺序确定单元113a、压缩单元114和缓冲接口112执行。

存储系统100在缓冲存储器120的写缓冲区122上分配具有与预定写入单位相对应的大小(例如,页大小、簇大小或块大小)的存储区域122a(s1)。存储系统100将压缩后的写数据写入存储区域122a中(s2)。存储系统100按照写命令的发出顺序执行s2的处理,直至存储区域122a的剩余区域122a1的数据量(即,剩余区域122a1的大小)变为等于或小于预定量为止(s3中的“否”)。

例如,在图5的示例中,参考图5,假设k是2或更大的整数,则按照写命令的发出顺序将写数据wrdatak、写数据wrdata(k+1)和写数据wrdata(k+2)写入存储区域122a中。

当在s1中在写缓冲区122上分配的存储区域122a的剩余区域122a1的数据量等于或小于预定量时(s3中的“是”),存储系统100获取链接到主机存储器4上的写命令的压缩比估计信息(s4)。例如,存储系统100可以获取在写命令中包括的熵信息作为压缩比估计信息。

存储系统100估计写数据的压缩比,并计算压缩后的写数据的数据量(s5)。存储系统100可以通过从ram117读取压缩比转换信息117a并参考压缩比转换信息117a来估计压缩比。

例如,压缩比转换信息117a具有图6所示的数据结构。图6是示出压缩比转换信息117a的数据结构的图。压缩比转换信息117a是这样的信息:其中,对于多个不同的熵,熵与压缩比彼此相关。压缩比转换信息117a包括熵信息字段117a1和压缩比字段117a2。存储系统100可以通过参考压缩比转换信息117a来指定与熵信息相对应的压缩比。当熵信息为“lv0”时,存储系统100可以指定压缩比为约“1/100”。当熵信息为“lv1”时,存储系统100可以指定压缩比为约“1/10”。当熵信息为“lv7”时,存储系统100可以指定压缩比为约“0”。

存储系统100可以通过指定与压缩比转换信息117a的熵信息相对应的压缩比来估计写数据的压缩比。存储系统100可以通过例如将未压缩的写数据的大小乘以压缩比来计算压缩后的写数据的数据量。

存储系统100基于在s5中计算出的写数据的数据量,确定压缩后的写数据是否可能适合于在写缓冲区122上分配的存储区域122a的剩余区域122a1(s6)。

当确定写数据不太可能适合于在写缓冲区122上分配的存储区域122a的剩余区域122a1时(s6中的“否”),存储系统100不将该写数据存储在写缓冲区122上分配的存储区域122a的剩余区域122a1中,并确定是否存在下一写命令(s10)。当存在下一写命令时(s10中的“是”),存储系统100对下一写命令执行s4的处理以及后续处理。当不存在下一写命令时(s10中的“否”),存储系统100结束处理。

例如,图5的示例示出了确定写数据wrdata(k+3)不太可能适合于在写缓冲区122上分配的存储区域122a的剩余区域122al的情况。

当确定写数据可能适合于在写缓冲区122上分配的存储区域122a的剩余区域122a1时(s6中的“是”),存储系统100压缩写数据,并获得压缩后的写数据的数据量(s7)。存储系统100基于在s7中获得的数据量,确定压缩后的写数据是否实际上适合于在写缓冲区122上分配的存储区域122a的剩余区域122al(s8)。

例如,图5的示例示出了确定在写数据wrdata(k+3)之后的下一写数据wrdata(k+4)实际上适合于剩余区域122al的情况。

当压缩后的写数据实际上适合于在写缓冲区122上分配的存储区域122a的剩余区域122a1时(s8中的“是”),存储系统100将写数据存储在存储区域122a(即,剩余区域122a1)中(s9)。

当压缩后的写数据实际上不适合于在写缓冲区122上分配的存储区域122a的剩余区域122a1时(s8中的“否”),存储系统100确定是否存在下一写命令而不在剩余区域122a1中写入任何内容(s10)。当存在下一写命令时(s10中的“是”),存储系统100对下一写命令执行s4的处理以及后续处理。当不存在下一写命令时(s10中的“否”),存储系统100结束处理。

如上所述,存储系统100可以通过参考熵信息,确定在压缩数据之后写数据是否可能适合于预定区域122a的剩余区域122a1。因此,避免了结果发现写数据不适合于压缩之后的剩余区域122al的情况。这在存储系统100的压缩单元114采用与计算熵信息时使用的压缩方法相同的压缩方法的情况下尤其重要。因此,可以在不提供包括与多个级别相对应的多个缓冲区的缓冲存储器的情况下,将写数据有效地写入非易失性存储器130中。

此外,通过使用其中压缩比估计信息和预测压缩比彼此相关的压缩比转换信息117a(参考图6),存储系统100可以精确地确定压缩比,并且可以避免在执行压缩后发现写数据不适合于剩余区域122a1的情况。

如上所述,在第一实施例中,存储系统100使用链接到写命令的压缩比估计信息(即,压缩比的提示)来估计写数据的压缩比,并基于估计的压缩比确定写命令的执行顺序。因而,可以在防止缓冲存储器的容量增加的同时,将写数据有效地写入非易失性存储器130中。

除了图4所示的方法之外,还存在一种方法,该方法针对从写命令组的熵信息中预期的每个压缩比对写命令组进行聚类(cluster),针对每个聚类压缩写数据,并将压缩后的写数据写入与写入单位相对应的存储区域122a中。例如,可以通过基于从熵信息中预期的压缩比级别将写命令组分类为多个子组来执行聚类。当写命令组被分类为两个子组时,链接到熵信息lv0至lv3(参考图3)的写命令被分类到第一子组中,并且链接到熵信息lv4至lv7的写命令被分类到第二子组中。首先,将属于第一子组的写命令按照写命令的发出顺序写入存储区域122a中,然后将属于第二子组的写命令按照写命令的发出顺序写入存储区域122a中。从而,与写数据的相似压缩比相对应的写命令被集体地写入存储区域122a中,因此可以确定写命令的执行顺序,同时减小由压缩比的变化引起的影响。

第二实施例

接下来,将描述根据第二实施例的存储系统。在下文中,将主要描述与第一实施例的不同之处。

在第二实施例中,如图7所示,信息处理系统1i的配置与第一实施例的不同。图7是示出根据第二实施例的包括存储系统100的信息处理系统1i的配置和操作的图。

信息处理系统1i进一步包括中继设备200i。中继设备200i连接在主机2i和存储系统100之间,以便与主机2i和存储系统100进行通信,并且中继主机2i和存储系统100之间的通信。中继设备200i包括连接控制器电路210i和中继存储器220i。连接控制器电路210i包括熵计算单元211i,熵计算单元211i可以被实现为逻辑电路或编程的微处理器。即,熵信息由连接控制器电路210i计算,而不是由主机2i计算。根据该配置,主机控制器3i的dmac5i不包括熵计算单元5a(参考图1)。另外,熵信息被链接到中继存储器220i中的写数据,该中继存储器220i用作连接控制器电路210i的缓冲器。通过参考熵信息,确定以什么顺序压缩和写入写数据。

具体地,包括存储系统100的信息处理系统1i如下操作。

主机2i将有效位存储在存储系统100的门铃寄存器111a中,并提示存储系统100获取写命令(sq11)。存储系统100经由连接控制器电路210i访问主机存储器4的命令发出队列4a,并获取写命令(sq12)。连接控制器电路210i访问主机存储器4的缓冲区4c,获取与写命令相对应的写数据,并将所获取的写数据存储在中继存储器220i中。熵计算单元211i基于写数据计算熵,并将计算结果作为熵信息存储在中继存储器220i中(sq13)。此时,连接控制器电路210i将熵信息与写数据进行链接,并将彼此链接的熵信息和写数据存储在中继存储器220i中。

当获取写命令时,存储系统100访问中继存储器220i,并获取链接到写数据的熵信息(sq14)。存储系统100以与图4所示的方法相同的方式,基于熵信息执行命令执行顺序确定处理,并确定写命令的执行顺序(sq15)。存储系统100按照sq15中确定的顺序将写数据加载到中继存储器220i上,压缩写数据,并将压缩后的写数据写入非易失性存储器130中(sq16)。

如上所述,在第二实施例中,存储系统100使用链接到与写数据相对应的写命令的压缩比估计信息(即,压缩比的提示)来估计写数据的压缩比,并且基于估计的压缩比确定写命令的执行顺序。从而,也可以在防止缓冲存储器的容量增加的同时,将写数据有效地写入非易失性存储器130中。

第三实施例

接下来,将描述根据第三实施例的存储系统。在下文中,将主要描述与第一实施例和第二实施例的区别。

在第一实施例和第二实施例中,估计写数据的压缩比以确定写命令的执行顺序。在第三实施例中,如图8所示,写数据被实际压缩以获得压缩后的写数据的实际大小,然后确定写命令的执行顺序。图8是示出根据第三实施例的包括存储系统100j的信息处理系统1j的配置和操作的图。

在信息处理系统1j中,存储系统100j一次压缩写数据,并获得压缩后的写数据的实际大小。因此,存储系统100j通过参考压缩后的写数据的实际大小来确定以什么顺序压缩和写入写数据。例如,当将写数据写入缓冲存储器120j中时,存储系统100j临时压缩从主机2j获取的写数据。存储系统100j将压缩后的写数据临时存储在缓冲存储器120j的写缓冲区1220中,基于压缩后的写数据获得压缩比,并且将压缩比存储在缓冲存储器120j的压缩比存储区域124中。

即,除了临时存储将要写入非易失性存储器130中的写数据的写缓冲区1221之外,存储系统100j的缓冲存储器120j还包括临时存储压缩后的写数据的写缓冲区1220。此外,缓冲存储器120j还包括存储压缩比的压缩比存储区域124。尽管与第一实施例中的缓冲容量相比,缓冲存储器120j的缓冲容量增加了与写缓冲区1220和压缩比存储区域124相对应的量,但是该增加量比提供包括与多个级别相对应的多个缓冲区的缓冲存储器的情况下的增加量小得多。

由于不需要估计压缩比,主机控制器3j的dmac5j不包括熵计算单元5a(参考图1)。

具体地,包括存储系统100j的信息处理系统1j如下操作。

主机2j将有效位存储在存储系统100j的门铃寄存器111a中,并提示存储系统100j获取写命令(sq21)。存储系统100j访问主机存储器4的命令发出队列4a,并获取写命令(sq22)。存储系统100j从主机存储器4的缓冲区4c获取写数据,通过压缩单元114压缩写数据,并将压缩后的写数据临时存储在缓冲存储器120j的写缓冲区(wrbuf0)1220上分配的存储区域122a中。同时,存储系统100j基于压缩后的写数据获得压缩比,并将该压缩比存储在缓冲存储器120j的压缩比存储区域124中。控制器110(即,命令执行顺序确定单元113a)读取存储在压缩数据量管理区域123中的信息(即,写入单位中包括的压缩后数据的总量的信息)和存储在压缩比存储区域124中的压缩比,并且确定写命令的执行顺序(sq15)。具体地,如图9所示,控制器110执行其中省略了图4中的步骤s4至s6的处理,并确定写命令的执行顺序。

存储系统100j按照sq25中确定的顺序,将与写命令相对应的写数据从写缓冲区(wrbuf0)1220复制到写缓冲区(wrbuf1)1221。存储系统100j经由ecc116将来自写缓冲区1221的写数据写入非易失性存储器130中。

如上所述,在第三实施例中,写数据被实际压缩,因此可以可靠地使写数据适合于写入单位。因此,可以有效且可靠地将写数据写入非易失性存储器130中。

第四实施例

接下来,将描述根据第四实施例的存储系统。在下文中,将主要描述与第一实施例至第三实施例的不同之处。

在第三实施例中,不管写数据是否能被压缩,都压缩写数据,然后确定写命令的执行顺序。在第四实施例中,仅在写数据能被压缩时才压缩写数据,然后确定写命令的执行顺序。根据第四实施例的包括存储系统100的信息处理系统1的配置可以与第一实施例中的相同。

具体地,如图10所示,图2中示出的sq7的命令执行顺序确定处理的细节在以下方面与根据第一实施例的处理不同。

在s1的处理之后,存储系统100确认指示写命令的写数据是否不能被压缩的字段的值是否为0(即,nvme标准中的字段“07”)(s11)。当字段“07”的值不为0时,即,当字段“07”的值为1时(s11中的“否”),存储系统100确定写数据不能被压缩,然后继续进行到s10的处理。当字段“07”的值为0时(s11中的“是”),存储系统100确定写数据可被压缩,压缩写数据,并获得压缩后的写数据的数据量(s12)。然后,存储系统100执行s8的处理和后续处理。

如上所述,根据第四实施例的存储系统100在写数据能被压缩时压缩写数据,并且将压缩后的写数据写入非易失性存储器130中。由此,可以有效地将写数据写入非易失性存储器130中。

第五实施例

接下来,将描述根据第五实施例的存储系统。在下文中,将主要描述与第一实施例至第四实施例的不同之处。

在第四实施例中,确定可压缩的写数据是否适合于与写入单位相对应的存储区域。在第五实施例中,确定不可压缩的写数据是否适合于以及可压缩的写数据是否适合于与写入单位相对应的存储区域。

具体地,如图11所示,图2中示出的sq7的命令执行顺序确定处理的细节在以下方面与根据第一实施例的处理不同。

在s1的处理之后,存储系统100确认指示写命令的写数据是否不能被压缩的字段(即,字段“07”)的值是否为0(s21)。当字段“07”的值不为0时,即,当字段“07”的值为1时(s21中的“否”),存储系统100确定写数据不能被压缩,并确定未压缩的写数据是否适合于存储区域122a的剩余区域122al(s22)。当未压缩的写数据适合于剩余区域122a1时(s22中的“是”),存储系统100将未压缩的写数据存储在存储区域122a(即,剩余区域122a1)中(s23)。当字段“07”的值为0时(s21中的“是”),存储系统100确定写数据能被压缩,压缩写数据(s12),并且确定压缩后的写数据是否适合于存储区域122a的剩余区域122a1(s22)。当压缩后的写数据适合于剩余区域122a1时(s22中的“是”),存储系统100将压缩后的写数据存储在存储区域122a(即,剩余区域122a1)中(s23)。此后,执行s10的处理。

如上所述,与第四实施例中一样,根据第五实施例的存储系统100在写数据能被压缩时压缩写数据,并且将压缩后的写数据写入非易失性存储器130中。由此,可以有效地将写数据写入非易失性存储器130中。

尽管已经描述了某些实施例,但是这些实施例仅以示例的方式给出,并且不意图限制本发明的范围。实际上,本文描述的新颖实施例可以以多种其它形式来体现。此外,在不脱离本发明的精神的情况下,可以对本文所述实施例的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在覆盖落入本发明的范围和精神内的这些形式或修改。

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