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

龍芯3a平臺大內(nèi)存設備的地址映射方法

文檔序號:6365185閱讀:1043來源:國知局
專利名稱:龍芯3a平臺大內(nèi)存設備的地址映射方法
技術領域
本發(fā)明涉及到使用龍芯處理器的計算機領域,具體涉及ー種龍芯3A平臺大內(nèi)存設備的地址映射方法。
背景技術
龍芯3A處理器是中科院計算所研制、兼容MIPS指令集的通用64位處理器。如圖I所示,龍芯3A處理器采用多核處理器體系結(jié)構(gòu),芯片內(nèi)部集成了 4個CPU核心。龍芯3A處理器的芯片整體架構(gòu)基于兩級互連實現(xiàn)第一級內(nèi)部互連采用6x6的ー級交叉開關,一級交叉開關用于實現(xiàn)四個CPU核心(核心O 核心3)、四個ニ級緩存和兩個HT控制器之間的互連。第二級內(nèi)部互連采用5x4的ニ級交叉開關,ニ級交叉開關用于實現(xiàn)四個ニ級緩存、兩個內(nèi)存控制器、系統(tǒng)配置寄存器、低端IO控制器之間的互連。北橋通過HT接ロ與CPU相連,PCIE設備連在北橋上。外設的PCI內(nèi)存空間需要通過ー級交叉開關映射到全局地址空 間。如圖2所示,現(xiàn)有技術基于龍芯3A處理器的計算機硬件系統(tǒng)中,龍芯3A處理器通過高速HT總線與北橋RS780連接,北橋RS780提供了兩路PCIe xl和一路PCIe xl6總線,并通過A_Link接ロ與南橋SB700連接;南橋SB710內(nèi)部集成了 IDE控制器、USB控制器、音頻控制器和PCI總線控制器,對外提供PCI總線接ロ。龍芯3A計算機系統(tǒng)在固件PMON中實現(xiàn)對處理器和橋芯片的基本初始化,實現(xiàn)基本的硬件訪問功能。如圖3所示,在進行硬件的內(nèi)存初始化時,在全局地址空間上,四個ニ級緩存模塊共同占用的物理地址范圍是
,共享整個地址范圍;ー個高速HT總線控制器占用的物理地址范圍是
,HT地址中間內(nèi)的PCI內(nèi)存空間大小為1012GB。高速HT總線控制器的HT接ロ采用內(nèi)部的40位地址空間,因此PCI內(nèi)存空間占用的地址范圍是
,PCI IO 空間占用的地址范圍是
,PCI 配置空間占用的地址范圍是
。處理器地址空間到全局地址空間的地址映射,是通過處理器的地址配置窗ロ來實現(xiàn)。龍芯3A平臺具有8個獨立的窗ロ配置寄存器組,可以實現(xiàn)8個獨立的處理器地址范圍到全局地址范圍的映射。龍芯3A系統(tǒng)固件PMON使用窗ロ O進行PCI IO范圍和配置寄存器范圍的映射,即將處理器地址空間的
范圍映射為全局地址空間上的
范圍;使用了窗ロ進行PCI內(nèi)存范圍的映射,即將處理器地址空間的
范圍映射為全局地址空間上的
。這種地址映射方式僅僅在處理器地址空間上映射了 128MB的PCI內(nèi)存范圍,這種系統(tǒng)固件PMON在處理器地址空間的分配,以及處理器地址、全局地址空間和HT總線地址空間映射上存在缺陷,這導致龍芯3A計算機上不能支持內(nèi)存超過128MB的PCI/PCIE設備,而且這種地址映射方式僅僅在處理器地址空間上映射了128MB的PCI內(nèi)存范圍,又因為PCI內(nèi)存范圍后面緊接著就是PCI IO范圍,所以不能直接進行PCI內(nèi)存范圍的擴展。而現(xiàn)代商用顯卡的顯存大部分都超過128MB大小,例如主流顯卡的顯存一般采用512M甚至1G,一些較低端顯卡的顯存則采用了 256M顯存。這樣ー來,這些具有大內(nèi)存的PCI/PCIE設備在初始化過程中都會失敗,從而無法在龍芯3A平臺上正常運行,最終影響了系統(tǒng)的正常工作,限制了龍芯3A平臺的產(chǎn)業(yè)推廣和應用。

