高速缓冲存储器装置的制作方法

文档序号:11954893阅读:335来源:国知局
高速缓冲存储器装置的制作方法

本申请案是基于以下申请案且主张所述申请案的优先权权益:2014年12月29日提出申请的第62/097,530号美国临时申请案;2015年2月27日提出申请的第2015-038997号日本专利申请案;及2015年3月12日提出申请的第14/656,559号美国非临时申请案,所有这些申请案的全部内容以引用方式并入本文中。

技术领域

本文中所描述的实施例大体来说涉及一种高速缓冲存储器装置。



背景技术:

固态驱动器(SSD)包含例如NAND快闪存储器等非易失性半导体存储器。所述NAND快闪存储器包含多个块(物理块)。所述多个块包含布置于字线与位线的交叉点处的多个存储器单元。



技术实现要素:

一般来说,根据一个实施例,一种高速缓冲存储器装置包含非易失性高速缓冲存储器、写入单元、确定单元、选择单元及擦除单元。所述非易失性高速缓冲存储器包含多个擦除单位区域。所述擦除单位区域中的每一者均包含多个写入单位区域。所述写入单元将数据写入到所述非易失性高速缓冲存储器。所述确定单元确定所述多个擦除单位区域是否满足擦除条件。所述选择单元在所述多个擦除单位区域满足所述擦除条件时从所述多个擦除单位区域选择待擦除区域。所述擦除单元擦除写入到所述待擦除区域的所述数据。

附图说明

图1是展示根据第一实施例包含高速缓冲存储器装置的信息处理装置的配置实例的 框图;

图2是展示第一实施例的第一高速缓存控制的实例的流程图;

图3是展示第一实施例的第二高速缓存控制的实例的流程图;

图4是展示第一实施例的第三高速缓存控制的实例的流程图;

图5是展示第一实施例的第四高速缓存控制的实例的流程图;

图6是展示根据第二实施例的信息处理系统的配置实例的框图;

图7是展示根据第二实施例由信息处理系统执行的过程的实例的流程图;

图8是展示根据第三实施例的信息处理系统的详细配置的实例的框图;及

图9是展示根据第三实施例的存储系统的实例的透视图。

具体实施方式

下文将参考图式来描述实施例。在以下描述中,相同参考编号表示具有几乎相同功能及布置之组件,且在必要时,将对所述组件给出重复描述。

[第一实施例]

在本实施例中描述包含非易失性高速缓冲存储器的高速缓冲存储器装置。

在本实施例中,在所述非易失性高速缓冲存储器中每擦除单位区域地共同擦除数据。所述擦除单位区域包含多个写入单位区域及多个读取单位区域。

在本实施例中,使用NAND快闪存储器作为非易失性高速缓冲存储器及非易失性存储器。然而,所述非易失性高速缓冲存储器及所述非易失性存储器中的每一者均可为除NAND快闪存储器之外的存储器,前提是所述存储器满足所述擦除单位区域、所述写入单位区域及所述读取单位区域当中的上述关系。

当所述非易失性高速缓冲存储器及所述非易失性存储器为NAND快闪存储器时,所述擦除单位区域对应于一块。所述写入单位区域及所述读取单位区域对应于一页。

在本实施例中,举例来说,可以例如两个块的另一单位来控制所述擦除单位区域,这允许共同地擦除数据。

在本实施例中,存取指示将数据写入到存储器装置及从存储器装置读取数据两者。

图1是展示根据本实施例包含高速缓冲存储器装置的信息处理装置的配置实例的框图。

信息处理系统35包含信息处理装置17及SSD 5。信息处理装置17可为对应于SSD5的主机装置。

信息处理装置17包含处理器2、存储器3及非易失性高速缓冲存储器4。SSD 5可 包含于信息处理装置17中,或可连接到信息处理装置17以便经由网络等发射及接收数据。代替SSD 5,可使用例如硬盘驱动器(HDD)等另一非易失性存储器装置。

信息处理装置17包含高速缓冲存储器装置,所述高速缓冲存储器装置包含高速缓存控制单元9、存储管理信息61到64的存储器3及非易失性高速缓冲存储器4。然而,可在信息处理装置17之外提供高速缓存控制单元9、管理信息61到64、存储器3及非易失性高速缓冲存储器4的全部或一部分。

非易失性高速缓冲存储器4包含块群组BG1到BG4。非易失性高速缓冲存储器4具有比SSD 5的存取速度高的存取速度。

块群组(第一群组)BG1包含块(第一擦除单位区域)B1,1到B1,K。块群组BG1存储由处理器2存取的数据(即,由处理器2使用的数据)。

在本实施例中,当块群组BG1满足擦除条件(第一擦除条件)时,基于先进先出(FIFO)而从块群组BG1中的块B1,1到B1,K选择待擦除块(待丢弃或推出块)(第一待擦除区域)。

举例来说,当块群组BG1的块B1,1到B1,K中的每一者的数据量超过预定值时,满足擦除条件。举例来说,当写入到块群组BG1的块B1,1到B1,K中的每一者的页数目超过预定数目时,可满足擦除条件。

当写入到基于FIFO而选自块B1,1到B1,K的待擦除块的数据处于第一低使用状态时(举例来说,当所述数据被存取达少于所设定第一次数或以小于所设定第一频率被存取时),将所述数据写入到块群组BG2。相比之下,当写入到选自块B1,1到B1,K的待擦除块的数据处于第一高使用状态时(举例来说,当所述数据被存取达第一次数或更多或以第一频率或更大被存取时),将所述数据写入到块群组BG3。写入到选自块B1,1到B1,K的待擦除块的数据是每块地被擦除(即,丢弃或推出)。

