13 ms·
I don't think that's an advantage these days. The bottleneck seems to be decoding instructions, and that's easier to parallelize if instructions are fixed width
by chroma 8y ago
I don't think that's an advantage these days. The bottleneck seems to be decoding instructions, and that's easier to parallelize if instructions are fixed width. Case in point: The big cores on Apple's A11 and A12 SoCs can decode 7 instructions per cycle. Intel's Skylake can do 5. Intel CPUs also have μop caches because decoding x86 is so expensive.
- gpderetta 8y agoSure, but intel CISC instructions can do more, so in the end is a wash.
- chroma 8y agoThat's not the case. Only one of Skylake's decoders can translate complex x86 instructions. The other 4 are simple decoders, and can only transform a simple x86 instruction into a single µop. At most, Skylake's decoder can emit 5 µops per cycle.[1] 1. https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client)#Decoding https://en.wikichip.org/wiki/intel/microarchitectures/skylak...
- jawnv6 8y ago... so what? most code's hot and should be issued from the uop cache at 6uop/cl with "80%+ hit rate" from your source you're really not making the case that "decode" is the bottleneck, are you unaware of the mitigations that x86 designs have taken to alleviate that? or are those mitigations your proof that the ISA's deficient
- Symmetry 8y agoThat really isn't true in the modern world. x86 has things like load-op and large inline constants but ARM has things like load or store multiple, predication, and more registers. They tend to take about the same number of instructions per executable and about the same number of bytes per instruction. If you're comparing to MIPS then sure x86 is more efficient. And x86 is instruction do more than RISC-V but most high performance RISC-V uses instruction compression and front end fusion for similar pipeline and cache usage.
- gpderetta 8y ago(generalized) predication is not a thing in ARM64. Is Apple cpu 7 wide even in 32 bit mode? It is true though, as chroma pointed out, that intel can't decode load-op as full width.
- jabl 8y agoMaybe the golden middle path is compressed risc instructions. E.g the risc-v C extension, where the most commonly used instructions take 16 bits, and the full 32-bit instructions are still available. Density is apparently slightly better than x86-64, while being easier to decode. (yes, I'm aware there's no high performance risc-v core available (yet) comparable to x86-64 or power, or even the higher end arm ones)