Thumbnail: computer

计算机组成原理 PartⅠ

by on under 计组
3 minute read

计算机组成原理 Part Ⅰ

冯·诺伊曼计算机的特点

  1. 计算机由五大部分组成
    1. 输入设备
      • 将信息转化成机器能识别的形式
    2. 运算器 ALU
      • 算术运算
      • 逻辑运算
    3. 控制器 CU
      • 指挥程序运行
    4. 储存器
      • 存储程序和数据
    5. 输出设备
      • 将结果转换成人熟悉的形式
  2. 指令和数据以同等地位存于储存器,可按地址寻访 (混合存储,指令和数据不加以区分)
  3. 指令和数据用二进制表示
  4. 指令由操作码地址码组成
  5. 存储程序 (核心特征)
  6. 运算器为中心 (数据的输入输出必须经过运算器)

现代计算机硬件框图

系统复杂性管理的方法 (3’y)

  • 层次化(Hierachy):将被设计的系统划分为多个模块或子模块
  • 模块化(Modularity):有明确定义(well-defined)的功能和接口

上机前的准备

  • 建立数学模型
  • 确定计算方法
  • 编制解题程序
    • 程序——运算的全部步骤

存储器的基本组成 (存储 01 代码)


存储体

  • 存储单元:存放一串二进制代码
  • 存储元件:存储单元中二进制代码的组合

  • 存储字长:存储单元中二进制代码的位数
  • 按地址寻访:每个存储单元赋予一个地址

MAR (存储器地址寄存器)

  • M: 存储器 A: 地址 R: 寄存器
  • 保存存储单元的地址或编号
  • 反映存储单元的个数

MDR (存储器数据寄存器)

  • 反映存储字长

运算器的基本组成和操作过程


运算器的结构

  • ALU 算术逻辑单元
  • ACC 运算输入与保存运算结果
  • X 运算输入
  • MQ 保存运算结果

image-20211102183305235

加法操作

  1. 初态下 ACC 中已有被加数
  2. 加数从内存中取出,放入 X 寄存器: [M]—>X
  3. ALU 将 ACC 中的被加数和 X 中的 加数相加,并保存到 ACC 中: [ACC] + [X] —> ACC

image-20211102185013161

减法操作

  1. 初态下 ACC 中已有被减数
  2. 减数从内存中取出,放入 X 寄存器: [M]—>X
  3. ALU 将 ACC 中的被减数和 X 中的 减数相加,并保存到 ACC 中: [ACC] + [X] —> ACC、、

image-20211102185051934

乘法操作

  1. 初态下 ACC 中已有被乘数
  2. 乘数从内存中取出,放入 MQ 寄存器中 [M] —> MQ
  3. 将 ACC 中的被乘数放入 X 中 [ACC] —> X
  4. 将 ACC 寄存器清零 0 —> ACC
  5. ALU 将 X 中的被乘数与 MQ 中的乘数相乘,高位放到 ACC 中,低位放到 MQ 中 [X] × [MQ] —> ACC // MQ

image-20211102185112495

除法操作

  1. 初态下 ACC 中已有被除数
  2. 除数从内存中取出并放到 X 寄存器中 [M] —> X
  3. 除数与被除数相除,商放在 MQ 中,余数放在 ACC 中 [ACC] ÷ [X] —> MQ

image-20211102185542280


控制器的基本结构

控制器的基本组成

image-20211102190320684

完成一条指令

  • 取指令 PC (程序计数器)
    • PC 存放当前欲执行指令的地址
    • 具有计数功能 (PC) + 1 —> PC
  • 分析指令 IR
    • 存放当前欲执行的指令
  • 执行指令 CU

主机完成一条指令的过程

要执行的指令的地址放在 PC 当中,指令保存在存储体当中

取数指令

  1. PC 将指令的地址送给 MAR
  2. MAR 将地址送给存储体
  3. 在控制器的控制下,存储体把指定存储单元中保存的取数指令送入 MDR
  4. MDR 将取出的指令送入 IR
  5. IR 将指令的操作码部分传入 CU, CU 根据操作码完成相应操作
  6. 在控制器的控制下吗,将 IR 存储的地址码部分送入 MAR
  7. MAR 将地址送入存储体
  8. 存储体根据地址将取数指令需要的数送入 MDR
  9. MDR 将取出的数送入 ACC image-20211102191345336

存数指令

  1. PC 将指令的地址送给 MAR
  2. MAR 将地址送给存储体
  3. 存储体将对应地址的指令送给 MDR
  4. MDR 将取出的指令送给 IR
  5. IR 将保存指令的操作码部分送给 CU,CU 根据操作码完成相应操作
  6. CU 控制 IR 将地址码部分送入 MAR
  7. MAR 将地址码送入存储体
  8. ACC 将待存数送入 MDR
  9. 在控制器的控制之下把 MDR 中的数据保存到存储体当中

image-20211102192023467

程序的运行过程

  • 将程序通过输入设备送至计算机
  • 程序的首地址 —> PC
  • 启动程序运行
  • 取指令 PC —> MAR —> M —> MDR —> IR, (PC) + 1 —> PC
  • 分析指令 OP(IR) —> CU
  • 执行指令 Ad(IR) —> MAR —> M —> MDR —> ACC

(程序的运行会重复进行 “取指令,分析指令和执行指令” 三步)

  • 打印结果
  • 停机

计算机硬件的主要技术指标

  • 机器字长
    • CPU 一次能处理数据的位数
    • 与 CPU 中的 寄存器位数 有关
  • 运算速度
  • 主频
  • 核数与线程数
  • 吉普森法
  • CPI 执行一条指令所需时钟周期数
  • IPC 一个时钟周期能完成的指令数
  • MIPS 每秒执行百万指令数
    • 考虑到不同指令的复杂程度,还需要进一步精确
  • FLOPS 每秒浮点运算次数 (更科学)
  • 存储容量
    • 主存容量
      • 存储单元个数 × 存储字长
        • 如 MAR MDR 容量
        • ​ 10 8 1K × 8 位
        • ​ 16 32 64K × 32 位 1K 表示 2 的 10 次方
      • 字节数
    • 辅存容量 字节数
计组