Friday, July 06, 2007

Buggy Core 2 Duo

Not many people may know this, but there has been some noise made about Intel's latest processor family, the Core2Duo (C2D) range of processors. With the high complexity of processors today, it is very common to find bugs in them. However, it seems that this particular architecture has suffered more bugs than any other previous architecture. Intel provides an on-going list of bugs in a PDF file on it's site.

The reason is probably because it was rushed through. AMD did the whole dual-core thing correctly and were able to secure a lead over anything that Intel could throw at them. For a while, AMD was carving away market share in both enterprise and consumer computing. The dual core Intel Pentium was a hack job with two processors being, essentially, glued together. While the original CoreDuo line was a proper dual core processor, it couldn't match the AMD processors in performance. So, until the Core2Duo came out, AMD processors were king of the hill.

According to the OpenBSD founder, Theo de Raadt, the bugs in the C2D architecture are extremely severe. He claims that, although some of the bugs can be worked around in software, many of the severe ones cannot be fixed except in hardware. These bugs can then be exploited by virus writers to wreak havoc on computers without anyone being able to anything about it. This leaves a whole generation of computers vulnerable to external attacks. He does not recommend purchasing any C2D based computer system until these issues are sorted out, which may take more than a year.

However, Linus Torvalds, the Linux founder, does not sound as alarmist as Theo. He claims that bugs exist in every processor. Hence, there is no need to make a big issue out of it. The different problems in the processors can possibly be worked around or avoided with correct software design. He suspects that Linux may not require much fixing to work around the bugs.

Personally, I agree with Linus that all microprocessors are buggy. It is common practice to download both a microprocessor's datasheet as well as it's errata, before working with a microprocessor. It is quite impossible to design and build a bug-free complex microprocessor. Theo is also correct that some of the bugs can possibly cause catastrophic behaviour. A microprocessor is, what we call, a Finite State Machine (FSM), which is a machine that operates within a number of defined states. When it enters an undefined state, no one knows what will happen to it and it's operation becomes unpredictable.

The key issue is how easy these hardware bugs can be exploited. Just like any other virus, any exploit would need to inject itself using similar techniques. So, as long as everyone takes appropriate precautions, it should be avoidable. So, just use a safe operating system and practice safe computer use.

PS: Problem is, most people are clueless and will be caught by these bugs.

No comments: