计算机组成原理-知识点系统总结

声明:部分图片来源于网络,侵删。如果转发引用本文章,请注明出处

计算机组成原理

计算机系统概论

冯.诺伊曼计算机特点

  • 五大部件

    • 存储器,运算器,控制器,输入输出设备
  • 指令,数据以同等地位以二进制存储在存储器中,可按照地址访问

  • 指令=地址码+操作码

  • 以运算器为中心(会降低效率)

PS:现代计算机以存储器为中心

计算机系统层次结构

  • 五个层次

    • 微程序设计级,一般机器级,操作系统级,汇编语言级,高级语言级
  • 层次图

计算机组成原理-知识点系统总结_第1张图片

概念辨析

  • I/O设备可以直接连CPU吗?

    • 不可以,因为二者速度不匹配,需要通过接口连接
  • 软件与硬件的逻辑等价性

    • 任何操作都可以由软件实现,也可以有硬件来实现
  • 用什么来区分存储器中的是指令还是数据

    • 通过控制器区分,凡是在取指令阶段从存储器中取出的为指令,凡是在执行阶段从存储器中取出的为数据
  • 控制器功能

    • 交换,检测,提供信号

      • 控制机器,控制各个部件协调一致地工作。
      • 控制器具备数据交换功能,这是指实现CPU与控制器之间、控制器与设备之间的数据交换。
      • 将电话比喻中人体,那么控制器就好比是人的大脑,输出各种指令,是零件灵活运行。
      • 运算器只能完成运算,而控制器用于控制着整个CPU的工作
      • 通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据

计算机系统组成

硬件

主机
  • CPU

    • 运算器
    • 控制器
  • 主存(内存)

I/O设备
  • 辅存
  • 输入/输出设备
总线
  • 早期总线结构缺点

    • CPU为总线上唯一主控,即便后来增加具有仲裁逻辑的DMA控制器以支持DMA传送,仍不能满足多CPU环境要求
    • 总线信号是CPU引脚信号的延伸,通用性较差
  • 当代总线的内部结构

    • 数据传送总线

      • 组成

        • 数据线

          • 传送数据信息
        • 地址线

          • 传送地址信息
        • 控制线

          • 传送各种控制信号
      • 为减少布线,64位数据线的低32位数据线常与地址线采用多路复用技术

    • 仲裁总线

      • 组成

        • 总线请求线
        • 总线授权线
    • 中断与同步总线

      • 用于处理带优先级的中断操作

      • 组成

        • 中断请求线
        • 中断认可线
    • 公用线

      • 组成

        • 时钟信号线
        • 电源线等
  • 特点·

    • 某一时刻只能由一路信息再总线上传输
  • 概念解释

    • 总线宽度

      • 数据总线的位(根)数,单位bit
    • 总线带宽

      • 总线单位时间内可以传输的数据量,单位bit/s
    • 总线复用

      • 不同性质且不能同时出现的信号分时使用同一根总线
    • 传输周期

      • 总线完成一次完整且可靠的传输所用时间

软件

  • 系统软件

    • 操作系统,数据库管理系统
  • 应用软件

    • QQ等

计算机系统的硬件结构

存储器

按照数据保存分类

随机存储器(RAM)
  • 特点:易失性

    • 与CPU直接相连
    • 用做主存,存放指令,数据
  • 分类

    • 静态随机存储器(SRAM)

    • 动态随机存储器(DRAM)

动态随机存储器详细介绍
  • 刷新

    • 概念

      • 对DRAM定期进行全部重新写入的过程
    • 原因

      • 因电容泄露引起DRAM存储的信息衰减,需要及时补充
    • 常见刷新方法

      • 集中式

        • 再最大刷新间隔时间(2ms)内,集中安排一段时间刷新
      • 分散式

        • 每个读/写周期后插入一个刷新周期,无CPU访存死时间
      • 异步式

        • 是集中式和分散式的结合,在2ms内,完成对所有行的刷新,每行的刷新间隔为2ms

          • 性能最好
      • 刷新时间间隔计算

        计算机组成原理-知识点系统总结_第2张图片

    • 作用对象

  • 再生

    • 原因

      • DRAM破坏性读出后,重新写入信息
    • 作用时间

      • 在读操作之后
    • 作用对象

      • 存储单元
SRAM和DRAM区别

计算机组成原理-知识点系统总结_第3张图片

只读存储器(ROM)

特点:

  • 非易失
  • 闪速存储器(Flash Memory)
高速缓冲存储器
  • 位于CPU与RAM之间,解决CPU与主存RAM速度不匹配问题
  • 存取速度:CPU>Cache>RAM>ROM

PS:系统程序用ROM,用户程序用RAM

主存

构成
  • MAR

    • 与地址总线相连,存放存储单元地址
    • MAR可表示的范围=存储单元的数目
  • MDR

    • 与数据总线相连,存放想要写入存储器的信息或者从存储器中读出的信息
    • MDR位数=存储字长
  • 存储体

  • 结构图

    • 计算机组成原理-知识点系统总结_第4张图片
性能指标
存储容量
  • 存储容量(存储位数)=存储字长*存储单元数目
  • 存储容量(存储字节数)=存储位数/8
存储容量扩展
  • 半导体存储芯片的译码驱动方式

  • 线选法

    地址译码信号选中同一个字的所有位

  • 重合法

    地址分行列译码,行列交汇点位所选单元

  • 位扩展(增加存储字长)

  • 计算机组成原理-知识点系统总结_第5张图片

  • 字扩展(增加存储单元数目)

  • 计算机组成原理-知识点系统总结_第6张图片

    自由主题

  • 译码器的连接

    计算机组成原理-知识点系统总结_第7张图片

  • 位,字同时扩展

  • 例子1

    计算机组成原理-知识点系统总结_第8张图片

  • 例子2

    计算机组成原理-知识点系统总结_第9张图片

存取周期
  • 存取周期=存取时间+恢复时间

数据校验

奇偶校验
  • 在原始数据的最高位增加一个奇偶校验位

    • 奇校验

      • 1的个数是奇数-》校验位置1
    • 偶校验

      • 1的个数是偶数->校验位置1
  • 缺点

    • 当有偶数个位出错,无法发现
循环冗余校验CRC
  • 参考计算机网络内
海明校验
  • 参考计算机网络

存储器层次结构

主存–辅存
  • 作用

    • 扩容
Cache-主存映射
作用
  • 解决主存,CPU速度不匹配问题
引用Cache原理
  • 时间局部性

    • 刚被访问过的存储单元未来可能被访问
  • 空间局部性

    • 刚被访问的存储单元的临近单元未来可能被访问
Cache组成
  • 小容量SRAM
  • 高速缓存控制器

ps:Cache与主存间以块为单位交换数据,与CPU间以字为单位交换数据

性能分析
  • 命中率h
    • h =访问Cache的次数(即命中次数)/访问Cache和主存的次数之和
  • Cache相对主存的存取速度倍数r
    • r=主存存取周期/Cache存取周期
    • r越大,Cache效率越低

r = t m / t c r=t_m/t_c r=tm/tc

  • 平均访问时间t_a
    • 即命中Cache的概率访问Cahe的时间 +没有命中的概率(访问Cache+主存 的访问总共时间(因为去主存中找时,要先经过Cache))

t a = h ∗ t c + ( 1 − h ) ∗ t m t_a=h*t_c+(1-h)*t_m ta=htc+(1h)tm

  • 访问效率e
    • 访问一次Cache的时间/命中Cache的时间+未命中所用时间分别乘以对应概率

e = t c / [ h ∗ t c + ( 1 − h ) ∗ t m ] e=t_c/[h*t_c+(1-h)*t_m] e=tc/[htc+(1h)tm]

