首页> 中国专利> 使用智能流块交换来维持均匀热计数分布的存储系统和方法

使用智能流块交换来维持均匀热计数分布的存储系统和方法

摘要

提供一种使用智能流块交换来维持均匀热计数分布的存储系统和方法。在一个实施例中,确定流从多个块中请求块的速率,且基于所述流请求块的所述速率从所述多个块中为所述流选择块。提供其它实施例。

著录项

  • 公开/公告号CN113176849A

    专利类型发明专利

  • 公开/公告日2021-07-27

    原文格式PDF

  • 申请/专利权人 西部数据技术公司;

    申请/专利号CN202010503992.5

  • 发明设计人 E.彼得;

    申请日2020-06-05

  • 分类号G06F3/06(20060101);G06F11/10(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人邱军

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:00:51

说明书

背景技术

一些存储系统使用耗损均衡技术来延长系统的寿命。举例来说,当从可用块的存储库中选择存储器的块时,存储系统可配置成选择已经历最少数量的编程/擦除循环的块,所述块称为“最冷块”。随时间推移,每当需要新的块时选择最冷块有助于确保存储系统中的许多块上的耗损的均匀分布,因此延长存储系统的寿命。

附图说明

图1A是一实施例的非易失性存储系统的方块图。

图1B是示出一实施例的存储模块的方块图。

图1C是示出一实施例的阶层式存储系统的方块图。

图2A是示出根据一实施例的示出于图1A中的非易失性存储系统的控制器的组件的方块图。

图2B是示出根据一实施例的示出于图1A中的非易失性存储系统的组件的方块图。

图3是其中存储系统始终从闲置块的存储库中分配最冷块的一实施例的方块图。

图4是展示热计数与元块数量的一实施例的曲线图。

图5是示出由未选子块干扰问题触发的刷新过程的一实施例的方块图。

图6是展示热计数与元块数量的一实施例的曲线图。

图7是示出用于向冷流分配存储块的一实施例的方法的方块图。

图8是示出用于向热流分配存储块的一实施例的方法的方块图。

图9是用于选择块的一实施例的方法的流程图。

图10是用于循环通过流以强制块交换的一实施例的方法的流程图。

具体实施方式

通过介绍,以下实施例涉及一种使用智能流块交换来维持均匀热计数分布的存储系统和方法。在一个实施例中,提供一种存储系统,其包括存储器,所述存储器包括包含第一块和第二块的多个块,其中第一块的块循环速率大于第二块的块循环速率;和控制器。控制器配置成当为流选择块时,向流指派多个块的块循环速率;在为流选择另一块之前,将向流指派的块循环速率与多个块的当前块循环速率进行比较;响应于向流指派的块循环速率小于多个块的当前块循环速率,而选择第一块以供流使用;以及响应于向流指派的块循环速率大于多个块的当前块循环速率,而选择第二块以供流使用。

在一些实施例中,控制器进一步配置成在选择第一块或第二块之后,向流指派多个块的当前块循环速率。

在一些实施例中,多个块的块循环速率包括多个块中的所有块的块循环速率的平均值。

在一些实施例中,响应于向流指派的块循环速率比多个块的当前块循环速率大一阈值而选择第一块。

在一些实施例中,响应于向流指派的块循环速率比多个块的当前块循环速率小一阈值而选择第二块。

在一些实施例中,控制器进一步配置成处理多个流,其中所述流中的至少一个包括时序数据,且其中流中的至少一个其它者包括随机数据。

在一些实施例中,存储器包括三维存储器。

在一些实施例中,存储系统配置成集成在主机中。

在一些实施例中,存储系统配置成以可拆卸方式与主机连接。

在另一实施例中,提供一种方法,其在包括存储器的存储系统中执行,所述存储器包括多个块。方法包括:(a)将向流指派的热计数与多个块的当前热计数进行比较;(b)响应于向流指派的热计数小于多个块的当前热计数,而强制流的块交换以用具有比流更高的热计数的块来替换向流指派的块中的至少一个;以及(c)对至少一个其它流重复(a)到(b)。

在一些实施例中,向流指派的热计数包括上一次向流指派块时的多个块的热计数。

在一些实施例中,多个块的当前热计数包括多个块中的所有块的热计数的平均值。

在一些实施例中,响应于向流指派的热计数比多个块的当前热计数小一阈值而强制块交换。

在另一实施例中,提供一种存储系统,其包括存储器,所述存储器包括多个块;用于确定流从多个块中请求块的速率的构件;和用于基于流请求块的速率从多个块中为流选择块的构件。

在一些实施例中,通过将向流指派的编程/擦除循环的数量与多个块的编程/擦除循环的当前数量进行比较来确定流请求块的速率。

在一些实施例中,向流指派的编程/擦除循环的数量包括上一次为流选择块时的多个块的编程/擦除循环的数量。

在一些实施例中,多个块的编程/擦除循环的数量包括多个块中的所有块的编程/擦除循环的数量的平均值。

在一些实施例中,多个块包括第一块和第二块,其中第一块所经历的编程/擦除循环的数量大于第二块所经历的编程/擦除循环的数量,且其中用于选择的构件响应于流所经历的编程/擦除循环的数量小于多个块所经历的编程/擦除循环的当前数量而选择第一块。

在一些实施例中,存储系统进一步包括用于在选择第一块或第二块之后向流指派多个块的当前块循环速率的构件。

在一些实施例中,存储器包括三维存储器。

其它实施例是可能的,且实施例中的每一个可单独使用或一起组合使用。因此,现将参考附图描述各种实施例。

适用于实施这些实施例的方面的存储系统展示在图1A到图1C中。图1A是示出根据本文中所描述的主题的一实施例的非易失性存储系统100(有时在本文中称为存储装置或仅装置)的方块图。参考图1A,非易失性存储系统100包含控制器102和非易失性存储器,所述非易失性存储器可由一或多个非易失性存储器裸片104组成。如本文中所使用,术语“裸片”是指形成在单个半导体衬底上的非易失性存储器单元的集合,和用于管理那些非易失性存储器单元的物理操作的相关联电路。控制器102与主机系统介接,且将用于读取、编程和擦除操作的命令序列传输到非易失性存储器裸片104。

控制器102(其可以是非易失性存储器控制器(例如闪存、电阻式随机存取存储器(ReRAM)、相变存储器(PCM)或磁阻式随机存取存储器(MRAM)控制器))可采取以下形式:处理电路、微处理器或处理器和存储计算机可读程序代码(例如固件)的计算机可读媒体,所述计算机可读程序代码由例如(微)处理器、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器可执行。控制器102可配置有硬件和/或固件以执行下文描述和流程图中展示的各种功能。并且,展示为在控制器内部的一些组件也可存储在控制器外部,且可使用其它组件。另外,词组“与……可操作地通信”可意味着与……直接通信或与……通过本文中可展示或描述或可能未展示或描述的一个或多个组件间接(有线或无线)通信。

如本文中所使用,非易失性存储器控制器是管理存储在非易失性存储器上的数据且与例如计算机或电子装置的主机通信的装置。非易失性存储器控制器除本文中所描述的特定功能性外还可具有各种功能性。举例来说,非易失性存储器控制器可格式化非易失性存储器以确保存储器恰当地操作,映射出不良非易失性存储器单元,且分配备用单元来替代未来的故障单元。备用单元的某一部分可用以保存固件来操作非易失性存储器控制器和实施其它特征。在操作中,当主机需要从非易失性存储器读取数据或将数据写入到非易失性存储器时,所述主机可与非易失性存储器控制器通信。如果主机提供将读取/写入数据的逻辑地址,则非易失性存储器控制器可将从主机接收到的逻辑地址转换成非易失性存储器中的物理地址。(可替代地,主机可提供物理地址。)非易失性存储器控制器还可执行各种存储器管理功能,例如但不限于耗损均衡(分布写入以避免耗损原本将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效数据页移动到新块,因此已满的块可予以擦除且再使用)。并且,权利要求书中所叙述的“构件”的结构可包含例如本文中所描述的控制器的结构中的一些或全部,所述结构经编程或制造为适于促使控制器用以执行所叙述功能。

非易失性存储器裸片104可包含任何合适的非易失性存储媒体,包含电阻式随机存取存储器(ReRAM)、磁阻式随机存取存储器(MRAM)、相变存储器(PCM)、NAND闪存存储器单元和/或NOR闪存存储器单元。存储器单元可采取固态(例如闪存)存储器单元的形式,且可以是可一次编程、可少次编程或可多次编程的。存储器单元还可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC),或使用现今已知或将来开发的其它存储器单元层级技术。并且,存储器单元可以二维或三维方式制造。

控制器102与非易失性存储器裸片104之间的接口可以是任何合适的闪存接口,例如切换模式(Toggle Mode)200、400或800。在一个实施例中,存储系统100可以是基于卡的系统,例如安全数字(SD)或微安全数字(微SD)卡。在一替代实施例中,存储系统100可以是嵌入式存储系统的部分。

虽然在图1A中所示出的实例中,非易失性存储系统100(有时在本文中称为存储模块)在控制器102与非易失性存储器裸片104之间包含单个信道,但本文中所描述的主题不限于具有单个存储器信道。举例来说,在一些存储系统架构(例如图1B和图1C中所示的存储系统架构)中,取决于控制器能力,可在控制器与存储器装置之间存在2个、4个、8个或更多存储器信道。在本文中所描述的实施例中的任一个中,尽管图中展示单个信道,但控制器与存储器裸片之间可存在超过单个信道。

图1B示出包含多个非易失性存储系统100的存储模块200。如此,存储模块200可包含与主机且与存储系统204介接的存储控制器202,所述存储系统204包含多个非易失性存储系统100。存储控制器202与非易失性存储系统100之间的接口可以是总线接口,例如串行高级技术附件(SATA)、外围组件互连高速(PCIe)接口或双数据速率(DDR)接口。在一个实施例中,存储模块200可以是固态驱动器(SSD)或非易失性双列直插式存储器模块(NVDIMM),例如在服务器PC或便携式计算装置(例如笔记本计算机和平板计算机)中所发现的SSD或NVDIMM。

图1C是示出阶层式存储系统的方块图。阶层式存储系统250包含多个存储控制器202,其中的每一个控制对应存储系统204。主机系统252可经由总线接口存取存储系统内的存储器。在一个实施例中,总线接口可以是非易失性存储器高速接口(NVMe)接口或以太网光纤信道(FCoE)接口。在一个实施例中,图1C中所示出的系统可以是可由多个主机存取的可安装在支架上的海量存储系统,例如将在数据中心或需要海量存储器的其它位置中所发现的存储系统。

图2A是更详细地示出控制器102的组件的方块图。控制器102包含与主机介接的前端模块108、与一或多个非易失性存储器裸片104介接的后端模块110和执行现将详细描述的功能的各种其它模块。举例来说,模块可采取以下形式:设计成与其它组件一起使用的经封装功能硬件单元,由通常执行相关功能的特定功能的(微)处理器或处理电路可执行的程序代码(例如软件或固件)的部分,或与较大系统介接的自含式硬件或软件组件。控制器102的模块可包含在下文更详细所论述的耗损均衡模块111,且可实施在硬件或软件/固件中。耗损均衡模块111可配置成执行下文所论述且展示在附图中的演算法和方法。

再次参考控制器102的模块,缓冲器管理器/总线控制器114管理随机存取存储器(RAM)116中的缓存器,且控制控制器102的内部总线仲裁。只读存储器(ROM)118存储系统启动代码。虽然在图2A中示出为与控制器102分离定位,但在其他实施例中,RAM 116和ROM118中的一个或两个可定位在控制器内。在又其它实施例中,RAM和ROM的部分可位于控制器102内和位于控制器外部两者。

