bit-tech.net

Legacy content from www.custompc.co.uk

The life and times of the modern motherboard

Ever wondered how a motherboard and its BIOS are designed and made? What makes one a brilliant overclocker and another as stable as a plate of jelly on a bouncy castle? Alex Watson investigates.

It's hard work too. 'Most BIOS code is written in assembly,' says Perng. If you've never seen assembly, you might be shocked. It's complex, prickly and distinctly inhuman. Unlike so-called 'high-level' programming languages such as C++, assembly code has little in common with the spoken and written word - there are few concessions to the grammar that people use to communicate with each other. This is because it's a low-level language, only one step away from the binary code that the chips process. Compared with the simplicities of mark-up such as HTML, assembly resembles robot babble.

Holst Cheng, a head hardware engineer with Foxconn's Products Group, provided a couple of examples of assembly code instructions. 'Assembly language is primitive: instructions such as "mov ax,bx", "and ax,bx" are common,' he explained.

As well as being complex to decipher, the BIOS code isn't short either. Perng estimates that 'for a normal board, the BIOS source code could be up to one million lines long. The BIOS for premium or Republic of Gamers (ROG) boards, such as the Maximus, might be more complex due to these boards having more features, so it might exceed 1.5 million lines.' Thomas Chang, a sales product manager with Gigabyte, was more conservative in his estimate, stating that the average BIOS will have only a few hundred thousand lines.

BIOS engineers are starting to use C, according to Perng, since Intel is now releasing some of its BIOS reference source codes in C. 'High-level languages such as C++ have some defects in execution time and code size compared with pure assembly. It isn't as quick, but as CPU speed is increasing day by day, it's a growing trend to change to use high-level languages to program the BIOS,' explains Foxconn's Cheng. But even if these are easier, more widely practised modern programming languages are also being adopted. In many other aspects, the job remains very demanding.

'The basic skill required in the programmer is the ability to code in assembly language, and he should also have some sense or experience of hardware,' says Foxconn's Cheng. 'But I think that the most important skill for a BIOS engineer to possess is the ability to logically analyse hardware, and how it integrates into the whole system.'

Chen from Asus agrees. 'A BIOS engineer must understand both hardware and software, as he controls every hardware function,' he says. 'He needs to study both constantly, increase his experience and study new designs for new chipsets and technologies. He has to be patient and very focused.'

It takes time to learn the ways of the BIOS, says Perng. 'Asus provides training to those who are interested in BIOS. We'll make them into a good BIOS engineer in three years, not three months.'

The development process

While BIOS teams might be small, often to the point of being one-man band operations, the number of people involved in the design of the entire motherboard is far greater. 'If you consider all the processes necessary to obtain a finished board - the stage at which it's boxed, mass-produced and shipped all over the world to be sold - between 40-50 people will have contributed to a product such as the Maximus. It's a huge process,' says Asus' Derek Yu.

Subscribe to Custom PC