微体系架构:CPU&RAM


1 Memory

1.1 寄存器:

  • 锁存器:打开允许写入线,将数据保存在锁存器中;关闭允许写入线,输出不会随输入发生改变
    • 1个锁存器保存1位,即1bit的数据。
    • 一组8个锁存器,可以组成一个8位寄存器
  • 简单组合:一根允许写入线连接所有的数据输入线+所有的输出线。
    • 8位=8+8+1=17根线,256位=256+256+1=513根线
  • 矩阵:行列选择线+允许写入线+允许读取线+数据输入线。256位=16+16+3=35根线

1.2 RAM

  • 矩阵排列的地址:
    • 256位内存排列=16x16,用4个位就足够表示(1111,0~15),所以地址可表示为8个位
  • 多路复用器multiplexer
    • 通过多路复用器传输二进制地址,选择实际矩阵的行列
      (将4个位的二进制转为十进制)
  • 可寻址内存
    • 8位地址:28 = 256字节
    • 32位地址:232 = 1024 x 1024 x 1024字节=4G
256位内存,需要8位地址 = 4位行 + 4位列
(4位二进制表示0~15,实际16根线)
16行列选择线 + 1允许写入线 + 1允许读取线 + 1数据线

将8个256位内存按线性排列,每个内存给同一个地址,
则:一次保存8位,即1个字节,总共可以保存256个字节

2 微体系架构:CPU

2.1 读取

  • 取指令fetch phase
    • 打开1、2、3,根据==EIP(程序计数器,指令地址寄存器)==中保存的地址,从RAM中读取指令到指令寄存器中
  • 解码decode
    • 指令寄存器,对读取的指令进行解码
  • 执行指令execute phase
    • 打开1、2、5、6,将RAM中对应地址中的数据写入到寄存器中

2.2 运算

  • 取指令fetch phase
    • 打开1、2、3,根据EIP(程序计数器,指令地址寄存器)中保存的地址,从RAM中读取指令到指令寄存器中
  • 解码decode
    • 指令寄存器,对读取的指令进行解码
  • 执行指令execute phase
    • 打开7、11,将数据从寄存器读取到==ALU(算术逻辑单元)==中
    • 打开8、9,执行运算并将结果先保存到控制单元的内部寄存器

2.3 写入

  • 取指令fetch phase
    • 打开1、2、3,根据EIP(程序计数器,指令地址寄存器)中保存的地址,从RAM中读取指令到指令寄存器中
  • 解码decode
    • 指令寄存器,对读取的指令进行解码
  • 执行指令execute phase
    • 打开1、10、11、12,将数据从寄存器写入到RAM的对应地址

2.4 clock

  • 时钟速度/频率hz
    • 以精确和固定的间隔触发电信号,信号被控制单元用于推进CPU内部操作。
  • 动态时钟频率调整
    • 超频:修改时钟,加快CPU速度

3 数据的高速读写—高级CPU设计

  • CPU和RAM的数据传输——总线BUS。

3.1 高速缓存cache

  • 为了减少RAM完成一个指令(寻址,取数据等操作)的时钟周期,在CPU中加入高速缓存cache。
  • 高速缓存命中/缺失
    • 当CPU读取一次数据时,会直接读取该地址一定范围内的所有数据到cache中。
      当再次读取数据时,所需要的数据已经保存在缓存中,称为高速缓存命中,否则称为高速缓存缺失。
    • 缓存也可以用来暂时存储长度较长和更复杂的中间数据值
  • 脏位
    • 当CPU执行结束后修改后的数据没有立即写入到RAM中,而是写入到cache中,方便下一步的运算。
    • 因此,缓存中的数据和RAM中的数据不匹配,这种不匹配需要记录下来,以保证后续缓存和RAM的同步(一般是缓存满)
    • 所以,缓存的每个BLOCK都有特殊的标志,脏位,即:页面重写标志位。

3.2 指令流水线

  • 顺序执行:完成一个指令需要3个时钟周期。
    不同阶段,CPU只有一个部分在工作
  • 流水线设计:平行处理,即:取指令,解码,执行同时进行。
    每个时钟周期都有指令执行,CPU各个部分时刻保持活跃,吞吐量变为原来的3倍。
缺点:指令依赖性,下一条指令可能读取到上一条未经处理的数据。

流水线处理器需要提前检查数据的依赖性,必要时停止流水线处理

3.3 高级设计

  • 乱序执行:
    • 动态安排有依赖的指令顺序,减少停止
  • 分支预测和推测执行:
    • 针对if、jump等分支指令发生跳转,导致处理器等待情况,在分支指令执行结束前,预测安排正确分支的指令提前执行,如果预测错误则清除已经执行的结果,重新执行另一个分支。
  • 优化单个指令流的吞吐量:增加计算单元,如多个ALU,多指令平行执行
  • 多核处理器:
    • 多个独立处理单元,同时运行多指令流,共享资源共同计算
  • 超级计算机:多CPU
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值