欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種內(nèi)存數(shù)據(jù)遷移方法、裝置及系統(tǒng)的制作方法

文檔序號:6400470閱讀:262來源:國知局
專利名稱:一種內(nèi)存數(shù)據(jù)遷移方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及一種內(nèi)存數(shù)據(jù)遷移方法、裝置及系統(tǒng)。
背景技術(shù)
隨著計算機(jī)技術(shù)的發(fā)展,內(nèi)存數(shù)據(jù)遷移技術(shù)的應(yīng)用范圍越來越廣泛,如內(nèi)存熱備、熱節(jié)點插拔、節(jié)能等 RAS(Reliability, Availability and Serviceability,可靠性、可用性、可服務(wù)性)技術(shù)都是基于或者用到內(nèi)存數(shù)據(jù)遷移技術(shù)。所述內(nèi)存數(shù)據(jù)遷移,是把內(nèi)存上的數(shù)據(jù)從一個地方遷移到另一個地方的技術(shù),同時要求在內(nèi)存數(shù)據(jù)遷移過程中保證系統(tǒng)正常運(yùn)行,不出現(xiàn)死機(jī)現(xiàn)象?,F(xiàn)有技術(shù)中,采用硬件實現(xiàn)內(nèi)存數(shù)據(jù)遷移的方法如下:當(dāng)需要進(jìn)行內(nèi)存數(shù)據(jù)遷移時,系統(tǒng)中的內(nèi)存控制器和B10S(Basic Input OutputSystem,基本輸入輸出系統(tǒng))對備份內(nèi)存初始化,然后把待遷移內(nèi)存所在內(nèi)存塊中的所有數(shù)據(jù)拷貝到備份內(nèi)存,當(dāng)數(shù)據(jù)拷貝完成后停用待遷移內(nèi)存所在內(nèi)存塊,啟用備份內(nèi)存;因為所述備份內(nèi)存的物理地址與所述待遷移內(nèi)存的物理地址之間存在鏡像關(guān)系,這樣對操作系統(tǒng)來說,遷移前后訪問待遷移內(nèi)存存儲的數(shù)據(jù)的物理地址并沒發(fā)生改變,但實際使用的物理內(nèi)存設(shè)備已經(jīng)改變。該方法雖然能實現(xiàn)內(nèi)存的遷移,但是遷移時要遷移待遷移內(nèi)存所在內(nèi)存塊中的所有數(shù)據(jù)。當(dāng)系統(tǒng)只需對幾個物理內(nèi)存頁進(jìn)行遷移時,采用這種方法必然會造成資源的浪費。針對用硬件實現(xiàn)內(nèi)存數(shù)據(jù)遷移所產(chǎn)生的問題,現(xiàn)有技術(shù)中從軟件層面做了一些改進(jìn),方法如下:當(dāng)需要進(jìn)行內(nèi)存數(shù)據(jù)遷移時,系統(tǒng)首先分配新的物理內(nèi)存給待遷移內(nèi)存,接著刪除所述待遷移內(nèi)存中的數(shù)據(jù)的虛擬地址與待遷移內(nèi)存的物理地址之間的映射關(guān)系,然后將所述待遷移內(nèi)存中的數(shù)據(jù)拷貝到所述新的物理內(nèi)存中,并建立所述待遷移內(nèi)存中的數(shù)據(jù)的虛擬地址與新的物理內(nèi)存的物理地址之間的映射關(guān)系。但因為Linux操作系統(tǒng)對內(nèi)存數(shù)據(jù)遷移的支持還不夠完善,用戶態(tài)任務(wù)可以被睡眠或打斷,內(nèi)核態(tài)任務(wù)由于具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險,所以目前Linux操作系統(tǒng)一般只有對用戶態(tài)程序使用的內(nèi)存才可以進(jìn)行內(nèi)存數(shù)據(jù)遷移,對內(nèi)核態(tài)的內(nèi)存(即內(nèi)核使用的內(nèi)存)是無法遷移的,隨著Linux應(yīng)用越來越廣,目前急需解決對內(nèi)核態(tài)內(nèi)存的數(shù)據(jù)的遷移問題。

