欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)及其數(shù)據(jù)維護(hù)方法

文檔序號:7897412閱讀:192來源:國知局
專利名稱:具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)及其數(shù)據(jù)維護(hù)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種分布式共享內(nèi)存系統(tǒng)及其數(shù)據(jù)維護(hù)方法,特別涉及一種應(yīng)用于雙節(jié)點(diǎn)(two nodes)分布式共享內(nèi)存系統(tǒng)及其數(shù)據(jù)維護(hù)方法。
一個(gè)緊密耦合的并行處理系統(tǒng)包括有多個(gè)CPU及一個(gè)可供所有CPU存取的內(nèi)存,此結(jié)構(gòu)可視為由單個(gè)CPU系統(tǒng)所自然擴(kuò)展,故比較容易設(shè)計(jì)。但是,這種類型的并行處理系統(tǒng)存在一個(gè)很嚴(yán)重的瓶頸即,通過一條共享的總線使多個(gè)CPU在其上進(jìn)行存取操作,將會限制整體的系統(tǒng)規(guī)模;而且,連接過多的CPU將增加總線的負(fù)擔(dān)。
相反地,松散耦合并行處理系統(tǒng)則沒有上述緊密耦合并行處理系統(tǒng)所衍生的問題。松散耦合的并行處理系統(tǒng)為通過一個(gè)高速的網(wǎng)絡(luò)來連接許多獨(dú)立的計(jì)算機(jī)而組成的系統(tǒng)。如果設(shè)計(jì)人員精心設(shè)計(jì)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),松散耦合的并行處理系統(tǒng)往往可以比一個(gè)緊密耦合的并行處理系統(tǒng)更容易擴(kuò)充規(guī)模,使其可包含更多數(shù)量的處理器。但是,這種系統(tǒng)的所有通訊,必須同時(shí)在網(wǎng)絡(luò)上進(jìn)行,因此為達(dá)到一定的運(yùn)作效率,整體結(jié)構(gòu)的設(shè)計(jì)難度將比上述緊密耦合并行處理系統(tǒng)高許多。
為克服上述兩種并行處理系統(tǒng)的缺陷,一種新的分布式共享內(nèi)存(Distributed Shared Memory,DSM)系統(tǒng)被提出。分布式共享內(nèi)存系統(tǒng)可同時(shí)有緊密耦合并行處理系統(tǒng)容易設(shè)計(jì)和松散耦合并行處理系統(tǒng)容易擴(kuò)充規(guī)模的優(yōu)點(diǎn)。所以,從1980年代初開始,分布式共享內(nèi)存系統(tǒng)就一直是很活躍的研究領(lǐng)域,目前已有多個(gè)原型系統(tǒng)被實(shí)現(xiàn)。其中,以Cache CoherencyNon-Uniform Memory Access(ccNUMA)方式所構(gòu)成的分布式共享內(nèi)存系統(tǒng),即是本發(fā)明的研究重點(diǎn)所在。


