“I want to have an epic life. I want to tell my life with big adjectives.” — Isabel Allende
Following a tradition more often honored in the breach than in the observance, AMD has designated eight of its new x86 processors for the embedded market. The new Epyc Embedded 3000 family takes AMD’s latest Zen architecture (the core technology behind Ryzen and Epyc) and tweaked it for long-life systems in networking and high-end embedded systems. The new chips are fast, very capable, and expensive.
Featherweight chips these are not. With up to 16 CPU cores, 32 execution threads, eight 10GbE ports, four DDR4 memory controllers, and a whole lot more, these devices are for serious users only. Their performance rivals that of Intel’s Xeon processors (as you’d expect), but they’re priced much lower (as you’d also expect). That doesn’t make them cheap, however. Expect to spend several hundred dollars – maybe up to $1000 – for some members of the new family.
There are initially eight members in the new product range, and all eight are pin-compatible with one another. That’s a nice touch, and it maintains AMD’s recent strategy of offering socket upgrades that don’t require a new PCB layout. You can, theoretically, upgrade from the entry-level four-core, four-thread processor all the way though 8, 12, and finally to 16 CPU cores and 32 execution threads, all without changing any other hardware.
Under the hood, there’s really only one silicon chip masquerading as eight different parts. The 4- and 8-CPU versions are on a single die, while the 12- and 16-CPU versions are just two of the same die packaged together. That would normally give us four variations, not eight, but half of the versions have multithreading disabled. Thus, you can get a four-core device with multithreading or without; an 8-core version with or without multithreading, and so on. Voila! Eight SKUs from one silicon design.
This sleight-of-hand is common in the CPU business, where big multicore chips often have iffy yields, but it does present some interesting product overlaps. For example, if you want eight execution threads, do you get the 4-core chip with multithreading enabled, or the 8-core chip without? Similarly, the 8-core dual-threaded chip should offer similar performance to the 16-core chip with no multithreading. What’s an engineer to do? AMD makes the decision easier by limiting (artificially, perhaps) the basic clock frequency of some of these “overlap” parts.
Speaking of which, the new Epyc Embedded 3000 chips run at 1.5 GHz to 3.0 GHz, depending on which part you choose. That’s significantly slower than their server-bound Epyc siblings, which are presumably built on the same Zen microarchitecture and fabricated on the same production line. By rights, the embedded versions should run just as fast as the PC versions. But limiting the former’s clock speed keeps power consumption down, while also opening up a defensible pricing gap.
Because these are embedded devices, there’s gobs of on-chip I/O. The exact peripheral count is a bit squishy (more on that in a moment) but can be up to eight 10-gigabit Ethernet channels, up to 64 PCIe Gen3 lanes, up to 16 SATA 3 channels, two or four DDR4 memory controllers, two or four USB 3.0 controllers, and plenty more. The Ethernet, SATA, and PCIe are all handled by 16 separate SERDES units, and you get to decide what function each one performs. Thus, you can trade off one Ethernet channel (for example) for an additional SATA channel, or trade in some PCIe for more Ethernet. Obviously, this would change your processor’s external pinout, but that’s your decision and not AMD’s fault.
The memory controller is particularly interesting because it does on-the-fly encryption and decryption of your data – a rarity for any processor and totally unique among x86 chips. With the optional feature enabled, the Epyc 3000 will encrypt data on every write cycle to external memory and decrypt it on external reads. You can even enable/disable the feature by memory region so that your operating system is not encrypted but certain applications are (for instance). This feature works with totally standard memories; you don’t have to buy special DIMMs or add extra ECC bits. And, it’s wholly invisible to software because it’s handled entirely by hardware inside the DDR4 memory controller. Indeed, most software won’t even be able to tell whether external memory is encrypted or not.
This adds a nice additional layer of security to x86-based embedded systems. About the only reason you’d want to disable it is during debug (only the CPU can correctly decode external RAM) or for performance reasons. The crypto hardware adds some latency to memory accesses, naturally, but AMD says that the performance hit is in the 1% to 3% range.
In keeping with the security theme, all eight chips boot from a locked-down internal on-chip ROM before loading your “real” BIOS or operating system. Booting a complex processor like a multicore x86 has always been complicated, but now it’s even more byzantine. The initial boot is handled by – surprise! – an Arm Cortex-A5 embedded into the Epyc processor die. (What do you call an embedded processor embedded into another embedded processor?) The Arm core boots up, verifies that everything’s okay, and then looks for an external boot ROM, as normal. Checksums and integrity checks should prevent the processor from loading from a boot ROM that’s been tampered with. There’s no way for outsiders to change the Cortex-A5’s internal boot ROM, so it should be immune to tampering once it leaves the factory.
It’s too early to have benchmark data on the new Epyc Embedded 3000 devices, but their performance should match the Epyc devices on which they’re based. That puts them slightly behind Intel’s equally new Xeon D family. Intel usually – but not always – has better per-clock performance than AMD. But AMD almost always has cheaper pricing. If that practice continues, the new Epyc Embedded 3000 should deliver a better price/performance ratio than Intel’s chips. No surprises there.
AMD is guaranteeing 10-year lifespans for the new devices, which should alleviate some fears among embedded designers who’ve been burned by AMD and Intel before. Both companies have a long history of announcing embedded variations of last year’s PC processors, only to yank the chips off the shelves a short time later. A 10-year product life should be enough for most designers. If you need a CPU older than that, you’ll probably need to design your own.
The ridiculous amount of high-speed, high-value I/O on these chips should make them good candidates for expensive networking gear or for elaborate embedded systems with lots of connectivity. They don’t have GPUs, so they’re no good for mini-PCs unless you want to add external graphics processors (and video RAM). Thermal energy ranges from 30W to about 100W, so there’s some hope that you could maintain these in air-cooled systems.
If x86 is your thing and you don’t mind paying a premium for binary compatibility, the new Epyc Embedded 3000 parts are your only alternative to Intel. AMD’s automatic memory encryption puts it ahead of its rival, which has no equivalent feature, and its pricing should be easier to swallow. If you’re willing to give up a few percentage points in performance for (what will likely be) about a hundred dollars in price, then AMD offers an Epyc choice.
2 thoughts on “Dude, My Embedded Processor Is Epyc”