存储装置和存储设备转让专利
申请号 : CN202111313315.8
文献号 : CN113793635B
文献日 : 2022-04-19
发明人 : 李舒
申请人 : 阿里云计算有限公司 , 阿里巴巴(中国)有限公司
摘要 :
权利要求 :
1.一种存储装置,其特征在于,包括:非易失性存储器,及适配于所述非易失性存储器的外围电路;
解码器,所述解码器与所述外围电路电连接,用于通过所述外围电路从所述非易失性存储器中读取目标数据,并对所述目标数据进行纠错解码;
在所述解码器为硬解码器的情况下,所述存储装置与其所属的存储设备中的控制器之间设有交互接口,所述控制器中包含软解码器;所述硬解码器还用于:在纠错解码失败的情况下,生成所述软解码器所需的软信息,并将所述软信息通过所述交互接口发送至所述软解码器,以由所述软解码器通过所述软信息对原始或经所述硬解码器处理后的所述目标数据进行纠错解码。
2.如权利要求1所述的装置,其特征在于,所述外围电路包括:页缓冲器,所述页缓冲器与所述非易失性存储器电连接,用于对从所述非易失性存储器中读取的数据进行缓存;
其中,所述解码器电连接至所述页缓冲器,并从所述页缓冲器中读取缓存的所述目标数据。
3.如权利要求1所述的装置,其特征在于,所述外围电路包括:页缓冲器,所述页缓冲器与所述非易失性存储器电连接,用于对从非易失性存储器中读取的待解码数据进行缓存;
扩展缓冲器,所述扩展缓冲器与所述页缓冲器电连接,用于对从所述页缓冲器中读取的数据进行缓存;
其中,所述解码器电连接至所述扩展缓冲器,并从所述扩展缓冲器中读取缓存的所述目标数据。
4.如权利要求1所述的装置,其特征在于,所述解码器为硬解码器和/或软解码器。
5.如权利要求4所述的装置,其特征在于,所述硬解码器内置有状态机,所述状态机根据所述硬解码器的已执行操作管理所述硬解码器的状态信息,所述状态信息用于指示所述硬解码器的后续执行操作。
6.如权利要求4所述的装置,其特征在于,所述硬解码器包括:解扰模块,所述解扰模块用于对所述目标数据进行解扰;
硬解码模块,所述硬解码模块用于对解扰后的所述目标数据进行纠错解码。
7.如权利要求1所述的装置,其特征在于,所述外围电路垂直集成于所述非易失性存储器顶面的第一区域,所述解码器垂直集成于所述非易失性存储器顶面的第二区域。
8.如权利要求1所述的装置,其特征在于,所述非易失性存储器为3D闪存。
9.一种存储设备,其特征在于,包括:控制器,以及如权利要求1‑8中任一项所述的存储装置。
说明书 :
存储装置和存储设备
技术领域
背景技术
存储装置,该控制器与存储装置之间通过预设的交互接口进行数据传输。控制器通常设有
ECC(Error Correction Coding,误差校正编码)模块,用于对从存储装置中读取的数据进
行误差检测及校正。
模块的面积和功耗越来越大,不仅提高了控制器的设计成本,还可能对交互接口造成阻塞。
发明内容
的设计成本和功率消耗。同时,由于解码器可以直接与存储装置进行数据交互,而无需占用
控制器与存储装置之间的交互接口,不仅可以提高解码器的数据读取效率,还有助于提升
控制器与存储装置之间的数据吞吐量。
附图说明
具体实施方式
中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相
反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相
一致的装置和方法的例子。
多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进
行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行
描述。
为例,由于读写过程的干扰、电荷泄露等误码机制,会降低NAND闪存的可靠性。另外,NAND闪
存可能存在缺陷(例如,有缺陷的存储单元等),并且在NAND闪存的使用期间,由于闪存颗粒
的损耗,还可能出现更多的缺陷,这些缺陷的存在可能导致存储的数据出现错误。同样,在
机械硬盘中,机械结构的磨损、灰尘进入机械硬盘中或者负责从存储介质中读取数据的磁
头的故障等因素也会导致数据错误。因此需要通过误差检测以及校正技术,来保证数据复
制的可靠性。通常的误差检测及校正需要进行适当的数据编码与数据解码。使用特定的ECC
策略通过ECC编码模块将输入数据进行编码,并通过与ECC编码模块相对应的ECC解码模块
将已经编码的数据进行纠错解码,最后得到经过校正的数据。
解码器可以统称为解码器(ECC decoder)。以SSD为例,相关技术中的ECC解码模块集成于
SSD的控制器中,导致了控制器的设计复杂、成本增加。同时,无论是硬解码器还是软解码
器,在需要从作为存储装置的NAND闪存等非易失性存储器中读取待解码数据时,都需要经
过SSD控制器与存储装置之间的交互接口,这对于交互接口来说,可能会造成数据的拥塞,
降低了数据的传输速率。
(Peripheral circuit)120、以及通过外围电路120从非易失性存储器中读取目标数据进行
纠错解码的解码器130。
不再需要通过SSD的控制器与存储装置11之间的交互接口来读取存储于非易失性存储器
110中的待解码数据,而是直接通过外围电路120读取。通过这种数据传输方式,交互接口只
需将经过解码器130解码的数据传输至控制器进行后续处理,缓解了交互接口的数据拥塞。
并且,如图2所示,通过将解码器130从控制器21中转移至存储装置11中实现,释放了控制器
21中解码器130占据的较大面积,因而有助于降低控制器21的设计成本以及功率消耗。当本
实施例基于SSD实现时,所述非易失性存储器110可以为闪存阵列。
现,而保留控制器21中的软解码器1302。由于解码器130中的硬解码器1301和软解码器1302
虽然协同工作,但布局位置可以相对独立,因此在该实施例中,解码器130由位于存储装置
中的硬解码器1301和位于控制器21中的软解码器1302构成,两者之间通过控制器21和存储
装置11之间的交互接口进行数据传输。通过将解码器130中的硬解码器从控制器21中转移
至存储装置11中实现,控制器21中仅保留了软解码器1302,位于控制器21内部的解码器130
的布局可以由如图3左侧调整为如图3右侧的形式,其中虚线部分的硬解码器1301从控制器
21中转移至存储装置11中。在控制器中释放的面积可以用于实现SSD控制器的其他功能,同
样也可以减少解码器130在控制器21中的占用面积,降低控制器21的设计成本以及功率消
耗。
制器中空间的占用。
原理是相同的,均可以由相同机制的解码器完成,因此,与图1类似的存储装置也可以应用
在机械硬盘或者其他种类的存储设备中。
能够有效提升单位面积所能容纳的数据量。由于3D闪存的高密度,在集成了与3D闪存适配
的外围电路后,3D闪存仍然能够提供足够的表面空间,以容纳解码器集成于其表面上。如图
4所示的集成方式中,可以将解码器130集垂直集成于3D闪存阵列410的顶部的一个区域中,
而将外围电路120集成于3D闪存阵列410的另一个区域中。当3D闪存固定在电路板上时,可
将其与电路板焊接的表面称为底面,而与底面平行的另一表面提供了较大的表面积可以用
于集成外围电路和解码器,可将此表面称为顶面。这种集成方式巧妙利用了3D闪存阵列顶
部的空间,由于此时解码器130位于3D闪存阵列410的顶面,因此可以将其称为片上解码器
(On‑chip ECC decoder)。
器中占据的空间,疏解交互接口的数据传输压力,降低控制器的设计成本。甚至可以将一组
或几组软解码器和硬解码器在存储装置中实现,对来自存储装置的待解码数据即目标数据
进行前序的解码,然后将前序解码结果发送至控制器中的后续解码模块中,该模块也可以
由数个硬解码器配合软解码器组成,通过后续解码模块在前序解码结果的基础上进行后续
解码步骤,完成对目标数据的解码。
围电路可以包括:用于输入输出数据信号的Toggle/ONFI接口(Toggle/ONFI interface)
501、用于选择存储单元的地址解码器(Address decoder)502以及用于缓存读取或者写入
的数据的页缓冲器(Page buffer)503。所述闪存阵列506通过页缓冲器503与解码器130电
连接。解码器130从闪存阵列506中读取数据时,首先由页缓冲器503对来自闪存阵列506中
的目标数据进行缓存,然后由解码器130从页缓冲器503中读取缓存的目标数据以进行解
码。
130,与图5中的实现方式的区别在于,所述外围电路120还包括扩展缓冲器(Enlarged
buffer)604,扩展缓冲器604与页缓冲器503电连接,通过页缓冲器503缓存从闪存阵列506
中读取的目标数据,此时,待解码的目标数据缓存在扩展缓冲器604中,当有数据从闪存阵
列506中解码时,扩展缓冲器604相当于一个专门缓存待解码数据的特殊区域,此时,扩展缓
冲器604的存在可以提高解码效率。当没有目标数据从闪存阵列506中解码时,为了避免扩
展缓冲器604闲置,此时扩展缓冲器604可以作为页缓冲器503的附加缓冲区域,相当于将页
缓冲器503放大,以实现写入性能的加速。
图7所示,硬解码器可以包括:读取缓冲器(Read buffer)701、代码奇偶校验矩阵(Code
parity check matrix)702、校验子计算器(Syndrome calculation)703、校正选择器
(Correction selection)704。
前所述的交互接口进行数据交互。代码奇偶校验矩阵702是一种非易失性存储器,存储有用
于解码的代码信息。校验子计算器703基于代码奇偶校验矩阵702中存储的代码信息对从读
取缓冲器701中读取的待解码数据执行运算以生成与待解码数据相关联的校验子。校正选
择器704,根据校验子计算器703生成的校验子选择性地校正待解码数据的错误位,生成经
过校正的硬解码结果,并且生成与该硬解码结果相匹配的标识信息,该标识信息可以包括
硬解码的尝试次数、纠错解码是否成功等信息。
的数据还原为原始的未加扰的数据。ECC解码模块中的加扰器可以部署在控制器中,当控制
器将数据写入存储装置时由加扰器对数据进行加扰处理。在本申请说明书的一示例性实施
例中,当解码器从控制器中转为在存储装置中实现时,加扰器和解扰器均跟随解码器转移
至存储装置中实现。在本申请说明书的另一示例性实施例中,当将硬解码器由控制器转移
到存储装置中实现时,解扰器同样可以由控制器转移到存储装置中,而此时,加扰器则与软
解码器相同,被保留在控制器中。其中,解扰器可以在硬解码器中实现。硬解码器在对数据
进行硬解码的过程中,首先从存储装置中读取加扰后的数据,由硬解码器中的解扰器还原
为上述的待解码数据,然后由硬解码器对该待解码数据进行硬解码。
可以进一步由软解码器进行解码,以提升解码成功的概率。硬解码器与软解码器之间的解
码过程可以相互独立。而为了提升解码的效率和成功概率,在硬解码器确认自身解码失败
的情况下,可以通过硬解码器生成软解码器所需的软信息(soft information),并将所述
软信息发送至软解码器,以由所述软解码器通过所述软信息对经所述硬解码器处理后的目
标数据继续进行纠错解码。在本说明书的一示例性实施例中,当将硬解码器在存储装置中
实现,而保留控制器中的软解码器时,上述由硬解码器生成的软信息需要经由存储装置和
控制器之间的交互接口进行传输,从而发送至软解码器。在本说明书一示例性实施例中,若
硬解码器纠错解码失败,则校正选择器704生成的标识信息还可以包括软解码器所需的软
信息。
Check,低密度奇偶校验)码、BCH码、BTC(Block Turbo Code,分组涡轮码)、CTC
(Convolutional Turbo Code,卷积涡轮码)等。根据校正需求的不同,可以配置合适的ECC
编码策略,并设计适当的ECC编解码器。其中,LDPC码以优秀的性能成为目前SSD控制器最先
进的编码策略,其性能接近香农极限(信道的香农极限或称香农容量指的是在会随机发生
误码的信道上进行无差错传输的最大传输速率)。在如图3左侧所示的ECC解码模块布局的
硬件中,当采用LDPC编码策略时,相关技术中需要由软解码器通过交互接口不断地对存储
装置进行多次的读操作,才能采样得到所需细粒度的电压值,以生成软解码所需的软信息。
而在本说明书的实施例中,当软信息由硬解码器生成时,硬解码器可以通过交互接口将包
含硬解码结果的软信息一次性传输至软解码器,软解码器通过硬解码器生成的软信息在硬
解码结果的基础上进一步进行纠错解码,此时软解码器依靠硬解码器生成的软信息即可完
成解码,软解码器无需对存储装置进行采样,因此避免了软解码器对存储装置的多次读取,
缓解了交互接口的数据拥塞。
装置与控制器之间的交互接口,只需要把最终的解码结果通过该交互接口发送至控制器进
行下一步的操作。此种方案同样可以缓解交互接口的数据拥塞。
有可能发生错误的比特中不满足校验方程个数最多的比特发生错误的概率最大。在每次迭
代时均翻转发生错误概率最大的比特并用更新之后的码字重新进行解码。硬判决算法易于
通过硬件实现。
似然比‑置信度)算法。LLR‑BP算法是BP算法的一种简化算法,通过对数似然比来降低硬件
资源和计算时间。
码校验矩阵H中的行相对应,LDPC码校验矩阵H的非零元素与Tanner图中的连线相对应。在
校验矩阵H中,列重是指每列非零元素的个数,行重是指每行非零元素的个数,规则LDPC码
是所有列重和行重全部相等的码;如果不相等,则将其称之为非规则LDPC码。在图8中,校验
节点有5个,分别用C1~C5表示,变量节点有10个,分别用B1~B10表示。
矩阵H必需满足线性方程组 。接收到的向量Y可能包含错误,导致 。
息之后进行处理,然后返回一个新的可靠性信息给与之相邻的变量节点,这样就完成了第
一次迭代;此时可以进行判决,如果满足校验方程,则不需要再迭代,直接输出判决结果,否
则进行第二次迭代。
就完成了第二次迭代。完成后同样进行判决,如果满足校验方程则结束译码,否则如此反复
多次迭代,每次都进行判决,直到达到设定的最大尝试次数,译码失败。在每次迭代过程中,
无论是变量节点传送给校验节点的信息或者校验节点传送给变量节点的信息,都不应该包
括前次迭代中接收方发送给发送方的信息,这样是为了保证发送的信息与接收节点已得到
的信息相互对立。
出,如果不满足以上两种条件,则继续步骤二、三、四。
如图7所示的硬解码器的代码奇偶校验矩阵702中。原始数据向量C经传输后出现错误,包含
错误的待解码数据设为 。首先利用如图7所述的硬解码器对该待解码向
量进行硬解码。校正选择器704根据校验矩阵H与待解码向量Y1生成校验子。根据该校验子
中未满足Tanner图连接信息的检查节点以及变量节点与检查节点之间的关系生成置信度
信息,根据置信度对变量节点进行排序。选择置信度最低(即错误的可能性最高)的变量节
点进行翻转,并翻转读取缓冲器中与该变量节点对应的待解码数据中的相应位。这形成了
硬解码的一次尝试。修改后的待解码数据向量用于计算新的校验子,进一步分析该校验子
以选择要翻转的位,重复上述步骤直至生成的向量满足 硬解码器解码成功;或
者,迭代达到最大尝试次数,硬解码器解码失败。
数据的完全解码,需要软解码器对上述结果进一步解码,因此硬解码器中的校正选择器704
需要生成包含软解码器所需的软信息的标识信息。
正选择器704生成的置信度信息假设为 ,其中上标(0)表示软
解码器的迭代次数为0。硬解码器将该置信度信息发送给软解码器。根据上文中关于BP解码
算法步骤的描述,由于该初始置信度信息由硬解码器提供,软解码器可以无需读取位于存
储装置中的数据信息,所以在BP解码算法的第一步,初始化步骤中,将上述由硬解码器生成
的置信度信息 ,代替公式2中的计算结果,作为软解码步骤中的初始概率,并进行后续
的解码步骤。例如,假设原始数据 ,由硬解码器生成的置信度信息
,将该置信度信息带入到初始概率中,经步骤二、三、四,软解
码器经一次迭代后各变量节点的置信度 信息 在 的基 础上 ,更 新为
,对更新后的置信度信息进行解码判决,如果某一位的置
信度信息概率值 ,那么判决这一点的码值为1;否则,这一点的码值为0。假
设更新后的置信度信息为 ,对此
概率信息进行解码判决,得到如下的第一次迭代解码结果 。由
于 ,则表明此次迭代没有解码成功,由于并没有达到软解码的最大尝试次数,
因此,需要重复BP解码步骤的二至五步,直至解码结果满足 ,或者迭代次数超
过最大尝试次数,软解码失败。
成软解码器所需的软信息。本示例中软解码器解码算法为LLR‑BP算法,所以校正选择器704
需要生成的软信息为对数似然比信息,假设该对数似然比信息为 。
硬解码器将该对数似然比信息发送给软解码器。与采用BP解码算法的软解码器相似,将根
据公式6计算的初始化信息用由硬解码器生成的对数似然比信息 代替,并继续进行后
续的步骤。在 的基础上进行迭代。其迭代过程于采用BP解码算法的软解码的迭代过程
相类似。
法的步骤二、三、四,经x次迭代后,各变量节点的对数似然比信息更新为
,对上述的对数似然比信息进行解码判决,时发现该对数似然
比信息对应的解码结果 满足 ,则此时判断软解
码成功,软解码结果即为向量 。
进行根据判决解码步骤,若第i位的对数似然比 ,则该位判为0;否则判为1,得到如
下的第x次迭代解码结果 ,此时满足 ,所以软解码成
功,软解码结果即为 。
选择校验功能,还实现生成软解码器所需的软信息的功能。在本说明书一示例性实施例中,
当硬解码器从控制器中转移至存储装置中实现,而软解码器保留在控制器中时,所述软信
息可以包含在标识信息内并通过控制器上的交互接口发送至软解码器,由软解码器进行基
于硬解码结果进行进一步的软解码。
定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的
错误。例如,CRC系统可以利用除法及余数的原理来实现错误侦测。软解码器在解码完成后
可以将经过解码的码字发送至CRC系统进行校验,以检测经软解码器解码后的数据是否仍
旧存在错误。
置中读取数据并解码,则硬解码器读取页缓冲器中缓存的数据,并开始解码。再例如,当状
态机处于第二状态时,表明硬解码器解码成功,则硬解码器停止解码,并将纠错解码成功的
解码结果发送至后续的处理装置。当状态机处于第三状态时,表明硬解码器解码失败,则硬
解码器停止解码并生成软解码器所需的软信息,将包含硬解码结果的软信息发送至软解码
器,进行进一步的解码。
需要由软解码器1302通过软信息生成模块921来生成软信息,可以节省软信息生成模块921
为了获取软信息对存储装置的非易失性存储器多次读取采样的时间。在一些情况下,软解
码器1302甚至可以不包含软信息生成模块921,从而节省了软解码器1302的设计开销,减小
软解码器1302在控制器21中占用的空间。通过交互接口,硬解码器1301可将生成的包含硬
解码结果的软信息发送到软解码器1302,在软解码器1302中通过软解码器的迭代解码进一
步减少错误。硬解码器1301的存在可以在一定程度上减轻软解码器1302的负担,从而加快
整体解码速度。
多个解码器可以将原有的单个解码器的串行的解码任务转变为多个解码器并行处理,使得
每个解码器分担的解码任务更少,多个解码器同时解码可以节省解码消耗的时间,提高解
码效率。
个硬解码器,此时,由于并行工作,每个硬解码器分担的解码任务更少,因此在增加硬解码
器数量的基础上还可以调高每个硬解码器的最大尝试次数,从而进行更多轮的迭代,相当
于分配了比以前更多的时间来解码每个读取结果,从而提高纠错解码能力,在硬解码器解
码能力提升的基础上,待解码数据由硬解码器解码成功的概率增加,疏解了软解码器的解
码压力。
要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设
备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除
在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表
示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出
项目的任何或所有可能组合。
分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第
二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如
果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。