TW476915B - Method and apparatus for thread switching within a multithreaded processor - Google Patents
Method and apparatus for thread switching within a multithreaded processor Download PDFInfo
- Publication number
- TW476915B TW476915B TW089108132A TW89108132A TW476915B TW 476915 B TW476915 B TW 476915B TW 089108132 A TW089108132 A TW 089108132A TW 89108132 A TW89108132 A TW 89108132A TW 476915 B TW476915 B TW 476915B
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- instruction information
- instruction
- information source
- scope
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000001514 detection method Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 25
- 230000002079 cooperative effect Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 16
- 238000009826 distribution Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 238000011144 upstream manufacturing Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000000449 premovement Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 6
- 238000006243 chemical reaction Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 11
- 230000007774 longterm Effects 0.000 description 10
- 238000003780 insertion Methods 0.000 description 7
- 230000037431 insertion Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000005520 cutting process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 239000011257 shell material Substances 0.000 description 3
- 230000003442 weekly effect Effects 0.000 description 3
- PXHVJJICTQNCMI-UHFFFAOYSA-N Nickel Chemical compound [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 2
- KDLHZDBZIXYQEI-UHFFFAOYSA-N Palladium Chemical compound [Pd] KDLHZDBZIXYQEI-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 206010011469 Crying Diseases 0.000 description 1
- 241000233805 Phoenix Species 0.000 description 1
- 241000270666 Testudines Species 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 101150001783 fic1 gene Proteins 0.000 description 1
- 210000001145 finger joint Anatomy 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- 229910052763 palladium Inorganic materials 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001012 protector Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Description
Λ7 B7 五 、發明說明( 本發明一般係有關多線程處 理杰之領域,而更特別地 經濟部智慧財產局員工消費合作社印製 係有關一種在一多$程卢理哭φ叫文狩別地, 用之方法及裝置。處〇執行上下文(或線程)切與 董jg背景 近來已將多線程處理器設計 逐漸引人注音乏女斗士 υ叩r生此的一種 心、万式。處理器内之多線程特別提供了f有 效使用各種處理哭咨馮、说山 捉扒了更有 内之埶… ,力,尤其是更有效利用處理器 , 逑耳。很特別地,藉由將多線程加入處理哭之執 :=則Γ特定線程處理中由於停滯或其它延:而閒 、:;0:週期可用以服務另一線程。一特定線程處理之停 理器管路内之多個事件而起。舉例而t,在一線 ,、含指令q速緩衝記體資料未取得或轉移遺漏預測 亦即’長期等待時間作業)在典型上會導致相關線程停滯 〈處理。長期等待時間作制執行邏輯效率之負面影響是 T近來已凌焉圮憶體存取及擷取速率的提升之執行邏輯產 量之增加而益形惡化6 ,由冲夕曰遍的作業系統(例如:Windows Unix 作業系統)對此等多線程應用提供支援之觀點看來,多線 程電腦應用亦日漸普及。多線程電腦應用在多媒體領域上 特別有效率。 根據在相關聯處理器内使用之線程交錯或切換方式,多 、’泉私處理斋可廣泛地分成兩類(亦即,精細或粗糙設計)。 精細多線程設計支援處理器内之多重主動線程且典型上以 4-
I-請先閱讀背面之注意事項再填寫本頁)
--------訂---------線I 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 476915 A7 -------— R7__ 五、發明說明(2 ) 逐週爲基礎交錯二不同之線程。粗糙多線程設計典型上在 一長期等待時間事件發生(例如,高速緩衝钯憶體未取得 貝料)時父錯不同線程之指令。在1996年5月之第23屆 遂AS際研之第2G3-2 12頁上由Eiek=^TZT J〇h_ns〇n R.等人所著「商業應用環境下多線程單一處理器 足砰估」一文中討論了粗糙多線程設計。在1994年麻薩諸 塞州Norwell市之Kluwer學術出版公司由R a Jannuci等人 編輯而成的支線程電腦、續1:最新科技概要之第ΐ67-2ϋα 頁上由Laud on J· ; Gupta Α.等人所著「多重上下文處理哭 设計t結構與實作之協定」一文中進一步討論了精細與粗 糙設計間之,區別Laudon尚提出一種結合精細設計之逐週 切換與粗糙設計之全管路.式連鎖之交錯方式(或分段方 式)。到最後,Laudon提出一使得在特定數目週期中無法 使用某一特殊線程(或上下文)之Γ壓制」(back 〇ff)指令。 此一「壓制」指令可於預定之事件發生(例如,高速緩衝 記憶體未取得資料)時提出。依此方式,Laud〇n僅使得線 程之一無法使用即可避免須執行實務之線程切換。 發明概述 根據本發明,提供了 一種在多線程處理器中進行線程切 換作業之方法。來自多線程處理器内之指令資訊源對於第 一線程之第一預定的指令資訊量之分配係受偵測。響應於 對第一線程之第一預定的指令資訊量分配之偵測,開始了 自該指令資訊源對第二線程之指令資訊分配p 捉對附圖及其後之細述,本發明之其它特色將極爲明 -5- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) --------------------訂---------線· (請先閱讀背面之注意事項再填寫本頁} 五、發明說明(3
經濟部智慧財產局員工消費合作社印製 顯。凰式簡述 =例子且不限於附圖中之圖面説明本發明 <參考數字表示相似的元件,卫其中: 相门 圖1馬可貫?本發明之處理器示範管路之方塊圖。 圖2示出可實現本於昍 、 衾月<一般用途多線42微處理器形 又處理器示範具體實施例之方塊圖。 、圖3一馬7ΤΓ於一圖2〈一般甩途微處理器内之微指令轉換引 〈不範具體實施例之細部架構方塊圖。 回 丁範的多線程微處理器之選定的組餘方挽 圖,且特別地説明如同渴龉μ八M I槐 衝能力之各種功能單元刀割以併人多線程而提供緩 衝圖/、示/根據本發明的—個具體實施例之示範指令串 衝益(細邵結構及架構方塊圖。 甲 ,發明示範具體實施例之線程切 季耳又遴輯組件方塊圖。 之= 泉二根二本發明示範具體實施例在多線程處理器 7 一月^'寺,決疋起始線程之方法流程圖。 =二出根據本發明示範具體實施例對 =程之轉移指令分配,在多線程處理器内進行;; 換作業义万法流程圖。 仃、,泉矛王 圖9不出根據本發明示範具體實施 停滞時,在多線程處理器内進行線程切=期寺待 程圖。 资忭菜 < 户 式 擎 請 先 閱 背 之 注 意 事 項 再 4赢 本 頁i 緩 邏 内 之 切 時 法流 線 本紙張—尺度適用 297公釐) A7 五、發明說明( 4 B7 經濟部智慧財產局員工消費合作社印製 圖10示出根據本發明 除時,在多線程.處理哭貫施例在發生内部管路清 圖。 °。内進行線程切換作業之方法流程 圖11示出根據本發明亍r m — 程「無資料流動」狀、、尸^具體貫施例在發生對-特定線 換作業之方法流程圖“線程處理器内進行線程切 圖=根據本發明示範具體實 态至一指令預解碼器 拍7 _,k衝 配時’在多線程處理哭内.、:」程广預定指令資訊量之分 圖。 。。内進仃線程切換作業之方法流程 圖1 3示出根據本菸日一一 除時,在多線=:,具體實施例在發生外部管路清 圖。 i备内進行線程切換作業之方法流 圖1 4示出根據本發明示蝴命 指令串内之***的流程時,;1…例在偵測目前線程 拖你f、、 、在夕線私處理器内進行線程 換作業之方法流程圖。 圖15A及15B爲顯示根據本發明之線程切換控制邏輯 個別不軏具體實施例結構之概要示意圖,在圖6中係以 塊圖形式示出的。 ' 圖1 6爲根據本發明示範具體實施例將-1流程標記(或插 入的流程)***一指令串之邏輯概要示意圖' 詳細説明 所説明者爲一種在多線程處甚„器内線程切換風之方法 。爲了解的,在下列將述及許多特硃 程 之 切 之 方 及 之 . --------訂---------線# (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 476915 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(5 細:,俾徹底瞭解本發明。總之,對熟知此項技藝之人士 而言,沒有這些特殊細節本發明也可實現將是很明顯的。 、爲了本規範之目的,「分配(dispatch)」乙字應涵括從一 位置或功I單iL之具正的資赶傳送或傳播,以及在準備眞 正的貪料J秦送或傳播之歩壤。例如,「分配」乙字應包括 依特殊次序之資料移動或者㈣一儲存位置或緩衝:傳播 之準備狀態。 圖1爲顯示可於其内寬現本發明之處理器管丨〇之示範具 骨豆貫施例之向膛方塊圖。爲了本規範之目的,「處理器 (processor)」乙字肩用來稱呼可執行一指令(例如巨或微; 令)序列之任何機器,且應用以包括,但並不限於一般用 途微處理‘器、特殊用途微處理器、圖形控釗器、聲音控制 器、多媒體控制器及微控制器。再者,「處理器」一詞尤 ”應用以稱呼合成指会箠雹腦(c〇mplex %
Computers,下文簡稱CISC)、減縮指令集電腦(Reduad
Instruction Set Computers,下文簡稱RISC)、或極長指令字 (Very Long instruction w〇rd,下文簡稱 vuw)處理器。管 1 0包含許多管路級,由取得管路級12開始,在此級將擷 取指令(例如巨指令)並加入管路丨〇。舉例严言,可從與處 理器一體或密切關聯之高速緩邀記憶體擷取或經一處理器 匯流排從外部主記憶體擷取巨指令。巨指令從取得管路級 1 2傳播至解碼管路級i 4,在此級巨指令被轉譯成通於在 處·理器内執行之微指令(亦稱爲「微碼」)。然後微指令向 -8- 本_纽綱+@_ii^|(CNS)A4 規格⑽ x 297 公髮)------ · --------訂---------線"^· (請先閱讀背面之注意事項再填寫本頁) 476915 A7 B7 五、發明說明(6 ) (請先閱讀背面之注意事項再填寫本頁) 下游傳播至分配管路級1 6,在該級根據可甩性I霞求將處 理器資源分配至各顧微指令。在退出退離管路級2 〇之煎: 則在執行級1 8執行微指令。 毯^理器架構 圖2爲示出可實現本發明之一般用途微處理器3 〇形式之 處理器示範具體袁施例之方垛圖。下述係多線程(下文簡 Μ T )處理器説明微處理器3 〇,因而可同時處理多重指令 線程ί或上下文)。總之,下所提供規範中之許多内文並非 專對多線程處理器,而可在單一線程處理器中找到其應 用。在一示範具體實施例中,微處理器3 〇可包含執行In— 架構指令集之Intel架構(下文簡稱ία)微處理器。 微處理器30包含一依序前端及一失序後端。該依序前端 包括一匯流排介面單元32,該單元係做爲微處理器3〇與 一可使用微處理器3 0之電腦系統之其它組件(例如,主記 憶體)間之通路。至此爲止,匯流排介面單元3 2將微處理 器3 0耦合至一處理器匯流排(未示出),經該匯流排微處理 器30可接收以及傳播資料及控制資訊。匯流排介面單元 經濟部智慧財產局員工消費合作社印製 3 2包括控制處理器匯流攝上通訊之前側匯流排”⑺加以心 Bus,下文簡稱FSB)邏輯34。匯流排介面單元32尚包含對 處理态匯流排上之通訊提供緩衝功能之匯流排佇列3 6。所 顯π之匯流排介面單元32係用以接收來自記憶體執行單元 4 2之匯流排需求3 8及送出監視或匯流排回返4 〇至記憶體 執行單元42,記憶體執行單元4 2提供了微處理器3 〇内之區 域記憶能力。記憶體執行單元4 2包括一統合資料及指令緩 9- 本紙張尺度適用中國國家標準(CNS)A4規格(21() χ 297公爱) 476915 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(7 衝記憶體44、—資料轉換查詢緩衝器(Translati〇n
Lookaside Buffer ’下文簡稱τ LJB ) 4 6以及記憶體排邏輯 4 8。d 體執行單元4 2接收來自微指令轉換引擎5 4之指 令取得需求5 0並將原始指令5 2 (亦即編碼之巨指令)傳送 至械指令轉換引擎5 4,微指令轉換引擎5 4將收到之巨指 令轉譯成對應之微指会集。關於微指令鎳換引擎54之其它 細節説明如下。 解碼後之指令(亦即微指令)從微指令轉換引擎5 4送至追蹤 傳运引擎6 0。追蹤傳送引擎6 〇包含一追蹤緩衝記憶體 6 2、 追縱轉移預測(下文簡稱B T B ) 6 4、一微碼排序器 6 6及一微碼(U0P)佇列6 8。追蹤傳送引擎6 0係做爲微指令 緩衝冗憶體’且爲用於下游執行單元7〇的微指令之主要來 源。在處理器管路内提供微指令缓衝記憶功能後,追蹤傳 运引擎6—0 α及尤其是追蹤緩衝記憶體6 2容許撬開微指令 轉換引擎5 4完成之轉換工作,以提供相當遙之微指令頻帶 寬。在一示範具體實施例中,追蹤緩衝記憶體6 2可包含一 個2 5 6組8線之關聯記憶體。在本示範具體實施例中, 「追縱(trace)」一詞可認定爲存於追1緩衝記憶體6 2的登 綠内之微指令序列,各登綠包含了指標,以前引及進行含 追縱之微指令。依此方式,追蹤緩衝記媳體6 2協助高效能 之排序’因而爲了獲得後續的微指令,在目前的存取宣成 之前’可知即將存取的下一登綠之位址。追蹤可看成是以 追縱頭相互區隔之指令「區段(blocks)」,且在遇及一間 接轉移或達到許多目前臨界狀況(例如:可由單一追蹤涵 10- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ---7-----------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 476915 五、發明說明(8) 括之條件轉移數目或可包4 、 之一而終止。 一換…微指令之最大數目) =緩衝記憶體轉移預測器64提供了與追縱緩衝記㈣ 62·内又追蹤相關之區域 / =序.66將微指令供予微物“8,然後微指合從 j入—失序㈣行叢集。因此微處理器30可視爲具有 匕叾匯况排介面單元3 2、, 。— ’、 換引擎54及追縱傳送引擎6。:::…42、微指令轉 述之失序㈣。 依相端,以及將於下詳 ::碼仔列68分配之微指令係由失序1集71接收,失 序叢木71包含一排程器72、一 哭 ^ ^ 曰仔叩改名夺7 4、一分配 口口 正緩衝洛7 8及一重運作佇列δ 0。排程器7 2勹 括一組迎站,並用以規劃及分配由執行單元 ζ 指令:暫存器改名器74對隱藏之整數及浮點暫存器(可^ 二處理器3㈣行Inte_指令集之八個^ 存^<任一個或八個暫存器之任一個)執行暫存器改名之 功能。分配器76根據可用性及需求將執行單元及 V之資'f配至微指令。若是資源不足以處理-微投ί 日:,分配器76負責引發一停潘信號82,該信號經追縱ς 迗引擎6〇傳送至微指令轉換?1擎54(如在Μ所示者)。已 ^有由苇存备改名器7 4調整其等來源區域之微指令係以I 確的程式次序置於重整緩衝器78中。當重整緩衝器78^ =微指令已’執行完成並準屬退省時,則.其等將從重整锾衝 w 7 8中私除。重運作作列8 〇將擬重新運作之微指令傳送 *7 --------^--------- (請先閱讀背面之注意事項再填寫本頁) -11 經濟部智慧財產局員工消費合作社印製 476915 A7 ------B7____ 五、發明說明(9 ) 至執行單元7〇。 所示之執行單元7 〇包括一浮點I行引擎8 4、一奴奴1 y 正数執 仃引擎8 6及一 〇位準資料緩衝記憶體。在一個由微處理 為3 〇執行Intel架構指令集之示範具體實施例中,浮點執<一 引擎8 4尚可執行MMX⑧指今。 微指令轉換引擎 圖3爲有關微指令轉換引擎5 4之示範县體實施例架構更 詳細之方塊圖。微指今轉換引擎5 4有效地做爲追蹤緩衝記 憶體之Γ遺漏處理器」,乃因其在追蹤緩衝記憶體未取得 資料時將微指令傳送至追蹤緩衝記憶體6 2。至此爲止,在 一追縱緩衝記憶體未取得資料之情況,微指令轉換引擎54 動作以提供取得及解碼之管路級丨2及1 4。所示之微指令 轉換引擎5 4包括一下一指令指標(next instructi〇n p〇inter, 下文簡稱N I P ) 1 〇 〇、一指令TLB 1 02、一轉移預測器1 Q4、 一指令串鍰衝器1 0 6、一指令預解碼器} 〇 8、一指令操縱 邏輯1 1 0、一指令解碼器丨丨2及一轉移位址計算器丨丨4。 NIP 1〇〇、TLB 102、轉移預測器1 04及指令串緩衛n 1 〇 6 合起來構成一轉_〜移預測單元(branch predicti〇n仙忖,下文 簡稱BPU)99。指令解碼器丨丨2及轉移位址計算器丨丨4合起 來形成一指令翻譯(下文簡稱I X)單元1 1 3。 下一指令指標1 0 〇對統合緩衝鸠憶體4 4提出下一指令需 求。在此不範具體實施例中,微處理器3 〇包含一可處理二 線程之多線程微處理器,下一指全指標1〇〇可包含一多工 器(multiplexer,下文簡未顯示),在第一抑或第 -12- 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公爱) ----7-----------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 476915
二線程相關聯的指令指標之間做選擇,以納入其所提出之 下一指令需求中。在一個具體實施例中,若對兩個線程之 才曰令均有需求,且該二線程用之指令串缓街器丨〇 6資源迷 未耗^盡,則下一指令指標丨0良將以逐週(「乒乓」)方式交 熬、第一及第二線程之下一指令需求。依初始需求位址是否 在3 2位元組或μ位元組對齊線之上半部,下一指令指標 而求可爲1 6、3 2或6 4位元組者。在一追蹤緩衝記憶體未 取得貪料需求爲最鬲優先序之重新引導需求時,下一指令 指標100可由轉換預測器1〇4、轉移位址計算器丨」‘或: 追縱緩衝記憶體6 2,·羞新導。 田下一扎令指標1 〇 〇對統合緩衝記憶體4 4下了指令需求 時,將產生一與該指令需求相關聯並做爲有關指令需求的 「‘ Π己」之一位元「需求識別符」。當送回響應於一指令 而求之貝料時,統合緩衝記憶體4 4併同該資料送回下列標 記或識別符: 1 ·下一指令指標1 Q CL練提供之Γ需求識別」; 2 *識別回返的貧訊塊之三位元「資訊塊識別符」;及 3 ·識別回返資赴所屬線程之「線裎識別符」。 下一指今需求係從下一指令指標i 〇 〇傳送至指令丁lB 102,TLB 102執行位址檢視作業並將實際位址傳送至統合 之緩衝記憶體4 4。統合缓衝記憶體4 4將對應之巨指令傳 送至扣♦串緩衝态1 〇 6。各個下一指令需求亦直接地從下 一才曰々才曰“ 1 〇 〇傳送至指令串緩衝器1 〇 6,俾容許指令串 緩衝器1 0 6識別來自統合緩衝記憶體4 4所收到的巨指令所 -13- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) 「靖先閱讀背面之注意事項再填寫本頁) 訂· ί線一 經濟部智慧財產局員工消費合作社印製 經濟部智慧財產局員工消費合作社印製 476915 A7 -—~^__ 五、發明說明(11 ) 屬又線程。然後由指令串緩衝器丨〇 6發出第一及第二線程 兩者又巨指令至指令預解碼器丨〇 8,該解碼器將對收到的 (巨指令之)指令_進行許多的長度計算及位元組標記作 業。很特別地,指令預解碼器i 〇 8產生了尤其產龙 傳送至指令操縱邏輯11〇的指令串中巨指令之位元組標記 向量序列。然後指令操縱邏輯Η 〇使用τ指令之位元Z標 。己向里序列。然後指令操縱邏輯j丄〇使用了位元組標記向 量將離巨指令引導至指令解碼器丨丨2,以便進行解碼。巨 指令亦從指令操縱邏輯丨丨〇傳送至轉移位址計算器1 1 4, 以便進行轉移位址計算。复後微指令從指令解碉器1 U落 至追縱傳送引擎Μ。 多線程之會施 在圖2所7JT微處理器3 〇之示範具體實施例中,將注意到 具=有限的資源重複或複製。冑了在一處理器中提供^線 程能力,而在該處理器中具有有限的功能單元.複製,則須 在線程間實施某一裎度之實禪共用。將樂見到所採用之資 源共用方式是與處理器可同時處理之線程數目有關。因爲 在一處理器功能單元典型上提供了某些緩衝(或儲存)功能 性及傳播功能性,資源共用之立式可看成是包含(1)儲存 及(2)處理/傳播頻帶寬共用之成份。舉例而言,在支援兩 個線程同時處理之處理器中,在各種功能單元内之緩衝器 貧源可在二線程間做邏輯上分割及分1。同樣地,在兩個 功能單元間用做資源傳播的路徑所提供之頻帶寬必須在二 線程間劃分及分配。因爲這些資源共用的方式可在處理器 -14- 本紙張尺度適用中國國家標準(CNS)^^21〇 χ 297公釐)------- · --------^--------- (請先閱讀背面之注意事項再填寫本頁) A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(12) 管路内之許多位I採用,根攄祛 很跟特疋位置之指令及特性,在 此等之各個位置可採用不同之资 1 U足貝源共用方式。將樂見到基 於可變的功能性及運作特性, 巧卜行『生,不同的資源共用方式可適於 不同的位置。 圖4爲示於圖3的微處理哭3 〇的% & 王j 0的4疋組件之方塊圖,並 描述在邏輯上分割以納入兩個 1U、·泉心(耶即第0線程及第1線 程)可提供緩衝能力之各種功姅语一 $ 功此早兀。對一功蚯單元Μ衛 (或儲存)裝置之二線程邏輯分刻 、 、科刀剳可由將缓衝資源内的第一 預定登錄組分配至第一線程乃炫免、之、 求%及、k衝貧源内的第二預定登錄 組分配至第:線程來完成。很特別地,此可由提供兩對讀 寫指標來達成,第一對讀寫指標係與第一線程有關,而第 二讀寫指標係與二線程相關。第一組讀寫指標可限制在緩 衝貝源内帛@疋數目之登錄,而第二組讀寫指標可限制 在緩衝資源内第二預定數目之登錄。在示範具體實施例 中,所π出芡指令串緩衝器丨〇 6、追蹤緩衝記億體6 2及指 令佇列1 0 3可提供在第一與第二線程間邏輯上分割之儲存 容量。 現知於下更詳細討論在處理器内功能單元間路徑之頻帶 寬分配方式。 指令串緩衝器 參照圖3,指令串缓衝器丨〇 6將一指今串加入單一指令 解碼為1 1 2 (亦即無解碼器複製)。爲了有效率地使用此單 一解碼資源,希望確保以有效率的方式劃分及分配在指今 串緩衝器1 0 6與指令解碼器丨丨2間路徑之頻帶寬以及指令 -15- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) •---·---------¾--- (請先閱讀背面之注意事項再填寫本頁) 訂---------線. A7 A7 種對 五、發明說明(13) 解碼备1 1 2之「解碼頻帶寬丨 來自指令串緩衝哭所以本發明提出了〆裡別 法。此一線程切換。方0二:兩個指令串實施線程切换之方 指令㈣H1U之速率1 2 I兩個線程之各線程指令加A 程切換目標之線程切換演譯:明尋求實現意阃遠成下列線 • 僅在另一線程且右 器1…之資料時=:::送(例如:從指令串缓衡 到後端===的線程時齡:當目前的線程收 ·===保證在魏遂後切換前於下游的管路内麒 程切換β 確保在執行從目前線程至目標線程之線 •其它線程(例如:僅在目前線程之 :二貝W已傳送至處理器管路而未呼求任何其它的 、.泉私切換機構時進行線程切換作業).及 切換之計罰(例如:在找出可引發線程切換作 現/Λ的轉移〈前’發出預定之最小指令資訊量)。 ::參私用於選擇儲存在指令串緩衝器】“ 説::;Γ令解碼器112之線程資料之示範具體實二 處理總之’將很快地樂見到本發明之内容可玛在 ;-右5内又任飪位置,俾做線程切換或交錯.。圖5爲 Π:::Τ器106其結構及架構更詳細= 很特別地,所示之指令串緩衝器丨〇6包括一具有4個 本紙張尺Ιϋ?ϋϋ·準(CNS)A4規格⑵〇 : Ϊ --------訂---------線 C請先閲讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 -16- 476915 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(14) 登錄120(登錄〇v登錄3)之儲存行到,該等登綠在邏輯上 分割成專用以儲存—第一線程(第。線程)指令之第一分割 1 2 2以及專用以儲存—第二線程(第1線程)指令之第二分 ^ 124。、在一個示範具體實施例中,登錄12〇之各登綠可 谷、’内8個資Λ塊’因而指令_緩衝器丨〇 6對每一線程提供 1 6個資料緩衝記憶塊。 才曰7串4衝為1 〇 6尚包含一控制著資料入及讀土邏蛑分 割122及124之分配區段I。。 刀割1 2 2及1 2 4各具有含於分配區段1 2 5内之個別分配 遴輯1 2 6。各分配邏輯丨2 6包含一寫入指標丨2 8及一讀出 指標1 3 〇,各引用相關聯之分割1 2 2或1 2 4内之一個登綠 120。各分配邏輯126接收一來自統合緩衝記憶體44之指 令串’並根據線程見範將指令爭資饥皂(亦即8位元組)寫 入第一或第二分割1 2 2或1 2 4之登錄1—2 0。很特別地,由 查與各資教塊相關聯之「旅毯識赳符」,各分配邏輯 1 2 6可決足要從統合緩衝記憶體4 4所收到之資料窟入那— 個分割。 各分配邏雜L JL6將來自個別分割1 2 2或1 2 4之資料輸出 至一 MUX 132,該MUX基於由線程切換控制邏輯丨3 6發出 之線私選擇k號1 3 4而在分割1 22龜1 2 4的輸出之間做選 擇。因此’在本發明之示範具體實施例中t,實施缓兹交錯 或切換方式者爲線程切換控制邏輯丨3 6。再者,所示之線 程切換控制邏輯1 3 6用以監視分割1 2 2或1 2 4之各分割細 由線路1 3 8及1 4 0之輸出,俾能決定一資料塊何時從分割 1 2 2或1 2 4之任一分割受分配,並識剋受分配之資料塊來 -17 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ----j-----------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 476915 經濟部智慧財產局員工消費合作社印製 A7 五、發明說明(15) 自这些^的那一個。然後MlJX 132έί選定之資料塊輸出 在處理為官路内向下游傳送至指令預解碼器I 〇 8,而最後 傳至指令解碼器1 1 2解碼。 圖ό爲説明線程切換控制邏輯1 3 6的邏輯組件之方塊 圖很特別地,所不之線程切換控制邏輯1 3 6包括閒置切 換邏輯1 50、轉移切換邏輯丨52、長期等待停滯邏輯 1 5 4、内邵清除邏輯丨5 6、無資料流動邏輯1 5 8、強迫線 程改變邏輯160、外部清除邏輯162及***流程邏輯 16 4 ^圖6所示邏輯1 50-1 64之各邏輯離散時,如將於下 说明的’在各邏輯間可有顯著的組件共用。邏輯㈠ 之各邏輯實施一可使得至MUX 132之選擇信號丨34發出或 撤回因而引起以上述方式做線程切換之特殊功能。在邏輯 150-164之各邏輯包含之功能將參照在圖7-14提供之流程圖 做説明。一特殊示範具體實施例之細節係參照圖15_16做 説明。 間置切換邏輯(1 5 0) 在全部線程閒置之情況,閒置切換邏輯丨5 〇決定要選出 許多線程的那一個做爲起兹線程。圖7爲根據本發明之示 範具fl豆貫施例所示出當一多線程處理器中之兩個線程閒置 時決足起始線程之方法2 0 0之流程圖。將樂見到方法2 〇 q 亦可找到在一支援超過兩個線程的多線程處理器中之應 用。在閒置切換邏輯1 5 0中可實施方法2 〇 〇。方法2 〇 〇始 於具有閒置線程狀況之步驟2 0 2,其中兩個線程(亦即, 第0線程及11)均閒置。在步驟2 04,基於(僅做爲例子)在 18 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) —*-----------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 476915 Λ7
器 之 段 移 號 經濟部智慧財產局員工消費合作社印製 476915 A7 _ B7 五、發明說明(17) 之轉移指令序列(或分配),在多線程處理器中進行線程切 換作業之方法2 2 0之流程圖。方法2 2 0始於步驟2 2 2,在 該步驟一轉移指令由從行列之邏輯分割1 2 2或1 2 4 (例如: 從分配至第〇線程之邏轉分割1 2 2 )發出之分配區段丨2 5排 序。線程切換控制邏輯丨3 6,而尤其是轉移切換邏輯i 5 2 接收來自圖5所示分配區段1 2 5之轉移識別作_發 224 (BPsbsawbranch) 〇 分配區段1 2 5發出轉移識別信號2 2 4以識別已由轉移預 測單元99預測之轉移指令是受取用。很特別地,轉移預測 器1 〇 4將利用任何一個已知的預測數目及方法或演譯(例 如·基於相關轉移指令之有記綠之接移i定)對特定之轉 移指令是否將被取用或不取用做預測。然後氇移預測 1 〇 4將设定與有關指令相關聯之位元,並以處理管路内 才曰々下游以及「需求識別符」傳送,俾能與由分配區 5相關之分配關聯。應注意到僅對預測要被取用之轉π 指令發出轉移識別信號224,而非對被預測不被取用者發 出該信號。總之,在一本發明之替代具體實施例中,當Λ 逢已做任何預測之轉移指令時,可發出轉移識別信 224 〇 固示出轉私識別k號2 2 4做爲至及閘2 2 5之輸入。 在决定I 2 2 6,就目前線程(第〇線程)之預定最小指令資 =量(例如:預定之最小資訊塊數目)是否已從指令串緩衝 :;〇6分配(或送出)做決定。在此端,並參考圖“a,切 遴輯136包括一資訊塊送出增量器2 2 8形式之計數 --------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) -20
476915 經濟部智慧財產局員工消費合作社印製 A7 - B7 五、發明說明(18) 器,該增量器維持了線程切換之前從指令串緩衝器1 〇 6之 目前邏輯分割122或124分配之資訊塊計數。接收三個輸 入之及問2 3 0之輸出將增量資訊塊送出增量器228。分配 區段1 2 5發出一 B P準備信號2 3 2以指示一資訊塊準備從相 關邏輯分割1 2 2或1 2 4分配。與登錄(來自線程切換控制邏 輯1 3 6 )相關之線程信號2 3 4識別了準備受分配之資訊塊所 屬之線程(因而邏輯分割丨^或丨24)。_N〇T (1以&⑴信號 2 3 6指出在指令操縱邏輯丨丨〇未遭遇停滯狀況。在信號 2 3 2 - 2 3 6發出時,及閘2 3 〇之輸出發生且資訊塊送出增量
器2 2 8增量,以便記錄從指令串緩衝器丨〇 6分配之資訊塊 之排序。 A 線程切換控制邏輯1 3 6尚包含一「轉移切換前資訊塊」 暫存器2 3 8,在本發明的一個具體實施例中,該暫存器可 經控制暫存器匯流排2 4 0做程式規劃以儲存預定的資訊塊 數目之表示,在響應於轉移指令之線程切換作業發生之 削,咸等資汛塊須從指令串緩衝器1 〇 6予以排序。在本發 明 < 一替代具體實施例中,表示預定的資訊塊數目之値可 用固定線路程式。切換控制邏輯i 3 6尚包含一比較器 242,它將對增量器2 2 8及暫存器2 3 8之輸出^行比 業’當增量器228指示値超過暫存器238中之儲存値時, 比較器242將發出一信號至及閘244。比較器242之輸出 信號發出係對應於在圖8中決定盒2 2 6之正決定。 及閘2 3 0亦提供輸入至及閘225,而及閘2 3 0輸出之發生 以及轉移識別信號224之發出引起及閘2 2 5之輸出(亦^, -21 - 本紙張尺度國家標準(CNS)A4規格(210 X 297公釐) ----.------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁} A7 B7 五、發明說明(19〕 經濟部智慧財產局員工消費合作社印製 轉移送出信號2 2 7 )做爲及問? 9」、μ ”7、政山主 川馬及閘2 2 4〈輸入。轉移送出信號 2 2 7 1發出表示在步驟2 2 2偵測的事件發生。 在決疋盒2 2 6之正面法索你 、 向,矢疋後,万法2 2 0進行至決定各 2 4 8,在該處將就一替代埯裎 皿 田 代、、泉私(例如:第1線程)之預定最 小才曰令貧訊量(例如:預定之芒 t疋 < 取小貧訊塊數目)是否未定且 ==指t串緩衝器1〇6之遇輯分害之分配做成 之二」令串緩衝器1〇6内已對目標線程儲不足夠 扎々貝Λ時此I定有利於防止並 ,、焱生線紅切換,以確保 對此一目標線程之線程切換。 掉較再供給目前線程指…=地,-線程切換會用 一 求担扣7心潛在所需之時計週期。舉例 而…線程切換作業可能需要六個週期,而對在三個 計週期内收到目前線程之指令資訊存有高度可能性。 例圖Μ ’ ί程切換控制邏輯136之示範具體實 °。「切換則貧訊塊未定」暫存器,該暫存哭可經 =暫存器㈣排24Q做程式規勒儲存—表示目標線程 Η二、弟1線Mm小資訊塊數目,在料-線程 刀至孩目標線程之前應儲存在—行列分割(例如:分 在本發明之—替代具體實施例中,表示此預 的貧訊塊數目之値可再次囿仝姑μ J 人用固疋線路程式。線程切換控 :輯⑴亦包括—「計數資訊塊未定」增量器2 5 2,該 ^料儲存於指令串緩衝器⑽中的目標線程(亦即 4疋目:的線程)之資訊塊數目計數。當從統合缓衝記憶 Μ到(才曰令貧訊塊被指定至緩衝器1〇6中的一個登 時’分配區段⑴所發出之「㈣送出資訊塊未定」信 時 割 定 制 增 不 體 綠 號 —------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) I紙張尺度適财關家鮮(CNS)A4規格(21〇·; -22- 決 少 五、發明說明(2〇) ,"知曰量i曰量态2 5 2。分配區線1 2 5利用上述所討論並 與$應於下一指令需求而擷取的各資訊塊相關之「線程識 ^付^,以識別一特定資訊拖是否用於目標線程,而非用 、”、,泉程比較為2 5 6比較了存於暫存器2 5 〇中及增量 = 2 5 2中之個別値,當增量器2 5 2維持之値超過存於暫存 °° 2 5 〇中之値時,該比較器發出一輸出信號至及閘2 4 4。 車又w 2 5 6車則出信號之發出係對應於圖8所示決定盒2 4 8之 正決定。 在夬足盒248之正面決定之後,方法22〇進行至決定盒 =6 0,在該處將就目前線程之預定指令資訊量是否已排入 微處理器30的管路做成決定。此決定有利於確保在線程切 ί作業^前/目前的線程之順向進行。在一個使用Intel架 (下又簡稱IA)指令集之本發明示範具體實施例中,將就 目前線程之三個指令資訊塊是否已销純成決定,此將 保證對目前的線程至少有一個完整指令。 —在本發明之替代具體實施例中,在決定盒26〇所做之 疋可免除對轉移指令排序之偵測,轉移指令本身構成至 個整之指令,確保符合在決定盒2 6 〇之法定。 參考圖1 5 A,線程切換控制邏輯丨3 6之示範具體膏施 可包含一比較器2 6 2,以確定「資訊塊送出」增量哭2 所維持之計數値是否大於或等》卜預定的最小曰値里「例 :在本發明之替代具體貫施例中,此預定之最小値可阿 可程式化或固定線程程式。若增量器2 2 8所維持之値是等 於或超過預定之最小値,比較器2 6 2發出一輸出信號至 -----------·1111111 ^ . — — I I I I 1 I (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 例 2 8 如 爲 及 -23 經濟部智慧財產局員工消費合作社印製 476915 A7 -------_______ 五、發明說明(21) 閘2 4 4。比較咨2 6 2輸出信號之發出對應於圖8所示決人 2 6 0之正決定。 益 在決足盒2 6 0之正面決定之後,則在步驟2 64進行線程 =·換作業,決定盒2 2 6、2 4 8及2 6 0所代表之條件俱已符 口。在另—方面,若決定盒2 2 6、2 4 8 ,或26 0所代表條件 t任一個條件無法符合,則維持在步驟2 6 6之目前線程選 擇。然後方法2 2 0在步驟2 6 8終止。 耳 將樂於見到步驟2 2 2與決定盒2 26、24 8及26〇所代表之 條件表7F至圖1 5 A所示及閘2 4 4之四個輸入,且當這些條 件均符合時,及閘244將發出輸出並供予輸入至^問 2 4 5。或閘2 4 5之輸出產生了從線程切換控制邏輯丨3 6輸 出之線程選擇信號135。或閘2 4 5之輸出發生係對應於^ 步驟264之線程切換作業之執行。 在月本發明之上述具體實施例係以增量器U 8、「轉 移切換前資訊塊」暫存器2 3 8及比較器242來實現時,將 很陕地可見到可以一減量器取代增量器2 2 8來實現本發 明,當發生線程切換時,該減量器會被預先載入暫存器 2 3 8所含之値。在此具體實施例中,每次從指令串緩衝器 6之目則輯分割丨2 2或1 2 4分配一資訊塊減量該減量 ”、:後減量發出一輸出信號(對應於在先前所述具體實 ,例中比較器242之輸出信號)以表示在決定盒2 2 6之正決 定在此具體貫施例中,該減量器亦可爲及閘2 3 〇之輸出 所減量。 長期等待停滞邏輯(1 5 4) -24- 本紙張尺度細巾國國家標準(CNS)A4規格(210一X 297公爱了 --------1--------- (請先閱讀背面之注意事項再填寫本頁) A7 A7 B7 五、發明說明(22、丨 由於可用在客& ^ & 扣人由\ 處理器之處理器管路中一祛 、 H刀配之資源有限,且亦由於轉移之、 心 記憶體資料未取;p ^夕·^返漏預測及緩衝
aa ^ 飪,在此一處理器管路内之停I 口很早U 的。特別參考示於 ^心知哪疋很千凡 7 6決足可用於從柃 j t生的疋为配态 、Μτ列6 8收到的特定線程指令(玄g卩n护人、 足不充足資# a丨2 相7 (亦即你U日令) ^ 1 Η Ρ .在預約站或重整緩衝器7 8内第0線 牙王努弟1線裎間邏轉 下,分配器76特別料V、:曰存為或登綠)。在此情況 特力J對一線程發出一停滞作 經追蹤傳送引擎60綠…, 佇卬仏唬82,孩仏唬 傳运至微指令接揸引擎5 4。在對一特 定線程發出如此的僖、、狀产嘹Q。咕 手 在對特 _ , . T⑱仏唬8 2時,將希望執行線程切換作 ^。在處理器管停滞之情況,長期等翁停滯邏輯!Η包本 實施線程切換作業之電路。 口 ==根據本發明之示範具體實施例,在發生長期 、+ T W歹’如·因貧源無法使用、轉移遺漏預測或緩衝 j L、把未取#貝料導致處理器管路之停滯)時多線程處理 w内進m切換作業▲法2 8 G之流程圖。方法2 s 〇始於 步驟2 82,在該處已制到—停滯狀況。如上述之説明, 可由決足示於圖2之特定線程停滯信號8 2之發出以偵測此 :停滯狀況。替代性地,可由決定例如由分配器76、追蹤 ,k衝圮憶體6 2 (兩者均稱爲「後端」停滯)、指令解碼器 112或指令操縱邏輯11〇發出之其它停滯信號之發生而偵測 泫停箒狀況。在步驟2 8 2偵測到停滯後,於步骤2 就是 否已經歷預定最小時計週期數目做成決定。參考圖1 5,線 程切換控制邏輯1 3 6之示範實施可包含一「長期等待計 -25- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) ίφ^--------訂---------線·! 經濟部智慧財產局員工消費合作社印製 476915 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(23) 數」暫存為2 8 6,該暫存器可經由控制暫存匯流排2 4 〇做 程式規劃以儲存表示此預定最小之時計週期數目値,該週 期數爲容許象程切換至目標線程之前自停滯偵測後必須經 歷又時間。在本發明之替代具體實施例中,表示此一預之 取小時計週期數目値可爲固定線路程式者。切換控制邏輯 2 8 2偵測到停滞已經歷之時計週期數目之計數。在處理器 管路停滯時,各時計週期發出之Γ I X停滞」或指令轉譯 停滯信號2 9 0將增量該增量器2 8 8。增量器2 8 8係由當停 W已克服時所撤消之「TCFB停滯」信號2 9 2之消除而重 疋。「TCFB停滯」信號2 9 2係由一追蹤緩衝記憶體充填緩 衝器(Trace Cache Fill Buffer,下文簡稱TCFB)(未示出)所 發出,TCFB將一分配停滯信號5 8從追蹤傳送引擎6 〇向上 游傳迗至微指令轉換引擎5 4。比較器2 9 4比較了存於暫存 器2 8 6及增量器2 8 8中之個別値,當增量器2ss維持之値 超過存於暫存器2 8 6之値時,比較器2 9 4發出輸出信號至 及閘296。比較器2 9 4輸出信號之發出係對應於圖績示決 定盒284之正決定。 若在決定盒2 84決定了未經歷預定之時計週期數目,則 在步驟2 8 5維持目前之線程選擇,且方法28〇圈回至決 盒 2 84 〇 在決定盒2 84之正面決定之後,方法28〇進行至失定盒 2 84,在錢將就目前線程之預定最小指令資訊量是,、已 排入微處理器3〇之管路敗成決定。如同上述關於圖^示 決定盒260之説明,係由「資訊塊送出」增量器2 2 8及比 -26 本紙張尺度適用中國國家標準(CNS)A4規格(210x297公釐7" —------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 476915 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(24) 較态2 6 2之組合做成此決定。比較器2 6 2提供一輸入至及 P甲1 2 9 6,-旦目前線程之預定資訊塊數目已排入微處理器 管路,則比較器2 6 2之輸出發生。 及閘2 9 6之輸出信號2 9 7傳送至轉移位址計算器ιΐ4, 然後孩計算器決足了已切換的線程(亦即目前線程)之重户欠 指令指標並對目前線程撤消轉移位址清除(ba清除)^ 號。在更一般之層面,當發生線程』刀換時,需要一指令/旨 標以識別重啓已發生切換的1猛之位置。此一指令指二; 爲被預測爲取用之轉移指令目嫖,在此情況係由^移 切換邏輯152提供該指令指標;(2)由微碼提供;或(3)由 轉移位址計算器1 1 4提供(如同剛在上面所討論之情況)。 在決定盒2 9 8之正面決定之後,進而在決定盒3〇〇對是 否已經發出指令轉譯後端清除信號3 〇 2做成夬定。若是如 此,則在步驟3 0 3進行線程切換。替代性地,在決定盒 2 9 8抑或3 0 0之負面決定之後,在步驟3〇4維持目前之: 程選擇。方法2 8 0則終止於步驟3 q 6。 为部清除遥輯(1 5 6) 内β官路清除作業係由微指令轉換引擎5 4本身呼求 的,此與k微指令轉換引擎5 4外部(例如:從「核歲」清 除作業形#之退離邏輯)呼求之外部清除相反。因爲做2 與目d線程相闞聯狀況而呼求清除狀況具有很高之機率,、' 對線程切換作業言此種清除作業是所期望之事件,而替代 線程可做好在管路中處理之準備(例如:已充填之^衝 器)0 -27- 本紙張尺度適用中國國家標準(⑶―規格⑽χ 297公髮 --1-----------------^--------- (請先閱讀背面之注意事項再填寫本頁) A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(25) ==根據本發明示範具體實施例,在發生峨 流ΙΓ Γ線程處現器中進行線程切換作業之方法31〇 L王圖。万法3 ! 〇始於 號的發生。表考在琢處已偵測到清除信 實、A ^ 乂圖A所717的切換控制邏輯130之示範具 :列’此可由偵測指令轉譯轉移位址計算器清除 叫信號3〇2之發出而實現之。很特別地,所示 w3Q2提供輸人至及心14,及間3i4尚收 =56之輸入。如上述之説明,當由「計數資訊塊未 ^冒量器252所記錄之指令串緩衝器…中之資訊塊未 t目超過存於「切換前資訊塊未定」暫存器25〇中之値 、比車乂态2 5 6〈輸出發生。因此,比較器2 5 6輸出發生 以代表方法31〇之线盒316所代表狀況之正決定,並後 在步碟318進行線程切換作業。很特别地,當及問31^之 兩個輸人均發生時,M及,14之輸出發生並依次提供一 發生的?入至或問24 5。在另一方面,若在決定盒316做 了負決足,則在步驟3 2 〇維持目前之線程選擇。然後方法 3 1 0終止於步驟3 2 2。 無資料流動遴鲺Γ 在目前線程發生1位準緩衝記憶體未取得資料之情況, 典型上需要相當大之時計週期數目以完成長期等待作業。 若符合圖9所示流程圖指定之長期等待作業之條件,在此 情況下長期等待邏輯丨5 4可引發線程切換作業。總之,若 不符合長期等待作業之全部條件,長期等待邏輯丨5 4將不 會引發線程切換作業。在此情況下,需要一替代邏輯。 -28 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 x 297公釐) --I-----------------^--------- (請先閱讀背面之注意事項再填寫本頁) A7 五、發明說明(26 ) 經濟部智慧財產局員工消費合作社印製 圖1 1爲示出根據本於 — 處理器内的特定線程:「:範具體貫施例在發生對多線程 處理器内進行線;貝枓=」狀況時’在多緣程 始於步驟3 3 2 ,在_^業〈万法33G流程圖。方法33〇 .,_ 處偵測到對目前線程無指令從统合續 衝記憶體44流至指合隹p 7攸、无口、犮 -―曰油〜 ▽串1^衝器1〇6。參考圖15A,在一個 不範具體實施例中,^叮丄 社 1UI — 此可由當指令串供至指令串緩衝器 母…十週期,統合緩衝記憶體4續發出資料流動 / 4 (發生(或撤消)而加以偵測。「無資料流動」狀 況亦可以至指令預解碼器1〇8的資料流動鎖定做偵測,因 :此意1從統合緩衝記憶體44至指令串緩衝以06之資料 w動鎖疋。「然貧料流動」狀況亦可以至指令預解碼器 1 〇 8的貝料泥動鎖定做偵測,因爲此意指從統合緩衝記憶 體44至指令串緩衝器106之資料流動鎖定。 在决足益3 3 6 ’就從統合緩衝記憶體4 4至指令串緩衝 10 ό <典資料流動是否已經過了遺定最小時計週期數目 成决走。至此爲止,圖1 5 Α所示之線程切換控制邏輯1 包括一「無資料流動」計數器3 3 8,該計數器在表示目 線程無指令串至指令串缓衝器丨〇 6之資料流動信號3 3 4 撤消的每一循序時計週期會增量。當從指令串緩衝器1 至指令預解碼器丨〇 8之資料流動恢復發生時,信號a 3 發出將重定計數器3 3 8。信號3 3 5可響應於信號2 3 — 2 3 6 (亦即BP準備及NOT IS停滞信號)執行之及閘功能而 生。邏輯1 3 6尚包含一「無資料流動週期」暫存器340 該暫存器可經控制暫存器匯流排2 4 0做程式规劃,以儲 器 做 3 6 前 被 06 5之 2及 發 存 (請先間讀背面之注意事項再填寫本頁) 訂---------線秦 -29- 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 χ 297公釐) 476915 A7 B7__ 五、發明說明(27) 表示在可偵測到無資料流動狀旯之前預定之最小時計週期 數目値。在一本發明之替代具體實施例中,表示此預定時 計週期數目之値可爲固定線路程式。計數器3 3 8及暫存器 3 40提供輸入至比較器3 4 2,當計數器3 3 8維持之値超過 存於暫存器340内之値時,比較器3 4 2發出一輸出至及閘 3 4 4。比較益3 4 2 (輸出信號之發生對應於風丨1雄示生定 盒3 3 6之正決定。 在決定盒3 3 6負決定之情況,方法3 3 〇進纡至維持段前 線程選擇之步壤3 4 5。 在決足盒3 3 6之正面決定之後,方法3 3 〇進行至實行決 疋盒3 4 6及3 4 8之決定,該等決定係與圖8所示方法2 2 〇之 決定盒24 8及2 6 0所做之決定一致的。因此,亦示出在決 定盒3 4 6及3 4 8實行決定的比較器2 5 6及2 6 2之輸出,以 k供輸入至及閹3 4 4。及閘3 4 4之輸出再次提供輸入至或 閘245。此提供若在決定盒336、346及348發生正面決 定時,在方法3 3 0之步驟3 5 0進行線程切換作業之邏輯實 現。替代性地,若在決定盒3 3 ό、3 4 6或3 4 8之任一個發 生了負決定,則在步驟3 5 2維持目前之線程選擇。然後方 法3 3 0在步驟3 5 4終止。 遂迫線程改變邏輯(1 6 0、 在某些情況下,可遇到尤其是線性的,亦即不含許多轉 移指令之指令串(包含第一抑或第二線程)。假設無任一上 述或下列所討論之其它狀況發生,可想.像到若無引發線程 切換之事件發生,此一線性線程將耗去不相稱比例之處理 -30- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂----- 線 經濟部智慧財產局員工消費合作社印製 A7 五、發明說明(28 ) B7 經濟部智慧財產局員工消費合作社印製 貝源爲了防止此一線性線程過度使用處理器資源,本 二^ ^出了對來自一資源(類如指令串緩衝器1 0 6 )的單一 、羅之預足扣令I詋1排序或分配後引發線程切換作業之 。圖12爲示出根據本發明之示範具體實施例,對一特定線 孝(例如·第〇線程)從指令串緩衝器1 〇 6至指令預解碼哭 :二之預定指令資訊量排顧分配)時,在-多線程處: ::進行線程切換作業之方法3 6 0流程圖。方法36〇起始 、;=I 3—6 2,在琢處選取了一特定線程(例如:第〇線程) 炙扣7貝Λ,俾仗揭令串緩衝器丨〇 6排序及分配。此選 可由線程切換控制邏輯⑴輸MMUX132之線程 號1 3 4之狀態來表示。 ° 在決定盒3 6 4 ’將就目前線程(例如:第0線程)之預定最 大指令資訊量是否已從指令串緩衝器1()6排序做成決定。 示於圖15A之示範線程切換控制邏輯136包含一「資源奢 夕私式」I存态3 6 6,琢暫存器可經由控制暫存器g流排 2 4 0做程式規劃以儲在矣+ _ . ^ - 者存表不一可在線程切換作業引發前 指令串緩衝器1G6排序之特定線程之預定最大資訊塊數曰 値。在本發明之替代具體實施例中,表示此預定最大資訊 塊數目(値可關定線路程式。「資源奢侈程式」暫存 3 6 6及維持特足線程從緩衝器1()6發出之資訊塊數目 「資訊塊送出」增量器2 2 8提供了至比較器川之輸入 當增里益228輸出値超過存於「資源奢侈程式」暫存 3 66中之値時’比較器3 6 8發出輸出至及閘3 44。因此 訂 從 固 器 之 器 本紙張尺度適用中國國家標準 -31 476915 A7 B7 五、發明說明(29) 經濟部智慧財產局員工消費合作社印製 比較器3 6 8其輸出信號之發出係對應於圖以示 之正決定。 |364 所示之及閘3 44輸出提供了至或閘2 4 5之輸入, 供了一「***FTC」輸出434。 若在決足盒3 64做了負面決定,方法3⑹進赶至步驟 37〇,在該處維持了目前之線程選擇,其後方法3 6 0圈迴 至決定盒3 6 4。 在決足盒364之正面決定之後,方法36〇進行至實施在 決疋盒3 7 2及3 7 4之決定,該等決定係與圖8所示方法2 2 〇 之決足盒2 4 8及2 6 0所做決定一致的。因此,實現決定盒 3 7 2及3 7 4做成之決定所示之比較器2 5 6及2 6 2輸 了至及閘3 44之輸入。 ^ 在決定盒3 3 6、3 4 6及3 4 8之正面決定,一流動標記(或 「***的流動」)(例如:100)被***從指令串緩衝器 106所分配之指令串。很特別地,因線程切換作業可能已 在不完整之指令上發生,將需要轉移位址計算器丨丨4重啓 目前線程之取得,所以***之流動是必要的。在此情況, 轉移預測單元1 1 3將***之流動***指令串以指出論迫之 線程改變。***之流動县有發生的F〇rceU〇PValid。***之 泥動僅在已經排程之資訊塊即將從指令申緩衝器1 〇 6送至 指令預解碼器1 〇 8之後才***。一旦相資訊塊受分配後, ***之流動多工化成一?〇1:(^。〇?\/^(^01*攔(611¥61^一111!'〇襴)。 至此爲止,參考示出在指令串緩衝器1 〇 6内之示範行列分 刻1 2 2中儲存的資訊塊用之envent jnf〇攔之圖1 6。所示之 且亦提 (請先閱讀背面之注意事項再填寫本頁) 訂---- s'. 32- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 476915 A7 --------B7____ 五、發明說明(3〇) ***FIC 1輸出4 3 4是用以動作,以在(1 )分割 122中旦錄12〇内所存資訊塊之价糊i2i目前内容 與(2)***之流動4 5 2間做選擇。在輸出2“是在比較器 3 6 8之輸出發出後發生之情況,***之流動々”將被*** 來自刀1 2 2所分配到的資訊塊化卜欄i 2工。 然後喜應於及閘3 4 4輸出之發出而發生之選擇信號1 3 4 在步驟3 7 6進行線程切換作業。替代性地,若在決定盒 3 6 4 3 7 2或3 7 4之任一個發生負面決定,在步驟3 7 8維 持目則又線程選擇。然後方法3 6 〇在步驟3 8 〇終止。 ,由於發生線程切換之資料塊並無可提供某些線程切換作 業預音之特殊或差別的特色,由強迫線程改變邏輯1 6 〇所 引起之、’泉私切換作業異於在本規範中所討論之其它線程切 換作業。尤其是在線程切換控制邏輯丨3 6中之其它邏輯 1 5 0-164所執行之線程切換作業係附帶著一個使得線程切 換作業開始之條件,因而不須警告影響到之硬體。指令操 縱邏輯1 1 0之設置無法處理突然及未預期之線程切換作 業因而***之流動標記提供一種通知指令操縱邏輯 1 1 0已在上游發生的線程切換作業之機制。 再者,對於強迫之線程改變,如同在本規範踩封論之其 Έ:線程切換作業,需要一「再啓動」指令指標。因強迫之 線程改變邏輯1 6 〇強迫了指令流動之中斷,故希望供予再 啓動扎標之微碼與下一指令指標1 〇 〇相對立。 ί卜部清除遂轅Π 62) 如上述關於内部清除邏輯丨5 6之説明,斗萍清除是從微 -33- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) —------------------^--------- (請先閱讀背面之注意事項再填寫本頁) 476915
五、發明說明(31) 指令轉換引擎5 4之外部呼求的。 圖1 3爲示出根據本發明示範具體實施例,在發生外部管 路清除時於多線程處理器中進行線程切換作業之方支4〇〇 流.程圖。方法40 0始於步驟4 0 2,在該處偵測到一外部清 ,信號發生。參考圖15A所示線程切換控制邏輯136之示 範具體實施例,其可由偵測提供至或閘2 4 5直接輸入之追 蹤緩衝記憶體/微指令轉換引擎清除信號「TCmitecle^」 404之發出而實施。因此,信號4〇4之發生將引起圖5所示 從線程切換控制邏輯丨3 6傳送至Μυχ 132之線程選擇信號 1 3 4之發生。此係在方法4 〇 〇之步驟4 〇 6反映出來,其後 該方法終止於步驟4 Q 8。 ***流程邏輟(164) 在微指令轉換引擎54内,當圖3所击之指令轉換查詢緩 衝态(Instruction Translation Lookaside Buffer,下文簡稱 ITLB) 102記綠了頁次遺漏,一流動標記(亦稱爲「***之 流動」)被***指令串以標記此事件。此頁次遺漏導致頁 次遺漏處理器(未示出)用掉高達i 5 〇個時計週期(僅當做舉 例)進订相當長4頁次行進作業。對於在目前線程之指令 串發生了頁次遺漏之多線程處理器中,將有利於進行線程 切換作業俾容許一替代線程使用頁次行進作業引入之等待 時間。如上所説明者,***流程邏輯丨6 4提供了在頁次遺 漏發生時實施及進行線程切換功能之邏輯示範具體會施 例0 除頁次遺漏外’可導致***流程的其它事件爲此項技藝 -34- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) -J · 訂 線 . 經濟部智慧財產局員工消費合作社印製 4/〇y〇 五、發明說明(32) 經濟部智慧財產局員工消費合作社印製 所熟知者或特殊之微處理器架構。 二圖14爲示出根據本發明之示範具體實施例,在偵 」泉私足扣令串中(***流程(僅做爲舉例,該***流程 二ITLB 1 02上之頁次遺漏)時,於多線程處理器中進行 泉裎切換作業之方法4 2 〇流程圖。方法4 2 〇始於在步驟 422對目前線裎(例如:第〇線程)之選擇。此選擇可由從 線程切換控制邏輯136輸出至Μυχ 132的線程選擇信^ 13 4之狀態表示。在決定盒42 4,就目前線程指令串内指^ 7 澤事件「IT+ventid」攔4 2 6是否指出一插.入流程(例 如:不具有,0000或,0111値)做成決定。很特別地,在指 轉譯事件欄42 6内出現之上述數値可表示無***之流程 參考1 5 A,所示之攔4 2 6將輸入至一對比較器(或其 邏輯)42 8及4 3 0,以決定趙42 6是否包含’〇〇〇〇抑或,〇1 値。若是如此,比較器4 2 8或4 3 0發出一輸出至反或 4 3 2 ’其輸出提供一輸入至或亂2 4 5。 在決定盒4 3 6,可視需要菰a標絲程(μ如:第丨線程) 預定最小指令資訊量是否可用在從指令串緩衝器1 〇 6分 做成決定。可利用反或閘4 3 2之輸出及比較器26 2之輪 做成此決定。 在決定盒424及4 3 6做了正決定之後,然後可在步 4 3 8進行線程切換作業。很特別地,反或閘4 3 2發出之 出經或閘2 4 5傳送以引起選擇信號1 3 4可對應於在步 4 3 8進之線程切換作業。替代性地,若在決定盒4 2 4 4 3 6之任一個做了負決定,患在步驟4 4 0維持目前線程 -35 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 令 它 11 之 出 驟 輸 驟 或 選 1 --------^--------- (請先閱讀背面之注意事項再填寫本頁) 476915 A7 B7 五、發明說明(33) 擇。然後方法4 2 0在步驟4 4 2终止。 鼓論 、上關方'圖1 5所纣淪之線程切換 _ 具體實施例中,所描述之許多邏輯15〇16=耳_; 扼 孓:暫:器及比較器之組合實現的。在本發:用 只犯例中,這些邏輯的某些或全部可使職量器來余現肢 ::量器將從一預定的、可程式化之値減量 ::
時發出信號。此一具體實施例示於圖l5B。 々I 摘要而言,上述線程切換邏輯136是很 供很多爲響應於有利於執料程切㈣業之事件發 用。於貫現及進行線程切換作業之彈性機構。再者,藉 私式化參數〈涵括’本發明容許對種種的情況及考量修改 =周㈣換機構。舉例而言,當執行一種類型之應用 時(例如:夕媒體應用),希望將線程切換機構之參數嗖定 ^與當執行不同類型應用(例如:文字處理應用)時相異之 線 線程切換邏輯136適用於多線程處理器中路徑(在來源資 源與目的資源之間)頻帶寬及/或處理資源之時間切割。在 上,之線程切換邏輯丨3 6係用來分配從一指令事緩衝器至 -指令預解碼器的兩個線程之指令資訊睦,將極易見到本 發明内容可用以分配一處理器管路内任一資源至任一目的 的多個線程之指令資訊。 、因而,已説明了一種用於多線程處理器中邀程切換之方 法及裝置。雖然係參考挂定之示範具體實施例説明本發 明,不過可對這些夬體實施例做各種修改變更而不偏離本 -36- 本紙張尺度適财關i_i^s)A4規格咖χ挪公爱「 476915 A7 _B7_ 五、發明說明(34 ) - 發明之廣泛精神及範圍將是很明顯的。因此,該規範及附 圖都認定爲係例證而非限制性之意義。 經濟部智慧財產局員工消費合作社印製 37- ---------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
Claims (1)
- 、申請專利範圍 ’—種在多線程處理器中 法包含: 進订、,泉程切換作業之方法,讀方 偵測來自多線程處理哭 ^ 之~ Μ π、 内—指令資訊源對一第〜% # 弟一預足指令資訊量之分配;及 忒I 鲁應於對第一線程之第—、 剛,開始對-來自該指令資‘兑令資訊量分配之價 分配。 貝汛源艾弟二線程之指令資訊 2.如申請專利範圍第i 預金0人… 去,其中對第一線程之第 t、疋扣令貧訊量分配 罘〜 户斤八和、斤 1貝,則包含維持從該指令資訊資、店 斤刀配又弟一線程離散之 A源 齡也、』匕A 7貝通I計數,以及決宏 3 t;,資訊量計數何時超過-第-預定臨界値 專!範圍第2項之方法,其中對第-線程離散、 才日令貧訊量分配之計數, 嗎政< ^^ ^ ^ ^ 匕3在自孩指令資訊源之_邱 4 ^令^財之分料,增量-計數器。 味政 外·如申請專利範圍第2項之 >入次、B 又万法,其中對第一線程離勒> 曰7貝λ夏分配之計數, —〈 散指令資訊量之分配時,::在末自爾貧訊源之離 里心刀阢日守,減量一計數器。 5·如申請專利範圍第1項 ,, 万去’其中該偵測包本A 7 私式化儲存單元内容與一擗 匕口在—可 曰 十數备内谷間執行比較作 業孩計數器維持來自該指令資訊源所分配之::乍 之離散指令資訊量之計數。 足弟一線程 6·如申請專利範圍第1項 ^ w /+ / ,/、中该债測包.含將預定 ^界値《可程式化儲存單 射九疋 佶^ ^ , 存載入—減量詁數器做爲初始 値,並偵測該減量計數器暫存器何時爲零値。馬 本紙張尺度冗用中國國家 ------mt----------------訂---------線 f請先閱讀背面之注音?事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 -38 - 476915 A8 B8 C8 D8 六 申睛專利範圍 經濟部智慧財產局員工消費合作社印製 7·如申請專利範圍第1項之方法,其中該指令資訊源包含 一儲存單元,該單元受分割以將第一線程之指令資訊ς 存在一第一分割及第二線程之指令資訊存於_第二L 割,且其中對第二線程指令資訊分配之開始包含操刀 程選擇邏輯以選擇來自指令資訊源之第二分割而=第二 分剳之指令資訊做分配。 8.如申凊專利範圍第1項之方法,包括決定第二線程之第 一預走指令資訊量是否可用於從指令資訊源之分配,且 =當第二線程之第二預定指令資訊量可甩於分配時才開 始來自孩指令資訊源第二線程之指令資訊分配。 9·如申請專利範圍第8項之方法,其中該指令資訊源包含 一儲存單元,且其史篇二線程之第二預定指全資訊量是 否可用於從指令資訊源分配之決定,包含維持該儲存單 元所收入之第二線程離散指令資訊量計數,並決定該儲 存單元所收入之離散指令資孤量計數何時超過一第二預 定臨界値。 10·如申凊專利範圍第1項之方法,包括決定第一線程之一 弟二預定指令資訊量是否已從該指令資訊源分配,且僅 當第一線程之第三預定指令資訊量已從該指令資訊源 分配時才開始來自該指令資訊源第二線程之指令資訊 配。 11.如申請專利範圍第1 〇項之方法,其中該第三預定指令 訊量等於或大於第一指令組的全指令之最小指令資訊 量0 -39- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------------魏 (請先閱讀背面之注意事項再填寫本頁) 訂---------線· 党 分 資 經濟部智慧財產局員工消費合作社印製 476915 A8 B8 C8 D8 六、申請專利範圍 12. 如申請專利範圍第1 0項之方法,其中第一線程之第三預 定指令資訊量是否已從該指令資訊源分配之決定,包含 計數來自該指令資訊源之第一線程離散指令資訊量之分 配,並決定從該指令資訊源所分配之離散指令資訊量計 數是否超過一第三預定臨界値。 13. 如申請專利範圍第1項之方法,包括在開始對來自該指 令資訊源之第二線程做指令資訊分配之前,將一流動標 記***含來自該指令資訊源分配之第一線程指令資訊之 指令串。 14. 如申請專利範圍第1項之方法,包括決定第一線程之一 第四預定指令資訊量是否已從該指令資訊源分配,且若 如此的話,則偵測將從指令資訊源分配之第一線程指令 資訊内之轉移指令,且響應,於轉移指令之偵測,開始對 來自該指令資訊源第二線程指令資訊之分配。 15. 如申請專利範圍第1 4項之方法,包含偵測來自指令資訊 源第一線程之一第四預定指令資訊量之分配,響應於對 該第四預定指令資訊量分配之偵測,檢查接著將受分配 之第一線程指令資訊以識別一轉移指令,並響應於對即 將受分配之第一線程指令資訊内轉移指令之識別,開始 對來自該指令資訊源第二線程指令資訊之分配。 16. 如申請專利範圍第1 5項之方法,其中對第一線程之第四 預定指令資訊量分配之偵測,包含計數來自該指令資訊 源第一線程離散指令資訊量之分配,並決定該離散資訊 量之計數何時超過一第四預定臨界値。 -40- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) * . _ i-----------------··---訂---------線-------- (請先閱讀背面之注意事項再填寫本頁) 476915 As劭C8D8 六、申請專利範圍 17·如申請專利範圍第!項 器之處理器管路中第 ^ c套偵測菽多線程處理 停滞狀況之偵測後::: = :况,偵測在接著該 並響應於該第-預定時„ =歷定時:間隔, 孩指令資訊源第二線程指令資訊之分配。,^對來自 18.如申請專利範圍第1 中從-上诱偵測在處理器眷路 訊之流動ί2入!指令資訊源並無第,指令資 , 二〜‘接著無該指令資訊流動之偵測後何時 已經歷了一第二預定時間間隔,並響應於該第二預定時 間間隔經歷之偵測,開始對來自該指令資訊源第二線程 指令資訊之分配。 19·如申請專利範圍第丨項之方法,.包括偵測在該指令資訊 源收到之第一 |泉程指令資訊中之流動標記,並響應於,該 流動標記之偵測,開始對來自該指令資訊源策二線程指 令資訊之分配。 20.如申請專利範圍笨丨項之方法,其中該流動標記指出j 該指令資訊源之處理器管路上游中之一位置發生置农遺 漏0 J. I -----r---訂---------線 i^w. (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 -41 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/302,633 US6535905B1 (en) | 1999-04-29 | 1999-04-29 | Method and apparatus for thread switching within a multithreaded processor |
Publications (1)
Publication Number | Publication Date |
---|---|
TW476915B true TW476915B (en) | 2002-02-21 |
Family
ID=23168579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089108132A TW476915B (en) | 1999-04-29 | 2000-05-03 | Method and apparatus for thread switching within a multithreaded processor |
Country Status (10)
Country | Link |
---|---|
US (8) | US6535905B1 (zh) |
EP (1) | EP1185924B1 (zh) |
CN (2) | CN1196060C (zh) |
AU (1) | AU4480200A (zh) |
BR (1) | BR0010602B1 (zh) |
DE (1) | DE60032481T2 (zh) |
HK (1) | HK1042363A1 (zh) |
IL (2) | IL146159A0 (zh) |
TW (1) | TW476915B (zh) |
WO (1) | WO2000067113A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189230B2 (en) | 2004-03-31 | 2015-11-17 | Intel Corporation | Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution |
Families Citing this family (223)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2728559B1 (fr) * | 1994-12-23 | 1997-01-31 | Saint Gobain Vitrage | Substrats en verre revetus d'un empilement de couches minces a proprietes de reflexion dans l'infrarouge et/ou dans le domaine du rayonnement solaire |
US6385715B1 (en) * | 1996-11-13 | 2002-05-07 | Intel Corporation | Multi-threading for a processor utilizing a replay queue |
US7529907B2 (en) | 1998-12-16 | 2009-05-05 | Mips Technologies, Inc. | Method and apparatus for improved computer load and store operations |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US7237093B1 (en) | 1998-12-16 | 2007-06-26 | Mips Technologies, Inc. | Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams |
US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
US6389449B1 (en) | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US7035997B1 (en) * | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6507862B1 (en) * | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
US6671795B1 (en) * | 2000-01-21 | 2003-12-30 | Intel Corporation | Method and apparatus for pausing execution in a processor or the like |
US7139901B2 (en) * | 2000-02-08 | 2006-11-21 | Mips Technologies, Inc. | Extended instruction set for packet processing applications |
US7076630B2 (en) * | 2000-02-08 | 2006-07-11 | Mips Tech Inc | Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memo management |
US7502876B1 (en) | 2000-06-23 | 2009-03-10 | Mips Technologies, Inc. | Background memory manager that determines if data structures fits in memory with memory state transactions map |
US7058064B2 (en) * | 2000-02-08 | 2006-06-06 | Mips Technologies, Inc. | Queueing system for processors in packet routing operations |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US7065096B2 (en) | 2000-06-23 | 2006-06-20 | Mips Technologies, Inc. | Method for allocating memory space for limited packet head and/or tail growth |
US7058065B2 (en) * | 2000-02-08 | 2006-06-06 | Mips Tech Inc | Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing |
US7155516B2 (en) * | 2000-02-08 | 2006-12-26 | Mips Technologies, Inc. | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US7165257B2 (en) * | 2000-02-08 | 2007-01-16 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US7082552B2 (en) * | 2000-02-08 | 2006-07-25 | Mips Tech Inc | Functional validation of a packet management unit |
US7649901B2 (en) * | 2000-02-08 | 2010-01-19 | Mips Technologies, Inc. | Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing |
US7032226B1 (en) * | 2000-06-30 | 2006-04-18 | Mips Technologies, Inc. | Methods and apparatus for managing a buffer of events in the background |
US7042887B2 (en) * | 2000-02-08 | 2006-05-09 | Mips Technologies, Inc. | Method and apparatus for non-speculative pre-fetch operation in data packet processing |
US7856633B1 (en) * | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US7162615B1 (en) | 2000-06-12 | 2007-01-09 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
JP2004518183A (ja) * | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
US6701518B1 (en) * | 2000-08-03 | 2004-03-02 | Hewlett-Packard Development Company, L.P. | System and method for enabling efficient processing of a program that includes assertion instructions |
US6981129B1 (en) * | 2000-11-02 | 2005-12-27 | Intel Corporation | Breaking replay dependency loops in a processor using a rescheduled replay queue |
US7757065B1 (en) * | 2000-11-09 | 2010-07-13 | Intel Corporation | Instruction segment recording scheme |
US20020087844A1 (en) * | 2000-12-29 | 2002-07-04 | Udo Walterscheidt | Apparatus and method for concealing switch latency |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US20020156999A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Mixed-mode hardware multithreading |
US6651158B2 (en) * | 2001-06-22 | 2003-11-18 | Intel Corporation | Determination of approaching instruction starvation of threads based on a plurality of conditions |
US20030120896A1 (en) * | 2001-06-29 | 2003-06-26 | Jason Gosior | System on chip architecture |
US7363474B2 (en) * | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7127561B2 (en) * | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
US20030126416A1 (en) * | 2001-12-31 | 2003-07-03 | Marr Deborah T. | Suspending execution of a thread in a multi-threaded processor |
US7366884B2 (en) * | 2002-02-25 | 2008-04-29 | Agere Systems Inc. | Context switching system for a multi-thread execution pipeline loop and method of operation thereof |
US7747989B1 (en) | 2002-08-12 | 2010-06-29 | Mips Technologies, Inc. | Virtual machine coprocessor facilitating dynamic compilation |
US7065596B2 (en) * | 2002-09-19 | 2006-06-20 | Intel Corporation | Method and apparatus to resolve instruction starvation |
US7200721B1 (en) * | 2002-10-09 | 2007-04-03 | Unisys Corporation | Verification of memory operations by multiple processors to a shared memory |
US7149900B2 (en) * | 2002-12-12 | 2006-12-12 | Intel Corporation | Method of defending software from debugger attacks |
US20040128488A1 (en) * | 2002-12-26 | 2004-07-01 | Thimmannagari Chandra M. R. | Strand switching algorithm to avoid strand starvation |
US20040128476A1 (en) * | 2002-12-26 | 2004-07-01 | Robert Nuckolls | Scheme to simplify instruction buffer logic supporting multiple strands |
US7657893B2 (en) | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US7363625B2 (en) * | 2003-04-24 | 2008-04-22 | International Business Machines Corporation | Method for changing a thread priority in a simultaneous multithread processor |
US20040216103A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Mechanism for detecting and handling a starvation of a thread in a multithreading processor environment |
US7401208B2 (en) * | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor |
US7360062B2 (en) * | 2003-04-25 | 2008-04-15 | International Business Machines Corporation | Method and apparatus for selecting an instruction thread for processing in a multi-thread processor |
US7401207B2 (en) | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Apparatus and method for adjusting instruction thread priority in a multi-thread processor |
US20040268099A1 (en) * | 2003-06-30 | 2004-12-30 | Smith Peter J | Look ahead LRU array update scheme to minimize clobber in sequentially accessed memory |
US7441245B2 (en) * | 2003-08-14 | 2008-10-21 | Intel Corporation | Phasing for a multi-threaded network processor |
US7873785B2 (en) * | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
US20050047439A1 (en) * | 2003-08-26 | 2005-03-03 | Madajczak Tomasz Bogdan | System to process packets according to an assigned sequence number |
US7496921B2 (en) * | 2003-08-29 | 2009-02-24 | Intel Corporation | Processing block with integrated light weight multi-threading support |
US20050055594A1 (en) * | 2003-09-05 | 2005-03-10 | Doering Andreas C. | Method and device for synchronizing a processor and a coprocessor |
US7133969B2 (en) * | 2003-10-01 | 2006-11-07 | Advanced Micro Devices, Inc. | System and method for handling exceptional instructions in a trace cache based processor |
US7555633B1 (en) | 2003-11-03 | 2009-06-30 | Advanced Micro Devices, Inc. | Instruction cache prefetch based on trace cache eviction |
WO2005048511A2 (en) * | 2003-11-07 | 2005-05-26 | Sharp Laboratories Of America, Inc. | Systems and methods for network channel allocation |
DE10353267B3 (de) * | 2003-11-14 | 2005-07-28 | Infineon Technologies Ag | Multithread-Prozessorarchitektur zum getriggerten Thread-Umschalten ohne Zykluszeitverlust und ohne Umschalt-Programmbefehl |
US8069336B2 (en) * | 2003-12-03 | 2011-11-29 | Globalfoundries Inc. | Transitioning from instruction cache to trace cache on label boundaries |
US7631307B2 (en) * | 2003-12-05 | 2009-12-08 | Intel Corporation | User-programmable low-overhead multithreading |
US7441101B1 (en) | 2003-12-10 | 2008-10-21 | Cisco Technology, Inc. | Thread-aware instruction fetching in a multithreaded embedded processor |
US7360064B1 (en) | 2003-12-10 | 2008-04-15 | Cisco Technology, Inc. | Thread interleaving in a multithreaded embedded processor |
US20060212874A1 (en) * | 2003-12-12 | 2006-09-21 | Johnson Erik J | Inserting instructions |
US7493621B2 (en) * | 2003-12-18 | 2009-02-17 | International Business Machines Corporation | Context switch data prefetching in multithreaded computer |
US7206922B1 (en) | 2003-12-30 | 2007-04-17 | Cisco Systems, Inc. | Instruction memory hierarchy for an embedded processor |
US7213126B1 (en) | 2004-01-12 | 2007-05-01 | Advanced Micro Devices, Inc. | Method and processor including logic for storing traces within a trace cache |
US20050166177A1 (en) * | 2004-01-27 | 2005-07-28 | Ylian Saint-Hilaire | Thread module chaining |
US20050183065A1 (en) * | 2004-02-13 | 2005-08-18 | Wolczko Mario I. | Performance counters in a multi-threaded processor |
US20090299756A1 (en) * | 2004-03-01 | 2009-12-03 | Dolby Laboratories Licensing Corporation | Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners |
US7426731B2 (en) * | 2004-03-22 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Determining processor usage by a thread |
US7197630B1 (en) | 2004-04-12 | 2007-03-27 | Advanced Micro Devices, Inc. | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation |
US7418582B1 (en) | 2004-05-13 | 2008-08-26 | Sun Microsystems, Inc. | Versatile register file design for a multi-threaded processor utilizing different modes and register windows |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7365007B2 (en) * | 2004-06-30 | 2008-04-29 | Intel Corporation | Interconnects with direct metalization and conductive polymer |
US20060009265A1 (en) * | 2004-06-30 | 2006-01-12 | Clapper Edward O | Communication blackout feature |
US7519796B1 (en) | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Efficient utilization of a store buffer using counters |
US7290116B1 (en) | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US7543132B1 (en) | 2004-06-30 | 2009-06-02 | Sun Microsystems, Inc. | Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes |
US7890735B2 (en) * | 2004-08-30 | 2011-02-15 | Texas Instruments Incorporated | Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture |
US9626194B2 (en) | 2004-09-23 | 2017-04-18 | Intel Corporation | Thread livelock unit |
US7748001B2 (en) * | 2004-09-23 | 2010-06-29 | Intel Corporation | Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time |
US7533139B2 (en) * | 2004-09-27 | 2009-05-12 | Microsoft Corporation | Method and system for multithread processing of spreadsheet chain calculations |
CN100384181C (zh) * | 2004-11-09 | 2008-04-23 | 北京中星微电子有限公司 | 一种ip网络环境下的多路音频缓冲处理的方法 |
US7254693B2 (en) * | 2004-12-02 | 2007-08-07 | International Business Machines Corporation | Selectively prohibiting speculative execution of conditional branch type based on instruction bit |
US8756605B2 (en) * | 2004-12-17 | 2014-06-17 | Oracle America, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
US7937709B2 (en) | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
US7430643B2 (en) * | 2004-12-30 | 2008-09-30 | Sun Microsystems, Inc. | Multiple contexts for efficient use of translation lookaside buffer |
US7853777B2 (en) * | 2005-02-04 | 2010-12-14 | Mips Technologies, Inc. | Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions |
US7657883B2 (en) * | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7752627B2 (en) * | 2005-02-04 | 2010-07-06 | Mips Technologies, Inc. | Leaky-bucket thread scheduler in a multithreading microprocessor |
US7657891B2 (en) | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency |
US7506140B2 (en) * | 2005-02-04 | 2009-03-17 | Mips Technologies, Inc. | Return data selector employing barrel-incrementer-based round-robin apparatus |
US7613904B2 (en) * | 2005-02-04 | 2009-11-03 | Mips Technologies, Inc. | Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler |
US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
US7681014B2 (en) * | 2005-02-04 | 2010-03-16 | Mips Technologies, Inc. | Multithreading instruction scheduler employing thread group priorities |
US7490230B2 (en) * | 2005-02-04 | 2009-02-10 | Mips Technologies, Inc. | Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor |
DE102005009083B4 (de) * | 2005-02-28 | 2007-05-10 | Infineon Technologies Ag | Multithread-Prozessor mit einer Synchronisationseinheit und Verfahren zum Betreiben eines solchen |
US20060206902A1 (en) * | 2005-03-14 | 2006-09-14 | Sujat Jamil | Variable interleaved multithreaded processor method and system |
US8195922B2 (en) | 2005-03-18 | 2012-06-05 | Marvell World Trade, Ltd. | System for dynamically allocating processing time to multiple threads |
US20060212853A1 (en) * | 2005-03-18 | 2006-09-21 | Marvell World Trade Ltd. | Real-time control apparatus having a multi-thread processor |
US8230423B2 (en) * | 2005-04-07 | 2012-07-24 | International Business Machines Corporation | Multithreaded processor architecture with operational latency hiding |
WO2006120367A1 (en) * | 2005-05-11 | 2006-11-16 | Arm Limited | A data processing apparatus and method employing multiple register sets |
US20070067502A1 (en) * | 2005-09-22 | 2007-03-22 | Silicon Integrated Systems Corp. | Method for preventing long latency event |
US8032710B1 (en) | 2005-09-28 | 2011-10-04 | Oracle America, Inc. | System and method for ensuring coherency in trace execution |
US8024522B1 (en) | 2005-09-28 | 2011-09-20 | Oracle America, Inc. | Memory ordering queue/versioning cache circuit |
US7937564B1 (en) | 2005-09-28 | 2011-05-03 | Oracle America, Inc. | Emit vector optimization of a trace |
US8037285B1 (en) | 2005-09-28 | 2011-10-11 | Oracle America, Inc. | Trace unit |
US7676634B1 (en) | 2005-09-28 | 2010-03-09 | Sun Microsystems, Inc. | Selective trace cache invalidation for self-modifying code via memory aging |
US7877630B1 (en) | 2005-09-28 | 2011-01-25 | Oracle America, Inc. | Trace based rollback of a speculatively updated cache |
US7870369B1 (en) | 2005-09-28 | 2011-01-11 | Oracle America, Inc. | Abort prioritization in a trace-based processor |
US8019944B1 (en) * | 2005-09-28 | 2011-09-13 | Oracle America, Inc. | Checking for a memory ordering violation after a speculative cache write |
US8015359B1 (en) | 2005-09-28 | 2011-09-06 | Oracle America, Inc. | Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit |
US7953961B1 (en) | 2005-09-28 | 2011-05-31 | Oracle America, Inc. | Trace unit with an op path from a decoder (bypass mode) and from a basic-block builder |
US8051247B1 (en) | 2005-09-28 | 2011-11-01 | Oracle America, Inc. | Trace based deallocation of entries in a versioning cache circuit |
US7987342B1 (en) | 2005-09-28 | 2011-07-26 | Oracle America, Inc. | Trace unit with a decoder, a basic-block cache, a multi-block cache, and sequencer |
US8370576B1 (en) | 2005-09-28 | 2013-02-05 | Oracle America, Inc. | Cache rollback acceleration via a bank based versioning cache ciruit |
US7966479B1 (en) | 2005-09-28 | 2011-06-21 | Oracle America, Inc. | Concurrent vs. low power branch prediction |
US8499293B1 (en) | 2005-09-28 | 2013-07-30 | Oracle America, Inc. | Symbolic renaming optimization of a trace |
US7949854B1 (en) | 2005-09-28 | 2011-05-24 | Oracle America, Inc. | Trace unit with a trace builder |
US20070101102A1 (en) * | 2005-10-27 | 2007-05-03 | Dierks Herman D Jr | Selectively pausing a software thread |
EP1963963A2 (en) * | 2005-12-06 | 2008-09-03 | Boston Circuits, Inc. | Methods and apparatus for multi-core processing with dedicated thread management |
US8275942B2 (en) * | 2005-12-22 | 2012-09-25 | Intel Corporation | Performance prioritization in multi-threaded processors |
JP4519082B2 (ja) * | 2006-02-15 | 2010-08-04 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置 |
US7877757B2 (en) | 2006-05-05 | 2011-01-25 | Microsoft Corporation | Work item event monitor for procession of queued events |
US8032821B2 (en) | 2006-05-08 | 2011-10-04 | Microsoft Corporation | Multi-thread spreadsheet processing with dependency levels |
US9146745B2 (en) * | 2006-06-29 | 2015-09-29 | Intel Corporation | Method and apparatus for partitioned pipelined execution of multiple execution threads |
US20080022283A1 (en) * | 2006-07-19 | 2008-01-24 | International Business Machines Corporation | Quality of service scheduling for simultaneous multi-threaded processors |
US8495649B2 (en) * | 2006-07-19 | 2013-07-23 | International Business Machines Corporation | Scheduling threads having complementary functional unit usage on SMT processors |
US7941643B2 (en) * | 2006-08-14 | 2011-05-10 | Marvell World Trade Ltd. | Multi-thread processor with multiple program counters |
US8046775B2 (en) | 2006-08-14 | 2011-10-25 | Marvell World Trade Ltd. | Event-based bandwidth allocation mode switching method and apparatus |
US7760748B2 (en) * | 2006-09-16 | 2010-07-20 | Mips Technologies, Inc. | Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch |
US7961745B2 (en) * | 2006-09-16 | 2011-06-14 | Mips Technologies, Inc. | Bifurcated transaction selector supporting dynamic priorities in multi-port switch |
US7990989B2 (en) * | 2006-09-16 | 2011-08-02 | Mips Technologies, Inc. | Transaction selector employing transaction queue group priorities in multi-port switch |
US7773621B2 (en) * | 2006-09-16 | 2010-08-10 | Mips Technologies, Inc. | Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch |
US8010745B1 (en) * | 2006-09-27 | 2011-08-30 | Oracle America, Inc. | Rolling back a speculative update of a non-modifiable cache line |
US8370609B1 (en) | 2006-09-27 | 2013-02-05 | Oracle America, Inc. | Data cache rollbacks for failed speculative traces with memory operations |
US8516462B2 (en) * | 2006-10-09 | 2013-08-20 | International Business Machines Corporation | Method and apparatus for managing a stack |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US20080148022A1 (en) * | 2006-12-13 | 2008-06-19 | Arm Limited | Marking registers as available for register renaming |
WO2008109870A1 (en) * | 2007-03-07 | 2008-09-12 | Spinealign Medical, Inc. | Transdiscal interbody fusion device and method |
US8347068B2 (en) * | 2007-04-04 | 2013-01-01 | International Business Machines Corporation | Multi-mode register rename mechanism that augments logical registers by switching a physical register from the register rename buffer when switching between in-order and out-of-order instruction processing in a simultaneous multi-threaded microprocessor |
US8521993B2 (en) * | 2007-04-09 | 2013-08-27 | Intel Corporation | Providing thread fairness by biasing selection away from a stalling thread using a stall-cycle counter in a hyper-threaded microprocessor |
US8261049B1 (en) | 2007-04-10 | 2012-09-04 | Marvell International Ltd. | Determinative branch prediction indexing |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
US20080263325A1 (en) * | 2007-04-19 | 2008-10-23 | International Business Machines Corporation | System and structure for synchronized thread priority selection in a deeply pipelined multithreaded microprocessor |
US7711935B2 (en) * | 2007-04-30 | 2010-05-04 | Netlogic Microsystems, Inc. | Universal branch identifier for invalidation of speculative instructions |
US7958323B1 (en) | 2007-05-09 | 2011-06-07 | Marvell Israel (M.I.S.L.) Ltd. | Multithreading implementation for flops and register files |
WO2008155807A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 情報処理装置と負荷調停制御方法 |
WO2008155804A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 同時マルチスレッドの命令完了制御装置 |
KR101100145B1 (ko) * | 2007-06-20 | 2011-12-29 | 후지쯔 가부시끼가이샤 | 명령실행 제어장치 및 명령실행 제어방법 |
EP2192483B1 (en) * | 2007-06-20 | 2016-04-20 | Fujitsu Limited | Processing device |
WO2008155845A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算処理装置 |
US7779234B2 (en) * | 2007-10-23 | 2010-08-17 | International Business Machines Corporation | System and method for implementing a hardware-supported thread assist under load lookahead mechanism for a microprocessor |
US20090172370A1 (en) * | 2007-12-31 | 2009-07-02 | Advanced Micro Devices, Inc. | Eager execution in a processing pipeline having multiple integer execution units |
US7793080B2 (en) * | 2007-12-31 | 2010-09-07 | Globalfoundries Inc. | Processing pipeline having parallel dispatch and method thereof |
US8086825B2 (en) * | 2007-12-31 | 2011-12-27 | Advanced Micro Devices, Inc. | Processing pipeline having stage-specific thread selection and method thereof |
US8479173B2 (en) * | 2008-07-09 | 2013-07-02 | International Business Machines Corporation | Efficient and self-balancing verification of multi-threaded microprocessors |
US8161493B2 (en) * | 2008-07-15 | 2012-04-17 | International Business Machines Corporation | Weighted-region cycle accounting for multi-threaded processor cores |
US8386547B2 (en) | 2008-10-31 | 2013-02-26 | Intel Corporation | Instruction and logic for performing range detection |
US8347309B2 (en) * | 2009-07-29 | 2013-01-01 | Oracle America, Inc. | Dynamic mitigation of thread hogs on a threaded processor |
EP2494361B2 (en) * | 2009-10-26 | 2019-01-09 | Externautics S.p.A. | Ovary tumor markers and methods of use thereof |
US20110191775A1 (en) * | 2010-01-29 | 2011-08-04 | Microsoft Corporation | Array-based thread countdown |
US9354926B2 (en) | 2011-03-22 | 2016-05-31 | International Business Machines Corporation | Processor management via thread status |
JP5861354B2 (ja) * | 2011-09-22 | 2016-02-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN102495762B (zh) * | 2011-11-16 | 2014-04-02 | 华为技术有限公司 | 一种线程调度方法、线程调度装置及多核处理器*** |
US9052909B2 (en) | 2011-12-07 | 2015-06-09 | Arm Limited | Recovering from exceptions and timing errors |
US8738971B2 (en) | 2011-12-07 | 2014-05-27 | Arm Limited | Limiting certain processing activities as error rate probability rises |
US8935574B2 (en) | 2011-12-16 | 2015-01-13 | Advanced Micro Devices, Inc. | Correlating traces in a computing system |
US9075621B2 (en) | 2011-12-23 | 2015-07-07 | Arm Limited | Error recovery upon reaching oldest instruction marked with error or upon timed expiration by flushing instructions in pipeline pending queue and restarting execution |
US8640008B2 (en) | 2011-12-23 | 2014-01-28 | Arm Limited | Error recovery in a data processing apparatus |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US9665375B2 (en) | 2012-04-26 | 2017-05-30 | Oracle International Corporation | Mitigation of thread hogs on a threaded processor and prevention of allocation of resources to one or more instructions following a load miss |
US9875105B2 (en) * | 2012-05-03 | 2018-01-23 | Nvidia Corporation | Checkpointed buffer for re-entry from runahead |
US9824013B2 (en) | 2012-05-08 | 2017-11-21 | Qualcomm Incorporated | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9514069B1 (en) | 2012-05-24 | 2016-12-06 | Schwegman, Lundberg & Woessner, P.A. | Enhanced computer processor and memory management architecture |
US8832500B2 (en) | 2012-08-10 | 2014-09-09 | Advanced Micro Devices, Inc. | Multiple clock domain tracing |
US9323315B2 (en) * | 2012-08-15 | 2016-04-26 | Nvidia Corporation | Method and system for automatic clock-gating of a clock grid at a clock source |
US8959398B2 (en) | 2012-08-16 | 2015-02-17 | Advanced Micro Devices, Inc. | Multiple clock domain debug capability |
US9645929B2 (en) | 2012-09-14 | 2017-05-09 | Nvidia Corporation | Speculative permission acquisition for shared memory |
US9317297B2 (en) * | 2012-09-27 | 2016-04-19 | Intel Corporation | Replay execution of instructions in thread chunks in the chunk order recorded during previous execution |
US10001996B2 (en) | 2012-10-26 | 2018-06-19 | Nvidia Corporation | Selective poisoning of data during runahead |
US9740553B2 (en) | 2012-11-14 | 2017-08-22 | Nvidia Corporation | Managing potentially invalid results during runahead |
US9632976B2 (en) | 2012-12-07 | 2017-04-25 | Nvidia Corporation | Lazy runahead operation for a microprocessor |
US20140181484A1 (en) * | 2012-12-21 | 2014-06-26 | James Callister | Mechanism to provide high performance and fairness in a multi-threading computer system |
US9569214B2 (en) | 2012-12-27 | 2017-02-14 | Nvidia Corporation | Execution pipeline data forwarding |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9823931B2 (en) | 2012-12-28 | 2017-11-21 | Nvidia Corporation | Queued instruction re-dispatch after runahead |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9547602B2 (en) | 2013-03-14 | 2017-01-17 | Nvidia Corporation | Translation lookaside buffer entry systems and methods |
US9471318B2 (en) | 2013-03-15 | 2016-10-18 | International Business Machines Corporation | System management and instruction counting |
CN104123195B (zh) * | 2013-04-23 | 2018-03-13 | 华为技术有限公司 | 一种指令清除方法及装置 |
US9367472B2 (en) | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US9582280B2 (en) | 2013-07-18 | 2017-02-28 | Nvidia Corporation | Branching to alternate code based on runahead determination |
KR20150019349A (ko) * | 2013-08-13 | 2015-02-25 | 삼성전자주식회사 | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 |
GB2519103B (en) | 2013-10-09 | 2020-05-06 | Advanced Risc Mach Ltd | Decoding a complex program instruction corresponding to multiple micro-operations |
TWI602113B (zh) * | 2013-11-14 | 2017-10-11 | 宏碁股份有限公司 | 操作介面切換方法及使用該方法之行動通訊裝置 |
US9535746B2 (en) * | 2013-12-19 | 2017-01-03 | International Business Machines Corporation | Honoring hardware entitlement of a hardware thread |
US10241498B1 (en) * | 2014-05-15 | 2019-03-26 | Feetz, Inc. | Customized, additive-manufactured outerwear and methods for manufacturing thereof |
US9824413B2 (en) * | 2014-11-15 | 2017-11-21 | Intel Corporation | Sort-free threading model for a multi-threaded graphics pipeline |
CN105786448B (zh) * | 2014-12-26 | 2019-02-05 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
JP6477216B2 (ja) * | 2015-05-08 | 2019-03-06 | 富士通株式会社 | 演算装置、スレッド切替方法、及びマルチスレッドプログラム |
GB2544994A (en) * | 2015-12-02 | 2017-06-07 | Swarm64 As | Data processing |
CN106126336B (zh) * | 2016-06-17 | 2019-06-04 | 上海兆芯集成电路有限公司 | 处理器以及调度方法 |
US10269088B2 (en) * | 2017-04-21 | 2019-04-23 | Intel Corporation | Dynamic thread execution arbitration |
US10325341B2 (en) | 2017-04-21 | 2019-06-18 | Intel Corporation | Handling pipeline submissions across many compute units |
US10503550B2 (en) | 2017-09-30 | 2019-12-10 | Intel Corporation | Dynamic performance biasing in a processor |
US11789741B2 (en) * | 2018-03-08 | 2023-10-17 | Sap Se | Determining an optimum quantity of interleaved instruction streams of defined coroutines |
US10831492B2 (en) | 2018-07-05 | 2020-11-10 | International Business Machines Corporation | Most favored branch issue |
US10997058B2 (en) * | 2018-07-30 | 2021-05-04 | EMC IP Holding Company LLC | Method for performance analysis in a continuous integration pipeline |
US20190253357A1 (en) * | 2018-10-15 | 2019-08-15 | Intel Corporation | Load balancing based on packet processing loads |
US11856073B1 (en) * | 2019-03-22 | 2023-12-26 | Amazon Technologies, Inc. | Message batching for communication protocols |
US11886916B2 (en) | 2020-06-30 | 2024-01-30 | Microsoft Technology Licensing, Llc | System for adaptive multithreaded recalculation operations |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771138A (en) | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
JPH06105460B2 (ja) | 1988-06-07 | 1994-12-21 | 富士通株式会社 | マルチプロセッサのプロセッサ切換え装置 |
GB8817911D0 (en) | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
EP0473714A1 (en) | 1989-05-26 | 1992-03-11 | Massachusetts Institute Of Technology | Parallel multithreaded data processing system |
GB2234613B (en) | 1989-08-03 | 1993-07-07 | Sun Microsystems Inc | Method and apparatus for switching context of state elements in a microprocessor |
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
DE4129614C2 (de) | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
US5088788A (en) * | 1991-03-22 | 1992-02-18 | Moulton Lee A | Vehicle cover apparatus |
US5430850A (en) * | 1991-07-22 | 1995-07-04 | Massachusetts Institute Of Technology | Data processing system with synchronization coprocessor for multiple threads |
JP2520544B2 (ja) * | 1991-09-26 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置 |
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 |
US5404469A (en) * | 1992-02-25 | 1995-04-04 | Industrial Technology Research Institute | Multi-threaded microprocessor architecture utilizing static interleaving |
US5452401A (en) | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5386561A (en) | 1992-03-31 | 1995-01-31 | International Business Machines Corporation | Method of integrated system load control through dynamic time-slicing in a virtual storage environment |
US5325526A (en) * | 1992-05-12 | 1994-06-28 | Intel Corporation | Task scheduling in a multicomputer system |
JPH0695898A (ja) * | 1992-09-16 | 1994-04-08 | Hitachi Ltd | 仮想計算機の制御方法および仮想計算機システム |
US5392437A (en) | 1992-11-06 | 1995-02-21 | Intel Corporation | Method and apparatus for independently stopping and restarting functional units |
DK0627100T3 (da) | 1992-12-23 | 2000-06-26 | Ebauchesfabrik Eta Ag | Laveffekt-multitaskkontroller |
US5586332A (en) | 1993-03-24 | 1996-12-17 | Intel Corporation | Power management for low power processors through the use of auto clock-throttling |
EP0617361B1 (en) * | 1993-03-26 | 2001-11-28 | Cabletron Systems, Inc. | Scheduling method and apparatus for a communication network |
US5528513A (en) * | 1993-11-04 | 1996-06-18 | Digital Equipment Corp. | Scheduling and admission control policy for a continuous media server |
US5524263A (en) | 1994-02-25 | 1996-06-04 | Intel Corporation | Method and apparatus for partial and full stall handling in allocation |
US5809271A (en) * | 1994-03-01 | 1998-09-15 | Intel Corporation | Method and apparatus for changing flow of control in a processor |
JP3547482B2 (ja) * | 1994-04-15 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
US6009454A (en) * | 1994-09-30 | 1999-12-28 | Allen-Bradley Company, Llc | Multi-tasking operation system for industrial controller |
US5724565A (en) | 1995-02-03 | 1998-03-03 | International Business Machines Corporation | Method and system for processing first and second sets of instructions by first and second types of processing systems |
JPH08320797A (ja) | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
JPH096633A (ja) | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム |
US5983339A (en) | 1995-08-21 | 1999-11-09 | International Business Machines Corporation | Power down system and method for pipelined logic functions |
GB2306147B (en) | 1995-10-13 | 1999-11-17 | Marconi Gec Ltd | Drag-producing aerodynamic device |
US5701432A (en) | 1995-10-13 | 1997-12-23 | Sun Microsystems, Inc. | Multi-threaded processing system having a cache that is commonly accessible to each thread |
US5809522A (en) | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
GB2311880A (en) | 1996-04-03 | 1997-10-08 | Advanced Risc Mach Ltd | Partitioned cache memory |
CN100373331C (zh) * | 1996-08-27 | 2008-03-05 | 松下电器产业株式会社 | 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器 |
US6088788A (en) | 1996-12-27 | 2000-07-11 | International Business Machines Corporation | Background completion of instruction and associated fetch request in a multithread processor |
DE69826539D1 (de) | 1997-01-30 | 2004-11-04 | Sgs Thomson Microelectronics | Cachespeichersystem |
EP0863462B8 (en) * | 1997-03-04 | 2010-07-28 | Panasonic Corporation | 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 |
GB2323188B (en) | 1997-03-14 | 2002-02-06 | Nokia Mobile Phones Ltd | Enabling and disabling clocking signals to elements |
US6314530B1 (en) * | 1997-04-08 | 2001-11-06 | Advanced Micro Devices, Inc. | Processor having a trace access instruction to access on-chip trace memory |
US5996085A (en) | 1997-07-15 | 1999-11-30 | International Business Machines Corporation | Concurrent execution of machine context synchronization operations and non-interruptible instructions |
US6105051A (en) | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6076157A (en) | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
US6256775B1 (en) | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
US6092175A (en) * | 1998-04-02 | 2000-07-18 | University Of Washington | Shared register storage mechanisms for multithreaded computer systems with out-of-order execution |
US6330584B1 (en) * | 1998-04-03 | 2001-12-11 | Mmc Networks, Inc. | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6289461B1 (en) * | 1998-06-09 | 2001-09-11 | Placeware, Inc. | Bi-directional process-to-process byte stream protocol |
US6625635B1 (en) * | 1998-11-02 | 2003-09-23 | International Business Machines Corporation | Deterministic and preemptive thread scheduling and its use in debugging multithreaded applications |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
-
1999
- 1999-04-29 US US09/302,633 patent/US6535905B1/en not_active Expired - Lifetime
-
2000
- 2000-04-20 CN CN00809404.7A patent/CN1196060C/zh not_active Expired - Fee Related
- 2000-04-20 EP EP00926240A patent/EP1185924B1/en not_active Expired - Lifetime
- 2000-04-20 BR BRPI0010602-0A patent/BR0010602B1/pt not_active IP Right Cessation
- 2000-04-20 CN CNB2005100070359A patent/CN100399263C/zh not_active Expired - Fee Related
- 2000-04-20 DE DE60032481T patent/DE60032481T2/de not_active Expired - Lifetime
- 2000-04-20 AU AU44802/00A patent/AU4480200A/en not_active Abandoned
- 2000-04-20 WO PCT/US2000/010800 patent/WO2000067113A2/en active IP Right Grant
- 2000-04-20 IL IL14615900A patent/IL146159A0/xx active IP Right Grant
- 2000-05-03 TW TW089108132A patent/TW476915B/zh not_active IP Right Cessation
-
2001
- 2001-10-25 IL IL146159A patent/IL146159A/en not_active IP Right Cessation
-
2002
- 2002-05-31 HK HK02104141A patent/HK1042363A1/xx not_active IP Right Cessation
- 2002-09-20 US US10/251,583 patent/US6850961B2/en not_active Expired - Lifetime
- 2002-09-20 US US10/251,599 patent/US6854118B2/en not_active Expired - Lifetime
- 2002-09-20 US US10/248,000 patent/US6865740B2/en not_active Expired - Lifetime
- 2002-09-20 US US10/251,508 patent/US6971104B2/en not_active Expired - Fee Related
- 2002-09-20 US US10/251,527 patent/US6785890B2/en not_active Expired - Lifetime
- 2002-09-20 US US10/251,204 patent/US6795845B2/en not_active Expired - Lifetime
- 2002-09-20 US US10/251,542 patent/US6981261B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189230B2 (en) | 2004-03-31 | 2015-11-17 | Intel Corporation | Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution |
US9442721B2 (en) | 2004-03-31 | 2016-09-13 | Intel Corporation | Method and system to provide user-level multithreading |
US9952859B2 (en) | 2004-03-31 | 2018-04-24 | Intel Corporation | Method and system to provide user-level multithreading |
US10585667B2 (en) | 2004-03-31 | 2020-03-10 | Intel Corporation | Method and system to provide user-level multithreading |
US10613858B2 (en) | 2004-03-31 | 2020-04-07 | Intel Corporation | Method and system to provide user-level multithreading |
US10628153B2 (en) | 2004-03-31 | 2020-04-21 | Intel Corporation | Method and system to provide user-level multithreading |
US10635438B2 (en) | 2004-03-31 | 2020-04-28 | Intel Corporation | Method and system to provide user-level multithreading |
Also Published As
Publication number | Publication date |
---|---|
US6850961B2 (en) | 2005-02-01 |
US20030023659A1 (en) | 2003-01-30 |
DE60032481D1 (de) | 2007-02-01 |
US20030023835A1 (en) | 2003-01-30 |
US20030018686A1 (en) | 2003-01-23 |
BR0010602A (pt) | 2005-01-11 |
BR0010602B1 (pt) | 2012-12-11 |
WO2000067113A2 (en) | 2000-11-09 |
US6854118B2 (en) | 2005-02-08 |
WO2000067113A3 (en) | 2001-09-07 |
EP1185924A2 (en) | 2002-03-13 |
DE60032481T2 (de) | 2007-09-27 |
US6535905B1 (en) | 2003-03-18 |
CN100399263C (zh) | 2008-07-02 |
HK1042363A1 (en) | 2002-08-09 |
CN1196060C (zh) | 2005-04-06 |
US6785890B2 (en) | 2004-08-31 |
IL146159A (en) | 2006-12-10 |
CN1645317A (zh) | 2005-07-27 |
US20030023658A1 (en) | 2003-01-30 |
US6865740B2 (en) | 2005-03-08 |
AU4480200A (en) | 2000-11-17 |
EP1185924B1 (en) | 2006-12-20 |
US6795845B2 (en) | 2004-09-21 |
US20030018685A1 (en) | 2003-01-23 |
US6971104B2 (en) | 2005-11-29 |
US20030023834A1 (en) | 2003-01-30 |
CN1364261A (zh) | 2002-08-14 |
US6981261B2 (en) | 2005-12-27 |
US20030018687A1 (en) | 2003-01-23 |
IL146159A0 (en) | 2002-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW476915B (en) | Method and apparatus for thread switching within a multithreaded processor | |
US11275590B2 (en) | Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory | |
TW554287B (en) | Method and apparatus for managing resources in a multithreaded processor | |
CN100383740C (zh) | 挂起线程执行直到发生指定的存储器访问的方法和设备 | |
CN104679582B (zh) | 对于显示设备的命令调度 | |
TW497072B (en) | Method and apparatus for multi-thread pipelined instruction decoder | |
EP2171574B1 (en) | Multiple-core processor and system with hierarchical microcode store and method therefor | |
JP6450705B2 (ja) | 永続コミットプロセッサ、方法、システムおよび命令 | |
US20090132796A1 (en) | Polling using reservation mechanism | |
US8285973B2 (en) | Thread completion rate controlled scheduling | |
CN109313567A (zh) | 虚拟化精确的基于事件的采样 | |
TW201030671A (en) | Graphics processing units, metacommand processing systems and metacommand executing methods | |
JP2014222520A (ja) | プロセッサ、方法、システム、及び、プログラム | |
US7313675B2 (en) | Register allocation technique | |
CN108701040A (zh) | 用户级别线程暂停的方法、设备、和指令 | |
CN103514009A (zh) | 零周期加载 | |
US20210374848A1 (en) | Systems, Apparatuses, and Methods for Resource Bandwidth Enforcement | |
US9274829B2 (en) | Handling interrupt actions for inter-thread communication | |
TW200910096A (en) | Reordering data responses | |
US11915000B2 (en) | Apparatuses, methods, and systems to precisely monitor memory store accesses | |
US20190187993A1 (en) | Finish status reporting for a simultaneous multithreading processor using an instruction completion table | |
TW295646B (zh) | ||
US7594097B2 (en) | Microprocessor output ports and control of instructions provided therefrom | |
US9886396B2 (en) | Scalable event handling in multi-threaded processor cores | |
TWI227402B (en) | Microprocessor and method for performing selective prefetch based on bus activity level |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |