CN1100540A - 压缩的基本输入/输出系统 - Google Patents
压缩的基本输入/输出系统 Download PDFInfo
- Publication number
- CN1100540A CN1100540A CN 94114930 CN94114930A CN1100540A CN 1100540 A CN1100540 A CN 1100540A CN 94114930 CN94114930 CN 94114930 CN 94114930 A CN94114930 A CN 94114930A CN 1100540 A CN1100540 A CN 1100540A
- Authority
- CN
- China
- Prior art keywords
- code
- ram
- cpu
- bios
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
用于在通用计算机中把BIOS例行程序从一个
EPROM供给RAM的装置,其中假设BIOS例行
程序的代码行多于E-PROM的容量。该BIOS例
行程序存在EPROM中的三个部分,第一部分未经
压缩,它由计算机的CPU装入和操作以初始
RAM。第二部分由若干方式压缩。第三部分是解
压缩实用程序,由CPU装入并操作以便把EPROM
的压缩部分解压缩,并将解压缩的代码考贝到
RAM,从而生成RAM中的BIOS。
Description
本发明涉及通用计算机系统,尤其涉及基本输入/输出系统(BIOS),该类系统用于提供指令集以便在计算机系统初启,复位或配置时对其进行初始化处理。
在现有技术中,一个计算机系统必须包括所有计算机硬件,例如CPU,存储器,通讯总线等等。还必须有指令集(程序/软件)以便使CPU执行任务。编程的信息(应用软件)通常存在内存或外存中,以供CPU在按需时进行存取。
为能操作外设对应用软件和数据进行存取,并装载和运行程序,计算机必须有某些与应用程序无关的最低操作能力。该操作能力来自于通常被永久性记录且“只可读”的指令集,其术语上称为“基本输入/输出系统(BIOS)”。当计算机被引导或再引导时,BIOS被访问以初始化和测试电路及外设。存在BIOS中的例行程序要在操作中被存储以便呼应从应用程序生成的命令提供基本操作特性。
有很多的文本和参考文件是关于BIOS,尤其是关于IBM兼容机的BIOS系统的。其中可用于通用BIOS系统的参考文件之一是“Winn Rosch硬件大全(Winn Rosch Hardware Bible),由纽约市的西蒙和苏斯特公司(Simon and Schuster,Inc.of New York City)出版,其作者为Winn L.诺斯(Winn L.Rosch)。从第159页到176页有关BIOS特性部分涉及本发明的背景技术,因此引用于此以作参考。
虽然大部分通用计算机的BIOS实施是由一片位于计算机的主机板(motterboard)上的可擦去可编程的非易失性存储器设备(EPROM)完成,但是也有其他适合的非易失性存储器设备已为使用,包括有(但不局限于)EEPROM设备,闪光卡(flash card)存储器,掩膜ROM设备,有电池后备的CMOS以及磁泡存储器。
与其它集成电路一起,EPROM(及其他非易失性存储器)已经过多年发展,其体积变小且成本降低(每单元存储容量),速度提高,且存储容量大为增加。第一批EPROM之一的Intel 1702有256字节的容量。而较新的EPROM则有512千字节的容量,且其没有物理阻碍使之达到更高容量。但是,较大部件随着容量的增加而相应提高其成本,较多的引脚会导致高的制作费用。
问题在于提高通用计算机的容量及能力需要更大的BIOS系统,其结果又导致需求更大更快的EPROM芯片,从而成本加高,因此,所需要的是:无需较大容量的EPROM而可以扩展BIOS代码的一种装置。
发明概述
根据本发明的最佳实施例的硬件设备为具有一CPU微处理器的通用计算机提供了BIOS例行程序,其中包括一个可编程非易失性存储器,以及一个存于其中的BIOS例行程序。该BIOS例行程序有一已压缩部分,一个由CPU操作对通用计算机中的RAM进行初始化处理的非压缩部分,以及可由CPU操作以装载压缩部分,对其解压缩并将解压缩的代码复制到RAM的解压缩实用代码,在最佳实施例中,可编程存储设备是一个EPROM。
在一具体的压缩方案中,压缩是由取代用于较长序列的双行标志的方式进行,其中,较长序列是通常在BIOS中反复处理的序列。第一行的值是对解压缩例行程序的标帜。下一行使用解压缩例行程序与较长序列相关联并将较长序列在解压缩中复制。
本发明中的通用计算机有一压缩的BIOS。本发明还提供了一种对BIOS例行程序按照标志格式进行压缩以将其存在EPROM中的方法。
本发明可在一个小于BIOS例行程序中的代码行容量的EPROM中存储BIOS例行程序,据此装载并操作该例行程序。如此便降低了BIOS的成本,并无需大EPROM时提供了扩展BIOS例行程序。
图1是根据本发明的一个实施例的特定压缩BIOS的示图;
图2是一流程图,示出按照本发明的BIOS例行程序初启计算机的操作;
图3是根据本发明一个实施例的标志压缩格式的示图。
如上述背景部分所述,在大部分通用计算机的BIOS系统中,BIOS存在一个EPROM中,当初启时,BIOS初始该系统,执行基本任务,例如存取和检测电路板上的RAM,尤其是在初始化期间,至少一部分BIOS代码被复制到电路板上的RAM中。
在计算机中为BIOS代码保留的RAM部分通常称为“投影”RAM,该术语亦用于存储器硬件工业中。其中,每个易失存储器单元有一相连的非易失(EPROM型)单元。这些被更为适当的命名为NVRAM设备,但其不是投影RAM的含义所指。投影RAM只是指为复制所有或部分BIOS代码所保留的RAM部分。
在通用计算机中,一旦系统接通电源,BIOS即对系统RAM进行测试和初始化,然后从EPROM中将其本身考贝(投影)到RAM。BIOS继续在RAM中运行。在RAM中投影BIOS的目的是让CPU微处理器更快速地存取BIOS代码,其速度比在连续操作中每次存取需要的一个BIOS代码时对EPROM进行访问的速度要快的多。
本发明包括一个装置用于压缩BIOS码的至少一重要部分存储所有BIOS代码把压缩部分包括在EPROM中,并在初启时释放压缩的代码,以使全部的代码可供计算机使用。此外,当初启时,全部代码被投影到RAM。
图1是根据本发明的压缩BIOS11的示图。该代码有三个不同的部分。13是一部分代码,用于执行所有操作以便初始化和测试系统RAM使其易于使用,是与常规BIOS例行程序相似的部分,在某些应用中,该部分需要执行初始化和测试存储器控制器,调整缓冲存储器控制器,以及调整缓冲存储器。部分15是解压缩实用程序。部分17表示压缩格式的BIOS代码的平衡。本技术领域的技术人员可知还有许多压缩方式及解压缩例行程序可供使用。
图2是一流程图,展示了根据本发明从初启接BIOS例行程序进行计算机操作的过程。从出自于接通电源开关而得到电源接通信号19开始,操作过程进到初始化操作21,在该期间,系统RAM被初始化,在操作21中,系统运行图1的部分13。
下一步,图1的解压缩实用程序在操作23中被取出并被运行。该解压缩实用程序处理BIOS代码的其余部分(压缩部分),将其变换为可操作码,并将其投影到系统RAM。虽然这类解压缩实用程序可供使用,但是指向BIOS压缩部分的代码并导致解压缩代码投影RAM的代码不是常规解压缩例行程序的一部分。这些命令被加到本发明的BIOS之中。
当BIOS被投影之后,操作将在系统RAM中继续运行BIOS,所有剩下的BIOS处理,包括对计算机子系统其余部分的测试和初始化,都将在这一操作部分中完成。
如其它代码指令集一样,可压缩BIOS的装置是取决于BIOS例行程序利用经常反复的代码序列这一事实。用于BIOS的EPROM通常是字节宽设备,即可存8位码字的设备。一个16位码字则需两行BIOS代码。
在这一实施例中,经常重复的代码序列在BIOS的已压缩部分是以标志所取代的。在这一实施例中的标志是一个两个字节的代码,其中,第一字节是对解压缩实用程序的标志,而下一字节则为指针。指针部分是对一个表的入口,该表则是解压缩实用程序的一部分,该指针指向具体的,经常重复的代码序列。在一个简单系统中,该表可以有不只一个入口。
例如,一个在BIOS中经常重复的代码序列可以是一个“调用键盘”序列,它可以是例如8行代码。标记可是两行代码,其中,第一行是十六进制“FF”的2进制表示。在这一方式中,十六进制的FF是一个标志,指示出下一字节是指针。然后,指针可以是一个数字字节可表示的任意值,即为256个值中任意之一。唯一的要求是解压缩实用程序将指针和经常重复的BIOS代码相关联,并取代解压缩中的序列,和把BIOS考贝到RAM中。在这一方式中,一个经常重复的代码序列只需要在作为解压缩实用程序的BIOS部分中存储一次。
图3是上述标志解压缩方式的图示。在根据本发明实施例的BIOS已初始化和测试了RAM之后,初启解压缩实用程序并在起始27处开始读BIOS的解压缩部分,在29处,解压缩实用程序从EPROM BIOS的压缩部分装入第一/下一个字节。若该字节是十六进制的FF(31),它被标识为一个标志,且控制进到33,在该处,系统在标志的标识之后读出该字节。该字节总是一个对于代码序列的指针。
在35处,系统把指针字节与来自编程表的代码序列相关联并装入相关联的序列。在37处,系统把指针字节指向的n行代码考贝到投影RAM中的随后的n行。然后控制进到差别指针39并确定是否来自压缩的BIOS的最后装入的字节是否为最后的字节。若是,控制转向解压缩的投影RAM中的预定入口点,并继续BIOS例行程序。否则,控制返回29并装入下一行压缩的代码。
在判别框31处,若十六进制值不是FF,则从压缩的BIOS中装入的代码行被直接考贝到投影BIOS中的下一行。
对本技术领域的一般技术人员而言,有许多属于本发明范畴之内的具体的改型及变化。例如,许多非易失性存储器可用于存储,检索和解压缩已被压缩的BIOS,其中的一些已在本文中列出压缩的BIOS例行程序,包括一个可装载解压缩例行程序的处理扩展了非易失性存储器的容量,并因此扩展了可存储的BIOS例行程序。
确实有很多可用于压缩部分BIOS的压缩方式。本发明并不限于确定要压缩的BIOS代码的特定代码关系。本发明由随后的权利要求所限定。
Claims (11)
1、为具有CPU微处理器的通用计算机提供BIOS例行程序的装置,其特征在于包括:
一个可编程非易失性存储器单元,以及
一个存在所述可编程非易失性存储器单元中的BIOS例行程序;
所述BIOS例行程序包括一个压缩的部分,一个由所述CPU操作以便为所述通用计算机的随机存取存储器使用的未压缩部分,以及一个由所述CPU操作以便装入该压缩部分,对该压缩部分解压缩,并将解压缩代码考贝到该随机存取存储器的解压缩实用代码。
2、权利要求1所述装置,其中所述非易失性存储器装置是EPROM、EEPOM、闪光卡存储器、掩膜ROM、有电池后备的CMOS存储器,以及磁泡存储器之一种。
3、权利要求1所述装置,其中所述的压缩部分由具有表示一被重复代码序列的标志码所压缩,该重复代码序列比所述标志码长,该标志代码由所述CPU标识,该CPU运行解压缩实用代码以便由所述重复代码序列在解压缩期间取代所述标志码。
4、一个通用计算机,其特征在于包括:
一个CPU微处理器,用于管理该计算机的操作:
随机存取存储器(RAM),用于在该计算机的操作过程中存储可操作的例行程序和数据;
一个可编程非易失性存储器,一个BIOS例行程序存于其中,该例行程序包括一个压缩的部分,一个未压缩的部分,以及一个解压缩实用程序;
所述未压缩部分由所述CPU操作以便准备所说的RAM以供使用,而且所述压缩例行程序由CPU操作对压缩的部分进行解压缩,并将解压缩的代码考贝到所述随机存取存储器。
5、权利要求4所述计算机,其中所述可编程只读存储器是EPROM,EEPROM,闪光卡存储器,掩膜ROM,有电池后备的CMOS存储器,以及磁泡存储器之一种。
6、权利要求4所述计算机,其中所述压缩部分是通过具有表示一个重复的代码序列一个标志码压缩而成的,该重复代码序列比该标志代码长,该标志代码由CPU所标识,该CPU运行解压缩实用代码以便在解压缩期间由所述重复的代码序列取代所述标志码。
7、用于在具有n行容量的非易失性存储器中存储具有N行代码的BIOS例行程序的方法,其中N>n,所述方法的特征在于包括以下步骤:
将一个第一代码序列作为未压缩部分存储起来,该第一代码序列由一个CPU操作以将机板上的RAM准备好以供使用;
将一个第二代码序列作为压缩的部分存储起来,在解压缩时由CPU操作该第二代码序列执行BIOS功能;以及
将一个第三代码序列作为解压缩实用程序存储起来,该第三代码序列由CPU操作以便对所述第二代码序列解压缩并将解压缩的代码考贝到RAM。
8、权利要求7所述方法,其中所述压缩的部分通过具有表示一个重复的代码序列的标志码所压缩,该重复代码序列比该标志代码要长,该标志代码由CPU标识,该CPU运行解压缩实用代码以便在解压缩期间由重复的代码序列取代所述标志码。
9、在初启时的通用计算机中的RAM的预定部分提供一个位于RAM中的BIOS例行程序的方法,其中所述计算机有一CPU微处理器,所述方法的特征在于包括以下步骤:
从一个非易失存储单元将用于对RAM进行初始化的一个第一码序列装入到CPU,并对该第一码序列进行操作以准备该RAM以供使用;
从一个非易失存储单元将用于进行解压缩代码的一个第二代码序列输入到CPU,并操作该第二代码序列以便从该非易失存储器输入一个第三压缩代码,并将产生的解压缩代码输入到所说的该RAM的预定部分。
10、权利要求9所述的方法,其中所述压缩的部分是由具有表示一个重复的代码序列的标志码压缩而成的,该重复的代码序列比标志代码长,该标志代码由CPU所标识,该CPU运行所述解压缩实用代码以便在解压缩期间由所述重复的代码序列取代所述标志码。
11、对非易失性存储器的压缩码部分进行解压缩并将该解压缩代码从具有CPU的通用计算机的RAM中指定部分的起始处进行考贝的方法,该方法的特征在于包括以下步骤:
当一行的值与标帜信号不相符时,将一行代码依序从EPROM考贝到RAM;
装入一个下一行并将下一行考贝到RAM中的下一位置,一个多行代码序列在所述一行与标帜信号相符时在一个表中与所述下一行的值相关联;以及
在每次对RAM的复制之后,检测最近装入的代码行是否为非易失性存储器中的最后行,若是,则使控制转向RAM中的指定位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94114930 CN1100540A (zh) | 1994-08-18 | 1994-08-18 | 压缩的基本输入/输出系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94114930 CN1100540A (zh) | 1994-08-18 | 1994-08-18 | 压缩的基本输入/输出系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1100540A true CN1100540A (zh) | 1995-03-22 |
Family
ID=5037268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 94114930 Pending CN1100540A (zh) | 1994-08-18 | 1994-08-18 | 压缩的基本输入/输出系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1100540A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145356A1 (zh) * | 2009-10-23 | 2010-12-23 | 中兴通讯股份有限公司 | 一种设备及其进行数据存储和启动的方法 |
US10007606B2 (en) | 2016-03-30 | 2018-06-26 | Intel Corporation | Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory |
US10042562B2 (en) | 2015-12-23 | 2018-08-07 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
US10120806B2 (en) | 2016-06-27 | 2018-11-06 | Intel Corporation | Multi-level system memory with near memory scrubbing based on predicted far memory idle time |
US10185619B2 (en) | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
US10304814B2 (en) | 2017-06-30 | 2019-05-28 | Intel Corporation | I/O layout footprint for multiple 1LM/2LM configurations |
US10445261B2 (en) | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
US10691626B2 (en) | 2011-09-30 | 2020-06-23 | Intel Corporation | Memory channel that supports near memory and far memory access |
CN111596973A (zh) * | 2020-07-22 | 2020-08-28 | 翱捷科技(上海)有限公司 | 芯片内执行模式下的数据存储方法、装置及终端 |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
US10915453B2 (en) | 2016-12-29 | 2021-02-09 | Intel Corporation | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
-
1994
- 1994-08-18 CN CN 94114930 patent/CN1100540A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145356A1 (zh) * | 2009-10-23 | 2010-12-23 | 中兴通讯股份有限公司 | 一种设备及其进行数据存储和启动的方法 |
US10691626B2 (en) | 2011-09-30 | 2020-06-23 | Intel Corporation | Memory channel that supports near memory and far memory access |
US10042562B2 (en) | 2015-12-23 | 2018-08-07 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
US10007606B2 (en) | 2016-03-30 | 2018-06-26 | Intel Corporation | Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory |
US10185619B2 (en) | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
US10120806B2 (en) | 2016-06-27 | 2018-11-06 | Intel Corporation | Multi-level system memory with near memory scrubbing based on predicted far memory idle time |
US10915453B2 (en) | 2016-12-29 | 2021-02-09 | Intel Corporation | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures |
US10445261B2 (en) | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
US10304814B2 (en) | 2017-06-30 | 2019-05-28 | Intel Corporation | I/O layout footprint for multiple 1LM/2LM configurations |
US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
CN111596973A (zh) * | 2020-07-22 | 2020-08-28 | 翱捷科技(上海)有限公司 | 芯片内执行模式下的数据存储方法、装置及终端 |
CN111596973B (zh) * | 2020-07-22 | 2020-11-10 | 翱捷科技股份有限公司 | 芯片内执行模式下的数据存储方法、装置及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1100540A (zh) | 压缩的基本输入/输出系统 | |
JP3225638B2 (ja) | データを圧縮するための装置及び方法並びにデータ処理システム | |
CN100394405C (zh) | 用于变化内存压缩机器的方法和装置 | |
US5617552A (en) | Lossless data compression system and method | |
US6496882B2 (en) | Method and system for virtual memory compression in an embedded system | |
JPH10228381A (ja) | 組み込みシステムにライブラリをロードする方法及び装置 | |
JP2001510598A (ja) | コンピュータ・ファイルにアクセスするためのデバイス駆動装置 | |
DE4228756A1 (de) | Mikroprozessorsystem | |
CN1707432A (zh) | 确定环境变量在非易失性存储器中的位置 | |
US6195107B1 (en) | Method and system for utilizing virtual memory in an embedded system | |
CN1398371A (zh) | 在操作系统装载之前更改操作系统启动顺序的系统和方法 | |
EP0685093A1 (en) | Compressed bios system | |
EP0925539A1 (en) | Persistent heap for dynamic picture objects | |
Williams et al. | Dynamic grouping in an object-oriented virtual memory hierarchy | |
CN1921019A (zh) | 通过数据压缩处理以测试存储器的方法 | |
US6694393B1 (en) | Method and apparatus for compressing information for use in embedded systems | |
US6226411B1 (en) | Method for data compression and restoration | |
US5745749A (en) | Method and system of file version clustering of object blocks using a compiler and database and having a predetermined value | |
CN114661670A (zh) | 基于Fuse文件系统的文件解压方法、系统及设备 | |
US7441254B1 (en) | Simulation of memory-mapped I/O | |
JPH0628150A (ja) | プログラム容量圧縮方法 | |
JPH04284551A (ja) | 圧縮データを格納した読み出し専用メモリを備えた装置 | |
Noble et al. | Patterns for managing limited memory | |
JPH04195559A (ja) | サブファイル管理方式 | |
Consolazio et al. | Optimization of Finite‐Element Software Using Data‐Compression Techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |