什么现在CPU主频还那么低?

这都2020年了还唯频率论?只看主频然并卵,我们买CPU除了看性能,还要考虑功耗。因为CPU发展早过了拼频率的时代,架构、制程工艺、核心数量、缓存大小才是不同代数性能差异的决定因素。比如2004年量产奔腾4,最高主频达3.8GHz,但这是单核CPU,由于架构太落后,要运行于5.2GHz,才能与2.6GHz的Athlon FX-55性能相当。

LGA775功耗墙导致温度畸高,英特尔不得不放弃冲击4GHz,甚至发生过承诺上4G无法完成,CEO下跪的事件。追溯过去,CPU从单核心发展到多核多线程,也就是最近15年的事。英特尔从胶水双核奔腾D开始,放弃了原来高频低能的设计,2006年又拿出强大的酷睿微架构,将AMD按在地上摩擦好几年,至今已发展到第10代,而AMD直到2017年祭出锐龙才得以翻身,有了和英特尔叫板的实力。

随着处理器不断演进,新低端性能超越老中端,甚至数倍于前代顶级CPU,以及移动CPU快过台式CPU,这都是正常现象。比如G4560≥i3-7100,i3-8100≥i5-7500,i5-8500≥i7-7700。再拿FX-8350来说,八核心主频4GHz,但性能不如功耗减半的Ryzen 5处理器。▲回顾CPU发展史可见,频率提升幅度变小,在保持原有功耗基础上,通过增加晶体管和核心数提升效果仍明显,但受制于摩尔定律,除非制程架构改进,否则难度也越来越大。

通过优化指令集、超线程、睿频等技术,CPU针对不同应用智能调度运行,以取得更好的能耗比。▲酷睿5代笔记本CPU i7-5600U,性能和桌面处理器A10-7850K同级,我们能说2.6GHz打败了3.7GHz吗?当然,因为后者TDP功耗高达95W。最新台式处理器i3-10320,4核8线程,主频3.7GHz,睿频4.3GHz。

2017年发布的i7-7700同样是4C8T,主频3.6GHz,睿频4.2GHz。3DMARK数据显示,i3-10320处理器得分为11015,i7-7700得分为10116,10代i3已领先7代i7 8.9%。同时,CPU默认主频5GHz并不实用,因为应用程序并不需要长时间高频运行,那样会导致功耗过高。

睿频技术即为高效而生,在应对复杂应用程序时,CPU自动调整运行主频,以提高多任务执行速度。比如一个额定频率3GHz,睿频可达3.5GHz的处理器,在写TXT文档时只用到1GHz,这样降低功耗延长续航;但当运行大型游戏时,CPU睿频到3.5GHz运行,保证游戏流畅度。换句话说,睿频其实就是动态超频,而无需人工干预。

第一颗真正主频5GHz的CPU,是去年上市的英特尔i9-9900KS,8核心16线程,基准频率4.0GHz,全核睿频加速5GHz,TDP功耗也达到127W,英特尔当时的口号是:全球最强游戏CPU!但这颗 CPU 将成短命鬼,种种迹象表明就要停产退市了,众多网店已无库存,有的也贵得飞起,或者捆绑主板套餐,还不如AMD 12 核 R9 3900X 划算,且综合实力只强不弱。

▲▼用什么CPU仅凭主频,就是图样图森破。正确做法是根据个人需求,确定哪个性能级别的CPU够用,再关注子项目测试得分,符合软件运行要求就够了,再比较品牌机型价格,有更好的U尽量往上选,笔记本显卡也是同理。CPU跑得再快,内存也要跟上,硬盘也是如此,还要结合软件应用,软硬件功能升级迭代,才能不断催生新需求,这点上电脑跟手机是相通的。

处理器的核数、线程数,有什么作用?

处理器中的核心以及线程代表了处理信息的通道,核心和线程数越多,通道就越多,就可以在多通道内并行处理多条不同的信息,这样就大大的增加了处理器的工作效率,提高运算速度。事实上,处理器中的每个核心就是一个CPU处理设备,只对应一个线程,但凡事有例外,英特尔的处理器支持超线程技术,即一个核心可以通过模拟实现两个线程,等于在一定的时间内单核心可以同时处理两个任务,提高了CPU的利用率。

