TWI222015B - Mechanism for extending the number of registers in a microprocessor - Google Patents
Mechanism for extending the number of registers in a microprocessor Download PDFInfo
- Publication number
- TWI222015B TWI222015B TW91116959A TW91116959A TWI222015B TW I222015 B TWI222015 B TW I222015B TW 91116959 A TW91116959 A TW 91116959A TW 91116959 A TW91116959 A TW 91116959A TW I222015 B TWI222015 B TW I222015B
- Authority
- TW
- Taiwan
- Prior art keywords
- extended
- register
- instruction
- item
- extension
- Prior art date
Links
- 230000007246 mechanism Effects 0.000 title description 5
- 238000013519 translation Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000000875 corresponding effect Effects 0.000 claims description 35
- 230000002079 cooperative effect Effects 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 241000283074 Equus asinus Species 0.000 claims 1
- 238000001514 detection method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 14
- 238000013461 design Methods 0.000 description 8
- 235000012054 meals Nutrition 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- ZLMJMSJWJFRBEC-UHFFFAOYSA-N Potassium Chemical compound [K] ZLMJMSJWJFRBEC-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 229910052700 potassium Inorganic materials 0.000 description 1
- 239000011591 potassium Substances 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Description
1222015 (案號第〇9m6959號專利案之說明書及申%|利範
五、發明說明( 與相關申請案之對照 [0_本中請案依據町美國中請案主張優 -----PI —----鴻裝—— (請先閱讀背面之注意事項再填寫本頁) ,申請_細年4月2日,專利名稱為「增加U 微處理器之暫存器數量的裝置及方法」。 [〇〇〇2]本t請案與下列同在中射之美國專利申請案 有關,其申請曰與本案相同,且具有相同的申請人與發明人: TW SERIAL NUMBER DOCKET NUMBER ------_ 專利名辎 91116957 CNTR:2176 延伸微處理器指令集之裝置及方法 91116958 CNTR:2186 執行條件指令之裝置及方法 91116956 CNTR:2188 選擇性地控制條件碼回寫之裝置及 方法 91116672 CNTR:2198 選擇性地控制結果回寫之裝置及方 法
經濟部智慧財產局員工消費合作社印製 (一) 發明技術領域: [0003] 本發明係有關微電子的領域,尤指一種能將附加 的可定址(addressable)暫存器納入一既有微處理器指令集 架構之技術。 (二) 發明技術背景: [0004] 自1970年代初發韌以來,微處理器之使用即呈 2 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 1222015 (案號第091116959號專利案之說明書及申笔#利範圍修正本) 五、發明說明(> ) 指數般成長。從最早應用於科學與技術的領域,到如今已從 那些特殊領域引進商業的消費者領域,如桌上型與膝上型 (laptop)電腦、視訊遊戲控制器以及許多其他常見的家用 與商用裝置等產品。 [0005] 隨著過去三十年來使用上的爆炸性成長,在技術 上也歷經一相對應之提昇,其特徵在於對下列項目有著曰益 昇高之要求:更快的速度、更強的定址能力、更快的記憶體 存取、更大的運算元、更多種一般用途的運算(如浮點運算、 單一指令多重資料(SIMD)、條件移動等)以及附加的特 殊用途運算(如數位訊號處理功能與其他多媒體運算)。如 此造就了該領域中驚人的技術進展,且都已應用於微處理器 之設計’像擴充管線化(extensivepipelining)、超純量架構 (super-scalar architecture )、快取結構、亂序處理(〇ut_〇f 〇rder processing )、爆發式存取(burst a_s )機制、分支預測(b_h
Predication)以及假想執行(speculativeexecution)。直言之, 比起30年前剛出現時,現在的微處理器呈現出驚人的複雜 度,且具備了強大的能力。 [0006] 但與許多其他產品不同的是,有另一非常重要的 因素已限制了,並持續限織微處理H轉之演進。現今微 處理器會如此複雜,一大部分得歸因於這項因素,即舊有軟 體之相容性。在市場考量下,所多製造商選擇將新的架構特 徵納入最新的微處理器設計中,但同時在這些最新的產品 中,又保留了所有為確保相容於較舊的、即所謂「舊有°口 (legacy)應用程式所必需之能力。 ” 」 — — — — — — — —--· I I (請先閱讀背面之注意事項再填寫本頁) 訂·-
1222015 。號第0W116959號專利案之說明書及申献利範圍修正本)
經濟部智慧財產局員工消費合作社印製 [0007] 這種舊有軟體相容性的負擔,沒有其他地方, 會比在x86-相容之微處理器的發展史中更加顯而易見。大家 都知道,現在的32/16位元之虛麵式(virtual-mode) x86 微處理器’仍可執行丨年代所撰寫之8位元真實模式 (real-mode)的應用程式。而熟習此領域技術者也承認,有 不少相關的架構「包被」堆在χ86架構中,只是為了支援與 舊有應用程式及運作模式的相雜。賴在過去,研發者可 將新開發的_特徵加人既有的指令#_,但如今使用這 些特徵所祕之J1具,即可程式化的指令,卻變得相當稀 少。更具體地說,在某些重要的指令集中,已沒有「多餘」 的指令,讓設計者可藉以將更新的特徵納人—既有的架構 中。 [0008] 例如,在xg6指令集架構中,已經沒有任何一 未定義的-位元組大小的運算碼狀態,是尚未被使用的。在 主要的一位元組大小之χ86運算碼圖中,全部256個運算碼 狀態都已被既有的指令佔用了。結果是,χ86微處理器的設 計者現在必須在提騎舰無棄財軟體相雜兩者間 作抉擇。若要提供新的可程式化特徵,則必須分派運算碼狀 ,給攻些特徵。若既有的指令集架構沒有多餘的運算碼狀 態,則某些既存的運算碼狀態必須重新絲,以提供給新的 特徵。因此,為了提供新的特徵,就得犧牲舊有軟體相容性 了。 [0009] -個持續發展但仍困擾著微處理器設計者的1 域,即是減理_可纽暫存⑽數量與賴。早期的微
(請先閱讀背面之注意事項再填寫本頁) i裝 --訂··
本紙条H刺巾國國家標準(CNS)A4規格(210 X 297公爱) 經濟部智慧財產局員工消費合作社印製 1222015 (案號第09⑴6959號專利案之說明書及申範圍修正本) 五、發明說明(f ) 處理器設計提供了 一或兩個一般用途的8位元暫存器。之 後’隨著應用程式内之演算日趨複雜,一般用途暫存器的數 量及大小都增加了。以應用於桌上型/膝上型電腦軟體的微處 理器而言,目前的技術程度所能提供之32位元一般用途暫 存器不到十個。所以到現在,仍有應用程式的領域因為微處 理器並未提供更多可定址之一般用途暫存器,而受到不利的 影響。 [0010] 因此,我們所需要的是,一種可將附加之一般用 途暫存器納入一既有微處理器指令集架構的裝置及方法,其 中該既有指令集係被已定義之運算碼完全佔用,且此項技術 亦可讓-符合舊有規格之微處理器保留執行舊有應用程式 的能力。 (三)發明簡要說明·· [0011] 本發明如同前述其他申請案,係針對上述及其他 習知技術之問題與缺點加以克服。本發明提供一種更好的技 術,用以擴充微處理器之指令集,使其超越現有之能力,而 長:供附加的一般用途暫存器,其内容可供微處理器指令集的 可程式化指令執行運算之用。在一具體實施例中,提供一種 用以存取一微處理器内之延伸暫存器的装置。該裝置包括一 轉譯邏輯(translationlogic)與一延伸暫存器邏輯(extended register logic)。該轉譯邏輯將一延伸指令轉譯成對應之微指 令(micro instruction),由該微處理器執行。該延伸指令具 一延伸前置碼(extended prefix)與一延伸前置碼標記 说尺度適用中國國家標準(CNS)A4規格(210 X 297公餐)'----
裝 --訂: (請先閱讀背面之注意事項再填寫本頁)
經濟部智慧財產局員工消費合作社印製 1222015 (案號第091116959號專利案之說明書及申利範圍修正本) " ----------- 五、發明說明(ί ) (extended prefix tag)。該延伸前置碼指定了暫存器位址延 伸項’這些延伸項指出該延伸暫存器,其中該延伸暫存器並 不能由-既有指令集加以指^。該延伸前置碼標記則指出該 延伸前置碼’且係該既有指令集内另—依據架構所指定之運 算碼。該延伸暫存器邏_接至轉譯邏輯,用以接收該對應 之微指令,並存取該延伸暫存器。 [(ΚΠ2]本發明的一個目的,係提出一種擴充—既有^ 理器指令集以提供附加之運算元暫存H的機制。該機制包括 -延伸指令與-轉譯器。該延伸指令指定了對應—指定運算 之附加運算元暫存II,且該延伸指令包含該既有微處理器指 令集其中-選取之運异碼,其後則接著一 η位元之延伸前置 碼。該選取之運算碼指出該延伸指令,該η位元之延伸前置 碼則指出該附加運算元暫存器,其中該附加運算元暫存器無 法依該既有微處理器指令集另行指定。該轉譯器接收該延伸 指令,並產生一微指令序列,以指示微處理器於該指定運算 執行時,存取該附加運算元暫存器。 [0013]本發明的另一目的,在於提出一種為一既有指令 集增添延伸暫存H之定址能力的指令集延倾組。該指令集 延伸模組具一逸出標記(escapetag)、一延伸暫存器指定元 (extended registers specifier )及一延伸暫存器邏輯(extended register logic )。該逸出標記由一轉譯邏輯接收,並指出一對 應指令之附隨部分係指定了一微處理器所要執行之一延伸 運算,其中該逸出標記係該既有指令集内之一第一運算碼項 目。該延伸暫存器指定元耦接至該逸出標記,且為該附隨部 _______ 6 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公爱) -----1---------裝--- (請先閱讀背面之注意事項再填寫本頁) 訂: A7 1222015 一(案號第〇91116959號專利案之說明書及申笔声利範圍修正本) 五、發明說明(L) 分其中之一。該延伸暫存器指定元指定了複數個對應至延伸 暫存器之位址延伸項,該延伸暫存器則係該延伸運算之所 ‘。該延伸暫存器邏輯搞接至該轉譯邏輯,於該指定運算執 行時,存取該延伸暫存器,其中該既有指令集僅提供定址既 有暫存器的能力,且該延伸暫存器指定元致能定址該延伸暫 存器的能力。 [0014] 本發明的再一目的,在於提供一種擴充一既有指 令集架構的方法,以提供一微處理器内延伸暫存器之可程式 化的定址能力。該方法包括提供一延伸指令,該延伸指令包 含一延伸標記及一延伸前置碼,其中該延伸標記係該既有指 令集架構其中一第一運算碼項目;透過該延伸前置碼與該 延伸指令之其餘部分指定該延伸暫存器,其中該延伸暫存器 係於一指定運算執行時被存取,且該既有指令集架構僅依據 該指令集架構提供可定址既有暫存器之指令;以及於該指 定運算執行時,存取該延伸暫存器。 (四)發明圖示說明: [0015] 本發明之前述與其它目的、特徵及優點,在配合 下列說明及所附圖示後,將可獲得更好的理解: [0016] 圖一係為一相關技術之微處理器指令格式的方 塊圖, [0017] 圖二係為一表格,其描述一指令集架構中之指 令’如何對應至圖一指令格式内一 8位元運算碼位元組之位 元邏輯狀態; ‘紙張尺度刺+關家標半((JNS)A4規格(210 X 297公餐 -1 I ! — I (請先閱讀背面之注意事項再填寫本頁) · · 經濟部智慧財產局員工消費合作社印製 1222015 (案號第09111矽59號專利案之說明書及申笔声利範圍修正本) 五、發明說明(?) [0018] 圖三係為本發明之延伸指令格式的方塊圖; [0019] 圖四係為一表格,其顯示依據本發明,延伸架構 特徵如何對應至一 8位元延伸前置碼實施例中位元的邏輯狀 態; [0020] 圖五係為解說本發明用以存取延伸暫存器之一 管線化微處理器的方塊圖; [0021] 圖六係為本發明用於定址微處理器之附加暫存 器的延伸前置碼之一具體實施例方塊圖; [0022] 圖七係為圖五微處理器内轉譯階段邏輯之細部 的方塊圖; [0023] 圖八係為圖五之微處理器内延伸暫存器階段邏 輯的方塊圖;以及 [0024] 圖九係為描述本發明對定址微處理器之延伸暫 存器的指令進行轉譯與執行的方法之運作流程圖。 圖號說明: 100指令格式 102 運算碼 200 8位元運算碼圖 202運算碼F1H 300延伸指令格式 302運算碼 304延伸指令標記 400 8位元前置碼圖 ____ 8 本紙張尺度週用干國國豕ί示平規格(210 X 297公餐)
經濟部智慧財產局員工消費合作社印製 前置碼 103位址指定元 201運算碼值 301前置碼 303位址指定元 305延伸前置碼 4〇1架構特徵 言· · (請先閱讀背面之注意事項再填寫本頁)
1222015 A7 (案號第091116959號專利案之說明書及申笔^利範圍修正本) 五、發明說明(ί ) 經濟部智慧財產局員工消費合作社印製 500 管線化微處理器 501 提取邏輯 502 指令快取記憶體/外部記憶體 503 指令佇列 504 轉譯邏輯 505 延伸轉譯邏輯 506 微指令佇列 507 執行邏輯 508 延伸執行邏輯 600 延伸前置碼 601 來源位址延伸項欄位(S3) 602 目的位址延伸項攔位(D3) 603 備用攔位 604 運算碼與位址指定元項目 605 運算碼與位址指定元項目 700 轉譯階段邏輯 701 啟動狀態訊號 702 機器特定暫存器 703 延伸特徵欄位 704 指令緩衝器 705 轉譯邏輯 706 轉譯控制器 707 除能訊號 708 逸出指令偵測器 709 延伸前置碼解碼器 710 指令解碼器 711 控制唯讀記憶體 712 微指令緩衝器 714 微運算碼攔位 715 目的攔位 716 來源攔位 717 位移攔位 800 延伸暫存器階段邏輯 801 微指令緩衝器 802 暫存器邏輯 803 延伸暫存器檔案 804 來源位址攔位 805 來源位址攔位 806 延伸讀取邏輯 807 延伸回寫邏輯 808 微指令緩衝器 809 運算元緩衝器 9 本紙張尺度通用甲國國家標準(CNS)A4規格(21〇 χ 297公釐) ——l·—------Μ裝—— C請先閱讀背面之注意事項再填寫本頁) 訂·· 1222015 經濟部智慧財產局員工消費合作社印製 (案號第091116959號專利案之說明書及申,产利範圍修正本) 五、發明說明(?) 810運算元緩衝器 811微指令緩衝器 812結果緩衝器 813結果缓衝器 900〜926對定址微處理器之延伸暫存器的指令進行轉譯與 執行的方法之運作流程 (五)發明詳細說明: [0025]以下的說明,係在一特定實施例及其必要條件的 脈絡下而提供,可使一般熟習此項技術者能夠利用本發明。 然而,各種對該較佳實施例所作的修改,對熟習此項技術者 而言乃係顯而易見,並且,在此所討論的一般原理,亦可應 用至其他實施例。因此,本發明並不限於此處所展示與敘述 之特定實施例,而是具有與此處所揭露之原理與新穎特徵相 符之最大範圍。 [〇〇26]前文已針對今日之微處理器内,如何擴充其架構 特徵,以超越相關指令集能力之技術,作了背景的討論。有 鑑於此,在圖一與圖二,將討論一相關技術的例子。此處的 討論強調了微處理器設計者所一直面對的兩難,即一方面, 他們想將最新開發之架構特徵納入微處理器的設計中,但另 一方面,他們又要保留執行舊有應用程式的能力。在圖一至 二的例子中,一完全佔用之運算碼圖,已把增加新運算碼至 該範例架構的可紐聽,因而迫使設計者要不就選擇將新 特徵納人’而犧牲某種程度之舊有軟體相雜,要不就將架 構上的最新進展-併放棄,以便轉微處理器㈣有應用程 式之相·。在相關技術的討論後,於圖三至九,將提供對 ----l·-------4裝—— (請先閱讀背面之注意事項再填寫本頁) 訂··
本紙張尺度賴巾_家標準(CNS)A4 χ 297公釐) A7 (案號第〇91116959號專利案之說明書及申圍修正本)五、發明說明)
本發明之討論。藉由利用一既有但未使用之運算碼作為一延 伸指令之前置碼標記,本發明可讓微處理器設計者克服已完 全使用之指令集架構的限制,在允許他們在提供附加之一般 用途暫存器供程式員使用的同時,也能保留與舊有應用程式 的相容性。 、[0027]請參閱圖一,其係一相關技術之微處理器指令格 式100的方塊圖。該相關技術之指令1〇〇具有數量可變之資 料項目101-103,每一項目皆設定成一特定值,合在一起便 組成微處理器之-特定指令。該特定指令丨⑻指示微處 理器執行一特定運算,例如將兩運算元相加,或是將一運算 元從記憶體搬移至微處理器内之暫存器。一般而言,指令1〇〇 内之運算碼項目102指定了所要執行之特定運算,而選用 (optional)之位址指定元項目1〇3位於運算碼1〇2之後以 ,定關於該特定運算之附加資訊,像是如何執行該運算,運 算元位於何處等等。指令格式100並允許程式員在一運算碼 1〇2前加上前置碼項目101。在運算碼1〇2所指定之特定運 算執行時,前置碼101用以指示是否使用特定的架構特徵。 一般來說,這些架構特徵能應用於指令集中任何運算碼 所指定運算的大部分。例如,現今前置碼⑼存在於一些妒 使用^同大小運算元(如8位元、16位元、32位元)執^ 運算的微處理器中。而當此類處理器被程式化為一預設的運 f元大小時(比如32位元),在其個職令集中所=供之 月J置馬101,仍此使程式員依據各個指令,選擇性地取 (override)該預設的運算元大小(如為了執行16位元運 &狀度適用中國國家標^iS)A4規格⑽x挪公餐) 1222015 A7 (案號第〇911】6959號專利案之說明書及申讀务利範圍修正本) 五、發明說明([ί ----h-------Μ裝—— (請先閱讀背面之注意事項再填寫本頁) 算)。可選擇之運算元大小僅是架構特徵之一例,在許多現 代的微處理器中,這些架構特徵能應用於眾多可由運算碼 102加以指定的運算(如加、減、乘、布林邏輯等)。 [0028] 圖一所示之指令格式100,有一為業界所熟知的 範例’此即Χ86指令格式1〇〇,其為所有現代之别卜相容微 處理器所採用。更具體地說,χ86指令格式1〇〇(也稱為χ86 指令集架構100)使用了 8位元前置碼1〇1、8位元運算碼 102以及8位元位址指定元103。沾6架構1〇〇亦具有數個前 置碼101,其中兩個取代了 χ86微處理器所預設的位址/資料 大小(即運算碼狀態66Η與67Η),另一個則指示微處理器 依據不同的轉譯規則來解譯其後之運算碼位元組1〇2 (即前 置碼值0FH ’其使得轉譯動作是依據所謂的二位元組運算竭 規則來進行),其他的前置碼101則使相關運算重複執行, 直至重複條件滿足為止(即REP運算碼:F〇H、F2H及F3h)。 經濟部智慧財產局員工消費合作社印製 [0029] 現請參閱圖二,其顯示一表格2⑻,用以描述一 指令集架構之指令201如何對應至圖一指令格式内一 8位元 運算碼位元組102之位元值。表格2〇〇呈現了一示範性的8 位元運算碼圖200,其將一 8位元運算碼項目1〇2所具有之 最多256個值,關聯到對應之微處理器運算碼指令2〇1。表 格200將運算碼項目1〇2之一特定值,譬如〇2H,映射至一 對應之運算碼指令201 (即指令1〇2 2〇1)。在χ86運算碼圖 的例子中,為此領域中人所熟知的是,運算碼值14Η係映射 至χ86之進位累加(Add With Carry,ADC)指令,此指令 將一 8位元之直接(immediate)運算元加至架構暫存器al
1222015 A7 (案號第〇9〗116959號專利案之說明書及申,斧利範圍修正本) 五、發明說明(丨>) 之内含值。熟習此領域技術者也將發覺,上文提及之Χ86前 置瑪 101 (亦即 66Η、67Η、0FH、F0H、F2H 及 F3H)係實 際的運算碼值201,其在不同脈絡下,指定要將特定的架構 延伸項應用於隨後之運算碼項目102所指定的運算。例如, 在運算碼14Η (正常情況下,係前述之ADC運算碼)前加 上前置碼0FH,會使得χ86處理器執行一「解壓縮與插入低 壓縮之單精度浮點值」(Unpack and Interleave Low Paeked
Single-Precision Floating-Point Values )運算,而非原本的 ADC 運鼻。這疋因為’當一 x86處理器碰到前置碼〇j?h時,會採 用另一種轉譯規則。諸如此x86例子所述之特徵,在現代之 微處理器中係部分地致能,此因微處理器内之指令轉譯/解碼 邏輯是依序解譯一指令1〇〇的項目1〇M〇3。所以在過去, 於指令集架構中使轉定運算碼值作為前置碼1G1,可允許 微處理器設計者將不少先進的架構特徵納入相容舊有軟體 之微處理H的設計巾’科會對未使_些特定運算碼狀態 的舊有程式,帶來執行上的負面衝擊。例如,—未曾使用 運算碼0FH的舊有程式,仍可在今日的χ86微處理器上執 打。而一較新的朗程式,藉著運用X86運算碼_作為前 置碼1〇1,就能使用許多新進納入之X86架構特徵,如單一 指令多重資料(S_)運算,條件移動運算等等。 鉀過把藉由衫多餘料算碼值2〇1 =則置碼1〇1 (也稱為架構特徵標記/指標⑻ 二’但物彻物在提 ^的強化時,仍會因為一非常直接的理由,而碰到阻礙: 本紙張尺度適用中國國家標準(CNSg^^ 經濟部智慧財產局員工消費合作社印製 丄222015 I—,^091116959號專利案之說明t及申利範圍修正本〕 :一一 有可用/夕餘的運算碼值已被用完,也就是,運算碼圖二⑽ 中的王邛運算碼值已被架構化地指定。當所有可用的值被分 I μ為運算碼項目ι〇2或別置碼項目ιοί時,就沒有剩餘的運 算碼值可作為納入新特徵之用。這個嚴重的問題存在於現在 的許多微處理器架構中,因而迫使設計者得在增添架構特徵 與保留舊有程式之相容性兩者間作抉擇。 [0031] 圖一所示之指令201係以一般性的方式表示(亦 即124、186) ’而非具體指涉實際的運算(如進位累加、減、 互斥或)。這是因為,在一些不同的微處理器架構中,完全 佔用之運算碼圖2〇〇在架構上,已將納入較新進展的可能性 排除。雖然圖二例子所提到的,是8位元的運算碼項目1〇2, 熟習此領域技術者仍將發覺,運算碼102的特定大小,除了 作為一特殊情況來討論完全佔用之運算碼結構2〇〇所造成的 問題外’其他方面與問題本身並不相干。因此,一完全佔用 之6位元運算碼圖將有64個可架構化地指定之運算碼/前置 碼201,並將無法提供可用/多餘的運算碼值作為擴充之用。 [0032] 另一種替代做法,則並非將原有指令集完全廢 棄’以一新的格式1〇〇與運算碼圖2⑻取代,而是只針對一 部份既有的運算碼201,以新的指令意含取代,如圖二之運 算碼40Η至4FH。以這種混合的技術,微處理器就可以單獨 地以下列兩種模式之一運作:其中舊有模式利用運算碼 40H-4FH ’係依舊有規則來解譯,或者以另一種改良模式 (enhanced mode)運作,此時運算碼40H-4FH則依加強之 | 架構規則來解譯。此項技術確能允許設計者將新特徵納入設 本紙張尺度_,驛醉(CNS)A4規格(210 X si4公餐)----
(請先閱讀背面之注意事項再填寫本頁) % . 1222015 (案號第091116959號專利案之說明書及申養斧利範圍修正本) 五、發明說明(\义) 計,然而,當符合舊有規格之微處理器於加強模式運作時, 缺點仍舊存在,因為微處理器不能執行任何使用運算碼 40H-4FH的應用程式。因此,站在保留舊有軟體相容性的立 場,相容舊有軟體/加強模式的技術,還是無法接受的。 [0033]然而,對於運算碼空間已完全佔用之指令集 200,且該空間涵蓋所有於符合舊有規格之微處理器上執行 之應用程式的情形,本案發明人已注意到其中運算碼2〇1的 使用狀況,且他們亦觀察出,雖然有些指令202是架構化地 指定,但未用於能被微處理器執行之應用程式中。圖二所述 之才曰令IF1 202即為此現象之一例。事實上,相同的運算碼 值202 (亦即F1H)係映射至未用於χ86指令集架構之一有 效指令202。雖然該未使用之χ86指令2〇2是有效的χ86指 令202,其指示要在χ86微處理器上執行一架構化地指定之 運算,但它卻未使用於任何能在現代χ86微處理器上執行之 既有應用程式。這個特殊的χ86指令202被稱為電路内模擬 中斷點(In Circuit Emulation Breakpoint)(亦即 ICE ΒΚΡΤ, 運算碼值為F1H),之前都是專門使用於一種現在已不存在 之微處理器模擬設備中。ICE BKPT 202從未用於電路内模擬 器之外的應用程式中,並且先前使用ICEBKPT 202之電路 内模擬设備已不復存在。因此,在x86的情形下,本案發明 人已在一完全佔用之指令集架構200内發現一樣工具,藉著 利用一有效但未使用之運算碼202,以允許在微處理器的設 計中納入先進的架構特徵,而不需犧牲舊有軟體之相容性。 在一完全佔用之指令集架構20〇中,本發明利用一架構化地 私紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公爱 I — — — — — — — — — — i I (請先聞讀背面之注意事項再填寫本頁) 訂- •^· 經濟部智慧財產局員工消費合作社印製 15 1222015 A7 义號第09111(5959號專利案之說明書及申亨声利範圍修正本) 五、發明說明(rT) 閱 指定但未使用之運算碼2〇2 ,作為一指標標記,以指出其後 之一 Π位元前置碼,因此允許微處理器設計者可將最多2η 個最新發展之架構特徵,納入微處理器的設計中,同時保留 與所有舊有軟體完全的相容性。 [0034] 本發明藉提供一 η位元之延伸暫存器指定元前 置碼’以使用前置碼標記/延伸前置碼的概念,因而可允許程 式員在一既有微處理器指令集架構所提供之一般用途暫存 器外,還能指定微處理器中已提供之附加一般用途暫存器的 位址。本發明現將參照圖三至九來進一步討論。 [0035] 現請參閱圖三,其為本發明之延伸指令格式邓❹ 的方塊圖。朗一所討論之格式1〇〇非常近似,該延伸指令 格式300具有數量可變之指令項目301·3〇5,每-項目設定 為-特定值,集合起來便組成微處理器之—特定指令⑽。 ,特定指令300指示微處理器執行一特定運算,像是將兩運 一相加或疋將一運异元從記憶體搬移至微處理写之暫存 器内。一般而言,指令300之運算碼項目3〇2指定^所 :丁之特定運算,而選用之位址指定元項目3 处後,以指定該特定運算之相 $馬 = 處等等。指令格式3〇。亦 异碼302刖加上前置碼項目3〇1 定之特定運算執行時,前置竭項目观係用來=== 用既有的架構特徵。 丁疋否要使 二。36]然而’本發明之延伸指令撕係 式〇〇之一超集合㈣ ^紙張尺度適"^國家標準 1222015 A7 (案號第091116959號專利案之說明書及申場斧利範圍修正本) 五、發明說明(斤) 305,可被選擇性作為指令延伸項,並置於一格式化延伸指 令300巾所有其餘項目301-303之前。這兩個附加項目3〇4 與305讓程式員能在一符合舊有規格之微處理器内指定附加 或延伸的一般用途暫存器之位址,以便在其内之運算元上執 行運算,其中該延伸位址是無法藉由該符合舊有規格微處理 器之既有指令集加以程式化的。選用項目3〇4與3〇5係一延 伸指令標記304與一延伸暫存器指定元前置碼3〇5。該延伸 才曰令標記304係一微處理器指令集内另一依據架構所指定之 運算碼。在一 x86的實施例中,該延伸指令標記304,或稱 逸出標記304,係用運算碼狀態F1H,其為早先使用之ice BKPT指令。逸出標記304向微處理器邏輯指出,該延伸暫 存器指定元前置碼305,或稱延伸特徵指定元3〇5,係跟隨 ,後,其中該延伸暫存器指定元3〇5指定了微處理器内暫存 器之延伸位址’其對應至執行一指定運算所需要/產生之運算 70/結果。在一具體實施例中,逸出標記3〇4指出,一對應指 令300之附隨部分301_303及3〇5指定了微處理器所要&行 之=伸運算。延伸暫存器指定元305,或稱延伸前置碼3〇5, 指定了對應至該延伸運算所需之延伸暫存器的複數個位址 延伸項。微處理器中之延伸暫存器邏輯則於該延伸運算執行 時,存取該延伸暫存器。 [0037]此處將本發明所用之延伸技術作個概述。一延伸 才曰令,組恶為指定一既有微處理器指令集中之附加運算元 暫存器,其中該附加運算元暫存器係無法依該既有微處理器 指令集另行指定。該延伸指令包含該既有指令集之運算碼/ 17 297公釐) 本紙張尺度顧+關家標準(CNS)A4規格(21〇: (案號第091116959號專利案之說明書及申嗜斧利範圍修正本) 、發明說明(I;/ ) 指令304其中之一,以及一 η位元之延伸特徵前置碼3〇5。 所選取之運算碼/指令作為一指標304,以指出指令3〇〇是一 延伸特徵指令300 (亦即,其指定了微處理器架構之延伸 項),該η位元特徵前置碼305則指出該附加運算元暫存器。 在另一具體實施例中,延伸前置碼305具八位元的大小,最 多可指定256個不同的值,其可組態為指定一相關延伸運算 所需之延伸暫存器所對應之複數個暫存器位址延伸項。η位 元前置碼的實施例,則最多可指定2η種不同的位址延伸項。 [0038] 現請參閱圖四,一表格4〇〇顯示依據本發明,暫 存器延伸項如何映射至一8位元延伸前置碼實施例之位元邏 輯狀態。類似於圖二所討論之運算碼圖2〇〇,圖四之表格4〇〇 呈現一 8位元暫存器指定元之前置碼圖4〇〇的範例,其將一 8位元延伸前置碼項目305之最多256個值,關聯到一符合 舊有規格之微處理器的對應暫存器位址延伸項4〇1 (如Ε34、 E4D等)。在一 χ86的具體實施例中,本發明之8位元延伸 特徵前置碼3〇5係提供給前述之暫存器指定元4〇1 (亦即 E00-EFF)使肖,該些指定元4〇1乃現行辦指令集架構所 未能提供的。 [0039] 圖四所示之延伸特徵4〇1係以一般性的方式表 示,而非具體指涉實際的特徵,此因本發明之技術可應用於 各種不同的架構延伸項仙與特定的指令集架構。熟習此領 域技術者將發覺,許多不同的架構特徵4〇1,其中一些已於 上文提及,可依此處所述之逸出標記3〇4/延伸前置碼3〇5技 術將其納人-既有之指令集。圖四之8位元前置碼實施 1222015 A7 (案號第09⑴6959號專利案之說明書及_^利範圍修正太、 五、發明說明(J ) 供了最乡256個不同的特徵40卜而一 η位元前置碼實施例 則具有最多2η個不同特徵401的程式化選擇。 訂 [0040]不同的實施例,可依據一特殊之既有微處理器指 令集對其既有暫存器進行定址的方式來加以組態。例如,一 實施例於延伸前置碼305内提供複數個來源暫存器與目的暫 存器指定元攔位,其可完全取代延伸指令3⑻的其餘部分 301-303内之既有暫存器指定欄位。—個擴充攔位的實施例 則包含複數個來源暫存器與目的暫存器位址延伸攔位,其内 容可作為延伸指令300之其餘部分3〇1-3〇3中,既有暫存器 指定攔位内所指定之對應來源/目的暫存器位址的延伸項。此 實施例的其中一種形式,係利用該位址延伸項作為複數個較 高的暫存器位址位元,這些位元與其餘部分3〇1-3〇3中之對 應較低的暫存器位址位元結合,以指定該延伸暫存器。另一 不同的實施例則不用分開的攔位來指定運算元暫存器,而是 用η位元延伸前置碼3〇5之一特定編碼值,來指定要運用至 忒扣疋運算之一組對應的來源/目的運算元暫存器。依本發 明,可用一些不同的方式來編碼η位元延伸前置碼3〇5中延 伸暫存器之位址。然而,熟悉此領域技術者將發現,用以指 定η位元延伸前置碼305中之暫存器延伸項的特定編碼形 式,係依本發明所要應用之特定微處理器架構與指令集而 定。因為遇到一所選取之逸出指令3〇4,即表示隨後有一 η 位元之延伸前置碼305,其大小可以最佳化方式決定,以配 合各種延伸暫存器的指定方式。 [0041]現請參閱圖五,其為解說本發明用以存取延伸暫 I_—_ _19 本紙張尺度適用中國國豕標準(CNS)A4規格(210 X 297公麓) 1222015 A7 —一 (案號第〇91116959號專利案之說明書及申利範圍修正本) 五、發明說明(Θ ) 1 — — — — — —-- I I (請先閱讀背面之注意事項再填寫本頁) 存器之管線化微處理器5〇〇的方塊圖。微處理器500具有三 個明顯的階段類型:提取、轉譯及執行。提取階段具有提取 邏輯501 ’可從指令快取記憶體5〇2或外部記憶體5〇2提取 指令。所提取之指令經由指令佇列503送至轉譯階段。轉譯 階段具有轉譯邏輯504,耦接至一微指令佇列506。轉譯邏 輯504包括延伸轉譯邏輯5〇5。執行階段則有執行邏輯5〇7, 其内具有延伸執行邏輯508。 [0042]依據本發明,於運作時,提取邏輯5〇1從指令快 取兄憶體/外部記憶體502提取格式化指令,並將這些指令依 其執行順序放入指令>[宁列503中。接著從指令仔列503提取 這些指令,送至轉譯邏輯504。轉譯邏輯5〇4將每一送入的 指令轉譯/解碼為一對應之微指令序列,以指示微處理器5〇〇 去執行這些}曰令所指定的運算。依本發明,延伸轉譯邏輯505 細那些具有延伸前置碼標記之指令,並提供作為對應之延 伸暫存器指定元前置碼轉譯/解碼之用。在一 χ86的實施例 中’延伸轉譯邏輯505組態為偵測其值為F1H之延伸前置碼 標記,其係X86之ICE BKPT運算碼。延伸微指令攔位則提 經濟部智慧財產局員工消費合作社印製 供於微指令仔列506中,以允許指定微處理器5〇〇内附加的 内部暫存器。 [〇〇43]微指令從微指令制5〇6被送至執行邏輯5〇7, 其中延伸執行邏輯5〇8被組態為依照延伸微指令攔位所指定 的,存取微處理器内部的暫存器。被指定要用於一特定運算 之執行的複數個來源運算元,則取自來源運算元延伸暫存 器。延伸執行邏輯5〇8執行微指令所指定之運算,並產生相 Μ氏張尺度iiiriii·標準(CNS)A4規格⑵〇 χ 2927〇公餐 1222015 A7 (案號第〇9丨116959號專利案之說明書及申亨斧利範圍修正本} 五、發明說明(r") 經濟部智慧財產局員工消費合作社印製 對應的結果。在對應結果產生後,延伸執行邏輯508將該對 應結果回寫至該延伸微指令欄位所指定之目的運算元延伸 暫存器中。 [0044] 熟習此領域技術者將發現,圖五所示之微處理器 500係現代之管線化微處理器50經過簡化的結果。事實上, 現代的管線化微處理器500最多可包含有20至30個不同的 管線階段。然而,這些階段可概括地歸類為方塊圖所示之三 個階段,因此,圖五之方塊圖500可用以點明前述本發明實 施例所需之必要元件。為了簡明起見,微處理器500中無關 的元件並未顯示出來。 [0045] 現請參閱圖六,其為本發明用於定址微處理器之 附加暫存器的延伸前置碼600之一具體實施例方塊圖。該延 伸暫存器指定元前置碼600係一 8位元之延伸前置碼6〇〇, 且包含一來源位址延伸項攔位601 (S3)、一目的位址延伸 項攔位602 (D3)以及一備用攔位603。依本發明,S3攔位 601包含前置碼600之位元〇 ,並由延伸暫存器邏輯使用, 作為一四位元之第一延伸來源暫存器位址的位元3。該四位 元之第一延伸來源暫存器位址的其餘三個位元[2:0]則由其 餘的運算碼與位址指定元項目604來指定,後者係依該既有 微處理器指令集架構之暫存器指定常規(register specificati〇n conventions)而提供。依本發明,D3攔位602包含前置碼 600之位元1,並由延伸暫存器邏輯使用,作為一四位元之 第一延伸來源暫存器位址的位元3。該四位元之第二延伸來 源暫存器位址的其餘三個位元[2:〇]則由其餘的運算碼與位 21 Μ氏張尺錢财目國家標準(CNS)A4 k格咖X 297公爱)
— 111 — — — — — — — — — — · I I (請先閱讀背面之注意事項再填寫本頁} · · 經濟部智慧財產局員工消費合作社印製 1222015 A7 (案號第Will6959號專利案之說明書及申嗜斧利範圍修正本) 五、發明說明() 址指定元項目605來指定,後者係依該既有微處理器指令集 架構之暫存器指定常規而提供。該第二延伸來源暫存器位址 亦被使用作為一所執行運算之結果的目的暫存器位址。 [0046] 圖六之本發明延伸前置碼6〇〇的範例反映出,一 個適用於x86指令集架構之暫存器延伸項實施例。現在的 x86架構提供了八個一般用途暫存器,其係依照一運算碼位 元組與位址指定元位元組(稱為χ86指令之M〇dR/M與Sffi 位元組)内的習知編碼格式,指定於既有之χ86指令中。藉 由使用如圖所示之延伸前置碼6〇〇的S3 6〇1與D3 602攔 位,一 χ86微處理器中之可定址暫存器數量可從八個增加到 十六個。熟習此領域技術者將發覺,在延伸前置碼中提供二 位元之來源與目的欄位6〇1、602,將使一既有架構下可定址 暫存器的數量增加至原來的四倍。 [0047] 現請參閱圖七,其為圖五之微處理器内轉譯階段 邏輯700之細部的方塊圖。轉譯階段邏輯700具有一指令緩 衝器704,其提供延伸指令至轉譯邏輯7〇5。轉譯邏輯7〇5 係耦接至一具有一延伸特徵攔位7〇3之機器特定暫存器 702。轉譯邏輯705具一轉譯控制器7〇6,其提供一除能訊號 707至一逸出指令偵測器7〇8及一延伸解碼器709。該逸出 指令偵測器708耦接至該延伸解碼器7〇9及一指令解碼器 710。延伸解碼邏輯7〇9與指令解碼邏輯71()存取一控制唯 讀記憶體(ROM) 711,其中儲存了對應至某些延伸指令之 樣板(template)微指令序列。轉譯邏輯7〇5亦包含一微指 令緩衝器712,其具有一微運算碼欄位714、一目的攔位 本紙張尺度_ + _家規格⑽x29/;£y (請先閱讀背面之注意事項再填寫本頁} 裝 Ίδτ· 1222015 濟 (案號第091116959號專利案之說明書及申献利修正本) 五、發明說明(vV) 715、一來源攔位716以及一位移攔位717。 [0048]運作上,在微處理器通電啟動期間,機器特定暫 存器702内之延伸攔位703的狀態係藉由訊號啟動狀態 (signalpower-up state) 701決定,以指出該特定微處理器是 否能轉譯與執行本發明之延伸指令,以定址該微處理器之附 加暫存器。在一具體實施例中,訊號7〇1係從一特徵控制暫 存器(圖上未顯示)導出,該特徵控制暫存器則讀取一於製 造時即已組態之熔絲陣列(fUSeaiTay)(未顯示)。機器特 定暫存器702將延伸特徵欄位703之狀態送至轉譯控制器 706。轉譯控制邏輯706則控制從指令緩衝器7〇4所提取之 指令,要依照延伸轉譯規則或習用轉譯規則進行解譯。提供 這樣的控制特徵,可允許監督應用程式(如BI〇s)致能/除 能微處理H之延伸執行舰。若延伸特徵鎌能,則具有被 選為延伸特徵標記之運算碼狀態的指令,將依習用轉譯規則 進打轉譯。在- x86的具體實施例中,選取運算碼狀態随 作為標記,則在習用的轉戦則下,遇到Fm將造成不合法 的指令異常(exception)。藉由將延伸轉譯除能,指令解碼 器谓將轉譯/解碼全部所提供之指令,並對微指令?12的所 有攔位7H-7n進行組態。然而,在延伸轉譯規則下,若遇 到標記,則會被逸出指令偵測器7〇8_出來。逸出指令偵 測器708因而允許指令解卿7〇9對該延伸指令之其餘部分 進行轉譯/解碼’並對微指令712之微運算碼棚位Μ與位移 攔位7Π加以組態,而延伸解則將解碼/轉譯該延伸 指令之延伸前置碼與其他可㈣部分,微指令712之 23 本紙張尺錢帛+ ®國家標準(CNS)A4規格(210 χ 2Θ7公餐7 --------^--------- (請先閱讀背面之注意事項再填寫本頁) 1222015 經濟部智慧財產局員工消費合作社印製 A7 (案號第091116959號專利#之綱書及_赞麵圍修正本〉 五、發明說明) 來源與目的攔位716、715。某些特定指令將導致對控制r〇m 711的存取,以獲取對應之微指令序列樣板。經過組態之微 才曰令712被送至一微指令仔列(未顯示於圖中),由處理器 進行後續執行。 α [0049] 現請參閱圖八,其為圖五之微處理器内延伸暫存 器階段邏輯800的方塊圖。該延伸暫存器階段邏輯800具一 暫存器邏輯802,其依本發明從一微指令緩衝器801或微指 令佇列801提取延伸微指令。暫存器邏輯8〇2具一包含既有 架構暫存器與附加暫存器之延伸暫存器檔案8〇3。在一 χ86 實施例中,暫存器R0-R7係八個既有之架構暫存器,而暫存 器R8-R15則為八個附加之暫存器。暫存器R〇-R15由延伸讀 取邏輯806讀取以獲得來源運算元,並由延伸回寫邏輯8〇7 寫入以儲存結果運算元。延伸讀取邏輯8〇6將來源運算元 OP卜OP2輸出至兩個運算元緩衝器8〇9、81〇。結果運算元 RSI、RS2則經由兩個結果緩衝器812、813送至延伸回寫邏 輯 807。 [0050] 運作上,延伸微指令係與一管線時脈(未顯示) 同步,從微指令佇列801送至暫存器邏輯8〇2。在一時脈週 期中,延伸讀取邏輯802解碼該延伸微指令之來源位址攔位 804、805,以判斷暫存器R〇-R15中,哪些暫存器存有一指 定運算所使用之來源運算元。來源運算元〇p卜〇p2則從中 被取出,並送至來源運算元暫存器8〇9、81〇。此外,該延伸 微指令經由管線送至緩衝器8〇8,以供微處理器之後續管線 階段(未顯示)使用。在同一時脈週期中,一最近所執行運 本紙張尺度適用中國國家標準(CNS)A4規格(210 297公釐) -----------裝---丨丨!丨訂--------- (請先閱讀背面之注意事項再填寫本頁) 1222015 —(案號第091116959號專利案之說明書及申&讎圍修正本) __ 五、發明說明(yf) --------------裝--- (請先閱讀背面之注意事項再填寫本頁) 算,結果RS卜RS2被回寫至由微指令緩衝㈣川中目的暫 存器攔位(未顯示)所指定的目的暫存器中。對應之結果運 算元RSI、RS2則被送至緩衝器812、813。 [0051] 圖八所示之暫存器階段邏輯8〇〇提供在單一時 脈週期内,一致地存取兩個來源暫存器與兩個結果暫存器之 能力。另一具體實施例則提供兩個來源運算元與單一之目的 運算元。為確保暫存器R〇-R15之一致性,延伸暫存器邏輯 802在執行結果RSI、RS2之回寫前,存取來源運算元〇ρι、 OP2 〇 [0052] 現請參閱圖九,其為描述本發明對定址微處理器 之延伸暫存器的指令進行轉譯與執行的方法之運作流程圖 900。流程開始於方塊902,其中一個組態有延伸暫存器定址 指令的程式,被送至微處理器。流程接著進行至方塊9〇4。 [0053] 於方塊904中,下一個指令係從快取記憶體/外 部記憶體提取。流程接著進行至方塊906。 經濟部智慧財產局員工消費合作社印製 [0054] 於方塊906中,依習用轉譯規則解碼/轉譯該下 個指令,其中該習用轉譯規則只應用於一既有指令集架構中 之既有架構暫存器。流程接著進行至方塊908。 [0055] 於方塊908中,運用該指令之運算碼與位址指定 元欄位,以決定對應於一指定運算之運算元的暫存器位址。 流程接著進行到方塊910。 [0056] 於方塊910中,一微指令序列被組態為指定該指 定運算及其對應運算元之暫存器位址。流程接著進行至判斷 方塊912。 25 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 1222015 經濟部智慧財產局員工消費合作社印製 (案號第091116959號專利案之說明書及申利範圍修正本) 五、發明說明(〆) [0057] 於判斷方塊912中,對在方塊904中所提取的下 個指令進行檢查,以判斷是否包含一延伸逸出標記/碼。若 否’則流程進行至方塊918。若偵測到該延伸逸出碼,則流 程進行至方塊914。 [0058] 於方塊914中,由於在方塊912中已读測到一延 伸逸出標記,轉譯/解碼係在一延伸暫存器指定元前置碼上執 行,以決定對應至該指定運算之延伸暫存器位址。在一具體 實施例中,該延伸暫存器指定元前置碼提供了所有決定該延 伸暫存器位址所需之位址位元。流程接著進行至方塊916。 [0059] 於方塊916中,對方塊910中所組態之該微指令 序列的運算元位址攔位進行修改,以顯示方塊914中所決定 之延伸運算元暫存器位址。流程接著進行至方塊918。 [0060] 於方塊918中,該微指令序列被送至一微指令仔 列,由微處理器執行。流程接著進行至方塊920。 [0061] 於方塊920中,該微指令序列由本發明之延伸暫 存器邏輯進行提取。該延伸暫存器邏輯從指定的延伸暫存器 提取對應該指定運算之運算元。流程接著進行至方塊922。 [0062] 於方塊922中,延伸執行邏輯使用方塊920中所 提取的運算元,執行該指定運算,並產生結果運算元。流程 接著進行至方塊924。 [0063] 於方塊924中,該結果運算元被送至延伸暫存器 邏輯,並被回寫至該微指令序列所指定之延伸暫存器。流程 接著進行至方塊926。 [0064] 於方塊926中,本方法完成。 26 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 言· ·
1222015 A7 (案號第091116959號專利案之說明書及申讀糾範圍修正
發明說明( 經濟部智慧財產局員工消費合作社印製 [0065] 方法900之另一實施例,則於轉譯運算(方塊 906與914)前,即開始偵測該延伸逸出碼(判斷方塊912 ), 而微指令序列則在單一步驟中進行組態,而不需進行置換之 步驟916。 、 [0066] 雖然本發明及其目的、特徵與優點已詳細敘述, 其它實施例亦可包含在本發明之範圍内。例如,本發明已就 如下的技術加以敘述:利用已完全佔用之指令集架構内一單 -、未使用之運算離態作為標記,以指出其後之延伸特徵 前置碼。但本發明的範圍就任一方面來看,並不限於已完全 佔用之指令集架構,或未使用的指令,或是單—標記。相反 地’本發明涵蓋了未完全映射之指令集、具已使用運算碼之 實施例以及使用一個以上之指令標記的實施例。例如,考慮 -沒有未使用運算碼狀態之指令㈣構。本發明之_具體^ 施例包含了選取一作為逸出標記之運算碼狀態,其中選取標 準係依市場因素喊定。另—具體實施删包含個運算碼 之一特殊組合作為標記,如運算碼狀態7FH的連續出現。因 此,本發明之本質係在於使用一標記序列,其後則為一η位 元之延伸刖置碼’可允許程式員在—延伸指令中指定附力口之 運算元暫存器,其並無法另由-微處㈣指令集之既有指令 來提供。 7 [0067] 再者,雖然上文係利用微處理器為例來解說本發 明及其目的、特徵和優點,熟習此領域技術者仍可察覺,本 發明的範·稀於微處理H的架構,而可涵蓋所有形式之 可程式化裝置,如訊號處理器、工顏控制器〇咖咖 — I— I I I I I · I I (請先閱讀背面之注意事項再填寫本頁) 訂: ^·
& 鮮(CNS)A4 規格⑽ x 29277 公 F 1222015 (案號第〇9丨1丨6959號專利案之說明書及申養斧利範圍修正本) 五、發明說明(1) controller)、陣列處理器及其他同類裝置。 總之’以上所述者,僅為本發明之較佳實施例而已,當 不能以之限定本發明所實施之範圍。大凡依本發明申請專利 範圍所作之均等變化與修飾,皆應仍屬於本發明專利涵蓋之 範圍内’謹請貴審查委員明鑑,並祈惠准,是所至禱。 ---_--------Μ裝—— (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 —— _ 28 本紙張尺度適用中國國家標準(CNS)A4規格(2w χ 297公餐)
Claims (1)
1222015 A8 B8 (案號第091116959號專利案之說明書及中請專:g|&圍修正本) 申請專利範圍 1· 一種用以存取一微處理器内之延伸暫存器的裝置,包含: 一轉譯邏輯,用以將一延伸指令轉譯成對應之微指令, 由該微處理器執行,其中該延伸指令包含: 一延伸前置碼,用以指定暫存器位址延伸項,該暫存 器位址延伸項指出該延伸暫存器,其中該延伸暫存 器並不能由一既有指令集加以指定;以及 一延伸前置碼標記,用以指出該延伸前置碼,其中該 延伸前置碼標記係原本該既有指令集内另一依據 架構所指定之運算碼;以及 一延伸暫存器邏輯,麵接至該轉譯邏輯,用以接收該對 應之微指令,並存取該延伸暫存器。 2·如申請專利範圍第1項所述之裝置,其中該延伸指令更 包含依據該既有指令集所具有之複數個指令項目。 3·如申請專利範圍第2項所述之裝置,其中該些指令項目 指定該微處理器所要執行之一運算,且其中對應該運算 之運算元係提取自/儲存至該延伸暫存器。 4·如申請專利範圍第3項所述之裝置,其中該些指令項目 更指定了複數個架構暫存器位址。 5·如申請專利範圍第4項所述之裝置,其中該轉譯邏輯使 用該些暫存器位址延伸項來決定該延伸暫存器。 6.如申請專利第4項所述之裝置,其中該轉譯邏輯將 該些暫存器位址延伸項與該些架構暫存器位址結合,以 決定該延伸暫存器。 本紙張尺度適用中國國家標準(CNS )入4祕(21〇χ297公嫠) ---r-----I, (請先閱讀背面之注意事項再填寫本頁〕 、一HT» 經濟部智慧財產局員工消費合作社印製 1222015 A8 B8 (案號第091116959號專利案之說明書及申請專圍修正本) 經濟部智慧財產局員工消費合作社印製 申請專利範圍 7. 如申請專利㈣第1項所述之裝置,其中該延伸前置碼 包含8個位元。 8. 如申請專利範圍帛i項所述之裝置,其中該延伸前置碼 包含: 一來源暫存器位址延伸項,用以指定一包含一第一來源 運算元之第一延伸暫存器;以及 一目的暫存器位址延伸項,耦接至該來源暫存器位址延 伸項,用以指定-包含-第二來源運算元之第二延伸 暫存器,並指定該第二延伸暫存器用於儲存一結果運 唆 一 异兀。9·如申請專利範圍第1項所述之裝置,其中該既有指令集 包含x86指令集。 〃 10·如申請專利範圍第9項所述之裝置,其中該延伸前置碼 標記包含x86指令集之運算碼F1 (ICEBKPT)。 11·如申請專利範圍第i項所述之裝置,其中該轉譯邏輯包 含: 一逸出指令偵測邏輯,用於偵測該延伸前置碼標記; 一指令解碼邏輯,依據該既有指令集,決定一所要執行 之運算及所用之架構暫存器;以及-延伸解碼邏輯,输至該逸出指令_邏輯與該指令 解碼邏輯,用以決定該延伸暫存器,並於該對應微^ 令内指定該延伸暫存器。 曰12.-麵充-既有織理n齡_提伽加之運算 存器的裝置,包含: &張尺I適财關家標準(CN;) A4· (21GxH赛)- (請先閱讀背面之注意事項再填寫本頁) -裝· 訂 (案號第 091116959 A8 B8 號專利案之朗纽巾請專魯歸正本) 、申請專利範圍 一 mt,ϊί為狀職—紅移之該附加運算 其延伸指令包含該既有微處理器指令 i其中—選取之運算碼η位元之延伸 刖置碼’該選取之運算碼指出該延伸指令,而該η位 疋之延=前置碼則指出該附加運算元暫存器,其中該 ,,元暫存器無法依該既有微處理器指;集另 行指定;以及 一轉澤器,_為接收該延伸齡’並產生—微指令序 列’以指示該微處理器於該指定運算執行時,存取該 附加運算元暫存器。 13. 如申請專利範圍第12項所述之裝置,其中該延伸指令更 包含: 其餘指令項目,組態為指定該指定運算,其中該指定運 算由該微處理器執行,且其中對應該指定運算之運算 元係提供自/至該附加運算元暫存器。 14. 如申請專利第13項所述之裝置,其中該η位元之前 置碼包含: 暫存器延伸項攔位,每一該攔位係組態為對於每一該附 加運算元暫存器之-位址,指定其較高的位址位元。 15·如申請專利範圍第14項所述之裝置,其中該位址較低的 位址位元係由該延伸指令内之該其餘指令項目所提供。 16·如申請專利範圍第12項所述之裝置,其中該11位元之延 伸前置碼包含8個位元。 17·如申請專利範圍第12項所述之裝置,其中該既有微處理 31 私紙張尺度適用中國國家標準(CNS ) Α4規格(210χ:297公釐) IIL-IΚ----^II (請先閱讀背面之注意事項再填寫本頁) 訂
經濟部智慧財產局員工消費合作社印製 1222015 (案號第091116959號專利案之說明書及申請專#圍修正本) 申請專利範圍 器指令集係X86微處理器指令集。 18. 如申請專利範圍第17項所述之裝置,其中該選取之運算 碼包括x86微處理器指令集中之icebkPT運算碼(即運 算碼F1)。 19. 如申請專利範圍第13項所述之延伸裝置,其中該轉譯器 包含: ^ 一逸出指令偵測器,用以偵測該延伸指令内之該選取之 運算碼; 一指令解碼器,用以解碼該延伸指令之其餘部分,以決 定該指定運算;以及 一延伸前置碼解碼器,耦接至該逸出指令偵測器與該指 令解碼器,用以解碼該η位元之延伸前置碼,並於該 微指令序列内指定該附加運算元暫存器。 2〇·-種為-既有指令集增添延伸暫存器之定址能力的指令 集延伸裝置,包含: 一逸出標記,由一轉譯邏輯接收,並指出一對應指令之 ,隨部分係指定了-微處理H所要執行之—延伸運 真,其中該逸出標記係該既有指令集内之一第一運算 碼; -延伸暫存難定元,_至該軸標記,且為該瞒 部分其中之一,該延伸暫存器指定元指定了複數個對 應至延伸暫存器之位址延伸項,其中該延伸暫存器係 該延伸運算之所需;以及 一延伸暫存ϋ邏輯,触至該轉譯邏輯,用以於該指定 (請先閲讀背面之注意事項再填寫本頁) -裝- 訂 經濟部智慧財產局員工消費合作社印製 (案號第091116959號專利案之說明書及申請專g赛圍修正本) 六、申請專利範圍 運鼻執行時,存取該延伸暫存器,其中該既有指令集 僅提供定址既有暫存器的能力,且其中該延伸暫存器 指定元致能定址該延伸暫存器的能力。 21·如申請專利範圍第20項所述之指令集延伸裝置,其中該 附隨部分之其餘部分包含一第二運算碼與選用之複數個 位址指定元,用以指定該延伸運算與複數個位址,其中 5玄些位址延伸項與該些位址組合,以產生該延伸暫存器 之延伸位址。 22·如申請專利範圍第20項所述之指令集延伸裝置,其中該 延伸暫存器指定元包含8個位元。 23·如申請專利範圍第20項所述之指令集延伸裝置,其中該 既有指令集係x86指令集。 24·如申请專利範圍第23項所述之指令集延伸裝置,其中該 第一運算碼包含x86指令集中之ICE BKPT運算碼(即運 算碼F1)。 25·如申请專利範圍第20項所述之指令集延伸裝置,其中該 轉譯邏輯將該逸出標記與該附隨部分轉譯成對應的微指 令,該對應的微指令係指示該延伸暫存器邏輯於該延伸 運鼻執行時’去存取該延伸暫存器,以提取/儲存運算元。 26·如申請專利範圍第20項所述之指令集延伸裝置,其中該 轉譯邏輯包含: -逸出標記制邏輯,用以細該逸出標記,並指示該 附隨部分的轉譯動作需依據延伸轉譯常規 (conventions );以及 ____33 本紙張尺度適用中國國家標準(CNS ) A4規格(21〇χ 297公釐)一--------- 丨 (請先閲讀背面之注意事項再填寫本頁) -裝· 訂 1222015 (案號第^案之說明書及申請專|8_修正本) 六、申請專利範圍 一解碼邏輯,減至魏㈣記伽邏輯,用以依據該 既有指令集之常規,執行指令的轉譯動作,並依據該 延伸轉譯常規執行該對應指令之轉譯,以致能定址該 延伸暫存器的能力。 27·—種擴充一既有指令集架構的方法,以提供一微處理器 内延伸暫存器之可程式化的定址能力,該方法包含·· 提供一延伸指令,該延伸指令包括一延伸標記及一延伸 前置碼,其中該延伸標記係該既有指令集架構中一第 一運算碼項目; 透過該延伸前置碼與該延伸指令之其餘部分,指定該延 伸暫存器,其中該延伸暫存器係於一指定運算執行時 被存取,且其中該既有指令集架構僅依據該指令集架 構提供可定址既有暫存器之指令;以及 於該指定運算執行時,存取該延伸暫存器。 28·如申請專利範圍第27項所述之方法,其中該指定延伸暫 存器的動作包含: 首先指定該指定運算,其中該首先指定之動作使用了該 既有指令集架構中一第二運算碼項目。 Λ 29·如申請專利範圍第27項所述之方法,其中該提供延伸指 令之動作包含使用一 8位元大小之項目,以對該延伸驴 置碼進行組態。 J 30·如申請專利範圍第27項所述之方法,其中該提供延伸指 令之動作包含從x86微處理器指令集架構選取該第 算碼項目。 (請先閱讀背面之注意事項再填寫本頁) 裝· 訂 經濟部智慧財產局員工消費合作社印製
申料修正本)、申請專利範圍 31.==:°項所述之方法,其中該選取第-運 碼⑴作為=::ΐ取X86ICEBKPT運算碼(即運算 32·如申明專利範圍第27項所述之方法,更包含: 將該延伸指令轉譯成微指令,該微指令係指示一延伸執 灯邏輯去存取該延伸暫存器。 33. ^申請專利範圍第幻項所述之方法,其中該轉譯延伸指 令的動作包含: 於::譯邏輯内,偵測該延伸標記; 以及 Ά伸轉澤規則解碼該延伸前置碼與該其餘部分,以 確認該轉譯動作所需之該延伸暫存器。 (請先閱讀背面之注意事項再填寫本頁) • 1 - I I- I I - · 裝· 、11- 經濟部智慧財產局員工消費合作社印製
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/144,590 US7373483B2 (en) | 2002-04-02 | 2002-05-09 | Mechanism for extending the number of registers in a microprocessor |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TWI222015B true TWI222015B (en) | 2004-10-11 |
Family
ID=22509253
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW91116959A TWI222015B (en) | 2002-05-09 | 2002-07-30 | Mechanism for extending the number of registers in a microprocessor |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN1414464B (zh) |
| TW (1) | TWI222015B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112286577B (zh) | 2020-10-30 | 2022-12-06 | 上海兆芯集成电路有限公司 | 处理器及其操作方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6009510A (en) * | 1998-02-06 | 1999-12-28 | Ip First Llc | Method and apparatus for improved aligned/misaligned data load from cache |
| US6014736A (en) * | 1998-03-26 | 2000-01-11 | Ip First Llc | Apparatus and method for improved floating point exchange |
| CN1242546A (zh) * | 1998-03-31 | 2000-01-26 | 英特尔公司 | 用于处理不精确异常的一种方法和装置 |
-
2002
- 2002-07-30 TW TW91116959A patent/TWI222015B/zh not_active IP Right Cessation
- 2002-11-13 CN CN 02150560 patent/CN1414464B/zh not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| CN1414464A (zh) | 2003-04-30 |
| CN1414464B (zh) | 2010-04-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW591527B (en) | Apparatus and method for extending a microprocessor instruction set | |
| US7529912B2 (en) | Apparatus and method for instruction-level specification of floating point format | |
| EP1351131B1 (en) | Mechanism for extending the number of registers in a microprocessor | |
| KR100323191B1 (ko) | 다중명령세트를이용한데이터프로세싱장치 | |
| US5630083A (en) | Decoder for decoding multiple instructions in parallel | |
| US5537629A (en) | Decoder for single cycle decoding of single prefixes in variable length instructions | |
| US7155598B2 (en) | Apparatus and method for conditional instruction execution | |
| US7395412B2 (en) | Apparatus and method for extending data modes in a microprocessor | |
| US7380109B2 (en) | Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor | |
| EP1336918B1 (en) | Apparatus and method for selective memory attribute control | |
| EP1351135B1 (en) | Microprocessor and method for selective control of condition code write back | |
| TWI222015B (en) | Mechanism for extending the number of registers in a microprocessor | |
| TWI220042B (en) | Non-temporal memory reference control mechanism | |
| TWI245221B (en) | Apparatus and method for selective memory attribute control | |
| TW561406B (en) | Apparatus and method for selective control of results write back | |
| TWI230356B (en) | Apparatus and method for extending address modes in a microprocessor | |
| TWI224284B (en) | Selective interrupt suppression | |
| JPH0642198B2 (ja) | デ−タ処理装置 | |
| TW583583B (en) | Apparatus and method for selective control of condition code write back | |
| TWI223773B (en) | Suppression of store checking | |
| Duong | Dynamic dual dynamic binary translation | |
| JPH01217633A (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MK4A | Expiration of patent term of an invention patent |