用于實(shí)現(xiàn)事務(wù)存儲(chǔ)器的系統(tǒng)和方法
【專(zhuān)利摘要】描述了用于實(shí)現(xiàn)事務(wù)存儲(chǔ)器訪問(wèn)的系統(tǒng)和方法。一種示例方法可以包括:發(fā)起存儲(chǔ)器訪問(wèn)事務(wù);使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,和/或使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第二緩沖器,相對(duì)于第二存儲(chǔ)器位置執(zhí)行事務(wù)寫(xiě)操作;相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,和/或相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作;響應(yīng)于由存儲(chǔ)器訪問(wèn)跟蹤邏輯檢測(cè)到由不同于處理器的設(shè)備訪問(wèn)第一存儲(chǔ)器位置或第二存儲(chǔ)器位置,中止存儲(chǔ)器訪問(wèn)事務(wù);以及響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮第三存儲(chǔ)器位置和第四存儲(chǔ)器位置的狀態(tài),完成存儲(chǔ)器訪問(wèn)事務(wù)。
【專(zhuān)利說(shuō)明】用于實(shí)現(xiàn)事務(wù)存儲(chǔ)器的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)內(nèi)容通常涉及計(jì)算機(jī)系統(tǒng),且尤其涉及用于實(shí)現(xiàn)事務(wù)存儲(chǔ)器的系統(tǒng)和方法。
【背景技術(shù)】
[0002]兩個(gè)或更多個(gè)進(jìn)程的并發(fā)執(zhí)行可以要求相對(duì)于共享資源(例如,可由兩個(gè)或更多個(gè)處理器實(shí)現(xiàn)的存儲(chǔ)器)實(shí)現(xiàn)同步機(jī)制。這樣的同步機(jī)制的一個(gè)示例是基于信號(hào)量的鎖定,引起進(jìn)程執(zhí)行的串行化,因而潛在地負(fù)面影響總體系統(tǒng)性能。此外,基于信號(hào)量的鎖定可以引起死鎖(在兩個(gè)或更多個(gè)進(jìn)程均等待另一進(jìn)程釋放資源鎖定時(shí)發(fā)生的條件)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0003]作為示例而非限制闡釋本公開(kāi)內(nèi)容,且在結(jié)合附圖考慮時(shí)借助于下列【具體實(shí)施方式】可以更完整地理解本公開(kāi)內(nèi)容,附圖中:
[0004]圖1敘述根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的示例計(jì)算機(jī)系統(tǒng)的高層次組件圖;
[0005]圖2敘述根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的處理器的框圖;
[0006]圖3a_3b示意性地闡釋根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的處理器微體系結(jié)構(gòu)的元素;
[0007]圖4闡釋根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面實(shí)現(xiàn)事務(wù)存儲(chǔ)器訪問(wèn)的示例計(jì)算機(jī)系統(tǒng)的若干方面;
[0008]圖5是闡釋根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面使用事務(wù)模式指令的示例代碼片段;
[0009]圖6描繪根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面用于實(shí)現(xiàn)事務(wù)存儲(chǔ)器訪問(wèn)的方法的流程圖;以及
[0010]圖7敘述根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的示例計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0011]在此描述的是用于實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的事務(wù)存儲(chǔ)器訪問(wèn)的方法和系統(tǒng)?!笆聞?wù)存儲(chǔ)器訪問(wèn)”是指由處理器按原子操作執(zhí)行兩個(gè)或更多個(gè)存儲(chǔ)器訪問(wèn)指令,以使得各指令要么共同成功,要么共同失敗。在后一種情況中,存儲(chǔ)器可以保持在執(zhí)行操作序列中的第一個(gè)之前出現(xiàn)的狀態(tài)中未經(jīng)修改,和/或可以執(zhí)行其他矯正動(dòng)作。在某些實(shí)現(xiàn)中,可以投機(jī)性地執(zhí)行事務(wù)存儲(chǔ)器訪問(wèn),即無(wú)需鎖定正在訪問(wèn)的存儲(chǔ)器,從而提供用于同步兩個(gè)或更多個(gè)并發(fā)執(zhí)行的線程和/或進(jìn)程對(duì)共享資源的訪問(wèn)的有效機(jī)制。
[0012]為了實(shí)現(xiàn)事務(wù)存儲(chǔ)器訪問(wèn),處理器指令集可以包括事務(wù)開(kāi)始指令和事務(wù)結(jié)束指令。在事務(wù)操作模式中,處理器可以分別經(jīng)由讀緩沖器和/或?qū)懢彌_器投機(jī)性地執(zhí)行多個(gè)存儲(chǔ)器讀操作和/或存儲(chǔ)器寫(xiě)操作。寫(xiě)緩沖器可以持有存儲(chǔ)器寫(xiě)操作的結(jié)果而不把數(shù)據(jù)提交給相應(yīng)的存儲(chǔ)器位置。與緩沖器相關(guān)聯(lián)的存儲(chǔ)器跟蹤邏輯可以檢測(cè)另一設(shè)備對(duì)指定的存儲(chǔ)器位置的訪問(wèn),并把錯(cuò)誤條件通知給處理器。響應(yīng)于接收到錯(cuò)誤信號(hào),處理器可以中止事務(wù)并把控制傳遞給錯(cuò)誤恢復(fù)例程。替代地,處理器可以在到達(dá)事務(wù)結(jié)束指令時(shí)檢查錯(cuò)誤。在缺乏事務(wù)中止條件時(shí),處理器可以把寫(xiě)操作結(jié)果提交給相應(yīng)的存儲(chǔ)器或高速緩存位置。在操作事務(wù)模式中,處理器也可以執(zhí)行一個(gè)或多個(gè)存儲(chǔ)器讀和/或?qū)懖僮?,可以立即提交這些存儲(chǔ)器讀和/或?qū)懖僮?,以使得它們的結(jié)果立即對(duì)其他設(shè)備(例如,其他處理器核心或其他處理器)可見(jiàn),而不考慮事務(wù)成功完成還是中止。在事務(wù)內(nèi)執(zhí)行非事務(wù)存儲(chǔ)器訪問(wèn)的能力提供處理器編程中的較好靈活性,并通過(guò)潛在地減少完成給定編程任務(wù)所必需的事務(wù)的數(shù)量增加總體執(zhí)行效率。
[0013]在本文下面作為示例而非限制【具體實(shí)施方式】上面引用的方法和系統(tǒng)的各種方面。
[0014]在下列描述中,陳述了眾多特定的細(xì)節(jié),例如特定類(lèi)型的處理器和系統(tǒng)配置、特定的硬件結(jié)構(gòu)、特定的體系結(jié)構(gòu)和微體系結(jié)構(gòu)的細(xì)節(jié)、特定的寄存器配置、特定的指令類(lèi)型、特定的系統(tǒng)組件、特定的測(cè)量/高度、特定的處理器流水線級(jí)和操作等等的示例,以便提供對(duì)本發(fā)明的透徹理解。然而,本領(lǐng)域中的技術(shù)人員將明顯看出,實(shí)踐本發(fā)明不需要使用這些特定的細(xì)節(jié)。在其他實(shí)例中,為了避免不必要地模糊本發(fā)明,不詳細(xì)描述公知的組件或方法,例如特定的和替代的處理器體系結(jié)構(gòu)、用于所描述的算法的特定的邏輯電路/代碼、特定的固件代碼、特定的互連操作、特定的邏輯配置、特定的制造技術(shù)和材料、特定的編譯器實(shí)現(xiàn)、代碼中的算法的特定表示、特定的斷電和門(mén)控技術(shù)/邏輯和計(jì)算機(jī)系統(tǒng)的其他特定操作細(xì)節(jié)。
[0015]盡管參考處理器描述下列實(shí)施方式,但其他實(shí)施方式也適用于其他類(lèi)型的集成電路和邏輯設(shè)備。本發(fā)明的各實(shí)施方式的類(lèi)似的技術(shù)和教導(dǎo)可以應(yīng)用到可以受益于更高的流水線吞吐量和經(jīng)改善的性能的其他類(lèi)型的電路或半導(dǎo)體設(shè)備。本發(fā)明的各實(shí)施方式的教導(dǎo)適用于執(zhí)行數(shù)據(jù)處理的任何處理器或機(jī)器。然而,本發(fā)明不限于執(zhí)行512位、256位、128位、64位、32位或16位數(shù)據(jù)操作的處理器或機(jī)器,且可以應(yīng)用到其中執(zhí)行對(duì)數(shù)據(jù)的處理和管理的任何處理器和機(jī)器。另外,出于闡釋的目的,下列的描述提供示例,且附圖示出各種示例。然而,不應(yīng)以限制的意義來(lái)把這些示例解釋成它們僅僅旨在提供本發(fā)明的實(shí)施方式的示例,而不是提供本發(fā)明的實(shí)施方式的所有可能實(shí)現(xiàn)的詳盡列表。
[0016]盡管下面示例在執(zhí)行單元和邏輯電路的上下文中描述指令處理和分配,但可以通過(guò)被存儲(chǔ)在機(jī)器可讀的有形介質(zhì)中的數(shù)據(jù)或指令完成本發(fā)明的其他實(shí)施方式,在由機(jī)器執(zhí)行時(shí),這些數(shù)據(jù)或指令引起機(jī)器執(zhí)行與本發(fā)明的至少一種實(shí)施方式相一致的功能。在一種實(shí)施方式中,與本發(fā)明的各實(shí)施方式相關(guān)聯(lián)的功能用機(jī)器可執(zhí)行的指令來(lái)實(shí)現(xiàn)。各指令可以用來(lái)引起用指令編程的通用或?qū)S玫奶幚砥鲌?zhí)行本發(fā)明的步驟。本發(fā)明的各實(shí)施方式可以被提供為計(jì)算機(jī)程序產(chǎn)品或軟件,該計(jì)算機(jī)程序產(chǎn)品或軟件可以包括其上存儲(chǔ)有指令的機(jī)器或計(jì)算機(jī)可讀介質(zhì),這些指令可以被用來(lái)把計(jì)算機(jī)(或其他電子設(shè)備)編程為執(zhí)行根據(jù)本發(fā)明的各實(shí)施方式的一個(gè)或多個(gè)操作。替代地,本發(fā)明的各實(shí)施方式的操作可以由包含用于執(zhí)行操作的固定功能邏輯的特定硬件組件執(zhí)行,或由經(jīng)編程的計(jì)算機(jī)組件和固定功能硬件組件的任何組合執(zhí)行。
[0017]可以把用來(lái)把邏輯編程為執(zhí)行本發(fā)明的各實(shí)施方式指令存儲(chǔ)在系統(tǒng)中的存儲(chǔ)器內(nèi),例如DRAM、高速緩存、閃速存儲(chǔ)器或其他存儲(chǔ)。此外,可以經(jīng)由網(wǎng)絡(luò)或通過(guò)其他計(jì)算機(jī)可讀介質(zhì)分發(fā)指令。因而,機(jī)器可讀介質(zhì)可以包括用于以可由機(jī)器(例如,計(jì)算機(jī))讀取的形式存儲(chǔ)或傳送信息的任何機(jī)制,但不限于軟盤(pán)、光盤(pán)、緊致盤(pán)、只讀存儲(chǔ)器(CD-ROM)和磁-光盤(pán)、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPR0M)、電可擦除可編程只讀存儲(chǔ)器(EEPR0M)、磁或光卡、閃速存儲(chǔ)器或用于在因特網(wǎng)上經(jīng)由電、光、聲或其他形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào)等等)傳遞信息的有形的、機(jī)器可讀的儲(chǔ)存器。因此,計(jì)算機(jī)可讀介質(zhì)包括適用于以可由機(jī)器(例如,計(jì)算機(jī))讀取的形式存儲(chǔ)或傳送電子指令或信息的任何類(lèi)型的有形機(jī)器可讀介質(zhì)。
[0018]本文中,“處理器”應(yīng)當(dāng)是指能夠執(zhí)行編碼算術(shù)、邏輯或I/O操作的指令的設(shè)備。在一個(gè)說(shuō)明性的示例中,處理器可以遵循馮?諾依曼體系結(jié)構(gòu)的模型,且可以包括運(yùn)算邏輯單元(ALU)、控制單元和多個(gè)寄存器。在進(jìn)一步的方面,處理器可以包括一個(gè)或多個(gè)處理器核心,且因此可以是通常能夠處理單個(gè)指令流水線的單個(gè)核心處理器或可以同時(shí)地處理多個(gè)指令流水線的多核心處理器。在另一方面中,處理器可以被實(shí)現(xiàn)為單個(gè)集成電路、兩個(gè)或更多個(gè)集成電路或者可以是多芯片模塊的組件(例如,其中多個(gè)單獨(dú)的微處理器晶片被包括在單個(gè)集成電路封裝中且因此共享單個(gè)插槽)。
[0019]圖1敘述根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的計(jì)算機(jī)系統(tǒng)的一個(gè)示例的高層次組件圖。計(jì)算機(jī)系統(tǒng)100可以包括處理器102,處理器102采用包括執(zhí)行用于根據(jù)在此描述實(shí)施方式處理數(shù)據(jù)的算法的邏輯的執(zhí)行單元。系統(tǒng)100表示基于可從加利福尼亞州圣克拉拉市的英特爾公司獲得的 PENTIUM III?、PENTIUM4?、Xeon?、Itanium、XScalen^P /或StixmgARM?微處理器的處理系統(tǒng),但也可以使用其他系統(tǒng)(包括具有其他微處理器的PC、工作站、機(jī)頂盒等等)。在一種實(shí)施方式中,示例系統(tǒng)100執(zhí)行可從華盛頓州雷蒙德市微軟公司獲得的WINDOWS?操作系統(tǒng)的一個(gè)版本,但也可以使用其他操作系統(tǒng)(例如UNIX和Linux)、嵌入式軟件和/或圖形用戶(hù)接口。因而,本發(fā)明的各實(shí)施方式不限于硬件電路和軟件的任何特定組合。
[0020]各實(shí)施方式不限于計(jì)算機(jī)系統(tǒng)。本發(fā)明的替代實(shí)施方式可以用于其他設(shè)備,例如手持式設(shè)備和嵌入式應(yīng)用。手持式設(shè)備的一些示例包括蜂窩式電話、因特網(wǎng)協(xié)議設(shè)備、數(shù)碼相機(jī)、個(gè)人數(shù)字助理(PDA)和手持式PC。嵌入式應(yīng)用可以包括微控制器、數(shù)字信號(hào)處理器(DSP)、片上系統(tǒng)、網(wǎng)絡(luò)計(jì)算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)或可以執(zhí)行根據(jù)至少一種實(shí)施方式的一個(gè)或多個(gè)指令的任何其他系統(tǒng)。
[0021]在所闡釋的這一示例中,處理器102包括實(shí)現(xiàn)用于執(zhí)行一個(gè)或多個(gè)指令例如事務(wù)存儲(chǔ)器訪問(wèn)指令的算法的一個(gè)或多個(gè)執(zhí)行單元108??梢栽趩蝹€(gè)處理器臺(tái)式或服務(wù)器系統(tǒng)的上下文中描述一種實(shí)施方式,但多處理器系統(tǒng)中可以包括替代的實(shí)施方式。系統(tǒng)100是‘集線器’系統(tǒng)體系結(jié)構(gòu)的示例。計(jì)算機(jī)系統(tǒng)100包括處理數(shù)據(jù)信號(hào)的處理器102。作為說(shuō)明性示例,處理器102包括復(fù)雜指令集計(jì)算機(jī)(CISC)微處理器、精簡(jiǎn)指令集計(jì)算(RISC)微處理器、超長(zhǎng)指令字(VLIW)微處理器、實(shí)現(xiàn)指令集的組合的處理器或任何其他處理器設(shè)備,例如數(shù)字信號(hào)處理器。處理器102被耦合到處理器總線110,處理器總線110在處理器102和系統(tǒng)100中的其他組件之間傳送數(shù)據(jù)信號(hào)。系統(tǒng)100的元素(例如圖形加速器112、存儲(chǔ)器控制器中樞116、存儲(chǔ)器120、1/0控制器中樞124、無(wú)線收發(fā)器126、閃速B10S128、網(wǎng)絡(luò)控制器134、音頻控制器136、串行擴(kuò)展端口 138、I/O控制器140等等)執(zhí)行其傳統(tǒng)功能,這些功能對(duì)熟悉本領(lǐng)域的技術(shù)人員來(lái)說(shuō)是眾所周知的。
[0022]在一種實(shí)施方式中,處理器102包括I級(jí)(LI)內(nèi)部高速緩存104。取決于體系結(jié)構(gòu),處理器102可以具有單個(gè)內(nèi)部高速緩存或多級(jí)內(nèi)部高速緩存。其他實(shí)施方式包括內(nèi)部和外部高速緩存兩者的組合,這取決于具體的實(shí)現(xiàn)和需要。寄存器文件106用于把不同類(lèi)型的數(shù)據(jù)存儲(chǔ)在各種寄存器中,這些寄存器包括整數(shù)寄存器、浮點(diǎn)數(shù)寄存器、矢量寄存器、分組寄存器、影子寄存器、檢查點(diǎn)寄存器、狀態(tài)寄存器和指令指針寄存器。
[0023]包括執(zhí)行整數(shù)和浮點(diǎn)操作的邏輯的執(zhí)行單元108也駐留在處理器102中。在一種實(shí)施方式中,處理器102包括存儲(chǔ)微代碼(ucode)的微代碼R0M,微代碼在被執(zhí)行時(shí)實(shí)現(xiàn)用于某些微指令的算法或處理復(fù)雜場(chǎng)景。在這里,微代碼潛在地可升級(jí)為處理處理器102的邏輯錯(cuò)誤/修復(fù)。對(duì)于一種實(shí)施方式,執(zhí)行單元108包括處理經(jīng)封裝的指令集109的邏輯。通過(guò)在通用處理器102的指令集中包括經(jīng)封裝的指令集109,結(jié)合有執(zhí)行指令的關(guān)聯(lián)電路,可以使用通用處理器102中的經(jīng)封裝數(shù)據(jù)來(lái)執(zhí)行多種多媒體應(yīng)用所使用的操作。因而,通過(guò)把處理器的數(shù)據(jù)總線的全部寬度用于對(duì)經(jīng)封裝數(shù)據(jù)執(zhí)行操作,加速了多種多媒體應(yīng)用,并且更高效地執(zhí)行這些多媒體應(yīng)用。這潛在地消除了對(duì)跨越處理器的數(shù)據(jù)總線每次一個(gè)數(shù)據(jù)元素地傳輸較小數(shù)據(jù)單元以便執(zhí)行一個(gè)或多個(gè)操作的需要。
[0024]在其他示例中,執(zhí)行單元108也可以用于微控制器、嵌入式處理器、圖形設(shè)備、DSP和其他類(lèi)型的邏輯電路。系統(tǒng)100包括存儲(chǔ)器120。存儲(chǔ)器120包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)設(shè)備、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)設(shè)備、閃速存儲(chǔ)器設(shè)備或其他存儲(chǔ)器設(shè)備。存儲(chǔ)器120存儲(chǔ)由應(yīng)由處理器102執(zhí)行的數(shù)據(jù)信號(hào)表示的指令和/或數(shù)據(jù)。
[0025]系統(tǒng)邏輯芯片116被耦合到處理器總線110和存儲(chǔ)器120。在所闡釋的實(shí)施方式中,系統(tǒng)邏輯芯片116是存儲(chǔ)器控制器中樞(MCH)。處理器102可以經(jīng)由處理器總線110與MCH116通信。MCH116向用于指令和數(shù)據(jù)存儲(chǔ)以及用于存儲(chǔ)圖形命令、數(shù)據(jù)和紋理的存儲(chǔ)器120提供高帶寬存儲(chǔ)器路徑118。MCHl 16在處理器102、存儲(chǔ)器120和系統(tǒng)100中的其他組件之間引導(dǎo)數(shù)據(jù)信號(hào)并在處理器總線110、存儲(chǔ)器120和系統(tǒng)1/0122之間橋接數(shù)據(jù)信號(hào)。在一些實(shí)施方式中,系統(tǒng)邏輯芯片116可以提供圖形端口以供耦合到圖形控制器112。MCH116通過(guò)存儲(chǔ)器接口 118耦合到存儲(chǔ)器120。圖形卡112通過(guò)加速圖形端口(AGP)互連114 耦合到 MCHl 16。
[0026]系統(tǒng)100使用專(zhuān)有中樞接口總線122來(lái)把MCH116耦合到I/O控制器中樞(ICH)130。ICH130提供經(jīng)由局部I/O總線到一些I/O設(shè)備的直接連接。局部I/O總線是用于把外圍設(shè)備連接到存儲(chǔ)器120、芯片組和處理器102的高速I(mǎi)/O總線。一些示例是音頻控制器、固件中樞(閃速B1S) 128、無(wú)線收發(fā)器126、數(shù)據(jù)存儲(chǔ)124、包含用戶(hù)輸入和鍵盤(pán)接口的傳統(tǒng)I/O控制器、諸如通用串行總線(USB)等的串行擴(kuò)展端口和網(wǎng)絡(luò)控制器134。數(shù)據(jù)存儲(chǔ)設(shè)備124可以包括硬盤(pán)驅(qū)動(dòng)器、軟盤(pán)驅(qū)動(dòng)器、CD-ROM設(shè)備、閃速存儲(chǔ)器設(shè)備或其他大容量存儲(chǔ)設(shè)備。
[0027]在系統(tǒng)的另一示例中,根據(jù)一種實(shí)施方式的指令可以與片上系統(tǒng)一起使用。片上系統(tǒng)的一種實(shí)施方式包括處理器和存儲(chǔ)器。用于一個(gè)這樣的系統(tǒng)的存儲(chǔ)器是閃速存儲(chǔ)器。閃速存儲(chǔ)器可以位于與處理器和其他系統(tǒng)組件相同的管芯上。另外,諸如存儲(chǔ)器控制器或圖形控制器等的其他邏輯塊也可以位于片上系統(tǒng)上。
[0028]上面示例的處理器102能夠執(zhí)行事務(wù)存儲(chǔ)器訪問(wèn)。在某些實(shí)現(xiàn)中,處理器102也能夠執(zhí)行一個(gè)或多個(gè)存儲(chǔ)器讀和/或?qū)懖僮?,可以立即提交這些存儲(chǔ)器讀和/或?qū)懖僮饕允沟盟鼈兊慕Y(jié)果立即對(duì)其他設(shè)備(例如,其他處理器核心或其他處理器)可見(jiàn),而不考慮事務(wù)成功完成還是中止,如本文下面更詳細(xì)地描述的。
[0029]圖2是用于處理器200的微體系結(jié)構(gòu)的框圖,其包括執(zhí)行根據(jù)本發(fā)明的一種實(shí)施方式的事務(wù)存儲(chǔ)器訪問(wèn)指令和/或非事務(wù)存儲(chǔ)器訪問(wèn)指令的邏輯電路。在一些實(shí)施方式中,根據(jù)一種實(shí)施方式的指令可以被實(shí)現(xiàn)為對(duì)具有字節(jié)、字、雙字、四字等等的大小的數(shù)據(jù)元素以及數(shù)據(jù)類(lèi)型例如單精度和雙精度整數(shù)和浮點(diǎn)數(shù)數(shù)據(jù)類(lèi)型操作。在一種實(shí)施方式中,有序前端201是處理器200的一部分,其用于提取要執(zhí)行的指令并準(zhǔn)備它們以供稍后在處理器流水線中使用。前端201可以包括若干單元。在一種實(shí)施方式中,指令提取器226從存儲(chǔ)器提取指令并把它們饋送到指令解碼器228,指令解碼器228又解碼或解析它們。例如,在一種實(shí)施方式中,解碼器把所接收的指令解碼成機(jī)器可以執(zhí)行的一個(gè)或多個(gè)操作,這些操作被稱(chēng)為“微指令”或“微操作”(也被稱(chēng)為微op或uop)。在其他實(shí)施方式中,解碼器把指令解析成由微體系結(jié)構(gòu)用來(lái)執(zhí)行根據(jù)一種實(shí)施方式的操作的操作碼和相應(yīng)的數(shù)據(jù)和控制字段。在一種實(shí)施方式中,蹤跡緩存230取用已解碼的uop并把它們組裝成uop隊(duì)列234中的程序已排序序列或蹤跡,以用于執(zhí)行。當(dāng)蹤跡緩存230遭遇復(fù)雜指令時(shí),微代碼R0M232提供完成該操作所需要的uop。
[0030]一些指令被轉(zhuǎn)換成單個(gè)微op,而其他需要若干個(gè)微op來(lái)完成整個(gè)操作。在一種實(shí)施方式中,如果完成指令需要多于四個(gè)的微0P,則解碼器228訪問(wèn)微代碼R0M232以便執(zhí)行該指令。對(duì)于一種實(shí)施方式,在指令解碼器228處可以把指令解碼成少量的微op以供處理。在另一實(shí)施方式中,如果完成操作需要多個(gè)微op,則該指令可以被存儲(chǔ)在微代碼R0M232內(nèi)。蹤跡緩存230參考入口點(diǎn)可編程邏輯陣列(PLA)以確定用于讀取微代碼序列的正確的微指令指針,以便完成來(lái)自微代碼R0M232的根據(jù)一種實(shí)施方式的一個(gè)或多個(gè)指令。在微代碼R0M232完成對(duì)指令的微op進(jìn)行定序之后,該機(jī)器的前端201恢復(fù)從蹤跡緩存230提取微op。
[0031]亂序執(zhí)行引擎203中準(zhǔn)備用于執(zhí)行的指令。亂序執(zhí)行邏輯具有多個(gè)緩沖器,以便在指令流沿著流水線下行并被調(diào)度為執(zhí)行時(shí)對(duì)指令流進(jìn)行平滑和再排序,從而優(yōu)化性能。除法器邏輯分配每一 UOP執(zhí)行所需要的機(jī)器緩沖器和資源。寄存器重命名邏輯把邏輯寄存器重命名成寄存器文件中的條目。在指令調(diào)度器(存儲(chǔ)器調(diào)度器、快速調(diào)度器202、慢速/普通浮點(diǎn)數(shù)調(diào)度器204和單精度浮點(diǎn)數(shù)調(diào)度器206)之前,除法器也為兩個(gè)uop隊(duì)列中的一個(gè)uop隊(duì)列中的每一 uop分配條目,這兩個(gè)uop隊(duì)列中,一個(gè)uop隊(duì)列用于存儲(chǔ)器操作且另一個(gè)uop隊(duì)列用于非存儲(chǔ)器操作?;趗op調(diào)度器202、204、206相關(guān)輸入寄存器操作數(shù)源的準(zhǔn)備情況以及uop完成它們的操作所需要的執(zhí)行資源的可用性,uop調(diào)度器202、204、206確定uop何時(shí)準(zhǔn)備好執(zhí)行。一種實(shí)施方式的快速調(diào)度器202可以在主時(shí)鐘周期的每半個(gè)周期上進(jìn)行調(diào)度,而其他調(diào)度器可以在每個(gè)主處理器時(shí)鐘周期中調(diào)度一次。調(diào)度器仲裁分派端口以便調(diào)度uop以供執(zhí)行。
[0032]寄存器文件208、210位于調(diào)度器202、204、206和執(zhí)行塊211中的執(zhí)行單元212、214、216、218、220、222、224之間。存在分別用于整數(shù)和浮點(diǎn)數(shù)操作的單獨(dú)的寄存器文件208、210。一種實(shí)施方式的每一寄存器文件208、210也包括旁路網(wǎng)絡(luò),旁路網(wǎng)絡(luò)可以把還沒(méi)有被寫(xiě)入到寄存器文件的剛剛完成的結(jié)果旁路或轉(zhuǎn)發(fā)到新的相關(guān)uop。整數(shù)寄存器文件208和浮點(diǎn)數(shù)寄存器文件210也能夠互相之間進(jìn)行數(shù)據(jù)的通信。對(duì)于一種實(shí)施方式,整數(shù)寄存器文件208被拆分成兩個(gè)分離的寄存器文件,一個(gè)寄存器文件用于該數(shù)據(jù)的低32位且第二寄存器文件用于該數(shù)據(jù)的高32位。一種實(shí)施方式的浮點(diǎn)數(shù)寄存器文件210具有128位寬的條目,這是因?yàn)楦↑c(diǎn)數(shù)指令通常具有操作數(shù)從64位到128位的寬度。
[0033]執(zhí)行框211包含執(zhí)行單元212、214、216、218、220、222、224,在這些執(zhí)行單元中實(shí)際地執(zhí)行指令。這一部分包括存儲(chǔ)微指令執(zhí)行所需要的整數(shù)和浮點(diǎn)數(shù)數(shù)據(jù)操作數(shù)值的寄存器文件208、210。一種實(shí)施方式的處理器200由多個(gè)執(zhí)行單元組成:地址生成單元(A(iU)212、AGU214、快速ALU216、快速ALU218、慢速ALU220、浮點(diǎn)數(shù)ALU222、浮點(diǎn)數(shù)移動(dòng)單元224。對(duì)于一種實(shí)施方式,浮點(diǎn)執(zhí)行塊222、224執(zhí)行浮點(diǎn)數(shù)、MMX、SIMD和SSE或其他操作。一種實(shí)施方式的浮點(diǎn)數(shù)ALU222包括64位X64位的浮點(diǎn)數(shù)除法器,以便執(zhí)行除法、開(kāi)方和求余數(shù)微操作。對(duì)于本發(fā)明的各實(shí)施方式,可以用浮點(diǎn)硬件來(lái)處理涉及浮點(diǎn)值的指令。在一種實(shí)施方式中,ALU操作去往高速ALU執(zhí)行單元216、218。一種實(shí)施方式的快速ALU216、218可以以半個(gè)時(shí)鐘周期的有效延遲時(shí)間執(zhí)行快速操作。對(duì)于一種實(shí)施方式,大多數(shù)復(fù)雜整數(shù)操作去往慢速ALU220,因?yàn)槁貯LU220包括用于諸如乘法器、移位、標(biāo)志邏輯和分支處理等的長(zhǎng)延遲時(shí)間類(lèi)型的操作的整數(shù)執(zhí)行硬件。存儲(chǔ)器加載/存儲(chǔ)操作由AGU212、214執(zhí)行。對(duì)于一種實(shí)施方式,在對(duì)64位數(shù)據(jù)操作數(shù)執(zhí)行整數(shù)操作的上下文中描述整數(shù)ALU216、218、220。在替代的實(shí)施方式中,ALU216、218、220可以被實(shí)現(xiàn)為支持包括16、32、128、256等等的各種數(shù)據(jù)位。類(lèi)似地,浮點(diǎn)單元222、224可以被實(shí)現(xiàn)為支持具有各種寬度的位數(shù)的操作數(shù)范圍。對(duì)于一種實(shí)施方式,浮點(diǎn)單元222、224可以對(duì)128位寬的經(jīng)封裝數(shù)據(jù)操作數(shù)以及SIMD和多媒體指令進(jìn)行操作。
[0034]在一種實(shí)施方式中,在父加載已經(jīng)完成執(zhí)行之前,uop調(diào)度器202、204、206分派相關(guān)操作。由于在處理器200中投機(jī)性地調(diào)度和執(zhí)行uop,處理器200也包括處理存儲(chǔ)器未命中的邏輯。如果在數(shù)據(jù)高速緩存中數(shù)據(jù)加載未命中,則在該流水線中可以實(shí)時(shí)存在給調(diào)度器留下暫時(shí)不正確的數(shù)據(jù)的相關(guān)操作。重放機(jī)制跟蹤和再次執(zhí)行使用不正確數(shù)據(jù)的指令。依賴(lài)性操作需要被重新執(zhí)行,而獨(dú)立操作被允許完成。處理器的一種實(shí)施方式的調(diào)度器和重放機(jī)制也被設(shè)計(jì)成捕捉用于文本字符串比較操作的指令序列。
[0035]術(shù)語(yǔ)“寄存器”可以是指板載處理器存儲(chǔ)位置,其被用作為指令的一部分用于標(biāo)識(shí)操作數(shù)。換句話說(shuō),寄存器可以是(從程序員的視角來(lái)看)在處理器外部可用的那些寄存器。然而,一個(gè)實(shí)施方式的寄存器在含義上不應(yīng)限于特定類(lèi)型的電路。相反,一個(gè)實(shí)施方式的寄存器能夠存儲(chǔ)和提供數(shù)據(jù),并執(zhí)行在此描述的功能。在此描述的寄存器可以由在處理器內(nèi)使用任何數(shù)量的不同技術(shù)的電路來(lái)實(shí)現(xiàn),例如專(zhuān)用物理寄存器、使用寄存器重命名的動(dòng)態(tài)分配物理寄存器、專(zhuān)用和動(dòng)態(tài)分配物理寄存器的組合等等。在一種實(shí)施方式中,整數(shù)寄存器存儲(chǔ)32位整數(shù)數(shù)據(jù)。一種實(shí)施方式的寄存器文件也包含用于經(jīng)封裝數(shù)據(jù)的八個(gè)多媒體SMD寄存器。對(duì)于下面的討論,應(yīng)理解,寄存器是被設(shè)計(jì)為保存經(jīng)封裝數(shù)據(jù)的數(shù)據(jù)寄存器,例如在啟用來(lái)自加利福尼亞州圣克拉拉市英特爾公司的MMX?技術(shù)的微處理器中的64位寬的MMX寄存器(在一些實(shí)例中也被稱(chēng)為寄存器)。以整數(shù)和浮點(diǎn)數(shù)形式兩者可用的這些MMX寄存器可以與伴隨著SMD和SSE指令的經(jīng)封裝數(shù)據(jù)元素一起操作。類(lèi)似地,涉及SSE2、SSE3、SSE4或更高(通常稱(chēng)為SSEx)技術(shù)的128位寬的XMM寄存器也可以用來(lái)保存這樣的經(jīng)封裝數(shù)據(jù)操作數(shù)。在一種實(shí)施方式中,在存儲(chǔ)經(jīng)封裝數(shù)據(jù)和整數(shù)數(shù)據(jù)時(shí),寄存器不需要區(qū)分這兩種數(shù)據(jù)類(lèi)型。在一種實(shí)施方式中,整數(shù)和浮點(diǎn)數(shù)被包含在相同的寄存器文件或不同的寄存器文件中。此外,在一種實(shí)施方式中,浮點(diǎn)數(shù)和整數(shù)數(shù)據(jù)可以被存儲(chǔ)在不同的寄存器或相同的寄存器中。
[0036]圖3a_3b示意性地闡釋根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的處理器微體系結(jié)構(gòu)的元素。在圖3a中,處理器流水線400包括提取級(jí)402、長(zhǎng)度解碼級(jí)404、解碼級(jí)406、分配級(jí)408、重命名級(jí)410、調(diào)度(也稱(chēng)為分派或發(fā)布)級(jí)412、寄存器讀/存儲(chǔ)器讀級(jí)414、執(zhí)行級(jí)416、回寫(xiě)/存儲(chǔ)器寫(xiě)級(jí)418、異常處理級(jí)422和提交級(jí)424。
[0037]在圖3b中,箭頭指示在兩個(gè)或更多個(gè)單元之間的耦合,且箭頭的方向指示在那些單元之間的數(shù)據(jù)流的方向。圖3b示出處理器核心490,處理器核心490包括被耦合到執(zhí)行引擎單元450的前端單元430,且兩者均被耦合到存儲(chǔ)器單元470。
[0038]核心490可以是精簡(jiǎn)指令集計(jì)算(RISC)核心、復(fù)雜指令集計(jì)算(CISC)核心、超長(zhǎng)指令字(VLIW)核心或混合或替代的核心類(lèi)型。作為再一種選項(xiàng),核心490可以是專(zhuān)用核心,諸如例如網(wǎng)絡(luò)或通信核心、壓縮引擎、圖形核心等等。在某些實(shí)現(xiàn)中,根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面,核心490能夠執(zhí)行事務(wù)存儲(chǔ)器訪問(wèn)指令和/或非事務(wù)存儲(chǔ)器訪問(wèn)指令。
[0039]前端單元430包括被耦合到指令高速緩存單元434的分支預(yù)測(cè)單元432,指令高速緩存單元434被耦合到指令轉(zhuǎn)換后備緩沖器(TLB)436,指令轉(zhuǎn)換后備緩沖器436被耦合到指令提取單元438,指令提取單元438被耦合到解碼單元440。解碼單元或解碼器可以解碼指令,且作為輸出生成從原始指令解碼或以另外方式反映原始指令或從原始指令導(dǎo)出的一個(gè)或多個(gè)微操作、微代碼入口點(diǎn)、微指令、其他指令或其他控制信號(hào)??梢允褂酶鞣N不同的機(jī)制實(shí)現(xiàn)解碼器。合適的機(jī)制的示例包括但不限于查找表、硬件實(shí)現(xiàn)、可編程邏輯陣列(PLA)、微代碼只讀存儲(chǔ)器(ROM)等等。指令高速緩存單元434還被耦合到存儲(chǔ)器單元470中的2級(jí)(L2)高速緩存單元476。解碼單元440被耦合到執(zhí)行引擎單元450中的重命名/分配器452。
[0040]執(zhí)行引擎單元450包括被耦合到引退單元454和一組一個(gè)或多個(gè)調(diào)度器單元456的重命名/分配器452。調(diào)度器單元456表示任何數(shù)量的不同的調(diào)度器,包括保留站(reservat1n stat1n)、中央指令窗口等等。調(diào)度器單元456被稱(chēng)合到物理寄存器文件單元458。物理寄存器文件單元458中的每一個(gè)表示一個(gè)或多個(gè)物理寄存器文件,其中不同的各個(gè)存儲(chǔ)一個(gè)或多個(gè)不同的數(shù)據(jù)類(lèi)型,例如標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)數(shù)、經(jīng)封裝整數(shù)、經(jīng)封裝浮點(diǎn)數(shù)、矢量整數(shù)、矢量浮點(diǎn)數(shù)等等、狀態(tài)(例如,指令指針,即要執(zhí)行的下一指令的地址)等等。物理寄存器文件單元458與引退單元454重疊,以便闡釋可以實(shí)現(xiàn)寄存器假名和亂序執(zhí)行的各種方式(例如,使用重新排序緩沖器和引退寄存器文件、使用未來(lái)文件、歷史緩沖器和引退寄存器文件;使用寄存器映射和寄存器池;等等)。通常,體系結(jié)構(gòu)寄存器在處理器外或從程序員的透視圖視角可見(jiàn)。寄存器不限于任何已知的具體類(lèi)型的電路。只要各種不同類(lèi)型的寄存器能夠如在此描述的存儲(chǔ)和提供數(shù)據(jù),它們就是合適的。合適的寄存器的示例包括但不限于專(zhuān)用物理寄存器、使用寄存器假名的動(dòng)態(tài)分配物理寄存器、專(zhuān)用和動(dòng)態(tài)分配物理寄存器的組合等等。引退單元454和物理寄存器文件單元458被耦合到執(zhí)行集群460。執(zhí)行集群460包括一組一個(gè)或多個(gè)執(zhí)行單元162和一組一個(gè)或多個(gè)存儲(chǔ)器訪問(wèn)單元464。執(zhí)行單元462可以執(zhí)行各種操作(例如,移位、加法、減法、乘法)且對(duì)各種類(lèi)型的數(shù)據(jù)(例如,標(biāo)量浮點(diǎn)、經(jīng)封裝整數(shù)、經(jīng)封裝浮點(diǎn)數(shù)、矢量整數(shù)、矢量浮點(diǎn)數(shù))執(zhí)行操作。盡管一些實(shí)施方式可以包括對(duì)特定的功能或功能集來(lái)說(shuō)專(zhuān)用的多個(gè)執(zhí)行單元,但其他實(shí)施方式可以包括全都執(zhí)行所有功能的一個(gè)執(zhí)行單元或多個(gè)執(zhí)行單元。調(diào)度器單元456、物理寄存器文件單元458和執(zhí)行集群460被示出為可能是復(fù)數(shù)個(gè),這是因?yàn)槟承?shí)施方式創(chuàng)建用于某些類(lèi)型的數(shù)據(jù)/操作的單獨(dú)的流水線(例如,標(biāo)量整數(shù)流水線、標(biāo)量浮點(diǎn)/經(jīng)封裝整數(shù)/經(jīng)封裝浮點(diǎn)數(shù)/矢量整數(shù)/矢量浮點(diǎn)數(shù)流水線,以及/或者存儲(chǔ)器訪問(wèn)流水線,每一個(gè)均均具有其自己的調(diào)度器單元、物理寄存器文件單元和/或執(zhí)行集群一并且在獨(dú)立的存儲(chǔ)器訪問(wèn)流水線的情況下,特定實(shí)施方式被實(shí)現(xiàn)為其中這一流水線的執(zhí)行集群具有存儲(chǔ)器訪問(wèn)單元464)。還應(yīng)理解,在使用獨(dú)立的流水線的情況下,這些流水線中的一個(gè)或多個(gè)可以是亂序發(fā)起/執(zhí)行,且其余的可以是有序發(fā)起/執(zhí)行。
[0041 ] 該組存儲(chǔ)器訪問(wèn)單元464被耦合到存儲(chǔ)器單元470,存儲(chǔ)器單元470包括被耦合到數(shù)據(jù)高速緩存單元474的數(shù)據(jù)轉(zhuǎn)換后備緩沖器單元472,數(shù)據(jù)高速緩存單元474被耦合到2級(jí)(L2)高速緩存單元476。在一個(gè)示例性的實(shí)施方式中,存儲(chǔ)器訪問(wèn)單元464可以包括加載單元、存儲(chǔ)地址單元和存儲(chǔ)數(shù)據(jù)單元,其中的每一個(gè)都被耦合到存儲(chǔ)器單元470中的數(shù)據(jù)轉(zhuǎn)換后備緩沖器單元472。L2高速緩存單元476被耦合到一個(gè)或多個(gè)其他級(jí)別的高速緩存且最終耦合到主存儲(chǔ)器。
[0042]作為示例,亂序發(fā)起/執(zhí)行核心體系結(jié)構(gòu)可以如下所示地實(shí)現(xiàn)流水線400:指令提取438執(zhí)行提取級(jí)402和長(zhǎng)度解碼級(jí)404 ;解碼單元440執(zhí)行解碼級(jí)406 ;重命名/分配器452執(zhí)行分配級(jí)408和重命名級(jí)410 ;調(diào)度器單元456執(zhí)行調(diào)度級(jí)412 ;物理寄存器文件單元458和存儲(chǔ)器單元470執(zhí)行寄存器讀/存儲(chǔ)器讀級(jí)414 ;執(zhí)行集群460執(zhí)行執(zhí)行級(jí)416 ;存儲(chǔ)器單元470和物理寄存器文件單元458執(zhí)行回寫(xiě)/存儲(chǔ)器寫(xiě)級(jí)418 ;異常處理級(jí)422中可以涉及各種單元;并且引退單元454和物理寄存器文件單元458執(zhí)行提交級(jí)424。
[0043]核心490可以支持一個(gè)或多個(gè)指令集(例如,x86指令集(且新近的版本已經(jīng)添加了一些擴(kuò)展);加利福尼亞州桑尼維爾市的MIPS技術(shù)公司的MIPS指令集;加利福尼亞州桑尼維爾市的ARM控股公司的ARM指令集(帶有諸如NEON的附加擴(kuò)展))。
[0044]在某些實(shí)現(xiàn)中,核心可以支持多線程化(執(zhí)行兩個(gè)或更多個(gè)并行的操作或線程集),且可以以各種方式這樣做,這些方式包括分時(shí)多線程、同時(shí)多線程(其中單個(gè)物理核心為該物理核心同時(shí)地多線程化的每一線程提供邏輯核心)或其組合(例如,分時(shí)提取和解碼以及此后的同時(shí)多線程,例如在英特爾?超線程技術(shù)中)。
[0045]盡管所闡釋的處理器的實(shí)施方式也包括分離的指令和數(shù)據(jù)高速緩存單元434/474和共享L2高速緩存單元476,但替代的實(shí)施方式可以具有用于指令和數(shù)據(jù)兩者的單個(gè)內(nèi)部高速緩存,諸如例如I級(jí)(LI)內(nèi)部高速緩存,或多級(jí)內(nèi)部高速緩存。在一些實(shí)施方式中,系統(tǒng)可以包括內(nèi)部高速緩存和外置于核心和/或處理器的外部高速緩存的組合。替代地,所有高速緩存都可以外置于核心和/或處理器。
[0046]圖4示意性地闡釋根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的計(jì)算機(jī)系統(tǒng)100的幾個(gè)方面。如本文以上提到且由圖4示意性地闡釋的,處理器102可以包括用于存儲(chǔ)指令和/或數(shù)據(jù)的一個(gè)或多個(gè)高速緩存104,包括例如LI高速緩存和L2高速緩存。高速緩存104可以由一個(gè)或多個(gè)處理器核心123訪問(wèn)。在某些實(shí)現(xiàn)中,高速緩存104可以由直寫(xiě)式高速緩存表示,直寫(xiě)式高速緩存中每一高速緩存寫(xiě)操作引起對(duì)系統(tǒng)存儲(chǔ)器120的寫(xiě)操作。替代地,高速緩存104可以由回寫(xiě)式高速緩存表示,回寫(xiě)式高速緩存中并不立即把高速緩存寫(xiě)操作鏡像到系統(tǒng)存儲(chǔ)器120。在某些實(shí)現(xiàn)中,高速緩存104可以實(shí)現(xiàn)高速緩存一致性協(xié)議,諸如例如修改獨(dú)占共享無(wú)效(MESI)協(xié)議,以提供被存儲(chǔ)在一個(gè)或多個(gè)高速緩存中的數(shù)據(jù)相對(duì)于共享存儲(chǔ)器的一致性。
[0047]在某些實(shí)現(xiàn)中,處理器102還可以包括一個(gè)或多個(gè)讀緩沖器127和一個(gè)或多個(gè)寫(xiě)緩沖器129,以便保存從存儲(chǔ)器120讀取或向其寫(xiě)入的數(shù)據(jù)。緩沖器可以具有相同的大小或幾種固定的大小,或者可以具有可變的大小。在一個(gè)示例中,讀緩沖器和寫(xiě)緩沖器可以由相同的多個(gè)緩沖器表示。在一個(gè)示例中,讀緩沖器和/或?qū)懢彌_器可以由高速緩存104的多個(gè)高速緩存條目表示。
[0048]處理器102還可以包括與緩沖器127和129相關(guān)聯(lián)的存儲(chǔ)器跟蹤邏輯131。存儲(chǔ)器跟蹤邏輯可以包括被配置為跟蹤對(duì)(例如由物理地址標(biāo)識(shí)的)存儲(chǔ)器位置的訪問(wèn)的電路,這些存儲(chǔ)器位置先前已經(jīng)被緩沖到緩沖器127和/或129,從而提供由緩沖器127和/或129存儲(chǔ)的數(shù)據(jù)相對(duì)于相應(yīng)存儲(chǔ)器位置的一致性。在某些實(shí)現(xiàn)中,緩沖器127和/或129可以具有與它們相關(guān)聯(lián)的地址標(biāo)簽,以便保存所緩沖的存儲(chǔ)器位置的地址。實(shí)現(xiàn)存儲(chǔ)器跟蹤邏輯131的電路可以通信上耦合到計(jì)算機(jī)系統(tǒng)100的地址總線,且因此可以通過(guò)以下實(shí)現(xiàn)監(jiān)聽(tīng):讀取地址總線上的其他設(shè)備(例如,其他處理器或直接存儲(chǔ)器訪問(wèn)(DMA)控制器)指定的地址,并把那些地址與先前已經(jīng)被緩沖到緩沖器127和/或129的標(biāo)識(shí)存儲(chǔ)器位置的地址進(jìn)行比較。
[0049]處理器102還可以包括錯(cuò)誤恢復(fù)例程地址寄存器135,錯(cuò)誤恢復(fù)例程地址寄存器135保存在異常事務(wù)終止的情況下要執(zhí)行的錯(cuò)誤恢復(fù)例程的地址,如本文下面更詳細(xì)地描述的。處理器102還可以包括事務(wù)狀態(tài)寄存器137,事務(wù)狀態(tài)寄存器137保存事務(wù)錯(cuò)誤代碼,如本文下面更詳細(xì)地描述的。
[0050]為了允許處理器102實(shí)現(xiàn)事務(wù)存儲(chǔ)器訪問(wèn),其指令集可以包括事務(wù)開(kāi)始(TX_START)指令和事務(wù)結(jié)束(TX_END)指令。TX_START指令可以包括一個(gè)或多個(gè)操作數(shù),這些操作數(shù)包括如果事務(wù)異常終止則由處理器102執(zhí)行的錯(cuò)誤恢復(fù)例程的地址,和/或執(zhí)行事務(wù)所需要的硬件緩沖器的數(shù)量。
[0051]在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令可以引起處理器分配用于執(zhí)行事務(wù)的讀和/或?qū)懢彌_器。在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令還可以弓I起處理器提交所有待決的存儲(chǔ)操作以便確保先前執(zhí)行的存儲(chǔ)器訪問(wèn)操作的結(jié)果對(duì)訪問(wèn)相同的存儲(chǔ)器的其他設(shè)備可見(jiàn)。在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令還可以弓丨起處理器停止數(shù)據(jù)預(yù)取。在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令還可以引起處理器在已界定數(shù)量的周期內(nèi)禁用中斷,以便改善事務(wù)成功的機(jī)會(huì)(這是由于在事務(wù)待決的同時(shí)發(fā)生的中斷發(fā)生可以使得該事務(wù)失效)。
[0052]響應(yīng)于處理TX_START指令,處理器102可以進(jìn)入到事務(wù)操作模式,可以由相應(yīng)的TX.END指令或通過(guò)檢測(cè)錯(cuò)誤條件來(lái)終止事務(wù)操作模式。在事務(wù)操作模式中,處理器102可以投機(jī)性地(即,無(wú)需獲取關(guān)于正在訪問(wèn)的存儲(chǔ)器的鎖)經(jīng)由各自的讀緩沖器127和/或?qū)懢彌_器129執(zhí)行多個(gè)存儲(chǔ)器讀和/或存儲(chǔ)器寫(xiě)操作。
[0053]在事務(wù)操作模式中,處理器可以為每一加載獲取操作分配讀緩沖器127 (如果現(xiàn)有緩沖器已經(jīng)保存了正在訪問(wèn)的存儲(chǔ)器位置的內(nèi)容,則可以重用現(xiàn)有緩沖器;否則可以分配新的緩沖器)。處理器還可以為每一存儲(chǔ)獲取操作分配寫(xiě)緩沖器129 (如果現(xiàn)有緩沖器已經(jīng)保存了正在訪問(wèn)的存儲(chǔ)器位置的內(nèi)容,則可以重用現(xiàn)有緩沖器;否則可以分配新的緩沖器)。寫(xiě)緩沖器129可以保存寫(xiě)操作的結(jié)果而無(wú)需把數(shù)據(jù)提交給相應(yīng)的存儲(chǔ)器位置。存儲(chǔ)器跟蹤邏輯131可以檢測(cè)其他設(shè)備對(duì)指定的存儲(chǔ)器位置的訪問(wèn),并向處理器102告知錯(cuò)誤條件。響應(yīng)于接收到錯(cuò)誤信號(hào),處理器102可以中止事務(wù)并把控制傳遞給由相應(yīng)的TX_START指令指定的錯(cuò)誤恢復(fù)例程。否則,響應(yīng)于接收到TX_END指令,處理器102可以把寫(xiě)操作提交給相應(yīng)的存儲(chǔ)器或高速緩存位置。
[0054]在事務(wù)操作模式中,處理器也可以執(zhí)行一個(gè)或多個(gè)存儲(chǔ)器讀和/或?qū)懖僮?,可以立即提交這些讀和/或?qū)懖僮鳎允沟盟鼈兊慕Y(jié)果立即對(duì)其他設(shè)備(例如,其他處理器核心或其他處理器)可見(jiàn),而不考慮事務(wù)成功完成還是中止。在事務(wù)內(nèi)執(zhí)行非事務(wù)存儲(chǔ)器訪問(wèn)的能力增強(qiáng)了處理器的編程靈活性且還可以改善執(zhí)行效率。
[0055]可以通過(guò)分配處理器102的最低級(jí)數(shù)據(jù)高速緩存中的多個(gè)高速緩存條目來(lái)實(shí)現(xiàn)讀緩沖器127和/或?qū)懢彌_器129。如果終止了事務(wù),則讀和/或?qū)懢彌_器可以被標(biāo)記為無(wú)效和/或可用。如本文上面提到的,可以響應(yīng)于在事務(wù)執(zhí)行模式期間檢測(cè)到其他設(shè)備對(duì)正在讀取和/或修改存儲(chǔ)器的訪問(wèn)而中止事務(wù)。其他事務(wù)中止條件可以包括在事務(wù)執(zhí)行模式期間檢測(cè)到的硬件中斷、硬件緩沖器溢出和/或程序錯(cuò)誤。在某些實(shí)現(xiàn)中,包括例如零標(biāo)志、進(jìn)位標(biāo)志和/或溢出標(biāo)志的狀態(tài)標(biāo)志可以被用來(lái)保存指示事務(wù)執(zhí)行模式中所檢測(cè)到的錯(cuò)誤的源頭的狀態(tài)。替代地,事務(wù)錯(cuò)誤代碼可以被存儲(chǔ)在事務(wù)狀態(tài)寄存器137中。
[0056]如果執(zhí)行達(dá)到相應(yīng)的TX_END指令且由緩沖器127和/或129緩沖的數(shù)據(jù)中沒(méi)有被讀取或被修改,則事務(wù)正常地完成。一旦達(dá)到TX_END指令,處理器就可以響應(yīng)于查明在事務(wù)操作模式期間沒(méi)有發(fā)生事務(wù)中止條件而把寫(xiě)操作結(jié)果提交給相應(yīng)的存儲(chǔ)器或高速緩存位置,并釋放先前已經(jīng)為該事務(wù)分配的緩沖器127和/或127。在某些實(shí)現(xiàn)中,處理器102可以提交事務(wù)寫(xiě)操作,而不考慮由非事務(wù)存儲(chǔ)器訪問(wèn)操作讀取和/或修改的存儲(chǔ)器位置的狀態(tài)。
[0057]如果已經(jīng)檢測(cè)到事務(wù)中止條件,處理器可以中止事務(wù)并把控制傳遞到錯(cuò)誤恢復(fù)例程地址,該錯(cuò)誤恢復(fù)例程地址可以被存儲(chǔ)在錯(cuò)誤恢復(fù)例程地址寄存器135中。如果中止了事務(wù),則先前已經(jīng)為該事務(wù)分配的緩沖器127和/或129可以被標(biāo)記為無(wú)效和/或可用。
[0058]在某些實(shí)現(xiàn)中,處理器102可以支持嵌套事務(wù)。嵌套事務(wù)可以從在另一(外部)事務(wù)的范圍內(nèi)執(zhí)行的TX_START指令開(kāi)始。提交嵌套事務(wù)可以不影響外部事務(wù)的狀態(tài),而不是把在外部事務(wù)的范圍內(nèi)的可見(jiàn)性提供給嵌套事務(wù)的結(jié)果;然而,直到外部事務(wù)也提交之前,那些結(jié)果仍然可以對(duì)其他設(shè)備隱藏。
[0059]為了實(shí)現(xiàn)嵌套事務(wù),TX_END指令可以包括操作數(shù)指示相應(yīng)TX_START指令的地址。此外,可以擴(kuò)展錯(cuò)誤恢復(fù)例程地址寄存器135以便保存用于可以同時(shí)活動(dòng)的多個(gè)嵌套事務(wù)的錯(cuò)誤恢復(fù)例程地址。
[0060]發(fā)生在嵌套事務(wù)的范圍內(nèi)的錯(cuò)誤可以使得所有外部事務(wù)失效。在嵌套事務(wù)鏈內(nèi)的每一錯(cuò)誤恢復(fù)例程可以負(fù)責(zé)調(diào)用相應(yīng)外部事務(wù)的錯(cuò)誤恢復(fù)例程。
[0061]在某些實(shí)現(xiàn)中,通過(guò)把多個(gè)加載獲取和/或存儲(chǔ)獲取指令分組成以事務(wù)模式執(zhí)行的指令序列,如本文上面更詳細(xì)地描述的,事務(wù)開(kāi)始和事務(wù)結(jié)束指令可以被用來(lái)修改處理器的指令集中存在的加載獲取和/或存儲(chǔ)獲取指令的行為。
[0062]圖5中示出了闡釋事務(wù)模式指令的使用的示例代碼片段。代碼片段500闡釋在兩個(gè)賬戶(hù)之間的轉(zhuǎn)換:把被存儲(chǔ)在EBX中的數(shù)量從SrcAccount傳輸?shù)紻stAccount。代碼片段200還闡釋非事務(wù)存儲(chǔ)器操作=SomeStatistic計(jì)數(shù)器的內(nèi)容被加載到寄存器中、被遞減、且被存儲(chǔ)回到存儲(chǔ)器而不監(jiān)視所讀取和修改的存儲(chǔ)器的狀態(tài)。相對(duì)于SomeStatistic計(jì)數(shù)器的地址的存儲(chǔ)操作的結(jié)果被立即提交,且因此其立即對(duì)所有其他設(shè)備可見(jiàn)。
[0063]圖6敘述根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面用于事務(wù)存儲(chǔ)器訪問(wèn)的示例方法的流程圖。方法600可以由計(jì)算機(jī)系統(tǒng)執(zhí)行,該計(jì)算機(jī)系統(tǒng)可以包括硬件(例如,電路、專(zhuān)用邏輯和/或可編程邏輯)、軟件(例如,可在計(jì)算機(jī)系統(tǒng)上可執(zhí)行以便執(zhí)行硬件仿真的指令)或其組合。方法600和/或其函數(shù)、例程、子程序或操作中的每一個(gè)可以由執(zhí)行該方法的計(jì)算機(jī)系統(tǒng)的一個(gè)或多個(gè)物理處理器執(zhí)行。方法600的兩個(gè)或更多個(gè)函數(shù)、例程、子程序或操作可以由訪問(wèn)相同的存儲(chǔ)器的不同處理器并行執(zhí)行,或者以與上面所描述的次序不同的次序執(zhí)行。在一個(gè)示例中,正如圖6所闡釋的,方法600可以由圖1的計(jì)算機(jī)系統(tǒng)100執(zhí)行,用于實(shí)現(xiàn)事務(wù)存儲(chǔ)器訪問(wèn)。
[0064]參見(jiàn)圖6,在框610,處理器可以發(fā)起存儲(chǔ)器訪問(wèn)事務(wù)。如本文上面提到的,存儲(chǔ)器訪問(wèn)事務(wù)可以由專(zhuān)用的事務(wù)開(kāi)始指令發(fā)起。事務(wù)開(kāi)始可以包括一個(gè)或多個(gè)操作數(shù),這些操作數(shù)包括如果事務(wù)異常終止則由處理器執(zhí)行的錯(cuò)誤恢復(fù)例程的地址,和/或執(zhí)行事務(wù)所需要的硬件緩沖器的數(shù)量。在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令還可以引起處理器分配讀和/或?qū)懢彌_器以用于執(zhí)行事務(wù)。在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令還可以弓I起處理器提交所有待決的存儲(chǔ)操作以便確保先前執(zhí)行的存儲(chǔ)器訪問(wèn)操作的結(jié)果對(duì)訪問(wèn)相同的存儲(chǔ)器的其他設(shè)備可見(jiàn)。在某些實(shí)現(xiàn)中,事務(wù)開(kāi)始指令還可以弓丨起處理器停止數(shù)據(jù)預(yù)取。
[0065]在框620,處理器可以投機(jī)性地經(jīng)由與存儲(chǔ)器跟蹤邏輯相關(guān)聯(lián)的一個(gè)或多個(gè)硬件緩沖器執(zhí)行一個(gè)或多個(gè)存儲(chǔ)器讀操作。要讀取的每一存儲(chǔ)器塊可以由開(kāi)始地址和大小標(biāo)識(shí),或者由地址范圍標(biāo)識(shí)。存儲(chǔ)器跟蹤邏輯可以檢測(cè)其他設(shè)備對(duì)指定的內(nèi)存地址的訪問(wèn),并把錯(cuò)誤條件發(fā)送給處理器。
[0066]在框630,處理器可以投機(jī)性地經(jīng)由與存儲(chǔ)器跟蹤邏輯相關(guān)聯(lián)的一個(gè)或多個(gè)硬件緩沖器來(lái)執(zhí)行一個(gè)或多個(gè)存儲(chǔ)器寫(xiě)操作。要寫(xiě)入的每一存儲(chǔ)器塊可以由開(kāi)始地址和大小標(biāo)識(shí),或者由地址范圍標(biāo)識(shí)。寫(xiě)緩沖器可以保存存儲(chǔ)器寫(xiě)操作的結(jié)果而不把數(shù)據(jù)提交給相應(yīng)的存儲(chǔ)器位置。存儲(chǔ)器跟蹤邏輯可以檢測(cè)其他設(shè)備對(duì)指定的內(nèi)存地址的訪問(wèn),并把錯(cuò)誤條件發(fā)送給處理器。
[0067]如由框640示意性地示出的,響應(yīng)于檢測(cè)到由框630引用在存儲(chǔ)器寫(xiě)操作期間的錯(cuò)誤,在框660,處理器可以執(zhí)行由TX_START指令指定的錯(cuò)誤恢復(fù)例程;否則,在框670,處理可以繼續(xù)。
[0068]在框670,處理器可以執(zhí)行并立即提交一個(gè)或多個(gè)存儲(chǔ)器讀和/或?qū)懖僮?。?dāng)那些操作被立即提交時(shí),它們的結(jié)果立即變得對(duì)其他設(shè)備(例如,其他處理器核心或其他處理器)可見(jiàn),而不考慮事務(wù)成功完成還是中止。
[0069]一旦達(dá)到事務(wù)結(jié)束指令,處理器就可以確認(rèn)在事務(wù)操作模式期間沒(méi)有發(fā)生事務(wù)中止條件,如框670示意性地示出的。在框670,響應(yīng)于在框610發(fā)起的事務(wù)操作模式期間檢測(cè)到錯(cuò)誤,處理器可以執(zhí)行錯(cuò)誤恢復(fù)例程,如由框660示意性地示出的;否則,如由框680示意性地示出的,處理器可以完成該事務(wù),而不考慮框670所引用的非事務(wù)存儲(chǔ)器訪問(wèn)操作讀取和/或修改的存儲(chǔ)器位置的狀態(tài)。處理器可以把寫(xiě)操作結(jié)果提交給相應(yīng)的存儲(chǔ)器或高速緩存位置,并釋放先前已經(jīng)為該事務(wù)分配的緩沖器。一旦完成由框670引用的操作,該方法就可以終止。
[0070]在某些實(shí)現(xiàn)中,在以事務(wù)操作模式執(zhí)行若干指令(例如加載或存儲(chǔ)指令)期間也可以檢測(cè)到事務(wù)錯(cuò)誤。在圖6中,起源于框620和630的虛線示意性地闡釋從以事務(wù)操作模式執(zhí)行的若干指令分支到錯(cuò)誤恢復(fù)例程。
[0071]在某些實(shí)現(xiàn)中,在執(zhí)行事務(wù)結(jié)束指令期間也可以檢測(cè)到事務(wù)錯(cuò)誤(例如,如果在報(bào)告其他設(shè)備對(duì)事務(wù)存儲(chǔ)器的訪問(wèn)的邏輯中存在延時(shí))。在圖6中,起源于框680的虛線示意性地闡釋從事務(wù)結(jié)束指令分支到錯(cuò)誤恢復(fù)例程。
[0072]圖7敘述根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的示例計(jì)算機(jī)系統(tǒng)的框圖。如圖7中所示出,多處理器系統(tǒng)700是點(diǎn)對(duì)點(diǎn)互連系統(tǒng),且包括經(jīng)由點(diǎn)對(duì)點(diǎn)互連750耦合的第一處理器770和第二處理器780。處理器770和780中的每一個(gè)可以是能夠執(zhí)行事務(wù)存儲(chǔ)器訪問(wèn)操作和/或非事務(wù)存儲(chǔ)器訪問(wèn)操作的處理器102的某種版本,如本文上面更詳細(xì)地描述的。
[0073]盡管借助于僅兩個(gè)處理器770、780示出,應(yīng)理解,本發(fā)明的范圍不限于此。在其他實(shí)施方式中,給定的處理器中可以存在一個(gè)或多個(gè)附加的處理器。
[0074]處理器770和780被示出為分別包括集成存儲(chǔ)器控制器單元772和782。處理器770也包括作為其總線控制器單元的一部分的點(diǎn)對(duì)點(diǎn)(P-P)接口 776和778 ;類(lèi)似地,第二處理器780包括P-P接口 786和788。處理器770、780可以經(jīng)由點(diǎn)對(duì)點(diǎn)(P-P)接口 750使用P-P接口電路778、788來(lái)交換信息。如圖7中所示出,MC772和782把各處理器耦合到各自的存儲(chǔ)器,即存儲(chǔ)器732和存儲(chǔ)器734,它們可以是本地附加到各自的處理器的主存儲(chǔ)器的一部分。
[0075]處理器770、780均可以經(jīng)由各個(gè)P-P接口 752、754使用點(diǎn)對(duì)點(diǎn)接口電路776、794、786,798來(lái)與芯片組790交換信息。芯片組790也可以經(jīng)由高性能圖形接口 739與高性能圖形電路738交換信息。
[0076]共享高速緩存(未示出)可以被包括在任一個(gè)處理器內(nèi)或者在這兩個(gè)處理器之外,仍經(jīng)由P-P互連與各處理器連接,以使得如果處理器被置于低功率模式則任一處理器或這兩個(gè)處理器的本地高速緩存信息可以被存儲(chǔ)在共享高速緩存中。
[0077]芯片組790可以經(jīng)由接口 796耦合到第一總線716。在一種實(shí)施方式中,第一總線716可以是外圍組件互連(PCI)總線,或諸如PCI Express總線或另一第三代I/O互連總線等的總線,但本發(fā)明的范圍不限于此。
[0078]如圖7中所示出,各種I/O設(shè)備714可以耦合到第一總線716,總線橋718也是如此,總線橋718把第一總線716耦合到第二總線720。在一種實(shí)施方式中,第二總線720可以是低引腳數(shù)(LPC)總線。各種設(shè)備可以耦合到第二總線720,在一種實(shí)施方式中例如包括鍵盤(pán)和/或鼠標(biāo)722、通信設(shè)備727和存儲(chǔ)單元728,例如盤(pán)驅(qū)動(dòng)器或可以包括指令/代碼和數(shù)據(jù)730的其他大容量存儲(chǔ)設(shè)備。進(jìn)一步,音頻1/0724可以耦合到第二總線720。注意,其他體系結(jié)構(gòu)是可能的。例如,代替圖7的點(diǎn)對(duì)點(diǎn)體系結(jié)構(gòu),系統(tǒng)可以實(shí)現(xiàn)多點(diǎn)總線或其他這樣的體系結(jié)構(gòu)。
[0079]下列的示例闡釋根據(jù)本公開(kāi)內(nèi)容的一個(gè)或多個(gè)方面的各種實(shí)現(xiàn)。
[0080]示例I是用于事務(wù)存儲(chǔ)器訪問(wèn)的方法,包括:由處理器發(fā)起存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下中的至少之一:使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,或使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第二緩沖器,相對(duì)于第二存儲(chǔ)器位置執(zhí)行事務(wù)寫(xiě)操作;執(zhí)行以下中的至少之一:相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,或者相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作;響應(yīng)于由存儲(chǔ)器訪問(wèn)跟蹤邏輯檢測(cè)到由不同于處理器的設(shè)備訪問(wèn)第一存儲(chǔ)器位置或第二存儲(chǔ)器位置中的至少之一,中止存儲(chǔ)器訪問(wèn)事務(wù);以及響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮第三存儲(chǔ)器位置的狀態(tài)和第四存儲(chǔ)器位置的狀態(tài),完成存儲(chǔ)器訪問(wèn)事務(wù)。
[0081]在示例2中,示例I的方法的第一緩沖器和第二緩沖器可以由一個(gè)緩沖器表示。
[0082]在示例3中,示例I的方法的第一存儲(chǔ)器位置和第二存儲(chǔ)器位置可以由一個(gè)存儲(chǔ)器位置表不。
[0083]在示例4中,示例I的方法的第三存儲(chǔ)器位置和第四存儲(chǔ)器位置可以由一個(gè)存儲(chǔ)器位置表不。
[0084]在示例5中,示例I的方法的第一緩沖器或第二緩沖器中的至少之一可以由數(shù)據(jù)高速緩存中的一個(gè)條目提供。
[0085]在示例6中,示例1-6中的任何方法的執(zhí)行操作可以包括提交第二寫(xiě)操作。
[0086]在示例7中,示例1-6中的任何方法的完成操作可以包括把來(lái)自第二緩沖器的數(shù)據(jù)復(fù)制到以下之一:更高級(jí)的高速緩存條目或存儲(chǔ)器位置。
[0087]在示例8中,示例1-6中的任何方法還可以包括響應(yīng)于檢測(cè)到以下的至少之一中止存儲(chǔ)器訪問(wèn)事務(wù):中斷、緩沖器溢出或程序錯(cuò)誤。
[0088]在示例9中,示例1-6中的任何方法的中止操作可以包括釋放第一緩沖器和第二緩沖器中的至少之一。
[0089]在示例10中,示例1-6中的任何方法的發(fā)起操作可以包括提交待決的寫(xiě)操作。
[0090]在示例11中,示例1-6中的任何方法的發(fā)起操作可以包括禁用中斷。
[0091]在示例12中,示例1-6中的任何方法的發(fā)起操作可以包括禁用數(shù)據(jù)預(yù)取。
[0092]在示例13中,示例1-6中的任何方法還可以包括:在完成存儲(chǔ)器訪問(wèn)事務(wù)之前,發(fā)起嵌套存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下中的至少之一:使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第三緩沖器,執(zhí)行第二事務(wù)讀操作,或使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第四緩沖器,執(zhí)行第二事務(wù)寫(xiě)操作;以及
[0093]完成嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
[0094]在示例14中,示例13的方法還可以包括響應(yīng)于檢測(cè)到事務(wù)中止條件中止存儲(chǔ)器訪問(wèn)事務(wù)和嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
[0095]示例15是處理系統(tǒng),包括:存儲(chǔ)器訪問(wèn)跟蹤邏輯;與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第一緩沖器;與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第二緩沖器;通信上耦合到第一緩沖器和第二緩沖器的處理器核心,該處理器核心被配置為執(zhí)行包括以下的操作:發(fā)起存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下中的至少之一:使用第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,或使用第二緩沖器,相對(duì)于第二存儲(chǔ)器位置執(zhí)行事務(wù)寫(xiě)操作;執(zhí)行以下中的至少之一:相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,或者相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作;響應(yīng)于由存儲(chǔ)器訪問(wèn)跟蹤邏輯檢測(cè)到由不同于處理器的設(shè)備訪問(wèn)第一存儲(chǔ)器位置或第二存儲(chǔ)器位置中的至少之一,中止存儲(chǔ)器訪問(wèn)事務(wù);以及響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮第三存儲(chǔ)器位置的狀態(tài)和第四存儲(chǔ)器位置的狀態(tài),完成存儲(chǔ)器訪問(wèn)事務(wù)。
[0096]示例16是處理系統(tǒng),包括:存儲(chǔ)器訪問(wèn)跟蹤裝置;與存儲(chǔ)器訪問(wèn)跟蹤裝置相關(guān)聯(lián)的第一緩沖器;與存儲(chǔ)器訪問(wèn)跟蹤裝置相關(guān)聯(lián)的第二緩沖器;通信上耦合到第一緩沖器和第二緩沖器的處理器核心,該處理器核心被配置為執(zhí)行包括以下的操作:發(fā)起存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下中的至少之一:使用第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,或使用第二緩沖器,相對(duì)于第二存儲(chǔ)器位置執(zhí)行事務(wù)寫(xiě)操作;執(zhí)行以下中的至少之一:相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,或者相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作;響應(yīng)于由存儲(chǔ)器訪問(wèn)跟蹤裝置檢測(cè)到由不同于處理器的設(shè)備訪問(wèn)第一存儲(chǔ)器位置或第二存儲(chǔ)器位置中的至少之一,中止存儲(chǔ)器訪問(wèn)事務(wù);以及響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮第三存儲(chǔ)器位置的狀態(tài)和第四存儲(chǔ)器位置的狀態(tài),完成存儲(chǔ)器訪問(wèn)事務(wù)。
[0097]在示例17中,示例15-16中的任何的處理系統(tǒng)還可以包括數(shù)據(jù)高速緩存,且第一緩沖器和第二緩沖器中的至少之一可以駐留在數(shù)據(jù)高速緩存中。
[0098]在示例18中,示例15-16中的任何的處理系統(tǒng)還可以包括存儲(chǔ)錯(cuò)誤恢復(fù)例程的地址的寄存器。
[0099]在示例19中,示例15-16中的任何的處理系統(tǒng)還可以包括存儲(chǔ)存儲(chǔ)器訪問(wèn)事務(wù)的狀態(tài)的寄存器。
[0100]在示例20中,示例15-16中的任何的處理系統(tǒng)的第一緩沖器和第二緩沖器可以由一個(gè)緩沖器表不。
[0101]在示例21中,示例15-16中的任何的處理系統(tǒng)的第三緩沖器和第四緩沖器可以由一個(gè)緩沖器表不。
[0102]在示例22中,示例15-16中的任何的處理系統(tǒng)的第一存儲(chǔ)器位置和第二存儲(chǔ)器位置可以由一個(gè)存儲(chǔ)器位置表不。
[0103]在示例23中,示例15-16中的任何的處理系統(tǒng)的第三存儲(chǔ)器位置和第四存儲(chǔ)器位置可以由一個(gè)存儲(chǔ)器位置表不。
[0104]在示例24中,示例15-16中的任何的處理系統(tǒng)的處理器核心還可以被配置為響應(yīng)于檢測(cè)到以下的至少之一中止存儲(chǔ)器訪問(wèn)事務(wù):中斷、緩沖器溢出或程序錯(cuò)誤。
[0105]在示例25中,示例15的處理系統(tǒng)的處理器核心還可以被配置為:在完成存儲(chǔ)器訪問(wèn)事務(wù)之前,發(fā)起嵌套存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下的至少之一:使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第三緩沖器,執(zhí)行第二事務(wù)讀操作,或使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第四緩沖器,執(zhí)行第二事務(wù)寫(xiě)操作;以及完成嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
[0106]在示例26中,示例16的處理系統(tǒng)的處理器核心還可以被配置為:在完成存儲(chǔ)器訪問(wèn)事務(wù)之前,發(fā)起嵌套存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下的至少之一:使用與存儲(chǔ)器訪問(wèn)跟蹤裝置相關(guān)聯(lián)的第三緩沖器,執(zhí)行第二事務(wù)讀操作,或使用與存儲(chǔ)器訪問(wèn)跟蹤裝置相關(guān)聯(lián)的第四緩沖器,執(zhí)行第二事務(wù)寫(xiě)操作;以及完成嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
[0107]在示例27中,示例25-26中的任何的處理系統(tǒng)的處理器核心還可以被配置為響應(yīng)于檢測(cè)到事務(wù)中止條件而中止存儲(chǔ)器訪問(wèn)事務(wù)和嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
[0108]示例28是包括存儲(chǔ)器和耦合到存儲(chǔ)器的處理系統(tǒng)的裝置,其中,該處理系統(tǒng)被配置為執(zhí)行示例1-14中的任何的方法。
[0109]示例29是包括可執(zhí)行指令的計(jì)算機(jī)可讀非暫態(tài)存儲(chǔ)介質(zhì),在由處理器執(zhí)行時(shí),這些可執(zhí)行指令引起處理器:由處理器發(fā)起存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下的至少之一:使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,或使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第二緩沖器,相對(duì)于第二存儲(chǔ)器位置執(zhí)行事務(wù)寫(xiě)操作;執(zhí)行以下的至少之一:相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,或者相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作;響應(yīng)于由存儲(chǔ)器訪問(wèn)跟蹤邏輯檢測(cè)到由不同于處理器的設(shè)備訪問(wèn)第一存儲(chǔ)器位置或第二存儲(chǔ)器位置中的至少之一,中止存儲(chǔ)器訪問(wèn)事務(wù);以及響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮第三存儲(chǔ)器位置的狀態(tài)和第四存儲(chǔ)器位置的狀態(tài),完成存儲(chǔ)器訪問(wèn)事務(wù)。
[0110]在對(duì)在計(jì)算機(jī)存儲(chǔ)器內(nèi)的數(shù)據(jù)位的操作的算法和符號(hào)表示方面,給出了【具體實(shí)施方式】中的一些部分。這些算法描述和表示是由數(shù)據(jù)處理領(lǐng)域中的技術(shù)人員用來(lái)最有效地把他們的工作實(shí)質(zhì)傳達(dá)給本領(lǐng)域中的其他技術(shù)人員的手段。在此,且一般地,算法被設(shè)想為引起期望結(jié)果的自相一致的操作序列。操作是那些需要對(duì)物理量的物理操作的那些操作。通常,盡管并不必定,這些量采用能夠被存儲(chǔ)、傳遞、組合、比較且以另外方式操縱的電或磁信號(hào)的形式。已經(jīng)證明,有時(shí),主要是出于通常使用的原因,將這些信號(hào)稱(chēng)為位、值、元素、符號(hào)、字符、術(shù)語(yǔ)、數(shù)字或類(lèi)似物。
[0111]然而,應(yīng)當(dāng)牢記的是,所有這些和類(lèi)似的術(shù)語(yǔ)將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅是應(yīng)用于這些量的方便的標(biāo)簽。除非特別聲明,否則從上面的討論可知,應(yīng)明白,在整個(gè)說(shuō)明書(shū)中,利用諸如“加密”、“解密”、“存儲(chǔ)”、“提供”、“導(dǎo)出”、“獲得”、“接收”、“認(rèn)證”、“刪除”、“執(zhí)行”、“請(qǐng)求”、“通信”、等等的術(shù)語(yǔ)的討論,是指計(jì)算機(jī)系統(tǒng)或類(lèi)似電子計(jì)算設(shè)備的動(dòng)作和過(guò)程,其操縱表示為在計(jì)算系統(tǒng)的數(shù)據(jù)寄存器和存儲(chǔ)器內(nèi)的物理(例如,電子)量的數(shù)據(jù)并將其變換為類(lèi)似地表示為在計(jì)算系統(tǒng)存儲(chǔ)器或寄存器或其它此類(lèi)信息存儲(chǔ)、傳輸或顯示設(shè)備中的物理量的其他數(shù)據(jù)。
[0112]詞語(yǔ)“示例”或“示例性”在本文中用于表示用作示例、實(shí)例或說(shuō)明。本文描述為“示例”或“示例性”的任何方面或設(shè)計(jì)并不必定被解釋為優(yōu)于或勝過(guò)其他方面或設(shè)計(jì)。相反,使用詞語(yǔ)“示例”或“示例性”旨在以具體方式呈現(xiàn)概念。在本申請(qǐng)所使用的術(shù)語(yǔ)“或”意指包括性的“或”而非排他性的“或”。也就是說(shuō),除非另外指定,或者從上下文可以清楚看出,否則“X包含A或B”意指任何自然的包括性排列。也就是說(shuō),如果X包含A,X包括B ;或X包含A和B,那么在上述任何情況下都滿足“X包含A或B”。此外,在本申請(qǐng)中和所附權(quán)利要求書(shū)中使用的冠詞“一”和“一個(gè)”通常應(yīng)被解釋為是指“一個(gè)或多個(gè)”,除非另有指定或從上下文中清晰看出是針對(duì)單數(shù)形式。此外,全文中使用術(shù)語(yǔ)“一種實(shí)施方式”或“一個(gè)實(shí)施方式”或“一種實(shí)現(xiàn)”不預(yù)期是指同一個(gè)實(shí)施方式或?qū)嵤?,除非如此描述。此外,在此所使用的術(shù)語(yǔ)“第一”、“第二”、“第三”、“第四”等預(yù)期用作區(qū)分不同元素的標(biāo)簽,并不一定具有根據(jù)其數(shù)字標(biāo)號(hào)的序數(shù)的含義。
[0113]本文所描述的實(shí)施方式還可以涉及一種用于執(zhí)行本文的操作的裝置。該裝置可以被特別地構(gòu)造為用于所需目的,或者它可以包括由存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配置的通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,例如但不限于任何類(lèi)型的盤(pán),包括軟盤(pán)、光盤(pán)、⑶-ROM和磁-光盤(pán)、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、EPROM、EEPR0M、磁卡或光卡、閃速存儲(chǔ)器或適用于存儲(chǔ)電子指令的任何類(lèi)型的介質(zhì)。術(shù)語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”應(yīng)當(dāng)被理解為包括用于存儲(chǔ)一個(gè)或多個(gè)指令集的單個(gè)介質(zhì)或多個(gè)介質(zhì)(例如,集中式或分布式數(shù)據(jù)庫(kù)和/或相關(guān)聯(lián)的緩存和服務(wù)器)。術(shù)語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”應(yīng)相應(yīng)地被理解為包括但不限于固態(tài)存儲(chǔ)器、光介質(zhì)、磁介質(zhì)、能夠存儲(chǔ)用于執(zhí)行本機(jī)指令集并引起該機(jī)器執(zhí)行各實(shí)施方式的任何一種或多種方法的任何介質(zhì)。
[0114]本文中所呈現(xiàn)的算法和顯示并不固有地與任何特定計(jì)算機(jī)或其它裝置相關(guān)。各種通用系統(tǒng)可以與根據(jù)本文的教導(dǎo)的程序一起使用,或者可以證明便于構(gòu)造更加專(zhuān)用的裝置來(lái)執(zhí)行所需的方法操作。將從下面的描述看出各種這些系統(tǒng)所需的結(jié)構(gòu)。此外,并不參照任何特定的編程語(yǔ)言進(jìn)行描述各實(shí)施方式。應(yīng)理解,多種編程語(yǔ)言可以用來(lái)實(shí)現(xiàn)再次描述的實(shí)施方式的教導(dǎo)。
[0115]上面的描述中闡述了許多具體細(xì)節(jié),例如特定系統(tǒng)、組件、方法等的示例,以提供對(duì)若干實(shí)施方式的良好了解。然而,本領(lǐng)域中的一個(gè)技術(shù)人員明顯看出,無(wú)需這些特定的細(xì)節(jié)就可以實(shí)踐至少一些實(shí)施方式。在其他實(shí)例中,沒(méi)有【具體實(shí)施方式】眾所周知的組件或方法,或者以簡(jiǎn)單框圖格式給出眾所周知的組件或方法,以便避免不必要地模糊本實(shí)施方式。因此,上面陳述的特定細(xì)節(jié)僅僅是示例性的。具體實(shí)現(xiàn)可以與這些示例性細(xì)節(jié)有所不同,但仍然可以被認(rèn)為是落在各實(shí)施方式的范圍之內(nèi)。
[0116]應(yīng)理解,上面的描述旨在是說(shuō)明性的而非限制性的。在閱讀和理解上面的描述之后,本領(lǐng)域中的技術(shù)人員將明顯看出許多其他實(shí)施方式。因此,應(yīng)該參照所附的權(quán)利要求以及這樣的權(quán)利要求所賦予的等同物的完整范圍來(lái)確定各實(shí)施方式的范圍。
【權(quán)利要求】
1.一種用于事務(wù)存儲(chǔ)器訪問(wèn)的方法,包括: 由處理器發(fā)起存儲(chǔ)器訪問(wèn)事務(wù); 執(zhí)行以下中的至少之一:使用與存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,或使用與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第二緩沖器相對(duì)于第二存儲(chǔ)器位置,執(zhí)行事務(wù)寫(xiě)操作; 執(zhí)行以下中的至少之一:相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,或者相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作; 響應(yīng)于由所述存儲(chǔ)器訪問(wèn)跟蹤邏輯檢測(cè)到由不同于所述處理器的設(shè)備訪問(wèn)所述第一存儲(chǔ)器位置或所述第二存儲(chǔ)器位置中的至少之一,中止所述存儲(chǔ)器訪問(wèn)事務(wù);以及 響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮所述第三存儲(chǔ)器位置的狀態(tài)和所述第四存儲(chǔ)器位置的狀態(tài),完成所述存儲(chǔ)器訪問(wèn)事務(wù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一緩沖器和所述第二緩沖器由一個(gè)緩沖器表示。
3.如權(quán)利要求1所述的方法,其特征在于,所述第一存儲(chǔ)器位置和所述第二存儲(chǔ)器位置由一個(gè)存儲(chǔ)器位置表示。
4.如權(quán)利要求1所述的方法,其特征在于,所述第三存儲(chǔ)器位置和所述第四存儲(chǔ)器位置由一個(gè)存儲(chǔ)器位置 表示。
5.如權(quán)利要求1所述的方法,其特征在于,所述第一緩沖器或所述第二緩沖器中的至少之一由數(shù)據(jù)高速緩存中的一個(gè)條目提供。
6.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行所述第二寫(xiě)操作包括提交所述第二寫(xiě)操作。
7.如權(quán)利要求1所述的方法,其特征在于,完成所述存儲(chǔ)器訪問(wèn)事務(wù)包括把來(lái)自所述第二緩沖器的數(shù)據(jù)復(fù)制到以下的其中之一:更高級(jí)的高速緩存條目或存儲(chǔ)器位置。
8.如權(quán)利要求1所述的方法,進(jìn)一步包括中止所述存儲(chǔ)器訪問(wèn)事務(wù)響應(yīng)于檢測(cè)到以下的至少之一:中斷、緩沖器溢出或程序錯(cuò)誤。
9.如權(quán)利要求1所述的方法,其特征在于,所述中止包括釋放所述第一緩沖器和所述第二緩沖器中的至少之一。
10.如權(quán)利要求1所述的方法,其特征在于,發(fā)起所述存儲(chǔ)器訪問(wèn)事務(wù)包括提交待決的寫(xiě)操作。
11.如權(quán)利要求1所述的方法,其特征在于,發(fā)起所述存儲(chǔ)器訪問(wèn)事務(wù)包括禁用中斷。
12.如權(quán)利要求1所述的方法,其特征在于,發(fā)起所述存儲(chǔ)器訪問(wèn)事務(wù)包括禁用數(shù)據(jù)預(yù)取。
13.如權(quán)利要求1所述的方法,進(jìn)一步包括: 在完成所述存儲(chǔ)器訪問(wèn)事務(wù)之前,發(fā)起嵌套存儲(chǔ)器訪問(wèn)事務(wù); 執(zhí)行以下中的至少之一:使用與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第三緩沖器,執(zhí)行第二事務(wù)讀操作,或使用與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第四緩沖器,執(zhí)行第二事務(wù)寫(xiě)操作;以及 完成所述嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
14.如權(quán)利要求13所述的方法,進(jìn)一步包括響應(yīng)于檢測(cè)到事務(wù)中止條件而中止所述存儲(chǔ)器訪問(wèn)事務(wù)和所述嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
15.—種處理系統(tǒng),包括: 存儲(chǔ)器訪問(wèn)跟蹤邏輯; 與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第一緩沖器; 與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第二緩沖器; 處理器核心,其通信上耦合到所述第一緩沖器和所述第二緩沖器,所述處理器核心被配置為執(zhí)行包括以下的操作: 發(fā)起存儲(chǔ)器訪問(wèn)事務(wù); 執(zhí)行以下中的至少之一:使用所述第一緩沖器,相對(duì)于第一存儲(chǔ)器位置執(zhí)行事務(wù)讀操作,或使用第二緩沖器,相對(duì)于第二存儲(chǔ)器位置執(zhí)行事務(wù)寫(xiě)操作; 執(zhí)行以下中的至少之一:相對(duì)于第三存儲(chǔ)器位置執(zhí)行非事務(wù)讀操作,或者相對(duì)于第四存儲(chǔ)器位置執(zhí)行非事務(wù)寫(xiě)操作; 響應(yīng)于由所述存儲(chǔ)器訪問(wèn)跟蹤邏輯檢測(cè)到由不同于所述處理器的設(shè)備訪問(wèn)所述第一存儲(chǔ)器位置或所述第二存儲(chǔ)器位置中的至少之一,中止所述存儲(chǔ)器訪問(wèn)事務(wù);以及 響應(yīng)于無(wú)法檢測(cè)到事務(wù)中止條件且不考慮所述第三存儲(chǔ)器位置的狀態(tài)和所述第四存儲(chǔ)器位置的狀態(tài),完成所述存儲(chǔ)器訪問(wèn)事務(wù)。
16.如權(quán)利要求15所述的處理系統(tǒng),進(jìn)一步包括數(shù)據(jù)高速緩存;其中,所述第一緩沖器或所述第二緩沖器中的至少之一駐留在所述數(shù)據(jù)高速緩存中。
17.如權(quán)利要求15所述的處理系統(tǒng),進(jìn)一步包括存儲(chǔ)錯(cuò)誤恢復(fù)例程的地址的寄存器。
18.如權(quán)利要求15所述的處理系統(tǒng),進(jìn)一步包括存儲(chǔ)所述存儲(chǔ)器訪問(wèn)事務(wù)的狀態(tài)的寄存器。
19.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述第一緩沖器和所述第二緩沖器由一個(gè)緩沖器表不。
20.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述第三緩沖器和所述第四緩沖器由一個(gè)緩沖器表不。
21.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述第一存儲(chǔ)器位置和所述第二存儲(chǔ)器位置由一個(gè)存儲(chǔ)器位置表示。
22.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述第三存儲(chǔ)器位置和所述第四存儲(chǔ)器位置由一個(gè)存儲(chǔ)器位置表示。
23.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述處理器核心還被配置為響應(yīng)于檢測(cè)到以下的至少之一中止所述存儲(chǔ)器訪問(wèn)事務(wù):中斷、緩沖器溢出或程序錯(cuò)誤。
24.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述處理器核心還被配置為:在完成所述存儲(chǔ)器訪問(wèn)事務(wù)之前,發(fā)起嵌套存儲(chǔ)器訪問(wèn)事務(wù);執(zhí)行以下的至少之一:使用與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第三緩沖器,執(zhí)行第二事務(wù)讀操作,或使用與所述存儲(chǔ)器訪問(wèn)跟蹤邏輯相關(guān)聯(lián)的第四緩沖器,執(zhí)行第二事務(wù)寫(xiě)操作;以及完成所述嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
25.如權(quán)利要求15所述的處理系統(tǒng),其特征在于,所述處理器核心還被配置為響應(yīng)于檢測(cè)到事務(wù)中止條件而中止所述存儲(chǔ)器訪問(wèn)事務(wù)和所述嵌套存儲(chǔ)器訪問(wèn)事務(wù)。
【文檔編號(hào)】G06F9/52GK104050023SQ201410093028
【公開(kāi)日】2014年9月17日 申請(qǐng)日期:2014年3月13日 優(yōu)先權(quán)日:2013年3月14日
【發(fā)明者】W·C·拉什, S·D·哈恩, B·L·托爾, G·J·辛頓 申請(qǐng)人:英特爾公司