Much of AMD's bad luck over the last three months revolves around a nasty bug it just can't shake

Erratum, to those in the hardware or software industry, is a nice way of saying "we missed a test case" during development and design.

Yesterday, The Tech Report confirmed AMD's iteration of Intel's F00F bug. The bug, which has been documented since at least early November, can cause a deadlock during recursive or nested cache writes.

How does the TLB erratum occur? All AMD quad-core processors utilize a shared L3 cache. In instances where the software uses nested memory pages, this processor will experience a race condition.

AMD's desktop product marketing manager Michael Saucier describes a race condition as a series of events "where the other guy wins who isn't supposed to win."

In the software world, a typical memory race condition occurs when the memory arbiter is instructed to overwrite an older block of memory, but write the old block of memory to somewhere else in cache. In the instance where two arbiters follow this same rule set, its easy to see how a race condition can occur: both arbiters attempt to overwrite the same blocks of information, resulting in a deadlock.

From what AMD engineers would tell DailyTech, this example is very similar to what occurs with nested memory pages in virtualized machines on these K10 processors.

AMD partners tell DailyTech that all bulk Barcelona shipments have been halted pending application screening based on the customer. Cray, for example, was allowed its latest allocation for machines that will not use these nested virtualization techniques. Other AMD corporate customers were told to use Revision F3 (K8) processors in the meantime.

The TLB erratum will be fixed in the B3 stepping of all AMD quad-core processors, including Phenom and Barcelona. However, AMD considers the B3 stepping a "March" item on its 2008 roadmap. Processors shipped between then and now will still carry the TLB bug, though with the BIOS workaround these machines will not experience a lockup.

AMD's latest roadmap hints that its tri-core processors are merely
quad-core processors with one core disabled. The company also indicated
that it will introduce some of these tri-core processors with the L3
cache disabled. Removing the shared-L3 cache from the chip design
eliminates the TLB bug.

AMD is doing their best to spin the Barcelona/Phenom situation as having this "one bad bug".

It is by no means the reality of the situation. The current steppings of Barcelona/Phenom are riddled with bugs: small, medium, and large.

The recent B2 stepping was so bad it was immediately dumped and work begun on a B3 stepping. It is not likely that further steppings will substantially fix the design. The Barcelona is a fabulous prototype design, but it is a long way away from being a polished production level design.

So AMD is going to plan B -- 65nm K8-based chips -- and will wait on volume shipments of K10 until the reworked Barcelona B+ is finished sometime 2H08.

There will some small shipments of K10 chips between now and 2H08, but only the foolish will buy these machines. If you have clout with AMD, insist on a replacement policy.

Overall, K10 is just too much change at the wrong time. Split-plane power is a nice idea, but it obsoletes all existing motherboards. A massive change from K8 is warranted for massive gains, but the gains have been elusive and even when found, merely marginal.

AMD should have used their own technology and built a simple K8+ quad-core that glued together two dual-core processors. All the cores should have been glued together with HT3, giving the processor a massive jump in on-chip bandwidth while protecting backward compatibility. Bump the cache sizes up with a move to 65nm and you have a chip that required almost zero development effort that is ready to ride. A few tweaks to the K8 memory controller to support unbuffered ECC 800Mhz and ECC 1066Mhz DDR2 and you would still have a very competitive processor. On the desktop, the many fast low-latency DDR2 modules could also be supported.

Too bad. Brute force often works better than finesse. This is something that AMD should have learned from Intel by now.