處理設備的制作方法
【專利摘要】本發(fā)明涉及處理設備。當從另一處理設備輸入無效請求時,高速緩沖控制器將無效請求具有的一組無效請求地址和輸出無效請求的該另一處理設備的標識符寄存在無效歷史表中。當中央處理單元試圖讀取沒有存儲在高速緩沖存儲器中的第一地址處的數(shù)據(jù)時,如果第一地址寄存在無效歷史表中,則高速緩沖控制器將包含第一地址的一致讀取請求輸出至輸出了與第一地址對應的無效請求的另一處理設備的標識符所指示的另一處理設備,或者如果第一地址沒有寄存在無效歷史表中,則高速緩沖控制器將包含第一地址的一致讀取請求輸出至所有其他處理設備。
【專利說明】處理設備
【技術(shù)領(lǐng)域】
[0001]本文中所論述的實施例涉及處理裝置,并且特別涉及高速緩沖存儲器的一致性技術(shù)。
【背景技術(shù)】
[0002]使用多個處理單元(CPU)作為用于提高使用計算機的信息處理系統(tǒng)的性能的手段的并行處理系統(tǒng)是已知的。在并行處理系統(tǒng)中,需要保持各個CPU具有的高速緩沖存儲器的內(nèi)容相同。這稱為高速緩沖一致性并且將描述用于有效地保持高速緩沖一致性的若干方法。
[0003]已知存在一種具有歷史表的高速緩沖系統(tǒng),該歷史表存儲流經(jīng)公用總線和歷史表控制電路的訪問請求中所包含的地址(例如,參見專利文獻I)。歷史表控制電路確定所接收的訪問請求的地址是否存儲在表中。當該地址存儲在表中時,禁止高速緩沖控制電路的與訪問請求相關(guān)的操作,而當該地址沒有存儲在表中時,使高速緩沖控制電路進行與訪問請求相關(guān)的操作。
[0004]此外,已知存在一種存儲信息的多播表,該信息指示每個處理器單元是否高速緩沖屬于具有大于或等于高速緩沖行的大小的主存儲器的多個區(qū)域中的每個區(qū)域的數(shù)據(jù)(例如,參見專利文獻2)?;谠摫碇写鎯Φ男畔硐薅ùl(fā)送至其他處理器單元的一致處理請求的目的地,并且該請求在互耦合網(wǎng)絡上部分地通過廣播方式到達所限定的目的地。當返回該請求所指定的數(shù)據(jù)的高速緩沖狀態(tài)時,作為目的地的處理器單元將與處理器單元中包含數(shù)據(jù)的特定存儲器區(qū)域有關(guān)的處理器單元中的高速緩沖狀態(tài)一起返回。請求源處理器單元基于該返回來更新多播表。
[0005]專利文獻1:日本公開專利公報第09-293060號
[0006]專利文獻2:日本公開專利公報第09-311820號
[0007]在其中均包括處理單元(CPU)和附接至CPU的高速緩沖存儲器的多個處理設備(節(jié)點)彼此相連的并行處理系統(tǒng)中,在這些節(jié)點的各個高速緩沖存儲器中節(jié)點共享的數(shù)據(jù)需要相同。高速緩沖存儲器的相同稱為高速緩沖一致性。作為用于保持高速緩沖一致性的算法,存在探聽方法。在探聽方法中,為了保持高速緩沖一致性,一個節(jié)點將許多探聽請求輸出至所有其他的節(jié)點。然而,當節(jié)點無條件地將請求輸出至所有其他節(jié)點時,在連接這些節(jié)點的互耦合網(wǎng)絡上的數(shù)據(jù)變得擁塞,并且處理系統(tǒng)的處理性能下降。這種情況隨著節(jié)點數(shù)量的增加變得更加顯著。此外,接收探聽請求的其他高速緩沖由于響應操作而使作為所述其他高速緩沖的真正目的的來自CPU的請求變得延遲,并且這導致了性能的下降。
【發(fā)明內(nèi)容】
[0008]在一個方面,實施例的目的是提供能夠在保持高速緩沖一致性的同時提高處理性能的處理設備。
[0009]一種處理設備,具有:存儲主存儲器的部分數(shù)據(jù)的副本的高速緩沖存儲器;訪問高速緩沖存儲器中的數(shù)據(jù)的中央處理單元;控制高速緩沖存儲器的高速緩沖控制器;以及無效歷史表,其中,當從另一處理設備輸入無效請求時,高速緩沖控制器將無效請求具有的一組無效請求地址和輸出無效請求的該另一處理設備的標識符寄存在無效歷史表中,并且當中央處理單元試圖讀取沒有存儲在高速緩沖存儲器中的第一地址處的數(shù)據(jù)時,如果第一地址寄存在無效歷史表中,則高速緩沖控制器將包含第一地址的一致讀取請求輸出至輸出了與第一地址對應的無效請求的該另一處理設備的標識符所指示的該另一處理設備,或者如果第一地址沒有寄存在無效歷史表中,則高速緩沖控制器將包含第一地址的一致讀取請求輸出至所有其他處理設備。
[0010]此外,一種處理設備,具有:存儲主存儲器的部分數(shù)據(jù)的副本的高速緩沖存儲器;訪問高速緩沖存儲器中的數(shù)據(jù)的中央處理單元;控制高速緩沖存儲器的高速緩沖控制器;以及一致讀取歷史表,其中,當從另一處理設備輸入一致讀取請求時,高速緩沖控制器將一致讀取請求具有的一組一致讀取請求地址和輸出一致讀取請求的該另一處理設備的標識符寄存在一致讀取歷史表中,并且當中央處理單元試圖重寫高速緩沖存儲器中的第二地址處的數(shù)據(jù)時,如果第二地址寄存在一致讀取歷史表中,則高速緩沖控制器將包含第二地址的無效請求輸出至與寄存在一致讀取歷史表中的第二地址對應的另一處理設備的標識符所指示的另一處理設備,或者如果第二地址沒有寄存在一致讀取歷史表中,則高速緩沖控制器將包含第二地址的無效請求輸出至所有其他處理設備。
【專利附圖】
【附圖說明】
[0011]圖1是例示根據(jù)實施例的處理系統(tǒng)的結(jié)構(gòu)示例的示圖;
[0012]圖2是例示根據(jù)實施例的處理系統(tǒng)的開關(guān)控制單元的結(jié)構(gòu)示例的示圖;
[0013]圖3是例示圖1的高速緩沖存儲器和高速緩沖控制器的一部分的結(jié)構(gòu)示例的示圖;
[0014]圖4是例示圖1的歷史表中的無效歷史表、比較器以及邏輯乘(與)電路的結(jié)構(gòu)示例的示圖;
[0015]圖5是例示圖1的歷史表中的一致讀取歷史表、比較器以及邏輯乘電路的結(jié)構(gòu)示例的示圖;
[0016]圖6是例不節(jié)點的讀取處理的流程圖;
[0017]圖7是例示節(jié)點的寫入處理的流程圖;
[0018]圖8是例示在本實施例中在執(zhí)行探聽請求之前和在執(zhí)行探聽請求之后高速緩沖存儲器的狀態(tài)如何變化的示圖;
[0019]圖9是例示在本實施例中在執(zhí)行探聽請求之前和在執(zhí)行探聽請求之后高速緩沖存儲器的狀態(tài)如何變化的示圖;以及
[0020]圖10是例示圖1的歷史表中的一致讀取歷史表的另一示例的示圖。
【具體實施方式】
[0021]圖1和圖2是例不根據(jù)實施例的處理系統(tǒng)的結(jié)構(gòu)不例的不圖。該處理系統(tǒng)具有第一節(jié)點I至第六節(jié)點6、開關(guān)SW12至SW67、主存儲器51、主存儲器控制器52、開關(guān)控制單元53以及寄存器R12至R67。圖2的節(jié)點I至6和開關(guān)SW12至SW67與圖1的節(jié)點I至6和開關(guān)SW12至SW67相同。
[0022]第一節(jié)點I是第一處理設備并且具有第一中央處理單元(CPU) 11、第一高速緩沖控制器21、第一高速緩沖存儲器31以及第一歷史表41。
[0023]第二節(jié)點2是第二處理設備并且具有第二 CPU12、第二高速緩沖控制器22、第二高速緩沖存儲器32以及第二歷史表42。
[0024]第三節(jié)點3是第三處理設備并且具有第三CPU13、第三高速緩沖控制器23、第三高速緩沖存儲器33以及第三歷史表43。
[0025]第四節(jié)點4是第四處理設備并且具有第四CPU14、第四高速緩沖控制器24、第四高速緩沖存儲器34以及第四歷史表44。
[0026]第五節(jié)點5是第五處理設備并且具有第五CPU15、第五高速緩沖控制器25、第五高速緩沖存儲器35以及第五歷史表45。
[0027]第六節(jié)點6是第六處理設備并且具有第六CPU16、第六高速緩沖控制器26、第六高速緩沖存儲器36以及第六歷史表46。
[0028]主存儲器51存儲進行處理的各個CPU的指令和CPU要處理的數(shù)據(jù)或者由處理產(chǎn)生的數(shù)據(jù)。主存儲器控制器52響應于來自每個節(jié)點的請求對主存儲器51進行控制。高速緩沖存儲器31至36每個均存儲主存儲器51中所存儲的地址中的部分地址處的數(shù)據(jù)的副本。CPUll至16是中央處理單元(處理器)并且每個均訪問主存儲器51或者高速緩沖存儲器31至36中的數(shù)據(jù)。高速緩沖控制器21至26分別對高速緩沖存儲器31至36進行控制。
[0029]開關(guān)SW12至SW67是用于形成使第一節(jié)點I至第六節(jié)點6互相連接的互耦合網(wǎng)絡的開關(guān)。開關(guān)SW12可以使第一節(jié)點I與第二節(jié)點2彼此連接。開關(guān)SW13可以使第一節(jié)點I與第三節(jié)點3彼此連接。開關(guān)SW14可以使第一節(jié)點I與第四節(jié)點4彼此連接。開關(guān)SW15可以使第一節(jié)點I與第五節(jié)點5彼此連接。開關(guān)SW16可以使第一節(jié)點I與第六節(jié)點6彼此連接。開關(guān)SW17可以使第一節(jié)點I與主存儲器控制器52彼此連接。
[0030]開關(guān)SW23可以使第二節(jié)點2與第三節(jié)點3彼此連接。開關(guān)SW24可以使第二節(jié)點2與第四節(jié)點4彼此連接。開關(guān)SW25可以使第二節(jié)點2與第五節(jié)點5彼此連接。開關(guān)SW26可以使第二節(jié)點2與第六節(jié)點6彼此連接。開關(guān)SW27可以使第二節(jié)點2與主存儲器控制器52彼此連接。
[0031]開關(guān)SW34可以使第三節(jié)點3與第四節(jié)點4彼此連接。開關(guān)SW35可以使第三節(jié)點3與第五節(jié)點5彼此連接。開關(guān)SW36可以使第三節(jié)點3與第六節(jié)點6彼此連接。開關(guān)SW37可以使第三節(jié)點3與主存儲器控制器52彼此連接。
[0032]開關(guān)SW45可以使第四節(jié)點4與第五節(jié)點5彼此連接。開關(guān)SW46可以使第四節(jié)點4與第六節(jié)點6彼此連接。開關(guān)SW47可以使第四節(jié)點4與主存儲器控制器52彼此連接。
[0033]開關(guān)SW56可以使第五節(jié)點5與第六節(jié)點6彼此連接。開關(guān)SW57可以使第五節(jié)點5與主存儲器控制器52彼此連接。
[0034]開關(guān)SW67可以使第六節(jié)點6與主存儲器控制器52彼此連接。
[0035]開關(guān)控制單元53響應于來自第一節(jié)點I至第六節(jié)點6的請求將數(shù)據(jù)Din以與時鐘信號CK同步的方式寫入至寄存器R12至R67。開關(guān)SW12至SW67分別根據(jù)寫入至寄存器R12至R16的數(shù)據(jù)來接通或者斷開。
[0036]圖2是開關(guān)控制的框圖。開關(guān)控制單元53接收從節(jié)點I至6發(fā)送的開關(guān)控制信號并且將各個開關(guān)的接通/斷開控制信息寫入至分別與開關(guān)SW12至SW67配對的寄存器R12至R67。例如,當寫入“I”時每個開關(guān)接通,而當寫入“O”時每個開關(guān)斷開。
[0037]圖3是例示圖1的高速緩沖存儲器31至36的結(jié)構(gòu)示例的示圖。與主存儲器51相比,高速緩沖存儲器31至36是高速率且小容量的存儲器并且通常在高速緩沖存儲器中存儲主存儲器的一部分的副本。設置有高速緩沖存儲器31至36,CPUll至16能夠以高速率訪問數(shù)據(jù)。圖3例示了直接映射方法和MESI協(xié)議的高速緩沖存儲器。高速緩沖存儲器31至36每個均存儲一組或更多組的標記304和數(shù)據(jù)303。標記304具有地址301和狀態(tài)302。通常,在數(shù)據(jù)303的一個行中,可以存儲主存儲器51的幾個字的數(shù)據(jù)。標記304和數(shù)據(jù)303的一個行的量稱作為一個條目。高速緩沖存儲器的地址輸入連接至CPU的低地址ADD1,并且在確定了 CPU的低地址ADDl時,讀出高速緩沖存儲器的一個條目的數(shù)據(jù)。狀態(tài)302指示無效狀態(tài)1、共享狀態(tài)S、獨有狀態(tài)E以及修改狀態(tài)M中的任一狀態(tài)。
[0038]無效狀態(tài)I指示與該狀態(tài)對應的地址301處的數(shù)據(jù)303為無效。當?shù)谝桓咚倬彌_存儲器31與第二高速緩沖存儲器32在相同的地址301處存儲相同的數(shù)據(jù)303時,如果改變第一高速緩沖存儲器31的地址301處的數(shù)據(jù)303,則有必要保持高速緩沖一致性。在該情況下,為了指示第二高速緩沖存儲器32的地址301處的數(shù)據(jù)303是舊數(shù)據(jù),將與第二高速緩沖存儲器32的地址301處的數(shù)據(jù)303對應的狀態(tài)302設定為無效狀態(tài)I。
[0039]共享狀態(tài)S指示多個高速緩沖存儲器共享在相同地址301處的相同數(shù)據(jù)303的狀態(tài)。例如,當在高速緩沖存儲器31至36中多個高速緩沖存儲器在相同地址301處存儲相同數(shù)據(jù)303時,在相同地址301處存儲相同數(shù)據(jù)303的多個高速緩沖存儲器的狀態(tài)302都變?yōu)楣蚕頎顟B(tài)S。
[0040]獨有狀態(tài)E指示僅一個高速緩沖存儲器在地址301處存儲數(shù)據(jù)303的狀態(tài)。例如,當在高速緩沖存儲器31至36中僅一個高速緩沖存儲器在地址301處存儲數(shù)據(jù)303時,該高速緩沖存儲器的狀態(tài)302變?yōu)楠氂袪顟B(tài)E。
[0041]修改狀態(tài)M指示中央處理單元已經(jīng)改變了高速緩沖存儲器中的地址301處的數(shù)據(jù)303的狀態(tài)。例如,當CPUll重寫了高速緩沖存儲器31中的地址301處的數(shù)據(jù)303時,高速緩沖存儲器31中與地址301處的數(shù)據(jù)303對應的狀態(tài)302變成修改狀態(tài)M。在該狀態(tài)下,高速緩沖存儲器31中的數(shù)據(jù)303與主存儲器51中的數(shù)據(jù)是不同的數(shù)據(jù)。
[0042]首先,將描述無效請求。如上所述,例如,當?shù)谝桓咚倬彌_存儲器31與第二高速緩沖存儲器32在相同地址301處存儲相同數(shù)據(jù)303時,與第一高速緩沖存儲器31和第二高速緩沖存儲器32的地址301處的數(shù)據(jù)303對應的狀態(tài)302都處在共享狀態(tài)S。在該狀態(tài)下,當?shù)谝?CPUll試圖重寫第一高速緩沖存儲器31中的地址301處的數(shù)據(jù)303時,CPU向所有其他的節(jié)點2至6輸出包含地址信息的無效請求,以便保持高速緩沖一致性。在第二節(jié)點2中,當通過使用所輸入的無效請求的地址信息讀取高速緩沖存儲器32時,在地址301中存在相同的地址并且在同一數(shù)據(jù)303中存在相同的數(shù)據(jù),并且共享狀態(tài)S作為狀態(tài)輸出,這是高速緩沖命中(hit)。在該情況下,根據(jù)來自第一節(jié)點I的無效請求,將第二高速緩沖存儲器32中與地址301處的數(shù)據(jù)303對應的狀態(tài)302設定為無效狀態(tài)I。此外,節(jié)點3至6通過使用所輸入的無效請求的地址信息讀取高速緩沖存儲器33至36。然而,在高速緩沖存儲器33至36中不存在無效請求的地址301處的數(shù)據(jù)303并且因此不進行無效處理,但是在該時段發(fā)生對各自高速緩沖存儲器的訪問并且來自CPU的訪問處于等待狀態(tài)。此外,如上所述,第一節(jié)點I經(jīng)由處在接通狀態(tài)(ON)的開關(guān)SW12至SW16向所有其他的節(jié)點2至6輸出相同的無效請求。在該情況下,所有的開關(guān)路徑被占用,因此其他節(jié)點之間的通信或者與主存儲器的通信受到干擾,這減少了開關(guān)結(jié)構(gòu)類型的總線一半的優(yōu)勢,并且降低了處理系統(tǒng)的性能。
[0043]在本實施例中,通過提供圖1的歷史表41至46,第一節(jié)點I不用將無效請求輸出至所有其他節(jié)點2至6,而是僅接通開關(guān)SW12并且僅將無效請求輸出至需要的另一節(jié)點2,從而未占用開關(guān)SW34至SW67。因此,可以確保其他節(jié)點之間的通信或者與主存儲器的通信,并且由于不進行對高速緩沖存儲器33至36的訪問,所以從CPU到各個高速緩沖存儲器的訪問不受干擾,從而提高了處理系統(tǒng)的性能。
[0044]接著,將描述一致讀取請求。例如,考慮如下情形,第一 CPUll對某一地址處的數(shù)據(jù)做出讀取請求,但是在第一高速緩沖存儲器31中不存在該地址處的數(shù)據(jù),這稱為失中(miss fit)。在該情況下,主存儲器51中該地址處的數(shù)據(jù)不一定是最新數(shù)據(jù)。也就是說,可以存在如下情形,第二節(jié)點2讀出主存儲器51中某一地址處的數(shù)據(jù)并且將該數(shù)據(jù)寫入至第二高速緩沖存儲器32,并且在此之后CPU12重寫高速緩沖存儲器32中的數(shù)據(jù)。在該情況下,第二高速緩沖存儲器32中與該地址處的數(shù)據(jù)對應的狀態(tài)302變成修改狀態(tài)M。在該情況下,第二高速緩沖存儲器32中的數(shù)據(jù)是最新的并且與主存儲器51中的數(shù)據(jù)不匹配。因此,第一節(jié)點I通常向所有的其他節(jié)點2至6輸出該地址的一致讀取請求,以便保持高速緩沖一致性。在該情況下,由于與所輸入的一致讀取請求的地址處的數(shù)據(jù)對應的狀態(tài)302為修改狀態(tài)M,所以第二節(jié)點2將第二高速緩沖存儲器32中該地址處的最新數(shù)據(jù)寫回至主存儲器51,并且第一節(jié)點I讀取主存儲器51中該地址處的最新數(shù)據(jù)并且將該最新數(shù)據(jù)寫入至高速緩沖存儲器31。此外,在節(jié)點3至6中,在高速緩沖存儲器33至36中不存在所輸入的一致讀取請求的地址處的數(shù)據(jù),但是在該時段內(nèi)由于一致讀取請求而發(fā)生對高速緩沖存儲器的訪問并且來自CPU的訪問處于等待狀態(tài)。如上所述,第一節(jié)點I經(jīng)由處在接通狀態(tài)的開關(guān)SW12至SW16向所有的其他節(jié)點2至6輸出相同的一致讀取請求。在該情況下,所有的開關(guān)路徑被占用,因此其他CPU之間的通信或者與主存儲器的通信受到干擾,這減少了開關(guān)結(jié)構(gòu)類型的總線一半的優(yōu)勢,并且降低了處理系統(tǒng)的性能。
[0045]在本實施例中,通過提供圖1的歷史表41至46,第一節(jié)點I不用將一致讀取請求輸出至所有的其他節(jié)點2至6,而是僅接通開關(guān)SW12并且僅將請求輸出至需要的另一節(jié)點2,從而未占用開關(guān)SW34至SW67。因此,可以確保其他節(jié)點之間的通信或者與主存儲器的通信,并且由于不進行對高速緩沖存儲器33至36的訪問,所以從各個CPU到高速緩沖存儲器的訪問不受干擾,從而提高了處理系統(tǒng)的性能。
[0046]以下將詳細描述本實施例的示例。圖1的歷史表41至46每個均包括圖4的無效歷史單元和圖5的一致讀取歷史單元。圖4的無效歷史單元包括無效歷史表MT、比較器404以及邏輯乘(與)電路405。標記區(qū)段401存儲與圖3的高速緩沖存儲器的地址301類似的高地址ADD2,其中無效位402為“O”指示無效歷史表IHT的該行為無效,而無效位402為“I”指示無效歷史表IHT的該行為有效。節(jié)點編號403指示從哪個節(jié)點接收無效請求并且將該節(jié)點編號存儲在其中。圖5的一致讀取歷史單元包括一致讀取歷史表RHT、比較器504以及邏輯乘(與)電路505。標記區(qū)段501存儲與圖3的高速緩沖存儲器的地址301類似的高地址ADD2,其中讀取位502為“O”指示一致讀取歷史表RHT的該行為無效,而讀取位502為“I”指示一致讀取歷史表RHT的該行為有效。節(jié)點編號503指示從哪個節(jié)點接收一致讀取請求并且將該節(jié)點編號存儲在其中。在初始化時歷史表為無效,即,無效位402和讀取位502為“O”。比較器504將由一致讀取歷史表RHT輸出的標記501與高地址ADD2相比較,并且當二者匹配時輸出“I”而當二者不匹配時輸出“O”。邏輯乘電路505將比較器504的輸出值與由一致讀取歷史表RHT輸出的讀取位502的邏輯乘值作為讀取狀態(tài)RS輸出。
[0047]圖10是例示一致讀取歷史單元的另一實施例的示圖。一致讀取歷史單元包括一致讀取歷史表RHT、比較器904和邏輯乘(與)電路905以及邏輯和(或)電路906,其中一致讀取歷史表RHT包括標記區(qū)段901和節(jié)點映射區(qū)段902。標記區(qū)段901存儲與圖3的高速緩沖存儲器的地址301類似的高地址ADD2,并且在節(jié)點映射區(qū)段902中,“O”指示一致讀取請求不是來自與該位位置對應的節(jié)點,而“ I”指示一致讀取請求來自與該位位置對應的節(jié)點。邏輯和電路906輸出節(jié)點映射區(qū)段902的各個有效節(jié)點位RN的邏輯和,并且當任一節(jié)點位為“I”時,邏輯和電路906的輸出變?yōu)椤癐”。標記區(qū)段901的輸出與高地址ADD2通過比較器904進行比較,并且當它們匹配時比較器904的輸出變?yōu)椤?I ”。邏輯乘電路905將邏輯和電路906的輸出與比較器904的輸出的邏輯乘值作為讀取狀態(tài)RS輸出。當讀取狀態(tài)RS為“I”時,這指示來自節(jié)點映射區(qū)段902的輸出節(jié)點位為有效。
[0048]圖8和圖9例示了當從操作前的高速緩沖存儲器的狀態(tài)以及無效歷史表IHT的狀態(tài)和一致讀取歷史表RHT的狀態(tài)進行讀/寫操作時的探聽和數(shù)據(jù)流,并且還表示了操作后的狀態(tài)。在下文中,將參照圖1至圖5來描述本實施例中的重要部分。注意,以下圓括號中的編號的說明對應于圖8和圖9中的“說明”所示出的編號。
[0049](I)當從另一節(jié)點接收無效請求時
[0050]在由CPUll執(zhí)行寫入指令,在第一節(jié)點I中高速緩沖存儲器31的狀態(tài)為共享,并且在歷史表41中RS= “O”即無效的情況下,第一節(jié)點I向各個節(jié)點廣播無效請求。如果第二節(jié)點2中的高速緩沖存儲器32共享數(shù)據(jù)并且狀態(tài)=共享,則高速緩沖存儲器32中的狀態(tài)被無效,并且包含標記區(qū)段401中的高地址ADD2、無效位402中的值“I”以及節(jié)點編號403中的節(jié)點編號“ I ”的無效歷史信息寄存在歷史表42中的無效歷史表IHT中由低地址ADDl選擇的行上。此外,在本示例的情況下,對其他節(jié)點3至6的無效請求導致失中,因此不進行對歷史表43至46中的無效歷史表的寫入。然后,高速緩沖控制器21重寫高速緩沖存儲器31的數(shù)據(jù),并且將高速緩沖存儲器31中的狀態(tài)改變?yōu)樾薷摹?br>
[0051](2)當從另一節(jié)點接收一致讀取請求時
[0052]當?shù)谝?CPUll對某一地址處的數(shù)據(jù)做出讀取請求時,如果在第一高速緩沖存儲器31中不存在該地址處的數(shù)據(jù)(這是失中),并且此外在歷史表41中的無效歷史表中無效IS=O,則向各個節(jié)點發(fā)出一致讀取請求。
[0053](2-1)在接收一致讀取請求的各個節(jié)點中在高速緩沖存儲器32至36中沒有命中(失中)的任一高速緩沖存儲器不訪問一致讀取歷史表。
[0054](2-2)當接收一致讀取請求的高速緩沖存儲器32至36中的任一高速緩沖存儲器命中,例如,高速緩沖存儲器32在狀態(tài)=獨有的情形下命中時,高速緩沖存儲器32的狀態(tài)改變?yōu)楣蚕?,并且以下信息寫入至歷史表42中的一致讀取歷史表低地址ADDl處。[I]高地址ADD2寫入至標記區(qū)段501,[2] “I”寫入至讀取位區(qū)段502,以及[3]發(fā)出一致讀取請求的節(jié)點編號寫入至節(jié)點編號區(qū)段503。接著,向請求節(jié)點報告命中的發(fā)生并且從主存儲器51讀取讀出數(shù)據(jù)并且將讀出數(shù)據(jù)發(fā)送至請求節(jié)點。請求側(cè)節(jié)點中高速緩沖存儲器的狀態(tài)變?yōu)楣蚕怼?br>
[0055](2-3)當接收一致讀取請求的高速緩沖存儲器32至36中的任一高速緩沖存儲器命中,例如,高速緩沖存儲器32在狀態(tài)=修改的情形下命中時,高速緩沖存儲器32的狀態(tài)改變?yōu)楣蚕恚⑶乙韵滦畔懭胫翚v史表42中的一致讀取歷史表低地址ADDl處。[I]高地址ADD2寫入至標記區(qū)段501,[2] “I”寫入至讀取位區(qū)段502,以及[3]發(fā)出一致讀取請求的節(jié)點編號寫入至節(jié)點編號區(qū)段503。接著,向請求節(jié)點報告命中的發(fā)生,并且從高速緩沖存儲器32讀取的數(shù)據(jù)寫回主存儲器51并且發(fā)送至請求源節(jié)點。請求源節(jié)點中高速緩沖存儲器的狀態(tài)變?yōu)楣蚕怼?br>
[0056](2-4)當接收一致讀取請求的高速緩沖存儲器32至36中的任一高速緩沖存儲器命中并且例如高速緩沖存儲器32和高速緩沖存儲器33共享數(shù)據(jù)時,兩個高速緩沖存儲器都在狀態(tài)=共享的情形下命中。在該情況下,在兩個歷史表42和43中的一致讀取歷史表中的低地址ADDl處,“O”寫入至讀取位區(qū)段502以將讀取位區(qū)段502改變?yōu)闊o效。在圖5中,歷史表中的一致讀取歷史表503中僅可以存儲一個節(jié)點編號,也就是說,當一致讀取歷史表為有效時,從作為請求源的節(jié)點僅向一個其他節(jié)點發(fā)出一致讀取請求。因此,當三個或更多個節(jié)點共享數(shù)據(jù)并且由共享數(shù)據(jù)的節(jié)點中的任一節(jié)點向其他節(jié)點發(fā)出無效請求時,有必要向兩個節(jié)點發(fā)出請求。然而,在圖5中不存在這種功能,因此請求需要廣播,即向所有的節(jié)點發(fā)出請求。因此,進行寫入,以使得一致讀取歷史表無效。當然,當一致讀取歷史表擴展為使得能夠存儲兩個節(jié)點編號時,即使在由三個節(jié)點共享數(shù)據(jù)時也可以表現(xiàn)本實施例的效果。此外,本實施例的一個擴展是圖10的實施例。在圖10的示例中,為了存儲發(fā)出一致讀取請求的所有節(jié)點,在一致讀取歷史表RHT中設置節(jié)點映射區(qū)段902,其中各個位與節(jié)點逐一對應,并且即使在從兩個或更多個節(jié)點接收一致讀取請求時也可以存儲請求所來自的所有節(jié)點。接著,向請求節(jié)點報告命中的發(fā)生,并且從主存儲器51讀取讀出數(shù)據(jù)并且將該讀出數(shù)據(jù)發(fā)送至請求節(jié)點。在請求側(cè)節(jié)點中高速緩沖存儲器的狀態(tài)變?yōu)楣蚕怼?br>
[0057](3)當節(jié)點發(fā)出一致讀取請求時
[0058]當節(jié)點I中的CPUll讀取高速緩沖存儲器31時,如果在高速緩沖存儲器31中不存在需要的數(shù)據(jù),即,高速緩沖存儲器中的狀態(tài)為無效或失中,則高速緩沖控制器21讀取歷史表中的無效歷史表IHT與其訪問高速緩沖存儲器31的地址一樣的地址處。無效歷史表IHT輸出指示與低地址ADDl對應的高地址的標記區(qū)段401、無效位402以及節(jié)點編號403。當無效歷史信息沒有寄存在無效歷史表IHT中時,無效位402具有值“I”。作為節(jié)點編號403,例如,第二節(jié)點2的編號作為節(jié)點編號IN輸出。比較器404將由無效歷史表IHT輸出的標記區(qū)段401與高地址ADD2進行比較,并且當二者匹配時輸出“I”或者當二者不匹配時輸出“O”。邏輯乘電路405將比較器404的輸出值與無效歷史表IHT輸出的無效位402的邏輯乘值作為無效狀態(tài)IS輸出。
[0059]當?shù)刂返臒o效歷史信息寄存在無效歷史表IHT中時,無效狀態(tài)IS變?yōu)椤癐”并且確定出所寄存的節(jié)點編號IN為有效。另一方面,當無效歷史信息沒有寄存在無效歷史表IHT中時,無效狀態(tài)IS變?yōu)椤癘”。
[0060]當歷史表的輸出,無效狀態(tài)IS為“I”時,高速緩沖控制器21僅接通開關(guān)SW12,以使得將包含地址的一致讀取請求僅輸出至由節(jié)點編號IN指示的編號的節(jié)點,例如在編號為“2”的情況下執(zhí)行一致讀取的編號2節(jié)點。因此,不會僅由該一致讀取占用所有的開關(guān)路徑,并且可以提高處理系統(tǒng)的性能。此外,不再發(fā)生對沒有必需數(shù)據(jù)的節(jié)點中的高速緩沖存儲器進行一致讀取,因此使得CPU的訪問延遲能夠減少。
[0061]將描述有必要僅向節(jié)點2發(fā)出一致讀取請求的原因。當數(shù)據(jù)由節(jié)點I和節(jié)點2共享時,如果節(jié)點2試圖重寫該數(shù)據(jù),則節(jié)點2向其他節(jié)點1、3至6發(fā)出無效請求。該無效請求在節(jié)點I中命中,因此如(I)所述,相關(guān)高速緩沖行無效并且該信息的無效地址和節(jié)點編號寫入無效歷史表中。此后,如果試圖讀取節(jié)點I中的高速緩沖行,則因高速緩沖行已經(jīng)無效而發(fā)生高速緩沖失中。然而,當讀取無效歷史表時,可以看出使該高速緩沖行無效的節(jié)點為編號2節(jié)點。即,可以看出很可能過去共享數(shù)據(jù)的節(jié)點2具有當前所需的數(shù)據(jù)。因此,可以看出僅僅必要向編號2節(jié)點發(fā)出一致讀取請求。如果節(jié)點2中不存在該數(shù)據(jù),則向所有其他的節(jié)點發(fā)出一致讀取請求。
[0062]當歷史表的輸出的無效狀態(tài)IS為“O”時,高速緩沖控制器21將包含地址的一致讀取請求輸出至所有其他的節(jié)點2至6。
[0063](4)當節(jié)點發(fā)出無效請求時
[0064]例如,當節(jié)點I和節(jié)點2共享某一地址處的數(shù)據(jù)并且節(jié)點I中的CPUll試圖對該地址執(zhí)行數(shù)據(jù)寫入時,CPU讀取為共享的高速緩沖存儲器31并且命中。在該情況下,高速緩沖控制器21讀取歷史表41中的一致讀取歷史表與訪問高速緩沖存儲器的地址一樣的地址處。當作為一致讀取歷史表的輸出的讀取位502為“I”即有效時,如果標記區(qū)段501的數(shù)據(jù)與所輸入的高地址ADD2匹配(RS= “1”),則發(fā)生命中,指示節(jié)點編號區(qū)段503的數(shù)據(jù)RN為有效。當RS= “I”即有效時,高速緩沖控制器21僅接通SW12以使得僅向由數(shù)據(jù)RN指示的編號=2的節(jié)點發(fā)出無效請求,并且發(fā)出該無效請求。因此,不會僅由該無效請求占用所有的開關(guān)路徑,并且可以提聞處理系統(tǒng)的性能。在接收無效請求的節(jié)點2中,相關(guān)聞速緩沖行無效,并且該信息寫入至無效歷史表。此外,不發(fā)生對沒有共享該數(shù)據(jù)的節(jié)點中的高速緩沖存儲器的無效訪問,因此使得CPU的訪問延遲能夠減少。在進行無效后,重寫節(jié)點I中的高速緩沖存儲器31中的數(shù)據(jù),并且狀態(tài)改變?yōu)樾薷摹?br>
[0065]將描述有必要僅向節(jié)點2發(fā)出無效請求的原因。作為本示例的假定,描述了節(jié)點I和節(jié)點2共享數(shù)據(jù)。然而,在共享數(shù)據(jù)之前,首先,例如,節(jié)點I中的高速緩沖存儲器31已經(jīng)從主存儲器51讀取了某一地址處的數(shù)據(jù),并且此后,當相同地址處的數(shù)據(jù)在節(jié)點2中變得必需時,節(jié)點2通過一致讀取請求獲得該數(shù)據(jù)。此時,響應于該一致讀取,節(jié)點I將高速緩沖存儲器31的狀態(tài)設定為共享,并且如(2)所述將相關(guān)地址和節(jié)點編號“2”的信息寫入至歷史表41中的一致讀取歷史表。也就是說,節(jié)點I知道與節(jié)點2共享該地址的數(shù)據(jù)。因此,當節(jié)點I對該地址發(fā)出無效請求時,可以看出僅需向節(jié)點2發(fā)出請求。
[0066]使用圖10描述一致讀取歷史表的示例,例如,節(jié)點1、2、3共享某一地址處的數(shù)據(jù),并且當節(jié)點I中的CPUll試圖在該地址處執(zhí)行數(shù)據(jù)的寫入時,CPU讀取為共享的高速緩沖存儲器31并且命中。在該情況下,高速緩沖控制器21讀取歷史表41中的一致讀取歷史表與訪問高速緩沖存儲器的地址一樣的地址處。如果作為一致讀取歷史表的輸出的標記區(qū)段901的數(shù)據(jù)與所輸入的高地址ADD2匹配并且節(jié)點映射區(qū)段中的任一節(jié)點位為“1”,則發(fā)生命中(RS=1),指示節(jié)點映射區(qū)段902的數(shù)據(jù)RN為有效。當RS= “ I”即有效時,高速緩沖控制器21僅接通開關(guān)SWl2和SWl3以使得僅向由數(shù)據(jù)RN=2和3指示的位的節(jié)點發(fā)出無效請求,并且發(fā)出該無效請求。
[0067]當歷史表41的輸出RS= “O”時,高速緩沖控制器21向所有的節(jié)點發(fā)出一致讀取請求。
[0068]圖6是例示當CPU讀取高速緩沖并且失中發(fā)生時的處理的流程圖。當高速緩沖命中發(fā)生時,CPU讀取高速緩沖存儲器的內(nèi)容并且處理結(jié)束。例如將描述在高速緩沖失中時第二節(jié)點2的處理,而其他節(jié)點1、3至6進行與第二節(jié)點2類似的處理。當?shù)诙?CPU12針對某一地址處的數(shù)據(jù)發(fā)出讀取請求時,如果第二高速緩沖存儲器32中不存在該地址處的數(shù)據(jù)并且失中發(fā)生時,則進行圖6的處理。
[0069]在步驟S601中,第二高速緩沖控制器22通過使用讀取請求的地址中的低地址ADDl作為輸入地址來讀取其自身的無效歷史表MT。此外,高地址ADD2變?yōu)槠渥陨淼谋容^器404的一側(cè)的輸入。無效歷史表IHT通過使用低地址ADDl作為輸入地址來輸出標記區(qū)段401、無效位402以及節(jié)點編號403。當?shù)刂返臒o效歷史信息寄存在無效歷史表IHT中時,無效狀態(tài)IS變?yōu)椤癐”并且所寄存的節(jié)點編號IN變?yōu)橛行АA鞒糖斑M至步驟S602。另一方面,當該地址的無效歷史信息沒有寄存在無效歷史表IHT中時,無效狀態(tài)IS變?yōu)椤癘”并且流程前進至步驟S604。
[0070]在步驟S602中,第二高速緩沖控制器22通過單播僅向例如由節(jié)點編號IN指示的第一節(jié)點I輸出一致讀取請求。
[0071]接著,在步驟S603中,當在接收一致讀取請求的節(jié)點I中的高速緩沖存儲器中發(fā)生失中時,節(jié)點2中的高速緩沖控制器22確定出節(jié)點I中存在所需的數(shù)據(jù),但是該數(shù)據(jù)在其中卻不存在。當由于高速緩沖存儲器31的容量小所以另一地址處的數(shù)據(jù)變得必需時發(fā)生這種情形,因而這些數(shù)據(jù)被重寫。在該情況下,流程前進至步驟S604。此外,當來自節(jié)點I的答復是高速緩沖命中時,高速緩沖控制器22前進至步驟S608。
[0072]在步驟S604中,高速緩沖控制器22通過廣播向所有的其他節(jié)點1、3至6輸出一致讀取請求。注意,在經(jīng)過上述步驟S602的情況下,對于在步驟S602中已經(jīng)向其輸出一致讀取請求的節(jié)點而言,不需要再次輸出一致讀取請求。
[0073]接著,在步驟S605中,當針對由高速緩沖控制器22發(fā)出的一致讀取請求在所有的其他節(jié)點1、3至6中發(fā)生高速緩沖失中時,處理前進至步驟S606。當在其他節(jié)點1、3至6中的至少一個節(jié)點中發(fā)生高速緩沖命中時,處理前進至步驟S608。
[0074]在步驟S606中,鑒于其他節(jié)點中不存在節(jié)點2所需的數(shù)據(jù),請求源的高速緩沖控制器22經(jīng)由主存儲器控制器52從主存儲器51讀取該地址處的數(shù)據(jù)。
[0075]接著,在步驟S607中,請求源的高速緩沖控制器22將從主存儲器讀取的數(shù)據(jù)寫入至與該地址對應的高速緩沖存儲器32,并且CPU12獲取數(shù)據(jù)。高速緩沖存儲器32的狀態(tài)改變?yōu)楠氂袪顟B(tài)E。因此,讀取處理結(jié)束。
[0076]步驟S608和稍后的步驟目標僅為針對來自節(jié)點2的一致讀取請求發(fā)生了高速緩沖命中的節(jié)點。任何不命中的節(jié)點結(jié)束。
[0077]在步驟S608中,高速緩沖控制器21、23至26中的每個高速緩沖控制器在其狀態(tài)302為獨有狀態(tài)E時前進至步驟S609、在其狀態(tài)302為共享狀態(tài)S時前進至步驟S611,或者在其狀態(tài)302為修改狀態(tài)M時前進至步驟S614。
[0078]在步驟S609中,節(jié)點1、3至6的高速緩沖控制器21、23至26將與高速緩沖存儲器31、33至36中針對其發(fā)出一致讀取請求的地址對應的高速緩沖行的狀態(tài)302改變?yōu)楣蚕頎顟B(tài)S。
[0079]接著,在步驟S610中,節(jié)點1、3至6的高速緩沖控制器21、23至26通過使用發(fā)出一致讀取請求的節(jié)點2的地址的低地址ADDl作為輸入地址來在一致讀取歷史表RHT中寄存高地址(標記)501、具有值“I”的讀取位502以及作為請求源的節(jié)點2的節(jié)點編號503。此后,流程前進至步驟S612。
[0080]在步驟S611中,節(jié)點1、3至6的高速緩沖控制器21、23至26通過使用發(fā)出一致讀取請求的節(jié)點2的地址的低地址ADDl作為輸入地址來在一致讀取歷史表RHT中將讀取位502改變?yōu)椤癘”以使讀取位502無效。之后,流程前進至步驟S612。
[0081]在步驟S612中,請求源的高速緩沖控制器22確定想要讀取的最新數(shù)據(jù)在主存儲器中,并且從主存儲器51中讀取必需地址的數(shù)據(jù)。此后,流程前進至步驟S613。
[0082]在步驟S614中,節(jié)點1、3至6的高速緩沖控制器21、23至26將與高速緩沖存儲器31、33至36中針對其發(fā)出一致讀取請求的地址對應的高速緩沖行的狀態(tài)302改變?yōu)楣蚕頎顟B(tài)S。
[0083]接著,在步驟S615中,節(jié)點1、3至6的高速緩沖控制器21、23至26通過使用發(fā)出一致讀取請求的節(jié)點2的地址的低地址ADDl作為輸入地址來在一致讀取歷史表RHT中寄存高地址(標記)501、具有值“I”的讀取位502以及作為請求源的節(jié)點2的節(jié)點編號503。
[0084]接著,在步驟S616中,一致地讀取的高速緩沖存儲器的狀態(tài)為M,這具體地指的是在高速緩沖存儲器31、33至36中的一個高速緩沖存儲器中存在最新數(shù)據(jù),因此其中數(shù)據(jù)存在的節(jié)點1、3至6的高速緩沖控制器21、23至26將從高速緩沖存儲器31、33至36讀取的數(shù)據(jù)寫回到主存儲器51。伴隨著寫回操作,這些數(shù)據(jù)返回作為請求源的節(jié)點2。此后,流程前進至步驟S613。
[0085]在步驟S613中,請求源的高速緩沖控制器22將所獲得的最新數(shù)據(jù)寫入高速緩沖存儲器32。同時,CPU12獲取這些數(shù)據(jù)。然后,相關(guān)高速緩沖行的狀態(tài)302改變?yōu)楣蚕頎顟B(tài)
S。因此,讀取處理結(jié)束。
[0086]圖7是例示第一節(jié)點I的寫入處理的流程圖。注意,該流程圖僅針對在CPU試圖寫入的地址處發(fā)生高速緩沖命中的情形。下面將描述作為示例的節(jié)點I的處理,但是節(jié)點2至6進行與第一節(jié)點I相同的處理。當?shù)谝?CPUll發(fā)出對其自身的高速緩沖存儲器31中的某一地址處的數(shù)據(jù)的寫入請求時,進行圖7的處理。
[0087]在步驟701中,高速緩沖控制器21在其試圖寫入的高速緩沖存儲器31中的地址命中高速緩沖行并且對應的狀態(tài)302為修改狀態(tài)M或獨有狀態(tài)E時前進至步驟S705,或者在對應的狀態(tài)302為共享狀態(tài)S時前進至步驟S702。注意,當狀態(tài)302為無效狀態(tài)I或者失中發(fā)生時,進行圖6中所例示的讀取失中的處理,并且此后進行圖7的處理。
[0088]在步驟S702中,高速緩沖控制器21通過使用前述寫入請求的地址中的低地址ADDl作為地址輸入來讀取一致讀取歷史表RHT,并且如果讀取位502為“I”即有效,并且由比較器504將高地址ADD2與標記區(qū)段501進行比較結(jié)果是匹配,則RS變?yōu)镮,指示節(jié)點編號503的輸出RN為有效。也就是說,當一致讀取歷史信息寄存在一致讀取歷史表RHT中時,讀取狀態(tài)RS變?yōu)椤癐”、所寄存的節(jié)點編號RN變?yōu)橛行?,并且流程前進至步驟S703。在這方面,當該地址的一致讀取歷史信息沒有寄存在一致讀取歷史表RHT中時,讀取狀態(tài)RS變?yōu)椤癘”,并且處理前進到步驟S706。
[0089]在步驟S703中,高速緩沖控制器21通過單播例如僅向由節(jié)點編號RN指示的第二節(jié)點2輸出無效請求。此后,流程前進至步驟S704。
[0090]在步驟S706中,高速緩沖控制器21通過廣播向所有的其他節(jié)點2至6輸出無效請求。此后,流程前進至步驟S704。
[0091]在步驟S704中,沒有發(fā)生高速緩沖命中的節(jié)點對發(fā)出無效請求的高速緩沖控制器21不進行操作,并且前進至步驟S705。其中發(fā)生命中的節(jié)點,例如第二高速緩沖控制器22,前進至步驟S707。
[0092]在步驟S707中,節(jié)點2至6的高速緩沖控制器22至26將在其自身的高速緩沖存儲器32至36中的對其發(fā)出無效請求的高速緩沖行所對應的狀態(tài)302改變?yōu)闊o效狀態(tài)I。
[0093]接著,在步驟S708中,節(jié)點2至6的高速緩沖控制器22至26通過使用前述無效請求的地址的低地址ADDl作為地址輸入來在其自身的無效歷史表IHT中的標記區(qū)段401、無效位區(qū)段402以及節(jié)點編號區(qū)段403中寄存高地址(標記)401、具有值“I”的無效位402以及作為請求源的第一節(jié)點I。此后,處理前進至步驟S705。
[0094]在步驟S705中,根據(jù)前述寫入請求,請求源的第一 CPUll將其數(shù)據(jù)寫入至其自身的高速緩沖存儲器31中的數(shù)據(jù)區(qū)段303,并且將狀態(tài)302改變?yōu)樾薷臓顟B(tài)M。因此,寫入處理結(jié)束。
[0095]注意,盡管圖1中描述了作為示例的使用開關(guān)SW12至SW67的互耦合網(wǎng)絡,但是可以使用任意其他的互耦合網(wǎng)絡例如環(huán)形總線或公用總線。此外,本實施例中的高速緩沖存儲器的結(jié)構(gòu)使用直接映射方法,但是當使用一組關(guān)聯(lián)的方法時,可以通過準備與其方式的數(shù)量對應的歷史表來適配該方法。此外,寫入屬于回寫方法,但是在沒有任何問題的情況下可以使用通寫方法(write through method)。此外,用指示無效狀態(tài)1、共享狀態(tài)S、獨有狀態(tài)E以及修改狀態(tài)M中的一個狀態(tài)的被稱作為MESI類型的示例描述了本實施例中的圖3的狀態(tài)302,但是還可以使用諸如MOESI的任意其他的方法。
[0096]在本實施例中,在其中多個CPU以彼此關(guān)聯(lián)的方式進行信息處理的處理系統(tǒng)中,通過識別應當接收探聽請求的CPU,減少了由多個CPU向所有其他CPU無條件輸出探聽請求的發(fā)生,并且減少了互耦合網(wǎng)絡上的數(shù)據(jù)擁塞,從而明顯地提高了互耦合網(wǎng)絡的性能。此夕卜,接收數(shù)量減少的探聽請求,高速緩沖存儲器可以專注于作為高速緩沖存儲器的真正目的的來自CPU的請求,并且這有助于處理性能提高。
[0097]應認為本實施例在所有方面都是說明性的而不是限制性的,并且因此意在將權(quán)利要求的等價的含義和范圍內(nèi)的所有變化包括在內(nèi)。在不違背本發(fā)明的精神或必要特征的情況下可以以其他特定形式體現(xiàn)本發(fā)明。
[0098]通過僅向寄存在無效歷史表中的另一處理設備輸出一致讀取請求或者僅向寄存在一致讀取歷史表中的另一處理設備輸出無效請求,減少了由多個處理設備向所有其他處理設備無條件輸出一致讀取請求或者無效請求,并且減少了互耦合網(wǎng)絡上的數(shù)據(jù)擁塞,從而提高了性能。此外,接收數(shù)量減少的一致讀取請求或無效請求,高速緩沖存儲器可以專注于作為高速緩沖存儲器的真正目的的來自中央處理單元的讀/寫請求,并且這有助于處理性能提聞。
【權(quán)利要求】
1.一種處理設備,包括: 高速緩沖存儲器,所述高速緩沖存儲器存儲主存儲器的部分數(shù)據(jù)的副本; 中央處理單元,所述中央處理單元訪問所述高速緩沖存儲器中的數(shù)據(jù); 高速緩沖控制器,所述高速緩沖控制器控制所述高速緩沖存儲器;以及 無效歷史表,其中: 當從另一處理設備輸入無效請求時,所述高速緩沖控制器將所述無效請求具有的一組無效請求地址和輸出所述無效請求的所述另一處理設備的標識符寄存在所述無效歷史表中;以及 當所述中央處理單元試圖讀取沒有存儲在所述高速緩沖存儲器中的第一地址處的數(shù)據(jù)時,如果所述第一地址寄存在所述無效歷史表中,則所述高速緩沖控制器將包含所述第一地址的一致讀取請求輸出至輸出了與所述第一地址對應的無效請求的另一處理設備的標識符所指示的所述另一處理設備,或者如果所述第一地址沒有寄存在所述無效歷史表中,則所述高速緩沖控制器將包含所述第一地址的一致讀取請求輸出至所有其他處理設備。
2.根據(jù)權(quán)利要求1所述的處理設備,其中, 當由于包含所述第一地址的所述一致讀取請求輸出至輸出了與所述無效歷史表中所寄存的所述第一地址對應的所述無效請求的所述另一處理設備的標識符所指示的所述另一處理設備而輸入來 自所述另一處理設備的所述第一地址處的數(shù)據(jù)處在無效狀態(tài)的指示時,所述高速緩沖控制器將包含所述第一地址的一致讀取請求輸出至所有其他處理設備。
3.一種處理設備,包括: 高速緩沖存儲器,所述高速緩沖存儲器存儲主存儲器的部分數(shù)據(jù)的副本; 中央處理單元,所述中央處理單元訪問所述高速緩沖存儲器中的數(shù)據(jù); 高速緩沖控制器,所述高速緩沖控制器控制所述高速緩沖存儲器;以及 一致讀取歷史表,其中: 當從另一處理設備輸入一致讀取請求時,所述高速緩沖控制器將所述一致讀取請求具有的一組一致讀取請求地址和輸出所述一致讀取請求的所述另一處理設備的標識符寄存在所述一致讀取歷史表中;以及 當所述中央處理單元試圖重寫所述高速緩沖存儲器中的第二地址處的數(shù)據(jù)時,如果所述第二地址寄存在所述一致讀取歷史表中,則所述高速緩沖控制器將包含所述第二地址的無效請求輸出至與寄存在所述一致讀取歷史表中的所述第二地址對應的另一處理設備的標識符所指示的所述另一處理設備,或者如果所述第二地址沒有寄存在所述一致讀取歷史表中,則所述高速緩沖控制器將包含所述第二地址的無效請求輸出至所有其他處理設備。
4.根據(jù)權(quán)利要求3所述的處理設備,其中, 當所述一組一致讀取請求地址和所述另一處理設備的標識符已經(jīng)寄存在所述一致讀取歷史表中并且存在來自另一處理設備對所述一致讀取歷史表在相同地址處的寄存請求時,所述一致讀取歷史表中在所述相同地址處的數(shù)據(jù)寄存被無效。
5.一種處理設備,包括: 高速緩沖存儲器,所述高速緩沖存儲器存儲主存儲器的部分數(shù)據(jù)的副本; 中央處理單元,所述中央處理單元訪問所述高速緩沖存儲器中的數(shù)據(jù);高速緩沖控制器,所述高速緩沖控制器控制所述高速緩沖存儲器;以及 一致讀取歷史表,其中: 當從另一處理設備輸入一致讀取請求時,所述高速緩沖控制器改變與所述一致讀取請求具有的一致讀取請求地址和輸出所述一致讀取請求的所述另一處理設備對應的位,以指示在所述一致讀取歷史表中存在一致讀取請求;以及 當所述中央處理單元輸入重寫所述高速緩沖存儲器中的第三地址處的數(shù)據(jù)的請求時,如果所述第三地址寄存在所述一致讀取歷史表中,則所述高速緩沖控制器將包含所述第三地址的無效請求輸出至與指示在所述一致讀取歷史表中存在一致讀取請求的位位置對應的另一處理設備,或者如果所述第三地址沒有寄存在所述一致讀取歷史表中,則所述高速緩沖控制器將包含所述第 三地址的無效請求輸出至所有其他處理設備。
【文檔編號】G06F12/08GK104077236SQ201410064639
【公開日】2014年10月1日 申請日期:2014年2月25日 優(yōu)先權(quán)日:2013年3月27日
【發(fā)明者】福田高利, 森健司郎, 高田修司 申請人:富士通株式會社