CN117193632A - 一种操作命令处理方法、装置、设备和存储介质 - Google Patents
一种操作命令处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117193632A CN117193632A CN202310958356.5A CN202310958356A CN117193632A CN 117193632 A CN117193632 A CN 117193632A CN 202310958356 A CN202310958356 A CN 202310958356A CN 117193632 A CN117193632 A CN 117193632A
- Authority
- CN
- China
- Prior art keywords
- operation command
- bit
- starting
- target
- ssd
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 24
- 239000007787 solid Substances 0.000 claims abstract description 10
- 230000003068 static effect Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000295 complement effect Effects 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150098958 CMD1 gene Proteins 0.000 description 1
- 101100382321 Caenorhabditis elegans cal-1 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及固态硬盘技术领域,公开了一种操作命令处理方法、装置、设备和存储介质。该方法包括:启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识;在确定启动位标识不为零时,从SSD主控的寄存器中查找得到最低位为1的启动位标识对应的位域;其中,位域用于指示待执行的目标操作命令的存储位置;通过位域,读取与目标操作命令对应的配置信息;根据配置信息,执行目标操作命令,并在执行完成时,更改启动位标识为零,直至所有操作命令的启动位标识为零。本申请实施例通过从寄存器中查找得到最低位为1的启动位标识对应的位域,来定位下一待执行的操作命令,从而实现操作命令的快速定位,减小功耗。
Description
技术领域
本申请涉及固态硬盘技术领域,尤其涉及一种操作命令处理方法、装置、设备和存储介质。
背景技术
SSD(Solid State Disk,固态硬盘)是一种永久性存储器,由于其具有传统机械硬盘不具备的快速读写,质量轻,能耗低以及体积小的优点,所以,SSD设备在市场上得到了广泛的应用。
在现有技术中,在SSD主控内部通过大量的命令包交互来实现对NAND控制器进行读写操作的功能,但是用于读写数据的多条操作命令在存储空间内不一定连续,在执行过程中通常以顺序执行的方式处理下一条操作命令。而执行完一条操作命令后寻找下一有效操作命令并执行,极限情况下如cmd0有效至cmdN有效,中间间隔了N-1个无效cmd,按顺序寻找则至少需要花费N-1个时钟周期。由此带来的延迟较大,对系统整体性能有较明显的影响。
发明内容
有鉴于此,为了解决现有技术存在的问题,本申请提供了一种操作命令处理方法、装置、设备和存储介质。
第一方面,本申请提供一种操作命令处理方法,包括:
启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识;
在确定所述启动位标识不为零时,从所述SSD主控的寄存器中查找得到最低位为1的所述启动位标识对应的位域;其中,所述位域用于指示待执行的目标操作命令的存储位置;
通过所述位域,读取与所述目标操作命令对应的配置信息;
根据所述配置信息,执行所述目标操作命令,并在执行完成时,更改所述启动位标识为零,直至所有所述操作命令的启动位标识为零。
在可选的实施方式中,在所述启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识之前,还包括:
将所有所述操作命令的初始启动位标识按位取反,得到启动位标识反码;
对所述启动位标识反码执行进位处理,得到启动位标识补码;
对所述初始启动位标识和所述启动位标识补码进行与运算后,得到启动位标识,将所有所述启动位标识组合成一个寄存器。
在可选的实施方式中,在所述启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识之前,还包括:
将所有所述操作命令对应的命令信息按照功能属性进行划分,得到静态信息和动态信息;其中,每个所述操作命令内包含多位命令信息;
将所述静态信息存储至静态随机存取存储器中,将所述动态信息存储至触发器存储器中。
在可选的实施方式中,所述读取与所述目标操作命令对应的配置信息,包括:
从静态随机存取存储器中读取所述目标操作命令对应的静态信息,以及从触发器存储器中读取所述目标操作命令对应的动态信息。
在可选的实施方式中,所述方法还包括:若所述操作命令的启动位标识为零,则结束操作命令处理流程。
在可选的实施方式中,若所述目标操作命令用于指示在闪存中读取目标数据,在所述根据所述配置信息,执行所述目标操作命令之后,还包括:
通过所述目标操作命令,从所述SSD主控的闪存中读取所述目标数据;
将所述目标数据存放于相应缓存中,并向所述SSD主控的控制芯片发送数据读取完成信息。
在可选的实施方式中,在所述将所述目标数据存放于相应缓存中,并向所述SSD主控的控制芯片发送数据读取完成信息之后,还包括:
从所述缓存中读取所述目标数据,并将所述目标数据传输至外设控制器。
第二方面,本申请提供一种操作命令处理装置,包括:
获取模块,用于启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识;
查找模块,用于在确定所述启动位标识不为零时,从所述SSD主控的寄存器中查找得到最低位为1的所述启动位标识对应的位域;其中,所述位域用于指示待执行的目标操作命令的存储位置;
读取模块,用于通过所述位域,读取与所述目标操作命令对应的配置信息;
处理模块,用于根据所述配置信息,执行所述目标操作命令,并在执行完成时,更改所述启动位标识为零,直至所有所述操作命令的启动位标识为零。
第三方面,本申请提供一种计算机设备,所述计算机设备包括固态硬盘和至少一个处理器,所述固态硬盘存储有计算机程序,所述处理器用于执行所述计算机程序以实施前述的操作命令处理方法。
第四方面,本申请提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时,实施根据前述的操作命令处理方法。
本申请实施例具有如下有益效果:
本申请实施例提供了一种操作命令处理方法,该方法包括:启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识;在确定启动位标识不为零时,从SSD主控的寄存器中查找得到最低位为1的启动位标识对应的位域;其中,位域用于指示待执行的目标操作命令的存储位置;通过位域,读取与目标操作命令对应的配置信息;根据配置信息,执行目标操作命令,并在执行完成时,更改启动位标识为零,直至所有操作命令的启动位标识为零。本申请实施例通过从SSD主控的寄存器中查找得到最低位为1的启动位标识对应的位域,来定位下一待执行的操作命令,从而实现操作命令的快速定位,减小功耗。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了SSD主控的结构示意图;
图2示出了SSD主控的第一种数据传输的过程示意图;
图3示出了SSD主控的第二种数据传输的过程示意图;
图4示出了硬件加速器的结构示意图;
图5示出了启动命令模块的结构示意图;
图6示出了操作命令的顺序执行过程示意图;
图7示出了本申请实施例中操作命令处理方法的第一个实施方式示意图;
图8示出了本申请实施例中操作命令处理方法的第二个实施方式示意图;
图9示出了本申请实施例中操作命令处理方法的第三个实施方式示意图;
图10示出了本申请实施例中操作命令处理方法的第四个实施方式示意图;
图11示出了本申请实施例中操作命令处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
SATA(串行高级技术附件):是一种计算机总线接口,用于将主机总线适配器与光驱和硬盘等大容量存储设备连接。
如图1所示,SSD主控100与闪存300(即NAND FLASH)可整合为一个SSD设备(即固态硬盘);其中,SSD主控100主要包含控制芯片110(即CPU)、前端接口控制模块120(包括物理层芯片SATA_PHY和控制端SATA_CTRL)、动态随机存取存储器(即DRAM)/静态随机存取存储器140(即SRAM)、后端接口控制模块130(即NAND_FLASH_CTRL)。CPU负责主控整体的功能运作,实现数据的读写传输;SATA_PHY、SATA_CTRL等为主控前端接口控制模块120,用于与协议规定的外部主机接口进行数据通信;DRAM/SRAM用于主控内部数据的缓存;NAND_FLASH_CTRL用于控制NAND FLASH的读写。目前主流市场的前端接口除了SATA外,还有如PCIe等类型的接口。本实施例以SATA作为前端接口进行举例说明。
如图2所示,①外设控制器200(即SATA_HOST,如电脑PC等)发送读取数据命令到SSD主控100(由前端接口控制模块120完成协议处理,数据初步解析);②前端接口控制模块120通过中断或状态信息通知控制芯片110处理读取数据命令;③控制芯片110解析后,配置后端接口控制模块130从闪存300读取对应的目标数据;④后端接口控制模块130根据控制芯片110的配置,向闪存300发送基于闪存300的同步与异步模式标准(即ONFI/Toggle IF)规定的操作命令,以便读取目标数据;⑤闪存300返回读取的目标数据;⑥后端接口控制模块130将读取的目标数据按照控制芯片110配置的存放地址,存入动态随机存取存储器/静态随机存取存储器;⑦后端接口控制模块130通知控制芯片110完成数据读取;⑧控制芯片110配置SATA_CTRL;⑨SATA_CTRL开始从动态随机存取存储器(即DRAM)/静态随机存取存储器(SRAM)140中读取数据;⑩前端接口控制模块120将读取的数据通过电缆(即SATA cable)传输给外设控制器200。进而,外设控制器200写数据到SSD主控100的过程与此同理,本实施例对此不再详述。
上述流程中前后端数据的传输完全依赖于控制芯片110,在处理大批量数据传输这类SSD主控100的主流应用场景时会大量占用控制芯片110处理时间,不利于SSD主控100进行其他操作,导致数据传输延迟较大,非常影响主控的数据传输有效带宽,使得整机产品数据读写吞吐量低、效能低下。
如图3所示,通常会在前端接口和后端接口之间设计硬件加速来卸载控制芯片110对目标数据的搬移负载。
如图4所示,ATM(即automatic transferring module)模块即为硬件加速器150。为了卸载控制芯片110对数据搬移的负载,硬件加速器150内部需保存来自于控制芯片110配置的操作命令(即cmd)。通常操作命令条数较多(几十或者几百条)。同时,一条操作命令内也包含较多配置信息(几十bit或更多),涵盖前端SATA、后端NFI、SRAM/DRAM操作、流程状态控制等内容。其中,启动命令模块151(即CMD ENTRY):用于存储控制芯片110配置的操作命令。串行输入输出接口控制模块152(即SATA IO CTRL):与前端SATA CTRL交互,控制其对数据的读写。闪存输入输出控制模块153(即NAND FLASH IO CTRL):与后端NAND CTRL交互,控制其对数据的读写。有限状态机154(即FSM):控制硬件加速器150整体运行,按启动命令模块151的相关操作命令完成数据传输。存储器控制模块155(即RAM CTRL):与SRAM/DRAMbuffer交互,对数据存储空间进行管理和维护。
如图5所示,启动命令模块151中存储的操作命令较多,以便更好的对控制芯片110负载进行卸载,每条操作命令中也包含较多的命令信息,例如一个cmd(如图示的cmd0、cmd1、cmd2、…、cmdN)包含cmd_enable、cmd_ctrl、lba_blocks_sts、map_info等等命令信息。而每条操作命令对应的启动位标识(即cmd_enable)标识当前cmd是否有效,控制芯片110在配置好该cmd时,使得cmd_enable为1,硬件加速器150执行完该cmd后,将cmd_enable置为0,表明完成该cmd的执行。对于N个cmd,每个cmd内包含M bit的命令信息,所需要的等效寄存器为M*N bit。针对这部分命令信息的存储,现有的方案有如下两种:
方案一:使用触发器存储器(即DFF)存储M*N bit信息,需要M*N bit DFF;
方案二:使用静态随机存取存储器(即SRAM)存储M*N bit信息,需要深度为N宽度为M大小的SRAM。
如图6所示,针对如何执行存储的操作命令,常用方案是按照顺序逐一执行。在当前cmd_m命令(即如图示的cmd_m process)执行完成后,按递增加1的方式寻找下一个有效的cmd(即如图示的cmd_n process),考虑两个有效的cmd之间可能存在无效的命令ENTRY,在搜索到下一个有效的cmd前(即如图示的srch nxt cmd命令),需要一定的搜索时间(即long latency)。基于此,针对上述命令信息存储的方案,存在如下缺点:
针对于上述的方案一:使用DFF存储M*N bit信息,需要M*N bit DFF;当M和N的取值较大时,所使用的DFF数量较大。考虑DFF的面积和功耗,可能导致整个主控芯片的面积开销较大,同时也带来了功耗开销大的问题。另外在后端布局绕线时,这部分DFF可能出现布线拥塞的情况,进而引入时延增加的风险。对整个主控芯片的时序收敛及PPA指标带来不小的挑战。
针对于上述的方案二:使用SRAM存储M*N bit信息,需要深度为N宽度为M大小的SRAM;使用SRAM相较于使用DFF的优点在于面积开销相对减小,但SRAM的操作相较于DFF的操作时延更大,特别是在从SRAM中读取数据时更为明显。另外,针对操作命令型的数据存放于SRAM中,可能需要频繁访问SRAM的情况出现,导致功耗开销的增加。
针对上述的按照顺序逐一执行存储的命令信息的方案,存在如下缺点:多条操作命令在存储空间内不一定连续,通常以顺序执行的方式处理下一条操作命令。而执行完一条操作命令后寻找下一有效操作命令并执行,极限情况下如cmd0有效至cmdN有效,中间间隔了N-1个无效cmd,按顺序寻找则至少需要花费N-1个时钟周期。由此带来的延迟较大,对系统整体性能有较明显的影响。
基于此,本申请实施例提供了一种操作命令处理方法,本申请实施例通过从SSD主控100的寄存器中查找得到最低位为1的启动位标识对应的位域,来定位下一待执行的操作命令,从而实现操作命令的快速定位,减小功耗。
请参阅图7,下面对该方法进行详细说明。
S10,启动SSD主控100的硬件加速器150,以获取所有操作命令的启动位标识。
S20,在确定启动位标识不为零时,从SSD主控100的寄存器中查找得到最低位为1的启动位标识对应的位域。
S30,通过位域,读取与目标操作命令对应的配置信息。
S40,根据配置信息,执行目标操作命令,并在执行完成时,更改启动位标识为零,直至所有操作命令的启动位标识为零。
在本实施例中,预先通过SSD主控100的控制芯片110配置硬件加速器150启动使能,并在启动该硬件加速器150工作时,通过该硬件加速器150的硬件来获取所有操作命令(即cmd)的启动位标识(即cmd_enable bit)。该启动位标识用于指示相应操作命令当前的状态,该启动位标识仅为一位数据(即1bit)。若该启动位标识为0,则说明该操作命令已被执行或者为无效状态,若该启动位标识为1,则说明该操作命令为待执行状态。
进而,若确定存在操作命令对应的启动位标识不为零,则从SSD主控100内的寄存器中,查找得到启动位标识最低位为1,进而该启动位标识对应的操作命令为下一个待执行的目标操作命令,确定该启动位标识对应的位域,其中,位域用于指示待执行的目标操作命令的存储位置。进一步地,若操作命令的启动位标识为零,则结束操作命令处理流程。
通过该位域读取目标操作操作命令对应的配置信息,从而执行该目标操作命令。在确定执行完该目标操作命令时,更改该目标操作命令的启动位标识为零。与此同理,循环执行上述步骤,直至所有操作命令的启动位标识为零,则说明当前不存在待执行的操作命令。
可以理解,硬件加速器150根据cmd_enable bit是否全为0来判断是否存在有效的操作命令需要执行,若cmd_enable bit全为0,则认为没有操作命令需要执行,直接结束操作命令处理流程;若cmd_enable bit不全为0,则认为存在有效的操作指令需要执行,此时通过查找最低位为1的位域来确定第一个需要执行的操作命令所处的位置。进而通过位置信息读取操作命令相关的配置信息,并根据读取的配置信息,开始执行该操作命令,当前操作命令执行完成时,回写cmd_enable bit,将当前操作命令对应的位域写为0,表示执行完当前操作命令。
作为一种可选的实施方式,如图8所示,在上述S10之前,本申请实施例还包括如下步骤:
S51,将所有操作命令的初始启动位标识按位取反,得到启动位标识反码。
S52,对启动位标识反码执行进位处理,得到启动位标识补码。
S53,对初始启动位标识和启动位标识补码进行与运算后,得到启动位标识,将所有启动位标识组合成一个寄存器。
可以理解,在计算机程序中数据都是以补码的形式储存的,其中,负数需要由原码转换为补码方式进行存储。示例的,一个正数的补码为原码自己,将计算机程序中待存储的一个数设为a,其负数形式的补码设为b,可知a+b=0。其求解方式就是先把二进制数中为0的按位取反,再加1,使得其进位,溢出为0。如6=0000 0110,-6=1111 1001+1=11111010。可见,最低位为1,而数值0在取反之后就会全部变为1,再加一,进位后,取反获取的1全部进位了,最低位的1又被进位上来了,即最低位的1保持不变。
进而通过上述逻辑,将所有操作命令的初始启动位标识按位取反后,再做进位处理(即加1),得到启动位标识补码,通过启动位标识补码与初始启动位标识进行与运算,得到该操作命令对应的启动位标识,也即是该操作命令对应供以计算机存储的启动位标识。
而对于N个cmd的cmd_enable bit按cmd的预定执行顺序集合为一个N bit位宽的寄存器,进而也可通过上述逻辑可查找得到最低位为1的bit所在的位置。
作为一种可选的实施方式,如图9所示,在上述S10之前,本申请实施例还包括如下步骤:
S61,将所有操作命令对应的命令信息按照功能属性进行划分,得到静态信息和动态信息。
S62,将静态信息存储至静态随机存取存储器中,将动态信息存储至触发器存储器中。
在本实施例中,由于每个操作命令内包含多位命令信息。进而,即可按照功能属性划分所有操作命令对应的命令信息,将该命令信息拆分存储。其中,将静态信息存储至静态随机存取存储器(即SRAM)中,将动态信息存储至触发器存储器(即DFF)中。后续在读取目标操作命令对应的配置信息时,则是从静态随机存取存储器中读取目标操作命令对应的静态信息,以及从触发器存储器中读取目标操作命令对应的动态信息。并且,从SRAM中读取出的静态信息可存储至预设的公共DFF中,方便后续对该静态信息进行处理。
具体地,将cmd的M个bit按功能属性区分为静态配置和动态配置。静态配置指在该操作命令执行过程中,不会随着执行过程变化的配置内容,如操作命令类型、LBA信息、mapping信息等。动态配置指在该操作命令执行过程中,会随着执行过程变化的配置内容,如操作命令使能、执行状态、是否有error、执行是否完成标志等。使用DFF来存储动态信息,便于硬件加速器150/控制芯片110及时处理,鉴于该部分位数较少,相较于将所有配置信息完全放置于SRAM中的方式,减少了频繁访问SRAM带来的延迟及功耗开销,从而可以有效达成性能和功耗的平衡。
进而,动态信息采用DFF存储,静态信息使用SRAM存储,再使用一组公共DFF存储当前执行cmd的静态信息,每个cmd的静态信息只在执行该cmd时需要从SRAM读出,其他时刻不涉及对SRAM的访问。由于静态信息部分配置通常较多,使用SRAM存储有利于节省面积开销,同时从功能角度减少了对SRAM的访问频率,进一步减小了功耗。后续,控制芯片110通过配置寄存器的方式写入启动命令模块151,硬件加速器150内部将写入信息区分动态信息、静态信息分别存入DFF、SRAM中。
作为一种可选的实施方式,如图10所示,若目标操作命令用于指示在闪存300中读取目标数据,进而本实施例在上述S40之后,还具体包括如下步骤:
S71,通过目标操作命令,从SSD主控100的闪存300中读取目标数据。
S72,将目标数据存放于相应缓存中,并向SSD主控100的控制芯片110发送数据读取完成信息。
S73,从缓存中读取目标数据,并将目标数据传输至外设控制器200。
在本实施例中,若是通过目标操作指令从闪存300中读取目标数据,以向外设控制器200发送该目标数据,实现从SSD主控100读取数据的操作,进而后续则是通过该目标操作指令读取相应的目标数据,并将目标数据存放于缓存中,以通过缓存将目标数据传输至外设控制器200。
与此同理,若是通过目标操作指令将目标数据写入至SSD主控100,其处理过程即为上述从SSD主控100读取数据的过程的逆过程,故在此不做赘述。
本申请实施例通过从SSD主控100的寄存器中查找得到最低位为1的启动位标识对应的位域,来定位下一待执行的操作命令,从而实现操作命令的快速定位,减小功耗,并且减小各条操作命令之间的执行延迟;进而,由于本实施例不是按照配置顺序来依次遍历查找下一待执行的操作命令,因此在配置操作命令时,不要求有效操作命令之间紧密填写,以保证控制芯片110配置的灵活性。
请参阅图11,本申请提供一种操作命令处理装置,该装置包括:
获取模块510,用于启动SSD主控100的硬件加速器150,以获取所有操作命令的启动位标识;
查找模块520,用于在确定所述启动位标识不为零时,从所述SSD主控100的寄存器中查找得到最低位为1的所述启动位标识对应的位域;其中,所述位域用于指示待执行的目标操作命令的存储位置;
读取模块530,用于通过所述位域,读取与所述目标操作命令对应的配置信息;
处理模块540,用于根据所述配置信息,执行所述目标操作命令,并在执行完成时,更改所述启动位标识为零,直至所有所述操作命令的启动位标识为零。
可以理解,上述的操作命令处理装置对应于上述实施例的操作命令处理方法;上述实施例中的任何可选项也适用于本实施例,这里不再详述。
本申请实施例还提供了一种计算机设备,该所述计算机设备包括固态硬盘和至少一个处理器,所述固态硬盘存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述实施例的操作命令处理方法。
固态硬盘可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据(比如配置信息等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存300器件、或其他易失性固态存储器件。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述实施例的操作命令处理方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行操作命令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机操作命令的组合来实现。
另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干操作命令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种操作命令处理方法,其特征在于,包括:
启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识;
在确定所述启动位标识不为零时,从所述SSD主控的寄存器中查找得到最低位为1的所述启动位标识对应的位域;其中,所述位域用于指示待执行的目标操作命令的存储位置;
通过所述位域,读取与所述目标操作命令对应的配置信息;
根据所述配置信息,执行所述目标操作命令,并在执行完成时,更改所述启动位标识为零,直至所有所述操作命令的启动位标识为零。
2.根据权利要求1所述的操作命令处理方法,其特征在于,在所述启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识之前,还包括:
将所有所述操作命令的初始启动位标识按位取反,得到启动位标识反码;
对所述启动位标识反码执行进位处理,得到启动位标识补码;
对所述初始启动位标识和所述启动位标识补码进行与运算后,得到启动位标识,将所有所述启动位标识组合成一个寄存器。
3.根据权利要求1所述的操作命令处理方法,其特征在于,在所述启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识之前,还包括:
将所有所述操作命令对应的命令信息按照功能属性进行划分,得到静态信息和动态信息;其中,每个所述操作命令内包含多位命令信息;
将所述静态信息存储至静态随机存取存储器中,将所述动态信息存储至触发器存储器中。
4.根据权利要求1-3中任一项所述的操作命令处理方法,其特征在于,所述读取与所述目标操作命令对应的配置信息,包括:
从静态随机存取存储器中读取所述目标操作命令对应的静态信息,以及从触发器存储器中读取所述目标操作命令对应的动态信息。
5.根据权利要求1-3中任一项所述的操作命令处理方法,其特征在于,所述方法还包括:若所述操作命令的启动位标识为零,则结束操作命令处理流程。
6.根据权利要求1-3中任一项所述的操作命令处理方法,其特征在于,若所述目标操作命令用于指示在闪存中读取目标数据,在所述根据所述配置信息,执行所述目标操作命令之后,还包括:
通过所述目标操作命令,从所述SSD主控的闪存中读取所述目标数据;
将所述目标数据存放于相应缓存中,并向所述SSD主控的控制芯片发送数据读取完成信息。
7.根据权利要求6所述的操作命令处理方法,其特征在于,在所述将所述目标数据存放于相应缓存中,并向所述SSD主控的控制芯片发送数据读取完成信息之后,还包括:
从所述缓存中读取所述目标数据,并将所述目标数据传输至外设控制器。
8.一种操作命令处理装置,其特征在于,包括:
获取模块,用于启动SSD主控的硬件加速器,以获取所有操作命令的启动位标识;
查找模块,用于在确定所述启动位标识不为零时,从所述SSD主控的寄存器中查找得到最低位为1的所述启动位标识对应的位域;其中,所述位域用于指示待执行的目标操作命令的存储位置;
读取模块,用于通过所述位域,读取与所述目标操作命令对应的配置信息;
处理模块,用于根据所述配置信息,执行所述目标操作命令,并在执行完成时,更改所述启动位标识为零,直至所有所述操作命令的启动位标识为零。
9.一种计算机设备,其特征在于,所述计算机设备包括固态硬盘和至少一个处理器,所述固态硬盘存储有计算机程序,所述处理器用于执行所述计算机程序以实施权利要求1-7中任一项所述的操作命令处理方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被执行时,实施根据权利要求1-7中任一项所述的操作命令处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310958356.5A CN117193632A (zh) | 2023-07-31 | 2023-07-31 | 一种操作命令处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310958356.5A CN117193632A (zh) | 2023-07-31 | 2023-07-31 | 一种操作命令处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117193632A true CN117193632A (zh) | 2023-12-08 |
Family
ID=88982602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310958356.5A Pending CN117193632A (zh) | 2023-07-31 | 2023-07-31 | 一种操作命令处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193632A (zh) |
-
2023
- 2023-07-31 CN CN202310958356.5A patent/CN117193632A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2248023B1 (en) | Extended utilization area for a memory device | |
TWI493455B (zh) | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 | |
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
US8266371B2 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
TWI715248B (zh) | 主機輸出入命令的執行裝置及方法及電腦程式產品 | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
CN111752484A (zh) | 一种ssd控制器、固态硬盘及数据写入方法 | |
CN113032293A (zh) | 缓存管理器及控制部件 | |
US11126382B2 (en) | SD card-based high-speed data storage method | |
CN110781120A (zh) | 一种axi总线主机设备跨4kb传输的实现方法 | |
CN115113799A (zh) | 主机命令的执行方法及装置 | |
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
JP2021043975A (ja) | インターフェース回路並びにメモリ装置及びその動作方法 | |
CN109471819A (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN103970512A (zh) | 多核处理器及其并行重放方法 | |
CN115048034A (zh) | 用于sgl的存储空间映射方法及其装置 | |
CN117193632A (zh) | 一种操作命令处理方法、装置、设备和存储介质 | |
US11650736B2 (en) | SGL processing acceleration method and storage device | |
US20210109674A1 (en) | Memory command queue management | |
CN109388593B (zh) | 进行动态资源管理的方法、记忆装置及记忆装置的控制器 | |
CN111913971A (zh) | 存储数据的修改方法、装置、电子设备及存储介质 | |
CN112673364A (zh) | 数据传输方法、数据传输装置、电子设备和存储介质 | |
CN113031849A (zh) | 直接内存存取单元及控制部件 | |
CN117312201B (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 |