TWI245221B - Apparatus and method for selective memory attribute control - Google Patents
Apparatus and method for selective memory attribute control Download PDFInfo
- Publication number
- TWI245221B TWI245221B TW091124008A TW91124008A TWI245221B TW I245221 B TWI245221 B TW I245221B TW 091124008 A TW091124008 A TW 091124008A TW 91124008 A TW91124008 A TW 91124008A TW I245221 B TWI245221 B TW I245221B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- instruction
- extended
- item
- patent application
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
1245221 Α7;^ (案號第091124008號專利案之說明書修正 ;λ* η
五、發明說明( 與相關申請案之對照 經濟部智慧財產局員工消費合作社印製 [0001] 本申凊案主張以下美國申 、㈣甲明累之優先權:幸 10/227572,申請日為2002年8月22日。 系就 [0002] 本申請案與下列同在申請中之美國專利 關,都具有相同的申請人與發明人。 〃 台灣申請 案號 申請曰 DOCKET NUMBER 置及方法 91116957 7/30/02 CNTR:2176 91116958 7/30/02 CNTR:2186 執行條件指令之裝置及方 法 91116956 7/30/02 CNTR:2188 選擇性地控制條件碼回寫 91116959 7/30/02 CNTR:2189 增加微處理器之暫存器數 量的機制 91124005 10/18/02 CNTR:2190 延伸微處理器資料模式之 裝置及方法 91124006 10/18/02 CNTR:2191 延伸微處理器位址模式之 裝置及方法 CNTR:2192 儲存檢查之禁止 CNTR:2193 之禁止 91124007 10/18/02 CNTR:2195 一 -————— 非暫存記憶體參照控制機 制 91116672 7/26/02 CNTR:2198 —---—-— 選擇性地控制結果回寫之 裝置及方法 "----- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
A7 |繁正替換則 書修— i J 經濟部智慧財產局員工消費合作社印製 1245221 (案號第刚 五、發明說明(X ) (一)發明技術領域: 毛月係有關微電子的領域,尤指一種能將選擇 性的記憶體屬性控舰A ^ ^ 衩制納入一既有之微處理器指令集架構的技 (二)發明技術背景·· _4]自1970年代初發韌以來,微處理器之使用即呈 指數般成長。從最早應用於科學與技術的領域,到如今已從 那些特殊領域引進商業的消費者領域,如桌上型與膝上型 (laptop)電腦、視訊遊戲控制器以及許多其他常見的家用盘 商用裝置等產品。 [〇〇〇5] Ik著使用上的爆炸性成長,在技術上也歷經一相 對應之提昇,其特徵在於對下列項目有著日益昇高之要求·· 更快的速度、更強的定址能力、更快的記憶體存取、更大的 運异元、更多種一般用途類型之運算(如浮點運算、單一指 令多重資料(SIMD)、條件移動等)以及附加的特殊用途運 异(如數位机號處理功能及其他多媒體運算)。如此造就了 該領域中驚人的技術進展,且都已應用於微處理器之設計, 像擴充管線化(extensive pipelining )、超純量架構(super_scalar architecture )、快取結構、亂序處理(out-〇fiorder processing )、 爆發式存取(burst access )機制、分支預測(branch predication ) 以及假想執行(speculative execution)。直言之,比起30年 前剛出現時,現在的微處理器呈現出驚人的複雜度,且具備 了強大的能力。 _________2___ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂------------線- [245221 A7 (案號第〇91124〇08號專利案之說明書修正)B7
經濟部智慧財產局員工消費合作社印製 五、發明說明( [0006] 但與許多其他產品不同的是,有另一非常重要的 因素已限制了,並持續限制著微處理器架構之演進。現今微 處理器會如此複雜’ 一大部分得歸因於這項因素,即舊有軟 體之相容性。在市場考量下,所多製造商選擇將新的架構特 徵納入最新的微處理器設計中,但同時在這些最新的產品 中,又保留了所有為確保相容於較舊的、即所謂「舊有」 (legacy)應用程式所必需之能力。 [0007] 這種舊有軟體相容性的負擔,沒有其他地方,會 比在x86-相容之微處理器的發展史中更加顯而易見。大家都 知道,現在的32/16位元之虛擬模式(virtuai_m〇de) χ86微 處理器,仍可執行1980年代所撰寫之8位元真實模式 (real-mode)的應用程式。而熟習此領域技術者也承認,有 不少相關的架構「包祇」堆在x86架構中,只是為了支援與 舊有應用程式及運作模式的相容性。雖然在過去,研發者可 將新開發的_特徵加人既有的齡集雜,但如今使用這 些特徵所憑藉之工具,即可程式化的指令,卻變得相當稀少。 ^簡單地說,在某些重要的指令集中,已沒有「多餘」的指 令,讓設計者可藉以將更新的特徵納入一既有的架構中。 —[0008]例如,在x86指令集架構中,已經沒有任何一未 定義的-位元組大小的運算碼狀態,是尚未被使用的。在主 ,的-位兀組大小之傷運算碼圖中,全部MS個運算碼狀 態都已被既有的指令佔用了。結果是,χ86微處理器的設計 者現,必齡提供新槪與保留舊有軟體相容性兩者間作挟 擇。右要提供新的可程式化特徵,則必須分派運算·大態給 (210 X 297 公釐) (請先閱讀背面之注意事項再填寫本頁) •-禮 -------訂—-------·
I 245221 (案號第〇9l m〇〇8號專利案之說明書修正)
經濟部智慧財產局員工消費合作社印製 五、發明說明(4·) 這些特徵。若既有的指令集架構沒有多餘的運算碼狀態,則 某些既存的運算碼狀態必須重新絲,以提供給新的特徵: 因此,為了提供新的特徵,就得犧牲舊有軟體相容性了。 [0009]現今微處理器設計者所關心的一個領域,為應用 程式如何有效率地使用快取記憶體結構。隨著快取技術的演 進,已提供越來越多的特徵,其允許系統程式員可控制一^ 統中快取記憶體何時及如何被使用。早_快取控制特徵僅 提供開/關的能力。藉由設定微處理器之一内部暫存器,或藉 由將其封裝體(package)上之某外部訊號腳位設為真,設^ 者可將§己憶體之快取致能,或將整個記憶體空間設定為不可 快取(uncacheable)。對於不可快取之記憶體參照(㈤⑽町 reference)(即載入/讀取與儲存/寫入),則皆送至系統記憶 體匯流排,而產生與外在匯流排架構相同之等待時間 (latency)。相反地,§己憶體對於一快取記憶體之參照或存 取,只有在一快取未中(cache miss)發生時(亦即,一記憔 體參照的目標在内部快取記憶體内並非有效),才被送至系 統記憶體匯流排。快取特徵使得應用程式在執行速度上大幅 提昇’特別是應用程式對記憶體中相同的資料結構進行重複 參照時。 [0010]晚近微處理器架構上的改進,已使得系統設計者 能更精確地控制如何使用快取特徵。這些改進允許設計者在 微處理器的位址空間内,定義一個範圍之位址的性質,其中, 此定義是以微處理器對這些位址的參照是如何依其快取層級 架構(cache hierarchy)執行的方式進行。一般而言,對這些 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公髮) (請先閱讀背面之注意事項再填寫本頁) ί祕 訂---------線, 經濟部智慧財產局員工消費合作社印製 1245221 A7 (案號第091124〇08號專利案之說明書修正)B7 五、發明說明(r) 位址的參照可被定義為不可快取、複合寫入(write combining)、寫透(write through)、回寫(writeback)或 寫入保護(write protected)。這些性質稱為記憶體屬性 (attribute),或記憶體特性(t]rait)。因此,具有回寫屬性 之位址的儲存參照,會被送到快取記憶體,並假想地 (speculatively)分派至其中的儲存位置。對具有不可快取屬 性之另一位址的儲存參照,則送至系統匯流排,且不會進行 假想地分派儲存位置的動作。 [0011] 不過,對於記憶體屬性及特定屬性如何由微處理 器藉其快取記憶體加以處理,提供一深度的說明,則不在本 申請案的範圍内。此處去了解本技術領域目前所能使設計者 指派一記憶體屬性予一記憶體區域,以及所有後續對該區域 内位址之記憶體參照,將依據關聯於該指定記憶體屬性之快 取原則(cachepolicy)來處理,如此即已足夠。 [0012] 雖然現代的微處理器設計允許記憶體的不同區 域被賦予不同的記憶體特性,但在兩個重要方面,設計上仍 受限制。第一,微處理器指令集架構限制了用以定義/改變記 憶體特性至使用者層級(user_level)的應用程式所無法存取 之一(privilege)層級的指令執行。因此,當一桌上型/膝上 型微處理器啟動時,其作業系統在任何使用者層級應用程式 開啟前,便將實體記憶體空間之記憶體特性建立好。因而使 用者層級的應用程式便不能改變主機系統之記憶體特性。第 二、,在現代微處理H中,用來建立記憶體特性的最佳處理層 級為分頁層級。在習用之允許記憶體分頁 ---------8___ 本紙張尺度適用中國國豕標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂--------- n ϋ n n - A7 1245221 (案號g 〇9丨 l24〇〇8 五、發明說明(△ 的架構中,每一記憶體分頁之記憶體屬性,由作業系統在分 頁目錄/表(pagedirectory/table)之項目内作進一步界定。因 此’所有對於-特定分頁内位址之參照,將使用於該相關記 憶體存輯算執行時輯奴記紐屬性。 [0013]對許多應用程式而言,上述之控制特徵雖可讓« 用者層級_聰式在執行速度上有鴨的改進,但本案發 明人注意到,就其他的制程式而言仍會麵限制。這除了 因為在使肖者層級上,並無法制現代的記髓特性控制, 也因為Zlt體>|性僅能依分頁層級(page_levei)的單位來建 立。例如,-個對一第一資料結構作重複存取的使用者程式, 在對一第二資料結構進行一附帶的參照時,若第-資料結構 的快取項目必須清除,以空出快取記憶體的空間供第二資料 結構使用,則該使用者程式的執行效率會因而受到影響。、由 =作業系統並未預知使用者層級之顧程式對崎料結構的 多照頻率,應用程式的資料空間—般皆被賦予1寫特性, 因而促成了前猶突的產生條件。程式員並財用來更改資 特性紅具,㈣迫_帶參轉送至記憶體匯流排 賦予不可快取之特性給該第二資料結構),而排除 _4]因此,我們所需要的是,一種可將選擇性的記憶 體屬性控制特徵納人既有微處理器指令集 法,其中該微處理器指令集係被已定義之運算碼完全佔用方 入生控制特徵除了不影響—符合舊有規格之《理 丁售有應用程式的能力’同時還提供程式員修改記憶體 ^--------- (請先閱讀背面之注意事項再填寫本頁) - 本紙張尺度適用中國國家標準(CNS)A4規格(210 : 297公釐) 245221 __潔號第〇91】2棚8號專利案之說明書修正)^
五、發明說明(9 屬性的能力。 (三)發明簡要說明: 經濟部智慧財產局員工消費合作社印製 [0015] 本發明如同前述其他申請案,係針對上述及其他 習知技術之問題與缺點加以克服。本發明提供一種更好的技 術,用以擴充微處理器之指令集,使其超越現有的能力,提 供指令層級的記憶體特性控制特徵。在一具體實施例中,提 供了 -種可在微處理器内進行記憶體屬性之指令層級控制的 装置。該裝置包括一轉譯邏輯(translati〇nk)gic)與一延伸執 行邏輯(extended execution logic)。該轉譯邏輯將一延伸指 令轉譯成一微指令序列(micro instmcti〇n等_)。該^ 伸指令具一延伸前置碼(extendedpreflx)與一延伸前置碼標 圯(extended prefix tag)。該延伸前置碼對於該延伸指令所 指定之-記紐參照,指定—記紐雖,其巾該記憶體來 照之記憶體特性不能由一既有指令集之一既有指令來指定。 該延伸前置碼標記則指出該延伸前置碼,其中延伸前置碼標 圮係原本該既有指令集内另一依據架構所指定之運算碼。該 延伸執行邏輯減至轉譯賴,用以接收該微指令序列,並 應用该§己憶體特性來執行該記憶體參照。 [0016] 本發明的一個目的,係提出一種延伸既有指令集 以提供記憶體特性之選擇性控制的微處理器機制。該微處理 器機制具有-延伸指令與-轉譯器(tfanslatw)。該延伸指 令指定一記憶體存取之記憶體屬性,其中該延伸指令包含該 既有微處理器指令集其中一選取之運算碼,其後則接著一 n 10 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公f 1245221 A / (案號第〇91124〇08號專利案之說明書修正)B7 五
經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 、發明說明(g) 位元之延伸前置碼。該選取之運算碼指出該延伸指令,而該 η位几之延伸前置碼則指出該記憶體屬社。該記憶體存取之 讀體屬性不能另依該既有指令集之指令加以指定。該轉譯 器接收該延伸指令,並產生一微指令序列,以指示微處理器 執行該戏體存取,其巾該記憶體存取將依該記碰屬性執 行。 [0017]本發明的另—目的,在於提出—種為既有指令集 增添指令層級之記憶體特生控制特徵 一 逸出標記(―)、-記憶體特性指ΐ元(:二 spmfier)及-延伸執行邏輯。觀出標記由—轉譯邏輯接 收’並指出-對縣令之晒部分触定了—纖體存取, 其中該逸出標記為觀有齡_之—第—運算碼。該記憶 體特性指定元耗接至該逸出標記,且為該附隨部分其中之 一’用以奴魏個記麵雜其巾之—予就舰存取。 該延伸執行邏輯耗接至該轉譯邏輯,利用所指定之記憶體特 性執行該記憶體存取,其中該既有指令集僅提供該記憶體存 =之-預設記紐雛之指定,且該延伸執行邏輯應用所指 定之記憶體特性取代該預設記憶體特性。 /0018]本發明的再一目的,在於提供一種擴充既有指令 集架構的方法,以致能指令層級之選擇性記憶體屬性控制。 該方法包括提供-延伸指令,該延伸指令包含一延伸標記及 一延伸别置碼,其中該延伸標記係該既有指令集架構其中一 第一運算碼項目;透過該延伸前置碼指定要應用於一對應記 憶體存取之一記憶體屬性,其中該記憶體存取係由該延伸指 本紙^度適用中關家鮮(CNS)A4規格⑽^97公爱) (請先閱讀背面之注意事項再填寫本頁) 訂: -丨線· A7 1245221 (案號第091丨24〇〇8號專利案之說明書修正)B7 五、發明說明(γ) 令之其餘部分所指定;以及應用該記憶體屬性以執行該記憶 (請先閱讀背面之注意事項再填寫本頁) 體存取,其中該應用動作取代了該記憶體存取之一預設記憶 體屬性。 (四)發明圖示說明·· [0019] 本發明之前述與其它目的、特徵及優點,在配合 下列說明及所附圖示後,將可獲得更好的理解: [0020] 圖一係為一相關技術之微處理器指令格式的方 塊圖; [0021] 圖二係為一表格’其描述一指令集架構中之指 令’如何對應至圖一指令格式内一 8位元運算碼位元組之位 元邏輯狀態; [0022] 圖三係為本發明之延伸指令格式的方塊圖; [0023] 圖四係為一表格,其顯示依據本發明,延伸架構 線. 特徵如何對應至一 8位元延伸前置碼實施例中位元的邏輯狀 態; [0024] 圖五係為解說本發明應用選擇性的記憶體屬性 控制之一管線化微處理器的方塊圖; 經濟部智慧財產局員工消費合作社印製 [〇〇25]圖六係為本發明用於指定一微處理器中之延伸 記憶體特性的延伸前置碼之一具體實施例的方塊圖; [0026]圖七係為本發明用於指定一微處理器中之延伸 記憶體特性的延伸前置碼之另一具體實施例的方塊圖; [〇〇27]圖八係為一表格,其解說圖七延伸前置碼中典型 記憶體特性之一編碼範例; ^張尺度適Γ中關家標準(CNS)^格(21G xy97公6" 1245221 _月書修正)ba; 五、發明說明
D 圖九係為圖五微處理器内轉譯階段邏輯之細部 的方塊圖; ;以;!圖十係為圖五之微處理器峡伸執行邏輯的方 塊圖;以及 # 圖十―係為描述本發_於取代—微處理器之 s己憶體特性的方法之運作_圖。 經濟部智慧財產局員工消費合作社印製 圖號說明: 100指令格式 102運算碼 2〇〇 8位元運算瑪圖 202運算碼Flfi 300延伸指令格式 3〇2運算碼 3〇4延伸指令標記 4〇〇 8位元前置碼圖 5〇〇管線化微處理器 502指令快取記憶體/外部記衡 503指令彳宁列 505延伸轉譯邏輯 5〇7執行邏輯 600延伸前置碼 602目的特性欄位 7〇〇記憶體屬性前置碼 101 103 201 301 303 305 401 501 504 506 508 601 前置碼 位址指定元 運鼻碼值 前置石馬 位址指定元 延伸前置碼 架構特徵 提取邏輯 轉譯邏輯 微指令狩列 延伸執行邏輯 來源特性攔位 701屬性攔位 本紙張尺度賴巾@i^^(eNS)A4 [245221 A7 (案號第〇9】丨24〇〇8號專利案之說明書修正)^ 94. 4.2 2 五 經濟部智慧財產局員工消費合作社印製 發明說明(/1 ) 702 來源位元 704備用攔位 800表格 900轉譯階段邏輯 902機器特定暫存器 904指令緩衝器 906轉譯控制器 908逸出指令偵測器 910指令解碼器 912微指令緩衝器 914微運算碼攔位 916來源攔位 1000延伸執行階段邏輯 1002位址緩衝器 1004目的運算元緩衝器 1〇〇6記憶體特性描述元 1008匯流排單元 1010儲存緩衝器 1012匯流排 1014儲存緩衝器 703 目的位元 901啟動狀態訊號 903延伸特徵攔位 905轉譯邏輯 907除能訊號 909延伸前置碼解碼器 911控制唯讀記憶體 913運算碼延伸項攔仅 915目的攔位 917位移攔位 1001延伸微指令緩衝 1003位址緩衝器 1005延伸存取邏輯 1007快取記憶體 10〇9存取控制器 1011快取記憶體 1013匯流排 1015來源運算元緩衝器 器 1100〜1128崎錢—微歧紅記麵雛二法之H 流程 、枣作 (五)發明詳細說明·· []以下的說明,係在-特定實施例及其必要條件的 本紙張尺度綱 (請先閱讀背面之注意事項再填寫本頁) 醫 訂---------緩· 1245221 A7 (案號第〇9丨丨24〇〇8號專利案之說明書修正) 換 a 經濟部智慧財產局員工消費合作社印製 五、發明說明(丨二) 脈絡下而提供,可使一般熟習此項技術者能夠利用本發明。 然而,各種對該較佳實施例所作的修改,對熟習此項技術者 而吕乃係顯而易見,並且,在此所討論的一般原理,亦可應 用至其他實施例。因此,本發明並不限於此處所展示與敛^ 之特定實施例,而是具有與此處所揭露之原理與新穎特徵相 符之最大範圍。 ' ^ [0032] 前文已針對今日之微處理器内,如何擴充其架構 特徵,以超越相關指令集能力之技術,作了背景的討論。有 鑑於此,在圖一與圖二,將討論一相關技術的例子。此處的 时論強調了微處理器設計者所一直面對的兩難,即一方面, 他們想將最新開發之架構特徵納入微處理器的設計中,但另 -方面,他們又要保留執行舊有應用程式的能力。在圖一至 二的例子中,一完全佔用之運算碼圖,已把增加新運算碼至 該範例架構的可能性排除,因而迫使設計者要不就選擇將新 特徵納入,而犧牲某種程度之舊有軟體相容性,要不就將架 構上的最新進展一併放棄,以便維持微處理器與舊有應用程 式之相容性。在相關技術的討論後,於圖三至十一,將提供 對本發明之討論。藉由利用一既有但未使用之運算碼作為二 延伸指令之前置碼標記,本發明可讓微處理器設計者克服已 完全使用之指令集架構的限制,在允許他們提供程式員於指 令層級對一特定記憶體參照指派記憶體特性之能力的同時, 9 也能保留與舊有應用程式的相容性。 [0033] 請參閱圖-,其係一相關技術之微處理器指令格 式100的方塊圖。該相關技術之指令励具有數量可變之資 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) (請先閱讀背面之注意事項再填寫本頁) — — — — — — — ·111111 I · · 經濟部智慧財產局員工消費合作社印製 1245221 (案號第091124〇08號專利案^書條不^; 五、發明說明(/4) 剛〇3,每_項目皆設定成_特定值,合在一起便組 100 0 1〇〇 二執订-特定運算,例如將兩運算^相加,或找將一運算 凡從記憶體搬移至—内部暫存器,或從該内部暫存器搬移I 記憶體。-般而言,指令刚内之運算碼項目撤指定了所 要執订讀定運算,而選用(optional)之位址指定元項目刚 位,運算碼102之後,以指定關於該特定運算之附加資訊, 像疋如何執行該運算,運算元位於何處等等。指令格式⑺0 並允許私式員在-運异碼102前加上前置碼項目1〇1。在運 算碼102所指定之特定運算執行時,前置碼1〇1用以指示是 =使用特定的架構特徵。一般來說,這些架構特徵能應用於 指令集中任何運算碼102所指定運算的大部分。例如,現今 刖置碼101存在於一些能使用不同大小虛擬位址(如8位元、 16位το、32位元)執行運算的微處理器中。而當許多此類處 理器被程式化為一預設的位址大小時(比如32位元),在其 個別指令集中所提供之前置碼1〇1,仍能使程式員依據各個 指令’選擇性地取代(override)該預設的位址大小(如為了 產生16位元之虛擬位址)。可選擇之位址大小僅是架構特徵 之例’在許多現代的微處理器中,這些架構特徵能應用於 果夕了由運异碼1〇2加以指定的運算(如加、減、乘、布林 邏輯等)。 [0034]圖一所示之指令格式100,有一為業界所熟知的 範例,此即x86指令格式100,其為所有現代之χ86_相容微 處理器所採用。更具體地說,χ86指令格式100 (也稱為χ86 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) --------訂---------線 1245221 (案號第09】124008號專利案之說明書修正)]& A7 五、發明說明( ./4 ) 才曰令集架構100)使用了 8位元前置喝1〇卜8位元運算碼丨〇2 以及8位元位址指定元1〇3。\86架構1〇〇亦具有數個前置碼 ,其中兩個取代了 x86微處理器所預設的位址/資料大小 (即運异碼狀態66H與67H),另一個則指示微處理器依據 不同的轉譯規則來解譯其後之運算碼位元組1〇2 (即前置碼 值0FH,其使得轉譯動作是依據所謂的二位元組運算碼規則 來進行),其他的前置碼101則使特殊運算重複執行,直至 重複條件滿足為止(即REP運算碼·· F〇H、F2H及F3H)。 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) --線· [0035]現請參閱圖二,其顯示一表格2〇〇,用以描述一 指令集架構之指令201如何對應至圖一指令格式内一 8位元 運算碼位元組102之位元值。表格2〇〇呈現了 一 8位元運算 碼圖200的範例,其將一 8位元運算碼項目1〇2所具有之最 多256個值,關聯到對應之微處理器運算碼指令2〇1。表格 200將運算碼項目1〇2之一特定值,譬如〇2H,映射至一對 應之運算碼指令201 (即指令102201 )。在x86運算碼圖的 例子中,為此領域中人所熟知的是,運算碼值14H係映射至 x86之進位累加(Add With Carry,ADC)指令,此指令將一 8位元之直接(immecjiate)運算元加至架構暫存器之内 各值。熟習此領域技術者也將發覺,上文提及之前置碼 101 (亦即 66Η、67Η、0FH、F0H、F2H 及 F3H)係實際的 運算碼值201,其在不同脈絡下,指定要將特定的架構延伸 項應用於隨後之運算碼項目1〇2所指定的運算。例如,在運 算碼14Η (正常情況下,係前述之adc運算碼)前加上前置 碼0FH,會使得χ86處理器執行一「解壓縮與插入低壓縮之 本,·氏張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 1245221 A7 / (案號第〇91124〇〇8號專利案之說明書修正)B7 五、發明說明(/丄) 單精度浮點值」(u叩ack and Inter丨eave LQW paeked Single-precisi0n Floating-Point Values)運算,而非原本的 ADc 運算。諸如此滿例子所述之特徵,在現代之微處理器中係 部分地致能’此因微處理器内之指令轉譯/解碼邏輯是依序解 譯-指令100的項目HH·。所以在過去,於指令集架構中 使用特定運算碼值作為前置碼⑽,可允許微處理器 將不少先進的架構特徵納入相容舊有軟體之微處理器的設計 中,而不會對未使用那些特定運算碼狀態的舊有程式,帶來 執行上的負面衝擊。例如,一未曾使用Μ6運算碼㈣的舊 有程式,仍可在今日的x86微處理器上執行。而一較新的應 用程式,藉著運用Χ86運算碼㈣作為前置碼⑼,就能使 用許多新進納人之χ86架構特徵,如單—指令多重資料 (SIMD)運算,條件移動運算等等。 _6]儘管過去已藉由指定可用/多餘的運算碼值201 作為前置碼ιοί (也稱為架構特徵標記/指標1〇1或逸出指令 101) ’來提供架構特徵,但許多指令集架構1〇〇在提供功能 上的強化時’仍會因為-非常直接的理由,而碰到阻礙··所 有可用/多餘的運算碼值已被用完,也就是,運算碼圖200中 的全2運算碼值已被架氣地指定。當财可_值被分派 為運算碼項目1〇2或前置碼項目1〇1時,就沒有剩餘的運算 碼值可作為納入新特徵之用。這個嚴重的問題存在於現在= 許多微處理器架構中,因而迫使設計者得在增添架構特徵盘 保留舊有程式之相容性兩者間作抉擇。 、 [0〇37]值付注意的是,圖二所示之指令係以一般性 1245221 (案號第091124008號專利案之說明書修正)B7 五、發明說明(//,) 的方式表示(亦即124'186),而非具體指涉實際的運算(如 進位累加、減、互斥或)。這是因為,在—些不同的微處理 器架構中,完全佔用之運算碼圖2〇〇在架構上,已將納入較 新進展的可能性排除。雖然圖二例子所提到的,是8位元的 運算碼項目ι〇2,熟習此領域技術者仍將發覺,運算碼1〇2 的特定大小,除了作為一特殊情況來討論完全佔用之運算碼 結構200所造成的問題外,其他方面與問題本身並不相干。 因此,一完全佔用之6位元運算碼圖將有64個可架構化地指 定之運异碼/前置碼2(H,並將無法提供可用/多餘的運算碼值 作為擴充之用。 # 經濟部智慧財產局員工消費合作社印製 [0038]另一種替代做法,則並非將原有指令集完全廢 棄,以一新的格式1〇〇與運算碼圖2〇〇取代,而是只針對二 部份既有的運算碼,,指令意含取代,如圖二之運 异碼撕至側。崎種混合的技術,微處理器就可以單獨 地以下列兩種模式之一運作:其中舊有模式利用運算碼 40H-4FH ’係依舊有規則來解譯,或者以另一種改^式 (enhanced mode)運作,此時運算碼4〇H_4FH則依加強之^ 構規則來解譯。此項技術魏允許設計者將新特徵納入設 計’然而’當符合舊有規格之微處理器於加賊式運作時, 缺點仍舊存在,因為微處理器不能執行任何使用運算 4^4FH的應用程式。因此,站在保留舊有軟體相容性=立 %,相容舊有軟體/加強模式的技術,還是無法接受的。 [0039]然、而,對於運算碼空間已完全佔用之指 2〇〇,且該空間涵蓋所有於符合舊有規格之微處職上 ‘紙張尺度_中酬家標準(CNS)A4規格(21(^97公釐 1245221 , A7 /; * j 9 ο ^ (案號第〇9丨似〇〇8號專利案之說明書修正)Β7 ·: “ 五、發明說明〇 〇) 應用程式的情形,本案發明人已注意到其中運算碼2〇1的使 用狀況,且他們亦觀察出,雖然有些指令2〇2是架構化地指 定,但未用於能被微處理器執行之應用程式中。圖二所述之 才日令IF1 202即為此現象之一例。事實上,相同的運算碼值 202 (亦即F1H)係映射至未用於χ86指令集架構之一有效指 令202。雖然該未使用之χ86指令2〇2是有效的χ86指令2〇2, 其指示要在χ86微處理器上執行一架構化地指定之運算,但 它卻未使用於任何能在現代x86微處理器上執行之應用程 式。這個特殊的x86指令202被稱為電路内模擬中斷點(In
Circuit Emulation Breakpoint)(亦即 ICE BKPT,運算碼值為 經濟部智慧財產局員工消費合作社印製 F1H),之前都是專門使用於一種現在已不存在之微處理器 模擬設備中。ICE BKPT 202從未用於電路内模擬器之外的應 用程式中’並且先前使用ICE BKPT 202之電路内模擬設備 已不復存在。因此,在x86的情形下,本案發明人已在一完 全佔用之指令集架構200内發現一樣工具,藉著利用一有效 但未使用之運算碼202,以允許在微處理器的設計中納入先 進的架構特徵,而不需犧牲舊有軟體之相容性。在一完全佔 用之指令集架構200中,本發明利用一架構化地指定但未使 用之運算碼202,作為一指標標記,以指出其後之一 η位元 前置碼,因此允許微處理器設計者可將最多y個最新發展之 架構特徵,納入微處理器的設計中,同時保留與所有舊有軟 體完全的相容性。 [0040]本發明藉提供一 η位元之延伸記憶體特性指定元 月、J置碼’以使用前置碼標記/延伸前置碼的概念,因而可允許 ^7------—_ — - - _20_ 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公釐) n 經濟部智慧財產局員工消費合作社印製 245221 (案號第〇9丨】24〇〇8號專利案之說明書修正)防 五、發明說明(/孑 程式員在-微處理器中,依據每個指令指定一記憶體屬性予 一對應的記憶體存取運算。在該對應的記憶體存取運算執行 時,該記憶體屬性被用於取代由作業系統程式先前建:之記 憶體特性描述元表格/機制所指定之一預設屬性。本發明現將 參照圖三至十一進行討論。 [0041] 現請參閱圖三,其為本發明之延伸指令格式3㈨ 的方塊圖。與圖一所討論之格式1〇〇非常近似,該延伸指令 格式300具有數量可變之指令項目3〇1_3〇5,每_項目設定為 一特疋值,集合起來便組成微處理器之一特定指令3㈧。該 特定指令300指示微處理器執行一特定運算,像是將兩運= 元相加,或是將一運算元從記憶體搬移至微處理器之暫存器 内。一般而言,指令300之運算碼項目3〇2指定了所要執二 之特定運算,而選用之位址指定元項目303則位於運算瑪3〇2 後,以指定該特定運算之相關附加資訊,像是如何執行該運 算、運算元所在之暫存器、用於計算來源/結果運算元之記憶 體位址的直接與間接資料等等。指令格式3〇〇亦允許程式員 在一運算碼302前加上前置碼項目301。在運算碼3〇2所指 定之特定運算執行時,前置碼項目301係用來指示是否要使 用既有的架構特徵。 [0042] 然而,本發明的延伸指令3〇〇係前述圖一指令格 式100之一超集合(superset),其具有兩個附加項目3〇4與 3〇5 了被選擇性作為指令延伸項,並置於一格式化延伸指令 300中所有其餘項目301-303之前。這兩個附加項目304與 305可讓程式員能對於延伸指令3〇〇所指定之記憶體參照指 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂: i線- 1245221 -Λ... ' >- (案號第〇91丨24〇〇8號專利案之說明書修正) B7 五、發明說明(/,) 定—記憶體特性,其中對應於該記憶體參照 縣法另由符合舊有規格微處理器之既有指令集== 疋。選用項目304與305係一延伸指令標記3〇4盥一 ^ 前置碼3。5。該延伸指令標記304係上:: 才"集内另一依據架構所指定之運算碼。在-x86的實 施例中’該延伸指令標記304,或稱逸出標記3〇 = ===咖之咖聊指令 —处时邏糾日出,該延伸辟碼3G5,或稱延伸特徵指 心疋3〇5 ’係跟隨在後,其中該延伸前置碼3〇5指定了對應 ^-指定記憶體存取之—記憶體屬性。在—具體實施例中二 3〇4指出’-對應延伸齡3⑻之峨部分則_3〇3 =〇5指定了微處理器所要執行之記憶體存取。記憶體特性 305,或稱延伸前置碼3〇5,指定了複數個記憶體特性 姑If—找記紐存取。微處理11岐延佩行邏輯便依 據該指定之記麵躲執行觀龍存取,因而取代了原先 =其他方式所指定之預設記憶體屬性,這些其他方式包括使 代微處邮賴所具有之控崎存驗元、記憶體類型 子器、分頁表及其他類型之記憶體屬性描述元 (descriptor)。 [0〇43]此處將本發明之選擇性的記憶體屬性控制技術 乍個概述。-延伸指令係組態為對一既有微處理器指令集之 =體存取指定—纖體祕,射該記鐘存取之該記憶 屬性無法另⑽既有微處理器指令集之指令來加以指定。 該延伸指令包括該既有指令集之運算碼/指令304其中之一以 1 x 297公釐) 項 頁 線 245221 A7 (案號第091124008號專利案之說明書修正)B7 療換 五、發明說明) 及一 η位元之延伸前置碼305。所選取之運算碼/指令作為一 指標304,以指出指令300是一延伸特徵指令3〇〇 (亦即,其 才曰疋了微處理态架構之延伸項)’該η位元之特徵前置碼305 則才曰出該5己憶體屬性。在一具體實施例中,延伸前置碼305 具八位元的大小,最多可指定256種不同的屬性或記憶體屬 性與其他延伸特徵的組合。η位元前置碼的實施例,則最多 可指定211種不同的記憶體特性。 [0044] 現請參閱圖四,一表格4〇〇顯示依據本發明,一 指定記憶體參照之記憶體屬性如何映射至一 8位元延伸前置 碼實施例之位元邏輯狀態。類似於圖二所討論之運算碼圖 200’圖四之表格400呈現一 8位元之延伸前置碼圖4〇〇的範 例,其將一 8位元延伸前置碼項目305之最多256個值,關 聯到一符合舊有規格之微處理器的對應記憶體特性4〇1 (如 Ε34、E4D等)。在一 χ86的具體實施例中,本發明之8位 元延伸特徵前置碼305係提供給記憶體特性4〇1 (亦即 E00-EFF)的指令層級控制之用,該些記憶體特性4〇1乃現 行x86指令集架構於指令層級所未能指定的。 [0045] 圖四所示之延伸特徵4〇1係以一般性的方式表 示,而非具體指涉實際的特徵,此因本發明之技術可應用於 各種不同的架構延伸項401與特定的指令赫構。熟習此領 域技術者將發覺,許多不同的架構特徵4〇1,其中一些已於 上文提及’可依此處所述之逸出標記3〇4/延伸前置碼3〇5技 術將其納入-既有之指令集。圖四之8位元前置碼實施例提 供了最多256個不同的特徵4〇卜而—η位元前置碼實施例 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 >^7公f ) (請先閱讀背面之注意事項再填寫本頁) · -丨線· 經濟部智慧財產局員工消費合作社印製 1¾¾興
1245221 (案號第091124008號專利案之說明軎修TP、 五、發明說明(> 則具有最多2«個不同特徵的程式化選擇。 [〇_]現請參_五,其為解說本發明贱執行選擇性 =記憶體屬性控制運算之管線化微處理器漏的方塊圖。微 处理500具有三個明顯的階段類型:提取、轉譯及執行。 提取階段具有提取邏輯划,可從指令快取記憶體502或外 部讀體502提取指令。所提取之指令經由指令仔列5〇3送 至轉譯階段。轉譯階段具有轉譯邏輯5G4,麵接至一微指令 仔列506。轉譯邏輯504包括延伸轉譯邏輯5〇5。執行階段則 有執行邏輯507,其内具有延伸執行邏輯篇。 經 濟 部 智 慧 財 產 局 消 費 合 作 社 印 製 [0047] 依據本發明’於運作時,提取邏輯5〇ι從指令快 取。己隐體/外己憶體5〇2提取格式化指令,並將這些指令依 魏行順序放入指令仔列5〇3中。接著從指令仔列如提取 這些指令,送至轉譯邏輯504。轉譯邏輯5〇4將每一送入的 指令轉譯/解碼為-對應之微指令序列,以指示微處理器5〇〇 去執行這些指令所指定的運算。依本發明,延伸轉譯邏輯5〇5 偵測那些具有延伸前置碼標記之指令,以進行對應延伸記憶 體特性指定元前置碼之轉譯/解碼。在一 χ86的實施例中,延 伸轉譯邏輯505組態為偵測其值為F1H之延伸前置碼標記, 其係x86之ICE BKPT運算碼。延伸微指令攔位則提供於微 指令佇列506中,以允許指定由該指令附隨部分所指定之相 關記憶體參照的記憶體特性。 [0048] 微指令從微指令佇列506被送至執行邏輯507, 其中延伸執行邏輯508組態為依照一預設記憶體特性(由既 有的記憶體特性描述元工具所定義)執行一指定記憶體參 L-----2^- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
1245221 A7 A7 __ (案號第丨丨24008號專利案之說明書修正)B7 I 1 I 丨 m 丨 , — I .1 五、發明說明(》) 照,或組態為利用於使用者層級透過本發明之延伸前置碼所 程式化之一記憶體特性,依延伸微指令欄位的指定,取代該 . --- ί請先閱讀背面之注意事項再填寫本頁) 預设的纖體特性。在-具體實施例中,該記憶體特性係以 快取線為單位而賦予的。 [0049]熟習此領域技術者將發現,圖五所示之微處理器 500係現代之管線化微處理器50經過簡化的結果。事實上: 現代的管線化微處理器500最多可包含有2〇至3〇個不同的 管線階段。然而,這些階段可概括地歸類為方塊圖所示之三 個階段,因此,圖五之方塊圖500可用以點明前述本發明實 施例所需之必要元件。為了簡明起見,微處理器5〇〇中無二 的元件並未顯示出來。 -丨線· 經濟部智慧財產局員工消費合作社印製 [0050]現請參閱圖六,其為本發明用於指定微處理器中 一程式化記憶體存取之記憶體屬性的延伸前置碼600之二具 體實施例的方塊圖。記憶體特性指定元前置碼600具8位^ 大小,且包括一來源特性(source trait)欄位6〇1與一目的特 性(destination trait)欄位6〇2。來源特性欄位6〇1為一相關 延伸指令之其餘部分所蚊的來源元記題存取(即載 入、讀取)指定一記憶體屬性,而目的特性攔位6〇2則為該 其餘部分所指定的目的運算元記憶體存取(即儲存、寫入) 指疋一兄憶體屬性。因此,8位元前置碼6〇㈣範例可指定 16個不同記憶體特性其中之—予來源與目的運算元兩者,而 這I6個記憶體特性係可驗取代侧位址範圍或記憶體分 頁所被才曰定的預設特性。圖六所示之實施例為關聯於對應指 令之所有來源運算元位址指定了單一的來源記憶體特性 本紙張尺度適用中國國家1 票準(CNS)A4規格-(21G x22597公餐)-—-—--- 1245221 (案號第091丨24〇〇8號專利案之說明書修正) A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明() 為所有目的運算元指定了單一(可能與前述的不同)之目的 記憶體特性。熟悉此領域技術者將發覺,來源與目的屬性可 分別加以指定,在與重複字串指令如x86架構的卿 等連用的情形下,會特別有用。上述實施例之一變形則對於 該對應指令所參照之每一目的/來源運算元提供一對應的目 的特性攔位602與來源特性攔位601,因而等量地增加*/減少 前置碼600的位元數。 [〇〇51]現請參閱圖七,其為本發明用於指定微處理器中 一程式化記憶體存取之記憶體屬性的延伸前置碼6〇〇之:一 具體實施例的方塊圖。記憶體屬性前置碼7〇〇具8位元大小, 且包括一屬性攔位701、一來源位元702、一目的位元7〇3 及一備用攔位704。3位元之屬性攔位701為一對應指令所指 定之記憶體存取運算指定8個不同記憶體特性的其中之一。 來源位元702對於所有來源運算元的記憶體存取,'致能屬性 欄位701所指定之屬性,而目的位元7〇3則對所有目的運算 元的記憶體存取致能該指定屬性。因此,8位前二 的實施例可指定8個不同記憶體特性其中之一予可能應用於 來源參照、目的參照或以上兩者的記憶體存取,而這8個記 憶體特性係可用於取代相關位址範圍或記憶體分頁所被指定 的預設特性。 9 [0052]現請參閱圖人,其為-表格,用以解說圖七延伸 前置碼700之攔位的典型記憶體特性之一編瑪範例。表格謂 具有-屬性行ATTR及-特性行TRAIT。ATTR行中屬性搁 位彻之值被映射至TRAIT行中一對應之記憶體特性。在此 (請先閱讀背面之注意事項再填寫本頁) 1¾ 訂·- -線· 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) 1245221 (案號第091124〇08號專利案之說明書修正) A7 B7 五、發明說明(><f) 編碼範例中,提供了習用之記憶體特性,像是不可快取(值 為000)與回寫(值為011),然而熟悉此領域技術者將發覺, 其他適用於一特殊微處理器架構之特性,也能透過圖六X與七 之屬性攔位6〇1、602、701來加以編碼。 [0053] 現請參閱圖九,其為圖五之微處理器内轉譯階段 邏輯900之細部的方塊圖。轉譯階段邏輯900具有一指令緩 衝器904 ’依本發明,其提供延伸指令至轉譯邏輯9〇5。轉譯 邏輯905係耦接至一具有一延伸特徵攔位9〇3之機器特定暫 存器(machine specific register) 902。轉譯邏輯 905 具一轉譯 控制器906,其提供一除能訊號9〇7至一逸出指令偵測器9〇8 及延伸解碼器909。逸出指令偵測器908搞接至延伸解碼 器909及一指令解碼器910。延伸解碼器9〇9與指令解碼邏 輯910存取一控制唯讀記憶體(R〇M) 911,其中儲存了對 應至某些延伸指令之樣板(template )微指令序列。轉譯邏輯 905亦包含一微指令緩衝器912,其具有一運算碼延伸項欄位 913、一微運算碼攔位9M、一目的攔位915、一來源攔位916 以及一位移攔位917。 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) 線· [0054] 運作上,在微處理器通電啟動期間,機器特定暫 存器902内之延伸攔位903的狀態係藉由訊號啟動狀態 (signal P〇wer_up state) 9〇1決定,以指出該特定微處理器是 否能轉譯與執行本發明之用以取代微處理器之預設記憶體屬 性的延伸指令。在一具體實施例中,訊號9〇1從一特徵控制 暫存器(圖上未顯示)導出,該特徵控制暫存器則讀取一於 製造時即已組態之熔絲陣列(ftxsearray)(未顯示)。機器 _______2Ί 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
m i i [
I
I 線 1245221 | A7 (案號第091124008號專利案之說明書修正)p7 五、發明說明(>4) 排1012與1013耦接至一快取記憶體1〇〇7與一匯流排單元 1008。匯流排單元1008係用以指導於記憶體匯流排(圖中未 ’、員不)上進行之5己憶體存取作業(memory transaction )。依 本發明,延伸存取邏輯1〇05從微處理器前一階段之一延伸微 指令緩衝器1001接收微指令,從位址緩衝器1〇〇2與1〇〇3 接收兩個位址運算元,並從目的運算元緩衝器1004接收一目 的運算7L。延伸存取邏輯1005亦耦接至複數個依主機微處理 器之架構常規進行組態的記憶體特性描述元1006。延伸存取 邏輯1005包含一存取控制器1009、一儲存緩衝器1010及一 載入緩衝器1011。該載入緩衝器1011將一來源運算元輸出 送至一來源運算元缓衝器1015。 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) -線· [0056]運作上,延伸執行邏輯1〇〇〇係用於執行記憶體 存取,從記憶體讀取運算元,以及將運算元寫入記憶體,如 延伸微指令緩衝器1001中之微指令所指示的。執行讀取/載 入運算時,存取控制器1009從位址緩衝器1〇〇2與1〇〇3接收 一個或更多記憶體位址,並讀取記憶體特性描述元1〇〇6,以 決疋相關於該載入運算之記憶體屬性。在一 χ86實施例中, 記憶體特性描述元1006包含χ86快取記憶體與分頁控制暫存 器、分頁目錄與分頁表項目、記憶體類型範圍暫存器(m_^ type range register,MTTR)、分頁屬性表(paging attribute table,PAT)以及外部訊號腳位keN#、wb/wt#、pcT及 PWT。存取控制器1009依據x86的層級記憶體屬性常規, 使用從這些來源1006所取得之資訊,以決定該載入運算之預 設記憶體屬性。對非x86之實施例而言,存取控制器1〇〇9 &張尺度刺中闕家標準(CNS)A4規格(210 >^97公爱)'"一--- 1245221 A7 (案號第〇9】丨24〇〇8號專利案之說明書修正)ρ7 五、發明說明) 依據對縣機微處_之特定_的輕記憶則性常規, 使用從記憶體特性描述元1006所取得之資訊,來決定該載入 運算之預就憶闕性。記憶體位址,制其對應存取 性,被送至載入緩衝器1(m。依據所提供之特性屬性,載入 緩,器1011經由匯流排體從快取記憶體或直接經由匯流 排單元10〇8從系統記憶體(未顯示)獲得來源運算元。所獲 得之來源運算元與一管線時脈訊號(未顯示)同步,被送至 來源運算元緩衝器簡5。延伸微指令亦與該管線時脈訊號同 步,被送入官線至延伸微指令暫存器1014。來源運算元便以 此種方式被送至微處理器之下一階段。 [0057]執行延伸微指令所指示之寫入/儲存運算時,存取 控制器1009從位址緩衝器臟與翻接收該運算之位址資 料’並從緩衝H 1’接收所要儲存之運算元。存取控制器 ι〇〇9如别所述般來存取記憶體特性描述元1〇〇6,以決定對應 於a亥儲存運算之記憶體特性。該記憶體特性、位址資訊以及 該目的運算元並送至儲存緩衝器1〇1〇。依據所提供之特定屬 欧’儲存緩衝器1〇1〇經由匯流排1〇12將該目的運算元寫入 快取"己憶體1007,或直接經由匯流排單元1008寫入系統記 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) 參 憶體。 &[0058]本發明之儲存緩衝器1010與載入缓衝器1011被 組悲為依據主機處理器之記憶體屬性模型的相關處理要求, 來執仃=存與載入的存取運算,其中該處理要求係包括強/ 弱排序常規(如假想執行規則)以及快取存取原則。在一具 體實知例中’载入與儲存運算係在主機微處理器之不同管線 本紙張尺關h)
1245221 A7 _(案號第091124008號專利案之說明書修正)B7 五、發明說明(·>(?) 階段中執行。 [0059]對使用選擇性之記憶體屬性取代前置碼的延伸 指令而言,相關記憶體存取(即載入'儲存或載入與儲存兩 者)之取代記憶體特性透過延伸微指令緩衝器1〇〇1内之延伸 微指令的運算碼延伸項欄位(未顯示),被送至存取控制器 1009。存取控制器1〇〇9,如前所述,藉由從記憶體特性描述 元1006所獲得之資訊,決定所指定記憶體存取之預設記憶體 特性。若該指定取代特性比對應之預設特性還強,則存取控 制器1009將取代特性連同前述之位址及/或目的運算元,送 至儲存緩衝器1010/載入緩衝器1011。若該指定取代特性比 對應之預設特性還弱,則存取控制器1〇〇9將預設特性 址及/或目的運算元,送至儲存緩衝器1〇1〇/載入緩衝器 10U。因此,選擇性的記紐取代僅依據所應狀特定架構 而執行,以加強一記憶體特性。例如,在x86架構中,一記 憶體存取之不可快取特性不能被弱化為回寫。反之,回寫特 性則不能被加強為不可快取。記憶體存取所要使用 以快取線為單位而賦予的,而在許多現代之桌上型/膝上型微 處理器架構令,快取線的大小為32位元組。 [0060]現請參閱圖十一,其為描述本發明對可使程式員 於指令層娜代微處理H狀預設記鋪雜的指令,進行 轉譯與執行的方法之運作_圖。流程開始於方塊魔,发 中-個組態有延伸特徵指令的程式,被送至微處理器。流程 接著進行至方塊1104。 [61]於方塊11〇4中,下一個指令係從快取記憶體/外 1245221 A7 (案號第091124008號專利案之說明書修正)π丨 22 五、發明說明( Μ Ρ 部記憶體提取。流程接著進行至判斷方塊11〇6。 [0062] 於判斷方塊11〇6中,對在方塊11〇4中所提取的 下個指令進行檢查,以判斷是否包含一本發明之延伸逸出 碼。在一 x86的實施例中,該檢查係用以偵測運算碼值ρ〗(ICE BKPT)。若偵測到該延伸逸出碼,則流程進行至方塊1108。 若未偵測到該延伸逸出碼,則流程進行至方塊1112。 [0063] 於方塊11〇8中,解碼/轉譯該延伸指令之延伸前 置碼部分,以決定一記憶體屬性,該記憶體屬性係被指定為 取代該下個指令所指定之相關記憶體存取的預設記憶體屬 性。流程接著進行到方塊1110。 [0064] 於方塊mo中,該相關記憶體存取之記憶體屬 性於一對應微指令序列之延伸項攔位進行組態。流程接著進 行至方塊1112。 [0065] 於方塊1112中,該指令之所有其餘部分被解碼/ 轉譯,以決定所指定之記憶體存取、暫存器運算元之位置、 記憶體位址指定元以及依據該既有微處理器指令集,由前置 碼所指定之既有架構特徵的使用。流程接著進行至方塊 1114 〇 經濟部智慧財產局員工消費合作社印製 [0066] 於方塊1114中,一微指令序列被組態為指定所 指定的記憶體參照及其對應之運算碼延伸項。流程接著進行 至方塊1116。 [0067] 於方塊1116中,該微指令序列被送至一微指令 佇列,由微處理器執行。流程接著進行至方塊1118。 [0068] 於方塊1118中,該微指令序列由本發明之一位 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) [245221 a7 (案號第09】124〇〇8號專利案之說明書修正)B7 五、發明說明〇 ) 址邏輯進行提取。該位址邏輯產生該記憶體存取之位址,並 將該位址送至延伸執行邏輯。流程接著進行至方塊112〇。 [0069] 於方塊1120中,延伸執行邏輯運用該微處理器 架構之記憶體特性描述工具’以決定—預設的記憶體特性。 流程接著進行至判斷方塊1122。 [0070] 於判斷方塊1122中進行評估,以判斷該微處理 器架構之快取/記憶體模型是否允許該指定之記憶體屬性取 代該預設屬性。若取代被允許,流程進行至方塊1124。若取 代未被允許,則流程進行至方塊1126。 [0071] 於方塊1124中,藉由使用於方塊11〇8之延伸前 置碼攔位所指定之取代記憶體屬性,執行該記憶體存取。流 程接著進行至方塊1128。 [0072] 於方塊1126中,藉由使用於方塊1120所決定之 預設記憶體屬性,執行該記憶體存取。流程接著進行至方塊 1128 〇 [0073] 於方塊1128中,本方法完成。 [0074] 雖然本發明及其目的、特徵與優點已詳細敘述, 其它實施例亦可包含在本發明之範圍内。例如,本發明已就 如下的技術加以敘述··利用已完全佔用之指令集架構内一單 一、未使用之運算碼狀態作為標記,以指出其後之延伸特徵 前置碼。但本發明的範圍就任一方面來看,並不限於已完全 佔用之指令集架構,或未使用的指令,或是單一標記。相反 地,本發明涵蓋了未完全映射之指令集、具已使用運算碼之 實施例以及使用一個以上之指令標記的實施例。例如,考慮 33 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) # 線· 經濟部智慧財產局員工消費合作社印製 1245221 , — (案號第撕124008號專利案^^ 五
發明說明(;丨) 一沒有未使用運算碼狀態少八 施例包含了選取-作魏二、架構。本發明之—具體實 準係依市場因素而決算碼狀態,其中選取標 之-特雜合作為,_::_侧包含使用運算碼 己如運异碼狀態7FH的連 此,本個之本質係姐咖—標、 元之延伸前置碼,可允抑—3 ,、!為η位 W 确於指令層級指定記憶體存取 之减體雜’補些縣郎由 有指令來触。 <日7果之既 [^75]此外’雖然上文係利用微處理器為例來解說本發 明及其目的、特徵和優點,熟習此領域技術者仍可察覺,本 發明的範圍並靴於微處理㈣_,而可涵蓋所有形式之 可程式化裝置,如訊號處理器、工業用控制器〇ndustriai C〇nlT〇ller)、陣列處理器及其他同類裝置。 、、、“之以上所述者,僅為本發明之較佳實施例而已,當 不能以之限定本發明所實施之範圍。大凡依本發明申請專利 範圍所作之均等變化與修飾,皆應仍屬於本發明專利涵蓋之 範圍内,謹請貴審查委員明鑑,並析惠准,是所至禱。 (請先閱讀背面之注意事項再填寫本頁) 訂. 線' 經濟部智慧財產局員工消費合作社印製 34 本紙張尺度適用中國國家標準(CNS)A4規袼C210 X 297公釐〉
Claims (1)
1245221 __(案號第的1〗24008號專利案之說明書修正) ABCD 正年修ml
I日 奐 六、申請專利範圍 — (請先閱讀背面之注意事項再填寫本頁) 1 · 一種在一微處理器内提供記憶體屬性之指令層級控制的 裝置,包含: 一轉譯邏輯,用以將一延伸指令轉譯成一微指令序列, 其中該延伸指令包含: 一延伸前置碼,用以對該延伸指令所指定之一記憶體 參照,指定一記憶體特性,其中該記憶體參照之記 憶體特性不能由一既有指令集之一既有指令來指 定;以及 一延伸前置碼標記,用以指出該延伸前置碼,其中該 伸前置碼標記係原本該既有指令集内另一依據架構 所指定之運算碼;以及 一延伸執行邏輯,耦接至該轉譯邏輯,用以接收該微指 々序列,並應用該土憶體特性來執行該記憶體參照。 2·如申請專利範圍第1項所述之裝置,其中該延伸指令更包 含該既有指令集之指令項目。 3·如申請專利範圍第2項所述之裝置,其中該指令項目指定 經濟部智慧財產局員工消費合作社印製 該微處理器所要執行之-運算,且其中該運算包含該記憶 體參照。 4. 如申請專利範@第丨項所述之裝置,其中該記紐參照包 含-運算元載人作業、-運算元儲存作業或以上兩者。 5. 如申請專利範圍第1項所述之裝置,其中該記憶體特性指 疋一快取纪憶體於該記憶體參照執行時如何被使用。 6. 如申請專利範圍第i項所述之裝置,其中該記憶體特性指 本紙張尺度適用中國國豕標準(CNS ) A4規格(21 οχ297公羞) I
ABCD 、申請專利範圍 經濟部智慧財產局員工消費合作社印製 26_ 序二思體4照相對於其他記憶體參照如何排出執行順 7.所述之裝置,其中該延伸前置碼指 體特性。細^触參糾,喊—預設之記憶 8 範圍第1項所述之裝置’其中該延伸前置碼包 ^申明專利蝴第丨項所述之裝置,其中該延伸前置竭包 屬欧搁位,用以指定該記憶體特性,其中該記憶體特 性包含複數個記鐘聽射之―。 體特 10. ,細複數個記憶體 J 合寫人、寫透、回寫以及寫入保護。 11·如申轉利範圍第丨項所述之裝置,其中該既有指令 含X86指令集。 】2·如申請專娜_丨顧叙裝置,其幅延伸前置碼標 記包含x86指令集之運算碼FI (ICEBKPT)。 13·如申請專利顧第丨項所述之裝置,其中該轉譯邏 含·· 一逸出指令偵測邏輯,用於偵測該延伸前置碼標記; 一指令解碼邏輯,用以決定所要執行之一運算,其中該 運算包含該記憶體參照;以及 一延伸解碼邏輯,耦接至該逸出指令偵測邏輯與該指令 解碼邏輯,用以決定該記憶體特性,並於該微指令序 本紙張尺度適用中國國家標隼(CNS ) A4^ ( 210X297公餐) (請先閲讀背面之注意事項再填寫本瓦)
I ABCD 申請專利範圍 列内指定該記憶體特性。 M.-種延伸-既有指令知提供記龍雜之糧性控制 的微處理器裝置,包含·· -延伸指令,組態為指定—記贿存取之—記憶體屬 I·生’其中該ΚΝθ ·7包含該既有微處理器指令集苴中 -選取之運算碼4後則接著_ η位元之延伸前置 碼,該選取之運算碼指出該延伸指令,而該η位元之 延伸前置_指出該記憶體屬性,其中該記憶體存取 之記憶體屬性不能另依該既有指令集之指令加以指 定;以及 -轉譯器為接收該延伸指令,録生—微指令序 列’以指示-微處理器執行觀憶體存取,其中該記 憶體存取將依該記憶體屬性執行。 15. 如申請專利細第14顧述之裝置,其中該延 伸指令更包含: 其餘指令項目’組態為指定該記憶體存取,其中該記憶 體屬性係於該記憶體存取執行時用於取代一預設之 記憶體屬性。 經濟部智慧財產局員工消費合作社印製 16. 如申請專利範圍第14項所述之微處理器裝置,其中該η 位元之延伸前置碼包含: 。己隱體特性她,轉為缺觀憶體屬性,以用於 憶體存取時,其中該記憶體屬性包含複數個記憶 體存取特性其中之一。 17·如申請專利範圍第16項所述之微處理器裝置,其中該些 (210X297公釐) ABCD
1245221 7Τ、申請專利範圍 記憶體存取特性包含不可快取、複合 及寫入保護。 ”、寫透、回寫ο 队如申請專利範圍第14項所述之 請 先 閱 讀 背 ιδ 之 注 意 事 項 再 填 寫 本 頁 位元之延伸前置碼包含8個位元。錄置其中該n 19.如申吻專利圍第Μ項所述之微處理器裝置, 有指令集係χ86微處理器指令集。° 。既 申第η項所述之微處理器裝置,其中該登 ^運算碼包括x86微處理器指令集中之ice謝運^ 碼(即運算碼F1)。 ^ 利範圍第14項所述之微處則裝置,其中該轉 訂 一逸出指令偵測H,用以伽彳該延伸指令内之該選取 運算碼; 一指令解碼器,用以解碼該延伸指令之其餘部分,以決 定該記憶體存取;以及 、 延伸别置碼解碼器,麵接至該逸出指令侧器及該指 經濟部智慧財產局員工消費合作社印製 t解碼器’用以解碼該η位元之延伸前置碼,並於該 微指令序列内指定該記憶體屬性。 Λ 22·-種為_既有指令集增添指令狀之纖體特性控 徵的裝置,包含: 一逸出標記,由一轉譯邏輯接收,並指出一對應指令之 附隨部分係指定了一記憶體存取,其中該逸出標記為 該既有指令集内之一第一運算碼; 一圯憶體特性指定元,耦接至該逸出標記,且為該附隨
A8 B8 C8 經濟部智慧財產局員工消費合作社印製 1245221 〜號第09〗124008號裒利案之說明書修正)D8 六、申請專利範圍 部分其中之一,用以指定複數個記憶體特性其中之一 予該記憶體存取;以及 一延伸執行邏輯,耦接至該轉譯邏輯,利用所指定之記 憶體特性執行該記憶體存取,其中該既有指令集僅提 供該記憶體存取之一預設記憶體特性之指定,且其中 該延伸執行邏輯應用所指定之記憶體特性取代該預 設記憶體特性。 23·如申請專利範圍第22項所述之裝置,其中該附隨部分之 其餘部分包含一第二運算碼,用以指定該記憶體存取。 24·如申請專利範圍第22項所述之裝置,其中該記憶體特性 指定元包含8個位元。 25·如申請專利範圍第22項所述之裝置,其中該既有指令集 係x86指令集。 26·如申請專利範圍第22項所述之裝置,其中該第一運算碼 包含x86指令集中之ICEBKPT運算碼(即運算碼π)。 27·如申請專利範圍第22項所述之裝置,其中該轉譯邏輯將 該逸出標記與該附隨部分轉譯成對應的微指令,該對應的 微指令係指示該延伸執行邏輯依據所指定之記憶體特 性,執行該記憶體存取。 28·如申請專利範圍第22項所述之裝置,其中該些記憶體特 性包含不可快取、複合寫入、寫透、回寫以及寫入保護。 29·如申請專利範圍第22項所述之裝置,其中該轉譯邏輯包 含: 一逸出標記细揭輯,用以細該逸出標記 ’並指不該 A4規格(210X297公董) (請先閱讀背面之注意事項再填寫本瓦)
I ABCD
蛵濟部智慧財產局員、工消費合作社印製 245221 ^、申請專利範圍 附隨部分的轉譯動作需依據延伸轉譯常規 (conventions);以及 一解碼邏輯,耦接至該逸出標記偵測邏輯,用以依據該 既有‘令集之常規,執行指令的轉譯動作,並依據該 延伸轉譯常規執行該對應指令之轉譯,以依據所指定 之記憶體特性,致能該記憶體存取之執行。 3〇· —種擴充一既有指令集架構的方法,以提供指令層級之選 擇性記憶體屬性控制,該方法包含·· a 提供一延伸指令,該延伸指令包含一延伸標記及一延伸 前置碼,其中該延伸標記係該既有指令集架構其中一 第一運算碼項目; 透過該延伸前置碼指定要應用於一對應記憶體存取之一 記憶體屬性,其中該記憶體存取係由該延伸指令之其 餘部分所指定;以及 應用該記憶體屬性以執行該記憶體存取,其中該應用動 作取代了該記憶體存取之一預設記憶體屬性。 31·如申請專利範圍第30項所述之方法,其中該指定所要應 用之記憶體屬性的動作包含: 首先於該延伸指令之其餘部分内指定該記憶體存取,其 中該首先指定之動作包含使用該既有指令集架構中 一第二運算碼項目。 32·如申請專利範圍第30項所述之方法,其中該提供延伸指 令之動作包含使用一8位元大小之項目,以對該延伸前置 碼進行組態。 本紙張尺i適用^^?^準(CNS )八4胁(210X^97公董) " " (請先閱讀背面之注意事項再填寫本頁)
A8 B8 C8 D8 I24522l
24008號專利案之說明書修正) 、申請專利範圍 33·如申請專利範圍第3〇項所述之方法,其中該提供延伸匕 令之動作包含從x86微處理器指令集架構選取該 礼 算碼項目。 w 一運 請 先 閲 讀 背 面 之 注 意 事 項 再 寫 本 頁 •如申明專利範圍第30項所述之方法,其中該提供延伸指 令之動作包含選取x86 ICE BKPT運算碼(即運算蝎n j 作為該延伸標記。 35·如申請專利範圍第3〇項所述之方法,更包含·· 將該延伸指令轉譯成一微指令序列,該微指令序列係指 示一延伸執行邏輯依據該記憶體屬性執行該記憶體 存取。 36·如申請專利範圍第35項所述之方法,其中該轉譯延伸指 令的動作包含: 於一轉譯邏輯内,偵測該延伸標記;以及 依照延伸轉譯規則解碼該延伸前置碼與該延伸指令之其 餘部分,以產生該微指令序列。 37·如申清專利範圍第3〇項所述之方法,其中該指定所要應 用之記憶體屬性的動作包含: 經濟部智慧財產局員工消費合作社印製 指定下列記憶體特性其中之-,以作為取代該預設記憶 體屬性之該記憶體屬性··不可快取、複合寫入、寫透、 回寫以及寫入保護。 本紙張尺度適财S^^準(CNS ) Α4規格(公6
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/227,572 US7315921B2 (en) | 2002-02-19 | 2002-08-22 | Apparatus and method for selective memory attribute control |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TWI245221B true TWI245221B (en) | 2005-12-11 |
Family
ID=22853619
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW091124008A TWI245221B (en) | 2002-08-22 | 2002-10-18 | Apparatus and method for selective memory attribute control |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN1237441C (zh) |
| TW (1) | TWI245221B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI471724B (zh) * | 2006-08-18 | 2015-02-01 | Advanced Risc Mach Ltd | 用於設計記憶體裝置之容舊技術 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9710275B2 (en) * | 2012-11-05 | 2017-07-18 | Nvidia Corporation | System and method for allocating memory of differing properties to shared data objects |
| US9396056B2 (en) * | 2014-03-15 | 2016-07-19 | Intel Corporation | Conditional memory fault assist suppression |
-
2002
- 2002-10-18 TW TW091124008A patent/TWI245221B/zh not_active IP Right Cessation
-
2003
- 2003-01-28 CN CNB031030416A patent/CN1237441C/zh not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI471724B (zh) * | 2006-08-18 | 2015-02-01 | Advanced Risc Mach Ltd | 用於設計記憶體裝置之容舊技術 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1237441C (zh) | 2006-01-18 |
| CN1431587A (zh) | 2003-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW591527B (en) | Apparatus and method for extending a microprocessor instruction set | |
| TWI474191B (zh) | 控制暫存器對應於異質指令集架構處理器 | |
| CN102792265B (zh) | 基于机器状态的指令破解 | |
| KR101826770B1 (ko) | 다수의 테스트 소스를 사용한 or-테스트 및 and-테스트 기능을 제공하는 융합가능 명령어 및 논리 | |
| CN104714778B (zh) | 操作微处理器的方法 | |
| TWI450196B (zh) | 非循序執行微處理器之條件儲存指令 | |
| US5630083A (en) | Decoder for decoding multiple instructions in parallel | |
| US7529912B2 (en) | Apparatus and method for instruction-level specification of floating point format | |
| US5822555A (en) | Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer | |
| US7395412B2 (en) | Apparatus and method for extending data modes in a microprocessor | |
| CN109508206B (zh) | 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统 | |
| TWI509406B (zh) | 用於以推測支援來執行向量化的裝置及方法 | |
| TWI569205B (zh) | 一種微處理器及其操作方法 | |
| JP2018500657A (ja) | 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック | |
| GB2529777A (en) | Processor with granular add immediates capability and methods | |
| EP1336918B1 (en) | Apparatus and method for selective memory attribute control | |
| EP1336919B1 (en) | Instruction set extension for software initiated prefetch | |
| TWI245221B (en) | Apparatus and method for selective memory attribute control | |
| TWI220042B (en) | Non-temporal memory reference control mechanism | |
| TWI230356B (en) | Apparatus and method for extending address modes in a microprocessor | |
| TW569140B (en) | A method and system for selecting and using source operands in computer system instructions | |
| TW561406B (en) | Apparatus and method for selective control of results write back | |
| TW569136B (en) | Apparatus and method for conditional instruction execution | |
| TWI222015B (en) | Mechanism for extending the number of registers in a microprocessor | |
| TWI478065B (zh) | 執行模式備份暫存器之模擬 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MK4A | Expiration of patent term of an invention patent |