提供了用于以流水線方式執(zhí)行指令的改進技術,這種流水線方式可減少當執(zhí)行依賴性指令時產生的停止。通過使用一個具有彼此延遲的執(zhí)行單元的級聯的流水線排列可減少停止。這種級聯延遲排列通過將依賴性指令調度至不同的流水線在不同的時間執(zhí)行,而允許依賴性指令在一個共同的發(fā)送組內發(fā)送。
【技術實現步驟摘要】
本專利技術一般涉及流水線處理器,尤其是涉及到使用彼此延遲的執(zhí)行單 元的一種級聯排列的處理器。背景沖支術典型地,計算機系統包含幾個集成電路(IC),包括一個或多個用于處理計算機系統中的信息的處理器。現代的處理器經常以流水線的方式處 理指令,按一系列步驟執(zhí)行每條指令。典型的,每個步驟由流水線中一個 不同的級(硬件電路)執(zhí)行,每個流水線級在一個給定的時鐘周期內按其 步驟執(zhí)行一條不同的指令。因而,如果一個流水線滿負荷,那么每個時鐘 周期就要處理一條指令,從而增加了吞吐量。來看一個簡單的例子, 一個流水線可包括三級加載(從存儲器讀取 指令),執(zhí)行(執(zhí)行指令),以及存儲(存儲結果)。在第一個時鐘周期 內,第一條指令^流水線加載級。在第二個時鐘周期內,該第一指令進 入執(zhí)行級,同時釋放了加載級來加載第二條指令。在第三個時鐘周期內, 第一條指令的執(zhí)行結果可以由存儲級存儲,同時執(zhí)行第二條指令并加載第 三條指令。不幸的是,由于在一個典型指令流中固有的依賴性,當執(zhí)行一條指令 的執(zhí)行單元在等待前一條指令執(zhí)行產生的結果時,傳統的指令流水線通常 會遭受停止(stall)(此時流水線級并沒有執(zhí)行)。例如, 一條加載指令 可能依賴于前一條指令(比如,另一條加載指令,或者對基址添加偏移) 來提供將被加載的數據的地址。再例如, 一條乘法指令可能依賴于一條或 多條先前的加載指令的執(zhí)行結果來作為其操作數之一。在這兩種情況下, 一個傳統的指令流水線都將停止至先前指令的結果可用時。停止可能持續(xù)幾個時鐘周期,例如,如果先前的指令(后續(xù)的指4S^賴于此指令)將不 存在于一級高速緩存中的數據作為目標(導致一級高速緩存缺失,,), 并且必須對相對慢的二級高速緩存進行訪問的話。因而,這樣的停止由于 流水線的未充分利用必將而導致性能大幅降低。相應的,需要一種改進的以流水線方式處理指令的機制,優(yōu)選的是減 少停止的機制。
技術實現思路
本專利技術的實施例提供了用于指令的流水線執(zhí)行的改進的方法及裝置。一個實施例提供了在一個多核處理的環(huán)境下用于預解碼用于執(zhí)行的指 令的方法。該方法大體包括由第一個處理器內核接收第一行用于執(zhí)行的指 令,用一個共用的預解碼器對第一行指令進行預解碼,將預解碼的第一行 指令從共用的預解碼器傳送至第一處理器內核以l更執(zhí)行,由第二個處理器 內核接收第二行用于執(zhí)行的指令,用共用的預解碼器對第二行指令進行預 解碼,并將預解碼的第二行指令從共用的預解碼器傳送至第二處理器內核 以便執(zhí)行。一個實施例提供了一種集成電路裝置。該裝置總體包括多個處理器內 核及一個共用的預解碼器,該預解碼器被配置為讀取指令行,對指令行進 行預解碼并將預解碼的指令行傳送至處理器內核以便執(zhí)行。一個實施例提供了一種集成電路裝置。該裝置總體包括多個級聯的延 遲執(zhí)行的流水線單元,每個流水線單元至少擁有第一及第二執(zhí)行流水線,其中,被發(fā)送至執(zhí)行流水線單元的一個共同發(fā)送組(issue group)中的指 令在被執(zhí)行于第二個流水線之前在第一個執(zhí)行流水線中被執(zhí)行,以及,轉 發(fā)路徑,其用于將在第一個執(zhí)行流水線中執(zhí)行第一條指令的結果轉發(fā)至第 二個執(zhí)行流水線中,以用于執(zhí)行第二條指令,其中第一及第二執(zhí)行流水線 中的至少一個在浮點操作數上操作,以及,共用的預解碼及調度電路,其 被配置為接收將由流水線單元執(zhí)行的指令行,對指令行進行預解碼以形成指令組,借此每個組中第 一及第二指令被調度在流水線單元之一的第 一及 第二執(zhí)行流水線中執(zhí)行。附圖說明為了使實現本專利技術上述的特征、優(yōu)點及目標的方式可以被詳細的理解, 將通過參考在附圖中示出的實施例對本專利技術進行更加詳細的描述(在上文簡單描述ii)。然而,要提到的是附圖表示的僅僅是本專利技術典型的實施例,并不是要 限制其范圍,本專利技術允許還有其他等效的實施例。圖i是示出根據本專利技術的一個實施例的系統的框圖。圖2是示出根據本專利技術的一個實施例的計算機處理器的框圖。圖3是示出才艮據本專利技術的一個實施例的處理器內核的框圖。圖4A和4B對傳統流水線單元與根據本專利技術實施例的流水線單元的性 能作了比較。圖5示出了根據本專利技術的實施例的示例性整數級聯延遲執(zhí)行流水線單元o圖6示出了根據本專利技術的實施例用于調度;Oc送指令的示例性操作的 流程圖。圖7A-7D示出了通過圖5所示流水線單元的指令流。圖8示出了根據本專利技術的實施例的一個示例性浮點級聯延遲執(zhí)行流水 線單元。圖9A-9D示出了通過圖5所示的流水線單元的指令流。圖10示出了根據本專利技術的實施例的一個示例性向量級聯延遲執(zhí)行流 水線單元。圖11示出了在多個處理器內核間共用的一個示例性預解碼器。圖12示出了可由圖11的共用預解碼器執(zhí)行的示例性操作。圖13示出了一個示例性共用預解碼器。圖14示出了一個示例性共用預解碼器流水線排列。圖15示出了在多級高速緩存中共用的預解碼的指令行。圖16示出了用于處理先前預解碼的指令行的示例性操作。圖17示出了用于在多級高速緩存中存儲預解碼指令行的高速緩存層 級結構。具體實施例方式本專利技術主要提供了 一種以流水線的方式執(zhí)行指令的改進才支術,這種才支 術可以減少在執(zhí)行依賴性指令時產生的停止。可以通過使用一個含有彼此 延遲的執(zhí)行單元的級聯流水線排列來減少停止。通過調度依賴性指令在不 同的流水線中在不同的時間執(zhí)行,這種級聯的延遲流水線排列允許在一個 共同的發(fā)送組中發(fā)送依賴性指令。例如,第一條指令可以被調度在第一個較早或較少延遲的流 水線中執(zhí)行,而第二條指令(依賴于執(zhí)行第一條指令得到的結果)可以被 調度在第二個較延遲或較多延遲的流水線中執(zhí)行。通過調度第二 條指令在一個相對第一個流水線延遲的流水線中執(zhí)行,第一條指令的結果 可以在剛好要執(zhí)行第二條指令的時候可用。雖然第二條指令的執(zhí)行仍然延 遲至第 一條指令的結果可用時,但是后續(xù)的發(fā)送組可以在下 一個周期中進 入級聯流水線,從而增加了吞吐量。換言之,這樣的延遲僅僅在第一個發(fā) 送組中可以看到,,,并對后續(xù)的發(fā)送組隱藏,從而允許在每個流水 線周期發(fā)送不同的發(fā)送組(即使含有依賴性指令)。在下文中,將會參考本專利技術的實施例。然而,應當理解本專利技術并不限 于特定的描述的實施例。相反,下述特征及元素的任何組合,無論是否涉 及到不同的實施例,都4皮認為實施和實現了本專利技術。更進一步地,在各種 實施例中,本專利技術提供了比原有技術更多的優(yōu)點。然而,雖然本專利技術的實 施例可以實現比其他可能的解決方案和/或現有技術更多的優(yōu)點,但是一個 特定優(yōu)點是否由一給定的實施例實現,這并不是本專利技術的限制。因此,下 述方面、特征、實施例及優(yōu)點僅僅是說明性的,并非所附權利要求的元素 或限制,除非在權利要求中明確說明。同樣地,提及本專利技術,,時亦不應的元素或限制,除非在權利要求中明確敘述。下文將對附圖中所示的本專利技術的實施例進行詳細描述。這些實施例是 示例并且凈R夠詳細地描述以傳達本專利技術。然而,提供細節(jié)的數量并不是要限制實施例的預期變化;相反,意圖是本專利技術包含了落入所附權利要求 中定義的本專利技術的精神及范圍的全部修改、等價物、以及其他選擇。本專利技術的實施例可以與一個系統例如計算機系統一起使用,并在下文 中相對于該系統被描述。正如在這里使用的, 一個系統可以包含使用一個 處理器及一個高速緩沖存儲器的任何系統,包括個人計算機、互聯網電器 (internet a本文檔來自技高網...
【技術保護點】
一種在多內核處理環(huán)境中預解碼用于執(zhí)行的指令的方法,包括:由第一處理器內核接收用于執(zhí)行的第一行指令;用共用預解碼器對第一行指令進行預解碼;將預解碼的第一行指令從共用的預解碼器發(fā)送至第一處理器內核以便執(zhí)行;由第二處理器內核接收用于執(zhí)行的第二行指令;用共用預解碼器對第二行指令進行預解碼;以及將預解碼的第二行指令從共用的預解碼器發(fā)送至第二處理器內核以便執(zhí)行。
【技術特征摘要】
US 2006-12-13 11/610,1101.一種在多內核處理環(huán)境中預解碼用于執(zhí)行的指令的方法,包括由第一處理器內核接收用于執(zhí)行的第一行指令;用共用預解碼器對第一行指令進行預解碼;將預解碼的第一行指令從共用的預解碼器發(fā)送至第一處理器內核以便執(zhí)行;由第二處理器內核接收用于執(zhí)行的第二行指令;用共用預解碼器對第二行指令進行預解碼;以及將預解碼的第二行指令從共用的預解碼器發(fā)送至第二處理器內核以便執(zhí)行。2. 權利要求l中的方法,進一步包括 由第三處理器內核接收用于執(zhí)行的第三行指令; 由共用預解碼器對第三行指令進行預解碼;以及 將預解碼的第三行指令從共用的預解碼器發(fā)送至第三處理器內核以4吏執(zhí)行。3. 權利要求l中的方法,進一步包括 接收先前由共用的預解碼器預解碼的第三行指令; 將先前預解碼的第三行指令從共用的預解碼器發(fā)送至第三處理器內核以便執(zhí)行。4. 權利要求3中的方法,其中第三行指令不經過進一步的預 解碼,從共用的預解碼器被發(fā)送至第三處理器內核以便執(zhí)行。5. 權利要求1中的方法,第一行指令包括定點指令,而且第 二行指令包括浮點指令。6. 權利要求l中的方法,進一步包括 以第一時鐘頻率運行共用的預解碼器;以及 以至少兩倍于第一時鐘頻率的第二時鐘頻率運行第一及第二 處理器內核中的至少一個。7. 權利要求1中的方法,指令預解碼包括通過設置停止位確 定將被平行發(fā)送至處理器內核的發(fā)送指令組。8. 權利要求l中的方法,進一步包括 在多級高速緩存中存儲第一及第二預解碼的指令行。9. 一種集成電路裝置,包括 多個處理器內核;以及共用預解碼器,其被配置為讀取指令行、預解碼指令行并將 預解碼的指令行發(fā)送至處理器內核以便執(zhí)行。10. 權利要求9中的裝置,其中至少一個處理器內核包括擁有至少第 一及第二執(zhí)行流水線的級聯延遲執(zhí)行流水線單 元,其中,被發(fā)送至執(zhí)行流水線單元的一共同發(fā)送組中的指令在 被執(zhí)行于第二執(zhí)行流水線之前在第一執(zhí)行流水線中被執(zhí)行,而且 至少第一及第二執(zhí)行流水線之一在浮點操作數上操作;轉發(fā)路徑,用于將在第一執(zhí)行流水線中執(zhí)行第一指令的結果 轉發(fā)至第二執(zhí)...
【專利技術屬性】
技術研發(fā)人員:DA盧伊克,
申請(專利權)人:國際商業(yè)機器公司,
類型:發(fā)明
國別省市:US[美國]
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。