TWI291096B - A processing system for accessing data in a memory - Google Patents
A processing system for accessing data in a memory Download PDFInfo
- Publication number
- TWI291096B TWI291096B TW092113718A TW92113718A TWI291096B TW I291096 B TWI291096 B TW I291096B TW 092113718 A TW092113718 A TW 092113718A TW 92113718 A TW92113718 A TW 92113718A TW I291096 B TWI291096 B TW I291096B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- register
- vector
- processing system
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 164
- 238000012545 processing Methods 0.000 title claims abstract description 49
- 239000013598 vector Substances 0.000 claims description 170
- 239000000872 buffer Substances 0.000 claims description 8
- 239000000463 material Substances 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 230000008901 benefit Effects 0.000 claims description 3
- 208000003251 Pruritus Diseases 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 235000019800 disodium phosphate Nutrition 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- ATHVAWFAEPLPPQ-VRDBWYNSSA-N 1-stearoyl-2-oleoyl-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CCCCCCC\C=C/CCCCCCCC ATHVAWFAEPLPPQ-VRDBWYNSSA-N 0.000 description 1
- NOQGZXFMHARMLW-UHFFFAOYSA-N Daminozide Chemical compound CN(C)NC(=O)CCC(O)=O NOQGZXFMHARMLW-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000003195 fascia Anatomy 0.000 description 1
- 210000001061 forehead Anatomy 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000002689 soil Substances 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/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/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- 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
- G06F15/8061—Details on data memory access
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/3824—Operand accessing
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Saccharide Compounds (AREA)
- Static Random-Access Memory (AREA)
- Advance Control (AREA)
- Image Input (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Description
1291096 玖、發明說明: 【發明所屬之技術領域】 本發明關於一種處理系統。 【先前技術】 第二代無線通信標準如UMTS_FDD,umts tdd,is2〇〇〇 與TD-SCDMAH #常高的頻率作業。此等第三代移動式通 信標準的數據機(收發機)如UMTS需要的數位信號處理功 率比GSM多大約1〇〇倍。為了能夠處理不同的標準,以及能 夠有彈性適用於此等新標準,希望實行一收發機,以使用 可程式I架構之此等標準。一種改善效率的已知方法,其 儲存多種資料元件於一記憶體之一列,並一次對一個以上 之貝料元件作業。例如,此等系統已知的SIMD(單指令,多 種資料)或MIMD(多種指令,多種資料)。一向量處理器是一 SIMD處理器之範例。通常,—具有—埠之廣泛記憶㈣夠 讀與寫存取該記憶體之至少一列之單元。於該範例中,該 記憶體之列寬度能儲存一向量,一次可讀或寫一或更多的 向量。對於存取比一向量小的單元沒有特別的規定。為了 一記憶體之最佳使用,也希望能夠以一種有效率的方法存 取比具有一記憶體列之全寬度小的資料元件。通常,此一 小單元能被儲存於該記憶體之-列,其中該列有部分未被 使用’而增加存儲成本。此外,此等小單元以一種連鎖的 形式被儲存於一列,其中需要讀或寫一整列,而且需要擷 取更多的處理指令與週期,或***一期望的較小單2,形 成該整體記憶體列。上述會降低該效率。此等問題會變得 85370 -6- l29l〇96 更嚴重’其中該記憶體的寬度顯然超出該較小單元的尺 寸。例如,為了語音識別,此等儲存一語音特性向量之组 件的資料^件通常是8至16^寬。就電話通訊而言,兮等 編碑/調變資料元件往往是8位元(或2*8位元複合值)。炉不 ^要增加該尺寸。為了較新的電話通訊系統或增強語音識 :效率,希望能改善該處理速度。因此使用較廣泛的二憶 體以增加該處理速度,但不需要特別的方法,即能择加需 要儲存資料的記憶體量,或甚至減速如上面所描述:某些 形式的記憶體存取。 【發明内容】 本發明之一目的係提供一種處理器架構,其能夠提供一 種對廣泛記憶體之快速記憶體存取,也用以較小的元 件。 ,、 為達成該目的,一處理系統具有一處理器與一實體記憶 體,該實體記憶體具有一用以存取該記憶體中之資料之^ 尺寸記憶體埠,該處理器被配置以對至少一第一資料尺寸 與一較小之第二資料尺寸之資料作業;該第一資料尺寸等 於或小於該記憶體埠的尺寸;該處理系統包括該第一資料 尺寸之至少一資料暫存器連接至該記憶體埠;而該第二資 、斗尺寸之土少一貝料埠連接至該資料暫存器,及賦能存取 3第一貝料尺寸之此等資料元件的該處理器。 此方式中使用具有一字大小之慣用記憶體。上述使該記 憶體的成本保持下降。通常,該記憶體字的尺寸與該處理 口口的最大字的尺寸相匹配。為了存取較小的資料元件,使 85370 1291096 用一中間暫存器。一額卜 器中較小的資料元件。加,以賦能存 存 目此、、 。中間$存器的使用是非常顯而易 麵1古孩處理器核心、與該程Μ而言,看起來就像該記憶 广不同尺寸的崞。於此方式中,小資料元件能被快速 不而要更夕的指令附加’例如,為了存取為該大資 牛的h小貝料7C件’大資料元件之選擇和/或移位。 如描料所屬之巾請㈣範園第巧,該記憶料尺寸至 ^為該第二資料尺寸的兩倍1此方式中,該暫存器能儲 衫少兩則、料元件。尤其,於料小資料元件被連續 ^又的案例中,該實體記憶體之—存取,能夠快速存取至 "連只之小貝料元件。上述會降低浪費在存取該實體記 憶體的時間。 如^於所屬之申請專利範圍第3項,為了 -讀資料埠, 使用夕工态,根據一讀取位址的控制從該資料暫存哭選 擇糾取該第二資料尺寸之-資料元件。例如,該讀i位 址取重*的邵分能被用#核對冑資料元件I$已經存在該 暫存益(但如果未使用該部分,從該實體記憶體重新取得), 而該最不重要的部分能被用於選擇該暫存器中的資料元 件。 如描述於所屬之申請專利範圍第4項,為了 一寫資科埠, ,用一解多工器,根據一寫入位址之控制,在該資料暫存 斋义一可選擇的位置***該第二資料尺寸之一資料元件。 藏選擇的執行與所描述的讀取埠類似。 如描述於所屬之申請專利範圍第5項,該處理系統包括連 85370 1291096 接至該處理器之該第二資料尺寸之複數個資料埠,而且為 了該等資料埠之每一個,一相關的個別資料暫存器連接至 個別之資料埠與該實體記憶體之一蜂。例如,如果一調準 處理兩連續之資料流,該等資料流之每一個可使用該等暫 存器之一與此等資料埠。每一資料流接著能存取至少兩連 續之資料元件,但僅使用其中之一存取該實體記憶體。 如描述於所屬之申請專利範圍第6項,為了因該等暫存器 包含該資料之一”複本”於該記憶體和/或一個以上之暫存器 所引發之可能一致的衝突,而執行一檢查。該系統維持更 新的資料於該暫存器,因此一小資料元件之更新通常不會 對該實體記憶體發生一寫作業。此外,也能直接從該暫存 器讀取該更新的小資料元件,更進一步節省記憶體存取次 數。對此些資料埠(因此該相關的暫存器允許寫存取)而言, 該處理器儲存於一更一致的暫存器,該資料的資訊被儲存 於該暫存器。該資料被用於檢查讀取的資料是否(從該實體 記憶體或該等暫存器之一)正在存取已被改變的資料(但可 能尚未更新該等實體記憶體或暫存器)。該識別資訊最好是 一用以存取該實體記憶體中之一字的實體位址,其中該字 的寬度與該記憶體埠一樣。此方式中,容易檢查直接存取 該實體記憶體是否可能與儲存於該等暫存器中的資料衝 突。 如描述於所屬之申請專利範圍第8項,該協調檢查器包括 一衝突解決器,為回應一可能一致的衝突,而取得此等修 正步騾。在此方式中,當設計該程式時已取得該方法以接 85370 -9- 1291096 替該程式員。取得此等修正步驟之—方法,如描述於所屬 (申凊專㈣®第9項’將該資料暫存器標示為讀存取無 效’為回應該資料暫存器之—讀存取,導致從該記憶體重 新載入該資料暫存器之内容。 :外’如描述於所屬之申請專利範圍第1〇項,該協調檢 查器包括-協調暫存器’其用以每—個別的資料暫存器, 及貝料暫存益儲存識別儲存於該個別之資料暫存器之資料 々:、"凡’以及配置忒修正器,根據該識別資訊儲存相同之 資料’為回應寫存取該等資料暫存器之—和/或寫存取該實 體記憶體,因此將寫至該資料暫存器或該記憶體之内容複 製至所有其餘的資料暫存器和/或該記憶體之—位置。於該 實施例中’減該協調暫存器應儲存同一讀,將更新之 資料複製至所有的暫存器。如果允許直接存取該實體記憶 體’上述包括複製該資料至該實體記憶體^為了該等大資 料元件,最好也經由-+間暫存器發生域存取該實體記 憶體,於寫至-暫存器之案例中,不會自動迫使—寫存取 該記憶體。 如描述於所屬之申請專利範圍第u項’至少該等資料暫 存器之一(下面的"讀暫存器”)被連接至—讀資料埠,以及至 少該等資料暫存器之一 (下面的,,寫暫存器”)被連接至一寫 入資料埠;而且該處理器包括—旁通,其可選擇從該寫暫 存器提供資料給該讀資料埠;該協調檢查器包括一用以每 -個別資料暫存器之協調暫存器,以儲存識別儲存於該相 關資料暫存器之資料的資訊;配置該衝突解決器,因回應 85370 -10- 1291096 寫資料進入啟動該旁通路徑之寫暫存器,以連續讀存取該 讀暫存器,以取得此等修正步騾,如果該讀暫存器根據該 識別資訊儲存同一資料元件。因使用一旁通,一具有同一 内容之寫暫存器被更新時,一讀暫存器就不需要被重新載 入。接著卻直接從該更新寫暫存器讀取該資訊。在此方式 中,對該實體記憶體的存取保持最低水準。於存取寫暫存 器期間有時會發生一延遲。 該實體記憶體最好以高成本效益的單埠SRAM為基礎。為 了獲得一高成本效益的廣泛實體記憶體,因此以一記憶體 字儲存許多小資料元件,最好使用由複數個平行配置的 RAM儲存體所形成之實體記憶體。該記憶體最好被嵌於該 處理器。 該描述之架構被用於一純量/向量處理器是有利的,其中 該向量區段根據該第一資料尺寸之向量作業,而該純量區 段根據該第二資料尺寸之純量作業,其中該第一資料寬度 是該第二資料寬度的兩倍。於此一配置中,同一記憶體能 被用於儲存該等向量與純量。也使該配置容易在該向量元 件上執行純量作業。 【實施方式】 為最佳化信號處理,於一處理器中最好使用該位址產生 單元(AGU)與記憶體單元。此一處理器可以是一 DSP或任何 其他適合的處理器/微控制器。其餘之描述希望將該等單元 使用於一高功率純量/向量處理器。此一處理器可被單獨使 用或與另一處理器結合。圖1顯示一使用該純量/向量處理 85370 -11 - 1291096 器之最佳組態。於該組態中,三個主要組件係由匯流排i i 〇 連接。連接此三個組件之匯流排110可以是任何適合的匯流 排,例如一 ΑΜΒΑ高速匯流排(ΑΗΒ)。該等主要組件是: 包括此等功能單元與一區域資料記憶體(參考圖丨中之向 量冗憶體)之可程式化的純量/向量處理器12〇 ; 一包括限制的晶載程式或資料記憶體之微控制器或DSP 子系統130 ; 一介面區塊140。 該純量/向量處理器120主要被用於正規的"重/功率,^ 理’尤其是内部迴路處n純量/向量處理器包括向量¥ 里的功叱。就其本身而論,為了執行該碼之可向量化部分 其提供大尺度的平行性1有信號處理的絕大部分將由+ :量/向量處理器之向量部分執行。以一陣列,例如,32: I王2《處理讀執行同—指令’其提供大規模的平手 ^、,以一32_字廣泛記憶體介面,以低成本及-般的功a 消耗量,導致前所去古从_ 力又日]力- 許多皆^ 的可程式化的效率水準。然而d 完全㈣表示該正麵式之資料平行性時,^ ==:=不可行的。根據一定律,在t —的= 成::分的時_ 有關指令的位址(例如,样力 種 用模數定址) ㈢加一指標到一循環緩衝器,{ 正規的向量作業(即,向息从…, 迴路) 里乍業對應於該向量處理器的二 85370 -12- 1291096 循環 非正規的向量作業 ^等用以此等種類之每一種的代碼部分,高度依賴該演 算丟勺執行。例如,該G〇lay關聯器(用於搜尋)需要 許多有關此等指令的位址,但不是其他演算法的案例,例 :Rake。根據本發明能夠藉由使用該八⑽記憶體單元,以 取4化此等有關指令與循環之位址的效率。藉由一處理器 中I、凑的%分純量與向量處理,以最佳化該正規純量作業 掃描之作業。由該等創作者已揭露的所有與3G數據機相關 <次算去 < 斫咒,不正規純量作業部分非常受到限制。該 屬性使該純量/向量處理器12〇與該微控制器或DSp 13〇之間 的任務分開,其中該微控制器或DSp 13〇執行該等非正規的 任務,並同時控制該純量/向量處理器。於該最佳組態中, ▲純里/向1處理器12〇作為一可程式化的共處理器(於該其 餘邵分也稱為cvp,共向量處理器)。該純量/向量處理器12〇 與該微控制器130之間的介面處理通信(例如通過分享的記 憶體)與同步化(例如通過分享的記憶體輿狀態信號)。該介 面最好是記憶體映對。 該介面區塊140使該等處理器與該系統的其餘部分互相 作用。於該最佳實施例中,該純量/向量處理器被使用作為 一 2G/3G移動式網路之軟體數據機(資料收發器)。關於此一 庠人fa數據機的功能,該介面區塊14〇包括作為一前端與一主 要任務之專用硬體,以根據該微控制器13〇的控制,傳遞控 制與資料字給該向量處理器,例如DMA。接著由該純量/ 85370 •13- 1291096 向量處理器處理該向量記憶體中的資料。 對該匯流排110而言,該純量/向量處理器處120可以是一 從屬裝置,而該微控制器130與該介面區塊140(可包括一 DMA單元)可作為一主裝置。所有具有該CVP之通信,其程 式,資料或控制最好是記憶體映對。該記憶體可以是一晶 片外的DRAM,而該DRAM也可被該純量/向量處理器使用 作為一(無)***的記憶體。 於該描述中,主要使用的該用語”位址計算單元n或 ACU。就該描述的用途而言可視為與’’位址產生單元π或 AGU—樣。該描述集中於使用此類單元來計算資料位址。 熟悉此項技藝之人士也能夠將同一功能用於計算指令位址 (π迴路控制’’)。 圖2顯示根據本發明之處理器的主結構。該處理器包括一 管線向量處理區段210。為了支援該向量區段的作業,該純 量/向量處理器包括一配置與該向量區段平行作業之純量 處理區段220。該純量處理區段最好也是管線。為了支援該 向量區段之之作業,至少該向量區段之一功能單元也提供 該純量區段對應部分的功能。例如,一移位功能單元之向 量區段可用作移位一向量,其中由(或傳遞)該移位功能單元 之純量區段提供一純量組件。就其本身而言,該移位功能 單元轉換該向量與該純量區段。因此,至少若干功能單元 不是只有一向量區段,並且同時有一純量區段,其中該向 量區段與該純量區段因能交換純量資料而互相合作。一功 能單元之向量區段提供該原始處理功率,其中該對應的純 85370 -14- 1291096
量區段(即,同一功能單元的純量區段)藉由提供和/或消耗 純量資料,以支援該向量區段的作業。經由一向量管線提 供該等向量區段之向量資料。 於圖2之最佳實施例中,該純量/向量處理器包括下列七 個專門的功能單元。
指令分配單元(IDU 250)。該IDU包含該程式記憶體252, 以讀取連續的VLIW指令,並且將每一指令的7段分配給7個 功能單元。最好包含一支援不超過三個零負擔循環之巢套 階的迴路單元。於該最佳實施例中,沒支援分支、跳越或 中斷。由該限制描述符載入該初始程式計數器,下面將更 加詳細描述。
向量記憶體單元(VMU 260)。該VMU包含該向量記憶體 (未顯示於圖2)。於每一指令期間,該VMU能夠傳送該向量 記憶體之一列或一向量,或者接收一列放入該向量記憶 體。同一指令可規定另外一純量傳送作業和/或一接收作 業。該VMU是唯一連接到外界之功能單元,即連接到該外 部匯流排110。 該碼產生單元(CGU 262)。以有限的欄位算術特殊化該 CGU。例如,該CGU可被用於產生CDMA碼晶片的向量與相 關功能,例如頻道碼與CRC。 ALU-MAC單元(AMU 264)。以正整數與定點算術特殊化 該AMU。其支援向量間之作業,其中以多向量元件的方式 執行算術。於一最佳實施例中,該AMU也提供若干内部向 量作業,其中以單一向量内之該等元件執行算術。 85370 -15- 1291096
ShuFfle單元(SFU 266)。該SFU能夠根據一特定之混洗圖 樣,重新配置一向量之此等元件。 左移單元(SLU 268)。該SLU能由一單元移位該向量之此 等元件,例如向左一字、一雙字或一四元字。所產生之純 量被提供給自己的純量區段。根據SLU向量作業之類型發 出,該消耗的純量不是零,就是取自自己的純量區段。 右移單元(SRU 270)。該SRU與該SLU相似,但向右移位。 此外該SRU有能力合併該AMU内部向量作業之連續結果。 下表顯示所有的FU有一功能向量區段210,但有些沒有一 控制區段230或純量區段220。 功能單元 控制 純量 向量 指令分配單元 定序,循環 指令分配 向量記憶體單元 位址計算 純量輸入/輸出 向量輸入/輸出 碼產生單元 碼向量產生 ALU-MAC 單元 索引 廣播 向量間:ALU ’ MAC,mul,… 分段 内部向量:加, 最大值 混洗單元 向量混洗 左移單元 純量輸入/輸出 向量移位 右移單元 純量輸入/輸出 向量移位 根據本發明之純量/向量處理器以兩種主要的方式應用 指令階的平行性: 85370 -16- 1291096 向量處理,其中一單指令根據(純量)資料之此等向量作 業。該方法也是已知的單指令流,多資料流或SIMD。 多功能單元之平行處理,各自根據此等向量作業。上述 可視為一 VLIW指令階平行性的形式(受限制的), 注意此兩種形式之指令階平行性是獨立的,而且它們的 影響是累積的。 FU間通信 該功能單元(FU)以平行方式作業。每一 FU能夠接收與傳 送向量資料。許多FU也能接收與傳送純量資料。 功能單元 原始 vmu cgu amu sfu slu sru 目標 #輸入 vmu 1 ! ! ! ! ! ! cgu 1 ! ! ! ! ! amu 2 ! ! ! ! ! ! sfu 1 ! ! ! ! ! ! slu 1 ! [ I ! ! sru 1 ! ! ! ! ! 所有的功能單元以平行方式作業。根據接受之指令段, 所有的功能單元輸入、處理與輸出資料,包括向量資料與 其中可應用之純量資料。在此等FU之間的通信完全在該等 純量區段或該等向量區段中(FU間通信)。即,由一管線連 接除了該IDU之外的所有FU的該等向量區段。於一最佳實 施例中,該管線可配置在指令基礎上。為此目的,最好由 85370 -17- 1291096 一互連的網路互連該等FIJ,在管線中使每一向量區段於各 週期從其餘向量區段中任何之一接收一向量。該特效率夠 建互該等FU(除了該IDU之外)的所有管線。於每一時鐘週 期,該等功能單元中之六個能幫助該向量路徑以平行方式 輸出一向量,並將其傳送給其他單元。它們也能夠從另一 單元接收一向量。該網路幾乎完全被連接。只有此等沒有 意義的鏈結被省略。該AMU同時接收兩向量。如圖2中所顯 不的,該網路最好由每一連接到一網路路徑作為信號源(由 一圓點表示)的FU所形成。並且被連接到所有其他的路徑作 為一信號接收點(由一三角形表示)。該FU之VLIW指令區段 指示將由那個路徑消耗一向量。於此方式中,根據一指令 基礎配置該管線。各路徑能傳輸一完整的向量,例如,使 用256平行線。同樣地,該等FU至少有些純量區段由一個別 的管線連接。最好也根據指令基礎配置該管線。該等FU純 量區段中之互連網路就某種意義來說是不完全的,即不能 由至少一 FU的純量區段傳送或接收純量。因此,較少描述 管線的定序。該等純量與向量管線可被獨立配置。例如, 以該相關之VLIW區段指示由該功能單元讀取該純量管線 與該向量管線。 沒有描述該等不同功能單元之控制區段間的連接。此等 區段從該IDU接收該VLIW指令之一段,更新自己所屬的狀 態,並控制各自的純量與向量區段。 内部-FU通信 於一 FU内,此等區段(内部-FU通信)間有緊密的交互作 85370 -18 - 1291096
FU的純量區段部分。 通常於單週期執行此等指令。只有在拖延週期 擦滿該向 量記憶體與顯露自己時會發生例外 資料寬度
字’也稱為一單字。 或2W==16位元),或四元字(QW或4W=32位元)。一字的尺寸 疋W 8位元。此等純量最好出於三種尺寸:(單)字,雙字與 他Μ宁,該純量/向量處理支援數種資料寬度 如圖3所顯示。記憶體定址的基本單位是一 -丰。孚寬最好能夠是一單字(w),雙字(DW, 四兀竽。一具有Pq四元字之固定尺寸的向量。最好由下列 三種格式之一建構:
Pq尺寸四元字的元件,
Pd=2Pq尺寸雙字的元件
Ps=2Pd=4Pq尺寸(單)字的元件。 該向量元件的索引範圍是[0〜4P(rl]。因此,此等雙字有 此等偶數索引,而此等四元字的索引是四的倍數。圖3提供 此等資料尺寸的概觀。該架構完全可由Pq繪製,並被定義 為任何向量尺寸PqH。然而,對於大部分情況,最好選擇 心為2的次方。於該最佳實施例中,Pq是8,意味著32字之 資料路徑寬度與記憶體寬度。 cvp指令不是一控制指令,就是一 VLIW指令。例如, 85370 -19 - 1291096 此等控制指令可以是零負擔的迴路初始化。沒有分支、跳 越或副常式。一 VLIW指令被分成一些段,其中每一資料段 規定最好由該對應之功能單元執行該(等)作業。該段進一步 被細分成該向量區段與該純量區段的一部分(如有呈現)。該 段也包括此兩部分在網路部分被用於接收資料(該向量區 段之一或更多的向量,或該純量區段之一或更多的純量)之 資訊。 該純量/向量處理器的狀態 該CVP的狀態是自己之此等功能單元的結合狀態。於該 最佳實施例中,其包括: 該向量記憶體(該VMU部分); 該程式記憶體(該IDU部分); 此等向量暫存器(所有的功能單元); 此等純量暫存器(大部分的功能單元); 此等包括該等程式計數器與位址偏移暫存器之控制暫存 器。 除了程式員可見到的該等暫存器外,一 CVP的現實通常 包括更多管線與高速存取的暫存器(向量,純量與控制)。不 是部分的CVP指令集架構。 該等(向量,純量與控制)暫存器中之若干也就是所謂的組 態暫存器。一組態暫存器的内容只能夠從該向量記憶體載 入;沒有其他的方法可改變自己的值。一組態暫存器支援 該等功能單元之組態,而且通常定義一函數參數。藉由儲 存此等”半固定”函數參數於組態暫存器,以大大減少該指 85370 -20- 1291096 令寬度與記憶體的流量。 該CVP狀態之該等組件的簡介呈現於下表。 FU 控制路徑 純量路徑 向量路徑 資料 組態 資料 組態 資料 組態 vmu 偏移量 5 位址 8 資料記憶體 2048 cgu 計算器 3 代碼 3 狀態 6 遮罩 2 多項式 2 amu 1 接收 1 段尺寸 1 暫存器檔案 16 sfu 暫存器 1 混洗圖樣 4 slu 接收 1 暫存器檔案 2 sru 接收 1 暫存器檔案 2 idu pc 1 迴路CU 2 程式記憶體 2048 程式員可見的所有暫存器能夠由該向量記憶體載入。所 有的暫存器除了該等組態暫存器,能夠被儲存於該向量記 憶體。為了定量目的而儲存該等CVP暫存器,並且在最後 一次將它們復原,該CVP能繼續一特別的任務,猶如無法 同時執行其他的分配工作。此等儲存與復原作業是可選擇 的,可以是部分,但必須被明確地程式設計。 該記憶體单元 圖4顯示該記憶體單元(VMU 400)的方塊圖,於其中使用 根據本發明之記憶體配置。於下面所描述之最佳實施例 中,該記憶體單元被用於與具有能儲存一完整向量之廣泛 實體記憶體結合的向量處理器。應明白同一觀念也可應用 於此等純量處理器,例如慣用的DSP。該VMU包含並控制 85370 -21 - 1291096 該向量記憶體410,其提供一廣泛資料頻寬給該等其他的功 能單元。該實體向量記憶體410最好以單埠SRAM為基礎。 由於此等寬度為Ps*W的嵌入SRAM通常是不能用的,因此 平行配置一或更多廣泛隨機存取記憶體(RAM)之儲存體以 形成該實體記憶體。該純量資料最好被儲存在儲存該向量 資料之同一記憶體。於此一系統中,此等純量能與相對的 此等向量混合。為了該記憶體的成本效益與最佳存取時 間,該記憶體最好只允許此等全向量列的讀與寫。就其本 身而言,邏輯上該實體記憶體由一向量尺寸的所有列組 成。為支援此等純量的讀與寫,使用更多的硬體(一列中的 純量區段之列快取記憶體430與支援440)以一純量方式存 取該向量廣泛實體記憶體。 圖5提供更詳細的配置。顯示該實體記憶體5〇〇具有一全 寬度的埠505(於該範例中,具有一向量寬度)。於該圖中僅 頟不一?買取埠。熟悉此項技藝之人士能輕易地決定類似的 寫出資料配置。該配置包括至少一與該實體記憶體埠5〇5相 同寬度的暫存器。顯示四個暫存器51〇,512,514與516。 所有的暫存器是選擇性連接至該讀取埠5〇5以接收資料。於 該圖中,一暫存器5丨4用於讀取此等較小的資料元件,於此 範例中:-純量。此等較小資料元件中最好至少有兩個適 合該暫存器。與一讀取埠525相關的資料暫存器514耦合至 處理單7L (或更多一般的:資料槽)。一多工器52〇最好耦 合至該暫存㈣4,以從該暫存器選擇該相關的純量資料。 由該暫存器中的純量數量控制該多工器,#同由該位址之 §537〇 -22- 1291096 瑕不重要的位兀規疋(例如,使用一具有32個8_位元字的256 “ το向里)。a匕等多王器是眾所周知白勺,因此不進一步描 述。彥暫#态被連接至用以接收該資料(全寬度)之實體記憶 仏的項取埠505。一般而言,可以是此等Nr純量讀取埠各自 連接至-向量寬暫#器。上述能分割此等暫存器或甚至同 噶存时。忒等暫存器是圖4之快取記憶體的部分。該等多 工w疋d純里區段塊44〇的部分。但未以類似的方式顯示, 可以疋存在孩快取記憶體43〇中的Nw純量寫埠與Nw向量寬 I存抑對於每一純量寫埠,該快取記憶體430中之對應暫 存器連接至Nw輸入之一向量寬解多工器,以選擇那一快取 记fe fa列被寫回該實體記憶體。當一 令需要多種快 取記憶體列被寫回時,連續執行上述,以拖延所有其他功 月匕單元直到所有的寫入被芫成。對此等不同寫埠的存取, 雖然使用同-指令,但不允許存取該實體記憶體的同一 列。假设以連續純量存取空間方位(例如此等連續純量屬於 一處理迴路,後續被連續儲存於該實體記憶體410),載入/ 儲存此等暫存器之實體記憶體41〇的存取頻率顯然低於此 等暫存#之純量存取頻率。 於該最佳實施例中,在該記憶體中,不需要以此等向量 軛圍調準一向量。因此,由此等ps字組成之向量可具有一 任思的C憶體位址。一記憶體列具有同一尺寸,但其開始 位址由多種Ps所定義。(對於列的存取,忽略該位址最不重 要的位元2log PS)。由於允許任意調準此等向量(通常調準該 最小的字範園),因此能更恰當地利用該記憶體與較少的空 85370 -23- 1291096 位。將此等方法視為可使該純量/向量處理器讀/寫此等個別 向量,而該向量可被儲存於該實體記憶體之兩連續列。為 了此目的,一調準單元被用於向量傳送作業。該調準單元 被顯示於圖4的區塊440。於圖5更詳細描述。該調準單元530 連接至兩列快取記憶體5 1 〇與5 12(即,兩個向量廣泛暫存 斋),包含由該需要的向量跨越的兩列。當存取此等連續向 里時,僅從該貫體記憶體取得一新列,而另一列仍然存在 此等列快取記憶體之一。形成該需要之向量的兩列快取記 憶體與由此等多工器530所構成之一網路相結合,接著儲存 於一向量廣泛管線暫存器。該管線暫存器經由一向量讀取 埠535接收該資料。由於該管線暫存器,該值能在該vmu 廣播匯流排上傳輸。 圖5也顯示進-步的向量廣泛暫存器516,及能夠直接從 該記憶體讀取-列的相關向量廣泛讀取埠54(),其中該暫存 器作為一快取記憶體。 最好由該程式負隱_繞該域體的快取。儘管此等快 速記憶體的使用盡力趕上具有單物AM的多埠向量記憶 體’孩程式員另外能採用—協調向量記憶體。因為每—暫 存器能包含該實體記憶體中之同—資料的可能複本,接著 自動維護協調性代替防護該協調性的程式員。為了此目 的,對衝突的位址執行檢查’即,使一暫存器的寫發生在 -列位址,其中同—列也被儲存於該等其餘暫存器之—。 ㈣每-暫㈣㈣存有此—檢查就夠了,所以該列之列 止儲存U暫存咨。如果偵剛到—可能的衝突,可採取 85370 -24- 1291096 一種修正方法。例如,以同一列對一暫存器發生寫入作業, 項暫存态就被標示為無效。除非再次從該實體記憶體讀 取咸暫存器(在該寫暫存器首次被窝回該記憶體之後),否則 不會進一步使用該暫存器。此外,對該寫暫存器發生一寫 入 < 後,使用同一列將一寫暫存器的内容複製到所有的讀 暫存器。第三種可能性是在讀取與寫入埠之間分享暫存 器。後面的方法需要更多的向量廣泛多工器,會增加成本, 但提供高效率的優點。事實上,一頻道被建立,其中一連 接至一讀取埠之讀暫存器被旁通,但實際上通過該讀取埠 仗寫暫存器讀取資料。所有此等修正方法發生在使用的 力把,共同稱為”協調檢查器”。為了決定使用儲存可能資 料 < 一複製形式(具有可能的一致性問題)的協調暫存器,儲 存藏内容之儲存資訊的資料暫存器與該協調暫存器相關 ^。琢協調暫存器最好將該資料儲存於該對應資料暫存器 之只體位址。此等向量讀取也能採取相同的協調檢查與方 法,其中該向量被(部分)儲存於與一寫入埠相關的暫存器, 以代替僅對此等純量存取。最好於單時鐘週期中,由該實 體圮憶體510之一單存取執行該實體記憶體之一列的讀取 與寫入。 於一單VMU指令中,該向量記憶體單元能支援最多四個 同時發生的,’子作業,,: 傳送一向f ’或傳送一列,或接受一列從/至VM位置; 從一 VM位置傳送一純量; 接受一純量給一 VM位置; 85370 -25- 1291096 修改一位址計算單元之狀態/輸出。 VMC cmd = vopc,aid_v,ainc_v,sopc,aid_s,ainc_s,size, vopc = srcv,aid—r,ainc—r,aopc,aid_a,imm—addr) :NOP|SENDL|SENDV|RCVL_CGU|RCVL_ AMU|RCVL_SFU|RCVL_SLU|RCVL_SRU Aid__v = :{〇,···,7} Ainc_v = =NOP|INC sopc = =NOP|SEND aid_s = :{〇,···,7} ainc_s = =NOP|INC size = WORD|DWORD|QWORD srcv = :NONE|VMU|AMU|SLU|SRU aid__r = {〇,.",7} ainc_r = :NOP|INC aopc = NOP|IMM|LDBASE|LDOFFS|LDINCR |LDB0UND aid_a = {〇,··.J} imm_addr = {0·0,···,524288·31}| {-262144.0,···, 262143.31} 該VMU指令可取得一些變化的時鐘週期,依子作業數量 與位址順序的協調性而定。 該VMU輸入/輸出為: 85370 -26- 1291096 輸入 說明 Cmd VMU命令 rcvamu AMU向量接收匯流排 rcvcgu CGU向量接收匯流排 rcv_sfu SFU向量接收匯流排 rcvslu SLU向量接收匯流排 rcvsru SRU向量接收匯流排 srcvamu AMU純量接收匯流排 s rcv slu SLU純量接收匯流排 srcvsru SRU純量接收匯流排 輸出 說明 Snd VMU向量結果 ssnd VMU純量結果 此外有兩純量埠(一傳送,一接收)被連接至該外部匯流 排。同步存取此等具有CVP指令之記憶體是該微控制器130 的任務。 該VMU向量區段包括該實體向量記憶體5 10 :
名稱 說明 mem[4096][32] Vector memory: 32字各自之4096歹丨J 注意,此等向量子作業不能存取該純量記憶體。因此, 忽略此等向量子作業最重要的位址位元。該VMU之向量區 段支援七個子作業,解碼加入該指令的VOPC欄位:向量傳 送(SENDV),列傳送(SENDL),及五列接收子作業 85370 -27- 1291096 (RCVL—CGU,RCVL_AMU,RCVL—SFU,RCVL—SLU, RCVL一SRU) 〇該接收源之功能單元被明確解碼加入該對應 列接收子作業。由一對應的位址計算單元規定每一子作業 之讀取位址或寫入位址。所有的向量子作業分享該AINC_V 欄位。其將被傳遞給該ACU解碼加入該AID—V欄位。該 AINC—V欄位規定該受影響的位址計算單元是否執行一後 增加作業。 ___ _ 防護 轉變 vopc=NOP 無 vopc=SENDL snd=mem.line[acu[aid vl.out] vopc=SENDV snd=mem.vector[acu『aid v].out] vopc=RCVL CGU mem.line[acu[aid vl.outl=rcv cgu vopc=RCVL AMU mem.line[acu[aid v].outl=rcv_amu vopc=RCVL SFU mem.line[acu[aid vl.outl=rcv sfu vopc=RCVL SLU mem.line[acu[aid v],out!-rev slu y〇pc=RCVL SRU mem.line[acu[aid vl.outl^rcv sru 注意,該等作業被選派作為傳送〈或接收〉動作,但不 作為涉及一目的(或來源)的載入(或儲存)動作。稍後由其餘 功能單元中的此等作業規定。一列傳送的功能等同一具有 同一位址的向量傳送,此等列傳送子作業通常被用於組配 此等功能單元,或用於復原各種暫存器中之任務狀態。由 於採用一特別模式之列傳送,通過快取記憶體的有效使 用,最佳化此等連續向量傳送向量流”)的存取時間。 該VMU的純量子作業被解碼加入該指令的SOPC欄位。只 85370 -28 - 1291096 支援一子作業:純量傳送(SEND)。由該AID—S欄位規定的 位址計算單元規定該讀取位址。該指令的AINC_S欄位規定 該位址計算單元是否執行一後增加作業。該純量子作業之 運算域尺寸(WORD,DWORD或QWORD)由該指令的SIZE欄 位決定。 防護 轉變 sopc=NOP 無 sopc =SEND && size =WORD S snd=mem.word[acu[aid s].out] sopc=SEND && size =DWORD S snd=mem.dword[acu[aid sj.out] sopc=SEND && size =QWORD S_snd=mem.qword[acu[aid s].out] 該VMU之純量接收子作業被解碼加入該指令的SRCV欄 位。如果其值是無,則沒有純量接收被執行。除此之外, 該指令的SRCV欄位可決定使用那個功能單元作為該純量 接收源。由該AID—R搁位規定的該位址計算單元規定該讀 取位址。該指令的AINC_R欄位規定該位址計算單元是否執 行一後增加作業。該純量子作業之運算域尺寸(WORD, DWORD或QWORD)由該原始純量的尺寸決定。 防護 轉變 srcv^NONE 無 srcv=VMU mem.scalar[acu[aid r].outl=s rev vmu srcv=AMU mem. sc alar [acu [aid r].out]=s rev amu srcv=SLU mem.scalar[acu[aid r].outl=s rev slu srcv=SRU mem.scalarfacu[aid_r].outl=s rev sru 該傳送與接收子作業能被組合成一純量移動作業,從一 85370 -29- 1291096 VM作業至另一 VM作業。由一對應的位址計算單元規定每 一存取位址。 該VMU控制區段550主要是一組位址計算單元或(ACU) 或位址產生單元(AGU),以支援定址模式,如慣用之DSP中 的位址計算單元或位址產生單元。此一單元執行每指令之 一或更多位址計算,不需使用該處理器的主要資料路徑。 例如,一純量之位址在每一純量讀存取之後能被後增加。 上述允許根據資料,平行發生位址計算與算術作業,以改 善該處理器的效率。根據該組定址模式的支援,此一 ACU 需要存取一些暫存器。例如, 與定址相關,即,定址有關一所謂的基址,需要一基底 暫存器base 有關該基底暫存器的偏移儲存於一偏移暫存器offs 由一值前/後增量該偏移量儲存於一增量暫存器incr 有關一位址的模數定址儲存於一界限暫存器bound 由該組定址模式,支援下面的作業。採用一偏移暫存器 offs。每一記憶體在位址base+offs存取(讀取或寫入)之後, 根據offs: = (offs+incr)的模數bound更新暫存器offs。因此, 改變offs頻繁(在每一存取之後),而且頻繁改變儲存於 base,incr與bound的值。通常,在一程式迴路之前,初始 化後面的三個暫存器。於此不詳細描述該ACU的作業。 請注意上面所提到的實施例是用於說明,而不是用於限 制本發明,而熟悉此項技藝之人士能夠設計許多替代實施 例,但不達背該附加申請專利範圍的領域。於該申請專利 85370 -30- 1291096 :園、中所有置於圓括號間的參考符號不應被解釋為限制 孩申請專利範圍。該等字”包括,,與,,包含,,不排除列於該申請 專利範園外的其他元件或步驟。 【圖式簡單說明】 由上面所描述《琢等相關實施例瞭解並說明本發明之此 等與其他觀點。 該等圖示之簡略描述,該等圖示中: 圖1顯示-最佳之組態,在其中使用根據該本發明之純量 /向量處理器; 圖2頭不根據該本發明之純量/向量處理器的主要結構; 圖3顯示支援的資料寬度與資料類型; 圖4顯示該向量記憶體單元之方塊圖;及 圖5說明使用的此等中間暫存器與兩埠的尺寸。 【圖式代表符號說明】 110 匯流排 120 純量/向量處理器 130 DSP或微控制器 140 rf控制器/介面 210 管線向量處理區段 220 純量處理區段 230 控制區段 250 指令分配單元 252 程式記憶體 260 向量記憶體單元 85370 -31- 1291096 262 碼產生單元 264 ALU-MAC 單元 266 ShuFfle 單元 268 左移單元 270 右移單元 W 字 DW 雙字 QW 四元字 410 實體記憶體 430 列快取記憶體 440 向量調準+純量區段 500 實體記憶體 505 , 525 讀取埠 510 暫存器 512 暫存器 514 暫存器 516 暫存器 520 多工器 440 純量區段塊 530 調準單元 535 , 540 讀取埠 -32- 85370
Claims (1)
129讲跑 宙 13718號專利申請/ •文申凊專利範園替換本&6年丨/月)〃 拾、申請專利範園: 1.-種用以存取—記憶體中的資料之處見系統,並包本一 =器=—實體_t,該實體記憶體具有—存取;記 ::::貝科疋單一尺寸記憶體埠;配置該處理器對至少 2 —資料尺寸與-較小的第二資料尺寸之資料作業; :!一資:尺寸等於或小於該記憶體埠尺寸;該處理系 、、’无匕括該第一資料尺寸之至少一 ^ 煸存备連接至該記憶體 =以及”:資料尺寸之至少—料㈣接至該資料 I存為域能存取該帛二資料尺寸之此等料 處理器。 μ 2·如申請專利範圍第1項之處理系統,其中記憶體埠尺寸至 少是該第二資料尺寸的兩倍。 3.如申請專利範園第2項之處理系統,其中該資料淳是一讀 取埠’而且該處理系統包括一多工器,以根據一讀取: 址的控制,從該資料暫存器選擇與擷取該第二資料尺 之一資料元件。 、 4·如申請專利範圍第2項之處理系統,其中該資料蜂是—寫 入埠而且叆處理系統包括一解多工器,以根據一寫入 位址的控制,將該第二資料尺寸之一資料元件插於該資 料暫存器之可選擇位置。 / 5·如申請專利範圍第丨或2項之處理系統,其中該處理系統 包括该第二資料尺寸之複數個資料埠連接至該處理器, 而且為了該等資料埠之每一個,一相關的個別資料暫存 器連接至該個別的資料埠與該實體記憶體之一埠。 85370-960123.doc :: 1291096 6·如申請專利範圍第15貝之處理系統,其中該資料痒是 ^埠’而且該處理系統包括_協調檢查器,為了料 =暫Γ一相關的協調暫存器,以儲存識別儲存於 具科暫存器之資料的資訊;該協調檢查器可作業— 存取駄憶體之讀取位址與儲存於該: :的識別資訊,以檢查準備從該記憶體讀取的資料= 興儲存於孩資料暫存器之資料相符。 疋、 7·二料圍第6項之處理系統,其中該識別資 ^取孩貫體記憶體之-字的實體位址,其中 度與孩記憶體埠相同。 勺寬 8. Γ:!利範圍第6項之處理系統,其中該協調檢杳器包 ::::解決器,應-可能-致的衝突,取;:等 9·=請專利範圍第8項之處理系統,其中該衝突解 此^以藉由標記該資料暫存器為讀存取無效,而取得 步驟,為回應該資料暫存器之 致 從孩記憶體重新載入該資料暫存器之内容。 導致 1〇·二申請專利範圍第8項之處理系統,該 協調暫存器’用以每一個別的資料暫存器,二=; 器儲存識㈣存於該個別之資料暫#器之^的=存 突:決器以回應寫存取該等資料暫存器::’ 記憶體之内容複製至所有其餘的 '存… 體之—位置,根據該識別資訊録存相同的或該記憶 85370-960123.doc 丄291096 ΐΡι 月日修(|6正替翻 11 =請專:㈣第8“系統,其中至少該等資料暫 少===暫存器")被連接至一讀資料淳,及至 窝λ火’來存益又一(下面的"寫暫存器”)被連接至一 貝枓:;而且該處理器包括—旁通,用以可選擇從 —、、、i存^供Λ料給該讀資料崞;該協調檢查器包括 ::以每-個別資料暫存器之協調暫存器,以儲存識別 ^予於則目關資料暫存器之資料的資訊;該衝突解決器 子配置,藉由回應寫資料進入啟動該旁通路徑之該寫暫 存器,以連續讀存取該讀暫存n,以$得此等修正步驟, 如果該讀暫存器根據該識別資訊應儲存同一資料元件。 如申叫專利範圍第丨項之處理系統,其中該實體記憶體以 一單埠SRAM為基礎。 13·如申請專利範圍第U項之處理系統,其中該實體記憶體 以複數個平行方式配置的RAM形成。 14.如申請專利範圍第1項之處理系統,其中該處理器被配 置,根據該第一資料尺寸之向量與該第二資料尺寸之純 !作業’其中#亥弟一資料寬度至少是該第二資料宽度的 兩倍。 15·如申請專利範圍第1項之處理系統,其中該記憶體被欲於 該處理器。 85370-960123.doc
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02077034 | 2002-05-24 | ||
EP02078618 | 2002-09-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200407705A TW200407705A (en) | 2004-05-16 |
TWI291096B true TWI291096B (en) | 2007-12-11 |
Family
ID=29585702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092113718A TWI291096B (en) | 2002-05-24 | 2003-05-21 | A processing system for accessing data in a memory |
Country Status (9)
Country | Link |
---|---|
US (1) | US7430631B2 (zh) |
EP (1) | EP1512068B1 (zh) |
JP (1) | JP2005527035A (zh) |
CN (1) | CN1656445B (zh) |
AT (1) | ATE372542T1 (zh) |
AU (1) | AU2003222411A1 (zh) |
DE (1) | DE60316151T2 (zh) |
TW (1) | TWI291096B (zh) |
WO (1) | WO2003100599A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI487293B (zh) * | 2008-06-13 | 2015-06-01 | Lsi Corp | 用於複數個碼類型可程式化解碼的方法及裝置 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725745B2 (en) * | 2006-12-19 | 2010-05-25 | Intel Corporation | Power aware software pipelining for hardware accelerators |
US8489825B2 (en) | 2007-04-16 | 2013-07-16 | St-Ericsson Sa | Method of storing data, method of loading data and signal processor |
US8140771B2 (en) * | 2008-02-01 | 2012-03-20 | International Business Machines Corporation | Partial cache line storage-modifying operation based upon a hint |
US8117401B2 (en) | 2008-02-01 | 2012-02-14 | International Business Machines Corporation | Interconnect operation indicating acceptability of partial data delivery |
US8255635B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Claiming coherency ownership of a partial cache line of data |
US8024527B2 (en) * | 2008-02-01 | 2011-09-20 | International Business Machines Corporation | Partial cache line accesses based on memory access patterns |
US8108619B2 (en) * | 2008-02-01 | 2012-01-31 | International Business Machines Corporation | Cache management for partial cache line operations |
US7958309B2 (en) | 2008-02-01 | 2011-06-07 | International Business Machines Corporation | Dynamic selection of a memory access size |
US8250307B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Sourcing differing amounts of prefetch data in response to data prefetch requests |
US20090198910A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Ravi K | Data processing system, processor and method that support a touch of a partial cache line of data |
US8266381B2 (en) * | 2008-02-01 | 2012-09-11 | International Business Machines Corporation | Varying an amount of data retrieved from memory based upon an instruction hint |
US7895381B2 (en) * | 2009-02-16 | 2011-02-22 | Himax Media Solutions, Inc. | Data accessing system |
US8117390B2 (en) * | 2009-04-15 | 2012-02-14 | International Business Machines Corporation | Updating partial cache lines in a data processing system |
US8176254B2 (en) * | 2009-04-16 | 2012-05-08 | International Business Machines Corporation | Specifying an access hint for prefetching limited use data in a cache hierarchy |
US8140759B2 (en) * | 2009-04-16 | 2012-03-20 | International Business Machines Corporation | Specifying an access hint for prefetching partial cache block data in a cache hierarchy |
CN101986287B (zh) * | 2010-11-25 | 2012-10-17 | 中国人民解放军国防科学技术大学 | 用于向量数据流的重整理缓冲器 |
US8688957B2 (en) | 2010-12-21 | 2014-04-01 | Intel Corporation | Mechanism for conflict detection using SIMD |
CA2859999A1 (en) * | 2011-01-25 | 2012-08-02 | Cognivue Corporation | Apparatus and method of vector unit sharing |
US10037205B2 (en) * | 2011-12-23 | 2018-07-31 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
US9342479B2 (en) | 2012-08-23 | 2016-05-17 | Qualcomm Incorporated | Systems and methods of data extraction in a vector processor |
US9411592B2 (en) | 2012-12-29 | 2016-08-09 | Intel Corporation | Vector address conflict resolution with vector population count functionality |
US9411584B2 (en) | 2012-12-29 | 2016-08-09 | Intel Corporation | Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality |
US9424034B2 (en) * | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
CN104679584B (zh) * | 2013-11-28 | 2017-10-24 | 中国航空工业集团公司第六三一研究所 | 矢量上下文切换方法 |
EP3193254A4 (en) * | 2014-10-09 | 2017-10-11 | Huawei Technologies Co. Ltd. | Asynchronous instruction execution apparatus and method |
CN105337995B (zh) * | 2015-11-29 | 2019-06-21 | 恒宝股份有限公司 | 一种智能卡快速个人化方法及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949247A (en) * | 1988-02-23 | 1990-08-14 | Stellar Computer, Inc. | System for transferring multiple vector data elements to and from vector memory in a single operation |
US5379393A (en) * | 1992-05-14 | 1995-01-03 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Cache memory system for vector processing |
US5426754A (en) * | 1992-05-26 | 1995-06-20 | International Business Machines Corporation | Cross-interrogate method and means for combined scaler and vector processing system |
US5537606A (en) * | 1995-01-31 | 1996-07-16 | International Business Machines Corporation | Scalar pipeline replication for parallel vector element processing |
US5689653A (en) * | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
US6006315A (en) * | 1996-10-18 | 1999-12-21 | Samsung Electronics Co., Ltd. | Computer methods for writing a scalar value to a vector |
US5928350A (en) * | 1997-04-11 | 1999-07-27 | Raytheon Company | Wide memory architecture vector processor using nxP bits wide memory bus for transferring P n-bit vector operands in one cycle |
-
2003
- 2003-05-07 EP EP03717500A patent/EP1512068B1/en not_active Expired - Lifetime
- 2003-05-07 CN CN038118084A patent/CN1656445B/zh not_active Expired - Lifetime
- 2003-05-07 DE DE60316151T patent/DE60316151T2/de not_active Expired - Lifetime
- 2003-05-07 JP JP2004507986A patent/JP2005527035A/ja active Pending
- 2003-05-07 AT AT03717500T patent/ATE372542T1/de not_active IP Right Cessation
- 2003-05-07 AU AU2003222411A patent/AU2003222411A1/en not_active Abandoned
- 2003-05-07 US US10/515,452 patent/US7430631B2/en not_active Expired - Lifetime
- 2003-05-07 WO PCT/IB2003/001891 patent/WO2003100599A2/en active IP Right Grant
- 2003-05-21 TW TW092113718A patent/TWI291096B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI487293B (zh) * | 2008-06-13 | 2015-06-01 | Lsi Corp | 用於複數個碼類型可程式化解碼的方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
EP1512068B1 (en) | 2007-09-05 |
DE60316151D1 (de) | 2007-10-18 |
WO2003100599A2 (en) | 2003-12-04 |
US7430631B2 (en) | 2008-09-30 |
US20050240729A1 (en) | 2005-10-27 |
AU2003222411A1 (en) | 2003-12-12 |
EP1512068A2 (en) | 2005-03-09 |
JP2005527035A (ja) | 2005-09-08 |
CN1656445B (zh) | 2010-05-05 |
AU2003222411A8 (en) | 2003-12-12 |
ATE372542T1 (de) | 2007-09-15 |
WO2003100599A3 (en) | 2004-07-22 |
DE60316151T2 (de) | 2009-10-22 |
TW200407705A (en) | 2004-05-16 |
CN1656445A (zh) | 2005-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI291096B (en) | A processing system for accessing data in a memory | |
TW546585B (en) | Method of operating a processor and computer program product | |
TWI289789B (en) | A scalar/vector processor and processing system | |
JP5989656B2 (ja) | 処理クラスタ用の共有機能メモリ回路要素 | |
JPH0463430B2 (zh) | ||
JP2001256105A (ja) | 非整列循環アドレス指定を用いるマイクロプロセッサ | |
JP2017138993A (ja) | マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム | |
JP2005514678A (ja) | 集中デバイス・アプリケーション用の効果的な処理を備えたマルチスレッド・プロセッサ | |
JP2002508570A (ja) | 複数のデータパスインスタンスを有するプロセッサ | |
US7383419B2 (en) | Address generation unit for a processor | |
US6542989B2 (en) | Single instruction having op code and stack control field | |
JPH11306084A (ja) | 情報処理装置及び記憶媒体 | |
TW200424929A (en) | Method and apparatus for aligning operands for a processor | |
JP2003196086A (ja) | レジスタウィンドウ方式によるレジスタファイル及びその制御方法 | |
US6725355B1 (en) | Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks | |
JP2003005954A (ja) | データ処理装置およびその制御方法 | |
US20090037702A1 (en) | Processor and data load method using the same | |
JP2668156B2 (ja) | データ駆動型情報処理装置の実行制御方法 | |
WO2021187027A1 (ja) | 情報処理装置及び情報処理方法 | |
JPS60134937A (ja) | アドレス拡張装置 | |
EP1139214A1 (en) | System for allowing a two word instruction to be executed in a single cycle and method therefor | |
JPH1165923A (ja) | 演算処理装置およびメモリアクセス方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |