Trends in Computer Architecture
In many respects, the evolution of mainstream x86 microprocessors over the last 10-15 years has been very consistent, steady and gradual, with a few exceptions. Since the advent of their first out-of-order designs, both AMD and Intel have been using very similar microarchitectures throughout successive generations. The notable exception is Intel’s Pentium 4, which proved to be poorly suited for most of the market. That aside, the heritage of AMD’s designs is very clearly descended from the K7 generation, while Intel’s microarchitectures are derived from the Pentium Pro. AMD and Intel both focused on the same initial design goals: maximal single threaded performance given reasonable manufacturing costs. Around 2003, the additional constraint of power efficiency became essential – both to accommodate affordable cooling solutions, electrical delivery and also the rise of notebooks. While this change (amongst other things) doomed the Pentium 4, the challenges of power efficiency were mostly met by continuous improvements rather than radical departures. The x86 ecosystem is largely ruled by two microarchitectures, Intel’s Nehalem and AMD’s Istanbul (for simplicitly we use Istanbul to refer to all of Family 10h). Together these two designs span the entire PC market from 10W notebooks to 130W servers, with a third for the somewhat different ultra-low power market (Intel’s Atom).
At the same time, computer architecture as a whole has been diversifying quite rapidly. Many of the various RISC architectures have died out (Alpha, PA-RISC) or moved on to different markets (MIPS). Those that remain are pursuing fairly different goals. IBM is focused on maximizing single threaded and aggregate system performance using every resource available with only cursory regard to cost. Oracle nee Sun is following the path of throughput computing, sacrificing single threaded performance to simplify design and achieve power efficiency for low socket count servers. On the other hand, Fujitsu still has a relatively traditional microarchitecture, with mainframe-like emphasis on reliability.
Recently, GPUs have emerged as a possible alternative. The standard bearer of this camp is Nvidia’s Fermi architecture. GPUs are conceptually akin to Sun’s throughput focus, but with programmability and reliability sacrifices. The advantage though is that GPUs currently benefit from high volumes due to the consumer mass market. The high volume aspect is threatened though, by the integration of CPU and GPU being pursued by Intel and AMD.
In this context, AMD has stepped away from their historic design point and re-evaluated their approach to the x86 market. Rather than pursuing one core to address the vast majority of the market, they opted to develop two new microarchitectures, Bobcat and Bulldozer. Bobcat is focused on low cost, low power and GPU integration for notebooks and low-end desktops. Llano is focused on higher power and performance with GPU integration, but uses a derivative of the existing Istanbul microarchitecture. Like the original K8, Bulldozer is first and foremost aimed at the high-margin server market and may be used in performance sensitive desktop systems as well.
AMD’s hope is that this three pronged approach will enable them to more carefully optimize for various customers and differentiate with respect to Intel. In some respects, this is a sign of maturity – AMD is capitalizing on the acquisition of ATI and trying to more carefully address the market and outmaneuver Intel. At the same time, this strategy is fairly risky. Designing and validating a new x86 microarchitecture is quite challenging; this is the first time that AMD has done two simultaneously. Moreover, AMD is concurrently making the shift from an integrated device manufacturer to a fabless company that relies on 3rd party manufacturing from Global Foundries. Despite the risk, it is nice to see more diversity in computer architecture amongst major players.