一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器的读操作控制方法及装置以及存储器控制器与流程

2021-04-02 10:15:00 来源:中国专利 TAG:存储器 控制器 装置 操作 控制
存储器的读操作控制方法及装置以及存储器控制器与流程

本申请涉及存储器领域,并且更具体地涉及一种存储器的读操作控制方法及装置以及存储器控制器。



背景技术:

nand型快闪存储器作为一种非易失性的存储器,目前已经广泛应用在无线通信,传统硬盘,固态存储硬盘等产品中。

从nand型闪存存储器读取数据时,需要采用译码器对读取到的数据进行译码才能获得数据内容。译码器采用软译码算法进行译码时,通常使用纠错码(ecc)纠正一定数量的错误数据比特。在现有的ecc纠错技术中,可以采用bch码(即,博斯-查德胡里-霍昆格母码)或ldpc码(即,低密度奇偶校验码)实现ecc纠错。ldpc码的纠错能力优于bch码。随着3dnand快闪存储器制程的减小和堆叠层数的增加,读操作时的原始比特误码率(rber,rawbiterrorrate)不断上升,bch码已经不能满足现在的需求。近年来ldpc码已经取代bch码而广泛应用在nand型闪存存储器。

ldpc码的译码方法包括以下三类:硬判决译码(或称硬解码)、软判决译码(或称软解码)和混合译码。硬判决是指解调器根据其判决门限对接收到的信号波形直接进行判决后输出0或1。软判决中,解调器不进行判决,直接输出模拟量,或是将解调器输出波形进行多电平量化,然后送往译码器,即,译码信道的输出是没有经过判决的“软信息”,由译码器对“软信息”进行判决。混合解码是两者结合。

对于相同的ldpc码来说,采用不同的译码方法可以获得不同的纠错性能。相比较而言,硬判决译码的速度更快,效率更高,而软判决译码则拥有更优秀的译码能力,因此通常闪存存储器会将两者结合以发挥最大译码效力。但是软判决译码会大量占用闪存数据带宽,严重恶化数据读写延时,因此在提高译码效率方面尤其需要提高软判决译码的效率。



技术实现要素:

有鉴于此,本发明提供一种存储器的读操作控制方法及装置以及存储器控制器,以提高软判决译码的效率。

根据本发明的第一方面,提供一种存储器的读操作控制方法,包括:

在第一检测电压下进行读操作,以得到硬信息,并将所述硬信息存储到硬信息缓存中;

在多个第二检测电压并行执行多个读操作,并将基于所述多个读操作产生的软信息存储到软信息缓存中;

基于所述硬信息和所述软信息,采用ldpc译码器确定读操作的最终数据。

可选地,所述控制方法还包括:从所述硬信息缓存中申请空闲存储单元,以便于将一部分软信息存储到所述空闲存储单元中。

可选地,所述从所述硬信息缓存中申请空闲存储单元还包括:控制用于存储所述软信息的所述硬信息缓存中的存储单元数量不超过设定阈值。

可选地,还包括:在所述从所述硬信息缓存中申请空闲存储单元的步骤之前,判断所述软信息缓存中是否存在空闲存储单元,在确定所述软信息缓存中不存在空闲存储单元之后,才去申请所述硬信息缓存中的空闲存储单元。

可选地,所述多个第二检测电压通过以下步骤得到:以所述第一检测电压为电压初始值,向两侧偏移特定步长,以获得所述多个第二检测电压。

可选地,所述第一检测电压为所述存储器的默认检测电压。

可选地,所述硬信息缓存和所述软信息缓存均为sram。

可选地,所述存储器为闪存存储器。

可选地,所述在多个第二检测电压并行执行多个读操作的步骤只在所述存储器的少部分存储单元上执行。

根据本发明的第二方面,提供一种存储器的读操作控制装置,包括:

硬信息产生模块,用于在第一检测电压下进行读操作,以得到硬信息;

硬信息缓存,用于存储所述硬信息;

软信息缓存,用于存储软信息;

多个软信息产生单元,所述多个软信息产生单元并行地在多个第二检测电压下执行多个读操作以得到所述软信息,并将所述软信息存储到所述软信息缓存;

ldpc译码器模块,用于基于所述硬信息和所述软信息,采用ldpc译码器确定读操作的最终数据;

控制模块,用于控制所述多个软信息产生单元针对所述硬信息产生模块无法识别的数据执行所述多个读操作。

可选地,所述多个软信息产生单元包括第一软信息产生单元和第二软信息产生单元,所述第一软信息产生单元获取多个第一软信息,所述第二软信息产生单元获取多个第二软信息,所述ldpc译码器模块交替对所述第一软信息和所述第二软信息进行ldpc译码。

可选地,所述读操作控制装置还包括:

缓存控制模块,用于管理所述软信息缓存和所述硬信息缓存,并为所述软信息产生单元申请所述硬信息缓存中的空闲存储单元以便于所述软信息产生单元将一部分软信息存储到由所述缓存控制模块为其申请的空闲存储单元中。

可选地,所述缓存控制模块还用于:控制用于存储所述软信息的所述硬信息缓存中的存储单元数量不超过设定阈值。

可选地,所述缓存控制模块还用于:在确定所述软信息缓存中没有空闲存储单元后,才去申请所述硬信息缓存中的空闲存储单元。

可选地,所述多个第二检测电压通过以下步骤得到:以所述第一检测电压为电压初始值,向两侧偏移特定步长,以获得所述多个第二检测电压。

可选地,所述第一检测电压为所述存储器的默认检测电压。

可选地,所述存储器为闪存存储器。

根据本发明的第三方面,提供一种存储器控制器,包括上述任一项所述的读操作控制装置和写入控制装置。

根据本发明的第四方面,提供一种闪存系统,包括存储器和上述任意一项所述的存储器控制器。

综上,和现有技术相比,上述实施例使用多个软信息产生单元并行产生软信息,又考虑到现有的软信息缓存可能不足以同时存储这样并行产生的软信息,因此又允许软信息产生单元可借用硬信息缓存中的存储单元存储软信息,由此能够提高软解码效率。这样的设计只需要额外增加软信息产生单元以及缓存控制模块等少量逻辑,就可以实现多个数据并行进行软解码,充分利用了软信息缓存模块和硬缓存模块中所有的缓存,减少了因多个数据排队而带来的大延时,提高了软解码效率。

附图说明

通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1示出闪存系统的示意性框图;

图2示出闪存系统中读操作控制装置的示意性框图;

图3是一示例性的闪存存储器的阈值电压分布图;

图4是具有更多细节现有的读操作控制装置的结构示意图;

图5是本发明一实施例的存储器的读操作控制装置的结构示意图;

图6示出了基于本发明实施例对两组数据进行软解码的时序示意图;

图7是本发明一实施例的存储器的读操作控制方法的流程图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。

本申请使用以下术语。

原始比特误码率(rber)是指在使用ecc之前的比特误码比率(rawbiterrorrate),原始比特误码率反映了nandflash最原始的可靠性状态。原始误码率越高,反映出nandflash可靠性越差。

ecc是“errorcorrectingcode”的简写,ecc是一种能够实现错误检查和纠正的技术。ldpc和bch是ecc技术的两个分支。

ldpc(lowdensityparitycheckcodes):低密度校验码,一种高效率的ecc算法,在闪存控制器芯片中常用来纠正因闪存颗粒(nandflash)特性而产生的错误。

cw:(codeword):码字。

硬信息(hardbit):用于ldpc硬判决译码,是从nandflash中读出来的未经硬判决的信息。

软信息(softbit):用于ldpc软判决译码,是用不同的参考电压从nandflash中多次读出的数据形成的llr(最大似然概率)

图1示出闪存系统的示意性框图。该闪存系统例如是使用固态硬盘(ssd)的计算机系统。该计算机系统包括主机110。固态硬盘包括存储器控制器120和存储器130。主机110经由存储器控制器120访问存储器130。该存储器130包括至少一个闪存芯片131。在该闪存系统中,存储数据为原始数据经过编码产生的编码数据,在读取过程中对存储数据译码才能获得原始数据。

主机110例如包括处理器。在使用状态中,该处理器从存储器130中加载程序或读取数据,以及向存储器130中写入数据。

存储器控制器120例如是单独的集成电路芯片,包括写入控制装置和读操作控制装置。在写入操作期间,写入控制装置对原始数据进行ldpc编码,从而生成存储数据,从而将存储数据写入存储器130中。在读操作期间,读操作控制装置从存储器130中获取存储数据,然后基于存储数据进行ldpc硬译码以获得原始数据,对于ldpc硬译码失败的存储数据,在多个检测电压下进行多次读操作,基于多次读操作结果计算llr,并基于llr进行ldpc软译码以获得原始数据。