前端模块108包含提供与主机或下一层级存储控制器的电气接口的主机接口120和物理层接口(PHY)122。主机接口120的类型的选择可取决于正在使用的存储器的类型。主机接口120的实例包含但不限于SATA、SATA高速、串行附接的小型计算机系统接口(SAS)、光纤信道、通用串行总线(USB)、PCIe和NVMe。主机接口120通常促进数据、控制信号和定时信号的传送。

后端模块110包含误差校正码(ECC)引擎124,所述误差校正码引擎124对从主机接收到的数据字节进行编码,且对从非易失性存储器读取的数据字节进行解码和误差校正。命令定序器126产生待传输到非易失性存储器裸片104的命令序列,例如编程和擦除命令序列。独立驱动器冗余阵列(Redundant Array of Independent Drive,RAID)模块128管理RAID奇偶校验的产生和失效数据的恢复。RAID奇偶校验可用作用于将数据写入到存储器装置104中的额外层级的完整性保护。在一些情况下,RAID模块128可以是ECC引擎124的部分。存储器接口130将命令序列提供到非易失性存储器裸片104,且从非易失性存储器裸片104接收状态信息。在一个实施例中,存储器接口130可以是双数据速率(DDR)接口,例如切换模式200、400或800接口。闪存控制层132控制后端模块110的总体操作。

存储系统100还包含其它离散组件140,例如外部电气接口、外部RAM、电阻器、电容器或可与控制器102介接的其它组件。在替代实施例中,物理层接口122、RAID模块128、媒体管理层138和缓冲器管理/总线控制器114中的一或多个是未必在控制器102中的任选组件。

图2B是详细地示出非易失性存储器裸片104的组件的方块图。非易失性存储器裸片104包含外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包含用以存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包含呈二维和/或三维配置的ReRAM、MRAM、PCM、NAND闪存存储器单元和/或NOR闪存存储器单元。非易失性存储器裸片104进一步包含对数据进行高速缓存的数据高速缓存156。外围电路141包含将状态信息提供到控制器102的状态机152。

再次返回到图2A,闪存控制层132(其将在本文中称为闪存转译层(FTL)或例如更一般来说当存储器可能不是闪存时称为“媒体管理层”)处置闪存误差且与主机介接。具体地说,可以是固件中的演算法的FTL负责存储器内部管理,且将来自主机的写入转译成存储器104的写入。因为存储器104可具有受限的耐久性,可仅以多页形式写入,且/或除非其作为块擦除,否则可能不被写入,所以可能需要FTL。FTL了解存储器104的这些潜在限制,所述潜在限制可能对主机不可见。因此,FTL试图将来自主机的写入转译成存储器104的写入。

FTL可包含逻辑到物理地址(L2P)映射(有时在本文中称为表或数据结构)和所分配的高速缓存存储器。以此方式,FTL将来自主机的逻辑块地址(“LBA”)转译成存储器104中的物理地址。FTL可包含其它特征,例如但不限于断电恢复(以使得可在突然掉电的情况下恢复FTL的数据结构)和耗损均衡(以使得存储块上的耗损较平均以防止某些块过量耗损,这将导致较大故障机率)。

如上文所提及,一些存储系统使用耗损均衡技术来延长系统的寿命。举例来说,当从可用块的存储库中选择存储器的块时,存储系统可配置成选择已经历最少数量的编程/擦除循环的块,所述块称为“最冷块”。这展示在图3中,且在本文中称为“被动耗损均衡”。如图3中所示,在目的地块充满来自流300的数据之后,存储系统需要为流分配另一块。(为简单起见,术语“块”将在本文中用以指单个块或作为若干块的集合的元块(MB)。)在此实施例中,当存储系统从闲置块310的存储库中请求新的块时,存储系统分配最冷块而非已经历更多编程/擦除循环的块(“热块”)。词组“热计数”将在本文中用以指指示块已经历的编程/擦除循环的量的值,其中热块具有比冷块更高的热计数。并且,词组“块循环速率”将在本文中用以指给定块经历编程/擦除循环的速率。

