亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

中央處理器熱插拔的實(shí)現(xiàn)方法及裝置的制作方法

文檔序號(hào):6339334閱讀:316來源:國(guó)知局
專利名稱:中央處理器熱插拔的實(shí)現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種中央處理器熱插拔的實(shí)現(xiàn)方法及裝置。
背景技術(shù)
隨著需求的不斷增長(zhǎng),越來越強(qiáng)大的處理器被應(yīng)用于嵌入式領(lǐng)域,然而,在多 核中央處理器(Central Processing Unit,簡(jiǎn)稱為CPU)帶來強(qiáng)大處理能力的同時(shí),也存在 一個(gè)不可避免的問題,即功耗問題。目前市場(chǎng)上一些多核MIPS處理器,功耗都不低, 一些8核乃至16核CPU,最大功耗在40-50W之間(即,滿負(fù)荷工作狀態(tài))。如果在設(shè) 備中為了獲得更高的處理能力而采用多個(gè)多核CPU,則功耗必將成為設(shè)備一大問題。為 了解決這個(gè)問題,可以采用CPU熱插拔的方法,CPU熱插拔不完全指物理熱插拔,還包 括在系統(tǒng)軟件層次的熱插拔,包括如動(dòng)態(tài)的禁止、使能某一個(gè)或者幾個(gè)物理核心,以達(dá) 到根據(jù)業(yè)務(wù)調(diào)整CPU使用核心,降低功耗的作用。
在現(xiàn)有技術(shù)中,雖然提出了使用CPU熱插播的方式,但是,并沒有提出CPU熱 插拔的具體實(shí)現(xiàn)方法,尤其沒有提出對(duì)于MIPS處理器的CPU熱插播的處理方式。發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種中央處理器熱插拔的實(shí)現(xiàn)方法及裝置,以至少 解決上述問題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種中央處理器熱插拔的實(shí)現(xiàn)方法,包括接 收到用于指示殺死或激活中央處理器CPU的指令;進(jìn)行與所述指令對(duì)應(yīng)的殺死操作或激 活操作,其中,所述殺死操作包括如下步驟禁用所述CPU;接收到用于指示所述CPU 掛起的信息;所述CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài);所述激活操作包括如下步驟接 收到用于指示所述CPU喚起的信息,所述CPU設(shè)置好引導(dǎo)上下文,引導(dǎo)內(nèi)核執(zhí)行所述 CPU的引導(dǎo)流程。
優(yōu)選地,在接收到的所述用于指示所述CPU掛起的信息和所述用于指示所述 CPU喚起的信息為核間中斷的情況下,所述CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài)之前,還 包括所述CPU退出中斷上下文;所述引導(dǎo)內(nèi)核執(zhí)行所述CPU的引導(dǎo)流程之前,還包 括所述CPU退出中斷上下文。
優(yōu)選地,禁用所述CPU包括對(duì)發(fā)送到所述CPU的中斷進(jìn)行遷移;禁止向所述 CPU發(fā)送中斷。
優(yōu)選地,對(duì)發(fā)送到所述CPU的中斷進(jìn)行遷移包括檢查所述CPU是否被專門定 制處理預(yù)定的中斷,如果是,則默認(rèn)重定位所述預(yù)定的中斷到主CPU。
優(yōu)選地,在接收到的所述用于指示所述CPU掛起的信息和所述用于指示所述 CPU喚起的信息為核間中斷的情況下,禁止向所述CPU發(fā)送中斷包括禁止向所述CPU 發(fā)送除所述核間中斷之外的所有中斷。
優(yōu)選地,接收所述用于指示殺死或激活中央處理器CPU的指令包括通過預(yù)先 創(chuàng)建的內(nèi)核輔助線程接收所述用于指示殺死或激活中央處理器CPU的指令。
優(yōu)選地,接收所述用于指示殺死或激活中央處理器CPU的指令包括通過sysfs 文件系統(tǒng)接口接收所述用于指示殺死或激活中央處理器CPU的指令。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種中央處理器熱插拔的實(shí)現(xiàn)裝置,包 括接收模塊,用于接收到用于指示殺死或激活中央處理器CPU的指令;執(zhí)行模塊,用 于進(jìn)行與所述指令對(duì)應(yīng)的殺死操作或激活操作,其中,所述殺死操作包括如下步驟禁 用所述CPU;接收到用于指示所述CPU掛起的信息;所述CPU設(shè)置睡眠環(huán)境,進(jìn)入睡 眠狀態(tài);所述激活操作包括如下步驟接收到用于指示所述CPU喚起的信息,所述CPU 設(shè)置好弓I導(dǎo)上下文,引導(dǎo)內(nèi)核執(zhí)行所述CPU的弓I導(dǎo)流程。
優(yōu)選地,在執(zhí)行模塊接收到的所述用于指示所述CPU掛起的信息和所述用于指 示所述CPU喚起的信息為核間中斷的情況下,所述CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài)之 前,所述CPU退出中斷上下文;所述引導(dǎo)內(nèi)核執(zhí)行所述CPU的引導(dǎo)流程之前,所述CPU 退出中斷上下文。
優(yōu)選地,所述執(zhí)行模塊在禁用所述CPU的過程中還用于,對(duì)發(fā)送到所述CPU的 中斷進(jìn)行遷移;禁止向所述CPU發(fā)送中斷。
通過本發(fā)明,采用動(dòng)態(tài)的禁止/使能多核處理器中的一個(gè)或者多個(gè)核心,解決 了現(xiàn)有技術(shù)中并沒有提出CPU熱插拔的具體實(shí)現(xiàn)方法的問題,進(jìn)而達(dá)到了降低功耗的效: O


