计算机组成原理小结

一、概述

  1. 计算机系统的层次结构
  2. 冯诺依曼机器
    1. 计算机由运算器、控制器、存储器、输入和输出五大部分组成,并且以运算器为核心
    2. 指令和数据以二进制形式、同的地位存放于存储器中,并且可以按址访问
    3. 指令由操作码和地址码组成,顺序存放于存储器中
  3. 普林斯顿体系(冯诺依曼)VS哈佛体系
  4. 五大部件的基本工作原理

计算机组成原理小结

 

二、总线

  1. 计算机总线的概念
  2. 总线的分类
    1. 片内总线
    2. 系统总线
    3. 通信总线
  3. 总线特性
    1. 总线宽度
    2. 总线频率
    3. 由a和b得到总线带宽
  4. 总线结构
    1. 单总线
    2. 多总线
      1. DMA三总线结构
  5. 计算机系统总线
    1. 通信线路
    2. 总线控制器

 

三、CPU架构

  1. SMP:FSB、Hub-link
  2. NUMA:QPI(CSI)、DMI
  3. MPP:SMP+通信总线

 

四、存储系统

计算机的存储系统由两个子系统组成:cache缓存系统和虚拟存储系统

  1. 计算机存储系统层次结构:速度、容量和每位价格
  2. 主存:主存承上启下(承上cache启下磁盘)
    1. 主存组成:MAR+地址总线+译码驱动+存储体+读写控制电路+数据总线+MDR
    2. 编址方式:存储单元+数据对齐的访问方式(参考蒋本珊《计算机组成原理》5.2部分讲解)
      1. 字编址
      2. 字节编址
      3. 位编址
      4. 寻址
    3. 数据对齐:存储系统边界对齐(数据对齐)
  3. cache缓存子系统
    1. 指令预取
    2. 局部性原理
    3. cache结构(SMP+NUMA)
    4. 缓存映射方式
      1. 全相联
      2. 直接映射
      3. 组相联
    5. 缓存读写流程
      1. 读流程
      2. 写流程
        1. 单核:write through和write back
        2. 多核:write update和write invalid+MESI缓存一致性协议
    6. 缓存替换策略
  4. 虚拟存储系统
    1. 控制器和驱动器
    2. 机械盘结构
    3. SSD结构
    4. raid
    5. 虚拟内存
      1. 虚拟内存的三个主要功能(参看《深入理解计算机系统》):
        1. 内存作为磁盘缓存
        2. 为所有进程提供一致的地址空间
        3. 访问隔离保护
      2. 分段、分页、段页式
      3. swap
    6. 内存映射:内存映射文件、内存映射IO
    7. 《深入理解计算机系统》cache+虚拟内存

五、IO

  1. IO接口
  2. 程序查询
  3. 程序中断
    1. 中断
  4. DMA
    1. DMA与CPU访问主存冲突:周期窃取
    2. DMA结构:总线结构和DMAC硬件结构
    3. DMA数据流程
  5. IO通道
  6. IO复用
    1. select
    2. poll
    3. epoll

 

六、CPU(运算器和控制器)

  1. 计算机信息表示
    1. 数值
      1. 有符号数
      2. 无符号数
    2. 非数值
      1. 字符:编码
      2. 布尔值:布尔运算(与、或、非、异或)

计算机组成原理小结

  1. CPU结构和功能
    1. 结构:ALU、CU、寄存器和时钟
    2. 功能:取指、译码和执行指令
  2. 指令系统
    1. 指令格式
      1. 操作码和地址码
      2. 指令类型
        1. 计算类指令
        2. 数据传送指令
        3. 地址转移指令
        4. IO类指令
    2. 寻址技术
      1. 编址:字编址、字节编址和位编址
      2. 寻址:指令寻址和数据寻址
    3. 指令流水
      1. 相关性:结构相关、数据相关和控制相关
        1. 结构相关:流水线冒泡(暂停)、冲突部件冗余
        2. 数据相关:流水线冒泡(暂停)、操作数前推(寄存器重命名)、乱序执行(指令的动态调度)
        3. 控制相关:流水线冒泡(暂停)、分支预测
      2. 乱序:指令的动态调度,常见算法有记分牌和tomasulo