公开了Trim命令处理方法及固态硬盘,固态硬盘包括控制器,控制器包括第一执行单元、第二执行单元和数据缓冲区,控制器执行Trim命令处理方法:接收Trim命令存储在数据缓冲区中,Trim命令包括多条地址范围,每条地址范围包括第一类地址范围和/或第二类地址范围;第一执行单元遍历数据缓冲区提取出多条第一类地址范围进行处理及将数据缓冲区的地址发送至第二执行单元;第二执行单元遍历数据缓冲区提取出多条第二类地址范围进行处理;在多条地址范围均处理完成后返回Trim命令处理完成的信息。该处理方法将Trim命令分为两类地址范围分别执行,且由第二执行单元一次性提取和处理多条第二类地址范围,减少Trim命令的处理时间,避免高压力读写环境下处理超时。免高压力读写环境下处理超时。免高压力读写环境下处理超时。
【技术实现步骤摘要】
基于固态硬盘的Trim命令处理方法及固态硬盘
[0001]本专利技术涉及固态硬盘
,特别涉及一种基于固态硬盘的Trim命令处理方法及固态硬盘。
技术介绍
[0002]固态硬盘(SSD,Solid State Drives)是用固态电子存储芯片制作的存储硬盘,主要由控制器,存储介质和缓存单元组成。连接在主机上,与主机之间进行数据交换。
[0003]图1a和图1b示出了现有技术中固态硬盘删除文件的操作示意图。如图1a,固态硬盘上的数据由文件系统进行管理,文件系统中存储着指向实际存放数据(File data)的LBA(Logical Block Address,逻辑区块地址)空间的各个文件的指针(File index),二者一一对应(File 1index指向数据File 1data,File 2index指向数据File 2data)。删除文件时删除指针,对应的数据表示被废弃,被废弃的文件空间可以再被其他文件占用(File 1index指针被删除,那么数据File 1data所在空间可以被其他数据例如数据File 3data占用,File 3index指针指向数据File 3data)。
[0004]但是在固态硬盘中,文件删除时仅是删除了指针,而数据文件仍然保留,如图1b,当用户删除文件时只是切断文件与操作系统的关联,但固态硬盘仍然保留着逻辑地址与物理地址的映射,闪存中的数据也被固态硬盘认为有效,后续垃圾回收时这些数据仍然会被搬运。即在图1a中,虽然File 1index指针被删除,而固态硬盘仍然认为数据File 1data为存在于闪存当中的有效数据,后续垃圾回收时仍被搬运,造成写浪费。只有数据File 1data的LBA被数据File 3data复写时,被复写的那一部分LBA才会被当作真正的垃圾数据。文件系统的这种行为会对固态硬盘造成额外的开销。Trim命令(Data Set Management Command)被用于解决这一问题。
[0005]Trim命令的用途是告诉固态硬盘哪一段LBA空间被系统删除了,而固态硬盘接收到此消息后,便会做出相应的操作(如删除固态硬盘中该段LBA所对应的L2P信息),使这段LBA空间的数据变为垃圾数据。Trim命令提前将无效数据清空以减缓固态硬盘的读写速度的下降,但是目前的固态硬盘中Trim命令的执行过程较长,命令处理容易超时。
技术实现思路
[0006]鉴于上述问题,本专利技术的目的在于提供一种基于固态硬盘的Trim命令处理方法及固态硬盘,以解决现有技术中存在的问题。
[0007]根据本专利技术的一方面,提供一种基于固态硬盘的Trim命令处理方法,所述固态硬盘包括闪存存储器和控制器,所述控制器包括第一执行单元、第二执行单元和数据缓冲区,所述控制器执行以下Trim命令处理方法:
[0008]接收主机发送的Trim命令并存储在所述数据缓冲区中,所述Trim命令包括多条地址范围,每条所述地址范围包括第一类地址范围和/或第二类地址范围;
[0009]由所述第一执行单元将所述数据缓冲区的地址发送至所述第二执行单元;
[0010]由所述第二执行单元遍历所述数据缓冲区并提取出多条所述第二类地址范围进行处理;
[0011]由所述第一执行单元遍历所述数据缓冲区并提取出多条所述第一类地址范围进行处理;以及
[0012]在接收到所述多条地址范围均处理完成的反馈信息后,向所述主机返回所述Trim命令处理完成的信息,
[0013]其中,所述第二类地址范围的LBA在所述闪存存储器中的映射地址的长度对应物理页中至少一个完整的4KB单元,所述第一类地址范围的LBA在所述闪存存储器中的映射地址的长度小于物理页中一个完整的4KB单元。
[0014]可选地,由所述第二执行单元遍历所述数据缓冲区并提取出多条所述第二类地址范围进行处理包括:
[0015]所述第二执行单元遍历所述数据缓冲区的所有所述地址范围,一次性提取出其中的多条所述第二类地址范围;
[0016]更新每条所述第二类地址范围对应的L2P映射表;
[0017]将多条所述第二类地址范围处理完成的信息反馈至所述第一执行单元。
[0018]可选地,更新每条所述第二类地址范围对应的L2P映射表包括:
[0019]将每条所述第二类地址范围的L2P映射表中逻辑地址对应的内容设置为NULL。
[0020]可选地,由所述第二执行单元遍历所述数据缓冲区并提取出多条所述第二类地址范围进行处理还包括:
[0021]建立并更新用于存放已更新到所述L2P映射表中的所述第二类地址范围信息的Trim映射表。
[0022]可选地,所述控制器在接收到所述主机下发的写命令时,将所述Trim映射表写入所述闪存存储器。
[0023]可选地,在接收主机发送的Trim命令并存储在所述数据缓冲区中的步骤之后还包括:
[0024]将所述数据缓冲区中所述地址范围包含的LBA相邻且连续的所述地址范围合并。
[0025]根据本专利技术的另一方面,提供一种用于实现Trim命令处理方法的固态硬盘,包括控制器和闪存存储器,所述控制器与主机连接,用于接收所述主机发送的Trim命令,所述控制器包括处理器,所述处理器包括:
[0026]第一执行单元,接收所述Trim命令,将其中包含的多条地址范围存储至数据缓冲区,处理所述数据缓冲区中的多条第一类地址范围,并将所述数据缓冲区的地址发送至第二执行单元;
[0027]第二执行单元,与所述第一执行单元连接,遍历所述数据缓冲区,一次性提取和处理其中的多条第二类地址范围,并向所述第一执行单元反馈所述第二类地址范围处理完成的信息,
[0028]所述第一执行单元在接收到所述第二类地址范围处理完成的反馈信息和将所述第一类地址范围处理完成后,向所述主机返回所述Trim命令处理完成的信息,
[0029]其中,每条所述地址范围包括第一类地址范围和/或第二类地址范围,所述第二类地址范围的LBA在所述闪存存储器中的映射地址的长度对应物理页中至少一个完整的4KB
单元,所述第一类地址范围的LBA在所述闪存存储器中的映射地址的长度小于物理页中一个完整的4KB单元。
[0030]可选地,所述控制器还包括SRAM,所述SRAM包括:
[0031]数据缓冲区,用于存放所述Trim命令的多条所述地址范围;
[0032]L2P映射表单元,用于存放L2P映射表,所述第二执行单元在处理所述第二类地址范围时,将多条所述第二类地址范围对应的L2P映射表更新至所述L2P映射表单元中。
[0033]可选地,所述SRAM还包括:
[0034]Trim映射表单元,用于存放已更新到所述L2P映射表中的所述第二类地址范围信息的Trim映射表。
[0035]可选地,所述L2P映射表和所述Trim映射表在达到所述L2P映射表的刷表条件时,由所述控制器写入所述闪存存储器;所述Trim映射表在所述控制器接收到所述主本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于固态硬盘的Trim命令处理方法,所述固态硬盘包括闪存存储器和控制器,所述控制器包括第一执行单元、第二执行单元和数据缓冲区,所述控制器执行以下Trim命令处理方法:接收主机发送的Trim命令并存储在所述数据缓冲区中,所述Trim命令包括多条地址范围,每条所述地址范围包括第一类地址范围和/或第二类地址范围;由所述第一执行单元将所述数据缓冲区的地址发送至所述第二执行单元;由所述第二执行单元遍历所述数据缓冲区并提取出多条所述第二类地址范围进行处理;由所述第一执行单元遍历所述数据缓冲区并提取出多条所述第一类地址范围进行处理;以及在接收到所述多条地址范围均处理完成的反馈信息后,向所述主机返回所述Trim命令处理完成的信息,其中,所述第二类地址范围的LBA在所述闪存存储器中的映射地址的长度对应物理页中至少一个完整的4KB单元,所述第一类地址范围的LBA在所述闪存存储器中的映射地址的长度小于物理页中一个完整的4KB单元。2.根据权利要求1所述的Trim命令处理方法,其中,由所述第二执行单元遍历所述数据缓冲区并提取出多条所述第二类地址范围进行处理包括:所述第二执行单元遍历所述数据缓冲区的所有所述地址范围,一次性提取出其中的多条所述第二类地址范围;更新每条所述第二类地址范围对应的L2P映射表;将多条所述第二类地址范围处理完成的信息反馈至所述第一执行单元。3.根据权利要求2所述的Trim命令处理方法,其中,更新每条所述第二类地址范围对应的L2P映射表包括:将每条所述第二类地址范围的L2P映射表中逻辑地址对应的内容设置为NULL。4.根据权利要求2所述的Trim命令处理方法,其中,由所述第二执行单元遍历所述数据缓冲区并提取出多条所述第二类地址范围进行处理还包括:建立并更新用于存放已更新到所述L2P映射表中的所述第二类地址范围信息的Trim映射表。5.根据权利要求4所述的Trim命令处理方法,其中,所述控制器在接收到所述主机下发的写命令时,将所述Trim映射表写入所述闪存存储器。6.根据权利要求1所述的Trim命令处理方法,其中,在接收主机发送的Trim命令并存储在所述数据缓冲区中的步骤之后还包括:将所述数据缓冲区中所述地址范围包含的LBA相邻且连续的所述地...
【专利技术属性】
技术研发人员:陈正亮,傅凯,王琛銮,骆小敏,褚世凯,
申请(专利权)人:联芸科技杭州股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。