最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

機(jī)會(huì)多線(xiàn)程方法及處理器的制作方法

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

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


圖1 令牌觸發(fā)多線(xiàn)程時(shí)序圖; 圖2 典型的HARVARD結(jié)構(gòu)的處理器; 圖3 機(jī)會(huì)驅(qū)動(dòng)多線(xiàn)程處理器結(jié)構(gòu)圖; 圖4 機(jī)會(huì)驅(qū)動(dòng)多線(xiàn)程時(shí)序圖。
具體實(shí)施例方式圖2是一個(gè)典型的Harvard結(jié)構(gòu)的處理器.它有一個(gè)指令內(nèi)存(I-Cache),一個(gè)指令解碼(I-decoder),一個(gè)指令流控制器(Branch),算術(shù)邏輯單元(ALUs)。一個(gè)多線(xiàn)程結(jié)構(gòu)的處理器通常需要給每個(gè)線(xiàn)程都有自己的一套執(zhí)行程序所需的寄存器外還要根據(jù)所用技術(shù)不同而在每級(jí)的流水線(xiàn)加上線(xiàn)程跟蹤邏輯或線(xiàn)程身份設(shè)別電路
機(jī)會(huì)多線(xiàn)程處理器結(jié)構(gòu)則是在一個(gè)典型的處理器結(jié)構(gòu)上給每個(gè)線(xiàn)程一套自己的執(zhí)行程序寄存器外還要為每級(jí)的流水線(xiàn)增加一個(gè)線(xiàn)程指令有效預(yù)測(cè)電路和一組2維的線(xiàn)程身份寄存器。其邏輯框圖見(jiàn)圖3。指令有效預(yù)測(cè)電路是用于預(yù)測(cè)下個(gè)時(shí)鐘周期設(shè)定的線(xiàn)程指令是否有效(Valid)。如果不有效就把該時(shí)鐘周期讓給當(dāng)前線(xiàn)程。一組2維的線(xiàn)程身份(ID)寄存器則是用于跟蹤線(xiàn)程指令在每級(jí)流水線(xiàn)的執(zhí)行情況以保證結(jié)果數(shù)據(jù)不會(huì)被搞混亂。機(jī)會(huì)多線(xiàn)程技術(shù)的工作原理如下
1.如果所有線(xiàn)程pQ,P11P21 P3都有指令準(zhǔn)備好了 (Valid)等待執(zhí)行時(shí),時(shí)鐘周期C。, C1, C2, C3就被固定的分配給線(xiàn)程PQ,P1, P2, P3.
2.如果有一個(gè)線(xiàn)程,比如T1由于指令沒(méi)有準(zhǔn)備好(miss)而無(wú)法在指定的時(shí)鐘周期發(fā)出指令。但是線(xiàn)程Ttl在時(shí)鐘周期Ctl發(fā)出一定的指令后仍然有指令準(zhǔn)備好了等待執(zhí)行時(shí),Ptl 就可占用時(shí)鐘周期C1,為了避免同一個(gè)線(xiàn)程在不同時(shí)鐘周期發(fā)出的指令以避免混亂。機(jī)會(huì)多線(xiàn)技術(shù)將每個(gè)線(xiàn)程的命名采用了 2維命名法。即Ptl在時(shí)鐘周期Ctl時(shí)發(fā)出的指令是Pc^, P0在時(shí)鐘周期C1時(shí)發(fā)出的指令是Pcu,同樣的當(dāng)線(xiàn)程P2沒(méi)有指令在時(shí)鐘周期C2需要執(zhí)行時(shí)而T1有指令準(zhǔn)備好了等待執(zhí)行時(shí),P1可以占用C2時(shí)鐘周期。而相應(yīng)的線(xiàn)程P1在周期C2時(shí)發(fā)出的指令被命名成Plil
圖4給出了一個(gè)4線(xiàn)程,4級(jí)流水線(xiàn)的機(jī)會(huì)多線(xiàn)程的操作控制流程。圖中,Ci是時(shí)鐘周期數(shù),Pij是線(xiàn)程身份。
權(quán)利要求
1.一種機(jī)會(huì)多線(xiàn)程方法,其特征在于,機(jī)會(huì)驅(qū)動(dòng)多線(xiàn)程方法使用第零線(xiàn)程、第一線(xiàn)程、 第二線(xiàn)程、第三線(xiàn)程和第零時(shí)鐘周期、第一時(shí)鐘周期、第二時(shí)鐘周期、第三時(shí)鐘周期,機(jī)會(huì)多線(xiàn)程方法包括以下步驟一、如果第零線(xiàn)程、第一線(xiàn)程、第二線(xiàn)程、第三線(xiàn)程都有指令準(zhǔn)備好且等待執(zhí)行時(shí),第零時(shí)鐘周期、第一時(shí)鐘周期、第二時(shí)鐘周期、第三時(shí)鐘周期就被固定的分配給第零線(xiàn)程、第一線(xiàn)程、第二線(xiàn)程、第三線(xiàn)程;二、如果有一個(gè)線(xiàn)程由于指令沒(méi)有準(zhǔn)備好而無(wú)法在指定的時(shí)鐘周期發(fā)出指令,而上一個(gè)線(xiàn)程在上一個(gè)指定的時(shí)鐘周期發(fā)出一定的指令后仍然有指令準(zhǔn)備好且等待執(zhí)行時(shí),上一個(gè)線(xiàn)程就占用指定的時(shí)鐘周期。
2.一種基于權(quán)利要求1所述的機(jī)會(huì)多程方法的處理器,包括一個(gè)指令內(nèi)存 (Ι-Cache), 一個(gè)指令解碼(I-decoder),一個(gè)指令流控制器(Branch)和算術(shù)邏輯單元 (ALUs),每個(gè)線(xiàn)程都有自己的一套執(zhí)行程序所需的寄存器外還要增加一個(gè)線(xiàn)程指令有效預(yù)測(cè)電路和在每級(jí)的流水線(xiàn)加上線(xiàn)程跟蹤邏輯或線(xiàn)程身份設(shè)別電路;其特征在于所述機(jī)會(huì)多線(xiàn)程方法為增加一個(gè)線(xiàn)程指令有效預(yù)測(cè)電路和為每級(jí)的流水線(xiàn)增加一組2維的線(xiàn)程身份寄存器。
3.根據(jù)前路要求2所述的機(jī)會(huì)多線(xiàn)程處理器,其特征在于所述指令有效預(yù)測(cè)電路是用于預(yù)測(cè)下個(gè)時(shí)鐘周期設(shè)定的線(xiàn)程是否有指令需求執(zhí)行或指令是否有效(Valid),如果不有效就把該時(shí)鐘周期讓給當(dāng)前線(xiàn)程。
4.根據(jù)前路要求2所述的機(jī)會(huì)多線(xiàn)程處理器,其特征在于所述一組2維的線(xiàn)程身份 (ID)寄存器則是用于跟蹤線(xiàn)程指令在每級(jí)流水線(xiàn)的執(zhí)行情況以保證結(jié)果數(shù)據(jù)不會(huì)被搞混亂。
5.根據(jù)權(quán)利要求1所述的機(jī)會(huì)多線(xiàn)程方法,其特征在于可推廣到η個(gè)線(xiàn)程和相應(yīng)的η 個(gè)時(shí)鐘周期數(shù),η為大于1的自然數(shù)。
全文摘要
本發(fā)明公布了一種機(jī)會(huì)多線(xiàn)程方法及處理器。該方法包括以下步驟如果第零線(xiàn)程、第一線(xiàn)程、第二線(xiàn)程、第三線(xiàn)程都有指令準(zhǔn)備好且等待執(zhí)行時(shí),第零時(shí)鐘周期、第一時(shí)鐘周期、第二時(shí)鐘周期、第三時(shí)鐘周期就被固定的分配給第零線(xiàn)程、第一線(xiàn)程、第二線(xiàn)程、第三線(xiàn)程;如果有一個(gè)線(xiàn)程由于指令沒(méi)有準(zhǔn)備好而無(wú)法在指定的時(shí)鐘周期發(fā)出指令,而上一個(gè)線(xiàn)程在上一個(gè)指定的時(shí)鐘周期發(fā)出一定的指令后仍然有指令準(zhǔn)備好且等待執(zhí)行時(shí),上一個(gè)線(xiàn)程就占用指定的時(shí)鐘周期。處理器包括一個(gè)指令內(nèi)存,一個(gè)指令解碼,一個(gè)指令流控制器和算術(shù)邏輯單元,所述機(jī)會(huì)多線(xiàn)程處理器為每級(jí)的流水線(xiàn)增加一個(gè)線(xiàn)程指令有效預(yù)測(cè)電路和一組2維的線(xiàn)程身份寄存器。
文檔編號(hào)G06F9/38GK102495726SQ201110361140
公開(kāi)日2012年6月13日 申請(qǐng)日期2011年11月15日 優(yōu)先權(quán)日2011年11月15日
發(fā)明者王生洪 申請(qǐng)人:無(wú)錫德思普科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1