CN111221476B - 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 - Google Patents

提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111221476B
CN111221476B CN202010018540.8A CN202010018540A CN111221476B CN 111221476 B CN111221476 B CN 111221476B CN 202010018540 A CN202010018540 A CN 202010018540A CN 111221476 B CN111221476 B CN 111221476B
Authority
CN
China
Prior art keywords
command
buffer area
queue
unit
host
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.)
Active
Application number
CN202010018540.8A
Other languages
English (en)
Other versions
CN111221476A (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.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System 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 Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN202010018540.8A priority Critical patent/CN111221476B/zh
Publication of CN111221476A publication Critical patent/CN111221476A/zh
Application granted granted Critical
Publication of CN111221476B publication Critical patent/CN111221476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明涉及提升SSD性能的前端命令处理方法、装置、计算机设备及存储介质;其中,方法,包括:配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移及PCI基地址寄存器序号的参数信息;开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;主机提交管理/输入命令至控制器内存缓冲区命令提交队列,更新命令提交队列具体条目信息;主机更新命令提交队列门铃寄存器尾指针;主机访问命令完成队列,并取回命令完成信息;主机更新命令完成队列门铃寄存器头指针。本发明在处理命令或搬运数据时,基于本地的缓冲区进行,省略了大部分PCIe级别的读写操作,减少命令处理的延时,提高工作效率。

Description

提升SSD性能的前端命令处理方法、装置、计算机设备及存储 介质
技术领域
本发明涉及提升固态硬盘性能技术领域,更具体地说是指提升SSD性能的前端命令处理方法、装置、计算机设备及存储介质。
背景技术
基于Nvme协议的SSD(固态硬盘),与Host(主机)之间的信息交互是通过SQ(submission queue,命令提交队列)、CQ(completion queue,命令完成队列)以及DB(doorbell register,门铃寄存器)进行。传统的Nvme命令处理会把SQ、CQ及PRP List(PRP寻址列表)存放至Host Memory(主机内存)中,Device(设备)在命令处理时需要执行一个PCIe write/read(写/读)去Host Memory中拿到queue entries(队列条目)相关信息,这样增加了命令处理的时间,降低了效率,尤其是在PCIe拓扑较复杂的EP设备之间访问;因此,无法满足需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供提升SSD性能的前端命令处理方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用于下技术方案:
提升SSD性能的前端命令处理方法,包括以下步骤:
主机上电,操作系统及固件进行初始化;
配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息;
根据配置参数信息开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;
主机提交管理/输入命令至控制器内存缓冲区命令提交队列,并更新命令提交队列具体条目信息;
根据具体条目信息主机更新命令提交队列门铃寄存器尾指针;
设备对门铃寄存器的值进行更新查询;若查询到门铃寄存器的值存在更新,则设备访问本地控制器内存缓冲区命令提交队列,取回新的管理/输入命令;
根据新的管理/输入命令,设备更新命令提交队列门铃寄存器头指针;
更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断;
主机接收中断,进行访问命令完成队列,并取回命令完成信息;
根据命令完成信息,主机更新命令完成队列门铃寄存器头指针。
其进一步技术方案为:所述“配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息”步骤中,控制器内存缓冲区空间大小参数信息为1-2M,缓冲区地址偏移参数信息为0-100。
其进一步技术方案为:所述“更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断”步骤中,中断为MSI-X中断。
其进一步技术方案为:所述“根据命令完成信息,主机更新命令完成队列门铃寄存器头指针”步骤之后,还包括:设备进入状态机轮询,等待主机下发新命令。
提升SSD性能的前端命令处理装置,包括:上电初始化单元,配置单元,开启单元,提交更新单元,第一更新单元,查询单元,第二更新单元,更新触发单元,接收访问单元,及第三更新单元;
所述上电初始化单元,用于主机上电,操作系统及固件进行初始化;
所述配置单元,用于配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息;
所述开启单元,用于根据配置参数信息开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;
所述提交更新单元,用于主机提交管理/输入命令至控制器内存缓冲区命令提交队列,并更新命令提交队列具体条目信息;
所述第一更新单元,用于根据具体条目信息主机更新命令提交队列门铃寄存器尾指针;
所述查询单元,用于设备对门铃寄存器的值进行更新查询;若查询到门铃寄存器的值存在更新,则设备访问本地控制器内存缓冲区命令提交队列,取回新的管理/输入命令;
所述第二更新单元,用于根据新的管理/输入命令,设备更新命令提交队列门铃寄存器头指针;
所述更新触发单元,用于更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断;
所述接收访问单元,用于主机接收中断,进行访问命令完成队列,并取回命令完成信息;
所述第三更新单元,用于根据命令完成信息,主机更新命令完成队列门铃寄存器头指针。
其进一步技术方案为:所述配置单元中,控制器内存缓冲区空间大小参数信息为1-2M,缓冲区地址偏移参数信息为0-100。
其进一步技术方案为:所述更新触发单元中,中断为MSI-X中断。
其进一步技术方案为:还包括:进入等待单元,用于设备进入状态机轮询,等待主机下发新命令。
一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上述所述的提升SSD性能的前端命令处理方法。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如上述所述的提升SSD性能的前端命令处理方法。
本发明与现有技术相比的有益效果是:当主机与设备进行信息交互时,主机将命令提交队列、命令完成队列、及PRP寻址列表或部分数据放置在Nvme控制器内存缓冲区中,设备在处理命令或搬运数据时,可以直接基于本地的缓冲区进行,省略了大部分PCIe级别的读写操作,有效减少命令处理的延时,大大地提高工作效率,能够更好地满足需求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的提升SSD性能的前端命令处理方法的流程示意图;
图2为本发明实施例提供的提升SSD性能的前端命令处理装置的示意性框图;
图3为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1到图3所示的具体实施例,其中,现有基于Nvme over Pcie技术的传统实现流程如下:主机上电,OS(操作系统)初始化完成,查询到设备相关Nvme corecapability Register(功能配置寄存器)配置信息后,开始有针对性地建立admin及io(管理及输入)命令提交队列/命令完成队列,并把队列的地址等相关信息告诉设备,然后主机根据自己的应用场景下发admin/io(管理/输入)命令至对应的命令提交队列,并通过写命令提交队列门铃寄存器的形式告诉设备,设备通过PCIe读的形式去主机存储器拿到命令,并更新命令提交队列门铃寄存器告知主机成功拿到命令;当设备处理完命令后,通过PCIe写的形式更新主机存储器命令完成队列信息,然后修改命令完成队列门铃寄存器触发中断告知主机命令处理完毕,当主机下发写/读等IO命令时,设备还要去主机端存储器中取PRP寻址列表及需要存储的数据;在这个过程中,设备需要频繁地进行PCIe级别的读写,这样增加了命令处理的时间,降低了效率,尤其是在PCIe拓扑较复杂的EP设备之间访问。
请参阅图1所示,本发明公开了一种提升SSD性能的前端命令处理方法,包括以下步骤:
S1,主机上电,操作系统及固件进行初始化;
S2,配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息;
其中,所述S2中,控制器内存缓冲区空间大小参数信息为1-2M,缓冲区地址偏移参数信息为0-100,可以根据实际需要进行调整。
S3,根据配置参数信息开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;
S4,主机提交管理/输入命令至控制器内存缓冲区命令提交队列,并更新命令提交队列具体条目信息;
S5,根据具体条目信息主机更新命令提交队列门铃寄存器尾指针;
S6,设备对门铃寄存器的值进行更新查询;若查询到门铃寄存器的值存在更新,则设备访问本地控制器内存缓冲区命令提交队列,取回新的管理/输入命令;
S7,根据新的管理/输入命令,设备更新命令提交队列门铃寄存器头指针;
S8,更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断;
其中,所述S8中,中断为MSI-X中断,当更新指针时,会触发MSI-X中断(MSI-X是PCIe层的message(信息)中断,区别于常规pin触发中断)。
S9,主机接收中断,进行访问命令完成队列,并取回命令完成信息;
S10,根据命令完成信息,主机更新命令完成队列门铃寄存器头指针。
其中,所述S10之后,还包括:设备进入状态机轮询,等待主机下发新命令。
其中,本发明在命令信息交互过程使用Nvme控制器内存缓冲区存放命令提交队列信息,主机在Capsulate(封装)命令信息后,基于RDMA事务层协议的可以通过send queue(发送队列)将封装直接发送至设备,经过解析后存放至控制器内存缓冲区,在这个过程中,只要设备空间支持,主机就可以根据需求提交命令队列,相较于传统方法,省略了设备去主机存储器取命令提交队列的过程,在传统前端命令处理的基础上进行了优化,将原位于主机存储器中的命令提交队列/命令完成队列、PRP寻址列表及数据或Meta-Data(用于数据完整性),存储至设备Nvme控制器内存缓冲区中,设备可以直接将交互信息存储至本地缓冲区,减少了大部分PCIe(PCIe是计算机系统常用的一种串口通信协议)级别的读写操作,提高了工作效率。
请参阅图2,本发明还公开了一种提升SSD性能的前端命令处理装置,包括:上电初始化单元10,配置单元20,开启单元30,提交更新单元40,第一更新单元50,查询单元60,第二更新单元70,更新触发单元80,接收访问单元90,及第三更新单元100;
所述上电初始化单元10,用于主机上电,操作系统及固件进行初始化;
所述配置单元20,用于配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息;
所述开启单元30,用于根据配置参数信息开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;
所述提交更新单元40,用于主机提交管理/输入命令至控制器内存缓冲区命令提交队列,并更新命令提交队列具体条目信息;
所述第一更新单元50,用于根据具体条目信息主机更新命令提交队列门铃寄存器尾指针;
所述查询单元60,用于设备对门铃寄存器的值进行更新查询;若查询到门铃寄存器的值存在更新,则设备访问本地控制器内存缓冲区命令提交队列,取回新的管理/输入命令;
所述第二更新单元70,用于根据新的管理/输入命令,设备更新命令提交队列门铃寄存器头指针;
所述更新触发单元80,用于更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断;
所述接收访问单元90,用于主机接收中断,进行访问命令完成队列,并取回命令完成信息;
所述第三更新单元100,用于根据命令完成信息,主机更新命令完成队列门铃寄存器头指针。
其中,所述配置单元20中,控制器内存缓冲区空间大小参数信息为1-2M,缓冲区地址偏移参数信息为0-100。
其中,所述更新触发单元80中,中断为MSI-X中断。
其中,该装置还包括:进入等待单元110,用于设备进入状态机轮询,等待主机下发新命令。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述提升SSD性能的前端命令处理装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述提升SSD性能的前端命令处理装置可以实现为一种计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本申请实施例提供的一种计算机设备的示意性框图;该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图3,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种提升SSD性能的前端命令处理方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种提升SSD性能的前端命令处理方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的提升SSD性能的前端命令处理方法。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

Claims (10)

1.提升SSD性能的前端命令处理方法,其特征在于,包括以下步骤:
主机上电,操作系统及固件进行初始化;
配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息;
根据配置参数信息开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;
主机提交管理/输入命令至控制器内存缓冲区命令提交队列,并更新命令提交队列具体条目信息;
根据具体条目信息主机更新命令提交队列门铃寄存器尾指针;
设备对门铃寄存器的值进行更新查询;若查询到门铃寄存器的值存在更新,则设备访问本地控制器内存缓冲区命令提交队列,取回新的管理/输入命令;
根据新的管理/输入命令,设备更新命令提交队列门铃寄存器头指针;
更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断;
主机接收中断,进行访问命令完成队列,并取回命令完成信息;
根据命令完成信息,主机更新命令完成队列门铃寄存器头指针;
其中,控制器内存缓冲区为设备NVMe控制器内存缓冲区。
2.根据权利要求1所述的提升SSD性能的前端命令处理方法,其特征在于,所述“配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息”步骤中,控制器内存缓冲区空间大小参数信息为1-2M,缓冲区地址偏移参数信息为0-100。
3.根据权利要求1所述的提升SSD性能的前端命令处理方法,其特征在于,所述“更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断”步骤中,中断为MSI-X中断。
4.根据权利要求1所述的提升SSD性能的前端命令处理方法,其特征在于,所述“根据命令完成信息,主机更新命令完成队列门铃寄存器头指针”步骤之后,还包括:设备进入状态机轮询,等待主机下发新命令。
5.提升SSD性能的前端命令处理装置,其特征在于,包括:上电初始化单元,配置单元,开启单元,提交更新单元,第一更新单元,查询单元,第二更新单元,更新触发单元,接收访问单元,及第三更新单元;
所述上电初始化单元,用于主机上电,操作系统及固件进行初始化;
所述配置单元,用于配置控制器内存缓冲区空间大小参数信息、缓冲区地址偏移参数信息及PCI基地址寄存器序号的参数信息;
所述开启单元,用于根据配置参数信息开启控制器内存缓冲区命令提交队列、命令完成队列、PRP寻址列表、及读写数据的访问功能权限;
所述提交更新单元,用于主机提交管理/输入命令至控制器内存缓冲区命令提交队列,并更新命令提交队列具体条目信息;
所述第一更新单元,用于根据具体条目信息主机更新命令提交队列门铃寄存器尾指针;
所述查询单元,用于设备对门铃寄存器的值进行更新查询;若查询到门铃寄存器的值存在更新,则设备访问本地控制器内存缓冲区命令提交队列,取回新的管理/输入命令;
所述第二更新单元,用于根据新的管理/输入命令,设备更新命令提交队列门铃寄存器头指针;
所述更新触发单元,用于更新本地控制器内存缓冲区命令完成队列条目信息及命令提交队列门铃寄存器尾指针,并触发中断;
所述接收访问单元,用于主机接收中断,进行访问命令完成队列,并取回命令完成信息;
所述第三更新单元,用于根据命令完成信息,主机更新命令完成队列门铃寄存器头指针;
其中,控制器内存缓冲区为设备NVMe控制器内存缓冲区。
6.根据权利要求5所述的提升SSD性能的前端命令处理装置,其特征在于,所述配置单元中,控制器内存缓冲区空间大小参数信息为1-2M,缓冲区地址偏移参数信息为0-100。
7.根据权利要求5所述的提升SSD性能的前端命令处理装置,其特征在于,所述更新触发单元中,中断为MSI-X中断。
8.根据权利要求5所述的提升SSD性能的前端命令处理装置,其特征在于,还包括:进入等待单元,用于设备进入状态机轮询,等待主机下发新命令。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的提升SSD性能的前端命令处理方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-4中任一项所述的提升SSD性能的前端命令处理方法。
CN202010018540.8A 2020-01-08 2020-01-08 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 Active CN111221476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010018540.8A CN111221476B (zh) 2020-01-08 2020-01-08 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010018540.8A CN111221476B (zh) 2020-01-08 2020-01-08 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111221476A CN111221476A (zh) 2020-06-02
CN111221476B true CN111221476B (zh) 2022-03-29

Family

ID=70828168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010018540.8A Active CN111221476B (zh) 2020-01-08 2020-01-08 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111221476B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880916A (zh) * 2020-07-27 2020-11-03 长沙景嘉微电子股份有限公司 Gpu中多绘制任务处理方法、装置、终端、介质及主机
CN111913666B (zh) * 2020-07-31 2022-06-07 深圳忆联信息系统有限公司 兼容不同协议Nand颗粒的方法、装置、计算机设备及存储介质
CN112256601B (zh) * 2020-10-19 2023-04-21 苏州凌云光工业智能技术有限公司 数据存取控制方法、嵌入式存储系统及嵌入式设备
CN112306804B (zh) * 2020-10-30 2023-05-23 联想(北京)有限公司 一种处理方法及处理装置
CN112463041B (zh) * 2020-11-19 2023-01-10 苏州浪潮智能科技有限公司 一种主机读写数据的处理方法及相关装置
CN112346665B (zh) * 2020-11-30 2023-05-19 杭州华澜微电子股份有限公司 基于pcie的通信方法、装置、设备、系统及存储介质
KR20220118004A (ko) * 2021-02-18 2022-08-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN113064552A (zh) * 2021-03-24 2021-07-02 山东华芯半导体有限公司 一种自主分离的NVMe PRP获取加速方法
CN113741381B (zh) * 2021-11-08 2022-02-11 西安热工研究院有限公司 Dcs监视画面工控命令下发方法、系统、设备及存储介质
CN114785714B (zh) * 2022-03-01 2023-08-22 阿里巴巴(中国)有限公司 一种报文传输时延检测方法、存储介质及设备
CN114996172B (zh) * 2022-08-01 2022-11-01 北京得瑞领新科技有限公司 基于ssd访问主机内存的方法及系统
CN115858018B (zh) * 2023-02-27 2023-05-16 珠海星云智联科技有限公司 一种嵌入式系统的自适应寄存器更新方法、设备及介质
CN116755635B (zh) * 2023-08-15 2023-11-03 苏州浪潮智能科技有限公司 一种硬盘控制器缓存系统、方法、硬盘设备及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109983449A (zh) * 2018-06-30 2019-07-05 华为技术有限公司 数据处理的方法和存储系统
CN110032332A (zh) * 2017-11-30 2019-07-19 三星电子株式会社 存储设备和包括存储设备的电子设备
CN110073323A (zh) * 2017-03-24 2019-07-30 西部数据技术公司 使用控制器存储器缓冲区进行推测性执行命令的系统和方法
CN110109626A (zh) * 2019-05-20 2019-08-09 哈尔滨工业大学 一种基于FPGA的NVMe SSD命令处理方法
CN110659122A (zh) * 2019-07-31 2020-01-07 杭州阿姆科技有限公司 一种ssd中断实现方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563367B2 (en) * 2014-08-26 2017-02-07 HGST Netherlands B.V. Latency command processing for solid state drive interface protocol
KR20180045103A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110073323A (zh) * 2017-03-24 2019-07-30 西部数据技术公司 使用控制器存储器缓冲区进行推测性执行命令的系统和方法
CN110032332A (zh) * 2017-11-30 2019-07-19 三星电子株式会社 存储设备和包括存储设备的电子设备
CN109983449A (zh) * 2018-06-30 2019-07-05 华为技术有限公司 数据处理的方法和存储系统
CN110109626A (zh) * 2019-05-20 2019-08-09 哈尔滨工业大学 一种基于FPGA的NVMe SSD命令处理方法
CN110659122A (zh) * 2019-07-31 2020-01-07 杭州阿姆科技有限公司 一种ssd中断实现方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FLIN: Enabling Fairness and Enhancing Performance in Modern NVMe Solid State Drives;Arash Tavakkol;《IEEE》;20180723;全文 *
VxWorks6.8操作系统下NVMe驱动设计;盘勇军等;《航空电子技术》;20171215;第48卷(第04期);32-37 *

Also Published As

Publication number Publication date
CN111221476A (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN111221476B (zh) 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质
US10997093B2 (en) NVME data processing method and NVME device
US10379745B2 (en) Simultaneous kernel mode and user mode access to a device using the NVMe interface
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
WO2010045028A1 (en) System and method of indirect register access
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
WO2010045029A1 (en) Indirect register access method and system
WO2020177577A1 (zh) 一种控制器加载多核固件的方法、装置及计算机设备
CN112416250A (zh) 基于NVMe的固态硬盘的命令处理方法及相关设备
CN110941395A (zh) 动态随机存取存储器、内存管理方法、系统及存储介质
US11762600B2 (en) Data processing method, apparatus, and system
CN111563052A (zh) 降低读延时的缓存方法、装置、计算机设备及存储介质
CN112559386A (zh) 提升ssd性能的方法、装置、计算机设备及存储介质
CN111124314A (zh) 映射表动态加载的ssd性能提升方法、装置、计算机设备及存储介质
CN114579480A (zh) 一种缺页处理方法、装置、系统、电子设备及存储介质
JP6944576B2 (ja) キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム
WO2020029619A1 (zh) 数据处理的方法、设备和服务器
CN110825326A (zh) 提升ssd随机读性能的方法、装置、计算机设备及存储介质
CN113220608A (zh) 一种NVMe命令处理器及其处理方法
CN116670661A (zh) 图形处理器的缓存访问方法、图形处理器及电子设备
CN114327281B (zh) 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质
CN111125715A (zh) 基于固态硬盘的tcg数据处理加速方法、装置、计算机设备及存储介质
US20190087376A1 (en) Hot-plugged pcie device configuration system
CN112732176B (zh) 基于fpga的ssd访问方法及装置、存储系统及存储介质
CN112817534B (zh) 提高ssd读写性能的方法、装置、计算机设备及存储介质

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