此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本 發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖 中
圖1是根據(jù)本發(fā)明實(shí)施例的中央處理器熱插拔的實(shí)現(xiàn)方法的流程圖2是根據(jù)本發(fā)明實(shí)施例的中央處理器熱插拔的實(shí)現(xiàn)裝置的結(jié)構(gòu)框圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔殺 死CPU流程圖(MIPS體系架構(gòu)處理流程);
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔殺 死CPU流程圖(目標(biāo)CPU處理流程);
圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔激 活CPU流程圖(MIPS體系架構(gòu)處理流程);
圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔激 活CPU流程圖(目標(biāo)CPU處理流程)。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突 的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
以下實(shí)施例基于Linux實(shí)現(xiàn),Linux作為一個(gè)目前被廣泛應(yīng)用的支持對(duì)稱多處理(Symmetrical Multi-Processing,簡(jiǎn)稱為SMP)的操作系統(tǒng),它在系統(tǒng)軟件層次上支持CPU的熱插拔,這是能稱其為某種體系實(shí)現(xiàn)熱插拔的前提。對(duì)于不同的處理器體系架構(gòu),實(shí) 現(xiàn)并不相同,例如,即使對(duì)X86、POWERPC> ARM等少數(shù)幾種架構(gòu)支持了 CPU熱插 拔,對(duì)于MIPS架構(gòu)的CPU不一定支持,更何況目前的標(biāo)準(zhǔn)Linux內(nèi)核并不支持MIPS處 理器體系架構(gòu)的CPU熱插拔。以下實(shí)施例尤其適用于MIPS處理器體系架構(gòu)的CPU的熱 插拔,但是也可以應(yīng)用于其他架構(gòu)的熱插拔。
需要說明的是,雖然以下的實(shí)施例是基于Linux實(shí)現(xiàn)的,但是,對(duì)于其他的系統(tǒng) 只要其在系統(tǒng)軟件層次上支持CPU熱插拔,那么以下的實(shí)施例均可以適用。
本實(shí)施例中提出了一種中央處理器熱插拔的實(shí)現(xiàn)方法,圖1是根據(jù)本發(fā)明實(shí)施 例的中央處理器熱插拔的實(shí)現(xiàn)方法的流程圖,如圖1所示,該流程包括如下步驟
步驟S102,接收到用于指示殺死或激活中央處理器CPU的指令;
步驟S104,進(jìn)行與指令對(duì)應(yīng)的殺死操作或激活操作,其中,殺死操作包括如下 步驟禁用CPU;接收到用于指示CPU掛起的信息;該CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠 狀態(tài);激活操作包括如下步驟接收到用于指示CPU喚起的信息,該CPU設(shè)置好引導(dǎo)上 下文,引導(dǎo)內(nèi)核執(zhí)行該CPU的引導(dǎo)流程。優(yōu)選地,可以進(jìn)入CPU的小系統(tǒng)進(jìn)行與指令 對(duì)應(yīng)的殺死操作或激活操作。
通過本發(fā)明實(shí)施例的上述步驟,實(shí)現(xiàn)了支持CPU熱插拔的問題,可以降低功耗。
用于指示CPU掛起的信息和用于指示CPU喚起的信息可以采用多種方式,優(yōu)選 地,可以采用核間終端的方式來實(shí)現(xiàn),為了描述方便,在以下說明中將核間終端也可以 稱為SHIPI核間終端。在接收到的用于指示CPU掛起的信息和用于指示CPU喚起的信 息為核間中斷的情況下,對(duì)于殺死CPU操作而言,在該CPU退出中斷上下文之后,CPU 再設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài);對(duì)于激活CPU操作而言,在該CPU退出中斷上下文之 后,引導(dǎo)內(nèi)核再執(zhí)行該CPU的引導(dǎo)流程。
優(yōu)選的,在禁用CPU時(shí),可以采用先對(duì)發(fā)送到CPU的中斷進(jìn)行遷移,再禁止向 CPU發(fā)送中斷的步驟來進(jìn)行。例如,在遷移的時(shí)候,可以檢查CPU是否被專門定制處理 預(yù)定的中斷,如果是,則默認(rèn)重定位預(yù)定的中斷到主CPU。
當(dāng)然,在接收到的用于指示CPU掛起的信息和用于指示CPU喚起的信息為核間 中斷的情況下,那么就需要禁止向CPU發(fā)送除核間中斷之外的所有中斷。
優(yōu)選的,可以通過預(yù)先創(chuàng)建的內(nèi)核輔助線程接收用于指示殺死或激活中央處理 器CPU的指令。當(dāng)然,對(duì)于Linux系統(tǒng)而言,可以通過sysfs文件系統(tǒng)接口接收用于指 示殺死或激活中央處理器CPU的指令。
在本實(shí)施例中還提出了一種中央處理器熱插拔的實(shí)現(xiàn)裝置,該裝置用于實(shí)現(xiàn)上 述實(shí)施例及其優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過說明的,不再贅述,下面對(duì)該裝置中涉及到的 模塊進(jìn)行說明。圖2是根據(jù)本發(fā)明實(shí)施例的中央處理器熱插拔的實(shí)現(xiàn)裝置的結(jié)構(gòu)框圖, 如圖2所示,包括接收模塊22、執(zhí)行模塊M,下面對(duì)該結(jié)構(gòu)進(jìn)行說明。
接收模塊22,用于接收到用于指示殺死或激活中央處理器CPU的指令;執(zhí)行模 塊M連接至接收模塊22,用于進(jìn)行與指令對(duì)應(yīng)的殺死操作或激活操作,其中,殺死操作 包括如下步驟禁用CPU;接收到用于指示CPU掛起的信息;CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài);激活操作包括如下步驟接收到用于指示CPU喚起的信息,CPU設(shè)置好引導(dǎo) 上下文,引導(dǎo)內(nèi)核執(zhí)行CPU的引導(dǎo)流程。優(yōu)選地,可以進(jìn)入CPU的小系統(tǒng)進(jìn)行與指令 對(duì)應(yīng)的殺死操作或激活操作。
優(yōu)選地,在執(zhí)行模塊M接收到的用于指示CPU掛起的信息和用于指示CPU喚 起的信息為核間中斷的情況下,CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài)之前,CPU退出中斷 上下文;引導(dǎo)內(nèi)核執(zhí)行CPU的引導(dǎo)流程之前,CPU退出中斷上下文。
優(yōu)選地,執(zhí)行模塊M在禁用CPU的過程中還用于,對(duì)發(fā)送到CPU的中斷進(jìn)行 遷移;禁止向CPU發(fā)送中斷。
下面以實(shí)現(xiàn)Linux內(nèi)核版本2.6下MIPS體系架構(gòu)的CPU熱插拔支持為例進(jìn)行說明。
在本實(shí)施例中,實(shí)現(xiàn)Linux內(nèi)核版本2.6下MIPS體系架構(gòu)的CPU熱插拔支持 包括兩個(gè)部分一是Limix下MIPS體系架構(gòu)熱插拔處理流程,該流程需要和內(nèi)核熱插拔 功能緊密契合;二是目標(biāo)CPU上的熱插拔處理,包括其禁止、使能兩種情況下的處理。 下面對(duì)本實(shí)施例提供的殺死CPU和激活CPU兩個(gè)正逆流程,且上述兩種流程分別針對(duì) MIPS體系架構(gòu)和目標(biāo)CPU上的實(shí)現(xiàn)。該方法包含以下處理
(1)為熱插拔功能創(chuàng)建一個(gè)內(nèi)核輔助線程(cpujic^plugjielper),用于接受來自用戶的殺死、激活指令,發(fā)起熱插拔流程;
(2)對(duì)于殺死CPU流程,進(jìn)入MIPS小系統(tǒng)處理流程通知內(nèi)核停止內(nèi)核守護(hù)線程等。
(A)創(chuàng)建內(nèi)核停止線程,專門用于處理CPU DOWN事物。
(B)禁用 CPU ;
(a)禁用 CPU ;
(i)遷移中斷;
檢查PIC中斷控制器中的每一個(gè)中斷是否需要發(fā)送到當(dāng)前CPU ;如果會(huì)發(fā)送到 當(dāng)前CPU,則檢查當(dāng)前核是否被專門制定處理該中斷,如果是則默認(rèn)重定位該中斷到主 CPU (0 核);
( )禁用中斷
禁止PIC向當(dāng)前CPU發(fā)送中斷(保留SHIPI中斷);禁止當(dāng)前CPU協(xié)處理器0 中中斷屏蔽寄存器(保留SHIPI中斷)。
(b)殺死 CPU
(i)殺死 CPU
向目標(biāo)CPU發(fā)送SHIPI_DOWN核間中斷,通告當(dāng)前CPU應(yīng)該掛起;
目標(biāo)CPU接收到SHIPI_DOWN核間中斷之后,設(shè)置睡眠環(huán)境;以便CPU在退出中斷處理之后,立即睡眠;
目標(biāo)CPU退出中斷之后,跳轉(zhuǎn)到睡眠函數(shù),進(jìn)入睡眠狀態(tài)。
(3)對(duì)于激活CPU流程,進(jìn)入MIPS小系統(tǒng)處理流程。
(A) MIPS 小系統(tǒng)喚醒 CPU
(i)向目標(biāo)CPU發(fā)送SHIPIJJP核間中斷,通知UP消息
(ii)目標(biāo)CPU的SHIPIJJP中斷處理中,設(shè)置好引導(dǎo)上下文,使得當(dāng)前CPU在退出SHIPIJJP中斷之后直接進(jìn)入二次引導(dǎo)流程。
(iii)退出中斷之后,從核執(zhí)行多核引導(dǎo)流程,開始二次引導(dǎo);完成之后登記當(dāng) 前CPU在線。
綜上可知,本實(shí)施例的包括以下幾個(gè)部分(1)使用熱插拔輔助線程來啟動(dòng) CPU熱插拔操作;(2)提供一個(gè)完善的MIPS體系架構(gòu)CPU熱插拔處理流程;(3)為專用 CPU設(shè)計(jì)一個(gè)通過核間中斷來殺死、激活CPU的方式;(4)以及在基于(3)的情況下, 設(shè)計(jì)CPU中斷處理方案,使得CPU睡眠時(shí),必須退出中斷上下文;激活時(shí),引導(dǎo)內(nèi)核同 樣也必須退出中斷上下文。
通過上述實(shí)施例可以使得Linux內(nèi)核實(shí)現(xiàn)對(duì)MIPS處理器體系架構(gòu)的CPU熱插拔 功能支持,能夠在Linux應(yīng)用領(lǐng)域(服務(wù)器產(chǎn)品、個(gè)人電腦、嵌入式領(lǐng)域)發(fā)揮作用,對(duì) 于業(yè)務(wù)動(dòng)態(tài)適配、降低功耗有很好的經(jīng)濟(jì)價(jià)值。
下面以一款NETLOGIC/RMI XLR732CPU為例來說明針對(duì)一個(gè)MIPS64多核處理器的實(shí)現(xiàn)過程。下面對(duì)此進(jìn)行說明。
首先啟動(dòng)一個(gè)內(nèi)核熱插拔輔助線程來作為內(nèi)核守護(hù)線程(cpujiotplugjielper), 來處理熱插拔操作。在熱插拔輔助線程中,需要守護(hù)一個(gè)全局的命令結(jié)構(gòu)體,以等待來 自用戶的消息。在該數(shù)據(jù)結(jié)構(gòu)中,為每個(gè)CPU定義了一個(gè)cmd命令狀態(tài)字,這個(gè)命令 狀態(tài)字記錄用戶對(duì)CPU熱插拔指令,它具有三個(gè)狀態(tài)NON E/TAKE_DOWN/WAKE_ UP,通過sysfs文件系統(tǒng)提供的接口來改變。需要說明的是,在一般的情況下,熱插拔輔 助線程都是睡眠的,只有當(dāng)用戶輸入殺死、激活CPU的指令之后,才喚醒該輔助線程。
熱插拔可以分為兩個(gè)處理流程殺死CPU、激活CPU,前者可以用圖3、圖4來 描述,后者可以用圖5、圖6來描述。
圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔殺 死CPU流程圖(MIPS體系架構(gòu)處理流程),圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作 系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔殺死CPU流程圖(目標(biāo)CPU處理流程),下面結(jié)合圖 3和圖4對(duì)殺死CPU流程進(jìn)行說明。
當(dāng)內(nèi)核通過sysfs文件系統(tǒng)接口接收到要求某CPU DOWN指令時(shí),記錄下目標(biāo) CPU的cmd狀態(tài)為TAKE_DOWN,然后喚醒cpu_hc^plug_helper輔助線程發(fā)起熱插拔動(dòng) 作CpU_d0Wn()。在該內(nèi)核實(shí)現(xiàn)中,同時(shí)還要通知到調(diào)度器以停止綁定到各個(gè)CPU的內(nèi) 核守護(hù)線程等,然后再調(diào)用_cpu_down,進(jìn)入MIPS子系統(tǒng)的cpu down處理禁用CPU(_ cpu_disable)與真正殺死CPU (_cpu_die)。禁用CPU的動(dòng)作中,需要將目標(biāo)CPU上所有 活動(dòng)的部件禁用;最直觀的情況是,需要遷移中斷、禁止本地中斷。MIPS體系架構(gòu)實(shí)現(xiàn) 了兩個(gè)有關(guān) MIPS 架構(gòu)的公共處理接 口 plat_smp_migrate_interrupts 與 plat_smp_disable_ interrupts作為其公共處理流程要求的接口;需要說明的是,所有其它CPU如果需要實(shí)現(xiàn) 熱插拔功能的話,必須實(shí)現(xiàn)這兩個(gè)接口。本實(shí)施例中,遷移中斷會(huì)檢查所有將會(huì)發(fā)送到 本CPU的中斷;如果僅僅只發(fā)送到當(dāng)前CPU,那么為了保證不會(huì)丟失中斷,必須要將它 重定向到其它活動(dòng)CPU;本實(shí)施例中,默認(rèn)遷移到0號(hào)CPU(同時(shí)也作限定,0號(hào)CPU 不允許被殺死);然后禁用所有到目標(biāo)CPU的中斷。這里,因?yàn)楸A袅送ㄟ^核間中斷來 殺死、喚醒CPU的方式,因此在禁用中斷時(shí),需要保留SHIPI中斷。隨后及時(shí)真正殺死 CPU的流程_cpU_die。在這個(gè)流程實(shí)現(xiàn)當(dāng)中,需要從源向目標(biāo)CPU發(fā)送一個(gè)SHIPI_8DOWN的核間中斷,目標(biāo)CPU在收到核間中斷之后,準(zhǔn)備一個(gè)睡眠上下文,以讓CPU在 退出中斷處理之后立即陷入睡眠。
激活(喚醒)CPU是殺死CPU流程的反過程,但相對(duì)而言更為簡(jiǎn)單一些。圖5 是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Limix操作系統(tǒng)MIPS體系架構(gòu)下CPU熱插拔激活CPU流程 圖(MIPS體系架構(gòu)處理流程),圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的Linux操作系統(tǒng)MIPS體 系架構(gòu)下CPU熱插拔激活CPU流程圖(目標(biāo)CPU處理流程),下面結(jié)合圖5和圖6進(jìn)行 說明。
當(dāng)內(nèi)核通過sysfs文件系統(tǒng)接口接收到要求某CPU UP指令時(shí),記錄下目標(biāo)CPU 的cmd狀態(tài)為WAKEJJP,然后喚醒cpu_hc^phig_helper輔助線程發(fā)起熱插拔動(dòng)作cpu_ up()。在該內(nèi)核實(shí)現(xiàn)中,同時(shí)還要通知到調(diào)度器以準(zhǔn)備CPU UP的操作,然后再調(diào)用_ cpu_up,進(jìn)入MIPS子系統(tǒng)的cpuup處理;這里進(jìn)入從核的引導(dǎo)prom_boot_secondary。各 CPU必須實(shí)現(xiàn)plat_smp_wakeup_cpu函數(shù),以真正喚醒目標(biāo)CPU;本實(shí)施例中,源向目標(biāo) CPU發(fā)送一個(gè)SHIPIJJP核間中斷,之后等待目標(biāo)CPU主動(dòng)登記在線信息;目標(biāo)CPU在 收到SHIPIJJP核間中斷之后被喚醒,在中斷處理中,準(zhǔn)備重引導(dǎo)環(huán)境,需要準(zhǔn)備好全 局指針(GP)、堆棧6P)、返回時(shí)需要執(zhí)行的函數(shù),在退出中斷之后,開始標(biāo)準(zhǔn)的從CPU 引導(dǎo)流程。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通 用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所 組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而可以將它 們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或 者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于 任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的 技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的 任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種中央處理器熱插拔的實(shí)現(xiàn)方法,其特征在于,包括 接收到用于指示殺死或激活中央處理器CPU的指令; 進(jìn)行與所述指令對(duì)應(yīng)的殺死操作或激活操作,其中, 所述殺死操作包括如下步驟禁用所述CPU;接收到用于指示所述CPU掛起的信息;所述CPU設(shè)置睡眠環(huán)境, 進(jìn)入睡眠狀態(tài);所述激活操作包括如下步驟接收到用于指示所述CPU喚起的信息,所述CPU設(shè)置好引導(dǎo)上下文,引導(dǎo)內(nèi)核執(zhí)行 所述CPU的引導(dǎo)流程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在接收到的所述用于指示所述CPU掛 起的信息和所述用于指示所述CPU喚起的信息為核間中斷的情況下,所述CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài)之前,還包括所述CPU退出中斷上下文;所述引導(dǎo)內(nèi)核執(zhí)行所述CPU的引導(dǎo)流程之前,還包括所述CPU退出中斷上下文。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,禁用所述CPU包括 對(duì)發(fā)送到所述CPU的中斷進(jìn)行遷移;禁止向所述CPU發(fā)送中斷。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,對(duì)發(fā)送到所述CPU的中斷進(jìn)行遷移包括檢查所述CPU是否被專門定制處理預(yù)定的中斷,如果是,則默認(rèn)重定位所述預(yù)定的 中斷到主CPU。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,在接收到的所述用于指示所述CPU掛 起的信息和所述用于指示所述CPU喚起的信息為核間中斷的情況下,禁止向所述CPU發(fā) 送中斷包括禁止向所述CPU發(fā)送除所述核間中斷之外的所有中斷。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,接收所述用于指示殺死或激活中央處理 器CPU的指令包括通過預(yù)先創(chuàng)建的內(nèi)核輔助線程接收所述用于指示殺死或激活中央處理器CPU的指令。
7.根據(jù)權(quán)利要求1或6所述的方法,其特征在于,接收所述用于指示殺死或激活中央 處理器CPU的指令包括通過sysfs文件系統(tǒng)接口接收所述用于指示殺死或激活中央處理器CPU的指令。
8.—種中央處理器熱插拔的實(shí)現(xiàn)裝置,其特征在于,包括接收模塊,用于接收到用于指示殺死或激活中央處理器CPU的指令; 執(zhí)行模塊,用于進(jìn)行與所述指令對(duì)應(yīng)的殺死操作或激活操作,其中, 所述殺死操作包括如下步驟禁用所述CPU;接收到用于指示所述CPU掛起的信息;所述CPU設(shè)置睡眠環(huán)境, 進(jìn)入睡眠狀態(tài);所述激活操作包括如下步驟接收到用于指示所述CPU喚起的信息,所述CPU設(shè)置好引導(dǎo)上下文,引導(dǎo)內(nèi)核執(zhí)行 所述CPU的引導(dǎo)流程。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,在執(zhí)行模塊接收到的所述用于指示所述 CPU掛起的信息和所述用于指示所述CPU喚起的信息為核間中斷的情況下,所述CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài)之前,所述CPU退出中斷上下文; 所述引導(dǎo)內(nèi)核執(zhí)行所述CPU的弓I導(dǎo)流程之前,所述CPU退出中斷上下文。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述執(zhí)行模塊在禁用所述CPU的過程 中還用于,對(duì)發(fā)送到所述CPU的中斷進(jìn)行遷移;禁止向所述CPU發(fā)送中斷。
全文摘要
本發(fā)明公開了中央處理器熱插拔的實(shí)現(xiàn)方法及裝置,該方法包括接收到用于指示殺死或激活中央處理器CPU的指令;進(jìn)行與指令對(duì)應(yīng)的殺死操作或激活操作,其中,殺死操作包括如下步驟禁用CPU;接收到用于指示CPU掛起的信息;CPU設(shè)置睡眠環(huán)境,進(jìn)入睡眠狀態(tài);激活操作包括如下步驟接收到用于指示CPU喚起的信息,CPU設(shè)置好引導(dǎo)上下文,引導(dǎo)內(nèi)核執(zhí)行CPU的引導(dǎo)流程。通過本發(fā)明達(dá)到了降低功耗的效果。
文檔編號(hào)G06F1/32GK102023898SQ201010598479
公開日2011年4月20日 申請(qǐng)日期2010年12月21日 優(yōu)先權(quán)日2010年12月21日
發(fā)明者劉強(qiáng) 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1