利用过采样读取的系统最优化方法与流程

文档序号:11677191阅读:180来源:国知局
相关申请的交叉引用本申请要求2016年1月19日提交的名称为“利用过采样读取的系统最优化方法(methodsofsystemoptimizationbyover-samplingread)”的美国申请15/000614的优先权,其全部内容通过引用合并于此。本公开的示例性实施例涉及一种信号处理和编码技术。
背景技术
::磁储存技术最常用于储存数据,但是当前电子设备的更小重量和更快读取/写入操作需求使得磁储存技术不能令人满意。基于nand的技术能够满足高密度数据储存设备的要求,但是该技术是昂贵的。存在降低基于nand的技术的成本同时保持性能水平的需求。技术实现要素:本发明的方面包括用于对块中的字线编程的方法。该方法可以包括:识别要被编程的块,开放块以用于编程,以及对块中的第一字线和块中的第二字线进行编程,其中,第一字线和第二字线由在编程期间被跳过的若干字线分离,所述若干字线基于预定间隔而被跳过。本发明的进一步的方面包括用于对块中的字线编程的系统,该系统可以包括控制器,该控制器适用于:识别要被编程的块,开放块以用于编程,以及对块中的第一字线和块中的第二字线进行编程,其中,第一字线和第二字线由在编程期间被跳过的若干字线分离,所述若干字线基于预定间隔而被跳过。附图说明图1是根据本发明的方面的存储系统的示图。图2是根据本发明的方面的存储系统组件的示图。图3a和图3b是根据本发明的方面的存储块的示图。图4是根据本发明的方面的对字线进行编程的步骤的流程图。图5是根据本发明的方面的存储块的示图。图6是根据本发明的方面的使用二次查找表的方法的步骤的流程图。图7是根据本发明的方面的用于突然断电恢复的方法的步骤的流程图。具体实施方式以下将参照附图更详细地描述各种实施例。然而,本发明可以以不同的形式来实现,并且不应当被解释为局限于本文中所阐述的实施例。更确切地说,这些实施例被提供使得本公开将是彻底和完整的,并且这些实施例将把本发明的范围充分地传达给本领域技术人员。贯穿本公开,相同的附图标记在本发明的各种附图和实施例中指示相同的部分。本发明可以以许多方式实施,包括过程、设备、系统、事物的组合、在计算机可读储存介质上实施的计算机程序产品和/或处理器(诸如,被配置为运行储存在耦接至处理器的存储器上和/或通过耦接至处理器的存储器提供的指令的处理器)。在该说明书中,这些实施方式或本发明可采取的任何其他形式可以被称为技术。一般而言,所公开的过程的步骤的顺序在本发明的范围内可以改变。除非另有说明,否则描述为被配置为执行任务的组件(诸如处理器或存储器)可以实施为被临时配置为在给定时间执行该任务的常规组件,或实施为被制造为执行该任务的特定组件。如在本文中所用,术语“处理器”指被配置为处理数据(诸如计算机程序指令)的一个或更多个器件、电路和/或处理核。在一些实施例中,本发明将被应用至图1中所示的数据处理系统。图1图示包括应用了本发明的实施例的存储系统的数据处理系统100。图1中所示的数据处理系统100仅是说明性的。在不脱离本公开的范围的情况下,可以使用数据处理系统100的其他结构。虽然图1图示了数据处理系统100的一个示例,但是可以对图1做出各种改变。例如,数据处理系统100在任何适当的布置中可以包括元件中的任意一个,或者可以不包括元件中的任意一个。参照图1,数据处理系统100可以包括主机102和存储系统110。例如,主机102可以包括诸如移动电话、mp3播放器和膝上型计算机的便携式电子设备或者诸如台式计算机、游戏机、tv和投影仪的电子设备。存储系统110可以响应于来自主机102的请求而操作,具体地,储存要被主机102访问的数据。换句话说,存储系统110可以用作主机102的主存储系统或辅助存储系统。 存储系统110可以根据要与主机102电耦接的主机接口的协议而用各种类型的储存设备中的任意一种来实施。存储系统110可以用诸如固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、缩小尺寸mmc(rs-mmc)和微型mmc、安全数字(sd)卡、迷你sd和微型sd、通用串行总线(usb)储存设备、通用快闪储存(ufs)设备、紧凑型快闪(cf)卡、智能媒体(sm)卡、记忆棒等的各种类型的储存设备中的任意一种来实施。用于存储系统110的储存设备可以用易失性存储器件(诸如动态随机存取存储器(dram)和静态随机存取存储器(sram))或非易失性存储器件(诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻ram(mram)和电阻式ram(rram))来实施。存储系统110可以包括存储器件150以及控制器130,存储器件150储存要被主机102访问的数据,控制器130控制数据在存储器件150中的储存。控制器130和存储器件150可以被集成至一个半导体器件中。例如,控制器130和存储器件150可以被集成至一个半导体器件中并且配置固态驱动器(ssd)。当存储系统110用作ssd时,可以显著地提高与存储系统110电耦接的主机102的操作速度。控制器130和存储器件150可以被集成至一个半导体器件中并且配置存储卡。控制器130和存储器件150可以被集成至一个半导体器件中,并且配置诸如个人计算机存储卡国际协会(pcmcia)卡、紧凑型闪存(cf)卡、智能媒体(sm)卡(smc)、记忆棒、多媒体卡(mmc)、rs-mmc和微型mmc、安全数字(sd)卡、迷你sd、微型sd和sdhc以及通用快闪储存(ufs)设备的存储卡。再例如,存储系统110可以配置计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航仪、黑匣子、数字照相机、数字多媒体广播(dmb)播放器、三维(3d)电视、智能电视、数字录音机、数字音频播放器、数字图片记录器、数字图片播放器、数字录像机、数字视频播放器、配置数据中心的储存器、能够在无线环境下收发信息的设备、配置家庭网络的各种电子设备中的一种、配置计算机网络的各种电子设备中的一种、配置远程信息处理网络的各种电子设备中的一种、rfid设备或者配置计算系统的各种组成元件中的一种。存储系统110的存储器件150可以在电源被中断时保持储存的数据,具体地,在写入操作期间储存从主机102提供的数据,以及在读取操作期间将储存的数据提供至主机 102。存储器件150可以包括多个存储块152、154和156。存储块152、154和156中的每个可以包括多个页。每个页可以包括多个存储单元,多个字线(wl)电耦接至所述多个存储单元。存储器件150可以是非易失性存储器件,例如,快闪存储器。快闪存储器可以具有三维(3d)层叠结构。存储系统110的控制器130可以响应于来自主机102的请求来控制存储器件150。控制器130可以将从存储器件150读取的数据提供给主机102,以及将从主机102提供的数据储存在存储器件150中。为此,控制器130可以控制存储器件150的总体操作,诸如写入操作、读取操作、编程操作和擦除操作。详细地,控制器130可以包括主机接口单元132、处理器134、错误校正码(ecc)单元138、电源管理单元(pmu)140、存储器控制器(mc)142和存储器144。主机接口单元132可以处理从主机102提供的命令和数据,以及可以通过诸如通用串行总线(usb)、多媒体卡(mmc)、外围组件互连快速(pci-e)、串行附接scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小盘接口(esdi)和集成驱动电路(ide)的各种接口协议中的至少一种来与主机102通信。ecc单元138可以在读取操作期间检测并校正从存储器件150读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc单元138不能校正错误位,并且可以输出指示校正错误位失败的错误校正失败信号。ecc单元138可以基于诸如低密度奇偶校验(ldpc)码、博斯-乔赫里-霍克文黑姆(bch)码、涡轮码(turbocode)、涡轮乘积码(tpc)、里德-所罗门(rs,reed-solomon)码、卷积码、递归系统码(rsc)、格形编码调制(tcm)和块编码调制(bcm)等的编码调制来执行错误校正操作。ecc单元138可以包括用于错误校正操作的所有电路、系统或设备。pmu140可以提供和管理用于控制器130的电源,即,用于包括在控制器130中的组成元件的电源。mc142可以用作控制器130与存储器件150之间的存储器接口,以允许控制器130响应于来自主机102的请求来控制存储器件150。mc142可以产生用于存储器件150的控制信号以及在处理器134的控制下处理数据。当存储器件150是快闪存储器(诸如nand快闪存储器)时,mc142可以产生用于nand快闪存储器150的控制信号以及在处理器134的控制下处理数据。存储器144可以用作存储系统110和控制器130的工作存储器,并且储存用于驱动存储系统110和控制器130的数据。控制器130可以响应于来自主机102的请求来控制存储器件150。例如,控制器130可以将从存储器件150读取的数据提供给主机102,以及将从主机102提供的数据储存在存储器件150中。当控制器130控制存储器件150的操作时,存储器144可以储存由控制器130和存储器件150使用的数据以用于诸如读取操作、写入操作、编程操作和擦除操作的操作。存储器144可以利用易失性存储器来实施。存储器144可以利用静态随机存取存储器(sram)或动态随机存取存储器(dram)来实施。如上所述,存储器144可以储存由主机102和存储器件150使用的数据以用于读取操作和写入操作。为了储存该数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。处理器134可以控制存储系统110的常规操作,以及响应于来自主机102的写入请求或读取请求来控制针对存储器件150的写入操作或读取操作。处理器134可以驱动被称为闪存转换层(ftl)的固件来控制存储系统110的常规操作。处理器134可以利用微处理器或中央处理单元(cpu)来实施。管理单元(未示出)可以被包括在处理器134中,并且可以执行存储器件150的坏块管理。管理单元可以找到包括在存储器件150中的坏存储块(其不满足进一步使用的条件)并且对坏存储块执行坏块管理。当存储器件150是快闪存储器(例如,nand快闪存储器)时,在写入操作期间(例如,在编程操作期间),可能因nand逻辑功能的特性而发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可以被编程至新存储块中。此外,因编程失败导致的坏块严重地降低了具有3d层叠结构的存储器件150的利用效率以及存储系统100的可靠性,从而需要可靠的坏块管理。图2是根据本发明的实施例的包括编码器和解码器的存储系统200的框图。例如,存储系统200对应于图1中所示的存储系统110。为了清楚,在本文中未示出图1的与本发明的实施例直接有关的组件。参照图2,存储系统200包括储存器210、写入控制器220和读取控制器230。例如,储存器210对应于图1中所示的存储器件150,写入控制器220和读取控制器230对应于图1中所示的ecc单元138。储存器210可以包括诸如nand闪存的固态储存器。写入控制器220接收来自图1中的主机102的数据,以及处理储存器210上的数据。读取控制器230读取储存器210上的数据,以及处理数据。写入控制器220包括tpc编码器222以及读取控制器230包 括tpc解码器232来分别作为tpc方案的组件。nand快闪存储器越来越多地在企业数据储存解决方案和消费者数据储存解决方案方面得到应用。它们抗震且它们的i/o性能比硬盘驱动器的性能好。nand快闪存储器被划分为很多块且每个块具有很多字线(wl)。wl可以包含多个页。页包含多个逻辑块地址(lba),该多个逻辑块地址是主机设备能够访问的最小存储单元。与磁储存驱动器不同,nand快闪存储器不支持原位更新。即,当与lba关联的数据要用新数据重写时,其在页中的当前位置被简单地标记为“无效”,以及新数据被写入至另一页中的新位置。块中的很多lba将随时间逐渐变为无效。为了回收块中的无效位置,与剩余有效lba有关的数据被读取并且写入至另一个块,从而开放全部块来擦除,以及随后写入新数据。该回收过程被称为“垃圾收集”。当固态驱动器(ssd)用完空块来写入新数据时,新的读取请求将引起进行垃圾收集以产生空块。因此,将新数据写入驱动器可以导致发生若干写入操作:主机写入本身和在垃圾收集期间的写入。写入放大(wa)被定义为对nand的总写入次数与主机写入次数的比率。例如,如果主机将1个lba写入至ssd并且在该过程中引起垃圾收集以进行一次额外写入,则wa可以是2。减小写入放大是nand闪存管理的重要目标。将wl编程在块中将引起对其相邻wl的干扰。nand管理的另一个目标是控制驱动器中块的磨损均衡(wear-level)。块仅可以耐受特定数量的编程/擦除(p/e)循环。当已经达到这个数量时,该块被认为坏了且不能被使用了。此外,用于整个驱动器的渐进式增量阶跃脉冲编程值(progressiveincrementalsteppulseprogramvalue)通过当前具有最高p/e循环值的块来改变。因此,确保块贯穿ssd寿命都具有类似的磨损均衡是至关重要的。被频繁写入或更新的数据被认定为是热的。在被最初写入之后很少被更新或从未被更新的数据被认定为是冷的。数据温度(热/冷)还显示出时间局部性。即,在同一时间附近被写入的数据通常具有类似的温度。为了减小wa,热数据和冷数据应当被分离至不同的块而不应当被混入同一个块。这可以通过很多技术(诸如使用块中的一些作为高速缓存)来进行。图3a和图3b是表示根据本发明的方面的存储块300的示图。图4是根据本发明的方面的过程中的步骤的流程图40。参照图3a、图3b和图4,在本文中公开了减少wl之间编程干扰的wl编程技术 的实施例。由于用户业务量的空间和时间局部性,因此lba将具有不同的写入频率。如果使用数据分离和/或高速缓存来减小wa,则ssd驱动器中的一些块将被指定为热块或高速缓存块,并且将用于储存热lba。热块中的lba将会被频繁地无效掉。这种设置可以用于减少相邻wl之间的编程干扰。在步骤402处,识别要被编程的块。例如,所述块可以与块300和/或块302类似。块300包括字线wl0-wl7。块302包括字线1-2i。在实施例中,块300和块302可以储存热数据。在步骤404处,通过以预定间隔跳过(skip)wl来编程wl。例如,在开放块以用于编程之后,可以编程偶数字线(wl0、wl2、wl4和wl6)。由于奇数wl不包含有效数据,因此较少关注相邻wl之间的干扰。一旦偶数wl被编程,就可以关闭用于编程的块。在步骤406处,重新开放要被编程的块。当下次开放该块(例如,块300、302)用于编程时,在步骤408处,对先前以预定间隔被跳过的wl进行编程。例如,对字线wl1、wl3、wl5和wl7进行编程。因为在该实施例中,块300和块302可以储存热数据,所以储存在偶数wl中的lba最可能被无效掉。在开放块之前,未被无效掉的少数lba可以被复制至另一个块。这再次减少了通过相邻wl的编程干扰而产生的错误。预期的是,可以使用各种预定间隔来实现本发明。如上所述,在偶数/奇数结构的情况下,预定间隔可以是1。换句话说,存储器可以跳过块的wl中间的1个字线。因此,在块300中,wl0可以被编程,然后wl1可以被跳过,然后wl2可以被编程。wl0和wl2被基于预定间隔的一个字线分离。在其他示例中,每次开放块以用于编程时,仅每隔一个的第nwl将被编程以降低wl之间的干扰。预定间隔可以根据储存数据的块的大小和结构来设置为各种值(例如,2、3、4…n等)。在额外应用中,除了应用至热数据块/高速缓存数据块以外,本文中公开的编程方法还可以应用至ftl表格日志块(tablejournalingblock)。参照图5,示出了存储块500的示图。包含热数据的块500中的wl可以被划分为组,其中,每个组包含n个连续的字线。例如,组502包含6个字线(wl0-wl5),组504包含6个字线(wl6-wl11),组506包含6个字线(wl12-wl17)。在一些实施例中,第i次(i=0,…,n-1)开放块以用于写入时,仅使用每个组中的第i个wl。例如, 如果i=4,则仅wl3、wl9和wl15将用于编程。在一些示例中,在开放热块以用于写入之前,对任何有效lba进行垃圾收集来确保在块中不存在有效数据。在一些实施例中,由于驱动器中的块可以具有不同的容量,因此需要修改ftl。参照图6,示出了根据本发明的方面的使用二次查找表的步骤的流程图60。二次查找表可以用于确定当前正在使用热块中的哪些wl。在步骤602处,将信息储存在二次查找表中。可以在块被关闭时将信息写入至元页(meta-page)中,或者可以将信息储存在固件系统区域中。在关闭的块中留下未用空间有效地降低了op。在步骤604处,根据有效页的剩余数量和/或pe计数来重新开放块。为了使wa的增量最小化并且平衡wl,ftl根据其有效页的剩余数量和pe计数来重新开放特定块以用于写入。在步骤606处,估计块的数据温度,以及在步骤608处,根据数据无效的速度来最优化和选择预定间隔n。ftl还可以估计数据的温度,使得针对具有不同数据温度的块,n可以被最优化。在一些实施例中,在重新开放块时,根据数据无效的速度来选择n,使得大部分数据是无效的。例如,对于拥有极热数据的块,可以选择小的n值。突然断电恢复(spor)程序也可以被修改为适应于本公开的编程技术。参照图7,示出了根据本发明的方面的用于执行spor的步骤的流程图70。当块是满的时,p2l信息被写入至元页(或多个元页)以用于ftl表的上电恢复。当发生突然断电时,没有时间写入元页,使得需要读取和解码所有的页以便在下一次上电时重建ftl表。利用本文中公开的编程技术,整个块在概念上被划分为n个子块,其中,每当块开放时,仅子块中的一个子块允许被写入。当子块是满的且整个块关闭时,元页被写入至块以用于在下一次上电时重建ftl表。在步骤702处,通过扫描损坏的块来重建表。当发生突然断电时,表重建过程扫描了损坏的块。在步骤704处,读取并且解码n个页,以及在步骤706处,确定被最后使用的wl。在读取并且解码第一n个页之后,可以确定先前使用的wl(模n),使得没必要读取并且解码所有剩余页。反而,仅在发生断电时可能使用的wl需要被读取和解码(最坏情况下为总共n/n个页)。这有利而显著地缩短了spor时间。虽然已经参照本发明的示例性实施例来具体地示出和描述了本发明,但是本领域技 术人员将理解的是,在不脱离由所附权利要求书中所限定的本发明的精神和范围的情况下,在其中可以作出形式和细节上的各种改变。因此,前述内容仅作为示例,而非意在进行限制。例如,本文中示出和描述的元件的任何数目仅作为示例。本发明仅如所附权利要求及其等价物限定的那样被限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1