Computer CPU has hyper-threading, why is there no hyper-threading design for mobile phone CPU?

The previous answer was incomplete or even wrong. Let me add another one. In the process of answering, there will inevitably be technical terms. I will try to soften them by analogy and add life scenes to make them easy to understand. Let's officially drive.

Let's talk about hyper-threading technology first.

Hyper-Threading (HT) technology was first proposed and applied by Intel. The principle is that two logic processing units are integrated into a single-core processing unit, so that two threads performing integer core floating-point operations can be processed in a unit time to simulate dual-core operations.

A CPU with hyper-threading technology can be simulated as two CPUs.

For example, a CPU core is equivalent to a production workshop, and a logical processing unit is equivalent to a worker on a production line. In the past, CPU was the core processing unit integrating a logical processing unit, which was equivalent to a production workshop with a group of workers, each of whom worked under the maximum load. The CPU with hyper-threading technology is equivalent to having two groups of workers in a production workshop, and the manpower is doubled.

The working principle of hyper-threading technology is that a process of a program can be divided into multiple threads. Hyper-threading technology enables two logical processing units to process two threads at the same time in a unit time, one for intensive operation and the other for input/output, human-computer interaction and so on. , the jargon is called "concurrent asynchronous execution". A CPU without hyper-threading technology can only process one thread at a time. It handles intensive operations first, then I/O and human-computer interaction, making threads wait in line, which is called "thread blocking" in jargon.

We assume that a program can be divided into two processes, ABCD and EFGH. When the CPU has no hyper-threading technology, it is necessary to execute ABCD first and then EFGH. * * * It takes 8 time units. If the CPU has hyper-threading technology, it takes four time units for one logic unit to execute ABCD and four time units for another logic unit to execute EFGH, thus saving half the time.

It can be seen that hyper-threading technology can save half the program execution time.

This difference in the efficiency of thread processing can be taken as an example. TV assembly can be simply divided into two steps: material delivery and assembly. There are two groups of workers' workshops (CPU core with hyper-threading technology), so that one group of workers transports materials and the other group assembles them, and the two steps can be completed in a unit time. In a workshop with only one group of workers (CPU kernel without hyper-threading technology), workers can only transport materials first, and then assemble them, and only one step can be completed per unit time.

After talking about what Hyper-Threading is, its advantages and disadvantages, and then answering the main question: Why doesn't the mobile phone CPU adopt Hyper-Threading technology?

Because most mobile apps are not complex applications, there is no need for hyper-threading technology. More importantly, Hyper-Threading technology uses two logical units, which can be understood as two "soft-core" CPUs. Compared with the design concept that multi-core CPU improves program execution efficiency through hard core, its advantages are not outstanding.

In addition, the design of mobile phone CPU meets the requirement of improving performance on the premise of reducing energy consumption, so the multi-core mode of "big core+small core" is more suitable than hyper-threading technology.

Therefore, the high-performance computer CPU for heavy applications will adopt hyper-threading technology, while the mobile phone for light applications will adopt multi-core design with better energy efficiency ratio.

Hyper-threading technology means that a single processor core can process thousands of instructions per second, but only one instruction at a time, that is, a single thread. Hyper-threading technology can turn a physical processor into two logical processors in the software layer, which can make the processors process more instructions and data in parallel at a certain time, that is, the number of threads exceeds the number (2). Of course, it is impossible to double the actual performance. After all, there is only one physical core. This is the difference between logical multi-core and physical multi-core.

It can be said that Hyper-Threading is a technology that can fully "mobilize" the temporarily idle processing resources inside the CPU. This technology is mainly used in the processors of intel and AMD, and it can obviously improve the multithreading performance of processors without greatly increasing the chip area.

However, processors using multithreading technology need to be designed on microarchitecture. The ARM architecture of mobile phone CPU does not consider hyper-threading, but adds physical cores, each with independent pipeline and independent cache. This method is conducive to reducing power consumption, although it will lead to an increase in area, but for mobile phone CPU, energy consumption is more important than cost performance. This is a trade-off. Is hyper-threading technology a technology that can greatly improve performance, just like dual-core four-thread CPU or quad-core four-thread CPU, which is more efficient? Needless to say. If it is only to improve the multithreading performance of mobile phone CPU, hyper-threading technology may be acclimatized.

Of course, the CPU on the mobile phone is not without hyper-threading technology. Like Lenovo k900 and Motorola MT788 a few years ago, they all use Intel's Atom processor with dual cores and four threads.

Just because android applications are not compatible with X86 architecture, Intel gradually withdrew from the market of mobile phone SOC. Recently, there have been many cooperations with Intel in domestic exhibitions in China. I remember that the exhibition in 17 also said at the press conference that a self-developed mobile phone CPU architecture with hyper-threading technology would be launched after the exhibition. Estimation technology is also authorized by Intel. Whether you can see the mobile phone CPU with hyper-threading technology in the future depends on whether the plan of Spreadtrum is smooth or not.

The hyper-threading technology of CPU can greatly improve the multi-core performance of CPU. Although the number of transistors occupied by CPU is much less than that of pure physical core, the opening of hyper-threading technology also needs to consume a lot of extra transistors and power consumption, such as computer CPU. Without hyper-threading technology, the power consumption and calorific value of i7-9700 are much less than that of i9-9900.

So for the current mobile phone CPU, 8 cores are completely enough. No matter how many high-performance cores are combined with several low-power cores, you can strike a balance between performance and power consumption. If hyper-threading technology is added, the CPU of mobile phone will reach 16 threads, which will inevitably bring about a substantial increase in power consumption, but obviously products like mobile phones do not need such strong performance.

In addition, at present, most mobile apps don't optimize multi-core CPU, because multi-core optimization itself is a very complicated task, so the development speed of mobile CPU has slowed down in recent years after it developed to 8 cores, indicating that mobile CPU doesn't need hyper-threading technology at present, after all, power consumption and battery life are often more important, and the mobile phone itself is not a productivity tool like a computer, so the demand for performance is not urgent.

In 2002, Intel introduced Hyper-threading technology, which can divide an Intel processor with a physical core into two logical cores, so that two threads can be processed at the same time in a unit time, thus achieving the purpose of simulating dual-core operation. In other words, Hyper-Threading is a technology that can make full use of the idle resources of the processor.

At present, not all Intel processors support this technology, and processors that support Hyper-Threading will be marked on the box.

Although two threads can be executed at the same time using Hyper-Threading Technology, unlike two real CPUs, each CPU has its own independent resources. When two threads need a resource at the same time, one of them should temporarily stop and give up the resource until these resources are free. So the performance of hyper-threading is not equal to the performance of two CPUs.

When running single-threaded application software, hyper-threading technology will even reduce system performance, especially when multi-threaded operating system runs single-threaded software. It should be noted that the CPU with hyper-threading technology needs the support of chipset and software to give full play to the advantages of this technology. If only CPU supports Hyper-Threading Technology without chipset and software, Hyper-Threading Technology is just empty talk.

I'm glad to tell you that there is.

The cpu of the mobile phone has hyper-threading, and they are all ATOM series chips specially designed by Intel for tablets and mobile phones. For example, z25x0 series and z35x0 series of z2580, while Lenovo k900, ZTE 975 and ASUS Zenphone using z2580 are all hyper-threaded mobile phones.

Hyper-threading technology is a patent of Intel. If other manufacturers want to use it, they must pay the patent fee.

At present, Qualcomm and MediaTek, the mainstream manufacturers of mobile phone CPU, all design chips by rubber core, that is, as many as eight chips are pasted together to form a CPU. Some of these eight chips have low power consumption, some have poor performance, some have high power consumption and some have good performance, so that if the mobile phone runs many tasks, it will open one or more high-performance cores to prevent the mobile phone card, and if the mobile phone runs few tasks, it will open the low-performance cores to save electricity.

Is this not good?

This can also achieve the purpose of multithreading, and it is realized in the physical layer. Each kernel has its own memory. From this point of view, it is more efficient than hyper-threading, and of course it consumes more materials.

There are many trade-offs and considerations in the design of CPU. Hyper-threading is a computer patent, so the mobile phone is a bit acclimatized ~

That's all, I hope I can answer the landlord's questions ~

Let's understand this problem in the most popular language.

1. In fact, the mobile phone CPU used to support hyper-threading. That's Intel's ATOM processor. Lenovo and Huawei also use it. This is an x86 architecture processor. Anyway, Intel stopped the development of mobile phone CPU. Now the CPU of mobile phone is basically ARM architecture.

2. Hyper-threading is a patent of Intel and x86. Even if the ARM processor really supports Hyper-Threading, you should ask Intel to give it or not.

3. The scientific name of Hyper-Threading is Analog Multithreading. Intel introduced resources such as superscalar, super pipeline and out-of-order running for CPU, but these resources are often idle, so it developed hyper-threading technology to make better use of the idle resources of CPU and let these idle resources run another thread. In the operating system's view, it is another CPU.

4. If you understand the significance of the existence of Hyper-Threading, you must understand that it exists because the single-core performance of CPU is too strong, so there are idle resources available.

5. Compared with the desktop CPU with x86 architecture, the CPU with ARM architecture on the mobile phone is just like the light of fireflies and the light of the sun and the moon, that is, the performance of the mobile phone CPU is actually relatively weak, and there is no extra resource for hyper-threading.

6. Hyper-threading technology needs new transistors to support it. For mobile phones, the energy consumption ratio is the most important. In addition, it needs the support of the system, and all this is not ready yet.

7. The future can be expected. Maybe one day, when the conditions are ripe, ARM processors can really support SMT.

This is actually very understandable. Mobile phone processors are completely different from desktop processors. At present, AMD and Intel are the main desktop processors, and ARM is the main mobile phone processor. Moreover, from the design point of view, embedded processors and desktop processors are not comparable. Desktop requires high performance, heat dissipation and stability can be solved by radiator instead of air cooling, while ARM must require good stability and low energy consumption. There is no way to solve this problem with an external radiator. The single-core performance of ARM processor is insufficient, and it can only run based on simple instruction set, not to mention using hyper-threading to improve resource utilization, and the power consumption and heat dissipation are uncertain.

In addition, the operation of Hyper-Threading requires the close combination of hardware and operating system. At present, the operating systems of mobile phones are both Android and IOS, which are not optimized for Intel's CPU architecture, and the operating system is also inherently insufficient to handle the hyper-threading operation of the processor.

Because the computer CPU is a complex instruction computer system. Mobile phone CPU is a simplified instruction computer system.

Complex instruction instrument CPU uses multiple instructions to complete a function. Simplified instruction instrument CPU uses one instruction to complete a function. Complex instruction CPU can split multiple instructions that complete a function into multiple cores to run at the same time, while hyper-threading technology allows one core to run two or more instructions, which makes the instructions run more efficiently.

Reduced instruction CPU can complete a function with one instruction, and the instruction efficiency is very high, so it is impossible for a core to run two instructions at the same time. Therefore, the simplified instruction CPU does not have the function of hyper-threading.

At present, the design of CPU, complex instructions and simplified instructions are learning from each other's strong points to narrow their respective disadvantages. Hyper-threading technology will definitely appear in the future reduced instruction CPU. At that time, it may be a CPU that combines complex instructions with simplified instructions.

Who said nothing? Inter Ztom processor has hyper-threading technology, such as: Motorola MT788 Z2480 single-core and double-thread; Lenovo K900 Z2580 dual-core four-thread and so on. It's just that the Inter series mobile processors are too small and used less, but it can't be said that there is no one.

Power consumption and fever caused by hyper-threading are also a problem. Now it's a problem that mobile phones don't need hyper-threading to heat up. If I use Hyper-Threading again, I guess my mobile phone will burn! Moreover, hyper-threading makes the processor have no free space to continue working, and the mobile phone has a serious fever. If the mobile phone processor wants to achieve the best power consumption, the battery is that big. Hyper-threading will increase the power consumption of mobile phones and shorten the standby time, which is not as easy as a processor core with tasks to deal with. There is also a hyper-threading technology to be used when the performance of a single processor core is strong. If the kernel itself is not powerful enough, using hyper-threading will drag down the performance of the mobile phone!

Simply put, computer CPU uses complex instruction sets, and the pipeline is very long. Some operations only occupy part of the pipeline, but not all multi-set pipelines. Some stages of the assembly line will be idle. With the help of hyper-threading technology, idle pipeline resources can be virtualized into new data entries. The CPU of mobile phone uses a reduced instruction set, and the pipeline itself is very short, and there are few idle pipeline resources. Even with the idle assembly line, the number of stages is too short to do anything.