04 | 穿越功耗墙,我们该从哪些方面提升“性能”?
该思维导图由 AI 生成,仅供参考
功耗:CPU 的“人体极限”
- 深入了解
- 翻译
- 解释
- 总结
本文从CPU性能公式出发,探讨了提升计算机性能的途径。首先介绍了CPU主频提升的历史,但随着主频提升,功耗问题也愈发凸显。作者通过比较奔腾4处理器和iPhone X的功耗,引出了CPU功耗问题的重要性。文章以工厂的比喻形象地解释了提升CPU性能的两个途径:增加晶体管数量和提升主频,但同时也会带来更多的功耗和散热问题。为了应对功耗问题,CPU制程不断进步,从28nm到7nm,晶体管变小,功耗减少。此外,降低电压也是降低功耗的有效途径。最后,以Surface Go为例,说明了低电压CPU在轻薄笔记本上的应用,提高了续航时间。文章还介绍了并行优化和阿姆达尔定律,以及在软件开发层面如何解决性能问题。整体而言,文章生动地阐述了CPU性能提升的技术特点和发展趋势。
《深入浅出计算机组成原理》,新⼈⾸单¥68
全部留言(155)
- 最新
- 精选
- 大熊重新学习后,我又来了…… 1. 加大概率事件: 缓存机制,提高平均概率下的性能; 运行时编译热点代码的机制; Spring框架使用的单例模式(个人还不确定); 2. 通过流水线提高性能: 工作中可以尝试把一个大规模的SQL分成几个规模适当的小SQL进行执行; 并发编程; 3. 通过预测提高性能: 以前有的软件安装的时候,有一秒就安装好的感觉,之前我就在想,是不是我选择完安装路径之后,就已经开始有预安装的操作了; 使用chrome在打开几个tab页的情况下,直接关闭浏览器,再次打开浏览器之前强制关闭的tab页直接默认打开的操作(不知道是否属于预测,预测我还是需要这几个页面); 在自己练习的博客中,多张图片在上传的时候,先让图片及时上传并处于“预删除”状态,待点击提交之后,才让现有的图片变成保存的状态。 热点数据、常用的固定数据,可以先保存在redis等缓存中,等到需要的时候先从缓存中获得,如果获取失败再去查询数据库
作者回复: 👍你学得非常认真努力,给大家做了一个好榜样。
2019-05-079182 - 须臾即有两个问题没想明白: 1.增加晶体管怎么提高运算速度? 提高主频好理解,计算的频繁一些,增加晶体管是干了什么,增加计算单元么,或者说是增加流水线控制单元。 2.cpu的电压是受了什么因素限制的? 既然电压低功耗低,那么各厂商应该都想把电压做的越低越好,现实是不容易办到,是哪些因素限制的?
作者回复: 须臾即他9同学你好 增加晶体管可以增加硬件能够支持的指令数量,增加数字通路的位数,以及利用好电路天然的并行性,从硬件层面更快地实现特定的指令,所以增加晶体管也是常见的提升cpu性能的一种手段。 电压的问题在于两个,一个是电压太低就会导致电路无法联通,因为不管用什么作为电路材料,都是有电阻的,所以没有办法无限制降低电压,另外一个是对于工艺的要求也变高了,成本也更贵啊。
2019-05-017115 - 莫问流年1.加速大概率事件 各种缓存(内存缓存、CDN缓存) 2.流水线 并发编程、异步编程 音视频播放器边播放边缓冲 3.预测 小说的下一页预加载 电商大促的CDN预热
作者回复: 几个例子举得都很好!而且和实践应用结合得也很好!
2019-05-20391 - Seventy、老师您好,有个疑问,上节课我们讲过“程序运行CPU执行时间 = 指令数 * CPI * 时钟周期时间(Clock Cycle Time)”,而这节中提到增加晶体管数量会提升CPU性能,请问"晶体管数量"与上面的公式有什么关系呢? 还是说晶体管数量会影响上面公式的三个部分中的哪一部分?? 盼老师答复。
作者回复: 增加晶体管数量,其实是通过提供更复杂的电路支持更多的“指令”。也就会减少运行同样程序需要的指令数。 打个比方,比如我们最简单的电路可以只有加法功能,没有乘法功能。乘法都变成很多个加法指令,那么实现一个乘法需要的指令数就比较多。但是如果我们增加晶体管在电路层面就实现了这个,那么需要的指令数就变少了,执行时间也可以缩短。
2019-05-11454 - 活的潇洒通读三遍全文,花了3个多小时做了笔记链接如下: https://www.cnblogs.com/luoahong/p/10800379.html
作者回复: 👍感谢分享给大家
2019-05-011146 - pyhhou对于思考题: * 加速大概率事件 通常我们使用 big-O 去表示一个算法的好坏,我们优化一个算法也是基于 big-O,但是 big-O 其实是一个近似值,就好比一个算法时间复杂度是 O(n^2) + O(n),这里的 O(n^2) 是占大比重的,特别是当 n 很大的时候,通常我们会忽略掉 O(n),着手优化 O(n^2) 的部分 * 通过流水线提高性能 能够想到的是任务分解,把一个大的任务分解成好多个小任务,一般来说,分的越细,小任务就会越简单,整个框架、思路也会变得更加清晰 * 通过预测提高性能 常常在计算近似值的时候,例如计算圆周率,我们可以根据条件预设立一个精确率,高过这个精确率就会停止计算,防止无穷无尽的一直计算下去;另外就是深度优先搜索算法里面的 “剪枝策略”,防止没有必要的分支搜索,这会大幅度提升算法效率
作者回复: 👍算法的例子举得很好,剪枝策略的例子也很好。 不过流水线和圆周率的例子不太好,可以再想想。
2019-05-01330 - 明月一个问题:面积更小使得各个晶体管的距离更短,会加速响应时间吗?我印象中是光速的
作者回复: 会的,光速也不过就是3*10的八次方,意味着一纳秒也只能走30厘米的距离,所以后面我们还会看到cpu的高速缓存也不能做太大,也是受到光速的限制。
2019-05-0125 - 淡写业务代码的if else 分支时,对于大概率出现的写在前面,减少不必要的判断?这种算“通过预测提高性能”吗
作者回复: 当然算是的
2019-09-0922 - Sunny为什么增加晶体管会使计算加快?
作者回复: Sunny同学, 你好,增加晶体管通常可以做到以下这些 1. 设计了一个更复杂的电路,让原先软件执行的事情,直接通过硬件电路解决了。也就是在CPU里增加了新指令,自然同样的程序就运行得更快了。 2. 同样功能的电路更多了,比如有了更多更大的寄存器,更多的可以并行的流水线,这样同样的指令可以同时运行不受限于有限的资源,也可以让程序算得更快。
2019-08-2020 - ginger终于理解为什么很多笔记本会出低压版本了,原来是电压的平方和功耗是正比的,也就是电压的降低对于功耗来说,降低效益最好,还记得之前选笔记本时候,我发现几乎所有的超薄本,都是低压版本的.大致是因为超薄设计导致不能使用很"给力"的散热系统吧,所以通过低压来降低功耗,尽管低压也会让CPU性能有所下降.
作者回复: 👍
2019-05-2316