一种多线程处理方法和装置制造方法及图纸

技术编号:8386911 阅读:170 留言:0更新日期:2013-03-07 07:25
本发明专利技术涉及一种多线程处理方法和装置。所述方法包括:均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成,其余时间共同进入空闲状态;当各个线程任务完成后都进入空闲状态时,关闭各个线程共享资源的工作时钟。本发明专利技术通过均衡分配任务给多个线程中的各个线程,致使多个线程能够共同完成各自分担的任务后共同处于空闲状态,以保证多个线程同时空闲的时间比例增大,从而最大限度的降低多线程处理器的功耗。

【技术实现步骤摘要】

本专利技术涉及多线程处理器,尤其涉及一种多线程处理方法和装置
技术介绍
处理器,特别是嵌入式处理器,越来越广泛地应用在移动通信、数字消费电子和智能控制设备等领域。在移动设备中,功耗成为移动设备的重要指标。在一个移动设备中,每一模块都有可能耗电。其中处理器的功耗是重要组成部分。在集成电路中,典型的降低功耗的方法有降频,关断时钟(clock gating),降低供电电压,关断供电(power gating)等。在微处理器中,一般都设计若干状态,典型的如空闲、de印-sle印、低耗电、高性能等状态,在不同的状态下采用不同的功耗控制技术。 在单核单线程处理器中,由于任何时刻只有一个硬件线程在工作,因而无论从集成电路设计还是从软件来讲,功耗控制显得比较容易。但是对多核多线程微处理器,由于有多个硬件线程同时工作,共享处理器一个或若干资源,每一线程单独工作,无法预知另外的线程需要哪一种共享资源,处理器设计和软件控制都要复杂很多。在多线程处理器结构中,每一个线程都可以进入一个空闲的状态,在空闲状态下,可以关闭该线程的专用资源的工作时钟,线程的专用资源包括程序计数器PC,通用寄存器堆,中断处理单元、控制逻辑和指令池,处理器可以或多或少地降低功耗。当多个线程同时进入空闲状态时,除了关闭线程的专用资源工作时钟外,还可以关闭线程间共享资源的工作时钟,线程间共享资源包括加法器、乘法器、累加器、移位寄存器,取指单元和译码单元,致使整个多线程处理器可以比较显著地降低功耗。每个线程在进入空闲状态后,只能由外部中断唤醒退出空闲状态,继续执行指令。在实际应用中,单线程处理器在进入空闲状态时,则处理器的所有资源都空闲下来,当关闭处理器的资源工作时钟时,可以最大限度降低功耗。而多线程处理器则不能在单个线程进入空闲状态时就关闭处理器的整个资源工作时钟,首先各个线程都有独立的任务,调度过程也不一致;其次,各线程除了有专用资源外,还有共享资源。所以,只有当多线程处理器都进入空闲状态时才能关闭共享资源的工作时钟。图2为现有技术的双线程任务运行示意图,如图2所示,线程I和线程2交叉处理各自的任务,相应地,线程I和线程2的交叉存在着空闲状态,线程I和线程2间的共享资源工作时钟总是不能被关闭,导致多线程处理器的功耗得不到最大限度的降低。
技术实现思路
本专利技术的目的是均衡分配多线程的执行任务,致使多个线程能够共同完成各自分担的任务后共同处于空闲状态,从而解决各个线程的空闲状态交叉存在的问题,最大限度的降低多线程处理器的功耗。为实现上述目的,本专利技术提供了一种多线程处理方法,其特征在于包括均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成,其余时间共同进入空闲状态;当各个线程都进入空闲状态时,关闭各个线程共享资源的工作时钟。本专利技术另一方面提供了一种多线程处理装置,其特征在于包括任务分配模块,用于均衡分配任务给多个线程中的各个线程,所述分配给各个线程的任务在预设的时间内完成;时钟关闭模块,用于当各个线程任务完成后都进入空闲状态时,关闭各个线程间共享资源的工作时钟。本专利技术通过均衡分配任务给多个线程中的各个线程,致使多个线程能够共同完成各自分担的任务后共同处于空闲状态,以保证多个线程同时空闲的时间比例增大,从而最大限度的降低多线程处理器的功耗。附图说明图I为双线程任务调度的应用示意图; 图2为双线程任务运行示意图;图3为本专利技术实施例多线程处理方法流程图;图4为本专利技术实施例双线程任务运行示意图;图5为双线程资源访问示意图;图6为本专利技术实施例多线程处理装置结构图。具体实施例方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。为简化说明,以下采用双线程处理模式来描述本专利技术的各个具体实施方案。图I为双线程任务调度的应用示意图。如图I所示,线程I和线程2都有一个任务调度表,用于判断任务的状态,从而决定是否进入空闲状态,各个任务都在就绪和挂起之间进行切换。例如,线程I的任务处于就绪状态时,则执行就绪任务。当就绪任务执行完成后进入挂起状态,一旦所有执行具体操作的任务挂起,则处理器进入空闲状态,空闲状态下的线程在接收到中断信号时才会被重新开启,线程开启后判断线程任务的状态,重新进行任务调度。图3为本专利技术实施例双线程的处理方法流程图。如图3所示的方法包括步骤301-302 在步骤301,多线程处理器均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成,其余时间共同进入空闲状态。在一个实施例中,多线程处理器均衡分配任务给线程I和线程2,保证各个线程所分担的任务都能在预设时间内完成,例如,预设时间为1ms。线程I和线程2在处理任务时存在一个时间差,例如,线程2只负责处理当前时钟周期的任务,而线程I则处理前一个时钟周期的任务。当线程2处理完当前的任务,则把结果发送给线程1,由线程I继续处理,而线程2则会空闲下来,等待下一个时钟周期的到来,执行下一个任务。当线程2进入空闲状态后,需要执行空闲指令,多线程处理器将关闭该线程的专用资源的工作时钟信号。此时,线程I在处理完前一个时钟周期的任务后,暂缓处理线程2返回的结果,同样等待下一个时钟周期的到来时才根据线程2返回的结果继续执行任务。通过以上方式可以保证在同一个时钟周期,线程I和线程2可以同时处理任务,当任务完成后可以同时进入空闲状态,且又不相互牵制。在另一个实施例中,多线程处理器均衡分配任务给线程I和线程2,线程I和线程2所要执行的任务根据处理的时间和关联性,分成两部分第一部分的任务有很多的运算,处理量较大,需要大概Ims的时间处理完成,则由线程2来处理;第二部分的任务也需要大概Ims的时间做完,此任务就可以放到线程I上去做,同样也可以在下一个时钟周期处理。当线程2处理的时间比较长,超过Ims时,要重新考虑任务的分配,让线程I分担处理线程2的任务。保证线程I和线程2的任务处理完毕后,共同进入空闲状态。在又一个实施例中,当线程I和线程2所处理的任务存在关联性时,例如,线程2的任务执行需要线程I的处理结果。此时,当线程I在执行任务时,线程2先执行其它任务,等待线程I的执行结果;当线程I和线程2所处理的任务不存在关联性时,则线程I和线程2并行处理各自的任务,当各自任务完成后共同进入空闲状态。 以上各实施例的双线程处理方法获得如图4所示技术效果,即线程I和线程2在同一时钟周期内共同处理任务,又在同一时钟内共同处于空闲状态。在步骤302,当各个线程都进入空闲状态时,关闭各个线程间的共享资源的工作时钟。如图5所示线程I和线程2的任务除了需要访问各自的专用资源外,还需要访问线程间的共享资源。当线程I和线程2的任务都处理完成后,线程I和线程2都进入空闲状态,多线程处理器执行空闲指令,关闭线程I和线程2的专用资源的工作时钟,同时多线程处理器还将关闭线程I和线程2的共享资源。图6为本专利技术实施例多线程处理装置的结构图。如图6所示的结构图包括任务分配模块401和时钟关闭模块404。任务分配模块401用于均衡分配任务给多个线程中的各个线程,分配给各个线程的任务在预设的时间内完成。时钟关闭模块404用于当各个线程任务完成后都进入空闲状态时,关闭各个线程间共享资源的工作时钟。具体地,多线程处理器通过任务分配本文档来自技高网
...

【技术保护点】
一种多线程处理方法,所述方法包括:均衡分配任务给多个线程中的各个线程,所述分配给各个线程的任务在预设的时间内完成;当所述各个线程任务完成后都进入空闲状态,关闭所述各个线程间共享资源的工作时钟。

【技术特征摘要】

【专利技术属性】
技术研发人员:申明庹凌云梁敏林森王文东
申请(专利权)人:苏州简约纳电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1