超线程因其显著的多核性能提升,长期以来一直是划分CPU等级的关键 。比如英特尔酷睿i7-9700不支持超线程技术,而i9-9900k支持,后者的多线程性能确实强很多 。当两个线程不同时,可以提高效率 。当两个线程相同时,线程也需要排队 。比如电视机组装任务多一倍,但是只有一条流水线 。就算有两组工人,也只能等 。因此,如果要利用超线程技术,必须对软件进行优化 。超线程技术提高的是程序执行的效率,不是整个CPU核心的性能,而是频率的提升,相当于加速了生产线的运行,加速了“工人”的动作 。超线程技术提高了复杂应用程序(3D建模等)的效率 。)很明显,但是简单应用的体验并不明显 。说完什么是超线程,超线程的优缺点,然后回答题主的问题 。
电脑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绝大多数都不是复杂应用,根本用不到超线程技术,
推荐阅读
- 网易云音乐为什么火了,网易云音乐为什么这么好用
- 为什么高铁票必须要去高铁站打印,DGK火车票是不是都要去高铁站买票
- 广电为什么不让播港剧,广电禁止拍摄穿越剧了
- 乐视网为什么不敢复牌,你们觉得是为什么
- 为什么相机会打不开了,为什么相无数次亲都不成功呢
- 癌症为什么容易饿,癌症可以饿死吗
- 高铁下一站有人是什么颜色的灯,火车启动前为什么站台上有人举绿旗子或开绿手电
- 联发科x20为什么发热,高配用联发科
- 为什么小米用陶瓷做机身,为何坚持做下去的厂家很少
- 为什么gtx970不降价,为什么同样是麒麟970