CN102955716A - 一种多线程处理器和处理方法 - Google Patents
一种多线程处理器和处理方法 Download PDFInfo
- Publication number
- CN102955716A CN102955716A CN2011102389985A CN201110238998A CN102955716A CN 102955716 A CN102955716 A CN 102955716A CN 2011102389985 A CN2011102389985 A CN 2011102389985A CN 201110238998 A CN201110238998 A CN 201110238998A CN 102955716 A CN102955716 A CN 102955716A
- Authority
- CN
- China
- Prior art keywords
- thread
- idle
- instruction
- threads
- work clock
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种多线程处理器和处理方法。所述处理器包括:用于多个线程使用的专用资源和共享资源;用于当执行的多个线程中任一线程的指令是空闲指令时,关闭线程专用资源的工作时钟;当多个线程的指令都是空闲指令时,关闭线程共享资源工作时钟的空闲控制模块。所述方法包括:当执行的多个线程中任一线程的指令是空闲指令时,则关闭线程专用资源的工作时钟;如果执行的多个线程的指令都是空闲指令时,则关闭多个线程共享资源的工作时钟。本发明通过执行线程空闲指令来控制线程资源的工作时钟,有效减少了线程资源的浪费,从而降低了多线程处理器的功耗。
Description
技术领域
本发明涉及多线程处理器,尤其涉及一种多线程处理器和处理方法。
背景技术
处理器,特别是嵌入式处理器,越来越广泛地应用在移动通信、数字消费电子和智能控制设备等领域。在处理器架构中,处理器可以在一个时钟周期内发射并执行多条指令。
然而,在单线程处理器结构中只能发掘一个线程的指令级并行度来提高处理器的吞吐率以及计算资源利用率,在不能发掘足够的指令来填满指令发射槽时就产生处理器计算资源的浪费。同时,当由于缓存扑空或者资源冲突造成处理器在接下来的时钟周期中不能发射任何指令时,也会导致计算资源的浪费,限制了处理器处理能力的提高。多线程处理器结构则允许在一个时钟周期内发射来自多个线程的多条指令,可以有效开发利用多个线程中的并行指令。同时,当由于长延迟事件或者资源冲突导致一个线程停顿堵塞时,多线程处理器又可以发射执行另一个未阻塞线程的指令,从而有效减少计算资源的浪费。
在多线程处理器结构中,处理器的功耗一般分为两种:一种是来自器件的动态功耗,另一种是来自漏电的静态功耗。动态功耗包括电容充放电以及当P/N MOS管同时打开时形成的瞬间短路电流。每个器件的动态功耗和时钟频率有关,随着时钟翻转,导致节点电容充放电,以及产生瞬间短路电流。
虽然在多线程处理器结构中,多个线程共享计算资源,有效提高了处理器的资源利用率。同时,为了保证多个线程可以同时运行,各个线程也需要各自专用的资源。但是,多线程的共享计算资源和各个线程的专用资源的使用都将会导致处理器的功耗被提高。
发明内容
本发明的目的是提供一种在线程处于空闲状态时,关闭线程资源工作时钟的方法,来解决多线程处理器资源浪费的问题,从而降低了多线程处理器的功耗。
为实现上述目的,本发明提供了一种多线程处理器,包括:用于多个线程的专用资源和共享资源;用于当执行的多个线程中任一线程的指令是空闲指令时,关闭线程专用资源的工作时钟,当多个线程的指令都是空闲指令时,关闭线程共享资源工作时钟的空闲控制模块。
本发明另一方面提供了一种降低多线程处理器功耗的方法,该方法步骤包括:当执行的多个线程中任一线程的指令是空闲指令时,则关闭线程专用资源的工作时钟;如果执行的多个线程的指令都是空闲指令时,则关闭多个线程共享资源的工作时钟。
本发明实施例的一种多线程处理器和处理方法,能够解决多线程处理器资源浪费的问题,从而大大降低了多线程处理器的功耗。
附图说明
图1为本发明实施例空闲(Idle)控制模块资源控制示意图;
图2为本发明一实施例Idle控制模块结构示意图;
图3为本发明另一实施例Idle控制模块结构示意图;
图4为本发明实施例降低多线程处理器功耗的方法流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例Idle控制模块资源控制示意图。如图1所示,本发明实施例包括Idle控制模块110、线程1专用资源120、线程2专用资源121、以及线程N专用资源129和线程共享资源130。线程的专用资源包括程序计数器PC,通用寄存器堆,中断处理单元、控制逻辑和指令池的工作时钟;线程的共享资源包括加法器、乘法器、累加器、移位寄存器,取指单元和译码单元。
Idle控制模块110用于当执行的多个线程中任一线程的指令是Idle指令时,关闭该线程专用资源的工作时钟,当多个线程的指令都是Idle指令时,关闭线程共享资源的工作时钟。
例如,多线程处理器所执行的线程1的指令是Idle指令,则由Idle控制模块110关闭该线程1专用资源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传送低电平“0”值信号,ICG231在接收到来自Idle子模块211的“0”值信号时,则关闭第一线程专用资源的工作时钟信号。Idle子模块212用于接收第二线程为Idle指令时,通过或门222向或门223和ICG232传送低电平“0”值信号,ICG232则关闭第二线程专用资源的工作时钟信号。或门223当接收到或221和或门222的信号都是低电平“0”值信号时,则向ICG233传送低电平“0”值信号,ICG233则关闭第一线程和第二线程的共享资源工作时钟信号。
在一个例子中,通过第一线程或者第二线程的中断信号为高电平“1”值时,ICG231或ICG233将重新开启线程的专用资源以及线程的共享资源的工作时钟。
图3为本发明另一实施例Idle控制模块结构示意图。如图3所示,本发明实施例的Idle控制模块30包括时钟控制单元31和中断唤醒单元32。
时钟控制单元31用于当多线程处理器执行线程的Idle指令时,关闭该线程的专用资源工作时钟;当多线程处理器执行的所有线程都是Idle指令时,关闭所有线程所使用的共享资源工作时钟。
中断唤醒单元32用于接收线程的中断信号,线程的任何一个中断的产生都会使该线程退出空闲状态,从而重新开启该线程的的专用资源的工作时钟。当任何一个线程的中断产生时,该线程的中断就可以将处理器的线程专用资源以及共享资源的时钟信号唤醒。线程的工作时钟开启后,该线程将继续执行Idle指令后的下一条指令。
图4为本发明实施例降低多线程处理器功耗的方法流程图。如图1所示,本发明实施例降低多线程处理器功耗的方法包括步骤401-405:
在步骤401,依次执行多个线程的指令。
具体地,多线程处理器通过取指单元接收来多个线程的指令,并执行相应的指令操作。
在步骤402,当多线程处理器执行的线程指令是Idle指令时,执行步骤403,否则返回到步骤401。
多线程处理器中的任何一个线程都有可能由于具体操作的任务被挂起而进入空闲状态,产生Idle指令。在空闲状态下该线程不做任何操作,只是等待系统的重新开启信息。
线程的Idle指令编码如表1所示。
表1
当多线程处理器在执行空闲状态下的线程Idle指令时,通过Idle控制模块关闭该空闲状态下的线程专用资源的工作时钟,该线程的专用资源包括线程的程序计数器PC、通用寄存器堆、中断处理单元、控制逻辑和指令池等器件。线程的专用资源在没有时钟信号时停止工作,但是对于定时器、串行口等外部设备仍保持正常的工作状态。
在步骤403,当执行的线程指令是Idle指令,则关闭该线程专用资源的工作时钟。
具体地,当多线程处理器执行的线程指令是Idle指令时,由Idle控制模块的时钟控制单元发出关闭该线程工作时钟的信号,致使该线程专用资源停止工作。
在步骤404,如果多线程处理器执行的多个线程都是Idle指令时,则执行步骤405,否则返回到步骤401。
在步骤405,如果多个线程的指令都是Idle指令,则关闭多个线程的共享资源的工作时钟。
在一个实施例中,多线程处理器中的所有线程的操作任务被挂起而进入空闲状态,都产生Idle指令。当多线程处理器在执行所有线程的IDLE指令时,多线程处理器则通过Idle控制模块向所有线程的专用资源发出关闭工作时钟的信号,同时,还将关闭多线程处理器所有线程共享资源的工作时钟,致使整个多线程处理器都处于空闲状态。
在线程进入Idle状态时,通过线程的中断请求信号重新开启该线程专用资源以及该线程的共享资源的工作时钟。
具体地,多个线程的任何一个中断信号的产生都会使该线程退出Idle状态,从而重新开启该线程的专用资源的工作时钟。当任何一个线程的中断请求信号产生时,该线程的中断就可以将处理器的线程专用资源以及共享资源的时钟唤醒。当线程的专用资源以及共享资源的时钟被唤醒后,该线程将继续执行Idle指令后的下一条指令。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种多线程处理器,其特征在于,所述处理器包括:
用于多个线程使用的专用资源和共享资源;
用于当执行的多个线程中任一线程的指令是空闲指令时,关闭所述线程专用资源的工作时钟,当多个线程的指令都是空闲指令时,关闭所述线程共享资源工作时钟的空闲控制模块。
2.根据权利要求1所述的处理器,其特征在于:所述空闲控制模块包括空闲控制子模块和内部时钟发生器ICG,所述空闲控制子模块通过所述ICG向所述线程专用资源发送关闭工作时钟信号。
3.根据权利要求1所述的处理器,其特征在于:所述空闲控制模块包括空闲控制子模块和ICG,所述空闲控制子模块通过所述ICG向所述线程共享资源发送关闭工作时钟信号。
4.根据权利要求1所述的处理器,其特征在于:所述空闲控制模块包括空闲控制子模块和ICG,当执行的多个线程中任一线程的指令是空闲指令时,所述空闲控制子模块和所述ICG关闭所述线程的专用资源工作时钟信号,当执行的多个线程的指令都是空闲指令时,所述空闲控制子模块和所述ICG关闭所述多个线程的共享资源工作时钟。
5.根据权利要求1所述的电路,其特征在于:所述空闲控制模块还包括:
用于关闭所述线程专用资源和所述多个线程共享资源工作时钟信号的时钟控制单元;
用于当接收到所述多个线程中任一线程的中断信号时,开启所述线程专用资源和所述线程共享资源工作时钟信号的中断唤醒单元。
6.一种多线程处理方法,其特征在于,所述方法包括:
当执行的多个线程中任一线程的指令是空闲指令时,则关闭所述线程专用资源的工作时钟;
当执行的多个线程的指令都是空闲指令时,则关闭所述多个线程共享资源的工作时钟。
7.根据权利要求6所述的方法,其特征在于:所述方法包括:
当接收到所述多个线程中任一线程的中断信号时,开启所述线程专用资源和所述线程共享资源工作时钟信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110238998.5A CN102955716B (zh) | 2011-08-19 | 2011-08-19 | 一种多线程处理器和处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110238998.5A CN102955716B (zh) | 2011-08-19 | 2011-08-19 | 一种多线程处理器和处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102955716A true CN102955716A (zh) | 2013-03-06 |
CN102955716B CN102955716B (zh) | 2016-05-18 |
Family
ID=47764545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110238998.5A Active CN102955716B (zh) | 2011-08-19 | 2011-08-19 | 一种多线程处理器和处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102955716B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1222878C (zh) * | 1999-12-09 | 2005-10-12 | 英特尔公司 | 在一个多线程处理器内停用时钟信号的方法和装置 |
CN1985242A (zh) * | 2003-04-23 | 2007-06-20 | 国际商业机器公司 | 确定同时多线程(smt)处理器中每线程处理器资源利用的核算方法和逻辑 |
CN101344842A (zh) * | 2007-07-10 | 2009-01-14 | 北京简约纳电子有限公司 | 多线程处理器及其多线程处理方法 |
CN101387952A (zh) * | 2008-09-24 | 2009-03-18 | 上海大学 | 单芯片多处理器任务调度管理方法 |
CN101539797A (zh) * | 2008-03-18 | 2009-09-23 | 联芯科技有限公司 | 一种动态时钟与电源的控制方法、系统及装置 |
CN101542412A (zh) * | 2005-04-14 | 2009-09-23 | Mips技术公司 | 用于多线程处理器中自动低功率模式调用的装置和方法 |
US20110093857A1 (en) * | 2009-10-20 | 2011-04-21 | Infineon Technologies Ag | Multi-Threaded Processors and Multi-Processor Systems Comprising Shared Resources |
US20110145545A1 (en) * | 2009-12-10 | 2011-06-16 | International Business Machines Corporation | Computer-implemented method of processing resource management |
-
2011
- 2011-08-19 CN CN201110238998.5A patent/CN102955716B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1222878C (zh) * | 1999-12-09 | 2005-10-12 | 英特尔公司 | 在一个多线程处理器内停用时钟信号的方法和装置 |
CN1985242A (zh) * | 2003-04-23 | 2007-06-20 | 国际商业机器公司 | 确定同时多线程(smt)处理器中每线程处理器资源利用的核算方法和逻辑 |
CN101542412A (zh) * | 2005-04-14 | 2009-09-23 | Mips技术公司 | 用于多线程处理器中自动低功率模式调用的装置和方法 |
CN101344842A (zh) * | 2007-07-10 | 2009-01-14 | 北京简约纳电子有限公司 | 多线程处理器及其多线程处理方法 |
CN101539797A (zh) * | 2008-03-18 | 2009-09-23 | 联芯科技有限公司 | 一种动态时钟与电源的控制方法、系统及装置 |
CN101387952A (zh) * | 2008-09-24 | 2009-03-18 | 上海大学 | 单芯片多处理器任务调度管理方法 |
US20110093857A1 (en) * | 2009-10-20 | 2011-04-21 | Infineon Technologies Ag | Multi-Threaded Processors and Multi-Processor Systems Comprising Shared Resources |
US20110145545A1 (en) * | 2009-12-10 | 2011-06-16 | International Business Machines Corporation | Computer-implemented method of processing resource management |
Also Published As
Publication number | Publication date |
---|---|
CN102955716B (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8392739B2 (en) | Multi-core processor, its frequency conversion device and a method of data communication between the cores | |
US20130015904A1 (en) | Power gating control module, integrated circuit device, signal processing system, electronic device, and method therefor | |
CN103645794B (zh) | 一种通过边沿检测电路实现睡眠模式唤醒的芯片及方法 | |
CN106681472B (zh) | 异构多核处理器功耗控制装置及其功耗控制方法 | |
CN101770279A (zh) | 减少处理器电力损耗的方法以及系统 | |
CN102799260A (zh) | 基于时钟关断的低功耗模式管理soc芯片的电路及方法 | |
CN101853067B (zh) | 减少装置功率消耗的方法及具有嵌入式存储器模块的装置 | |
CN101581963B (zh) | 一种降低cpu功耗的方法和一种cpu | |
CN109613970B (zh) | 一种基于fpga和dsp架构的低功耗处理方法 | |
CN101043212B (zh) | 半导体集成电路器件及其电路插入方法 | |
CN204463019U (zh) | 一种供电控制电路 | |
CN101119107B (zh) | 低功耗无交叠四相时钟电路及实现方法 | |
CN102141833A (zh) | Usb电源管理系统及其方法 | |
CN102929381B (zh) | 电子系统及其电源管理方法 | |
CN100373295C (zh) | 用于控制数据处理单元的关闭的方法 | |
CN106292987B (zh) | 一种处理器掉电时序控制系统及方法 | |
CN106547220B (zh) | 一种可降低待机状态下电源功耗的便携式电子装置 | |
CN103376877A (zh) | 一种多核处理器时钟控制装置及控制方法 | |
CN102955716B (zh) | 一种多线程处理器和处理方法 | |
CN206133459U (zh) | 降低mcu芯片待机功耗的系统 | |
CN201522684U (zh) | 嵌入式系统的功耗管理电路 | |
CN209625154U (zh) | 一种soc电源管理电路 | |
CN101071633A (zh) | 一种降低存储器功耗的方法及系统 | |
CN203720301U (zh) | 配电线路故障定位监测系统 | |
CN103650346B (zh) | 管道功率门控技术 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |