Advanced guide

How the BIOS works

Whether you need to solve PC boot problems, reallocate system resources or just improve performance, your BIOS could hold the answer.

A quick question: what happens when you turn on your PC? If your first thought is 'Windows loads', then you're missing out rather a lot. In particular, you're missing out the contribution made by the BIOS (basic input/output system), one of the most important parts of your system.

What actually happens when your PC starts is that the PSU runs some tests to check the voltages it's receiving. Once they're stable, the PSU drops the CPU reset signal, which enables the processor to begin running. This always starts by looking at a particular address in memory, which points the CPU at the beginning of your BIOS code. The CPU then begins executing it, and the boot process has finally started.

The first thing your BIOS will do is access information stored in CMOS (complementary metal oxide semiconductor) RAM. This small area of memory maintains its contents even when your PC is switched off, thanks to a battery on the motherboard, and holds some useful configuration settings. So useful, in fact, that one of them is needed right away.

Power on self test
If your PC had an intermittent fault and Windows were permitted to load, then the consequences could be disastrous. Faulty memory might corrupt the disk cache, for instance, potentially trashing your most important data files. That's why the BIOS always runs a power on self test (POST) soon after starting, to ensure that at least the basic hardware functions are working as expected.

Everyone expects their PC to load as quickly as possible, which means that these checks are very short and not exactly reliable. Most people reduce these still further by a BIOS setup program tweak, enabling a setting like 'Fast Boot', and normally it's safe to do this. However, if your system is behaving erratically and you're wondering if there might be hardware or RAM problems, remember that you can reverse this step, too. Turn 'Fast Boot' off for a while to see if the POST picks up anything.

If an error has been discovered, then the boot process may not be able to continue. Obviously, you need to be told about this, but there's a problem: your video card hasn't been initialised yet and so error messages can't be displayed. The alternative is to use a sequence of long and short beep codes instead, so you need to listen for these, then read the documentation to find out what 'one long, two short, one long' actually means. See Computer Hope at www.computerhope.com/beep.htm if you don't have a motherboard manual to hand.

Search for adaptors
Next, your BIOS needs to initialise other hardware you've installed, such as a video adaptor. Of course, it's no idea how to do this, but that's OK because anything that needs initialising in this way has a ROM BIOS of its own. Your BIOS searches through memory looking for the signature of other ROMs, and calls the startup address of any it finds.

Normally this all works fine and the most you'll see is an initialisation message from your network adaptor, RAID card, whatever you've plugged in. However, if there's a problem with this device then the entire boot process may fail in some way. So if your PC starts, but doesn't get as far as loading Windows, then removing non-essential expansion cards just might help.

Once all your adaptors have been detected and initialised, the BIOS begins its task of allocating system resources. More specifically, it decides which devices will share which Interrupt Request Line (IRQ, the means by which a device informs your CPU that it needs attention). Again, this usually works fine, but there are rare exceptions. Use the BIOS setup program to turn off unused onboard features (such as network adaptor, integrated sound and so on) to stand a chance of fixing them.

Bootstrap loader
The final boot task any BIOS must perform is to load your Operating System. Conventionally it'll look first for a bootable floppy, then a CD and finally your hard drive, but this boot order may be changed in your BIOS setup program. Under normal circumstances it's best to move your hard drive to the top of the boot list: no floppy or CD access means that you'll shave a second or two off the Startup time. You'll need to remember that you've done this, because you'll need to switch it back to boot from CD, say, perhaps to reinstall Windows.

Your BIOS then works through each drive in the boot order, looking for the first one that can be accessed, then locating the code that makes the disk bootable. Exactly where this is depends on the drive type: a floppy has its boot code in the very first sector, for instance, while a hard drive has partition loader code stored in the partition table. If there's a problem with any of this, such as your hard drive partition not being marked as bootable, then the BIOS will display an error message. Otherwise, the boot code will be loaded into memory, your CPU then executes it and the real process of starting your OS finally begins.

Should I upgrade my BIOS?
BIOSes are regularly updated to add more features, improve performance and stability, or fix problems. New BIOS code is made available online at your motherboard manufacturer's site, along with flash upgrade utilities that will carry out the upgrade for you.

This may all sound appealing, but there's a problem. If the BIOS file is corrupted during the download, you don't acquire the right BIOS for your motherboard or the flash upgrade utility fails, then you could be left with a PC that won't even boot. This means that you'll have no way of fixing the problem, either.Some motherboards have ways around this. They employ a second BIOS chip that's ready to take over if the first one is corrupted. Although this is welcome, it's still important to treat the whole upgrade process with great care. If your PC is relatively new or you're not experiencing any problems or bugs with the current BIOS version, then it's probably safest to stick with your current setup. The risks outweigh any likely benefits.

However, if your PC is old and you're looking for extreme performance improvements, or you need a BIOS upgrade for a specific reason (to support a CPU upgrade, say), then by all means give it a try. Browse the Support section of your motherboard manufacturer's site for more information and carefully follow the instructions you find.