CN112513809A - 处理器、任务响应方法、可移动平台、及相机 - Google Patents
处理器、任务响应方法、可移动平台、及相机 Download PDFInfo
- Publication number
- CN112513809A CN112513809A CN201980050197.0A CN201980050197A CN112513809A CN 112513809 A CN112513809 A CN 112513809A CN 201980050197 A CN201980050197 A CN 201980050197A CN 112513809 A CN112513809 A CN 112513809A
- Authority
- CN
- China
- Prior art keywords
- processor
- special
- module
- response
- task
- 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
- 230000004044 response Effects 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012545 processing Methods 0.000 claims description 64
- 238000001514 detection method Methods 0.000 claims description 54
- 230000008569 process Effects 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000013473 artificial intelligence Methods 0.000 claims description 7
- 230000001934 delay Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 21
- 238000004590 computer program Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010408 sweeping Methods 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
一种处理器(300)、任务响应方法、可移动平台、相机及计算机可读存储介质。所述处理器(300)包括:总线接口(306),控制寄存器(304),以及控制器(302)。其中,总线接口(306)能够耦接于所述处理器(300)外部的多个专用模块(308,310,312,314),用于接收关于多个所述专用模块(308,310,312,314)的多个任务完成请求。控制寄存器(304)用于存储所述处理器(300)响应多个所述专用模块(308,310,312,314)的多个响应方式;其中,多个所述响应方式不同。其中,所述处理器(300)根据所述控制寄存器(304)中的相应的所述响应方式,响应多个所述专用模块(308,310,312,314)的多个所述任务完成请求。根据上述处理器、任务响应方法、可移动平台、相机及计算机可读存储介质,可提高***效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种处理器、任务响应方法、可移动平台、相机及计算机可读存储介质。
背景技术
随着技术的不断发展,由中央处理器(Center Process Unit,以下简称为CPU)处理执行的指令或者功能有限。如果完全依靠CPU处理某些特定任务将无法高效的完成这些特定任务。因此,为了提高CPU的执行效率、完善***功能,会在CPU周围增加具有特定功能的协处理器单元或者加速处理单元(下文中统称为专用模块),从而让CPU和专用模块并行工作,以提高整体***的工作效率。然而,由于CPU与专用模块进行交互时,可能会打断CPU正在处理的任务,从而导致***效率降低。
发明内容
有鉴于此,本发明实施例提供一种处理器、任务响应方法、可移动平台、相机及计算机可读存储介质。
根据本申请实施例的第一方面,提供了一种处理器,包括:总线接口,以及控制寄存器。其中,总线接口能够耦接于所述处理器外部的多个专用模块,用于接收关于多个所述专用模块的多个任务完成请求。控制寄存器用于存储所述处理器响应多个所述专用模块的多个响应方式;其中,多个所述响应方式不同。处理器与所述控制寄存器相耦接,用于根据所述控制寄存器中的相应的所述响应方式,响应多个所述专用模块的多个所述任务完成请求。
根据本申请实施例的第二方面,提供了一种任务响应方法,包括:接收耦接于总线接口的、位于处理器外部的多个专用模块对应的多个任务完成请求;获取所述处理器响应多个所述专用模块的多个响应方式,以及将多个所述响应方式存储于控制寄存器中;其中,多个所述响应方式不同;以及根据所述控制寄存器中的相应的所述响应方式,响应多个所述专用模块的多个所述任务完成请求。
根据本申请实施例的第三方面,提供了一种存储有计算机指令的计算机可读存储介质。当所述计算机指令被一个或多个处理器执行时,所述一个或多个处理器执行包括以下的动作:接收耦接于总线接口的、位于处理器外部的多个专用模块对应的多个任务完成请求;获取所述处理器响应多个所述专用模块的多个响应方式,以及将多个所述响应方式存储于控制寄存器中;其中,多个所述响应方式不同;以及根据所述控制寄存器中的相应的所述响应方式,响应多个所述任务完成请求。
根据本申请实施例的第四方面,提供了一种可移动平台。所述可移动平台包括本申请实施例的第一方面提到的处理器。
根据本申请实施例的第五方面,提供了一种相机。所述相机包括本申请实施例的第一方面提到的处理器。
根据本发明实施例的处理器、任务响应方法、可移动平台、相机及计算机可读存储介质,可提高***效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为根据本发明一实施方式的处理器与专用模块的示意图;
图2为图1所示的处理器的中断响应方式的流程图;
图3为根据本发明另一实施方式的处理器和多个专用模块的示意图;
图4为图1所示的控制寄存器配置的示意图;
图5为图1所示的处理器的查询指令的示意图;
图6a为图1所示的处理器在根据本发明一实施方式的查询方式下响应专用模块的流程图;
图6b为图1所示的处理器在根据本发明一实施方式的查询方式下响应专用模块的流程图;
图7a为图1所示的处理器使用根据本发明一实施方式的查询指令的伪代码的示意图;
图7b为图1所示的处理器使用根据本发明另一实施方式的查询指令的伪代码的示意图;
图8为图1所示的处理器中的检测单元的示意图;
图9为图1所示的处理器中的检测模块的示意图;
图10为根据本发明实施方式的任务响应方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着技术的不断发展,由中央处理器(Center Process Unit,以下简称为CPU)处理所能执行的指令或者功能有限。如果完全依靠CPU处理某些特定任务将无法高效的完成特定任务。因此,为了提高CPU的执行效率、完善***功能,在现今常见***中,会在CPU周围增加具有特定功能的协处理器单元或者加速处理单元(下文中统称为专用模块),从而让CPU和专用模块并行工作,以提高整体***的工作效率。
请参见图1。图1为根据本发明一实施方式的处理器与专用模块的示意图。处理器106(例如,CPU)通过***总线104与内存102进行数据交互。此外,处理器106通过内部总线110与各种专用模块进行数据交互。也就是说,在结构上,这些专用模块通过内部总线110与处理器连接,从而接收来自处理器的指令或者配置信号。进一步,这些专用模块能够在完成特定任务后向处理器发送完成请求。此外,这些专用模块也通过内部总线110相互连接。其中,这些专用模块可以是具有图形处理功能的图形处理模块(Graphic Process Unit,GPU)120、矢量计算模块(Vector Process Unit)112、浮点处理模块(Floatpoint ProcessUnit,FPU)114,直接内存访问模块(Direct Memory Access,DMA)108或者类似的可处理某个特殊计算任务的专用处理单元。例如,人工智能(AI)加速器118、快速傅里叶变换(FastFourier Transform,FFT)116等等。这些专用模块可以通过扩展的指令集或者提供配置寄存器来扩展处理器的处理功能。然而,本发明并非限于此,也可以包括实现其他功能的专用模块。
以处理器106对内存102的数据搬运为例。在处理器106和内存102之间增加一组DMA108作为专用模块。处理器106向DMA108发送配置信息,以对DMA108中的配置寄存器进行配置,将需要从内存102中搬运数据的所在地址、需要搬运的数据大小等信息告知DMA108。配置完成之后,DMA108通过***总线104,按照处理器106的配置信息,向内存102进行数据搬运。而在DMA108进行搬运的过程中,处理器106并不介入DMA108搬运数据的过程,因此可以进行其他任务的处理。当DMA108完成搬运数据的任务结束后,DMA108将向处理器106发出中断请求。处理器106在接收到DMA108发出的中断请求后,停下正在处理的其他任务,响应DMA108发送的中断请求。在中断请求对应的中断服务函数中,处理器106处理DMA108搬运回的内存数据,并带着本次操作的结果以及状态继续执行被打断的任务。
DMA108任务完成后,处理器106响应DMA108的上述响应方式称为中断响应方式。请参见图2。图2为图1所示的处理器的中断响应方式的流程图。在中断响应方式中,如步骤S202所示,处理器(例如,CPU)配置专用模块(例如,DMA),并将关于专用模块的配置信号或其他指令发送给专用模块。此时,如步骤S222所示,专用模块从处理器接收配置信号,并配置专用模块中的配置寄存器,并且专用模块接收其他指令,以执行与这些指令相关的操作。在一个实施方式中,处理器向专用模块(例如,DMA)发送配置信号,以用于对专用模块中的配置寄存器进行配置。
在步骤S204中,处理器执行其他任务。此时,如步骤S224所示,专用模块在对配置寄存器进行配置之后,开始工作。例如,专用模块开始执行与配置信号或其他指令相关的操作或处理。如步骤S226所示,在完成与配置信号或处理器发送的其他指令相关的操作或处理之后,专用模块发出任务完成请求至处理器。
在步骤S206中,虽然处理器在执行其他任务,但是一旦处理器接收到专用模块发出的任务完成请求,处理器正在执行的其他任务被打断。此时,处理器进入中断服务程序。
如步骤S208所示,在执行完中断服务程序之后,处理器继续执行先前执行的、被打断的其他任务。
如步骤S210所示,在执行完先前执行的、被打断的任务后,处理器进入空闲状态,或者执行新的任务。
需要指出的是,在处理器以中断响应的方式与专用模块进行交互时,存在一些缺点,如下所示:
首先,当专用模块完成任务并发出中断请求后时,无论处理器当前在做什么工作,处理器都需要响应专用模块发送的中断请求,这意味着处理器当前处理的任务一定会被打断。因此,从某种程度上来说,这种交互和响应方式干扰了处理器正在处理的任务进程。以DMA搬运数据为例,如果DMA需要搬运的数据较小,但是搬运次数较多时,处理器正在处理的任务将不断被打断,致使***效率的降低。
其次,当专用模块完成任务时,若专用模块的任务处理结果与处理器当前处理的任务之间没有任何依赖关系,那么,打断处理器正在处理的任务是没有任何意义的。以DMA搬运数据为例,若处理器正在处理的任务不需要使用DMA搬运的数据,那么处理器此时响应DMA的中断请求,对于处理器正在处理的任务是没有意义的。并且,若如果处理器正在处理的任务具有较高的实时性要求,那么响应专用模块的中断请求,反而降低了处理器正在处理的任务实时性。
基于上述问题,本申请实施例提供了一种处理器、任务响应方法、可移动平台、相机及计算机可读存储介质,可提高***效率。需要说明的是,本申请实施例提供了一种处理器、任务响应方法及计算机可读存储介质适用于任意具有加速单元或协处理单元的***中。例如,所述处理器、任务响应方法可以应用于手机、电脑、个人平板或者PDA(PersonalDigital Assistant,个人数字助理)等具备联网的设备中。或者,所述处理器、任务响应方法也可以应用于可移动平台(如无人机、无人车或者无人船)、相机、扫地机器人或者智能音箱等设备中。
根据本发明的一实施方式,提出了一种处理器,包括:总线接口和控制寄存器。其中,总线接口,能够耦接于处理器外部的多个专用模块,用于接收关于多个专用模块的多个任务完成请求;以及控制寄存器,用于存储处理器响应多个专用模块的多个响应方式;其中,多个响应方式不同;其中,所述处理器根据控制寄存器中的相应的所述响应方式,响应多个专用模块的多个所述任务完成请求。
根据本发明的另一实施方式,提出了一种可移动平台。所述可移动平台包括上述处理器。
根据本发明的另一实施方式,提出了一种相机。所述相机包括上述处理器。
需要说明的是,本发明并非限于此,处理器也可以进一步包括一控制器,其与控制寄存器相耦接,用于根据控制寄存器中的相应的所述响应方式,响应多个所述专用模块的多个所述任务完成请求。请参见图3。图3为根据本发明另一实施方式的处理器和多个专用模块的示意图。处理器300包括控制器302,控制寄存器304,以及总线接口306。其中,总线接口306,能够耦接于处理器300外部的多个专用模块,用于接收关于这些专用模块的多个任务完成请求。控制寄存器304,用于存储处理器300响应这些专用模块的多个响应方式。这些多个所述响应方式互不相同。控制器302,与控制寄存器304相耦接,用于根据控制寄存器304中的相应的响应方式,响应这些专用模块的多个任务完成请求。
在图3中,处理器300(例如,CPU)通过内部总线与N个专用模块(SpecificFunction Unit,SFU)相接。***对N个专用模块进行编号,并确保所有专用模块的编号不重复。如图3所示,N个专用模块为专用模块SFU1 308,专用模块SFU2310,专用模块SFU3312......以及专用模块SFUN 314。由图3可知,在此实施例中,不需要对内部总线的连接方式作出改变。在另一实施方式中,***可以对N个专用模块进行分类。例如,根据专用模块的功能和用途来进行分类,并根据不同的分类结果来给专用模块进行编号。举例来说,若存在两种不同功能的专用模块,则将不同功能的专用模块用不同的编码来编号。如果存在A功能的多个专用模块A1、A2和A3和B功能的多个专用模块B1、B2和B3,则将专用模块A1、A2和A3编码为000,001,010,将专用模块B1、B2和B3编码为100,101,110。也就是说,利用4位比特来编码专用模块A1、A2和A3和专用模块B1、B2和B3。其中,专用模块的编号的最高位为“0”时,表示专用模块是具有A功能的专用模块。专用模块的编号的最高位为“1”时,表示专用模块是具有B功能的专用模块。或者,专用模块的编号的最高位为“1”时,表示专用模块是具有A功能的专用模块。专用模块的编号的最高位为“0”时,表示专用模块是具有B功能的专用模块。也就是说,只要不同功能的专用模块的最高位的比特值不同即可。例如,若存在多个图形处理模块、多个人工智能加速器,则将多个图像处理模块的最高位编码为“0”,将多个人工智能加速器的最高位编码为“1”。然而,本发明并非限于此。其他可以实现专用模块编码分类的编码方式均落入本发明的保护范围。
根据本发明的一实施方式,处理器采用多种响应方式响应N个专用模块。例如,多种响应方式包括中断方式和查询方式。在查询方式下,处理器(例如,CPU)通过执行查询指令,检查专用模块是否完成任务。若专用模块没有完成任务,则处理器进入中止状态;若检测到专用模块已完成该任务,处理器可以执行后续指令。由于处理器执行的查询指令是由根据算法或者***需求所决定的,因此,可以确保在执行查询指令时,处理器处在空闲状态,或者处理器此时急需使用专用模块的计算结果。
在处理器300中,增加一组控制寄存器(Control Register,CR)304,且控制寄存器304的位宽为N比特。控制寄存器304上的每个比特与N个专用模块一一对应。也就是说,控制寄存器304上的每个比特分别对应于专用模块SFU1 308,专用模块SFU2310,专用模块SFU3312......以及专用模块SFUN 314。
在一个实施方式中,控制寄存器304包括第一比特。第一比特用于存储对应于处理器300响应多个专用模块(例如,N个专用模块)中的第一专用模块(例如,专用模块SFU1308,专用模块SFU2310,专用模块SFU3 312......以及专用模块SFUN 314中的一个)的第一响应方式。其中,当第一比特为“0”时,第一响应方式为中断方式;当第一比特为“1”时,第一响应方式为查询方式。或者,当第一比特为“1”时,第一响应方式为中断方式;当所述第一比特为“0”时,第一响应方式为查询方式。也就是说,只要两种响应方式对应的比特的比特值不同即可。
根据本发明的一实施方式,控制寄存器304的每个比特可以配置为逻辑1或者逻辑0。当控制寄存器304的某个比特配置为逻辑1时,处理器300响应对应的专用模块的响应方式为查询方式。也就是说,此时该比特配置在查询模式下。当控制寄存器304的某个比特配置为逻辑0时,处理器300响应对应的专用模块的响应方式为中断方式。也就是说,此时该比特配置在中断模式下。
另外,在其他实施方式中,当控制寄存器304的某个比特配置为逻辑0时,处理器300响应对应的专用模块的响应方式为查询方式。也就是说,此时该比特配置在查询模式下。当控制寄存器304的某个比特配置为逻辑1(即,该比特配置在中断模式下)时,处理器300响应对应的专用模块的响应方式为中断方式。也就是说,此时该比特配置在中断模式下。
根据本发明的一实施方式,中断方式和查询方式可以共存在N个专用模块中。在配置控制寄存器304时,需要将与各个专用模块对应的比特配置在对应的逻辑值。对于处理器300来说,处理器300将根据控制寄存器304中的每一个比特所配置的逻辑值,确定N个专用模块中对应的专门模块所采取的响应方式。当控制寄存器的比特配置为逻辑1时,处理器响应相应的专用模块的响应方式为查询方式,以及当控制寄存器的比特配置为逻辑0时,处理器响应相应的专用模块的响应方式为中断方式。若处理器300响应专用模块SFU1 308和专用模块SFU3 312的响应方式为查询方式,处理器300响应专用模块SFU2 310和专用模块SFUN314的响应方式为中断方式,则专用模块SFU1 308和专用模块SFU3 312对应的比特配置为逻辑1,专用模块SFU2 310和专用模块SFUN 314对应的比特配置为逻辑0。在另一实施方式中,当控制寄存器的比特配置为逻辑0时,处理器响应相应的专用模块的响应方式为查询方式,以及当控制寄存器的比特配置为逻辑1时,处理器响应相应的专用模块的响应方式为中断方式。若处理器300响应专用模块SFU1 308和专用模块SFU3 312的响应方式为查询方式,处理器300响应专用模块SFU2 310和专用模块SFUN 314的响应方式为中断方式,则专用模块SFU1 308和专用模块SFU3 312对应的比特配置为逻辑0,专用模块SFU2 310和专用模块SFUN314对应的比特配置为逻辑1。
请参见图4,图4为图1所示的控制寄存器配置的示意图。如图4所示,专用模块SFU1420,专用模块SFU2 422和专用模块SFU4 426对应于控制寄存器中的比特分别为比特402,比特404,和比特408,并且比特402,比特404,比特408的逻辑值均为1。专用模块SFU3 424和专用模块SFU5 428对应于控制寄存器中的比特分别为比特406和比特410,并且比特406和比特410的逻辑值均为0。若控制寄存器的比特配置为逻辑1时表示查询方式以及控制寄存器的比特配置为逻辑0时表示中断方式,则处理器响应专用模块SFU1 420,专用模块SFU2 422和专用模块SFU4 426的响应方式均为查询方式,处理器响应专用模块SFU3 424和专用模块SFU5 428的响应方式均为中断方式。也就是说,处理器通过查询方式与专用模块SFU1 420,专用模块SFU2 422和专用模块SFU4 426进行交互,处理器通过中断方式与专用模块SFU3424和专用模块SFU5 428进行交互。反之,若控制寄存器的比特配置为逻辑0时表示查询方式以及控制寄存器的比特配置为逻辑1时表示中断方式,则处理器响应专用模块SFU1 420,专用模块SFU2 422和专用模块SFU4 426的响应方式均为中断方式,处理器响应专用模块SFU3 424和专用模块SFU5 428的响应方式均为查询方式。也就是说,处理器通过中断方式与专用模块SFU1 420,专用模块SFU2 422和专用模块SFU4 426进行交互,处理器通过查询方式与专用模块SFU3 424和专用模块SFU5 428进行交互。因此,通过控制寄存器分别配置CPU响应N个专用模块的响应方式是确保***具有灵活的任务响应方式的前提和基础。
需要说明的是,控制寄存器不仅可以包括指示处理器响应专用模块的响应方式的比特,并且控制寄存器还可以包括一些其他比特,以实现处理器响应专用模块的其他功能。例如,控制处理器可以包括多个比特,其中,这些比特用于存储对应于处理器关于多个任务完成请求中的至少一任务完成请求的响应时间。当处理器响应一专用模块的响应方式为中断方式时,处理器通过总线接口从该专用模块接收到至少一任务完成请求后,处理器中的控制器延迟响应至少一任务完成请求,其中延迟时间为所述响应时间。
在一个实施例中,响应时间为预设时间。在另一实施例中,响应时间可以根据处理器的任务完成情况和任务优先级来实时调整。例如,如果处理器当前处理的任务为优先级最高的任务,则即使处理器响应一专用模块的响应方式为中断方式,控制器不会在接收到关于此专用模块的任务完成请求之后马上响应该专用模块。而是延迟响应改任务完成请求。其中,延迟时间是依据***估计的关于当前处理任务的完成时间而设置的。也就是说,该延迟时间可以根据任务的完成时间而实时调整。在此实施例中,处理器的灵活性更高。如此一来,处理器既能够保证最优级最高的任务得到及时处理,也能保证处理器响应专用模块的效率。此外,为简化计算,也可以事先预设响应时间。即,响应时间为预设时间。在一个实施方式中,响应时间是根据完成一个任务需要的最长时间而预先设置的。需要说明的是,以上实施方式仅用于解释说明本发明,而并非用于限制本发明。
在另一实施方式中,如果处理器当前处理的任务为即将处理完成的任务,则即使处理器响应一专用模块的响应方式为中断方式,处理器中的控制器不会在接收到关于此专用模块的任务完成请求之后马上响应该专用模块。处理器中的控制器延迟响应该任务完成请求。其中,延迟时间为响应时间。响应时间可以是事先预设的响应时间。然而,如果处理器当前处理的任务为刚开始处理完成的任务,则如果处理器响应一专用模块的响应方式为中断方式,处理器中的控制器在接收到关于此专用模块的任务完成请求之后马上响应该专用模块。此时,延迟时间和响应时间均为0。在此实施方式中,可以根据处理器当前处理的任务的完成情况来决定响应专用模块的时间点。这样能够兼顾处理器当前处理的任务和专用模块的任务完成请求。
根据本发明的又一实施方式,所述控制寄存器包括一些其他比特。其中,这些比特用于存储对应于处理器关于多个任务完成请求的响应条件。当处理器响应专用模块的响应方式为中断方式时,若满足响应条件,控制器响应专用模块的任务完成请求。响应条件为处理器通过总线接口从专用模块接收到专用模块的任务完成请求并且处理器处理完当前执行的任务。当采用此种实施方式时,可以保证处理器当前处理的任务完成不被专用模块的任务完成请求打扰。此实施方式适用于处理器当前处理的任何和专用模块完成的任务之间不相关的情形。
在一个实施方式中,若处理器响应专用模块的响应方式为查询方式,则控制器发送关于专用模块的至少一查询指令,以确定专用模块是否已经发出任务完成请求。根据本发明的一实施方式,至少一查询指令包括指令类型,以及待查询专用模块编号的编码,专用模块首地址,专用模块数量,以及可伸缩标志中的至少一个;其中,可伸缩标志用于指示至少一查询指令的尺寸是否可伸缩。在一个实施方式中,可伸缩标志指示查询指令的尺寸大小是否可以依据对应于查询指令的专用模块的数量而对应变化。
在一实施例中,假设专用模块的数量为N,那么,需要使用log2N个比特对专用模块的编号进行编码。例如,若专用模块的数量N=32,那么,需要使用5个比特对专用模块的编号进行编码。对于具有32比特指令编码宽度的CPU而言,能够容纳一个或者多个的专用模块编号。根据本发明的实施方式,提供三种可采用的查询指令编码方案。请参见图5。图5为图1所示的处理器的查询指令的示意图。在编码方式500中,查询指令仅包含一个带查询的专用模块编号numi。在编码方式502中,查询指令一次可以编码更多的专用模块编号(例如,专用模块编号numi,numj,numk,nump,numq)。区别于编码方式500,编码方式502能够充分利用指令编码中的保留空间(reserved)。在本实施实例中,假定查询指令本身需要7个比特对指令类型(在图5中用“opcode”表示)进行编码,那么剩余25个比特编码空间。因此,在此实施方式中,一条查询指令可以最多对5个专用模块的ID进行编码。在编码方式504中,定义了待查询专用模块的首地址(在图5中用“start_id”表示),以及待查询专用模块的数量(在图5中用“length”表示)。因此,编码方式504中可支持的最多待查询的专用模块编号(例如,专用模块的地址)为start_id、start_id+1、start_id+2、......、start_id+length。需要说明的是,上述三种查询指令的编码方式可以在一个实施例中同时被使用,并根据查询指令的指令类型,由处理器(例如,CPU)进行解码,并决策出需要待查询的专用模块编号。然而,本发明并非限于此,也可以仅使用上述三种查询指令的编码方法中的任意一种,或者上述三种查询指令的编码方法的任意组合,以增加查询指令使用的灵活性。
请参见图6a和图6b。图6a为图1所示的处理器在根据本发明一实施方式的查询方式下响应专用模块的流程图。图6b为图1所示的处理器在根据本发明一实施方式的查询方式下响应专用模块的流程图。在查询方式中,处理器通过算法需求和CPU的空闲状态、算法执行程度,动态调度以确定在何时***查询指令。例如,当处理器正在执行的任务需要第一专用模块执行的任务的处理结果时,控制器发出所述至少一查询指令。或者,当处理器处于空闲状态时,控制器发出所述至少一查询指令。
处理器在对多个专用模块分配任务后,可以先执行其他任务。在图6a中,如步骤S602所示,处理器(例如,CPU)配置专用模块(例如,DMA或其他专用模块),并将关于专用模块的配置信号或其他指令发送给专用模块。此时,如步骤S620所示,专用模块从处理器接收配置信号,并配置专用模块中的配置寄存器,并且专用模块接收其他指令,以执行与这些指令相关的操作。在一个实施方式中,处理器向专用模块(例如,DMA)发送配置信号,以用于对专用模块中的配置寄存器进行配置。
在步骤S604中,处理器执行其他任务。此时,如步骤S622所示,专用模块在对配置寄存器进行配置之后,开始工作。例如,专用模块开始执行与配置信号或其他指令相关的操作或处理。如步骤S624所示,在完成与配置信号或处理器发送的其他指令相关的操作或处理之后,专用模块发出任务完成请求至处理器。
在步骤S606中,处理器继续执行其他任务,直到处理器完成正在执行的任务并进入空闲状态。
如步骤S608所示,在进入空闲状态之后,处理器执行查询指令。在一个实施方式中,当处理器检测到专用处理模块发出的完成请求时,处理器处理专用模块完成的任务。
如步骤S610所示,在处理完专用模块完成的任务后,处理器执行新的任务。在另一实施例中,在处理完专用模块完成的任务后,处理器进入执行空闲状态。
在图6b中,如步骤S632所示,处理器(例如,CPU)配置专用模块(例如,DMA),并将关于专用模块的配置信号或其他指令发送给专用模块。此时,如步骤S650所示,专用模块从处理器接收配置信号,并配置专用模块中的配置寄存器,并且专用模块接收其他指令,以执行与这些指令相关的操作。在一个实施方式中,处理器向专用模块(例如,DMA)发送配置信号,以用于对专用模块中的配置寄存器进行配置。
在步骤S634中,处理器执行其他任务。此时,如步骤S652所示,专用模块在对配置寄存器进行配置之后,开始工作。例如,专用模块开始执行与配置信号或其他指令相关的操作或处理。
如步骤S636所示,若处理器发现正在执行的任务需要专用模块的计算结果时,处理器执行查询指令,中止执行当前正在执行的任务并等待专用模块的任务完成请求。如步骤S654所示,在完成与配置信号或处理器发送的其他指令相关的操作或处理之后,专用模块发出任务完成请求至处理器。
在步骤S638中,在接收到专用模块发出的任务完成请求之后,处理器继续执行步骤S634中的其他任务(即,在步骤S636中中止执行的任务)。在一个实施方式中,当处理器执行完上述任务之后,进入空闲状态。
如步骤S640所示,处理器执行新的任务。
需要说明的是,在上述实施方式中,专用模块为图形处理模块,矢量计算模块,浮点处理模块,直接内存访问模块,人工智能加速器,快速傅里叶变换模块中的一个。此外,也可以使用与处理器交互的其他专用模块。在图6a中,使用查询指令时,专用模块已经完成任务,因此,处理器(例如,CPU)不会进入中止状态。然而,在图6b中,根据算法知晓,处理器在当前的其他任务中,需要使用专用模块的计算结果。因此,处理器执行查询指令,并等待专用模块的任务完成请求。区别于中断方式,使用查询方式时,由于处理器在已经完成其他任务进入空闲状态,或者处理器急需专用模块的计算结果的时候,处理器才执行查询指令。因此,使用查询方式能够根据充分提高***的执行效率。
在一实施方式中,当处理器和专用模块共同协作完成同一任务时,若处理器响应专用模块的响应方式为查询方式,则预估处理器需要利用第一专用模块的处理结果的时间点,并根据时间点,确定控制器发送关于第一专用模块的至少一查询指令的时间点,以减少所述处理器的等待时间。并且,该方法能提高处理器的计算效率。
处理器可以进一步包括进程状态寄存器,用于标记所述处理器所处理的进程的进程状态。进一步,根据进程状态寄存器的标记的进程状态,控制器动态调整处理器响应多个专用模块的响应方式,并将调整后的响应方式发送至控制寄存器。在此实施方式中,处理器能够实时调整处理器与多个专用模块的响应方式。
在一个实施方式中,如果处理器当前处理的任务为优先级最高的任务,或者处理器当前处理的任务比多个专用模块的优先级高,则将标记状态寄存器的值设置为“1”。当标记状态寄存器的值设置为“1”时,处理器不响应任何专用模块的响应方式。进一步,也可以用逻辑值“0”来实现上述方案。例如,如果处理器当前处理的任务为优先级最高的任务,或者处理器当前处理的任务比多个专用模块的优先级高,则将标记状态寄存器的值设置为“0”。处理器不响应任何专用模块的响应方式。
在另一实施方式中,如果处理器当前处理的任务为优先级最低的任务,或者处理器当前处理的任务比多个专用模块的优先级低,则将标记状态寄存器的值设置为“1”。只要处理器接收到来自专用模块的任务完全请求,处理器立即响应专用模块的响应方式。进一步,也可以用逻辑值“0”来实现上述方案。如果处理器当前处理的任务为优先级最低的任务,或者处理器当前处理的任务比多个专用模块的优先级低,则将标记状态寄存器的值设置为“0”。只要处理器接收到来自专用模块的任务完全请求,处理器立即响应专用模块的响应方式。
请参见图7a和图7b。图7a为图1所示的处理器使用根据本发明一实施方式的查询指令的伪代码的示意图。图7b为图1所示的处理器使用根据本发明另一实施方式的查询指令的伪代码的示意图。在使用查询指令时,可以非连续或连续使用多个查询指令。如图7a所示,伪代码700为非连续执行或者单个执行查询指令。具体来说,在代码行702~706中,先配置专用模块i~专用模块k。在代码行708中,处理器执行其他任务。在代码行710中,处理器执行查询指令1。在执行完代码行710之后,处理器执行其他一些代码(图未示)。在代码行712中,处理器执行查询指令2。在执行完代码行712之后,处理器执行其他一些代码(图为示)。在代码行714中,处理器执行其他指令。
如图7b所示,伪代码720为连续执行多条查询指令。具体来说,在代码行722~726中,先配置专用模块i~专用模块k。在代码行728中,处理器执行其他任务。在代码行730中,处理器执行查询指令1。在执行完代码行730之后,处理器执行代码行732。在代码行732中,处理器执行查询指令2。在执行完代码行732之后,处理器执行其他一些代码(图为示)。在代码行734中,处理器执行其他指令。由上述可知,查询指令1和查询指令2为连续执行的两条查询指令。在一个实施方式中,由于处理器连续使用多个查询指令,因此,只有全部查询指令指定的专用模块都上报任务完成请求后,处理器才能执行后续的其他指令。
根据本发明的一实施方式,可以对多个专用模块使用同一条查询指令。在这条查询指令中,可以不必指出专用模块的ID(例如,专用模块编码),地址信息,或其他属性信息。此时,可以查询多个专用模块中是否有任意一个专用模块发出过任务完成请求。若存在任意一个专用模块发出过任务完成请求,则处理器响应该任务完成请求。如此一来,可以减少指令的种类,节约指令资源和存储查询指令的空间。此外,也可以对多个同一类型的专用模块使用同一查询指令。此时,需要在查询指令中添加关于同一类型的专用模块的识别信息。例如,这些专用模块的编码,或者属性标志。当同一类型的多个专用模块并行处理某些特定任务时,可以仅发送一条指令,以提高指令的利用率。在另一实施方式中,也可以使用多条查询指令,以对不同类型的专用模块应用不同的查询指令。然而,本发明并非限于此。在另一实施方式中,也可以结合上述的几个查询指令的使用方式,以提高查询指令使用的灵活度。
处理器在执行查询指令时,在流水线处理中记录待查询的专用模块编号,并且在处理器中用独立的寄存器记录待查询的专用模块是否发出任务完成的请求。以具有3级流水线结构的处理器(例如,CPU)而言,处理器可分为取指、译码、执行三级流水线。查询指令流水到执行级后,将在执行级上记录待查询的专用模块编号。不同的查询指令编码方式需要不同的记录专用模块的方法。
根据本发明的一实施方式,处理器进一步包括一个或多个检测单元。也就是说,可以依据不同的硬件设计方案来确定检测单元的数量。根据本发明一实施方式,处理器包括检测模块。检测模块包括至少一个检测单元。其中,检测单元包括比较器和数据寄存器。数据寄存器用于存储与多个专用模块中第一专用模块对应的第一专用模块编号;以及当检测单元接收到第二任务完成请求时,检测单元确定第二任务请求的第二专用模块编号,并通过比较器将第二专用模块编号与数据寄存器中的第一专用模块编号进行比较,以确定第二任务完成请求对应的专用模块。检测单元进一步包括结果寄存器。检测单元将多个比较结果存储于结果寄存器中。当控制器发送查询指令时,控制器根据结果寄存器中的取值,响应第二任务请求。
检测模块进一步包括与门,所述与门用于接收来自多个第一检测单元的多个第一比较结果,以及所述与门将多个所述第一比较结果进行与运算,以确定多个所述专用模块是否均分别发出对应的任务完成请求。
请参见图8。图8为图1所示的处理器中的检测单元的示意图。如图8所示,处理器进一步检测单元800。检测单元800包括比较器802(例如,比较电路),数据寄存器804和结果寄存器806。专用模块发出任务完成请求之后,检测单元800中的比较器检测该任务完成请求对应的专用模块编号是否和检测单元800对应的数据寄存器804中存储的专用模块编号num一致。若检测单元800的数据寄存器804中存储的专用模块编号和该任务完成请求对应的专用模块编号一致,则检测结果为有效,并将检测结果记录到结果寄存器806中。若检测单元800的数据寄存器806中存储的专用模块编号和该任务完成请求对应的专用模块编号均不一致,则检测结果为无效。
根据本发明的另一实施方式,处理器进一步包括标记寄存器,用于当所述处理器响应多个专用模块中的第一专用模块的响应方式为查询方式时,存储关于第一专用模块是否发出第一任务完成请求的记录。例如,处理器包括标记寄存器A。其中,标记寄存器A对应于专用模块SFU0。若检测到专用模块SFU0发出任务完成请求,则将标记寄存器A的值设置为“1”。否则,标记寄存器A的值为“0”。或者,若检测到专用模块SFU0发出任务完成请求,则将标记寄存器A的值设置为“0”。否则,标记寄存器A的值为“1”。标记寄存器A可以是结果寄存器806。然而,标记寄存器也可以是能够存储关于专用模块是否发出任务完成请求的记录的其他寄存器。
根据本发明的一实施方式,若处理器响应多个专用模块的多个响应方式为查询方式,则控制器发送关于多个专用模块的查询指令,以确定多个专用处理模块是否发出多个任务完成请求。若所有任务完成请求均已发出,则处理器执行与多个专用处理模块相关的任务。
请参见图9。图9为图1所示的处理器中的检测模块的示意图。处理器进一步包括检测模块900,以用于检测是否多个专用处理模块(例如,专用处理模块SFU0,SFU1,......,SFUN)均发出任务完成请求。检测模块900包括检测单元906~检测单元914。检测单元906~检测单元914分别包括比较器(例如,比较电路),数据寄存器和结果寄存器。其中,数据寄存器用于存储待查询的专用模块编码。结果寄存器用于存储比较器比较的结果。例如,检测单元906包括比较器904,数据寄存器916和结果寄存器920。其中,数据寄存器816用于存储专用模块编码numi。需要说明的是,检测单元908~检测单元914具有与检测单元906相似的结构。为求简洁,不再赘述。
专用模块SFU0,专用模块SFU1,专用模块SFU2,......,以及专用模块SFUN中的任意一个发出任务完成请求之后,检测单元906~检测单元914中的每一个比较器分别检测该任务完成请求对应的专用模块编号是否和检测单元对应的数据寄存器中存储的专用模块编号一致。若检测单元906~检测单元914中存在至少一个数据寄存器中存储的专用模块编号和该任务完成请求对应的专用模块编号一致,则检测结果为有效,并将检测结果记录到结果寄存器中。若检测单元906~检测单元914中所有数据寄存器中存储的专用模块编号和该任务完成请求对应的专用模块编号均不一致,则检测结果为无效。当所有检测单元的结果寄存器都有效时,表明检测模块中待查询的所有专用模块都已经完成计算。此时,与门902的输出结果为有效。也就是说,处理器输出查询指令完成信号,查询指令离开执行级,处理器可以继续执行后续指令。
请参见图10。图10为根据本发明实施方式的任务响应方法的流程图。该任务响应方法可以应用于处理和专用模块之间的交互。其中专用模块可以为图形处理功能的图形处理模块(Graphic Process Unit,GPU)、矢量计算模块(Vector Process Unit)、浮点处理模块(Floatpoint Process Unit,FPU),直接内存访问模块(Direct MemoryAccess,DMA)或者类似的可处理某个特殊计算任务的专用处理单元,如人工智能(AI)加速器、快速傅里叶变换(Fast Fourier Transform,FFT)等等。结构上,这些专用模块通过内部总线与处理器进行连接并且进行通过内部总线互联。这些专用模块接收来自CPU的指令或者配置信号,也能在完成特定任务后向CPU发送完成请求。
如图10所示,该任务响应方法包括步骤S1002至步骤S1006。
在步骤S1002中,接收耦接于总线接口的、位于处理器外部的多个专用模块对应的多个任务完成请求;
在步骤S1004中,获取处理器响应多个专用模块的多个响应方式,以及将多个所述响应方式存储于控制寄存器中;其中,多个响应方式不同;以及
在步骤S1006中,根据控制寄存器中的相应的响应方式,响应多个专用模块的多个任务完成请求。
在一实施例中,多个响应方式包括中断方式和查询方式;以及任务响应方法包括:当处理器响应多个专用模块中的第一专用模块的响应方式为查询方式时,存储关于第一专用模块是否发出第一任务完成请求的记录。
在一实施例中,利用多个比特存储对应于处理器关于多个任务完成请求中的至少一任务完成请求的响应时间;响应时间为预设时间;以及当处理器响应第一专用模块的第一响应方式为中断方式时,通过总线接口从第一专用模块接收到至少一任务完成请求后,延迟响应至少一任务完成请求,其中延迟时间为响应时间。
在一实施例中,利用多个比特存储对应于处理器关于多个任务完成请求的响应条件;响应条件为处理器通过总线接口从多个专用模块中的第一专用模块接收到第一专用模块的任务完成请求并且处理器处理完当前执行的任务;以及当处理器响应第一专用模块的第一响应方式为中断方式时,若满足响应条件,响应第一专用模块的任务完成请求。
在一实施例中,利用第一比特存储对应于处理器响应多个专用模块中的第一专用模块的第一响应方式;以及其中,当第一比特为0时,第一响应方式为中断方式;当第一比特为1时,第二响应方式为查询方式;或者当第一比特为1时,第一响应方式为中断方式;当第一比特为0时,第二响应方式为查询方式。
在一实施例中,若处理器响应第一专用模块的响应方式为查询方式,则发送关于第一专用模块的至少一查询指令,以确定第一专用模块是否已经发出至少一第一任务完成请求。
在一实施例中,当处理器正在执行的任务需要第一专用模块执行的任务的处理结果时,处理器(例如,处理器中的控制器)发出至少一查询指令;或者当处理器处于空闲状态时,处理器(例如,处理器中的控制器)发出至少一查询指令。
在一实施例中,至少一查询指令包括指令类型,以及专用模块编号的编码,专用模块首地址,专用模块数量,以及可伸缩标志中的至少一个;其中,可伸缩标志用于指示至少一查询指令的尺寸是否可伸缩。
在一实施例中,通过数据寄存器,存储与多个专用模块对应的第一专用模块编号;以及当检测单元接收到第二任务完成请求时,通过检测单元确定第二任务请求的第二专用模块编号,并通过比较器将第二专用模块编号与数据寄存器中的第一专用模块编号进行比较,以确定第二任务完成请求对应的专用模块。
在一实施例中,将多个比较结果存储于结果寄存器中;以及当处理器(例如,处理器中的控制器)发送查询指令时,根据多个结果寄存器中的取值,响应第二任务请求。
在一实施例中,接收多个比较结果,并将多个比较结果进行与运算,以确定多个专用模块是否均分别发出对应的任务完成请求。
在一实施例中,若处理器响应多个专用模块的多个响应方式为查询方式,则发送关于多个专用模块的查询指令,以确定多个专用处理模块是否发出多个任务完成请求;若所有任务完成请求均已发出,则执行与多个专用处理模块相关的任务。
在一实施例中,当处理器和多个专用模块中的第一专用模块共同协作完成同一任务时,若处理器响应第一专用模块的响应方式为查询方式,则预估处理器需要利用第一专用模块的处理结果的时间点,并根据时间点,确定处理器(例如,处理器中的控制器)发送关于第一专用模块的至少一查询指令的时间点,以减少处理器的等待时间。
在一实施例中,标记处理器所处理的进程的进程状态;以及根据进程状态寄存器的标记的进程状态,动态调整处理器响应多个专用模块的响应方式,并存储调整后的响应方式。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,从而执行如下动作:
接收耦接于总线接口的、位于处理器外部的多个专用模块对应的多个任务完成请求;
获取处理器响应多个专用模块的多个响应方式,以及将多个响应方式存储于控制寄存器中;其中,多个响应方式不同;以及
根据控制寄存器中的相应的响应方式,响应多个任务完成请求。
在本申请实施例中,存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEAROM),可擦除可编程只读存储器(EAROM),可编程只读存储器(AROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Arocessing Unit,CAU)、图形处理器(GraAhicsArocessing Unit,GAU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Arogrammable Gate Array,FAGA)、可编程阵列逻辑器件(ArogrammableArray Logic,AAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(ComAlex Arogrammable Logic Device,CALD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或***芯片(System on ChiA SOC)等等,但不限于此。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或流程和/或方框图一个方框或方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或流程和/或方框图一个方框或方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或流程和/或方框图一个方框或方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或处理器(CAU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(ARAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEAROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (33)
1.一种处理器,其特征在于,包括:
总线接口,能够耦接于所述处理器外部的多个专用模块,用于接收关于多个所述专用模块的多个任务完成请求;以及
控制寄存器,用于存储所述处理器响应多个所述专用模块的多个响应方式;其中,多个所述响应方式不同;
其中,所述处理器根据所述控制寄存器中的相应的所述响应方式,响应多个所述专用模块的多个所述任务完成请求。
2.根据权利要求1所述的处理器,其特征在于,
多个所述响应方式包括中断方式和查询方式;以及
所述处理器进一步包括标记寄存器,用于当所述处理器响应多个所述专用模块中的第一专用模块的响应方式为查询方式时,存储关于所述第一专用模块是否发出第一任务完成请求的记录。
3.根据权利要求1所述的处理器,其特征在于,
所述控制寄存器包括多个比特;其中,多个所述比特用于存储对应于所述处理器关于多个所述任务完成请求中的至少一任务完成请求的响应时间;以及
当所述处理器响应第一专用模块的第一响应方式为中断方式时,所述处理器通过所述总线接口从所述第一专用模块接收到所述至少一任务完成请求后,所述处理器延迟响应所述至少一任务完成请求,其中延迟时间为所述响应时间。
4.根据权利要求1所述的处理器,其特征在于,
所述控制寄存器包括多个比特;其中,多个所述比特用于存储对应于所述处理器关于多个所述任务完成请求的响应条件;以及
当所述处理器响应所述第一专用模块的第一响应方式为中断方式时,若满足所述响应条件,所述处理器响应所述第一专用模块的所述任务完成请求;
其中所述响应条件为所述处理器通过所述总线接口从多个所述专用模块中的第一专用模块接收到所述第一专用模块的任务完成请求并且所述处理器处理完当前执行的任务。
5.根据权利要求1所述的处理器,其特征在于,
所述控制寄存器包括第一比特,所述第一比特用于存储对应于所述处理器响应多个所述专用模块中的第一专用模块的第一响应方式;以及
其中,当所述第一比特为0时,所述第一响应方式为中断方式;当所述第一比特为1时,所述第一响应方式为查询方式;或者
当所述第一比特为1时,所述第一响应方式为中断方式;当所述第一比特为0时,所述第一响应方式为查询方式。
6.根据权利要求1所述的处理器,其特征在于,
若所述处理器响应第一专用模块的响应方式为查询方式,则所述处理器发送关于所述第一专用模块的至少一查询指令,以确定所述第一专用模块是否已经发出第一任务完成请求。
7.根据权利要求6所述的处理器,其特征在于,
当所述处理器正在执行的任务需要所述第一专用模块执行的任务的处理结果时,所述处理器发出所述至少一查询指令;或者
当所述处理器处于空闲状态时,所述处理器发出所述至少一查询指令。
8.根据权利要求6所述的处理器,其特征在于,
所述至少一查询指令包括指令类型,以及专用模块编号的编码,专用模块首地址,专用模块数量,以及可伸缩标志中的至少一个;其中,所述可伸缩标志用于指示所述至少一查询指令的尺寸是否可伸缩。
9.根据权利要求1所述的处理器,其特征在于,进一步包括:
检测模块,包括检测单元,其中,所述检测单元,包括比较器和数据寄存器,所述数据寄存器用于存储与多个所述专用模块中第一专用模块对应的第一专用模块编号;以及
当所述检测单元接收到第二任务完成请求时,所述检测单元确定所述第二任务请求的第二专用模块编号,并通过所述比较器将所述第二专用模块编号与所述数据寄存器中的所述第一专用模块编号进行比较,以确定所述第二任务完成请求对应的专用模块。
10.根据权利要求9所述的处理器,其特征在于,
所述检测单元进一步包括结果寄存器;以及
所述检测单元将比较结果存储于所述结果寄存器中,以及
当所述处理器发送查询指令时,所述处理器根据所述结果寄存器中的取值,响应所述第二任务请求。
11.根据权利要求9所述的处理器,其特征在于,
所述检测模块进一步包括与门,所述与门用于接收来自多个第一检测单元的多个第一比较结果,以及所述与门将多个所述第一比较结果进行与运算,以确定多个所述专用模块是否均分别发出对应的任务完成请求。
12.根据权利要求1所述的处理器,其特征在于,
若所述处理器响应多个所述专用模块的多个所述响应方式为查询方式,则所述处理器发送关于多个所述专用模块的查询指令,以确定多个所述专用处理模块是否发出多个任务完成请求;
若所有任务完成请求均已发出,则所述处理器执行与多个所述专用处理模块相关的任务。
13.根据权利要求1所述的处理器,其特征在于,
当所述处理器和多个所述专用模块中的第一专用模块共同协作完成同一任务时,若所述处理器响应所述第一专用模块的响应方式为查询方式,则预估所述处理器需要利用所述第一专用模块的处理结果的时间点,并根据所述时间点,确定所述处理器发送关于所述第一专用模块的至少一查询指令的时间点,以减少所述处理器的等待时间。
14.根据权利要求1所述的处理器,其特征在于,进一步包括:
进程状态寄存器,用于标记所述处理器所处理的进程的进程状态;以及
根据所述进程状态寄存器的标记的所述进程状态,所述处理器动态调整所述处理器响应多个所述专用模块的响应方式,并将调整后的响应方式发送至所述控制寄存器。
15.根据权利要求1所述的处理器,其特征在于,
多个所述专用模块为图形处理模块,矢量计算模块,浮点处理模块,直接内存访问模块,人工智能加速器,快速傅里叶变换模块中的一个。
16.一种任务响应方法,其特征在于,包括:
接收耦接于总线接口的、位于处理器外部的多个专用模块对应的多个任务完成请求;
获取所述处理器响应多个所述专用模块的多个响应方式,以及将多个所述响应方式存储于控制寄存器中;其中,多个所述响应方式不同;以及
根据所述控制寄存器中的相应的所述响应方式,响应多个所述专用模块的多个所述任务完成请求。
17.根据权利要求16所述的任务响应方法,其特征在于,
多个所述响应方式包括中断方式和查询方式;以及
所述任务响应方法包括:
当所述处理器响应多个所述专用模块中的第一专用模块的响应方式为查询方式时,存储关于所述第一专用模块是否发出第一任务完成请求的记录。
18.根据权利要求16所述的任务响应方法,其特征在于,
利用多个比特存储对应于所述处理器关于多个所述任务完成请求中的至少一任务完成请求的响应时间;所述响应时间为预设时间;以及
当所述处理器响应第一专用模块的第一响应方式为中断方式时,通过所述总线接口从所述第一专用模块接收到所述至少一任务完成请求后,延迟响应所述至少一任务完成请求,其中延迟时间为所述响应时间。
19.根据权利要求16所述的任务响应方法,其特征在于,
利用多个比特存储对应于所述处理器关于多个所述任务完成请求的响应条件;所述响应条件为所述处理器通过所述总线接口从多个所述专用模块中的第一专用模块接收到所述第一专用模块的任务完成请求并且所述处理器处理完当前执行的任务;以及
当所述处理器响应所述第一专用模块的第一响应方式为中断方式时,若满足所述响应条件,响应所述第一专用模块的所述任务完成请求。
20.根据权利要求16所述的任务响应方法,其特征在于,
利用第一比特存储对应于所述处理器响应多个所述专用模块中的第一专用模块的第一响应方式;以及
其中,当所述第一比特为0时,所述第一响应方式为中断方式;当所述第一比特为1时,所述第二响应方式为查询方式;或者
当所述第一比特为1时,所述第一响应方式为中断方式;当所述第一比特为0时,所述第二响应方式为查询方式。
21.根据权利要求16所述的任务响应方法,其特征在于,
若所述处理器响应第一专用模块的响应方式为查询方式,则发送关于所述第一专用模块的至少一查询指令,以确定所述第一专用模块是否已经发出至少一第一任务完成请求。
22.根据权利要求21所述的任务响应方法,其特征在于,
当处理器正在执行的任务需要所述第一专用模块执行的任务的处理结果时,所述处理器发出所述至少一查询指令;或者
当所述处理器处于空闲状态时,所述处理器发出所述至少一查询指令。
23.根据权利要求21所述的任务响应方法,其特征在于,
所述至少一查询指令包括指令类型,以及专用模块编号的编码,专用模块首地址,专用模块数量,以及可伸缩标志中的至少一个;其中,所述可伸缩标志用于指示所述至少一查询指令的尺寸是否可伸缩。
24.根据权利要求16所述的任务响应方法,其特征在于,
通过数据寄存器,存储与多个所述专用模块对应的第一专用模块编号;以及
当检测单元接收到第二任务完成请求时,通过所述检测单元确定所述第二任务请求的第二专用模块编号,并通过比较器将所述第二专用模块编号与所述数据寄存器中的所述第一专用模块编号进行比较,以确定所述第二任务完成请求对应的专用模块。
25.根据权利要求24所述的任务响应方法,其特征在于,
将多个比较结果存储于结果寄存器中;以及
当处理器发送查询指令时,根据多个所述结果寄存器中的取值,响应所述第二任务请求。
26.根据权利要求25所述的任务响应方法,其特征在于,
接收多个所述比较结果,并将多个所述比较结果进行与运算,以确定多个所述专用模块是否均分别发出对应的任务完成请求。
27.根据权利要求16所述的任务响应方法,其特征在于,
若所述处理器响应多个所述专用模块的多个所述响应方式为查询方式,则发送关于多个所述专用模块的查询指令,以确定多个所述专用处理模块是否发出多个任务完成请求;
若所有任务完成请求均已发出,则执行与多个所述专用处理模块相关的任务。
28.根据权利要求16所述的任务响应方法,其特征在于,
当所述处理器和多个所述专用模块中的第一专用模块共同协作完成同一任务时,若所述处理器响应所述第一专用模块的响应方式为查询方式,则预估所述处理器需要利用所述第一专用模块的处理结果的时间点,并根据所述时间点,确定所述处理器发送关于所述第一专用模块的至少一查询指令的时间点,以减少所述处理器的等待时间。
29.根据权利要求16所述的任务响应方法,其特征在于,
标记所述处理器所处理的进程的进程状态;以及
根据所述进程状态寄存器的标记的所述进程状态,动态调整所述处理器响应多个所述专用模块的响应方式,并存储调整后的响应方式。
30.根据权利要求16所述的任务响应方法,其特征在于,
多个所述专用模块为图形处理模块,矢量计算模块,浮点处理模块,直接内存访问模块,人工智能加速器,快速傅里叶变换模块中的一个。
31.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,所述一个或多个处理器执行包括以下的动作:
接收耦接于总线接口的、位于处理器外部的多个专用模块对应的多个任务完成请求;
获取所述处理器响应多个所述专用模块的多个响应方式,以及将多个所述响应方式存储于控制寄存器中;其中,多个所述响应方式不同;以及
根据所述控制寄存器中的相应的所述响应方式,响应多个所述任务完成请求。
32.一种可移动平台,其特征在于,所述可移动平台包括根据权利要求1~15所述的处理器。
33.一种相机,其特征在于,所述相机包括根据权利要求1~15所述的处理器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/129100 WO2021128249A1 (zh) | 2019-12-27 | 2019-12-27 | 处理器、任务响应方法、可移动平台、及相机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112513809A true CN112513809A (zh) | 2021-03-16 |
Family
ID=74924085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980050197.0A Pending CN112513809A (zh) | 2019-12-27 | 2019-12-27 | 处理器、任务响应方法、可移动平台、及相机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112513809A (zh) |
WO (1) | WO2021128249A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5796984A (en) * | 1996-01-26 | 1998-08-18 | Dell Usa, L.P. | Operating system independent apparatus and method for eliminating peripheral device functions |
CN101221540A (zh) * | 2007-01-09 | 2008-07-16 | 国际商业机器公司 | 用于减少存储器访问时延的方法和设备以及数据处理*** |
CN104951412A (zh) * | 2015-06-06 | 2015-09-30 | 华为技术有限公司 | 一种通过内存总线访问的存储装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829697B1 (en) * | 2000-09-06 | 2004-12-07 | International Business Machines Corporation | Multiple logical interfaces to a shared coprocessor resource |
CN101567078B (zh) * | 2009-03-27 | 2011-06-22 | 西安交通大学 | 一种双总线的视觉处理芯片架构 |
CN101980149B (zh) * | 2010-10-15 | 2013-09-18 | 无锡中星微电子有限公司 | 主处理器与协处理器通信***及通信方法 |
CN102141904B (zh) * | 2011-03-31 | 2014-02-12 | 杭州中天微***有限公司 | 支持中断屏蔽指令的数据处理器 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理***和方法 |
CN205899270U (zh) * | 2016-06-23 | 2017-01-18 | 陕西宝成航空仪表有限责任公司 | 高可靠性双冗余arinc429总线接口*** |
US10120829B2 (en) * | 2016-11-23 | 2018-11-06 | Infineon Technologies Austria Ag | Bus device with programmable address |
-
2019
- 2019-12-27 WO PCT/CN2019/129100 patent/WO2021128249A1/zh active Application Filing
- 2019-12-27 CN CN201980050197.0A patent/CN112513809A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5796984A (en) * | 1996-01-26 | 1998-08-18 | Dell Usa, L.P. | Operating system independent apparatus and method for eliminating peripheral device functions |
CN101221540A (zh) * | 2007-01-09 | 2008-07-16 | 国际商业机器公司 | 用于减少存储器访问时延的方法和设备以及数据处理*** |
CN104951412A (zh) * | 2015-06-06 | 2015-09-30 | 华为技术有限公司 | 一种通过内存总线访问的存储装置 |
Non-Patent Citations (1)
Title |
---|
孙康;沈海斌;王继民;潘雪增;: "基于映像寄存器构建的实时操作***内核", 清华大学学报(自然科学版), no. 2, 15 October 2007 (2007-10-15) * |
Also Published As
Publication number | Publication date |
---|---|
WO2021128249A1 (zh) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102906726B (zh) | 协处理加速方法、装置及*** | |
CN103975314B (zh) | 横跨多个存储器区的强有序、装置及互斥事务的自动排序 | |
CN112204524A (zh) | 用于硬件加速的硬件资源的嵌入式调度 | |
JP5085178B2 (ja) | Dmaコントローラおよびdma転送方法 | |
US7689734B2 (en) | Method for toggling non-adjacent channel identifiers during DMA double buffering operations | |
US6154832A (en) | Processor employing multiple register sets to eliminate interrupts | |
WO2018000765A1 (zh) | 一种协处理器、数据读取方法、处理器***及存储介质 | |
US20190065075A1 (en) | Method to improve mixed workload performance on storage devices that use cached operations | |
CN102622274A (zh) | 计算机装置及其中断任务分配方法 | |
CN112513809A (zh) | 处理器、任务响应方法、可移动平台、及相机 | |
EP4035016A1 (en) | Processor and interrupt controller therein | |
WO2023151460A1 (zh) | 数据处理方法、装置、芯片及介质 | |
CN101303676A (zh) | 具直接存储器存取的电子***及其方法 | |
WO2021179222A1 (zh) | 一种调度装置、调度方法、加速***及无人机 | |
CN107408061B (zh) | 并行处理*** | |
CN105718993A (zh) | 细胞阵列计算***以及其中的通信方法 | |
CN103942165A (zh) | 基于多处理器的数据处理方法、***和io适配器 | |
CN117931555B (zh) | 在内核态下模拟scsi设备故障的方法及装置 | |
CN111915014B (zh) | 人工智能指令的处理方法及装置、板卡、主板和电子设备 | |
CN110929857B (zh) | 一种神经网络的数据处理方法和装置 | |
CN117893415A (zh) | 一种基于多核的大分辨率图像处理加速方法 | |
US20120246444A1 (en) | Reconfigurable processor, apparatus, and method for converting code | |
US10534707B2 (en) | Semiconductor device including plurality of bus masters and control device and program used in the semiconductor device | |
JPH08137703A (ja) | タスク切替装置 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム |
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 |