块群组(第二群组)BG2包含块(第二擦除单位区域)B2,1到B2,L。块群组BG2存储写入到选自块群组BG1的待擦除块的数据中的处于第一低使用状态的数据。

在本实施例中,当块群组BG2满足擦除条件(第三擦除条件)时,基于FIFO而从块群组BG2中的块B2,1到B2,L选择待擦除块(第三待擦除区域)。

当写入到依据FIFO而选自块B2,1到B2,L的待擦除块的数据处于第三低使用状态时(举例来说,当所述数据被存取达少于所设定第三次数或以小于所设定第三频率被存取时),擦除所述数据。相比之下,当写入到选自块B2,1到B2,L的待擦除块的数据处于第三高使用状态时(举例来说,当所述数据被存取达第三次数或更多或以第三频率或更大被 存取时),将所述数据写入到块群组BG3。随后,写入到选自块B2,1到B2,L的待擦除块的数据被每块地擦除。

块群组(第三群组)BG3包含块(第三擦除单位区域)B3,1到B3,M。块群组BG3存储写入到选自块群组BG1的待擦除块的数据中的处于第一低使用状态的数据。块群组BG3还存储写入到选自块群组BG2的待擦除块的数据中的处于第三高使用状态的数据。

在本实施例中,当块群组BG3满足擦除条件(第二擦除条件)时,基于FIFO而从块群组BG3中的块B3,1到B3,M选择待擦除块(第二待擦除区域)。

当写入到依据FIFO而选自块B3,1到B3,M的待擦除块的数据处于第二低使用状态时(举例来说,当所述数据被存取达少于所设定第二次数或以小于所设定第二频率被存取时),将所述数据写入到块群组BG4。相比之下,当写入到选自块B3,1到B3,M的待擦除块的数据处于第二高使用状态时(举例来说,当所述数据被存取达第二次数或更多或以第二频率或更大被存取时),再次将所述数据写入到块群组BG3中的另一块。随后,写入到选自块B3,1到B3,M的待擦除块的数据被每块地擦除。

块群组(第四群组)BG4包含块(第四擦除单位区域)B4,1到B4,N,块群组BG4存储写入到选自块群组BG3的待擦除块的数据中的处于第二低使用状态的数据。

在本实施例中,当块群组BG4满足擦除条件(第四擦除条件)时,基于FIFO而从块群组BG4中的块B4,1到B4,N选择待擦除块(第四待擦除区域)。

擦除写入到依据FIFO而选自块B4,1到B4,N的待擦除块的数据。

在本实施例中,FIFO用作用于从块群组BG1到BG4中的每一者选择待擦除块的方法。通过依据FIFO选择待擦除块,在块群组BG1到BG4中的每一者中从具有与最旧写入时间及写入次序的块开始循序地执行擦除。然而,举例来说,可随机地或基于最近最少使用(LRU)或最不经常使用(LFU)来选择待擦除块。举例来说,管理信息61到64包含数据的识别信息、指示数据是否为待删除数据的信息及数据的使用状态信息。可基于管理信息61到64而选择具有最大无效数据量的块或具有大于预定量的无效数据量的块作为待擦除块。举例来说,可基于管理信息61到64而选择具有最大无效数据及待删除数据(删除目标数据)量的块或具有大于预定量的无效数据及待删除数据量的块作为待擦除块。

存储器3存储各种类型的控制数据,例如管理信息(列表)61到64及地址转换信息7。存储器3可为例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)等易 失性存储器,或者可为非易失性存储器。存储器3可包含于非易失性高速缓冲存储器4中。

在本实施例中,高速缓存控制单元9可基于管理信息61到64及地址转换信息7而辨识经高速缓存数据的识别信息(举例来说,从主机提供的逻辑地址(举例来说,逻辑块寻址))、所述数据被写入到的位置及所述数据的使用状态。举例来说,高速缓存控制单元9可基于管理信息61到64及地址转换信息7而选择高速缓存到块群组BG1到BG4中的每一者的数据及依据FIFO擦除的块。

管理信息61到64分别是写入到块群组BG1到BG4的数据的元数据。举例来说,管理信息61到64包含指示处理器2对相应数据的使用状态的信息。举例来说,管理信息61到64包含相应数据的识别信息、指示数据是否为待删除数据的删除信息、指示数据是否为有效数据的有效/无效信息及用以确定是否满足用于擦除块的擦除条件的高速缓存确定信息。

所述删除信息是指示发布对数据的删除命令的信息。更具体来说,所述删除信息是指示从由处理器2执行的应用程序或操作系统(OS)接收到对数据的删除命令的信息等。在本实施例中,举例来说,所述删除信息包含使每一块的识别信息与指示写入到每一块的待删除数据的逻辑地址相关的信息。

所述有效/无效信息是指示例如当将相同数据写入到多个位置时最新数据是有效数据且除最新数据之外的数据是无效数据的信息。换句话说,例如,在执行对写入到非易失性高速缓冲存储器4的数据的更新的情况中,有效数据是经更新数据。举例来说,在执行更新的情况中,无效数据是未经更新的数据。在本实施例中,举例来说,所述有效/无效信息包含使每一块的识别信息与指示写入到每一块的有效数据或无效数据的逻辑地址相关的信息。

所述高速缓存确定信息是例如包含每数据的写入信息及读取信息中的至少一者或每块的写入信息及读取信息中的至少一者的信息等。

举例来说,写入信息包含写入时间、写入次数、写入频率及写入次序中的至少一者。

举例来说,读取信息包含读取时间、读取次数、读取频率及读取次序中的至少一者。

举例来说,地址转换信息7使数据的逻辑地址与非易失性高速缓冲存储器4的对应于所述逻辑地址的物理地址相关(举例来说,物理块寻址)。举例来说,地址转换信息7是以表形式来管理的。

