TWI295031B - Method of processing loop instructions, apparatus and system for processing information, and storage medium having stored thereon instructions - Google Patents
Method of processing loop instructions, apparatus and system for processing information, and storage medium having stored thereon instructions Download PDFInfo
- Publication number
- TWI295031B TWI295031B TW094136299A TW94136299A TWI295031B TW I295031 B TWI295031 B TW I295031B TW 094136299 A TW094136299 A TW 094136299A TW 94136299 A TW94136299 A TW 94136299A TW I295031 B TWI295031 B TW I295031B
- Authority
- TW
- Taiwan
- Prior art keywords
- loop
- instruction
- register
- mask
- channel
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 41
- 238000012545 processing Methods 0.000 title claims description 27
- 239000013598 vector Substances 0.000 claims description 31
- 238000010586 diagram Methods 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims 2
- 239000000126 substance Substances 0.000 claims 2
- 230000008569 process Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009056 active transport Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011157 data evaluation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
1295031 九、發明說明: t發明戶斤屬之技術領域】 本發明係有關於用於單指令多資料執行引擎之指令迴 圈處理技術。 5 t 發明背景 為了改良處理系統的效能,於單一指令週期期間,一 個指令可同時對資料的多重運算元執行。此種指令可稱作 為單指令多資料(SIMD)指令。例如,八通道simd執行引擎 10可同時對八個32位元資料運算元執行指令,各個運算元係 映射至SIMD執行引擎的獨特運算通道。於非SIMd處理器 之情況下,指令可為「迴圈」指令,因而相關聯的指令集 須被執行多次(例如執行特定次數,或執行至滿足條件為 止)。 15 【發明内容】 本發明係為一種方法,其包含有下列步驟:於一個η 通道單指令多資料執行引擎上接收一第一迴圈指令;以及 將資訊由一個η位元迴圈遮罩暫存器拷貝至一個η位元寬m 個分錄深之迴圈堆疊,其中η及m為整數。 20圖式簡單說明 弟1及2圖顯示處理系統。 第3圖顯示根據若干實施例之SIMD執行引擎。 第‘5圖顯示根據若干實施例,執行D〇指令之SImd執 行引擎。 5 1295031 第6、8圖顯示根據若干實施例,執行REPEAT指令之 SIMD執行?丨擎。 第9圖顯示根據若干實施例,執行BREAK指令之SIMD 執行引擎。 5 第10圖為根據若干實施例,一種方法之流程圖。 第圖顯示根據若干實施例,執行巢套的迴圈指令 之SIME)執行引擎。 第15圖顯示根據若干實施例,執行迴圈指令與條件指 令二者之SIMD執行引擎。 10 第16圖為根據若干實施例,一種方法之流程圖。 第17-18圖為根據一個實施例,SIMD執行引擎之一實 例。 第19圖為根據若干實施例,一種系統之方塊圖。 第20圖顯示根據若干實施例,執行CONTINUE指令之 15 SIMD執行引擎。 第21圖為根據若干實施例,一種處理CONTINUE指令 之方法之流程圖。 t實施方式】 較佳實施例之詳細說明 20 此處所述若干實施例係與「處理系統」相關聯。如此 處使用,「處理系統」一詞表示可處理資料之任何裝置。處 理系統例如可與處理圖形資料及/或其它型別的媒體資訊 的%圖引擎相關聯。某些情況下,處理系統的效能可使用 SIMD執行引擎來改良。舉例言之,SIMD執行引擎可同時 6 1295031 對多重資料通道執行單一浮點SIMD指令(例如來加速轉換 及/或成像三維幾何形狀)。其它處理系統實例包括中央處理 單元(CPU)及數位信號處理器(DSP)。 第1圖顯示一型處理系統100,包括SIMD執行引擎 5 110。本例中,執行引擎110接收指令(例如來自指令記憶體 單元的指令)連同四分量資料向量(例如向量分量X、Y、Z 及w,各自具有位元摘述來於SIMD執行引擎110的相應通 道0至通道3上處理)。執行引擎110然後可對該向量的全部 分量同時執行該指令。此種辦法稱作為「水平」、「通道並 10 聯」或「結構陣列」實作。雖然此處所述若干實施例係與 四通道SIMD執行引擎110相關,但注意SIMD執行引擎可具 有大於1的任何數目的通道(例如實施例可關聯3 2通道執行 引擎)。 第2圖顯示包括SIMD執行引擎210的另一型處理系統 15 200。本例中,執行引擎210接收一個指令連同四個資料運 算元,此處各個運算元係與不同向量(例如由向量0至向量3 的四個X向量)相關聯。執行引擎210可於單一指令週期對全 部運算元執行該指令。此種辦法稱作為「垂直」、「通道-串 聯」或「陣列結構」實作。 20 根據若干實施例,SIMD指令可為「迴圈」指令,表示 相關指令集例如可被執行特定次數,或被執行至滿足特定 條件為止。例如考慮下述指令: DO{ sequence of instructions 7 1295031 } WHILE<condition> 此處’只要「條件為真」則執行該指令順序。但當此 種指令係以S励方式執行時,不同通道可能產生不同的 〈―測試結果。舉例言之,條件定義為只要Varl為 5非零(且若屬適當指令順序可操縱制),則須執行指令順 序。本例中,Va輯-個通道可為零,而對另—通道可為 非零。 第3圖顯示根據若干實施例之四通道SIMD執行引擎 300。引擎300包括四位元迴圈遮罩暫存器31〇,其中各個位 元係與相應的運算通道相關聯。迴圈遮罩暫#器31〇例如可 包含引擎300的硬體暫存器。引擎3⑻也包括四位元寬迴圈 、「堆疊」320。如此處使用,「堆疊」—詞表示可儲存先前 ^罩值且重域前遮罩值的任何機構。堆疊的—個實例為 每一通道一位元堆疊機構。 15 迴®堆疊32G例如可包含硬體暫存H㈣、記憶體位 置、及/或硬體暫存器與記憶體位置的組合。雖然引擎30()、 條件遮罩暫存器310、及條件堆疊32〇於第3圖係以四通道寬 舉例說明’但須瞭解也可實作為其它數目之通道寬度(例如 X通道寬)’各個運算通道可處理7位元運算元,只要運算通 20道、遮罩通道與迴圈堆疊通道間有i ··晴應關係即可。 引擎300可接收四個不同資料通道(例如與四個運算通 逼相關聯)的指令,且對四個不同通道同時執行指令。注意 於某些情況下可能需要少於四個通道(例如當有少於四個 有效運异兀時)。結果,迴圈遮罩暫存器31〇可以初始化向 8 1295031 量來初始化,該初始化向量指示哪一個通道具有有效運算 元,而哪一個通道則否(例如運算元i〇至i3,「1」表示相關通 道目前可運作)。則迴圈遮罩暫存器310可用來避免不必要 的處理(例如指令只可對迴圈遮罩暫存器310内部被設定為 5 「1」的該等運算元執行處理)。根據另一實施例,迴圈遮 罩暫存器310單純被初始化為全部「1」(例如假設全部通道 皆經常性可運作)。若干實施例中,迴圈遮罩暫存器31〇的 資訊可組合其它暫存器的資訊(例如透過布林and操作來 組合),結果可儲存於整體執行遮罩暫存器(則可用來避免不 10 必要的處理或不當的處理)。 15 20 第4-5圖顯示根據若干實施例,執行〇〇指令的四通道 SIMD執行引擎400。如前文說明,引擎4〇〇包括迴圈遮罩暫 存器及迴圈堆疊42〇。但本例中,迴圈堆疊伽知分錄 深。例如注意於10分錄深堆疊之例十,於迴圈堆疊42〇的頭 四個分錄可為硬體暫存器,而其餘六個分錄係儲存於記情 士如第4圖所示,當引擎·接收到迴圈指令(例如卿 令卿’迴圈遮罩暫存器的資料被拷貝至迴圈堆属* 上。此外,迴圈資訊被儲存於迴圈遮罩暫存器仙。且 :==當第—次遭遇D〇指令時,四個通道中二 些通道為可作用(例如運算元d 為作用狀態)。 」“相關的通道 二:: 9 1295031 為1110」’則迴圈指令將對與三個最有效運算元相關聯的 - 資料執行’而非最無效運算元相關聯的資料(例如該通道目 β 前無法作用)。 . 當遭遇與00指令相關聯的WHILE陳述時,對作用的通 5道評估條件’結果存回迴圈遮罩暫存器410(例如藉布林 AND操作回存)。舉例言之,若於遭遇wmLE陳述之前迴圈 •遮罩暫存|§41〇為「111Q」’則係對與三個最有效運算元相 關聯的資料評估條件。然後將結果儲存於迴圈遮罩暫存器 籲 410。若於迴圈遮罩暫存器410的位元中有至少-個仍然為 10 Γ1」,則再度對具有迴圈遮罩暫存器值=「丨」的全部通道 執打該迴圈指令集。舉例言之,若與WHILE陳述相關聯的 條件導致「llGx」絲(此處x因該通道無法仙故未經評 估)’則可儲存「1100」於迴圈遮罩暫存器彻。當再度執 行與該迴圈相關聯的指令時,引擎4〇〇將只對與兩個最有效 15運算元相關的資料進行執行。此種情況下,可避免不必要 φ 的及/或不當的迴圈處理。注意若更新只限於作用狀態的通 - 道,則可能無需布林AND操作。 當最終遭遇wmLE陳述,且條件經過評估於迴圈遮罩 暫存器4蘭全部位元現在皆為、,則迴圈完成。此種條 20件舉例說明於第5圖。本财,來自迴圈堆疊420頂上的資 訊(例如初始化向量)回送至迴圈遮罩暫存器,以及隨後 執行指令。換言之,於迴圈堆疊蝴頂上的資料可移轉回迴 圈遮罩暫存器410,來恢復於進人迴圈之前指示哪些通道含 有有效資料的内容。然後可對變成可作用的通道相關的資 1295031 料執行進—步指令。結果,SIMD引擎400可有效處理迴圈 指令。 除了DO指令之外,第6-8圖顯示根據若干實施例,執 行REPEAT指令的SIMD執行引擎600。如前文說明,引擎6〇〇 5 包括四位元迴圈遮罩暫存器610及四位元寬m分錄深迴圈堆 疊620。本例中,引擎6〇〇進一步包括計數器630之集合(例 如硬體暫存器串列、記憶體位置及/或硬體暫存器與記憶體 位置的組合)。迴圈遮罩暫存器61〇例如可以初始化向量i〇 至U而初始化,「1」指示相關聯的通道具有有效運算元。 10 當引擎600遭遇與REPEAT迴圈相關聯的ιΝΤ COUNT=<integer>指令時,如第6圖所示,<integer>值可儲 存於計數器630。然後當遭遇REPEAT指令時,如第7圖所 示,於迴圈遮罩暫存器610的資料被拷貝至迴圈堆疊62〇頂 上。此外,迴圈資訊被儲存於迴圈遮罩暫存器61〇。迴圈資 15訊初步指示當首次遭遇REPEAT指令時,例如四個通道中之 哪些通道為作用狀態(例如運算元化至以,r i」指示相關通道 為作用狀態)。 與REPEAT迴圈相關聯的指令集隨後根據迴圈遮罩暫 存裔610而對各個通道執行。例如若迴圈遮罩暫存器61〇為 20 「1000」,則迴圈的指令將只對於最有效運算元相關的資料 執行。 當達成REPEAT迴圈結束(例如由「}」指示或ΝΕχ1^ 令指示)時,各個與作用狀態通道相關聯的計數器63〇被遞 減。根據若干實施例,若有任何計數器63〇到達零,則於迴 1295031 圈遮罩暫存器610的相關聯位元被設定為零。若於迴圈遮罩 暫存器610及/或計數器630中有至少一個位元仍然為「丨」, 則再度執行REPEAT方塊。 當於迴圈遮罩暫存器610及/或計數器630的全部位元 5 皆為「〇」時,REPEAT迴圈完成。此種條件舉例說明於第8 圖。本例中,來自迴圈堆疊620的資訊(例如初始化向量)被 送返迴圈遮罩暫存器610,隨後執行指令。
| 第9圖顯示根據若干實施例,執行BREAK指令的SIMD 執行引擎600。特別,BREAK指令係於REPEAT迴圈内部, 10 若X係大於Y則BREAK指令將被執行。本例中,第二個最有 效通道的X係大於Y,而其它通道的X並未大於Y。此種情 況下,於迴圈遮罩向量的相應位元被設定為「〇」。若於迴 圈遮罩向量610的全部位元皆為「〇」,則可結束REPEAT迴 圈(且迴圈堆疊620頂部可回送至迴圈遮罩暫存器41〇)。注意 !5 一個迴圈中可能存在有多於一個BREAK指令。例如考慮下 | 述指令· DO{
Instructions BRE AKccondition 1 > 20 Instructions BREAK<condition2>
Instructions }While<condition3> 此種情況下,若滿足條件1或條件2,則可執行break 12 1295031 指令。 第10圖為根據若干實施例,一種方法之流糕圖。此處 所述抓私圖並非暗示執行動作的固定順序,實施例可以任 何實用順序進行。注意此處所述任何方法皆町藉硬體、軟 5體(包括微碼)、韌體或此等辦法中之任一種組合來進行。舉 例言之,儲存媒體可儲存指令,該等指令當由機器執行時 可獲付根據此處所述任何實施例的表現。 於1002,接收迴圈指令。例如SIMD執行引擎可能遭遇 DO指令或REPEAT指令。迴圈指令暫存器的資料隨後於 10 1〇〇4被移送至迴圈堆疊頂端,迴圈資訊儲存於迴圈遮罩暫 存器,1006。例如指示哪些通道目前具有有效運算元的指 示可儲存於迴圈遮罩暫存器。 於1008,與迴圈指令相關聯的指令係根據迴圈遮罩暫 存器的指令執行至迴圈完成為止。例如,與DO迴圈或 15 REPEAT迴圈相關聯的指令方塊可被執行至迴圈遮罩暫存 器中的全部位元皆為「0」為止。當迴圈執行完成時,於迴 圈堆疊頂端的資訊可被移回迴圈遮罩暫存器,1010。 如就第3圖所述,迴圈堆疊可為一個分錄深。但當迴圈 係大於一個分錄深時,SIMD引擎可處理巢套的迴圈指令 20 (例如當第二迴圈方塊係巢套於第一迴圈方塊内部時)。例如 考慮下述指令集: D〇{ first subset of instructions DO{ 13 !295〇3ΐ second subset of instructions }WHILE<second condition〉 third subset of instructions }WHILE<first condition〉 5 本例中,第一和第三指令子集於第一條件為真實須對 適當通道執行,而第二指令子集須於第一條件及第二條件 皆為真時才執行。 第11-14圖顯示包括迴圈遮罩暫存器ιι10(例如以初始 化向量而被初始化)及多分錄深迴圈堆疊112〇的一種SIMD 10執行引擎1100。如第12圖所示,當遭遇第一D0指令時,迴 圈遮罩暫存器1110的資訊被拷貝至迴圈堆疊1120的頂端(i〇 至i3),第一迴圈資訊被儲存於迴圈遮罩暫存器111〇(di〇至 du)。然後引擎11〇〇如迴圈遮罩暫存器111〇中的資訊指示, 可對多個資料運算元執行與第一迴圈指令相關聯的迴圈方 15塊。 苐13圖顯示根據若干實施例,另一種巢套的迴圈指令 (例如第二DO陳述)的執行。本例中,目前於迴圈遮罩暫存 态1110的資訊((110至(113)被拷貝至迴圈堆疊1120頂端。結 果,先前於迴圈堆疊112〇頂端的資訊(例如初始化向量丨〇至“) 20已經被向下推一個分錄。引擎1100也將第二迴圈資訊儲存 於迴圈遮罩暫存器((12〇至(}23) 〇 然後與第二迴圈指令相關聯的迴圈方塊可如迴圈遮罩 暫存器1110中的資訊指示而執行(例如且每次執行第二方 塊時’迴圈遮罩暫存器1110可基於與第二迴圈的WHIL]^^ 14 1295031
才目畏哥jRM ^ 9的條件而被更新)。當第二迴圈的WHILE指令最終 導致k圈遮罩暫存器1110的每個位元皆為「0」時,如第14 圖斤示於迴圈堆疊1120頂上的資料(例如(110至(113)可移回 至迴圈遮罩暫存器1110。額外指令隨後係根據迴圈遮罩暫 5存為1U〇執行。當第一迴圈方塊完成時(未顯示於第14圖), 初始化向量須傳輸回迴圈遮罩暫存器1110,可對與可作用 之通道相關聯的資料執行進一步指令。 注意迴圈堆疊1120深度係與引擎1100所支援的巢套的 迴圈指令階數有關。根據若干實施例,迴圈堆疊112〇只有 10單一分錄深(例如堆疊實際上為η運算元寬暫存器)。也須注 意於迴圈遮罩暫存器m〇的「〇」位元指示多項不同情況諸 如:⑴未使用相關通道,(ii)未滿足本迴圈之相關WHILE條 件,或(iii)未滿足較高階迴圈的相關條件。 根據若干實施例,SIMD引擎也支援「條件」指令。例 15 如考慮下列指令集: IF(condition)
subset of instructions END IF 此處,於該條件為「真」時將執行條件子集。但如同 20迴圈指令,當同時對多重資料通道執行條件指令時,不同 通道可產生不同結果。換言之,對某些通道可能需要執行 指令子集,但對其它通道則否。 第15圖顯示根據若干實施例之四通道SIMD執行引擎 1500。引擎1500包括此處所述任何實施例的迴圈遮罩暫存 15 1295031 器1510及迴圈堆疊1520。 此外,根據本實施例,引擎1500包括四位元條件遮罩 暫存器1530,其中各個位元係與相應的運算通道相關。條 件遮罩暫存器1530例如可包含於引擎1500的硬體暫存器。 5引擎1500也包括四位元寬m分錄深的條件堆疊1540。條件堆 疊1540例如包含硬體暫存器串列、記憶體位置、及/或硬體 暫存器與記憶體位置的組合(例如以十分錄深堆疊為例,堆 疊1540中的頭四個分錄可能為硬體暫存器,而其餘六個分 錄則儲存於記憶體)。 10 15 20 條件指令的執行可類似迴圈指令的執行。例如當引擎 1500接收到條件指令(例如「IF」陳述)時,於條件遮罩暫存 器1530的資料可被拷貝至條件堆疊1540的頂端。此外,可 根據於條件遮罩暫存n15_資訊,對四個運算元個別執 行指令。例如若初始向量為「謂」,則與IF陳述相關的條 件將對與_個最有效運算元相關聯的資料作評估,但:、 通::前:法動作)。然後_存: 口口 30,用來避免與IF陳述相關的陳述 當的處理。舉财之,若與戦軸 (此處因通道無法動作故x未被評估) J T儲存於條件遮罩暫存器 與IF陳述相關的指令睹,心 ’、俊田執仃其它 算元相關聯的㈣進行。15GG將只對與兩個最有效運 (例如「ϊΙΓ1·接收到已經達到條件指令相關指令故駐 (例如「ENDIFj陳述 終點 衣條件堆疊1540頂端的資料(例 16 Ϊ295031 如初始化向量)可被回傳至條件遮罩暫存器153〇,恢復於進 ^ /條件方塊别指示哪些通道含有有效資料的内容。隨後 對可動作的通道相關資料執行進一步指令。結果,simd引 • 擎1500可有效處理條件指令。 ' 根據若干實施例,指令係根據迴圈遮罩暫存器1510及 • 條件遮罩暫存為1530執行。例如第16圖為根據此種實施例 之方法之貫例。於16〇2,引擎15〇〇取還下一個SIMD指令。 • 於1604 ’若對特定通道的迴圈遮罩暫存器1510中的該位元 為〇」’則於1606,未對該通道執行指令。若於16〇8,該 〇通迢之於條件遮罩暫存器1530中的位元為「〇」,則也未對 該通道執行指令。唯有於迴圈遮罩暫存器m〇及條件遮罩 暫存器153G二者的位元皆為「1」日t,於刪才執行指令。 藉此方式,引擎·可有效執行迴圈指令及條件指令二者。 某些情況下,條件指令可被巢套於迴圈指令内部,及/ 、15 4迴圈指令可被巢套於條件指令内部。注意於巢套分支的η • 階以内可能出現BREAK。料,條件堆疊154〇例如可能藉 •跳出條件遮罩向量<eGUnt>多次被「解捲」而恢復至進入迴 圈前的狀態。<_U>例如可藉編譯器將條件指令相關巢套 階層堆疊於迴圈指令與BREAK指令間來堆疊。 20 ㈣圖顯和論引擎1其具有職宜元迴圈遮罩暫 存器mo(各個位元係與16個相應的運算通道之_相關聯) 以及i6位it寬m分錄深的迴圈堆疊172G。引擎i可接收指 令’且同日姉6個不同資料通道(例如糾個運算通道相關曰) 同時執行指令。但因可能需要少於16個通道,故迴圈遮罩 17 -Π95031 暫存器係以初始化向量一至丨^初始化,「1」指示相關的通道 可運作。 如第18圖所示,當引擎1700接收到DO指令時,於迴圈 遮罩暫存器1710中的資料被拷貝至迴圈堆疊172〇頂上。此 5外,D〇資訊如至山5係儲存於迴圈遮罩暫存器1710。do資 訊例如可指示當遭遇DO指令時,16個通道中哪些通道為作 用狀態。然後根據迴圈遮罩暫存器171〇,對各個通道執行 第二指令集。當遭遇WHILE指令時,引擎17〇〇檢查各個作 用狀態通道的<flag>。<flag>例如可能由第二指令集之一 10 (例如恰在WHILE指令之前)設定。若對任何通道並無任何 <flag>為真,則DO迴圈完成。此種情況下,初始化向量i〇 至ii5可被回送至迴圈遮罩暫存器171〇,且可執行第三指令 集。 若至少一個<flag>為真,則迴圈遮罩暫存器171〇可適當 15更新,引擎可跳至由WHILE指令所定義的<addreSS>(例 如指標至第二指令集的起點)。 第19圖為根據若干實施例,系統19〇〇的方塊圖。系統 1900例如可能與適合記錄及/或顯示數位電視信號的媒體 處理器相關聯。系統19〇〇包括根據此處所述任意實施例, 20具有n運算元SIMD執行引擎1920的繪圖引擎1910。例如, 根據此處所述任意實施例,SIMD執行引擎1920可具有η運 异元迴圈遮罩向量及η運算元寬❿分錄深迴圈堆疊。系統 1900也包括指令記憶體單元1930來儲存SIMD指令,以及包 括圖形記憶體單元1940來儲存圖形資料(例如與三維影像 18 1295031 相關的向量)。指令記憶體單元1930及圖形記憶體單元1940 例如可包含隨機存取記憶體(RAM)單元。 以下說明多個其它實施例。此等實施例並未組成全部 可能實施例的界限,熟諳技藝人士瞭解多種其它實施例亦 5 屬可能。此外,雖然後文實施例簡短說明以求清晰,但熟 諳技藝人士瞭解若有所需如何對前文說明做改變來配合調 適此等及其它實施例及應用。 雖然已經就分開迴圈遮罩暫存器及迴圈堆疊說明若干 實施例’但任何實施例皆可能只關聯單一迴圈堆疊(例如目 10 前遮罩資訊可能只關聯迴圈堆疊的頂分錄)。 此外,雖然已經說明不同實施例,但須注意可實作實 施例之任一種組合(例如REPEAT陳述或BREAK陳述以及 ELSE陳述可能包括位址)。此外,雖然實施例中係使用「〇」 來指示未能動作的通道,但根據其它實施例,可使用「1」 15 來替代指示目前無法動作的通道。 此外,雖然此處已經舉例說明特定指示,但也可使用 其它型別的指令來實作實施例。例如,第20圖顯示根據若 干實施例,執行CONTINUE指令之SIMD執行引擎2000。特 別CONTINUE指令係於將被執行〈integer〉次數的REPEAT 20 迴圈内部。但若於某次特定通過該迴圈期間〈condition〉為 真,則該次通過將被中止,而將開始下一次通過。例如若 REPEAT迴圈欲執行10次,當迴圈執行第五次時<conciiti〇n> 為真,則於CONTINUE之後的指令將不被執行,迴圈將開 始執行第六次通過迴圈。另一方面,注意 19 1295031 BREAK<condition>指令則將完全結束迴圈的執行。 例如考慮下列指令: DO{
Instructions 5 CONTINUE<condition 1>
Instructions CONTINUE<condition 2>
Instructions }While<condition 3> 10 本例中,維持兩個獨特遮罩:⑴如此處所述之「迴圈 遮罩」以及(ii)「連續遮罩」。連續遮罩例如可類似迴圈遮 罩,但係記錄哪些執行通道不符合一次迴圈内部之與 CONTINUE指令相關聯的條件。若一通道為「〇」(換言之 不符合CONTINUE條件),則其餘通過迴圈部分可防止於該 15 通道執行。 一種執行此種CONTINUE指令之方法顯示於第2ι圖。 根據本實施例,恰在進入迴圈之前,於謂,執行遮罩被 载入迴圈遮罩(例如指示哪些通道可動作)。 於2104,於執行迴圈的第_個指令之前,連續遮罩係 20以迴圈遮罩值來初始化。於21〇2,判定當迴圈指令被執行 ¥哪些通道變成可動作。例如’當於迴圈遮罩及連續遮罩 二者的相關位元皆等於1時,執行才變成可動作。 匕於測遭遇C0N™UE指令。此時,評估與C0NTINUE 指令相關的條件,c〇NTINUE遮罩視何者適當而更新。如 20 1295031 此,於本次通過迴圈期間對遭遇c〇NTINUE指令的❿ 將不再執行指令。 k 當於测,遭遇迴_WHILE齡時,評例目 若WHILE齡⑽㈣任料料从(與料遮罩的s 道位元無關)’則連續遮罩再度於迴圈遮罩初始化,處理 序連續進入2104。若對每個通道WHILE指令的條件 10 足,則於2112,迴圈完成,迴圈遮罩由迴圈堆疊恢復。若 迴圈經巢套,則連續遮罩可被儲存為連續堆疊。當内部迴 圈執行完成時,可恢復迴圈遮罩及連續遮罩二者。根據= 干實施例,對迴圈遮罩及連續遮罩維持分開堆疊。根據= 它實施例,迴圈遮罩及連續遮罩可儲存於單一堆疊。 此處所述若干實施例僅供舉例說明之用。熟諳技藝人 士由此處說明將瞭解可實作其它實施例,而修改及變化僅 受申請專利範圍所限。 15 【圖式簡單說明】 第1及2圖顯示處理系統。 第3圖顯示根據若干實施例之SIMD執行引擎。 弟4-5圖减示根據若干實施例,執行D〇指令之wmd執 行引擎。 第6-8圖顯示根據若干實施例,執行rEPEAT指令之 SIMD執行引擎。
第9圖顯示根據若干實施例,執行BREAK指令之SIMD 執行引擎。 弟10圖為根據若干實施例,一種方法之流程圖。 21 1295031 第^14圖顯示根據若干實施例,執行巢套的迴圈指令 之SIMD執行引擎。 第U圖顯示根據若干實施例’執行迴圈指令與條件指 令二者之SIMD執行引擎。 5 第16圖為根據若干實施例,一種方法之流程圖。 第^18圖為根據一個實施例,SIMD執行引擎之一實 例。 第19圖為根據若干實施例,一種系統之方塊圖。 第20圖顯示根據若干實施例,執行CONTINUE指令之 10 SIMD執行引擎。 第21圖為根據若干實施例,一種處理CONTINUE指令 之方法之流程圖。 【主要元件符號說明】 100···處理系統 110···單指令多資料(SIMD)執行引擎 200.··處理系統 210...SIMD執行引擎 300···四通道SIMD執行引擎 310···四位元迴圈遮罩暫存器 320···四位元寬迴圈堆疊 400···四通道SIMD執行引擎 410.. .迴圈遮罩暫存器 420.. .迴圈堆疊 600...SIMD執行引擎 22 1295031 610···四位元迴圈遮罩暫存器 620···四位元寬m分錄深迴圈堆疊 630…計數器 1002-1010…動作 1100.. .51.D執行引擎 1110…迴圈遮罩暫存器 1120···多分錄深迴圈堆疊 1500···四通道SIMD執行引擎 1510…迴圈遮罩暫存器 1520.. .迴圈堆疊 1530.. .條件遮罩暫存器 1540···四位元寬m分錄深條件堆疊 1700.. .51.D執行引擎 、 1710.. .十六位元迴圈遮罩暫存器 1720·.·十六位元寬m分錄深迴圈堆疊 1900…系統 1910.. .繪圖引擎 1920·.·η運算元SIMD執行引擎 1930···指令記憶體單元 1940…圖形記憶體單元 2000.. .51.D執行引擎 2102-2112…動作 23
Claims (1)
- r _.泰員明亲”·萆y .月 曰 1295034提系、修毛本有%,出原説明書 v 或麗式所揭露之慕圆10 1520 十、申請專利範圍: 第94136299號申請案申請專利範圍修正本 96.07.24. 1. 一種用於處理迴圈指令之方法,其包含有下列步驟: 於一個η通道單指令多資料執行引擎上接收一第一 迴圈指令;以及 將資訊由一個η位元迴圈遮罩暫存器拷貝至一個η 位元寬m個分錄深之迴圈堆疊,其中η及m為整數。 2. 如申請專利範圍第1項之方法,進一步包含·· 儲存第一迴圈資訊於該迴圈遮罩暫存器中。 3. 如申請專利範圍第2項之方法,其中該第一迴圈指令為 與一個WHILE條件相關聯的一個DO指令,以及儲存於 該迴圈遮罩暫存器中的該第一迴圈資訊至少部分係基 於對與一通道相關聯的至少一個運算元所作之該 WHILE條件的一個評估結果。 4. 如申請專利範圍第3項之方法,進一步包含: 根據該迴圈遮罩暫存器,對至少一個通道執行與該 WHILE條件相關聯的一組指令集;以及 根據該WHILE條件的一個評估結果來更新該迴圈 遮罩暫存器。 5. 如申請專利範圍第4項之方法,進一步包含: 判定對由該迴圈遮罩暫存器致動運作的至少一個 通道是否仍然滿足該WHILE條件;以及 跳至與該WHILE條件指令相關聯的該組指令集之 起點。 24 4 41295031 6·如申請專利範圍第4項之方法,進一步包含: 判定對由該迴圈遮罩暫存器致動運作的任何通道 是否不再滿足該WHILE條件;以及 將資訊從該迴圈堆疊移至該迴圈遮罩暫存器。 5 7·如申請專利範圍第2項之方法,其中有一第二迴圈指令 為一個REPEAT指令。10 158·如申請專利範圍第7項之方法,其中對至少一個通道維 持著一個REPEAT計數器,且該方法進一步包含: 根據該迴圈遮罩暫存器,對至少一個通道執行與該 REPEAT指令相關聯的一組指令集; 遞減至少一個REPEAT計數器;以及 基於該至少一個REPEAT計數器,判定該迴圈遮罩 暫存器是否須被更新。 9·如申請專利範圍第8項之方法,進一步包含: 對由該迴圈遮罩暫存器致動運作的裏少一個通 道,判定該REPEAT計數器非為零;以及 跳至與該REP EAT指令相關聯的該組指令集之起 10·如申請專利範圍第8項之方法,進一步包含: ,,岁丨J定 2〇 對由該迴圈遮罩暫存器致動運作的全部通道’ 該REPEAT計數器為零;以及 將資訊由該迴圈堆疊移至該迴圈遮罩暫存器。 11·如申請專利範圍第2項之方法,進一步包含: 於該執行引擎接收一第二迴圈指令; 25 1295031又 510 將該第一迴圈資訊由該迴圈遮罩暫存器移至該迴 圈堆疊;以及 儲存第二迴圈資訊於該迴圈遮罩暫存器中。 12. 如申請專利範圍第1項之方法,進一步包含: 接收與該第一迴圈指令及一通道相關聯的一個 BREAK指令;以及 更新與該通道相關聯的該迴圈遮罩暫存器之位元。 13. 如申請專利範圍第12項之方法,進一步包含於接收該 BREAK指令前: 於該執行引擎接收一第一條件指令; 基於相關聯資料的多重運算元,評估該第一條件指 令; 儲存該評估之結果於一個η位元條件遮罩暫存器 中; 1520 於該執行引擎接收一第二條件指令;以及 將該結果從該條件遮罩暫存器拷貝至一個η位元寬 m個分錄深的條件堆疊。 14. 如申請專利範圍第13項之方法,進一步包含於接收該 BREAK指令後: 將該條件堆疊中的至少一個分錄移至該條件遮罩 暫存器。 15. 如申請專利範圍第2項之方法,進一步包含: 接收與該第一迴圈指令及一通道相關聯的一個 CONTINUE指令;以及 26 1295031510 1520 更新與該通道相關聯的該迴圈遮罩暫存器之位元。 16. 如申請專利範圍第1項之方法,其中該等指令係根據該 迴圈遮罩暫存器中之資訊而執行,以及進一步根據一條 件遮罩暫存器内的資訊而執行。 17. 如申請專利範圍第1項之方法,進一步包含於接收該第 一迴圈指令前: 基於欲獲致動運作來供執行的通道來初始化該迴 圈遮罩暫存器。 18. 如申請專利範圍第1項之方法,其中該迴圈堆疊為一個 分錄深。 19. 一種用以處理資訊之裝置,包含: 一個η位元迴圈遮罩向量暫存器,其中該迴圈遮罩 向量暫存器係對多重通道儲存與一第一迴圈指令相關 聯的第一迴圈資訊;以及 一個η位元寬m個分錄深的迴圈堆疊暫存器,用來儲 存於該第一迴圈指令之前於該迴圈遮罩向量暫存器中 存在的資訊。 20. 如申請專利範圍第19項之裝置,進一步包含: 一個η位元條件遮罩向量暫存器,其中該條件遮罩 向量暫存器欲儲存下列評估之結果:⑴一個IF指令條 件、以及(ii)與多重通道相關聯的資料;以及 一個η位元寬m個分錄深的條件堆疊暫存器,用來儲 存於該等結果前於該條件遮罩向量暫存器中存在的資 訊。 27 1295031 5替換 21.如申請專利範圍第19項之裝置,其中當與一第二迴圈指 令相關聯的全部適當指令已經被執行時,該第一迴圈資 訊將從該迴圈堆疊暫存器移轉至該迴圈遮罩向量暫存 器。10 22. 如申請專利範圍第19項之裝置,其中該第一迴圈指令為 一個DO指令或一個REPEAT指令。 23. —種儲存有指令之儲存媒體,該等指令在由一機器執行 時可導致進行下列動作: 於一個η通道單指令多資料執行引擎上接收一第一 DO指令; 儲存第一迴圈資訊於一個η位元迴圈遮罩暫存器 中; 1520 於該執行引擎上接收一第二DO指令; 移動該第一迴圈資訊至一個η位元寬m個分錄深之 迴圈堆疊;以及 儲存第二迴圈資訊於該迴圈遮罩暫存器中。 24. 如申請專利範圍第23項之儲存媒體,其中該等指令的執 行進一步導致下列動作: 當與該第二DO指令相關聯的全部適當指令皆已經 被執行時,將該第一迴圈資訊從該迴圈堆疊移至該迴圈 遮罩暫存器。 25. 如申請專利範圍第24項之儲存媒體,其中該等指令的執 行進一步導致下列動作: 接收與該第二DO指令及一通道相關聯的一個 281295031 BREAK指令;以及 更新與該通道相關聯的該迴圈遮罩暫存器之位元。 26. —種用以處理資訊之系統,包含: 一處理器,包括·· 5一個位元迴圈遮罩向量暫存器,其中該迴圈遮罩向 量暫存器欲對多重通道儲存與一第一迴圈指令相關聯 的第一迴圈資訊;以及 一個m個分錄深的迴圈堆疊暫存器,用以於一第二 迴圈指令由該處理器執行時儲存該第一迴圈資訊,其中 10 m為大於1之整數;以及 一個圖形記憶體單元。 27. 如申請專利範圍第26項之系統,其中當與該第二迴圈指 令相關聯的全部適當指令皆已經被執行時,該第一迴圈 資訊將從該迴圈堆疊暫存器而移轉至遮罩向量暫存器。 1528. 如申請專利範圍第26項之系統,進一步包含: 一個指令記憶體單元。 29 1295031 七、指定代表圖·· (一) 本案指定代表圖為:第(1 )圖。 (二) 本代表圖之元件符號簡單說明: 100…處理系統 110...單指令多資料(SIMD)執行引擎八、本案若有化學式時,請揭示最能顯示發明特徵的化學式:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/969,731 US20060101256A1 (en) | 2004-10-20 | 2004-10-20 | Looping instructions for a single instruction, multiple data execution engine |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200627269A TW200627269A (en) | 2006-08-01 |
TWI295031B true TWI295031B (en) | 2008-03-21 |
Family
ID=35755316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094136299A TWI295031B (en) | 2004-10-20 | 2005-10-18 | Method of processing loop instructions, apparatus and system for processing information, and storage medium having stored thereon instructions |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060101256A1 (zh) |
CN (1) | CN101048731B (zh) |
GB (1) | GB2433146B (zh) |
TW (1) | TWI295031B (zh) |
WO (1) | WO2006044978A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353369B1 (en) * | 2005-07-13 | 2008-04-01 | Nvidia Corporation | System and method for managing divergent threads in a SIMD architecture |
US7543136B1 (en) | 2005-07-13 | 2009-06-02 | Nvidia Corporation | System and method for managing divergent threads using synchronization tokens and program instructions that include set-synchronization bits |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7617384B1 (en) * | 2006-11-06 | 2009-11-10 | Nvidia Corporation | Structured programming control flow using a disable mask in a SIMD architecture |
US8312254B2 (en) * | 2008-03-24 | 2012-11-13 | Nvidia Corporation | Indirect function call instructions in a synchronous parallel thread processor |
GB2470782B (en) * | 2009-06-05 | 2014-10-22 | Advanced Risc Mach Ltd | A data processing apparatus and method for handling vector instructions |
US8627042B2 (en) | 2009-12-30 | 2014-01-07 | International Business Machines Corporation | Data parallel function call for determining if called routine is data parallel |
US8683185B2 (en) | 2010-07-26 | 2014-03-25 | International Business Machines Corporation | Ceasing parallel processing of first set of loops upon selectable number of monitored terminations and processing second set |
CN103946795B (zh) | 2011-12-14 | 2018-05-15 | 英特尔公司 | 用于生成循环对齐计数或循环对齐掩码的系统、装置和方法 |
US20140189296A1 (en) * | 2011-12-14 | 2014-07-03 | Elmoustapha Ould-Ahmed-Vall | System, apparatus and method for loop remainder mask instruction |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
WO2013095609A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing conversion of a mask register into a vector register |
CN104137054A (zh) * | 2011-12-23 | 2014-11-05 | 英特尔公司 | 用于执行从索引值列表向掩码值的转换的系统、装置和方法 |
WO2013095603A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for down conversion of data types |
CN107193537B (zh) | 2011-12-23 | 2020-12-11 | 英特尔公司 | 经改进的插入指令的装置和方法 |
CN104094182B (zh) * | 2011-12-23 | 2017-06-27 | 英特尔公司 | 掩码置换指令的装置和方法 |
US20140059322A1 (en) * | 2011-12-23 | 2014-02-27 | Elmoustapha Ould-Ahmed-Vall | Apparatus and method for broadcasting from a general purpose register to a vector register |
US9501276B2 (en) * | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
US9952876B2 (en) | 2014-08-26 | 2018-04-24 | International Business Machines Corporation | Optimize control-flow convergence on SIMD engine using divergence depth |
US9928076B2 (en) * | 2014-09-26 | 2018-03-27 | Intel Corporation | Method and apparatus for unstructured control flow for SIMD execution engine |
US9983884B2 (en) | 2014-09-26 | 2018-05-29 | Intel Corporation | Method and apparatus for SIMD structured branching |
CN109032665B (zh) * | 2017-06-09 | 2021-01-26 | 龙芯中科技术股份有限公司 | 微处理器中指令输出处理方法及装置 |
WO2019162738A1 (en) * | 2018-02-23 | 2019-08-29 | Untether Ai Corporation | Computational memory |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
ATE366958T1 (de) * | 2000-01-14 | 2007-08-15 | Texas Instruments France | Mikroprozessor mit ermässigtem stromverbrauch |
US6732253B1 (en) * | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US20040073773A1 (en) * | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US6986028B2 (en) * | 2002-04-22 | 2006-01-10 | Texas Instruments Incorporated | Repeat block with zero cycle overhead nesting |
JP3974063B2 (ja) * | 2003-03-24 | 2007-09-12 | 松下電器産業株式会社 | プロセッサおよびコンパイラ |
-
2004
- 2004-10-20 US US10/969,731 patent/US20060101256A1/en not_active Abandoned
-
2005
- 2005-10-13 CN CN2005800331592A patent/CN101048731B/zh not_active Expired - Fee Related
- 2005-10-13 GB GB0705909A patent/GB2433146B/en not_active Expired - Fee Related
- 2005-10-13 WO PCT/US2005/037625 patent/WO2006044978A2/en active Application Filing
- 2005-10-18 TW TW094136299A patent/TWI295031B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2006044978A2 (en) | 2006-04-27 |
TW200627269A (en) | 2006-08-01 |
US20060101256A1 (en) | 2006-05-11 |
GB2433146B (en) | 2008-12-10 |
CN101048731B (zh) | 2011-11-16 |
CN101048731A (zh) | 2007-10-03 |
GB2433146A (en) | 2007-06-13 |
WO2006044978A3 (en) | 2006-12-07 |
GB0705909D0 (en) | 2007-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI295031B (en) | Method of processing loop instructions, apparatus and system for processing information, and storage medium having stored thereon instructions | |
JP6187988B2 (ja) | ベクトルコンフリクト命令 | |
TWI644208B (zh) | 藉由對硬體資源之限制實現的向後相容性 | |
TWI494851B (zh) | 用於推測式述詞指令之功能單元、處理器及方法 | |
US11113054B2 (en) | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression | |
KR101581177B1 (ko) | 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공 | |
KR101607161B1 (ko) | 데이터 요소들의 스트라이드 패턴 수집 및 데이터 요소들의 스트라이드 패턴 분산을 위한 시스템, 장치 및 방법 | |
EP3106979B1 (en) | Efficient hardware instructions for single instruction multiple data processors | |
US20130036293A1 (en) | Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture | |
US8527742B2 (en) | Processing vectors using wrapping add and subtract instructions in the macroscalar architecture | |
JP2012529096A (ja) | ベクトル命令を取り扱うためのデータ処理装置および方法 | |
JP6908601B2 (ja) | ベクトルロード命令 | |
US8539205B2 (en) | Processing vectors using wrapping multiply and divide instructions in the macroscalar architecture | |
US20120260061A1 (en) | Data processing apparatus and method for performing vector operations | |
CN101495959A (zh) | 组合微处理器内的多个寄存器单元的方法和系统 | |
CN109416633B (zh) | 用于执行重新排列操作的设备及方法 | |
WO2021249054A1 (zh) | 一种数据处理方法及装置、存储介质 | |
JP2001134436A (ja) | 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法 | |
TW201250585A (en) | Systems, apparatuses, and methods for jumps using a mask register | |
JP4917045B2 (ja) | Data部および関連するカウンタを備えるエントリを有するハードウェア・スタック | |
US10567163B2 (en) | Processor with secure hash algorithm and digital signal processing method with secure hash algorithm | |
US9335980B2 (en) | Processing vectors using wrapping propagate instructions in the macroscalar architecture | |
US6928605B2 (en) | Add-compare-select accelerator using pre-compare-select-add operation | |
US20130024669A1 (en) | Processing vectors using wrapping shift instructions in the macroscalar architecture | |
US20130024671A1 (en) | Processing vectors using wrapping negation instructions in the macroscalar architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |