CN114968858B - 一种命令队列管理方法、系统、装置及存储介质 - Google Patents
一种命令队列管理方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN114968858B CN114968858B CN202210838621.1A CN202210838621A CN114968858B CN 114968858 B CN114968858 B CN 114968858B CN 202210838621 A CN202210838621 A CN 202210838621A CN 114968858 B CN114968858 B CN 114968858B
- Authority
- CN
- China
- Prior art keywords
- command
- command queue
- queue
- processed
- priority
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种命令队列管理方法、系统、装置及存储介质,命令队列管理方法通过判断待处理命令的命令类型,将读命令放入第一命令队列,将写命令放入第二命令队列,实现了待处理命令的分类和聚集,并根据预设的优先级策略将第一命令队列和第二命令队列中的所有命令转移到第三命令队列中依次执行,使得存储器设备能够连续执行相同命令类型的命令,无需重复查询第三命令队列,从而使得存储器设备高效发挥内部闪存的性能,提高了命令处理的效率;由于在处理第三命令队列的命令时,第一命令队列和第二命令队列可同步接收新的待处理命令,进一步提高了命令处理的效率。本发明可广泛应用于计算机技术领域。
Description
技术领域
本申请涉及计算机技术领域,尤其是一种命令队列管理方法、系统、装置及存储介质。
背景技术
在传统的计算机架构中,主机与嵌入式存储器设备之间采用同步命令进行通信:主机向存储器设备发送命令,待存储器设备接收到命令并返回响应后,与存储器设备进行对应命令的数据交互。在上一条命令的数据交互完成后,同步命令机制才允许主机向存储器设备发起新的命令。这种同步命令机制使得主机与存储器设备相互等待,限制了通信总线的带宽利用率,降低了存储器设备的性能。因此,命令队列(Command Queue)功能被提出。
命令队列允许主机与存储器设备之间采用异步命令进行通信。主机可以一次向存储器设备发送多个命令请求,存储器设备对接收到的多个命令进行管理,并以最优的方案对命令进行排序,随后主机向存储器设备查询获取已就绪的命令并进行数据交互。在数据交互过程中,存储器设备可提前准备下一命令的数据,从而提升了性能和效率。然而,现有的命令队列管理普遍采用单队列的方式进行管理,需要存储器设备依次处理队列中的命令。对于读写命令交错的命令队列,存储器设备无法高效地发挥存储器内部闪存的性能;并且,若要高效发挥闪存性能,存储器设备需要在执行命令前先查询命令队列,从而带来了重复开销,降低了命令处理效率。
发明内容
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本发明实施例的一个目的在于提供一种命令队列管理方法、系统、装置及存储介质,提高了存储器设备管理命令队列的性能和处理命令的效率。
为了达到上述技术目的,本发明实施例所采取的技术方案包括:
一方面,本发明实施例提供了一种命令队列管理方法,包括以下步骤:
响应于接收到待处理命令,判断所述待处理命令的命令类型;
若所述命令类型为读命令,将所述待处理命令放入第一命令队列,所述第一命令队列为用于缓存读命令的队列;
若所述命令类型为写命令,将所述待处理命令放入第二命令队列,所述第二命令队列为用于缓存写命令的队列;
判断第三命令队列是否为空,所述第三命令队列为正在处理的命令队列;
若是,根据预设的优先级策略,将所述第一命令队列中的所有命令或者所述第二命令队列中的所有命令转移到所述第三命令队列,并返回判断第三命令队列是否为空这一步骤;
若否,依次处理所述第三命令队列中的命令,直至所述第三命令队列为空,并返回判断第三命令队列是否为空这一步骤。
本发明实施例的一种命令队列管理方法,通过判断待处理命令的命令类型,将读命令放入第一命令队列,将写命令放入第二命令队列,实现了待处理命令的分类和聚集,并根据预设的优先级策略将第一命令队列和第二命令队列中的所有命令转移到第三命令队列中依次执行,使得存储器设备能够连续执行相同命令类型的命令,无需重复查询第三命令队列,从而使得存储器设备高效发挥内部闪存的性能,提高了命令处理的效率;由于在处理第三命令队列的命令时,第一命令队列和第二命令队列可同步接收新的待处理命令,进一步提高了命令处理的效率。
另外,根据本发明上述实施例的一种命令队列管理方法,还可以具有以下附加的技术特征:
进一步地,本发明实施例的一种命令队列管理方法中,所述待处理命令中包括优先级标识;
所述若所述命令类型为读命令,将所述待处理命令放入第一命令队列,包括:
根据所述优先级标识判断所述待处理命令的优先级;
若所述优先级为高优先级,将所述待处理命令放入所述第一命令队列的头部;
若所述优先级为低优先级,将所述待处理命令放入所述第一命令队列的尾部。
进一步地,在本发明的一个实施例中,所述若所述命令类型为写命令,将所述待处理命令放入第二命令队列,包括:
根据所述优先级标识判断所述待处理命令的优先级;
若所述优先级为高优先级,将所述待处理命令放入所述第二命令队列的头部;
若所述优先级为低优先级,将所述待处理命令放入所述第二命令队列的尾部。
进一步地,在本发明的一个实施例中,所述根据预设的优先级策略,将所述第一命令队列中的所有命令或者所述第二命令队列中的所有命令转移到所述第三命令队列,包括:
确认所述第一命令队列中存在高优先级的命令,将所述第一命令队列中的所有命令转移到所述第三命令队列;
确认所述第一命令队列中不存在高优先级的命令,且所述第二命令队列中存在高优先级的命令,将所述第二命令队列中的所有命令转移到所述第三命令队列;
确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列非空,将所述第一命令队列中的所有命令转移到所述第三命令队列;
确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列为空,所述第二命令队列非空,将所述第二命令队列中的所有命令转移到所述第三命令队列。
另一方面,本发明实施例提出了一种命令队列管理系统,包括:
第一判断模块,用于响应于接收到待处理命令,判断所述待处理命令的命令类型;
第一缓存模块,用于若所述命令类型为读命令,将所述待处理命令放入第一命令队列,所述第一命令队列为用于缓存读命令的队列;
第二缓存模块,用于若所述命令类型为写命令,将所述待处理命令放入第二命令队列,所述第二命令队列为用于缓存写命令的队列;
判断模块,用于判断第三命令队列是否为空,所述第三命令队列为正在处理的命令队列;
转移模块,用于若是,根据预设的优先级策略,将所述第一命令队列中的所有命令或者所述第二命令队列中的所有命令转移到所述第三命令队列,并返回判断模块;
命令处理模块,用于若否,依次处理所述第三命令队列中的命令,直至所述第三命令队列为空,并返回判断模块。
进一步地,在本发明的一个实施例中,所述待处理命令中包括优先级标识;
所述第一缓存模块包括:
第二判断模块,用于根据所述优先级标识判断所述待处理命令的优先级;
第三缓存模块,用于若所述优先级为高优先级,将所述待处理命令放入所述第一命令队列的头部;
第四缓存模块,用于若所述优先级为低优先级,将所述待处理命令放入所述第一命令队列的尾部。
进一步地,在本发明的一个实施例中,所述第二缓存模块包括:
第三判断模块,用于根据所述优先级标识判断所述待处理命令的优先级;
第五缓存模块,用于若所述优先级为高优先级,将所述待处理命令放入所述第二命令队列的头部;
第六缓存模块,用于若所述优先级为低优先级,将所述待处理命令放入所述第二命令队列的尾部。
进一步地,在本发明的一个实施例中,所述转移模块包括:
第一确认模块,用于确认所述第一命令队列中存在高优先级的命令,将所述第一命令队列中的所有命令转移到所述第三命令队列;
第二确认模块,用于确认所述第一命令队列中不存在高优先级的命令,且所述第二命令队列中存在高优先级的命令,将所述第二命令队列中的所有命令转移到所述第三命令队列;
第三确认模块,用于确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列非空,将所述第一命令队列中的所有命令转移到所述第三命令队列;
第四确认模块,用于确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列为空,所述第二命令队列非空,将所述第二命令队列中的所有命令转移到所述第三命令队列。
另一方面,本发明实施例提供了一种命令队列管理装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现所述的一种命令队列管理方法。
另一方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现所述的一种命令队列管理方法。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到:
本发明实施例通过判断待处理命令的命令类型,将读命令放入第一命令队列,将写命令放入第二命令队列,实现了待处理命令的分类和聚集,并根据预设的优先级策略将第一命令队列和第二命令队列中的所有命令转移到第三命令队列中依次执行,使得存储器设备能够连续执行相同命令类型的命令,无需重复查询第三命令队列,从而使得存储器设备高效发挥内部闪存的性能,提高了命令处理的效率;由于在处理第三命令队列的命令时,第一命令队列和第二命令队列可同步接收新的待处理命令,进一步提高了命令处理的效率。
附图说明
为了更清楚地说明本申请实施例或者现有技术中的技术方案,下面对本申请实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本申请的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为本发明一种命令队列管理方法具体实施例的流程示意图;
图2为本发明一种命令队列管理方法具体实施例的模型示意图;
图3为本发明一种命令队列管理系统具体实施例的结构示意图;
图4为本发明一种命令队列管理装置具体实施例的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
命令队列允许主机与存储器设备之间采用异步命令进行通信。主机可以一次向存储器设备发送多个命令请求,存储器设备对接收到的多个命令进行管理,并以最优的方案对命令进行排序,随后主机向存储器设备查询获取已就绪的命令并进行数据交互。在数据交互过程中,存储器设备可提前准备下一命令的数据,从而提升了性能和效率。然而,现有的命令队列管理普遍采用单队列的方式进行管理,需要存储器设备依次处理队列中的命令。对于读写命令交错的命令队列,存储器设备无法高效地发挥存储器内部闪存的性能;并且,若要高效发挥闪存性能,存储器设备需要在执行命令前先查询命令队列,从而带来了重复开销,降低了命令处理效率。为此,本发明提出了一种命令队列管理方法、系统、装置及存储介质,通过判断待处理命令的命令类型,将读命令放入第一命令队列,将写命令放入第二命令队列,实现了待处理命令的分类和聚集,并根据预设的优先级策略将第一命令队列和第二命令队列中的所有命令转移到第三命令队列中依次执行,使得存储器设备能够连续执行相同命令类型的命令,无需重复查询第三命令队列,从而使得存储器设备高效发挥内部闪存的性能,提高了命令处理的效率;由于在处理第三命令队列的命令时,第一命令队列和第二命令队列可同步接收新的待处理命令,进一步提高了命令处理的效率。
下面参照附图详细描述根据本发明实施例提出的一种命令队列管理方法、系统、装置及存储介质,首先将参照附图描述根据本发明实施例提出的一种命令队列管理方法。
参照图1和图2,本发明实施例中提供一种命令队列管理方法,本发明实施例中的一种命令队列管理方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件等。终端可以是平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。本发明实施例中的一种命令队列管理方法主要包括以下步骤:
S101、响应于接收到待处理命令,判断待处理命令的命令类型;
其中,待处理命令的命令类型包括读命令和写命令。
S102、若命令类型为读命令,将待处理命令放入第一命令队列;
其中,第一命令队列为用于缓存读命令的队列。
在本发明的实施例中,待处理命令中包括优先级标识。在将待处理命令放入第一命令队列时需要进行优先级排序。
S102可以进一步划分为以下步骤S1021-S1023:
步骤S1021、根据优先级标识判断待处理命令的优先级;
可选地,优先级标识由发送待处理命令的主机(Host)设定。
步骤S1022、若优先级为高优先级,将待处理命令放入第一命令队列的头部;
步骤S1023、若优先级为低优先级,将待处理命令放入第一命令队列的尾部。
可以理解的是,通过步骤S1021-S1023实现了对读命令的集中缓存,并根据读命令的优先级进行排序,将高优先级的读命令放在第一命令队列的头部,将低优先级的读命令放在第一命令队列的尾部,使得后续步骤中读命令按照优先级顺序执行。
S103、若命令类型为写命令,将待处理命令放入第二命令队列;
其中,第二命令队列为用于缓存写命令的队列。
在本发明的实施例中,在将待处理命令放入第二命令队列时需要进行优先级排序。
S103可以进一步划分为以下步骤S1031-S1033:
步骤S1031、根据优先级标识判断待处理命令的优先级;
步骤S1032、若优先级为高优先级,将待处理命令放入第二命令队列的头部;
步骤S1033、若优先级为低优先级,将待处理命令放入第二命令队列的尾部。
可以理解的是,通过步骤S1031-S1033实现了对写命令的集中缓存,并根据写命令的优先级进行排序,将高优先级的写命令放在第一命令队列的头部,将低优先级的写命令放在第一命令队列的尾部,使得后续步骤中写命令按照优先级顺序执行。
S104、判断第三命令队列是否为空;
其中,第三命令队列为正在处理的命令队列。
S105、若是,根据预设的优先级策略,将第一命令队列中的所有命令或者第二命令队列中的所有命令转移到第三命令队列,并返回步骤S104;
在本发明的实施例中,当第三命令队列中为空时,即第三命令队列中不存在命令时,根据预设的优先级策略将第一命令队列中的所有命令(读命令)或者第二命令队列中的所有命令(写命令)转移到第三命令队列。
具体地,本发明实施例预设的优先级策略为:读命令和写命令优先级相同时,优先执行读命令,即优先将第一命令队列中的所有命令转移至第三命令队列;读命令和写命令优先级不相同时,优先执行优先级较高的命令队列,即优先将优先级较高的命令所在的命令队列中的所有命令转移至第三命令队列。
步骤S105可以进一步划分为以下步骤S1051-S1053:
步骤S1051、确认第一命令队列中存在高优先级的命令,将第一命令队列中的所有命令转移到第三命令队列;
步骤S1052、确认第一命令队列中不存在高优先级的命令,且第二命令队列中存在高优先级的命令,将第二命令队列中的所有命令转移到第三命令队列;
步骤S1053、确认第一命令队列和第二命令队列中不存在高优先级命令,且第一命令队列非空,将第一命令队列中的所有命令转移到第三命令队列;
步骤S1054、确认第一命令队列和第二命令队列中不存在高优先级命令,且第一命令队列为空,第二命令队列非空,将第二命令队列中的所有命令转移到第三命令队列。
S106、若否,依次处理第三命令队列中的命令,直至第三命令队列为空,并返回步骤S104。
在本发明的实施例中,当第三命令队列不为空时,即第三命令队列中存在命令时,通过CPU依次执行第三命令队列中的命令。当第三命令队列中的所有命令执行完成后,返回步骤S104重新判断第三命令队列是否为空,并根据判断结果执行步骤S105或者步骤S106。可以理解的是,由于在处理第三命令队列的命令时,第一命令队列和第二命令队列可同步接收新的待处理命令,本发明实施例在确认第三命令队列中的所有命令执行完(第三命令队列为空)后重新根据预设的优先级策略将所述第一命令队列中的所有命令或者所述第二命令队列中的所有命令转移到所述第三命令队列。
结合步骤S101-S106所述的一种命令队列管理方法可知,本发明通过判断待处理命令的命令类型,将读命令放入第一命令队列,将写命令放入第二命令队列,实现了待处理命令的分类和聚集,并根据预设的优先级策略将第一命令队列和第二命令队列中的所有命令转移到第三命令队列中依次执行,使得存储器设备能够连续执行相同命令类型的命令,无需重复查询第三命令队列,从而使得存储器设备高效发挥内部闪存的性能,提高了命令处理的效率;由于在处理第三命令队列的命令时,第一命令队列和第二命令队列可同步接收新的待处理命令,进一步提高了命令处理的效率。
其次,参照附图描述根据本申请实施例提出的一种命令队列管理系统。
图3是本申请一个实施例的一种命令队列管理系统结构示意图。
第一判断模块301,用于响应于接收到待处理命令,判断所述待处理命令的命令类型;
第一缓存模块302,用于若所述命令类型为读命令,将所述待处理命令放入第一命令队列,所述第一命令队列为用于缓存读命令的队列;
第二缓存模块303,用于若所述命令类型为写命令,将所述待处理命令放入第二命令队列,所述第二命令队列为用于缓存写命令的队列;
判断模块304,用于判断第三命令队列是否为空,所述第三命令队列为正在处理的命令队列;
转移模块305,用于若是,根据预设的优先级策略,将所述第一命令队列中的所有命令或者所述第二命令队列中的所有命令转移到所述第三命令队列,并返回判断模块304;
命令处理模块306,用于若否,依次处理所述第三命令队列中的命令,直至所述第三命令队列为空,并返回判断模块304。
进一步地,在本发明的一个实施例中,所述待处理命令中包括优先级标识;
所述第一缓存模块包括:
第二判断模块,用于根据所述优先级标识判断所述待处理命令的优先级;
第三缓存模块,用于若所述优先级为高优先级,将所述待处理命令放入所述第一命令队列的头部;
第四缓存模块,用于若所述优先级为低优先级,将所述待处理命令放入所述第一命令队列的尾部。
进一步地,在本发明的一个实施例中,所述第二缓存模块包括:
第三判断模块,用于根据所述优先级标识判断所述待处理命令的优先级;
第五缓存模块,用于若所述优先级为高优先级,将所述待处理命令放入所述第二命令队列的头部;
第六缓存模块,用于若所述优先级为低优先级,将所述待处理命令放入所述第二命令队列的尾部。
进一步地,在本发明的一个实施例中,所述转移模块包括:
第一确认模块,用于确认所述第一命令队列中存在高优先级的命令,将所述第一命令队列中的所有命令转移到所述第三命令队列;
第二确认模块,用于确认所述第一命令队列中不存在高优先级的命令,且所述第二命令队列中存在高优先级的命令,将所述第二命令队列中的所有命令转移到所述第三命令队列;
第三确认模块,用于确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列非空,将所述第一命令队列中的所有命令转移到所述第三命令队列;
第四确认模块,用于确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列为空,所述第二命令队列非空,将所述第二命令队列中的所有命令转移到所述第三命令队列。
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
参照图4,本申请实施例提供了一种命令队列管理装置,包括:
至少一个处理器401;
至少一个存储器402,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器401执行时,使得所述至少一个处理器401实现步骤S101-S104所述的一种命令队列管理方法。
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本申请的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本申请,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本申请是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本申请。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本申请的范围,本申请的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行程序的定序列表,可以具体实现在任何计算机可读介质中,以供程序执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从程序执行系统、装置或设备取程序并执行程序的系统)使用,或结合这些程序执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供程序执行系统、装置或设备或结合这些程序执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的程序执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施方式,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
以上是对本申请的较佳实施进行了具体说明,但本申请并不限于所述实施例,熟悉本领域的技术人员在不违背本申请精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (8)
1.一种命令队列管理方法,其特征在于,包括以下步骤:
响应于接收到待处理命令,判断所述待处理命令的命令类型;
若所述命令类型为读命令,将所述待处理命令放入第一命令队列,所述第一命令队列为用于缓存读命令的队列;
若所述命令类型为写命令,将所述待处理命令放入第二命令队列,所述第二命令队列为用于缓存写命令的队列;
待处理命令中包括优先级标识;
判断第三命令队列是否为空,所述第三命令队列为正在处理的命令队列;
若是,确认所述第一命令队列中存在高优先级的命令,将所述第一命令队列中的所有命令转移到所述第三命令队列;确认所述第一命令队列中不存在高优先级的命令,且所述第二命令队列中存在高优先级的命令,将所述第二命令队列中的所有命令转移到所述第三命令队列;
确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列非空,将所述第一命令队列中的所有命令转移到所述第三命令队列;确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列为空,所述第二命令队列非空,将所述第二命令队列中的所有命令转移到所述第三命令队列,并返回判断第三命令队列是否为空这一步骤;
若否,依次处理所述第三命令队列中的命令,直至所述第三命令队列为空,并返回判断第三命令队列是否为空这一步骤;
在处理第三命令队列的命令时,所述第一命令队列和所述第二命令队列同步接收新的待处理命令。
2.根据权利要求1所述的一种命令队列管理方法,其特征在于,所述待处理命令中包括优先级标识;
所述若所述命令类型为读命令,将所述待处理命令放入第一命令队列,包括:
根据所述优先级标识判断所述待处理命令的优先级;
若所述优先级为高优先级,将所述待处理命令放入所述第一命令队列的头部;
若所述优先级为低优先级,将所述待处理命令放入所述第一命令队列的尾部。
3.根据权利要求2所述的一种命令队列管理方法,其特征在于, 所述若所述命令类型为写命令,将所述待处理命令放入第二命令队列,包括:
根据所述优先级标识判断所述待处理命令的优先级;
若所述优先级为高优先级,将所述待处理命令放入所述第二命令队列的头部;
若所述优先级为低优先级,将所述待处理命令放入所述第二命令队列的尾部。
4.一种命令队列管理系统,其特征在于,包括:
第一判断模块,用于响应于接收到待处理命令,判断所述待处理命令的命令类型;
第一缓存模块,用于若所述命令类型为读命令,将所述待处理命令放入第一命令队列,所述第一命令队列为用于缓存读命令的队列;
第二缓存模块,用于若所述命令类型为写命令,将所述待处理命令放入第二命令队列,所述第二命令队列为用于缓存写命令的队列;
判断模块,用于判断第三命令队列是否为空,所述第三命令队列为正在处理的命令队列;
待处理命令中包括优先级标识;
转移模块,用于若是,确认所述第一命令队列中存在高优先级的命令,将所述第一命令队列中的所有命令转移到所述第三命令队列;确认所述第一命令队列中不存在高优先级的命令,且所述第二命令队列中存在高优先级的命令,将所述第二命令队列中的所有命令转移到所述第三命令队列;确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列非空,将所述第一命令队列中的所有命令转移到所述第三命令队列;确认所述第一命令队列和所述第二命令队列中不存在高优先级命令,且所述第一命令队列为空,所述第二命令队列非空,将所述第二命令队列中的所有命令转移到所述第三命令队列,并返回判断模块;若否,依次处理所述第三命令队列中的命令,直至所述第三命令队列为空,并返回判断第三命令队列是否为空这一步骤;
同步接收模块,在处理第三命令队列的命令时,所述第一命令队列和所述第二命令队列同步接收新的待处理命令。
5.根据权利要求4所述的一种命令队列管理系统,其特征在于,所述待处理命令中包括优先级标识;
所述第一缓存模块包括:
第二判断模块,用于根据所述优先级标识判断所述待处理命令的优先级;
第三缓存模块,用于若所述优先级为高优先级,将所述待处理命令放入所述第一命令队列的头部;
第四缓存模块,用于若所述优先级为低优先级,将所述待处理命令放入所述第一命令队列的尾部。
6.根据权利要求5所述的一种命令队列管理系统,其特征在于,所述第二缓存模块包括:
第三判断模块,用于根据所述优先级标识判断所述待处理命令的优先级;
第五缓存模块,用于若所述优先级为高优先级,将所述待处理命令放入所述第二命令队列的头部;
第六缓存模块,用于若所述优先级为低优先级,将所述待处理命令放入所述第二命令队列的尾部。
7.一种命令队列管理装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-3中任一项所述的一种命令队列管理方法。
8.一种存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于实现如权利要求1-3中任一项所述的一种命令队列管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210838621.1A CN114968858B (zh) | 2022-07-18 | 2022-07-18 | 一种命令队列管理方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210838621.1A CN114968858B (zh) | 2022-07-18 | 2022-07-18 | 一种命令队列管理方法、系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968858A CN114968858A (zh) | 2022-08-30 |
CN114968858B true CN114968858B (zh) | 2022-11-25 |
Family
ID=82969561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210838621.1A Active CN114968858B (zh) | 2022-07-18 | 2022-07-18 | 一种命令队列管理方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968858B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209597A (zh) * | 2019-05-24 | 2019-09-06 | 北京百度网讯科技有限公司 | 处理访问请求的方法、装置、设备和存储介质 |
CN113900973A (zh) * | 2020-07-06 | 2022-01-07 | 美光科技公司 | 命令队列中的命令优先级排序 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10409739B2 (en) * | 2017-10-24 | 2019-09-10 | Micron Technology, Inc. | Command selection policy |
US11914893B2 (en) * | 2020-11-18 | 2024-02-27 | Micron Technology, Inc. | Managed memory systems with multiple priority queues |
-
2022
- 2022-07-18 CN CN202210838621.1A patent/CN114968858B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209597A (zh) * | 2019-05-24 | 2019-09-06 | 北京百度网讯科技有限公司 | 处理访问请求的方法、装置、设备和存储介质 |
CN113900973A (zh) * | 2020-07-06 | 2022-01-07 | 美光科技公司 | 命令队列中的命令优先级排序 |
Also Published As
Publication number | Publication date |
---|---|
CN114968858A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776967B (zh) | 基于时序聚合算法的海量小文件实时存储方法及装置 | |
US8984085B2 (en) | Apparatus and method for controlling distributed memory cluster | |
CN103856567A (zh) | 基于Hadoop分布式文件系统的小文件存储方法 | |
CN108924187B (zh) | 基于机器学习的任务处理方法、装置和终端设备 | |
CN102622412A (zh) | 一种分布式文件系统中的并发写入方法及装置 | |
CN103399823A (zh) | 业务数据的存储方法、设备和系统 | |
CN114201421A (zh) | 一种数据流处理方法、存储控制节点及可读存储介质 | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
US10303391B2 (en) | System and method for data storage, transfer, synchronization, and security | |
WO2023098050A1 (zh) | 远程数据访问方法及装置 | |
US20200349081A1 (en) | Method, apparatus and computer program product for managing metadata | |
CN114968858B (zh) | 一种命令队列管理方法、系统、装置及存储介质 | |
CN101770504A (zh) | 数据存储、读取方法及设备 | |
US11625192B2 (en) | Peer storage compute sharing using memory buffer | |
CN110168513B (zh) | 在不同存储系统中对大文件的部分存储 | |
WO2023104194A1 (zh) | 一种业务处理方法及装置 | |
WO2024021470A1 (zh) | 一种跨区域的数据调度方法、装置、设备及存储介质 | |
WO2022218218A1 (zh) | 数据处理方法、装置、归约服务器及映射服务器 | |
KR101694301B1 (ko) | 스토리지 시스템의 파일 처리 방법 및 그 방법에 따른 데이터 서버 | |
CN107229424B (zh) | 一种分布式存储系统数据写入方法及分布式存储系统 | |
US20230128279A1 (en) | Sequential file restore performance using filesystem redirection | |
CN114756488A (zh) | 一种eMMC总线调度方法、系统、装置及存储介质 | |
US11169720B1 (en) | System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly | |
CN112099728B (zh) | 一种执行写操作、读操作的方法及装置 | |
CN104571952A (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 |