每当需要新的块时,选择最冷块有助于确保随时间推移存储系统中的许多块上的耗损的均匀分布,因此延长存储系统的寿命。然而,此机制通常仅操作于关闭块上,因此当此机制可有助于使平均热计数保持在限值内时,个别块的最小热计数与最大热计数之间的差可较高是有可能的。这展示在图4的曲线图中,所述曲线图是基于在运行数据模式持续72小时的固态驱动器中的单层级单元(SLC)块的数据。如由此曲线图可见,几个块的热计数远小于最大值。在运行相同模式持续四周之后,虽然平均值接近于最大热计数,但最小热计数与最大热计数之间的差大于1,000。

最小热计数与最大热计数之间的此差的原因可归因于多个流当中的不同运行速率。举例来说,考虑其中存储系统正在接收多个数据流的情形。在操作中,存储系统试图确定给定流具有时序数据还是随机数据,因此具有相同数据类型的流可一起写入。对于任何给定流,当一个块经填充时,其是关闭的,且从存储库中请求新的块。通常,随机数据比时序数据远不频繁地提供到存储系统,因此用于时序数据的块将循环得远快于用于随机数据的块。因此,当随机数据的块循环一次时,时序的块可能已循环多次。返回参考图4,具有低热计数的块可以是用以存储随机数据的块,而具有高热计数的块可以是用以存储时序数据的块。

为对此详细描述,考虑其中存储系统中的固件具有多个流的情形。每当流需要块交换时,其将请求块管理器从存储库中释放闲置块。常用流的实例包含但不限于移动进行中(MIP)流、组地址表(GAT)块流、一个时序流、两个或更多个时序流、随机流、单层级单元(SLC)压缩流和多层级单元(MLC)压缩流。块循环的速率可随不同的流而不同(例如MIP流和GAT流可小于主机流)。在主机内,与随机流相比,时序流循环的速率可取决于主机模式。类似地,对于垃圾收集流,速率可取决于主机无效模式。

让我们采用具有2GB SLC存储库和480GB容量的存储系统的一实例。如果用户试图将40部10-GB影片复制到此存储系统,那么存储系统将得到400GB的时序数据。此模式将循环所有SLC块约200次。但另一流的块的热计数可以是1(例如在存储系统尚未开始SLC压缩或MLC压缩的情况下)。如果存在多个其它时序流,那么那些其它时序流的热计数将还是1。因此,如由此实例所示出,简单时序模式可在系统的最小热计数与最大热计数之间形成约200的差。并且,如上文所解释,如果系统的块管理器始终从闲置存储库中搜索最冷闲置块(最低热计数)以试图确保块的均匀耗损均衡,那么这将具有采用冷块且使其更冷的效果,进而增加最小热计数与最大热计数差且导致较高写入放大。

随时间推移,系统的最小热计数与最大热计数之间的此较大差可能对总存储系统的寿命具有影响。然而,如果平均值接近于系统的最大热计数,那么此较大差通常不是大问题。然而,如果归因于子块的未选子块干扰(USBD)缺陷问题,存储系统将块分成子块,那么这便可能是问题。更具体地说,一些存储系统可以子块模式操作,从而允许将一物理块分成两个或更多个逻辑子块。那样一来,如果子块中的一个存在缺陷或问题,那么便可使用块中的另一子块,而非舍弃整个块。然而,当以子块模式使用块时,一个子块的循环可导致对存在于姐妹子块中的数据的干扰。这称为“未选子块干扰”。在一些存储器规格中,姐妹子块在其相邻子块的1,000次循环内必须刷新至少一次(在可能的延伸规范中,在寿命终止时在4,000次循环内)。在刷新期间,在再次循环(擦除并重新写入)所选子块之前,来自姐妹子块的全部有效数据立即重新定位到新的块作为未选子块干扰处置的部分。

图5示出此过程。图5展示存储器的两个子块:具有若干条(Str)存储器单元的SB1和SB0。如图5中所示,如果子块SB0具有有效数据且在子块SB1的1,000次循环内不循环(其中擦除(ERS)的数量大于编程(PGM)的数量),那么存储系统便在再次循环子块SB1之前执行子块SB0的至少一次刷新。类似地,如果子块SB1具有有效数据且在子块SB0的1,000次循环内不循环,那么子块SB1在再次循环子块SB0之前便需要至少一次刷新。

