威尼斯人棋牌-威尼斯欢乐娱人城-首页

控制器和存储器系统的制作方法

文档序号:24942036发布日期:2021-05-04 11:35
控制器和存储器系统的制作方法

相关申请的交叉引用

本申请要求于2019年10月31日提交的申请号为10-2019-0137695的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。

本发明的各个实施例涉及一种用于控制存储器装置的控制器,以及包括该存储器装置和控制器的存储器系统。



背景技术:

计算机环境范例已经转变成使计算系统能够随时随地使用的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用存储器系统,该存储器系统具有一个或多个用于存储数据的存储器装置。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。

因为存储器系统没有移动部件,所以存储器系统提供诸如优良的稳定性和耐用性、高信息访问速度和低功耗的优点。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。



技术实现要素:

本发明的实施例涉及一种可以通过动态地调整实行垃圾收集操作的频率来改善存储器系统的性能的控制器,以及包括该控制器的存储器系统。

根据本发明的实施例,一种存储器系统包括:存储器装置,包括多个存储空间;以及控制器,适于控制存储器装置,其中控制器基于存储器系统的性能要求和空闲存储空间来确定性能比以用于确保存储器装置中的空闲存储空间,该性能比是垃圾收集操作的性能与存储器系统的总性能的比率;基于性能比来调度垃圾收集操作;并且根据调度来实行垃圾收集操作。

根据本发明的另一实施例,一种控制器,该控制器用于控制包括多个存储空间的存储器装置,该控制器包括:垃圾收集调度器,适用于基于存储器系统的性能要求和空闲存储空间来确定性能比以用于确保存储器装置中的空闲存储空间,该性能比是垃圾收集操作的性能与存储器系统总性能的比率;并且基于垃圾收集操作的性能比来调度垃圾收集操作;以及垃圾收集实行器,适用于根据调度来实行垃圾收集操作。

根据本发明的又一实施例,一种控制器的操作方法,该操作方法包括根据由等式2确定的操作间隔来控制非易失性存储器装置以实行垃圾收集操作。

[等式2]

其中(用户写入)表示由用户数据量表示的操作间隔;n表示非易失性存储器装置中的空闲存储空间的数量;t表示空闲存储空间的阈值数量;a表示常数;rgc(n)表示通过等式1确定的垃圾收集操作的性能比率;并且(gc写入)表示通过垃圾收集操作在设定操作持续时间内写入的垃圾收集数据的量。

[等式1]

其中rgc(n)表示垃圾收集操作的性能比;rgci表示当n≥t时,设定为满足希望的维持性能的常数;并且g(n)是当n<t时,可以使垃圾收集操作的性能比增加的函数。

附图说明

图1是示意性示出根据本发明的实施例的存储器系统的框图。

图2示出存储器装置。

图3示出垃圾收集操作。

图4是描述根据垃圾收集调度的存储器系统的性能的图表。

图5是描述根据本发明的实施例的存储器系统的操作的流程图。

图6a和图6b是描述垃圾收集操作的性能比的图表。

图7示出通过垃圾收集操作来确保的空闲存储空间的量。

图8a和图8b示出根据本发明的实施例的存储器系统的性能。

具体实施方式

以下参照附图更详细地描述本发明的各个实施例。然而,本发明可以以不同的形式实现,并且不应该被说明为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。还注意的是,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。

在下文中,参照附图更详细地描述了本发明的实施例。

图1是示意性示出根据本发明的实施例的存储器系统110的框图。

存储器系统110可以响应于主机的请求而操作以为主机存储数据。存储器系统110的非限制性示例包括固态驱动器(ssd)、多媒体卡(mmc)、安全数字(sd)卡、通用串行总线(usb)装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡(smc)、个人计算机存储卡国际协会(pcmcia)卡和记忆棒。mmc的示例包括嵌入式mmc(emmc)、尺寸减小的mmc(rs-mmc)和微型mmc。sd卡的示例包括迷你型sd卡和微型sd卡。

存储器系统110可以通过各种类型存储装置中的任意一个来实现。这些存储装置的示例可以包括但不限于诸如动态随机存取存储器(dram)和静态ram(sram)的易失性存储器装置和诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电ram(fram)、相变ram(pram)、磁阻ram(mram)、电阻式ram(rram或reram)和闪速存储器的非易失性存储器装置。闪速存储器可以具有三维(3d)堆叠结构。

存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以为主机存储数据,并且控制器130可以控制数据在存储器装置150中的存储。

