CN117055820A - 一种固态硬盘的命令处理方法、固态硬盘和存储介质 - Google Patents

一种固态硬盘的命令处理方法、固态硬盘和存储介质 Download PDF

Info

Publication number
CN117055820A
CN117055820A CN202311300581.6A CN202311300581A CN117055820A CN 117055820 A CN117055820 A CN 117055820A CN 202311300581 A CN202311300581 A CN 202311300581A CN 117055820 A CN117055820 A CN 117055820A
Authority
CN
China
Prior art keywords
command
processed
message queue
solid state
state disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311300581.6A
Other languages
English (en)
Other versions
CN117055820B (zh
Inventor
赵龙
张海仑
秦文政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311300581.6A priority Critical patent/CN117055820B/zh
Publication of CN117055820A publication Critical patent/CN117055820A/zh
Application granted granted Critical
Publication of CN117055820B publication Critical patent/CN117055820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种固态硬盘的命令处理方法、固态硬盘和存储介质,属于数据处理的技术领域。所述方法包括固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令;后端解析待处理的命令得到待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;当固态硬盘的后端向门非门存储器发送命令时,在待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器进行处理。本申请旨在减小固态硬盘执行命令时的时延。

Description

一种固态硬盘的命令处理方法、固态硬盘和存储介质
技术领域
本申请实施例涉及数据处理的技术领域,具体而言,涉及一种固态硬盘的命令处理方法、固态硬盘和存储介质。
背景技术
随着数字化的迅速发展,数据的存储也备受关注,出现了越来越多的数据存储设备,SSD(Solid State Disk,固态硬盘)是一种常见的数据存储设备,又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。
SSD在处理或执行命令时会有一定的时延,例如处理读写命令时,以读时延为例,具体地,读时延是指主机端发出的一个读命令的时刻开始,读命令经SSD的主控后从SSD的Nand中读到数据,直到回复读命令的完成消息并且读命令对应的数据返回至主机所需要的时间。
影响读时延大小的因素主要包括硬件与软件两部分,硬件能力,如PCIe传输速率、NVME控制器的处理能力、CPU的处理能力,以及最主要的nand读取任一数据的耗时都会影响到读时延的时间长短;软件方面,比如读命令解析和处理程序的运行效率,多核模块间的交互方式和速度也会影响到读时延的时间长短。
随着数字化的发展,提高效率的需求越来越高,因此对于SSD的读时延也要求越来越高,较小的SSD读时延可以为用户带来更好的体验,并且可提供更高的系统性能,读时延性能直接影响主机运行应用程序的速度、响应速度以及多任务处理能力等,所以SSD厂商将读时延作为一个重要的性能衡量指标,因此如何降低读时延是亟需解决的一个问题。
发明内容
本申请实施例提供一种固态硬盘的命令处理方法、固态硬盘和存储介质,旨在减小固态硬盘执行命令时的时延。
第一方面,本申请实施例提供一种固态硬盘的命令处理方法,应用于固态硬盘,所述方法包括:
所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,其中,所述主机消息队列中包括所述固态硬盘的主机下发的命令,所述非主机消息队列中包括非主机下发的命令;
所述固态硬盘的后端解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息,其中,一个通道包含多个逻辑功能单元,一个待处理命令对应一个逻辑功能单元;
所述固态硬盘的后端根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;
当所述固态硬盘的后端向门非门存储器发送命令时,在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器;
接收到所述待处理命令的门非门存储器对所述待处理命令进行处理。
可选地,所述方法还包括:
当所述固态硬盘的前端与后端交互时,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列。
可选地,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘的主机下发的读命令时,将所述待处理命令加入主机消息队列。
可选地,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘的主机下发的写命令时,将所述待处理命令加入主机消息队列。
可选地,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘内部的垃圾回收命令时,将所述待处理命令加入非主机消息队列。
可选地,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘的log读命令或log写命令时,将所述待处理命令加入非主机消息队列。
可选地,所述方法还包括:
为所述主机消息队列和非主机消息队列分别设置各自对应的消息令牌,所述消息令牌表征所述固态硬盘的后端连续从消息队列中读取待处理的命令的次数。
可选地,为所述主机消息队列和非主机消息队列分别设置各自对应的消息令牌,包括:
为所述主机消息队列设置第一消息令牌;
为所述非主机消息队列设置第二消息令牌;
其中,所述第一消息令牌大于所述第二消息令牌。
可选地,所述方法还包括:
对所述主机消息队列和非主机消息队列设置优先级,其中,所述主机消息队列的优先级高于所述非主机消息队列。
可选地,所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,包括:
所述固态硬盘的后端从优先级高的主机消息队列中获取待处理的命令,并将所述主机消息队列的消息令牌减1;
当所述主机消息队列的消息令牌为0时,所述固态硬盘的后端切换至从所述非主机消息队列中获取待处理的命令。
可选地,所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,包括:
所述固态硬盘的后端从优先级高的主机消息队列中获取待处理的命令,并将所述主机消息队列的消息令牌减1;
当所述主机消息队列的消息令牌不为0时,且所述主机消息队列为空时,所述固态硬盘的后端切换至从所述非主机消息队列中获取待处理的命令。
可选地,所述固态硬盘的后端根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1,包括:
所述固态硬盘的后端根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令;
当所述待处理的命令对应的通道的管理链表中不包括所述待处理的命令对应的逻辑功能单元节点时,在所述待处理的命令对应的通道的管理链表的尾部加入所述待处理的命令对应的逻辑功能单元节点并将该通道的待处理标记加1。
可选地,每个逻辑功能单元设置第一消息链表和第二消息链表,所述固态硬盘的后端根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令,包括:
当所述待处理的命令为读命令时,将所述待处理的命令加入第一消息链表;
当所述待处理的命令为写命令时,将所述待处理的命令加入第二消息链表;
其中,所述第一消息链表的处理优先级高于所述第二消息链表的处理优先级。
可选地,所述固态硬盘的后端根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令之后,还包括:
当所述待处理的命令对应的通道的管理链表中包括所述待处理的命令对应的逻辑功能单元节点时,等待至该通道的管理链表中的所述待处理的命令对应的逻辑功能单元节点删除后,在所述待处理的命令对应的通道的管理链表的尾部加入所述待处理的命令对应的逻辑功能单元节点并将该通道的待处理标记加1。
可选地,所述固态硬盘包括多个通道,所述多个通道中每个通道各自对应一个管理链表,当所述固态硬盘的后端向门非门存储器发送命令时,所述方法还包括:
查询任一通道的待处理标记;
当该通道的待处理标记为0时,切换至检查下一个通道的待处理标记。
可选地,在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器,包括:
所述固态硬盘的后端从所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点,并从该逻辑功能单元节点对应的消息链表的头部获取待处理的命令后下发至门非门存储器。
可选地,接收到所述待处理命令的门非门存储器对所述待处理命令进行处理之后,所述方法还包括:
当门非门存储器返回针对任一待处理命令的完成响应后,在该待处理命令对应的逻辑功能单元的消息链表中删除该待处理命令,在该待处理命令对应的通道的管理链表中删除待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记减1。
可选地,接收到所述待处理命令的门非门存储器对所述待处理命令进行处理之后,所述方法还包括:
当所述待处理命令为主机下发的读命令时,门非门存储器向主机返回所述待处理命令对应的数据,并向所述固态硬盘的后端返回针对该待处理命令的完成响应。
可选地,接收到所述待处理命令的门非门存储器对所述待处理命令进行处理之后,所述方法还包括:
当所述待处理命令为主机下发的写命令时,门非门存储器向所述固态硬盘的后端返回针对该待处理命令的完成响应。
第二方面,本申请实施例提供一种固态硬盘,所述固态硬盘的后端用于从主机消息队列或非主机消息队列中获取待处理的命令,其中,所述主机消息队列中包括所述固态硬盘的主机下发的命令,所述非主机消息队列中包括非主机下发的命令;
所述固态硬盘的后端用于解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息,其中,一个通道包含多个逻辑功能单元,一个待处理命令对应一个逻辑功能单元;
所述固态硬盘的后端用于根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;
当所述固态硬盘的后端向门非门存储器发送命令时,所述固态硬盘的后端用于在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器;
所述固态硬盘的门非门存储器用于在接收到所述待处理命令后进行处理。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如实施例第一方面所述的固态硬盘的命令处理方法。
有益效果:
所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,其中,所述主机消息队列中包括所述固态硬盘的主机下发的命令,所述非主机消息队列中包括非主机下发的命令;所述固态硬盘的后端解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息,其中,一个通道包含多个逻辑功能单元,一个待处理命令对应一个逻辑功能单元;所述固态硬盘的后端根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;当所述固态硬盘的后端向门非门存储器发送命令时,在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器;接收到所述待处理命令的门非门存储器对所述待处理命令进行处理。
本方法首先在固态硬盘中后端的命令获取阶段中,将命令分为主机下发的命令和非主机下发的命令,然后设置主机消息队列和非主机消息队列放置待处理的命令,相比于现有技术中后端需要遍历以通道划分的多个队列而言,可以减少后端在获取命令阶段的检查时间,减小了固态硬盘处理命令时的时延。
并且,本方法中,为通道构建管理链表,管理链表中的逻辑功能单元节点是待处理的命令对应的逻辑功能单元,没有待处理的命令的逻辑功能单元不在管理链表中,从而便于后端及时处理待处理的命令,相比于现有的遍历每个通道中所有逻辑功能单元的方法而言,显著提高处理待处理的命令的效率,进一步减小了固态硬盘处理命令时的时延。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的固态硬盘的命令处理方法的步骤流程图;
图2是本申请一实施例提出的固态硬盘的物理组织方式的示意图;
图3是本申请一实施例提供的二级链表的示意图;
图4是本申请一实施例提出的固态硬盘的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
SSD:Solid State Disk或Solid State Drive,固态硬盘;
Nand:门非门存储器,是一种非易失性存储器,用于存储数据;
channel:拥有独立总线的SSD主控和Nand的通信通道;
lun:Logical Unit Number,逻辑功能单元;
HOST:主机,指SSD所插入的PC或者服务器;
NCM:NAND Control Manager,Nand控制器
SSD的前端:指和接口和相关的协议模块;
SSD的后端:指和闪存通信模块;
PCIe:peripheral component interconnect express,一种高速串行计算机扩展总线标准;
nvme:逻辑设备接口规范。
目前的SSD在处理消息时,主要包括以下几个阶段,HOST发送命令到SSD的前端,耗时主要与HOST主机性能、PCIe、nvme控制器的硬件性能等有关;当SSD的前端接收到HOST发送的命令后,解析nvme cmd命令,并生成命令对应的报文msg格式发送至SSD的后端NCM,由SSD的后端NCM生成Nand可以识别的cmd消息后发送给Nand控制器处理命令。
但是目前SSD的后端与前端的算法模块之间的交互是按照SSD的通道划分的,并且每个通道中包含高低优先级两个队列,所以当后端要获取命令时,需要遍历检查每个通道中每个队列中是否有消息;假设每个队列检查需要10ns,而SSD有8个通道,则后端获取命令时,需要检查8个通道就需要160ns,比较耗时,导致SSD的时延较高。
其次,在SSD的后端NCM对报文处理的过程是按照二维数组管理消息链表的方式,假设SSD盘有8个通道,每个通道2个lun,原来的管理方式将是一个8*2的二维数据,每个数组节点下挂一个链表,由于数组各个channel和lun是固定排布的,所以要拿到消息,需要遍历检查所有channel和归属的lun,较为耗时,从而导致SSD处理命令的时延较高。
为了降低SSD处理命令时的时延,本申请实施例提供一种固态硬盘的命令处理方法。
参照图1,示出了本申请实施例中的一种固态硬盘的命令处理方法的步骤流程图,所述方法应用于固态硬盘,所述方法具体可以包括以下步骤:
S101:所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令。
本实施例中,在SSD的前端与后端进行数据交互时,设置有两个消息队列,主机消息队列或非主机消息队列,即下文中提到的HOST消息队列和非HOST消息队列,HOST消息队列中包括SSD的主机下发的命令,非HOST消息队列中包括非主机下发的命令,从HOST消息队列和非HOST消息队列中获取的待处理的命令为前端生成的报文msg的格式。
在一种可行的实施方式中,可以根据所述待处理命令的类型,将待处理命令加入HOST消息队列或非HOST消息队列,示例地:
当所述待处理的命令为所述SSD的主机下发的读命令时,将所述待处理命令加入HOST消息队列。
当所述待处理的命令为所述SSD的主机下发的写命令时,将所述待处理命令加入HOST消息队列。
当所述待处理的命令为所述SSD内部的垃圾回收命令时,将所述待处理命令加入非HOST消息队列。
当所述待处理的命令为所述SSD的log读命令或log写命令时,将所述待处理命令加入非HOST消息队列。
通常SSD所属的主机HOST下发的读写命令需要及时进行处理,因此可以为HOST消息队列和非HOST消息队列设置优先级,其中,所述HOST消息队列的优先级高于所述非HOST消息队列,即SSD的后端优先从HOST消息队列获取待处理的命令进行处理。
在一种可行的实施方式中,为了避免遗漏非主机下发的命令,还可以设置读取待处理的命令时,SSD的后端在HOST消息队列和非HOST消息队列之间的读取切换方式。
示例地,可以为HOST消息队列和非HOST消息队列分别设置各自对应的消息令牌,所述消息令牌表征所述SSD的后端连续从消息队列中读取待处理的命令的次数。
在实际实施时,可以为HOST消息队列设置第一消息令牌;为非HOST消息队列设置第二消息令牌;其中,所述第一消息令牌大于所述第二消息令牌;即允许SSD的后端可以连续较多地优先处理HOST下发的待处理命令,示例地,HOST消息队列设置第一消息令牌可以是20个,非HOST消息队列设置第二消息令牌可以是5个。
在一种可行的实施方式中,在为HOST消息队列和非HOST消息队列设置消息令牌后,在所述SSD的后端从HOST消息队列或非HOST消息队列中获取待处理的命令时,所述SSD的后端首先从优先级高的HOST消息队列中获取待处理的命令,每获取一个待处理的命令,就将HOST消息队列的消息令牌减1;当HOST消息队列的消息令牌为0时,所述SSD的后端切换至从非HOST消息队列中获取待处理的命令。
在另一种可行的实施方式中,所述SSD的后端从HOST消息队列或非HOST消息队列中获取待处理的命令时,所述SSD的后端可以从优先级高的HOST消息队列中获取待处理的命令,每获取一个待处理的命令,就将HOST消息队列的消息令牌减1;当所述HOST消息队列的消息令牌不为0时,且所述HOST消息队列为空时,所述SSD的后端切换至从所述非HOST消息队列中获取待处理的命令。
同理,当SSD的后端正在非HOST消息队列中获取待处理的命令时,每获取一个待处理的命令,就将所述非HOST消息队列的消息令牌减1,如果非HOST消息队列的消息令牌为0时,或者消息令牌不为0但是非HOST消息队列为空时,所述SSD的后端切换至从所述HOST消息队列中获取待处理的命令。
相比于现有技术中SSD的后端与前端的算法模块之间的交互是按照SSD的通道划分,并且每个通道中包含高低优先级两个队列,后端需要遍历检查每个通道中每个队列中是否有命令,这种情况下,后端可能会耗时检查没有待处理的命令的队列,会耗费大量的时间,本实施例通过将SSD的前端和后端之间的交互队列划分为HOST消息队列和非HOST消息队列,将待处理的命令按照类型的不同划分在不同的消息队列中,减少了SSD前端和后端的交互时间,降低了SSD处理命令的时延。
并且本实施例,对于HOST消息队列和非HOST消息队列设置有消息令牌和优先级,可以保证SSD对HOST下发的命令进行及时的处理,并且也保证非HOST消息队列中的命令可以被读取并处理。
S102:所述固态硬盘的后端解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息。
参照图2,示出了本申请实施例提供的SSD的物理组织方式的示意图,一个SSD通常包括多个通道,即多个channel,如常见有SSD有8个通道或者16个通道,逻辑功能单元lun是SSD中Nand的最小并发单元,一个channel包含多个lun,一个待处理命令对应一个lun。
当SSD的后端获取到一个待处理的命令后,对待处理的命令进行解析,可以确定待处理的命令针对的通道信息和逻辑功能单元信息。
S103:所述固态硬盘的后端根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1。
本实施例中,为SSD的每个channel都配置有一个管理链表,管理链表中用于存储具有待处理的命令对应的逻辑功能单元节点,即一个channel的管理链表中的lun节点都是需要处理待处理的命令的lun;相较于现有技术中需要遍历所有channel和归属的lun而获取待处理的命令的方法而言,本实施例中后端通过根据channel的管理链表,可以及时对待处理的命令进行处理。
参照图3,示出了本申请实施例提供的二级链表的示意图,在本实施例中,可以将channel和lun按照二级链表的管理方式进行管理,具体地,为每个lun设置一个消息链表,当SSD的后端获取到一个待处理的命令后,根据所述待处理的命令对应的lun信息,在该lun的消息链表的尾部加入所述待处理的命令,然后对于消息链表不为空的lun,需要在对应的channel的管理链表中加入该lun节点。
在一种可行的实施方式中,一个channel的管理链表中一个节点不重复出现,当所述待处理的命令对应的channel的管理链表中不包括所述待处理的命令对应的lun节点时,在所述待处理的命令对应的channel的管理链表的尾部加入所述待处理的命令对应的lun节点并将该channel的待处理标记加1。
当所述待处理的命令对应的channel的管理链表中包括所述待处理的命令对应的lun节点时,等待至该channel的管理链表中的所述待处理的命令对应的lun节点删除后,在所述待处理的命令对应的channel的管理链表的尾部加入所述待处理的命令对应的lun节点并将该channel的待处理标记加1。
现有的对channel和lun进行二维数组的管理方式,channel和lun的排布是固定的,不能确定哪些lun有待处理的命令,需要逐个遍历所有的lun,耗费大量的时间,而本实施例中,按照二级链表,即channel的管理链表和lun的消息链表的方式管理channel和lun的待处理的命令,当任一channel的待处理标记不为0时,每个channel上挂的lun节点即为有待处理命令需要处理的lun,没有待处理的命令需要处理的lun不会挂载到channel管理链表上,节省了遍历检查channel下每个lun的链表的时间,降低了SSD处理命令的时延。
在另一种可行的实施方式中,每个lun可以设置两个消息链表,第一消息链表和第二消息链表,第一消息链表中挂载读数据类型的待处理的命令,第二消息链表中挂载写数据类型的待处理的命令,考虑到为了提高用户的数据获取体验感,读数据的命令的执行效率要求更高,因此对于一个lun而言,如果两个消息链表中挂载有待处理的命令,优先选择第一消息链表,将lun添加在channel的管理链表中,直到该lun的读数据类型的待处理的命令的消息链表为空后,继续根据第二消息链表,将lun添加在channel的管理链表中;如果在对第二消息链表中的写数据类型的待处理的命令进行处理时,检测到第一消息链表中挂了新的待处理的命令,则lun跳转至第一消息链表进行处理,即优先处理读命令。
S104:当所述固态硬盘的后端向门非门存储器发送命令时,在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器。
当SSD的后端向门非门存储器,即SSD的后端向Nand发送命令时,需要将待处理的命令的报文格式转换为Nand可以识别的cmd格式,SSD的后端可以基于SSD的多个channel的管理链表向Nand发送命令。
具体地,为SSD的多个channel进行排序,然后SSD的后端依次查询任一channel的待处理标记,当该channel的待处理标记为0时,切换至检查下一个channel的待处理标记,从而减少对于对不包含待处理的命令的channel和所属lun的查询时间。
当一个channel的待处理标记不为0时,在所述待处理标记不为0的channel的管理链表的头部开始获取lun节点,然后从该lun节点的消息链表的头部获取待处理的命令进行处理后下发至Nand。
S105:接收到所述待处理命令的Nand对所述待处理命令进行处理。
在一种可行的实施方式中,当Nand对任一待处理命令处理完成后,向SSD的后端返回针对任一待处理命令的完成响应,然后在该待处理命令对应的lun的消息链表中删除该待处理命令,并在该待处理命令对应的channel的管理链表中删除待处理命令对应的lun节点,并将该channel的待处理标记减1。
在实际实施的过程中,Nand对不同的待处理命令的处理过程也不同,具体地,当所述待处理命令为主机下发的读命令时,Nand向主机返回所述待处理命令对应的数据,并向所述SSD的后端返回针对该待处理命令的完成响应;当所述待处理命令为主机下发的写命令时,Nand向所述SSD的后端返回针对该待处理命令的完成响应。
在一种实施方式中,以一个channel的管理链表中一个节点不重复出现为例,channelN的管理链表和lun0的消息链表的管理方式如下:
示例地,channelN的管理链表当前的待处理标记为0,则表征channelN中没有需要待处理消息的lun。
下一时刻t1,SSD的后端获取到一个待处理的命令1后,解析到待处理的命令1对应channelN和channelN中的lun0,lun0的消息链表中没有其他的待处理的命令,则将待处理的命令1的报文msg1挂在lun0的消息链表的尾部,然后将在channelN的管理链表的尾部加入lun0节点,并将channelN的待处理标记加1,此时channelN的待处理标记为1。
下一时刻t2,SSD的后端获取到一个待处理的命令2,解析到待处理的命令2仍对应channelN和channelN中的lun0,lun0的消息链表中仍包含有msg1,则将待处理的命令2的报文msg2挂在lun0的消息链表的尾部,即将msg2挂在msg1后面;此时若SSD的后端仍未收到msg1的完成响应,则在channelN的管理链表中仍包含lun0节点,不再在channelN的管理链表中重复添加lun0节点。
下一时刻t3,SSD的后端获取到一个待处理的命令3后,解析到待处理的命令1对应channelN和channelN中的lun1,lun1的消息链表中没有其他的待处理的命令,则将待处理的命令3的报文msg3挂在lun0的消息链表的尾部,然后将在channelN的管理链表的尾部加入lun1节点,此时SSD的后端仍未收到msg1的完成响应,则在channelN的管理链表中仍包含lun0节点,因此在channelN的管理链表中,lun1节点位于lun0节点后面,并且将channelN的待处理标记加1,此时channelN的待处理标记为2。
当某一时刻,SSD的后端收到msg1的完成响应后,在channelN的管理链表中删除lun0节点,并且将channelN的待处理标记减1,此时channelN的待处理标记为1;然后在lun0的消息链表中删除msg1,此时lun0的消息链表仍不为空,msg2位于lun0的消息链表中的头部,再次在channelN的管理链表的尾部加入lun0节点,并将channelN的待处理标记加1,此时channelN的待处理标记为2。
总之,本方法减少SSD的前端和后端的交互队列的数量,仅设置HOST消息队列和非HOST消息队列,并且对HOST消息队列和非HOST消息队列设置有不同的消息令牌和不同的优先级,既保证SSD对HOST下发的命令进行及时的处理,也保证非HOST消息队列中的命令可以被读取并处理,减少了后端获取待处理的命令的时间。
然后将SSD的channel和lun按照二级链表的管理方式进行管理,只将有待处理的命令的lun挂在对应的channel的管理链表上,没有消息的lun不进行挂载,从而使得后端NCM的CPU可以以最快的速率获取到待处理的命令,减小CPU对每个通道和每个通道上lun的检查时间,提高了lun调度和命令处理的效率,从而减少了SSD对于一笔命令的整体处理路径的耗时,降低了SSD处理命令的时延。
参照图4,示出了本申请实施例提供的一种固态硬盘的结构示意图,所述固态硬盘的后端用于从主机消息队列或非主机消息队列中获取待处理的命令,其中,所述主机消息队列中包括所述固态硬盘的主机下发的命令,所述非主机消息队列中包括非主机下发的命令;
所述固态硬盘的后端用于解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息,其中,一个通道包含多个逻辑功能单元,一个待处理命令对应一个逻辑功能单元;
所述固态硬盘的后端用于根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;
当所述固态硬盘的后端向门非门存储器发送命令时,所述固态硬盘的后端用于在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器;
所述固态硬盘的门非门存储器用于在接收到所述待处理命令后进行处理。
可选地,固态硬盘的前端在与后端交互时,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列。
具体地,当所述待处理的命令为所述固态硬盘的主机下发的读命令或写命令时,将所述待处理命令加入主机消息队列。
当所述待处理的命令为所述固态硬盘内部的垃圾回收命令或log读写命令时,将所述待处理命令加入非主机消息队列。
所述固态硬盘还为所述主机消息队列和非主机消息队列分别设置各自对应的消息令牌和优先级,所述消息令牌表征所述固态硬盘的后端连续从消息队列中读取待处理的命令的次数,示例地,为所述主机消息队列设置第一消息令牌;为所述非主机消息队列设置第二消息令牌;其中,所述第一消息令牌大于所述第二消息令牌,而所述主机消息队列的优先级高于所述非主机消息队列。
在所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令时,所述固态硬盘的后端用于从优先级高的主机消息队列中获取待处理的命令,并将所述主机消息队列的消息令牌减1;当所述主机消息队列的消息令牌为0,或者消息令牌不为0但所述主机消息队列为空时,所述固态硬盘的后端切换至从所述非主机消息队列中获取待处理的命令。
可选地,所述固态硬盘的后端还根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令;当所述待处理的命令对应的通道的管理链表中不包括所述待处理的命令对应的逻辑功能单元节点时,在所述待处理的命令对应的通道的管理链表的尾部加入所述待处理的命令对应的逻辑功能单元节点并将该通道的待处理标记加1;当所述待处理的命令对应的通道的管理链表中包括所述待处理的命令对应的逻辑功能单元节点时,等待至该通道的管理链表中的所述待处理的命令对应的逻辑功能单元节点删除后,在所述待处理的命令对应的通道的管理链表的尾部加入所述待处理的命令对应的逻辑功能单元节点并将该通道的待处理标记加1。
所述固态硬盘包括多个通道,所述多个通道中每个通道各自对应一个管理链表,当所述固态硬盘的后端向门非门存储器发送命令时,所述固态硬盘的后端用于查询任一通道的待处理标记;当该通道的待处理标记为0时,切换至检查下一个通道的待处理标记;所述固态硬盘的后端还用于在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点,并从该逻辑功能单元节点对应的消息链表的头部获取待处理的命令后下发至门非门存储器。
可选地,所述固态硬盘的后端还用于在门非门存储器返回针对任一待处理命令的完成响应后,在该待处理命令对应的逻辑功能单元的消息链表中删除该待处理命令,在该待处理命令对应的通道的管理链表中删除待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记减1;当所述待处理命令为主机下发的读命令时,门非门存储器向主机返回所述待处理命令对应的数据,并向所述固态硬盘的后端返回针对该待处理命令的完成响应。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如实施例所述的固态硬盘的命令处理方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (21)

1.一种固态硬盘的命令处理方法,其特征在于,应用于固态硬盘,所述方法包括:
所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,其中,所述主机消息队列中包括所述固态硬盘的主机下发的命令,所述非主机消息队列中包括非主机下发的命令;
所述固态硬盘的后端解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息,其中,一个通道包含多个逻辑功能单元,一个待处理命令对应一个逻辑功能单元;
所述固态硬盘的后端根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;
当所述固态硬盘的后端向门非门存储器发送命令时,在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器;
接收到所述待处理命令的门非门存储器对所述待处理命令进行处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述固态硬盘的前端与后端交互时,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列。
3.根据权利要求2所述的方法,其特征在于,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘的主机下发的读命令时,将所述待处理命令加入主机消息队列。
4.根据权利要求2所述的方法,其特征在于,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘的主机下发的写命令时,将所述待处理命令加入主机消息队列。
5.根据权利要求2所述的方法,其特征在于,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘内部的垃圾回收命令时,将所述待处理命令加入非主机消息队列。
6.根据权利要求2所述的方法,其特征在于,根据所述待处理命令的类型,将所述待处理命令加入主机消息队列或非主机消息队列,包括:
当所述待处理的命令为所述固态硬盘的log读命令或log写命令时,将所述待处理命令加入非主机消息队列。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述主机消息队列和非主机消息队列分别设置各自对应的消息令牌,所述消息令牌表征所述固态硬盘的后端连续从消息队列中读取待处理的命令的次数。
8.根据权利要求7所述的方法,其特征在于,为所述主机消息队列和非主机消息队列分别设置各自对应的消息令牌,包括:
为所述主机消息队列设置第一消息令牌;
为所述非主机消息队列设置第二消息令牌;
其中,所述第一消息令牌大于所述第二消息令牌。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
对所述主机消息队列和非主机消息队列设置优先级,其中,所述主机消息队列的优先级高于所述非主机消息队列。
10.根据权利要求9所述的方法,其特征在于,所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,包括:
所述固态硬盘的后端从优先级高的主机消息队列中获取待处理的命令,并将所述主机消息队列的消息令牌减1;
当所述主机消息队列的消息令牌为0时,所述固态硬盘的后端切换至从所述非主机消息队列中获取待处理的命令。
11.根据权利要求9所述的方法,其特征在于,所述固态硬盘的后端从主机消息队列或非主机消息队列中获取待处理的命令,包括:
所述固态硬盘的后端从优先级高的主机消息队列中获取待处理的命令,并将所述主机消息队列的消息令牌减1;
当所述主机消息队列的消息令牌不为0时,且所述主机消息队列为空时,所述固态硬盘的后端切换至从所述非主机消息队列中获取待处理的命令。
12.根据权利要求1所述的方法,其特征在于,所述固态硬盘的后端根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1,包括:
所述固态硬盘的后端根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令;
当所述待处理的命令对应的通道的管理链表中不包括所述待处理的命令对应的逻辑功能单元节点时,在所述待处理的命令对应的通道的管理链表的尾部加入所述待处理的命令对应的逻辑功能单元节点并将该通道的待处理标记加1。
13.根据权利要求12所述的方法,其特征在于,每个逻辑功能单元设置第一消息链表和第二消息链表,所述固态硬盘的后端根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令,包括:
当所述待处理的命令为读命令时,将所述待处理的命令加入第一消息链表;
当所述待处理的命令为写命令时,将所述待处理的命令加入第二消息链表;
其中,所述第一消息链表的处理优先级高于所述第二消息链表的处理优先级。
14.根据权利要求12所述的方法,其特征在于,所述固态硬盘的后端根据所述待处理的命令对应的逻辑功能单元信息,在该逻辑功能单元的消息链表的尾部加入所述待处理的命令之后,还包括:
当所述待处理的命令对应的通道的管理链表中包括所述待处理的命令对应的逻辑功能单元节点时,等待至该通道的管理链表中的所述待处理的命令对应的逻辑功能单元节点删除后,在所述待处理的命令对应的通道的管理链表的尾部加入所述待处理的命令对应的逻辑功能单元节点并将该通道的待处理标记加1。
15.根据权利要求1所述的方法,其特征在于,所述固态硬盘包括多个通道,所述多个通道中每个通道各自对应一个管理链表,当所述固态硬盘的后端向门非门存储器发送命令时,所述方法还包括:
查询任一通道的待处理标记;
当该通道的待处理标记为0时,切换至检查下一个通道的待处理标记。
16.根据权利要求12所述的方法,其特征在于,在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器,包括:
所述固态硬盘的后端从所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点,并从该逻辑功能单元节点对应的消息链表的头部获取待处理的命令后下发至门非门存储器。
17.根据权利要求16所述的方法,其特征在于,接收到所述待处理命令的门非门存储器对所述待处理命令进行处理之后,所述方法还包括:
当门非门存储器返回针对任一待处理命令的完成响应后,在该待处理命令对应的逻辑功能单元的消息链表中删除该待处理命令,在该待处理命令对应的通道的管理链表中删除待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记减1。
18.根据权利要求1所述的方法,其特征在于,接收到所述待处理命令的门非门存储器对所述待处理命令进行处理之后,所述方法还包括:
当所述待处理命令为主机下发的读命令时,门非门存储器向主机返回所述待处理命令对应的数据,并向所述固态硬盘的后端返回针对该待处理命令的完成响应。
19.根据权利要求1所述的方法,其特征在于,接收到所述待处理命令的门非门存储器对所述待处理命令进行处理之后,所述方法还包括:
当所述待处理命令为主机下发的写命令时,门非门存储器向所述固态硬盘的后端返回针对该待处理命令的完成响应。
20.一种固态硬盘,其特征在于,所述固态硬盘的后端用于从主机消息队列或非主机消息队列中获取待处理的命令,其中,所述主机消息队列中包括所述固态硬盘的主机下发的命令,所述非主机消息队列中包括非主机下发的命令;
所述固态硬盘的后端用于解析所述待处理的命令,得到所述待处理的命令对应的通道信息和逻辑功能单元信息,其中,一个通道包含多个逻辑功能单元,一个待处理命令对应一个逻辑功能单元;
所述固态硬盘的后端用于根据所述待处理的命令对应的通道信息和逻辑功能单元信息,在该通道的管理链表的尾部加入所述待处理命令对应的逻辑功能单元节点,并将该通道的待处理标记加1;
当所述固态硬盘的后端向门非门存储器发送命令时,所述固态硬盘的后端用于在所述待处理标记不为0的通道的管理链表的头部开始获取逻辑功能单元节点对应的待处理命令下发至门非门存储器;
所述固态硬盘的门非门存储器用于在接收到所述待处理命令后进行处理。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19中任一项所述的固态硬盘的命令处理方法。
CN202311300581.6A 2023-10-09 2023-10-09 一种固态硬盘的命令处理方法、固态硬盘和存储介质 Active CN117055820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311300581.6A CN117055820B (zh) 2023-10-09 2023-10-09 一种固态硬盘的命令处理方法、固态硬盘和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311300581.6A CN117055820B (zh) 2023-10-09 2023-10-09 一种固态硬盘的命令处理方法、固态硬盘和存储介质

Publications (2)

Publication Number Publication Date
CN117055820A true CN117055820A (zh) 2023-11-14
CN117055820B CN117055820B (zh) 2024-02-09

Family

ID=88666576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311300581.6A Active CN117055820B (zh) 2023-10-09 2023-10-09 一种固态硬盘的命令处理方法、固态硬盘和存储介质

Country Status (1)

Country Link
CN (1) CN117055820B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104090847A (zh) * 2014-06-25 2014-10-08 华中科技大学 一种固态存储设备的地址分配方法
CN105912307A (zh) * 2016-04-27 2016-08-31 浪潮(北京)电子信息产业有限公司 一种Flash控制器数据处理方法及装置
CN105934793A (zh) * 2014-12-27 2016-09-07 华为技术有限公司 一种存储系统数据分发的方法、分发装置与存储系统
CN106527988A (zh) * 2016-11-04 2017-03-22 郑州云海信息技术有限公司 一种固态硬盘数据迁移的方法及装置
CN106897026A (zh) * 2016-10-07 2017-06-27 威盛电子股份有限公司 非易失性存储器装置及其地址分类方法
CN109582215A (zh) * 2017-09-29 2019-04-05 华为技术有限公司 硬盘操作命令的执行方法、硬盘及存储介质
CN109901785A (zh) * 2017-12-08 2019-06-18 西安华为技术有限公司 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN109976673A (zh) * 2019-03-29 2019-07-05 新华三技术有限公司 一种数据写入方法和装置
CN110149282A (zh) * 2019-01-30 2019-08-20 华为技术有限公司 流量调度方法和装置
CN113655955A (zh) * 2021-07-16 2021-11-16 深圳大普微电子科技有限公司 缓存管理方法、固态硬盘控制器及固态硬盘
CN114063894A (zh) * 2020-08-07 2022-02-18 华为技术有限公司 一种协程执行方法及装置
WO2022134741A1 (zh) * 2020-12-25 2022-06-30 深圳大普微电子科技有限公司 重读命令处理方法、闪存控制器及固态硬盘
CN115686369A (zh) * 2022-11-01 2023-02-03 山东云海国创云计算装备产业创新中心有限公司 一种存储设备多队列仲裁方法、系统、设备及介质
CN115794173A (zh) * 2023-01-09 2023-03-14 苏州浪潮智能科技有限公司 固态硬盘的在线升级方法、装置、电子设备及存储介质
WO2023056687A1 (zh) * 2021-10-08 2023-04-13 中山市江波龙电子有限公司 一种固态硬盘及其数据操作方法、装置及电子设备

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104090847A (zh) * 2014-06-25 2014-10-08 华中科技大学 一种固态存储设备的地址分配方法
CN105934793A (zh) * 2014-12-27 2016-09-07 华为技术有限公司 一种存储系统数据分发的方法、分发装置与存储系统
CN105912307A (zh) * 2016-04-27 2016-08-31 浪潮(北京)电子信息产业有限公司 一种Flash控制器数据处理方法及装置
CN106897026A (zh) * 2016-10-07 2017-06-27 威盛电子股份有限公司 非易失性存储器装置及其地址分类方法
CN106527988A (zh) * 2016-11-04 2017-03-22 郑州云海信息技术有限公司 一种固态硬盘数据迁移的方法及装置
CN109582215A (zh) * 2017-09-29 2019-04-05 华为技术有限公司 硬盘操作命令的执行方法、硬盘及存储介质
CN109901785A (zh) * 2017-12-08 2019-06-18 西安华为技术有限公司 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN110149282A (zh) * 2019-01-30 2019-08-20 华为技术有限公司 流量调度方法和装置
CN109976673A (zh) * 2019-03-29 2019-07-05 新华三技术有限公司 一种数据写入方法和装置
CN114063894A (zh) * 2020-08-07 2022-02-18 华为技术有限公司 一种协程执行方法及装置
WO2022134741A1 (zh) * 2020-12-25 2022-06-30 深圳大普微电子科技有限公司 重读命令处理方法、闪存控制器及固态硬盘
CN113655955A (zh) * 2021-07-16 2021-11-16 深圳大普微电子科技有限公司 缓存管理方法、固态硬盘控制器及固态硬盘
WO2023056687A1 (zh) * 2021-10-08 2023-04-13 中山市江波龙电子有限公司 一种固态硬盘及其数据操作方法、装置及电子设备
CN115686369A (zh) * 2022-11-01 2023-02-03 山东云海国创云计算装备产业创新中心有限公司 一种存储设备多队列仲裁方法、系统、设备及介质
CN115794173A (zh) * 2023-01-09 2023-03-14 苏州浪潮智能科技有限公司 固态硬盘的在线升级方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN117055820B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
US20150186068A1 (en) Command queuing using linked list queues
CN107729558B (zh) 文件系统碎片整理的方法、系统、装置及计算机存储介质
CN109582215B (zh) 硬盘操作命令的执行方法、硬盘及存储介质
US11010094B2 (en) Task management method and host for electronic storage device
KR102589643B1 (ko) 데이터를 저장하는 장치, 방법 및 판독 가능 저장매체
CN107122130B (zh) 一种数据重删方法及装置
CN109240607B (zh) 一种文件读取方法和装置
CN111339078A (zh) 数据实时存储方法、数据查询方法、装置、设备、介质
CN112181293B (zh) 固态硬盘控制器、固态硬盘、存储系统及数据处理方法
JP2020194523A (ja) アクセス請求を処理する方法、装置、デバイスならびに記憶媒体
US20220164316A1 (en) Deduplication method and apparatus
CN109614049B (zh) 闪存控制方法、闪存控制器及闪存系统
WO2024119775A1 (zh) 一种raid卡的节点更新方法、系统及相关装置
CN113377695A (zh) 读写分离的固态存储设备的数据分布方法
CN111061690B (zh) 一种基于rac的数据库日志文件读取方法和装置
WO2019174206A1 (zh) 一种存储设备的数据读取方法、装置、终端设备和存储介质
CN114327642A (zh) 一种数据读写的控制方法及电子设备
CN117055820B (zh) 一种固态硬盘的命令处理方法、固态硬盘和存储介质
CN117251275A (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
CN112015527B (zh) 管理从提交队列获取和执行命令
CN112068948B (zh) 数据散列方法、可读存储介质和电子设备
US20150067303A1 (en) Input data aggregation processing apparatus, system and method
CN117331511B (zh) 一种存储设备及其数据传输方法、装置、系统和存储介质
CN115379263B (zh) 一种终端设备的播放内容的管控方法和管控系统
CN115794446B (zh) 一种消息处理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant