存储装置、操作存储装置的方法和非易失性存储器装置与流程

文档序号:20616765发布日期:2020-05-06 20:15阅读:190来源:国知局
存储装置、操作存储装置的方法和非易失性存储器装置与流程
本申请要求于2018年10月25日提交到韩国知识产权局的第10-2018-0128313号韩国专利申请的权益,该韩国专利申请的主题通过引用而包含于此。发明构思涉及电子装置,更具体地,涉及数据存储装置的配置和操作。
背景技术
:现代电子装置种类繁多、范围广泛,它们提供许多不同的功能和能力。这些电子装置包括各种电路,其中各个电路在与其他电子电路通信的同时执行一个或更多个特定功能。能够接收、存储和提供数据的电子装置(以下被称为“存储装置”)是许多现代产品的通用组件。存储装置可以以各种易失性和/或非易失性类型实现。闪存是即使在没有施加电力的情况下也保持存储的数据的非易失性存储装置中的一种。使用闪存的存储装置(以下被称为“闪存装置”)通常以页为单位写入数据(或对数据进行编程),但是以块为单位擦除数据。当将数据写入先前编程的存储器单元时,闪存装置在写入新数据之前擦除存储器单元。为了以特定物理特性有效地实现写入、读取和擦除操作,闪存装置使用一个或更多个存储器块管理方法以及相应的硬件、固件和/或软件。例如,可以在闪存装置中使用存储器控制器来执行垃圾收集操作,以便分配或重新分配存储器空间(例如,所谓的“空闲块”)。在某些实施例中,垃圾收集是用于通过如下步骤来获得一个或更多个空闲块的操作:从一个或更多个“牺牲块”读取有效数据,将读取的数据移动(或复制)到一个或更多个“目标块”并擦除牺牲块。然而,执行传统的垃圾收集操作会花费相当多的时间,并且随着牺牲块的数量和/或大小的增大,垃圾收集操作的总效率降低。滞后的垃圾收集操作趋于降低闪存装置的整体性能。技术实现要素:发明构思提供了使用估计有效页数量有效地执行垃圾收集的存储装置、方法和非易失性存储器装置。根据发明构思的一方面,提供了一种操作存储装置的方法,存储装置包括非易失性存储器装置和控制非易失性存储器装置的存储器控制器。所述方法包括:使用基于每个存储器块的有效页计数训练的神经网络模型来估计每个存储器块的有效页计数,存储器块在非易失性存储器装置中存储数据;基于每个存储器块的估计有效页计数从存储器块选择牺牲块,牺牲块进行垃圾收集;以及对牺牲块执行垃圾收集。根据发明构思的另一方面,提供了一种存储装置,所述存储装置包括:非易失性存储器装置,包括存储数据的存储器块;以及存储器控制器,被配置为使用神经网络模型估计每个存储器块的有效页计数,并基于每个存储器块的估计有效页计数从存储器块选择牺牲块,基于每个存储器块的有效页计数来训练神经网络模型,牺牲块进行垃圾收集。根据发明构思的又一方面,提供了一种非易失性存储器装置,所述非易失性存储器装置包括:存储器单元阵列,包括存储数据的存储器块;以及控制逻辑块,被配置为控制要对牺牲块执行的垃圾收集,基于从神经网络模型提供的估计有效页计数来从存储器块选择牺牲块,神经网络模型是基于存储器块的有效页计数训练的。附图说明通过下面结合附图的详细描述,将更清楚地理解发明构思的实施例,在附图中:图1是包括在根据发明构思的实施例的存储装置中的存储器系统的框图;图2是图1中的存储器控制器的框图;图3是图1中的存储器装置的框图;图4是图3中的第一存储器块的等效电路图;图5是图3中的第一存储器块的示例性透视图;图6是图2中的垃圾收集模块的图;图7a和图7b是示出图6中的模型输入特征管理器模块中收集的信息的图;图8是图6中的神经网络模型的示例的图;图9a、图9b、图9c、图9d、图9e和图9f(统称为图9a至图9f)是进一步地且概念性地示出图8的神经网络模型的操作的相应的图;图10和图11是根据发明构思的实施例的垃圾收集操作的流程图;图12是示出根据图10和图11的垃圾收集操作执行垃圾收集的过程的图;图13示出了针对图12的垃圾收集操作的比较示例;以及图14是根据发明构思的实施例基于有效页的估计数量执行的垃圾收集操作应用于固态驱动器(ssd)系统的示例的框图。具体实施方式图1是包括存储器控制器110和存储器装置120的存储器系统100的总体框图。存储器装置120可以是诸如闪存装置的非易失性存储装置。可选择地,存储器装置120可以是电阻式存储装置,诸如,电阻式随机存取存储器(reram)、磁ram(mram)或相变ram(pram)。在下文中描述的实施例中,假设存储器装置120是包括nand或nor闪存单元的闪存装置。存储器控制器110和存储器装置120可以集成到单个半导体装置中。在一些实施例中,存储器系统100可以实现为嵌入在存储装置中的内部存储器,并且可以包括例如嵌入式通用闪存(ufs)存储器装置、嵌入式多媒体卡(emmc)或固态驱动器(ssd)。在一些实施例中,存储器系统100可以实现为可去除地安装在存储装置中的外部存储器,并且可以包括例如ufs存储器卡、紧凑型闪存(cf)、安全数字(sd)、微型sd、小型sd(mini-sd,也被称为迷你sd)、极限数字(xd)或记忆棒。存储器控制器110可以用于响应于来自主机(未示出)的读取数据请求req从存储器装置120读取数据。存储器控制器110还可以用于响应于来自主机的写入数据请求req将数据编程(或写入)到存储器装置120。也就是说,存储器控制器110可以通过向存储器装置120提供适当的命令cmd、地址addr和/或控制信号ctrl而不同地用于控制与存储器装置120的编程(或写入)操作、读取操作和/或擦除操作相关的执行。另外,将要写入和/或读取的数据data在存储器控制器110与存储器装置120之间接收/发送。在其中存储器装置120是闪存装置的某些实施例中,存储器控制器110可以包括闪存转换层(ftl)115。ftl115可以包括用于管理存储器装置120的编程、读取和擦除操作的系统软件(或固件)。当存储器系统100通电时,可以将ftl115加载到存储器控制器110的工作存储器220(图2)。包括在ftl115中的固件可以通过存储器控制器110中的处理单元210(在图2中)来运行。ftl115可以用于将逻辑地址(例如,与从主机接收的数据访问请求req相关的逻辑地址)转换成对应的物理地址。然后可以向存储器装置120提供该物理地址。此外,ftl115可以在某些存储器管理操作期间使用(或引用)。存储器系统管理操作可以根据存储器装置120的指定存储器单元区域(例如,芯片、块和/或页)来执行。例如,ftl115可以对存储器装置120中包括的存储器单元阵列122的块执行垃圾收集和/或坏块管理。出于本描述的目的,假设存储器单元阵列122包括大量nand型闪存单元。存储器单元阵列122可以在某些实施例中实施为包括布置在多个nand串中的存储器单元的三维(3d)存储器单元阵列。在下文中将参照图4和图5以一些附加细节来描述这些示例。3d存储器单元阵列可以在存储器单元阵列的至少一个物理层级处单片地形成,存储器单元阵列具有布置在硅基底上的有源区和形成在基底上或基底中的电路,该电路参与存储器单元的操作。术语“单片(的)”意味着阵列的每一层级的层直接堆叠在阵列的在下面的层级的层上。在一些实施例中,3d存储器单元阵列包括在垂直方向上布置的nand串,使得至少一个存储器单元位于另一存储器单元上。所述至少一个存储器单元可以包括电荷捕获层。美国专利号7,679,133;8,553,466;8,654,587和8,559,235以及公布的美国专利申请号2011/0233648公开了3d存储器阵列的示例性结构,其中3d存储器阵列包括多个层级,并且根据层级共用字线和/或位线。这些文件的主题通过引用包括于此。图2是进一步示出图1的存储器控制器110的一个示例的框图。这里,存储器控制器110包括处理单元210、工作存储器220、主机接口(i/f)230、存储器i/f240和只读存储器(rom)250。处理单元210可以包括中央处理单元(cpu)或微处理器,并且可以控制存储器控制器110的全部操作。处理单元210可以运行加载到工作存储器220的固件以控制存储器控制器110。存储器控制器110可以通过各种标准接口与外部主机通信。主机i/f230提供主机与存储器控制器110之间的接口。标准接口可以包括高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机系统接口(scsi)、串行附属scsi(sas)、外围组件互连(pci)、高速pci(pci-e)、电气和电子工程师协会(ieee)1394、通用串行总线(usb)、sd卡接口、mmc接口、emmc接口、ufs接口、cf卡接口等。存储器i/f240提供与存储器装置120的功能接口。例如,可以通过存储器接口240将写入数据发送到存储器装置120,并且可以通过存储器接口240从存储器装置120接收读取数据。存储器接口240可以向存储器装置120提供命令cmd、地址addr和/或控制信号ctrl,并且从存储器装置120接收返回的各种数据。然后,可以向存储器控制器110的其他组件提供这样的数据。rom250可以用于存储代码数据,所述代码数据对于采用存储器系统100的存储装置的初始化启动是必需的。工作存储器220可以使用各种类型的存储器来实现。例如,工作存储器220可以包括高速缓冲存储器、动态ram(dram)、静态ram(sram)、pram和闪存装置中的至少一种。存储器控制器110还可以包括图2中未示出的各种组件。例如,存储器控制器110还可以包括:缓冲存储器,用于在写/读操作期间临时存储数据;缓冲器控制模块,控制缓冲器存储器;命令生成模块,响应于来自主机的数据访问请求产生用于控制存储器操作的命令;命令队列,存储多个命令等。主机管理数据的单元可以与存储器装置120管理数据的单元不同。例如,主机可以以逐扇区为基础地写入和读取数据,而存储器装置120可以以逐页为基础地写入和读取数据,其中页的大小可以大于扇区的大小。因此,在写入操作期间,缓冲器控制模块可以将从主机接收的数据扇区分组为数据页,使得页数据可以被有效地写入存储器装置120。上面参照图1描述的ftl115可以加载到工作存储器220。作为执行垃圾收集的固件,ftl115可以包括垃圾收集模块600,垃圾收集模块600可以用于通过将有效页数据从牺牲块复制到目标块然后擦除牺牲块以创建空闲块来获得(或获取)空闲块。在某些实施例中,垃圾收集模块600可以根据由固件实现的各种功能而包括垃圾收集触发模块610、垃圾收集管理器模块620、牺牲块选择模块630以及模型输入特征管理器模块640。下面将参照图6以一些附加细节描述垃圾收集模块600的一个示例。存储器控制器110可以用于使用垃圾收集模块600来控制存储器装置120的垃圾收集。例如,存储器控制器110可以使用神经网络模型800估计第一存储器块blk1至第n存储器块blkn(在图3中)中的有效页数量,所述神经网络模型800已经(例如)使用第一存储器块blk1至第n存储器块blkn中的有效页数量来进行训练。这里,第一存储器块blk1至第n存储器块blkn包括在存储器装置120中。存储器控制器110可以基于第一存储器块blk1至第n存储器块blkn中的每个中的估计有效页数量,来选择牺牲块以从第一存储器块blk1至第n存储器块blkn进行垃圾收集。例如,存储器控制器110可以选择第一存储器块blk1至第n存储器块blkn之中具有最低的估计有效页数量的存储器块作为牺牲块。当选择牺牲块时,存储器控制器110可以排除第一存储器块blk1至第n存储器块blkn之中具有估计有效页数量趋于减小的存储器块。存储器控制器110可以在第一存储器块blk1至第n存储器块blkn之中选择具有估计有效页数量被保持的存储器块作为牺牲块。存储器控制器110可以以这样的方式控制垃圾收集:将所选择的牺牲块中的有效页的数据复制到目标块并且擦除牺牲块。图3是进一步示出图1的存储器装置120的一个示例的框图。参照图3,存储器装置120可以包括存储器单元阵列122、地址解码器123、控制逻辑块124、页缓冲器125、输入/输出(i/o)电路126和电压发生器127。尽管未示出,但是存储器装置120还可以包括i/o接口。存储器单元阵列122可以连接到字线wl、串选择线ssl、地选择线gsl和位线bl。存储器单元阵列122可以经由字线wl、串选择线ssl和地选择线gsl连接到地址解码器123,并且经由位线bl连接到页缓冲器125。存储器单元阵列122可以包括第一存储器块blk1至第n存储器块blkn。第一存储器块blk1至第n存储器块blkn中的每个可以包括多个存储器单元和多个选择晶体管。存储器单元可以连接到字线wl,并且选择晶体管可以连接到串选择线ssl或地选择线gsl。第一存储器块blk1至第n存储器块blkn中的每个中的存储器单元可以包括存储1比特数据的单级单元或存储m比特数据的多级单元,其中m大于1。地址解码器123可以选择存储器单元阵列122的第一存储器块blk1至第n存储器块blkn中的一个,选择所选择的存储器块的字线wl中的一条,并选择串选择线ssl中的一条。控制逻辑块124可以基于命令cmd、地址addr和控制信号ctrl输出用于对存储器单元阵列122执行编程、读取和擦除操作的各种控制信号。控制逻辑块124可以向地址解码器123提供行地址x-addr,向页缓冲器125提供列地址y-addr,并且向电压发生器127提供电压控制信号ctrl_vol。控制逻辑块124可以对基于第一存储器块blk1至第n存储器块blkn中的每个中的有效页数量而从第一存储器块blk1至第n存储器块blkn中选择的牺牲块执行垃圾收集,所述有效页数量是由存储器控制器110的神经网络模型800估计的。当存储器控制器110选择第一存储器块blk1至第n存储器块blkn之中具有最低的估计有效页数量的存储器块作为牺牲块时,控制逻辑块124可以通过将牺牲块中的有效页的数据复制到目标块并擦除牺牲块来执行垃圾收集。对于在第一存储器块blk1至第n存储器块blkn之中之前已经从牺牲块选择排除并且具有估计有效页数量趋于减小的存储器块,当存储器控制器110因该存储器块的有效页数量为0而选择其作为牺牲块时,控制逻辑块124可以通过擦除牺牲块来执行垃圾收集。当存储器控制器110在第一存储器块blk1至第n存储器块blkn之中选择具有保持的估计有效页数量的存储器块作为牺牲块时,控制逻辑块124可以通过将牺牲块中的有效页的数据复制到目标块并擦除牺牲块来执行垃圾收集。页缓冲器125可以根据操作模式操作为写入驱动器或感测放大器。在读取操作中,页缓冲器125可以在控制逻辑块124的控制下感测所选择的存储器单元的位线bl。已感测的数据可以存储在页缓冲器125中包括的锁存器中。页缓冲器125可以在控制逻辑块124的控制下,将存储在锁存器中的数据转存到i/o电路126。i/o电路126可以临时存储经由i/o线i/o从存储器装置120的外部接收的命令cmd、地址addr、控制信号ctrl和数据data。i/o电路126可以临时存储存储器装置120的读取数据,并且在预定时间点经由i/o线i/o输出读取数据。电压发生器127可以基于电压控制信号ctrl_vol产生用于对存储器单元阵列122执行编程、读取和擦除操作的各种电压。也就是说,电压发生器127可以产生字线电压vwl,例如,编程电压、读取电压、通过电压、擦除验证电压或编程验证电压。电压发生器127还可以基于电压控制信号ctrl_vol产生串选择线电压和地选择线电压。另外,电压发生器127可以产生要提供到存储器单元阵列122的擦除电压。图4是图3中所示的第一存储器块blk1的等效电路图。参照图4,第一存储器块blk1可以包括nand串ns11至ns33、字线wl1至wl8、位线bl1至bl3、地选择线gsl1至gsl3、第一串选择线ssl1至第三串选择线ssl1至ssl3以及共源极线csl。每个nand串(例如,ns11)可以包括串联连接的串选择晶体管sst、多个存储器单元mc和地选择晶体管gst。串选择晶体管sst连接到与其对应的第一串选择线ssl1。地选择晶体管gst连接到与其对应的地选择线gsl1。串选择晶体管sst连接到与其对应的位线bl1。地选择晶体管gst连接到共源极线csl。在nand串ns11至ns33之中,第一行中的nand串ns11、ns12和ns13共同地连接到第一串选择线ssl1,并且可以构成第一平面。第二行中的nand串ns21、ns22和ns23共同地连接到第二串选择线ssl2,并且可以构成第二平面。第三行中的nand串ns31、ns32和ns33共同地连接到第三串选择线ssl3,并且可以构成第三平面。在当前实施例中,第一存储器块blk1示出了连接到三条位线bl1至bl3的三个平面。存储器单元mc分别连接到字线wl1至wl8。连接到一条字线并同时编程的一组存储器单元mc被称为页。第一存储器块blk1可以包括多个页。在实施例中,多个页可以连接到单条字线。在距共源极线csl特定高度处的字线(例如,字线wl4)可以共同地连接到三个页。同时,每个存储器单元mc可以存储一比特或至少两比特数据。能够存储一比特数据的存储器单元被称为单级单元(slc)或单比特单元。能够存储至少两比特数据的存储器单元被称为多级单元(mlc)。在2比特mlc的情况下,在单个物理页中可以存储两页数据。例如,在连接到字线wl4的存储器单元中可以存储六页数据。第一存储器块blk1中的nand串的行数和列数可以增大或减小。当nand串的行数改变时,平面的数量可以改变。当nand串的列数改变时,连接到nand串的列的位线的数量和连接到单条串选择线的nand串的数量可以改变。nand串的高度可以增大或减小。例如,堆叠在每个nand串中的存储器单元的数量可以增大或减小。图5是图3中所示的第一存储器块blk1的示例性透视图。参照图5,第一存储器块blk1垂直地形成在基底sub上。基底sub具有第一导电类型(例如,p型)。掺杂有第二导电类型(例如,n型)杂质的共源极线csl设置在基底sub中以在第一方向“y”上延伸。绝缘层il设置在基底sub上并且在两个相邻的共源极线csl之间。绝缘层il在第一方向“y”上延伸并在第三方向“z”上顺序地设置。绝缘层il在第三方向“z”上间隔一定距离。在第三方向“z”上贯穿绝缘层il的柱p在基底sub上并且在两个相邻的共源极线csl之间顺序地布置在第一方向“y”上。例如,柱p可以与基底sub接触,贯穿绝缘层il。详细地,每个柱p的表面层s可以包括具有第一导电类型的硅材料并且可以用作沟道区。每个柱p的内层i可以包括诸如氧化硅的绝缘材料或气隙。电荷存储层cs在两个相邻的共源极线csl之间的区域中沿绝缘层il、柱p和基底sub的暴露表面设置。电荷存储层cs可以包括隧道绝缘层、电荷捕获层和阻挡绝缘层。诸如选择线(例如,gsl和ssl)的栅电极ge以及字线wl1至wl8设置在电荷存储层cs的暴露表面上并且在两个相邻的共源极线csl之间的区域中。漏极接触件dr设置在每个柱p上。例如,漏极接触件dr可以包括掺杂有第二导电类型杂质的硅材料。位线bl1至bl3设置在漏极接触件dr上。位线bl1至bl3在第二方向“x”上延伸并且在第一方向“y”上间隔一定距离。图6是进一步示出图2的垃圾收集模块600的一个示例的框图。参照图6,垃圾收集模块600可以包括垃圾收集触发模块610、垃圾收集管理器模块620、牺牲块选择模块630和模型输入特征管理器模块640。垃圾收集触发模块610可以用于对包括在存储器装置120的存储器单元阵列122(图3中)中的第一存储器块blk1至第n存储器块blkn之中的空闲块的数量进行计数。垃圾收集触发模块610还可以用于通过使(或触发)存储器控制器110进入垃圾收集模式(以下称为“gc模式”)来确定操作存储器系统100的点而获取一个或更多个空闲块。例如,当空闲块的数量低于给定的第一垃圾收集阈值(在下文被称为“第一gc阈值”)时,垃圾收集触发模块610可以使用垃圾收集管理器模块620触发gc模式。在某些实施例中,当存储器系统100进入gc模式时,可以暂时中断由存储器装置120执行的数据访问操作(例如,读取、写入和/或擦除操作)。因此,垃圾收集触发模块610可以用于经由主机i/f230通知主机存储器系统已进入gc模式。在gc模式下,垃圾收集管理器模块620可以选择至少一个牺牲块以进行垃圾收集。垃圾收集管理器模块620还可以用于选择至少一个目标块。垃圾收集管理器模块620可以将有效页的数据从牺牲块复制到目标块,然后擦除牺牲块。垃圾收集管理器模块620可以选择从牺牲块选择模块630提供的在第一存储器块blk1至第n存储器块blkn之中被预测为具有低垃圾收集“成本”(例如,时间和/或所需资源)的存储器块。垃圾收集管理器模块620可以选择比目标块多的牺牲块来获取一个或更多个空闲块。例如,可以选择三个牺牲块和两个目标块,并且可以将来自有效页的数据从三个牺牲块复制到两个目标块。在复制三个牺牲块的有效数据之后擦除三个牺牲块,因此,可以获取至少一个块。垃圾收集管理器模块620可以在gc模式期间请求要从牺牲块选择模块630选择的牺牲块。响应于垃圾收集管理器模块620的请求,牺牲块选择模块630可以从第一存储器块blk1至第n存储器块blkn之中预测具有低(或最低)垃圾收集成本的存储器块。牺牲块选择模块630可以基于存储器系统100(在图1中)的内部信息来预测具有低垃圾收集成本的存储器块。可以不同地推导出这样的内部信息,但是在某些实施例中,内部信息将从存储器系统100或存储器系统100的组件执行的先前数据处理操作推导出。例如,可以从模型输入特征管理器模块640提供存储器系统100的内部信息。在某些实施例中,牺牲块选择模块630可以使用神经网络模型800来预测第一存储器块blk1至第n存储器块blkn之中具有低垃圾收集成本的存储器块。神经网络模型800可以生成神经网络、学习神经网络、基于输入数据执行操作并基于操作结果获得训练数据,或者提供与训练数据对应的输出数据。例如,作为输入数据,可以将针对第一存储器块blk1至第n存储器块blkn中的每个在若干过去时间步骤中的每个(例如,“t-2”和“t-1”,假定当前时间步骤为“t”)处的有效页数量输入到神经网络模型800。作为响应,神经网络模型800可以将针对第一存储器块blk1至第n存储器块blkn中的每个的估计有效页数量作为输出数据进行提供。将参照图8以一些附加细节描述神经网络模型800的一个示例。牺牲块选择模块630可以基于从神经网络模型800输出的针对第一存储器块blk1至第n存储器块blkn中的每个的估计有效页数量,来预测具有低垃圾收集成本的存储器块。牺牲块选择模块630可以通知垃圾收集管理器模块620具有低垃圾收集成本的存储器块为牺牲块。牺牲块选择模块630可以从模型输入特征管理器模块640请求存储器系统100的内部信息(用作gc模式下的神经网络模型800的输入数据)。模型输入特征管理器模块640可以收集存储器系统100的内部信息。模型输入特征管理器模块640可以周期性地收集与由存储器系统100执行的先前执行的(或“先前的”)数据处理(例如,写入、读取、擦除或修改操作)关联的内部信息。参照图7a,模型输入特征管理器模块640可以收集针对存储器装置120的第一存储器块blk1至第n存储器块blkn中的每个的有效页数量(可以被称为有效页计数(vpc))、表示ssd的读取iops的平均数量的平均读取每秒i/o操作数(iops)、表示ssd的写入iops的平均数量的平均写入iops、表示ssd的读取请求的平均数据大小的平均读取io大小、表示ssd的写入请求的平均数据大小的平均写入io大小、ssd的读取吞吐量、ssd的写入吞吐量、ssd的空闲块计数等。此外,如图7b中进一步所示,模型输入特征管理器模块640可以存储针对第一存储器块blk1至第n存储器块blkn中每个在若干过去时间步骤(例如,“t-2”和“t-1”和当前时间步骤“t”)中的每个处的vpc。换句话说,模型输入特征管理器模块640可以跨过由时段“t”测量的一系列间隔而存储针对第一存储器块blk1至第n存储器块blkn中的每个的vpc。模型输入特征管理器模块640可以响应于牺牲块选择模块630的请求,将收集的存储器系统100的内部信息作为神经网络模型800的输入数据进行提供。图8是进一步示出图6的神经网络模型800的操作的一个示例中的概念图。参照图8,神经网络模型800可以具有各种架构,包括例如输入层、一个或更多个隐藏层以及输出层。神经网络模型800可以基于输入数据(例如,i1和i2)执行操作,以便生成输出数据(例如,o1和o2)。可以通过执行基于输入数据的操作来训练神经网络模型800。在训练神经网络模型800时,输入数据可以被认为是训练数据。神经网络模型800可以是均包括至少两个隐藏层的深度神经网络(dnn)或n层神经网络。因此,神经网络模型800可以是包括输入层2、第一隐藏层3和第二隐藏层4以及输出层5的dnn。dnn可以包括卷积神经网络(cnn)、递归神经网络(rnn)、深信念网络、受限玻尔兹曼机等,但不限于此。当神经网络模型800具有dnn架构时,因为神经网络模型800具有用于获得有效信息的许多层,所以神经网络模型800能够处理复杂数据集。尽管神经网络模型800具有四层(即,图8中的输入层2、第一隐藏层3和第二隐藏层4以及输出层5),但这仅是示例,并且神经网络模型800可以包括更少层或更多层。另外,神经网络模型800可以包括除图8中所示的层架构之外的其他各种类型的层架构。在神经网络模型800中包括的输入层2、第一隐藏层3和第二隐藏层4以及输出层5中的每个可以包括多个神经元。神经元可以指被称为处理元件(pe)、处理单元或类似术语的人工节点。例如,输入层2可以包括两个神经元(或节点),第一隐藏层和第二隐藏层中的每个可以包括三个神经元(或节点)。然而,这仅是示例,并且包括在神经网络模型800中的层可以包括各种数量的神经元(或节点)。包括在神经网络模型800中的不同层中包括的神经元可以彼此连接并且彼此交换数据。神经元可以从其他神经元接收数据,对数据执行操作并将操作结果输出到其他神经元。每个神经元(或节点)的输入和输出可以分别称为输入激活(inputactivation)和输出激活(outputactivation)。换句话说,激活(activation)可以是同时与后续层中包括的神经元的输入和神经元的输出对应的参数。每个神经元可以基于从前一层中包括的神经元接收的激活和权重来确定其自身的激活。权重是用于计算神经元中的输出激活的参数,并且可以是分配到神经元之间的连接关系的值。每个神经元可以由接收输入并提供激活的神经处理单元(或神经pe)处理。每个神经元的输入和输出可以彼此映射。例如,σ可以是激活函数,可以是用于从第i-1层中的第k神经元连接到第i层中的第j神经元的权重,可以是第i层中的第j神经元的偏差值,可以是第i层中的第j神经元的激活,并且可以被称为后激活。后激活可以使用等式1来计算:如图8中所示,第一隐藏层3中的第一神经元的后激活可以表示为后激活可以具有根据等式1的值换句话说,后激活可以是通过将激活函数应用于从前一层接收的激活的总和而获得的值。然而,等式1仅是解释用于处理神经网络中的数据的激活和权重而提供的示例,并且实施例不限于此。如上所述,许多数据集在彼此连接的多个神经元之间交换,并且在神经网络模型800中从一层到另一层经历许多操作。可以通过这些操作来训练神经网络模型800,并且可以基于训练来优化权重和偏差。返回到图8中所示的当前实施例,神经网络模型800可以将针对第一存储器块blk1至第n存储器块blkn中的每个在时间步骤“t-2”、“t-1”和“t”中的每个处的vpc作为输入数据i1和i2输入到输入层2。然后,神经网络模型800可以基于针对第一存储器块blk1至第n存储器块blkn中的每个在每个时间步骤处的vpc执行操作,通过所述操作获得训练数据,并提供与训练数据对应的输出数据。以这种方式,神经网络模型800的输出数据可以用于表示针对第一存储器块blk1至第n存储器块blkn中的每个在未来时间步骤(例如,“t+1”)处的估计vpc。神经网络模型800可以基于所执行的神经网络操作而包括每个神经元的参数(例如,诸如权重和偏差的各种数据)。通过神经网络模型800的重复训练,可以提供参数使得神经网络模型800可以更准确地计算关于给定输入(即,第一存储器块blk1至第n存储器块blkn中的每个的vpc)的输出(即,第一存储器块blk1至第n存储器块blkn中的每个的估计vpc)。在实施例中,神经网络模型800的参数可以包括例如表示存储器系统100的数据处理操作的ssd的平均读取iops、平均写入iops、平均读取io大小、平均写入io大小、读取吞吐量、写入吞吐量和空闲块计数等。例如,当ssd的平均读取iops、平均写入iops、平均读取io大小、平均写入io大小、读取吞吐量或写入吞吐量增大时,由神经网络模型800针对第一存储器块blk1到第n存储器块blkn中的每个估计的vpc可以趋于减小。当ssd的空闲块计数减小时,由神经网络模型800针对第一存储器块blk1到第n存储器块blkn中的每个估计vpc也可以趋于减小。图9a、图9b、图9c、图9d、图9e和图9f(统称为图9a至图9f)是进一步示出图8的神经网络模型800的操作的相应概念图。参照图9a,神经网络模型800可以具有针对第一存储器块blk1至第n存储器块blkn中的每个在过去时间步骤“t-2”和“t-1”以及当前时间步骤“t”中的每个处的vpc以及神经网络模型800的参数(诸如ssd的平均读取iops、平均写入iops、平均读取io大小、平均写入io大小、读取吞吐量、写入吞吐量或空闲块计数)作为输入,执行操作,通过所述操作获得训练数据,并提供第一存储器块blk1至第n存储器块blkn中的每个在未来时间步骤“t+1”处的估计vpc作为与训练数据对应的输出数据。第一存储器块blk1至第n存储器块blkn中的每个在未来时间步骤“t+1”处的估计vpc可以趋于随时间非线性地减小。参照图9b,神经网络模型800可以提供第一存储器块blk1至第n存储器块blkn之中的第一存储器块blk1的估计vpc。例如,假设第一存储器块blk1在过去时间步骤“t-2”和“t-1”和当前时间步骤“t”处的vpc分别为2000、1500和1000,如图7b中所示。神经网络模型800可以具有2000、1500和1000的vpc作为输入数据,基于输入数据(即,2000、1500和1000)执行操作,通过所述操作获得训练数据,并提供500作为与训练数据对应的输出数据。输出数据500表示第一存储器块blk1在未来时间步骤“t+1”处的估计vpc。类似于提供针对第一存储器块blk1的估计vpc,神经网络模型800还可以提供关于其他存储器块blk2至blkn中的每个的估计vpc。参照图9c,神经网络模型800可以具有其他存储器块blk2至blkn中的每个在过去时间步骤“t-2”和“t-1”以及当前时间步骤“t”中的每个处的vpc作为输入,执行操作,通过所述操作获得训练数据,并提供其他存储器块blk2至blkn中的每个在未来时间步骤“t+1”处的估计vpc作为与训练数据对应的输出数据。例如,神经网络模型800可以具有分别在过去时间步骤“t-2”和“t-1”以及当前时间步骤“t”处的1300、1400和1500的vpc作为输入数据,基于输入数据执行操作,通过所述操作获得训练数据,并且提供1600(即,第二存储器块blk2的在未来时间步骤“t+1”处的估计vpc)作为与训练数据对应的输出数据。神经网络模型800可以具有分别在过去时间步骤“t-2”和“t-1”以及当前时间步骤“t”处的5000、5000和5000的vpc作为输入数据,基于所述输入数据执行操作,通过所述操作获得训练数据,并且提供5000(即,第三存储器块blk3的在未来时间步骤“t+1”处的估计vpc)作为与训练数据对应的输出数据。神经网络模型800可以针对第一存储器块blk1至第n存储器块blkn中的每个在过去时间步骤“t-2”和“t-1”以及当前时间步骤“t”处的vpc进行重复训练,在未来时间步骤“t+1”处的估计vpc(其与第一存储器块blk1至第n存储器块blkn中的每个的训练数据对应)可以示出增大、减小或者保持的趋势。参照图9d,神经网络模型800可以预测第一存储器块blk1的vpc随着时间从过去时间步骤“t-2”和“t-1”到当前时间步骤“t”和未来时间步骤“t+1”而趋于从2000减小到1500、1000和500。参照图9e,神经网络模型800可以预测第二存储器块blk2的vpc随着时间从过去时间步骤“t-2”和“t-1”到当前时间步骤“t”和未来时间步骤“t+1”而趋于从1300增大到1400、1500和1600。参照图9f,神经网络模型800可以预测随着时间从过去时间步骤“t-2”和“t-1”到当前时间步骤“t”和未来时间步骤“t+1”,第三存储器块blk3的vpc趋于保持在5000。神经网络模型800可以基于第一存储器块blk1至第n存储器块blkn中的每个的估计vpc和/或估计vpc的减小、增大或保持趋势,来确定第一存储器块blk1至第n存储器块blkn中的每个的垃圾收集成本。在实施例中,神经网络模型800可以确定第一存储器块blk1至第n存储器块blkn之中具有最低估计vpc的存储器块具有低(或最低)垃圾收集成本并且可以选择所述存储器块作为牺牲块。在实施例中,当从第一存储器块blk1至第n存储器块blkn中选择牺牲块时,神经网络模型800可以排除估计vpc呈减小的趋势的存储器块。由于存储器块的具有减小的趋势的估计vpc将随着时间进一步减小,因此可以通过选择牺牲块时排除所述存储器块来减小垃圾收集成本。在实施例中,神经网络模型800可以在第一存储器块blk1至第n存储器块blkn之中选择估计vpc呈保持趋势的存储器块作为牺牲块。具有保持趋势的估计vpc的存储器块可以具有用户不经常访问的存储的冷数据。在这种情况下,当存储冷数据的存储器块被选择为牺牲块并且通过进行垃圾收集而成为空闲块时,可以减小垃圾收集成本。图10和图11是总结可由存储器系统100执行的垃圾收集操作的相应流程图。结合图1、图2和图3参照图10,在操作s1010中,存储器控制器110可以从主机接收写入请求。在操作s1020中,响应于主机的写入请求,存储器控制器110可以对在存储器装置120的存储器单元阵列122中包括的第一存储器块blk1至第n存储器块blkn之中的空闲块的数量进行计数。在操作s1020中,存储器控制器110可以使用垃圾收集触发模块610将计数结果(即,空闲块计数)与第一gc阈值gc_threshold1进行比较。在实施例中,可以周期性执行操作s1020,或者可以在满足特定条件(诸如主机的写入请求)时执行操作s1020。可以对第一gc阈值gc_threshold1进行改变或修改。当在操作s1020中空闲块计数大于第一gc阈值gc_threshold1时,可以执行操作s1070。在操作s1070中,存储器控制器110可以关于主机的写入请求控制要对存储器装置120的第一存储器块blk1至第n存储器块blkn执行的写入操作。当在操作s1020中空闲块计数小于第一gc阈值gc_threshold1时,可以执行操作s1030。在操作s1030中,存储器控制器110可以在gc模式下进行操作。在gc模式下,存储器控制器110可以将来自模型输入特征管理器模块640的存储器系统100的内部信息加载到牺牲块选择模块630。存储器控制器110可以将存储器系统100的内部信息(诸如第一存储器块blk1至第n存储器块blkn中的每个的vpc以及ssd的平均读取iops、平均写入iops、平均读取io大小、平均写入io大小、读取吞吐量、写入吞吐量和空闲块计数)加载到牺牲块选择模块630。在操作s1040中,如图9c中所示,存储器控制器110可以使用神经网络模型800估计第一存储器块blk1至第n存储器块blkn中的每个的vpc。在操作s1050中,存储器控制器110可以基于从神经网络模型800输出的第一存储器块blk1至第n存储器块blkn中的每个的估计vpc,选择具有低垃圾收集成本的存储器块作为牺牲块。操作s1050可以包括在图11中进一步示出的实施例中的由牺牲块选择模块630执行的操作s1110至s1130。在操作s1110中,牺牲块选择模块630可以确定第一存储器块blk1至第n存储器块blkn之中具有最低估计vpc的存储器块具有低垃圾收集成本并且可以选择该存储器块作为牺牲块。在操作s1120中,当从第一存储器块blk1至第n存储器块blkn选择牺牲块时,牺牲块选择模块630可以排除估计vpc呈减小趋势的存储器块。在操作s1130中,牺牲块选择模块630可以在第一存储器块blk1至第n存储器块blkn之中选择估计vpc呈保持趋势的存储器块作为牺牲块。存储器控制器110可以通过操作s1110至操作s1130选择具有低垃圾收集成本的存储器块作为牺牲块,并且可以在操作s1060中向垃圾收集管理器模块620通知所选择的牺牲块。在操作s1060中,存储器控制器110可以使用垃圾收集管理器模块620通过将有效页的数据从牺牲块复制到目标块并擦除牺牲块来获取单个空闲块。此后,在操作s1070中,存储器控制器110可以关于主机的写入请求控制要对存储器装置120的第一存储器块blk1至第n存储器块blkn执行的写入操作。图12是进一步示出图10和图11的垃圾收集操作中包括的步骤的某些方面的概念图。参照图12,结合操作s1020,存储器控制器110可以对第一存储器块blk1至第n存储器块blkn中的空闲块的数量进行周期性地计数,或者当满足诸如主机的写入请求的特定条件时对第一存储器块blk1至第n存储器块blkn中的空闲块的数量进行计数,并且存储器控制器110可以在与计数结果对应的空闲块计数小于第一gc阈值gc_threshold1时在gc模式下进行操作。这里,假设顺序地执行两(2)次垃圾收集操作。在第一垃圾收集(gc)操作1210中,存储器控制器110可以按升序对相应的第一存储器块blk1至第n存储器块blkn的vpc进行排序。第一存储器块blk1至第n存储器块blkn可以按从具有最低vpc的块编号(bn)20到bn100、bn50、bn710……和bn310的顺序排序。bn20的vpc可以是1000,bn100的vpc可以是1500,bn50的vpc可以是2500。结合操作s1030和操作s1040,存储器控制器110可以使用神经网络模型800估计第一存储器块blk1至第n存储器块blkn中的每个的vpc。作为神经网络操作nn的结果,bn20的估计vpc可以是0,bn100的估计vpc可以是1450,bn50的估计vpc可以是2300。结合操作s1050,存储器控制器110可以使用牺牲块选择模块630在选择牺牲块时排除具有估计vpc为0的bn20(操作s1120),并选择具有最低估计vpc的bn100作为牺牲块(操作s1110)。结合操作s1060,存储器控制器110可以使用垃圾收集管理器模块620通过将被选为牺牲块的bn100的1500个有效页的数据复制到目标块然后擦除bn100来执行gc以获取空闲块。在第一gc操作1210中执行bn100的gc之后,存储器控制器110可以按照从具有最低vpc的bn20开始到bn50、bn710、bn30……和bn310的vpc的升序顺序对除bn100之外的第一存储器块blk1至第n存储器块blkn进行排序。此时,各bn20、bn50、bn710和bn30的vpc可以分别是1000、2500、5000和6000。在第二gc操作1220中,存储器控制器110可以周期性地或者当满足诸如主机的写入请求的特定条件时对第一存储器块blk1至第n存储器块blkn中的空闲块的数量进行计数,并且可以在空闲块计数小于第一gc阈值gc_threshold1时在gc模式下进行操作(操作s1020)。可以在第一gc操作1210完成之后的特定时间执行第二gc操作1220。因此,在第一gc操作1210之后,被排序为具有最低vpc的各个bn20、bn50、bn710和bn30的vpc可以分别从1000、2500、5000和6000变为0、2500、5000和6000。可以看出,bn20的vpc从1000变为0,这与对于bn20获得的估计vpc为0(作为在第一gc操作1210中在神经网络模型800中执行的神经网络操作nn的结果)一致。结合操作s1030和操作s1040,存储器控制器110可以使用神经网络模型800估计被排序为具有最低vpc的各个bn20、bn50、bn710和bn30的vpc。作为神经网络操作nn的结果,bn20的估计vpc可以是0,bn50的估计vpc可以是2000,bn710的估计vpc可以是2300。结合操作s1050,存储器控制器110可以使用牺牲块选择模块630选择vpc为0和估计vpc为0的bn20作为牺牲块(操作s1110)。换句话说,因为被选为牺牲块的bn20没有有效页,所以可以擦除bn20而不执行将有效页的数据复制到目标块的操作,因此,bn20具有低gc成本。结合操作s1060,存储器控制器110可以使用垃圾收集管理器模块620通过擦除被选为牺牲块的bn20来执行gc以获取空闲块。在第二gc操作1220中执行bn20的gc之后,存储器控制器110可以按照从具有最低vpc的bn50开始到bn710、bn30、bn120……和bn310的vpc的升序对除bn100和bn20之外的第一存储器块blk1至第n存储器块blkn进行排序。在第一gc操作1210中执行将1500个有效页的数据从被选为牺牲块的bn100复制到目标块的操作,而在第二gc操作1220中不执行复制操作。因此,在第一gc操作1210和第二gc操作1220两者中进行复制操作的有效页的总数是1500。图13示出了可以考虑与图12的gc操作相关的比较示例。这里,应该注意的是,可以根据变化的策略执行gc操作,其中,图13示出了使用传统且简单的贪婪策略执行gc的示例。根据贪婪策略,选择在触发gc时具有最低vpc的存储器块作为牺牲块,并且对牺牲块执行gc。类似于参照图12描述的gc操作,图13示出了假设顺序地执行仅两个gc操作的情况。因此,假设与图12中触发第一gc操作1210的环境类似的环境,存储器块可以按照从具有最低vpc的bn20开始到bn100、bn50、bn710、……和bn310的vpc的升序排序。bn20的vpc可以是1000,bn100的vpc可以是1500,bn50的vpc可以是2500。在贪婪策略的第一gc操作1310中,可以选择具有最低vpc的bn20作为牺牲块。可以通过将被选为牺牲块的bn20的1000个有效页的数据复制到目标块并擦除bn20来执行用于获取空闲块的gc。此后,可以按从具有最低的vpc的bn100开始到bn50、bn710……和bn310的升序对剩余的存储器块进行排序。在贪婪策略的第二gc操作1320中,可以选择具有最低vpc的bn100作为牺牲块。可以通过将被选为牺牲块的bn100的1500个有效页的数据复制到目标块并擦除bn100来执行用于获取空闲块的gc。在贪婪策略的第一gc操作1310中,执行将1000个有效页的数据从被选为牺牲块的bn20复制到目标块的操作。在贪婪策略的第二gc操作1320中,执行将1500个有效页的数据从被选为牺牲块的bn100复制到目标块的操作。因此,在贪婪策略的第一gc操作1310和第二gc操作1320两者中进行复制操作的总有效页为2500。表1图12图13gc中复制的有效页数量(即,gc成本)15002500从表1可以看出,根据实施例在基于估计vpc执行的gc操作(图12)中复制的有效页数量为1500,而在贪婪策略的gc操作(图13)中复制的有效页数量为2500。与贪婪策略的gc操作相比,根据实施例的基于估计vpc执行的gc操作可以将gc成本降低约40%。图14是示出可以受益于如上所述的垃圾收集操作的一种类型的存储器系统100的框图。这里,估计vpc方法可以应用于ssd系统1400。参照图14,ssd系统1400可以包括主机1410和ssd1420。ssd1420经由信号连接器与主机1410交换信号sgl,并且经由电源连接器接收电力pwr。ssd1420可以包括ssd控制器1421、辅助电源1422以及多个非易失性存储器装置1423、1424和1425。ssd控制器1421可以通过多个信道ch1至chn与多个非易失性存储器装置1423、1424和1425进行通信。ssd控制器1421可以使用图1至图12中所示的实施例来控制非易失性存储器装置1423、1424和1425的垃圾收集。ssd控制器1421可以使用神经网络模型估计包括在非易失性存储器装置1423、1424和1425中的每个中的每个存储器块的vpc。基于存储器块的vpc训练神经网络模型,存储器块存储非易失性存储器装置1423、1424和1425中的每个中的数据。ssd控制器1421可以基于非易失性存储器装置1423、1424和1425中的每个中的各个存储器块的估计vpc,来从存储器块选择进行垃圾收集的牺牲块。ssd控制器1421可以选择非易失性存储器装置1423、1424和1425中的每个中的存储器块之中具有最低估计vpc的存储器块作为牺牲块。ssd控制器1421可以选择牺牲块时从非易失性存储器装置1423、1424和1425中的每个中的存储器块之中排除估计vpc呈减小趋势的存储器块。ssd控制器1421可以在非易失性存储器装置1423、1424和1425中的每个中的存储器块之中选择估计vpc呈保持趋势的存储器块作为牺牲块。ssd控制器1421可以控制要在非易失性存储器装置1423、1424和1425中的每个中执行的垃圾收集,使得有效页的数据从牺牲块复制到目标块并且擦除牺牲块。虽然已经参照发明构思的实施例具体示出并描述了发明构思,但是将理解的是,在不脱离权利要求的精神和范围的情况下可以做出形式和细节上的各种改变。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1