TWI511042B - 在多處理器系統中的例外控制 - Google Patents

在多處理器系統中的例外控制 Download PDF

Info

Publication number
TWI511042B
TWI511042B TW100136555A TW100136555A TWI511042B TW I511042 B TWI511042 B TW I511042B TW 100136555 A TW100136555 A TW 100136555A TW 100136555 A TW100136555 A TW 100136555A TW I511042 B TWI511042 B TW I511042B
Authority
TW
Taiwan
Prior art keywords
processing
exception
state
group
processing unit
Prior art date
Application number
TW100136555A
Other languages
English (en)
Other versions
TW201229896A (en
Inventor
Simon Jones
Joe Dominic Michael Tapply
Original Assignee
Advanced Risc Mach Ltd
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 Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW201229896A publication Critical patent/TW201229896A/zh
Application granted granted Critical
Publication of TWI511042B publication Critical patent/TWI511042B/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)

Description

在多處理器系統中的例外控制
本發明係關於資料處理系統領域。更具體地說,本發明係關於在資料處理系統內之例外處理控制。
眾所周知的,提供包含多個處理單元之資料處理系統,每一處理單元執行對應於處理執行緒之程式指令串流。該等資料處理系統的實例是圖形處理單元,該等圖形處理單元常常包含大量圖形處理核心,每一圖形處理核心執行程式指令串流,該等程式指令串流執行所有處理的不同部分,該等所有處理正由圖形處理單元執行。一個實例發生在以瓦為主(tile-based)之圖形處理經執行,且每一圖形處理核心執行在所有圖像內之不同瓦上操作(例如,遮蔽操作)中。另外一個包含多個處理單元之系統的實例是對稱式多處理器系統,當用於一般目的處理,該等多個處理單元逐漸變成普遍。在此類具有多個處理單元的系統內,眾所周知的,該處理的不同部分可在不同處理單元上執行,舉例而言,一個處理器核心可用於計算數值的結果,而其他處理器核心可用於產生用於顯示彼等數值結果之圖形資料。
大家亦知道,在資料處理範圍內,處理器可受限於中斷訊號,該中斷訊號用於中斷正經執行之當下處理,且該中斷訊號用以重導程式流至例外處理程式碼之執行。該等中斷經常在用以處理物理事件(physical events)之即時處理系統內看見。將中斷用於控制多工系統內之排程亦是有可能的。
從一個態樣來看,本發明提供一種資料處理設備,該資料處理設備包含:複數個處理單元,每一處理單元執行對應於處理執行緒之程式指令串流;及例外控制電路系統,該例外控制電路系統經配置以控制該複數個處理單元之群組之例外處理,該等處理單元執行各自的處理執行緒以回應該群組之例外觸發事件。
目前的技術承認,在系統之上下文內,存在一種將個別處理單元之中斷行為連結在一起之需要,該系統意指多個處理單元,每一處理單元執行對應於處理執行緒之程式指令串流。目前的技術提供例外控制電路系統,該例外控制電路系統控制在群組基礎上之處理單元以回應處理單元群組之例外觸發事件。因此,可連結例外至處理單元群組,且例外況狀(例如,物理訊號或軟體產生的中斷)的發生導致在該群組之每一處理單元內之例外處理的觸發。
在群組的每一成員內,由例外控制電路系統觸發之例外處理是當下程式指令串流之執行、例外處理程式指令串流之執行及之後繼續原本程式指令之執行(在同一個點或不同點)之中斷。接著,當原本的處理在執行例外處理程式指令後繼續進行時,例外處理與處理器之重設將有所區別。
我們將瞭解,當例外事件觸發時,群組內之每一處理單元可具有不同狀態,且群組內之每一處理單元可在例外處理期間產生不同回應。基於此原因,例外控制電路系統需要藉由每一處理單元來追蹤例外處理。該追蹤例外處理可藉由例外控制電路系統達成,該例外控制電路系統經由每一處理單元僅為序列處理單元例外狀態之例外觸發事件控制遍歷(traversal)。然後,個別處理單元可經個別及以相同及同等的方式來管理。
該序列處理單元例外狀態依序包含:對應於程式指令串流之處理的正常狀態、對應於處理例外處理程式指令之例外進行狀態及對應於繼續處理原本程式指令串流之例外已處理狀態。其他實施例可具有三種以上的狀態(例如,正常狀態、例外進行狀態、清除快取狀態及完成狀態)。
當群組之處理單元完成該等處理單元之個別例外處理時,該等群組之處理單元將來到例外已處理狀態中的休息狀態直至所有該等處理單元已經完成該等處理單元之例外處理,至此,該等處理單元才回到正常狀態。
當處理單元處於例外進行狀態及例外已處理狀態中之任一狀態時,該等處理單元可不回應於任何另外的例外觸發事件。此舉可避免該等群組發生複雜的巢狀例外(nested exceptions)。
為了以便利的方式來促進不同處理單元之控制,每一處理單元具有相關處理單元狀態變數,該等處理單元狀態變數指示回傳程式計數器數值,該回傳程式計數器數值對應於在原始程式指令串流內的點,該點是在執行例外處理程式指令後繼續執行的點(可以是相同的點或不同的點),且每一處理單元具有一個當下處理單元例外狀態,該當下處理單元例外狀態指示處理單元當下所具有的狀態係為正常狀態、例外進行狀態及例外已處理狀態中之何者。
該等處理單元狀態變數可便利地儲存在各自處理單元內以促進設計之彈性,但亦可選擇集中儲存(例如,在例外控制電路系統內)。
該等群組之例外處理之控制於實施例中變得更容易實施,在該等實施例中針對群組,例外控制電路系統控制關於一序列群組例外狀態之例外觸發事件之遍歷。
該等群組例外狀態可為對應於藉由群組內所有該等處理單元(例如,每一處理單元,該每一處理單元執行該每一處理單元之正常執行緒)來處理各自程式指令串流之正常狀態;該等群組例外狀態可為對應於例外觸發事件之觸發狀態,該例外觸發事件已經發生,但並非群組內所有該等處理單元已開始例外處理以回應該例外觸發事件;及該等群組例外狀態可為對應於完成例外處理之完成狀態,該例外處理藉由群組內已經開始的所有該等處理單元來完成,但並非所有該等處理單元已繼續處理該等處理單元之原始程式指令串流。
當該群組內之所有該等處理單元已繼續處理該等處理單元之原始程式指令串流時,例外控制電路系統可將群組從完成狀態移動至正常狀態。因此,群組停留在完成階段直至所有該等處理單元返回到該等處理單元的正常狀態,該群組已繼續處理例外處理程式指令之後的例外。
當群組內的處理單元處於觸發狀態或完成狀態中之任一者時,該等處理單元可不回應於任何另外的例外觸發事件。此舉可避免在該等實施例內之巢狀例外。
可藉由群組狀態變數之儲存、群組內處理單元之總數(該總數可經動態配置,例如,藉由軟體控制)及計數器個數來促進處理單元群組之控制,該等群組狀態變數指示當下群組例外狀態,該計數器個數指示已開始但尚未完成例外處理之處理單元。該等群組狀態變數可便利地儲存於例外控制電路系統內。
在至少一些實施例中,當每一處理單元試圖對將執行之程式指令排程時,該處理單元決定當下處理單元狀態是否處於正常狀態及群組狀態是否處於觸發狀態。若當下處理單元狀態處於正常狀態且群組狀態處於觸發狀態,則處理單元從正常狀態改變為例外進行狀態;該處理單元儲存處理單元之當下程式計數器數值(該值用以當作回傳位址);及該處理單元開始例外處理及增加計數器數值,該計數器數值指示在例外進行狀態中之處理單元個數。
當計數器數值增加時,該數值可與群組內處理單元之總數相比較。當計數器數值達到群組內之總數時,群組狀態從觸發狀態改變為完成狀態,而當此時,所有該等處理單元已經觸發而進入例外處理,但並非所有處理單元都完成該例外處理。
當每一處理器執行來自例外程式指令之回傳時,該處理單元之處理狀態可經改變為例外已處理狀態。
當處理單元之狀態變為例外已處理狀態且群組狀態處於完成狀態時,處理單元狀態可經改變為正常狀態,且可減少該計數器數值。
當減少計數器數值時,將減少後之計數器數值與數值零相比較,且減少後之計數器數值若等於零,則群組狀態經改變為正常狀態。
然後我們將看到,當每一處理單元經觸發以開始該處理單元之例外處理時,可增加計數器數值以使計數器數值等於群組內之總數;然後當偵測到每一處理單元已經完成該處理單元之例外處理(該例外處理緊接在觸發所有該等處理單元內之例外處理之後)時,可將計數器數值往回減少至零。
從另一態樣來看,本發明提供一種資料處理設備,該資料處理設備包含:複數個處理構件,該複數個處理構件用於執行程式指令,每一處理構件執行對應於處理執行緒之程式指令串流;及例外控制構件,該等例外控制構件用於控制該複數個處理器構件群組之例外處理,該複數個處理器構件執行各自處理執行緒以回應該群組之例外觸發事件。
從另一態樣來看,本發明提供一種處理資料的方法,該處理資料的方法包含以下步驟:執行步驟,使用複數個處理單元來執行程式指令,每一處理單元執行對應於處理執行緒之程式指令串流;及控制步驟,控制該複數個處理器單元之群組之例外處理,該等處理器單元執行各自處理執行緒以回應該群組之例外觸發事件。
本發明之上述物件、特徵及優點與其他物件、特徵及優點將從下列說明實施例之更詳細的敘述與配合附圖一起閱讀而變得更加明顯。
第1圖示意性圖示圖形處理單元2,在本實例中,圖形處理單元2包含八個圖形處理核心4、6、8、10、12、14、16及18。該等圖形處理核心4至18執行各自程式指令串流,該每一程式指令串流對應於一個處理執行緒。該等執行緒間可高度相關,且實務上該等程式指令可以是相同的。舉例而言,不同處理執行緒可對應相同的處理指令,該等相同的處理指令經執行且與經處理之所有影像內之不同區域相關。通常,在圖形處理單元內具有大量圖形處理核心4至18,該等圖形處理核心4至18正經平行執行以至於將處理工作量切成小塊且使整體處理產量更高。我們將體會,圖形處理單元2通常包含大量另外的電路元件,但基於要在說明書內清楚說明的緣故,該等大量另外的電路元件已從第1圖中省略。
此外,包含在圖形處理單元2內的是例外控制電路系統20,該例外控制電路系統20經耦接至圖形處理核心4至18中的每一圖形處理核心。例外控制電路系統20回應中斷訊號,該中斷訊號可以是外部中斷訊號IRQ或內部產生的中斷訊號(例如,軟體中斷SWI)。例外控制電路系統20回應此類例外觸發訊號IRQ及SQI以觸發處理單元(圖形處理核心)之相關群組內之例外處理,該等處理單元經連接至該例外觸發事件。根據已經分配哪些處理執行緒及哪些處理執行緒已經開始在圖形處理核心4至18上之處理,處理單元群組可為軟體配置及/或動態配置。
舉例而言,處理單元4、8、10及18可全部執行相同的程式指令,該等程式指令在正經處理之圖像內之不同區域上執行特定的遮蔽操作。接著,在繼續原本處理執行緒(該原本處理執行緒係經該等圖形處理核心4、8、10及18執行)之前,隨著藉由群組內之處理單元4、8、10及18之每一處理單元來轉移處理以執行例外處理程式指令之目的,而產生中斷(例如,軟體中斷SWI)。例外控制電路系統20包含用以儲存群組狀態變數之群組狀態儲存器22,該群組狀態變數追蹤哪些圖形處理核心4至18位於哪些群組內與該等群組之群組狀態。
第2圖圖示個別處理單元4及顯示處理單元4為包含用於另外狀態變數之儲存,處理單元4包含當下程式計數器24、回傳指標26(用以指示當在執行自例外處理終點處之例外處理程式指令之回傳後,即執行之指令之指令位址)及處理單元例外狀態28(用以指示處理單元4之當下例外狀態)。
第3圖圖示另一示例性實施例,該實施例包含系統單晶片對稱多處理器系統30,多處理器系統30包含多個一般用途處理核心32、34、36及38,該等一般用途處理核心32、34、36及38經由監聽控制單元(snoop control unit)40連接,且該多處理器系統30執行各自處理執行緒以回應該等處理核心之個別程式指令串流。該等一般用途處理核心32、34、36及38中之每一者再次儲存當下程式計數器數值、回傳指令位址及處理單元例外狀態變數。不同的一般用途處理單元核心32至38可經形成群組,以一種方式連接該等群組使得產生的中斷觸發事件(IRQ、SWI)觸發群組之處理單元核心32至38中之每一者內之例外處理。藉由感興趣的處理單元群組,耦接至處理單元核心32至38中之每一者之例外控制電路系統42回應例外觸發訊號以控制例外處理。
第4圖示意性圖示處理單元例外狀態,該等處理單元例外狀態個別與第1圖之圖形處理核心4至8及第3圖之一般用途處理核心32至38相關聯。該等狀態為正常狀態、例外進行狀態及例外已處理狀態,且該等狀態藉由個別處理單元與關於每一中斷訊號如圖示依序且僅一次往返。當群組狀態處於完成狀態時,將處理單元例外狀態從例外已處理狀態返回到正常狀態。當處理單元處於例外進行狀態或例外已處理狀態時,處理單元將不回應於任何另外的中斷。例外控制電路系統42及在個別處理單元內之電路系統(雖然該電路系統之分布在不同實施例中可能改變)負責追蹤及控制圖示於第4圖中的狀態間之處理單元例外狀態之移動以回應例外處理事件之發生。
第5圖圖示處理單元群組之群組例外狀態。該等狀態包含正常狀態、觸發狀態及完成狀態。當所有處理單元已經開始該等處理單元之例外處理(當可使用遞增計數器來追蹤)時,群組例外狀態從觸發狀態移動至完成狀態。當所有處理單元已經回到該等處理單元之正常狀態時(當可使用遞減計數器來追蹤),群組狀態從完成狀態移動至正常狀態。當群組處於觸發狀態或完成狀態時,該群組內之該等處理單元及該群組本身中沒有任何一者將回應另外的中斷。
第6圖示意性圖示群組狀態變數,該等群組狀態變數可經儲存於例外控制電路系統20及42內,且該等群組狀態變數可用以藉由處理單元群組來控制例外處理。該等狀態變數包含當下群組例外狀態44、群組內之處理單元總數46及計數數值48(與遞增及遞減計數器相關),計數數值48指示處理單元之個數,該等處理單元已經開始但尚未完成該等處理單元之例外處理。
第7圖至第11圖是流程圖,該等流程圖圖示例外處理單元狀態及先前提及之群組狀態的控制,該控制係為例外控制電路系統20與42及個別處理單元4至18與32至38內之電路系統所執行。我們將理解,第7圖至第11圖中圖示的執行控制之電路系統在形式上可頗為改變,且可用介於具體實施例之不同部分間之不同方法提供該電路系統。所有該等變化將包含於本技術中。
第7圖圖示處理單元,該處理單元指示程式指令之排程。在步驟50處,處理等待直至將排程之下個程式指令是可使用的(例如,前個指令已經完成)。然後,步驟52決定處理單元是否處於該處理單元之正常狀態。若處理單元不在該處理單元之正常狀態,則對下個程式指令進行排程以在步驟54中處理,且處理回到步驟50。若處理單元處於該處理單元之正常狀態(如同步驟52中所決定的),則步驟56決定群組狀態當下是否處於觸發狀態。若處理單元狀態處於正常狀態且群組狀態處於觸發狀態(如同在步驟52及步驟56中所決定的),則處理單元應該開始該處理單元之例外處理是適當的。否則,處理再次進行至步驟54且對下個程式指令進行排程。
若步驟56處的決定是群組狀態處於觸發狀態,則步驟58改變處理單元狀態為例外進行狀態。步驟60儲存當下程式計數器數值至回傳程式計數器位址以使在已執行例外處理程序後,可執行來自例外處理之回傳。我們將體會,在一些實施例中,亦可執行回傳至不同點。在步驟62處,增加群組追蹤計數器數值以記錄(note)另一處理單元已進入例外進行狀態。在步驟64處,開始例外處理程式指令之執行(例如,轉移至例外向量)。接著,處理回到步驟50。
第8圖圖示在移動至完成狀態過程中之群組狀態之控制。當先偵測到例外時(例如,物理中斷訊號ICQ或軟體中斷SWI),則群組狀態從正常狀態移動到觸發狀態。接著,步驟66決定計數器數值增加何時發生(見第7圖之步驟62)。每次計數器數值增加發生時,步驟68決定計數器數值是否已達到群組內之處理單元之總數,該群組與正被追蹤之例外相關。當計數器數值達到該總群組個數數值時,則步驟70改變群組狀態自觸發狀態至完成狀態,此時已觸發群組內之所有該等處理單元以開始例外程式指令執行,因此該等處理單元將以至少某種方式朝向完成該例外處理。
第9圖圖示處理單元狀態之控制,該處理單元狀態自例外進行狀態移動至例外已處理狀態。步驟72偵測處理單元何時執行來自例外程式指令之回傳。舉例而言,此類程式指令可試圖恢復已儲存之回傳程式計數器數值至當下程式計數器,以至重導向程式流回到原本的程式流。當在步驟72處偵測到來自例外程式指令之回傳時,則步驟74改變感興趣之處理單元之處理單元狀態自例外進行狀態至例外已處理狀態。當處理單元處於例外已處理狀態時,該處理單元維持不回應於中斷,且該處理單元將不回到正常狀態直至感興趣之群組內之所有該等處理單元已進入例外已處理狀態。因為沒有任何一個處理單元將回應於另外的中斷直至群組內所有該等處理單元已完成先前的例外處理,所以此舉有助於維護中斷處理之順序。
第10圖圖示處理單元狀態從例外已處理狀態移動至正常狀態之控制。關於處理單元,步驟76決定例外狀態是否為例外已處理狀態。然後,步驟78決定群組狀態是否為完成狀態。若處理單元狀態為例外已處理狀態且群組狀態為完成狀態,則處理進行到步驟80,在該步驟中,改變該處理單元之處理單元狀態自例外已處理狀態至正常狀態。接著,步驟82減少計數器數值。
第11圖圖示群組狀態從完成狀態移動至正常狀態之控制。步驟84偵測計數器數值之減少何時已經發生(見第10圖之步驟82)。當計數器數值之減少已經發生,則步驟86決定計數器數值是否已經到達零。當計數器數值如同步驟86中所決定的真的到達零,則步驟88改變群組狀態自完成狀態至正常狀態,此時群組內所有該等處理單元將已自例外已處理狀態改變至正常狀態,因此群組可從完成狀態改變至正常狀態,且群組變得更能回應於另外的例外訊號。
該等技術可用在系統中,在該等系統內複數個處理單元在同一時脈循環內可改變狀態。在此種情形下,管理計數數值48之計數器可依據在該時脈循環內有多少個處理單元已改變狀態來以任意數量增加或減少。在一選擇性實施例中,計數數值48可用具有對應於每一處理單元之一個位元(bit)之位元陣列來呈現。該等位元可全部初始化為零,然後當相對應處理單元進入例外進行狀態時,該等位元再經設定為一。當每一處理單元從例外已處理狀態移動至正常狀態時,該處理單元清除該處理單元之相對應位元。當清除所有位元時,群組狀態移至正常狀態。當群組狀態從正常狀態移至觸發狀態時,此移動動作觸發每一處理單元以進入例外進行狀態,並因此導致相對應位元經設定。
雖然本發明之說明實施例在本說明書中搭配附圖已經描述得很詳細了,但我們要瞭解,本發明不限於彼等精確的實施例,且在不偏離如附加申請專利範圍所定義之本發明之範圍及精神的情況下,習知技藝者可進行在本說明書中之各種改變與修改。
2...圖形處理單元
4...圖形處理核心
6...圖形處理核心
8...圖形處理核心
10...圖形處理核心
12...圖形處理核心
14...圖形處理核心
16...圖形處理核心
18...圖形處理核心
20...例外控制電路系統
22...群組狀態儲存器
24...程式計數器
26...回傳指標
28...處理單元例外狀態
30...系統單晶片對稱多處理器系統
32...一般用途處理核心
34...一般用途處理核心
36...一般用途處理核心
38...一般用途處理核心
40...監聽控制單元
42...例外控制電路系統
44...當下群組例外狀態
46...群組內之處理單元總數
48...計數數值
50...步驟
52...步驟
54...步驟
56...步驟
58...步驟
60...步驟
62...步驟
64...步驟
66...步驟
68...步驟
70...步驟
72...步驟
74...步驟
76...步驟
78...步驟
80...步驟
82...步驟
84...步驟
86...步驟
88...步驟
第1圖示意性圖示圖形處理單元,該圖形處理單元包含多個處理單元,該等處理單元用以執行對應於各自程式執行緒之不同程式指令串流;
第2圖示意性圖示保留在每一處理單元內之處理單元狀態;
第3圖示意性圖示系統單晶片對稱多處理單元,該多處理單元包含多個處理器核心;
第4圖示意性圖示處理單元例外狀態;
第5圖示意性圖示群組例外狀態;
第6圖示意性圖示為儲存在例外控制電路系統內之群組狀態變數;
第7圖是流程圖,該流程圖示意性圖示處理單元內之程式指令排程;
第8圖是流程圖,該流程圖示意性圖示從觸發狀態移動至完成狀態之群組狀態之控制;
第9圖是流程圖,該流程圖示意性圖示從例外進行狀態移動至例外已處理狀態之處理單元狀態之控制;
第10圖是流程圖,該流程圖示意性圖示從例外已處理狀態移動至正常狀態之處理單元狀態之控制;及
第11圖是流程圖,該流程圖示意性圖示從完成狀態移動至正常狀態之群組狀態之控制。
50...步驟
52...步驟
54...步驟
56...步驟
58...步驟
60...步驟
62...步驟
64...步驟

