TWI244038B - Apparatus and method for managing a processor pipeline in response to exceptions - Google Patents

Apparatus and method for managing a processor pipeline in response to exceptions Download PDF

Info

Publication number
TWI244038B
TWI244038B TW093109247A TW93109247A TWI244038B TW I244038 B TWI244038 B TW I244038B TW 093109247 A TW093109247 A TW 093109247A TW 93109247 A TW93109247 A TW 93109247A TW I244038 B TWI244038 B TW I244038B
Authority
TW
Taiwan
Prior art keywords
interrupt
instruction
execution
pending
logic
Prior art date
Application number
TW093109247A
Other languages
English (en)
Other versions
TW200500944A (en
Inventor
Charles F Shelor
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW200500944A publication Critical patent/TW200500944A/zh
Application granted granted Critical
Publication of TWI244038B publication Critical patent/TWI244038B/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
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

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)

Description

1244038 五、發明說明(i) 一、 【發明所屬之技術領域】 本發明係有關於一種處理器;特別是有關於一種處理 器管線中例外(e X c e p t i ο n s)反應管理之裝置與方法。 二、 【先前技術】 處理器(例如,微處理器)係為眾人所熟知且被使用 在不同領域的產品及應用上,從桌上型電腦到可攜式電子 裝置(例如,手機以及PDA)。眾所周知,許多的處理器 具有相當強大功能的(例如,高階電腦工作站之處理器) , ;然而,其他的處理器有較簡單的設計,其係用在低階、 價位較低的產品及應用上。 胃 眾所周知,許多處理器具有管線式架構用以增加指令 的總處理量(throughput)。理論上來說,當純量的管線 式處理器在執行一有次序、相繼之指令流(i n s t r u c t i ο η st ream)時,每一機械週期能夠執行一個指令(在超純量 架構中,則會更多)。即使是指令本身可能意謂或是需要 實行一定數量的個別微指令(micro-instructions)時, 這個指令是會被完成的。管線式處理器藉由分離一指令之 執行以進入數個管線階段,其中每個管線階段需要一個機 j 械週期來完成。舉例來說,在一典型的系統中,一指令可 能需要數個機械週期來完成(擷取、解碼、算術邏輯單元 的運算等)。
第6頁 1244038 五、發明說明(2) 參照第一圖所示,其係用以說明__習知管線 中數個管線階段的-方塊圖。在第—圖的架構中,其^ 了二指令擷取單元10、一解碼單元2〇、一執行單元3〇、_ 记憶體存取单70 4 0以及一暫存器寫回單元5 〇。這些單 或者^邏輯方塊)的運作係為本技藝的習知技術。就這一 點而言’指令擷取單元10係實行指令記憶體掏取。此 係用來決定一程式計數器(位於暫存檔案單元6〇中) 或其内容以作為依序指令之執行,其不但包含例外向量( exception vectors)、分支指令(branches) ’ 還包含 返回指令(returns)。指令擷取單元1〇也用來決定所 二夕及分支連結指令的返回位址’以及用來寫人或儲存 U址於一適當的暫存器(位於暫存檔案單元㈣中)。盥 古其指令操取的定址(addreSSing)可以: 擬位址的一指令快取、· + 次疋措甶便用貫體或虛 。雖然暫存幹宏」_ Μ Μα1011⑶以6,圖中未示) 田案早元6 0的内部架構夫千方人pi φ 使— 理器所使用的不同暫 :3未不知圖中,其包含處 以包含通用暫存^暫存為。如大豕所知,這樣的暫存器可 用途的暫存哭f二/ reglster)或特 (例如,狀態暫存器、程式計數器等)。殊 解碼單元? 2 〇的指令之解碼/用於從指令擷取單元1 〇傳送至解碼單元 以實行特定指令^,產生一執行單元30所需的控制信號 2 〇)中特別的架摇行。一些解碼單元(例如,解碼單开 '、 系為處理器從屬(p r 〇 c e s s 〇 r
1244038 五、發明說明(3) d e p e n d e n t)的單元,但是這些解碼單元的運作與機構係 為熟悉此技藝之領域人士所熟知的。同樣地,執行單元3 0 的結構與運作係也為處理器從屬的單元,其同樣為熟悉此 技藝之領域人士所熟知的。一般而言,執行單元3 0包含用 來實行指令執行之電路系統,其係由解碼單元2 0所產生的 控制信號所決定。 如同第一圖所說明的,上述實施例中的執行單元3 0, 其包含:產生一個或多個中斷信號3 3 (或一些中斷請求) ' 的邏輯3 2。顧名思義,中斷信號3 3其係指示一中斷狀況 | (如:中斷請求I R Q、快速中斷請求F I Q)為一未決的( pend i ng)或已請求。記憶體存取單元40與外部資料記憶 體結合,用以讀入及寫入對應至執行單元3 0所執行指令之 資料。當然,並非所有的指令需要記憶體存取;但是,對 於那些需要記憶體存取的指令而言,記憶體存取單元4 0會 執行存取至外部記憶體的請求。與本發明一致,這樣的記 憶體存取可以是直接的,或是可以是藉由使用實體或虛擬 定址的檔案快取。 最後,暫存器寫回單元50負責儲存或寫入其内容(由 4 指令執行而來的結果)至暫存檔案單元60中的暫存器。舉 例來說,考慮一指令的執行,其加入兩個通用暫存器的内 容以及儲存該增加之内容至一第三通用暫存器。在如此一 指令執行之後,暫存器寫回單元5 0使得由總和(s u m m a t i ο η
1244038 五、發明說明(4) )所得到的值寫入至第三通用暫存器。 有關於中斷之處理,處理器一般性運作如第一圖所示 並概述如下。一外部中斷請求由處理器所製造,且此例外 請求被傳送至執行單元3 0。執行單元3 0檢查處理器的中斷 狀態,以及何時此特定的中斷被啟用,其產生一已確認之 中斷請求3 3而後傳送至指令擷取單元1 0。接著,指令擷取 _ 單元1 0引導(vector)至與已請求之中斷符合之一位址( 例如,一經由硬體專用的位址,用以儲存指令來處理一中 · 斷),以及擷取一與中斷服務例行程序有關的第一指令。 || 一般而言,這個第一指令係為一分支至一位置之指令,該 位置係由一使用者定義中斷服務例行程序被儲存之處。然 後,此與中斷有關的指令經由管線繼續進行,如其他任何 指令一般。 此外,當執行單元3 0接收到中斷請求以及產生已確認 之中斷請求3 3時,其也會產生一清除信號或指令(圖中未 示),如此將使得所有前面的管線階段清除其内容。一般 而言,此清除的實行係如一例行程序,警告性措施以確認 不再遇到發生於其間的指令,例如:使得指令執行單元改 + 變其模式(mode),其可能導致中斷之執行被遮罩住或不 利之影響。因此,任何管線中未決的指令均會被清除(例 如,由無運作No-Operations來取代),而已清除第一指 令之位址則會被置於一返回位址,其係由中斷服務例行程
第9頁 1244038 五、發明說明(5) 序完成後所存取。如此將導致與此中斷有關的第一指令在 收到例外請求之後第一指令之執行。 然而,與此清除相連接,許多時脈週期遺失了直至與 此中斷服務例行程序有關的第一指令可以通過此管線且到 達至執行單元3 0。因此,提供一改善的架構以處理中斷是 迫切需要的,其係用以改善處理器與此清除運作連接之效 能。 三、【發明内容】 本發明之目的、優點及新穎性將分為以下四個部分來 敘述,且各個部分對於熟知本技術領域之專門人士應可明 瞭及實施。本發明之目的、優點並不應受限於本實施例, 反而其意圖在涵蓋有關本發明精神及在附屬申請專利範圍 中所定義的發明範圍所有可替代、修正的及類似的案件。 器清目當進除決另 理分一,器清未的 處部當如理僅與例 於行,例處行令施 關實點C此實指實 有而觀時成以前一 係} 一行造用目明 明斷的執會係,發 發中例之令器如本 本,施斷指理例據 ,如實中前處C根 性例一決目,段。 穎C明未當}階輯 新應發 一 、等線邏 與反本到令式管之 點外據響指模的} 優例根影支的制段 其應。會分斷限階 到因法將一中有線 達要方行為決中管 要了與執係未線的 了為置之令閉管間 為中裝令指關器之 線之指前一·理斷 管除前目入處中
I
I m
I
I 第10頁 1244038 五、發明說明(6) 一觀點,係提供一種當目前指令之執行將會影響到未決中 斷之執行時,實行處理器管線之部分清除的方法。 本發明允許一處理器執行已擷取至管線中的指令(只 要指令不會影響中斷處理之執行),在處理該中斷之後不 需要清除那些指令以及重新擷取。是故,本發明之效能係 為更佳的。 四、【實施方式】 - 本發明的一些實施例會詳細描述如下。然而,除了詳 細描述外,本發明還可以廣泛地在其他的實施例施行,且 _ 本發明的範圍不受限定,其以之後的專利範圍為準。再者 ,為提供更清楚的描述及更易理解本發明,圖示内各部分 並沒有依照其相對尺寸繪圖,某些尺寸與其他相關尺度相 比已經被誇張;不相關之細節部分也未完全繪出,以求圖 示的簡潔。 在敘述一些較為特別的具體實施例之前,需要注意的 是,此處的中斷有不同的用法。為了更明確了解此處中斷 之命名,一中斷請求(或中斷服務請求)係參照到輸入管 4 線式處理器中的執行單元之一信號,此信號係用以通知一 中斷·服務或中斷過程事件。在實際應用上,執行單元評估 一目前狀態、狀況或處理器模式,其決定此一中斷請求是 否在此時可以被服務。假如是的話(例如,假設已請求之
第11頁 1244038 五、發明說明(7) 中斷沒有被遮罩),則執行單元產生一 「已確認之中斷請 求」,此請求為一被傳送至一前端管線單元(例如,擷取 單元、指令位址產生單元等)之信號,係引導至中斷服務 例行程序。眾所周知,中斷服務例行程序係參照處理器執 行所需的已儲存之指令,用以處理或回應至中斷事件(此 中斷事件係為發生中斷服務請求之外部狀況)。此處所參 照的這些特定專有名詞’一般而言’係稱之為中斷。然而 ,熟知此技藝的人將了解到其適當的意涵及任一如此之特 定出處(當被用在此處時),係根據其參照處而可得。 請參考第二圖所示,其用以表示本發明之管線式處理 器中數個管線階段或單元之示意圖。如同第一圖,第二圖 所示其包含了一些傳統式單元,例如:指令擷取單元1 1 0 、解碼單元1 2 0、執行單元1 3 0、記憶體存取單元1 4 0、暫 存器寫回單元150以及暫存檔案單元160。一般而言,這些 傳統式單元其運作係與第一圖相關敘述為相同的,而其方 式係為熟知此技藝之人士所了解的。因此,本發明所沿用 的現有技術,在此僅作重點式的引用,以助本發明的闡述 ,而不針對其結構與元件之操作特別著墨,此處將著重在 與本發明有關的一些具體實施例。如同與第一圖相關的敘 述,執行單元1 3 0包含用來產生一中斷信號之邏輯1 3 2,例 如:·傳送至一指令擷取單元1 1 0的一已確認中斷請求1 3 3。 根據本發明之一具體實施例,執行單元1 3 0也可以包
第12頁 1244038 五、發明說明(8) Ο 含用以產生一中斷搁置信號(interrupt pending signal )1 3 6的邏輯1 3 4。在本具體實施例中,中斷擱置信號1 3 6 可以被傳送至在執行單元1 3 0之前的指令擷取單元1 1 0及解 碼單元1 2 0。尤其,在本具體實施例中,其僅有兩個這樣 的單元。然而,在其他管線式處理器的具體實施例中,較 多或較少的單元於執行單元之前皆有可能。此外,執行單 元1 3 0也可以包含一用以偵測影響中斷之指令的邏輯1 3 8。 就這一點而言,指令可以藉由一些不同的方式來影響中斷 之執行。例如:一影響一未決中斷的指令為一個遮罩中斷 之指令,或導致處理器進入一種不能確認或提供中斷服務 模式之指令;這是因為中斷請求已經在因應一中斷請求( 例如,一硬體中斷請求)中被產生。在理論上,此請求應 該在執行更進一步指令時而被服務;然而,與本發明的精 神與範缚一致之情況下,可藉由允許已在管線中的指令之 執行來加強其性能,只要那些指令將不會影響未決中斷之 運作或服務。很清楚地,遮罩一中斷的指令或是使得處理 器進入一種不能確認此中斷請求模式之指令,其將不利地 影響中斷服務例行程序之執行。據此,一指令將導致系統 實行一管線之部分清除,用以清除目前指令,以及所有目 前指令與未決中斷之第一指令隨後的指令。 •而在另一例子或是一些實施例中,一指令可以影響預 取(p r e f e t c h e d)指令之處理先於一未決中斷之執行,然 而此一指令係為一誤測(m i s p r e d i c t e d)的分支指令(不
umm
第13頁 1244038 五、發明說明(9) 是有條件的分支指令,就是無條件的分支指令)。一正確 預測的分支指令係為一隨後的指令,其會立即地被正確的 分支目的位址所預取。一誤測的分支指令係為一隨後的指 令,其會立即地被不正確的位址所預取。誤測分支指令隨 後的指令由管線被清除,而中斷服務例行程序的返回位址 會被置於正確之分支指令目的位址。 如前所述應該可以了解到本發明的一具體實施例可以 決定在中斷未決的期間,是否會遇到一誤測分支指令(例 如,在一中斷請求已經被一執行單元所確認之後,但在中 斷服務例行程序的第一指令已經達到執行單元處理之前) 然而,一個較為簡單的方法可以根據本發明之另一具體 實施例來實施,係在一中斷未決運作的期間内,藉由所遇 到的任何分支指令來清除位於目前指令與中斷服務例行程 序之第一指令之間的管線階段。 因此,本發明一更為廣闊的觀點應該加以了解的是其 並非為未限制任何特定指令,而是影響一中斷之執行的指 令可以由於不同的處理器而有所不同。與本發明之一具體 實施例之目的有關的是在遇到一指令其被判定為影響一未 決中斷之執行時,管線中的部分清除將會被完成,而其係 清除所有介於目前指令以及與未決中斷有關的第一指令之 間的管線階段。此處執行這樣清除的電路系統或邏輯不需 要特別著墨,係因管線階段的清除是熟知本技術領域之專
第14頁 1244038 五、發明說明(10) 門人士應可明瞭的。本發明之一具體實施例其内容中特別 的一點在於,管線中被清除之管線階段其數量是有限制的 需要特別提出來的是,用以決定一目前指令是否將會 影響到一未決中斷的一些不同的方式係與本發明一致。一 個簡單的方法可以用來比較一目前指令與對照查詢表格( I look-up table)中的一些指令之列表,對於一給定的處 理器而言,這些指令為預先決定的、或是視作去影響一中 — 斷的執行。而在其他方法中,其亦可利用更高階的複雜的 方法。 如同第二圖中的描述,部分清除的邏輯1 4 4係被提供 來執行部分清除的運作。如同在圖示中所做的說明,部分 清除的邏輯14 4產生一輸出142,其可以被傳送至管線中執 行單元1 3 0之前的每一管線階段。雖然在第二圖中並未明 確說明,但當指令在與未決中斷有關的第一指令之前,管 線中的每一管線階段包含清除在此管線階段中目前所執行 的指令之邏輯。此處有關於此功能之實施與施行將會更進 一步加以敘述。然而,在此需要特別提到的是,如第二圖 φ 所示此一實施例中的元件1 3 4、1 3 8、1 4 4可以用不同的方 式實施,其係與本發明的範疇與精神一致。 參照第三圖所示,其係為根據本發明另一具體實施例
第15頁 1244038 五、發明說明(12) 2 1 8。在一具體實施例中,指令擷取佇列單元2丨8可以包含 一四個輸入的指令佇列。就這一點而言,在指令需要多重 時脈來執行的期間,其允許一更深的預取將會被完成,因 此能夠減少下游敏感度(d 〇 w n s t r e a ni s e n s i t i v i t y)至指 令快取未中。指令擷取佇列2 1 8僅從其佇列中選取下一指 令以及傳送至解碼器2 2 〇。 管線中的解碼器2 2 〇係被用來將那些從指令擷取佇列 單兀2 1 8所擷取的指令加以解碼。眾所周知,解碼器2 2 〇其 運作係將一已編碼的指令,將其解碼至一特定處理器指令 執行所需要的一些資料以及控制信號。暫存檔案 2 2 8其使用指令解碼的結果來存取指令所呼叫的運管 operand)。暫存檔案存取單元2 2 8可以決定每一 ^ / 來源當作任一來自暫存檔案(參見第二圖),或是=自其 線自身,其使用資料轉遞(圖中未示)。最 一。f 2 3 0運用廷些由暫存檔案存取單元2 2 8所提供 令指定的運算元。 4,、·他貫施才曰 下游的管線階段可以用不同方式來實施,在此 鉍月在執仃早凡2 3 0遇到一指令其不利影響一未決中 之執行時,管線中的部分清除將會被執行。μ 之 Ϊ 3 :漆•了傳統式運作與邏輯外,執行單元2 3 0還 包各了用以產生中斷擱置信號2 5 2的邏輯25〇,其可以被傳
第17頁 1244038 五、發明說明(13) 送至管線中優先於執行單元2 3 0的所有管線階段。執行單 元2 3 0也可以包含用以產生部分清除信號2 6 2的邏輯2 6 0, 其可以被傳送至管線中優先於執行單元2 3 0的每一管線階 段。中斷擱置信號,如同第二圖的1 3 6所說明,可以是一 與已確認之中斷請求信號1 3 3分開且獨立的信號,其按慣 例是由執行單元所產生並且傳送至擷取單元(參見第二圖 )。然而,在一些具體實施例中,中斷擱置信號可以用一 相同的信號加以實施,如同第三圖所示的已確認之中斷請 求。每一優先於執行單元2 3 0之管線階段當其需要時,可 以包含用以清除目前内含於該執行單元的指令之一邏輯 2 8 0。此一邏輯可以用傳統式的方法加以實施,當管線中 的完整清除之前已經被實施。一特定管線階段實施一清除 的方法之一可以是,僅以無運作取代目前指令。 如同第三圖的實施例中,每一管線階段接收一中斷擱 置信號2 5 2以及一部分清除信號2 6 2。此外,每一管線階段 可以包含用以產生一信號2 7 0 a - 2 7 0 e (與中斷有關的第一 指令一起被傳送至下一管線階段)的邏輯(圖中未示)。 當指令位址產生器2 1 0產生中斷之向量位址以及傳送該中 斷至指令擷取單元21 5時,係假設此一信號是高位信號( a c t i v e h i g h s i g n a 1);然後,信號線2 7 0 a被判定。在此 一具.體實施例中,清除指令的邏輯2 8 0可以包含一比較邏 輯2 8 5用以觸發一清除動作。此一比較邏輯2 8 5可以用以邏 輯上之實施,如同第三圖所說明的,其包含一三輸入及閘
第18頁 1244038 五、發明說明(14)
(A N D g a t e)與一反相器2 8 4。就這一點而言,比較邏輯 2 8 5可以包含^一將部分清除信號2 6 2、中斷摘置作號2 5 2以 及反相的中斷回應信號2 7 0 c (對解碼器2 2 0)等作其邏輯 上「及」的動作。就這一點而言,沒有產生一給定管線階 段的清除,直至部分清除信號2 6 2以及中斷搁置信號2 5 2兩 者都是一邏輯1 (已判定的)、中間的中斷回應信號2 7 0 c 是邏輯0 (未判定的),用以指示與中斷有關的第一指令 尚未達到管線之該管線階段。在此一具體實施例中,每一 管線階段包含用以清除目前内含於該管線階段指令的一邏 輯2 8 0。因此,當執行單元2 3 0中的邏輯2 5 0及2 6 0判定中斷 擱置信號2 5 2及部分清除信號2 6 2 ;然後,優先於執行單元 2 3 0之中斷回應指令(2 7 0a-27 Oe)沒有達到的每一管線階 段,將被清除。 當然,對於熟知本技術領域之專門人士應可明瞭,其 與本發明的範疇與精神一致,在所實施的邏輯元件2 5 0、 2 6 0及2 8 0中,其為可替代的不同邏輯結構以及實施,此具 體實施例中所說明的發明精神與觀點所完成。
參照第四圖所示,其係為根據本發明另一具體實施例 的一方塊圖’用以說明與第三圖所敘述相同的管線階段。 在此.一具體實施例中,執行單元3 3 0可以包含用以產生一 中斷請求k號3 3 3的邏輯3 3 2。如同前面所述,中斷請求信 號3 3 3被傳送至指令位址產生器310,其並非分開地被傳送
第19頁 1244038 五、發明說明(15)
至優先於執行單元3 3 0的每一管線階段。此外,中斷請求 信號3 3 3也被傳送至邏輯3 9 〇,其包含一計數器與清除控制 邏輯。如第四圖所說明的具體實施例中,執行單元3 3 0也 可以包含用以偵測影響一未決中斷之指令的邏輯3 3 9,此 邏輯可以產生一信號391其傳送至邏輯3 9 0。邏輯390包含 多重輸出3 9 5 a - 3 9 5 e,其被指向優先於執行單元3 3 0之個別 管線階段。信號3 9 5 a - 3 9 5 e可以命令個別管線階段使用内 部的清除邏輯去完成清除該管線階段(此在第四圖中並未 明確地說明)。在其運作之中,邏輯3 9 〇可以包含一計數 器’其用以計算輸入至3 9 7的時脈週期。中斷請求信號3 3 3 可以重設此計數器,在計數器中的任一給定時間中,因為 中斷請求信號3 3 3的判定(assertion),將會影響時脈週 期其已經通過的數量。之後,當邏輯3 3 9偵測到一指令其 影響未決中斷信號的信號線3 9 1時,其可以被判定。根據 邏輯3 9 0中之計數器目前的計數,邏輯3 9 〇可以在信號線 3 9 5a- 3 9 5e上產生一些輸出信號,其命令適當的管線階段 來完成其内容的清除。更佳地,邏輯3 9 〇將有不同管線階 段的汁日守與運作之一先驗(ρ Γ丨〇 r丨)知識。即是,當指令 每一官線階段在一時脈週期由一管線階段搬移至另一管線 階段,且计數器的目前計數為二時,則邏輯3 g 〇將會知道 信號線3 9 5 a-3 9 5b不需要被判定;反之,則僅信號線3 9 5c-3 9 5 e需要被判定,由此而實施對應的管線階段之清除。與 此一觀念相關的,當資料或資訊以不同的速度或速率搬移 通過官線’邏輯3 9 0可以實施相同的通用運算(與本發明
1244038 五、發明說明(16) 觀念有關的),只要邏輯3 9 0有足夠的指令與資料通過不 同的管線階段其計時之知識。 需要說明的是,第二圖、第三圖及第四圖所說明的具 體實施例僅在說明與本發明有關的部分清除運算,而不應 被視作用來限制其他可能的具體實施例。與本發明之範疇 與精神一致的其他廣大可能之不同具體實施例皆可以被施 行。 參照第五圖所示,其係說明一執行單元4 3 0,其可以 與前面所述的任一具體實施例(包含執行單元1 3 0、2 3 0及 3 3 0) —起裝配與實施。為了要實施本發明不同具體實施 例的一些特點,執行單元4 3 0可以包含用來決定目前指令 是否影響未決中斷的邏輯4 3 2。如前所述,種種指令可能 影響一未決中斷,其係與特定的電路系統以及處理器的硬 體有關。因此,邏輯4 3 2可以包含用以決定目前指令是否 為一分支指令(或誤測的分支指令)之邏輯4 3 4。如同前 面所需注意的是,電路系統或邏輯(例如,有關於分支預 測邏輯或以分支預測邏輯傳達)可以用來提供估計分支指 令是否為誤測的。本發明之一具體實施例中,誤測的分支 指令(但不是正確地預測分支指令),將導致部分管線清 除。.在其他具體實施例中,所有的分支指令可能導致部分 管線清除(例如,依據部分清除邏輯之所想要的複雜度)
第21頁 1244038 五、發明說明(17) 除此以外,邏輯4 3 2可以包含用以決定目前指令是否 將導致中斷關閉模式的邏輯4 3 6。與本發明之技術與觀念 一致,邏輯4 3 2可以包含其他邏輯元件,用以偵測指令的 其他形式其係影響未決中斷之運算。 執行單元4 3 0也可以包含用以從中斷服務例行程序返 回之執行,儲存其指令位址的邏輯(例如,儲存為一堆) 。這樣的邏輯可以用不同的方式加以實施。根據本發明之 一具體實施例,這樣的邏輯可以包含用以將目前位址儲存 為返回位址的邏輯4 4 2,係當目前指令被決定為一中斷關 閉指令。在這樣的狀況下,目前的位址將較有可能被儲存 為返回位址,當中斷關閉指令將被清除且不被執行;因此 ,一旦從中斷服務例行程序返回之第一指令將被執行。執 行單元4 3 0也可以包含用以將正確之分支指令目的位址儲 存為中斷服務例行程序返回位址的邏輯4 4 4,係當目前指 令為一分支指令(或誤測的分支指令)。也就是說,分支 指令本身可以藉由儲存為返回位址而被有效地執行,該指 令係為分支指令之目的位址。當然,當分支指令為一有條 件的分支指令,則分支預測邏輯可以也可以被運用。 -另一種情形則是,當遇到有條件的分支指令時,執行 單元可以將目前位址儲存為中斷服務例行程序的返回位址 ,在此事件中該狀況在中斷服務例行程序的執行之後可以
第22頁 1244038 五、發明說明(18) 不同地解決。 不同實施例而 致的。參照第 說明本發明的 例中,其係為 類型的中斷。 斷,通常標示 本發明的概念 處理為係為相 信號的邏輯, 速中斷請求擱 部分清除信號 除信號,例如 再者, 有所不 六圖所 另一具 第三圖 就這一 為I RQ 與具有 同的。 其可以 置信號 的邏輯 一中斷 以及一快速中斷請求 其他具體實施例中, 種類型的中斷。 前述反映出一些實施細節其可以因應 同,其與本發明的範疇與精神係為一 示,係為類似第三圖的一方塊圖,其 體實施例。如第六圖所示的具體實施 中具體實施例之擴大,用以處理多重 點而言,許多處理器包含一正常的中 :以及一快速中斷,通常標示為F I Q。 能力去支援多重類型中斷的一管線式 因此,邏輯5 5 0係用來產生中斷擱置 產生一中斷請求擱置信號5 5 2以及快 554。除此之外,邏輯56 0係用來產生 ,其可以產生每一中斷類型個別的清 請求清除信號5 6 2 (係用於I RQ中斷) 清除信號5 6 4 (係用於F I Q中斷)。在 一單獨的清除除信號可以足夠用以兩 如同與第三圖具體實施例相關聯所敘述,每一處理器 管線階段包含用以清除該管線階段指令的邏輯5 8 0。清除 指令的邏輯5 8 0可以包含一比較邏輯5 8 5,其係與第三圖中 的比較邏輯2 8 5有些微不同,且該比較邏輯5 8 5可以將所有 相關.的信號考慮進去。這樣的比較邏輯之邏輯上實施其已 經在第六圖中說明,而不需要特別敘述其運作,對於熟知 本技術領域之專門人士應可以參考圖示而明瞭及實施。更
第23頁 1244038 五、發明說明(19) 進一步而言,中斷回應信號570a-570 e可以被用來提示一 中斷請求通過管線階段的進程,正如同中斷回應信號2 7 0 a -2 7 0 e被描述與第三圖關聯之運作。此外,管線階段也可 以包含一第二中斷回應信號571a-571e,其可以被用來提 示一快速中斷請求通過管線階段的進程。再者,根據管線 中特定的結構與實施,為了此具體實施例中特點的實施之 目的,中斷(例如,該中斷是否為可遮罩的,以及中斷的 優先性,其他種種因素)之結構與實施,種種不同的電路 系統以及邏輯元件可以被提供與第六圖相關聯。然而,為 了要明瞭本發明擴大之範疇,其包含可支援多重中斷的處 理器,故在此處,這樣的實施細節並不需要特別著墨。
參照第七圖所示,其係說明一記憶體之部分,其包含 中斷向量及用以I RQ及F I Q之中斷服務例行程序。如大家所 知,許多處理器系統的記憶體空間有一些受限制的區域, 用以實施特定的運算與特色。其中一項運算便是中斷的處 理。當一中斷被請求,例如一 I RQ,處理器通常被告知引 導至該中斷。就這一點而言,需要指定一獨特的位址(或 位址範圍)給該中斷。通常,位址範圍通常足夠去支援分 支指令至中斷服務例行程序,用來處理I RQ中斷。如同第 七圖所說明,在位址〇〇〇〇〇〇-〇〇〇 0 0 3的記憶體空間被用來 給二重設的向量。典型地,當電源被供給或是重設信號被 判定至處理器;然後,處理器引導到此位址來處理或分支 至其重設例行程序。位址空間0 0 0 0 0 4 - 0 0 0 0 7被用來給I RQ
第24頁 1244038 五、發明說明(20) (例如,I R Q向量),位址空間000008-00000 B被用來給 F I Q向量。當I RQ中斷之使用者定義的中斷服務例行程序被 儲存在位址的開頭為0 1 E 0 0 0,然後I RQ向量可以包含一無 條:件的分支指令用以分支至位址0 1 E 0 0 0 (如前所述)。中 斷服務例行程序的返回位址將被儲存在處理器中的暫存器 :因此,當I RQ月艮務例行程序中的返回指令本身遭遇到, 返回位址將被負載進入一程式計數器,且在該位址的指令 將被擷取以作為處理器之連續運算。 一 器 的理 例處 施, f Ί 一δ 體而 具點 1 一 明這 發就 本。 據算 根運 為式 係函 ’ 層 示頂 所明 圖說 八以 第用 照’ 參圖 程 流 行12) 執8驟 令驟步 指步{ ^ 白 口3 常收信 正接置 施所擱 實器斷 以理中 可處一 8 4 步 當 被生施 求產實 請以體 外可具 例器 一 一理之 至處明 直,發 生本 1發據 8 纟此根 在 C支 令分 指的 前^ 目誤 定或 決C 以令 用指 認支 確分 一 一 生為 產否 後是 然) ,元 例單 匕曰 行 執驟 的步 中C 線} 管令 令 指 支 分 之 確 正 將 以 可 法 方 此 後 然 話 的 是 設 假 步 Γν 址 位 回 返 之 序 程 行 例 務 服 斷 中 為 存 儲 址 位 的 目 行 例 務 ο 服 斷0) 2 中 8 與驟 及步 以C 令段 指階 前線 目管 除的 清間 以之 可令 法指 方一 此第 ,的 後關 之有 〇 序 }程 -當步驟8 1 6的確認動作其結果為否的話(也就是說, 目前指令並不是一分支指令),則此方法可以決定目前指 令是否為一將關閉該未決中斷之指令(步驟8 2 2)。假如
第25頁 1244038 五、發明說明(21) 是的話,則此方法可以將目前指令之位址儲存為中斷服務 例行程序之返回位址(步驟8 2 4),接著進行步驟8 2 0。假 如目前指令不是一分支指令,也不是一將關閉該未決中斷 之指令時,則此方法可以藉由執行目前指令而繼續進行( 步驟8 2 6),接著進行通過下一指令至管線的執行單元( 步驟8 2 8)。之後,此方法可以返回且重複前述的步驟, 而由步驟8 1 6開始。 例九 施第 實, 體圖 具八 一 第 另同 明如 發。 本算 據運 根式 為函 係層 其頂 ,明 示說 所以 圖用 九, 第圖 照程 參流 - 的 行2 1-丨< 執9 令驟 指步 的C 常收 正接 施所 實器 以理 可處 例被 施求 實請 體外 具例 之一 圖至 直此 } 到 ο 1收 9 接 在 驟 步 斷 \XJ/ 4 中 9決 驟未 步響 C影 號將 信否 置是 擱令 斷指 中前 一 目 生定 產決 法法 方方 此的 ,fslt 後九 之第 求, 請後 外之 例 。 斷, Ν)/ ΡΌ —^1 古口 IX 9為而 驟存點 步儲一 {址這 位就 之。 當} 8 適1 9 將 以 可 法 方 此 後 然 話 的 是 設 假 架 定 Ο 特 NMy 8 的 11 9 器 驟理 步處 κί\ 據 址根 位以 回可 返址 之位 序回 程返 行的 例當 務適 服一 9 是 以 可 址 位 回 返 驟, 步說 在來 令例 指舉 該。 及定 以而 、響 構影 有 斷 中 決 未 對 否 是 定 決 被 中 址 位 的 令 指 前 —— 分址 由位 是的 以生 可產 也所 它 、 令 址指 位支 之分 令一 指為 1 係 的令 令指 指前)一^1UU 巨當 著C 跟輯 是邏。 以測等 可預等 它支, 第 的 關 有 斷 中 決 未 與 及 以 令 指 前 目 除 清 法 方 此 後 之
第26頁 1244038 五、發明說明(22) 一指令之間的管線階段(步驟9 2 0)。 當步驟9 1 6的判斷決定了目前指令將不會影響未決中 斷,則此方法執行目前指令(步驟9 2 2),然後則是繼續 進行下一指令至管線的執行單元(步驟9 2 4)。之後,此 方法返回至步驟9 1 6以及實施前述的判斷。 九圖 提出 中斷 那些 之效 前指 所有 的狀 可以 為了 中的 說明 有關 指令 能。 令可 的指 況下 返回 簡化 流程 的是 的第 可以 第八 能是 令已 ,此 至第 其程 圖作 ,假 一指 繼續 圖、 優先 經執 方法 一步 序, 詳細 如管 令, 進行 第九 於中 行優 在第 驟, 所有 敘述 線階 將對 該執 圖之 斷之 先於 八圖 也就 實施的 。前述 段中沒 中斷有 行,由 流程圖 最後指 該中斷 、第九 是正常 步驟並未於第 討論與敘述中 有一指令係為 之影響, 強了該處 並未特別 不利 此加 中, 令之 之第 圖的 的指 判斷(也 一指令) 流程圖中 令執行。 八圖 需要 優先 然後 理器 說明 就是 。在 說明 、第 特別 於與 所有 運算 了目 說, 這樣 了其 需要強調的是,以上所述僅為本發明之較佳實施例, 並非用以限定本發明之申請專利權利。舉例來說,本發明 所敘述的實施例中與中斷之處理有關。然而,本發明中的 部分·清除概念對例外處理也可以是適當的。就這一點而言 ,例外處理是大部分處理器所處理的其類似於此處所敘述 的中斷處理。一些例外可以被請求為快速處理,其導致管
第27頁 1244038 五、發明說明(23) 線一完全的、當前的清除,如同大家所知的先前技術。然 而,根據例外及處理器,一些例外可以用同樣的行為來處 理,此處中斷例外的敘述;也就是說,僅有條件的及( 或)部分管線清除。 更進一步地,以上之描述對於熟知本技術領域之專門 人士應可明瞭及實施,因此其他未脫離本發明所揭露之精 神下所完成的等效改變或修飾,均應包含在下述之申請專 利範圍中。
第28頁 1244038 圖式簡單說明 五、【圖式簡單說明】 本發明的許多觀點可以參考以下的圖示而更加清楚的 了解。相關圖示並未依比例繪製,其作用僅在清楚表現本 發明有關定理。此外,使用數字來表示圖示中相對應的部 分。 第一圖係為說明先前技術之管線式處理器中數個管線 階段或單元的一方塊圖。 第二圖係為根據本發明一具體實施例的一方塊圖,用 以更進一步說明管線式處理器中數個管線階段或單元。 第三圖係為根據本發明一具體實施例的一方塊圖,用 以說明管線式處理器中數個管線階段或單元。 第四圖係為根據本發明另一具體實施例的一方塊圖, 用以說明管線式處理器中數個管線階段或單元。 第五圖係為根據本發明一具體實施例的一方塊圖,用 以說明管線式處理器之執行單元中數個邏輯元件。 .第六圖係為根據本發明一具體實施例的一方塊圖,用 以說明管線式處理器中數個管線階段或單元。
第29頁 1244038 圖式簡單說明 第七圖說明一記憶體之部分,其包含中斷向量及用以 I RQ及F I Q之中斷服務例行程序。 第八圖係為根據本發明一具體實施例的一流程圖,用 以說明頂層函式運算。 第九圖係為根據本發明另一具體實施例的一流程圖, 用以說明頂層函式運算。 主要部分之代表符號·· 10 指令擷取單元 20 解碼單元 3 0 執行單元 3 2 產生中斷信號之邏輯 3 3 已確認之中斷請求 40 記憶體存取單元 50 暫存器寫回單元 60 暫存檔案單元 110 指令擷取單元 120 解碼單元 13 0 執行單元 .13 2 產生中斷信號之邏輯 1 33 已確認之中斷請求 1 3 4 產生中斷擱置信號的邏輯
第30頁 1244038 圖式簡單說明 136 中斷搁置信號 138 偵測影響中斷之指令的邏輯 140 記憶體存取單元 1 44 部分清除的邏輯 150 暫存器寫回單元 160 暫存檔案單元 210 指令位址產生器 215 指令擷取單元 2 1 8 指令擷取佇列單元 2 2 0 解碼器 2 2 8 暫存檔案存取單元 2 3 0 執行單元 2 5 0 產生中斷擱置信號的邏輯 2 5 2 中斷擱置信號 2 6 0 產生部分清除信號的邏輯 2 6 2 部分清除信號 2 7 0 c 中斷回應 2 8 0 清除指令的邏輯 310 指令位址產生器 3 1 5 指令操取單元 3 1 8 指令擷取佇列單元 .3 2 0 解碼器 328 暫存檔案存取單元 3 3 0 執行單元
第31頁 1244038 圖式簡單說明 3 3 2 產生中斷請求信號的邏輯 3 3 9 偵測影響中斷之指令的邏輯 3 9 0 計數器及清除控制的邏輯 3 9 7 時脈k號 51 0 指令位址產生器 515 指令擷取單元 518 指令擷取佇列單元 5 2 0 解碼器 5 2 8 暫存檔案存取單元 5 3 0 執行單元 5 5 0 產生中斷擱置信號的邏輯 5 5 2 中斷請求擱置信號 5 5 4 快速中斷請求擱置信號 5 6 0 產生部分清除信號的邏輯 5 6 2 中斷請求清除信號 5 6 4 快速中斷請求清除信號 5 7 0c 中斷請求回應 5 7 1 c 快速中斷請求回應 5 8 0 清除指令的邏輯
第32頁

Claims (1)

1244038 六、申請專利範圍 1 . 一種處理器,包含·· 複數個邏輯單元係存於一管線中,其中該複數個邏輯 單元中之一係為一執行單元; 一第一機制用以指示一中斷為未決的; 一第一邏輯能夠決定存於該執行單元中之一目前指令 的執行是否會影響到該未決中斷的執行;以及 一第二邏輯能夠實行該管線的一部分清除,其中僅該 目前指令以及與該未決中斷有關的一第一指令之間的指令 被清除。 ~ 2. 如申請專利範圍第1項所述之處理器,其中該複數個邏 輯單元包含一擷取單元、一解碼單元以及該執行單元。 3. 如申請專利範圍第1項所述之處理器,其中該複數個邏 輯單元包含一位址產生單元、一擷取單元、一指令仔列單 元、一解碼單元、一暫存檔案存取單元、一資料存取單元 、一收回單元以及該執行單元。 4. 如申請專利範圍第1項所述之處理器,其中該第一機制 包含一電子信號,其輸入至該管線中在該執行單元之前的 管線單元。 5. 如申請專利範圍第4項所述之處理器,其中該執行單元 包含一第三邏輯用以產生該電子信號以回應一例外請求。
第33頁 1244038 六、申請專利範圍 6. 如申請專利範圍第1項所述之處理器,更包含: 一第二機制用以指示一第二中斷為未決的; 一第四邏輯能夠決定存於該執行單元中之一目前指令 的執行是否會影響到該未決之第二中斷的執行;以及 一第五邏輯能夠實行該管線的一部分清除,其中僅該 目前指令以及與該未決之第二中斷有關的一第一指令之間 的指令被清除。 7. 如申請專利範圍第6項所述之處理器,其中該中斷係為 一正常中斷,且該第二中斷係為一快速中斷。 8. 如申請專利範圍第1項所述之處理器,其中該第一邏輯 ,係用來決定該目前指令是否為能夠關閉該未決中斷的指 ° 9. 如申請專利範圍第1項所述之處理器,其中該第一邏輯 ,係用來決定該目前指令是否為一分支指令。 1 0.如申請專利範圍第1項所述之處理器,更包含一返回 指令邏輯,能夠設定用以指令執行之一返回位址,從該未 決中.斷之一中斷服務例行程序返回,且該返回指令邏輯與 能夠實行該管線的一部分清除之該邏輯係為有效地結合。
第34頁 1244038 六、申請專利範圍 1 1 .如申請專利範圍第1 0項所述之處理器,其中該返回指 令邏輯係用來儲存該目前指令的一位址,來當作由該中斷 服務例行程序之一返回位址,係當該目前指令的執行會導 致該未決中斷之關閉。 1 2.如申請專利範圍第1 0項所述之處理器,其中該返回指 令邏輯係用來儲存正確的目的位址,來當作由該中斷服務 例行程序之一返回位址,係當該目前指令係為一誤測的分 支指令。 1 3. —種管線式處理器,包含·· 一中斷邏輯用以指示一中斷為未決的; 一決定邏輯用以決定存於該管線式處理器中之一執行 單元的一目前指令之執行是否會影響到該未決中斷之執 行;以及 一清除邏輯用以僅清除該目前指令及與該未決中斷有 關的一第一指令之間的指令。 1 4.如申請專利範圍第1 3項所述之管線式處理器,更包含 一機制用以提示一中斷為未決的。 其中該 (9 1 5 ·.如申請專利範圍第1 4項所述之管線式處理器 機制係用來產生一電子信號以回應一例外請求。
第35頁 1244038 六、申請專利範圍 16. —種可攜式之電子裝置,包含: 一中斷邏輯用以指示一中斷為未決的; 一決定邏輯用以決定存於管線式處理器中之一執行單 元的一目前指令之執行是否會影響到該未決中斷之執行; 以及 一清除邏輯用以僅清除該目前指令及與該未決中斷有 關的一第一指令之間的指令。 1 7 · —種由一處理器執行係當一中斷為未決的以及在一中 斷服務例行程序開始執行前的方法,包含: 決定一目前指令的執行是否會影響到該未決中斷的執 行;以及 實行管線階段之一部分清除,其中僅清除該目前指令 及與該未決中斷有關的一第一指令之間的指令。 1 8.如申請專利範圍第1 7項所述之由一處理器執行係當一 中斷為未決的以及在一中斷服務例行程序開始執行前的方 法,更包含產生一信號用以指示一中斷為未決的。 1 9.如申請專利範圍第1 8項所述之由一處理器執行係當一 中斷為未決的以及在一中斷服務例行程序開始執行前的方 法,·其中該產生一信號係為產生該信號以回應一例外請求
第36頁 1244038 六、申請專利範圍 2 0 .如申請專利範圍第1 8項所述之由一處理器執行係當一 中斷為未決的以及在一中斷服務例行程序開始執行前的方 法,更包含傳送該信號至優先於一執行單元之所有管線階 段。 2 1 .如申請專利範圍第1 8項所述之由一處理器執行係當一 中斷為未決的以及在一中斷服務例行程序開始執行前的方 法,更包含設定與該信號結合之一計數器,係用來計算管 線階段。 2 2 .如申請專利範圍第1 7項所述之由一處理器執行係當一 中斷為未決的以及在一中斷服務例行程序開始執行前的方 法,其中實行管線階段之一部分清除之該步驟包含儲存該 目前指令的一位址,來當作由該中斷服務例行程序之一返 回位址,係當該目前指令的執行會導致該未決中斷之關閉 2 3.如申請專利範圍第1 7項所述之由一處理器執行係當一 中斷為未決的以及在一中斷服務例行程序開始執行前的方 法,其中實行管線階段之一部分清除之該步驟包含儲存該 目前指令的一位址,來當作由該中斷服務例行程序之一返 回位.址,係當該目前指令係為一誤測的分支指令。 24 種處理器,包含:
第37頁
TW093109247A 2003-06-24 2004-04-02 Apparatus and method for managing a processor pipeline in response to exceptions TWI244038B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/602,931 US7013383B2 (en) 2003-06-24 2003-06-24 Apparatus and method for managing a processor pipeline in response to exceptions

Publications (2)

Publication Number Publication Date
TW200500944A TW200500944A (en) 2005-01-01
TWI244038B true TWI244038B (en) 2005-11-21

Family

ID=33539637

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093109247A TWI244038B (en) 2003-06-24 2004-04-02 Apparatus and method for managing a processor pipeline in response to exceptions

Country Status (3)

Country Link
US (1) US7013383B2 (zh)
CN (1) CN1292343C (zh)
TW (1) TWI244038B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7934073B2 (en) 2007-03-14 2011-04-26 Andes Technology Corporation Method for performing jump and translation state change at the same time

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370243B1 (en) * 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7278014B2 (en) * 2004-12-02 2007-10-02 International Business Machines Corporation System and method for simulating hardware interrupts
US20060168485A1 (en) * 2005-01-26 2006-07-27 Via Technologies, Inc Updating instruction fault status register
US7478276B2 (en) * 2005-02-10 2009-01-13 International Business Machines Corporation Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
JP4270184B2 (ja) * 2005-09-05 2009-05-27 コニカミノルタビジネステクノロジーズ株式会社 ネットワーク画像処理システム、ネットワーク画像処理装置、ネットワーク画像処理方法
US20070088987A1 (en) * 2005-10-13 2007-04-19 Hiroshi Kimizuka System and method for handling information transfer errors between devices
US7702889B2 (en) * 2005-10-18 2010-04-20 Qualcomm Incorporated Shared interrupt control method and system for a digital signal processor
JP4893427B2 (ja) * 2006-06-30 2012-03-07 株式会社デンソー マイクロコンピュータシステム
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US8006221B2 (en) * 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
KR101335001B1 (ko) * 2007-11-07 2013-12-02 삼성전자주식회사 프로세서 및 인스트럭션 스케줄링 방법
US10073797B2 (en) * 2008-02-22 2018-09-11 Nxp Usa, Inc. Data processor device supporting selectable exceptions and method thereof
US8417924B2 (en) * 2008-02-22 2013-04-09 Freescale Semiconductor, Inc. Data processing device and method of halting exception processing
EP3005078A2 (en) * 2013-05-24 2016-04-13 Coherent Logix Incorporated Memory-network processor with programmable optimizations
US9449363B2 (en) * 2014-06-27 2016-09-20 Intel Corporation Sampling, fault management, and/or context switching via a compute pipeline
US10255074B2 (en) 2015-09-11 2019-04-09 Qualcomm Incorporated Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
US10908998B2 (en) * 2017-08-08 2021-02-02 Toshiba Memory Corporation Managing function level reset in an IO virtualization-enabled storage device
JP2019101543A (ja) * 2017-11-29 2019-06-24 サンケン電気株式会社 プロセッサ及びパイプライン処理方法
US11379239B2 (en) * 2019-03-26 2022-07-05 Arm Limited Apparatus and method for making predictions for instruction flow changing instructions
US11762587B2 (en) 2021-05-05 2023-09-19 Samsung Electronics Co., Ltd Method and memory device for atomic processing of fused commands

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6488844A (en) 1987-09-30 1989-04-03 Takeshi Sakamura Data processor
JPH081602B2 (ja) 1988-02-23 1996-01-10 三菱電機株式会社 データ処理装置
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5442756A (en) 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5706459A (en) 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
US5542109A (en) 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US5625789A (en) 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle
US5666506A (en) 1994-10-24 1997-09-09 International Business Machines Corporation Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
US5740417A (en) 1995-12-05 1998-04-14 Motorola, Inc. Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states
US5805879A (en) 1996-02-23 1998-09-08 Cyrix Corporation In a pipelined processor, setting a segment access indicator during execution stage using exception handling
US5951678A (en) 1997-07-25 1999-09-14 Motorola, Inc. Method and apparatus for controlling conditional branch execution in a data processor
JPH1196006A (ja) 1997-09-19 1999-04-09 Hitachi Ltd 情報処理装置
US6192466B1 (en) 1999-01-21 2001-02-20 International Business Machines Corporation Pipeline control for high-frequency pipelined designs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7934073B2 (en) 2007-03-14 2011-04-26 Andes Technology Corporation Method for performing jump and translation state change at the same time

Also Published As

Publication number Publication date
CN1542609A (zh) 2004-11-03
CN1292343C (zh) 2006-12-27
US7013383B2 (en) 2006-03-14
TW200500944A (en) 2005-01-01
US20040268103A1 (en) 2004-12-30

Similar Documents

Publication Publication Date Title
TWI244038B (en) Apparatus and method for managing a processor pipeline in response to exceptions
JP7284199B2 (ja) アルゴリズム整合、機能無効化、または性能制限による後方互換性
JP6856358B2 (ja) ローカル分岐デコーダを有するマルチ発行マイクロコードユニットを備えたパイプラインプロセッサ
US5829028A (en) Data cache configured to store data in a use-once manner
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US8069336B2 (en) Transitioning from instruction cache to trace cache on label boundaries
US6823448B2 (en) Exception handling using an exception pipeline in a pipelined processor
US12001842B2 (en) Hardware apparatuses and methods to switch shadow stack pointers
TW200525355A (en) Microprocessor and apparatus for performing speculative load operation from a stack memory cache
TW201411486A (zh) 迴圈緩衝器封裝
CN112241288A (zh) 在硬件中检测条件分支的动态控制流重汇聚点
JP3837289B2 (ja) 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ
JP2019537163A (ja) オペレーションキャッシュ
US20160011874A1 (en) Silent memory instructions and miss-rate tracking to optimize switching policy on threads in a processing device
US7272705B2 (en) Early exception detection
JP5335440B2 (ja) オペランドの早期の条件付き選択
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
JP2009524167A5 (zh)
US6983359B2 (en) Processor and method for pre-fetching out-of-order instructions
WO2002046920A2 (en) Multi-cycle instructions
JPH06161779A (ja) データ処理装置の割込み制御方式
US6721878B1 (en) Low-latency interrupt handling during memory access delay periods in microprocessors
JP3670646B2 (ja) レジスタ転送オペレーション
CN101615114B (zh) 完成两次乘法两次加法两次位移的微处理器实现方法

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent