当前位置: 首页 > 专利查询>王生洪专利>正文

一种可控动态多线程方法的处理器技术

技术编号:14075816 阅读:59 留言:0更新日期:2016-11-29 16:25
本实用新型专利技术公开了一种可控动态多线程方法的处理器,所述方法是对一个采用流水线结构的处理器,在其指令结构中新增mark,该mark包含二部分信息:mark对应指令所属的线程以及mark对应指令的优先级信息;处理器根据mark控制其对应指令,并根据mark中的线程及优先级信息发射并执行该指令。所述处理器至少包括一个含有mark的指令系统、一个能够识别和跟踪mark的程序执行控制单元(Branch)、一个能够识别mark并进行解码的指令解码电路、一个能够识别和解码mark的算术运算单元及相应的内存单元。本实用新型专利技术能够动态的调度一个处理器的所有运算硬件资源从而提高处理器的运算能力,且不需要增加很多复杂的硬件。

【技术实现步骤摘要】

本技术涉及处理器领域,尤其涉及一种可控动态多线程方法(Dynamic Multi-threading) 的处理器。
技术介绍
为了提高处理器的运算能力,很多并行处理技术被开发出来,如超标量(Super-scalar),流水线(Pipeline).超长宽指令(VLIW),单指令多执行(SIMD),等等。可是,由于一个软件程序的指令处理是顺序执行的,其执行过程中存在的指令及数据的依赖性(dependencies)造成了处理器经常的处于等待状态因而限制了这些并行处理技术效率的发挥。为了克服指令执行中的依赖性,一些提高指令发射效率的技术,如乱序码(Out-of-Order),控制程序预测(Branch Prediction)等被开发出来,但是这些技术都有其局限性。它们或者是硬件非常复杂,或者是效率提高有限而不适合嵌入式系统的应用。一个嵌入式系统,尤其是移动设备,如移动通信,车载设备,穿戴式设备等,对处理器性能的要求不仅运算能力要高,更要求功耗要低及实时性要强。多线程并行处理器技术(Multi-Threading),因为它可以在同一个处理器中并行处理2个或多个完全独立的运算程序,因而可以比较好的解决指令执行过程中的控制及数据依赖性所带来的运行效率限制,其中同步多线程技术(Simultaneous Multi-threading)及令牌驱动多线程技术(Token Triggered multi-threading,SMT)在一些处理器产品中得到了很好的应用,比如Intel的Hyper-Threading,IBM的POWER5,Sun Microsystems的UltraSPARC T2及MIPS的MT都是采用了SMT技术。Sandbridge的SandblasterDSP核采用的是令牌驱动多线程技术。SMT技术虽然能解决程序执行过程中的依赖性问题,SMT技术除了需要给每个线程都有自己的一套执行程序所需的寄存器外还要在每级的流水线加上线程跟踪逻辑,增加共享资源的尺寸,如指令Cache,TLBs等。其线程跟踪逻辑不仅要跟踪线程的行程还要检查和判断该线程是否已执行完成。由于会有大量的线程处于执行或半执行状态,因而CPU的Caches及TLB的尺寸必须足够大以避免不必要的线程之间的Thrashing,其硬件的复杂程度随着线程数的增加而大大的增加因而限制了其很难应用于嵌入式处理器及低功耗处理器的设计。下表是一个典型的SMT多线程程序执行过程:令牌驱动多线程是一种时分多线程,由于在每个时钟周期内它只能执行同一个线程程序的指令,因而相比SMT它的硬件复杂要简化很多,但是效率也跟着下降。其特点是:1. 每个时钟周期只有一个线程能发出指令;2. 所有线程是顺序启动如图1所示,因而简化了线程选择电路;3. 每个线程都有相同的执行指令的时钟周期,不需要依赖检查和绕行硬件;4. 运算结果能保证在下次的线程执行之前就已经得到。下表给出了令牌驱动多线程的程序执行过程:1时钟周期i:线程T0发指令j和j+1和j+22时钟周期i+1:线程T0发指令k和k+13时钟周期i+2:线程T2发指令l4时钟周期i+3:线程T3发指令m和m+1和m+25时钟周期i+4:线程T0指令missing,处理器等待6时钟周期i+5:线程T1发指令K+27时钟周期i+6:线程T2发指令I+1和I+28时钟周期i+7:线程T3指令missing,处理器等待但是由于令牌驱动多线程处理器在规定的时钟周期只能执行特定的线程操作,因此如果在这个时钟周期,其指定的线程由于指令或数据的缺失(missing)或因为依赖性而不能发射指令时,该时钟周期就被浪费了。为了克服令牌驱动多线程这个这个缺陷,一个机会多线程技术被开发出来。机会多线程技术允许一个多线程处理器的一个线程在某一个的时钟周期内如果没有有效指令时不必HOLD这个时钟周期,而是将该时钟周期让给别的有有效指令的线程。即将原来浪费的时钟周期作为一个“机会”让给别的线程使用。采用该方法对一个具有多线程处理器来说,其线程不再受每个线程周期只能发一次指令的限制,而是可以利用任何“机会”在每个时钟周期都可以发射指令只要该时钟周期原始设定的线程在该时钟周期内没有有效的指令。1. 机会多线程技术和令牌驱动多线程技术一样,它是一种分时多线程技术,每个时钟周期只能执行一个程序。其可执行的线程数受限于硬件的线程数。2. 机会多线程需要一个指令预测电路,对于一个采用VLIW结构的处理器,它需要对每一个子指令的依赖性进行预测。因此指令预测电路相当复杂。3. 机会多线程技术需要一组2维的线程身份(ID)寄存器以用于跟踪线程指令在每级流水线的执行情况以保证结果数据不会被搞混乱。4. 实际应用中,采用机会多线程的处理器的每个运算单元必需为每个线程增加一组2维的完全独立于其他线程的数据寄存器以防止处于半执行状态的线程之间的数据Thrashing。5. 为了能在每一个处理器的时钟周期内发射指令,线程所属的指令内存也必须运行在和处理器时钟周期相同的时钟频率以保证线程能及时的读取指令。由此,多线程的一个能降低存储器功耗的特点将不再存在。以上分析可以看出采用机会多程序技术的处理器的硬件复杂度要比令牌驱动多线程技术增加很多,而且为了使每个线程能在每个时钟周期都能读取指令,其指令内存的时钟频率必须是和处理器的主振频率一样,这样处理器的功耗会明显增加。因而机会多线程技术并不适合应用于低功耗嵌入式处理器设计。图2是机会多线程的程序执行示意图。
技术实现思路
本技术所要解决的技术问题是针对
技术介绍
中所涉及到的缺陷,提供一种可控动态多线程方法的处理器。本技术为解决上述技术问题采用以下技术方案:一种可控动态多线程方法的处理器,采用流水线结构且具有I-cache,至少包含一个带mark的指令系统、一个能够识别和跟踪mark的程序执行控制单元、一个能够识别mark并进行解码的指令解码电路、一个能够识别和解码mark的算术运算单元及相应的内存单元;所述mark包含二部分信息:mark对应指令所属的线程以及mark对应指令的优先级信息,所述优先级信息用于指明指令的执行顺序及与其前后指令的相关性(dependencies);处理器根据mark控制其对应指令,按该指令的优先级信息和所属的线程发射并执行该指令。所述mark由软件写入或者编译器在编译过程中自动写入。作为本技术一种可控动态多线程方法的处理器进一步的优化方案,所述处理器为多指令发射处理器,其每条指令都独立带有自己的mark。作为本技术一种可控动态多线程方法的处理器进一步的优化方案,所述处理器为多指令发射处理器,多条指令共用一组mark。作为本技术一种可控动态多线程方法的处理器进一步的优化方案,所述处理器为单指令发射处理器,其每条指令对应一个mark。所述处理器根据mark控制其对应指令、按该指令的优先级信息和所属的线程发射并执行该指令的具体步骤如下:步骤1),根据等待被执行指令对应mark中的优先级信息读取指令;步骤2),指令解码及分配:处理器的解码电路将步骤1)中所读取的指令解码为mark和各个子指令,处理器的分配逻辑根据各个子指令的功能将其分配给不同的运算单元去执行;步骤3),指令执行:对本文档来自技高网
...
一种可控动态多线程方法的处理器

