AMD is poised to release their new “Zen” processor architecture, and it appears they may have good reason to be. Starting this year, AMD expects to introduce Zen core-based computing products first for high-performance desktops, then for enterprise-class servers and then on down the line for laptops and embedded devices.
Understanding the Specs
Whenever new processors are discussed, there are a lot of performance revealing terms and numbers thrown around. For the technically uninitiated, it’s handy to periodically refresh on what these specifications mean. Today’s example – one of the advancements for the Zen core – is the core execution system. This is really the heart of any processor design. While the chip’s clock speed serves as a metronome governing the marching cadence of the logic, there’s real ingenuity that goes in to the design of that logic in order to get the processor to accomplish as many tasks as possible on each beat of the clock. Let’s take a quick look at the enhancements AMD is claiming.
Whoa… Technobabble Galore
A lot of the core design is of course an industry trade secret, but we can learn about what’s important for a processor to go fast by looking at the specs AMD makes available. We don’t have a lot of room here, so let’s just focus today on “enhanced branch prediction”.
How to Speak Machine
Every processor is designed to understand a certain language – a language of machine instructions that tell the processor what it should do. You could call it a machine language. Each instruction is nothing but a series of bits (ones or zeros), and the specific pattern of those bits gives all kinds of information to the processor. For example, let’s consider a very basic store instruction which tells the processor to put a certain handy piece of data into another location. The command is made of a certain pattern of bits that identify the following:
- That this is a store instruction
- Where to get the data from
- Where to send the data to
- Various other things that could be optional, like flags, etc.
The processor logic is designed to perform the instruction as soon as it is received, and there are little logic modules that handle doing different pieces of the task. Sometimes there are instructions that take a lot more work than others, and require multiple clock cycles to complete.
One of the more interesting instructions we can give a processor is to command it to jump, or branch, to a far away instruction instead of just passing along to the next instruction in the queue. This can be especially useful when encountering those instructions that require a lot of effort to execute. A well-designed processor tries to maximize the use of all of its little logic modules by executing as many instructions as it can, simultaneously if at all possible. By predicting the branch from a sequence of instructions, the processor can speed things up by getting expected “future” instructions into the processing pipeline. One of the things that the AMD team has improved with the Zen core is that they’ve reduced the penalty taken when, inevitably, the wrong prediction is made and the core has to backtrack. Of course, with a core of this quality those penalties are definitely worth the advantage of getting the prediction right much of the time, which they do!
I Thought We Were Learning About MIPS and FLOPS?
Fundamentals first, of course, to set the stage. Now that we have established how a processor does it’s processing we can understand the spec sheet better. The processor core will have a limit measured in real time to how fast it can execute the machine language instructions it’s been given, and this is driven by the execution logic just described and the clock speed. The faster, the better, of course! These speeds may be given in “millions of instructions per second”, or MIPS. Nowadays the term “floating-point operations per second” (FLOPS) is also often used and describes how quickly a machine can process floating-point, or decimal, math operations. Many processors have a special floating-point module that acts as a math assistant to the main core. Keep in mind that sometimes these metrics don’t translate well in comparisons between different processor architectures because the cores and machine languages are so distinct. But for the desktop and laptop PCs you buy running closely related Intel or AMD hardware, it’s a great way to help figure out which processor is right for you.