Cache地址映射与变换
  • 方法

  • 对Cache与主存分块(原理:根据局部性)

  • 每个块内包含多个地址

  • 需要先找到块,再通过块内地址找到对应地址

全相连映射
  • 计算机组成原理-知识点系统总结_第10张图片

  • 分块

  • 计算机组成原理-知识点系统总结_第11张图片

  • 存储容量216B,分为28个块->每块216/28=2**8B(每个块的存储容量)

  • Cache容量212B,分为8行->每行的容量为28B

  • 计算机组成原理-知识点系统总结_第12张图片

直接映射
  • 分组

  • 计算机组成原理-知识点系统总结_第13张图片

  • 在主存分块以后,再分区

  • 计算机组成原理-知识点系统总结_第14张图片

  • 查找时,先通过区内块号 找到对应的行

  • 再比较区号,看区是否在,如果在,直接根据块内地址,到对应的行中找到对应的地址

  • 如果没有,去主存中找

  • 地址转换

  • 计算机组成原理-知识点系统总结_第15张图片

组相连映射
  • 分块

  • 计算机组成原理-知识点系统总结_第16张图片

  • 在分区的基础上,继续分组

  • 主存中每区的第i块可以映射到Cache中的第i组的任意一块

  • 计算机组成原理-知识点系统总结_第17张图片

  • 首先,通过区内块号,确定分组,在比较区号,看是否在Cache中,如果在,通过块内地址,在对应的块中寻找

  • 地址转换

  • 计算机组成原理-知识点系统总结_第18张图片

Cache相关问题
将Cache做在CPU芯片内的好处?
  • 提高外部总线利用率
  • 因为Cache在CPU芯片内,CPU访问Cache时不必占用外部总线,从而可以支持更多I/O设备与主存的信息传输
  • 提高存取速度
  • Cache与CPU之间的数据通路大大缩短,存取速度提高
将Cache分为指令Cache和数据Cache好处
  • 可以支持超前控制和流水控制
  • 指令Cache可由ROM实现,提高指令存取可靠性
  • 数据Cache对不同数据类型的支持更为灵活,可支持整数与浮点数
将Cache结构改进的第三个措施
  • 分级实现

数据的存储与排列

小端模式
  • 地址:低位-》高位

  • 更适合计算机

大端模式
  • 地址:高位->低位
边界对齐
  • 方便寻址,防止取一个数据时,多次访问主存
编址
  • 现代计算机通常按字节编址,即每个字节=1个地址

  • 寻址时,支持 按照 字,半字,字节寻址

  • 例题

  • 计算机组成原理-知识点系统总结_第19张图片

中央处理器(CPU)

运算方法

无符号数与有符号数

  • 无符号数

    • 所有二进制均表数值,相当于数的绝对值
  • 有符号数

    • 有符号位,0+,1-

      • 例如0,1010
    • 原码

      • 0+,1-,如果机器字长n位,则可表示的定点整数范围围为

      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nkWlCoO0-1682593923111)(text.assets/image-20230427185038723.png)]

      • 补充位数,用0,无论正负

    • 反码

      • 负数
      • 反码求法:除符号位外,0/1互换
    • 补码

      • 负数
      • 负数补码求法:从右侧第一个1开始,除符号位不变,1及1右侧不变,左侧0/1互换,
      • 将减法换为加法
      • 正数补充:0,负数1
    • 移码

      • 正/负数
        • 在补码基础上,符号位取反
        • 方便比较大小

正数的 补码。反码均与源码同

数的定点表示和浮点表示

定点表示
  • 定点整数

    • 符号位+数值位

      • 0,1010
  • 定点小数

    • 符号位.数值位

      • 0.0101
浮点表示
  • 阶符(S 0正1负)。阶码(E 反应数值大小),数符(MS 0+ 1-),位数(ME,表精度)

    • 格式:SEM
  • 真值为

    • 阶码E常用补码或移码表示,位数M常用原码或补码表示

2 E ∗ M 2^E*M 2EM

尾数格式化
  • 左规

    • 尾数最高位为有效位

    • 原码:非0

    • 补码:非1

  • 右规

    • 浮点数的尾数运算结果出现溢出,(双符号位为01,10)将尾数算数右移一位(原码补0,补码补1)
IEEE 745标准
  • 阶码用移码表示,尾数用原码表示

  • 计算机组成原理-知识点系统总结_第20张图片

规格化的浮点数表示
  • 32位的短浮点数
    • E是阶码,8位

( − 1 ) S ∗ 1. M ∗ 2 E − 127 (-1)^S*1.M*2^{E-127} (1)S1.M2E127

  • 64位长浮点数
    • E10位

( − 1 ) S ∗ 1. M ∗ 2 E − 1023 (-1)^S*1.M*2^{E-1023} (1)S1.M2E1023

定点运算

定点数的移位运算

  • 算数移位

    • 原码

      • 符号位不变,仅对数值位移位

        • 左移

          • 高位舍弃,低位补0
        • 右移

          • 高位补0,低位舍弃
    • 反码

      • 正数(补0)

        • 仅仅对数值位移位,补0
      • 负数(补1)

        • 左移

          • 高位舍弃,低位补1
        • 右移

          • 高位补1,低位舍弃
    • 补码

      • 正数(补0)

        • 仅仅对数值位移位,补0
      • 负数(左移补0,右移补1)

        • 左移

          • 高位舍弃,低位补0
        • 右移

          • 高位补1,低位舍弃
      • 作用

        • 把负数化为正数
        • 也可以求出一个数的补数(正数的补数是自己,负数的补数是可表示的最大值+负数),然后对其编码作为数值位(符号位不变)
      • 例题

        • 计算机组成原理-知识点系统总结_第21张图片
  • 逻辑移位(同原码,无论正负)

    • 左移

      • 低位补0,高位舍弃
    • 右移

      • 低位舍弃,高位补0

加法与减法运算

  • 原码

    • 加法

      • 正加正,负加负(可能溢出)
    • 减法

      • 子主题 1
  • 补码

    • 两数补码相加减,结果仍为补码

    • [A+B]补=[A}补+[B]补

    • 正+正=负(上溢出),负+负=正(下溢出)

      • 溢出判断
      • 采用双符号位
        • 00-》正数(正确)
        • 01-》上溢出
        • 10-?下溢出
        • 11——》正确(负数)
    • 符号位参与运算(如果符号位有向前进位,进位舍弃)

      • 补码减法例子

        • 计算机组成原理-知识点系统总结_第22张图片

乘法运算

  • 原码

    • 符号位单独算,数值位相乘
  • 补码

    • booth算法

      • 计算机组成原理-知识点系统总结_第23张图片

      • 原理

        • 目的

          • 由于乘法中乘数中1的个数决定了加法的次数,所以应尽可能地将1地个数减少
        • 解决

          • 计算机组成原理-知识点系统总结_第24张图片

            • 计算机组成原理-知识点系统总结_第25张图片

浮点四则运算

  • 浮点数的加减运算

指令系统

指令格式

  • 定长操作码

    • 计算机组成原理-知识点系统总结_第26张图片
  • 扩展操作码

    • 动态地把地址码作为操作码,而为了让机器识别这种状态,需要用上一层的操作码字段留出一个状态,表示下一层的操作码状态

      • 计算机组成原理-知识点系统总结_第27张图片
    • 例题

      • 计算机组成原理-知识点系统总结_第28张图片

寻址方式

指令寻址
  • 顺序寻址

    • PC自动加1
    • PC存放现行指令地址
  • 跳跃寻址

    • 需要转移类指令

      • JMP等
数据寻址
  • 在指令中必须指明是哪种寻址方式

  • 形式地址A=指令中写的地址。真实地址EA=内存中的地址

  • 计算机组成原理-知识点系统总结_第29张图片

分类
  • 立即寻址

    • 操作数(需要计算的数本身)=A
  • 直接寻址

    • EA=A
  • 隐含寻址

    • EA=A所指的寄存器中
  • 间接寻址

    • EA=(A)
  • 寄存器寻址

    • EA=R,A指向寄存器的编号
  • 寄存器间接寻址

    • EA=®,A指向寄存器的编号
  • 基址寻址

    • EA=A+(BR),BR为基址寄存器
  • 变址寻址

    • EA=A+(IX),IX为变址寄存器
  • 相对寻址

    • EA=A+(PC)

    • A又称为偏移量

  • 堆栈寻址

寻址方式练习
  • 计算机组成原理-知识点系统总结_第30张图片

CPU的结构和功能

CPU的组成

  • 累加器(ACC)

    • 存放数据,运算结果
  • 乘商寄存器(MQ)

    • 在* / 时,存放操作数或运算结果(乘法存低位,ACC存高位)
  • 通用寄存器(X)

    • 存放操作数
  • 算数逻辑单元(ALU)

    • 实现算数,逻辑运算
  • 控制单元(CU)

    • 分析指令,给出控制数据
  • 指令寄存器(IR)

    • 存放当前正在执行的指令
  • 程序计数器(PC)

    • 存放下一条指令地址
  • 计算机组成原理-知识点系统总结_第31张图片

CPU主要功能

  • 计算机组成原理-知识点系统总结_第32张图片

控制单元

功能

  • 发出各种微操作命令(即控制信号)的功能

指令周期

机器周期

  • 概念

    • 指令执行的每个阶段,称为一个机器周期
  • 确定周期的因素

    • 每条指令的执行步骤
    • 每个步骤所需时间
  • 统一机器周期的确定

    • 以完成最复杂,最慢的指令功能的时间为准
    • 以访问依次存储器的时间为基准
  • 如果 指令字长=存储字长,-》访存周期=机器周期

基本概念

  • 基本概念图

    • 计算机组成原理-知识点系统总结_第33张图片
  • 计算机组成原理-知识点系统总结_第34张图片

  • 指令周期=取指令时间+指令执行时间

  • 中断周期

    • PC当前的内容保存起来,以保证执行完中断服务程序后可以准确返回到中断处

具体过程

  • 取指周期

    • 将现在的指令送到存储器地址寄存器

      • PC-》MAR
    • 向主存发送读命令,启动主存读操作

      • 1-》R
    • 将MAR(通过地址总线)将所指的主存中的指令经过数据总线送到MDR

      • M(MAR)->MDR
    • 将MDR的送到IR

      • MDR-》IR(存放现行指令)
    • 指令的操作码送到CU译码

      • OP(IR)-》CU
    • 形成下一条指令地址

      • (PC)+1->PC
    • 作用

      • 访问一次内存,把指令从存储单元取出
  • 间址周期

    • 将指令的形式地址E送到存储地址寄存器

      • Ad(IR)->MAR
    • 向主存发命令,主存读操作

      • I->R
    • MAR通过地址总线将所指的主存内容经过数据总线送到MDR

      • M(MAR)-》MDR
    • 将有效地址送到IR

      • MDR-》IR
    • 作用

      • 访问一次内存,把操作数的地址从内存中取出
  • 执行周期

    • 作用

      • 访问一次内存,把操作数从内存中取出
  • 中断周期

    • 将特定地址0送到MAR

      • 0-》MAR
    • 向主存发送写命令

      • I-》W
    • 将PC的内容(程序断点)-》送到MDR

      • IR-》MDR
    • 将MDR内容通过数据总线送到MAR所指向的主存单元(0地址单元中)

      • MDR-》M(MAR)
    • 将向量地址送到PC,为下一条取地做准备

    • 关闭中断,中断触发器清零

    • 作用

      • 存取程序断点
  • 四种周期标识

    • 计算机组成原理-知识点系统总结_第35张图片

