为什么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年提出了计 ...
随机推荐
- POJ2653:Pick-up sticks(线段相交)
题目:http://poj.org/problem?id=2653 题意:题意很简单,就是在地上按顺序撒一对木棒,看最后有多少是被压住的,输出没有被压住的木棒的序号.(有点坑的就是没说清楚木棒怎么算压 ...
- 等待事件对应的p1,p2,p3含义
Oracle 10g v$session视图中不同等待事件对应的p1,p2,p3的含义也不同,我们不可能记住所有等待事件对应的p1,p2,p3的含义. 可以通过查询V$EVENT_NAME知道每个等待 ...
- AlphaControls的使用方法
AlphaControls的使用方法 转载▼ 一.安装方法: 1.解压缩下载的文件,并把它放到你希望的位置,例如 D:\Coder\ 2.在Delphi的菜单:Tools->Envir ...
- Paper List ABOUT Deep Learning
Deep Learning 方向的部分 Paper ,自用.一 RNN 1 Recurrent neural network based language model RNN用在语言模型上的开山之作 ...
- centos 升级nginx到1.10.2
之前装的是1.6.3版本,准备升级到1.10.2版本. 1.下载nginx1.10.2 wget http://nginx.org/download/nginx-1.10.2.tar.gz 2.解压缩 ...
- tomcat源码调试
三.tomcat目录结构 tomcat的下载安装有很多教程,不再赘述. 现在的tomcat已经到9了,当tomcat下载安装完成后,其目录大致如下: 除了上面的文件夹,还有四个文件: ...
- Ubuntu16.04安装和卸载MySQL 5.7
介绍: MySQL 是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装.它使用关系数据库和SQL(结构化查 ...
- DevOps简单介绍
jenkins作为测试环境代码发布工具,sonar作为静态代码检查工具,idea作为开发工具,jira作为缺陷管理平台,upstream作为code review工具(正在研究).DevOps最近比较 ...
- datanode扩容步骤
新扩容机器规划: hostname ip 进程 slave3 10.183.225.167 datanode,nodemange 1. 修改/etc/hosts 增加新扩容机器的hostname 10 ...
- 20145302张薇《Java程序设计》第四周学习总结
20145302 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承共同行为 面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承. 程序代 ...