处理器2通过执行存储于处理器2的存储器、存储器3、非易失性高速缓冲存储器4或SSD 5中的程序而充当地址转换单元8及高速缓存控制单元9。

在本实施例中,举例来说,用以致使处理器2充当地址转换单元8及高速缓存控制单元9的程序可为OS、中间件或固件。在本实施例中,可通过硬件来实施地址转换单元8的全部或一部分或者高速缓存控制单元9的全部或一部分。

地址转换单元8产生使写入数据的逻辑地址与指示非易失性高速缓冲存储器4中的存储所述写入数据的位置的物理地址相关的信息,且将所产生信息寄存到地址转换信息7。

当从处理器2接收到读取数据的逻辑地址时,地址转换单元8基于地址转换信息7而将逻辑地址转换为物理地址。

高速缓存控制单元9为存取速度高于SSD 5的存取速度的非易失性高速缓冲存储器4执行高速缓存控制。举例来说,高速缓存控制单元9通过透写方法或回写方法来管理数据以及指示所述数据的逻辑地址及物理地址。

在透写方法中,数据是存储于非易失性高速缓冲存储器4中且也存储于SSD 5中。

在回写方法中,存储于非易失性高速缓冲存储器4中的数据并非一起存储于SSD 5中。首先将所述数据存储于非易失性高速缓冲存储器4中,且随后将从非易失性高速缓冲存储器4推出的数据存储于SSD 5中。

高速缓存控制单元9包含产生单元10、控制单元11到14以及变化单元15及16。

产生单元10产生对应于块群组BG1到BG4的管理信息61到64并将管理信息61到64写入到存储器3。

控制单元11到14分别为块群组BG1到BG4控制数据写入及块擦除。

控制单元11包含写入单元111、确定单元112、选择单元113、确定单元114及擦除单元115。

写入单元(第一写入单元)111将由处理器2存取的数据写入到块群组BG1

确定单元(第一确定单元)112确定块群组BG1是否满足擦除条件(第一擦除条件)。

当块群组BG1满足擦除条件时,选择单元(第一选择单元)113从块群组BG1选择待擦除块(第一待擦除区域)。

确定单元(第二确定单元)114基于管理信息61而确定写入到待擦除块的每一数据项是处于第一高使用状态还是第一低使用状态及所述数据的每一项是否为待删除数据。

当写入到待擦除块的每一数据项可因每一数据项被写入到块群组BG2到BG3或是待删除数据而被丢弃时,擦除单元(第一擦除单元)115擦除待擦除块。

控制单元12包含写入单元121、确定单元122、选择单元123、确定单元124及擦 除单元125。

当确定单元114确定写入到块群组BG1的待擦除块的数据处于第一低使用状态且并非待删除数据时,写入单元(第二写入单元)121将所述数据写入到块群组BG2

确定单元(第五确定单元)122确定块群组BG2是否满足擦除条件(第三擦除条件)。

当块群组BG2满足擦除条件时,选择单元(第三选择单元)123从块群组BG2选择待擦除块(第三待擦除区域)。

确定单元124基于管理信息62而确定写入到待擦除块的每一数据项是处于第三高使用状态还是第三低使用状态及所述数据的每一项是否为待删除数据。

当处于第三高使用状态且并非待删除数据的写入到待擦除块的数据被写入到块群组BG3时,擦除单元(第二擦除单元)125擦除写入到待擦除块的数据。

控制单元13包含写入单元131、确定单元132、选择单元133、确定单元134、写入单元135、擦除单元136及写入单元137。

当确定单元114确定写入到块群组BG1的待擦除块的数据处于第一高使用状态且并非待删除数据时,写入单元(第三写入单元)131将所述数据写入到块群组BG3

当写入到块群组BG2的数据处于第三高使用状态且并非待删除数据时,写入单元(第六写入单元)137将所述数据写入到块群组BG3。举例来说,当写入到块群组BG2的数据是待由处理器2存取的数据时,写入单元137可将块群组BG2的待存取数据写入到块群组BG3

确定单元(第三确定单元)132确定块群组BG3是否满足擦除条件(第二擦除条件)。

当块群组BG3满足擦除条件时,选择单元(第二选择单元)133从块群组BG3选择待擦除块(第二待擦除区域)。

确定单元(第四确定单元)134基于管理信息63而确定写入到待擦除块的每一数据项是处于第二高使用状态还是第二低使用状态及所述数据的每一项是否为待删除数据。

当写入到块群组BG3的待擦除块的数据被确定为处于第二高使用状态且并非待删除数据时,写入单元(第五写入单元)135再次将所述数据写入到块群组BG3中的另一可写入块。

当写入到待擦除块的数据的每一项可因每一数据项被写入到块群组BG4、再次被写入到块群组BG3或是待删除数据而被丢弃时,擦除单元(第三擦除单元)136擦除待擦除块。

控制单元14包含写入单元141、确定单元142、选择单元143及擦除单元144。

当确定单元134确定写入到块群组BG3的待擦除块的数据处于第二低使用状态且并非待删除数据时,写入单元(第四写入单元)141将所述数据写入到块群组BG4

确定单元(第六确定单元)142确定块群组BG4是否满足擦除条件(第四擦除条件)。

当块群组BG4满足擦除条件(第四擦除条件)时,选择单元(第四选择单元)143从块群组BG4选择待擦除块(第四待擦除区域)。

擦除单元(第四擦除单元)144擦除写入到块群组BG4的待擦除块的数据。

当写入到块群组BG2的数据达到第三高使用状态时,变化单元(第一变化单元)15增加块群组BG1中所包含的块的数目且减少块群组BG3中所包含的块的数目。举例来说,当写入到块群组BG2的数据由处理器2存取时,变化单元15增加块群组BG1中所包含的块的数目且减少块群组BG3中所包含的块的数目。

当写入到块群组BG4的数据达到第四高使用状态时,变化单元(第二变化单元)16增加块群组BG3中所包含的块的数目且减少块群组BG1中所包含的块的数目。举例来说,当写入到块群组BG4的数据由处理器2存取时,变化单元16增加块群组BG3中所包含的块的数目且减少块群组BG1中所包含的块的数目。

图2是展示根据本实施例的第一高速缓存控制的实例的流程图。图2示范性地展示其中将数据写入到块群组BG1、将数据写入到块群组BG2或BG3并擦除块群组BG1中的待擦除块的过程。

在步骤S201中,写入单元111将由处理器2存取的数据写入到块群组BG1

在步骤202中,确定单元112确定块群组BG1是否满足擦除条件。

当块群组BG1不满足擦除条件时,所述过程继续进行到步骤S206。

当块群组BG1满足擦除条件时,在步骤S203中,选择单元113从块群组BG1选择待擦除块。

在步骤S204中,确定单元114基于管理信息61而确定写入到待擦除块的每一数据项是处于第一高使用状态还是第一低使用状态及所述数据的每一项是否为待擦除数据(删除目标数据)。

当数据项处于第一低使用状态且数据并非待删除数据(非删除目标数据)时,在步骤S301中,写入单元121将所述数据项写入到块群组BG2

当数据项处于第一高使用状态且数据并非待删除数据时,在步骤S401中,写入单 元131将所述数据项写入到块群组BG3

当写入到待擦除块的数据的每一项可因数据的每一项被写入到块群组BG2或块群组BG3或是待删除数据而被丢弃时,在步骤S205中,擦除单元115擦除待擦除块。

在步骤S206中,高速缓存控制单元9确定是否将结束所述过程。

当高速缓存控制单元9不结束所述过程时,所述过程返回到步骤S201。

当高速缓存控制单元9结束所述过程时,所述过程便结束。

图3是展示根据本实施例的第二高速缓存控制的实例的流程图。图3示范性地展示其中将数据写入到块群组BG2并擦除块群组BG2中的待擦除块的过程。

当在步骤S204中,写入到块群组BG1的待擦除块的数据被确定为处于第一低使用状态且并非待删除数据时,在步骤S301中,写入单元121将所述数据写入到块群组BG2

在步骤S302中,确定单元122确定块群组BG2是否满足擦除条件。

当块群组BG2不满足擦除条件时,所述过程继续进行到步骤S306。

当块群组BG2满足擦除条件时,在步骤S303中,选择单元123从块群组BG2选择待擦除块。

在步骤S304中,确定单元124基于管理信息62而确定写入到待擦除块的每一数据项是处于第三高使用状态还是第三低使用状态及所述数据的每一项是否为待删除数据。

当数据项处于第三低使用状态或是待删除数据时,所述过程继续进行到步骤S305。

当数据项处于第三高使用状态且并非待删除数据时,在步骤S401中,写入单元137将所述数据项写入到块群组BG3

在步骤S305中,擦除单元125擦除写入到块群组BG2的待擦除块的数据。

在步骤S306中,高速缓存控制单元9确定是否将结束所述过程。

当高速缓存控制单元9不结束所述过程时,所述过程返回到步骤S301。

当高速缓存控制单元9结束所述过程时,所述过程便结束。

图4是展示根据本实施例的第三高速缓存控制的实例的流程图。图4示范性地展示从将数据写入到块群组BG3到擦除块群组BG3中的数据的过程。

当在步骤S204中,写入到块群组BG1的待擦除块的数据被确定为处于第一高使用状态且并非待删除数据时,在步骤S401中,写入单元131将所述数据写入到块群组BG3。当在步骤S304中,写入到块群组BG2的数据被确定为处于第三高使用状态(举例来说,所述数据由处理器2存取)且并非待删除数据时,写入单元137将块群组BG2的数据写 入到块群组BG3

在步骤S402中,确定单元132确定块群组BG3是否满足擦除条件。

当块群组BG3不满足擦除条件时,所述过程继续进行到步骤S407。

当块群组BG3满足擦除条件时,在步骤S403中,选择单元133从块群组BG3选择待擦除块。

在步骤S404中,确定单元134基于管理信息63而确定写入到待擦除块的每一数据项是处于第二高使用状态还是第二低使用状态及所述数据的每一项是否为待删除数据。

当数据项处于第二低使用状态且并非待删除数据时,在步骤S501中,写入单元141将所述数据写入到块群组BG4

当数据处于第二高使用状态且并非待删除数据时,在步骤S405中,写入单元135再次将写入到块群组BG3的待擦除块的数据写入到块群组BG3中的另一块。

在步骤S406中,当写入到待擦除块的数据的每一项可因每一数据项被写入到块群组BG4、再次写入到块群组BG3或是待删除数据而被丢弃时,擦除单元136擦除待擦除块。

在步骤S407中,高速缓存控制单元9确定是否将结束所述过程。

当高速缓存控制单元9不结束所述过程时,所述过程返回到步骤S401。

当高速缓存控制单元9结束所述过程时,所述过程便结束。

图5是展示根据本实施例的第四高速缓存控制的实例的流程图。图5示范性地展示其中将数据写入到块群组BG4并擦除块群组BG4中的数据的过程。

当在步骤S404中,写入到块群组BG3的待擦除块的数据被确定为处于第二低状态且并非待删除数据时,在步骤S501中,写入单元141将所述数据写入到块群组BG4

在步骤S502中,确定单元142确定块群组BG4是否满足擦除条件。