圖1為公知的以ccNUMA方式所構(gòu)成的分布式共享內(nèi)存系統(tǒng)10結(jié)構(gòu)示例圖。其中,本發(fā)明所公開的分布式共享內(nèi)存系統(tǒng)10是以四個(gè)節(jié)點(diǎn)(包括一第一~第四節(jié)點(diǎn)11~14)為例,并通過一網(wǎng)絡(luò)結(jié)構(gòu)15而相互連接在一起。簡言之,在第一~第四節(jié)點(diǎn)11~14內(nèi)部都各包括有至少一處理器(例如,包括兩個(gè)處理器111、112或121、122或131、132或141、142)、一可控制輸入/輸出內(nèi)存控制芯片(為圖1中標(biāo)示的113、123、133、143)、一本地內(nèi)存(為圖1中標(biāo)示的1131、1231、1331、1431)、一DSM控制器(為圖1中標(biāo)示的114、124、134、144)、一外部高速緩存(又稱為L3高速緩存,為圖1中標(biāo)示的1141、1241、1341、1441)、一系統(tǒng)總線(為圖1中標(biāo)示的115、125、1 35、145)以及一內(nèi)部總線(為圖1中標(biāo)示的116、126、136、146);其中,該本地內(nèi)存1131、1231、1331、1431都可區(qū)分為多個(gè)本地內(nèi)存線(local memory line),以各自儲存多筆數(shù)據(jù)。另外,該外部高速緩存1141、1241、1341、1441也可區(qū)分為多個(gè)外部高速緩存(cache memory line),以各自儲存多筆外部緩存數(shù)據(jù)。
另外,每一個(gè)節(jié)點(diǎn)的DSM控制器114、124、134、144,都必須維護(hù)儲存其中一內(nèi)存儲存區(qū)一致性(memory coherency)對照表(圖未示出),以記錄各節(jié)點(diǎn)中每一本地內(nèi)存內(nèi)的所有本地內(nèi)存狀態(tài),當(dāng)任意一節(jié)點(diǎn)要讀取某一本地節(jié)點(diǎn)的特定本地內(nèi)存時(shí),方可跟據(jù)對照表中所記錄的特定本地內(nèi)存中的數(shù)據(jù)狀態(tài),來決定讀取操作如何進(jìn)行,以確保讀取正確數(shù)據(jù)。同時(shí),每一個(gè)節(jié)點(diǎn)的DSM控制器還必須維護(hù)一高速緩存一致性(cache memory coherency)對照表(圖未示出),以記錄各節(jié)點(diǎn)中每一外部高速緩存內(nèi)所有外部高速緩存的狀態(tài),當(dāng)任意一節(jié)點(diǎn)要讀取某一本地節(jié)點(diǎn)的特定外部高速緩存時(shí),方可跟據(jù)對照表中所記錄的特定外部高速緩存的數(shù)據(jù)狀態(tài),來決定讀取操作如何進(jìn)行,以確保讀取正確數(shù)據(jù)。
圖1所示該分布式共享內(nèi)存系統(tǒng)10的缺陷在于每一個(gè)節(jié)點(diǎn)的DSM控制器都是通過該網(wǎng)絡(luò)結(jié)構(gòu)15與其它節(jié)點(diǎn)的DSM控制器相電連接,如此一來,相互通訊的數(shù)據(jù)傳輸格式通常即會選擇諸如TCP/IP之類的網(wǎng)絡(luò)通訊協(xié)議作為彼此的溝通媒介。這樣對于具有超過兩個(gè)以上節(jié)點(diǎn)的分布式共享內(nèi)存系統(tǒng)而言是必要的,但對于僅需使用到兩個(gè)節(jié)點(diǎn)(即雙節(jié)點(diǎn))的分布式共享內(nèi)存系統(tǒng)而言,則會額外增加相互通訊時(shí)的復(fù)雜度,且因網(wǎng)絡(luò)傳輸時(shí)間較不易掌握,因此降低了整體系統(tǒng)運(yùn)作效能。
因此,對于僅具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),其中各DSM控制器間的連接方式,本發(fā)明直接以一總線進(jìn)行相互電連接,且各DSM控制器間的數(shù)據(jù)傳輸格式、各節(jié)點(diǎn)中的內(nèi)部總線和系統(tǒng)總線采用相同的總線格式。如此一來,不但可簡化節(jié)點(diǎn)間通訊復(fù)雜度,且可省去各節(jié)點(diǎn)內(nèi)部所使用的外部高速緩存,進(jìn)一步降低維護(hù)系統(tǒng)中各節(jié)點(diǎn)間數(shù)據(jù)一致性的運(yùn)作成本。
根據(jù)本發(fā)明上述構(gòu)想,其中當(dāng)任意一節(jié)點(diǎn)要求讀取另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)的一特定本地存儲器時(shí),另一節(jié)點(diǎn)的DSM控制器可判斷該特定本地內(nèi)存中的一最新數(shù)據(jù)是否位于該另一節(jié)點(diǎn)的本地內(nèi)存內(nèi),并在該最新數(shù)據(jù)位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)時(shí),由另一節(jié)點(diǎn)的內(nèi)部總線索取該最新數(shù)據(jù),并通過總線輸出至所直接電連接的該任意一節(jié)點(diǎn)DSM控制器。
根據(jù)本發(fā)明上述構(gòu)想,其中該另一節(jié)點(diǎn)的DSM控制器由另一節(jié)點(diǎn)內(nèi)部總線索取最新數(shù)據(jù)后,是用與另一節(jié)點(diǎn)的內(nèi)部總線格式相同數(shù)據(jù)傳輸格式,將該最新數(shù)據(jù)通過總線輸出至該任意一節(jié)點(diǎn)的DSM控制器中。
根據(jù)本發(fā)明上述的構(gòu)想,其中該另一節(jié)點(diǎn)的DSM控制器判斷出最新數(shù)據(jù)不位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)時(shí),可再判斷該最新數(shù)據(jù)是否位于該另一節(jié)點(diǎn)的至少一處理器內(nèi),并在該最新數(shù)據(jù)位于另一節(jié)點(diǎn)的至少一處理器內(nèi)時(shí),由該另一節(jié)點(diǎn)的系統(tǒng)總線發(fā)出一系統(tǒng)總線交易來索取最新數(shù)據(jù),并通過該總線輸出至所直接電連接的該任意一節(jié)點(diǎn)DSM控制器。
根據(jù)本發(fā)明上述構(gòu)想,其中該另一節(jié)點(diǎn)的DSM控制器由另一節(jié)點(diǎn)的系統(tǒng)總線索取該最新數(shù)據(jù)后,用與該另一節(jié)點(diǎn)的系統(tǒng)總線格式相同的數(shù)據(jù)傳輸格式,將最新數(shù)據(jù)通過總線輸出至任意一節(jié)點(diǎn)的DSM控制器中。
本發(fā)明還提供了一種具有雙節(jié)點(diǎn)分布式共享內(nèi)存的數(shù)據(jù)維護(hù)方法,應(yīng)用于具有一第一及第二分布式共享內(nèi)存節(jié)點(diǎn)的分布式共享內(nèi)存系統(tǒng)內(nèi)部,且任意一節(jié)點(diǎn)可向另一節(jié)點(diǎn)要求讀取該另一節(jié)點(diǎn)的特定本地內(nèi)存,該方法至少包括下列步驟判斷該另一節(jié)點(diǎn)特定本地內(nèi)存中的一最新數(shù)據(jù)是否位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi);以及當(dāng)該最新數(shù)據(jù)位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi),由該另一節(jié)點(diǎn)的內(nèi)部總線索取最新數(shù)據(jù),并輸出至以一總線直接相互電連接的該任意一節(jié)點(diǎn)。
根據(jù)本發(fā)明上述構(gòu)想,其中還包括下列步驟當(dāng)該最新數(shù)據(jù)不位于該另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)時(shí),判斷最新數(shù)據(jù)是否位于該另一節(jié)點(diǎn)的處理器內(nèi);以及當(dāng)最新數(shù)據(jù)位于該另一節(jié)點(diǎn)的處理器內(nèi)時(shí),由該另一節(jié)點(diǎn)的系統(tǒng)總線發(fā)出一系統(tǒng)總線交易來索取最新數(shù)據(jù),并通過該總線輸出至所直接電連接的任意一節(jié)點(diǎn)。
根據(jù)本發(fā)明上述構(gòu)想,其中在向該另一節(jié)點(diǎn)的內(nèi)部總線/系統(tǒng)總線索取最新數(shù)據(jù)后,是用與該另一節(jié)點(diǎn)的內(nèi)部總線/系統(tǒng)總線格式相同的數(shù)據(jù)傳輸格式,將該最新數(shù)據(jù)通過總線直接輸出至該任意一節(jié)點(diǎn)中。
根據(jù)本發(fā)明上述的構(gòu)想,其中判斷該最新數(shù)據(jù)所儲存的位置,是由一內(nèi)存儲存區(qū)一致性(memory coherency)對照表來決定。
圖2為本發(fā)明所公開的具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)較佳實(shí)施結(jié)構(gòu)示例圖。
圖3為本發(fā)明在具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)中以任意一節(jié)點(diǎn)向另一節(jié)點(diǎn)要求讀取另一節(jié)點(diǎn)的本地內(nèi)存的數(shù)據(jù)維護(hù)方法流程示例圖。
圖4為本發(fā)明中因響應(yīng)本地存取指令使儲存區(qū)一致性對照表中所對應(yīng)的本地內(nèi)存的數(shù)據(jù)存取狀態(tài)產(chǎn)生變化的狀態(tài)圖。
圖5為本發(fā)明中因響應(yīng)遠(yuǎn)程訪問指令使儲存區(qū)一致性對照表中所相對應(yīng)的本地內(nèi)存的數(shù)據(jù)存取狀態(tài)產(chǎn)生變化的狀態(tài)圖。
圖2為本發(fā)明所公開的具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)20較佳實(shí)施結(jié)構(gòu)示例圖。其中包括有一第一及第二分布式共享內(nèi)存節(jié)點(diǎn)21、22;且在任意一節(jié)點(diǎn)中都包括兩個(gè)處理器(為圖2中標(biāo)示的211、212或221、222)、一系統(tǒng)總線(為圖2中標(biāo)示的215或225)、一可控制輸入/輸出的內(nèi)存控制芯片(為圖2中標(biāo)示的213或223)、一本地內(nèi)存(為圖2中標(biāo)示的2131或2231)、一DSM控制器(為圖2中標(biāo)示的214或224)以及一內(nèi)部總線(為圖2中標(biāo)示的216或226)。其中,第一、第二節(jié)點(diǎn)21、22中的本地內(nèi)存2131、2231都可區(qū)分為多個(gè)本地內(nèi)存,以各自儲存多筆數(shù)據(jù)。而且圖2所示的該第一及第二分布式共享內(nèi)存節(jié)點(diǎn)21、22內(nèi)的各自DSM控制器214、224,彼此僅以一總線23直接相互電連接。
現(xiàn)再進(jìn)一步以圖3所公開的以任意一節(jié)點(diǎn)(例如,該第二節(jié)點(diǎn)22可看作一遠(yuǎn)程(remote)節(jié)點(diǎn))向另一節(jié)點(diǎn)(此時(shí)該第一節(jié)點(diǎn)21即相對視為一本地(local)節(jié)點(diǎn))要求讀取該另一節(jié)點(diǎn)的本地內(nèi)存數(shù)據(jù)維護(hù)方法的示例流程圖為例,并配合圖2所示的結(jié)構(gòu)說明如下當(dāng)該第二節(jié)點(diǎn)22要求讀取第一節(jié)點(diǎn)21的本地內(nèi)存2131內(nèi)的一特定本地內(nèi)存時(shí),該第一節(jié)點(diǎn)21內(nèi)部的DSM控制器214可根據(jù)儲存其中的儲存區(qū)一致性對照表(此對照表的儲存結(jié)構(gòu)為一公知技術(shù),故圖未示出),判斷該特定本地內(nèi)存中的一最新數(shù)據(jù)是否位于該第一節(jié)點(diǎn)21的本地內(nèi)存2131內(nèi),并在該最新數(shù)據(jù)位于本地內(nèi)存2131內(nèi)時(shí),由該第一節(jié)點(diǎn)21的內(nèi)部總線216直接索取該最新數(shù)據(jù),并通過該總線23用與內(nèi)部總線216格式相同的數(shù)據(jù)傳輸格式,將其輸出至所直接電連接的第二節(jié)點(diǎn)22的DSM控制器224。
另一方面,當(dāng)該DSM控制器214根據(jù)儲存區(qū)一致性對照表,判斷出最新數(shù)據(jù)不位于本地內(nèi)存2131內(nèi)時(shí),可再判斷最新數(shù)據(jù)是否位于第一節(jié)點(diǎn)21的兩個(gè)處理器211、212內(nèi),并在最新數(shù)據(jù)位于兩個(gè)處理器211、212中的一個(gè)內(nèi)(或兩者都有)時(shí),由系統(tǒng)總線215發(fā)出一系統(tǒng)總線交易來索取最新數(shù)據(jù),并通過總線23用與系統(tǒng)總線215格式相同的數(shù)據(jù)傳輸格式,將其輸出至所直接電連接的DSM控制器224。
由于第一、第二節(jié)點(diǎn)21、22內(nèi)部的DSM控制214、224是直接與總線23直接相互電連接,故第一、第二節(jié)點(diǎn)21、22間的運(yùn)作復(fù)雜度,顯然將會比公知技術(shù)采用網(wǎng)絡(luò)協(xié)議(例如,TCP/IP協(xié)議)時(shí)簡化許多。通過本發(fā)明可提高分布式共享內(nèi)存系統(tǒng)的整體運(yùn)作效率。且因本發(fā)明不必在DSM控制214、224下方加掛任何外部高速緩存(或稱為L3高速緩存),因此分布式共享內(nèi)存系統(tǒng)的實(shí)施成本也將比具有外部高速緩存時(shí)為低。
現(xiàn)再將上述在圖3中所公開的具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)中,以任意一節(jié)點(diǎn)(例如,圖2中第二節(jié)點(diǎn)22)向另一節(jié)點(diǎn)(例如,圖2中第一節(jié)點(diǎn)21)要求讀取該另一節(jié)點(diǎn)的本地內(nèi)存中數(shù)據(jù)維護(hù)方法,其示例流程圖的實(shí)施步驟整理如下步驟a開始;步驟b該第二節(jié)點(diǎn)22通過DSM控制器224向第一節(jié)點(diǎn)21要求讀取第一節(jié)點(diǎn)21的特定本地內(nèi)存中的最新數(shù)據(jù);步驟c該第一節(jié)點(diǎn)21的DSM控制器214根據(jù)儲存區(qū)一致性對照表,判斷最新數(shù)據(jù)是否位于本地內(nèi)存2131內(nèi);步驟d當(dāng)該最新數(shù)據(jù)位于本地內(nèi)存2131內(nèi),該DSM控制器214由第一節(jié)點(diǎn)21的內(nèi)部總線216直接索取最新數(shù)據(jù),并輸出至總線23直接相互電連接的第二節(jié)點(diǎn)22;其中,在DSM控制器214向第一節(jié)點(diǎn)21的內(nèi)部總線216索取最新數(shù)據(jù)后,是用與內(nèi)部總線216格式相同的數(shù)據(jù)傳輸格式,將最新數(shù)據(jù)通過總線23直接輸出至第二節(jié)點(diǎn)22中;步驟e當(dāng)該最新數(shù)據(jù)不位于本地內(nèi)存2131內(nèi)時(shí),該DSM控制器214根據(jù)儲存區(qū)一致性對照表,判斷最新數(shù)據(jù)是否位于第一節(jié)點(diǎn)21內(nèi)(即判斷最新數(shù)據(jù)是否位于處理器211、212中的一個(gè)內(nèi),或兩者都有);以及步驟f當(dāng)該最新數(shù)據(jù)位于第一節(jié)點(diǎn)21內(nèi)時(shí),該DSM控制器214由第一節(jié)點(diǎn)21的系統(tǒng)總線215發(fā)出系統(tǒng)總線交易來索取最新數(shù)據(jù),并通過總線23輸出至所直接電連接的第二節(jié)點(diǎn)22。
其中,在該DSM控制器214向第一節(jié)點(diǎn)21的系統(tǒng)總線215索取最新數(shù)據(jù)后,是用與系統(tǒng)總線215格式相同的數(shù)據(jù)傳輸格式,將最新數(shù)據(jù)通過總線23直接輸出至第二節(jié)點(diǎn)22中;步驟g結(jié)束。
由于上述本發(fā)明中任意一節(jié)點(diǎn)所各自具有的儲存區(qū)一致性對照表,為記錄任意一節(jié)點(diǎn)內(nèi)部的所有本地內(nèi)存中的數(shù)據(jù)被設(shè)置有這些本地內(nèi)存中的節(jié)點(diǎn)(稱為本地節(jié)點(diǎn)),以及與該本地節(jié)點(diǎn)相電連接的其它節(jié)點(diǎn)(稱為遠(yuǎn)程節(jié)點(diǎn))進(jìn)行存取后的狀態(tài),任意一節(jié)點(diǎn)內(nèi)部的所有本地內(nèi)存中的數(shù)據(jù)因響應(yīng)其內(nèi)部的處理器通過該系統(tǒng)總線215或225(請配合參閱圖2所示)所下達(dá)的本地存取指令,或因響應(yīng)通過該總線23(請配合參閱圖2所示者)而接收來自遠(yuǎn)程節(jié)點(diǎn)內(nèi)部處理器所下達(dá)的遠(yuǎn)程訪問指令,即會產(chǎn)生不同的存取狀態(tài)變化。以本發(fā)明為例,該儲存區(qū)一致性對照表中所對應(yīng)的任意一本地內(nèi)存中的數(shù)據(jù)存取狀態(tài)變化,可區(qū)分成下列五種狀態(tài)HOME-N代表沒有任何遠(yuǎn)程節(jié)點(diǎn)來讀取本地內(nèi)存中的數(shù)據(jù),且該本地內(nèi)存中的最新數(shù)據(jù)已經(jīng)儲存在本地內(nèi)存內(nèi)。
HOME-M代表沒有任何遠(yuǎn)程節(jié)點(diǎn)來讀取本地內(nèi)存中的數(shù)據(jù),且該本地內(nèi)存中的最新數(shù)據(jù)不在本地內(nèi)存內(nèi),而是儲存在處理器的內(nèi)部高速緩存(或稱之為L1或L2高速緩存)內(nèi)。
SHARED代表已有其它遠(yuǎn)程節(jié)點(diǎn)已讀取本地內(nèi)存中的數(shù)據(jù),且本地內(nèi)存中的數(shù)據(jù)尚未被更改。
GONE代表已有一遠(yuǎn)程節(jié)點(diǎn)已讀取本地內(nèi)存中的數(shù)據(jù),且本地內(nèi)存中的數(shù)據(jù)已被遠(yuǎn)程節(jié)點(diǎn)所更改。
WASH代表被更改過的本地內(nèi)存中的數(shù)據(jù)由遠(yuǎn)程節(jié)點(diǎn)回傳到本地節(jié)點(diǎn)的過渡狀態(tài)。
再請參閱圖4為本發(fā)明中因響應(yīng)本地存取指令而使儲存區(qū)一致性對照表中所相對應(yīng)的本地內(nèi)存中的數(shù)據(jù)存取狀態(tài)產(chǎn)生變化的狀態(tài)圖(state diagram)。其中,位于本地節(jié)點(diǎn)的系統(tǒng)總線215或225(請配合參閱圖2中所示)上的本地存取指令種類有BRL(local bus read line)代表本地節(jié)點(diǎn)內(nèi)部的處理器所下達(dá)本地讀取指令。
BRIL(local bus read invalidate line)代表本地節(jié)點(diǎn)內(nèi)部的處理器所下達(dá)本地讀取無效指令。
BIL(local bus invalidate line)代表本地節(jié)點(diǎn)內(nèi)部的處理器所下達(dá)本地?zé)o效指令。
BWL(local bus write line)代表本地節(jié)點(diǎn)內(nèi)部的處理器所下達(dá)本地寫入指令。
現(xiàn)再以第一節(jié)點(diǎn)21為一本地節(jié)點(diǎn),且第二節(jié)點(diǎn)22為一遠(yuǎn)程節(jié)點(diǎn)為例,因響應(yīng)上述這些本地存取指令后所可能產(chǎn)生的各種變化,配合圖4作一說明如下在初始狀態(tài)時(shí),儲存于第一節(jié)點(diǎn)21中的儲存區(qū)一致性對照表,其所對應(yīng)本地內(nèi)存2131中的一特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),可假設(shè)為HOME-N狀態(tài)。此時(shí),如果本地存取指令為BRL,因?yàn)镠OME-N狀態(tài)表示第一節(jié)點(diǎn)21內(nèi)部的處理器(即為該處理器211或212)可以任意地存取本地內(nèi)存2131中的特定本地內(nèi)存中的數(shù)據(jù),并且特定本地內(nèi)存中的數(shù)據(jù)僅存于第一節(jié)點(diǎn)21內(nèi),故特定本地內(nèi)存中的數(shù)據(jù)被處理器211或212讀取后,儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),仍維持為HOME-N狀態(tài)不變。
在HOME-N狀態(tài)下,如果本地存取指令換成BIL或BRIL時(shí),表示該處理器211或212要使本地內(nèi)存2131中特定本地內(nèi)存中的數(shù)據(jù)無效,或讀取且使本地內(nèi)存2131中特定本地內(nèi)存中的數(shù)據(jù)無效。此時(shí),該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)的存取狀態(tài),則由HOME-N狀態(tài)改為HOME-M狀態(tài)。在HOME-M狀態(tài)下,該特定本地內(nèi)存中的數(shù)據(jù)僅儲存于處理器211或212內(nèi)部高速緩存中,而且位于該本地內(nèi)存2131中特定本地內(nèi)存中的數(shù)據(jù)是處于無效狀態(tài)。
再則,在HOME-M狀態(tài)下,如果本地存取指令為BRIL,表示該處理器211或212要讀取本地內(nèi)存2131中特定本地內(nèi)存中的數(shù)據(jù),且使其無效。此時(shí),該特定本地內(nèi)存中的最新數(shù)據(jù)將僅儲存在處理器211或212的內(nèi)部高速緩存,故該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),仍然維持在HOME-M狀態(tài)。
在HOME-M狀態(tài)下,一旦本地存取指令換成BRL或BWL時(shí),代表該特定本地內(nèi)存中的數(shù)據(jù)會由處理器211或212的內(nèi)部高速緩存中寫入本地內(nèi)存2131中。該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)的存取狀態(tài),即會由HOME-M狀態(tài)改為HOME-N狀態(tài)。
在SHARED狀態(tài)下,如果本地存取指令為BRL,因?yàn)镾HARED狀態(tài)表示特定本地內(nèi)存中的數(shù)據(jù)同時(shí)儲存于第一與第二節(jié)點(diǎn)21、22中,因此該處理器211或212可直接讀取位于第一節(jié)點(diǎn)21中特定本地內(nèi)存中的數(shù)據(jù);同時(shí),該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),仍將維持SHARED狀態(tài)。
在SHARED狀態(tài)下,如果本地存取指令改為BIL或BRIL時(shí),表示該處理器211或212要使該特定本地內(nèi)存中的數(shù)據(jù)無效,或讀取且使該特定本地內(nèi)存中的數(shù)據(jù)無效。位于該第二節(jié)點(diǎn)22中的特定本地內(nèi)存中的數(shù)據(jù)副本會被丟棄,且可使該本地內(nèi)存2131中的特定本地內(nèi)存中的數(shù)據(jù)無效。如此一來,該特定本地內(nèi)存中的數(shù)據(jù)將僅儲存在處理器211或212的內(nèi)部高速緩存。該儲存區(qū)一致性對照表中對應(yīng)該特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),會由SHARED狀態(tài)改為HOME-M狀態(tài)。
在GONE狀態(tài)下,如果本地存取指令為BRL,表示雖然該特定本地內(nèi)存中的數(shù)據(jù)已被第二節(jié)點(diǎn)22所讀取并儲存于第二節(jié)點(diǎn)22中,但處理器211或212此刻要讀取特定本地內(nèi)存中的數(shù)據(jù)。此時(shí)位于第二節(jié)點(diǎn)22中特定本地內(nèi)存中的最新數(shù)據(jù)即應(yīng)被傳回第一節(jié)點(diǎn)21中,供處理器211或212進(jìn)行讀取。因此,儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會先由GONE狀態(tài)改為WASH狀態(tài),之后,待處理器211或212完成數(shù)據(jù)接收后,再由WASH狀態(tài)改為SHARED狀態(tài)。最后該特定本地內(nèi)存中的最新數(shù)據(jù)會同時(shí)儲存于第一及第二節(jié)點(diǎn)21、22中。
在GONE狀態(tài)下,如果本地存取指令為BRIL,表示雖然特定本地內(nèi)存中的數(shù)據(jù)已被第二節(jié)點(diǎn)22所修改并儲存于第二節(jié)點(diǎn)22中,但處理器211或212此刻要讀取特定本地內(nèi)存中的數(shù)據(jù),且使其無效。此時(shí)位于第二節(jié)點(diǎn)22中特定本地內(nèi)存中的最新數(shù)據(jù)即應(yīng)先傳回第一節(jié)點(diǎn)21中,供處理器21 1或212進(jìn)行讀取且更改,之后位于第二節(jié)點(diǎn)22中特定本地內(nèi)存中的最新數(shù)據(jù)要被丟棄。因此,該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會先由GONE狀態(tài)改為WASH狀態(tài),然后待該處理器211或212完成數(shù)據(jù)接收后,再由WASH狀態(tài)改為HOME-M狀態(tài)。最后該特定本地內(nèi)存中的數(shù)據(jù)僅會儲存于處理器211或212的內(nèi)部高速緩存中。
當(dāng)然在WASH狀態(tài)下,如果本地存取指令為BRL(或BRIL),表示該儲存區(qū)一致性對照表中對應(yīng)該特定本地內(nèi)存中的數(shù)據(jù)的存取狀態(tài),此刻處于一過渡階段,最終會因響應(yīng)本地存取指令BRL(或BRIL)而改為SHARED狀態(tài)(或HOME-M狀態(tài))。
再請參閱圖5為本發(fā)明中因響應(yīng)遠(yuǎn)程訪問指令而使儲存區(qū)一致性對照表中所相對應(yīng)的本地內(nèi)存中的數(shù)據(jù)存取狀態(tài)產(chǎn)生變化的狀態(tài)圖(state diagram)。其中,位于總線23(請配合參閱圖2中所示)上的遠(yuǎn)程訪問指令種類有LRL(remote read line)代表遠(yuǎn)程節(jié)點(diǎn)內(nèi)部處理器所下達(dá)的遠(yuǎn)程讀取指令。
LRIL(remote read invalidate line)代表遠(yuǎn)程節(jié)點(diǎn)內(nèi)部處理器所下達(dá)的遠(yuǎn)程讀取無效指令。
LIL(remote invalidate line)代表遠(yuǎn)程節(jié)點(diǎn)內(nèi)部處理器所下達(dá)的遠(yuǎn)程無效指令。
LWL(remote write line)代表遠(yuǎn)程節(jié)點(diǎn)內(nèi)部處理器所下達(dá)的遠(yuǎn)程寫入指令。
接下來,同樣以第一節(jié)點(diǎn)21為一本地節(jié)點(diǎn),第二節(jié)點(diǎn)22為一遠(yuǎn)程節(jié)點(diǎn)為例,因響應(yīng)上述這些遠(yuǎn)程訪問指令后所可能產(chǎn)生的各種變化,配合圖5作一說明如下在初始狀態(tài)時(shí),儲存在第一節(jié)點(diǎn)2 1中儲存區(qū)一致性對照表,其所對應(yīng)的一特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),可假設(shè)為HOME-N狀態(tài)。因?yàn)镠OME-N狀態(tài)時(shí),該特定本地內(nèi)存中的數(shù)據(jù)僅存于第一節(jié)點(diǎn)21內(nèi),且位于本地內(nèi)存2131中。如果此時(shí)遠(yuǎn)程訪問指令為LRL,表示第二節(jié)點(diǎn)22中處理器221或222要讀取特定本地內(nèi)存中的數(shù)據(jù)。該特定本地內(nèi)存中的數(shù)據(jù)最后會同時(shí)儲存于第一及第二節(jié)點(diǎn)21、22中。也就是說儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會由HOME-N狀態(tài)改為SHARED狀態(tài)。
在HOME-N狀態(tài)下,如果遠(yuǎn)程訪問指令為LRIL,表示第二節(jié)點(diǎn)22中的處理器221或222不但要讀取本地內(nèi)存2131中特定本地內(nèi)存中的數(shù)據(jù),且會使位于本地內(nèi)存2131中的特定本地內(nèi)存中的數(shù)據(jù)無效。此時(shí),僅存于第一節(jié)點(diǎn)21內(nèi)的特定本地內(nèi)存中的數(shù)據(jù),應(yīng)先傳至第二節(jié)點(diǎn)22中,供處理器221或222進(jìn)行讀取,然后位于第一節(jié)點(diǎn)21中特定本地內(nèi)存中的數(shù)據(jù)要被丟棄。因此,該儲存區(qū)一致性對照表中對應(yīng)的特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會先由HOME-N狀態(tài)改為WASH狀態(tài),之后待處理器221或222完成數(shù)據(jù)接收后,再由WASH狀態(tài)改為GONE狀態(tài)。也就是說最后特定本地內(nèi)存中的數(shù)據(jù)僅會儲存于第二節(jié)點(diǎn)22中。
同理,在HOME-M狀態(tài)下,特定本地內(nèi)存中的數(shù)據(jù)也僅存于第一節(jié)點(diǎn)21內(nèi),且位于處理器211或212內(nèi)部高速緩存中。如果此時(shí)遠(yuǎn)程訪問指令為LRL,表示第二節(jié)點(diǎn)22中的處理器221或222要讀取位于第一節(jié)點(diǎn)21中的特定本地內(nèi)存中的數(shù)據(jù)。最后特定本地內(nèi)存中的數(shù)據(jù)也會同時(shí)儲存于第一及第二節(jié)點(diǎn)21、22中。故儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會由HOME-M狀態(tài)改為SHARED狀態(tài)。
在HOME-M狀態(tài)下,如果遠(yuǎn)程訪問指令為LRIL,表示第二節(jié)點(diǎn)22中的處理器221或222不但要讀取處理器211或212的內(nèi)部高速緩存中特定本地內(nèi)存中的數(shù)據(jù),而且會使位于處理器211或212的內(nèi)部高速緩存中該特定本地內(nèi)存中的數(shù)據(jù)無效。此時(shí),僅存于第一節(jié)點(diǎn)21內(nèi)的特定本地內(nèi)存中的數(shù)據(jù),應(yīng)先傳至第二節(jié)點(diǎn)22中,供處理器221或222進(jìn)行讀取,之后位于第一節(jié)點(diǎn)21中特定本地內(nèi)存中的數(shù)據(jù)要被丟棄。因此,儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會先由HOME-M狀態(tài)改為WASH狀態(tài),之后待處理器221或222完成數(shù)據(jù)接收后,再由WASH狀態(tài)改為GONE狀態(tài)。最后,特定本地內(nèi)存中的數(shù)據(jù)僅會儲存于第二節(jié)點(diǎn)22中。
在SHARED狀態(tài)下,如果遠(yuǎn)程訪問指令為LRL,表示第二節(jié)點(diǎn)22中的處理器221或222要讀取特定本地內(nèi)存中的數(shù)據(jù)。此時(shí),因第一及第二節(jié)點(diǎn)21、22內(nèi)都同時(shí)儲存有特定本地內(nèi)存中的數(shù)據(jù),故處理器221或222直接讀取位于第二節(jié)點(diǎn)22中的數(shù)據(jù)即可。該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),仍將維持SHARED狀態(tài)。
在SHARED狀態(tài)下,如果遠(yuǎn)程訪問指令為LIL,表示第二節(jié)點(diǎn)22中的處理器221或222可使特定本地內(nèi)存中的數(shù)據(jù)無效。此時(shí),因第一及第二節(jié)點(diǎn)21、22內(nèi)都同時(shí)儲存有特定本地內(nèi)存中的數(shù)據(jù),故位于第一節(jié)點(diǎn)21中的數(shù)據(jù)即可被直接丟棄掉。該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會由SHARED狀態(tài)直接改為GONE狀態(tài)。
在SHARED狀態(tài)下,如果遠(yuǎn)程訪問指令為LRIL,表示第二節(jié)點(diǎn)22中處理器221或222要讀取特定本地內(nèi)存中的數(shù)據(jù),且會使其無效。此時(shí),因第一及第二節(jié)點(diǎn)21、22內(nèi)都同時(shí)儲存有特定本地內(nèi)存中的數(shù)據(jù),故直接丟棄掉位于第一節(jié)點(diǎn)21中特定本地內(nèi)存中的數(shù)據(jù)即可。因此,該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),即會由SHARED狀態(tài)改為GONE狀態(tài)。最后該特定本地內(nèi)存中的數(shù)據(jù)僅會儲存于第二節(jié)點(diǎn)22中。
在GONE狀態(tài)下,如果遠(yuǎn)程訪問指令為LRL或LRIL,表示第二節(jié)點(diǎn)22中的處理器221或222要讀取特定本地內(nèi)存中的數(shù)據(jù),或讀取且使位于第一節(jié)點(diǎn)21中特定本地內(nèi)存中的數(shù)據(jù)無效。此時(shí),因特定本地內(nèi)存中的數(shù)據(jù)已位于且僅位于第二節(jié)點(diǎn)22中,故儲存區(qū)一致性對照表中對應(yīng)的特定本地內(nèi)存中的數(shù)據(jù)的存取狀態(tài),仍維持GONE狀態(tài)。
在GONE狀態(tài)下,如果遠(yuǎn)程訪問指令為LWL,表示第二節(jié)點(diǎn)22中的處理器221或222要將其所儲存的特定本地內(nèi)存中的數(shù)據(jù)寫回第一節(jié)點(diǎn)21中的本地內(nèi)存2131內(nèi),并放棄位于第二節(jié)點(diǎn)22中數(shù)據(jù)副本。因此,該儲存區(qū)一致性對照表中對應(yīng)特定本地內(nèi)存中的數(shù)據(jù)存取狀態(tài),將由GONE狀態(tài)改回HOME-N狀態(tài)。
綜上所述,本發(fā)明針對僅具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng)而設(shè)計(jì)的結(jié)構(gòu)與數(shù)據(jù)維護(hù)方法,不但簡單與具有可行性,更可因此提高整體系統(tǒng)運(yùn)作時(shí)的效率與節(jié)省成本。
權(quán)利要求
1.一種具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),包括一第一及第二分布式共享內(nèi)存節(jié)點(diǎn),且于任意一節(jié)點(diǎn)中包括至少一處理器;一系統(tǒng)總線電連接于至少一處理器;一內(nèi)存控制芯片,電連接于系統(tǒng)總線;一本地內(nèi)存,電連接于內(nèi)存控制芯片,該本地內(nèi)存可區(qū)分為多個(gè)本地內(nèi)存,以儲存多筆數(shù)據(jù);一DSM控制器,電連接于系統(tǒng)總線與另一節(jié)點(diǎn)中的DSM控制器;以及一內(nèi)部總線電連接于DSM控制器與內(nèi)存控制芯片;其中,第一及第二分布式共享內(nèi)存節(jié)點(diǎn)內(nèi)的各自DSM控制器是以一總線直接相互電連接,以提高分布式共享內(nèi)存系統(tǒng)的整體運(yùn)作效率。
2.如權(quán)利要求1所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),其特征在于當(dāng)任意一節(jié)點(diǎn)要求讀取另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)的一特定本地內(nèi)存時(shí),該另一節(jié)點(diǎn)的DSM控制器可判斷特定本地內(nèi)存中的一最新數(shù)據(jù)是否位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi),并在該最新數(shù)據(jù)位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)時(shí),由另一節(jié)點(diǎn)的內(nèi)部總線索取最新數(shù)據(jù),并通過總線輸出至所直接電連接的任意一節(jié)點(diǎn)DSM控制器。
3.如權(quán)利要求2所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),其特征在于該另一節(jié)點(diǎn)的DSM控制器由另一節(jié)點(diǎn)的內(nèi)部總線索取最新數(shù)據(jù)后,用與另一節(jié)點(diǎn)的內(nèi)部總線格式相同的數(shù)據(jù)傳輸格式,將最新數(shù)據(jù)通過總線輸出至任意一節(jié)點(diǎn)的DSM控制器中。
4.如權(quán)利要求2所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),其特征在于該另一節(jié)點(diǎn)的DSM控制器判斷出最新數(shù)據(jù)不位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)時(shí),可再判斷最新數(shù)據(jù)是否位于另一節(jié)點(diǎn)的至少一處理器內(nèi),并在最新數(shù)據(jù)位于另一節(jié)點(diǎn)的至少一處理器內(nèi)時(shí),由該另一節(jié)點(diǎn)的系統(tǒng)總線發(fā)出一系統(tǒng)總線交易來索取最新數(shù)據(jù),并通過該總線輸出至所直接電連接的任意一節(jié)點(diǎn)的DSM控制器。
5.如權(quán)利要求4所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),其特征在于該另一節(jié)點(diǎn)的DSM控制器由另一節(jié)點(diǎn)的系統(tǒng)總線索取最新數(shù)據(jù)后,用與另一節(jié)點(diǎn)的系統(tǒng)總線格式相同的數(shù)據(jù)傳輸格式,將最新數(shù)據(jù)通過總線輸出至該任意一節(jié)點(diǎn)的DSM控制器中。
6.一種具有雙節(jié)點(diǎn)分布式共享內(nèi)存數(shù)據(jù)維護(hù)方法,應(yīng)用于具有一第一及第二分布式共享內(nèi)存節(jié)點(diǎn)的分布式共享內(nèi)存系統(tǒng)內(nèi)部,且任意一節(jié)點(diǎn)可向另一節(jié)點(diǎn)要求讀取另一節(jié)點(diǎn)的特定本地內(nèi)存,該方法至少包括下列步驟判斷該另一節(jié)點(diǎn)的特定本地內(nèi)存中的一最新數(shù)據(jù)是否位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi);以及當(dāng)最新數(shù)據(jù)位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi),由另一節(jié)點(diǎn)的內(nèi)部總線索取最新數(shù)據(jù),并輸出至以一總線直接相互電連接的任意一節(jié)點(diǎn)。
7.如權(quán)利要求6所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存數(shù)據(jù)維護(hù)方法,更包括下列步驟當(dāng)該最新數(shù)據(jù)不位于另一節(jié)點(diǎn)的本地內(nèi)存內(nèi)時(shí),判斷最新數(shù)據(jù)是否位于另一節(jié)點(diǎn)的處理器內(nèi);以及當(dāng)該最新數(shù)據(jù)位于另一節(jié)點(diǎn)的處理器內(nèi)時(shí),由另一節(jié)點(diǎn)的系統(tǒng)總線發(fā)出一系統(tǒng)總線交易來索取最新數(shù)據(jù),并通過該總線輸出至所直接電連接的任意一節(jié)點(diǎn)。
8.如權(quán)利要求7所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存數(shù)據(jù)維護(hù)方法,其特征在于向該另一節(jié)點(diǎn)的內(nèi)部總線/系統(tǒng)總線索取最新數(shù)據(jù)后,用與另一節(jié)點(diǎn)的內(nèi)部總線/系統(tǒng)總線格式相同的數(shù)據(jù)傳輸格式,將最新數(shù)據(jù)通過總線直接輸出至任意一節(jié)點(diǎn)中。
9.如權(quán)利要求8所述具有雙節(jié)點(diǎn)分布式共享內(nèi)存數(shù)據(jù)維護(hù)方法,其特征在于判斷該最新數(shù)據(jù)所儲存的位置,由一內(nèi)存儲存區(qū)一致性對照表來決定。
全文摘要
一種具有雙節(jié)點(diǎn)分布式共享內(nèi)存系統(tǒng),包括一第一及第二分布式共享內(nèi)存節(jié)點(diǎn),且在任意節(jié)點(diǎn)中包括一處理器、一系統(tǒng)總線、一內(nèi)存控制芯片、一本地內(nèi)存、一DSM(Distributed Shared Memory)控制器以及一內(nèi)部總線;其中,第一及第二分布式共享內(nèi)存節(jié)點(diǎn)內(nèi)各自DSM控制器以一總線直接相互耦合電連接,提高分布式共享內(nèi)存系統(tǒng)的整體運(yùn)作效率;本發(fā)明還包括一種較佳的數(shù)據(jù)維護(hù)方法,包括下列步驟由任意一節(jié)點(diǎn)中的DSM控制器判斷特定本地內(nèi)存中的一最新數(shù)據(jù)是否位于本地內(nèi)存內(nèi);當(dāng)最新數(shù)據(jù)位于本地內(nèi)存內(nèi),由內(nèi)部總線索取最新數(shù)據(jù),并用與內(nèi)部總線格式相同的數(shù)據(jù)傳輸格式,將其輸出至總線所直接電連接的另一節(jié)點(diǎn)中。
文檔編號H04L12/40GK1447255SQ03109389
公開日2003年10月8日 申請日期2003年4月8日 優(yōu)先權(quán)日2002年4月9日
發(fā)明者陳維龍 申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
陆川县| 平乐县| 五寨县| 洛浦县| 大城县| 葫芦岛市| 山丹县| 德兴市| 二连浩特市| 通化县| 浦北县| 鹰潭市| 岳阳县| 上杭县| 平和县| 柳州市| 乡城县| 新营市| 夏河县| 陵川县| 庆云县| 福鼎市| 通山县| 黔西县| 海原县| 沂源县| 阜宁县| 大理市| 拉孜县| 彭水| 洛扎县| 崇左市| 鸡西市| 山东| 夏河县| 来宾市| 冀州市| 尉犁县| 达孜县| 卫辉市| 瓦房店市|