机会多线程方法及处理器的制作方法

文档序号:6438401阅读:300来源:国知局
专利名称:机会多线程方法及处理器的制作方法
技术领域
本发明涉及一种多线程处理器技术(Multi-threading).特别是涉及一种机会多线程方法及处理器。
背景技术
多线程并行处理技术(Multi-Threading)被广泛的应用在高性能处理器的设计中以降低高速处理器指令执行中存在的等待周期的影响以提高处理器的性能和运行效率。 其中用的最普遍的是同步多线程技术(Simultaneous Multi-threading)或叫SMT。如 Intel 的 Hyper-Threading, IBM 的 P0WER5, Sun Microsystems 的 UltraSPARC T2 R MIPS的MT都是采用了 SMT技术。SMT技术除了需要给每个线程都有自己的一套执行程序所需的寄存器外还要在每级的流水线加上线程跟踪逻辑,增加共享资源的尺寸,如指令Cache,TLBs等。其线程跟踪逻辑不仅要跟踪线程的行程还要检查和判断该线程是否已执行完成。由于会有大量的线程处于执行或半执行状态,因而CPU的Caches及TLB的尺寸必须足够大以避免不必要的线程之间的^Thrashing。虽然SMT技术能提高处理器的运算能力但由于硬件的复杂程度大大提高因而很难应用于嵌入式处理器及低功耗处理器的设计。为了克服SMT多线程控制电路的复杂性和降低功耗。另一类简化的多线程技术, 分时多线程技术,也得到一定应用。分时多线程技术是指在一定的指令周期内只有一个线程在运行。它又可分成分块多线程(BLOCK MULTI-THREADING)和交错多线程(INTERLEAVED MULTI-THREADING)。分块多线程技术因为其对处理器的运行效率提高非常有限而通常用于像微控制器(MICR0-C0NTR0LER)等低性能处理器。交错多线程技术因为其控制电路简单但其运算能力和效率比单线程处理器有提高明显而在一要求高性能低功耗的处理器中得到一定的推广应用。其中典型的代表就是令牌触发多线程技术(Token Triggered threading)0这种多线程技术有如下几个特点
(1)它是一种分时执行的过程。每一个线程的执行是按自己所授予的时钟周期来执行。 而每个时钟周期只有一个线程发出指令。(2) 一个线程通过后会告诉下个周期应该是哪个线程该启动。这样大大的简化了线程选择硬件。(3)硬件保证了每个线程都有相同的指令执行时间
(4)运算结果能保证在指定的周期内完成。因此不需要指令执行相关检查和绕行硬件图一给出了一个四线程的令牌触发多线程的多线程执行时序图。令牌触发多线程技术在简化多线程的硬件结构降低功耗上效果明显,但是也因此降低了处理器运算单元的使用效率尤其是单个线程的处理效率下降以致处理器的执行能力比SMT要降低很多。
下面是目前的Sandblasterf. 0的令牌触发多线程结构所存在的一些缺陷
1.为确保线程之间不会互相干扰及简化硬件结构而采用的分时顺序执行的策略的同时也造成了时钟周期的使用效率降低。也降低了单个线程的处理能力。比如线程1\由于指令Miss而需要从外部读取时,由于外部存储器的速度较慢而导致T1不能及时取得指令而线程Ttl则有指令等待的执行.但是由于结构限制了时钟周期C1只能被用于T1这时时钟周期C1就被浪费了
2.为了避免线程之间的Thrashing及简化跟踪电路,Sandblaster2.0设计成每个线程都有自己一个完全独立的指令内存。线程之间完全不能分享或共享其他线程的指令内存而极大的浪费了内存资源。

发明内容
本发明目的是针对现有技术存在的缺陷提供一种机会驱动多线程方法及处理器。本发明为实现上述目的,采用如下技术方案
本发明机会多线程方法,机会驱动多线程方法使用第零线程、第一线程、第二线程、第三线程和第零时钟周期、第一时钟周期、第二时钟周期、第三时钟周期,机会多线程方法包括以下步骤
一、如果第零线程、第一线程、第二线程、第三线程都有指令准备好且等待执行时,第零时钟周期、第一时钟周期、第二时钟周期、第三时钟周期就被固定的分配给第零线程、第一线程、第二线程、第三线程;
二、如果有一个线程由于指令没有准备好而无法在指定的时钟周期发出指令,而上一个线程在上一个指定的时钟周期发出一定的指令后仍然有指令准备好且等待执行时,上一个线程就占用指定的时钟周期。机会多程方法的处理器,包括一个指令内存(I-Cache),一个指令解码 (I-decoder), 一个指令流控制器(Branch)和算术逻辑单元(ALUs),每个线程都有自己的一套执行程序所需的寄存器外还要增加一个线程指令有效预测电路和在每级的流水线加上线程跟踪逻辑或线程身份设别电路;
所述机会多线程方法为增加一个线程指令有效预测电路和为每级的流水线增加一组2 维的线程身份寄存器。所述指令有效预测电路是用于预测下个时钟周期设定的线程是否有指令需求执行或指令是否有效(Valid),如果不有效就把该时钟周期让给当前线程。所述一组2维的线程身份(ID)寄存器则是用于跟踪线程指令在每级流水线的执行情况以保证结果数据不会被搞混乱。可推广到η个线程和相应的η个时钟周期数,η为大于1的自然数。本发明每个线程的起始执行周期不再固定不变;如果某个线程由于指令miss而在分配给该线程的时钟周期内没有可执行的指令而其前一个线程仍然有指令等待执行时, 其前一位线程可占用现有线程的时钟周期;每个线程,无论其是在哪个时钟周期发出的,其执行所需周期数仍然不变;为避免线程之间的混乱,每个线程的ID是一个2维的ID。


图1 令牌触发多线程时序图; 图2 典型的HARVARD结构的处理器; 图3 机会驱动多线程处理器结构图; 图4 机会驱动多线程时序图。
具体实施例方式图2是一个典型的Harvard结构的处理器.它有一个指令内存(I-Cache),一个指令解码(I-decoder),一个指令流控制器(Branch),算术逻辑单元(ALUs)。一个多线程结构的处理器通常需要给每个线程都有自己的一套执行程序所需的寄存器外还要根据所用技术不同而在每级的流水线加上线程跟踪逻辑或线程身份设别电路
机会多线程处理器结构则是在一个典型的处理器结构上给每个线程一套自己的执行程序寄存器外还要为每级的流水线增加一个线程指令有效预测电路和一组2维的线程身份寄存器。其逻辑框图见图3。指令有效预测电路是用于预测下个时钟周期设定的线程指令是否有效(Valid)。如果不有效就把该时钟周期让给当前线程。一组2维的线程身份(ID)寄存器则是用于跟踪线程指令在每级流水线的执行情况以保证结果数据不会被搞混乱。机会多线程技术的工作原理如下
1.如果所有线程pQ,P11P21 P3都有指令准备好了 (Valid)等待执行时,时钟周期C。, C1, C2, C3就被固定的分配给线程PQ,P1, P2, P3.
2.如果有一个线程,比如T1由于指令没有准备好(miss)而无法在指定的时钟周期发出指令。但是线程Ttl在时钟周期Ctl发出一定的指令后仍然有指令准备好了等待执行时,Ptl 就可占用时钟周期C1,为了避免同一个线程在不同时钟周期发出的指令以避免混乱。机会多线技术将每个线程的命名采用了 2维命名法。即Ptl在时钟周期Ctl时发出的指令是Pc^, P0在时钟周期C1时发出的指令是Pcu,同样的当线程P2没有指令在时钟周期C2需要执行时而T1有指令准备好了等待执行时,P1可以占用C2时钟周期。而相应的线程P1在周期C2时发出的指令被命名成Plil
图4给出了一个4线程,4级流水线的机会多线程的操作控制流程。图中,Ci是时钟周期数,Pij是线程身份。
权利要求
1.一种机会多线程方法,其特征在于,机会驱动多线程方法使用第零线程、第一线程、 第二线程、第三线程和第零时钟周期、第一时钟周期、第二时钟周期、第三时钟周期,机会多线程方法包括以下步骤一、如果第零线程、第一线程、第二线程、第三线程都有指令准备好且等待执行时,第零时钟周期、第一时钟周期、第二时钟周期、第三时钟周期就被固定的分配给第零线程、第一线程、第二线程、第三线程;二、如果有一个线程由于指令没有准备好而无法在指定的时钟周期发出指令,而上一个线程在上一个指定的时钟周期发出一定的指令后仍然有指令准备好且等待执行时,上一个线程就占用指定的时钟周期。
2.一种基于权利要求1所述的机会多程方法的处理器,包括一个指令内存 (Ι-Cache), 一个指令解码(I-decoder),一个指令流控制器(Branch)和算术逻辑单元 (ALUs),每个线程都有自己的一套执行程序所需的寄存器外还要增加一个线程指令有效预测电路和在每级的流水线加上线程跟踪逻辑或线程身份设别电路;其特征在于所述机会多线程方法为增加一个线程指令有效预测电路和为每级的流水线增加一组2维的线程身份寄存器。
3.根据前路要求2所述的机会多线程处理器,其特征在于所述指令有效预测电路是用于预测下个时钟周期设定的线程是否有指令需求执行或指令是否有效(Valid),如果不有效就把该时钟周期让给当前线程。
4.根据前路要求2所述的机会多线程处理器,其特征在于所述一组2维的线程身份 (ID)寄存器则是用于跟踪线程指令在每级流水线的执行情况以保证结果数据不会被搞混乱。
5.根据权利要求1所述的机会多线程方法,其特征在于可推广到η个线程和相应的η 个时钟周期数,η为大于1的自然数。
全文摘要
本发明公布了一种机会多线程方法及处理器。该方法包括以下步骤如果第零线程、第一线程、第二线程、第三线程都有指令准备好且等待执行时,第零时钟周期、第一时钟周期、第二时钟周期、第三时钟周期就被固定的分配给第零线程、第一线程、第二线程、第三线程;如果有一个线程由于指令没有准备好而无法在指定的时钟周期发出指令,而上一个线程在上一个指定的时钟周期发出一定的指令后仍然有指令准备好且等待执行时,上一个线程就占用指定的时钟周期。处理器包括一个指令内存,一个指令解码,一个指令流控制器和算术逻辑单元,所述机会多线程处理器为每级的流水线增加一个线程指令有效预测电路和一组2维的线程身份寄存器。
文档编号G06F9/38GK102495726SQ201110361140
公开日2012年6月13日 申请日期2011年11月15日 优先权日2011年11月15日
发明者王生洪 申请人:无锡德思普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1