TW200540713A - Apparatus and method for dual data path processing - Google Patents

Apparatus and method for dual data path processing Download PDF

Info

Publication number
TW200540713A
TW200540713A TW094109120A TW94109120A TW200540713A TW 200540713 A TW200540713 A TW 200540713A TW 094109120 A TW094109120 A TW 094109120A TW 94109120 A TW94109120 A TW 94109120A TW 200540713 A TW200540713 A TW 200540713A
Authority
TW
Taiwan
Prior art keywords
data
data processing
computer processor
instruction
operator
Prior art date
Application number
TW094109120A
Other languages
English (en)
Other versions
TWI362617B (en
Inventor
Simon Knowles
Original Assignee
Icera 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 Icera Inc filed Critical Icera Inc
Publication of TW200540713A publication Critical patent/TW200540713A/zh
Application granted granted Critical
Publication of TWI362617B publication Critical patent/TWI362617B/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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30181Instruction operation extension or modification
    • 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
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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
    • 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/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
    • 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
    • G06F9/3891Concurrent 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 organised in groups of units sharing resources, e.g. 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/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

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)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Hardware Redundancy (AREA)

Description

200540713 九、發明說明: 【發明所屬之技術領域】 本:::係關於一種電腦處理器,—種操作該者之方法, 及一種包含用於該電腦之指令集的電腦程式產品。 【先前技術】 爲提高電腦處理器速度’先前技藝架構既 =徑以執行各項指令。雙執行路彳以理器可根據單—指 二=:料咖)原理來運算,利用運算平行化以提高處 用雙執行路徑及咖處理作業,仍有對於 持續需要。典型的雙執行路徑處理器利 同的通道,因此各個通道會處置控制碼及資 位元=者。已知的處理器雖支援32位元標準編碼及16 苦:木」編碼的組合’然此等法則卻受於數項缺點之 容。匕“ 16位元格式内的少數幾個位元裡缺少語意内 匕外傳統的一般目的性數位信號處理器無法適配於 旋運:的:應用特定演算法’包含執行特定化運算像是迴 二速傅黎葉轉換、Tre⑴爾―^ 有限脈衝響應過濾以及其他運算。 【發明内容】 料严據本發明具體實施例裡,提供一種具控制及資 元义之電腦處理器。該電腦處理器包含-解碼單 用以解碼各指令’·一資料處理設備,其中包含一含固 6 200540713 一 定運算子之第一資料執行路徑,以及一含至少一可組態設 定運算子之第二資料執行路徑,該等可組態設定運算子具 有多個預先定義組態,至少部份該等可藉一資料處理指令 之運算碼局部而加以選擇;其中該解碼單元可運作以偵測 一資料處理指令究係定義一固定資料處理運算或一可組態 設定資料處理運算,該解碼單元可令該電腦系統供應資 料,以當偵測到一固定資料處理指令時處理至該第一資料 執行路徑,而當偵測到一可組態設定資料處理指令時則至 # 該可組態設定資料執行路徑。 在進一步的相關具體實施例裡,該解碼單元可為能夠 解碼一來自記憶體之指令封包串流,各封包包含多個指 令。該解碼單元亦可運作以彳貞測一指令封包是否包含一資 料處理指令。該可組態設定運算子可在包括含四個以上位 元之多位元數值的多位元數值層級,或在字組層級上,進 行組態設定。該第一資料執行路徑的多個固定運算子係經 排置以根據單一指令多重資料原理而在各獨立通巷裡執行 • 多個固定運算。同時,第二資料執行路徑的多個可組態設 定運算子係經排置以根據單一指令多重資料原理而在不同 通巷裡執行多重運算。 在其他的相關具體實施例裡,該第二資料執行路徑的 可組態設定運算子係經排置以接收會決定所執行運算之性 質的組態資訊。此項資訊可接收來自一定義一可組態設定 資料處理運算之指令欄位。該第二資料執行路徑之可組態 設定運算子係經排置以接收包含控制相對互連性之資訊的 7 200540713 _ 組態資訊。該電腦處理器可進一步包含一關聯於該第二資 料執行路徑之可組態設定運算子的控制映射,該控制映射 係可運算以接收來自於一可組態設定資料處理指令的至少 一組態位元,並以回應於此而將組態資訊提供至該可組態 設定運算子。該組態資訊可決定由該可組態設定運算子所 執行之運算的性質;以及控制於該等可組態設定運算子之 兩者以上的互連性。 在進一步的相關具體實施例裡,該第二資料執行路徑 # 之可組態設定運算子係經排置以接收決定一待予執行運算 之性質的組態資訊,或是控制來自於除一可組態設定資料 處理指令以外之來源的互連性之組態資訊。該第二資料執 行路徑之至少一可組態設定運算子能夠在將結果送返至一 結果儲存之前,先藉一大於兩個計算作業之執行深度來執 行資料處理指令。該電腦處理器可包含一切換機制,用以 接收來自一可組態設定資料處理指令的資料處理運算元, 並視適當切換該等以供應給一或更多的該等可組態設定運 ® 算子。該電腦處理器亦可包含一切換機制,以接收來自於 一或更多該等可組態設定運算子的結果,並視適當切換該 等結果以供應給一或更多的結果儲存及回饋迴圈。該電腦 處理器亦可包含複數個控制映射,以將所接收來自於可組 態設定資料處理指令之組態位元對映到組態資訊,以提供 給可該第二資料執行路徑的組態設定運算子。同時,該電 腦處理器亦可包含一切換機制以接收來自於一控制映射的 組態資訊,並視適當將此切換以供應給該第二資料執行路 8 200540713 徑的可組態設定運管; σ 递|子。该電腦處理荔亦可包含從_ 多的下列項目中所選出的設定運算:更 算子、算術i軍管工。 人决累加運 ^ 、狀態運算子,以及交跨通巷排列子 ㈣,?電腦處;里器可包含各運算子及-能夠執行」1更 I如下通出之運异的指令集··快速傅黎葉轉換、反快速傅 ♦葉轉換、Vlterbi編碼/解碼、Turbo編碼/解碼以及 限脈衝響應計算;以及其他的共相關或迴旋計算。 在另-根據本發明之具體實施例,兹提供一種操作一 及資料處理功能之電腦處理器的方法,該電腦處理 "、包δ 一含固定運算子之第—資料執行路徑,以及一含至 少一可組態設定運算子之第二資料執行路徑,該等可組能 Γ疋運异子具有複數個預^義組態,至少部份的該等可 糟貝料處理指令之運算碼局部而加以選擇。該方法包 含:解碼複數㈣♦,以偵測該等複數個指令之至少一資 料處理指令究係定義一固定資料處理運算或—可組態設定 貝料處理運算;令該電腦處理器供應資料,以當伯測到一 固定資料處理指令時處理至該第一資料執行路徑,而當谓 、JJ到可組悲设定資料處理指令時則至該可組態設定資料 執行路徑;以及輸出各項結果。 在另一根據本發明之具體實施例,茲提供一種包含用 以啟動—電腦處理器之電腦程式碼裝置的電腦程式產品, 該電腦處理器包含一包含一含固定運算子之第一資料執行 路徑,以及一含至少一可組態設定運算子之第二資料執行 路徑’該等可組態設定運算子具有複數個預先定義組態, 200540713 至少部份的該等可藉一資料處理指令之運算碼局部而加以 選擇以:解碼複數個指令,以偵測該等複數個指令之至少 -資料處理指令究係、定義-固定f料處理運算或_可組態 設定資料處理運算;令該電腦處理器供應資料’以當偵二 到-固定資料處理指令時處理至該第一資料執行路徑,而 當偵測到一可組態m料處理指令時則至該可組態設定 資料執行路徑;以及輸出各項結果。 在一根據本發明之進一步具體實施例裡,茲提供一種 資料處理指令集,其中包含具有表示—固定型態之資料處 理運算攔位的第一複數個指令,以及具有表示一可組態設 定塑態之資料處理運算欄位的第二複數個指令。 〜认 在另一根據本發明之具體實施例裡,兹提供一種具有 -包含可組態設定運算子之執行路徑的電腦處理器,立中 各可組態設定運算子包含複數個預先定義群組之運算;组 態,各群,組包含來自個別運算子類別的運算子。各運曾子 類別可包含從一或更多下者中所選出的類別:乘法累力:運 算子、异術運算子、狀態運算子及排列子。於從該預先定 義運算子組態群組内所選擇之各運算子間的連接,可由一 在-由該電腦處理器所執行之指令内的運算碼局部所加以 組態=定°並且’於從一個以上預先定義運算子組態群《且 ^ . 廷接可由一在一由該電腦處理 器所執行之指令内的運算碼局部所加以組態設定。 本發明額外優點及新式特性將如後說明裡部份地陳 述,且部份地可由熟諳本項技藝之人士經㈣後文及各隨 10 200540713 附圖式戶:顯見’或可為由本發明實作而習知。 【實施方式】 電腦係—根據本發明"'具體實施例之非對稱執行路徑 電=益的區塊圖。該圖i之處理器將一單一指令串流 100刀軎丨J成兩個不同的 ]〇0 , ^ e ^ M ^版執仃路徑·一控制執行路徑 这是專屬:A於處理控制碼,以及一資料執行路徑103, =屬:處理資料碼。這兩個執行路經1〇2、1〇3的資 二,!::及其他特徵會根據不同的控制碼及資料路 位馬特试而互異。通常,控制碼傾向 器:不容易平行化,且通常(但非獨一地)按 5吾έ程式碼所撰寫, 门白 /、粒式碼铪度一般說來合 效能更為重要。相對地,資料路徑碼通常 列的寬式暫存器、可被高度平行化 二肖於較大订 寫:同時其效能會比其程式碼密度更重要。:合二言= 理…里’兩種不同執行路徑102幻〇3係專屬:處= 不同類型的程式碼,各側具有其本身的架構暫存=種 像是控制暫存器行列_及資料暫存器行二二 於暫存器的寬度及數量;各控制暫存器合按位1〇5,不同在 較窄寬度(在一範例裡為32 讀目而為 寬的寬度(在一範例裡β4?办;、# * $存裔具有較 厂…“ ,處理器因此為不對稱, 者=兩:執行路徑具有不同位元寬度,此 者執仃不R、特定化功能之事實的緣故。 在如圖I的處理器裡,該指令串流1〇〇是由 才曰令封包所組成。所供應的各指令封包會被一指令解碼單 200540713 兀1 01所解碼,此者會分隔控制指令及資料指令,即如後 文所進步咩述。該控制執行路徑1 〇 2處理該指令串流之 控制流程操作,並且利用一分支單元ι〇6、一執行單元1〇7 及載入儲存單元1 08,這在本例裡是與該資料執行路徑 1 03所共予,來管理該機器的狀態暫存器。僅該處理器之 挂制側而要被像是C、C++或Java語言的編譯器,或其他 的高階語言編譯器,所看見。在該控制側心該分支單元 1〇6及該執行單元107係按照熟諳本項技藝之人士所眾知 的傳統處理器而設計。 竹钒彳丁路徑 心机灯早兀1 υ y及一可組 〜、叹疋/木度執行單凡11〇兩者内採用(單一指令多重 資料^行化。即如後文所進—步詳述,料組態設定深 =執仃早το 110,除傳統SIMD處理器的寬度維度以外,另 提供-種深人維度的處理作f以提高每—指令的工作量。
在?Ά碼之私令定義-控制指令,則會將此者施加於 /機器之控制執行路徑上的適當功能單元(即如該分支 …06、該執行單元107及/或該載入/儲存單幻 如經解碼之指令定義一且一 > 曾 、疋或可組恶设定資料處理運 :之私令,則會將此者施加於該資料處理執行路徑。在, ,包的資料指令部份内,經指定位元表示該指令:係 :疋或可組態設定的資料處理指令,且在一可組態設定 才曰$的情況下,進一步的妳沪中a — a〜g 一 、工曰疋位兀會疋義該組態資訊。 =解碼之貧料處理指令的子型態而定,會將資料供應 ή機器之資料處理路徑的^或可組態以執行子路 12 200540713 - 徑。 可組態設定」表示從複數個預先定 在此 -靜態」)運算子組態之中選擇一項運算子組態的能力。運 算子的虛仿-靜態組態會有效於令一運算子(丨)執行某一種 運异,或(11)按某一方式互連於各相關要素,或是(iii) 一上述(1)及(ii)的組合。實作上,一選定虛仿—靜態組態 可-人决疋許多運算子的行為及互連性。這亦可控制切換 關恥於w亥貝料路彳空的組態。在一較佳具體實施例裡,至少 邛伤的複數個虛仿—靜態組態會由一資料處理指令之運算 2局邛所選定’即如後文所詳述。同時亦根據本較佳具體 二例 可組態設定指令」可按一多位元層級提供自 叮化運算的效能· 或—字組層級。,…按四個以上位元的多位元數值, 理八 執行於5亥機器之個別不同側的控制及資料處 運曾°疋義6己體接取(載入/儲存)以及基本算術 :二:::?制暫存器行列於控制運算 根據本發明之— 一輪入可為一向旦八體只轭例,各資料處理運算的至少 或該可組態設二:料::觀點’該可組態設定運算子及/ 定,以藉由於其間所執電路可被視為是可組態設 運算。例如,對ί料處理二連:”性質執行向量 含四個16位元純 开之64位疋向量輸入可包 運…在此,「向量」係-純量運 13 200540713 $元的組合。可對複數個純量運算㈣行向量 : 排列。並非-向量運算之所 有運“ “為向I ;例如’一向量運算可具 至少一向量兩者作為輸入. ^ „ A 、、良及 一向量。 翰,而-結果的輸出可為-純量或 ”在此’「控制指令」包含專屬於程式流程之指令,及 :支與位址產品作業;但無資料處理。「資料處理指令 ,含用於邏輯運算或算術運算的指令,對此至少—輪入: 疋一向量。資料處理指令可運算於 θ - CTU^ ^ 夕個貝料才日令’例如暫 處理裡,或在資料元素的更寬、短向量處理時 上述的控制指令及資料處理指令基本功能並不重… 而’-共同性為兩種數碼皆具有邏輯及純量算術功能, 圖2顯不對如® i之處理器的三種指令封包。各種的 Γ封包具有64位元長度。指令封係- 3純量型 『,用於密集的控制碼,且包含三個21位元控制指令 (c21)。指令封包 212 及 213 A TTm, Z13為LIW (長型指令字組)型熊, 用於平行地執行該資料路徑碼。在本具體實施例裡,:指 令212、213包含兩個指令’但若有需要可為不同數目。 該指令料212包含—34位元資料指令U34)及- 38位 元記憶體指令(m28);並且藉―資料側載入-儲存運算(m28 指令)而用於平行地執行該資料側算術(_ #令)。可利用 來自該控制的位址,自該處理ϋ之控制側或資料側讀 取,或予寫人,記憶體-類別指令ΟΠ28)。指令封包213包 含—34位元資料指令(d34)及_ 21位元控制指令(c2i); 14 200540713 且係用以藉一像是一控制側算術、分支或載入〜储存運管 之控制側運算(該c21指令),平行地執行資料側算術(該 指令)。 ~ 如圖1之具體實施例的指令解碼單元1〇1利用各指令 封包的初始識別位元,或是一些其他在預設位元位置處的 經指配識別位元,來決定要解碼哪—種封包。例如,即如
圖2所*,一初始位元Γ1」表示一、純量控制指令型態的 指令封包,具三個控制指令;而初始位元「〇丨」及「 表示型態' 212及213的指令封包,*封包212 _ —^斗」 及記憶體指令,而在封& 213裡具—資料及控制指令:在 解碼各指令封包的初始位元之後,該《 1的指令解:單元 ιοί會根據該指令封包的型態而定,將各封包的指:適: 地傳給該控制執行路徑102或該資料執行路徑丨〇3。田 爲執行圖2之指令封包,如圖!具體實 的指令解碼單Α⑻會從記憶體中循序地前往取_ ^也:會循續地執行各程式封包°在—指令封㈣,合循 序地執行該封& 2η的各指令,而會 曰楯 字組最低顯著端的21 4 - 64位元 指令,接著是在最高顯著端…^ 封包212 A 213内,可同時地執行各令 明之呈#办丨^田并μ 匕、、在根據本發 圖iV/J二,必然地需為此情況)。如此,在如 ΰ 1具體貫施例之處理器的程式順序在女 式封包;不過在一封包内的指令可循序 订各程 包型態211,或是同時地^ ^ 執仃,如對於封 "地執仃,如對於封包型態212及213。 15 200540713 底下,將型態2丨2
^ ^ 的指々封包分別地簡稱為MD及CD 封包(分別地包含一記憶體及一 令及-資料指令)。 ““,以及-控制指 在利用21位元控制指令裡’該圖1之具體實施例可克 服在具其他長度之指令的處理器裡發現到的 特別是支援資料指令之32办-播、、隹奸、 一 疋“準、、扁碼以及控制碼之1 6 位几「密集」編碼的組合之處理器。在這種雙16/32位元 處理器裡,會有—從對各指令使用雙編碼處理或是使用兩 ::具-藉分支、取獲位址或其他方式而在各編石馬法則間切 2之裝置的個別解碼器而出現的冗餘。根據本發明具體實 施例’可藉由對所有控制指令利用單—21位元長度而二 ,此冗餘。此外,使用21位元控制指令可移除從η位元 :密集」編碼法則裡不足夠的語意内容而出現缺點。由於 語意内容並不;1夠’因此使帛16位元法則的處理器通常 會,求-些設計妥協的混合’像是:使用雙運算元破壞性 運异,具相對應的數碼膨脹以供複製;使用透窗接取至— 暫存器行列之子集合,而具對溢露/填充或透窗指標操縱 之數碼膨脹;或是對32位元格式的頻繁反置,因為並非 所/有的運算皆可按16位元格式裡極少數的可用運算碼位 元來表示。在一本發明具體實施例裡,可藉利用21位一 控制指令來減輕這些缺點。 可根據本發明一具體實施例使用各種的指令。例如, 指令簽跡可為如下任一種,其中c-格式、Μ—袼式及卜袼 式’分別地表示控制、記憶體接取及資料袼式: 16 200540713 ---- 指令簽跡 —_數 '—— 使用於 Instr --~-——. jL令沒有引^_ 僅C-格式 Instr dst 指令具有一單一目的地引 -—-- 僅C-格式 -------〜 數 Instr srcO ---—-- 〜—----__ 令具有1 一來源引數 ~S_---- 僅Ο或D-格式 Instr dst, srcO 指令具有一單一目的地引 -—- D-及M-格式指令 -----~-~___ 引數 Instr dst, srcO, srcl 指令具有一單一目的地引 ----- C-、D-及Ml·袼式指令 數、兩個來源引數 1
亦根據本發明-具體實施例,各c-格式指令皆提供 SISD (單一指令單一資 而M杜人 供 平貝枓)運异,而Μ-指令及d-袼式指入 提供SISD或SIMD運算。例如,控制指令可提供—般算術: 比車乂及邏輯指《;控制流程指令;記憶體載人及儲存指人 等等。資料指令可提供—般算術、位移、邏輯及比較指令: 重排、排序、位元組延伸及排列指令;線性回饋位移^存 器;以及,透過可組態設定深度執行單元u〇 (如後詳述), 使用者-定義之指+。記憶體指令可提供記憶體載入及儲 存;用於控制暫存器的複製選定資料暫存器;對資料暫存 器之複製廣播控制暫存器;以及隨後於各暫存器指令。 根據本發明之一具體實施例,如圖丨之處理器特性為 一第一、固定資料執行路徑及一第二可組態設定資料執行 路徑。該第一資料路徑具有一按類似於傳統SIMD處理設 計之方式分割成各通巷的固定SIMD執行單元。該第二資 料路徑具有一可組態設定深度執行單元ιι〇。該「深度執 17 200540713 —處理器在將-結果送返至該暫存器行列之前, …出指令所提供之資料執行多個 力/其一深度執行範例可在運算(乘法及累加 =執行對來自於-單-指令的資料兩個運算(―:法及 徵亦二運了具有一數階為二的深度。深度執行之特 了為運开凡輸入的數量等於結果輪出的數量· 同地’該入價數等於出價數…匕,例如, 二:
算元加法即非-較佳深度執行的範例,因:運 的數!並不等於結果的數量,然而迴旋運算、 舍葉轉換、Trellis/Viterbi 塑廄渦、、*。。、, /、相關益、有限脈衝 二 及其他信號處理演算法皆為深度執行的範 二寺定數位信號處理器(DSP)演算法確執行深度執 I吊疋在位兀層級且按一記憶體對映的方式。 ,統的暫存器對映—般目㈣DSP並不執行深度運^而 疋在4 MAC運算裡於數階最多為二的深度執行指令。相 如圖1之處理器提供-暫存器對映之—般處理器,能 ::大於二的數階而深度執行動態可組態設定之字組層級 二? 1之處理器裡’該深度執行指令(待予執行的 數予函式圖)可由該指令本身之組態資訊而予以調整/自 2在該較佳具體實施例裡’格式指令含有被配置予組態 貝〇fl的位疋位置。為提供此功能,該深度執行單元11〇且 有可組’怒5又疋執行資源’這表示可上載各運算子模式、互 連,及常數以適符於各種應用。深度執行將一深度維度加 到°亥執订平行化’這是正交於由謂D & UW處理之早期 18 200540713 概念所提供的寶声…> 性产 、、又、、、又,這因此代表一用以增加一般目的 处。杏之逐-指令工作量的額外維度。 卢勃圖—3 _顯示—根據本發明—具體實施例之可組態設定深 又订早凡31 0的各元件。即如圖i所示
係該請執行路徑1G3之—部份了且^ 自圖2之MD及CD指令封包212及213的資料側 I I® 3裡會將來自ϋ 1之指令解碼單元1〇1 及=暫h行列1Q5之指^14及運以315供應給該 ::執订早元31〇。-在該經解碼…4内之多位元組 ::會被用來接取一控制映射316,這會將該多位元組 =開成一組相當複雜的組態信號’以組態設定該深度 一二早tc的各運异子。該控制㈣316可例如被嵌入作為 :核:’其中會將該指令之不同的可能多位元碼對映到 。的冰度執行單元之可能運算子組態。根據諮詢 映射⑽之查核表的結果,一综橫互連317會依任何必^ 排置方式來組態設定-組運算子318_321,以執行如該多 位凡指令碼所表示的運算子組態。各運算子例如包含—乘 法運算子318、-算術邏輯單元(則)運算子319、 運算子320或交跨通巷排列子321。在一具體實施例裡.二 心度執打單元包含十五種運算子:—個乘法運算子川、 八個ALU運算子319、四個狀態運料32〇以及兩個交於 通巷排列+ 321;然其他數量的運算子亦屬可能。被供^ 給該深度執行單元的各運算& 315可為例如兩個Μ位^ 運异元;這些會被供應給—可將各運算元供應給適當運曾 19 200540713 子318-321的第二综橫互連322。該第二综橫互連接⑽ 也會從各運算子318_321接收—中介結果的回饋似,然 後亦可又由该第二綜橫互連3 2 2供應給適當的運算子38 一 321。一第三綜橫互連323將來自該等運算子Mi 的 結果予以多工處理,並輸出一最終結果325。可利用各種 控制信號以組態設定各運算子;例如,圖3之具體實施例 的,制映身"16不必然地需要被按一單一查核表而嵌入,
而疋可具體實作為一系列的兩個以上經曝序排列之查核 表。該第一查核表内之一項目可指離於一給定多位元指令 碼而至-第二查核表,藉此降低對複雜運算子組態之各查 核表的所需儲存量。例如,該第一查核表可經組織成為一 組1範疇存館,因此可將多個多位元指令在該第一查核表 :知組合一,而各群組指向一對於該群組内之各多位元碼 提供特定組態的後續查核表。 % —根據如圖3之具體實施例,各運算子會有利地預組態 二疋成各種運算子類別。在實作上,這可藉-硬體接線之 策略層級而達成。這種方式之其一優點在於這意味著需要 儲存較少& & $ 曰]頂疋疋義組態,且該控制電路可較為簡單。例 ί Λ運异子Si8為經預組態設定為在乘法運算子之類別内; 。亥等運异子31 9係經預組態設定S ALU ϋ算子;各運算子 二預組態設定為狀態運算子;而運算子321經預組態 。又疋為父跨通巷排列子;而其他經預組態設定之運算 屬可食t 〇 、 以 b °不過’即使是運算子類別係經預組態設定,仍會 ' ^曰々的執行時間彈性,以便能夠排置至少:(i) 20 200540713 -:各類別内之各運算子的連接性;⑴)與來自 各運算子的連接性J⑴任何相關切換裝置之連接 肖以貝作一給定演具法之特定組態的最終排置。 :請技藝之讀者應即瞭解’前揭既已描述所被視為最 ::式以及其中執行本發明之適當其他模式,然本發明不 組態或方法步驟。孰拉本項括」:所揭不的特定設備 七命 热叫本項技藝之人士亦應認知本發明具 有廣泛的應用範圍,且且每〜 ^ . R W /、體只轭例谷納廣泛範圍之不同 I干r lf’而不致恃離本發明概念。特料,在此所述 長型二寬度並非為限制性,而稱為半字組、字組、 長i寻之位元寬度的任意選擇亦非如此。 【圖式簡單說明】 :更乙瞭解本發明’且為顯示如何可令該者產生實效, 現將按僅屬示範方々夫 ' 中· 式多…、於各隨附圖式而加以說明,其 圖1係一根據本發明一具體實施例之 電腦處理器的區塊圖; 非對%執仃路仕 理二根據本發明-具體實施例’用於如圖1之處 理益的不乾性指令類別;以及 圖係略圖,此圖顯示一根據本發 可組態設定深度執行單元之各元件。 -體“』 【主要元件符號說明】 1 0 0指令串流 1 〇 1指令解碼單元 21 200540713 102控制執行路徑 103資料執行路徑 104控制暫存器行列 105資料暫存器行列 106分支單元 107執行單元 108載入儲存單元 109固定執行單元 11 0可組態設定深度執行單元 211指令封包 212指令封包 213指令封包 31 0可組態設定深度執行單元 314指令 315運算元 31 6控制映射 317綜橫互連 318乘法運算子 319 ALU運算子 320狀態運算子 321交化通巷運算子 322第二綜橫互連 323第三综橫互連 22

Claims (1)

  1. 200540713 十、申請專利範圍: 1 · 一種具控制及資料處理功能之電腦處理器,其中包 含: 一解碼單元,用以解碼各指令; 一資料處理設備,其中包含含固定運算子之第,資料 執行路徑’以及含至少一可組態設定運算子之第二資料執 行路徑,該等可組態設定運算子具有多個預先定義組態, 至少部份的該等可藉一資料處理指令之運算碼局部而加以 • 選擇; 其中該解碼單元可運作以偵測一資料處理指令究係定 義一固定貧料處理運算或一可組態設定資料處理運算,該 解碼單元可令該電腦系統供定資 料處理指令時處理至該第一資料執行路徑貞二偵測别〆 可組態設定資料處理指令時則至該可組態設定資料執行路 2.如申凊專利範ϋ帛丨項所述之電腦處理器,其中該 解石馬單元能夠解碼一來白 勹 水自圮憶體之指令封包串流,各封包 包含多個指令。 3 ·如申請專利範圍第 解碼單元可運作以偵測— 令。 1項所述之電腦處理器,其中該 指令封包是否包含一資料處理指 4 ·如申請專利範圍第 可組態設定運算子可在多 5 ·如申請專利範圍第 1項所述之電腦處理器,其中該 位元數值層級上進行組態設定。 4項所述之電腦處理器,其中該 23 200540713 可組態設定運算子可在包括含四個以上位元之多位元數值 的多位元數值之層級進行組態設定。 6 ·如申睛專利範圍第4項所述之電腦處理器,農 I 5¾ 可組悲设疋運异子可在字組層級上進行組態設定。 7 β如申請專利範圍第1項所述之電腦處理器, /、τ吞亥 第一資料執行路徑的多個固定運算子係經排置,以根據單 一指令多重賁料原理而在各獨立通巷裡執行多個固定運 算0
    8·如申請專利範圍第1項所述之電腦處理器, 一 w ,、Τ吞亥 第二資料執行路徑的多個可組態設定運算子係經排置以根 據單一指令多重資料原理而在不同通巷裡執行多重運算。 9·如申請專利範圍第i項所述之電腦處理器,其令該 第二資料執行路徑的可組態設定運算子係經排置以接收合 決定所執行運算之性質的組態資訊。 " 10·如申請專利範圍第9項所述之電腦處理器,其令該 第二資料執行路徑的可組態設定運算子係經排置以接收來 自一定義可組態設定資料處理運算之指令攔位,而決定= 執行運异之性質的組態資訊。 11 ·如申睛專利範圍第丨項所述之電腦處理器,其中兮 第二資料執行路徑之可組態設定運算子係經排置以接收包 含控制相對互連性之資訊的組態資訊。 1 2.如申請專利範圍第9項所述之電腦處理器,其中包 含一關聯於該第二資料執行路徑之可組態設定運算子的= 制映射’該控制映射可運算以接收來自於一可組態設定; 24 200540713 -料處理指令的至少一組態位元,並以回應於此而將組態資 訊提供至該可組態設定運算子。 1 3.如申請專利範圍第1 2項所述之電腦處理器,其中 該組態資訊控制該等可組態設定運算子之兩者或兩者以上 之間的互連性。 14.如申請專利範圍第丨項所述之電腦處理器,其中該 第二資料執行路徑之可組態設定運算子係經排置以接收= 定一待予執行運算之性質的組態資訊,或是控制來自於除 • /可組態設定資料處理指令以外之來源的互連性之組態資 訊。 、 I5.如申請專利範圍第1項所述之電腦處理器,其中該 第二資料執行路徑之至少一可組態設定運算子能夠在將= 果运返至一結果儲存之前,先藉一大於兩個計算作業之執 行深度來執行資料處理指令。 .如申請專利範圍第1項所述之電腦處理器,其中包
    含切換機制,用以接收來自一可組態設定資料處理指人 的《處理運算S,並視適當切換該等以供應給—或更; 的該·#可組態設定運算子。 申明專利範圍第1項所述之電腦處理器,其中勹 二、:機制’以接收來自於一或更多該等可組態設定運 鼻!’並視適當切換該等結果以供應給-或更多的 結果儲存及回饋迴圈。 申明專利範圍第1項所述之電腦處理器,其中 含夕個抆制映射’以將所接收來自於可組態設定資料處理 25 200540713 指令之組態位元對映到次 J、、且悲貝訊,以提供給可該第二資料 執行路徑的組態設定運曾子。 19. 如申請專利範_ 固弟1項所述之電腦處理器,其中包 含一切換機制以接收决ώ ^ ^ &自表一控制映射的組態資訊,並視 適畜將此切換以供應給次 〜弟—貝料執仃路徑的可組態設定 運异子。 20. 如申請專利範 圍弟1項所述之電腦處理器,其中包 έ徒一或更多的下列項 、目中所4出的可組態設定運算子: 乘法累加運算子、算術 ^ 排列子。 ^子、運鼻子以及交跨通巷 〃巾月專矛J範圍第1項所述之電腦處理器,其中包 含各運算子及-能夠執行一或更多如下選出之運算的指令 集.快速傅黎葉轉換、反快速傅黎葉轉換、Viterbi編碼/ 解碼、Turbo編碼/解碼以及有限脈衝響應計算;以及其他 的相關或迴旋計算。 22·種刼作一具控制及資料處理功能之電腦處理器的 方法,該電腦處理器包含一含固定運算子之第一資料執行 路徑,以及一含至少一玎組態設定運算子之第二資料執行 路徑,該等可組態設定運算子具有複數個預先定義組態, 其至少部份可藉一資料處理指令之運算碼局部而加以選 擇,該方法包含: 解碼多個指令,以偵測該等複數個指令之至少一資料 處理指令究係定義一固定資料處理運算或一可組態設定資 料處理運算; ' 26 200540713 - 令該電腦處理Is供應貢料,以當Y貞測到一固定資料處 理指令時處理至該第一資料執行路徑,而當偵測到一可組 態設定資料處理指令時則至該可組態設定資料執行路徑; 以及 輸出各項結果。 23. —種包含用以啟動一電腦處理器之電腦程式碼裝置 的電腦程式產品,該電腦處理器包含一含固定運算子之第 一資料執行路徑,以及一含可組態設定運算子之第二資料 _ 執行路徑,該等可組態設定運算子具有多個預先定義之組 態,其至少部份可藉一資料處理指令之運算碼局部而加以 選擇,以: 解碼複數個指令,以偵測該多個指令之至少一資料處 理指令究係定義一固定資料處理運算或一可組態設定資料 處理運算; 令該電腦處理器供應資料,以當偵測到一固定資料處 理指令時處理至該第一資料執行路徑,而當偵測到一可組 • 態設定資料處理指令時則處理至該可組態設定資料執行路 徑;以及 輸出各項結果。 24. —種資料處理指令集,其中包含具有表示一資料處 理運算之固定型態的第一複數個指令,以及具有表示資料 處理運算欄位之可組態設定型態的第二複數個指令。 25. —種具有一包含可組態設定運算子之資料執行路徑 的電腦處理器,其中各可組態設定運算子包含複數個預先 27 200540713 各群組包含來自個別運算子類別 定義群組之運算子組態 的運算子。 2 6 ·如申請專利範圍筮Q 固弟25項所述之電腦處理器,其中 運算子類別包含從下列遴山^丄 J、出的類別之一或多者··乘法累加 運算子、算術運算子、狀㈣算子及㈣子。
    、7· 士巾專利範圍帛25項所述之電腦處理器,其中 :運算子組態之預先定義群組之一或多者内所選擇之各運 介子間的連接,可由—在-由該電腦處理器所執行之指令 内的運算碼局部所加以組態設定。 2 8.如申凊專利範圍第2 5項所述之電腦處理器,其中 於從 _ , 、 ^ 以上運算子組態之預先定義群組内所選擇之各運 #子間的連接,可由在一由該電腦處理器所執行之指令内 、運▼碼局部所加以組態設定。
    如次頁 28
TW094109120A 2004-03-31 2005-03-24 Apparatus and method for dual data path processing TWI362617B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/813,433 US8484441B2 (en) 2004-03-31 2004-03-31 Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths

Publications (2)

Publication Number Publication Date
TW200540713A true TW200540713A (en) 2005-12-16
TWI362617B TWI362617B (en) 2012-04-21

Family

ID=34962960

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094109120A TWI362617B (en) 2004-03-31 2005-03-24 Apparatus and method for dual data path processing

Country Status (8)

Country Link
US (1) US8484441B2 (zh)
EP (1) EP1735699B1 (zh)
JP (1) JP5382635B2 (zh)
KR (1) KR20070037568A (zh)
CN (2) CN101963897B (zh)
CA (1) CA2560093A1 (zh)
TW (1) TWI362617B (zh)
WO (1) WO2005096142A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047094B2 (en) 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US7676646B2 (en) 2005-03-02 2010-03-09 Cisco Technology, Inc. Packet processor with wide register set architecture
US7529909B2 (en) * 2006-12-28 2009-05-05 Microsoft Corporation Security verified reconfiguration of execution datapath in extensible microcomputer
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
KR101893796B1 (ko) 2012-08-16 2018-10-04 삼성전자주식회사 동적 데이터 구성을 위한 방법 및 장치
CN111158756B (zh) * 2019-12-31 2021-06-29 百度在线网络技术(北京)有限公司 用于处理信息的方法和装置

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228498A (en) * 1977-10-12 1980-10-14 Dialog Systems, Inc. Multibus processor for increasing execution speed using a pipeline effect
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
EP0419105B1 (en) * 1989-09-21 1997-08-13 Texas Instruments Incorporated Integrated circuit formed on a surface of a semiconductor substrate and method for constructing such an integrated circuit
JPH05324430A (ja) 1992-05-26 1993-12-07 Toshiba Corp データ処理装置
US5423051A (en) 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
US5600801A (en) 1993-07-15 1997-02-04 Dell Usa, L.P. Multiple function interface device for option card
US5600810A (en) 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5737631A (en) * 1995-04-05 1998-04-07 Xilinx Inc Reprogrammable instruction set accelerator
JP2931890B2 (ja) 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
JP3658072B2 (ja) 1996-02-07 2005-06-08 株式会社ルネサステクノロジ データ処理装置およびデータ処理方法
JPH09265397A (ja) 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
GB2311882B (en) 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
DE19634031A1 (de) 1996-08-23 1998-02-26 Siemens Ag Prozessor mit Pipelining-Aufbau
US6006321A (en) 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
JP3451921B2 (ja) 1998-03-30 2003-09-29 松下電器産業株式会社 プロセッサ
EP0953898A3 (en) 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
US6226735B1 (en) 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6292845B1 (en) 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
DE19843640A1 (de) 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
US6553414B1 (en) 1998-10-02 2003-04-22 Canon Kabushiki Kaisha System used in plural information processing devices for commonly using peripheral device in network
JP5148029B2 (ja) 1999-02-15 2013-02-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 構成可能な機能ユニットを備えるデータプロセッサ及びそのようなデータプロセッサを使用する方法
EP1050810A1 (en) 1999-05-03 2000-11-08 STMicroelectronics SA A computer system comprising multiple functional units
GB2352066B (en) 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
US6526430B1 (en) 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
EP1102163A3 (en) 1999-11-15 2005-06-29 Texas Instruments Incorporated Microprocessor with improved instruction set architecture
US7039790B1 (en) 1999-11-15 2006-05-02 Texas Instruments Incorporated Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit
US6255849B1 (en) 2000-02-04 2001-07-03 Xilinx, Inc. On-chip self-modification for PLDs
TW516320B (en) 2000-02-22 2003-01-01 Intervideo Inc Implementation of quantization for SIMD architecture
JP2001306321A (ja) 2000-04-19 2001-11-02 Matsushita Electric Ind Co Ltd プロセッサ
US7120781B1 (en) 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
EP1417590A2 (en) * 2000-10-02 2004-05-12 Altera Corporation (a Delaware Corporation) Programmable logic integrated circuit devices including dedicated processor components
US20020174266A1 (en) * 2001-05-18 2002-11-21 Krishna Palem Parameterized application programming interface for reconfigurable computing systems
JP2003005958A (ja) 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003099397A (ja) 2001-09-21 2003-04-04 Pacific Design Kk データ処理システム
US6798239B2 (en) * 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
JP3785343B2 (ja) 2001-10-02 2006-06-14 日本電信電話株式会社 クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法
JP3779602B2 (ja) 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
KR100464406B1 (ko) 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US7159099B2 (en) 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
JP3982353B2 (ja) 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7024543B2 (en) 2002-09-13 2006-04-04 Arm Limited Synchronising pipelines in a data processing apparatus
TW569138B (en) 2002-09-19 2004-01-01 Faraday Tech Corp A method for improving instruction selection efficiency in a DSP/RISC compiler
US7464254B2 (en) 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
JP2004309570A (ja) 2003-04-02 2004-11-04 Seiko Epson Corp 光通信モジュール、光通信装置、及びその製造方法
US7496776B2 (en) 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US7176713B2 (en) * 2004-01-05 2007-02-13 Viciciv Technology Integrated circuits with RAM and ROM fabrication options
US7949856B2 (en) 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit

Also Published As

Publication number Publication date
JP2007531135A (ja) 2007-11-01
CN101963897B (zh) 2014-03-12
EP1735699B1 (en) 2017-11-22
EP1735699A2 (en) 2006-12-27
CN101963897A (zh) 2011-02-02
KR20070037568A (ko) 2007-04-05
CA2560093A1 (en) 2005-10-13
CN1989485B (zh) 2011-08-03
JP5382635B2 (ja) 2014-01-08
CN1989485A (zh) 2007-06-27
TWI362617B (en) 2012-04-21
US8484441B2 (en) 2013-07-09
WO2005096142A2 (en) 2005-10-13
WO2005096142A3 (en) 2006-06-08
US20050223197A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
TWI384400B (zh) 用於非對稱雙路徑處理之電腦處理器、其操作方法和相關的電腦程式產品
TWI450192B (zh) 用於處理器中之控制處理的裝置及方法
KR100464406B1 (ko) 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US9424045B2 (en) Data processing apparatus and method for controlling use of an issue queue to represent an instruction suitable for execution by a wide operand execution unit
US9575753B2 (en) SIMD compare instruction using permute logic for distributed register files
US8782376B2 (en) Vector instruction execution to load vector data in registers of plural vector units using offset addressing logic
US9965275B2 (en) Element size increasing instruction
KR100988964B1 (ko) 마이크로프로세서 내에서 다수의 레지스터 유닛들로부터의 대응하는 하프워드 유닛들을 결합하기 위한 방법 및 시스템
TW200540713A (en) Apparatus and method for dual data path processing
EP3326060A1 (en) Mixed-width simd operations having even-element and odd-element operations using register pair for wide data elements
US11093246B2 (en) Banked slice-target register file for wide dataflow execution in a microprocessor
US7620796B2 (en) System and method for acceleration of streams of dependent instructions within a microprocessor