固态硬盘及其数据缓冲区管理方法与流程

文档序号:38038520发布日期:2024-05-20 11:04阅读:10来源:国知局
本申请涉及固态硬盘,特别涉及一种固态硬盘及其数据缓冲区管理方法。
背景技术
::1、固态硬盘(ssd,solid state drives)是用固态电子存储芯片制作的存储硬盘,主要由控制器,存储介质和缓存单元组成。目前最主流的固态硬盘采用闪存存储器(flashmemory)作为存储介质来存储数据,而采用控制器内部的sram(static random accessmemory)或外部dram(dynamic random access memory)作为缓存。2、对于dram-less方案的ssd而言,在sram当中分配有一定的空间作为数据缓冲池(data buffer pool),数据缓冲池用于存储以下内容:1)主机下发的写命令对应的数据,2)主机下发的读命令对应的数据,3)刷表(table flush)时存储需要刷入nand的l2p数据,4)垃圾回收操作(gc)时存储垃圾回收源区块(gc source block)的有效数据等。数据缓冲池的空间大小根据实际情况而定,如可以分配512kb的空间用于当作数据缓冲池,数据缓冲池包括多个数据缓冲区。一般而言,dram-less方案采用的二级映射表的映射颗粒度为4kb,即一个数据缓冲区可存储4kb的数据。3、在已有的缓冲区分配的管理中,仅考虑保证某一操作模块的执行来控制不同操作命令申请缓冲区数量的上下限,在缓冲区数量有限时,对于有硬件(hw)自动申请缓冲区的方案下,该配置模式会造成一些操作命令申请不到空闲的缓冲区,进而造成一定的资源浪费。技术实现思路1、鉴于上述问题,本申请的目的在于提供一种固态硬盘及其数据缓冲区管理方法,通过锁控制一些操作命令申请缓冲区数量的上限,从而保证申请到锁的操作命令能够分配到足够的缓冲区,提高缓冲区的利用率。2、根据本申请的一方面,提供一种固态硬盘的数据缓冲区管理方法,所述固态硬盘包括至少一个处理器,所述数据缓冲区管理方法包括:3、处理器根据操作命令发出锁申请请求,以请求为该操作命令分配锁,所述操作命令包括主机下发的命令和固件服务任务;以及4、执行所述操作命令,其中,当所述操作命令分配到锁时,根据所述操作命令提供相应的可申请的最大缓冲区,以及给未分配到锁的其他操作命令提供相应的可申请的最小缓冲区。5、可选地,当所述操作命令未分配到锁时,根据所述操作命令提供相应的可申请的最小缓冲区。6、可选地,不同的操作命令对应不同的缓冲编号,不同的缓冲编号对应的可申请的最小缓冲区和可申请的最大缓冲区的上限和下限不同。7、可选地,分配到锁的所述操作命令为主机下发的写操作命令时,根据写操作命令提供相应的可申请的最大缓冲区为:预留量+当前编程所需的缓冲区,其中,所述预留量为:当所述写操作命令未分配到锁时,根据所述写操作命令提供相应的可申请的最小缓冲区。8、可选地,所述固态硬盘还包括写高速缓冲器,当所述写操作命令未分配到锁时,限制所述写高速缓冲器中存储的命令描述符的数量为所述预留量。9、可选地,分配到锁的所述操作命令为固件服务任务时,根据固件服务任务命令提供相应的可申请的最大缓冲区为:当前编程所需的分配单元对应的缓冲区。10、可选地,所述操作命令执行完后,释放锁以及相应数量的缓冲区。11、可选地,根据分配到锁的所述操作命令,将当前编程所需数量的分配单元对应的命令描述符推至先进先出队列中,以提供当前编程所需的缓冲区。12、根据本申请的另一方面,提供一种固态硬盘,包括:主控芯片和闪存,主控芯片包括:13、接口,用于与主机连接;14、处理器,与所述接口连接,用于接收主机下发的操作命令;15、缓冲池,与所述处理器连接,用于执行和存储所述操作命令;16、锁管理模块,与所述处理器连接,用于接收所述操作命令的锁申请请求和分配锁,17、其中,所述锁管理模块通过分配锁限制所述操作命令所能申请的缓冲区数量,同一时间,只有一个操作命令能够分配到锁,当操作命令分配到锁时,所述缓冲池根据所述操作命令提供相应的可申请的最大缓冲区,以及给未分配到锁的其他操作命令提供相应的可申请的最小缓冲区。18、可选地,19、所述处理器包括处理器一和处理器二,所述主控芯片还包括:20、写高速缓冲器,与所述处理器一连接;21、先进先出队列,分别与所述处理器一和所述处理器二连接,22、其中,仅在主机写命令申请到锁时,从所述写高速缓冲器中推送当前一轮编程所需的分配单元对应的命令描述符到先进先出队列当中。23、本申请提供的固态硬盘及其数据缓冲区管理方法,通过锁限制一些操作命令申请缓冲区数量的上限,使未能申请到锁的操作命令所能申请缓冲区数量的上限保持在维持性能所需的数量,从而对于sram中的缓冲区空间不足时,可以保证申请到锁的操作命令能够分配到足够的缓冲区,提高缓冲区的利用率。在缓冲区数量有限的情况下,该方法可以保证各个操作命令都能顺利执行。24、进一步地,在多处理器的固态硬盘的写操作命令中,通过限制缓冲区中写高速缓冲器中存储的命令描述符的数量上限,以及仅允许写操作命令在申请到锁时,才能从写高速缓冲器中取出当前一轮编程所需的分配单元对应的描述符,并将其推进先进先出队列,从而控制了写操作命令在没有申请到锁的情况下,可申请到的缓冲区数量保持在下限,进而提高了其他操作命令在申请到锁的情况下,申请到足够的缓冲区数量的几率,从而提高缓冲区的利用率。25、进一步地,锁在同一时间只有一个操作命令能够申请成功,因此其余没有申请到锁的操作命令申请到缓冲区的数量受到了限制,保证了申请到锁的操作命令在单位时间内可以申请到更多的缓冲区,提高了该操作命令的性能。26、进一步地,本申请的提供的固态硬盘的数据缓冲区管理方法,可以适配更多的有着不同编程特性的nand。技术特征:1.一种固态硬盘的数据缓冲区管理方法,其特征在于,所述固态硬盘包括至少一个处理器,所述数据缓冲区管理方法包括:2.根据权利要求1所述的数据缓冲区管理方法,其中,当所述操作命令未分配到锁时,根据所述操作命令提供相应的可申请的最小缓冲区。3.根据权利要求2所述的数据缓冲区管理方法,其中,不同的操作命令对应不同的缓冲编号,不同的缓冲编号对应的可申请的最小缓冲区和可申请的最大缓冲区的上限和下限不同。4.根据权利要求1所述的数据缓冲区管理方法,其中,分配到锁的所述操作命令为主机下发的写操作命令时,根据写操作命令提供相应的可申请的最大缓冲区为:预留量+当前编程所需的缓冲区,其中,所述预留量为:当所述写操作命令未分配到锁时,根据所述写操作命令提供相应的可申请的最小缓冲区。5.根据权利要求4所述的数据缓冲区管理方法,其中,所述固态硬盘还包括写高速缓冲器,当所述写操作命令未分配到锁时,限制所述写高速缓冲器中存储的命令描述符的数量为所述预留量。6.根据权利要求1所述的数据缓冲区管理方法,其中,分配到锁的所述操作命令为固件服务任务时,根据固件服务任务命令提供相应的可申请的最大缓冲区为:当前编程所需的分配单元对应的缓冲区。7.根据权利要求1所述的数据缓冲区管理方法,其中,所述操作命令执行完后,释放锁以及相应数量的缓冲区。8.根据权利要求4或6所述的数据缓冲区管理方法,其中,根据分配到锁的所述操作命令,将当前编程所需数量的分配单元对应的命令描述符推至先进先出队列中,以提供当前编程所需的缓冲区。9.一种固态硬盘,其特征在于,包括:主控芯片和闪存,主控芯片包括:10.根据权利要求9所述的固态硬盘,其特征在于,所述处理器包括处理器一和处理器二,所述主控芯片还包括:技术总结公开了一种固态硬盘及其数据缓冲区管理方法,所述固态硬盘包括至少一个处理器,所述数据缓冲区管理方法包括:处理器根据操作命令发出锁申请请求,以请求为该操作命令分配锁,所述操作命令包括主机下发的命令和固件服务任务;以及执行所述操作命令,其中,当所述操作命令分配到锁时,根据所述操作命令提供相应的可申请的最大缓冲区,以及给未分配到锁的其他操作命令提供相应的可申请的最小缓冲区。本申请提供的固态硬盘及其数据缓冲区管理方法,通过锁控制一些操作命令申请缓冲区数量的上限,从而保证获取到锁的命令能够申请到足够的缓冲区,提高缓冲区的利用率。技术研发人员:陈正亮,傅凯,沈佳奇,王琛銮,蔡全受保护的技术使用者:联芸科技(杭州)股份有限公司技术研发日:技术公布日:2024/5/19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1