CS61C-sp22 Lec12 The DataPath笔记

一,介绍

        在接下来的几节课中,我们将描述如何构建处理器。

    处理器由两部分组成:

  • 实现计算的DataPath
  • 查看指令并告诉数据路径要做什么的Control Logic

DataPath 就像人的四肢,Control Logic 就像人的大脑一样,操控四肢,从而实现创造。

现在,让我们从了解DataPath 开始吧!

首先,我们需要回顾之前学习的指令。我们知道,四肢之所以人够运动,是因为大脑在发出命令,从而实现的。同理, DataPath, 在此我们把命令看成由数字组成的指令。

以下就是我们之前学习的所有指令的格式:

One-Instruction-Per-Cycle RISC-V Machine

        在时钟的每个滴答声中,处理器执行一条指令

  1. 当前状态输出驱动组合逻辑的输入, 其输出稳定在值下一个时钟之前的状态边缘
  2. 在时钟的上升沿,所有的状态元素更新为组合逻辑输出,执行移至下一个 时钟周期 
  3. 独立的指令/数据存储器: 为简化起见,内存是 异步读取(无时钟), 但同步写入(有时钟)

状态元素就是0/1,随着Clock发生变化。(包含延迟)

五个阶段

  1. (IF)获取指令:将地址发送到指令存储器(IMEM),并在该处读取IMEM地址
  2. (ID)译码:从指令位生成控制信号,生成立即数,并从RegFile中读取寄存器。
  3. 执行(ALU):执行ALU操作,并进行分支比较。
  4. (MEM)访存:读取后写入数据存储器(DMEM)
  5. (WB)写回:写回PC+4、ALU操作的结果后来自内存的dataR到RegFile DataD

接下来,我们将从简单的指令(add)开始,一步步的实现完整的DataPath.

 

 SUB

首先,对比一下ADD与SUB的差异——ALUSel

求同存异——所有R型指令,就完成啦!

Implementing the addi instruction (I型指令)

多了一个立即数生成器、多路复用器、ImmSel、BSel

实现I型指令——指令格式的改变。(立即数imm[31:0])

 

Implementing Load Word instruction——主要增加了DMEM。注意:存易,取难。耗费时间。

 

Implementing Store Word instruction——相比lw,控制信号发生改变。

 

I 型指令已实现

 集成I&S

 Implementing Branches——增加分支比较器,alu(PC+4的竞争对手)——这意味着B型指令,比I型指令跨越的距离更远(地址)

 

分支比较器

 接下来是两个特殊的跳跃指令(Jalr、Jal)

JAL

最后的数据通路

补充

总结——通用数据路径

• 能够在每个周期内执行所有 RISC-V 指令

• 数据路径是所有使用的所有单位的“联合” 指示。 多路复用器提供了选项。

• 并非所有指令都使用所有单元(硬件)

• 5 个执行阶段

        • IF、ID、EX、MEM、WB

• 并非所有指令在所有阶段都有效

• 控制器指定如何执行指令

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值