TWI221251B - Branch instruction for processor - Google Patents
Branch instruction for processor Download PDFInfo
- Publication number
- TWI221251B TWI221251B TW089117906A TW89117906A TWI221251B TW I221251 B TWI221251 B TW I221251B TW 089117906 A TW089117906 A TW 089117906A TW 89117906 A TW89117906 A TW 89117906A TW I221251 B TWI221251 B TW I221251B
- Authority
- TW
- Taiwan
- Prior art keywords
- branch
- processor
- instruction
- scope
- item
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 7
- 241001247287 Pentalinon luteum Species 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 10
- 241000981595 Zoysia japonica Species 0.000 claims 1
- 238000011156 evaluation Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 239000010977 jade Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 239000011324 bead Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003442 weekly 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
1221251 五、發明說明(l) 【發明領域】 本發明係有關於電腦處理器的指令 【習知技術說明】 平行處理是計算程序中 效率的方式。平行處理要求 行。連續的處理或者序列的 於單一工作站,鑑於管線處 站。不管是執行於平行處理 程式竭包括分支,而其中指 該序列分支至不同序列的指 同時事件的資訊處理之,種高 在$腦中許多程式的同時執 處理具有所有工作循序地完成 理具有工作完成於專業工作 、官線或序向處理機器,電腦 令串可以執行於序列中以及從 〇
為讓本發明之上述和其他目0、特徵、和優點能更明 二懂,下文特舉較佳實施例,並配合所附圖式,作詳細 說明如下: … 【圖式簡單說明】 第1圖係使用處理器之通訊系統的方塊圖。 第2圖係處理器的詳細方塊圖。 第3圖係使用於第1圖與第2圖的處理器中的微程 擎功能 單元的方塊圖。 第4圖係微程式引擎中的管線的方塊圖。 第5圖係顯示用於分支指令的示範袼式的圖。 1221251 五、發明說明
第6圖係顯示一般用途暫存 器位址安排的方塊圖 j【符號說明】 j 1 〇〜通訊系統; 12〜運兩硬體的多執行緒處理器;
13a〜10/100 BaseT八i隹朽上甘A 、進位媒體存取控制; i3b〜十億位元乙太網路矣¥ · ! 14〜PCI匯流排; k ’ 1 6〜記憶體系統; 16a〜同步動態隨機存取記憶體sdram); 16b〜靜態隨機存取記憶體(SRAM); 1 6 c〜快閃唯讀記憶體; 1 8〜第二匯流排; 2 0〜核心處理器; 22〜功能微程式引擎; 22a-22f〜微程式引擎; 24〜PCI匯流排界面; 26a〜同步動態隨機存取記憶體(SDRAm)控制器; 2 6b〜靜態隨機存取記憶體(SRAM)控制器; 2 7〜便條式記憶體; 28〜先進先出匯流排(FIFO Bus: FBUS)界面; 29a〜輸入與輸出FIFOs ; 29b〜輸入與輸出FIFOs ; 30〜先進系統匯流排(ASB )轉譯器;
1221251 五、發明說明(3) 3 2〜内部核心處理器匯流排; 34〜非公開匯流排; 38〜記憶體匯流排; 50〜精簡指令集運鼻(RISC)核心; 52〜十六仟位元組指令快取(16-kilobyte instruction cache ); 54〜八什位元組資料快取(g —kilobyte data cache ); 5 6〜預先擷取資料串緩衝區; 7 0〜控制儲存; 7 2〜控制器邏輯; 72a 72d 〜矛玉式计數器(pr〇gram c〇unter: pc )單 元; 7 3〜指令解碼器; 74〜内容事件切換邏輯; 7 6〜執行盒資料路徑; 76a〜算術邏輯|, . .,Λτπ
^ 7L (arithmetic logic unit: ALU ); 76b--般用途暫在嬰& , 1 < % 仔器組(genera 1-purpose register set ); 78〜寫入移轉暫存器堆疊; 8〇〜讀取移轉暫存器堆疊; 【較佳實施例的詳細說明】
1221251 五、發明說明(4) ,1 @ ’通訊系統j 〇包括處理器^ 2 一 連拉器疋運用硬體的多執行緒處理器12。處理琴12被 7流排18。對於可以被分割成為平行子卫作統16以及第 1,系統10是特別地有幫助的 :;宽 2伏時間導向的工作,運用硬體的多執行緒: 够99助的。運用硬體的多執行緒處理器12擁有多微程弋5 勃每:微程式引擎22具有多硬體控制執 控制執订緒可以被同時地啟動與獨立地活動於工作。體 i 由血ί:丨硬體的多執行緒處理器12也包括中央控制器20, 、控制器20協助裝載用於運用硬體的多執行緒處理器12 的其他資源之微程式碼控制以及完成其他通用電腦類型函 數,例如管理協定,異常,對於封包處理的額外支援,其 中微程式引擎22完成封包的較詳細處理,如同在邊界狀 況。在實施例中,處理器20是運用strong Arm®的架構 (Arm疋英國ARM公司的商標)。通用型微處理器2〇具有作 業系統。經過作業系統,處理器2 〇可以呼叫函數以運算於 微程式引擎22 a - 22f。處理器20可以使用任何支援的作業 系統’最好是即時作業系統。對於實現為Str〇ng Arm架構 的核心處理器 20 ’ 例如Microsoft-NT real-time, VXWorks與/z CUS,可於網際網路得到的免費軟體作業系 統’之類的作業系統可以被使用。 用硬體的多執行緒處理器12也包括複數功能微程式引 擎22 a - 22f。每一個功能微程式引擎(微程式引擎)
第8頁 五、發明說明(5) 2 2a-22ί維持硬體中的複數程式計數器與關連於程式計數 器的狀態。實際上,當在任何時間只有一個是真正地運 算,對應的一些執行緒集合可以被同時地啟動於每一個的 微程式引擎22a-22f。 ^ 每一微程式引擎22a-22f具有用於處理四個硬體執行 緒的能力。微程式引擎2 2 a - 2 2 f與包括記憶體系統1 β及匯 流排界面24與28的共享資源一起運算。記憶體系統i6包括 同步動態隨機存取記憶體(SDRAM)控制器26a與靜態隨機 存取記憶體(SRAM )控制器26b。SDRAM記憶體163與別]^龍 控制器26a通常被使用於處理大量的資料5例如,來自網 路封包的網路費用的處理。SRAM控制器26b與SRAM記憶體 1 6b被使周在,例如電腦網絡封包處理、後稿語言處理 ’或者作為用於WRAID磁碟儲存的儲存子系統的處理 ,,或者用於低潛伏時間,快速存取工作,例如,存取查 詢表格,用於核心處理器2 〇的記憶體等等。 處理器12包括連接處理器至第二匯流排18的匯流排界 面28。在一實施例中,匯流排界面28連接處理器12至被通 稱為FMS 18 (先進先出匯流排FIFO BUS )。處理器12包 =第二界面,例如PCi匯流排界面24,其連接存在於p(M匯 :排上的其他系統組件至處理器12 cpCI匯流排界面24 資$,速資料路徑24a至SDRAM記憶體16a。經由該路徑, 藉;吉可以從SDRAM 16a經過PCI匯流排14快速地被移動,憑 接 5己憶體存取(direct memory access - DMA )移
1221251 五、發明說明(6) “彳::能單元被連接至一或多個内部匯流排1部匯 排疋雙數,二十二位元匯流排(換言之,一匯 讀取以及另-匯流排用於寫入)。運用硬體的多執=3 理益12也是:皮構成以致在處理器12中的内部匯流排的二 總和超過内部匯流排連接至處理器12的頻寬。處理器1勺 括内部核心處理器匯流排32,例如先進系統匯流排 ),此匯流排連接處理器核心至記憶體控制器… 及至說明於下文中的先進系統匯流排(ASB)轉譯器3〇。 ASB匯流排是所謂的先進微控制器匯流排架構(amba )的 子集合,AMBA是與Strong Arm處理器核心20 —起被使用。 處理器12也包括連接微程式引擎單元22至別―控制器 26b、ASB轉譯器30與FBUS界面28的非公開匯流排34 (private bus )。記憶體匯流排38連接記憶體控制器 26a、26b至匯流排界面24與28以及記憶體系統16包括被使 兩於開機運算等等的快閃唯讀記憶體丨6 c。
參照第2圖’每一個的微程式引擎22a-22f包括檢查旗 標以決定被運算於其上的可利用執行緒之仲裁器。來自微 程式引擎22a-22f的任何執行緒可以存取同步動態隨機存 取記憶想(SDRAM )控制器26a、靜態隨機存取記憶體 (SRAM )控制器26b或者先進先出匯流排(FBUS )界面 28°每一記憶體控制器26a與26b包括為了儲存未解決的 記憶體參照要求之複數佇列。在用於標示何時服務是被授 權的中斷旗標之外,FBUS界面28支援對於MAC裝置支援的 每一埠的傳送與接收旗標。FBUS界面28也包括完成從FBUS
第10頁 1221251 五、發明說明(7) 進來封包的標頭處理之控制器28a。控制器28a設法得到封 包標頭並且完成於SRAM 16b中的微程式可編程序的來源/ 終點/協定雜湊查詢(Hashed lookup)(使用於位址平滑
核〜處理恭2 0存取共享資源。核心處理器2 〇具有經由 匯流排32至SDRAM控制器26a、至匯流排界面24與至SRAM控 制器26b。然而,為了存取微程式引擎22a —22f以及移轉位 於任何微程式引擎22 a - 22f中的暫存器,核心處理器2〇經 由ASB轉譯器30跨過匯流排34而存取微程式引擎22a — 22f。 ASB轉譯器30可以實際上存在於FBUS界面28,但是邏輯上 是有區別的。ASB轉譯器30完成在FBUS微程式引擎移轉暫 存器,置與核心處理器位址(亦即ASB匯流排)之間的位 址轉澤以便心處理器2〇可以存取屬於微程式引擎 的暫存器。 雖 下所說 出資料 體27是 處 精簡指 運算元 法支援 Strong 管線。 然微程 明,便 至記憶 連接至 理器核 令集運 或兩運 與三十 Arm (g) 處理器 式引擎22可以 條式記憶體2 7 體而作為其他 匯流排34。 心20包括精簡 算(RISC )核 #元的單一週 二位元桶形位 的架構,但是 核心20也包括 使用暫存 也被提供 微程式引 指令集運 心50實現 期位移於 移支援。 為了效能 十六仟位 器組以交換資料如以 以允許微程式引擎寫 擎讀取。便條式記憶 算(RISC )核心50, 於五級管線而完成一 單一週期中,提供乘 此RISC核心50是標準 原因而被實現於五級 元組指令快取
第11頁 1221251 五、發明說明(8) (1 6-ki lobyte instruction cache ) 52,八仟位元組資 料快取(8-ki lobyte data cache ) 54與預先擷取資料串 缓衝區(prefetch stream buffer) 56。核心處理器20完 成具術運I平行於記憶體寫入與指令擷取。核心處理器2 Q 經由ARM所定義的ASB匯流排與其他功能單元接合。asb匯 流排是三十二位元雙向匯流排3 2。 參照第3圖,範例的微程式引擎22f包括控制儲存70, 其包括儲存微程式的RAM。微程式是可由核心處理器2〇所 載入。微程式引擎22f也包括控制器邏輯72。控制器邏輯 72包括指令解碼器73與程式計數器(pr〇gram Counter: PC)單元72a-72d。四個微程式計數器72a-72d是保留於硬 體中。微程式引擎22f也包括内容事件切換邏輯74。内容 事件邏輯7 4接收來自每一個共享資源的訊息(例如, SEQj一EVENT—RESPONSE ; FBI一EVENT—RESPONSE ;
SRAM一EVENT—RESPONSE ; SDRAM—EVENT一RESPONSE ;與 ASB 一 EVENT—RESPONSE),共享資源例如SRAM 26a,SDRAM 2 6b,或處理器核心20,控制與狀態暫存器等等。這些訊 息提供被要求的功能是否已經完成的資訊。基於由執行緒 所要求的功能是否已經完成與用信號通知完成,執行緒需 要等待該完成信號,以及假如執行緒被賦予運算的能力, 接著執行緒被放置於可適用執行緒名冊中(未顯示)。微 程式引擎22f可以具有四個可適用執行緒的最大值。 除了局部至執行中的執行緒的事件信號之外,微程式 引擎2 2a-22f利用總體的信號發送狀態。具有信號發送狀
第12頁 1221251 五'發明說明(9) 態’執行中的執行緒可以播送信號狀態至所有的微程式引 擎22a-22f。接收要求可適用(Receive Request
Available)信號,在微程式引擎22a-22f中的任何與所有 ,打緒可以分支於這些信號發送狀態上。這些信號發送狀 態可以被使用以決定資源的可適用性或者是否資源是到期 而可以服務。 ’ 内容事件邏輯74具有對於四個執行緒的仲裁。在一實 施例^,仲裁是循環赛機制。其他技術可以被使周,包括 優先權排序或者權重公正排序。微程式引擎22f也包括勃
Execution box datapath) 包括算術邏輯單元(盯地託仏i〇gic _ se (^neral-purpose register 與邏輯函數异 下說明的指令所蚀田被士匕秸保件程式碼位兀,其被以 妒用、全嶄六抑斤使用。曰存器組76b具有相當大數目的一 對地^絕對it,一般用途暫存器是被開窗以至於它們是相 =與絕對地可尋址的。微 鐘目 暫存器堆疊78盥嗜勒较絲紅士也包括寫入移轉 80也是被開窗;;!:!轉?存器堆叠80。這些暫存器78與 入移轉暫存器堆A78 n對地與絕對地可尋址的。寫 料。與資料叠80是甩於從共享資源傳回資 26a,SDRAM控制—或隨後,來自例如SRAM控制器 信號事件將被宣或核心處理器20的各自共享資源之 、 ' 事件仲裁器7 4,其將接著改變資料是
Ml
第13頁 I221251
玉、發明說明(ίο) =或已,送出的執行緒。移轉暫存器儲存所78盘8〇 兩者疋經過-貝料路徑而被連接至執行盒(eb〇x) 。 ^照第4圖’微程式引擎資料路徑維持五級微管線 (5-stage m1Cro-pipeiine ) 82。此管 器是實現為暫存器列(而侧),心 式引擎可以元成同時發生的暫存器 地隱藏寫入運算。 貝取,、寫入’其元全 被支挺於微輕jK ζΐ 〇〇^! _ι« 支。最差狀況的條件分支潛 的指令集支援條件分 當分支決定是由前—徽^ ^間、不包括跳躍)發生於 的結果。潛伏時間頌_二式工制扣令所指定的條件程式碼 顯不於以下第1表中: 微儲存査詢 1 ΊίΓ -— -—. 暫存器妞址產生 ¥存器縱列査詢— ALU/4SL^^/cc ^ 窝回 第1表 4 7 n2 XX Μ Τ2b3 b4 m2
nl cb XX XX cb是 其中nx是預先分支微程式字組(nl設定cc,
S
第14頁 1221251
bx是後分支微程式字組以及XX 是被終止的微程 條件分支 式字組 如第1表所示,直到週期4時η 1的條件碼被設定,以及 分支決定可以被做出(在此狀況中導致分支路徑被查詢於 週期5中)。微程式引擎帶來2週期分支潛伏時間損因 為其必須終止在管道中的運算η2與Π3 (該2微程式字組直 $位於分支後),在分支路徑開始以運,bl裝滿管道之 前。假如分支不發生,沒有微程式字組被終止以及執行正
常地繼續。微程式引擎具有幾個機制以減少或消除實際 分支潛伏時間。 〃 不 八 f程式引擎支援可選擇的被延遲分支。可選擇的延遲 分支是當微程式引擎允許在分支之後的1或2微程式指令發 ^於分支生效之前(即分支的效應在時間上是被延遲地 ^ 因此,假如有用工作可以被發現而填充在分支微程式 予組之後被浪費的週期,於是分支潛伏時間可以被隱藏。 週期延遲分支顯示於第2表中,此處n2被允許執行於Cb之 後’但是於bl之前:
第15頁 1221251 五、發明說明(12) 第2表
1 2 3 4 5 6 7 8 微儲存査詢 nl Cb n2 XX bl b2 b3 b4 暫存器位址產生 Nl cb n2 XX bl b2 b3 暫存器縱列査詢 nl cb n2 XX bl b2 ALIT/拉移器/cc nl cb n2 XX bl % E7 nl cb n2 XX 2週期延遲分支顯示於第3表中,此處n2與n3兩者被允 許完成在至bl的分支之前。要注意的是2週期分支延遲僅 被允許在當條件碼被指定於在分支之前的微程式字組。 第3表 1 2 微错存査詢 nl cb 暫存器位址產生 f存器縱列査詢 ALXJ/拉移器/cc nl 窝回
微程式引擎也$控μ 條件碼是在分支之前上件碼估算。假如做出分支決定的 ^ ^ ν 、文之則设定2或者更多微程式字組,然後1週 期的么支潛伏時間可以被消㉟,因為分支決定可以在早於 — Η 第16頁 1221251 五、發明說明(13) 1週期之前被做出,如同第4表中。 第4表
1 2 3 4 1 5 6 7 8 微儲存査詢 nl n2 cb XX bl b2 b3 b4 暫存器拉址產生 nl η2 cb XX bl b2 b3 暫存器縱列査詢 nl n2 cb XX bl b2 ALTJ/拉移器/cc ί ! nl n2 cb XX bl 窝回 nl n2 cb XX
在此例子中,η 1設定條件碼以及n2不設定條件碼。因 而,分支決定可以於週期4做出(而不是週期5 ),而消除 1週期的分支潛伏時間。在第5表中的例子中,1週期分支 延遲與條件碼的提前設定被相互結合而完全地隱藏分支潛 伏時間。亦即,條件碼(cc’ s )被設定於1週期延遲分支 之前的2個週期。
第17頁 1221251 五、發明說明(14) 第5表 1 2 3 4 5 6 7 8 微儲存査詢 nl Cb n2 n3 bl b2 b3 b4 暫存器位址產生 Nl n2 cb n3 bl b2 b3 暫存器縱列査詢 nl n2 cb n3 bl b2 ALTJ/也移器/ce nl n2 cb n3 bl 寫回 nl n2 cb n3 在條件碼不能被提前設定的狀況中(它們被設定於分 土之前的微程式字組中),微程式引擎支援分支猜測而嘗 試減少1週期的暴露的保留分支潛伏時間。藉由"猜測"分 ^路徑或者循序路徑,在明確地知道哪一路徑被執行之 測二微程式定序器預先擷取被猜測路徑的丨週 假如猜 、確,1週期的分支潛伏時間被消除如第6表中所示。 1221251 五、發明說明(15) 第6表 猜測分支發生/分支發生 1 2 3 4 5 6 7 g 敗儲存査詢 nl Cb nl bl b2 b3 b4 b5 皆存器位址1生 nl cb XX bl b2 b3 b4 皆存器縱列査詢 nl cb XX bl b2 b3 LLIJ/也移器/cc nl cb XX bl b2 1 笔回 nl cb XX bl 假如微程式碼猜測分支發生不正確時, 然只有浪費1週期,如第7表中 第7表 猜測分支發生/分支不發生 微程式引擎依 1 2 3 4 5 6 7 8 微儲存査詢 nl Cb nl XX n2 n3 n4 n5 暫存器位址產生 Nl cb nl XX n2 n3 n4 暫存器縱列査詢 nl cb nl XX n2 n3 讀 ALUto 移器/cc nl cb nl XX n2 l 1 i 寫回 nl cb nl XX . S II 圓 第19頁
1221251 五、發明說明(16) 無論如何,當微程式碼猜測一個分支是不發生時,潛 伏時間損失是不同地分佈。如同在第8表中,對於猜測分 支不發生/分支是不發生時是不浪費週期。 第8表 1 2 3 4 5 6 7 8 微儲存杳詢 nl cb nl n2 n3 n4 n5 n6 暫存器也址產生 nl cb nl n2 n3 n4 n5 暫存器縱列査詢 nl cb nl n2 n3 n4 ALU/也移器/cc nl cb nl n2 n3 窝13 nl cb nl I n2
無論如何,如同在第9表中,對於猜測分支不發生/分 支是發生時有2浪費的週期。 第9表
1 2 3 4 5 6 7 8 微儲存査詢 nl Cb nl XX bl b2 b3 b4 暫存器拉址產生 nl cb XX XX bl b2 b3 暫存器縱列査詢 nl cb XX XX bl b2 ALIJ/位移器/cc nl cb XX XX bl 窝回 nl cb XX XX 第20頁 1221251 五、發明說明(17) ------- 一牛ϊϊί引擎可以結合分支猜測與1週期分支延遲而進 结果。對於猜測分支發生與1週期延遲分支/分 支疋發生是在第10表中。 第10表 1 2 3 4 5 6 7 8 微铺存査詢 nl cb n2 bl b2 b3 b4 b5 暫存器妞址產生 nl cb n2 bl b2 b3 b4 常存器縱列査詢 nl cb n2 bl b2 b3 •AI/CViiL 移器 /cc nl cb n2 bl b2 寫回 ! i 1 1 i nl cb」 | n2 _
的執行以 在以上狀況中,2週期的潛伏時間是藉由n2 及藉由正4地猜測分支方向而被隱藏。 假如微程式碼猜測不正確,如以下所示,對於 、 支發生1週期延遲分支/分支不發生,1週期的潛伏剛分 持浪費,如同在第11表中。 、間維
第21頁 1221251 五、發明說明(18) 第11表 1 2 3 4 5 6 7 8 9 微儲存査詢 nl Cb n2 XX n3 n4 n5 n6 nl 暫存器位址產生 nl cb n2 XX n3 n4 n5 n6 暫存器縱列査詢 nl cb n2 XX n3 n4 n5 ALIJ/也移器/cc nl cb n2 XX n3 n4 寫® | 1 1 i nl cb n2 XX n3 假如微程式碼正確地猜測分支不發生,然後管線循序 地流通於正常未受到擾亂的狀況。假如微程式碼不正確地 猜測分支不發生,微程式引擎再次浪費1週期的無產出執 行,如第12表中所示。 第1 2表 猜測分支不發生/分支發生。 1 2 3 4 5 6 7 8 微儲存査詢 nl cb η2 bl b2 b3 b4 b5 暫存器拉妯產生 η! cb n2 bl b2 b3 b4 暫存器縱列査詢 nl cb n2 bl b2 b3 ALIJ/拉移器/cc nl cb n2 bl b2 窝回 nl cb n2 bl 其中nx是預先分支微程式字組(nl設定cc s
第22頁 1221251
cb是條件分支 bx是後分支微程式字組 XX是被終止的微程式字組 、在跳躍指令的狀況中,招致3額外週期的潛伏時間, 因為分支位址是未知的直到跳躍位KAU級中的週期^結 尾(第13表)。 ° 第13表
1 2 3 4 6 7 8 9 微错存査詢 η! JP XX XX XX Jl J2 J3 J4 暫存器也址1生 nl JP XX XX XX jl J2 J3 暫存器縱歹ι|ϊ詢 nl JP XX XX XX jl j2 ALW妞務為fcc nl jp XX XX XX jl 寫回 n! JP XX 1 XX 1 XX
參照第5圖,微程式引擎支援不同種類的分支指令, 例如分支於條件程式碼之上。此外,微程式引擎也支援根 據處理器狀態而分支的分支指令。 如第5圖中所顯示使用br__mask欄位的格式是被使用於 具體^日疋分支。對於分支遮罩(branch mask)為15,延 伸的棚位被使玲於各種信號與狀態信號,如以下所列。
1221251 五、發明說明(20)
BR一INP—STATE 假如指定狀態名稱的狀態被設定為1時, BR 一 IMP 一 STATE指令分支。狀態是由處理器中的微程式引擎 而設定為1或0以及表示目前處理狀態。對於所有微程式引 擎’狀態名稱的狀態是可利芾的。指令可以具有以下格 式: br—inp — state[state — name,1abel# 13 opt ional_token 攔位1 abe 1 #是相對應分支至指令位址的符號標籤。攔 state—name”是狀態名稱。舉例而言,假如狀態名稱 是rec — req — avail此狀態時,表示當設定時“^找卩FIF〇 具有可利用於另一接收要求的空間。其他狀態可以被使 用。此指令被使用於質問微程式引擎的狀態以及根據該狀 態而完成分支運算。 才9 7也可以包括選項記號延遲1 (〇pti〇nal — t〇ken def = ri),其導致處理器在完成分支運算之前,執行在 此心令以後的指令。其他結構可已知原其他延遲選項記 號’例如延遲2、延遲3等等。此外分支運算可以是分支至 狀態名稱未設定,亦即被清除的。
Br—!SIGNAL BR丨^如指定信號是不被聲明的,第二分支指令 不-分IGNAL分支。假如信號是被聲明,指令清除信號並且 刀支。在最後長字組被寫入至移轉暫存器之後的兩個週
第24頁 1221251 五、發明說明(21) 期,SRAM與SDRAM信號是呈遞至微程式引擎。在信號之後 的1 週期,最後長字組被寫入。當信號被呈遞時,所有其 他長字組是有效的。當使用此指令時,程式設計師應該適 當地選擇移轉暫存器的讀取時機而確保適當的資料被讀 取。 例子: •xfer一order $xferO $xferl $xfer2 $xfer3 sram[read, $xferO, opl, 0, 2], sig—done wait#: brjsignal[sram, wait#], guess一branch nop;在讀取$xferO之前延遲1週期 alu[gpr0,0,b,$xfer0];有效資料被寫入至 gpr〇 alu[gprl,0,b,$xferl];有效資料被寫入至gprl self#: br[se1f #]. 延伸的分支欄位被使用於分支至内容調換信號。 EXT-BRANCH—TYPE ··對BRANCH_TYPE攔位的延伸攔位。 EXT—BRANCH—TYPE/=<20:17> > .defaultM EXT一BRANCH—TYPE/SRAM〉 , .validity=〈.GTR[.TIMEl, 0]> 信號可以包括如下:SRAM = 0,SDRAM = FBI = 2, INTER—THREAD = 3, AUTO—PUSH = 4, START—RECEIVE 二 5, SEQ—NUM1 = 6, SEQ—NUM2 = 7, PCI = 8, GETiAVAIL = B,PUT一 Q—AVAIL = C,REC — REQ 一 AVAIL = D,PUSH—PROTECT = E 以及PAR — ERR = F。 s
第25頁 1221251 五、發明說明(22)
每一個微程式引擎22a-22f支援四個内容的多重執行 緒執行。對此的一個原因是允許一執行緒於另一執行緒發 佈記憶體參照之後開始執行以及在作更多工作之前必須等 待直到該參照完成。此行為維持微程式引擎的有效能硬體 執行’因為記憶體潛伏時間是顯著的。不同地說明,假如 有單一執行緒直形式被支援,微程式引擎將要閒置於顯 著的週期數目而等待參照被送回以及因此降低整體計算輸 出里。多重執行緒執行允許微程式引擎隱藏記憶體潛伏時 間,藉由跨過幾個執行緒而完成有周的獨立工作。兩種同 步機制被提供以致於允許執行緒發佈SRAM 4SDRM參照, 以及接著當該參照完成時隨後地同步時間點。 一種機制疋立即同步(Immediate Synchr〇nizati〇n
在立即同步中,微程式引擎發佈參照並且立即調換出 i内容。當相對應參照被完成時,内容將被傳送信號。一 送信號,當内容調換事件發生以及是其轉折執行時, 奋將被凋換回復用於執行。因此,從單一内容的指令流 吉5 ί ·點’在發佈記憶體參照之後的微程式字組不被執行 直到參照完成。 一種機制是延遲同步(Delayed Synchronization 二在延遲同步中’微程式引擎發佈參照,以及接著繼續 仃-些其他獨立於參照的有用工作。一些時間之後,在 的ΐ作被,成之前,同步執行緒的執行流動至被發 字紐、* 1、^成:此變成是必須的。在此時刻,同步微程式 '、、被執行,〃將調換出目前執行緒並且在稍後當參照已
第26頁 1221251 五、發明說明(23) 經完成的時間調換回來,或者因為參照已經完成而繼續執 打目前執行緒。使用兩種不同發送信號的方案而 同步: 假如記憶體參照是相關連於一個移轉暫存界,來自栌 觸發執行緒的信號被產生於當相對應移轉暫存器有效位^ 被設定或清除時。舉例而言,放置資料進入 的:個漏讀取將被發送信號於當對於A的有效位元y設 參照是相關連於移轉nF〇或者接收 FIFO,代替移轉暫存器,然後信號被 SDRAM控制器26a中。每一個内交口古乂 、田爹…疋成於 於微程式引擎排表器中,因此, ^ , 的信號存在。 万木中八有一個未完成 式。-者ί ^ 2:運算範例可以用於設計微控制器微程 i被最器出以及整體記憶體頻 有多個微程式引擎代價。當系統* 不相關的資料封包之上u私式引擎執行多個執行緒於 第二個e在丨β/ 、此範例將是有意義的。 於整體微控制器:二J K:J:潛伏時間應該被最佳化 此類限制要求;一寺:行絕對地被完成。 用只能執行一個執行緒u ^敬即時執行緒將應 早微私式引擎。多個執行緒將 1221251 行緒-备因為目標是允許盡可能快速地執行單一即時執 參昭執行緒的執行將阻礙此能力。 周暫存Ϊ第6、圖’兩種存在的暫存器位址分隔是本地可使 存哭。一以及可被所有微程式引擎使用的總體可使用暫 (‘厂儲存:二途暫存器(GPRS)被實現為兩分隔儲存所 地相互插入儲存所)’其位址是-字知-接-字組為根據 所暫致於A儲存所暫存器具有1S㈣,以及B儲存 寫入雨::有1Sb=1。每一儲存所有能力完成同時讀取與 馬入兩不同字組於其儲存所内部。 町貝% 所A_,暫存器組?6b也被組織成為32個暫 ίΐΓΠΤ。,3,對於每-執行緒是相對地Ϊ 存器0〕拥執仃緒0將找尋其暫存器〇於77a之上(暫 ),執仃緒1將找尋其暫存器〇於77b ),執行緒2將找尋其暫存器〇於77 上/暫存1532 Λ 存器0於77d之上(暫存器96)。相對 疋址疋被支援以致於多個執行緒可相, 存與位置但是存取暫存器的不同窗口 ===制儲 只有使用雙埠RAMS於微程式引擎22f中,暫存器1^功^能。 與儲存所定址的使用提供必需的讀取頻寬。 疋址 這些開窗暫存器不必從内容開關至内容開關儲存次 料’以致於内容調換縱列或堆疊的正常推進與; 除。此處的内容切換具有對於從一内容改變至另一 ^ ^ 〇週期耗用時間。㈣暫存器定址劃分暫存器容的 跨過一般用途暫存器的位址寬度的窗口。相對定址斤成為 兄許存
第28頁 1221251 五、發明說明(25) 取任何相關於窗口起始點的窗口。 架構中,其中藉由提供暫存器的^對定址也被支援於此 對暫存器或許可以被任何執行緒二:址,任何-者的絕 C微程ί字組的格式,一般用途暫存謂的定址 發一於兩種谟式。兩種模式是絕對與相對。在絕 ,,暫存器位址的定址是被直接地具體指定於7位元來 /原攔位中(a6-a〇或b6-b0 ),如第14表中所示: · 第14表 7 6 5 4 3 2 1 0 A GPR: a6 0 a5 a4 a3 a2 al aO a6=0 — B GPR: b6 1 b5 b4 b3 b2 bl bO b6=0 SRAM/ASB: a6 a5 a4 0 a3 a2 al aO a6=l, a5=0, a4=〇 SDRAM: a6 a5 a4 0 a3 a2 al aO a5=0, a4=「
暫存器位址被直接地具體指定於8位元目的攔位中 dO )第 15 表: 第15表 7 6 5 4 3 2 1 0 A GPR: d7 d6 d5 D4 d3 d2 dl dO d7=0, d6=0 — B GPR : d7 d6 d5 D4 d3 d2 dl dO d7=0, d6=l SRAM/ASB: d7 d6 d5 D4 d3 d2 dl dO d7=l, d6=0, d5=〇 SDRAM: d7 i d6 d5 D4 } d3 d2 dl dO d7=l, d6=0, d5=l^
假如<a6:a5> = l,l,<b6:b5> = l,l,<d7:d6> = l,l,接
第29頁 1221251 五、發明說明(26) 著較低位元被詮釋為内容相關位址欄位(說明於下文中 )。當非相關A或B來源位址被具體指定於A,B的絕對欄位 中,只有SRAM/ASB與SDRAM位址空間的較低一半可以被定 址。實際上,讀取絕對SRAM/SDRAM裝置具有有效位址空 間;無論如何,因為此限制不應兩至目的欄位,寫入 SRAM/SDRAM依然使用完整位址空間。 在相對模式中,定址一個特定位址是在内容空間内部 由5位元來源欄位(a4-aO與b4-b0)第16表所定義的偏移 量:
第16表 7 6 5 4 3 2 1 0 A GPR: a4 0 context a3 a2 al aO a4=0 B GPR: Μ 1 context b3 b2 bl bO b4=0 SRAM/ASB: ab4 0 ab3 Context b2 bl abO ab4=l, ab3=0 SDRAM: ab4 0 ab3 Context b2 bl abO ab4=l, ab3=l 或者如同由6位元目的欄位中(d5-d0)第17表所定 義·
第30頁 1221251 五、發明說明(27) 第17表 7 6 5 4 3 2 1 0 A GPR: d5 d4 Context d3 d2 dl dO d5=0, d4=0 B GPR: d5 d4 Context d3 d2 dl dO d5=0, d4=0 SRAM/ASB: d5 d4 D3 Contex t d2 dl dO d5=l, d4=0, d3=0 SDRAM: d5 d4 d3 Contex t d2 dl dO d5=l, d4=0, d3=l 假如<d5 : d4> = l,1,則目的位址不定址於一有效暫存 器,因此,沒有目的運算元被寫回。 雖然本發明已以較佳實施例揭露如上,然其並非用以 限定本發明,任何熟習此技藝者,在不脫離本發明之精神 和範圍内5當可作更動與潤飾,因此本發明之保護範圍當 視後附之申請專利範圍所界定者為準。
第31頁
Claims (1)
- 賴六、申請專利範圍 I一種電腦程式產品,實作於一可執行的資訊載體 中,用以使_資料處理裝置執行一分支指令,當指定狀態 名稱的狀態是指定數值時,將/執行中指令串分支至位於 一指定位址上的一目標指令。 、 2·如申請專利範圍第1項所述之電腦程式產品,其中 該狀態係由處理器設定為邏輯/或者邏輯零’用以表示一 目前處理狀態。 3 ·如申請專利範圍第1項所述之電腦程式產品’其中 該狀態係由在平行處理器中的微程式引擎設定為邏輯一或 者邏輯零,用以表示一目前處理狀態。 4 ·如申請專利範圍第2項所述之電腦程式產品,其中 對於複數微程式引擎,該狀態是可利用的。 5.如申請專利範圍第1項所述之電腦程式產品,進一 步地包括: 一可程式化之選項記號,在分支至該目標指令之前, 先行執行緊隨該分支指令後的i個指令,其中i係為一、二 或三。 6 ·如申請專利範圍第1項所述之電腦程式產品,其中 該分支指令具有以下格式·· br一inp —state[state —name,label#],optional —token 〇 7.如申請專利範圍第丨項所述之電腦程式產品,其中 當該指定狀態名稱的該數值被設定至邏輯一時,執行該分 支指令,使該執行中指令串分支。第32頁 l正替換頁4 , Lt號 89mQn上 申請專利範圍 一年 曰 修正 當該8指項所述之電腦程式產品,其中 支指令。=除為邏輯零時,執行該分 該狀9離::ΐ ί利範圍第1項所述之電腦程式產品,其中 該狀:m是被派定至執行中的内容的名稱。 H.一種運作處理器的方法,包括: ”平估扣疋狀態名稱的數值丨以及 根據該指定狀雜义避^ a 成分支運算。 "、名%的該數值疋破設定或者清除,完 是由m專λ範短圍第1〇項所述之方法,其中該狀態 狀態:里“疋為邏輯-或者邏輯㈣及表示該目前處理 容以ί I 中的微程式引擎設定為邏輯-戍者.羅二 零以及表不該目前處理狀態。 次者邏輯 括:13."請專利範圍第;項所述之方法,進一步地包 刀支至具體指定作為在該指令中 位上的指令。 知戴的分支目標襴 14·如申請專利範圍第u項所述之 括: 次進一步地包 根據評估其由程式設計師所設定的 ί支運算之前,執行在該分支指令執行以在完成 令。 设的1個數目指1057.3412.PFl.ptc 第33頁曰 修正 1 5 ·如申請專利範圍第11項所述之方法,進一步地包 括: 平估由程式設計師所設定的選項記號;以及 根據選項記號是否被設定,在完成分支運算之前,執 行在該分支指令執行以後的—個指令。 執 16· 一種處理器,包括: 暫存器堆疊; t術運算單元,其連接至該暫存器堆疊;以及 „„ %式控制貯存,其儲存内容調換指令而導致該處理 器: w平估指定狀態名稱的數值;以及 士、八據該♦日疋狀態名稱的該數值是被設定或者清除,穿 成分支運算。 凡 1T * 理芎θ且古申請專利範圍第16項所述之處理器,其中該處 程姑暫存器堆疊的平行處理器,算術運算單元是微 的一部分,以及該處理器進一步地包括: 暫存器堆疊; 存,以^ ϊ Ϊ暫存器堆疊的算術運算單元與程式控制貯 或者邏輯零狀態由微程式引擎中的一者設定為邏輯-18 乂及表不該目前處理狀態。 包括:申%專利範圍第1 6項所述之處理器,進一步地 1 9·^目錄攔位,其具體指定為在該指令中的標籤。 子在於電腦可讀取媒體上而用以導致處理器1觀 ;年7月曰丨案號89117906 曰 修正 六、申請專利範圍 完成作用的電腦程式產品,包括指令而導致處理器: 評估指定狀態名稱的數值;以及 根據該指定狀態名稱的該數值是被設定或者清除,完 成分支運算。 2 0.如申請專利範圍第1 9項所述之產品,其中假如該 指定狀態名稱的該數值是被設定為邏輯一時,完成分支運 算的指令執行分支。1057-3412-PFl.ptc 第35頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15196199P | 1999-09-01 | 1999-09-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
TWI221251B true TWI221251B (en) | 2004-09-21 |
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 (5)
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 |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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) |
Families Citing this family (39)
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芯片及服务器 |
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
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
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI221251B (en) | Branch instruction for processor | |
US6668317B1 (en) | Microengine for parallel processor architecture | |
US6427196B1 (en) | SRAM controller for parallel processor architecture including address and command queue and arbiter | |
US6606704B1 (en) | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode | |
CA2388740C (en) | Sdram controller for parallel processor architecture | |
US7743235B2 (en) | Processor having a dedicated hash unit integrated within | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
WO2001016703A1 (en) | Instruction for multithreaded parallel processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |