CN102955555A - 一种多线程处理方法和装置 - Google Patents
一种多线程处理方法和装置 Download PDFInfo
- Publication number
- CN102955555A CN102955555A CN2011102390003A CN201110239000A CN102955555A CN 102955555 A CN102955555 A CN 102955555A CN 2011102390003 A CN2011102390003 A CN 2011102390003A CN 201110239000 A CN201110239000 A CN 201110239000A CN 102955555 A CN102955555 A CN 102955555A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- finished
- distributing
- idle condition
- 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.)
- Pending
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
Landscapes
- Power Sources (AREA)
Abstract
本发明涉及一种多线程处理方法和装置。所述方法包括:均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成,其余时间共同进入空闲状态;当各个线程任务完成后都进入空闲状态时,关闭各个线程共享资源的工作时钟。本发明通过均衡分配任务给多个线程中的各个线程,致使多个线程能够共同完成各自分担的任务后共同处于空闲状态,以保证多个线程同时空闲的时间比例增大,从而最大限度的降低多线程处理器的功耗。
Description
技术领域
本发明涉及多线程处理器,尤其涉及一种多线程处理方法和装置。
背景技术
处理器,特别是嵌入式处理器,越来越广泛地应用在移动通信、数字消费电子和智能控制设备等领域。在移动设备中,功耗成为移动设备的重要指标。在一个移动设备中,每一模块都有可能耗电。其中处理器的功耗是重要组成部分。
在集成电路中,典型的降低功耗的方法有:降频,关断时钟(clockgating),降低供电电压,关断供电(power gating)等。在微处理器中,一般都设计若干状态,典型的如:空闲、deep-sleep、低耗电、高性能等状态,在不同的状态下采用不同的功耗控制技术。
在单核单线程处理器中,由于任何时刻只有一个硬件线程在工作,因而无论从集成电路设计还是从软件来讲,功耗控制显得比较容易。但是对多核多线程微处理器,由于有多个硬件线程同时工作,共享处理器一个或若干资源,每一线程单独工作,无法预知另外的线程需要哪一种共享资源,处理器设计和软件控制都要复杂很多。
在多线程处理器结构中,每一个线程都可以进入一个空闲的状态,在空闲状态下,可以关闭该线程的专用资源的工作时钟,线程的专用资源包括程序计数器PC,通用寄存器堆,中断处理单元、控制逻辑和指令池,处理器可以或多或少地降低功耗。当多个线程同时进入空闲状态时,除了关闭线程的专用资源工作时钟外,还可以关闭线程间共享资源的工作时钟,线程间共享资源包括加法器、乘法器、累加器、移位寄存器,取指单元和译码单元,致使整个多线程处理器可以比较显著地降低功耗。每个线程在进入空闲状态后,只能由外部中断唤醒退出空闲状态,继续执行指令。
在实际应用中,单线程处理器在进入空闲状态时,则处理器的所有资源都空闲下来,当关闭处理器的资源工作时钟时,可以最大限度降低功耗。而多线程处理器则不能在单个线程进入空闲状态时就关闭处理器的整个资源工作时钟,首先各个线程都有独立的任务,调度过程也不一致;其次,各线程除了有专用资源外,还有共享资源。所以,只有当多线程处理器都进入空闲状态时才能关闭共享资源的工作时钟。
图2为现有技术的双线程任务运行示意图,如图2所示,线程1和线程2交叉处理各自的任务,相应地,线程1和线程2的交叉存在着空闲状态,线程1和线程2间的共享资源工作时钟总是不能被关闭,导致多线程处理器的功耗得不到最大限度的降低。
发明内容
本发明的目的是均衡分配多线程的执行任务,致使多个线程能够共同完成各自分担的任务后共同处于空闲状态,从而解决各个线程的空闲状态交叉存在的问题,最大限度的降低多线程处理器的功耗。
为实现上述目的,本发明提供了一种多线程处理方法,其特征在于包括均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成,其余时间共同进入空闲状态;当各个线程都进入空闲状态时,关闭各个线程共享资源的工作时钟。
本发明另一方面提供了一种多线程处理装置,其特征在于包括任务分配模块,用于均衡分配任务给多个线程中的各个线程,所述分配给各个线程的任务在预设的时间内完成;时钟关闭模块,用于当各个线程任务完成后都进入空闲状态时,关闭各个线程间共享资源的工作时钟。
本发明通过均衡分配任务给多个线程中的各个线程,致使多个线程能够共同完成各自分担的任务后共同处于空闲状态,以保证多个线程同时空闲的时间比例增大,从而最大限度的降低多线程处理器的功耗。
附图说明
图1为双线程任务调度的应用示意图;
图2为双线程任务运行示意图;
图3为本发明实施例多线程处理方法流程图;
图4为本发明实施例双线程任务运行示意图;
图5为双线程资源访问示意图;
图6为本发明实施例多线程处理装置结构图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
为简化说明,以下采用双线程处理模式来描述本发明的各个具体实施方案。
图1为双线程任务调度的应用示意图。如图1所示,线程1和线程2都有一个任务调度表,用于判断任务的状态,从而决定是否进入空闲状态,各个任务都在就绪和挂起之间进行切换。例如,线程1的任务处于就绪状态时,则执行就绪任务。当就绪任务执行完成后进入挂起状态,一旦所有执行具体操作的任务挂起,则处理器进入空闲状态,空闲状态下的线程在接收到中断信号时才会被重新开启,线程开启后判断线程任务的状态,重新进行任务调度。
图3为本发明实施例双线程的处理方法流程图。如图3所示的方法包括步骤301-302:
在步骤301,多线程处理器均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成,其余时间共同进入空闲状态。
在一个实施例中,多线程处理器均衡分配任务给线程1和线程2,保证各个线程所分担的任务都能在预设时间内完成,例如,预设时间为1ms。线程1和线程2在处理任务时存在一个时间差,例如,线程2只负责处理当前时钟周期的任务,而线程1则处理前一个时钟周期的任务。当线程2处理完当前的任务,则把结果发送给线程1,由线程1继续处理,而线程2则会空闲下来,等待下一个时钟周期的到来,执行下一个任务。当线程2进入空闲状态后,需要执行空闲指令,多线程处理器将关闭该线程的专用资源的工作时钟信号。此时,线程1在处理完前一个时钟周期的任务后,暂缓处理线程2返回的结果,同样等待下一个时钟周期的到来时才根据线程2返回的结果继续执行任务。通过以上方式可以保证在同一个时钟周期,线程1和线程2可以同时处理任务,当任务完成后可以同时进入空闲状态,且又不相互牵制。
在另一个实施例中,多线程处理器均衡分配任务给线程1和线程2,线程1和线程2所要执行的任务根据处理的时间和关联性,分成两部分:第一部分的任务有很多的运算,处理量较大,需要大概1ms的时间处理完成,则由线程2来处理;第二部分的任务也需要大概1ms的时间做完,此任务就可以放到线程1上去做,同样也可以在下一个时钟周期处理。当线程2处理的时间比较长,超过1ms时,要重新考虑任务的分配,让线程1分担处理线程2的任务。保证线程1和线程2的任务处理完毕后,共同进入空闲状态。
在又一个实施例中,当线程1和线程2所处理的任务存在关联性时,例如,线程2的任务执行需要线程1的处理结果。此时,当线程1在执行任务时,线程2先执行其它任务,等待线程1的执行结果;当线程1和线程2所处理的任务不存在关联性时,则线程1和线程2并行处理各自的任务,当各自任务完成后共同进入空闲状态。
以上各实施例的双线程处理方法获得如图4所示技术效果,即线程1和线程2在同一时钟周期内共同处理任务,又在同一时钟内共同处于空闲状态。
在步骤302,当各个线程都进入空闲状态时,关闭各个线程间的共享资源的工作时钟。
如图5所示线程1和线程2的任务除了需要访问各自的专用资源外,还需要访问线程间的共享资源。当线程1和线程2的任务都处理完成后,线程1和线程2都进入空闲状态,多线程处理器执行空闲指令,关闭线程1和线程2的专用资源的工作时钟,同时多线程处理器还将关闭线程1和线程2的共享资源。
图6为本发明实施例多线程处理装置的结构图。如图6所示的结构图包括任务分配模块401和时钟关闭模块404。
任务分配模块401用于均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成。时钟关闭模块404用于当各个线程任务完成后都进入空闲状态时,关闭各个线程间共享资源的工作时钟。
具体地,多线程处理器通过任务分配模块401均衡分配任务给各个线程,保证各个线程所分担的任务都能在预设时间内完成,例如,预设时间为1ms。当各个线程在预设时间内完成任务后,各个线程都进入空闲状态。时钟关闭模块404在各个线程任务完成后都进入空闲状态时,关闭各个线程间共享资源的工作时钟。
如图6所示的结构图还包括线程交互模块402和任务调度模块403。
线程交互模块402用于交互所述各个线程间的信息。任务调度模块403用于判断任务的状态,执行相应的操作。
具体地,多线程处理器通过任务调度模块403对各个线程所要执行的任务进行调度。当线程1的任务完成时,可以通过线程交互模块402将结果通知线程2,当线程2的任务在不需要立刻执行时,也可以进入空闲状态。此时线程1和线程2共同进入空闲状态,多线程处理器通过时钟关闭模块404关闭线程1和线程2的共享资源的工作时钟。
上文结合双线程模式对本发明进行了描述。这要指出,这仅是举例,本发明可以适用于两个以上线程的线程模式。
本发明实施例涉及对一种特定的多线程处理器的功耗控制方法。如非特别声明,本发明中涉及的线程都是指多线程微处理器中的硬件线程,而非操作系统级别的软件线程。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种多线程处理方法,所述方法包括:
均衡分配任务给多个线程中的各个线程,所述分配给各个线程的任务在预设的时间内完成;
当所述各个线程任务完成后都进入空闲状态,关闭所述各个线程间共享资源的工作时钟。
2.根据权利要求1所述的方法,其特征在于:所述分配给各个线程的任务在预设的时间内完成包括分配给双线程中的第一线程的任务完成时进入空闲状态,并通知第二线程,所述第二线程在不需要执行当前任务时,也进入空闲状态。
3.根据权利要求1所述的方法,其特征在于:所述分配给各个线程的任务在预设的时间内完成包括分配给双线程中的任务不存在关联性,则各个线程并行处理任务,当所述各个线程执行的任务完成后共同进入空闲状态。
4.根据权利要求1所述的方法,其特征在于:所述分配给各个线程的任务在预设的时间内完成包括分配给双线程中的任务存在关联性,则所述双线程中的第一线程在执行任务时,第二线程执行其它任务。
5.一种多线程处理装置,其特征在于:所述装置包括:
任务分配模块,用于均衡分配任务给多个线程中的各个线程,所述分配给各个线程的任务在预设的时间内完成;
时钟关闭模块,用于当所述各个线程任务完成后都进入空闲状态时,关闭所述各个线程间共享资源的工作时钟。
6.根据权利要求5所述的装置,其特征在于:所述装置还包括:
线程交互模块,用于交互所述各个线程间的信息;
任务调度模块,用于判断任务的状态,执行相应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102390003A CN102955555A (zh) | 2011-08-19 | 2011-08-19 | 一种多线程处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102390003A CN102955555A (zh) | 2011-08-19 | 2011-08-19 | 一种多线程处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102955555A true CN102955555A (zh) | 2013-03-06 |
Family
ID=47764439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102390003A Pending CN102955555A (zh) | 2011-08-19 | 2011-08-19 | 一种多线程处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102955555A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657111A (zh) * | 2013-11-20 | 2015-05-27 | 方正信息产业控股有限公司 | 一种并行计算方法和装置 |
CN106406494A (zh) * | 2016-08-29 | 2017-02-15 | 深圳市金立通信设备有限公司 | 一种处理器调度的方法及终端 |
CN107533479A (zh) * | 2015-04-01 | 2018-01-02 | 微软技术许可有限责任公司 | 功率知晓调度和功率管理器 |
CN112783626A (zh) * | 2021-01-21 | 2021-05-11 | 珠海亿智电子科技有限公司 | 中断处理方法、装置、电子设备及存储介质 |
CN114880102A (zh) * | 2022-07-04 | 2022-08-09 | 北京智芯半导体科技有限公司 | 安全芯片及其多任务调度方法和装置、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083478A1 (en) * | 2002-10-23 | 2004-04-29 | Yen-Kuang Chen | Apparatus and method for reducing power consumption on simultaneous multi-threading systems |
CN101403982A (zh) * | 2008-11-03 | 2009-04-08 | 华为技术有限公司 | 一种多核处理器的任务分配方法、系统及设备 |
CN101414271A (zh) * | 2008-12-04 | 2009-04-22 | 浙江大学 | 多核平台下基于硬件计时器与任务队列的调度方法 |
CN101533362A (zh) * | 2009-04-15 | 2009-09-16 | 南京联创科技股份有限公司 | 进程间cpu资源平衡调度方法 |
CN101542412A (zh) * | 2005-04-14 | 2009-09-23 | Mips技术公司 | 用于多线程处理器中自动低功率模式调用的装置和方法 |
-
2011
- 2011-08-19 CN CN2011102390003A patent/CN102955555A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083478A1 (en) * | 2002-10-23 | 2004-04-29 | Yen-Kuang Chen | Apparatus and method for reducing power consumption on simultaneous multi-threading systems |
CN101542412A (zh) * | 2005-04-14 | 2009-09-23 | Mips技术公司 | 用于多线程处理器中自动低功率模式调用的装置和方法 |
CN101403982A (zh) * | 2008-11-03 | 2009-04-08 | 华为技术有限公司 | 一种多核处理器的任务分配方法、系统及设备 |
CN101414271A (zh) * | 2008-12-04 | 2009-04-22 | 浙江大学 | 多核平台下基于硬件计时器与任务队列的调度方法 |
CN101533362A (zh) * | 2009-04-15 | 2009-09-16 | 南京联创科技股份有限公司 | 进程间cpu资源平衡调度方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657111A (zh) * | 2013-11-20 | 2015-05-27 | 方正信息产业控股有限公司 | 一种并行计算方法和装置 |
CN107533479A (zh) * | 2015-04-01 | 2018-01-02 | 微软技术许可有限责任公司 | 功率知晓调度和功率管理器 |
CN106406494A (zh) * | 2016-08-29 | 2017-02-15 | 深圳市金立通信设备有限公司 | 一种处理器调度的方法及终端 |
CN112783626A (zh) * | 2021-01-21 | 2021-05-11 | 珠海亿智电子科技有限公司 | 中断处理方法、装置、电子设备及存储介质 |
CN112783626B (zh) * | 2021-01-21 | 2023-12-01 | 珠海亿智电子科技有限公司 | 中断处理方法、装置、电子设备及存储介质 |
CN114880102A (zh) * | 2022-07-04 | 2022-08-09 | 北京智芯半导体科技有限公司 | 安全芯片及其多任务调度方法和装置、存储介质 |
CN114880102B (zh) * | 2022-07-04 | 2022-10-25 | 北京智芯半导体科技有限公司 | 安全芯片及其多任务调度方法和装置、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101100470B1 (ko) | 멀티쓰레드 프로세서에서의 자동 저전력 모드 호출을 위한장치 및 방법 | |
CN1846194B (zh) | 执行并行程序线程的方法和装置 | |
CN102455933B (zh) | 一种通过线程管理提高多任务处理效率的方法 | |
US20060236135A1 (en) | Apparatus and method for software specified power management performance using low power virtual threads | |
CN104199730B (zh) | 一种基于同步i/o复用机制的单线程多任务处理方法 | |
Fedorova et al. | Maximizing power efficiency with asymmetric multicore systems | |
US9104500B1 (en) | Lock-free job scheduler for multi-processor systems | |
CN103941649A (zh) | 多轴运动卡控制系统的控制方法 | |
CN102955555A (zh) | 一种多线程处理方法和装置 | |
WO2006055864A3 (en) | Method and apparatus for implementing task management of computer operations | |
KR20120070303A (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
CN109343960A (zh) | 一种Linux系统的任务调度方法、系统及相关装置 | |
CN109491780A (zh) | 多任务调度方法及装置 | |
Yamasaki et al. | Prioritized SMT architecture with IPC control method for real-time processing | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN103314357B (zh) | 用于在微处理器中使用多个阶段执行来对指令发布进行调度的方法和设备 | |
Ismael et al. | Scheduling Algorithms Implementation for Real Time Operating Systems: A Review | |
Reddy et al. | Optimizing task scheduling in multi-thread real-time systems using augmented particle swarm optimization | |
Mische et al. | Using SMT to hide context switch times of large real-time tasksets | |
Khemaissia et al. | New Reconfigurable Middleware for Feasible Adaptive RT-Linux. | |
Cucu-Grosjean et al. | Predictability of fixed-job priority schedulers on heterogeneous multiprocessor real-time systems | |
Shieh et al. | Energy-efficient tasks scheduling algorithm for dual-core real-time systems | |
Rafla et al. | Hardware implementation of context switching for hard real-time operating systems | |
Gaitan | Enhanced interrupt response time in the nMPRA based on embedded real time microcontrollers | |
CN110109743A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130306 |