一种处理器及其处理任务的方法_4

文档序号:9579032阅读:来源:国知局
以及各个任务均衡,所以对软件编程提出更高的要求。
[0112]图15为本发明另一实施例的处理器处理任务的方法的流程示意图,按照以下的步骤,实现双核并行计算和交互:
[0113]步骤1501:标量核执行参数计算,并将计算结果写入参数寄存器和矢量核的shadow寄存器。一个任务所用的一组参数计算完成后,标量核执行用于核间同步的fork或sync指令,并将该指令信息传递到矢量核。
[0114]步骤1502:当矢量核从标量核得到fork或sync指令信息时,并且矢量核处于空闲状态或执行sync指令时,在一个周期内将所有被修改的shadow寄存器值一次性拷贝到work寄存器。
[0115]步骤1503:矢量核根据work寄存器携带的参数进行矢量计算。计算完成后执行sync指令,用于更新下一任务所需的参数。同时,矢量核需要将sync指令信息反馈给标量核,通知标量核可以进行新的参数计算。在矢量核进行计算的同时,标量核也在对下一任务的参数进行计算,实现任务流水线并行。
[0116]图16为本发明另一实施例的标量核处理任务的流程示意图。标量核的处理过程如下:
[0117]步骤1601:执行参数计算:对于参数计算结果,既需要写入参数寄存器,又需要写入shadow寄存器。
[0118]步骤1602:执行fork或sync指令:fork指令将指定所调用VC0RE子程序地址,sync指令默认VC0RE顺序执行。fork或sync指令信息被送至VC0RE。
[0119]步骤1603:判断是否有新的一组参数需要计算,如果没有,则SCORE结束工作;如果有,则执行步骤1604。
[0120]步骤1604:判断VC0RE是否处于空闲状态或正在执行sync指令。如果VC0RE处于空闲状态或正在执行sync指令,则回到参数计算的步骤1601,否则执行步骤1605。
[0121 ] 步骤1605:SCORE停钟等待直到VC0RE执行sync指令。
[0122]图17为本发明是另一实施例的矢量核处理任务的流程示意图。矢量核的处理过程如下:
[0123]步骤1701:在空闲状态下,如果SCORE发来fork或sync指令信息或者SCORE处于停钟等待状态,则执行下一步操作;否则VC0RE继续维持在空闲状态。
[0124]步骤1702:将所有被修改的shadow寄存器值一次性拷贝到对应的work寄存器。该操作在一个周期内快速完成。
[0125]步骤1703:VC0RE从fork指定的地址开始运行子程序或顺序执行。
[0126]步骤1704:VC0RE执行sync指令,判断是否SCORE发来fork或sync指令信息或者SCORE处于停钟等待状态。如果是,则执行shadow寄存器值拷贝到work寄存器的操作;如果不是,则进入空闲状态。进入空闲状态后,继续等待fork或sync指令信息。
[0127]本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0128]在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0129]上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0130]另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0131]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种处理器处理任务的方法,其特征在于,所述方法包括: 标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至参数缓冲器PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中; 矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至影子shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至工作work寄存器中; 矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。2.根据权利要求1所述的处理器处理任务的方法,其特征在于,所述当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中,包括: 当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中。3.根据权利要求1所述的处理器处理任务的方法,其特征在于,所述方法还包括: 所述矢量计算模块执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。4.根据权利要求1所述的处理器处理任务的方法,其特征在于,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成; 所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。5.根据权利要求1所述的处理器处理任务的方法,其特征在于, 所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成; 所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。6.根据权利要求1至5任一项所述的处理器处理任务的方法,其特征在于,所述方法还包括: 所述标量计算模块将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。7.—种处理器,其特征在于,所述处理器包括:标量计算模块、矢量计算模块、PBUF,所述矢量计算模块包括:shadow寄存器、work寄存器; 所述标量计算模块,用于执行当前任务的参数计算,并将计算得到的参数存储至参数缓冲器PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中; 所述shadow寄存器,用于从所述PBUF中读取参数,并存储读取到的参数; 所述work寄存器,用于当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数; 所述矢量计算模块,用于根据所述work寄存器中的参数执行当前任务的矢量计算。8.根据权利要求7所述的处理器,其特征在于,所述work寄存器,还用于当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数。9.根据权利要求7所述的处理器,其特征在于,所述矢量计算模块,还用于执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。10.根据权利要求7所述的处理器,其特征在于,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成; 所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。11.根据权利要求7所述的处理器,其特征在于,所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成; 所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。12.根据权利要求7至11任一项所述的处理器,其特征在于,所述标量计算模块,还用于将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
【专利摘要】本发明公开了一种处理器及其处理任务的方法,包括:标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中;矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。
【IPC分类】G06F9/38
【公开号】CN105335130
【申请号】CN201510626791
【发明人】文博, 曹庆新
【申请人】深圳市中兴微电子技术有限公司
【公开日】2016年2月17日
【申请日】2015年9月28日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1