闪存芯片131包括多个存储单元。在一个示例中,每个存储单元可以是单层单元(slc),其存储单个比特的数据。在另一示例中,每个存储单元可以是多层单元(mlc),其存储多个比特的数据。

在本实施例中,以使用固态硬盘的计算机系统作为闪存系统的实例。然而,本发明不限于此。闪存产品可以是包括固态硬盘、内存条、优盘、闪存卡中的任一种。

图2示出闪存系统中读操作控制装置的示意性框图。如上所述,闪存系统中的存储器控制模块包括写入控制装置和读操作控制装置。本发明的实施例主要涉及读操作控制装置的变化。

读操作控制装置121包括硬信息产生模块1211、软信息产生模块1212和ldpc译码器模块1213。

在工作期间,硬信息产生模块1211以存储页面为单位从存储器130读取数据。具体地,在读取周期期间,硬信息产生模块1211向存储页面的各存储单元施加检测电压(sensingvoltage)。对于给定的存储单元,硬信息产生模块1211读取存储单元的阈值电压与所施加的检测电压相比是更高还是更低的信息,并据此估计存储单元内存储的比特数据。例如,如果存储单元是slc,则硬信息产生模块1211估计存储单元中存储的比特数据是‘0’还是‘1’。如果存储单元是mlc,则分多次施加多个检测电压以估计存储在存储单元中的比特数据。存储单元由带浮栅的mos晶体管组成,因此读操作就是读取晶体管内的电平状态并与阈值电压比较的操作。举例说明。存储单元a可存储3个比特位的数据,即可存储的二进制数据为000,001,010,011,100,101,110,111,当向存储单元a写入数据时,改变存储单元a内的电荷数从而改变存储单元a的阈值电压,例如写入’111’时对应的阈值电压是vth1,因此,上述的8个二进制数据会对应8个阈值电压,当读取数据时,基于向存储单元a施加的检测电压与8个阈值电压的比对结果,就能确定存储单元a中存储的数二进制数据为上述8个二进制数据中的哪个。读操作因而与一个或多个检测电压相关联。

原始比特误码率(rber)是指硬信息中的比特数据中的错误比特数据与所有比特数据的百分比。如果原始比特误码率较低,则无需进行软解码。如果原始比特误码率较高,则调用软信息产生模块1212产生软信息以进行软解码。软信息产生模块1212可在多个检测电压下进行多个读操作,取得多组不同的数据,然后将这些数据结合对数似然比(log-likelihoodratio)进行多次迭代运算,并根据对数似然比(log-likelihoodratio)的信息去分析每个比特数据是0还是1的概率各为多大,这种概率信息被称为软信息。ldpc译码器模块1213通常包括各自独立执行的硬解码译码器(未示出)和软解码译码器(未示出),硬解码译码器基于硬信息使用ldpc硬译码技术执行译码操作,确定一部分原始数据,软解码译码器基于软信息采用ldpc软译码技术执行译码操作,确定通过硬译码无法识别的那部分原始数据。硬解码译码器和软解码译码器结合输出最终的输出数据dout。

图3是示例性的闪存存储器的阈值电压分布图,横轴是阈值电压,纵轴是存储单元数量。图上设定存储器的存储单元为slc。slc只存储‘0’或‘1’,因此图上只有两个正太阈值电压分布。图3中虚线包围的区域f11和f21分别表示电荷数发生变化前的阈值电压分布。当硬信息产生模块1211对该闪存存储器进行数据读取时,使用检测电压vr1施加到各个存储单元上。很明显可以看出,检测电压vr1大于f11对应的存储单元的阈值电压,检测电压vr1小于f21对应的存储单元的阈值电压,因此如果f11代表的存储单元内存储的数据为‘1’,则f21代表的存储单元内存储的数据应为‘0’,反之亦然。因此,各个存储单元的电荷数发生变化之前,能够很轻松地区分被读存储单元内的数据。

但是随着各个存储单元的电荷数发生变化,各个存储单元的阈值电压也发生变化。图3中的实线f12和表f22分别表示电荷数发生变化后的阈值电压分布。图3中的f12和f22分别相对于f11和f21的形态出现偏移和展宽,因此在f12和f22之间出现了两个正态阈值电压分布的重叠区域。重叠区域没法使用vr0判断‘0’和‘1’,这时需要调整检测电压进行多次读操作。多次读操作施加的检测电压将重叠区域划分成多个区间(如1,2,3,4),每个区间为‘0’和为‘1’的概率会不一样。读次数越多,重叠区域划分越细致,软判决译码成功的概率就越大,但同时需要占用的闪存数据带宽也越来越多,读操作效率越来越低。

