ARM vs x86: What's the difference between the two processor architectures?

You probably know that the world of processors is divided into two camps. If you are watching this video from a smartphone, then an ARM processor is working for you, and if from a laptop, an x86 chip is working for you.



And now Apple has announced that it is migrating its Macs to Apple's own Silicon ARM processors. We have already told you why this happens. And today, let's take a closer look at what are the fundamental differences between x86 and ARM. And why did Apple fit into all this?





So, most mobile devices, iPhones and Androids run on ARM. Qualcomm, HUAWEI Kirin, Samsung Exynos, and Apple A13 / A14 Bionic are all ARM processors.



But on the computer it is not so - it is dominated by x86 under the wing of Intel and AMD. That is why on the phone we cannot run Word from the computer.



x86 - this is the name of the last digits of the family of classic Intel processors from the 70s and 80s. How are they different? There are two key differences.















The first is a set of instructions, that is, the language that the processor understands



x86 processors use a complex instruction set called CISC - Complex Instruction Set Computing.



ARM processors, on the contrary, use a simplified instruction set - RISC - Reduced Instruction Set Computing.



By the way, ARM stands for Advanced RICS Machines - Advanced RISC Machines.



Sets of instructions are also commonly called architecture or ISA - Instruction Set Architecture.



The second difference is microarchitecture. What it is?



The language the processors speak depends on how they are designed. Because to execute each instruction on the processor, you need to locate its own logical block. Accordingly, different instructions mean different processor designs. And design is microarchitecture.



  • x86 - CISC
  • ARM - RISC


So, we remember. We say x86 - we mean the CISC architecture, ARM is RISC.



But how did it happen that the processors began to speak different languages?



History of CISC





Programmer's Memo, 1960s. Digital (machine) code "Minsk-22".



It all started in the 1960s. At first, programmers worked with machine code, that is, they actually wrote zeroes and ones. This quickly got tired of everyone and Assembler appeared. A low-level programming language that allowed writing simple commands such as add, copy, and so on. But programming in Assembler was also tough. Because it was necessary to literally β€œby the handle” step by step describe to the processor each of its actions.



Therefore, if you were having dinner with the processor, and asked to give it to you the salt, it would look like this:



  • Hey processor, look at the center of the table.
  • Do you see the salt? Take her.
  • Now look at me.
  • Give me the salt. - Yeah thanks!
  • Now take the salt from me again.
  • Put it where you got it
  • Thank you very much! Continue your business.
  • Ahem ... Processor, see the pepper?
  • Etc....


At some point, this all bothered the programmers. And they decided: Hey, why don't we just write the instructions "Pass me the salt"? And so they did. A set of such complex instructions was called CISC.



This approach has been a real lifesaver for both developers and businesses. The client wanted a new instruction - not a problem, if there were money - we will do it. And the clients had money.



Disadvantages of CISC



But was this approach optimal ??? From a developer's point of view, yes. But the microarchitecture suffered.



Imagine you bought an apartment and now you need to furnish it with furniture. The area is small, every square meter counts. And now imagine if a CISC processor furnished your living room with furniture, on the one hand, it would take care of the comfort of each potential guest and allocate its own personal space for him.



On the other hand, he would not have spared the budget. A sofa for one person, a pouf for another, a couch for a third, a Game of Thrones throne for your Daenerys. In this case, the area of ​​the room would very quickly end. To accommodate everyone, you would have to increase your budget and expand the hall. This is not rational. But most importantly, the CISC architecture has existed for a very long time and the instructions that were written in the 60s are no longer relevant now. Therefore, some of the furniture, or rather the execution units, will simply not be used. But many of them remain there. Therefore, RISC appeared ...



RISC benefits



On the one hand, it is not very convenient to write processors in Assembler for RISC processors. If we compare the code written for CISC and RISC processors head-on, the advantage of the former is obvious.



This is how the code of the same operation for x86 and ARM looks like.



x86



  • MOV AX, 15; AH = 00, AL = 0Fh
  • AAA; AH = 01, AL = 05
  • RET


ARM

  • MOV R3, # 10
  • AND R2, R0, # 0xF
  • CMP R2, R3
  • IT LT
  • BLT elsebranch
  • ADD R2. # 6
  • ADD R1. #1
  • elsebranch:
  • END


But that was before. Nobody writes in assembler for a long time. Now compilers do all this for programmers, so there are no difficulties with writing code for RISC processors. But there are advantages.



