CN114116008B - 命令队列管理方法、装置、可读存储介质及电子设备 - Google Patents
命令队列管理方法、装置、可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN114116008B CN114116008B CN202210089442.2A CN202210089442A CN114116008B CN 114116008 B CN114116008 B CN 114116008B CN 202210089442 A CN202210089442 A CN 202210089442A CN 114116008 B CN114116008 B CN 114116008B
- Authority
- CN
- China
- Prior art keywords
- task
- command
- queue
- command queue
- descriptor
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种命令队列管理方法、装置、可读存储介质及电子设备,根据接收的数据读写命令获取第一命令队列,并从第一命令队列中确定目标任务描述符;根据目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述目标任务描述符对应的状态;实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述目标任务描述符对应的状态,实现了每一任务的实时管理,并实现了任务状态的实时更新,通过实时获取队列状态寄存器信息,能够使主机端队列与eMMC端队列的任务状态保持一致,从而在eMMC5.0平台即可实现命令队列管理。
Description
技术领域
本发明涉及存储器技术领域,尤其涉及一种命令队列管理方法、装置、可读存储介质及电子设备。
背景技术
Command Queue(命令队列,CMDQ)是eMMC5.1相比于eMMC5.0增加的新特性,目的是提高eMMC的性能。原本eMMC只能接收一个命令,在应答、数据传输和闪存操作等一系列动作完成之后才能接收下一个命令。CMDQ则允许eMMC维护一个队列,主机可以发送多达32个任务到eMMC队列,eMMC可以从内部优化任务执行的顺序和算法。另外,上一笔数据闪存操作的过程中,下一笔任务可以同时往队列里输送。命令队列的管理工作由集成在CPU芯片中的硬件模块Command Queue Engine(命令队列引擎,CQE)完成。
因此,从AP(CPU)端来看,只有硬件上包含CQE的开发平台才能支持CMDQ功能,即eMMC5.1平台;对于已经拥有大量成熟eMMC5.0测试开发板的企业,当产品已经升级到5.1版本时,为了适配新特性,就只能重新购买5.1的新平台,这需要花费大量的财力、人力、物力。
发明内容
本发明所要解决的技术问题是:提供一种命令队列管理方法、装置、可读存储介质及电子设备,能够在eMMC5.0平台实现命令队列管理。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种命令队列管理方法,包括:
根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符;
根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述目标任务描述符对应的状态;
实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述目标任务描述符对应的状态。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种命令队列管理装置,包括:
任务描述符确定模块,用于根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态;
指令发送模块,用于根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态;
数据获取模块,用于实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
命令执行模块,用于根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种命令队列管理方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种命令队列管理方法中的各个步骤。
本发明的有益效果在于:根据接收的数据读写命令获取第一命令队列,该命令队列中包括多个任务描述符,从中确定目标任务描述符,目标任务描述符中包含了该数据读写命令的数据读写信息,根据其生成命令队列管理指令发送至eMMC,发送后更新任务当前状态,eMMC会根据指令将该目标任务描述符加入eMMC队列,实时获取eMMC发送的队列状态寄存器信息,根据队列状态寄存器信息发送与目标任务描述符对应的命令执行指令至eMMC,并更新任务当前状态,实现了命令队列中每一个任务的实时管理,并实现了任务状态的实时更新,且通过实时获取队列状态寄存器信息,能够使主机端队列与eMMC端队列的任务状态保持一致,从而在eMMC5.0平台即可实现命令队列管理。
附图说明
图1为本发明实施例的一种命令队列管理方法的步骤流程图;
图2为本发明实施例的一种命令队列管理装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的命令队列管理方法中的单个任务执行流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种命令队列管理方法,包括:
根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态;
根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态;
实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态。
从上述描述可知,本发明的有益效果在于:根据接收的数据读写命令获取第一命令队列,该命令队列中包括多个任务描述符,从中确定目标任务描述符,目标任务描述符中包含了该数据读写命令的数据读写信息,根据其生成命令队列管理指令发送至eMMC,发送后更新任务当前状态,eMMC会根据指令将该目标任务描述符加入eMMC队列,实时获取eMMC发送的队列状态寄存器信息,根据队列状态寄存器信息发送与目标任务描述符对应的命令执行指令至eMMC,并更新任务当前状态,实现了命令队列中每一个任务的实时管理,并实现了任务状态的实时更新,且通过实时获取队列状态寄存器信息,能够使主机端队列与eMMC端队列的任务状态保持一致,从而在eMMC5.0平台即可实现命令队列管理。
进一步地,所述任务描述符还包括任务编号;
所述任务当前状态包括空闲状态;
所述从所述第一命令队列中确定目标任务描述符包括:
从所述第一命令队列中按照所述任务编号顺序判断所述任务当前状态是否为所述空闲状态,若是,则将所述任务编号对应的所述任务描述符确定为目标任务描述符。
由上述描述可知,命令队列中包括多个任务描述符,当接收到数据读写任务时,需要从命令队列中查找一个空闲位置,因此,若第一命令队列中按照任务编号顺序判断任务当前状态为空闲状态,则将任务编号对应的任务描述符确定为目标任务描述符,以此完成队列中的空位查找。
进一步地,所述数据读写命令包括数据读写信息;
所述任务描述符还包括基本信息;
所述根据所述目标任务描述符生成命令队列管理指令包括:
根据所述数据读写信息确定所述目标任务描述符的所述基本信息,得到确定后的目标任务描述符;
根据所述确定后的目标任务描述符生成命令队列管理指令。
由上述描述可知,根据数据读写信息确定目标任务描述符的基本信息,包括读写数据地址、读写数据块数、数据方向、任务优先级和数据缓存地址,根据确定后的目标任务描述符生成命令队列管理指令,该命令队列管理指令中就会包含上述基本信息,后续可直接执行该任务,从而实现了命令队列中的任务执行。
进一步地,所述任务当前状态还包括等待执行状态;
所述发送后更新所述任务当前状态包括:
发送后将所述任务当前状态更新为所述等待执行状态。
由上述描述可知,由于将命令队列管理指令发送给eMMC后,eMMC端队列会将该任务放在队列之中,等待执行,此时,更新任务当前状态,实现了任务状态的实时更新,进而保持主机端队列与eMMC端队列的任务状态的一致。
进一步地,所述根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC包括:
判断所述队列状态寄存器信息中是否存在第一预设值,若是,则获取所述第一预设值对应的位置;
根据所述位置确定与所述位置对应的所述任务编号;
确定与所述任务编号对应的所述目标任务描述符,并发送所述目标任务描述符对应的命令执行指令至所述eMMC。
由上述描述可知,通过判断队列状态寄存器信息中是否存在第一预设值,若是,则获取第一预设值对应的位置,确定与该位置对应的任务编号,确定与任务编号对应的目标任务描述符,并发送目标任务描述符对应的命令执行指令至eMMC,通过队列状态寄存器信息能够判断eMMC端队列中的任务是否已就绪,若已就绪则说明可以执行该任务,即发送目标任务描述符对应的命令执行指令至eMMC,从而实现任务执行。
进一步地,所述任务当前状态还包括正在执行状态;
所述根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态中的所述更新所述任务当前状态包括:
将所述任务当前状态更新为所述正在执行状态。
由上述描述可知,发送命令执行指令的同时将任务当前状态更新为正在执行状态,确保主机端队列与eMMC端队列的任务状态的一致,从而在eMMC5.0平台实现命令队列的管理工作。
进一步地,所述根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态之后包括:
实时获取所述eMMC发送的与所述第一命令队列对应的所述队列状态寄存器信息;
判断所述队列状态寄存器信息中所述位置对应的值是否为第二预设值,若是,则将所述任务当前状态更新为所述空闲状态。
由上述描述可知,后续持续获取eMMC发送的队列状态寄存器信息,判断队列状态寄存器信息中所述位置对应的值是否为第二预设值,若是,则说明目标任务已经执行完成,因此将任务当前状态更新为空闲状态,该任务描述符即可继续服务于新的读写任务了,从而实现命令队列的及时释放。
请参照图2,本发明另一实施例提供了一种命令队列管理装置,包括:
任务描述符确定模块,用于根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态;
指令发送模块,用于根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态;
数据获取模块,用于实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
命令执行模块,用于根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种命令队列管理方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种命令队列管理方法中的各个步骤。
本发明上述的一种命令队列管理方法、装置、可读存储介质及电子设备能够适用于eMMC5.0平台,以下通过具体实施方式进行说明:
实施例一
请参照图1和图4,本实施例的一种命令队列管理方法,包括:
在eMMC5.0平台配置eMMC端的队列状态寄存器(Queue Status Register,QSR),即QSR = 0x00000000(十六进制),一共有32个bit,从bit0-bit31分别代表task_0到task_31的任务是否处于已经可以执行的状态,是为1,否为0;
所述S1之前包括:
S0、初始化第一命令队列和全局变量;
其中,所述第一命令队列为主机端的命令队列,用一个结构体数组表示,所述第一命令队列task[32]中一共有32个任务,每个任务都用一个结构体包含任务相关信息,即任务描述符,所述任务描述符还包括任务编号(task_id);
具体的,如图4所示,使用init_task()函数将task_id按照任务在task[32]中的排序分配依次0-31,将status初始化为空闲(FREE)状态,并将全局变量current_queue_depth初始化至0,表示当前第二命令队列(即eMMC端的命令队列)中的任务数是0;
S1、根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态(status),具体包括:
S11、根据接收的数据读写命令获取第一命令队列;
其中,所述数据读写命令包括数据读写信息;所述任务当前状态包括空闲(FREE)状态、等待执行(TASK_TO_EXECUTE)状态和正在执行(ONGOING)状态;所述任务描述符还包括基本信息,所述基本信息包括任务优先级(priority)、数据方向(dd)、读写数据地址(address)、读写数据块数(cnt)和指向数据缓存地址(*buffer);所述任务优先级(priority)为1表示优先级高,0表示优先级低,对于优先级高的任务,理论上eMMC应该优先执行;所述数据方向(dd)为0表示写操作,1表示读操作;由于eMMC以LBA(512byte)为寻址单位,所述读写数据地址(address)最大不能超过eMMC容量;所述读写数据块数(cnt)以LBA(512byte)为单位;当是数据写入命令时,所述指向数据缓存地址(*buffer)表示取数据的地址,当是数据读取命令时,所述指向数据缓存地址(*buffer)表示数据即将存放的地址;
S12、从所述第一命令队列中按照所述任务编号顺序判断所述任务当前状态是否为所述空闲状态,若是,则执行S13;若否,则继续按照任务编号顺序获取下一任务;
比如,从task[32]中按照task_id依次遍历task_0到task_31,假设遍历到task_2时,task_2的status为FREE状态,则执行S13;
S13、将所述任务编号对应的所述任务描述符确定为目标任务描述符;
具体的,将task_id对应的任务描述符确定为目标任务描述符,即立即返回task_id,比如task_2对应的任务描述符为目标任务描述符,则返回2;
S2、根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态,具体包括:
S21、根据所述数据读写信息确定所述目标任务描述符的所述基本信息,得到确定后的目标任务描述符;
具体的,根据数据读写信息确定目标任务描述符的priority、dd、address、cnt和*buffer,得到确定后的目标任务描述符;
S22、根据所述确定后的目标任务描述符生成命令队列管理指令;
具体的,如图4所示,使用queue_task函数根据确定后的目标任务描述符生成命令队列管理指令,即标准的CMDQ命令:
(1)CMD44-QUEUED_TASK_PARAMS,其中携带dd、cnt、priority和task_id;
(2)CMD45-QUEUED_TASK_ADDRESS,其中携带address;
S23、发送所述命令队列管理指令至eMMC;
具体的,主机端发送命令队列管理指令至eMMC,eMMC接收到CMD44+CMD45后,会将该目标任务描述符对应的任务放在第二命令队列中;
S24、发送后更新所述任务当前状态;
具体的,发送后将所述任务当前状态更新为所述等待执行状态,即主机端将该目标任务描述符中的status更新为TASK_TO_EXECUTE状态;
在一种可选的实施方式中,还包括:更新所述全局变量;
具体的,主机端将current_queue_depth增加1,表示第二命令队列中存在一个任务;
S3、实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
具体的,如图4所示,使用QSR_query函数持续向eMMC查询队列状态寄存器(QSR)信息,实时获取eMMC发送的与第一命令队列对应的QSR信息;
S4、根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态,具体包括:
S41、判断所述队列状态寄存器信息中是否存在第一预设值,若是,则执行S42;若否,则返回执行S3;
其中,所述第一预设值为1;
S42、获取所述第一预设值对应的位置;
S43、根据所述位置确定与所述位置对应的所述任务编号;
比如,QSR信息为0x00000002,转换为二进制对应32个bit,即 0b0000 0000 00000000 0000 0000 0000 0010,可以看到,第二个bit为1,其余bit为0,根据第二个bit的位置2进而确定task_2已经ready(就绪)的结论,即返回数值2;
S44、确定与所述任务编号对应的所述目标任务描述符,并发送所述目标任务描述符对应的命令执行指令至所述eMMC;
比如,如图4所示,根据QSR_query函数返回的数值2,可以确定与任务编号task_2对应的目标任务描述符,并调用execute_task函数发送该目标任务描述符对应的命令执行指令至eMMC,该execute_task函数的参数中只需要携带task_id就可以,即task_2;
其中,命令执行指令包括:
CMD46-EXECUTE_READ_TASK,表示执行队列中的读任务,携带task_id;
CMD47-EXECUTE_WRITE_TASK,表示执行队列中的写任务,携带task_id;
假设task_2的dd为write(写),则发送CMD47,并携带参数task_2,为read(读),则发送CMD46,并携带参数task_2;
S45、更新所述任务当前状态;
具体的,将所述任务当前状态更新为所述正在执行状态,即将status更新为ONGOING状态,比如,将task_2的status更新为ONGOING状态;
所述S4之后包括:
S5、实时获取所述eMMC发送的与所述第一命令队列对应的所述队列状态寄存器信息;
具体的,如图4所示,通过调用finish_task函数实时获取eMMC发送的与第一命令队列对应的QSR信息;
S6、判断所述队列状态寄存器信息中所述位置对应的值是否为第二预设值,若是,则执行S7;若否,则返回执行S5;
其中,所述第二预设值为0;
比如,如上述QSR信息由0x00000002变为0x00000000,转换为二进制后判断得到位置2对应的值变为0,这时就可以认为task_2已经完成了;
S7、将所述任务当前状态更新为所述空闲状态;
具体的,将status更新为FREE状态,比如,将task_2的status更新为FREE状态。
实施例二
请参照图2,一种命令队列管理装置,包括:
任务描述符确定模块,用于根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态;
指令发送模块,用于根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态;
数据获取模块,用于实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
命令执行模块,用于根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态。
实施例三
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一中命令队列管理方法的各个步骤。
实施例四
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中命令队列管理方法的各个步骤。
综上所述,本发明提供的一种命令队列管理方法、装置、可读存储介质及电子设备,根据接收的数据读写命令获取第一命令队列,并从第一命令队列中确定目标任务描述符;根据目标任务描述符生成命令队列管理指令,并发送命令队列管理指令至eMMC,发送后将任务当前状态更新为等待执行状态;实时获取eMMC发送的与第一命令队列对应的队列状态寄存器信息;根据队列状态寄存器信息发送与目标任务描述符对应的命令执行指令至eMMC,并将任务当前状态更新为正在执行状态,在命令执行之后,实时获取eMMC发送的队列状态寄存器信息,根据队列状态寄存器信息将任务当前状态更新为空闲状态,该任务描述符即可继续服务于新的读写任务了,确保了命令队列的及时释放,实现了命令队列中每一个任务的实时管理,并实现了任务状态的实时更新,且通过实时获取队列状态寄存器信息,能够使主机端队列与eMMC端队列的任务状态保持一致,从而在eMMC5.0平台即可实现命令队列管理。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种命令队列管理方法,其特征在于,包括:
根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态;
根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态;
实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态;
所述第一命令队列为主机端的命令队列;
所述任务描述符还包括任务编号;
所述任务当前状态包括空闲状态;
所述从所述第一命令队列中确定目标任务描述符包括:
从所述第一命令队列中按照所述任务编号顺序判断所述任务当前状态是否为所述空闲状态,若是,则将所述任务编号对应的所述任务描述符确定为目标任务描述符;
所述根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC包括:
判断所述队列状态寄存器信息中是否存在第一预设值,若是,则获取所述第一预设值对应的位置;
根据所述位置确定与所述位置对应的所述任务编号;
确定与所述任务编号对应的所述目标任务描述符,并发送所述目标任务描述符对应的命令执行指令至所述eMMC。
2.根据权利要求1所述的一种命令队列管理方法,其特征在于,所述数据读写命令包括数据读写信息;
所述任务描述符还包括基本信息;
所述根据所述目标任务描述符生成命令队列管理指令包括:
根据所述数据读写信息确定所述目标任务描述符的所述基本信息,得到确定后的目标任务描述符;
根据所述确定后的目标任务描述符生成命令队列管理指令。
3.根据权利要求1所述的一种命令队列管理方法,其特征在于,所述任务当前状态还包括等待执行状态;
所述发送后更新所述任务当前状态包括:
发送后将所述任务当前状态更新为所述等待执行状态。
4.根据权利要求1所述的一种命令队列管理方法,其特征在于,所述当前任务状态还包括正在执行状态;
所述更新所述任务当前状态包括:
将所述任务当前状态更新为所述正在执行状态。
5.根据权利要求1所述的一种命令队列管理方法,其特征在于,所述根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态之后包括:
实时获取所述eMMC发送的与所述第一命令队列对应的所述队列状态寄存器信息;
判断所述队列状态寄存器信息中所述位置对应的值是否为第二预设值,若是,则将所述任务当前状态更新为所述空闲状态。
6.一种命令队列管理装置,其特征在于,包括:
任务描述符确定模块,用于根据接收的数据读写命令获取第一命令队列,并从所述第一命令队列中确定目标任务描述符,所述任务描述符包括任务当前状态;
指令发送模块,用于根据所述目标任务描述符生成命令队列管理指令,并发送所述命令队列管理指令至eMMC,发送后更新所述任务当前状态;
数据获取模块,用于实时获取所述eMMC发送的与所述第一命令队列对应的队列状态寄存器信息;
命令执行模块,用于根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC,并更新所述任务当前状态;
所述第一命令队列为主机端的命令队列;
所述任务描述符还包括任务编号;
所述任务当前状态包括空闲状态;
所述从所述第一命令队列中确定目标任务描述符包括:
从所述第一命令队列中按照所述任务编号顺序判断所述任务当前状态是否为所述空闲状态,若是,则将所述任务编号对应的所述任务描述符确定为目标任务描述符;
所述根据所述队列状态寄存器信息发送与所述目标任务描述符对应的命令执行指令至所述eMMC包括:
判断所述队列状态寄存器信息中是否存在第一预设值,若是,则获取所述第一预设值对应的位置;
根据所述位置确定与所述位置对应的所述任务编号;
确定与所述任务编号对应的所述目标任务描述符,并发送所述目标任务描述符对应的命令执行指令至所述eMMC。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的一种命令队列管理方法中的各个步骤。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的一种命令队列管理方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089442.2A CN114116008B (zh) | 2022-01-26 | 2022-01-26 | 命令队列管理方法、装置、可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089442.2A CN114116008B (zh) | 2022-01-26 | 2022-01-26 | 命令队列管理方法、装置、可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114116008A CN114116008A (zh) | 2022-03-01 |
CN114116008B true CN114116008B (zh) | 2022-05-27 |
Family
ID=80361410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210089442.2A Active CN114116008B (zh) | 2022-01-26 | 2022-01-26 | 命令队列管理方法、装置、可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116008B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919487A (zh) * | 2015-12-25 | 2017-07-04 | 北京忆芯科技有限公司 | NVMe门铃处理方法及其装置 |
CN107729140A (zh) * | 2017-09-22 | 2018-02-23 | 华南理工大学 | 一种并行实现多个eMMC主机接口命令排队功能的装置及方法 |
CN111722809A (zh) * | 2014-02-14 | 2020-09-29 | 美光科技公司 | 用于命令排队的设备和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519440B2 (en) * | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
KR20160118836A (ko) * | 2015-04-03 | 2016-10-12 | 에스케이하이닉스 주식회사 | 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법 |
KR20200057331A (ko) * | 2018-11-16 | 2020-05-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
-
2022
- 2022-01-26 CN CN202210089442.2A patent/CN114116008B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111722809A (zh) * | 2014-02-14 | 2020-09-29 | 美光科技公司 | 用于命令排队的设备和方法 |
CN106919487A (zh) * | 2015-12-25 | 2017-07-04 | 北京忆芯科技有限公司 | NVMe门铃处理方法及其装置 |
CN107729140A (zh) * | 2017-09-22 | 2018-02-23 | 华南理工大学 | 一种并行实现多个eMMC主机接口命令排队功能的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114116008A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260136B (zh) | 数据读写方法及分布式存储系统 | |
CN101784993B (zh) | 使用闪存作为存储器的设备及其操作方法 | |
KR102028252B1 (ko) | 자율 메모리 아키텍처 | |
CN109597818A (zh) | 数据更新方法、装置、存储介质和设备 | |
US10025533B2 (en) | Logical block addresses used for executing host commands | |
US20230384979A1 (en) | Data processing method, apparatus, and system | |
CN110618883B (zh) | 一种用于共享内存链表的方法、装置、设备及存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN114116008B (zh) | 命令队列管理方法、装置、可读存储介质及电子设备 | |
CN109144423B (zh) | 存储器坏块管理方法、装置及闪速存储器 | |
CN103902230A (zh) | 一种数据处理方法、设备和系统 | |
CN113778911B (zh) | L2p数据缓存方法、装置、可读存储介质及电子设备 | |
KR100404374B1 (ko) | 캐시 변수의 자동 갱신을 실행하는 방법 및 장치 | |
CN112860595B (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
KR20230117692A (ko) | 하이브리드 데이터베이스 가속 장치, 시스템 및 방법 | |
CN111651124B (zh) | Ssd映射表多核分区并行重建方法、装置、设备及介质 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN112764897A (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN108733678B (zh) | 一种数据搜索的方法、装置和相关设备 | |
CN117707991B (zh) | 一种数据读写方法、系统、设备及存储介质 | |
US20230046335A1 (en) | Host, storage system including the host, and operating method of the host | |
CN111857580B (zh) | 一种分布式存储系统的相同写方法和装置 | |
CN107436918A (zh) | 数据库实现方法、装置和设备 | |
CN114968357A (zh) | 生成用于多种存储设备版本的操作命令的方法与设备 | |
CN117991994A (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 |