本篇目录

接上)

七、中央处理器CPU

1.CPU的结构

2. 提高CPU的速度

(1)硬件

(2)指令集

(3)缓存

(4)指令流水线

(5)超标量处理器

(6)多核处理器

3.超级计算机

4.小结:基本概念的组成关系

总结


接上一篇 学习笔记(四)

七、中央处理器CPU

1.CPU的结构

综上,一个CPU的大致结构如图。内存RAM是独立于CPU之外的,CPU通过数据线、地址线、控制线与内存通信。CPU内部有寄存器、算数逻辑单元ALU、控制单元CU、时钟。其中控制单元是指挥,算数逻辑单元负责具体计算(包括算术运算和逻辑运算),寄存器负责暂存少量数据,时钟负责发出规律的电信号来使CPU有序运行。

2. 提高CPU的速度

早期计算机的提速方式是尽可能减少晶体管的切换时间,但这最终会遇到瓶颈。CPU提速还有其它技巧。

(1)硬件

将常用的操作在硬件层面设计为单独的电路来运行,这样的ALU更复杂但CPU速度提升。现代处理器用专门的电路来处理图形、视频、加密等操作,如果使用标准电路来执行就需要更多的时钟周期。

(2)指令集

Intel4004是第一个集成CPU,有46条指令。之后的CPU指令越来越多,向下兼容,提供更加丰富的功能。

(3)缓存

CPU通过总线从内存中读取数据有一定的延迟,RAM的速度成为瓶颈,使得CPU空等数据。解决的方法是在CPU内部设计一小块存储器,即缓存,通常是kB级或MB级。内存可以一次传送一批数据到CPU中的缓存中,因为数据通常是按顺序处理的。当CPU需要数据时,如果数据在缓存中已经有了,这就时“缓存命中”,反之则是“缓存未命中”。因为缓存在CPU内部,一个时钟周期就能给数据,CPU无需空等。

缓存也可以用来存储运算结果的中间值,这样速度更快。但这可能产生缓存与RAM不一致的问题。所以缓存中每块空间有一个特殊标记,“脏位”(dirty bit),当缓存满了而CPU又要缓存时就检查“脏位”,若dirty bit 为true,就将缓存存储到内存中(清空缓存),然后再次使用缓存。

(4)指令流水线

一条指令的执行需要取指、解码、执行三个步骤,如果每条指令都按顺序执行的话,那一条指令需要三个时钟周期才能执行完。但其实这三个步骤使用的是CPU中的不同部件,因而可以形成流水线,进行并行处理。这样,就可以平均在一个时钟周期执行完一条指令。

但是有一个问题:一些指令之间存在依赖性,因此为了保证正确运行,就要停下流水线。于是,高级CPU会动态排序有依赖关系的指令,尽可能减少因为指令依赖关系而停下流水线的时间。这就是乱序执行,电路非常复杂,但效率高。

另一个问题是:条件跳转指令需要等待一些数据来做出判断,这会造成空等。跳转指令就像一个岔路口,需要数据来判断前进方向。现代处理器会提前预测可能的判断结果,将指令放进流水线,即“推测执行”。如果等数据出来,发现CPU猜对了,那么流水线上已经装满正确的指令,可以立即开始执行,这就提高了速度。但如果CPU猜错了,那么就要花时间清空流水线,然后再重新加载指令。这就像在岔路口选错了路,就掉头回去。通过一些复杂的电路设计,现代CPU进行“分支预测”的正确率超过90%,这就能大大提高效率。理想情况下,流水线一个时钟周期能完成一个指令。

(5)超标量处理器

超标量处理器就是一个时钟周期能完成超过一个的指令。有些指令在执行时,CPU中还是会有一些部件是空闲的,因此更优的设计是一次性处理多条指令(取指、解码)。也有的CPU中设计多个ALU,这样就可以同时进行多个数学运算。

(6)多核处理器

还可以使用多核处理器(一个CPU中有多个独立处理单元,每个处理单元可以共用一些资源)来同时运行多个指令流水线。也可以使用多个CPU。

3.超级计算机