控制器130和存储器装置150可以集成到单个半导体装置中。例如,控制器130和存储器装置150可以集成为一个半导体装置来构成固态驱动器(ssd)。当存储器系统110用作ssd时,可以提高连接至存储器系统110的主机的操作速度。另外,控制器130和存储器装置150可以集成为一个半导体装置以构成诸如以下的存储卡:个人计算机存储卡国际协会(pcmcia)卡,紧凑型闪存卡(cf),智能媒体(sm)卡,记忆棒,包括尺寸减小的mmc(rs-mmc)和微型-mmc的多媒体卡(mmc),包括迷你型-sd卡、微型-sd卡和sdhc卡的安全数字(sd)卡,或通用闪存(ufs)装置。

存储器系统110的非限制性应用示例包括计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(dmb)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的任意一个、构成计算机网络的各种电子装置中的任意一个、构成远程信息处理的各种电子装置中的任意一个、射频识别(rfid)装置或构成计算系统的各种组件中的一个。

存储器装置150可以是非易失性存储器装置,并且即使不供应电力也可保留所存储的数据。存储器装置150可以通过编程操作来存储从主机提供的数据,并且通过读取操作将所存储的数据提供至主机。存储器装置150可以包括多个存储块,多个存储块中的每一个可包括多个页面,并且多个页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可以具有3维(3d)堆叠结构。参照图2详细描述存储器装置150的分层结构。

控制器130可以响应于来自主机的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供至主机,并且将从主机提供的数据存储至存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、编程操作和擦除操作。

控制器130可以包括全部通过内部总线可操作地联接的主机接口(i/f)132、处理器134、存储器i/f142和存储器144。

主机i/f132可以被配置成处理主机的命令和数据,并且可通过诸如以下的各种接口协议中的一种或多种与主机通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)以及电子集成驱动器(ide)。

可以通过称为主机接口层(hil)的固件来驱动主机i/f132,以便与主机交换数据。

存储器i/f142可以用作用于将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机的请求来控制存储器装置150。当存储器装置150是闪速存储器,具体地是nand闪速存储器时,存储器i/f142可在处理器134的控制下生成用于存储器装置150的控制信号并且处理待被提供至存储器装置150的数据。存储器i/f142可以用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,nand闪存接口)。具体地,存储器i/f142可以支撑控制器130和存储器装置150之间的数据传送。

可以通过称为闪存接口层(fil)的固件来驱动存储器i/f142,以便与存储器装置150交换数据。

存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以控制存储器装置150以响应于来自主机的请求而实行读取操作、编程操作和擦除操作。控制器130可以将从存储器装置150读取的数据提供至主机,并且可将从主机提供的数据存储在存储器装置150中。存储器144可以存储控制器130和存储器装置150实行这些操作所需的数据。

存储器144可以通过易失性存储器来实现。例如,存储器144可以通过静态随机存取存储器(sram)或动态随机存取存储器(dram)来实现。存储器144可以设置在控制器130内部或外部。图1例示了存储器144设置在控制器130内部。在实施例中,存储器144可以通过具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。

如上所述,存储器144可以存储在主机和存储器装置150之间实行数据写入/读取操作所需的数据,以及当实行数据写入/读取操作时的数据。为了存储这种数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。

处理器134可以控制存储器系统110的全部操作。处理器134可以驱动固件以控制存储器系统110的全部操作。固件可以被称为闪存转换层(ftl)。而且,处理器134可以被实现为微处理器或中央处理单元(cpu)。

处理器134可以驱动闪存转换层并且实行与从主机接收到的请求相对应的前台操作。例如,处理器134可以响应于来自主机的写入请求来控制存储器装置150的写入操作,并且响应于来自主机的读取请求来控制存储器装置150的读取操作。

存储器装置150可能不支撑重写操作。为了将数据重新写入到写入了数据的存储器单元中,擦除操作必须先于重写操作。存储器装置150的写入操作的单位和擦除操作的单位可以不同。例如,存储器装置150可以以页面为单位实行写入操作,并且可以以存储块为单元实行擦除操作。因此,控制器130可以通过控制存储器装置150以将待被更新的数据写入另一页面并且使特定页面无效,来更新该特定页面中存储的数据。当由于控制器130的数据更新操作,在存储器装置150中的无效页面的数量增加时,用于存储数据的存储空间可能变得不足。

为了移除存储块的无效页面,控制器130可以实行将牺牲块的有效页面复制到目标块中并且擦除牺牲块的数据的一系列操作。这一系列操作可以称为垃圾收集(gc)操作。下面参照图3详细描述垃圾收集操作。

处理器134可以实行作为后台操作的垃圾收集操作。虽然垃圾收集操作是为了确保存储器装置150的存储空间,但是在实行垃圾收集操作时,垃圾收集操作可能限制存储器系统110的前台操作。这是因为在存储器装置150实行由于垃圾收集操作而伴随的读取操作、写入操作和擦除操作时,存储器装置150可能无法实行与主机的请求相对应的读取操作和写入操作。控制器130可以以使得对主机请求的响应不会由于垃圾收集操作而被显著地延迟的方式来调度垃圾收集操作。例如,处理器134可能够通过调整垃圾收集操作之间的间隔或实行垃圾收集的频率来调度垃圾收集操作。参照图4详细描述垃圾收集操作的调度。

处理器134可以基于存储器装置150的空闲存储空间的大小来调度垃圾收集操作。当存储器装置150具有足够的存储空间时,处理器134可以将垃圾收集操作间隔确定为相对较长,即相对不频繁地来实行垃圾收集。通过将垃圾收集设置为相对不频繁地实行,存储器系统110可以为用户提供较高的前台操作性能。另一方面,当存储器装置150的空闲存储空间不足时,处理器134可以将垃圾收集操作间隔确定为相对较短,即更频繁地来实行垃圾收集。通过更频繁地实行垃圾收集,存储器系统110可以快速地确保存储空间。

根据现有技术,处理器134可以根据空闲存储空间的大小来确定垃圾收集级别,并且可以通过基于所确定的垃圾收集级别,调整垃圾收集操作持续时间和垃圾收集操作间隔来调度垃圾收集操作。

例如,当作为存储数据的存储空间的脏存储空间与存储器装置150的总存储空间的比率小于约10%时,处理器134可以将垃圾收集级别确定为0,并且当脏存储空间的比例为约10%或更大且小于约60%时,处理器134可以将垃圾收集级别确定为1。当脏存储空间的比率等于或大于约60%并且空闲块的数量等于或大于第一数量时,处理器134可以将垃圾收集级别确定为2,并且当脏存储空间的比率等于或大于约60%并且空闲块的数量小于第一数量时,处理器134可以将垃圾收集级别确定为3。垃圾收集级别越高,垃圾收集操作间隔越短。在本文中,空闲块可以指擦除了所有页面的存储块。

当垃圾收集级别增加时,处理器134可以缩短垃圾收集操作间隔。根据垃圾收集级别而改变垃圾收集操作调度的方法在本文中可以被称为基于级别的垃圾收集。

即使当存储器系统110实行垃圾收集操作时,用户也可能希望某个最低级别的前台性能。然而,根据基于级别的垃圾收集操作方案,可能难以设计处理器134以满足前台性能要求。

例如,为了使处理器134实行基于级别的垃圾收集操作,可能确定多个参数,多个参数包括垃圾收集级别的数量,针对每个垃圾收集级别的空闲存储空间的大小,以及针对每个垃圾收集级别的垃圾收集操作间隔。

而且,难以基于每个参数的值,来估计存储器系统110是否满足性能要求。因此,需要在处理器134中设定参数,然后利用所设定的参数来对存储器系统110实行读取/写入测试,以确定存储器系统110是否满足性能要求。当利用所设定的参数确定存储器系统110不满足性能要求时,应当利用不同的参数值来对存储器系统110实行另一测试。根据现有技术,难以在不利用各种设定参数对存储器系统110实行许多测试的情况下,优化存储器系统110的性能。

根据本发明的实施例,处理器134可以在考虑存储器系统110的性能要求的情况下,基于一个标准(或多个标准)来调度垃圾收集操作。例如,存储器系统110的规范可以提供性能要求,诸如在存储器系统110的维持状态和脏状态下的读取吞吐量和写入吞吐量。可以基于将存储器系统110的总性能中的多少(例如,百分比)用于垃圾收集操作来设置标准,以便满足存储器系统110的性能要求。

根据本公开的实施例,处理器134可以基于空闲存储空间的大小来确定垃圾收集操作的性能与存储器系统110的总性能的比率(垃圾收集性能比或简称为性能比),并且基于性能比来调度垃圾收集操作。总性能可以指示在存储器系统110中实行的所有操作的性能总和。例如,可以将总性能确定为垃圾收集操作的性能与前台操作的性能的总和。

例如,处理器134可以基于标准和空闲存储空间的大小来确定性能比,以使垃圾收集操作的效率最大化,同时仍然满足存储器系统110的性能要求。而且,处理器134可以在考虑性能要求和确保存储空间的必要性的情况下,基于标准和性能比来调度垃圾收集操作。

在本文中,基于性能比来调度垃圾收集操作的方法可以被称为基于性能的垃圾收集。参照图5至图7描述根据本发明的实施例的基于性能的垃圾收集。

根据本发明的实施例,由于基于根据性能要求而确定的标准来调度垃圾收集操作,因此可以容易地估计存储器系统110是否满足性能要求。处理器134可以配置为通过确定几个参数,而不是确定垃圾收集级别的数量和针对每个垃圾收集级别的多个参数,来满足存储器系统110的性能要求。因此,处理器134可设计或配置为在无需对存储器系统110实行大量测试的情况下,满足存储器系统110的性能要求。参照图8详细描述基于性能的垃圾收集的效果。

根据本公开的实施例,处理器134可以包括存储空间监测器202、垃圾收集调度器204和垃圾收集实行器206,以调度垃圾收集操作和实行垃圾收集操作。

存储空间监测器202可以对关于存储器装置150中的存储空间的信息进行管理。存储空间监测器202可以向垃圾收集调度器204提供空闲存储空间信息,例如空闲块数量或指示空闲块数量的信息。例如,存储空间监测器202可以基于形成存储块的页面的状态来确定每个存储块是空闲块还是脏块。例如,每个页面的状态可以是擦除状态、有效状态和无效状态。可以将所有页面处于擦除状态的存储块确定为空闲块。可以将不是空闲块的存储块确定为脏块。

垃圾收集调度器204可以基于存储块之中的空闲块数量来确定性能比,可以基于该性能比来确定垃圾收集操作间隔,并且可以基于该垃圾收集操作间隔,通过垃圾收集操作指示信号及时地实行垃圾收集操作。

垃圾收集实行器206可以响应于垃圾收集操作指示信号来实行垃圾收集操作。

根据本发明的实施例,存储空间监测器202、垃圾收集调度器204和垃圾收集实行器206可以被实施为App并且由处理器134实行。

图2示出存储器装置150。

参照图2,存储器装置150可以包括多个存储块,例如,block1、block2、block3、……、blockn。存储块中的每一个可以包括多个页面,例如2m个页面,多个页面的数量可以根据电路设计而变化。例如,在一些应用中,存储块中的每一个可以包括m个页面。页面中的每一个可以包括联接到字线wl的多个存储器单元。

根据本发明的实施例,存储器装置150被描述为非易失性存储器,诸如闪速存储器,例如nand闪速存储器。然而,存储器装置150可被实现为以下中的任意一种:相变随机存取存储器(pcram)、电阻式随机存取存储器(rram或reram)、铁电随机存取存储器(fram)、自旋转移扭矩磁性随机存取存储器(stt-ram或stt-mram)。

存储块中的每一个可响应于处理器134的控制而存储从主机传送的数据,并且将所存储的数据传送到主机。垃圾收集实行器206可以实行垃圾收集操作以去除存储块中的无效页面。

图3示出垃圾收集操作。

图3示出第一至第三存储块block1至block3,第一至第三存储块block1至block3中的每一个包括五个页面。每个页面可以处于多种状态中的一种状态,多种状态即有效状态(valid)、无效状态(invalid)或擦除状态(erased),其中在有效状态(valid)下页面包含已写入在其中的有效数据,在无效状态(invalid)下页面包含无效数据。

在图3的示例中,第二块block2是空闲块,并且第一块block1和第三块block3是脏块。

垃圾收集实行器206可以将第一块block1和第三块block3的有效数据复制到第二块block2中。在将有效数据复制到第二块block2之后,垃圾收集实行器206可以控制存储器装置150对第一块block1和第三块block3实行擦除操作。可以去除第一块block1和第三块block3的无效数据,并且可以将数据存储在第一块block1和第三块block3中。诸如第一块block1和第三块block3的待被实行擦除操作的块可以称为牺牲块,并且诸如第二块block2的被复制有效数据的块可以称为目标块。

垃圾收集调度器204可以以使得前台操作不会由于垃圾收集操作而被显著地延迟的方式来调度垃圾收集操作。

图4是描述根据垃圾收集调度的存储器系统110的性能的图表。

图4是示意性地示出基于时间的存储器系统110的操作性能的图表。在图表的时间轴上示出实行前台操作fg的时间和实行垃圾收集操作gc的时间。在该图表的性能轴上示出存储器系统110的总性能p总、前台操作平均性能avr_pfg和垃圾收集操作平均性能avr_pgc。

参照图4,垃圾收集调度器204可以调度垃圾收集实行器206以交替实行前台操作fg和垃圾收集操作gc。实行垃圾收集操作的时间量可以称为垃圾收集操作持续时间,并且在相邻的垃圾收集操作之间实行前台操作的时间量可以称为垃圾收集操作间隔。

例如,可以预先确定操作持续时间。基于预先确定的操作持续时间,可以确定第一量,该第一量是通过单个垃圾收集操作而写入到存储器装置150中的垃圾收集数据的量。为了对第一量的数据实行垃圾收集操作,垃圾收集实行器206可以从存储器装置150的牺牲块读取第一量的数据,并且将所收集的数据写入存储器装置150的目标存储块。由于读取第一量的数据的时间比写入第一量的数据的时间短,因此可以忽略读取第一量的数据的时间。因此,可以将第一量确定为可在预先确定的操作持续时间期间写入到存储器系统110中的数据的量。

垃圾收集调度器204可以基于第二量来确定操作间隔,第二量是通过前台操作而被写入到存储器装置150中的用户数据的量。

当垃圾收集调度器204实行一次垃圾收集操作时,垃圾收集调度器204可以写入第一量的数据,并且可以在作为前台操作而写入第二量的数据之后再次实行垃圾收集操作。当垃圾收集调度器204确定操作间隔时,存储器系统110可以交替地实行前台操作和垃圾收集操作。存储器系统110能够在通过实行垃圾收集操作来确保存储空间的同时,根据主机102的请求提供没有被显著延迟的响应。

图4的图表中的实线示出了前台操作的性能。当存储器系统110实行前台操作时,前台操作的性能可以达到总性能,而当存储器系统110实行后台操作时,前台操作的性能可以下降至最低性能。垃圾收集调度器204可以通过基于第一量调整第二量,来调整存储器系统110的平均性能。图表中的虚线表示前台操作的平均性能avg_pfg和垃圾收集操作的平均性能avg_pgc。下面所描述的垃圾收集操作性能和前台操作性能均表示平均性能。垃圾收集操作性能和前台操作性能的总和表示存储器系统110的总性能。

在下文中,根据本发明的实施例详细描述了处理器134实行基于性能的垃圾收集操作的方法。

图5是描述根据本发明的实施例的存储器系统110的操作的流程图。

在步骤s502中,垃圾收集调度器204可以基于空闲存储空间的数量来确定gc性能比,即垃圾收集操作的性能与存储器系统110的总性能的比率。例如,垃圾收集调度器204可以从存储空间监测器202获得关于空闲块数量的信息,即空闲块数量信息。gc性能比可以是空闲块数量的函数。参照图6a和图6b描述gc性能比的示例。

图6a和图6b是描述gc性能比的图表。

图6a的左侧图表定性地示出了当将数据连续地写入存储器系统110时基于时间的前台操作性能。右侧图表示出了根据空闲块数量(n)的垃圾收集操作性能。两个图表中示出的p总表示存储器系统110可以实现的总性能。

当存储器装置150具有足够的空闲存储空间时,存储器系统110可能需要将前台操作性能维持在表示性能要求的最低水平。由于存储器系统110的总性能是有限制的,因此当维持前台操作性能时,gc性能比可能下降。

当存储器装置150的空闲存储空间不足时,需要快速并且可能频繁地生成空闲块以确保空闲存储空间。可以增加gc性能比,以便使存储器系统110快速地生成空闲块。

左侧图表示出了当由于在存储器系统110的初始阶段期间,在保持前台操作性能的同时连续的数据写入而导致空闲存储空间变为不足时,可以确保空闲存储空间而不保持前台操作性能的情况。存储器装置150具有足够的空闲存储空间以将前台操作性能维持或保持在一定水平的状态称为维持状态,并且空闲存储空间不足使得导致前台操作性能下降的状态称为脏状态。维持性能是应当维持的前台操作性能。例如,当存储器系统110的空闲空间大于或等于阈值时,存储器系统110的规范可能要求将性能维持在第一性能以上。另一方面,当存储器系统110的空闲空间小于阈值时,规范可能不要求将性能维持在第一性能。空闲空间大于或等于阈值的状态可以是维持状态。空闲空间小于阈值的状态可以是脏状态。第一性能可以是维持性能。

右侧图表中所示的“t”可以表示空闲块的阈值数量,并且可用作区分维持状态和脏状态的标准。可以预先确定空闲块的阈值数量。

