一种多线程处理器和处理方法

文档序号:6431114阅读:172来源:国知局
专利名称:一种多线程处理器和处理方法
技术领域
本发明涉及多线程处理器,尤其涉及一种多线程处理器和处理方法。
背景技术
处理器,特别是嵌入式处理器,越来越广泛地应用在移动通信、数字消费电子和智能控制设备等领域。在处理器架构中,处理器可以在一个时钟周期内发射并执行多条指令。然而,在单线程处理器结构中只能发掘一个线程的指令级并行度来提高处理器的吞吐率以及计算资源利用率,在不能发掘足够的指令来填满指令发射槽时就产生处理器计算资源的浪费。同时,当由于缓存扑空或者资源冲突造成处理器在接下来的时钟周期中不 能发射任何指令时,也会导致计算资源的浪费,限制了处理器处理能力的提高。多线程处理器结构则允许在一个时钟周期内发射来自多个线程的多条指令,可以有效开发利用多个线程中的并行指令。同时,当由于长延迟事件或者资源冲突导致一个线程停顿堵塞时,多线程处理器又可以发射执行另一个未阻塞线程的指令,从而有效减少计算资源的浪费。在多线程处理器结构中,处理器的功耗一般分为两种一种是来自器件的动态功耗,另一种是来自漏电的静态功耗。动态功耗包括电容充放电以及当P/N MOS管同时打开时形成的瞬间短路电流。每个器件的动态功耗和时钟频率有关,随着时钟翻转,导致节点电容充放电,以及产生瞬间短路电流。虽然在多线程处理器结构中,多个线程共享计算资源,有效提高了处理器的资源利用率。同时,为了保证多个线程可以同时运行,各个线程也需要各自专用的资源。但是,多线程的共享计算资源和各个线程的专用资源的使用都将会导致处理器的功耗被提高。

发明内容
本发明的目的是提供一种在线程处于空闲状态时,关闭线程资源工作时钟的方法,来解决多线程处理器资源浪费的问题,从而降低了多线程处理器的功耗。为实现上述目的,本发明提供了一种多线程处理器,包括用于多个线程的专用资源和共享资源;用于当执行的多个线程中任一线程的指令是空闲指令时,关闭线程专用资源的工作时钟,当多个线程的指令都是空闲指令时,关闭线程共享资源工作时钟的空闲控制丰吴块。本发明另一方面提供了一种降低多线程处理器功耗的方法,该方法步骤包括当执行的多个线程中任一线程的指令是空闲指令时,则关闭线程专用资源的工作时钟;如果执行的多个线程的指令都是空闲指令时,则关闭多个线程共享资源的工作时钟。本发明实施例的一种多线程处理器和处理方法,能够解决多线程处理器资源浪费的问题,从而大大降低了多线程处理器的功耗。