Claims (18)

  1. 一種資料處理設備,該資料處理設備包含:複數個處理單元,每一處理單元執行對應於一處理執行緒之一程式指令串流;及例外控制電路系統,該例外控制電路系統經配置以控制該等複數個處理單元之複數個群組中該等複數個處理單元之一群組之例外處理,該等複數個處理單元回應對應於該群組之一例外觸發事件而執行各自的處理執行緒,其中該例外控制電路系統經配置以控制該群組內的該等處理單元之每一處理單元,以藉由依序的動作來回應該例外觸發事件,該依序的動作為以下步驟:中斷與該處理單元相關的該程式指令串流之執行;執行一例外處理程式指令串流及執行例外處理;及繼續執行與該處理單元相關的該程式指令串流,其中針對該群組內的該等處理單元之每一處理單元,該例外控制電路系統僅為一序列處理單元例外狀態之該例外觸發事件控制一次遍歷(traversal),其中該序列處理單元例外狀態依序為:(i)正常狀態(normal),對應於與該處理單元相關的該程式指令串流之處理狀態;(ii)例外進行狀態(in-exception),對應於該等例外處理程式指令之處理狀態;及(iii)例外已處理狀態(done-exception),對應於與該 處理單元相關的該程式指令串流之繼續處理狀態。
  2. 如請求項1所述之資料處理設備,其中在該群組內之所有該等處理單元完成例外處理之後,該例外控制電路系統即將該群組內之所有該等處理單元從該例外已處理狀態移動至該正常狀態。
  3. 如請求項1所述之資料處理設備,其中當一處理單元處於該例外進行狀態及該例外已處理狀態中任何一者時,該處理單元不回應任何另外之例外觸發事件。
  4. 如請求項1所述之資料處理設備,其中該等處理單元之每一者具有相關處理單元狀態變數,該等變數指示:(i)一回傳程式計數器數值,該數值對應於與該處理單元相關的該程式指令串流內之一點,在該點發生的事為:在該等例外處理程式指令執行後繼續執行程式指令;及(ii)該處理單元之一當下處理單元例外狀態。
  5. 如請求項4所述之資料處理設備,其中該等處理單元狀態變數係儲存於各自處理單元內。
  6. 如請求項1所述之資料處理設備,其中針對該群組,該例外控制電路系統為一序列群組例外狀態之該例外觸發事件控制遍歷。
  7. 如請求項6所述之資料處理設備,其中該序列群組例外狀態依序為:(i)正常狀態,對應於藉由該群組內之所有該等處理單元該等各自程式指令串流之處理狀態; (ii)觸發狀態(triggering),對應於一例外觸發事件已經發生且並非該群組內之所有該等處理單元皆已開始例外處理的狀態;及(iii)完成狀態(completion),對應於藉由該群組內之所有該等處理單元已經開始例外處理,但並非所有該等處理單元已繼續該程式指令之串流之處理的狀態。
  8. 如請求項7所述之資料處理設備,其中當該群組內之該等處理單元之每一處理單元已繼續與該處理單元相關的該程式指令串流之處理時,該例外控制電路系統將該群組從該完成狀態移動至該正常狀態。
  9. 如請求項7所述之資料處理設備,其中當該群組處於該觸發狀態及該完成狀態中任一者時,該群組不回應任何另外的例外觸發事件。
  10. 如請求項7所述之資料處理設備,其中該群組具有相關群組狀態變數,該等群組狀態變數指示:(i)該群組之一當下群組例外狀態;(ii)該群組內之處理單元之一總數;(iii)一計數器數值,該計數器數值指示一些處理單元,該等處理單元已經開始該例外處理但還未完成該例外處理。
  11. 如請求項10所述之資料處理設備,其中該等群組狀態變數係儲存於該例外控制電路系統內。
  12. 如請求項10及11中任一項所述之資料處理設備,其中當該群組內之每一處理單元對與該處理單元相關的該 程式指令串流內之一程式指令進行排程時,該處理單元決定該處理單元狀態是否處於正常狀態及該群組狀態是否為觸發狀態,而且當上述回答皆為是時,則改變該處理單元狀態至例外進行狀態;為該處理單元儲存一當下程式計數器數值;開始該例外處理;及增加該計數器數值。
  13. 如請求項12所述之資料處理設備,其中在增加該計數器數值後,即比較該計數器數值及該總數,且當該計數器數值及該總數相等時,則改變該群組狀態至完成狀態。
  14. 如請求項1所述之資料處理設備,其中當一處理單元之該處理器單元狀態處於例外進行狀態及該處理單元執行來自例外程式指令之一回傳時,則改變該處理單元狀態為例外已處理狀態。
  15. 如請求項10及11中任一項所述之資料處理設備,其中當一處理單元狀態為例外已處理狀態及該群組狀態為完成狀態時,則改變該處理單元狀態為正常狀態及減少該計數器數值。
  16. 如請求項15所述之資料處理設備,其中在減少該計數器數值之後,即將該計數器數值與零相比,且當該計數器數值等於零時,則改變該群組狀態為正常狀態。
  17. 一種資料處理設備,該資料處理設備包含:複數個處理手段,該複數個處理手段用以執行程式指令,每一處理手段執行對應於一處理執行緒之一程式指 令串流;及例外控制手段,該例外控制手段用以控制該等複數個處理手段之複數個群組中該等複數個處理手段之一群組之例外處理,該等複數個處理手段回應對應於該群組的一例外觸發事件而執行各自的處理執行緒,其中該例外控制手段經配置以控制該群組內的該等處理手段之每一處理手段,以藉由依序的動作來回應該例外觸發事件,該依序的動作為以下步驟:中斷與該處理手段相關的該程式指令串流之執行;執行一例外處理程式指令串流以執行例外處理;及繼續執行與該處理手段相關的該程式指令串流,其中針對該群組內的該等處理手段之每一處理手段,該例外控制手段僅為一序列處理手段例外狀態之該例外觸發事件控制一次遍歷(traversal),其中該序列處理手段例外狀態依序為:(i)正常狀態(normal),對應於與該處理手段相關的該程式指令串流之處理狀態;(ii)例外進行狀態(in-exception),對應於該等例外處理程式指令之處理狀態;及(iii)例外已處理狀態(done-exception),對應於與該處理手段相關的該程式指令串流之繼續處理狀態。
  18. 一種處理資料之方法,該處理資料之方法包含以下步驟:使用複數個處理單元執行程式指令,每一處理單元執 行對應於一處理執行緒之一程式指令串流;控制該等複數個處理單元之複數個群組中該等複數個處理單元之一群組之例外處理,該等複數個處理單元回應對應於該群組之一例外觸發事件而執行各自的處理執行緒;及控制該群組內的該等處理單元之每一處理單元,以藉由依序的動作來回應該例外觸發事件,該依序的動作為以下步驟:中斷與該處理單元相關的該程式指令串流之執行;執行一例外處理程式指令串流以執行例外處理;及繼續執行與該處理單元相關的該程式指令串流,其中針對該群組內的該等處理單元之每一處理單元,該控制步驟僅為一序列處理單元例外狀態之各例外觸發事件控制一次遍歷(traversal),其中該序列處理單元例外狀態依序為:(i)正常狀態(normal),對應於與該處理單元相關的該程式指令串流之處理狀態;(ii)例外進行狀態(in-exception),對應於該等例外處理程式指令之處理狀態;及(iii)例外已處理狀態(done-exception),對應於與該處理單元相關的該程式指令串流之繼續處理狀態。