当存储器装置150的空闲块的数量等于或大于空闲块的阈值数量(n≥t)时,存储器系统110可能必须满足维持性能,即处于维持状态。为了使存储器系统110满足维持性能,存储器系统110可以使用由总性能p总和维持性能之间的差值表示的性能来实行垃圾收集操作。右侧图表中所示的“gci”可以表示该差值。

当存储器装置150的空闲块的数量小于空闲块的阈值数量(n<t)时,由于存储器装置150处于脏状态,因此存储器系统110可能必须快速地生成空闲块。在脏状态下,随着空闲块数量的减少,存储器系统110可以能够通过进一步增加垃圾收集操作性能来主动地确保空闲存储空间。

可以基于空闲块数量来确定gc性能比,使得存储器系统110在维持状态下将前台操作性能维持在维持性能水平,并且在脏状态下随着空闲块数量的减少主动地确保空闲存储空间。例如,可以如等式1所示地计算性能比。

[等式1]

在等式1中,n可以表示存储器装置150中的空闲块数量;rgc(n)可以表示垃圾收集操作的性能与存储器系统110的总性能的比率,rgc(n)是空闲块数量的函数;t可以表示空闲块的阈值数量,并且可以被预先确定;rgci可以表示基于希望或要求的维持性能而设定的常数;并且g(n)可以是用于确定脏状态下的性能比的空闲块数量的函数。

当存储器装置150中的空闲块数量等于或大于空闲块的阈值数量(n≥t)时,存储器系统110可能必须将前台操作性能维持为维持性能。当空闲块数量等于或大于空闲块的阈值数量(n≥t)时,垃圾收集调度器204可以将垃圾收集操作性能确定为常数rgci。例如,可以将rgci确定为剩余性能“gci”与总性能p总的比率

参照图6a和图6b的右侧图表,n≥t时间段中的垃圾收集操作性能(即,剩余性能“gci”)可以具有恒定值。

当存储器装置150的空闲块的数量小于空闲块的阈值数量(n<t)时,存储器系统110可以增加垃圾收集操作的性能比,以便通过更频繁的垃圾收集操作来确保空闲块。随着空闲块的数量变得越来越少,确保空闲存储空间的需求增加。因此,优选地,在n<t时间段中,随着空闲块数量的减少,垃圾收集实行器206通过增加垃圾收集操作性能来频繁地生成空闲块。因此,在n<t时间段中,随着n值变小,可以选择函数g(n)来增加rgc(n)的值。

在图6a的示例中,函数g(n)可以是n的正线性函数。参照图6a的右侧图表,在n<t时间段中,随着n值的减小,垃圾收集操作性能可以以线性函数的形式增加。

在图6b的示例中,函数g(n)可以是n的非线性函数。参照图6b的右侧图表,在n<t时间段中,随着n值的减小,垃圾收集操作性能可以以二次函数的形式增加。

图6a和图6b所示的函数g(n)仅是示例,并且可以不同地选择函数g(n),使得在n<t时间段中,随着n值的减小来增加rgc(n)的值。

垃圾收集调度器204可以基于空闲块数量,根据函数rgc(n)来确定垃圾收集操作的性能比。

重新参照图5,在步骤s504中,垃圾收集调度器204可以基于垃圾收集操作的性能比来调度垃圾收集操作。例如,垃圾收集调度器204可以通过基于垃圾收集操作的操作持续时间而确定垃圾收集操作之间的操作间隔,来调度垃圾收集操作。

垃圾收集调度器204可以将垃圾收集操作间隔确定为垃圾收集操作的性能比的函数。根据本发明的实施例,可以基于下面的等式2来确定垃圾收集操作的操作间隔。

[等式2]

在等式2中,(用户写入)可以表示由用户数据写入量表示的垃圾收集操作之间的操作间隔;rgc(n)可以表示参照等式1描述的垃圾收集操作的性能比;(gc写入)可以表示在单个垃圾收集操作中写入的垃圾收集数据的量;并且a可以表示常数。根据本发明的实施例,可以基于垃圾收集操作的操作持续时间和存储器系统110的总性能来确定(gc写入)。

可以参照下面的等式3至7来详细描述等式2的推导过程。

根据本发明的实施例,可以在维持状态和脏状态的情况下不同地确定垃圾收集操作之间的操作间隔。例如,可以基于下面的等式3和等式4来确定等式2。

等式3可以是在维持状态下的垃圾收集操作的操作比。在维持状态下,可以主要考虑存储器系统110的性能。因此,可以将垃圾收集操作的操作比确定为垃圾收集操作性能与前台操作性能的比率。

[等式3]

