TWI224284B - Selective interrupt suppression - Google Patents
Selective interrupt suppression Download PDFInfo
- Publication number
- TWI224284B TWI224284B TW92123371A TW92123371A TWI224284B TW I224284 B TWI224284 B TW I224284B TW 92123371 A TW92123371 A TW 92123371A TW 92123371 A TW92123371 A TW 92123371A TW I224284 B TWI224284 B TW I224284B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- extended
- item
- interrupt
- microprocessor
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
1224284 五、發明說明(1) 與相關申請案之對照 之優先權·案 美國專利申請 [0001] 本申請案主張以下美國申請案 號10/384, 390,申請日為2003年3月10日。 [0002] 本申請案與下列同在申請中之 案有關,都具有相同的申請人與發明人。 台灣 中請案號 91116957 91116958 91124008 91116956
申請曰 DOCKETNUMBER 糞利名稱 7/30/02 7/30/02 10/18/02 7/30/02 CNTR:2176 CNTR:2186 CNTR:2187 CNTR:2188 延伸微處理器 指令集之裝置 及方法 執行條件指令 之裝置及方法 選擇性控制記 憶體屬性之裝 置及方法 選擇性地控制 條件碼回寫之 裝置及方法 1224284 五、發明說明(2) 91116959 7/30/02 CNTR:2189 增加微處理器 之暫存器數量 的機制 91124005 10/18/02 CNTR:2190 延伸微處理器 資料模式之裝 置及方法 91124006 10/18/02 CNTR:2191 延伸微處理器 位址模式之裝 置及方法 92100942 1/17/03 CNTR:2192 儲存檢查之禁 止 91124007 10/18/02 CNTR:2195 非暫存記憶體 之參照控制機 制 91116672 7/26/02 CNTR:2198 選擇性地控制 結果回寫之裝 1224284 【發明所屬之技術領域】 [0 0 0 3 ]、本發明係有關微電子之領域,尤指一種將可 於層一人選擇性地抑制中斷的特徵納入一既有微處理器 指令集架構的技術。 【先前技術】 匕[0004]自1 9 70年代初發韌以來,微處理器之使用即 呈私數般成長。攸最早應用於科學與技術的領;或,到如今 已,那些特殊領域引進商業的消費者領域,如桌上型與膝 上聖(laptop )電腦、視訊遊戲控制器以及許多其他常見 的家用與商用裝置等產品。 4 ϋ 5 ]酼著使用上的爆炸性成長,在技術上也歷經 ,其特徵在於對下列項目有著曰益昇高之 要求.更快的速度、更強的定址能力、更快 取、更大的運算元、更多種一子 、雷笞话此人#丄一 知用途類型之運具(如洋點 二、一曰々夕重貧料(SIMD )、條件移動等)以及附 運算(如數位訊號處理功能及其他多媒體運 π ) k就了该領域中驚人的技術進展,且都已應用 於微處理益之設計,像擴充管線化(extensive ^ pipelining)、超純量架構(super_scaiar architecture)、快取結構、亂序處理(〇ut_〇f processing)、爆發式存取(burst access)機 預測(branch predication )以及假想執行 刀支 1224284
五、發明說明(4) (speculative execution )。直言之,比起3〇年前剛出 現時,現在的微處理器呈現出驚人的複雜度,且且很7 二丹爾了 *
[0006]但與許多其他產品不同的是,有另一非常重 要的因素已限制了 ,並持續限制著微處理器架構之演進。 現今微處理器會如此複雜,一大部分得歸因於這項因素 即舊有軟體之相容性。在市場考量下,所多製造商選擇 新的架構特徵納入最新的微處理器設計中,但同時在、士此 最新的產品中,又保留了所有為確保相容於較舊的、^ f 謂「舊有」(legacy )應用程式所必需之能力。
[ 0 0 0 7 ]這種舊有軟體相容性的負擔,沒有其他地 方,會比在x86-相容之微處理器的發展史中更加顯而易 見。大家都知道,現在的32/16位元之虛擬模式 (virtual-mode ) x86微處理器,仍可執行198〇年代所撰 寫之8位元真實模式(real-m〇(ie )的應用程式。而熟習此 領域技術者也承認,有不少相關的架構「包被」堆^χ86 架構中,只是為了支援與舊有應用程式及運作模式的相 性。雖然在過去,研發者可將新開發的架構特徵加入既 的指令集架構,但如今使用這些特徵所憑藉之工具,即。 程式化的指令,卻變得相當稀少。更簡單地說,在某:= 要的指令集中,已沒有「多餘」的指♦,讓設計者^以 將更新的特徵納入一既有的架構中。 [ 0008 ]例如,在χ86指令集架構中,已經沒有任何— 未定義的一位元組大小的運算碼狀態,是尚未被使用的。
五、發明說明(5) 在主要的一位元組大小之 石民业能抑0、士日ZL 士 運斤碼圖中,全部2 5 6個運算 碼狀恶都已被既有的指令佔 μ泌♦田 的今士+去招产、/ α各 、,、口果疋,χ86微處理器 者間作抉擇。*要提供新的可夂:::有軟體相谷性兩 算碼狀態給這些特徵。#既有,則必須分派運 管碼妝態a,i + 有的私令集架構沒有多餘的運 斤碼狀恶,則某些既存的運瞀 供办靳Μ # n ra LL 連开碼狀悲必須重新定義,以提 軟體的相容性了。 3 A供新的特徵,就得犧牲舊有 望柄=9]Λ'代的微處理器中,有些特徵是程式員希 項特徵即是指令層次之中斷抑制控制。一 -中- ⑼[:至;2上現Λ的微處理器中,中斷是用來將微處理 以置二-,而言,應用程式是在不 器的服務日寺,外邻裝置!機或網路卡,需要微處理 處理n,以μ::ΐ1或間接送出-中斷訊號至微 此,少系曰 而要及時回應的事件已經發生。因 以服務這此夕卜1 w 木r哥正吊%式執仃的電路, 回歸至二:L 處理中斷之後,程式控制-般合 口知到原本所執行程式被中斷的點。 曰
[0011]大部分的微處理琴 , L 號的接腳,百、泰、A 1裔具有一或多個外在中斷訊 置, ^ 、'、、、中斷控制器的特殊用途邏輯裝 到以下事f即p足鈞·业*裝置。就本案的目的而言,提 、 句·/、聖的中斷控制器係組態為以少數 1224284 五、發明說明(6) 的中斷訊號接腳,將較多數量的外部裝置輕接至微處理 器,以此種方式來與主微處理器溝通。例如,透過以兩個 中斷訊號接腳與一已知微處理器溝通的典型中斷控制器, 兩百個以上的外部裝置可發出中斷至此微處理器,且微處 理器對每一中斷皆能分辨並進行處理。 [0012]中斷處理是件非常複雜的工作。當一中斷發 生時’正在執行的應用程式必須在某一點上暫停執行,而 這一點的執行狀態在中斷處理期間可儲存起來,備後 回復之用,也才能繼續執行程式。對於—正^執行 式,其狀恶通常反映於執行點或指令位址,在這一點上暫 =執行,且所有與此程式相關之通用暫存器與系統狀 存器的值也停止更新。因此,當一中斷發生時,合讓程 ΐ = =指令’然後暫停程式的運作,並將與裎 = :暫f器與系統狀態暫存器的值,以及正在執 後,微處理器中的程式控制通常 數 (也稱為異當虚理 巾沉《刀支到中斷處理程式 饵马異 * 處理^*(exception hand 叙係作業系統程式的一部份。中 j) 权式— 外的作業(通常是透過予%斷處^程式啟動微處理器 定的中斷服務應用程式,以執:二:程便轉移到特 是從裝置讀取或寫入資料3 = ;::類型的運算,像
3S 文辦微處理為内立β liA fiL I 移動大量的資料自/至記憶體等。當中斷處理完成暫存
Ι^^ιΐϋ 第12頁 1224284 五、發明說明(7) 控制權便回歸至作業系統,以回復所儲存之被中斷應用裎 式的狀態,並將程式控制轉移至下個指令的位址。 [0013]前面對於中斷處理的描述,是要讓讀者了解 到,在典型的管線化微處理器中,處理一典型中斷所需之 運算。熟悉此領域技術的人將能了解到,個別微處理器架 構的不同處在於,所提供之中斷訊號接腳的數目、中斷訊 號的致月b方式、裝置如何傳遞中斷、中斷的層級、被中斷 應用程式之''狀態”的保存及回復方式、中斷發生後於哪一 點暫停應用程式以及各個微處理器架構所提供之中斷處理 程式的特殊運作細節。 [0014]由於中斷的處理是如此複雜,現在的微處理 器皆提供可使中斷處理限制於作業系統層級的機制。例 如,許多微處理器具有一可程式化的暫存器,允許忽略所 產生的中斷。在x86相容的微處理器中,這個可程式化暫 存器所採用的形式是,在x86相容的微處理器内之χ86旗標 暫存器的中斷致能旗標位元。當此位元被設為真,就處理 =斷 备此位元未被設為真,就忽略中斷。這個層級的可 裎^化控制使程式員確保特定運算(亦即特定指令序列)能 =ϊ i ΐ而完成。例如,當一特定中斷發生,作業系統内 功〜「斷系处理程式在此特定中斷被處理時,通常會除能中斷 理=透過旗標位元)。在此特定中斷處理完畢後,中斷處 著=1ί設定中斷致能位元,而允許任何待處理的中斷接 理::為避免非作業系統的程式除能與致能中斷處 在处理器架構也提供一種機制,以防止應用程式執行
1224284 五、發明說明(8) =:j中斷是否被致能或除能的指♦。χ86相容的微處理 。。允許雈式貝指定四種特權層級(privUege丨㈢“)中的 早?古:戶!有在微處理器上執行的程式。#業系統通常賦 予=咼特權層級,而應用程式則被賦予最低特權層級。若 在最低特權層級執行的應用程式企圖執行除能中斷的指 令,x86處理器即偵測到此一事件,且避免執行這個指 7 。其他微處理器架構則採用不同的機制,將中斷處理的 控制權僅賦予負責這部分工作的程式。此處只需了解到, 在現代的微處理器中,由於中斷處理的複雜性,已不讓應 用矛王式員來決疋其程式是否及何時需暫停,以進行中斷處 理。 [0015]但疋’有不少應用程式所執行的運算,需要 不义中斷地執行一個以上的程式指令。例如,在微處理器 與其他裝置共旱記憶體的系統組態中,對於一項從記憶體 位置讀取某值、修改此值並將修改後的值寫回記憶體位置 的多指令工作,若在從記憶體讀取此值之後且將此值寫回 記憶體之前,被中斷執行,則可以想見此多指令工作會執 行失敗。此種運异稱為讀取-修改-寫入運算。讀取-修改一 寫入運算必須”連續地”執行,亦即不受中斷,以確保程式 能適當地執行。有些微處理器架構本身即提供有限的指 令,來完成一般的連續運算。在x86指令集中,提供了比 較與交換指令(CMPXCHG),允許程式員指示微處理器連續 地比較第一運算元(從一記憶體位置所讀取)與一暫存器運 异元’且依據比較結果,將第一運算元或暫存器運算元寫
第14頁 1224284 五、發明說明(9) _ 回至該記憶體位置。另 示微處理器從一記憶一連,指令XADD,則讓程式員能指 運算元與一暫存器運曾位置項取第一運算元,並交換第一 回該記憶體位置。 > 疋的内含值,在將兩運算元的和寫 [0 0 1 6 ]因此,在 ^ 令提供了應用程式所*特疋的微處理器指令集中,連續指 現在仍有其他許多在=的一些更一般的連續運算。然而, 現中斷而執行失敗,二用,式層級所執行的運算,會因出 串運算或指令,但應用,廷,運异需要不令斷地執行一連 或指令執行期間,不备^式貝部無法確保在這一連串運算 述之特定,,連續,,指令:士中斷。應用程式員更受限於前 要的連續運算,因為t π =些指令可能無法有效地執行所 連續運算。 為义些連續指令僅用於執行更為一般的斤 中該指令集架構係以用置及方法,其 中斷抑制特徵能讓―符碼”佔用,且約入該 有應用程式的能力二;格之微處理器保留執行舊 # Λ ffl ^ -V' - ^ ;任何已知的指令序列,、罗 力、私式貝及/或編譯器控制是否執行中斷處理的能還提 【發明内容】 [謝8]本發明如同前述其他申請案,係 …知技術之問題與缺點加以克服。本發明提供4习 1224284 五、發明說明(ίο) 好m用以擴充微處理器之指令集,使其超越現有的 f接ίΐ令層級之中斷抑制特徵。在-具體實施例 制in—種可在微處理器内進行指令層級之中斷抑制 控制的裝置。該裝置包括—轉譯邏輯(transiati〇n i〇glc)與一延伸執行邏輯。該轉譯 厂、伸=置石馬(extended prefix)與一延伸前置碼標 preflx tag)。該延伸前置碼指定中斷處 nc指令執行完畢。該延伸前置碼標記則係 内原本依據架構指定之運算碼。該延伸執行 邊輯搞接至轉譯邏輯,帛收該對應的微指令,並理一 符處理令斷前,完成該對應微指令的執行。 八隼H本:明的一個目的’係提出-種擴充既有指 二ί呈古 抑制中斷的微處理器機制。該微處理器 機!I二、ΐ:延伸指令與一轉譯器(transiat〇r)。該延伸 指二係指定與中斷相關之中斷處理要被抑 指完::該延伸指令包含該既有指令集其d 之—开,、後則接著一η位元之延伸前置碼。該選取之 運具碼指出該延伸指令,而該η位元之延伸前 要::中斷處理。該轉譯器接收該延伸指令,並產、生曰一微 ^執:完:指示微處理器抑制處理中斷’直至該微指令 Α隼1^^ ^發」月的另一目的’在於提出一種為既有指 令集曰添中斷抑制特徵的模組。該模組包括-逸出標記 1224284 五、發明說明(11) (escape tag )、一中斷抑制指定元(intempt suppression sPeC1fier)、—轉譯邏輯及 e_r = pt 執行邏 Ϊ = ΐ標一對應指令之附隨部分係指定了所要 執灯之運异,其中垓逸出標記為該既有指令集第一 ί i碼甘:中斷抑制指定元耦接至該逸出標記’,且為該附 Ik泮/刀其中之一,其指定要抑制中斷處理, 執 行完畢:該轉譯邏輯接收該逸出標記與該中斷抑;;指定 兀,且產生一微指令庠列,以彡t: +妈走 ^ Μ « if - -序 以私不微處理器執行談運算, 轉澤邏輯亚指不要抑制中斷處理,直至該運算完成。該 延伸執行邏輯搞接至兮鐘窄;羅姑 ^ 在處理-待声理= 輯妾收該微指令序列,並 在处里#處理中斷前,$成該運算的執 [0021]本發明的再一目的,. 指令隼孥槿的方本冉 的在於棱供一種擴充既有 包括提#延袖扣,以於指令層級抑制中斷處理。該方法 中;♦’該延伸指令包含-延伸標記及-延 二透過該延伸前置碼指定於該延:指 時,抑制中斷處理,直 甲扣7執仃 執行之運曹· u #八μ I伸指々之其餘部分指定所要 Ϊ運一及於該延伸指令執行時,抑制處理一中 【實施方式】 [0 0 3 2 ]以下的〜、y 件的脈絡下而提供,兄係&在特疋實施例及其必要條 發明。然❿,各種姆;:2熟習此項技術者能夠利用本 項技術者而言乃係實施例所作的修改,對熟習此 頌而易見,並且,在此所討論的—般原 1224284 五、發明說明(12) 理,亦可應用至其他實施例。因此,本發明並不限於此處 所展示與敘述之特定實施例,而是具有與此處所揭露之原 理與新穎特徵相符之最大範圍。 [0033]前文已針對今日之微處理器内,如何擴充其 架構特徵,以超越相關指令集能力之技術,作了背景的討 論。有鑑於此,在圖一與圖二,將討論一相關技術的例 子。此處的討論強調了微處理器設計者所一直面對之指令 集的限制,即一方面,他們想將最新開發之架構特徵納入 微處理器的設計中,但另一方面,他們又要保留執行舊有 應用程式的能力。在圖一至二的例子中,一完全佔用之運 算碼圖,已把增加新運算碼至該範例架構的可能性排除, 因而迫使設計者要不就選擇將新特徵納入,而犧牲某種程 度之舊有軟體相容性,要不就將架構上的最新進展一併放 棄,以便維持微處理器與舊有應用程式之相容性。在相關 技術的討論後,於圖三至九,將提供對本發明之討論。藉 由利用一既有但未使用之運算碼作為一延伸指令之前置^ 標記,本發明可讓微處理器設計者克服已完全使用之指令 ,架,的限制,除了使應用程式員能指示微處理器去抑^ 單一指令或指令群的中斷處理,同時也能保留執行舊 用程式所需之所有特徵。 〜 [0034]請參閱圖一,其係一相關技術之微處理器指 令,式100的方塊圖。該相關技術之指令1〇〇具有數量可變 之貧料項目101 —1〇3,每一項目皆設定成一特定值,合在 一起便組成微處理器之一特定指令1 0 0。該特定指令1 〇 〇指 1224284 五、發明說明(13) ,微處理,執行一特定運算,例如將兩運算元相加,或者 疋將二運异兀從記憶體搬移至一内部暫存器,或從該内部 暫存器搬移至記憶體。一般而言,指令丨〇 〇内之運算碼項 目102指定了所要執行之特定運算,而選用(opti〇nal ) 之,址,定元項目103位於運算碼102之後,以指定關於該 特定運算之附加資訊,像是如何執行該運算,運算元位於 何f等等。指令格式1〇〇並允許程式員在—運算碼1〇2前加 ^前置碼項目1〇1。在運算碼102所指定之特定運算執行 日π ’刚置碼101用以指示是否使用特定的架構特徵。一般 來說,這些架構特徵能應用於指令集中任何運算碼丨02所 才曰疋運异的大部分。例如,現今前置碼1 〇 i存在於一些能 使用不同大小運算元(如8位元、丨6位元、32位元)執^ 運算的微處理器中。而當許多此類處理器被程式化為一預 設的運异元大小時(比如3 2位元),在其個別指令集中所 提供之如置碼1 〇 1,仍能使程式員依據各個指令,選擇性 地取代(overr i de )該預設的運算元大小(如為了產生16 位元之運鼻元)。可選擇之運鼻元大小僅是架構特徵之一 例,在許多現代的微處理器中,這些架構特徵能應用於眾 多可由運算碼1 0 2加以指定的運算(如加、減、乘、布林 邏輯等)。 [ 0 035 ]圖一所示之指令格式100,有一為業界所熟知 的範例,此即X8 6指令格式1 〇〇,其為所有現代之义§6 —相容 微處理器所採用。更具體地說,x8 6指令袼式丨〇〇 (也稱為 X86指令集架構100 )使用了 8位元前置碼101、8位元運算
1224284
碼1 Ο 2以及8位元位址指定元丨〇 3。χ 8 6架構丨〇 〇亦具有數個 前置碼101 ’其中兩個取代了 χ86微處理器所預設的位址/ 資料大小(即運算碼狀態66Η與67Η ),另一個則指示微處 理器依據不同的轉譯規則來解譯其後之運算碼位元組丨〇2 (即前置碼值OFH,其使得轉譯動作是依據所謂的二位元 組運异碼規則來進行),其他的前置碼1 〇 1則使特殊運算 重複執行’直至重複條件滿足為止(即REp運算碼:f〇h、 F2H 及F3H )。 [ 0 0 3 6 ]現請參閱圖二,其顯示一表格2〇〇,用以描述 一指令集架構之指令2 0 1如何對應至圖一指令格式内一 8位 元運算碼位元組1 〇 2之位元值。表格2 〇 〇呈現了 一 8位元運 异碼圖2 0 0的範例,其將一 8位元運算碼項目丨〇 2所具有之 最多2 5 6個值,關聯到對應之微處理器運算碼指令2 〇 1。表 格200將運异碼項目1〇2之一特定值,譬如〇2H,映射至一 對應之運算碼指令201 (即指令丨〇 2 2 0 1 )。在χ86運算碼 圖的例子中,為此領域中人所熟知的是,運算碼值丨4Η係 映射至χ86之進位累加(Add With Carry,ADC)指令,此 才曰令將一8位元之直接(immediate)運算元加至架構暫存 器AL之内含值。熟習此領域技術者也將發覺,上文提及之 x86 前置碼ιοί (亦即66H、67H、〇FH、FOH、F2H 及 F3H)係 貫際的運算碼值2〇1,其在不同脈絡下,指定要將特定的 架構延伸項應用於隨後之運算碼項目1 02所指定的運算。 =如,在運算碼14H (正常情況下,係前述之ADC運算碼) W加上前置碼〇FIi,會使得X86處理器執行一「解壓縮與插
第20頁 1224284 五、發明說明(15) 入低壓縮之單精度浮點值」(Unpack and Interleave
Low Packed Single-Precision Floating-Point
Values )運算,而非原本的ADC運算。諸如此χ86例子所述 之特徵’在現代之微處理器中係部分地致能,此因微處理 器内之指令轉譯邏輯是依序解譯一指令丨〇 〇的項目1 〇卜 103^。所以在過去,於指令集架構中使用特定運算碼值作 為前置碼101 ,可允許微處理器設計者將不少先進的架構 特徵納入相容舊有軟體之微處理器的設計中,而不會對未 使用那些特定運算碼狀態的舊有程式,帶來執行上二負面 衝擊。例如,一未曾使用χ86運算碼〇FH的舊有程式,仍可 在号日的x86微處理态上執行。而一較新的應用程式,萨 著運用x86運算碼〇FH作為前置碼m,就能使 ^ 構特徵,如單一指令多重資料(simd)運 异,條件移動運算等等。 [ 0037J儘管過去已藉由指定可用的(即多餘 派的)運算碼值2〇1作為前置碼1〇1 特曰 記/指標1 0 1戋浼屮i匕八〗n !、 ^ 丹α永構特徵“ &入& 逸出私令101),來提供架構特徵,作許多 ::π:10。已因為-非常直接的理由,而無法 二運多餘的運算碼值已被用完’也就 ;派為運算碼項目102或前置碼項目101 設計者得在择ί Γ ΐ 微處理11架構中’因而迫使 W者付在增添架構特徵與保留舊有程式之相容性兩者= 1224284 五、發明說明(16) ---* 作抉擇。 [0 0 3 8 ]值得〉主意的是,圖二所示之指令2 0 1係以一般 ^的方式表示(亦即124、186),而非具體指涉實際的運 异(如進位累加、減、互斥或)。這是因為,在一些不同 的微處理器架構中,完全佔用之運算碼圖200在架構上, 已將f入較新進展的可能性排除。雖然圖二例子所提到 的,疋位7L的運算碼項目丨〇 2,熟習此領域技術者仍將發 ,,運算碼102的特定大小,除了作為一特殊情況來討論 70全佔用之運异碼結構2 〇 〇所造成的問題外,其他方面與 問題本身並不相干。因此,一完全佔用之6位元運算碼圖 將有64個可架構化地指定之運算碼/前置碼2〇1,並將無法 提供可用/多餘的運算碼值作為擴充之用。 [ 0 0 3 9 ]另一種替代做法,則並非將原有指令集完全 廢棄,以一新的格式1〇〇與運算碼圖2〇〇取代,而是只針對 一部=既有的運算碼201,以新的指令意含取代,如圖二 =運异碼40H至4FH。以這種混合的技術,微處理器就可以 單獨地以下列兩種模式之一運作··其中舊有模式利用運算 碼4 0H-4FH,係依舊有規則來解譯,或者以另一種改良模 式(enhanced mode)運作,此時運算碼4〇H-4FH則依加強 之架構規則來解譯。此項技術確能允許設計者將新特徵納 入設計,然而,當符合舊有規格之微處理器於加強模式運 作時,缺點仍舊存在,因為微處理器不能執行任何使用運 算碼40H-4FH的應用程式。因此,站在保留舊有軟體相容 性的立場,相容舊有軟體/加強模式的技術並非一最佳選 1224284 五、發明說明(17) 擇。 [0 0 4 0 ]然而,對於運算碼空間已完全佔用之指令集 2 0 0,且該空間涵蓋所有於符合舊有規格之微處理器上執 行之應用程式的情形,本案發明人已注意到其中運算碼 2 0 1的使用狀況,且他們亦觀察出,雖然有些指令2 〇 2是架 構化地指定,但未用於能被微處理器執行之應用程式中。 圖二所述之指令I F 1 2 0 2即為此現象之一例。事實上,相 同的運算碼值202 (亦即F1H)係映射至未用於以6指令集 架構之一有效指令202。雖然該未使用之χ86指令202是有 效的χ86指令2 0 2,其指示要在χ86微處理器上執行一架構 化地指定之運算,但它卻未使用於任何能在現代χ86微處 理為上執行之應用程式。這個特殊的χ 8 6指令2 〇 2被稱為電 路内模擬中斷點(In drcuit Emulation Breakpoint) (亦即ICE BKPT,運算碼值為F1H ),之前都是專門使用 於一種現在已不存在之微處理器模擬設備中。ICE βκρτ 2 02從未用於電路内模擬器之外的應用程式中,並且先前 使用ICE BKPT 202之電路内模擬設備已不復存在。因此 在χ86的情形下,本案發明人已在一完全佔用之指令集架 構200内發現一樣工具,藉著利用一有效但未使用之運算 碼202,以允許在微處理器的設計中納入先進的架構特 徵,而不需犧牲舊有軟體之相容性。在一完全佔用之指令 ί架構2〇0中,本發明利用一架構化地指定但未使用之運 ^碼202 ’作為一指標標記’以指出其後之一η位元前置 碼,因此允許微處理器設計者可將最多^個最新發展之架 1224284 五、發明說明(18) 構特徵,納入微處理器的設計中,同時保留與所有舊 體完全的相容性。 、 % 一 [0 04 1 ]本發明藉提供一η位元之延伸中斷抑制指定元 前置碼,、=使用前置碼標記-延伸前置碼的概念,因而可 允許程式員於一延伸指令的整個執行過程,指定要抑制豆 對應之中斷處理。本發明的另一實施例,則將該延伸指^ 與其後特定數量指令之執行,排除在微處理器之中斷處^ 機制外。本發明現將參照圖三至九進行討論。 [〇〇42]現請參閱圖三,其為本發明之延伸指令格式 3〇〇的方塊圖。與圖一所討論之格式1〇〇非常近似,7該^伸 格式3 0 0具有數量可變之指令項目3〇卜3〇5,每」項目 設定為一特定值,集合起來便組成微處理器之一特定指令 3〇〇。該特定指令30 0指示微處理器執行一特定 ^ : 將兩運算元相加,或是將一運笞元從 疋 σσ 次疋胂逑介兀攸逞憶體搬移至微處理 器内。一般而言,指令3 0 0之運算碼項目3〇2指定 之特定運算,而選用之位址指定元項目則 J J异碼302後’以指定該特定運算之相關附加資訊, 疋:果何軍執行該運算、運算元所在之暫存器、用於計算來 元之記憶體位址的直接與間接資料等等。指 / /式30 0亦允許程式員在一運算碼3〇2前加上前置碼項目 3。1传匕ΐ,2所指定之特定運算執行時,前置碼項目 係用來指不是否要使用既有的架構特徵。 [=43]然而’本發明的延伸指令3〇〇係前述圖一指令 式00之一超集合(SUper t) ,i ’ 丹具有兩個附加項目
HE
第24頁 1224284 五、發明說明(19) 3 0 4與3 0 5,可被選擇性作為指令延伸項,並置於一格式化 延伸指令300中所有其餘項目3〇丨-3 0 3之前。這兩個附加項 目304與305,其為延伸指令3〇〇的一部份,可讓程式員指 定是否要抑制或排除延伸指令3 〇 〇之中斷處理。選用項目 304與305係一延伸指令標記3〇4與一延伸中斷抑制前置碼 305。該延伸指令標記3 04係一微處理器指令集内另一依據 架構所指定之運算碼。在一x86的實施例中,該延伸指令 標記304,或稱為逸出標記3〇4,係用運算碼狀態ηΗ,其 為早先使用但未廢棄之;[CE BKPT指令。逸出標7己3〇4向微 處理器邏輯指出,該延伸前置碼3〇5,或稱延伸特徵指定 兀30 5,係跟隨在後,其中該延伸前置碼3〇5指定要抑制延 伸指令30 0之中斷處理。在一具體實施例中,逸出標記3〇4 指出,一對應延伸指令3 0 0之附隨部分3〇卜30 3及30 5指定 了微處理器所要執行之運算。中斷抑制指定元3〇5,或稱 延伸前置碼3 0 5,則指定該運算需連續地執行,亦即不受 待處理中斷(pending interrupt)的影響,而一符合舊有 規格之微處理器在其他情況下則會允許待處理中斷。隨著 該運异執行完成,中斷處理重新被致能。在另_實施例 中’延伸前置碼3 0 5指出該運算涵蓋了複數個指/,^中 延伸指令300是第一個指令,並且由這些指令所指定的該 運算,在執行期間必須不受中斷處理影響而暫停。 [〇〇44]此處將本發明之指令層級之中斷抑\彳技術作 個概述。一延伸指令3 00係組態為,指定一運瞀 有微處理器指令集來執行,其中延伸指令3〇〇的執^係於
1224284 五、發明說明(20) ------- 處理一待處理中斷之前完成。延伸指令3 0 0包括該 令集之運算碼304其中之一以及一〇位元之延伸前置心 305。所選取之運算碼304作為一指標3〇4,以指出指人 是一延伸特徵指令300 (亦即,其指定了微處理器架&利〇 延伸項),而該η位元之特徵前置碼3〇5則指出要抑之 處理。在一具體實施例中,延伸前置碼3〇5具八位元的 小,可指定要抑制一指令及後續最多“5個指令的中斷 理,或是指定要抑制較少數量之指令的中斷處理,再加^ 八位兀延伸丽置碼3 0 5的剩餘位元值所指定之其他延伸 徵。η位元前置碼的實施例,則最多可指定要抑制化個护 令的中斷處理,或是像前述抑制中斷處理與其他曰 的各種組合。 心1甲将徵 [0 045 ]現請參閱圖四,一表格4〇〇顯示依據本發明, 中斷抑制的指定如何映射至一8位元延伸前置碼實施例之 位π邏輯狀態。類似於圖二所討論之運算碼圖2〇〇,圖四 之表格400呈現一8位元之延伸前置碼圖4〇〇的範例,其將 一8位元延伸前置碼項目3〇5之最多256個值,關聯到二符 合舊有規格微處理器中,一些指令4〇1 (如E34、E4D等) 相對應的中斷抑制。在一χ86的具體實施例中,本發明之8 位元延伸特徵如置碼3 〇 5係提供給中斷抑制4 Q 1 (亦即Ε 〇 Q 一 EFF )的指令層級控制之用,該些中斷抑制4〇1乃現行 指令集架構未能另行指定的。 [0 0 4 6 ]圖四所示之延伸特徵4 〇 1係以一般性的方式表 示’而非具體指涉實際的特徵,此因本發明之技術可應用
第26頁 1224284 五、發明說明(21) 於各種不同的架構延伸項4 0 1與特定的指令集架構。熟習 此領域技術者將發覺,許多不同的架構特徵4 〇1,其中一 些已於上文提及,可依此處所述之逸出標記3〇4/延伸前置 碼3 0 5技術將其納入一既有之指令集。圖四之8位元前置碼 實施例提供了最多256個不同的特徵401,而一η位元前置 碼實施例則具有最多2 η個不同特徵4 0 1的程式化選擇。 [0047]現請參閱圖五,其為解說本發明用以執行選 擇性的中斷抑制之管線化微處理器500的方塊圖。微處理 器5 0 0具有二個明顯的階段類型:提取 '轉譯及執行。提 取階段具有提取邏輯5 0 1,耦接至匯流排單元5丨6,以便從 通常位於微處理器5 0 0外部之記憶體5 1 5提取指令或巨指令 (m a c r 〇 i n s t r u c t i ο η )。匯流排單元5 1 β係藉由一系統匯流 排51 9耦接至記憶體515。提取邏輯501將所提取之巨指令 送至一巨^曰令彳丁列5 0 3,由一轉譯邏輯5 〇 5進行讀取。轉譯 邏輯505耦接至一微指令佇列5〇8。轉譯邏輯5〇5包括一延 伸轉譯邏輯5 0 6。執行階段則具有一執行邏輯5〇9,其内包 含一延伸執行邏輯510。 [0048 ]依據本發明,於運作時,轉譯邏輯5〇5經由 NIP匯流排,將下一指令的指標或位址(ΝΙρ)送至提取邏輯 501。提取邏輯501藉由指令匯流排5〇2,發出下個所要提 取指令的位址至匯流排單元5丨6。匯流排單元5丨6藉由系統 匯流排5 1 9與記憶體5 1 5溝通,以提取巨指令,並經由指令 匯流排502將這些指令送至提取邏輯5〇1。熟悉此領域技術 者將發覺,圖五係經過簡化以求清楚,所以並未包含此領
1224284 五、發明說明(22) 域常用之快取巨指令的機制,如内部指令快取記憶體(圖 中未顯示)。依據本發明,提取邏輯5 〇 1接著將經過格式化 的指令依執行順序送入指令佇列5〇3。這些指令從指令佇 列503被提取,而送入轉譯邏輯5〇5。轉譯邏輯5〇5將每個 送入的指令轉譯為一對應的微指令序列,以指示微處理器 5 0 0執行由巨指令所指定的運算。依據本發明,延伸轉譯 邏輯5 0 6偵測那些具有延伸前置碼標記的指令,以進行對 應之延伸中斷抑制前置碼的轉譯。在一χ86的實施例中, 延伸轉譯邏輯506組態為偵測其值為πη之延伸前置碼標 β己’其係X 8 6之I C Ε Β Κ Ρ Τ運算碼。延伸微指令襴位則提供 於彳政扎令仔列5 0 8中,以指定要抑制由該指令附隨部分所 指定之運算的中斷處理。其他延伸轉譯邏輯5〇6的實施 例’則可於延伸微指令欄位中,指定要抑制本發明之一第 一巨指令與後續一定數量巨指令的中斷處理。 [0 0 4 9 ]微指令從微指令仔列5 〇 8被送至執行邏輯 5 09 ’其中延伸執行邏輯510組態為執行微指令所指定之特 定運算。對於一轉譯後之巨指令所對應之微指令而言,在 其執行期間若有一中斷被致能,則微處理器5 〇 〇中之中斷 控制邏輯5 1 8會在一或多個中斷接腳5 1 7檢測到此中斷的致 此。中斷控制邏輯518透過訊號ΙΝΤ告知微處理器内的邏 輯’有一中斷正等待處理。在沒有本發明之延伸指令的情 況下,轉譯邏輯505會經由匯流排504發出中斷處理程式的 位址至提取邏輯,以啟始一連串的中斷處理事件。同時, 執行邏輯5 0 9完成現行微指令的執行,並將管線清空。因 1 第28頁 1224284 五、發明說明(23) 此,微處理器5 0 0開始提取、轉譯及執行指令,以確認該 待處理之中斷,並判斷哪一個裝置致能了 L I n τ 5 1 7。當這 些指令執行時,執行邏輯經由INTACK匯流排513,發出"一 中斷確認匯流排週期的要求至匯流排單元5丨6。匯流排單 元5 1 6藉由位於系統匯流排5 1 9之一可程式中斷控制器 5 1 4,處理此中斷確認匯流排週期,以判斷致能L丨Ντ 5工7 的裝置。此時,通常會從LI NT 517收到作業系統之一特定 中斷服務常式(亦稱為中斷向量)的位址,其被指派來服務 致能中斷的裝置。匯流排單元516提取中斷向量,並經由 I N T A C K匯流排5 1 3送至執行邏輯5 〇 9。執行邏輯5 〇 9接著柄 由I N T A D D R匯流排5 1 1將此向量送至轉譯邏輯$ 〇 5。轉釋邏 輯5 0 5透過提取匯流排5 0 4,發出此中斷向量至提取邏輯 5 0 1,而提取邏輯5 0 1便開始提取此中斷向量所對應之指 令,以處理經確認之中斷。為簡明起見,前面關^中^處 理的描述,省略了被中斷應用程式之狀態如何儲存及回^ 的特定細節。熟悉此領域技術者將發覺,這些細節是依本 發明所應用之微處理器架構而定。 & [0 0 5 0 ]當本發明之延伸指令被提取執行時,轉譯邏 輯5 0 5内之延伸轉譯邏輯5 0 6會將對應微指令序列内之延^申 微指令攔位(圖中未顯示)加以組態,以指出中斷處理將被 抑制,直到對應之微指令序列執行完畢為止。因此,執行 邏輯509内之延伸執行邏輯510會確保這些微指令完成執T 行,而不受中斷。當一中斷經由LINT 517被致能,‘义^ 述,轉譯邏輯5 0 5會等到微指令執行完畢後,才啟始_ _
第29頁 1224284 五、發明說明(24) 斷處理程序。執行邏輯509藉由致能CMP訊號5 1 2,以指出 微指令已執行完畢。中斷控制邏輯518藉由致能GO I NT訊號 507,以告知轉譯邏輯505執行已完成。當⑶I NT 507被致 能,轉譯邏輯5 0 5會啟始中斷處理程序,如前所述。 [0051]因此,延伸執行邏輯510經由g〇I NT訊號507向
轉譯邏輯50 5指出,中斷處理會藉由設定CMP訊號512而啟 動。在沒有本發明之延伸指令的情況下,當一中斷經由 LINT 517產生時’CMP訊號512於現行的微指令執行後即被 設定。若有一延伸指令,其指示要抑制中斷,則延伸執行 邏輯5 1 0延後設定C Μ P訊號5 1 2,直到所有對應的微指令執 行完畢為止。 [ 0 0 52 ]如前所述,大多數的微處理器架構都有提供 中斷處理的致能與除能,且通常僅運作於並未指定給應月 程式的特權層級。在一x86相容的微處理器中,應用程" 是不能設定及清除x86旗標暫存器(圖中未顯示):中 能位元(未顯示)@。但本發明提供了_種㈣ 式員可驅使微處理器5 0 0於指令層級除能中斷,以使 的(at〇mic)運算可以不受中斷地執行。此外,本發明只 :抑制的指定還可取代其他架構功能對
在一x86實施例中,依本發明於指令層 =制中if,將取代旗標暫存器内之中斷致能位以斤做曰存 [〇〇53]熟習此領域技術者將發現,圖五 理器5 0 0係現代之管後仆料卢 厅不之微處 s綠化微處理益50經過簡化的結果。事
第30頁 1224284 五、發明說明(25) 貝上’現代的管線化微處理器500最多可包含有20至30個 不同的管線階段。然而,這些階段可概括地歸類為方塊圖 所示之三個階段,因此,圖五之方塊圖5〇〇可用以點明前 述本毛明貝%例所需之必要元件。為了簡明起見,微處理 裔5 0 0中無關的元件並沒有顯示出來,亦未加以討論。 [0 0 5 4 ]現請參閱圖六,其為本發明於一微處理器5 〇 〇 中’用以指定要抑制一延伸指令之對應中斷處理的延伸前 置碼60 0之一不範實施例方塊圖。中斷抑制前置碼6〇〇具8 位元大小,且包括一中斷抑制欄位6〇 i。在一具體實施例 中抑制搁位6 〇 1彳曰& 了在該延伸指令執行時,要排除對 應的中斷處理。另一具體實施例則包含可指定要排除該延 伸指令與後續最多2 5 5個指令之中斷處理的中斷抑制襴位 6 0 1。中斷抑制期間所執行之指令數係由抑制襴位6 〇 1來顯 示。 [0055]現請參閱圖七,其為圖五之微處理器5〇〇内轉 譯階段邏輯7 0 0之細部的方塊圖。轉譯階段邏輯7 〇 〇具有— 指令緩衝器704,其提供一延伸指令至轉譯邏輯7〇5。轉譯 邏輯70 5係耦接至具有一延伸特徵欄位7〇3之一機器特定暫 存器(machine specific register) 70 2。轉譯邏輯 70 5 具 一轉譯控制器70 6,其提供一除能(DISABLe)訊號7〇7至一 逸出指令偵測器7 0 8及一延伸前置碼轉譯器7 〇 9。逸出指令 偵測器708耦接至延伸前置碼轉譯器7〇9及一指令轉譯器 710。延伸前置碼轉譯器709與指令轉譯邏輯710存取一控 制唯讀記憶體(ROM) 7 11,其中儲存了對應至某些延伸指八
1224284 五、發明說明(26) 之樣板(temp late)微指令序列。轉譯邏輯70 5亦包含一微 指令缓衝器7 1 2,其具有一運算碼延伸項欄位7 1 3、一微運 算碼欄位714、一目的欄位715、一來源攔位716以及一位 移欄位7 1 7。 [0 0 5 6 ]運作上,在微處理器通電啟動期間,機器特 定暫存器702内之延伸欄位703的狀態係藉由訊號啟動狀態 (signal power-up state)701決定,以指出該特定微處理 器是否能轉譯與執行本發明之延伸指令。機器特定暫存器 7 0 2將延伸特徵攔位7 0 3之狀態送至轉譯控制器7 〇 6。轉譯 控制邏輯70 6則控制從指令緩衝器7 04所提取之指令,f依 照延伸.轉譯規則或習用轉譯規則進行轉譯。若延伸特徵被 除能’則具有被選為延伸特徵標記之運算碼狀態的指令, 會依習用轉譯規則進行轉譯。在一 X 8 6的具體實施例中, 選取運算碼狀態F 1 Η作為標記,則在習用的轉譯規則下, 遇到?111會造成不合法的指令異常(^(:邙1;丨011)。在延伸轉 譯功能被除能的情況下,指令轉譯器7 1 0轉譯所有送入的 指令704,並對微指令712的所有欄位7 13_7Π進行組雖。 然而,在延伸轉譯規則下,若遇到標記,則會被逸出^指令 偵測為7 0 8 ^[貞測出來。逸出指令镇測器7 〇 8會指示延伸前置 碼轉譯器709,依據延伸轉譯規則來轉譯延伸指令的延&伸 如置碼部分’並組悲運鼻碼延伸項搁位了 1 3,以指干要# 制延伸指令之對應微指令序列的中斷處理。在另胃一71" Ρ #力貫施例 中,延伸前置碼轉譯器709依據延伸轉譯規則來轉譯延 指令的延伸前置碼部分,並對一連串巨指今 伯7炙所有相關微 1224284 五、發明說明(27) 指令的運算碼延伸項欄位71 3進行組態’而該延伸指令為 這串巨指令的第一個指令,且延伸前置碼轉譯器7 〇 9已從 一延伸前置碼判斷得知,該延伸指令與後續一些巨指令要 連續地執行。指令轉譯器71 0則轉譯該延伸指令之其餘部 分,並組態微指令712的微運算碼欄位714、來源攔位 716、目的攔位715及位移欄位717。某些特定指令會導致 對控制R Ο Μ 1 0 11的存取,以獲取對應之微指令序列樣板。 經過組態之微指令7 1 2被送至一微指令佇列(圖中未顯 示),由處理器進行後續執行。 [ 0 0 5 7 ]當轉譯邏輯7 0 5經由ΙΝΤ訊號718被告知有一中 斷等待處理時,其轉譯動作會持續到GO I NT訊號719被設 定’亦即現在所執行的一連續微指令序列已執行完畢為 止。當G0INT 719被設定,轉譯邏輯705即啟動如前述之中 斷處理程序。在所有的實施例中,轉譯邏輯7〇5係於啟動 中斷處理程序前,將所有待執行的巨指令未受中斷地轉譯 完成。 [0058]現請參閱圖八,其為圖五之微處理器5〇〇内執 行階段邏輯80 0的方塊圖。執行階段邏輯8〇〇具有一產生 CMP訊號8 0 9之抑制計數邏輯8〇6,以及一中斷 術,其經由瞻K匯流画,啟動一中斷二二 :ί I: J : 仃邏輯80 5從一延伸微指令緩衝器801接 4楗扣:丄並從資料緩衝器8〇2 — 8〇4接收資料運算元。在 ,八之不範貝麵例中,延伸執行邏輯亦 一 存器川之一中斷致能位湖,以判斷作業系統軟旗:是暫否
第33頁 1224284 五、發明說明(28) 已致能中斷處理。 [ 0 0 59 ]實際運作上,微指令及其相關運算元係透過 延伸微指令緩衝器801及運算元緩衝器8〇2_8〇4提供而加以 執行。纟習知巨指令所對應的微指令執行期間,依據習知 的中斷處,規則,抑制计數邏輯8 〇 6要確保c Μ p訊號8 〇 9維 持設定狀態,以顯示中斷處理可能會發生。在一具體實施 例中若I Ε 8 1 2未被设定,此表示中斷被除能,則⑶ρ 809亦未被設定。當執行時要抑制中斷之微指令入 時,抑制計數邏輯806會等到所有延伸微指令 :設定CMP訊號809。在—實施例中,一連續微指令序列之 第-微指々的-延伸襴位(圖中未顯示)指出,有某數量之 微指令要不受中斷地連續執行。在此實 C二8,,抑制計數邏咖亦於後 二二 其數量’以確保能不受中斷地執行。如前面所;:= 812的狀態。當一中斷被:理/取標暫存器811之1E 麗ck匯流排808,啟中斷媒認邏細會經由 待處理中斷之向量。m斷;?匯流排程序,以決定 至轉譯邏m圖中未^示^會經由INT ADDR匯流排810送 [0 0 6 0 ]此處對太| 部分所述)做個整理。V由之/用要技術特徵(如圖三至八 際未使用之運算碼作為Π:已依據架構指定、但實 供-種可程式化的標記1置 、口y中提 中,前置碼係用以指示 / 4體““列 付口售有規袼之微處理器只抑制 1224284 五、發明說明(29) 該延伸指令之中斷處理。在另一不同的實施例中,前置 則指不該符合舊有規格之微處理器抑制該延伸指令盥碎 -定數量指令之中斷處理。當該延伸指令被提取時?依二 本發明,延伸轉譯邏輯透過延伸微指令中運算碼延 位的内容指出,該延伸指令之對應微指令序列的中斷處王= 要被抑制。在另一實施例中,延伸前置碼指定要抑制一 應延伸指令與後續一定數量指令的中斷處理,延伸 ^ 輯則決定後續所要連續執行之指令的數量,並依此組離: 伸微指令攔位,以確保能不受中斷地執行。 〜 [ 0 0 6 1 ]因此,本發明賦予程式員與/或自動化 編澤裝置(automated code compilation device) 一 工種 機制,可用以指示符合舊有規格之微處理器去抑制單一 =或=令群的中斷處理,藉以克服現有微處理器架構的‘ 這些現存架構多將此類問題交由作業系統常式去冷 f。此處應用程式員被賦予了一種可彈性編寫連續二 制,因為他們並不限於僅能使用一或兩種 =綠 性的特殊用途巨指令。 木崎保運續 口 [ 00 62 ]現請參閱圖九,其為描述本發明對可使程式 貝於指令層級取代微處理器内之中斷處理的指令, 塊9 0 2轉m订的方法之運作流程圖9GG。流程開始於方 ^ -中一個、组態有延伸特徵指♦的程式,被送至微 處理器。流程接著進行至方塊9〇4。 做 [j063j於方塊9〇4中,下一個指令被提取,以 处理态之官線。流程接著進行至判斷方塊906。 t
第35頁 1224284 五、發明說明(30) i列。在-x86的Λ是否包含一延伸逸出碼-延伸前置碼 t斷抑制# $ -、汽苑例中,該評估係用以偵測其後為一 中斷抑制才日疋疋項目靈瞀 到該延伸逸出碼與後;::馬二 1 (ICE BKPT)。若積測 未偵測到該延伸逸出:盥延伸;程進^方細。若 9〇8。 ^ 、1甲知疋兀,則流程進行至方塊 一對[庫〇= a於方,9Q8中’微處理器内之延伸轉譯邏輯在 a序:序:的延伸項欄位中1定要在該對應微指 心。。丁%,抑制中斷處理。流程接著進行至方塊 =6^於方塊91〇中’該指令之所有其餘部分被 ::決疋:指:運算、暫存器運算元之位置、記憶體位 既有微處理器指令集,由前置碼所指 疋 有架構特徵的使用。流程接著進行至方塊9丨2。 [0067 ]於方塊912中,轉譯邏輯產生一延伸微指令 :進=定該指定運算及其對應的運算碼延伸 者進仃至方塊914。 伐 =8]於方㈣4中’微指令序列在由轉譯裝置處理 ^依執仃順序运至一微指令佇列,由微處理器加以執 4丁。流裎接著進行至判斷方塊9丨6。 [0 0 6 9 ]於判斷方塊91 6中,進行評估以判斷是否 處理的中斷。若沒有,則流程進行至方塊926。若有,貝、 '流程進行至方塊918。 ' 1224284 五 、發明說明(31) 現行微指令執行完成。流程 [ 00 70 ]於方塊918中 接著進行至判斷方塊92〇 c [ 0071 ]於判斷方塊92〇中,評估一後 抑制欄位,以判斷其是否要不受中斷地執行。#是,= 程進行至方塊922。若否’則流程進行至方塊似。抓 連於即H922中,由於在判斷方塊92°中已偵測 到連、,·貝運#,即啟動下個微指令之執行,而浐 方塊918 ’其中下個微指令即變成現行執行的微指令仃, [ 0073 ]於方塊924中,由於在方塊9U中已 中斷,y個微指令之延伸項攔位未指定抑制 所以微處理器内之轉譯邏輯在處理待處理中 = 控制權轉移至中斷處理程式之微碼,以保存現行執= 用程式的狀態。流程接著進行至方塊92 6。 … [00 74]於方塊926中,本方法完成。 雖然本發明及其目的、特徵與優點 述,其匕實施例亦可包含在本發明之範圍内。例如,、、敘 明已就如下的技術加以敘述:利用已完全佔用 丄本發 選 構内一單一、未使用之運算碼狀態作為標記,以=令集架 之延伸特徵前置碼。但本發明的範圍就任一方=出其後 不限於已完全佔用之指令集架構,或未使用的指1看,並 單一標記。相反地,本發明涵蓋了未完全映射^二:或是 具已使用運算碼之實施例以及使用一個以上之指二令集、 實施例。例如,考慮一沒有未使用運算碼狀態^二榡記的 槿。太發明+ 一目艚眚谂例包含了潠跑一作^莪令集架 ”、、逸出標記之 1224284
另 五、發明說明(32) 運算碼狀態,其中選取榡準係价士 ^ m^ 1 卡知依市場因素而決定 體實施例則包含使用運算石馬之_ 算碼狀態7FH的連續出現。因此 用一標記序列,其後則為一 y ^ ^ ^ n位兀之延伸前置碼,可分故 程式員/編譯員於一既有之料卢田士 终 〜傲處理器指令集中,指定要 制個別指令或指令群之中斷處理 特殊組合作為標記,如 具 用-標記序列,其後則為‘本發明之本貝係在於使 運 [0 0 7 6 ]此外,雖然上文係利用微處理器為例來解說 本發明及其目的 '特徵和優點,熟習此領域技術者仍可察 覺’本發明的範圍並不限於微處理器的架構,而可涵蓋其 他形式之可程式化裝置,如訊號處理器、工業用控制器 (industrial controller )、陣列處理器及其他同類裝 置。 總之,以上所述者,僅為本發明之較佳實施例而已, 當不能以之限定本發明所實施之範圍。大凡依本發明申請 專利範圍所作之均等變化與修飾,皆應仍屬於本發明專利 涵蓋之範圍内,謹請貴審查委員明鑑,並祈惠准,是所 至禱。
第38頁 1224284 圖式簡單說明 【圖式簡單說明】 [0 0 2 2 ]本發明之前述與其它目的、特徵及優點,在 配合下列說明及所附圖示後,將可獲得更好的理解: [0 0 2 3 ]圖一係為一先前技術之微處理器指令袼式的 方塊圖; [0024]圖一係為一表格,其描述一指令集架構中之 指令,如何對應至圖一指令格式内一8位元運算碼位元組 之位元邏輯狀態; ” [0 0 2 5 ]圖三係為本發明之延伸指令格式的方塊圖; 〇 [ 0 0 2 6 ]圖四係為一表格,其顯示依據本發明,延伸 架構特徵如何對應至一8位元延伸前置碼實施例中位 邏輯狀態; j [ 0 0 2 7 ]圖五係為使用本發明之選擇性 之管線化微處理器的方塊圖; 卩制控制 [0 0 2 8 ]圖六係為本發明於一微處理器中,用以於— 要排除中斷處理的延伸前置碼之具體實施例方塊圖;曰疋 [ 0 02 9 ]圖七係為圖五微處理器内轉 部的方塊圖; 亨丨“又璉輯之細 [ 0 03 0]目八係為圖五微處理器内執行 部的方塊圖;以及 、W <、,,田 [ 0 0 3 1 ]圖九係為描述本發明於微處理哭中 指令之相關中斷處理的方法之運作流裎圖。 、制 圖號說明: 1224284 圖式簡單說明 100 指 令 格 式 101 前 置 碼 102 運 算 碼 103 位 址 指 定 元 200 8位元運算碼圖 201 運 算 碼 值 202 運 算 碼F1H 300 延 伸 指 令 格 式 301 前 置 碼 302 運 算 碼 303 位 址 指 定 元 304 延 伸 指 令 標 記 305 延 伸 前 置 碼 400 8位元前置碼圖 401 架 構特 徵 500 管 線 化 微 處 理器 501 提 取 邏 輯 502 指 令 匯 流 排 503 巨 指 令 佇 列 504 匯 流 排 505 轉 譯 邏 輯 506 延 伸 轉 譯 邏 輯 507 G 0 I N T訊號 508 微 指 令 佇 列 509 執 行 邏 輯 510 延 伸 執 行 邏 輯 511 INT ADDR 匯 流 排 512 CMP訊號 513 INTACK 匯 流 排 514 可 程 式 中 斷 控制器 515 記 憶 體 516 匯 流 排 單 元 517 中 斷 接 腳 518 中 斷 控 制 邏 輯 519 系 統 匯 流 排 600 延 伸 前 置 石馬 601 中 斷抑 制 爛 位 700 轉 譯 階 段 邏 輯 701 啟 動 狀 態 訊 號 702 機 器 特 定 暫 存器 703 延 伸 特 徵 欄 位 704 指 令 緩 衝 器 705 轉 譯 邏 輯 706 轉 譯 控 制 器 707 除 能 訊 號 708 逸 出 指 令 偵 測器 709 延 伸 前 置 碼 轉 譯器
第40頁
1224284
圖式簡單說明 710 指令轉譯器 711 控制唯讀記憶體 712 微指令緩衝器 713 運算碼延伸項欄位 714 微運算碼欄位 715 目的攔位 716 來源欄位 717 位移攔位 718 INT訊號 719 G 0 I N T訊號 800 執行階段邏輯 801 延伸微指令緩衝器 802 資料緩衝器 803 資料緩衝器 804 資料緩衝器 805 延伸執行邏輯 806 抑制計數邏輯 807 中斷確認邏輯 80 8 INTACK匯流排 809 CMP訊號 810 INT ADDR匯流排 811 旗標暫存器 812 9 0 0〜 中斷致能位元 9 2 6 用以在微處理器 中抑制 中斷處理的方法之運作
第41頁
Claims (1)
- £1 虎 9212^71 六、申請專利範圍 1 · 一種可在一微處理器内進行指令層級之中斷抑制抑 裝置,包含: I刺的 一轉譯邏輯,用以將一延伸指令轉譯成對應的微指令, 其中該延伸指令包含: 一延伸前置碼,用於指定中斷處理要暫停至該延 令執行完畢;以及 曰 一延伸前置碼標記,其係一既有指令集内原本依據架 構指定之運算碼; 〃 一延伸執行邏輯,耦接炱該轉譯邏輯,用以接收該對應 的微指令,並在處理〆待處理中斷前,完成該對應^ 指令的執行。 2. 如申請專利範圍第丨項所述之裝置,其中該延伸指令更 包含該既有指令集中之指令項目。 3. 如申請專利範圍第2項所述之裝置,其中該指令項目指 定該微處理器所要執行之運算,且該待處理中斷原本曰應 在該對應微指令完成執行前處理。 ^ 4 ·如申晴專利範圍第3項所述之裝置,更包含: -::票暫存器’耦接至該延伸執行邏輯,組態為指定要 微處理器之中斷處理’其中該延伸前置碼所指 疋之中斷抑制係取代該旗標暫存器所做的指定。 5·如申請專利範圍第1項所述之裝 輯包含: 具中該延伸執行邏 一抑制計數邏輯,組態為判斷該對庫 成。 对應微指令執行的完1224284 -^^2123371六、申請專利範圍 6·如申請專利範圍第丨項所述之裝置,其中該轉譯邏輯判 斷該延伸指令執行完成,且該轉譯邏輯排除該待處理 中斷的處理。 7 ·如申請專利範圍第丨項所述之裝置,其中該延伸前置碼 包含8個位元。 、 8 ·如申請專利範圍第1項所述之裝置,其中該延伸前置碼 包含: 、 一中斷抑制攔位,用以指定要抑制中斷處理,直至複數 個巨指令執行完畢,其中該延伸指令係該些巨指令之 一第一巨指令。 •如申5青專利範圍第1項所述之裝置’其中該既有指令隼 包含x86指令集。 I 0 ·如申請專利範圍第1項所述之裝置,其中該延伸前置碼 標記包含x86指令集之運算碼1"1 (ICE BKPT ) 。 * II ·如申請專利範圍第1項所述之裝置’其中該轉譯邏輯包 含: 一逸出指令偵測邏輯,用於偵測該延伸前置碼標記; 一指令轉譯邏輯,用以決定該微處理器要執行之運 算,並於該對應微指令内指定該運算;以及 一延伸轉譯邏輯,耦接至該逸出指令偵測邏輯與該指 令轉譯邏輯,用以於該對應微指令内指定要抑制中 理。 充一既有指令集以選擇性地抑制中斷的微處理 斷處理 1 2. —種擴 器,包含 1224284$:指♦’組態為指定與該中斷相關之中斷處理要 ,抑制,直至該延伸指令執行完畢,其中該延伸指 ^含該既有指令集其中-選取之運算碼,其後則 接者一η位元之延伸前置碼,該選取之運算碼指出該 2:指令’而該η位元之延伸前置碼則指定要抑制中 斷處理;以及 轉澤器,組態為接收該延伸指令,並產生一微指令 序列,以指示一微處理器抑制處理該中斷,直至該 微指令序列執行完畢。1 3·如申請專利範圍第1 2項所述之微處理器,其中該延伸 指令更包含: 其餘指令項目,組態為指定該微處理器所要執行的運 算。 1 4 ·如申請專利範圍第1 2項所述之微處理器,其中該η位元 之前置碼包含: 一中斷抑制攔位,組態為指定要抑制中斷處理,直至 複數個巨指令執行完畢,其中該延伸指令係該些巨 指令中第一個巨指令。1 5·如申請專利範圍第丨2項所述之微處理器,其中該延伸 指令指示該微處理器取代由一旗標暫存器所提供 之中斷致能指示。 ^ 1 6 ·如申請專利範圍第1 2項所述之微處理器,其中該η位元 之延伸前置碼包含8個位元。 1 7·如申請專利範圍第1 2項所述之微地理器,其中該既有1224284案號 92123371 六、申請專利範圍 指令集係x86微處理器指令集。 1 8·如申請專利範圍第1 2項所述之微處理器,其中該選取 之運算碼包括x86微處理器和令集中之ice BKPT運算石馬 (即運算碼F1 )。 1 9.如申請專利範圍第丨2項所述之微處理器,其中該轉譯 器包含: ° 一逸出指令偵測器,用以搞測該延伸指令内之該選取 之運算碼; 一指令轉譯器,用以轉譯該延伸指令之其餘部分,以 決定該微處理器所要執行的運算;以及 一延伸前置碼轉譯器,耦接至該逸出指令偵測器及該 指令轉譯器,用以轉譯該n位元之延伸前置碼,並指 定要抑制中斷處理,直灵該微指令序列完成執行。 2 0 ·如申請專利範圍第丨2項所述之铽處理器,更包含: 一延伸 令序列,執行該運算 的完成 執行邏輯,耦接灵該轉岸器,用以接收該微指 ,以及指出該微指令序列執行 2 1 ·如申請專利範圍第2 〇項所述之微處理器,其中該延伸 執行邏輯包含: 一抑制計數邏輯,組態為判斷該對應微指令執行的完 成。 22·如申請專利範圍第12項所述之微處理器,其中該轉譯 器判斷該延伸指令執行的完成,且該轉譯器排除該中1224284 _案號92123371_年?^月 > 曰 修正_ 六、申請專利範圍 斷的處理。 2 3. —種為一既有指令集增添中斷抑制特徵的模組,包 含: 一逸出標記,指出一對應指令之附隨部分係指定了所 要執行之一運算,其中該逸出標記為該既有指令集 内之一第一運算碼; 一中斷抑制指定元,耦接至該逸出標記,且為該附隨 部分其中之一,其指定要抑制中斷處理,直至該運 算完成; 一轉譯邏輯,用以接收該逸出標記與該中斷抑制指定 元,且產生一微指令序列,以指示一微處理器執行 該運算,該轉譯邏輯並用以指示要抑制中斷處理, 直至該運算完成;以及 一延伸執行邏輯,耦接至該轉譯邏輯,用以接收該微 指令序列,並在處理一待處理中斷前,完成該運算 的執行。 2 4.如申請專利範圍第23項所述之模組,其中該附隨部分 之其餘部分包含一第二運算碼,用以指定該運算。 2 5.如申請專利範圍第23項所述之模組,其中該中斷抑制 指定元包含8個位元。 2 6.如申請專利範圍第23項所述之模組,其中該既有指令 集係X 8 6指令集。 2 7.如申請專利範圍第23項所述之模組,其中該第一運算 碼包含x86指令集中之ICE BKPT運算碼(即運算碼第46頁 1224284Fl ) 〇 2 8 ·如申請專利範圍第2 3項所述之模組,其中該轉譯邏輯 包含: 一逸出標記偵測邏輯,用以偵測該逸出標記,並指示 該附隨部分的轉譯動作需依據延伸轉譯常規 (conventions);以及 一轉譯邏輯,耦接至該逸出標記偵測邏輯,用以依據 該既有指令集之常規,執行指令的轉譯動作,並依 據該延伸轉譯常規執行該對應指令之轉譯,以排除 中斷處理,直至該運算完成。 2 Q •一種擴充一既有指令集架構的方法,以於指令層級抑 制中斷處理,該方法包含: 提供一延伸指令,該延伸指令包含一延伸標記及一延 伸前置碼,其中該延伸標記係該既有指令集架構其 中一第一運算碼項目; 透過該延伸前置碼指定於該延伸指令執行時,抑制中 斷處理,其中該延伸指令之其餘部分指定所要執行 之一運算;以及 於該延伸指令執行時,抑制處理一中斷。 3 〇 ·如申凊專利範圍第2 9項所述之方法,其中該指定動作 包含: 使用該既有指令集架構之一第二運算碼項目來指定該 運算。 31·如申請專利範圍第29項所述之方法,其中該提供延伸^24284f令之動作包含使用 4置碼進行組態 修正 o'P TffT J^s I 1置碼進行組離。 32·如φ 士主击 t τ明寻利範圍第2 9項所述之方法,其中該提供延伸 指令之動作包含從χ86微處理器指令集架構選取該第_ 運算碼項目。 3 3 士 • °申請專利範圍第2 9項所述之方法,其中該提供延伸 指令之動作包含選取x86 ICE ΒΚΡΤ運算碼(即運算碼 F1 )作為該延伸標記。 34·如申請專利範圍第29項所述之方法,更包含:將該延伸指令轉譯成一微指令序列,該微指令序列係 指示一延伸執行邏輯執行該運算,且抑制中斷處理 直至該運算執行完成。 35·如申請專利範圍第34項所述之方法,其中該轉譯延伸 指令的動作包含: 於一轉譯邏輯内,偵測該延伸標記;以及 依照延伸轉譯規則轉譯該延伸前置碼與該其餘部分, 以產生該微指令序列。第48頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/384,390 US7546446B2 (en) | 2002-03-08 | 2003-03-10 | Selective interrupt suppression |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200417926A TW200417926A (en) | 2004-09-16 |
TWI224284B true TWI224284B (en) | 2004-11-21 |
Family
ID=34272273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW92123371A TWI224284B (en) | 2003-03-10 | 2003-08-26 | Selective interrupt suppression |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN1271511C (zh) |
TW (1) | TWI224284B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073551B (zh) * | 2010-02-16 | 2014-03-12 | 威盛电子股份有限公司 | 可自我重置的微处理器及其方法 |
WO2013095532A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Interrupt return instruction with embedded interrupt service functionality |
US20240220261A1 (en) * | 2022-12-30 | 2024-07-04 | Jason Agron | Instructions and support for conditional load and store |
-
2003
- 2003-08-26 TW TW92123371A patent/TWI224284B/zh not_active IP Right Cessation
- 2003-12-09 CN CN 200310120225 patent/CN1271511C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1514350A (zh) | 2004-07-21 |
TW200417926A (en) | 2004-09-16 |
CN1271511C (zh) | 2006-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW591527B (en) | Apparatus and method for extending a microprocessor instruction set | |
CN102707927B (zh) | 具有条件指令的微处理器及其处理方法 | |
US7546446B2 (en) | Selective interrupt suppression | |
CN1218243C (zh) | 延伸微处理器数据模式的装置及方法 | |
TWI613591B (zh) | 非循序執行微處理器之條件載入指令 | |
TWI474191B (zh) | 控制暫存器對應於異質指令集架構處理器 | |
EP2430526B1 (en) | Instruction cracking based on machine state | |
US20070234010A1 (en) | Suppression of store checking | |
EP1336918B1 (en) | Apparatus and method for selective memory attribute control | |
EP1351135B1 (en) | Microprocessor and method for selective control of condition code write back | |
CN103530089A (zh) | 微处理器及其操作方法 | |
JP2021174513A (ja) | データ依存脆弱分岐の機会主義的再誘導のための命令セットアーキテクチャベース自動負荷追跡 | |
TWI224284B (en) | Selective interrupt suppression | |
TWI220042B (en) | Non-temporal memory reference control mechanism | |
TWI245221B (en) | Apparatus and method for selective memory attribute control | |
TWI230356B (en) | Apparatus and method for extending address modes in a microprocessor | |
TWI478065B (zh) | 執行模式備份暫存器之模擬 | |
TW561406B (en) | Apparatus and method for selective control of results write back | |
TWI222015B (en) | Mechanism for extending the number of registers in a microprocessor | |
CN100590591C (zh) | 选择性地控制条件码回写的装置及方法 | |
TWI223773B (en) | Suppression of store checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |