專利名稱:用于改進(jìn)超高速緩存性能的輸入/輸出頁面刪除確定的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)處理系統(tǒng),尤其涉及從主存儲器和一個或更多的超高速緩沖存儲器預(yù)取數(shù)據(jù)的處理系統(tǒng)。更具體地,本發(fā)明涉及改進(jìn)直接存儲器存取及超高速緩沖存儲器的性能改進(jìn)。
在現(xiàn)代微處理器系統(tǒng)中,隨著技術(shù)不斷改進(jìn)處理器周期時間不斷減小。此外,抽象執(zhí)行、更深的流水線、更多的執(zhí)行元件等的設(shè)計技術(shù)持續(xù)改進(jìn)處理系統(tǒng)的性能。由于處理器需要更迅速地從存儲器得到數(shù)據(jù)和指令,性能的改進(jìn)對系統(tǒng)的存儲器接口加上更重的負(fù)擔(dān)。為了提高處理系統(tǒng)的性能,經(jīng)常使用超高速緩沖存儲器系統(tǒng)。
技術(shù)上周知采用超高速緩存的處理系統(tǒng)。超高速緩存是速度很高的存儲器部件,其通過在最短的等待時間量下可使處理器(“CPU”)得到現(xiàn)用的程序和數(shù)據(jù)以提高數(shù)據(jù)處理系統(tǒng)的速度。采用大的片上超高速緩存(L1超高速緩存)以幫助減小存儲器等待時間,并且L1超高速緩存常常通過更大的片外超高速緩存(L2超高速緩存)擴(kuò)大。超高速緩存充當(dāng)超高速緩存行數(shù)據(jù)的存儲區(qū)。超高速緩存典型地劃分成“行”,每個行具有相關(guān)的“標(biāo)記”和屬性位組。超高速緩存的各行含有主存儲器數(shù)據(jù)的拷貝。例如,在超高速緩存中“4K頁面”的數(shù)據(jù)可定義成由32行來自存儲器的數(shù)據(jù)所組成,其中每行具有128個字節(jié)。
超高速緩存系統(tǒng)背后的主要優(yōu)點是在快速的超高速緩存中保持最頻繁訪問的指令和數(shù)據(jù),從而整個處理系統(tǒng)的平均存儲器存取時間接近超高速緩存的訪問時間。盡管超高速緩存的尺寸只是主存儲器的很小的一部分,由于程序的“訪問點”特性,在快速超高速緩存中可成功地找到大部分的存儲器請求。該特性把存儲器訪問限制在存儲器的一些局部區(qū)域(在本例下,L1和L2)中。
超高速緩存的基本操作是周知的。當(dāng)處理器需要訪問存儲器時,檢查超高速緩存。若在超高速緩存中找到處理器尋址的字時,則從快速的超高速緩存讀該字。若未在超高速緩存中找到處理器尋址的字,則訪問主存儲器以讀該字。接著把含有該被訪問的字的一個字塊從主存儲器轉(zhuǎn)移到超高速緩存中。以這種方式,把附加的數(shù)據(jù)轉(zhuǎn)移到超高速緩存中(預(yù)取),從而對存儲器的此后訪問有可能在快速的超高速緩存中找到所要的字。
經(jīng)常實施預(yù)取技術(shù)以事先向片上L1超高速緩存提供存儲器數(shù)據(jù)以減少等待時間。理想地,足夠提前地預(yù)取數(shù)據(jù)和指令從而當(dāng)處理器需要時L1超高速緩存中總存在所需指令和數(shù)據(jù)的拷貝。技術(shù)上對指令和/或數(shù)據(jù)的預(yù)取是周知的。
在需要高的I/O直接存儲器存取(DMA)性能的系統(tǒng)(例如,圖形系統(tǒng))中,典型地可按如下管理送往I/O的系統(tǒng)存儲器數(shù)據(jù)1)系統(tǒng)處理器通過一系列的對系統(tǒng)存儲器空間中的一組4K字節(jié)(4K)頁面緩沖器的存儲而生成數(shù)據(jù)。這使得在L1/L2超高速緩存中把數(shù)據(jù)標(biāo)成“修改過的”(在超高速緩存中有效,不對系統(tǒng)存儲器回寫)。
2)處理器啟動I/O部件以執(zhí)行對這些生成的4K頁面的DMA“讀”。
3)I/O部件進(jìn)行一系列的對系統(tǒng)存儲器的讀入。
4)以I/O部件名義執(zhí)行DMA操作的PCI主橋路預(yù)取并且高速緩存“共享”(在超高速緩存中有效,在系統(tǒng)存儲器中有效)狀態(tài)下的數(shù)據(jù)。當(dāng)PCI主橋路讀數(shù)據(jù)時L1/L2把各數(shù)據(jù)超高速緩存行從“修改過的”狀態(tài)改變到“共享”狀態(tài)(即,L1/L2介入并一起把數(shù)據(jù)直接提供給或“推到”可對該數(shù)據(jù)的存儲器中)。
5)當(dāng)DMA部件結(jié)束時,可重新使用4K緩沖器組(即,軟件具有一組固定的通過其中流通數(shù)據(jù)的緩沖器)。
為了保持DMA I/O性能,PCI主橋路可包含它自己的超高速緩存,以用于預(yù)取/高速緩存共享狀態(tài)下的數(shù)據(jù)。這允許把DMA數(shù)據(jù)移近數(shù)據(jù)使用者(例如,I/O部件)以使DMA“讀”的性能最高。當(dāng)PCI主橋路在系統(tǒng)總線上發(fā)布可高速緩存的讀時,由于PCI主橋路執(zhí)行可高速緩存的讀使得L1/L2從“修改過的”狀態(tài)變到“共享的”狀態(tài)。當(dāng)軟件希望重新使用該4K頁面的超高速緩存空間以存儲新的DMA數(shù)據(jù)時,由于L1/L2超高速緩存中的每行已變成“共享”狀態(tài),該狀態(tài)改變行為會產(chǎn)生性能上的損失。為了進(jìn)行新的存儲,L1/L2必須對每行執(zhí)行一個系統(tǒng)總線命令以表明行已從“共享的”轉(zhuǎn)到“修改過的”。必須對4K頁面中的每個高速緩存行(共有32行)這樣做,即使其舊數(shù)據(jù)沒有用(PCI主橋路需要該數(shù)據(jù)現(xiàn)在是無效的指示)。在新的存儲可被執(zhí)行前必須在系統(tǒng)總線上完成這些附加的存儲器相容性業(yè)務(wù)即這32個系統(tǒng)總線命令以改變所有這些超高速緩存行的狀態(tài),會明顯地降低處理器性能。
已經(jīng)顯示,和“已修改過的”狀態(tài)下相比,當(dāng)L1/L2超高速緩存處于“共享的”狀態(tài)下時處理器存儲4K頁面可能需要的時間要長4-5倍。這是因為需要附加的相容性業(yè)務(wù)以把每條高速緩存行的狀態(tài)改變成“修改過的”。
從而需要提供一種提高直接存儲器存取部件的速度和效率的方法和設(shè)備。還需要提供一種減少改變L1/L2超高速緩存中的數(shù)據(jù)頁面的狀態(tài)所需要的系統(tǒng)總線命令的數(shù)量的方法和設(shè)備。
從而本發(fā)明的一個目的是提供一種減少改變L1/L2超高速緩存中緩沖器的狀態(tài)時所需要的系統(tǒng)總線命令的數(shù)量的方法和設(shè)備。
本發(fā)明的另一個目的是提供一種提高直接存儲器存取部件的速度和效率的方法和設(shè)備。
本發(fā)明的再一個目的是提供一種允許超高速緩存用一次總線操作清除存儲器緩沖器的方法和設(shè)備。
現(xiàn)說明如何達(dá)到上述目的。定義一個具有大尺寸(例如,4K字節(jié))但帶有特殊的高速緩存行特征的專用“I/O”頁面。對于DMA讀,PCI主橋路可以按可高速緩存的讀來訪問該I/O頁面的第一高速緩存行,而其它的所有行是可按不可高速緩存地訪問的(帶有不高速緩存意圖的DMA讀)。對于DMA寫,PCI主橋路按可高速緩存地訪問所有的高速緩存行。PCI主橋路保持尺寸為該I/O頁面的數(shù)據(jù)的高速緩存監(jiān)聽顆粒性,這意味著若主橋路檢測到I/O頁面內(nèi)的任何高速緩存行上的存儲型(無效型)系統(tǒng)總線操作,該頁面內(nèi)的已高速緩存的數(shù)據(jù)被轉(zhuǎn)為無效(L1/L2繼續(xù)把該頁面中的所有高速緩存行對待成是可高速緩存的)。通過把第一行定義成是可高速緩存的,為了在PCI主橋路上使整頁數(shù)據(jù)無效只需由L1/L2超高速緩存在系統(tǒng)總線上使一條高速緩存行無效??梢灾苯釉贚1/L2超高速緩存中無需系統(tǒng)總線操作下出現(xiàn)對該I/O頁面中的其它高速緩存行的全部存儲,因為這些行在L1/L2超高速緩存中保持著“修改過的”狀態(tài)。
在下述詳細(xì)書面說明中本發(fā)明的上述以及其它目的、特點和優(yōu)點將變?yōu)榍宄?br>
在附屬權(quán)利要求書中敘述本發(fā)明的確信為新穎性的特性。然而,通過在連帶附圖下閱讀下述對一個示范實施例的詳細(xì)說明會最好地理解本發(fā)明本身以及優(yōu)選的使用方式、它的其它目的及優(yōu)點,附圖中
圖1描述可在其中實現(xiàn)本發(fā)明的優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)的高層方塊圖;圖2A是用于依據(jù)本發(fā)明的優(yōu)選實施例使用專用DMA I/O頁面的方法的高層流程圖;圖2B描述用于依據(jù)本發(fā)明的優(yōu)選實施例重新使用專用DMA I/O頁面的方法的高層流程圖;圖3是依據(jù)本發(fā)明的優(yōu)選實施例的為執(zhí)行處理器存儲的L1/L2相關(guān)性處理的流程圖;圖4是依據(jù)本發(fā)明的優(yōu)選實施例的使用專用DMA I/O頁面的方法的高層流程圖,其中PCI主橋路可服務(wù)于DMA請求;以及圖5是依據(jù)本發(fā)明的優(yōu)選實施例的使用專用DMA I/O頁面的方法的一部分的高層流程圖,其中PCI主橋路可監(jiān)聽系統(tǒng)總線相關(guān)性。
現(xiàn)參照附圖,具體參照圖1,其中描述依據(jù)本發(fā)明的一種優(yōu)選實施例的多處理器數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)100是一個多處理機(jī)(SMP)系統(tǒng)102(只示出一個),其最好由可從紐約州Arwonk市的國際商用機(jī)器公司購得的PowerPCTM系列中的一種構(gòu)成。盡管在該示范實施例中只描繪了一個處理器,業(yè)內(nèi)人士會理解在依據(jù)本發(fā)明的多處理器數(shù)據(jù)處理系統(tǒng)中可采用更多的處理器。
處理器102包括層一(L1)超高速緩存104。為了使數(shù)據(jù)存取等待時間最小,可在數(shù)據(jù)處理系統(tǒng)100中實現(xiàn)附加的一層或多層超高速緩存,例如層二(L2)超高速緩存106。該較低的超高速緩存層L2用于對至L1超高速緩存的數(shù)據(jù)進(jìn)行分級,并且通常具有逐級增大的存儲能力但訪問等待時間更長。例如,L1超高速緩存104具有32KB的存儲容量和約為1-2個處理器周期的訪問等待時間。L2超高速緩存106可具有512 KB的存儲容量但訪問等待時間為5個處理器周期。L2超高速緩存106充當(dāng)處理器102和系統(tǒng)存儲器110之間的中間存儲,系統(tǒng)存儲器110通常具有大得多的存儲容量但可能具有大于50個處理器周期的訪問等待時間。
數(shù)據(jù)處理系統(tǒng)100中所采用的超高速緩存體系中的層次和超高速緩配置都是可變的。L2超高速緩存106是連接在CPU 102和系統(tǒng)存儲器110之間(通過系統(tǒng)總線112)的專用超高速緩存。業(yè)內(nèi)人士可意識到對所描述的層次和配置可實現(xiàn)各種變更。
L2超高速緩存106通過系統(tǒng)總線112和系統(tǒng)存儲器110連接。存儲器控制器114和PCI主橋路108也和系統(tǒng)總線112連接。存儲器控制器114調(diào)節(jié)對系統(tǒng)存儲器110的存取。可以在系統(tǒng)存儲器110中由DMA存儲器124使用的緩沖器區(qū)(例如,DMA存儲器124可以是系統(tǒng)存儲器110的空間中的一組4K的頁面緩沖器)內(nèi)組織軟件。PCI主橋路108把系統(tǒng)總線112連接到PCI總線116,PCI總線116提供對I/O部件的連接,I/O部件諸如是向顯示器(未示出)提供連接的圖形適配器、I/O部件118和120。系統(tǒng)總線112、PCI主橋路108和PCI總線116從而形成和附著部件連接的互連,技術(shù)上對該互連的備擇實現(xiàn)是周知的。
輸入/輸出(I/O)子系統(tǒng)通常由I/O總線116,例如外圍部件互連(PCI)總線,構(gòu)成,若干I/O部件118、120以及PCI主橋路(PC IHB)108附著在該I/O總線116上。I/O總線116用于經(jīng)過PCIHB 108把一個或多個I/O部件連接到系統(tǒng)總線112上并且允許I/O部件118、120經(jīng)過PCIHB 108對/從系統(tǒng)存儲器110傳送命令和數(shù)據(jù)。
當(dāng)處理器102希望訪問I/O部件118、120時PCIHB 108可把處理器命令從系統(tǒng)總線112傳送到I/O總線116。此外,PCIHB 108還可把I/O部件118、120啟動的直接存儲器存取(DMA)從I/O總線116傳送到系統(tǒng)存儲器110。對于DMA訪問,PCIHB 108可預(yù)取并高速緩存數(shù)據(jù)以幫助改進(jìn)DMA性能。在發(fā)布訪問系統(tǒng)存儲器110的系統(tǒng)總線命令上和在保持L1/L2超高速緩存104、106以及它自己的超高速緩存109之間的相關(guān)性上,PCIHB 108的行為非常類似于系統(tǒng)總線112上的處理器102。
I/O主部件是一個可在I/O總線116上啟動經(jīng)PCIHB 108數(shù)據(jù)從系統(tǒng)存儲器110傳送到某個別的位置(并且反向亦然)的DMA的部件。在該方塊圖中,I/O部件120代表一個能對和從系統(tǒng)存儲器110傳送數(shù)據(jù)的I/O主部件。這些類型的傳輸可在無須處理器102的干預(yù)下進(jìn)行。
I/O部件118、120可包括常規(guī)的外圍設(shè)備,其中包括諸如鼠標(biāo)或軌跡球的圖形指點器、顯示器和指針,它們都可通過常規(guī)適配器和PCI總線116接口。非易失性存儲器112可包括硬盤機(jī)并存儲操作系統(tǒng)和別的用于控制系統(tǒng)100操作的軟件,響應(yīng)對系統(tǒng)100的通電它們被裝入到易失性系統(tǒng)存儲器110中。業(yè)內(nèi)人士可意識到數(shù)據(jù)系統(tǒng)100可包括許多圖1中未示出的其它部件,諸如串行和并行端口、對網(wǎng)絡(luò)或各附屬部件的連接等。這樣的修改和變型在本發(fā)明的精神和范圍之內(nèi)。
在DMA緩沖器124內(nèi),例如可把數(shù)據(jù)存儲到由32行數(shù)據(jù)每行為128字節(jié)組成的4K頁面緩沖器130和132中。在L1/L2超高速緩存102、104可執(zhí)行來自處理器102的對L1/L2超高速緩存中某處于共享狀態(tài)下的行的存儲前,需要一次獨立的系統(tǒng)總線操作,以便通知其它超高速緩存使每個超高速緩存的拷貝無效。由于要對每條高速緩存行進(jìn)行這樣的操作并由于反復(fù)地清除一頁面緩沖器以便為新數(shù)據(jù)準(zhǔn)備空間的總線操作的次數(shù),處理器速度放慢。本發(fā)明設(shè)置一個4K頁面緩沖器(I/O),從而可以在一次總線操作下而不是32次總線操作下清除緩沖器。
傳統(tǒng)的4K頁面緩沖器由緩沖器130、132代表。來自本發(fā)明的4KI/O頁面緩沖器由緩沖器134、136代表。緩沖器內(nèi)的數(shù)據(jù)行用緩沖器內(nèi)的框表示,并且框內(nèi)的截面線表示共享狀態(tài)。在緩沖器130中當(dāng)完成DMA訪問后所有的高速緩存行是共享的,這要求在清除該緩沖器之間對每條高速緩存行(32行)進(jìn)行單獨的系統(tǒng)總線操作。各緩沖器132高速緩存行示成是修改過的,這允許向緩沖器132寫數(shù)據(jù)。根據(jù)本發(fā)明的要求,在完成DMA存取后,I/O緩沖器134的第一高速緩存行處于共享狀態(tài)而其余的行處于修改過的狀態(tài)。I/O緩沖器136中的所有高速緩存行處于修改過的狀態(tài)。和把緩沖器的相關(guān)性狀態(tài)轉(zhuǎn)換成緩沖器132的相關(guān)性狀態(tài)不同,把緩沖器134的相關(guān)性狀態(tài)轉(zhuǎn)換成緩沖器136的相關(guān)性狀態(tài)只需要改變I/O緩沖器134中的第一行,便可允許向I/O緩沖器134存儲數(shù)據(jù)。相對比,轉(zhuǎn)換I/O頁面緩沖器狀態(tài)(只需改變一行)所需的時間大大短于清除傳統(tǒng)緩沖器(為改變狀態(tài)它需要改變32行)的時間。
參照圖2A,其中示出依據(jù)本發(fā)明的一種優(yōu)選實施例采用專用DMAI/O頁面的方法的高層流程圖。該過程開始于步驟202,它描述某個應(yīng)用軟件獲取一個當(dāng)前未使用的4K I/O頁面以建立供PCI I/O部件以后讀的數(shù)據(jù)。接著該過程進(jìn)入步驟204,其中表示該應(yīng)用軟件實現(xiàn)一系列的對該4K I/O頁面的存儲,而且至少一次存儲是對該4K I/O頁面中的第一高速緩存行。該過程接著進(jìn)入步驟206,其描述該應(yīng)用軟件啟動某DMA部件以經(jīng)過PCI主橋路執(zhí)行該4K I/O頁面的DMA讀,其中至少一次讀是對該4K I/O頁面中的第一高速緩存行的。過程接著進(jìn)入步驟208,其表示判定該應(yīng)用軟件是否具有還要發(fā)送的數(shù)據(jù)。若沒有,結(jié)束該過程。若存在等發(fā)送的數(shù)據(jù),該過程轉(zhuǎn)而返回到步驟202,其中該應(yīng)用軟件獲得一個未使用的4K I/O頁面緩沖器。
現(xiàn)參照圖2B,其描述依據(jù)本發(fā)明的一種優(yōu)選實施例的重新使用專用DMA I/O頁面的方法的高層流程圖。該過程開始于步驟222,其描述判定某I/O部件是否已完成來自I/O頁面緩沖器的DMA讀。若沒有,過程返回步驟222并重復(fù)該步驟。若I/O部件完成來自I/O頁面緩沖器的DMA讀,該過程轉(zhuǎn)為進(jìn)入步驟224,其表示軟件把I/O頁面緩沖器標(biāo)記成“準(zhǔn)備好由應(yīng)用軟件重新使用”。接著該過程返回步驟222并且判定某I/O部件是否完成對I/O頁面緩沖器的DMA讀。
參照圖3,圖中示出依據(jù)本發(fā)明的一種優(yōu)選實施例的用于進(jìn)行處理器存儲的L1/L2相關(guān)性處理的高層流程圖。該過程開始于步驟300,其描述開始該過程。過程接著進(jìn)入步驟302,以判定處理器是否想執(zhí)行存儲操作。若不,過程返回步驟302并重復(fù)該步驟。若處理器試圖執(zhí)行存儲操作,該過程轉(zhuǎn)而進(jìn)入步驟304,其說明在允許完成存儲前L1/L2超高速緩存檢查L1/L2超高速緩存的狀態(tài)。然后過程進(jìn)入步驟306,其中判定L1/L2高速緩存行狀態(tài)是否是“無效的”。若高速緩存是“無效的”,過程進(jìn)入步驟308,其中發(fā)出在系統(tǒng)總線上執(zhí)行“帶有修改意圖的讀”操作的指令以讀取該速高速緩存行的拷貝并使該行為“修改過的”狀態(tài)。然后過程進(jìn)入步驟318,其表示在L1/L2超高速緩存中執(zhí)行了處理器的存儲指令。
回到步驟306,若L1/L2高速緩存行的狀態(tài)不是“無效的”,該過程進(jìn)入步驟310,以判定該L1/L2高速緩存行的狀態(tài)是否為“共享的”。若該高速緩存行為“共享的”,過程進(jìn)入步驟312,其中為了得到該行的所有權(quán)并把該行改變到“修改過的”狀態(tài)在系統(tǒng)總線上執(zhí)行“數(shù)據(jù)要求”操作。然后過程進(jìn)入步驟318,其中在L1/L2高速緩存中執(zhí)行器存儲操作。若L1/L2高速緩存行的狀態(tài)不是“共享的”,過程進(jìn)入步驟314,以判定L1/L2高速緩存行的狀態(tài)是否是“修改過的”。若該高速緩存行不是修改過的,則示出出錯報文,因為只假定存在3種L1/L2高速緩存行狀態(tài)。
回到步驟314,若L1/L2高速緩存行的狀態(tài)是共享的,過程轉(zhuǎn)而進(jìn)入步驟318,其表示在L1/L2超高速緩存中執(zhí)行了處理器存儲。該過程接著轉(zhuǎn)入步驟302,其表示處理器試圖執(zhí)行另一次存儲。
參照圖4,其示出PCI主橋路可依據(jù)本發(fā)明的一種優(yōu)選實施例為DMA請求提供服務(wù)時使用專用的DMA I/O頁面的方法的高層流程圖。該過程開始于指定I/O頁面緩沖器的步驟400。接著進(jìn)入步驟402,以判定某I/O部件是否試圖執(zhí)行DMA讀。若不是,過程返回步驟402,并重復(fù)直至確定出DMA讀。若I/O部件試圖執(zhí)行DMA讀,過程轉(zhuǎn)而進(jìn)入步驟404,其中PCI主橋路檢查主橋路超高速緩存中的各行的狀態(tài)。接著過程進(jìn)入步驟406,以判定主橋路超高速緩存是否處于“無效”狀態(tài)。若該超高速緩存處于“無效”狀態(tài),該過程進(jìn)入步驟408,其中判定該對I/O頁面的DMA讀是讀I/O頁面的第一高速緩存行還是讀常規(guī)的I/O緩沖器(非I/O頁面)。若該讀是讀I/O頁面的第一高速緩存行或是讀常規(guī)I/O緩沖器中的任一高速緩存行,該過程進(jìn)入步驟412,其中表示執(zhí)行“讀”系統(tǒng)總線操作以檢索該行的共享拷貝。L1/L2超高速緩存被強(qiáng)制把該行的狀態(tài)從“修改過的”改變到“共享的”。然后過程進(jìn)入步驟418,其中描述PCI主橋路向該I/O部件發(fā)送DMA讀。
返回到步驟408,若是對I/O頁面的讀但不是對該頁面中的第一高速緩存行的讀,過程轉(zhuǎn)而進(jìn)入步驟410,其中示出“帶有超高速緩存意圖的讀”的系統(tǒng)總線操作以檢索該行的共享拷貝并且L1/L2超高速緩存可把該高速緩存行保持在“修改過的”狀態(tài)下。接著該過程進(jìn)入步驟418,其中PCI主橋路向該I/O部件發(fā)送DMA讀數(shù)據(jù)。
現(xiàn)回到步驟406,若PCI主橋路超高速緩存不處于“無效”狀態(tài),過程轉(zhuǎn)而進(jìn)入步驟414,以判定該L1/L2高速緩存行是否處于“共享”狀態(tài)。若該高速緩存行不處于“共享”狀態(tài),過程進(jìn)入步驟416,其中示出出錯報文,因為假定只存在二種PCI主橋路高速緩存行狀態(tài)。并回到步驟414,若該L1/L2高速緩存行處于共享狀態(tài),該過程進(jìn)入步驟418,其中示出PCI主橋路向I/O部件發(fā)送DMA讀數(shù)據(jù)。該過程在步驟402繼續(xù),其中示出某I/O部件試圖執(zhí)行對某I/O頁面的DMA讀。
為了管理“I/O頁面”的相關(guān)性,在可使用4K“I/O頁面”之前,PCI主橋路被觸發(fā)以通過存儲某4K“I/O頁面”的第一高速緩存行使該I/O頁面無效。在DMA讀下,PCI主橋路把第一高速緩存行對待成是專用的,因為該第一行被設(shè)計成看起來是可對L1/L2高速緩存器高速緩存讀的。L1/L2超高速緩存進(jìn)行系統(tǒng)總線相關(guān)性訪問,以表示處理器把第一高速緩存行從“共享的”改變到“修改過的”意圖。PCI主橋路監(jiān)聽4K頁面的顆粒性(尺寸),從而當(dāng)出現(xiàn)對某4K頁面的第一高速緩存行的存儲時,PCI主橋路將使整頁無效,避免了為使該4K頁面中的每條高速緩存行無效所需的全部系統(tǒng)總線業(yè)務(wù)。
現(xiàn)參照圖5,其描述依據(jù)本發(fā)明一種優(yōu)選實施例的利用專用DMAI/O頁面的方法中的使I/O頁面無效部分的高層流程圖,其中PCI主橋路可監(jiān)聽系統(tǒng)總線的相關(guān)性。該過程開始于步驟500,以便開始無效處理。過程接著進(jìn)入步驟502,以判定L1/L2超高速緩存是否試圖執(zhí)行會改變被PCI主橋路標(biāo)記成“共享的”的某被命中的4K I/O頁面的某L1/L2高速緩存行的狀態(tài)的系統(tǒng)總線操作。若不是,過程進(jìn)入步驟504,其中PCI主橋中不采取任何動作。該過程在步驟502繼續(xù)并且重復(fù)?;氐讲襟E502,若L1/L2超高速緩存試圖執(zhí)行會改變某L1/L2高速緩存行狀態(tài)的系統(tǒng)總線操作,該過程能轉(zhuǎn)而進(jìn)入步驟506,其中示出由于所涉及的頁面被標(biāo)記為“共享的”,PCI主橋路在PCI主橋路高速緩存器中使該4K頁面(例如,I/O頁面)的數(shù)據(jù)無效。
通過只把4K I/O頁面中的第一高速緩存行定義成可高速緩存讀的,當(dāng)試圖重新使用該4K緩沖器時L1超高速緩存會使除第一高速緩存行之外的所有行保持為“修改的”。當(dāng)執(zhí)行DMA時,只有第一行處于“共享的”。無論何時軟件要重新使用某頁面時它會存儲該I/O頁面中的第一高速緩存行,從而PCI主橋路會知道應(yīng)使該頁面無效。對某I/O頁面的第一高速緩存行的DMA讀或DMA寫會使L1/L2把該第一高速緩存行從“修改過的”改變到“共享的”。
如本發(fā)明的優(yōu)選實施例那樣定義的該I/O頁面在通過對舊的可重新使用的4K I/O頁面存儲而創(chuàng)造新的4K頁面時大大改進(jìn)了處理器的性能,因為對某4K頁面第一高速緩存行的存儲只需要單次系統(tǒng)總線事務(wù)處理就可把L1/L2從“共享的”狀態(tài)轉(zhuǎn)換到“修改過的”狀態(tài)。I/O頁面中的所有其它的高速緩存行在該L1/L2中保持“修改過的”狀態(tài),從而處理器對這些高速緩存行的存儲可以直接在L1/L2超高速緩存中進(jìn)行,不再需要系統(tǒng)總線相關(guān)性業(yè)務(wù)。
本發(fā)明可應(yīng)用于其中由不同的裝置訪問存儲器頁面的系統(tǒng)??梢詾樵赑CI主橋路中采用轉(zhuǎn)換控制條目(TCE)表的系統(tǒng)設(shè)置本發(fā)明的另一種實施例。通常在PCI主橋路中設(shè)置一個TCE表,用于在設(shè)定的限值,例如四吉字節(jié)(GB),之上存取系統(tǒng)存儲器。在這樣的系統(tǒng),TCE條目本身可充當(dāng)觸發(fā)機(jī)制以替代4K I/O頁面中第一高速緩存行的使用。在這種情況下,PCI主橋路可按“不帶高速緩存意圖的讀”執(zhí)行所有的讀(不再對待成專用的),并且每次要重新使用某頁面時程序邏輯通過對已用于DMA讀的TCE條目進(jìn)行存儲而使該頁面的失效(即,如果用于取該數(shù)據(jù)的TCE已修改過的話PCI主橋路使某4K頁面內(nèi)它取過的數(shù)據(jù)無效)。在這種I/O頁面實施例中,系統(tǒng)總線業(yè)務(wù)量大大減少。
重要的是要注意到,盡管本發(fā)明是在一個功能完整的部件的環(huán)境下說明的,業(yè)內(nèi)人士明白本發(fā)明的機(jī)理和/或其中的方面是可以用各種形式下的指令的計算機(jī)的可用介質(zhì)形式散發(fā),并且和實際中實現(xiàn)這種散發(fā)所采用的信號傳播介質(zhì)的特定類型無關(guān)而被等同地應(yīng)用本發(fā)明。計算機(jī)可用介質(zhì)包括非易失硬代碼型介質(zhì)如只讀存儲器(ROM)或可擦電子可編程只讀存儲器(EEPROM),可記錄型介質(zhì)如軟盤、硬盤機(jī)和CD-ROM,以及傳輸型介質(zhì)如數(shù)字和模擬通信鏈路。
雖然參照一種優(yōu)選實施例具體地示出和說明本發(fā)明,業(yè)內(nèi)人士理解,在不背離本發(fā)明的實質(zhì)和范圍下在形式上和細(xì)節(jié)上可對其做出各種改變。
權(quán)利要求
1.一種改進(jìn)直接存儲器存取和超高速緩存的性能的方法,包括步驟定義一個存儲器緩沖器,其中所述存儲器緩沖器內(nèi)的第一高速緩存行是可按高速緩存讀的;還把所述存儲器緩沖器內(nèi)的其余高速緩存行定義為處于修改過的狀態(tài);并且響應(yīng)于所述超高速緩存試圖把所述第一高速緩存行從共享狀態(tài)改變到修改過的狀態(tài),使所述整個存儲器緩沖器無效。
2.權(quán)利要求1的方法,還包括觸發(fā)PCI主橋路以使所述存儲器緩沖器無效。
3.權(quán)利要求2的方法,還包括對所述頁面的所述第一高速緩存行執(zhí)行存儲操作。
4.權(quán)利要求1的方法,還包括監(jiān)聽系統(tǒng)存儲器內(nèi)的頁面緩沖器。
5.權(quán)利要求4的方法,還包括若所述第一高速緩存行從所述共享狀態(tài)改變到所述修改過的狀態(tài),使所述緩沖器內(nèi)整頁的數(shù)據(jù)無效。
6.一種改進(jìn)直接存儲器存取和超高速緩存的性能的設(shè)備,包括一個用于存儲信息的超高速緩存;用于執(zhí)行高速緩存操作的控制邏輯電路;用于定義一個存儲器緩沖器的硬件,其中所述存儲器緩沖器內(nèi)的第一高速緩存行是可按高速緩存讀的;以及用于同時使所述存儲器緩沖器內(nèi)的所有高速緩存行無效而不需附加的系統(tǒng)總線命令的裝置。
7.權(quán)利要求6的設(shè)備,還包括能保留存儲器存儲的邏輯裝置。
8.權(quán)利要求6的設(shè)備,還包括附加的邏輯裝置,用于進(jìn)而把所述存儲器緩沖器內(nèi)的其余高速緩存行定義成處于修改過的狀態(tài)。
9.權(quán)利要求6的設(shè)備,還包括邏輯電路,用于觸發(fā)PCI主橋路以使所述存儲器無效。
10.權(quán)利要求6的設(shè)備,還包括用于對所述頁面的所述第一高速緩存行執(zhí)行存儲操作的裝置。
11.權(quán)利要求6的設(shè)備,還包括監(jiān)聽裝置,用于監(jiān)聽系統(tǒng)存儲器中的頁面緩沖器。
12.權(quán)利要求1的設(shè)備,其中用于同時使所述存儲器緩沖器內(nèi)的所有高速緩存行無效而不需附加的系統(tǒng)總線命令的裝置還包括用于若所述第一高速緩存行從所述共享狀態(tài)改變到所述修改過的狀態(tài)則使所述存儲器緩沖器內(nèi)的整頁數(shù)據(jù)無效的裝置。
13.一種計算機(jī)程序產(chǎn)品,其具有計算機(jī)可讀介質(zhì)內(nèi)的用于改進(jìn)直接存儲器訪問和超高速緩存的性能的指令組,包括所述計算機(jī)可讀介質(zhì)內(nèi)的用于定義一個頁面緩沖器的指令組,其中所述頁面緩沖器內(nèi)的第一高速緩存行是可高速緩存讀的。所述計算機(jī)可讀介質(zhì)內(nèi)的用于定義所述頁面緩沖器內(nèi)的其余高速緩存行處于修改過的狀態(tài)的指令組;以及響應(yīng)于所述超高速緩存試圖把所述第一高速緩存行從共享狀態(tài)改變到修改過的狀態(tài),所述計算機(jī)可讀介質(zhì)內(nèi)的用于使所述頁面緩沖器的內(nèi)容無效的指令組。
14.權(quán)利要求13的計算機(jī)程序產(chǎn)品,還包括所述計算機(jī)可讀介質(zhì)內(nèi)的用于觸發(fā)PCI主橋路以使所述頁面緩沖器的內(nèi)容無效的指令組。
15.權(quán)利要求14的計算機(jī)程序產(chǎn)品,還包括所述計算機(jī)可讀介質(zhì)內(nèi)的用于對所述頁面緩沖器的所述第一高速緩存行執(zhí)行存儲操作的指令組。
16.權(quán)利要求13的計算機(jī)程序產(chǎn)品,還包括所述計算機(jī)可讀介質(zhì)內(nèi)的用于監(jiān)聽系統(tǒng)存儲器內(nèi)的所述頁面緩沖器的指令組。
17.權(quán)利要求16的計算機(jī)程序產(chǎn)品,還包括所述計算機(jī)可讀介質(zhì)內(nèi)的用于若所述第一高速緩存行從所述共享狀態(tài)改變到所述修改過的狀態(tài)則使所述緩沖器中整頁的數(shù)據(jù)無效的指令組。
18.一種改進(jìn)直接存儲器存取和超高速緩存的性能的方法,包括以下步驟在用于超高速緩存的地址表內(nèi)定義用于4K I/O頁面的地址條目;把所述條目用作為觸發(fā)機(jī)制;按“不帶有高速緩存意圖的讀”執(zhí)行對所述4K I/O頁面的所有讀;把直接存儲器存取的讀存儲到由所述條目所索引的某單元中;以及使所述4K I/O頁面內(nèi)的所有數(shù)據(jù)無效。
19.權(quán)利要求18的方法,還包括判定是否要重新使用所述4KI/O頁面。
20.權(quán)利要求17的方法,其中把所述DMA讀存儲到所述條目的步驟還包括觸發(fā)主橋路以使所述4K I/O頁面中的所有數(shù)據(jù)失效。
21.權(quán)利要求17的方法,還包括向所述4K頁面寫新數(shù)據(jù)。
全文摘要
定義一個具有大尺寸(例如,4K字節(jié))但帶有特殊的高速緩存行特征的專用“I/O”頁面。對于DMA讀,PCI主橋路可以按可高速緩存的讀訪問該I/O頁面的第一高速緩存行,而其它的所有行是按不可高速緩存地訪問的(帶有不高速緩存意圖的DMA讀)。對于DMA寫,PCI主橋路按可高速緩存地訪問所有的高速緩存行。通過把第一行定義成是高速緩存的,為了在PCI主橋路中使整頁數(shù)據(jù)無效只需由L1/L2超高速緩存在系統(tǒng)總線上使一條高速緩存行無效。
文檔編號G06F12/08GK1268695SQ0010438
公開日2000年10月4日 申請日期2000年3月23日 優(yōu)先權(quán)日1999年3月31日
發(fā)明者加里·迪恩·安德森, 羅納德·艾克斯韋爾·阿羅佑, 布拉德里·喬治·夫雷, 蓋伊·萊恩·古施瑞 申請人:國際商業(yè)機(jī)器公司