專利名稱:壓縮的基本輸入/輸出系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通用計算機系統(tǒng),尤其涉及基本輸入/輸出系統(tǒng)(BIOS),該類系統(tǒng)用于提供指令集以便在計算機系統(tǒng)初啟,復(fù)位或配置時對其進(jìn)行初始化處理。
在現(xiàn)有技術(shù)中,一個計算機系統(tǒng)必須包括所有計算機硬件,例如CPU,存儲器,通訊總線等等。還必須有指令集(程序/軟件)以便使CPU執(zhí)行任務(wù)。編程的信息(應(yīng)用軟件)通常存在內(nèi)存或外存中,以供CPU在按需時進(jìn)行存取。
為能操作外設(shè)對應(yīng)用軟件和數(shù)據(jù)進(jìn)行存取,并裝載和運行程序,計算機必須有某些與應(yīng)用程序無關(guān)的最低操作能力。該操作能力來自于通常被永久性記錄且“只可讀”的指令集,其術(shù)語上稱為“基本輸入/輸出系統(tǒng)(BIOS)”。當(dāng)計算機被引導(dǎo)或再引導(dǎo)時,BIOS被訪問以初始化和測試電路及外設(shè)。存在BIOS中的例行程序要在操作中被存儲以便呼應(yīng)從應(yīng)用程序生成的命令提供基本操作特性。
有很多的文本和參考文件是關(guān)于BIOS,尤其是關(guān)于IBM兼容機的BIOS系統(tǒng)的。其中可用于通用BIOS系統(tǒng)的參考文件之一是“Winn Rosch硬件大全(Winn Rosch Hardware Bible),由紐約市的西蒙和蘇斯特公司(Simon and Schuster,Inc.of New York City)出版,其作者為Winn L.諾斯(Winn L.Rosch)。從第159頁到176頁有關(guān)BIOS特性部分涉及本發(fā)明的背景技術(shù),因此引用于此以作參考。
雖然大部分通用計算機的BIOS實施是由一片位于計算機的主機板(motterboard)上的可擦去可編程的非易失性存儲器設(shè)備(EPROM)完成,但是也有其他適合的非易失性存儲器設(shè)備已為使用,包括有(但不局限于)EEPROM設(shè)備,閃光卡(flash card)存儲器,掩膜ROM設(shè)備,有電池后備的CMOS以及磁泡存儲器。
與其它集成電路一起,EPROM(及其他非易失性存儲器)已經(jīng)過多年發(fā)展,其體積變小且成本降低(每單元存儲容量),速度提高,且存儲容量大為增加。第一批EPROM之一的Intel 1702有256字節(jié)的容量。而較新的EPROM則有512千字節(jié)的容量,且其沒有物理阻礙使之達(dá)到更高容量。但是,較大部件隨著容量的增加而相應(yīng)提高其成本,較多的引腳會導(dǎo)致高的制作費用。
問題在于提高通用計算機的容量及能力需要更大的BIOS系統(tǒng),其結(jié)果又導(dǎo)致需求更大更快的EPROM芯片,從而成本加高,因此,所需要的是無需較大容量的EPROM而可以擴展BIOS代碼的一種裝置。
發(fā)明概述根據(jù)本發(fā)明的最佳實施例的硬件設(shè)備為具有一CPU微處理器的通用計算機提供了BIOS例行程序,其中包括一個可編程非易失性存儲器,以及一個存于其中的BIOS例行程序。該BIOS例行程序有一已壓縮部分,一個由CPU操作對通用計算機中的RAM進(jìn)行初始化處理的非壓縮部分,以及可由CPU操作以裝載壓縮部分,對其解壓縮并將解壓縮的代碼復(fù)制到RAM的解壓縮實用代碼,在最佳實施例中,可編程存儲設(shè)備是一個EPROM。
在一具體的壓縮方案中,壓縮是由取代用于較長序列的雙行標(biāo)志的方式進(jìn)行,其中,較長序列是通常在BIOS中反復(fù)處理的序列。第一行的值是對解壓縮例行程序的標(biāo)幟。下一行使用解壓縮例行程序與較長序列相關(guān)聯(lián)并將較長序列在解壓縮中復(fù)制。
本發(fā)明中的通用計算機有一壓縮的BIOS。本發(fā)明還提供了一種對BIOS例行程序按照標(biāo)志格式進(jìn)行壓縮以將其存在EPROM中的方法。
本發(fā)明可在一個小于BIOS例行程序中的代碼行容量的EPROM中存儲BIOS例行程序,據(jù)此裝載并操作該例行程序。如此便降低了BIOS的成本,并無需大EPROM時提供了擴展BIOS例行程序。
圖1是根據(jù)本發(fā)明的一個實施例的特定壓縮BIOS的示圖;
圖2是一流程圖,示出按照本發(fā)明的BIOS例行程序初啟計算機的操作;
圖3是根據(jù)本發(fā)明一個實施例的標(biāo)志壓縮格式的示圖。
如上述背景部分所述,在大部分通用計算機的BIOS系統(tǒng)中,BIOS存在一個EPROM中,當(dāng)初啟時,BIOS初始該系統(tǒng),執(zhí)行基本任務(wù),例如存取和檢測電路板上的RAM,尤其是在初始化期間,至少一部分BIOS代碼被復(fù)制到電路板上的RAM中。
在計算機中為BIOS代碼保留的RAM部分通常稱為“投影”RAM,該術(shù)語亦用于存儲器硬件工業(yè)中。其中,每個易失存儲器單元有一相連的非易失(EPROM型)單元。這些被更為適當(dāng)?shù)拿麨镹VRAM設(shè)備,但其不是投影RAM的含義所指。投影RAM只是指為復(fù)制所有或部分BIOS代碼所保留的RAM部分。
在通用計算機中,一旦系統(tǒng)接通電源,BIOS即對系統(tǒng)RAM進(jìn)行測試和初始化,然后從EPROM中將其本身考貝(投影)到RAM。BIOS繼續(xù)在RAM中運行。在RAM中投影BIOS的目的是讓CPU微處理器更快速地存取BIOS代碼,其速度比在連續(xù)操作中每次存取需要的一個BIOS代碼時對EPROM進(jìn)行訪問的速度要快的多。
本發(fā)明包括一個裝置用于壓縮BIOS碼的至少一重要部分存儲所有BIOS代碼把壓縮部分包括在EPROM中,并在初啟時釋放壓縮的代碼,以使全部的代碼可供計算機使用。此外,當(dāng)初啟時,全部代碼被投影到RAM。
圖1是根據(jù)本發(fā)明的壓縮BIOS11的示圖。該代碼有三個不同的部分。13是一部分代碼,用于執(zhí)行所有操作以便初始化和測試系統(tǒng)RAM使其易于使用,是與常規(guī)BIOS例行程序相似的部分,在某些應(yīng)用中,該部分需要執(zhí)行初始化和測試存儲器控制器,調(diào)整緩沖存儲器控制器,以及調(diào)整緩沖存儲器。部分15是解壓縮實用程序。部分17表示壓縮格式的BIOS代碼的平衡。本技術(shù)領(lǐng)域的技術(shù)人員可知還有許多壓縮方式及解壓縮例行程序可供使用。
圖2是一流程圖,展示了根據(jù)本發(fā)明從初啟接BIOS例行程序進(jìn)行計算機操作的過程。從出自于接通電源開關(guān)而得到電源接通信號19開始,操作過程進(jìn)到初始化操作21,在該期間,系統(tǒng)RAM被初始化,在操作21中,系統(tǒng)運行圖1的部分13。
下一步,圖1的解壓縮實用程序在操作23中被取出并被運行。該解壓縮實用程序處理BIOS代碼的其余部分(壓縮部分),將其變換為可操作碼,并將其投影到系統(tǒng)RAM。雖然這類解壓縮實用程序可供使用,但是指向BIOS壓縮部分的代碼并導(dǎo)致解壓縮代碼投影RAM的代碼不是常規(guī)解壓縮例行程序的一部分。這些命令被加到本發(fā)明的BIOS之中。
當(dāng)BIOS被投影之后,操作將在系統(tǒng)RAM中繼續(xù)運行BIOS,所有剩下的BIOS處理,包括對計算機子系統(tǒng)其余部分的測試和初始化,都將在這一操作部分中完成。
如其它代碼指令集一樣,可壓縮BIOS的裝置是取決于BIOS例行程序利用經(jīng)常反復(fù)的代碼序列這一事實。用于BIOS的EPROM通常是字節(jié)寬設(shè)備,即可存8位碼字的設(shè)備。一個16位碼字則需兩行BIOS代碼。
在這一實施例中,經(jīng)常重復(fù)的代碼序列在BIOS的已壓縮部分是以標(biāo)志所取代的。在這一實施例中的標(biāo)志是一個兩個字節(jié)的代碼,其中,第一字節(jié)是對解壓縮實用程序的標(biāo)志,而下一字節(jié)則為指針。指針部分是對一個表的入口,該表則是解壓縮實用程序的一部分,該指針指向具體的,經(jīng)常重復(fù)的代碼序列。在一個簡單系統(tǒng)中,該表可以有不只一個入口。
例如,一個在BIOS中經(jīng)常重復(fù)的代碼序列可以是一個“調(diào)用鍵盤”序列,它可以是例如8行代碼。標(biāo)記可是兩行代碼,其中,第一行是十六進(jìn)制“FF”的2進(jìn)制表示。在這一方式中,十六進(jìn)制的FF是一個標(biāo)志,指示出下一字節(jié)是指針。然后,指針可以是一個數(shù)字字節(jié)可表示的任意值,即為256個值中任意之一。唯一的要求是解壓縮實用程序?qū)⒅羔樅徒?jīng)常重復(fù)的BIOS代碼相關(guān)聯(lián),并取代解壓縮中的序列,和把BIOS考貝到RAM中。在這一方式中,一個經(jīng)常重復(fù)的代碼序列只需要在作為解壓縮實用程序的BIOS部分中存儲一次。
圖3是上述標(biāo)志解壓縮方式的圖示。在根據(jù)本發(fā)明實施例的BIOS已初始化和測試了RAM之后,初啟解壓縮實用程序并在起始27處開始讀BIOS的解壓縮部分,在29處,解壓縮實用程序從EPROM BIOS的壓縮部分裝入第一/下一個字節(jié)。若該字節(jié)是十六進(jìn)制的FF(31),它被標(biāo)識為一個標(biāo)志,且控制進(jìn)到33,在該處,系統(tǒng)在標(biāo)志的標(biāo)識之后讀出該字節(jié)。該字節(jié)總是一個對于代碼序列的指針。
在35處,系統(tǒng)把指針字節(jié)與來自編程表的代碼序列相關(guān)聯(lián)并裝入相關(guān)聯(lián)的序列。在37處,系統(tǒng)把指針字節(jié)指向的n行代碼考貝到投影RAM中的隨后的n行。然后控制進(jìn)到差別指針39并確定是否來自壓縮的BIOS的最后裝入的字節(jié)是否為最后的字節(jié)。若是,控制轉(zhuǎn)向解壓縮的投影RAM中的預(yù)定入口點,并繼續(xù)BIOS例行程序。否則,控制返回29并裝入下一行壓縮的代碼。
在判別框31處,若十六進(jìn)制值不是FF,則從壓縮的BIOS中裝入的代碼行被直接考貝到投影BIOS中的下一行。
對本技術(shù)領(lǐng)域的一般技術(shù)人員而言,有許多屬于本發(fā)明范疇之內(nèi)的具體的改型及變化。例如,許多非易失性存儲器可用于存儲,檢索和解壓縮已被壓縮的BIOS,其中的一些已在本文中列出壓縮的BIOS例行程序,包括一個可裝載解壓縮例行程序的處理擴展了非易失性存儲器的容量,并因此擴展了可存儲的BIOS例行程序。
確實有很多可用于壓縮部分BIOS的壓縮方式。本發(fā)明并不限于確定要壓縮的BIOS代碼的特定代碼關(guān)系。本發(fā)明由隨后的權(quán)利要求所限定。
權(quán)利要求
1.為具有CPU微處理器的通用計算機提供BIOS例行程序的裝置,其特征在于包括一個可編程非易失性存儲器單元,以及一個存在所述可編程非易失性存儲器單元中的BIOS例行程序;所述BIOS例行程序包括一個壓縮的部分,一個由所述CPU操作以便為所述通用計算機的隨機存取存儲器使用的未壓縮部分,以及一個由所述CPU操作以便裝入該壓縮部分,對該壓縮部分解壓縮,并將解壓縮代碼考貝到該隨機存取存儲器的解壓縮實用代碼。
2.權(quán)利要求1所述裝置,其中所述非易失性存儲器裝置是EPROM、EEPOM、閃光卡存儲器、掩膜ROM、有電池后備的CMOS存儲器,以及磁泡存儲器之一種。
3.權(quán)利要求1所述裝置,其中所述的壓縮部分由具有表示一被重復(fù)代碼序列的標(biāo)志碼所壓縮,該重復(fù)代碼序列比所述標(biāo)志碼長,該標(biāo)志代碼由所述CPU標(biāo)識,該CPU運行解壓縮實用代碼以便由所述重復(fù)代碼序列在解壓縮期間取代所述標(biāo)志碼。
4.一個通用計算機,其特征在于包括一個CPU微處理器,用于管理該計算機的操作隨機存取存儲器(RAM),用于在該計算機的操作過程中存儲可操作的例行程序和數(shù)據(jù);一個可編程非易失性存儲器,一個BIOS例行程序存于其中,該例行程序包括一個壓縮的部分,一個未壓縮的部分,以及一個解壓縮實用程序;所述未壓縮部分由所述CPU操作以便準(zhǔn)備所說的RAM以供使用,而且所述壓縮例行程序由CPU操作對壓縮的部分進(jìn)行解壓縮,并將解壓縮的代碼考貝到所述隨機存取存儲器。
5.權(quán)利要求4所述計算機,其中所述可編程只讀存儲器是EPROM,EEPROM,閃光卡存儲器,掩膜ROM,有電池后備的CMOS存儲器,以及磁泡存儲器之一種。
6.權(quán)利要求4所述計算機,其中所述壓縮部分是通過具有表示一個重復(fù)的代碼序列一個標(biāo)志碼壓縮而成的,該重復(fù)代碼序列比該標(biāo)志代碼長,該標(biāo)志代碼由CPU所標(biāo)識,該CPU運行解壓縮實用代碼以便在解壓縮期間由所述重復(fù)的代碼序列取代所述標(biāo)志碼。
7.用于在具有n行容量的非易失性存儲器中存儲具有N行代碼的BIOS例行程序的方法,其中N>n,所述方法的特征在于包括以下步驟將一個第一代碼序列作為未壓縮部分存儲起來,該第一代碼序列由一個CPU操作以將機板上的RAM準(zhǔn)備好以供使用;將一個第二代碼序列作為壓縮的部分存儲起來,在解壓縮時由CPU操作該第二代碼序列執(zhí)行BIOS功能;以及將一個第三代碼序列作為解壓縮實用程序存儲起來,該第三代碼序列由CPU操作以便對所述第二代碼序列解壓縮并將解壓縮的代碼考貝到RAM。
8.權(quán)利要求7所述方法,其中所述壓縮的部分通過具有表示一個重復(fù)的代碼序列的標(biāo)志碼所壓縮,該重復(fù)代碼序列比該標(biāo)志代碼要長,該標(biāo)志代碼由CPU標(biāo)識,該CPU運行解壓縮實用代碼以便在解壓縮期間由重復(fù)的代碼序列取代所述標(biāo)志碼。
9.在初啟時的通用計算機中的RAM的預(yù)定部分提供一個位于RAM中的BIOS例行程序的方法,其中所述計算機有一CPU微處理器,所述方法的特征在于包括以下步驟從一個非易失存儲單元將用于對RAM進(jìn)行初始化的一個第一碼序列裝入到CPU,并對該第一碼序列進(jìn)行操作以準(zhǔn)備該RAM以供使用;從一個非易失存儲單元將用于進(jìn)行解壓縮代碼的一個第二代碼序列輸入到CPU,并操作該第二代碼序列以便從該非易失存儲器輸入一個第三壓縮代碼,并將產(chǎn)生的解壓縮代碼輸入到所說的該RAM的預(yù)定部分。
10.權(quán)利要求9所述的方法,其中所述壓縮的部分是由具有表示一個重復(fù)的代碼序列的標(biāo)志碼壓縮而成的,該重復(fù)的代碼序列比標(biāo)志代碼長,該標(biāo)志代碼由CPU所標(biāo)識,該CPU運行所述解壓縮實用代碼以便在解壓縮期間由所述重復(fù)的代碼序列取代所述標(biāo)志碼。
11.對非易失性存儲器的壓縮碼部分進(jìn)行解壓縮并將該解壓縮代碼從具有CPU的通用計算機的RAM中指定部分的起始處進(jìn)行考貝的方法,該方法的特征在于包括以下步驟當(dāng)一行的值與標(biāo)幟信號不相符時,將一行代碼依序從EPROM考貝到RAM;裝入一個下一行并將下一行考貝到RAM中的下一位置,一個多行代碼序列在所述一行與標(biāo)幟信號相符時在一個表中與所述下一行的值相關(guān)聯(lián);以及在每次對RAM的復(fù)制之后,檢測最近裝入的代碼行是否為非易失性存儲器中的最后行,若是,則使控制轉(zhuǎn)向RAM中的指定位置。
全文摘要
用于在通用計算機中把BIOS例行程序從一個EPROM供給RAM的裝置,其中假設(shè)BIOS例行程序的代碼行多于E-PROM的容量。該BIOS例行程序存在EPROM中的三個部分,第一部分未經(jīng)壓縮,它由計算機的CPU裝入和操作以初始RAM。第二部分由若干方式壓縮。第三部分是解壓縮實用程序,由CPU裝入并操作以便把EPROM的壓縮部分解壓縮,并將解壓縮的代碼考貝到RAM,從而生成RAM中的BIOS。
文檔編號G06F9/06GK1100540SQ94114930
公開日1995年3月22日 申請日期1994年8月18日 優(yōu)先權(quán)日1994年8月18日
發(fā)明者丹·基基尼斯 申請人:奧克利系統(tǒng)公司