用于在服務(wù)器中放置輸入/輸出適配器卡的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及1/0(輸入/輸出)適配器卡的領(lǐng)域,并且更具體地涉及I/O適配器卡的放置。
【背景技術(shù)】
[0002]能夠通過(guò)將某些重復(fù)性任務(wù)“卸載”到CPU(中央處理單元)以外的處理硬件而使得計(jì)算機(jī)系統(tǒng)(諸如刀片服務(wù)器)的運(yùn)行地更為有效和/或高效。某些專用于執(zhí)行這些相應(yīng)任務(wù)的硬件被稱作加速器卡和/或適配器卡(這里統(tǒng)稱為卡)??軌蚴强梢瞥乜蓮妮斎?輸出(I/o)插槽插入。通常,這些卡被用于加密、壓縮或定制算法并且被置于PCI(外部組件互連)或PCIe (外部組件互連express)插槽。
[0003]PCIe是高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn)。PCIe在消費(fèi)者、服務(wù)器和工業(yè)應(yīng)用中進(jìn)行操作,如(i)主板層面的互連(以鏈接安裝在主板上的外設(shè));(ii)被動(dòng)背板互連;和(iii)作為插件板的擴(kuò)展卡接口。電信號(hào)和總線協(xié)議中的差異要求使用不同的機(jī)械形式因素和擴(kuò)展的連接器。PCIe需要新的主板和新的適配板,因此PCI (外部組件互連)插槽和PCIe插槽并不是可互換的。在軟件層面,PCIe保留了與PCI的后向兼容性。雖然PCIe的新功能并不能夠被訪問(wèn),但遺留的PCI系統(tǒng)軟件能夠檢測(cè)并配置較新的PCIe設(shè)備而無(wú)需對(duì)PCIe標(biāo)準(zhǔn)的明確支持。
[0004]在典型的多插口(mult1-socket)處理器服務(wù)器配置中,兩個(gè)插口中的處理器都提供了能夠放置適配器卡或加速器卡的PCIe插槽。然而,基于系統(tǒng)配置,插口中的每個(gè)插口可能具有與之相連接的不同類型的存儲(chǔ)器設(shè)備。這樣的多處理器和多PCIe插槽的配置在服務(wù)器計(jì)算機(jī)是接單生產(chǎn)時(shí)、并且在針對(duì)不同類型的存儲(chǔ)器設(shè)備的要求以施加于服務(wù)器上的工作負(fù)載的讀/寫(xiě)要求為基礎(chǔ)的情況下是常見(jiàn)的。能夠根據(jù)以下來(lái)決定用于工作負(fù)載的歸屬節(jié)點(diǎn):(i)基于工作負(fù)載的存儲(chǔ)器讀/寫(xiě)啟發(fā)方法;和/或(Π)通過(guò)映射與每個(gè)處理器相關(guān)聯(lián)的存儲(chǔ)器配置。
【發(fā)明內(nèi)容】
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于隨包括輸入/輸出(I/O)適配器卡(參見(jiàn)以下定義)的計(jì)算機(jī)系統(tǒng)使用的方法、計(jì)算機(jī)程序產(chǎn)品和系統(tǒng)。該方法包括以下步驟(并非必然為以下順序):(i)針對(duì)計(jì)算機(jī)系統(tǒng)中的多個(gè)輸入/輸出(I/o)適配器卡中的第一 I/O適配器卡與該計(jì)算機(jī)系統(tǒng)中的多個(gè)虛擬機(jī)中的虛擬機(jī)之間的每個(gè)數(shù)據(jù)通信,確定在進(jìn)行該數(shù)據(jù)通信期間所經(jīng)過(guò)的節(jié)點(diǎn)間接口 NI的數(shù)目;并且(ii)針對(duì)第一 I/O適配器卡和虛擬機(jī)之間的每個(gè)數(shù)據(jù)通信,確定在進(jìn)行該通信期間所經(jīng)過(guò)的節(jié)點(diǎn)內(nèi)接口 N2的數(shù)目。
【附圖說(shuō)明】
[0006]圖1是根據(jù)本發(fā)明的服務(wù)器系統(tǒng)的第一實(shí)施例的框圖;
[0007]圖2是至少部分地由第一實(shí)施例的服務(wù)器系統(tǒng)所執(zhí)行的根據(jù)本發(fā)明的方法的流程圖;以及
[0008]圖3是根據(jù)本發(fā)明的服務(wù)器系統(tǒng)的第二實(shí)施例的框圖。
【具體實(shí)施方式】
[0009]本公開(kāi)內(nèi)容的一些實(shí)施例認(rèn)識(shí)到,可能難以以最優(yōu)的方式將卡置于I/O插槽中。在這點(diǎn)上更具體而言,一些實(shí)施例認(rèn)識(shí)到以下內(nèi)容:(i)針對(duì)每個(gè)工作負(fù)載的服務(wù)器的“歸屬節(jié)點(diǎn)”是在運(yùn)行時(shí)決定的;(ii)加速器卡放置位置在組裝服務(wù)器時(shí)進(jìn)行選擇;(iii)加速器卡放置選項(xiàng)在服務(wù)器具有多個(gè)處理器插口時(shí),在服務(wù)器具有多個(gè)節(jié)點(diǎn)時(shí),和/或在每個(gè)處理器插口與多個(gè)PCIe插槽相關(guān)聯(lián)時(shí)有所增加;(iv)以上四項(xiàng)可能導(dǎo)致服務(wù)器計(jì)算機(jī)中次優(yōu)的加速器卡放置;(V)在以SMP (對(duì)稱多處理)配置進(jìn)行操作的刀片服務(wù)器內(nèi)還是存在可能的次優(yōu)加速器卡放置問(wèn)題(例如,當(dāng)用戶并未將Ι/P適配器卡或加速器卡放置在對(duì)應(yīng)于適當(dāng)ITE(信息技術(shù)元件)的位置并且這些卡的工作負(fù)載由監(jiān)管程序進(jìn)行調(diào)度時(shí));(vi)如果I/O適配器卡或加速器卡并未出現(xiàn)在工作負(fù)載最經(jīng)常在其中執(zhí)行的相同ITE/節(jié)點(diǎn)中,則在工作負(fù)載必須通過(guò)機(jī)架互連而被移動(dòng)至其它的ITE來(lái)訪問(wèn)卡時(shí)存在固有延遲;(vii)最優(yōu)的卡放置考慮到服務(wù)器配置、工作負(fù)載的加速器要求和服務(wù)器上所執(zhí)行的每個(gè)工作負(fù)載的歸屬節(jié)點(diǎn);(viii)在最高端的系統(tǒng)中,從OS(操作系統(tǒng))一側(cè)允許熱插拔操作;(ix)在最高端的系統(tǒng)中,I/O并不固定于平面,這意味著要改變卡在I/O插槽中的位置,并不需要系統(tǒng)IPL (初始程序加載)。
[0010]所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0011]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0012]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0013]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0014]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0015]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0016]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的