麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

機(jī)會多線程方法及處理器的制作方法

文檔序號:6438401閱讀:344來源:國知局
專利名稱:機(jī)會多線程方法及處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種多線程處理器技術(shù)(Multi-threading).特別是涉及一種機(jī)會多線程方法及處理器。
背景技術(shù)
多線程并行處理技術(shù)(Multi-Threading)被廣泛的應(yīng)用在高性能處理器的設(shè)計中以降低高速處理器指令執(zhí)行中存在的等待周期的影響以提高處理器的性能和運行效率。 其中用的最普遍的是同步多線程技術(shù)(Simultaneous Multi-threading)或叫SMT。如 Intel 的 Hyper-Threading, IBM 的 P0WER5, Sun Microsystems 的 UltraSPARC T2 R MIPS的MT都是采用了 SMT技術(shù)。SMT技術(shù)除了需要給每個線程都有自己的一套執(zhí)行程序所需的寄存器外還要在每級的流水線加上線程跟蹤邏輯,增加共享資源的尺寸,如指令Cache,TLBs等。其線程跟蹤邏輯不僅要跟蹤線程的行程還要檢查和判斷該線程是否已執(zhí)行完成。由于會有大量的線程處于執(zhí)行或半執(zhí)行狀態(tài),因而CPU的Caches及TLB的尺寸必須足夠大以避免不必要的線程之間的^Thrashing。雖然SMT技術(shù)能提高處理器的運算能力但由于硬件的復(fù)雜程度大大提高因而很難應(yīng)用于嵌入式處理器及低功耗處理器的設(shè)計。為了克服SMT多線程控制電路的復(fù)雜性和降低功耗。另一類簡化的多線程技術(shù), 分時多線程技術(shù),也得到一定應(yīng)用。分時多線程技術(shù)是指在一定的指令周期內(nèi)只有一個線程在運行。它又可分成分塊多線程(BLOCK MULTI-THREADING)和交錯多線程(INTERLEAVED MULTI-THREADING)。分塊多線程技術(shù)因為其對處理器的運行效率提高非常有限而通常用于像微控制器(MICR0-C0NTR0LER)等低性能處理器。交錯多線程技術(shù)因為其控制電路簡單但其運算能力和效率比單線程處理器有提高明顯而在一要求高性能低功耗的處理器中得到一定的推廣應(yīng)用。其中典型的代表就是令牌觸發(fā)多線程技術(shù)(Token Triggered threading)0這種多線程技術(shù)有如下幾個特點
(1)它是一種分時執(zhí)行的過程。每一個線程的執(zhí)行是按自己所授予的時鐘周期來執(zhí)行。 而每個時鐘周期只有一個線程發(fā)出指令。(2) 一個線程通過后會告訴下個周期應(yīng)該是哪個線程該啟動。這樣大大的簡化了線程選擇硬件。(3)硬件保證了每個線程都有相同的指令執(zhí)行時間
(4)運算結(jié)果能保證在指定的周期內(nèi)完成。因此不需要指令執(zhí)行相關(guān)檢查和繞行硬件圖一給出了一個四線程的令牌觸發(fā)多線程的多線程執(zhí)行時序圖。令牌觸發(fā)多線程技術(shù)在簡化多線程的硬件結(jié)構(gòu)降低功耗上效果明顯,但是也因此降低了處理器運算單元的使用效率尤其是單個線程的處理效率下降以致處理器的執(zhí)行能力比SMT要降低很多。
下面是目前的Sandblasterf. 0的令牌觸發(fā)多線程結(jié)構(gòu)所存在的一些缺陷
1.為確保線程之間不會互相干擾及簡化硬件結(jié)構(gòu)而采用的分時順序執(zhí)行的策略的同時也造成了時鐘周期的使用效率降低。也降低了單個線程的處理能力。比如線程1\由于指令Miss而需要從外部讀取時,由于外部存儲器的速度較慢而導(dǎo)致T1不能及時取得指令而線程Ttl則有指令等待的執(zhí)行.但是由于結(jié)構(gòu)限制了時鐘周期C1只能被用于T1這時時鐘周期C1就被浪費了
2.為了避免線程之間的Thrashing及簡化跟蹤電路,Sandblaster2.0設(shè)計成每個線程都有自己一個完全獨立的指令內(nèi)存。線程之間完全不能分享或共享其他線程的指令內(nèi)存而極大的浪費了內(nèi)存資源。

