ARM CPU and Intel x86 CPU performance comparison

Publisher:chinapxfLatest update time:2016-07-13 Source: eefocusKeywords:ARM  CPU  Intel  x86 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
With the advent of the mobile Internet era, ARM-based CPUs such as Qualcomm and Texas Instruments have attracted more and more attention, while the former king of Intel x86 architecture seems to be struggling in the mobile Internet due to power consumption issues.

Compared with ARM architecture, Intel x86 architecture has stronger performance but higher power consumption, which is a well-known fact. So how much stronger is the CPU performance of Intel x86 architecture than that of ARM architecture? Let's do a simple evaluation of a single Core.

My PC CPU: Intel Pentium Dual-Core CPU E5300 2.60GHz (Launched 2008Q1 x86)

My phone's CPU: Qualcomm Snapdragon S2 MSM8255 1.0GHz (Launched 2010Q2 ARMv7)

From the above description, it can be seen that Intel CPU was launched two years earlier than Qualcomm CPU.

 

We use the Whetstone benchmark (Whetstone: floating-point arithmetic performance) to test the CPU performance. The general steps are as follows:

1. Download Whetstone source code

2. Use gcc to compile Windows PC version executable program in MinGW environment

3. Use arm-none-linux-gnueabi-gcc to compile Android Native C version executable program in Linux cross-compilation environment

4. Run the test program in Windows

5. Run the test program in Android ARM Linux

6. Summarize the running time

 

    1. Download Whetstone source code

You can download the source code file directly at the following address:

http://www.netlib.org/benchmark/whetstone.c

 

2. Use gcc to compile Windows PC version executable programs in MinGW environment

Compile in MinGW using the following command line: gcc -static whetstone.c –O0 -o whetstone -lm

Note: -O0 is used to prevent gcc from optimizing the code to ensure the accuracy of the comparison test

 

3. Use arm-none-linux-gnueabi-gcc to compile Android Native C version executable program in Linux cross-compilation environment

    Use the following command line to compile in the Linux cross-compilation environment: arm-none-linux-gnueabi-gcc -static whetstone.c –O0 -o whetstone -lm

For more information about how to set up a Linux cross-compilation environment, see my other article: "Setting up an ARM cross-compilation environment in Ubuntu 10.04"

http://blog.csdn.net/xt_xiaotian/article/details/6836739

   

    4. Run the test program in MinGW

Run the program 100 times and observe the output.

$ time ./whetstone.exe 100

Loops: 100, Iterations: 1, Duration: 8 sec.

C Converted Double Precision Whetstones: 1250.0 MIPS

real    0m8.698s

user    0m0.s

sys     0m0.015s

   

    5. Run the test program in Android ARM Linux

Assume that adb (Android Debug Bridge) has been configured in the system. Connect the phone to the USB data cable and turn on USB debugging. Enter adb shell in the cmd window to enter the Android adb shell. Then configure as follows:

1. Use mount –o remount,rw /system to mount the /system directory as writable. Press Ctrl + C to exit the Android adb shell and return to the cmd window.

2. Use adb push C:\whetstone /system to copy the whetstone program compiled in the Linux cross-compilation environment to the /system folder in Android Linux.

3. Use chmod whetstone to set the program as executable

4. Run the program using time ./whetstone 100 and observe the output.

The output is:

Loops: 100, Iterations: 1, Duration: 148 sec.

C Converted Double Precision Whetstones: 67.6 MIPS

real 2m 28.88s

user    2m 28.25s

sys     0m 0.02s

 

6. Summary of running time

The same program, with the same number of loops, takes 8.698 seconds to run on an Intel CPU and 148.88 seconds to run on a Qualcomm CPU.

It can be concluded that in terms of floating point operations, the Intel Pentium Dual-Core CPU E5300 2.60GHz is 17 times more powerful than the Qualcomm Snapdragon S2 MSM8255 1.0GHz. According to Intel's Moore's Law, CPU performance will double every 18 months. It can be roughly calculated that the Intel CPU is 42 times more powerful than the Qualcomm CPU of the same grade and time.

    The test may not be accurate, but it does reflect the performance gap between the two different types of CPUs to a certain extent. Everyone is welcome to reply and tell us the test values ​​of your own ARM CPU and PC CPU.

