4 ms·
ISA has very little to do with it, ARM is almost as old as x86.
by throwaway2048 6y ago
ISA has very little to do with it, ARM is almost as old as x86.
- MrBuddyCasino 6y agoARM went through multiple iterations of its ISA. They don’t need to run 40 year old code.
- The_Colonel 6y agoX86 CPUs are not really "running" X86 ISA since Pentium Pro (1995), they are translating on-the-fly X86 instructions to microcode which is actually getting executed. ARM CPUs are also not executing ARM ISA directly and doing translation as well. Simpler ARM ISA has advantages in very small / energy efficient CPUs since the silicon translation logic can be smaller but this advantage grows increasingly irrelevant when you are scaling to bigger, faster cores. IMHO these days ISA implications on performance and efficiency are being overstated.
- MrBuddyCasino 6y agoYes, those are widely known fact. There are aspects of the ISA that do constrain performance and cannot be easily worked around, eg the memory model which is more relaxed on ARM.
- baybal2 6y ago> IMHO these days ISA implications on performance and efficiency are being overstated. Noooo, besides simply copying instructions 1-to-1, the process is way to involved, and imposes 40 years old assumptions on memory model, and many other things, which greatly limits the amount of way you can interact with the CPU, adds to transistor count, and makes making efficient compilers really hard.
- tomxor 6y agoInteresting point. So on the one hand we have all these layers in the CPU to abstract away things in the ISA that are not ideal for block level implementation... but on the other hand compilers are still targeting that high level ISA... and ironically they also have their own more general abstraction, the intermediate representation. I'm probably not the first or last to suggest this but... it seems awfully tempting to say: why can't we throw away the concept of maintaining binary comparability yet and target some level of "internal" ISA directly (if intel/AMD could provide such an interface in parallel to the high level ISA)... with the accepted cost of knowing that ISA will change in not necessarily forward compatible ways between CPU revisions. From the user's perspective we'd either end up with more complex binary distribution, or needing to compile for your own CPU FOSS style when you want to escape the performance limitations of x86.
- MrBuddyCasino 6y agoI think IBM mainframes do something like this. Software is distributed as bytecode, and then compiled to machine code to CPU-specific assembly.
- GreenHeuristics 6y agoAArch64/ARM64 was developed from the ground up, not bolted on to the old 32-bit ISA