国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究

2012-11-21 11:46
關(guān)鍵詞:間通信共享內(nèi)存寄存器

張 峰 黃 景

(安徽水利水電職業(yè)技術(shù)學(xué)院電子系,安徽 合肥 231603) (中國(guó)科學(xué)技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230027)

基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究

張 峰 黃 景

(安徽水利水電職業(yè)技術(shù)學(xué)院電子系,安徽 合肥 231603) (中國(guó)科學(xué)技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230027)

隨著虛擬化技術(shù)越來越多地應(yīng)用在各種場(chǎng)合以及多核虛擬機(jī)系統(tǒng)上運(yùn)行更多網(wǎng)絡(luò)密集型和分布式應(yīng)用程序,使得多核虛擬機(jī)系統(tǒng)對(duì)虛擬機(jī)間通信性能有著更高要求。在研究虛擬機(jī)間通信過程和多核核間通信過程的基礎(chǔ)上,對(duì)基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間的通信框架結(jié)構(gòu)進(jìn)行設(shè)計(jì),并實(shí)現(xiàn)了類MPI接口。試驗(yàn)結(jié)果表明,上述研究能夠增加通信帶寬并改善通信性能。

虛擬化;虛擬機(jī)間通信;核間寄存器;多核處理器

近年來,虛擬化技術(shù)愈來愈多地應(yīng)用在服務(wù)器整合領(lǐng)域和網(wǎng)絡(luò)應(yīng)用領(lǐng)域,上述領(lǐng)域的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)之間往往是相互協(xié)作的關(guān)系,彼此之間需要頻繁通信,這對(duì)虛擬機(jī)間通信性能提出了很高的要求。為此,筆者對(duì)基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信進(jìn)行了研究。

1 核間寄存器概述

多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信要利用多核處理器中配置的核間寄存器,借以實(shí)現(xiàn)同駐一個(gè)物理平臺(tái)上的虛擬機(jī)系統(tǒng)中2個(gè)虛擬機(jī)間及運(yùn)行其上的進(jìn)程間的通信[1]。多核處理器在設(shè)計(jì)之初就考慮到多核處理器上多個(gè)處理器核之間的通信方式,目前絕大多數(shù)多核處理器產(chǎn)品都具備核間寄存器和通信功能。如國(guó)產(chǎn)龍芯3A是一款MIPS體系結(jié)構(gòu)的多核處理器,在龍芯3A多核處理器中每個(gè)處理器核都配置了8個(gè)核間中斷寄存器以支持多核BIOS啟動(dòng)和操作系統(tǒng)運(yùn)行時(shí)的處理器核之間的中斷和通信,表1所示是對(duì)龍芯3A多核處理器核間寄存器功能描述。

表1 龍芯3A多核處理器核間寄存器功能描述

2 多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信的框架結(jié)構(gòu)設(shè)計(jì)

多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信的框架結(jié)構(gòu)如圖1所示。

圖1 多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信的框架結(jié)構(gòu)

2.1虛擬機(jī)間通信模塊

虛擬機(jī)間通信模塊包括核間寄存器中斷模塊和提供給應(yīng)用程序的通信接口模塊,其主要功能是完成消息判斷并將消息通過核間寄存器發(fā)送或通過共享內(nèi)存?zhèn)鬏敽蛷暮碎g通信模塊或共享內(nèi)存模塊接收數(shù)據(jù)。

2.2核間通信模塊

表2 核間通信消息格式定義

核間通信模塊的主要功能是完成消息格式定義和通過核間寄存器操作接口完成實(shí)際的核間通信寄存器的讀寫操作,并觸發(fā)相應(yīng)的核間中斷,最后通知虛擬機(jī)客戶操作系統(tǒng)處理核間中斷[2]。如多核處理器中核間寄存器是64bit位,可將最后4個(gè)bit位設(shè)置為消息標(biāo)記位,每次從核間寄存器中取出數(shù)據(jù)時(shí)先取得這4個(gè)bit位,其值及對(duì)應(yīng)的消息格式如表2所示。當(dāng)有進(jìn)程向核間通信寄存器寫入數(shù)據(jù)后會(huì)觸發(fā)核間中斷,核間中斷處理程序會(huì)根據(jù)消息類型(即最后4bit位值)進(jìn)行消息處理,程序中定義為:

圖2 共享內(nèi)存模塊工作流程圖

2.3共享內(nèi)存模塊

共享內(nèi)存模塊是相對(duì)獨(dú)立的一個(gè)模塊。由hypervisor程序分配合適大小的獨(dú)立共享內(nèi)存,在啟動(dòng)和加載虛擬機(jī)時(shí)將共享內(nèi)存起始地址和大小信息傳遞給加載的虛擬機(jī)并直接將地址空間映射到虛擬機(jī)可訪問的地址空間中,虛擬機(jī)擁有對(duì)共享內(nèi)存的讀寫權(quán)利,而共享內(nèi)存的管理則由共享內(nèi)存模塊完成[3]。共享內(nèi)存模塊工作大體流程圖如圖2所示。

3 類MPI接口的實(shí)現(xiàn)

為改善多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信的性能,對(duì)類MPI接口進(jìn)行設(shè)計(jì),具體內(nèi)容如下。

(1)void SNOO_MPI_Init(char * name)。初始化類MPI的運(yùn)行環(huán)境,以name為關(guān)鍵字申請(qǐng)共享內(nèi)存并將其映射到自己可訪問的地址控制,記錄程序運(yùn)行中所起的進(jìn)程數(shù)以及其運(yùn)行所在的處理器核。

