專利名稱::選擇性控制存儲器屬性的裝置及方法
技術領域:
:(0003)本發(fā)明是有關微電子的領域,尤指一種能將延伸地址模式控制納入一既有的微處理器指令集架構的技術。(0005)隨著使用上的爆炸性成長,在技術上也歷經(jīng)一相對應的提升,其特征在于對下列項目有著日益升高的要求更快的速度、更強的尋址能力、更快的存儲器存取、更大的操作數(shù),更多種一般用途類型的運算(如浮點運算、單一指令多重數(shù)據(jù)(SIMD)、條件移動等)以及附加的特殊用途運算(如數(shù)字信號處理功能及其它多媒體運算)。如此造就了該領域中驚人的技術進展,且都已應用于微處理器的設計,像擴充流水線化(extensivepipelining)、超純量架構(super-scalararchitecture)、快取結構、亂序處理(out-of-orderprocessing)、爆發(fā)式存取(burstaccess)機制、分支預測(branchpredication)以及假想執(zhí)行(speculativeexecution)??傊?,比起30年前剛出現(xiàn)時,現(xiàn)在的微處理器呈現(xiàn)出驚人的復雜度,且具備了強大的能力。(0006)但與許多其它產(chǎn)品不同的是,有另一非常重要的因素已限制了,并持續(xù)限制著微處理器架構的演進?,F(xiàn)今微處理器會如此復雜,一大部分得歸因于這項因素,即舊有軟件的兼容性。在市場考量下,所多制造商選擇將新的架構特征納入最新的微處理器設計中,但同時在這些最新的產(chǎn)品中,又保留了所有為確保兼容于較舊的、即所謂“舊有”(legacy)應用程序所必需的能力。(0007)這種舊有軟件兼容性的負擔,沒有其它地方,會比在x86-兼容的微處理器的發(fā)展史中更加顯而易見。大家都知道,現(xiàn)在的32/16位的虛擬模式(virtual-mode)x86微處理器,仍可執(zhí)行1980年代所撰寫的8位真實模式(real-mode)的應用程序。而本領域的技術人員也承認,有不少相關的架構“包袱”堆在x86架構中,只為了支持與舊有應用程序及運作模式的兼容性。雖然在過去,研發(fā)者可將新開發(fā)的架構特征加入既有的指令集架構,但如今使用這些特征所憑借的工具,即可程序化的指令,卻變得相當稀少。更簡單他說,在某些重要的指令集中,已沒有“多余”的指令,讓設計者可借以將更新的特征納入一既有的架構中。(0008)例如,在x86指令集架構中,已經(jīng)沒有任何一未定義的一字節(jié)大小的運算碼狀態(tài),是尚未被使用的。在主要的一字節(jié)大小的x86運算碼圖中,全部256個運算碼狀態(tài)都已被既有的指令占用了。結果是,x86微處理器的設計者現(xiàn)在必須在提供新特征與保留舊有軟件兼容性兩者間作抉擇。若要提供新的可程序化特征,則必須分派運算碼狀態(tài)給這些特征。若既有的指令集架構沒有多余的運算碼狀態(tài),則某些既存的運算碼狀態(tài)必須重新定義,以提供給新的特征。因此,為了提供新的特征,就得犧牲舊有軟件兼容性了。(0009)現(xiàn)今微處理器設計者所關心的一個領域,為應用程序如何有效率地使用高速緩存結構。隨著快取技術的演進,已提供越來越多的特征,其允許系統(tǒng)程序員可控制一系統(tǒng)中高速緩存何時及如何被使用。早期的快取控制特征僅提供開/關的能力。通過設定微處理器的一內部緩存器,或通過將其封裝體(package)上的某外部信號腳位設為真,設計者可將存儲器的快取致能,或將整個存儲器空間設定為不可快取(uncacheable)。對于不可快取的存儲器參照(memoryreference)(即加載/讀取與儲存/寫入),則皆送至系統(tǒng)存儲器總線,而產(chǎn)生與外在總線架構相同的等待時間(latency)。相反地,存儲器對于一高速緩存的參照或存取,只有在一快取未中(cachemiss)發(fā)生時(亦即,一存儲器參照的目標在內部高速緩存內并非有效),才被送至系統(tǒng)存儲器總線??烊√卣魇沟脩贸绦蛟趫?zhí)行速度上大幅提升,特別是應用程序對存儲器中相同的數(shù)據(jù)結構進行重復參照時。(0010)最近微處理器架構上的改進,已使得系統(tǒng)設計者能更精確地控制如何使用快取特征。這些改進允許設計者在微處理器的地址空間內,定義一個范圍的地址的性質,其中,此定義是以微處理器對這些地址的參照是如何依其快取層級架構(cachehierarchy)執(zhí)行的方式進行。一般而言,對這些地址的參照可被定義為不可快取、復合寫入(writecombining)、寫透(writethrough)?;貙?writeback)或寫入保護(writeprotected)。這些性質稱為存儲器屬性(attribute),或存儲器特性(trait)。因此,具有回寫屬性的地址的儲存參照,會被送到高速緩存,并假想地(speculatively)分派至其中的儲存位置。對具有不可快取屬性的另一地址的儲存參照,則送至系統(tǒng)總線,且不會進行假想地分派儲存位置的動作。(0011)不過,對于存儲器屬性及特定屬性如何由微處理器借其高速緩存加以處理,提供一深度的說明,則不在本申請案的范圍內。此處去了解本
技術領域:
目前所能使設計者指派一存儲器屬性予一存儲器區(qū)域,以及所有后續(xù)對該區(qū)域內地址的存儲器參照,將依據(jù)關聯(lián)于該指定存儲器屬性的快取原則(cachepolicy)來處理,如此即已足夠。(0012)雖然現(xiàn)代的微處理器設計允許存儲器的不同區(qū)域被賦予不同的存儲器特性,但在兩個重要方面,設計上仍受限制,第一,微處理器指令集架構限制了用以定義/改變存儲器特性至使用者層級(user-level)的應用程序所無法存取的一(privilege)層級的指令執(zhí)行。因此,當一桌上型/膝上型微處理器激活時,其操作系統(tǒng)在任何使用者層級應用程序開啟前,便將物理存儲器空間的存儲器特性建立好。因而使用者層級的應用程序便不能改變主機系統(tǒng)的存儲器特性。第二,在現(xiàn)代。微處理器中,用來建立存儲器特性的最佳處理層級為分頁層級。在常用的允許存儲器分頁(memorypaging)的架構中,每一存儲器分頁的存儲器屬性,由操作系統(tǒng)在分頁目錄/表(pagedirectory/tabie)的項目內作進一步界定。因此,所有對于一特定分頁內地址的參照,將使用于該相關存儲器存取運算執(zhí)行時所賦予的存儲器屬性。(0013)對許多應用程序而言,上述的控制特征雖可讓使用者層級的應用程序在執(zhí)行速度上有明顯的改進,但本案發(fā)明人注意到,就其它的應用程序而言仍會有所限制,這除了因為在使用者層級上,并無法應用現(xiàn)代的存儲器特性控制,也因為存儲器屬性僅能依分頁層級(page-level)的單位來建立。例如,一個對一第一數(shù)據(jù)結構作重復存取的使用者程序,在對一第二數(shù)據(jù)結構進行一附帶的參照時,若第一數(shù)據(jù)結構的快取項目必須清除,以空出高速緩存的空間供第二數(shù)據(jù)結構使用,則該使用者程序的執(zhí)行效率會因而受到影響。由于操作系統(tǒng)并未預知使用者層級的應用程序對于數(shù)據(jù)結構的參照頻率,應用程序的數(shù)據(jù)空間一般皆被賦予一回寫特性,因而促成了前述沖突的產(chǎn)生條件。程序員并沒有用來更改數(shù)據(jù)空間特性的工具,以強迫該附帶參照轉送至存儲器總線(例如,賦予不可快取的特性給該第二數(shù)據(jù)結構),而排除該沖突。(0014)因此,我們所需要的是,一種可將選擇性的存儲器屬性控制特征納入既有微處理器指令集架構的裝置及方法,其中該微處理器指令集是被已定義的運算碼完全占用,且納入該屬性控制特征除了不影響一符合舊有規(guī)格的微處理器執(zhí)行舊有應用程序的能力,同時還提供程序員修改存儲器屬性的能力。(0016)本發(fā)明的一個目的,是提出一種延伸既有指令集以提供存儲器特性的選擇性控制的微處理器機制。該微處理器機制具有一延伸指令與一轉譯器(translator)。該延伸指令指定一存儲器存取的存儲器屬性,其中該延伸指令包括該既有微處理器指令集其中一選取的運算碼,其后則接著一n位的延伸前置碼。該選取的運算碼指出該延伸指令,而該n位的延伸前置碼則指出該存儲器屬性。該存儲器存取的存儲器屬性不能另依該既有指令集的指令加以指定。該轉譯器接收該延伸指令,并產(chǎn)生一微指令序列,以指示微處理器執(zhí)行該存儲器存取,其中該存儲器存取將依該存儲器屬性執(zhí)行。(0017)本發(fā)明的另一目的,在于提出一種為既有指令集增添指令層級的存儲器特性控制特征的模塊。該模塊包括一逸出標記(escapetag)、一存儲器特性指定元(memorytraitspecifier)及一延伸執(zhí)行邏輯。該逸出標記由一轉譯邏輯接收,并指出一對應指令的附隨部分是指定了一存儲器存取,其中該逸出標記為該既有指令集內的一第一運算碼。該存儲器特性指定元耦接至該逸出標記,且為該附隨部分其中之一,用以指定數(shù)個存儲器特性其中的一予該存儲器存取。該延伸執(zhí)行邏輯耦接至該轉譯邏輯,利用所指定的存儲器特性執(zhí)行該存儲器存取,其中該既有指令集僅提供該存儲器存取的一預設存儲器特性的指定,且該延伸執(zhí)行邏輯應用所指定的存儲器特性取代該預設存儲器特性。(0018)本發(fā)明的再一目的,在于提供一種擴充既有指令集架構的方法,以致能指令層級的選擇性存儲器屬性控制。該方法包括提供一延伸指令,該延伸指令包括一延伸標記及一延伸前置碼,其中該延伸標記是該既有指令集架構其中一第一運算碼項目;通過該延伸前置碼指定要應用于一對應存儲器存取的一存儲器屬性,其中該存儲器存取是由該延伸指令的其余部分所指定;以及應用該存儲器屬性以執(zhí)行該存儲器存取,其中該應用動作取代了該存儲器存取的一預設存儲器屬性。(0028)圖9為圖5微處理器內轉譯階段邏輯的具體的方塊圖;(0029)圖10為圖5的微處理器內延伸執(zhí)行邏輯的方塊圖;以及(0030)圖11為描述本發(fā)明用于取代一微處理器的存儲器特性的方法的運作流程圖。圖標說明100指令格式101前置碼102運算碼103地址指定元2008位運算碼圖201運算碼值202運算碼F1H300延伸指令格式301前置碼302運算碼303地址指定元304延伸指令標記305延伸前置碼4008位前置碼圖401架構特征500流水線化微處理器501提取邏輯502指令高速緩存/外部存儲器503指令隊列504轉譯邏輯505延伸轉譯邏輯506微指令隊列507執(zhí)行邏輯508延伸執(zhí)行邏輯600延伸前置碼601來源特性字段602目的特性字段700存儲器屬性前置碼701屬性字段702來源位703目的位704備用字段800表格900轉譯階段邏輯901激活狀態(tài)信號902機器特定緩存器903延伸特征字段904指令緩沖器905轉譯邏輯906轉譯控制器907除能信號908逸出指令檢測器909延伸前置碼譯碼器910指令譯碼器911控制只讀存儲器912微指令緩沖器913運算碼延伸項字段914微運算碼字段915的字段916來源字段917位移字段1000延伸執(zhí)行階段邏輯1001延伸微指令緩沖器1002地址緩沖器1003地址緩沖器1004目的操作數(shù)緩沖器1005延伸存取邏輯1006存儲器特性描述符1007高速緩存1008總線單元1009存取控制器1010儲存緩沖器1011高速緩存1012總線1013總線1014儲存緩沖器1015來源操作數(shù)緩沖器1100~1128用于取代一微處理器的存儲器特性的方法的運作流程(0032)前文已針對今日的微處理器內,如何擴充其架構特征,以超越相關指令集能力的技術,作了背景的討論。有鑒于此,在圖1與圖2,將討論一相關技術的例子。此處的討論強調了微處理器設計者所一直面對的兩難,即一方面,他們想將最新開發(fā)的架構特征納入微處理器的設計中,但另一方面,他們又要保留執(zhí)行舊有應用程序的能力。在圖1至2的例子中,一完全占用的運算碼圖,已把增加新運算碼至該范例架構的可能性排除,因而迫使設計者要不就選擇將新特征納入,而犧牲某種程度的舊有軟件兼容性,要不就將架構上的最新進展一并放棄,以便維持微處理器與舊有應用程序的兼容性。在相關技術的討論后,于圖3至11,將提供對本發(fā)明的討論。通過利用一既有但未使用的運算碼作為一延伸指令的前置碼標記,本發(fā)明可讓微處理器設計者克服已完全使用的指令集架構的限制,在允許他們提供程序員于指令層級對一特定存儲器參照指派存儲器特性的能力的同時,也能保留與舊有應用程序的兼容性。(0033)請參閱圖1,其是一相關技術的微處理器指令格式100的方塊圖。該相關技術的指令100具有數(shù)量可變的數(shù)據(jù)項101-103,每一項目皆設定成一特定值,合在一起便組成微處理器的一特定指令100。該特定指令100指示微處理器執(zhí)行一特定運算,例如將兩操作數(shù)相加,或者是將一操作數(shù)從存儲器搬移至一內部緩存器,或從該內部緩存器搬移至存儲器。一般而言,指令100內的運算碼項目102指定了所要執(zhí)行的特定運算,而選用(optional)的地址指定元項目103位于運算碼102之后,以指定關于該特定運算的附加信息,像是如何執(zhí)行該運算,操作數(shù)位于何處等等。指令格式100并允許程序員在一運算碼102前加上前置碼項目101。在運算碼102所指定的特定運算執(zhí)行時,前置碼101用以指示是否使用特定的架構特征。一般來說,這些架構特征能應用于指令集中任何運算碼102所指定運算的大部分。例如,現(xiàn)今前置碼101存在于一些能使用不同大小虛擬地址(如8位、16位、32位)執(zhí)行運算的微處理器中。而當許多此類處理器被程序化為一預設的地址大小時(比如32位),在其個別指令集中所提供的前置碼101,仍能使程序員依據(jù)各個指令,選擇性地取代(override)該預設的地址大小(如為了產(chǎn)生16位的虛擬地址)??蛇x擇的地址大小僅是架構特征的一例,在許多現(xiàn)代的微處理器中,這些架構特征能應用于眾多可由運算碼102加以指定的運算(如加、減、乘、布爾邏輯等)。(0034)圖1所示的指令格式100,有一為業(yè)界所熟知的范例,此即x86指令格式100,其為所有現(xiàn)代的x86-兼容微處理器所采用。更具體他說,x86指令格式100(也稱為x86指令集架構100)使用了8位前置碼101、8位運算碼102以及8位地址指定元103。x86架構100亦具有數(shù)個前置碼101,其中兩個取代了x86微處理器所預設的地址/數(shù)據(jù)大小(即運算碼狀態(tài)66H與67H),另一個則指示微處理器依據(jù)不同的轉譯規(guī)則來解譯其后的運算碼字節(jié)102(即前置碼值0FH,其使得轉譯動作是依據(jù)所謂的二字節(jié)運算碼規(guī)則來進行),其它的前置碼101則使特殊運算重復執(zhí)行,直至重復條件滿足為止(即REP運算碼F0H、F2H及F3H)。(0035)現(xiàn)請參閱圖2,其顯示一表格200,用以描述一指令集架構的指令201如何對應至圖1指令格式內一8位運算碼字節(jié)102的位值。表格200呈現(xiàn)了一8位運算碼圖200的范例,其將一8位運算碼項目102所具有的最多256個值,關聯(lián)到對應的微處理器運算碼指令201。表格200將運算碼項目102的一特定值,比如02H,映像至一對應的運算碼指令201(即指令I02201)。在x86運算碼圖的例子中,為此領域技術人員所熟知的是,運算碼值14H是映像至x86的進位累加(AddwithCarry,ADC)指令,此指令將一8位的直接(immediate)操作數(shù)加至架構緩存器AL的內含值。本領域的技術人員也將發(fā)覺,上文提及的x86前置碼101(亦即66H、67H、0FH、F0H、F2H及F3H)是實際的運算碼值201,其在不同脈絡下,指定要將特定的架構延伸項應用于隨后的運算碼項目102所指定的運算。例如,在運算碼14H(正常情況下,是前述的ADC運算碼)前加上前置碼0FH,會使得x86處理器執(zhí)行一“解壓縮與插入低壓縮的單精度浮點值”(UnpackandInterleaveLowPackedSingle-PrecisionFloating-PointValues)運算,而非原本的ADC運算。諸如此x86例子所述的特征,在現(xiàn)代的微處理器中是部分地致能,此因微處理器內的指令轉譯/譯碼邏輯是依序解譯一指令100的項目101-103。所以在過去,于指令集架構中使用特定運算碼值作為前置碼101,可允許微處理器設計者將不少先進的架構特征納入兼容舊有軟件的微處理器的設計中,而不會對未使用那些特定運算碼狀態(tài)的舊有程序,帶來執(zhí)行上的負面沖擊。例如,一未曾使用x86運算碼0FH的舊有程序,仍可在今日的x86微處理器上執(zhí)行。而一較新的應用程序,借著運用x86運算碼0FH作為前置碼101,就能使用許多新進納入的x86架構特征,如單一指令多重數(shù)據(jù)(SIMD)運算,條件移動運算等等。(0036)盡管過去已通過指定可用/多余的運算碼值201作為前置碼101(也稱為架構特征標記/指針101或逸出指令101),來提供架構特征,但許多指令集架構100在提供功能上的強化時,仍會因為一非常直接的理由,而碰到阻礙所有可用/多余的運算碼值已被用完,也就是,運算碼圖200中的全部運算碼值已被架構化地指定。當所有可用的值被分派為運算碼項目102或前置碼項目101時,就沒有剩余的運算碼值可作為納入新特征之用。這個嚴重的問題存在于現(xiàn)在的許多微處理器架構中,因而迫使設計者得在增添架構特征與保留舊有程序的兼容性兩者間作抉擇。(0037)值得注意的是,圖2所示的指令201是以一般性的方式表示(亦即I24、I86),而非具體指涉實際的運算(如進位累加、減、異或)。這是因為,在一些不同的微處理器架構中,完全占用的運算碼圖200在架構上,已將納入較新進展的可能性排除。雖然圖2例子所提到的是8位的運算碼項目102,本領域的技術人員仍將發(fā)覺,運算碼102的特定大小,除了作為一特殊情況來討論完全占用的運算碼結構200所造成的問題外,其它方面與問題本身并不相干。因此,一完全占用的6位運算碼圖將有64個可架構化地指定的運算碼/前置碼201,并將無法提供可用/多余的運算碼值作為擴充之用。(0038)另一種替代做法,則并非將原有指令集完全廢棄,以一新的格式100與運算碼圖200取代,而是只針對一部份既有的運算碼201,以新的指令意含取代,如圖2的運算碼40H至4FH。以這種混合的技術,微處理器就可以單獨地以下列兩種模式的一運作其中舊有模式利用運算碼40H-4FH,是依舊有規(guī)則來解譯,或者以另一種改良模式(enhancedmode)運作,此時運算碼40H-4FH則依加強的架構規(guī)則來解譯。此項技術確能允許設計者將新特征納入設計,然而,當符合舊有規(guī)格的微處理器于加強模式運作時,缺點仍舊存在,因為微處理器不能執(zhí)行任何使用運算碼40H-4FH的應用程序。因此,站在保留舊有軟件兼容性的立場,兼容舊有軟件/加強模式的技術,還是無法接受的。(0039)然而,對于運算碼空間已完全占用的指令集200,且該空間涵蓋所有于符合舊有規(guī)格的微處理器上執(zhí)行的應用程序的情形,本案發(fā)明人已注意到其中運算碼201的使用狀況,且他們亦觀察出,雖然有些指令202是架構化地指定,但未用于能被微處理器執(zhí)行的應用程序中。圖2所述的指令IF1202即為此現(xiàn)象的一例。事實上,相同的運算碼值202(亦即F1H)是映像至未用于x86指令集架構的一有效指令202。雖然該未使用的x86指令202是有效的x86指令202,其指示要在x86微處理器上執(zhí)行一架構化地指定的運算,但它卻未使用于任何能在現(xiàn)代x86微處理器上執(zhí)行的應用程序。這個特殊的x86指令202被稱為電路內模擬斷點(InCircuitEmulationBreakpoint)(亦即ICEBKPT,運算碼值為F1H),之前都是專門使用于一種現(xiàn)在已不存在的微處理器模擬設備中。ICEBKPT202從未用于電路內模擬器的外的應用程序中,并且先前使用ICEBKPT202的電路內模擬設備已不復存在。因此,在x86的情形下,本案發(fā)明人已在一完全占用的指令集架構200內發(fā)現(xiàn)一樣工具,借著利用一有效但未使用的運算碼202,以允許在微處理器的設計中納入先進的架構特征,而不需犧牲舊有軟件的兼容性。在一完全占用的指令集架構200中,本發(fā)明利用一架構化地指定但未使用的運算碼202,作為一指針標記,以指出其后的一n位前置碼,因此允許微處理器設計者可將最多2n個最新發(fā)展的架構特征,納入微處理器的設計中,同時保留與所有舊有軟件完全的兼容性。(0040)本發(fā)明通過提供一n位的擴充存儲器特性指定元前置碼,以使用前置碼標記/延伸前置碼的概念,因而可允許程序員在一微處理器中,依據(jù)每個指令指定一存儲器屬性予一對應的存儲器存取運算。在該對應的存儲器存取運算執(zhí)行時,該存儲器屬性被用于取代由操作系統(tǒng)程序先前建立的存儲器特性描述符表格/機制所指定的一預設屬性。本發(fā)明現(xiàn)將參照圖3至11進行討論。(0041)現(xiàn)請參閱圖3,其為本發(fā)明的延伸指令格式300的方塊圖。與圖1所討論的格式100非常近似,該延伸指令格式300具有數(shù)量可變的指令項目301-305,每一項目設定為一特定值,集合起來便組成微處理器的一特定指令300。該特定指令300指示微處理器執(zhí)行一特定運算,像是將兩操作數(shù)相加,或是將一操作數(shù)從存儲器搬移至微處理器的緩存器內。一般而言,指令300的運算碼項目302指定了所要執(zhí)行的特定運算,而選用的地址指定元項目303則位于運算碼302后,以指定該特定運算的相關附加信息,像是如何執(zhí)行該運算、操作數(shù)所在的緩存器、用于計算來源/結果操作數(shù)的存儲器地址的直接與間接數(shù)據(jù)等等。指令格式300亦允許程序員在一運算碼302前加上前置碼項目301。在運算碼302所指定的特定運算執(zhí)行時,前置碼項目301是用來指示是否要使用既有的架構特征。(0042)然而,本發(fā)明的延伸指令300是前述圖1指令格式100的一超集(superset),其具有兩個附加項目304與305,可被選擇性作為指令延伸項,并置于一格式化延伸指令300中所有其余項目301-303之前。這兩個附加項目304與305可讓程序員能對于延伸指令300所指定的存儲器參照指定一存儲器特性,其中對應于該存儲器參照的該存儲器特性是無法另由符合舊有規(guī)格微處理器的既有指令集來加以指定。選用項目304與305是一延伸指令標記304與一擴充存儲器特性指定元前置碼305。該延伸指令標記304是一微處理器指令集內另一依據(jù)架構所指定的運算碼。在一x86的實施例中,該延伸指令標記304,或稱逸出標記304,是用運算碼狀態(tài)F1H,其為早先使用的ICEBKPT指令。逸出標記304向微處理器邏輯指出,該延伸前置碼305,或稱延伸特征指定元305,是跟隨在后,其中該延伸前置碼305指定了對應于一指定存儲器存取的一存儲器屬性。在一具體實施例中,逸出標記304指出,一對應延伸指令300的附隨部分301-303及305指定了微處理器所要執(zhí)行的存儲器存取。存儲器特性指定元305,或稱延伸前置碼305,指定了數(shù)個存儲器特性其中的一予該存儲器存取。微處理器內的延伸執(zhí)行邏輯便依據(jù)該指定的存儲器特性執(zhí)行該存儲器存取,因而取代了原先由其它方式所指定的預設存儲器屬性,這些其它方式包括使用現(xiàn)代微處理器架構所具有的控制緩存器位、存儲器類型緩存器、分頁表及其它類型的存儲器屬性描述符(descriptor)。(0043)此處將本發(fā)明的選擇性的存儲器屬性控制技術作個概述。一延伸指令是組態(tài)為對一既有微處理器指令集的存儲器存取指定一存儲器屬性,其中該存儲器存取的該存儲器屬性無法另以該既有微處理器指令集的指令來加以指定。該延伸指令包括該既有指令集的運算碼/指令304其中的一以及一n位的延伸前置碼305。所選取的運算碼對指令作為一指針304,以指出指令300是一延伸特征指令300(亦即,其指定了微處理器架構的延伸項),該n位的特征前置碼305則指出該存儲器屬性。在一具體實施例中,延伸前置碼305具八位的大小,最多可指定256種不同的屬性或存儲器屬性與其它延伸特征的組合。n位前置碼的實施例,則最多可指定2n種不同的存儲器特性。(0044)現(xiàn)請參閱圖4,一表格400顯示依據(jù)本發(fā)明,一指定存儲器參照的存儲器屬性如何映像至一8位延伸前置碼實施例的位邏輯狀態(tài)。類似于圖2所討論的運算碼圖200,圖4的表格400呈現(xiàn)一8位的延伸前置碼圖400的范例,其將一8位延伸前置碼項目305的最多256個值,關聯(lián)到一符合舊有規(guī)格的微處理器的對應存儲器特性401(如E34、E4D等)。在一x86的具體實施例中,本發(fā)明的8位延伸特征前置碼305是提供給存儲器特性401(亦即E00-EFF)的指令層級控制之用,該些存儲器特性401乃現(xiàn)行x86指令集架構于指令層級所未能指定的。(0045)圖4所示的延伸特征401是以一般性的方式表示,而非具體指涉實際的特征,此因本發(fā)明的技術可應用于各種不同的架構延伸項401與特定的指令集架構。本領域的技術人員將發(fā)覺,許多不同的架構特征401,其中一些已于上文提及,可依此處所述的逸出標記304/延伸前置碼305技術將其納入一既有的指令集。圖4的8位前置碼實施例提供了最多256個不同的特征401,而一n位前置碼實施例則具有最多2n個不同特征401的程序化選擇。(0046)現(xiàn)請參閱圖5,其為解說本發(fā)明用以執(zhí)行選擇性的存儲器屬性控制運算的流水線化微處理器500的方塊圖。微處理器500具有三個明顯的階段類型提取、轉譯及執(zhí)行。提取階段具有提取邏輯501,可從指令高速緩存502或外部存儲器502提取指令。所提取的指令經(jīng)由指令隊列503送至轉譯階段。轉譯階段具有轉譯邏輯504,耦接至一微指令隊列506。轉譯邏輯504包括延伸轉譯邏輯505。執(zhí)行階段則有執(zhí)行邏輯507,其內具有延伸執(zhí)行邏輯508。(0047)依據(jù)本發(fā)明,于運作時,提取邏輯501從指令高速緩存/外部存儲器502提取格式化指令,并將這些指令依其執(zhí)行順序放入指令隊列503中。接著從指令隊列503提取這些指令,送至轉譯邏輯504。轉譯邏輯504將每一送入的指令轉譯/譯碼為一對應的微指令序列,以指示微處理器500去執(zhí)行這些指令所指定的運算。依本發(fā)明,延伸轉譯邏輯505檢測那些具有延伸前置碼標記的指令,以進行對應擴充存儲器特性指定元前置碼的轉譯/譯碼。在一x86的實施例中,延伸轉譯邏輯505組態(tài)為檢測其值為F1H的延伸前置碼標記,其是x86的ICEBKPT運算碼。延伸微指令字段則提供于微指令隊列506中,以允許指定由該指令附隨部分所指定的相關存儲器參照的存儲器特性。(0048)微指令從微指令隊列506被送至執(zhí)行邏輯507,其中延伸執(zhí)行邏輯508組態(tài)為依照一預設存儲器特性(由既有的存儲器特性描述符工具所定義)執(zhí)行一指定存儲器參照,或組態(tài)為利用于使用者層級通過本發(fā)明的延伸前置碼所程序化的一存儲器特性,依延伸微指令字段的指定,取代該預設的存儲器特性。在一具體實施例中,該存儲器特性是以快取線為單位而賦予的。(0049)本領域的技術人員將發(fā)現(xiàn),圖5所示的微處理器500是現(xiàn)代的流水線化微處理器50經(jīng)過簡化的結果,事實上,現(xiàn)代的流水線化微處理器500最多可包括有20至30個不同的流水線階段。然而,這些階段可概括地歸類為方塊圖所示的三個階段,因此,圖5的方塊圖500可用以點明前述本發(fā)明實施例所需的必要組件。為了簡明起見,微處理器500中無關的組件并未顯示出來。(0050)現(xiàn)請參閱圖6,其為本發(fā)明用于指定微處理器中一程序化存儲器存取的存儲器屬性的延伸前置碼600的一具體實施例的方塊圖。存儲器特性指定元前置碼600具8位大小,且包括一來源特性(sourcetrait)字段601與一目的特性(destinationtrait)字段602。來源特性字段601為一相關延伸指令的其余部分所指定的來源操作數(shù)存儲器存取(即加載、讀取)指定一存儲器屬性,而目的特性字段602則為該其余部分所指定的目的操作數(shù)存儲器存取(即儲存、寫入)指定一存儲器屬性。因此,8位前置碼600的范例可指定16個不同存儲器特性其中的一予來源與目的操作數(shù)兩者,而這16個存儲器特性是可用于取代相關地址范圍或存儲器分頁所被指定的預設特性。圖6所示的實施例為關聯(lián)于對應指令的所有來源操作數(shù)地址指定了單一的來源存儲器特性,并為所有目的操作數(shù)指定了單一(可能與前述的不同)的目的存儲器特性。本領域技術人員將發(fā)覺,來源與目的屬性可分別加以指定,在與重復字符串指令如x86架構的REPMOVS等連用的情形下,會特別有用。上述實施例的一變形則對于該對應指令所參照的每一目的/來源操作數(shù)提供一對應的目的特性字段602與來源特性字段601,因而等量地增加/減少前置碼600的位。(0051)現(xiàn)請參閱圖7,其為本發(fā)明用于指定微處理器中一程序化存儲器存取的存儲器屬性的延伸前置碼600的另一具體實施例的方塊圖。存儲器屬性前置碼700具8位大小,且包括一屬性字段701,一來源位702、一目的位703及一備用字段704。3位的屬性字段701為一對應指令所指定的存儲器存取運算指定8個不同存儲器特性的其中之一。來源位702對于所有來源操作數(shù)的存儲器存取,致能屬性字段701所指定的屬性,而目的位703則對所有目的操作數(shù)的存儲器存取致能該指定屬性。因此,8位前置碼700的實施例可指定8個不同存儲器特性其中之一予可能應用于來源參照、目的參照或以上兩者的存儲器存取,而這8個存儲器特性是可用于取代相關地址范圍或存儲器分頁所被指定的預設特性。(0052)現(xiàn)請參閱圖8,其為一表格,用以解說圖7延伸前置碼700的字段的典型存儲器特性的一編碼范例。表格800具有一屬性行ATTR及一特性行TRAIT。ATTR行中屬性字段701的值被映像至TRAIT行中一對應的存儲器特性。在此編碼范例中,提供了常用的存儲器特性,像是不可快取(值為000)與回寫(值為011),然而本領域技術人員將發(fā)覺,其它適用于一特殊微處理器架構的特性,也能通過圖6與7的屬性字段601、602、701來加以編碼。(0053)現(xiàn)請參閱圖9,其為圖5的微處理器內轉譯階段邏輯900的具體的方塊圖。轉譯階段邏輯900具有一指令緩沖器904,依本發(fā)明,其提供延伸指令至轉譯邏輯905。轉譯邏輯905是耦接至一具有一延伸特征字段903的機器特定緩存器(machinespecificregister)902。轉譯邏輯905具一轉譯控制器906,其提供一除能信號907至一逸出指令檢測器908及一延伸譯碼器909。逸出指令檢測器908耦接至延伸譯碼器909及一指令譯碼器910。延伸譯碼器909與指令譯碼邏輯910存取一控制只讀存儲器(ROM)911,其中儲存了對應至某些延伸指令的樣板(template)微指令序列。轉譯邏輯905亦包括一微指令緩沖器912,其具有一運算碼延伸項字段913、一微運算碼字段914、一目的字段915、一來源字段916以及一位移字段917。(0054)運作上,在微處理器通電激活期間,機器特定緩存器902內的延伸字段903的狀態(tài)是通過信號激活狀態(tài)(signalpower-upstate)901決定,以指出該特定微處理器是否能轉譯與執(zhí)行本發(fā)明的用以取代微處理器的預設存儲器屬性的延伸指令。在一具體實施例中,信號901從一特征控制緩存器(圖上未顯示)導出,該特征控制緩存器則讀取一于制造時即已組態(tài)的熔絲數(shù)組(fusearray)(未顯示)。機器特定緩存器902將延伸特征字段903的狀態(tài)送至轉譯控制器906。轉譯控制邏輯906則控制從指令緩沖器904所提取的指令,要依照延伸轉譯規(guī)則或常用轉譯規(guī)則進行解譯。提供這樣的控制特征,可允許監(jiān)督應用程序(如BIOS)致能/除能微處理器的延伸執(zhí)行特征。若延伸特征被除能,則具有被選為延伸特征標記的運算碼狀態(tài)的指令,將依常用轉譯規(guī)則進行轉譯。在一x86的具體實施例中,選取運算碼狀態(tài)F1H作為標記,則在常用的轉譯規(guī)則下,遇到F1H將造成不合法的指令異常(exception)。若延伸轉譯被除能,指令譯碼器910將轉譯/譯碼所有送入的指令,并對微指令912的所有字段913至917進行組態(tài)。然而,在延伸轉譯規(guī)則下,若遇到標記,則會被逸出指令檢測器908檢測出來。逸出指令檢測器908將指示延伸前置碼譯碼器909依據(jù)延伸轉譯規(guī)則來轉譯/譯碼該延伸指令的延伸前置碼部分,并組態(tài)運算碼延伸項字段913,以指出該延伸指令其余部分指定的存儲器存取所要應用的存儲器特性。指令譯碼器910將轉譯/譯碼該延伸指令的其余部分,并對微指令912的微運算碼字段914、來源字段916、目的字段915及位移字段917進行組態(tài)。某些特定指令將導致對控制ROM911的存取,以獲取對應的微指令序列樣板。經(jīng)過組態(tài)的微指令912被送至一微指令隊列(未顯示于圖中),由處理器進行后續(xù)執(zhí)行。(0055)現(xiàn)請參閱圖10,其為圖5微處理器內的延伸執(zhí)行階段邏輯1000的方塊圖。該延伸執(zhí)行階段邏輯1000具一延伸存取邏輯(extendedaccesslogic)1005,其分別經(jīng)由總線1012與1013耦接至一高速緩存1007與一總線單元1008??偩€單元1008是用以指導于存儲器總線(圖中未顯示)上進行的存儲器存取作業(yè)(memorytransaction)。依本發(fā)明,延伸存取邏輯1005從微處理器前一階段的一延伸微指令緩沖器1001接收微指令,從地址緩沖器1002與1003接收兩個地址操作數(shù),并從目的操作數(shù)緩沖器1004接收一目的操作數(shù)。延伸存取邏輯1005亦耦接至數(shù)個依主機微處理器的架構常規(guī)進行組態(tài)的存儲器特性描述符1006,延伸存取邏輯1005包括一存取控制器1009、一儲存緩沖器1010及一加載緩沖器1011。該加載緩沖器1011將一來源操作數(shù)輸出送至一來源操作數(shù)緩沖器1015。(0056)運作上,延伸執(zhí)行邏輯1000是用于執(zhí)行存儲器存取,從存儲器讀取操作數(shù),以及將操作數(shù)寫入存儲器,如延伸微指令緩沖器1001中的微指令所指示的。執(zhí)行讀取/加載運算時,存取控制器1009從地址緩沖器1002與1003接收一個或更多存儲器地址,并讀取存儲器特性描述符1006,以決定相關于該加載運算的存儲器屬性。在一x86實施例中,存儲器特性描述符1006包括x86高速緩存與分頁控制緩存器、分頁目錄與分頁表項目、存儲器類型范圍緩存器(memorytyperangeregister,MTTR)、分頁屬性表(pagingattributetable,PAT)以及外部信號腳位KEN#、wB/WT#、PCT及PWT。存取控制器1009依據(jù)x86的層級存儲器屬性常規(guī),使用從這些來源1006所取得的信息,以決定該加載運算的預設存儲器屬性。對非x86的實施例而言,存取控制器1009依據(jù)對應主機微處理器的特定架構的層級存儲器屬性常規(guī),使用從存儲器特性描述符1006所取得的信息,來決定該加載運算的預設存儲器屬性。存儲器地址,連同其對應存取的屬性,被送至加載緩沖器1011。依據(jù)所提供的特性屬性,加載緩沖器1011經(jīng)由總線1012從高速緩存或直接經(jīng)由總線單元1008從系統(tǒng)存儲器(未顯示)獲得來源操作數(shù)。所獲得的來源操作數(shù)與一流水線時鐘信號(未顯示)同步,被送至來源操作數(shù)緩沖器1015。延伸微指令亦與該流水線時鐘信號同步,被送入流水線至延伸微指令緩存器1014。來源操作數(shù)便以此種方式被送至微處理器的下一階段。(0057)執(zhí)行延伸微指令所指示的寫入/儲存運算時,存取控制器1009從地址緩沖器1002與1003接收該運算的地址數(shù)據(jù),并從緩沖器1004接收所要儲存的操作數(shù)。存取控制器1009如前所述般來存取存儲器特性描述符1006,以決定對應于該儲存運算的存儲器特性。該存儲器特性、地址信息以及該目的操作數(shù)并送至儲存緩沖器1010。依據(jù)所提供的特定屬性,儲存緩沖器1010經(jīng)由總線1012將該目的操作數(shù)寫入高速緩存1007,或直接經(jīng)由總線單元1008寫入系統(tǒng)存儲器。(0058)本發(fā)明的儲存緩沖器1010與加載緩沖器1011被組態(tài)為依據(jù)主機處理器的存儲器屬性模型的相關處理要求,來執(zhí)行儲存與加載的存取運算,其中該處理要求是包括強/弱排序常規(guī)(如假想執(zhí)行規(guī)則)以及快取存取原則。在一具體實施例中,加載與儲存運算是在主機微處理器的不同流水線階段中執(zhí)行。(0059)對使用選擇性的存儲器屬性取代前置碼的延伸指令而言,相關存儲器存取(即加載、儲存或加載與儲存兩者)的取代存儲器特性通過延伸微指令緩沖器1001內的延伸微指令的運算碼延伸項字段(未顯示),被送至存取控制器1009。存取控制器1009,如前所述,通過從存儲器特性描述符1006所獲得的信息,決定所指定存儲器存取的預設存儲器特性。若該指定取代特性比對應的預設特性還強,則存取控制器1009將取代特性連同前述的地址及/或目的操作數(shù),送至儲存緩沖器1010/加載緩沖器1011。若該指定取代特性比對應的預設特性還弱,則存取控制器1009將預設特性連同地址及/或目的操作數(shù),送至儲存緩沖器1010/加載緩沖器1011。因此,選擇性的存儲器取代僅依據(jù)所應用的特定架構而執(zhí)行,以加強一存儲器特性。例如,在x86架構中,一存儲器存取的不可快取特性不能被弱化為回寫。反之,回寫特性則不能被加強為不可快取。存儲器存取所要使用的特性是隊決取線為單位而賦予的,而在許多現(xiàn)代的桌上型/膝上型微處理器架構中,快取線的大小為32字節(jié)。(0060)現(xiàn)請參閱圖11,其為描述本發(fā)明對可使程序員于指令層級取代微處理器內的預設存儲器屬性的指令,進行轉譯與執(zhí)行的方法的運作流程圖。流程開始于方塊1102,其中一個組態(tài)有延伸特征指令的程序,被送至微處理器。流程接著進行至方塊1104。(0061)于方塊1104中,下一個指令是從高速緩存/外部存儲器提取。流程接著進行至判斷方塊1106。(0062)于判斷方塊1106中,對在方塊1104中所提取的下個指令進行檢查,以判斷是否包括一本發(fā)明的延伸逸出碼。在一x86的實施例中,該檢查是用以檢測運算碼值F1(ICEBKPT)。若檢測到該延伸逸出碼,則流程進行至方塊1108。若未檢測到該延伸逸出碼,則流程進行至方塊1112。(0063)于方塊1108中,譯碼/轉譯該延伸指令的延伸前置碼部分,以決定一存儲器屬性,該存儲器屬性是被指定為取代該下個指令所指定的相關存儲器存取的預設存儲器屬性。流程接著進行到方塊1110。(0064)于方塊1110中,該相關存儲器存取的存儲器屬性于一對應微指令序列的延伸項字段進行組態(tài)。流程接著進行至方塊1112。(0065)于方塊1112中,該指令的所有其余部分被譯碼/轉譯,以決定所指定的存儲器存取、緩存器操作數(shù)的位置。存儲器地址指定元以及依據(jù)該既有微處理器指令集,由前置碼所指定的既有架構特征的使用。流程接著進行至方塊1114。(0066)于方塊1114中,一微指令序列被組態(tài)為指定所指定的存儲器參照及其對應的運算碼延伸項。流程接著進行至方塊1116。(0067)于方塊1116中,該微指令序列被送至一微指令隊列,由微處理器執(zhí)行。流程接著進行至方塊1118。(0068)于方塊1118中,該微指令序列由本發(fā)明的一地址邏輯進行提取。該地址邏輯產(chǎn)生該存儲器存取的地址,并將該地址送至延伸執(zhí)行邏輯。流程接著進行至方塊1120。(0069)于方塊1120中,延伸執(zhí)行邏輯運用該微處理器架構的存儲器特性描述工具,以決定一預設的存儲器特性。流程接著進行至判斷方塊1122。(0070)于判斷方塊1122中進行評估,以判斷該微處理器架構的快取/存儲器模型是否允許該指定的存儲器屬性取代該預設屬性。若取代被允許,流程進行至方塊1124。若取代未被允許,則流程進行至方塊1126。(0071)于方塊1124中,通過使用于方塊1108的延伸前置碼字段所指定的取代存儲器屬性,執(zhí)行該存儲器存取。流程接著進行至方塊1128。(0072)于方塊1126中,通過使用于方塊1120所決定的預設存儲器屬性,執(zhí)行該存儲器存取。流程接著進行至方塊1128。(0073)于方塊1128中,本方法完成。(0074)雖然本發(fā)明及其目的。特征與優(yōu)點已詳細敘述,其它實施例亦可包括在本發(fā)明的范圍內。例如,本發(fā)明已就如下的技術加以敘述利用已完全占用的指令集架構內一單一、未使用的運算碼狀態(tài)作為標記,以指出其后的延伸特征前置碼。但本發(fā)明的范圍就任一方面來看,并不限于已完全占用的指令集架構,或未使用的指令,或是單一標記。相反地,本發(fā)明涵蓋了未完全映像的指令集。具已使用運算碼的實施例以及使用一個以上的指令標記的實施例。例如,考慮一沒有未使用運算碼狀態(tài)的指令集架構。本發(fā)明的一具體實施例包括了選取一作為逸出標記的運算碼狀態(tài),其中選取標準是依市場因素而決定。另一具體實施例則包括使用運算碼的一特殊組合作為標記,如運算碼狀態(tài)7FH的連續(xù)出現(xiàn)。因此,本發(fā)明的本質是在于使用一標記序列,其后則為一n位的延伸前置碼,可允許程序員于指令層級指定存儲器存取的存儲器屬性,而該些屬性是無法另由微處理器指令集的既有指令來提供。(0075)此外,雖然上文是利用微處理器為例來解說本發(fā)明及其目的。特征和優(yōu)點,本領域的技術人員仍可察覺,本發(fā)明的范圍并不限于微處理器的架構,而可涵蓋所有形式的可程序化裝置,如信號處理器。工業(yè)用控制器(industrialcontroller)、陣列處理機及其它同類裝置。總之,以上所述僅為本發(fā)明的較佳實施例而已,當不能以的限定本發(fā)明所實施的范圍。大凡依本發(fā)明權利要求所作的等效變化與修飾,皆應仍屬于本發(fā)明專利涵蓋的范圍內。權利要求1.一種在一微處理器內提供存儲器屬性的指令層級控制的裝置,其特征在于,它包括一轉譯邏輯,用以將一延伸指令轉譯成一微指令序列,其中該延伸指令包括一延伸前置碼,用以對該延伸指令所指定的一存儲器參照,指定一存儲器特性,其中該存儲器參照的存儲器特性不能由一既有指令集的一既有指令來指定;以及一延伸前置碼標記,用以指出該延伸前置碼,其中該伸前置碼標記是原本該既有指令集內另一依據(jù)架構所指定的運算碼;以及一延伸執(zhí)行邏輯,耦接至該轉譯邏輯,用以接收該微指令序列,并應用該存儲器特性來執(zhí)行該存儲器參照。2.如權利要求1所述的裝置,其特征在于所述的延伸指令還包括該既有指令集的指令項目。3.如權利要求2所述的裝置,其特征在于所述的指令項目指定該微處理器所要執(zhí)行的一運算,且其中該運算包括該存儲器參照。4.如權利要求1所述的裝置,其特征在于所述的存儲器參照包括一操作數(shù)加載作業(yè)、一操作數(shù)儲存作業(yè)或以上兩者。5.如權利要求1所述的裝置,其特征在于所述的存儲器特性指定一高速緩存于該存儲器參照執(zhí)行時如何被使用。6.如權利要求1所述的裝置,其特征在于所述的存儲器特性指定該存儲器參照相對于其它存儲器參照如何排出執(zhí)行順序。7.如權利要求1所述的裝置,其特征在于所述的延伸前置碼指示該微處理器于執(zhí)行該存儲器參照時,取代一預設的存儲器特性。8.如權利要求1所述的裝置,其特征在于所述的延伸前置碼包括一屬性字段,用以指定該存儲器特性,其中該存儲器特性包括數(shù)個存儲器屬性其中之一。9.如權利要求8所述的裝置,其特征在于所述的數(shù)個存儲器屬性包括不可快取、復合寫入、寫透、回寫以及寫入保護。10.如權利要求1所述的裝置,其特征在于所述的轉譯邏輯包括一逸出指令檢測邏輯,用于檢測該延伸前置碼標記;一指令譯碼邏輯,用以決定所要執(zhí)行的一運算,其中該運算包括該存儲器參照;以及一延伸譯碼邏輯,耦接至該逸出指令檢測邏輯與該指令譯碼邏輯,用以決定該存儲器特性,并于該微指令序列內指定該存儲器特性。11.一種延伸一既有指令集以提供存儲器特性的選擇性控制的微處理器機制,其特征在于,它包括一延伸指令,組態(tài)為指定一存儲器存取的一存儲器屬性,其中該延伸指令包括該既有微處理器指令集其中一選取的運算碼,其后則接著一n位的延伸前置碼,該選取的運算碼指出該延伸指令,而該n位的延伸前置碼則指出該存儲器屬性,其中該存儲器存取的存儲器屬性不能另依該既有指令集的指令加以指定;以及一轉譯器,組態(tài)為接收該延伸指令,并產(chǎn)生一微指令序列,以指示一微處理器執(zhí)行該存儲器存取,其中該存儲器存取將依該存儲器屬性執(zhí)行。12.如權利要求11所述的微處理器機制,其特征在于所述的延伸指令還包括其余指令項目,組態(tài)為指定該存儲器存取,其中該存儲器屬性是于該存儲器存取執(zhí)行時用于取代一預設的存儲器屬件。13.如權利要求11所述的微處理器機制,其特征在于所述的n位的前置碼包括一存儲器特性字段,組態(tài)為指定該存儲器屬性,以用于該存儲器存取時,其中該存儲器屬性包括數(shù)個存儲器存取特性其中之一。14.如權利要求13所述的微處理器機制,其特征在于所述的些存儲器存取特性包括不可快取、復合寫入、寫透、回寫以及寫入保護。15.如權利要求11所述的微處理器機制,其特征在于所述的轉譯器包括一逸出指令檢測器,用以檢測該延伸指令內的該選取的運算碼;一指令譯碼器,用以譯碼該延伸指令的其余部分,以決定該存儲器存??;以及一延伸前置碼譯碼器,耦接至該逸出指令檢測器及該指令譯碼器,用以譯碼該n位的延伸前置碼,并于該微指令序列內指定該存儲器屬性。16.一種為一既有指令集增添指令層級的存儲器特性控制特征的模塊,其特征在于,它包括一逸出標記,由一轉譯邏輯接收,并指出一對應指令的附隨部分是指定了一存儲器存取,其中該逸出標記為該既有指令集內的一第一運算碼;一存儲器特性指定元,耦接至該逸出標記,且為該附隨部分其中之一,用以指定數(shù)個存儲器特性其中之一予該存儲器存??;以及一延伸執(zhí)行邏輯,耦接至該轉譯邏輯,利用所指定的存儲器特性執(zhí)行該存儲器存取,其中該既有指令集僅提供該存儲器存取的一預設存儲器特性的指定,且其中該延伸執(zhí)行邏輯應用所指定的存儲器特性取代該預設存儲器特性。17.如權利要求16所述的模塊,其特征在于所述的轉譯邏輯將該逸出標記與該附隨部分轉譯成對應的微指令,該對應的微指令是指示該延伸執(zhí)行邏輯依據(jù)所指定的存儲器特性,執(zhí)行該存儲器存取。18.如權利要求16所述的模塊,其特征在于所述的些存儲器特性包括不可快取、復合寫入、寫透、回寫以及寫入保護。19.如權利要求16所述的模塊,其特征在于所述的轉譯邏輯包括一逸出標記檢測邏輯,用以檢測該逸出標記,并指示該附隨部分的轉譯動作需依據(jù)延伸轉譯常規(guī)(conventions);以及一譯碼邏輯,耦接至該逸出標記檢測邏輯,用以依據(jù)該既有指令集的常規(guī),執(zhí)行指令的轉譯動作,并依據(jù)該延伸轉譯常規(guī)執(zhí)行該對應指令的轉譯,以依據(jù)所指定的存儲器特性,致能該存儲器存取的執(zhí)行。20.一種擴充一既有指令集架構的方法,以提供指令層級的選擇性存儲器屬性控制,其特征在于,該方法包括提供一延伸指令,該延伸指令包括一延伸標記及一延伸前置碼,其中該延伸標記是該既有指令集架構其中一第一運算碼項目;通過該延伸前置碼指定要應用于一對應存儲器存取的一存儲器屬性,其中該存儲器存取是由該延伸指令的其余部分所指定;以及應用該存儲器屬性以執(zhí)行該存儲器存取,其中該應用動作取代了該存儲器存取的一預設存儲器屬性。21.如權利要求20所述的方法,其特征在于所述的指定所要應用的存儲器屬性的動作包括首先于該延伸指令的其余部分內指定該存儲器存取,其中該首先指定的動作包括使用該既有指令集架構中一第二運算碼項目。22.如權利要求20所述的方法,其特征在于,還包括將該延伸指令轉譯成一微指令序列,該微指令序列是指示一延伸執(zhí)行邏輯依據(jù)該存儲器屬性執(zhí)行該存儲器存取。23.如權利要求22所述的方法,其特征在于所述的轉譯延伸指令的動作包括于一轉譯邏輯內,檢測該延伸標記;以及依照延伸轉譯規(guī)則譯碼該延伸前置碼與該延伸指令的其余部分,以產(chǎn)生該微指令序列。24.如權利要求20所述的方法,其特征在于所述的指定所要應用的存儲器屬性的動作包括指定下列存儲器特性其中之一,以作為取代該預設存儲器屬性的該存儲器屬性不可快取、復合寫入、寫透、回寫以及寫入保護。全文摘要本發(fā)明涉及一種裝置及方法,用于擴充一微處理器指令集,以于指令層級選擇性地取代存儲器特性。該裝置包括一轉譯邏輯與一延伸執(zhí)行邏輯。該轉譯邏輯將一延伸指令轉譯成一微指令序列。該延伸指令具有一延伸前置碼與一延伸前置碼標記。該延伸前置碼指定一存儲器特性予該延伸指令所指定的一存儲器參照,其中該存儲器特性是無法由一即有指令集的即有指令進行指定。該延伸前置碼標記則指出該延伸前置碼,且是原本該即有指令集內另一依據(jù)架構所指定的運算碼。該延伸執(zhí)行邏輯耦接至轉譯邏輯,用以接收該微指令序列,并應用該存儲器特性以執(zhí)行該存儲器照。文檔編號G06F12/08GK1431587SQ0310304公開日2003年7月23日申請日期2003年1月28日優(yōu)先權日2002年8月22日發(fā)明者G·葛蘭·亨利,羅德·E·胡克,泰瑞·派克斯申請人:智慧第一公司