專利名稱:一種應(yīng)用于云存儲(chǔ)的存儲(chǔ)控制器的bios調(diào)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體地說是一種應(yīng)用于云存儲(chǔ)的存儲(chǔ)控制器的BIOS調(diào)試方法。
背景技術(shù):
隨著科技的發(fā)展,全球數(shù)據(jù)量的猛增使得存儲(chǔ)日益成為一個(gè)更獨(dú)立的專業(yè)問題, 越來越多的企業(yè)開始將存儲(chǔ)作為單獨(dú)的項(xiàng)目進(jìn)行管理。同時(shí),持續(xù)增長的數(shù)據(jù)存儲(chǔ)壓力帶動(dòng)著整個(gè)存儲(chǔ)市場(chǎng)的快速發(fā)展,而存儲(chǔ)產(chǎn)品架構(gòu)多種多樣,有基于X86架構(gòu)的產(chǎn)品,也有其他的非X86存儲(chǔ)產(chǎn)品;本專利針對(duì)非X86架構(gòu)的云存儲(chǔ)控制器的BIOS調(diào)試提供一種可行的解決方法。當(dāng)前基于非X86的存儲(chǔ)控制器的BIOS研發(fā)中普遍會(huì)遇到一個(gè)問題,就是在存儲(chǔ)控制器的串口沒有初始化前,如果此時(shí)BIOS不運(yùn)行了,若想定位軟件BIOS停止在哪里是比較困難的,因?yàn)榇藭r(shí)串口沒有初始化,無法通過串口打印信息;而購買BDI2000之類的調(diào)試工具費(fèi)用比較高,本專利適用于云存儲(chǔ)領(lǐng)域,云存儲(chǔ)在云計(jì)算(cloud computing)概念上延伸和發(fā)展出來的一個(gè)新的概念,云存儲(chǔ)的概念與云計(jì)算類似,它是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能的一個(gè)系統(tǒng)。其最基本組成單元仍是底層云設(shè)備的存儲(chǔ)控制器。隨著云計(jì)算應(yīng)用的推廣,云存儲(chǔ)的應(yīng)用也日益廣泛,而作為云存儲(chǔ)的基本裝備云存儲(chǔ)控制器的種類也日益增多,除了基于X86的存儲(chǔ)控制器外,還有很多基于Power PC, Xscale等架構(gòu)的存儲(chǔ)控制器,他們憑借著體積小,功耗低,高性能等優(yōu)點(diǎn), 在市場(chǎng)上占有的份額日益增加。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種應(yīng)用于云存儲(chǔ)的存儲(chǔ)控制器的BIOS調(diào)試方法。本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,采用一種修改BIOS代碼并配合外部硬件電路添加CPLD等器件來通過數(shù)碼管來顯示存儲(chǔ)控制器的BIOS執(zhí)行過程并定位其運(yùn)行位置。首先我們修改BIOS的地址空間分配,分配一塊空閑的地址空間給左右數(shù)碼管顯示用,然后編寫數(shù)碼管顯示函數(shù),用來在左右兩個(gè)數(shù)碼管上同時(shí)顯示我們所定義的數(shù)值,后續(xù)我們?cè)谛枰繠IOS運(yùn)行狀態(tài)的位置添加數(shù)碼管顯示函數(shù)和所要顯示的數(shù)值,這樣當(dāng)我們看到數(shù)碼管顯示出我們所定義的數(shù)值后就知道BIOS當(dāng)前的執(zhí)行位置;此時(shí)如果用CPU 的10來控制數(shù)碼管則很浪費(fèi)10資源,雙數(shù)碼管需要多達(dá)16個(gè)10,CPU 一般不會(huì)提供如此多10 口來作為調(diào)試口,為了節(jié)省CPU的資源,我們采用一片CPLD來接收和緩沖數(shù)碼管所要顯示的數(shù)據(jù),在CPLD中按照我們?cè)贐IOS中所分配的地址空間設(shè)置寄存器來保存CPU送出的要顯示的數(shù)值,然后把數(shù)據(jù)通過CPLD的10 口送到數(shù)碼管顯示出來。這樣我們就可以在串口沒有初始化的情況下通過數(shù)碼管來查看當(dāng)前的BIOS執(zhí)行情況,如果串口沒有初始化情況下,BIOS停止了執(zhí)行,我們可以通過數(shù)碼管顯示的數(shù)值來確定程序停止的位置,而不需要采用其他昂貴的調(diào)試工具來查看。本發(fā)明的方法和現(xiàn)有技術(shù)相比有益效果是提供一種基于非X86云存儲(chǔ)控制器的 BIOS調(diào)試方法,通常的調(diào)試方法都是在等串口初始化后,通過串口打印調(diào)試信息進(jìn)行BIOS 的開發(fā)調(diào)試,但是如果在串口初始化前BIOS就停止了,則很難定位問題原因,此方法通過修改BIOS中的地址資源分配,并在BIOS中編寫B(tài)IOS執(zhí)行過程中的數(shù)碼顯示函數(shù),并在 CPLD中設(shè)置顯示數(shù)值的緩沖區(qū),將BIOS中要顯示的數(shù)值送入CPLD緩沖后,輸出到與CPLD 連接的數(shù)碼管來顯示BIOS執(zhí)行的位置,此方法可以解決非X86存儲(chǔ)控制器BIOS在串口初始化前的BIOS調(diào)試?yán)щy的難題,并且不用購買其它昂貴的調(diào)試工具,節(jié)省了開發(fā)成本。
圖1是云存儲(chǔ)的存儲(chǔ)控制器的BIOS調(diào)試方法邏輯結(jié)構(gòu)示意圖。
具體實(shí)施例方式參照說明書附圖對(duì)本發(fā)明的方法作以下詳細(xì)地說明。本發(fā)明的應(yīng)用于云存儲(chǔ)的存儲(chǔ)控制器的BIOS調(diào)試方法,如圖1所示,我們以基于 Intel的I0P331存儲(chǔ)控制器為例來說明其實(shí)施過程。I0P331存儲(chǔ)控制器的BIOS中是在系統(tǒng)CPU硬件和CACHE以及內(nèi)存等初始化完成后才進(jìn)行的串口的初始化,而在串口初始化前的CPU初始化和內(nèi)存初始化過程中如果出現(xiàn)問題沒有通過,則通過BIOS很難定位程序停止在哪里,
我們采用圖1所示的方法進(jìn)行設(shè)計(jì),當(dāng)CPU初始化時(shí)采用匯編程序編寫數(shù)碼管顯示函數(shù),在BIOS中分配左右數(shù)碼管所用地址空間0xCE850000與0xCE840000,并在CPLD中設(shè)置緩沖寄存器,當(dāng)CPLD檢測(cè)到CPU的地址線符合我們給數(shù)碼管所分配的地址空間時(shí)將此時(shí)數(shù)值線上的數(shù)據(jù)保存進(jìn)數(shù)據(jù)緩沖寄存器,然后送出給數(shù)碼管顯示;在系統(tǒng)硬件初始化和內(nèi)存初始化過程中可以在多處調(diào)用數(shù)碼管顯示函數(shù)來顯示當(dāng)前BIOS執(zhí)行過程所處位置,這樣即使串口沒有初始化無法從串口打印字符的情況下我們可以從數(shù)碼管顯示的數(shù)值來判斷當(dāng)前程序執(zhí)行的位置,從而定位系統(tǒng)停止位置,方便了調(diào)試并加快了調(diào)試進(jìn)度。本發(fā)明提供一種用于云存儲(chǔ)的非X86存儲(chǔ)控制器的BIOS調(diào)試方法,可以不用購買昂貴的調(diào)試工具就方便完成BIOS的調(diào)試,節(jié)省了開發(fā)成本。本發(fā)明專利實(shí)用于云存儲(chǔ)領(lǐng)域,此方法簡(jiǎn)單可行,成本低廉,可以用來降低產(chǎn)品研發(fā)中對(duì)研發(fā)設(shè)備和資金投入。目前對(duì)于處理器的BIOS調(diào)試方式主要是通過串口進(jìn)行調(diào)試,而主板在串口初始化前出問題,則比較難通過軟件來定位,常用的方法是用類似BDI2000之類的調(diào)試工具進(jìn)行調(diào)試,這種調(diào)試工具價(jià)格比較昂貴,不適合普及應(yīng)用。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1. 一種應(yīng)用于云存儲(chǔ)的存儲(chǔ)控制器的BIOS調(diào)試方法,其特征在于,采用修改BIOS代碼并配合外部硬件電路添加CPLD等器件來通過數(shù)碼管來顯示存儲(chǔ)控制器的BIOS執(zhí)行過程并定位其運(yùn)行位置,當(dāng)CPU初始化時(shí)采用匯編程序編寫數(shù)碼管顯示函數(shù),在BIOS中分配左右數(shù)碼管所用地址空間0xCE850000與0xCE840000,并在CPLD中設(shè)置緩沖寄存器,當(dāng)CPLD 檢測(cè)到CPU的地址線符合我們給數(shù)碼管所分配的地址空間時(shí)將此時(shí)數(shù)值線上的數(shù)據(jù)保存進(jìn)數(shù)據(jù)緩沖寄存器,然后送出給數(shù)碼管顯示;在系統(tǒng)硬件初始化和內(nèi)存初始化過程中可以在多處調(diào)用數(shù)碼管顯示函數(shù)來顯示當(dāng)前BIOS執(zhí)行過程所處位置,這樣即使串口沒有初始化無法從串口打印字符的情況下,我們也可以從數(shù)碼管顯示的數(shù)值來判斷當(dāng)前程序執(zhí)行的位置,從而定位系統(tǒng)停止位置,方便了調(diào)試并加快了調(diào)試進(jìn)度,具體步驟如下首先我們修改BIOS的地址空間分配,分配一塊空閑的地址空間給左右數(shù)碼管顯示用, 然后編寫數(shù)碼管顯示函數(shù),用來在左右兩個(gè)數(shù)碼管上同時(shí)顯示我們所定義的數(shù)值,后續(xù)我們?cè)谛枰繠IOS運(yùn)行狀態(tài)的位置添加數(shù)碼管顯示函數(shù)和所要顯示的數(shù)值,這樣當(dāng)我們看到數(shù)碼管顯示出我們所定義的數(shù)值后就知道BIOS當(dāng)前的執(zhí)行位置;為了節(jié)省CPU的資源,我們采用一片CPLD來接收和緩沖數(shù)碼管所要顯示的數(shù)據(jù),在CPLD中按照我們?cè)贐IOS 中所分配的地址空間設(shè)置寄存器來保存CPU送出的要顯示的數(shù)值,然后把數(shù)據(jù)通過CPLD的 IO 口送到數(shù)碼管顯示出來,這樣我們就在串口沒有初始化的情況下通過數(shù)碼管來查看當(dāng)前的BIOS執(zhí)行情況,如果串口沒有初始化情況下,BIOS停止了執(zhí)行,我們通過數(shù)碼管顯示的數(shù)值來確定程序停止的位置,而不需要采用其他昂貴的調(diào)試工具來查看。
全文摘要
本發(fā)明提供一種應(yīng)用于云存儲(chǔ)的存儲(chǔ)控制器的BIOS調(diào)試方法,通過在BIOS中分配地址資源,并編寫數(shù)碼管顯示函數(shù);在CPLD中設(shè)置顯示緩沖,將在BIOS中要顯示的數(shù)值通過CPLD的緩沖輸出到與CPLD連接的數(shù)碼管進(jìn)行顯示,來定位BIOS代碼的運(yùn)行狀態(tài)和停止位置,當(dāng)CPU初始化時(shí)采用匯編程序編寫數(shù)碼管顯示函數(shù),在BIOS中分配左右數(shù)碼管所用地址空間0xCE850000與0xCE840000,并在CPLD中設(shè)置緩沖寄存器,當(dāng)CPLD檢測(cè)到CPU的地址線符合我們給數(shù)碼管所分配的地址空間時(shí)將此時(shí)數(shù)值線上的數(shù)據(jù)保存進(jìn)數(shù)據(jù)緩沖寄存器,然后送出給數(shù)碼管顯示;在系統(tǒng)硬件初始化和內(nèi)存初始化過程中可以在多處調(diào)用數(shù)碼管顯示函數(shù)來顯示當(dāng)前BIOS執(zhí)行過程所處位置,從而定位系統(tǒng)停止位置,方便了調(diào)試并加快了調(diào)試進(jìn)度。
文檔編號(hào)G06F11/22GK102495776SQ201110394029
公開日2012年6月13日 申請(qǐng)日期2011年12月2日 優(yōu)先權(quán)日2011年12月2日
發(fā)明者于治樓, 劉強(qiáng), 金長新 申請(qǐng)人:浪潮集團(tuán)有限公司