具有软读取挂起方案的存储器系统及其操作方法与流程

文档序号:17747897发布日期:2019-05-24 20:45阅读:159来源:国知局
具有软读取挂起方案的存储器系统及其操作方法与流程

本申请要求于2017年11月17日提交的申请号为62/588,113的美国临时申请的优先权,其全部内容通过引用并入本文。

本公开的实施例涉及一种具有软读取挂起方案的存储器系统,以及操作此类存储器系统的方法。



背景技术:

计算机环境范例已经转变到能够随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已迅速增长。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。

由于使用存储器装置的数据存储装置没有移动部件,因此它们提供优异的稳定性、耐用性、高信息访问速度以及低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。

ssd可以包括闪速存储器组件和控制器,控制器包括将闪速存储器部件桥接到ssd输入/输出(i/o)接口的电子器件。ssd控制器可以包括执行诸如固件的功能部件的嵌入式处理器。ssd功能部件通常是特定于装置的,并且在大多数情况下可以被更新。

两种主要类型的闪速存储器以nand和nor逻辑门命名。单独的闪速存储器单元表现出与其相应栅极类似的内部特性。nand型闪速存储器可以以通常远小于整个存储空间的块(或页面)写入和读取。nor型闪速存储器允许将单个机器字(字节)写入经擦除的位置或独立地读取。nand型闪速存储器主要用于存储卡、usb闪存驱动器、固态驱动器(ssd)和类似产品,以用于数据的一般存储和传输。

闪速存储器ssd应用高级错误校正码,诸如低密度奇偶校验码(ldpc),以恢复数据中相对大量的错误。这种错误校正码(ecc)处理生成用于解码的软信息,这需要对相同数据进行多次存储器读取。使用参考阈值电压来执行第一次读取以用于硬解码,该参考阈值电压被设置为将单元的位值区分为0或1。如果硬解码失败,则在大于和/或小于参考阈值电压的不同电压下执行多次附加读取,例如大约7次。从所有这些附加读取中收集的信息被组合以生成软信息,其用于应用更强大的错误校正解码以恢复数据中的错误。

虽然软解码有助于恢复错误,但是获取足够的软信息所需的附加读取增加了延迟。如果一次软读取耗费100μs,则若成功的软解码需要7次软读取,总读取时间会长达700μs。更糟糕的情况是,由多次软读取和解码引起的这种大的延迟可能阻止进一步沿队列执行读取命令。总体影响是ssd的服务质量(qos)降低。

在此背景下,提出了本发明的实施例。



技术实现要素:

本发明的方面包括存储器系统。这种存储器系统包括存储器装置和存储器控制器。存储器控制器被配置为响应于命令队列中的命令,控制存储器装置执行硬读取以从存储器装置读取数据以生成用于硬解码的硬信息;并且预测是否将对数据执行软解码,以及如果是,则将执行多少次软读取以用于软解码。存储器控制器可以进一步被配置为当硬解码失败并且确定将执行软解码并且将执行至少一次软读取时,控制存储器装置执行初始软读取以从存储器装置读取数据以生成用于软解码的软信息;预测是否将执行后续软读取,以及如果是,则将执行多少次后续软读取以用于数据的软解码;并且基于预测确定是否对数据执行第一后续软读取。

本发明的其它方面包括方法,特别是操作存储器系统的方法,该方法包括与上文关于存储器系统所描述的功能性和进程相应的步骤或操作。

由以下描述,本发明的其它方面将变得显而易见。

附图说明

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

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

图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。

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

图5是示出管芯队列中的至少一些读取命令针对相同管芯的不同块中的数据的场景的示意图。

图6是根据本发明实施例的预测器模块、其功能性及其与解码器的关系的示意图。

图7是根据本发明的实施例的操作存储器系统或装置的方法中的步骤的流程图。

图8是根据本发明实施例的操作存储器系统或装置以用软读取挂起方案执行读取/解码操作的方法中的步骤的更高级流程图。

具体实施方式

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

本发明可以以包括以下的许多种方式来实施:作为进程、设备、系统、物质组成、实现在计算机可读存储介质上的计算机程序产品、和/或处理器,诸如适于执行存储在联接到处理器的存储器上和/或由其提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其它形式,可以称作技术。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的诸如处理器或存储器的部件可以被实施为被临时配置为在给定时间执行任务的通用部件或者被制造为执行任务的特定部件。如本文所使用的,术语“处理器”等指的是适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。

