TW200951811A - System and method of selectively committing a result of an executed instruction - Google Patents

System and method of selectively committing a result of an executed instruction Download PDF

Info

Publication number
TW200951811A
TW200951811A TW098107159A TW98107159A TW200951811A TW 200951811 A TW200951811 A TW 200951811A TW 098107159 A TW098107159 A TW 098107159A TW 98107159 A TW98107159 A TW 98107159A TW 200951811 A TW200951811 A TW 200951811A
Authority
TW
Taiwan
Prior art keywords
instruction
result
execution
pipeline
comparison
Prior art date
Application number
TW098107159A
Other languages
English (en)
Inventor
Lucian Codrescu
Robert A Lester
Charles J Tabony
Erich J Plondke
Mao Zeng
Suresh K Venkumahanti
Ajay A Ingle
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW200951811A publication Critical patent/TW200951811A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30069Instruction skipping instructions, e.g. SKIP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

200951811 六、發明說明: 【發明所屬之技術領域】 本揭示案大體係關於一種選擇性提交已執行指令之蚌果 之系統及方法。 "° 【先前技術】 許多演算法基於某一條件選擇性地執行運算。在軟體程 式碼中,可藉由使用比較指令,接著使用基於比較運算之 結果視情況跳過程式碼之部分的分支指令,來實現此選擇 性執行。一些架構可允許運算自身有條件地執行,藉此消 除分支運算。然而’仍然存在對特定條件之結果的相關 性。 通常,在極長指令字(VLIW)處理器架構中,可執行比 較運算’ 來自比較指令之結果可在某一正數目的處理器 循環後利用。纟電腦程式中,比較運算後常為分支運算, 在該情況下,比較運算之結果用以判定是否執行分支運 算。通常,使用編譯器來組織指令以減少歸因此等相關性 之管線暫停。 在非VLIW處理器架構中,通常利用分支預測技術推測 性地消除分支之相關性。然而,此分支預測增加了複雜性 且增加了處理器核心之功率消耗。由於VLIW處理器架構 具有按軟體分組之許多正在進行中的指令,故分支預測通 常在VLIW處理器架構中受到限制或不存在 '然而,比較 與分支運算之間的相關性仍然存在。因此,存在對於減少 歸因於^日7相關性的皆線暫停之改良的處理器架構之需 138806.doc 200951811 求。 【發明内容】 在一特定實施例中,揭示—種方法,其包括在—具有包 括第執行官線及一第二執行管線之複數個並行的執行 s線之處理器處接收一指令封包,該指令封包包括一第一 指令相關於該第一指令之第二指令。該方法進一步包 ^並仃地執行該第—指令之至少—部分及該第二指令之至 ; ^方法亦包括基於與藉由該第一執行管線執行 4第#曰令有關之一第一結果選擇性地提交藉由該第 行管線執行該第二指令之至少一部分的一第二結果。 二另-特定實施例中’揭示一種方法,其包括在一具有 :數個並行的執行管線之處理器處接收—包括—比較指令 弟一指令之;^^ 人 曰7封^。該第二指令相關於該比較指 々。該方法推_ 卜 ❹ —步匕括:解碼該比較指令及該第二指令以 第:指交該第二指令有關—並行地执行 選擇性操控:提:;線令:及部分基於該第二指令及該預測 執行指令之ί個:例中’一種處理器包括經調適以並行地 比較指令之第_ =官線。該多個執行管線包括—執行一 第二指令之執仃管線及-執行-相關於該比較指令的 時執行:該處該比較指令及該第二指令經同 較指令之執行邦定m電路,其經調適以將自該比 該第二執、弟結果自该第一執行管線提供至 執仃管線用於由該第二指令使用。 138806.doc 200951811 由該系統及該等方法之實施例提供之—特定優勢在於, 編譯器可將比較指令與使用比較指令之結果的分支指令一 起分組至—單—封包中,用於由處理器同時執行,^引 入與相關性有關之潛時。 ,提供另-特定優#,其在於,比較指令可與相關於比較 運算之結果的諸如算術及記憶體載入指令之其他指令分組 在一起且與其他指令並行地加以執行。提供再定優 勢,其在於,此等指令可在同一循環中及在執行單元需要 提交其結果前使用比較指令之結果,藉此防止不必要的寫 入操作。 在審閱整個申請案之後,本揭示案之其他態樣、優點及 特徵將變得顯而易見,整個申請案包括以下部分:圖式簡 單說明、實施方式及申請專利範圍。 【實施方式】 圖1為包括有條件地提交並行執行的指令之邏輯的處理 器100之一特定說明性實施例之方塊圖。處理器1〇〇包括一 經由匯流排介面108耦接至一指令快取記憶體i丨〇之記憶體 102處理器1 〇 〇亦包括一經由匯流排介面1 〇 8麵接至記憶 體102之資料快取記憶體ι12。指令快取記憶體11〇經由匯 流排111耦接至序列器114。序列器114亦接收可自中斷暫 存器(未圖示)擁取之一般中斷116。在一特定實施例中,指 令快取記憶體110可經由複數個當前指令暫存器耦接至序 列器114 ’該複數個當前指令暫存器可耦接至匯流排1〗J且 與處理器10 0之特定線緒相關聯。在一特定實施例中,處 138806.doc 200951811 理器100為包括六個線緒之交錯的多線緒處理器。 在一特定實施例中,匯流排U1為—百二十八位元028 位元)匯流排,且序列器114經組態以經由包括每一者具有 三十二(32)個位元之長度之多個指令的指令封包自記憶體 • 1〇2擷取指令。匯流排111耦接至第-指令執行單元118、 . 苐二指令執行單元12G、第三指令執行單元122及第四指令 執行單元124。每一指令執行單元118、12〇、μ、【μ可 _ 、經由第一匯流排⑶糕接至通用暫存器檔案126。通用暫存 器播案m亦可經由第二匯流排130輕接至序列写114、資 料快取記憶體m及記憶體102。在—特定說明性實施例 中,資料快取記憶體112可包括—記憶體儲存緩衝器132以 基於尚未判定之條件為待儲存之資料提供—臨時 置。 處理器100亦可包括-監督器控制暫存器134及全域於制 暫存器136以儲存可由序列器内之控制邏輯存取以散是 〇 否接受中斷及控制指令之執行的位元。處理器⑽亦包括 一述詞邏輯電路138及述詞暫存器140,該兩者麵接至執行 單元m、m、122及124。在—特定實施例中述詞暂存 • ^40可包括四個讀取/寫入8位元暫存器,其保持純量及 ' 向量比較運算之結果。比較結果可由執行單元118、12〇、 ⑵及以經由匯流排142寫入至述詞暫存器14〇。述詞邏輯 電路勵調適以自述詞暫存器14〇掏取資料且將比較提供 提供至需要比較結果之選定執行單元。在-特定實施例 中’述詞邏輯電路138可經礙入於每一執行I元川、 138806.doc 200951811 及124中,且可基於與分支指令相關聯的指示符 之存在自述詞暫存器14〇擷取資料。舉例而言,分支指令 可包括識別待用於分支指令之條件資料為在同-指令封包 中包括的比較結果之位元設定或某一其他指示符。此指示 符可觸發述詞控制邏輯自述詞暫存器14〇擷取比較結果。 述詞邏輯電路138及述詞暫存器⑽由處理器⑽用以將 來自第-執行管線之執行的早期階段的比較指令之結果提 供至第二執行管線’用於與分支指令、邏輯運算指令(亦 即,邏輯「及(AND)」、邏輯「或(〇R)」、邏輯「反及 「互斥或(exclusive- (NAND)」、邏輯「反或(N〇R)」、邏輯 〇R)」或其他邏輯運算)、載入指令、儲存指彳、算術指 令、另一條件性指令或其任何組合一起使用。在一特定實 施例中,述詞邏輯電路138經調適以擷取來自一執行管線 之結果,用於由另一執行管線使用以允許分支在與產生比 較結果(述詞)相同的執行循環内使用述詞。在一特定實施 例中,分支指令可由執行單元12〇使用來自由執行單元118 執行的比較指令之結果在計算比較結果後的大致零觀測循 環執行。雖然在習知VLIW架構中的比較運算之結果可在 許多循環後利用,但處理器100利用述詞邏輯電路138以允 許分支指令在自執行管線可利用之時間中接收比較運算之 結果。因此,比較結果可由同一指令封包之分支指令在該 等指令正並行執行的同時使用,亦即,分支指令在與正判 定比較之結果相同的執行循環中接收比較結果。 在一特定實施例中’述詞邏輯電路138經說明為在執行 138806.doc 200951811 單元118、120、122及124外部之電路組件。在一替代實施 例中’述詞邏輯電路138可經嵌入於執行單元118、ι2〇、 122及124中之每一者内。在另一替代實施例中,述詞邏輯 電路138可包括於序列器U4中。 在一特定說明性實施例中,指令之封包係由序列器114 經由匯流排111自指令快取記憶體11〇提取。序列器丨丨4將 指令提供至指定之指令執行單元118、12〇、122及124。該
等指令執行單元118、12G、122及124並行執行該等指令,
且視指令之間的相關性而定,指令執行單元US、I 122及124經調適絲於第—指令之結果有條件地提交來自 第二指令之結果。 舉例而言,在一特定實施例 H 第—杉令,其中第二指令相關於第一指令之结 =。處理器刚經調適以接受與流改變指令(諸如,跳躍指 I 令或其他流改變指令)、載人指令、健存指 " 、另—相關性運算或其任何組合-起分组之 比較指令。詳古少 . ^刀,且之
-點處將比如。处理益100經調適以在執行管線尹之 點處將比較運算之社I 夠早以Mm 述㈣存器⑽,該點足 约早以使侍可將結果用於 一分立、 執仃擔裱中來判定是否選取 疋 入或儲存特定資料,判定第—έ士果i g _ 結果是否正確,或其任何组合。 -果或第- 在特疋實例中,處理器1〇〇可利用 132臨時儲存來自 …體儲存緩衝器 之計算與將個執料元之結果,以提供結果 隐肢102之寫回操作之間的延 138806.doc 200951811 遲舉例而5,*待將一條件或值提供至記憶體〗〇2時, 記憶體儲存緩衝㈣2提供料。在無記憶體儲存緩衝器 Π2之情況下,可能過早地需要條件及值以致結果尚未準 備好。記憶體儲存緩衝器132提供獲得條件之結果的足夠 延遲。述詞邏輯電路〗38可控制執行單元ll8、i2〇、122及 124將結果寫入至記憶體儲存緩衝器132 ,直至判定一條 件’及接著根據判定之條件將結果中之僅—者寫人至記憶 體位置。 舉例而言,處理器100可允許並行地執行比較指令及相 關於來自比較指令之結果的分支指令。舉例而言,比較指 令可由執行單元丨18處理,且分支指令可㈣由執行單元 120執行。》支指令可包括指示應自同—封包中之比較指 v而非自來自另一封包之先前執行之指令的結果導出比較 …果之位元或其他記法。在執行管線内,述詞邏輯電路 138可使比較私令之結果被提供至執行單元HQ,使得可在 提交指令之結果前將結果用於分支指令中。藉由使比較運 算之結果在執行管線中早早地可利用,在提交結果前,分 支指令可使用該結果判定正相結果。由於通f早早地在 管線中判定了分支方向,故分支指令通常不具有提取正確 的下-個指令封包之時間以避免在選取一分支的情況下的 b ’’泉暫杇然而,在一特定實施例中,述詞邏輯電路丨3 8 亦可經調適以使用早先的比較結果判定是否選取該分支 及/或預測7C否將提父執行管線之資料。述詞邏輯電路 可與序列器114通信(例如’經由未圖示之匯流排)以起始提 138806.doc 200951811 取操作來根據預測擷取指令。 圖2為有條件地提父並行執行的指令的處理器之一第 二特定說明性實施例之方塊圖。處理器2〇〇包括一指令快 取記憶體202,其經由匯流排2〇3與序列器2〇4通信。指令 . 快取記憶體逝可將指令之封包提供至序列器2G4。序列器 . 204與第一執行管線210及第二執行管線212通信以提供自 才曰令之封包導出的指令。第一執行管線21〇及第二執行管 φ 線212執行該等指令且有條件地將指令之結果提交至錯存 緩衝器216 若滿足條件,則提交至記憶體2 i 8。在—特 定實施例中,記憶體218(諸如,資料快取記憶體)可耦接至 一匯流排以將資料傳遞至一記憶體位置,諸如,在圖1之 記憶體102處之位置。 處理器200亦包括一控制邏輯電路2〇6及一述詞暫存器 2〇8。述詞暫存器·經調適以接收由帛一執行管線21〇及 第二執行管線212執行的比較指令之結果。控制邏輯電路 Φ 2❽6經調適以將來自述詞暫存器2 〇 8之此等結果選擇性地傳 遞至第一執行管線210及第二執行管線212中之一者,用於 在並行執行的指令中使用。控制邏輯電路206亦可經由匯 * 流排207與序列器204通信。 - 在一特定實施例中,序列器204可經由匯流排2〇3自指令 快取記憶體202接收包括第一指令及第二指令的指令之封 包。第—指♦可相關於與第一指令之執行有關的結果。舉 例而。,第一指令可為使用第一指令(諸如,比較指令)之 結果判定是否選取一特定分支之分支指令。第一執行管線 138806.doc -11 - 200951811 可人執仃第—指令,及第二執行管線川可並行地執行第 ::二第一執行單元210將第—指令(亦即,比較指令)之 至述詞暫存器208。第二執行管線212接收來自述 a司暫存器2〇8之έ士罢,釐-4b人 要刻〜β 、·。果纟在第之執行期間使用該結 制邏輯7 H指令之結果。在—特定實施例中,控 制邏輯電路寫將結果提供至第二執行管線212。在另一特 ΐ=中’第—執行管線210及第二執行管_可包括 控制邏輯電路206。 ❹ 人:二定實例中,序列器204可接收包括一第一比較指 ν及第一分支指令的指令之封包。第二八 於第一比較指令之結果。在_特 刀曰7 °目關 ^ 符疋貫例中,第二分支指今 可使用嵌入於指令内之記法(諸如 ^ 位兀旗軚或其他指示 Γ八:二較指令之相關性。在第-比較指令及 ΐ:=Γ執行期間,第—執行管線21°將比較結果 ❹ ㈣與第二執行管線叫用二仃:Υ,:制邏輯電 Α八八用H ’第二執行管線2Ϊ2 在刀支“之執行中使用該結果。同時,控制 挪可經由匯流排2G7將—信號提供至序列器2Q4以起始一 美取細作’以自—記憶體擷取與流改變有關的指令。早先 的指示(亦即,執行單元有可八 之預測)可由序列器用以提改變程式流 時。 #取相關的指令以減少管線潛 在另一特定實例中,當第_指令為比較指令且第二卜 為儲存指令時,第—執行管線川可心較結果寫入^ 138S06.doc -)2- 200951811 詞暫存If 208 ’且控制邏輯電路咖可在第二執行管線 一結果前將該結果提供至第二執行管線犯。在此例中, 可在起始寫回前取消與第二執行管線相關聯之寫回操作。 4者’可臨時地將f料提交至儲存緩衝器叫以在 . 目操作前提供額外的延遲,藉此允許將第—執行管線之比 .1 交結果用以防止不必要的寫回操作,在該情況下,不需要 或可拋棄來自第二執行管線之資料。 Φ 在另—特定實财,可將比較指令與㈣於比較指令之 結果的算術或記憶體載入指令一起分組在一封包中。第一 執行管線210可執行比較指令且在執行循環中相對早時將 結㈣供至述詞暫存器,且可在管線中之提交結果的階段 之如取消條件性指令之結果。 一般而言,執行比較指令,讀行單元21Q及212基於比 較結果在述詞暫存器208中設定述詞位元。此等述詞位元 可接著用以有條件地執行某些指令。分支指令、載入指 ® v儲存♦曰7,術指令及多工指令為此等可有條件地執 打之指令之實例。可在述詞暫存器咖内之特定位元(諸 ."°,最低有效位元)上調節某些純量運算。相比之下,視 特疋程式碼而定,向晉;重瞀 量運异了利用來自述詞暫存器208之 . 較多位元。 入般而。處理益2〇〇可用以並行地執行資料相關性指 ::舉例而言,此等資料相關性指令可包括使用來自載入 或—較才曰7之資料的异術或其他數學或邏輯指令。在 一特定實例令,载入指令可基於比較之結果自記憶體位置 138806.doc -13- 200951811 提取資料。在一特定實施例中,可使用特定組合語言記法 (諸如 ’ dot-new(亦即’「.new」)記法、d〇t_dependenta 即,「.dep」)記法、其他記法或其任何組合)來識別此等條 件性或資料相關性指令。在一特定實例中,組合語言編譯 器可經調適以辨認此記法且按一順序次序排列包括此記法 的指令之封包。說明基於一比較指令(使用一「new」組 合語言記法)之結果有條件地載入字的條件性載入操作之 組合語法之一實例出現如下: 若p〇為真,則載入字 一在另一特定實例t,比較指令可用以判定選擇哪一運】 元:且選定運算元可用於算術運算中。說明此條件性算相 運算的組合語法之一實例出現如下·· if(P0.new)R0=SUB(R2,R3)//若抑為真則減 if(!P2.new)R2=ADD(R2,#4)//若”為假則加 、在:一特定實例中,可計算多個結果,且比較結果可用 以:疋應將哪一結果寫入至記憶體。或者,比較結果可 ㈣定是否應儲存該結果。說明—條件性儲存指令的租人 s吾法之一實例出現如下·· 、、’ 口 J^2.new)MEMw(R4)=R〇"若 p2 為假,則館存字 通节’可執行任何數目個條件性指令,包 移、移動或组人沪八 % bB 條件性轉 之 多動:,·且“令。說明一組合及轉移指 貫例出現如下: σ D〇 ^ 則
^人 if (PO.new) R1:〇 = C〇MBINE(R3 R5)"若 Μ為真 if (丨P2.neW)R2=R5//若Ρ2為假,則轉移 i38806.doc -14· 200951811 -般而言’可辨認位元旗標、指示符或特定記法(諸 如’·new(「.new」)記法),且可在封包中分組此程式 碼以利用早先的比較結果來增強處理器效能。 理器可並行地執行包括此等資料相關性指令之指钱包, 使得計算-條件^在同—指令封包之執行期間使料算的 條件之結果。舉例而言,來自一比較指令之執行的結果可 在另-指令中用以判定是否提交該等結果(亦#,將結果
寫入至記憶體)。若條件指示不應提交結&,則可取消寫 回操作。 可使用dot-new記法的方式夕一寄丨。=» Q床叼万式之實例呈現於下表i及表2 中。表1呈現C程式碼之一會你丨(¾ p±„ κ 1例1:2羊又,及表2呈現使用dot- new記法 的實例 C程式 碼之 一組合 實施。 表1 C程式碼。 C程式碼 if (R2==4) { R3 = *R4; else { R5=5; 用於支援dot-new類型之記法的# T田口„ , Α 犬只土 I ‘沄的處理益之組合級程式碼 之一代表性實例呈現於下表2中。 表2 組譯程式碼一Dot-New記法。 組譯程式碼 138806.doc -15- 200951811 P0 = cmp.eq(R2,#4) if (PO.new) R3 = MEMW(R4)//使用新產生的 p〇 if (IPO.new) R5 = #5 } 在此實例中,比較指令及新產生的述詞之多個使用經分 組於同一封包中。如上關於圖丨及圖2所論述,執行單元可 在同一執行循環中執行比較及相關性指令。一般而言,封
包中之指令不能寫入至同一目的暫存器。組譯器或編譯器 可將此等封包用旗標表示為無效。然而,允許條件性指令 目標針對同一目的暫存器,其限制條件為提交結果中之不 超過一者。
圖3為與執行管線300相關聯的多個執行階段之一特定說 明性實例之圖。執行管線3〇〇經調適以執行一第一比較指 令及一相關於第—指令之結果的第二指令。執行管線300 包括解碼階段302、一暫存器讀取階段3〇4、一第一執行 階段3〇6、一第二執行階段3〇8、一第三執行階段310及一 寫回階段312。在此實例中’省略了 一或多個提取階段, 且將執行B線3 〇〇說明為如同其開始於解碼階段3。在一 特疋實例中’階段302、304、306、308、310及3 12中之每 一者可表示時脈循環。 在此灵例中’在第二執行階段期間判定比較結果(在3 14 )且該,’Ό果在3 1 0處之第三執行階段中用以基於該比較 結果判定是提交還是取消該結果(在316處)。視正處理何類 138806.doc •16- 200951811 i之相關^日令而疋’在3 14處之比較結果經在執行管線 3⑻中足夠早地提供以允許控制邏輯操控提取管線減少暫 停。在314處之比較結果由相關性指令使用「___」記 法或指示來選擇。另外,在解碼階段302,可進行關於是 否將選取跳躍或分φ > μ. 6堆及刀支之預测。在一特定實施例中,可使用 靜態預測來進行預測。當有可能選取分支或跳躍時,預測 可用以操控提取管線以進一步減少暫停。詳言之,由於比 ❹ 較之結果直至第二執行階段期才可利用,故可能太晚了 ;致不能在無管線暫停之情況下提取下-個指令。然而, ^由添加預測(亦即,「選取跳躍/分支」、「不選取跳躍/分 」其他預測或其任何組合),控制邏輯可提取隨後指令 以防止在流改變發生的情 誤昧,π、主^ s線暫知。當靜態預測錯 =時’可清除提取管線,且可提取下—個指令封包用於處 ㈣中’多線緒處理器之每—線緒可解碼整個 封…刀以預測及/或判定其 可需要的結果。在另一特定〜,Λ X否將具有其 ^ , 5 特疋只例中,可取消寫回操作,藉 此防止至通用暫存器檔案的寫入操作。 在一特定實例令,為了計時目的,可能有必要在比較之 从— 處)則在第二執行階段中提交至寫回摔 圖艸說明夕 了將、·•。果儲存於臨時暫存器中,諸如, 在某-稍㈣^體儲存緩衝^32°記憶體儲存緩衝器可 提交以儲存資I:點h至記憶體内。在此實例中,可延遲 存㈣且制經緩衝之寫Μ防止應被取消的寫 138806.doc -17- 200951811 回操作。 圖4為將指令編譯至包括一比較指令及一相關於比較指 令之結果之第二指令的封包内之一方法之一特定說明性實 施例之流程圖。該方法包括經由一或多個編譯階段將複數 個極長指令字(VLIW)指令編譯至機器可讀指令中(在4〇2 處)。繼續進行至404,該方法進一步包括使機器可讀指令 形成(亦即,分組)至包括指令之複數個封包中,該等指令 可由多線緒處理器並行地執行。該複數個封包中之至少— 〇 封包包括能夠同時執行之一第一指令及一第二指令。該第 二指令相關於該第-指令。第—及第二指令經同時執行。 在一特定實例中,第-指令之結果用以在同一處理循環中 處理第二指令。方法終止於4〇6。 在一特定實施例中,複數個^ 咖 致個封包中之一封包包括目標針 對同一目的暫存器之至少兩個 1、 陶個條件性指令。雖然習知編譯 裔可返回誤差,但可允畔 ° μ至夕、兩個條件性指令目標針對 同—目的暫存器,其限制條# ^ 市仵為可提交僅一條件性指令。 ❹ 圖5為有條件地提交並行 ^ 0« μ ^ . 丁的私々的一方法之一特定 π月哇貫施例之流程圖。該 執行管線之處理匕括在具有複數個並行的 艮<處理器處接收包括一 #北人 封包,其中第二指令相關於第H " 弟之 複數個並行的執行管線可包括;::結果(在502處)。該 行管線。該第一指令可仃管線及-第二執 於比較指令之姓里 7 ’及該第二指令可為基 之結果之條件性指令。 括並行地執行兮 則進至504,該方法包 τ »褒第—指令卜 ^ 4分及該第二指令之至 138806.doc -18- 200951811 部分。在一特定實例 及該第二指令之—部分,且第執行管線可解碼該第-令,及第二執行管線可同時執執行管線可執行第一指 二執行管線可解碼第—指令二指令。舉例而言,第 定與第一指令之—部分相關聯的::以擷取—位元值或判 /繼續至506 ’執行管線判定是否提 心令之第-結果指示應提交執 。果。若執行第一 ❹ ❹ 即,寫入至通用暫存器槽案第J“之第二結果(亦 體、至另一記憶體或其、 °己隐體、至快取記憶 且提交執行第二指令之第_7^ ° )’則方法可前進至508, 一結果。或者,若笛—& 不=交第二結果,則方法前進至”。,且取示 之提父。在此個例中,方法包括基於與第—扑:结果 關的第一結果選擇性提交執行第二指令之第二果Π 終止於512。 心弟—結果。方法 在一特定實施財括在執行 得(讀取)第一及第二指令。第一指令之第一結果=取 述詞結果。第-指令可為比較指令或產生述詞之另一類型 之扣令。述詞可提供是是否將選取分支或流改變的早先指 不。在-特定實例中,儲存指令可係基於比較指令而為條
件性指令。在此個例中,可基於比較之結果取消在執行管 線之寫回階段的寫回操作。 S 在另一特定實施例中,指令之封包可包括使用來自同時 執行的指令之述詞資料的第三指令。在一特定實例中基 於該資料將第一向量與第二向量合併以產生合併之資科, 138806.doc -19· 200951811 且根據來自述詞暫存器之資料基於合併之資料輪出第 量0 在另-實例中,第-指令為tb較指令,且第二“_ 躍指令。在此實例中’該方法包括解碼第―及第二扑入之 一部分以預測是否將提交第二結果及根據㈣提 包。 在-狀實施例中,第二指令可包括㈣比較指令之第 一結果應由第二指令使狀—位元或指示符。使第—果 可用於第二齡,使得在提交第二結果前第二指令可^定 一正確結果。在另-特定實例中,該方法可包括當不提2 第二結果時,取消由第二指令之執行而觸發的異常。 在另-特定實例中,該方法可包括並行執行指令及基於 述詞暫存器中之-位元判定第—指令及第:指令中之一者 是否具有-有效述詞。該方法亦可包括根據有效述詞提交 第一結果及第二結果中之一者,而非兩者。 在另-特定實财,該方法可包括並行地將第—結果寫 入至-第-位址及將第二結果寫入至一第二目的地位址。 另外,該方法可包括當第-結果指示應抛㈣二結果時抛 棄该第二結果。提交結果可涉及執行以下操作中之一者: 寫回操作、儲存操作、載人操作、算術運算及流改變操作 (諸如,跳躍或分支操作)。 圖6為根據預測的條件性流改變操控一提取 之-特定說明性實施例之流程圖。在6〇2處,該方法包括 在具有複數個並行的執行管線之處理器處接收一包括一比 138806.doc -20- 200951811 !指:及一第二指令之封包。該第二指令相關於該比較指 7 則進至604,該方法谁—半—1 指令以判定盥β ν匕括解碼比較指令及第二 實例中八疋否將提交第二指令有關的預測。在-特定 進^雜制可為㈣列㈣或在執行單元錢預測邏輯 = =預測。繼續進行㈣6,該方法包括並 羽•仃第一指令及第二指令。 ,該方法包括部分基於第二指令且基於預測 參 ❿ 、:可載入t選取」路徑操控提取管線。舉例而言,提取管 「㈣敌 選取路徑有關的指令。繼續至610,若 果選擇性提交第二卜=至612,且基於第-結 選定钟不正端h 結果°㈣’在㈣處’若 繼續心 財法前進至614,且清除提取管線。 Γ處:至616’該方法包括沿著「未經選取」(亦即,在 未預測之路徑)路徑操控提取管線。 、列將撰抱4實例中’分支可為推測性分支。若預測邏輯預 測將選取推測性分彡, 丹頂 根據預測載入提取線。若預剩 確則管線可經清除且經操控至不同路徑。 ^特疋實例中,選擇性操控提取管線 指:且當預測指示流改變指令有可能被提交二 ^,通的机改變起始自記憶體的指令之操取。在另—實 預測起選擇性操控提取管線包括當預測指示流改變時基於 :、始自記憶體的與流改變有關的指令之擷取。或者, 菖預测不指示流改變時,τ ^ "" 在判定預測為不正確後 始操取。在一特定實例令, 後自提取管線刪除擷取之指令。 138806.doc -21· 200951811 在另一實例中,第二指令包括一指示第二指令使用比較 指令之第一結果的指令記法。第一結果可用於第二指令, 使得在提交第二結果前第二指令可判定一正確結果。在一 特定實施例中’當不提交第二結果時,取消由第二指令之 執行而觸發的異常。在另一實例中,該方法亦包括判定第 一私令及第二指令中之一者是否具有一有效述詞及根據該 有效述詞提交第一結果及第二結果中之一者,而非兩者。
圖7為經說明為攜帶型通信裝置7〇〇的經調適以同時處理 相關性指令的一系統之一實施例之方塊圖。該攜帶型通信 裝置700包括一數位信號處理器(Dsp)71〇,其具有述詞暫 存二760、一述S5j邏輯電路762及一資料儲存緩衝器。 在一特定實施例中,DSP 71〇可為多線緒處理器,諸如, 圖1及圖2中所說明之處理器1〇〇及2〇〇。Dsp 71〇可經調適 以利用述詞暫存器76〇及述詞邏輯電路762有條件地提交相 互相關之並行執行的指♦,諸如,比較指令及使用比較之 結果的分支指令。攜帶型通信裝置7〇〇包括一晶片上系統 722,其包括一處理器,諸如,數位信號處理器7丨〇。 710已括述4暫存器76〇及述詞邏輯電路762,如關於圖1至 圖3及圖5至圖6所描述。在_特定說明性實施例中,述詞 暫存器760及述詞邏輯762可心藉由允許第—執行管線斑 正在執行循環中使践較結果處理相關性指令的第二 執行管線共用比較結果來增強處理效率。另外,述詞暫存 器、述詞邏輯762及資料儲存緩衝器—可用以有條件 地將結果提交至記憶體,及“滿足條料取消或去掉寫 138806.doc -22· 200951811 回操作。 圖7亦展示一耦接至數位信號處理器710及至顯示器728 之顯不器控制器726。此外,輸入裝置73〇耦接至數位信號 處理器710。另外’記憶體732耦接至數位信號處理器 71〇。編碼态/解碼器(C〇DEC)734亦可耦接至數位信號處 . 理器710。揚聲器73 6及麥克風738可耦接至CODEC 734。 圖7亦指示一無線控制器74〇可耦接至數位信號處理器 ❿ 710及至無線天線742。在一特定實施例中,電源744耦接 至晶片上系統722。此外,如在圖7中所說明,顯示器 728、輸入裝置730、揚聲器736、麥克風738、無線天線 742及電源744可在晶片上系統722外部。然而,每一者耦 接至晶片上系統722之組件。 在一特定說明性實施例中,述詞邏輯電路762及述詞暫 存器·可用以消除或減少不合需要之寫回操作,藉此增 強擴帶型通信裝置700之整體效能。另外,述詞邏輯電路 Φ 762及述詞暫存器可心有條件地執行各種功能,此允 許並行地執行相關性指令且拋棄不合需要之結果而無_ 處罰(就管線暫停而言)’此增強了裝置7〇〇之效能。 .應理解’雖然述詞邏輯電路762及述詞暫存器76〇經描繪 . ADSP 710之分開的組件’但述詞控制電路762及述詞暫存 器760可替代地經整合至-控制電路内,諸如,圖【中說明 之序列器114。類似地’應理解’述詞邏輯電路犯及資料 儲存緩衝器764可經整合至多線緒處理器之執行f元中。 熟習此項技術者將進-步瞭解,結合本文所揭示之實施 138806.doc -23- 200951811 2所福述之多種說明性邏輯區塊、組態、模組、電路及演 异法步驟可實施為電子硬體、電麟軟體或兩者之組合。為 青晰地”兒明硬體與軟體之此可互換性,各種說明性組 件、區塊、組態、模組、電路及步驟已在上文大體按其功 能性加以了描述。將此功能性建構為硬體還是軟體視特定 應用及強加於整個系統上之設計約束而定。熟習此項技術 者可以變化的方式針對每—特定應用實施所描述之功能 性,但是此等實施決策不應被解釋為會導致脫離本揭示案 之範嘴。 結合本文中所揭示之實施例所描述之方法或演算法的步 驟可直接體現於硬體令、由處理器執行之軟體模组中或兩 者之組合中。軟體模組可駐留於ram記憶體、快閃記憶 體、ROM記憶體、PR0M記憶體、EpR〇M記憶體 E㈣OM記憶體、暫存器、硬碟、抽取式碟片、cd_r〇m 或此項技術中已知之任一其他形式的儲存媒體中。將例示 性儲存媒體耗接至處理器,使得處理器可自儲存媒體讀取 資訊及將資訊寫入至儲存媒體。在替代例中’儲存媒體可 整合至處理器。處理器及儲存媒體可駐留於ASK中。 ASIC可駐留於計算裝置或使用者終端機中。在替代例中, 處理器及儲存媒體可作為離散組件駐留於—計算裝置或使 用者終端機中。 提供所揭示之實施例的先前描述,以使任何熟習此項技 術者能夠進行或使用所揭示之實施例。對於熟習此項技術 者而言,對此等實施例之各種修改將易於顯而易見且在 138806.doc -24- 200951811 不脫離本揭示案之精神或範疇的情況下,本文中界定之一 般性原理可適料其他實施例。目此,本揭讀並不欲限 於本文中所展示之實施例’而應符合可能與如由下列申請 專利範圍界定之原理及新穎特徵相—致之最廣泛範嘴。 【圖式簡單說明】 。圖1為包括有條件地提交並行執行的指令之邏輯的處理 器之一特定說明性實施例之方塊圖;
圖2為有條件地提交並行執行的指令的處理器之一第二 特定說明性實施例之方塊圖; 一圖3為包括多個執行階段之—執行循環之—特定說明性 實例之圖,其說明基於來自第-比較指令之執行之一第一 結果的一第二結果之選擇性提交; 相關於比較指 特定說明性實 圖4為將指令編譯至包括一比較指令及— 令之結果之第二指令的封包内之一方法之— 施例之流程圖; 圖5為有條件地提交並行執行的指令的—方法之一特定 s兒明性實施例之流程圖; 圖6為根據預測的條件性流改變操控—提取管線的方法 之—特定說明性實施例之流程圖;及 圖7為包括有條件地提交並行執行的指令之邏輯之代表 性攜帶型通信裝置之方塊圖。 【主要元件符號說明】 1〇〇 處理器 102 記憶體 138S06.doc -25- 匯流排介面 指令快取記憶體 匯流排 資料快取記憶體 序列器 一般中斷 第一指令執行單元 第二指令執行單元 第三指令執行單元 第四指令執行單元 通用暫存器檔案 第一匯流排 第二匯流排 記憶體儲存緩衝器 監督器控制暫存器 全域控制暫存器 述詞邏輯電路 述詞暫存器 匯流排 處理器 指令快取記憶體 匯流排 序列器 控制邏輯電路 -26- 200951811
207 匯流排 208 述詞暫存器 210 第一執行管線 212 第二執行管線 216 儲存緩衝器 218 記憶體 300 執行管線 302 解碼階段 304 暫存器讀取階段 306 第一執行階段 308 第二執行階段 310 第三執行階段 312 寫回階段 314 步驟 316 步驟 700 攜帶型通信裝置 710 數位信號處理器(DSP) 722 晶片上糸統 726 顯示器控制器 728 顯示器 730 輸入裝置 732 記憶體 734 編碼器/解碼器(CODEC) 736 揚聲器 138806.doc -27- 200951811 738 麥克風 740 無線控制器 742 無線天線 744 電源 760 述詞暫存器 762 述詞邏輯電路 764 資料儲存緩衝器 138806.doc -28-

Claims (1)

  1. 200951811 七 、申請專利範圍: 1· 一種方法,其包含: 在7具有包括一第-執行管線及一第二執、 數個並行的執杆其始夕老 g線之複 執仃e線之處理器處接收-指令封4 令封包包括一第一指令月+ 封包,該指 令; l及-相關於該第-指令之第二指 φ 並行地執行該第一指令之至少一部分 至少一部分;及 乐一札令之 士於與藉由該第一執行管線執行該第一 第結果而選擇性地提交 奇之— 一才曰令之該至少—部分的—第二結果。 仃該第 2·如π求項1之方法,其中該第 _ 結果待由嗲筮_ 7己括‘不該第— 由忒第一指令使用之指令記法。 3.如請求項丨之方法,其進—牛 之資、 ^匕3將與該第一結果有關 之貝科寫入至—述詞暫存器。 衣百關 4·如請求項3之方法,其 收與該第—社果^、“第二才曰令自該述詞暫存器接 呆、、、》果有關之該資料。 5.如請求項〗之方法,A 將診 八選擇性提交該第二結果包含: μ第—結果寫入至— 举妹吐 己匕體儲存緩衝器;及 田°〆第一結果可利, 一寫回操作。 選擇性地取消至一暫存器的 6.如請求項1之方法,其令 變指a _ μ第一 A令包含一條件性流改 7,該方法進—步包含: 在該第一執行管線及該第二執行管線中之-者的-解 138806.doc 200951811 碼階段處解碼該第_指令及㈣ 基於該經解竭之部分執行一指示是f部分;及 件性流改變指令之靜H_。 否有可能提交該條 7. 如請求項6之方法,其進_步包含 可能提交該條件性流改變指令時,預測指示有 以彌取與-流改變有關的指令。^控-指令提取管線 8. 如請求項1之方法,其進—击台人 一 έ士果#古故 、’ 3在判定是否提交該第 ^後’有條件地將該第二結果寫回至-目的暫存 9. 如請求項1之方法,直中嗲筮 ,、甲这第一指令包含一比較指令且 該第二指令包含-流改變指令,該方法進一步包含: 基於該第一結果而在一述詞暫存器中設定-述詞位 元;及 在執行該流改變指令後,基於該述詞位元之—值而選 擇14提父以執行由該流改變指令指示的一流改變動作。 10. —種方法,其包含: 在一具有複數個並行的執行管線之處理器處接收一包 括一比較指令及一第二指令之封包,該第二指令相關於 該比較指令; 解碼該比較指令及該第二指令以判定一與是否將提交 該第二指令有關的預測; 並行地執行第一指令及該第二指令;及 部分基於該第二指令且基於該預測而選擇性地操控一 提取管線。 138806.doc -2- 200951811 11.如凊求項10之方法,其中選擇性操控該提取管線包含當 該第二指令為一流改變指令且當該預測指示該流改變指 令有可能被提交時基於一預測的流改變起始自記憶體的 指令之擷取。 12·如請求項10之方法,其中選擇性操控該提取管線包含當 該預測扣示一流改變時基於該預測起始自記憶體的與一 机改變有關的指令之擷取,但當該預測不指示該流改變 時不起始擷取。 13. 如印求項u之方法,其進一步包含在判定該預測不正確 後自該提取管線刪除該擷取之指令。 14. 如請求項10之方法,其進„步包含至少基於與與一第— 執行管線相關聯的該第一指令有關之一第一結果而選擇 性地提交藉由-第二執行管線執行的該第二指令之 '—結果。 15‘如請求項14之方法,其中該第_ 弟—指令包括一指示該第二 # 指令使用該比較指令之該第—社 …果的指令記法,且其中 在提交該第二結果前該第一处里- 、。果可用於該第二指令。 16.如請求項15之方法,其進—步 ^包含當不提交該第二结果 . 取消由該第二指令之執行而觸發的異常。 Π.如請求項10之方法’其進一步包含. 判定該第一指令及該第二指人由— 曰7中之—者是否具有一有 效述詞;及 < 1心又琢弟一指兮之一第 結果及該第二指令之一第-姓s a 結果中之一者,而非兩 138806.doc 200951811 者。 18. —種處理器,其包含: 多個執行管線,其細 執行管線包括-執行指令,該多個 ,广線及-轨行—相關於 第—結果之第 -結果的第二指令之第 /令匈定之該第 二指令經同時地執行;1 s、’ ’邊第1令及該第 邏輯電路,其經調適以將 該第一結果自該第1料線提^至之執行判定的 於由該第二指令使用。 Μ第一執行管線用 ❹ 其中在提交與該第二執行管線相 该邏輯電路將該第—結果提供至 19. 如凊求項18之處理器 關聯的一第二結果前 該第二執行管線。 20. 如請求項18之處理器,苴 述詞暫存器對該多個執;述詞暫存器’該 館存與該第一結果有關之資料^係可存取且經調適以 〇 21. 如請求項18之處理器, 其進一步包含一接收包括該第一 才曰々及δ亥第二指令的_ _ ^ ^令之封包之序列器,該序列器 將該第一指令提供至兮钕 、弟一執行管線且將該第二指令提 供至該第二執行管線。 22. 如請求項21之處理哭, °° '、中e玄第一指令包含一比較指 7且'、中°玄第-指令相關於該比較指令之一執行結 果且,、中β亥第一指令包含一算術指令、一邏輯運算指 7 載入心令、一儲存指令、-分支指令及-跳躍指 138806.doc -4· 200951811 令中之至少一者。 23. 如請求項18之處理器,其進一步包含一記憶體缓衝器, 其柄接至該多個執行管線以在提交來自該第二指令之執 仃的-第—結果前提供—^夠獲得來自該第—指令之執 行的該第一結果之延遲。 24. —種處理器,其包含: * 肖於在一具有包括-第-執行管線及-第二執行管線 ❹ 之複數個並行的執行管線之處理器處接收一指令封包之 構件幻"封包包括一第一指令及一相關於該第 令之第二指令; 扣 用於並行地執行該第一指令之至少一部分及該 令之至少一部分之構件;及 ^ 用:基::藉由該第一執行管線執行該第— :广結果而選擇性地提交藉 關 該第二指令之該至少_部分的卩官線执仃 9 S ^ 第—結果之構件。 〇 月未項24之處理器,其進一步包含: 用於將該第二結果寫入至a 件;及 罵入至—5己憶體儲存緩衝器之構 • 用於當該第一結果可利用時選擇.Ht从衝、、、占 - 的—寫回操作之構件。 /至一暫存器 138806.doc
TW098107159A 2008-03-11 2009-03-05 System and method of selectively committing a result of an executed instruction TW200951811A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/045,825 US8990543B2 (en) 2008-03-11 2008-03-11 System and method for generating and using predicates within a single instruction packet

Publications (1)

Publication Number Publication Date
TW200951811A true TW200951811A (en) 2009-12-16

Family

ID=40602507

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098107159A TW200951811A (en) 2008-03-11 2009-03-05 System and method of selectively committing a result of an executed instruction

Country Status (7)

Country Link
US (1) US8990543B2 (zh)
EP (1) EP2269134A1 (zh)
JP (2) JP5653762B2 (zh)
KR (1) KR101225075B1 (zh)
CN (1) CN101965554B (zh)
TW (1) TW200951811A (zh)
WO (1) WO2009114289A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI494851B (zh) * 2012-08-21 2015-08-01 Apple Inc 用於推測式述詞指令之功能單元、處理器及方法
US9348589B2 (en) 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9817663B2 (en) 2013-03-19 2017-11-14 Apple Inc. Enhanced Macroscalar predicate operations

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8725990B1 (en) 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
JP2012252670A (ja) * 2011-06-07 2012-12-20 Toshiba Corp 演算装置およびプログラム
US8843730B2 (en) 2011-09-09 2014-09-23 Qualcomm Incorporated Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination
JP5813484B2 (ja) * 2011-11-30 2015-11-17 ルネサスエレクトロニクス株式会社 Vliwプロセッサと命令構造と命令実行方法
WO2013101560A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Programmable predication logic in command streamer instruction execution
US9250916B2 (en) * 2013-03-12 2016-02-02 International Business Machines Corporation Chaining between exposed vector pipelines
US9430369B2 (en) 2013-05-24 2016-08-30 Coherent Logix, Incorporated Memory-network processor with programmable optimizations
US10318293B2 (en) * 2013-07-09 2019-06-11 Texas Instruments Incorporated Predication methods for vector processors
CN103853526B (zh) * 2014-02-20 2017-02-15 清华大学 可重构处理器及可重构处理器的条件执行方法
US9513920B2 (en) * 2014-05-29 2016-12-06 Mill Computing, Inc. Computer processor employing split-stream encoding
CN104615412B (zh) * 2015-02-10 2018-11-09 清华大学 基于触发指令结构的执行控制流的方法及系统
US9904546B2 (en) * 2015-06-25 2018-02-27 Intel Corporation Instruction and logic for predication and implicit destination
KR102276718B1 (ko) * 2015-11-25 2021-07-13 삼성전자주식회사 Vliw 인터페이스 장치 및 제어 방법
WO2019200618A1 (zh) * 2018-04-21 2019-10-24 华为技术有限公司 一种指令执行方法及装置
US11269661B2 (en) * 2019-03-04 2022-03-08 Micron Technology, Inc. Providing, in a configuration packet, data indicative of data flows in a processor with a data flow manager
US11275712B2 (en) * 2019-08-20 2022-03-15 Northrop Grumman Systems Corporation SIMD controller and SIMD predication scheme
FR3100907B1 (fr) * 2019-09-16 2022-12-09 St Microelectronics Grenoble 2 Test de programme
JP2021135881A (ja) * 2020-02-28 2021-09-13 セイコーエプソン株式会社 ロボットの制御方法
US11748104B2 (en) * 2020-07-29 2023-09-05 International Business Machines Corporation Microprocessor that fuses load and compare instructions
US12039337B2 (en) 2020-09-25 2024-07-16 Advanced Micro Devices, Inc. Processor with multiple fetch and decode pipelines
US11907126B2 (en) 2020-09-25 2024-02-20 Advanced Micro Devices, Inc. Processor with multiple op cache pipelines
US11663013B2 (en) * 2021-08-24 2023-05-30 International Business Machines Corporation Dependency skipping execution

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028A (en) * 1849-01-16 Improved lubricating compound
JP3494489B2 (ja) 1994-11-30 2004-02-09 株式会社ルネサステクノロジ 命令処理装置
JP3442225B2 (ja) * 1996-07-11 2003-09-02 株式会社日立製作所 演算処理装置
WO1998033115A1 (fr) 1997-01-24 1998-07-30 Mitsubishi Denki Kabushiki Kaisha Processeur de donnees
US6366999B1 (en) 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
JP2000081973A (ja) 1998-09-04 2000-03-21 Hitachi Ltd データ処理装置及びデータ処理システム
JP2000222208A (ja) * 1999-01-29 2000-08-11 Mitsubishi Electric Corp 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体
JP2001051845A (ja) 1999-08-12 2001-02-23 Hitachi Ltd アウトオブオーダー実行方式
US6513109B1 (en) 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
EP1102165A1 (en) * 1999-11-15 2001-05-23 Texas Instruments Incorporated Microprocessor with execution packet spanning two or more fetch packets
US20040205326A1 (en) * 2003-03-12 2004-10-14 Sindagi Vijay K.G. Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution
US20060174089A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
US7523295B2 (en) * 2005-03-21 2009-04-21 Qualcomm Incorporated Processor and method of grouping and executing dependent instructions in a packet
US7774582B2 (en) 2005-05-26 2010-08-10 Arm Limited Result bypassing to override a data hazard within a superscalar processor
US7949861B2 (en) 2005-06-10 2011-05-24 Qualcomm Incorporated Method and apparatus for managing instruction flushing in a microprocessor's instruction pipeline
US7412591B2 (en) 2005-06-18 2008-08-12 Industrial Technology Research Institute Apparatus and method for switchable conditional execution in a VLIW processor
JP2007058731A (ja) * 2005-08-26 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、及び並列命令実行対応デバッグ装置
US7721071B2 (en) 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
EP1855181A2 (en) 2006-05-10 2007-11-14 Marvell World Trade Ltd. System with high power and low power processors and thread transfer
US20080022050A1 (en) 2006-07-18 2008-01-24 Via Technologies, Inc. Pre-Fetching Data for a Predictably Requesting Device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI494851B (zh) * 2012-08-21 2015-08-01 Apple Inc 用於推測式述詞指令之功能單元、處理器及方法
US9298456B2 (en) 2012-08-21 2016-03-29 Apple Inc. Mechanism for performing speculative predicated instructions
US9348589B2 (en) 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9817663B2 (en) 2013-03-19 2017-11-14 Apple Inc. Enhanced Macroscalar predicate operations

Also Published As

Publication number Publication date
US20090235051A1 (en) 2009-09-17
JP5653762B2 (ja) 2015-01-14
JP2015043216A (ja) 2015-03-05
KR101225075B1 (ko) 2013-01-22
CN101965554B (zh) 2015-04-15
KR20100132032A (ko) 2010-12-16
WO2009114289A1 (en) 2009-09-17
JP5889986B2 (ja) 2016-03-22
US8990543B2 (en) 2015-03-24
CN101965554A (zh) 2011-02-02
EP2269134A1 (en) 2011-01-05
JP2011517493A (ja) 2011-06-09

Similar Documents

Publication Publication Date Title
TW200951811A (en) System and method of selectively committing a result of an executed instruction
KR102341785B1 (ko) 결정론적 및 기회적 멀티스레딩
US6898699B2 (en) Return address stack including speculative return address buffer with back pointers
US7814469B2 (en) Speculative multi-threading for instruction prefetch and/or trace pre-build
TW200813822A (en) D-cache miss prediction and scheduling
CN108196884B (zh) 利用生成重命名的计算机信息处理器
US7711934B2 (en) Processor core and method for managing branch misprediction in an out-of-order processor pipeline
TW200820072A (en) Methods an apparatus for emulating the branch prediction behavior of an explicit subroutine call
WO2008029450A1 (fr) Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement
US20150309797A1 (en) Computer Processor With Generation Renaming
US20070083736A1 (en) Instruction packer for digital signal processor
JPH03174626A (ja) データ処理装置
US7093111B2 (en) Recovery of global history vector in the event of a non-branch flush
WO2003093979A1 (en) A method for realizing autonomous load/store by using symbolic machine code
EP1483675B1 (en) Methods and apparatus for multi-processing execution of computer instructions
US20100306513A1 (en) Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline
US9442735B1 (en) Method and apparatus for processing speculative, out-of-order memory access instructions
JP3839755B2 (ja) 命令制御方法及びプロセッサ
JPH06266556A (ja) データ処理装置
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
JP7409208B2 (ja) 演算処理装置
TW200409024A (en) Processor including branch prediction mechanism for far jump and far call instructions
WO2007084202A2 (en) Processor core and method for managing branch misprediction in an out-of-order processor pipeline
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
JP5093237B2 (ja) 命令処理装置