CN115629859A - 适用于智能处理器的任务处理系统与其任务处理方法 - Google Patents
适用于智能处理器的任务处理系统与其任务处理方法 Download PDFInfo
- Publication number
- CN115629859A CN115629859A CN202211288142.3A CN202211288142A CN115629859A CN 115629859 A CN115629859 A CN 115629859A CN 202211288142 A CN202211288142 A CN 202211288142A CN 115629859 A CN115629859 A CN 115629859A
- Authority
- CN
- China
- Prior art keywords
- processor
- task
- instruction
- intelligent
- processing system
- 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 15
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种适用于智能处理器的任务处理系统与任务处理方法,任务处理系统包括智能处理器以及指令处理器。指令处理器接收源自主处理器的任务,并响应任务启动该智能处理器。该第一智能处理器根据任务自多个固件代码中选取一对应固件代码,并重新启动该指令处理器以使该指令处理器运行该对应固件代码,并与指令处理器协同运作完成第一任务。如此,能够降低任务处理时间,从而改善任务系统的运行效率。
Description
技术领域
本申请涉及智能处理器的任务调度技术,尤其是适用于智能处理器的任务处理系统与其任务处理方法。
背景技术
在现有的处理系统中,智能处理器与系统中的主要处理器之间的任务调度模式属于串行模式。例如,主要处理器会使用其内核线程(kernel thread)来指派待执行的多个任务,并通知智能处理器执行该些任务中的一个任务。在智能处理器执行完一个任务后,需回报该内核线程该任务的执行结果。在收到该执行结果后,内核线程再指派下一个任务给智能处理器执行。在上述的调度模式中,若主要处理器的工作负载变重而使得内核线程的响应速度变慢时,将使得智能处理器的任务调度出现延迟,而使得整体运作时间明显变长。
发明内容
在一些实施例中,本案的目的之一在于提供一种任务处理系统与任务处理方法,其可改善先前技术的不足。
在一些实施例中,任务处理系统包括第一智能处理器;以及第一指令处理器,用于接收来自主处理器的第一任务,并响应第一任务启动第一智能处理器,其中,第一智能处理器根据第一任务从多个固件代码中选取对应固件代码,并重新启动第一指令处理器以使第一指令处理器运行对应固件代码,以及与第一指令处理器协同运作完成第一任务。
在一些实施例中,任务处理方法包括下列操作:通过指令处理器响应来自主处理器的任务启动智能处理器;通过智能处理器根据任务从多个固件代码中选取对应固件代码,并重新启动指令处理器以使指令处理器运行对应固件代码;以及通过智能处理器与指令处理器协同运作以完成任务。
本申请实施提供的方案,通过降低对主处理器的依赖,进而降低主处理器的负载量,从而获得低延迟的处理时间,进而使得整体运作时间缩短,提高了处理效率。
附图说明
有关本案的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。
图1为根据本案一些实施例绘制一种任务处理系统的示意图;
图2A为根据本案一些实施例绘制图1的指令处理器之示意图;
图2B为根据本案一些实施例绘制图2A的任务队列之数据示意图;
图3A为根据本案一些实施例绘制的图1的主处理器、智能处理器以及指令处理器之间的运作时序示意图;
图3B为根据本案一些实施例绘制图1的主处理器以及多个指令处理器之间的运作时序示意图;以及
图4为根据本案一些实施例绘制的一种任务处理方法的流程图。
具体实施方式
本文所使用的所有词汇具有其通常的意涵。上述之词汇在普遍常用之字典中之定义,在本案的内容中包括任一于此讨论的词汇之使用例子仅为示例,不应限制到本案之范围与意涵。同样地,本案亦不仅以于此说明书所示出的各种实施例为限。
关于本文中所使用之『耦接』或『连接』,均可指二或多个元件相互直接作实体或电性接触,或是相互间接作实体或电性接触,亦可指二或多个元件相互操作或动作。如本文所用,用语『电路』可为由至少一个晶体管与/或至少一个主被动元件按一定方式连接以处理信号的装置。
图1为根据本案一些实施例绘制一种任务处理系统100的示意图。于一些实施例中,任务处理系统100包括主处理器110、存储器120、指令处理器130、指令处理器135、智能处理器(intelligence processing unit,IPU)140以及智能处理器145。上述的多个硬件元件可经由一或多个总线或数据线相互耦接。
主处理器110为任务处理系统100中的主要处理器,其具有相对较高的运算能力(相较于指令处理器130与/或指令处理器135)。例如,主处理器110可运行任务处理系统100上的操作系统(例如为,但不限于,Linux)。
在一些实施例中,存储器120可为,但不限于,动态随机存取存储器。存储器120储存有多个固件代码D1~DM,智能处理器140可根据要执行的任务(task)从多个固件代码D1~DM中选出一对应固件代码(后文简称为固件代码Di),并将此固件代码Di传输给指令处理器130,以使指令处理器130运行固件代码Di。如此,指令处理器130可运行一特定固件代码(即固件代码Di所对应的固件代码)以与智能处理器140协同运作来完成所要执行的任务。
举例而言,待执行的任务为使用一特定神经网络模型来执行的运算,其所使用的部分数据的数据格式较适合使用指令处理器130(相较于使用智能处理器140)进行运算。通过解析描述该特定神经网络模型的相关数据,主处理器110可确认该特定神经网络模型与多个固件代码D1~DM中之至少一者的对应关系,并根据此对应关系确认适合该任务使用的固件代码Di。主处理器110可将上述的相关信息一并传输到指令处理器130的任务队列(如图2B中的任务队列TQ)中。如此一来,基于指令处理器130的触发,智能处理器140可根据上述的相关信息来从多个固件代码D1~DM中选出固件代码Di。智能处理器140可将固件代码Di传输给指令处理器130,并重新启动指令处理器130来使得指令处理器130运行固件代码Di。具体地,智能处理器140从存储器120中获取固件代码Di,并将所获取到的固件代码Di传输给指令处理器130。上述的操作同样适用于指令处理器135以及智能处理器145,故于此不再重复赘述。
在一些实施例中,指令处理器130与指令处理器135中每一者可为精简指令集处理器。在一些实施例中,指令处理器130与指令处理器135中每一者可为基于开源指令集架构(open standard instruction set architecture)的处理器。例如,指令处理器130与指令处理器135中每一者可为,但不限于,第五代精简指令集处理器(RISC-V)。指令处理器130与指令处理器135中每一者具有相对较低的运算能力(相较于主处理器110)。例如,指令处理器130与指令处理器135并不会执行任务处理系统100的操作系统,且其工作主要是从主处理器110接收指派给智能处理器140与/或智能处理器145进行处理的任务,进而执行智能处理器140与/或智能处理器145的任务调度。
智能处理器140与/或智能处理器145中每一者是用来执行一人工智能技术的专用处理器,其可用来处理神经网络(例如包括,但不限于,卷积神经网络)的相关应用与/或运算。如前所述,指令处理器130用来处理智能处理器140的任务调度,且指令处理器135用来处理智能处理器145的任务调度。换言之,指令处理器130是对应于智能处理器140设置,且指令处理器135是对应于智能处理器145设置。在本申请的实施例中,一指令处理器与一智能处理器一一对应。关于任务调度的详细操作将于后参照图3A说明。
在一些实施例中,多个智能处理器140与145中每一者可为多核智能处理器中的一处理单元。类似地,在一些实施例中,多个指令处理器130与135中每一者可为多核精简指令集处理器中的一处理单元。上述关于多个指令处理器130与135以及多个智能处理器140与145的设置方式与/或种类皆用于示例,且本案并不以此为限。另外,图1仅以两个指令处理器130与135与两个智能处理器140与145为例,但本案并不以此为限。依据实际应用需求,可相应调整任务处理系统100中所使用的指令处理器的数量与智能处理器的数量。
图2A为根据本案一些实施例绘制图1的指令处理器130之示意图。指令处理器130与指令处理器135具有相同架构。以指令处理器130为例,指令处理器130包括运算电路210以及紧密耦合存储器(tightly coupled memory,TCM)电路220。如后图3A所述,运算电路210可根据对应任务来启动(或触发)智能处理器140,并在智能处理器140启动后运行由智能处理器140所传送的固件代码Di以与智能处理器140协同运作来执行该对应任务。再者,在智能处理器140回报已执行完任务后,运算电路210会回报主处理器110该任务已执行完成。
紧密耦合存储器电路220可用以储存固件代码Di以及任务队列(task queue)TQ,其中任务队列TQ包括由主处理器110指派的至少一第一任务。详细而言,紧密耦合存储器电路220包括指令紧密耦合存储器(instruction tightly coupled memory,ITCM)222以及数据紧密耦合存储器(data tightly coupled memory,DTCM)224。指令紧密耦合存储器222储存固件代码Di的指令数据ID。数据紧密耦合存储器224包括数据区224A与数据区224B,其中数据区224A储存固件代码Di的处理数据PD,且数据区224B储存任务队列TQ。一般而言,紧密耦合存储器电路220的数据传输速率高于存储器120的数据传输速率。因此,相较于在存储器120上运行固件代码Di,运算电路210可运行储存于紧密耦合存储器电路220中的固件代码Di来获得更快的处理速度。在一些实施例中,主处理器110具有将数据写入紧密耦合存储器电路220的能力,主处理器110在指派任务时可直接将任务相关信息写入紧密耦合存储器电路220内的任务队列TQ中,如此可提升任务指派的效率。
图2B为根据本案一些实施例绘制图2A的任务队列TQ之数据示意图。在一些实施例中,任务队列TQ可用来指示多个任务的处理顺序。在一些实施例中,数据区224B可操作为环形缓冲区(ring buffer),其储存有标头H以及多个任务TK1~TKn等多个信息。标头H记录读取指标(read pointer)信号RP以及与写入指标(write pointer)信号WP。读取指标信号RP可指示储存在数据区224B中的多个有效数据(即多个任务TK1~TKn的相关信息)的开始位置,且写入指标信号WP可指示储存在数据区224B中的多个有效数据的结尾位置。主处理器110可根据读取指标信号RP与写入指标信号WP之间的差值判断数据区224B的剩余数据容量。例如,若该差值越小且为正数,代表数据区224B具有越多的可用容量(即待处理的任务数量较少)。
在一些实施例中,主处理器110可根据第一差值(对应于指令处理器130)以及第二差值(对应于指令处理器135)来决定将待处理的任务分配到指令处理器130的任务队列(例如为图2B中的任务队列TQ),或是分配到指令处理器135的任务队列,其中第一差值是由指令处理器130的读取指标信号RP与写入指标信号WP之间的差值决定,而第二差值是由指令处理器135的读取指标信号与写入指标信号之间的差值决定。例如,若指令处理器130所对应的第一差值低于指令处理器135所对应的第二差值,代表指令处理器130的任务队列中的任务数量较少(相较于指令处理器135)。于此条件下,主处理器110可优先将待处理的任务分配为经由指令处理器130进行调度的第一任务。或者,若指令处理器135所对应的第二差值低于指令处理器130所对应的第一差值,代表指令处理器135的任务队列中的任务数量较少(相较于指令处理器130)。于此条件下,主处理器110可优先将待处理的任务分配为经由指令处理器135进行调度的第二任务。进一步来说,当任务处理系统100包括多组的指令处理器及智能处理器时,主处理器110系比较各指令处理器对应的读取指标信号RP与写入指标信号WP之间的差值来分配任务。
多个任务TK1~TKn的相关信息包括写入智能处理器140的多个暂存器的信息。以任务TK1为例,任务TK1的相关信息可包括,但不限于,智能处理器的指令(标注为IPU指令)之储存地址、智能处理器的数据(标注为IPU数据)之储存地址、存储器管理单元(memorymanagement unit)表的储存地址以及固件代码Di的储存地址。在此实施例中,前述各储存地址系指在存储器120中的地址,也就是说,任务处理系统100或主处理器110系事先将与各任务相关的指令及数据储存于存储器120,并于指派任务时将相关指令及数据的储存地址包括于任务TK1~TKn的任务信息中。当运算电路210根据读取指标信号RP读取到任务TK1时,运算电路210可启动智能处理器140,并将任务TK1的相关信息写入智能处理器140。
如此一来,智能处理器140可根据固件代码Di的储存地址获得固件代码Di的储存地址而自存储器120获得该固件代码Di,并根据其他信息来获得执行任务TK1所需的指令与数据。如此,智能处理器140可执行前述的操作来重新启动指令处理器130,以与指令处理器130协同运作来完成任务TK1的相关运算。
图3A为根据本案一些实施例绘制的图1的主处理器110、智能处理器140以及指令处理器130之间的运作时序示意图。
在操作S301,主处理器110在系统上电后启动智能处理器140,以执行首次任务。在操作S302,智能处理器140可选对应于首次任务的固件代码,并启动指令处理器130以协同执行首次任务。例如,在任务处理系统100上电后,主处理器110可响应用户层中的软件应用所发出的首次任务将任务相关信息写入智能处理器140的暂存器并启动智能处理器140。智能处理器140可根据首次任务的相关信息自存储器120中挑出对应固件代码(假设为固件代码D1)。智能处理器140可传输固件代码D1给指令处理器130,并启动指令处理器130,以使指令处理器130运行固件代码D1以与智能处理器140协同运作来执行该首次任务。
在操作S303,智能处理器140通知指令处理器130首次任务已完成,并进入休眠模式。在操作S304,指令处理器130通知主处理器110首次任务已完成。例如,在首次任务执行完后,智能处理器140可藉由发出中断请求(Interrupt Request)来通知指令处理器130该首次任务已完成。类似地,在接收到智能处理器140的回应后,指令处理器130可藉由发出中断请求来通知主处理器110该首次任务已完成。在一些实施例中,智能处理器140每完成一任务即进入休眠模式,以节省电源,休眠模式可为关机、省电模式、待机模式或其他具有低功耗的操作模式。在一些实施例中,指令处理器130还将任务执行后的运行结果反馈给主处理器110。
在操作S305,指令处理器130响应一任务重新启动智能处理器140。在操作S306,智能处理器140选择对应于该任务的固件代码,并重新启动指令处理器130来运行该固件代码以执行该任务。例如,指令处理器130可根据图2B中的任务队列TQ(其包括由主处理器110分配的一或多个任务)中读取尚未执行的一任务(例如为任务TK1),并重新启动智能处理器140并将任务TK1的相关信息传送给智能处理器140(即将任务相关信息写入智能处理器140的暂存器),由于此时智能处理器140系在休眠模式中,此处的重新启动包括唤醒智能处理器140。换言之,指令处理器130响应一任务可在未收到主处理器110的指令下重新启动智能处理器140以执行下一个任务(例如为任务TK1)。智能处理器140可根据任务TK1的相关信息确认存储器120中对应于任务TK1的固件代码(假设为固件代码D2)。如此,智能处理器140可传输固件代码D2给指令处理器130,并重新启动指令处理器130,以使指令处理器130运行固件代码D2以与智能处理器140协同运作来执行任务TK1。在一些实施例中,智能处理器140可包括一直接存储器存取电路,其耦接存储器120及指令处理器130内的紧密耦合存储器电路220,智能处理器140可利用此直接存储器存取电路将固件代码D2自存储器120写入指令处理器130的紧密耦合存储器电路220中。在操作S307,智能处理器140通知指令处理器130该任务(例如为任务TK1)已完成,并进入休眠模式。在操作S308,指令处理器130通知主处理器110该任务(例如为任务TK1)已完成。
当任务队列TQ中存在尚未执行的任务时,即进行操作S309~S312,操作S309~S312的细节类似于操作S305~S308,在此不再赘述。
依此类推,应可理解,在一些实施例中,在任务处理系统100上电后的首次任务中,智能处理器140是经由主处理器110启动。在之后的运作过程中,智能处理器140是经由指令处理器130启动来执行后续的任务。再者,在执行任务的过程中,智能处理器140与指令处理器130是相互启动。在每次执行完任务后,智能处理器140会进入休眠模式来降低功耗,直到经由指令处理器130重新启动。在每次执行任务时,智能处理器140选择合适的固件代码,并传输此固件代码给指令处理器130,并重新启动指令处理器130。经重新启动后的指令处理器130可运行储存于紧密耦合存储器电路220中的固件代码,以与智能处理器140协同运作来完成任务。藉由每个任务选择对应的固件代码,每个固件代码可非常精简又符合任务的需求,进而降低指令处理器130执行固件代码时所耗费的资源并减少紧密耦合存储器电路220的容量需求。在上述任务调度的过程中,主处理器110每次在指派任务后即释放相关内核线程(kernel thread),智能处理器140与指令处理器130在执行任务时不会用到主处理器110的内核线程。如此,可降低对主处理器110的依赖,并可降低主处理器110的负载量,从而获得低延迟的处理时间。
图3A是以主处理器110、智能处理器140以及指令处理器130为例进行说明。主处理器110、智能处理器145以及指令处理器135之间的运作时序可参照图3A理解,故不再重复赘述。另外,由于任务处理系统100为并列架构,故智能处理器140以及指令处理器130之间的运作可与智能处理器145以及指令处理器135之间的运作并列处理。
图3B为根据本案一些实施例绘制图1的主处理器110、指令处理器130以及指令处理器135之间的运作时序示意图。如前所述,主处理器110可根据第一差值以及第二差值来决定将待处理的任务分配到指令处理器130的任务队列(例如为图2B中的任务队列TQ),或是分配到指令处理器135的任务队列。第一差值是由指令处理器130的读取指标信号RP与写入指标信号WP(如图2B所示)之间的差值决定。类似地,第二差值是由指令处理器135的读取指标信号与写入指标信号之间的差值决定。
在图3B的例子中,假设指令处理器135的任务队列较满,因此在操作S320、操作S321中,主处理器110可根据具有较低数值的第一差值来将任务指派到智能处理器130的任务队列。接着,在操作S322中,主处理器110可根据具有较低数值的第二差值来将任务指派到智能处理器135的任务队列。依此类推,在操作S323中,主处理器110可根据具有较低数值的第一差值来将任务指派到智能处理器130的任务队列。在操作S324中,主处理器110可根据具有较低数值的第二差值来将任务指派到智能处理器135的任务队列。藉由上述的操作,主处理器110可将新的任务指派到具有较少的待执行任务的指令处理器,以降低整体运作上的延迟(或等待)时间。
在一些实施例中,图3A所示的运作时序与图3B所示的运作时序可并列地进行。换句话说,在指令处理器130接收任务的运作时序(即图3B所示的时序)可独立于智能处理器140执行对应任务的运作时序(即图3A所示的时序)。详细而言,智能处理器140可根据指令处理器130的任务队列TQ来执行待执行的任务,而不用依赖或等待主处理器110的指令与/或响应。类似地,主处理器110可根据前述的第一差值与第二差值来分配任务,而不用依赖或等待智能处理器140与/或智能处理器145的回应。如此,主处理器110、智能处理器140与/或智能处理器145可独立且并行地执行各自的运作,以提高整体处理效率。
图4为根据本案一些实施例绘制的一种任务处理方法400的流程图。在操作S410,通过指令处理器响应来自主处理器的任务启动智能处理器。在操作S420,通过智能处理器根据该任务自多个固件代码中选取对应固件代码,并重新启动指令处理器以使指令处理器运行对应固件代码。在操作S430,通过该智能处理器与该指令处理器协同运作以完成该任务。
上述多个操作之说明可参照前述各个实施例,故不再重复赘述。上述任务处理方法400的多个操作仅为示例,并非限定需依照此示例中的顺序执行。在不违背本案的各实施例的操作方式与范围下,在任务处理方法400下的各种操作当可适当地增加、替换、省略或以不同顺序执行(例如可以是同时执行或是部分同时执行)。
综上所述,本案一些实施例中的任务处理系统以及任务处理方法可利用指令处理器来实现具有并行性的任务调度与可独立执行各自操作的系统架构。如此,可降低主处理器的负载并来获得具有较低延迟的任务处理时间,从而改善整体系统的运行效率。
虽然本案之实施例如上所述,然而该些实施例并非用来限定本案,本技术领域具有通常知识者可依据本案之明示或隐含之内容对本案之技术特征施以变化,凡此种种变化均可能属于本案所寻求之专利保护范畴,换言之,本案之专利保护范围须视本说明书之申请专利范围所界定者为准。
【符号说明】
100:任务处理系统;
110:主处理器;
120:存储器;
130,135:指令处理器;
140,145:智能处理器;
210:运算电路;
220:紧密耦合存储器电路;
222:指令紧密耦合存储器;
224:数据紧密耦合存储器;
224A,224B:数据区;
400:任务处理方法;
D1-DM,Di:固件代码;
H:标头;
ID:指令数据;
PD:处理数据;
RP:读取指标信号;
S301-S312,S320-S234,S410,S420,S430:操作;
TK1-TKn:任务;
TQ:任务队列;
WP:写入指标信号。
Claims (14)
1.一种任务处理系统,包括:
第一智能处理器;以及
第一指令处理器,用于接收来自主处理器的第一任务,并响应所述第一任务启动所述第一智能处理器,
其中,所述第一智能处理器根据所述第一任务从多个固件代码中选取对应固件代码,并重新启动所述第一指令处理器以使所述第一指令处理器运行所述对应固件代码,以及与所述第一指令处理器协同运作完成所述第一任务。
2.如权利要求1所述的任务处理系统,其特征在于,所述第一指令处理器包括:
运算电路,用于根据所述第一任务启动所述第一智能处理器,并运行所述对应固件代码以与所述第一智能处理器协同运作来执行所述第一任务;以及
紧密耦合存储器电路;
其中,所述第一智能处理器将所述对应固件代码储存于所述紧密耦合存储器电路中。
3.如权利要求1所述的任务处理系统,其特征在于,所述第一任务的信息包括所述第一智能处理器的指令在存储器的储存地址及所述对应固件代码在所述存储器的储存地址。
4.如权利要求1所述的任务处理系统,其特征在于,所述第一指令处理器包括紧密耦合存储器电路,所述主处理器用于将所述第一任务的信息储存于所述紧密耦合存储器电路中。
5.如权利要求1所述的任务处理系统,其特征在于,所述第一智能处理器在所述任务处理系统上电后通过所述主处理器直接启动以执行首次任务,且在所述首次任务执行之后,所述第一智能处理器通过所述第一指令处理器重新启动。
6.如权利要求1所述的任务处理系统,其特征在于,所述第一智能处理器执行所述第一任务后,所述第一智能处理器进入休眠模式直到通过所述第一指令处理器重新启动。
7.如权利要求1所述的任务处理系统,其特征在于,所述第一指令处理器启动所述第一智能处理器时未占用所述主处理器的内核线程。
8.如权利要求1所述的任务处理系统,其特征在于,还包括:
第二智能处理器;以及
第二指令处理器,用于接收来自所述主处理器第二任务,并响应所述第二任务启动所述第二智能处理器,以执行所述第二任务,
其中,所述第一指令处理器中储存有包括所述第一任务的第一任务队列,所述第二指令处理器中储存有包括所述第二任务的第二任务队列,所述主处理器根据第一差值与第二差值确定将待处理的任务写入所述第一任务队列或所述第二任务队列,所述第一差值根据对应于所述第一指令处理器的第一读取指标信号与第一写入指标信号确定,且所述第二差值根据对应于所述第二指令处理器的第二读取指标信号与第二写入指标信号确定。
9.如权利要求1所述的任务处理系统,其特征在于,所述第一指令处理器的运算能力低于所述主处理器的运算能力。
10.如权利要求1所述的任务处理系统,其特征在于,所述任务处理系统的操作系统由所述主处理器执行。
11.如权利要求1所述的任务处理系统,其特征在于,所述第一指令处理器为基于开源指令集架构的处理器。
12.一种任务处理方法,应用于处理系统,其特征在于,包括:
通过指令处理器响应来自主处理器的任务启动智能处理器;
通过所述智能处理器根据所述任务从多个固件代码中选取对应固件代码,并重新启动所述指令处理器以使所述指令处理器运行所述对应固件代码;以及
通过所述智能处理器与所述指令处理器协同运作以完成所述任务。
13.如权利要求12所述的任务处理方法,其特征在于,所述智能处理器将所述对应固件代码储存至所述指令处理器的紧密耦合存储器电路中。
14.如权利要求13所述的任务处理方法,其特征在于,所述主处理器将所述任务的信息储存至所述指令处理器的紧密耦合存储器电路中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211288142.3A CN115629859A (zh) | 2022-10-20 | 2022-10-20 | 适用于智能处理器的任务处理系统与其任务处理方法 |
US18/321,042 US20240134686A1 (en) | 2022-10-19 | 2023-05-21 | Task processing system and task processing method applicable to intelligence processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211288142.3A CN115629859A (zh) | 2022-10-20 | 2022-10-20 | 适用于智能处理器的任务处理系统与其任务处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115629859A true CN115629859A (zh) | 2023-01-20 |
Family
ID=84906178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211288142.3A Pending CN115629859A (zh) | 2022-10-19 | 2022-10-20 | 适用于智能处理器的任务处理系统与其任务处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240134686A1 (zh) |
CN (1) | CN115629859A (zh) |
-
2022
- 2022-10-20 CN CN202211288142.3A patent/CN115629859A/zh active Pending
-
2023
- 2023-05-21 US US18/321,042 patent/US20240134686A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240134686A1 (en) | 2024-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1717645B (zh) | 用于多线程处理器性能控制的装置和方法 | |
US9977664B2 (en) | Information processing device and information processing method in heterogenous multi-cores having different architectures | |
KR101455009B1 (ko) | 이질적 리소스와의 명령어 세트 아키텍처-기반 시퀀서간 통신 | |
US8161482B1 (en) | Power optimization for multi-core devices | |
US9104470B2 (en) | Task processor | |
CN101634884B (zh) | 电源管理控制器与方法 | |
CN103842933B (zh) | 多核平台中的受约束引导技术 | |
TWI739345B (zh) | 中斷處理系統與中斷處理方法 | |
CN111913822B (zh) | 一种基于amp架构的核间通信方式 | |
EP3588288A1 (en) | A multithreaded processor core with hardware-assisted task scheduling | |
CN103019655B (zh) | 面向多核微处理器的内存拷贝加速方法及装置 | |
US20120144146A1 (en) | Memory management using both full hardware compression and hardware-assisted software compression | |
CN115981833A (zh) | 一种任务处理方法及装置 | |
EP2282265A1 (en) | A hardware task scheduler | |
CN112306652A (zh) | 带有上下文提示的功能的唤醒和调度 | |
WO2020177567A1 (zh) | 一种迁移数据的方法、装置及系统 | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作系统 | |
CN115629859A (zh) | 适用于智能处理器的任务处理系统与其任务处理方法 | |
WO2010137092A1 (ja) | マルチオペレーティングシステム制御方法及びプロセッサシステム | |
TWI823655B (zh) | 適用於智慧處理器的任務處理系統與任務處理方法 | |
US20180341482A1 (en) | Method and arrangement for utilization of a processing arrangement | |
US20060095905A1 (en) | Method and apparatus for servicing threads within a multi-processor system | |
US11921563B1 (en) | Operating device of cross-power domain multiprocessor and communication method thereof | |
WO2023225991A1 (en) | Dynamic establishment of polling periods for virtual machine switching operations | |
CN117591271A (zh) | 一种Linux系统下实时数据采集与保存的方法、系统、设备 |
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 |