在等式3中,可以表示垃圾收集数据的量与写入存储器装置150中的用户数据的量的比率;p总可以表示存储器系统110的总性能;pgc(n)可以表示由空闲块数量的函数表示的垃圾收集操作性能;{p总-pgc(n)}可以表示总性能与垃圾收集操作性能之间的差值,即前台操作性能;并且可以表示基于前台操作性能的垃圾收集操作性能,并且可以由表示。pgc(n)可以由rgc(n)×p总表示。基于等式3,可以导出等式2的n≥t时间段中的等式

等式4用于确定脏状态下的垃圾收集操作的操作比。对于存储器系统110而言,重要的是在脏状态下确保空闲存储空间。因此,为了确定脏状态下的垃圾收集操作的操作比,不仅必须考虑存储器系统110的性能,而且还必须考虑空闲存储空间的量。垃圾收集操作的操作比可以由等式4表示。下面参照等式5至8描述基于等式4推导出的性能比函数。

[等式4]

在等式4中,(页面生成)可以表示由垃圾收集操作确保的空闲存储空间的量;(nand写入)可以表示写入到存储器装置150中的数据的量,并且可以由(gc写入)+(用户写入)表示;并且可以表示基于前台操作性能的垃圾收集操作性能,可以由表示。将参照图7详细描述由垃圾收集操作确保的空闲存储空间的量。

图7示出通过垃圾收集操作而确保的空闲存储空间的量。图7示出每个包括五个页面的第一至第三存储块block1至block3。图7示出图3所示的存储块的垃圾收集操作完成的状态。

参照图7,可以通过垃圾收集操作将作为脏块的第一块block1和第三块block3改变为空闲块,并且可以将作为空闲块的第二块block2改变为脏块。在图7的示例中,可以通过写入三个页面(gc_write:3个页面)并且实行擦除操作来生成10个空闲页面(page_genearation:10个页面)。空闲页面可以指处于擦除状态的、可用于待新编程的数据的页面。由垃圾收集操作生成的空闲页面的数量可能与在垃圾收集操作中写入的页面的数量不同。随着牺牲块的有效页面的数量的增加,垃圾收集实行器206可能必须写入更多的页面,以便生成与垃圾收集操作中写入的页面一样多的空闲页面。通过垃圾收集操作而生成的空闲页面的数量可以由下面的等式5表示。

[等式5]

在等式4中,(页面生成)可以表示由垃圾收集操作生成的空闲页面的量;(牺牲块的页面)可以表示垃圾收集操作的牺牲块的页面的总数量;(牺牲块的有效页面)可以表示牺牲块的有效页面的总数量;并且(gc写入)可以表示在单个垃圾收集操作中写入的垃圾收集数据的量。根据本发明的实施例,可以基于垃圾收集操作的操作持续时间和存储器系统110的总性能来确定(gc写入)。基于牺牲块的有效页面的数量与牺牲块的页面的总数量的比率,来估计通过垃圾收集操作而生成的空闲页面的数量。

重新参照等式4,可以表示由垃圾收集操作生成的页面的量与写入存储器装置150的数据的量的比率。写入存储器装置150的数据可以包括用户数据和垃圾收集数据。

所生成的页面的量(例如,数量)与写入存储器装置150中的数据的量的比率可以根据牺牲块中的有效页面的数量而较大地变化。根据本发明的实施例,为了减少垃圾收集调度器204的计算负荷和垃圾收集操作性能的变化,可以通过下面示出的等式6来近似地估计(approximate)所生成的页面的量或数量。

[等式6]

(页面生成)=(gc放大因子)×(gc写入)

等式6示出由垃圾收集写入量和垃圾收集放大因子的乘积来确定通过垃圾收集操作生成的空闲页面的近似量。垃圾收集放大因子可以表示由垃圾收集操作生成的空闲页面的量与写入存储器装置150中的数据的量之间的关系。下面描述垃圾收集放大因子的示例。

当存储器装置150的空闲存储空间较小时,在存储块中可能存储了大量的无效数据。当垃圾收集实行器206通过选择具有大量无效数据的存储块作为牺牲块来实行垃圾收集操作时,被选择牺牲块的有效页面的数量可以随着空闲存储空间的大小变小而变小。这是因为当存储器装置150的空闲存储空间较小时,可能存在每个具有所存储的大量无效数据的许多存储块。因此,当空闲块的数量较少时,垃圾收集实行器206可以能够通过写入少量有效数据来生成相同量的空闲页面。换言之,当存在较小数量的空闲块时,即使写入了相同量的有效数据,垃圾收集实行器206也可以能够生成更多的存储块。因此,优选地使用垃圾收集放大因子,该垃圾收集放大因子随着空闲块数量变小而具有更大的值。例如,如下面的等式7中所示,垃圾收集放大因子可以与rgc(n),即垃圾收集操作的性能与存储器系统110的总性能的比率成比例,并且随着空闲块数量变小而具有更大的值。