--This
comparison is not scientific.
The main reason is that you run too few cycles. The user time of Windows is ignored. The user time of Android is about the same as the running time.
The difference can be seen only when the number of cycles is increased. The difference should be close to 1 times, not 42 times.
--In
comparison, Qualcomm MSM8255 is only equivalent to an Intel Pentium III Mobile 750MHz. Link: http://ark.intel.com/products/27410/Mobile-Intel-Pentium-III-Processor-750-MHz-256K-Cache-100-MHz-FSB

Keywords:ARM  CPU  Intel  x86 Reference address:ARM CPU and Intel x86 CPU performance comparison

Previous article:ARM CPU architecture and classification description
Next article:Comparison of ARM and X86 architecture terminal features

Recommended ReadingLatest update time:2024-11-16 14:46

Quickly learn Arm (25)--Power Control
The LPC2300 series ARM has a power control module that supports three low-power modes and selectively shuts down on-chip peripherals. The three low-power modes of the 2300 series ARM are: idle mode, sleep mode, and power-down mode. Among them, the power-down mode is the most power-saving, the sleep mode is the second,
[Microcontroller]
Quickly learn Arm (25)--Power Control
The difference between LDR and ADR in ARM assembly and its application in UBOOT
I saw the following code when looking at the lowlevel_init.S file of U-BOOT: lowlevel_init: ldr r0, =SMRDATA ldr r1, _TEXT_BASE sub r0, r0, r1 ldr r1, =BWSCON add r2, r0, #13*4 0: ldr r3, , #4 str r3, , # 4 cmp r2, r0 bne 0b mov pc, lr This code implements the register initialization of the memory control
[Microcontroller]
arm7 Litian Electronics lpc2148 GPIO one buzzer test program
The experiment uses the output function of P0.22 to control the buzzer. The program sets PINSEL0 to connect P0.22 to GPIO, and sets it to output state through IO0DIR; then sets and clears P0.22 port through IO0DET and IO0CLR to control the buzzer. #include NXP/iolpc2148.h void Delay(unsigned long n); main() {   PI
[Microcontroller]
arm7 Litian Electronics lpc2148 GPIO one buzzer test program
Detailed explanation of ARM interrupt implementation in linux-2.6.26 kernel (1)
I have read some articles on the Internet about the implementation of Linux interrupts, and I feel that some of them are very well written. I would like to thank them for their selfless contributions, and then I would like to add my understanding of some issues. Let's start with the problem of function registration.
[Microcontroller]
Hardware design of intelligent data acquisition terminal for hydraulic system based on ARM
  According to the characteristics of hydraulic system, an ARM-based intelligent data acquisition terminal system is designed. The system collects three types of signals, namely oil pressure, flow and temperature, through sensors. The conditioned data is processed and compressed by ARM processor S3C2440, and the compr
[Microcontroller]
Hardware design of intelligent data acquisition terminal for hydraulic system based on ARM
Hardware Design of Frequency Hopping Radio Central Control Unit and Frequency Hopping Unit
1 Preface Frequency hopping communication is a branch of spread spectrum communication. Its working principle is that the carrier frequency of the transmission signal of the sender and receiver changes discretely according to a predetermined rule. In other words, the carrier frequency used in communication jump
[Microcontroller]
Communication between Dual CPUs in Embedded Power Grid Analyzer
1 Introduction Under the current situation of power shortage in my country, it is very important to monitor power to ensure safe use of power. The research and transformation of power grid analyzers has always been a hot topic of current research. If the power grid analyzer uses a DSP, it not only samples a
[Embedded]
A brief summary of ARM7 (LPC2xxx) chips
7 working modes: fiq/irq/abt/und/sys/usr/svc. Switched by "MSR cpsr_c,#0xdx". Enters svc mode at power-on. The difference between svc and usr is that svc can switch to any other mode freely through "MSR cpsr_c,#0xdx", but usr cannot. Each mode has its own stack. After the program starts, you need to enter each mode
[Microcontroller]
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号