中央處理器熱插拔的實(shí)現(xiàn)方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種中央處理器熱插拔的實(shí)現(xiàn)方法及裝置,該方法包括:Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,;Primary操作系統(tǒng)實(shí)例向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU進(jìn)行熱插入初始化,熱插入初始化為目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程;Primary操作系統(tǒng)實(shí)例檢測目標(biāo)CPU是否完成熱插入初始化;若Primary操作系統(tǒng)實(shí)例檢測到目標(biāo)CPU完成熱插入初始化,則向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU,實(shí)現(xiàn)在Secondary操作系統(tǒng)內(nèi)實(shí)現(xiàn)CPU的Hot?Plug。
【專利說明】中央處理器熱插拔的實(shí)現(xiàn)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及通信領(lǐng)域,尤其涉及一種中央處理器熱插拔的實(shí)現(xiàn)方法及裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的不斷發(fā)發(fā)展,在一個中央處理器(Central Processing Unit,CPU)上部署多個內(nèi)核(core)形成具有強(qiáng)大處理能力的多核中央處理器,包括多個多核處理器的計(jì)算機(jī)系統(tǒng)稱為多處理器操作系統(tǒng)。多處理器操作系統(tǒng)中,首先啟動的操作系統(tǒng)實(shí)例為原始(Primary)操作系統(tǒng)實(shí)例,后續(xù)啟動的一個或多個操作系統(tǒng)實(shí)例稱為第二(Secondary)操作系統(tǒng)實(shí)例。當(dāng)需要為Secondary操作系統(tǒng)實(shí)例運(yùn)行時(shí),可能需求從Primary操作系統(tǒng)實(shí)例獲取CPU并啟動該CPU即需要熱插入(Hot Plug)。
[0003]現(xiàn)有的多處理器操作系統(tǒng),如Linux多處理器操作系統(tǒng),為了實(shí)現(xiàn)Hot Plug,需要調(diào)用一系列函數(shù)完成整個CPU的啟動過程。該過程中,負(fù)責(zé)熱插入過程的CPU為主CPU,待啟動的CPU為目標(biāo)CPU,目標(biāo)CPU接收到主CPU發(fā)送的處理器間中斷(Inter-ProcessorInterrupt, IPI)后,從低地空間執(zhí)行跳板(Trampoline)進(jìn)入保護(hù)模式,再由主CPU進(jìn)行一系列的初始化操作,將目標(biāo)CPU納入系統(tǒng)資源池。然后,目標(biāo)CPU調(diào)度Idle進(jìn)程,完成啟動。
[0004]然而,該Hot Plug過程中,由于低地址空間由Primary操作系統(tǒng)實(shí)例管理,而Primary操作系統(tǒng)實(shí)例與Secondary操作系統(tǒng)實(shí)例屬于兩個不同的操作系統(tǒng)(OperatingSystem, OS)空間,Secondary操作系統(tǒng)實(shí)例不能占用Primary操作系統(tǒng)實(shí)例管理的低地址空間。因此,現(xiàn)有技術(shù)僅實(shí)現(xiàn)了 Primary操作系統(tǒng)內(nèi)CPU的Hot Plug,而Secondary操作系統(tǒng)實(shí)例由于不能自主的將系統(tǒng)資源池中的CPU從實(shí)模式切換到保護(hù)模式,進(jìn)而無法在運(yùn)行過程中啟動目標(biāo)CPU,即無法在Secondary操作系統(tǒng)實(shí)例內(nèi)實(shí)現(xiàn)CPU的Hot Plug。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種中央處理器熱插拔的實(shí)現(xiàn)方法及裝置,實(shí)現(xiàn)CPU在Secondary操作系統(tǒng)實(shí)例內(nèi)的Hot Plug。
[0006]第一個方面,本發(fā)明實(shí)施例提供一種中央處理器熱插拔的實(shí)現(xiàn)方法,適用于具有原始Primary操作系統(tǒng)實(shí)例與至少一個第二 Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),該方法包括:
[0007]所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,所述熱插入初始化代碼包括在所述Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),所述目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼;
[0008]所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化,所述熱插入初始化為所述目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程;
[0009]所述Primary操作系統(tǒng)實(shí)例檢測所述目標(biāo)CPU是否完成所述熱插入初始化;[0010]若所述Primary操作系統(tǒng)實(shí)例檢測到所述目標(biāo)CPU完成所述熱插入初始化,則向所述Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使所述Secondary操作系統(tǒng)實(shí)例熱插入所述目標(biāo) CPU。
[0011]在第一個方面的第一種可能的實(shí)現(xiàn)方式中,所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,包括:
[0012]所述Primary操作系統(tǒng)實(shí)例在所述Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置所述熱插入初始化代碼;
[0013]所述Primary操作系統(tǒng)實(shí)例在所述Secondary操作系統(tǒng)實(shí)例的第一物理地址配置所述熱插入初始化代碼,所述第一物理地址為低地址;
[0014]所述Primary操作系統(tǒng)實(shí)例在所述Secondary操作系統(tǒng)實(shí)例的第二物理地址配置所述熱插入初始化代碼,所述第二物理地址為低地址,所述第一物理地址與所述第二物理地址為不同的低地址。
[0015]結(jié)合第一個方面的第一種可能的實(shí)現(xiàn)方式,在第一個方面的第二種可能的實(shí)現(xiàn)方式中,所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化,包括:
[0016]所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述機(jī)器物理地址執(zhí)行所述熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換;
[0017]所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第一物理地址執(zhí)行所述熱插入初始化代碼,從而完成從所述Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換;
[0018]所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第二物理地址執(zhí)行所述熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
[0019]結(jié)合第一個方面、第一個方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第一個方面的第三種可能的實(shí)現(xiàn)方式中,所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼之前,還包括:
[0020]所述Primary操作系統(tǒng)實(shí)例判斷所述Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值;
[0021]若小于,則所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU。
[0022]結(jié)合第一個方面的第三種可能的實(shí)現(xiàn)方式,在第一個方面的第四種可能的實(shí)現(xiàn)方式中,所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU,包括:
[0023]所述Primary操作系統(tǒng)實(shí)例根據(jù)CPU分配狀態(tài)位圖,為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU,所述CPU分配狀態(tài)位圖記錄所述多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。
[0024]第二個方面,本發(fā)明實(shí)施例提供一種中央處理器熱插拔的實(shí)現(xiàn)方法,適用于具有原始Primary操作系統(tǒng)實(shí)例與至少一個第二 Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),該方法包括:[0025]所述Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,以使得所述目標(biāo)CPU執(zhí)行處理器暫停指令HLT;
[0026]所述Secondary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU標(biāo)識為空閑CPU ;
[0027]所述Secondary操作系統(tǒng)實(shí)例向所述Primary操作系統(tǒng)實(shí)例發(fā)送所述目標(biāo)CPU的標(biāo)識,以使得所述Primary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU存儲到所述多處理系統(tǒng)的CPU資源池。
[0028]在第二個方面的第一種可能的實(shí)現(xiàn)方式中,所述Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,以使得所述目標(biāo)CPU執(zhí)行處理器暫停指令HLT之前,包括:
[0029]所述Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)中央處理器CPU ;
[0030]結(jié)合第二個方面或第二個方面的第一種可能的實(shí)現(xiàn)方式中,所述Secondary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU標(biāo)識為空閑CPU之后,所述Secondary操作系統(tǒng)實(shí)例向所述Primary操作系統(tǒng)實(shí)例發(fā)送所述目標(biāo)CPU的標(biāo)識之前,包括:
[0031]所述Secondary操作系統(tǒng)實(shí)例判斷是否需要將所述目標(biāo)CPU返回給所述Primary操作系統(tǒng)實(shí)例;
[0032]Secondary操作系統(tǒng)實(shí)例向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,包括:
[0033]若Secondary操作系統(tǒng)實(shí)例判斷判斷出需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例,則向所述Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識。
[0034]第三個方面,本發(fā)明實(shí)施例提供一種中央處理器熱插拔的實(shí)現(xiàn)裝置,包括:
[0035]配置模塊,用于為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,所述熱插入初始化代碼包括在所述Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),所述目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼;
[0036]第一發(fā)送模塊,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化,所述熱插入初始化為所述目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程;
[0037]檢測模塊,用于檢測所述目標(biāo)CPU是否完成所述熱插入初始化;
[0038]第二發(fā)送模塊,還用于若所述檢測模塊檢測到所述Primary操作系統(tǒng)實(shí)例檢測到所述目標(biāo)CPU完成所述熱插入初始化,則向所述Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使所述Secondary操作系統(tǒng)實(shí)例熱插入所述目標(biāo)CPU。
[0039]在第三個方面的第一種可能的實(shí)現(xiàn)方式中,所述配置模塊包括:
[0040]第一配置模塊,用于在所述Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置所述熱插入初始化代碼;
[0041]第二配置模塊,用于在所述Secondary操作系統(tǒng)實(shí)例的第一物理地址配置所述熱插入初始化代碼,所述第一物理地址為低地址;
[0042]第三配置模塊,用于在所述Secondary操作系統(tǒng)實(shí)例的第二物理地址配置所述熱插入初始化代碼,所述第二物理地址為低地址,所述第一物理地址與所述第二物理地址為不同的低地址。
[0043]結(jié)合第三個方面的第一種可能的實(shí)現(xiàn)方式,在第三個方面的第二種可能的實(shí)現(xiàn)方式中,所述第一發(fā)送模塊包括:
[0044]第一發(fā)送單元,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述機(jī)器物理地址執(zhí)行所述熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換;[0045]第二發(fā)送單元,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第一物理地址執(zhí)行所述熱插入初始化代碼,從而完成從所述Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換;
[0046]第三發(fā)送單元,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第二物理地址執(zhí)行所述熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
[0047]結(jié)合第三個方面、第三個方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第三個方面的第三種可能的實(shí)現(xiàn)方式種,所述裝置還包括:
[0048]判斷模塊,用于判斷所述Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值;
[0049]選擇模塊,用于若所述判斷模塊判斷出所述Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量小于預(yù)設(shè)的閥值,則為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU。
[0050]結(jié)合第三個方面的第三種可能的實(shí)現(xiàn)方式,在第三個方面的第四種可能的實(shí)現(xiàn)方式中,所述選擇模塊,用于根據(jù)CPU分配狀態(tài)位圖,為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU,所述CPU分配狀態(tài)位圖記錄所述多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。
[0051]第四個方面,本發(fā)明實(shí)施例提供一種中央處理器熱插拔的實(shí)現(xiàn)裝置,包括:
[0052]處理模塊,用于清空目標(biāo)CPU上的工作隊(duì)列,以使得所述目標(biāo)CPU執(zhí)行處理器暫停指令HLT ;
[0053]標(biāo)識模塊,用于將所述目標(biāo)CPU標(biāo)識為空閑CPU ;
[0054]發(fā)送模塊,用于向所述Primary操作系統(tǒng)實(shí)例發(fā)送所述目標(biāo)CPU的標(biāo)識,以使得所述Primary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU存儲到所述多處理系統(tǒng)的CPU資源池。
[0055]在第四個方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0056]選擇模塊,用于選擇目標(biāo)中央處理器CPU。
[0057]結(jié)合第四個方面或第四個方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0058]判斷模塊,用于判斷是否需要將所述目標(biāo)CPU返回給所述Primary操作系統(tǒng)實(shí)例;
[0059]所述發(fā)送模塊,用于若所述判斷模塊判斷出需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例,則向所述Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識。
[0060]本發(fā)明實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)方法及裝置,Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,并向目標(biāo)CPU發(fā)送IPI,使得目標(biāo)(PU完成熱插入初始化。當(dāng)檢測出目標(biāo)CPU完成熱插入初始化后,向Secondary操作系統(tǒng)實(shí)例發(fā)送用于啟動目標(biāo)CPU的APIC中斷,使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU,從而為Secondary操作系統(tǒng)實(shí)例內(nèi)進(jìn)行動態(tài)CPU資源調(diào)整提供底層技術(shù)支撐,將Primary操作系統(tǒng)實(shí)例中的空閑CPU熱插入到Secondary操作系統(tǒng),實(shí)現(xiàn)在Secondary操作系統(tǒng)內(nèi)實(shí)現(xiàn)CPU 的 Hot Plug。
【專利附圖】
【附圖說明】
[0061]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0062]圖1為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例一的流程圖;
[0063]圖2為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例二的流程圖;
[0064]圖3為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例三的流程圖;
[0065]圖4為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例四的流程圖;
[0066]圖5為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0067]圖6為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例二的結(jié)構(gòu)示意圖;
[0068]圖7為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例三的結(jié)構(gòu)示意圖;
[0069]圖8為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例四的結(jié)構(gòu)示意圖;
[0070]圖9為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例五的結(jié)構(gòu)示意圖;
[0071]圖10為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例六的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0072]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0073]圖1為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例一的流程圖。本實(shí)施例適用于具有Primary操作系統(tǒng)實(shí)例與至少一個Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),應(yīng)用于Secondary操作系統(tǒng)需要對目標(biāo)CPU進(jìn)行Hot plug的情景。具體的,本實(shí)施例包括如下步驟:
[0074]101、Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,熱插入初始化代碼包括在Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼。
[0075]多處理器操作系統(tǒng)中,Primary操作系統(tǒng)實(shí)例也可稱之為重量級操作系統(tǒng)(HeavyOS),是具有資源分配、回收、虛擬化及協(xié)調(diào)等功能的通用操作系統(tǒng),也是在硬件上第一個啟動的操作系統(tǒng)實(shí)例,負(fù)責(zé)全局資源的管理,例如,控制多處理器操作系統(tǒng)中的CPU資源、內(nèi)存資源、物理設(shè)備或虛擬設(shè)備等資源。Secondary操作系統(tǒng)實(shí)例也可稱之為輕量級操作系統(tǒng)(Light OS),是基于Heavy OS所管理的資源而創(chuàng)建定制的操作系統(tǒng),只能管理自身的資源,從Heavy OS申請資源,或?qū)①Y源釋放后返還給Heavy OS。本步驟中,Primary操作系統(tǒng)為Secondary操作系統(tǒng)配置熱插入初始話代碼,該熱插入初始代碼包括在Secondary操作系統(tǒng)中熱插入目標(biāo)CPU,即待插入CPU所需的功能性代碼,例如,使目標(biāo)CPU從實(shí)模式轉(zhuǎn)換到保護(hù)模式的模式轉(zhuǎn)換代碼、使目標(biāo)CPU從Primary操作系統(tǒng)空間轉(zhuǎn)換到Secondary操作系統(tǒng)空間的空間轉(zhuǎn)換代碼等。
[0076]102、Primary操作系統(tǒng)實(shí)例向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU進(jìn)行熱插入初始化,熱插入初始化為目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程。
[0077]在為目標(biāo)CPU準(zhǔn)備好熱插入初始化代碼后,Primary操作系統(tǒng)向目標(biāo)CPU發(fā)送處理期間中斷(Inter-Processor Interrupt, IPI),觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化。例如,根據(jù)準(zhǔn)備好的熱插入初始化代碼,從實(shí)模式轉(zhuǎn)換到保護(hù)模式、從Primary操作系統(tǒng)空間轉(zhuǎn)換到Secondary操作系統(tǒng)空間等。
[0078]103、Primary操作系統(tǒng)實(shí)例檢測目標(biāo)CPU是否完成熱插入初始化。
[0079]本步驟中,Primary操作系統(tǒng)通過探測目標(biāo)CPU是否成功的執(zhí)行完熱插入初始化代碼等,從而檢測目標(biāo)CPU是否完成熱插入初始化。
[0080]104、若Primary操作系統(tǒng)實(shí)例檢測到目標(biāo)CPU完成熱插入初始化,則向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU。
[0081]本步驟中,當(dāng)Primary操作系統(tǒng)實(shí)現(xiàn)檢測到目標(biāo)CPU已成功的執(zhí)行完熱插入初始化代碼,即完成熱插入初始化,則向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,如高級的可編程的中斷控制器(Advanced Programmable Interrupt Controller, APIC),從而使得 Secondary操作系統(tǒng)實(shí)例啟動目標(biāo)CPU,即熱插入目標(biāo)CPU。
[0082]本發(fā)明實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)方法,Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,并向目標(biāo)CPU發(fā)送IPI,使得目標(biāo)CPU完成熱插入初始化。當(dāng)檢測出目標(biāo)CPU完成熱插入初始化后,向Secondary操作系統(tǒng)實(shí)例發(fā)送用于啟動目標(biāo)CPU的APIC中斷,使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU,從而為Secondary操作系統(tǒng)實(shí)例內(nèi)進(jìn)行動態(tài)CPU資源調(diào)整提供底層技術(shù)支撐,將Primary操作系統(tǒng)實(shí)例中的空閑CPU熱插入到Secondary操作系統(tǒng),實(shí)現(xiàn)在Secondary操作系統(tǒng)內(nèi)實(shí)現(xiàn)CPU的 HotPlug。
[0083]圖2為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例二的流程圖。本實(shí)施例適用于具有Primary操作系統(tǒng)實(shí)例與至少一個Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),應(yīng)用于Secondary操作系統(tǒng)需要對目標(biāo)CPU進(jìn)行Hot plug的情景。在上述實(shí)施例一的基礎(chǔ)上,本實(shí)施例中,多處理器操作系統(tǒng)具體為Rainforest系統(tǒng)。具體的,本實(shí)施例包括如下步驟:
[0084]20UPrimary操作系統(tǒng)實(shí)例判斷Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值。
[0085]Primary操作系統(tǒng)實(shí)例維護(hù)一個數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中記錄有可分配給Secondary操作系統(tǒng)實(shí)例的最大CPU數(shù)量和已分配數(shù)量。對于一個具體的Secondary操作系統(tǒng)實(shí)例,如啟動大規(guī)模應(yīng)用的、數(shù)據(jù)計(jì)算量大的負(fù)荷較重的Secondary操作系統(tǒng)實(shí)例,Primary操作系統(tǒng)實(shí)例判斷已分配給該Secondary操作系統(tǒng)實(shí)例的CPU個數(shù)M,是否小于該Secondary操作系統(tǒng)實(shí)例初始化時(shí)支持的最大CPU個數(shù)N,即預(yù)設(shè)的閥值N,若M < N,則繼續(xù)后續(xù)步驟;否則,禁止后續(xù)步驟。
[0086]202、Primary操作系統(tǒng)為Secondary操作系統(tǒng)選擇目標(biāo)CPU。
[0087]本步驟中,Primary操作系統(tǒng)從其管理的CPU資源中選擇一個空閑的CPU作為目標(biāo)CPU,即待插入Secondary操作系統(tǒng)實(shí)例的CPU。
[0088]可選的,Primary操作系統(tǒng)實(shí)例可根據(jù)CPU分配狀態(tài)位圖,為Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)CPU,其中,CPU分配狀態(tài)位圖例如可以為用于描述當(dāng)前多處理器系統(tǒng)CPU的資源和APIC資源的描述符和數(shù)據(jù)結(jié)構(gòu)的MP Table, Primary操作系統(tǒng)實(shí)例與Secondary操作系統(tǒng)實(shí)例各自具有MP Table。
[0089]具體如步驟2021、2022。
[0090]2021、Primary操作系統(tǒng)維護(hù)CPU分配狀態(tài)位圖。[0091]CPU分配狀態(tài)位圖記錄多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。如果某CPU歸Primary操作系統(tǒng)管理,則置位,即標(biāo)識為1,;否則,若某CPU已被分配給Secondary操作系統(tǒng),則置零,即標(biāo)識為O。
[0092]2022,Primary操作系統(tǒng)根據(jù)CPU分配狀態(tài)位圖,為Secondary操作系統(tǒng)選擇目標(biāo)CPU。
[0093]Primary操作系統(tǒng)實(shí)例掃描CPU分配狀態(tài)位圖,從標(biāo)識為O的CPU中隨機(jī)的或是通過計(jì)算等,得到一個當(dāng)前可分配給Secondary操作系統(tǒng)的CPU,作為目標(biāo)CPU。
[0094]203、Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼。
[0095]具體的,本步驟包括如下子步驟:
[0096]2031、Primary操作系統(tǒng)實(shí)例在Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置熱插入初始化代碼。
[0097]Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例準(zhǔn)備跳板(trampoline)代碼,將該trampoline代碼拷貝到Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址處,例如,在Rainforest系統(tǒng)中機(jī)器物理地址具體為0x6000處。Primary操作系統(tǒng)實(shí)例與Secondary操作系統(tǒng)實(shí)例有一段地址空間是一樣的,也就是說,對于該段相同的地址空間,虛擬地址和物理地址的對應(yīng)關(guān)系在Primary操作系統(tǒng)實(shí)例與Secondary操作系統(tǒng)實(shí)例各自的業(yè)表中是相同的,切換CR3寄存器,就可以完成地址空間之間的切換。本步驟中,trampoline代碼為在計(jì)算機(jī)操作系統(tǒng)X86架構(gòu)下,支持CPU從實(shí)模式轉(zhuǎn)換到保護(hù)模式的功能性代碼。
[0098]2032、Primary操作系統(tǒng)實(shí)例在Secondary操作系統(tǒng)實(shí)例的第一物理地址配置熱插入初始化代碼,第一物理地址為低地址。
[0099]Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例準(zhǔn)備跳板(trampoline)代碼,將該跳板trampoline代碼拷貝到Secondary操作系統(tǒng)實(shí)例的第一物理地址處,即低地址處,例如,在Rainforest系統(tǒng)中第一物理地址具體為物理地址phy_space+0x6000處。本步驟中,trampoline代碼供目標(biāo)CPU在后續(xù)的熱插入初始化的過程中,從Primary操作系統(tǒng)實(shí)例的空間轉(zhuǎn)換到Secondary操作系統(tǒng)實(shí)例的空間。
[0100]2033、Primary操作系統(tǒng)實(shí)例在Secondary操作系統(tǒng)實(shí)例的第二物理地址配置熱插入初始化代碼,第二物理地址為低地址,第一物理地址與第二物理地址為不同的低地址。
[0101]Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例準(zhǔn)備跳板(trampoline)代碼,將該跳板trampoline代碼拷貝到Secondary操作系統(tǒng)實(shí)例的第二物理地址處,即低地址處,例如,在Rainforest系統(tǒng)中第二物理地址具體為物理地址phy_space+0xl6000處。本步驟中,trampoline代碼供目標(biāo)CPU在后續(xù)的熱插入初始化的過程中,執(zhí)行處理器暫停指令(Halt,HLT)ο
[0102]需要說明的是,trampoline代碼包括 trampoline_BP 和 trampoline_AP,其中,trampoline_BP為主處理器執(zhí)行的trampoline,即多處理器操作系統(tǒng)中首先初始化并執(zhí)行代碼的處理器執(zhí)行的trampoline ;trampoline_AP為從處理器執(zhí)行的trampoline,即多處理器操作系統(tǒng)中晚于主處理器初始化的其他處理器執(zhí)行的trampoline。因此,上述的Trampoline代碼均為trampoline_AP,各段Tramplione代碼跳轉(zhuǎn)的地址是不一樣的,跳轉(zhuǎn)效果也不一樣。[0103]204、Primary操作系統(tǒng)實(shí)例向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU進(jìn)行熱插入初始化,熱插入初始化為目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程。
[0104]本步驟中,Primary操作系統(tǒng)實(shí)例向目標(biāo)CPU發(fā)送觸發(fā)該目標(biāo)CPU進(jìn)行初始化和開啟的處理器間中斷IPI,并將該目標(biāo)CPU的標(biāo)識通知給Secondary操作系統(tǒng)實(shí)例。目標(biāo)CPU接收到IPI后,依次執(zhí)行步驟203中拷貝了三處的tramp0line_AP,完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換、Primary操作系統(tǒng)實(shí)例到Secondary操作系統(tǒng)實(shí)例的空間切換等一系列過程。具體的,本步驟包括如下子步驟:
[0105]2041、Primary操作系統(tǒng)實(shí)現(xiàn)向目標(biāo)CPU發(fā)送觸發(fā)該目標(biāo)CPU進(jìn)行初始化和開啟的處理器間中斷IPI。
[0106]2042、目標(biāo)CPU在機(jī)器物理地址執(zhí)行熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換。
[0107]具體的,目標(biāo)CPU接收到IPI后,從0X6000處執(zhí)行trampoline_AP之后,完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換。
[0108]2043、目標(biāo)CPU在第一物理地址執(zhí)行熱插入初始化代碼,從而完成從Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換。
[0109]具體的,目標(biāo)CPU切換到物理地址phy_space+0x6000處,繼續(xù)執(zhí)行trampoline_AP完成從Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換。
[0110]2044、目標(biāo)CPU在第二物理地址執(zhí)行熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
[0111]具體的,目標(biāo)CPU切換到物理地址phy_space+0xl6000處,繼續(xù)執(zhí)行trampoline_AP,并執(zhí)行HLT指令。
[0112]205、Primary操作系統(tǒng)實(shí)例檢測到目標(biāo)CPU完成熱插入初始化,則向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷。
[0113]具體的,在檢測到目標(biāo)CPU已經(jīng)執(zhí)行完trampoline_AP后,Primary操作系統(tǒng)實(shí)例修改Secondary操作系統(tǒng)實(shí)例的CPU分配狀態(tài)位圖,例如Secondary操作系統(tǒng)的MP Table,并向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,例如,APIC。
[0114]206、Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU。
[0115]具體的,接收到Primary操作系統(tǒng)實(shí)例發(fā)送的APIC后,Secondary操作系統(tǒng)實(shí)例掃描自身的MP Table,探測到目標(biāo)CPU,向該目標(biāo)CPU發(fā)送IPI。另外,Secondary操作系統(tǒng)實(shí)例執(zhí)行CPUJtotplug_begin,將目標(biāo)CPU置位,并在目標(biāo)CPU上運(yùn)行Idle進(jìn)程,從而完成Hot Plug 過程。
[0116]上述實(shí)施例一與實(shí)施例二是對在Secondary操作系統(tǒng)實(shí)例內(nèi)對CPU進(jìn)行Hot Plug的詳細(xì)說明。然而,現(xiàn)有技術(shù)中,Secondary操作系統(tǒng)實(shí)例在運(yùn)行的過程中,同樣存在無法在Secondary操作系統(tǒng)實(shí)例中實(shí)現(xiàn)熱關(guān)閉(Hot Unplugged)的問題。具體的,Secondary操作系統(tǒng)實(shí)例調(diào)用一系列函數(shù)完成一個CPU的關(guān)閉。以多處理器系統(tǒng)為Linux系統(tǒng)為例,該過程中,Secondary操作系統(tǒng)實(shí)例將目標(biāo)CPU,即待關(guān)閉CPU從Online Map和Present Map中移除,其中,Online Map為Linux中用于記錄當(dāng)前存在的CPU的位圖,Present Map為Linux中用于記錄當(dāng)前可用的CPU的位圖。然而,上述CPU的Hot Unplug的過程中,僅僅是將目標(biāo)CPU從Secondary操作系統(tǒng)實(shí)例中移除了,目標(biāo)CPU并沒有返回到Primary操作系統(tǒng)實(shí)例的資源池中,即無法在Secondary操作系統(tǒng)實(shí)例中實(shí)現(xiàn)熱關(guān)閉(Hot Unplugged)。下面,從Secondary操作系統(tǒng)實(shí)例對目標(biāo)CPU進(jìn)行Hot Unplug的角度對本發(fā)明進(jìn)行詳細(xì)傳輸。
[0117]圖3為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例三的流程圖。本實(shí)施例適用于具有Primary操作系統(tǒng)實(shí)例與至少一個Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),應(yīng)用于Secondary操作系統(tǒng)需要對目標(biāo)CPU進(jìn)行Hot Unplug的情景。具體的,本實(shí)施例包括如下步驟:
[0118]301、Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,以使得目標(biāo)CPU執(zhí)行處理器暫停指令HLT ;
[0119]本步驟中,Secondary操作系統(tǒng)清空目標(biāo)CPU上的工作隊(duì)列,并令目標(biāo)CPU執(zhí)行處理器暫停指令HLT,使得目標(biāo)CPU處于暫停轉(zhuǎn)態(tài),以等待一次外部中斷的到來。
[0120]302、Secondary操作系統(tǒng)實(shí)例將目標(biāo)CPU標(biāo)識為空閑CPU。
[0121]Secondary操作系統(tǒng)將自身CPU分配狀態(tài)位圖中的CPU標(biāo)識為空閑CPU,例如,置零該CPU。
[0122]303、Secondary操作系統(tǒng)實(shí)例向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,以使得Primary操作系統(tǒng)實(shí)例將目標(biāo)CPU存儲到多處理系統(tǒng)的CPU資源池。
[0123]在將CPU標(biāo)識為空閑后,Secondary操作系統(tǒng)實(shí)例將該CPU的標(biāo)識發(fā)送給Primary操作系統(tǒng)實(shí)例,使得Primary操作系統(tǒng)實(shí)例根據(jù)目標(biāo)CPU的標(biāo)識,將自身的CPU分配狀態(tài)位圖,即多處理器系統(tǒng)的CPU分配位圖中的目標(biāo)CPU置零,從而將目標(biāo)CPU存儲到多處理系統(tǒng)的CPU資源池中。
[0124]本發(fā)明實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)方法中,Secondary操作系統(tǒng)實(shí)例將待拔出CPU上的工作隊(duì)列清除,將其標(biāo)識為空閑CPU,并向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,使得Primary操作系統(tǒng)實(shí)例將目標(biāo)CPU存儲到多處理系統(tǒng)的CPU資源池,為Secondary操作系統(tǒng)實(shí)例內(nèi)進(jìn)行動態(tài)CPU資源調(diào)整提供底層技術(shù)支撐,使得從Secondary操作系統(tǒng)實(shí)例中釋放出的CPU最終能夠歸還到Primary操作系統(tǒng)實(shí)例,在Secondary操作系統(tǒng)實(shí)例中實(shí)現(xiàn)熱關(guān)閉。
[0125]圖4為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)方法實(shí)施例四的流程圖。本實(shí)施例適用于具有Primary操作系統(tǒng)實(shí)例與至少一個Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),應(yīng)用于Secondary操作系統(tǒng)需要對目標(biāo)CPU進(jìn)行Hot Unplug的情景。在上述實(shí)施例一的基礎(chǔ)上,本實(shí)施例中,多處理器操作系統(tǒng)具體為Rainforest系統(tǒng)。具體的,本實(shí)施例包括如下步驟:
[0126]401、Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)中央處理器CPU。
[0127]具體的,Secondary操作系統(tǒng)實(shí)例從當(dāng)前處于在線(online),即運(yùn)行狀態(tài)的CPU中選擇一個CPU作為目標(biāo)CPU,執(zhí)行熱關(guān)閉(Hot Unplug)操作,即執(zhí)行CPUJtot Unplug,該操作具有獨(dú)占性,即是不可搶占的。
[0128]402、Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,以使得目標(biāo)CPU執(zhí)行處理器暫停指令HLT。
[0129]具體的,Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,即清除目標(biāo)CPU上運(yùn)行的APIC信息,以及運(yùn)行的進(jìn)程等,直至目標(biāo)CPU上無進(jìn)行運(yùn)行,目標(biāo)CPU執(zhí)行HLT。
[0130]403、Secondary操作系統(tǒng)實(shí)例將目標(biāo)CPU標(biāo)識為空閑CPU。[0131]Secondary操作系統(tǒng)實(shí)例修改相應(yīng)的數(shù)據(jù)結(jié)構(gòu),如自身的CPU分配狀態(tài)位圖一MPTable等,置零目標(biāo)CPU,使其處于離線(offline),即空閑狀態(tài)。
[0132]404,Secondary操作系統(tǒng)實(shí)例判斷是否需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例。
[0133]Secondary操作系統(tǒng)實(shí)例根據(jù)自身的情況等,如下一時(shí)間段的負(fù)荷程度等,判斷是否需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例。若判斷出無需將目標(biāo)CPU歸還給Primary操作系統(tǒng)實(shí)例,則該目標(biāo)CPU等待再次激活;若判斷出需要將目標(biāo)CPU歸還給Primary操作系統(tǒng)實(shí)例,則置零Present MP中的相應(yīng)位,并將目標(biāo)CPU的標(biāo)識,如APIC-1D傳遞給Primary操作系統(tǒng)實(shí)例。
[0134]405、Primary操作系統(tǒng)實(shí)例述目標(biāo)CPU存儲到所述多處理系統(tǒng)的CPU資源池。
[0135]本步驟中,Primary操作系統(tǒng)實(shí)例接收到APIC-1D后,修改自身的,即多處理器系統(tǒng)的CPU分配狀態(tài)位圖,從而將目標(biāo)CPU納入到Primary操作系統(tǒng)實(shí)例的系統(tǒng)資源中。
[0136]圖5為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例一的結(jié)構(gòu)示意圖。本實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置可設(shè)置在多處理器操作系統(tǒng)的Primary操作系統(tǒng)實(shí)例上,也可以是Primary操作系統(tǒng)實(shí)例本身,是與本發(fā)明圖1實(shí)施例對應(yīng)的裝置實(shí)施例,具體實(shí)現(xiàn)過程在此不再贅述。具體的,本實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置100具體包括:
[0137]配置模塊11,用于為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,熱插入初始化代碼包括在Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼;
[0138]第一發(fā)送模塊12,用于向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU進(jìn)行熱插入初始化,熱插入初始化為目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程;
[0139]檢測模塊13,用于檢測目標(biāo)CPU是否完成熱插入初始化;
[0140]第二發(fā)送模塊14,還用于若檢測模塊13檢測到Primary操作系統(tǒng)實(shí)例檢測到目標(biāo)CPU完成熱插入初始化,則向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU。
[0141]本發(fā)明實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置,Primary操作系統(tǒng)實(shí)例為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,并向目標(biāo)CPU發(fā)送IPI,使得目標(biāo)CPU完成熱插入初始化。當(dāng)檢測出目標(biāo)CPU完成熱插入初始化后,向Secondary操作系統(tǒng)實(shí)例發(fā)送用于啟動目標(biāo)CPU的APIC中斷,使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU,從而為Secondary操作系統(tǒng)實(shí)例內(nèi)進(jìn)行動態(tài)CPU資源調(diào)整提供底層技術(shù)支撐,將Primary操作系統(tǒng)實(shí)例中的空閑CPU熱插入到Secondary操作系統(tǒng),實(shí)現(xiàn)在Secondary操作系統(tǒng)內(nèi)實(shí)現(xiàn)CPU的 HotPlug。
[0142]圖6為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例二的結(jié)構(gòu)示意圖。如圖6所示,本實(shí)施例的中央處理器熱插拔的實(shí)現(xiàn)裝置200在圖5裝置結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步的,配置模塊11包括:
[0143]第一配置模塊111,用于在Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置熱插入初始化代碼;
[0144]第二配置模塊112,用于在Secondary操作系統(tǒng)實(shí)例的第一物理地址配置熱插入初始化代碼,第一物理地址為低地址;
[0145]第三配置模塊113,用于在Secondary操作系統(tǒng)實(shí)例的第二物理地址配置熱插入初始化代碼,第二物理地址為低地址,第一物理地址與第二物理地址為不同的低地址。
[0146]再請參照圖6,進(jìn)一步的,第一發(fā)送模塊12包括:
[0147]第一發(fā)送單元121,用于向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU在機(jī)器物理地址執(zhí)行熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換;
[0148]第二發(fā)送單元122,用于向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU在第一物理地址執(zhí)行熱插入初始化代碼,從而完成從Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換;
[0149]第三發(fā)送單元123,用于向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU在第二物理地址執(zhí)行熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
[0150]再請參照圖6,進(jìn)一步的,中央處理器熱插拔的實(shí)現(xiàn)裝置200還包括:
[0151]判斷模塊15,用于判斷Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值;
[0152]選擇模塊16,用于若判斷模塊15判斷出Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量小于預(yù)設(shè)的閥值,則為Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)CPU。
[0153]進(jìn)一步的,選擇模塊16,用于根據(jù)CPU分配狀態(tài)位圖,為Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)CPU,CPU分配狀態(tài)位圖記錄多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。
[0154]圖7為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例三的結(jié)構(gòu)示意圖。本實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置可設(shè)置在多處理器操作系統(tǒng)的Secondary操作系統(tǒng)實(shí)例上,也可以是Secondary操作系統(tǒng)實(shí)例本身,是與本發(fā)明圖3實(shí)施例對應(yīng)的裝置實(shí)施例,具體實(shí)現(xiàn)過程在此不再贅述。具體的,本實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置300具體包括:
[0155]處理模塊21,用于清空目標(biāo)CPU上的工作隊(duì)列,以使得目標(biāo)CPU執(zhí)行處理器暫停指令 HLT ;
[0156]標(biāo)識模塊22,用于將目標(biāo)CPU標(biāo)識為空閑CPU ;
[0157]發(fā)送模塊23,用于向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,以使得Primary操作系統(tǒng)實(shí)例將目標(biāo)CPU存儲到多處理系統(tǒng)的CPU資源池。
[0158]本發(fā)明實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置,Secondary操作系統(tǒng)實(shí)例將待拔出CPU上的工作隊(duì)列清除,將其標(biāo)識為空閑CPU,并向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,使得Primary操作系統(tǒng)實(shí)例將目標(biāo)CPU存儲到多處理系統(tǒng)的CPU資源池,為Secondary操作系統(tǒng)實(shí)例內(nèi)進(jìn)行動態(tài)CPU資源調(diào)整提供底層技術(shù)支撐,使得從Secondary操作系統(tǒng)實(shí)例中釋放出的CPU最終能夠歸還到Primary操作系統(tǒng)實(shí)例,在Secondary操作系統(tǒng)實(shí)例中實(shí)現(xiàn)熱關(guān)閉。
[0159]圖8為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例四的結(jié)構(gòu)示意圖。如圖8所示,本實(shí)施例的中央處理器熱插拔的實(shí)現(xiàn)裝置400在圖7裝置結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步的,還包括:
[0160]選擇模塊24,用于選擇目標(biāo)中央處理器CPU。
[0161]再請參照圖8,進(jìn)一步的,中央處理器熱插拔的實(shí)現(xiàn)裝置400還包括:[0162]判斷模塊25,用于判斷是否需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例;
[0163]發(fā)送模塊23,用于若判斷模塊判斷出需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例,貝1J向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識。
[0164]圖9為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例五的結(jié)構(gòu)示意圖。如圖9所示,本實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置500包括處理器31和存儲器32。中央處理器熱插拔的實(shí)現(xiàn)裝置500還可以包括發(fā)射器33、接收器34。發(fā)射器33和接收器34可以和處理器31相連。其中,發(fā)射器33用于發(fā)送數(shù)據(jù)或信息,接收器34用于接收數(shù)據(jù)或信息,存儲器32存儲執(zhí)行指令,當(dāng)中央處理器熱插拔的實(shí)現(xiàn)裝置500運(yùn)行時(shí),處理器31與存儲器32之間通信,處理器31調(diào)用存儲器32中的執(zhí)行指令,用于執(zhí)行以下操作:
[0165]為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,熱插入初始化代碼包括在Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼;
[0166]向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU進(jìn)行熱插入初始化,熱插入初始化為目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程;
[0167]檢測目標(biāo)CPU是否完成熱插入初始化;
[0168]若檢測到目標(biāo)CPU完成熱插入初始化,則向Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使Secondary操作系統(tǒng)實(shí)例熱插入目標(biāo)CPU。
[0169]進(jìn)一步的,為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,包括:
[0170]在Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置熱插入初始化代碼;
[0171]在Secondary操作系統(tǒng)實(shí)例的第一物理地址配置熱插入初始化代碼,第一物理地址為低地址;
[0172]在Secondary操作系統(tǒng)實(shí)例的第二物理地址配置熱插入初始化代碼,第二物理地址為低地址,第一物理地址與第二物理地址為不同的低地址。
[0173]進(jìn)一步的,向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU進(jìn)行熱插入初始化,包括:
[0174]向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU在機(jī)器物理地址執(zhí)行熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換;
[0175]向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU在第一物理地址執(zhí)行熱插入初始化代碼,從而完成從Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換;
[0176]向目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)目標(biāo)CPU在第二物理地址執(zhí)行熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
[0177]進(jìn)一步的,為Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼之前,還包括:
[0178]判斷Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值;
[0179]若小于,則為Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)CPU。
[0180]進(jìn)一步的,為Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)CPU,包括:
[0181]根據(jù)CPU分配狀態(tài)位圖,為Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)CPU,CPU分配狀態(tài)位圖記錄多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。
[0182]圖10為本發(fā)明中央處理器熱插拔的實(shí)現(xiàn)裝置實(shí)施例六的結(jié)構(gòu)示意圖。如圖10所示,本實(shí)施例提供的中央處理器熱插拔的實(shí)現(xiàn)裝置600包括處理器41和存儲器42。中央處理器熱插拔的實(shí)現(xiàn)裝置600還可以包括發(fā)射器43、接收器44。發(fā)射器43和接收器44可以和處理器41相連。其中,發(fā)射器43用于發(fā)送數(shù)據(jù)或信息,接收器44用于接收數(shù)據(jù)或信息,存儲器42存儲執(zhí)行指令,當(dāng)中央處理器熱插拔的實(shí)現(xiàn)裝置600運(yùn)行時(shí),處理器41與存儲器42之間通信,處理器31調(diào)用存儲器32中的執(zhí)行指令,用于執(zhí)行以下操作:
[0183]清空目標(biāo)CPU上的工作隊(duì)列,以使得目標(biāo)CPU執(zhí)行處理器暫停指令HLT ;
[0184]將目標(biāo)CPU標(biāo)識為空閑CPU ;
[0185]向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,以使得Primary操作系統(tǒng)實(shí)例將目標(biāo)CPU存儲到多處理系統(tǒng)的CPU資源池。
[0186]進(jìn)一步的,清空目標(biāo)CPU上的工作隊(duì)列,以使得目標(biāo)CPU執(zhí)行處理器暫停指令HLT之前,包括:
[0187]選擇目標(biāo)中央處理器CPU。
[0188]進(jìn)一步的,將目標(biāo)CPU標(biāo)識為空閑CPU之后,Secondary操作系統(tǒng)實(shí)例向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識之前,包括:
[0189]判斷是否需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例;
[0190]向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,包括:
[0191]若判斷判斷出需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例,則向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識。
[0192]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0193]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種中央處理器熱插拔的實(shí)現(xiàn)方法,其特征在于,適用于具有原始Primary操作系統(tǒng)實(shí)例與至少一個第二 Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),該方法包括: 所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,所述熱插入初始化代碼包括在所述Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),所述目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼; 所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化,所述熱插入初始化為所述目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程; 所述Primary操作系統(tǒng)實(shí)例檢測所述目標(biāo)CPU是否完成所述熱插入初始化; 若所述Primary操作系統(tǒng)實(shí)例檢測到所述目標(biāo)CPU完成所述熱插入初始化,則向所述Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使所述Secondary操作系統(tǒng)實(shí)例熱插入所述目標(biāo)CPU。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,包括: 所述Primary操作系統(tǒng)實(shí)例在所述Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置所述熱插入初始化代碼; 所述Primary操作系統(tǒng)實(shí)例在所述Secondary操作系統(tǒng)實(shí)例的第一物理地址配置所述熱插入初始化代碼,所述第一物理地址為低地址; 所述Primary操作系 統(tǒng)實(shí)例在所述Secondary操作系統(tǒng)實(shí)例的第二物理地址配置所述熱插入初始化代碼,所述第二物理地址為低地址,所述第一物理地址與所述第二物理地址為不同的低地址。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化,包括: 所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述機(jī)器物理地址執(zhí)行所述熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換; 所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第一物理地址執(zhí)行所述熱插入初始化代碼,從而完成從所述Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換; 所述Primary操作系統(tǒng)實(shí)例向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第二物理地址執(zhí)行所述熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
4.根據(jù)權(quán)利要求1~3任一項(xiàng)所述的方法,其特征在于,所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼之前,還包括: 所述Primary操作系統(tǒng)實(shí)例判斷所述Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值; 若小于,則所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU。
5.根據(jù)權(quán)利要求4所述的方法,所述Primary操作系統(tǒng)實(shí)例為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU,包括: 所述Primary操作系統(tǒng)實(shí)例根據(jù)CPU分配狀態(tài)位圖,為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU,所述CPU分配狀態(tài)位圖記錄所述多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。
6.—種中央處理器熱插拔的實(shí)現(xiàn)方法,其特征在于,適用于具有原始Primary操作系統(tǒng)實(shí)例與至少一個第二 Secondary操作系統(tǒng)實(shí)例的多處理器操作系統(tǒng),該方法包括: 所述Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,以使得所述目標(biāo)CPU執(zhí)行處理器暫停指令HLT ; 所述Secondary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU標(biāo)識為空閑CPU ; 所述Secondary操作系統(tǒng)實(shí)例向所述Primary操作系統(tǒng)實(shí)例發(fā)送所述目標(biāo)CPU的標(biāo)識,以使得所述Primary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU存儲到所述多處理系統(tǒng)的CPU資源池。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述Secondary操作系統(tǒng)實(shí)例清空目標(biāo)CPU上的工作隊(duì)列,以使得所述目標(biāo)CPU執(zhí)行處理器暫停指令HLT之前,包括: 所述Secondary操作系統(tǒng)實(shí)例選擇目標(biāo)中央處理器CPU。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述Secondary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU標(biāo)識為空閑CPU之后,所述Secondary操作系統(tǒng)實(shí)例向所述Primary操作系統(tǒng)實(shí)例發(fā)送所述目標(biāo)CPU的標(biāo)識之前,包括: 所述Secondary操作系統(tǒng)實(shí)例判斷是否需要將所述目標(biāo)CPU返回給所述Primary操作系統(tǒng)實(shí)例; Secondary操作系統(tǒng)實(shí)例向Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識,包括: 若Secondary操作系統(tǒng)實(shí)例判斷判斷`出需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例,則向所述Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識。
9.一種中央處理器熱插拔的實(shí)現(xiàn)裝置,其特征在于,包括: 配置模塊,用于為所述Secondary操作系統(tǒng)實(shí)例配置熱插入初始化代碼,所述熱插入初始化代碼包括在所述Secondary操作系統(tǒng)中插入目標(biāo)中央處理器CPU時(shí),所述目標(biāo)CPU進(jìn)行熱插入所需的功能性代碼; 第一發(fā)送模塊,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU進(jìn)行熱插入初始化,所述熱插入初始化為所述目標(biāo)CPU進(jìn)行熱插入時(shí)的初始化過程; 檢測模塊,用于檢測所述目標(biāo)CPU是否完成所述熱插入初始化; 第二發(fā)送模塊,還用于若所述檢測模塊檢測到所述Primary操作系統(tǒng)實(shí)例檢測到所述目標(biāo)CPU完成所述熱插入初始化,則向所述Secondary操作系統(tǒng)實(shí)例發(fā)送中斷,以使所述Secondary操作系統(tǒng)實(shí)例熱插入所述目標(biāo)CPU。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述配置模塊包括: 第一配置模塊,用于在所述Primary操作系統(tǒng)實(shí)例的機(jī)器物理地址配置所述熱插入初始化代碼; 第二配置模塊,用于在所述Secondary操作系統(tǒng)實(shí)例的第一物理地址配置所述熱插入初始化代碼,所述第一物理地址為低地址; 第三配置模塊,用于在所述Secondary操作系統(tǒng)實(shí)例的第二物理地址配置所述熱插入初始化代碼,所述第二物理地址為低地址,所述第一物理地址與所述第二物理地址為不同的低地址。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第一發(fā)送模塊包括: 第一發(fā)送單元,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述機(jī)器物理地址執(zhí)行所述熱插入初始化代碼,從而完成實(shí)模式到保護(hù)模式的轉(zhuǎn)換; 第二發(fā)送單元,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第一物理地址執(zhí)行所述熱插入初始化代碼,從而完成從所述Primary操作系統(tǒng)實(shí)例的空間到Secondary操作系統(tǒng)實(shí)例的空間的轉(zhuǎn)換; 第三發(fā)送單元,用于向所述目標(biāo)CPU發(fā)送處理器間中斷IPI,以觸發(fā)所述目標(biāo)CPU在所述第二物理地址執(zhí)行所述熱插入初始化代碼,并執(zhí)行處理器暫停指令HLT。
12.根據(jù)權(quán)利要求9~11任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于判斷所述Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量是否小于預(yù)設(shè)的閥值; 選擇模塊,用于若所述判斷模塊判斷出所述Secondary操作系統(tǒng)實(shí)例中的CPU數(shù)量小于預(yù)設(shè)的閥值,則為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述選擇模塊,用于根據(jù)CPU分配狀態(tài)位圖,為所述Secondary操作系統(tǒng)實(shí)例選擇所述目標(biāo)CPU,所述CPU分配狀態(tài)位圖記錄所述多處理器操作系統(tǒng)中的各CPU的分配狀態(tài)。
14.一種中央處理器熱插拔的實(shí)現(xiàn)裝置,其特征在于,包括: 處理模塊,用于清空目標(biāo)CPU上的工作隊(duì)列,以使得所述目標(biāo)CPU執(zhí)行處理器暫停指令HLT ; 標(biāo)識模塊,用于將所述目標(biāo)CPU標(biāo)識為空閑CPU ; 發(fā)送模塊,用于向所述Primary操作系統(tǒng)實(shí)例發(fā)送所述目標(biāo)CPU的標(biāo)識,以使得所述Primary操作系統(tǒng)實(shí)例將所述目標(biāo)CPU存儲到所述多處理系統(tǒng)的CPU資源池。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述裝置還包括: 選擇模塊, 用于選擇目標(biāo)中央處理器CPU。
16.根據(jù)權(quán)利要求14或15所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于判斷是否需要將所述目標(biāo)CPU返回給所述Primary操作系統(tǒng)實(shí)例;所述發(fā)送模塊,用于若所述判斷模塊判斷出需要將目標(biāo)CPU返回給Primary操作系統(tǒng)實(shí)例,則向所述Primary操作系統(tǒng)實(shí)例發(fā)送目標(biāo)CPU的標(biāo)識。
【文檔編號】G06F9/50GK103699444SQ201310694881
【公開日】2014年4月2日 申請日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
【發(fā)明者】薛棟梁, 解壁偉, 高云偉, 詹劍鋒 申請人:華為技術(shù)有限公司, 中國科學(xué)院計(jì)算技術(shù)研究所