[等式7]

(gc放大因子)=a×rgc(n)

在等式7中,a可以表示常数。如上面参照等式1所描述的,rgc(n)是垃圾收集操作的性能与存储器系统110的总性能的比率。等式7指示当存储器装置150具有较小数量的空闲块时,即使实行相同量的垃圾收集写入,通过垃圾收集操作而生成的空闲页面的量也可能较大。

基于等式4至等式7,可以导出(用户写入)={(a-1)-a×rgc(n)}×(gc写入),该等式为等式2中的在n<t时段中的等式。

重新参照图5,在步骤s506中,垃圾收集实行器206可以基于由垃圾收集调度器204所确定的垃圾收集操作间隔来实行垃圾收集操作。垃圾收集调度器204可以确定由等式2表示的操作间隔。当垃圾收集操作完成时,垃圾收集调度器204可以将与操作间隔相对应的用户数据写入存储器装置150中,然后将垃圾收集操作指示信号提供至垃圾收集实行器206。

根据本发明的实施例,存储器系统110可以基于空闲块数量来确定垃圾收集性能比,并且基于所确定的性能比来调度垃圾收集操作。根据本发明的实施例,可以基于等式1来确定性能比,并且可以基于等式2来确定垃圾收集操作间隔。通过仅确定等式1和2中的g(n)、rgci、a和t,可以各种地设计垃圾收集调度器204以应用于各种存储器系统110。可以根据性能要求来确定rgci,并且可以将垃圾收集调度器204设计为在无需对存储器系统110进行大量测试的情况下,满足性能要求。

图8a和图8b示出根据本发明的实施例的存储器系统110的性能。

图8a和图8b是在对存储器系统110连续地实行写入操作时的性能测试结果的图表。图8a和图8b的图表示出了基于使用存储器系统110的时间的前台操作的性能。由于在性能测试期间连续地写入数据,因此使用存储器系统110的时间可能与存储器装置150中存储的有效数据的量成比例。在每个图表中示出的虚线可以表示当根据现有技术实行基于级别的垃圾收集操作时的前台操作的性能,并且实线可以表示根据本发明实施例的当实行基于性能的垃圾收集操作时的前台操作的性能。

图8a是示出在对存储器系统110实行顺序写入操作时实行性能测试的结果的图表。图8b是示出在对存储器系统110实行随机写入操作时实行性能测试的结果的图表。

将图8a和图8b的基于级别的垃圾收集操作的性能进行比较可以揭示下面的事实。与实行顺序写入测试的情况相比,当实行随机写入测试时,存储器系统110可以较晚地变为脏状态。换言之,根据存储器系统110的操作环境,垃圾收集操作的性能可能不同。因此,即使根据多个参数来配置存储器系统110,也难以知道存储器系统110是否满足性能要求。参照图8b,可以看出,当写入随机数据时,直到存储器装置150的空闲存储空间变得显著不足时,才可能充分地实行垃圾收集操作。

将图8a和8b的基于性能的垃圾收集操作的性能进行比较可以揭示下面的事实。不管写入数据的属性如何,当空闲存储空间的大小减小到设定水平或更低时,存储器系统110可以改变为脏状态。换言之,根据本发明的实施例,可以将垃圾收集调度器204设计为不管存储器系统110的操作环境如何都满足性能要求。

另外,垃圾收集调度器204可以通过使用垃圾收集性能比来调度垃圾收集操作,该垃圾收集性能比被设定为使得存储器系统满足如图6a的右侧图表所示的性能要求。因此,图8a和图8b的基于性能的垃圾收集操作的性能图表可以具有类似于图6a的左侧图表的形式。因此,可以在无需对存储器系统110实行大量测试的情况下,估计存储器系统110的性能。

根据本发明的实施例,控制器可以通过动态地调整实行垃圾收集操作的频率来改善存储器系统的性能。

虽然已经针对具体实施例说明并描述了本发明,但是对于本领域技术人员显而易见的是,可以在不脱离如所附权利要求所限定的本发明的实质和范围的情况下进行各种改变和修改。本发明涵盖落入权利要求范围内的所有这些改变和修改。

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

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图