專利名稱:提高存儲性能的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例涉及微處理器體系結(jié)構(gòu)。更具體地說,本發(fā)明的實施例涉及通過實現(xiàn)專有讀取(read-for-ownership)的亂序發(fā)射和更有效地使用存儲緩沖器延遲周期來提高微處理器中的存儲性能的方法和裝置。
背景技術(shù):
微處理器一般通過被稱為“前端總線”(FSB)的共享計算機系統(tǒng)總線來與計算機系統(tǒng)進行通信。但是,由于微處理器性能被提高而且計算機系統(tǒng)使用沿著同一FSB互連的多個處理器,所以FSB已經(jīng)成為性能瓶頸。
解決這個問題的一個方法是在多處理器系統(tǒng)中的各個處理器之間使用點到點(PtP)鏈路。PtP鏈路一般被實現(xiàn)為多處理器網(wǎng)絡中各個處理器的專用總線蹤跡(trace)。雖然典型PtP鏈路比FSB提供更大的吞吐率,但是PtP鏈路的延遲可能比FSB的延遲更大。
PtP的延遲尤其可能會影響微處理器執(zhí)行存儲操作的性能,特別是在其存儲操作之間要求強有序的微處理器體系結(jié)構(gòu)中更是這樣。例如,因為要求強有序,所以在后來的存儲操作可以被處理器發(fā)射之前,先前發(fā)射的存儲操作對于系統(tǒng)中的其它總線代理來說一般必須是可訪問的,或至少是可檢測到的。操作(例如存儲、載入或其它操作)對于計算機系統(tǒng)中的其它總線代理的可檢測性通常被稱為該操作的“全局觀測”。一般地,微處理器操作或指令僅在它們已經(jīng)被存儲到緩存或其它存儲器后才變?yōu)榭杀蝗钟^測,系統(tǒng)中的其它代理可以在所述緩存或其它存儲器中檢測到所述操作或指令的存在。
在強有序微處理器體系結(jié)構(gòu)中的存儲操作中,直到先前的存儲操作已經(jīng)被全局觀測,典型的微處理器才從存儲緩沖器,或者其它存儲序列結(jié)構(gòu),或者在某些情況下從處理器執(zhí)行單元發(fā)射存儲操作。例如專有讀取(RFO)操作的一個操作會先于典型微處理器體系結(jié)構(gòu)中的存儲操作的發(fā)射,以獲得對將要存儲該存儲操作的緩存或其它存儲區(qū)域線的排他性控制,從而使該存儲操作可以被全局觀測。但是,在典型微處理器體系結(jié)構(gòu)中,直到先前的存儲操作被全局觀測,RFO操作才被發(fā)射。
圖1示出了用于在強有序微處理器體系結(jié)構(gòu)中處理被發(fā)射的存儲操作的現(xiàn)有技術(shù)的緩存體系結(jié)構(gòu)。該存儲緩沖器包括將要通過緩存線填充緩沖器(LFB)而被分別存儲在第一級(L1)緩存的地址X和Y中的數(shù)據(jù)X1和Y1。但是,在典型的現(xiàn)有技術(shù)的體系結(jié)構(gòu)中,直到L1緩存中的數(shù)據(jù)X0和地址X已經(jīng)被全局觀測,存儲數(shù)據(jù)X1、Y1和它們相應的RFO操作才可以被發(fā)射。
在現(xiàn)有技術(shù)體系結(jié)構(gòu)中,由于存儲操作發(fā)射以及最終的指令退休中的延遲,微處理器和其所在的系統(tǒng)的整體性能可能會受到損害。另外,隨著PtP多處理器系統(tǒng)變得更加普遍,這個問題可能被惡化,因為系統(tǒng)中的每個處理器都可能依賴于由系統(tǒng)中的其它存儲器存儲的數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明的目的通過實現(xiàn)RFO操作的亂序發(fā)射和更有效地使用存儲緩沖器延遲周期來改善微處理器的存儲性能。
本發(fā)明提供了一種處理器,包括用于存儲數(shù)據(jù)的第一存儲單元;和耦合到所述第一存儲單元的第二存儲單元,用于僅在所述數(shù)據(jù)變?yōu)榭杀豢偩€代理檢測到后存儲所述數(shù)據(jù)。
本發(fā)明提供了一種具有強有序指令體系結(jié)構(gòu)的處理器,包括存儲緩沖器,不論先于第二數(shù)據(jù)值從所述存儲緩沖器中被讀取的第一數(shù)據(jù)值是否已經(jīng)變?yōu)榭杀蝗钟^測,所述第二數(shù)據(jù)值都從所述存儲緩沖器中被讀取并被存儲到緩存中。
本發(fā)明提供了一種計算機系統(tǒng),包括存儲第一指令和第二指令的存儲單元,所述第一指令用于在至少一個總線代理中存儲第一數(shù)據(jù)值,所述第二指令用于當所述第一數(shù)據(jù)值被存儲在至少一個總線代理后,在至少一個總線代理中存儲第二數(shù)據(jù)值;第一級緩存和線注入緩沖器,用于在所述第一或所述第二數(shù)據(jù)值可被至少一個總線代理檢測之前同時存儲所述第一和第二數(shù)據(jù)值;和第一總線代理,用于在所述第一總線代理能夠在所述第一級緩存或線注入緩沖器中檢測到所述第一和第二數(shù)據(jù)值中的之一或二者之前檢測所述第一和第二數(shù)據(jù)值中的之一或二者。
本發(fā)明提供了一種裝置,包括用于分配全局觀測存儲緩沖器中的條目的分配邏輯,以在所述數(shù)據(jù)對應的存儲操作變?yōu)榉峭茰y性的之后、所述數(shù)據(jù)從存儲緩沖器被讀取之前,存儲可被全局觀測的數(shù)據(jù);耦合到所述全局觀測存儲緩沖器的緩存,用于在所述數(shù)據(jù)變?yōu)榭杀蝗钟^測前存儲所述數(shù)據(jù);和專有讀取邏輯,用于在所述數(shù)據(jù)被存儲在所述緩存中之前獲得對所述緩存中的一條線的排他性所有權(quán)。
本發(fā)明還提供了一種用于發(fā)射強有序存儲器操作的方法,包括發(fā)射第一存儲操作;在存儲緩沖器中存儲與所述第一存儲操作相關(guān)聯(lián)的第一數(shù)據(jù);發(fā)射第二存儲操作;在所述存儲緩沖器中存儲與所述第二存儲操作相關(guān)聯(lián)的第二數(shù)據(jù);在存儲單元中存儲所述第一數(shù)據(jù);和在所述第一數(shù)據(jù)被存儲在所述存儲單元中且不可被全局觀測的期間,在所述存儲單元中存儲所述第二數(shù)據(jù)。
通過附圖,以舉例而非限制的方式來圖示本發(fā)明的實施例,其中相似的標號表明類似的元件,并且圖1示出了用于在強有序微處理器體系結(jié)構(gòu)中處理被發(fā)射的存儲操作的現(xiàn)有技術(shù)的緩存體系結(jié)構(gòu)。
圖2示出了其中可以使用本發(fā)明的至少一個實施例的計算機系統(tǒng)。
圖3示出了其中可以使用本發(fā)明的至少一個實施例的總線代理。
圖4示出了本發(fā)明的一個實施例,其中全局觀測存儲緩沖器(GoSB)被用來跟蹤存儲操作并存儲已經(jīng)變?yōu)榭杀蝗钟^測的相應數(shù)據(jù)值。
圖5示出了本發(fā)明的一個實施例,其中GoSB索引和GoSB有效字段沒有被存儲在第一級(L1)緩存或線填充緩沖器(LFB)條目中,相反地,GoSB索引字段被存儲在存儲緩沖器的條目中。
圖6的流程圖示出了與本發(fā)明的至少一個實施例相關(guān)聯(lián)的操作。
具體實施例方式
本發(fā)明的實施例涉及微處理器體系結(jié)構(gòu)。更具體地說,本發(fā)明的實施例涉及通過實現(xiàn)專有讀取的亂序發(fā)射和更有效地使用存儲緩沖器延遲周期來提高微處理器中的存儲性能的方法和裝置。
為了在提高存儲緩沖器效率的同時輔助亂序RFO操作,本發(fā)明的至少一個實施例涉及使用例如全局觀測存儲緩沖器(GoSB)的存儲介質(zhì),以跟蹤已經(jīng)變?yōu)榭杀蝗钟^測的存儲數(shù)據(jù)。在GoSB中跟蹤可被全局觀測的數(shù)據(jù)使得存儲數(shù)據(jù)能夠被存儲在可監(jiān)聽的存儲設備(例如第一級(L1)緩存和線填充緩沖器(LFB))中,而不考慮先前的存儲數(shù)據(jù)是否已經(jīng)被全局觀測,于是提高了微處理器中的存儲數(shù)據(jù)的吞吐率和存儲操作的性能。
圖2示出了可以與本發(fā)明的至少一個實施例結(jié)合起來使用的計算機系統(tǒng)。處理器205從緩存210和主存儲器215訪問數(shù)據(jù)。本發(fā)明的一個實施例206的位置在圖2的處理器內(nèi)部被示出。但是,本發(fā)明的實施例可以在系統(tǒng)中的其它設備(例如獨立的總線代理)中實現(xiàn),或者分布在整個網(wǎng)絡中。主存儲器可以是動態(tài)隨機訪問存儲器(DRAM)、硬盤驅(qū)動器(HDD)220或包含各種存儲設備和技術(shù)的遠離所述計算機系統(tǒng)的存儲源230。所述緩存可以位于所述處理器中或其附近,例如在處理器本地總線207上。另外,所述緩存可以由速度較快的存儲單元(例如六電晶體(6T)單元或其它具有近似等同或更快訪問速度的存儲單元)組成。
圖3示出了其中可以使用本發(fā)明的至少一個實施例的總線代理。具體地說,圖3所示的微處理器300包括本發(fā)明的至少一個實施例305的一個或更多組成部分。在圖3的微處理器中還示出了執(zhí)行單元310,其在微處理器中執(zhí)行例如存儲操作的操作。所述執(zhí)行單元的精確或相對位置以及本發(fā)明的實施例的組成部分并不限于圖3所述。
圖4示出了本發(fā)明的一個實施例,其中GoSB 401被用于跟蹤存儲操作并存儲已經(jīng)變?yōu)槿挚捎^測的相應數(shù)據(jù)。圖4的GoSB的每個條目405包括用于條目引用的索引值字段406、用于指示所述存儲操作的目標地址的地址值字段407、用于存儲與所述存儲操作相關(guān)聯(lián)的數(shù)據(jù)的數(shù)據(jù)值字段408、用于計算還未變?yōu)榭杀蝗钟^測的存儲操作的數(shù)目的計數(shù)字段409,以及用于指示相應于可被全局觀測的存儲操作的數(shù)據(jù)是否可用、且是否被存儲在GoSB的數(shù)據(jù)字段中的有效位字段410。
圖4還示出了未提交(non-committed)存儲隊列(NcSQ)415。NcSQ存儲相應于已經(jīng)被存儲在線填充緩沖器(LFB)420或第一級緩存425中,但是還未變?yōu)榭杀蝗钟^測的存儲操作的數(shù)據(jù)和地址信息。在圖4所示的實施例中,NcSQ是先進先出(FIFO)隊列,其所具有的條目包含用于存儲相應于特定存儲操作的地址信息的地址字段416、用于存儲相應于所述存儲操作的數(shù)據(jù)的數(shù)據(jù)字段417,以及用于存儲用于引用GoSB中的相應條目的索引信息的GoSB索引字段418。
在圖4所示的實施例中,從存儲緩沖器430發(fā)射、傳輸或讀取存儲操作,在NcSQ中存儲存儲操作,L1緩存或LFB和相應的條目在GoSB中被分配。在存儲數(shù)據(jù)變?yōu)榭杀蝗钟^測后,所述數(shù)據(jù)從NcSQ被存儲到相應的GoSB條目中。
當相應于特定目標地址的存儲數(shù)據(jù)被存儲在NcSQ中時,GoSB的相應計數(shù)字段被增加。當存儲操作變?yōu)榭杀蝗钟^測時,相應的存儲地址和數(shù)據(jù)從NcSQ被刪除,而且GoSB中的相應計數(shù)字段被減少。在GoSB計數(shù)字段到達0后,相應的GoSB條目可以被釋放并被重新分配給新的存儲操作。
在圖4所示的本發(fā)明的實施例中,一個或更多例如微處理器的總線代理可以對L1緩存和LFB中的每一個實施監(jiān)聽以獲得存儲數(shù)據(jù)。在L1緩存和LFB的每個條目中都有GoSB索引字段426和GoSB有效字段427。GoSB索引字段向監(jiān)聽代理表明GoSB中相應存儲數(shù)據(jù)的位置。GoSB有效字段表明相應的GoSB索引是否有效,以及它是否還不可被全局觀測到。GoSB還可以被總線代理實施監(jiān)聽以獲得所述數(shù)據(jù),并且提供數(shù)據(jù)以供監(jiān)聽代理使用,或指向供監(jiān)聽代理使用的最有效數(shù)據(jù)。如果L1緩存或LFB和GoSB都包含被請求的數(shù)據(jù),那么GoSB向發(fā)出請求的代理提供所述數(shù)據(jù)。
在圖5所示的本發(fā)明的實施例中,GoSB索引和GoSB有效字段沒有被存儲在L1緩存和LFB條目中,相反地,GoSB索引501字段被存儲在存儲緩沖器的條目中。在圖5所示的實施例中,只要存儲操作變?yōu)榉峭茰y性的或“高級的”,GoSB條目就可以被分配給存儲操作,而無需等待直到存儲操作從存儲緩沖器被讀取、傳輸或發(fā)射到LFB或L1緩存。
可替換地,在相應存儲緩沖器字段被訪問時,通過使用邏輯來指向特定的GoSB索引字段,GoSB索引字段501可以邏輯上與存儲緩沖器相關(guān)聯(lián),而物理上與所述存儲緩沖器并不位于同一結(jié)構(gòu)中。在上述任何一種情況下,與存儲緩沖器的各條目相關(guān)聯(lián)的GoSB索引字段允許監(jiān)聽代理及早在GoSB中定位存儲數(shù)據(jù),以使得只要數(shù)據(jù)在GoSB中變?yōu)榭杀蝗钟^測,監(jiān)聽代理就可以獲取該數(shù)據(jù)。在圖5所示的實施例中,可以在相應存儲數(shù)據(jù)被存儲在存儲緩沖器之前發(fā)射專有讀取(RFO)操作。圖5所述的實施例的其它方面與已經(jīng)參照圖4所述的本發(fā)明的實施例討論過的那些方面類似。
圖6的流程圖示出了與本發(fā)明的至少一個實施例相關(guān)聯(lián)的操作。參照圖6,在操作601,從微處理器執(zhí)行邏輯發(fā)射第一存儲操作,并且相應數(shù)據(jù)被存儲在存儲緩沖器條目中。在操作602,在從存儲緩沖器發(fā)射第一存儲操作之前或之后,分配GoSB條目并執(zhí)行RFO操作,以獲得對GoSB以及L1緩存或LFB中的一條線的排他性所有權(quán)。然后,第一存儲操作數(shù)據(jù)被存儲在NcSQ中以及LFB或L1緩存條目中。在操作603,相應的GoSB計數(shù)器被增加。
在操作604發(fā)射第二存儲操作,并且在存儲緩沖器條目中存儲相應數(shù)據(jù)。在操作605,在從存儲緩沖器發(fā)射第二存儲操作之前或之后,分配GoSB條目并執(zhí)行RFO操作,以獲得對GoSB以及L1緩存或LFB中的一條線的排他性所有權(quán)。然后,第二存儲操作被移動到NcSQ中以及LFB或L1緩存條目中,并且在操作606,相應的GoSB計數(shù)器被增加。
在本發(fā)明的至少一個實施例中,第一和第二存儲操作數(shù)據(jù)在同一時期駐留在LFB和L1緩存中。在操作607,如果在第一存儲操作的數(shù)據(jù)為可被全局觀測前,相應于第二存儲的RFO數(shù)據(jù)從L1緩存或LFB返回,那么第二存儲操作就會被并入L1和/或LFB的合適條目中,而非GoSB的相應條目中。但是,在操作608,如果在第二存儲操作的RFO數(shù)據(jù)從L1緩存或LFB被返回之前,第一存儲操作的數(shù)據(jù)變?yōu)榭杀蝗钟^測,那么第二存儲操作的數(shù)據(jù)就會被并入GoSB的合適條目。計數(shù)器被增加或減少,以表明與在GoSB中分配的特定存儲操作相關(guān)聯(lián)的尚未變?yōu)榛蛞呀?jīng)變?yōu)榭杀蝗钟^測的數(shù)據(jù)的數(shù)量。
可以用多種方式實現(xiàn)這里圖示的本發(fā)明的任何或全部實施例,包括而不限于使用互補金屬氧化物半導體(CMOS)電路設備的邏輯(硬件);存儲在存儲介質(zhì)中的指令(軟件),當其被例如微處理器的機器執(zhí)行時,使得該微處理器執(zhí)行此處所描述的操作;或者是硬件和軟件的組合。這里引用的“微處理器”或“處理器”是指任何這樣的機器或設備(包括CMOS設備),其在接收到一個或更多輸入信號或指令時能夠執(zhí)行操作。
雖然本發(fā)明是結(jié)合圖示的實施例進行描述的,但是,本描述不應當被解釋為限制性的。對于本發(fā)明所屬領(lǐng)域的技術(shù)人員來說顯而易見的對圖示實施例以及其它實施例的各種修改被視為落在本發(fā)明的精神和范圍中。
權(quán)利要求
1.一種處理器,包括用于存儲數(shù)據(jù)的第一存儲單元;和耦合到所述第一存儲單元的第二存儲單元,用于僅在所述數(shù)據(jù)變?yōu)榭杀豢偩€代理檢測到后存儲所述數(shù)據(jù)。
2.如權(quán)利要求1所述的處理器,還包括一個指示器,用于向所述第二存儲單元表明所述數(shù)據(jù)是否已經(jīng)存儲在所述第一存儲單元中。
3.如權(quán)利要求1所述的處理器,其中所述第一存儲單元是線填充緩沖器。
4.如權(quán)利要求1所述的處理器,其中所述第一存儲單元是第一級緩存。
5.如權(quán)利要求1所述的處理器,其中所述第一存儲單元是用于存儲將要被存儲在總線代理中的數(shù)據(jù)的存儲緩沖器。
6.如權(quán)利要求2所述的處理器,其中所述指示器是用于存儲不能被總線代理檢測到的數(shù)據(jù)的先進先出隊列。
7.如權(quán)利要求6所述的處理器,其中所述第二存儲單元是包括了計數(shù)器的緩沖器,所述計數(shù)器用于計算所述先進先出隊列中條目的數(shù)目。
8.一種具有強有序指令體系結(jié)構(gòu)的處理器,包括存儲緩沖器,不論先于第二數(shù)據(jù)值從所述存儲緩沖器中被讀取的第一數(shù)據(jù)值是否已經(jīng)變?yōu)榭杀蝗钟^測,所述第二數(shù)據(jù)值都從所述存儲緩沖器中被讀取并被存儲到緩存中。
9.如權(quán)利要求8所述的處理器,還包括全局觀測存儲緩沖器,用于當所述第一和第二數(shù)據(jù)值變?yōu)榭杀蝗钟^測之后,僅存儲所述第一和第二數(shù)據(jù)值。
10.如權(quán)利要求9所述的處理器,還包括未提交存儲隊列,用于存儲在所述緩存中存儲的但尚未被全局觀測到的數(shù)據(jù)。
11.如權(quán)利要求10所述的處理器,其中所述全局觀測存儲緩沖器包括相應于存儲在所述未提交存儲隊列中的數(shù)據(jù)數(shù)量的計數(shù)值。
12.如權(quán)利要求9所述的處理器,其中所述全局觀測存儲緩沖器包括對應于每個將要被存儲在所述全局觀測存儲緩沖器中的數(shù)據(jù)值的索引字段,以及相應于將要被存儲在所述全局觀測存儲緩沖器中的數(shù)據(jù)值的寫入位置的地址字段。
13.如權(quán)利要求10所述的處理器,其中所述未提交存儲隊列包括索引字段,用于存儲指示所述全局觀測存儲緩沖器中的位置的索引值,所述位置將在相應的數(shù)據(jù)值變?yōu)榭杀蝗钟^測后用于存儲該數(shù)據(jù)值。
14.如權(quán)利要求13所述的處理器,其中所述緩存包括第一級緩存。
15.如權(quán)利要求13所述的處理器,其中所述緩存包括線填充緩沖器,用于存儲將要被寫入第一級緩存的數(shù)據(jù)。
16.如權(quán)利要求13所述的處理器,其中當數(shù)據(jù)被全局觀測到以后,所述數(shù)據(jù)從所述未提交存儲隊列中刪除。
17.如權(quán)利要求15所述的處理器,其中在所述第一級緩存或線填充緩沖器向監(jiān)聽代理提供數(shù)據(jù)值之前,所述全局觀測存儲緩沖器向所述監(jiān)聽代理提供所述數(shù)據(jù)值。
18.一種計算機系統(tǒng),包括存儲第一指令和第二指令的存儲單元,所述第一指令用于在至少一個總線代理中存儲第一數(shù)據(jù)值,所述第二指令用于當所述第一數(shù)據(jù)值被存儲在至少一個總線代理后,在至少一個總線代理中存儲第二數(shù)據(jù)值;第一級緩存和線填充緩沖器,用于在所述第一數(shù)據(jù)值和所述第二數(shù)據(jù)值中的任何一個可被至少一個總線代理檢測到之前同時存儲所述第一和第二數(shù)據(jù)值;和第一總線代理,用于在所述第一總線代理能夠在所述第一級緩存或線填充緩沖器中檢測到所述第一和第二數(shù)據(jù)值中的之一或二者之前,檢測所述第一和第二數(shù)據(jù)值中的之一或二者。
19.如權(quán)利要求18所述的計算機系統(tǒng),還包括用于在所述第一和第二數(shù)據(jù)值變?yōu)榭杀恢辽僖粋€總線代理檢測到之后存儲所述第一和第二數(shù)據(jù)值的存儲結(jié)構(gòu)。
20.如權(quán)利要求18所述的計算機系統(tǒng),其中所述第一總線代理將監(jiān)聽所述第一級緩存和線填充緩沖器中的之一或二者,以獲得所述第一和第二數(shù)據(jù)值中的之一或二者。
21.如權(quán)利要求19所述的計算機系統(tǒng),其中,所述第一和第二數(shù)據(jù)值按照程序順序被存儲在至少一個總線代理中。
22.如權(quán)利要求21所述的計算機系統(tǒng),其中,所述第一和第二指令按照程序順序被存儲在所述存儲單元中。
23.如權(quán)利要求22所述的計算機系統(tǒng),其中所述第一級緩存和線填充緩沖器中的之一或二者通過點到點總線被耦合到所述第一總線代理。
24.如權(quán)利要求22所述的計算機系統(tǒng),其中所述存儲單元是動態(tài)隨機訪問存儲器。
25.如權(quán)利要求24所述的計算機系統(tǒng),其中所述第一級緩存和線填充緩沖器中的之一或二者位于微處理器中。
26.如權(quán)利要求25所述的計算機系統(tǒng),其中所述第一總線代理包括從包含微處理器、動態(tài)隨機訪問存儲器、磁存儲介質(zhì)、總線仲裁設備和無線存儲介質(zhì)的列表中選擇的裝置。
27.一種裝置,包括分配邏輯,用于分配全局觀測存儲緩沖器中的條目,以在所述數(shù)據(jù)對應的存儲操作變?yōu)榉峭茰y性的之后,所述數(shù)據(jù)從存儲緩沖器被讀取之前,存儲可被全局觀測的數(shù)據(jù);耦合到所述全局觀測存儲緩沖器的緩存,用于在所述數(shù)據(jù)變?yōu)榭杀蝗钟^測前存儲所述數(shù)據(jù);和專有讀取邏輯,用于在所述數(shù)據(jù)被存儲在所述緩存中之前獲得對所述緩存中的一條線的排他性所有權(quán)。
28.如權(quán)利要求27所述的裝置,其中所述專有讀取邏輯將在所述全局觀測存儲緩沖器的條目被分配前,獲得對緩存中的所述線的排他性所有權(quán)。
29.如權(quán)利要求28所述的裝置,其中所述存儲緩沖器包括用于表明所述全局觀測存儲緩沖器中被分配的條目的位置的索引。
30.如權(quán)利要求29所述的裝置,其中如果所述數(shù)據(jù)變?yōu)榭杀蝗钟^測的,那么所述全局觀測存儲緩沖器中被分配的條目將被重新分配。
31.一種用于發(fā)射強有序存儲器操作的方法,包括發(fā)射第一存儲操作;在存儲緩沖器中存儲與所述第一存儲操作相關(guān)聯(lián)的第一數(shù)據(jù);發(fā)射第二存儲操作;在所述存儲緩沖器中存儲與所述第二存儲操作相關(guān)聯(lián)的第二數(shù)據(jù);在存儲單元中存儲所述第一數(shù)據(jù);以及在所述第一數(shù)據(jù)被存儲在所述存儲單元中且不可被全局觀測的期間,在所述存儲單元中存儲所述第二數(shù)據(jù)。
32.如權(quán)利要求31所述的方法,還包括發(fā)射專有讀取操作,以在所述第一和第二數(shù)據(jù)其中之一被存儲在所述存儲單元中之前,獲得對所述存儲單元中的一條線的排他性控制。
33.如權(quán)利要求32所述的方法,還包括在所述第一或第二數(shù)據(jù)變?yōu)榭杀蝗钟^測后,分配全局觀測存儲緩沖器中的條目。
34.如權(quán)利要求33所述的方法,還包括更新計數(shù)器,以反映存儲在所述存儲單元中但不能被全局觀測的、對應于存儲地址位置的數(shù)據(jù)值的數(shù)量。
35.如權(quán)利要求34所述的方法,其中,在所述計數(shù)器等于0后,所述條目被重新分配以存儲其它數(shù)據(jù)。
36.如權(quán)利要求35所述的方法,還包括更新未提交存儲隊列,以表明數(shù)據(jù)值的數(shù)量。
37.如權(quán)利要求36所述的方法,其中所述存儲單元是第一級緩存。
38.如權(quán)利要求36所述的方法,其中所述存儲單元是線填充緩沖器。
全文摘要
本發(fā)明公開了一種存儲操作的體系結(jié)構(gòu),其改善了存儲操作延遲,并提高了專有讀取(RFO)的吞吐率。本發(fā)明的實施例涉及通過實現(xiàn)RFO操作的亂序發(fā)射和更有效地使用存儲緩沖器延遲周期來改善微處理器的存儲性能的方法和裝置。
文檔編號G06F9/30GK1677341SQ20051000513
公開日2005年10月5日 申請日期2005年1月28日 優(yōu)先權(quán)日2004年3月30日
發(fā)明者弗拉基米爾·彭特科維克西, 岑玲, 維韋克·加爾格, 迪普·布什, 戴維·趙 申請人:英特爾公司