Trivia for IT Engineers What is CPU architecture?
Hello.
I'm Nomushin, the biggest hardware geek in the company (self-proclaimed).
Have you, as an IT engineer, ever been aware of CPU architecture?
There is no particular need for architectural knowledge to develop a web system, but all programs operate on the computer's architecture.
Therefore, there is no harm in keeping it in the back of your mind as knowledge.
It would be too long to go into detail, so this article will only touch on the details. If you are interested, please dig deeper and find out.
First of all, what is a CPU?
"Ah. I know, I know. It's that stubborn guy ."
Yes. You are quite an old man! Today's CPUs are no longer busy.
I don't think there are any IT engineers who don't know what a CPU is, but just in case.
CPU stands for Central Processing Unit. It's abbreviated as CPU. Sometimes called a processor.
It is the central processing unit in a computer, and is often compared to the brain of a computer.
It can be said that all electronic devices, from computers and smartphones to various home appliances and calculators, are equipped with a CPU (although they vary in size).
*By the way, for both PCs and smartphones, in addition to a pure CPU, SoC (System on a Chip) combines various functions into a single chip, such as a GPU (graphics function), a chip dedicated to AI processing, a communication modem, and various chipset functions. However, leaving aside the details, in this article we will focus only on the CPU part of such devices and call them "CPU".
What is CPU architecture? ?
The main topic is architecture.
refers to
instruction set architecture ( ISA In addition to the literal meaning of "architecture," architecture also has the meaning of
"design," The CPU is equipped with very primitive instructions (logical/arithmetic operators, data copying, etc.) for performing various processes, and registers (temporary data storage inside the CPU) are used to actually process these instructions. Specifications such as storage area) are determined by the ISA mentioned above.
In other words, as long as the CPU has the same ISA, the same program will basically run, regardless of which company's CPU was developed.
architecture type
There are various types of architecture, but this time I will introduce the following two architectures from familiar places.
- x86 (Intel) ・・・Hachiroku
- ARM (ARM) ・・・Arm
Regarding ARM, the name of the company that developed it is ARM, and it has been featured in the news, so even people who don't read IT sites may have heard of it.
What is x86?
- Intel's architecture
- This is a PC with "Intel". CPU "brands" include Xeon, Core, Pentium, Celeron, etc.
- Often used in computers, servers, supercomputers, etc.
- High performance but high power consumption
- AMD, which has a license agreement with Intel, is also developing CPUs with the same architecture (Ryzen, Athlon, Optelon, etc.)
What is ARM?
- British ARM architecture
- Almost all smartphones are like this
- ARM architecture CPUs are used in all kinds of devices that we interact with on a daily basis, such as communication devices such as routers, home appliances such as air conditioners, refrigerators, and TVs, and IoT devices.
- A wide range of power-saving, low-cost CPUs to high-performance ones
- ARM itself does not manufacture CPUs.
- Bought by Softbank (2016) Sold (2020)
*Memo ① Architecture performance?
I wrote above that x86 is ``high-performance, but also consumes a lot of power,'' and ARM is ``power-saving.'' However, in recent years, Intel has focused on power saving, and ARM has been used in fields that require high performance, such as PCs and servers. The performance characteristics of the two companies are becoming unclear, partly because they are aiming to expand into Japan.
Intel once entered the CPU market for smartphones (in 2012), but withdrew in 2016 . *Therefore, there are two types of Android OS: "ARM version" and "x86 version".
On the contrary, ARM has now entered the CPU market for Windows (though it may be more accurate to say that Microsoft developed Windows for ARM...). Windows PCs with ARM CPUs are not yet widespread, but they may become more common in the future.
Furthermore, the CPU "A64FX" of "Fugaku", which has been featured in various media as the world's fastest supercomputer, is
an ARM architecture CPU developed by Fujitsu In 2020, Apple announced that it would switch This is also very high performance and has become a hot topic.
What should Intel do? ?
*Memo ② ARM's business model
Intel designs and manufactures CPUs based on its own x86 architecture in-house (it owns a CPU manufacturing factory).In
contrast, ARM designs and manufactures CPUs based on its x86 architecture. This is a business that licenses (sells) illustrations. ARM has a huge number of customers in this licensing business, and each manufacturer that buys this blueprint customizes this design (or does not customize it) and manufactures a CPU.
Additionally, the world's top three semiconductor factories that manufacture CPUs Intel (USA), Samsung (South Korea), and TSMC (Taiwan) .
Almost 100% of smartphone CPUs distributed in Japan are manufactured by TSMC or Samsung.
*Memo ③ x86? x64?
Some people may have seen the word
"x64" separately from x86 x86 is a 32-bit architecture, while x64 is an architecture that extends x86 to 64-bit. Sometimes written as "x86-64".
To give you a very rough explanation, x64 can handle larger data sizes at once, and can process data more efficiently and faster.
When x86 and x64 are listed side by side, some people may get confused because x64 has a lower number but is a higher architecture, but please note that x64 is an abbreviation for "x86-64".
, I think there are two folders created
on the Windows 10 boot drive: "Program Files (x86)" and "Program Files" The app will be installed. However, modern x86 CPUs support both architectures, and the only new version of Windows 10 that can be purchased is the 64-bit version (which also runs 32-bit apps), so you may not have to worry about it.
Similarly, ARM has both 32-bit and 64-bit architectures, but 64-bit is already mainstream in areas where performance is required, such as smartphones, just like x86.
Architecture adoption trends (game consoles)
Now that we know about computers and smartphones, in what other fields are each architecture used?
Let's take a closer look at game consoles.
The architecture adopted by game consoles varies from generation to generation, but Sony's PS4 and PS5 consistently use x86 CPUs from licensee company AMD rather than Intel.
Also, Microsoft Xbox of the same generation uses AMD's x86 CPU like
Xbox One ⇒ XBOX SERIES X/S Therefore, these game consoles have similar hardware configurations, so much so that they can be called brother machines, and they are also built very similar to PCs.
Nintendo, on the other hand , adopted the ARM architecture for the Switch. This is a CPU from NVIDIA, which is rapidly growing in the AI and GPU (graphics) fields.
The Switch is designed to be battery-powered, so unlike the previous two companies' game consoles, which prioritized performance, this choice seems to be a result of striking a balance between performance and power savings. This design is more similar to a smartphone than a PC.
I expect the next generation Switch to follow the same path, but I'm looking forward to seeing Nintendo come up with an unpredictable game console.
Architecture adoption trends (cloud server)
At present, Intel's x86 CPUs account for most of the CPUs in AWS, GCP, Azure, etc.
Since 2018, the performance of the AMD EPYC processor (Ryzen server CPU) with the same x86 architecture has been evaluated, and it has been adopted one after another by AWS and GCP. Since it is a popular manufacturer, it is likely that its adoption will continue to increase in the future.
"Graviton" developed by Amazon , and there is even talk that Microsoft may develop its own ARM CPU and use it in Azure.
I have the impression that the Sengoku era has come to cloud servers, which used to be dominated by Intel.
So, from a user's perspective, what are the benefits of using a server other than Intel CPU ?
AWS explains the characteristics of each CPU instance as follows.
- AMD x86 CPU (instance ends with “a”): Same performance as Intel, 10% cheaper
- In-house ARM Graviton CPU (instances end with “g”): Up to 40% higher price/performance ratio than Intel instances of the same generation
The latter is a little abstract and difficult to understand, but the point is that both are ``Better cost performance than (traditional) Intel CPU instances! ” That would be the answer.
However, web systems created with PHP etc. can be expected to basically operate in the same way on any instance because the middleware and OS absorb differences in architecture, but there are cases where software does not work due to differences in CPU architecture. There are also things, so you need to take that into consideration.
However, each instance has merit, so if it matches your requirements, it may be worth actively considering it as a candidate.
lastly
I have opened the system development service site "SEKARAKU Lab" to which I belong.
Beyond is a one-stop service for everything from server design and construction to operation, so if you have any trouble with server-side development, please feel free to contact us.
SEKARAKU Lab: https://sekarakulab.beyondjapan.com/
Thank you for reading to the end.
Software and hardware are inseparable, but I feel like there are quite a few programmers who aren't really interested in hardware. Is it the era...?
It's a fun world to delve into (I think), so if you're interested, please do some research.