Software design and testing is hard, but what happens when each bug fix can cost months of delay and millions of dollars? In this talk we’ll take a behind-the-scenes look at the challenges in the design of a very complex, yet critical piece of hardware: the modern x86 CPU.
All hardware design and testing is complex, but x86 CPUs are designs that must work correctly basically 100% of the time. They are critical not only for running your applications, but for enforcing the security of the entire system. In this talk, we’ll explore what modern x86 CPU hardware looks like, describe some of the methodology around CPU testing, and discuss real-world hardware design. So does that all make flawless hardware? Of course not! CPU bugs do happen, and when dealing with hardware bugs, it’s rarely as simple as “download this patch”. This talk will additionally look at some of the various capabilities used with modern chips to address late-breaking issues, from special configuration bits to microcode to even focused ion beams. The goal of this talk is to not only provide the listener with a glimpse into the world of complex hardware design, but to hopefully inspire software engineers with new ideas on how to test equally critical software that must “just work”.
Speakers: David Kaplan