專利名稱:一種面向龍芯3b處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,具體涉及操作系統(tǒng)內(nèi)核對龍芯3B體系結(jié)構(gòu)相關(guān)的的支持,以及相應(yīng)的中斷管理子系統(tǒng)、內(nèi)存管理子系統(tǒng)相關(guān)的軟件實(shí)現(xiàn)方法,屬于計(jì)算機(jī)操作系統(tǒng)技術(shù)領(lǐng)域。
背景技術(shù):
龍芯3B CPU是一款通用的多核CPU,采用MIPS架構(gòu),在單個(gè)芯片上集成了多個(gè)高性能處理器核,其主要面向服務(wù)器和高性能應(yīng)用。雖然龍芯3B CPU與龍芯3A CPU在硬件管腳上兼容,但是龍芯3B處理器與龍芯3A處理器在內(nèi)部結(jié)構(gòu)上還是有較大的差別,龍芯3B處理器在龍芯3A處理器的基礎(chǔ)上,單芯片 上集成了 8個(gè)處理器核,并且提高了工作主頻,同時(shí)還集成了大量的二級cache,此外還對片內(nèi)集成的DDR控制器增加了 ECC校驗(yàn)功能,并且調(diào)整了片內(nèi)集成的PCI控制器的工作頻率。面向龍芯3A CPU的操作系統(tǒng)也不能直接在龍芯3B上運(yùn)行,目前尚無良好支持龍芯3B處理器的操作系統(tǒng)。沒有操作系統(tǒng)的支持,就無法在龍芯3B處理器上運(yùn)行上層應(yīng)用,相應(yīng)的云計(jì)算、高性能計(jì)算都無法正常進(jìn)行。另一方面,NUMA架構(gòu)在服務(wù)器體系結(jié)構(gòu)中越來越流行,然而現(xiàn)有的國產(chǎn)服務(wù)器操作系統(tǒng)對于NUMA架構(gòu)的支持還很不完善,其對物理內(nèi)存的管理采用統(tǒng)一編址的方式實(shí)現(xiàn),沒有充分考慮NUMA架構(gòu)的特點(diǎn),在內(nèi)存分配的時(shí)候缺乏對節(jié)點(diǎn)本地內(nèi)存和遠(yuǎn)程內(nèi)存的區(qū)分管理,這樣的做法增加了遠(yuǎn)程訪存的頻率,過多的遠(yuǎn)程訪存導(dǎo)致系統(tǒng)開銷增大,進(jìn)而使系統(tǒng)運(yùn)行效率低下。因此,針對龍芯3B處理器以及NUMA體系結(jié)構(gòu)的特點(diǎn),實(shí)現(xiàn)面向龍芯3B處理器的服務(wù)器操作系統(tǒng)具有很強(qiáng)的實(shí)用價(jià)值。
發(fā)明內(nèi)容
I、目的有鑒于此,本發(fā)明的目的是提供一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,實(shí)現(xiàn)對龍芯3B處理器以及NUMA架構(gòu)的良好支持。2、技術(shù)方案為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣的如圖I所示,本發(fā)明一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,該方法包括以下步驟步驟101.實(shí)現(xiàn)體系結(jié)構(gòu)相關(guān)的初始化;步驟102.實(shí)現(xiàn)陷阱門和中斷門的設(shè)置;步驟103.實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存初始化和內(nèi)存管理模塊;步驟104.實(shí)現(xiàn)中斷初始化的設(shè)置;步驟105.實(shí)現(xiàn)PCI子系統(tǒng)初始化的設(shè)置;本發(fā)明在硬件條件方面,要求提供基于龍芯3B處理器的硬件平臺(tái)。在軟件條件方面,要求在相應(yīng)硬件平臺(tái)上調(diào)試好的PMON可供加載內(nèi)核。其中,步驟101所述的實(shí)現(xiàn)體系結(jié)構(gòu)相關(guān)的初始化是指與CPU相關(guān)的主頻、一級cache容量、二級cache容量、串口初始化地址等信息的校正以及對板級相關(guān)的參數(shù)初始化。其中,步驟102所述的實(shí)現(xiàn)陷阱門和中斷門的設(shè)置主要是設(shè)置CPU的異常處理函數(shù),TLB重填,cache出錯(cuò)還有對通用異常處理表的初始化。其中,步驟103所述的實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存初始化是指服務(wù)器操作系統(tǒng)內(nèi)核在進(jìn)行內(nèi)存初始化的時(shí)候考慮到NUMA架構(gòu)的影響,在傳統(tǒng)初始化方法的基礎(chǔ)上擴(kuò)充對節(jié)點(diǎn)內(nèi)存的初始化管理。此外,內(nèi)存初始化部分還包括對頁地址池的 初始化。PCI內(nèi)存和高端內(nèi)存的初始化。其中,步驟103所述的實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存管理模塊是指在為進(jìn)程分配內(nèi)存的過程中,充分考慮到NUMA架構(gòu)的特點(diǎn),結(jié)合當(dāng)前進(jìn)程所在的CPU,就近分配內(nèi)存,從而避免進(jìn)程與自身的內(nèi)存在不同的節(jié)點(diǎn)帶來的遠(yuǎn)地訪存問題。其中,步驟104所述的實(shí)現(xiàn)中斷初始化的設(shè)置是指對系統(tǒng)中斷路由的設(shè)置、中斷處理的設(shè)置、對系統(tǒng)PCI設(shè)備的中斷處理設(shè)置以及對系統(tǒng)內(nèi)的設(shè)備中斷號和相應(yīng)中斷處理程序的映射設(shè)置。其中,步驟105所述的實(shí)現(xiàn)PCI子系統(tǒng)初始化的設(shè)置是指按順序?qū)崿F(xiàn)子系統(tǒng)的初始化。這些子系統(tǒng)包括總線、驅(qū)動(dòng)、USB子系統(tǒng)等。3、優(yōu)點(diǎn)及功效本發(fā)明一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,它與現(xiàn)有Li nux操作系統(tǒng)相比,其主要優(yōu)點(diǎn)是(I)提供對龍芯3B硬件平臺(tái)的支持,填補(bǔ)當(dāng)前的技術(shù)空白;(2)充分考慮到NUMA體系結(jié)構(gòu)的影響,避免遠(yuǎn)地訪存,比同類面向龍芯numa服務(wù)器的操作系統(tǒng)具有更高的性能。
圖I龍芯3B服務(wù)器操作系統(tǒng)實(shí)現(xiàn)示意2龍芯3B服務(wù)器操作系統(tǒng)詳細(xì)實(shí)現(xiàn)示意3龍芯3B服務(wù)器操作系統(tǒng)內(nèi)存初始化流程示意圖
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。見I一圖3,本發(fā)明的主要思想是根據(jù)龍芯3B硬件體系結(jié)構(gòu)的特點(diǎn)以及NUMA體系架構(gòu)的特點(diǎn),來實(shí)現(xiàn)對龍芯3B NUMA服務(wù)器具有良好支持的服務(wù)器操作系統(tǒng)。詳細(xì)步驟如圖2所示步驟201-1 =CPU的類型主要是通過讀取CPU的PRID寄存器的值來確定。進(jìn)而確定相應(yīng)的指令集、TLB容量、一級cache和二級cache的容量、數(shù)據(jù)cache和指令cache的容量。由于龍芯3B處理器具有浮點(diǎn)協(xié)處理器,所以還需要使能浮點(diǎn)協(xié)處理器。例如可采用以下代碼實(shí)現(xiàn)
權(quán)利要求
1.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于該方法包括以下步驟 步驟101.實(shí)現(xiàn)體系結(jié)構(gòu)相關(guān)的初始化; 步驟102.實(shí)現(xiàn)陷阱門和中斷門的設(shè)置; 步驟103.實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存初始化和內(nèi)存管理模塊; 步驟104.實(shí)現(xiàn)中斷初始化的設(shè)置; 步驟105.實(shí)現(xiàn)PCI子系統(tǒng)初始化的設(shè)置。
2.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于步驟101所述的實(shí)現(xiàn)體系結(jié)構(gòu)相關(guān)的初始化是指與CPU相關(guān)的主頻、一級cache容量、二級cache容量、串口初始化地址信息的校正以及對板級相關(guān)的參數(shù)初始化。
3.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于步驟102所述的實(shí)現(xiàn)陷阱門和中斷門的設(shè)置是設(shè)置CPU的異常處理函數(shù),TLB重填,cache出錯(cuò)還有對通用異常處理表的初始化。
4.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于步驟103所述的實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存初始化是指服務(wù)器操作系統(tǒng)內(nèi)核在進(jìn)行內(nèi)存初始化的時(shí)候考慮到NUMA架構(gòu)的影響,在傳統(tǒng)初始化方法的基礎(chǔ)上擴(kuò)充對節(jié)點(diǎn)內(nèi)存的初始化管理,此外,內(nèi)存初始化還包括對頁地址池的初始化、PCI內(nèi)存和高端內(nèi)存的初始化。
5.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于步驟103所述的實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存管理模塊是指在為進(jìn)程分配內(nèi)存的過程中,充分考慮到NUMA架構(gòu)的特點(diǎn),結(jié)合當(dāng)前進(jìn)程所在的CPU,就近分配內(nèi)存,從而避免進(jìn)程與自身的內(nèi)存在不同的節(jié)點(diǎn)帶來的遠(yuǎn)地訪存問題。
6.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于步驟104所述的實(shí)現(xiàn)中斷初始化的設(shè)置是指對系統(tǒng)中斷路由的設(shè)置、中斷處理的設(shè)置、對系統(tǒng)PCI設(shè)備的中斷處理設(shè)置以及對系統(tǒng)內(nèi)的設(shè)備中斷號和相應(yīng)中斷處理程序的映射設(shè)置。
7.一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,其特征在于其中,步驟105所述的實(shí)現(xiàn)PCI子系統(tǒng)初始化的設(shè)置是指按順序?qū)崿F(xiàn)子系統(tǒng)的初始化;這些子系統(tǒng)包括總線、驅(qū)動(dòng)和USB子系統(tǒng)。
全文摘要
一種面向龍芯3B處理器的服務(wù)器操作系統(tǒng)實(shí)現(xiàn)方法,該方法有五大步驟步驟101.實(shí)現(xiàn)體系結(jié)構(gòu)相關(guān)的初始化;步驟102.實(shí)現(xiàn)陷阱門和中斷門的設(shè)置;步驟103.實(shí)現(xiàn)支持NUMA架構(gòu)的內(nèi)存初始化和內(nèi)存管理模塊;步驟104.實(shí)現(xiàn)中斷初始化的設(shè)置;步驟105.實(shí)現(xiàn)PCI子系統(tǒng)初始化的設(shè)置。本發(fā)明首先根據(jù)龍芯3B處理器硬件的需求,實(shí)現(xiàn)了CPU、內(nèi)存、中斷和NUMA架構(gòu)的支持,保證了整個(gè)操作系統(tǒng)的穩(wěn)定運(yùn)行。它在計(jì)算機(jī)操作系統(tǒng)領(lǐng)域具有廣泛地實(shí)用價(jià)值和應(yīng)用前景。
文檔編號G06F9/44GK102789384SQ201210241548
公開日2012年11月21日 申請日期2012年7月12日 優(yōu)先權(quán)日2012年7月12日
發(fā)明者張坤, 王慧祥, 田鴻運(yùn), 肖利民, 阮利 申請人:北京航空航天大學(xué)