【技术保护点】
一种可控动态多线程方法的处理器,采用流水线结构且具有I‑cache,其特征在于:至少包含一个带mark的指令系统、一个能够识别和跟踪mark的程序执行控制单元、一个能够识别mark并进行解码的指令解码电路、一个能够识别和解码mark的算术运算单元及相应的内存单元;所述mark包含二部分信息:mark对应指令所属的线程以及mark对应指令的优先级信息,所述优先级信息用于指明指令的执行顺序及与其前后指令的相关性(dependencies);处理器根据mark控制其对应指令,按该指令的优先级信息和所属的线程发射并执行该指令。

【技术特征摘要】
1. 一种可控动态多线程方法的处理器,采用流水线结构且具有I-cache,其特征在于:至少包含一个带mark的指令系统、一个能够识别和跟踪mark的程序执行控制单元、一个能够识别mark并进行解码的指令解码电路、一个能够识别和解码mark的算术运算单元及相应的内存单元;所述mark包含二部分信息:mark对应指令所属的线程以及mark对应指令的优先级信息,所述优先级信息用于指明指令的执行顺序及与其前后指令的相关性(dependencies);处理器...

【专利技术属性】
技术研发人员:王生洪
申请(专利权)人:王生洪
类型:新型
国别省市:美国;US

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

1