当块群组BG4不满足擦除条件时,所述过程继续进行到步骤S505。

当块群组BG4满足擦除条件时,在步骤S503中,选择单元143从块群组BG4选择待擦除块。

在步骤S504中,擦除单元144擦除写入到块群组BG4中的待擦除块的数据。

在步骤S505中,高速缓存控制单元9确定是否将结束所述过程。

当高速缓存控制单元9不结束所述过程时,所述过程返回到步骤S501。

当高速缓存控制单元9结束所述过程时,所述过程便结束。

在本实施例的块群组BG1中,举例来说,数据是首先写入到块B1,1、接下来循序写入到块B1,2,且随后类似地写入到块B1,3到B1,K。当块群组BG1中所包含的块B1,1到B1,K的数据量超过预定数据量时,其中依据FIFO而擦除写入首先完成的块B1,1,且再次将数据循序写入到经擦除块B1,1。在完成向块B1,1的写入之后,依据FIFO而擦除块B1,2。随后,再次将数据循序写入到经擦除块B1,2。重复相同控制。

在块群组BG1中,基于管理信息61而确定写入到块群组BG1中的待擦除块的数据是否(例如)被存取达少于第一次数或以小于第一频率被存取。当写入到块群组BG1中的待擦除块的数据被存取达少于第一次数或以小于第一频率被存取时,选择块群组BG2作为数据的写入目的地。

相比之下,当写入到块群组BG1中的待擦除块的数据被存取达第一次数或更多或以第一频率或更大被存取时,选择块群组BG3作为数据的写入目的地。

当写入到块群组BG1中的待擦除块的数据是待删除数据时,丢弃所述数据。

在本实施例的块群组BG2中,来自块群组BG1的处于第一低使用状态的数据被首先循序写入到块B2,1、接下来循序写入到块B2,2,且随后类似地写入到块B2,3到B2,L。当块群组BG2中所包含的块B2,1到B2,L的数据量超过预定数据量时,依据FIFO而擦除其中写入首先完成的块B2,1且再次将数据循序写入到经擦除块B2,1。在完成向块B2,1的写入之后,依据FIFO而擦除块B2,2。随后,将数据循序写入到经擦除块B2,2。重复相同控制。

在块群组BG2中,基于管理信息62而确定写入到块群组BG2中的待擦除块的数据是否(例如)被存取达少于第三次数或以小于第三频率被存取。当写入到块群组BG2中的待擦除块的数据被存取达少于第三次数或以小于第三频率被存取时,擦除所述数据。

相比之下,当写入到块群组BG2中的待擦除块的数据被存取达第三次数或更多或以第三频率或更大被存取时,选择块群组BG3作为数据的写入目的地。

当写入到块群组BG2中的待擦除块的数据是待删除数据时,丢弃所述数据。

在本实施例的块群组BG3中,来自块群组BG1的处于第一高使用状态的数据、来自块群组BG2的处于第三高使用状态的数据或来自块群组BG3的重新写入数据被首先循序写入到块B3,1、接下来循序写入到块B3,2,且随后类似地写入到块B3,3到B3,M。当块群组BG3中所包含的块B3,1到B3,M的数据量超过预定数据量时,依据FIFO而擦 除其中写入首先完成的块B3,1且再次将数据循序写入到经擦除块B3,1。在完成向块B3,1的写入之后,依据FIFO而擦除块B3,2。随后,再次将数据循序写入到经擦除块B3,2。重复相同控制。

在块群组BG3中,基于管理信息63而确定写入到块群组BG3中的待擦除块的数据是否(例如)被存取达少于第二次数或以小于第二频率被存取。当写入到块群组BG3中的待擦除块的数据被存取达少于第二次数或以小于第二频率被存取时,选择块群组BG4作为数据的写入目的地。

相比之下,当写入到块群组BG3中的待擦除块的数据被存取达第二次数或更多或以第二频率或更大被存取时,再次将数据写入到块群组BG3

当写入到块群组BG3中的待擦除块的数据是待删除数据时,丢弃所述数据。

在本实施例的块群组BG4中,来自块群组BG3的处于第二低使用状态的数据被首先循序写入到块B4,1、接下来循序写入到块B4,2,且随后类似地写入到块B4,3到B4,N。当块群组BG4中所包含的块B4,1到B4,N的数据量超过预定数据量时,依据FIFO而擦除其中写入首先完成的块B4,1且再次将数据循序写入到经擦除块B4,1。在完成向块B4,1的写入之后,依据FIFO而擦除块B4,2。随后,将数据循序写入到经擦除块B4,2。重复相同控制。

在本实施例中,控制单元14可确定写入到块群组BG4的待擦除块的数据是否处于第五高使用状态。当写入到块群组BG4的待擦除块的数据被确定为处于第五高使用状态时,就将所述数据维持于非易失性高速缓冲存储器4中来说,控制单元13可将所述数据写入到块群组BG3的可写入目的地块。在此情况中,处理器2可减小块群组BG1的大小。

在本实施例中,基于四个块群组BG1到BG4而管理数据。

举例来说,在块群组BG1中管理由处理器2存取一次的第一数据(经一次存取数据)。

举例来说,如果块群组BG1中的第二数据由处理器2存取两次或更多次且基于FIFO而被从块群组BG1推出,那么将第二数据从块群组BG1移动到块群组BG3

应注意,在本实施例中,块群组BG1的大小大于块群组BG3的大小。

举例来说,当块群组BG1中的第三数据在未由处理器2存取的情况下基于FIFO而被从块群组BG1推出时,将第三数据从块群组BG1移动到块群组BG2

举例来说,如果块群组BG3中的第四数据在未由处理器2存取的情况下基于FIFO 而被从块群组BG3清除,那么将第四数据从块群组BG3移动到块群组BG4