發(fā)明內(nèi)容
本發(fā)明的實施例提供一種內(nèi)存數(shù)據(jù)遷移方法、裝置及系統(tǒng),能夠?qū)崿F(xiàn)內(nèi)核態(tài)內(nèi)存數(shù)據(jù)的遷移,并且適用于用戶態(tài)內(nèi)存數(shù)據(jù)的遷移。本發(fā)明的實施例采用如下技術(shù)方案:第一方面,提供了一種內(nèi)存數(shù)據(jù)遷移方法,所述方法包括:當(dāng)前處理器核接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù);通知其它處理器核進(jìn)入靜默stop-machine狀態(tài);分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù);將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上;基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。在第一種可能的實現(xiàn)方式中,根據(jù)第一方面,所述第一內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù)。在第二種可能的實現(xiàn)方式中,根據(jù)第一種可能的實現(xiàn)方式,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存;所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變,包括:基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。在第三種可能的實現(xiàn)方式中,根據(jù)第一種可能的實現(xiàn)方式,所述第一內(nèi)存為虛擬內(nèi)存映射Vme_ap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存;所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變,包括:基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的Vmemmap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。在第四種可能的實現(xiàn)方式中,根據(jù)第三種可能的實現(xiàn)方式,在所述接收內(nèi)存數(shù)據(jù)遷移的指示信息前,還包括:對指定內(nèi)核態(tài)數(shù)據(jù),將所述Vme_ap區(qū)的虛擬地址分配給存放所述指定內(nèi)核態(tài)數(shù)據(jù)的第一內(nèi)存。在第五種可能的實現(xiàn)方式中,根據(jù)第一方面至第四種可能的實現(xiàn)方式,在所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息后,還包括:通知所述其它處理器核退出所述Stop-machine狀態(tài)。第二方面,提供了一種內(nèi)存數(shù)據(jù)遷移裝置,所述內(nèi)存數(shù)據(jù)遷移裝置包括:接收單元,用于接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù);
通知單元,用于通知本處理器核之外的其它處理器核進(jìn)入靜默Stop-machine狀態(tài);內(nèi)存分配單元,用于分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù);存儲單元,用于將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上;映射信息修改單元,用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址不變。在第一種可能的實現(xiàn)方式中,根據(jù)第二方面,所述第一內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù)。在第二種可能的實現(xiàn)方式中,根據(jù)第一種可能的實現(xiàn)方式,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存;所述映射信息修改單元具體用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。在第三種可能的實現(xiàn)方式中,根據(jù)第一種可能的實現(xiàn)方式,所述第一內(nèi)存為虛擬內(nèi)存映射Vme_ap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存;所述映射信息修改單元具體用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的Vmemmap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。在第四種可能的實現(xiàn)方式中,根據(jù)第三種可能的實現(xiàn)方式,所述內(nèi)存數(shù)據(jù)遷移裝置還包括:虛擬地址分配單元,用于在所述接收單元接收內(nèi)存數(shù)據(jù)遷移的指示信息前,對指定內(nèi)核態(tài)數(shù)據(jù),將所述Vme_ap區(qū)的虛擬地址分配給存放所述指定內(nèi)核態(tài)數(shù)據(jù)的第一內(nèi)存。在第五種可能的實現(xiàn)方式中,根據(jù)第二方面至第四種可能的實現(xiàn)方式,所述通知單元,還用于在所述映射信息修改單元基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息后,通知所述其它處理器核退出所述Stop-machine狀態(tài)。第三方面,提供了一種計算機(jī)系統(tǒng),包括:總線;與總線相連的多核處理器;與總線相連的內(nèi)存;其中,所述多核處理器包括多個處理器核,當(dāng)前處理器核通過所述總線調(diào)用所述內(nèi)存中的執(zhí)行指令,以用于:接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù);通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài);分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù);將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上;基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變?;谏鲜霰景l(fā)明的描述,由于當(dāng)前處理器核在接收內(nèi)存數(shù)據(jù)遷移的指示信息后,首先通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷,然后再分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù),并將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到第二內(nèi)存上,基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,這樣就不存在當(dāng)前處理器核中發(fā)生內(nèi)核態(tài)內(nèi)存數(shù)據(jù)遷移時,其它處理器核中正在運(yùn)行的內(nèi)核態(tài)任務(wù)被中斷打斷的問題,解決了操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,最終實現(xiàn)了內(nèi)核態(tài)內(nèi)存的遷移,并且該方法同樣適用于用戶態(tài)內(nèi)存的遷移。


