亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種多處理器系統(tǒng)、裝置及方法

文檔序號:6615772閱讀:186來源:國知局
專利名稱:一種多處理器系統(tǒng)、裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及在多處理器系統(tǒng)內(nèi)實現(xiàn)資源共享的領(lǐng)域,特別是涉及一種全局 統(tǒng)一編址的多處理器系統(tǒng)、多處理器系統(tǒng)中的硬件鎖裝置及硬件鎖的訪問方 法。
背景技術(shù)
在處理大規(guī)模、計算密集的應(yīng)用時,通常需要有多個處理器的計算機系統(tǒng) 來執(zhí)行運算。這種系統(tǒng)由許多相同的處理器節(jié)點構(gòu)成,每個節(jié)點都包含計算機的4個基本組成部分運算器、控制器、存儲器和輸入輸出設(shè)備;所有的處理器節(jié)點通過互連網(wǎng)絡(luò)連接到一起。多處理器系統(tǒng)中每個處理器節(jié)點可以與其它處理器節(jié)點間共享資源。 多處理器系統(tǒng)面對的一個問題是處理器節(jié)點間資源的有序共享問題,具體的體現(xiàn)就是進(jìn)程間的互斥操作?,F(xiàn)有技術(shù)中,為實現(xiàn)進(jìn)程間的互斥操作,在多處理器間設(shè)置硬件鎖,處理器節(jié)點通過使用硬件鎖來實現(xiàn)對資源的獨享,避免進(jìn)程間的沖突而導(dǎo)致系統(tǒng)的崩潰。常見的硬件鎖為測試和置位鎖,它簡單并且對于大多數(shù)應(yīng)用是足夠的。 測試和置位鎖通常是依靠硬件的讀修改寫操作實現(xiàn)的,讀修改寫操作由讀 和其后沒有中斷的寫組成。測試和置位鎖的設(shè)置如下如果未鎖定的狀態(tài)是0而鎖定的狀態(tài)是1,則 處理器節(jié)點通過嘗試對鎖的讀修改操作來獲取鎖,讀修改操作允許1被寫到存儲器的位置并返回先前處于該位置(在寫之前)的值;如果返回的值是0,則 說明在讀修改操作前鎖是打開的,并被此次操作修改為1,即鎖定;如果返回 的值是l,則說明鎖在讀修改操作之前已經(jīng)被鎖定了,修改操作寫入的l不會 影響鎖定的狀態(tài)。對硬件鎖的寫O操作可以釋放鎖定,打開鎖。對于共享內(nèi)存的多處理器系統(tǒng),硬件鎖通常是用內(nèi)存實現(xiàn)的,用內(nèi)存實現(xiàn)硬件鎖就是將某個或某些內(nèi)存地址的值與多處理器系統(tǒng)中的共享資源建立一 一對應(yīng)的關(guān)系,對這些內(nèi)存值的特殊的訪問和修改命令就實現(xiàn)了對共享資源的 鎖定和釋放。但是,通過內(nèi)存實現(xiàn)的硬件鎖訪問內(nèi)存時需要使用存儲總線,完成一次存 取需要十幾個周期甚至幾十個周期,時間過長,不能快速地進(jìn)行硬件鎖的操作, 影響多處理器系統(tǒng)的整體性能。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種多處理器系統(tǒng)、裝置及方法,其能提供簡單、 快速的硬件鎖實現(xiàn),簡化硬件,實現(xiàn)快速地訪問共享資源。為實現(xiàn)本發(fā)明的目的而提供的一種多處理器硬件鎖裝置,包括多個硬件鎖 和網(wǎng)絡(luò)接口,還包括1/0總線接口,用于硬件鎖裝置與處理器之間的連接;全局地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的全局地址,并在 處理器通過網(wǎng)絡(luò)接口遠(yuǎn)程訪問所述硬件鎖時,根據(jù)遠(yuǎn)程訪問指令中的全局地址 映射到相應(yīng)的所述硬件鎖;本地地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的本地地址,并在 處理器通過所述I/O總線接口訪問所述硬件鎖,根據(jù)本地訪問指令中的本地地 址映射到相應(yīng)的所述硬件鎖。所述硬件鎖是用1比特位實現(xiàn)的測試和位置鎖,每4個字節(jié)表示一個鎖, 僅最低位有效。所述訪問指令,為32位的讀/寫訪問指令,通過全局地址配置模塊和本地地址配置模塊對硬件鎖裝置中的多個硬件鎖編設(shè)地址后,每個處理器可以通過讀/寫指令訪問該硬件鎖。所述全局地址配置模塊,采取全局統(tǒng)一編址方法對所述硬件鎖進(jìn)行編址。 所述本地地址配置模塊,采取本地連續(xù)編址方法對所述硬件鎖進(jìn)行編址。 所述本地連續(xù)編址方法,是指所述硬件鎖對應(yīng)的本地地址是連續(xù)的,第一個硬件鎖的地址為操作系統(tǒng)設(shè)置的硬件鎖裝置的基地址,第二個鎖的地址為基地址加上4,第n個鎖的地址為基地址加上4(n-l)。本發(fā)明還提供一種多處理器系統(tǒng),包括多個處理器節(jié)點,其中每個處理器節(jié)點包括至少兩個處理器,用于連接處理器節(jié)點內(nèi)的至少兩個處理器的I/O總線,處理器間的共享資源,處理器節(jié)點之間通過互連網(wǎng)絡(luò)連接,其特征在于, 其中每個處理器節(jié)點還包括一硬件鎖裝置,通過硬件鎖裝置上的網(wǎng)絡(luò)接口與互連網(wǎng)絡(luò)連接,用于編設(shè) 與該裝置中的多個硬件鎖相對應(yīng)的全局地址和本地地址,實現(xiàn)節(jié)點間的共享資 源訪問和節(jié)點內(nèi)的共享資源訪問。所述每個處理器節(jié)點包括的至少兩個本地處理器。所述本地處理器通過本地地址和全局地址兩種方式訪問所述硬件鎖裝置。 所述多個處理器通過全局地址訪問所述硬件鎖。所述硬件鎖裝置,包括多個硬件鎖,網(wǎng)絡(luò)接口, I/O總線接口,全局地址 配置模塊和本地地址配置模塊,其中所述總線接口 ,用于硬件鎖裝置與處理器之間的連接;所述全局地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的全局地址, 并在處理器通過網(wǎng)絡(luò)接口遠(yuǎn)程訪問所述硬件鎖時,根據(jù)遠(yuǎn)程訪問指令中的全局 地址映射到相應(yīng)的所述硬件鎖;所述本地地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的本地地址,并在處理器通過所述I/O總線接口訪問所述硬件鎖,根據(jù)本地訪問指令中的本地地址映射到相應(yīng)的所述硬件鎖。所述硬件鎖是用1比特位實現(xiàn)的測試和位置鎖,每4個字節(jié)表示一個鎖,僅最低位有效。所述訪問指令,為32位的讀/寫訪問指令,通過全局地址配置模塊和本地地址配置模塊對硬件鎖裝置中的多個硬件鎖編設(shè)地址后,每個處理器可以通過讀/寫指令訪問該硬件鎖。所述全局地址配置模塊,采取全局統(tǒng)一編址方法對所述硬件鎖進(jìn)行編址。 所述本地地址配置模塊,采取本地連續(xù)編址方法對所述硬件鎖進(jìn)行編址。 所述本地連續(xù)編址方法,是指所述硬件鎖對應(yīng)的本地地址是連續(xù)的,第一個硬件鎖的地址為操作系統(tǒng)設(shè)置的硬件鎖裝置的基地址,第二個鎖的地址為基地址加上4,第n個鎖的地址為基地址加上4(n-1)。本發(fā)明還提供一種多處理器硬件鎖系統(tǒng)的工作方法,包括具體如下步驟A. 編設(shè)多處理器系統(tǒng)中的節(jié)點的硬件鎖對應(yīng)的在整個多處理器系統(tǒng)中的 全局地址和在本節(jié)點中的本地地址;B. 多處理器系統(tǒng)中的處理器訪問共享資源時,該處理器通過不同的尋址 方式向與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出請求;C. 對與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖進(jìn)行測試,通過不同方式獲取 預(yù)期的共享資源。所述步驟B還進(jìn)一步包括Bl.若所述處理器要訪問其所在的處理器節(jié)點里的共享資源時,即該處理 器為本地處理器,則該本地處理器通過本地處理器節(jié)點中的硬件鎖裝置的本地 地址或全局地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求;B2.若所述處理器要訪問其所在的處理器節(jié)點以外的共享資源時,即該處 理器為遠(yuǎn)程處理器,則該處理器通過遠(yuǎn)程處理器節(jié)點中的硬件鎖裝置的全局地 址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求。所述步驟C還進(jìn)一步包括Cl.當(dāng)被測試的硬件鎖返回釋放狀態(tài)信息時,發(fā)出測試的處理器獲取共享 資源;并對與該共享資源相關(guān)聯(lián)的硬件鎖加鎖,后續(xù)的處理器發(fā)出的測試請求, 將不會改變與該共享資源相關(guān)聯(lián)的硬件鎖的狀態(tài),并向后續(xù)的發(fā)出測試請求的 處理器返回已加鎖狀態(tài)信息,加鎖失敗;C2.當(dāng)被測試的硬件鎖返回已加鎖狀態(tài)信息時,發(fā)出測試的處理器等待一 個硬件鎖的訪問時間后,再次對該硬件鎖發(fā)出測試請求,直到被測試的硬件鎖 返回釋放狀態(tài)信息,該處理器獲得訪問與該硬件鎖相關(guān)聯(lián)的共享資源的許可。所述步驟Cl還進(jìn)一步包括CI (a).當(dāng)被測試的硬件鎖處于釋放狀態(tài)時,接到測試請求,會向發(fā)出測 試的處理器返回釋放狀態(tài)信息,則發(fā)出測試的處理器具有訪問與該硬件鎖相關(guān) 聯(lián)的共享資源的許可;CI (b).獲取共享資源后的處理器使用解鎖指令,為該硬件鎖解鎖,使 該硬件鎖處于釋放狀態(tài),并且規(guī)定只允許發(fā)出加鎖操作的處理器來解鎖。所述步驟Cl (a)還進(jìn)一步包括CI (al).當(dāng)處理器為本地處理器,則該處理器通過I/O總線直接獲取共 享資源并對與該共享資源相關(guān)聯(lián)的硬件鎖加鎖;Cl (a2).當(dāng)處理器為遠(yuǎn)程處理器,則該處理器通過互連網(wǎng)絡(luò)獲取共享資 源并對與該共享資源相關(guān)聯(lián)的硬件鎖加鎖。所述件鎖的訪問時間是指從處理器對硬件鎖發(fā)出測試請求,到獲得硬件鎖 當(dāng)前狀態(tài)信息的時間。


圖1是本發(fā)明的一種多處理器硬件鎖裝置的示意圖;圖2是本發(fā)明的一種多處理器硬件鎖系統(tǒng)的結(jié)構(gòu)示意圖;圖3是本發(fā)明的一種多處理器硬件鎖系統(tǒng)中,硬件鎖裝置的地址映射的示圖4是本發(fā)明的一種多處理器硬件鎖系統(tǒng)的工作方法的流程圖,具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實 施例,對本發(fā)明的一種多處理器系統(tǒng)、裝置及方法進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng) 理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的主要目的是提供一種多處理器系統(tǒng)、裝置及方法,其提供簡單、 快速的硬件鎖實現(xiàn),簡化了硬件,并且能夠快速地訪問。本發(fā)明提供一種多處理器系統(tǒng),如圖2所示,包括多個處理器節(jié)點,其中 每個處理器節(jié)點包括至少兩個處理器,處理器間的共享資源,1/0總線,處理 器節(jié)點之間通過互連網(wǎng)絡(luò)連接。所述處理器節(jié)點還包括硬件鎖裝置,用于編設(shè)與該裝置中的多個硬件鎖相 對應(yīng)的全局地址和本地地址,實現(xiàn)節(jié)點間的共享資源訪問和節(jié)點內(nèi)的共享資源 訪問。處理器通過I/O總線與硬件鎖裝置連接。下面詳細(xì)描述本發(fā)明的硬件鎖裝置,如圖1所示,用于實現(xiàn)多處理器系統(tǒng) 中節(jié)點間的共享資源的互斥操作,其既可以由本地處理器進(jìn)行訪問,也可以由其他的遠(yuǎn)程處理器依靠互連網(wǎng)絡(luò)進(jìn)行訪問,其包括多個硬件鎖,用于與處理器系統(tǒng)中處理器的共享資源相關(guān)聯(lián),處理器通過 其設(shè)置與之相關(guān)聯(lián)的共享資源。網(wǎng)絡(luò)接口,用于所述硬件鎖裝置與互連網(wǎng)絡(luò)之間的連接; I/O總線接口,用于硬件鎖裝置與處理器之間的連接。所述硬件鎖裝置還包括全局地址配置模塊和本地地址配置模塊,其中 所述全局地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的全局地址,并在處理器通過網(wǎng)絡(luò)接口遠(yuǎn)程訪問所述硬件鎖時,根據(jù)遠(yuǎn)程訪問指令中的全局地址映射到相應(yīng)的所述硬件鎖;所述本地地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的本地地址,并在處理器通過所述I/O總線接口訪問所述硬件鎖時,根據(jù)本地訪問指令中的本地地址映射到相應(yīng)的所述硬件鎖。較佳地,所述硬件鎖是用1比特位實現(xiàn)的測試和置位(test-and-set)鎖, 每4個字節(jié)表示一個鎖,僅最低位有效。所述訪問指令為32位的讀/寫(load/store)訪問指令,通過全局地址配置 模塊和本地地址配置模塊對硬件鎖裝置中的多個硬件鎖編設(shè)地址后,多處理器 系統(tǒng)中的每個處理器可以通過讀/寫(load/store)指令訪問該硬件鎖。所述訪問指令為32位訪問指令,以32位指令訪問硬件鎖,這樣可以符合 現(xiàn)有的指令標(biāo)準(zhǔn),并以地址和訪問操作為參數(shù),對硬件鎖進(jìn)行訪問。本發(fā)明的全局地址配置模塊,采取全局統(tǒng)一編址方法對所述硬件鎖進(jìn)行編址。由于全局地址配置模塊對多處理器中的全部硬件鎖進(jìn)行全局物理地址統(tǒng) 一編址;而處理器節(jié)點中,對其中的硬件鎖,采取連續(xù)編址方法,編設(shè)其本地 地址,其中,較佳地,所述硬件鎖對應(yīng)的本地地址是連續(xù)的,第一個硬件鎖的 地址為操作系統(tǒng)設(shè)置的硬件鎖裝置的基地址,第二個鎖的地址為基地址加上 4,以此類推,第n個鎖的地址為基地址加上4(n-l),這樣有利于編碼訪問。 所以每個硬件鎖都擁有兩種地址,如圖3所示,即全局地址和本地地址。 本地處理器節(jié)點里的多個本地處理器可以通過本地地址和全局地址兩種 方式訪問所述硬件鎖裝置,遠(yuǎn)程處理器節(jié)點里的處理器可以通過全局地址訪問 所述硬件鎖。由于所述每個處理器節(jié)點內(nèi)包含多個處理器,處理器之間通過硬件鎖裝置 共享資源。同一個硬件鎖的地址也可以不相同,即包括一個全局地址和一個本 地地址,全局地址和本地地址不相同,處理器通過全局地址可以訪問該硬件鎖,也可以通過本地地址訪問該硬件鎖。相應(yīng)地,本發(fā)明還提供一種多處理器系統(tǒng)的硬件鎖訪問方法,如圖4所示, 包括下列步驟歩驟SIOO,編設(shè)多處理器系統(tǒng)中的節(jié)點的硬件鎖對應(yīng)的在整個多處理器 系統(tǒng)中的全局地址和在本節(jié)點中的本地地址;全局地址采取全局統(tǒng)一編址方法對所述硬件鎖進(jìn)行編址。由于全局地址配置模塊對多處理器中的全部硬件鎖進(jìn)行全局物理地址統(tǒng) 一編址;而處理器節(jié)點中,對其中的硬件鎖,編設(shè)其本地地址,其中,較佳地, 所述硬件鎖對應(yīng)的本地地址是連續(xù)的,第一個硬件鎖的地址為操作系統(tǒng)設(shè)置的 硬件鎖裝置的基地址,第二個鎖的地址為基地址加上4,以此類推,第n個鎖 的地址為基地址加上4(n-l),這樣有利于編碼訪問。所以每個硬件鎖都擁有 兩種地址,即全局地址和本地地址。本地處理器節(jié)點里的多個本地處理器可以通過本地地址和全局地址兩種 方式訪問所述硬件鎖裝置,遠(yuǎn)程處理器節(jié)點里的處理器可以通過全局地址訪問 所述硬件鎖。步驟S200,多處理器系統(tǒng)中的處理器訪問共享資源時,該處理器通過不 同的尋址方式向與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出請求;步驟S210,若所述處理器訪問其本地處理器節(jié)點里的共享資源,即該處 理器為本地處理器,則該本地處理器通過本地處理器節(jié)點中的硬件鎖裝置的本 地地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求;步驟S220,若所述處理器要訪問其本發(fā)處理器節(jié)點里的共享資源時,即 該處理器為本地處理器,則該本地處理器通過本地處理器節(jié)點中的硬件鎖裝置 的全局地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求;歩驟S230,若所述處理器要訪問其所在的處理器節(jié)點以外的某個共享資 源時,即該處理器為遠(yuǎn)程處理器,則該處理器通過遠(yuǎn)程處理器節(jié)點中的硬件鎖 裝置的全局地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求。步驟S300,對與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖進(jìn)行測試,通過不同 方式獲取預(yù)期的共享資源;當(dāng)處理器希望訪問本地共享資源時,處理器節(jié)點中的本地處理器可以通 過該硬件鎖的本地地址訪問硬件鎖裝置,進(jìn)而訪問該硬件鎖裝置中的與硬件鎖相關(guān)聯(lián)的預(yù)期的共享資源,并通過本地處理器與該硬件鎖之間的工/0總線快速 獲取預(yù)期的共享資源;當(dāng)處理器希望訪問本地共享資源時,處理器節(jié)點中的本地處理器也可以通 過該硬件鎖裝置的全局地址訪問硬件鎖裝置,進(jìn)而訪問該硬件鎖裝置中的與硬 件鎖相關(guān)聯(lián)的預(yù)期的共享資源,并通過本地處理器與該硬件鎖裝置之間的I/O 總線快速獲取預(yù)期的共享資源;當(dāng)處理器希望訪問遠(yuǎn)程的共享資源時,遠(yuǎn)程處理器節(jié)點中的該處理器可以 通過硬件鎖的全局地址訪問該硬件鎖裝置,進(jìn)而訪問該硬件鎖裝置中的與硬件 鎖相關(guān)聯(lián)的預(yù)期的共享資源,并通過互連網(wǎng)絡(luò)獲取預(yù)期的共享資源。 所述步驟S300包括下列步驟步驟S310,當(dāng)被測試的硬件鎖返回釋放狀態(tài)信息時,發(fā)出測試的處理器獲取該共享資源,并對該硬件鎖加鎖,后續(xù)的處理器發(fā)出的測試請求,將不會 改變該硬件鎖的狀態(tài),并向后續(xù)的發(fā)出測試請求的處理器返回已加鎖狀態(tài)信息,加鎖失??;步驟S311,當(dāng)被測試的硬件鎖處于釋放狀態(tài)時,接到測試請求,會向發(fā) 出測試的處理器返回釋放狀態(tài)信息,則發(fā)出測試的處理器具有訪問與該硬件鎖 相關(guān)聯(lián)的資源的許可;所述步驟S311包括下列步驟步驟S3111,當(dāng)該處理器為本地處理器,則該處理器通過I/O總線直接獲取該共享資源并對該硬件鎖加鎖;步驟S3112,當(dāng)該處理器為遠(yuǎn)程處理器,則該處理器通過互連網(wǎng)絡(luò)獲取該共享資源并對該硬件鎖加鎖;步驟S312,獲取共享資源后的處理器使用解鎖指令,為該硬件鎖解鎖, 使該硬件鎖處于釋放狀態(tài)。規(guī)定只允許發(fā)出加鎖操作的處理器來解鎖;步驟S320,當(dāng)被測試的硬件鎖返回已加鎖狀態(tài)信息時,發(fā)出測試的處理 器等待一個硬件鎖的訪問時間后,再次對該硬件鎖發(fā)出測試請求,直到被測試 的硬件鎖返回釋放狀態(tài)信息,該處理器獲得訪問與該硬件鎖相關(guān)聯(lián)的共享資源 的許可。本方法中所述硬件鎖的訪問時間是指從處理器對硬件鎖發(fā)出測試請求,到 獲得該硬件鎖當(dāng)前狀態(tài)信息的時間。下面以讀/寫(load/store)指令為例,舉例說明本發(fā)明的多處理器系統(tǒng) 的硬件鎖訪問方法。本發(fā)明的測試請求指load指令,解鎖指令指store指令,并將釋放狀態(tài) 置為0,將已鎖定狀態(tài)置為l。本發(fā)明的多處理器系統(tǒng)的硬件鎖訪問方法,其具體實施方式
如下步驟100',多處理器系統(tǒng)中的處理器訪問共享資源時,該處理器通過不 同的尋址方式向與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出load指令;步驟110',若所述處理器訪問其所在的處理器節(jié)點里的共享資源,即該 處理器為本地處理器,則該本地處理器通過本地處理器節(jié)點中的硬件鎖裝置的本地地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出load指令;歩驟120',若所述處理器要訪問其所在的處理器節(jié)點里的共享資源時, 即該處理器為本地處理器,則該本地處理器通過本地處理器節(jié)點中的硬件鎖裝 置的全局地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出load指令;步驟130',若所述處理器要訪問其所在的處理器節(jié)點以外的共享資源 時,即該處理器為遠(yuǎn)程處理器,則該處理器通過遠(yuǎn)程處理器節(jié)點中的硬件鎖裝 置的全局地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出load指令;步驟200,,對與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出load指令,通 過不同方式獲取預(yù)期的共享資源;歩驟210',當(dāng)被測試的硬件鎖返回0狀態(tài)信息時,發(fā)出load指令的處理器獲取該共享資源;步驟211',當(dāng)被測試的硬件鎖處于0狀態(tài)時,接到load指令,會向發(fā) 出load指令的處理器返回0狀態(tài)信息,則發(fā)出load指令的處理器具有訪問與該硬件鎖相關(guān)聯(lián)的資源的許可, 步驟2111',當(dāng)該處理器為本地處理器,則該處理器通過1/0總線直接 獲取該共享資源并對該硬件鎖加鎖;后續(xù)的處理器發(fā)出的load指令,將不會 改變該硬件鎖的狀態(tài),并向后續(xù)的發(fā)出load指令的處理器返回1狀態(tài)信息, 加鎖失?。徊襟E2112',當(dāng)該處理器為遠(yuǎn)程處理器,則該處理器通過互連網(wǎng)絡(luò)獲取 該共享資源并對該硬件鎖加鎖;后續(xù)的處理器發(fā)出的load指令,將不會改變該硬件鎖的狀態(tài),并向后續(xù)的發(fā)出測試請求的處理器返回l狀態(tài)信息,加鎖失 ??;步驟212',獲取共享資源后的處理器使用解鎖指令,為該硬件鎖解鎖, 使該硬件鎖處于0狀態(tài),只允許發(fā)出加鎖操作的處理器來解鎖;步驟220',當(dāng)被測試的硬件鎖返回1狀態(tài)信息時,發(fā)出load指令的處 理器等待一個硬件鎖的訪問時間后,再次對該硬件鎖發(fā)出測試請求,直到被測 試的硬件鎖返回0狀態(tài)信息,該處理器獲得訪問與該硬件鎖相關(guān)聯(lián)的共享資源 的許可。本發(fā)明的多處理器系統(tǒng)、裝置及方法降低了鎖操作的延遲,提高了鎖的使 用效率,通過專用的鎖裝置簡化了硬件設(shè)計,多種尋址方式使得鎖的使用更加 靈活。通過以上結(jié)合附圖對本發(fā)明具體實施例的描述,本發(fā)明的其它方面及特征 對本領(lǐng)域的技術(shù)人員而言是顯而易見的。以上對本發(fā)明的具體實施例進(jìn)行了描述和說明,這些實施例應(yīng)被認(rèn)為其只 是示例性的,并不用于對本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行 解釋。
權(quán)利要求
1.一種多處理器硬件鎖裝置,包括多個硬件鎖和網(wǎng)絡(luò)接口,其特征在于,還包括I/O總線接口,用于硬件鎖裝置與處理器之間的連接;全局地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的全局地址,并在處理器通過網(wǎng)絡(luò)接口遠(yuǎn)程訪問所述硬件鎖時,根據(jù)遠(yuǎn)程訪問指令中的全局地址映射到相應(yīng)的所述硬件鎖;本地地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的本地地址,并在處理器通過所述I/O總線接口訪問所述硬件鎖時,根據(jù)本地訪問指令中的本地地址映射到相應(yīng)的所述硬件鎖。
2. 根據(jù)權(quán)利要求1所述的一種多處理器硬件鎖裝置,其特征在于,所述硬 件鎖是用1比特位實現(xiàn)的測試和位置鎖,每4個字節(jié)表示一個鎖,僅最低位有 效。
3. 根據(jù)權(quán)利要求1所述的一種多處理器硬件鎖裝置,其特征在于,所述 訪問指令,為32位的讀/寫訪問指令,通過全局地址配置模塊和本地地址配置 模塊對硬件鎖裝置中的多個硬件鎖編設(shè)地址后,每個處理器可以通過讀/寫指 令訪問該硬件鎖。
4. 根據(jù)權(quán)利要求1所述的一種多處理器硬件鎖裝置,其特征在于,所述 全局地址配置模塊,采取全局統(tǒng)一編址方法對所述硬件鎖進(jìn)行編址。
5. 根據(jù)權(quán)利要求1所述的一種多處理器硬件鎖裝置,其特征在于,所述 本地地址配置模塊,采取本地連續(xù)編址方法對所述硬件鎖進(jìn)行編址。
6. 根據(jù)權(quán)利要求5所述的一種多處理器硬件鎖裝置,其特征在于,所述 本地連續(xù)編址方法,是指所述硬件鎖對應(yīng)的本地地址是連續(xù)的,第一個硬件鎖 的地址為操作系統(tǒng)設(shè)置的硬件鎖裝置的基地址,第二個鎖的地址為基地址加上 4,第n個鎖的地址為基地址加上4(n-1)。
7. —種多處理器系統(tǒng),包括多個處理器節(jié)點,其中每個處理器節(jié)點包括 至少兩個處理器,用于連接處理器節(jié)點內(nèi)的至少兩個處理器的1/0總線,,處 理器間的共享資源,處理器節(jié)點之間通過互連網(wǎng)絡(luò)連接,其特征在于,其中每 個處理器節(jié)點還包括一硬件鎖裝置,通過硬件鎖裝置上的網(wǎng)絡(luò)接口與互連網(wǎng)絡(luò)連接,用于編設(shè) 與該裝置中的多個硬件鎖相對應(yīng)的全局地址和本地地址,實現(xiàn)節(jié)點間的共享資 源訪問和節(jié)點內(nèi)的共享資源訪問。
8. 根據(jù)權(quán)利要求7所述的一種多處理器系統(tǒng),其特征在于,所述每個處理 器節(jié)點包括至少兩個本地處理器。
9. 根據(jù)權(quán)利要求8所述的一種多處理器系統(tǒng),其特征在于,所述本地處理器通過本地地址和全局地址兩種方式訪問所述硬件鎖裝置。
10. 根據(jù)權(quán)利要求7所述的一種多處理器系統(tǒng),其特征在于,所述多個處理器通過全局地址訪問所述硬件鎖。
11. 根據(jù)權(quán)利要求7所述的多處理器系統(tǒng),其特征在于,所述硬件鎖裝置, 包括多個硬件鎖,網(wǎng)絡(luò)接口, 1/0總線接口,全局地址配置模塊和本地地址配置模塊,其中所述I/O總線接口,用于硬件鎖裝置與處理器之間的連接; 所述全局地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的全局地址,并在處理器通過網(wǎng)絡(luò)接口遠(yuǎn)程訪問所述硬件鎖時,根據(jù)遠(yuǎn)程訪問指令中的全局地址映射到相應(yīng)的所述硬件鎖;所述本地地址配置模塊,用于對每個所述硬件鎖編設(shè)其對應(yīng)的本地地址,并在處理器通過所述I/O總線接口訪問所述硬件鎖時,根據(jù)本地訪問指令中的本地地址映射到相應(yīng)的所述硬件鎖。
12. 根據(jù)權(quán)利要求7所述的一種多處理器硬件鎖裝置,其特征在于,所述 硬件鎖是用1位實現(xiàn)的測試和位置鎖,每4個字節(jié)表示一個鎖,僅最低位有效。
13. 根據(jù)權(quán)利要求7所述的一種多處理器硬件鎖裝置,其特征在于,所述 訪問指令,為32位的讀/寫訪問指令,通過全局地址配置模塊和本地地址配置 模塊對硬件鎖裝置中的多個硬件鎖編設(shè)地址后,每個處理器可以通過讀/寫指 令訪問該硬件鎖。
14. 根據(jù)權(quán)利要求7所述的一種多處理器硬件鎖裝置,其特征在于,所述 全局地址配置模塊,采取全局統(tǒng)一編址方法對所述硬件鎖進(jìn)行編址。
15. 根據(jù)權(quán)利要求7所述的一種多處理器硬件鎖裝置,其特征在于,所述 本地地址配置模塊,采取本地連續(xù)編址方法對所述硬件鎖進(jìn)行編址。
16. 根據(jù)權(quán)利要求15所述的一種多處理器硬件鎖裝置,其特征在于,所 述本地連續(xù)編址方法,是指所述硬件鎖對應(yīng)的本地地址是連續(xù)的,第一個硬件 鎖的地址為操作系統(tǒng)設(shè)置的硬件鎖裝置的基地址,第二個鎖的地址為基地址加上4,第n個鎖的地址為基地址加上4(n-l)。
17. —種多處理器硬件鎖系統(tǒng)的工作方法,其特征在于,包括具體如下步驟A. 編設(shè)多處理器系統(tǒng)中的節(jié)點的硬件鎖對應(yīng)的在整個多處理器系統(tǒng)中的全局地址和在本節(jié)點中的本地地址;B. 多處理器系統(tǒng)中的處理器訪問共享資源時,該處理器通過不同的尋址 方式向與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出請求;C. 對與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖進(jìn)行測試,通過不同方式獲取 預(yù)期的共享資源。
18. 根據(jù)權(quán)利要求17所述的一種多處理器硬件鎖系統(tǒng)的工作方法,其特 征在于,所述步驟B還進(jìn)一步包括Bl.若所述處理器要訪問其所在的處理器節(jié)點里的共享資源時,即該處理 器為本地處理器,則該本地處理器通過本地處理器節(jié)點中的硬件鎖裝置的本地 地址或全局地址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求;B2.若所述處理器要訪問其所在的處理器節(jié)點以外的共享資源時,即該處 理器為遠(yuǎn)程處理器,則該處理器通過遠(yuǎn)程處理器節(jié)點中的硬件鎖裝置的全局地 址向與預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求。
19. 根據(jù)權(quán)利要求17所述的一種多處理器硬件鎖系統(tǒng)的工作方法,其特 征在于,所述步驟C還進(jìn)一步包括Cl.當(dāng)被測試的硬件鎖返回釋放狀態(tài)信息時,發(fā)出測試的處理器獲取共享 資源;并對與該共享資源相關(guān)聯(lián)的硬件鎖加鎖,后續(xù)的處理器發(fā)出的測試請求, 將不會改變與該共享資源相關(guān)聯(lián)的硬件鎖的狀態(tài),并向后續(xù)的發(fā)出測試請求的 處理器返回己加鎖狀態(tài)信息,加鎖失??;C2.當(dāng)被測試的硬件鎖返回己加鎖狀態(tài)信息時,發(fā)出測試的處理器等待一 個硬件鎖的訪問時間后,再次對該硬件鎖發(fā)出測試請求,直到被測試的硬件鎖 返回釋放狀態(tài)信息,該處理器獲得訪問與該硬件鎖相關(guān)聯(lián)的共享資源的許可。
20. 根據(jù)權(quán)利要求19所述的一種多處理器硬件鎖系統(tǒng)的工作方法,其特征在于,所述步驟C1還進(jìn)一步包括Cl (a).當(dāng)被測試的硬件鎖處于釋放狀態(tài)時,接到測試請求,會向發(fā)出測 試的處理器返回釋放狀態(tài)信息,則發(fā)出測試的處理器具有訪問與該硬件鎖相關(guān) 聯(lián)的共享資源的許可;Cl (b).獲取共享資源后的處理器使用解鎖指令,為該硬件鎖解鎖,使 該硬件鎖處于釋放狀態(tài),并且規(guī)定只允許發(fā)出加鎖操作的處理器來解鎖。
21. 根據(jù)權(quán)利要求20所述的一種多處理器硬件鎖系統(tǒng)的工作方法,其特 征在于,所述步驟C1 (a)還進(jìn)一步包括Cl (al).當(dāng)處理器為本地處理器,則該處理器通過I/0總線直接獲取共享資源并對與該共享資源相關(guān)聯(lián)的硬件鎖加鎖;Cl (a2).當(dāng)處理器為遠(yuǎn)程處理器,則該處理器通過互連網(wǎng)絡(luò)獲取共享資源并對與該共享資源相關(guān)聯(lián)的硬件鎖加鎖。
22. 根據(jù)權(quán)利要求19所述的一種多處理器硬件鎖系統(tǒng)的工作方法,其特 征在于,所述件鎖的訪問時間是指從處理器對硬件鎖發(fā)出測試請求,到獲得硬 件鎖當(dāng)前狀態(tài)信息的時間。
全文摘要
本發(fā)明公開了一種多處理器系統(tǒng)、裝置及方法。該系統(tǒng)包括多個處理器節(jié)點,其中每個處理器節(jié)點包括至少兩個處理器,I/O總線,處理器間的共享資源,處理器節(jié)點之間通過互連網(wǎng)絡(luò)連接,其中每個處理器節(jié)點還包括一個硬件鎖裝置,所述硬件鎖裝置,包括多個硬件鎖,網(wǎng)絡(luò)接口,I/O總線接口,全局地址配置模塊和本地地址配置模塊;該實現(xiàn)方法包括下列步驟多處理器系統(tǒng)中的一處理器訪問一共享資源時,該處理器通過不同的尋址方式向與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖發(fā)出測試請求;對與該預(yù)期的共享資源相關(guān)聯(lián)的硬件鎖進(jìn)行測試,通過不同尋址方式獲取預(yù)期的共享資源。其能夠提供簡單、快速的鎖實現(xiàn)。
文檔編號G06F9/46GK101216781SQ20071030465
公開日2008年7月9日 申請日期2007年12月28日 優(yōu)先權(quán)日2007年12月28日
發(fā)明者孫凝暉, 安學(xué)軍, 李曉民, 凱 王, 苗艷超 申請人:中國科學(xué)院計算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1