TW571239B - Branch instruction for multithreaded processor - Google Patents
Branch instruction for multithreaded processor Download PDFInfo
- Publication number
- TW571239B TW571239B TW089117902A TW89117902A TW571239B TW 571239 B TW571239 B TW 571239B TW 089117902 A TW089117902 A TW 089117902A TW 89117902 A TW89117902 A TW 89117902A TW 571239 B TW571239 B TW 571239B
- Authority
- TW
- Taiwan
- Prior art keywords
- content
- memory
- branch
- processor
- engine
- Prior art date
Links
- 238000003860 storage Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 15
- 238000003672 processing method Methods 0.000 claims 9
- 238000011156 evaluation Methods 0.000 claims 2
- 235000012054 meals Nutrition 0.000 claims 1
- 230000015654 memory Effects 0.000 abstract description 152
- 230000006870 function Effects 0.000 abstract description 17
- 238000012546 transfer Methods 0.000 description 28
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 102100034013 Gamma-glutamyl phosphate reductase Human genes 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 6
- 238000007689 inspection Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 241000251468 Actinopterygii Species 0.000 description 2
- 101100532856 Arabidopsis thaliana SDRA gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 235000001674 Agaricus brunnescens Nutrition 0.000 description 1
- 244000056139 Brassica cretica Species 0.000 description 1
- 235000003351 Brassica cretica Nutrition 0.000 description 1
- 235000003343 Brassica rupestris Nutrition 0.000 description 1
- 241000345998 Calamus manan Species 0.000 description 1
- 206010011469 Crying Diseases 0.000 description 1
- 241000052343 Dares Species 0.000 description 1
- 101000829425 Homo sapiens Steroid receptor RNA activator 1 Proteins 0.000 description 1
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 102100027779 Splicing factor, arginine/serine-rich 19 Human genes 0.000 description 1
- 229910052770 Uranium Inorganic materials 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 229910052788 barium Inorganic materials 0.000 description 1
- DSAJWYNOEDNPEQ-UHFFFAOYSA-N barium atom Chemical compound [Ba] DSAJWYNOEDNPEQ-UHFFFAOYSA-N 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- QKSKPIVNLNLAAV-UHFFFAOYSA-N bis(2-chloroethyl) sulfide Chemical compound ClCCSCCCl QKSKPIVNLNLAAV-UHFFFAOYSA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006260 foam Substances 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 235000010460 mustard Nutrition 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 229910052705 radium Inorganic materials 0.000 description 1
- HCWPIIXVSYCSAN-UHFFFAOYSA-N radium atom Chemical compound [Ra] HCWPIIXVSYCSAN-UHFFFAOYSA-N 0.000 description 1
- 235000012950 rattan cane Nutrition 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- JFALSRSLKYAFGM-UHFFFAOYSA-N uranium(0) Chemical compound [U] JFALSRSLKYAFGM-UHFFFAOYSA-N 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
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)
- Multimedia (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Image Processing (AREA)
- Stored Programmes (AREA)
- Harvester Elements (AREA)
- Control Of Transmission Device (AREA)
- Document Processing Apparatus (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
Description
571239 案號 89117902 年 a 修正 五、發明說明(1) 【發明領域】 本發明係有關於分支指令。 【習知技術說明1
平行處理是計算程序中同時事件的資訊處理之一種高 效率的方式。平行處理要求在電腦中許多程式的同時執 行。相對地,循序處理或串列處理具有所有工作是循序地 完成於單一工作站或者管線計算機具有工作完成於專業工 作站。不管是執行於平行處理、管線或循序處理的電腦程 式碼包括分支,而其中指令亊可以執行於序列中以及從該 序列分支至不同序列的指令。 為讓本發明之上述和其他目的、特徵、和優點能更明 顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細 說明如下: 【圖式簡單說明】 第1圖係使用運用硬體的多執行緒處理器之通訊系統 的方塊圖。 第2 - 1圖至第2 - 4圖係第1圖的運用硬體的多執行緒處 理器的詳細方塊圖。 第3 - 1圖至第3 - 2圖係使用於第1圖與第2圖的運用硬體 n 的多執行緒處理器中的微程式引擎功能單元的方塊圖。 第4圖係第3圖的微程式引擎中的管線的方塊圖。 第5A圖與第5B圖係顯示用於内容相關指令的示範格式 的圖。 第6圖係顯示一般用途暫存器位址安排的方塊圖。
1057-3413-pf2.ptc 第5頁 2002. 10. 14.006 571239 _案號 89117902_年月日___ 五、發明說明(2) 第7-1圖至第7-2圖係使用於運用硬體的多執行緒處理 器中而用以加強頻寬運算的記憶體控制器的方塊圖。 第7A圖係代表使用於第7圖的SDRAM控制器中的仲裁策 略的流程圖。 第7B圖係顯示最佳化SDRAM控制器的優點的時序圖。 第8 - 1圖至第8 - 2圖係使用於運用硬體的多執行緒處理 器中關於潛伏時間所侷限的運算的記憶體控制器的方塊 圖。 第8A圖係顯示最佳化SRAM控制器的優點的時序圖。 第9 - 1圖至第9 - 6圖係在第1圖的處理器中通訊匯流排 界面的方塊圖。 【符號說明】 1 0〜通訊系統; 1 2〜運用硬體的多執行緒處理器; 13a〜10/100 BaseT 八進位媒體存取控制; 1 3 b〜十億位元乙太網路裝置; 14〜PCI匯流排; 1 6〜記憶體糸統, 1 6 a〜同步動態隨機存取記憶體(S D R A Μ ); 1 6b〜靜態隨機存取記憶體(SRAM ); 1 6 c〜快閃唯讀記憶體; 1 8〜第二匯流排: 2 0〜核心處理器; 22〜功能微程式引擎; 2 2a-22f〜微程式引擎;
1057-3413-pf2.ptc 第6頁 2002. 10. 14.007 571239 五、發明說明(3) 2 4〜P C I匯流排界面; 26a〜同步動態隨機存取記憶體(SDRAM )控制器; 2 6b〜靜態隨機存取記憶體(SRAM )控制器; 2 7〜便條式記憶體; 28〜先進先出匯流排(FIFO Bus: FBUS)界面; 29a〜輸入與輸出FIFOs ; 29b〜輸入與輸出FIFOs ; 3 0〜先進系統匯流排(ASB )轉譯器; 3 2〜内部核心處理器匯流排; 34〜非公開匯流排; 38〜記憶體匯流排; 50〜精簡指令集運算(RISC )核心; 5 2〜十六仟位元組指令快取(1 6 - k i i 〇 b y t e instruction cache ); 54〜八计位元組資料快取(8-kilobyte data cache ); 5 6〜預先擷取資料串緩衝區; 7 0〜控制儲存; 72〜控制器邏輯; 72a-72d 〜程式計數器(Program Counter: PC)單 元 7 3〜指令解碼器; 74〜内容事件切換邏輯 76〜執行盒資料路徑;
第7頁 571239 :ALU 丨 I五、發明說明(4) j 7 6a 〜算術邏輯單元(ar i thme t i c i og i c un i t 1 ' c
I l 76b〜一般罔途暫存器組(generai-DiirDose I - ! register set ); 器堆 j 78〜寫入移轉暫存器堆疊;80〜讀取移轉暫存 卜 \ 90〜位垃與侖令佇列; 9 0s 〜偶 數 储 存 所 佇 列; 90b 〜奇 數 儲 存 所 佇 列; 90c 〜次 序 佇 列 90d 〜高 度 優 先 權 佇 列; 91〜 ^SDRAM 仲 裁 器 b 92〜ASB匯流排界面邏輯; 98〜MEM ASB資料裝置; 97〜引擎; 9 4〜P C I位ϋ 4宁列; 96〜ASB讀取/寫入佇列; 1 0 6〜多工器; I 0 0〜優先權服務控制暫存器; II 0〜SDMM界面; ί 1 2〜匯流排; 115〜程序; 檢查;
11 5a〜對於連鎖微程式引擎記憶體參照要求的 11 5b〜對於ASB匯流排要求的檢查; 571239 I五、發明說明(5) j li5c〜對於PCI匯流排要求的檢查; | 11 5d〜對於高度優先權佇列服務的檢查; i
| I | 115e〜對於相反儲存所要求的檢查; j ί 115ί〜對於次序佇列要求的檢查; ί
I ' I
j 115g〜對於相同儲存所要求的檢查; I
120〜位址與命令佇列; I 120a〜高度優先權佇列; j 1 2 0 b〜S R A Μ完成的佔優勢的記憶體參照功能之讀取仔 j
列; L I 120c〜至SRAM的寫入與非最佳化的讀取之次序佇列;|w ί ί
I 120d〜讀取鎖住失敗佇列; I 122〜ASB匯流排界面邏輯; f 126〜多工器; j 128〜MEM ASB資料裝置; 1 30〜優先權服務控制暫存器; I 131〜SRAM仲裁器; j 138〜解碼器; j
1 138〜命令控制器與位址產生器; I I § 140〜SRAM界面; 142〜鎖住查詢裝置; 182〜傳送FIFO ;
| 183 〜接收FIFO ; I ! 188〜雜凑單元; ! ί 571239 五、發明說明(6) 188b 〜FIFO ; 189〜FBI控制與狀態暫存器; 2 0 0〜推進狀態機構; 2 0 2 ’〜搬走狀態機構; 【較佳實施例的詳細說明】 ιί = ΐ1圖,、通訊系統10包括平行,運用硬體的多热 Γτ^二1 2。€用硬體的多執行緒處理器12被連接至 ::;分割成為平行子工作或函數的工作, F 。特別地’對於頻寬導向而非潛伏ί 多執行緒處理器丨2擁有多微程式引ΪΓ2 母娀程式引擎22具有多硬體控制執 , , 行緒可以被同時地啟動與獨立地活動於:作;體控制執 運闬硬體的多執行緒處理器Η也包括中央控 中央控制器2 〇協助裝載用於運〜鈾、二声的.0, 的其他資源之微程式碼控制多執灯緒處理器12 數,例如管理協定,異常他…腦類型函 中微程式引擎22完成封包的处理的額夕支板,其 況。在-實施例中,處;處理’如同在邊界狀 構(Απ是英國ARM公5Ί的;&運罔St_g 的架 於微程式引統處理處^器2〇可以呼叫函f以運算 業系統,最好是即時作章處李/2〇可以使用任何支援的作 系糸、、先。對於實現為Strong Arm架 571239 五、發明説明⑺ 的核心處理器2 0 ’例如M i c r 〇 s 〇 f t〜n T 鱼 YXWorks輿/zCUS,可於網際網路得 r e a 丄〜ΐ i m e, 統 之類的作業系統可以被使馬c 3""車人體作業系 罔硬體的多執行緒處理器1 ? v 擎22一 ϋ功能微程式弓數,能微程式引 2.如維持硬體中的複數程式計數^^弓⑴ 算,對應:-些執行緒集合可以被同時地啟:於= 微程式引擎22a-22f。 …、母個㉟ 在:實施例中,顯示出六個微程式引擎…―。 -微程式引擎22a—m具有用於處理四個硬體執行緒的; 力。六個微程式引擎22a-22f與包括記憶體系統16及匯流 排界㈣與28的共享資源運算。記憶體系、統16包括同 步動悲隨機存取記憶體(SDRAM )控制器26a與靜態隨機存 取圮fe體(SRAM )控制益26b。SDRAM記憶體16a與SDRAM控 制器26a通常被使用於處理大量的資料,例如,來自網路 封包的網路費兩的處理。SRAM控制器26b與SRAM記憶體16b 被使用在電腦系統的連線作業實現中用於低潛伏時間,快 速存取工作,例如,存取查詢表格,用於核心處理器2 〇的 記憶體等等。
基於資料的特性5六微程式引擎2_2a-22f存取SDRAM 1 6a或SRAM 1 6b。因此,低潛伏時間5低頻寬資料被儲存 於SRAM 1 6b中以及從SRAM 1 6b中被擷取,反之對於潛伏時 間不重要的高頻寬資料被儲存於SDRAM 1 6a中以及從SDRAM 571239 五、發明說明(8) ~ 1 6a中被擷取。微程弍引擎22a-22f可以執行記憶體參照指 令至SDRAM控制器26a或SRAM控制器26b。 硬體多執行緒的優點可以由SRAM或SDRAM記憶體存取 所解釋。I例而言5來自微程式引擎由執行緒〇所要求的 SRiP存取將導致SRAM控制器26b ,開始存取至SRAM記憶體 1 6b。SRAM控制器26b控制對於SRAM匯流排的仲裁5存取 SRAM 16d ’從SRAM 16b擷取資料,以及送回資料至要求的 微程式引擎22a-22f。在SRAM存取期間,假如微程式引 擎,例如微程式引擎2 2 a,僅具有可以運算的單一執行 緒5 ^微程式引擎將是暫停活動直到資料從SRAM 16b被送 回。藉ώ在母一微程式引擎2 2 a - 2 2 f内部使周硬體内容調 換,硬體内容調換賦予其他内容具有唯一程式計數器以執 行於該相同微程式引擎中。因此,在另一執行緒中,例如 執=緒1可、以工作當第一執行緒,亦即,執行緒〇是等待讀 取貝。料的^回。在執行期間5執行緒1可以存記憶 f1!%'當執行緒1運算於SDRAM單元16&上,以及執行緒β =連==SRAM早元18b上時5新執行緒,倒如執行緒2現在 ΐ於u程式引擎22a中。執行緒2可以運算於某些量 ι:到其需要存取記憶體或者完成一些長潛伏時間運 f如做出至匯流排界面的存取。因此,同時地,處理 二2 I = i有ΐ 一微程式引擎22a所完成或運算於其上的 ί二5 3運算,SRAM運算以&SDRM運算以及具有更多 處理資料明的更多工作。 左h各调換也同步工作的完成。I例而言,兩執行
第12頁 571239 五'發明說明(9) ,,者二以命中相同共享資源5例如SRAM 16b。當個別功能單 兀元成來自徵程式引擎執行緒内容的一去所要求的工作 :,這些個別功能單元的每—個,例如FMS界面28, S RAMf制器268與抑錢控制器26b,報告西標示運算完成 =二軚。f微程式引擎接收旗標時$微程式引擎可以決定 細叙13 那 '—執行、绪。 从-或f於連⑺ΐ體的多執行緒處理器1 2的應罔之一實例是 乂孫=處理^ °卩為網路處理器5運羯硬體的多執行緒 ll/ι ^〔接合類似媒體存取控制器裝置的網路裝置,例如 路I置1 3b。通當5冼盔袖私上 緒處理器^以接人「Λ 處理器,運周硬體的多執行 收/傳出大卿:二可類型的通訊裝置或界面, 訊系㈣可以、接收來二二腦系統連線传業應欠用中的通 α亚> + 1 w叹木自裝置13a與13b的複數網路封包並且 哭]9仃/處理那些封包。具有運用硬體的多執行緒處理 W〇i2斜母一網路封包可以獨立地被處理。 ,ρ、於處理器12使甩的另一例子是用於後稿語言 ^^ = SCl^P〇處理器的如刷引擎或者作為闱於儲存子系 ^甬’ΐ ^;例如容錯式獨立磁碟陣列(R A1D )。另外一 :要為相配引擎。例如在安全企業中5電子交易的ώ σσ 。剎,相配引擎的使用而比對在買方與賣方之間的訂 Λ、、 用不統1 0 ’這些與其他平行類型的工作可以被完 取'。 乂理器12包括連接處理器至第二匯流排18的匯流排界 571239 ξ五、發明說明(ίο) " " - I ^ I回28。在一實施例中,匯流排界面28連接處理器12至被塌 I稱為FBUS 18(先進先由匯流排fifobus) 。FBUS界面28“ |是承擔控制與接合處理器12至FBUS 18的責任。FBUS 18是 六十四位元寬先進先虫匯流排,使甩以接合媒體存取控^ 器(MAC )裝置。 、 \ 處理為12包括弟_界面5例如pci匯流排界面24,其 i連接存在於PCI匯流排14上的其他系統組件至處理器12 ^ j PC ί匯流排界面24提供高速資料路徑2 4&至記憶體16,例如 | SDRAM記憶體16a,經甴該路徑,資料可以從SDRAM 169經 過PC ί匯流排i 4快速地被移動,憑藉直接記憶體存取 (direct memory access - DMA )移轉。運用硬體的多執 |行緒處理器12可以使兩DMA通道所以假如DMA移轉的目檁是 I忙碌的,另一的DMA通道可以取得於pci匯流排上而傳送$ 訊至另一目標以維持高處理器12效能。此外5 PCI匯流為f 界面24支援目標與主要運算。目標運算是在匯流排14上的 從動裝置經過讀取與寫入而存取SDRAM的運算,其服務作 為對於目標運算的從動裝置。在主要運算中,處理器核心 I 20直接地送出資料至PCI界面24或者從PCI界面24直接地接 I收資料。 | 每一功能單元22被連接至一或多個内部匯流排。如以 下所說明二内部匯流排是雙數,三十二位元匯流排(換言 之’一匯流排周於讀取以及另一匯流排用於寫入)。運周 硬體的多執行緒處理器1 2也是被構成以致在處理器1 2中的 |内部匯流排的頻寬總和超過内部匯流排連接至處理器12的
571239 五、發明說明(11) 頻寬。處理器1 9白紅〜士 系統匯流雄it内部核心處理器匯流排32 ’例如先進 控制器26:、:…此匯流排連接處理器核心至記憶體 〔ASR.、)鳇缚一/ 說明於下文中的先進系統匯流排 棑架構流排是所謂㉟先進微控制器匯流 心?0 - # i ^ …I;,ϋΜβΑ是舆strong Arm處理器越 二器12也包括連接微程式引擎單元22 流#34 U^:;s ί、h抑轉譯器30與打1^界面Μ的非公開匯 制器26a、26“匯記憶體匯流排38連接記憶體控 _ 被使用於開機運與28以及記憶體系_包括 參日”裳9 ^ ▼夸的快閃唯讀記憶體1 6C。 標以^ ί被運圖曾5Λ~Λ的微程式引擎仏-如包括檢查旗 程式引擎22^/的任Λ可利兩執行緒之仲裁器。來自微 敌圮悻體執行緒可以存取同步動態隨機存 (麵)二、靜態隨機存取記憶體 w26d或者先進先出匯流排( ===❹制咖娜包括為未=的 等級,就:數佇列。佇列不是維持記憶體參照的 #、,及就疋女排記憶體參照以最佳化記憶體。 言,假如執行緒0沒有對於勒行❸的依輟?頻見。舉例而 66 -p ^ ^ ^ I負序I亂地70取它們對於SRAM罝 ϊ ΓΛ Λ 微程式引擎22a_22f發佈記憶體參照 要々一。己fe體控制|§26a與26b。微程式?丨擎一22〒 夠的記憶體參照運算充滿記憶體子系統26&盘⑽以致二己、 憶體子系統26a與261)變成對於處理器12運曾、的 。
第15頁 571239 I五、發明說明(12) j
j 假如記憶體系統16是被本質獨立的記憶體要求所充 I
!滿5處理器12可以完成記憶體參照排序。記憶體參照排序 | j改進可達到的記憶體頻寬。如下文所說明5記億體參照排 i 丨序減少無效時間或者與SRAM 16b的存取一起發生的磁泡。I
\ I 具有至SRAM 16b的記憶體參照,在讀取與寫入之間切換電 | |流方向於信號線上製造磁泡或無效時間$其壻於等待電流 | I 素 穩定於連接SRAM 16b與SRAM控制器26b的導體上。 | I ! ! 那就是,驅動匯流排上電流的驅動器需要穩定於改變 丨 S Ϊ i狀態之前。因此,一讀取跟著一寫入的重複週期可以降級j |最向頻寬°記憶體參照排序允許處理器12安排對於記憶體丨· I的參照以致一長串的讀取可以跟著一長串的寫入。這可以j j被使兩於最小化在管線中的無效時間而有效地達到接近最丨 大值可利用頻寬。參照排序協助維持平行硬體内容執行 |緒。在SDRAM 16a上,參照排序允許從一儲存所至另一儲 |存所的預先充電的隱匿。具體地,假如記憶體系統^ 被j |安排成為一奇數儲存所與一偶數儲存所,當處理器運箕於| I奇數儲存所上時,記憶體控制蒸可以開始預先镇丨 j存所。,如記憶體參照交替於奇數與偶數儲存所之間,預i 先充電是可能的。藉由排序記憶體參照而交替存取至相反 _ j儲存所,處理器ί 2改進SDRAM頻寬。此外,其他最佳化可 j以薇使羯。盩例而言,可以被合併的運算之合併最佳化被、 |合併於記憶體存取之前5藉由檢查位址記憶體的已開啟分j j頁不被再次開啟之開啟分頁最佳化,連接,如下文所將說j I明’與更新機構可以被利周。 ύ M y〜1 FBUS單元 引擎。 1 | FBUS單元 元寫入。 FBUS單元 SDRAM。 至/從微程式 従SDRAM單 讀取至
571239 I五、發明說明(13) ^- j 在用於標示何時服務是被授權的中斷赛样之外,ρδυς ;界面28支援對於MAC裝置支援的每一埠的儀〜'之夕1。 、 1 %盘接收旗 標。FBUS界面28也包括完成從FBUS進來封力/ 义的標頭處理之
禮制器28a。控制器28a設法得到封包標頭托 ξ 1 〇, ^ ^ ^ 、且完成於SRAM | i 〇b中的微程式可編程序的來源/終點/協定 i . ?τ ‘ . ' 、雜湊查詢 I (Hashed lookup )(使用於位址平滑)。如,^ τ… a l , t ^如雜凑不能 成功地解答5封包標頭被送至處理器核心2 ! w υ用於其他處 ί二。FBUS界面28支援以下内部資料異動: (共享匯流排SRAM ) (經由非公開匯流排) (經由MBUS ) FBUS 1 8是一標準工業匯流排並且包括一資料匯流 排,例如用於位址與讀取/寫入的六十四位元寬與旁波帶 j控制。使羯一系列的輸入與輸出FiF0s 29 a - 29b,FBUS界 j面28提供輸入大量資料的能力。來自FiF〇s 29a —29b,微 j =式引擎22a — 22i從接收FIFO擷取資料或者命令SDRAM控制 器2fa從接收FiF〇移動資料進入FBUS界面28,在接收FIFO I中貧料是來自位於匯流排1 8上的裝置。經由直接記憶體存 j ^ ’資料可以被送出經過記憶體控制器26a至SDRAM記憶體 j ) ua。相似地’經由FBUS界面28,微程式引擎可以從SDRAM I 26&移動資料至界面28,輸出至FBUS 18。
第17頁 571239
五、發明說明(14) I
資料函數是被分配於微程式引擎22之中。對SDRAM I
26a、SRAM 26b與FBUS 28的連線是經甴会令要求。命令要 | 求可以是記憶體要求或者FBUS要求。例如,命令要求可以i 從位於微程式引擎22a中的暫存器移動資料至共享資源, I 例如SDRAM位置、SRAM位置,快閃記憶體或者一些MAC位 | 址。会令被送出至每一功能單元與共享資源。然而,共直 j 資源不需要維持資料的局部缓衝。更確切地說,共享資源| 存取位於试私式引擎22a-22r之中的已分配資料。這賦予 ^ 微程式引擎22a-22f具有局部存取資料的能力而不^仲裁 | 在匯流排上的存取與對於匯流排的風險競爭。具有此特 色’用於等待資料内部至微程式引擎22a-22f的拖延是零 週期。 ^ 上兩倍SDRAM的頻寬。
第18頁 例如ASB匯流排30、SRAM匯流播34與SDRAM匯流排38的j 貧料匯流排是有足夠頻寬而連接例如記憶體控制器26a與| 26b的這些共享資源以致沒有内部的瓶頸。因故5為了避 ! 免瓶頸,處理器1 2具有頻寬需求,其中每一功能單元供& 至少兩倍的内部匯流排最大頻寬。舉例而言,丨6a 可以運轉六十四位元寬度匯流排於八十三;萬赫兹。SRA1| 資料匯流排可以具有分開的讀取與寫入匯流排5例如可以[ 是運轉166百萬赫茲的二十一位元寬度讀取匯流排以及一 | 百六十六百萬赫茲的三十二位元寬度寫入匯流排^亦即5 j 在本質上’六十四位元運轉於一百六十六百萬赫茲是實際 571239
I五、發明說明(15) I j有經甴匯流排32至SDR AM控制器26a、至匯流排界面24與至j | SRAM控制|§26b。然而y為了存敌微輕式引擎22a — 22f以及| |移轉位於任何微程式引擎22a-22f中的暫存器,核心處理j 器20經由ASB轉譯器30跨過匯流排34而存取微鋥式引擎 | 22a-22f。ASB轉譯器30可以實際上存在於FBUS界面28,但| 是邏輯上是有區別的。ASB轉譯器30完成在FBUS微程式弓丨| j擎移轉暫存器位置與核心處理器位址(亦即ASB匯流排)| 丨之間的位址轉譯以便心處理器2 〇可以存取屬於微裎式引 1 | 22a-22i的暫存器。 ’…"擎| | 雖然微程式引擎22a - 22f可以使用暫存器組以交換資 j 料如以下所說明,便條式記憶體27也被提供以允許微鞋广1 引擎22a-22ί寫出資料至記憶體而作為其他微程式引擎^ j 取。便條式記憶體2 7是連接至匯流排3 4。 | I 處理器核心20包括精簡指令集運算(RISC )核心50, |
精簡指令集運算(RISC)核心50實現於五級管線而完成〜| 運算元或兩運算元的單一週期位移於單一週期中,提供乘 j 法支援與三十二位元桶形位移支援。此r ί SC核心5 0是榡準 Strong ArmR的架構,但是為了效能原因而被實現於五級 |管線。處理器核心2 0也包括十六仟位元組指令快取 I 5 ί j ( 1 6-ki iobyte instruction cache) 52 5 八仟位元組資 | !料快取(8-ki i〇byte data cache ) 54與預先擷取資料电 | 緩衝區(prefetch stream buf fer ) 56。核心處理器 2〇 完 | 成算術運算平行於記憶體寫入與指令擷取。核心處理器=! 經由ARM所定義的ASB匯流排與其他功能單元接合。ASB匯 |
571239
五、發明說明(16) 流·排是三十二位元雙向匯流排32 微程式引擎: 參照第3圖,微程式引擎22a-22f的範例,例‘奴 引擎22ί,被顯示。微程式引擎22ί包括控制儲存7〇,在八 實現中,其包括1024個三十二位元的字組之隨機存取^ — 體(RAM ) 。RAM儲存微程式(未顯示)。微程式是可= I· 心處理器20所載入。微程式引擎22 ί也包括控制器邏輯核 ?2。控制器邏輯72包括指令解碼器73與程式計數器 (Program Counter: PC)單元?2a-?2d。四個微輕弄上 器72a-72d是保留於硬體中。微程式引擎22f也包括内$ : 件切換邏輯7 4。内容事件邏輯7 4接收來自每一個共直=, 貝 的訊息(例如 5 SEQ_#—EVENT —RESPONSE ; FBI—EVENT—RESPONSE ; SRAM一EVENT一RESPONSE ; 丨 SDRAM—EVENTJESPONSE ;與ASB —EVENT-RESPONSE ) 5 共古 I資源例如SRAM 26a,SDRAM 26b,或處理器核心2〇,控^ I與狀態暫存器等等。這些訊息提供被要求的功能是否已麵 完成的資訊。基於由執行緒所要求的功能是否已經完成與 用信號通知完成,執行緒需要等待該完成信號,以及假如 執行緒被賦予運算的能力,接著執行緒被放置於可適用執 行緒名冊中(未顯示)。微程式引擎22f可以具有四個可 適羯執打緒的最大值。 除了局部至執行申的執行緒的事件信號之外,微程式 引擎22a-22f利用總體的信號發送狀態。具有信號發送^ 態,執行中的執行緒可以播送信號狀態至所有的微程式引
第20頁 571239 ! . >
I五、發明說明(17) S | :; I 擎22a-22f。接收要求可適周(ReceiveReouest ί \ . — ~ \
Avaiiabie)信號,在微程式引擎22a-22i中的任何與所有 | 執行緒可以分支於這些信號發送狀態上。這些信號發送狀 | -ί j態可以被使羯以決定資源的可適用性或者是否資源是到期i |而可以服務。 |
1 内容事件邏輯74具有對於四個執行緒的仲裁。在一實 I I 3 !施例申:伸裁是循環赛機制。其他技術可以被使羯,包括 丨 ί!
優先權排序或者權重公正排序。微程式引擎22 f也包括執 I f 行盒資料路徑76 (execution box data path) 5執行盒 | !資料路徑76包括算術邏輯單元(arithmetic logic unit 9 "; > ί ^ j ) 76a 與一般用途暫存器組(general-purpose register ί set) 76b。算術邏輯單元76a如同移位函數般地完成算術 | 與邏輯函數。暫存器組76b具有相當大數目的一般羯途暫 | 存器。如第6圖所說明,在此實施例中,在第一儲存所 Bank A中有六十四個一般用途暫存器以及六十四個在第二 |
I儲存所Bank ΒΦ。一般用途暫存器是被開窗以至於它是 I
j I 丨相對地與絕對地可尋址的。 丨 j 微程式引擎22f也包括寫入移轉暫存器堆疊78與讀取 j I移轉暫存器堆疊80。這些暫存器78與8 0也是被開窗以至於 L· 它們是相對地與絕對地可尋址的。寫入移轉暫存器堆疊7 8 j |是其中寫入資料至資源是被找出。相似地,讀取移轉暫存 j S器堆疊80是用於從共享資源傳回資料。與資料到達同時發 i a
I生或隨後,來自例如SRAM控制器26a,SDMM控制器26b或 I ^ ν ί I核心處理器2〇的各自共享資源之信號事件將被提供至事件 !
第21頁 571239 五'發明說明(18) 仲裁器74 ’其將接著改變資料是可谪 行緒。移轉暫存器儲存所78與8〇兩;是:;:被送出的執 ,執行盒(EB0X”6。在—實施例;過 态具有六十四個暫存器以及寫入移轉暫 且古s夕轉暫〗子 暫存器。 芥一具有六十四個
參照㈣,微程式引擎資料路獲維持五 u>-stage ffliCro-pipeliile ) 82。此答…I 的查詢82a,暫存器列位址的形成8礼,從g存^ ::: 『賣取82c,ALU移位或比較運算㈣s與結果至暫存哭的-寫=82e。藉由提供寫回資料旁路進入ALU/移位單元了以 及藉由假设暫存器是實現為暫存器列(而非RAM ),微程 =引擎22f可以完成同時發生的暫存器列讀取與寫入,其 元全地隱藏寫入運算。 SDRAM#界胃面26a提供一信號回到要求微程式引擎於讀取 上,其軚不疋否同位錯誤發生於讀取要求上。微程式引擎 微程式碼是作為當微程式引擎使用任何傳回資料時檢查 = RAM 16a鑕取同位旗標。根據檢查旗標5假如它是被設 疋5、於其上的分又的動作清除它。同位旗標只有當sdram i、、6a被賦予檢查的能力5以及sdram !6a是同位保護時才被 廷,。微程式引擎22與pCi單元14是報告同位錯誤的僅有 ,不者。因此’假如處理器核心2 〇或?丨F〇 1 8需要同位保 遵’微程式引擎協助該要求。微程式引擎22a一22f支援條 ,分支。最差,,的條件分支潛伏時間(不包括跳躍)發 二於當分又決疋疋由前一微程式控制指令所指定的條件程 571239 五、發明說明(19) 式碼的結果。潛伏時間顯示於以下第1表中: 丨徼键存查詢 | ί 1 η[ ί 1 rb丨 1 ί π2丨 1 ί ;Μ i 1 bl 丨 ! M \ ! b3 ! b4 ! 暫存器位姑產生 1 I ni cb XX M hi 1 b2 I | b3 暫存器縱列査詢 nl cb XX XX bl b2 |ALU/位移器/cc 1 1 ! I ί I ί nl ! cb 1 XX ! xx bi | 丨! 丨寫西 ί I I m2 i ί nl ! cb j XX I XX ;
!___j 1 i ^ ( j i 1 I I 其中nx是預先分支微程式字組(nl設定cc5 s ) \φ I cb是條件分支 丨
I I bx是後分支微程式字組 I XX是被終止的微程式字組 !
? I j 如第1表所示5直到週期4時η 1的條件碼被設定5以及 !
I
分支決定可以被做岀(在此狀況中導致分支路徑被查詢於 | 週期5中)。微程式引擎帶來2週期分支潛伏時間損失,因 I 為其必須終止在管道中的運算n2與n3 (該2微程式字組直 | 接位於分支後),在分支路徑開始以運算bl裝滿管道之 j 丨前。假如分支不發生,沒有微程式字組被終止以及執行正 |響 !常地繼續。微程式引擎具有幾個機制以減少或消除實際的 I I 【. j分支潛伏時間。 j j 微程式引擎支援被延遲的分支。延遲分支是當微程式i
|引擎允許在分支之後的1或2微程式字組發生於分支生效之 I
第23頁 571239 · =發明說~~~ --- ^ (印分支的效應在時間上是被延遲地)。因此,假如有 i神=作可以被發現而填充在分支微程式字組之後被浪費的 I =丄於是分支潛伏時間可以被隱藏。1週期延遲分支顯 r,此處n2被允岭執行於“之後,但是於“之前: 微错存査詢 I ni 〇 ά cb 3 ϋΓ 4 U 5 bi 6 b2 7 b3 S b4 暫存器拉址產生 nl cb n2 XX bi b2 b3 暫存縱列查詢 1 ni cb n2 XX bi b2 ALU/佐移器/cc 1 ·~-*i ! ! nl cb n2 ! i XX bi 寫回 i nl l cb 1 i n2 -i XX | 、2週期延遲分支顯示於下,此處n2與“兩者被允許完 成在至Μ的分支之珂。要注意的是2週期分支延遲僅被允 許在當條件碼被指定於在分支之前的微程式字組。 1 2 3 4 5 6 7 8 9 微儲存査詢 nl cb n2 n3 bi b2 b3 b4 b5 暫存器拉址產生 ni cb n2 n3 bl b2 b3 b4 暫存器縱列査詢 nl cb n2 n3 bi b2 b3 ALU/位移器/cc nl cb n2 n3 ϊ bi b2 寫13 ϊ i ^ 丨 i ί Ϊ | ! n[ | ! ! | cb I [ ί i n2 !_ n3 bl j i 微程式引擎也支援條件碼估算。假如做出分支決定的 571239 五、發明說明(21) 條件碼是在分支之前設定2或者更多微程式字組,然後1週 期的分支潛伏時間可以被消除,因為分支決定可以在早於 1週期之前被做出。
ί | 2 I 3 | 4 ! 5 ! ί s ί i ! M 7 t i 8 微儲存査詢 ni n2 1 cb | Μ I bl b2 1 b3 b4 暫存器姐妯1生 ηί I n2 ! cb 1 XX i ί i bl b2 b3 暫存器縱列査詢 ni n2 cb XX bi b2 ALU/位移器/cc ni n2 cb XX bi 寫Η \ \ I | ni ί ί n2 | cb M 在此例子申,η 1設定條件碼以及n2不設定條件碼。因 而,分支決定可以於週期4做出(而不是週期5 ),而消除 1週期的分支潛伏時間。在以下的例子中5 1週期分支延遲 與條件碼的提前設定被相互結合而完全地隱藏分支潛伏時 間: 條件碼(cc’ s )被設定於1週期延遲分支之前的2個週 期
第25頁 571239
I五、發明說明(22) ! 1 ! 2 1 3 ! Μ 5 6 ! 7 ! 8 ! 微櫧存查詢 ! ηί : I cb n2 1 I n3 i bl b2 i ! b3 ! i b4 暫存器&址產生 ni. n2 I cb ί n3 bl I 1 1 b2 b3 暫存器縱列査詢 nl n2 cb n3 ! | bi b2 ALU/位移器/cc~ 1 nl n2 cb ί n3 bi 耷Η 1 1 ! j ! ni n2 I cb j ! n3 I 在條件瑪不能被提前設定的狀況T (它們被設定於分
I ?支之前的微程式字組甲)'微程式弓!聲叉援分支猜測面嘗 |試減少1週期的暴露的保留分支潛伏時間。藉由"猜測”分 I支路徑或者循序路徑,在明確地知道哪一路徑被執行之 |前,微程式定序器預先擷取被猜測路徑的1週期。假如猜 |濶正確,1週期的分支潛伏時間被消除如以下所示: ! ! 猜測路徑發生/分支發生
I 2 3 4 5 0 7 8 微儲存査詢 ni cb nl bi b2 b3 b4 b5 暫存器位址產生 ; 1 : n[ cb XX bi b2 b3 b4 暫存器锻列査詢! | ! j nl cb | i XX 1 bl b2 b3 ALU/拉移器/cc ί ί ! ni cb XX ί bl i i b2 j !_i \%m ! i i ! i ! !ni 1 cb丨 i ! 1 Μ | 1 bl ! ! I 假如微程式碼猜測分支不正確地發生,微程式引擎依 然只有浪費i週期
第26頁 571239 五、發明說明(23) 猜測路徑發生/分支不發生
i 丨 < 丨 1 i丨2 _!_L 3 I 4 ; 5 I ί 6 ! 7 8 微儲存査詢 ! η[ ! cb 1 ni χχ ϊ n2 ! n3 j n4 I ! n5 i 暫存器位址1生 ηί cb ni IX ri2 i n3 n4 暫存器縱列査詢 ni cb ni XX n2 n3 AUJ/位移器/cc ni cb ni XX n2 寫运 I ί 1 ni cb ni XX 無論如何,當微程式碼猜測一個分支是不發生時,潛 伏時間損失是不同地分佈: 對於猜測分支不發生/分支是不發生5如下所設定地 不浪費週期。 i ! 2 3 41 51 61 7 g 微儲存査詢 ni cb nl π2 n3 n4 n5 n6 暫存器拉址產生 nl cb ni n2 n3 n4 n5 暫存器縱列査詢 nl cb ni n2 n3 n4 AUJ/拉移器/cc 1 ni i cb ni n2 | n3 寫Μ 1 ! 1 1 ni I 5 ή i 1 i ί ί ! ! cb | ni n2 無論如何,對於猜測分支不發生/分支是發生時有2浪 費的週期。
第27頁 571239 五'發明說明(24)
徽儲存査1旬; !n[ ! cb | ni ;Xa | bi i b2 I :b3 b4 1 暫存器拉址產生丨 1 ni ; cb ! 1 ! M | , 1 xi | 1 bi i j ! b2 I b3 i 暫存縱列査詢| 1 ni ! i ; 1 i 1 丨cb丨 i ! ! xx XX ! 丨 : i bi b2 1 AUJ/位移器/cc : ;ni cb xx | XX bi 寫回 1 nl cb | ! M i 微程式引擎可以結合分支猜測與1週期分支延遲而進 | | 一步地改善結果。對於猜測分支發生與1週期延遲分支/分 |支是發生: j 1 2 3 1 4 5 6 7 8 微儲存査詢 nl cb n2 bi b2 b3 b4 b5 暫存器拉址產生 1 nl cb ! n2 bi b2 | b3 b4 暫存器縱列査詢 1 ! ni cb n2 bl b2 b3 ALUAii 移器/cc [ I nl cb n2 | bl b2 窝回 ! ! 1 ! nl cb n2 bl
! 在以上狀況中,2週期的潛伏時間是藉由n2的執行以 丨及藉甴正碹地猜測分支方向而被隱藏。假如微程式碼猜測 |不正確,如以下所示,對於猜測分支發生1週期延遲分支/ I分支不發生週期的潛伏時間維持浪費。 5
第28頁 571239 π I五、發明說明(25) ! I 2 q i /1 。| -a ί tr- I b 6 j 7 8 ! 9 微儲存査詢 ni cb n2 XX n3 n4 | n5 n5 n7 暫存器位址產生 ni cb n2 XX n3 n4 | n5 n6 暫存i縱列査詢 1 1 I ! Ri i cb 1 :n2 - i Μ ! ! i n3 n4 I ! n5 ALU/妞移器/cc 1 ί 1 1 ni ! ! 1 丨飞 ί f CD S ! n2 i ί ; ! M n3 | ! n4 ί ; l ^ 寫回 1 !; i I S ni j I cb n2 M | \ n3
假如微程式碼正確地猜測分支不發生,然後管線循序 地流通於正常未受到擾亂的狀況。假如微程式碼不正確地 i猜測分支不發生,微程式引擎再次浪費1週期的無產出執 I行,如以下所示5對於猜測分支不發生/分支發生
! 2 3 4 5 6 ; 1 7 8 9 微櫧存査詢 ni cb n2 XX bl b2 b3 b4 b5 暫存器也址產生 nl cb n2 XX bl b2 b3 b4 暫存器縱列査詢 ni cb n2 XX j bl b2 b3 ALU/姐移器/cc 1 nl cb n2 | XX bl b2 窝® E ! ni cb I | n2 XX I bL
其中η X是預先分支微程式字組(η 1設定c c ’ s ) cb是條件分支 bx是後分支微程式字組 XX是被終止的微程式字組
第29頁 571239 I五、發明說明(26)
I I 在跳躍指令的狀況中5招致3額外週期的潛伏時間5 |因為分支位址是未知的直到跳躍位於ALU級中的週期的結 i尾:
i丨2丨3丨4丨δ Γ 3丨7 ..1.…_ !…—.1 — 8 ! 9 u—」 i微儲存査詢 i πί 1 ip ! Μ ί 11 1 Μ ΜΙ ! Ϊ2 j3 |J4 ! 暫存器·位妯1生 ϊ ; ηί 1 jg π XX M | ji ]2 J3 暫存器縱列査詢 nl Μ XX xx ! xx 1 Ji J2 ALU/位移器/cc !_-_! 1 I ni丨 ! ; Ϊ j 11 i XX ! Π n j S & ί ί ^ 8 ί Η 丨窠函 ! : ί ί ! nl. ! id Γ XI I XI Γ_Μ 1_丨丨丨 丨丨丨咕丨 i i
, I 微程式引擎支援各種標準類型的ALU指令,包括完成 ALU運算於一或兩運算元並且放置結果至終點暫存器的邏 輯與算術運算。根據運算的結果,ALU更新所有ALU條件 碼。在内容調換期間,條件碼的數值被遺失。 j 參照第5A圖,顯示内容分支指令BR = CTX與BR! =CTX。 |基於目前執行内容是否為特定内容數字5内容分支指令導 I致處理器,例如微程式引擎2 2 ί,分支至位於特定標籤上
I
!的指令。如第5 Α圖所示,内容分支指令是當分支遮罩攔位 I ' |等於’ 8M或π 9π所決定。内容分支指令可以具有下列格式: I br二ctx「ctx, iabei#],optional—token I — ( ^ I b r!= c t x L c t x, label#」,optionai_token ί 欄位label#是相對應至一指令位址的符號標籤。襴位 I CTX是内容數字。在一實施例中5有效的ctx數值是0、1、 Η ·
第30頁 571239 I五、發明說明(27) | 2或者3。内容分支指令可以具有一選項_記號 I , I loptionaji — toxen) 延遲一(deier one)'的選項—記 j號將導致微程式引擎在完成分支運算之前執行尾隨此指令 j的一個指令。 ; 假如内容是特定數玄,指令br = ctx分支以及假如内容 j不是特定數字5指令br!=ctx分支。 | 參照5B圖,内容調換指令是分支的特殊形式,其導致
5 一個不同的内容(與相關程式計數器)被選擇。内容切換 I或調換同樣地引入一些分支潛伏時間。考慮以下的内容切 丨換: | 丨 ί 2 | 3 ! 4 ! _____________L 」____ 5 I δ | 7 g 9 ! i 微儲存査詢 oi ca br ww nl n2 n3 1 1 n4 n5 n6 暫存器位址產生 oi ca XX nl n2 fnT n4 n5 暫存器縱列査詢 ol ca XX nl n2 n3 n4 ALU/位移器/cc ol ca XX ni 1 n2 n3 II ! ! ! 1 i 1 oi ! j ca 1 i ! ! xx nl n2 b j 其中0X是舊内容流向 br是舊内容中的分支微程式字組 ca是内容重新仲裁(導致内容切換) XX是被終止的微程式字組 ί 在内容切換中5 ” brn 微程式字組被終止以避免控制
j與時序複雜度5其可以藉由儲存正確舊内容程式計數器所
第31頁 571239 p、發明說明(28) j導致。 丨 運作於設定在分支之前的微程式字組的ALU條件瑪的 j條件分支可以選擇〇、1或2週期分支延遲模式。運作於設 j足在條件分支之前的2或更多微程式字組的條件碼可以還 擇0或1週期分支延遲模式。所有其他分支(包括内容重新 j仲裁)可以選擇〇或1週期分支延遲模式。電腦内部結構可 丨以被設計為製作内容#裁微程式字組於先前分支的分支延 1 一
遲窗口之中,跳躍或内容件裁徵程式字組,合法選項。亦 即5在一些實施例中5因為如前文所提及,内容調換不被 允許發生於分支過渡時期,其可能過度地複雜化舊内容程 式計數器的儲存。電腦内部結構也可以被設計為製作分支 於先前分支的分支延遲窗口,跳躍或内容仲裁微程式字組 |是不合法以避免複雜化以及不可預满的分支行為。 I 内容調換指令CTX_ARB調換目前執行於特定微程式引 I擎中的内容移ώ記憶體而使得另一内容執行於該微程式引 擎中。當特定信號被啟動時,内容調換指令CTX一ARB也喚β 醒被調換移出内容。對於内容調換指令的格式是: ctx_arb[參數(parameter )],optional —token I 參數欄位可以具有幾個數值中的一者。假如參數被 , j具體指定為” sram Swap (靜態隨機存取記憶體調換)” s |内容調換指令將調換出目前内容並且喚醒於當執行緒的 j SRAM信號被接收到時。假如參數被具體指定為” sdram、 | Swap (同步動態隨機存取記憶體調換)”,内容調換指令 !將調換出目前内容並且喚醒於當執行緒的SDRAM信號被^ 571239 五、發明說明(29) | |收到時。參數也可以被具體指定為"FBI”以及調換出目前 | !内容並且噢醒於當執行緒的FBI信號被接收到時。FBI信號 丨 I標示一個FBI CSR、便條式記憶體、1TIF0或RFIFO的運算 | I已經完成。 i ϊ « I 參數也可以被具體指定為 !
| seq_numl_change/seq_num2_changeH ,其調換出目前内 | |容並且喚醒於當序列數字的數值改變時。參數也可以被具| 丨體指定為” i nter_thread” 5其調換出目前内容並且唤醒於 S i當執行緒的執行緒之間信號被接收到時,或者 I ” voluntaryπ,假如另一執行緒是準備好執行時將調換出 | 丨目前内容,否則不調換。假如執行緒被調換,自動地重新 | 啟動執行於一些隨後的内容仲裁點。參數可以是 j ” auto_push”,其調換出目前内容並且喚醒於當SRAM移轉 | |讀取暫存器資料已經自動地甴FBus界面被推進時,或者是 ! ί 一” start_receive”5其調換出目前内容並且喚醒於當對 ! |於此執行緒之接收FIFO中的新封包資料是可利用於處理 1 j時。 j 參數也可以是n ki 1 Γ,其防止目前内容或執行緒再次 I執行直到對於執行緒的適當重新啟動位元被設定於 丨 | CTX_ENABLES暫存器中,其調換出目前内容並且喚 !
1 I ί醒於當PC I單元送出DMA移轉已經完成的信號時。 ί
I I j 内容調換指令CTX_ARB可以具有以下選項記號j延遲 j ! 一週期,其具體指定在内容被調換之前$ —指合將被執行丨 丨於此參照之後.。
第33頁 571239 五、發明說明(30) 每一個微輕式 緒執行。對此的一 佈記憶體參照之後 待直到該夢照完成 行5此行為是關鍵 不同地說明,假如 引擎將要閒置於顯 此降低整體計算輪 隱藏記憶體潛伏時 獨立工作。兩種同 SRAM 或SDRAM 參照; 時間點。 一種機制是立 )。在立即同步中 該内容。當相對應 旦傳送信號$當内 内容將被調換回復 動之觀點,在發饰 直到參照完成 第二種機制是 )。在延遲同步中 執行一些其他獨立 進一步的工作被完 佈的參照完成可能
第34頁 引擎22a-22f支援四個内容的多賣 個原因是允許一執行緒於另一u也☆ 開始執行以及在作更多工作二—Ί ^ iF <丽必猜笙 。為了維持微程式引擎的右从 a、 〜欢能歸夢热 性的,因為記憶體潛伏眭問3 g β 』疋顯荖的 只有蕈一執行緒直形式被. 〜^ 、及之鼓5微超夫 著的週期數目而等待參照被年π…八 出量。多重執行緒執行允許;;= 間’藉由跨過幾個執行緒而完成有用 步機制被提供以致於允許執行緒發饰 以及接著當該參照完成時隨後地Χ同步 Ρ 同步(immediate Synchronization ’微程式引擎發佈參照並且立即調換出 ,照被完成時,内容將被傳送信號。、一 容調換事件發生以及是其轉折執行時, 周於執行。因此5從簟一内容的指令流 k體參照之後的微程式字組不被執行 ^遲同步(Delayed Synchronization ’微程式引擎發佈參照,以及接著繼續 於參照的有用工作。一些時間之後,在 成之前,同步執行緒的執行流動至被發 Μ成是必須的。在此時刻,内容調換指 571239 五、發明說明(31) 令被執行5其為一同+ 後當參照已經完成.二將調換出目前執行緒並且在稍 成而繼續執行目^勃二^㉟換回來5威者因為參照已經完 而實現延遲同步》 ^ 使用兩種不同發送彳s號的方案 假如記憶爆表p 3, !· 觸發執行緒的信?虎# f關連於一個移轉暫存蒸,來自被 被設定或清除瞎Γ舉=二於當相對應移轉暫存器有效位元 的-個SRAM讀取將;發送料進入移轉暫存器A 定時。假如記憶體參照广*對於A的有效位元被設 F IF0,代替移轉暫户哭妙1連於移轉FIF0或者接收 SDRAM控制器26a中Γ :二=後ί號被產生於當參照完成於 於微程式引蝥棑表哭ά ^内容只有一個信號狀態被保留 的信號存在’ “匕5此方案中只有-個未完成 •V Γ二:兩遐逋甩運异範例可以闬於設計微控制器微程 U:以ϊ整體微控制器計算輪出以及整體記憶體頻 乂 r二於早一執行緒執行潛伏時間的代價。當系統具 有夕個丨擎而且每—微程式引擎執行多個執行緒於 不相關的育枓封包之上,此範例將是有意義的。 1· 第一 <固乾例是微程式引擎執行潛伏時間應該被最佳化 於整體微控制II計算輸出以及整體記憶體頻寬的代價。此 fe例可以包括具有即時限制的執行緒的執行,亦即,即時 限制表示在—些特定時間内一些工作必須絕對地被完成。 此類限制要求罝〆執行绪執行的最佳化被給早超過其他諸 如記憶體頻寬或整體計算輪出的優先權。即時執行緒將應 571239 五、發明說明(32) ⑺此執订一锢執行緒的覃一斧 不被掌握,因A日挪s ^ π 丨政—式引ν。夕個執行緒將 行緒-多個執杆 & q l六速池執仃豈一即時執 ^ ^考的執仃將?且礙此能力。 兩種範例的編碼式可 體參照與内容切換。在即二:::,,、'員考地差異於發佈記憶 發佈許多記憶嶒炎职、.可狀况中,目標是盡可能快速地 憶體潛伏時間。.者;二取小化ί這些參照所帶來的記 將是完成微程士 :丨照已經盡可能地提早發佈,目標 相對應至及時“:二:f完風平行於參照的許多計算》 〜土丨匕的3丨异流程如下: 1發怖記憶體參照1 2 )發佈記憶體參照2 3 )發傕記憶體參照3 體參照1 '2與3的工作 6 =至圮憶體參照1的完成 照3的工取决於'己憶體參照1並且獨立於記憶體參 :)) =前:工作發佈任何新的記憶體參照 J = 了至圮憶體參照2的完成 參照2與3的工^决於圮恍體筝照1與2 I且獨立於記憶體 1 〇)根據先前的工作發你/壬打 m π s j 1<知筛任何新的記憶體參照 1)同步至圮憶體參照3的完成 丄2)完成取決於所有三個印悟 μ、, #丘二 旁一 u 3己f思體苓照完成的工作
第36頁 1〇彡裉祕先W的二作發镩任侍新的記憶體參照 571239 五、發明說明(33) 相對地,對於u與頻寬的最纟化^^ 法。借同對於徵程式引整钟曾輅十 * ' q的万 社外 击丄丨么窃、t人 '——,π , 1¾ 4正Μ記憶體頻寅的畢 杈少今望-=給予罝一執行緒執行潛伏時間。為* 了拷 到此:目標將是%距地隔開記憶體,、、、-: 二j的焱私a π拏。延將提俣對SRM與卯 憶體參照的一致流動以 ,一 w為知沁 & " 騎取大化1執行緒是可利用沾可 月b I而當另一執行緒被調換出 、 礙。 皮凋,吳出^ ^臧圯憶體潛伏時間的阻 記憶體縱列位娃類型: 用暫J:!第6圖L兩種存在的暫存器位址分隔是本地可使 <為,以及1被所有微程式引擎使罔的總 ”。-般用途暫存器(GPRs :::暫 (A儲存所與請存所),其位一宝 ^儲存所 地相互插A 1Α Λ钟六 …、、一接 子組為根據 所暫ϋίΓμ存所暫存器具有isb=〇,以及β儲存 _人而。1 母—儲存所有能力完成同時讀取盥 寫入兩不同字組於其儲存_部。 ^取與 :過儲存所A與B,暫存器組76b也被組織成為 :二四個窗口勝76b3,對於每一執行緒是相對地3 哭、、因此5執仃緒0將找尋其暫存器〇於77a之上(塹 )τ夯去^ 5執行緒1將找尋其暫存器0於77b之上(暫存器L 執行緒2將找尋其暫存器0於77c之上(暫存器64):一 定址1、將找尋其暫存器0於77d之上(暫存器96 )。相繫 i鱼ΐΐ支援以致於多锢執行緒可以使用完全相同控制儲 子,、位置但是存取暫存器的不同窗口以及完成不.同功能省 571239 I ------—- i五、發明說明(34) j只有使甩雙埠RAMS於微程式引擎22ί中,暫存器窗口定址 |與儲存所定址的使用提供必需的讀取頻寬。 j 這些開窗暫存器不必從内容開關至內容開關儲存資
|料,以致於内容調換縱列或堆疊的正常推進與推出被消 i除。此處的内容切換具有對於從一內容改變至另一内容的 | 〇週期耗兩時間。相對暫存器定垃劃分暫存器儲存所成為 |跨過一般用途暫存器的位址寬度的窗口。相對定址允許存 |取任何相關於窗口起始點的窗口。絕對定址也被支援於此 [架構中,其由藉由提供暫存器的精確位垃,任轲一者的絕 i對暫存器或許可以被任何執行緒所存取。 ! 取決於微程式字組的格式,一般用途暫存器78的定处 i可以發生於兩種模式。兩種模式是絕對輿相對。在絕對模 式中,暫存器位址的定址是被直接地具體指定於7位元來 源欄位中(a 6 - a 0或b 6 - b 0 ): | 7 ί 6 5 4 | 3 I ! 2 I i ; I 0 A GPR: a6 0 ah a4 [ a3 1 a2 ! al 」— aO a5=0 i β GPR: b6 i b5 b4 b3 b2 | bi b0l _ SRAM/ASB: a6 a5 a4 0 a3 a2 al aO a6=is as% a4=0 SDRAM: a6 a5 a4 0 a3 a2 aL aO a6=[> ab=Q, a4=i
1 暫存器位;a:被直接地具體指定於8位元目的欄位中 | (d7-d0 ): ί
第38頁 571239 I五、發明說明(35) 「丨7 1 6 | 5 4 3 | Ξ i m ! i i A GPR: ; ! d7 d6 d5 d4 d3 d2 di dO ! d7=0, d6=0 I 一 B GPR: d7 d6 d5 d4 d3 d2 di dO ! d7=0, d6=l i ^ S啤: ^ i d7 | d6 d5 d4 m d2 i di dO d7=i5 d6=0, d5=〇 麵:!d7 d6 d十4 d3 i i d2!d[ dO I dT=I5 d0=〇, d5=i j ! i ! | 假如<a6:a5> = l,1,<b6:b5> = l,1,<d7:d6> = l,1,接
著較低位元被詮釋為内容相關位址欄位(說明於下文中 )。當非相關A或B來源位址被具體指定於A,B的絕對欄位 中,只有SRAM/ASB與SDRAM位址空間的較低一半可以被定 I址。實際上;讀取絕對SRAM/SDRAM裝置具有有效位址空 |間;無論如何,因為此限制不應羯至目的攔位,寫入 SRAM/SDRAM依然使用完整位址空間。 在相對模式中5定址一個特定位址是在内容空間内韻 由5位元來源攔位(a4-aO與b4-bO)所定義的偏移量:
7 | 6 5 | 4 1 _1_ \ 3 2 1 ο Π j A GPR: a4 0 conte xt a3 a2 ai aO a4=0 B GPR: b4 1 conte At b3 b2 bi bO b4=0 SRAM/ASB: ab4 0 ab3 conte At b2 bl abO ab4=l, ab3=0 SDRAM: ab4 0 ab3 conte Kt b2 bi : abO ab4=l, ab3=i
第39頁 571239 五、發明說明(36) 或者如同甴6位元目的欄位中(d5-d0)所定義 \ ·? -- n D 5 4 3 2 上 〇 A GPR: I; d5 !__! d4 conte xt i d3 d2 ί l di I dO 1 ! d5=0, d4=0 |·Β 搬! d5 μ_J d4 conte xt ! ; 1 d3 ! d2 ! di ! dO i ! ! i d5=0, d4=0 j SRAM/ASB: ! ; 1 j d5 d4 | d3 i Ti^UiUo 1 ! ! d5=i, d4=0, d3=0 ' j SDRAM: d5 d4 d3 conte At I ; d2 dl dO d5=i„ d4=0j d3=l | ‘· 1 |哭 假如<d5:d4> = l5i,則目的位址不定述於一有效暫存 |〜 因此’沒有.目的運算元被寫西。 ! 以下暫存器是可以從微程式引擎與記憶體控制器而被 |全域地存取:
I 雜湊單元暫存器(hash unit registers) I 便條紙與共同暫存器(seratchpad and common Ϊ registers ) I 接收F IFO 與接收狀態F I FO ( re ce i ve F IFO and I receive status FIFO ) 傳輪FIFO (transmit FIFO) 傳輸控制FIFO (transmit control FIFO)
第40頁 571239 五、發明說明(37) — ----一^ 十、微往八^擎不是中斷驅動。每一微程弍流程執行直到 完f以及接著裉據由處理器!2由的其他裝置所傳送信號的 狀態5新流程被選擇。 ^ 參照第7圖5 SDRAM記憶體控制器26a包括記憶體參照 仔列9 0 ’其中記憶體參照要求從不同的微程式引擎· 22a:22 t到達。記憶體控制器26a包括仲裁器91,其選擇微 寿t ^二挲梦货要求的下一個至任何的功能單元。假如微輕 擎的一者正提供參照要求,參照要求將經過位址與命 令L歹W 〇、其後於記憶體控制器2 6 a之中。假如參照要求 具有被最佳化記憶體位元(〇ptimized mem bu ) „ 的=元。又疋,接踵而來的參照要求將被排序進入偶數儲存 或者奇數儲存所符列9 Qb。假如記憶體參照要求 +具有記憶H最佳化位元設定,預設麵是進人次序符列 :DRAM控制器26是在FBUS界面28、核心處理器20與 々士 _面^^之間被分享的資源。SDRAM控制器26也維持用以 ^ m修改—寫入極微運作的狀態機構。SDRAM控制器 26也元成對於來ISDRAM資料的要求的位元組校準。 次序符列9 0 c維持來自料4 3丨敬A , & 抵门/ 订木目破私式引擎的參照要求的次 序。佗同一糸列的奋數血俱勃& _姑彳I π 口 X & 、狄儲存所芩照,其被要求是信 力U .皮傳回$取決於斟於各叙 戽列的/p_ / 1於力數與偶數儲存所的記憶體參照 了歹4的元成c假奶微程式引警” 卉I杜六a b 7田批 八75筆22Γ將記憶體參照排序進入 可數儲存所與偶數儲存所夂 數儲;X~ Α 參及儲存所的一者,例如偶 放鍺存所被耗盡圮憶體參照於奇數 彳曰e f 被簦稱於最後的偶數參昭, =斤之刖,仁疋“號 …、體控制器26a將可理解地 571239 五、發明說明(38) 一 傳送§己憶體要求已經被完成的信號回到微程式引擎,"、 奇數儲存所參照還尚未被支#。此事件將導致連貫姓^ ^ 題。籍甴提锻次序佇列9 〇 c允許微程式引擎具有多俩=〜 體參照突出且只有其最後記憶體參照必須傳送完成的 而避免該狀況。 镜 SDRAM控制器26a也包括高度優先權仵列9〇d。在言 優先權佇列90d中,來自為成是引擎的一者之進來記=度 參照直接地進到高度優先權佇列以及被運曾於士意μ體 中的其他記憶體參照之較高優先權。所有:這 數儲存所佇列90a '奇數儲存所佇列9〇b、次序符列9〇 傳 高度優先權佇列90d,被實現於被本地切割成為四烟=輿 窗口的單一RAM結構,每一窗口具有其所擁有頭與尾於% 標。因為裝填與提出運算是只有單一輸入與單一輪出 們可以被放置進入相同RAM結構而增加rAM結構的^户’它 SDRAM控制器26a也包括核心匯流排界面邏輯,^ 匯流排92。ASB匯流排界面邏輯92接合核心處理器2〇"昼1 SDRAM控制器26a 4SB匯流排是包括32位元資料:徑^28 位元位址路徑的匯流排。經由MEM ASB資料裝置98,例如 緩衝器,資料被存取至與從記憶體。MEM ASB資料裝置98 是兩於寫入資料的佇列。假如有進入資料從核心處理器2 〇 經会AS3界:資料可以被健存進入mem ASB裝詈98以只 隨後仗Μ E M A S B裒置9 8經過S D R A Μ界面11 〇被移除至g d mi記 fe體1 6 a。雖然未被顯示$相同符列結構w以被提供用於 讀取。SDRAM控制器26a也包括從微程式引擎與pC I匯流排
第42頁 571239 五 '發明說明(39) 搬走資料的引擎97。 其他佇列包括PCI位址佇列94與維持一些要 :/寫入佇列96。記憶體要求經由多工器1〇6被送::賣 _副仲裁器91所控制,SD_你斗 1負測母一各列的充實與要求的狀態以及极據儲岑於; 先權服務控制暫存器丨00中的环超 < :、寒4 f子於優 權。 · 柱式化數值而決定優先 触办一旦對多Ϊ器106的控制選擇記憶體參照要求,記愔 -多要求被达至解碼器丨〇 8而被解碼以及位址被產生二 已解碼位谈被送至SDRAM界面n〇而於其中被分解成為㈣ ^位址選通而存取SDRAM Ua以及寫入或讀取資料通過資、 料線路16a的媒介送&資料至匯流排112。在一種履行 中5匯流排1 i 2是實際上兩個分開的匯流排而取代單一匯 流排。分開的匯流排將包括連接至分散微程式引擎 22a-22f的讀取匯流排以及連接至分散微程式引擎22a-22f 的寫入匯流排。 SDRAM控制器2 6a的特徵是當記憶體參照被儲存於佇列 90時,除了最佳化MEM位元可以被設定之外,有一個’’連鎖 位元(chaining bit ) ”。當連鎖位元設定時,允許對於 連續s己憶體参照的特別處理。如先前所提到’仲裁器1 2控 制哪一個微程弍引擎將被選擇而提供記憶體參照要求通過 命令匯流排至侍列90 (寞7圖、。德减位元的言明將控制 仲裁器而具有件裁器選擇先前要求該藤流排的功能單元5 因為連鎖位元的設定標示微程式引擎發佈連鎖要求。
第43頁 571239 五'發明貌明(40) j 當連鎖位元被設定日^ 5連績體參照將被接收於符| 列90中。那些連續參照將代表性地被儲存於次序佇列g〇c S 中5因為連續記憶體參照是來自單一執行緒的多個記憶體j 參照。為了提供同步,記憶體控制器2 6 a只有需要發送信 | 號於連鎖記憶體參照的最後部分被完成時。然而,在最佳j 化記憶體連鎖中(例如,當最佳化MEM位元與連鎖位元被 | 设定得)&記憶體參照可以進入不同儲存所以及可能地完丨 成於發佈完成信號的一個儲存所而在其他儲存所完全地被j 提出之前,因此破壞連貫性。因此5連鎖位元被控制器 11 〇使用而維持來自目前佇列的記憶體彖昭。 參照第7A圖,其顯示在SDRAM控制器26a中的仲裁政策 的λπι叙描述。传裁政策贊同連鎖微程式弓丨擎却情㉒來日夸。 程序11 5由對於連鎖微程式引擎記憶體參照要求的檢查 115a而開始。程序115停留於連鎖要求直到連鎖位元被清 除。程序依序檢查ASB匯流排要求115b、p 心、高度優先權…細d、相反儲二二' 次序符列要求im ’以及相同儲存所要求mg。連鎖要求 被服務完成,而服務1 1 iDb-l 1 5d被服務於循 。只有
當服務11 5a -11 5d被完全地托盡眭, 〜y Z -115g。當先前SDRAM記憶體要走且有處理服務1156 # 鎖微程式引擎記憶體參照要求::=位元設定日;是1 除。由於當ASB是在等待狀態時门/ 丁嚴歹V直到連鎖位-被清
Strong --核心,ASB是比PC/右贫H的f能損失加於 Λ有較同優先權。由於PCI的 571239 I五、發明說明(41) I潛伏時間需求3 pc I是比微程式引擎有較高優先權。然雨 I對於其他匯流件裁優先權可以是不同的。 \ 如第7 B圖申所顯示的是記憶體不具有有效的記憶體最 |佳化與具有有效的記憶體最佳化的典型時序。如所見,有 |效記憶體最佳化的使周最大化匯流排的使用以及因此隱藏 !固有潛伏時間於實際SDRAM裝置内部。在此例子中,非最 I佳化存取可以佔用14週期,然而最佳化存取可以估罔7週
I I | 么 I 參照第8圖5其顯示對於SRAM的記憶體控制器26b。記 憶體控制器26b包括位址與命令佇列1 20。當記憶體控制器 26a (第7圖)具有用於根據奇數與偶數儲存的記憶體最{ 化的仵列,記憶體控制器2 6 b根據記憶體的運算,例如讀 取,,入,而被最佳化。位豉與命令佇列! 2〇包括高度優 先權佇列120a,SRAM完成的佔優勢的記憶體參照功能之, 取佇列120b,以及通常將包括所有至從―的寫入與非最名 化的讀取之次序佇列120c。雖然未被顯示,位址與命令# 列1 2 0也可以包括寫入仔列。 SRAM控制為26b也包括核心匯流排界面邏輯,即asb g
匯流排界面邏m22接合核心處理器2〇至 SDMM控制器26b。ASB匯流排是包括32位元資斜致蔣與28 址路徑的匯流排。經由咖ASB資料裝置128,例女 緩衝1§,賢料被存取至斑從# 一 ^ 窃田私曾! 隐體。MEM ASB資料裝置12丨 以,進入資料從核心處理器2( \ r 經麵界面!22,資料可以被错存進入MEM ASB裝置].2“
第45頁 571239 五、發明說明(42)
5 = 裝置128經過SMM界面140被移除至SRAM 於二广iGD。雖然禾被顯示5相同佇列結構可以被提供羯 二^。SRni控制||26b也包括從微程式引擎與?^匯流誹 *疋貧料的引擎127。 記憶體要求經由多工器126被送至SRM!界面14〇。多工 i j RiM仲裁器i31所控制,SRAM仲裁器、131<貞測每一 蘄六!!充貝興要求的狀態以及根據儲存於優先權服務控制 二存态ί 30中的可程式化數值而決定優先權。一旦對多工 一 6的狂棄彳廷坪§己憶體荟照要求,記 昭 ,碼器被解碼以及位垃被產生。記 :體映射晶片外SRAM (Men〇ry Mapped — chip ) :、擴充ROM (Expansi〇n R0M) qSRAM 控制器26b 可以定 例如16百萬位元組3其中8百萬位元組映射於SRAM °以及8百禺位元保留為特殊功能,包括:經過快閃唯 ^賣記憶體16c的啟動空間;以及對*MAC裝置、i3b的控 制台埠存取與存取至相關(RM〇N )計數器。別^丨被使羯於 本地查詢表格與佇列管理功能。 SRAM控制器26b支援以下異動: 被程式引擎要求(經由非公開匯流排) 至/從SRAM …
核心處理器(經由ASB匯流排) 至/從SRAM SRAM控制蕤26b完成記憶體參照排序以最小化從SRM 界面1 40至§己憶體1 6b的管線中的延遲(泡沫)。控制 器2 6b根據讀取功能作記憶體參照排序。取決於所使用的
第46頁 571239 五、發明說明(43) 記憶體類型,泡沫可以是1或2個週期。 —SRAM控制器26b包括鎖住查詢裝置142,銷# $ ^ $ !42是雳於讀敢鎖住的查詢之8項目位垃內容 < 二一询衣置 體。每-位置包括由隨後讀敗鎖住要求所檢憶 元。位址舆合合伫列氺白妊綠而•及~的有效位 (bd I^kVa;; :取鋇住失敗侍列1 20d 用於保留因為鎖住存在於記憶體的部 彳丁列d〇d被使 吞己憶體爹照要求。亦即,微程式引整一人敗的續取 鐳拉要灰的々培妒,卡 t很々… 有發钸具有讀取 中。記憶體要求將運作於次序符列120。或者;;;= 以及將識別作為讀取鎖住要求。控制謂,取^^b ,置142而決定是否此記憶體位置已經被鎖:取:= 。己fe體位置e>㉟目任何先前讀取鎖 ,體鎖住要求將失敗以及將被儲存於讀取;;;敗: ,。假如,被解開或者假如142顯示沒有鎖住在該位址 成傳統SRAM位址讀w寫入^\^SR/M界面140所使用而完 與位址產生器138將也刪1f。会令控制器 的需求已經結走之J 憶體位置被鎖住。在所著 从 ^ ^ ^ 错由程式中的微程式控制指令的運 你S豆立置被解開。藉由清除在CAM中的有效位元5 古置被H。在解開之後5讀取鎖住失敗佇列120d變成最 =優先權佇列而給予所有排隊的未達到讀取鎖住有一個機 ΐ云發佈記憶體鎖住要束。
571239 五、發明說明(44) 參照第9 51、’其顯示在微輕式引擎22輿?·界面料 j 、FBI)之間的通訊。在網路應周中的FMS界面28可以士 | 成來自FMS 18的輸入封包的標頭處理。邝⑽界面所完2 j 的關鍵功能是封包標頭的選敗5以及在咖中的微裎式可j ^來源/ g—標/協定雜湊查詢。假如雜湊無法成功地解> j 》、,封包標頭被营升至核心處理器28用於更多複雜的處j j FBI 28包括傳迗FIFO 182 5接收FIFO 183,雜湊單元 丨^8以及FBI控制與狀態暫存器189。這四個單元經由時間 |二工存取至bRAM匯流排38而與微程式引擎22通訊,SRAM匯 =排38連接至與微程式引擎由的移轉暫存器冗'8〇。亦 | ^,至與從微程式引擎的所有通訊是經甴移轉暫存器78、 j &。F^US界面28包括推進狀態機構2〇◦,其在⑽鍾不使用 | AM貝枓匯流排(匯流排38的部份)的時間週期期間,推 | ^資料進入移轉暫存!|78、8〇,以及搬走狀態機構2〇2, j八用於從相對應微程式引擎中的移轉暫存器擷取資料。 I ^凑旦元包括一對FIFO 188a、188b :雜湊單元決定 | ^ 8接收FBI—hash要求。雜湊單元i88從呼叫的微程式 弓•華而擷取雜湊鍵。在鍵被擷取與雜湊之後,索引被發送 ^到呼叫的微程式引擎22。在單一fbi_hash要求之下,最 多二個雜凑被完成。匯流排34與38是各自單一方向: 丨 /‘LPush/piill—data 與 Sbus — push/pull—data。每一個 | $$些匯流排需要控制信號,控制信號將提供對於適當的 | 1散程式弓|擎22移轉暫存器之讀取/寫入控制。
第48頁 571239 五、發明說明(45) 一般而言,移轉暫存器需要保護控制它們的内文而保 證項取的正確。特別地5假如寫入移轉暫存器由thread」 所使周而提供資料至SDR AM 1 6a,thread—l必須不覆寫比 暫存為直到標示此暫存器已經被骨升以及可以被再使用的 信號從SDRAM控制器26a傳回。每一個寫入不需要從目的傳 回標示功能已經完成的信號,因為假如執行緒寫入至相同 命$符列於具有多個要求的該目的5完成的次序被保證於 該命令佇列中,因此只有最後的命令需要傳送信號回到執 也、、者。然而$假如執行緒使甩多個命令符列(次序與讀取 )’則這些命令要求必須被打破成為分開的内容工作,以 次序是經由内容調換而維持。標示於本段落開始的例 ;人況疋相關於運算的某分類5其使用未經 器來自FM用於_狀態資訊。為了保護位;^ 从、+二态之上的讀取/寫入決定論,當這些特殊FBi推進運 ^ ^ί恰’ FBi提供特殊PUSh —Pr〇tect:信號。使用未 技術的任何微程式引擎22必制試保護旗標於 ^ !面/對移轉暫存器取得一致意見的微程式引整 右Ξ如旗標未被聲稱,則移轉暫存器可以被微程式、 將要等待N週期。此外齡〜存取暫存為之則5内容 前端保護窗口;^定其Λ 移轉暫存器數目加上 旗標,然後在連續週期是微程式引擎必須測試此 存器而讀取的夸料至咖 速地移動想要從讀取移轉暫 擎的讀取3 >、枓至gpr,以致推進引擎不衝突微程式引 571239 I五、發明說明(46) i
I I
l 雖然太發明已以較佳實施例揭露如上,然其並非用以 I i限定本發明〃任何熟習此技藝者,在不脫離本發明之精神 丨 ί ' ΐΐ I和範圍内5當可作更動與潤飾,因此本發明之保護範圍當 | !視後附之甴請專利範圍所界定者為座。 丨 q V-;
第50頁
Claims (1)
- 571239 _案號 89117Q0?_料年7月4日Γ 修正本_ 六、申請專利範圍 1 · 一種多執行緒(m u 11 i t h r e a d )處理方法,包括: 令一處理器執行電腦指令,該電腦指令包括内容分支 指令,其根據目前一内容數字是否符合一指定内容數字而 導致一指令串分支至具有位於一指定標籤上的位址的另一 指令串。 2 ·如申請專利範圍第1項所述之多執行緒處理方法, 其中該内容分支指令具有以下格式 mm br=ctx[ctx, label#], 〇Pti〇na1_token it讀 泰營 br!=ctx[ctx, label#], 〇Ptional—token 。 II 3·如申請專利範圍第2項所述之多執行緒處理方法, I#中該label#是相對應指令位址的一符號標籤,ctx是該 1¾容數字。 f 1 4.如申請專利範圍第3項所述之多執行緒處理方法, g中該内容數字具有〇、1、2戒3的有效數值。 /' -¾ 5·如申請專利範圍第1項所述之多執行緒處理方法, #中該内容分支指令具有一選頊記號(〇Ptional-token )° 6 ·如申請專利範圍第5項所述之多執行緒處理方法, 其中該内容分支指令具有〜選頊記號’在完成該分支運算 之前,其延遲導致該處理器執行在該分支指令以後的指 令。 7 · —種運作處理器的方法,包括: 評估一執行中内容的一内溶:數字而決定該執行中内容 的該内容數字是否符合一指定内容數字;以及 根據評估該執行中内容的該内餐數字而分支至一指定指571239 案號 89117902 月 修正 六、申請專利範圍 〇 8. 如申請專利範圍第7項所述之方法,其中分支進一 步地包括: 分支,假如該執行中内容數字符合該指定内容數字。 9. 如申請專利範圍第7項所述之方法,其中該内容數 字具有0、1、2或3的有效數值。 1 0. —種可以執行多個執行緒的處理器,包括: 一暫存器堆疊; 一程式計數器,其用於每一個執行中的内容; 一算術運算單元,其連接至該暫存器堆疊;以及 一程式控制貯存,其儲存内容調換指令而導致該處理 器: 評估一執行中内容的一内容數字而決定該執行中内容 的該内容數字是否符合一指定内容數字;以及 根據評估該執行中内容的該内容數字而分支至一指定 指令。 11.如申請專利範圍第1 0項所述之處理器,其中分支 發生,假如該執行中内容數字符合該指定内容數字。 1 2.如申請專利範圍第1 0項所述之處理器,其中該内 容數字具有0、1、2或3的有效數值。 1 3. —種存在於電腦可讀儲存媒體上而用以導致一處 理器執行電腦指令的多執行緒處理方法,包括令該處理 器: 評估一執行中内容的一内容數字而決定該執行中内容 的該内容數字是否符合一指定内容數字;以及1057-3413-pf3.ptc 第52頁 2003.09.25.053 571239 _案號89117902_年月日__ 六、申請專利範圍 根據評估該執行中内容的該内容數字而分支至一指定 指令。 1 4.如申請專利範圍第1 3項所述之多執行緒處理方 法,其中分支發生,假如該執行中内容數字符合該指定内 容數字。 1 5.如申請專利範圍第1 3項所述之多執行緒處理方 法,其中該内容數字具有0、1、2或3的有效數值。1057-3413-pf3.ptc 第53頁 2003. 09. 25. 054
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15196199P | 1999-09-01 | 1999-09-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW571239B true TW571239B (en) | 2004-01-11 |
Family
ID=22540994
Family Applications (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089117903A TW559729B (en) | 1999-09-01 | 2000-09-01 | Instruction for multithreaded parallel processor |
TW089117904A TW475148B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor architecture |
TW089117900A TW486666B (en) | 1999-09-01 | 2000-10-18 | Register set used in multithreaded parallel processor architecture |
TW089117902A TW571239B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for multithreaded processor |
TW089117911A TW548584B (en) | 1999-09-01 | 2000-10-18 | Fast write instruction for micro engine used in multithreaded parallel processor architecture |
TW089117906A TWI221251B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
TW089117905A TW569133B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
TW089117910A TW486667B (en) | 1999-09-01 | 2000-10-18 | Memory reference instructions for micro engine used in multithreaded parallel processor architecture |
TW089117901A TWI220732B (en) | 1999-09-01 | 2000-10-18 | Local register instruction for micro engine used in multithreaded parallel processor architecture |
TW089117912A TW546585B (en) | 1999-09-01 | 2000-10-18 | Method of operating a processor and computer program product |
TW089117907A TW594562B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089117903A TW559729B (en) | 1999-09-01 | 2000-09-01 | Instruction for multithreaded parallel processor |
TW089117904A TW475148B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor architecture |
TW089117900A TW486666B (en) | 1999-09-01 | 2000-10-18 | Register set used in multithreaded parallel processor architecture |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089117911A TW548584B (en) | 1999-09-01 | 2000-10-18 | Fast write instruction for micro engine used in multithreaded parallel processor architecture |
TW089117906A TWI221251B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
TW089117905A TW569133B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
TW089117910A TW486667B (en) | 1999-09-01 | 2000-10-18 | Memory reference instructions for micro engine used in multithreaded parallel processor architecture |
TW089117901A TWI220732B (en) | 1999-09-01 | 2000-10-18 | Local register instruction for micro engine used in multithreaded parallel processor architecture |
TW089117912A TW546585B (en) | 1999-09-01 | 2000-10-18 | Method of operating a processor and computer program product |
TW089117907A TW594562B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
Country Status (10)
Country | Link |
---|---|
US (1) | US7421572B1 (zh) |
EP (7) | EP1236092A4 (zh) |
CN (7) | CN1184562C (zh) |
AT (2) | ATE475930T1 (zh) |
AU (11) | AU7340700A (zh) |
CA (7) | CA2386562A1 (zh) |
DE (2) | DE60044752D1 (zh) |
HK (8) | HK1046049A1 (zh) |
TW (11) | TW559729B (zh) |
WO (8) | WO2001016713A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7292586B2 (en) | 2001-03-30 | 2007-11-06 | Nokia Inc. | Micro-programmable protocol packet parser and encapsulator |
US6785793B2 (en) | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US7360217B2 (en) * | 2001-09-28 | 2008-04-15 | Consentry Networks, Inc. | Multi-threaded packet processing engine for stateful packet processing |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7437724B2 (en) * | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
GB2409062C (en) | 2003-12-09 | 2007-12-11 | Advanced Risc Mach Ltd | Aliasing data processing registers |
US7027062B2 (en) * | 2004-02-27 | 2006-04-11 | Nvidia Corporation | Register based queuing for texture requests |
US9038070B2 (en) | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
GB0420442D0 (en) * | 2004-09-14 | 2004-10-20 | Ignios Ltd | Debug in a multicore architecture |
SE0403128D0 (sv) * | 2004-12-22 | 2004-12-22 | Xelerated Ab | A method for a processor, and a processor |
US8028295B2 (en) | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US7882284B2 (en) * | 2007-03-26 | 2011-02-01 | Analog Devices, Inc. | Compute unit with an internal bit FIFO circuit |
US7991967B2 (en) * | 2007-06-29 | 2011-08-02 | Microsoft Corporation | Using type stability to facilitate contention management |
US9384003B2 (en) * | 2007-10-23 | 2016-07-05 | Texas Instruments Incorporated | Determining whether a branch instruction is predicted based on a capture range of a second instruction |
US9207968B2 (en) * | 2009-11-03 | 2015-12-08 | Mediatek Inc. | Computing system using single operating system to provide normal security services and high security services, and methods thereof |
CN101950277B (zh) * | 2010-09-13 | 2012-04-25 | 青岛海信信芯科技有限公司 | 用于微控制单元的数据传输方法与装置以及数据传输系统 |
GB2486737B (en) * | 2010-12-24 | 2018-09-19 | Qualcomm Technologies Int Ltd | Instruction execution |
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US8645618B2 (en) * | 2011-07-14 | 2014-02-04 | Lsi Corporation | Flexible flash commands |
EP2798464B8 (en) | 2011-12-30 | 2019-12-11 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
CN102833336A (zh) * | 2012-08-31 | 2012-12-19 | 河海大学 | 分散分布式信息采集与并发处理系统中数据分包处理方法 |
US10140129B2 (en) * | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
CN103186438A (zh) * | 2013-04-02 | 2013-07-03 | 浪潮电子信息产业股份有限公司 | 一种提高磁盘阵列数据重构效率的方法 |
CN103226328B (zh) * | 2013-04-21 | 2015-06-24 | 中国矿业大学(北京) | 采集次数控制模式下的多线程数据采集系统同步控制方法 |
US20150127927A1 (en) * | 2013-11-01 | 2015-05-07 | Qualcomm Incorporated | Efficient hardware dispatching of concurrent functions in multicore processors, and related processor systems, methods, and computer-readable media |
KR102254099B1 (ko) | 2014-05-19 | 2021-05-20 | 삼성전자주식회사 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
CN103984235B (zh) * | 2014-05-27 | 2016-05-11 | 湖南大学 | 基于c/s结构的空间机械臂控制系统软件架构及构建方法 |
US20160381050A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to protect shadow stacks |
US10394556B2 (en) | 2015-12-20 | 2019-08-27 | Intel Corporation | Hardware apparatuses and methods to switch shadow stack pointers |
US10430580B2 (en) | 2016-02-04 | 2019-10-01 | Intel Corporation | Processor extensions to protect stacks during ring transitions |
US10838656B2 (en) | 2016-12-20 | 2020-11-17 | Mediatek Inc. | Parallel memory access to on-chip memory containing regions of different addressing schemes by threads executed on parallel processing units |
US10387037B2 (en) * | 2016-12-31 | 2019-08-20 | Intel Corporation | Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies |
PL3812900T3 (pl) | 2016-12-31 | 2024-04-08 | Intel Corporation | Systemy, sposoby i aparaty do obliczania heterogenicznego |
CN107329812B (zh) * | 2017-06-09 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 一种运行协程的方法和装置 |
CN112463327B (zh) * | 2020-11-25 | 2023-01-31 | 海光信息技术股份有限公司 | 逻辑线程快速切换的方法、装置、cpu芯片及服务器 |
US20230205869A1 (en) * | 2021-12-23 | 2023-06-29 | Intel Corporation | Efficient exception handling in trusted execution environments |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3373408A (en) | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3478322A (en) | 1967-05-23 | 1969-11-11 | Ibm | Data processor employing electronically changeable control storage |
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
BE795789A (fr) | 1972-03-08 | 1973-06-18 | Burroughs Corp | Microprogramme comportant une micro-instruction de recouvrement |
US3881173A (en) | 1973-05-14 | 1975-04-29 | Amdahl Corp | Condition code determination and data processing |
IT986411B (it) | 1973-06-05 | 1975-01-30 | Olivetti E C Spa | Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario |
FR2253415A5 (zh) * | 1973-12-04 | 1975-06-27 | Cii | |
US3913074A (en) | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
US4130890A (en) | 1977-06-08 | 1978-12-19 | Itt Industries, Inc. | Integrated DDC memory with bitwise erase |
US4392758A (en) | 1978-05-22 | 1983-07-12 | International Business Machines Corporation | Underscore erase |
JPS56164464A (en) | 1980-05-21 | 1981-12-17 | Tatsuo Nogi | Parallel processing computer |
US4400770A (en) | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
CA1179069A (en) | 1981-04-10 | 1984-12-04 | Yasushi Fukunaga | Data transmission apparatus for a multiprocessor system |
US4471426A (en) * | 1981-07-02 | 1984-09-11 | Texas Instruments Incorporated | Microcomputer which fetches two sets of microcode bits at one time |
US4454595A (en) | 1981-12-23 | 1984-06-12 | Pitney Bowes Inc. | Buffer for use with a fixed disk controller |
US4477872A (en) | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
US4569016A (en) | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
JPS6014338A (ja) * | 1983-06-30 | 1985-01-24 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 計算機システムにおける分岐機構 |
US4606025A (en) | 1983-09-28 | 1986-08-12 | International Business Machines Corp. | Automatically testing a plurality of memory arrays on selected memory array testers |
US4808988A (en) | 1984-04-13 | 1989-02-28 | Megatek Corporation | Digital vector generator for a graphic display system |
US4868735A (en) | 1984-05-08 | 1989-09-19 | Advanced Micro Devices, Inc. | Interruptible structured microprogrammed sixteen-bit address sequence controller |
US4742451A (en) | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
US5187800A (en) | 1985-01-04 | 1993-02-16 | Sun Microsystems, Inc. | Asynchronous pipelined data processing system |
US5045995A (en) | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
US4755966A (en) | 1985-06-28 | 1988-07-05 | Hewlett-Packard Company | Bidirectional branch prediction and optimization |
US4777587A (en) | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses |
US4847755A (en) | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US4745544A (en) | 1985-12-12 | 1988-05-17 | Texas Instruments Incorporated | Master/slave sequencing processor with forced I/O |
US4724521A (en) | 1986-01-14 | 1988-02-09 | Veri-Fone, Inc. | Method for operating a local terminal to execute a downloaded application program |
US5297260A (en) | 1986-03-12 | 1994-03-22 | Hitachi, Ltd. | Processor having a plurality of CPUS with one CPU being normally connected to common bus |
US5170484A (en) | 1986-09-18 | 1992-12-08 | Digital Equipment Corporation | Massively parallel array processing system |
US4992934A (en) | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
US5073864A (en) | 1987-02-10 | 1991-12-17 | Davin Computer Corporation | Parallel string processor and method for a minicomputer |
US5142683A (en) | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
US4866664A (en) | 1987-03-09 | 1989-09-12 | Unisys Corporation | Intercomputer communication control apparatus & method |
US5189636A (en) | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
US4816913A (en) | 1987-11-16 | 1989-03-28 | Technology, Inc., 64 | Pixel interpolation circuitry as for a video signal processor |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5220669A (en) | 1988-02-10 | 1993-06-15 | International Business Machines Corporation | Linkage mechanism for program isolation |
DE68913629T2 (de) | 1988-03-14 | 1994-06-16 | Unisys Corp | Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem. |
US5056015A (en) | 1988-03-23 | 1991-10-08 | Du Pont Pixel Systems Limited | Architectures for serial or parallel loading of writable control store |
US5165025A (en) | 1988-10-06 | 1992-11-17 | Lass Stanley E | Interlacing the paths after a conditional branch like instruction |
US5202972A (en) | 1988-12-29 | 1993-04-13 | International Business Machines Corporation | Store buffer apparatus in a multiprocessor system |
US5155854A (en) | 1989-02-03 | 1992-10-13 | Digital Equipment Corporation | System for arbitrating communication requests using multi-pass control unit based on availability of system resources |
US5155831A (en) | 1989-04-24 | 1992-10-13 | International Business Machines Corporation | Data processing system with fast queue store interposed between store-through caches and a main memory |
US5113516A (en) | 1989-07-31 | 1992-05-12 | North American Philips Corporation | Data repacker having controlled feedback shifters and registers for changing data format |
US5168555A (en) | 1989-09-06 | 1992-12-01 | Unisys Corporation | Initial program load control |
US5263169A (en) | 1989-11-03 | 1993-11-16 | Zoran Corporation | Bus arbitration and resource management for concurrent vector signal processor architecture |
DE3942977A1 (de) | 1989-12-23 | 1991-06-27 | Standard Elektrik Lorenz Ag | Verfahren zum wiederherstellen der richtigen zellfolge, insbesondere in einer atm-vermittlungsstelle, sowie ausgangseinheit hierfuer |
US5544337A (en) | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
US5247671A (en) | 1990-02-14 | 1993-09-21 | International Business Machines Corporation | Scalable schedules for serial communications controller in data processing systems |
JPH0799812B2 (ja) | 1990-03-26 | 1995-10-25 | 株式会社グラフイックス・コミュニケーション・テクノロジーズ | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 |
US5390329A (en) | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
JPH0454652A (ja) * | 1990-06-25 | 1992-02-21 | Nec Corp | マイクロコンピュータ |
US5432918A (en) | 1990-06-29 | 1995-07-11 | Digital Equipment Corporation | Method and apparatus for ordering read and write operations using conflict bits in a write queue |
EP0463973A3 (en) * | 1990-06-29 | 1993-12-01 | Digital Equipment Corp | Branch prediction in high performance processor |
US5404482A (en) | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills |
US5347648A (en) | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
JP2508907B2 (ja) * | 1990-09-18 | 1996-06-19 | 日本電気株式会社 | 遅延分岐命令の制御方式 |
DE69106384T2 (de) | 1990-10-19 | 1995-08-10 | Cray Research Inc | Skalierbares parallel-vektorrechnersystem. |
US5367678A (en) | 1990-12-06 | 1994-11-22 | The Regents Of The University Of California | Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically |
US5394530A (en) | 1991-03-15 | 1995-02-28 | Nec Corporation | Arrangement for predicting a branch target address in the second iteration of a short loop |
EP0522513A2 (en) | 1991-07-09 | 1993-01-13 | Hughes Aircraft Company | High speed parallel microcode program controller |
US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
US5255239A (en) | 1991-08-13 | 1993-10-19 | Cypress Semiconductor Corporation | Bidirectional first-in-first-out memory device with transparent and user-testable capabilities |
US5623489A (en) | 1991-09-26 | 1997-04-22 | Ipc Information Systems, Inc. | Channel allocation system for distributed digital switching network |
US5392412A (en) | 1991-10-03 | 1995-02-21 | Standard Microsystems Corporation | Data communication controller for use with a single-port data packet buffer |
US5392391A (en) | 1991-10-18 | 1995-02-21 | Lsi Logic Corporation | High performance graphics applications controller |
US5557766A (en) | 1991-10-21 | 1996-09-17 | Kabushiki Kaisha Toshiba | High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank |
US5452437A (en) | 1991-11-18 | 1995-09-19 | Motorola, Inc. | Methods of debugging multiprocessor system |
US5357617A (en) | 1991-11-22 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor |
US5442797A (en) | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
JP2823767B2 (ja) | 1992-02-03 | 1998-11-11 | 松下電器産業株式会社 | レジスタファイル |
KR100309566B1 (ko) | 1992-04-29 | 2001-12-15 | 리패치 | 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치 |
US5459842A (en) | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
DE4223600C2 (de) | 1992-07-17 | 1994-10-13 | Ibm | Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems |
US5274770A (en) | 1992-07-29 | 1993-12-28 | Tritech Microelectronics International Pte Ltd. | Flexible register-based I/O microcontroller with single cycle instruction execution |
US5442756A (en) | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5692167A (en) * | 1992-07-31 | 1997-11-25 | Intel Corporation | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor |
US5481683A (en) * | 1992-10-30 | 1996-01-02 | International Business Machines Corporation | Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions |
US5463746A (en) | 1992-10-30 | 1995-10-31 | International Business Machines Corp. | Data processing system having prediction by using an embedded guess bit of remapped and compressed opcodes |
US5428779A (en) | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US5450603A (en) | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
ATE188559T1 (de) | 1992-12-23 | 2000-01-15 | Centre Electron Horloger | Multi-tasking-steuerungsgerät mit geringem energieverbrauch |
US5404464A (en) | 1993-02-11 | 1995-04-04 | Ast Research, Inc. | Bus control system and method that selectively generate an early address strobe |
US5448702A (en) | 1993-03-02 | 1995-09-05 | International Business Machines Corporation | Adapters with descriptor queue management capability |
US6311286B1 (en) | 1993-04-30 | 2001-10-30 | Nec Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
WO1994027216A1 (en) | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
CA2122182A1 (en) | 1993-05-20 | 1994-11-21 | Rene Leblanc | Method for rapid prototyping of programming problems |
US5363448A (en) * | 1993-06-30 | 1994-11-08 | United Technologies Automotive, Inc. | Pseudorandom number generation and cryptographic authentication |
CA2107299C (en) | 1993-09-29 | 1997-02-25 | Mehrad Yasrebi | High performance machine for switched communications in a heterogenous data processing network gateway |
US5446736A (en) | 1993-10-07 | 1995-08-29 | Ast Research, Inc. | Method and apparatus for connecting a node to a wireless network using a standard protocol |
DE69415126T2 (de) | 1993-10-21 | 1999-07-08 | Sun Microsystems Inc., Mountain View, Calif. | Gegenflusspipelineprozessor |
DE69430352T2 (de) | 1993-10-21 | 2003-01-30 | Sun Microsystems Inc., Mountain View | Gegenflusspipeline |
TW261676B (zh) * | 1993-11-02 | 1995-11-01 | Motorola Inc | |
US5450351A (en) | 1993-11-19 | 1995-09-12 | International Business Machines Corporation | Content addressable memory implementation with random access memory |
US6079014A (en) * | 1993-12-02 | 2000-06-20 | Intel Corporation | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state |
US5487159A (en) | 1993-12-23 | 1996-01-23 | Unisys Corporation | System for processing shift, mask, and merge operations in one instruction |
DE69420540T2 (de) * | 1994-01-03 | 2000-02-10 | Intel Corp., Santa Clara | Verfahren und Vorrichtung zum Implementieren eines vierstufigen Verzweigungsauflosungssystem in einem Rechnerprozessor |
US5490204A (en) | 1994-03-01 | 1996-02-06 | Safco Corporation | Automated quality assessment system for cellular networks |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
US5542088A (en) | 1994-04-29 | 1996-07-30 | Intergraph Corporation | Method and apparatus for enabling control of task execution |
US5544236A (en) | 1994-06-10 | 1996-08-06 | At&T Corp. | Access to unsubscribed features |
US5574922A (en) | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
FR2722041B1 (fr) | 1994-06-30 | 1998-01-02 | Samsung Electronics Co Ltd | Decodeur de huffman |
US5655132A (en) * | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
US5640538A (en) | 1994-08-22 | 1997-06-17 | Adaptec, Inc. | Programmable timing mark sequencer for a disk drive |
US5717760A (en) * | 1994-11-09 | 1998-02-10 | Channel One Communications, Inc. | Message protection system and method |
CN1306394C (zh) * | 1994-12-02 | 2007-03-21 | 现代电子美国公司 | 有限游程转移预测的方法 |
US5610864A (en) | 1994-12-23 | 1997-03-11 | Micron Technology, Inc. | Burst EDO memory device with maximized write cycle timing |
US5550816A (en) | 1994-12-29 | 1996-08-27 | Storage Technology Corporation | Method and apparatus for virtual switching |
US5649157A (en) | 1995-03-30 | 1997-07-15 | Hewlett-Packard Co. | Memory controller with priority queues |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
US5592622A (en) | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
US5541920A (en) | 1995-06-15 | 1996-07-30 | Bay Networks, Inc. | Method and apparatus for a delayed replace mechanism for a streaming packet modification engine |
KR0180169B1 (ko) * | 1995-06-30 | 1999-05-01 | 배순훈 | 가변길이 부호기 |
US5613071A (en) | 1995-07-14 | 1997-03-18 | Intel Corporation | Method and apparatus for providing remote memory access in a distributed memory multiprocessor system |
US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
DE69717369T2 (de) * | 1996-08-27 | 2003-09-11 | Matsushita Electric Ind Co Ltd | Vielfadenprozessor zur Verarbeitung von mehreren Befehlsströmen unabhängig von einander durch eine flexible Durchsatzsteuerung in jedem Befehlsstrom |
JPH10177482A (ja) * | 1996-10-31 | 1998-06-30 | Texas Instr Inc <Ti> | マイクロプロセッサおよび動作方法 |
US5857104A (en) | 1996-11-26 | 1999-01-05 | Hewlett-Packard Company | Synthetic dynamic branch prediction |
US6088788A (en) * | 1996-12-27 | 2000-07-11 | International Business Machines Corporation | Background completion of instruction and associated fetch request in a multithread processor |
US6029228A (en) * | 1996-12-31 | 2000-02-22 | Texas Instruments Incorporated | Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions |
US6470376B1 (en) * | 1997-03-04 | 2002-10-22 | Matsushita Electric Industrial Co., Ltd | Processor capable of efficiently executing many asynchronous event tasks |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US5996068A (en) * | 1997-03-26 | 1999-11-30 | Lucent Technologies Inc. | Method and apparatus for renaming registers corresponding to multiple thread identifications |
US5907702A (en) * | 1997-03-28 | 1999-05-25 | International Business Machines Corporation | Method and apparatus for decreasing thread switch latency in a multithread processor |
US6009515A (en) * | 1997-05-30 | 1999-12-28 | Sun Microsystems, Inc. | Digital data processing system including efficient arrangement to support branching within trap shadows |
GB2326253A (en) * | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
US6385720B1 (en) * | 1997-07-14 | 2002-05-07 | Matsushita Electric Industrial Co., Ltd. | Branch prediction method and processor using origin information, relative position information and history information |
US6243735B1 (en) * | 1997-09-01 | 2001-06-05 | Matsushita Electric Industrial Co., Ltd. | Microcontroller, data processing system and task switching control method |
US5926646A (en) * | 1997-09-11 | 1999-07-20 | Advanced Micro Devices, Inc. | Context-dependent memory-mapped registers for transparent expansion of a register file |
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6560629B1 (en) * | 1998-10-30 | 2003-05-06 | Sun Microsystems, Inc. | Multi-thread processing |
-
2000
- 2000-08-31 US US10/069,195 patent/US7421572B1/en not_active Expired - Fee Related
- 2000-08-31 EP EP00959717A patent/EP1236092A4/en not_active Ceased
- 2000-08-31 WO PCT/US2000/024006 patent/WO2001016713A1/en active Application Filing
- 2000-08-31 AU AU73407/00A patent/AU7340700A/en not_active Abandoned
- 2000-08-31 CN CNB008154376A patent/CN1184562C/zh not_active Expired - Fee Related
- 2000-08-31 CN CNB008154171A patent/CN100342326C/zh not_active Expired - Fee Related
- 2000-08-31 AT AT00961457T patent/ATE475930T1/de not_active IP Right Cessation
- 2000-08-31 AU AU73406/00A patent/AU7340600A/en not_active Abandoned
- 2000-08-31 EP EP00959714A patent/EP1236093A4/en not_active Ceased
- 2000-08-31 CN CNB008144966A patent/CN100474236C/zh not_active Expired - Fee Related
- 2000-08-31 WO PCT/US2000/023992 patent/WO2001018646A1/en active Application Filing
- 2000-08-31 AU AU70987/00A patent/AU7098700A/en not_active Abandoned
- 2000-08-31 CA CA002386562A patent/CA2386562A1/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023996 patent/WO2001016716A1/en active Application Filing
- 2000-08-31 CA CA002383532A patent/CA2383532A1/en not_active Abandoned
- 2000-08-31 CA CA002383528A patent/CA2383528C/en not_active Expired - Fee Related
- 2000-08-31 AU AU70984/00A patent/AU7098400A/en not_active Abandoned
- 2000-08-31 EP EP00959711A patent/EP1236088B9/en not_active Expired - Lifetime
- 2000-08-31 AU AU70990/00A patent/AU7099000A/en not_active Abandoned
- 2000-08-31 EP EP00959713A patent/EP1242869B1/en not_active Expired - Lifetime
- 2000-08-31 AU AU70979/00A patent/AU7097900A/en not_active Abandoned
- 2000-08-31 CA CA002383531A patent/CA2383531A1/en not_active Abandoned
- 2000-08-31 CA CA002386558A patent/CA2386558C/en not_active Expired - Fee Related
- 2000-08-31 CN CNB008154309A patent/CN1254739C/zh not_active Expired - Fee Related
- 2000-08-31 WO PCT/US2000/024000 patent/WO2001016714A1/en active Application Filing
- 2000-08-31 WO PCT/US2000/023994 patent/WO2001016722A1/en active Application Filing
- 2000-08-31 DE DE60044752T patent/DE60044752D1/de not_active Expired - Lifetime
- 2000-08-31 AT AT00959711T patent/ATE396449T1/de not_active IP Right Cessation
- 2000-08-31 CA CA002383526A patent/CA2383526A1/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023982 patent/WO2001016758A2/en active Application Filing
- 2000-08-31 AU AU73404/00A patent/AU7340400A/en not_active Abandoned
- 2000-08-31 AU AU70985/00A patent/AU7098500A/en not_active Abandoned
- 2000-08-31 DE DE60038976T patent/DE60038976D1/de not_active Expired - Lifetime
- 2000-08-31 CN CNB008151237A patent/CN1296818C/zh not_active Expired - Fee Related
- 2000-08-31 WO PCT/US2000/023983 patent/WO2001016715A1/en active Application Filing
- 2000-08-31 EP EP00961457A patent/EP1236094B1/en not_active Expired - Lifetime
- 2000-08-31 AU AU70986/00A patent/AU7098600A/en not_active Abandoned
- 2000-08-31 CN CNB008148740A patent/CN1271513C/zh not_active Expired - Fee Related
- 2000-08-31 EP EP00959712A patent/EP1236097A4/en not_active Withdrawn
- 2000-09-01 WO PCT/US2000/024095 patent/WO2001016698A2/en active Application Filing
- 2000-09-01 AU AU71012/00A patent/AU7101200A/en not_active Abandoned
- 2000-09-01 TW TW089117903A patent/TW559729B/zh not_active IP Right Cessation
- 2000-09-01 CN CNB008154120A patent/CN100351781C/zh not_active Expired - Fee Related
- 2000-09-01 EP EP00961484A patent/EP1242867A4/en not_active Withdrawn
- 2000-09-01 AU AU73429/00A patent/AU7342900A/en not_active Abandoned
- 2000-09-01 CA CA002383540A patent/CA2383540A1/en not_active Abandoned
- 2000-10-18 TW TW089117904A patent/TW475148B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117900A patent/TW486666B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117902A patent/TW571239B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117911A patent/TW548584B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117906A patent/TWI221251B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117905A patent/TW569133B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117910A patent/TW486667B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117901A patent/TWI220732B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117912A patent/TW546585B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117907A patent/TW594562B/zh not_active IP Right Cessation
-
2002
- 2002-10-21 HK HK02107606.9A patent/HK1046049A1/zh unknown
- 2002-11-07 HK HK02108083.9A patent/HK1046566A1/zh unknown
- 2002-11-07 HK HK02108082.0A patent/HK1046565A1/zh unknown
-
2003
- 2003-03-24 HK HK03102109.1A patent/HK1049902B/zh not_active IP Right Cessation
- 2003-05-15 HK HK03103439A patent/HK1051247A1/xx not_active IP Right Cessation
- 2003-06-03 HK HK03103923A patent/HK1051728A1/xx not_active IP Right Cessation
- 2003-06-03 HK HK03103924A patent/HK1051729A1/xx not_active IP Right Cessation
- 2003-06-03 HK HK03103925A patent/HK1051730A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW571239B (en) | Branch instruction for multithreaded processor | |
US6427196B1 (en) | SRAM controller for parallel processor architecture including address and command queue and arbiter | |
US6668317B1 (en) | Microengine for parallel processor architecture | |
CA2388740C (en) | Sdram controller for parallel processor architecture | |
EP1221105B1 (en) | Parallel processor architecture | |
US7743235B2 (en) | Processor having a dedicated hash unit integrated within | |
WO2001016703A1 (en) | Instruction for multithreaded parallel processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |