一种电子设备及任务处理方法转让专利

申请号 : CN202311405894.8

文献号 : CN117171075B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏运强张荣

申请人 : 上海芯联芯智能科技有限公司

摘要 :

本发明实施例提供一种电子设备及任务处理方法,包括:处理器CPU、协处理器子系统、存储器直接访问控制器DMAC和存储器;协处理器子系统包括协处理器管理单元CPMU、子总线和与子总线直连的协处理器CP;CPU用于将待处理任务存储至存储器,并向CPMU发送用于指示处理待处理任务的任务处理请求;协处理器子系统用于通过DMAC经总线从存储器读取待处理任务;CPMU用于通过控制至少一个CP在协处理器子系统内处理待处理任务,协处理器子系统,用于通过DMAC经总线将待处理任务的处理结果写入存储器;CPMU用于向CPU发送任务完成响应;CPU用于根据任务完成响应,从存储器获取处理结果。

权利要求 :

1.一种电子设备,其特征在于,包括:处理器CPU、协处理器子系统、存储器直接访问控制器DMAC和存储器;所述CPU、所述DMAC和所述存储器分别与总线直连;

所述协处理器子系统包括协处理器管理单元CPMU、子总线、与所述子总线直连的协处理器CP和DMA协处理器;任意两个CP通过所述子总线进行数据传输;所述DMA协处理器与所述子总线直连;所述CPMU不与所述子总线直连;

所述CPU,用于将待处理任务存储至所述存储器,并向所述CPMU发送用于指示处理所述待处理任务的任务处理请求;

所述协处理器子系统,用于通过所述DMAC经所述总线从所述存储器读取所述待处理任务;

所述CPMU,用于通过控制至少一个CP在所述协处理器子系统内处理所述待处理任务;

所述协处理器子系统,还用于通过DMAC经所述总线将所述待处理任务的处理结果写入所述存储器;

所述CPMU,还用于向所述CPU发送任务完成响应;

所述CPU,还用于根据所述任务完成响应,从所述存储器获取所述处理结果;

所述CPMU,具体用于指示所述DMA协处理器向所述DMAC发送第一DMA请求,从而通过所述总线从所述存储器读取所述待处理任务并存储至所述DMA协处理器中;

所述DMA协处理器,用于将所述待处理任务通过所述子总线发送至第一CP,并通过所述子总线从第二CP获取所述处理结果;所述第一CP为首个处理所述待处理任务的CP;所述第二CP为最后处理所述待处理任务的CP;

所述CPMU,还具体用于通过所述DMA协处理器向所述DMAC发送第二DMA请求,将所述DMA协处理器中存储的所述处理结果通过所述总线写入所述存储器。

2.如权利要求1所述的电子设备,其特征在于,任一CP通过控制线与所述CPMU直连;

所述CPMU,还用于确定任意两个CP中的发送者与接收者;任意两个CP通过握手协议进行数据传输。

3.如权利要求1或2所述的电子设备,其特征在于,所述子总线有多条;所述协处理器子系统还包括多路复用器MUX;每个CP设置有对应的MUX;

所述CPMU,还用于通过MUX指定对应CP用于进行数据传输的子总线。

4.如权利要求3所述的电子设备,其特征在于,所述待处理任务为多个;

DMA协处理器包括输入DMA协处理器和输出DMA协处理器;

所述CPMU,还用于控制多个待处理任务分别在各CP中的并行处理。

5.如权利要求3所述的电子设备,其特征在于,任一CP包括暂存区、运算单元、控制单元、通讯单元;

所述控制单元与所述CPMU连接;所述通讯单元与所述子总线连接。

6.如权利要求4所述的电子设备,其特征在于,所述DMA协处理包括DMA单元、第一暂存区、第一通讯单元、第一控制单元、第二暂存区、第二控制单元和第二通讯单元;

所述DMA单元、所述第一暂存区、第一控制单元和所述第一通讯单元构成所述输入DMA协处理器;

所述DMA单元、所述第二暂存区、所述第二控制单元和所述第二通讯单元构成所述输出DMA协处理器。

7.如权利要求3所述的电子设备,其特征在于,所述协处理器子系统还包括缓冲型协处理器;

所述缓冲型协处理器包括暂存区、通讯单元和简化版控制单元;所述简化版控制单元用于控制所述暂存区与所述通讯单元。

8.一种任务处理方法,其特征在于,应用于如所述权利要求1中的电子设备,包括:CPU将待处理任务存储至存储器,并向CPMU发送用于指示处理所述待处理任务的任务处理请求;

所述CPMU指示DMA协处理器向所述DMAC发送第一DMA请求,从而通过所述总线从所述存储器读取所述待处理任务并存储至所述DMA协处理器中;所述DMA协处理器位于所述协处理器子系统内,并与所述子总线直连;所述CPMU不与所述子总线直连;

所述CPMU确定处理所述待处理任务的各CP并控制所述DMA协处理器将所述待处理任务通过所述子总线发送至第一CP,并通过所述子总线从第二CP获取所述处理结果;所述第一CP为首个处理所述待处理任务的CP;所述第二CP为最后处理所述待处理任务的CP;

其中,所述各CP中任一CP在处理完自身任务部分后,通过所述CPMU的控制将自身任务部分的子结果通过子总线发送至下一CP;

所述CPMU通过所述DMA协处理器向所述DMAC发送第二DMA请求,将所述DMA协处理器中存储的所述处理结果通过所述总线写入所述存储器;

所述至少一个CP和所述CPMU属于同一个协处理器子系统;所述待处理任务在所述协处理器子系统内进行处理;

所述CPMU向所述CPU发送任务完成响应;

所述CPU根据所述任务完成响应,从所述存储器获取所述处理结果。

9.如权利要求8所述的方法,其特征在于,所述待处理任务为多个;

所述CPMU还用于控制多个待处理任务分别在所述协处理器子系统内并行处理。

10.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求8或9所述方法的步骤。

说明书 :

一种电子设备及任务处理方法

技术领域

[0001] 本发明实施例涉及协处理器技术领域,尤其涉及一种电子设备及任务处理方法。

背景技术

[0002] 存储器直接访问(Direct Memory Access,DMA)是指一种高速的数据传输操作。
[0003] 现阶段,当多个协处理器依次处理相应的数据得到的处理结果作为CPU所需的数据时,协处理器与存储器之间需要进行DMA传输。其中,协处理器是一种协助CPU完成其无法执行或执行效率低、效果低的处理工作而开发和应用的处理器。
[0004] 但是,由于DMA在传输过程中,会对总线形成独占,CPU会失去对总线的控制,随着协处理器数量的增大,会导致大量的DMA传输影响系统的稳定性。而且在DMA传输的过程中,会不可避免的将未加密的数据暂存至存储器中,从而导致数据的安全性较低。
[0005] 综上,如何实现降低DMA传输的次数,是当前亟需解决的技术问题。

发明内容

[0006] 本发明实施例提供一种电子设备及任务处理方法,用以解决现有技术中因DMA传输的次数过多导致影响系统的稳定性以及所需传输的数据的安全性较低的问题。
[0007]  第一方面,本发明实施例提供一种电子设备,包括:处理器CPU、协处理器子系统、存储器直接访问控制器DMAC和存储器;CPU、DMAC和存储器分别与总线直连;协处理器子系统包括协处理器管理单元CPMU、子总线和与子总线直连的协处理器CP;任意两个CP通过子总线进行数据传输; CPU,用于将待处理任务存储至存储器,并向CPMU发送用于指示处理待处理任务的任务处理请求;协处理器子系统,用于通过DMAC经总线从存储器读取待处理任务;CPMU,用于通过控制至少一个CP在协处理器子系统内处理待处理任务;协处理器子系统,还用于通过DMAC经总线将待处理任务的处理结果写入存储器;CPMU,还用于向CPU发送任务完成响应;CPU,还用于根据任务完成响应,从存储器获取处理结果。
[0008] 上述技术方案中,通过引入CPMU控制协处理器,从而降低对CPU的算力占用。协处理器之间通过子总线进行数据传输,从而避免中间结果需要经过CPU和内存中转,提升了数据传输的安全性,加快了数据在协处理器之间的流转,提高了处理数据的效率,以及减少了DMA传输的频率,避免频繁地占用总线。
[0009] 可选的,协处理器子系统还包括DMA协处理器;DMA协处理器与子总线直连;CPMU,具体用于通过DMA协处理器向DMAC发送第一DMA请求,从而通过总线从存储器读取待处理任务并存储至DMA协处理器中;DMA协处理器,用于将待处理任务通过子总线发送至第一CP,并通过子总线从第二CP获取处理结果;第一CP为首个处理待处理任务的CP;第二CP为最后处理待处理任务的CP;CPMU,还具体用于通过DMA协处理器向DMAC发送第二DMA请求,将DMA协处理器中存储的处理结果通过总线写入存储器。
[0010] 上述技术方案中,由于本方案中需要进行DMA传输的协处理器的步骤仅需要两处,一处是通过DMA传输从从存储器获取待处理任务,另一处是将处理结果存储至存储器,其他的协处理器之间的数据传输是通过子总线实现的,由于同一时间仅能执行一个DMA传输任务,因此,仅需要将协处理器分为DMA协处理器和其他协处理器,其中,其他的协处理器不需要具备DMA单元,从而实现简化其他协处理器的设计,节省了电路面积。
[0011] 可选的,任一CP通过控制线与CPMU直连;CPMU不与子总线直连;CPMU,还用于确定任意两个CP中的发送者与接收者;任意两个CP通过握手协议进行数据传输。
[0012] 上述技术方案中,由于子总线并不区别主设备和从设备,CPMU与每个CP通过控制线连接,确定任意两个CP中的发送者和接收者,从而能对多个CP进行有效的调度和排布,进而实现协处理器可以流水线化进行数据传输,提升协处理器的利用率。
[0013] 可选的,子总线有多条;协处理器子系统还包括多路复用器MUX;每个CP设置有对应的MUX;CPMU,还用于通过MUX指定对应CP用于进行数据传输的子总线。
[0014] 可选的,待处理任务为多个;DMA协处理器包括输入DMA协处理器和输出DMA协处理器;CPMU,还用于控制多个待处理任务分别在各CP中的并行处理。
[0015] 可选的,任一CP包括暂存区、运算单元、控制单元、通讯单元;控制单元与CPMU连接;通讯单元与子总线连接。
[0016] 可选的,DMA协处理包括DMA单元、第一暂存区、第一通讯单元、第一控制单元、第二暂存区、第二控制单元和第二通讯单元;DMA单元、第一暂存区、第一控制单元和第一通讯单元构成输入DMA协处理器;DMA单元、第二暂存区、第二控制单元和第二通讯单元构成输出DMA协处理器。
[0017] 可选的,协处理器子系统还包括缓冲型协处理器;缓冲型协处理器包括暂存区、通讯单元和简化版控制单元;简化版控制单元用于控制暂存区与通讯单元。
[0018]  第二方面,本发明实施例提供一种任务处理方法,包括:CPU将待处理任务存储至存储器,并向CPMU发送用于指示处理待处理任务的任务处理请求; 协处理器子系统通过DMAC经总线从存储器读取待处理任务;CPMU通过控制至少一个CP处理待处理任务;协处理器子系统,还用于通过DMAC经总线将待处理任务的处理结果写入存储器;至少一个CP和CPMU属于同一个协处理器子系统;待处理任务在协处理器子系统内进行处理;CPMU向CPU发送任务完成响应;CPU根据任务完成响应,从存储器获取处理结果。
[0019] 可选的,CPMU通过控制至少一个CP处理待处理任务,包括:CPMU确定处理待处理任务的各CP并依序控制各CP对待处理任务进行处理;其中,各CP中任一CP在处理完自身任务部分后,通过CPMU的控制将自身任务部分的子结果通过子总线发送至下一CP。
[0020]  可选的,协处理器子系统,用于通过DMAC经总线从存储器读取待处理任务,包括:CPMU指示DMA协处理器向DMAC发送第一DMA请求,从而通过总线从存储器读取待处理任务并存储至DMA协处理器中;DMA协处理器位于协处理器子系统内,并与子总线直连; 依序控制各CP对待处理任务进行处理,包括:CPMU控制DMA协处理器将待处理任务通过子总线发送至第一CP,并通过子总线从第二CP获取处理结果;第一CP为首个处理待处理任务的CP;第二CP为最后处理待处理任务的CP;协处理器子系统,还用于通过DMAC经总线将待处理任务的处理结果写入存储器,包括:CPMU通过DMA协处理器向DMAC发送第二DMA请求,将DMA协处理器中存储的处理结果通过总线写入存储器。
[0021] 可选的,待处理任务为多个;CPMU还用于控制多个待处理任务分别在协处理器子系统内并行处理。
[0022] 第三方面,本发明实施例还提供一种计算机可读存储介质,存储介质存储有程序,当程序在计算机上运行时,使得计算机实现执行上述第二方面的一种任务处理方法。

附图说明

