TW538378B - Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor - Google Patents

Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor Download PDF

Info

Publication number
TW538378B
TW538378B TW089112947A TW89112947A TW538378B TW 538378 B TW538378 B TW 538378B TW 089112947 A TW089112947 A TW 089112947A TW 89112947 A TW89112947 A TW 89112947A TW 538378 B TW538378 B TW 538378B
Authority
TW
Taiwan
Prior art keywords
priority
duration
processing
series
time period
Prior art date
Application number
TW089112947A
Other languages
English (en)
Inventor
David J Sager
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW538378B publication Critical patent/TW538378B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Description

A7 A7 五、 ’务明說明(1 ) 發明範疇 (請先Μ讀背面之注意事頊再填寫本頁) 、本發明通#與多串列處理的領域有關。尤其,本發明與 種万、夕串列處理器之多數串列間控制處理優先之方法 及裝置有關。 聲明背景 ^年來已考慮各種多串列處理器設計,以便進一步增強 處理器的效雜杜 二 特別疋針對更有效使用各種處理器資源的 & # °藉由平行執行多串列,可更完全利用各種處理器資 Λ、進而增強處理器的整體效能。例如,如果因失速狀態 或疋與執行特定_列有關聯的延遲,而導致部份的處理器 貝源處於間置狀態,則可利用這些資源來處理另一個串 歹’J °處理器管線中出現的一些事件可能會導致發生失速狀 〜、或特足串列處理過程中的其他延遲。例如,會造成失速 t .¾ 4是與執行特定串列有關之其他延遲的串列内所包含 、執行的:f曰々中可能會發生快取失誤miss)或分支錯 預利(branch misprediction)。結果,在沒有多_列能力的情 況下’因長等待時間操作而導致處理器内各種可用的資源 經濟部智慧財產局員工消費合作社印製 處於間置狀態,例如,從主記憶體擷取必要資料的記憶體 存取操作’必須解決快取失誤(cache miss)狀態。 另外’由於Windows NT®及UNIX作業系統之類的流行作 業系統支援多串列程式設計,導致多串列程式及應用程式 更普及。在多媒體處理的領域中,多串列應用程式特別引 人注目。 根據各別處理器内所採用的特定_列交錯法或交換機 _____ -4- 本紙張尺度適用中國國豕標準(CNS)A4規格(21〇 X 297公爱 538378 經濟部智慧財產局員工消費合作社印製 A7 B7___ 五、發明說明(2 ) 制,通常可將多串列處理器分成兩大種類,精巧設計或粗 略設計。一般而言,精巧型多串列設計支援處理器内的多 重主動串列,並且通常以週期爲基礎來交錯兩個不同的串 列。另一方面,粗略型多_列設計通常在出現某些長等待 時間事件時(例如,快取失誤)交錯不同串列的指令。於 1996 年 5 月,第 23 期 Annual International Symposium on Computer Architecture 203 到 212 頁,由 Eickmayer,R·,Johnson, R. et al.著作的"Evaluation of Multithreaded Uniprocessors for Commercial Application Environments” 中發表一種粗略型多串 歹丨J設計。於1994年美國麻薩諸塞州Norwell Kluwer Academic Publishers,由 R.A. Iannuci 編輯的 Multithreaded Computer Architectures: A Summary of the State of the Art 第 167 到 200 頁 Laudon, J.,Gupta,A.著作的"Architectural and Implementation Tradeoffs in the Design of Multiple-Context Processors” 中進一步 發表精巧設計與粗略設計間的區別。 多串列及多串列處理器設計的觀念會造成某些特定的問 題,特別是有關於平行或同時執行指令。第一個問題通常 稱爲死鎖狀態。當串列需要另一個串列所持有的資源才能 繼續執行,.但ί列並不釋放其所擁有的資源時,就會發生 死鎖狀態。例如,假設串列1及串列2都需要兩項資源Α及 B,才能完成其各自的執行及繼續前進。但是,假設_列 1已控制資源A,而串列2已控制資源B,並且,除非串列 取得其他資源來完成其各自的執行,否則串列都不會釋放 其擁有的資源。在此情況下,因爲串列1及串列2都未取得 -5- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ——------裝--------訂·-------- (請先閱讀背面之注意事項再填寫本頁) 538378 B7 五、發明說明(3 所需的㈣,所以停止繼續執行,除非有-些干預來中止 夕匕鎖狀態。一般而言,有四種同時存在的狀態會造成前述 的死鎖情況。這四種狀態是互相排斥、把持資源、沒有搶 先(PreemPtl〇n)及循環等待。在上面的範例中,事列i及申 歹^2都互相拒絕其料列存取其正在持有的資源。此外, 沒有任何搶騎reemptlon)規則指示其中一個串列放棄其持 有〇貝源另個事列使用。換言之,_列丨及串列2都擁 有呆有配置到之貝源的均等權利。最後,串列工及串列2都 以循環方式來等待要釋放的其他資源。 另一個與死鎖問題相似的問題是活鎖問題。一般而言, 訂 當兩個或兩.以上”列爲了對未在執行任何有用運作的 …他串列的变化作出反應而持續改變自己的狀態時,則會 發生活鎖問題。此問題通常涉及串列交錯法,其中串列並 未死鎖,但無法繼續執行到完成。在上面的例子中,如果 線 串列1及条列2都嘗試釋放其持有的資源,但是計時是串列 1及_ 1都*法存取資源A及B時,則會發生活鎖狀態。 此狀態與死鎖狀態相似處在於及_列2都無法繼續執 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 行,但是不同處則是在於兩個争列都未非被另一個_列封 鎖。叫參考上面的範例,假設在一段時間間隔後,串列1 及串列2都釋放其持有的資源,並且能夠存取其所需的其 他貝源。於上面的範例中,假設串列i已釋放資源Α並在 存取資源B,而_列2已釋放資源B並在存取資源a。不幸 的疋,串列1及串列2都回到先前所遇到的相同問題,也就 疋兩個串列都無法存取資源A及B。儘管兩個串列都已執 ____ - 〇 - 本紙張又度適用中國國家標準(CNS)A4規格⑵0 x 297公爱 -6- A7 B7
發明說明 (請先閱讀背面之注意事項再填寫本頁) l些事,即釋放其先前所持有的資源及獲得刀一彳固串列 曹持有之資源的控制權,因爲_列1及_列2仍然都需要資 、及B才此進一步繼績進行,所以仍然無法繼續進行。 、、°果用以同時執行多串列的設計的多串列處理器中, 存在必須解決的死鎖及活鎖問題。 ° 發明總結 本發明揭示一種於一多串列處理器交替指定一第一串列 及一第二串列之控制處理優先的方法及裝置,以避免該第 列與該第二幸列之間的死鎖或活鎖問題。於一項具體 貝施例中’首先將一第一持續時間的處理優先指定給第一 串列。然後,在給定的處理週期内決定第一持續時間是否 已屆』。如果第—持續時間已屆期,則將一第二持續時間 内的處理優先指定给第二♦列。 圖式簡單插述 藉由參考附圖’將可更完全明白本發的功能及優點,其 中: 圖1顯示處理器管線之具體實施例的方塊圖; 經濟部智慧財產局員工消費合作社印製 圖2顯tf實施本發明之處理器架構具體實施例的方塊 圖; 圖3顯示死鎖問題的範例; 圖4及5顯示活鎖問題的範例; 圖6顯π多串列環境中活鎖問題的範例; 圖7及8顯示多數串列間控制處理優先的觀念; 圖9顯不用以在串列間控制處理優先方法之具體實施例
538378 A7
經濟部智慧財產局員工消費合作社印製 的高階流程圖; 圖10顯示^用以在多數串列間控制處理優异、 氣兀艾万法之具體 實施例的詳細流程圖; 圖11顯示用以決定一個_列之優先持續時間之方法之具 體實施例的流程圖; 〃 圖12顯示用以決定另一個串列之優先持續時間之方法之 具體實施例的流程周; 圖13顯示用以在多數串列間控制處理優先之裝置之具體 實施例的高階流程圖;以及 ^ 圖14顯示用以在多數串列間控制處理優先之裝置之具體 實施例的禅'細方塊圖。 詳細説明 局了充分認識本發明,在下面的詳細説明中提出許多的 特定細節。但是,熟知技藝人士應清楚知道,纟不運用這 些特定細節的情況下,仍然可實施本發明。 在下文的討論中,將運用本發明實施一種用以於一多串 列處理器之多數’列間控制處理優先的方法及裝置,以避 免死鎖及/舌鎖問題。將會爲每個串列交替指定足多句時間週 期的處理優先,使其能夠繼續執行。如果特定亭列在前一 段處理期間内儘管具有處理優先,但部無法繼續執行時, 則日在下/人彳又予其更長期間的處理優先。授予每個串列 處理優先的時間週期將會繼續增力口,直到繼續執行一些進 度。本發明適用於其設計係用來同時處理多數_列的任何 夕串列處理器。但是,本發明不限於多_列處理器,並可 本·尺家鮮(CNS)A4 祕⑽ x^———_ --- -----1-----^—ί— (請先閱讀背面之注意事項再填寫本頁) 538378 經濟部智慧財產局員工消費合作社印製 A7 B7 1、發明說明(6 ) ^ 適用於在多數工作或處理程序間共用資源的任何處理器及 機器。 口 圖1顯示可在其内部實施本發明之處理器管線之具體實 施例的方塊圖。針對本説明書的目的,「處理器」表 夠執行連績指令的任何機器,以及應包括(但不限於 用途的微處理器、特殊用途的微處理器、圖形控制器、立 效處理器、語音處理器、多媒體控制器及微控制器。處二 器管線100包括從擷取步驟110開始的各種處理步驟。於此 步驟擷取栺令並傳送到處理器管線1〇〇。例如,可能從處 理器内整合或與處理器密切關聯的快取記憶體來擷取巨集 指令,或者可能經由系統匯流排從外部記憶體擷取巨集指 令。然後,將於擷取步驟110擷取的指令或巨集指令輸入 解碼步驟120,用以將指令或巨集指令解碼成供處理器執 行的微指令或微運算。於配置步驟13〇配置執行微指令所 需的處理器資源。管線中的下一步驟是重新命名步驟 140,用以將涉及的外部暫存器轉換成涉及移除因重複使 用暫存器所引起之相依性的内部暫存器。於排程/調度步 驟150,每個微指令都會經過排程並調度到執行單元。然 後,於執行步驟160執行微指令。然後在執行之後,於撤 回步驟170撤回微指令。 在一項具體實施例中,上面説明的各種步驟組織成三階 段。第一階段可稱爲按順序前端,其包括擷取步驟11 〇、 解碼步驟120、重新命名步驟130及配置步驟140。於稱爲按 順序前端階段,指令按照其原始程式順序通過管線100繼 -9- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ^ a-----^--------- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 538378 A7 B7 五、發明說明(7 ) 續執行。第二階稱爲非按順序執行階段,其包括排程/調 度步驟150及執行步驟160。於此階段期間,一旦解決每個 指令之資料的相依性並取得其所需的執行單元,就可能立 即排程、調度及執行每個指令,無論其在原始程式中連續 位置爲何。第三階段稱爲按順序撤回階段,其包括撤回階 段170,用以按指令的原始連續程式順序來撤回指令,以 便維持程式的完整性及語義。 圖2顯示可實施本發明之處理器之具體實施例的方塊 圖,處理器是一般用途的微處理器200。下文説明的微處 理器200是多串列(MT)處理器,並且能夠同時處理多數指 令串列。但是,下文説明的本發明完全適合於以交錯方法 來處理多數指令串列的其他處理器,還適用於以平行或以 交錯方法來處理多數指令的單串列處理器。在一項具體實 施例中,微處理器200是能夠執行Intel Architecture指令集的
Intel Architecture(IA)微處理器。 微處理器200包括按順序前端、非按順序執行核心及按 順序撤回後端。按順序前端包括匯流排介面單元202,其 功能是微處理器200與可建置微處理器200之電腦系統之其 他組件(例·士口,主記憶體單元)間的介面。匯流排介面單元 202經由微處理器200與其他系統組件(未顯示)之間轉移的 資料及控制資訊將微處理器與處理器匯流排(未顯示)連接 在一起。匯流排介面單元202包括前端匯流排(Front Side
Bus ; FSB)204,用以控制及協助處理器匯流排上的通訊。 匯流排介面單元202包括匯流排佇列206,其用來提供有關 -10- 本紙張足度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----------^ ------^--------- (請先閱讀背面之注意事項再填寫本頁) 538378 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(8 ) 於處理器涯流排上之通訊的缓衝功能。匯流排介面單元 202從記憶體執行單元212顧取匯流排請求208。匯流排介面 單元2〇2還將snooPs或匯流排傳回(bus return)傳送到記憶體 執行單元212。 記憶體執行單元212的結構與纟1態是作爲微處理器200内 的本機記憶體。記憶體執行單元212包括統一資料與指令 快取214、資料轉譯旁視緩衝器(Translation Lookaside
Buffer ; ΊΧΒ)21ό及記憶體定序邏輯218 〇記憶體執行單元 212接收來自微處理器轉譯引擎(MITE) 224的指令擷取請求 220,並將純指令225提供給ΜΓΓΕ 224。MITE 224將從記憶 體執行單元212接收的純指令225解碼成對應的微指令集, 也稱爲微運算。MITE 224將經解碼的微指令226傳送給追蹤 傳遞引擎(trace delivery engine ; TDE)230 0 追蹤傳遞引擎(TDE)230作爲微指令快取,並且是下游執 行單元270的微指令主要來源。追蹤傳遞引擎(TDE) 230包括 追縱快取232、追3從分支預測器(trace branch predictor ; BTB)234、微程式碼定序器236及微運算佇列238。追蹤傳遞 引擎(TDE) 230及特別的追蹤快取232藉由處理器管線内的微 指令快取功能來充分利用MITE 224所完成的運作,以便提 供相當高的微指令頻寬。在一項具體實施例中,追蹤快取 232可包括256輸入項(entry)、8通道集聯合記憶體。在一項 具體實施例中,名稱「追蹤」代表追蹤快取232的輸入項 (entry)内儲存的連續微指令,而且每個輸入項(entry)都具 有繼續執行的指標及在追蹤中繼續執行的微指令。因此, -11 _ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) (請先閱讀背面之注意事項再填寫本頁) -裝----I--訂----- 秦· 538378 A7 B7 五、發明說明(9 ) (請先閱讀背面之注意事項再填寫本頁) 追蹤快取23 2可協助高效能定序,用以存取下一個輸入項 (entry)的位址,以便在完成存取之前,先獲得已知的後續 微指令。追蹤快取分支預測器234提供有關於追蹤快取232 内之追蹤的本機分支預測。追蹤快取232及微程式碼定序 器236將微指令提供給微運算佇列238。 經濟部智慧財產局員工消費合作社印製 然後,微運算佇列238將微指令傳送到群集器,其包括 排程器242、暫存器重新命名器244、配置器246、記錄緩衝 器248及回覆佇列250。排程器242包括一組預約台 (reservation station),並排程及調度執行單元270要執行的微 指令。暫存器重新命名器244將涉及的外部暫存器轉換成 涉及移除因重複使用暫存器所引起之相依性的内部暫存 器。配置器246配置執行微處理器所需的資源。如果處理 微處理器或一組微處理器所需的資源不足或無法取得,則 配置器246將確立失速信號282,而失速信號282將會傳送到 追蹤傳遞引擎230及微處理器轉譯引擎224。回覆序列250用 於儲存及提供執行單元270需要重新執行的微指令。記錄 缓衝器248用於以其原始連續程式順序來儲存微指令。完 成執行記綠缓衝器248中儲存的微指令並準備撤回時,則 會按其原始連續程式順序來移除記錄缓衝器中的指令。 執行單元270包括浮點執行引擎274、整數執行引擎276及 0階資料快取278。在微處理器200執行IA執行集的具體實施 例中,浮點執行引擎274還執行MMX®指令。 圖3顯示多_列環境中可能發生之死鎖狀態的範例。在 此範例中,假設多串列處理器同時執行兩個•列-串列0及 -12- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 538378 A7 B7 經濟部智慧財產局員工消費合作社印製 -13- 本紙張尺適用中國國家標準(CNS)A4規格(21〇 X 297公楚 五、發明說明(10) 串列卜進—步假設串列〇中執行的栺令ΙΝΤ1 3〇1及串列i 中執行的指令INT2 3〇5都需要兩個資源A 311及6 315。因爲 是同時執行串列0M,所以可能會同時執行腿3〇ι及 細3〇5。假設將資源A311配置給串列〇,而將資源“η 配置给串列1。結果,盖法宗忐电 j *兀成_列0中指令INT1 301的執 行,因爲執行指令INT1 301所需的其他資源(即,資源B 如)已配置給串列!中指令臟3〇5的執行。同樣地,益法 完成ou中指令INT2 305的執行,因爲執行指令顧3〇5 所需的其他資源(即,資源Α Ή 1、p Λ w V I貝/原A 311)已配置給串列〇中指令 腿2 305的執行。結果,串列〇及串列無法進—步繼續 執行。這是多串列環境中可能發生的典型死鎖狀態之… 於同時在W列内執行多數指令的單串列環境中也可能會 發生上文所述的死鎖情況。 曰 圖4及5顯示多串列環境或在給定亭列中非按順序執行指 令(即,#以其原始程式順序來執行指令)的單串列環‘ 中,可能發生疋活鎖狀態的範例。在此範例中,假設(例 如)_列1包括多數指令ΙΝΤ丨到ΙΝΤ 5,並且這些指令可w能^ 按順序執行。進一步假設指令INT4取決於mT2。按=邏 輯,除非並直到完成指令以丁 2的執行,否則無法完成指 令ΙΝΤ 4的執行。因爲非按順序指令執行機制,所以可= 先執行ΙΝΤ4,或與指令ΙΝΤ2同時執行。 % 如先前所述,因爲指令ΙΝΤ4邏輯上取決於ΙΝΤ2,所以在 第一次執行ΙΝΤ4時指令ΙΝΤ2執行尚未完成的情況下,很可 能會再次或重複執行指令ΙΝΤ4。然而,假設在此範例;了 I I -1^—-----t--------- (請先閱讀背面之注意事項再填寫本頁) 538378 A7 B7 五、發明說明(1 (請先閱讀背面之注意事項再填寫本頁) 第一次執行指令INT4時導致0階快取失誤,造成執行1階查 韵操作,而使得1階快取忙綠中。還假設第一次執行指令 INT2時也導致〇階快取失誤,造成執行另一個1階查詢操 作。不幸地的是,在此範例中,1階快取查詢的計時爲, 在指令INT2開始查詢請求時,1階快取仍然在伺服指令 INT4的請求。結果,將忽視指令INT2的1階快取查詢請 求。因爲除非指令INT2從1階快取獲得所需的資料,否則 無法完成指令INT4所依賴之指令INT2的執行,所以無法撤 回指令INT4虚且必須重新執行。假設第二次執行指令mT4 的计時爲’在指令INT2必須存取1階快取以獲得所需的資 料時’ INT4再次使得!階快取忙綠中。結果,指令INT2& INT4都處於重新執行的循環中而無法完成。 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 在單串列環境中,可藉由監視已執行之單串列的進度, 並在&預定時間週期後沒有任何進度時採取適當的動 作,來偵測並解決死鎖狀態。例如,如果在預定處理期間 的時序週期足後未撤回任何的指令,則可能已發生上述的 活鎖狀態。在此情況下,解決活鎖狀態的可能解決方案是 按順序執行指令,以便滿足不同指令間的邏輯相依性。因 此在本範例中,會在指令ΙΝΤ4<前先執行指令ιΝτ2,即 可滿足不同心令ΙΝΤ4與ΙΝΤ2間的邏輯相依性。如上文所 边’右需要,指定給指令的序號將用於執行按順序的指令 執行。指定給指令的库彳♦鹿 7 ]斤就對應於原始程式順序中每個指令 的邏輯順序。 圖6顯示多串列環谙φ & 兄中了把發生的另一項問題。爲了簡 538378 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 -15- X 297公釐) A7 五、發明說明(12 ) 明清楚’以下的討論將鎖定同時 叮執仃兩個_列—串列0及串 列1 -的多串列環境,即使本文中 T对論的任何事項同樣適用 於同時執行兩個以上孝列的另一 乃一種多争列環境。 在此範例中’假設串列〇及电 久甲列1都可包含多數指令,並 且每個串列内的指令還可非按 • 貝序執仃,即,非按其原始 程式順序執行。於每個串列肉 、 n 可使用對應於原始程式順 序中4曰令之指令邏輯指令的岸骑* ^序魂來維持指定的原始程式順 序。進一步假設每個_列内不 、 u知令間存在一些邏輯相依 性,並且跨串列之不同指令間在 存在一些邏輯相依性。具體
而言,假說_列1中的指今mT INT34取決於串列1中的指令 INT32。按照邏輯,除非完成秦 、 成率列1中指令INT32的執行, 否則無法完成串列1中的指令IN " iJN 134的執仃。遠假設事列1 中的指令INT34還取決於串列〇中 、 r〜T的指令INT3。結果,除非 完成串列0中指令INT3的執行,不則^、土 a # 士 丁 σ則典法元成_列1中的指 令ΙΝΤ34的執行。進一步個由π丨η & /假汉串列〇中的指令1NT3取決於串 列1中的指令ΙΝ丁32。然後, 除非已元成串列〇中指令WT3 及指令ΙΝΤ32的執行,否則血法—士由η 丄 」…、去το成串列1中指令ΙΝΤ34的 執仃。此外,除非完成_列i中的指令取丁32,法士 成串列〇中指令mT3的執行。 a 邏輯上,爲了確保成功執行這些指令,争列1中的 INT32應在#列〇中指令INT3之前完成,而_列〇中的取乃 應在攀歹0中指令INT34之前完成。然*,如上文所述,串 歹J 〇及1都是同時執行,且每個串列内的指令可非按順序執 仃。因爲串列間同時執行及每個串列内非按順序執行,所 本紙張1度_,,辟(CNS)A4ii^· —--------------訂--------- (請先閱讀背面之注音?事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 538378 五、發明說明(13 ) 以都可能發生如上文所述的死鎖或活鎖狀態。在此情況 下,指定給每個_列内之每個指令的序號不足以解決由跨 串列相依性所引起的死鎖或活鎖狀態,因爲僅有序號不足 以告知疋否應於iNT32之前或之後執行ΙΝΤ3。同樣地,僅有 序號不足以告知是否應於m丁34之前或之後執行mT3。爲 了解決多串列處理器中不同串列間的死鎖或活鎖狀態,本 發明的一項點是採用在多數串列間邏輯定序或處理優先控 制的觀念。搿參考圖7及8來更詳細説明此觀念。 圖7及8類示多串列處理器中多數串列間之邏輯定序的觀 念,本文中也稱爲控制處理優先。再次爲了簡明清潔,將 説明同時執行兩個_列之多争列處理器的觀念。但是,此 觀念不限於同時執行兩個㈣,並且同樣適用於同時執行 兩個以上串列的任何多串列處理器。 如上文所述,指定給每個_列内之每個指令的序號不足 以解決因夕串列處理器中同時執行的多數串列引起的死鎖 或活鎖狀態。因此,爲了解決跨_列〇及争列工的死鎖或活 鎖狀態,串列〇及之間必須擁有一些邏輯定序。 具體而言,如果發生的串列0及串列i同時競爭相同的資 源,則處理器必須知道應授予哪一個串列在另一個争列之 前優先使用所需資源。此外,如果發生的特定争列中的— 個指令取決於另一個♦列心的另一個指令,爲了成功完成 這兩個指令,處理器還必須知道邏輯上應先執行這兩個指 令中的其巾一個。但是,目爲同時執行_列0及_列:!,所 以無法事先告知串列〇及串列1間的邏輯相依性。這是因爲 ______ 一 I。- 私紙張尺度適用中國國家標準(CNS)A4^ (210 x 2^公爱) -------. —-----1--------- (請先閱讀背面之注意事項再填寫本頁) 538378 經濟部智慧財產局員工消費合作社印製 A7 -----------B7_______________ 五、發明說明(14 ) 特疋串列内指令的原始程式順序僅適用於該特定串列,而 非其他的串列。換言之,_列〇及申列1間的邏輯定序僅能 根據每個爭列内的執行進度動態或飛擊式決定。結果,在 任何固定式邏輯定序機制中,一定授予一個事列超越未運 作之其他串列的優先。這是因爲一個幸列(例如,率列 可能因爲其指令之一取決於其他串列(例如,_列i)内的 另一個指令而陷住。在此範例中,如果串列間邏輯定序爲 固定式(即,如果-定將優先授予_列0),則申列0則會繼 績處於陷住狀態,因爲♦列1永遠不會取得執行其工作的 優先權’所以無法解除串列0的陷住狀態。 另外,在一項交替邏輯機制中,會輪流授予每個串列一 段時間週期的優先,而不管每個•列是否足以在此段時間 週期内執行進度或是無法運作。例如,假設_定將N個時 序週J的優先杈予給串列0且一定將M個時序週期的優先 授予給串列0,此時,即使在串列〇及串列i間交替優先, 仍然典法仗用此項固定式交替機制。這是因爲可能串列0 需要多於N個時間週期才能解除其陷住狀態,並且串列i 需要多於Μ個時間週期才能解除其陷住狀態。 因此,必須具有固定式及動態交替優先機制,在此機制 中,交替授予每個幸列一段足夠之時間週期的優先,使其 能夠執行進度,進而協助其他串列執行進度。具體而言, 將交替授予每個_列一段時間週期的優先。根據各種因數 來設定在初始時間週期期間内,哪一個串列具有優先,其 包括處理時序頻率、典型指令的平均執行時間、平均記憶 _____ - 17- 心 本紙張&度剌fi國家標準(CNS)A4規格(21G X 297公爱) "~--—-— . 裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 538378 A7 •--------—B7 —_ 五、發明說明(15 ) 體等待時間、重新執行指令所花的時間等等。執行每個串 列時,將會監視其執行進度,以決定其是否已處於陷住狀 態。如果某—特定串列(例如,夸列〇)在其具有優先的時 間週期内沒有任何執行進度,則會在其下_次執行時授予 更長的優先。授予串列〇優先的時間週期將會繼續增加, 直到串列0有執行進度。一旦決定串列〇已有執行進度,則 會將其優先持續時間重新設定爲較短的期間,例如最初的 持續時間。同樣地,授予串列i優先的時間週期將會繼續 增加,直到串列1有執行進度,此時,會將其優先持續時 間重新設定爲較短的期間,例如最初的持續時間。簡言 之,每個争列0具有優先之時間週期的長度將會繼續增 加,直到該特定串列有執行進度。 根據此項動態且彈性的交替優先機制,會交替授予每個 串列一段足夠且有限時間的優先,使其能夠執行進度。但 是,不能授予某一♦列無限期的優先,即使該_列已處於 P㈢住 < 悲。如上面的解説,因爲在串列〇可執行進度之 i’J _列1必須先元成某些進度’所以使得串列〇可能處於 陷住狀態。但是,串列1可能無法繼續執行,除非其取得 足夠時間週期的優先。很可能這兩個串列都處於陷住狀 恐。在此情況下,授予每個串列優先的時間週期將會繼續 增加,直到繼續執行一些進度。 請參考圖7,稱爲串列優先位元(thread precedence bit ; TPB)的指示器用於指示在任何給定的瞬間,串列〇及1中哪 一個具有優先。以下將詳細説明ΤΡΒ的產生及修改。在_ -18 - 本紙張又度適用中國國家標準(CNS)A4規格(210 X 297公釐) . 裝--------^--------- (請先閱讀背面之注意事項再填寫本頁) 538378 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(16 項具體實施例中,將TPB設定一個數値(例如 一 列0具有優先,並將TPB設定另—個數値(例如 ^串 串列1具有優先。如果發生死鎖或活鎖狀態時, ㈣於指”心 在—項具體實施例中,如果在目前處理期間沒有撤回任 何指令或至少一個指令已撤回, 馬在目則處理期間 在執行進度。如果每個串列都正在執行進度,則每隔 預足週期(對應於每個㈣具有優先的時間週期)内,^ 的數値會在吻之間交替。在一項具體實施例中,可將預 足週期設爲等於預定時序週期數,例如16個時序週期。在 此範例中,如果兩個争列都正在執行進度,則每隔“個時 序週期,TTB的數値會在之間交替。如果其中一個串 J ^如_列〇)在其上一次具有優先的期間内沒有任何 執j度,並且在另一個争列具有優先之後的時間週期内 也/又$任灼职行進度時,則會將其下一次具有優先的時間 週期增加某—預定附加時間。在一項具體實施例中,可將 增量時間設爲等於16個時序週期。因此,在下—次授予_ 列〇優先時.,其將具有32個時序週期期間的優先。串列〇的 優先期間將會繼續增加一段預定附加時間(例如,Μ個時 序週,、月),直到串列〇有執行進度。一旦串列〇有執行進 度,則會將其優先持續時間重新設定爲某一預定數,例 如,16個時序週期。 万、圖7顯tjt的範例中,最初在時間㈧將τρΒ設爲〇,用以 __ -19- 本紙張尺度適财_家標準(cns)A4規格 . --------^---------^0 (請先閱讀背面之注意事項再填寫本頁) 538378 A7 經濟部智慧財產局員工消費合作社印製 五、發明說明(17 ) 指示串列〇具有16個時序週期的優先。於時間^將丁 pB設爲 1,用以指示申列i具有16個時序週期的優先。於時間打, 針對另一個16個時序週期,將τρβ設回〇。於時間Μ,將 TTB交替爲1長達16個時序週期。於時間以,將τρΒ更改爲 0。但是,因爲串列(^Ρ2&ρ4間的兩個期間之前並未執行 任何進度,所以申列〇具有一段附加時間的優先。因此, 從Ρ4開始,串列〇具有32個時序週期的優先,而不是⑹固 時序週期。於時間Ρ6,然後將τρβ設爲】長達關時序週 期。於時間Ρ7,將ΤΡΒ設回〇。此時,因爲串列^黯打 間的前-段期間内已執行一些進度,户斤以從ρ7開始,争列 0回到具有1 6個時序週期的你| 、λ + 斤以』的優先。於時間Ρ8,將ΤΡΒ再次更 改爲1。 圖9顯示用以在多W處理器内多數串列間控制處理優 先方法900之具體實施例的高階流程圖。冑了簡明清楚, 方法_將針對由多_列處理器同時執行的兩假攀列一夢列 0及_列1進行說明,即使本文中討論的任何事項同樣適 用於具有❺個以上串列的多夢列環境。同樣地,方法900 的討論及説明還適用於平;γ1 、用万、十仃執仃多數指令的單串列環境, 例如,實施超級標量架構的處理器。 如上文所述,在一項具體實施例中,多數串列間的處理 優先係用於在兩個串列都會競爭特定資源才能繼續執行 時,指示兩個争列中哪—個具有優先。同時執行的串列0 指令及串歹"指令都需要資源Α,在情況下,爲了避免死 鎖狀態,處理優先係作爲連接遮斷器(tlebreaker)使用。在 -------------裝---------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 538378 A7 五、發明說明( 一項具肢只桃例中,處理 復无也用於扣不串列0指令及串 列1各自的邏輯定序。备μ、、匕I、 ^ ^ (請先閱讀背面之注意事項再填寫本頁) 上又所述,在單串列環境中, 號係用於持續追蹤輸入指人 斤 未士 徇入彳曰令的邏輯順序。此序號相當於原 始連績程式順序,並且有 ' 卫且有其必要性,例如,在上文解説之 有關於活鎖問題之按順序執行指令的情況中。於多串列環 境中’可能具有跨争列相依性(如上文所述),而且僅有序 唬不足以口知兩個串列間指令的邏輯順序或順彳。在此情 況下’處理優先係用於告知處理器哪一個,列具有在並他 串列之間的優先邏輯順序。 -項具體實施例中,處理優先用稱料列優先信號的 L唬來表π。於一項具體實施例中,處理優先用稱爲串列 優先信號的信號來表示。在—項具體實施例中,將幸列優 先位元叹爲0來指示串列〇具有處理優先,而將串列優先位 兀设Α1時指示率列1具有處理優先,其與資源使用策略及 指令執行邏輯定序有關。 繼、%本範例,方法9〇〇從步驟9〇1開始。於步驟9〇5,將每 個’列的優先持續時間或優先期間初始化爲一段預定週 經濟部智慧財產局員工消費合作社印製 期。優先持續時間定義爲授予某一特定串列處理優先的持 續時間或時間間隔。在一項具體實施例中,優先持續時間 係針斜處理期間來測量,每個處理期間相當於預定數量的 處理週期’而每個處理週期相當於預定數量的處理器時序 週期。在—項具體實施例中,可將每個串列最初的優先持 、續時間設爲等於預定時序週期數,例如16個媒介時序週 期。於步驟909,授予其中一個串列長達對應於其優先持
21 - 538378 A7 經濟部智慧財產局員工消費合作社印製
五、發明說明(19 續時間之時間週期的優先。在一 、一組貝施例中,將串列 優先位元設爲第一數値(例如 ^ ^ ' 、 )木彳日不將處理優先授序 串列0,並將串列優先位元設爲筮一 ’、、弟一數値(例如,1 )來指示 將處理優先授序串列1。於—項1每 /、姐F、知例中,一旦將虛 理優先指定給某一特定串列時 、 呔會互即開始執行該特定 串列的優先持續時間。於決策迴 ,, 圈91j,如果目前的優先 持績時間已逾期,則方法900 、乃凌900進行到步驟917。於步驟 917 ’將處理優先交替到(即,指令 、1 知疋給)其他串列。 然後’方法900從步驟913或917谁广 進仃到步驟921,以便決 定每個_列下—次的優先持續時間。下文中將詳細説明決 足每個""一次的優先持續時間。但是,請注意,每個 串列下一次的優先持續時間取法 、 ^门取决於—些因數,包括:在預 定時間週期内,每個串列是;^ 』疋口已執行進度;於目前處理週 期内是否有發生任何特定事件或中 π τ 乂〒断;於目前處理週期内 是否已交替處理優先等等。炊德,、 …、俊,万法900從步驟921回到 決1策步驟913。 圖聰示利9説明之方法9〇〇之具體實施㈣詳細流程 圖;再一次,方法_將針對亭列〇及串列i來進行説明, 即使本文中討論的任何事項同樣適用利時執行兩個以上 串列的Μ列環境’還適用於同時執行多數指令的單串列 環境。 万法900從步驟1〇〇1開始。於決策步驟·,如果發生核 能(nuke)或重置之類的特定事件,則方法9〇〇進行到步驟 1009。否則方法900進行到步驟1〇13。於步驟ι〇〇9,將争列 ---------------------t--------- (請先閱讀背面之注意事項再填寫本頁) ⑽378
經濟部智慧財產局員工消費合作社印製 五、發明說明(2〇 ) 笑先位元(thread precedence bit ; TPB)初始化成某一初始,用 以指示♦列〇及丨中哪一個最先具有優先。如上文所述,在 項具體實施例中用一個二進位位元來表示丁PB,如果將 TTB <爲〇來指示串列〇具有處理優先,否則,將『PE設爲 1。爲了簡化説明,在一項具體實施例中,一定將TPB設爲 0 ’以對核能(nuke)或重置事件作出反應。在另一項具體實 施例中’可根據某種預定機制或以某種預定準則來開始設 足TPB。例如,爲了對核能(nuke)或重置事件作出反應,可 任意將TPB設爲0或1,或者可設定成與核能(nuke)或重置 事件之前相同的數値,或是與核能(nuke)或重置事件之前 相反的數値。於步驟1〇〇9,也將計數器丁〇及T1初始化,以 對核能(mike)或重置事件作出反應。το計數器(TC0)用於保 存一個數値,其相當於授予串列〇處理優先的持續時間。 丁1計數器(TC1)用於保存一個數値,其相當於授予串列1處 理優先的持續時間。還將一個初始數値載入到稱爲串列優 先計數器(thread precedence counter ; TPC)的另一個計數器。 要載入到TPC計數器的初始數値取決於在此階段串列〇或串 列1是否擁有處理優先。如果在此階段串列〇擁有處理優 先’則會將相當於TC0内含的數値載入到TPC計數器。如 果率列1擁有處理優先,則會將相當於TC1内含的數値載入 到TPC計數器。在一項具體實施例中,在將TC0或TC1内含 的數値載入到TPC計數器之前,先將該數値乘上預定數(例 如,16) 0 在一項具體實施例中,TPC内含的數値相當於授予το或 _____-23- 本紙張瓦度適用中國國豕標準(CNS)A4規格(210 X 297公釐) —---------------訂·-----— (請先閱讀背面之注意事項再填寫本頁) 538378
經濟部智慧財產局員工消費合作社印製 T1處理優先期間的處理週期數,並且每個處理週期相各於 預足數量的時序週期,例如,i個時序週期數。例如,俨 設串列0最先具有處理優先,則將TPB設爲〇來指示串列〇 最先具有處理優先。將TCO的内容初始化成預定數,例如 1。也將TC1的内容初始化成預定數,例如i。在一項具體 實施例中,將TCO及TC1的内容初始化成相同的預定數,例 如1。在另一項具體實施例中,可將丁C0&TC1的内容初始 化成不同的數値。繼續本範例,將TC0的内容(在此範例中 爲1)乘I6,並載入到TPC。在一項具體實施例中,Tc〇及 TC1都是簡單的二進位計數器,其具有相當於預定位元數 的大小,例如10位位元。在一項具體實施例中,TPC也是 具有預定大小的簡單型二進位計數器,例如14位位元。結 果,在一項具體實施例中,在將TC〇4 TC1内含的數値載入 到TPC計數器之前,先將該數値向左移位預定位元數(例 如,4位位元)。 諳回到決策步驟1005,如果未偵測到核能(nuke)或重置 事件,則方法900進行到步驟1〇13。於決策步驟1〇13,其決 定TPC的内容是否已超過某一預定限定値(例如,〇 ),用 以指示優先持續時間是否已逾期。如果優先持續時間已逾 期,則方法進行到步驟1021,否則其進行到步驟1017。於 步驟1017,將TCP的内容減去預定數,例如1。於決策步驟 1021,如果在先前的優先持續時間將TpB設爲〇,則方法進 行到步驟1025,否則其進行到步驟1〇29。於步驟1〇25,將 TPB設爲1。於步驟1〇29,將TPB設爲0。然後,於步驟 ___-24- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) ------------裝----------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 538378 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(22 1033或1037 ’分別將相當於TC1値或tc〇値的數値載入到 ttc。在一項具體實施例中,在將丁⑶或TC1的内容載入到 ttc计數器之前’會先將該内容乘上預定數(例如,ι6)。 tpc中儲存的數値代表相當於授予串列〇或串列1處理優先 期間的時序週期數。 然後’方法900從步驟1〇33、1〇37或1〇17進行到步驟 1041 ’以便更新TC0的内容。於步驟1〇45,將更新tci的内 谷。然後’方法回到步驟丨〇〇5,繼續處理_列〇及串列1。 在一項具體實施例中,每隔預定處理週期數重複一次如上 又所述的方法900(例如,每隔時序週期一次)。結果,每隔 時序週期將丁PC遞減或向下計數預定的計數値(例如, 1),直到TPC的内容超過預定限定値(例如,〇),此時,將 TPB反相,並將對應於新優先持續時間的新開始數字載入 到 TPC。 在另一項具體實施例中,將一數値(例如,〇)載入到 丁PC,以用栺示優先持續時間的開始,並且每隔處理週期 將TPC向上計數或遞增預定的計數値(例如,㈠。在此情況 下,會知TP C遞增或向上計數,直到其超過相當於優 續時間的預定限定値(例如,授予某—特定辛列處理優先 的時序週期數),此時,將TPB反相,並將TPC設爲〇。在向 下計數或向上計數的情況下,爲了決定某_特定串列的優 先持續時間是否已逾期,將會從優先持續時間的開始保持 追蹤消逝的時間。 -------裝 * -------訂--------- (請先閱讀背面之注意事項再填寫本頁) 圖11顯示用以更新於圖10之步驟1041執行之Tc〇計數器内 -
經濟部智慧財產局員工消費合作社印製 A7 ------- -B7 _ 五、發明說明(23 ) 之處理私序之具體實施例的流程圖。處理程序1丨〇 〇從 ^ / 101開1。於決策步驟11〇5,如果在目前的處理週期 内確定夢列0沒有要撤回的任何指令,則處理程序進行到 Y氣1109,用以將TC〇重設成某一預定數(例如,i)。否 則,處理程序1100進行到步驟1113。於決策步驟1113,如 果在目則的處理週期内確定串列0已撤回至少一個指令, 則處理程序進行到步驟1109,以便重設TC0。否則,處理 程序1100進行到步驟1117。於決策步驟1117,在目前的處 理週期内確足處鲤優先已從串列〇切換到串列1,則處理程 序進行到步驟1121,否則回到步驟11〇5。在一項具體實施 例中,可藉由偵測用以指示在目前的處理週期内的内 各已到達預足限足値的k號,並且在目前的處理週期内 TPB已從0反相爲丨的方式,來確定在目前的處理週期内處 理優先是否已從串列〇切換到串列i。下文中將詳細説明在 目前的處理週期内處理優先已從串列〇切換到串列工的確定 方法。於步驟1121,將TC0内容遞增預定數,例如i。如上 又所述,丁CO的内容將用於載入到TPC,以便指示下一次授 予争列0處理優先的優先持續時間有多久。 圖12顯示用以更新於圖10之步驟1〇45執行之TC1計數器 内容之處理程序之具體實施例的流程圖。處理程序12〇〇從 步驟1201開始。於決策步驟1205,如果在目前的處理週期 内確定_列1(T1)沒有要撤回的任何指令,則處理程序進行 到步驟1209,用以將TC1重設成某一預定數(例如,丨)。否 則’處理程序11〇〇進行到步驟1213。於決策步骤1213,如 -26 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I . 裝--------訂---------線· (請先閱讀背面之注意事項再填寫本頁) M8378 A7
i I I I
538378 A7 五、 發明說明(25 授予同時執行之多數串列中的哪一個争列優先使用一項或 —項以上的特定處理資源。同樣地,在一項具體實施例 中,如果必須解決因跨串列相依性所引起的活鎖狀態,則 排程/調度單元1321利用争列優先信號來決定邏輯順序,利 用邏輯順序來決定要執行不同串列中的哪_些指令。 圖14顯示用以在多年列處理器内多數♦列間控制處理優 先之裝置之具體實施例的方塊圖。爲了簡明清楚,以下的 討論將鎖定串列0及串列1的優先控制機制。但是,本文中 討論的任何事項同樣適用於同時執行兩個以上_列的多_ 列環境,還適用於同時執行某一夢列内多數指令的單幸列 環境。 如上文所述,處理優先定期在_列0與串列〗之間交替。 授予每個串列處理優先的時間週期取決於一些不同的因 數,包括,已發生某-特定事件、某一特定串列是否正在 執行進度等等。但是,必然不可授予某—串列永遠的處理 優先’即使該串列正處於陷住狀態。如上文所述,很可能 會因跨串列相依性而使得某—串列處於陷住狀態。例如, 因爲在""可執行進度之前,必須先完成某些進 度’所以使得申列〇可能處於陷住狀 ------------裝--------訂----------線 (請先閱讀背面之注意事項再填寫本頁;> 經濟部智慧財產局員工消費合作社印製 能 足夠時間週期之處理優先的情況下,很可二二 行進度,以便協助串列0能夠繼續執行,即,使得串列〇可 解除陷住狀態。很可能這兩個串列都處㈣住狀態。在此 情況下,針對這兩個串列,授予每個串列處理優先的時間 將會繼續增加。具體而言,在交替方式中,只會授予每個
538378 五、發明說明(26 ) 串列有限時間週期的處理優先。 Μ參考圖U ,如上文所述,串列優先位元(thread precedence bit ; TPB) M99係用以指示目前兩個_列中哪一 個具有處理優先。在一項具體實施例中,將♦列優先位元 (丁PB) 1499設爲〇來指示_列〇具有處理優先,否則,將 丁PB叹爲1。有二個計數器—τ〇計數器(t〇c) ΐ4〇3、τ工計數 器(T1C) 1405及♦列優先計數器(Tpc) 1413一用於控制在持 續時間内,兩個_列中哪一個具有處理優先。在一項具體 見施例中,设足TPC 1413來保存對應於時序週期數的數 値。於一項具體實施例中,每隔處理週期將TPc 1413遞減 預疋汁數値。於一項具體實施例中,預定計數値是工計數 值,而處理週期等於一個時間週期。當TPC 1413到預定限 定値(例如0)時,則將串列優先位元(TPB) 1499反相,並將 新的數値載入到TPC 1413,且重複向下計數處理程序。根 據串列0或串列1疋否擁有處理優先,各別由⑽或 T0C 1405提供要載入到TPC 1413的數値。 首先,爲了對用以指示特定事件(例如,核能(nuke)或重 置事件)已發生的某一信號作出反應,根據預定實施抉擇 將_列優先位元(TPB) 1499設爲0或1。在一項具體實施例 中,可將串列優先位元(TPB) 1499初始設定成某一特定數 値’其相當於具有初始處理優先的特定串列。例如,可將 串列優先位兀(TPB) 1499初始設定〇來指示串列〇具有初始 處里優先在另一項具體實施例中,串列優先位元(tpb) 1499的數値可在〇與1間任意選定,以對特定事件之一作出 _____ -29- 本紙張尺度適用中國國家標準(〇^s)A4規格(21〇 x 297公髮)-------- -------r-----裝—------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 538378 A7 B7 五、發明說明(27 ) 反應。還;^一項具體實施例中,可將串列優先位元(TPB) 設定成與核能(nuke)或重置事件之前之上一次優先持續時 間相同的黎値。如上文及下文中的解説,因爲處理優先會 定期在兩郁j串列間交替,所以如何設定串列優先位元(TPB) 1499並不重要。爲了對核能(nuke)或重置之類的特定事件 之一作出真應,還會將TCO 1403及TC1 1405的内容初始化 成某一預笟開始値。在一項具體實施例中’ TC0 1403及 TC1 1405都是初始化成1。然後,根據串列優先位元(TPB) 1499的初始値而定,將源自於TC0 1403或TC1 1405的數値 載入到TPC 1413。例如,如果最初將串列優先位元(TPB) 1499設爲0,則會選定TC0 14〇3的内容來計算初始優先持續 時間的時序週期數。在一項具體實施例中,將TC0 1403或 TC1 1405的數値載入到TPC 1413之前,先將該數値乘上預 定數(例如,16)。於一項具體實施例中,向左移位器1411 用於執行預定的乘法運算。在一項具體實施例中,在將 丁 C0 1403·或丁〇 1405的内容直接載入到TPC,並用於指示優 先持續時間有多長。在一項具體實施例中,TPC 1413内含 的數値指示於特定串列具有處理優先期間的時序週期數。 請再次參考圖14,每隔處理週期將TPC 1413遞減預定計 數値。於一項具體實施例中,預定計數値等於1計數値, 而處理週期等於一個時序週期。因此,每隔處理週期將 TPC H13減1。比較邏輯1415每隔處理週期執行一次比較運 算,用以比較TPC 1413的内容與預定限定値。在一項具體 實施例中,比較邏輯1415每隔時序週期執行比較運算一 -30- 本紙張又度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) |裝--------訂---------線- 經濟部智慧財產局員工消費合作社印製 538378 五 經濟部智慧財產局員工消費合作社印製 A7 B7 發明說明(28 ) 次’並且預定限定値設爲0。繼續本範例,當TPC 1413的 内容到達0時,比較邏輯1415產生一個信號,用以指示在 目則的處理週期中,前一優先持續時間已逾期。比較邏輯 1415產生的信號及串列優先位元(TPB) 1499都會輸入到 XOR(互斥或)閘1417,以便將先前的串列優先位元 (TPB) 1499反相。例如,先前的串列優先位元(τρΒ) 1499爲 〇 ’則XOR(互斥或)閘H17會將串列優先位元(TPB) 1499反 相爲1,以對比較邏輯1415產生的信號作出反應。先前的 串列優先位元(TPB) 1499還輸入到MUX(多工器)1409作爲. 選擇信號,以便選擇TC0或TC1計數器的内容作爲用來計算 新優先週期持續時間的數値。在此範例中,如果先前的串 列優先位元(TPB) 1499爲0 (因此新數値爲1 ),則MUX 1409 選擇TC1 1405内容,否則MUX 1409選擇TC0 1403内容。然 後,向左移位器1411將MUX 1409選定的數値乘預定數(例 如,16)。然後,將向左移位器mu的輸出載入到tpc 1413,以對比較邏輯1415產生的信號作出反應。 每隔處理週期都會將T0計數器1403及T1計數器1405的内 容更新,其方式如下。將T0計數器1403的内容重置成預定 數,以對OR(或)閘1401產生的信號作出反應,或者,根據 AND(及)閘1431產生的信號,將T0計數器1403的内容遞增 預定數。在一項具體實施例中,如果將來自OR(或)閘1401 的信號置「1」,則會將T0計數器1403的内容重置成1。在 一項具體實施例中,如果將AND(及)閘14M的信號置 Γ 1」,則會將T0計數器14〇3遞增1。〇R(或)閘ι4〇ι有兩 -31 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------------裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 538378 經濟部智慧財產局員工消費合作社印製 A7 ___B7 _ 五、發明說明(29 ) 個輸入。OR(或)閘1401的第一個輸入是用來指示在目前的 週期中,TO是否有要撤回的任何指令。如果在目前的週期 中,το沒有要撤回的任何指令,則會將〇R(或)閘1401的第 一個輸入設爲1 ’否則會重置爲〇。〇R(或)閘14〇1的第二個 輸入是用來指示在目前的週期中,丁〇是否已撤回至少一個 指令。如果在目前的週期中,丁〇已撤回至少一個指令,則 會將OR(或)閘H01的第二個輸入設爲1。因此,如果〇R(或) 閘1401的第一輸入或第二輸入置「1」,則會將τ〇計數器 1403重置成1。在此範例中,如果將〇R(或)閘14〇1的任一 輸入置「1」’則T0正在執行進度(即,未處於陷住狀 態)。因此,不需要遞增丁〇的優先持續時間。 AND(及)閘1431有三個不同的輸入。AND(及)閘1431的第 一個輸入是来自OR(或)閘14〇1的輸出信號的反相。因此, 只有OR(或)閘1401之輸出處於低電位狀態(1〇w)時,.才會將 AND(及)閘1431的第一個輸入置「1」。如上文所述,〇R (或)閘1401的輸出處於低電位狀態(1〇w)意味著沒有同時發 生清除計數器的矛盾指令。AND(及)閘1431的第二個輸入 是比較邏輯1415產生的信號。如上文所述,來自比較邏輯 1415的信號‘維持低電位狀態(low),直到TPC 1413的内容到 達預定限定値,例如〇。因此,只有TPC到達預定限定値 (即’目前的優先持續時間已逾期)時,才會將and (及)閘 1431的第二個輸入置「1」。AND(及)閘1431的第三個輸入 是串列優先位元(TPB) 1499的反相。就其本身而論,只有當 TPC 1413到達其預定限定値時,_列優先位元(jpg) 1499爲 -32- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------------------------------ (請先閱讀背面之注意事項再填寫本頁)
經濟部智慧財產局員工消費合作社印制农 發明說明(3〇 ) 〇的情況下,才會將AND(及)閉1431的第三個輸入置 备1」。如上文所述,在TPC 1413到達預定限定値後,將 會条列優先位元(TPB) 1499反相。因此,如果串列〇具有優 先持%時間,則會將串列優先位元(TPB) 1499從〇反相到 1。結果,只有在目前的處理週期中,如果處理優先已從 串列切換到串列丨,才會將AND(及)閘1431的第三個輸入置 「 1」。因此,如果滿足下列的條件,則會將(及)閘 1431的輸出置「i」,用以將τ〇計數器14〇3的内容遞增預定 數(例如,1)。第一條件是沒有清除計數器的矛盾指令。 這疋藉由OR(或)閘1401的輸出來指示。第二條件是在目前 的處理週期内,處理優先已從_列〇切換到串列1。當1[1)〇 1413到達預定限定値(例如,〇 ),並且串列優先位元(τρΒ) 1409從〇反相爲!時,即滿足第二條件。 同樣地’將丁1計數器1405的内容重置成預定數,以對 OR(或)閘14〇7產生的信號作出反應,或者,根據AND(及) 閘1433產生的信號,將T1計數器1405的内容遞增預定數。 在一項具體實施例中,如果將來自〇R(或)閘14〇7的信號置 「1」,則會將T1計數器1405的内容重置成1。在一項具體 實施例中,‘如果將AND(及)閘I433的信號置Γ 1」,則會將 T1計數器1405遞增1。〇R(或)閘14〇7有兩個輸入。〇R(或). 閘1407的第一個輸入是用來指示在目前的週期中,T1是否 有要撤回的任何指令。如果在目前的週期中,T1沒有要撤 回的任何指令,則會將〇R(或)閘14〇7的第一個輸入設爲 1,否則會重置爲〇。〇R(或)閘14〇7的第二個輸入是用來指 ___ -33- _本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱^ " 一 -------· I------^--------1 (請先閱讀背面之注意事項再填寫本頁) 538378 A7 B7 五、發明說明(31 ) 示在目前的週期中,T1是否已撤回至少一個指令。如果在 目前的週期中,T1已撤回至少一個指令,則會將OR(或)閘 1407的第二個輸入設爲1。因此,如果OR(或)閘1407的第 一輸入或第二輸入置「1」,則會將T1計數器1405重置成 1。在此範例中,如果將OR(或)閘1407的任一輸入置 •「1」,則T1正在執行進度(即,未處於陷住狀態)。因 此,不需要遞增T1的優先持續時間。 AND(及)閘I433有三個不同的輸入。AND(及)閘1433的第 一個輸入是來自OR(或)閘1407的輸出信號的反相。因此, 只有OR(或)閘H07的輸出處於低電位狀態(l〇w)時,才會將 AND(及)閘1433的第一個輸入置Γ !」。這意味著沒有清除 計數器的矛盾指令。AND(及)閘1433的第二個輸入是比較 邏輯1415產生的信號。如上文所述,來自比較邏輯1415的 信號維持低電位狀態(low),直到TPC 1413的内容到達預定 限定値,例如0。因此,只有TPC到達預定限定値(即,目 前的優先持續時間已逾期)時,才會將AND(及)閘1433的第 二個輸入置「1」。AND(及)閘1433的第三個輸入是串列優 先位元(TPB) 1499。就其本身而論,只有當目前的優先持續 時間逾期時,串列優先位元(TPB) 1499設爲1的情況下,才 會將AND(及)閘1433的第三個輸入置Γ 1」。如上文所述, 在TPC 1413到達預定限定値後,將會串列優先位元(TPB) 1499反相。因此,如果串列1具有優先持續時間,則會將 串列優先位元(TPB) 1499從1反相到〇。結果,只有在目前 的處理週期中,如果處理優先已從串列1切換到串列〇,才 __-34- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) -裝---------訂---------線· 經濟部智慧財產局員工消費合作社印製 538378 A7 B7 五、發明說明(32 會將AND(及)閘1433的第三個輸入置「1」。因此,如果滿 足下列的條件,則會將AND(及)閘1433的輸出置Γ 1」,用 以將T1計數器1405的内容遞增預定數(例如,1 )。第一條 件疋/又有清除计數器的矛盾指令。這是藉由〇R(或)閘 1407的輸出来指示。第二條件是處理優先已從串列1切換 到_列〇。當TTC 1413到達預定限定値(例如,〇)時,、 串列優先位元(TPB) 1499從1反相爲〇時,即並且 件。 條 已藉由較佳具體實施例來説明本發 明 顯而易見, 技藝人士應明白可根據以上的説明書進行數字_ 、 改、變化及運用。 代 熟知 、修 (請先閱讀背面之)i意事項再填寫本頁) # --r---I I - I--I I---j叮·--------^^赢 經濟部智慧財產局員工消費合作社印製

Claims (1)

  1. 538378 A8 B8 C8 D8 經濟部中央榡隼局員工消費合作社中製 申請專利範圍 1· 一種於一多串列處理器交替指定一第一串列及一第二 ί列I控制處理優先的方法,該處理優先係用於避免 該第一串列與該第二_列之間的死鎖或活鎖問題,該 方法包括: 將一第一持續時間的處理優先指定給該第一串列; 決定該第一持續時間是否已逾期;以及 如果该第一持績時間已逾期,則將一第二持績時間的 處理優先相定給該第二串列。 2 ·如申請專利範圍第i項之方法,其中將該處理優先指定 給該第一串列包括: 將一串列優先信號設定成一第一數值,用以指示該第 一串列具有超越該第二串列的處理優先。 3 ·如申請專利範圍第2項之方法,其中該串列優先信號 包括一串列優先位元,將該串列優先位元設定成一第 一位元值,用以指示該第一串列具有處理優先,以 及’將該串列優先位元設定成一第二位元值,用以指 示該第二串列具有處理優先。 4 ·如申請專利範圍第2項之方法,該方法進一步包括: 設定一‘優先時間週期,用以指示於該第一持績時間期 間’該第一 _列已開始擁有處理優先。 5 ·如申請專利範圍第4項之方法,其中設定該優先時間週 期包括: 將相當於該第一持續時間的一第一數字載入到一優先 (請先閱讀背面之注意事項再填寫本頁) 訂 1·. 36-
    538378 AB1CD 六、申請專利範圍 時間計數器。 6 .如申請專利範圍第1項之方法,其中將該處理優先指定 給该弟二串列包括: 將一串列優先信號設定成一第二數值,用以指示該第 一串列具有超越該第一串列的處理優先。 7 .如申請專利範圍第6項之方法,其中該串列優先信號包 括一 _列優先位元,將該串列優先位元設定成一第一 位元值’用以指示該第一串列具有處理優先,以及, 將該_列優先位元設定成一第二位元值,用以指示該 第二串列具有處理優先。 8 ·如申凊專利範圍第6項之方法,該方法進一步包捂: 設定一優先時間週期,用以指示於該第二持續時間期 間’該第二串列已開始擁有處理優先。 9.如申請專利範圍第8項之方法,其中設定該優先時間週 期包括: 將相當於該第二持續時間的一第二數字載入到一優先 時間計數器。 經濟部中央標隼局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) 10·如申請專利範圍第1項之方法,其中決定該第一持績時 間是否已逾期包括: 保持追縱從該第一持續時間開始之已消逝的時間量; 各X旦從屋弟一持績時間開始之已消逝的時間量是否已 超過一預定限定值;以及 如不:k為弟一持續時間開始之已消逝的時間量已超過 -37- 本紙張尺度適用中國國家標準(CNS)A4ii^( 210X297^ ) 538378 ABCD 六 圍 範利請 孩預足限足值,則表示該第一持續時間已逾時。 1.如申請專利範圍第10項之方法,其中保持 了 <如消逝的 時間量包括: 經濟部中央標準局員工消費合作社印製 *該第一持續時間開始時,將一優先時間週期嗖定成 一第一數字,該第一數字相當於該第一持續時間的4 度;以及 將一優先時間週期定期遞減一預定計數值,以反映從 該第一持續時間開始之消逝的時間量。 12·如申請專利範圍第丨丨項之方法,其中檢查從該第一持 續時間開始之已消逝的時間量是否已超過一預定限定 值包括: 檢查該優先時間週期是否超過該預定限定值。 1 3 ·如申請專利範圍第12項之方法,其中該預定限定值是 零。 14.如申請專利範圍第11項之方法,其中設定該優先時間 週期包括,當該第一持續時間開始時,將相當於該第 一持續時間長度的該第一數字載到入一優先時間計數 器以及’遞減優先時間週期包括將該優先時間计數 器定期遞減該預定計數值。 1 5.如申請專利範圍第11項之方法,其中定期遞滅該優先 時間週期包括: 每一處理週期,將該優先時間週期遞減該預定計數值 一次。 -38 - 本紙張尺度適用中國國家標準(CNS ) Α4^ ( ^10X297公釐) (請先閎讀背面之注意事項再填寫本頁} -裝_ 訂 ί· 經濟部中央標率局員工消費合作社印製 538378 A8 B8 C8 -D8 六、申請專^^^ ~- Μ:申請專利範圍第15項之方法,其中該處理週期包括 〜預定處理週期數。 17.如申請專利範圍第16項之方法’其中該預定處理週期 數相當於一預定處理器時序週期數。 18’如:請專利範圍第16項之方法’其中該預定處理週期 數是1,並且該預定處理器時序週期數是i。 19.如申請專利範圍第10項之方法,其中保持追蹤消逝的 時間量包括:. 當該第一持續時間開始時,將一優先時間週期設定成 〜第一數字,該第一數字相當於該第一持續時間的開 %點;以及 將一優先時間週期定期遞增一預定計數值,以反映從 謗第一持續時間開始之消逝的時間量。 =申請專利範圍第19項之方法,其中檢查從該第一持 貝時間開始之已消逝的時間量是否已超過一預定限定 值包括: 檢查該優先時間週期是否超過該預定限定值。 2 1·如申清專利範圍第2〇項之方法,其中該預定限定值等 於該第一持續時間的長度。 22·如申請專利範圍第17項之方法,其中設定該優先時間 週期包括,當該第一持續時間開始時,將相當於該第 一持續時間開始點的該第一數字載到入一優先時間計 數器’以及’遞增優先時間週期包括將該優先時間計 -39- 本紙張尺度適用中國國家標準(CNS ) A4· ( 210X297公羡) --- ----------------IT-------φ (請先閱讀背面之注意事項再填寫本頁) 538378
    經濟部中央標隼局員工消費合作社印製 數器定期遞增該預定計數值。 23. 如申請專利範圍第1項之方法,該方法進一步包括: 決定該第一持續時間。 24. 如申凊專利範圍第23項之方法,纟中決定該第一持續 時間包括: 在開始執仃第一串列時,將該第一持續時間初始化成 一第一初始時間週期。 如申請專利範圍第則之方法,其中決定該第一持續時 間初始化成該第一初始時間週期包括: 將相當於該第一初始週期的一第一數字載入到一第一 計數器。 如申請專利範圍第24項之方法,其中該第一初始時間週 期相當於一預定處理週期數。 、申π專利範圍第26項〈方法,其中每個處理週期相當 於預疋處理週期數,並且,每個處理週期相當於一 預足處理器時序週期數。 28·如申請專利範圍第則之方法,其中決定該第 間進一步包括: 將該第-持續時間設定成—預定重新開始時間週期, 以對特定事件作出反應。 29tt請專利範圍第28項之方法,其中將該第—持續時間 ,又定成該預定重新開始時間週期包括: 將相當於該預定重新開始週期的一第一重新開始 ------1Τ-------^ (請先閱讀背面之注意事項再填寫本頁) -40-
    申請專利範圍 第一計數器 載入至|J 3 0 .如帝 ~ ^ 、明專利範圍第28項之方法,其中該預定重新開始 ^時間週期相當於一預定處理週期數。 〇 1 .如申士-忠 由π專利範圍第28項之方法,其中該特定事件係從 ^核旎(nuke)事件及一重置事件所組成的群組中選 定0 02.如申請專利範圍第23項之方法,其中決定該第一持缋 時間進一步包括: ’、 走期更新該第一持續時間。 申巧專利範圍第32項之方法,其中更新該第一持續 時間包括: 決毛在目前的處理週期,該第一持續時間是否有執行 進度;以及 、如果在目前的處理週期,該第一持續時間有執行進 度’則將該第一持續時間設定成一第一開始值。 申μ專利範圍第3 3項之方法,其中決定在目前的處 $週·期’該第一持續時間是否有執行進度包括: &查在該第一串列中是否有等待撤回的任何指令;以 及 如果在目前的處理週期,該第一串列中沒有等待撤回 的任何指令’則表示該第一串列有執行進度。 3 5·如申凊專利範圍第34項之方法,其中檢查在該第一申 列中是否有等待撤回的任何指令包括: ----------------IT-------φ (請先閱讀背面之注意事項再填寫本頁) 經濟部中夬榡隼局員工消費合作社印製 -41 -
    538378 A8 B8 C8 D8 申請專利範圍 檢查一佇列,該仵列係用於儲存該第一串列中等 回的指令。 如申清專利範圍第33項之方法,其中決定在目前的處 理週期’該第一持續時間是否有執行進度包括: 決毛在目酌的處理週期,該第一串列是否已擬回至少 —個栺令;以及 如果在目前的處理週期,該第一串列已撤回至少_個 指令,則表示該第一串列有執行進度。 37.如申凊專利範圍第33項之方法,其中將該第一持續時間 設定成該第一開始值包括: 將一第一計數器設定成該第一開始值。 3 8·如申清專利範圍第32項之方法,其中更新該第一持續時 間包括: 根據從該群組選定的至少一項因數,將該第一持續時 間遞增一預定量,該群組的組成包括:一第一因數, 其用於指示在一預定時間週期内,該第一串列是否有 執仃進度;以及,一第二因數,其用於指示在一目前 的處理週期中,該處理優先是否已反相。 3 9.如申凊專利範圍第%項之方法,其中該預定時間週期 包括一時間週期,於該時間週期,最後將處理優先指 疋給弟—串列。 40·如申請專利範圍第38項之方法,其中該預定時間週期 包括一時間週期,於該時間週期,最後將處理優先指 裝 訂 (請先閱讀背面之注意事項再填寫本頁} 經濟部中央標隼局員工消費合作社印製 -42- 538378 經濟部中央標隼局員工消費合作社印製 、申請專利範圍 定給第二串列。 申#專利範圍罘38項之方法,其中該預定時間週期 二:::間週期,於該時間週期,最後將處理優先 曰 以及一時間週期,於該時間週期, 最後將處理優先指定給第二串列。 A如中請專利範園第38項之方法,其中遞增包括: 如果在目前的處理週期中,該第一争列從上一次具有 處理優先開始沒有執行進度,並且處理優先已從該第 串列切換到m第二事%,則會將該第一持續時間遞 增該預定量。 43. 如中請專利範圍第卿之方法,其中遞增包括: 如果在目前的處理週期中,該第一串列從上一次具有 處理優先開始沒有執行進度,並且處理優先已從該第 二串列切換到該第一串列,則會將該第一持續時間遞 增該預定量。 44. 如申請專利範圍第38項之方法,其中遞增該第一持續 時間包括: 將該第一計數器遞增該預定計數值,該預定計數值相 當於一預定處理週期數。 45. —種用於在一目前的處理週期中,於一多串列處理器 叉替指足一第一串列及一第二_列之仲裁處理優先的 裝置,該裝置包括: 一第一電路,用以決定一目前的優先週期是否已逾 -43- ---------0^------、玎-------Φ (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家揉準(CNS ) A4g ( 21〇χ297公釐) 輕濟部中夬榡隼局員工消費合作社印製 _ C8 ^〜_ P8_ 六、申請專利範圍 ~-- 期’並且,如果該目前的優先週期已逾期,則產生_ 變更信號;以及 〜第二電路,用以將該處理優先反相,以對該變更信 號作出反應。 種用於在一目前的處理週期中,於一多串列處理器 中一第一串列及一第二串列間管理處理優先的裝置, 該裝置包括·· 〜第一計數器,用於儲存一第一數值,該第一數值相 當於授予該第一 _列處理優先的一第一持續時間; —第二計數器,用於儲存一第二數值,該第二數值相 當於授予該第二串列處理優先的一第二持續時間; -選擇器,用以根據一串列優先信號來選擇該第一數 值或該第二數值,該串列優先信號用於指示處理優先 是否已授序該第一串列或該第二串列; -優先計數器’其糕合到該選擇器,並用於儲存一第 二數值,其用以指示從一目前優先週期開始已消逝的 時間有多久’該優先計數器進一步一第四數值,該第 四數值源自於該選擇器的輸出,以對一優先變更信號 作出反應; -比較器’其搞合到該優先計數器,當該優先計數器 中儲存的該第二數值超過一預定限定數時,則該比較 器將產生該優先變更信號;以及 -反相邏輯’其耦合到該比較器,並用於將該優先變 -44 - 本紙張尺度適用中國國家標準(CNS ) A4規格(21〇><297公釐) '- 一 裝 訂 (請先閲讀背面之注意事項再填寫本頁) 538378 ABCD 的一多 六、申請專利範圍 更信號反相來交替處理優先,以對來自比較器的該優 先變更信號作出反應。 47. —種於能夠同時處理一第一串列及_第二串列 串列處理器中控制處理優先的裝置,該裝置包括· -第-電路,用以決定該第一串列具有該處理優先的 -第-持續時間是否已逾期’並且,*果該第一持續 時間已逾期,則產生一優先變更信號;以及 一第二電路,如果該第一持績時間已逾期,則將一第 二持續時間的處理優先從該第一串列反轉到該第二事 列。 48. —種於一多争列處理器中交替指定一第—串列及一第 二率列的控制處理優先的方法,該方法包括: 決定在目前的處理週期,一先前的優先週期是否已逾 期; 如果在目前的處理週期,該先前的優先週期已逾期, 則產生一優先變更信號;以及 交替該處理優先,以對該優先變更信號作出反應。 49. 一種於一多串列處理器交替指定一第一串列及一第二 辛列之仲裁處理優先的裝置,該裝置包括: 裝置,用以決定在目前的處理週期中,—目前優先持 續時間是否已逾期;以及 裝置,如果在目前的處理週期中,該目前優先持續時 間已逾期,則交替該處理優先。 --------·1------1T-------Φ (請先聞讀背面之注意事項再填寫本頁) 經濟部中央標隼局員工消費合作社印製 -45- 538378 8 8 8 8 ABCD 六、申請專利範圍 5 0. —種於一多串列處理器中一第一串列及一第二串列的 控制處理優先的方法,以避免死鎖及活鎖問題,該方 法包括: 交替指定該處理優先給該第一串列長達一第一優先持 續時間,及指定該處理優先給該第一串列長達一第二 優先持續時間; 如果從上一次將處理優先指定給該第一串列開始經過 一第一時間週期之後,該第一串列沒有執行進度,則 會將該第一優先持續時間遞增一第一預定量;以及 如果從上一次將處理優先指定給該第二串列開始經過 一第二時間週期之後,該第二串列沒有執行進度,則 會將該第二優先持續時間遞增一第二預定量。 (請先閱讀背面之注意事項再填寫本頁) 經濟部中央標隼局員工消費合作社印製 -46- 本紙張適用中國國家標準(CNS ) A4規格(210X297公釐)
TW089112947A 1999-07-08 2000-06-30 Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor TW538378B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/350,408 US6542921B1 (en) 1999-07-08 1999-07-08 Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor

Publications (1)

Publication Number Publication Date
TW538378B true TW538378B (en) 2003-06-21

Family

ID=23376581

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089112947A TW538378B (en) 1999-07-08 2000-06-30 Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor

Country Status (7)

Country Link
US (3) US6542921B1 (zh)
AU (1) AU5640800A (zh)
DE (1) DE10084804T1 (zh)
GB (1) GB2368165B (zh)
HK (1) HK1042962B (zh)
TW (1) TW538378B (zh)
WO (1) WO2001004750A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI401568B (zh) * 2005-03-23 2013-07-11 Qualcomm Inc 在弱有序處理系統中強化強有序請求

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385715B1 (en) * 1996-11-13 2002-05-07 Intel Corporation Multi-threading for a processor utilizing a replay queue
US7334229B1 (en) * 1999-01-28 2008-02-19 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US7644439B2 (en) * 1999-05-03 2010-01-05 Cisco Technology, Inc. Timing attacks against user logon and network I/O
US6542921B1 (en) * 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
US6714958B1 (en) * 1999-07-28 2004-03-30 International Business Machines Corporation Detecting and causing latent deadlocks in multi-threaded programs
US7518993B1 (en) * 1999-11-19 2009-04-14 The United States Of America As Represented By The Secretary Of The Navy Prioritizing resource utilization in multi-thread computing system
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US7856633B1 (en) * 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
US6981129B1 (en) * 2000-11-02 2005-12-27 Intel Corporation Breaking replay dependency loops in a processor using a rescheduled replay queue
US7051330B1 (en) * 2000-11-21 2006-05-23 Microsoft Corporation Generic application server and method of operation therefor
US6651158B2 (en) * 2001-06-22 2003-11-18 Intel Corporation Determination of approaching instruction starvation of threads based on a plurality of conditions
US7454600B2 (en) * 2001-06-22 2008-11-18 Intel Corporation Method and apparatus for assigning thread priority in a processor or the like
JP3975703B2 (ja) * 2001-08-16 2007-09-12 日本電気株式会社 情報処理システムにおける優先実行制御方法及びその装置並びにプログラム
US7360217B2 (en) * 2001-09-28 2008-04-15 Consentry Networks, Inc. Multi-threaded packet processing engine for stateful packet processing
US20060218556A1 (en) * 2001-09-28 2006-09-28 Nemirovsky Mario D Mechanism for managing resource locking in a multi-threaded environment
US20070005942A1 (en) * 2002-01-14 2007-01-04 Gil Vinitzky Converting a processor into a compatible virtual multithreaded processor (VMP)
CA2474477C (en) * 2002-01-30 2011-04-12 Real Enterprise Solutions Development B.V. Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
US6895497B2 (en) 2002-03-06 2005-05-17 Hewlett-Packard Development Company, L.P. Multidispatch CPU integrated circuit having virtualized and modular resources and adjustable dispatch priority
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US8024735B2 (en) 2002-06-14 2011-09-20 Intel Corporation Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution
US7207040B2 (en) * 2002-08-15 2007-04-17 Sun Microsystems, Inc. Multi-CPUs support with thread priority control
US7065596B2 (en) 2002-09-19 2006-06-20 Intel Corporation Method and apparatus to resolve instruction starvation
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
US7000047B2 (en) * 2003-04-23 2006-02-14 International Business Machines Corporation Mechanism for effectively handling livelocks in a simultaneous multithreading processor
US7363625B2 (en) * 2003-04-24 2008-04-22 International Business Machines Corporation Method for changing a thread priority in a simultaneous multithread processor
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
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
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
US7308510B2 (en) * 2003-05-07 2007-12-11 Intel Corporation Method and apparatus for avoiding live-lock in a multinode system
US7555540B2 (en) 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
US7360064B1 (en) 2003-12-10 2008-04-15 Cisco Technology, Inc. Thread interleaving in a multithreaded embedded processor
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US7441101B1 (en) 2003-12-10 2008-10-21 Cisco Technology, Inc. Thread-aware instruction fetching in a multithreaded embedded processor
US7206922B1 (en) 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US20050166177A1 (en) * 2004-01-27 2005-07-28 Ylian Saint-Hilaire Thread module chaining
US20050198475A1 (en) * 2004-02-06 2005-09-08 Infineon Technologies, Inc. Thread selection unit and method to fairly allocate processor cycles in a block multithreaded processor
US20050198305A1 (en) * 2004-03-04 2005-09-08 Peter Pezaris Method and system for associating a thread with content in a social networking environment
US20050246461A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Scheduling threads in a multi-processor computer
US7594234B1 (en) * 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
US7487503B2 (en) 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
US20060069734A1 (en) * 2004-09-01 2006-03-30 Michael Gersh Method and system for organizing and displaying message threads
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
US7765547B2 (en) * 2004-11-24 2010-07-27 Maxim Integrated Products, Inc. Hardware multithreading systems with state registers having thread profiling data
US7409520B2 (en) * 2005-01-25 2008-08-05 International Business Machines Corporation Systems and methods for time division multiplex multithreading
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
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
US7506140B2 (en) * 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
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
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
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
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
US7752627B2 (en) * 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
WO2006092792A2 (en) * 2005-03-02 2006-09-08 Mplicity Ltd. Efficient machine state replication for multithreading
US8230423B2 (en) * 2005-04-07 2012-07-24 International Business Machines Corporation Multithreaded processor architecture with operational latency hiding
US20060265383A1 (en) * 2005-05-18 2006-11-23 Pezaris Design, Inc. Method and system for performing and sorting a content search
US7827554B2 (en) * 2005-06-20 2010-11-02 Microsoft Corporation Multi-thread multimedia processing
US7552236B2 (en) * 2005-07-14 2009-06-23 International Business Machines Corporation Routing interrupts in a multi-node system
US7823158B2 (en) * 2005-08-18 2010-10-26 International Business Machines Corporation Adaptive scheduling and management of work processing in a target context in resource contention
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
US8015565B2 (en) * 2005-11-21 2011-09-06 International Business Machines Corporation Preventing livelocks in processor selection of load requests
US7558946B2 (en) * 2005-12-12 2009-07-07 Intel Corporation Breaking a lock situation in a processor without detection of the lock situation using a multi-level approach
US20070150897A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Methods and apparatus for detecting deadlock in multithreading programs
US8347295B1 (en) 2006-03-23 2013-01-01 Emc Corporation Profile-based assignment of queued tasks
US8826280B1 (en) 2006-03-23 2014-09-02 Emc Corporation Processing raw information for performing real-time monitoring of task queues
US8539493B1 (en) * 2006-03-23 2013-09-17 Emc Corporation Configurable prioritization and aging of queued tasks
JP4971676B2 (ja) * 2006-04-28 2012-07-11 ルネサスエレクトロニクス株式会社 割り込み制御回路及び割り込み制御方法
JP2007334641A (ja) * 2006-06-15 2007-12-27 Sony Corp 情報処理装置および方法、並びにプログラム
US7773621B2 (en) * 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
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
US8243069B1 (en) 2006-11-03 2012-08-14 Nvidia Corporation Late Z testing for multiple render targets
US7500210B2 (en) * 2006-11-15 2009-03-03 Mplicity Ltd. Chip area optimization for multithreaded designs
US7853950B2 (en) * 2007-04-05 2010-12-14 International Business Machines Corporarion Executing multiple threads in a processor
EP2003556A1 (fr) * 2007-05-25 2008-12-17 Axalto SA Procédé de traitement par un dispositif électronique portable de commandes applicatives issues de canaux physiques, dispositif et système correspondants
US8074219B2 (en) * 2007-06-27 2011-12-06 Microsoft Corporation Order preservation in data parallel operations
US20090044159A1 (en) * 2007-08-08 2009-02-12 Mplicity Ltd. False path handling
US8117618B2 (en) * 2007-10-12 2012-02-14 Freescale Semiconductor, Inc. Forward progress mechanism for a multithreaded processor
DE102007051803A1 (de) * 2007-10-30 2009-05-07 Infineon Technologies Ag Verfahren und Vorrichtung zur Datenverarbeitung
US9009020B1 (en) * 2007-12-12 2015-04-14 F5 Networks, Inc. Automatic identification of interesting interleavings in a multithreaded program
US8175759B2 (en) * 2009-06-22 2012-05-08 Honeywell International Inc. Systems and methods for validating predetermined events in reconfigurable control systems
US10169072B2 (en) * 2009-09-23 2019-01-01 Nvidia Corporation Hardware for parallel command list generation
JP5376042B2 (ja) * 2010-03-18 2013-12-25 富士通株式会社 マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
US8626904B1 (en) * 2011-03-09 2014-01-07 Symantec Corporation Detecting and reporting livelocks in a computer
US9652243B2 (en) 2011-06-29 2017-05-16 International Business Machines Corporation Predicting out-of-order instruction level parallelism of threads in a multi-threaded processor
US9465670B2 (en) 2011-12-16 2016-10-11 Intel Corporation Generational thread scheduler using reservations for fair scheduling
US8949841B2 (en) * 2012-12-27 2015-02-03 Nvidia Corporation Approach for a configurable phase-based priority scheduler
GB2521155B (en) * 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configuring thread scheduling on a multi-threaded data processing apparatus
GB2521151B (en) 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configurable thread ordering for a data processing apparatus
US10102004B2 (en) 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
US9417876B2 (en) 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US9921848B2 (en) 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US9354883B2 (en) 2014-03-27 2016-05-31 International Business Machines Corporation Dynamic enablement of multithreading
US9804846B2 (en) 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
US9218185B2 (en) 2014-03-27 2015-12-22 International Business Machines Corporation Multithreading capability information retrieval
US9477521B2 (en) 2014-05-29 2016-10-25 Netapp, Inc. Method and system for scheduling repetitive tasks in O(1)
US9304702B2 (en) 2014-05-29 2016-04-05 Netapp, Inc. System and method for parallelized performance data collection in a computing system
US9256477B2 (en) * 2014-05-29 2016-02-09 Netapp, Inc. Lockless waterfall thread communication
US10228958B1 (en) * 2014-12-05 2019-03-12 Quest Software Inc. Systems and methods for archiving time-series data during high-demand intervals
US20180109469A1 (en) * 2016-10-17 2018-04-19 International Business Machines Corporation Systems and methods for controlling process priority for efficient resource allocation
US10831492B2 (en) 2018-07-05 2020-11-10 International Business Machines Corporation Most favored branch issue

Family Cites Families (39)

* Cited by examiner, † Cited by third party
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
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
US5430850A (en) 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
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
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
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
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
US5771138A (en) * 1995-03-15 1998-06-23 Read-Rite Corporation Head gimbal assembly with transducer wires attached at two points to slider
JPH096633A (ja) 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5900025A (en) * 1995-09-12 1999-05-04 Zsp Corporation Processor having a hierarchical control register file and methods for operating the same
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
US5791522A (en) 1995-11-30 1998-08-11 Sealed Air Corporation Modular narrow profile foam dispenser
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
GB2311882B (en) * 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
KR100500002B1 (ko) 1996-08-27 2005-09-08 마츠시타 덴끼 산교 가부시키가이샤 복수의명령흐름을독립적으로처리하고,명령흐름단위로처리성능을유연하게제어하는멀티스레드프로세서
US6088788A (en) 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
EP0856797B1 (en) 1997-01-30 2003-05-21 STMicroelectronics Limited A cache system for concurrent processes
US5835705A (en) 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6233599B1 (en) * 1997-07-10 2001-05-15 International Business Machines Corporation Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
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
US6052709A (en) 1997-12-23 2000-04-18 Bright Light Technologies, Inc. Apparatus and method for controlling delivery of unsolicited electronic mail
US5999932A (en) 1998-01-13 1999-12-07 Bright Light Technologies, Inc. System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing
US6430593B1 (en) * 1998-03-10 2002-08-06 Motorola Inc. Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system
US6092175A (en) 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
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
US6115709A (en) 1998-09-18 2000-09-05 Tacit Knowledge Systems, Inc. Method and system for constructing a knowledge profile of a user having unrestricted and restricted access portions according to respective levels of confidence of content of the portions
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US6542921B1 (en) * 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI401568B (zh) * 2005-03-23 2013-07-11 Qualcomm Inc 在弱有序處理系統中強化強有序請求
US9026744B2 (en) 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing

Also Published As

Publication number Publication date
GB2368165A (en) 2002-04-24
GB2368165B (en) 2004-04-07
GB0200078D0 (en) 2002-02-20
US20030158885A1 (en) 2003-08-21
HK1042962B (zh) 2004-11-26
US6542921B1 (en) 2003-04-01
HK1042962A1 (en) 2002-08-30
US20030154235A1 (en) 2003-08-14
GB2368165A8 (en) 2004-07-07
US6928647B2 (en) 2005-08-09
AU5640800A (en) 2001-01-30
WO2001004750A1 (en) 2001-01-18
DE10084804T1 (de) 2002-10-10

Similar Documents

Publication Publication Date Title
TW538378B (en) Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
KR102341785B1 (ko) 결정론적 및 기회적 멀티스레딩
TWI439930B (zh) 具選擇性啟動早期引退功能之失序執行微處理器
TW554287B (en) Method and apparatus for managing resources in a multithreaded processor
US6035389A (en) Scheduling instructions with different latencies
KR102335194B1 (ko) 명령어 체이닝 능력을 이용한 멀티스레드형 프로세서에서의 기회 멀티스레딩
TWI308295B (en) Apparatus and method for switchable conditional execution in a vliw processor
CN102880447B (zh) 一种在处理器中挂起和释放执行过程中计算线程的整体机制
US7725696B1 (en) Method and apparatus for modulo scheduled loop execution in a processor architecture
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
US20060179279A1 (en) Bifurcated thread scheduler in a multithreading microprocessor
US20040073906A1 (en) Processor with speculative multithreading and hardware to support multithreading software {including global registers and busy bit memory elements}
TW200935300A (en) Microprocessors and methods for executing macroinstructions
WO2011155097A1 (ja) 命令発行制御装置及び方法
EP3384377B1 (en) Data processing
US8560813B2 (en) Multithreaded processor with fast and slow paths pipeline issuing instructions of differing complexity of different instruction set and avoiding collision
JP3589698B2 (ja) インタロックハードウェアの単純化方法及び装置
CN101322111A (zh) 每个线程具有多个并发流水线的多线程处理器
US20140258697A1 (en) Apparatus and Method for Transitive Instruction Scheduling
JP2004514986A (ja) 多くのオペランドを扱う命令を有するデータ処理装置
JP3096429B2 (ja) 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ
TW200539024A (en) Methods and apparatus for instruction alignment
JPH10187464A (ja) マルチスカラ・プログラムを作成する方法およびシステム
US6697933B1 (en) Method and apparatus for fast, speculative floating point register renaming
May XMOS XS1 Architecture

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