前面的回答没有讲透,甚至有错误,所以我来补充一发。回答的过程中,难免有专业术语,我会尽力用类比的方式软化,并加入生活场景以便易于理解。下面正式开车。
先讲什么是超线程技术。
超线程(Hyper-Threading,简称HT)技术最早是英特尔提出并应用,它的原理是这样的:在单个核心处理单元中集成两个逻辑处理单元,从而可以在单位时间内处理两个分别进行整数核浮点运算的线程,模拟双内核运作。-CPU
一个拥有超线程技术的CPU,可以模拟成2个CPU。
打个比方,如果一个核心处理单元(CPU内核)相当于生产车间,那么逻辑处理单元就相当于生产线上的工人。过去的CPU是一个核心处理单元集成一个逻辑处理单元,相当于一个生产车间配一组工人,每个工人都工作在最大负荷下。运用超线程技术的CPU,则相当于一个生产车间配两组工人,人手增加一倍。-cpu
超线程技术的工作原理是这样的:程序的一个进程可以分成多个线程,超线程技术可以在单位时间内,让两个逻辑处理单元同时处理两个线程,一个进行密集运算,一个处理输入输出、人机交互等,行话叫“并发异步执行”。没有运用超线程技术的CPU一次只能处理一个线程,先处理密集运算,再处理输入输出、人机交互,让线程排队等待,行话叫“线程堵塞”。-CPU
我们假设一个程序可分为两个进程ABCD和EFGH,CPU无超线程技术时,需要先执行完ABCD,再执行EFGH,共耗费8个时间单位。CPU有超线程技术的话,一个逻辑单元执行ABCD,同时,另一个逻辑单元执行EFGH,共耗时4个时间单位,这样就节省了一半的时间。-cpu
可以看出,超线程技术可以省一半的程序执行时间。
这种线程处理上的效率差别可以打个比方,组装电视可以简单分成运料、装配两个大的步骤,有两组工人的车间(有超线程技术的CPU内核),可以让一组工人运料,另一组工人装配,单位时间内完成两个步骤;只有一组工人的车间(没有超线程技术的CPU内核),只能让工人先运料,运完料再装配,单位时间内只能完成一个步骤。-CPU
小结一下超线程技术的特点:一个CPU内核集成两个逻辑处理单元,运行时模拟成两个CPU;
每个逻辑单元共享执行单元、寄存器,类似于上面说的两组工人共享一条生产线;
可同时执行两个线程,节省一半时间;
但超线程技术也有短板:当两个线程不同时,可以提高效率,当两个线程相同时,线程也需要排队,好比来了两倍的电视机装配任务,但装配生产线只有一条,即使有两组工人,也只能等待,因此超线程要发挥优势,必须软件优化到位;-cpu
超线程技术提高的是程序执行效率,不是提高整个CPU内核的性能,提高性能还是离不开频率提升,相当于让生产线加速运转,“工人”手脚动作加快;
超线程技术对复杂应用(3D建模等)效率提升明显,一般简单应用体验不明显;
说完什么是超线程以及超线程的优缺点后,接着回答题主的问题:手机CPU为什么不采用超线程技术?
因为手机的APP绝大多数都不是复杂应用,根本用不到超线程技术。更重要的是,超线程技术采用的是两个逻辑单元,可以理解成是两个“软核”CPU,和多核CPU这种通过硬核提升程序执行效率的设计理念相比,优势并不突出。-CPU
此外,手机CPU设计满足的是在减少能耗的前提下提升性能的需求,因此“大核+小核”的多核模式比超线程技术更适合。
结果就是,满足重度应用的高性能电脑CPU会采用超线程技术,而满足轻度应用的手机采用能效比更出色的多核设计。
原创回答,请勿搬运。