指令流水

作用

  • 提高访存速度

原理

  • 让各个部件并行进行

二级流水

  • 计算机组成原理-知识点系统总结_第36张图片

  • 影响指令流水效率加倍因素

    • 执行时间>取指时间

      • 解决

        • 在取指部件与执行部件间加上缓冲区调整时间
    • 条件转移指令

      • 必须等上条指令执行结束才能确定下条指令地址
    • 不同指令征用同一功能部件产生冲突

      • 解决

        • 停顿
        • 指令存储器和数据存储器分开
    • 不同指令因为重叠操作,可能改变操作数的读/写顺序

性能

  • 吞吐率

    • 单位时间内输出的数据或指令条数
  • 加速比

    • m段的流水线的时间与等功能的非流水线所用时间之比
  • 效率

    • 计算机组成原理-知识点系统总结_第37张图片

    • 也就是这个图中:方格所占面积/大矩形的面积

指令流水实例

  • 计算机组成原理-知识点系统总结_第38张图片

  • IF:取指周期 ID:间指周期 EX:执行周期 WB:写回周期

中断系统

解决问题

在中断过程中又出现新中断怎么办
  • 多重中断

    • 高优先级的中断请求可以中断低优先级的中断请求
  • 多重中断断电保护

    • 断点进栈
    • 断点存入0地址
中断响应
  • 外部设备相CPU如何提出请求

    • 给每个中断源(输入输出设备等)设置一个中断请求标记INTR(中断请求触发器)
  • 多个中断源提出请求怎么办?

    • 中断判优逻辑

      • 硬件实现

        • 排队器,设置中断源时,为其设备优先级
      • 软件

        • 软件实现排队器
  • CPU通过什么条件,什么时间

    • CPU内有一个中断允许触发器

      • EINT为1 时,允许中断
    • 时间

      • 指令周期结束时,CPU发查询信号
  • 如何寻找入口地址

    • 方法一硬件向量法
    • 方法二软件查询法
保护现场
  • 保护寄存器中内容

    • 中断服务程序

      • PUSH(存入栈中)
      • 运行其他程序
      • POP恢复现场
      • 中断返回IRET
  • CPU如何响应中断(保护断点)

    • 中断隐指令(并不是指令,由硬件直接实现)

      • 如何保护现场

        • 缎带你存在于特定地址(0地址)内,断点进栈
      • 寻找服务程序入口地址

        • 向量地址 ->PC (硬件向量法)
        • 中断识别程序 入口地址M->PC (软件查询法)
      • 硬件 关闭中断

  • 正处在中断中

    • 中断标记寄存器

      • 当INT=1,进入中断周期,执行中断隐指令

中断屏蔽技术

  • 通过设置中断屏蔽字,来改变中断请求的优先级

  • 中断屏蔽触发器MASK

    • MASK有效,中断请求会被屏蔽,从而改变优先级
  • 图文解释

    • 计算机组成原理-知识点系统总结_第39张图片

      • 改变顺序方式为:屏蔽字为1时,到对应的中断响应周期时,其他的中断请求会被屏蔽
      • 比如,本例新屏蔽字中。到中断周期A,其全部都设置屏蔽字,所以到A时,其他中断周期的中断请求都会被屏蔽;到中断周期D时,其除了A以外,中断屏蔽字都有效,所以,A的优先级比D高
    • 计算机组成原理-知识点系统总结_第40张图片

    • 计算机组成原理-知识点系统总结_第41张图片

其余零碎知识

编码

8421码

  • 十进制的每一位均用4个二进制位表示
  • 用两个8421码相加时,如果结果大于9,需要加上0110

余三码

  • 8421码结尾加上011

更多知识,请关注微信公众号 MiaoA知识 !

你可能感兴趣的:(计算机组成原理,期末知识复习,网络,面试,经验分享,数据结构)