发布信息

重定向写入操作的存储控制器及其操作方法与流程

作者:admin      2022-09-02 19:33:21     270



计算;推算;计数设备的制造及其应用技术重定向写入操作的存储控制器及其操作方法1.相关申请的交叉引用2.本技术要求于2021年3月2日在韩国知识产权局提交的韩国专利申请no.10-2021-0027516的优先权,该专利申请的公开内容通过引用整体合并于此。技术领域3.实施例涉及存储控制器及其操作方法。背景技术:4.存储器件(memory device)响应于写入请求而存储数据,并且响应于读取请求而输出存储在其中的数据。例如,存储器件被分类为诸如动态随机存取存储(dram)器件、静态ram(sram)器件的在电源中断时丢失存储在其中的数据的易失性存储器件或诸如闪存器件、相变ram(pram)、磁性ram(mram)或电阻ram(rram)的即使在电源中断时也保持存储在其中的数据的非易失性存储器件。技术实现要素:5.根据实施例,一种与主机和多个闪存区域通信的存储控制器的操作方法包括:从所述主机接收对所述多个闪存区域中的第一闪存区域的写入请求;基于状态信息集确定所述第一闪存区域不可用;生成指示选择所述多个闪存区域中的第二闪存区域而非所述第一闪存区域的重定向信息;基于所述重定向信息在所述第二闪存区域中执行写入操作;基于所述写入操作来更新所述状态信息集中的所述第二闪存区域的状态信息;向所述主机输出指示所述写入请求的写入数据在所述第二闪存区域中被处理的重定向结果信息;以及从所述主机接收与所述写入数据对应并包括所述第二闪存区域的信息的读取请求。6.根据实施例,一种与主机和多个闪存区域通信的存储控制器的操作方法包括:监视所述多个闪存区域;基于所述监视来更新状态信息集,其中,所述状态信息集包括分别对应于所述多个闪存区域的多个状态信息;基于更新后的状态信息集来确定所述多个闪存区域是否可用;基于所述确定的结果来生成指示所述多个闪存区域中的第一闪存区域不可用的监视信息;以及向所述主机输出所述监视信息。7.根据实施例,一种存储控制器包括:状态检查器,所述状态检查器生成与包括第一闪存区域和第二闪存区域的多个闪存区域对应的状态信息集;基于所述状态信息集确定所述第一闪存区域不满足可用存储条件,并且基于所述状态信息集确定所述第二闪存区域满足所述可用存储条件;以及接口电路,所述接口电路向主机输出指示所述第一闪存区域不满足所述可用存储条件的第一信息以及指示所述第二闪存区域满足所述可用存储条件的第二信息。所述可用存储条件包括以下一者或更多者:通过从对应闪存区域的平均擦除计数减去所述多个闪存区域的多个平均擦除计数中的最小值而获得的值小于第一阈值的条件;所述对应闪存区域的有效页面计数比率小于所述多个闪存区域的多个有效页面计数比率中的最大值的条件;所述对应闪存区域的坏块的数目小于所述多个闪存区域的坏块的数目中的最大值的条件;所述对应闪存区域的写入放大因子小于第二阈值的条件;以及所述对应闪存区域的存储器使用比率小于第三阈值的条件。附图说明8.通过参考附图详细描述示例实施例,对于本领域的技术人员而言,特征将变得清楚,在附图中:9.图1是根据示例实施例的存储系统的框图。10.图2是根据示例实施例的详细示出图1的存储控制器的框图。11.图3a是根据示例实施例的详细示出图1的存储芯片的框图。12.图3b是示出图3a中的存储单元阵列中的多个存储块中的一个存储块的示图。13.图4是根据示例实施例的示出在多租户环境中运行的存储设备的框图。14.图5a和图5b是根据示例实施例的用于描述存储区域的状态信息的示图。15.图6a、图6b和图6c是根据示例实施例的用于描述工作负载集中在其上的存储区域的示图。16.图7是根据示例实施例的用于描述重定向写入请求的方法的示图。17.图8是根据示例实施例的用于描述监视存储区域的状态的方法的示图。18.图9是根据示例实施例的详细示出可用存储条件的示图。19.图10是根据示例实施例的用于描述重定向写入请求的方法的流程图。20.图11是根据示例实施例的用于描述监视存储区域的状态的方法的流程图。21.图12是应用了根据示例实施例的存储设备的固态硬盘系统的框图。具体实施方式22.图1是根据示例实施例的存储系统的框图。23.参照图1,根据示例实施例的存储系统10可以包括主机11和存储设备(storage device)100。存储系统10可以是诸如个人计算机(pc)、笔记本、膝上型计算机、服务器、工作站、平板pc、智能手机、数码相机、黑匣子等的被配置为处理各种信息的计算系统。24.主机11可以控制存储系统10的总体操作。例如,主机11可以将数据存储在存储设备100中,或者可以读取存储在存储设备100中的数据。在主机11的控制下,存储设备100可以存储数据,或者可以将所存储的数据发送到主机11。25.存储设备100可以包括存储控制器110和非易失性存储器件120。26.非易失性存储器件120可以包括可以为例如多个闪存芯片的多个存储芯片mc。多个存储芯片mc均可以存储数据。27.存储控制器110可以将数据存储在非易失性存储器件120中,或者可以读取存储在非易失性存储器件120中的数据。非易失性存储器件120可以在存储控制器110的控制下运行。非易失性存储器件120可以是例如nand闪存器件或诸如pram、mram、rram和fram的即使电源被关断也可以保持存储在其中的数据的各种存储器件中的一种。28.存储控制器110可以包括状态检查器111、重定向装置112和监视装置113。29.状态检查器111可以检查非易失性存储器件120的状态,并且可以生成状态信息集。状态信息集可以包括多个状态信息si。状态信息si可以是指示闪存区域(在下文中被称为“存储区域”)(例如,基于闪存的存储芯片mc或存储芯片mc中的闪存块)的状态的信息。将参考图5a和图5b更详细地描述状态信息si。30.状态检查器111可以基于多个状态信息si来确定多个存储区域中的每一者是否满足可用存储条件。多个存储区域均可以是闪存区域。可用存储条件可以是用于确定对应存储区域是否可用的标准。将参考图9更详细地描述可用存储条件。31.状态检查器111可以基于多个状态信息si来确定多个存储区域中的每一者是否满足可用存储条件,并且可以将确定的结果提供到主机11或重定向装置112。32.重定向装置112可以是根据写入请求来重定向写入操作的装置。重定向可以意味着改变将执行写入操作的存储区域。33.重定向装置112可以与状态检查器111通信。例如,当状态检查器111确定与从主机11接收到的写入请求对应的第一存储区域不可用时,重定向装置112可以在状态检查器111的控制下,在第二存储区域而非第一存储区域中执行写入操作。重定向装置112可以将重定向结果信息输出到主机11。可以通过重定向装置112的重定向来解决(例如,平衡)非易失性存储器件120中的存储区域之间的工作负载(workload)不平衡。将参考图7和图10更详细地描述重定向装置112。34.监视装置113可以是监视非易失性存储器件120的状态的装置。监视装置113可以与状态检查器111通信。例如,无需来自主机11的单独请求,监视装置113可以每参考时间(即,定期地)监视非易失性存储器件120的存储区域的状态,并且可以更新状态检查器111的多个状态信息si。参考时间可以指示监视装置113执行监视的时段。35.状态检查器111可以基于如此更新的多个状态信息si将监视信息输出到主机11。基于监视信息,主机11可以不请求对不可用存储区域的写入请求。如此,可以解决(例如,平衡)非易失性存储器件120中的存储区域之间的工作负载不平衡。将参考图8和图11更详细地描述监视装置113。36.如上所述,根据示例实施例,存储控制器110可以将对不可用存储区域的写入请求重定向到另一存储区域。另外,存储控制器110可以无需来自主机11的单独请求而定期地监视非易失性存储器件120的状态,并且可以将监视信息提供到主机11。37.图2是根据示例实施例的详细示出图1的存储控制器的框图。38.参照图1和图2,存储控制器110可以与主机11和非易失性存储器件120通信。39.存储控制器110可以包括处理器114、静态随机存取存储器(sram)115、只读存储器(rom)116、纠错码(ecc)引擎117、主机接口电路118、状态管理装置和非易失性存储器接口电路119。40.处理器114可以控制存储控制器110的总体操作。41.sram 115可以用作存储控制器110的缓冲存储器、高速缓冲存储器或工作存储器。42.rom 116可以例如以固件的形式存储供存储控制器110用来运行的各种信息。43.ecc引擎117可以检测并纠正从非易失性存储器件120读取的数据的错误。通常,随着在非易失性存储器件120中执行的操作(诸如,写入操作和擦除操作)的数目增加,非易失性存储器件120的错误水平可能增加。ecc引擎117可以具有给定水平的纠错能力。在从非易失性存储器件120读取的数据的错误超过ecc引擎117的纠错能力的情况下,可以不纠正从非易失性存储器件120读取的数据的错误。为了使错误未被ecc引擎117纠正的情形最小化,状态管理装置可以分配非易失性存储器件120中的存储区域的工作负载。44.主机接口电路118可以提供存储控制器110与主机11之间的通信。主机接口电路118可以例如基于诸如sata(串行ata)接口、pcie(外围组件互连快速)接口、sas(串行附加scsi)接口、nvme(非易失性存储器快速)接口和ufs(通用闪存)接口的各种接口中的至少一种来实现。主机接口电路118可以向主机11输出指示非易失性存储器件120中的多个存储区域中的第一存储区域不满足可用存储条件的信息。主机接口电路118可以向主机11输出指示非易失性存储器件120中的多个存储区域中的第二存储区域满足可用存储条件的信息。45.状态管理装置可以包括参考图1描述的状态检查器111、重定向装置112和监视装置113。状态管理装置可以以软件、硬件或其组合的形式提供。在状态管理装置以软件的形式提供的情况下,状态管理装置可以被存储在sram 115中,并且可以由处理器114驱动。46.主机接口电路118可以从重定向装置112接收重定向结果信息。主机接口电路118可以将重定向结果信息输出到主机11。主机接口电路118可以从状态检查器111或监视装置113接收监视信息。主机接口电路118可以将监视信息输出到主机11。47.非易失性存储器接口电路119可以提供存储控制器110与非易失性存储器件120之间的通信。非易失性存储器接口电路119可以基于例如nand接口来实现。48.状态检查器111、重定向装置112、监视装置113、处理器114、sram 115、rom 116、ecc引擎117、主机接口电路118和非易失性存储器接口电路119可以通过总线互连。49.图3a是根据示例实施例的详细示出图1的存储芯片mc的框图。图3b是示出图3a中的存储单元阵列121中的多个存储块中的一个存储块blk的示图。50.参照图1、图3a和图3b,非易失性存储器件120可以包括多个存储芯片mc。存储芯片mc可以与存储控制器110通信。例如,存储芯片mc可以从存储控制器110接收地址add、命令cmd和控制信号ctr。存储芯片mc可以与存储控制器110交换数据。51.存储芯片mc可以包括存储单元阵列121、地址译码器122、控制逻辑和电压生成电路123、页面缓冲器124和输入/输出(i/o)电路125。52.存储单元阵列121可以包括多个存储块,例如,多个闪存块。多个存储块中的每一者的结构可以类似于图3b中示出的存储块blk的结构。图3b中示出的存储块blk可以对应于例如非易失性存储器件120的物理擦除单元或页面单元、字线单元、子块单元等。53.参照图3b,存储块blk可以包括多个单元串cs11、cs12、cs21和cs22。多个单元串cs11、cs12、cs21和cs22可以在行方向和列方向上布置。为了简化绘制,在图3b中示出了四个单元串cs11、cs12、cs21和cs22,但在行方向或列方向上,单元串的数目可以增加或减少。54.多个单元串cs11、cs12、cs21和cs22当中的放置在同一列处的单元串可以与同一位线连接。例如,单元串cs11和cs21可以与第一位线bl1连接,并且单元串cs12和cs22可以与第二位线bl2连接。多个单元串cs11、cs12、cs21和cs22均可以包括多个单元晶体管。在每个单元串中,多个单元晶体管可以用电荷撷取闪存(ctf)存储单元来实现。多个单元晶体管可以在高度方向上堆叠,该高度方向是与由行方向和列方向限定的平面(例如,半导体衬底(未示出))垂直的方向。55.在每个单元串中,多个单元晶体管可以串联连接在对应的位线(例如,bl1或bl2)和公共源极线csl之间。例如,在每个单元串中,多个单元晶体管可以包括串选择晶体管ssta和sstb、虚设存储单元dmc1和dmc2、存储单元mc1至mc4以及接地选择晶体管gsta和gstb。串联连接的串选择晶体管ssta和sstb可以设置在串联连接的存储单元mc1至mc4和对应位线(例如,bl1和bl2)之间。串联连接的接地选择晶体管gsta和gstb可以设置在串联连接的存储单元mc1至mc4和公共源极线csl之间。56.第二虚设存储单元dmc2可以设置在串联连接的串选择晶体管ssta和sstb和串联连接的存储单元mc1至mc4之间,并且第一虚设存储单元dmc1可以设置在串联连接的存储单元mc1至mc4和串联连接的接地选择晶体管gsta和gstb之间。57.在多个单元串cs11、cs12、cs21和cs22中,存储单元mc1至mc4当中的放置在相同高度处的存储单元可以共享同一字线。例如,多个单元串cs11、cs12、cs21和cs22中的第一存储单元mc1可以放置在距离衬底(未示出)相同的高度处,并且可以共享第一字线wl1。多个单元串cs11、cs12、cs21和cs22的第二存储单元mc2可以放置在距离衬底(未示出)相同的高度处,并且可以共享第二字线wl2。同样,多个单元串cs11、cs12、cs21和cs22的第三存储单元mc3可以放置在距离衬底(未示出)相同的高度处,并且可以共享第三字线wl3,并且多个单元串cs11、cs12、cs21和cs22的第四存储单元mc4可以放置在距离衬底(未示出)相同的高度处,并且可以共享第四字线wl4。58.多个单元串cs11、cs12、cs21和cs22的虚设存储单元dmc1和dmc2当中的放置在相同高度处的虚设存储单元可以共享同一虚设字线。例如,多个单元串cs11、cs12、cs21和cs22的第一虚设存储单元dmc1可以共享第一虚设字线dwl1,并且多个单元串cs11、cs12、cs21和cs22的第二虚设存储单元dmc2可以共享第二虚设字线dwl2。59.在多个单元串cs11、cs12、cs21和cs22中,多个单元串cs11、cs12、cs21和cs22的串选择晶体管ssta或sstb当中的放置在相同高度和同一行处的串选择晶体管可以与同一串选择线连接。例如,单元串cs11和cs12的串选择晶体管sstb可以共享串选择线ssl1b,并且单元串cs11和cs12的串选择晶体管ssta可以共享串选择线ssl1a。单元串cs21和cs22的串选择晶体管sstb可以共享串选择线ssl2b,并且单元串cs21和cs22的串选择晶体管ssta可以共享串选择线ssl2a。60.多个单元串cs11、cs12、cs21和cs22的接地选择晶体管gsta和gstb当中的放置在相同高度和同一行处的接地选择晶体管可以共享同一接地选择线。例如,单元串cs11和cs12的接地选择晶体管gstb可以与接地选择线gsl1b连接,并且单元串cs11和cs12的接地选择晶体管gsta可以与接地选择线gsl1a连接。单元串cs21和cs22的接地选择晶体管gstb可以与接地选择线gsl2b连接,并且单元串cs21和cs22的接地选择晶体管gsta可以与接地选择线gsl2a连接。61.图3b中示出的存储块blk是示例,并且将理解的是,单元串的数目可以增加或减少,并且单元串的行的数目和单元串的列的数目可以根据单元串的数目而增加或减少。另外,在存储块blk中,单元晶体管的数目可以增加或减少,存储块blk的高度可以根据单元晶体管的数目而增加或减少,并且与单元晶体管连接的线的数目可以根据单元晶体管的数目而增加或减少。62.存储区域可以对应于一个存储设备100中的多个存储芯片mc中的一者,可以对应于一个存储芯片mc中的多个存储块blk中的一者,或者可以对应于存储块blk中的一个页面、一条字线、一个子存储块等。存储区域可以指被物理分离以将数据存储在非易失性存储器件120中的任何区域。63.存储控制器110的状态检查器111可以基于多个状态信息si来确定多个存储区域中的每一者是否满足可用存储条件。64.再次参照图1和图3a,地址译码器122可以从存储控制器110接收地址add。地址译码器122可以通过串选择线ssl、字线wl和接地选择线gsl与存储单元阵列121连接。地址译码器122可以对地址add进行译码,并且可以基于译码结果来控制将被施加到串选择线ssl、字线wl和接地选择线gsl的电压。65.控制逻辑和电压生成电路123可以从存储控制器110接收命令cmd和控制信号ctr。控制逻辑和电压生成电路123可以基于命令cmd和控制信号ctr来控制地址译码器122、页面缓冲器124和i/o电路125。控制逻辑和电压生成电路123可以生成非易失性存储器件120运行所需的各种电压(例如,读取电压、编程电压、验证电压和擦除电压)。66.页面缓冲器124可以通过位线bl与存储单元阵列121连接。页面缓冲器124可以通过数据线dl从i/o电路125接收数据。页面缓冲器124可以基于接收到的数据来控制位线bl,使得数据被存储在存储单元阵列121中。页面缓冲器124可以通过感测位线bl的电压来读取存储在存储单元阵列121中的数据。页面缓冲器124可以将所读取的数据通过数据线dl提供到i/o电路125。67.i/o电路125可以通过数据线dl与页面缓冲器124连接。i/o电路125可以通过数据线dl将从存储控制器110接收的数据提供到页面缓冲器124。i/o电路125可以将通过数据线dl接收的数据输出到存储控制器110。68.参考图3a描述的地址add、命令cmd、控制信号ctr和数据可以通过存储控制器110的非易失性存储器接口电路119来发送/接收。69.图4是根据示例实施例的示出在多租户环境中运行的存储设备的框图。70.参照图4,存储设备100可以与主机11通信。71.存储设备100可以包括存储控制器110和多个存储区域mr1至mrn。例如,多个存储区域mr1至mrn可以是图1的非易失性存储器件120中物理分离的存储区域。72.存储控制器110可以生成状态信息集。状态信息集可以包括可以为例如si1至sin的多个状态信息si。多个状态信息si1至sin可以分别对应于多个存储区域mr1至mrn。例如,第一状态信息si1可以指示第一存储区域mr1的状态,第二状态信息si2可以指示第二存储区域mr2的状态,等等。73.存储设备100可以在多租户环境中运行。多租户环境可以指向多个用户提供同一服务的环境。例如,存储设备100可以用作用于云计算的服务器的存储介质。在多租户环境中,为了减少用户之间的干扰并增强安全性,用户可以使用不同的存储区域。例如,用户a可以使用第一存储区域mr1,用户b可以使用第二存储区域mr2,并且用户c可以使用第三存储区域mr3。74.通常,根据用户的倾向、数据的大小等,过度的工作负载可能集中在特定的存储区域上。例如,在用户a频繁上传或下载大量数据的情况下,第一存储区域mr1中的数据处理可能失败,第一存储区域mr1可能耗尽,或者第一存储区域mr1中的数据处理可能延迟。根据示例实施例,存储设备100可以将额外存储区域(例如,第四存储区域mr4)分配给用户a,或者可以将分配给用户b但使用频率低的第二存储区域mr2分配给用户a和用户b。75.在存储设备100在所有存储区域mr1至mrn被分配给特定用户的单租户环境中运行的情况下,用于特定用户的数据可以均匀地分配到多个存储区域mr1至mrn中。另一方面,在多租户环境的情况下,由于多个存储区域mr1至mrn被排他性地分配给多个用户,因此可能出现工作负载不平衡。76.对于可能出现不平衡工作负载的情况,参考图4以示例的方式描述了多租户环境,但存储设备100也可以被实现为在单租户环境中或在个人计算设备中运行,并且可以提供工作负载平衡、有效处理和/或关联数据的安全性,以便使数据均匀地存储在多个存储区域中。77.图5a和图5b是根据示例实施例的用于描述存储区域的状态信息的示图。图5a是以示例的方式描述关于特定存储区域的状态信息的示图。图5b是以示例的方式描述分别与多个存储区域对应的多个状态信息的示图。78.将参考图5a描述特定存储区域的状态信息。可以使用状态信息来确定对应的存储区域是否可用。可以通过多个因素来确定存储区域不可用的情况。因此,状态信息可以包括对应于多个因素的多个子条件。将参考索引、内容和值来描述状态信息的详细内容。79.状态信息可以包括关于平均擦除计数的信息。例如,参照索引1,状态信息可以包括对应于平均擦除计数的值。平均擦除计数可以指示通过各自对对应存储区域中的多个存储单元执行的擦除操作进行计数而获得的值的平均值。当在对应存储区域中过度执行编程操作和擦除操作时,对应存储区域可能被磨损(worn out),因此,数据的可靠性可能降低。为了解决该问题,存储控制器可以将具有高平均擦除计数的存储区域确定为不可用。80.状态信息可以包括关于有效页面计数(valid page count,vpc)比率的信息。例如,参照索引2,状态信息可以包括对应于vpc比率的值。vpc比率可以指示在对应存储区域中所使用的页面与所有页面的比率。页面可以是图3a的页面缓冲器124处理数据的单位,并且可以对应于图3b的存储块blk的与一条字线连接的存储单元。当对应存储区域的vpc比率为100%时,该存储区域可以处于容量已满的状态(即,对应存储区域不可用)。81.状态信息可以包括关于坏块的数目的信息。例如,参照索引3,状态信息可以包括对应于坏块的数目的值。坏块可以是在制造阶段中最初损坏的存储块,或者可以是随后(例如,在编程和擦除操作的迭代之后)损坏的存储块。坏块可以是不能够正常存储数据的存储块。在存储区域对应于一个存储芯片的情况下,坏块可以对应于存储块,在存储区域对应于存储块的情况下,坏块可以对应于存储块中的子块。82.状态信息可以包括关于写入放大因子(write amplification factor,waf)的信息。例如,参照索引4,状态信息可以包括对应于waf的值。waf可以是通过将写入存储区域中的数据的大小除以从主机请求的数据的大小而获得的值。对于诸如垃圾收集操作的额外操作,存储设备可以写入量比从主机请求的数据的量大的数据。随着waf的大小变小,存储设备的工作负载可以减少。通常,waf的大小不小于“1”。waf可以用作用于确定存储区域的工作负载的因素之一。83.状态信息可以包括关于存储器使用比率(memory usage ratio)的信息。例如,参照索引5,状态信息可以包括对应于存储器使用比率的值。存储器使用比率可以指示根据写入操作、读取操作、垃圾收集操作、防御代码等对应存储区域被使用了多少。防御代码可以指用于抑制或恢复存储设备的数据损坏的算法。因为vpc比率指示存储区域的数据存储容量并且存储器使用比率指示与数据处理关联的操作被执行了多少,所以存储器使用比率与vpc比率是可区分的。存储器使用比率高的状态可以被称为“繁忙状态”,并且存储器使用比率低的状态可以被称为“空闲状态”。84.如上所述,根据示例实施例,存储控制器可以包括分别对应于多个存储区域的多个状态信息。多个状态信息可以包括对应存储区域的平均擦除计数、对应存储区域的vpc比率、对应存储区域的坏块的数目、对应存储区域的waf和对应存储区域的存储器使用比率中的一者或更多者。85.参照图5b,示出了分别与多个存储区域mr1至mr4对应的多个状态信息si1至si4。86.第一状态信息si1可以指示第一存储区域mr1的状态。例如,第一状态信息si1可以指示平均擦除计数为200,vpc比率为100%,坏块的数目为6,waf为5,并且存储器使用比率为65%。87.第二状态信息si2可以指示第二存储区域mr2的状态。例如,第二状态信息si2可以指示平均擦除计数为300,vpc比率为70%,坏块的数目为10,waf为2,并且存储器使用比率为85%。88.第三状态信息si3可以指示第三存储区域mr3的状态。例如,第三状态信息si3可以指示平均擦除计数为200,vpc比率为80%,坏块的数目为5,waf为4,并且存储器使用比率为30%。89.第四状态信息si4可以指示第四存储区域mr4的状态。例如,第四状态信息si4可以指示平均擦除计数为500,vpc比率为70%,坏块的数目为7,waf为1,并且存储器使用比率为90%。90.存储控制器110可以基于多个状态信息si1至si4来确定各个存储区域mr1至mr4是否可用。例如,因为第一状态信息si1中的vpc比率为100%,所以存储控制器110可以将第一存储区域mr1确定为不可用。因为第二状态信息si2中的坏块的数目大于与剩余状态信息si1、si3和si4中的每一者相对应的坏块的数目,所以存储控制器110可以确定第二存储区域mr2不可用。因为第四状态信息si4中的平均擦除计数大于与剩余状态信息si1、si2和si3中的每一者相对应的平均擦除计数,所以存储控制器110可以确定第四存储区域mr4不可用。存储控制器110可以基于第三状态信息si3来确定第三存储区域mr3可用。然而,可以不同地确定存储区域的可用性,并且将参考图9详细地描述可用的存储条件。91.图6a、图6b和图6c是根据示例实施例的用于描述工作负载集中在其上的存储区域的示图。92.图6a描述了vpc比率集中在其上的存储区域。93.参照图6a,存储控制器110可以具有存储在其中的第一状态信息si1至第四状态信息si4。第一状态信息si1至第四状态信息si4可以分别指示第一存储区域mr1至第四存储区域mr4的vpc比率。在示例中,第一存储区域mr1至第四存储区域mr4的vpc比率可以分别为100%、50%、90%和70%。存储控制器110可以从主机接收对第一存储区域mr1的写入请求。因为第一存储区域mr1的vpc比率为100%,所以在第一存储区域mr1中的写入操作会失败。因此,存储控制器110可以基于第一状态信息si1至第四状态信息si4来重定向写入请求。94.图6b描述了平均擦除计数集中在其上的存储区域。95.参照图6b,存储控制器110可以包括第一状态信息si1至第四状态信息si4。第一状态信息si1至第四状态信息si4可以分别指示第一存储区域mr1至第四存储区域mr4的平均擦除计数。在示例中,第一存储区域mr1至第四存储区域mr4的平均擦除计数可以分别为100、1000、100和100。存储控制器110可以从主机接收对第二存储区域mr2的写入请求。因为第二存储区域mr2的平均擦除计数相对大于剩余存储区域mr1、mr3和mr4的平均擦除计数,所以第二存储区域mr2可以在剩余存储区域mr1、mr3和mr4之前被磨损。因此,为了防止这个问题,存储控制器110可以基于第一状态信息si1至第四状态信息si4来重定向写入请求。96.图6c描述了存储器使用比率集中在其上的存储区域。97.参照图6c,存储控制器110可以包括第一状态信息si1至第四状态信息si4。第一状态信息si1至第四状态信息si4可以分别指示第一存储区域mr1至第四存储区域mr4的存储器使用比率。在示例中,第一存储区域mr1至第四存储区域mr4的存储器使用比率可以分别为10%、5%、95%和5%。存储控制器110可以从主机接收对第三存储区域mr3的写入请求。因为第三存储区域mr3的存储器使用比率高(例如,当防御代码正在运行时),所以第三存储区域mr3中的延迟可以比剩余存储区域mr1、mr2和mr4的延迟长。如此,在第三存储区域mr3中处理写入请求的情况下,数据处理可以被延迟。因此,为了防止这个问题,存储控制器110可以基于第一状态信息si1至第四状态信息si4来重定向写入请求。98.如上所述,以示例的方式,参考图6a、图6b和图6c描述了数据处理可能失败、存储区域可能被磨损以及数据处理可能被延迟的情况。本示例实施例可以重定向对不可用存储区域的写入请求,并且可以定期地监视存储区域的状态并向主机提供监视信息。99.图7是根据示例实施例的用于描述重定向写入请求的方法的示图。100.参照图7,存储控制器可以与主机11通信,并且可以包括状态检查器111和重定向装置112。101.状态检查器111可以从主机11接收对第一存储区域mr1的写入请求。状态检查器111可以检查非易失性存储器件120的状态,并且可以生成状态信息集sis。状态信息集sis可以包括多个状态信息si1至sin。多个状态信息si1至sin可以分别对应于多个存储区域mr1至mrn。102.状态检查器111可以基于状态信息集sis来确定第一存储区域mr1是否可用。在示例中,状态检查器111可以确定第一存储区域mr1不可用。例如,第一状态信息si1可以指示第一存储区域mr1的容量被完全占用(即,第一存储区域mr1的vpc比率为100%)。状态检查器111可以生成指示选择第二存储区域mr2而非第一存储区域mr1的重定向信息。状态检查器111可以将重定向信息输出到重定向装置112。103.重定向装置112可以与非易失性存储器件120通信。重定向装置112可以基于来自状态检查器111的重定向信息对第二存储区域mr2执行写入操作。也就是说,重定向装置112可以将从主机11请求以写入第一存储区域mr1中的数据存储在第二存储区域mr2而非第一存储区域mr1中。重定向装置112可以将重定向结果信息rri输出到主机11。104.重定向结果信息rri可以是指示在第二存储区域mr2中处理根据写入请求的写入数据的信息。例如,重定向结果信息rri可以包括例如与多个存储区域mr1至mrn中的重定向后的存储区域对应的逻辑块地址(lba)、与写入请求对应的存储区域的信息、重定向后的存储区域的信息、被重定向的原因以及状态信息集sis中的一者或更多者。105.例如,重定向结果信息rri可以指示与多个存储区域mr1至mrn中的重定向后的存储区域mr2对应的lba为“0xabcd”。重定向结果信息rri可以指示与写入请求对应的存储区域为第一存储区域mr1。重定向结果信息rri可以指示重定向后的存储区域是第二存储区域mr2。重定向结果信息rri可以指示被重定向的原因是超出了容量。重定向结果信息rri可以包括包含多个状态信息si1至sin的状态信息集sis。106.主机11可以从存储控制器接收重定向结果信息rri。主机11可以基于重定向结果信息rri来识别与写入请求对应的数据存储在第二存储区域mr2中。为了读取重定向到第二存储区域mr2的数据,主机11可以向存储控制器输出与写入请求的数据对应并包括作为重定向后的存储区域的第二存储区域mr2的信息的读取请求。107.图8是根据示例实施例的用于描述监视存储区域状态的方法的示图。108.参照图8,存储控制器可以与主机11通信,并且可以包括状态检查器111和监视装置113。109.监视装置113可以与非易失性存储器件120通信。监视装置113可以监视非易失性存储器件120中的多个存储区域mr1至mrn。监视装置113可以定期地(例如,每参考时间)监视非易失性存储器件120,而无需来自主机11的单独请求。110.监视装置113可以基于监视多个存储区域mr1至mrn来更新状态检查器111的状态信息集sis。状态信息集sis可以包括多个状态信息si1至sin。多个状态信息si1至sin可以分别对应于多个存储区域mr1至mrn。111.状态检查器111可以基于更新后的状态信息集sis来确定多个存储区域mr1至mrn是否可用。状态检查器111可以生成指示多个存储区域mr1至mrn是否可用的监视信息mi。例如,更新后的第一状态信息si1可以指示第一存储区域mr1的容量被完全占用(即,第一存储区域mr1的vpc比率为100%)。状态检查器111可以基于更新后的第一状态信息si1确定第一存储区域mr1不可用。状态检查器111可以生成指示多个存储区域mr1至mrn中的第一存储区域mr1不可用的监视信息mi。状态检查器111可以将监视信息m1输出到主机11。112.监视信息mi可以包括例如多个存储区域mr1至mrn中的不可用存储区域的信息、不可用存储区域不可用的原因、多个存储区域mr1至mrn中的可用存储区域的信息和更新后的状态信息集sis中的一者或更多者。113.例如,监视信息mi可以指示多个存储区域mr1至mrn中的不可用存储区域是第一存储区域mr1。监视信息mi可以指示不可用存储区域不可用的原因是超出了容量。监视信息mi可以指示多个存储区域mr1至mrn中的可用存储区域是第二存储区域mr2。监视信息mi可以包括包含多个状态信息si1至sin的更新后的状态信息集sis。114.主机11可以从存储控制器接收监视信息mi。主机11可以基于监视信息mi确定第一存储区域mr1不可用。主机11可以基于监视信息mi确定第二存储区域mr2可用。主机11可以向存储控制器输出对多个存储区域mr1至mrn中可用的第二存储区域mr2的写入请求。115.图9是根据示例实施例的详细示出可用存储条件的示图。116.参照图9,可用存储条件可以是用于确定多个存储区域中的对应存储区域是否可用的参考。例如,图7和图8的状态检查器111可以基于图9的可用存储条件来确定多个存储区域中的每一者是否可用。117.根据示例实施例,可用存储条件可以包括与平均擦除计数关联的条件、与vpc比率关联的条件、与坏块的数目关联的条件、与waf关联的条件以及与存储器使用比率关联的条件中的一者或更多者。118.在示例实施例中,存储控制器可以基于对应存储区域的平均擦除计数来确定对应存储区域是否可用。119.例如,参照索引1,当通过从对应存储区域的平均擦除计数减去多个存储区域的多个平均擦除计数中的最小值而获得的值小于擦除计数阈值时,存储控制器可以确定对应存储区域可用。当满足根据索引1的条件时,对应的位标志可以被确定为第一值(例如,“1”)。当不满足根据索引1的条件时,对应的位标志可以被确定为第二值(例如,“0”)。120.不满足根据索引1的条件可以意味着,对应存储区域的擦除计数显著大于多个存储区域中的剩余存储区域的擦除计数。为了防止由于对应存储区域的集中磨损而导致存储设备的性能降低,可以确定不满足根据索引1的条件的存储区域不可用。121.在示例实施例中,存储控制器可以基于对应存储区域的vpc比率来确定对应存储区域是否可用。122.例如,参照索引2,当对应存储区域的vpc比率小于多个存储区域的多个vpc比率中的最大值时,存储控制器可以确定对应存储区域可用。当满足根据索引2的条件时,对应的位标志可以被确定为第一值(例如,“1”)。当不满足根据索引2的条件时,对应的位标志可以被确定为第二值(例如,“0”)。123.不满足根据索引2的条件可以意味着,多个存储区域中的对应存储区域的空闲容量最小。为了防止数据被密集地存储在对应存储区域中,即,为了防止在接下来的读取操作中工作负载集中在对应存储区域中,可以确定不满足根据索引2的条件的存储区域不可用。124.在示例实施例中,存储控制器可以基于对应存储区域中坏块的数目来确定对应存储区域是否可用。125.例如,参照索引3,当对应存储区域的坏块的数目小于多个存储区域的坏块的数目中的最大值时,存储控制器可以确定对应存储区域可用。当满足根据索引3的条件时,对应的位标志可以被确定为第一值(例如,“1”)。当不满足根据索引3的条件时,对应的位标志可以被确定为第二值(例如,“0”)。126.不满足根据索引3的条件可以意味着,多个存储区域中的对应存储区域的坏块的数目最大。在进一步在对应存储区域中执行写入操作的情况下,对应存储区域的坏块的数目可以增加。在这种情况下,可能频繁地发生超出存储控制器中的ecc引擎的纠错能力的错误,由此造成存储器件的可靠性降低。为了防止该问题,可以确定不满足根据索引3的条件的存储区域不可用。127.在示例实施例中,存储控制器可以基于对应存储区域的waf来确定对应存储区域是否可用。128.例如,参照索引4,当对应存储区域的waf小于waf阈值时,存储控制器可以确定对应存储区域可用。当满足根据索引4的条件时,对应的位标志可以被确定为第一值(例如,“1”)。当不满足根据索引4的条件时,对应的位标志可以被确定为第二值(例如,“0”)。129.不满足根据索引4的条件可以意味着,对应存储区域不适合处理写入请求。例如,在从主机接收到存储4kb数据的写入请求的情况下,waf为10的存储区域存储了40kb数据,而waf为2的存储区域存储了8kb的数据。为了防止在具有高waf的不适宜存储区域中执行写入操作,例如,为了防止浪费存储设备的资源,可以确定不满足根据索引4的条件的存储区域不可用。130.在示例实施例中,存储控制器可以基于对应存储区域的存储器使用比率来确定对应存储区域是否可用。131.例如,参照索引5,当对应存储区域的存储器使用比率小于存储器使用比率阈值时,存储控制器可以确定对应存储区域可用。当满足根据索引5的条件时,对应的位标志可以被确定为第一值(例如,“1”)。当不满足根据索引5的条件时,对应的位标志可以被确定为第二值(例如,“0”)。132.不满足根据索引5的条件可以意味着,对应存储区域因处理任何其他操作(例如,另一写入请求、另一读取请求、垃圾收集操作或防御代码)而无法处理写入请求。例如,当对应存储区域的存储器使用比率为100%时,因为对应存储区域能够在完成先前被请求的操作的至少一部分之后处理写入请求,所以处理数据的速度可能会降低。为了防止该问题,可以确定不满足根据索引5的条件的存储区域不可用。133.图10是根据示例实施例的用于描述重定向写入请求的方法的流程图。134.将参考图10描述重定向写入请求的存储控制器的操作方法。存储控制器可以与主机和多个存储区域通信。135.在操作s110中,存储控制器可以从主机接收对多个存储区域中的第一存储区域的写入请求。在示例实施例中,多个存储区域可以分别对应于一个存储设备中的多个存储芯片,或者可以分别对应于一个存储芯片中的多个存储块。136.在操作s120中,存储控制器可以基于状态信息集来确定第一存储区域不可用。状态信息集可以包括分别对应于多个存储区域的多个状态信息。状态信息可以包括对应存储区域的平均擦除计数、对应存储区域的vpc比率、对应存储区域的坏块的数目、对应存储区域的waf和对应存储区域的存储器使用比率中的一者或更多者。在示例实施例中,存储控制器可以基于图9的可用存储条件来确定第一存储区域不可用。137.在操作s130中,存储控制器可以生成指示选择多个存储区域中的第二存储区域而非第一存储区域的重定向信息。138.在操作s130中,存储控制器可以基于状态信息集来确定第二存储区域满足可用存储条件。操作s130可以包括选择满足可用存储条件的第二存储区域并生成重定向信息。在这种情况下,可用存储条件可以类似于图9的可用存储条件。139.在操作s140中,存储控制器可以基于在操作s130中生成的重定向信息来在第二存储区域中执行写入操作。操作s140可以包括基于写入操作来更新状态信息集中的第二存储区域的状态信息。140.在操作s145中,存储控制器可以向主机输出指示写入请求的写入数据在第二存储区域中被处理的重定向结果信息。在示例实施例中,重定向结果信息可以包括与多个存储区域中的重定向后的存储区域对应的逻辑块地址、与写入请求对应的存储区域的信息、重定向后的存储区域的信息、被重定向的原因以及状态信息集中的一者或更多者。141.在示例实施例中,存储控制器的操作方法还可以包括在执行操作s145之后从主机接收与写入数据对应并包括第二存储区域的信息的读取请求。142.图11是根据示例实施例的用于描述监视存储区域的状态的方法的流程图。143.将参考图11描述监视存储区域的状态的存储控制器的操作方法。存储控制器可以与主机和多个存储区域通信。144.在操作s210中,存储控制器可以监视多个存储区域。操作s210可以包括定期地(例如,每参考时间)确定多个存储区域中的每一者是否满足可用存储条件。在这种情况下,可用存储条件可以类似于图9的可用存储条件。145.在操作s215中,存储控制器可以基于操作s210中的监视来更新状态信息集。状态信息集可以包括分别对应于多个存储区域的多个状态信息。在示例实施例中,状态信息可以包括对应存储区域的平均擦除计数、对应存储区域的vpc比率、对应存储区域的坏块的数目、对应存储区域的waf和对应存储区域的存储器使用比率中的一者或更多者。146.在操作s220中,存储控制器可以基于更新后的状态信息集来确定多个存储区域是否可用。147.在操作s230中,存储控制器可以生成指示多个存储区域中的第一存储区域不可用的监视信息。在示例实施例中,监视信息可以包括多个存储区域中的不可用存储区域的信息、不可用存储区域不可用的原因、多个存储区域中的可用存储区域的信息和更新后的状态信息集中的一者或更多者。148.在操作s240中,存储控制器可以向主机输出监视信息。在示例实施例中,在操作s240中,存储控制器可以向主机输出包括指示第二存储区域满足可用存储条件的信息的监视信息。149.存储控制器的操作方法还可以包括在执行操作s240之后从主机接收对多个存储区域中的第二存储区域的写入请求。此后,存储控制器可以基于写入请求来在第二存储区域中执行写入操作,并且可以基于写入操作来更新状态信息集中的第二存储区域的状态信息。存储控制器可以从主机接收与写入操作对应并包括第二存储区域的信息的读取请求。150.图12是应用了根据示例实施例的存储设备的固态硬盘(ssd)系统的框图。151.参照图12,ssd系统1000可以包括主机1100和存储设备1200。152.主机1100可以对应于图1、图4、图7和图8的主机11。153.存储设备1200可以通过信号连接器1201与主机1100交换信号sig,并且可以通过电源连接器1202接收电力pwr。154.存储设备1200可以包括多个非易失性存储器1211至121n、ssd控制器1220、辅助电源1230和缓冲存储器1240。155.多个非易失性存储器1211至121n可以对应于图1的多个存储芯片mc,或者可以对应于图4、图7和图8的多个存储区域mr1至mrn。多个非易失性存储器1211至121n可以在ssd控制器1220的控制下运行。156.ssd控制器1220可以对应于图1、图2、图4、图7和图8的存储控制器110。ssd控制器1220可以执行图10和图11的操作方法。ssd控制器1220可以响应于来自主机1100的信号sig而控制非易失性存储器1211至121n。在示例实施例中,如参考图1至图11描述的存储控制器中,ssd控制器1220可以重定向对不可用存储区域(例如,非易失性存储器)的写入请求,可以定期地监视存储区域的状态,并且可以向主机1100提供监视信息。因此,存储设备1200可以有助于抑制数据处理的失败和存储区域的磨损,并且可以实现高数据处理速度。157.辅助电源1230可以通过电源连接器1202与主机1100连接。辅助电源1230可以被来自主机1100的电力pwr充电。当从主机1100不平稳地供应电力时,辅助电源1230可以提供用于驱动存储设备1200的电力。158.缓冲存储器1240可以用作存储设备1200的缓冲存储器。159.通过总结和回顾,闪存器件可以用作高容量存储介质。例如,闪存器件可以用作用于云计算的服务器的存储介质。在向多个用户提供同一服务的多租户环境中,为了减少用户之间的干扰并增强安全性,闪存器件可以被配置为独立地管理物理上分离的存储区域中的每个用户的数据。然而,根据用户的倾向、数据的大小等,过度的工作负载可能集中在特定的存储区域上,这可能造成数据处理失败、特定的存储区域变得磨损或数据处理被延迟。160.如上所述,实施例涉及重定向写入操作的存储控制器及其操作方法。根据示例实施例,存储控制器可以重定向对不可用存储区域的写入请求,定期地监视存储区域的状态,和/或向主机提供监视信息,这可以有助于避免数据处理的失败和存储区域的磨损,并且可以提供高的数据处理速度。另一示例实施例涉及对应的操作方法。161.本文中已经公开了示例实施例,并且虽然采用了具体术语,但仅以一般描述性含义来使用并解释这些术语,而非出于限制目的。在一些情形下,在提交本技术时,对于本领域的普通技术人员而言将清楚的是,结合特定实施例描述的特征、特性和/或元件可以单独地使用或者与结合其他实施例描述的特征、特性和/或元件组合地使用,除非另外具体指明。因此,本领域的技术人员应该理解的是,在不脱离所附权利要求书阐述的本发明的精神和范围的情况下,可以进行形式和细节上的各种改变。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部