(2)void SNOO_MPI_Finalize(void)。使程序安全退出類MPI環(huán)境,釋放初始化函數(shù)申請(qǐng)的共享內(nèi)存,清除相關(guān)數(shù)據(jù)結(jié)構(gòu)中的內(nèi)容。

(3)void SNOO_MPI_Comm_size(int *size)。僅獲取程序運(yùn)行所起的進(jìn)程數(shù)。

(4)void SNOO_MPI_Comm_rank(int *rank)。僅獲取進(jìn)程運(yùn)行所在處理器核。

5)void SNOO_MPI_Send(void *message,int count,int dest,int flag,MPI_Datatype datatype,MPI_Comm comm)。該函數(shù)將起始地址為message的count個(gè)數(shù)據(jù)類型為datatype的數(shù)據(jù)發(fā)送到類MPI進(jìn)程號(hào)為dest的MPI進(jìn)程,其中flag表示消息標(biāo)記,comm表示通信域。在該類MPI內(nèi)部實(shí)現(xiàn)中調(diào)用了共享內(nèi)存模塊和核間通信模塊的接口,發(fā)送消息時(shí)判斷消息大小(count*sizeof(datatype))是否超過核間寄存器容量大小。

6)void SNOO_MPI_Recv(void *message,int count,int source,MPI_Datatype datatype,int flag,MPI_Comm comm)。該函數(shù)的作用是從MPI進(jìn)程號(hào)為source的進(jìn)程接收count個(gè)數(shù)據(jù)類型為datatype的數(shù)據(jù)放到起始地址為message的緩沖區(qū),flag為消息標(biāo)志,comm為通信域。在接口內(nèi)部也涉及到核間通信模塊和共享內(nèi)存模塊,當(dāng)發(fā)送方通過核間寄存器發(fā)送數(shù)據(jù)時(shí),核間寄存器處理程序會(huì)把數(shù)據(jù)直接放在接收方的緩沖區(qū)中;當(dāng)發(fā)送方通過共享內(nèi)存發(fā)送數(shù)據(jù)時(shí),該函數(shù)會(huì)從進(jìn)程運(yùn)行所在處理器核對(duì)應(yīng)的共享內(nèi)存中讀取數(shù)據(jù)放到緩沖區(qū)中。

4 試驗(yàn)分析

圖3 2種MPI接口帶寬比較

采用一款MIPS64體系結(jié)構(gòu)多核處理器作為試驗(yàn)平臺(tái),配置12個(gè)主頻為800MHz的CPU核,主頻為800MHz的DDR2內(nèi)存4G,每個(gè)核配置了64bit的核間通信寄存器。在消息緩沖區(qū)大小不同的情況下,測(cè)量類MPI接口和MPICH2接口在試驗(yàn)平臺(tái)上傳輸1G數(shù)據(jù)時(shí)的帶寬大小,試驗(yàn)結(jié)果如圖3所示。從圖3可以看出,隨著消息緩沖區(qū)大小的增加,類MPI接口的帶寬比MPICH2接口的帶寬增大得更加顯著,說明類MPI接口可以有效改善通信帶寬。

5 結(jié) 語

由于多核虛擬機(jī)系統(tǒng)上運(yùn)行更多網(wǎng)絡(luò)密集型和分布式應(yīng)用程序,使得多核虛擬機(jī)系統(tǒng)對(duì)虛擬機(jī)間通信性能有著更高要求。針對(duì)上述情況,對(duì)基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信框架結(jié)構(gòu)進(jìn)行設(shè)計(jì),并實(shí)現(xiàn)了類MPI接口。試驗(yàn)表明,上述研究能夠增加通信帶寬并改善通信性能,能夠滿足多核虛擬機(jī)系統(tǒng)對(duì)虛擬機(jī)間通信性能的要求。

[1]張建.Xen虛擬機(jī)間通信優(yōu)化研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2008.

[2]孟江濤,盧顯良,董貴山.Xen的虛擬機(jī)網(wǎng)絡(luò)優(yōu)化研究[J].電子科技大學(xué)學(xué)報(bào),2010(1):106-109.

[3]朱團(tuán)結(jié),艾麗蓉.基于共享內(nèi)存的Xen虛擬機(jī)間通信的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(7):5-8,12.

10.3969/j.issn.1673-1409(N).2012.07.045

TP393

A

1673-1409(2012)07-N132-03

2012-04-25

張峰(1974-),男,2000年大學(xué)畢業(yè),講師,現(xiàn)主要從事計(jì)算機(jī)應(yīng)用方面的教學(xué)與研究工作。

[編輯] 李啟棟

猜你喜歡
間通信共享內(nèi)存寄存器
STM32和51單片機(jī)寄存器映射原理異同分析
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
通過QT實(shí)現(xiàn)進(jìn)程間的通信
綜合航電分區(qū)間通信元模型設(shè)計(jì)研究
一種適用于遠(yuǎn)距離星間鏈路通信的設(shè)計(jì)
基于Linux內(nèi)核的文件服務(wù)器模型的研究與構(gòu)建
基于PCI總線的多處理器協(xié)同機(jī)制研究
工信部:未來1到2年增設(shè)七個(gè)國(guó)家級(jí)骨干直聯(lián)點(diǎn)
一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)*
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用