專利名稱:分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及一種分布式共享內(nèi)存(Distributed Shared Memory,簡稱DSM)多處理器系統(tǒng)(multiprocessors system),且特別涉及一種在DSM系統(tǒng)架構(gòu)下遠程節(jié)點讀取本地內(nèi)存維護裝置,尤其是一種分布式共享內(nèi)存系統(tǒng)節(jié)點。
請參考
圖1所示,其為一種分布式共享內(nèi)存(Distributed Shared Memory,以下簡稱DSM)系統(tǒng)節(jié)點架構(gòu)。一般來說,每一計算機系統(tǒng)架構(gòu)皆可視為一個DSM系統(tǒng)節(jié)點100。如圖所示,此計算機系統(tǒng)架構(gòu)可為多處理器的計算機系統(tǒng)架構(gòu)(當然,一個處理器的計算機系統(tǒng)架構(gòu)亦為可行)。其具有多個處理器110、120,經(jīng)由一系統(tǒng)總線160可連接至一內(nèi)存控制芯片130,并由內(nèi)存控制芯片130來控制本地內(nèi)存(Local Memory)150與多個處理器110、120間的存取動作。而內(nèi)存控制芯片130更可以連接至其它裝置來達成基本的輸入/輸出(I/O)控制。通常,內(nèi)存控制芯片130為北橋芯片。
其中,本地內(nèi)存150被區(qū)分為多個本地內(nèi)存線(Local Memory Line),以供存放數(shù)據(jù)。而處理器110及120可發(fā)出存取本地內(nèi)存線的數(shù)據(jù)存取請求至內(nèi)存控制芯片130并由內(nèi)存控制芯片130達成本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)存取。
在DSM系統(tǒng)節(jié)點架構(gòu)下,此節(jié)點(以下皆稱之為本地節(jié)點,Local Node)100與其它節(jié)點(以下皆稱之為遠程節(jié)點,Remote Node)系經(jīng)由一DSM控制器(以下簡稱DSM控制器)140來達成數(shù)據(jù)傳送與接收。而DSM控制器140在此本地節(jié)點100內(nèi)系連接至系統(tǒng)總線160并且以一內(nèi)部總線135連接至內(nèi)存控制芯片130。
當處理器110、120需要讀取遠程節(jié)點的內(nèi)存線的數(shù)據(jù)時,就必須利用本地節(jié)點100內(nèi)的DSM控制器140來與遠程節(jié)點內(nèi)的DSM控制器(未繪示)溝通,進而達成存取遠程節(jié)點內(nèi)的內(nèi)存線的數(shù)據(jù)。
由于每一個本地節(jié)點100均可與其它遠程節(jié)點共享自己的本地內(nèi)存150,故每一節(jié)點中必須具有一個儲存區(qū)一致性對照表(Memory CoherencyDirectory)。此對照表系DSM控制器140用來記錄本地內(nèi)存中每一本地內(nèi)存線的狀態(tài)。當遠程節(jié)點欲讀取本地節(jié)點100的本地內(nèi)存線的數(shù)據(jù)時,方可依據(jù)對照表中記錄的本地內(nèi)存線的狀態(tài),來決定讀取動作如何進行,以確保讀取正確數(shù)據(jù)。
請參考圖2所示,其為根據(jù)公知儲存區(qū)一致性對照表中針對本地內(nèi)存線的狀態(tài)圖。圖中顯示,公知對照表將本地內(nèi)存線區(qū)分為4種狀態(tài),分別說明如下HOME(本地)代表沒有任何遠程節(jié)點來讀取此本地內(nèi)存線的數(shù)據(jù)。
SHARED(共享)代表已有其它遠程節(jié)點已讀取本地內(nèi)存線的數(shù)據(jù),且此本地內(nèi)存線的數(shù)據(jù)尚未被更改。
GONE(已更改)代表已有一遠程節(jié)點已讀取本地內(nèi)存線的數(shù)據(jù),且此本地內(nèi)存線的數(shù)據(jù)已被遠程節(jié)點所更改。
WASH被更改過的本地內(nèi)存線的數(shù)據(jù)由遠程節(jié)點回傳到本地節(jié)點的過渡狀態(tài)。
接下來針對一個本地內(nèi)存線的數(shù)據(jù)變化并配合這些狀態(tài)的變動作一說明。在初始狀態(tài)時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表中對應(yīng)于此本地內(nèi)存線的狀態(tài)為HOME狀態(tài)。在HOME狀態(tài)下,此本地節(jié)點內(nèi)的處理器可以任意的存取此本地內(nèi)存線的數(shù)據(jù),并且此本地內(nèi)存線內(nèi)的數(shù)據(jù)僅存在于此本地節(jié)點內(nèi)。
在HOME狀態(tài)下,如路徑1所示,當遠程節(jié)點發(fā)出遠程讀取(remote readline),代表遠程節(jié)點要讀取本地內(nèi)存線的數(shù)據(jù)。此時,本地內(nèi)存線的數(shù)據(jù)會被傳送至遠程節(jié)點,因此,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME狀態(tài)改為SHARED狀態(tài)。亦即,在SHARED狀態(tài)下,本地內(nèi)存線的數(shù)據(jù)同時儲存在本地節(jié)點以及遠程節(jié)點。
在SHARED狀態(tài)下,如路徑2所示,當本地節(jié)點發(fā)出本地讀取無效(localread invalidate)或者本地無效(local invalidate)時,代表本地節(jié)點要更改本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由SHARED狀態(tài)改為HOME狀態(tài)。在HOME狀態(tài)下,此本地節(jié)點內(nèi)的處理器可以任意的存取此本地內(nèi)存線的數(shù)據(jù),并且此本地內(nèi)存線內(nèi)的數(shù)據(jù)僅存在于此本地節(jié)點內(nèi)。而原儲存于遠程節(jié)點內(nèi)的本地內(nèi)存線的數(shù)據(jù)是非曲直舊的數(shù)據(jù)因此會變?yōu)闊o效。
在SHARED狀態(tài)下,如路徑4所示,當遠程節(jié)點發(fā)出遠程釋放出此本地內(nèi)存線的數(shù)據(jù)(Remote rollout of shared copy)時,代表遠程節(jié)點放棄擁有此本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)也必須由SHARED狀態(tài)改為HOME狀態(tài)。在HOME狀態(tài)下,此本地節(jié)點內(nèi)的處理器可以任意的存取此本地內(nèi)存線的數(shù)據(jù),并且此本地內(nèi)存線內(nèi)的數(shù)據(jù)僅存在于此本地節(jié)點內(nèi)。
在SHARED狀態(tài)下,如路徑7所示,當遠程節(jié)點發(fā)出遠程無效(Remoteinvalidate)時,代表遠程節(jié)點要更改此本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由SHARED狀態(tài)改為GONE狀態(tài)。在GONE狀態(tài)之下,代表本地節(jié)點內(nèi)的本地內(nèi)存線的數(shù)據(jù)為舊的不正確的數(shù)據(jù),并且正確的更改的本地內(nèi)存線的數(shù)據(jù)現(xiàn)在儲存在遠程節(jié)點。
在HOME狀態(tài)下,如路徑6所示,當遠程節(jié)點發(fā)出遠程讀取無效(Remoteread invalidate)時,代表遠程節(jié)點要讀取并更改此本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME狀態(tài)改為GONE狀態(tài)。在GONE狀態(tài)之下,代表本地節(jié)點內(nèi)的本地內(nèi)存線的數(shù)據(jù)為舊的不正確的數(shù)據(jù),并且正確的更改的本地內(nèi)存線的數(shù)據(jù)現(xiàn)在儲存在遠程節(jié)點。
在GONE狀態(tài)下,如路徑8所示,當遠程節(jié)點發(fā)出釋出此本地內(nèi)存線的數(shù)據(jù)(Remote rollout of modified copy)時,代表遠程節(jié)點要將修改過后的本地內(nèi)存線的數(shù)據(jù)釋回至本地節(jié)點。本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由GONE狀態(tài)改為HOME狀態(tài)。此時,更改過后的本地內(nèi)存線的數(shù)據(jù)又重新回到本地節(jié)點。
在GONE狀態(tài)下,如路徑5所示,當本地節(jié)點發(fā)出本地讀取(Local readline)或者本地讀取無效(Local read invalidate),代表本地節(jié)點要讀取此本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)或者讀取之后要修改。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由GONE狀態(tài)改為WASH狀態(tài)。此WASH狀態(tài)系代表本地內(nèi)存線的數(shù)據(jù)由遠程節(jié)點回傳到本地節(jié)點的過渡狀態(tài)。
在WASH狀態(tài)下,如路徑9所示,當本地節(jié)點發(fā)出本地讀取并完成本地內(nèi)存線的數(shù)據(jù)的接收(Completion of local read line),代表本地節(jié)點僅要讀取此本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)并不作修改。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由WASH狀態(tài)改為SHARE狀態(tài)。亦即,在SHARE狀態(tài)下,本地內(nèi)存線的數(shù)據(jù)同時儲存在本地節(jié)點以及遠程節(jié)點。
在WASH狀態(tài)下,如路徑10所示,當本地節(jié)點發(fā)出本地讀取無效并完成本地內(nèi)存線的數(shù)據(jù)的接收(Completion of local read invalidate)時,代表本地內(nèi)存要讀取此本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)并作修改。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由WASH狀態(tài)改為HOME狀態(tài)。亦即,在HOME狀態(tài)下,本地內(nèi)存線的數(shù)據(jù)僅會儲存在本地節(jié)點。
以上的描述即為公知DSM系統(tǒng)節(jié)點之間共享本地內(nèi)存(local memory)的流程。故每一節(jié)點的DSM控制器必須維護一儲存區(qū)一致性對照表(memorycoherency directory),此對照表用來記錄本地內(nèi)存中每一本地內(nèi)存線(localmemory line)的狀態(tài),當遠程節(jié)點欲讀取此本地節(jié)點的本地內(nèi)存時,方可依據(jù)對照表中記錄的本地內(nèi)存線的狀態(tài),來決定讀取動作如何進行,以確保讀取正確數(shù)據(jù)。
然而,在公知的分布式共享內(nèi)存多處理器系統(tǒng)中,在HOME狀態(tài)下時。請參照圖1,當遠程節(jié)點要讀取本地內(nèi)存線的數(shù)據(jù)時,首先,本地節(jié)點100的DSM控制器140會在系統(tǒng)總線160發(fā)出一筆系統(tǒng)總線交易(System BusTransaction),用以詢問此本地內(nèi)存線的數(shù)據(jù)實際的位置所在。
(I)假設(shè)此本地內(nèi)存線的數(shù)據(jù)系存在處理器110或120的高速緩存(cachememory)中,則處理器110或120會發(fā)出一快取命中(Hit)命令,并送出此本地內(nèi)存線的數(shù)據(jù)至系統(tǒng)總線160,并且由內(nèi)存控制芯片130寫回本地內(nèi)存150,同時,DSM控制器140亦由系統(tǒng)總線160接收此本地內(nèi)存線的數(shù)據(jù)并且送至遠程節(jié)點。而此時本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)為SHRAE狀態(tài)。
(II)假設(shè)此本地內(nèi)存線的數(shù)據(jù)系儲存于本地內(nèi)存150內(nèi),則處理器110或120不會發(fā)出快取命中(Hit)命令,此時代表此內(nèi)存數(shù)據(jù)線存在于本地內(nèi)存150內(nèi)。因此,DSM控制器140會利用內(nèi)部總線135要求內(nèi)存控制芯片130將本地內(nèi)存線的數(shù)據(jù)送至DSM控制器140,之后送至遠程節(jié)點。而此時本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)為SHRAE狀態(tài)。
由于本地節(jié)點內(nèi)的儲存區(qū)一致性對照表內(nèi)記錄的HOME狀態(tài),在遠程節(jié)點要求讀取本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)時,沒有辦法得知此本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)的正確儲存位置(可能存在本地內(nèi)存內(nèi),高速緩存內(nèi),或者二者)。故DSM控制器140必須發(fā)出一系統(tǒng)總線交易詢問此本地內(nèi)存線的數(shù)據(jù)實際的位置所在。而在上述(II)狀況時,由于本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)已經(jīng)存在本地內(nèi)存150內(nèi),而DSM控制器140仍需要發(fā)出一系統(tǒng)總線交易來確認此本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)的儲存位置。因此,這個系統(tǒng)總線交易不僅會增加系統(tǒng)總線160的工作量,并且會延遲讀取本地內(nèi)存線的數(shù)據(jù)的時間。
為達上述及其它目的,本實用新型提供一種分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,包括至少一處理器;一系統(tǒng)總線耦接至該至少一處理器;一內(nèi)存控制芯片,耦接至該系統(tǒng)總線;一本地內(nèi)存,耦接至該內(nèi)存控制芯片,其中該本地內(nèi)存區(qū)分為多個本地內(nèi)存線;一DSM控制器,耦接至該系統(tǒng)總線;一內(nèi)部總線耦接于該DSM控制器與該內(nèi)存控制芯片;其中,所述處理器內(nèi)設(shè)有一遠程節(jié)點讀取信號接受模塊,該讀取信號接受模塊與所述DSM控制器相連,所述DSM控制器內(nèi)有一判斷模塊,該判斷模塊向該本地內(nèi)存內(nèi)該特定本地內(nèi)存線發(fā)出判斷信號,位于該本地內(nèi)存內(nèi)的該最新數(shù)據(jù),可經(jīng)由該內(nèi)部總線送至該遠程節(jié)點,即一遠程節(jié)點向處理器發(fā)出讀取該本地內(nèi)存內(nèi)的一特定本地內(nèi)存線讀取信號,該DSM控制器向該本地內(nèi)存內(nèi)發(fā)出該特定本地內(nèi)存線的一最新數(shù)據(jù)是否位于該本地內(nèi)存內(nèi)判斷信號,換言之,當一遠程節(jié)點要求讀取該本地內(nèi)存內(nèi)的一特定本地內(nèi)存線時,該DSM控制器判斷該特定本地內(nèi)存線的一最新數(shù)據(jù)是否位于該本地內(nèi)存內(nèi),并在該最新數(shù)據(jù)位于該本地內(nèi)存內(nèi)時,經(jīng)由該內(nèi)部總線索取該最新數(shù)據(jù)并送至該遠程節(jié)點。
該最新數(shù)據(jù)不位于該本地內(nèi)存內(nèi),該DSM控制器內(nèi)的該判斷模塊向所述處理器發(fā)出判斷信號,位于所述處理器內(nèi)的該最新數(shù)據(jù),可經(jīng)由該系統(tǒng)總線送至該遠程節(jié)點;換言之,該DSM控制器判斷出該最新數(shù)據(jù)不位于該本地內(nèi)存內(nèi)時,可再判斷該最新數(shù)據(jù)是否位于該至少一處理器內(nèi),并在該最新數(shù)據(jù)位于該至少一處理器內(nèi)時,經(jīng)由該系統(tǒng)總線發(fā)出一系統(tǒng)總線交易來索取該最新數(shù)據(jù)并送至該遠程節(jié)點。
該DSM控制器內(nèi)有一可維護一儲存區(qū)一致性對照表的維護判斷模塊,用以判斷該最新數(shù)據(jù)的位置。
為達上述及其它目的,本實用新型提供一種遠程節(jié)點讀取本地內(nèi)存維護裝置,用于第一遠程節(jié)點向本地節(jié)點要求讀取本地內(nèi)存線,至少包括該本地內(nèi)存線的HOME狀態(tài)可分為HOME-N、HOME-M兩個狀態(tài),當該本地內(nèi)存線在HOME-N或者SHARED狀態(tài)時,直接向本地內(nèi)存接收本地內(nèi)存線的數(shù)據(jù)并送至第一遠程節(jié)點;當該本地內(nèi)存線在GONE狀態(tài)時,直接向第二遠程節(jié)點讀取本地內(nèi)存線的數(shù)據(jù)并送至第一遠程節(jié)點;以及,當該本地內(nèi)存線系在HOME-M狀態(tài)時,則在系統(tǒng)總線上發(fā)起一交易用以讀取該本地內(nèi)存線的數(shù)據(jù),并由系統(tǒng)總線接收本地內(nèi)存線的數(shù)據(jù)并送至該第一遠程節(jié)點。
由上述的說明中可知,應(yīng)用本實用新型所提供的分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護方法及其應(yīng)用裝置,當遠程節(jié)點發(fā)出本地內(nèi)存線的讀取請求時,DSM控制器可得知最新數(shù)據(jù)的儲存位置,并在最短的時間之內(nèi)將最新數(shù)據(jù)響應(yīng)至遠程節(jié)點,而無須再發(fā)出系統(tǒng)總線交易,以確認其實際儲存位置,故可減少共享內(nèi)存間的數(shù)據(jù)讀取延遲。
為讓本實用新型的上述和其它目的、特征和優(yōu)點能更明顯易懂,下文特舉一較佳實施例,并配合附圖,作詳細說明如下。
HOME-M代表沒有任何遠程節(jié)點來讀取此本地內(nèi)存線,且最新的本地內(nèi)存線的數(shù)據(jù)不在本地內(nèi)存內(nèi),而是在處理器的高速緩存內(nèi)。
接下來針對一個本地內(nèi)存線數(shù)據(jù)的變化并配合這些狀態(tài)的轉(zhuǎn)換作一說明。在初始狀態(tài)時,本地節(jié)點(local node)內(nèi)的儲存區(qū)一致性對照表中對應(yīng)于此本地內(nèi)存線的狀態(tài)為HOME-N狀態(tài)。在HOME-N狀態(tài)之下,此本地節(jié)點內(nèi)的本地內(nèi)存擁有最新的本地內(nèi)存線的數(shù)據(jù)。
在HOME-N狀態(tài)之下,如路徑1所示,當遠程節(jié)點發(fā)出遠程讀取(Remoteread line),代表遠程節(jié)點要讀取本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME-N狀態(tài)改為SHARED狀態(tài)。亦即,在HOME-N狀態(tài)下,DSM控制器可直接經(jīng)由內(nèi)部總線來向內(nèi)存控制芯片要求本地內(nèi)存線的數(shù)據(jù)并送至遠程節(jié)點。因此,DSM控制器并不用發(fā)出系統(tǒng)總線交易。再者,在SHARED狀態(tài)下,本地內(nèi)存線的數(shù)據(jù)同時儲存在本地節(jié)點以及遠程節(jié)點。
在HOME-N狀態(tài)之下,如路徑2所示,當本地節(jié)點發(fā)出本地讀取無效(Localread invalidate)或者本地無效(Local invalidate)時,代表本地節(jié)點的處理器要更改本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME-N狀態(tài)改為HOME-M狀態(tài)。在HOME-M狀態(tài)之下,此本地節(jié)點內(nèi)的處理器可以更改此本地內(nèi)存線的數(shù)據(jù),并儲存在高速緩存內(nèi)。
在HOME-N狀態(tài)之下,如路徑6所示,當遠程節(jié)點發(fā)出遠程讀取無效(Remote read invalidate)時,代表遠程節(jié)點要讀取并更改此本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME-N狀態(tài)改為GONE狀態(tài)。在GONE狀態(tài)之下,代表本地節(jié)點內(nèi)的本地內(nèi)存線的數(shù)據(jù)為舊的不正確的數(shù)據(jù),并且最新的本地內(nèi)存線的數(shù)據(jù)現(xiàn)在儲存在遠程節(jié)點。而在HOME-N狀態(tài)下,DSM控制器可直接經(jīng)由內(nèi)部總線來向內(nèi)存控制芯片要求本地內(nèi)存線的數(shù)據(jù)并送至遠程節(jié)點供之修改。因此,DSM控制器并不用發(fā)出系統(tǒng)總線交易。
在HOME-M狀態(tài)之下,如路徑1所示,當遠程節(jié)點發(fā)出遠程讀取(Remoteread line),代表遠程節(jié)點要讀取本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME-M狀態(tài)改為SHARED狀態(tài)。亦即,在SHARED狀態(tài)下,本地內(nèi)存線的數(shù)據(jù)同時儲存在本地節(jié)點以及遠程節(jié)點。而在HOME-M狀態(tài)下,DSM控制器必須發(fā)出系統(tǒng)總線交易使得處理器發(fā)出快取命中(Hit)命令并提供最新的本地內(nèi)存線的數(shù)據(jù)至系統(tǒng)總線,用以儲存至本地內(nèi)存,同時DSM控制器亦會接收并送至遠程節(jié)點。
在HOME-M狀態(tài)之下,如路徑6所示,當遠程節(jié)點發(fā)出遠程讀取無效(Remote read invalidate)時,代表遠程節(jié)點要讀取并更改此本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME-M狀態(tài)改為GONE狀態(tài)。在GONE狀態(tài)之下,代表本地節(jié)點內(nèi)的本地內(nèi)存線的數(shù)據(jù)為舊的不正確的數(shù)據(jù),并且最新的本地內(nèi)存線的數(shù)據(jù)現(xiàn)在儲存在遠程節(jié)點。而在HOME-M狀態(tài)下,DSM控制器必須發(fā)出系統(tǒng)總線交易使得處理器發(fā)出快去命中(Hit)命令并提供最新的本地內(nèi)存線的數(shù)據(jù)至DSM控制器并送至遠程節(jié)點供之更改。
在HOME-M狀態(tài)之下,如路徑3所示,當本地節(jié)點發(fā)出本地讀取(Local readline)時,代表本地內(nèi)存線的數(shù)據(jù)由高速緩存寫回本地內(nèi)存。本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由HOME-M狀態(tài)改為HOME-N狀態(tài)。在HOME-N狀態(tài)之下,此時,本地節(jié)點內(nèi)的本地內(nèi)存擁有最新的本地內(nèi)存線的數(shù)據(jù)。
在SHARED狀態(tài)下,如路徑2所示,當本地節(jié)點發(fā)出本地讀取無效(Localread invalidate)或者本地無效(Local invalidate)時,代表本地節(jié)點要更改本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由SHARED狀態(tài)改為HOME-M狀態(tài)。在HOME-M狀態(tài)下,此本地節(jié)點內(nèi)的處理器可以更改此本地內(nèi)存線的數(shù)據(jù),并儲存在高速緩存內(nèi)。
在SHARED狀態(tài)下,如路徑4所示,當遠程節(jié)點發(fā)出遠程釋放出此本地內(nèi)存線的數(shù)據(jù)(Remote rollout of shared copy)時,代表遠程節(jié)點放棄擁有此本地內(nèi)存線的數(shù)據(jù)。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)也必須由SHARED狀態(tài)改為HOME-N狀態(tài)。在此狀態(tài)之下,本地內(nèi)存線的數(shù)據(jù)系儲存在本地節(jié)點的本地內(nèi)存內(nèi)。
在GONE狀態(tài)下,如路徑8所示,當遠程節(jié)點發(fā)出釋出此本地內(nèi)存線的數(shù)據(jù)(remote rollout of modified copy)時,代表遠程節(jié)點要將修改過后的本地內(nèi)存線的數(shù)據(jù)釋回至本地節(jié)點。本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由GONE狀態(tài)改為HOME-N狀態(tài)。修改過后的本地內(nèi)存線的數(shù)據(jù)又重新回到本地節(jié)點的本地內(nèi)存內(nèi)。
在WASH狀態(tài)下,如路徑10所示當本地節(jié)點發(fā)出本地讀取無效并完成本地內(nèi)存線的數(shù)據(jù)的接收(Completion of local read invalidate)時,代表本地內(nèi)存要讀取此本地內(nèi)存數(shù)據(jù)線的數(shù)據(jù)并作修改。此時,本地節(jié)點內(nèi)的儲存區(qū)一致性對照表會將此本地內(nèi)存線的狀態(tài)由WASH狀態(tài)改為HOME-M狀態(tài)。亦即,在HOME-M狀態(tài)下,本地內(nèi)存線的數(shù)據(jù)會被處理器更改并儲存于高速緩存內(nèi)。
上述為本實用新型將公知HOME狀態(tài)改為HOME-M狀態(tài)以及HOME-N狀態(tài)之后,這二個新的狀態(tài)與SHARED狀態(tài)、GONE狀態(tài)、以及WASH狀態(tài)之間的關(guān)系。在HOME-N狀態(tài)時,不論要跳至SHARED狀態(tài)或者GONE狀態(tài),DSM控制器可直接要求內(nèi)存控制芯片經(jīng)由內(nèi)部總線直接提供本地內(nèi)存線的數(shù)據(jù),并不需要再額外的發(fā)出系統(tǒng)總線交易來詢問此本地內(nèi)存線的數(shù)據(jù)的儲存位置,因此可降低系統(tǒng)總線的使用率,提升本地節(jié)點的工作效能。至于SHARED狀態(tài)、GONE狀態(tài)、以及WASH狀態(tài)之間的轉(zhuǎn)換關(guān)系,則與公知相同不再贅述。
上述為節(jié)點中的儲存區(qū)一致性對照表狀態(tài)變化維護說明,配合參考此儲存區(qū)一致性對照表,則DSM控制器可發(fā)展出如圖4所示的遠程節(jié)點讀取本地內(nèi)存維護方法。首先,接收到來自遠程節(jié)點發(fā)出的本地內(nèi)存線的讀取請求(S300)。然后判斷對照表中的本地內(nèi)存線狀態(tài)是否為HOME-N狀態(tài)或者SHARED狀態(tài)(S305)。
當在HOME-N狀態(tài)或者SHARED狀態(tài)時,代表本地內(nèi)存線的數(shù)據(jù)正儲存于本地內(nèi)存中,因此,直接經(jīng)由內(nèi)部總線向本地內(nèi)存要求此本地內(nèi)存線的數(shù)據(jù)(S310)并響應(yīng)遠程節(jié)點此本地內(nèi)存線的數(shù)據(jù)(S315)。
當現(xiàn)在并不在HOME-N狀態(tài)或者SHARED狀態(tài)時,則判斷對照表中的本地內(nèi)存線狀態(tài)是否為GONE狀態(tài)(S315)。當在GONE狀態(tài)時,代表本地內(nèi)存線的數(shù)據(jù)正儲存于其它遠程節(jié)點中,因此,直接向擁有本地內(nèi)存線的數(shù)據(jù)的遠程節(jié)點讀取更改后的此本地內(nèi)存線的數(shù)據(jù)并存回本地內(nèi)存(S325),并響應(yīng)遠程節(jié)點此本地內(nèi)存線的數(shù)據(jù)(S315)。
當現(xiàn)在并不在GONE狀態(tài)時,則判斷對照表中的本地內(nèi)存線狀態(tài)是否為HOME-M狀態(tài)(S330)。當在HOME-M狀態(tài)時,代表本地內(nèi)存線的數(shù)據(jù)正儲存于處理器的高速緩存內(nèi),因此,直接發(fā)出系統(tǒng)總線交易,當處理器響應(yīng)此本地內(nèi)存線的數(shù)據(jù)回本地內(nèi)存時,擷取此本地內(nèi)存線的數(shù)據(jù)(S335),并響應(yīng)遠程節(jié)點此本地內(nèi)存線的數(shù)據(jù)(S315)。
當現(xiàn)在并不在HOME-M狀態(tài)時,則判斷對照表中的本地內(nèi)存線狀態(tài)為WASH狀態(tài)(S340)。由于WASH狀態(tài)代表被更改過的本地內(nèi)存線的數(shù)據(jù)由遠程節(jié)點回傳到本地節(jié)點的過渡狀態(tài)。因此回到S305步驟,重新判斷其變更的狀態(tài),再依據(jù)其狀態(tài)決定進行的讀取動作程序。
綜上所述,本實用新型至少具有以下的優(yōu)點1當遠程節(jié)點欲讀取本地內(nèi)存時,在MOME-N的狀態(tài)下無須重復(fù)經(jīng)由系統(tǒng)總線發(fā)出確認本地內(nèi)存線的數(shù)據(jù)位置的系統(tǒng)總線交易,可節(jié)省系統(tǒng)總線的負擔,進而增進其效能。
2可降低遠程節(jié)點讀取本地內(nèi)存的讀取延遲。
雖然本實用新型已以一較佳實施例公開如上,然其并非用以限定本實用新型,任何本領(lǐng)域普通技術(shù)人員,在不脫離本實用新型的精神和范圍內(nèi),當可作各種等效變動與潤飾,因此本實用新型的保護范圍以權(quán)利要求為準。
權(quán)利要求1.一種分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,包括至少一處理器;一系統(tǒng)總線耦接至該至少一處理器;一內(nèi)存控制芯片,耦接至該系統(tǒng)總線;一本地內(nèi)存,耦接至該內(nèi)存控制芯片,其中該本地內(nèi)存區(qū)分為多個本地內(nèi)存線;一可判斷一最新數(shù)據(jù)是否位于該本地內(nèi)存的DSM控制器,耦接至該系統(tǒng)總線;一內(nèi)部總線,耦接于該DSM控制器與該內(nèi)存控制芯片;其中,所述的DSM控制器還包括一判斷模塊與該特定本地內(nèi)存線相連。
2.如權(quán)利要求1所述的分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,所述的DSM控制器與系統(tǒng)總線相連,該系統(tǒng)總線發(fā)出一系統(tǒng)總線交易來索取位于該至少一處理器內(nèi)的最新數(shù)據(jù)并送至該遠程節(jié)點。
3.如權(quán)利要求2所述的分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,所述的DSM控制器內(nèi)具有維護一儲存區(qū)一致性的對照表。
4.一種分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,包括至少一處理器;一系統(tǒng)總線耦接至該至少一處理器;一內(nèi)存控制芯片,耦接至該系統(tǒng)總線;一本地內(nèi)存,耦接至該內(nèi)存控制芯片,其中該本地內(nèi)存區(qū)分為多個本地內(nèi)存線;一DSM控制器,耦接至該系統(tǒng)總線;一內(nèi)部總線耦接于該DSM控制器與該內(nèi)存控制芯片;其中,所述的處理器內(nèi)包括一遠程節(jié)點讀取信號接受模塊,該讀取信號接受模塊與所述的DSM控制器相連,所述的DSM控制器還包括一判斷模塊,該判斷模塊向該本地內(nèi)存內(nèi)該特定本地內(nèi)存線發(fā)出判斷信號,位于該本地內(nèi)存內(nèi)的該最新數(shù)據(jù),可經(jīng)由該內(nèi)部總線送至該遠程節(jié)點。
5.如權(quán)利要求4所述的分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,所述的該DSM控制器內(nèi)的該判斷模塊向所述處理器發(fā)出判斷信號,位于所述處理器內(nèi)的該最新數(shù)據(jù),可經(jīng)由該系統(tǒng)總線送至該遠程節(jié)點。
6.如權(quán)利要求5所述的分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,該DSM控制器內(nèi)有一維護一儲存區(qū)一致性對照表的維護判斷模塊。
7.一種遠程節(jié)點讀取本地內(nèi)存維護裝置,用于第一遠程節(jié)點向本地節(jié)點要求讀取本地內(nèi)存線,其特征在于,該維護裝置直接向本地內(nèi)存接收本地內(nèi)存線的數(shù)據(jù)并送至第一遠程節(jié)點;還直接向第二遠程節(jié)點讀取本地內(nèi)存線的數(shù)據(jù)并送至第一遠程節(jié)點;還在系統(tǒng)總線上發(fā)起一交易用以讀取該本地內(nèi)存線的數(shù)據(jù),并由系統(tǒng)總線接收本地內(nèi)存線的數(shù)據(jù)并送至該第一遠程節(jié)點。
8.如權(quán)利要求7所述的遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,該本地內(nèi)存線的該HAME-N、該HOME-M、該SHARED狀態(tài)儲存在一儲存區(qū)一致性對照表。
9.如權(quán)利要求8所述的遠程節(jié)點讀取本地內(nèi)存維護裝置,其特征在于,儲存區(qū)一致性對照表還儲存一GONE狀態(tài)。
專利摘要本實用新型一種分布式共享內(nèi)存系統(tǒng)中遠程節(jié)點讀取本地內(nèi)存維護裝置。將原分布式共享內(nèi)存系統(tǒng)節(jié)點(DSM Node)中維護的儲存區(qū)一致性對照表(memory coherencydirectory)變更其區(qū)分種類,并由HOME狀態(tài),變更HOME-N狀態(tài)以及HOME-M狀態(tài)。當遠程節(jié)點發(fā)出本地內(nèi)存線的讀取請求時,DSM控制器可得知由儲存區(qū)一致性對照表得知此本地內(nèi)存線的最新數(shù)據(jù)的儲存位置,并在最短的時間內(nèi)將最新數(shù)據(jù)響應(yīng)至遠程節(jié)點,而無須再發(fā)出系統(tǒng)總線交易,以確認其實際儲存位置,故可減少共享內(nèi)存間的數(shù)據(jù)讀取延遲,以增進系統(tǒng)效能。
文檔編號G06F13/14GK2569238SQ0224092
公開日2003年8月27日 申請日期2002年7月1日 優(yōu)先權(quán)日2002年7月1日
發(fā)明者陳維龍, 賴瑾, 曾紋郁 申請人:威盛電子股份有限公司