希望在子块模式中避免USBD处置(例如通过将最小热计数与最大热计数之间的差维持在500内)。然而,当前耗损均衡机制不是为那个目的而设计,这时因为当前耗损均衡机制仅操作于关闭块上,搜索具有有效数据的冷关闭块,且如果发现,那么便强制压缩。因此,这些机制不作用于由较慢流卡住的开启块,仅当在系统中形成较高热计数δ时触发(因此所述机制不是预防性的),且由于其不合并数据且不释放空间,因而是成本极高的操作(相反,所述机制将数据从一个块移动到另一个,因此增加系统的写入放大)。

作为此主动耗损均衡的一替代方案,存储系统可对每一子块使用抹除计数器,且在姐妹子块循环大于1,000次时强制压缩。尽管在子块模式中使用此计数器可避免USBD处置,但需要新的控制页来存储USBD计数器。因为一个子块在重连期间可具有多个同级,所以如果每一元块需要四个额外字节来存储单个存储器裸片的此资讯,那么具有多个裸片的存储系统将需要许多额外字节。使用计数器还增加新的控制页的读取、写入和高速缓存操作的额外复杂度。此外,因为在每一平面中,将存在不同姐妹子块,所以当重连子块时,更新USBD计数器和调度USBD压缩可能是复杂的。另外,如传统耗损均衡,USBD压缩可能是成本极高的,这是因为其不合并数据且不释放空间,而是将数据从一个块移动到另一个,因此增加系统的写入放大。

为提供更好的替代方案而非始终为流选择最冷块,以下实施例基于流从多个闲置块中请求块的速率来选择块。如果流以相对较高的速率请求块,那么存储系统100(例如控制器102或耗损均衡模块111)便选择相对较冷(具有相对较低的热计数)的块。相反,如果流以相对较慢的速率请求块,那么存储系统100便选择相对较热(具有相对较高的热计数)的块。流请求块的速率的相对度可与所选块的相对热度或相对冷度相关(例如基于流的循环速率,存储系统100可决定在下一块交换期间选择最冷块、冷块、热块还是最热块)。

如图6中的曲线图中所示且与图3中的曲线图相比,运用此实施例,如果始终选择最冷块,那么存储系统100便提供更好的耗损均衡机制。因此,通过检测每一流循环的速率,存储系统100可将均匀热计数δ维持在最小值与最大值之间。存在与这些实施例相关联的许多其它优点。举例来说,因为大部分耗损均衡将通过流自身被动地发生,所以这些实施例可用以优化耗损均衡。因为其将不增加写入暗示且不涉及额外构架,所以这是极有效的。通过提供更严格的均匀耗损均衡,这些实施例可增加存储系统的寿命,且可通过更多回收的存储器来支持较高循环要求,因此对存储系统100提供较高利润率且减少标记回收特征的时间。此外,运用这些实施例,不需要在子块中对USBD缺陷情形的额外处置。

此实施例可以任何合适的方式实施。举例来说,在一个实施方案中,存储系统100的存储器104包括多个闲置块,所述多个闲置块包含第一块和第二块。第一块的块循环速率大于第二块的块循环速率。为确定流耗费块的快速程度,控制器102向流指派块循环速率。在一个实施例中,当为流选择块时,向流指派的块循环速率是多个闲置块的块循环速率(例如存储库中的所有个别块的块循环速率的平均值)。

在于块交换期间为流选择另一块之前,控制器102将向流指派的块循环速率与多个闲置块的当前块循环速率进行比较。如果向流指派的块循环速率比多个闲置块的当前块循环速率小(例如小一阈值),那么便意味着所述流耗费块慢于其它流(例如当所述流包括随机数据且其它流包括时序数据时)。向此流指派冷块将形成更糟的问题,因此在所述情形下,控制器102选择比其它块相对更热的块(因此在此实例中,选择第一块而非第二块)。在块选择之后,可将流的块循环速率更新成多个块的当前块循环速率(即存储系统100可在块交换之后将系统平均热计数“戳”到每一流,因此当流下一次来进行块交换时,存储系统100可针对系统循环速率检测其循环速率)。

这展示在图7中。此处,“系统HC平均值(System HC Mean)”是闲置块310的存储库中的所有块的热计数的平均热计数。“流HC戳(Stream HC Stamp)”是向流指派的热计数,且阈值表示指示冷流的值(例如10)(即,与系统的循环速率相比,流的循环速率较慢)。如此实例中所示,当流进行块交换时,存储系统100将所存储的系统热计数与当前系统热计数平均值进行比较。如果所述比较大了一阈值(例如差为10),那么存储系统100便考虑所述流是冷流并请求热块。此有助于被动地使最小热计数与最大热计数之间的热计数δ下降。

同样,如果流的块循环速率比多个闲置块的当前块循环速率大(例如大一阈值),那么便意味着所述流耗费块快于其它流,且应指派更冷的块。这展示在图8中。在此实例中,所存储的系统热计数比当前系统热计数平均值小一阈值(例如差为10)。因此,存储系统100考虑所述流是热流并请求冷块。

图9是也示出此实施例的实例的流程图900,其中所讨论的块是单层级单元(SLC)块。如图9中所示,在流块交换(910)期间,确定当前SLC平均热计数是否比流热计数时间戳大一阈值(920)。如果是,那么存储系统100便选择最热SLC块(930)。如果不是,那么存储系统100便从闲置块(FBL)存储库中选择新的(最冷)块(940)。无论如何,存储系统都使用当前SLC平均热计数更新流热计数时间戳(950)。

存在可与这些实施例一起使用的许多替代方案。举例来说,在其中不对一些流写入数据的情形下,因为不请求新的块,所以可能不触发上文所提到的被动方法。以下实施例可用以提供一种强制此流的块交换的主动方法。此主动方法可对于系统热计数平均值的每一增加(例如10)周期性地触发。图10是示出周期性扫描流以强制极冷流释放冷块的此方法的流程图1000。如图10中所示,存储系统100获取流且确定当前SLC平均热计数是否比流热计数时间戳大一阈值(1010)。如果不是,那么所述方法便循环到下一流。如果是,那么存储系统100便强制当前流中的块交换(1020)。以此方式,存储系统100循环通过每一流,且如果给定流具有比流热计数时间戳大(例如大一阈值)的当前SLC平均热计数,那么存储系统100便可强制所述流的块交换。

最终,如上文所提及,可使用任何合适类型的存储器。半导体存储器装置包含易失性存储器装置,例如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置;非易失性存储器装置,例如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器(其还可被视为EEPROM的子集)、铁电随机存取存储器(“FRAM”)和磁阻式随机存取存储器(“MRAM”);和能够存储信息的其它半导体元件。每种类型的存储器装置可具有不同配置。举例来说,闪存存储器装置可以NAND或NOR配置来配置。

存储器装置可由无源和/或有源元件以任何组合形成。借助于非限制性实例,无源半导体存储器元件包含ReRAM装置元件,所述ReRAM装置元件在一些实施例中包含电阻率切换存储元件,例如反熔丝、相变材料等,且任选地包含转向元件,例如二极管等。此外,借助于非限制性实例,有源半导体存储器元件包含EEPROM和闪存存储器装置元件,在一些实施例中,所述闪存存储器装置元件包含含有电荷存储区的元件,例如浮动栅极、导电纳米粒子或电荷存储介电材料。

多个存储器元件可配置成使得其串联连接或使得每一元件可单独地存取。借助于非限制性实例,呈NAND配置的闪存存储器装置(NAND存储器)通常含有串联连接的存储器元件。NAND存储器阵列可配置成使得阵列由多个存储器串构成,其中一串由共享单个位线且作为群组存取的多个存储器元件构成。可替代地,存储器元件可配置成使得每一元件可单独存取,例如NOR存储器阵列。NAND和NOR存储器配置是实例,且存储器元件可以其它方式来配置。