图4是具有更多细节现有的读操作控制装置的结构示意图。如图上所示,读操作控制装置400包括:硬信息产生模块401、控制模块403、软信息产生单元4021、ldpc译码器模块404、硬信息缓存405和软信息缓存406。硬信息产生模块401、ldpc译码器模块404和软信息产生单元4021可参考上文中关于图2中的硬信息产生模块1211、ldpc译码器模块1213和软信息产生模块1212的描述,这里就不再重复。

控制模块403用于控制硬信息产生模块401和软信息产生单元4021的启动和关闭。例如,如果硬信息产生模块401产生硬信息无法识别时,启动软信息产生单元4021。

在硬解码失败的情况下,即硬信息无法被识别的情况下,需要进行获取软信息和软解码两个阶段的操作。获取软信息阶段对应于软信息产生单元4021,软解码阶段在ldpc译码器模块404中执行。下面以slc为例,闪存存储器的读操作是通过判断存储单元中的阈值电压来识别0和1,存储单元0和1的阈值电压的概率分布符合正态分布。参考图3所示,软信息产生单元4021通过向各个存储单元施加多个检测电压进行多个读操作,从而将重叠区域划分成多个区间(如1,2,3,4),每个区间为‘0’和为‘1’的概率会不一样(即软信息)。重叠区域划分越细致,得到的软信息就越多,软解码成功的概率就越大。软信息被存储在软信息缓存406中,ldpc译码器模块404中的软解码译码器根据软信息结合ldpc码的纠错处理确定软信息对应的数据。根据硬信息,ldpc译码器模块基本上能够确定要读取的大部分数据,只有阈值电压分布的重叠区域所代表的存储单元内的数据无法确定,然后基于软信息能够该部分数据。

从图上可以看出,硬信息缓存405包括8个存储单元,软信息缓存406包括5个缓存单元。但是本发明并不必须如此,缓存单元数量通常根据芯片面积和译码效率综合分析确定。硬信息缓存405和硬信息缓存405通常都采用sram。sram(staticrandom-accessmemory)是随机存取存储器的一种,只要保持通电,里面储存的数据就可以恒常保持。

图5是本发明一实施例的读操作控制装置500的结构示意图。如图上所示,读操作控制装置500包括:硬信息产生模块501、控制模块503、ldpc译码器模块504、硬信息缓存505和软信息缓存506。硬信息缓存505用于存储硬信息,软信息缓存506用于存储软信息,硬信息产生模块501、ldpc译码器模块504、控制模块503和图4中的硬信息产生模块401、ldpc译码器模块404、控制模块403相同。

如图上所示,读操作控制装置500还包括多个软信息产生单元5021,图上示出了两个软信息产生单元5021。每个软信息产生单元5021可在多个检测电压下进行多个读操作,以得到软信息,并将软信息存储到软信息缓存506中,两个软信息产生单元5021并行执行读操作以便于同时获得两个不同数据的软信息。通常两个软信息产生单元5021针对存储器上的不同存储区域进行读操作,以避免干扰。

一般情况下,大部分的数据通过硬解码就可以将错误的比特数据纠正。软解码只需要纠正少数错误数据。在软解码时,大部分需要纠正的错误数据只需要读3~5次读操作就可以成功纠正。只有少部分数据需要进行大数量的读操作。因此,大部分情况下,软信息缓存足够存储两个软信息产生单元产生的软信息,而针对读取大量数据的读操作,在一个实施例中,如图上所示,读操作控制装置500还包括:缓存控制模507,用于管理软信息缓存和硬信息缓存,并为软信息产生单元申请硬信息缓存中的空闲存储单元以便于软信息产生单元将一部分软信息存储到由缓存控制模507为其申请的空闲存储单元中。

在一个实施例中,缓存控制模块507优先将软信息缓存中的存储单元分配给软信息产生单元5021,只有在软信息缓存中的空闲存储单元不足时,才从硬信息缓存申请存储单元。

为了避免影响到硬解码,一方面,缓存控制模块507可在缓存控制逻辑中设置一个阈值,控制能从硬信息缓存申请的最大缓存单元数量,这样可以使硬解码的带宽不会受到太大的影响;另一方面,实际中,软信息产生单元通常针对每组数据通常只需要进行有限次读操作,因此不会过多占用硬信息缓存内的存储单元,而且一般能够基于软信息缓存解决,因此从整体来看,对硬解码只会产生很小微弱的影响,几乎可以忽略。

图6示出了基于本发明实施例对两组数据进行软解码的时序示意图。参考图6,由于读操作控制装置包括两个独立的软信息产生单元,因此可以支持两组数据同时进行软信息读取。两个软信息产生单元产生的软信息优先会放在软信息缓存中,当两组数据所需要的软信息超过软信息缓存所能缓存的大小时,软信息会暂时放入到硬信息缓存中。缓存控制模块507对硬信息缓存和软信息缓存中的存储单元进行分配和调度。

如图上所示,对于第一组数据,第一软信息产生单元完成3次读操作所花费的时间为3tr,对于第二组数据,第二软信息产生单元完成15次读操作所花费的时间为15tr,由于第一组数据的软信息在先产生,因此由ldpc译码器针对第一组数据的软信息进行软解码。当完成第一组数据的软解码之后,接着第一软信息产生单元还可以继续针对第三组数据进行读操作。

综上,和现有技术相比,上述实施例使用多个软信息产生单元并行产生软信息,又考虑到现有的软信息缓存可能不足以同时存储这样并行产生的软信息,因此又允许软信息产生单元可借用硬信息缓存中的存储单元存储软信息,由此能够提高软解码效率。这样的设计只需要额外增加软信息产生单元以及缓存控制模块等少量逻辑,就可以实现多个数据并行进行软解码,充分利用了软信息缓存和硬信息缓存中所有的存储单元,减少了因多个数据排队而带来的大延时,提高了软解码的效率。而且,由于硬解码比软解码的速度更快,效率更高,因此通过借用硬信息缓存的存储单元,即使影响到硬解码,但是从读操作的整体上来看,读操作的效率和速率都会提高。

在一个实施例中,两个软信息产生单元5021分别获得多个第一软信息和多个第二软信息,ldpc译码器模块504在多个第一软信息和多个第二软信息之间交替执行软解码。每个第一软信息或第二软信息是一个存储单元(例如存储页或块)的软信息。

在一个实施例中,上述硬信息产生模块501需要向各个存储单元施加第一检测电压以进行读操作,而软信息产生单元5021向各个存储单元施加多个第二检测电压以进行多次读操作,第一检测电压和第二检测电压的取值可以参见图3所示。第一检测电压可以为图3中的vr0,而多个第二检测电压可为以vr0为电压初始值,向左和向右移动得到的多个电压值,这样才能够将两个阈值电压的交叠区域细致分割,得到例如图上的区域1-4的软信息。

图7是本发明一实施例的存储器的读操作控制方法,包括以下步骤。

在步骤s701中,在第一检测电压下进行读操作,以得到硬信息,并将硬信息存储到硬信息缓存中。

在步骤s702中,分别在多个第二检测电压并行执行多个读操作,并将基于多个读操作产生的软信息存储到软信息缓存中。

在步骤s703中,基于软信息和硬信息,使用ldpc纠错技术确定读操作的最终数据。

在一个实施例中,上述方法还包括:从硬信息缓存中申请空闲存储单元,以便于将一部分软信息存储到硬信息缓存中的空闲存储单元中。

在一个实施例中,当从硬信息缓存中申请空闲存储单元,控制用于存储软信息的硬信息缓存中的存储单元数量不超过设定阈值。

在一个实施例中,为软信息申请存储单元时,优先从软信息缓存中申请,只有在确定软信息缓存中没有空闲存储单元后,才去申请硬信息缓存中的空闲存储单元。

在一个实施例中,用于产生硬信息的第一检测电压为存储器的默认检测电压,用于产生软信息的多个第二检测电压可通过第一检测电压和特定步骤得到,即以第一检测电压为电压初始值,向两侧偏移特定步长,以获得多个第二检测电压。

上述存储器的读操作控制方法和在先的读操作控制装置的功能类似,因此以相对简略的方式撰写。

在此所用的术语“模块”可以指代以下各项、作为以下各项的一部分或者包括以下各项:专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路和/或提供所描述的功能性的其他合适的组件。

本领域技术人员可以理解,根据本发明的数据处理系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用java、c/c /c#、sql等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。

根据本发明的数据处理系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过internet连接的多个pc机、pc服务器、刀片机、超级计算机等。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