Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can't really compare ARM and x86_64 chips. I'm going to use a crude example. Think of the ARM chip being one of those USPS Trucks (https://upload.wikimedia.org/wikipedia/commons/3/37/Small_US...) while the x86_64 is a F150 pickup.

Both can drive around and transport things, but the USPS Truck is purpose build to deliver mail, stop and start frequently, and be reliable. It does a few things well. On the other hand the F150 is widely produced, can be customized in many different ways, and is general purpose vehical. Could it do the function of the USPS Truck? Sure, but it would be slower, cost more to run, and be less efficient. Could the USPS Truck haul a trailer? Maybe, but it wouldn't be very good at it. Both are a truck, but both are designed to different things and excel at different things.

That crude comparison is ARM vs x86_64. ARM is getting there, and for the specific ARM functions it's more performant than the equivalent x86_64 functions. But once you go outside of what the ARM chip has been specifically designed for, your performance takes a massive hit. Will ARM be able to take off in a Macbook? Maybe in a few years, but Apple would need to dump a massive amount of R&D into their designs before I would think they would consider it (but who knows?)



What? They're CPUs. They're designed to run instructions. Intel's chips spend more energy on the really fancy stuff like huge reorder buffers and extensive speculation. They get higher IPC at lower MIPS/watt. An i7 isn't going to run iOS more slowly than whatever Apple calls their latest ARM SoC. It _is_ going to blow its lid without a big ole heatsink brick on there and a fan too, which is why smartphones use ARM cores designed for efficiency.

P.S. if anything, ARM is the "general purpose vehicle" in your analogy. x64 is all about high throughput and high power on a chip you buy and plug in. ARM is the one where you can get an architecture license and customize the shit out of it.


Not all instructions (or instruction sets) are equivalent.


They're not that different, either. It's been a long time since high-performance cores were executing the instructions as fetched and not translating into µops. The stuff Intel does on their chips works on ARM too. People are doing it, and it's working[0]. That makes a hell of a lot more difference on throughput than what ISA is implemented.

[0] https://fuse.wikichip.org/news/1316/a-look-at-caviums-new-hi...


Actually the x86 instruction format is key to Intel's performance dominance. It happens to be rather dense in terms of instruction per byte, and it turns out that instruction cache hit rate (and iTLB hit rate) are extremely important to high performance. Rather than the naive view that x86 is somehow saddled with its ancient and ugly instruction set, it's actually all of the RISC-like architectures that turn out to be hampered by their overly beautiful instructions.


The other way to think about it is like the v7 thumb modes in comparison to the original 32-bit predicated instruction set. X86 has a lot of less than ideal instructions, but they are uncommonly used. So the core instruction set is quite dense and high performance.

Intel is learning (or knows, depending on your perspective, see goldmont) how to build highly efficient cores too, but like ARM haven't quite figured out how to build a super high performance one that is crazy efficient. ARM's continue to be quite efficient but not particularly performant, while intel's continue to be quite peformant but not particularly efficient.

Either way, the trend is pretty clear at this point more power dissipation=more performance.


Most memory is data.

Code density is important, but you can just double the icache. Given that icache is often smaller than dcache, it seems that's not the major bottleneck.

Also, if code density is so important, why did arm drop Thumb when they switched to 64bit?


There is nothing inherently energy efficient about x86 or ARM instructions sets, the silicon merely optimizes for different performance.

[ https://ieeexplore.ieee.org/abstract/document/6522302/ ]


> They're designed to run instructions

ARM can do a small subset of what x86_64 can do. Let's say for a minute ARM doesn't have a built in H.264 decoder (they both do, but that's the one feature popped into my head).

The x86_64 chip will be able to do execute the decoding of a H.264 file that faster and more efficiently than the ARM chip because the x86_64 has purpose designed instruction to do this or make the job easier.

Another Example. x86_64 can multiply and divide while ARM can't. Both chips can do the same work, but x86_64 can multiply 20*4 in one instruction while the ARM chip has to do 20 + 20 + 20 + 20, with each one being an addition instruction. ARM might be able to add faster than x86_64, but x86_64 will still be able to multiply faster. That's extremely simple, but when you get into more complex operations ARM has to spend more time doing what x86_64 can do.

> An i7 isn't going to run iOS more slowly than whatever Apple calls their latest ARM SoC.

an i7 will run iOS slowly because iOS is build specifically for ARM. Just like how PS3 emulators take a lot of effort to run on x86_64 chips, there is an emulation overhead.

> It _is_ going to blow its lid without a big ole heatsink brick on there and a fan too, which is why smartphones use ARM cores designed for efficiency.

Yeah, because it's designed to run at a higher thermal envelope. To get ARM anywhere near the Floating Point performance of an i7 you will need to increase the power and throw some active cooling on it.

> P.S. if anything, ARM is the "general purpose vehicle" in your analogy.

I don't think so, as seen above and below.

> x64 is all about high throughput and high power on a chip you buy and plug in.

Yes, because OSs have been designed to use as much as the chip can offer it. But I can get a 5 watt Intel CPU will will run circles around a 5 watt ARM chip.

> ARM is the one where you can get an architecture license and customize the shit out of it.

Yes, so you design it to fit your specific functions. Apple's CPUs only implement what the the engineers need it to, so they can save die space by not implementing unused instructions. You are proving my example here. ARM is the Customized Purpose built USPS Truck, while x86_64 is a general purpose F150. The USPS build their truck to fit their needs just as ARM Chips are built to meet the needs of the consumers.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: