by Dinesh Thakur

     Computer BIOS

BIOS (Basic Input/Output System) Short for ROM is boot firmware program that a computer uses to successfully start operating. The BIOS is located on a chip inside of the computer and is designed in a way that protects it from disk failure.

When you turn on a PC, the BIOS first conduct a basic hardware check, called a Power-On Self Test (POST), to determine whether all of the attachments are present and working. Then it loads the operating system into your computer's random access memory, or RAM. The BIOS also manages data flow between the computer's operating system and attached devices such as the hard disk, video card, keyboard, mouse, and printer. The BIOS stores the date, the time, and your system configuration information in a battery-powered, non-volatile memory chip, called a CMOS (Complementary Metal Oxide Semiconductor) after its manufacturing process. The main functions of the BIOS are:

(i)   BIOS power on self Test (POST)

(ii)  Bootstrap loader

(iii) BIOS Setup utility program

(iv) System service routines

Functions of BIOS

(i) BIOS Power on Self Test (POST): It is a built-in diagnostic program. This self test ensures that the computer has all of the necessary parts and functionality needed to successfully start itself, such as use of memory, a keyboard and other parts. Then additional tests are done during booting. If errors are detected during the test, the BIOS instruct the computer to give a code that reveals the problem. Error codes are typically a series of beeps heard shortly after startup.

The BIOS also works to give the computer basic information about how to interact with some critical components, such as drives and memory that it will need to load the operating system. Once the basic instructions have been loaded and the self-test has been passed, the computer can proceed with loading the operating system from one of the attached drives. Computer users can often make certain adjustments to the BIOS through a configuration screen on the computer. The setup screen is typically accessed with a special key sequence during the first moments of startup. This setup screen often allows users to change the order in which drives are accessed during startup and control the functionality of a number of critical devices. Features vary among individual BIOS versions. The boot sequences for Award BIOS software are;

(i) Test the CPU

(ii)Initialize support chips

(iii)Initialize the keyboard

(iv)ROM BIOS test

(v)CMOS RAM test

(vi)Memory test

(vii)Cache initialization

(viii)Initialize the vector table

(ix)CMOS RAM check sum

(x)Keyboard initialization

(xi)Video circuit test

(xii)Video memory test

(xiii)DMA Controller test

(xiv)PIC tests

(xv)EISA mode test

(xvi)Enable EISA slots

(xvii)Check memory size

(xviii)Memory test

(xix)Check EISA memory

(xx)Mouse initialization

(xxi)Cache initialization

(xxii)Shadow RAM setup

(xxiii)Floppy test

(xxiv)Hard drive test

(xxv)Serial/parallel port test

(xxvi)Initialize math coprocessor

(xxvii)Boot speed

(xxviii)POST loop

(xxix)Security/Password information

(xxx)Write to CMOS RAM

(xxxi)Initialize adapter ROM

(xxxii)Set up the time

(xxxiii)Boot the system and control given to INT 19 boot loader.

We can also use flash-memory cards to hold BIOS information. This allows users to update the BIOS version on computers after a vendor releases an update. This system was designed to solve problems with the original BIOS or to add new functionality. Users can periodically check for updated BIOS versions, as some vendors release a dozen or more updates over the course of a product's lifetime. Mother board (System) BIOS, Video adapter firmware (BIOS), Drive controller firmware (BIOS), Modem Card firmware (BIOS), Network adapter board BIOS, SCSI adapter BIOS. The mother board BIOS provides routines to support motherboard features. BIOS ROM chips for major sub systems of computer such as video and drive control must also be included.

Actually BIOS can be placed in between the computer and external devices as its name tells it is used for reading the keystroke, displaying values on screen, Reading and writing to and from floppy and hard disks etc.

The keyboard is assigned the port number 60, which is known to BIOS. BIOS read this port and data from keyboard goes to computer.

(ii) Bootstrap Loader: To boot the operating system. The BIOS contains a program known as bootstrap loader whose responsibility is to search and start the operating system boot program. Then the boot program of operating system controls the computer system and boots the operating system.

(iii) BIOS Setup Utility Program: A non volatile memory (NVRAM) is used to store information about the computer system. During installation of a system, the user run BIOS setup program and enter the correct parameters. The settings of memory, disk types and other settings are stored in NVRAM and not in BIOS chip itself. To construct NVRAM, the material required is CMOS (Complementary metal oxide semiconductor). These CMOS chips are very efficient storage devices as they store and maintain data on very low values of current. The system's configurations therefore are also termed as CMOS settings, which we can set using BIOS set up program. The BIOS reads the parameters from CMOS RAM as and when required.

CMOS settings can be maintained by battery backup either by using capacitor or by a battery built into NVRAM chip. This chip also has system clock. If there is no battery, the setting remains for short period of time and we need to reset the system. With it there is loss of BIOS password which protects BIOS set up program.

To clear the CMOS RAM contents, two methods used are

(i) By using clear CMOS jumper.

(ii) By holding down enter key during booting of the system.

For Pentium III motherboards, different set ups are there in AMI BIOS. These are:

• Standard CMOS Setup:It is used to set time date, hard disk type, type of floppy drive, type of monitor and keyboard.

Advanced CMOS Setup:It is used to set typematic rate and delay, above 1 MB memory test, memory test tick sound, Hil < Del> message display, system boot up sequence etc.

• Advanced Chipset Setup:It is used to set features of chipset.

• Power Management Setup:It is used to control power conservation options.

• PCI/Plug and Play Setup:It is used to set options of PCI bus and that of plug and play devices.

• Peripherals Setup:It is used to control options related to I/O controllers.

• CPU Configuration Setup:This setup is used to select the types of CPU installed in the motherboard. In AMI BIOS, the settings are auto as it automatically finds out the type of CPU in the computer system.

(iv) System Service Routines: The BIOS provides various software routines (subprograms) that can be called by higher-level software such, as DOS, Windows, or their applications, to perform different tasks. Virtually every task that involves accessing the system hardware has traditionally been controlled using one or more of the BIOS programs (although many newer operating systems now bypass the BIOS for improved performance). This includes actions like reading and writing from the hard disk, processing information received from devices, etc.

BIOS services are accessed using software interrupts, which are similar to the hardware interrupts except that they are generated inside the processor by programs instead of being generated outside the processor by hardware devices. One thing that this use of interrupts does is to allow access to the BIOS without knowing where in memory each routine is located.

Normally, to call a software routine you need to know its address. With interrupts, a table called an interrupt vector table is used that bypasses this problem. When the system is started up, the BIOS puts addresses into this table that represent where its routines are located for each interrupt it responds to. Then, when DOS or an application wants to use a BIOS routine, it generates a software interrupt. The system processes the interrupt, looks up the value in the table, and jumps to the BIOS routine automatically. DOS itself and application programs can also use this interrupt vector table.