專利名稱:一種龍芯cpu的smp功能展示的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及龍芯主板功能展示,具體來說,涉及一種龍芯CPU的SMP功能展示的方法。
背景技術(shù):
在目前市場銷售及實際使用中的主板基本上都是X86架構(gòu)的,使用的BIOS程序都是采購的二進制程序,無法定制多核CPU的配置。而基于MIPS架構(gòu)龍芯CPU研發(fā)的刀片及主板等使用了完全具有源代碼的BIOS程序和Linux內(nèi)核程序,并且刀片及主板是雙路的。另外,X86架構(gòu)與MIPS架構(gòu)本身就有很大不同。所以,在CPU初始化、SMP功能實現(xiàn)上等方面存在差異,也就不難理解了。
發(fā)明內(nèi)容
為解決基于龍芯CPU刀片的SMP功能各種方式的配置和展示。本發(fā)明提供了一種龍芯CPU的SMP功能展示的方法。一種龍芯CPU的SMP功能展示的方法,將龍芯CPU的一個核心設(shè)置為主CPU核心, 其余核心作為CPU節(jié)點核心,通過調(diào)整主板跳線帽或者設(shè)置BIOSUinux內(nèi)核參數(shù)來啟動與關(guān)閉的CPU核心,展現(xiàn)SMP工作過程及配置方法。優(yōu)選的,所述龍芯CPU個數(shù)為2個,每個龍芯CPU包含4個核心。優(yōu)選的,在單路情況下,必須有一個CPU核心為主核心。優(yōu)選的,在雙路情況下,必須在0號CPU上選定主核心。較優(yōu)選的,所述0號CPU為通過HT總線與南北橋相連接的CPU。優(yōu)選的,所述龍芯CPU每個核心包含一個寄存器用以存儲處理器號。較優(yōu)選的,寄存器的低兩位表示CPU核心號,高兩位表示CPU號。優(yōu)選的,所述龍芯CPU核的關(guān)閉是屏蔽其中斷緩存寄存器,使其循環(huán)等待。較優(yōu)選的,所述Iinux內(nèi)核通過傳遞參數(shù)給CPU核寄存器來啟動龍芯CPU內(nèi)核。較優(yōu)選的,所述參數(shù)包括核退出循環(huán)后即將執(zhí)行的函數(shù)首地址;寄存器的首地址; 即將執(zhí)行的函數(shù)所需參數(shù)首地址。通過本發(fā)明提供的的方法,可以非常清楚地了解SMP工作原理及配置方法。
圖1是本發(fā)明的工作示意圖
具體實施例方式每個龍芯CPU包含了四個核,這四個核即可以做為AP CPU,也可以作為BSP CPU。 每個核都可以通過程序進行屏蔽設(shè)置,但在單路情況下,必須有一個核作為BSP CPU ;在雙路情況下,必須在0號CPU上有一個核作為BSP CPU。否則,每個核或者被屏蔽,或者循環(huán)等待BSP CPU喚醒,BIOS程序就無法繼續(xù)執(zhí)行了。通過對刀片及主板使用的BIOS、Linux內(nèi)核程序進行設(shè)置,可以實現(xiàn)單CPU 1、2、3、4核功能,雙CPU 1、2、3、4、5、6、7、8核功能。通過在BIOS中進行CPU號和CPU的核號的檢測,可以控制CPU內(nèi)部需要啟動的核的位置和數(shù)量。每個核內(nèi)部的0號協(xié)處理器中包含的EBase寄存器在多核系統(tǒng)中,用于指明處理器號。寄存器的最低兩位,即0和1位表示CPU的核號,寄存器的2和3位表示CPU 號。這樣,通過此寄存器,不僅可以確定此核處在哪個CPU中,也可以確定在此CPU中,CPU 為此核分配的核號。在單路情況下,此CPU無疑應(yīng)該做為0號CPU。在雙路情況下,通過HT 總線連接南北橋芯片的CPU無疑應(yīng)該做為0號CPU,另一個與此CPU相連的CPU應(yīng)該作為1 號 CPU??梢栽谥靼迳贤ㄟ^跳帽的方式在CPU外部進行相應(yīng)的設(shè)置。如果決定不啟動某個核,則可以讓此核一直在BIOS循環(huán)運行,不再運行其他功能程序。如果決定啟動此核, 則可以讓此核循環(huán)檢測處理器核間中斷緩存寄存器,當此寄存器為零時,此核在BIOS循環(huán)等待;當Linux內(nèi)核中SMP功能代碼決定啟動此核時,會對此寄存器進行設(shè)置,這樣此核在 BIOS中退出循環(huán)等待,繼續(xù)執(zhí)行其它的功能。Linux內(nèi)核中的SMP功能代碼對核間中斷緩存寄存器設(shè)置了什么內(nèi)容,使這些循環(huán)等待的CPU又可以正常工作了呢? SMP功能代碼通過寄存器向每個核傳遞了四個參數(shù),第一個參數(shù)為核退出循環(huán)后即將執(zhí)行的函數(shù)首地址; 第二個參數(shù)為sp首地址,用于初始化sp寄存器;第三個參數(shù)為gp首地址,用于初始化gp 寄存器;第四個參數(shù)為即將執(zhí)行的函數(shù)所需參數(shù)首地址,用于初始化al寄存器。這樣,當這四個參數(shù)分別存儲到相應(yīng)的寄存器后,就可以使用跳轉(zhuǎn)指令去執(zhí)行其它的功能了。
權(quán)利要求
1.一種龍芯CPU的SMP功能展示的方法,其特征在于將龍芯CPU的一個核心設(shè)置為主CPU核心,其余核心作為CPU節(jié)點核心,通過調(diào)整主板跳線帽或者設(shè)置BIOS、Iinux內(nèi)核參數(shù)來啟動與關(guān)閉的CPU核心,展現(xiàn)SMP工作過程及配置方法。
2.如權(quán)利要求1所述的方法,其特征在于所述龍芯CPU個數(shù)為2個,每個龍芯CPU包含4個核心。
3.如權(quán)利要求1所述的方法,其特征在于在單路情況下,必須有一個CPU核心為主核心。
4.如權(quán)利要求1所述的方法,其特征在于在雙路情況下,必須在0號CPU上選定主核心。
5.如權(quán)利要求4所述的方法,其特征在于所述0號CPU為通過HT總線與南北橋相連接的CPU。
6.如權(quán)利要求1所述的方法,其特征在于所述龍芯CPU每個核心包含一個寄存器用以存儲處理器號。
7.如權(quán)利要求6所述的方法,其特征在于寄存器的低兩位表示CPU核心號,高兩位表示CPU號。
8.如權(quán)利要求1所述的方法,其特征在于所述龍芯CPU核的關(guān)閉是屏蔽其中斷緩存寄存器,使其循環(huán)等待。
9.如權(quán)利要求1或8所述的方法,其特征在于所述Iinux內(nèi)核通過傳遞參數(shù)給CPU核寄存器來啟動龍芯CPU內(nèi)核。
10.如權(quán)利要求9所述的方法,其特征在于所述參數(shù)包括核退出循環(huán)后即將執(zhí)行的函數(shù)首地址;寄存器的首地址;即將執(zhí)行的函數(shù)所需參數(shù)首地址。
全文摘要
本發(fā)明提供了一種龍芯CPU的SMP功能展示的方法,將龍芯CPU的一個核心設(shè)置為主CPU核心,其余核心作為CPU節(jié)點核心,通過調(diào)整主板跳線帽或者設(shè)置BIOS、linux內(nèi)核參數(shù)來啟動與關(guān)閉的CPU核心,展現(xiàn)SMP工作過程及配置方法。通過本發(fā)明提供的的方法,可以非常清楚地了解SMP工作原理及配置方法。
文檔編號G06F1/16GK102368167SQ201110188839
公開日2012年3月7日 申請日期2011年7月7日 優(yōu)先權(quán)日2011年7月7日
發(fā)明者劉新春, 尹寧寧, 李豐旺, 李永成, 楊曉君, 柳勝杰, 梁發(fā)清, 王暉, 王英, 邵宗有, 鄭臣明, 郝志彬 申請人:曙光信息產(chǎn)業(yè)股份有限公司