固态硬盘的TLC写性能提升方法、装置和计算机设备与流程
未命名
10-25
阅读:77
评论:0
固态硬盘的tlc写性能提升方法、装置和计算机设备
技术领域
1.本发明涉及固态硬盘技术领域,特别是涉及一种固态硬盘的tlc写性能提升方法、装置、计算机设备和存储介质。
背景技术:
2.ssd(固态硬盘)已经被广泛应用于各种场合,目前在pc市场,已经逐步替代传统的hdd(机械硬盘),从可靠性和性能方面为用户提供较好的体验。目前,主流ssd厂家使用的nand颗粒主要是tlc颗粒,对于tlc写命令,需要按照颗粒命令序列要求,同时对tlc的low、middle和upper三个subpage进行写操作,完成将三个subpage的数据同时写到颗粒中。因此,在ssd系统中,应尽可能提高下发描述符的效率。
3.在传统技术中,ssd后端接收到tlc写命令后,首先对tlc写操作的low page申请硬件描述符资源,对硬件描述符进行合理配置后下发到nfc对应通道的命令fifo中,让硬件执行相应的写操作命令序列,然后软件等待low page的写操作完成以后,再同样方式处理当前tlc写命令的middle和upper page。从以上软件处理tlc写操作的过程可以看出,需要分别对tlc的三个subpage进行申请和合理配置一个硬件描述符,实际测试软件为每个描述符进行配置需费时不少时间。同时,每个描述符下发到nfc命令fifo的过程,还需要检查fifo是否被填满,增加了对nfc硬件寄存器的访问次数,从而降低了描述符下发效率,进而影响了固态硬盘的tlc写性能。
技术实现要素:
4.基于此,有必要针对上述技术问题,提供一种固态硬盘的tlc写性能提升方法、装置、计算机设备和存储介质。
5.一种固态硬盘的tlc写性能提升方法,所述方法包括:
6.获取下发的tlc写命令并为所述tlc写命令申请一个硬件描述符;
7.配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;
8.配置完成后,将所述硬件描述符下发到fifo存储器中;
9.nfc硬件从fifo存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;
10.待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。
11.在其中一个实施例中,所述配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位的步骤还包括:
12.判断并配置是否需要执行multi-plane写操作。
13.在其中一个实施例中,所述方法还包括:
14.若需要执行multi-plane写操作,则执行subpage的multi-plane写操作后先更新
硬件描述符的page_bit_map信息和page信息,然后再执行下一个subpage的multi-plane写操作直至所有的page_bit_map信息都为0。
15.在其中一个实施例中,所述方法还包括:
16.当nfc硬件识别到不同的subpage后,下发符合相应的写命令操作协议的命令序列。
17.一种固态硬盘的tlc写性能提升装置,所述装置包括:
18.获取模块,所述获取模块用于获取下发的tlc写命令并为所述tlc写命令申请一个硬件描述符;
19.配置模块,所述配置模块用于配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;
20.第一下发模块,所述第一下发模块用于配置完成后,将所述硬件描述符下发到fifo存储器中;
21.第一执行模块,所述第一执行模块用于nfc硬件从fifo存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;
22.清除模块,所述清除模块用于待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。
23.在其中一个实施例中,所述装置还包括:
24.判断模块,所述判断模块用于判断并配置是否需要执行multi-plane写操作。
25.在其中一个实施例中,所述装置还包括:
26.第二执行模块,所述第二执行模块用于若需要执行multi-plane写操作,则执行subpage的multi-plane写操作后先更新硬件描述符的page_bit_map信息和page信息,然后再执行下一个subpage的multi-plane写操作直至所有的page_bit_map信息都为0。
27.在其中一个实施例中,所述装置还包括:
28.第二下发模块,所述第二下发模块用于当nfc硬件识别到不同的subpage后,下发符合相应的写命令操作协议的命令序列。
29.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
30.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
31.上述固态硬盘的tlc写性能提升方法、装置、计算机设备和存储介质,能够有效提高ssd tlc写性能,其中对于tlc的三个subpage的写操作由之前的配置三个硬件描述符改为只配置一个硬件描述符,从而节省了配置两个硬件描述符所需要的时间。在下发硬件描述符到nfc命令fifo过程,软件要通过访问硬件寄存器检查对应通道的命令fifo是否有剩余空间,由于只需下发一个描述符,从而减少了对nfc硬件寄存器的访问次数。同时,由于nfc硬件自动执行不同subpage的写操作命令序列无需软件干预,有效避免了原来模式中软件需要检查到上一个subpage的写操作完成之后才配置下发下一个subpage的硬件描述符而存在的时间浪费而带来的降低描述符下发效率,减少了软件层面的参与,简化了软件处理流程,从而有效提高ssd的tlc写性能。
附图说明
32.图1为一个实施例中固态硬盘的tlc写性能提升方法的流程示意图;
33.图2为另一个实施例中固态硬盘的tlc写性能提升方法的流程示意图;
34.图3为再一个实施例中固态硬盘的tlc写性能提升方法的流程示意图;
35.图4为一个实施例中固态硬盘的tlc写性能提升装置的结构框图;
36.图5为另一个实施例中固态硬盘的tlc写性能提升装置的结构框图;
37.图6为再一个实施例中固态硬盘的tlc写性能提升装置的结构框图;
38.图7为又一个实施例中固态硬盘的tlc写性能提升装置的结构框图;
39.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
40.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
41.当前进行下发tlc写操作命令描述符的处理方法包括:现有ssd后端接收到tlc写命令后,首先对tlc写操作的low page申请硬件描述符资源,对硬件描述符进行合理配置后下发到nfc对应通道的命令fifo中,让硬件执行相应的写操作命令序列,然后软件等待low page的写操作完成以后,再同样方式处理当前tlc写命令的middle和upper page。从以上软件处理tlc写操作的过程可以看出,需要分别对tlc的三个subpage进行申请和合理配置一个硬件描述符,实际测试软件为每个描述符进行配置需费时不少时间。同时,每个描述符下发到nfc命令fifo的过程,还需要检查fifo是否被填满,增加了对nfc硬件寄存器的访问次数,从而降低了描述符下发效率,影响tlc写性能。
42.基于此,本方案提供了一种固态硬盘的tlc写性能提升方法,旨在能够有效提高ssd tlc写性能。
43.在一个实施例中,如图1所示,提供了一种固态硬盘的tlc写性能提升方法,该方法包括:
44.步骤102,获取下发的tlc写命令并为所述tlc写命令申请一个硬件描述符;
45.步骤104,配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;
46.步骤106,配置完成后,将所述硬件描述符下发到fifo存储器中;
47.步骤108,nfc硬件从fifo存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;
48.步骤110,待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。
49.在本实施例中,提供了一种固态硬盘的tlc写性能提升方法,在本方案中,ssd后端在接收到tlc写命令后,软件为当前tlc写操作命令申请一个硬件描述符资源并配置描述符后下发到nfc内部命令fifo中,其中配置硬件描述符信息包含对当前tlc写操作的low、middle、upper三个subpage对应的page_bit_map信息置位。而nfc硬件根据描述中配置的page_bit_map信息自动逐个执行所对应的三个subpage写操作命令序列,当所对应的
subpage的写操作完成以后,清除page_bit_map对应位,直到page_bit_map信息变为零,完成当前tlc写操作。
50.具体地,在收到tlc写操作命令后,不再为一个tlc的三个subpage分别申请硬件描述符资源并配置描述符后下发到nfc内部命令fifo中,而是为当前写操作命令只申请一个硬件描述符资源并配置描述符后下发到nfc内部命令fifo中,由硬件完成tlc的三个subpage写操作命令。
51.配置硬件描述符信息,主要包括要进行tlc写操作的low、middle、upper三个subpage对应的page_bit_map信息置位,该位清零是在硬件完成对应subpage的写操作后由硬件完成。同时,在写操作异常处理中,page_bit_map信息反映写操作失败的subpage。
52.硬件完成tlc的三个subpage写操作命令的方案,是指硬件逐个完成所述page_bit_map信息所对应的subpage的写操作命令序列,待每个subpage的写操作完成以后,清除page_bit_map对应位,然后进行下一个page的写操作。同时硬件会自动更新描述符中page信息。
53.在一个实施例中,方法还包括:当nfc硬件识别到不同的subpage后,下发符合相应的写命令操作协议的命令序列。具体地,是指包含硬件识别到不同的subpage后而下发相应的符合写(包含multi-plane写)操作协议的命令序列。
54.在上述实施例中,能够有效提高ssd tlc写性能,其中对于tlc的三个subpage的写操作由之前的配置三个硬件描述符改为只配置一个硬件描述符,从而节省了配置两个硬件描述符所需要的时间。在下发硬件描述符到nfc命令fifo过程,软件要通过访问硬件寄存器检查对应通道的命令fifo是否有剩余空间,由于只需下发一个描述符,从而减少了对nfc硬件寄存器的访问次数。同时,由于nfc硬件自动执行不同subpage的写操作命令序列无需软件干预,有效避免了原来模式中软件需要检查到上一个subpage的写操作完成之后才配置下发下一个subpage的硬件描述符而存在的时间浪费而带来的降低描述符下发效率,减少了软件层面的参与,简化了软件处理流程,从而有效提高ssd的tlc写性能。
55.在一个实施例中,如图2所示,提供了一种固态硬盘的tlc写性能提升方法,该方法还包括:
56.步骤202,判断并配置是否需要执行multi-plane写操作;
57.步骤204,若需要执行multi-plane写操作,则执行subpage的multi-plane写操作后先更新硬件描述符的page_bit_map信息和page信息,然后再执行下一个subpage的multi-plane写操作直至所有的page_bit_map信息都为0。
58.具体地,参考图3所示的固态硬盘的tlc写性能提升方法,该方法中软件和硬件处理流程如下:
59.步骤3.1、ssd后端收到tlc写命令。
60.步骤3.2、ssd后端软件为当前tlc写命令申请一个硬件描述符资源。
61.步骤3.3、ssd后端软件配置描述符,将描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位,同时并判断和配置是否是multi-plane写操作。
62.步骤3.4、ssd后端软件将该描述符下发到nfc命令fifo中。
63.步骤3.5、nfc硬件从命令fifo中取出硬件描述符。
64.步骤3.6、判断是否是multi-plane写操作,如果是multi-plane写操作,则回到步
骤3.5,如果不是则进行步骤3.7。
65.步骤3.7、nfc硬件根据描述符中的page信息执行tlc中的一个page的写操作命令。
66.步骤3.8、nfc硬件等待tlc当前页的写操作命令完成。
67.步骤3.9、nfc硬件将描述符中page_bit_map信息中page对应的位清零。
68.步骤3.10、nfc硬件判断描述符中page_bit_map是否为零,如果为零,执行步骤3.12,如果不为零,执行步骤3.11。
69.步骤3.11、nfc硬件根据page_bit_map中bit不为0对应的page,更新描述符中的page信息后,执行步骤3.7。
70.步骤3.12、nfc完成写操作。
71.在本实施例中,在ssd tlc写命令处理过程中减少了软件层面的参与,简化了软件处理流程,从而有效提高ssd的tlc写性能。
72.应该理解的是,虽然图1-图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
73.在一个实施例中,如图4所示,提供了一种固态硬盘的tlc写性能提升装置400,该装置包括:
74.获取模块401,所述获取模块用于获取下发的tlc写命令并为所述tlc写命令申请一个硬件描述符;
75.配置模块402,所述配置模块用于配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;
76.第一下发模块403,所述第一下发模块用于配置完成后,将所述硬件描述符下发到fifo存储器中;
77.第一执行模块404,所述第一执行模块用于nfc硬件从fifo存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;
78.清除模块405,所述清除模块用于待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。
79.在一个实施例中,如图5所示,提供了一种固态硬盘的tlc写性能提升装置400,该装置还包括:
80.判断模块406,所述判断模块用于判断并配置是否需要执行multi-plane写操作。
81.在一个实施例中,如图6所示,提供了一种固态硬盘的tlc写性能提升装置400,该装置还包括:
82.第二执行模块407,所述第二执行模块用于若需要执行multi-plane写操作,则执行subpage的multi-plane写操作后先更新硬件描述符的page_bit_map信息和page信息,然后再执行下一个subpage的multi-plane写操作直至所有的page_bit_map信息都为0。
83.在一个实施例中,如图7所示,提供了一种固态硬盘的tlc写性能提升装置400,该
装置还包括:
84.第二下发模块408,所述第二下发模块用于当nfc硬件识别到不同的subpage后,下发符合相应的写命令操作协议的命令序列。
85.关于固态硬盘的tlc写性能提升装置的具体限定可以参见上文中对于固态硬盘的tlc写性能提升方法的限定,在此不再赘述。
86.在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种固态硬盘的tlc写性能提升方法。
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.一种固态硬盘的tlc写性能提升方法,所述方法包括:获取下发的tlc写命令并为所述tlc写命令申请一个硬件描述符;配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;配置完成后,将所述硬件描述符下发到fifo存储器中;nfc硬件从fifo存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。2.根据权利要求1所述的固态硬盘的tlc写性能提升方法,其特征在于,所述配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位的步骤还包括:判断并配置是否需要执行multi-plane写操作。3.根据权利要求2所述的固态硬盘的tlc写性能提升方法,其特征在于,所述方法还包括:若需要执行multi-plane写操作,则执行subpage的multi-plane写操作后先更新硬件描述符的page_bit_map信息和page信息,然后再执行下一个subpage的multi-plane写操作直至所有的page_bit_map信息都为0。4.根据权利要求1-3任一项所述的固态硬盘的tlc写性能提升方法,其特征在于,所述方法还包括:当nfc硬件识别到不同的subpage后,下发符合相应的写命令操作协议的命令序列。5.一种固态硬盘的tlc写性能提升装置,其特征在于,所述装置包括:获取模块,所述获取模块用于获取下发的tlc写命令并为所述tlc写命令申请一个硬件描述符;配置模块,所述配置模块用于配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;第一下发模块,所述第一下发模块用于配置完成后,将所述硬件描述符下发到fifo存储器中;第一执行模块,所述第一执行模块用于nfc硬件从fifo存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;清除模块,所述清除模块用于待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。6.根据权利要求5所述的固态硬盘的tlc写性能提升装置,其特征在于,所述装置还包括:判断模块,所述判断模块用于判断并配置是否需要执行multi-plane写操作。7.根据权利要求6所述的固态硬盘的tlc写性能提升装置,其特征在于,所述装置还包括:第二执行模块,所述第二执行模块用于若需要执行multi-plane写操作,则执行subpage的multi-plane写操作后先更新硬件描述符的page_bit_map信息和page信息,然后
再执行下一个subpage的multi-plane写操作直至所有的page_bit_map信息都为0。8.根据权利要求5-7任一项所述的固态硬盘的tlc写性能提升装置,其特征在于,所述装置还包括:第二下发模块,所述第二下发模块用于当nfc硬件识别到不同的subpage后,下发符合相应的写命令操作协议的命令序列。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
技术总结
本申请涉及一种固态硬盘的TLC写性能提升方法、装置、计算机设备和存储介质,其中该方法包括:获取下发的TLC写命令并为所述TLC写命令申请一个硬件描述符;配置硬件描述符,将所述硬件描述符中表示要进行写操作的low、middle、upper页的page_bit_map信息进行置位;配置完成后,将所述硬件描述符下发到FIFO存储器中;NFC硬件从FIFO存储器中取出硬件描述符,并逐个完成page_bit_map信息所对应的subpage的写操作命令序列;待每个subpage的写操作命令完成后清除page_bit_map对应位,然后再执行下一个写操作命令并更新所述硬件描述符中page信息。本发明有效地提高了SSD的TLC写性能。本发明有效地提高了SSD的TLC写性能。本发明有效地提高了SSD的TLC写性能。
技术研发人员:徐攀 臧鑫 何梓杨
受保护的技术使用者:苏州忆联信息系统有限公司
技术研发日:2023.07.18
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/