TW100136555A 2010-10-22 2011-10-07 在多處理器系統中的例外控制 TWI511042B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1017853.1A GB2484729A (en) 2010-10-22 2010-10-22 Exception control in a multiprocessor system

Publications (2)

Publication Number Publication Date
TW201229896A TW201229896A (en) 2012-07-16
TWI511042B true TWI511042B (zh) 2015-12-01

Family

ID=43334229

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100136555A TWI511042B (zh) 2010-10-22 2011-10-07 在多處理器系統中的例外控制

Country Status (10)

Country Link
US (1) US9430419B2 (zh)
EP (1) EP2630577B1 (zh)
JP (1) JP5738999B2 (zh)
KR (1) KR101838474B1 (zh)
CN (1) CN103154919B (zh)
GB (1) GB2484729A (zh)
IL (1) IL225073A (zh)
MY (1) MY164770A (zh)
TW (1) TWI511042B (zh)
WO (1) WO2012052733A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2524085B (en) * 2014-03-14 2021-01-20 Advanced Risc Mach Ltd Exception handling in microprocessor systems
US10606679B2 (en) * 2017-12-04 2020-03-31 Arm Limited Debug apparatus and method
US11782602B2 (en) 2021-06-24 2023-10-10 Western Digital Technologies, Inc. Providing priority indicators for NVMe data communication streams
US11960730B2 (en) 2021-06-28 2024-04-16 Western Digital Technologies, Inc. Distributed exception handling in solid state drives

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537562A (en) * 1993-03-31 1996-07-16 Motorola Inc. Data processing system and method thereof
US6195676B1 (en) * 1989-12-29 2001-02-27 Silicon Graphics, Inc. Method and apparatus for user side scheduling in a multiprocessor operating system program that implements distributive scheduling of processes
US6691223B1 (en) * 1999-07-30 2004-02-10 Intel Corporation Processing full exceptions using partial exceptions
US20070150632A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Conditional and vectored system management interrupts
US20080034193A1 (en) * 2006-08-04 2008-02-07 Day Michael N System and Method for Providing a Mediated External Exception Extension for a Microprocessor
US20080109674A1 (en) * 2005-04-12 2008-05-08 International Business Machines Corporation Using highly skewed clocks for application based tracing and application based normalization of processor clocks in an smp environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT998437B (it) * 1973-08-22 1976-01-20 Honeywell Inf Systems Sistema di accesso a scansione ciclica variabile delle richieste di interruzione
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
WO1991020042A1 (en) 1990-06-11 1991-12-26 Supercomputer Systems Limited Partnership Fast interrupt mechanism for a multiprocessor system
US5805470A (en) * 1996-10-10 1998-09-08 Hewlett-Packard Company Verification of instruction and data fetch resources in a functional model of a speculative out-of order computer system
US6775728B2 (en) * 2001-11-15 2004-08-10 Intel Corporation Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework
IL151251A0 (en) * 2002-08-14 2003-04-10 Elta Systems Ltd Parallel processing platform with synchronous system halt-resume
US20060020852A1 (en) * 2004-03-30 2006-01-26 Bernick David L Method and system of servicing asynchronous interrupts in multiple processors executing a user program
US7461275B2 (en) 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US20080082710A1 (en) * 2006-09-29 2008-04-03 Dell Products L.P. System and method for managing system management interrupts in a multiprocessor computer system
GB2448523B (en) * 2007-04-19 2009-06-17 Transitive Ltd Apparatus and method for handling exception signals in a computing system
US20090172229A1 (en) * 2007-12-28 2009-07-02 Krystof Zmudzinski Methods for selecting cores to execute system management interrupts
US7802042B2 (en) * 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
US7991933B2 (en) * 2008-06-25 2011-08-02 Dell Products L.P. Synchronizing processors when entering system management mode
JP2010015364A (ja) * 2008-07-03 2010-01-21 Renesas Technology Corp マルチプロセッサシステム及び情報処理装置
US20100115236A1 (en) * 2008-10-31 2010-05-06 Cray Inc. Hierarchical shared semaphore registers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195676B1 (en) * 1989-12-29 2001-02-27 Silicon Graphics, Inc. Method and apparatus for user side scheduling in a multiprocessor operating system program that implements distributive scheduling of processes
US5537562A (en) * 1993-03-31 1996-07-16 Motorola Inc. Data processing system and method thereof
US6691223B1 (en) * 1999-07-30 2004-02-10 Intel Corporation Processing full exceptions using partial exceptions
US20080109674A1 (en) * 2005-04-12 2008-05-08 International Business Machines Corporation Using highly skewed clocks for application based tracing and application based normalization of processor clocks in an smp environment
US20070150632A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Conditional and vectored system management interrupts
US20080034193A1 (en) * 2006-08-04 2008-02-07 Day Michael N System and Method for Providing a Mediated External Exception Extension for a Microprocessor

