欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多線程處理器中用于降低線程切換時延的方法和裝置的制作方法

文檔序號:6414035閱讀:295來源:國知局
專利名稱:多線程處理器中用于降低線程切換時延的方法和裝置的制作方法
技術領域
本發(fā)明一般涉及多線程處理器中用于降低線程切換時延的方法和裝置。
現在,用于高性能、單片微處理器的最常用的結構是采用精簡指令集計算機的RISC結構。由于半導體技術的發(fā)展,RISC結構的目標已成為開發(fā)出差不多在每個機器的時鐘周期都能啟動一條指令的處理器設計。這種每條指令時鐘周期數或稱為CPI的度量標準被經常用于表征高性能處理器的結構。指令流水線技術及高速緩沖存儲器結構特征已使得CPI的改善成為可能。流水線指令的執(zhí)行使得后面的指令在前面已發(fā)出的指令執(zhí)行完之前就可開始執(zhí)行。高速緩沖存儲器使得在大多數情況下,不需等待一個完整的主存儲器存取時間,就可使指令繼續(xù)執(zhí)行。
盡管用作主存儲器的存儲器設備的速度不斷提高,但是這種存儲器芯片與高檔處理器之間的速度差距卻在不斷加大。因此當前設計的高檔處理器的相當多的執(zhí)行時間浪費在等待高速緩沖存儲器的未命中上,可以預見,除非實現存儲器時延容許技術,否則存儲器訪問延時將占用越來越多的處理器執(zhí)行時間的比率。
一種已知的容許存儲器時延的技術是多線程。目前有兩種多線程技術硬件多線程和軟件多線程。硬件多線程技術所采用的處理器在芯片上要保持若干個任務或線程的狀態(tài),它一般涉及為每個線程復制處理器的寄存器。
有兩種基本的硬件多線程技術形式。常規(guī)的方式是在處理器中保持N個線程或狀態(tài)并以周期(cycle-by-cycle)為基礎將線程交錯。這種方式由于處于一個線程中的指令被分離開,從而消除了流水線所存在的相關性問題。硬件多線程技術的另一種形式是對一些長時延事件進行線程切換。本發(fā)明的一種實施例就是使用硬件多線程技術并對一些長時延事件執(zhí)行線程間的切換處理。
但是,線程切換本身需要占用一些時鐘周期。由于線程切換所導致的時延其相當一部分是由于要求開始執(zhí)行一個新的線程的取指令操作的結果。

