计算机组成原理笔记(王道考研)(持续更新)

文章目录

  • 前言
  • 概论
    • 计算机的发展
    • 计算机系统
      • 计算机硬件组成
      • 各个硬件的工作原理
      • 计算机系统的层次结构
      • 计算机系统结构、组成、实现
    • 计算机性能指标
      • 储存器
      • CPU
      • 整体指标
      • Amdahl定律与加速比

前言

本文是对王道计算机考研《计算机组成原理》课程的总结,主讲咸鱼学长讲的确实清晰。

王道考研《计算机组成原理》

由于我们学校已经开设过汇编和计算机体系结构,所以计组的笔记内容会比较精炼,不适合无基础人听。

如果有不理解的,可以回去看看我前面的CSAPP笔记和汇编语言笔记(不过我感觉还是没啥必要,我这篇文章更多的是总结性质,不适合入门学习)

CSAPP笔记:
第一卷:程序结构与执行——信息表示、指令、处理器、性能优化、储存层次
第二卷:在系统上运行程序——链接、异常控制流、虚拟内存
第三卷:程序间的交流与通信——系统级IO、网络编程、并发编程
汇编语言笔记:
汇编语言笔记——微机结构基础、汇编指令基础
汇编语言笔记——汇编程序开发、汇编大作业
汇编语言笔记——接口技术与编程

概论

计算机的发展

计算机组成原理笔记(王道考研)(持续更新)_第1张图片

计算机系统

计算机硬件组成

计算机组成原理笔记(王道考研)(持续更新)_第2张图片

最开始计算机是没有内存的,程序员给条指令,计算机就执行一个行为。

冯诺依曼提出了储存程序理论,程序记录了计算机要做的一系列流程,理应先放在储存器(内存)中,等计算机需要的时候按照规定顺序执行。

下图中,注意看实线,代表数据流。

输入设备把数据交给运算器,运算器和储存器进行交互,最后运算器再把结果输出给输出设备。控制器负责协调这4个部件,他只和储存器有数据交换,这是因为控制器需要从储存器中读取指令。虽然控制器负责协调,实际上还是以运算器为核心的。

计算机组成原理笔记(王道考研)(持续更新)_第3张图片

现代计算器为了减轻运算器的压力,将储存器作为中心,整体运行没什么变化,只不过输入是先送到储存器中,储存器的数据也可以直接输出,都不需要经过运算器了。

计算机组成原理笔记(王道考研)(持续更新)_第4张图片

各个硬件的工作原理

这一节比较抽象,我学过5级流水线CPU了,所以就直接从宏观层面去总结。

计算机组成原理笔记(王道考研)(持续更新)_第5张图片

首先是主存:

  1. 储存体负责具体储存数据
    • 储存单元指的是一个地址对应的空间
    • 储存元指一个可以存1bit的电子元件
    • 字就是储存单元具体的值,字长就是其bit数
  2. MAR。一个寄存器,储存了地址
    • 即指向储存单元的指针
    • 长度对应内存地址空间范围
  3. MDR。一个寄存器,储存一个字的数据
    • 一般MDR长度=字长
    • CPU存取数据都要经过MDR

计算机组成原理笔记(王道考研)(持续更新)_第6张图片

CPU和主存通过寄存器交换着三个数据:地址,数据,指令,看一下交互过程:

  1. 假设CPU要取数据,就先设置MAR,然后发一个“取”指令给主存,然后主存把数据放到MDR里。
  2. 当CPU存数据时,CPU先把数据放MDR,然后设置MAR,发送一个“存”指令给主存,主存就会把MDR的数据放到目标位置。

现在CPU已经把MAR和MDR集成进去了。

再说运算器:

运算器是一个计算核心ALU+三个辅助寄存器构成:

  1. ALU负责计算
  2. ACC,默认的操作数和结果寄存器
  3. X,第二个操作数的寄存器
  4. MQ,执行乘除时会用到

计算机组成原理笔记(王道考研)(持续更新)_第7张图片
一个完整的运算过程如下:

  1. 取指:控制器C收到运算指令
  2. 译码:取出操作符和操作数
  3. 执行:ALU计算,把结果放在对应寄存器
  4. 访存:输出到内存(有时候不执行)
  5. 写回

有时候要多执行一个周期,先去把内存的数放到辅助寄存器中,再进行一个周期的计算。

再论控制器:

控制器以CU为核心,IR和PC是两个辅助寄存器。IR存放指令内容,PC存放下一指令地址。

计算机组成原理笔记(王道考研)(持续更新)_第8张图片

现在的CPU其实是把控制器和运算器集成在了一起,同时又集成了一大堆寄存器。指令的执行其实就是CPU和内存在反复打交道。

下图描述了一条指令被CPU执行的全过程。可以看到,无论是取指令,还是取数据,都要进行内存访问。

图灵机的神奇之处就在于,第一条指令存在IR之中,运行完毕后,会决定PC值是单纯+1还是做其他处理,也就是说一条指令可以决定下一条指令是什么,如此就可以自动执行,生生不息了,所以你的计算机只要开了机,指令就是在一直运行的。