發(fā)明內(nèi)容
針對上述現(xiàn)有技術的缺陷,本發(fā)明要解決的技術方案為提供一種能夠?qū)崿F(xiàn)龍芯3A平臺的大內(nèi)存PCI/PCIE設備支持、促進龍芯3A平臺的推廣應用,兼容性好、應用范圍廣泛的龍芯3A平臺大內(nèi)存設備的地址映射方法。為了解決上述技術問題,本發(fā)明采用的技術方案為一種龍芯3A平臺大內(nèi)存設備的地址映射方法,其實施步驟如下1)針對龍芯3A處理器的每ー個CPU核心,將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外,并調(diào)整所述PCI內(nèi)存空間的大??;
2)將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射,將全局地址空間內(nèi)的內(nèi)存空間與HT地址空間內(nèi)的內(nèi)存空間建立映射;
3)根據(jù)所述CPU地址空間內(nèi)移動后的PCI內(nèi)存空間更新操作系統(tǒng)的PCI內(nèi)存資源結(jié)構(gòu)體。作為本發(fā)明上述技術方案的進ー步改進
所述步驟I)中將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外并調(diào)整所述PCI內(nèi)存空間的大小的詳細步驟包括
A)將CPU地址空間內(nèi)的PCI內(nèi)存空間的基址設為系統(tǒng)寄存器的地址范圍外的內(nèi)存地
址;
B)根據(jù)所需PCI內(nèi)存空間的大小設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼。所述步驟A)中系統(tǒng)寄存器的地址范圍外的內(nèi)存地址為0x4000 0000。所述步驟B)中設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼為OxFFFF FFFF C0000000。所述步驟2)中將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射的具體步驟為將所述CPU地址空間內(nèi)移動后的PCI內(nèi)存空間的目標基址指向全局地址空間內(nèi)的內(nèi)存空間的起始內(nèi)存地址,然后將從基址開始的目標地址依次指向所述內(nèi)存空間起始內(nèi)存地址后的地址。所述全局地址空間內(nèi)的內(nèi)存空間的起始內(nèi)存地址為0x0000 0E00 4000 0000。本發(fā)明具有下述優(yōu)點
I、本發(fā)明針對龍芯3A處理器的每ー個CPU核心,將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外,并調(diào)整PCI內(nèi)存空間的大小,并進ー步將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射,將全局地址空間內(nèi)的內(nèi)存空間與HT地址空間內(nèi)的內(nèi)存空間建立映射,因此能夠支持128M以上大內(nèi)存PCI/PCIE設備,尤其可以實現(xiàn)龍芯3A平臺對目前的大內(nèi)存高端顯卡的支持,為利用顯卡的GPU運算資源提供了基礎,極大地擴大了龍芯3A平臺應用范圍。2、本發(fā)明將全局地址空間內(nèi)的內(nèi)存空間與HT地址空間內(nèi)的內(nèi)存空間建立映射,能夠充分利用系統(tǒng)寄存器的地址范圍外閑置的內(nèi)存空間,能夠與龍芯3A平臺的默認硬件配置保持兼容,而且充分利用了系統(tǒng)現(xiàn)有的資源,不需要進行額外的軟件修改。


圖I為龍芯3A平臺中龍芯3A處理器的框架結(jié)構(gòu)示意圖。圖2為龍芯3A平臺的硬件框架結(jié)構(gòu)示意圖。圖3為現(xiàn)有技術中龍芯3A平臺系統(tǒng)固件的PMON地址分配和映射方法的流程示意圖。圖4為本發(fā)明實施例的PMON地址分配和映射方法的流程示意圖。圖5為本發(fā)明實施例中設置PCI內(nèi)存空間地址窗ロ的流程示意圖。
具體實施例方式本發(fā)明實施例龍芯3A平臺大內(nèi)存設備的地址映射方法的實施步驟如下
1)針對龍芯3A處理器的每ー個CPU核心,將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外,并調(diào)整PCI內(nèi)存空間的大?。?br> 2)將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射,將全局地址空間內(nèi)的內(nèi)存空間與HT地址空間內(nèi)的內(nèi)存空間建立映射;
3)根據(jù)CPU地址空間內(nèi)移動后的PCI內(nèi)存空間更新操作系統(tǒng)的PCI內(nèi)存資源結(jié)構(gòu)體。步驟I)中將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外并調(diào)整PCI內(nèi)存空間的大小的詳細步驟包括
A)將CPU地址空間內(nèi)的PCI內(nèi)存空間的基址設為系統(tǒng)寄存器的地址范圍外的內(nèi)存地
址;
B)根據(jù)所需PCI內(nèi)存空間的大小設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼。如圖4所示,本實施例中,步驟A)中系統(tǒng)寄存器的地址范圍外的內(nèi)存地址為0x4000 0000,由于系統(tǒng)寄存器占用了
這段地址空間,內(nèi)存控制器會使用0x8000 0000后的地址,只有
這段空閑可用。為了給PCI內(nèi)存提供盡可能大的映射空間,所以選擇0x4000 0000作為起始地址;步驟B)中設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼為OxFFFF FFFF C000 0000。系統(tǒng)寄存器的地址范圍外的內(nèi)存地址除了要映射系統(tǒng)物理內(nèi)存外,目前并沒有用于其它任何用途,而且這部分空間很大,很適合分給PCI內(nèi)存空間,從而在不影響其它地址窗ロ的同時,可以修改PCI內(nèi)存空間映射窗ロ的大??;默認情況下,CPU地址空間內(nèi)的PCI內(nèi)存空間的基址與實際物理內(nèi)存大小相關,這樣可能與修改后的PCI內(nèi)存空間重合,出現(xiàn)地址初始化失敗的情況,本實施例中通過修改CPU地址空間內(nèi)的PCI內(nèi)存空間的基址,能夠確保系統(tǒng)寄存器的窗ロ不與PCI內(nèi)存空間重合。而且本實施例通過調(diào)整龍芯3A處理器的窗ロ將屬于PCI內(nèi)存空間的全局地址空間
映射到龍芯3A處理器的CPU地址空間
,PCI內(nèi)存空間由原來的128M擴大到IGB大小,從而通過這種地址映射方法,實現(xiàn)了龍芯3A平臺對大內(nèi)存PCI/PCIE設備的支持,能夠滿足當前的PCI/PCIE設備的內(nèi)存需求而又不會導致PCI內(nèi)存空間的浪費;而且,由于將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外,CPU地址空間內(nèi)的PCI內(nèi)存空間的后面是物理內(nèi)存窗ロ,因此可以根據(jù)需要靈活調(diào)整PCI內(nèi)存空間的大小,例如可以調(diào)整為2G甚至更大等以支持對應的大內(nèi)存PCI/PCIE設備。步驟2)中將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射的具體步驟為將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間的目標基址指向全局地址空間內(nèi)的內(nèi)存空間的起始內(nèi)存地址,然后將從基址開始的目標地址依次指向內(nèi)存空間起始內(nèi)存地址后的地址。本實施例中,全局地址空間內(nèi)的內(nèi)存空間的起始內(nèi)存地址為0x00000E00 4000 0000。如圖5所示,本發(fā)明實施例龍芯3A平臺大內(nèi)存設備的地址映射方法總體包括硬件初始化和操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)初始化兩部分。在硬件初始化步驟中,通過設置處理器的地址窗ロ配置寄存器組,具體包括
I、設置CPU地址空間內(nèi)的PCI內(nèi)存空間的基址為0x4000 0000。2、設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼為OxFFFF FFFF C000 0000。3、設置CPU地址空間內(nèi)的PCI內(nèi)存空間在全局地址空間內(nèi)映射后的起始內(nèi)存地址為 0x0000 0E00 4000 0000。龍芯3A的路由主要通過系統(tǒng)的兩級交叉開關實現(xiàn)。ー級交叉開關可以對每個Master端ロ接收到的請求進行路由配置,每個Master端ロ都擁有8個地址窗ロ,可以完成8個地址窗ロ的目標路由選擇。每個地址窗ロ由BASE、MASK和MMAP三個64位寄存器組成,BASE以K字節(jié)對齊;MASK采用類似網(wǎng)絡掩碼高位為I的格式;MMAP的低三位表示對應目標Slave端ロ的編號,MMAP[4]表示允許取指,MMAP [5]表示允許塊讀,MMAP [7]表示窗ロ使能。窗ロ命中公式(IN_ADDR & MASK) == BASE。PCI MEM映射使用ー級交叉開關的窗ロ。在硬件初始化步驟中,具體是向BASE寄存器(0x3ff02008)中寫0x40000000、向MASK 寄存器(0x3ff02048)中寫 Oxffff ffff cOOO 0000 和向 MMAP 寄存器(0x3ff02088)中寫0x0000 0E00 4000 0000。注意,由于龍芯3A處理器有4個核,本實施例中給出的是第一個核中的寄存器地址,其它核中相應的寄存器也要設置,方法相同。前面對窗ロ的設置屬于硬件寄存器范疇,操作系統(tǒng)層面也需要知道PCI內(nèi)存的信息以正確完成初始化。在操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)初始化步驟中,對PCI內(nèi)存資源相關的操作系統(tǒng)參數(shù)進行初始化,通過修改PCI內(nèi)存資源結(jié)構(gòu)體,將資源的起始地址設置與修改后的PCI內(nèi)存空間一致。PCI內(nèi)存空間作為ー種資源,在操作系統(tǒng)中用struct resource結(jié)構(gòu)體表示。structresource結(jié)構(gòu)體包含用于表示PCI內(nèi)存空間起始地址的成員start和表示PCI內(nèi)存空間結(jié)束地址的成員end,在初始化過程中,成員start表示資源的起始地址,本實施例的成員start具體設為0x40000000 ;成員end表示資源的結(jié)束地址,本實施例的成員end具體設為0x7FFFFFFF。本實施例應用在安裝國防科技大學計算機學院自行研制的銀河麒麟龍芯版操作系統(tǒng)的龍芯3A 780計算機上,通過安裝多款內(nèi)存超過128M且采用PCIE接ロ的ATI Radeon系列的顯卡,在操作系統(tǒng)進行初始化完畢以后,顯卡能夠正常工作,而且能夠正確識別出顯卡的內(nèi)存,因此能夠驗證本實施例的方法是正確有效的,能夠?qū)崿F(xiàn)龍芯3A平臺對目前的大內(nèi)存高端顯卡的支持,為利用顯卡的GPU運算資源提供了基礎,極大地擴大了龍芯3A平臺應用范圍。除顯卡以外,本發(fā)明同樣也適合其他采用PCI或PCIE接ロ的大內(nèi)存設備。
以上所述僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術方案均屬于本發(fā)明的保護范圍。應當指出,對于本技術領域 的普通技術人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種龍芯3A平臺大內(nèi)存設備的地址映射方法,其特征在于其實施步驟如下 1)針對龍芯3A處理器的每ー個CPU核心,將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外,并調(diào)整所述PCI內(nèi)存空間的大小; 2)將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射,將全局地址空間內(nèi)的內(nèi)存空間與HT地址空間內(nèi)的內(nèi)存空間建立映射; 3)根據(jù)所述CPU地址空間內(nèi)移動后的PCI內(nèi)存空間更新操作系統(tǒng)的PCI內(nèi)存資源結(jié)構(gòu)體。
2.根據(jù)權(quán)利要求I所述的龍芯3A平臺大內(nèi)存設備的地址映射方法,其特征在于,所述步驟I)中將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外并調(diào)整所述PCI內(nèi)存空間的大小的詳細步驟包括 A)將CPU地址空間內(nèi)的PCI內(nèi)存空間的基址設為系統(tǒng)寄存器的地址范圍外的內(nèi)存地址; B)根據(jù)所需PCI內(nèi)存空間的大小設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼。
3.根據(jù)權(quán)利要求2所述的龍芯3A平臺大內(nèi)存設備的地址映射方法,其特征在于所述步驟A)中系統(tǒng)寄存器的地址范圍外的內(nèi)存地址為0x4000 0000。
4.根據(jù)權(quán)利要求3所述的龍芯3A平臺大內(nèi)存設備的地址映射方法,其特征在于所述步驟B)中設置CPU地址空間內(nèi)的PCI內(nèi)存空間的掩碼為OxFFFF FFFF C000 0000。
5.根據(jù)權(quán)利要求I或2或3或4所述的龍芯3A平臺大內(nèi)存設備的地址映射方法,其特征在于,所述步驟2)中將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射的具體步驟為將所述CPU地址空間內(nèi)移動后的PCI內(nèi)存空間的目標基址指向全局地址空間內(nèi)的內(nèi)存空間的起始內(nèi)存地址,然后將從基址開始的目標地址依次指向所述內(nèi)存空間起始內(nèi)存地址后的地址。
6.根據(jù)權(quán)利要求5所述的龍芯3A平臺大內(nèi)存設備的地址映射方法,其特征在于所述全局地址空間內(nèi)的內(nèi)存空間的起始內(nèi)存地址為0x0000 0E00 4000 0000。
全文摘要
本發(fā)明公開了一種龍芯3A平臺大內(nèi)存設備的地址映射方法,其實施步驟如下1)針對龍芯3A處理器的每一個CPU核心,將CPU地址空間內(nèi)的PCI內(nèi)存空間移動到系統(tǒng)寄存器的地址范圍外,并調(diào)整所述PCI內(nèi)存空間的大?。?)將CPU地址空間內(nèi)移動后的PCI內(nèi)存空間與全局地址空間內(nèi)的內(nèi)存空間建立映射,將全局地址空間內(nèi)的內(nèi)存空間與HT地址空間內(nèi)的內(nèi)存空間建立映射;3)根據(jù)所述CPU地址空間內(nèi)移動后的PCI內(nèi)存空間更新操作系統(tǒng)的PCI內(nèi)存資源結(jié)構(gòu)體。本發(fā)明能夠?qū)崿F(xiàn)龍芯3A平臺的大內(nèi)存PCI/PCIE設備支持、促進龍芯3A平臺的推廣應用,具有兼容性好、應用范圍廣泛的優(yōu)點。
文檔編號G06F12/10GK102646074SQ201210040560
公開日2012年8月22日 申請日期2012年2月22日 優(yōu)先權(quán)日2012年2月22日
發(fā)明者單晉奎, 吳慶波, 周劍, 孫立明, 張鐸, 趙江濤, 鄧林文, 邵立松 申請人:中國人民解放軍國防科學技術大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1