Also Published As

Publication number Publication date
EP2630577B1 (en) 2015-04-15
CN103154919B (zh) 2016-02-17
TW201229896A (en) 2012-07-16
KR101838474B1 (ko) 2018-04-26
EP2630577A1 (en) 2013-08-28
KR20140001887A (ko) 2014-01-07
MY164770A (en) 2018-01-30
US20120102303A1 (en) 2012-04-26
US9430419B2 (en) 2016-08-30
JP2013540329A (ja) 2013-10-31
JP5738999B2 (ja) 2015-06-24
IL225073A (en) 2017-05-29
WO2012052733A1 (en) 2012-04-26
GB201017853D0 (en) 2010-12-01
GB2484729A (en) 2012-04-25
CN103154919A (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
US9471319B2 (en) System management and instruction counting
CN103917959B (zh) 用于工作项同步的方法和系统
US11003489B2 (en) Cause exception message broadcast between processing cores of a GPU in response to indication of exception event
TWI498728B (zh) 非搶占式圖形處理單元上互動除錯之方法和裝置
TWI511042B (zh) 在多處理器系統中的例外控制
US10013290B2 (en) System and method for synchronizing threads in a divergent region of code
CN102736897B (zh) 多线程处理的线程选择
CN106462451B (zh) 虚拟化平台处理中断方法和相关设备
KR102265126B1 (ko) 사용자 인터페이스 요소 구성 기법
JP2012003619A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JPS61286931A (ja) 情報処理装置
US10049043B2 (en) Flushing control within a multi-threaded processor
RU2016127444A (ru) Восстановление контекста потока в многопоточной компьютерной системе
TW201435576A (zh) 陷阱處理期間的協作執行緒陣列粒化內文切換
US20090187903A1 (en) Virtual multiprocessor system
WO2019187719A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
US20160260240A1 (en) Selecting animation manipulators via rollover and dot manipulators
US20190188055A1 (en) Suppression of speculative accesses to shared memory locations at a processor
JP2016151939A (ja) コンピュータシステム、cpuリソース管理方法、および、cpuリソース管理プログラム
CN106528299B (zh) 数据处理方法及装置
JP2018068406A5 (zh)
WO2017100749A1 (en) Hardware access counters and event generation for coordinating multithreaded processing
JP2019209123A5 (zh)
JPS58182766A (ja) プログラムトレ−ス装置
CN113656223A (zh) 一种基于riscv架构的中断验证方法及系统