计算机组成原理笔记(王道考研)(持续更新)_第9张图片
计算机组成原理笔记(王道考研)(持续更新)_第10张图片

计算机系统的层次结构

计算机组成原理笔记(王道考研)(持续更新)_第11张图片

计算机系统=软件+硬件/固件,实际上,在开发设计人员眼中,软硬件在逻辑上是等价的,乘法运算可以用软件去写(基于底层硬件),也可以直接用底层硬件实现,所以说软硬件只不过处在不同层次罢了。

从整体的角度来看,软硬件还可以继续细化成若干层,形成7(或者5)层结构,自下向上为:

  1. 硬联逻辑。最基础的硬件,比如晶体管构成的各种逻辑门。
  2. 微程序级。由基础硬件构成的功能单元。比如什么控制器,加法器,移位器等等。
  3. 机器语言级。用0和1来描述抽象的模块行为。
  4. 操作系统级。建立在裸机之上,上面的人看不懂机器语言,机器也看不懂人的汇编语言,在此之间操作系统构成软硬件交流的界面。
  5. 汇编语言级。比如x86指令集汇编。
  6. 高级语言级。用来开发的编程语言。
  7. 应用语言级。应用程序。

计算机组成原理笔记(王道考研)(持续更新)_第12张图片

计算机系统结构、组成、实现

  1. 系统结构(体系结构):计算机硬件有哪些部分,有哪些功能。比如CPU就是一个系统结构部分,CPU可以进行寻址,可以操作寄存器,执行指令,这是功能。又比如有内存,这是结构部分,内存空间是如何管理的,这是功能。
  2. 组成:是硬件实际的结构,比如CPU的结构如何,有没有Cache,有没有片外Cache。
  3. 实现:计算机组成其实是用各种模块进行组合,形成一个大型功能单位;而模块(微程序级)的物理实现,就是计算机实现部分。

程序员一般只能看到系统结构,再往下看不到了,也没必要看到。既然看不到,就可以说这就是透明的。(这个透明和生活中的透明正好是反过来的)

计算机组成原理笔记(王道考研)(持续更新)_第13张图片

我们之前那本CSAPP,讲的其实是体系结构,而计组学的是组成,电子信息那帮人学的是实现。

计算机性能指标

计算机组成原理笔记(王道考研)(持续更新)_第14张图片

储存器

  • 字长=MDR长度
  • 地址空间= 2 M A R 长度 2^{MAR长度} 2MAR长度
  • 容量=字长×地址空间

CPU

  • 主频:内部时钟频率
  • 时钟周期:主频倒数
  • CPI(cycles per instruction):一条指令消耗的平均周期数
  • IPS(instructions per second):一秒执行的指令数=主频/CPI
  • FLOPS:一秒执行浮点指令数

CPU时间=通过CPU计算出来的时间=CPU消耗周期数/时钟频率。CPU时间仅仅是程序在CPU上消耗的时间,实际上消耗的还有其他部分,比如等待,调度啥的。

CPI即每条指令平均消耗周期,CPI=CPU时钟周期数/指令数
CPI还可以通过加权计算,CPI=不同类指令的CPI加权和。

通过加权公式可以看出,CPI受到权重影响,而不同程序会影响指令权重,所以CPI实际上受到程序影响。

CPU真正执行的时间=(指令数×CPI)/时钟频率,由此可得三个因素:

  1. 时钟频率。取决于计算机实现技术
  2. CPI。取决于计算机实现技术和指令集技术,指令集够不够好,如何用越少的周期实现一个指令
  3. IC。指令数量,取决于从编程技术到计算机实现的一系列流程。

平时使用计算机,CPU时间太过理想,综合考虑各种因素,于是有了吞吐量这个衡量参数,更加实用。

吞吐量常用MIPS(Million IPS)衡量,即每秒百万条指令计算。为什么是百万呢。百万其实就是兆指令,对应6次方的MHz单位,通过CPU时间计算方便。

在这里插入图片描述
计算机组成原理笔记(王道考研)(持续更新)_第15张图片
计算机组成原理笔记(王道考研)(持续更新)_第16张图片

整体指标

  • 数据通路带宽。我们一般说带宽指的是速度,但是这里指的其实是数据总线位宽
  • 吞吐量。单位时间执行请求的数量。请求可以是指令,任务等。
  • 响应时间。

性能指标的评判要用到基准程序,其实就是我们说的跑分。但是这个东西只能参考,因为我们日常的使用场景是丰富的,基准程序只能测量某一个方面。

正如我们前面说的,CPU时间很复杂,受时钟频率,CPI,IC三者约束。

Amdahl定律与加速比

Amdahl定律用于衡量一个部分的性能对于整体性能的重要性,具体用加速比计算,加速比=改进后性能/改进前性能=改进前时间/改进后时间。原理很简单,改进的加速比取决于这一部分的占比(可向量化百分比)与提升空间(优化部分可以提升到什么程度)。

计算机组成原理笔记(王道考研)(持续更新)_第17张图片

你可能感兴趣的:(计算机体系结构,个人随笔/学习笔记,考研,笔记,计算机组成原理)