下文提供对本发明的实施例的详细描述以及说明本发明方面的附图。结合这些实施例来描述本发明,但本发明不限于任何实施例。本发明的范围仅受权利要求的限制。本发明涵盖权利要求范围内的许多种替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;在没有一些或全部这些具体细节中的情况下,可以根据权利要求来实践本发明。为了清楚起见,未曾详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。

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

参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,其可以代表不止一个这样的装置。半导体存储器装置200可以是闪速存储器装置,特别是nand型闪速存储器装置。

存储器控制器100可以控制半导体存储器装置200的全部操作。

半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除、编程和读取操作。半导体存储器装置200可以通过输入/输出(i/o)线接收命令cmd、地址addr和数据data。半导体存储器装置200可以通过电源线接收电力pwr,并且通过控制线接收控制信号ctrl。控制信号ctrl可以包括命令锁存使能(cle)信号、地址锁存使能(ale)信号、芯片使能(ce)信号、写入使能(we)信号、读取使能(re)信号等。

存储器控制器100和半导体存储器装置200可以集成在诸如固态驱动器(ssd)的单个半导体器装置中。ssd可以包括用于将数据存储在其中的存储装置。当半导体存储器系统10用于ssd中时,联接到存储器系统10的主机(未示出)的操作速度可以显著提高。

存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体器装置中。例如,存储器控制器100和半导体存储器装置200可以如此集成以配置个人计算机存储卡国际协会(pcmcia)的pc卡、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒、多媒体卡(mmc)、尺寸减小的多媒体卡(rs-mmc)、微尺寸版mmc(微型mmc)、安全数字(sd)卡、迷你安全数字(迷你sd)卡、微型安全数字(微型sd)卡、高容量安全数字(sdhc)和/或通用闪存(ufs)。

在另一实施例中,存储器系统10可以被设置为诸如下列的电子装置中的各种部件之一:计算机、超移动pc(umpc)、工作站、上网本计算机、个人数字助理(pda)、便携式计算机、网络平板pc、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(pmp)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(dmb)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传送信息的装置、射频识别(rfid)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的电子装置之一或计算系统的各种部件之一。

图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。

参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求而进行操作,特别是存储待由主机装置访问的数据。

主机装置可以用各种种类的电子装置中的任一种来实施。在一些实施例中,主机装置可以包括诸如以下的电子装置:台式计算机、工作站、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、和/或数字视频记录器以及数字视频播放器。在一些实施例中,主机装置可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、mp3播放器、便携式多媒体播放器(pmp)、和/或便携式游戏机。

存储器装置200可以存储待由主机装置访问的数据。

存储器装置200可以用诸如动态随机存取存储器(dram)和/或静态随机存取存储器(sram)的易失性存储器装置或者诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻ram(mram)、和/或电阻式ram(rram)的非易失性存储器装置来实现。

控制器100可以控制将数据存储在存储器装置200中。例如,控制器100可以响应于来自主机装置的请求控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供给主机装置,并且可以将从主机装置提供的数据存储到存储器装置200中。

控制器100可以包括存储装置110、控制部件120、错误校正码(ecc)部件130、主机接口(i/f)140和存储器接口(i/f)150,它们通过总线160联接,其中控制部件120可以被实施为诸如中央处理单元(cpu)的处理器。

存储装置110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储由控制器100和存储器装置200使用的数据以用于诸如读取操作、写入操作、编程操作和擦除操作的操作。

存储装置110可以用诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)的易失性存储器来实施。如上所述,存储装置110可以将由主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。

控制部件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求来控制存储器装置200的写入操作或读取操作。控制部件120可以驱动被称为闪存转换层(ftl)的固件,以控制存储器系统10的一般操作。例如,ftl可以执行操作,诸如逻辑到物理(l2p)映射的操作、损耗均衡、垃圾收集、和/或坏块处理。l2p映射称作逻辑块寻址(lba)。

ecc部件130可以在读取操作期间检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc部件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。

在一些实施例中,ecc部件130可以基于诸如下列的编码调制执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码、turbo码、turbo乘积码(tpc)、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)、或块编码调制(bcm)。这样,ecc部件130可以包括用于合适的错误校正操作的所有电路、系统或装置。特别地,ecc部件130可以包括ldpc解码器。

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

存储器接口150可以提供控制器100和存储器装置200之间的接口,以使控制器100响应于来自主机装置的请求控制存储器装置200。存储器接口150可以在cpu120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如nand闪速存储器的闪速存储器时,存储器接口150可以在cpu120的控制下生成用于存储器的控制信号并处理数据。

存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、页面缓冲器250、列解码器260和输入/输出电路270,其中页面缓冲器250可以是页面缓冲器阵列的形式。存储器单元阵列210可以包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以形成用于存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可以控制外围电路。

