專利名稱::事務(wù)存儲(chǔ)器系統(tǒng)中硬件屬性的存儲(chǔ)器模型的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及處理器執(zhí)行領(lǐng)域,具體來說,涉及指令組的執(zhí)行。
背景技術(shù):
:半導(dǎo)體加工和邏輯設(shè)計(jì)的進(jìn)步允許增加在集成電路裝置上可存在的邏輯的數(shù)量。因此,計(jì)算機(jī)系統(tǒng)配置已經(jīng)從系統(tǒng)中的單個(gè)或多個(gè)集成電路演進(jìn)成單獨(dú)集成電路上存在的多個(gè)核心和多個(gè)邏輯處理器。處理器或集成電路通常包括單個(gè)處理器管芯(die),其中處理器管芯可包括任何數(shù)量的核心或邏輯處理器。集成電路上數(shù)量不斷增加的核心和邏輯處理器使更多軟件線程能夠并發(fā)運(yùn)行。但是,可同時(shí)運(yùn)行的軟件線程的數(shù)量的增加引起使軟件線程之間共享的數(shù)據(jù)同步的問題。多個(gè)核心或者多個(gè)邏輯處理器系統(tǒng)中訪問(access)共享數(shù)據(jù)的一種常見解決方案包括使用鎖定(clock)來保證對(duì)共享數(shù)據(jù)的多個(gè)訪問間的互斥。但是,運(yùn)行多個(gè)軟件線程的不斷增加的能力可能引起錯(cuò)誤爭(zhēng)用和執(zhí)行的串行化。例如,考慮保存共享數(shù)據(jù)的哈希表(hashtable)。采用鎖定系統(tǒng),編程人員可鎖定整個(gè)哈希表,從而允許一個(gè)線程訪問整個(gè)哈希表。但是,其它線程的吞吐量和性能可能受到不利影響,因?yàn)樗鼈儾荒茉L問哈希表中的任何條目直到鎖定被釋放為止。備選地,可鎖定哈希表中的各條目。不管怎樣,在將這個(gè)簡(jiǎn)單示例推延到大型可縮放程序之后,顯然,鎖定爭(zhēng)用、串行化、細(xì)粒度(fine-grain)同步和死鎖避免的復(fù)雜度成為編程人員非常棘手的負(fù)擔(dān)。另一種最近的數(shù)據(jù)同步技術(shù)包括使用事務(wù)存儲(chǔ)器(transactionalmemory=TM)。事務(wù)執(zhí)行通常包括運(yùn)行多個(gè)微操作、操作或指令的分組。在以上示例中,兩個(gè)線程在哈希表中運(yùn)行,并且監(jiān)視/跟蹤其存儲(chǔ)器訪問。如果兩個(gè)線程訪問/改變同一條目,則可執(zhí)行沖突解決以確保數(shù)據(jù)有效性。一種類型的事務(wù)執(zhí)行包括軟件事務(wù)存儲(chǔ)器(STM),其中存儲(chǔ)器訪問的跟蹤、沖突解決、中止任務(wù)和其它事務(wù)任務(wù)通過軟件來執(zhí)行,通常無需硬件支持。另一種類型的事務(wù)執(zhí)行包括硬件事務(wù)存儲(chǔ)器(HTM)系統(tǒng),其中包含硬件以支持訪問跟蹤、沖突解決和其它事務(wù)任務(wù)。作為示例,可包含硬件屬性以支持事務(wù)執(zhí)行的緩沖、讀監(jiān)視(monitoring)和寫監(jiān)視。但是,按照當(dāng)前存儲(chǔ)器排序(ordering)實(shí)現(xiàn)設(shè)置和讀取這些屬性的指令可引起排序違規(guī)(violation)。此外,如果硬件屬性以有損(lossy)方式保存、即在逐出(Viction)/寫回時(shí)丟失,則讀取/測(cè)試監(jiān)視器(monitor)指令可看到不正確的監(jiān)視器數(shù)據(jù)。
發(fā)明內(nèi)容本發(fā)明一方面涉及一種設(shè)備。該設(shè)備包括數(shù)據(jù)高速緩沖存儲(chǔ)器,包括與有損(lossy)數(shù)據(jù)相關(guān)聯(lián)的高速緩沖元件;受損(loss)字段,與所述高速緩沖元件相關(guān)聯(lián);以及控制邏輯,耦合到所述數(shù)據(jù)高速緩沖存儲(chǔ)器和所述受損字段,響應(yīng)于確定所述有損數(shù)據(jù)將被丟失而更新所述受損字段以保存有損值。本發(fā)明另一方面涉及一種設(shè)備。該設(shè)備包括高速緩沖存儲(chǔ)器,包括與屬性相關(guān)聯(lián)的高速緩沖元件;耦合到所述高速緩沖存儲(chǔ)器的存儲(chǔ)緩沖器,保存與更新所述屬性的存儲(chǔ)操作相關(guān)聯(lián)的存儲(chǔ)緩沖器條目;以及與所述存儲(chǔ)緩沖器相關(guān)聯(lián)的控制邏輯,阻擋從所述屬性進(jìn)行讀取的后續(xù)加載操作,直到響應(yīng)于所述存儲(chǔ)操作更新所述屬性。本發(fā)明另一方面涉及一種設(shè)備。該設(shè)備包括與高速緩沖存儲(chǔ)器的高速緩沖元件相關(guān)聯(lián)的多個(gè)硬件屬性;至少基于對(duì)所述多個(gè)硬件屬性中至少之一的存儲(chǔ)操作的第一屬性訪問類型和對(duì)所述多個(gè)硬件屬性中至少之一的后續(xù)加載操作的第二屬性訪問類型確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間是否存在相關(guān)性的邏輯;以及耦合到所述邏輯的轉(zhuǎn)發(fā)邏輯,響應(yīng)于確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間存在所述相關(guān)性,所述轉(zhuǎn)發(fā)邏輯向所述后續(xù)加載操作轉(zhuǎn)發(fā)所述存儲(chǔ)操作的已更新屬性數(shù)據(jù)。本發(fā)明另一方面涉及一種方法。該方法包括遇到讀取硬件屬性的加載操作,所述加載操作與屬性類型相關(guān)聯(lián)并引用與所述屬性類型的硬件屬性相關(guān)聯(lián)的地址;確定即時(shí)的(in-flight)前一存儲(chǔ)操作是否與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址;以及響應(yīng)于確定所述即時(shí)的前一存儲(chǔ)操作與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址,執(zhí)行相關(guān)性動(dòng)作。附圖簡(jiǎn)介本發(fā)明以示例方式進(jìn)行說明而不受附圖中的示圖限制。圖1示出包括能夠并發(fā)運(yùn)行多個(gè)軟件線程的多個(gè)處理元件的處理器的實(shí)施例。圖2示出包括支持對(duì)硬件屬性的訪問的存儲(chǔ)器排序的結(jié)構(gòu)的處理器的實(shí)施例。圖3示出包括支持對(duì)硬件屬性的訪問的存儲(chǔ)器排序的結(jié)構(gòu)的處理器的另一實(shí)施例。圖4示出包括支持對(duì)硬件屬性的訪問的存儲(chǔ)器排序的結(jié)構(gòu)的處理器的另一實(shí)施例。圖5示出在讀取硬件屬性時(shí)提供正確存儲(chǔ)器排序的方法的流程圖的實(shí)施例。具體實(shí)施例方式在以下描述中,提出例如用于事務(wù)執(zhí)行的具體硬件結(jié)構(gòu)、訪問監(jiān)視器的具體類型和實(shí)現(xiàn)、具體高速緩存實(shí)現(xiàn)、具體類型的高速緩存相干(coherency)模型、具體數(shù)據(jù)粒度(granularity)、屬性的具體類型以及檢測(cè)相關(guān)性(cbpendency)的具體結(jié)構(gòu)等示例的許多具體細(xì)節(jié),以便提供對(duì)本發(fā)明的透徹了解。然而,對(duì)本領(lǐng)域技術(shù)人員而言,顯然,這些具體細(xì)節(jié)不需要被用于實(shí)施本發(fā)明。在其它情況下,沒有詳細(xì)描述例如硬件監(jiān)視器/屬性的實(shí)現(xiàn)細(xì)節(jié)、事務(wù)劃分、特定及備選多核心和多線程處理器架構(gòu)、具體編譯器方法/實(shí)現(xiàn)以及微處理器的具體操作細(xì)節(jié)等眾所周知的組件或方法,以免不必要地混淆本發(fā)明。本文所述的方法和設(shè)備用于提供硬件屬性的存儲(chǔ)器模型,以便支持事務(wù)執(zhí)行。具體來說,參照包括訪問緩沖器的無序(out-of-order)處理器來論述存儲(chǔ)器模型。實(shí)際上,圖2-4涉及修改緩沖器、如存儲(chǔ)緩沖器的實(shí)施例。但是,用于提供硬件屬性的存儲(chǔ)器模型的方法和設(shè)備并不局限于此,因?yàn)樗鼈兛赏ㄟ^包括用于處理對(duì)硬件屬性的訪問的任何結(jié)構(gòu)的任何樣式的處理器來實(shí)現(xiàn)。參照?qǐng)D1,說明能夠并發(fā)運(yùn)行多個(gè)線程的處理器的實(shí)施例。注意,處理器100可包括對(duì)硬件事務(wù)執(zhí)行的硬件支持。處理器100還可結(jié)合硬件事務(wù)執(zhí)行或者單獨(dú)提供對(duì)軟件事務(wù)存儲(chǔ)器(STM)的硬件加速、STM的單獨(dú)執(zhí)行或者它們的組合、如混合事務(wù)存儲(chǔ)器(TM)系統(tǒng)的硬件支持。處理器100包括任何處理器,例如微處理器、嵌入式處理器、數(shù)字信號(hào)處理器(DSP)、網(wǎng)絡(luò)處理器或者運(yùn)行代碼的其它裝置。如圖所示,處理器100包括多個(gè)處理元件。在一個(gè)實(shí)施例中,處理元件表示線程單元、進(jìn)程單元、上下文、邏輯處理器、硬件線程、核心和/或能夠保存處理器的狀態(tài)、如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)的任何其它元件。換言之,在一個(gè)實(shí)施例中,處理元件表示能夠獨(dú)立與例如軟件線程、操作系統(tǒng)、應(yīng)用程序(application)或其它代碼等代碼相關(guān)聯(lián)的任何硬件。物理處理器通常表示集成電路,它可能包括任何數(shù)量的其它處理元件、如核心或硬件線程。核心通常表示位于集成電路上能夠保持獨(dú)立架構(gòu)狀態(tài)的邏輯,其中各獨(dú)立保持的架構(gòu)狀態(tài)與至少一些專用執(zhí)行資源相關(guān)聯(lián)。與核心相比,硬件線程通常表示位于集成電路上能夠保持獨(dú)立架構(gòu)狀態(tài)的任何邏輯,其中獨(dú)立保持的架構(gòu)狀態(tài)共享對(duì)執(zhí)行資源的訪問??梢姡?dāng)某些資源被共享而其它資源專用于架構(gòu)狀態(tài)時(shí),硬件線程與核心的命名之間的界限(line)重疊。核心和硬件線程又往往被操作系統(tǒng)看作是單獨(dú)的邏輯處理器,其中操作系統(tǒng)能夠單獨(dú)調(diào)度各邏輯處理器上的操作。如圖1所示,物理處理器100包括兩個(gè)核心,核心101和102,它們共享對(duì)較高級(jí)高速緩存110的訪問。雖然處理器100可包括不對(duì)稱核心,即具有不同配置、功能單元和/或邏輯的核心,但示出對(duì)稱核心。因此,示為與核心101相同的核心102不作詳細(xì)論述,以免重復(fù)論述。另外,核心101包括兩個(gè)硬件線程IOla和101b,而核心102包括兩個(gè)硬件線程102a和102b。因此,軟件實(shí)體、如操作系統(tǒng)可能將處理器100看作4個(gè)獨(dú)立處理器,即能夠并發(fā)運(yùn)行4個(gè)軟件線程的4個(gè)邏輯處理器或處理元件。在這里,第一線程與架構(gòu)狀態(tài)寄存器IOla相關(guān)聯(lián),第二線程與架構(gòu)狀態(tài)寄存器IOlb相關(guān)聯(lián),第三線程與架構(gòu)狀態(tài)寄存器102a相關(guān)聯(lián),且第四線程與架構(gòu)狀態(tài)寄存器102b相關(guān)聯(lián)。如圖所示,將架構(gòu)狀態(tài)寄存器IOla復(fù)制到架構(gòu)狀態(tài)寄存器101b,因此能夠?yàn)檫壿嬏幚砥鱅Ola和邏輯處理器IOlb存儲(chǔ)單獨(dú)的架構(gòu)狀態(tài)/上下文。也可為線程IOla和線程IOlb復(fù)制其它較小資源、例如重命名分配器邏輯130中的重命名邏輯和指令指針??赏ㄟ^分區(qū)(partitioning)來共享某些資源,例如重排序/引退(retirement)單元135中的重排序緩沖器、ILTB120、加載/存儲(chǔ)緩沖器和隊(duì)列??赡芡耆蚕砝缤ㄓ脙?nèi)部寄存器、頁(yè)表基址寄存器(baseregister)、低級(jí)數(shù)據(jù)高速緩存和數(shù)據(jù)-TLB115、執(zhí)行單元140和無序單元135的部分等其它資源。處理器100通常包括可完全共享、通過分區(qū)共享或者專用于處理元件的其它資源。圖1中,示出具有處理器的說明性功能單元/資源的純示范處理器的實(shí)施例。注意,處理器可包括或省略這些功能單元中的任一個(gè),也包括未示出的任何其它已知功能單元、邏輯或固件。如圖所示,處理器100包括總線接口模塊105,以便與處理器100外部的例如系統(tǒng)存儲(chǔ)器175、芯片組、北橋(northbridge)或其它集成電路等裝置進(jìn)行通信。存儲(chǔ)器175可以專用于處理器100或者與系統(tǒng)中的其它裝置共享。較高級(jí)或更外面(further-out)的高速緩存110將緩存從較高級(jí)高速緩存110最近取出的元素。注意,“較高級(jí)或更外面”表示增大或者進(jìn)一步遠(yuǎn)離執(zhí)行單元的高速緩存級(jí)。在一個(gè)實(shí)施例中,較高級(jí)高速緩存110是第二級(jí)數(shù)據(jù)高速緩存。但是,較高級(jí)高速緩存110并不局限于此,因?yàn)樗膳c指令高速緩存關(guān)聯(lián)或者包括指令高速緩存。蹤跡(trace)高速緩存、即一種類型的指令高速緩存而是可耦合在解碼器125之后,以便存儲(chǔ)最近解碼的蹤跡。模塊120還可能包括預(yù)測(cè)要被運(yùn)行/采取的分支的分支目標(biāo)緩沖器以及存儲(chǔ)指令的地址轉(zhuǎn)換條目的指令轉(zhuǎn)換緩沖器(I-TLB)。解碼模塊125耦合到取單元120,以便對(duì)所取元素進(jìn)行解碼。在一個(gè)實(shí)施例中,處理器100與定義/指定可在處理器100執(zhí)行的指令的指令集架構(gòu)(InstructionSetArchitecture:ISA)相關(guān)聯(lián)。在這里,ISA所識(shí)別的機(jī)器代碼指令通常包括指令中被稱作操作碼(opcode)的部分,其引用/指定待執(zhí)行的指令或操作。在一個(gè)示例中,分配器和重命名器塊130包括分配器,以便保留如寄存器文件的資源來存儲(chǔ)指令處理結(jié)果。但是,線程IOla和IOlb可能能夠無序執(zhí)行,其中分配器和重命名器塊130還保留如重排序緩沖器的其它資源來跟蹤指令結(jié)果。單元130還可包括寄存器重命名器,以便將程序/指令引用寄存器重命名成處理器100內(nèi)部的其它寄存器。重排序/引退單元135包括例如上述重排序緩沖器、加載緩沖器和存儲(chǔ)緩沖器等組件,以便支持無序執(zhí)行的指令的無序執(zhí)行和稍后的按序引退。在一個(gè)實(shí)施例中,調(diào)度器和執(zhí)行單元塊140包括調(diào)度器單元,以便調(diào)度執(zhí)行單元上的指令/操作。例如,在具有可用浮點(diǎn)執(zhí)行單元的執(zhí)行單元的端口上調(diào)度浮點(diǎn)指令。還包括與執(zhí)行單元相關(guān)聯(lián)的寄存器文件,以便存儲(chǔ)信息指令處理結(jié)果。示范執(zhí)行單元包括浮點(diǎn)執(zhí)行單元、整數(shù)執(zhí)行單元、跳轉(zhuǎn)(jump)執(zhí)行單元、加載執(zhí)行單元、存儲(chǔ)執(zhí)行單元和其它已知執(zhí)行單元。較低級(jí)數(shù)據(jù)高速緩存和數(shù)據(jù)轉(zhuǎn)換緩沖器(D-TLB)150耦合到執(zhí)行單元140。數(shù)據(jù)高速緩存將存儲(chǔ)可能以存儲(chǔ)器相干狀態(tài)保存的最近使用/操作的元素、如數(shù)據(jù)操作數(shù)。D-TLB將存儲(chǔ)最近的虛擬/線性物理地址轉(zhuǎn)換。作為特定示例,處理器可包括頁(yè)表結(jié)構(gòu),以便將物理存儲(chǔ)器分為多個(gè)虛擬頁(yè)面。在一個(gè)實(shí)施例中,處理器100能夠進(jìn)行硬件事務(wù)執(zhí)行、軟件事務(wù)執(zhí)行或者它們的組合或混合。又可稱作代碼的臨界或原子(atomic)段的事務(wù)包括將要作為原子組執(zhí)行的指令、操作或微操作的分組。例如,指令或操作可用于劃分事務(wù)或臨界段。在下面更詳細(xì)描述的一個(gè)實(shí)施例中,這些指令是例如指令集架構(gòu)(ISA)的指令集的一部分,它們可由處理器100的硬件、如上述解碼器識(shí)別。這些指令,一旦從高級(jí)語言編譯成硬件可識(shí)別匯編語言,則通常包括解碼器在解碼階段期間識(shí)別的操作代碼(操作碼)或者指令的其它部分。通常,在事務(wù)的執(zhí)行期間,直到提交(commit)該事務(wù)才使對(duì)存儲(chǔ)器的更新全局可見。作為示例,對(duì)存儲(chǔ)單元(location)的事務(wù)寫入可能對(duì)本地線程可見,然而,響應(yīng)于來自另一線程的讀取,直到提交包括該事務(wù)寫入的事務(wù)才轉(zhuǎn)發(fā)寫數(shù)據(jù)。在事務(wù)仍然未決的時(shí)候,跟蹤從存儲(chǔ)器加載并寫入存儲(chǔ)器的數(shù)據(jù)項(xiàng)/元素,下面更詳細(xì)地進(jìn)行論述。一旦事務(wù)達(dá)到提交點(diǎn),如果對(duì)于該事務(wù)尚未檢測(cè)到?jīng)_突,則提交事務(wù),并且使在事務(wù)期間所進(jìn)行的更新全局可見。但是,如果事務(wù)在其未決期間失效,則中止并可能重新開始該事務(wù),而不使更新全局可見。因此,本文所使用的“事務(wù)未決”表示已經(jīng)開始執(zhí)行但尚未提交或中止、即未決的事務(wù)。軟件事務(wù)存儲(chǔ)器(STM)系統(tǒng)通常涉及通過軟件或者至少部分通過軟件執(zhí)行訪問跟蹤、沖突解決或者其它事務(wù)存儲(chǔ)器任務(wù)。在一個(gè)實(shí)施例中,處理器100能夠運(yùn)行編譯器,以便將程序代碼編譯成支持事務(wù)執(zhí)行。在這里,編譯器可插入操作、調(diào)用(call)、函數(shù)和其它代碼,以便實(shí)現(xiàn)事務(wù)的執(zhí)行。編譯器通常包括將源文本/代碼轉(zhuǎn)換成目標(biāo)文本/代碼的程序或程序集合。用編譯器對(duì)程序/應(yīng)用程序代碼的編譯通常在多階段和多遍(pass)進(jìn)行,以便將高級(jí)編程語言代碼變換成低級(jí)機(jī)器或匯編語言代碼。然而,對(duì)于簡(jiǎn)單編譯還可使用單遍編譯器。編譯器可利用任何已知的編譯技術(shù),并且執(zhí)行任何已知的編譯器操作,例如詞匯分析、預(yù)處理、解析(parsing)、語義分析、代碼生成、代碼變換和代碼優(yōu)化。較大編譯器通常包括多個(gè)階段,但是大多數(shù)情況下這些階段包含在兩個(gè)一般階段中(1)前端,即通??稍谄渲羞M(jìn)行語法處理、語義處理和某種變換/優(yōu)化;以及(2)后端,即通常在其中進(jìn)行分析、變換、優(yōu)化和代碼生成。某些編譯器涉及中端,中端說明編譯器的前端與后端之間輪廓的模糊。因此,對(duì)編譯器的插入、關(guān)聯(lián)、生成或其它操作的引用可在任意上述階段或遍以及編譯器的任何其它已知階段或遍中進(jìn)行。作為說明性示例,編譯器可能在編譯的一個(gè)或多個(gè)階段中插入事務(wù)操作、調(diào)用(call)、函數(shù)等,例如在編譯的前端階段中插入調(diào)用(call)/操作,然后在事務(wù)存儲(chǔ)器變換階段期間將調(diào)用(call)/操作變換成較低級(jí)代碼。然而,不管編譯器的執(zhí)行環(huán)境和動(dòng)態(tài)或靜態(tài)性質(zhì),在一個(gè)實(shí)施例中,編譯器編譯程序代碼以便實(shí)現(xiàn)事務(wù)執(zhí)行。因此,在一個(gè)實(shí)施例中,對(duì)執(zhí)行程序代碼的引用表示(1)動(dòng)態(tài)或靜態(tài)運(yùn)行編譯器程序,以便編譯主程序代碼、保持事務(wù)結(jié)構(gòu)或者執(zhí)行其它事務(wù)相關(guān)操作;(2)運(yùn)行包括事務(wù)操作/調(diào)用(call)的主程序代碼;(3)運(yùn)行與主程序代碼性關(guān)聯(lián)的其它程序代碼,例如庫(kù);或者⑷它們的組合。在一個(gè)實(shí)施例中,處理器100能夠利用硬件/邏輯、即在硬件事務(wù)存儲(chǔ)器(HTM)系統(tǒng)中執(zhí)行事務(wù)。當(dāng)實(shí)現(xiàn)HTM時(shí),從架構(gòu)和微架構(gòu)的角度來看,存在許多特定實(shí)現(xiàn)細(xì)節(jié);其中的大多數(shù)在本文中不作論述,以免不必要地混淆本發(fā)明。但是,為了便于說明,公開了某些結(jié)構(gòu)和實(shí)現(xiàn)。然而,應(yīng)當(dāng)注意,這些結(jié)構(gòu)和實(shí)現(xiàn)不是必需的,而是可增加具有不同實(shí)現(xiàn)細(xì)節(jié)的其它結(jié)構(gòu)和/或用具有不同實(shí)現(xiàn)細(xì)節(jié)的其它結(jié)構(gòu)來替代。可通過本地處理元件以及可能通過其它處理元件對(duì)數(shù)據(jù)項(xiàng)進(jìn)行訪問和請(qǐng)求。沒有事務(wù)存儲(chǔ)器系統(tǒng)的安全機(jī)制,這些訪問中的一些可能產(chǎn)生無效的數(shù)據(jù)和執(zhí)行,即對(duì)數(shù)據(jù)的寫入使讀取失效或者讀取無效數(shù)據(jù)。因此,處理器100可能包括跟蹤或監(jiān)視對(duì)數(shù)據(jù)項(xiàng)的存儲(chǔ)器訪問的邏輯,以便識(shí)別可能的沖突。數(shù)據(jù)項(xiàng)或數(shù)據(jù)元素可包括由硬件、軟件或者它們的組合所定義的任何粒度級(jí)的數(shù)據(jù)。數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)項(xiàng)或者對(duì)其的引用等示例的非詳盡列表包括存儲(chǔ)器地址、數(shù)據(jù)對(duì)象、類、動(dòng)態(tài)語言代碼的類型的字段、動(dòng)態(tài)語言代碼的類型、變量、操作數(shù)、數(shù)據(jù)結(jié)構(gòu)以及對(duì)存儲(chǔ)器地址的間接引用。但是,任何已知的數(shù)據(jù)分組可稱作數(shù)據(jù)元素或數(shù)據(jù)項(xiàng)。上述示例中的幾個(gè)、如動(dòng)態(tài)語言代碼的類型的字段和動(dòng)態(tài)語言代碼的類型表示動(dòng)態(tài)語言代碼的數(shù)據(jù)結(jié)構(gòu)。為了進(jìn)行說明,動(dòng)態(tài)語言代碼、例如來自SimMicrosystems公司的Java是強(qiáng)類型化(typed)語言。各變量具有在編譯時(shí)已知的類型。類型分為兩類原語(primitive)類型(布爾和數(shù)值,例如整數(shù)、浮點(diǎn))和引用類型(類、接口和陣列)。引用類型的值是對(duì)對(duì)象的引用。在Java中,由字段組成的對(duì)象可以是類實(shí)例或陣列。給定類A的對(duì)象a,通常用符號(hào)A:χ表示類型A的字段X,并用a.χ表示類A的對(duì)象a的字段χ。例如,表達(dá)式可表達(dá)為a.χ=a.y+a.ζ。在這里,加載字段y和字段ζ以便相加,并且將結(jié)果寫入字段X。因此,監(jiān)視/緩沖對(duì)數(shù)據(jù)項(xiàng)的存儲(chǔ)器訪問可在任意數(shù)據(jù)級(jí)粒度執(zhí)行。例如,在一個(gè)實(shí)施例中,在類型級(jí)監(jiān)視對(duì)數(shù)據(jù)的存儲(chǔ)器訪問。在這里,對(duì)字段A::χ的事務(wù)寫入和字段A::y的非事務(wù)加載可作為對(duì)同一數(shù)據(jù)項(xiàng)、即類型A的訪問而被監(jiān)視。在另一實(shí)施例中,存在字段級(jí)粒度執(zhí)行存儲(chǔ)器訪問監(jiān)視/緩沖。在這里,對(duì)A::X的事務(wù)寫入和A::y的非事務(wù)加載不作為對(duì)同一數(shù)據(jù)項(xiàng)的訪問而被監(jiān)視,因?yàn)樗鼈兪菍?duì)獨(dú)立字段的引用。注意,在跟蹤對(duì)數(shù)據(jù)項(xiàng)的存儲(chǔ)器訪問時(shí)可考慮其它數(shù)據(jù)結(jié)構(gòu)或編程技術(shù)。作為示例,假定類A的對(duì)象的字段χ和y、即A:χ和A:y指向類B的對(duì)象,被初始化成新分配的對(duì)象,并且在初始化之后就決不被寫入。在一個(gè)實(shí)施例中,針對(duì)由A::y所指向的對(duì)象的字段B::z的非事務(wù)加載,對(duì)由A::X所指向的對(duì)象的字段B::z的事務(wù)寫入不作為對(duì)同一數(shù)據(jù)項(xiàng)的存儲(chǔ)器訪問而被監(jiān)視。由這些示例推延,確定監(jiān)視器可在任何數(shù)據(jù)粒度級(jí)執(zhí)行監(jiān)視/緩沖是可能的。在一個(gè)實(shí)施例中,監(jiān)視器包括讀監(jiān)視器和寫監(jiān)視器,以便對(duì)確定要被監(jiān)視的加載和存儲(chǔ)進(jìn)行相應(yīng)跟蹤。作為示例,硬件讀監(jiān)視器和寫監(jiān)視器將以數(shù)據(jù)項(xiàng)粒度監(jiān)視數(shù)據(jù)項(xiàng),而不管基礎(chǔ)存儲(chǔ)結(jié)構(gòu)的粒度。在一個(gè)實(shí)施例中,數(shù)據(jù)項(xiàng)受以存儲(chǔ)結(jié)構(gòu)粒度所關(guān)聯(lián)的跟蹤機(jī)制限制,以確保適當(dāng)監(jiān)視至少整個(gè)數(shù)據(jù)項(xiàng)。在GadSheaffer等人同此提交的標(biāo)題為“ReadandWriteMonitoringAttributesinTransactionalMemory(TM)Systems,,的共同未決申請(qǐng)No.XX/XXXXXX(律師案卷號(hào)P29130)中更詳細(xì)地論述了利用讀監(jiān)視器/屬性來監(jiān)視數(shù)據(jù)項(xiàng)的示例。但是,可用監(jiān)視器、屬性、注釋或其它跟蹤機(jī)制檢測(cè)與用數(shù)據(jù)或結(jié)構(gòu)的任何粒度保存數(shù)據(jù)的事務(wù)執(zhí)行相關(guān)聯(lián)的沖突。屬性包括用于保存與數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的狀態(tài)的任何邏輯、固件或結(jié)構(gòu)。例如,數(shù)據(jù)項(xiàng)的屬性包括位(bit)向量,其中位向量中的每個(gè)位表示數(shù)據(jù)項(xiàng)的屬性,例如經(jīng)事務(wù)加載、經(jīng)事務(wù)寫入、經(jīng)非事務(wù)加載、經(jīng)非事務(wù)寫入、未經(jīng)事務(wù)加載、未經(jīng)事務(wù)寫入、未經(jīng)非事務(wù)加載、未經(jīng)非事務(wù)寫入、經(jīng)緩沖、未經(jīng)緩沖、經(jīng)訪問沖突檢測(cè)、未經(jīng)訪問沖突檢測(cè)、讀請(qǐng)求、沒有讀請(qǐng)求、寫請(qǐng)求、沒有寫請(qǐng)求、所有權(quán)請(qǐng)求、沒有所有權(quán)請(qǐng)求或者與數(shù)據(jù)項(xiàng)或保存數(shù)據(jù)項(xiàng)的存儲(chǔ)器存儲(chǔ)單元相關(guān)聯(lián)的任何其它屬性或狀態(tài)。作為另一示例,數(shù)據(jù)項(xiàng)的屬性包括編碼值。例如,利用三個(gè)屬性位、即6個(gè)二進(jìn)制值000、001、010、011、100、101、110對(duì)例如這4種狀態(tài)(1)經(jīng)讀監(jiān)視、(2)未經(jīng)讀監(jiān)視、(3)經(jīng)寫監(jiān)視、(4)未經(jīng)寫監(jiān)視、(5)經(jīng)緩沖以及(6)未經(jīng)緩沖的狀態(tài)進(jìn)行編碼。作為又一示例,包含屬性作為與高速緩沖存儲(chǔ)器、如數(shù)據(jù)高速緩存150相關(guān)聯(lián)的相干狀態(tài)陣列的部分。示范高速緩存相干狀態(tài)的非詳盡列表包括修改、獨(dú)占、共享或無效(MESI)狀態(tài),它們采用讀監(jiān)視器屬性、寫監(jiān)視器屬性、緩沖屬性、其它屬性或者它們的組合來補(bǔ)充或增大。因此,本質(zhì)上創(chuàng)建新的相干狀態(tài),例如經(jīng)讀監(jiān)視的緩沖相干狀態(tài)或者經(jīng)寫監(jiān)視的緩沖相干狀態(tài)。因此,可結(jié)合硬件監(jiān)視器/屬性利用現(xiàn)有的已知相干與通信/窺探(snoop)協(xié)議來檢測(cè)沖突。基于該設(shè)計(jì),高速緩存相干請(qǐng)求和高速緩存行(line)的所監(jiān)視相干狀態(tài)的不同組合引起可能的沖突,例如高速緩存行保存處于共享讀狀態(tài)的數(shù)據(jù)項(xiàng)而窺探指明對(duì)該數(shù)據(jù)項(xiàng)的寫請(qǐng)求。相反,高速緩存行保存處于緩沖寫狀態(tài)的數(shù)據(jù)項(xiàng)而外部窺探指明對(duì)該數(shù)據(jù)項(xiàng)的讀請(qǐng)求可被認(rèn)為可能發(fā)生了沖突。在一個(gè)實(shí)施例中,為了檢測(cè)訪問請(qǐng)求和屬性狀態(tài)的這種組合,窺探邏輯耦合到?jīng)_突檢測(cè)/報(bào)告邏輯、如用于沖突檢測(cè)/報(bào)告的監(jiān)視器和/或邏輯。在一個(gè)實(shí)施例中,在硬件中登記處理程序(handler),以便支持諸如訪問沖突、監(jiān)視器受損沖突(lossofmonitorconfilict)、數(shù)據(jù)受損沖突(lossofdataconfilict)等沖突的有效處理。作為示例,寄存器可由軟件、如事務(wù)運(yùn)行時(shí)間或應(yīng)用程序代碼修改,以便登記事務(wù)處理程序的地址。當(dāng)檢測(cè)到受關(guān)注事件、如上述訪問沖突或信息受損時(shí),則在一個(gè)實(shí)施例中,將控制流程引導(dǎo)(vector)到寄存器中所登記的事務(wù)處理程序,而不干預(yù)特許軟件、如操作系統(tǒng)(OS)。在GadSheaffer等人同此提交的標(biāo)題為“RegisteringaUser-HandlerinHardwareforTransactionalMemoryEventHandling,,的相關(guān)申請(qǐng)(律師案卷號(hào)P29129)中論述了在硬件中登記處理程序的形式。無論將屬性保存為有損數(shù)據(jù)、即在從高速緩存的關(guān)聯(lián)逐出時(shí)丟失的信息還是作為逐出時(shí)寫回的數(shù)據(jù)的部分,在一個(gè)實(shí)施例中,處理器100的架構(gòu)都支持訪問屬性的指令、操作或微操作。例如,設(shè)置監(jiān)視器指令將屬性設(shè)置成指定值,清除監(jiān)視器指令將屬性清除到缺省值,而測(cè)試屬性指令讀取屬性。另外,例如事務(wù)加載和事務(wù)存儲(chǔ)的特定操作可隱式地設(shè)置屬性。例如,事務(wù)存儲(chǔ)可隱式地設(shè)置指明數(shù)據(jù)被緩沖的緩沖屬性以及指明緩沖數(shù)據(jù)被寫監(jiān)視的寫監(jiān)視屬性。在一個(gè)實(shí)施例中,提供存儲(chǔ)器模型以便支持可包括顯式或隱式訪問的對(duì)屬性的訪問的正確排序。例如,先前在屬性的第一和第二加載無序運(yùn)行時(shí),可允許不合法存儲(chǔ)器排序情形。為了說明偽碼和可能的結(jié)果,在無序執(zhí)行處理器中包含以下項(xiàng)。Set_monitor[Μ]RO=test_monitor[M]Rl=test_monitor[Μ]1)允許RO=“TRUE”禾口R1=“FALSE”。2)不允許RO=“FALSE”和Rl=“TRUE”。3)允許RO=“TRUE”和Rl=“TRUE”。4)允許RO=“FALSE”和Rl=“FALSE”。注意,在一個(gè)實(shí)施例中,允許情形1、3和4。但是,對(duì)于情形2,假定讀監(jiān)視器設(shè)置成指明地址M在與地址M相關(guān)聯(lián)的讀屬性(RO)的第一測(cè)試之前被讀監(jiān)視。此外,與地址M和讀監(jiān)視器相關(guān)聯(lián)的高速緩存行在讀屬性的第二測(cè)試(Rl)之前被逐出。在這里,如果第一和第二測(cè)試無序執(zhí)行,則第一測(cè)試(RO)可因逐出而返回沒有讀監(jiān)視指示(FALSE),而第二測(cè)試返回讀監(jiān)視指示(TRUE)。在一個(gè)實(shí)施例中,這種情形是不合法的,并且可在無序運(yùn)行的按程序順序的測(cè)試操作之間引起可能的不一致。因此,在一個(gè)實(shí)施例中,例如高速緩存集合、高速緩存行、高速緩存存儲(chǔ)單元或高速緩存條目的高速緩沖元件與受損字段相關(guān)聯(lián)。作為示例,受損字段包含在數(shù)據(jù)高速緩存的一部分中,使得信息在逐出時(shí)沒有丟失。在這里,當(dāng)受損字段設(shè)置成受損值以指明屬性信息已丟失并且可能不正確時(shí),在后續(xù)訪問、如下一加載操作提供一致性。為了進(jìn)行說明,重新檢查前一示例。如上所述,首先運(yùn)行第二測(cè)試操作(Rl),隨后,從逐出出現(xiàn)讀屬性的受損,其導(dǎo)致受損字段被設(shè)置成受損值。當(dāng)?shù)谝粶y(cè)試操作(RO)隨后隨受損字段被設(shè)置而無序運(yùn)行時(shí),則檢測(cè)到?jīng)_突。作為示例,RO在這種情形下出錯(cuò)。響應(yīng)于該錯(cuò)誤,重新開始兩個(gè)操作,以便確保存儲(chǔ)器模型不被破壞,即不允許上述情形2。除了屬性信息受損之外,其它存儲(chǔ)器一致性違規(guī)可能存在于先前的處理器架構(gòu),例如由屬性訪問指令/操作針對(duì)外部訪問所引起的不一致。作為示例,假定與地址A關(guān)聯(lián)的設(shè)置讀監(jiān)視器操作將在地址A的加載操作之前運(yùn)行。注意,在啟用讀監(jiān)視器的緩沖的情形下,則設(shè)置讀監(jiān)視器操作可引退,然后在加載操作引退之后更新讀監(jiān)視器。加載操作的引退與讀屬性的實(shí)際更新之間的時(shí)間是易損(vulnerability)區(qū)域。為了進(jìn)行說明,假定在這時(shí)接收到外部窺探,其中本地處理元件認(rèn)為讀屬性設(shè)置成指明地址A被讀監(jiān)視;但是,屬性尚未標(biāo)記,因此外部窺探認(rèn)為地址A未被讀監(jiān)視。本質(zhì)上,不存在讀監(jiān)視器/屬性的一致情景(view)。因此,在一個(gè)實(shí)施例中,響應(yīng)于窺探,對(duì)存儲(chǔ)緩沖器進(jìn)行窺探,以便確定前一存儲(chǔ)、如上述設(shè)置讀監(jiān)視器存儲(chǔ)操作是否即時(shí)(in-flight)并且沒有標(biāo)記讀屬性。例如,如果命中存儲(chǔ)緩沖器中的條目,即存在對(duì)硬件屬性的即時(shí)存儲(chǔ),則阻止轉(zhuǎn)發(fā)來自該條目的屬性信息以及更新讀屬性。除了屬性訪問指令與外部訪問之間可能的一致性問題之外,屬性訪問的無序執(zhí)行也可能引起一致性問題。例如,以其中事務(wù)加載隱式地設(shè)置讀監(jiān)視器的情形為例,測(cè)試監(jiān)視器指令隨后測(cè)試讀監(jiān)視器,并且這些操作無序運(yùn)行。因此,測(cè)試監(jiān)視器指令可基于運(yùn)行操作的定時(shí)(timing)返回經(jīng)監(jiān)視或未經(jīng)監(jiān)視。多個(gè)存儲(chǔ)器模型實(shí)現(xiàn)可用于緩解這個(gè)問題。作為第一示例,設(shè)置讀監(jiān)視器的操作、如設(shè)置讀監(jiān)視器操作阻擋/阻止加載該讀監(jiān)視器的操作、如測(cè)試讀監(jiān)視器操作,直到設(shè)置讀監(jiān)視器的操作相應(yīng)地更新該讀監(jiān)視器。因此,避免了上述易損區(qū)域,因?yàn)楹罄m(xù)測(cè)試操作被阻擋,直到出現(xiàn)對(duì)讀監(jiān)視器的標(biāo)記為止。作為另一示例,將所監(jiān)視信息從設(shè)置監(jiān)視器的指令轉(zhuǎn)發(fā)到測(cè)試監(jiān)視器的指令。另外,可模擬讀監(jiān)視器的緩沖而實(shí)際上不緩沖讀監(jiān)視器。為了提供轉(zhuǎn)發(fā)或執(zhí)行阻擋,可包括存儲(chǔ)和/或加載緩沖器的存儲(chǔ)器排序緩沖器要檢測(cè)生產(chǎn)商操作與客戶操作之間的相關(guān)性。但是,相關(guān)性可以不僅依賴于地址相關(guān)性,而且還依賴于訪問類型相關(guān)性,即生產(chǎn)商訪問的屬性類型和客戶訪問的屬性類型。下表A示出屬性訪問指令之間的相關(guān)性的示例。生產(chǎn),<table>tableseeoriginaldocumentpage13</column></row><table>表A相關(guān)屬性訪問指令的實(shí)施例注意,該表不是指令/操作及其可能相關(guān)性的詳盡列表。在表A中,值1表示存在相關(guān)性,其可引起轉(zhuǎn)發(fā)或阻擋相關(guān)性動(dòng)作,如上所述。下面參照?qǐng)D3-4來論述支持轉(zhuǎn)發(fā)或阻擋的結(jié)構(gòu)。一旦檢測(cè)到相關(guān)性,則確定是否應(yīng)當(dāng)轉(zhuǎn)發(fā)來自生產(chǎn)商的信息或者阻擋客戶,直到生產(chǎn)商完成用信息對(duì)屬性進(jìn)行更新。如以上最初參照?qǐng)D1所述,為了便于論述,處理器100的架構(gòu)是純說明性的。類似地,將屬性與數(shù)據(jù)項(xiàng)/元素相關(guān)聯(lián)的具體示例也是示范性的,因?yàn)榭衫靡圆煌6葦?shù)據(jù)項(xiàng)將硬件監(jiān)視器/屬性進(jìn)行關(guān)聯(lián)的任何方法。參照?qǐng)D2,示出處理器的實(shí)施例,該處理器包括實(shí)現(xiàn)支持事務(wù)執(zhí)行的硬件屬性的存儲(chǔ)器模型的結(jié)構(gòu)。處理器250包括任何類型的具有任何數(shù)量的能夠進(jìn)行事務(wù)執(zhí)行的處理元件的已知處理器。雖然未示出,但是處理器250可耦合到例如芯片組、即存儲(chǔ)器控制器中心(hub)和輸入/輸出(I/O)控制器中心以及系統(tǒng)存儲(chǔ)器等其它系統(tǒng)組件。計(jì)算機(jī)系統(tǒng)中I/0裝置的常見示例包括網(wǎng)絡(luò)控制器、視頻顯示適配器、圖形處理器、音頻控制器或其它輸入/輸出裝置。在一個(gè)實(shí)施例中,處理器250包括高速緩沖存儲(chǔ)器。高速緩存的最常見示例包括數(shù)據(jù)高速緩存,例如圖1所示的第一級(jí)高速緩存或第二級(jí)高速緩存。但是,高速緩存還可包括指令高速緩存、蹤跡高速緩存或其它已知高速緩存。雖然沒有詳細(xì)描述高速緩存架構(gòu)以免不必要地混淆本論述,但是可按照多種方式來組織高速緩存。例如,高速緩存可以完全關(guān)聯(lián),即存儲(chǔ)器地址可保存在高速緩存的任何位置;集合關(guān)聯(lián)(setassociate),其中某些存儲(chǔ)器地址范圍被限制到高速緩存的特定集合;或者直接映射高速緩存,其中多個(gè)地址將被保存在高速緩存內(nèi)的單個(gè)存儲(chǔ)單元中。注意,本文所述的方法和設(shè)備可采用任何高速緩存組織來實(shí)現(xiàn)。如圖所示,高速緩存包括又稱作高速緩沖存儲(chǔ)器或數(shù)據(jù)陣列的數(shù)據(jù)部分205以及與高速緩沖存儲(chǔ)器205相關(guān)聯(lián)的控制邏輯230。高速緩沖存儲(chǔ)器205包括元件210、215、220和225。本文所使用的高速緩沖元件表示高速緩存的任何粒度的結(jié)構(gòu)元件,例如高速緩存行、高速緩存條目、高速緩存存儲(chǔ)單元或高速緩存集合。例如,元件210可包括高速緩存集合,高速緩存集合具有集合關(guān)聯(lián)高速緩存的多個(gè)行。相比之下,在另一實(shí)施例中,元件210包括多個(gè)條目中處于以相似方式與陣列235相關(guān)聯(lián)的集合中的條目。控制邏輯230包括陣列235,該陣列具有分別與高速緩沖元件210、215、220和225相關(guān)聯(lián)/對(duì)應(yīng)的條目211、216、221和226。此外,硬件讀屬性、寫屬性和緩沖屬性211r、211w、211b、216r、216w、216b、221r、221w、221b、226r、226w和226b類似地與高速緩沖元件210、215、220和225相關(guān)聯(lián)。雖然在GadSheaffer等人同此提交的標(biāo)題為“ReadandWriteMonitoringAttributesinTransactionalMemory(TM)SystemsΦit(WM^卷號(hào)P29130)中更詳細(xì)地描述了硬件監(jiān)視器及其各種實(shí)施例,但在本文中簡(jiǎn)要描述屬性的實(shí)施例以促進(jìn)論述。在一個(gè)實(shí)施例中,讀和寫監(jiān)視器要限制對(duì)數(shù)據(jù)、如數(shù)據(jù)項(xiàng)201的監(jiān)視,而不管保存該數(shù)據(jù)的物理結(jié)構(gòu)的粒度。從以上論述注意,數(shù)據(jù)項(xiàng)可具有任何粒度。實(shí)際上,編程人員可通過提供起始地址并接著提供構(gòu)成數(shù)據(jù)項(xiàng)的多個(gè)附加字節(jié)來定義數(shù)據(jù)項(xiàng)。在這里,假定元件210包括高速緩存行。因此,數(shù)據(jù)項(xiàng)可小于高速緩存205的行、如行210,或者大于高速緩存205的高速緩存行,還可能不與高速緩存205的高速緩存行的起始和結(jié)束邊界對(duì)齊。在圖2的示例中,數(shù)據(jù)項(xiàng)201橫跨單高速緩存行。雖然P29130論述了監(jiān)視屬性的可能動(dòng)態(tài)分配,但在這個(gè)示例中基于高速緩沖元件提供屬性211r、211w、211b、216r、216w、216b、221r、221w、221b、226r、226w和226b。因此,如果數(shù)據(jù)項(xiàng)201將被讀監(jiān)視,則將讀監(jiān)視器211r更新到受監(jiān)視狀態(tài)以指明對(duì)應(yīng)元件211被讀監(jiān)視。在一個(gè)實(shí)施例中,屬性211r、211w、211b、216r、216w、216b、221r、221w、221b、226r、226w和226b被認(rèn)為是有損數(shù)據(jù)。有損數(shù)據(jù)通常表示本地?cái)?shù)據(jù),其在例如逐出高速緩存元件210的至少一部分和寫回到較高級(jí)高速緩存的事件時(shí)可能被丟失。在一個(gè)實(shí)施例中,陣列235包括相干狀態(tài)陣列,其中條目211、216、221和226是保存分別與高速緩存元件210、215、220和225對(duì)應(yīng)的相干狀態(tài)值的相干條目。常見高速緩存相干狀態(tài)包括MESI(ModifiedExclusiveSharedandlnvalid)、即改進(jìn)獨(dú)占共享和無效高速緩存相干狀態(tài)。但是,本質(zhì)上添加所示三個(gè)屬性位創(chuàng)建了基于讀監(jiān)視、寫監(jiān)視和緩沖的新相干狀態(tài)。因此,假定高速緩沖元件210包括高速緩存行,則響應(yīng)于高速緩存行210的逐出,包括具有屬性211b、211i和211w的條目211的關(guān)聯(lián)狀態(tài)信息丟失、即沒有被寫回。因此,當(dāng)本地元件認(rèn)為屬性被設(shè)置但屬性已丟失時(shí),可能出現(xiàn)一致性問題。在這里,一致性問題可隨另一屬性訪問或者外部訪問出現(xiàn),因?yàn)閬G失了正確信息。因此,在一個(gè)實(shí)施例中,受損字段212、217、222和227分別與元件210、215、220和225相關(guān)聯(lián)。如圖所示,受損字段212、217、222和227包含在元件210、215、220和225中。但是,受損字段可保存在逐出時(shí)不被丟失的任何位置。例如,受損字段212可包含在逐出行210時(shí)不被丟失或者可被易于記入日志并且與高速緩存行210相關(guān)聯(lián)的數(shù)據(jù)高速緩存結(jié)構(gòu)中??刂七壿?30通常包括窺探邏輯、更換邏輯、狀態(tài)邏輯以及執(zhí)行任何已知高速緩存操作的其它高速緩存相關(guān)邏輯。在一個(gè)實(shí)施例中,響應(yīng)于確定關(guān)聯(lián)有損數(shù)據(jù)將被丟失,控制邏輯230單獨(dú)或者結(jié)合處理器250中的其它邏輯將受損字段更新成受損值。例如,假定有損數(shù)據(jù)包含相干條目211中的屬性211b、211i和211w。在這里,當(dāng)設(shè)置屬性、如211b并且選擇高速緩沖元件210以供逐出時(shí),控制邏輯230更新受損字段212。注意,在一個(gè)實(shí)施例中,當(dāng)沒有數(shù)據(jù)丟失、即不存在有損數(shù)據(jù)、例如沒有設(shè)置屬性211b、211i和211w時(shí),則逐出不會(huì)引起受損字段212的設(shè)置。換言之,如果不存在丟失的數(shù)據(jù),則沒有理由指明受損。在一個(gè)實(shí)施例中,如上所述,可調(diào)用(invoke)處理程序來處理受損。但是,在另一實(shí)施例中,在后續(xù)訪問時(shí)確保一致性。例如,假定事務(wù)加載導(dǎo)致屬性211r被設(shè)置成指明讀監(jiān)視,然后選擇行210以供逐出。因此,控制邏輯230將受損字段212設(shè)置成受損值。在這里,可利用地址散列(hashing)的形式,因?yàn)樵谥鸪鲋髼l目210的地址不同。在逐出之前,有損數(shù)據(jù)、如行210的標(biāo)簽被單獨(dú)存儲(chǔ),或者將在所逐出行與新分配行之間相同的信息用于受損字段212、如用于不是完全關(guān)聯(lián)的高速緩存陣列的設(shè)置位。先前在沒有受損字段212的情況下,后續(xù)加載、如測(cè)試監(jiān)視器操作將從211b接收到不正確的監(jiān)視器信息,因?yàn)樗谥鸪銎陂g丟失。相反,在一個(gè)實(shí)施例中,響應(yīng)于保存在字段212中的受損值,后續(xù)測(cè)試讀監(jiān)視器操作出錯(cuò)。因此,通過下一訪問操作確保一致性。來看圖3,示出了處理器的實(shí)施例,該處理器包括支持對(duì)硬件屬性的訪問的存儲(chǔ)器排序的結(jié)構(gòu)。注意,為了簡(jiǎn)潔起見,僅示出處理器的幾種選擇結(jié)構(gòu)。在一個(gè)實(shí)施例中,邏輯包含在處理器305中,以便確定對(duì)硬件屬性的存儲(chǔ)操作與對(duì)硬件屬性的后續(xù)加載操作之間是否存在相關(guān)性,使得可執(zhí)行正確的相關(guān)性動(dòng)作。作為示例,確定生產(chǎn)商操作與客戶操作之間的相關(guān)性基于屬性訪問類型。如上所述,示范屬性包括讀監(jiān)視器、寫監(jiān)視器和緩沖屬性。在這里,關(guān)聯(lián)訪問類型包括讀監(jiān)視器訪問類型、寫監(jiān)視器訪問類型和緩沖訪問類型。先前,存儲(chǔ)轉(zhuǎn)發(fā)完全根據(jù)地址相關(guān)性來實(shí)現(xiàn)。但是,在一個(gè)實(shí)施例中,使用與生產(chǎn)商操作和客戶操作的地址結(jié)合的生產(chǎn)商操作和客戶操作的訪問類型來確定相關(guān)性。如上文參照表A所述,對(duì)同一地址的訪問的不同類型可以不相關(guān)。因此,在一個(gè)實(shí)施例中,在設(shè)置寫監(jiān)視器訪問類型與測(cè)試讀監(jiān)視器訪問類型之間不存在相關(guān)性?;诓僮鞯脑L問類型確定相關(guān)性的一個(gè)實(shí)施例如圖3所示。在這里,未具體示出的存儲(chǔ)器排序緩沖器可能包含存儲(chǔ)緩沖器310和加載緩沖器350。這兩個(gè)緩沖器保存與對(duì)應(yīng)操作相關(guān)聯(lián)的條目。如圖所示,條目325將與具有屬性訪問類型327的存儲(chǔ)操作引用地址328相關(guān)聯(lián),以便存儲(chǔ)屬性數(shù)據(jù)326。雖然為了便于示范將存儲(chǔ)緩沖器示為具有兩個(gè)獨(dú)立陣列、即存儲(chǔ)數(shù)據(jù)緩沖器320和存儲(chǔ)地址緩沖器315,但是可利用存儲(chǔ)緩沖器的任何已知實(shí)現(xiàn)。本質(zhì)上,存儲(chǔ)緩沖器邏輯310保存與存儲(chǔ)操作相關(guān)聯(lián)、即在存儲(chǔ)緩沖器條目325的存儲(chǔ)地址緩沖器315中的屬性訪問類型327。加載緩沖器350相對(duì)加載操作以相似方式工作。如圖所示,條目355保存與訪問類型357相關(guān)聯(lián)的地址358和數(shù)據(jù)條目356。為了進(jìn)行說明,假定條目325與前一即時(shí)存儲(chǔ)操作、如設(shè)置讀監(jiān)視器操作相關(guān)聯(lián),以便采用已更新屬性信息326來更新硬件屬性、如讀監(jiān)視器屬性。隨后,遇到加載操作。在這里,緩沖器條目355與后續(xù)加載操作相關(guān)聯(lián)。相關(guān)性/阻擋器(blocker)邏輯360將后續(xù)加載操作的訪問類型357和地址358與前一存儲(chǔ)操作的訪問類型327和地址328進(jìn)行比較。在一個(gè)實(shí)施例中,以搜索方式來執(zhí)行比較,即將訪問類型357附加到地址358以便搜索存儲(chǔ)地址緩沖器315。如果整個(gè)附加搜索準(zhǔn)則命中存儲(chǔ)緩沖器310中的條目,則存在相關(guān)性。在這里,如果附加到地址358的訪問類型357的組合與附加到地址338的訪問類型337匹配,則確定在存儲(chǔ)操作與后續(xù)加載操作之間存在相關(guān)性。換言之,訪問類型即讀監(jiān)視器、寫監(jiān)視器或緩沖器訪問類型匹配,并且地址匹配,因此在生產(chǎn)商存儲(chǔ)操作與客戶后續(xù)加載操作之間存在相關(guān)性。注意,在一個(gè)實(shí)施例中,“后續(xù)”表示程序順序,使得存儲(chǔ)緩沖器310的搜索僅由按照程序順序在加載緩沖器條目之前的存儲(chǔ)緩沖器條目組成。另外,轉(zhuǎn)發(fā)邏輯370耦合到相關(guān)性/阻擋器邏輯360,它單獨(dú)或者結(jié)合相關(guān)性/阻擋器邏輯相應(yīng)執(zhí)行相關(guān)性動(dòng)作。在一個(gè)實(shí)施例中,相關(guān)性動(dòng)作包括阻擋動(dòng)作。作為一個(gè)示例,可以不轉(zhuǎn)發(fā)讀監(jiān)視器。因此,如果訪問類型包括讀監(jiān)視器訪問類型并且檢測(cè)到相關(guān)性,則阻擋后續(xù)加載操作,直到與條目325相關(guān)聯(lián)的存儲(chǔ)操作將地址328的適當(dāng)讀監(jiān)視器更新到已更新屬性信息326。作為示例,阻擋邏輯360包括將加載緩沖器條目355中的阻擋字段更新成阻擋值的邏輯?;趯⒆钃踔当4嬖跅l目355中的阻擋字段,直到清除該阻擋值才分派加載。相反,另一相關(guān)性動(dòng)作包括轉(zhuǎn)發(fā)監(jiān)視器數(shù)據(jù)。在這里,如果相關(guān)性邏輯360確定相關(guān)性,則邏輯370將已更新數(shù)據(jù)326轉(zhuǎn)發(fā)給加載操作。然而,如果相關(guān)性邏輯360確定不存在相關(guān)性,則不采取相關(guān)性動(dòng)作。但是,如果允許轉(zhuǎn)發(fā)監(jiān)視器數(shù)據(jù),則在一個(gè)實(shí)施例中,窺探邏輯將響應(yīng)于外部訪問請(qǐng)求而窺探存儲(chǔ)緩沖器310。在這里,如果外部訪問請(qǐng)求產(chǎn)生窺探命中、如命中條目325,則轉(zhuǎn)發(fā)邏輯370將不轉(zhuǎn)發(fā)已更新屬性數(shù)據(jù)326。此外,響應(yīng)于命中外部窺探,可以不允許存儲(chǔ)操作、如設(shè)置監(jiān)視器操作更新對(duì)應(yīng)監(jiān)視器。參照?qǐng)D4,示出了確定屬性訪問操作之間的相關(guān)性的另一實(shí)施例。注意,在圖3中顯式屬性訪問類型、如通過考慮操作碼所指定的類型與存儲(chǔ)條目相關(guān)聯(lián)。在那里,訪問類型本質(zhì)上是地址的擴(kuò)展、如2位擴(kuò)展,以便表示上述三種狀態(tài)。此外,相關(guān)性校驗(yàn)包括采用作為地址的一部分的2位擴(kuò)展的搜索/比較。相反,在一個(gè)實(shí)施例中,基于訪問類型的相關(guān)性校驗(yàn)是隱式的。如圖所示,與圖3的處理器305中所示類似的結(jié)構(gòu)包含在處理器405中。但是,不是將可包括讀監(jiān)視器、寫監(jiān)視器或緩沖屬性信息的一般已更新屬性信息保存在存儲(chǔ)緩沖器320的條目的一個(gè)位置,而是將屬性信息保存在位置431、432和433。因此,可隨屬性信息的位置的附加校驗(yàn)執(zhí)行傳統(tǒng)地址相關(guān)性校驗(yàn)。為了便于說明,假定屬性信息位置431將保存讀監(jiān)視器信息,屬性信息位置432將保存寫監(jiān)視器信息,而屬性信息位置433將保存緩沖屬性信息。當(dāng)遇到加載時(shí),執(zhí)行傳統(tǒng)地址相關(guān)性校驗(yàn),即用地址458來搜索存儲(chǔ)地址緩沖器415。在對(duì)條目425發(fā)生命中、即地址458和428匹配時(shí),則基于存儲(chǔ)緩沖器420中保存的數(shù)據(jù)的位置來比較訪問類型。在一個(gè)實(shí)施例中,訪問類型比較可與地址匹配并行執(zhí)行。因此,還假定設(shè)置緩沖屬性操作與條目425相關(guān)聯(lián)。因此,將對(duì)與地址428相關(guān)聯(lián)的緩沖屬性的已更新屬性信息保存在位置433、如第三最低有效位中。根據(jù)后續(xù)加載、例如測(cè)試寫監(jiān)視器操作,由相關(guān)性邏輯460對(duì)地址進(jìn)行比較。由于測(cè)試寫監(jiān)視器操作具有寫監(jiān)視器訪問類型,并且緩沖器條目425將更新信息保存在位置433指明緩沖訪問類型,則不存在相關(guān)性匹配。但是,如果后續(xù)加載是具有地址匹配的測(cè)試緩沖屬性操作,則基于在存儲(chǔ)數(shù)據(jù)緩沖器條目425中信息的位置的訪問類型匹配,并且確定存在相關(guān)性。由于確定相關(guān)性存在或不存在,轉(zhuǎn)發(fā)/阻擋邏輯470執(zhí)行與上文參照?qǐng)D3所述的相似操作。轉(zhuǎn)到圖5,示出了在讀取、加載或測(cè)試硬件屬性時(shí)提供正確存儲(chǔ)器排序的方法的流程圖的實(shí)施例。注意,圖5的流程圖以實(shí)質(zhì)串行方式示出。但是,相對(duì)該附圖所示和所述的方法并不局限于此,因?yàn)樗鼈兛砂凑杖魏雾樞蜻M(jìn)行,且至少部分并行執(zhí)行。在流程505,遇到讀取硬件屬性的加載操作。作為示例,加載操作包括測(cè)試監(jiān)視器指令、操作或微操作,它們也可被包含在執(zhí)行其它操作/微操作的較大指令中。在一個(gè)示例中,加載操作與屬性類型相關(guān)聯(lián)并且引用與硬件屬性相關(guān)聯(lián)的地址。如上所述,硬件屬性的示例包括讀監(jiān)視器屬性、寫監(jiān)視器屬性和緩沖屬性。然而,屬性可包括與數(shù)據(jù)或地址相關(guān)聯(lián)的狀態(tài)的任何存儲(chǔ)。在流程506,確定是否將與硬件屬性相關(guān)聯(lián)的受損字段、即與硬件屬性相關(guān)聯(lián)的加載操作所引用的地址設(shè)置成受損值。響應(yīng)于保存受損值以指明有損數(shù)據(jù)、如屬性信息已被丟失的字段,則在流程507中對(duì)加載操作發(fā)起錯(cuò)誤,以便確保正確的數(shù)據(jù)一致性。但是,如果受損字段沒有保存受損值,則該流程繼續(xù)到流程510。在流程510,確定在加載操作與前一即時(shí)存儲(chǔ)操作、例如設(shè)置硬件屬性指令、操作或微操作之間是否存在相關(guān)性。注意,流程510包含流程511和512二者,因?yàn)橄嚓P(guān)性校驗(yàn)在該示例中包括這兩個(gè)流程。在流程511,確定在加載操作與前一即時(shí)存儲(chǔ)操作之間是否存在地址匹配,并在流程512,確定在加載操作與前一即時(shí)存儲(chǔ)操作之間是否存在訪問類型匹配。在一個(gè)實(shí)施例中,這些流程例如在將訪問類型作為圖3中所述的地址擴(kuò)展保存時(shí)一起執(zhí)行。在這里,采用附加到地址的屬性類型的表示、即地址位擴(kuò)展來搜索存儲(chǔ)地址緩沖器。如果隨附加到地址的訪問類型發(fā)生命中,則確定存在相關(guān)性,因?yàn)榧虞d操作和前一存儲(chǔ)操作的地址和訪問類型均匹配。在另一實(shí)施例中,如果訪問類型在設(shè)計(jì)中是隱式的、例如基于參照?qǐng)D4所述的存儲(chǔ)數(shù)據(jù)的位置,則流程511和512可分開執(zhí)行。在這里,搜索存儲(chǔ)緩沖器查找與流程511的加載所引用的地址相關(guān)聯(lián)的存儲(chǔ)緩沖器條目。響應(yīng)于命中、即地址匹配,則確定保存在存儲(chǔ)緩沖器的所命中存儲(chǔ)緩沖器條目中的存儲(chǔ)數(shù)據(jù)的位置?;诖鎯?chǔ)數(shù)據(jù)的位置、如第三最低有效位(LSB),確定存儲(chǔ)屬性類型,例如緩沖、讀監(jiān)視或?qū)懕O(jiān)視類型。如果所確定的存儲(chǔ)訪問類型與加載類型相同,則確定存在相關(guān)性。在任一種情況下,如果不存在相關(guān)性,則在流程515,加載通常在不執(zhí)行屬性相關(guān)的相關(guān)性動(dòng)作的情況下執(zhí)行。但是,如果檢測(cè)到相關(guān)性,則在流程520,執(zhí)行適當(dāng)?shù)南嚓P(guān)性動(dòng)作。在一個(gè)實(shí)施例中,相關(guān)性動(dòng)作包括轉(zhuǎn)發(fā)與即時(shí)的前一存儲(chǔ)操作相關(guān)聯(lián)的存儲(chǔ)數(shù)據(jù)。在這里,如果前一存儲(chǔ)操作包括設(shè)置寫監(jiān)視器操作以便用已更新值來更新寫監(jiān)視器,則將已更新值轉(zhuǎn)發(fā)給相關(guān)的測(cè)試監(jiān)視器操作,以便讀取寫監(jiān)視器值。在另一實(shí)施例中,相關(guān)性動(dòng)作包括阻擋加載操作,直到硬件屬性被即時(shí)的前一存儲(chǔ)操作更新。為了便于說明,假定前一存儲(chǔ)包括設(shè)置讀監(jiān)視器操作以便將讀監(jiān)視器更新成已更新值,并且加載操作包括測(cè)試讀監(jiān)視器操作以便加載讀監(jiān)視器值。在這里,加載讀監(jiān)視器值的加載操作被阻擋,直到設(shè)置讀監(jiān)視器操作實(shí)際更新讀監(jiān)視器。在任一種情況下、即進(jìn)行轉(zhuǎn)發(fā)或進(jìn)行阻擋,通過所提供的存儲(chǔ)器模型保持?jǐn)?shù)據(jù)一致性。本文所使用的“模塊”表示任何硬件、軟件、固件或者它們的組合。通常,示為分離的模塊邊界一般可改變并且可能重疊。例如,第一和第二模塊可共享硬件、軟件、固件或者它們的組合,同時(shí)可能保留一些獨(dú)立的硬件、軟件或固件。在一個(gè)實(shí)施例中,術(shù)語“邏輯”的使用包括例如晶體管、寄存器的硬件或者例如可編程邏輯裝置的其它硬件。但是,在另一實(shí)施例中,邏輯還包括與硬件集成的軟件或代碼,例如固件或微碼。本文所使用的“值”包括數(shù)值、狀態(tài)、邏輯狀態(tài)或者二進(jìn)制邏輯狀態(tài)的任何已知表示。通常,邏輯電平或者邏輯值的使用又稱作1和0,它只是表示二進(jìn)制邏輯狀態(tài)。例如,1表示高邏輯電平,而0表示低邏輯電平。在一個(gè)實(shí)施例中,存儲(chǔ)單元(storagecell)、如晶體管或閃存單元能夠保存單個(gè)邏輯值或多個(gè)邏輯值。但是,已經(jīng)使用計(jì)算機(jī)系統(tǒng)中值的其它表示。例如,十進(jìn)制數(shù)10也可表示為二進(jìn)制值1010以及十六進(jìn)制字母A。因此,值包括能夠被保存在計(jì)算機(jī)系統(tǒng)中的信息的任何表示。此外,狀態(tài)可通過值或者值的部分來表示。作為示例,第一值、如邏輯1可表示缺省或初始狀態(tài),而第二值、如邏輯0可表示非缺省狀態(tài)。另外,在一個(gè)實(shí)施例中,術(shù)語“復(fù)位”和“設(shè)置”分別表示缺省和已更新值或狀態(tài)。例如,缺省值可能包括高邏輯值、即復(fù)位,而已更新值可能包括低邏輯值、即設(shè)置。注意,可用值的任何組合來表示任何數(shù)量的狀態(tài)。以上提出的方法、硬件、軟件、固件或代碼的實(shí)施例可經(jīng)由機(jī)器可訪問或機(jī)器可讀媒介上存儲(chǔ)的、可由處理元件執(zhí)行的指令或代碼來實(shí)現(xiàn)。機(jī)器可訪問/可讀媒介包括以機(jī)器、如計(jì)算機(jī)或電子系統(tǒng)可讀的形式來提供(即存儲(chǔ)和/或傳送)信息的任何機(jī)構(gòu)。例如,機(jī)器可訪問媒介包括隨機(jī)存取存儲(chǔ)器(RAM),例如靜態(tài)RAM(SRAM)或動(dòng)態(tài)RAM(DRAM);ROM;磁或光存儲(chǔ)媒介;閃速存儲(chǔ)器裝置;電存儲(chǔ)裝置、光存儲(chǔ)裝置、聲存儲(chǔ)裝置或者其它形式的傳播信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào))存儲(chǔ)裝置等。例如,機(jī)器可通過從能夠保存要在傳播信號(hào)上傳送的信息的媒介接收例如載波的傳播信號(hào)來訪問存儲(chǔ)裝置。本說明書中對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的引用表示結(jié)合該實(shí)施例所述的具體特征、結(jié)構(gòu)或特性被包含在本發(fā)明的至少一個(gè)實(shí)施例中。因此,短語“在一個(gè)實(shí)施例中”或“在實(shí)施例中”在本說明書中各個(gè)位置的出現(xiàn)不一定都表示同一實(shí)施例。此外,具體特征、結(jié)構(gòu)或特性可按照任何適當(dāng)方式結(jié)合在一個(gè)或多個(gè)實(shí)施例中。在以上說明書中,參照具體示范實(shí)施例給出了具體實(shí)施方式。但是顯然,在沒有背離隨附權(quán)利要求書所提出的本發(fā)明的廣義精神和范圍的情況下,可對(duì)其進(jìn)行各種改進(jìn)和變更。因此,說明書和附圖將被看作是說明性的而不是限制性的。此外,實(shí)施例及其它示范語言的使用不一定表示相同實(shí)施例或者相同示例,而是可表示不同且有區(qū)別的實(shí)施例,也可能表示相同實(shí)施例。權(quán)利要求一種設(shè)備,包括數(shù)據(jù)高速緩沖存儲(chǔ)器,包括與有損數(shù)據(jù)相關(guān)聯(lián)的高速緩沖元件;受損字段,與所述高速緩沖元件相關(guān)聯(lián);以及控制邏輯,耦合到所述數(shù)據(jù)高速緩沖存儲(chǔ)器和所述受損字段,響應(yīng)于確定所述有損數(shù)據(jù)將被丟失而更新所述受損字段以保存有損值。2.如權(quán)利要求1所述的設(shè)備,其中,所述高速緩沖元件包括高速緩存集合。3.如權(quán)利要求2所述的設(shè)備,其中,對(duì)于所述高速緩存集合,與所述高速緩沖元件相關(guān)聯(lián)的所述受損字段包括所述數(shù)據(jù)高速緩沖存儲(chǔ)器中的受損位,并且其中,更新所述受損字段以保存有損值的控制邏輯包括更新第一邏輯值的受損位的控制邏輯。4.如權(quán)利要求1所述的設(shè)備,其中,所述高速緩沖元件包括高速緩存集合的高速緩存條目。5.如權(quán)利要求2所述的設(shè)備,其中,對(duì)于所述高速緩存集合,與所述高速緩沖元件相關(guān)聯(lián)的所述受損字段包括所述數(shù)據(jù)高速緩沖存儲(chǔ)器中的多個(gè)位,其中所述多個(gè)位中的一位將與所述高速緩存條目相關(guān)聯(lián),并且其中,更新所述受損字段以保存有損值的控制邏輯包括將所述多個(gè)位中的所述位更新成第一邏輯值的控制邏輯。6.如權(quán)利要求1所述的設(shè)備,其中,將與有損數(shù)據(jù)相關(guān)聯(lián)的所述高速緩沖元件包括與所述高速緩沖元件相關(guān)聯(lián)的有損硬件屬性。7.如權(quán)利要求6所述的設(shè)備,其中,有損硬件屬性包括從由緩沖的硬件屬性、與所述高速緩沖存儲(chǔ)器相關(guān)聯(lián)的狀態(tài)陣列中保存的硬件屬性以及作為有損元數(shù)據(jù)保存在所述高速緩沖存儲(chǔ)器中的硬件屬性組成的組中選取的硬件屬性。8.如權(quán)利要求1所述的設(shè)備,其中,響應(yīng)于確定所述有損數(shù)據(jù)將被丟失而更新所述受損字段以保存有損值的所述控制邏輯包括選擇用于逐出的數(shù)據(jù)元素的至少一部分以便引起與所述高速緩沖元件相關(guān)聯(lián)的所述有損數(shù)據(jù)的受損的控制邏輯。9.如權(quán)利要求1所述的設(shè)備,其中,響應(yīng)于保存所述有損值的所述受損字段,所述控制邏輯還發(fā)起從所述高速緩沖元件進(jìn)行讀取的后續(xù)加載操作的錯(cuò)誤。10.一種設(shè)備,包括高速緩沖存儲(chǔ)器,包括與屬性相關(guān)聯(lián)的高速緩沖元件;耦合到所述高速緩沖存儲(chǔ)器的存儲(chǔ)緩沖器,保存與更新所述屬性的存儲(chǔ)操作相關(guān)聯(lián)的存儲(chǔ)緩沖器條目;以及與所述存儲(chǔ)緩沖器相關(guān)聯(lián)的控制邏輯,阻擋從所述屬性進(jìn)行讀取的后續(xù)加載操作,直到響應(yīng)于所述存儲(chǔ)操作更新所述屬性。11.如權(quán)利要求10所述的設(shè)備,其中,所述高速緩沖元件從由所述高速緩沖存儲(chǔ)器的集合、所述高速緩沖存儲(chǔ)器的行和所述高速緩沖存儲(chǔ)器的條目組成的組中選取。12.如權(quán)利要求11所述的設(shè)備,其中,與所述屬性相關(guān)聯(lián)的所述高速緩沖元件包括與保存所述屬性的所述高速緩沖元件相對(duì)應(yīng)的相干狀態(tài)條目,并且其中,所述屬性包括從由讀監(jiān)視器、寫監(jiān)視器和緩沖監(jiān)視器組成的組中選取的硬件監(jiān)視器。13.如權(quán)利要求10所述的設(shè)備,其中,所述屬性包括讀監(jiān)視器屬性,并且其中,所述存儲(chǔ)操作包括設(shè)置讀監(jiān)視器屬性指令以更新所述讀監(jiān)視器屬性。14.如權(quán)利要求13所述的設(shè)備,其中,所述后續(xù)加載操作包括測(cè)試讀監(jiān)視器指令以便讀取所述讀監(jiān)視器屬性,所述測(cè)試讀監(jiān)視器指令按照程序順序在所述設(shè)置讀監(jiān)視器屬性指令之后。15.一種設(shè)備,包括與高速緩沖存儲(chǔ)器的高速緩沖元件相關(guān)聯(lián)的多個(gè)硬件屬性;至少基于對(duì)所述多個(gè)硬件屬性中至少之一的存儲(chǔ)操作的第一屬性訪問類型和對(duì)所述多個(gè)硬件屬性中至少之一的后續(xù)加載操作的第二屬性訪問類型確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間是否存在相關(guān)性的邏輯;以及耦合到所述邏輯的轉(zhuǎn)發(fā)邏輯,響應(yīng)于確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間存在所述相關(guān)性,所述轉(zhuǎn)發(fā)邏輯向所述后續(xù)加載操作轉(zhuǎn)發(fā)所述存儲(chǔ)操作的已更新屬性數(shù)據(jù)。16.如權(quán)利要求15所述的設(shè)備,其中,至少基于所述存儲(chǔ)操作的所述第一屬性訪問類型和所述后續(xù)加載操作的所述第二屬性訪問類型確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間是否存在相關(guān)性的所述邏輯包括存儲(chǔ)緩沖器邏輯,保存與所述存儲(chǔ)操作相關(guān)聯(lián)的所述第一屬性訪問類型;以及相關(guān)性邏輯,耦合到所述存儲(chǔ)緩沖器邏輯以便至少比較所述第一屬性訪問類型和所述第二屬性訪問類型。17.如權(quán)利要求16所述的設(shè)備,其中,所述第一屬性訪問類型和所述第二屬性訪問類型分別各自從讀監(jiān)視器訪問類型、寫監(jiān)視器訪問類型和緩沖訪問類型中選取。18.如權(quán)利要求16所述的設(shè)備,其中,保存與所述存儲(chǔ)操作相關(guān)聯(lián)的所述第一屬性訪問類型的所述存儲(chǔ)緩沖器邏輯包括存儲(chǔ)地址緩沖器邏輯,保存附加到與所述存儲(chǔ)操作相關(guān)聯(lián)的存儲(chǔ)地址的所述第一屬性訪問類型,并且其中,耦合到所述存儲(chǔ)緩沖器邏輯以便至少比較所述第一屬性訪問類型和所述第二屬性訪問類型的所述相關(guān)性邏輯包括將附加到所述存儲(chǔ)地址的所述第一屬性訪問類型和附加到與所述后續(xù)加載相關(guān)聯(lián)的加載地址的所述第二訪問類型進(jìn)行比較的相關(guān)性邏輯。19.如權(quán)利要求18所述的設(shè)備,還包括響應(yīng)于外部訪問請(qǐng)求而窺探所述存儲(chǔ)緩沖器的窺探邏輯,其中,響應(yīng)于引用所述存儲(chǔ)地址的所述外部訪問請(qǐng)求,所述轉(zhuǎn)發(fā)邏輯將不轉(zhuǎn)發(fā)所述已更新屬性數(shù)據(jù)。20.如權(quán)利要求18所述的設(shè)備,其中,響應(yīng)于附加到所述存儲(chǔ)地址的所述第一屬性訪問類型與附加到所述加載地址的所述第二訪問類型匹配,所述相關(guān)性邏輯還確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間存在所述相關(guān)性。21.如權(quán)利要求20所述的設(shè)備,其中,響應(yīng)于附加到所述存儲(chǔ)地址的所述第一屬性訪問類型與附加到所述加載地址的所述第二訪問類型不匹配,所述相關(guān)性邏輯還確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間不存在所述相關(guān)性,并且其中,響應(yīng)于所述相關(guān)性邏輯確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間不存在所述相關(guān)性,所述轉(zhuǎn)發(fā)邏輯將不轉(zhuǎn)發(fā)所述已更新屬性數(shù)據(jù)。22.如權(quán)利要求15所述的設(shè)備,其中,至少基于所述存儲(chǔ)操作的所述第一屬性訪問類型和所述后續(xù)加載操作的所述第二屬性訪問類型確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間是否存在相關(guān)性的所述邏輯包括存儲(chǔ)數(shù)據(jù)緩沖器邏輯,將所述已更新數(shù)據(jù)保存在存儲(chǔ)數(shù)據(jù)緩沖器條目中與所述存儲(chǔ)操作相關(guān)聯(lián)的位置,其中,所述存儲(chǔ)數(shù)據(jù)緩沖器條目的所述位置表示所述第一屬性訪問類型。23.如權(quán)利要求22所述的設(shè)備,其中,至少基于所述存儲(chǔ)操作的所述第一屬性訪問類型和所述后續(xù)加載操作的所述第二屬性訪問類型確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間是否存在相關(guān)性的所述邏輯還包括耦合到所述存儲(chǔ)數(shù)據(jù)緩沖器和所述轉(zhuǎn)發(fā)邏輯的相關(guān)性邏輯,基于所述存儲(chǔ)數(shù)據(jù)緩沖器條目中保存的所述已更新數(shù)據(jù)的所述位置,響應(yīng)于與所述存儲(chǔ)操作相關(guān)聯(lián)的存儲(chǔ)地址和與所述后續(xù)加載操作相關(guān)聯(lián)的加載地址匹配并且所述第二屬性訪問類型與所述第一屬性訪問類型相同,確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間存在所述相關(guān)性。24.如權(quán)利要求23所述的設(shè)備,其中,基于所述存儲(chǔ)數(shù)據(jù)緩沖器條目中保存的所述已更新屬性數(shù)據(jù)的所述位置,響應(yīng)于與所述存儲(chǔ)操作相關(guān)聯(lián)的所述存儲(chǔ)地址和與所述后續(xù)加載操作相關(guān)聯(lián)的所述加載地址不匹配或者所述第二屬性訪問類型與所述第一屬性訪問類型相同,所述相關(guān)性邏輯確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間不存在所述相關(guān)性,并且其中,響應(yīng)于所述相關(guān)性邏輯確定所述存儲(chǔ)操作與所述后續(xù)加載操作之間不存在所述相關(guān)性,所述轉(zhuǎn)發(fā)邏輯將不轉(zhuǎn)發(fā)所述已更新屬性數(shù)據(jù)。25.一種方法,包括遇到讀取硬件屬性的加載操作,所述加載操作與屬性類型相關(guān)聯(lián)并引用與所述屬性類型的硬件屬性相關(guān)聯(lián)的地址;確定即時(shí)的前一存儲(chǔ)操作是否與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址;以及響應(yīng)于確定所述即時(shí)的前一存儲(chǔ)操作與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址,執(zhí)行相關(guān)性動(dòng)作。26.如權(quán)利要求25所述的方法,其中,所述加載操作包括測(cè)試硬件屬性操作,并且其中,所述即時(shí)的前一存儲(chǔ)操作包括設(shè)置硬件屬性操作。27.如權(quán)利要求25所述的方法,其中,所述屬性類型從由讀監(jiān)視器屬性類型、寫監(jiān)視器屬性類型和緩沖屬性類型組成的組中選取。28.如權(quán)利要求25所述的方法,其中,確定即時(shí)的前一存儲(chǔ)操作是否與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址包括用附加到所述地址的所述屬性類型的表示搜索存儲(chǔ)地址緩沖器,并且響應(yīng)于找到所述存儲(chǔ)地址緩沖器中保存附加到所述地址的所述屬性類型的所述表示的存儲(chǔ)地址緩沖器條目,確定所述即時(shí)的前一存儲(chǔ)操作與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址。29.如權(quán)利要求25所述的方法,其中,確定即時(shí)的前一存儲(chǔ)操作是否與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址包括搜索存儲(chǔ)緩沖器查找與所述地址相關(guān)聯(lián)的存儲(chǔ)緩沖器條目;響應(yīng)于找到與所述地址相關(guān)聯(lián)的所述存儲(chǔ)緩沖器條目,確定所述存儲(chǔ)緩沖器的存儲(chǔ)緩沖器條目中保存的與所述硬件屬性相關(guān)聯(lián)的存儲(chǔ)數(shù)據(jù)的位置;基于所述存儲(chǔ)緩沖器條目中保存的所述存儲(chǔ)數(shù)據(jù)的所述位置確定存儲(chǔ)屬性類型;以及響應(yīng)于確定所述存儲(chǔ)屬性類型和與所述加載操作相關(guān)聯(lián)的所述屬性類型相同,確定所述即時(shí)的前一存儲(chǔ)操作與所述屬性類型相關(guān)聯(lián)并引用與所述硬件屬性相關(guān)聯(lián)的所述地址。30.如權(quán)利要求25所述的方法,其中,執(zhí)行相關(guān)性動(dòng)作包括轉(zhuǎn)發(fā)與所述即時(shí)的前一存儲(chǔ)操作相關(guān)聯(lián)的存儲(chǔ)數(shù)據(jù)。31.如權(quán)利要求25所述的方法,其中,執(zhí)行相關(guān)性動(dòng)作包括阻擋所述加載操作,直到所述硬件屬性被所述即時(shí)的前一存儲(chǔ)操作更新。32.如權(quán)利要求25所述的方法,還包括響應(yīng)于引起所述硬件屬性的受損的與所述硬件屬性相關(guān)聯(lián)的高速緩存存儲(chǔ)單元的逐出,將與所述硬件屬性相關(guān)聯(lián)的受損字段更新成受損值。33.如權(quán)利要求32所述的方法,其中,響應(yīng)于遇到讀取所述硬件屬性的所述加載操作和保存所述受損值的所述受損字段,所述加載操作出錯(cuò)。全文摘要本文描述用于提供硬件屬性的存儲(chǔ)器模型以便支持事務(wù)執(zhí)行的方法和設(shè)備。在遇到硬件屬性的加載、例如加載讀監(jiān)視器、寫監(jiān)視器或緩沖屬性的測(cè)試監(jiān)視器操作時(shí),響應(yīng)于指明硬件屬性已被丟失的受損字段而發(fā)出錯(cuò)誤。此外,基于地址相關(guān)性和訪問類型相關(guān)性為屬性訪問操作提供相關(guān)性動(dòng)作、如阻擋和轉(zhuǎn)發(fā)。因此,屬性受損及其測(cè)試的不同情形在存儲(chǔ)器模型中被允許或受到限制。文檔編號(hào)G06F9/38GK101814017SQ20091021693公開日2010年8月25日申請(qǐng)日期2009年12月28日優(yōu)先權(quán)日2008年12月30日發(fā)明者E·科亨,G·希菲爾,O·馬古利斯,S·賴金,V·巴辛申請(qǐng)人:英特爾公司