Apple M1 foreshadows Rise of RISC-V
Some of the things that make Apple&#x27;s ARM implementation so performant, taken from Anandtech&#x27;s excellent A14 deep dive.<p><a href="https:&#x2F;&#x2F;www.anandtech.com&#x2F;show&#x2F;16226&#x2F;apple-silicon-m1-a14-deep-dive&#x2F;2" rel="nofollow">https:&#x2F;&#x2F;www.anandtech.com&#x2F;show&#x2F;16226&#x2F;apple-silicon-m1-a14-de...</a><p>Extremely wide instruction decode:<p>&gt;Featuring an 8-wide decode block, Apple’s Firestorm is by far the current widest commercialized design in the industry. IBM’s upcoming P10 Core in the POWER10 is the only other official design that’s expected to come to market with such a wide decoder design<p>Other contemporary designs such as AMD’s Zen(1 through 3) and Intel’s µarch’s, x86 CPUs today still only feature a 4-wide decoder designs (Intel is 1+4)<p>A very deep reorder buffer:<p>&gt;A +-630 deep ROB is an immensely huge out-of-order window for Apple’s new core, as it vastly outclasses any other design in the industry. Intel’s Sunny Cove and Willow Cove cores are the second-most “deep” OOO designs out there with a 352 ROB structure, while AMD’s newest Zen3 core makes due with 256 entries, and recent Arm designs such as the Cortex-X1 feature a 224 structure.<p>Exactly how and why Apple is able to achieve such a grossly disproportionate design compared to all other designers in the industry isn’t exactly clear, but it appears to be a key characteristic of Apple’s design philosophy and method to achieve high ILP (Instruction level-parallelism).<p>A huge number of execution units:<p>&gt;On the Integer side, whose in-flight instructions and renaming physical register file capacity we estimate at around 354 entries, we find at least 7 execution ports for actual arithmetic operations. These include 4 simple ALUs capable of ADD instructions, 2 complex units which feature also MUL (multiply) capabilities, and what appears to be a dedicated integer division unit. The core is able to handle 2 branches per cycle, which I think is enabled by also one or two dedicated branch forwarding ports<p>On the floating point and vector execution side of things, the new Firestorm cores are actually more impressive as they a 33% increase in capabilities, enabled by Apple’s addition of a fourth execution pipeline. The FP rename registers here seem to land at 384 entries, which is again comparatively massive. The four 128-bit NEON pipelines thus on paper match the current throughput capabilities of desktop cores from AMD and Intel, albeit with smaller vectors.<p>Massive low latency Level 1 caches:<p>&gt;128KB L1 Data cache for which we can test for, however following Darwin kernel source dumps Apple has confirmed that it’s actually a massive 192KB instruction cache. That’s absolutely enormous and is 3x larger than the competing Arm designs, and 6x larger than current x86 designs<p>The huge caches also appear to be extremely fast – the L1D lands in at a 3-cycle load-use latency. AMD has a 32KB 4-cycle cache, whilst Intel’s latest Sunny Cove saw a regression to 5 cycles when they grew the size to 48KB.<p>Massive L2 Cache:<p>&gt;On the L2 side of things, Apple has been employing an 12MB structure that’s shared between their four big cores. This is an extremely unusual cache hierarchy and contrasts to everybody else’s use of an intermediary sized private L2 combined with a larger slower L3. Apple here disregards the norms, and chooses a large and fast L2.<p>In comparison Zen 3 has 512 KiB L2 per core, and Tiger Lake has 1.25 MiB L2 per core.<p>Another point tweeted by the author of the above piece but not in the above article...<p>Much more accurate branch prediction:<p>&gt;Finally doing perf counters on a dedicated test bench... 9900K having 60% worse branch misprediction than Apple&#x27;s A12.<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;andreif7&#x2F;status&#x2F;1307420010177007625" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;andreif7&#x2F;status&#x2F;1307420010177007625</a><p>There&#x27;s more going on with the M1 design than &quot;it&#x27;s ARM&#x2F;RISC&quot;.