1. About the x86 architecture
X86 is a standard number abbreviation for an Intel general-purpose computer series, and also identifies a set of generic sets of computers, X86 is a complex instruction set introduced by Intel to control the operation of the chip, now X86 has been widely used in the Home PC field. The x86 is a standard number abbreviation for an Intel general-purpose computer family, and also identifies a set of generic sets of machine instructions, X has nothing to do with the processor, and is a simple wildcard definition for all *86 systems, such as: i386, 586, Pentium (Pentium). Since earlier Intel's CPU numbers are numbered like 8086,80286, since this entire series of CPUs are directive compatible, they are used X86 to identify the set of instructions used today's Pentium, P2,P4, Celeron series are supported X86 instruction system, so all belong to the X86 family. Where is the shortage of X86?
(1) Variable instruction length X86 instruction length is variable, and there are several different formats, resulting in X86 CPU decoding work is very complex, in order to improve the CPU operating frequency, have to extend the CPU pipeline, and too long pipeline in the case of branch prediction error, It also brings the disadvantage that the CPU work has a long stagnation time.
(2) The poor X86 instruction set architecture for registers has only 8 universal registers, and only 6 are actually used. This situation with the modern superscalar CPU is very uncomfortable, although engineers use register renaming technology to compensate for this flaw, but caused the CPU too complex, pipelining too long situation.
(3) The memory Access X86 instruction can access the memory address, while the modern RISC CPU uses Load/store mode, only the load and store instructions can read data from memory to the register, and all other instructions only calculate the operand in the register. In the current CPU speed is 5 times times the memory speed or more than 5 times times the case, the latter mode of operation is the right way. (4) floating-point stack X87 FPU is currently the slowest FPU, one of the main reasons is that the X87 instruction uses an operand stack. If you don't have enough registers to compute, you'll have to use stacks to hold the data, which can waste a lot of time using the FXCH directive (that is, putting the right data on top of the stack).
(5) 4GB limit This does not seem to be the problem, but, 6 years ago, the mainstream PC only 4MB of memory, and most of the current PC equipped with more than 64MB of memory, is the previous 16 times times, so, in the next 10 years, the PC memory breakthrough 1GB will definitely not be surprising, And the current large server has used more than 1GB of memory, the breakthrough of 4GB memory will soon appear.
(6) The chip becomes larger all the methods used to improve the performance of X86 CPU, such as register renaming, huge buffer, disorderly execution, branch prediction, X86 instruction conversion, etc., all make the chip area of CPU become bigger, also limit the work frequency's further increase, and the additional integration of these transistors is only to solve the problem of X86 instructions.
Google's Android system and Apple's ipad, iphone launch, ARM architecture computer systems (especially in the terminal application) by the user's broad support and pursuit, arm+android become the IT, communications, the most popular topic, Many chip manufacturers have launched a variety of unique application features based on ARM structure development products, the recent formation of "heterogeneous concept" has become the main direction of the future development of computers. In the IT industry, more than 20 years of the "price-performance" concept was fundamentally shaken and impacted, "applicable is the best" has been more and more users accept.
We make a systematic analysis of the features of the ARM architecture system and the X86 architecture system, so that users can make rational and reasonable comparison analysis when selecting the system.
X86-structured computers are much faster and much stronger in terms of performance than arm-structured systems. X86 CPU random is more than 1G, dual-core, quad-core large lines, usually using 45nm (or even more advanced) process of production, and arm: The CPU is usually hundreds of trillion, only recently 1G of the CPU, the process is usually used in less than 65nm processes, It can be said that arm is not an opponent of the X86 structural system at all in terms of performance and production processes.
But ARM's advantage does not lie in the performance is powerful but lies in the efficiency, the ARM uses the RISC pipelining instruction set, in completes the comprehensive work aspect is at the disadvantage, but in some tasks relatively fixed application situation its superiority can play incisively and vividly.
Second, expand capacity
X86 structure of the computer using "bridge" way with the expansion of equipment (such as: Hard disk, memory, etc.) to connect, and x86 structure of the computer appeared nearly 30 years, its supporting expansion of the type of equipment and more inexpensive, so the x86 structure of the computer can be easily extended performance, such as increased memory, hard disk and so on.
ARM structure of the computer through a dedicated data interface to make the CPU and data storage device connection, so arm storage, memory and other performance expansion difficult to carry out (generally in the product design has been set up its memory and data storage capacity), so the use of ARM structure of the system, generally do not consider the expansion. Basically adhere to the "good enough" principle.
Third, the compatibility of the operating system
The X86 system, built by Microsoft and Intel's Wintel Alliance Eminence, has monopolized the PC operating system for nearly 30 years, forming a huge user base and solidifying the habits of many users, while the x86 system has formed a unified standard in hardware and software development. Almost all x86 hardware platforms have direct access to Microsoft's Windows system and almost all of the tool software that is now popular, so the x86 system has an unparalleled advantage in terms of compatibility.
ARM system almost all use Linux operating system, and almost all of the hardware system to build their own system, and other systems can not be compatible, which also led to its application software is not easy to transplant, which has severely restricted the development and application of ARM system. Google developed an open Android system, unified arm structure of the operating system, so that the new arm-based computer system has a unified, open, free operating system for the development of ARM to provide a strong support and power.
Iv. the convenience of software development and the diversity of tools to be used
X86 structure of the system has been launched nearly 30 years, in this period, the x86 computer through the rapid development of the golden period, the user's application, software support, software development tools supporting and compatible work, has reached very mature even can be said to be the perfect realm. So using the X86 computer system not only has a lot of third-party software to choose from, there are also a lot of software programming tools to help you do what you want to do.
ARM structure of the computer system because of the constraints of hardware performance, operating system, and system compatibility problems, resulting in the arm structure of the computer system can not be like X86 computer systems have many programming tools and third-party software to choose and use, ARM programming language mostly using C and Java.
A more straightforward conclusion to this point is that the development of software based on the x86 architecture computer system platform is easier, simpler, and lower in actual cost than the ARM architecture system, and makes it easier to find third-party software (without the time and cost of development), and software porting is easier.
From the above comparative analysis, gave us a very clear feeling, arm and X86 structure of the computer can not compare, arm is not X86 computer opponents. Yes, ARM does not compete with the X86 computer, even compared with the qualifications, if only considering the number of points mentioned above. But nearly 1, 2 years, ARM's products in the terminal application, especially the handheld terminal application of rapid development (such as: smart phones, tablets, etc.), its sales volume has far exceeded the x86 structure of the computer sales volume, it is visible arm with its X86 structure of the computer can not be compared with the advantages. The advantage is: power consumption.
Five, power consumption
X86 computer due to the consideration to adapt to the needs of various applications, the development of the idea is: Performance + speed. More than 20 years x86 the speed of the computer from the original 8088 of a few m developed to now casually is a few g, but also a few cores, its speed and performance has increased thousands, thousands of times, technological progress makes x86 computer become an indispensable part of public life. But x86 the direction and mode of computer development, so that its power consumption has been high, a computer casually is hundreds of watts, even the so-called low-power energy-saving laptop or netbook, there are more than 10, 20 watts of power consumption, which is not comparable to arm structure of the computer.
ARM design and development thinking is: to meet a particular aspect of the application can, in a particular area is the strongest, (even if in other ways useless), so arm is not the strongest technology, also not very high-grade manufacturing process, the production of performance is not very strong computer system, But in a professional application is the best, especially in a number of terminal applications, especially in mobile terminal applications to occupy the dominant position of absolute dominance, this reason is: power consumption.
High power consumption has led to a series of problems that the X86 system cannot solve: the system has a weak endurance, the volume can not be reduced, the stability is poor, the use of environmental requirements of high problems. From here we can see that the x86 system and arm systems are in two completely different areas of application, there is no substitution between them, in the server, workstations and other high-performance computing applications, such as power consumption and the use of environment conditions, such as the X86 system accounted for the advantages of absolute advantage, but the power consumption, Environment and other conditions constraints and the work of the fixed task of the case arm occupies a great advantage, in the handheld mobile terminal field, X86 power to make his hero useless.
But in many application terminal areas, is now becoming the focus of the two camps, arm camp efforts to increase its performance and system (especially operating system) versatility, eating away from the x86 system of some end-use market; the X86 Camp strives to reduce power consumption to preserve its market while hacking into the handheld mobile terminal market.
The focus of our discussion today is to compare and analyze the end-use areas that both camps can cover. This type of application must be a terminal application, usually with the following characteristics:
1, the system's working nature is relatively fixed (such as: POS, ATM, car computer systems, multimedia advertising system, video surveillance system, as well as a number of information reception, control systems and professional industrial systems and so on);
2, the application of harsh environment, such as: temperature change is very large, high temperature of more than 40 degrees, low temperature up to –20, dusty, humid, etc.;
3, there is a certain number of applications, but the number is not very large.
This part of the field of application is traditionally implemented by the X86 structure of the Low power Industrial computer (System), but in recent years, the rapid development of ARM systems, especially the emergence of the Android operating system, arm+android greatly replaced the x86 system occupied (low Power) terminal application field trend. We consider the comparison of this application according to the characteristics of arm and X86 the main consideration is also the following and factors:
If the performance of an arm system meets the requirements of the application, it is advisable to consider the products of arm structure as much as possible, otherwise only X86 products can be considered. Note Here we want to emphasize: do not talk about the absolute performance of the two systems to compare, but to be able to your application characteristics for the standard analysis.
2, the number of applications:
If you have too few applications, you may not be worth developing a single application system at all, but if you have hundreds of or even thousands of applications, you are worth considering developing a new set of systems. Because: ARM development costs and manufacturing costs are relatively low, if there are more than hundreds of terminal applications, you should be able to share the development costs.
If you choose a X86 structure system, you should not consider developing a dedicated system alone (because the development cost is too high, perhaps 10 times times arm), but rather to filter out the products closest to your needs in the market to avoid costly hardware development costs and future manufacturing costs (if the number of batches is not enough, Scheduling costs will also be high).
3. Operating system
ARM's operating system is usually built on its own Linux system, and the system is not compatible with the system, which severely restricts the application of arm extension, but after the advent of Android, the system-compatible barrier is gradually disappearing, promoting the compatibility of the system and application software, Greatly expands the number of ARM application software and expands its application space.
4. Power consumption and power extension series issues
The advantage of ARM is low power consumption, in fact, low power consumption also means:
1) High Stability: Because the higher the power consumption, the stability and reliability of electronic components is worse, the low power consumption of products as long as the selection of the quality of peripheral components, the stability of the system will not be too big problem;
2) Low thermal cost and can consider a smaller product volume: for high-power products are unavoidable to consider the thermal problem, and the existence of thermal equipment (or devices), has restricted the volume of products, the application of certain occasions constitute a deadly constraint. However, the power consumption of arm <1w, regardless of the thermal problem.
3) Low power supply requirements Low: almost all electronic products, (under the same conditions) the higher the power supply requirements, the higher the cost of power supply.
4) Low power consumption battery for long life, this is not explained in detail.
5) Low power consumption against environmental damage is strong: low-power products because no heat dissipation, can be sealed to protect the product, but high-power products must be cooled, and even need fans to help dissipate heat, which will inevitably make a lot of components and lines exposed in the air, by the air dust, moisture, acid and alkali substances and other corrosion.
5. Cost of software development
ARM's operating system is small (thin), it is impossible to bring many tools, usually arm-based software is mostly developed in C or Java, the cost will be higher than based on the X86 system. And for most arm, because its operating system is not the same, the software industry can not be freely used in two systems, but generally speaking: C or Java software can only be compiled in the ARM platform operating system to be able to transplant the past.
But software developed for Android can run on another device that is based on the same system, as long as it can run on an arm device.
6, the development cost of hardware
Arm actually has integrated almost all the functions in the CPU chip, almost all the lines are pulled directly by the schematic diagram, the need to expand the part is generally not much, so its development costs will be relatively low, usually 350,000.
But X86 's peripheral line is many, needs the very experienced engineer, but also has the BIOS and so on design, therefore the X86 motherboard design expense will be relatively high, usually wants two hundred thousand or three hundred thousand.
7, the hardware manufacturing and application costs
Whether arm or X86 motherboard manufacturing costs are composed of components and processing fees, usually an arm of the board price and a X86 motherboard price is similar, but arm is a product can be used independently, but the x86 motherboard is usually added: CPU, memory, hard disk and even a video card. In addition, X86 also need to be equipped with a power supply, which is more expensive than arm power. So: Obviously X86 is much more expensive to use in hardware than arm.
Summing up the above comparison,X86 system and ARM system should be two completely different applications, if the function of a single and environment-constrained applications, such as: POS, ATM, multimedia advertising machine (now has ARM+DSP products), car computer terminals and other applications, should first consider the ARM program, Compared with X86, the arm scheme has a great advantage in power consumption and cost.
X86 Architecture and ARM architecture