CN117130787A - 资源调度方法、装置、电子设备及存储介质 - Google Patents

资源调度方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117130787A
CN117130787A CN202311119390.XA CN202311119390A CN117130787A CN 117130787 A CN117130787 A CN 117130787A CN 202311119390 A CN202311119390 A CN 202311119390A CN 117130787 A CN117130787 A CN 117130787A
Authority
CN
China
Prior art keywords
task
hardware
software
target
cpu
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
Application number
CN202311119390.XA
Other languages
English (en)
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202311119390.XA priority Critical patent/CN117130787A/zh
Publication of CN117130787A publication Critical patent/CN117130787A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例涉及一种资源调度方法、装置、电子设备及存储介质,包括:在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;获取待处理的目标任务;对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。由此,支持FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源进行统一调度与管理,FTL开发者可以采用统一的接口调用不同类型的内部硬件资源。

Description

资源调度方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及软硬件资源调度技术领域,尤其涉及一种资源调度方法、装置、电子设备及存储介质。
背景技术
FTL是固态硬盘(Solid State Drive,SSD)的核心软件控制层,其中的算法和实现方案直接决定了SSD在可靠性、性能、耐用性等方面的优劣。其核心功能是完成主机逻辑地址到闪存物理地址的翻译,以及控制包括读、写、Trim、格式化、上下电等主机命令的执行与反馈。由于Nand存储介质具有与前端命令标准所定义的线性地址空间所不同的高维结构,且不具备写入覆盖功能,必须以块为单位进行整体擦除。这就需要FTL对相关工作流程进行严格管理。现有大多数SSD产品的固件中均封装了上述FTL软件,以针对性的调度不同类型Nand,缓存硬件和其他硬件算法模块协同工作。目前的主流产品中大多采用如下的基本工作模式:多线程异步运行,各软硬件模块之间采用消息队列通信;各功能模块有独立的状态机;各模块之间可通过流水线(pipeline)方式并行执行。
然而,上述FTL软件需要针对SSD产品中包含的特定可用资源而设计。例如不同的内部CPU核个数可能导致软件设计者对各CPU核采用完全不同的使用策略;不同的内部缓存大小也会导致设计者使用完全不同的缓存使用策略;由于硬件调用接口不一致,软硬件代码混合分布,在软件代码中,调用不同硬件要采用特定的调用模式。这使得FTL在拥有多CPU核心时对SSD内部的不同硬件资源的调用非常繁琐,耗时长、效率低。
发明内容
鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种资源调度方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种资源调度方法,包括:
在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;
获取待处理的目标任务;
对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;
对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
在一个可能的实施方式中,所述方法还包括:
将所述软件任务通过统一软件接口分配到至少一个后台CPU,并将所述硬件任务通过统一硬件接口分配到硬件处理模块,以使所述硬件处理模块对所述目标任务进行硬件资源调度。
在一个可能的实施方式中,所述方法还包括
为所述软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求;
基于所述内存需求,在其他CPU中选择符合预设条件的一个目标后台CPU和一个目标固态硬盘;
将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块。
在一个可能的实施方式中,所述方法还包括:
基于所述软件内存需求为所述目标后台CPU分配第一目标内存区域,以及基于所述硬件内存需求为所述目标固态硬盘分配第二目标内存区域。
在一个可能的实施方式中,所述方法还包括:
接收所述目标后台CPU和所述硬件处理模块返回的任务接收结果;
若所述目标后台CPU或所述硬件处理模块的资源不足,则所述任务接收结果为失败;
将所述目标后台CPU接收失败的软件任务在前台CPU中运行,以及将所述硬件处理模块接收失败的硬件任务进行缓存处理直至所述硬件处理模块的资源充足时,继续对所述硬件任务进行处理。
在一个可能的实施方式中,所述方法还包括:
若所述目标后台CPU的资源充足,则所述任务接收结果为成功;
接收所述目标后台CPU对软件任务的任务接收结果;
若所述任务接收结果为成功,则接收所述目标后台CPU返回的任务处理完毕的结果;
若所述任务接收结果为失败,则将所述任务接收结果为失败的软件任务在前台CPU中运行。
在一个可能的实施方式中,所述方法还包括:
基于每个后台CPU维护的一个等待运行任务的第一先进先出队列和多个任务运行完毕并等待前台CPU查询运行结果的第二先进先出队列,判断每个后台CPU的运行状态,其中,所述运行状态指每个后台CPU的任务队列中等待执行的软件任务个数;
基于预设数据结构判断硬件处理模块是否存在空闲通道。
第二方面,本发明实施例提供一种资源调度装置,包括:
设置模块,用于在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;
获取模块,用于获取待处理的目标任务;
解析模块,用于对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;
调度模块,用于对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
第三方面,本发明实施例提供一种服务器,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的资源调度程序,以实现上述第一方面中所述的资源调度方法。
第四方面,本发明实施例提供一种存储介质,包括:所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中所述的资源调度方法。
本发明实施例提供的资源调度方案,通过在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;获取待处理的目标任务;对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。相比于现有技术中FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源的调用繁琐,耗时长、效率低的问题,由本方案,支持FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源进行统一调度与管理,FTL开发者可以采用统一的接口调用不同类型的内部硬件资源。
附图说明
图1为本发明实施例提供的一种资源调度的***架构示意图;
图2为本发明实施例提供的一种资源调度方法的流程示意图;
图3为本发明实施例提供的一种S24的流程示意图;
图4为本发明实施例提供的一种资源调度装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种资源调度的***架构示意图,如图1所示,本发明中的资源调度***采用master-slave的工作模式,master-slave模式是一种并行软件工作模式,工作状态分为前台(master)和后台(slave),前台负责计算任务与存储资源的分配,后台负责具体执行计算任务。
具体的,master固定位于某个CPU核心,其他CPU核心都是slave,当master进入空闲状态时,可切换为slave执行任务。整个工作流程由master维护,master负责定义slave任务、硬件操作和host命令。仅master有权调度slave执行任务、启动硬件操作以及获取host命令。内存管理全部由master进行,master负责将特定内存区域传给slave或特定硬件处理模块来执行任务。各任务之间根据内存访问需求由开发者维护依赖关系,不使用线程锁。***对各类任务的内存需求进行限制,master接到任务处理命令后首先对任务进行分解,以适应内存需求,不允许为任务动态分配内存以避免内存错误。
图2为本发明实施例提供的一种资源调度方法的流程示意图,如图2所示,该方法具体包括:
S21、在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU。
本发明实施例应用于一种通用的并行计算平台以支持FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源进行统一调度与管理。基于该平台FTL开发者可以采用统一的接口调用不同类型的内部硬件资源。采用master-slave的工作模式,master-slave模式是一种并行软件工作模式,工作状态分为前台(master)和后台(slave),前台负责计算任务与存储资源的分配,后台负责具体执行计算任务。
首先在拥有多个CPU的目标***中,可以任意设置一个CPU作为前台CPU(master),其他CPU作为后台CPU(slave)。
S22、获取待处理的目标任务。
前台CPU(master)接收任务处理命令,该任务处理命令中携带有待处理的目标任务,一般情况下,目标任务既包括软件任务又包括硬件任务。其中,软件任务需要在后台CPU(slave)上处理,硬件任务需要在特定类型的硬件处理模块上处理。
硬件处理模块的类型可以包括:从Nand到FTL内存数据传输模块;从FTL内存到Nand数据传输模块;Nand数据擦除模块;从Host内存到FTL内存的DMA拷贝模块;从FTL内存到Host内存的DMA拷贝模块;从Nand到Host内存的直接数据传输模块;完成成块数据异或运算的算法模块。
其中,Nand是指固态硬盘内部的实际物理存储介质;Host内存是指由连接固态硬盘的主机操作***所主导控制的内存;FTL内存是指由固态硬盘内部软件控制层所管理的内存。
S23、对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务。
一般情况下,目标任务既包括软件任务又包括硬件任务,对接收到的目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务,软件任务和硬件任务的数量为一个或多个。
S24、对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
本发明实施例中,随着开发者不断向平台提交新的任务,每个后台CPU(slave)和位于固态硬盘内部的硬件处理模块的工作状态会随之更新。每个后台CPU(slave)会维护一个等待执行的软件任务队列,并记录该队列的长度。每个硬件处理模块会维护一个特定数据结构管理任务执行通道的空闲状态。
进一步的,将软件任务通过统一软件接口分配到排队软件任务个数最少的或由开发者强制指定的后台CPU(slave),并将硬件任务通过统一硬件接口分配到固态硬盘内部的硬件处理模块,并通过预设数据结构判断硬件处理模块是否存在空闲通道,若存在,则将硬件任务分配到空闲通道,以使固态硬盘对目标任务进行处理。
其中,每个后台CPU维护一个等待运行任务的先进先出队列(FIFO)和若干个由软件任务的类型决定的运行完毕并等待前台CPU查询运行结果的任务先进先出队列(FIFO)。每一类型的硬件处理模块可并行执行多个硬件任务,其每个可执行的硬件任务对应一个通道;每一类型的硬件处理模块维护一个数据结构表示其每个通道是否空闲,并且支持常数时间内遍历下一个空闲通道。
本发明实施例提供的资源调度方法,通过在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;获取待处理的目标任务;对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。相比于现有技术中FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源的调用繁琐,耗时长、效率低的问题,由本方法,支持FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源进行统一调度与管理,FTL开发者可以采用统一的接口调用不同类型的内部硬件资源。
图3为本发明实施例提供的一种S24的流程示意图,如图3所示,具体包括:
S31、为所述软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求。
本发明实施例中,前台CPU(master)接到任务处理命令后首先对待处理的目标任务进行分解,得到待处理的软件任务和硬件任务,对各类任务的内存需求进行限制,不允许为任务动态分配内存以避免内存错误,因此,可以根据实际处理情况和资源情况为软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求。
S32、基于所述内存需求,在其他CPU中选择符合预设条件的一个目标后台CPU和一个目标固态硬盘。
本发明实施例中,随着开发者不断向平台提交新的任务,每个后台CPU(slave)和位于固态硬盘内部的硬件处理模块的工作状态会随之更新。每个后台CPU(slave)会维护一个等待执行的软件任务队列,并记录该队列的长度。每个硬件处理模块会维护一个特定数据结构管理任务执行通道的空闲状态。
选择排队任务最少的后台CPU(Slave)和每个硬件处理模块的空闲通道,对目标任务进行处理。
S33、基于所述软件内存需求为所述目标后台CPU分配第一目标内存区域,以及基于所述硬件内存需求为所述目标固态硬盘分配第二目标内存区域。
在分配后台CPU(slave)和硬件处理模块,以对目标任务进行处理之前,基于软件内存需求为目标后台CPU(slave)分配第一目标内存区域,以及基于硬件内存需求为目标固态硬盘分配第二目标内存区域。
S34、将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块。
进一步的,将软件任务通过统一软件接口分配到至少一个处于闲置状态的后台CPU(slave),并将硬件任务通过统一硬件接口分配到固态硬盘内部的硬件处理模块,并通过预设数据结构判断硬件处理模块是否存在空闲通道,若存在,则将硬件任务分配到空闲通道,以使固态硬盘对目标任务进行处理。
其中,每个后台CPU维护一个等待运行任务的先进先出队列(FIFO)和若干个由软件任务的类型决定的运行完毕并等待前台CPU查询运行结果的任务先进先出队列(FIFO)。每一类型的硬件处理模块可并行执行多个硬件任务,其每个可执行的硬件任务对应一个通道;每一类型的硬件处理模块维护一个数据结构表示其每个通道是否空闲,并且支持常数时间内遍历下一个空闲通道。
在将软件任务发送给目标后台CPU(slave)以及将硬件任务发送到硬件处理模块后,接收目标后台CPU(slave)和目标固态硬盘返回的任务接收结果;若目标后台CPU或目标固态硬盘的资源不足,则任务接收结果为失败;将目标后台CPU接收失败的软件任务在前台CPU(master)中运行,以及将目标固态硬盘接收失败的硬件任务进行缓存处理直至目标固态硬盘的资源充足时,继续对硬件任务进行处理。
可选的,若目标后台CPU(slave)的资源充足,则任务接收结果为成功;接收目标后台CPU(slave)对软件任务的任务运行状态;若任务运行状态为成功,则接收目标后台CPU(slave)返回的任务处理完毕的结果。
本发明实施例提供的资源调度方法,通过在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;获取待处理的目标任务;对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。由本方法,支持FTL软件在拥有多CPU核心时对SSD内部的不同硬件资源进行统一调度与管理,FTL开发者可以采用统一的接口调用不同类型的内部硬件资源。
图4为本发明实施例提供的一种资源调度装置的结构示意图,具体包括:
设置模块401,用于在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;
获取模块402,用于获取待处理的目标任务;
解析模块403,用于对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;
调度模块404,用于对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
在一个可能的实施方式中,设置模块401,还用于基于每个后台CPU维护的一个等待运行任务的第一先进先出队列和多个任务运行完毕并等待前台CPU查询运行结果的第二先进先出队列,判断每个后台CPU的运行状态,其中,所述运行状态指每个后台CPU的任务队列中等待执行的软件任务个数;基于预设数据结构判断硬件处理模块是否存在空闲通道。
在一个可能的实施方式中,所述调度模块404,还用于将所述软件任务通过统一软件接口分配到至少一个后台CPU,并将所述硬件任务通过统一硬件接口分配到硬件处理模块,以使所述硬件处理模块对所述目标任务进行硬件资源调度。
在一个可能的实施方式中,所述调度模块404,还用于为所述软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求;基于所述内存需求,在其他CPU中选择符合预设条件的一个目标后台CPU和一个目标固态硬盘;将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块。
在一个可能的实施方式中,所述调度模块404,还用于基于所述软件内存需求为所述目标后台CPU分配第一目标内存区域,以及基于所述硬件内存需求为所述目标固态硬盘分配第二目标内存区域。
在一个可能的实施方式中,所述调度模块404,还用于接收所述目标后台CPU和所述硬件处理模块返回的任务接收结果;若所述目标后台CPU或所述硬件处理模块的资源不足,则所述任务接收结果为失败;将所述目标后台CPU接收失败的软件任务在前台CPU中运行,以及将所述硬件处理模块接收失败的硬件任务进行缓存处理直至所述硬件处理模块的资源充足时,继续对所述硬件任务进行处理。
在一个可能的实施方式中,所述调度模块404,还用于若所述目标后台CPU的资源充足,则所述任务接收结果为成功;接收所述目标后台CPU对软件任务的任务接收结果;若所述任务接收结果为成功,则接收所述目标后台CPU返回的任务处理完毕的结果;若所述任务接收结果为失败,则将所述任务接收结果为失败的软件任务在前台CPU中运行。
本实施例提供的资源调度装置可以是如图4中所示的资源调度装置,可执行如图2-3中资源调度方法的所有步骤,进而实现图2-3所示资源调度方法的技术效果,具体请参照图2-3相关描述,为简洁描述,在此不作赘述。
图5为本发明实施例提供的一种电子设备的结构示意图,图5所示的电子设备500包括:至少一个处理器501、存储器502、至少一个网络接口504和其他用户接口503。电子设备500中的各个组件通过总线***505耦合在一起。可理解,总线***505用于实现这些组件之间的连接通信。总线***505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线***505。
其中,用户接口503可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作***5021和应用程序5022。
其中,操作***5021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5022中。
在本发明实施例中,通过调用存储器502存储的程序或指令,具体的,可以是应用程序5022中存储的程序或指令,处理器501用于执行各方法实施例所提供的方法步骤,例如包括:
在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;获取待处理的目标任务;对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
在一个可能的实施方式中,将所述软件任务通过统一软件接口分配到至少一个后台CPU,并将所述硬件任务通过统一硬件接口分配到硬件处理模块,以使所述硬件处理模块对所述目标任务进行硬件资源调度。
在一个可能的实施方式中,为所述软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求;基于所述内存需求,在其他CPU中选择符合预设条件的一个目标后台CPU和一个目标固态硬盘;将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块。
在一个可能的实施方式中,基于所述软件内存需求为所述目标后台CPU分配第一目标内存区域,以及基于所述硬件内存需求为所述目标固态硬盘分配第二目标内存区域。
在一个可能的实施方式中,接收所述目标后台CPU和所述硬件处理模块返回的任务接收结果;若所述目标后台CPU或所述硬件处理模块的资源不足,则所述任务接收结果为失败;将所述目标后台CPU接收失败的软件任务在前台CPU中运行,以及将所述硬件处理模块接收失败的硬件任务进行缓存处理直至所述硬件处理模块的资源充足时,继续对所述硬件任务进行处理。
在一个可能的实施方式中,若所述目标后台CPU的资源充足,则所述任务接收结果为成功;接收所述目标后台CPU对软件任务的任务接收结果;若所述任务接收结果为成功,则接收所述目标后台CPU返回的任务处理完毕的结果;若所述任务接收结果为失败,则将所述任务接收结果为失败的软件任务在前台CPU中运行。
在一个可能的实施方式中,基于每个后台CPU维护的一个等待运行任务的第一先进先出队列和多个任务运行完毕并等待前台CPU查询运行结果的第二先进先出队列,判断每个后台CPU的运行状态,其中,所述运行状态指每个后台CPU的任务队列中等待执行的软件任务个数;
基于预设数据结构判断硬件处理模块是否存在空闲通道。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图5中所示的电子设备,可执行如图2-3中资源调度方法的所有步骤,进而实现图2-3所示资源调度方法的技术效果,具体请参照图2-3相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的资源调度方法。
所述处理器用于执行存储器中存储的资源调度程序,以实现以下在电子设备侧执行的资源调度方法的步骤:
在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;获取待处理的目标任务;对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
在一个可能的实施方式中,将所述软件任务通过统一软件接口分配到至少一个后台CPU,并将所述硬件任务通过统一硬件接口分配到硬件处理模块,以使所述硬件处理模块对所述目标任务进行硬件资源调度。
在一个可能的实施方式中,为所述软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求;基于所述内存需求,在其他CPU中选择符合预设条件的一个目标后台CPU和一个目标固态硬盘;将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块。
在一个可能的实施方式中,基于所述软件内存需求为所述目标后台CPU分配第一目标内存区域,以及基于所述硬件内存需求为所述目标固态硬盘分配第二目标内存区域。
在一个可能的实施方式中,接收所述目标后台CPU和所述硬件处理模块返回的任务接收结果;若所述目标后台CPU或所述硬件处理模块的资源不足,则所述任务接收结果为失败;将所述目标后台CPU接收失败的软件任务在前台CPU中运行,以及将所述硬件处理模块接收失败的硬件任务进行缓存处理直至所述硬件处理模块的资源充足时,继续对所述硬件任务进行处理。
在一个可能的实施方式中,若所述目标后台CPU的资源充足,则所述任务接收结果为成功;接收所述目标后台CPU对软件任务的任务接收结果;若所述任务接收结果为成功,则接收所述目标后台CPU返回的任务处理完毕的结果;若所述任务接收结果为失败,则将所述任务接收结果为失败的软件任务在前台CPU中运行。
在一个可能的实施方式中,基于每个后台CPU维护的一个等待运行任务的第一先进先出队列和多个任务运行完毕并等待前台CPU查询运行结果的第二先进先出队列,判断每个后台CPU的运行状态,其中,所述运行状态指每个后台CPU的任务队列中等待执行的软件任务个数;
基于预设数据结构判断硬件处理模块是否存在空闲通道。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种资源调度方法,其特征在于,包括:
在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;
获取待处理的目标任务;
对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;
对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理,包括:
将所述软件任务通过统一软件接口分配到至少一个后台CPU,并将所述硬件任务通过统一硬件接口分配到硬件处理模块,以使所述硬件处理模块对所述目标任务进行硬件资源调度。
3.根据权利要求2所述的方法,其特征在于,所述将所述软件任务通过统一软件接口分配到至少一个后台CPU,并将所述硬件任务通过统一硬件接口分配到硬件处理模块,以使所述硬件处理模块对所述目标任务进行硬件资源调度,包括:
为所述软件任务和硬件任务分别设置对应的软件内存需求和硬件内存需求;
基于所述内存需求,在其他CPU中选择符合预设条件的至少一个目标后台CPU和一个目标固态硬盘;
将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述软件内存需求为所述目标后台CPU分配第一目标内存区域,以及基于所述硬件内存需求为所述目标固态硬盘分配第二目标内存区域。
5.根据权利要求3所述的方法,其特征在于,所述将所述软件任务通过统一软件接口分配到所述目标后台CPU,并将所述硬件任务通过统一硬件接口分配到位于所述目标固态硬盘内部的硬件处理模块,包括:
接收所述目标后台CPU和所述硬件处理模块返回的任务接收结果;
若所述目标后台CPU或所述硬件处理模块的资源不足,则所述任务接收结果为失败;
将所述目标后台CPU接收失败的软件任务在前台CPU中运行,以及将所述硬件处理模块接收失败的硬件任务进行缓存处理直至所述硬件处理模块的资源充足时,继续对所述硬件任务进行处理。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述目标后台CPU的资源充足,则所述任务接收结果为成功;
接收所述目标后台CPU对软件任务的任务接收结果;
若所述任务接收结果为成功,则接收所述目标后台CPU返回的任务处理完毕的结果;
若所述任务接收结果为失败,则将所述任务接收结果为失败的软件任务在前台CPU中运行。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于每个后台CPU维护的一个等待运行任务的第一先进先出队列和多个任务运行完毕并等待前台CPU查询运行结果的第二先进先出队列,判断每个后台CPU的运行状态,其中,所述运行状态指每个后台CPU的任务队列中等待执行的软件任务个数;
基于预设数据结构判断硬件处理模块是否存在空闲通道。
8.一种资源调度装置,其特征在于,包括:
设置模块,用于在拥有多个CPU的目标***中选择任一CPU作为前台CPU,其他CPU作为后台CPU;
获取模块,用于获取待处理的目标任务;
解析模块,用于对所述目标任务进行软硬件任务解析,得到待处理的软件任务和硬件任务;
调度模块,用于对所述软件任务和硬件任务通过统一的软件接口和/或硬件接口进行软硬件资源调度以对所述目标任务进行处理。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的资源调度程序,以实现权利要求1~7中任一项所述的资源调度方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的资源调度方法。
CN202311119390.XA 2023-08-31 2023-08-31 资源调度方法、装置、电子设备及存储介质 Pending CN117130787A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311119390.XA CN117130787A (zh) 2023-08-31 2023-08-31 资源调度方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311119390.XA CN117130787A (zh) 2023-08-31 2023-08-31 资源调度方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117130787A true CN117130787A (zh) 2023-11-28

Family

ID=88856186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311119390.XA Pending CN117130787A (zh) 2023-08-31 2023-08-31 资源调度方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117130787A (zh)

Similar Documents

Publication Publication Date Title
US11561830B2 (en) System and method for low latency node local scheduling in distributed resource management
CN110489213B (zh) 一种任务处理方法及处理装置、计算机***
KR101936453B1 (ko) 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
CN113918101B (zh) 一种写数据高速缓存的方法、***、设备和存储介质
US20140223225A1 (en) Multi-core re-initialization failure control system
KR101976221B1 (ko) 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
US9378069B2 (en) Lock spin wait operation for multi-threaded applications in a multi-core computing environment
JP2004171234A (ja) マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
KR20180089273A (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
EP4040295A1 (en) Memory bandwidth allocation for multi-tenant fpga cloud infrastructures
US20130262812A1 (en) Hardware Managed Allocation and Deallocation Evaluation Circuit
CN117130787A (zh) 资源调度方法、装置、电子设备及存储介质
US9015719B2 (en) Scheduling of tasks to be performed by a non-coherent device
US20140149691A1 (en) Data processing system and data processing method
CN117501254A (zh) 使用近存储器计算为复杂操作提供原子性
US10740150B2 (en) Programmable state machine controller in a parallel processing system
CN110968418A (zh) 基于信号-槽的大规模有约束并发任务的调度方法与装置
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
US20240211302A1 (en) Dynamic provisioning of portions of a data processing array for spatial and temporal sharing
WO2022242777A1 (zh) 一种调度方法、装置、***和计算设备
WO2019188182A1 (ja) プリフェッチコントローラ
CN116795490A (zh) 一种vCPU调度方法、装置、设备及存储介质

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