Yesterday AMD revealed that in 2014 it would begin production of its first ARMv8 based 64-bit Opteron CPUs. At the time we didn’t know what core AMD would use, however today ARM helped fill in that blank for us with two new 64-bit core announcements: the ARM Cortex-A57 and Cortex-A53.
You may have heard of ARM’s Cortex-A57 under the codename Atlas, while A53 was referred to internally as Apollo. The two are 64-bit successors to the Cortex A15 and A7, respectively. Similar to their 32-bit counterparts, the A57 and A53 can be used independently or in a big.LITTLE configuration. As a recap, big.LITTLE uses a combination of big (read: power hungry, high performance) and little (read: low power, lower performance) ARM cores on a single SoC.
By ensuring that both the big and little cores support the same ISA, the OS can dynamically swap the cores in and out of the scheduling pool depending on the workload. For example, when playing a game or browsing the web on a smartphone, a pair of A57s could be active, delivering great performance at a high power penalty. On the other hand, while just navigating through your phone’s UI or checking email a pair of A53s could deliver adequate performance while saving a lot of power. A hypothetical SoC with two Cortex A57s and two Cortex A53s would still only appear to the OS as a dual-core system, but it would alternate between performance levels depending on workload.
ARM’s Cortex A57
Architecturally, the Cortex A57 is much like a tweaked Cortex A15 with 64-bit support. The CPU is still a 3-wide/3-issue machine with a 15+ stage pipeline. ARM has increased the width of NEON execution units in the Cortex A57 (128-bits wide now?) as well as enabled support for IEEE-754 DP FP. There have been some other minor pipeline enhancements as well. The end result is up to a 20 – 30% increase in performance over the Cortex A15 while running 32-bit code. Running 64-bit code you’ll see an additional performance advantage as the 64-bit register file is far simplified compared to the 32-bit RF.
The Cortex A
57 will support configurations of up to (and beyond) 16 cores for use in server environments. Based on ARM’s presentation it looks like groups of four A57 cores will share a single L2 cache.
ARM’s Cortex A53
Similarly, the Cortex A53 is a tweaked version of the Cortex A7 with 64-bit support. ARM didn’t provide as many details here other than to confirm that we’re still looking at a simple, in-order architecture with an 8 stage pipeline. The A53 can be used in server environments as well since it’s ISA compatible with the A57.
ARM claims that on the same process node (32nm) the Cortex A53 is able to deliver the same performance as a Cortex A9 but at roughly 60% of the die area. The performance claims apply to both integer and floating point workloads. ARM tells me that it simply reduced a lot of the buffering and data structure size, while more efficiently improving performance. From looking at Apple’s Swift it’s very obvious that a lot can be done simply by improving the memory interface of ARM’s Cortex A9. It’s possible that ARM addressed that shortcoming while balancing out the gains by removing other performance enhancing elements of the core.
Both CPU cores are able to run 32-bit and 64-bit ARM code, as well as a mix of both so long as the OS is 64-bit.
Completed Cortex A57 and A53 core designs will be delivered to partners (including AMD and Samsung) by the middle of next year. Silicon based on these cores should be ready by late 2013/early 2014, with production following 6 – 12 months after that. AMD claimed it would have an ARMv8 based Opteron in production in 2014, which seems possible (although aggressive) based on what ARM told me.
ARM expects the first designs to appear at 28nm and 20nm. There’s an obvious path to 14nm as well.
It’s interesting to note ARM’s commitment to big.LITTLE as a strategy for pushing mobile SoC performance forward. I’m curious to see how the first A15/A7 designs work out. It’s also good to see ARM not letting up on pushing its architectures forward.