Imagine you are designing a processor. The arrangement of blocks on x86 would look like this. Each colored square is a separate command. There are many of them and they are different. As you understand, here we are already talking about the microarchitecture, which follows from the instruction set. But the ARM processor looks like this. It doesn't need blocks created for functions written 50 years ago. In fact, there are blocks here only for the most popular teams. But there are many such blocks. This means that more basic commands can be executed simultaneously. And rare ones do not take up space.























Another bonus of the reduced RISC dialing: less space on the chip is occupied by the instruction decoding block. Yes, that also needs a place. RISC architecture is simpler and more convenient, bend your fingers:



  • easier work with memory,
  • richer register architecture,
  • easier to do 32/64/128 digits,
  • easier to optimize,
  • less power consumption,
  • easier to scale and debug.


For example, here are two processors of the same generation. ARM1 and Intel 386. With similar performance, ARM is half the size. And the transistors on it are 10 times less: 25 thousand versus 275 thousand. Power consumption also differs by an order of magnitude: 0.1 W versus 2 W for Intel. Shock.



Therefore, our smartphones that run on ARM processors with RISC architecture have a long life span, do not require active cooling and are so fast.



Licensing



But these are all technical differences. There are organizational differences as well. Have you ever wondered why there are so many processor manufacturers for smartphones, and only AMD and Intel in the world of x86 PCs? It's simple - ARM is a licensing company, not manufacturing.



Even Apple had a hand in ARM development. Together with Acorn Computers and VLSI Technology. Apple has joined the alliance for their upcoming device, the Newton. A device whose main function was text recognition.



Even you can start producing your own processors by purchasing a license. But no one except the blue and red companies can produce x86 processors. What does that mean? That's right, less competition, slower development. How did this happen?







OK. Let's say ARM does a great job with smartphones and tablets, but what about computers and servers, where the whole clearing is historically divided? And why did Apple even rush there with its Apple Silicon.



What now?



Let's say we decided that the ARM architecture is more efficient and versatile. Now what? x86 is buried?



In fact, Intel and AMD are not fools. And now under the hood modern CISC processors are very similar to RISC. Gradually, the developers of CISC processors nevertheless came to this and began to make hybrid processors, but the old tail cannot be thrown off so easily. But for a long time, Intel and AMD processors have been breaking input instructions into smaller micro-instructions (micro-ops), which in the future - you will be surprised - are executed by the RISC kernel. Yes, guys! Those 4-8 cores in your PC are also RISC cores! I hope you are completely confused here. But the bottom line is that the difference between RISC and CISC designs is now minimal.



















And what remains important is the microarchitecture. That is how effectively everything is organized on the stone itself.



Well, you probably already know that Modern iPads are almost as good as 15-inch MacBook Pros with Core i7 and Core i9 processors. What about computers? Ampere recently unveiled its 80-core ARM processor. According to the manufacturer, in tests, the Ampere processor performs 4% better than the fastest EPYC processor from AMD and uses 14% less power.























Ampere, climbs into the Cloud and Workstation segments, and shows excellent numbers there. The fastest supercomputer in the world today runs on ARM ISA. On the other hand, Intel is still trying to get into the low power segment and for this it releases a new interesting processor based on the lakefield microarchitecture.



So far, laptops and processors from Intel have one indisputable advantage - (cooling and) the unity of the architecture. While Qualcomm, Samsung, MediaTek exist on the ARM processor market, a monopoly is being created in the x86 world and it is much easier for developers to make software and games for β€œadult” processors.



And Apple is the company that can motivate enough developers to cut for their ARM. But the essence of this transition is rather not in the confrontation between CISC and RISC. As both approaches converge, the focus shifts to the microarchitecture that Apple is making for its mobile devices. And apparently their microarchitecture is cool. And they would like to use it in their computers.



And if Intel licensed x86 for money to other people, then probably Apple just adapted its current microarchitecture for x86. But since they cannot do this, they decided to just switch to ARM. The problem with microarchitecture for us is that it is a trade secret. And we don't know anything about her.



Outcome







ARM demand will eventually rise. For the industry, this is not just an important step, but an all-important one. Linus Torvalds said that until workstations run on ARM, the server market will use x86.



And so it happened - in the long term it is millions of dollars invested in server solutions. Which, of course, is good for consumers as well. A bright future awaits us and Apple has indeed made an evolution!



Material editor: Anton Evstratenko. Our viewers Nikita Kulikov and Grigory Chirkov helped to prepare this material. Thanks guys!



All Articles