[RISCV] risk5 蜂鸟E200流水线——2021年初学习

前言

前面抄书抄得很烦躁,可能是很长时间没有学习过了脑子不灵,或者是我完全是个门外汉,还没进入过CPU的设计世界。这些概念很早就听过,希望这书之后写的能让我明白些。


MIPS五级流水线

  1. 取指令(Instructuon Fetch)将指令从存储器中读取出来的过程。
  2. 译码(Instruction Decode)经过译码得到指令所需的操作数寄存器索引,可以使用索引从通用寄存器组(Regfile)中取出操作数。
  3. 执行(Instruction Execute)常见的使用ALU。
  4. 访存(Memory Access)指存储器访问指令将数据从存储器中读取或写入存储器的过程。
  5. 写回(Write-Back将执行结果写回寄存器组。

在工业制造中使用流水线可以提高单位时间的生产量,同样在处理器中采用流水线设计也有助于提高处理器的性能。

流水线与状态机

流水线并不是必须的,使用别的策略也能提高处理器的性能。

  • 流水线并不限于处理器设计,在所有的ASIC电路实现中都广泛采用流水线的思想。本质上是一种以面积换性能(Trade Area for Performance),以空间换时间(Trade Space for Timing)的手段。以5级流水线为例,它增加了5组寄存器,每一个流水线级数内部都有各自的组合逻辑数据通路,彼此之间没有复用资源,因此其面积开销是比较大的。但是由于可以让不同的流水线级数同时做不同的事情,而达到流水的效果,总体上是提高了性能,优化了时序,增加了吞吐量。
  • 状态机是流水线的“取反”。在所有的ASIC电路实现中都广泛采用。本质上是一种以性能换面积(Trade performance for Area)、以时间换空间(Trade Timing for Space)的手段。如果处理器不采用流水线而是采用状态机,则需要多个时钟周期才能完成一条指令的所有操作,每一个时钟周期完成状态机的一个状态。通过状态机,可以省略流水线的寄存器开销,还可以复用组合逻辑数据通路,因此面积开销小。但是吞吐量和性能很差。

蜂鸟E200处理器的流水线

. 第一级是取指(在IFU中完成)
. 蜂鸟E200处理器核很难界定它的完成流水线级数有几级。因为

  1. 译码(在EXU中完成),执行(在EXU中完成)和 写回(在WB中完成)都处于同一个时钟周期内,位于流水线的二级
  2. 访存(在LSU中完成)处于EXU之后的第三级流水线,但是LSU写回的结果仍然需要通过WB模块写回通用寄存器组
  3. 蜂鸟E200是一个变长流水线结构

来自《教你设计CPU——RISC-V处理器》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念心科道尊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值