电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成各种电平的操作电压,诸如擦除电压和通过电压。

行解码器240可以与电压生成电路230以及多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址radd在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传送到所选择存储块。

页面缓冲器250可以通过位线bl(图3中所示)与存储器单元阵列210电通信。页面缓冲器250可以响应于由控制电路220生成的页面缓冲器控制信号,用正电压对位线bl预充电,编程操作和读取操作中将数据传送到所选择存储块和从所选择存储块接收数据,或者临时存储所传送的数据。

列解码器260可以向页面缓冲器250传送数据和从页面缓冲器250接收数据,或者向输入/输出电路270传送/从输入/输出电路270接收数据。

输入/输出电路270可以向控制电路220传送从外部装置(例如,存储器控制器100)接收的命令和地址,通过输入/输出电路270,将来自外部装置的数据传递到列解码器260或者将来自列解码器260的数据传送到外部装置。

控制电路220可以响应于命令和地址来控制外围电路。

图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列200的存储块211的任何一个。

参照图3,示例性存储块211可以包括联接至行解码器240的多条字线wl0至wln-1、漏极选择线dsl和源极选择线ssl。这些线可以并联布置,其中多条字线在dsl和ssl之间。

示例性存储块211可进一步包括分别联接到位线bl0至blm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管dst以及一个或多个源极选择晶体管sst。在所示实施例中,每个单元串具有一个dst和一个sst。在单元串中,多个存储器单元或存储器单元晶体管mc0至mcn-1可以串联联接在选择晶体管dst和sst之间。存储器单元中的每一个可以形成为存储多位数据信息的多层单元(mlc)。

每个单元串中的sst的源极可以联接到公共源极线csl,并且每个dst的漏极可以联接到相应的位线。单元串中的sst的栅极可以联接到ssl,并且单元串中的dst的栅极可以联接到dsl。跨越单元串的存储器单元的栅极可以联接到各个字线。也就是说,存储器单元mc0的栅极联接到相应的字线wl0,存储器单元mc1的栅极联接到相应的字线wl1,等等。联接到特定字线的一组存储器单元可以称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。

页面缓冲器阵列250可以包括联接到位线bl0至blm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而进行操作。例如,在读取操作或验证操作期间,页面缓冲器251可以临时存储通过位线bl0至blm-1接收的数据或者感测位线的电压或电流。

在一些实施例中,存储块211可以包括nand型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括nor型闪速存储器单元。存储器单元阵列210可以被实施为其中组合两种或更多种类型的存储器单元的混合闪速存储器,或者其中控制器被嵌入在存储器芯片内的1-nand闪速存储器。

参照图4,示意性地示出了存储器系统40的一般示例。存储器系统40可以包括易失性存储器400(例如,dram)、非易失性存储器(nvm)402(例如,nand)、诸如本文所描述的控制部件或控制逻辑404、诸如本文所描述的错误校正码(ecc)模块406、以及总线408,存储器系统40的这些部件通过总线408进行通信。易失性存储器400可以包括逻辑位地址lba表410,用于映射位的物理到逻辑地址。nvm402可以包括多个存储块(和/或多个超级存储块),以及用于主机写入的开放块430和用于垃圾收集(gc)的开放块440。图4示出了通用的存储器系统。本领域技术人员按照本公开将理解的是,可以与存储器系统一起利用附加/替换部件以实现本发明。

本发明的方面涉及用于存储器系统(例如ssd)的软读取挂起方案。在一些实施例中,此类方案还可以预测是否需要软解码,以及如果需要,则将需要多少次软读取。在一些实施例中,此类方案还可以在硬解码不成功之后预测将需要多少次软读取。在一些实施例中,此类方案还可以在软读取期间预测是否需要额外的软读取,以及如果需要,则将需要多少软读取。可以自适应地执行一些方案。本发明的方面减少了总体命令延迟并改善了ssd的qos。

图5示出了读取命令的队列51,每个读取命令针对管芯52中的多个块的特定存储块,例如,存储块211中的一个存储块中的数据。例如,管芯52包括四个块:(块0)52a、(块1)52b、(块2)52c和(块3)52d。将第一至第五读取命令按顺序排队。第一读取命令针对块2中的数据,第二读取命令针对块1中的数据,第三读取命令针对块3中的数据,第四读取命令针对块2中的数据,并且第五读取命令针对块0中的数据。

考虑块2(第一读取命令的目标)有噪声并且每次软读取耗费100μs的情况。从块2读取并成功解码数据可能将导致长延迟,例如700μs。在没有软读取挂起方案的情况下,该长延迟阻止列队中下一个针对相同管芯中的较少噪声块的读取命令的执行,例如,对块1的读取命令,直到响应于排在第一的命令而读取的数据被成功解码。在能够用一次软读取和解码操作来执行列队中下一个指向较小噪声块中的数据的读取命令的场景中,如果能够立即执行该命令,则该读取/解码操作的延迟将仅为100μs。然而,在用于成功执行队列中第一个命令的长延迟的情况下,执行队列中下一个命令的总体延迟为800μs(用于执行第一命令的700μs+用于执行下一命令的100μs)。这显著增加了例如ssd的存储器系统的延迟,并因此降低了ssd的qos。

本发明的方面旨在缓解这种情况,并且从而减少总体命令延迟。根据本发明的实施例,提供了自适应软读取挂起方案。在一个此类方案中,在软解码开始之前,对正在被读取的数据中的错误数量进行估计,并且由该估计,预测是否需要以及可能需要多少次软读取来成功获取校正数据。在另一个此类方案中,在第一次软读取期间对当前读取的数据中的错误数量进行估计,以预测是否需要以及可能需要多少次附加软读取。考虑到最近一次失败,可以在每次软读取/解码失败之后重复后一种方案。

参照图6,示出了被配置为进行这种估计和预测的预测器模块61。预测器模块61可以实现在存储器控制器100或控制器404中。预测器模块61可以包括在ecc部件130中,或者预测器模块61的功能性可以与ecc部件130的功能性组合以形成存储器控制器100或控制器404内的单个元件。预测器模块61的输出可以被提供给解码器,例如ldpc解码器62,解码器62可以实现在任何更大的部件中,例如,预测器模块61被实现于其中的控制器100、404或ecc部件130。

可以使用预测器模块61来:(i)在硬解码之前预测是否需要软读取,以及如果需要,将需要多少次软读取,(ii)在硬解码不成功之后预测将需要多少次(例如,2、3、……、7或甚至更多)软读取,(iii)在第一次软读取期间或之后预测是否需要附加的软读取,以及如果需要,将需要多少次附加的软读取,和/或(iv)在任何后续软读取期间或之后,当解码尚未成功时,预测是否需要附加的软读取,以及如果需要,将需要多少次附加的软读取。

考虑到许多特征的组合,可以为预测建立框架,指示读取数据的错误倾向性。一个此类特征是随机化数据的0和1的百分比。如果此类数据中1的百分比小于第一阈值,例如48%,或大于第二阈值,例如52%,则这可指示需要一个或多个(附加的)软读取并且可能存在用于当前读取操作的相对长的延迟。另一个特征是校验子权重。大于某一阈值的校验子权重倾向于指示需要一个或多个(附加的)软读取。又一个特征是对相同块或管芯的历史或过去读取成功/失败。如果在相对较近的过去对于当前读取操作所针对的相同块和/或管芯中的数据执行读取操作,则需要多次软读取,即使采用优化的参考电压,当前读取命令也可能需要多次软读取。在这种情况下,所需的软读取也可能是由于管芯的劣化或长的数据保持。适于估计数据中的错误的其它特征也可以用作预测的基础。

可以组合这些特征或其子组合以进行预测。可以适当地加权每个特征。例如,预测器模块61可以被实施在机器学习框架中,以基于过去的性能来调整所应用的特征的权重,以改进未来的预测。

在实施例中,基于来自预测器模块61的预测,确定当前读取命令的软解码是否正在影响存储器系统10的qos,控制器100或404可以挂起该命令的执行并且开始执行需要更高qos或者能够被更快地执行的另一个读取命令。在某些时候,将重新开始(resume)执行被挂起的读命令。

图7是示出当已经在执行软解码,例如,软ldpc解码时的软读取挂起流程的流程图。在步骤701,响应于当前软读取命令,以参考电压对闪速存储器执行软读取。在步骤702,更新在软读取中生成的ldpc码的每位的对数似然比(llr)和bin值。在步骤703,对读取数据尝试软ldpc解码。在步骤704,由控制器100、404确定软解码是否成功。如果是(步骤704处为是),则不需要进一步读取当前数据,并且可以对被成功解码的数据执行进一步处理。也可以处理后续的软读取命令。在本流程的情景中,进程可以结束。如果不是(步骤704处为否),则如下执行进一步的操作。

在步骤705,预测器模块61或其相关联的控制器(例如,存储器控制器100或控制器404)预测成功的软解码需要多少次软读取。注意,可于如图7所示,在步骤704确定对在步骤701执行的先前软读取的软解码失败之后进行该预测,或者在步骤701的软读取期间进行该预测。

