ARM or x86 which architecture to choose?
Currently, most data centers use an x86 architecture, we could define it as an architecture that helps us to carry out many different processes without being especially good at any of them, that is, it allows us a certain degree of flexibility.
One of the main problems of this architecture is the limitation of competition, currently the only companies that are licensed to produce x86 processors are:
- AMD
- Intel
- VIA Technologies Inc.
- Zhaoxin
Aside from the few producers, x86 is also based on a not too clean architecture, trying to maintain compatibility with Intel's line of 16-bit processors and with the rapid development of the architecture, many of the available instructions are suboptimal or even unnecessary, resulting in more complexly designed CPUs and more complex manufacturing.
To solve these problems, the ARM architecture emerged (although the main objective was not to try to compete with x86, it has ended up competing with it), based on a RISC (Reduced Instruction Set Computer) architecture, as the name says "Reduced" it is made up of few instructions, which allows to greatly optimize the execution speed of each of the instructions.
This RISC architecture allows us to design much more efficient CPUs and maintain a high level of computing, which resulted in a great boom in ARM processors in mobile devices, which need a powerful and efficient processor.
The great growth that ARM has had in recent years and the high level of competition that exists between different producers of ARM processors, has made the option to choose between x86 or ARM exist.
One of the great barriers for ARM is the limitation of software that natively supports the ARM architecture, this is a result of the great importance of x86 in the current market, which results in most programs developed by x86 architecture, until now this was one of the most limiting points of ARM, but after the boom in mobile devices and the new adoption of ARM processors in all Apple devices since 2020, it is greatly accelerating the adaptation of many software natively in ARM architecture.
How to design an ARM processor?
In the case of ARM, any company that has an agreement with ARM can expand or produce an ARM processor, with ARM creating the base of the processor and then companies such as Apple or Qualcomm adapt or totally remake the processor to their needs. Making a processor in this way is unthinkable within the x86 architecture, due to the aforementioned license limitation.
Finally, choosing between ARM or x86 will depend a lot on the utility that you want to give the server and if the software to be used is compatible with ARM architectures, ARM can be a very good option to obtain a lower cost and better efficiency (performance-per-watt), apart from also considering the possible modification of the processor itself to adapt it to the application used and drastically improve efficiency and speed.
To sum up, if the application to be used does not support ARM, or if a certain degree of flexibility is simply needed, systems based on x86 architecture are still a good option.
Authors: Ferran Montoliu - Joan Farràs