为什么CPU要从单核发展到多核?
前言
这里首先直接给出结论:CPU从单核发展到多核的原因是如果维持单核,则为了提高CPU性能只能不断提高时钟频率,从而会导致CPU功耗急速上升,导致机箱过热,来不及散热。
历史
2004年,Intel CEO 贝瑞特曾为奔腾4处理器的时钟频率无法突破4GHZ而下跪道歉,并承认“兆赫神话”是错误的,即时钟频率并不是CPU性能的全部。
CPU性能公式
CPU的性能是每秒执行的指令数。公式如下:
CPU性能 = 时钟频率 × IPC
其中:
- 时钟频率=1/时钟周期,时钟频率为每秒执行的时钟周期数,单位了Hz
- 时钟周期是计算机中最小的工作单位,为一个振荡需要的秒数
- IPC(Instruction Per Cycle): 一个时钟周期完成的指令数,单位为"指令/时钟周期"
从中我们可以看出:
- 主频并不是CPU性能的全部,我们还能够通过提高IPC来提高CPU性能,比如流水线、超标量等技术就是提高IPC的典型技术。
- 两个不同厂商的CPU不能仅通过比较时钟频率来决定性能好坏,因为不同厂商CPU的架构不同,导致IPC不同。
CPU功耗
首先给出已知条件:
CPU功耗正比于"电流 × 电压 × 电压 × 主频"
主频正比于"电压"
IPC正比于"电流"
我们可以看出:
CPU功耗正比于 "主频的三次方"
CPU功耗正比于 "IPC"
因此:
- 增加主频会以三次方的速度增加功耗,因此这就证明了只提高主频并不是个好主意。
- 增加IPC只会以线性的速度增加功耗。
- 如果我们增加一倍IPC,减少一倍时钟频率,则根据CPU性能公式得:CPU性能不变,但CPU功耗减少了。
下图为一个笑话,即主板太热都可以在上面煮鸡蛋。
为什么多核是必然的发展趋势?
原因有两点:
- 根据Moore定律,集成电路上可容纳的晶体管数量每18个月翻一番,因此CPU上的晶体管数量会越来越多。
- 多核能够使得在减少时钟频率的同时增加性能(多核能增加IPC),但事实上目前程序员写的软件几乎都不是针对多核环境写的。
目前,世界上最快的计算机是中国的"天河2号",CPU核数为3120000,根据沙行勉教授的观点,这种计算机一般只是为了争排名,根本不会实际使用,因为功耗太大。
虽然多核CPU是发展趋势,但是程序员们的程序还是依旧还是老样子,因此并行计算的学习是解决这个问题的方法。
参考文献
[1] http://tech.sina.com.cn/roll/2007-06-04/1054327912.shtml
[2] http://en.wikipedia.org/wiki/Clock_speed
[3] http://en.wikipedia.org/wiki/Instructions_Per_Cycle
为什么CPU要从单核发展到多核?的更多相关文章
- 【转载】Linux cgroup资源隔离各个击破之 - cpu隔离1
Linux cgroup 有两个子系统支持CPU隔离.一个是cpu子系统,另一个是cpuset子系统. cpu子系统根据进程设置的调度属性,选择对应的CPU资源调度方法 .1. 完全公平调度 Comp ...
- JMeter—系统性能分析思路(十三)
参考<全栈性能测试修炼宝典JMeter实战>第九章 性能监控诊断 第二节 系统性能分析思路和第三节 定位分析 系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘I/O ...
- JMeter—系统性能分析思路
系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘I/O控制器的数量以及磁盘的容量和速度是所以工作负荷的重要性能特征组件.还有其他应用程序自身的性能特征.工作负荷的特性.应用程序 ...
- Intel系列CPU的流水线技术的发展
Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...
- 编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器)
[目录] 不考虑其他进程,cpu画正弦曲线 获取总体cpu利用率 获取多核处理器单个cpu利用率 考虑其他进程,cpu画正弦曲线 下面的程序针对多核处理器,可以设置让任何一个cpu显示相应的曲线(本文 ...
- 让cpu占用率曲线听你指挥(多核处理器)
编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器) [版权声明]转载请注明出处 http://www.cnblogs.com/TenosDoIt/p/3242910.html [目录] 不考 ...
- Python进阶----GIL锁,验证Cpython效率(单核,多核(计算密集型,IO密集型)),线程池,进程池
day35 一丶GIL锁 什么是GIL锁: 存在Cpython解释器,全名:全局解释器锁.(解释器级别的锁) GIL是一把互斥锁,将并发运行变成串行. 在同一个进程下开启的多个线 ...
- 【协作式原创】查漏补缺之Go并发问题(单核多核)
主要回答一下几个问题 1.单核并发问题 2.多核并发问题 2.几个不正确的同步案例 1.单核并发问题 先看一段go(1.11)代码: 单核CPU,1万个携程,每个携程执行100次+1操作, 思考n最终 ...
- 多核CPU硬件架构介绍
转自:http://book.51cto.com/art/201004/197196.htm SISD.MIMD.SIMD.MISD计算机的体系结构 1. 计算平台介绍 Flynn于1972年提出了计 ...
随机推荐
- sails ORM组件 Waterline v0.10 英文文档
http://sailsdoc.swift.ren/ 这里有 sails中文文档 Introduction Installation Getting Started Models Data types ...
- 6 TensorFlow实现cnn识别手写数字
------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ---------------------------------- ...
- C++关联式容器的排序准则
stl中set和map为关联式容器,会根据排序准将元素自动排序.原型如下: template<class _Kty, class _Pr = less<_Kty>, class _A ...
- What does Quick Sort look like in Python?
Let's talk about something funny at first. Have you ever implemented the Quick Sort algorithm all by ...
- python select poll
http://www.cnblogs.com/coser/archive/2012/01/06/2315216.html
- 转:js获取json中key所对应的value值
<script type="text/javascript"> getJson('age'); function getJson(key){ var jsonObj={ ...
- 877. Stone Game
问题 有偶数堆石头(数组长度为偶数),每堆石头有一些石头(数组元素为正),石头的总数是奇数.Alex和Lee两个人轮流取石头堆,每次可以从头部或尾部取,Alex先取. 给定这样一个数组,两人都以最优策 ...
- Ubuntu16.04 Xmind安装
Ubuntu16.04 Xmind安装: 官网下载:直接下载不用注册: 到下载目录选择下载文件右键,提取到此处(为登录用户权限):在终端采用root权限解压为root权限(unzip xmind-8- ...
- iscroll.js 用法介绍
iscroll-5中文文档:http://wiki.jikexueyuan.com/project/iscroll-5/ 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码. ...
- CSS 布局 - 水平 & 垂直对齐
CSS 布局 - 水平 & 垂直对齐 一.元素居中对齐 要水平居中对齐一个元素(如 <div>), 可以使用 margin: auto;. 设置到元素的宽度将防止它溢出到容器的边缘 ...