<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于龍芯2F架構(gòu)的PMON分析與優(yōu)化

          基于龍芯2F架構(gòu)的PMON分析與優(yōu)化

          作者: 時(shí)間:2011-03-30 來源:網(wǎng)絡(luò) 收藏

          摘要:基本輸入/輸出系統(tǒng)(BIOS)是現(xiàn)代計(jì)算機(jī)系統(tǒng)的重要組成部分,負(fù)責(zé)計(jì)算機(jī)系統(tǒng)的開機(jī)自檢、板級(jí)初始化、加載操作系統(tǒng)內(nèi)核以及基本I/O功能。以 CPU為研究背景,在其基礎(chǔ)上的系統(tǒng)結(jié)構(gòu)與工作流程,通過添加網(wǎng)絡(luò)驅(qū)動(dòng)程序,最終實(shí)現(xiàn)通過加載Linux和VxWorks操作系統(tǒng)。進(jìn)行必要的功能完善與性能優(yōu)化,并經(jīng)過嚴(yán)格的測(cè)試以排除可能存在的深層次缺陷,實(shí)現(xiàn)了一個(gè)性能穩(wěn)定、功能完善、高可靠性的能與國(guó)產(chǎn)處理器平臺(tái)緊密搭配的BIOS。
          關(guān)鍵詞:BIOS;CPU;處理器;

          本文引用地址:http://www.ex-cimer.com/article/202462.htm

          龍芯CPU使用PMON作為基本輸入輸出系統(tǒng)(BIOS)。PMON具有強(qiáng)大而豐富的功能,除基本的I/O功能外,還包括硬件初始化與檢測(cè)、操作系統(tǒng)引導(dǎo)和程序調(diào)試等功能。PMON早期的版本功能少且擴(kuò)展性不好。現(xiàn)在龍芯CPU上使用的PMON添加了硬盤和其他文件系統(tǒng)的支持,以及顯卡的支持等。本文在深入PMON源碼的前提下,添加了82551網(wǎng)卡驅(qū)動(dòng)以便以網(wǎng)絡(luò)下載加載操作系統(tǒng)內(nèi)核,并對(duì)移植好的PMON系統(tǒng)進(jìn)行了功能、性能和穩(wěn)定性等方面的測(cè)試以適應(yīng)某些重要領(lǐng)域?qū)τ?jì)算機(jī)系統(tǒng)高可靠性要求。通過專門的測(cè)試程序來實(shí)現(xiàn)此任務(wù),并且盡量保證高的測(cè)試覆蓋性。

          1 基于龍芯2F的PMON
          1.1 PMON執(zhí)行流程分析
          在龍芯2F CPU上電之初,內(nèi)存和內(nèi)存控制器處于不確定狀態(tài),因此CPU開始執(zhí)行的BIOS代碼只能放在非易失性介質(zhì)中。PMON的二進(jìn)制代碼就存放于主板上一塊512 KB的FLASH芯片上,其虛擬地址為0xBFC00000,物理地址是0x1FC00000。
          由于在ROM FLASH運(yùn)行的速度比較慢,并且空間有限,不能隨時(shí)更改ROM中的內(nèi)容,就需要把引導(dǎo)程序搬到內(nèi)存里運(yùn)行。因此,PMON的運(yùn)行過程分為兩個(gè)階段:第一階段是在ROM FLASH中運(yùn)行,主要進(jìn)行基本硬件初始化,如:北橋、南橋、內(nèi)存控制器、緩存和串口初始化等;第二階段在內(nèi)存中執(zhí)行,主要完成環(huán)境變量和基本數(shù)據(jù)結(jié)構(gòu)的初始化、PCI總線掃描和設(shè)備初始化,顯卡初始化、網(wǎng)絡(luò)協(xié)議和設(shè)備初始化,并對(duì)搜索到的PCI總線上的設(shè)備進(jìn)行驅(qū)動(dòng)程序的加載與配置等,最后加載操作系統(tǒng)內(nèi)核。
          1.2 PMON在ROM中的執(zhí)行流程
          龍芯CPU開始執(zhí)行的指令將CP0控制寄存器的狀態(tài)寄存器和原因寄存器清零,讓CPU處于內(nèi)核模式。這是因?yàn)镸IPS CPU啟動(dòng)時(shí),必須定義足夠的CPU控制寄存器狀態(tài),以使CPU能執(zhí)行非緩存的指令。在對(duì)緩存初始化之前,不能訪問緩存。非緩存的異常入口在0xBFC00000,但此處沒有足夠的空間存放啟動(dòng)代碼,于是設(shè)計(jì)了一個(gè)跳轉(zhuǎn)。這個(gè)跳轉(zhuǎn)可以測(cè)試CPU是否正常工作。如果硬件發(fā)生了某種嚴(yán)重的錯(cuò)誤,可能會(huì)導(dǎo)致CPU嚴(yán)重的異常。如果CPU正常啟動(dòng)起來并跳轉(zhuǎn)到了正確的位置并執(zhí)行了預(yù)先設(shè)計(jì)的指令,就可以相信CPU正常,某些硬件正常。跳轉(zhuǎn)之后,PMON進(jìn)行一系列的初始化與測(cè)試工作,這個(gè)過程如圖1所示。

          1.JPG


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: PMON 龍芯2F 架構(gòu) 分析

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();