圖1為本發(fā)明實施例提供的一種內(nèi)存數(shù)據(jù)遷移方法;圖2為虛擬地址到物理地址的映射索引示意圖;圖3為X86-64虛擬地址空間分布圖;圖4為本發(fā)明實施例提供的另一種內(nèi)存數(shù)據(jù)遷移方法;圖5為本發(fā)明實施例提供的又一種內(nèi)存數(shù)據(jù)遷移方法;圖6為本發(fā)明實施例提供的一種內(nèi)存數(shù)據(jù)遷移裝置;圖7為本發(fā)明實施例提供的另一種內(nèi)存數(shù)據(jù)遷移裝置;圖8為本發(fā)明實施例提供的一種計算機(jī)系統(tǒng)。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。為了方便理解本發(fā)明實施例,首先在此介紹本發(fā)明實施例描述中會引入的幾個要素:Linux:一種自由和開放源碼的類Unix操作系統(tǒng);DIMM =Dual Inline Memory Modules,雙列直插式存儲模塊,即我們平時計算機(jī)上看到的內(nèi)存條;Page:物理內(nèi)存頁,x86架構(gòu)下一個page大小為4KB ;Pfn:page frame number,物理頁號,比如pfnO對應(yīng)物理地址0-4KB的區(qū)域;內(nèi)存數(shù)據(jù)遷移:在不影響系統(tǒng)正常運(yùn)行的前提下,把該內(nèi)存數(shù)據(jù)從一個page遷移到另一個page ;內(nèi)核態(tài)內(nèi)存/用戶態(tài)內(nèi)存:由內(nèi)核線程/用戶進(jìn)程所使用的內(nèi)存;
Vmemmap區(qū):x86_64中的一個虛擬地址空間區(qū)域,用于存放page結(jié)構(gòu)體;對等映射區(qū):x86-64中的一個虛擬地址空間區(qū)域,一般內(nèi)存分配時默認(rèn)使用此區(qū)域的虛擬地址,且虛擬地址到物理地址的轉(zhuǎn)換結(jié)果差一個固定的偏移量(即:物理地址=虛擬地址-偏移量),但具體轉(zhuǎn)換時是CPU根據(jù)頁表來計算的;Stop-machine:系統(tǒng)當(dāng)前只有一個處理器核在運(yùn)行,其他處理器核處于掛起狀態(tài),且不受中斷打斷;熱插拔:在系統(tǒng)運(yùn)行過程中,移除以及插入硬件設(shè)備,并且不影響系統(tǒng)正常運(yùn)行。需要說明的是,為了便于描述,本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法、裝置和系統(tǒng)均在Linux操作系統(tǒng)下進(jìn)行說明,當(dāng)然,所述內(nèi)存數(shù)據(jù)遷移方法、裝置和系統(tǒng)也可適用于其它操作系統(tǒng),本發(fā)明實施例在此不再一一說明。實施例一、本發(fā)明實施例提供一種內(nèi)存數(shù)據(jù)遷移方法,本實施例的方法可以由當(dāng)前處理器核執(zhí)行,所述當(dāng)前處理器核通常以硬件和/或軟件的方式來實現(xiàn),可以集成在內(nèi)存數(shù)據(jù)遷移的網(wǎng)絡(luò)設(shè)備中。參照圖1,當(dāng)內(nèi)存數(shù)據(jù)遷移開始后,本發(fā)明實施例的內(nèi)存數(shù)據(jù)遷移方法包括如下步驟:101、當(dāng)前處理器核接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù)。具體的,Linux操作系統(tǒng)所在的計算機(jī)系統(tǒng)中,包含多核處理器,所述多核處理器由多個處理器核構(gòu)成,在內(nèi)存數(shù)據(jù)遷移開始前,其中的一個處理器核(當(dāng)前處理器核)會接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù)。需要說明的是,所述第一內(nèi)存中的“第一”不具有任何特殊的含義,僅是為了區(qū)別于要遷移到的目標(biāo)內(nèi)存,即下述的第二內(nèi)存。具體的,所述第一內(nèi)存和所述第二內(nèi)存都屬于內(nèi)存,內(nèi)存包括用戶態(tài)內(nèi)存和內(nèi)核態(tài)內(nèi)存,所以內(nèi)存數(shù)據(jù)遷移時,可以遷移用戶態(tài)內(nèi)存(例如被用戶鎖定的內(nèi)存),也可以遷移內(nèi)核態(tài)內(nèi)存,本發(fā)明實施例對此不作具體限定。102、通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài)。具體的,所述Stop-machine狀態(tài)對應(yīng)系統(tǒng)當(dāng)前只有一個處理器核在運(yùn)行,其它處理器核處于掛起狀態(tài),且不受中斷打斷的狀態(tài)。故所述通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷。具體的,當(dāng)多核處理器中的某個處理器核(當(dāng)前處理器核)接收到內(nèi)存數(shù)據(jù)遷移的指示信息后,會通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),所述其它處理器核接收到進(jìn)入Stop-machine狀態(tài)的通知后,停止處理器核中正在運(yùn)行的任務(wù),且不受中斷打斷,這樣僅發(fā)出通知的當(dāng)前處理器核在運(yùn)行,執(zhí)行內(nèi)存數(shù)據(jù)遷移的操作,防止了當(dāng)前處理器核進(jìn)行內(nèi)存數(shù)據(jù)遷移時,其它處理器核中正在運(yùn)行的內(nèi)核態(tài)任務(wù)被隨意打斷的問題,解決了Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)由于具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題。103、分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù)。104、將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上。具體的,所述將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上,可以通過將第一內(nèi)存上的待遷移數(shù)據(jù)拷貝到所述第二內(nèi)存的方式進(jìn)行存儲,也可以是通過其它途徑,本發(fā)明實施例對此不作具體限定,僅說明將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述
第二內(nèi)存上。105、基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息。其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。具體的,所述第一內(nèi)存的物理地址對應(yīng)第一虛擬地址,當(dāng)內(nèi)存數(shù)據(jù)遷移發(fā)生后,所述第一內(nèi)存上待遷移數(shù)據(jù)的物理地址變化,從第一內(nèi)存的物理地址變化為所述第二內(nèi)存的物理地址,但與所述第二內(nèi)存的物理地址對應(yīng)的虛擬地址沒有發(fā)生變化,仍是第一虛擬地址。因為內(nèi)存數(shù)據(jù)遷移發(fā)生后,待遷移數(shù)據(jù)的物理地址發(fā)生變化,虛擬地址不變,故所述待遷移數(shù)據(jù)的虛擬地址與物理地址之間的映射關(guān)系發(fā)生變化,所以需要根據(jù)所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息。具體的,虛擬地址與物理地址之間存在映射關(guān)系,在L i nux操作系統(tǒng)中,對于一個四層頁管理架構(gòu),虛擬地址由五部分構(gòu)成,具體如圖2所示,包括頁全局目錄、頁上級目錄、頁中間目錄、頁表、頁內(nèi)偏移。其中,頁全局目錄的物理地址存放在CPU(CentralProcessing Unit,中央處理器)的CR3 (Control Register3,控制寄存器3)中,當(dāng)虛擬地址轉(zhuǎn)換成物理地址時,第一,CPU根據(jù)所述CR3中的值,找到頁全局目錄所在的物理頁,第二根據(jù)虛擬地址中的所述頁全局目錄索引,查詢到相應(yīng)的頁全局目錄項,頁全局目錄項中存儲了該虛擬地址所對應(yīng)頁上級目錄的物理地址,第三根據(jù)虛擬地址中的所述頁上級目錄索弓丨,查詢到所述頁上級目錄中相應(yīng)的頁上級目錄項,頁上級目錄項中存儲了該虛擬地址所對應(yīng)頁中間目錄的物理地址,第四根據(jù)虛擬地址中的所述頁中間目錄索引,查詢到所述頁中間目錄中相應(yīng)的頁中間目錄項,頁中間目錄項中存儲了該虛擬地址所對應(yīng)頁表的物理地址,第五根據(jù)虛擬地址中的所述頁表索引,查詢到所述頁表中相應(yīng)的頁表項,所述頁表項中存儲了該虛擬地址所對應(yīng)物理頁的物理地址,最后用虛擬地址的最低12位,也就是頁內(nèi)偏移,加上所述物理頁的物理地址,就得到該虛擬地址所對應(yīng)的物理地址。故基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,實質(zhì)是修改所述待遷移數(shù)據(jù)的虛擬地址所對應(yīng)物理頁的物理地址,也就是修改所述待遷移數(shù)據(jù)的虛擬地址所對應(yīng)的頁表。其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系。需要說明的是,上述虛擬地址與物理地址之間的轉(zhuǎn)換是現(xiàn)有技術(shù),本發(fā)明實施例旨在說明基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,對具體如何修改所述待遷移數(shù)據(jù)的地址信息不作具體限定。至此,本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法的過程結(jié)束。應(yīng)當(dāng)理解的是,基于本發(fā)明的內(nèi)存數(shù)據(jù)遷移方法之后,進(jìn)一步的能執(zhí)行內(nèi)存熱備、節(jié)點熱插拔、節(jié)能等RAS技術(shù)。下面以內(nèi)存熱備、節(jié)點熱插拔,節(jié)能為例進(jìn)行說明:
在內(nèi)存熱備場景下,當(dāng)某一塊內(nèi)存檢測到超過一定閾值數(shù)量的錯誤后,管理程序判斷該內(nèi)存即將發(fā)生故障,此時應(yīng)該及時把該內(nèi)存上的數(shù)據(jù)遷移到另一塊新的內(nèi)存上(其中,新內(nèi)存在系統(tǒng)啟動時已經(jīng)預(yù)留,操作系統(tǒng)不可以使用),在此過程中使用本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法,可以解決目前通過硬件實現(xiàn)內(nèi)存熱備中的內(nèi)存數(shù)據(jù)遷移所導(dǎo)致的成本較高的問題。在節(jié)點熱插拔場景下,如果一個節(jié)點發(fā)生故障或者一個節(jié)點的負(fù)載很低,則可以把該節(jié)點的數(shù)據(jù)遷移至其它節(jié)點,然后對該節(jié)點做下電處理,在此節(jié)點熱移除過程中可以使用本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法。當(dāng)然,如果機(jī)器負(fù)載持續(xù)增加,最后發(fā)現(xiàn)計算能力不足時,可以添加一個節(jié)點,來減少其它節(jié)點的負(fù)擔(dān),在此節(jié)點熱添加過程中也可以使用本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法。和節(jié)點熱插拔場景下的節(jié)點熱移除類似,節(jié)能也基于上述內(nèi)存數(shù)據(jù)遷移方法。但是節(jié)點熱移除針對的粒度是一整個NUMA (Non Uniform Memory Access Achitecture,非一致訪問共享存儲)節(jié)點,從節(jié)能角度來講,我們可以把粒度做的更小,比如一個內(nèi)存控制器或者一根01麗(0皿1-111111^^61110^^0(111168,雙列直插式存儲模塊)條。當(dāng)系統(tǒng)有大量內(nèi)存空閑不用時,我們完全可以把這些內(nèi)存進(jìn)行下電處理,從而節(jié)省能耗,在下電前該內(nèi)存區(qū)域如果有數(shù)據(jù)存在,則會涉及內(nèi)存數(shù)據(jù)遷移,在進(jìn)行內(nèi)存數(shù)據(jù)遷移時可以使用本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法。需要說明的是,上述內(nèi) 容僅是示例性的提供三種基于本發(fā)明的內(nèi)存數(shù)據(jù)遷移方法的RAS技術(shù),當(dāng)然還存在其它應(yīng)用場景,本發(fā)明實施例在此不再一一描述。本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法,由于當(dāng)前處理器核在接收內(nèi)存數(shù)據(jù)遷移的指示信息后,首先通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷,然后再分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù),并將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到第二內(nèi)存上,基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,這樣就不存在當(dāng)前處理器核中發(fā)生內(nèi)核態(tài)內(nèi)存數(shù)據(jù)遷移時,其它處理器核中正在運(yùn)行的內(nèi)核態(tài)任務(wù)被中斷打斷的問題,解決了 Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,最終實現(xiàn)了內(nèi)核態(tài)內(nèi)存的遷移,并且該方法同樣適用于用戶態(tài)內(nèi)存的遷移。實施例二、本發(fā)明實施例提供一種內(nèi)存數(shù)據(jù)遷移方法,本實施例的方法可以由當(dāng)前處理器核執(zhí)行,所述當(dāng)前處理器核通常以硬件和/或軟件的方式來實現(xiàn),可以集成在內(nèi)存數(shù)據(jù)遷移的網(wǎng)絡(luò)設(shè)備中。如圖3所示,該圖為X86-64虛擬地址空間分布圖,本實施例的方法具體以待遷移數(shù)據(jù)的內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù),且所述待遷移數(shù)據(jù)的內(nèi)存為圖3對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存為例進(jìn)行說明,參照圖4,當(dāng)內(nèi)存數(shù)據(jù)遷移開始后,本發(fā)明實施例的內(nèi)存數(shù)據(jù)遷移方法包括如下步驟:401、當(dāng)前處理器核接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù),其中,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存。具體的,Linux操作系統(tǒng)所在的計算機(jī)系統(tǒng)中,包含多核處理器,所述多核處理器由多個處理器核構(gòu)成,在內(nèi)存數(shù)據(jù)遷移開始前,其中的一個處理器核(當(dāng)前處理器核)會接收內(nèi)存數(shù)據(jù)遷移的指示信息。具體的,這里所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù),其中,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存。需要說明的是,所述第一內(nèi)存中的“第一”不具有任何特殊的含義,僅是為了區(qū)別于要遷移到的目標(biāo)內(nèi)存,即下述的第二內(nèi)存。402、通知其它處理器核進(jìn)入靜默stop-machine狀態(tài)。具體的,所述Stop-machine狀態(tài)對應(yīng)系統(tǒng)當(dāng)前只有一個處理器核在運(yùn)行,其它處理器核處于掛起狀態(tài),且不受中斷打斷的狀態(tài)。故所述通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷。具體的,當(dāng)多核處理器中的某個處理器核(當(dāng)前處理器核)接收到內(nèi)存數(shù)據(jù)遷移的指示信息后,會通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),所述其它處理器核接收到進(jìn)入Stop-machine狀態(tài)的通知后,停止處理器核中正在運(yùn)行的任務(wù),且不受中斷打斷,這樣僅發(fā)出通知的當(dāng)前處理器核在運(yùn)行,執(zhí)行內(nèi)存數(shù)據(jù)遷移的操作,防止了當(dāng)前處理器核進(jìn)行內(nèi)存數(shù)據(jù)遷移時,其它處理器核中正在運(yùn)行的內(nèi)核態(tài)任務(wù)被隨意打斷的問題,解決了Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)由于具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題。403、分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù)。404、將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上。405、基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息。其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。需要說明的是,所述第一內(nèi)存的物理地址對應(yīng)第一虛擬地址,當(dāng)內(nèi)存數(shù)據(jù)遷移發(fā)生后,所述第一內(nèi)存上待遷移數(shù)據(jù)的物理地址變化,從第一內(nèi)存的物理地址變化為所述第二內(nèi)存的物理地址,但與所述第二內(nèi)存的物理地址對應(yīng)的虛擬地址沒有發(fā)生變化,仍是第一虛擬地址。因為內(nèi)存數(shù)據(jù)遷移發(fā)生后,待遷移數(shù)據(jù)的物理地址發(fā)生變化,虛擬地址不變,故所述待遷移數(shù)據(jù)的虛擬地址與物理地址之間的映射關(guān)系發(fā)生變化,具體的,虛擬地址與物理地址之間的映射關(guān)系可參見實施例一步驟105的描述,本發(fā)明實施例對此不再贅述。具體的,本發(fā)明實施例中所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存,所以基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,實質(zhì)是基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息。至此,本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法的過程結(jié)束。本發(fā)明實施例提供的實現(xiàn)對等映射區(qū)內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存數(shù)據(jù)遷移方法,由于內(nèi)存數(shù)據(jù)遷移過程中,系統(tǒng)進(jìn)入靜默stop-machine狀態(tài),即內(nèi)核線程短暫休眠,因此解決了內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,使得可以實現(xiàn)對等映射區(qū)大片或小塊內(nèi)核態(tài)數(shù)據(jù)的遷移;同時由于該方法在遷移前后仍可按照原先的虛擬地址進(jìn)行訪問,不會造成內(nèi)核缺頁異常。本發(fā)明實施例還提供一種內(nèi)存數(shù)據(jù)遷移方法,本實施例的方法可以由當(dāng)前處理器核執(zhí)行,所述當(dāng)前處理器核通常以硬件和/或軟件的方式來實現(xiàn),可以集成在內(nèi)存數(shù)據(jù)遷移的網(wǎng)絡(luò)設(shè)備中。具體以待遷移數(shù)據(jù)的內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù),且所述待遷移數(shù)據(jù)的內(nèi)存為圖3Vmemmap (Virtual memory mapping,虛擬內(nèi)存映射)區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存為例進(jìn)行說明,參照圖5,當(dāng)內(nèi)存數(shù)據(jù)遷移開始后,本發(fā)明實施例的內(nèi)存數(shù)據(jù)遷移方法包括如下步驟:501、當(dāng)前處理器核接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù),其中,所述第一內(nèi)存為虛擬內(nèi)存映射Vme_ap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存。具體的,Linux操作系統(tǒng)所在的計算機(jī)系統(tǒng)中,包含多核處理器,所述多核處理器由多個處理器核構(gòu)成,在內(nèi)存數(shù)據(jù)遷移開始前,其中的一個處理器核(當(dāng)前處理器核)會接收內(nèi)存數(shù)據(jù)遷移的指示信息。具體的,這里所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù),其中,所述第一內(nèi)存為Vmemmap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存。需要說明的是,所述第一內(nèi)存中的“第一”不具有任何特殊的含義,僅是為了區(qū)別于要遷移到的目標(biāo)內(nèi)存,即下述的第二內(nèi)存。502、通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài)。具體的,所述Stop-machine狀態(tài)對應(yīng)系統(tǒng)當(dāng)前只有一個處理器核在運(yùn)行,其它處理器核處于掛起狀態(tài),且不受中斷打斷的狀態(tài)。故所述通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷。具體的,當(dāng)多核處理器中的某個處理器核(當(dāng)前處理器核)接收到內(nèi)存數(shù)據(jù)遷移的指示信息后,會通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),所述其它處理器核接收到進(jìn)入Stop-machine狀態(tài)的通知后,停止處理器核中正在運(yùn)行的任務(wù),且不受中斷打斷,這樣僅發(fā)出通知的當(dāng)前處理器核在運(yùn)行,執(zhí)行內(nèi)存數(shù)據(jù)遷移的操作,防止了當(dāng)前處理器核進(jìn)行內(nèi)存數(shù)據(jù)遷移時,其它處理器核中正在運(yùn)行的內(nèi)核態(tài)任務(wù)被隨意打斷的問題,解決了Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)由于具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題。503、分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù)。504、將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上。505、基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的Vmemmap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息。其中,所述修改后的地址信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。需要說明的是,所述第一內(nèi)存的物理地址對應(yīng)第一虛擬地址,當(dāng)內(nèi)存數(shù)據(jù)遷移發(fā)生后,所述第一內(nèi)存上待遷移數(shù)據(jù)的物理地址變化,從第一內(nèi)存的物理地址變化為所述第二內(nèi)存的物理地址,但與所述第二內(nèi)存的物理地址對應(yīng)的虛擬地址沒有發(fā)生變化,仍是第一虛擬地址。因為內(nèi)存數(shù)據(jù)遷移發(fā)生后,待遷移數(shù)據(jù)的物理地址發(fā)生變化,虛擬地址不變,故所述待遷移數(shù)據(jù)的虛擬地址與物理地址之間的映射關(guān)系發(fā)生變化,具體的,虛擬地址與物理地址之間的映射關(guān)系可參見實施例一步驟105的描述,本發(fā)明實施例對此不再贅述。具體的,本發(fā)明實施例中所述第一內(nèi)存為虛擬內(nèi)存映射Vmemmap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存,所以基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,實質(zhì)是基于所述第二內(nèi)存的物理地址,修改待遷移數(shù)據(jù)所在的Vmemmap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息。至此,本發(fā)明實施例提供的內(nèi)存數(shù)據(jù)遷移方法的過程結(jié)束。本發(fā)明實施例提供的實現(xiàn)Vmemmap區(qū)內(nèi)核態(tài)數(shù)據(jù)內(nèi)存數(shù)據(jù)遷移的方法,由于內(nèi)存數(shù)據(jù)遷移過程中,系統(tǒng)進(jìn)入靜默Stop-machine狀態(tài),即內(nèi)核線程短暫休眠,因此解決了內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,使得可以實現(xiàn)Vme_ap區(qū)大片或小塊內(nèi)核態(tài)數(shù)據(jù)的遷移;同時由于該方法在遷移前后仍可按照原先的虛擬地址進(jìn)行訪問,不會造成內(nèi)核缺頁異常。進(jìn)一步的,因為一般在內(nèi)存分配時,默認(rèn)使用對等映射區(qū)中的虛擬地址,所以要想將所述第一內(nèi)存中的待遷移數(shù)據(jù)在所述Vmemmap區(qū)進(jìn)行遷移,則所述方法還包括:在所述接收內(nèi)存數(shù)據(jù)遷移的指示信息前,對指定內(nèi)核態(tài)數(shù)據(jù),將所述Vmemmap區(qū)的虛擬地址分配給存放所述指定內(nèi)核態(tài)數(shù)據(jù)的第一內(nèi)存。進(jìn)一步的,為了在所述內(nèi)存數(shù)據(jù)遷移后,不影響其它處理器核中任務(wù)的正常運(yùn)行,則在所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息后,所述方法還包括:通知所述其它處理器核退出所述Stop-machine狀態(tài)。具體的,通知所述其它處理器核退出所述Stop-machine狀態(tài),即啟動所述停止的其它進(jìn)入短暫休眠狀態(tài)的處理器核繼續(xù)運(yùn)行,這樣可以保證不因為內(nèi)存數(shù)據(jù)遷移,影響到系統(tǒng)的正常運(yùn)行。實施例三、本發(fā)明實施例提供一種內(nèi)存數(shù)據(jù)遷移裝置60,具體如圖6所示,所述內(nèi)存數(shù)據(jù)遷移裝置60包括:接收單元61、通知單元62、內(nèi)存分配單元63、存儲單元64、映射信息修改單元65。應(yīng)當(dāng)理解的是,本發(fā)明實施例的內(nèi)存數(shù)據(jù)遷移裝置60的功能是由當(dāng)前處理器核來操作的,換言之,在一種物理產(chǎn)品形態(tài)下,本發(fā)明實施例的內(nèi)存數(shù)據(jù)遷移裝置60具體可以是當(dāng)前處理器核60 (亦可稱為本處理器核60)。所述接收單元61,用于接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù)。具體的,Linux操作系統(tǒng)所在的計算機(jī)系統(tǒng)中,包含多核處理器,所述多核處理器由多個處理器核構(gòu)成,在內(nèi)存數(shù)據(jù)遷移開始前,其中的一個處理器核(當(dāng)前處理器核60)會接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù)。需要說明的是,所述第一內(nèi)存中的“第一”不具有任何特殊的含義,僅是為了區(qū)別于要遷移到的目標(biāo)內(nèi)存,即下述的第二內(nèi)存。具體的,所述第一內(nèi)存和所述第二內(nèi)存都屬于內(nèi)存,內(nèi)存包括用戶態(tài)內(nèi)存和內(nèi)核態(tài)內(nèi)存,所以內(nèi)存數(shù)據(jù)遷移時,可以遷移用戶態(tài)內(nèi)存(例如被用戶鎖定的內(nèi)存),也可以遷移內(nèi)核態(tài)內(nèi)存,本發(fā)明實施例對此不作具體限定。
所述通知單元62,用于通知本處理器核之外的其它處理器核進(jìn)入靜默Stop-machine 狀態(tài)。具體的,所述Stop-machine狀態(tài)對應(yīng)系統(tǒng)當(dāng)前只有一個處理器核在運(yùn)行,其它處理器核處于掛起狀態(tài),且不受中斷打斷的狀態(tài)。故所述通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷。具體的,當(dāng)多核處理器中的某個處理器核(當(dāng)前處理器核60)接收到內(nèi)存數(shù)據(jù)遷移的指示信息后,會通知其它處理器核進(jìn)入所述Stop-machine狀態(tài),所述其它處理器核接收到進(jìn)入Stop-machine狀態(tài)的通知后,停止處理器核中正在運(yùn)行的任務(wù),且不受中斷打斷,這樣僅發(fā)出通知的當(dāng)前處理器核60在運(yùn)行,執(zhí)行內(nèi)存數(shù)據(jù)遷移的操作,防止了當(dāng)前處理器核60進(jìn)行內(nèi)存數(shù)據(jù)遷移時,其它處理器核中正在運(yùn)行的內(nèi)核態(tài)任務(wù)被隨意打斷的問題,解決了 Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)由于具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題。所述內(nèi)存分配單元63,用于分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù)。所述存儲單元64,用于將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上。所述映射信息修改單元65,用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中,所述待遷移數(shù)據(jù)在遷移前后的虛擬地址不變。具體的,所述第一內(nèi)存的物理地址對應(yīng)第一虛擬地址,當(dāng)內(nèi)存數(shù)據(jù)遷移發(fā)生后,所述第一內(nèi)存上待遷移數(shù)據(jù)的物理地址變化,從第一內(nèi)存的物理地址變化為所述第二內(nèi)存的物理地址,但與所述第二內(nèi)存的物理地址對應(yīng)的虛擬地址沒有發(fā)生變化,仍是第一虛擬地址。因為內(nèi)存數(shù)據(jù)遷移發(fā)生后,待遷移數(shù)據(jù)的物理地址發(fā)生變化,虛擬地址不變,故所述待遷移數(shù)據(jù)的虛擬地址與物理地址之間的映射關(guān)系發(fā)生變化,所以所述映射信息修改單元65需要根據(jù)所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息。具體的,虛擬地址與物理地址之間的映射關(guān)系可參見實施例一步驟105的描述,本發(fā)明實施例對此不再贅述。具體的,通過實施例一步驟105的描述,所述映射信息修改單元65基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,實質(zhì)是修改所述待遷移數(shù)據(jù)的虛擬地址所對應(yīng)物理頁的物理地址,也就是修改所述待遷移數(shù)據(jù)的虛擬地址所對應(yīng)的頁表。需要說明的是,上述虛擬地址與物理地址之間的轉(zhuǎn)換是現(xiàn)有技術(shù),本發(fā)明實施例旨在說明基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址信息,對具體如何修改所述待遷移數(shù)據(jù)的地址信息不作具體限定。進(jìn)一步的,所述第一內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù)。具體的,所述第一內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù),所述內(nèi)核態(tài)數(shù)據(jù)可以是圖3所示的x86-64虛擬地址空間分布圖中對等映射區(qū)的內(nèi)核態(tài)數(shù)據(jù),也可以是虛擬內(nèi)存映射Vmemmap區(qū)中內(nèi)核態(tài)數(shù)據(jù),本發(fā)明實施例對此不作具體限定。進(jìn)一步的,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存。相應(yīng)的,所述映射信息修改單元具體用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變??蛇x的,所述第一內(nèi)存為虛擬內(nèi)存映射Vmemmap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存。相應(yīng)的,所述映射信息修改單元具體用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的Vme_ap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。進(jìn)一步的,如圖7所示,因為一般在內(nèi)存分配時,默認(rèn)使用對等映射區(qū)中的虛擬地址,所以要想將所述第一內(nèi)存中的待遷移數(shù)據(jù)在所述Vme_ap區(qū)進(jìn)行遷移,所述內(nèi)存數(shù)據(jù)遷移裝置60還包括虛擬地址分配單元66。所述虛擬地址分配單元66,用于在所述接收單元61接收內(nèi)存數(shù)據(jù)遷移的指示信息前,對指定內(nèi)核態(tài)數(shù)據(jù),將所述Vme_ap區(qū)的虛擬地址分配給存放所述指定內(nèi)核態(tài)數(shù)據(jù)的第一內(nèi)存。進(jìn)一步的,如圖7所示,為了在所述內(nèi)存數(shù)據(jù)遷移后,不影響其它處理器核中任務(wù)的正常運(yùn)行,還包括:所述通知單元62,還用于在所述映射信息修改單元65基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息后,通知所述其它處理器核退出所述Stop-machine 狀態(tài)。具體的,通知所述其它邏輯處理器核退出所述Stop-machine狀態(tài),即啟動所述停止的其它正在運(yùn)行的邏輯進(jìn)入短暫休眠狀態(tài)的處理器核繼續(xù)運(yùn)行,這樣可以保證不因為內(nèi)存數(shù)據(jù)遷移,影響到系統(tǒng)的正常運(yùn)行。所述內(nèi)存數(shù)據(jù)遷移裝置60進(jìn)行內(nèi)存數(shù)據(jù)遷移的方法具體可參見實施例一和實施例二的描述,本發(fā)明實施例對此不再贅述。本發(fā)明實施例提供一種內(nèi)存數(shù)據(jù)遷移裝置,由于接收單元在接收內(nèi)存數(shù)據(jù)遷移的指示信息后,通知單元通知本處理器核之外的其它處理器核進(jìn)入靜默Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷,然后內(nèi)存分配單元分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù),存儲單元將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存,最后映射信息修改單元基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,這樣就不存在當(dāng)前處理器核中發(fā)生內(nèi)存數(shù)據(jù)遷移時,其它處理器中核正在運(yùn)行的內(nèi)核態(tài)任務(wù)被中斷打斷的問題,解決了 Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,最終實現(xiàn)了內(nèi)核態(tài)內(nèi)存的遷移,并且當(dāng)前處理器核同樣適用于用戶態(tài)內(nèi)存的遷移。實施例四、本發(fā)明實施例還提供一種計算機(jī)系統(tǒng)80,具體如圖8所示,包括:總線81;
與所述總線81相連的多處理器核82 ;與所述總線相連的內(nèi)存83。其中,所述多核處理器82包括多個處理器核,如處理器核821、處理器核822、……、處理器核823,若要在其中某個處理器核(如處理器核821)中進(jìn)行內(nèi)存數(shù)據(jù)遷移,則處理器核821通過所述總線81調(diào)用所述內(nèi)存中的執(zhí)行指令,以用于:接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù);通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài);分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù);將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上;基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中,所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。在一些實施方式中,內(nèi)存83存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴(kuò)展集:
操作系統(tǒng),包含各種系統(tǒng)程序,用于實現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。應(yīng)用模塊,包含各種應(yīng)用程序,用于實現(xiàn)各種應(yīng)用業(yè)務(wù)。應(yīng)用模塊中包括但不限于接收單元,通知單元,內(nèi)存分配單元,映射信息修改單元和虛擬地址分配單元,其中各單元的功能參見前述實施例,在此不贅述。本發(fā)明實施例提供的一種計算機(jī)系統(tǒng),通過其中要進(jìn)行內(nèi)存數(shù)據(jù)遷移的處理器核接收內(nèi)存數(shù)據(jù)遷移的指示信息,通知本處理器核之外的其它處理器核進(jìn)入靜默Stop-machine狀態(tài),即停止其它正在運(yùn)行的處理器核,且不受中斷打斷,然后分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù),并將所述待遷移數(shù)據(jù)存儲到所述第二內(nèi)存,最后基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,解決了 Linux操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,最終實現(xiàn)了內(nèi)核態(tài)內(nèi)存的遷移,并且該方法同樣適用于用戶態(tài)內(nèi)存的遷移。綜上所述,本發(fā)明實施例提供一種基于內(nèi)核虛擬地址空間映射關(guān)系修改的內(nèi)存數(shù)據(jù)遷移方法,其中,所述方法在內(nèi)存數(shù)據(jù)遷移過程中,系統(tǒng)進(jìn)入靜默Stop-machine狀態(tài),即當(dāng)前處理器核在運(yùn)行,其它處理器核短暫休眠的狀態(tài),解決了操作系統(tǒng)不夠完善,由于內(nèi)核態(tài)任務(wù)具有最高優(yōu)先級,不能被打斷,如果運(yùn)行過程中被打斷則可能面臨死機(jī)的危險而不能進(jìn)行內(nèi)存數(shù)據(jù)遷移的問題,使得操作系統(tǒng)除了在不依賴硬件的情況下實現(xiàn)用戶態(tài)的內(nèi)存數(shù)據(jù)遷移以外,還能在不依賴硬件的情況下實現(xiàn)內(nèi)核態(tài)的內(nèi)存數(shù)據(jù)遷移;同時由于該方法在遷移前后仍可按照原先的虛擬地址進(jìn)行訪問,不會造成內(nèi)核缺頁異常,從而避免了傳統(tǒng)技術(shù)中采用數(shù)據(jù)拷貝或更新指針地址的內(nèi)存數(shù)據(jù)遷移方法所導(dǎo)致的遷移前后內(nèi)核產(chǎn)生缺頁異常,導(dǎo)致系統(tǒng)崩潰的缺陷;最后由于在內(nèi)存數(shù)據(jù)遷移結(jié)束后,系統(tǒng)退出靜默Stop-machine狀態(tài),即啟動所述進(jìn)入短暫休眠狀態(tài)的處理器核繼續(xù)運(yùn)行,保證了系統(tǒng)繼續(xù)正常運(yùn)行,不受內(nèi)存數(shù)據(jù)遷移的影響。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種內(nèi)存數(shù)據(jù)遷移方法,其特征在于,所述方法包括: 當(dāng)前處理器核接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù); 通知其它處理器核進(jìn)入靜默Stop_machine狀態(tài); 分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù); 將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上; 基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。
2.根據(jù)權(quán)利要求1所述的內(nèi)存數(shù)據(jù)遷移方法,其特征在于,所述第一內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的內(nèi)存數(shù)據(jù)遷移方法,其特征在于,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存; 所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變,包括: 基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。
4.根據(jù)權(quán)利要求2所述的內(nèi)存數(shù)據(jù)遷移方法,其特征在于,所述第一內(nèi)存為虛擬內(nèi)存映射Vmemmap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存; 所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變,包括: 基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的Vme_ap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。
5.根據(jù)權(quán)利要求4所述的內(nèi)存數(shù)據(jù)遷移方法,其特征在于,在所述接收內(nèi)存數(shù)據(jù)遷移的指示信息前,還包括: 對指定內(nèi)核態(tài)數(shù)據(jù),將所述Vme_ap區(qū)的虛擬地址分配給存放所述指定內(nèi)核態(tài)數(shù)據(jù)的第一內(nèi)存。
6.根據(jù)權(quán)利要求1-5任一項所述的內(nèi)存數(shù)據(jù)遷移方法,其特征在于,在所述基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息后,還包括: 通知所述其它處理器核退出所述Stop_machine狀態(tài)。
7.—種內(nèi)存數(shù)據(jù)遷移裝置,其特征在于,所述內(nèi)存數(shù)據(jù)遷移裝置包括: 接收單元,用于接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù); 通知單元,用于通知本處理器核之外的其它處理器核進(jìn)入靜默Stopjnachine狀態(tài); 內(nèi)存分配單元,用于分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù); 存儲單元,用于將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上; 映射信息修改單元,用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址不變。
8.根據(jù)權(quán)利要求7所述的內(nèi)存數(shù)據(jù)遷移裝置,其特征在于,所述第一內(nèi)存存放內(nèi)核態(tài)數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的內(nèi)存數(shù)據(jù)遷移裝置,其特征在于,所述第一內(nèi)存為對等映射區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存; 所述映射信息修改單元具體用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的對等映射區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完 成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。
10.根據(jù)權(quán)利要求8所述的內(nèi)存數(shù)據(jù)遷移裝置,其特征在于,所示第一內(nèi)存為虛擬內(nèi)存映射Vmemmap區(qū)中內(nèi)核態(tài)數(shù)據(jù)的內(nèi)存; 所述映射信息修改單元具體用于基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)所在的Vme_ap區(qū)對應(yīng)的頁表中所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變。
11.根據(jù)權(quán)利要求10所述的內(nèi)存數(shù)據(jù)遷移裝置,其特征在于,所述內(nèi)存數(shù)據(jù)遷移裝置還包括: 虛擬地址分配單元,用于在所述接收單元接收內(nèi)存數(shù)據(jù)遷移的指示信息前,對指定內(nèi)核態(tài)數(shù)據(jù),將所述Vme_ap區(qū)的虛擬地址分配給存放所述指定內(nèi)核態(tài)數(shù)據(jù)的第一內(nèi)存。
12.根據(jù)權(quán)利要求7-11任一項所述的內(nèi)存數(shù)據(jù)遷移裝置,其特征在于, 所述通知單元,還用于在所述映射信息修改單元基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息后,通知所述其它處理器核退出所述Stopjnachine狀態(tài)。
13.一種計算機(jī)系統(tǒng),其特征在于,包括: 總線; 與總線相連的多核處理器; 與總線相連的內(nèi)存; 其中,所述多核處理器包括多個處理器核,當(dāng)前處理器核通過所述總線調(diào)用所述內(nèi)存中的執(zhí)行指令,以用于:接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù);通知其它處理器核進(jìn)入靜默Stopjnachine狀態(tài);分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù);將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存上;基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息,其中,所述修改后的地址映射信息表示在數(shù)據(jù)遷移完成后,所述待遷移數(shù)據(jù)的虛擬地址與所述第二內(nèi)存上所述待遷移數(shù)據(jù)所占用的物理地址之間的映射關(guān)系,其中所述待遷移數(shù)據(jù)在遷移前后的虛擬地址保持不變 。
全文摘要
本發(fā)明實施例提供了一種內(nèi)存數(shù)據(jù)遷移方法、裝置及系統(tǒng),能夠?qū)崿F(xiàn)內(nèi)核態(tài)內(nèi)存數(shù)據(jù)的遷移,并且適用于用戶態(tài)內(nèi)存數(shù)據(jù)的遷移。所述方法包括當(dāng)前處理器接收內(nèi)存數(shù)據(jù)遷移的指示信息,所述指示信息用于指示遷移第一內(nèi)存上的待遷移數(shù)據(jù);通知其它處理器核進(jìn)入靜默Stop-machine狀態(tài);分配第二內(nèi)存給所述第一內(nèi)存上的待遷移數(shù)據(jù);將所述第一內(nèi)存上的待遷移數(shù)據(jù)存儲到所述第二內(nèi)存;基于所述第二內(nèi)存的物理地址,修改所述待遷移數(shù)據(jù)的地址映射信息。本發(fā)明涉及計算機(jī)領(lǐng)域,應(yīng)用于通過內(nèi)存數(shù)據(jù)遷移實現(xiàn)高級功能的場景。
文檔編號G06F12/10GK103198028SQ20131008627
公開日2013年7月10日 申請日期2013年3月18日 優(yōu)先權(quán)日2013年3月18日
發(fā)明者裘稀石, 吳建國 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
墨竹工卡县| 长治市| 西乌珠穆沁旗| 且末县| 双牌县| 宕昌县| 哈巴河县| 山阳县| 德江县| 哈密市| 英山县| 乐亭县| 柞水县| 揭西县| 陆丰市| 桂林市| 丽水市| 宜丰县| 北川| 忻州市| 陆丰市| 大足县| 遂川县| 和平县| 平潭县| 库尔勒市| 西平县| 沐川县| 邛崃市| 五指山市| 许昌市| 阿城市| 博野县| 布拖县| 南汇区| 延津县| 大英县| 蕉岭县| 克什克腾旗| 武强县| 林西县|