專利名稱:一種存儲及運行大容量Boot ROM鏡像的方法
技術領域:
本發(fā)明是關于一種存儲及運行Boot ROM鏡像的方法,具體的說,是關于一種存儲及運行大容量Boot ROM鏡像的方法。
背景技術:
人們對計算機各方面功能的要求越來越高,促使了計算機軟件的復雜度不斷的增加,這無形中使軟件也變得越來越龐大,這個問題對于目前以10G、100G計算的硬盤等存儲介質根本不算什么,但對于一些比較特殊的應用場合,如存儲于PCI擴展ROM中的Boot ROM類型程序(硬盤還原卡、加密卡、遠程啟動卡等),還是一個比較棘手的問題。就硬盤還原卡這類產品而言,廠商要想在激烈的市場競爭中占有優(yōu)勢,手段及策略很多,其中增加產品功能,以實現(xiàn)與同類產品的差異化,突出自身的優(yōu)勢,是一種非??尚械霓k法,如市場上出現(xiàn)的硬盤數(shù)據(jù)保護加網絡功能(管理、克隆)的硬盤還原卡,就是一種比較成功的代表。然而,由于受PCI擴展ROM容量(一般都在64K以內)及價格的限制,一些很好的想法實施起來還困難重重。
本發(fā)明的目的在于提供一種實現(xiàn)簡單、成本低的存儲及運行大容量Boot ROM鏡像的方法。根據(jù)《PCI局部總線標準》中的PCI擴展ROM的知識,PCI擴展ROM程序的實現(xiàn)形式如Boot ROM鏡像,其結構(如圖1)主要分初始化(Initialization)代碼及非初始化代碼部分,其中初始化代碼會在計算機的啟動過程中被加載及運行,而其非初始化代碼部分是可以靈活實現(xiàn)的。根據(jù)這一特點,我們就可以將Boot ROM鏡像中的非初始化代碼部分內容,先存儲于附加存儲介質(如硬盤)中,然后在該Boot ROM鏡像中的初始化代碼運行時根據(jù)需要,再讀取非初始化代碼部分內容并進行處理,以實現(xiàn)對大容量Boot ROM鏡像的支持。
發(fā)明內容
為了以上目的,本發(fā)明提供了一種存儲及運行大容量Boot ROM鏡像的方法,該方法包括①.在編寫B(tài)oot ROM程序時,在該Boot ROM鏡像初始化代碼中加入讀取及處理附加存儲介質(如硬盤)中數(shù)據(jù)的功能及數(shù)據(jù)位置的信息,按正常的Boot ROM鏡像開發(fā)流程生成可執(zhí)行文件鏡像(Image),將該Boot ROM鏡像中的初始化代碼部分,固化到PCI擴展ROM的存儲介質(如FLASH)中,再將該Boot ROM鏡像中非初始化代碼部分內容寫到附加存儲介質(如硬盤)中;②.在該Boot ROM鏡像中的初始化程序運行時,根據(jù)需要讀取已存儲在附加存儲介質(如硬盤)中的內容并進行處理,完成對大容量Boot ROM鏡像的支持。
在本專利申請的權利要求書中,具體地指出了本發(fā)明的主題,并清楚地對其提出了專利保護。然而參照下面的詳細說明和附圖,可以更好的理解本發(fā)明的有關結構和實現(xiàn)方法以及其目的、特征和優(yōu)勢。
圖1為典型的Boot ROM鏡像布局;圖2為本方法使用的Boot ROM鏡像布局。
具體實施方法在以下的詳細說明中,描述了特定的細節(jié)以便提供對本發(fā)明全面的理解。然而本專業(yè)的技術人員會認識到,本發(fā)明也可以用其它相類似的細節(jié)實施。
盡管本發(fā)明不限于此,但作為本發(fā)明的一個具體的實施例,一種將硬盤做為存儲及運行大容量Boot ROM附加載體的實施步驟如下根據(jù)硬盤分區(qū)的知識,硬盤的第0柱面第0磁道的63個扇區(qū)中,除第1扇區(qū)用于MBR(主引導記錄)外,其余的62個扇區(qū)都保留不用,為了處理的簡單及方便,我們可以將這62個扇區(qū)(約32K)利用起來,用于存儲Boot ROM鏡像中非初始化代碼部分內容。
按步驟①所述,在編寫B(tài)oot ROM程序時,在該Boot ROM初始化代碼中加入通過標準BIOS中斷讀取及處理硬盤數(shù)據(jù)的功能,及用于存儲Boot ROM鏡像中非初始化代碼部分內容的,硬盤第0柱面第0磁道第2-63扇區(qū)位置的信息,以現(xiàn)實對硬盤中該Boot ROM鏡像中非初始化代碼部分內容的訪問及處理功能,再將生成的Boot ROM鏡像的初始化部分內容固化到PCI擴展ROM中,及非初始化代碼部分內容寫到硬盤的扇區(qū)中。
按步驟②所述,當該Boot ROM中的初始化程序被計算機加載及運行時,就可以根據(jù)需要讀取已存儲在硬盤扇區(qū)中的內容并進行處理,完成對大容量Boot ROM鏡像的支持。通過BIOS中斷int 13h,直接訪問硬盤扇區(qū)的部分功能性代碼參考如下mov ax,0202h;高字節(jié)中2表示讀,3表示寫;低字節(jié)中表示扇區(qū)號;202就表示讀2號扇區(qū)mov bx,1000h;用于存儲讀寫數(shù)據(jù)的內存地址mov cx,1;扇區(qū)數(shù)mov dx,80h ;80表示主硬盤,81表示從硬盤,0表示軟盤等int 13h ;標準BIOS磁盤功能調用雖然此處說明描述了本發(fā)明的某此特征及一種實現(xiàn)方法,但是對于本專業(yè)的技術人員來說,將會出現(xiàn)許多修改、替換、變化和等效代換。因此,本發(fā)明的保護范圍由所附的權利要求的范圍為準。
權利要求
1.一種存儲及運行大容量Boot ROM鏡像的方法,該方法包括以下步驟①.在編寫B(tài)oot ROM鏡像程序時,在該Boot ROM鏡像程序初始化代碼中加入讀取及處理附加存儲介質(如硬盤)中數(shù)據(jù)的功能及數(shù)據(jù)位置的信息,按正常的Boot ROM鏡像開發(fā)流程生成可執(zhí)行文件鏡像(Image),將該Boot ROM鏡像中的初始化代碼部分,固化到PCI擴展ROM的存儲介質(如FLASH)中,再將該Boot ROM鏡像中非初始化代碼部分內容寫到附加存儲介質(如硬盤)中;②.在該Boot ROM鏡像中的初始化程序運行時,根據(jù)需要讀取已存儲在附加存儲介質(如硬盤)中的內容并進行處理,完成對大容量Boot ROM鏡像的支持。
2.如權利要求1所述一種存儲及運行大容量Boot ROM鏡像的方法,其特征在于在BootROM初始化代碼中加入讀取及處理附加存儲介質(如硬盤)中數(shù)據(jù)的功能及數(shù)據(jù)位置的信息,以實現(xiàn)對附加存儲介質(如硬盤)中數(shù)據(jù)訪問的能力。
3.如權利要求1所述一種存儲及運行大容量Boot ROM鏡像的方法,其特征在于將該Boot ROM可執(zhí)行文件鏡像中非初始化代碼部分內容寫到附加存儲介質(如硬盤)中,以現(xiàn)實對大容量Boot ROM鏡像存儲的支持。
4.如權利要求1所述一種存儲及運行大容量Boot ROM鏡像的方法,其特征在于在該Boot ROM中的初始化程序運行時,根據(jù)需要讀取已存儲在附加存儲介質(如硬盤)中的內容并進行處理,完成對大容量Boot ROM鏡像運行的支持。
全文摘要
本發(fā)明的目的就在于提供一種實現(xiàn)簡單、成本低的存儲及運行大容量Boot ROM鏡像的方法。其基本原理是,將Boot ROM鏡像中的非初始化代碼部分內容,先存儲于附加存儲介質(如硬盤)中,然后在該Boot ROM鏡像中的初始化代碼運行時根據(jù)需要再讀取非初始化代碼部分內容并進行處理,以實現(xiàn)對大容量Boot ROM鏡像程序的支持。
文檔編號G06F9/445GK1722089SQ20051003771
公開日2006年1月18日 申請日期2005年2月1日 優(yōu)先權日2005年2月1日
發(fā)明者謝海雁, 沈寒冰, 朱小茅, 吳俊輝 申請人:蘇州超銳微電子有限公司