图I为本发明实施例空闲(Idle)控制模块资源控制示意图2为本发明一实施例Idle控制模块结构示意图;图3为本发明另一实施例Idle控制模块结构示意图;图4为本发明实施例降低多线程处理器功耗的方法流程图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图I为本发明实施例Idle控制模块资源控制示意图。如图I所示,本发明实施例包括Idle控制模块110、线程I专用资源120、线程2专用资源121、以及线程N专用资源129和线程共享资源130。线程的专用资源包括程序计数器PC,通用寄存器堆,中断处理单元、控制逻辑和指令池的工作时钟;线程的共享资源包括加法器、乘法器、累加器、移位寄存器,取指单元和译码单元。Idle控制模块110用于当执行的多个线程中任一线程的指令是Idle指令时,关闭该线程专用资源的工作时钟,当多个线程的指令都是Idle指令时,关闭线程共享资源的工作时钟。例如,多线程处理器所执行的线程I的指令是Idle指令,则由Idle控制模块110关闭该线程I专用资源120的工作时钟信号,当执行的多个线程的指令都是Idle指令时,Idle控制模块110关闭多个线程的共享资源130的工作时钟信号。图2为本发明一实施例Idle控制模块结构示意图。所图2所示,本发明实施例包括两个Idle子模块,即Idle子模块211和Idle子模块212 ;三个或门组成的逻辑电路,即或门221、或门222和或门223 ;三个内部时钟发生器(Internal Clock Generator, ICG),即ICG231、ICG232和ICG233。Idle子模块211通过或门221连接到ICG231, Idle子模块212通过或门222连接到ICG232,或门221与或门222的输出端连接到或门223,或门223的输出端连接到ICG233。本发明实施例中的逻辑电路在保持功能不变的情况下,还可以通过其它门电路来代替,例如用多个与门电路来组成逻辑电路。在一个例子中,Idle子模块211接收到第一线程为Idle指令时,通过或门221向或门223和ICG231传送低电平“O”值信号,ICG231在接收到来自Idle子模块211的“O”值信号时,则关闭第一线程专用资源的工作时钟信号。Idle子模块212用于接收第二线程为Idle指令时,通过或门222向或门223和ICG232传送低电平“O”值信号,ICG232则关闭第二线程专用资源的工作时钟信号。或门223当接收到或221和或门222的信号都是低电平“O”值信号时,则向ICG233传送低电平“O”值信号,ICG233则关闭第一线程和第二线程的共享资源工作时钟信号。在一个例子中,通过第一线程或者第二线程的中断信号为高电平“I”值时,ICG231或ICG233将重新开启线程的专用资源以及线程的共享资源的工作时钟。图3为本发明另一实施例Idle控制模块结构示意图。如图3所示,本发明实施例的Idle控制模块30包括时钟控制单元31和中断唤醒单元32。时钟控制单元31用于当多线程处理器执行线程的Idle指令时,关闭该线程的专用资源工作时钟;当多线程处理器执行的所有线程都是Idle指令时,关闭所有线程所使用的共享资源工作时钟。
中断唤醒单元32用于接收线程的中断信号,线程的任何一个中断的产生都会使该线程退出空闲状态,从而重新开启该线程的的专用资源的工作时钟。当任何一个线程的中断产生时,该线程的中断就可以将处理器的线程专用资源以及共享资源的时钟信号唤醒。线程的工作时钟开启后,该线程将继续执行Idle指令后的下一条指令。图4为本发明实施例降低多线程处理器功耗的方法流程图。如图I所示,本发明实施例降低多线程处理器功耗的方法包括步骤401-405 在步骤401,依次执行多个线程的指令。具体地,多线程处理器通过取指单元接收来多个线程的指令,并执行相应的指令操作。在步骤402,当多线程处理器执行的线程指令是Idle指令时,执行步骤403,否则 返回到步骤401。多线程处理器中的任何一个线程都有可能由于具体操作的任务被挂起而进入空闲状态,产生Idle指令。在空闲状态下该线程不做任何操作,只是等待系统的重新开启信
肩、O线程的Idle指令编码如表I所示。表I
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 O OOOoo1Oid1Q1000000000000000000000当多线程处理器在执行空闲状态下的线程Idle指令时,通过Idle控制模块关闭该空闲状态下的线程专用资源的工作时钟,该线程的专用资源包括线程的程序计数器PC、通用寄存器堆、中断处理单元、控制逻辑和指令池等器件。线程的专用资源在没有时钟信号时停止工作,但是对于定时器、串行口等外部设备仍保持正常的工作状态。在步骤403,当执行的线程指令是Idle指令,则关闭该线程专用资源的工作时钟。具体地,当多线程处理器执行的线程指令是Idle指令时,由Idle控制模块的时钟控制单元发出关闭该线程工作时钟的信号,致使该线程专用资源停止工作。在步骤404,如果多线程处理器执行的多个线程都是Idle指令时,则执行步骤405,否则返回到步骤401。在步骤405,如果多个线程的指令都是Idle指令,则关闭多个线程的共享资源的工作时钟。在一个实施例中,多线程处理器中的所有线程的操作任务被挂起而进入空闲状态,都产生Idle指令。当多线程处理器在执行所有线程的IDLE指令时,多线程处理器则通过Idle控制模块向所有线程的专用资源发出关闭工作时钟的信号,同时,还将关闭多线程处理器所有线程共享资源的工作时钟,致使整个多线程处理器都处于空闲状态。在线程进入Idle状态时,通过线程的中断请求信号重新开启该线程专用资源以及该线程的共享资源的工作时钟。具体地,多个线程的任何一个中断信号的产生都会使该线程退出Idle状态,从而重新开启该线程的专用资源的工作时钟。当任何一个线程的中断请求信号产生时,该线程的中断就可以将处理器的线程专用资源以及共享资源的时钟唤醒。当线程的专用资源以及共享资源的时钟被唤醒后,该线程将继续执行Idle指令后的下一条指令。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多线程处理器,其特征在于,所述处理器包括 用于多个线程使用的专用资源和共享资源; 用于当执行的多个线程中任一线程的指令是空闲指令时,关闭所述线程专用资源的工作时钟,当多个线程的指令都是空闲指令时,关闭所述线程共享资源工作时钟的空闲控制模块。
2.根据权利要求I所述的处理器,其特征在于所述空闲控制模块包括空闲控制子模块和内部时钟发生器IC G,所述空闲控制子模块通过所述ICG向所述线程专用资源发送关闭工作时钟信号。
3.根据权利要求I所述的处理器,其特征在于所述空闲控制模块包括空闲控制子模块和ICG,所述空闲控制子模块通过所述ICG向所述线程共享资源发送关闭工作时钟信号。
4.根据权利要求I所述的处理器,其特征在于所述空闲控制模块包括空闲控制子模块和ICG,当执行的多个线程中任一线程的指令是空闲指令时,所述空闲控制子模块和所述ICG关闭所述线程的专用资源工作时钟信号,当执行的多个线程的指令都是空闲指令时,所述空闲控制子模块和所述ICG关闭所述多个线程的共享资源工作时钟。
5.根据权利要求I所述的电路,其特征在于所述空闲控制模块还包括 用于关闭所述线程专用资源和所述多个线程共享资源工作时钟信号的时钟控制单元; 用于当接收到所述多个线程中任一线程的中断信号时,开启所述线程专用资源和所述线程共享资源工作时钟信号的中断唤醒单元。
6.一种多线程处理方法,其特征在于,所述方法包括 当执行的多个线程中任一线程的指令是空闲指令时,则关闭所述线程专用资源的工作时钟; 当执行的多个线程的指令都是空闲指令时,则关闭所述多个线程共享资源的工作时钟。
7.根据权利要求6所述的方法,其特征在于所述方法包括 当接收到所述多个线程中任一线程的中断信号时,开启所述线程专用资源和所述线程共享资源工作时钟信号。
全文摘要
本发明涉及一种多线程处理器和处理方法。所述处理器包括用于多个线程使用的专用资源和共享资源;用于当执行的多个线程中任一线程的指令是空闲指令时,关闭线程专用资源的工作时钟;当多个线程的指令都是空闲指令时,关闭线程共享资源工作时钟的空闲控制模块。所述方法包括当执行的多个线程中任一线程的指令是空闲指令时,则关闭线程专用资源的工作时钟;如果执行的多个线程的指令都是空闲指令时,则关闭多个线程共享资源的工作时钟。本发明通过执行线程空闲指令来控制线程资源的工作时钟,有效减少了线程资源的浪费,从而降低了多线程处理器的功耗。
文档编号G06F9/50GK102955716SQ201110238998
公开日2013年3月6日 申请日期2011年8月19日 优先权日2011年8月19日
发明者沈钲, 梁敏, 侯世国, 吉亚平, 李良衍, 王文东, 凌霄, 林晗, 张喆鹏, 任冬晨, 张丽伟 申请人:苏州简约纳电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1