举例来说,在块群组BG2及BG4中,可高速缓存元数据而非高速缓存数据。元数据包含与数据相关的信息。换句话说,元数据是关于数据的高度抽象且额外的数据且被附加到所述数据。

在本实施例中,举例来说,当第五数据存储于块群组BG1中时,可基于FIFO而推出块群组BG2中的第六数据。

举例来说,当块群组BG1中的第七数据被存取且基于FIFO而被从块群组BG1推出时,可将第七数据从块群组BG1移动到块群组BG3,可基于FIFO而将块群组BG3中的第八数据从块群组BG3移动到块群组BG4,且可基于FIFO而从块群组BG4推出块群组BG4中的第九数据。

举例来说,当存取块群组BG2中的第十数据时,会增加块群组BG1的大小。如果块群组BG1的大小增加,那么基于FIFO而将块群组BG3中的第十一数据移动到块群组BG4

举例来说,当块群组BG4中的第十二数据被存取且基于FIFO而被从块群组BG4推出时,将第十二数据移动到块群组BG3,且会减小块群组BG1的大小。

在上文所述的本实施例中,维持确定对是否将维持块单位的数据进行确定,传送写入将待维持的块数据写入到目的地块,且写入到非易失性高速缓冲存储器4的数据是每块地予以擦除。

在本实施例中,可增加有效高速缓存容量,可提升非易失性高速缓冲存储器4的位速率,且可增加信息处理装置17的速度。

在本实施例中,在不为非易失性高速缓冲存储器4执行无用单元收集(garbage collection)的情况下,可避免性能的降低。由于无用单元收集并非是必需的,因此可减少向非易失性高速缓冲存储器4的写入次数且可增加非易失性高速缓冲存储器4的寿命。此外,由于无用单元收集并非是必需的,因此不需要保证有设置区域(provisioning area)。因此,可增加可用作高速缓冲存储器的数据容量,且可提高使用效率。

举例来说,当使用非易失性存储器作为高速缓冲存储器且无论块的边界如何都丢弃数据时,可频繁地执行无用单元收集以将非易失性存储器的块中的有效数据移动到另一块。在本实施例中,不需要在非易失性高速缓冲存储器4中执行无用单元收集。因此,如上文所描述,在本实施例中,可增加非易失性高速缓冲存储器4的寿命。

[第二实施例]

本实施例是第一实施例的经修改实例。在本实施例中,描述在包含高速缓存控制单元9的信息处理装置17与SSD 5之间的数据及信息发射及接收。

在本实施例中,使用逻辑地址作为数据的识别信息。然而,可通过其它信息来识别数据。

图6是展示根据本实施例的信息处理系统35的配置实例的框图。

除第一实施例中所描述的组成要素以外,高速缓存控制单元9进一步包含发射单元18、接收单元19、写入单元20及发射单元21。

发射单元18向SSD 5发射用于SSD 5的写入数据及所述写入数据的地址。在本实施例中,举例来说,从发射单元18发射到SSD 5的地址为逻辑地址。

接收单元19从SSD 5接收包含指示写入到待经受无用单元收集的块的有效数据的逻辑地址的块信息。

在本实施例中,所述块信息可包含使SSD 5中的每一块的识别信息与写入到每一块的数据的识别信息相关的信息。

写入单元20基于从SSD 5接收的块信息及管理信息61到64而将由块信息中所包含的逻辑地址指示的有效数据的全部或一部分写入(转录)到除非易失性存储器24之外的存储器。举例来说,另一存储器可为非易失性高速缓冲存储器4。

举例来说,在接收到删除命令的情况下,写入单元20将指示是待删除数据(删除候选者)的数据的逻辑地址从块信息中所包含的指示有效数据的逻辑地址排除。因此,可选择写入到待经受无用单元收集的块且并非待删除数据的有效数据。写入单元20将选定数据写入到另一存储器。

发射单元21产生包含指示待删除数据的逻辑地址的删除信息并将所述删除信息发射到SSD 5。举例来说,所述删除信息可包含指示块信息中所包含的有效数据的逻辑地址中指示是未被写入单元20写入到另一存储器的删除目标的数据的逻辑地址。代替删除信息,可将包含待维持数据的逻辑地址的维持信息从发射单元21发射到SSD 5。

SSD 5包含处理器22、存储器23及非易失性存储器24。

举例来说,存储器23存储各种类型的控制数据,例如地址转换信息32、有效/无效信息33及删除信息34。存储器23可为例如DRAM或SRAM等易失性存储器,或者可为非易失性存储器。存储器23可包含于非易失性存储器24中。

处理器22通过执行存储于处理器22中的存储器中的程序、存储于存储器23中的程序或存储于非易失性存储器24中的程序而充当地址转换单元25、写入单元26、有效/无效产生单元27、选择单元28、发射单元29、接收单元30及无用单元收集单元31。

在本实施例中,举例来说,用以致使处理器22充当地址转换单元25、写入单元26、有效/无效产生单元27、选择单元28、发射单元29、接收单元30及无用单元收集单元31的程序可为OS、中间件或固件。在本实施例中,可通过硬件来实施地址转换单元25、写入单元26、有效/无效产生单元27、选择单元28、发射单元29、接收单元30及无用单元收集单元31的全部或一部分。

当从高速缓存控制单元9接收到写入数据及所述写入数据的逻辑地址时,地址转换单元25产生使写入数据的逻辑地址与指示非易失性存储器24中的存储所述写入数据的位置的物理地址相关的信息,且将所述信息寄存到地址转换信息32。

在本实施例中,地址转换单元25由处理器22实施。然而,地址转换单元25可与处理器22分开而配置。

