国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      發(fā)送數(shù)據(jù)的方法和裝置與流程

      文檔序號:11707432閱讀:185來源:國知局
      本發(fā)明涉及通信領(lǐng)域,并且更具體地,涉及一種發(fā)送數(shù)據(jù)的方法和裝置。
      背景技術(shù)
      ::在通信系統(tǒng)中,通信設(shè)備之間可以進行數(shù)據(jù)傳輸。例如,主機可以通過服務(wù)器虛擬化生成大量的獨立的虛擬機(virtualmachine,vm),并將其數(shù)據(jù)通過專有的虛擬桌面協(xié)議發(fā)送給客戶端,以在客戶端的終端設(shè)備顯示所述虛擬機的桌面操作系統(tǒng)(即虛擬桌面),實現(xiàn)主機和需要顯示虛擬機的虛擬桌面的客戶端的終端設(shè)備之間的數(shù)據(jù)傳輸。在主機集成虛擬化、網(wǎng)絡(luò)功能虛擬化(network-functionvirtualization,nfv)等場景中,現(xiàn)有技術(shù)中主機可以將圖形處理器(graphicsprocessingunit,gpu)分配給虛擬機來實現(xiàn)主機和客戶端之間的數(shù)據(jù)傳輸。例如,在虛擬機上預(yù)先安裝截獲數(shù)據(jù)的后臺服務(wù)程序,通過虛擬機獲取傳輸所需的數(shù)據(jù),并在主機上增加外設(shè)擴展設(shè)備,將從虛擬機獲取的數(shù)據(jù)傳輸至主機,主機獲取數(shù)據(jù)后便可以向客戶端發(fā)送數(shù)據(jù),這樣便可以實現(xiàn)主機和客戶端之間的數(shù)據(jù)傳輸。為了實現(xiàn)上述方案,還需要為外設(shè)擴展設(shè)備增加驅(qū)動程序,將虛擬機獲取的數(shù)據(jù)通過該驅(qū)動程序的讀寫接口發(fā)送給主機??梢姡@種數(shù)據(jù)傳輸?shù)姆椒ㄐ枰谥鳈C上增加一個外設(shè)擴展設(shè)備,還需要在虛擬機上安裝外設(shè)擴展設(shè)備的驅(qū)動程序和后臺服務(wù)程序。在云網(wǎng)關(guān)等應(yīng)用場景中,虛擬機的操作系統(tǒng)大多不再是定制的桌面操作系統(tǒng),虛擬機的操作系統(tǒng)不唯一,操作系統(tǒng)的模式也不固定。這樣,不同的虛擬機所需的驅(qū)動程序和后臺服務(wù)程序也不盡相同,這種發(fā)送數(shù)據(jù)的方法需要對虛擬機內(nèi)部進行改動,實現(xiàn)起來非常復(fù)雜。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供一種發(fā)送數(shù)據(jù)的方法和裝置,可以避免在虛擬機中增加額外的程序,能夠簡化發(fā)送數(shù)據(jù)的方法。第一方面,提供了發(fā)送數(shù)據(jù)的方法,所述方法應(yīng)用于主機中,所述主機 的圖像處理器gpu集成在所述主機的中央處理器cpu中,所述gpu被分配給所述主機上運行的虛擬機,所述方法包括:所述主機獲取所述gpu的顯卡內(nèi)存在所述虛擬機的內(nèi)存中的第一物理地址,所述第一物理地址用于指示所述gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的位置;所述主機根據(jù)所述第一物理地址確定所述gpu的顯卡內(nèi)存在所述主機的cpu的內(nèi)存中的第二物理地址,所述第二物理地址用于指示所述gpu的顯卡內(nèi)存在所述主機的cpu的內(nèi)存中的位置;所述主機根據(jù)所述第二物理地址讀取所述顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù);所述主機向所述客戶端發(fā)送所述第一數(shù)據(jù)。本發(fā)明實施例在將gpu分配給虛擬機后,主機可以根據(jù)gpu的顯卡內(nèi)存在虛擬機內(nèi)存中的地址得到顯卡內(nèi)存在主機內(nèi)存中的地址,并根據(jù)在主機內(nèi)存中的地址讀取并向客戶端發(fā)送數(shù)據(jù),這樣可以避免在虛擬機內(nèi)部增加額外的程序,從而能夠簡化發(fā)送數(shù)據(jù)的方法。結(jié)合第一方面,在第一方面的一種實現(xiàn)方式中,所述主機獲取所述gpu的顯卡內(nèi)存在所述虛擬機的內(nèi)存中的第一物理地址包括:所述主機讀取所述主機的操作系統(tǒng)的文件,得到外設(shè)組件互連標(biāo)準(zhǔn)pci配置空間的寄存器的指示信息,其中,所述指示信息用于指示所述寄存器的地址;所述主機根據(jù)所述指示信息讀取所述寄存器,得到所述第一物理地址。本發(fā)明實施例中獲取顯卡內(nèi)存在虛擬機的內(nèi)存中的地址,并讀取和發(fā)送數(shù)據(jù)都可以在主機上執(zhí)行,這里的主機可以為網(wǎng)關(guān),也可以為網(wǎng)關(guān)的主機。這樣,在主機和客戶端發(fā)送數(shù)據(jù)時,可以無需在虛擬機內(nèi)部增加驅(qū)動程序和后臺服務(wù)程序,能夠減少增加程序帶來的復(fù)雜度,還可以避免在主機的集成計算機應(yīng)用程序(application,app)的能力有限時,無法實現(xiàn)主機和客戶端的數(shù)據(jù)傳輸。結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的另一種實現(xiàn)方式中,所述方法還包括:所述主機讀取所述cpu的內(nèi)存,得到所述第一物理地址和所述第二物理地址之間的映射關(guān)系;其中,所述主機根據(jù)所述第一物理地址確定第二物理地址包括:所述主機根據(jù)所述第一物理地址和所述映射關(guān)系確定所述第二物理地址。本發(fā)明實施例中主機可以通過多種不同的方法得到顯卡內(nèi)存在主機的cpu的內(nèi)存中位置。例如,主機可以根據(jù)顯卡內(nèi)存在虛擬機中的物理地址, 以及顯卡內(nèi)存在虛擬機與主機的物理地址的映射關(guān)系,得到顯卡內(nèi)存在主機的cpu的內(nèi)存中物理地址。本發(fā)明實施例中,gpu集成在主機的中央處理器cpu,gpu可以共享cpu的內(nèi)存。gpu分配給虛擬機,那么gpu的顯卡內(nèi)存可以用于存儲虛擬機的相關(guān)信息。這樣,主機可以通過讀取主機操作系統(tǒng)的文件,得到的信息可以為虛擬機的信息。例如,外設(shè)組件互連標(biāo)準(zhǔn)(peripheralcomponentinterconnection,pci)配置空間中有一系列的寄存器,主機可以通過讀取pci配置空間中的寄存器得到顯卡內(nèi)存在虛擬機內(nèi)存的物理地址。本發(fā)明實施例中主機讀取cpu的內(nèi)存可以通過主機和內(nèi)存之間的內(nèi)存總線進行數(shù)據(jù)的讀寫操作。cpu內(nèi)存中可以保存映射關(guān)系的對應(yīng)表,主機可以通過查詢表格得到與第一物理地址對應(yīng)的第二物理地址。結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的另一種實現(xiàn)方式中,所述方法還包括:所述主機將所述cpu的內(nèi)存的預(yù)留地址空間分配給所述虛擬機,作為所述虛擬機的內(nèi)存;所述主機根據(jù)所述虛擬機的內(nèi)存在所述cpu的內(nèi)存中的位置和所述第一物理地址修改所述映射關(guān)系;所述主機將所述映射關(guān)系保存在所述cpu的內(nèi)存中。本發(fā)明實施例中,在獲取顯卡內(nèi)存在虛擬機的物理地址后,要通過顯卡內(nèi)存在主機的物理地址和顯卡內(nèi)存在虛擬機的物理地址之間的映射關(guān)系,得到顯卡內(nèi)存在主機的物理地址,首先要在系統(tǒng)啟動時為虛擬機在cpu的內(nèi)存中預(yù)留出一塊地址空間,并根據(jù)該地址空間修改cpu內(nèi)核中顯卡內(nèi)存在虛擬機和主機二者的物理地址之間的映射關(guān)系。這樣,在后續(xù)系統(tǒng)運行時,主機可以根據(jù)映射關(guān)系和已獲取的顯卡內(nèi)存在虛擬機的物理地址,得到顯卡內(nèi)存在主機的物理地址,從而主機可以根據(jù)該地址讀取數(shù)據(jù)等。另外,當(dāng)系統(tǒng)出現(xiàn)問題時,也可以通過系統(tǒng)引導(dǎo)盤來引導(dǎo)系統(tǒng),找出故障并排除故障。這時,也可以在系統(tǒng)引導(dǎo)盤中引導(dǎo)主機為虛擬機預(yù)留cpu內(nèi)存,并修改映射關(guān)系。結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的另一種實現(xiàn)方式中,所述主機向所述客戶端發(fā)送所述第一數(shù)據(jù)包括:所述主機對所述顯卡內(nèi)存進行分片,得到多個內(nèi)存分片,每個內(nèi)存分片存儲所述第一數(shù)據(jù)的一個分片數(shù)據(jù);所述主機獲取一個內(nèi)存分片,讀取所述內(nèi)存分片中的分片數(shù)據(jù),計算所述分片數(shù)據(jù)的校驗和;所述主機比較所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分 片中讀出的前一分片數(shù)據(jù)的校驗和是否相同;當(dāng)所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的前一分片數(shù)據(jù)的校驗和不相同時,所述主機向所述客戶端發(fā)送更新消息,所述更新消息中攜帶所述分片數(shù)據(jù)或所述分片數(shù)據(jù)與所述前一分片數(shù)據(jù)的變化值。在本發(fā)明的一個實施例中,當(dāng)?shù)谝粩?shù)據(jù)的格式符合客戶端可識別的數(shù)據(jù)格式時,主機可以直接向客戶端發(fā)送從gpu的顯卡內(nèi)存在主機的物理地址讀取的第一數(shù)據(jù)。當(dāng)?shù)谝粩?shù)據(jù)的格式不符合客戶端可識別的數(shù)據(jù)格式時,主機可以在發(fā)送數(shù)據(jù)之前對第一數(shù)據(jù)進行掃描和格式轉(zhuǎn)化,并向客戶端發(fā)送轉(zhuǎn)化后的數(shù)據(jù)。本發(fā)明實施例可以用于多種網(wǎng)絡(luò)協(xié)議,在本發(fā)明的一個實施例中,以虛擬網(wǎng)絡(luò)計算機(virtualnetworkcomputing,vnc)協(xié)議為例進行示例性說明。例如,網(wǎng)關(guān)可以向客戶端發(fā)送vnc圖像緩存更新消息,其中,vnc圖像緩存更新消息包括第一數(shù)據(jù)或進行格式轉(zhuǎn)化后的數(shù)據(jù)。第二方面,提供了用于發(fā)送數(shù)據(jù)的的裝置,所述裝置為主機,所述主機的圖像處理器gpu集成在所述主機的中央處理器cpu中,所述gpu被分配給所述主機上運行的虛擬機,所述裝置包括:第一獲取單元,用于獲取所述gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的第一物理地址,所述第一物理地址用于指示所述gpu的顯卡內(nèi)存在所述虛擬機的內(nèi)存中的位置;確定單元,用于根據(jù)所述第一獲取單元獲取的所述第一物理地址確定所述gpu的顯卡內(nèi)存在所述主機的cpu的內(nèi)存中的第二物理地址,所述第二物理地址用于指示所述gpu的顯卡內(nèi)存在所述主機的cpu的內(nèi)存中的位置;讀取單元,用于根據(jù)所述確定單元確定的所述第二物理地址讀取所述顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù);發(fā)送單元,用于向所述客戶端發(fā)送所述第一數(shù)據(jù)。結(jié)合第二方面,在第二方面的一種實現(xiàn)方式中,所述第一獲取單元具體用于讀取所述主機的操作系統(tǒng)的文件,得到外設(shè)組件互連標(biāo)準(zhǔn)pci配置空間的寄存器的指示信息,并根據(jù)所述指示信息讀取所述寄存器得到所述第一物理地址,其中,所述指示信息用于指示所述寄存器的地址。結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的另一種實現(xiàn)方式中,所述裝置還包括:第二獲取單元,用于讀取所述cpu的內(nèi)存,得到所述第一物理地址和所述第二物理地址之間的映射關(guān)系;其中,所述確定單元具體用 于根據(jù)所述第一物理地址和所述映射關(guān)系確定所述第二物理地址。結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的另一種實現(xiàn)方式中,所述裝置還包括:分配單元,用于將所述cpu的內(nèi)存的預(yù)留地址空間分配給虛擬機,作為所述虛擬機的內(nèi)存;修改單元,用于根據(jù)所述虛擬機的內(nèi)存在所述cpu的內(nèi)存中的位置和所述第一物理地址修改所述映射關(guān)系;保存單元,用于將所述映射關(guān)系保存在所述cpu的內(nèi)存中。結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的另一種實現(xiàn)方式中,所述發(fā)送單元具體用于所述顯卡內(nèi)存進行分片,得到多個內(nèi)存分片,每個內(nèi)存分片存儲所述第一數(shù)據(jù)的一個分片數(shù)據(jù);獲取一個內(nèi)存分片,讀取所述內(nèi)存分片中的分片數(shù)據(jù),計算所述分片數(shù)據(jù)的校驗和;比較所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的前一分片數(shù)據(jù)的校驗和是否相同;當(dāng)所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的前一分片數(shù)據(jù)的校驗和不相同時,向所述客戶端發(fā)送更新消息,所述更新消息中攜帶所述分片數(shù)據(jù)或所述分片數(shù)據(jù)與所述前一分片數(shù)據(jù)的變化值。本發(fā)明實施例中用于發(fā)送數(shù)據(jù)的裝置中各個設(shè)備和/或器件的功能可以參照第一方面發(fā)送數(shù)據(jù)的方法的步驟,為避免重復(fù),在此不再贅述。本發(fā)明實施例中用于發(fā)送數(shù)據(jù)的裝置中各個技術(shù)方案的有益效果也可以參照第一方面發(fā)送數(shù)據(jù)的方法的有益效果,為避免重復(fù),在此不再贅述。附圖說明為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹。圖1是本發(fā)明一個實施例的通信系統(tǒng)的結(jié)構(gòu)示意圖。圖2是本發(fā)明一個實施例的發(fā)送數(shù)據(jù)的方法的示意性流程圖。圖3是本發(fā)明另一實施例的發(fā)送數(shù)據(jù)的方法的示意性流程圖。圖4是本發(fā)明一個實施例的發(fā)送數(shù)據(jù)的裝置的框圖。圖5是本發(fā)明另一實施例的發(fā)送數(shù)據(jù)的裝置的框圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行描述。在對實施例的技術(shù)方案進行描述之前,首先對本申請中涉及到的兩個基本概念“主機”和“虛擬機”做簡單的介紹。主機(host)作為管理層,用以完成硬件資源的管理、分配;為虛擬機呈現(xiàn)虛擬硬件平臺;實現(xiàn)虛擬機的調(diào)度和隔離。其中,host可能是虛擬機監(jiān)控器(virtualmachinemonitor,vmm)?;蛘?,有時vmm和1個特權(quán)虛擬機配合,兩者結(jié)合組成host。其中,虛擬硬件平臺向其上運行的各個虛擬機提供各種硬件資源,如提供虛擬cpu、內(nèi)存、虛擬磁盤、虛擬網(wǎng)卡等等。其中,該虛擬磁盤可對應(yīng)host的一個文件或者一個邏輯塊設(shè)備。虛擬機則運行在host為其準(zhǔn)備的虛擬硬件平臺上,host上可以運行一個或多個虛擬機。虛擬機指通過虛擬機軟件在一臺物理計算機上模擬出的一臺或者多臺虛擬的計算機。對于在虛擬機中運行的應(yīng)用程序而言,這些虛擬機就像真正的計算機那樣進行工作,虛擬機上可以安裝操作系統(tǒng)和應(yīng)用程序,虛擬機還可訪問網(wǎng)絡(luò)資源。圖1是本發(fā)明一個實施例的通信系統(tǒng)的結(jié)構(gòu)示意圖。圖1的通信系統(tǒng)包括網(wǎng)絡(luò)101、控制器102、主機103和客戶端104。網(wǎng)絡(luò)101可以為廣域網(wǎng)(wideareanetwork,wan)、城域網(wǎng)(metropolitan-areanetwork,man)、局域網(wǎng)(localareanetwork,lan)、因特網(wǎng)(internet)等網(wǎng)絡(luò)。本發(fā)明實施例中的執(zhí)行主體主機可以為網(wǎng)關(guān),也可以為服務(wù)器等。在本發(fā)明的一個實施例中,以主機103為網(wǎng)關(guān)(gateway)進行示例性說明,網(wǎng)關(guān)可以認為是一個網(wǎng)絡(luò)連接到另一個網(wǎng)絡(luò)的“關(guān)口”。網(wǎng)關(guān)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。默認網(wǎng)關(guān)在網(wǎng)絡(luò)層上可以實現(xiàn)網(wǎng)絡(luò)互連,是最復(fù)雜的網(wǎng)絡(luò)互連設(shè)備,僅用于兩個高層協(xié)議不同的網(wǎng)絡(luò)的互連。網(wǎng)關(guān)既可以用于廣域網(wǎng)互連,也可以用于局域網(wǎng)互連。網(wǎng)關(guān)可以為充當(dāng)轉(zhuǎn)換重任的計算機系統(tǒng)或設(shè)備。網(wǎng)關(guān)可以使用在不同的通信協(xié)議、數(shù)據(jù)格式或語言,甚至體系結(jié)構(gòu)完全不同的兩種系統(tǒng)之間,此時網(wǎng)關(guān)可以認為是一個翻譯器。本發(fā)明實施例中的網(wǎng)關(guān)可以為路由器、防火墻、網(wǎng)絡(luò)交換機等,網(wǎng)關(guān)可以用于車輛、商業(yè)、小區(qū)樓宇等。網(wǎng)關(guān)可以包括主機和虛擬機,本發(fā)明實施例的全部流程可以在網(wǎng)關(guān)的主機上執(zhí)行。控制器102可以用于管理主機103(例如,主機為網(wǎng)關(guān)),主機的數(shù)量可 以為多個,控制器可以管理海量的主機。控制器102可以部署在網(wǎng)絡(luò)101所在的公有云中,并通過網(wǎng)絡(luò)來連接各種被管理的網(wǎng)關(guān)??刂破?02還可以支持客戶端104的管理員對主機103進行遠程管理訪問。在現(xiàn)有技術(shù)中,可以通過在cpu上集成物理gpu,將gpu分配給主機上運行的虛擬機使用,但是,這種方法需要為虛擬機添加額外的驅(qū)動程序和后臺服務(wù)程序,這樣需要改動虛擬機內(nèi)部的程序,實現(xiàn)起來非常復(fù)雜。本發(fā)明實施例的發(fā)送數(shù)據(jù)的方法不再需要對虛擬機內(nèi)部程序進行改動,而僅通過對主機中的底層軟件進行改動,便可以實現(xiàn)主機和客戶端之間的數(shù)據(jù)傳輸,這樣可以減少在虛擬機上集成額外程序帶來的復(fù)雜性,從而能夠簡化數(shù)據(jù)傳輸?shù)倪^程。本發(fā)明實施例中,gpu被分配給虛擬機即為gpu透傳(passthrough)主機。透傳指的是將物理上連接到主機并由主機操作系統(tǒng)管理的顯卡從主機“解綁”,“掛接”到虛擬機上,由虛擬機操作系統(tǒng)管理。這樣,顯卡就好像在物理上是連接到虛擬機的。本發(fā)明實施例的發(fā)送數(shù)據(jù)的方法可以用于云計算、桌面云、云網(wǎng)關(guān)等應(yīng)用場景中,網(wǎng)關(guān)向客戶端發(fā)送數(shù)據(jù)可以在客戶端的終端設(shè)備顯示包括所傳輸?shù)臄?shù)據(jù)的虛擬桌面。舉個例子,在云網(wǎng)關(guān)的應(yīng)用場景中,當(dāng)網(wǎng)關(guān)的主機的操作系統(tǒng)為linux時,由于音頻視頻數(shù)據(jù)的容量大,主機上已集成的linux操作系統(tǒng)可能不支持在客戶端顯示音頻視頻等虛擬桌面的數(shù)據(jù),即客戶端無法通過主機的操作系統(tǒng)在客戶端上顯示音頻視頻,此時,主機可以將gpu分配給虛擬機,并可在虛擬機上裝載通用的可顯示音頻視頻的操作系統(tǒng)。例如,可以在虛擬機上裝載通用的windows操作系統(tǒng)或linux操作系統(tǒng),以使虛擬機在客戶端顯示包括音頻視頻的虛擬桌面。圖2是本發(fā)明一個實施例的發(fā)送數(shù)據(jù)的方法的示意性流程圖。圖2的發(fā)送數(shù)據(jù)的方法可以用于圖1中的主機103中,主機的圖像處理器gpu集成在主機的中央處理器cpu中,所述gpu可以分配給主機上運行的虛擬機,由所述虛擬機使用。下面介紹圖2的發(fā)送數(shù)據(jù)的方法。201,主機獲取gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的第一物理地址,第一物理地址用于指示gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的位置。202,主機根據(jù)第一物理地址確定gpu的顯卡內(nèi)存在主機的cpu的內(nèi)存中的第二物理地址,第二物理地址用于指示gpu的顯卡內(nèi)存在主機的 cpu的內(nèi)存中的位置。203,主機根據(jù)第二物理地址讀取所述顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù)。204,主機向客戶端發(fā)送所述第一數(shù)據(jù)。本發(fā)明實施例在將gpu分配給虛擬機后,主機可以根據(jù)gpu的顯卡內(nèi)存在虛擬機內(nèi)存中的地址得到顯卡內(nèi)存在主機內(nèi)存中的地址,并根據(jù)在主機內(nèi)存中的地址讀取并向客戶端發(fā)送數(shù)據(jù),這樣可以避免在虛擬機內(nèi)部增加額外的程序,從而能夠簡化發(fā)送數(shù)據(jù)的方法。在存儲器中以字節(jié)為單位存儲信息,為正確地存放或讀取信息,為每一個字節(jié)單元分配一個唯一的存儲器地址,稱為物理地址(physicaladdress),或者叫作實際地址或絕對地址。物理地址可以從0開始編號,順序地每次加1,因此存儲器的物理地址空間是呈線性增長的。物理地址可以用二進制數(shù)來表示。例如,cpu的內(nèi)存為8g,將cpu的內(nèi)存分為八個分區(qū),則每個分區(qū)的內(nèi)存空間為1g,分別用二進制數(shù)0000至0111分別表示內(nèi)存中每個分區(qū)的物理地址。當(dāng)主機將cpu的內(nèi)存中前2g分配給虛擬機時,虛擬機的內(nèi)存的物理地址可以為0000至0001。本發(fā)明實施例中的物理地址可以用來指示顯卡內(nèi)存在主機內(nèi)存或虛擬機內(nèi)存中的位置。本發(fā)明實施例中,對發(fā)送數(shù)據(jù)的方法所使用的網(wǎng)絡(luò)協(xié)議不做限定。例如,當(dāng)網(wǎng)絡(luò)使用vnc協(xié)議進行數(shù)據(jù)傳輸時,vnc基本上可以由兩部分組成:一部分是本地客戶端的應(yīng)用程序(vncviewer),另外一部分是主機端的應(yīng)用程序(vncserver)。vncviewer是一種遠程控制的軟件,遠端的主機開啟vncserver后,本地vncviewer可以遠程接入運行vncserver的計算機并顯示主機的環(huán)境。當(dāng)網(wǎng)絡(luò)使用vnc協(xié)議進行數(shù)據(jù)傳輸時,vnc客戶端可以通過瀏覽器或vncviewer連接至主機上的vncserver,為數(shù)據(jù)傳輸提供通道,這樣才能實現(xiàn)vnc客戶端和主機之間數(shù)據(jù)的傳輸,在客戶端顯示虛擬桌面。應(yīng)理解,gpu集成在主機的cpu,gpu的顯卡內(nèi)存可以共享主機cpu的內(nèi)存。虛擬機的內(nèi)存可以為主機的cpu的內(nèi)存的一部分,gpu被分配給主機上運行的虛擬機,那么gpu的顯卡內(nèi)存可以為虛擬機的內(nèi)存的一部分。本發(fā)明實施例的發(fā)送數(shù)據(jù)的方法和裝置對通信系統(tǒng)的使用平臺不受限制。例如,本發(fā)明實施例的發(fā)送數(shù)據(jù)的方法和裝置可以用于英特爾(intel)公司的x86平臺,也可以用于國際商業(yè)機器公司(internationalbusiness machinescorporation,ibm)公司的powerpc系列,也可以用于無內(nèi)部互鎖流水級的微處理器(microprocessorwithoutinterlockedpipedstages,mips)平臺等。下面結(jié)合圖3的具體例子詳細說明本發(fā)明的發(fā)送數(shù)據(jù)的方法。圖3是本發(fā)明另一實施例的發(fā)送數(shù)據(jù)的方法的示意性流程圖,為圖2所示方法的具體實現(xiàn)。圖3的發(fā)送數(shù)據(jù)的方法可以由主機(例如,網(wǎng)關(guān))執(zhí)行。301,獲取顯卡內(nèi)存的地址。其中,圖2中的步驟201和202實現(xiàn)了步驟301的功能。圖像緩沖存儲器(framebuffer)簡稱圖像緩存或顯卡內(nèi)存。當(dāng)本發(fā)明實施例中所要獲取的數(shù)據(jù)為音頻、視頻或圖像等數(shù)據(jù)時,顯卡內(nèi)存的地址可以為存儲視頻圖形陣列(videographicsarray,vga)數(shù)據(jù)的存儲器的地址。在本發(fā)明實施例中,主機cpu上集成gpu,主機將gpu分配給虛擬機,虛擬機可以使用cpu內(nèi)部集成的物理gpu對顯卡內(nèi)存中的數(shù)據(jù)進行處理并將其輸出并顯示到客戶端的外設(shè)顯示器上。這樣,通過采用物理gpu而非虛擬化底層軟件上的模擬gpu進行數(shù)據(jù)傳輸并顯示虛擬桌面,可以加快數(shù)據(jù)傳輸?shù)乃俣?,并能夠提高虛擬桌面的顯示質(zhì)量和顯示效果。主機可以獲取顯卡內(nèi)存在主機的cpu的內(nèi)存中的物理地址。例如,主機可以獲取vga顯示輸出的顯卡內(nèi)存在cpu內(nèi)存中的物理地址。在主機的cpu中集成gpu,gpu可以看做是一個集成圖形設(shè)備(integratedgraphicsdevice,igd)。igd集成在主機的cpu的內(nèi)部,igd本身不帶有顯卡內(nèi)存,可以共享主機的cpu內(nèi)存來作為顯卡內(nèi)存使用。這里,vga顯示輸出的顯卡內(nèi)存的地址即為igd共享的cpu內(nèi)存的地址,主機首先需要獲取顯卡內(nèi)存在主機的cpu內(nèi)存中的物理地址。在本發(fā)明的一個實施例中,當(dāng)主機系統(tǒng)為linux系統(tǒng)時,主機通過查看cpu手冊,可以得到cpu內(nèi)存中存在一塊用于vga顯示輸出的顯卡內(nèi)存,該顯卡內(nèi)存可以用于存儲圖形數(shù)據(jù)。主機可以讀取操作系統(tǒng)的文件并得到pci配置空間的內(nèi)容,例如,pci配置空間的寄存器的地址。pci配置空間的寄存器中可以存儲vga的顯卡內(nèi)存的地址,進而主機可以通過讀取寄存器得到vga的顯卡內(nèi)存的地址。在intel的x86平臺中,本發(fā)明實施例中的寄存器可以為共享顯卡內(nèi)存的地址(baseofdatastolenmemory,bdsm)和顯卡內(nèi)存映射表的地址(baseofgttstolenmemory,bgsm),其中,gtt 為顯卡內(nèi)存映射表(graphicstranslationtables)。由于本發(fā)明實施例中的gpu集成在cpu上,主機的操作系統(tǒng)認為gpu為外設(shè)組件,因此這里的寄存器可以為pci配置空間的寄存器。本發(fā)明實施例中,主機可以通過下列方式獲取gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的第一物理地址:主機讀取主機的操作系統(tǒng)的文件,得到外設(shè)組件互連標(biāo)準(zhǔn)pci配置空間的寄存器的指示信息,并根據(jù)指示信息讀取寄存器得到第一物理地址。其中,指示信息用于指示寄存器的地址。寄存器可以包括數(shù)據(jù)寄存器、地址寄存器、通用目的寄存器、浮點寄存器等。其中,地址寄存器可以保存有存儲器地址。本發(fā)明實施例中的寄存器屬于地址寄存器,保存有顯卡內(nèi)存的地址。因此,主機根據(jù)指示信息讀取寄存器時得到的可以是顯卡內(nèi)存的地址。在本發(fā)明的一個實施例中,gpu是被分配是虛擬機的,所以,上述方法得到的vga的顯卡內(nèi)存的物理地址可以為用來指示顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址。本發(fā)明發(fā)送數(shù)據(jù)的上述流程可以在網(wǎng)關(guān)的主機上執(zhí)行,所以,在上述方法得到顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址(例如,第一物理地址)后需要將其轉(zhuǎn)化為顯卡內(nèi)存在主機的cpu的內(nèi)存中的物理地址(例如,第二物理地址)。例如,主機可以預(yù)先設(shè)定顯卡內(nèi)存在主機的內(nèi)存中的第二物理地址和在虛擬機的內(nèi)存中的第一物理地址之間的映射關(guān)系,在上述讀取到顯卡內(nèi)存在虛擬機的內(nèi)存中的第一物理地址后,根據(jù)映射關(guān)系可以得到顯卡內(nèi)存在主機的內(nèi)存中的第二物理地址。再如,主機可以預(yù)先修改內(nèi)存映射代碼,使得顯卡內(nèi)存在主機的內(nèi)存中第二物理地址和在虛擬機的內(nèi)存中的第一物理地址相同,這樣在網(wǎng)關(guān)得到顯卡內(nèi)存在虛擬機的的內(nèi)存中第一物理地址之后,可以直接將第一物理地址視為顯卡內(nèi)存在主機的內(nèi)存中的第二物理地址。在本發(fā)明的一個實施例中,主機可以在系統(tǒng)啟動或系統(tǒng)引導(dǎo)的時候,通過下列方法限定顯卡內(nèi)存在主機的內(nèi)存中的物理地址和在虛擬機的內(nèi)存中的物理地址之間的映射關(guān)系。例如,在主機的操作系統(tǒng)啟動或引導(dǎo)時,通過多重操作系統(tǒng)啟動管理器(grandunifiedbootloader,grub)向系統(tǒng)傳入內(nèi)核引導(dǎo)參數(shù),使得系統(tǒng)在主機的物理cpu內(nèi)存中預(yù)留一塊地址空間。gpu被分配給虛擬機,在快速仿真器(quickemulator,qemu)啟動時,主機可以打開主機操作系統(tǒng)提供的內(nèi)存映射設(shè)備(例如,dev/mem)進行內(nèi)存映射, 并將預(yù)留的cpu內(nèi)存中的地址空間分配給虛擬機。例如,主機進行內(nèi)存映射時可以修改cpu內(nèi)存中的內(nèi)存映射的代碼,以使得無需進行內(nèi)存映射,即實現(xiàn)虛擬機使用的內(nèi)存地址空間與物理cpu內(nèi)存中預(yù)留地址空間相同,這樣,顯卡內(nèi)存在虛擬機的的內(nèi)存中物理地址和顯卡內(nèi)存在主機的內(nèi)存中的物理地址可以是相同的。再如,主機可以通過修改cpu內(nèi)存中的內(nèi)存映射的代碼,使得顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址和顯卡內(nèi)存在主機的內(nèi)存中的物理地址存在一定的映射關(guān)系,主機可以根據(jù)該映射關(guān)系和已經(jīng)獲取得到的顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址得到顯卡內(nèi)存在主機的內(nèi)存中的物理地址。下面舉例來說明主機修改映射關(guān)系的方法。例如,主機的cpu的內(nèi)存為8g,主機可以將cpu的內(nèi)存中前2g分配給虛擬機,即主機可以預(yù)留前2g的內(nèi)存給虛擬機。當(dāng)顯卡內(nèi)存為虛擬機的內(nèi)存的前128m時,可以認為顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址和顯卡內(nèi)存在主機的內(nèi)存中的物理地址是相同的,均為cpu的前128m的內(nèi)存,所以,此時顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址和顯卡內(nèi)存在主機的內(nèi)存中的物理地址二者之間的映射關(guān)系為0-128m映射到0-128m。再如,當(dāng)主機的cpu的內(nèi)存為8g,主機可以將cpu的內(nèi)存中最后2g分配給虛擬機,即主機可以預(yù)留6g至8g的內(nèi)存給虛擬機。當(dāng)顯卡內(nèi)存為虛擬機的內(nèi)存的前128m時,顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址為0至128m,顯卡內(nèi)存在主機的cpu的內(nèi)存中的物理地址為6g至6g+128m,所以,此時顯卡內(nèi)存在虛擬機的內(nèi)存中的物理地址和顯卡內(nèi)存在主機的內(nèi)存中的物理地址二者之間的映射關(guān)系為0至128m映射到6g至6g+128m?,F(xiàn)有技術(shù)中,虛擬機可以捕獲圖形數(shù)據(jù)并將數(shù)據(jù)傳輸至主機再發(fā)送給客戶端,但這一方法需要為虛擬機添加后臺服務(wù)程序以使得虛擬機捕獲圖形數(shù)據(jù),并且需要在主機上增加一個模擬的外設(shè)pci設(shè)備,并在虛擬機上添加額外的驅(qū)動程序。這樣,主機可以作為一個平臺提供給客戶端使用,但是,客戶端安裝的虛擬機的種類可能很多,為不同的虛擬機提供不同新增程序的復(fù)雜性就會很大,而且需要預(yù)先約定連接客戶端的虛擬機必須要安裝的軟件,對主機集成app的能力就會有所限制。本發(fā)明實施例中利用主機獲取存儲數(shù)據(jù)的顯卡內(nèi)存的地址,并在主機上完成數(shù)據(jù)傳輸,這樣相比在虛擬機上增加程序來實現(xiàn)數(shù)據(jù)傳輸,能夠簡化數(shù) 據(jù)傳輸?shù)姆椒āA硗?,本發(fā)明實施例中cpu上集成物理gpu,利用物理gpu而非模擬gpu在將數(shù)據(jù)存儲在gpu的顯卡內(nèi)存之前,對需要傳輸?shù)臄?shù)據(jù)進行處理,在需要進行數(shù)據(jù)傳輸時從gpu的顯卡內(nèi)存讀取數(shù)據(jù)并發(fā)送數(shù)據(jù),以在客戶端的終端設(shè)備顯示虛擬桌面,這樣可以避免模擬gpu性能差而輸出數(shù)據(jù)信號差的缺陷,從而能夠提高虛擬桌面的顯示質(zhì)量。302,對所述顯卡內(nèi)存進行分片,得到多個內(nèi)存分片,每個內(nèi)存分片存儲第一數(shù)據(jù)的一個分片數(shù)據(jù)。當(dāng)虛擬機內(nèi)部顯示數(shù)據(jù)發(fā)生變化時,vga顯卡內(nèi)存中的數(shù)據(jù)也會發(fā)生變化。當(dāng)虛擬桌面客戶端顯示設(shè)備連接到qemu時,主機可以按照一定的頻率對顯卡內(nèi)存中的數(shù)據(jù)(即第一數(shù)據(jù))進行掃描。其中,顯卡內(nèi)存中的數(shù)據(jù)即用來顯示一個圖像的數(shù)據(jù)。所述掃描,是指每隔一定時間久讀取一次所述顯卡內(nèi)存中的數(shù)據(jù)。在本發(fā)明的一個實施例中,在掃描之前,主機可以首先對預(yù)留地址空間的內(nèi)存中的數(shù)據(jù)進行分片處理得到多個分片數(shù)據(jù),并可以對每一片數(shù)據(jù)分別進行掃描。其中,主機對顯卡內(nèi)存中的數(shù)據(jù)進行分片可以是主機對顯卡內(nèi)存進行分片,得到多個內(nèi)存分片,將每個內(nèi)存分片中存儲的數(shù)據(jù)作為一個分片數(shù)據(jù)。在本發(fā)明的另一個實施例中,主機也可以直接對預(yù)留地址空間的內(nèi)存中的數(shù)據(jù)進行掃描,而不分片,本發(fā)明實施例對此不做限制。當(dāng)不分片直接掃描時,可以從步驟302將流程直接進行到步驟304,判當(dāng)前圖像的校驗和與上一圖像的校驗和是否相同。當(dāng)對預(yù)留地址空間的內(nèi)存中存儲的數(shù)據(jù)進行分片處理后,主機可以逐一對每個分片數(shù)據(jù)進行處理。此時可以判斷主機中是否還存在未處理的分片數(shù)據(jù)。當(dāng)預(yù)留地址空間中不再存在未處理的當(dāng)前圖像的分片數(shù)據(jù)時,對當(dāng)前圖像的數(shù)據(jù)的傳輸結(jié)束。下一圖像的數(shù)據(jù)進行傳輸時,可以循環(huán)執(zhí)行本方法從步驟301到步驟306的流程。303,獲取內(nèi)存分片,讀取所述內(nèi)存分片中的分片數(shù)據(jù),計算所述分片數(shù)據(jù)的校驗和。在掃描過程中,對于每個內(nèi)存分片,主機讀取所述內(nèi)存分片中的分片數(shù)據(jù),計算該分片數(shù)據(jù)的校驗和。所述分片數(shù)據(jù)的校驗和即為所述分片數(shù)據(jù)對應(yīng)的分片圖像的校驗和。本發(fā)明實施例中可以將每一幀圖像的數(shù)據(jù)分為多片,每個分片數(shù)據(jù)對應(yīng)一個分片圖像,主機可以通過比較每前后兩幀分片圖像對應(yīng)的分片數(shù)據(jù)的校驗和,來決定是否對發(fā)送當(dāng)前分片數(shù)據(jù)。具體來說,主機發(fā)送一個內(nèi)存分片中的分片數(shù)據(jù)的過程中,記錄該內(nèi)存分片與該分片數(shù)據(jù)的校驗和的對應(yīng)關(guān)系,當(dāng)所述主機再次掃描到所述內(nèi)存分片中新的分片數(shù)據(jù)時,所述主機比較所述新的分片數(shù)據(jù)的校驗和和所述記錄的校驗和,當(dāng)所述新的分片數(shù)據(jù)的校驗和與所述記錄的校驗和不一致時,所述主機發(fā)送所述新的分片數(shù)據(jù),否則,不發(fā)送所述分片數(shù)據(jù)。本發(fā)明實施例中的校驗和可以為循環(huán)冗余校驗碼(cyclicredundancycheck,crc),也可以是消息摘要算法5(message-digestalgorithm5,md5)校驗和。304,比較所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的前一分片數(shù)據(jù)的校驗和是否相同。在步驟303得到內(nèi)存分片中的分片數(shù)據(jù)對應(yīng)的校驗和(即當(dāng)前需要顯示的分片圖像的校驗和)之后,主機可以比較該內(nèi)存分片中的分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的上一個分片數(shù)據(jù)的校驗和(即通過所述內(nèi)存分片發(fā)送的上一個分片圖像的校驗和)是否相同。當(dāng)校驗和相同時,表示所述內(nèi)存分片中的分片數(shù)據(jù)對應(yīng)的圖像與通過該內(nèi)存分片發(fā)送的上一圖像相同,數(shù)據(jù)未發(fā)生變化。流程進行到步驟303,主機繼續(xù)獲取下一個內(nèi)存分片。當(dāng)檢驗和不同時,表示所述內(nèi)存分片中的分片數(shù)據(jù)對應(yīng)的圖像與通過該內(nèi)存分片發(fā)送的上一圖像不同,整個數(shù)據(jù)發(fā)生改變。流程進行到步驟305。305,將所述內(nèi)存分片中的分片數(shù)據(jù)轉(zhuǎn)化為客戶端支持的格式。當(dāng)檢驗和不同時,表示該內(nèi)存分片中的分片數(shù)據(jù)對應(yīng)的圖像與通過所述內(nèi)存分片發(fā)送的上一圖像不同,此時需要將數(shù)據(jù)的變化發(fā)送給客戶端,以使得客戶端能夠在虛擬桌面顯示變化后的數(shù)據(jù)。在本發(fā)明的一個實施例中,可以將變化后的數(shù)據(jù)由當(dāng)前格式轉(zhuǎn)化為客戶端支持的格式,或者,將數(shù)據(jù)的變化值從當(dāng)前格式轉(zhuǎn)化為客戶端支持的格式。306,向客戶端發(fā)送更新消息。在一個內(nèi)存分片中的當(dāng)前分片數(shù)據(jù)與所述內(nèi)存分片傳輸?shù)那耙环制瑪?shù)據(jù)有變化時,可以向客戶端發(fā)送更新消息,所述更新消息中攜帶客戶端支持 的格式的所述分片數(shù)據(jù)或所述分片數(shù)據(jù)與所述前一分片數(shù)據(jù)的變化值,這樣,客戶端可以在收到更新消息后,更新虛擬桌面顯示的內(nèi)容。在本發(fā)明的一個實施例中,可以不執(zhí)行步驟302對顯卡內(nèi)存進行分片這一步驟,而直接對分配給虛擬機的整塊顯卡內(nèi)存進行掃描以讀取數(shù)據(jù),同樣可以通過比較整個顯卡內(nèi)存中的當(dāng)前幀圖像的數(shù)據(jù)的校驗和以及通過所述顯卡內(nèi)存發(fā)送的前一幀圖像的數(shù)據(jù)的校驗和確定當(dāng)前幀圖像和前一幀圖像是否相同,當(dāng)當(dāng)前幀圖像與前一幀圖像不同時,將當(dāng)前幀圖像的數(shù)據(jù),或者當(dāng)前幀圖像的數(shù)據(jù)與前一幀圖像的數(shù)據(jù)的變化值發(fā)送給客戶端。在本發(fā)明的一個實施例中,對顯卡內(nèi)存進行分片處理可以僅計算和傳輸與內(nèi)存分配片發(fā)送的上一分片數(shù)據(jù)的校驗和有變化的分片數(shù)據(jù),從而能夠減小發(fā)送數(shù)據(jù)所需的帶寬,降低流量需求,進而在客戶端終端設(shè)備需要顯示虛擬桌面的場景中,能夠快速顯示虛擬桌面,提高虛擬桌面的顯示質(zhì)量。在本發(fā)明的一個實施例中,第一數(shù)據(jù)可以為客戶端支持的格式的變化后的數(shù)據(jù)或數(shù)據(jù)的變化值。步驟305為可選步驟。當(dāng)主機根據(jù)第二物理地址讀取的顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù)的格式為客戶端可以識別的格式時,主機可以在讀取顯卡內(nèi)存中存儲的數(shù)據(jù)后,直接發(fā)送給客戶端。當(dāng)主機根據(jù)第二物理地址讀取的顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù)的格式不是客戶端可以識別的格式時,主機可以在讀取顯卡內(nèi)存中存儲的數(shù)據(jù)后,對讀取的數(shù)據(jù)進行掃描、格式轉(zhuǎn)化為客戶端可以識別的數(shù)據(jù),再發(fā)送給客戶端。在本發(fā)明的一個實施例中,通過步驟305可以將原始的顯卡內(nèi)存中存儲的數(shù)據(jù)轉(zhuǎn)化為不同格式的輸出數(shù)據(jù),從而能夠滿足客戶端對不同格式的需求。在本發(fā)明的一個實施例中,主機可以通過上述方法向客戶端發(fā)送數(shù)據(jù),這樣客戶端可以實現(xiàn)遠程查看虛擬桌面,并通過主機與控制器相結(jié)合,實現(xiàn)遠程控制虛擬桌面。上文結(jié)合圖2和圖3詳細介紹了本發(fā)明實施例的發(fā)送數(shù)據(jù)的方法,下面結(jié)合圖4和圖5詳細說明根據(jù)本發(fā)明實施例的發(fā)送數(shù)據(jù)的裝置。圖4是本發(fā)明一個實施例的發(fā)送數(shù)據(jù)的裝置的框圖。圖4的裝置10可以為主機。圖像處理器gpu集成在主機的中央處理器cpu中,gpu被分配給主機上運行的虛擬機。裝置10可以包括第一獲取單元11、確定單元12、 讀取單元13和發(fā)送單元14。第一獲取單元11用于獲取gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的第一物理地址,其中,第一物理地址用于指示gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的位置。確定單元12用于根據(jù)第一獲取單元獲取的第一物理地址確定gpu的顯卡內(nèi)存在主機的cpu的內(nèi)存中的第二物理地址,其中,第二物理地址用于指示gpu的顯卡內(nèi)存在所述主機的cpu的內(nèi)存中的位置。讀取單元13用于根據(jù)確定單元確定的第二物理地址讀取顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù)。發(fā)送單元14用于向客戶端發(fā)送第一數(shù)據(jù)。在一個實施方式中,所述第一獲取單元具體用于讀取所述主機的操作系統(tǒng)的文件,得到外設(shè)組件互連標(biāo)準(zhǔn)pci配置空間的寄存器的指示信息,并根據(jù)所述指示信息讀取所述寄存器得到所述第一物理地址,其中,所述指示信息用于指示所述寄存器的地址。在一個實施方式中,所述裝置還包括:第二獲取單元,用于讀取所述cpu的內(nèi)存,得到所述第一物理地址和所述第二物理地址之間的映射關(guān)系;其中,所述確定單元12具體用于根據(jù)所述第一物理地址和所述映射關(guān)系確定所述第二物理地。在另一個實施方式中,所述裝置還包括:分配單元,用于將所述cpu的內(nèi)存的預(yù)留地址空間分配給所述虛擬機,作為所述虛擬機的內(nèi)存;修改單元,用于根據(jù)所述虛擬機的內(nèi)存在所述cpu的內(nèi)存中的位置和所述第一物理地址修改所述映射關(guān)系;保存單元,用于將所述映射關(guān)系保存在所述cpu的內(nèi)存中。在另一個實施方式中,所述發(fā)送單元具體用于對所述顯卡內(nèi)存進行分片,得到多個內(nèi)存分片,每個內(nèi)存分片存儲所述第一數(shù)據(jù)的一個分片數(shù)據(jù);獲取一個內(nèi)存分片,讀取所述內(nèi)存分片中的分片數(shù)據(jù),計算所述分片數(shù)據(jù)的校驗和;比較所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的前一分片數(shù)據(jù)的校驗和是否相同;當(dāng)所述分片數(shù)據(jù)的校驗和與從所述內(nèi)存分片中讀出的前一分片數(shù)據(jù)的校驗和不相同時,向所述客戶端發(fā)送更新消息,所述更新消 息中攜帶所述分片數(shù)據(jù)或所述分片數(shù)據(jù)與所述前一分片數(shù)據(jù)的變化值。本發(fā)明實施例在將gpu分配給虛擬機后,主機可以根據(jù)gpu的顯卡內(nèi)存在虛擬機內(nèi)存中的地址得到顯卡內(nèi)存在主機內(nèi)存中的地址,并根據(jù)在主機內(nèi)存中的地址讀取并向客戶端發(fā)送數(shù)據(jù),這樣可以避免在虛擬機內(nèi)部增加額外的程序,從而能夠簡化發(fā)送數(shù)據(jù)的方法。根據(jù)本發(fā)明實施例的發(fā)送數(shù)據(jù)的裝置10可對應(yīng)于本發(fā)明實施例發(fā)送數(shù)據(jù)的方法,并且,該裝置10中的各個單元/模塊和上述其他操作和/或功能分別為了實現(xiàn)圖2和圖3中主機執(zhí)行的所示方法的相應(yīng)流程,為了簡潔,在此不再贅述。圖5是本發(fā)明另一實施例的發(fā)送數(shù)據(jù)的裝置的框圖。圖5的裝置20可以為主機。裝置20可以包括處理器21、存儲器22和發(fā)射機23。裝置20的各個組件通過總線系統(tǒng)24耦合在一起,其中總線系統(tǒng)24除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號總線。但是為了清楚說明起見,在圖中將各種總線都標(biāo)為總線系統(tǒng)24。存儲器22可以包括只讀存儲器和隨機存取存儲器,并向處理器21提供指令和數(shù)據(jù)。存儲器22的一部分還可以包括非易失性隨機存取存儲器。處理器21可以是通用處理器、數(shù)字信號處理器、專用集成電路、現(xiàn)場可編程門陣列或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件,可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規(guī)的處理器等。上述本發(fā)明實施例揭示的方法可以應(yīng)用于處理器21和發(fā)射機23中,或者由處理器21和發(fā)射機23實現(xiàn)。在實現(xiàn)過程中,上述方法實施例圖2中主機執(zhí)行的各步驟可以通過處理器21和發(fā)射機23中的硬件的集成邏輯電路或者軟件形式的指令完成。處理器21可以讀取存儲器22中的信息,結(jié)合其硬件完成方法實施例的步驟。具體地,裝置20的cpu上集成gpu,gpu被分配給裝置20上運行的虛擬機。處理器21可以獲取gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的第一物理地址。其中,第一物理地址用于指示gpu的顯卡內(nèi)存在虛擬機的內(nèi)存中的位置。處理器21還可以根據(jù)第一物理地址確定gpu的顯卡內(nèi)存在主機的cpu內(nèi)存中的第二物理地址并根據(jù)第二物理地址讀取顯卡內(nèi)存中存儲的需要發(fā)送給客戶端的第一數(shù)據(jù)。發(fā)射機23可以向客戶端發(fā)送第一數(shù)據(jù)。本發(fā)明實施例在將gpu分配給虛擬機后,主機可以根據(jù)gpu的顯卡內(nèi)存在虛擬機內(nèi)存中的地址得到顯卡內(nèi)存在主機內(nèi)存中的地址,并根據(jù)在主機內(nèi)存中的地址讀取并向客戶端發(fā)送數(shù)據(jù),這樣可以避免在虛擬機內(nèi)部增加額外的程序,從而能夠簡化發(fā)送數(shù)據(jù)的方法。根據(jù)本發(fā)明實施例的發(fā)送數(shù)據(jù)的裝置20可對應(yīng)于本發(fā)明實施例發(fā)送數(shù)據(jù)的方法,并且,該裝置20中的各個器件的操作和上述其他操作和/或功能分別為了實現(xiàn)圖2和圖3中主機執(zhí)行的所示方法的相應(yīng)流程,為了簡潔,在此不再贅述。應(yīng)理解,說明書通篇中提到的“一個實施例”或“一實施例”意味著與實施例有關(guān)的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,在整個說明書各處出現(xiàn)的“在一個實施例中”或“在一實施例中”未必一定指相同的實施例。此外,這些特定的特征、結(jié)構(gòu)或特性可以任意適合的方式結(jié)合在一個或多個實施例中。本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例中描述的各方法步驟和單元,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各實施例的步驟及組成。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。本領(lǐng)域普通技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。盡管通過參考附圖并結(jié)合優(yōu)選實施例的方式對本發(fā)明進行了詳細描述,但本發(fā)明并不限于此。在不脫離本發(fā)明的精神和實質(zhì)的前提下,本領(lǐng)域普通技術(shù)人員可以對本發(fā)明的實施例進行各種等效的修改或替換,而這些修改或替換都應(yīng)在本發(fā)明的涵蓋范圍內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1