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

一種多核cpu的切換方法

文檔序號:6401752閱讀:498來源:國知局
專利名稱:一種多核cpu的切換方法
技術領域
本發(fā)明涉及計算機技術領域,特別涉及一種多核CPU的切換方法。
背景技術
CPU包括引導處理器BSP、應用處理器AP,是計算機的運算核心和控制核心。對于安裝有兩顆CPU的服務器主板,假設每顆CPU有四個內(nèi)核,則兩顆CPU共八個內(nèi)核,這樣,整個系統(tǒng)就相當于有一個BSP和七個AP。也就是說,所述BSP擔負系統(tǒng)啟動和運行操作系統(tǒng)OS的主要線程,因此BSP有且僅有一個,而AP有無均可。操作系統(tǒng)DOS主要是一種面向磁盤的系統(tǒng)軟件,是人與機器的一座橋梁。DOS是單線程系統(tǒng),也就是說,在DOS下只能支持單CPU運行,這樣,既無法利用多核CPU的多核特性,也無法對其余CPU進行查詢測試。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種多核CPU的切換方法,通過在DOS環(huán)境下實現(xiàn)多核CPU的切換,解決了對多核CPU任意操作的技術問題。根據(jù)本發(fā)明的一個方面,提供的一種多核CPU的切換方法包括中央處理器CPU間的切換步驟,包括:在DOS下,接收來自用戶的含有待切換標識的CPU間切換指令;根據(jù)所述CPU間切換指令,保存運行操作系統(tǒng)的第一當前CPU的工作環(huán)境參數(shù);將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU,并控制所述第一當前CPU退出運行狀態(tài),使第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行。優(yōu)選地,所述將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU的步驟包括:生成用于使所述待切換CPU切換為第二當前CPU的第二處理器內(nèi)部中斷消息,并發(fā)送至所述待切換CPU ;根據(jù)所述第二處理器內(nèi)部中斷消息,將所述待切換CPU的AP切換為BSP,以便所述待切換CPU進入運行狀態(tài)。優(yōu)選地,所述控制所述第一當前CPU退出運行狀態(tài)的步驟包括:生成用于使第一當前CPU退出運行狀態(tài)的第一處理器內(nèi)部中斷消息IPI,并發(fā)送至所述第一當前CPU ;根據(jù)所述第一處理器內(nèi)部中斷消息,將所述第一當前CPU中的BSP切換為AP,以便退出運行狀態(tài)。優(yōu)選地,所述第一當前CPU的工作環(huán)境參數(shù)包括代碼段寄存器CS參數(shù)和指令寄存器EIP參數(shù),所述第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行的步驟包括:
所述第二當前CPU按照所述第一當前CPU的CS參數(shù)和EIP參數(shù),分別設置第二當前CPU中BSP的CS參數(shù)和EIP參數(shù),使所述第二當前CPU中的BSP按照所設置的CS參數(shù)和EIP參數(shù),繼續(xù)運行操作系統(tǒng)。優(yōu)選地,所述方法還包括CPU內(nèi)多核間的切換步驟,所述CPU的多核包括一個BSP、一個或多個AP,所述切換步驟包括:接收來自用戶的含有待切換標識的CPU內(nèi)切換指令;根據(jù)所述CPU內(nèi)切換指令,保存運行操作系統(tǒng)的第一當前BSP的工作環(huán)境參數(shù),并控制所述第一當前BSP退出運行狀態(tài);將所述CPU內(nèi)切換指令中待切換標識指定的待切換AP切換為運行操作系統(tǒng)的第二當前BSP,使第二當前BSP按照所保存的第一當前BSP的工作環(huán)境參數(shù)繼續(xù)運行。優(yōu)選地,所述將所述CPU內(nèi)切換指令中待切換標識指定的待切換AP切換為運行操作系統(tǒng)的第二當前BSP的步驟包括:生成用于使所述待切換AP切換為第二當前BSP的第四處理器內(nèi)部中斷消息,并發(fā)送至所述待切換AP;根據(jù)所述第四處理器內(nèi)部中斷消息,將所述待切換AP切換為BSP,以便所述待切換AP進入運行狀態(tài)。優(yōu)選地,所述控制所述第一當前BSP退出運行狀態(tài)的步驟包括:生成用于使第一當前BSP退出運行狀態(tài)的第三處理器內(nèi)部中斷消息,并發(fā)送至所述第一當前BSP ;根據(jù)所述第三處理器內(nèi)部中斷消息,將所述第一當前BSP切換為AP,以便退出運行狀態(tài)。優(yōu)選地,所述第一當前BSP的工作環(huán)境參數(shù)包括CS參數(shù)和EIP參數(shù),所述第二當前BSP按照所保存的第一當前BSP的工作環(huán)境參數(shù)繼續(xù)運行的步驟包括:所述第二當前BSP按照所述第一當前BSP的CS參數(shù)和EIP參數(shù),分別設置第二當前BSP的CS參數(shù)和EIP參數(shù),使所述當前第二 BSP按照所設置的CS參數(shù)和EIP參數(shù),繼續(xù)運行操作系統(tǒng)。優(yōu)選地,所述方法還包括:生成用于讀取BSP中內(nèi)部寄存器組的第五處理器內(nèi)部中斷消息,并發(fā)送至所述BSP ;根據(jù)所述第五處理器內(nèi)部中斷消息,顯示所述BSP的內(nèi)部寄存器組,以便用戶查詢和調(diào)試。優(yōu)選地,所述方法還包括:在所述接收來自用戶的含有待切換標識的CPU間切換指令前或CPU切換指令前,生成用于初始化AP的啟動處理器內(nèi)部中斷消息,并發(fā)送至所有AP ;根據(jù)收到的所述啟動處理器內(nèi)部中斷消息,對AP的內(nèi)部寄存器組進行初始化操作。與現(xiàn)有技術相比較,本發(fā)明的有益效果在于:本發(fā)明通過在DOS下將任意一個AP切換為運行操作系統(tǒng)的BSP,實現(xiàn)對AP進行任意操作,不僅可以利用多核CPU的多核特性,也可以對其余CPU進行查詢測試。