中国无锡国家超算中心,神威·太湖之光超级计算机,有40960个CPU,每个CPU有256个核心,每个核心的频率是1.45GHz。

4.小结:基本概念的组成关系


总结

本篇内容:

1.CPU的结构

2.提高CPU运行效率的方法

计算机基本原理 学习笔记(五)相关推荐

  1. 计算机基本原理 学习笔记(八)

    本篇目录 接上) 十一.软件工程 1.面向对象编程 2.软件开发工具 十二.集成电路&摩尔定律 1.数字暴政 2.集成电路IC 3.印刷电路板 3.光刻技术 4.摩尔定律 5.技术瓶颈 总结 ...

  2. 计算机图形学 学习笔记(五):多边形裁剪(Suther land-Hodgeman),文字裁剪

    接上文 计算机图形学 学习笔记(四):直线裁剪算法:Cohen-Suther land,中点分割法,Liang-Barsky 光栅图形学算法 3.4 多边形裁剪 之前上一篇文章中,我们介绍了直线段的裁 ...

  3. 计算机组成原理学习笔记(上)

    计算机系统概论 计算机发展历程 原始计算工具 中国人的智慧之光 机械式计算机 西方人的智慧 机电式计算机 电子计算机 1,最古老的计算工具:算筹 2,冈特计算尺 3,达芬奇机械式计算机 4,1642年 ...

  4. Python学习笔记五:控制语句

    Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...

  5. 专升本 计算机 公共课学习笔记(持续更新中...)

    计算机公共课学习笔记 第一章 计算机基础知识(30分) 1.计算机概述 计算机(Computer)的起源与发展 计算机(Computer)也称"电脑",是一种具有计算功能.记忆功能 ...

  6. 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等

    接上文 计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结 在图形学中,有两大基本工具:向量分析,图形变换.本文将重点讲解向量和二维图形的变换. 5. ...

  7. 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影)

    接上文 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等 通过三维图形变换,可由简单图形得到复杂图形,三维图形变化则分为三维几何变换和投影变换. 6.1 三维图形几何变换 三维 ...

  8. 计算机组成原理学习笔记第1章 1.3——实验一 计算机性能测试

    计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 本篇笔记整理:Code_流苏(CSDN) 目录 计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 0️⃣思维导图(自制) ...

  9. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

最新文章

  1. 从Date类型转为中文字符串
  2. 怎么装python的keras库_matlab调用keras深度学习模型(环境搭建)
  3. IOS网络篇1之截取本地URL请求(NSURLProtocol)
  4. MySQL—事务并发问题
  5. 服务器运行jar包日志怎么清理,docker 启动jar包,并将日志文件进行挂载
  6. 软件工程(可行性研究讲解)
  7. 新华社专题报道|陕建集团:打造「建筑行业」数字化转型标杆
  8. spring session+redis配置
  9. 博客积分为0,这是又出错了?
  10. Nerwo(原npss)邀请链接
  11. 即时游戏中用户信息融合的研究
  12. 3559A对接IMX577 4lane 12M
  13. 如何配置企业微信开发者
  14. java使用pdfbox拆分PDF文件
  15. 操作系统--内存管理超详细整理!
  16. python import文件后 core dumped_python numpy包调用core dumped、Linux VDSO机制
  17. 【Python魔术方法】py复习
  18. ProxmoxVE6.2 Bond配置
  19. 计算机管理员工作目标任务书,毕业论文任务书中主要任务及目标怎么写
  20. 2021-10-27 基于电影数据库的简单查询(数据库第二次实验)

热门文章

  1. 大连计算机学校贾佳,大连市第二十四中学信息学奥赛喜报频传
  2. React Native的Navigator详解
  3. JAVA:实现一个CircularQueue循环队列算法(附完整源码)
  4. 开机自启动bat脚本,并显示Dos窗口
  5. DEDE自动调用轮播图/幻灯片
  6. 关于会员积分体系的产品设计
  7. [论文阅读]Structure-from-Motion Revisited
  8. uniapp H5接入使用环信聊天
  9. ale.js 对比其他框架
  10. 【LabVIEW小技巧】LabVIEW自定义系统按钮时图片项设置说明