TWI224284B - Selective interrupt suppression - Google Patents

Selective interrupt suppression Download PDF

Info

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
Application number
TW92123371A
Other languages
English (en)
Other versions
TW200417926A (en
Inventor
G Glenn Henry
Rodney E Hooker
Terry Parks
Original Assignee
Ip First Llc
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
Priority claimed from US10/384,390 external-priority patent/US7546446B2/en
Application filed by Ip First Llc filed Critical Ip First Llc
Publication of TW200417926A publication Critical patent/TW200417926A/zh
Application granted granted Critical
Publication of TWI224284B publication Critical patent/TWI224284B/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/30181Instruction operation extension or modification
    • G06F9/30185Instruction 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. £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頁 1224284
    Fl ) 〇 2 8 ·如申請專利範圍第2 3項所述之模組,其中該轉譯邏輯 包含: 一逸出標記偵測邏輯,用以偵測該逸出標記,並指示 該附隨部分的轉譯動作需依據延伸轉譯常規 (conventions);以及 一轉譯邏輯,耦接至該逸出標記偵測邏輯,用以依據 該既有指令集之常規,執行指令的轉譯動作,並依 據該延伸轉譯常規執行該對應指令之轉譯,以排除 中斷處理,直至該運算完成。 2 Q •一種擴充一既有指令集架構的方法,以於指令層級抑 制中斷處理,該方法包含: 提供一延伸指令,該延伸指令包含一延伸標記及一延 伸前置碼,其中該延伸標記係該既有指令集架構其 中一第一運算碼項目; 透過該延伸前置碼指定於該延伸指令執行時,抑制中 斷處理,其中該延伸指令之其餘部分指定所要執行 之一運算;以及 於該延伸指令執行時,抑制處理一中斷。 3 〇 ·如申凊專利範圍第2 9項所述之方法,其中該指定動作 包含: 使用該既有指令集架構之一第二運算碼項目來指定該 運算。 31·如申請專利範圍第29項所述之方法,其中該提供延伸
    ^24284
    f令之動作包含使用 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頁
TW92123371A 2003-03-10 2003-08-26 Selective interrupt suppression TWI224284B (en)

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)

* Cited by examiner, † Cited by third party
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

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