專利名稱:用于根據(jù)使用類來控制對設(shè)施的訪問的裝置、系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于根據(jù)使用類(usage class)來控制對設(shè)施的訪問的裝置、系統(tǒng)和方法。更具體而言,本發(fā)明提供了一種用于根據(jù)與訪問請求者相關(guān)聯(lián)的使用類來控制對與邏輯部分相關(guān)聯(lián)的主機(jī)信道適配器設(shè)施的訪問的機(jī)制。
背景技術(shù):
在諸如InfiniBand(IB)網(wǎng)絡(luò)的系統(tǒng)區(qū)域網(wǎng)絡(luò)(SAN)中,硬件提供了消息傳送機(jī)制,它可以用于輸入/輸出器件(I/O)和在一般計(jì)算節(jié)點(diǎn)之間的進(jìn)程間通信(IPC)。在器件上執(zhí)行的進(jìn)程通過向在SAN信道適配器(CA)上的發(fā)送/接收工作隊(duì)列登記(posting)發(fā)送/接收消息來訪問SAN消息傳送硬件。這些進(jìn)程也被稱為“消耗者”。
所述發(fā)送/接收工作隊(duì)列(WQ)被分配到一個(gè)消耗者來作為隊(duì)列對(QP)??梢酝ㄟ^5種不同的傳送類型來發(fā)送所述消息??煽窟B接(RC)、可靠數(shù)據(jù)報(bào)(RD)、不可靠連接(UC)、不可靠數(shù)據(jù)報(bào)(UD)和原始數(shù)據(jù)報(bào)(RawD)。消耗者通過SAN發(fā)送和接收工作完成(WC)隊(duì)列來從完成隊(duì)列(CQ)檢索這些消息的結(jié)果。所述源信道適配器涉及維護(hù)將輸出消息分段并且將它們向目的地發(fā)送。目的地信道適配器涉及將輸入消息重新裝配,并且將它們布置在由目的地的消耗者指定的存儲(chǔ)器空間中。
在SAN結(jié)構(gòu)、主信道適配器(HCA)和目標(biāo)信道適配器(TCA)的節(jié)點(diǎn)中存在兩種信道適配器類型。主信道適配器被通用計(jì)算節(jié)點(diǎn)使用來訪問SAN結(jié)構(gòu)。消耗者使用SAN動(dòng)詞(verbs)來訪問主信道適配器功能。翻譯動(dòng)詞和直接訪問信道適配器的軟件被稱為信道接口(CI)。
目標(biāo)信道適配器(TCA)被作為從主信道適配器發(fā)送的消息的主題的節(jié)點(diǎn)使用。目標(biāo)信道適配器與主信道適配器在向目標(biāo)節(jié)點(diǎn)提供對SAN結(jié)構(gòu)的訪問點(diǎn)中具有類似的功能。
因此,利用上述的SAN結(jié)構(gòu),一個(gè)以太網(wǎng)器件驅(qū)動(dòng)器可以通過向主信道適配器(HCA)登記發(fā)送/接收消息來與以太網(wǎng)適配器通信,并且通過HCA的發(fā)送和接收工作隊(duì)列檢索這些消息的結(jié)果。以太網(wǎng)適配器包括目標(biāo)信道適配器,它是附加在SAN上的部件。因此,為了附加在諸如因特網(wǎng)協(xié)議(IP)和以太網(wǎng)網(wǎng)絡(luò)的局域網(wǎng)(LAN),需要一個(gè)以太網(wǎng)適配器以及將以太網(wǎng)適配器附加到基于IP的LAN上的開關(guān)或路由器。
一般來說,將一個(gè)系統(tǒng)邏輯分區(qū)以便支持多個(gè)操作系統(tǒng)環(huán)境是有益的。這樣的邏輯分區(qū)使得每個(gè)操作系統(tǒng)和工作在那個(gè)操作系統(tǒng)環(huán)境中的應(yīng)用程序可以檢驗(yàn)對那個(gè)操作系統(tǒng)專用的系統(tǒng)的資源,即使實(shí)際上所述資源被多個(gè)操作系統(tǒng)環(huán)境共享。這樣的邏輯分區(qū)使得一個(gè)系統(tǒng)可以支持多個(gè)不同的環(huán)境,因此在通過共享資源來降低維護(hù)不同環(huán)境的成本的同時(shí)提高了系統(tǒng)的通用性。
雖然邏輯分區(qū)在本領(lǐng)域內(nèi)是公知的,但是邏輯分區(qū)還沒有被應(yīng)用到系統(tǒng)區(qū)域網(wǎng)絡(luò),諸如InifiniBand網(wǎng)絡(luò)結(jié)構(gòu)。而且,在本發(fā)明之前不知道如何實(shí)現(xiàn)對在已經(jīng)被邏輯分區(qū)的系統(tǒng)區(qū)域網(wǎng)絡(luò)中的資源的訪問控制以便操作系統(tǒng)和應(yīng)用程序不能訪問被分配到其他邏輯分區(qū)的資源。因此,有益的是,具有一種裝置、系統(tǒng)和方法來實(shí)現(xiàn)在諸如InifiniBand網(wǎng)絡(luò)的系統(tǒng)區(qū)域網(wǎng)絡(luò)中的邏輯分區(qū),在所述網(wǎng)絡(luò)內(nèi)對于與邏輯分區(qū)相關(guān)聯(lián)的資源的訪問被控制。
發(fā)明內(nèi)容
本發(fā)明提供了用于根據(jù)請求者的使用類來控制對設(shè)施的訪問的裝置、系統(tǒng)和方法。使用本發(fā)明的裝置、系統(tǒng)和方法,一種兩級保護(hù)機(jī)制被提供類用于保護(hù)主信道適配器(HCA)設(shè)施避免未經(jīng)授權(quán)的訪問。利用本發(fā)明,通過虛擬地址翻譯和這樣一種機(jī)制提供第一級訪問,所述機(jī)制用于確定訪問的請求者是否可以訪問與虛擬地址映射的實(shí)際地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器地址空間頁面。第二級訪問的提供是通過分配使用類和確定用于訪問HCA設(shè)施的所需使用類。
在所附的權(quán)利要求中給出了相信有本發(fā)明的特點(diǎn)的新穎特征。但是,通過結(jié)合附圖下面詳細(xì)說明圖解的實(shí)施例,本發(fā)明本身以及使用的優(yōu)選方式及其另外的目的和優(yōu)點(diǎn)將會(huì)得到最佳地理解。
圖1是圖解按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的分布式計(jì)算機(jī)系統(tǒng)的圖;圖2是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的主處理器節(jié)點(diǎn)的功能方框圖;圖3A是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的主信道適配器的圖;圖3B是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的開關(guān)的圖;圖3C是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的路由器的圖;圖4是圖解按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的工作請求的處理的圖;圖5是圖解按照使用可靠連接服務(wù)的本發(fā)明的一個(gè)優(yōu)選實(shí)施例的分布式計(jì)算機(jī)系統(tǒng)的一部分的圖;圖6是圖解按照使用可靠的數(shù)據(jù)報(bào)服務(wù)連接的本發(fā)明的一個(gè)優(yōu)選實(shí)施例的分布式計(jì)算機(jī)系統(tǒng)的一部分的圖;圖7是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的數(shù)據(jù)分組的圖示;圖8是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的分布式計(jì)算機(jī)系統(tǒng)的一部分的圖;圖9是圖解在按照本發(fā)明的分布式聯(lián)網(wǎng)系統(tǒng)中使用的網(wǎng)絡(luò)尋址的圖;圖10是圖解按照圖解SAN結(jié)構(gòu)子網(wǎng)的結(jié)構(gòu)的本發(fā)明的一個(gè)優(yōu)選實(shí)施例的、分布式計(jì)算系統(tǒng)的一部分的圖;圖11是在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中使用的分層通信結(jié)構(gòu)的圖;圖12是圖解按照本發(fā)明的邏輯分區(qū)的主信道適配器的示意圖;圖13是按照本發(fā)明的存儲(chǔ)器空間的示意圖;圖14圖解了按照本發(fā)明的、分配到示范隊(duì)列對的系統(tǒng)存儲(chǔ)器地址空間頁面的擴(kuò)展圖;圖15圖解了當(dāng)確定是否應(yīng)當(dāng)向?qū)CA設(shè)施的訪問請求者提供對HCA設(shè)施的訪問時(shí)、本發(fā)明的一個(gè)示范實(shí)施例的整體操作;圖16是按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的、用于確定是否應(yīng)當(dāng)準(zhǔn)予對HCA設(shè)施的訪問的示范處理的流程圖。
具體實(shí)施例方式
本發(fā)明提供了一種用于根據(jù)使用類來控制對系統(tǒng)資源的訪問的裝置、系統(tǒng)和方法。本發(fā)明的優(yōu)選實(shí)施例將通過InifiniBand架構(gòu)來描述,InifiniBand架構(gòu)是可以使用本發(fā)明的一種可能的系統(tǒng)區(qū)域網(wǎng)絡(luò)。因此將參照圖1-11來提供對InfiniBand網(wǎng)絡(luò)的說明。
現(xiàn)在參見所述附圖,具體參見圖1,它圖解了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的分布式計(jì)算機(jī)系統(tǒng)的圖。圖1中所表示的分布式計(jì)算機(jī)系統(tǒng)采用系統(tǒng)區(qū)域網(wǎng)絡(luò)(SAN)100的形式,并且被提供來僅僅用于說明目的,下述的本發(fā)明的實(shí)施例可以在多種其他類型和配置的計(jì)算機(jī)系統(tǒng)上被實(shí)現(xiàn)。例如,實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)的范圍可以從具有一個(gè)處理器和一些輸入/輸出(I/O)適配器的小服務(wù)器到具有成千上萬的處理器和成千上萬的I/O適配器的整體并列超計(jì)算機(jī)系統(tǒng)。而且,本發(fā)明可以被實(shí)現(xiàn)在由因特網(wǎng)或內(nèi)聯(lián)網(wǎng)連接的遠(yuǎn)程計(jì)算機(jī)系統(tǒng)的基礎(chǔ)結(jié)構(gòu)中。
SAN 100是高帶寬、低等待事件的網(wǎng)絡(luò),它互連在分布式計(jì)算機(jī)系統(tǒng)內(nèi)的節(jié)點(diǎn)。一個(gè)節(jié)點(diǎn)是附加在網(wǎng)絡(luò)的一個(gè)或多個(gè)鏈路并且形成在網(wǎng)絡(luò)內(nèi)的消息的起始地和/或目的地的任何部件。在所述的示例中,SAN 100包括下述形式的節(jié)點(diǎn)主處理器節(jié)點(diǎn)102、主處理器節(jié)點(diǎn)104、冗余陣列獨(dú)立盤(RAID)子系統(tǒng)節(jié)點(diǎn)106和I/O底板節(jié)點(diǎn)108。在圖1中所圖解的節(jié)點(diǎn)僅僅用于說明目的,因?yàn)镾AN 100可以連接任何數(shù)量和任何類型的獨(dú)立處理器節(jié)點(diǎn)、I/O適配器節(jié)點(diǎn)和I/O器件節(jié)點(diǎn)。節(jié)點(diǎn)的任何一個(gè)可以作為終端節(jié)點(diǎn),它在此被定義為始發(fā)或最終消耗在SAN 100中的消息或幀的器件。
在本發(fā)明的一個(gè)實(shí)施例中,提供了在分布式計(jì)算機(jī)系統(tǒng)內(nèi)的一種差錯(cuò)處理機(jī)制,其中所述差錯(cuò)處理機(jī)制使得可以獲得在諸如SAN 100的分布式計(jì)算機(jī)系統(tǒng)內(nèi)的終端節(jié)點(diǎn)之間的可靠連接或可靠的數(shù)據(jù)報(bào)通信。
在此使用的消息是數(shù)據(jù)交換的應(yīng)用限定單位,它是在合作的處理之間通信的原始單位。分組是通過聯(lián)網(wǎng)協(xié)議首標(biāo)和/或尾標(biāo)封裝的數(shù)據(jù)的一個(gè)單位。首標(biāo)一般提供用于通過SAN引導(dǎo)幀的控制和路由信息。尾標(biāo)一般包括控制和循環(huán)冗余檢驗(yàn)(CRC)數(shù)據(jù),用于保證不向分組提供損壞的內(nèi)容。
SAN 100包括通信和管理基礎(chǔ)結(jié)構(gòu),用于支持在分布式計(jì)算機(jī)系統(tǒng)內(nèi)的I/O和處理器之間的通信(IPC)。圖1所示的SAN 100包括開關(guān)通信結(jié)構(gòu)116,它允許多個(gè)器件在安全的、遠(yuǎn)程管理的環(huán)境中以高帶寬和低等待事件來同時(shí)傳送數(shù)據(jù)。終端節(jié)點(diǎn)可以通過多個(gè)端口通信和通過SAN結(jié)構(gòu)來利用多個(gè)路徑。圖1所示的通過SAN的多個(gè)端口和路徑可以用于默認(rèn)的容差和帶寬提高的數(shù)據(jù)傳送。
圖1中的SAN 100包括開關(guān)112、開關(guān)114、開關(guān)146和路由器117。開關(guān)是這樣的器件,它將多個(gè)鏈路連接在一起,并且使得可以使用小首標(biāo)目的地局部標(biāo)識符(DLID)字段從在子網(wǎng)內(nèi)的一個(gè)鏈路向另一個(gè)鏈路傳遞分組。一個(gè)路由器是這樣的器件,它將多個(gè)子網(wǎng)連接在一起,并且能夠使用大首標(biāo)目的地全局唯一標(biāo)識符(DGUID)來從第一子網(wǎng)內(nèi)的一個(gè)鏈路到在第二子網(wǎng)內(nèi)的另一個(gè)鏈路傳遞幀。
在一個(gè)實(shí)施例中,鏈路為在諸如終端節(jié)點(diǎn)、開關(guān)或路由器的任何兩個(gè)網(wǎng)絡(luò)結(jié)構(gòu)元件之間的全雙工信道。作為示例的適當(dāng)鏈路包括但不限于銅纜、光纜和在底板和印刷電路板上的印刷電路銅跡線。
對于可靠的服務(wù)類型,諸如主處理器終端節(jié)點(diǎn)和I/O適配器終端節(jié)點(diǎn)的終端節(jié)點(diǎn)產(chǎn)生請求分組并返回確認(rèn)分組。開關(guān)和路由器從源向目的地傳送分組。除了在網(wǎng)絡(luò)的每個(gè)級更新的變化的CRC尾標(biāo)字段之外,開關(guān)將分組無改變地傳送。路由器當(dāng)傳遞分組時(shí)更新變化的CRC尾標(biāo)字段并修改首標(biāo)中的其他字段。
在圖1所示的SAN 100中,主處理器節(jié)點(diǎn)102、主處理器節(jié)點(diǎn)104和I/O底板108包括至少一個(gè)連接到SAN 100的信道適配器(CA)。在一個(gè)實(shí)施例中,每個(gè)信道適配器是一個(gè)端點(diǎn),它足夠詳細(xì)地實(shí)現(xiàn)信道適配器接口以始發(fā)或吸收在SAN結(jié)構(gòu)100上發(fā)送的分組。主處理器節(jié)點(diǎn)102包括主信道適配器118和主信道適配器120形式的信道適配器。主處理器節(jié)點(diǎn)104包括主信道適配器122和主信道適配器124。主處理器節(jié)點(diǎn)102也包括由總線系統(tǒng)134互連的中央處理單元126-130和存儲(chǔ)器132。主處理器節(jié)點(diǎn)104類似地包括由總線系統(tǒng)144互連的中央處理單元136-140和存儲(chǔ)器142。
主信道適配器118和120提供到開關(guān)112的連接,同時(shí)主信道適配器122和124提供到開關(guān)112和114的連接。
在一個(gè)實(shí)施例中,以硬件來實(shí)現(xiàn)主信道適配器。在這種實(shí)現(xiàn)方式中,主信道適配器硬件卸載中央處理單元和I/O適配器通信開銷的大部分。主信道適配器的這種硬件實(shí)現(xiàn)方式也允許通過開關(guān)網(wǎng)絡(luò)的多個(gè)同時(shí)通信而沒有與通信協(xié)議相關(guān)聯(lián)的傳統(tǒng)開銷。
在一個(gè)實(shí)施例中,圖1中的主信道適配器和SAN 100向I/O和處理器之間通信(IPC)的分布式計(jì)算機(jī)系統(tǒng)的消耗者提供零處理器復(fù)制(processor-copy)數(shù)據(jù)傳送而不涉及操作系統(tǒng)核心處理,并且使用硬件來提供可靠的容錯(cuò)通信。如圖1所示,路由器116連接到與其他主機(jī)或其他路由器連接的廣域網(wǎng)(WAN)和/或局域網(wǎng)(LAN)連接。
圖1中的I/O底板108包括I/O開關(guān)146和多個(gè)I/O模塊148-156。在這些示例中,I/O模塊采用適配器卡的形式。圖1所示的示例適配器卡包括用于I/O模塊148的SCSI適配器卡;對于用于I/O模塊152的、光纖信道集線器和光纖信道仲裁回路(FC-AL)器件的適配器卡;用于I/O模塊150的以太網(wǎng)適配器卡;用于I/O模塊154的圖形適配器卡;用于I/O模塊156的視頻適配器卡??梢詫?shí)現(xiàn)任何公知類型的適配器卡。I/O適配器也包括在I/O適配器底板中的開關(guān),用于將適配器卡連接到SAN結(jié)構(gòu)。這些模塊包括目標(biāo)信道適配器158-166。
在這個(gè)示例中,圖1中的RAID子系統(tǒng)節(jié)點(diǎn)106包括處理器168、存儲(chǔ)器170、目標(biāo)信道適配器(TCA)172和多個(gè)冗余和/或帶狀存儲(chǔ)盤單元174。目標(biāo)信道適配器172可以是全功能的主信道適配器。
SAN 100處理用于I/O和處理器之間的數(shù)據(jù)通信。SAN 100支持I/O所需要的高帶寬和可擴(kuò)展性,并且也支持處理器之間通信所需要的極其低的等待時(shí)間和極其低的CPU開銷。用戶客戶可以繞過操作系統(tǒng)核心處理并且直接訪問網(wǎng)絡(luò)通信硬件,諸如主信道適配器,它們能實(shí)現(xiàn)有效的消息傳送協(xié)議。SAN100被適配于當(dāng)前的計(jì)算模型,并且是用于新形式的I/O和計(jì)算機(jī)簇通信的建立塊。而且,圖1中的SAN 100使得I/O適配器節(jié)點(diǎn)可以在其之間通信或與在分布式計(jì)算機(jī)系統(tǒng)內(nèi)的任何或所有處理器節(jié)點(diǎn)通信。在附加到SAN 100的I/O適配器的情況下,I/O適配器節(jié)點(diǎn)具有與在SAN 100中的任何主處理器節(jié)點(diǎn)實(shí)質(zhì)相同的通信能力。
在一個(gè)實(shí)施例中,圖1所示的SAN 100支持信道語義和存儲(chǔ)器語義。信道語義有時(shí)指的是發(fā)送/接收或推送通信操作。信道語義是在傳統(tǒng)的I/O信道中使用的通信類型,其中源器件推送數(shù)據(jù),并且目的地器件確定數(shù)據(jù)的最終目的地。在信道語義中,從源進(jìn)程發(fā)送的分組指定目的地集成的通信端口,但是不指定分組將被寫到目的地進(jìn)程的存儲(chǔ)器空間中的何處。因此,在信道語義中,目的地進(jìn)程預(yù)先分配在何處布置所發(fā)送的數(shù)據(jù)。
在存儲(chǔ)器語義中,源進(jìn)程直接讀取或?qū)懭脒h(yuǎn)程節(jié)點(diǎn)目的地進(jìn)程的虛擬地址空間。所述遠(yuǎn)程目的地進(jìn)程僅僅需要通信數(shù)據(jù)的緩沖器的位置,并且不必涉及到任何數(shù)據(jù)的傳送中。因此,在存儲(chǔ)器語義中,源進(jìn)程發(fā)送包括目的地進(jìn)程的目的地緩沖存儲(chǔ)器地址的數(shù)據(jù)分組。在存儲(chǔ)器語義中,目的地進(jìn)程提前許可源進(jìn)程訪問其存儲(chǔ)器。
信道語義和存儲(chǔ)器語義通常是I/O和處理器之間通信所需要的。典型的I/O操作使用信道和存儲(chǔ)器語義的組合。在圖1所示的說明性示例分布式計(jì)算機(jī)系統(tǒng)的I/O操作中,諸如主處理器節(jié)點(diǎn)102的主處理器節(jié)點(diǎn)通過使用信道語義來啟動(dòng)I/O操作以向諸如RAID子系統(tǒng)目標(biāo)信道適配器(TCA)172的盤I/O適配器發(fā)送盤寫入命令。盤I/O適配器檢驗(yàn)命令和使用存儲(chǔ)器語義來直接從主處理器節(jié)點(diǎn)的存儲(chǔ)空間中讀取數(shù)據(jù)緩沖器。在讀取數(shù)據(jù)緩沖器之后,盤I/O適配器使用信道語義來向主處理器節(jié)點(diǎn)回推I/O完成消息。
在一個(gè)示范實(shí)施例中,圖1所示的分布式計(jì)算機(jī)系統(tǒng)執(zhí)行使用操作使用虛擬地址和虛擬存儲(chǔ)器保護(hù)機(jī)制來保證正確的和適當(dāng)?shù)膶λ写鎯?chǔ)器的訪問。在這樣的分布式計(jì)算系統(tǒng)中運(yùn)行的應(yīng)用不需要使用用于任何操作的物理尋址。
接著轉(zhuǎn)向圖2,其中描述了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的主處理器節(jié)點(diǎn)的功能方框圖。主處理器節(jié)點(diǎn)200是諸如圖1中的主處理器節(jié)點(diǎn)102的主處理器節(jié)點(diǎn)的示例。
在這個(gè)示例中,圖2所示的主處理器節(jié)點(diǎn)200包括一組消耗者202-208,它們是在主處理器節(jié)點(diǎn)200上運(yùn)行的進(jìn)程。主處理器節(jié)點(diǎn)200也包括信道適配器210和信道雙適配器212。信道適配器210包括端口214和216,而信道適配器212包括端口218和220。每個(gè)端口連接到一個(gè)鏈路。所述端口可以連接到一個(gè)SAN子網(wǎng)或多個(gè)SAN子網(wǎng),諸如圖1所示的SAN 100。在這些示例中,信道適配器采用主信道適配器的形式。
消耗者202-208經(jīng)由動(dòng)詞接口222以及消息和數(shù)據(jù)服務(wù)224向SAN傳送消息。動(dòng)詞接口實(shí)質(zhì)上是主信道適配器的功能的摘要說明。操作系統(tǒng)可以通過其編程接口來揭示一些或所有的動(dòng)詞功能。一般,這個(gè)接口定義主機(jī)的行為。另外,主處理器節(jié)點(diǎn)200包括消息和數(shù)據(jù)服務(wù)224,它是比動(dòng)詞層更高級的接口,并且用于處理通過信道適配器210和信道適配器212接收的消息和數(shù)據(jù)。消息和數(shù)據(jù)服務(wù)224向消耗者202-208提供接口以處理消息和其他數(shù)據(jù)。
現(xiàn)在參見圖3A,其中描述按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的主信道適配器的圖,圖3A所示的主信道適配器300A包括一組隊(duì)列對(QP)302A-310A,它們用于向主信道適配器端口312A-316A傳送消息。到主信道適配器端口312A-316A的數(shù)據(jù)的緩沖通過虛擬通道(VL)318A-334A引導(dǎo),其中每個(gè)VL具有其本身的流控制。子網(wǎng)管理器將信道適配器配置每個(gè)物理端口即端口的LID的局部地址。
子網(wǎng)管理器代理(SMA)336A是與子網(wǎng)管理器通信以用于配置信道適配器的實(shí)體。存儲(chǔ)器翻譯和保護(hù)(MTP)338A是將虛擬地址翻譯為物理地址并且使得訪問權(quán)生效的機(jī)制。直接存儲(chǔ)器訪問(DMA)340A使用相對于隊(duì)列對302A-310A的存儲(chǔ)器340A來提供直接存儲(chǔ)器訪問操作。
諸如圖3A所示的主信道適配器300A的單個(gè)信道適配器可以支持成千上萬的隊(duì)列對。相反,在I/O適配器中的目標(biāo)信道適配器通常支持少得多的隊(duì)列對。每個(gè)隊(duì)列對包括發(fā)送工作隊(duì)列(SWQ)和接收工作隊(duì)列。發(fā)送工作隊(duì)列用于發(fā)送信道和存儲(chǔ)器語義消息。接收工作隊(duì)列接收信道和存儲(chǔ)器語義消息。消耗者調(diào)用在此被稱為動(dòng)詞的操作系統(tǒng)指定的編程接口,以將工作請求(WR)放到一個(gè)工作隊(duì)列上。
圖3B描述了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的開關(guān)300B。開關(guān)300B包括分組中繼器302B,它通過諸如虛擬通道306B這樣的虛擬通道與多個(gè)端口304B通信。一般,諸如開關(guān)300B這樣的開關(guān)可以從在同一開關(guān)上的一個(gè)端口向另一個(gè)端口傳遞分組。
類似地,圖3C描述了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的路由器300C。路由器300C包括分組中繼器302C,它通過諸如虛擬通道306C的虛擬通道與多個(gè)端口304C通信。像開關(guān)300B那樣,路由器300C一般能夠從在同一路由器上的一個(gè)端口向任何其他端口傳遞分組。
信道適配器、開關(guān)和路由器使用在單個(gè)物理鏈路內(nèi)的多個(gè)虛擬通道。如圖3A、3B和3C中所示,物理端口將終端節(jié)點(diǎn)、開關(guān)和路由器連接到子網(wǎng)。插入到SAN結(jié)構(gòu)中的分組從分組的源,沿著一個(gè)或多個(gè)虛擬通道到分組的目的地。所選擇的虛擬通道是從與分組相關(guān)聯(lián)的服務(wù)級映射的。在任何時(shí)候,僅僅一個(gè)虛擬通道在給定的物理鏈路上有作為。虛擬通道提供了一種技術(shù),用于向一個(gè)虛擬通道施加鏈路級流控制而不影像其他的虛擬通道。當(dāng)在一個(gè)虛擬通道上的分組由于爭用、服務(wù)質(zhì)量(QoS)或其他因素而阻塞時(shí),在不同的虛擬通道上的分組被允許有作為。
因?yàn)槎鄠€(gè)原因而使用虛擬通道,其中一些原因如下虛擬通道提供QoS。在一個(gè)示例實(shí)施例中,某些虛擬通道被保留來用于高優(yōu)先級或同步的通信以提供QoS。
虛擬通道提供死鎖避免。虛擬通道允許包括回路的布局,以便通過所有的物理鏈路發(fā)送分組,并且保證所述回路不引起可能引起死鎖的反向壓力依賴性(back pressure dependency)。
虛擬通道減輕了線路頭部阻塞(head-of-line blocking)。當(dāng)一個(gè)開關(guān)不再有可用于利用給定的虛擬通道的分組的信用時(shí),利用不同的具有足夠信用的虛擬通道的分組被允許繼續(xù)有作為。
現(xiàn)在參見圖4,其中描述了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的圖解工作請求的處理的圖。在圖4中,存在接收工作隊(duì)列400、發(fā)送工作隊(duì)列402和完成隊(duì)列404來用于處理來自和去往消耗者406的請求。這些來自消耗者的請求最終被發(fā)送到硬件408。在這個(gè)示例中,消耗者406產(chǎn)生工作請求410和412,并且接收工作完成414。如圖4所示,被布置到工作隊(duì)列上的工作請求被稱為工作隊(duì)列元素(WQE)。
發(fā)送工作隊(duì)列402包括工作隊(duì)列元素(WQE)422-428,用于描述在SAN結(jié)構(gòu)上要發(fā)送的數(shù)據(jù)。接收工作隊(duì)列400包括工作隊(duì)列元素(WQE)416-420,用于描述在何處布置來自SAN結(jié)構(gòu)的輸入信道語義數(shù)據(jù)。工作隊(duì)列元素被在主信道適配器中的硬件408處理。
動(dòng)詞也提供一種機(jī)制,用于從完成隊(duì)列404檢索被完成的工作。如圖4所示,完成隊(duì)列404包括完成隊(duì)列元素(CQE)430-436。完成隊(duì)列元素包括關(guān)于先前完成的工作隊(duì)列元素。完成隊(duì)列404用于建立用于多個(gè)隊(duì)列對的完成通知的單個(gè)點(diǎn)。完成隊(duì)列元素是在完成隊(duì)列上的數(shù)據(jù)結(jié)構(gòu)。這個(gè)元素描述了完成的工作隊(duì)列元素。所述完成隊(duì)列元素包括足夠的信息來確定隊(duì)列對和完成的具體工作隊(duì)列元素。完成隊(duì)列范圍是包括指向獨(dú)立完成隊(duì)列的指針、獨(dú)立完成隊(duì)列的長度和管理獨(dú)立完成隊(duì)列所需要的其他信息的信息的塊。
被支持用于圖4所示的發(fā)送工作隊(duì)列402的示例工作請求如下。發(fā)送工作請求是信道語義操作,用于將一組本地?cái)?shù)據(jù)段推送到由遠(yuǎn)程節(jié)點(diǎn)的接收工作隊(duì)列元素引用的數(shù)據(jù)段。例如,工作隊(duì)列元素428包括對數(shù)據(jù)段4438、數(shù)據(jù)段5440和數(shù)據(jù)段6442的引用。每個(gè)發(fā)送工作請求的數(shù)據(jù)段包括一個(gè)虛擬連續(xù)的存儲(chǔ)器區(qū)域。用于引用本地?cái)?shù)據(jù)段的虛擬地址在建立本地隊(duì)列對的進(jìn)程的地址范圍內(nèi)。
一個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問(RDMA)讀取工作請求提供存儲(chǔ)器語義操作以讀取在遠(yuǎn)程節(jié)點(diǎn)上的虛擬連續(xù)存儲(chǔ)器空間。存儲(chǔ)器空間可以或者是存儲(chǔ)器預(yù)取的一部分或者是存儲(chǔ)器窗口的一部分。存儲(chǔ)器區(qū)域引用通過虛擬地址和長度定義的、先前登記的一組虛擬連續(xù)存儲(chǔ)器地址。存儲(chǔ)器窗口引用已經(jīng)被捆綁到先前登記的區(qū)域中的、一組虛擬連續(xù)的存儲(chǔ)器地址。
RDMA讀取工作請求讀取在遠(yuǎn)程終端節(jié)點(diǎn)上的虛擬連續(xù)存儲(chǔ)器空間,并且向虛擬連續(xù)的本地存儲(chǔ)器空間寫入數(shù)據(jù)。與發(fā)送工作請求類似,由RDMA讀取工作隊(duì)列元素使用來引用本地?cái)?shù)據(jù)段的虛擬地址在建立本地隊(duì)列對的進(jìn)程的地址范圍內(nèi)。例如,在接收工作隊(duì)列400中的工作隊(duì)列元素416引用數(shù)據(jù)段1444、數(shù)據(jù)段2446和數(shù)據(jù)段448。遠(yuǎn)程虛擬地址在擁有由RDMA讀取工作隊(duì)列元素作為目標(biāo)的遠(yuǎn)程隊(duì)列對的進(jìn)程的地址范圍內(nèi)。
RDMA寫入工作隊(duì)列元素提供存儲(chǔ)器語義操作來在遠(yuǎn)程節(jié)點(diǎn)上寫入一個(gè)虛擬連續(xù)存儲(chǔ)器空間。RDMA寫入工作隊(duì)列元素包括本地虛擬連續(xù)存儲(chǔ)器空間和其中寫入本地存儲(chǔ)器空間的遠(yuǎn)程存儲(chǔ)器空間的虛擬地址的散布列表。
RDMA FetchOp工作隊(duì)列元素提供存儲(chǔ)器語義操作以對遠(yuǎn)程詞匯執(zhí)行原子操作(atomic opertion)。RDMA FetchOp工作隊(duì)列元素是組合的RDMA讀取、修改和RDMA寫入操作。RDMA FetchOp工作隊(duì)列元素可以支持幾個(gè)讀取-修改-寫入操作,諸如如果等同時(shí)的比較和交換。
捆綁(bind)(不捆綁)遠(yuǎn)程訪問密鑰(R_Key)工作隊(duì)列元素向主信道適配器硬件提供命令以通過將存儲(chǔ)器窗口與存儲(chǔ)器區(qū)域相關(guān)聯(lián)(或解除關(guān)聯(lián))來修改(破壞)存儲(chǔ)器窗口。R_Key是每個(gè)RDMA訪問的一部分,并且用于驗(yàn)證遠(yuǎn)程進(jìn)程已經(jīng)許可了對緩沖器的訪問。
在一個(gè)實(shí)施例中,圖4所示的接收工作隊(duì)列400僅僅支持一種工作隊(duì)列元素,它被稱為接收工作隊(duì)列元素。接收工作隊(duì)列元素提供了一種信道語義操作,用于描述其中寫入輸入的發(fā)送消息的本地存儲(chǔ)器空間。接收工作隊(duì)列元素包括描述幾個(gè)虛擬連續(xù)的存儲(chǔ)器空間的散布列表。輸入的發(fā)送消息被寫入到這些存儲(chǔ)器空間中。虛擬地址在建立本地隊(duì)列對的進(jìn)程的地址范圍中。
對于處理器之間的通信,用戶模式軟件進(jìn)程通過隊(duì)列對直接從緩沖器在存儲(chǔ)器中駐留的位置來傳送數(shù)據(jù)。在一個(gè)實(shí)施例中,通過隊(duì)列對的傳送繞過操作系統(tǒng)并且消耗較少的主指令周期。隊(duì)列對允許零處理器復(fù)制數(shù)據(jù)傳送,其中不涉及任何操作系統(tǒng)核心。零處理器復(fù)制數(shù)據(jù)傳送提供高帶寬和低等待時(shí)間通信的有效支持。
當(dāng)建立一個(gè)隊(duì)列對時(shí),所述隊(duì)列對被設(shè)置來提供選擇類型的傳送服務(wù)。在一個(gè)實(shí)施例中,實(shí)現(xiàn)本發(fā)明的分布式計(jì)算機(jī)系統(tǒng)支持四種傳送服務(wù)可靠的、不可靠的、可靠的數(shù)據(jù)報(bào)和不可靠的數(shù)據(jù)報(bào)連接服務(wù)。
可靠的和不可靠的連接服務(wù)將一個(gè)本地隊(duì)列對與一個(gè)并且僅僅一個(gè)遠(yuǎn)程隊(duì)列對相關(guān)聯(lián)。連接服務(wù)需要一個(gè)進(jìn)程來建立用于要通過SAN結(jié)構(gòu)通信的每個(gè)進(jìn)程的一個(gè)隊(duì)列對。因此,如果N個(gè)主處理器節(jié)點(diǎn)的每個(gè)包括P個(gè)進(jìn)程,并且在每個(gè)節(jié)點(diǎn)上的所有P個(gè)進(jìn)程希望與在所有其他節(jié)點(diǎn)上的所有進(jìn)程通信,則每個(gè)主處理器節(jié)點(diǎn)需要P2x(N-1)個(gè)隊(duì)列對。而且,一個(gè)進(jìn)程可以將一個(gè)隊(duì)列對連接到在同一主信道適配器上的另一個(gè)隊(duì)列對。
在圖5中一般地圖解了使用可靠的連接服務(wù)來在分布的進(jìn)程之間通信的分布式計(jì)算機(jī)系統(tǒng)的一部分。圖5中的分布計(jì)算機(jī)系統(tǒng)500包括主處理器節(jié)點(diǎn)1、主處理器節(jié)點(diǎn)2和主處理器節(jié)點(diǎn)3。主處理器節(jié)點(diǎn)1包括進(jìn)程A510。主處理器節(jié)點(diǎn)2包括進(jìn)程C520和進(jìn)程D530。主處理器節(jié)點(diǎn)3包括進(jìn)程E540。
主處理器節(jié)點(diǎn)1包括隊(duì)列對4、6和7,每個(gè)具有發(fā)送工作隊(duì)列和接收工作隊(duì)列。主處理器節(jié)點(diǎn)2具有隊(duì)列對9,主處理器節(jié)點(diǎn)3具有隊(duì)列對2和5。分布式計(jì)算機(jī)系統(tǒng)500的可靠連接服務(wù)將本地隊(duì)列對與一個(gè)并且僅僅一個(gè)遠(yuǎn)程隊(duì)列對相關(guān)聯(lián)。因此,隊(duì)列對4用于與隊(duì)列對2通信;隊(duì)列對7用于與隊(duì)列對5通信;隊(duì)列對6用于與隊(duì)列對9通信。
被布置在可靠連接服務(wù)中的一個(gè)隊(duì)列對上的WQE使得數(shù)據(jù)被寫入由連接隊(duì)列對的接收WQE引用的接收存儲(chǔ)器空間中。RDMA操作對連接的隊(duì)列對的地址空間作用。
在本發(fā)明的一個(gè)實(shí)施例中,使得可靠連接服務(wù)可靠,因?yàn)橛布3中蛱?,并且確認(rèn)所有的分組傳送。硬件和SAN驅(qū)動(dòng)器軟件的組合重新嘗試任何失敗的通信。隊(duì)列對的進(jìn)程客戶即使在存在比特誤差、接收欠載運(yùn)行(underrun)和網(wǎng)絡(luò)擁塞的情況下也獲得可靠的通信。如果在SAN網(wǎng)絡(luò)中存在替代的路徑,則可以即使在存在結(jié)構(gòu)開關(guān)、鏈路或信道適配器端口故障的情況下也能夠保持可靠的通信。
另外,可以使用確認(rèn)來通過SAN結(jié)構(gòu)可靠地提供數(shù)據(jù)。所述確認(rèn)是也可以不是進(jìn)程級確認(rèn),即驗(yàn)證數(shù)據(jù)進(jìn)程已經(jīng)消耗了數(shù)據(jù)的確認(rèn)?;蛘?,確認(rèn)可以是僅僅指示數(shù)據(jù)已經(jīng)達(dá)到了其目的地的確認(rèn)。
可靠的數(shù)據(jù)報(bào)服務(wù)將本地端到端(EE)范圍與一個(gè)并且僅僅一個(gè)遠(yuǎn)程端到端范圍相關(guān)聯(lián)??煽康臄?shù)據(jù)報(bào)服務(wù)允許一個(gè)隊(duì)列對的客戶端進(jìn)程與在任何其他遠(yuǎn)程節(jié)點(diǎn)上的任何其他隊(duì)列對通信。在接收工作隊(duì)列,可靠的數(shù)據(jù)報(bào)服務(wù)允許來自在任何其他遠(yuǎn)程節(jié)點(diǎn)上的任何發(fā)送工作隊(duì)列的輸入消息。
可靠的數(shù)據(jù)報(bào)服務(wù)大大地改善了可擴(kuò)展性,因?yàn)榭煽康臄?shù)據(jù)報(bào)服務(wù)是無連接的。因此,具有固定數(shù)量的隊(duì)列對的終端節(jié)點(diǎn)可以與比具有可靠連接傳送服務(wù)的進(jìn)程和終端節(jié)點(diǎn)更多的、具有可靠數(shù)據(jù)報(bào)服務(wù)的進(jìn)程和終端節(jié)點(diǎn)通信。例如,如果N個(gè)主處理器節(jié)點(diǎn)的每個(gè)包括P個(gè)進(jìn)程,并且在每個(gè)節(jié)點(diǎn)上的所有P個(gè)進(jìn)程希望與在所有其他節(jié)點(diǎn)上的所有進(jìn)程通信,則可靠的連接服務(wù)在每個(gè)節(jié)點(diǎn)上需要P2x(N-1)個(gè)隊(duì)列對。通過比較,無連接可靠數(shù)據(jù)報(bào)服務(wù)僅僅在每個(gè)節(jié)點(diǎn)上需要P個(gè)隊(duì)列對+(N-1)EE范圍來用于完全相同的通信。
圖6中圖解了使用可靠的數(shù)據(jù)報(bào)服務(wù)來在分布的進(jìn)程之間通信分布式計(jì)算機(jī)系統(tǒng)。圖6的分布式計(jì)算機(jī)系統(tǒng)600包括主處理器節(jié)點(diǎn)1、主處理器節(jié)點(diǎn)2和主處理器節(jié)點(diǎn)3。主處理器節(jié)點(diǎn)1包括具有隊(duì)列對4的進(jìn)程A610。主處理器節(jié)點(diǎn)2包括具有隊(duì)列對24的進(jìn)程C620和具有隊(duì)列對25的進(jìn)程D630。主處理器節(jié)點(diǎn)3包括具有隊(duì)列對14的進(jìn)程E640。
在分布式計(jì)算機(jī)系統(tǒng)600上實(shí)現(xiàn)的可靠數(shù)據(jù)報(bào)服務(wù)中,隊(duì)列對連接在所謂的無連接傳送服務(wù)內(nèi)。例如,可靠的數(shù)據(jù)報(bào)服務(wù)將隊(duì)列對4連接到隊(duì)列對24、25和14。具體上,可靠的數(shù)據(jù)報(bào)服務(wù)允許隊(duì)列對4的發(fā)送工作隊(duì)列可靠地向在隊(duì)列對24、25和14中的接收工作隊(duì)列傳送消息。類似地,隊(duì)列對24、25和14的發(fā)送隊(duì)列可以可靠地向在隊(duì)列對4中的接收工作隊(duì)列傳送消息。
在本發(fā)明的一個(gè)實(shí)施例中,可靠的數(shù)據(jù)報(bào)服務(wù)使用與每個(gè)消息幀相關(guān)聯(lián)的序號和確認(rèn),以保證與可靠連接服務(wù)相同程度的可靠性。端到端(EE)范圍保持端到端的具體狀態(tài)以記錄序號、確認(rèn)和超時(shí)值。在EE范圍內(nèi)保存的端到端狀態(tài)被在一對終端節(jié)點(diǎn)之間的所有無連接隊(duì)列對通信共享。每個(gè)終端節(jié)點(diǎn)需要至少一個(gè)EE范圍來用于它希望在可靠數(shù)據(jù)報(bào)服務(wù)中與其通信的每個(gè)終端節(jié)點(diǎn)(例如,一個(gè)給定的終端節(jié)點(diǎn)需要能夠與N個(gè)其他終端節(jié)點(diǎn)具有可靠的數(shù)據(jù)報(bào)服務(wù)的至少N個(gè)EE范圍)。
不可靠的數(shù)據(jù)報(bào)服務(wù)是無連接的。由管理應(yīng)用使用不可靠數(shù)據(jù)報(bào)服務(wù)來發(fā)現(xiàn)新的開關(guān)、路由器和終端節(jié)點(diǎn)和將它們集成到給定的分布式計(jì)算機(jī)系統(tǒng)中。不可靠的數(shù)據(jù)報(bào)服務(wù)不提供可靠連接服務(wù)和可靠數(shù)據(jù)報(bào)服務(wù)的可靠性保證。不可靠數(shù)據(jù)報(bào)服務(wù)因此使用在每個(gè)終端節(jié)點(diǎn)中保存的較少狀態(tài)信息來工作。
接著轉(zhuǎn)向圖7,其中描述了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的數(shù)據(jù)分組的圖示。一個(gè)數(shù)據(jù)分組的通過SAN結(jié)構(gòu)傳遞的信息的單位。數(shù)據(jù)分組是終端節(jié)點(diǎn)到終端節(jié)點(diǎn)的構(gòu)造,因此被終端節(jié)點(diǎn)建立和消耗。對于要到達(dá)信道適配器(主或目標(biāo))的分組,數(shù)據(jù)分組不在SAN結(jié)構(gòu)中的開關(guān)和路由器產(chǎn)生或消耗。與對于要到達(dá)信道適配器的分組相反,開關(guān)和路由器僅僅將請求分組或確定分組移動(dòng)到靠近最后的目的地,用于修改在進(jìn)程中的可變鏈接首標(biāo)字段。路由器當(dāng)分組通過子網(wǎng)邊界時(shí)也修改分組的網(wǎng)絡(luò)首標(biāo)。在穿過子網(wǎng)時(shí),單個(gè)分組駐留在單個(gè)服務(wù)級上。
消息數(shù)據(jù)700包括數(shù)據(jù)段1702、數(shù)據(jù)段2704和數(shù)據(jù)段3706,它們類似于圖4中圖解的數(shù)據(jù)段。在這個(gè)示例中,這些數(shù)據(jù)段形成分組708,它被布置到數(shù)據(jù)分組712內(nèi)的分組有效載荷710內(nèi)。另外,數(shù)據(jù)分組712包括CRC714,它用于差錯(cuò)檢驗(yàn)。另外,在數(shù)據(jù)分組712內(nèi)存在路由選擇首標(biāo)716和傳送718。路由選擇首標(biāo)716用于識別數(shù)據(jù)分組712的源和目的地端口。在這個(gè)示例中的傳送首標(biāo)718指定數(shù)據(jù)分組712的目的地隊(duì)列對。另外,傳送首標(biāo)718也提供信息,諸如數(shù)據(jù)分組的712的操作代碼、分組序號和分區(qū)。
操作代碼識別分組是否是消息的第一個(gè)、最后一個(gè)、中間或唯一分組。所述操作代碼也指定操作是否是發(fā)送RDMA寫入、讀取或原子的。當(dāng)通信被建立并且每次隊(duì)列對建立新的分組時(shí)遞增的時(shí)候,初始化分組序號。終端節(jié)點(diǎn)的端口可以被配置為稱為分區(qū)的一個(gè)或多個(gè)可能重疊的組的成員。
在圖8中,描述了分布式計(jì)算機(jī)系統(tǒng)的一部分以圖解一個(gè)示例請求和確定事務(wù)。圖8中的分布式計(jì)算機(jī)系統(tǒng)包括主處理器節(jié)點(diǎn)802和主處理器節(jié)點(diǎn)804。主處理器節(jié)點(diǎn)802包括主信道適配器806。主處理器節(jié)點(diǎn)804包括主信道適配器808。圖8中的分布式計(jì)算機(jī)系統(tǒng)包括SAN結(jié)構(gòu)810、它包括開關(guān)812和開關(guān)814。SAN結(jié)構(gòu)包括將主信道適配器806連接到開關(guān)812的鏈路、將開關(guān)812連接到開關(guān)814的鏈路、將主信道適配器808連接到開關(guān)814的鏈路。
在示例事務(wù)中,主處理器節(jié)點(diǎn)802包括客戶端進(jìn)程A。主處理器節(jié)點(diǎn)804包括客戶端進(jìn)程B??蛻舳诉M(jìn)程A通過隊(duì)列對824與主信道適配器硬件806交互??蛻舳诉M(jìn)程B通過隊(duì)列對828與硬件主信道適配器808交互。隊(duì)列對824和828是包括發(fā)送工作隊(duì)列和接收工作隊(duì)列的數(shù)據(jù)結(jié)構(gòu)。
進(jìn)程A通過向隊(duì)列對824的發(fā)送隊(duì)列登記工作隊(duì)列元素來啟動(dòng)消息請求。圖4中圖解了這樣的工作隊(duì)列元素??蛻舳诉M(jìn)程A的消息請求被在發(fā)送工作隊(duì)列元素中包括的匯總列表引用。在匯總列表中的每個(gè)數(shù)據(jù)段指向虛擬的連續(xù)本地存儲(chǔ)器區(qū)域,它包括消息的一部分,諸如由數(shù)據(jù)段1、2、3所示的那些,它們分別保存在圖4中的消息部分1、2、3。
在主信道適配器806中的硬件讀取工作隊(duì)列元素,并且將存儲(chǔ)在虛擬連續(xù)緩沖器中的消息劃分為數(shù)據(jù)分組,諸如圖7所示的數(shù)據(jù)分組。數(shù)據(jù)分組通過SAN結(jié)構(gòu)傳遞,并且對于可靠傳送服務(wù)被最后的目的地終端節(jié)點(diǎn)確認(rèn)。如果未成功地被確認(rèn),則數(shù)據(jù)分組被源終端節(jié)點(diǎn)重新發(fā)送。數(shù)據(jù)分組被源終端節(jié)點(diǎn)產(chǎn)生并且被目的地終端節(jié)點(diǎn)消耗。
參見圖9,描述了說明按照本發(fā)明的、在分布式聯(lián)網(wǎng)系統(tǒng)中使用的網(wǎng)絡(luò)尋址的圖。主名稱提供對于諸如主處理器節(jié)點(diǎn)或I/O適配器節(jié)點(diǎn)的主節(jié)點(diǎn)的邏輯識別。主名稱識別消息的終端節(jié)點(diǎn),以便消息到達(dá)在由主名稱指定的終端節(jié)點(diǎn)上駐留的進(jìn)程。因此,每個(gè)機(jī)電存在一個(gè)主名稱,但是一個(gè)節(jié)點(diǎn)可以具有多個(gè)CA。
單個(gè)IEEE分配的64比特標(biāo)識符(EUI-64)902被分配到每個(gè)分量。一個(gè)分量可以是開關(guān)、路由器或CA。
每個(gè)CA端口906分配一個(gè)或多個(gè)全局唯一ID(GUID)標(biāo)識符904。由于幾個(gè)原因而使用多個(gè)GUID(也稱為IP地址),其中一些被下列示例圖解。在一個(gè)實(shí)施例中,不同的IP地址識別在一個(gè)終端節(jié)點(diǎn)上的不同的分區(qū)或服務(wù)。在不同的實(shí)施例中,使用不同的IP地址來指定不同的服務(wù)質(zhì)量(QoS)屬性。在另一個(gè)實(shí)施例中,不同的IP地址識別通過在子網(wǎng)內(nèi)的路由的不同的路徑。一個(gè)GUID 908被分配到開關(guān)910。
局部ID(LID)指的是用于識別在單個(gè)子網(wǎng)內(nèi)的CA端口的短地址ID。在一個(gè)示例實(shí)施例中,一個(gè)子網(wǎng)具有多達(dá)216個(gè)終端節(jié)點(diǎn)、開關(guān)和路由器,因此LID是16位。源LID(SLID)和目的地LID(DLID)是在局域網(wǎng)首標(biāo)中使用的源和目的地LID。單個(gè)CA端口906具有分配到它的多達(dá)2LMC個(gè)LID912。LMC表示在CA中的LID掩碼控制字段。掩碼是用于接受或拒絕在一個(gè)終端節(jié)點(diǎn)中的另一組數(shù)據(jù)、分區(qū)或服務(wù)中的比特模式的比特模式。在另一個(gè)實(shí)施例中,不同的LID用于指定不同的QoS屬性。在另一個(gè)實(shí)施例中,不同的LID指定通過子網(wǎng)的不同路徑。每個(gè)開關(guān)910具有與其相關(guān)聯(lián)的一個(gè)LID918。
不必在LID和GUID之間存在一對一的對應(yīng),因?yàn)镃A可以具有比每個(gè)端口的GUID更多或更少的LID。對于具有對多個(gè)SAN結(jié)構(gòu)的冗余端口和冗余傳導(dǎo)性的CA,CA在每個(gè)其端點(diǎn)上可以但不要求使用相同的LID和GUID。
圖10中圖解了按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的分布式計(jì)算機(jī)系統(tǒng)的一部分。分布式計(jì)算機(jī)系統(tǒng)1000包括子網(wǎng)1002和子網(wǎng)1004。子網(wǎng)1002包括主處理器節(jié)點(diǎn)1006、1008和1010。子網(wǎng)1004包括主處理器節(jié)點(diǎn)1012和1014。子網(wǎng)1004包括主處理器節(jié)點(diǎn)1012和1014。子網(wǎng)1002包括開關(guān)1016和1018。子網(wǎng)1004包括開關(guān)1020和1022。
路由器連接子網(wǎng)。例如,子網(wǎng)1022使用路由器1024和1026來連接到子網(wǎng)1004。在一個(gè)示例實(shí)施例中,子網(wǎng)具有高達(dá)216個(gè)終端節(jié)點(diǎn)、開關(guān)和路由器。
子網(wǎng)被定義為被管理為單個(gè)單元的一組終端節(jié)點(diǎn)和級聯(lián)開關(guān)。通常,子網(wǎng)占用單個(gè)地理或功能區(qū)域。例如,在一個(gè)房間內(nèi)的單個(gè)計(jì)算機(jī)系統(tǒng)可以被定義為一個(gè)子網(wǎng)。在一個(gè)實(shí)施例中,在子網(wǎng)中的開關(guān)可以執(zhí)行很快的、對于消息的蟲孔式或切入式路由選擇(wormho1e or cut-through routing)。
子網(wǎng)內(nèi)的開關(guān)檢驗(yàn)在子網(wǎng)內(nèi)唯一的DLID,以允許所述客戶迅速和有效地傳遞輸入的消息分組。在一個(gè)實(shí)施例中,所述開關(guān)是較為簡單的電路,并且通常被實(shí)現(xiàn)為單個(gè)集成電路。子網(wǎng)可以具有成千上萬的由級聯(lián)客戶形成的終端節(jié)點(diǎn)。
如圖10所示,為了擴(kuò)展到更大的系統(tǒng),使用諸如路由器1024和1026的路由器來連接子網(wǎng)。路由器翻譯IP目的地ID(例如IPv6目的地ID),并且傳遞IP類分組。
開關(guān)的一個(gè)示例實(shí)施例被一般地圖解在圖3B中。在開關(guān)或路由器上的每個(gè)I/O路徑具有一個(gè)端口。一般,一個(gè)開關(guān)可以從在同一開關(guān)上的一個(gè)端口向任何其他端口傳遞分組。
在諸如子網(wǎng)1002或子網(wǎng)1004的一個(gè)子網(wǎng)內(nèi),從源端口到目的地端口的一個(gè)路徑被目的地主信道適配器端口的LID確定。在子網(wǎng)之間,通過目的地主信道適配器端口的IP地址(例如IPv6地址)和通過將用于達(dá)到目的地子網(wǎng)的另一端端口的LID地址來確定路徑。
在一個(gè)實(shí)施例中,不要求由請求分組使用的路徑和請求分組的對應(yīng)肯定確認(rèn)(ACK)或否定確認(rèn)(NAK)幀對稱。在使用忘卻的路由的一個(gè)實(shí)施例中,開關(guān)根據(jù)DLID來選擇輸出端口。在一個(gè)實(shí)施例中,開關(guān)使用一組路由判定標(biāo)準(zhǔn)來用于其所有的輸入端口。在一個(gè)示例實(shí)施例中,在一個(gè)路由表中包括路由判定標(biāo)準(zhǔn)。在一個(gè)替代實(shí)施例中,開關(guān)使用獨(dú)立的一組標(biāo)準(zhǔn)來用于每個(gè)輸入端口。在本發(fā)明的分布式計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)事務(wù)通常包括幾個(gè)硬件和軟件步驟??蛻舳诉M(jìn)程數(shù)據(jù)傳送服務(wù)可以是用戶模式或核心模式進(jìn)程??蛻舳诉M(jìn)程通過諸如在圖3A、5和6中圖解的隊(duì)列對的一個(gè)或多個(gè)隊(duì)列對來訪問主信道適配器硬件??蛻舳诉M(jìn)程調(diào)用操作系統(tǒng)專用編程接口,它在此被稱為“動(dòng)詞”。實(shí)現(xiàn)動(dòng)詞的軟件代碼向給定的隊(duì)列對工作隊(duì)列登記工作隊(duì)列元素。
存在登記工作隊(duì)列元素的許多可能的方法,并且存在許多可能的工作隊(duì)列元素格式,它們允許各種成本/性能設(shè)計(jì)點(diǎn),但是它們不影響互用性。但是,一個(gè)用戶進(jìn)程必須以良好定義的方式向動(dòng)詞通信,并且通過SAN結(jié)構(gòu)傳送的數(shù)據(jù)的格式和協(xié)議必須被充分地指定以便使得器件可以共同工作在異類的廠商環(huán)境中。
在一個(gè)實(shí)施例中,信道適配器硬件檢測工作隊(duì)列元素登記和訪問所述工作隊(duì)列元素。在這個(gè)實(shí)施例中,信道適配器硬件翻譯和驗(yàn)證工作隊(duì)列元素的虛擬地址和訪問數(shù)據(jù)。
輸出的消息被劃分為一個(gè)或多個(gè)數(shù)據(jù)分組。在一個(gè)實(shí)施例中,信道適配器硬件向每個(gè)分組增加一個(gè)傳送首標(biāo)和一個(gè)網(wǎng)絡(luò)首標(biāo)。傳送首標(biāo)包括路由信息,諸如目的地IP地址和其他網(wǎng)絡(luò)路由信息。鏈路首標(biāo)包括目的地本地標(biāo)識符(DLID)或其他本地路由選擇信息。適當(dāng)?shù)逆溌肥讟?biāo)總是被添加到分組。如果目的地終端節(jié)點(diǎn)駐留在遠(yuǎn)程子網(wǎng)上,則適當(dāng)?shù)娜志W(wǎng)絡(luò)首標(biāo)被加到給定的分組。
如果使用可靠的傳送服務(wù),則當(dāng)其數(shù)據(jù)分組到達(dá)其目的地終端節(jié)點(diǎn)時(shí),由目的地終端結(jié)果使用確認(rèn)數(shù)據(jù)分組來讓請求數(shù)據(jù)分組發(fā)送者知道請求數(shù)據(jù)分組在目的地被驗(yàn)證和接受。確認(rèn)數(shù)據(jù)分組確認(rèn)一個(gè)或多個(gè)有效的和被接受的請求數(shù)據(jù)分組。請求者可以在它接收到任何確認(rèn)之前具有多個(gè)未決的請求數(shù)據(jù)分組。在一個(gè)實(shí)施例中,當(dāng)建立一個(gè)隊(duì)列對時(shí)確定多個(gè)未決的消息、即請求數(shù)據(jù)分組的數(shù)量。
用于實(shí)現(xiàn)本發(fā)明的分層結(jié)構(gòu)1100的一個(gè)實(shí)施例在圖11中以圖的形式被一般地圖解。圖11中的分層結(jié)構(gòu)圖示出了數(shù)據(jù)通信路徑的各種層以及在層之間穿過的數(shù)據(jù)和控制信息的組織。
主信道適配器終端節(jié)點(diǎn)協(xié)議層(例如由終端節(jié)點(diǎn)1111使用)包括由消耗者1103定義的上層協(xié)議1102、傳送層1104、網(wǎng)絡(luò)層1106、鏈路層1108和物理層1110。開關(guān)層(例如由開關(guān)1113使用)包括鏈路層1108和物理層1110。路由器層(例如由路由器1115使用)包括網(wǎng)絡(luò)層1106、鏈路層1108和物理層1110。
分層結(jié)構(gòu)1100一般遵循經(jīng)典的通信堆棧輪廓。關(guān)于終端節(jié)點(diǎn)1111的協(xié)議層,例如,上層協(xié)議1102使用動(dòng)詞(1112)來在傳送層1104建立消息。傳送層1104向網(wǎng)絡(luò)層1106傳送消息(1114)。網(wǎng)絡(luò)層1106在網(wǎng)絡(luò)子網(wǎng)(1116)之間傳遞分組。鏈路層1108在網(wǎng)絡(luò)子網(wǎng)內(nèi)傳遞分組(1118)。物理層1110向其他器件的物理層發(fā)送比特或比特組。每個(gè)層不知道上層或下層如何執(zhí)行它們的功能。
消耗者1103和1105表示使用用于在終端節(jié)點(diǎn)之間通信的其他層的應(yīng)用或進(jìn)程。傳送層1104提供端到端消息移動(dòng)。在一個(gè)實(shí)施例中,傳送層提供如上所述的三種類型的傳送服務(wù),它們是可靠的連接服務(wù);可靠數(shù)據(jù)報(bào)服務(wù);不可靠的數(shù)據(jù)報(bào)服務(wù)。網(wǎng)絡(luò)層1106執(zhí)行通過一個(gè)子網(wǎng)或多個(gè)子網(wǎng)到目的地終端節(jié)點(diǎn)的分組路由選擇。鏈接層1108執(zhí)行流控制、差錯(cuò)檢驗(yàn)和跨鏈路優(yōu)先化分組傳送。
物理層1110執(zhí)行與技術(shù)相關(guān)的比特傳輸。比特或比特組經(jīng)由鏈路1122、1124和1126在物理層之間傳送。可以使用印刷電路板銅跡線、銅纜、光纜或使用其他適當(dāng)?shù)逆溌穪韺?shí)現(xiàn)鏈路。
如上所述,本發(fā)明涉及用于系統(tǒng)區(qū)域網(wǎng)絡(luò)的改進(jìn)裝置、系統(tǒng)和方法,所述系統(tǒng)區(qū)域網(wǎng)絡(luò)諸如InfiniBand網(wǎng)絡(luò),其中邏輯分區(qū)被系統(tǒng)區(qū)域網(wǎng)絡(luò)的主信道適配器(HCA)支持。使用本發(fā)明提供的對于HCA的邏輯分區(qū)支持,多個(gè)操作系統(tǒng)可以共享單個(gè)物理HCA的資源。邏輯分區(qū)保證每個(gè)操作系統(tǒng)不知道正在與其他操作系統(tǒng)共享HCA硬件資源,并且還保證防止特定分區(qū)的獨(dú)立操作系統(tǒng)和應(yīng)用訪問與其他分區(qū)相關(guān)聯(lián)的HCA硬件資源。
圖12是圖解由主信道適配器支持的邏輯元件的物理主信道適配器的示意圖。圖12所示的主信道適配器對應(yīng)于圖3A所示的主信道適配器,但是具有本發(fā)明的改進(jìn)以提供在主信道適配器內(nèi)的邏輯分區(qū)支持。
如圖12所示,主信道適配器(HCA)1200包括與圖3A所示的主信道適配器類似的兩個(gè)物理端口1210和1220。另外,在HCA 1200上提供了隊(duì)列對1232-1242,用于向主系統(tǒng)資源發(fā)送數(shù)據(jù)分組和從主系統(tǒng)資源接收數(shù)據(jù)分組。另外的設(shè)施被提供,它們允許邏輯開關(guān)和邏輯HCA作為外部子網(wǎng)管理器的通常開關(guān)和HCA而出現(xiàn)。
主系統(tǒng)的資源以本領(lǐng)域內(nèi)公知的方式被邏輯地分區(qū)為邏輯分區(qū)LPAR1-LPARn。為了每個(gè)LPAR具有主信道適配器的結(jié)構(gòu)上準(zhǔn)確的視圖,管理器建立邏輯主信道適配器的圖像,其中一個(gè)或多個(gè)邏輯端口附加在一個(gè)邏輯開關(guān)上,所述邏輯開關(guān)繼而連接到物理主信道適配器的物理端口。如此作所采取的行為包括分配獨(dú)立的主信道適配器資源,諸如隊(duì)列對、完成隊(duì)列、事件隊(duì)列,對于每個(gè)邏輯主信道適配器/邏輯端口發(fā)送和接收數(shù)據(jù)計(jì)數(shù)器和存儲(chǔ)器翻譯表項(xiàng)目。這些分配通常不同時(shí)發(fā)生,因?yàn)閬碜詰?yīng)用的資源請求是隨著時(shí)間動(dòng)態(tài)的。但是,當(dāng)每個(gè)資源被分配時(shí),管理器向資源分配擁有的邏輯分區(qū)的邏輯分區(qū)標(biāo)識符,以便在操作期間驗(yàn)證擁有權(quán)。
返回圖12,在HCA中的某些隊(duì)列對通過由管理器1260分配的邏輯分區(qū)標(biāo)識符而與邏輯分區(qū)LPAR1-LPARn相關(guān)聯(lián)。例如,當(dāng)邏輯分區(qū)的操作系統(tǒng)請求使用不是另外要被分配到另一個(gè)邏輯分區(qū)的隊(duì)列對時(shí),那個(gè)隊(duì)列對將被分配對應(yīng)于操作系統(tǒng)的邏輯分區(qū)的邏輯分區(qū)標(biāo)識符。以這種方式,僅僅管理器(它是可以訪問任何HCA資源的可信軟件)、操作系統(tǒng)和與操作系統(tǒng)的邏輯分區(qū)相關(guān)聯(lián)的用戶應(yīng)用可以訪問隊(duì)列對。而且,操作系統(tǒng)和邏輯分區(qū)的應(yīng)用檢驗(yàn)所述操作系統(tǒng)和應(yīng)用專用的系統(tǒng),并且不知道其他的邏輯分區(qū)。
具有相同邏輯分區(qū)標(biāo)識符的資源包括HCA的一個(gè)邏輯分區(qū)。在邏輯分區(qū)劃分中使用的概念向每個(gè)操作系統(tǒng)提供了它們工作在它們自己的地址空間的視圖。但是,要求HCA硬件訪問被內(nèi)部保存在硬件以及位于系統(tǒng)存儲(chǔ)器中實(shí)際存儲(chǔ)器地址的數(shù)據(jù)結(jié)構(gòu)。使用與HCA資源相關(guān)聯(lián)的邏輯分區(qū)標(biāo)識符以及內(nèi)置的HCA硬件檢驗(yàn)向硬件提供了這樣的手段保證它代表工作請求刺激(經(jīng)由隊(duì)列對)做出的所有訪問對于請求的邏輯分區(qū)確實(shí)有效。
每個(gè)邏輯分區(qū)具有其本身的地址空間,以防止未經(jīng)授權(quán)的軟件訪問邏輯分區(qū)的硬件資源。僅僅作為可信代碼和具有訪問硬件資源的最高優(yōu)先權(quán)的管理器、邏輯分區(qū)的操作系統(tǒng)和在邏輯分區(qū)內(nèi)的應(yīng)用可以訪問被分配到邏輯分區(qū)的HCA的資源。
為了向HCA中的適當(dāng)邏輯分區(qū)引導(dǎo)輸入的數(shù)據(jù)分組和從邏輯分區(qū)向適當(dāng)?shù)奈锢矶丝谝龑?dǎo)輸出的數(shù)據(jù)分組,每個(gè)邏輯分區(qū)包括這樣的邏輯HCA1282-1286,它具有邏輯端口、與物理端口1292-1294相關(guān)聯(lián)的邏輯開關(guān)和在子網(wǎng)管理代理1250內(nèi)的邏輯開關(guān)控制點(diǎn)。子網(wǎng)管理器能夠向邏輯HCA端口分配唯一的邏輯標(biāo)識符(LID)和全局標(biāo)識符(GID),管理器更新隊(duì)列對設(shè)施以將每個(gè)隊(duì)列對與LID和GID相關(guān)聯(lián)。管理器1260保存一個(gè)或多個(gè)表以識別每個(gè)邏輯分區(qū)的資源的唯一LID和GID。
換句話說,每個(gè)邏輯端口具有相關(guān)聯(lián)的LID/GID。邏輯端口屬于已經(jīng)被分配到一個(gè)邏輯分區(qū)的邏輯主信道適配器。隊(duì)列對1232-1242與特定的邏輯端口相關(guān)聯(lián)。以這種方式,每個(gè)邏輯分區(qū)工作就像它具有其本身的邏輯主信道適配器1282-1286。
每個(gè)邏輯主信道適配器1282-1286可以具有被分配到一個(gè)邏輯分區(qū)的多個(gè)隊(duì)列對1232-1242,它們具有被配置來提供對多個(gè)物理端口1292-1294的訪問的屬性。因?yàn)槊總€(gè)隊(duì)列對1232-1242可以對于多個(gè)物理端口1292-1294發(fā)送數(shù)據(jù)分組和接收分組,因此每個(gè)隊(duì)列對1232-1242提供這樣的設(shè)施,它們指示與其相關(guān)聯(lián)的物理端口。
每個(gè)物理端口1292-1294也提供附加的設(shè)施,它們用于控制到特定目的地LID的分組是否被傳遞出物理端口1292-1294或傳遞到在HCA 1200內(nèi)包括的隊(duì)列對。即,HCA硬件使用端口設(shè)施來檢驗(yàn)被發(fā)送到特定的隊(duì)列對1232-1242的向內(nèi)的分組,以便保證它們滿足隊(duì)列對屬性。HCA硬件也使用端口設(shè)施來檢驗(yàn)向外的分組以確定目的地是否是在物理HCA 1200內(nèi)的另一個(gè)隊(duì)列對1232-1242,在這種情況下,傳遞分組到內(nèi)部隊(duì)列對1232-1242。HCA硬件通過下列方式來執(zhí)行這個(gè)檢驗(yàn)查看目的地邏輯標(biāo)識符(DLID)以看DLID是否被分配到在由這個(gè)物理主信道適配器1200支持的邏輯主信道適配器1282-1286上定義的邏輯端口。這些傳遞到內(nèi)部的分組也被檢驗(yàn)以保證它們也滿足目的地隊(duì)列對的屬性。隊(duì)列對設(shè)施和端口設(shè)施被管理器軟件保存,并且建立在隊(duì)列對和物理端口之間存在開關(guān)的邏輯視圖。
這些邏輯開關(guān)在圖12中被圖解為項(xiàng)目1296-1298。如上所述,對于輸入數(shù)據(jù)分組,管理器1260的邏輯開關(guān)1296-1298執(zhí)行查找在具有隊(duì)列對屬性的數(shù)據(jù)分組首標(biāo)中給出的屬性值,以便確定應(yīng)當(dāng)向哪個(gè)隊(duì)列對寫入數(shù)據(jù)分組。對于輸出的數(shù)據(jù)分組。管理器1260的邏輯開關(guān)1296-1298執(zhí)行查找,以便確定向哪個(gè)物理端口1210-1220發(fā)送數(shù)據(jù)分組或數(shù)據(jù)分組是否要被發(fā)送到在同一物理HCA 1200中的另一個(gè)隊(duì)列對。這些傳遞到內(nèi)部的分組也被檢驗(yàn)以保證它們也滿足目的地隊(duì)列對的屬性。
管理器1260提供虛擬地址翻譯和保護(hù)表,其輸入項(xiàng)目與HCA資源的獨(dú)立邏輯分區(qū)相關(guān)聯(lián)。即,每個(gè)設(shè)施可以在所述虛擬地址翻譯和保護(hù)表中具有一個(gè)輸入項(xiàng)目,并且所述輸入項(xiàng)目可以與特定的邏輯分區(qū)相關(guān)聯(lián)。通過在所述虛擬地址翻譯和保護(hù)表中提供獨(dú)立的邏輯分區(qū),與操作系統(tǒng)的隊(duì)列對相關(guān)聯(lián)的直接存儲(chǔ)器訪問(DMA)操作被限制到那個(gè)隊(duì)列對的授權(quán)存儲(chǔ)器空間。因此,例如,在邏輯分區(qū)1中的應(yīng)用不可以訪問邏輯分區(qū)2的資源,因?yàn)樵谒鎏摂M地址翻譯和保護(hù)表中邏輯分區(qū)2的資源的地址與邏輯分區(qū)1不相關(guān)聯(lián)。換句話說,在邏輯分區(qū)2中的資源的地址將超出在邏輯分區(qū)1的虛擬地址翻譯和保護(hù)表中的范圍。
因此,每個(gè)邏輯分區(qū)通過在所述虛擬地址翻譯和保護(hù)表中的獨(dú)立輸入項(xiàng)目與其他邏輯分區(qū)保持分離。但是,一個(gè)邏輯分區(qū)的操作系統(tǒng)和應(yīng)用可以經(jīng)由正常的InifiniBand協(xié)議與另一個(gè)邏輯分區(qū)的操作系統(tǒng)和應(yīng)用通信或與外部器件通信。
如上所述,管理器1260負(fù)責(zé)向隊(duì)列對分配邏輯分區(qū)標(biāo)識符。這個(gè)邏輯分區(qū)標(biāo)識符將隊(duì)列對和它們相關(guān)聯(lián)的HCA資源編組為邏輯分區(qū)。這個(gè)邏輯分區(qū)標(biāo)識符還用于當(dāng)從特定的隊(duì)列對的工作隊(duì)列輸入項(xiàng)目(WQE)產(chǎn)生完成隊(duì)列輸入項(xiàng)目(CQE)或事件隊(duì)列輸入項(xiàng)目(EQE)的時(shí)候執(zhí)行檢驗(yàn)。
可以從__提交的、題目為“APPARATUS,SYSTEM AND METHODFORPROVIDING MULTIPLE LOGICAL CHANNEL ADAPTERS WITHIN ASINGLE PHYSICAL CHANNEL ADAPTER IN A SYSTEM AREANETWORK(用于在系統(tǒng)區(qū)域網(wǎng)絡(luò)中的單個(gè)物理信道適配器內(nèi)提供多個(gè)邏輯信道適配器的裝置、系統(tǒng)和方法)”的、共同轉(zhuǎn)讓和待審的美國專利申請序號第_號(律師備審案件目錄表編號AUS920020715US1)獲得便于在主系統(tǒng)內(nèi)的邏輯分區(qū)的、關(guān)于HCA的邏輯分區(qū)劃分的附加信息,所述美國專利申請?jiān)诖送ㄟ^引用并入。
如上所述,主信道適配器(HCA)通常包括支持多個(gè)隊(duì)列對(QP)、完成隊(duì)列(CQ)、事件隊(duì)列(EQ)和存儲(chǔ)器區(qū)域(MR)所需要的存儲(chǔ)器設(shè)施。在此使用的術(shù)語“設(shè)施”指的是任何硬件資源,諸如寄存器。隊(duì)列對通常被分配到在主處理器上運(yùn)行的用戶程序。除了隊(duì)列對的組之外,完成隊(duì)列、事件隊(duì)列、存儲(chǔ)器區(qū)域等可以如上所述被分配到邏輯分區(qū)。
期望僅僅允許與特定隊(duì)列對相關(guān)聯(lián)的程序訪問在HCA中的隊(duì)列對的設(shè)施。而且,期望僅僅允許分配到一個(gè)邏輯分區(qū)的操作系統(tǒng)和用戶應(yīng)用訪問與那個(gè)邏輯分區(qū)相關(guān)聯(lián)的HCA設(shè)施。以這種方式,一個(gè)邏輯分區(qū)的操作系統(tǒng)和用戶應(yīng)用不能干擾另一個(gè)邏輯分區(qū)的操作系統(tǒng)和用戶應(yīng)用的功能。而且,如果在一個(gè)邏輯分區(qū)中存在失敗或故障,則所述失敗或故障被與那個(gè)特定的邏輯分區(qū)隔離,并且不干擾其他邏輯分區(qū)的功能。本發(fā)明提供了一種機(jī)制,用于控制對HCA設(shè)施的訪問,以便僅僅邏輯分區(qū)的用戶應(yīng)用和操作系統(tǒng)或者諸如管理器的可信代碼可以訪問給定的邏輯分區(qū)的HCA設(shè)施。
如上所述,本發(fā)明涉及用于系統(tǒng)區(qū)域網(wǎng)絡(luò)的改進(jìn)裝置、系統(tǒng)和方法,所述系統(tǒng)區(qū)域網(wǎng)絡(luò)諸如InfiniBand網(wǎng)絡(luò),其中邏輯分區(qū)劃分被系統(tǒng)區(qū)域網(wǎng)絡(luò)的主信道適配器(HCA)支持。使用本發(fā)明,通過分配使用類和存儲(chǔ)器空間映射來控制對HCA設(shè)施的訪問。使用本發(fā)明,只有操作系統(tǒng)或應(yīng)用被允許訪問存儲(chǔ)器的對應(yīng)頁面并且具有足夠訪問HCA設(shè)施的使用類時(shí),才允許對HCA設(shè)施的訪問。
通過地址翻譯機(jī)制來控制對存儲(chǔ)器的對應(yīng)頁面的訪問,在所述地址翻譯機(jī)制中,虛擬地址被翻譯為系統(tǒng)存儲(chǔ)器地址空間的實(shí)際地址。根據(jù)諸如應(yīng)用、操作系統(tǒng)、可信代碼這類的請求者的標(biāo)識,所述地址翻譯機(jī)制可以確定是否允許請求者訪問虛擬地址所映射的系統(tǒng)存儲(chǔ)頁面。所述標(biāo)識可以是例如邏輯分區(qū)標(biāo)識符等。以這種方式,來自一個(gè)邏輯分區(qū)的請求者不可以訪問被分配到不同邏輯分區(qū)的系統(tǒng)存儲(chǔ)頁面。
假定請求者能夠訪問與虛擬地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)頁面,則對應(yīng)于虛擬地址的實(shí)際地址從系統(tǒng)存儲(chǔ)器的這個(gè)頁面被獲得,并且用于訪問被分配到隊(duì)列對、完成隊(duì)列、事件隊(duì)列或存儲(chǔ)器區(qū)域的系統(tǒng)存儲(chǔ)器地址空間的使用類頁面。使用實(shí)際地址訪問的特定使用類頁面識別請求者的使用類。而且,所述使用類頁面包括可以由具有對應(yīng)的使用類的請求者訪問的HCA設(shè)施的列表。然后比較請求訪問的設(shè)施的標(biāo)識符和在使用類頁面中的HCA設(shè)施的標(biāo)識符。如果請求訪問的設(shè)施的標(biāo)識符匹配在使用類頁面中的HCA設(shè)施的標(biāo)識符,則許可對于HCA設(shè)施的訪問,諸如寫入或讀取。否則,拒絕訪問。
在一個(gè)優(yōu)選實(shí)施例中,定義了四個(gè)使用類用戶類、特許類、實(shí)際地址類和超特許類。用戶類資源是需要用戶程序可以直接訪問的那些資源。在這個(gè)類中的資源可以僅僅影響單個(gè)隊(duì)列對、完成隊(duì)列、事件隊(duì)列或存儲(chǔ)器資源。
特許類資源是要針對用戶程序保護(hù)、但是可以由在與資源相關(guān)聯(lián)的邏輯分區(qū)上運(yùn)行的操作系統(tǒng)和固件訪問的資源。在這個(gè)類中的資源是不需要使得用戶程序可以直接訪問的、并且僅僅可以影響單個(gè)邏輯分區(qū)的那些資源。
實(shí)際地址類資源是那些包括實(shí)際地址的HCA資源。對于實(shí)際地址類資源要求與特許類相同的訪問要求。這個(gè)使用類用于支持虛擬機(jī)應(yīng)用和標(biāo)志資源,所述標(biāo)志資源具有必須從邏輯分區(qū)實(shí)際地址翻譯為系統(tǒng)實(shí)際地址的實(shí)際地址。
超特許類資源是針對用戶程序和在任何邏輯分區(qū)上運(yùn)行的操作系統(tǒng)保護(hù)的資源。在這個(gè)類中的資源是影響整體主信道適配器的資源。僅僅諸如管理器的可信應(yīng)用可以訪問具有超特許類的資源。
雖然本發(fā)明的優(yōu)選實(shí)施例使用如上所述的四個(gè)使用類,但是本發(fā)明不限于此,可以在不脫離本發(fā)明的精神和范圍的情況下使用任何數(shù)量的使用類。例如,如果不必支持虛擬機(jī)應(yīng)用,則可以取消實(shí)際地址類。而且,可以與上述的一個(gè)或多個(gè)使用類相結(jié)合地、或替代上述的一個(gè)或多個(gè)使用類地使用其他使用類。
上述定義的使用類提供了可以被分配到主信道適配器的資源的訪問權(quán)的分層結(jié)構(gòu)。例如,超特許資源可以僅僅被主信道適配器的管理器訪問。特許(和實(shí)際地址)類資源可以僅僅由它們所分配到的分區(qū)的操作系統(tǒng)和超級管理器訪問。用戶空間資源可以被它們相關(guān)聯(lián)的用戶程序、分區(qū)操作系統(tǒng)和管理器訪問。這個(gè)分層訪問權(quán)結(jié)構(gòu)被圖解在下面的表1中,所述表1以訪問權(quán)的升序組織。
表1-使用類的分層在已經(jīng)建立了分層使用類方案之后,這個(gè)分層使用類方案通過向隊(duì)列對、完成隊(duì)列、事件隊(duì)列和存儲(chǔ)器區(qū)域等分配在系統(tǒng)存儲(chǔ)器地址空間中的存儲(chǔ)頁面來在主信道適配器中被實(shí)現(xiàn)。即,用于每個(gè)獨(dú)立隊(duì)列對、完成隊(duì)列、事件隊(duì)列和存儲(chǔ)器區(qū)域的設(shè)施的地址被映射到系統(tǒng)存儲(chǔ)器地址空間的不同頁面。對于每個(gè)隊(duì)列對、完成隊(duì)列、事件隊(duì)列和存儲(chǔ)器區(qū)域,系統(tǒng)存儲(chǔ)器地址空間的四個(gè)頁面被分配-每個(gè)使用類一個(gè)。系統(tǒng)存儲(chǔ)器地址空間的這些頁面被填充可以由具有與其相關(guān)聯(lián)的對應(yīng)使用類的請求者訪問的隊(duì)列對、完成隊(duì)列、事件隊(duì)列或存儲(chǔ)器區(qū)域的設(shè)施的地址。
在本發(fā)明的一個(gè)實(shí)施例中,HCA包括用于隊(duì)列對(QP)設(shè)施的四個(gè)基本地址寄存器(BAR)、用于完成隊(duì)列(CQ)設(shè)施的四個(gè)BAR、用于事件隊(duì)列(EQ)設(shè)施的四個(gè)BAR、用于存儲(chǔ)器區(qū)域(MR)設(shè)施的四個(gè)BAR。四個(gè)QP BAR用來定義用于所有HCA的QP用戶空間、特許空間、實(shí)際地址空間和超特許頁面的開始頁面地址。對于CQ、EQ和MR空間也是同樣。這些BAR空間的每個(gè)的長度等于QP、CQ、EQ或MR的數(shù)量乘以系統(tǒng)頁面大小。
圖13圖解了按照本發(fā)明的在HCA的系統(tǒng)存儲(chǔ)器地址空間中的BAR空間的示例。如圖13所示,每個(gè)隊(duì)列對、完成隊(duì)列、事件隊(duì)列和存儲(chǔ)器區(qū)域具有用于不同的使用類的每個(gè)的系統(tǒng)存儲(chǔ)器地址空間的專用頁面。BAR在用于隊(duì)列對、完成隊(duì)列、事件隊(duì)列和存儲(chǔ)器區(qū)域的用戶地址空間、特許地址空間、實(shí)際地址空間和超特許地址空間中存儲(chǔ)相關(guān)聯(lián)的頁面的基本地址。結(jié)果,在一個(gè)優(yōu)選實(shí)施例中,存在16個(gè)BAR??梢愿鶕?jù)BAR和進(jìn)入與BAR相關(guān)聯(lián)的BAR空間的偏移來識別每個(gè)使用空間的具體頁面。每個(gè)BAR空間的大小是依賴于特定BAR空間的隊(duì)列對、完成隊(duì)列、事件隊(duì)列或存儲(chǔ)器區(qū)域的數(shù)量乘以系統(tǒng)存儲(chǔ)器地址空間頁面大小。
圖14圖解了按照本發(fā)明的、分配到示意隊(duì)列對的系統(tǒng)存儲(chǔ)器地址空間頁面的擴(kuò)展視圖。如圖14所示,系統(tǒng)存儲(chǔ)器的每個(gè)頁面包括可以由具有相關(guān)聯(lián)的使用類的請求者訪問的隊(duì)列對的設(shè)施的地址列表。如圖所示,在與用戶地址空間使用類相關(guān)聯(lián)的頁面1中提供第一組隊(duì)列對設(shè)施地址。在與特許地址空間相關(guān)聯(lián)的頁面2中提供了第二組隊(duì)列對設(shè)施地址。因?yàn)槭褂妙惐环謱訛槭沟镁哂刑卦S地址空間的應(yīng)用和操作系統(tǒng)具有比用戶地址空間應(yīng)用更高的訪問權(quán),因此第二組隊(duì)列對設(shè)施包括在頁面1中識別的隊(duì)列對設(shè)施、外加僅僅可以由具有特許地址空間使用類或更高的應(yīng)用和操作系統(tǒng)訪問的其他隊(duì)列對設(shè)施。
同一方案繼續(xù)用于在與實(shí)際地址空間使用類相關(guān)聯(lián)的頁面3中提供的第三組隊(duì)列對設(shè)施地址。這個(gè)第三組隊(duì)列對設(shè)施地址僅僅包括存儲(chǔ)需要被轉(zhuǎn)換為系統(tǒng)存儲(chǔ)器地址的實(shí)際地址的那些隊(duì)列對設(shè)施。因此,這個(gè)第三組隊(duì)列對可以包括在第一或第二組中的隊(duì)列對設(shè)施以及/或者在第一或第二組中不包括的其他隊(duì)列對設(shè)施。
在與超特許地址空間相關(guān)聯(lián)的頁面4中提供了第四組隊(duì)列對設(shè)施地址。這個(gè)第四組隊(duì)列對設(shè)施將包括用于在HCA上所有隊(duì)列對設(shè)施的隊(duì)列對設(shè)施地址,因?yàn)槌卦S地址空間是可用的最特許的地址空間。通常,諸如管理器的可信代碼僅僅是被分配了超特許地址空間使用類的應(yīng)用。
圖15圖解了當(dāng)確定對HCA設(shè)施訪問的請求者是否應(yīng)當(dāng)被提供對于HCA設(shè)施的訪問時(shí)本發(fā)明的整體操作。如圖15所示,應(yīng)用1510向主系統(tǒng)處理器1520發(fā)送訪問請求。訪問請求包括期望訪問的虛擬地址,諸如對于虛擬地址的寫入或讀取操作。
這個(gè)訪問請求被主系統(tǒng)處理器的虛擬地址翻譯頁面表1530處理。虛擬地址翻譯頁面表1530執(zhí)行在頁面表中的查找以確定與虛擬地址相關(guān)聯(lián)的實(shí)際地址。然后進(jìn)行確定是否應(yīng)用1510可以訪問實(shí)際地址的系統(tǒng)存儲(chǔ)器地址空間頁面。例如,這個(gè)確定的作出可以通過確定應(yīng)用1510的邏輯分區(qū)標(biāo)識符是否對應(yīng)于與實(shí)際地址的系統(tǒng)存儲(chǔ)器地址空間頁面相關(guān)聯(lián)的邏輯分區(qū)標(biāo)識符?;蛘?,可以使用在本領(lǐng)域內(nèi)公知的標(biāo)準(zhǔn)頁面訪問控制機(jī)制來確定應(yīng)用1610是否可以訪問實(shí)際地址的系統(tǒng)存儲(chǔ)器地址空間頁面。
如果應(yīng)用1510可以訪問實(shí)際地址的系統(tǒng)存儲(chǔ)器空間頁面,則實(shí)際地址被發(fā)送到HCA 1540。HCA根據(jù)所請求的訪問類型來查閱與每個(gè)隊(duì)列對、完成隊(duì)列、事件隊(duì)列或存儲(chǔ)器區(qū)域相關(guān)聯(lián)的頁面,其中所述所請求的訪問類型諸如寫入隊(duì)列對用戶設(shè)施、寫入隊(duì)列對特許設(shè)施、寫入超特許完成隊(duì)列設(shè)施等。例如,HCA可以比較BAR與所接收的實(shí)際地址。因?yàn)槊總€(gè)不同類型的資源(QP、CQ、EQ等)具有其本身的一組四個(gè)BAR,通過確定哪個(gè)BAR匹配所接收的地址,HCA確定哪個(gè)資源正在被訪問。
HCA 1540確定是否在用于QP、CQ、EQ或MR的頁面表之一中出現(xiàn)實(shí)際地址。如果如此,訪問HCA設(shè)施所需要的相關(guān)聯(lián)的使用類被識別和與應(yīng)用1510的使用類相比較。即,諸如隊(duì)列對的每個(gè)資源類型具有其本身的四種BAR,一個(gè)BAR對應(yīng)于用戶、特許、實(shí)際和超特許訪問類的每個(gè)。實(shí)際地址與BAR相比較以確定請求的訪問類別是什么。如果可以從訪問類內(nèi)尋址由訪問正在尋址的、諸如寄存器的特定設(shè)施,則允許訪問。
如果應(yīng)用1510的使用類足夠訪問HCA設(shè)施,即與所需要的使用類或更高相同,則許可對HCA設(shè)施的訪問。否則,不許可對HCA設(shè)施的訪問。
因此,利用本發(fā)明,提供了兩級保護(hù)機(jī)制來保護(hù)HCA設(shè)施免于未經(jīng)授權(quán)的訪問。利用本發(fā)明,通過虛擬地址翻譯和下述機(jī)制來提供第一級訪問所述機(jī)制用于確定訪問的請求者是否可以訪問與虛擬地址映射的實(shí)際地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器地址空間頁面。通過分配使用類和確定用于訪問HCA設(shè)施所需要的使用類來提供第二級訪問。
現(xiàn)在參見圖16,其中描述了按照本發(fā)明的優(yōu)選實(shí)施例的、用于確定對HCA設(shè)施的訪問是否應(yīng)當(dāng)被許可的處理的流程圖。圖16所示的處理的第一部分可以在具有虛擬地址翻譯的主系統(tǒng)中被實(shí)現(xiàn),圖16所示的處理的第二部分可以在連接到主系統(tǒng)的主信道適配器中被實(shí)現(xiàn)。
通過執(zhí)行用于虛擬地址到實(shí)際地址的翻譯的頁面表查找(步驟1610)來開始所述處理。根據(jù)虛擬地址所映射的實(shí)際地址,確定是否允許頁面訪問(步驟1620)。如果允許對頁面的訪問,則向HCA發(fā)送實(shí)際地址(步驟1630)。可以例如在主系統(tǒng)中執(zhí)行步驟1610-1630。
HCA根據(jù)頁面地址來識別請求者的類(步驟1640)。接著,確定是否所訪問的類足夠用于被尋址的設(shè)施(步驟1650)。如果所訪問的類足夠用于被尋址的設(shè)施,則完成訪問(步驟1660),并且終止其后處理。
在此返回步驟1650,如果所訪問的類不夠用于被尋址的設(shè)施,則拒絕訪問(步驟1670),并且終止其后處理。在此參見步驟1620,如果不允許對頁面的訪問,則處理如上所述地進(jìn)行到步驟1670。
通過使用本發(fā)明,在邏輯分區(qū)的系統(tǒng)中防止了對于HCA設(shè)施的未經(jīng)授權(quán)的訪問。利用本發(fā)明,因?yàn)閬碜砸粋€(gè)邏輯分區(qū)的應(yīng)用和操作系統(tǒng)不可訪問與不同的邏輯分區(qū)相關(guān)聯(lián)的HCA設(shè)施,因此這些應(yīng)用和操作系統(tǒng)被防止折中與這些HCA設(shè)施相關(guān)聯(lián)的邏輯分區(qū)的應(yīng)用和操作系統(tǒng)的操作。而且,在應(yīng)用或操作系統(tǒng)的操作中的失敗或故障與所述應(yīng)用或操作系統(tǒng)的邏輯分區(qū)相關(guān)聯(lián)的HCA設(shè)施相隔離,因此其他的邏輯分區(qū)不受影響。
重要的是,雖然已經(jīng)在全功能的數(shù)據(jù)處理系統(tǒng)的范圍內(nèi)說明了本發(fā)明,但是本領(lǐng)域中的那些技術(shù)人員將明白,本發(fā)明的處理能夠以指令的計(jì)算機(jī)可讀介質(zhì)形式和多種形式來分布,并且本發(fā)明可以等同地適用而不論實(shí)際用于執(zhí)行分布的信號承載媒體的特定類型如何。計(jì)算機(jī)可讀媒體的示例包括諸如軟盤、硬盤驅(qū)動(dòng)器、RAM、CD-ROM、DVD-ROM的可記錄類型的媒體和諸如輸入數(shù)字和模擬通信鏈路、使用傳輸形式的有線或無線通信鏈路的傳輸類型的媒體,所述傳輸形式諸如射頻和光波傳輸。計(jì)算機(jī)可讀媒體可以采用編碼格式的形式,所述編碼格式被解碼以實(shí)際用于特定的數(shù)據(jù)處理系統(tǒng)中。
本發(fā)明的說明已經(jīng)被提供來用于圖解和說明,不意欲是窮盡的或限于所公開形式的本發(fā)明。許多修改和改變對于本領(lǐng)域內(nèi)的那些普通技術(shù)人員來說是顯然的。所述的實(shí)施例被選擇和說明以便最好地解釋本發(fā)明的原理、實(shí)際的應(yīng)用,并且使得本領(lǐng)域內(nèi)的其他普通技術(shù)人員能夠明白本發(fā)明的、適用于所考慮的特定用途的、具有各種修改的各種實(shí)施例。
權(quán)利要求
1.一種控制對主信道適配器設(shè)施的訪問的方法,包括從請求者接收一個(gè)用于訪問主信道適配器設(shè)施的請求,所述請求包括地址;識別與地址相關(guān)聯(lián)的存儲(chǔ)器的頁面;根據(jù)存儲(chǔ)器的頁面的識別來確定請求者的使用類;以及根據(jù)請求者的使用類來控制對主信道適配器設(shè)施的訪問。
2.按照權(quán)利要求1的方法,其中使用類是用戶地址空間、特許地址空間、實(shí)際地址空間和超特許地址空間之一。
3.按照權(quán)利要求1的方法,其中控制對主信道適配器的訪問包括從請求確定主信道適配器設(shè)施的標(biāo)識符;確定主信道適配器設(shè)施的標(biāo)識符是否被存儲(chǔ)在存儲(chǔ)器的頁面中;以及只有主信道適配器設(shè)施的標(biāo)識符被存儲(chǔ)在存儲(chǔ)器的頁面中時(shí)才許可對主信道適配器設(shè)施的訪問。
4.按照權(quán)利要求1的方法,其中使用類是來自使用類的分層組的一個(gè)使用類,用于識別對主信道適配器設(shè)施的訪問的提高的級。
5.按照權(quán)利要求4的方法,其中存儲(chǔ)器頁面是多個(gè)頁面之一,所述多個(gè)頁面的每個(gè)頁面與來自所述組的使用類的一個(gè)使用類相關(guān)聯(lián)。
6.按照權(quán)利要求1的方法,還包括在主系統(tǒng)處理器中接收所述請求,所述請求還包括虛擬地址;執(zhí)行虛擬地址到實(shí)際地址的翻譯,以識別與虛擬地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器的頁面;確定請求者是否可以訪問系統(tǒng)存儲(chǔ)器的頁面;以及只有當(dāng)請求者可以訪問系統(tǒng)存儲(chǔ)器的頁面時(shí)才向主信道適配器發(fā)送所述請求。
7.按照權(quán)利要求1的方法,其中使用類是一個(gè)使用地址空間使用類,其中用戶應(yīng)用、操作系統(tǒng)和管理器中的任何一個(gè)可以訪問與用戶地址空間使用類相關(guān)聯(lián)的主信道適配器設(shè)施。
8.按照權(quán)利要求1的方法,其中所述使用類是特許地址空間使用類,其中操作系統(tǒng)和管理器的任何一個(gè)可以訪問與特許地址空間相關(guān)聯(lián)的主信道適配器設(shè)施。
9.按照權(quán)利要求1的方法,其中所述使用類是超特許地址空間使用類,其中僅僅管理器可以訪問與超特許地址空間使用類相關(guān)聯(lián)的主信道適配器設(shè)施。
10.按照權(quán)利要求1的方法,其中所述地址是在主信道適配器中的隊(duì)列對的地址,并且其中識別與地址相關(guān)聯(lián)的存儲(chǔ)器頁面包括識別與隊(duì)列對相關(guān)聯(lián)的存儲(chǔ)器的多個(gè)頁面。
11.按照權(quán)利要求1的方法,其中系統(tǒng)存儲(chǔ)器的頁面是系統(tǒng)存儲(chǔ)器的多個(gè)頁面之一,并且其中系統(tǒng)存儲(chǔ)器的所述多個(gè)頁面包括用于在主信道適配器上分配的每個(gè)隊(duì)列對設(shè)施、每個(gè)完成隊(duì)列設(shè)施、每個(gè)事件隊(duì)列設(shè)施和每個(gè)存儲(chǔ)器區(qū)域設(shè)施的、系統(tǒng)存儲(chǔ)器的一組頁面。
12.按照權(quán)利要求1的方法,其中根據(jù)基本地址寄存器和用于下列之一的偏移來識別所述系統(tǒng)存儲(chǔ)器的頁面用于隊(duì)列對設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于完成隊(duì)列設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于事件隊(duì)列設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于存儲(chǔ)器區(qū)域設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面。
13.一種在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,用于控制對主信道適配器設(shè)施的訪問,包括第一指令,用于從請求者接收一個(gè)用于訪問主信道適配器設(shè)施的請求,所述請求包括地址;第二指令,用于識別與地址相關(guān)聯(lián)的存儲(chǔ)器的頁面;第三指令,用于根據(jù)存儲(chǔ)器的頁面的識別來確定請求者的使用類;以及第四指令,用于根據(jù)請求者的使用類來控制對主信道適配器設(shè)施的訪問。
14.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中使用類是用戶地址空間、特許地址空間、實(shí)際地址空間和超特許地址空間之一。
15.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中用于控制對主信道適配器的訪問的第四指令包括從請求確定主信道適配器設(shè)施的標(biāo)識符的指令;確定主信道適配器設(shè)施的標(biāo)識符是否被存儲(chǔ)在存儲(chǔ)器的頁面中的指令;以及只有主信道適配器設(shè)施的標(biāo)識符被存儲(chǔ)在存儲(chǔ)器的頁面中時(shí)才許可對主信道適配器設(shè)施的訪問的指令。
16.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中使用類是來自使用類的分層組的一個(gè)使用類,用于識別對主信道適配器設(shè)施的訪問的提高的級。
17.按照權(quán)利要求16的計(jì)算機(jī)程序產(chǎn)品,其中存儲(chǔ)器頁面是多個(gè)頁面之一,所述多個(gè)頁面的每個(gè)頁面與來自所述組的使用類的一個(gè)使用類相關(guān)聯(lián)。
18.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,還包括第五指令,用于在主系統(tǒng)處理器中接收所述請求,所述請求還包括虛擬地址;第六指令,用于執(zhí)行虛擬地址到實(shí)際地址的翻譯,以識別與虛擬地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器的頁面;第七指令,用于確定請求者是否可以訪問系統(tǒng)存儲(chǔ)器的頁面;以及第八指令,用于只有當(dāng)請求者可以訪問系統(tǒng)存儲(chǔ)器的頁面時(shí)才向主信道適配器發(fā)送所述請求。
19.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中使用類是一個(gè)使用地址空間使用類,其中用戶應(yīng)用、操作系統(tǒng)和管理器中的任何一個(gè)可以訪問與用戶地址空間使用類相關(guān)聯(lián)的主信道適配器設(shè)施。
20.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中所述使用類是特許地址空間使用類,其中操作系統(tǒng)和管理器的任何一個(gè)可以訪問與特許地址空間相關(guān)聯(lián)的主信道適配器設(shè)施。
21.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中所述使用類是超特許地址空間使用類,其中僅僅管理器可以訪問與超特許地址空間使用類相關(guān)聯(lián)的主信道適配器設(shè)施。
22.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中所述地址是在主信道適配器中的隊(duì)列對的地址,并且其中識別與地址相關(guān)聯(lián)的存儲(chǔ)器頁面包括識別與隊(duì)列對相關(guān)聯(lián)的存儲(chǔ)器的多個(gè)頁面。
23.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中系統(tǒng)存儲(chǔ)器的頁面是系統(tǒng)存儲(chǔ)器的多個(gè)頁面之一,并且其中系統(tǒng)存儲(chǔ)器的所述多個(gè)頁面包括用于在主信道適配器上分配的每個(gè)隊(duì)列對設(shè)施、每個(gè)完成隊(duì)列設(shè)施、每個(gè)事件隊(duì)列設(shè)施和每個(gè)存儲(chǔ)器區(qū)域設(shè)施的、系統(tǒng)存儲(chǔ)器的一組頁面。
24.按照權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中根據(jù)基本地址寄存器和用于下列之一的偏移來識別所述系統(tǒng)存儲(chǔ)器的頁面用于隊(duì)列對設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于完成隊(duì)列設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于事件隊(duì)列設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于存儲(chǔ)器區(qū)域設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面。
25.一種控制對主信道適配器設(shè)施的訪問的裝置,包括用于從請求者接收一個(gè)用于訪問主信道適配器設(shè)施的請求的部件,所述請求包括地址;用于識別與地址相關(guān)聯(lián)的存儲(chǔ)器的頁面的部件;用于根據(jù)存儲(chǔ)器的頁面的識別來確定請求者的使用類的部件;以及用于根據(jù)請求者的使用類來控制對主信道適配器設(shè)施的訪問的部件。
26.按照權(quán)利要求25的裝置,其中使用類是用戶地址空間、特許地址空間、實(shí)際地址空間和超特許地址空間之一。
27.按照權(quán)利要求25的裝置,其中用于控制對主信道適配器的訪問的部件包括用于從請求確定主信道適配器設(shè)施的標(biāo)識符的部件;用于確定主信道適配器設(shè)施的標(biāo)識符是否被存儲(chǔ)在存儲(chǔ)器的頁面中的部件;以及用于只有主信道適配器設(shè)施的標(biāo)識符被存儲(chǔ)在存儲(chǔ)器的頁面中時(shí)才許可對主信道適配器設(shè)施的訪問的部件。
28.按照權(quán)利要求25的裝置,其中使用類是來自使用類的分層組的一個(gè)使用類,用于識別對主信道適配器設(shè)施的訪問的提高的級。
29.按照權(quán)利要求28的裝置,其中存儲(chǔ)器頁面是多個(gè)頁面之一,所述多個(gè)頁面的每個(gè)頁面與來自所述組的使用類的一個(gè)使用類相關(guān)聯(lián)。
30.按照權(quán)利要求25的裝置,還包括用于在主系統(tǒng)處理器中接收所述請求的部件,所述請求還包括虛擬地址;用于執(zhí)行虛擬地址到實(shí)際地址的翻譯、以識別與虛擬地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器的頁面的部件;用于確定請求者是否可以訪問系統(tǒng)存儲(chǔ)器的頁面的部件;用于只有當(dāng)請求者可以訪問系統(tǒng)存儲(chǔ)器的頁面時(shí)才向主信道適配器發(fā)送所述請求的部件。
31.按照權(quán)利要求25的裝置,其中使用類是一個(gè)使用地址空間使用類,其中用戶應(yīng)用、操作系統(tǒng)和管理器中的任何一個(gè)可以訪問與用戶地址空間使用類相關(guān)聯(lián)的主信道適配器設(shè)施。
32.按照權(quán)利要求25的裝置,其中所述使用類是特許地址空間使用類,其中操作系統(tǒng)和管理器的任何一個(gè)可以訪問與特許地址空間相關(guān)聯(lián)的主信道適配器設(shè)施。
33.按照權(quán)利要求25的裝置,其中所述使用類是超特許地址空間使用類,其中僅僅管理器可以訪問與超特許地址空間使用類相關(guān)聯(lián)的主信道適配器設(shè)施。
34.按照權(quán)利要求25的裝置,其中所述地址是在主信道適配器中的隊(duì)列對的地址,并且其中識別與地址相關(guān)聯(lián)的存儲(chǔ)器頁面包括識別與隊(duì)列對相關(guān)聯(lián)的存儲(chǔ)器的多個(gè)頁面。
35.按照權(quán)利要求25的裝置,其中系統(tǒng)存儲(chǔ)器的頁面是系統(tǒng)存儲(chǔ)器的多個(gè)頁面之一,并且其中系統(tǒng)存儲(chǔ)器的所述多個(gè)頁面包括用于在主信道適配器上分配的每個(gè)隊(duì)列對設(shè)施、每個(gè)完成隊(duì)列設(shè)施、每個(gè)事件隊(duì)列設(shè)施和每個(gè)存儲(chǔ)器區(qū)域設(shè)施的、系統(tǒng)存儲(chǔ)器的一組頁面。
36.按照權(quán)利要求25的裝置,其中根據(jù)基本地址寄存器和用于下列之一的偏移來識別所述系統(tǒng)存儲(chǔ)器的頁面用于隊(duì)列對設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于完成隊(duì)列設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于事件隊(duì)列設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面、用于存儲(chǔ)器區(qū)域設(shè)施的系統(tǒng)存儲(chǔ)器的一組頁面。
全文摘要
本發(fā)明提供了用于根據(jù)請求者的使用類來控制對設(shè)施的訪問的裝置、系統(tǒng)和方法。使用本發(fā)明的裝置、系統(tǒng)和方法,提供一種兩級保護(hù)機(jī)制來保護(hù)主信道適配器(HCA)設(shè)施避免未經(jīng)授權(quán)的訪問。利用本發(fā)明,第一級訪問是通過虛擬地址翻譯和這樣一種機(jī)制提供,所述機(jī)制用于確定訪問的請求者是否可以訪問與虛擬地址映射的實(shí)際地址相關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器地址空間頁面。第二級訪問是通過分配使用類和確定用于訪問HCA設(shè)施的所需的使用類來提供。
文檔編號H04L12/56GK1536842SQ20041003254
公開日2004年10月13日 申請日期2004年4月8日 優(yōu)先權(quán)日2003年4月10日
發(fā)明者理查德·L·阿恩特, 布魯斯·L·比克馬, 戴維·F·克拉多克, 羅納德·E·富斯, 托馬斯·A·格雷格, 布魯斯·M·沃克, A 格雷格, E 富斯, L 比克馬, M 沃克, F 克拉多克, 理查德 L 阿恩特 申請人:國際商業(yè)機(jī)器公司