圖1是本發(fā)明實施例提供的多核CPU間切換流程圖;圖2是本發(fā)明實施例提供的多核CPU內(nèi)切換流程圖;圖3是本發(fā)明實施例提供的多核CPU切換系統(tǒng)原理框圖。
具體實施例方式以下結合附圖對本發(fā)明的優(yōu)選實施例進行詳細說明,應當理解,以下所說明的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。圖1是本發(fā)明實施例提供的多核CPU間切換流程圖,如圖1所示,步驟包括:步驟101:在磁盤操作系統(tǒng)DOS下,接收來自用戶的含有待切換標識的CPU間切換指令。步驟102:根據(jù)所述CPU間切換指令,保存運行操作系統(tǒng)的第一當前CPU的工作環(huán)境參數(shù)。所述第一當前CPU的工作環(huán)境參數(shù)包括代碼段寄存器CS參數(shù)和指令寄存器EIP參數(shù)。具體地說,首先通過高級可編程中斷處理控制器APIC總線對所述當前第一 CPU發(fā)出處理器內(nèi)部中斷IPI,在IPI處理程序中,保存下當前第一CPU的運行場景,例如:EAX, EBX, ECX, EDX, EBP, ESP, CS及EIP,以及相關的APIC寄存器組和MSR寄存器組。步驟103、將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU,并控制所述第一當前CPU退出運行狀態(tài),使第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行。其中,所述控制所述第一當前CPU退出運行狀態(tài)的步驟包括:生成用于使第一當前CPU退出運行狀態(tài)的第一處理器內(nèi)部中斷消息(第一 IPI消息),并發(fā)送至所述第一當前CPU ;根據(jù)所述第一處理器內(nèi)部中斷消息,將所述第一當前CPU中的引導處理器BSP切換為應用處理器AP,以便退出運行狀態(tài)。所述將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU的步驟包括:生成用于使所述待切換CPU切換為第二當前CPU的第二處理器內(nèi)部中斷消息,并發(fā)送至所述待切換CPU ;根據(jù)所述第二處理器內(nèi)部中斷消息,將所述待切換CPU的AP切換為BSP,以便所述待切換CPU進入運行狀態(tài)。所述第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行的步驟包括:所述第二當前CPU按照所述第一當前CPU的CS參數(shù)和EIP參數(shù),分別設置第二當前CPU中BSP的CS參數(shù)和EIP參數(shù),使所述BSP按照所設置的CS參數(shù)和EIP參數(shù),繼續(xù)運行操作系統(tǒng)。具體地說,首先,根據(jù)用戶所設定的欲切換CPU APIC ID,在IPI處理程序中,將第二當前 CPU 的 MSR Register IA32_APIC_BASE (MSR Index:OxlB)位 8 從 O 設定為 I,標志著第二當前CPU中的一個AP將變成BSP。其次,將第一當前CPU的MSR Register IA32_APIC_BASE (MSR Index:0xlB)位8從I設定為0,標志著第一當前CPU中的BSP將變成AP。然后,依次將第二當前CPU中所述AP的CS和EIP設成第一當前CPU所設定的CS和EIP。最后,執(zhí)行遠跳轉指令,跳到CS:EIP處,程序退出到DOS下,實現(xiàn)了 CPU間的切換。進一步地,在所述步驟101前,還包括初始化AP的步驟,所述初始化AP的步驟包括:生成用于初始化AP的啟動處理器內(nèi)部中斷消息,并發(fā)送至所有AP,根據(jù)收到的所述啟動處理器內(nèi)部中斷消息,對AP內(nèi)部寄存器組進行初始化操作。進一步地,在所述步驟103后,還包括查詢和調(diào)試步驟,所述查詢和調(diào)試步驟包括:生成用于讀取BSP中內(nèi)部寄存器組的第五處理器內(nèi)部中斷消息,并發(fā)送至所述BSP,根據(jù)所述第五處理器內(nèi)部中斷消息,顯示所述BSP的內(nèi)部寄存器組,以供用戶查詢和調(diào)試。圖2是本發(fā)明實施例提供的多核CPU內(nèi)切換流程圖,所述CPU的多核包括一個BSP、一個或多個AP,如圖2所示,CPU內(nèi)多核間的切換步驟包括:步驟201:接收來自用戶的含有待切換標識的CPU內(nèi)切換指令。步驟202:根據(jù)所述CPU內(nèi)切換指令,保存運行操作系統(tǒng)的第一當前BSP的工作環(huán)境參數(shù)。其中,所述第一當前BSP的工作環(huán)境參數(shù)包括代碼段寄存器CS參數(shù)和指令寄存器EIP參數(shù)。具體地說,首先通過高級可編程中斷處理控制器APIC總線對所述當前第一 BSP發(fā)出處理器內(nèi)部中斷IPI,在IPI處理程序中,保存下當前第一 BSP的運行場景,例如:EAX, EBX, ECX, EDX, EBP, ESP, CS及EIP,以及相關的APIC寄存器組和MSR寄存器組。步驟203:將所述CPU內(nèi)切換指令中待切換標識指定的待切換AP切換為運行操作系統(tǒng)的第二當前BSP,并控制所述第一當前BSP退出運行狀態(tài),使第二當前BSP按照所保存的第一當前BSP的工作環(huán)境參數(shù)繼續(xù)運行。其中,所述將所述CPU內(nèi)切換指令中待切換標識指定的待切換AP切換為運行操作系統(tǒng)的第二當前BSP的步驟包括:生成用于使所述待切換AP切換為第二當前BSP的第四處理器內(nèi)部中斷消息,并發(fā)送至所述待切換AP ;根據(jù)所述第四處理器內(nèi)部中斷消息,將所述待切換AP切換為BSP,以便所述待切換AP進入運行狀態(tài)。所述控制所述第一當前BSP退出運行狀態(tài)的步驟包括:生成用于使第一當前BSP退出運行狀態(tài)的第三處理器內(nèi)部中斷消息,并發(fā)送至所述第一當前BSP;根據(jù)所述第三處理器內(nèi)部中斷消息,將所述第一當前BSP切換為AP,以便退出運行狀態(tài)。所述第二當前BSP按照所保存的第一當前BSP的工作環(huán)境參數(shù)繼續(xù)運行的步驟包括:所述第二當前BSP按照所述第一當前BSP的CS參數(shù)和EIP參數(shù),分別設置第二當前BSP的CS參數(shù)和EIP參數(shù),使所述當前第二 BSP按照所設置的CS參數(shù)和EIP參數(shù),繼續(xù)運行操作系統(tǒng)。具體地說,首先,根據(jù)用戶所設定的欲切換CPU APIC ID,在IPI處理程序中,將指定 AP 的 MSR Register IA32_APIC_BASE (MSR Index:0xlB)位 8 從 0 設定為 1,標志著所述AP將變成第二當前BSP。其次,將第一當前BSP的MSR Register IA32_APIC_BASE (MSRIndex:0xlB)位8從I設定為0,標志著第一當前BSP將變成AP。然后,依次將第二當前BSP中的CS和EIP設成第一當前BSP所設定的CS和EIP。最后,執(zhí)行遠跳轉指令,跳到CS = EIP處,程序退出到DOS下,實現(xiàn)了 CPU內(nèi)多核間的切換。進一步地,在所述步驟201前,還包括初始化AP的步驟,所述初始化AP的步驟包括:生成用于初始化AP的啟動處理器內(nèi)部中斷消息,并發(fā)送至所有AP,根據(jù)收到的所述啟動處理器內(nèi)部中斷消息,對AP內(nèi)部寄存器組進行初始化操作。進一步地,在所述步驟203后,還包括查詢和調(diào)試步驟,所述查詢和調(diào)試步驟包括:生成用于讀取第二當前BSP中內(nèi)部寄存器組的第五處理器內(nèi)部中斷消息,并發(fā)送至所述第二當前BSP,根據(jù)所述第五處理器內(nèi)部中斷消息,顯示所述第二當前BSP的內(nèi)部寄存器組,以供用戶查詢和調(diào)試。通過圖1和圖2可知,本發(fā)明能夠?qū)Χ嗪薈PU進行初始化、自由切換,以及信息讀取。圖3是本發(fā)明實施例提供的多核CPU切換系統(tǒng)原理框圖,如圖3所示,多核CPU切換裝置發(fā)出用于初始化AP的啟動處理器內(nèi)部中斷SIPI消息,完成全部AP的初始化,當需要進行多核CPU切換時,多核CPU切換裝置保存BSP工作環(huán)境,并切換用戶指定AP作為運行OS的CPU,成功切換AP成為BSP后,就會回到DOS下,此時CPU對OS及應用軟件完全是透明的,從而可以獲得所述指定AP相關的內(nèi)部寄存器資料,供用戶查驗及測試,例如:EAX、EBX、ECX、EDX、EBP、ESP, CS和EIP,以及APIC寄存器組和MSR寄存器組。所述多核CPU切換系統(tǒng)的工作流程如下:第一步、多核CPU切換裝置利用高級可編程中斷處理控制器APIC總線,發(fā)出用于初始化的SIPI消息,所有AP收到SIPI消息后,會執(zhí)行相應的代碼設定其內(nèi)部的寄存器完成初始化操作。第二步、初始化完成后,多核CPU切換裝置可根據(jù)用戶的需求,先是保存下當前CPU運行的場景,然后發(fā)出IPI消息給BSP,將BSP切換為AP,然后再將待切換的AP轉為用于運行OS的BSP。進一步,當所述待切換的AP與所述BSP屬于同一 CPU的內(nèi)核時,實現(xiàn)CPU內(nèi)多核間的切換;當所述待切換的AP與所述BSP屬于不同CPU的內(nèi)核時,實現(xiàn)CPU間的切換。第三步、多核CPU切換裝置也可對指定CPU發(fā)出IPI消息,執(zhí)行提前設定好的AP代碼,將CPU內(nèi)部的所有寄存器,如MTRR,APIC等,全部輸出到主機屏幕上,方便用戶對CPU內(nèi)部資料進行查詢調(diào)試.
多核CPU切換裝置提供了所有AP的IPI處理程序,這樣在IPI消息或SIPI消息發(fā)出后,就會進入到各個AP的IPI處理程序,在AP的IPI處理程序處理完成后,就會回到多核CPU切換裝置的軟件執(zhí)行點。盡管上文對本發(fā)明進行了詳細說明,但是本發(fā)明不限于此,本技術領域技術人員可以根據(jù)本發(fā)明的原理進行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應當理解為落入本發(fā)明的保護范圍。
權利要求
1.一種多核CPU的切換方法,其特征在于,包括中央處理器CPU間的切換步驟,包括: 在磁盤操作系統(tǒng)DOS下,接收來自用戶的含有待切換標識的CPU間切換指令; 根據(jù)所述CPU間切換指令,保存運行操作系統(tǒng)的第一當前CPU的工作環(huán)境參數(shù); 將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU,并控制所述第一當前CPU退出運行狀態(tài),使第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行。
2.根據(jù)權利要求1所述的方法,其特征在于,所述將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU的步驟包括: 生成用于使所述待切換CPU切換為第二當前CPU的第二處理器內(nèi)部中斷消息,并發(fā)送至所述待切換CPU ; 根據(jù)所述第二處理器內(nèi)部中斷消息,將所述待切換CPU的AP切換為BSP,以便所述待切換CPU進入運行狀態(tài)。
3.根據(jù)權利要求2所述的方法,其特征在于,所述控制所述第一當前CPU退出運行狀態(tài)的步驟包括: 生成用于使第一當前CPU退出運行狀態(tài)的第一處理器內(nèi)部中斷消息,并發(fā)送至所述第一當前CPU; 根據(jù)所述第一處理器內(nèi)部中斷消息,將所述第一當前CPU中的引導處理器BSP切換為應用處理器AP,以便退出運行狀態(tài)。
4.根據(jù)權利要求3所述的方法,其特征在于,所述第一當前CPU的工作環(huán)境參數(shù)包括代碼段寄存器CS參數(shù)和指令寄存器EIP參數(shù),所述第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行的步驟包括: 所述第二當前CPU按照所述第一當前CPU的CS參數(shù)和EIP參數(shù),分別設置第二當前CPU中BSP的CS參數(shù)和EIP參數(shù),使所述第二當前CPU中的BSP按照所設置的CS參數(shù)和EIP參數(shù),繼續(xù)運行操作系統(tǒng)。
5.根據(jù)權利要求1-4任意一項所述的方法,其特征在于,所述方法還包括CPU內(nèi)多核間的切換步驟,所述CPU的多核包括一個BSP、一個或多個AP,所述切換步驟包括: 接收來自用戶的含有待切換標識的CPU內(nèi)切換指令; 根據(jù)所述CPU內(nèi)切換指令,保存運行操作系統(tǒng)的第一當前BSP的工作環(huán)境參數(shù); 將所述CPU內(nèi)切換指令中待切換標識指定的待切換AP切換為運行操作系統(tǒng)的第二當前BSP,并控制所述第一當前BSP退出運行狀態(tài),使第二當前BSP按照所保存的第一當前BSP的工作環(huán)境參數(shù)繼續(xù)運行。
6.根據(jù)權利要求5所述的方法,其特征在于,所述將所述CPU內(nèi)切換指令中待切換標識指定的待切換AP切換為運行操作系統(tǒng)的第二當前BSP的步驟包括: 生成用于使所述待切換AP切換為第二當前BSP的第四處理器內(nèi)部中斷消息,并發(fā)送至所述待切換AP ; 根據(jù)所述第四處理器內(nèi)部中斷消息,將所述待切換AP切換為BSP,以便所述待切換AP進入運行狀態(tài)。
7.根據(jù)權利要求6所述的方法,其特征在于,所述控制所述第一當前BSP退出運行狀態(tài)的步驟包括:生成用于使第一當前BSP退出運行狀態(tài)的第三處理器內(nèi)部中斷消息,并發(fā)送至所述第一當前BSP ; 根據(jù)所述第三處理器內(nèi)部中斷消息,將所述第一當前BSP切換為AP,以便退出運行狀態(tài)。
8.根據(jù)權利要求7所述的方法,其特征在于,所述第一當前BSP的工作環(huán)境參數(shù)包括CS參數(shù)和EIP參數(shù),所述第二當前BSP按照所保存的第一當前BSP的工作環(huán)境參數(shù)繼續(xù)運行的步驟包括: 所述第二當前BSP按照所述第一當前BSP的CS參數(shù)和EIP參數(shù),分別設置第二當前BSP的CS參數(shù)和EIP參數(shù),使所述當前第二 BSP按照所設置的CS參數(shù)和EIP參數(shù),繼續(xù)運行操作系統(tǒng)。
9.根據(jù)權利要求6-8任意一項所述的方法,其特征在于,所述方法還包括: 生成用于讀取BSP中內(nèi)部寄存器組的第五處理器內(nèi)部中斷消息,并發(fā)送至所述BSP ; 根據(jù)所述第五處理器內(nèi)部中斷消息,顯示所述BSP的內(nèi)部寄存器組,以供用戶查詢和調(diào)試。
10.根據(jù)權利要求9所述的方法,其特征在于,所述方法還包括: 在所述接收來自用戶的含有 待切換標識的CPU間切換指令前或CPU切換指令前,生成用于初始化AP的啟動處理器內(nèi)部中斷消息,并發(fā)送至所有AP ; 根據(jù)收到的所述啟動處理器內(nèi)部中斷消息,對AP內(nèi)部寄存器組進行初始化操作。
全文摘要
本發(fā)明公開了一種多核CPU的切換方法,包括中央處理器CPU間的切換步驟,所述切換步驟包括在磁盤操作系統(tǒng)DOS下,接收來自用戶的含有待切換標識的CPU間切換指令;根據(jù)所述CPU間切換指令,保存運行操作系統(tǒng)的第一當前CPU的工作環(huán)境參數(shù);將所述CPU間切換指令中待切換標識指定的待切換CPU切換為運行操作系統(tǒng)的第二當前CPU,并控制所述第一當前CPU退出運行狀態(tài),使第二當前CPU按照所保存的第一當前CPU的工作環(huán)境參數(shù)繼續(xù)運行。本發(fā)明能夠在DOS下對多核CPU進行初始化,并可進行自由切換,獲取多核CPU的信息。
文檔編號G06F9/46GK103197959SQ20131011975
公開日2013年7月10日 申請日期2013年4月8日 優(yōu)先權日2013年4月8日
發(fā)明者鄭紅文 申請人:合肥聯(lián)寶信息技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
个旧市| 葵青区| 开封市| 徐水县| 龙岩市| 平远县| 宜丰县| 潼南县| 连南| 岗巴县| 泗洪县| 米易县| 河池市| 远安县| 门头沟区| 江阴市| 惠水县| 靖安县| 临湘市| 巩留县| 迁西县| 永定县| 大渡口区| 阳朔县| 丹寨县| 禹州市| 远安县| 五原县| 偏关县| 赞皇县| 黔东| 宁陵县| 大足县| 额敏县| 黎城县| 长沙县| 沭阳县| 高密市| 大同市| 曲松县| 舟山市|