IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> CPU朝向多核发展,从某种程度上来说是一种“无奈之举” -> 正文阅读

[嵌入式]CPU朝向多核发展,从某种程度上来说是一种“无奈之举”

CPU朝向多核发展,不停扩展核数,从某种程度上来说是一种“无奈之举”。

免费的午餐结束了

2007年,C++大牛Herb Sutter(Effective C++系列丛书作者)发表了文章《The Free Lunch Is Over》。直译就是“免费的午餐结束了”。

【原文】The Free Lunch Is Over

【翻译】The Free Lunch Is Over

主要的处理器设计生产商,从Intel和AMD到SPARC和PowerPC,已经几乎穷尽了所有的传统方法来提高CPU性能。
大多数应用在几十年内都可以获得免费规律的性能提升,甚至不需要发行新版本或做其他任何特殊的事情,因为CPU制造商(主要)和硬盘制造商(次要)拥有可靠的更新更快的主流系统。时钟频率不是衡量的唯一标准,甚至不是好性能的必要标准,但却是有指导意义的标准:
我们已经习惯看到500MHz的CPU被1GHz的替代,1GHz的被2GHz替代等等。今天主流电脑的主频可以达到3GHz的范围。

其实这2000年前,CPU的更新换代,主要是提升时钟频率,而非增加核数。而且那时CPU的每次升级,软件可以自动地获得大幅性能提升。然而问题逐渐棘手起来。

提高CPU主频变得越来越困难,因为这不仅仅是一个而是几个物理问题造成,特别是热、功耗过大、当前的电流泄露问题。

当时人们早早地获得了2GHz的CPU,3GHz也很快成为主流。按照发展速度,4GHz、5GHz甚至10GHz的的CPU都应该能如期而至。但是从3GHz以后,4GHz却迟迟不至。这受限于诸多物理问题。

为了能稳步地提升性能,CPU“被迫”朝向多核发展。当然CPU这么多年的计数发展不仅仅是时钟频率以及多核带来的,还有缓存,指令优化等等。但不得不说的是时钟频率和多核带来的提升更多些。

多核的发展,也就导致了多线程编程以及并行计算的流行。然而这需要程序员们编写相应的代码(并且是正确而优秀的代码)才能吃掉CPU新增的性能。而那个时钟频率为王的年代,程序员无需修改程序就能获得性能提升。

cpu运行在哪种频率下是有几种模式可以选择的。如果你是Linux系统的,可以尝试用cpupower frequency-info 命令查看一下。可能展示是结果是powersave(节能模式)、performance(性能模式)或其他模式。我还真听说过有线上机器没有开启performance模式,而是powersave模式跑了很长时间,改成performance以后,啥代码都不用改,就获得了几十毫秒的性能提升的事。当然这种问题可能相对低级,专业的运维或基础架构团队应该都能保障,不需要程序员操心。

回头再提一下CPU时钟频率的瓶颈。时至今日,我在公司的服务器机器上,查询CPU的频率的,基本也显示为3GHz。但咨询运维说机器CPU实际达不到满满的3GHz,只能到2.8GHz。我说怎么可能?他说用turbostat命令查看,那个显示的运行频率更真实。好吧。我试了一下还真是。

当然服务器和个人电脑的CPU是不同的。即使都是Intel家的,个人电脑一般是酷睿(Core)系列,而CPU是至强(Xeon)系列。自Herb Sutter发文的2007年,到如今也已经14年了。Intel其实也打造出来4GHz的产品。虽然比预期的时间晚了很多。然而毕十年之功于一役,后续稳步提升频率依旧艰难。所以程序员们,还是好好学习多线程编程和并行计算吧。

关于频率这个话题,我其实也不专业。大家感兴趣的话,可以阅读这里:

为什么 CPU 主频很难超过 4GHz? - 知乎和登那德定律有关系,貌似有公式能说明。https://www.zhihu.com/question/32096371

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:09:12  更:2021-10-17 12:09:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:28:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码