基于这样的预测,连同关于被阻止的命令的信息,例如,它们的相对优先级和/或qos需求,预测器模块61(或相关联的控制器)能够确定是继续处理当前软读取命令还是挂起该处理以服务另一读取命令。在实施例中,通过将预测的剩余软读取与阈值比较来进行这种确定。如上文所指出的,可以根据阻止队列中高级的下一个或其它命令是否影响延迟或其它qos指标来设置阈值。

在步骤706,将预测的剩余软读取的数量与阈值进行比较。如果该预测的数量小于阈值,则不挂起对当前软读取命令的执行,在这种情况下,进程流程返回到步骤701以从后续的软读取开始进行后续的迭代。

另一方面,如果在步骤706的确定指示预测的剩余软读取的数量大于或等于阈值,则挂起对当前软读取命令的进一步处理,将每个单元的二进制信息和软读取的阶段备份在控制器内部sram或dram(例如,存储110)中。例如,如果在步骤705预测,在第三次迭代期间成功的软解码需要七次软读取,但仅有两次软读取已被执行,每个位将被分配位llr值或二进制信息以指示该状态。存储该信息。

因此,下一次,当重新开始处理当前软读取命令时,将所有备份的二进制和软信息回拷贝到ldpc解码器62。这样做避免了重复。也就是说,控制器100、404从该信息中获知不需要从第一次和第二次读取重新开始。而是,控制器100、404仅需要在第三次读取开始,并且仅需要执行第三、第四、第五和第六次读取。

图8是更一般地描述根据本发明对实施例的用于确定响应于当前读取命令是继续读取/解码还是挂起进一步的处理以支持执行可能具有高优先级的另一命令的进程中的步骤的流程图。流程图80中所示的步骤是示例性的。本领域技术人员将理解,可以执行附加或替换步骤,或者可以改变步骤的顺序,从而在不脱离本文公开的发明构思的情况下实施本发明的各方面。流程图80的步骤可以由本文公开的存储器系统部件,诸如控制器、预测器模块、解码器和/或其它合适的部件来执行,这些部件中的任一个可以用适当的硬件、软件、固件或其组合来实施。

参照图8,在步骤801,执行硬读取操作以生成用于硬解码的硬信息。此时,即在例如硬ldpc解码的硬解码之前或之后立即,在步骤802,部署预测器模块61以预测是否将需要软解码,例如,软ldpc解码,并且如果需要,则将需要多少次软读取。基于这种预测,并假设硬解码失败,在步骤803控制器100、404确定是否继续软读取或者挂起对当前读取命令的进一步处理以支持队列中的更高优先级命令。例如,如果预测数量大,即大于或等于阈值,则控制器100、404确定挂起(步骤803处为是)。在这种情况下,可以执行队列中的更高优先级命令。在当前流程的情景中,进程可以结束。如果在步骤803的判定为“否”,则流程继续到步骤804。在设置阈值并由此进行确定时可以考虑各种因素和信息。

在步骤804,执行软读取。在软读取期间或之后立即,在步骤805再次部署预测器模块61以预测是否将需要附加软读取,并且如果需要,则将需要多少次。这再次导致在步骤806的挂起判定。

如果在步骤806的判定是不挂起,而是根据在步骤805的预测继续一个或多个附加软读取,则流程返回到步骤804以进行另一软读取。重复步骤804-806,直到在步骤806作出判定以挂起或响应于当前命令成功解码所读取的数据。也就是说,在每次软读取之后,能够预测用于成功软解码的剩余软读取。然后,使用该预测来确定继续处理当前读取命令或者还是使例如具有更高qos需求的另一被阻止命令执行。

一旦在步骤803或步骤806将处理挂起,就记录并存储所有临时信息,诸如二进制计数器信息、已施加的读取参考电压和软读取的阶段。因此,当重新开始处理当前读取命令时,控制器100、404仅需要从挂起点开始。

如前所述,通过响应于当前读取命令进行关于与数据的进一步读取/解码相关联的时间的预测,能够做出关于是否响应于该命令而挂起进一步处理以支持执行更高优先级的命令的智能判定。此种预测和判定可以早在读取/解码数据的进程之前进行,并且在先前的判定是响应于当前的命令继续读取/解码时稍后再次进行。稍后的预测能够利用在先前判定点处生成的信息。因此,本发明通过帮助减少总体命令延迟对存储器系统提供显著的改进并因此改善存储器装置及其相关联的存储器系统的qos。本发明的各方面特别适合于ssd。

尽管为了清楚和理解的目的已经稍为详细地描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在实施本发明的许多替代方案。因此,所公开的实施例是说明性的,而非限制性的。

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