TWI220732B - Local register instruction for micro engine used in multithreaded parallel processor architecture - Google Patents
Local register instruction for micro engine used in multithreaded parallel processor architecture Download PDFInfo
- Publication number
- TWI220732B TWI220732B TW089117901A TW89117901A TWI220732B TW I220732 B TWI220732 B TW I220732B TW 089117901 A TW089117901 A TW 089117901A TW 89117901 A TW89117901 A TW 89117901A TW I220732 B TWI220732 B TW I220732B
- Authority
- TW
- Taiwan
- Prior art keywords
- scope
- bits
- item
- patent application
- bit mask
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 13
- 239000000463 material Substances 0.000 claims description 2
- 230000000717 retained effect Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 7
- 238000004140 cleaning Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 229910052797 bismuth Inorganic materials 0.000 description 2
- JCXGWMGPZLAOME-UHFFFAOYSA-N bismuth atom Chemical compound [Bi] JCXGWMGPZLAOME-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000282988 Capreolus Species 0.000 description 1
- 206010011469 Crying Diseases 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string 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/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)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
- Image Processing (AREA)
- Stored Programmes (AREA)
- Control Of Transmission Device (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
- Harvester Elements (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Document Processing Apparatus (AREA)
Description
1220732 五、發明說明(1) 【發明領域】 本發明係有關於電腦虛理哭、& _ ^ ^ , β敬0H自處理态的記憶體指令,且特別有 關於與微釭式引擎關聯的本地暫存器於八 【習知技 平行 效率的方 多程式的 著在同一 工作循序 成於專業 完成所有 時地與獨 合適於應 術說明】 之一種南 電腦中許 平行意味 其中所有 中工作完 供母一者 工作站同 些問題是 m 處理是計算程序中同日專重 式。與循序處ίΠ”資訊ί理 同時執行。就平行處理 過-項事情。不像串列i例 工作站,具有平行處理,十:機其 工作的此力。亦即,通常 = 立地卫作於問題的相同,些 用平行處理而獲得解答,ί^素°某 ί讓本發明之上述和其他目的、特η a, ^ 文特舉較佳實施例,並配人m ^ ^ k點迠更明 況明如下·· 口所附圖式,作詳細 【圖式簡單說明】 第1圖係使用運用 的方塊圖。 的執行緒處理器之通訊系 第2圖係第1圖的運用硬體 。 夕執仃緒處理器的詳 塊圖 統 細方
1220732 五、發明說明(2) 第3圖係使用於第1圖與第2圖的運用硬體的多執行# 處理器中的微程式引擎功能單元的方塊圖。 執叮、崎 第4圖係第3圖的微程式引擎中的管線的方塊 圖第5圖係顯不用於算術邏輯*元指令集的格式°的方塊 在不同圖不中的相同性質參考符號標示相同性質裝 置。 【符號說明】 1 0〜通訊系統;1 2〜運用硬體的多執行緒處理哭; 13a〜10/100 BaseT八進位媒體存取控制;13b〜十^斧位 元乙太網路裝置;14〜PCI匯流排;16〜記憶體系統;丨仏 〜同步動態隨機存取記憶體(SDRAM) ;16b〜靜態隨機存 取記憶體(SRAM ); 1 6c〜快閃唯讀記憶體;丨8〜第二匯 流排,2 0〜核心處理器;2 2〜功能微程式引擎;2 2 a - 2 2 f 〜微程式引擎;24〜PCI匯流排界面;26a〜同步動態隨機 存取記憶體(SDRAM )控制器;26b〜靜態隨機存取記憶體 (SRAM )控制器;2 7〜便條式記憶體;2 8〜先進先出匯流
排(FIFO Bus: FBUS)界面;3〇〜先進系統匯流排(ASB )轉譯Is,3 2〜内部核心處理器匯流排;3 4〜非公開匯流 排,38〜記憶體匯流排;5 〇〜精簡指令集運算(R丨sc )核 心;52〜十六仟位元組指令快取(16 — kil〇byte instruction cache) ;54〜八仟位元組資料快取 (8-kilobyte data cache) ; 56〜預先擷取資料串緩衝
1220732 五、發明說明(3) 區;70〜控制儲存;72〜控制器邏輯;72a-72d〜程式計 數器(Program Counter : PC )單元;73〜指令解碼器; 74〜内容事件切換邏輯;76〜執行盒資料路徑;76a〜算 術邏輯單元(arithmetic logic uni t : ALU ); 76b-- 般用途暫存器組(general—purp〇se register set) ;78 〜寫入移轉暫存器堆疊;8 〇〜讀取移轉暫存器堆疊; 【較佳實施例的詳細說明】 y芩妝第1圖,通訊系統1 0包括平行,運用硬體的多執 =處理器12。運用硬體的多執行緒處理器12被連接至例 1;。掛匯/排、14的匯流排,記憶體系統16以及第二匯流排 1 〇是特^丨I = Ϊ分割成為平行子工作或函數的工作,系統 =地:幫助的。特別,也’對於 間V向的工作,運用硬體的吝 , 的。運用额碑的夕袖/ 執仃緒處理器12是有幫助 每-微程式“2夕2具;有多微程式引擎22 ’ 行緒可以被同時地啟動與獨立:活作多硬體控制執 中央控制器20協助裝载用二^ 12也包括中央控制器2〇, 的其他資源之微程式碼控制,用硬體的多執行緒處理器12 數,例如管理協定,異^以及完成其他通用電腦類型函 中微程式引擎22完成二^丄對於封包處理的額外支援,其 況。在—實施例中,處理器Μ =、、、田處理,如同在邊界狀 (Arm是英國ΑΜ公司的 ^ 是運用Strong ArmR的架構 " 。通用型微處理器2 0具有作 1220732
業系統。經過作業系統,處理器2 〇可以呼叫函數以運算於 微程式引擎22a-22f。處理器20可以使用任何支援的作"^業; 系統,最好是即時作業系統。對於實現為Str〇ng Arm架構 的核心處理器 2 0 ’ 例如 M i c r 〇 s 〇 f t - N T r e a 1 -1 i m e, VXWorks與// CUS,可於網際網路得到的免費軟體作業系 統,之類的作業系統可以被使用。 ” 每一個的功能微程式引擎(微程式引擎)22a — 22f維 持硬體中的程式計數器與關連於程式計數器的狀態。實際 上,當在任何時間只有一個是真正地運算,對應的一些^ 行緒集合可以被同時地啟動於每一個的微程式引擎 一 22a-22f 。 在一實施例中,顯示出六個微程式引擎22a-22f。每 一微程式引擎2 2a-2 2 f具有用於處理四個硬體執行緒的能 力。六個微程式引擎22a-22f與包括記憶體系統16及匯流 排界=24與28的共享資源一起運算。記憶體系統16包括同 步動恶Ik機存取記憶體(SDRAM)控制器2 6a與靜態隨機存 取ό己fe、體(SRAM )控制器26b。SDRAM記憶體1 6a與SDRAM控 制器26a通常被使用於處理大量的資料,例如,來自網路& 封包的網路費用的處理。SRAM控制器26b與8]?0記憶體i6b
被使用在電腦系統的連線作業實現中用於低潛伏時間,快 速存取工作,例如,存取查詢表袼,用於核心處理器20的 記憶體等等。 基於貢料的特性,六微程式引擎22a_22f存取sdram 16a或SRAM 16b。因此,低潛伏時間,低頻寬資料被儲存
1057-3408-PF.ptd 第8頁 1220732 五、發明說明(5) 於SRAM 1 6b中以及從SRAM 1 6b中被擷取,反之對於潛伏時 間不重要的高頻寬資料被儲存於SDRAM 16a中以及從SDRAM 16a中被擷取。微程式引擎22a-22f可以執行記憶體參考指 令至SDRAM控制器26a或SRAM控制器26b。 硬體多執行緒的優點可以由SRAM或SDRAM記憶體存取 所解釋。舉例而言,來自微程式引擎由執行緒〇所要求的 SRAM存取將導致SRAM控制器26b開始存取至SRAM記憶體 1 6b。SRAM控制器26b控制對於SRAM匯流排的仲裁,存取 SRAM 16b,從SRAM 16b擷取資料,以及送回資料至要求的 微程式引擎22a-22f。在SRAM存取期間,假如微程式引 擎,例如微程式引擎22a,僅具有可以運算的單一執行 緒’那微程式引擎將是暫停活動直到資料&SRAM 1 6b被送 回。藉由在每一微程式引擎22a-22f内部使用硬體内容調 換’硬體内容調換賦予其他内容具有唯一程式計數器以執 行於該相同微程式引擎中。因此,在另一執行緒中,例如 執行緒1可以工作當第一執行緒,亦即,執行緒〇是等待讀 取資料的送回。在執行期間,執行緒1可以存取SDRAM記憶 體16a。當執行緒1運算於SDRAM單元16&上,以及執行緒〇 是運算於SRAM單元i6b上時,新執行緒,例如執行緒2現在 可以運算於微程式引擎22a中。執行緒2可以運算於某些量 ,時間直到其需要存取記憶體或者完成一些長潛伏時間運 =,例如做出至匯流排界面的存取。因此,同時地,處理 為12可以具有由一微程式引擎22&所完成或運算於其上的 全部匯流排運算,SRAM運算以&sdram運算以及具有更多
1220732 五、發明說明(6) 執行緒適用於處理資料路徑中的更多工作。 绪可調換也同步工作的完成。舉例而…執行 :p I 資源,例如sram i6b。當個別功能單 0士 H自微程;i丨擎執行緒内容的-者所要求的工作 s^ramU別功能早兀的每一個,例如FBUS界面28, ΓΓ/Λ126: ^SRAM ^^ ^ ^ ^ 門龄:田u輊式引擎接收旗標時,微程式引擎可以決定 執行=。對於運用硬體的多執行緒處㈣12之應 網路處理器。作為網路處理器,運用硬體的多執 灯、’’处ί |§ 1 2接合類似媒體存取控制器裝置的網路裝置, 例如1〇/1〇〇88861'八進位媒辨六^7_^+^1。1 女網玖壯罢1 QU π木 ,、體存取控制1 3a或十億位元乙 1 ^ b。通吊,作為網路處理器,運用硬體的多 者處理器12可以接合至任何類型的通訊裝置或界面, ^收/傳出大量資料。工作於電腦系統連線作業應用中 的通訊糸統1〇可以接收來自裝置13a與13b的網路封包並且 =行f式處理那些封包。具有運用硬體的多執行緒處理 器1 2,母一網路封包可以獨立地被處理。 _ 對於處理器1 2使用的另一例子是用於後稿語言 (Postscript )處理器的印刷引擎或者作為用於儲存子 統的處理器’例如容錯式獨立磁碟陣列(Redundant ’、
Anray of Independent Disk - RAID),為 了故障容許盥 效能而使用兩個或者更多磁碟機相結合的一種磁碟裝置:員 型。一另外應用是作為相配引擎。例如在安全企業^^ 子交易的出現要求電子相配引擎的使用而比對在買方盥矣
1220732 五、發明說明(7) 方之間的訂單。利用系統丨〇,這些與其他平行類型的工作 可以被完成。 處理斋1 2包括連接處理器至第二匯流排1 8的匯流排界 面28。在一實施例中,匯流排界面28連接處理器12至⑽“ (先進先出匯流排FIFO BUS ) 18。FBUS界面28是承擔控制 與接合處理器12至FBUS 18的責任。FBUS 18是六十四位元 寬先進先出匯流排,使用以接合媒體存取控制器(MAC ) 裝置,例如10/100 Base T八進位媒體存取控制13a。 處理器12包括第二界面,例如pci匯流排界面24,其 連接存在於P C I匯流排1 4上的其他系統組件至處理器1 2。 PC I匯流排界面24提供高速資料路徑2 4a至記憶體1 6,例如 SDRAM記憶體1 6a,經由PCI匯流排界面24,資料可以從 SDRAM 1 6a經過PCI匯流排14快速地被移動,憑藉直接記憶 體存取(direct memory access - DMA)移轉。運用硬體 的多執行緒處理器12可以使用DMA通道所以假如DMA移轉的 目標是忙碌的,另一的DMA通道可以取得於PCI匯流排上而 傳送資訊至另一目標以維持高處理器丨2效能。此外,Pc j 匯流排界面24支援目標與主要運算。目標運算是在匯流排 14上的從動裝置經過讀取與寫入而存取SDRAM的運算,其 服務作為對於目標運算的從動裝置。在主要運算中,處理 器核心20直接地送出資料至PCI界面24或者從ρ(η界面24直 接地接收資料。 每一功能單元22被連接至一或多個内部匯流排。如以 下所說明,内部匯流排是雙數,三十二位元匯流排(換言
1220732 五、發明說明(8) 之’ 一匯流排用於讀取以及另一匯流骄用於冩八)。思爪 硬體的多執行緒處理|§ 1 2也是被構成以致在處理器1 2中的 内部匯流排的頻寬總和超過内部匯流排連接至處理器丨2的 頻見。處理器1 2包括内部核心處理器匯流排3 2,例如先進 系統匯流排(ASB ),此匯流排連接處理器核心至記憶體 控制器26a、2 6b以及至說明於下文中的先進系統匯流排 (A SB )轉譯器3 0。ASB匯流排是所謂的先進微控制器匯流 排架構(Advanced Microcontroller Bus Architecture: AMBA )的子集合,AMBA是與Strong Arm處理器核心20 —起 被使用。AMBA是一種開放標準、晶片上匯流排規格,其詳 細說明用以組成系統晶片(System 一 〇n — chip: s〇c )的功 能^塊之管理與互相連接。處理器1 2也包括連接微程式引 擎單元22至SRAM控制器26b、ASB轉譯器30與FBUS界面28的 非公開匯流排34 (private bus )。記憶體匯流排”連 記憶體控制器26a、26b至匯流排界面24與28以及記 統16包括被使用於開機運算等等的快閃唯讀記憶體n,、 參照第2圖,每一個的微程式引擎22a —22f包 標:”被運算於其上的可利用執行緒之仲裁器。來 耘式引擎22a-22f的任何執行緒可以存取同步動能 / 取記憶體(SDRAM)控制器26a、靜態 “、子 (SRAM)控制器26b或者先進先出匯流排(fbu ^體 28。每-記憶體控制器26a㈣b包括為了儲存I解= 記憶體f考要求之佇列。佇列不是維持記憶體參考的、等、 級,就疋安排記憶體參考以最佳化記憶體頻寬。舉例而
1220732 五、發明說明(9) 言,假如執行緒〇沒有對於執行緒1的依賴或關聯,沒有理 由執行緒1與執行緒〇不能順序紊亂地完成它們對於81^Μ單 元16b的記憶體參考。微程式引擎22a — 22f發佈記憶體參考 要求至記憶體控制器26a與26b。微程式弓丨擎22a-22f使足 夠的a己憶體芩考運算充滿記憶體子系統26a與26匕以致記 憶體子系統26a與26b變成對於處理器12運算的瓶頸。 假如記憶體系統1 6是被本質獨立的記憶體要求所充 滿、處理器1 2可以元成圮憶體參考排序。記憶體參考排序 ,進可達到的記憶體頻寬。% τ文所說明,記憶體參考排 序減少無效時間或者與SRAM 16b的存取一起發生的磁泡。 具有至SRAM 16b的記憶體參考,在讀取與寫入之間切換 流方向於信號線上製造磁泡或無效時間,其用於等待電浐 穩定於連接SRAM 16b與SRAM控制器26b的導體上。 爪 狀離,是二.驅動匯流排上電流的驅動器需要穩定於改變 之别。因此,一讀取跟著一寫入的重複週期可以 Π =致:!允許處理器12安排對於記憶體 被使用於最“在管::這” 大值可利用頻寬。參考排序協助維持内= 先2的隱匿。具體地,假如記憶體:至另: 可數儲存所上時,記憶體控制器可:運算於 存所。假如記憶體參考交替於奇數數:
1057-3408-PF-ptd 第13頁 1220732
ίϊ:是:能的。藉由排序記憶體參考而交替存取至相反 存斤,處理器1 2改進SDRAM頻寬。此外,其他最佳化可 以被使用。舉例而纟,可以被合併的運算之合併最佳化被 合併於記憶體存取之前,藉由檢查位址記憶體的已開啟分 頁不被再次開啟之開啟分頁最佳化,連接,如下文所將說 明’與更新機構可以被利用。
在用於標示何時服務是被授權的中斷旗標之外, f面2 8支援對於MAC裝置支援的每一埠的傳送與接收旗 標。FBUS界面28也包括完成從FBUS進來封包的標頭處理之 控制器28a。控制器28a設法得到封包標頭並且完成kSRAM 1 6b中的微程式可編程序的來源/終點/協定雜湊查詢 (Hashed 1 〇〇kup )(使用於位址平滑)。假如雜湊不能 成功地解答,封包標頭被送至處理器核心2〇用於其他處 理。FBUS界面28支援以下内部資料異動: FBUS單元(共享匯流排SRAM ) 至/從微程式引擎。 FBUS單元(經由非公開匯流排)從SDRAM單元寫入 FBUS單元(經由MBUS ) 讀取至SDRAM。 F B U S 1 8是一標準工業匯流排並且包括一資料匯流 排,例如用於位址與讀取/寫入的六十四位元寬與旁波帶 控制。使用一系列的輸入與輸出FIFOs 29a-29b,FBUS界 面28提供輸入大量資料的能力。來自FIFOs 29a-29b,微 程式引擎22a-22f從接收FIFO擷取資料或者命令SDRAM控制 器26a從接收FIFO移動資料進入FBUS界面28,在接收FIFO 中資料是來自位於匯流排1 8上的裝置。經由直接記憶體存
1057-3408-PF.ptd 第14頁 1220732 五、發明說明(π) 取’資料可以被送出經過記憶體控制器26a至SDRAM記憶體 16a。相似地,經由FBUS界面28,微程式引擎可以從SDRAM 26a移動資料至界面28,輸出至FBUS 18。 資料函數是被分配於微程式引擎22之中。對SDRAM 26a、SRAM 26b與FBUS 28的連線是經由命令要求。命令要 求可以是記憶體要求或者FBUS要求。例如,命令要求可以 從位於微程式引擎22a中的暫存器移動資料至共享資源, 例如SDRAM位置、SRAM位置,快閃記憶體或者一些MAC位 址。命令被送出至每一功能單元與共享資源。然而,共享 貧源不需要維持資料的局部緩衝。更確切地說,共享資源 存取位於微程式引擎22a-22f之中的已分配資料。這賦予 微程式引擎22a-22f具有局部存取資料的能力而不僅仲裁 在匯流排上的存取與對於匯流排的風險競爭。具有此特 色’用於等待資料内部至微程式引擎22a-22f的拖延是雯 週期。 7
&例如ASB匯流排30、SRAM匯流排34與SDRAM匯流排38的 貝料匯流排是有足夠頻寬而連接例如記憶體控制器2 6a與 26b的這些共享資源以致沒有内部的瓶頸。為了避免瓶” 頦處理器1 2具有頻寬需求,其中每一功能單元供給至少 兩倍的内部匯流排最大頻寬。舉例而言,SDRAM l “可以 運,六十四位元寬度匯流排於八十三百萬赫兹。SRM資料 匯&排可以具有分開的讀取與寫入匯流排 轉166百萬赫兹的三十二位元寬度讀取匯流排以及一 ^_運 十六百萬赫兹的三十二位元寬度寫入匯流排。亦即,在本
1220732 五、發明說明(12) 質上’六十四位元運轉於一百六十六百萬赫茲是實際上兩 倍SDRAM的頻寬。
核心處理器2 0也可以存取共享資源。核心處理器2 〇具 有經由匯流排32至SDRAM控制器26a、至匯流排界面24與至 SRAM控制器26b。然而,為了存取微程式引擎22a_22f以及 移轉位於任何微程式引擎2 2 a - 2 2 f中的暫存器,核心處理 為2 0經由A S B轉澤器3 0跨過匯流排3 4而存取微程式引擎 22a-22f °ASB轉譯器30可以實際上存在於FBUS界面28,但 是邏輯上是有區別的。ASB轉譯器30完成在FBUS微程式引 擎移轉暫存器位置與核心處理器位址(亦即ASB匯流排) 之間的位址轉譯以便心處理器2 〇可以存取屬於微程式引擎 22a-22f的暫存器。 雖然微程式引擎22a-22f可以使用暫存器組以交換資 料如以下所說明’便條式記憶體2 7也被提供以允許微程式 引擎2 2 a - 2 2 f寫出資料至記憶體而作為其他微程式引擎讀 取。便條式記憶體2 7是連接至匯流排3 4。 處理器核心2 0包括精簡指令集運算(R丨% )核心5 〇, 精簡指令集運算(RI SC )核心5 〇實現於五級管線而完成一 運算元或兩運算元的單一週期位移於單一週期中,提供乘 法支援與二十二位元桶形位移支援。此R I SC核心5 0是標準 _ Strong ArmR的架構,但是為了效能原因而被實現於五級 管線。處理器核心2 0也包括十六仟位元組指令快取 (16-kilobyte instruction cache ) 52,八仔位元組資 料快取(8-kilobyte data cache) 54與預先擷取資料串
1057-3408-?F.ptd 第16頁 1220732 五、發明說明(13) 缓衝區(prefetch stream buffer) 56。核心處理器20完 成算術運算平行於記憶體寫入與指令擷取。核心處理器2 0 經由ARM所定義的ASB匯流排與其他功能單元接合。ASB匯 流排是三十二位元雙向匯流排3 2。 參照第3圖,微程式引擎2 2 a - 2 2 f的範例,例如微程式 引擎22f,被顯示。微程式引擎22f包括控制儲存70,在一 實現中,其包括1 024個三十二位元的字組之隨機存取記憶 體(RAM ) 。RAM儲存微程式(未顯示)。微程式是可由核 心處理器20所載入。微程式引擎22f也包括控制器邏輯 72。控制器邏輯72包括指令解碼器73與程式計數器 (Program Counter : PC )單元7 2a-72d。四個微程式計數 器72a-72d是保留於硬體中。微程式引擎22f也包括内容事 件切換邏輯74。内容事件邏輯74接收來自每一個共享資源 的訊息(例如,SEQ—#_EVENT—RESPONSE ; FBI_EVENT—RESPONSE ; SRAM—EVENT—RESPONSE ; SDRAM —EVENT —RESPONSE ;與ASB —EVENT一RESPONSE ),共享 資源例如S R A M 2 6 a ’ S D R A M 2 6 b,或處理器核心2 0,控制 與狀態暫存器等等。這些訊息提供被要求的功能是否已經 完成的資訊。基於由執行緒所要求的功能是否已經完成與 用信號通知完成,執行緒需要等待該完成信號,以及假如 執行緒被賦予運算的能力,接著執行緒被放置於可適用執 行緒名冊中(未顯示)。微程式引擎22f可以具有四個可 適用執行緒的最大值。 除了局部至執行中的執行緒的事件信號之外,微程式
1 057-3408-PF·p t d 第17頁
1220732 五、發明說明(14) ' ---- ^擎2 2 a 2 2 f利用總體的信號發送狀態。具有信號發送狀 態’執行中的執行緒可以播送信號狀態至所有的微程式引 擎22a 22ί ’例如接收要求可適用(Receive ReqUest Available^ RRa )信號,在微程式引擎22a — 22f中的任何 與所有ί行緒可以分支於這些信號發送狀態上。這些信穿 發迗狀恶可以被使用以決定資源的可適用性或者是否資源" 是到期而可以服務。 、"、 谷事件邏輯74具有對於四個執行緒的仲裁。在一 tUii循環賽機制。其他技術可以被使用,包括ΐ 排序或者權重公正排序。微程式引擎22f也包括執 益貢料路徑76 (execution b〇x data path),執行各次 ==括算術邏輯單元ι〇〜二.貝 ALU.) 76a 與一般用途暫存器組(general-purpose . rmer set)76b。alu ?6a如同移位函數般地完成瞀術 與邏輯絲。暫存器組76b具有 :成:術 在貝細例中,在第一儲存所Bank A中有六+ 加 一般用途暫存器以及六十四個在一 般用途暫存器是被開窗以至於它= = Μ。- 址的。 、匕們疋相對地與絕對地可尋 務鑪t ί U $22f & 移轉暫存器堆疊78盘冷取 移轉暫存器堆疊80。這些暫存器78與8〇也一取 它們是相對地與絕對地可尋址的。 4自以至於 是其中寫入資料至資源是被找出。=轉=子器堆㈣ 器堆疊8G是用於從共享資源傳回資料。3移轉暫存 ,、貝科到達同時發
1057-3408-PF.ptd 第18頁
麵 1220732 五、發明說明(15) __ *裁器…其將接著;;以::用事::^供:事件 行緒。移轉暫存器儲存所78與80兩者是你 的執 連接至執行盒(ΕΒ0Χ) 76。在一垂γ如由貝枓路徑而被 哭且古丄丄.. 貝她例中’讀取移轉暫存 ;;ί:十四個暫存器以及寫入移轉暫存器具有六十:: (5二第:圖’微程式引擎資料路徑維持五級微管線 元讀取82,aL移位/=的形成…,從暫存器列的運算 寫回82e。精由提供寫回資料旁路進入ALU/移仿I 的 及錯由假設暫存器是實現為暫凡,以 式引擎22f可以完成同時 J (而±非_),微程 完全地隱藏寫入運算。的暫存…取與寫入,其 SDRAM界面26 a提供一
取上,其標示是否同位錯5γ ΐ要求^程式引擎於讀 擎微程式碼是作為者科户斗$ ^於項取要求上。微程式引 SDRAM 1 6a读ί=Λ田^主式引擎使用任何傳回資料時檢查 定,於其Λ八=票。根據檢查旗標,假如它是被設 16a被賦予檢杳7的&、作清除它。同位旗標只有當SDRAM 送出。微程式—引二二 要求者。因此,彳 早兀1 4疋報告同位錯誤的僅有 護,微程式弓|擎。二”或FIF0 18需要同位保 μ要求。微程式引擎22a-22f支援狀
1057-3408-PF.ptd 第19頁 1220732 五、發明說明(16) 況分支。 參弟5圖’顯不用於曾仲、溫 程式引擎2 2支援包含於指、二邏:二 與算術運算而完成ALU運算於、一或、曰扣令集包括邏輯 至終點暫存H,以及根據運曾^兩^元並且放置結果 踽。扁肉六裀鉍舴叫 /運斤的結果而更新所有ALU狀況 馬在内合调換期間,狀況碼是遺失的。 電腦指令集也包括本地暫存器指令。特別是, LD—FIELD 與 LD_FIELD W CLR沪八钽似三 八士你认士仏紅士 Γ 和令提供藉由超利用在一個指 知曰™甘二:用以改變-個或者個別位元 τ ^ ητητ 我置更特別地,LD FIELD與 LD —FIELD W CLR指令載入為* & &上 — ^ —— 戰入在本地暫存器内部具有另一運算 元的位移數值之一個或者更彡- 7 ^ , . 可灵夕位凡組。在未被載入的位元 組中的貧料維持不變或I姑、、主^ ,命/ 被清除qLD-field完成讀取-修 上入於,取/移暫存器之上。LD-FIELD-W-CLR完成寫 入;”、,入移暫存15之上。根據形成的結果,L〇AD cc載 入所有ALU碼。 —私 低欄位指令袼式是: id_fieid[dest_reg, byte—Id—enables, source—op opt—shf—Cntl],選項—記號(〇pti〇nal—t〇ken) 具有清除的低攔位指令格式是: ld_field_w_clr[dest_reg, byte_ld_enables, source_op,opt_shf —cntl],選項記號 每一攔位的說明被描述於下。 ” dest — reg”攔位代表用於保持指令結果的一個絕對或
1220732 五、發明說明(17) ' -- 者内容相關移轉暫存器或是通用型暫存哭(GpR )。 ” byk Jd —enabl es”欄位代表具體指定哪些位元組被指令 所影響的4位元遮罩。每一指定你—# . ^ 扣疋位7L使得目的運算元長字 組的對應位元組被載入或者清降 人可/月除。在此遮罩中必須至少有 一指定位元。舉例而言,0 1 0 1截 R士 t从A - 4处杜π l 栽入第一與第三位元組’同 日守其他位70組維持不改變。 ’’source—。〆欄位代表内容相 存器必須㈣目的暫存ϋ的相㈣存所之/純 "opt—shf-cnu”攔位代表位移或者轉動 琴 如下所示的語法。 扫什杰内奋從
1220732 五 、發明說明(18) 運算 說明 «η «indirect »n » indirect «rot n »rot n 向左位移n位元,此處至31。 向左位移由先前指令的A運算元的較 低5位元所指定的數量Q A運算元的 較低5位元必須是〔32_n〕,此處η 是所要向左位移的數量^ 向右位移η位元,此處n==i至31。 向右位移由先前指令的A運算元的較 低5位元所指定的數量。 向左轉動η位元,此處n==l至31。 向右轉動η位元,此處η==ι至31。 ❿ 程式設計師可以提供被歸類作為”選項—記號 (optional —token ) π的非必須欄位。當選項—記號欄位包 含’’ load —cc’’參數時,ALU狀況碼可以根據形成的結果而被 載入。 舉例而言,假如dest —op = OxAABBCCDD以及 src —ορ = 0χ1 1 223344,然後Id —field[dest —〇p,0101, src_op,<<rot4]導致dest—op:AA23CC41。 在另一例子中,Id —field[dest_reg,
1057-3408-PF-ptd 第22頁 1220732 五、發明說明(19) byteJd —enables,source — reg,shift — cntl],load —cc f許來源暫存器被位移,以及接著被位移資料的一些位元 校準部分被載入至目的暫存器。 對於shift_cntl運算元,相同選項存在,如同 aju —shf運算碼具有下列例外·· })零值位移數量是被允 曰午,2 )假如中間資料被使用於替代來源暫存器,只有向 左位移或者轉動八位元的倍數是被允許。
byte一Id一enables欄位包括4位元;每一指定位元使得 目的長字組的對應位元被載入為被位移來源運算元的對應 位元。也提到在此實例中load —cc記號被加入,用以且體。 指定此微程式字組將指定ALU狀況碼。注意逗號被附加於 運异碼記號的尾端,用以暗示組譯器,以下記號是相 J式,組:-部份。一般而言,微程式字組包括尾 者更多限制記號的i運算碼,除了最後的記號之 J ;制記號:逗號作結尾。另言之,在記號之後缺少逼號時 表:微程:字組的結尾以及另一者的開始。 : 程式字組的記號可以出現在許多行之上。纟此例子中门: =記號,1 oad — cc表示ALU狀況碼應該根據au結果而被指乂 露如上,然其並非用以 在不脫離本發明之精神 此本發明之保護範圍♦ 準。 '
雖然本發明已以較佳實施例揭 限定本發明,任何熟習此技藝者, 和範圍内,當可作更動與潤飾,因 視後附之申请專利範圍所界定者為
Claims (1)
- 用以麥一 程式產品,實作於一可執行的資訊載體中, 敬1 、料處理裝置執行一指令,從關連於複數微程式 ν 移轉暫存器内部,載入一或複數個具有一運 #元位移數值的資料位元組,以及保留未被載入的資料位 元組。 、 2·如申請專利範圍第1項所述之電腦程式產品,進一 步地包括: 一位疋遮罩,具體指定資料的哪一或者更多位元组被 影響。 、 3 ·如申請專利範圍第2項所述之電腦程式產品,其中 5玄位元遮罩表明向左位移η位元,此處η是從一至三十一之 間的數目。 4 ·如申請專利範圍第2項所述之電腦程式產品,其中 該位元遮罩表明向左位移由先前指令的該運算元的較低五 位元所具體指定的數量,此處該較低五位元是從一至三十 一之間的數目。 5 ·如申請專利範圍第2項所述之電腦程式產品,其中 為位元遮罩表明向右位移η位元’此處η是從一至三十一之 間的數目。 6 ·如申請專利範圍第2項所述之電腦程式產品,其中 _ 該位元遮罩表明向右位移由先前指令的該運算元的較低五 位元所具體指定的數量,此處該較低五位元是從一至三十 一之間的數目。 7 ·如申請專利範圍第2項所述之電腦程式產品,其中1057-3408-PFl.ptc 第24頁 1220732 案號 89117901六、申請專利範圍 違位元遮罩表明向左轉動η位元, 間的數目。 8·如申請專利範圍第2項所述 該位元遮罩表明向右轉動η位元,程式產品,其中 間的數目。 此處η疋從一至三十一之 9 ·如申請專利範圍第1項所述之電腦程式產品,一 步地包括: σα退一 一選項記號’由程式設計師所設定,並且根據一得 結果具體指定以設定算術邏輯單元(ALU )狀況碼。于1 2 3 I 〇 · —種運作處理器的方法,包括: 對於被位移數值的一運算元,載入一或者更多一 的貝料至關連複數微程式引擎的一者之暫存器内部;以及 〉月除未被載入的資料位元組。 II ·如申請專利範圍第1 〇項所述之方法,進一步地包 、, 提供位元遮罩,位元遮罩具體指定在暫存器内部的資 料的哪一或者更多位元組被影響。 貝 12·如申請專利範圍第11項所述之方法,其中該位元 遮罩表明向左位移η位元,此處η是從一至三十一之間的7°數1057-3408-PFl.ptc 第25頁 1 3 ·如申請專利範圍第丨丨項所述之方法,其中該位元 2 遮罩表明向左位移由先前指令的該運算元的較低五位元所 3 具體指定的數量,此處該較低五位元疋k 一至三十一之門 1220732 修正 _案號 89117901 六、申請專利範圍 1 4.如申請專利範圍第11項所述之方法,其中該位元 遮罩表明向右位移η位元,此處η是從一至三Η--之間的數 目。 1 5.如申請專利範圍第11項所述之方法,其中該位元 遮罩表明向右位移由先前指令的該運算元的較低五位元所 具體指定的數量,此處該較低五位元是從一至三十一之間 的數目。 1 6.如申請專利範圍第11項所述之方法,其中該位元 遮罩表明向左轉動η位元,此處η是從一至三十一之間的數目。 1 7.如申請專利範圍第1 1項所述之方法,其中該位元 遮罩表明向右轉動η位元,此處η是從一至三十一之間的數 目。 1 8.如申請專利範圍第1 0項所述之方法,進一步地包 括: 一選項記號,由程式設計師所設定,並且根據該得到 結果具體指定以設定算術邏輯单元(A L U )狀況碼。 1 9. 一種運作處理器的方法,包括: 對於被位移數值的一運算元,載入一或者更多位元組 的資料至關連複數微程式引擎的一者之暫存器内部;以及 保留未被載入的資料位元組。 2 0.如申請專利範圍第1 9項所述之方法,進一步地包 括: 提供位元遮罩,位元遮罩具體指定在暫存器内部的資1057-3408-PFl.ptc 第26頁 1220732 修正 _案號 89117901 六、申請專利範圍 料的哪一或者更多位元組被影響。 2 1.如申請專利範圍第2 0項所述之方法,其中該位元 遮罩表明向左位移η位元,此處η是從一至三十一之間的數 目。 2 2.如申請專利範圍第2 0項所述之方法,其中該位元 遮罩表明向左位移由先前指令的該運算元的較低五位元所 具體指定的數量,此處該較低五位元是從一至三十一之間 的數目。 2 3.如申請專利範圍第2 0項所述之方法,其中該位元遮罩表明向右位移η位元,此處η是從一至三Η--之間的數 目° 2 4.如申請專利範圍第20項所述之方法,其中該位元 遮罩表明向右位移由先前指令的該運算元的較低五位元所 具體指定的數量,此處該較低五位元是從一至三十一之間 的數目。 2 5.如申請專利範圍第2 0項所述之方法,其中該位元 遮罩表明向左轉動η位元,此處η是從一至三十一之間的數 目。 2 6.如申請專利範圍第2 0項所述之方法,其中該位元 遮罩表明向右轉動η位元,此處η是從一至三十一之間的數 目〇 2 7.如申請專利範圍第1 9項所述之方法,進一步地包 括: 選項記號,由程式設計師所設定,並且根據一得到結1057-3408-PFl.ptc 第27頁 12207321057-3408-PFl.ptc 第28頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15196199P | 1999-09-01 | 1999-09-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
TWI220732B true TWI220732B (en) | 2004-09-01 |
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 |
TW089117912A TW546585B (en) | 1999-09-01 | 2000-10-18 | Method of operating a processor and computer program product |
TW089117911A TW548584B (en) | 1999-09-01 | 2000-10-18 | Fast write instruction for micro engine used in multithreaded parallel processor architecture |
TW089117904A TW475148B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor architecture |
TW089117901A TWI220732B (en) | 1999-09-01 | 2000-10-18 | Local register 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 |
TW089117900A TW486666B (en) | 1999-09-01 | 2000-10-18 | Register set used in multithreaded parallel processor architecture |
TW089117910A TW486667B (en) | 1999-09-01 | 2000-10-18 | Memory reference instructions for micro engine used in multithreaded parallel processor architecture |
TW089117907A TW594562B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
TW089117902A TW571239B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for multithreaded processor |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089117903A TW559729B (en) | 1999-09-01 | 2000-09-01 | Instruction for multithreaded parallel processor |
TW089117912A TW546585B (en) | 1999-09-01 | 2000-10-18 | Method of operating a processor and computer program product |
TW089117911A TW548584B (en) | 1999-09-01 | 2000-10-18 | Fast write instruction for micro engine used in multithreaded parallel processor architecture |
TW089117904A TW475148B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor architecture |
Family Applications After (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
TW089117900A TW486666B (en) | 1999-09-01 | 2000-10-18 | Register set used in multithreaded parallel processor architecture |
TW089117910A TW486667B (en) | 1999-09-01 | 2000-10-18 | Memory reference instructions for micro engine used in multithreaded parallel processor architecture |
TW089117907A TW594562B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for processor |
TW089117902A TW571239B (en) | 1999-09-01 | 2000-10-18 | Branch instruction for multithreaded processor |
Country Status (10)
Country | Link |
---|---|
US (1) | US7421572B1 (zh) |
EP (7) | EP1236094B1 (zh) |
CN (7) | CN100342326C (zh) |
AT (2) | ATE396449T1 (zh) |
AU (11) | AU7099000A (zh) |
CA (7) | CA2383526A1 (zh) |
DE (2) | DE60044752D1 (zh) |
HK (8) | HK1046049A1 (zh) |
TW (11) | TW559729B (zh) |
WO (8) | WO2001016715A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864602B2 (en) | 2011-12-30 | 2018-01-09 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | 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 |
IL161107A0 (en) * | 2001-09-28 | 2004-08-31 | Tidal 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 |
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 |
FI3812900T3 (fi) | 2016-12-31 | 2024-02-09 | Intel Corp | Järjestelmät, menetelmät ja laitteet heterogeenistä laskentaa varten |
US10387037B2 (en) * | 2016-12-31 | 2019-08-20 | Intel Corporation | Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies |
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 |
US4755966A (en) | 1985-06-28 | 1988-07-05 | Hewlett-Packard Company | Bidirectional branch prediction and optimization |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
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 |
US4816913A (en) | 1987-11-16 | 1989-03-28 | Technology, Inc., 64 | Pixel interpolation circuitry as for a video signal processor |
US5189636A (en) | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
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 | マイクロコンピュータ |
US5347648A (en) | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
EP0463973A3 (en) * | 1990-06-29 | 1993-12-01 | Digital Equipment Corp | Branch prediction in high performance processor |
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 |
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 |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
JP2508907B2 (ja) * | 1990-09-18 | 1996-06-19 | 日本電気株式会社 | 遅延分岐命令の制御方式 |
EP0553158B1 (en) * | 1990-10-19 | 1994-12-28 | Cray Research, Inc. | A scalable parallel vector computer system |
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 |
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 |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
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 |
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 |
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 |
DE69422448T2 (de) | 1992-12-23 | 2001-08-23 | Eta Sa Fabriques D Ebauches Gr | 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 |
EP0650116B1 (en) | 1993-10-21 | 1998-12-09 | Sun Microsystems, Inc. | Counterflow pipeline processor |
DE69430352T2 (de) | 1993-10-21 | 2003-01-30 | Sun Microsystems Inc | 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 |
EP0661625B1 (en) * | 1994-01-03 | 1999-09-08 | Intel Corporation | Method and apparatus for implementing a four stage branch resolution system in a computer processor |
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 |
CN100507834C (zh) * | 1994-12-02 | 2009-07-01 | 现代电子美国公司 | 有限游程转移预测 |
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 |
US5592622A (en) | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
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 |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
CN100373331C (zh) * | 1996-08-27 | 2008-03-05 | 松下电器产业株式会社 | 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器 |
US5951679A (en) * | 1996-10-31 | 1999-09-14 | Texas Instruments Incorporated | Microprocessor circuits, systems, and methods for issuing successive iterations of a short backward branch loop in a single cycle |
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 |
DE69841526D1 (de) * | 1997-03-04 | 2010-04-15 | Panasonic Corp | Zur effizienten Ausführung vieler asynchronen Ereignisaufgaben geeigneter Prozessor |
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 CN CNB008154171A patent/CN100342326C/zh not_active Expired - Fee Related
- 2000-08-31 CA CA002383526A patent/CA2383526A1/en not_active Abandoned
- 2000-08-31 CA CA002386562A patent/CA2386562A1/en not_active Abandoned
- 2000-08-31 EP EP00961457A patent/EP1236094B1/en not_active Expired - Lifetime
- 2000-08-31 AU AU70990/00A patent/AU7099000A/en not_active Abandoned
- 2000-08-31 AU AU70979/00A patent/AU7097900A/en not_active Abandoned
- 2000-08-31 AU AU73406/00A patent/AU7340600A/en not_active Abandoned
- 2000-08-31 AU AU73407/00A patent/AU7340700A/en not_active Abandoned
- 2000-08-31 CN CNB008151237A patent/CN1296818C/zh not_active Expired - Fee Related
- 2000-08-31 EP EP00959712A patent/EP1236097A4/en not_active Withdrawn
- 2000-08-31 CA CA002383532A patent/CA2383532A1/en not_active Abandoned
- 2000-08-31 AU AU70987/00A patent/AU7098700A/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023983 patent/WO2001016715A1/en active Application Filing
- 2000-08-31 AU AU73404/00A patent/AU7340400A/en not_active Abandoned
- 2000-08-31 EP EP00959714A patent/EP1236093A4/en not_active Ceased
- 2000-08-31 WO PCT/US2000/023996 patent/WO2001016716A1/en active Application Filing
- 2000-08-31 AU AU70986/00A patent/AU7098600A/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023994 patent/WO2001016722A1/en active Application Filing
- 2000-08-31 CA CA002386558A patent/CA2386558C/en not_active Expired - Fee Related
- 2000-08-31 WO PCT/US2000/024006 patent/WO2001016713A1/en active Application Filing
- 2000-08-31 WO PCT/US2000/023982 patent/WO2001016758A2/en active Application Filing
- 2000-08-31 CN CNB008154376A patent/CN1184562C/zh not_active Expired - Fee Related
- 2000-08-31 WO PCT/US2000/023992 patent/WO2001018646A1/en active Application Filing
- 2000-08-31 EP EP00959713A patent/EP1242869B1/en not_active Expired - Lifetime
- 2000-08-31 EP EP00959717A patent/EP1236092A4/en not_active Ceased
- 2000-08-31 DE DE60044752T patent/DE60044752D1/de not_active Expired - Lifetime
- 2000-08-31 CN CNB008148740A patent/CN1271513C/zh not_active Expired - Fee Related
- 2000-08-31 CN CNB008144966A patent/CN100474236C/zh not_active Expired - Fee Related
- 2000-08-31 AT AT00959711T patent/ATE396449T1/de not_active IP Right Cessation
- 2000-08-31 EP EP00959711A patent/EP1236088B9/en not_active Expired - Lifetime
- 2000-08-31 CA CA002383528A patent/CA2383528C/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 AT AT00961457T patent/ATE475930T1/de not_active IP Right Cessation
- 2000-08-31 AU AU70984/00A patent/AU7098400A/en not_active Abandoned
- 2000-08-31 DE DE60038976T patent/DE60038976D1/de not_active Expired - Lifetime
- 2000-08-31 CA CA002383531A patent/CA2383531A1/en not_active Abandoned
- 2000-08-31 AU AU70985/00A patent/AU7098500A/en not_active Abandoned
- 2000-09-01 CN CNB008154120A patent/CN100351781C/zh not_active Expired - Fee Related
- 2000-09-01 AU AU73429/00A patent/AU7342900A/en not_active Abandoned
- 2000-09-01 CA CA002383540A patent/CA2383540A1/en not_active Abandoned
- 2000-09-01 TW TW089117903A patent/TW559729B/zh not_active IP Right Cessation
- 2000-09-01 AU AU71012/00A patent/AU7101200A/en not_active Abandoned
- 2000-09-01 EP EP00961484A patent/EP1242867A4/en not_active Withdrawn
- 2000-09-01 WO PCT/US2000/024095 patent/WO2001016698A2/en active Application Filing
- 2000-10-18 TW TW089117912A patent/TW546585B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117911A patent/TW548584B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117904A patent/TW475148B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117901A patent/TWI220732B/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 TW089117900A patent/TW486666B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117910A patent/TW486667B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117907A patent/TW594562B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117902A patent/TW571239B/zh not_active IP Right Cessation
-
2002
- 2002-10-21 HK HK02107606.9A patent/HK1046049A1/zh unknown
- 2002-11-07 HK HK02108082.0A patent/HK1046565A1/zh unknown
- 2002-11-07 HK HK02108083.9A patent/HK1046566A1/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 HK03103925A patent/HK1051730A1/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
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864602B2 (en) | 2011-12-30 | 2018-01-09 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
TWI630548B (zh) * | 2011-12-30 | 2018-07-21 | 英特爾股份有限公司 | 緊縮旋轉處理器、方法、系統與指令 |
US10324718B2 (en) | 2011-12-30 | 2019-06-18 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI220732B (en) | Local register instruction for micro engine used in multithreaded parallel processor architecture | |
US7991983B2 (en) | Register set used in multithreaded parallel processor architecture | |
US6629237B2 (en) | Solving parallel problems employing hardware multi-threading in a parallel processing environment | |
US9824037B2 (en) | Memory mapping in a processor having multiple programmable units | |
US7424579B2 (en) | Memory controller for processor having multiple multithreaded programmable units | |
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 | |
US6668317B1 (en) | Microengine for parallel processor architecture | |
EP1247168A2 (en) | Memory shared between processing threads | |
GB2582784A (en) | Booting tiles of processing units | |
US20020053017A1 (en) | Register instructions for a multithreaded processor | |
US7191309B1 (en) | Double shift instruction for micro engine used in multithreaded parallel processor architecture | |
WO2001016697A2 (en) | Local register instruction for micro engine used in multithreadedparallel processor architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |