TW200404205A - An address generation unit for a processor - Google Patents
An address generation unit for a processor Download PDFInfo
- Publication number
- TW200404205A TW200404205A TW092113724A TW92113724A TW200404205A TW 200404205 A TW200404205 A TW 200404205A TW 092113724 A TW092113724 A TW 092113724A TW 92113724 A TW92113724 A TW 92113724A TW 200404205 A TW200404205 A TW 200404205A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- processor
- registers
- vector
- register
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
- G06F15/8053—Vector processors
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
200404205 玖、發明說明: 【發明所屬之技術領域】 本發明係關於一用於一處理器的位址產生單元。 【先前技術】 在#唬處理中,有相當咼比率的演算法使用迴圈,通常 具有相當多的重複計數並包括相當少的指令和/或在相當 少的資料上運算,例如一直列像素區塊。為改良處理速度, 數位信號處理(DSP)配置有所謂的位址產生單元(AGU)。這 些單兀從一目前位址產生該下一位址。某些單元支援數個 走址模式。該單元視該定址模式而決定使用多少暫存器來 汁异廷些位址。已知位址產生單元可用於產生資料位址(有 時也被稱為位址計算單元(ACU))及產生指令位址(有時也 被稱為迴圈控制單元)。 WO 01/04765敘述一用於信號處理之VLIW處理器。該處 理器包括四個相同的處理元素,每一個皆配置有許多功能 單兀。孩處理το素中的每一個元素包括一當做功能單元的 位址產生單元(AGU)。該AGU支援七個定址模式,即,直 接定址;基底加補償定址;間接/索引定址;基底加索引定 址,循環索引定址;和處理元素相對定址。對每一個定址 模式而f,暫存器是用於計算該位址。對於該定址模式, 计异下一個位址的該演算法,該演算法所使用的暫存器和 範例硬貫現等的細節,讀者可參考〇1/〇4765。該VLIW 指令包括用於每-個處理S素的_指令槽(slQt)。該定址模 式被標示為該指令的一部份。該暫存器為該處理器環境的 85371 200404205 一部份,並可被載入、儲存、和復原就如同其它也為該環 境一部份的暫存器。用該VLIW處理器結合一寬記憶體來儲 存該等VLIW。每一記憶體直列儲存一 VLIW指令。每一個 被直接提取和饋入該解碼邏輯的指令存取該記憶體,以平 行控制多重執行單元的執行。 該週知VLIW處理器的處理元素為單一指令多重資料流 (SIMD)處理器,也稱為向量處理器。通常一 VLIW向量處理 器對信號處理的效能相當高。需要此一效能的信號處理任 務,像是用於第三代移動式通信標準的一軟體數據機,通 常包括許多可向量化的子任務。該向量處理的確使此子任 務能快速完成。在此環境中完成的也包括已處理一資料方 塊以及稍後(通常在固定週期内)再繼續處理一新的資料方 塊的情況。結果,也經常發生子任務間的交換。一環境交 換需要儲存一或多個ACU的目前暫存器,該ACU係用於目 前保留的任務;並且將該所儲存的暫存器載入該有關ACU 的相關暫存器内,該ACU係用於最近激發或重新激發的任 務。每一 ACU,例如,可能包括四個暫存器。對一 ACU而 言,該環境交換因而可包括存檔/恢復總數為8個的暫存器。 【發明内容】 本發明目標之一為提供一更適於高效能任務的處理器架 構,特別是用於移動式通信系統的信號處理。進一步目標 為將此架構用於向量處理器。 為達此目標,該處理器包括··一記憶體埠,在一位址的 控制下存取一實體記憶體;至少一處理單元,用於執行儲 85371 200404205 存在孩記憶體内的指令和/或用於在儲存在該記憶體内的 貝料上運作;一位址產生單元(此後稱"AGU”),用於產生一 控制該記憶體存取的位址;與—複數個_存器有關的該 AGU,孩暫存器在位址產生機制的控制下致能該產生 該位址;和—記憶體單元,被—運算激發,運轉以儲存/載 入該N暫存器中的k個暫存器,其中2<=k<=N,其中該記 憶體單元包括一連接器,將該k暫存器連接至-記憶體字 組,該字組經由該記憶料寫人該記㈣;和-分離—字 組的分離器,該字組經由該記憶體埠從該記憶體讀取至該k 暫存器内。 ;、本發明人已了解到:隨著該等處理器的效能增加,花名 及AGU暫存③架構上的時間逐漸成為瓶頸。在傳統處理突 架構中’-記憶體週期只能儲存或復原—暫存器,導致: 費终多時間等待正確的資料啟動(建構)該AGU。為克服此 缺點’ —«要Μ麵發至少:暫#||,細卜環境交 ,或明確的指令,㈣存或復原某些朗有的AGU暫存 :離ί達此目的’該處理器的記憶體單元包括-連接器和 = :,,將-複數個該AGU暫存器映成至—記憶體字組。 哭貝本發明之該AGU和記憶體單元可用於任何處理 ;元用二^信號處理(DSP)。然偏好將該AGU和記憶體 用H量處理器。截至目前為止,向量處理器尚未 廣心用於信號處理。部 一 使得該傳統向量處理哭;構;“所謂的”Am-】法則”, 率很低H μ⑽ 非刚%向量化方面效 85371 /則祝明—配置有P個處理元素的向量處理器經 200404205 向f化後所得到的整體加速,為一可被向量化的碼⑴的分 數㈡數I於(l-f + f/P) 1。此意味著:當可向量化的碼 時,整體加速將小於2(而非理論上的最大加速32)。這是因 :無法向量化所剩餘的50%的碼,並因而對此部份的碼而 I並未達到任何加速。即使可向量化9〇%的碼,該加速仍 “、8的Q數。對消費性電子應用方面,特別是可移動式通 L,右可達到一顯著的加速,才有理由接受一向量處理器 的頟外成本。如本發明之該AGU和記憶體單元,透過對該 資料處理和/或指令迴圈提供最佳支援並有效地處理跳躍 和環境交換,來打破Amdahl法則。 如在該附屬申請專利範圍第2項中所述,該記憶體單元運 專、方、3 Θ 记憶體的一 I買取/寫入週期内執行儲存/載 入。以此法,可快速產生該AGU架構。偏好如在該附屬申 請專利範圍第3項中料,所有的AGU暫存器皆在一運算中 被儲存/載入。 # 在咸附屬申叩專利範圍第4項中所述,該處理器具有數 組暫存器,其中每一組致能一AGU,以產生一位址。隨著 效能增加,該處理器可转執行更#任務,並因而可從使 用-組以上的暫存器中獲益。為有效處理資料或指令迴 圈’可使用每個迴圈—組暫存器的結構。為加速建構該複 數組’透過將數組暫存器連接至一記憶體字組,可在一運 算中儲存一組以上的暫存器。如在該附屬申請專利範圍第5 項中所述,該處理器可配置有數個AGU,每—個皆且有自 己的-組暫存器。該不同的AGU在功能上可相同(並因而且 200404205 至不二的暫存器)。若偏好如此,不同的AGU可被指派 好1用計算計劃並因而具有不同數目的暫存器。偏 心=憶體字組使至少二湖的所有暫存器能在-運
中所、水,载人。或者,如在該附屬申請專利範圍第6项 έ =,—AGU也可與一組以上的暫存器相關,其中每— 位址的產生。在此實例中,可選擇性地將該AGU 2 ’級’以執行-新的位址計算。偏好可將至少二組 秦子态的所有暫存器儲存在一記憶體字組内。 如在該附屬申請專利範圍第8項中所述,偏好可選擇需被 、/、、且暫存态。以此法,可以最佳方式將AGu和/或數 組暫存置給任務’其中對牵涉到該任務的—環境切換 起反應,可輕易選擇所牽涉到的AGU和/或數組暫存器,並 達成再架構。為簡化該選擇,AGU和/或該數組暫存器可分 2單獨可選擇的群組。然後可依任務自由指派該群組。再 朵構發生的是一次至少一群組。 、如该附屬中請專鄉m第”中所述,該記憶體字組的寬 度為該處理器可在其上運作的該最小字組的倍數。該暫存 器被儲存在處理器字組界限上的該記憶體内。以此法可輕 易改變孩暫存器的值而不需額外的指令來設定該agu暫存 器。 如在该附屬申請專利範圍第8項中所述,偏好該處理器可 在衩數個Μ貝料元素上平行運作(例如,該處理器為一單 一指令複數資料(SIMD)/向量處理器),並且該記憶體為寬 的,以便能在一記憶體字組内儲存所有…資料元素。以此 85371 -10- 200404205 法可在一運算内儲存/载入agu的許多暫存器。 本發明的這些和其它觀點從後述之具體實施例中將很明 顯’並將參考該具體實施例來加以說明。 【實施方式】 該位址產生單WAGU)和記憶體單元最好祕_處理器 内,該處理器已最佳化以用於信號處理。此一處理器可為 -數位信號處理(DSP)或任何其它適合的處理器/微控制 器。以下敘述描述在-功能十分強大的純量/向量處理哭内 使用該單元。可獨立或結合另一處理器來使用此一處理 器。圖i圖示一可使用該純量/向量處理器之較佳架構。此 架構係透過一匯流排110連接三主要元件。連接這三個元件 之該匯流排110可為任何適合的匯流排,例如一 AMBA高速 匯流排(AHB)。該主要元件有: 該可程式化純量/向量處理器12〇,包括數個功能單元和一 區域資料記憶體(在圖1中被稱為向量記憶體); 一微控制器或數位信號處理(DSP)子系統130,包括有限的 建於晶片上的(on-chip)程式和資料記憶體; 一介面方塊140。 該純量/向量處理器120主要係用於一般”負載量大,,的處 理,特別是内部迴圈的處理。該純量/向量處理器包括向量 處理功能。當如此,它對要執行的碼的可向量化部份提供 大規模平行。大部份的所有信號處理將由該純量/向量處理 器的向量區間執行。該處理器透過採用一例如32個相同處 理元素的陣列執行相同指令來提供大量平行。結合一 32字 85371 - 11 - 200404205 ^白^憶體介面,使得該處理器能以低成本和適度的耗 二里二的可程式化效能水準。然而,由於許多演 式呈現足狗的資料平行,因而要窮究此 、…不可行的。根據Amdahl法則,將該碼直接可向量化 的部份向量化後’大部份的時間都是花在該剩餘的碼上 面。涊剩餘的碼可分成四種: 與=址相關的指令(例如使用餘數運算定址,將—指示器遞 增至一循環緩衝器内) ㈣的純量運算(亦即,對應該向量處理器主迴圈的純量運 异) 迴圈 不規則的純量運算。 對這些種射的每—個種㈣言,碼的該部份十分依賴 所執仃的演异法。例如,該Golay相關器(用於p_s⑶搜尋) 需要許多與位址相關的指令;但對例如㈣等其它演算法 而言則可能不-樣。透過使用如本發明之該AGU/記憶:單 兀,可最佳化與位址相關的指令和趣圈的效能。透過嚴密 整合-處理器内的純量和向量處理,可最佳化該規則的純 量運算掃描。本發明人對所有與第三代數據機相關的潘算 法的研究揭露出不規則純量運算的部分十分有限。此特質 可分離該純量/向量處理器120和該微控制器或數位信號處 理(DSP)13G之間的任務,其中該分離的微㈣器或數位信 號處理(朦)130執行該不規則的任務,並且,最好也控制 該純量/向量處理器。在此較佳架構中,該純量/向量處理器 85371 200404205 120充當一可程式化的輔助處理器(在後面也稱為cVp,輔助 向量處理器)。該純量/向量處理器120和該微控制器130之間 的介面處理通信(例如經由共享的記憶體)和同步化(例如經 由共旱的記憶體和狀態信號)。該介面最好為記憶體映成式 的介面。 該介面方塊140可讓該處理器與剩餘的系統互動。在該較 佳具體貫施例中,使用該純量/向量處理器做為第二代/第三 代和動式網路的軟體數據機(transce][ver)。對此一軟體數據 機功能而言,該介面方塊140可包括專用硬體,做為一前 端,其主任務之一為在該微控制器13〇的控制下將控制和資 料字組傳送至該向量記憶體,例如DMA。接著由該純量/ 向量處理器處理在向量記憶體内的資料。 該純量/向量處理器120可為該匯流排π 0的從屬處理 為’而#亥微控制器130和該介面方塊140 (可包括一 DMA單 元)則充當一主處理器。所有與該CVP的通信,不管是程式、 貝料或控制’取好皆為記憶體映成式的。該記憶體可為一 非建於晶片上的(off-chip)動態隨機存取記憶體(DRam),並 且此DRAM也可被該純量/向量處理器用來做為(非)交錯式 記憶體。 在敘述中主要使用’’位址計算單元,,或ACU。為了該敘逑 的目的,這也被視為與”位址產生單元”或AGU相等。該敘 述主要專注於使用此單元來計算資料位址。熟諳先前技藝 者也能使用相同功能來計算指令位址(”迴圈控制”)。 圖2圖示如本發明該處理器之主要結構。該處理器包括〜 85371 -13 - 200404205 管道化式向量處理區間21 0。為支援該向量區間的運算,該 純量/向量處理器包括一純量處理區間220,被裝置成能平 行於該向量區間運算。最好該純量處理區間也為管道化 式。為支援該向量區間的運算,該向量區間的至少一功能 單元也提供該純量區間對應部份的功能。例如,一位移功 能單元的向量區間在功能上也能位移一向量,其中一純量 元件係由該位移功能單元的純量區間供應(或被遞送至該 區間)。如此,該位移功能單元涵蓋該向量和該純量區間二 者。因而,至少某些功能單元不僅具有一向量區間也具有 一純量區間,其中該向量區間和純量區間可透過交換純量 資料而合作。一功能單元的向量區間提供該原始處理能 量,其中該對應的純量區間(亦即該相同功能單元的純量區 間)透過供應和/或消耗純量資料而支援該向量區間的運 算。用於該等向量區間的向量資料係由一向量管道化供應。 在圖2的較佳具體實施例中,該純量/向量處理器包括以 下七個特殊功能單元。 指令分散單元(IDU 250)。該IDU包括該程式記憶體252, 讀取連續的VLIW指令並將每一指令的7個區段分配給該7 個功能單元。最好,它包括一迴圈單元,該迴圈單元能支 援多達三個巢狀階層的零負荷迴圈。在該較佳具體實施例 中,該單元並不支援分支、跳躍或中斷。該起始程式計數 器係從該限制描述子載入,詳述如下。 向量記憶體單元(VMU 260)。該VMU包括該向量記憶體 (未顯示於圖2)。在每一指令期間,該單元可從該向量記憶 85371 -14- 200404205 體傳送一列或一向量,或接收一列至該向量記憶體。該相 同指令可額外指定一純量傳送運算和/或一接收運算。該 VMU為唯一連接至外界的功能單元,亦即至該外部匯流排 110。 該碼產生單元(CGU 262)。該CGU擅長有限欄位計算/數 學。例如,可用該CGU產生CDMA碼小段向量以及相關功 能,例如頻道編碼和CRC。 算術邏輯-乘及加單元(ALU-MAC)單元(AMU 264)。該 AMU擅長規則的整數和定點計算/數學。它支援向量内的運 算,其中計算/數學係在多向量上以順著元素的方向執行。 在一較佳具體實例中,該AMU也提供某些向量間運算,其 中計算/數學係在一單一向量内的數個元素上執行。
ShuFfle單元(SFU 266)。該SFU可根據一特定的弄亂樣式 重新安排一向量的元素。 向左位移Shift-Left單元(SLU 268)。該SLU可將該向量的 數個元素移位一單位,例如向左移一個字組,二個字組或 四個字組。所產生的純量被提供給其純量區間。取決於所 發布的SLU向量運算的類型,該所消耗的純量可以是0,或 者取自其純量區間。 向右位移Shift-Right單元(SRU 270)。該SRU類似SLU, 但向右位移。此外,它具有合併連續結果的能力,該等結 果得自該AMU上的向量間運算。 下表顯示所有功能單元FU皆具有一功能性向量區間 2 1 0,其中某些單元並未具有一控制區間230或純量區間 85371 -15 - 220 ° 220 °200404205 功能單元 控制 純量 向量 指令分散單元 循序,迴圈 指令分配 向量記憶體單元 位址計算 純量i/o 向量輸入/輸出(I/O) 碼產生單元 產生碼向量 算術邏輯-乘及加 (ALU-MAC)單元 索引 廣播 向量間:ALU,MAC,mul,.. 區段 向量内:add,Max 弄亂樣式(Shuffle)單元 向量弄亂樣式 向左位移(Shift-Left)單元 純量i/o 向量位移 向右位移(Shift-Right)單元 純量i/o 向量位移 如本發明之該純量/向量處理器以二主要方式應用指令 階層平行: 向量處理,其中一單一指令係在(純量)資料的數個向量上運 算。此方法也稱為單一指令流,多重資料流或SIMD。 多重功能單元的平行處理,每一個皆在向量上運算。可視 為一(限制的)種形式的VLIW指令階層平行。 請注意此二種形式的指令階層平行皆為獨立的,並且其效 果為累加的。 FU内通信 該等功能單元(FU)平行運算。每一 FU能接收和傳送向量 資料。許多FU也能接收和傳送純量資料。 85371 -16- 200404205
抑所有功能單元皆平行運算。—旦接收—指令中該等功能 -々區'^又他們即輸入、處理並輸出資料,該資料包括 向量資料和,其中只要能應用,純量資料兩者。在FU内, 該通信僅限於該等純量區或向量區間内(Fu内通信)。亦 即’除了孩IDU外,所有Fu的向量區間係由一管道化連接。 在-較佳具體實例中,此管道化可根據指令基礎來建構。 為達此目的,偏好該即由—互連網路互連,原則上可讓每 -向量區間在每一週期内從任何其它的向量區間接收一向 量。此特色致能’除了其它功能外,該FU (除了該腿外) 的任意管道化的建立。該有助於向量通路的功能單元中的 六個可輸出-向量’並在每_時脈週期内將該向量平行傳 送給其它單元。這些功能單元也能從另一單元接收一向 量。該網路接近完全連接。Ο古、々士、、, 、较一有沒有意義的連結才會被省 略。該AMU能同時接收二向量。如 、、…紗曰2 士 里如圖2所不,孩網路最好由 每一 FU形成’每一單元皆被各忐 抑 白攸田成一早一來源(以一 disc標示) 85371 -17- 200404205 連接至-網路通路。該網路被連接至所有其它的通路 為-單-汲(以三角形標示)。該F_iw指令 故 它應從哪-條通路完成—向量執行。以此法 ^ 令基礎建構該管道化。每-通路可移轉-完整向二旨 使用256條平行線。類似地,可由—單獨的管道化連σ 某些該™的純量區間。最好,此管道化也可根據指令3 建構。该⑽量區間内的互連網路可為部份的,亦即至Γ -二的純量區間無法傳送或接收純量。因而,可指定G 勺f C化/入序可獨1建構該純量和向量管道化。例如, 透過在該相關的VLIW區間内標示要被該功能單元σ’ 純里管道化和向量管道化二者。 、 、該不同功能單元的控制區間内並未指定可連接性。這些 控:區間從孩IDU接收一區段的該乂㈣指令,更新本身的 狀怨,並控制其各別的純量和向量區間。 FU間通信 在一 FU内,這些區間之間(ρυ間通信)有嚴密的互動。該 互動為该FU運算的整數部份。該SLU和SRU皆為實例,其 中斤產生的和/或所芫成的純量被供應至/取自該fu對應的 純量區間部份。 " _通常在單一週期内執行數個指令。在該向量記憶體的擁 塞會造成例外並出現停滞週期。 資料寬度 在一較佳具體實例 貧料寬度和資料類型 中’該純量/向量處理器支援一複數個 ’如圖3所示。記憶體定址的基本單位 85371 -18- 200404205 為一字組’也稱為單一字組。偏好資料寬度為單一字組 (W)、二個字組(DW,或2W=16位元))、或四個字組(QW或 4W-32位元)。一字組的大小為w=:8位元。偏好三種大小的 純量:(單一)字組,二個字組,和四個字組。一向量具有一 固疋大小的PQ四個字組。最好能以下列三種格式之一建構 字組:
Pq個四字組大小的元素, PD 2Pq個一字組大小的元素, ps二2PD = 4Pq個(單一)字組大小的元素。 孩向量-元素索引範圍為[〇…4Pq-1]。因而二個字組具有 偶數個索引,並且四個字組的索引為四的倍數。圖3提供該 貝料大小的概觀。該架構的為具有完整可測的Pq,並且由 任何PqM的向量大小來定義。然而,大部分的情況較偏好 卜為2的乘冪。在該較佳具體實施例中,PQ為8,意指一資 料通路寬度和記憶體寬度為32字組。 指令 指令可為一控制指令亦或一 VLIW指令。控制指令 可’例如’為零負擔迴圈起始/起動initialization。沒有分支、 跳躍、或副程式。一 VLIW指令被分割成數個區段,其中每 一指令區段指示該對應的功能單元要執行的運算。該區段 了 ^ 步被細分成一邵份給向量區間’及一部份給純量區 間(右出現的話)。對此二部份而言,該區段也包括要使用哪 一個網路部份來接收資料的資訊(該向量區間的一或多個 向I以及該純量區間的一或多個純量)。 85371 -19- 200404205 該純量/向量處理器的狀態 該CVP的狀態為其數種功能單元的結合狀態。在該較佳 具體實施例中,它包括: 該向量記憶體(部份的VMU); 該程式記憶體(部份的IDU); 向量暫存器(所有功能單元); 純量暫存器(大部份的功能單元); 控制暫存器,包括該程式計數器,和位址補償暫存器。 除了該程式設計師可看見的暫存器之外,一 CVP實現通 常包括用於管道化和快取的額外暫存器(向量,純量,和控 制)。這些暫存器並非該CVP指令集架構的一部份。 某些該(向量,純量,和控制)暫存器為所謂的架構暫存 器。一架構暫存器的内容僅能從該向量記憶體載入;並無 其它方式可改變其值。一架構暫存器支援該等功能單元的 架構,並通常定義一功能參數。透過儲存這些在架構暫存 器内的”半常數”功能參數而大量減少該指令寬度和記憶體 流量。 下表顯示該CVP狀態的元件概要。 FU 控制通路 純量通路 向量通路 資料 架i :冓 資米 架d 丨冓 資料 架構 vmu 補償 5 位址 CU 8 資料 記憶體 2048 cgu 計數器 3 碼 3 狀態 6 遮罩 2 多項式 2 85371 -20- amu 1 接收 1 區段 大小 1 暫存 器檔 16 sfu 暫存器 1 弄亂 樣式 4 slu 接收 1 暫存 器檔 2 sru 接收 1 暫存 器檔 2 idu pc 1 迴圈 cu 2 程式 記憶體 2048 可從該向量記憶體載入所有程式設計師可看到的暫存 器。除了該架構暫存器之外,所有的暫存器皆可存入該向 量記憶體内。透過在一指派工作的尾端儲存該等CVP暫存 器,並稍後將這些暫存器復原,該CVP可持續一特別任務, 就好像同時並未執行其它的指派工作。這些儲存和復原運 算為隨選的,可能為部份的,並必須明確加以程式化。
該記憶體單元和AGU 圖4圖示該記憶體單元(VMU 400)之方塊圖。在以下所述 的較佳具體實例中,在一向量處理器内使用該記憶體單元 來結合一實體記憶體,其寬度能儲存一整個向量。較偏好 同樣的觀念也能應用至純量處理器,例如傳統的數位信號 處理(DSP)。該VMU包括並控制該向量記憶體410,供應其 它功能單元大量的資料頻寬。該實體向量記憶體410最好係 根據一單埠的靜態隨機存取記憶體SRAM。由於通常無法取 得内建為Ps * W寬度的SRAM,該實體記憶體可由一或多排 的寬隨機存取記憶體(RAM)平行裝置所形成。 該VMU 400包括至少一位址計算單元(ACU) 420,該等單 85371 -21 - 200404205 元支援自動位址產生。參考圖2的整體架構,假設該ACU位 於VMU 260的控制區間230内。偏好該ACU不需實際位於 VMU内但也能連接至該VMU。最好,該ACU支援如同那些 在傳統數位信號處理(DSP)内的定址模式(位址產生演算 法)。該ACU不需使用該處理器的主要資料通路即可對每個 指令執行一或多個位址計算。例如,一純量的位址可為在 每一純量讀取存取後的遞增後位址。這可讓位址計算與資 料上的計算/數學運算平行發生,改良該處理器效能。取決 於所支援的該組定址模式,此一 ACU需存取至一些暫存 器。例如,相對定址,亦即對一所謂的基底位址定址,需 要: 一基底暫存器base 一對該基底位址的補償,儲存在一補償暫存器内offs 該補償的一前/後遞增,由一儲存在一遞增暫存器内的值 incr 對一位址的modulo(取餘數)定址,儲存在一限制暫存器内 bound 有了此組定址模式,可支援以下情況。假設一補償暫存 器offs。在每一次記憶體存取(讀或寫)位址base + offs之 後,根據 offs ·· = (offs + incr) Modulo bound更新暫存器 offs。 因而,offs會經常改變(在每次存取後),而儲存於base, incr,和bound内的值則不會經常改變。通常會在一程式迴 圈前激發後三個暫存器。該組暫存器的起始也被敘述為”該 ACU架構”。為了僅可能避免過長的指令及避免將位址計算 85371 - 22- 200404205 上的指令分離,該VMU的控制區間最好包括一些位址計算 單元。每一位址計算單元(ACU)可與一組(位址)暫存器產生 關連,並與一位址計算遞增運算產生關連。該ACU和該 組暫存器間的關連可為固定的Γ硬體線路")或可建構的,若 在指令階層也偏好如此的話。 假設該向量記憶體包括21^直列,一純量或向量位址需要 L + 2log 4Pq位元。例如,若PQ = 8且L = 12,則需要17位元。 該ACU暫存器的大小與該位址相同。若偏好如此的話,某 些暫存器可能較小。例如,遞增可能僅限於相當少的步騾, 例如8位元。最好所有的暫存器大小皆相等。下表圖示一較 佳具體實施例,其中一組ACU暫存器包括四個位址暫存器: 名稱 #位元 說明 Base 24無正負號 位址基底暫存器 Offs 24無正負號 來自基底的位址補償 Incr 24正負號 遞增值(-bound < incr < bound) Bound 24無正負號 Upper bound上限 表内也標示所偏好的位址範圍和類型(正負號/無正負 號)。在此架構中,每一個ACU暫存器為24位元。如將在以 下詳細討論的,該ACU暫存器可被儲存至該記憶體410/從 該記憶體410載入。一暫存器被儲存於該記憶體内時,為簡 化該暫存器的改良,可選擇一與存取該記憶體的基本單位 對準的暫存器寬度,亦即在8位元字組界限。因而,對該說 明性的記憶體大小來說,使用24位元而非17位元的暫存器 85371 -23 - 200404205 才夠。應了解對某些位址計算來說,少於三個暫存器也夠 用。因而可能使一或多組暫存器專用於此等計算,在暫存 器内提供一儲存/節省。 在該較佳具體實施例中,該VMU包括八組ACU暫存器。 此致能一功能單元的該向量區間和純量區間不同的位址計 算。它也對一演算法内的多重資料流提供有效支援,其中 每一資料流皆有自己的指示器(並且因而有計算和更新該 指示器的位址計算)。傳統上,建構一獨立組的ACU暫存器 每一組都要花一些時脈週期。如此,建構ACU暫存器所需 的時間會成為瓶頸。為克服此一建構遲延,在單一運算中 可建構屬於一組ACU暫存器的至少二暫存器。這可透過將 所有那些ACU暫存器映成在單一記憶體字組上,例如一向 量,並透過使用從該向量記憶體到該ACU記憶體的專用載 入和儲存指令而實現。偏好在一時脈週期的單一運算内建 構一組ACU暫存器的整組相關暫存器。若該記憶體寬度允 許,偏好在一運算中建構一組以上ACU暫存器的數個暫存 器。在該實例中,一組四個ACU暫存器需要4*24 = 96位元。 如前述,最好一向量為256位元寬。在此一實例中,透過將 多組内的該等暫存器映成至一記憶體直列(向量),可更進一 步增加該ACU的建構速度。在該實例中,可將二組ACU暫 存器映成至一向量。這也圖示於圖5内。圖示一向量500和 該四個字組界限。也圖示二組ACU暫存器510和520。在該 實例中,該ACU暫存器為24位元,並因為如此而未對應該 向量的標準資料大小之一。為也能經由該向量記憶體輕易 85371 -24- 200404205 存取該個別的ACU暫存器,用於將該等ACU暫存器載入/儲 存至該記憶體的特別指令能確保該個別ACU暫存器能對準 字組界限(在該實例中,該24位元暫存器係對準四個字組的 界限上)。取決於該ACU暫存器大小和該向量大小,熟諳先 前技藝者將能定義一最佳映成。例如,採用16位元的數個 ACU暫存器和一 25 6位元向量,使得將四組ACU暫存器映成 至一向量成為可能。在該指令中,需標示要被儲存/載入的 該等ACU暫存器組的數目。可使用單獨的或組合的指令來 載入單一 ACU暫存器組或一群ACU暫存器組。該群要被載 入/儲存的ACU暫存器組可為固定的。例如,若該組係以0 到7的數字標示,則可形成四個固定群組,其中該群組的數 目為該組的二最重要位元。若是如此,例如透過允許在該 載入/儲存指令内指定一組以上,也可以動態方式形成偏好 的群組。 圖6圖示一具有四個ACU暫存器的組610,固定連接至一 ACU 620。經由通路630和632將該暫存器的資料供應給該 ACU。該ACU提供該所計算出的位址做為輸出640,並且在 該輸出642提供該已更新的資料給該等暫存器。在具有八個 獨立組的ACU暫存器的較佳具體實施例中,這可被複製八 次(未顯示於圖中)。圖7圖示一替代裝置。此裝置圖示八組 ACU暫存器,編號為710到717。可使用不同數目的ACU。 在此實例中,係使用三個ACU,編號為720,721和722。該 ACU可動態連接至該組暫存器之一。若偏好如此,可呈現 一完全互連730,以致能將每一個該等ACU連接至該等暫存 85371 -25 - 200404205 器組中之一。當然,該互連730不需完全(例如,一 ACU可 僅連接三到四組)。該互連740確保該已更新的暫存器值可 被供應回該所偏好的組。互連704鏡像互連73 0。 以下詳細敘述所偏好的VMU和ACU。此敘述假設每一 ACU固定與一組ACU暫存器關連。該VMU可被分割為一控 制,純量和向量區間。根據一摩爾機器(Moore machine)模 型/式將這些區間模式化,包括五個元素:輸入,輸出,狀 態,下一狀態的功能,和輸出功能。該Moore machine的狀 態由所取得的記憶體和/或暫存器來決定。對每一功能單元 而言,提供一定義所有許可的轉移的表列,包括該對應的 保護。一保護必須為真,該轉移才能發生。該轉移定義該 Moore machine的下一狀態功能和輸出功能。在該表列中, 使用中括?瓜來選擇在一向量内的元素。例如:v[p]代表向量 v的元素p。 在單一 VMU指令中,該向量記憶體單元可支援多達四個 同步”子運算”: 傳送一向量,或傳送一直列,或接收一直列來回於VM位置 (向量子運算); 從一 VM位置傳送一純量(傳送純量子運算); 接收一純量至一 VM位置(接收純量子運算); 修正一位址計算單元的狀態/輸出(ACU子運算)。 用於那四個同步指令中每一指令的參數皆在以下的VMU 指令(VWU—cmd)中提供,其中由vopc,aid—ν和ainc_v指定 該向量子運算;由sopc,aid_s,ainc_s* size指定該傳送純 85371 -26- 200404205 ΐ子運异;由srcv,aid—r,和ainc—r指定該第三接收純量子 運异,而由aopc,aid_a,和imm—addr指定該ACU子運算。 孩第四運算直接控制該等ACU之一,而當做副作用的另外 三個運算也可控制一 ACU,將詳述於下。 VMU 一 cmd vopc aid_v ainc 一 v sopc aid一 s ainc—s size srcv aid_r ainc_r aopc aid 一 a imm addr (vopc, aid—v, ainc一v, sopc, aid一s, ainc—s,size, srcv, aid一r,ainc—r, aopc,aid一a,imm—addr) NOP I SENDL I SENDV I RCVL一CGU I RCVL一AMU I RCVL一SFU I RCVL一SLU I RCVL一SRU {〇,…,7}
NOP I INC
NOP I SEND {0,...,7}
NOP I INC
WORD I DWORD | QWORD
NONE I VMU I AMU I SLU I SRU {0,...,7}
NOP I INC
NOP I IMM I LDBASE | LDOFFS | LDINCR | LDBOUND {0,...,7} {0·0,···,524288.31} I {-262144.0, ...,262143.31}
取決於該子運算的數目和該位址順序的連續性,該VMU 指令可能要花上許多不同的時脈週期。 該VMU輸入/輸出為: 輸入 說明 Cmd VMU指令 rcv__amu AMU向量接收匯流排 85371 -27- 200404205 rev—cgu CGU向量接收匯流排 rev 一 sfu SFU向量接收匯流排 rev—slu SLU向量接收匯流排 rcv_sru SRU向量接收匯流排 s_rcv—amu AMU純量接收匯流排 s—rev—slu SLU純量接收匯流排 s_rcv_sru SRU純量接收匯流排 輸出 說明 Snd VMU向量結果 s_snd VMU純量結果 此外,尚有二純量埠(一傳送,一接收)連接至該外部匯流 排。該微控制器1 30的任務為使這些記憶體存取與CVP指令 同步。 該VMU向量區間包括該實體向量記憶體410 : 名稱 說明 mem[4096][32] 向量記憶體:4096列,每一列有32個字組 向量子運算 請注意向量子運算無法存取該純量記憶體。因而,向量 子運算會忽略最重要的位址位元。該VMU的向量區間支援 七個子運算,於該指令的VOPC欄中加密:向量傳送 85371 -28- 200404205 (SENDV),歹!J傳送(SENDL),和五列接收子運算 (RCVL CGU,RCVL AMU,RCVL SFU,RCVL一SLU,和 RCVL—SRU)。無法同時執行此七個子運算。一次只能指定 一子運算。身為該接收來源的功能單元在對應的列接收子 運算内很清楚的被加密。一對應的位址計算單元指定每一 子運算的讀取位址或寫入位址。所有向量子運算共享該 AINC—V欄。該欄將被傳送至在該AID—V欄内加密的ACU。 以此法,所指定的ACU被當做為一向量子運算的副作用來 控制。該AINC_V欄指定是否該被影響的位址計算單元應執 行一遞增後運算。 保護 轉移 vopc = NOP None vopc = SENDL snd = mem.line[acu[aid__v].out] vopc = SENDV snd = mem.vector[acu[aid_v].out] vopc = RCVL—CGU mem.line[acu[aid_v].out] = rcv_cgu vopc == RCVL—AMU mem.line[acu[aid__v].out] =rcv_amu vopc = RCVL—SFU mem.line[acu[aid_v].out] = rcv_sfu vopc = RCVL—SLU 1--——— mem.line[acu[aid_v].out] =rcv__slu vopc = RCVLSRU ---- mem.line[acu[aid_v].out] =rcv_sru 請注意,該等運算被視為傳送(或接收)行為而非涉及目的地 (或來源)的載入(或儲存)行為。該載入行為通常由其它功能 85371 -29- 200404205 單元内的運算指定。一列傳送在功能上等於一具有相同位 址的向量傳送。列傳送子運算通常用於建構功能單元,或 復原在該各種暫存器内一任務的狀態。透過導入一用於列 傳送的特別模式,後續向量傳送(π向量流ff)的存取次數可經 由有效使用快閃記憶體caches而達到最佳狀況。 該VMU的純量傳送子運算係在該指令的SOPC欄内加 密。它僅支援一子運算:純量傳送(SEND)。由該AID—S欄 指定的位址計算單元會指定讀取位址。該指令的八^(:_8攔 指定是否此位址計算單元應執行一遞增後運算。以此法可 間接控制一第二ACU(第一個係由該向量子運算控制)。該指 令的SIZE欄決定純量子運算的運算域大小(WORD, DWORD或 QWORD) 〇 保護 轉移 sopc = NOP None sopc = SEND && size = WORD S_snd = mem.word[acu[aid_s].out] sopc = SEND && size = DWORD S—snd = mem.dword[acu[aid—s].out] sopc = SEND && size = QWORD S_snd = mem.qword[acu[aid_s].out] 該VMU的純量接收子運算在該指令的SRCV欄内加密。若 其值為NONE,則不會執行純量接收。不然,該指令的SRCV 欄會決定將使用哪一個功能單元來作為該純量接收的來 源。該AID—R欄指定的位址計算單元會指定寫入位址。以 此法玎間接控制一第三ACU。該指令的AINC—R欄指定是否 85371 -30- 200404205 此位址計算單元應執行一遞增後運算。該來源純量的大小 決定純量接收子運算的運算域大小(WORD,DWORD或 QWORD)。 保護 轉移 Srcv = NONE None Srcv = VMU Mem.scalar[acu[aid_r].out] = s_rcv_vmu Srcv^AMU Mem.scalar[acu[aid_r],out] = s rcv_amu Srcv = SLU Mem.scalar[acu[aid_r].out] = s_rcv_slu Srcv - SRU Mem. scalar [acu[aid_r], out] = s_rcv_sru 可將該傳送和接收子運算結合至一純量移動運算内,從 一 VM位置到另一個VM位置。一對應位址計算單元指定每 一存取的位址。 如上述,以此法,可彈性指派該等ACU中的每一個給任 一向量、純量傳送和純量接收的VMU子運算。以此法,二 個ACU皆可在每一指令内運算。為避免衝突,一限制為每 一 ACU僅可用於那些VMU子運算中之一,亦即AID V 士 AID_S # AID一R。熟諳先前技藝者能調整該指令和背後的硬 體以支援三個以上的ACU,若偏好如此的話;或支援在該 ACU和該組ACU暫存器間的其它架構。例如,若未固定指 派一組暫存器給一 ACU,則該指令也可帶有一要被使用的 組的識別。 該ACU子運算由該VMU控制區間提供,並在該VMU指令 85371 -31 - 200404205
的AOPC欄内加密。它支援一子運算’將一 ACU的輸出設定 至一立即位址值(IMM);以及四個子運算,將一立即位址載 入該等 ACU-暫存器(LDBASE,LD0FFS ’ LDINCR ’和 LDB0UND)中之’。該立即定址的目的是要跳過該一般定 址並’迅速地,從該指令直接提取一位址。這對載入單一字組 特別有用。該對應的立即位址係在IMM—ADDR欄内加密。 該AID—A欄指定該A〇PC子運算將影響哪一個ACU ;來自該 VMU指令的A0PC欄和IMM—ADDR攔將直接被傳送至此特 別ACU,而所有其它八⑶的A〇PC欄貝丨J會被設定成無運算 (NOP)。 一位址計算單元(ACU)在單一 ACU運算期間可支援二”子 運算’’: 一遞增後子運算; 一立即位址操控子運算。
ACU—cmd = (ainc,aopc,imm一addr)
ainc = NOP | INC
aopc = NOP I IMM | LDBASE | LDOFFS | LDINCR | LDBOUND imm一addr = {0·0,···,524288.31} | {-262144.0, ···,262143.31} 該遞增後子運算在該指令的AINC欄内加密。它僅支援一子 運算:遞增後(INC)。此子運算用於避免過渡的明確的位址 計算指令。 85371 -32- 200404205 保護 轉移 ainc = NOP None ainc = INC offs = (offs + incr) mod bound 該立即位址操控子運算在該指令的AOPC欄内加密。它支援 一子運算,輸出一立即位址(IMM);以及四個子運算,將一 立即位址載入該等ACU_暫存器(LDBASE,LD0FFS, LDINCR,和LDB0UND)中之一。該立即位址在該指令的 IMM_ADDR搁内加密。 保護 轉移 aopc = NOP out = base + offs aopc = IMM out = imm—addr aopc = LDBASE out = base + offs ; base = imm_addr aopc = LDOFFS out = base + offs ; offs = inun_addr aopc = LDINCR out = base + offs ; incr = imm—addr aopc = LDBOUND out = base + offs ; bound = imm_addr 該等ACU輸入/輸出為: 輸入 說明 Cmd ACU指令(細節請參考指令格式) 85371 -33- 200404205 輸出 說明 Out ACU位址(直列位址+直列内純量) 在該較佳具體實施例中,一向量不需對準該記憶體内的 向量界限。如此,一包括ps字組的向量可具有一任意的記 憶體位址。一記憶體直列大小相同,但其起始位址之定義 為P S的倍數(對直列存取而言,忽略該位址的最不重要的 2l〇g Ps位元。)。透過允許向量任意對準(通常對準該最小的 字組界限),可更有效利用該記憶體,空位也愈少。可測量 以讓該純量/向量處理器讀取/寫入個別向量,而該向量可被 儲存在該實體記憶體的二連續直列内。最好,該純量資料 被儲存在與儲存該向量資料相同的記憶體内。在此一系統 中’純量可和與其對應的向量互混。對成本有效性和對該 記憶體的最佳存取時間/次數而言,該記憶體最好僅允許完 整向量直列的讀取和寫入。如此,邏輯上該實體記憶體包 括數條直列,每一條的大小和一向量相同。為支援純量的 讀取和寫入,會以一純量的方式使用額外硬體(用於一直列 内純量選擇的直列快取記憶體430和支援44〇)以存取該向 量寬實體記憶體。 應注意’上述數個具體實施例僅為說明而非限制本發 明,並且那些熟諳此藝者將能設計許多替代具體實施例而 不偏離所附申請專利範圍之範疇。在該申請專利範圍内, 任何出現於括號内的參考記號不應被解釋為限制該申請專 利範圍。泫孚眼包括π和”包含”並不排除會出現那些未列在 85371 -34- 200404205 -申請專利範園内的其它元素或步驟。 【圖式簡單說明】 圖1圖7F —較佳架構,其中可使用如本發 量處理器; 明之該純量/向 圖2圖不如本發明之該純量/向量處理器的主要結構; 圖3圖示所支援的資料寬度和資料類型,· 圖4圖示該向量記憶體單元之方塊圖; 圖5圖示將二ACU暫存器組映成至一向量暫存器; 圖6圖示-組ACU暫存器和一 Acu間的固定關係.及 圖7圖示該數組勒暫存器和該等ACU間可建構的關係 圖式代表符號說明】 … 110 120 130 140 21〇 220 230 240 250 252 260 262 匯流排 可程式化純量/向量處理器 微控制器或數位信號處理子系統 介面方塊 管遒化式向量處理區間 純量處理區間 控制區間 純量區間 指令分散單元 程式記憶體 向量記憶體單元 碼產生單元 算術邏輯-乘及加單元 85371 -35 - 264 200404205 266 268 270 400 410 420 ' 620 、 720-722 430 440 450 500 510 、 520 、 610 、 710-717 630 、 632 640 、 642 730 弄亂樣式單元 向左位移單元 向右位移單元 記憶體單元 實體向量記憶體 位址計算單元 直列快取記憶體 向量對準及純量選擇 任意及對準 向量 位址計算單元暫存器組 通路 輸出 完全互連 85371 -36-
Claims (1)
- 200404205 拾、申請專利範圍: 1 . 一種處理器,包括·· 一存取一實體記憶體之記憶體埠,該記憶體埠受一位 址控制; 至少一處理單元,執行儲存在該記憶體内的指令和/ 或於儲存在該記憶體内的資料上運作; 至少一位址產生單元(此後稱”AGU”),用於產生一位 址以控制對該記憶體之存取;該AGU與至少一第一組一 複數個N暫存器有關,其中該組暫存器在一位址產生機 制的控制下致能該AGU產生該位址;及一記憶體單元,被一運算激發,用於儲存/載入該N暫 存器中的k個暫存器,其中2 <= k <= N,其中該記憶體 單元包括一連接器,用於將該k個暫存器連接至一記憶 體字組,該字組經由該記憶體埠寫入該記憶體;以及一 用於分離一字組的分離器,該字組經由該記憶體埠從該 記憶體讀取至該k個暫存器内。 2. 如申請專利範圍第1項之處理器,其中該記憶體單元用 於在該記憶體的一寫入/讀取週期内執行該儲存/載入。 3. 如申請專利範圍第1項之處理器,其中k = N。 4. 如申請專利範圍第1,2,或3項之處理器,其中該處理 器包括至少額外一組的複數個暫存器,該暫存器在一位 址產生機制的控制下致能一 AGU產生一位址;及 該連接器係操作以將該額外數組暫存器中至少一組 的至少一額外暫存器連接至該一記憶體字組,該字組經 85371 200404205 由巧记fe體埠寫入該記憶體;並且該分離器正運轉,將 二字組分離,該字組經由該記憶體埠從該記憶體讀取至 第一組暫存器以及該额外數組暫存器中至少一組的至 少一額外暫存器的各別的k個暫存器。 5.如申請專利範圍第4項之處理器,其中該處理器包括至 少二AGU,每—個用於產生—位址,用於控制對該記憶 體=存取;該等AGU中的每一個皆與—複數個暫存器中 该等組内各自的一組有關。 如申請專利範園第4項之處理器,其中該AGu可選擇性 也k接土 土少一組暫存器,其中每一組暫存器在一位址 產生機制的控制下致能該AGU產生一各別的位址。 如申請專利範圍第3和4項之處理器,其中該連接器係操 五、私土 y —組暫存器中所有各別相關的暫存器連接 至孩-記憶體字組’該字組經由該記憶體埠寫入該記憶 體;並且該分離器運轉夺一 〜 二 丁子、、且刀離,孩字組經由該 Ή體蟀從該記憶體讀取至該等暫存器組中至少二組 内所有该各別的相關暫存器。 8, :申請專利範圍第4或5項之處理器,其中該處理器致能 各別暫存器組的選擇今 匕帛財暫存讀的各別暫存器需被 料或存放在-運算内;並且該記憶體單元正運轉,以 :行該被選定的暫存器組來回於一記憶體字 或分離。85371 如申請專利範圍第丨項之處理器, 以運算在運算域上具有ft小大小— 其中該處理器係操作 處理器字組,並且該 -2- 200404205 記憶體字組的寬度為該處理器字組大小的數倍;並且該 連接器運轉,將該暫存器映成至該記憶體内的界限,該 界限對應該處理器字組,使該處理器能直接改良一暫存 器。 10.如申請專利範圍第1項之處理器,其中該處理器係操作 以平行處理一複數個Μ資料元素,並且該實體記憶體具 有一能儲存該Μ個資料元素的寬度。 85371
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02077034 | 2002-05-24 | ||
EP02078619 | 2002-09-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW200404205A true TW200404205A (en) | 2004-03-16 |
Family
ID=29585703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092113724A TW200404205A (en) | 2002-05-24 | 2003-05-21 | An address generation unit for a processor |
Country Status (7)
Country | Link |
---|---|
US (1) | US7383419B2 (zh) |
EP (1) | EP1512069B1 (zh) |
JP (1) | JP4624098B2 (zh) |
CN (1) | CN1666174B (zh) |
AU (1) | AU2003222412A1 (zh) |
TW (1) | TW200404205A (zh) |
WO (1) | WO2003100600A2 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2409064B (en) * | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing in parallel a data processing operation on data elements |
US7937484B2 (en) * | 2004-07-09 | 2011-05-03 | Orb Networks, Inc. | System and method for remotely controlling network resources |
US8819140B2 (en) | 2004-07-09 | 2014-08-26 | Qualcomm Incorporated | System and method for enabling the establishment and use of a personal network |
US8738693B2 (en) * | 2004-07-09 | 2014-05-27 | Qualcomm Incorporated | System and method for managing distribution of media files |
US8787164B2 (en) * | 2004-07-09 | 2014-07-22 | Qualcomm Incorporated | Media delivery system and method for transporting media to desired target devices |
US9077766B2 (en) * | 2004-07-09 | 2015-07-07 | Qualcomm Incorporated | System and method for combining memory resources for use on a personal network |
US8195744B2 (en) * | 2004-07-09 | 2012-06-05 | Orb Networks, Inc. | File sharing system for use with a network |
US20060277318A1 (en) * | 2004-07-09 | 2006-12-07 | Luc Julia | System and method for extending communications with a device network |
EP1873627B1 (en) * | 2006-06-28 | 2009-05-27 | STMicroelectronics S.r.l. | A clustered SIMD processor architecture |
US8973072B2 (en) * | 2006-10-19 | 2015-03-03 | Qualcomm Connected Experiences, Inc. | System and method for programmatic link generation with media delivery |
US20100141668A1 (en) * | 2006-10-26 | 2010-06-10 | Nxp, B.V. | Address calculation unit |
US7725745B2 (en) * | 2006-12-19 | 2010-05-25 | Intel Corporation | Power aware software pipelining for hardware accelerators |
EP1936493A1 (en) * | 2006-12-22 | 2008-06-25 | Telefonaktiebolaget LM Ericsson (publ) | Data-processing unit |
US7882325B2 (en) * | 2007-12-21 | 2011-02-01 | Intel Corporation | Method and apparatus for a double width load using a single width load port |
US9390539B2 (en) * | 2009-11-04 | 2016-07-12 | Intel Corporation | Performing parallel shading operations |
US8892853B2 (en) | 2010-06-10 | 2014-11-18 | Mobileye Technologies Limited | Hardware to support looping code in an image processing system |
EP2395472B1 (en) * | 2010-06-11 | 2019-05-01 | Mobileye Vision Technologies Ltd. | Image processing system and address generator therefor |
CN104025039B (zh) | 2011-12-22 | 2018-05-08 | 英特尔公司 | 打包数据操作掩码串接处理器、方法、系统及指令 |
US9256480B2 (en) | 2012-07-25 | 2016-02-09 | Mobileye Vision Technologies Ltd. | Computer architecture with a hardware accumulator reset |
CN112540793A (zh) * | 2020-12-18 | 2021-03-23 | 清华大学 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5913054A (en) * | 1996-12-16 | 1999-06-15 | International Business Machines Corporation | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle |
US6260137B1 (en) * | 1997-09-12 | 2001-07-10 | Siemens Aktiengesellschaft | Data processing unit with digital signal processing capabilities |
US6041387A (en) * | 1997-09-12 | 2000-03-21 | Siemens Aktiengesellschaft | Apparatus for read/write-access to registers having register file architecture in a central processing unit |
US6356994B1 (en) | 1998-07-09 | 2002-03-12 | Bops, Incorporated | Methods and apparatus for instruction addressing in indirect VLIW processors |
US6363470B1 (en) * | 1998-10-06 | 2002-03-26 | Texas Instruments Incorporated | Circular buffer management |
US6349380B1 (en) * | 1999-03-12 | 2002-02-19 | Intel Corporation | Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor |
DE19948100A1 (de) * | 1999-10-06 | 2001-04-12 | Infineon Technologies Ag | Prozessorsystem |
-
2003
- 2003-05-07 JP JP2004507987A patent/JP4624098B2/ja not_active Expired - Lifetime
- 2003-05-07 US US10/515,462 patent/US7383419B2/en not_active Expired - Lifetime
- 2003-05-07 AU AU2003222412A patent/AU2003222412A1/en not_active Abandoned
- 2003-05-07 EP EP03717501.5A patent/EP1512069B1/en not_active Expired - Lifetime
- 2003-05-07 WO PCT/IB2003/001892 patent/WO2003100600A2/en active Application Filing
- 2003-05-07 CN CN038117827A patent/CN1666174B/zh not_active Expired - Lifetime
- 2003-05-21 TW TW092113724A patent/TW200404205A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP2005527036A (ja) | 2005-09-08 |
AU2003222412A1 (en) | 2003-12-12 |
WO2003100600A2 (en) | 2003-12-04 |
JP4624098B2 (ja) | 2011-02-02 |
CN1666174B (zh) | 2010-05-05 |
EP1512069A2 (en) | 2005-03-09 |
CN1666174A (zh) | 2005-09-07 |
WO2003100600A3 (en) | 2004-08-19 |
US20060010255A1 (en) | 2006-01-12 |
US7383419B2 (en) | 2008-06-03 |
EP1512069B1 (en) | 2020-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200404205A (en) | An address generation unit for a processor | |
US11188497B2 (en) | Configuration unload of a reconfigurable data processor | |
EP0726532B1 (en) | Array processor communication architecture with broadcast instructions | |
US4837676A (en) | MIMD instruction flow computer architecture | |
US5968167A (en) | Multi-threaded data processing management system | |
EP1512068B1 (en) | Access to a wide memory | |
US20050219422A1 (en) | Parallel vector processing | |
WO1999036852A1 (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
JP2004531149A (ja) | 再配置可能な論理環境で使用するための効率的な高性能データ動作エレメント | |
JPH0463430B2 (zh) | ||
WO2001067273A2 (en) | Vliw computer processing architecture with on-chip dynamic ram | |
EP1520233A2 (en) | Processing system with interspersed processors and communication elements | |
US20070079305A1 (en) | Alignment of variable length program instructions within a data processing apparatus | |
JPH11212786A (ja) | レジスタベースデータ処理のためのデータパスおよび方法 | |
US8019972B2 (en) | Digital signal processor having a plurality of independent dedicated processors | |
JP2021507386A (ja) | ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成 | |
US7165166B2 (en) | Data processing system, data processing apparatus and control method for a data processing apparatus | |
JP4955149B2 (ja) | ビットfifoを有するディジタル信号プロセッサ | |
JP2010117806A (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
US11768685B2 (en) | Processing device with vector transformation execution | |
JPS62500750A (ja) | 命令フロ−コンピュ−タ | |
JPH02132575A (ja) | 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 | |
Van Berkel et al. | Address generation unit for a processor | |
JP2004355049A (ja) | プロセッサシステム | |
JPH04225483A (ja) | 情報処理装置 |