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

文档序号:9579032阅读:627来源:国知局
一种处理器及其处理任务的方法
【技术领域】
[0001]本发明涉及处理器技术,尤其涉一种处理器及其处理任务的方法。
【背景技术】
[0002]在移动通信市场,存在着第二代(2G,2Generat1n)、第三代(3G,3Generat1n)、第四代(4G,4Generat1n)共存的局面,通信技术协议也在不断的向前发展。面对如此多的通信制式和快速更新的协议版本,采用软件定义无线电(SDR,Software Defined Rad1)技术实现基带信号处理是一个好的发展方向。SDR技术采用的是数字信号处理器(DSP,Digital Signal Processor)软基带方案,相比传统专用集成电路(ASIC,Applicat1nSpecific Integrated Circuit)实现方式,具有更高的灵活性和更快的产品推出速度。4G长期演进(LTE,Long Term Evolut1n)以及后续的长期演进升级版(LTE-A,Long TermEvolut1n -Advanced)技术都以正交频分复用(0FDM,Orthogonal Frequency Divis1nMultiplexing)和多输入多输出(ΜΙΜ0,Multiple Input Multiple Output)作为主要技术特征,这些技术特征决定了所处理的基带信号具有矩阵运算较多的特点。所以采用具有矢量运算功能的矢量DSP处理器实现LTE及LTE-A基带信号处理是合适的。基于此,如何提高矢量处理器的性能成为决定软基带芯片性能的关键。
[0003]以往,处理器性能的提升主要靠提高处理器主频。但随着处理器频率越来越高,这种方法难以为继,原因是频率提高带来的功耗和发热代价太大并且处理器性能提升效果不明显。现在处理器朝着多核方向发展,通过在一个处理器内集成多个处理器核,并令多个处理器核并行工作,在不提高处理器频率的情况下,显著地提高了处理器性能。Intel公司的多核桌面处理器和ARM公司的多核移动处理器的广泛应用,证明采用多核技术是提升处理器性能行之有效的方法。多核处理器最常见的并行方式是任务级并行。如图1所示,单核处理只能串行执行每个任务,而多核处理器可以将没有依赖关系的任务分配给不同的核,这样带来的性能提升显而易见。这种并行方式并不适用前后有依赖关系的任务,即后面任务的输入是前面任务的输出。对于有依赖关系的任务,可以采用流水线并行的方式,即不同的任务分别交由不同的核处理,任务进行流水操作。
[0004]具体到矢量处理器,对于某个任务,矢量运算并不是所有运算的全部,因为在矢量运算之前,需要一些参数计算。这些参数计算属于标量运算,所以可以把某个任务分割为标量运算和矢量运算两部分。如果标量运算和矢量运算能够实现流水线并行,则可以显著提高矢量处理器的性能。当前多核处理器多采用共享存储器的方式实现核间通信,如果使用现有多核技术实现标量运算和矢量运算并行,将参数存于共享存储器上,则由于存储器访问速度和多核同步时间开销的原因,任务切换需要花费一定的时间,使得流水线并行带来的益处被抵消掉一部分。

【发明内容】

[0005]本发明实施例提供了一种处理器及其处理任务的方法,克服了多核处理器流水线并行任务切换时间开销大的问题。
[0006]本发明实施例提供的处理器处理任务的方法包括:
[0007]标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至参数缓冲器(PBUF,Parameter Buffer)中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;
[0008]矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至影子(shadow)寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至工作(work)寄存器中;
[0009]矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。
[0010]本发明实施例中,所述当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中,包括:
[0011]当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行所述第三指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中。
[0012]本发明实施例中,所述方法还包括:
[0013]所述矢量计算模块执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
[0014]本发明实施例中,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
[0015]所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
[0016]本发明实施例中,所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
[0017]所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
[0018]本发明实施例中,所述方法还包括:
[0019]所述标量计算模块将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
[0020]本发明实施例提供的处理器包括:标量计算模块、矢量计算模块、PBUF,所述矢量计算模块包括:shadow寄存器、work寄存器;
[0021]所述标量计算模块,用于执行当前任务的参数计算,并将计算得到的参数存储至所述PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;
[0022]所述shadow寄存器,用于从所述PBUF中读取参数,并存储读取到的参数;
[0023]所述work寄存器,用于当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数;
[0024]所述矢量计算模块,用于根据所述work寄存器中的参数执行当前任务的矢量计笪并ο
[0025]本发明实施例中,所述work寄存器,还用于当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数。
[0026]本发明实施例中,所述矢量计算模块,还用于执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
[0027]本发明实施例中,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
[0028]所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
[0029]本发明实施例中,所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
[0030]所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
[0031]本发明实施例中,所述标量计算模块,还用于将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
[0032]本发明实施例的技术方案中,标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中;矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。本发明实施例的处理器使用标量计算模块和矢量计算模块分别执行每个任务的标量处理部分和矢量处理部分,并利用PBUF作为标量处理输出和矢量处理输入的参数缓存器,可以使标量处理程序和矢量处理程序并行执行,显著提高了处理器性能。此外,由于shadow寄存器到work寄存器的一次性更新策略,矢量计算模块的任务切换几乎没有额外的时间开销。矢量计算模块兼具标量运算功能,即标量核是矢量核的功能子集,而且标量核和矢量核采用兼容的指令集,因而可以灵活地进行标量任务和矢量任务的切割以及最大程度程序优化。标量计算模块负责任务控制可以对矢量计算模块进行灵活调度,控制矢量计算模块的执行轨迹,方便编程。
【附图说明】
[0033]图1为多核并行实现方式的示意图;
[0034]图2为本发明实施例的处理器并行和同步示意图;
[0035]图3为本发明实施例一的处理器处理任务的方法的流程示意图;
[0036]图4为本发明实施例的处理器的结构组成示意图;
[0037]图5为本发明实施例的处理器的结构框图;
[0038]图6为本发明实施例的双核核间通信示意图;
[0039]图7为本发明实施例的PBUF数据格式示意图;
[0040]图8为本发明实施例二的处理器处理任务的方法的流程示意图;
[0041]图9
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1