[0023] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024] 图1为本发明实施例提供的第一种DMAC系统的结构示意图;
[0025] 图2为本发明实施例提供的第二种DMAC系统的结构示意图;
[0026] 图3为本发明实施例提供的一种DMA传输的方法交互图;
[0027] 图4为本发明实施例提供的一种获取协处理器的处理结果的方法交互图;
[0028] 图5为本发明实施例提供的一种获取目标数据的方法交互图;
[0029] 图6为本发明实施例提供的一种电子设备的结构示意图;
[0030] 图7为本发明实施例提供的一种电子设备的架构图;
[0031] 图8为本发明实施例提供的一种协处理器CP的结构示意图;
[0032] 图9为本发明实施例提供的一种DMA协处理器的结构示意图;
[0033] 图10为本发明实施例提供的一种任务处理方法流程图;
[0034] 图11为本发明实施例提供的一种双子总线的结构示意图。

具体实施方式

[0035] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0036] 下面,对本申请中的部分用语进行通用解释说明,以便于本领域技术人员理解,并不对本申请中的用语进行限定。
[0037] 1、直接存储器访问(Direct Memory Access,DMA):将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器(DMAC)来实现和完成的。
[0038] 2、多路复用器(multiplexer,MUX):是一种可以从多个模拟或数字输入信号中选择一个信号进行输出的器件。一个有 2^n 输入端的数据选择器有 n 个可选择的输入-输出线路,可以通过控制端来选择其中一个信号被选择作为输出。数据选择器主要用于增加一定量的时间和带宽内的可以通过网络发送的数据量。
[0039] 3、协处理器管理单元(Co‑Processor Management Unit,CPMU):以硬件方式将多个协处理器相连接以任务队列的形式实现协处理器之间的数据传输。
[0040] 4、协处理器子系统(Co‑Processor Subsystem,CPSS):是 CPMU 和各个协处理器及其它附属组件的有机组合。
[0041] 5、总线:总线分为数据总线、地址总线、控制总线。总线上的设备分为主设备和从设备,主设备有总线控制权,可请求数据传输;从设备仅有总线使用权,只能根据主设备的请求向主设备提供或接受数据。
[0042] 6、数据总线:数据总线是 CPU 与存储器、CPU 与 I/O 接口设备之间传送数据信息(各种指令数据信息)的总线,这些信号通过数据总线往返于 CPU 与存储器、CPU 与 I/O 接口设备之间,因此,数据总线上的信息是双向传输。数据总线的宽度决定了 CPU 和外界的数据的传送速度。每条传输线一次只能传输一位二进制数据,数据总线是数据线数据之和。
[0043] 7、地址总线:地址总线是一种计算机总线,是 CPU 或 DMA(存储器直接访问)能力的单元,用来沟通这些单元想要访问(读取/写入)计算机内存组件/地方的物理地址,即地址总线决定数据传送发生在哪个系统组件上、发生在这个系统组件的哪个地址之上。CPU 或 DMAC 通过地址总线来指定存储单元。地址总线的宽度决定了寻址范围,地址总线是地址数据之和。
[0044] 8、控制总线:控制总线主要用来传送控制信号和时序信号。控制信号中,有的是 CPU 送往存储器和 I/O 设备接口电路的,如读/写信号,片选信号、中断响应信号等。CPU 通过控制总线对外部器件进行控制,控制总线的宽度决定了 CPU 对外部器件的控制能力,控制总线是控制线数据之和。
[0045] 为了便于理解本方案,下面介绍本方案的应用场景。
[0046] CPU具有转移数据、计算、控制程序转移等很多功能,其中系统运作的核心就是CPU,在一种可能的场景下,存储器与外设之间需要传输数据,一般来说,可以用输入输出指令或采用中断的方法来传输字节信息,但是这种方式会大量占用CPU的时间,同时也容易造成数据的丢失。因此,数据的传输可以通过DMA传输来实现。其中,DMA 传输方式是让存储器与外设、或外设与外设之间直接交换数据,不需要经过CPU的累加器中转,减少了这个中间环节,并且内存地址的修改、传送完毕的结束报告都是由硬件电路实现的,因此大大地提高了数据的传输速度。
[0047] 需要说明的是,DMA传输的方式的控制器不是CPU,而是DMAC,其中DMAC可以是可编程的大规模集成芯片,也可以是其他形式,在此不做限定。DMAC是储存器与外设之间进行高速数据传送时的硬件控制电路,是一种实现直接数据传送的专用处理器。
[0048] 如图1所示,为本发明实施例提供的第一种DMAC系统的结构示意图。DMAC与外设之间有两个信号交互,分别是DMA请求信号和DMAC向外设发送的DMA响应信号。DMAC与CPU之间也有两个信号交互,分别是DAMC向CPU发送的总线请求信号和CPU向DMAC发送的总线响应信号。需要说明的是,图1中的DMAC系统结构为第一种DMAC系统结构,在该系统中,外设的数据线连接到DMAC上,该结构的DMAC充当了外设和总线的中转站,外设的数据线被连接到 DMAC,再通过 DMAC 连接到数据总线,有时候 DMAC 还需要将从外设接收到的数据流转换为数据总线可接受的数据流。
[0049] DMAC系统结构还包括第二种DMAC系统结构,可参见图2,该结构为外设的数据线连接到数据总线上,该结构的DMAC只负责与 CPU 和外设分别握手,协商总线的使用权,并恰当设定地址总线,DMAC 的工作原理与图1相同。外设的数据线直接向数据总线传送数据流。
[0050] 为了便于理解本方案,下面以第一种DMAC系统结构为例介绍,但同时适用于第二种DMAC系统结构。
[0051] 外设与存储器之间进行数据传输,其中该数据传输可以是外设将目标数据存储至存储器中,也可以是外设从存储器中读取目标数据。在此不做限定。为了便于理解本方案,下面以外设从存储器中读取目标数据为例来介绍如何通过DMA传输实现存储器与外设之间直接交换数据。
[0052] 如图3所示,为本发明实施例提供的一种DMA传输的方法交互图。DMA传输的具体步骤如下:
[0053] 步骤301,外设向DMAC发送DMA请求信号。
[0054] 本发明实施例中,为了实现外设从存储器中直接读取目标数据,需要进行DMA传输。那么,首先需要外设向DMAC发送DMA请求信号,其中DMA请求信号用于请求进行DMA传输。
[0055] 步骤302,DMAC向CPU发送总线请求信号。
[0056] 本发明实施例中,为了实现外设通过总线从存储器中读取目标数据, DMAC需要获取总线的控制权,因此,DMAC在接收到外设发送的DMA请求信号之后,会向CPU发送总线请求信号,其中总线请求信号用于请求接管总线的控制权。可选的,总线请求信号为一种中断。
[0057] 步骤303,CPU向DMAC发送总线响应信号。
[0058] 本发明实施例中,CPU接收到DMAC发送的总线请求信号之后,CPU在当前总线周期结束后,CPU会进行中断处理,将控制总线、数据总线和地址总线置高阻态,即放弃对总线的控制权,同时向DMAC发送总线响应信号。
[0059] 步骤304,DMAC获得总线控制权。
[0060] 本发明实施例中,DMAC接收到总线响应信号之后,DMAC接管了总线的控制权,其中总线响应信号用于通知DMAC,CPU已经放弃了总线的控制权。
[0061] 步骤305,DMAC向外设发送DMAC的应答信号。
[0062] 本发明实施例中,当DMAC获得了总线控制权之后,即可以实现进行DMA传输,DMAC向外设发送DMAC的应答信号,其中DMAC的应答信号用于通知外设可以开始进行DMA传输。
[0063] 步骤306,DMAC向存储器发送地址信号。
[0064] 步骤307,DMAC向存储器发送读控制信号。
[0065] 步骤308,DMAC向外设发送写控制信号。
[0066] 步骤309,外设从存储器读取目标数据。
[0067] 本发明实施例中,由于DMAC系统结构有两种,其中若DMAC系统架构为第一种时,外设的目标数据直接传送给 DMAC,经 DMAC 中转后,DMAC 将设定地址总线并通过数据总线完成数据传输,使目标数据到达存储器。若DMAC系统架构为第二种时,DMAC 只负责根据和外设的握手信息设定地址总线,目标数据是由外设根据握手信息有条不紊地传送到数据总线上,最终到达存储器的。
[0068] 步骤310,DMAC向CPU发送结束信号。
[0069] 本发明实施例中,当外设将目标数据存储至存储器之后,DMAC向CPU发送结束信号,其中结束信号用于请求撤销DMAC对总线的控制权,当CPU接收到结束信号后,CPU会对其进行处理,CPU会收回对总线的控制权。可选的,结束信号为一种中断。
[0070] 由于CPU无法执行的任务比较多,例如:设备间的信号传输、接入设备的管理、图形处理、声频处理等任务,为了执行上述任务,需要一种特殊的处理器,这种特殊的处理器为协处理器。其中协处理器是一种协助中央处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器。上述步骤301至步骤310介绍了DMA的传输过程, DMA传输应用比较广泛,其中,在一种可能的场景下,若运行在CPU的某个程序需要获得协处理器的处理结果,可以通过DMA传输的方式获得。下面介绍一种通过DMA传输的方式从协处理器中获取处理结果的方法。
[0071] 如图4所示,为本发明实施例提供的一种获取协处理器的处理结果的方法交互图。该方法包括以下步骤:
[0072] 步骤401,协处理器向CPU发送中断。
[0073] 本发明实施例中,当协处理器将待处理数据处理完成得到目标数据之后,协处理器向CPU发送中断,其中中断用于通知CPU停止当前的任务并对协处理器进行响应。
[0074] 步骤402,CPU向协处理器请求回传处理结果。
[0075] 步骤403,协处理器向DMAC发送DMA请求信号。
[0076] 步骤404,DMAC向CPU发送总线请求信号。
[0077] 步骤405,CPU向DMAC发送总线响应信号。
[0078] 步骤406,DMAC获得了总线的控制权。
[0079] 步骤407,DMAC向协处理器发送DMAC的应答信号。
[0080] 步骤408,DMAC向存储器发送地址信号。
[0081] 步骤409,DMAC向存储器发送写控制信号。
[0082] 步骤410,DMAC向协处理器发送读控制信号。
[0083] 步骤411,协处理器向存储器写入目标数据。
[0084] 步骤412,DMAC向CPU发送结束信号。
[0085] 在一种可能的场景下,CPU会外接多个协处理器,例如,CPU会外接三个协处理器,其中,CPU中的某个程序需要获取的是由三个协处理器依次处理待处理数据得到的目标数据。下面为了便于理解本方案,以三个协处理器分别为CP1、CP2和CP3为例,其中处理数据的顺序为CP1 ‑>CP2 ‑>CP3。下面介绍一种如何获取目标数据的一种实现方法。
[0086] 如图5所示,为本发明实施例提供的一种获取目标数据的方法交互图,该方法包括以下步骤:
[0087] 步骤501,CPU将数据信息发送至存储器。
[0088] 本发明实施例中,数据信息包括第一待处理数据和第一待处理数据存放的地址信息。
[0089] 步骤502,CPU向CP1发送对第一待处理数据进行处理的请求。
[0090] 步骤503,CP1向DMAC发送DMA请求。
[0091] 步骤504,CP1从存储器中读取第一待处理数据。
[0092] 需要说明的是,步骤503和步骤504之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。
[0093] 步骤505,CP1对第一待处理数据进行处理,得到第二待处理数据。
[0094] 步骤506,CP1向DMAC发送DMA请求。
[0095] 步骤507,CP1向存储器传输第二待处理数据。
[0096] 需要说明的是,步骤506和步骤507之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。
[0097] 步骤508,CP1向CPU发送中断。
[0098] 步骤509,CPU进行中断处理。
[0099] 步骤510,CPU向CP2发送对第二待处理数据进行处理的请求。
[0100] 步骤511,CP2向DMAC发送DMA请求。
[0101] 步骤512,CP2从存储器中读取第二待处理数据。
[0102] 需要说明的是,步骤511和步骤512之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。
[0103] 步骤513,CP2对第二待处理数据进行处理,得到第三待处理数据。
[0104] 步骤514,CP2向DMAC发送DMA请求。
[0105] 步骤515,CP2向存储器传输第三待处理数据。
[0106] 需要说明的是,步骤514和步骤515之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。
[0107] 步骤516,CP2向CPU发送中断。
[0108] 步骤517,CPU进行中断处理。
[0109] 步骤518,CPU向CP3发送对第三待处理数据进行处理的请求。
[0110] 步骤519,CP3向DMAC发送DMA请求。
[0111] 步骤520,CP3从存储器中读取第三待处理数据。
[0112] 需要说明的是,步骤519和步骤520之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。
[0113] 步骤521,CP3对第三待处理数据进行处理,得到目标数据。
[0114] 步骤522,CP3向DMAC发送DMA请求。
[0115] 步骤523,CP3向存储器传输目标数据。
[0116] 需要说明的是,步骤522和步骤523之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。
[0117] 步骤524,CP3向CPU发送中断。
[0118] 步骤525,CPU进行中断处理。
[0119] 通过上述步骤501至步骤525中可以看出,虽然CPU的某个程序所需要的仅为步骤523中的目标数据,但是中间步骤中的CP1、CP2的运算结果都需要写回存储器中,这样后续步骤的协处理器才能从存储器中获取到待处理数据,从而才能开始进一步的运算。这样会存在一个问题,即同样一段流程在不同的协处理器上被多次重复,这样会导致CP1、CP2和CP3处理待处理数据的过程中共发生了6次DMA请求,15次中断处理,其中每次DMA请求对应2次中断处理,该原因在图3中已说明,在此不做赘述。但是仅步骤503中的DMA请求、步骤503中的DMA请求对应的2次中断处理、步骤522中的DMA请求、步骤522中的DMA请求对应的2次中断处理、步骤525中的中断请求是必须的,其他都是因这种系统结构下协处理器之间的数据流动必须经由 CPU 和存储器中转才引入的,这会导致在 DMA 传输期间,DMA 传输形成对总线的独占,CPU 不能使用总线读存储器,部分或完全失去对系统总线的控制。大量 DMA 请求的发生会影响系统,尤其是 RTOS 的实时性。额外的中断处理也将带来陷入内核态和进程上下文切换的额外开销,同时也一样影响系统的实时性。
[0120] 在一种场景下,需要将加解密密钥放在硬件上的安全协处理器中,如果有外来的已加密数据需要被处理,它首先需要由安全协处理器将其解密,随后经过其它协处理器进行复杂运算,最后再由安全协处理器完成加密。若通过图5进行实现的话,则被安全协处理器解密的数据必须用 DMA 请求写回存储器才能通过 DMA 交给其它协处理器处理,最后的运算结果还要通过 DMA 请求从存储器中传递给安全协处理器。由于不可避免地要将未加密的数据暂存在存储器中,这样的实现存在严重的数据安全性问题。
[0121] 综上,本发明实施例提供一种电子设备,通过引入协处理器子系统从而实现减少DMA请求的次数和中断的次数,进而提升数据传输的效率。
[0122] 如图6所示,为本发明实施例提供的一种电子设备的结构示意图,该电子设备600包括:CPU610、协处理器子系统620、DMAC630和存储器640,其中CPU610、DMAC630和存储器640分别与总线直连。协处理器子系统620包括CPMU621、子总线622和与子总线622直连的协处理器CP623;任意两个CP623通过子总线622进行数据传输;CPMU621与任意CP623之间通过控制线连接,CPU610用于将待处理任务存储至存储器640,并向CPMU621发送用于指示处理待处理任务的任务处理请求。协处理器子系统620,用于通过DMAC630经总线从存储器640读取待处理任务;CPMU621,用于通过控制至少一个CP623在协处理器子系统620内处理待处理任务;协处理器子系统620,还用于通过DMAC630经总线将待处理任务的处理结果写入存储器640;CPMU621,还用于向CPU610发送任务完成响应;CPU610,还用于根据任务完成响应,从存储器640获取处理结果。
[0123] 本发明实施例中,通过引入CPMU控制协处理器,从而降低对CPU的算力占用。协处理器之间通过子总线进行数据传输,从而避免中间结果需要经过CPU和内存中转,提升了数据传输的安全性,加快了数据在协处理器之间的流转,提高了处理数据的效率,以及减少了DMA传输的频率,避免频繁地占用总线。
[0124] 如图7所示,为本发明实施例提供的一种电子设备的架构图。其中图7中的RAM表示存储器,CP1、CP2和CP3表示协处理器,其中协处理器还包括DMA协处理器,DMA协处理器包括输入DMA协处理器和输出DMA协处理器,图7中的I表示输入DMA协处理器,O表示输出DMA协处理器。
[0125] 可选的,协处理器子系统还包括DMA协处理器;DMA协处理器与子总线直连;CPMU具体用于指示DMA协处理器向DMAC发送第一DMA请求,从而通过总线从存储器读取待处理任务并存储至DMA协处理器中;DMA协处理器,用于将待处理任务通过子总线发送至第一CP,并通过子总线从第二CP获取处理结果;第一CP为首个处理待处理任务的CP;第二CP为最后处理待处理任务的CP;CPMU,还具体用于通过DMA协处理器向DMAC发送第二DMA请求,将DMA协处理器中存储的处理结果通过总线写入存储器。
[0126] 本发明实施例中,由于本方案中需要进行DMA传输的协处理器的步骤仅需要两处,一处是通过DMA传输从存储器获取待处理任务,另一处是将处理结果存储至存储器,其他的协处理器之间的数据传输是通过子总线实现的,由于同一时间仅能执行一个DMA传输任务,因此,仅需要设置1个DMA协处理器,其他的协处理器不需要具备DMA单元,从而实现简化其他协处理器的设计,节省了电路面积。
[0127] 可选的,任一CP通过控制线与CPMU直连;CPMU不与子总线直连;CPMU,还用于确定任意两个CP中的发送者与接收者;任意两个CP通过握手协议进行数据传输。
[0128] 本发明实施例中,由于子总线并不区别主设备和从设备,CPMU与任一CP通过控制线连接,确定任意两个CP中的发送者和接收者,从而能对多个CP进行有效的调度和排布,进而实现协处理器可以流水线化进行数据传输,提升协处理器的利用率。
[0129] 可选的,子总线有多条;协处理器子系统还包括多路复用器MUX;每个CP设置有对应的MUX;CPMU,还用于通过MUX确定对应CP用于进行数据传输的子总线。
[0130] 可选的,待处理任务为多个;DMA协处理器包括输入DMA协处理器和输出DMA协处理器;CPMU,还用于控制多个待处理任务分别在各CP中的并行处理。
[0131] 可选的,任一CP包括暂存区、运算单元、控制单元、通讯单元;控制单元与CPMU连接;通讯单元与子总线连接。其中,任意协处理器的暂存区都可用作暂存来自其它协处理器的中间结果。
[0132] 可选的,协处理器子系统还包括缓冲型协处理器;缓冲型协处理器包括暂存区、通讯单元和简化版控制单元;简化版控制单元用于控制暂存区与通讯单元。其中缓冲型协处理器不存在运算单元,控制单元也被精简为只能控制暂存区和协处理器间的通讯单元,缓冲型协处理器的作用是为暂时无处安放的数据提供存储的地方,进一步提升流水线的紧凑度。
[0133] 如图8所示,为本发明实施例提供的一种协处理器CP的结构示意图。其中图中的左边为常见的协处理器,这种常见的协处理器中一般都是会有暂存区、运算单元、控制单元、DMA单元。其中由于仅在通过DMA传输从存储器获取待处理任务和将处理结果存储至存储器这两个步骤中需要协处理器具有DMA功能,其他步骤中的协处理器并不需要DMA功能,本方案中将协处理器分为DMA协处理器和多个CP,其中任一CP中由于不需要具有DMA功能,仅需要拥有计算和相互沟通的能力即可,可参见图8的右边,因此,任一CP包括暂存区、运算单元、控制单元、通讯单元;控制单元与CPMU连接;通讯单元与子总线连接。这样设计的任一CP的电路会简化许多,从而实现节省了电路的面积。
[0134] 如图9所示,为本发明实施例提供的一种DMA协处理器的结构示意图。
[0135] DMA协处理器包括DMA单元、第一暂存区、第一通讯单元、第一控制单元、第二暂存区、第二控制单元和第二通讯单元;DMA单元、第一暂存区、第一控制单元和第一通讯单元构成输入DMA协处理器;DMA单元、第二暂存区、第二控制单元和第二通讯单元构成输出DMA协处理器。由于DMA协处理器需要从CPMU中获取待处理任务的地址,因此,DMA协处理器与CPMU之间通过控制线连接。可选的,由于DMA协处理器与CPMU之间是强耦合的,因此,DMA协处理器可以直接设计为CPMU的IP核的一部分。
[0136] 为了便于理解本方案, 下面以协处理器包括输入DMA协处理器I、输出协处理器O、第一CP、第二CP、第三CP为例,其中输入DMA协处理器用于通过DMA传输从存储器读取待处理任务。输出协处理器用于将待处理任务的处理结果存入至存储器中,第一CP、第二CP、第三CP用于对待处理任务进行处理。协处理器的处理顺序依次为输入DMA协处理器,第一CP、第三CP、第二CP、输出DMA协处理器。其中第一CP为首个处理待处理任务的CP,第二CP为最后处理待处理任务的CP。
[0137] 如图10所示,为本发明实施例提供的一种任务处理方法流程图,该方法应用于上述电子设备,该方法包括以下步骤:
[0138] 步骤1001,CPU将待处理任务存储至存储器。
[0139] 本发明实施例中,若运行在CPU的程序需要获得多个协处理器依次对待处理任务进行处理从而得到的处理结果,那么首先CPU需要将待处理任务存储至存储器,从而便于后续协处理器通过DMA传输从存储器中获取待处理任务。其中待处理任务可以是待处理数据,也可以是其他任务,在此不做限定。
[0140] 步骤1002,CPU向CPMU发送用于指示处理待处理任务的任务处理请求。
[0141] 本发明实施例中,CPMU为协处理器管理单元,用于控制各个协处理器进行数据传输。CPU将待处理任务存储至存储器,为了使得协处理器可以按照顺序进行数据传输,其中协处理器的处理顺序可以是预先设定的,也可以是根据具体情况而确定的,在此不做限定。CPU需要向CPMU发送用于指示处理待处理任务的任务处理请求,其中,待处理任务的处理请求包括协处理器的处理顺序。
[0142] 步骤1003,CPMU向输入DMA协处理器发送第一指令。
[0143] 本发明实施例中,CPMU接收到用于指示处理待处理任务的任务处理请求后,根据任务处理请求中的处理顺序,向输入DMA协处理器发送第一指令。其中第一指令为指示输入DMA协处理器向DMAC发送DMA请求,从而便于后续输入DMA协处理器通过DMA传输从存储器中读取待处理任务。举个例子,任务处理请求中的处理顺序依次为输入DMA协处理器、第一CP、第三CP、第四CP、第二CP、输出DMA协处理器,可选的,输入DMA协处理器与输出DMA协处理器可以为同一个DMA协处理器。
[0144] 步骤1004,输入DMA协处理器向DMAC发送第一DMA请求。
[0145] 本发明实施例中,输入DMA协处理器接收CPMU发送的第一指令后,输入DMA协处理器根据第一指令的指示,向DMAC发送第一DMA请求,从而便于后续输入DMA协处理器通过DMA传输从存储器中读取待处理任务,进而实现后续多个CP对待处理任务进行处理。
[0146] 步骤1005,输入DMA协处理器通过总线从存储器读取待处理任务。
[0147] 本发明实施例中,步骤1004和步骤1005之间省略了DMA传输的过程,详细过程请参照图4,在此不再赘述。由于本方案需要将待处理任务根据协处理器的处理顺序依次进行处理,因此,首先需要具有DMA功能的输入DMA协处理器通过DMA传输,从存储器中读取待处理任务,便于后续其他协处理器对待处理任务进行处理。
[0148] 步骤1006,输入DMA协处理器向CPMU发送第一通知消息。
[0149] 本发明实施例中,输入DMA协处理器读取了待处理任务,并将待处理任务存储在缓存中,然后向CPMU发送第一通知消息,其中第一通知消息用于通知CPMU,输入DMA协处理器已经读取了待处理任务。从而便于CPMU根据第一通知消息控制待处理任务依次按照协处理器的处理顺序进行处理。
[0150] 步骤1007,CPMU向输入DMA协处理器发送第二指令,向第一CP发送第三指令。
[0151] 本发明实施例中,CPMU接收到输入DMA协处理器发送的第一通知消息之后,CPMU会根据协处理器的处理顺序,确定子总线的发送者和接收者,向输入DMA协处理器发送第二指令,其中第二指令用于指示输入DMA协处理器将待处理任务通过子总线进行数据传输。CPMU向第一CP发送第三指令,其中第三指令用于指示第一CP从子总线接收数据。其中这里子总线的发送者为输入DMA协处理器,接受者为第一CP。由于协处理器与CPMU之间的控制逻辑较为简单,且要求延迟比较低,因此,各个协处理器均有独立的控制线与CPMU连接。例如,CPMU通过与输入DMA协处理器的控制线与输入DMA协处理器连接,并通过控制线向输入DMA协处理器发送第二指令以及通过控制线向第一CP发送第三指令。
[0152] 步骤1008,输入DMA协处理器通过子总线将待处理任务发送至第一CP。
[0153] 本发明实施例中,输入DMA协处理器通过子总线将待处理任务发送至第一CP,由于子总线不存在主设备和从设备的区分,发送者和接收者的地位是相等的,因此,每次传输过程中都需要选定两个协处理器,其中可以看出,子总线不存在地址总线。由于任意两个协处理器是通过握手协议进行数据传输的,因此,子总线不存在控制总线。这样的话,第一CP不需要具有DMA功能从存储器中读取待处理任务, 输入DMA协处理器直接通过子总线将待处理任务发送至第一CP,从而简化了第一CP的设计,节约了电路面积。
[0154] 步骤1009,第一CP对待处理任务进行处理。
[0155] 本发明实施例中,第一CP通过子总线从输入DMA协处理器获取待处理任务,然后第一CP需要对待处理任务进行处理,直至第一CP处理完自身任务部分。
[0156] 步骤1010,第一CP向CPMU发送第二通知消息。
[0157] 本发明实施例中,当第一CP处理完自身任务部分,向CPMU发送第二通知消息,其中第二通知消息用于通知CPMU,第一CP已经处理完自身任务部分。
[0158] 步骤1011,CPMU向第一CP发送第四指令,向第三CP发送第五指令。
[0159] 本发明实施例中,CPMU接收到第二通知消息后,得知第一CP已经处理完自身任务部分,则向第一CP发送第四指令,其中第四指令用于指示第一CP通过子总线将已经处理完第一CP自身任务部分的子结果进行数据传输,CPMU向第三CP发送第五指令,其中第五指令用于指示第三CP从子总线接收数据。
[0160] 步骤1012,第一CP通过子总线第一CP自身任务部分的子结果发送至第三CP。
[0161] 本发明实施例中,由于第三CP与第一CP是通过子总线进行数据传输的,因此,第三CP也无需DMA功能从存储器中读取待处理任务,第一CP直接通过子总线将待处理任务发送至第三CP,从而简化了第三CP的设计,节约了电路面积。
[0162] 步骤1013,第三CP对第一CP自身任务部分的子结果进行处理。
[0163] 本发明实施例中,第三CP通过子总线从第一CP获取第一CP自身任务部分的子结果,然后第三CP需要对第一CP自身任务部分的子结果进行处理,直至第三CP处理完自身任务部分。
[0164] 步骤1014,第三CP向CPMU发送第三通知消息。
[0165] 本发明实施例中,当第三CP处理完自身任务部分,向CPMU发送第三通知消息,其中第三通知消息用于通知CPMU,第三CP已经处理完自身任务部分。
[0166] 步骤1015,CPMU向第三CP发送第六指令,向第二CP发送第七指令。
[0167] 本发明实施例中,CPMU接收到第三通知消息后,得知第三CP已经处理完自身任务部分,则向第三CP发送第六指令,其中第六指令用于指示第三CP通过子总线将已经处理完第三CP自身任务部分的子结果进行数据传输,CPMU向第二CP发送第七指令,其中第七指令用于指示第二CP从子总线接收数据。
[0168] 步骤1016,第三CP通过子总线将第三CP自身任务部分的子结果发送至第二CP。
[0169] 本发明实施例中,由于第三CP与第二CP是通过子总线进行数据传输的,因此,第二CP也无需DMA功能从存储器中读取待处理任务,第三CP直接通过子总线将待处理任务发送至第二CP,从而简化了第二CP的设计,节约了电路面积。
[0170] 步骤1017,第二CP对第三CP自身任务部分的子结果进行处理。
[0171] 本发明实施例中,第二CP通过子总线从第三CP获取第三CP自身任务部分的子结果,然后第二CP需要对第三CP自身任务部分的子结果进行处理,直至第二CP处理完自身任务部分。
[0172] 步骤1018,第二CP向CPMU发送第四通知消息。
[0173] 本发明实施例中,当第二CP处理完自身任务部分,向CPMU发送第四通知消息,其中第四通知消息用于通知CPMU,第二CP已经处理完自身任务部分。
[0174] 步骤1019,CPMU向第二CP发送第八指令,向DMA协处理器发送第九指令。
[0175] 本发明实施例中,CPMU接收到第四通知消息后,得知第二CP已经处理完自身任务部分,则向第二CP发送第八指令,其中第八指令用于指示第二CP通过子总线将待处理任务的处理结果进行数据传输。CPMU向输出DMA协处理器发送第九指令,其中第九指令用于指示输出DMA协处理器从子总线接收数据。其中需要说明的是,在一种可能的情况下,由于总线为1条,DMA传输无法并行化,输入DMA处理器和输出DMA处理器不能同时进行DMA传输,因此,输入DMA协处理器和输出DMA协处理器可以为同一个DMA协处理器。
[0176] 步骤1020,第二CP通过子总线将待处理任务的处理结果发送至输出DMA协处理器。
[0177] 本发明实施例中,由于第二CP不具有DMA功能,为了将待处理任务的处理结果存入至存储器,从而实现CPU的程序从存储器中读取待处理任务的处理结果,需要第二CP通过子总线将待处理任务的处理结果发送至输出DMA协处理器。
[0178] 步骤1021,CPMU向输出DMA协处理器发送第十指令。
[0179] 本发明实施例中,第十指令用于指示输出DMA协处理器向DMAC发送DMA请求,从而便于后续输出DMA协处理器通过DMA传输将待处理任务的处理结果存入至存储器,进而实现CPU的程序从存储器中读取待处理任务的处理结果
[0180] 步骤1022,输出DMA协处理器向DMAC发送第二DMA请求。
[0181] 本发明实施例中,输出DMA协处理器接收CPMU发送的第十指令后,输出DMA协处理器根据第十指令的指示,向DMAC发送第二DMA请求,从而便于后续输出DMA协处理器通过DMA传输将待处理任务的处理结果存入至存储器。
[0182] 步骤1023,输出DMA协处理器通过总线将待处理任务的处理结果存储至存储器。
[0183] 步骤1024,输出DMA协处理器向CPMU发送第五通知消息。
[0184] 本发明实施例中,当输出DMA协处理器将待处理任务的处理结果存储至存储器中后,输出DMA协处理器向CPMU发送第五通知消息,其中第五通知消息用于通知CPMU,输出DMA协处理器已经将待处理任务的处理结果存储至存储器中。
[0185] 步骤1025,CPMU向CPU发送任务完成响应。
[0186] 本发明实施例中,CPMU得知待处理任务的处理结果已经存储至存储器中后,CPMU会向CPU发送任务完成响应,其中任务完成响应用于通知CPU待处理任务已经处理完毕,且处理结果已经存储至存储器。可选的,任务完成响应为一种中断。
[0187] 步骤1026,CPU根据任务完成响应,从存储器获取处理结果。
[0188] 通过上述步骤1001至步骤1026可以看出,多个协处理器是通过子总线进行数据传输的,不仅减少协处理器进行DMA传输的次数,降低了因DMA传输对总线进行独占的时间,减轻因DMA传输而对CPU的影响。还减少了中断处理的次数,从而减少CPU在内核态和用户态之间来回切换的次数,降低额外开销。通过子总线进行数据传输,避免将未加密的数据暂存至存储器中,从而提高数据传输的安全性。在整个过程中CPU得以不受干扰地完成其它任务。
[0189] 本发明实施例中,由于任意CP在处理待处理任务结束之后,都会向CPMU发送通知,因此,CPMU可以将根据CP的工作状态,合理的编排CP处理待处理任务的顺序,从而实现流水线的使用各个CP,其中由于待处理任务在CP上处理的时间与待处理任务进行DMA传输的时间相差不大,如果最终的处理结果需要第二CP通过DMA传输回内存的话,在CP进行DMA传输的时候,CP运算的功能会被闲置,从而造成CP的资源浪费的情况。如果没有DMA协处理器,第一CP也会需要在一开始进行DMA传输。如果CPU发过来复数个任务,某个任务的第一CP就会在DMA传输时运算功能闲置,无法服务其它任务。为了避免CP的资源浪费的情况,本方案需要引入DMA协处理器,这样的话,在一种可能的场景下,多个待处理任务分别在各CP中并行处理,其中,DMA协处理器进行DMA传输,多个CP对多个待处理任务进行处理。为了简化下面的例子,未说明CPMU通过控制线与各个协处理器连接以及CPMU向协处理器发送的控制指令以及协处理器向CPMU发送的通知消息,需要说明的是,在完整的方案中,是具有上述描述的。举个例子,多个协处理器包括输入DMA协处理器、第一CP、第二CP、第三CP,输出DMA协处理器。若CPU送出三个待处理任务,它们在协处理器上的处理顺序完全相同。其中,协处理器的处理顺序为输入DMA协处理器、第一CP、第三CP、第二CP和输出DMA协处理器。输入DMA协处理器通过DMA传输从存储器获取第一待处理任务,然后DMA协处理器通过子总线将第一待处理任务传输至第一CP。在第一CP处理第一待处理任务的时候,输入DMA协处理器通过DMA传输从存储器中获取第二待处理任务。当输入DMA协处理器获得了第二待处理任务的时候,第一CP处理完了第一待处理任务对应的自身任务部分。当输入DMA协处理器通过子总线将第二待处理任务传输至第一CP的时候,第一CP将第一待处理任务对应的第一CP自身任务部分的子结果通过子总线传输至第三CP。当输入DMA协处理器通过DMA传输从存储器中获取第三待处理任务的时候,第一CP对第二待处理任务进行处理,第三CP对第一待处理任务进行处理,当输入DMA协处理器获取了第三待处理任务的时候,第一CP处理完了第二待处理任务对应的第一CP自身任务部分,第三CP处理完了第一待处理任务对应的第一CP自身任务部分的子结果。当输入DMA协处理器通过子总线将第三待处理任务传输至第一CP的时候,第一CP将第二待处理任务对应的第一CP自身任务部分的子结果通过子总线传输至第三CP,第三CP将第一待处理任务对应的第三CP自身任务部分的子结果通过子总线传输至第二CP,然后第二CP对第一待处理任务对应的第三CP自身任务部分的子结果进行处理的时候,第三CP对第二待处理任务对应的一CP自身部分的子结果进行处理,第一CP对第三待处理任务进行处理,第二CP将第一待处理任务的处理结果通过子总线传输至输出DMA协处理器的时候,第三CP通过子总线将第二待处理任务的第三CP自身任务部分的子结果传输至第二CP,第一CP通过子总线将第三待处理任务的第一CP自身任务部分的子结果传输至第三CP。当第二CP对第二待处理任务的第三CP自身任务部分的子结果进行处理的时候,第三CP对第三待处理任务的第一CP自身任务部分的子结果进行处理,当第二CP通过子总线将第二待处理任务的处理结果传输至输出DMA协处理器的时候,第三CP通过子总线将第三待处理任务对应的第三CP自身任务部分的子结果进行处理,当输出DMA协处理器获得了第二待处理任务的处理结果的时候,第二CP获得了第三待处理任务对应的第三CP自身任务部分的子结果,当输出DMA协处理器通过DMA传输将第二待处理任务的处理结果存储至存储器的时候,第二CP对第三待处理任务对应的第三CP自身任务部分的子结果进行处理,当输出DMA协处理器将第二待处理任务的处理结果成功存储至存储器的时候,第二CP对第三待处理任务对应的第三CP自身任务部分的子结果处理完毕,最后,第二CP将第三待处理任务的处理结果通过子总线传输至输出DMA协处理器。该例子中有三个这样的待处理任务。需要注意,实际应用中,多个待处理任务使用协处理器的顺序可以不相同。这里是在举例便于理解本方案,但是该例子并不限定方案。
[0190] 在一种可能的情况下,需要同时有多个协处理器完成其任务的话,一条子总线会使得数据传输的过程中需要排队,无法并行化进行数据传输,导致数据传输的效率较低。若有多条子总线的话,即可实现并行化进行数据传输。可参见图11。举个例子,若有两条子总线,有DMA协处理器、第一CP、第二CP和第三CP,其中,为了显示出DMA处理器具有输出和输入的功能,图11中的输入DMA协处理器以I表示,输出DMA协处理器以O表示,第一CP以CP1表示,第二CP以CP2表示,第三CP以CP3表示。图11中为两个子总线,分别是子总线0和子总线1,为了两个子总线在使用过程中避免冲突的情况出现,每个CP设置有对应的MUX,其中MUX的输入和输出都是有总线宽度的,MUX的选择线连接至CPMU上,CPMU通过MUX选择CP所需要使用的子总线,其中由于有两个子总线,因此,MUX为二路MUX。若有三个子总线,那么MUX为三路MUX。若有N个子总线,那么MUX为N路MUX。其中N为大于等于2的正整数。举个例子,若CPMU 需要将数据从 CP3 转移到 CP1,同时将数据从CP2转移到O,具体步骤如下:首先CPMU为CP3 和CP1选择子总线0;为CP2和O 选择子总线1,然后CPMU通过控制线向CP2 和 CP3 发出传送请求,向CP1和O 发出接收请求,CP3和CP1接通子总线0,在其上执行握手。然后CP2和O接通子总线1,在其上执行握手。此时,其余CP由于没有收到传送/接收请求,将不与任何子总线接通。握手完成后,CP3进入传送模式,CP1进入接收模式,数据从CP3经由子总线0流向CP1;CP2进入传送模式,O进入接收模式,数据从CP2经由子总线1流向O。传输完成后,CP1、CP2、CP3和O各自均向CPMU发送传输完成信号。CP1 开始对接收到的数据进行处理。O从与CPMU的控制线处取得目标地址,与DMAC握手,开始将接收到的数据通过DMA传输回写到内存中的对应地址。然后CPMU 标记 CP2、CP3 空闲,CP1 正运算中,O 正执行 DMA,便于后续通过CPMU控制各协处理器进行流水线化对数据进行处理。
[0191] 基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述任务处理方法的步骤。
[0192] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0193] 本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0194] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0195] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0196] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0197] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。