蜂鸟e203集成,单通道加法器
流水线
执行模块
执行模块包含定点寄存器堆(Integer Regfile)、浮点寄存器堆(Floating Point Regfile)、操作数选择模块(Opcode Sel)、定点运算单元(Alu)、浮点运算单元(FPU)以及一个访存单元(Mem Unit)。
译码模块对指令译码之后得到对应的 OP 等操作信息以及源操作数地址,执行模块根据源操作数地址首先从定点和浮点寄存器堆中取出对应的操作数,然后操作数选择模块从寄存器堆输出结果以及旁路数据中选择正确的操作数,最后运算单元根据相应操作信息及其操作数就可以计算出结果。
对于定点指令来说,最多需要从定点寄存器堆中取出两个源操作数,而对于浮点指令来说,最多需要从浮点寄存器堆中取出三个源操作数。定点寄存器堆必须具有 2 个读端口,而浮点寄存器堆必须具有 3 个读端口。同样为了确保写回阶段每次能够写回操作数,2 个寄存器堆都必须具有一个写端口。
FPU
具有六条独立的流水线。各运算单元的输入为三个操作数(OP1、OP2、OP3)和舍入模式(Roud_mode),各单元运算完成后,将输出运算结果以及五种异常。
浮点加/减法器
加法器接收三个输入:两个操作数(OP1、OP2),三位舍入模式;输出四个异常信号,即上溢、下溢、无效和不精确。
主要功能单元分为预处理单元、二进制加减单元和后处理单元三部分。
预处理阶段将输入操作数分解为符号位、尾数位和指数位。
浮点乘法器
- 符号位异或
- 指数位相加
- 尾数位相乘
- 最后根据浮点数格式对得到的指数位和尾数位进行调整,并进行舍入处理