位于衬底内和/或衬底上方的半导体存储器元件可以二维或三维形式配置,例如二维存储器结构或三维存储器结构。

在二维存储器结构中,半导体存储器元件布置在单个平面或单个存储器装置层级中。通常,在二维存储器结构中,存储器元件布置在大体上平行于支撑存储器元件的衬底的主表面延伸的平面中(例如在x-z方向平面中)。衬底可以是其上方或其中形成有存储器元件层的晶片,或可以是在存储器元件形成之后附接到存储器元件的载体衬底。作为一非限制性实例,衬底可包含半导体,例如硅。

存储器元件可以有序阵列(例如以多个行和/或列)形式布置在单个存储器装置层级中。然而,存储器元件可以非规则或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,例如位线和字线。

三维存储器阵列布置成使得存储器元件占据多个平面或多个存储器装置层级,由此形成呈三维(即,呈x、y和z方向,其中y方向大体上垂直于衬底的主表面,且x和z方向大体上平行于衬底的主表面)的结构。

作为一非限制性实例,三维存储器结构可竖直地布置为多个二维存储器装置层级的堆叠。作为另一非限制性实例,三维存储器阵列可布置为多个竖直列(例如大体上垂直于衬底的主表面(即沿y方向)延伸的列),其中每一列在每一列中具有多个存储器元件。所述列可以二维配置(例如在x-z平面中)来布置,从而产生具有在多个竖直堆叠的存储器平面上的元件的存储器元件的三维布置。呈三维形式的存储器元件的其它配置也可构成三维存储器阵列。

借助于非限制性实例,在三维NAND存储器阵列中,存储器元件可耦合在一起以形成在单个水平(例如x-z)存储器装置层级内的NAND串。可替代地,存储器元件可耦合在一起以形成横穿多个水平存储器装置层级的竖直NAND串。可设想其它三维配置,其中一些NAND串含有单个存储器层级中的存储器元件,而其它串含有横跨多个存储器层级的存储器元件。三维存储器阵列还可以NOR配置和ReRAM配置来设计。

通常,在整体式三维存储器阵列中,在单个衬底上方形成一个或多个存储器装置层级。任选地,整体式三维存储器阵列还可具有至少部分地在单个衬底内的一或多个存储器层。作为一非限制性实例,衬底可包含半导体,例如硅。在整体式三维阵列中,构成阵列的每一存储器装置层级的层通常在阵列的下伏存储器装置层级的层上形成。然而,整体式三维存储器阵列的相邻存储器装置层级的层可被共享,或在存储器装置层级之间具有介入层。

而且,二维阵列可分别形成,且随后封装在一起以形成具有多个存储器层的非整体式存储器装置。举例来说,可通过在单独的衬底上形成存储器层级且随后将存储器层级堆叠于彼此之上来构造非整体式堆叠存储器。衬底可在堆叠之前薄化或从存储器装置层级移除,但因为存储器装置层级最初形成于单独的衬底上方,所以所得存储器阵列不是整体式三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(整体式或非整体式)可在单独的芯片上形成,且随后封装在一起以形成堆叠芯片存储器装置。

通常需要相关联电路来操作存储器元件并与存储器元件通信。作为非限制性实例,存储器装置可具有用于控制和驱动存储器元件以实现例如编程和读取的功能的电路。此相关联电路可在与存储器元件相同的衬底上和/或单独的衬底上。举例来说,用于存储器读写操作的控制器可位于单独的控制器芯片上和/或与存储器元件相同的衬底上。

所属领域的技术人员将认识到,本发明不限于所描述的二维和三维结构,而是覆盖如本文中所描述且如所属领域的技术人员所理解的在本发明的精神和范围内的所有相关存储器结构。

意图将前述详细描述理解为本发明可采用的所选形式的说明,而非对本发明的限定。只有以下权利要求书(包含所有等效物)意图限定所要求的本发明的范围。最后,应注意,本文中所描述的实施例中的任一个的任何方面可独自使用或彼此组合使用。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号