專利名稱:用于使用分布式高速緩存器的方法和設(shè)備的制作方法
背景技術(shù):
本發(fā)明涉及一種方法和設(shè)備,用于使用分布式高速緩存器(例如,處于超大規(guī)模集成電路(VLSI)設(shè)備中)。更具體來(lái)講,本發(fā)明涉及一種可擴(kuò)充的方法,該方法用于通過(guò)實(shí)現(xiàn)分布式高速緩存器來(lái)改善高速緩存器的帶寬和等待時(shí)間性能。
正如現(xiàn)有技術(shù)中所公知的,計(jì)算機(jī)系統(tǒng)中的系統(tǒng)高速緩存器用于增強(qiáng)現(xiàn)代計(jì)算機(jī)的系統(tǒng)性能。例如,高速緩存器可以通過(guò)保持最近存取的存儲(chǔ)單元、以備它們被再次需要,在處理器和相對(duì)慢速的系統(tǒng)存儲(chǔ)器之間維護(hù)數(shù)據(jù)。高速緩存器的存在使得處理器可以利用快速存取的高速緩存器中的數(shù)據(jù),來(lái)連續(xù)地執(zhí)行操作。
從結(jié)構(gòu)上來(lái)講,系統(tǒng)高速緩存器被設(shè)計(jì)為“單片式”單元。為了向處理器核心給出來(lái)自多條流水線的同步讀寫訪問(wèn),可以為單片式高速緩存器設(shè)備添加多個(gè)端口。然而,使用具有幾個(gè)端口的單片式高速緩存器設(shè)備(例如,以兩端口的單片式高速緩存器的方式),存在幾種在結(jié)構(gòu)以及實(shí)現(xiàn)方式方面的不利影響。對(duì)于兩端口單片式高速緩存器設(shè)備的當(dāng)前解決方案可能包括,對(duì)于來(lái)自兩個(gè)端口的請(qǐng)求、為對(duì)這些請(qǐng)求進(jìn)行的服務(wù)進(jìn)行復(fù)用,或者提供兩組地址、命令和數(shù)據(jù)端口。由于必須在多個(gè)端口之間共享高速緩存器資源,前一方案、也就是進(jìn)行復(fù)用,限制了高速緩存性能。對(duì)來(lái)自兩個(gè)端口的請(qǐng)求進(jìn)行服務(wù),可能會(huì)使有效的事務(wù)帶寬減半,并且使最不利情況下的事務(wù)服務(wù)等待時(shí)間加倍。后一方案、也就是為每一客戶設(shè)備提供獨(dú)立的讀/寫端口,存在不可擴(kuò)充的固有問(wèn)題。在需要時(shí)增加額外的端口組,例如提供五組讀和寫端口,可能要求五個(gè)讀端口和五個(gè)寫端口。在單片式高速緩存器設(shè)備上,五端口高速緩存器可能顯著地增加小片尺寸,而使得實(shí)施變得不切實(shí)際。此外,為了提供單一端口高速緩存器設(shè)備的有效帶寬,新的高速緩存器可能需要支持五倍于原來(lái)的高速緩存器設(shè)備的帶寬。當(dāng)前單片式高速緩存器設(shè)備對(duì)于多端口來(lái)講并不是最佳化的,也不是可獲得的最高效的實(shí)現(xiàn)方式。
正如現(xiàn)有技術(shù)中所公知的,已經(jīng)在多處理器計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中使用了多高速緩存器系統(tǒng)。實(shí)施了一致性協(xié)議,用于確保每一處理器僅僅從高速緩存器中檢索數(shù)據(jù)的最新版本。換言之,高速緩存器一致性是多個(gè)高速緩存器中的數(shù)據(jù)的同步化,以致通過(guò)任一高速緩存器讀一個(gè)存儲(chǔ)單元,都將返回經(jīng)由任何其他高速緩存器寫入該存儲(chǔ)單元的最新數(shù)據(jù)??梢詾楦咚倬彺鏀?shù)據(jù)增添MESI(修改-排他-共享-無(wú)效)一致性協(xié)議數(shù)據(jù),以便對(duì)在各個(gè)高速緩存器內(nèi)的、同一數(shù)據(jù)的多個(gè)拷貝進(jìn)行仲裁和同步化。因而,處理器通常被稱為“可高速緩存的”設(shè)備。
然而,輸入/輸出部件(I/O部件)通常是不可高速緩存的設(shè)備,例如與外設(shè)部件互連總線(PCI規(guī)范,2.1版本)耦合的那些輸入/輸出部件。也就是說(shuō),它們通常沒有實(shí)施由處理器使用的相同高速緩存器一致性協(xié)議。通常,I/O部件經(jīng)由直接存儲(chǔ)器存取(DMA)操作,從存儲(chǔ)器或者可高速緩存的設(shè)備中檢索數(shù)據(jù)??梢詫/O設(shè)備作為各個(gè)I/O橋接部件之間的連接點(diǎn)來(lái)提供,I/O部件連接到該I/O設(shè)備,并最終連接到處理器。
輸入/輸出(I/O)設(shè)備還可以用作高速緩存I/O設(shè)備。也就是說(shuō),該I/O設(shè)備包括用于數(shù)據(jù)的、單一的單片式高速緩存資源。因此,由于一個(gè)I/O設(shè)備通常與幾個(gè)客戶端口耦合,所以單片式I/O高速緩存器設(shè)備將遭受與先前所論及的那些相同的、結(jié)構(gòu)和性能方面的不利影響。當(dāng)前I/O高速緩存器設(shè)備設(shè)計(jì)不是用于高性能系統(tǒng)的有效實(shí)現(xiàn)方式。
鑒于上述情況,需要一種方法和設(shè)備,用于使用VLSI設(shè)備中的分布式高速緩存器。
附圖概述
圖1是采用本發(fā)明的一個(gè)實(shí)施例的處理器高速緩存器系統(tǒng)的一部分的方框圖。
圖2是示出采用本發(fā)明的一個(gè)實(shí)施例的輸入/輸出高速緩存器設(shè)備的方框圖。
圖3是示出采用本發(fā)明的一個(gè)實(shí)施例的入站一致性讀事務(wù)的程序框圖。
圖4是示出采用本發(fā)明的一個(gè)實(shí)施例的入站一致性寫事務(wù)的程序框圖。
附圖的詳細(xì)說(shuō)明參見圖1,示出了采用本發(fā)明的一個(gè)實(shí)施例的處理器高速緩存器系統(tǒng)的方框圖。在該實(shí)施例中,CPU125是從高速緩存器-一致性CPU設(shè)備100請(qǐng)求數(shù)據(jù)的處理器。所述高速緩存器-一致性CPU設(shè)備100通過(guò)對(duì)分布式高速緩存器110、115和120內(nèi)的數(shù)據(jù)進(jìn)行仲裁和同步化,實(shí)現(xiàn)一致性。CPU端口部件130、135和140例如可以包括系統(tǒng)RAM。然而,可以將用于CPU端口的任何適當(dāng)?shù)牟考米鞫丝诓考?30、135和140。在該范例中,高速緩存器-一致性CPU設(shè)備100是一芯片組的一部分,該芯片組提供PCI總線,用于與I/O部件(下文中論及)接口以及與系統(tǒng)存儲(chǔ)器和所述CPU接口。
所述高速緩存器-一致性CPU設(shè)備100包括一致性引擎105,以及一個(gè)或多個(gè)讀和寫高速緩存器110、115和120。在高速緩存器-一致性CPU設(shè)備100的這一實(shí)施例中,一致性引擎105包含一個(gè)目錄,用于對(duì)分布式高速緩存器110、115和120內(nèi)的所有數(shù)據(jù)進(jìn)行索引。所述一致性引擎105可以例如使用修改-排他-共享-無(wú)效(MESI)一致性協(xié)議,利用行狀態(tài)MESI標(biāo)記符對(duì)數(shù)據(jù)進(jìn)行標(biāo)記“M”狀態(tài)(修改),“E”狀態(tài)(排他),“S”狀態(tài)(共享),或者“I”狀態(tài)(無(wú)效)。來(lái)自任一CPU端口部件130、135或者140的高速緩存器的每一新請(qǐng)求都被對(duì)照一致性引擎105中的目錄加以校驗(yàn)。如果請(qǐng)求不影響在任何其他高速緩存器中查找到的任何數(shù)據(jù),則處理該事務(wù)。使用MESI標(biāo)記符使得一致性引擎105可以在對(duì)同一數(shù)據(jù)進(jìn)行讀取和寫入的諸高速緩存器之間進(jìn)行快速仲裁,同時(shí)保持所有高速緩存器之間的所有數(shù)據(jù)被同步化和追蹤。
高速緩存器-一致性CPU設(shè)備100并沒有采用單一的單片式高速緩存器,而是從物理上將高速緩存資源劃分為更小的、更易實(shí)現(xiàn)的部分。高速緩存器110、115和120被分布到該設(shè)備上的所有端口,以致每一高速緩存器與一個(gè)端口部件相關(guān)聯(lián)。依照本發(fā)明的一個(gè)實(shí)施例,高速緩存器110物理上位于與被服務(wù)的端口部件130鄰近的設(shè)備上。類似地,高速緩存器115與端口部件135位置接近,高速緩存器120與端口部件140位置接近,從而減少了事務(wù)數(shù)據(jù)請(qǐng)求的等待時(shí)間。該方法將用于“高速緩存器命中”的等待時(shí)間最小化,并且提高了性能。高速緩存器命中是指在無(wú)需使用主(或者另一)存儲(chǔ)器的情況下、可以被該高速緩存器滿足的、對(duì)于從存儲(chǔ)器進(jìn)行讀取的請(qǐng)求。該方案對(duì)于通過(guò)端口部件130、135和140預(yù)取的數(shù)據(jù)格外有用。
此外,所述分布式高速緩存器結(jié)構(gòu)改善了總帶寬,使得每一端口部件130、135和140能夠?yàn)槊恳蛔x/寫高速緩存器110、115和120使用整個(gè)事務(wù)帶寬。依據(jù)本發(fā)明的這一實(shí)施例的分布式高速緩存器還在可擴(kuò)充設(shè)計(jì)方面作出了改進(jìn)。在使用單片式高速緩存器時(shí),端口數(shù)目的增加可能導(dǎo)致CPU設(shè)備在設(shè)計(jì)方面幾何上更加復(fù)雜(例如四個(gè)端口的CPU設(shè)備使用單片式高速緩存器將比一個(gè)端口的CPU設(shè)備復(fù)雜十六倍)。利用本發(fā)明的這一實(shí)施例,通過(guò)為增加的端口增加一個(gè)另外的高速緩存器、并且添加與一致性引擎的適當(dāng)聯(lián)系,另一端口的增加將被更容易地設(shè)計(jì)到CPU設(shè)備中。因此,分布式高速緩存器本質(zhì)上是更可擴(kuò)充的。
參見圖2,示出了采用本發(fā)明的一個(gè)實(shí)施例的輸入/輸出高速緩存器設(shè)備的方框圖。在該實(shí)施例中,高速緩存器-一致性I/O設(shè)備200被連接到一致性主機(jī),在這里一致性主機(jī)是前端總線225。所述高速緩存器-一致性I/O設(shè)備200通過(guò)對(duì)分布式高速緩存器210、215和220內(nèi)的數(shù)據(jù)進(jìn)行仲裁和同步化,實(shí)現(xiàn)一致性。用于改善當(dāng)前系統(tǒng)的進(jìn)一步的實(shí)現(xiàn)方式包括對(duì)現(xiàn)有的事務(wù)緩沖器進(jìn)行調(diào)整,以便形成高速緩存器210、215和220。緩沖器通常存在于用于外部系統(tǒng)和輸入/輸出接口的內(nèi)部協(xié)議引擎中。這些緩沖器用于將外部事務(wù)請(qǐng)求分段和重新組合為更適于內(nèi)部協(xié)議邏輯的尺寸。通過(guò)為這些之前已有的緩沖器補(bǔ)充一致性邏輯和內(nèi)容可尋址存儲(chǔ)器、用于追蹤和維護(hù)一致性信息,這些緩沖器可以被有效地用作在分布式高速緩存器系統(tǒng)內(nèi)實(shí)現(xiàn)的MESI一致性高速緩存器210、215和220。I/O部件230、235和240例如可以包括磁盤驅(qū)動(dòng)器。然而,可以將用于I/O端口的任何適當(dāng)?shù)牟考蛟O(shè)備用作I/O部件230、235和240。
所述高速緩存器-一致性I/O設(shè)備200包括一致性引擎205,以及一個(gè)或多個(gè)讀和寫高速緩存器210、215和220。在高速緩存器-一致性I/O設(shè)備200的這一實(shí)施例中,一致性引擎205包括一個(gè)目錄,用于對(duì)分布式高速緩存器210、215和220內(nèi)的所有數(shù)據(jù)進(jìn)行索引。所述一致性引擎205例如可以使用MESI一致性協(xié)議,利用行狀態(tài)MESI標(biāo)記符對(duì)數(shù)據(jù)進(jìn)行標(biāo)記M-狀態(tài),E-狀態(tài),S-狀態(tài),或者I-狀態(tài)。來(lái)自任一所述I/O部件230、235或者240的高速緩存器的每一新請(qǐng)求都被對(duì)照一致性引擎205中的目錄加以校驗(yàn)。如果該請(qǐng)求沒有表示出與在任何其他高速緩存器中查找到的任何數(shù)據(jù)的一致性沖突,則處理該事務(wù)。使用MESI標(biāo)記符使得一致性引擎205可以在對(duì)同一數(shù)據(jù)進(jìn)行讀取和寫入的諸高速緩存器之間進(jìn)行快速仲裁,同時(shí)保持所有高速緩存器之間的所有數(shù)據(jù)被同步化和追蹤。
高速緩存器-一致性I/O設(shè)備200沒有采用單一的單片式高速緩存器,而是從物理上將高速緩存資源劃分為更小的、更易實(shí)現(xiàn)的部分。高速緩存器210、215和220被分布到該設(shè)備上的所有端口,以致每一高速緩存器與一個(gè)I/O部件相關(guān)聯(lián)。依照本發(fā)明的一個(gè)實(shí)施例,高速緩存器210物理上位于與被服務(wù)的I/O部件230鄰近的設(shè)備上。類似地,高速緩存器215與I/O部件235位置接近,高速緩存器220與I/O部件240位置接近,從而減少了事務(wù)數(shù)據(jù)請(qǐng)求的等待時(shí)間。該方法將用于“高速緩存器命中”的等待時(shí)間最小化,并且提高了性能。這一方案對(duì)于由I/O部件230、235和240預(yù)取的數(shù)據(jù)特別有用。
此外,所述分布式高速緩存器結(jié)構(gòu)改善了總帶寬,使得每一端口部件230、235和240能夠?yàn)槊恳蛔x/寫高速緩存器210、215和220使用整個(gè)事務(wù)帶寬。
通過(guò)使用高速緩存器-一致性I/O設(shè)備200,至少以兩種方式改善了I/O設(shè)備中的有效事務(wù)帶寬。高速緩存器-一致性I/O設(shè)備200可以積極地預(yù)取數(shù)據(jù)。如果高速緩存器-一致性I/O設(shè)備200推測(cè)性地對(duì)隨后將被處理器系統(tǒng)請(qǐng)求或者修改的數(shù)據(jù)的所有權(quán)進(jìn)行請(qǐng)求,可以由處理器對(duì)高速緩存器210、215和220進(jìn)行“探聽”(即監(jiān)視),隨后處理器將返回?cái)?shù)據(jù),該數(shù)據(jù)具有被保留的正確一致性狀態(tài)。因此,高速緩存器-一致性I/O設(shè)備200可以選擇性地清除競(jìng)爭(zhēng)的一致性數(shù)據(jù),而不是對(duì)于其中在預(yù)取緩沖器之一中修改了數(shù)據(jù)的非一致性系統(tǒng)中、將該非一致性系統(tǒng)中的預(yù)取數(shù)據(jù)全部刪除。因此,高速緩存器命中率被增加了,從而提高了性能。
高速緩存器-一致性I/O設(shè)備200還使得可以將一致性所有權(quán)請(qǐng)求流水線化,所述一致性所有權(quán)請(qǐng)求是對(duì)于一系列被指定給一致性存儲(chǔ)器的入站寫事務(wù)的一致性所有權(quán)請(qǐng)求。這是可行的,因?yàn)楦咚倬彺嫫?一致性I/O設(shè)備200提供了內(nèi)部高速緩存器,該內(nèi)部高速緩存器相對(duì)于系統(tǒng)存儲(chǔ)器被保持一致??梢园l(fā)出寫事務(wù),而無(wú)需在它們返回的時(shí)候阻塞該所有權(quán)請(qǐng)求?,F(xiàn)有的I/O設(shè)備必須阻塞每一入站寫事務(wù),在隨后的寫事務(wù)可能被發(fā)出之前,等待系統(tǒng)存儲(chǔ)器控制器完成該事務(wù)。將I/O寫流水線化顯著地改善了對(duì)于一致性存儲(chǔ)空間的入站寫事務(wù)的總帶寬。
從上可知,所述分布式高速緩存器足以增強(qiáng)整體的高速緩存器系統(tǒng)性能。所述分布式高速緩存器增強(qiáng)了具有多個(gè)端口高速緩存器系統(tǒng)的結(jié)構(gòu)和實(shí)現(xiàn)方式。特別是在I/O高速緩存器系統(tǒng)中,分布式高速緩存器節(jié)省了I/O設(shè)備中的內(nèi)部緩沖器資源,從而改善了設(shè)備尺寸,同時(shí)改善了I/O設(shè)備對(duì)于存儲(chǔ)器的等待時(shí)間和帶寬。
參見圖3,示出了采用本發(fā)明的一個(gè)實(shí)施例的入站一致性讀事務(wù)的程序框圖。入站一致性讀事務(wù)由端口部件130、135或者140發(fā)起(或者類似地,由I/O部件230、235或者240發(fā)起)。因此,在框300中,發(fā)出了一個(gè)讀事務(wù)??刂票粋鬟f到判定框305,在其中,在分布式高速緩存器110、115或者120內(nèi)(或者類似地,在高速緩存器210、215或者220內(nèi))對(duì)所述讀事務(wù)的地址進(jìn)行校驗(yàn)。如果校驗(yàn)結(jié)果為高速緩存器命中,則在框310中,從高速緩存器中檢索該數(shù)據(jù)。然后控制被傳遞到框315,在其中,可以推測(cè)性地使用該高速緩存器中的預(yù)取數(shù)據(jù),以便增加有效的讀帶寬和減少讀事務(wù)等待時(shí)間。如果在判定框305中、沒有在高速緩存器中查找到所述讀事務(wù)數(shù)據(jù),結(jié)果為未命中,則將一個(gè)高速緩存器行分配給該讀事務(wù)請(qǐng)求。然后控制傳遞到框325,在其中,該讀事務(wù)被轉(zhuǎn)送到一致性主機(jī),以便檢索所述被請(qǐng)求的數(shù)據(jù)。在請(qǐng)求這一數(shù)據(jù)的時(shí)候,可以使用框315中的推測(cè)性預(yù)取機(jī)制,以便通過(guò)在當(dāng)前讀請(qǐng)求之前推測(cè)性地讀取一個(gè)或多個(gè)高速緩存器行、以及通過(guò)在分布式高速緩存器中維持該推測(cè)性讀出數(shù)據(jù)來(lái)提高高速緩存器命中率。
參見圖4,示出了采用本發(fā)明一個(gè)實(shí)施例的一個(gè)或多個(gè)入站一致性寫事務(wù)的程序框圖。入站一致性寫事務(wù)由端口I/O部件130、135或者140發(fā)起(或者類似地,由I/O部件230、235或者240發(fā)起)。因此,在框400中,發(fā)出了一個(gè)寫事務(wù)。控制被傳遞到框405,在其中,在分布式高速緩存器110、115或者120內(nèi)(或者類似地,在高速緩存器210、215或者220內(nèi))對(duì)所述寫事務(wù)的地址進(jìn)行校驗(yàn)。
在判定框410中,作出對(duì)于校驗(yàn)結(jié)果是“高速緩存器命中”還是“高速緩存器未命中”的判定。如果高速緩存器一致性設(shè)備不具有高速緩存器行的排他“E”或者修改“M”所有權(quán),則校驗(yàn)結(jié)果為高速緩存器未命中。然后控制傳遞到框415,在其中,一致性引擎的高速緩存目錄將“對(duì)所有權(quán)的請(qǐng)求”轉(zhuǎn)送到外部一致性設(shè)備(例如存儲(chǔ)器),請(qǐng)求該目標(biāo)高速緩存器行的排他“E”所有權(quán)。當(dāng)將排他所有權(quán)授予所述高速緩存器一致性設(shè)備的時(shí)候,該高速緩存目錄將該行標(biāo)記為“M”。在此,在判定框420中,高速緩存目錄可以或者在框425中,將該寫事務(wù)數(shù)據(jù)轉(zhuǎn)送到前端總線、以便在一致性存儲(chǔ)空間中寫數(shù)據(jù),或者在框430中,在分布式高速緩存器內(nèi)、以修改“M”狀態(tài),本地維護(hù)該數(shù)據(jù)。在框425中,如果該高速緩存目錄在一旦接收到該行的排他“E”所有權(quán)時(shí)、始終將寫數(shù)據(jù)轉(zhuǎn)送到前端總線,則該高速緩存器一致性設(shè)備是作為“寫直通型”高速緩存器來(lái)工作的。在框430中,如果該高速緩存目錄在分布式高速緩存器內(nèi)、以修改“M”狀態(tài)、本地維護(hù)該數(shù)據(jù),則該高速緩存器一致性設(shè)備是作為“回寫型”高速緩存器來(lái)工作的。在每一實(shí)例中,或者是在框425中,將寫事務(wù)數(shù)據(jù)轉(zhuǎn)送到前端總線、以便在一致性存儲(chǔ)空間中寫數(shù)據(jù),或者是在框430中,在分布式高速緩存器內(nèi)、以修改“M”狀態(tài)、本地維護(hù)該數(shù)據(jù),控制在之后都被傳遞到框435,在其中,使用了在分布式高速緩存器內(nèi)的流水線化能力。
在框435中,全局系統(tǒng)一致性的流水線化能力可以被用來(lái)將一系列入站寫事務(wù)流水線化,從而改善了對(duì)于存儲(chǔ)器的入站寫的總帶寬。由于如果按照與從端口部件130、135或者140(或者類似地從I/O部件230、235或者240)接收所述寫事務(wù)數(shù)據(jù)時(shí)相同的順序、將該寫事務(wù)數(shù)據(jù)晉級(jí)為修改“M”狀態(tài),將維持全局系統(tǒng)一致性,所以可以將對(duì)于多個(gè)寫請(qǐng)求的流的處理流水線化。在這一模式中,隨著從端口部件130、135或者140(或者類似地,從I/O部件230、235或者240)接收到每一寫請(qǐng)求,所述高速緩存目錄將對(duì)于所有權(quán)的請(qǐng)求轉(zhuǎn)送到外部一致性設(shè)備,用于請(qǐng)求目標(biāo)高速緩存器行的排他“E”所有權(quán)。當(dāng)排他所有權(quán)被授予高速緩存器一致性設(shè)備的時(shí)候,一旦所有的先前的寫也已經(jīng)被標(biāo)記為修改“M”,則高速緩存目錄將該行標(biāo)記為修改“M”。因此,來(lái)自端口部件130、135或者140(或者類似地,來(lái)自I/O部件230、235或者240)的一系列入站寫將導(dǎo)致相應(yīng)的一系列所有權(quán)請(qǐng)求,同時(shí)為了全局系統(tǒng)一致性,這些寫的流被按照正確的順序晉級(jí)為修改“M”狀態(tài)。
如果在判定框410中、作出校驗(yàn)結(jié)果為“高速緩存器命中”的判定,則隨后控制傳遞到判定框440。如果高速緩存器一致性設(shè)備已經(jīng)具有對(duì)于在其他分布式高速緩存器之一中的高速緩存器行的排他“E”或者修改“M”所有權(quán),則校驗(yàn)結(jié)果為高速緩存器命中。在此,在判定框440中,所述高速緩存目錄或者作為寫直通型高速緩存器,將控制傳遞到框445,或者作為回寫型高速緩存器,將控制傳遞到框455來(lái)管理一致性沖突。如果高速緩存目錄始終阻塞新的寫事務(wù),直到在接收到對(duì)于同一行的后繼寫入時(shí)、前一批的寫數(shù)據(jù)才可以被轉(zhuǎn)送到前端總線為止,那么所述高速緩存器一致性設(shè)備是作為寫直通型高速緩存器來(lái)工作。如果該高速緩存目錄始終在分布式高速緩存器中、以修改″M″狀態(tài)、將來(lái)自兩次寫中的數(shù)據(jù)都在本地合并,則該高速緩存器一致性設(shè)備是作為“回寫型”高速緩存器來(lái)工作的。在框445中,作為寫直通型高速緩存器,新的寫事務(wù)被阻塞,直到在框450中、舊的(“前一批的”)寫事務(wù)數(shù)據(jù)可以被轉(zhuǎn)送到前端總線、以便在一致性存儲(chǔ)空間中寫數(shù)據(jù)為止。在已經(jīng)轉(zhuǎn)送完前一批的寫事務(wù)之后,然后在框425中,可以將其他寫事務(wù)轉(zhuǎn)送到前端總線,以便在一致性存儲(chǔ)空間中寫數(shù)據(jù)。然后控制傳遞到框435,在其中,使用了分布式高速緩存器的流水線化能力。在框455中,作為回寫型高速緩存器,來(lái)自兩個(gè)寫的數(shù)據(jù)在分布式高速緩存器中、以修改“M”狀態(tài)被本地地合并,并且在框430中,以修改“M”狀態(tài)在內(nèi)部保存。同樣,控制傳遞到框435,在其中,如上所述,可以將多個(gè)入站寫事務(wù)流水線化。
盡管在此處已經(jīng)具體圖示和說(shuō)明了單一實(shí)施例,但是可以理解的是,本發(fā)明的改進(jìn)和變型被上述教導(dǎo)覆蓋了,并且屬于所附權(quán)利要求書中的范圍,而沒有背離本發(fā)明的精神和指定范圍。
權(quán)利要求
1.一種高速緩存器一致性設(shè)備,包括多個(gè)客戶端口,均與多個(gè)端口部件之一相耦合;多個(gè)子單元高速緩存器,均與所述多個(gè)客戶端口之一相耦合,并且均被分配給所述多個(gè)端口部件之一;以及一致性引擎,與所述多個(gè)子單元高速緩存器相耦合。
2.如權(quán)利要求1所述的設(shè)備,其中,所述多個(gè)端口部件包括處理器端口部件。
3.如權(quán)利要求1所述的設(shè)備,其中,所述多個(gè)端口部件包括輸入/輸出端口部件。
4.如權(quán)利要求3所述的設(shè)備,其中,所述多個(gè)子單元高速緩存器包括使用一致性邏輯協(xié)議的事務(wù)緩沖器。
5.如權(quán)利要求4所述的設(shè)備,其中,所述一致性邏輯協(xié)議包括修改-排他-共享-無(wú)效(MESI)高速緩存器一致性協(xié)議。
6.一種處理系統(tǒng),包括處理器;多個(gè)端口部件;以及高速緩存器一致性設(shè)備,與所述處理器相耦合,并且包括多個(gè)客戶端口,所述多個(gè)客戶端口均與所述多個(gè)端口部件之一相耦合,所述高速緩存器一致性設(shè)備進(jìn)一步包括多個(gè)高速緩存器,所述多個(gè)高速緩存器均與所述多個(gè)客戶端口之一相耦合、并且均被分配給所述多個(gè)端口部件之一,所述高速緩存器一致性設(shè)備還包括與所述多個(gè)高速緩存器相耦合的一致性引擎。
7.如權(quán)利要求6所述的處理系統(tǒng),其中,所述多個(gè)端口部件包括處理器端口部件。
8.如權(quán)利要求6所述的處理系統(tǒng),其中,所述多個(gè)端口部件包括輸入/輸出端口部件。
9.在包括一致性引擎和多個(gè)客戶端口的高速緩存器一致性設(shè)備中,一種用于處理事務(wù)的方法,包括在所述多個(gè)客戶端口之一接收事務(wù)請(qǐng)求,所述事務(wù)請(qǐng)求包括地址;以及確定所述地址是否存在于多個(gè)子單元高速緩存器之一中,所述子單元高速緩存器中的每一個(gè)被分配給多個(gè)客戶端口中的所述一個(gè)。
10.如權(quán)利要求9所述的方法,其中,所述事務(wù)請(qǐng)求是一項(xiàng)讀事務(wù)請(qǐng)求。
11.如權(quán)利要求10所述的方法,進(jìn)一步包括將用于所述讀事務(wù)請(qǐng)求的數(shù)據(jù)從所述多個(gè)子單元高速緩存器中的所述一個(gè)傳送到所述多個(gè)客戶端口之一。
12.如權(quán)利要求11所述的方法,進(jìn)一步包括在所述讀事務(wù)請(qǐng)求之前預(yù)取一個(gè)或多個(gè)高速緩存器行;以及更新所述多個(gè)子單元高速緩存器中的一致性狀態(tài)信息。
13.如權(quán)利要求12所述的方法,其中,所述一致性狀態(tài)信息包括修改-排他-共享-無(wú)效(MESI)高速緩存器一致性協(xié)議。
14.如權(quán)利要求9所述的方法,其中,所述事務(wù)請(qǐng)求是一項(xiàng)寫事務(wù)請(qǐng)求。
15.如權(quán)利要求14所述的方法,進(jìn)一步包括為所述多個(gè)子單元高速緩存器所述一個(gè)中的高速緩存器行修改一致性狀態(tài)信息;由所述一致性引擎更新所述多個(gè)子單元高速緩存器中的其他子單元高速緩存器中的一致性狀態(tài)信息;以及將用于所述寫事務(wù)請(qǐng)求的數(shù)據(jù)從所述多個(gè)子單元高速緩存器中的所述一個(gè)傳送到存儲(chǔ)器。
16.如權(quán)利要求15所述的方法,進(jìn)一步包括按照接收的順序,對(duì)所述寫事務(wù)請(qǐng)求的一致性狀態(tài)信息進(jìn)行修改;以及將多個(gè)寫請(qǐng)求流水線化。
17.如權(quán)利要求16所述的方法,其中,所述一致性狀態(tài)信息包括修改-排他-共享-無(wú)效(MESI)高速緩存器一致性協(xié)議。
全文摘要
一種使用分布式高速緩存器的系統(tǒng)和方法。更具體來(lái)講,本發(fā)明涉及一種可擴(kuò)充的方法,該方法用于通過(guò)實(shí)現(xiàn)分布式高速緩存器來(lái)改善高速緩存器的帶寬和等待時(shí)間性能。分布式高速緩存器消除了單一的單片式高速緩存器系統(tǒng)在結(jié)構(gòu)上和實(shí)現(xiàn)方式上的不利影響。
文檔編號(hào)G06F12/08GK1549973SQ02816849
公開日2004年11月24日 申請(qǐng)日期2002年8月2日 優(yōu)先權(quán)日2001年8月27日
發(fā)明者K·克雷塔, D·貝爾, R·喬治, K 克雷塔 申請(qǐng)人:英特爾公司