TW201428630A - 將處理器置於漸慢作業模式中之系統與方法 - Google Patents
將處理器置於漸慢作業模式中之系統與方法 Download PDFInfo
- Publication number
- TW201428630A TW201428630A TW102143769A TW102143769A TW201428630A TW 201428630 A TW201428630 A TW 201428630A TW 102143769 A TW102143769 A TW 102143769A TW 102143769 A TW102143769 A TW 102143769A TW 201428630 A TW201428630 A TW 201428630A
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- instruction
- phase
- unit
- processing
- Prior art date
Links
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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明揭露一種將處理器置於漸慢作業模式中之系統與方法。此漸慢作業模式包含處理器中一個發佈單元之漸慢作業的複數個階段,其中各指令的發佈係根據一階段方案而變慢。處理器的漸慢作業可以解決處理器的活鎖(livelock)狀態。再者,由於減慢係漸進式的,因此處理器可彈性地避免不同程度的活鎖狀態。根據活鎖狀態的嚴重性,實施例所示的機制對較不嚴重的活鎖狀態有些微的效能影響,而僅在活鎖狀態較嚴重時才增加處理器效能影響,進而影響處理器的整體效能。
Description
本發明係關於一種改良式資料處理系統及方法;具體而言,係本發明係針對將處理器置於漸慢作業模式中之系統與方法。處理器的漸慢作業模式係用以解決處理器核心的活鎖狀態。
目前的處理器設計中,尤其係同時多線程(SMT)處理器設計,活鎖狀態係在設計階段最難找到及解決的問題之一,活鎖狀態通常要到其設計已實施在硬體中時才會找到。活鎖狀態係指處理器反覆執行相同的指令集,卻沒有實際進展。處理器單元之間的「諧波」固定週期互動,係導致活鎖狀態的其中一個原因。其他導致活鎖狀態的原因有反覆刷新及重新擷取指令,以及發佈佇列反覆重新發佈,卻因為反覆刷新狀態發生於無資源或資源處於忙碌而無法被釋放的狀態下,而從未完成指令。
「諧波」固定週期互動,係在一個處理器管線中,使
用固定數量的週期處理並完成指令的執行下的產物。多線程的指令係以諧波的方式透過處理器管線作處理,使得每個線程中的每個指令實質同時地完成處理作業。若數個執行線程間有關聯性,使得一個線程需要另一個線程執行的指令結果,則可能會因為兩個指令同時需要透過處理器管線作處理,且資源及關聯性有衝突,而導致活鎖狀態的產生。有關聯的指令會因為沒有取得另一個線程中的指令結果而無法完成。若另一個線程中的指令遇到資源衝突,則兩個線程中的指令會反覆被刷新並重新發佈到管線。
圖6A及6B顯示會產生活鎖狀態的程式碼及雙重指令發佈處理器設計之範例。圖6A顯示SMT及雙重指令發佈處理器管線設計,其中每隔一個週期就會從每個線程中發佈兩個指令。圖6B顯示範例使用者代碼,當執行於圖6A所示的處理器管線中時,此代碼會導致兩個線程試圖存取處理器中的特殊目的暫存器(SPR)。線程0編有Branch-Not-Equal(bneq)指令,以等待線程1代碼完成其SPR存取。線程0代碼會持續分支回來,並持續檢查線程1的「儲存」指令是否已完成。
圖6A中所示在處理器管線設計中的SPR佇列僅能同時支援兩個SPR指令。因此,線程1中的第三個SPR指令以及第三個SPR指令後的所有指令將永遠被刷新並被重新發佈。若線程0及線程1的指令係以表1中所顯示的方式編譯,則在「mt sprC R1」指令前所有線程1的指令會被完成。線程1的「mt sprC R1」會因為SPR佇列正忙
碌進行「mt sprA R3」及「mt sprB R2」而一開始即被刷新。只要線程1的「store R4 0x100」未被執行,則在「bneq CheckThread1SPR」後的所有線程0指令會被發佈並刷新。
表2顯示因為在兩個線程剩下的指令都被重新發佈、刷新及再次重新發佈,而在n+1及n+3的線程1的指令完成後產生的新代碼順序。如表2所示,線程1的「mt sprC R1」會再被刷新,因為線程0的「mt sprD R6」及「mt sprE R7」在線程1的「mt sprC R1」之前先被發佈。線程0中的這兩個「移到SPR」指令最後會因為分支預言錯誤而被刷新。從這兩個從線程刷新的狀態(線程0的分支預言錯誤刷新及線程1的移到SPR指令)持續刷新,而發佈單元會處於一個「諧波」窗口。因此,表2中線程0及線程1的指令會一次又一次的重新發佈並刷新。這會導致處理器進入活鎖狀態。
通常在真實應用程式執行於處理器硬體中時會偵測到如上述的活鎖狀態。通常在此時修改設計的成本已經太高且也太晚。因次,重要的是具有一個一般的方法,建立在處理器核心中,以偵測並解決在硬體確認期間所發現之此種無法預期的活鎖狀態。
一般而言,硬體為基礎的偵測機制,係可硬體編碼在處理器設計本身,例如在處理器的發佈單元中,以偵測此等活鎖狀態。偵測機制可以偵測到活鎖狀態的方式會根據特定實施例而不同。舉例而言,偵測機制可利用計算特定指令的刷新數、或指令重新發佈卻未.完成的數量來偵測活鎖狀態。此等狀態表示狀態的改變卻沒有向前進展,因此,即為潛在的活鎖現象。
在習知設計中,為了回應利用活鎖偵測機制偵測活鎖狀態的發生,處理器管線係置於單一階段作業模式,因此在一或多個線程中一次僅能完成一個指令。然而,由於在
程式執行階段常會發生活鎖狀態,因此,每當偵測到活鎖狀態即將處理器的管線置於單一階段模式,會嚴重影響處理器的整體效能。若活鎖狀態僅在一些處理器週期會有活鎖窗口,即一段時間內不斷在處理器中偵測到活鎖狀態,則使用上述方法也是多餘。
所示實施例提供一種將處理器置於漸慢作業模式的系統及方法。漸慢的作業模式可使處理器解決活鎖狀態。再者,因為減慢是漸進式的,所以處理器可彈性的避免某種程度的活鎖狀態。所示實施例的機制,係透過對較不嚴重的活鎖狀態作些微的效能影響,並僅在活鎖狀態較嚴重的情況才增加處理器的效能影響,進而根據活鎖狀態的嚴重性影響處理器的整體效能。
透過所示實施例的機制,相關的活鎖狀態處理邏輯會提供多重階段的活鎖狀態偵測。相關的活鎖狀態處理邏輯利用不同的動作,試圖解決活鎖狀態。多重階段中的每個後續階段,係與較嚴重的活鎖狀態相關。較前面的階段係與僅有幾個處理器週期的活鎖窗口(livelock window)相關,而較後面的階段係與較長的活鎖窗口相關。在每個階段,處理器的效能會漸減,但解決活鎖狀態的可能性會漸增。
在一個所示實施例中,處理器管線的發佈單元具有漸慢控制邏輯。漸慢控制邏輯耦接空轉偵測控制邏輯,此偵
測控制邏輯係負責根據預設標準來偵測活鎖狀態,好比沒有被完成時,特定指令的刷新數、指令重新發佈的次數。為了回應偵測活鎖狀態,空轉偵測控制邏輯宣佈一個信號給漸慢模式控制邏輯,表明活鎖狀態的存在。漸慢模式控制邏輯啟動處理器的漸慢作業模式。
依照漸慢作業模式,漸慢模式控制邏輯輸出一個信號,中止指令流過處理器管線。此輸出信號係以邏輯方式作結合,例如透過或閘、結合其他控制邏輯的輸出信號,例如資料關聯性控制邏輯。因此,若漸慢模式控制邏輯或其他控制邏輯其中一者輸出一個中止指令通過處理器管線的信號,則此指令會被中止。當沒有宣佈這些信號時,指令可以正常方式流過管線。
漸慢模式控制邏輯係依照階段方案輸出信號以中止指令流動,其階段方案可為硬線或程式化到漸慢模式控制邏輯。舉例而言,若空轉偵測控制邏輯偵測到活鎖(或空轉)狀態,即有x個刷新卻沒有指定任何指令(其中x可在硬體確認後才被程式化),漸慢控制邏輯可使發佈單元減緩,使得發佈單元僅在每N個處理器週期才發佈指令,其中N係在硬體確認後才作程式化。發佈單元減慢的運作,係透過宣佈一個信號來中止指令流過管線。此信號在預設數量的週期間作宣佈,例如N個週期,使得每N個處理器週期僅發佈一個指令。
若再次發生相同的活鎖狀態,即x個刷新而沒指定一個指令,則發佈單元會再次被減緩,使得發佈單元可在每
2N個處理器週期發佈一個指令。若再此偵測到活鎖狀態,則發佈單元會再次被減緩,使得發佈單元可在每4N個處理器週期發佈一個指令。此後,處理器則被視為處於嚴重的活鎖狀態。在此狀況下,發佈單元被強迫作一系列的單一階段模式,此系列的單一階段作業模式僅允許一指令發佈,而僅允許發佈一個指令而其他指令皆不能發佈,直到先前的指令完成為止。當發佈單元消耗位於發佈單元的發佈及派送管線中的所有指令時,處理器會回到正常全速作業模式。若無偵測到活鎖狀態,則處理器會回到階段方案中任一先前階段的正常全速作業模式。
在所示實施例中,本發明提供一種解決活鎖狀態的方法。舉例而言,本方法可包含偵測資料處理裝置的活鎖狀態,並透過在活鎖狀態持續被偵測到的同時,增加處理週期的方式,漸漸中止資料處理器處理指令。本方法更可包含將資料處理裝置回復到全速作業模式,以回應偵測到活鎖狀態已被解決。
由資料處理裝置逐漸中止指令處理可包含根據階段方案,將資料處理裝置設定一個減緩速度的作業模式,以回應活鎖狀態的偵測。階段方案可具有複數個階段,透過不同的處理週期數來減緩指令處理。
將資料處理裝置設定為減緩速度的作業模式,係可包含減緩資料處理裝置處理指令為第一漸慢作業階段,並決定是否在減緩資料處理裝置處理指令後仍然持續活鎖狀態。設定資料處理裝置為減緩速度的作業模式更可包含,
若在減緩指令處理到第一漸慢作業階段而活鎖狀態仍然持續,則減緩資料處理裝置處理指令到第二漸慢作業階段。第二漸慢作業階段可延遲資料處理裝置發佈指令到比第一漸慢作業階段更久的處理週期。第二漸慢作業階段所延遲的資料處理裝置的處理週期數可能為第一漸慢作業階段延遲資料處理裝置的處理週期數的兩倍。第二漸慢作業階段可與比第一漸慢作業階段更嚴重的活鎖狀態相關。
偵測資料處理裝置中的活鎖狀態可包含偵測沒有完成特定指令到達預設臨界值時,該特定指令之刷新(flush)數。再者,偵測資料處理裝置中的活鎖狀態可包含偵測沒有完成指令到達預設臨界值時,該指令重新發佈的次數。
階段方案的最後一個階段可減緩資料處理裝置處理指令為系列的單一階段作業模式,此系列的單一階段作業模式僅允許一指令發佈,且直到此指令完成前,其他指令皆不能發佈。
資料處理裝置可為一處理器,其中延遲處理器管線中指令的發佈,會逐漸中止處理器處理指令。此方法可實施於處理器的發佈單元中。藉由中止發佈單元的發佈及派送管線來中止指令動作,可逐漸中止處理器處理指令。
製造資料處理裝置的硬體後,可將偵測活鎖狀態的標準程式化到資料處理裝置中。再者,製造資料處理裝置的硬體後,階段方案中的每個階段所延遲指令發佈的基本處理週期,可程式化到資料處理裝置。
在另一示範實施例中,本發明提供一種具有電腦可使
用媒體的電腦程式產品,而其媒體帶有電腦可讀取程式。當執行於運算裝置時,電腦可讀取程式會導致運算裝置運作上述關於本方法之示範實施例的作業或其結合。
在另一示範實施例中,本發明提供一種解決活鎖狀態的系統。本系統可包含發佈單元及與其耦接的處理器管線。發佈單元可偵測到處理器管線中的活鎖狀態,在持續偵測到活鎖狀態的同時增加處理周期的數量,來逐漸中止處理器管線處理指令,並在活鎖狀態解決後,使處理器管線回到全速作業模式。再者,發佈單元亦可實施上述關於本發明之示範實施例的作業之一或其結合。
熟此技藝者當可透過以下本發明之示範實施例之詳述了解本發明之上述及其他特徵與優勢。
100‧‧‧分散式資料處理系統
102‧‧‧網路
104、106‧‧‧伺服器
108‧‧‧儲存單元
110、112、114‧‧‧客戶端
200‧‧‧資料處理系統
202‧‧‧北橋及記憶體控制器集線器
204‧‧‧南橋及輸入/輸出控制器集線器
206‧‧‧處理單元
208‧‧‧主記憶體
210‧‧‧圖像處理器
212‧‧‧區域網路配接器
216‧‧‧音頻配接器
220‧‧‧鍵盤及滑鼠配接器
222‧‧‧數據機
224‧‧‧唯讀記憶體
226‧‧‧硬碟機
230‧‧‧光碟機
232‧‧‧通用序列匯流排埠
234‧‧‧PCI/PCIe裝置
236‧‧‧超級I/O裝置
238、240‧‧‧匯流排
300‧‧‧處理器
304‧‧‧擷取位址多工器
310‧‧‧擷取單元
320‧‧‧解碼單元
321‧‧‧程式計數位址輸入
322‧‧‧分支位址輸入
323‧‧‧刷新位址路徑
324‧‧‧中斷位址
330‧‧‧發佈單元
340‧‧‧執行單元
350‧‧‧完成單元
360‧‧‧分支單元
370‧‧‧記憶體次系統
380‧‧‧代管匯流排
390‧‧‧匯流排控制單元
392‧‧‧主記憶體單元
394‧‧‧外部裝置
410、412、414‧‧‧暫存器
420‧‧‧活鎖(或空轉)偵測控制邏輯
422、432‧‧‧計數器
430‧‧‧漸慢控制邏輯
440‧‧‧其他控制邏輯
450‧‧‧或閘
510‧‧‧全速作業模式
520‧‧‧處理器漸慢階段1
530‧‧‧處理器漸慢階段2
540‧‧‧處理器漸慢階段3
550‧‧‧處理器漸慢階段4
本發明之新穎特徵及性質係定義如以下專利請求項。然而,透過伴隨圖式及示範實施例的詳述將更易明瞭發明本身及其較佳模式、其他目的及優勢,其中:圖1係可實施本示範實施例的分散式資料處理器統之範例圖式;圖2係可實施本示範實施例的資料處理裝置的範例方塊圖;圖3係繪示示範實施例的處理器管線的範例圖式;圖4係繪示示範實施例的發佈單元的細節的範例圖式;
圖5係繪示示範實施例偵測活鎖狀態的作業階段方案及漸慢機制的範例圖式;圖6A繪示SMT及雙重指令發佈處理器管線設計,其中每個線程在隔一個週期發佈兩個指令;圖6B繪示範例使用者代碼,當執行於處理器管線如圖6A所示時,其代碼會導致兩個線程試圖存取處理器的特殊目的暫存器(SPR);以及圖7係概述示範實施例中偵測活鎖狀態及使處理器管線的作業減慢的範例作業的流程圖。
本示範實施例提供將處理器置於漸慢作業模式以解決活鎖狀態的系統及方法。本示範實施例可實施於任何運作裝置的任何處理器中。舉例而言,本示範實施例適用於伺服器運算裝置、客戶端運算裝置、通訊裝置、可攜式運算裝置或其類似者中的任何一種裝置。圖1-2係可實施本示範實施例的分散式資料處理環境及運算裝置的範例。圖1-2僅為範例且不明示或暗諭有關可實施本示範實施例之運算裝置的類型之任何限制。相反地,本示範實施例可實施於任何處理器中,不論此處理器係運作於特定機器或運算裝置。
參考圖1,其繪示可實施本示範實施例的範例分散式資料處理系統。分散式資料處理系統100可包含得實施本發明之示範實施例的許多電腦網路。分散式資料處理系統
100可包含至少一個網路102,其係用以提供許多在分散式資料處理系統100內相連的裝置及電腦間的通訊鏈結的媒體。網路102可包含例如有線、無線通訊鏈結、或光纖纜線的連線。
在所示範例中,伺服器104及伺服器106與儲存單元108連接網路102。再者,客戶端110、112及114亦連接網路102。這些客戶端110、112及114可為例如個人電腦、網路電腦或其類似者。在所示範例中,伺服器104提供好比開機檔案、作業系統影像及客戶端110、112及114的應用程式等資料。在所示範例中,客戶端110、112及114係伺服器104的客戶端。分散式資料處理系統100可包含未圖示之其他伺服器、客戶端及其他裝置。
在所示範例中,分散式資料處理系統100為網際網路,以網路102代表遍及全球利用傳輸控制協定/網際網路協定(TCP/IP)的協定系列相互通訊的網路及閘道的集合。網際網路的核心為主要節點或主機電腦間高速資料通訊線的主幹,這些主要節點或主機電腦包含上千個派送資料及信息的商業、政府、教育及其他電腦系統。當然,分散式資料處例系統100亦可實施為包含許多不同類型的網路,好比企業內部網路、區域網路(LAN)、廣域網路(WAN)或其類似者。如上述,圖1僅作範例之用,並非限制本發明之不同實施例的架構,因此,圖1所示的特定元件並非用以限定可實施本發明之示範實施例的環境。
參考圖2,係可實施本發明之示範實施例的範例資料
處理系統的方塊圖。資料處理系統200係電腦的範例,例如圖1中的伺服器104或客戶端110,可存放實施本發明之示範實施例的程序之電腦可使用代碼或指令。
在所示範例中,資料處理系統200利用一個集線器架構,其包含北橋及記憶體控制器集線器(NB/MCH)202與南橋及輸入/輸出(I/O)控制器集線器(SB/ICH)204。處理單元206、主記憶體208及圖像處理器210連接NB/MCH 202。圖像處理器210透過快速圖像埠(AGP)連接NB/MCH 202。
在所示範例中,區域網路(LAN)配接器212連接到SB/ICH 204。音頻配接器216、鍵盤及滑鼠配接器220、數據機222、唯讀記憶體(ROM)224、硬碟機(HDD)226、光碟機230、通用序列匯流排(USB)埠及其他通訊埠232及PCI/PCIe裝置234透過匯流排238及匯流排240連接SB/ICH 204。PCI/PCIe裝置可包含例如乙太配接器、附加(add-in)卡及手提電腦的PC卡。PCI使用卡式匯流排控制器,而PCIe不需要。ROM 224可為例如快閃二維輸入/輸出系統(BIOS)。
HDD 226及光碟機230透過匯流排240連接SB/ICH204。HDD 226及光碟機230可使用例如積體電路設備(IDE)或串聯增強技術附屬(SATA)介面。超級I/O(SIO)裝置236可連接SB/ICH 204。
作業系統係執行於處理單元206。作業系統協調並控制圖2資料處理系統200內的許多元件。作為一個客戶端
的作業系統,係可為商用作業系統,例如微軟視窗XP(微軟及視窗皆為微軟公司在美國及/或其他國家的商標)。例如Java程式系統的物件導向程式系統可與作業系統一同執行,並從執行於資料處理系統200上的Java程式或應用軟體呼叫作業系統(Java為昇陽系統公司在美國及/或其他國家的商標)。
作為伺服器的資料處理系統200可為例如IBM eServer pSeries電腦系統,係執行增強互動執行(AIX)作業系統或LINUX作業系統(eServer、pSeries及AIX為國際商業機器公司在美國及其他國家的商標,而LINUX為Linus Torvalds在美國及/或其他國家的商標)。資料處理系統200可為對稱多重處理器(SMP)系統,其包含複數個處理器在處理單元206。或者,本發明可使用單一處理器系統。
作業系統的指令、物件為導向的程式系統及應用軟體或程式,係位於例如HDD 226的儲存裝置,且可載入主記憶體208供處理單元206執行。本發明之示範實施例的程序可由處理單元206利用電腦可使用程式碼運作,程式碼係位於記憶體中,例如主記憶體208、ROM 224或在一或多個週邊裝置226及230中。
比方圖2中所示之匯流排238或匯流排240的匯流排系統可包含一或多個匯流排。當然,匯流排系統可利用任何一種類型的通訊光纖或架構實施,提供連接此光纖或架構之不同元件或裝置其間資料的移轉。例如圖2的數據機
222或網路配接器212的通訊單元可包含一或多個用以傳輸並接收資料的裝置。記憶體可為例如圖2的主記憶體208、ROM 224或NB/MCH 202。
熟此技藝者當知,圖1-2中的硬體可根據實施例作改變。其他內部硬體或週邊裝置,例如快閃記憶體、類似非揮發性記憶體、或光碟機及其類似者可作為額外的裝置或替換圖1-2中所示的硬體。又,所示實施例的程序可應用於先前所述之SMP以外的多重處理器資料處理系統,而不偏離本發明之精神及範圍。
再者,資料處理系統200可以許多不同類型的資料處理系統之形式存在,其包含客戶端運算裝置、伺服器運算裝置、平板電腦、筆記型電腦、電話或其他通訊裝置、個人數位助理(PDA)或其類似者。在某些示範實施例中,資料處理系統200可為可攜式運算裝置,係組態有快閃記憶體,以提供非揮發記憶體供儲存例如作業系統檔案及/或使用者產生的資料。本質上,資料處理系統200可為任何已知或隨後開發出的資料處理系統,其並無任何架構限制。
圖3係繪示一示範實施例的處理器的管線之範例圖式。如圖3所示,處理器300包含處理器管線,其包含擷取位址多工器304、擷取單元310、解碼單元320、發佈單元330、執行單元340、完成單元350以及分支單元360。處理器300耦接記憶體次系統370、主機匯流排380、匯流排控制單元390、主記憶體單元392以及其他
處理器及外部裝置394,如圖2所示。
依照上述元件的排列,活鎖狀態可描述為處理器中的同一組指令,從擷取位址多工器304流到擷取單元310、解碼單元320、發佈單元330、完成單元350以及透過刷新位址路徑323再回到擷取位址多工器340,如此進行多次卻沒有任何運作任何指令的實際進展。如上述,此活鎖狀態的一或多個導因,係一或多個處理單元間的「諧波(harmonic)」固定週期互動,各指令反覆地被刷新及重新擷取、或反覆地從發佈單元330的發佈佇列中重新發佈,卻因為資源已滿或處於忙碌狀態無法被釋放所發生的反覆刷新狀態,而從未完成這些指令。
所示實施例提供一種逐漸中止發佈單元330發佈指令的機制,以回應活鎖狀態的偵測。在示範實施例中,發佈單元330中有多階段的活鎖狀態偵測以及相關的活鎖狀態處理邏輯。相關的活鎖狀態處理邏輯利用不同的動作,試圖解決活鎖狀態。多階段中的每個後續階段係與更嚴重的活鎖狀態相關。較前面的階段係與僅有幾個處理器週期的活鎖窗口(livelock window)相關,而較後面的階段係與較長的活鎖窗口相關。在每個階段中,處理器的效能會逐漸降低,但解決活鎖狀態的可能性會提高。
在示範實施例中,處理器管線的發佈單元330具有漸慢模式控制邏輯。漸慢模式控制邏輯耦接空轉(hang)偵測控制邏輯,此偵測控制邏輯係負責根據預定的標準偵測活鎖狀態,好比沒有被完成時,特定指令的刷新數、指令重
新發佈的次數。為了回應偵測活鎖狀態,空轉偵測控制邏輯宣佈一個信號給漸慢模式控制邏輯,表明活鎖狀態的存在。漸慢模式控制邏輯透過中止發佈單元330發佈指令來啟動處理器的漸慢作業。
依照漸慢作業模式,漸慢模式控制邏輯輸出一個信號,中止指令流過處理器管線。此輸出信號係由邏輯方式,例如透過或閘,結合發佈單元330的其他控制邏輯(好比資料關聯性控制邏輯)的輸出信號。因此,若漸慢模式控制邏輯或其他控制邏輯任何一者,輸出一個中止指令通過發佈單元330的發佈及派送管線,則此指令會被中止。當未宣佈這些信號時,此指令會被允許以正常的方式流過發佈單元330的發佈及派送管線。
漸慢模式控制邏輯係根據硬線或對漸慢模式控制邏輯程式化的階段方案,輸出中止指令流動的信號。舉例而言,若活鎖偵測控制邏輯偵測到活鎖(或空轉)狀態,即有x個刷新卻沒有指定指令(其中x可在硬體確認後才被程式化),則漸慢模式控制邏輯可使發佈單元330減緩,使得發佈單元330僅在每N個處理器週期發佈指令,其中N可在硬體確認後作程式化。發佈單元330減緩的運作,透過宣佈一個信號來中止指令通過發佈單元330。此信號可在預定的週期作宣佈,例如N週期,使得僅在每N個處理器週期發佈指令。
發佈單元330被中止的週期數可隨著每個後續所偵測到相同的活鎖狀態而增加。換句話說,每次指令隨後連續
作重新發佈而偵測到活鎖狀態時,發佈單元被中止的週期數會跟著增加。當活鎖狀態的次數達到一個預設值時,處理器300會被視為處於嚴重的活鎖狀態。在此情況下,發佈單元330會被迫進入系列單一階段模式,僅允許一個指令發佈,且在此指令完成前不能發佈其他指令。
當發佈單元330排空其發佈及派送管線中所有的指令時,處理器300會回到正常的全速作業模式。若沒有再偵測到活鎖狀態,則處理器300都會回在階段方法中的任何先一階段的正常全速作業模式。
圖4係描述示範實施例的發佈單元之細節的範例圖式。如圖4所示,發佈單元330包含複數個暫存器410-414,一起包含發佈單元330的發佈及派送管線。發佈單元330更包含活鎖(或空轉)偵測控制邏輯420、漸慢模式控制邏輯430、及其他控制指令通過發及派送管線的控制邏輯。漸慢模式控制邏輯430及其他控制邏輯440的輸出係提供給或閘450,其輸出一個中止/移動信號給暫存器410-414,以移動儲存於這些暫存器中的指令到發佈及派送管線中的下一個暫存器(或發佈指令到執行單元340)、或中止一個處理週期的指令。
在圖4所示的處理器管線中,由多工器304從程式計數位址輸入321、分支單元360的分支位址輸入322、重置位址325、完成單元350的刷新位址或完成單元350的中斷位址324中,選出一種指令擷取位址。擷取位址係提供給擷取單元310,以從記憶體中擷取適當的指令。擷取
單元310一般會試圖從L1指令快取中擷取指令,且若指令不在L1指令快取內,則擷取單元310會試圖從L2記憶體快取擷取指令。若指令亦不在L2記憶體快取內,則擷取單元310會從較慢的系統記憶體中擷取指令。
擷取單元310擷取到指令之後,擷取單元310會提供此指令給解碼單元320。解碼單元320係負責決定特定指令係作何用途。解碼單元320詢問位於處理器300內的記憶體(未圖示),例如唯讀記憶體(ROM),其儲存處理器所了解的每個指令的微代碼(microcode)。指令的微代碼提供處理器300的執行單元(例如執行單元340)該如何執行特定指令的步驟。舉例而言,若載入的指令為a+b,則微代碼會告訴解碼單元320其需要兩個參數,即a與b。解碼單元320會接著要求擷取單元310擷取位於下兩個記憶體位置的資料,此記憶體位置係存放a與b的值。解碼單元320解碼並「解譯」此指令,並擷取所有執行此指令所需要的資料後,資料及解碼的指令會被傳給發佈單元330。
指令及資料會置於發佈及派送管線的第一暫存器410,且除非活鎖偵測控制邏輯420或其他控制邏輯440偵測到中止狀態,否則指令及資料會在每個處理器週期,透過管線,從一個暫存器移到另一個暫存器,直到指令及資料由執行單元340發佈為止。雖然圖4簡單的顯示一個單一執行單元340,但需要知道的是現在大部分的電腦具有不只一個相同或不同類型的執行單元340。因此,執行
單元340係代表一或多個相同或不同類型的執行單元,例如整數、浮點等。
活鎖偵測控制邏輯420監控完成單元350,以決定是否已到達預設數量的處理器週期,而指令尚未成功地完成。亦即,根據執行單元340所運作的指令處理,執行單元340告知完成單元350是否發生一個例外、是否應該運作發佈及派送管線的刷新、或是否有指令應被指定,即成功完成。完成單元350可接著將此資訊告知發佈單元330。
活鎖偵測控制邏輯420可包含計數器422或其他計算完成單元350所指定的指令間所花費之處理器週期的邏輯。此計數器422或其他邏輯可在例如每次發佈及派送管線被刷新,且在重新發佈指令給發佈單元330的發佈及派送管線時遞增。當計數器422或其他邏輯達到刷新臨界值的一個預設值x,而尚未因為指令被指定而重置時,活鎖偵測控制邏輯420會向漸慢控制邏輯430宣佈一個漸慢模式信號,表示漸慢控制邏輯430應該轉移到處理器300漸慢模式的下一個階段。舉例而言,當計數臨界值到達計數器值時,漸慢模式控制邏輯430中的計數器432會遞增,且會向或閘450宣佈一個適當的中止信號。
中止信號導致流向發佈及派送管線(即暫存器410-414)的指令有一個處理器週期的中止。漸慢模式控制邏輯430可持續在後續處理器週期宣佈中止指令,直到處理器週期到達臨界值(計數器)xN,其中N為中止的處理
器週期的基本臨界值。因此,舉例而言,若N為4,則第一次向漸慢模式控制邏輯430宣佈漸慢模式信號時,漸慢模式控制邏輯430會宣佈中止信號達4個處理器週期,並接著允許發佈單元330發佈指令,即允許指令從發佈及派送管線中的一個暫存器移到另一個暫存器410-414,直到發佈單元330發佈一個指令為止。舉例而言,發佈下一個指令前,需要等待4個處理器週期。中止的處理器週期的基本臨界值N可在硬體確認後,程式化到漸慢模式控制邏輯430。
藉此,發佈及派送管線會被減緩,使得每N個處理器週期發佈單元330僅得以發佈一個指令。此程序重複的同時,活鎖偵測控制邏輯420會持續監控是否已指定指令以及指令指定間的刷新數。
宣佈漸慢模式信號後,活鎖偵測控制邏輯420會重置其計數器回一初始值,並開始計算已指定指令間發佈及派送管線的刷新數。每當活鎖偵測控制邏輯420中的計數器422達到刷新臨界值的預設值x時,活鎖偵測控制邏輯420會向漸慢模式控制邏輯430宣佈漸慢模式信號。漸慢模式控制邏輯430中的計數器433會遞增,而新的計數值會作為導致漸慢模式控制邏輯430中止指令通過發佈及派送管線達(計數器)xN個處理器週期的數值。
參考上述範例值N,即4個處理器週期,活鎖偵測控制邏輯420第一次偵測到活鎖狀態時,由暫存器410-414所組成的發佈及派送管線中的指令會被中止4個處理器週
期。爾後,隨後偵測到活鎖狀態時,指令會被中止4個處理器週期的倍數,例如8、12及16個處理器週期。
一旦計數器432的值達到預設的嚴重活鎖狀態臨界值,則漸慢模式控制邏輯430會導致發佈派送管線被置於一系列的單一階段作業模式。此系列的單一階段作業模式係類似習知的單一階段作業模式,其中僅允許發佈一個指令,在前一指令成功完成前不得發佈任何指令。一旦在發佈及派送管線中的所有指令皆被發佈後,發佈單元330即可回到全速作業模式,其中活鎖狀態再被偵測到以前,指令可流過發佈及派送管線。類似地,在每個漸慢階段,即宣佈漸慢模式信號後的每次漸慢,若發佈及派送管線中的所有指令皆已排空,而沒有看到x次的刷新,沒有指定指令的狀態,則發佈單元330可回到全速模式。
漸慢模式控制邏輯420隨著偵測到更嚴重的活鎖狀態而進展到的許多漸慢階段係顯示於圖5。需要知道的是,雖然示範實施例使用指令指定間的特定個多重刷新數以及特定個多重處理器週期來中止發及派送管線中的指令,但是本發明並不限定於此數量。相反地,指令指定間的任何刷新數、或中止每個階段的處理器週期數皆可被使用而不偏離本發明之精神及範圍。實際上,在某些示範實施例中,這些數值不一定是其他數字的倍數,且可能為特定值被程式化到活鎖偵測控制邏輯420及/或漸慢模式控制邏輯430中。
圖5係繪示示範實施例中活鎖狀態偵測及漸慢機制的
階段方法之示範圖式。如圖5所示,一般而言,處理器及其發佈單元係以全速作業模式510運作。當偵測到第一個活鎖狀態時,即x個刷新數而無指定指令時,處理器會轉移到處理器漸慢階段1 520。在處理器漸慢階段1 520,發佈單元僅會在每N個週期發佈一個指令。
若發佈單元排空發佈及派送管線中的所有指令,而未看到X個刷新數卻未指定1個指令的狀態,則處理器會回到全速作業模式510。否則,處理器會移轉到處理器漸慢階段2,其中發佈單元將會在每2N個週期發佈一個指令。
在處理器漸慢階段2 530中,若發佈單元排空發佈及派送管線中的所有指令而未看到X個刷新數卻未指定1個指令的狀態,則處理器會回到全速作業模式510。否則,處理器會移轉到處理器漸慢階段3 540,其中發佈單元將會在每4N個週期發佈一個指令。若發佈單元排出發佈及派送管線中的所有指令而未看到X個刷新數卻未指定1個指令的狀態,則處理器會回到全速作業模式510。
若遇到X個刷新數卻未指定1個指令的狀態,則處理器被視為處於嚴重的活鎖狀態,並移轉到處理器漸慢階段4 550。在處理器漸慢階段4 550中,發佈單元會被迫進入一系列的單一階段作業模式,僅能發佈一個指令直到其完成。當發佈單元排空發佈及派送管線中的所有指令時,則處理器會回到全速作業模式510。
考慮本發明之背景中圖6A及6B所示的情況中示範
實施例的示範作業。假設此狀態通常發生在程序執行時,且在發佈及派送管線中有12個指令。若活鎖窗口僅有4個處理器週期,則當在第二個move-to-spr指令,mt sprE R7的4個週期內發佈第三個move-to-spr指令,mt sprC R1時,會發生活鎖狀態。若每個指令需要10個處理器週期完成,則在處理器從全速模式移轉到一系列的單一步驟模式時,會需要大約120個週期從發佈及派送管線排出所有的指令。
然而,如在此所述的示範實施例,若在處理器漸慢階段1 520將N設定為4,則僅需要不到60個處理器週期即可排出所有的指令。因此,與習知機制直接移轉到一系列的單一階段作業模式相比,此示範實施例加倍了處理器的效能。當此類型的活鎖狀態通常發生在程式中時,示範實施例大大地降低活鎖狀態對處理器整體效能的影響。
圖7係概述示範實施例中偵測活鎖狀態及漸慢處理器管線之作業的範例作業之流程圖。圖7所概述的作業係可運作於例如處理器的發佈單元中,例如上述圖3及4的發佈單元330。因此,圖7所示的許多作業可實施於處理器的硬體中。處理器可為單一處理器系統或多重處理器系統。在一示範實施例中,處理器可為微處理器或系統上晶片的一部分。微處理器或系統上晶片可包含多重處理器,其作業相同或不同的指令集。舉例而言,微處理器或系統上晶片可為異質裝置,其中某些處理器利用第一指令集(好比RISC指令集)運作,而其他處理器利用第二指令
集(好比向量指令集)運作。處理器可實施於其中的裝置的排列並不限於在此之描述或本發明之精神及範圍。
如圖7所示,作業開始於處理器及發佈單元,以全速作業模式執行(步驟710)。發佈單元決定是否偵測到活鎖狀態(步驟720)。若否,則作業回到步驟710,且處理器及發佈單元持續以全速執行。若例如圖4中的活鎖偵測控制邏輯420偵測到活鎖狀態,則處理器及發佈單元會移轉到處理器漸慢階段1,其中僅在每N個處理器週期發佈一指令(步驟730)。如圖7所示,活鎖狀態是否存在係取決於例如活鎖偵測控制邏輯420偵測到已經發生x次的刷新卻尚未指定一指令。
此後,發佈單元決定是否再次偵測到活鎖狀態(步驟740)。若否,則處理器及發佈單元可回到全速作業模式(步驟710)。若再次偵測到活鎖狀態,則處理器及發佈單元移轉到處理器漸慢階段2,其中每2N個處理器週期發佈一個指令(步驟750)。如圖示,決定是否再次偵測到活鎖狀態係取決於例如活鎖偵測控制邏輯420偵測到已經發生2x次刷新卻尚未指定指令。
此後,發佈單元決定是否再次偵測到活鎖狀態(步驟760)。若否,則處理器及發佈單元可回到全速作業模式(步驟710)。若再次偵測到活鎖狀態,則處理器及發佈單元移轉到處理器漸慢階段3,其中每4N個處理器週期發佈一個指令(步驟770)。如圖示,決定是否再次偵測到活鎖狀態係取決於例如活鎖偵測控制邏輯420偵測到已
經發生3x次刷新卻尚未指定指令。
此後,發佈單元決定是否再次偵測到活鎖狀態(步驟780)。若否,則處理器及發佈單元可回到全速作業模式(步驟710)。若再次偵測到活鎖狀態,則處理器及發佈單元移轉到處理器漸慢階段4,其中發佈單元會進入一系列的單一階段作業模式,例如熟此技藝者所知的模式(步驟790)。如圖示,決定是否再次偵測到活鎖狀態係取決於例如活鎖偵測控制邏輯420偵測到已經發生4x次刷新卻尚未指定指令。
此後,透過一系列的單一步驟作業模式而解決活鎖狀態,如熟此技藝者皆知。因此,處理器及發佈單元會回到全速作業模式(步驟710)。處理器運作時此作業也會持續,當處理器下線時,則此作業會被終止。
因此,所示實施例提供一種解決處理器中活鎖狀態的機制,係利用漸慢機制減慢處理器中指令的發佈。活鎖偵測控制邏輯係用以偵測活鎖狀態的發生,而漸慢控制邏輯係用以將處理器的發佈單元,從階段方案中的一個漸慢階段移到下一個漸慢階段。在階段方案中的任何一個階段,若不再偵測到活鎖狀態,則處理器即發佈單元會回到全速作業模式。藉此,不立即進入一系列的單一階段作業模式可取得更佳的處理器效能。
上述之處理器電路可作為積體電路晶片設計的一部分。晶片設計可以圖像電腦程式語言建構,並儲存於電腦儲存媒體(例如硬碟、磁碟、實體硬碟機、或例如在儲存
存取網路中的虛擬硬碟機)。若設計者不製造晶片或用以製造晶片的光罩,則設計者可透過實體(好比提供儲存其設計的儲存媒體範本)或電性(例如透過網際網路)裝置直接或間接傳輸完成的設計給製造商。被儲存的設計可接著被轉換成適當的格式(例如GDSII),作光罩製造,其通常包含多個形成於晶圓上的晶片設計副本。光罩係用以定義晶圓欲被蝕刻或處理的區域(及/或其上的層面)。
完成的積體電路晶片可由製造商以原始晶圓(即具有多重未封裝之晶片的單一晶圓)、裸晶粒、或以封裝的形式作分送。在後者的情況,晶片可以被裝在單一晶片封裝(例如帶有鉛製品固定於主機板的塑膠負載板或其他高階的負載板)、或在多晶片封裝(例如帶有單一或雙面相互連接點或埋入式連接點的陶瓷負載板)。在任何情況下,晶片接著會與其他晶片、獨立的電路元件、及/或作為(a)中間產品(好比主機板)、或(b)終極產品之一部分的其他信號處理裝置整合。終級產品可為任何包含積體電路晶片的產品,例如玩具及其他低階應用到具有顯示器、鍵盤或其它輸入裝置及中央處理器的高階電腦產品。再者,帶有積體電路晶片的終級產品可包含遊戲機器、遊戲控制台、手持運算裝置、個人數位助理、例如無線電話及其類似者的通訊裝置、手提運算裝置、桌上型運算裝置、伺服器運算裝置或任何其他的運算裝置。
重要的是,雖然本發明係以具備完整功能的資料處理系統作描述,但熟此技藝者當知本發明的程序可以電腦可
讀取媒體中的指令的形式以及其他不同的形式作分佈,且本發明亦適用於實際作分佈用的各種類型的信號負載媒體。電腦可讀取媒體的範例包含可紀錄類型媒體,好比磁片、硬碟機、隨機存取記憶體、光碟片、數位視訊光碟片,以及傳輸類型媒體,好比數未及類比通訊鏈結、有線或無線通訊鏈結,其利用傳輸形式,好比無線電頻率及光波傳輸。電腦可讀取媒體可為編碼形式存在,實際使用時在特定資料處理系統中作解碼即可。
本發明之描述以透過範例及描述的方式呈現,其並非意在消耗或限制本發明於所揭露之型態。熟此技藝者當可對其作潤飾及修改。選作描述的實施例係用以解釋本發明之原則及實際應用,並使熟此技藝者得了解本發明以思及得作為特定使用的許多不同潤飾之實施例。
100‧‧‧分散式資料處理系統
102‧‧‧網路
104、106‧‧‧伺服器
108‧‧‧儲存單元
110、112、114‧‧‧客戶端
Claims (18)
- 一種處理器,包含:執行單元,該執行單元執行發佈指令;及發佈單元,該發佈單元發佈指令至該執行單元,其中該發佈單元:偵測該處理器中的活鎖狀態;在該活鎖狀態持續被偵測到的同時,由增加的處理週期數,逐漸中止該執行單元之指令處理;及將該處理器回到全速作業模式,以回應該活鎖狀態已解決的偵測。
- 如請求項1之處理器,其中該發佈單元根據階段方案,將該處理器設定為一減速作業模式,以回應該活鎖狀態之偵測,其中該階段方案具有複數個階段,係由不同數量的處理週期減慢指令的處理,以逐漸中止該處理器之指令處理。
- 如請求項2之處理器,其中該發佈單元:將該處理器之指令處理減慢到第一漸慢作業階段;將該處理器之指令處理減慢後,決定是否該活鎖狀態仍然持續;以及若將指令處理減慢到該第一漸慢作業階段後,該活鎖狀態仍然持續,則將該處理器之指令處理減慢到第二漸慢作業階段。
- 如請求項3之處理器,其中該第二漸慢作業階段由比該第一漸慢作業階段多的處理週期數延遲該處理器之 指令發佈。
- 如請求項4之處理器,其中該第二漸慢作業階段延遲該處理器之指令發佈的處理週期數,係該第一漸慢作業階段延遲該處理器之指令發佈的處理週期數的兩倍。
- 如請求項3之處理器,其中該第二漸慢作業階段係與比該第一漸慢作業階段更嚴重之活鎖狀態相關。
- 如請求項2之處理器,其中該階段方案之最後階段減慢該處理器之指令處理到系列的單一階段作業模式,該系列的單一階段作業模式僅允許單一指令發佈,而直到該指令完成前,其它指令皆不能發佈。
- 如請求項1之處理器,其中該發佈單元偵測該處理器中的活鎖狀態,由偵測沒有完成特定指令到達預設臨界值時,該特定指令之至少一刷新(flush)數,或沒有完成指令到達預設臨界值之時,該指令重新發佈的次數。
- 如請求項1之處理器,其中該發佈單元逐漸中止該處理器之指令處理,由透過該發佈單元的發佈及派送管線中止指令的移動。
- 一種處理器,包含:執行單元,該執行單元執行發佈指令;及發佈單元,該發佈單元發佈指令至該執行單元,其中該發佈單元:偵測該處理器的處理器管線中的活鎖狀態;在該活鎖狀態持續被偵測到的同時,由增加的處理週期數,逐漸中止該執行單元之指令處理;及 將該處理器管線回到全速作業模式,以回應該活鎖狀態已解決的偵測。
- 如請求項10之處理器,其中該發佈單元根據階段方案,將該處理器管線設定為一減速作業模式,以回應該活鎖狀態之偵測,其中該階段方案具有複數個階段,係由不同數量的處理週期減慢指令的處理,以逐漸中止該處理器之指令處理。
- 如請求項11之處理器,其中該發佈單元:將該處理器管線之指令處理減慢到第一漸慢作業階段;將該處理器管線之指令處理減慢後,決定是否該活鎖狀態仍然持續;以及若將指令處理減慢到該第一漸慢作業階段後,該活鎖狀態仍然持續,則將該處理器管線之指令處理減慢到第二漸慢作業階段。
- 如請求項12之處理器,其中該第二漸慢作業階段由比該第一漸慢作業階段多的處理週期數延遲該處理器之指令發佈。
- 如請求項13之處理器,其中該第二漸慢作業階段延遲該處理器管線之指令發佈的處理週期數,係該第一漸慢作業階段延遲該處理器管線之指令發佈的處理週期數的兩倍。
- 如請求項12之處理器,其中該第二漸慢作業階段係與比該第一漸慢作業階段更嚴重之活鎖狀態相關。
- 如請求項11之處理器,其中該階段方案之最後階段減慢該處理器管線之指令處理到系列的單一階段作業模式,該系列的單一階段作業模式僅允許單一指令發佈,而直到該指令完成前,其它指令皆不能發佈。
- 如請求項10之處理器,其中該發佈單元偵測該處理器管線中的活鎖狀態,由偵測沒有完成特定指令到達預設臨界值時,該特定指令之至少一刷新(flush)數,或沒有完成指令到達預設臨界值之時,該指令重新發佈的次數。
- 如請求項10之處理器,其中該發佈單元逐漸中止該處理器管線之指令處理,由透過該發佈單元的發佈及派送管線中止指令的移動。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/279,775 US7434033B2 (en) | 2006-04-14 | 2006-04-14 | Placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201428630A true TW201428630A (zh) | 2014-07-16 |
TWI502512B TWI502512B (zh) | 2015-10-01 |
Family
ID=38606359
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096111871A TWI421770B (zh) | 2006-04-14 | 2007-04-03 | 將處理器置於漸慢作業模式中之系統與方法 |
TW102143769A TWI502512B (zh) | 2006-04-14 | 2007-04-03 | 將處理器置於漸慢作業模式中之系統與方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096111871A TWI421770B (zh) | 2006-04-14 | 2007-04-03 | 將處理器置於漸慢作業模式中之系統與方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7434033B2 (zh) |
JP (1) | JP4677422B2 (zh) |
CN (1) | CN100530109C (zh) |
TW (2) | TWI421770B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US7437539B2 (en) | 2006-04-14 | 2008-10-14 | International Business Machines Corporation | Issue unit for placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
US8719553B2 (en) * | 2008-01-31 | 2014-05-06 | Arm Norway As | Method for re-circulating a fragment through a rendering pipeline |
US8719555B2 (en) * | 2008-01-31 | 2014-05-06 | Arm Norway As | Method for overcoming livelock in a multi-threaded system |
US8789170B2 (en) * | 2010-09-24 | 2014-07-22 | Intel Corporation | Method for enforcing resource access control in computer systems |
CN102567120B (zh) * | 2012-02-13 | 2014-04-23 | 北京星网锐捷网络技术有限公司 | 一种节点调度优先级确定方法及装置 |
GB2551523B (en) | 2016-06-20 | 2019-07-03 | Imagination Tech Ltd | Livelock recovery circuit |
US10740102B2 (en) * | 2017-02-24 | 2020-08-11 | Oracle International Corporation | Hardware mechanism to mitigate stalling of a processor core |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0618532B1 (en) * | 1993-03-30 | 2000-01-26 | Fujitsu Limited | Deadlock detecting device |
US6785803B1 (en) * | 1996-11-13 | 2004-08-31 | Intel Corporation | Processor including replay queue to break livelocks |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6532574B1 (en) * | 2000-08-17 | 2003-03-11 | International Business Machines Corporation | Post-manufacture signal delay adjustment to solve noise-induced delay variations |
US6651158B2 (en) * | 2001-06-22 | 2003-11-18 | Intel Corporation | Determination of approaching instruction starvation of threads based on a plurality of conditions |
US6968431B2 (en) * | 2001-11-15 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for livelock prevention in a multiprocessor system |
US20030115559A1 (en) * | 2001-12-13 | 2003-06-19 | International Business Machines Corporation | Hardware validation through binary decision diagrams including functions and equalities |
US7065596B2 (en) | 2002-09-19 | 2006-06-20 | Intel Corporation | Method and apparatus to resolve instruction starvation |
US20040093198A1 (en) * | 2002-11-08 | 2004-05-13 | Carbon Design Systems | Hardware simulation with access restrictions |
TWI242744B (en) * | 2003-01-14 | 2005-11-01 | Ip First Llc | Apparatus, pipeline microprocessor and method for avoiding deadlock condition and storage media with a program for avoiding deadlock condition |
US7000047B2 (en) * | 2003-04-23 | 2006-02-14 | International Business Machines Corporation | Mechanism for effectively handling livelocks in a simultaneous multithreading processor |
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 |
US7437539B2 (en) | 2006-04-14 | 2008-10-14 | International Business Machines Corporation | Issue unit for placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
-
2006
- 2006-04-14 US US11/279,775 patent/US7434033B2/en not_active Expired - Fee Related
-
2007
- 2007-04-03 TW TW096111871A patent/TWI421770B/zh not_active IP Right Cessation
- 2007-04-03 TW TW102143769A patent/TWI502512B/zh not_active IP Right Cessation
- 2007-04-05 JP JP2007099182A patent/JP4677422B2/ja not_active Expired - Fee Related
- 2007-04-12 CN CNB2007100967823A patent/CN100530109C/zh not_active Expired - Fee Related
-
2008
- 2008-09-05 US US12/204,865 patent/US7818544B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090006817A1 (en) | 2009-01-01 |
CN100530109C (zh) | 2009-08-19 |
JP4677422B2 (ja) | 2011-04-27 |
US20070245350A1 (en) | 2007-10-18 |
US7434033B2 (en) | 2008-10-07 |
TW200809629A (en) | 2008-02-16 |
JP2007287141A (ja) | 2007-11-01 |
TWI502512B (zh) | 2015-10-01 |
CN101055531A (zh) | 2007-10-17 |
US7818544B2 (en) | 2010-10-19 |
TWI421770B (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI502512B (zh) | 將處理器置於漸慢作業模式中之系統與方法 | |
JP4608590B2 (ja) | プロセッサを段階的減速動作モードに移行させる発行ユニット | |
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
JP5963282B2 (ja) | 割り込み分配スキーム | |
TWI550516B (zh) | 用於警告追蹤中斷之電腦程式產品、電腦系統及方法 | |
TW201331836A (zh) | 推理執行和回復 | |
TWI540510B (zh) | 用於藉由程式對警告追蹤中斷設備之使用之電腦程式產品、電腦系統及其方法 | |
TWI401604B (zh) | 用以管理多處理器電腦系統內之系統管理中斷的系統與方法 | |
US8407453B2 (en) | Facilitating processing in a computing environment using an extended drain instruction | |
US9495224B2 (en) | Switching a locking mode of an object in a multi-thread program | |
US20140281419A1 (en) | Combined floating point multiplier adder with intermediate rounding logic | |
JP2008226236A (ja) | 構成可能なマイクロプロセッサ | |
US9678792B2 (en) | Shared resources in a docked mobile environment | |
US20140189329A1 (en) | Cooperative thread array granularity context switch during trap handling | |
TW201351291A (zh) | 由一程式提供給另一程式之對警告追蹤設施之存取 | |
KR101635816B1 (ko) | 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치 | |
US8447960B2 (en) | Pausing and activating thread state upon pin assertion by external logic monitoring polling loop exit time condition | |
US11347544B1 (en) | Scheduling work items based on declarative constraints | |
WO2023225991A1 (en) | Dynamic establishment of polling periods for virtual machine switching operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |