softdecodeLDPC的硬件加速实现方法、装置和计算机设备与流程
soft decode ldpc的硬件加速实现方法、装置和计算机设备
技术领域
1.本发明涉及存储系统技术领域,特别是涉及一种soft decode ldpc的硬件加速实现方法、装置、计算机设备和存储介质。
背景技术:
2.随着nand flash存储密度增加,可靠度相对下降,在对nand flash进行读操作的过程中,可能发生bch算法无法纠正的数据错误,此时需要ldpc算法(low density parity check code)进行纠正。
3.目前,在ssd中是使用ldpc算法分为hard decode ldpc和soft decode ldpc,其中soft decode ldpc的流程是通过fw调整不同的偏移电压值,每次根据读取的数据结果正确与否判断是否需要继续更改偏移电压值读取数据,为了读取正确的数据结果,软件可能需要判断多次,整个流程过于重复繁琐,进而不利于提高ssd性能。
技术实现要素:
4.基于此,有必要针对上述技术问题,提供一种soft decode ldpc的硬件加速实现方法、装置、计算机设备及存储介质。
5.一种soft decode ldpc的硬件加速实现方法,其特征在于,所述方法包括:
6.在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;
7.通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;
8.获取下发的读命令并通过dp模块纠错是否能正确读取数据;
9.如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;
10.如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。
11.在其中一个实施例中,在所述如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据的步骤之后还包括:
12.如果可以读到则返回正确数据,如果不能则跳转到通过raid流程是否能正确读取数据。
13.在其中一个实施例中,在所述如果不能则跳转到通过raid流程是否能正确读取数据的步骤之后还包括:
14.如果可以读到则返回正确数据,如果不能则数据纠错失败无法读取到正确的数据。
15.在其中一个实施例中,所述方法还包括:
16.通过所述硬件以链表的形式执行fw预先准备好的偏移电压值;
17.在ldpc成功后跳出执行链表或者待次数已经达到设定的最大值仍然没有成功时
就结束soft decode ldpc操作。
18.一种soft decode ldpc的硬件加速实现装置,所述装置包括:
19.传递模块,所述传递模块用于在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;
20.硬件加速模块,所述硬件加速模块用于维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;
21.第一判断模块,所述第一判断模块用于获取下发的读命令并通过dp模块纠错是否能正确读取数据;
22.第二判断模块,所述第二判断模块用于如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;
23.第三判断模块,所述第三判断模块用于如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。
24.在其中一个实施例中,所述装置还包括第四判断模块,所述第四判断模块用于:
25.如果可以读到则返回正确数据,如果不能则跳转到通过raid流程是否能正确读取数据。
26.在其中一个实施例中,所述装置还包括报错模块,所述报错模块用于:
27.如果可以读到则返回正确数据,如果不能则数据纠错失败无法读取到正确的数据。
28.在其中一个实施例中,所述硬件加速模块还用于:
29.通过所述硬件以链表的形式执行fw预先准备好的偏移电压值;
30.在ldpc成功后跳出执行链表或者待次数已经达到设定的最大值仍然没有成功时就结束soft decode ldpc操作。
31.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
32.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
33.上述soft decode ldpc的硬件加速实现方法、装置、计算机设备及存储介质通过在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;获取下发的读命令并通过dp模块纠错是否能正确读取数据;如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。本发明将soft decode ldpc的流程改为硬件自动实现,减少了fw重复准备和下发命令的操作,进而有效地提升了纠错效率。
附图说明
34.图1为现有技术中soft decode ldpc的实现方法示意图;
35.图2为一个实施例中soft decode ldpc的硬件加速实现方法的流程示意图;
36.图3为另一个实施例中soft decode ldpc的硬件加速实现方法的流程示意图;
37.图4为再一个实施例中soft decode ldpc的硬件加速实现方法的流程示意图;
38.图5为一个实施例中soft decode ldpc的硬件加速实现装置的结构框图;
39.图6为另一个实施例中soft decode ldpc的硬件加速实现装置的结构框图;
40.图7为再一个实施例中soft decode ldpc的硬件加速实现装置的结构框图;
41.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
43.目前,nand falsh在整个生命周期后期,颗粒的稳定性下降,此时就需要bch算法、ldpc硬件纠错、soft decode ldpc、raid纠错等用于数据恢复。soft decode ldpc需要ssd fw同步实现,可参考图1所示,soft decode ldpc的步骤如下:
44.步骤1,通过set feature改变颗粒内部偏移电压,从而改变颗粒返回的读数据。
45.步骤2,查看通过新修改的偏移电压是否可以读到正确数据,如果可以读到,退出soft decode ldpc流程,如果纠错失败则跳到步骤3。
46.步骤3,查看修改偏移电压的次数是否达到设定的最大值,如果没达到,则跳到步骤1,重复上述步骤,如果达到了,则退出soft decode ldpc流程,没有读到正确的数据。
47.由此可见,soft decode ldpc流程中由于存在需要下发多次颗粒内部偏移电压才能获取到正确读数据的可能。
48.基于此,本发明提供了一种soft decode ldpc的硬件加速实现方法,旨在可以简化fw的操作流程以提升效率。
49.在一个实施例中,如图2所示,提供了一种soft decode ldpc的硬件加速实现方法,该方法包括:
50.步骤202,在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;
51.步骤204,通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;
52.步骤206,获取下发的读命令并通过dp模块纠错是否能正确读取数据;
53.步骤208,如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;
54.步骤210,如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。
55.在本实施例中,提出一种soft decode ldpc的硬件加速实现方法,该方法将soft decode ldpc的流程改为硬件实现,这样可以简化fw的操作流程,提升效率。
56.首先,在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件。通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值。
57.在一个实施例中,该方法还包括:通过硬件以链表的形式执行fw预先准备好的偏移电压值;在ldpc成功后跳出执行链表或者待次数已经达到设定的最大值仍然没有成功时
就结束soft decode ldpc操作。
58.具体地,将soft decode ldpc的流程改为硬件实现,硬件以链表的形式去执行fw预先准备好的偏移电压值,在ldpc成功后跳出执行链表,或者次数已经达到设定的最大值仍然没有成功时就结束soft decode ldpc操作,这样可以简化fw的操作流程,提升效率。
59.接着,获取下发的读命令并通过dp模块纠错是否能正确读取数据;如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。
60.在本实施例中,通过在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;获取下发的读命令并通过dp模块纠错是否能正确读取数据;如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。本发明将soft decode ldpc的流程改为硬件自动实现,减少了fw重复准备和下发命令的操作,进而有效地提升了纠错效率。
61.在一个实施例中,如图3所示,提供了一种soft decode ldpc的硬件加速实现方法,该方法在如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据的步骤之后还包括:
62.步骤302,如果可以读到则返回正确数据,如果不能则跳转到通过raid流程是否能正确读取数据;
63.步骤304,如果可以读到则返回正确数据,如果不能则数据纠错失败无法读取到正确的数据。
64.在本实施例中,提供了一种soft decode ldpc的硬件加速实现方法,可参考图4所示,其具体流程如下:
65.步骤1,在开机初始化的过程中,将偏移电压的相关数据信息地址传递给硬件,硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值。
66.步骤2,收到读命令,通过dp模块纠错是否能正确读取数据,如果可以读到,则返回正确数据,不能则跳到步骤3。
67.步骤3,通过read retry流程是否能正确读取数据,如果可以读到,则返回正确数据,如果不能,则跳到步骤4。
68.步骤4,硬件自动执行soft decode ldpc流程,查看是否能正确读取数据,如果可以读到,则返回正确数据,如果不能,则跳到步骤5。
69.步骤5,通过raid流程是否能正确读取数据,如果可以读到,则返回正确数据,如果不能,则数据纠错失败,无法读取到正确的数据。
70.在本实施例中,减少了fw重复准备和下发命令的操作,将soft decode ldpc的流程改为硬件实现,进一步简化了fw的操作流程,提升了效率。
71.应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤
的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
72.在一个实施例中,如图5所示,提供了一种soft decode ldpc的硬件加速实现装置500,该装置包括:
73.传递模块501,所述传递模块用于在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;
74.硬件加速模块502,所述硬件加速模块用于维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;
75.第一判断模块503,所述第一判断模块用于获取下发的读命令并通过dp模块纠错是否能正确读取数据;
76.第二判断模块504,所述第二判断模块用于如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;
77.第三判断模块505,所述第三判断模块用于如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。
78.在一个实施例中,如图6所示,提供了一种soft decode ldpc的硬件加速实现装置500,该装置还包括第四判断模块506,所述第四判断模块用于:
79.如果可以读到则返回正确数据,如果不能则跳转到通过raid流程是否能正确读取数据。
80.在一个实施例中,如图7所示,提供了一种soft decode ldpc的硬件加速实现装置500,该装置还包括报错模块507,所述报错模块用于:
81.如果可以读到则返回正确数据,如果不能则数据纠错失败无法读取到正确的数据。
82.在一个实施例中,硬件加速模块502还用于:
83.通过所述硬件以链表的形式执行fw预先准备好的偏移电压值;
84.在ldpc成功后跳出执行链表或者待次数已经达到设定的最大值仍然没有成功时就结束soft decode ldpc操作。
85.关于soft decode ldpc的硬件加速实现装置的具体限定可以参见上文中对于soft decode ldpc的硬件加速实现方法的限定,在此不再赘述。
86.在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种soft decode ldpc的硬件加速实现方法。
87.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结
构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
88.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
89.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
90.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
91.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
92.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种soft decode ldpc的硬件加速实现方法,其特征在于,所述方法包括:在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;获取下发的读命令并通过dp模块纠错是否能正确读取数据;如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。2.根据权利要求1所述的soft decode ldpc的硬件加速实现方法,其特征在于,在所述如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据的步骤之后还包括:如果可以读到则返回正确数据,如果不能则跳转到通过raid流程是否能正确读取数据。3.根据权利要求2所述的soft decode ldpc的硬件加速实现方法,其特征在于,在所述如果不能则跳转到通过raid流程是否能正确读取数据的步骤之后还包括:如果可以读到则返回正确数据,如果不能则数据纠错失败无法读取到正确的数据。4.根据权利要求1-3任一项所述的soft decode ldpc的硬件加速实现方法,其特征在于,所述方法还包括:通过所述硬件以链表的形式执行fw预先准备好的偏移电压值;在ldpc成功后跳出执行链表或者待次数已经达到设定的最大值仍然没有成功时就结束soft decode ldpc操作。5.一种soft decode ldpc的硬件加速实现装置,其特征在于,所述装置包括:传递模块,所述传递模块用于在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;硬件加速模块,所述硬件加速模块用于维护偏移电压信息、偏移电压最大修改次数、退出soft decode ldpc偏移电压的恢复值;第一判断模块,所述第一判断模块用于获取下发的读命令并通过dp模块纠错是否能正确读取数据;第二判断模块,所述第二判断模块用于如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;第三判断模块,所述第三判断模块用于如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode ldpc流程查看是否能正确读取数据。6.根据权利要求5所述的soft decode ldpc的硬件加速实现装置,其特征在于,所述装置还包括第四判断模块,所述第四判断模块用于:如果可以读到则返回正确数据,如果不能则跳转到通过raid流程是否能正确读取数据。7.根据权利要求6所述的soft decode ldpc的硬件加速实现装置,其特征在于,所述装置还包括报错模块,所述报错模块用于:
如果可以读到则返回正确数据,如果不能则数据纠错失败无法读取到正确的数据。8.根据权利要求5-7任一项所述的soft decode ldpc的硬件加速实现装置,其特征在于,所述硬件加速模块还用于:通过所述硬件以链表的形式执行fw预先准备好的偏移电压值;在ldpc成功后跳出执行链表或者待次数已经达到设定的最大值仍然没有成功时就结束soft decode ldpc操作。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
技术总结
本申请涉及一种soft decode LDPC的硬件加速实现方法、装置、计算机设备及存储介质,其中该方法包括:在开机初始化过程中将偏移电压的相关数据信息地址传递给硬件;通过硬件加速模块维护偏移电压信息、偏移电压最大修改次数、退出soft decode LDPC偏移电压的恢复值;获取下发的读命令并通过DP模块纠错是否能正确读取数据;如果可以读到则返回正确数据,如果不能则通过read retry流程是否能正确读取数据;如果可以读到则返回正确数据,如果不能则硬件自动执行soft decode LDPC流程查看是否能正确读取数据。本发明将soft decode LDPC的流程改为硬件自动实现,减少了FW重复准备和下发命令的操作,进而有效地提升了纠错效率。进而有效地提升了纠错效率。进而有效地提升了纠错效率。