地址转换单元25基于(例如)表形式地址转换信息32而转换地址。代替地,可通过关键字-值检索来转换地址。举例来说,可通过使用逻辑地址作为关键字并使用物理地址作为值而借助于关键字-值检索来实施地址转换。

写入单元26将写入数据写入到由地址转换单元25获得的物理地址所指示的位置。

有效/无效产生单元27基于例如地址转换信息32而产生指示写入到非易失性存储器24的数据的每一项是有效数据还是无效数据的有效/无效信息33。随后,有效/无效产生单元27将有效/无效信息33存储于存储器23中。

选择单元28选择待经受无用单元收集的块。

举例来说,选择单元28可从非易失性存储器24中的块选择具有最旧写入时间的块来作为待经受无用单元收集的块。

举例来说,选择单元28可随机地从非易失性存储器24中的块选择待经受无用单元收集的块。

举例来说,选择单元28可基于有效/无效信息33而选择具有最大无效数据量或具有大于预定量的无效数据量作为待经受无用单元收集的块。

举例来说,选择单元28可基于有效/无效信息33及删除信息34而选择具有最大无效数据及待删除数据量或具有大于预定量的无效数据及待删除数据量的块作为待经受无用单元收集的块。

发射单元29通过将指示由有效/无效信息33确定为无效的无效数据的逻辑地址从指示写入到待经受无用单元收集的块的数据的逻辑地址删除而产生块信息。换句话说,所述块信息包含使待经受无用单元收集的块的识别信息与指示写入到所述块的有效数据的逻辑地址相关的信息。发射单元29将所述块信息发射到高速缓冲存储器控制单元9。

接收单元30从高速缓冲存储器控制单元9接收删除信息并将删除信息34存储于非易失性存储器24中。

无用单元收集单元31基于有效/无效信息33及存储于非易失性存储器24中的删除信息34而将无效数据及待删除数据从写入到待经受无用单元收集的块的数据排除,且仅为并非待删除数据的有效数据执行无用单元收集。

图7是展示根据本实施例由信息处理系统执行的过程的实例的流程图。

在步骤S701中,发射单元18将写入数据及逻辑地址发射到SSD 5。

在步骤S702中,地址转换单元25接收写入数据及逻辑地址,并将使写入数据的逻辑地址与物理地址相关的信息寄存到地址转换信息32。

在步骤S703中,写入单元26将写入数据写入到非易失性存储器24中的由所述物理地址指示的位置。

在步骤S704中,有效/无效产生单元27产生指示写入到非易失性存储器24的每一数据项是有效数据还是无效数据的有效/无效信息33并将有效/无效信息33存储于存储器23中。

在步骤S705中,选择单元28选择待经受无用单元收集的块。

在步骤S706中,发射单元29通过将指示由有效/无效信息33指示为无效的无效数据的逻辑地址从指示写入到待经受无用单元收集的块的数据的逻辑地址删除而产生块信息,并将所述块信息发射到高速缓存控制单元9。

在步骤S707中,接收单元19从SSD 5接收块信息。

在步骤S708中,写入单元20基于从SSD 5接收的块信息以及管理信息61到64而将由块信息中所包含的逻辑地址指示的数据的全部或一部分写入到除SSD 5的非易失性存储器24之外的存储器。

举例来说,在接收到删除命令的情况下,写入单元20将指示待删除数据的逻辑地址从块信息中所包含的逻辑地址排除,并将由所述逻辑地址指示的待维持数据写入到另一存储器。

在步骤S709中,发射单元21将包含待删除数据的逻辑地址的删除信息发射到SSD5。

在步骤S710中,接收单元30从高速缓存控制单元9接收删除信息并将删除信息34存储于存储器23中。

在步骤S711中,无用单元收集单元31基于有效/无效信息33及删除信息34而将无效数据及待删除数据数据从写入到待经受无用单元收集的块的数据排除,且针对并非待 删除数据的有效数据执行无用单元收集。

在上文所描述的本实施例中,高速缓存控制单元9可从SSD 5获取关于写入到非易失性存储器24的块的数据的信息。高速缓存控制单元9可借此辨识数据在非易失性存储器24的块中的写入状态。举例来说,在本实施例中,可辨识写入到非易失性存储器24的块的数据是有效数据还是无效数据及是否可删除所述数据。

在本实施例中,SSD 5包含用以确定数据是有效数据还是无效数据的有效/无效信息33及用以确定是否可删除数据的删除信息34。借此,可在于SSD 5中执行无用单元收集时确定是否将擦除写入到待经受无用单元收集的块的数据。因此,可避免非必需数据写入且可增加非易失性存储器24的寿命。

在本实施例中,高速缓存控制单元9可防止由从SSD 5接收的块信息中所包含的逻辑地址指示的有效数据当中的删除目标数据被从非易失性存储器24转录到另一存储器。在本实施例中,SSD 5可将并未从高速缓存控制单元9转录到另一存储器的数据(举例来说,可删除的无效数据或有效数据)从SSD 5删除。

在上文所描述的本实施例中,将与待擦除块相关的块信息从SSD 5发射到信息处理装置17。然而,举例来说,所述块信息可包含使非易失性存储器24中的每一块与写入到每一块的数据的识别信息相关的信息。信息处理装置17可通过从SSD 5接收关系信息来辨识SSD 5中的块与数据之间的存储关系。

[第三实施例]

在本实施例中,进一步详细地解释包含第一实施例及第二实施例中所解释的信息处理系统17及SSD 5的信息处理系统35。

图8是展示根据本实施例的信息处理系统35的详细结构的实例的框图。

信息处理系统35包含信息处理装置17及存储器系统37。

根据第一实施例及第二实施例的SSD 5对应于存储器系统37。