發(fā)明內(nèi)容
本發(fā)明目的是針對現(xiàn)有技術(shù)存在的缺陷提供一種機(jī)會驅(qū)動多線程方法及處理器。本發(fā)明為實現(xiàn)上述目的,采用如下技術(shù)方案
本發(fā)明機(jī)會多線程方法,機(jī)會驅(qū)動多線程方法使用第零線程、第一線程、第二線程、第三線程和第零時鐘周期、第一時鐘周期、第二時鐘周期、第三時鐘周期,機(jī)會多線程方法包括以下步驟
一、如果第零線程、第一線程、第二線程、第三線程都有指令準(zhǔn)備好且等待執(zhí)行時,第零時鐘周期、第一時鐘周期、第二時鐘周期、第三時鐘周期就被固定的分配給第零線程、第一線程、第二線程、第三線程;
二、如果有一個線程由于指令沒有準(zhǔn)備好而無法在指定的時鐘周期發(fā)出指令,而上一個線程在上一個指定的時鐘周期發(fā)出一定的指令后仍然有指令準(zhǔn)備好且等待執(zhí)行時,上一個線程就占用指定的時鐘周期。機(jī)會多程方法的處理器,包括一個指令內(nèi)存(I-Cache),一個指令解碼 (I-decoder), 一個指令流控制器(Branch)和算術(shù)邏輯單元(ALUs),每個線程都有自己的一套執(zhí)行程序所需的寄存器外還要增加一個線程指令有效預(yù)測電路和在每級的流水線加上線程跟蹤邏輯或線程身份設(shè)別電路;
所述機(jī)會多線程方法為增加一個線程指令有效預(yù)測電路和為每級的流水線增加一組2 維的線程身份寄存器。所述指令有效預(yù)測電路是用于預(yù)測下個時鐘周期設(shè)定的線程是否有指令需求執(zhí)行或指令是否有效(Valid),如果不有效就把該時鐘周期讓給當(dāng)前線程。所述一組2維的線程身份(ID)寄存器則是用于跟蹤線程指令在每級流水線的執(zhí)行情況以保證結(jié)果數(shù)據(jù)不會被搞混亂。可推廣到η個線程和相應(yīng)的η個時鐘周期數(shù),η為大于1的自然數(shù)。本發(fā)明每個線程的起始執(zhí)行周期不再固定不變;如果某個線程由于指令miss而在分配給該線程的時鐘周期內(nèi)沒有可執(zhí)行的指令而其前一個線程仍然有指令等待執(zhí)行時, 其前一位線程可占用現(xiàn)有線程的時鐘周期;每個線程,無論其是在哪個時鐘周期發(fā)出的,其執(zhí)行所需周期數(shù)仍然不變;為避免線程之間的混亂,每個線程的ID是一個2維的ID。


