501 - 单周期处理器的设计步骤

单周期处理器的设计步骤

① 分析指令系统,得出对数据通路的需求
② 为数据通路选择合适的组件
③ 连接组件建立数据通路
④ 分析每条指令的实现,以确定控制信号
⑤ 集成控制信号,形成完整的控制逻辑

MIPS指令系统的简化版本

无符号加法和减法——无立即数参与,属于R型指令

  • addu rd,rs,rt
  • subu rd,rs,rt

立即数的逻辑或(OR) ——有立即数参与,属于I型指令

  • ori rt,rs,imm16

装载(Load)和存储(Store)一个字(32位)

  • lw rt,imm16(rs)
  • sw rt,imm16(rs)

条件分支(Beq)

  • beq rs,rt,imm16

指令的含义

  • 指令位域的分解


    501 - 单周期处理器的设计步骤_第1张图片
    image.png
  • 指令的操作
501 - 单周期处理器的设计步骤_第2张图片
image.png
501 - 单周期处理器的设计步骤_第3张图片
image.png

其中,对于零扩展和符号扩展,就是在高位上补零或者符号。

指令系统的需求

  1. 算术逻辑单元(ALU)


    501 - 单周期处理器的设计步骤_第4张图片
    ALU
  • 运算类型:加、减、或、比较相等
  • 操作数:2个32位的数,来自寄存器扩展后的立即数
  1. 立即数扩展部件


    501 - 单周期处理器的设计步骤_第5张图片
    ImExtender
  • 将一个16立即数扩展为32位数
  • 扩展方式:零扩展、符号扩展
  1. 程序计数器(PC)


    ProgramCounter
  • 一个32位的寄存器
  • 支持两种加法:加4加一个立即数
  1. 寄存器堆
  • 每个寄存器为32位宽,共32个
  • 支持读操作:rs 和 rt
  • 支持写操作:rt 或 rd
    注:这称为“两读一写”的寄存器堆
  1. 存储器
  • 一个只读的指令存储器,地址和数据均为32位
  • 一个可读写的数据存储器,地址和数据均为32位
    注:这两个存储器实际对应了CPU中的指令和数据高速缓存(Cache)

存储组件:寄存器堆

501 - 单周期处理器的设计步骤_第6张图片
image.png
  1. 内部构成
  • 32个32位的寄存器

数据接口信号

  • busA,busB:两组32位的数据输出
  • busW:一组32位的数据输入
  1. 读写控制
  • Ra(5位):选中对应编号的寄存器,将其内容放到busA
  • Rb(5位):选中对应编号的寄存器,将其内容放到busB
  • Rw(5位):选中对应编号的寄存器,在时钟信号(clk)的上升沿,如果写使能信号有效(WriteEnable==1),将busW的内容存入该寄存器
    注:寄存器堆的读操作不受时钟控制

存储组件:存储器

数据接口信号

  • Data In:32位的数据输入信号
  • Data Out:32位的数据输出信号

读写控制

  • Address:32位的地址信号。该信号指定一个存储单元,将其内容送到数据输出信号
  • Write Enable:写使能信号。在时钟信号(clk)的上升沿,如果写使能信号有效(为1),将数据输入信号的内容存入地址信号指定存储单元
    注:存储器的读操作不受时钟控制

你可能感兴趣的:(501 - 单周期处理器的设计步骤)