圖1示出了用于由一個多線程處理器的多個流水線進行處理而分配指令的現有技術的結構。如圖1所示,指令傳送多路器8具有第一和第二輸入。第一輸入與一個存有多條指令的指令高速緩沖存儲器4相連。存儲在指令高速緩沖存儲器4中的指令屬于活動態(tài)的線程(active thread),即當前被執(zhí)行的線程,及一個或多個等待執(zhí)行的線程(dormant thread),即當前不被執(zhí)行的線程。指令傳送多路器8的第二個輸入與主存儲器和/或存儲器子系統(tǒng)2相連。主存儲器存儲每個線程的所有指令,而存儲器子系統(tǒng)例如二級高速緩沖存儲器可以存儲的指令數小于各線程所有的指令數但大于指令高速緩沖存儲器4中的指令數。如圖1所示,指令高速緩沖存儲器4也與主存儲器和/或存儲器子系統(tǒng)2相連。
根據從控制邏輯6所接收的線路填充旁路信號,指令傳送多路器8輸出由控制邏輯6所尋址的來自于指令高速緩沖存儲器4或主存儲器和/或存儲器子系統(tǒng)的指令。指令傳送多路器8向基本指令隊列10輸出指令。基本指令隊列10所存儲的多條指令被輸出分配給多個處理流水線以供多線程處理器執(zhí)行。
發(fā)生線程切換時,基本指令隊列10中的指令是無效的,并且在第一時鐘周期,由控制邏輯6生成正在成為活動線程的待用線程的指令地址。在第二個時鐘周期,根據新生成的指令地址對指令進行尋址,并且控制邏輯6輸出一個線路填充旁路信號,使得指令傳送多路器8選擇與指令高速緩沖存儲器4相連的輸入。若被尋址的指令駐留在指令高速緩沖存儲器4中,則在第三個時鐘周期,指令傳送多路器8向基本指令隊列10輸出這些指令,基本指令隊列10輸出這些指令以分配給處理流水線。相應地,正在成為活動線程的待用線程的指令駐留在指令高速緩沖存儲器4中時,將占用三個時鐘周期以完成線程切換。
當然,如果指令高速緩沖存儲器4中沒有包含由控制邏輯6所尋址的,即將成為活動線程的待用線程的指令,則完成線程切換的時間將根據解決指令高速緩沖存儲器未命中問題所需要的時間而增加。
本發(fā)明的一個目的是提供一種用于降低多線程處理器中線程切換時延的方法和裝置。
本發(fā)明另一個目的是提供一種用于降低多線程處理器中線程切換時延的方法和裝置,它能從需要執(zhí)行一個線程切換的時間中消除重新填充基本指令隊列的時間。
本發(fā)明的這些以及其它目的將通過除了提供一個用于存儲活動線程的基本指令隊列外還提供一個線程切換指令隊列來實現,其中該隊列用于存儲待用線程指令。當發(fā)生線程切換時,存儲在線程切換指令隊列中的指令被輸出以供執(zhí)行,從而消除了由于必須等待基本指令隊列被重新填充而導致的線程切換時延。
另外,與即將成為活動線程的待用線程指令從線程切換指令隊列中輸出的同時,存儲在線程切換指令隊列中的一些指令被傳輸給基本指令隊列。從線程切換指令隊列中最先輸出的指令輸出之后,用于執(zhí)行的指令會再一次從基本指令隊列中輸出。由于基本指令隊列中已被預先填充進最初存儲在線程切換指令隊列中的指令,因此進一步消除了因填充基本指令隊列而造成的延時。
本發(fā)明其它目的,特征和特點;方法、操作及相關結構部件的功能;或其組合及構造的經濟性通過以下結合附圖的實施例的詳細描述將更清楚。其中實施例及附圖均屬于本說明書的一部分,不同的附圖中的相應部分用相同的參考標記。
本發(fā)明通過以下的詳細敘述及附圖將更易理解,它們僅用于說明本發(fā)明,而不是用于限制本發(fā)明。
其中圖1是用于分配指令的現有技術結構;圖2是根據本發(fā)明用于分配指令的結構。
根據本發(fā)明的用于分配指令的結構包括一個與指令傳送多路器相連的線程切換指令隊列及與一個基本指令隊列并行的輸出多路器。線程切換指令隊列存儲待用線程指令,而基本指令隊列存儲活動線程指令。發(fā)生線程切換時,存儲在線程切換指令隊列中的指令被輸出多路器輸出以備執(zhí)行,從而消除了因必須等待基本指令隊列被重新填充而導致的線程切換時延。
另外,正在成為活動線程的待用線程的指令是由輸出多路器輸出時,其中一些指令被傳輸給基本指令隊列。從線程切換指令隊列獲取初始指令輸出之后,輸出多路器再一次輸出從基本指令隊列中獲取的指令,以備執(zhí)行。由于基本指令隊列中已被預先填充進最初存儲在線程切換指令隊列中的指令,故又進一步消除了由于填充基本指令隊列而導致的延時。
現在將參考圖2詳細地討論根據本發(fā)明的分配指令的結構。如圖2所示,按照與上述所討論的與現有技術的指令分配結構相同的方式連接指令傳送多路器8,控制邏輯6,指令高速緩沖存儲器4,及主存儲器和/或存儲器子系統(tǒng)2。同樣的,控制邏輯6向指令傳送多路器8輸出一個線路填充旁路信號,該信號表明指令傳送多路器8應該輸出來自于指令高速緩沖存儲器4的指令還是來自于主存儲器和/或存儲器子系統(tǒng)2的指令。
根據本發(fā)明的用于分配指令的結構還包括一個指令填充多路器12,一個線程切換指令隊列14及一個輸出多路器16。指令填充多路器12具有一個第一和第二輸入。第一輸入與指令傳送多路器8的輸出相連。指令填充多路器12的第二輸入與輸出多路器16的輸出相連。指令填充多路器12根據從控制邏輯6所接收的指令切換信號將來自于指令傳送多路器8或輸出多路器16的指令輸出給基本指令隊列10。
線程切換指令隊列14也接收指令傳送多路器8的輸出,線程切換指令隊列14及基本指令隊列10將他們的輸出傳送給輸出多路器16。輸出多路器16根據由控制邏輯6所生成的線程切換信號選擇性地輸出來自于基本指令隊列10或線程切換指令隊列14的輸出指令。由指令多路器16輸出的指令被分配給多線程處理器的多個處理流水線。
在活動線程的執(zhí)行期間,線程切換信號保持低電平狀態(tài),從而使指令填充多路器12輸出從指令傳送多路器8所接收的指令以填充基本指令隊列10,輸出多路器16輸出從基本指令隊列10所接收的指令。
進一步地,在活動線程執(zhí)行期間,待用線程的指令被預先讀取并存儲在線程切換指令隊列14中。為了預先讀取待用線程指令并將其存儲到線程切換指令隊列14中,控制邏輯6使用用于預先讀取存儲在基本指令隊列10中的活動線程的指令的時鐘周期。控制邏輯6在以下的幾種情況下盜用這些時鐘周期(1)線程切換指令隊列14還沒有裝入待用線程指令;(2)還未處理由于預讀取待用線程的指令而造成的指令高速緩沖存儲器未命中;(3)沒有需要訪問指令高速緩沖存儲器4的位于基本指令隊列10中的分支指令及由多個處理流水線所處理的指令。若滿足這些條件,則控制邏輯6生成待用線程指令的地址,并訪問來自于至少是指令高速緩沖存儲器4或主存儲器和/或存儲器子系統(tǒng)2的指令,并輸出一個線路填充旁路信號,使得指令傳送多路器8輸出預讀取的待用線程指令??刂七壿?還使線程切換指令隊列14能存儲這些指令,而基本指令隊列10不能存儲這些指令。為了清楚起見,未示出從控制邏輯6到基本指令隊列10及線程切換指令隊列14的使能/禁止控制線路。
可以根據所需的操作特征設置基本指令隊列10的大小及線程切換指令隊列14的大小。但是,在一個優(yōu)選實施例中,所設置的線程切換指令隊列14的大小使得線程切換指令隊列14所存儲的指令多于在一個時鐘周期內可被多個處理流水線接收的指令。
當發(fā)生線程切換時,控制邏輯6在一個時鐘周期內將線程切換信號的狀態(tài)從低電平變?yōu)楦唠娖?。結果,輸出多路器16輸出由線程切換指令隊列14所存儲的指令。由于線程切換指令隊列14所存儲的指令多于可被多個處理流水線所接收的指令數,因此沒有分配給多個處理流水線的指令被指令填充多路器12所接收。指令填充多路器12根據線程切換信號的狀態(tài)變化,輸出由輸出多路器16輸出到基本指令隊列10的指令。因此,在一個時鐘周期內,從待用線程成為活動線程的指令被分配給處理流水線并傳輸給基本指令隊列10。
在該時鐘周期的結束,線程切換信號恢復它的低電平狀態(tài),指令被再一次從基本指令隊列10中分配給處理流水線。另外,控制邏輯6開始預讀取指令以填充基本指令隊列10及線程切換指令隊列14。
與現有技術的結構不一樣,根據本發(fā)明的指令分配結構省去了填充所需要的和開始從指令隊列中分配指令的總線程切換時延總時間。因此,本發(fā)明與現有技術相比在線程切換時延上減少了兩個周期。
應當理解到,本發(fā)明不限于圖2的實施例。例如,本發(fā)明僅是根據執(zhí)行兩個線程的多線程處理器描述的。但是,多線程處理器,可以執(zhí)行多個線程,其中,控制邏輯6在線程切換指令隊列14中存儲若發(fā)生線程切換時最可能成為活動線程的待用線程指令。進一步地,可以提供每個對應于一個待用線程的線程切換指令隊列,擴大指令填充多路器12及輸出多路器16以適應于增加的線程切換指令隊列。
盡管本發(fā)明是根據當前被認為是最實用且最優(yōu)選的實施例進行描述的,但是應該理解,本發(fā)明不限于所公開的實施例,相反,它覆蓋了在所附的權利要求書的精神和范圍內的各種修改和等價物。
權利要求
1.一種用于降低多線程處理器中的線程切換時延的方法,包括(a)將一個活動線程的指令存入一個基本指令隊列,所述活動線程是當前被所述多線程處理器所執(zhí)行的線程;(b)將一個待用線程的指令存入一個線程切換指令隊列,所述待用線程是當前不被所述多線程處理器執(zhí)行的線程;(c)在所述活動線程執(zhí)行期間分配所述基本指令隊列中用于執(zhí)行的指令;及(d)在發(fā)生線程切換時分配所述線程切換指令隊列中用于執(zhí)行的指令。
2.如權利要求1所述的方法,其特征在于,所述步驟(d)分配存儲在所述線程切換指令隊列中的所述指令的一部分,并進一步包括(e)在發(fā)生線程切換時將所述線程切換指令隊列中未在步驟(d)分配的指令發(fā)送到所述基本指令隊列中。
3.如權利要求1所述的方法,其特征在于,進一步包括(e)至少從指令高速緩沖及主存儲器其中之一中預先讀取用于存儲在所述線程切換指令隊列中的所述待用線程的指令。
4.如權利要求3所述的方法,其特征在于,所述步驟(e)包括(e1)判定所述基本指令隊列中是否有分支指令或要被分配以執(zhí)行的指令需要訪問所述指令高速緩沖存儲器;(e2)判定由于待用線程指令的預讀取而導致的指令高速緩沖存儲器未命中事件是否正在被處理;及(e3)當所述步驟(e1)判定出所述基本指令隊列中沒有分支指令或沒有被分配的用于執(zhí)行的指令需要訪問所述指令高速緩沖存儲器,及所述步驟(e2)判定出由于待用線程指令的預讀取而導致的指令高速緩沖存儲器未命中事件沒有正在被處理時,預先讀取所述待用線程的指令而不是所述活動線程的指令。
5.如權利要求1所述的方法,其特征在于,所述線程切換指令隊列所存儲的指令數多于在單個處理周期可被分配以執(zhí)行的指令數。
6.如權利要求1所述的方法,其特征在于,所述步驟(b)存儲多個待用線程之一的指令。
7.如權利要求1所述的方法,其特征在于,所述步驟(b)存儲位于多個線程切換指令隊列中的多個待用線程的指令,每個線程切換指令隊列與所述多個待用線程之一相關;及所述步驟(d)分配所述線程切換指令隊列中與由于線程切換而成為活動的所述待用線程相關的指令。
8.一種用于分配指令以令多線程處理器執(zhí)行的裝置,它降低了線程切換時延,包括一個存儲活動線程的指令的基本指令隊列,所述活動線程是當前被所述多線程處理器執(zhí)行的線程;至少一個存儲待用線程指令的線程切換指令隊列,所述待用線程是當前不被所述多線程處理器執(zhí)行的線程;及分配裝置,用于在所述活動線程執(zhí)行期間分配基本指令隊列中的指令以執(zhí)行,及用于在發(fā)生線程切換時,分配所述線程切換指令隊列中的指令以執(zhí)行。
9.如權利要求8所述的裝置,其特征在于,所述分配裝置分配存儲在所述線程切換隊列中的所述指令的一部分以執(zhí)行,并且當發(fā)生線程切換時,將所述線程切換指令隊列中未分配以執(zhí)行的指令傳輸到所述基本指令隊列。
10.如權利要求9所述的裝置,其特征在于,所述分配裝置包括第一多路器,用于接收所述基本指令隊列的輸出及所述線程切換指令隊列的輸出,并根據表明一個線程切換的線程切換信號輸出所述基本指令隊列的所述輸出及所述線程切換指令隊列的所述輸出之一;及第二多路器,用于接收所述第一多路器的輸出及用于存儲在所述基本指令隊列中的指令,并根據所述線程切換信號輸出所述第一多路器及用于存儲在所述基本指令隊列中的指令之一。
11.如權利要求8所述的裝置,其特征在于,所述線程切換指令隊列至少存儲預先從指令高速緩沖存儲器及主存儲器之一讀取的所述待用線程的指令。
12.如權利要求8所述的裝置,其特征在于,所述線程切換指令隊列存儲的指令數多于在單個處理周期能被分配以執(zhí)行的指令數。
13.如權利要求8所述的裝置,其特征在于,所述線程切換指令隊列存儲多個待用線程之一的指令。
14.如權利要求8所述的裝置,其特征在于,進一步包括存儲多個待用線程的多個線程切換指令隊列,每個線程切換指令隊列與所述多個待用線程之一相關;及所述分配裝置分配所述多個線程切換指令隊列之一中由于線程切換而成為活動態(tài)的所述待用線程的指令。
15.如權利要求8所述的裝置,其特征在于,所述分配裝置包括一個多路器,其中一個輸入與所述基本指令隊列相連,另一個輸入與所述線程切換指令隊列相連。
全文摘要
一種用于降低多處理器中的線程切換時延的方法和裝置。其在基本指令隊列中存儲活動線程的指令,在線程切換指令隊列中存儲待用線程的指令。在活動線程執(zhí)行期間,從基本指令隊列中分配指令以執(zhí)行。發(fā)生線程切換時,從線程切換指令隊列中分配指令以執(zhí)行。同時,存儲在線程切換指令隊列中的指令被傳輸給基本指令隊列。從而,消除了將待用線程的指令重新填充到基本指令隊列的總時間。
文檔編號G06F9/38GK1195135SQ98106048
公開日1998年10月7日 申請日期1998年3月6日 優(yōu)先權日1997年3月28日
發(fā)明者威廉姆·托馬斯·弗里恩, 菲力普·羅格斯·黑列三世 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
武宣县| 日喀则市| 三江| 突泉县| 靖安县| 丹寨县| 平昌县| 宜昌市| 青浦区| 深州市| 汉川市| 肃北| 湘潭县| 侯马市| 厦门市| 大港区| 岱山县| 罗江县| 东方市| 新竹县| 嵊泗县| 滦南县| 剑川县| 汶川县| 两当县| 华池县| 葫芦岛市| 潍坊市| 姜堰市| 山西省| 商洛市| 平度市| 繁昌县| 阿合奇县| 响水县| 湖南省| 荣昌县| 永登县| 江城| 舞阳县| 沁水县|