圖1 令牌觸發(fā)多線程時序圖; 圖2 典型的HARVARD結(jié)構(gòu)的處理器; 圖3 機(jī)會驅(qū)動多線程處理器結(jié)構(gòu)圖; 圖4 機(jī)會驅(qū)動多線程時序圖。
具體實施例方式圖2是一個典型的Harvard結(jié)構(gòu)的處理器.它有一個指令內(nèi)存(I-Cache),一個指令解碼(I-decoder),一個指令流控制器(Branch),算術(shù)邏輯單元(ALUs)。一個多線程結(jié)構(gòu)的處理器通常需要給每個線程都有自己的一套執(zhí)行程序所需的寄存器外還要根據(jù)所用技術(shù)不同而在每級的流水線加上線程跟蹤邏輯或線程身份設(shè)別電路
機(jī)會多線程處理器結(jié)構(gòu)則是在一個典型的處理器結(jié)構(gòu)上給每個線程一套自己的執(zhí)行程序寄存器外還要為每級的流水線增加一個線程指令有效預(yù)測電路和一組2維的線程身份寄存器。其邏輯框圖見圖3。指令有效預(yù)測電路是用于預(yù)測下個時鐘周期設(shè)定的線程指令是否有效(Valid)。如果不有效就把該時鐘周期讓給當(dāng)前線程。一組2維的線程身份(ID)寄存器則是用于跟蹤線程指令在每級流水線的執(zhí)行情況以保證結(jié)果數(shù)據(jù)不會被搞混亂。機(jī)會多線程技術(shù)的工作原理如下
1.如果所有線程pQ,P11P21 P3都有指令準(zhǔn)備好了 (Valid)等待執(zhí)行時,時鐘周期C。, C1, C2, C3就被固定的分配給線程PQ,P1, P2, P3.
2.如果有一個線程,比如T1由于指令沒有準(zhǔn)備好(miss)而無法在指定的時鐘周期發(fā)出指令。但是線程Ttl在時鐘周期Ctl發(fā)出一定的指令后仍然有指令準(zhǔn)備好了等待執(zhí)行時,Ptl 就可占用時鐘周期C1,為了避免同一個線程在不同時鐘周期發(fā)出的指令以避免混亂。機(jī)會多線技術(shù)將每個線程的命名采用了 2維命名法。即Ptl在時鐘周期Ctl時發(fā)出的指令是Pc^, P0在時鐘周期C1時發(fā)出的指令是Pcu,同樣的當(dāng)線程P2沒有指令在時鐘周期C2需要執(zhí)行時而T1有指令準(zhǔn)備好了等待執(zhí)行時,P1可以占用C2時鐘周期。而相應(yīng)的線程P1在周期C2時發(fā)出的指令被命名成Plil
圖4給出了一個4線程,4級流水線的機(jī)會多線程的操作控制流程。圖中,Ci是時鐘周期數(shù),Pij是線程身份。
權(quán)利要求
1.一種機(jī)會多線程方法,其特征在于,機(jī)會驅(qū)動多線程方法使用第零線程、第一線程、 第二線程、第三線程和第零時鐘周期、第一時鐘周期、第二時鐘周期、第三時鐘周期,機(jī)會多線程方法包括以下步驟一、如果第零線程、第一線程、第二線程、第三線程都有指令準(zhǔn)備好且等待執(zhí)行時,第零時鐘周期、第一時鐘周期、第二時鐘周期、第三時鐘周期就被固定的分配給第零線程、第一線程、第二線程、第三線程;二、如果有一個線程由于指令沒有準(zhǔn)備好而無法在指定的時鐘周期發(fā)出指令,而上一個線程在上一個指定的時鐘周期發(fā)出一定的指令后仍然有指令準(zhǔn)備好且等待執(zhí)行時,上一個線程就占用指定的時鐘周期。
2.一種基于權(quán)利要求1所述的機(jī)會多程方法的處理器,包括一個指令內(nèi)存 (Ι-Cache), 一個指令解碼(I-decoder),一個指令流控制器(Branch)和算術(shù)邏輯單元 (ALUs),每個線程都有自己的一套執(zhí)行程序所需的寄存器外還要增加一個線程指令有效預(yù)測電路和在每級的流水線加上線程跟蹤邏輯或線程身份設(shè)別電路;其特征在于所述機(jī)會多線程方法為增加一個線程指令有效預(yù)測電路和為每級的流水線增加一組2維的線程身份寄存器。
3.根據(jù)前路要求2所述的機(jī)會多線程處理器,其特征在于所述指令有效預(yù)測電路是用于預(yù)測下個時鐘周期設(shè)定的線程是否有指令需求執(zhí)行或指令是否有效(Valid),如果不有效就把該時鐘周期讓給當(dāng)前線程。
4.根據(jù)前路要求2所述的機(jī)會多線程處理器,其特征在于所述一組2維的線程身份 (ID)寄存器則是用于跟蹤線程指令在每級流水線的執(zhí)行情況以保證結(jié)果數(shù)據(jù)不會被搞混亂。
5.根據(jù)權(quán)利要求1所述的機(jī)會多線程方法,其特征在于可推廣到η個線程和相應(yīng)的η 個時鐘周期數(shù),η為大于1的自然數(shù)。
全文摘要
本發(fā)明公布了一種機(jī)會多線程方法及處理器。該方法包括以下步驟如果第零線程、第一線程、第二線程、第三線程都有指令準(zhǔn)備好且等待執(zhí)行時,第零時鐘周期、第一時鐘周期、第二時鐘周期、第三時鐘周期就被固定的分配給第零線程、第一線程、第二線程、第三線程;如果有一個線程由于指令沒有準(zhǔn)備好而無法在指定的時鐘周期發(fā)出指令,而上一個線程在上一個指定的時鐘周期發(fā)出一定的指令后仍然有指令準(zhǔn)備好且等待執(zhí)行時,上一個線程就占用指定的時鐘周期。處理器包括一個指令內(nèi)存,一個指令解碼,一個指令流控制器和算術(shù)邏輯單元,所述機(jī)會多線程處理器為每級的流水線增加一個線程指令有效預(yù)測電路和一組2維的線程身份寄存器。
文檔編號G06F9/38GK102495726SQ201110361140
公開日2012年6月13日 申請日期2011年11月15日 優(yōu)先權(quán)日2011年11月15日
發(fā)明者王生洪 申請人:無錫德思普科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 曲周县| 宜宾县| 许昌市| 云南省| 永胜县| 滦南县| 遵义县| 江城| 乌拉特后旗| 泰兴市| 东山县| 广宗县| 冕宁县| 黑山县| 房产| 通城县| 和林格尔县| 花莲市| 章丘市| 天水市| 沂南县| 共和县| 无为县| 灵台县| 定襄县| 黎川县| 洪江市| 边坝县| 古浪县| 嵩明县| 弥渡县| 岚皋县| 灵寿县| 柏乡县| 曲麻莱县| 秦皇岛市| 淮滨县| 古蔺县| 亚东县| 策勒县| 彝良县|