EP0685093A4 - Systeme bios comprime. - Google Patents

Systeme bios comprime.

Info

Publication number
EP0685093A4
EP0685093A4 EP94909611A EP94909611A EP0685093A4 EP 0685093 A4 EP0685093 A4 EP 0685093A4 EP 94909611 A EP94909611 A EP 94909611A EP 94909611 A EP94909611 A EP 94909611A EP 0685093 A4 EP0685093 A4 EP 0685093A4
Authority
EP
European Patent Office
Prior art keywords
code
ram
code sequence
cpu
token
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.)
Withdrawn
Application number
EP94909611A
Other languages
German (de)
English (en)
Other versions
EP0685093A1 (fr
Inventor
Dan Kikinis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Elonex IP Holdings Ltd
Original Assignee
ELONEX TECHNOLOGIES Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ELONEX TECHNOLOGIES Inc filed Critical ELONEX TECHNOLOGIES Inc
Publication of EP0685093A1 publication Critical patent/EP0685093A1/fr
Publication of EP0685093A4 publication Critical patent/EP0685093A4/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present invention is in the area of general- purpose computer systems, and pertains more particularly to basic input/output (BIOS) systems for providing instruction sets for initializing such computer systems on startup, reset, or configuration.
  • BIOS basic input/output
  • a computer system to be of any use, must comprise all the computer hardware, such as the CPU, memory devices, communication buses, and so forth. There must also be instruction sets (programs/software) for the CPU to follow to accomplish tasks.
  • the programmed information application software is typically stored on an internal or peripheral memory device to be accessed by the CPU as needed.
  • BIOS basic input/output
  • BIOS systems there are many good texts and references addressing BIOS systems and particularly the BIOS systems for IBM compatible machines.
  • One such useful reference, covering BIOS in general, is The inn Rosch Hardware Bible published by Simon and Schuster, Inc. of New York city, ⁇ 1989 by inn L. Rosch.
  • the section of BIOS characteristics from page 159 through 176 is pertinent and incorporated herein by reference.
  • BIOS implementations in general purpose computers are implemented in single chip erasable programmable non-volatile (EPROM) memory devices resident on a "motherboard” in the computer.
  • EPROM erasable programmable non-volatile
  • suitable non-volatile memory devices including but not limited to EEPROM devices, "Flash Card” memories known in the art, masked ROM devices, CMOS RAM with a battery backup, and magnetic bubble memory.
  • EPROMs As with other integrated circuits, EPROMs (and other non-volatile memories) have been developed over the years to be smaller, less expensive (per unit storage capacity), faster, and capacity has been improved.
  • Newer EPROMS have capacities as high as 512 kilobytes, and there is no physical barrier to higher capacities. Larger units are, however, more expensive, and as capacities increase, higher pin count contributes to higher costs for connection and so forth.
  • BIOS code without larger capacity EPROMs.
  • a firmware device provides a BIOS routine for ⁇ general-purpose computer having a CPU microprocessor, comprising a programmable non-volatiJe memory device, and a BIOS routine stored on the programmable non-volatile memory device.
  • the BIOS routine has a compressed portion, an uncompressed portion operable by the CPU to initialize random access memory in the general-purpose computer, and a decompression utility code operable by the CPU to load the compressed portion, decompress it, and copy the decompressed code to the random access memory.
  • the programmable memory device is an EPROM device.
  • compression is accomplished by a substituting a two line token for a longer sequence, where the longer sequence is a sequence often repeated in the BIOS.
  • the value of the first line is a flag to the decompression routine that the next line is to be used to correlate to the longer sequence and copy that longer sequence in decompression.
  • a general-purpose computer having a compressed BIOS according to the invention, and a method of compressing a BIOS routine for storage on an EPROM is provided as well, following the token scheme.
  • the invention provides a need for storing a BIOS routine and loading and operating the routine, from an EPROM that has a lesser line capacity than the lines of code in the BIOS routine. This lowers the cost of BIOS for computers in general, and provides for more extensive BIOS routines without correspondingly larger EPROMs.
  • Fig. 1 is a diagrammatical representation of a partially compressed BIOS according to an embodiment of the invention.
  • Fig. 2 is a flow chart showing the operation of a computer from startup following a BIOS routine according to the present invention.
  • Fig. 3 is a diagrammatical representation of a token decompression scheme according to an embodiment of the invention.
  • BIOS In most BIOS systems for general purpose computers, the BIOS is stored in an EPROM device as described in the background section above. Upon power up the BIOS initializes the system, doing basic tasks like accessing and checking the operation of on-board random-access memory RAM, and typically, somewhere during the initialization, at least a part of the BIOS code is copied (the BIOS copies itself) into a portion of the on-board RAM.
  • shadow RAM The portion of RAM reserved for BIOS code in a computer is generally termed "shadow" RAM.
  • shadow RAM is also used in the industry for a particular hardware type of memory device wherein each volatile memory cell has a connected non-volatile (EPROM-type) cell. These are more properly called NVRAM devices, and are not what is meant in this description by shadow RAM. Shadow RAM for the purpose of this disclosure is simply that portion of RAM reserved for a copy of part or all of the BIOS code.
  • BIOS In typical general-purpose computers, as soon as the system receives power, the BIOS tests and initializes system RAM, then copies (shadows) itself from the EPROM to the RAM. The BIOS continues to run in RAM.
  • the purpose of shadowing the BIOS in RAM is to give the CPU microprocessor much faster access to the BIOS code than it would have by accessing the EPROM every time a BIOS code sequence is needed in continuing operations.
  • the present invention comprises a means of compressing at least a significant portion of the BIOS code, storing all of the BIOS code, including the compressed portion, in EPROM, and releasing the compressed code on powerup, so all of the code is available for the computer to use. Also on powerup, the entire code is shadowed to RAM.
  • Fig. 1 is a diagrammatical representation of a compressed BIOS 11 according to the present invention.
  • Portion 13 is code to perform all operations to initialize and test the system RAM, and make it ready for use, and is a familiar portion of conventional BIOS routines. This portion in some applications needs to perform such functions as initializing and testing a memory controller and cache controllers and cache memory.
  • Portion 15 is a decompression utility.
  • Portion 17 represents the balance of the BIOS code in compressed form. It will be apparent to those with skill in the art that there are a number of compression schemes and related decompression routines that might be used.
  • Fig. 2 is a flow chart showing the operation of a computer from startup following a BIOS routine according to the present invention. From powerup signal 19, which is typically derived from the act of closing the power on switch, operation goes to initialization operation 21, during which system RAM is initialized. In operation 21, the system runs portion 13 of Fig. 1.
  • decompression utility 15 (Fig. 1) is accessed and run in operation 23.
  • the decompression utility processes the balance of the BIOS code (compressed), translates it into operable code, and shadows it to system RAM.
  • decompression utilities are available, the code pointing to the compressed portion of the BIOS, and that which causes the decompressed code to be shadowed to RAM is not a part of a conventional decompression routine. These commands are added to the BIOS of the invention.
  • BIOS is shadowed operation continues (25) from the BIOS in system RAM. All remaining BIOS processes, including testing and initializing the remainder of the computer subsystems are accomplished in this operating portion.
  • BIOS code may be compressed is based on the fact that BIOS routines, as is common in most other coded instruction sets, make use of frequently repeated code sequences.
  • EPROMs used for BIOS are typically byte-wide devices, that is, the device can store "words" of 8 bits. A sixteen bit word requires, then, two lines of BIOS code.
  • the token in this embodiment is a two byte code in which the first byte is a flag to the decompression utility that the following byte is a pointer.
  • the pointer portion is an entry to a table which is a part of the decompression utility, and points to the specific, oft repeated, code sequence. In a simple such system, the table might have but one entry.
  • a frequently repeated code sequence in a BIOS might be a "call keyboard” sequence, which for the purpose of this example, may be eight lines of code.
  • the token could be two lines of code in which the first line is the binary representation of the hexadecimal "FF".
  • hex FF is a flag indicating that the following byte is a pointer.
  • the pointer can be any value representable by a digital byte, that is any one of 256 values.
  • the requirement is simply that the decompression utility associate the pointer with the oft- repeated BIOS code sequence, and substitute that sequence in decompression and copying the BIOS code to RAM. In this scheme an oft-repeated code sequence need be stored only once in the BIOS portion that is the decompression utility.
  • Fig. 3 is a diagrammatical representation of the token decompression scheme described above.
  • the decompression utility is booted, and begins to read the compressed portion of the BIOS at Start 27.
  • the decompression utility loads the first/next byte from the compressed portion of the EPROM BIOS. If this byte is hex FF (31), it is recognized as a token, and control goes to 33, where the system reads the byte following the token flag. This byte is always a pointer to a code sequence.
  • the system associates the pointer byte with the code sequence from a preprogrammed table and loads the associated sequence.
  • the system copies the n lines of code pointed by the pointer byte to the next n lines in shadow RAM.
  • Control then goes to decision point 39 and determines if the last loaded byte from compressed BIOS was the last byte. If so, control jumps to a predetermined entry point in the decompressed shadow RAM, and the BIOS routine continues. If not, control goes back to 29 and the next line of compressed code is loaded.
  • BIOS non-volatile memory
  • a compressed BIOS may be stored, retrieved, and decompressed
  • several of these have been listed above.
  • the fact of compressing the routines in the BIOS, including a loadable decompression routine, extends the capacity of any such finite non-volatile memory devices and hence the size of a BIOS routine that may be stored thereon.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
EP94909611A 1993-02-19 1994-02-10 Systeme bios comprime. Withdrawn EP0685093A4 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1959293A 1993-02-19 1993-02-19
US19592 1993-02-19
PCT/US1994/001558 WO1994019768A1 (fr) 1993-02-19 1994-02-10 Systeme bios comprime

Publications (2)

Publication Number Publication Date
EP0685093A1 EP0685093A1 (fr) 1995-12-06
EP0685093A4 true EP0685093A4 (fr) 1997-04-02

Family

ID=21794018

Family Applications (1)

Application Number Title Priority Date Filing Date
EP94909611A Withdrawn EP0685093A4 (fr) 1993-02-19 1994-02-10 Systeme bios comprime.

Country Status (3)

Country Link
EP (1) EP0685093A4 (fr)
JP (1) JPH08509826A (fr)
WO (1) WO1994019768A1 (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421776B1 (en) * 1994-10-14 2002-07-16 International Business Machines Corporation Data processor having BIOS packing compression/decompression architecture
US5819115A (en) * 1996-06-28 1998-10-06 Compaq Computer Corporation Driver bundle including a compressed, self-extracting, executable driver for the host processor and an adapter driver for the processor of a network adapter card
US5940871A (en) * 1996-10-28 1999-08-17 International Business Machines Corporation Computer system and method for selectively decompressing operating system ROM image code using a page fault
FI113708B (fi) * 1997-09-29 2004-05-31 Nokia Corp Menetelmä ja laite suoritettavien ohjelmien tallentamiseksi ja käyttämiseksi
FR2769453B1 (fr) 1997-10-06 2000-01-07 Telediffusion Fse Procede d'evaluation de la degradation d'une image video introduite par un systeme de codage et/ou de stockage et/ou de transmission numerique
KR100313996B1 (ko) * 1998-01-08 2001-12-28 구자홍 컴퓨터시스템의바이오스데이터저장장치및방법
US6381218B1 (en) 1998-09-11 2002-04-30 Compaq Computer Corporation Network controller system that uses directed heartbeat packets
US6229538B1 (en) 1998-09-11 2001-05-08 Compaq Computer Corporation Port-centric graphic representations of network controllers
US6272113B1 (en) 1998-09-11 2001-08-07 Compaq Computer Corporation Network controller system that uses multicast heartbeat packets
JP4689006B2 (ja) * 1999-06-18 2011-05-25 フィーニックス  テクノロジーズ  リミテッド 通常のos制御下でコンピュータのプリ−ブート及びポスト−ブート作動の際にアプリケーションを実行する方法と装置
DE10236571A1 (de) 2002-08-08 2004-02-26 Astrium Gmbh Verfahren zum Betrieb einer Datenverarbeitungseinrichtung unter Verwendung komprimierter Daten
GB2404748B (en) * 2003-08-01 2006-10-04 Symbian Ltd Computing device and method
CN101692349A (zh) * 2009-10-23 2010-04-07 中兴通讯股份有限公司 一种设备及其进行数据存储和启动的方法
JP2012015812A (ja) * 2010-06-30 2012-01-19 Kyocera Mita Corp 画像形成装置
FR3028642B1 (fr) * 2014-11-13 2016-12-23 Oberthur Technologies Procede de personnalisation d'un microcircuit avec ecriture d'une partie compressee d'entite logicielle, et procede d'utilisation et microcircuit correspondants

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4988988A (en) * 1988-10-20 1991-01-29 Nittan Company Ltd. Central monitoring and alarming system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8900368D0 (en) * 1989-01-09 1989-03-08 Crosfield Electronics Ltd Bit map modification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4988988A (en) * 1988-10-20 1991-01-29 Nittan Company Ltd. Central monitoring and alarming system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"COMPRESSED BOOT IMAGE", RESEARCH DISCLOSURE, no. 333, 1 January 1992 (1992-01-01), pages 7, XP000281118 *
"COMPRESSED IPL ROM", RESEARCH DISCLOSURE, no. 333, 1 January 1992 (1992-01-01), pages 6, XP000281117 *
See also references of WO9419768A1 *

Also Published As

Publication number Publication date
EP0685093A1 (fr) 1995-12-06
JPH08509826A (ja) 1996-10-15
WO1994019768A1 (fr) 1994-09-01

Similar Documents

Publication Publication Date Title
EP1015976B1 (fr) Transfert de donnees vers une memoire remanente
US8078586B2 (en) Accessing file data stored in non-volatile re-programmable semiconductor memories
EP0685093A1 (fr) Systeme bios comprime
US5479639A (en) Computer system with a paged non-volatile memory
US6421776B1 (en) Data processor having BIOS packing compression/decompression architecture
US5671413A (en) Method and apparatus for providing basic input/output services in a computer
US6496882B2 (en) Method and system for virtual memory compression in an embedded system
EP0127440A2 (fr) Dispositif de circuit intégré incorporant une unité de traitement de données et une ROM mémorisant des programmes d'application
WO1997044739A1 (fr) Dispositif de conversion de donnees entre differents formats et systeme et procede d'emploi associes
GB2162346A (en) High speed program store with bootstrap
WO1985003150A1 (fr) Systeme de traitement de donnees comprenant une hierarchie de la memoire
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
US4422144A (en) Microinstruction substitution mechanism in a control store
JPH0341859B2 (fr)
EP1490766A2 (fr) Disque dur discret, invisible au bios, toujours actif, en tant que sauvegarde robuste servant d'image du disque dur et en cas de defaut de logiciel
US7222258B2 (en) Compressing a firmware image
US5842012A (en) Efficient soft reset in a personal computer
WO1982001429A1 (fr) Registre d'empilage pour processeur de donnees
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
US6792565B1 (en) Address conversion device for nonvolatile memory
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
US6990575B2 (en) Apparatus and process for a starting a data processing installation
EP3323039B1 (fr) Procédé pour agrandir une mémoire de données dans une architecture de microprocesseur existante avec adressage mémoire limité
KR20000048754A (ko) 마이크로프로세서 및 스택 메모리를 갖는 회로장치
JPH07168694A (ja) プロセッサおよびそれを用いたデータ処理システム

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19950801

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT CH DE FR GB LI NL

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ELONEX TECHNOLOGIES, INC.

A4 Supplementary search report drawn up and despatched

Effective date: 19970217

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): AT CH DE FR GB LI NL

17Q First examination report despatched

Effective date: 19981009

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ELONEX I.P. HOLDINGS LIMITED

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19990220