一个人提两桶水,不仅需要两只手,还需要两个水桶,相当于操作系统和应用软件都支持超线程技术。当两个线程不同时,可以提高效率。当两个线程相同时,线程也需要排队。比如有两倍的电视组装任务,但是只有一条流水线。就算有两组工人,也只能等。所以超线程必须对软件进行优化,才能发挥其优势。超线程技术提高的是程序执行效率,不是整个CPU核的性能,也是频率的提升,相当于加快了生产线。工人的手和脚移动得更快。超线程技术明显提高了复杂应用的3D建模效率,但简单应用的体验并不明显。在你讲完什么是超线程及其优缺点之后,再回答本题的问题。

电脑CPU有超线程,为什么手机CPU没有超线程设计?

电脑CPU有超线程,为什么手机CPU没有超线程设计

前面的回答没有讲透,甚至有错误,所以我来补充一发。回答的过程中,难免有专业术语,我会尽力用类比的方式软化,并加入生活场景以便易于理解。下面正式开车。先讲什么是超线程技术。超线程Hyper-Threading,简称HT技术最早是英特尔提出并应用,它的原理是这样的在单个核心处理单元中集成两个逻辑处理单元,从而可以在单位时间内处理两个分别进行整数核浮点运算的线程,模拟双内核运作。

一个拥有超线程技术的CPU,可以模拟成2个CPU。打个比方,如果一个核心处理单元CPU内核相当于生产车间,那么逻辑处理单元就相当于生产线上的工人。过去的CPU是一个核心处理单元集成一个逻辑处理单元,相当于一个生产车间配一组工人,每个工人都工作在最大负荷下。运用超线程技术的CPU,则相当于一个生产车间配两组工人,人手增加一倍。

超线程技术的工作原理是这样的程序的一个进程可以分成多个线程,超线程技术可以在单位时间内,让两个逻辑处理单元同时处理两个线程,一个进行密集运算,一个处理输入输出人机交互等,行话叫并发异步执行。没有运用超线程技术的CPU一次只能处理一个线程,先处理密集运算,再处理输入输出人机交互,让线程排队等待,行话叫线程堵塞。

我们假设一个程序可分为两个进程ABCD和EFGH,CPU无超线程技术时,需要先执行完ABCD,再执行EFGH,共耗费8个时间单位。CPU有超线程技术的话,一个逻辑单元执行ABCD,同时,另一个逻辑单元执行EFGH,共耗时4个时间单位,这样就节省了一半的时间。可以看出,超线程技术可以省一半的程序执行时间。

这种线程处理上的效率差别可以打个比方,组装电视可以简单分成运料装配两个大的步骤,有两组工人的车间有超线程技术的CPU内核,可以让一组工人运料,另一组工人装配,单位时间内完成两个步骤只有一组工人的车间没有超线程技术的CPU内核,只能让工人先运料,运完料再装配,单位时间内只能完成一个步骤。小结一下超线程技术的特点一个CPU内核集成两个逻辑处理单元,运行时模拟成两个CPU每个逻辑单元共享执行单元寄存器,类似于上面说的两组工人共享一条生产线可同时执行两个线程,节省一半时间但超线程技术也有短板当两个线程不同时,可以提高效率,当两个线程相同时,线程也需要排队,好比来了两倍的电视机装配任务,但装配生产线只有一条,即使有两组工人,也只能等待,因此超线程要发挥优势,必须软件优化到位超线程技术提高的是程序执行效率,不是提高整个CPU内核的性能,提高性能还是离不开频率提升,相当于让生产线加速运转,工人手脚动作加快超线程技术对复杂应用3D建模等效率提升明显,一般简单应用体验不明显说完什么是超线程以及超线程的优缺点后,接着回答题主的问题手机CPU为什么不采用超线程技术?因为手机的APP绝大多数都不是复杂应用,根本用不到超线程技术。

更重要的是,超线程技术采用的是两个逻辑单元,可以理解成是两个软核CPU,和多核CPU这种通过硬核提升程序执行效率的设计理念相比,优势并不突出。此外,手机CPU设计满足的是在减少能耗的前提下提升性能的需求,因此大核 小核的多核模式比超线程技术更适合。结果就是,满足重度应用的高性能电脑CPU会采用超线程技术,而满足轻度应用的手机采用能效比更出色的多核设计。

超线程技术到底是什么?


文章TAG:超线程有哪些  超线程  CPU  电脑  
下一篇