SSD 5的处理器22对应于CPU 43B。

地址转换信息32对应于LUT(查找表)45。

存储器23对应于DRAM 47。

信息处理装置17充当主机装置。

存储器系统37的控制器36包含前端4F及后端4B。

前端(主机通信单元)4F包含主机接口41、主机接口控制器42、编码/解码单元(高级加密标准(AES))44及CPU 43F。

主机接口41与信息处理装置17通信以交换请求(写入命令、读取命令、擦除命令)、 LBA(逻辑块寻址)及数据。

主机接口控制器(控制单元)42基于CPU 43F的控制而控制主机接口41的通信。

编码/解码单元44对在数据写入操作中从主机接口控制器42发射的写入数据(明文)进行编码。编码/解码单元44对在数据读取操作中从后端4B的读取缓冲器RB发射的经编码读取数据进行解码。应注意,可按照临时命令而在不使用编码/解码单元44的情况下执行写入数据及读取数据的发射。

CPU 43F控制前端4F的以上组件41、42及44,以控制前端4F的整个功能。

后端(存储器通信单元)4B包含写入缓冲器WB、读取缓冲器RB、LUT 45、DDRC 46、DRAM 47、DMAC 48、ECC 49、随机函数发生器RZ、NANDC 50及CPU 43B。

写入缓冲器(写入数据传送单元)WB暂时地存储从信息处理装置17发射的写入数据。具体来说,写入缓冲器WB暂时地存储所述数据直到其达到适合于非易失性存储器24的预定数据大小为止。

读取缓冲器(读取数据传送单元)RB暂时地存储从非易失性存储器24读取的读取数据。具体来说,读取缓冲器RB将读取数据重新布置为适合于信息处理装置17的次序(由信息处理装置17指定的逻辑地址LBA的次序)。

LUT 45是用以将逻辑地址LBA转换成物理地址PBA(物理块寻址)的数据。

DDRC 46控制DRAM 47中的双倍数据速率(DDR)。

DRAM 47是存储例如LUT 45的非易失性存储器。

直接存储器存取控制器(DMAC)48经由内部总线IB传送写入数据及读取数据。在图8中,展示了仅单个DMAC 48;然而,控制器36可包含两个或两个以上DMAC 48。DMAC 48可设定于控制器36内部的各种位置中。

ECC(错误校正单元)49给从写入缓冲器WB发射的写入数据添加错误校正码(ECC)。当将读取数据发射到读取缓冲器RB时,如必要,则ECC 49使用所添加ECC来校正从非易失性存储器24读取的读取数据。

在数据写入操作中,随机函数发生器RZ(或置乱器)以一方式散布写入数据,使得所述写入数据不被偏置于某一页中或不被偏置于非易失性存储器24的字线方向上。通过以此方式散布写入数据,可使写入次数标准化且可延长非易失性存储器24的存储器单元MC的单元寿命。因此,可提高非易失性存储器24的可靠性。此外,在数据读取操作中,从非易失性存储器24读取的读取数据会通过随机函数发生器RZ。

NAND控制器(NANDC)50使用多个通道(图中展示了四个通道CH0到CH3)来并行地存取非易失性存储器24以满足对某一速度的需求。

CPU 43B控制后端4B的以上每一组件(45到50及RZ),以控制后端4B的整个功能。

应注意,控制器36的结构仅为实例且并不打算由其进行限制。

图9是展示根据本实施例的存储系统的实例的透视图。

存储系统100包含存储器系统37来作为SSD。

举例来说,存储器系统37是外部大小将为大约20mm×30mm的相对小的模块。应注意,存储器系统37的大小及尺度并不限于此且可任意地改变成各种大小。

此外,存储器系统37可适用于信息处理装置17,以作为用于在公司(企业)等中所采用的数据中心或云计算系统中的服务器。因此,存储器系统37可为企业SSD(eSSD)。

举例来说,存储器系统37包含向上开口的多个连接器(举例来说,插槽)38。每一连接器38均为串行附接SCSI(SAS)连接器等。借助SAS连接器,可经由6Gbps的双端口在信息处理装置17与每一存储器系统37之间建立高速相互通信。应注意,连接器38可为快速PCI(PCIe)或快速NVM(NVMe)。

多个存储器系统37个别地附接到信息处理装置17的连接器38且被以一种布置形式支撑使得其沿大致垂直方向站立。使用此结构,多个存储器系统37可被共同地安装成紧凑大小,且可使存储器系统37小型化。此外,本实施例的每一存储器系统37的形状为2.5英寸的小形状因子(SFF)。由于此形状,存储器系统37可与企业HDD(eHDD)兼容且可实现与eHDD的简单系统兼容性。

应注意,存储器系统37并不限于在企业HDD中使用。举例来说,存储器系统37可用作消费型电子装置(例如笔记型便携式计算机或平板计算机终端)的存储器媒体。

如从上文可理解,具有本实施例的结构的信息处理系统35及存储系统100可在具有第二实施例的相同优点的情况下实现大容量存储优点。

根据本实施例的存储器系统37的结构可应用于根据第一实施例的信息处理装置17。举例来说,根据第一实施例的处理器2可对应于CPU 43B。地址转换信息7可对应于LUT 45。存储器3对应于DRAM 47。非易失性高速缓冲存储器4可对应于非易失性存储器24。

尽管已描述了某些实施例,但这些实施例是仅以实例方式呈现的且并不打算限制本发明的范围。实际上,本文中所描述的新颖实施例可以多种其它形式来体现;此外,可在不背离本发明的精神的情况下对本文中所描述的实施例的形式做出各种省略、替代及改变。打算使所附权利要求书及其等效内容涵盖此类将归属于本发明范围及精神内的形式或修改。

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