以上说明不是那么好理解,为了加以说明,我们来看下面的形象解释。形象的解释处理器中的核心和线程我们可以把处理器想象成是一个业务处理中心,比如银行,线程数就相当于开通了几个窗口,处理器核心就相当于是窗口中的柜员,窗口和柜员越多,可以同时办理的业务就越多,相应的速度就会越快。正常情况下,一个窗口对应着一个柜员,而超线程技术就相当于一个柜员管理着两个窗口,使用左右手同时办理两个窗口的业务,这样就大大的提高了核心的使用效率,增加业务办理速度。

什么样的业务场景适合用多线程,请举例?

首先了解下什么是多线程吧!多线程就是“人海战术”,伴随着摩尔定律的失效(单核心的计算能力不能再成倍的增长,而改为横向扩展),CPU变为了多核心的模式,而每一个CPU在同一时间能处理一个线程,也就是说同一时间线程的执行数可以为CPU核心数(超线程不讨论)!效率为以前单核心的N倍!JAVA这门编程语言,可谓是让多线程技术变得老生常谈,那么多线程使用在什么地方呢?1,web服务器:web服务器的请求数往往是非常大的,而且自从有了HTTP1.1之后,TCP默认是长连接模式,一般像tomcat这样的服务器会开多个线程保持与客户端的连接,所以需要多线程!2,异步调用:比如电商平台,在主线程处理完订单等主业务之后,需要发短信,邮件等非主要的业务代码,这个时候可以新起一个线程,异步调用,而主线程可以直接返回,避免长时间的等待!3,上传下载大文件处理:比如迅雷,如果是单线程,那么同一时候,它就只能写一个下载任务的数据,但是多线程就可以同时进行更多任务!4,分布式计算:比如1 2 ... 100000,你可以分为十个任务,然后汇总即可,比单线程可以省大约9/10的时间!还有更多场景可以适用于多线程环境,具体问题具体分析!但是多线程其实绝对是魔鬼,从jdk中的并发包就可见端倪,不管是synchronize,lock,threadlocal,线程池,countbatchdown,forkjoin,future,callable,valatile哪一个多线程的关键字,都可以让我们JAVA编程人员生不如死!只能说不到万不得已,不要盲目的使用多线程,比如redis就能靠着单线程一枝独秀,linux之父Linus Tonvard说过:忘掉那该死的并发吧!可见这个多线程多么的不可取,只是如果我们JAVA程序员如果不会多线程,应该就失业了吧!反正不管多线程有多痛苦,以后我还是会发多线程的技术分享的,敬请关注!。

现在芯片已经接近原子级了,芯片想要有重大突破,需要向什么方向发展?

随着芯片技术更新换代,各个公司紧锣密鼓的开发集成度高,能耗更低,功能更多,运行更快的新技术,但是随之而来的就是不断高涨的研发成本和人力物力的消耗。就拿中国来说,为什么我们可以渐渐追赶上发达国家,一个是得益于国家的稳定发展和中国人的聪明才智,还有一个重要原因就是摩尔定律的天花板到来了。创业阶段,一穷二白的时候各个方面都是欠缺的,发展是迅速的,可以借用各种现成的工具努力追赶,谁都是老师,而到了稳定时期增长率会越来越低,因为人的能力到达一个峰值就会出现瓶颈,老师越来越少,所有团队都会遇到这个问题,需要自己去创新的路越来越多,这无疑降低了进步的速度。

所以芯片的发展应该是朝着更加智能化的Ai方向进发,本人是做物理科技的,感觉数控加工精度已经很难再有大的突破了,不由联想到芯片的技术,如今所谓的芯片制程也是越来越接近物理极限,在不远的将来,芯片智能化一定是大势所趋,依靠指令的精简与智能化,还有结构的大突破,才可以更加优化运行速度,节省功耗。事实上ARM的成功就,就是得益于在精简指令集RISC的石破天惊,才解决了如今手机的大发展,无论是人体运动还是电子元件都已经到了一个无法获得巨大突破的阶段,而需求还在巨量增长,无论是中国还是发达国家有一个趋势就是开始采取了封闭的态度,不能做到技术共享,这将大大提高研发与应用的成本,最终想要有大的飞跃,技术联合才是出路,确立一个统一的开放的基准。

如今芯片业产业越来越复杂,一家独大虽然可以赚取高的利润,但是很多基础产业基数由于大公司的垄断,发展空间狭小,会造成多元化的丧失,创新匮乏,巨型公司无力支撑,行业就会萧条,开始衰退。所以芯片Ai化,技术标准统一化,科技合作化才是芯片大发展的重中之重。最终都是让科技成本越来越低,让所有人都因为低成本的科技而受益。


文章TAG:线程  moerxiancheng  摩尔  
没有了