CN111526172A - 一种多设备管理方法和管理系统 - Google Patents
一种多设备管理方法和管理系统 Download PDFInfo
- Publication number
- CN111526172A CN111526172A CN201910108584.7A CN201910108584A CN111526172A CN 111526172 A CN111526172 A CN 111526172A CN 201910108584 A CN201910108584 A CN 201910108584A CN 111526172 A CN111526172 A CN 111526172A
- Authority
- CN
- China
- Prior art keywords
- command
- task
- execution
- synchronous control
- executed
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种多设备管理方法和管理系统。所述管理方法包括:为需要由多个设备执行的任务命令组合的每条命令分配唯一标识并根据各命令的目标设备标识分发至相应设备并行执行,所述任务命令组合中设置有同步控制命令来控制执行顺序,所述同步控制命令包含执行的目标设备标识和依赖关系指示参数,所述依赖关系指示参数用于确定所关联的命令;在所述多个设备并行执行各自的任务命令过程中,基于所述同步控制命令查询相关命令的执行状态,进而确定执行顺序。本发明提供的管理方法和管理系统能够实现多设备并行执行和合作执行。
Description
技术领域
本发明设计信息处理技术领域,尤其涉及一种多设备管理方法和管理系统。
背景技术
随着集成电路技术的发展,系统级芯片(SOC:system on chip)的设计越来越趋向异构计算,也就是将更多的异构计算单元整合到同一个芯片中,提供一个整体解决方案。在这种系统级芯片中,通常有一个用于管理其它所有计算单元执行任务的管理单元,也称前端管理系统(FE),如图1所示,前端管理系统从CPU获取任务列表,并分发到不同的计算单元(设备)。
然而,在现有技术中,前端管理系统的功能都仅实现了从系统存储器中抓取CPU写入的任务列表,将任务列表作为一个简单的输入流,并分发到不同计算单元(设备),这种设计在面对人工智能(AI)等计算任务时,不能够提供条件分支、循环执行和同步控制等,从而不能实现多个异构设备合作执行任务的机制,降低了设备的使用效率。
因此,需要对现有的前端管理系统进行改进,以提供一种适用于多设备的管理系统和管理方法。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种多设备管理方法和管理系统。
根据本发明的第一方面,提供了一种多设备管理方法。该方法包括以下步骤:
步骤1:为需要由多个设备执行的任务命令组合的每条命令分配唯一标识并根据各命令的目标设备标识分发至相应设备并行执行,所述任务命令组合中设置有同步控制命令来控制执行顺序,所述同步控制命令包含执行的目标设备标识和依赖关系指示参数,所述依赖关系指示参数用于确定所关联的命令;
步骤2:在所述多个设备并行执行各自的任务命令过程中,基于所述同步控制命令查询相关命令的执行状态,进而确定执行顺序。
在一个实施例中,在步骤1包括:
步骤11:在读取所述任务命令组合时,为每条命令依次动态地分配唯一标识;
步骤12:对于所述任务命令组合中的同步控制命令,根据其包含的依赖关系指示参数和所分配的标识确定所依赖的命令的标识。
在一个实施例中,当所述目标设备执行所分发的任务命令时,对于所述同步控制命令执行以下子步骤:
步骤31:查询所述同步控制命令包含的所依赖命令的标识;
步骤32:根据所依赖命令的标识查询其执行状态,如果状态为已完成,则执行所述同步控制命令的后续命令,否则继续执行该同步控制命令。
在一个实施例中,所述同步控制命令采用wait命令格式,所述依赖关系指示参数和该wait命令在所述任务命令组合中的编号相关。
在一个实施例中,当所述目标设备执行所分发的命令时,对于已成功执行完的命令,在寄存器中保存其分配的唯一标识。
在一个实施例中,所述任务命令组合中还包括状态设置命令和条件跳转命令,所述状态设置命令用于基于比较结果设置状态标志位,所述条件跳转命令用于基于所述状态标志位确定待执行的命令。
根据本发明的第二方面,提供了一种多设备管理系统。该系统包括:
任务命令设置单元:对于需要由多个设备执行的任务命令组合,为每个命令设置执行的目标设备标识并且对于执行顺序存在关联的命令,通过设置同步控制命令来控制执行顺序,所述同步控制命令包含执行的目标设备标识和依赖关系指示参数,所述依赖关系指示参数用于确定所关联的命令;
命令分发器:为所述任务命令组合中的每条命令分配唯一标识并根据各命令的目标设备标识分发至相应设备并行执行;
命令执行器:在所述多个设备并行执行各自的任务命令过程中,基于所述同步控制命令查询相关命令的执行状态,进而确定执行顺序。
在一个实施例中,所述命令分发器包括:
命令标识分配单元:用于为所述任务命令组合中的每条命令依次动态地分配唯一标识
同步命令处理单元:用于对于所述任务命令组合中的同步控制命令,根据其包含的依赖关系指示参数和所分配的标识计算得出所依赖的命令的标识;
命令执行单元:用于执行来自于所述同步命令处理单元的任务命令组合;
命令分配单元:用于将经过所述命令标识分配单元和所述同步控制单元处理之后的命令分发到相应的目标设备。
在一个实施例中,所述任务命令组合中还包括状态设置命令和条件跳转命令,当所述命令执行单元执行所述状态设置命令时,用于基于比较结果设置状态标志位寄存器,当所述命令执行单元执行所述条件跳转命令时,基于所述状态标志位寄存器的值确定待执行的命令。
在一个实施例中,所述系统还包括与设备一一对应的设备命令执行器,以及与设备命令执行器一一对应的设备命令队列,所述设备命令执行器用于执行设备相关的命令,所述设备命令队列位于命令分发器和设备命令执行器之间,用于缓存所述命令分发器发送给相应设备命令执行器的任务命令。
在一个实施例中,所述设备命令执行器包括:
命令获取单元,用于从相应的设备命令队列获取任务命令,并发送给同步命令处理单元;
同步命令处理单元,用于根据所述同步控制命令的依赖关系指示参数查询关联命令的执行情况,以确定需要等待或继续执行;
命令执行单元,用于执行来自于所述命令分发器或所述同步命令处理单元的任务命令。
在一个实施例中,所述同步命令处理单元还包括命令标识寄存器,其用于记录该设备最近执行完成的命令的标识。
与现有技术相比,本发明的优点在于:在前端管理系统中实现对多设备执行任务的顺序执行、条件分支以及通过通用寄存器的计算命令和条件分支组合产生的循环执行;通过多个设备各自不同的设备命令队列和设备命令执行器,达到将输入的原始命令分离,在多个设备中并行执行,提高了设备的使用效率;通过同步控制命令,可以在任何两个命令间建立依赖关系,从而使相关设备达到同步执行的效果,提供了设备间合作执行任务的机制;通过事件命令,可以在相应的事件命令执行时给CPU发出通知,让其能够精确掌握整个SOC系统的执行进度。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1示出了现有技术中前端管理系统的架构示意图;
图2示出了根据本发明一个实施例的多设备管理系统的示意图;
图3示出了根据本发明一个实施例的管理系统的命令分发器的示意图;
图4示出了根据本发明一个实施例的管理系统的设备命令执行器的示意图;
图5示出了根据本发明一个实施例的同步控制方法的流程图;
图6示出了根据本发明一个实施例的命令列表的示意图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
图2示出了根据本发明一个实施例的面向多设备的前端管理系统(FE)的框架图,该系统200可应用于SOC,用于管理多个设备的任务执行。系统200包括命令分发器210、设备命令队列0-3、设备命令执行器0-3、多个设备0-3,在此实施例中,设备命令执行器0-3与多个设备0-3一一对应,设备命令队列0-3与设备命令执行器0-3一一对应。
首先,需要说明的是,本发明所述的多设备,可以是异构设备或同构设备,这些设备可以是设备级的硬件设备或者更细粒度的计算单元级,例如,设备级是指CPU、GPU、DSP、FPGA、ASIC等计算设备,或者由这些计算设备中的至少两项以上的计算能力组合构成的混合计算加速设备,例如,GPU+ASIC混合计算加速器、CPU+GPU+ASIC混合计算加速设备等,而计算单元级是指这些计算设备中所包含的更细粒度的计算单元。
任务命令组合是指为某一个计算需求而设计的一组连续的命令,这些命令需要由多个设备来执行,即某些命令由一个设备来执行,而另一些命令需要由其它设备执行,在这些任务命令中,一些命令可以由多个设备并行执行,而对于某些命令,在执行顺序上存在依赖关系,例如,一条命令的执行可能需要等到另一条命令的结束才能进行。
在一个实施例中,本发明提供了一套命令用来控制前端管理系统与其它的计算设备,命令格式表示为:设备名.命令名.参数列表,其中,设备名用于表示执行该命令的目标设备标识,命令名表示执行的动作,参数列表用于表示与所执行动作相关的参数。
例如,命令FE.Set gpreg[i].value,表示执行该命令的目标设备是前端管理系统(FE),执行的动作是将数值value设置给编号为i的通用寄存器。
又如,设备宏命令DeviceN.Macro.ddress size,表示目标设备是DeviceN,该命令表示位于存储器的地址为address处大小为size的一块设备专属的子命令列表。
命令分发器210负责读取任务命令组合并动态地为每个任务命令分配标识,当读取任务命令组合时,为每个任务命令指派一个逐渐加1的数字标识。
总体上,命令分发器210实现的功能是从任务命令组合依次读入命令,并为读入的命令分配唯一标识,如果目标设备标识是前端管理系统命令,则按命令执行;如果目标设备标识是计算设备相关命令,则命令分发器210直接将其放入相应的设备命令队列。
在一个实施例中,命令分发器还包括多个寄存器,例如,为命令作唯一编号的寄存器,标记为CMD_ID;一组通用寄存器,标记为gpreg;状态寄存器,标记为CPSR,状态寄存器是包含多种比较结果位的状态寄存器,结果位包括相等标志位、大于标志位、小于标志位等。
设备命令队列0-3是一个先入先出的队列,用于缓冲命令分发器210与设备命令执行器之间的命令,命令分发器210根据各命令的目标设备标识向相应的设备命令队列分发命令。
设备命令执行器0-3从相应的设备命令队列依次读取命令,并按命令解析内容,如果命令是计算设备相关命令且不是设备宏命令,则按照命令执行;如果命令是设备宏命令,则按照宏命令中的地址和大小依次从存储器中取出子命令,并将子命令传递给相应的设备执行。
设备0-3用于执行任务命令,从对应的设备命令执行器读取相关命令并具体执行。
在一个实施例中,本发明提供的命令总体上包括两种,即由前端管理系统执行的命令和由计算设备执行的命令。具体地,包括以下命令:
一、前端管理系统命令
1)、事件命令:FE.Event event_id
该命令用于通知CPU整个SOC系统的执行进度,触发一个CPU中断,并暴露一个时间识别号event_id给CPU。
2)、通用寄存器计算命令
FE.Set gpreg[i]value:该命令将数值value设置给编号为i的通用寄存器;
FE.Add gpreg[i]value:该命令将数值value累加到编号为i的通用寄存器;
FE.Sub gpreg[i]value:该命令将编号为i的通用寄存器减去数值value;
FE.Lshift gpreg[i]value:该命令将编号为i的通用寄存器中的值左移value位;
FE.Rshift gpreg[i].value:该命令将编号为i的通用寄存器中的值右移value位。
3)、状态寄存器设置命令:FE.Compare gpreg[i]*address
该命令将编号为i的通用寄存器中的值与存储器单元中地址为address的内容进行比较,基于比较结果设置状态寄存器CPSR中相应的结果位,结果位包括相等标志位、大于标志位、小于标志位等。
4)、条件分支命令:FE.Branch condition address
该命令判断condition参数指定的状态寄存器CPSR中的结果位是否为真,如果为真,下一条命令将从address指定的存储器位置开始执行;否则,下一条命令继续沿着该指令的下一条执行。
二、计算设备相关命令
1)、事件命令:DeviceN.Event event_id
该命令用于通知CPU整个SOC系统的执行进度,触发一个CPU中断,并暴露一个时间识别号event_id给CPU。
2)、设备宏命令:DeviceN.Macro address size
该命令用于指示位于存储器的地址为address处大小为size的一块设备专属的子命令列表。子命令格式为:命令名.参数列表。
在一个实施例中,子命令列表中包含以下子命令:
Loadstate1state_address value:该子命令表示用数值value更新相应设备中地址为state_address的状态寄存器的值;
Loadstate2state_address gpreg[i]:该子命令用管理系统中编号为i的通用寄存器的值更新相应设备中地址为state_address的状态寄存器的值。
在一个实施例中,通过在任务命令组合中设置同步控制命令来建立执行顺序存在依赖关系的命令之间的关联,从而实现设备之间的同步控制。
在一个实施例中,同步控制命令包括执行该命令的目标设备标识和依赖关系指示参数,利用该依赖关系指示参数能够锁定其所依赖的命令。
具体地,参见表1以伪代码形式示出的任务命令组合的示例。
表1:任务命令组合
目标设备标识 | 命令内容 | 依赖关系指示参数 |
Device0 | 拷贝内存块0 | |
Device1 | 拷贝内存块1 | |
Device2 | 等待前面第二个任务完成 | -2 |
Device2 | 对内存块0进行计算处理 | |
Device3 | 等待前面第三个任务完成 | -3 |
Device3 | 对内存块1进行计算处理 |
在表1中,示意了六条命令,第三条和第五条为同步控制命令,每一条命令包括用于确定执行设备的目标设备标识和具体的执行内容,并且对于同步控制命令还包括依赖关系指示参数,例如,对于同步控制命令“等待前面第二个任务完成”和“等待前面第三个任务完成”,其依赖关系指示参数“-2”表示需要等待前面第2条命令完成,“-3”表示需要等待前面第3条命令完成,即依赖关系指示参数可表示为所依赖的命令在该任务命令组合中的编号相关,可用正值或负值表示,只要根据该指示参数能够确定关联的命令即可。
在读取到任务命令组合之后,命令分发器负责动态地为每一命令分配标识,并且对于同步控制命令,根据其依赖关系指示参数能够获得该同步控制命令所依赖的命令的标识。
具体地,当命令分发器读取表1的任务命令组合时,为每个任务命令例如指派一个逐渐加1的数字标识,假设目前的命令标识计数值已经为N,那么第一条命令被指定为N+1,第二条命令为N+2,以此类推,最后一条命令为N+6。当执行到同步控制命令时,如第三条命令“等待前面第二个任务完成”,会根据其依赖关系指示参数计算其所依赖的命令的数字标识,例如,其依赖关系指示参数为-2,即依赖于(N+3-2),即计算的数字标识N+1表示标识为N+1的命令执行完成之后才能开始执行。为了保证命令标识不会溢出,可根据需要处理的任务命令数量级设置适当的标识位数,例如,用足够大的数位来表示(如64个比特位)。命令分发器根据目标设备标识向设备命令队列分发相应的命令,例如,将“拷贝内存块0”分发到设备命令队列0,将同步控制命令“等待前面第二个任务完成”分发到设备命令队列2。
在一个实施例中,同步控制命令可采用wait命令格式,其中目标设备可以是前端管理系统或计算设备。
例如,前端管理系统的同步控制命令为FE.Wait device_id delta,其中FE是目标设备标识,device-id为关联的设备标识,delta是依赖关系指示参数,表示为正值。
该同步控制命令用于SOC系统内部各个命令之间的同步,当某一设备执行器执行到该命令时,将查询关联设备device_id的命令执行情况,如果device_id相应的设备命令执行器已经完成的任务识别号(id)为x,而当前等待命令的任务识别号为y,那么当y–x小于delta时,该命令会阻塞当前执行器的下一条命令执行,直到y–x大于等于delta为止。
又如,计算设备的同步控制命令为DeviceN.Wait device_id delta,其中,DeviceN是目标设备标识,device_id是关联的设备标识,delta是依赖关系指示参数。
该同步控制命令用于SOC系统内部各个命令之间的同步,当设备N对应的设备命令执行器执行到该命令时,将查询相应device_id的命令执行情况,如果device_id相应的设备命令执行器最近已经完成的任务识别号(id)为x,而当前等待命令的任务识别号为y,则当y–x小于delta时,该命令会阻塞当前执行器的下一条命令执行,直到y–x大于等于delta为止。
基于本发明的管理系统结构,通过设置同步控制命令以及条件分支命令等能够执行包括顺序执行,条件分支,以及通过通用寄存器的计算命令和条件分支组合产生的循环执行等,例如,参见图6示出的命令列表,其中包括同步控制命令Device1.wait Device0-2,条件分支命令FE.Branch less7等。
图3示出了根据本发明一个实施例的命令分发器的示意图,该命令分发器300包括命令获取单元310、命令缓冲单元320、命令标识分配单元330、同步命令处理单元340、命令执行单元350和命令分配单元360。
命令获取单元310用于获取待执行的任务命令组合并发送到命令缓冲单元320暂时存储。
命令标识分配单元330用于动态地为每个任务命令统一分配一个标识,通过该标识能够唯一地识别一个任务命令,例如根据读取顺序分配一个逐渐加1的数字标识。
同步命令处理单元340用于针对同步控制命令进行处理,根据依赖关系指示参数以及已统一分配的标识计算出执行顺序存在依赖关系的命令的标识,同步命令处理单元340与命令编号寄存器CMD_ID具有通信连接,以查询关联命令是否执行完成。
命令执行单元350依次执行读取的任务命令,其与通用寄存器(gpreg)和状态寄存器(CPSR)具有通信连接,可根据状态寄存器的值实现条件跳转、设置状态寄存器的值,或执行通用寄存器相关的计算命令。
例如,当执行命令FE.Compare gpreg[i]*address时,将编号为i的通用寄存器中的值与存储器单元中地址为address的内容进行比较,基于比较结果设置状态寄存器CPSR中相应的结果位;当执行命令FE.Branch co ndition address时,判断condition参数指定的状态寄存器CPSR中的结果位是否为真,如果为真,下一条命令将从address指定的存储器位置开始执行;否则,下一条命令继续沿着该指令的下一条执行;当执行命令FE.Sub gpreg[i]value时,将编号为i的通用寄存器减去数值value。
命令分配单元360接收命令执行单元350处理后的命令,根据各条命令的目标设备标识直接发送到相应地设备或暂时存储到相应的设备命令队列。
图4示出了根据本发明一个实施例的管理系统中的设备命令执行器的示意图,该设备命令执行器400包括命令获取单元410、同步命令处理单元420、命令执行单元430和命令分发单元440。
命令获取单元410用于从相应的设备命令队列获取任务命令,并发送给同步命令处理单元420。
同步命令处理单元420用于针对同步控制命令进行处理,根据依赖关系指示参数查询关联命令的执行情况,以确定需要等待或继续执行。
在一个实施例中,同步命令处理单元420还包括ID寄存器,其用于记录该设备最近执行完成的命令,ID寄存器中可仅保存任务命令标识,例如,值101表示全局标识为101的任务命令已完成执行,该寄存器标记为QueryCommandID或DeviceCommandID,这些寄存器可以被其他模块或其它的设备命令执行器(如其中的同步命令处理单元)查询,以完成不同设备之间命令的同步控制。
命令执行单元430用于执行任务命令,如果命令是计算设备相关命令且不是设备宏命令,则按照命令执行;如果命令是设备宏命令,则按照宏命令中的地址和大小依次从存储器中取出子命令,并且解析子命令,将其信息传递给相应的设备执行。命令执行单元430可从命令分发器直接接收命令(例如,非同步控制命令)或接收来自于同步命令处理单元420的命令。
应理解的是,图1至图4的实施例仅为示意性,在实现本发明逻辑功能的前提下,本领域的技术人员可以将某些单元合并为一个功能单元或者不必包括所有示出的单元,例如,具有缓存功能的设备命令队列0-3、命令缓冲单元是可选的,又如命令分发器210和设备命令队列0-3可以作为一个模块用于统一处理和分发任务命令组合。
本发明通过动态分配任务命令标识,所设计的任务命令组合不仅可以执行一次,在不用任何更改的情况下还可以反复提交到命令分发器210执行。
需要说明的是,在不违背本发明的精神和范围的前提下,本领域的技术人员也可采用其它形式的动态标识和其它的同步控制命令、条件跳转命令等,例如,以从大到小的顺序分配标识或者采用其他非数字形式的标识,只要通过该标识管理系统中的各单元、模块或设备等能够唯一识别每条任务命令即可。此外,同步控制命令包含的依赖关系指示参数也可采用其它方式确定,动态标识分配方法和该依赖关系指示参数相互配合能够确定出所依赖的命令即可。
相应地,本发明提供了一种多设备的管理方法,参见图5所示,该方法包括以下步骤:
步骤S510,将计算需求设计为一组任务命令组合并通过设置同步控制命令来指示执行顺序存在依赖关系的命令。
将计算需求设置为一组任务命令并为每条任务命令指定执行的目标设备标识,其中,对于执行顺序存在依赖关系的命令,通过设置同步控制命令来控制执行顺序。
例如,假设设备0是一个数据传输器,可以把数据从一个存储位置搬移到另一个位置;设备1是一个音频解码器,可以解码一个指定位置的数据并输出到另一个位置;设备2是一个音频播放器,可以从指定位置读取数据并播放声音。需要完成的计算需求是:设备0将一块数据从原始位置(例如位置0),传输到一个指定位置(例如位置1);设备1在设备0完成传输之后,将位置1的数据进行解码,然后输出到位置2;设备2在设备1的命令执行完之后播放位置2的数据,则设计的一组任务命令为:
device0“将位置0的数据传输到位置1;
device1:等待前面第一个任务(-1)完成;
device1:解码位置1的数据,输出到位置2;
device2:等待前面第一个任务(-1)完成;
device2:播放位置2的数据。
在该组命令中,设置有两个同步控制命令,即“device1:等待前面第一个任务(-1)完成”和“device2:等待前面第一个任务(-1)完成”,其中的(-1)为依赖关系指示参数。
步骤S520,动态地为任务命令组合中的各条命令分配标识并且对于同步控制命令确定其所依赖的命令的标识。
在读取该组命令时,依据读取顺序或称为在该组命令中的编号为每一条命令动态的分配标识,例如,以递增或递减的顺序分配数字标识,在分配过程中,对于同步控制命令也需要统一分配标识。
对于同步控制命令,在分配完标识之后,再根据其包含的依赖关系指示参数,计算其所依赖的命令标识。
步骤S530,将分配完标识的命令分配到相应地设备执行。
根据各命令包含的目标设备标识将其分发到相应的设备执行,其中同步控制命令包含了统一分配的标识以及所依赖的命令的标识。
在一个实施例中,各设备在执行命令的同时,将任务执行状态以全局数据的形式进行存储以备其它的设备查询。
综上所示,本发明在命令分发器中执行的前端管理系统命令可以实现一个类似CPU的指令执行流程,包括顺序执行,条件分支,以及通过通用寄存器的计算命令和条件分支组合产生循环执行。通过多个设备各自不同的设备命令队列和设备命令执行器,达到将输入的原始命令分离,在多个设备中并行执行,提高了设备的使用效率;通过同步控制命令,可以在任何两个命令间建立依赖关系,从而可以使对应的设备达到同步执行的效果,提供了设备间合作执行的机制;通过事件命令,可以在相应的事件命令执行时给CPU发出通知,让其能够精确掌握整个SOC系统的执行进度。
本发明是通过在传统任务管理单元的功能上增加任务之间的同步以及条件跳转,从而达到将输入的任务列表作为一种类似CPU的指令程序执行的目的,而不是像目前大多数任务管理单元那样仅仅将任务列表作为一个简单的输入流。另外,本发明也通过特殊的结构设计(例如,与设备一一对应的设备命令知悉器以及与设备命令执行器一一对应的设备命令队列等)达到任务的异步并行与同步合作。这种设计在面对AI计算任务时,能够提供计算图中的分支与循环控制,而不是像传统的任务管理单元那样将这种执行留给系统CPU来完成。
本发明的系统可以是计算系统,例如、台式计算机、便携式计算机、平板电脑、智能手机或任何其他类型的计算设备,也可以是片上系统(SOC)。本发明的系统可应用于文字处理、语音识别与处理、多国语言翻译、图像识别、生物特征识到、智能控制等领域,可用作智能计算处理设备、机器人、移动设备等。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以利用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种多设备管理方法,包括以下步骤:
步骤1:为需要由多个设备执行的任务命令组合的每条命令分配唯一标识并根据各命令的目标设备标识分发至相应设备并行执行,所述任务命令组合中设置有同步控制命令来控制执行顺序,所述同步控制命令包含执行的目标设备标识和依赖关系指示参数,所述依赖关系指示参数用于确定所关联的命令;
步骤2:在所述多个设备并行执行各自的任务命令过程中,基于所述同步控制命令查询相关命令的执行状态,进而确定执行顺序。
2.根据权利要求1所述的方法,其中,在步骤1包括:
步骤11:在读取所述任务命令组合时,为每条命令依次动态地分配唯一标识;
步骤12:对于所述任务命令组合中的同步控制命令,根据其包含的依赖关系指示参数和所分配的标识确定所依赖的命令的标识。
3.根据权利要求2所述的方法,其中,当所述目标设备执行所分发的任务命令时,对于所述同步控制命令执行以下子步骤:
步骤31:查询所述同步控制命令包含的所依赖命令的标识;
步骤32:根据所依赖命令的标识查询其执行状态,如果状态为已完成,则执行所述同步控制命令的后续命令,否则继续执行该同步控制命令。
4.根据权利要求1至3任一项所述的方法,其中,所述同步控制命令采用wait命令格式,所述依赖关系指示参数和该wait命令在所述任务命令组合中的编号相关。
5.根据权利要求1至3任一项所述的方法,其中,当所述目标设备执行所分发的命令时,对于已成功执行完的命令,在寄存器中保存其分配的唯一标识。
6.根据权利要求1所述的方法,其中,所述任务命令组合中还包括状态设置命令和条件跳转命令,所述状态设置命令用于基于比较结果设置状态标志位,所述条件跳转命令用于基于所述状态标志位确定待执行的命令。
7.一种多设备管理系统,包括:
任务命令设置单元:对于需要由多个设备执行的任务命令组合,为每个命令设置执行的目标设备标识并且对于执行顺序存在关联的命令,通过设置同步控制命令来控制执行顺序,所述同步控制命令包含执行的目标设备标识和依赖关系指示参数,所述依赖关系指示参数用于确定所关联的命令;
命令分发器:为所述任务命令组合中的每条命令分配唯一标识并根据各命令的目标设备标识分发至相应设备并行执行;
命令执行器:在所述多个设备并行执行各自的任务命令过程中,基于所述同步控制命令查询相关命令的执行状态,进而确定执行顺序。
8.根据权利要求7所述的系统,其特征在于,所述命令分发器包括:
命令标识分配单元:用于为所述任务命令组合中的每条命令依次动态地分配唯一标识
同步命令处理单元:用于对于所述任务命令组合中的同步控制命令,根据其包含的依赖关系指示参数和所分配的标识计算得出所依赖的命令的标识;
命令执行单元:用于执行来自于所述同步命令处理单元的任务命令组合;
命令分配单元:用于将经过所述命令标识分配单元和所述同步控制单元处理之后的命令分发到相应的目标设备。
9.根据权利要求8所述的系统,其特征在于,所述任务命令组合中还包括状态设置命令和条件跳转命令,当所述命令执行单元执行所述状态设置命令时,用于基于比较结果设置状态标志位寄存器,当所述命令执行单元执行所述条件跳转命令时,基于所述状态标志位寄存器的值确定待执行的命令。
10.根据权利要求7所述的系统,其特征在于,所述系统还包括与设备一一对应的设备命令执行器,以及与设备命令执行器一一对应的设备命令队列,所述设备命令执行器用于执行设备相关的命令,所述设备命令队列位于命令分发器和设备命令执行器之间,用于缓存所述命令分发器发送给相应设备命令执行器的任务命令。
11.根据权利要求10所述的系统,其特征在于,所述设备命令执行器包括:
命令获取单元,用于从相应的设备命令队列获取任务命令,并发送给同步命令处理单元;
同步命令处理单元,用于根据所述同步控制命令的依赖关系指示参数查询关联命令的执行情况,以确定需要等待或继续执行;
命令执行单元,用于执行来自于所述命令分发器或所述同步命令处理单元的任务命令。
12.根据权利要求8所述的系统,其特征在于,所述同步命令处理单元还包括命令标识寄存器,其用于记录该设备最近执行完成的命令的标识。
13.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至6中任一项所述的方法的步骤。
14.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910108584.7A CN111526172B (zh) | 2019-02-03 | 2019-02-03 | 一种多设备管理方法和管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910108584.7A CN111526172B (zh) | 2019-02-03 | 2019-02-03 | 一种多设备管理方法和管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111526172A true CN111526172A (zh) | 2020-08-11 |
CN111526172B CN111526172B (zh) | 2022-11-29 |
Family
ID=71900166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910108584.7A Active CN111526172B (zh) | 2019-02-03 | 2019-02-03 | 一种多设备管理方法和管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111526172B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698869A (zh) * | 2020-12-31 | 2021-04-23 | 青岛海尔科技有限公司 | 指令确定方法及装置、存储介质、电子装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05204639A (ja) * | 1992-01-30 | 1993-08-13 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
CN1437102A (zh) * | 2002-09-11 | 2003-08-20 | 北京南思达科技发展有限公司 | 宏指令集对称式并行体系结构微处理器 |
US20070300048A1 (en) * | 2006-05-10 | 2007-12-27 | The Mathworks, Inc. | System and method for targeting commands to concurrent computing units executing a concurrent computing process |
US20080027569A1 (en) * | 2006-07-25 | 2008-01-31 | Sharp Kabushiki Kaisha | Control apparatus, control method for control apparatus, multi-functional apparatus, multi-functional apparatus control system, control program, and computer-readable storage medium |
JP4088335B1 (ja) * | 2007-08-10 | 2008-05-21 | ネットクリアスシステムズ株式会社 | 仮想キュー処理回路およびタスク処理装置 |
JP2009129219A (ja) * | 2007-11-26 | 2009-06-11 | Nec Corp | マルチプロセッサシステム |
CN102171647A (zh) * | 2009-10-26 | 2011-08-31 | 美国索尼电脑娱乐有限责任公司 | 使用即时数据分块的文件输入/输出调度 |
US20130060981A1 (en) * | 2011-09-06 | 2013-03-07 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
CN103250130A (zh) * | 2011-07-11 | 2013-08-14 | 邵凯艺 | 任务执行系统、数据处理设备以及任务发布设备和方法 |
CN105204821A (zh) * | 2014-05-21 | 2015-12-30 | 卡雷公司 | 处理器间同步系统 |
US20160217016A1 (en) * | 2015-01-26 | 2016-07-28 | Qualcomm Incorporated | Method and System for Accelerating Task Control Flow |
US20170147411A1 (en) * | 2014-06-19 | 2017-05-25 | Nec Corporation | Processing device, processing device control method, and storage medium |
CN109257941A (zh) * | 2017-05-12 | 2019-01-22 | 苹果公司 | 数字助理的同步和任务委派 |
-
2019
- 2019-02-03 CN CN201910108584.7A patent/CN111526172B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05204639A (ja) * | 1992-01-30 | 1993-08-13 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
CN1437102A (zh) * | 2002-09-11 | 2003-08-20 | 北京南思达科技发展有限公司 | 宏指令集对称式并行体系结构微处理器 |
US20070300048A1 (en) * | 2006-05-10 | 2007-12-27 | The Mathworks, Inc. | System and method for targeting commands to concurrent computing units executing a concurrent computing process |
US20080027569A1 (en) * | 2006-07-25 | 2008-01-31 | Sharp Kabushiki Kaisha | Control apparatus, control method for control apparatus, multi-functional apparatus, multi-functional apparatus control system, control program, and computer-readable storage medium |
JP4088335B1 (ja) * | 2007-08-10 | 2008-05-21 | ネットクリアスシステムズ株式会社 | 仮想キュー処理回路およびタスク処理装置 |
JP2009129219A (ja) * | 2007-11-26 | 2009-06-11 | Nec Corp | マルチプロセッサシステム |
CN102171647A (zh) * | 2009-10-26 | 2011-08-31 | 美国索尼电脑娱乐有限责任公司 | 使用即时数据分块的文件输入/输出调度 |
CN103250130A (zh) * | 2011-07-11 | 2013-08-14 | 邵凯艺 | 任务执行系统、数据处理设备以及任务发布设备和方法 |
US20130060981A1 (en) * | 2011-09-06 | 2013-03-07 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
CN105204821A (zh) * | 2014-05-21 | 2015-12-30 | 卡雷公司 | 处理器间同步系统 |
US20170147411A1 (en) * | 2014-06-19 | 2017-05-25 | Nec Corporation | Processing device, processing device control method, and storage medium |
US20160217016A1 (en) * | 2015-01-26 | 2016-07-28 | Qualcomm Incorporated | Method and System for Accelerating Task Control Flow |
CN109257941A (zh) * | 2017-05-12 | 2019-01-22 | 苹果公司 | 数字助理的同步和任务委派 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698869A (zh) * | 2020-12-31 | 2021-04-23 | 青岛海尔科技有限公司 | 指令确定方法及装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111526172B (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9733981B2 (en) | System and method for conditional task switching during ordering scope transitions | |
CN110413412B (zh) | 一种基于gpu集群资源分配的方法和装置 | |
US20190163519A1 (en) | Systems and methods for interrupt distribution | |
CN110187958B (zh) | 一种任务处理方法、装置、系统、设备及存储介质 | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
CN116467061B (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
CN113010286A (zh) | 并行任务调度方法、装置、计算机设备和存储介质 | |
CN114637536A (zh) | 任务处理方法、计算协处理器、芯片及计算机设备 | |
CN114153500A (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
CN111526172B (zh) | 一种多设备管理方法和管理系统 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
US20240036921A1 (en) | Cascading of Graph Streaming Processors | |
US20020052726A1 (en) | Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program | |
TW202109286A (zh) | 純函數語言神經網路加速器系統及結構 | |
CN110928575B (zh) | 一种多设备同步控制系统和控制方法 | |
CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
US11481250B2 (en) | Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values | |
US9437299B2 (en) | Systems and methods for order scope transitions using cam | |
US20190286483A1 (en) | Thread scheduling for multithreaded data processing environments | |
CN115269226A (zh) | 一种基于原子消息与共享缓存的多线程多级并行通信方法 | |
CN110737533B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
CN111078449B (zh) | 信息处理方法、信息处理装置及终端设备 | |
CN112181641A (zh) | 线程处理方法、装置、设备及存储介质 | |
CN114637594A (zh) | 多核处理设备、任务分配方法、装置及存储介质 | |
WO2019188175A1 (ja) | デッドロック回避方法、デッドロック回避装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221031 Address after: Room 320, No. 608, Xinlian Road, Binjiang District, Hangzhou, Zhejiang 310051 Applicant after: Hangzhou Denglin Hanhai Technology Co.,Ltd. Address before: Room 901, 570 shengxia Road, Pudong New Area, Shanghai 201203 Applicant before: Shanghai Denglin Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |