CSRU

CSRU 被设计为 CSR 指令执行逻辑和 CSR 寄存器耦合的形式,同时处于节约后端指令发射总线端口数和提交总线端口数的考虑,将 zfencei 的指令处理逻辑也合并在 CSRU 中,其结构如下图所示:

image.png

CSRU 内部分为 3 部分处理逻辑:CSR 指令处理、异常处理(含中断)、fence 类指令处理,各逻辑彼此互斥,在触发各自的判断逻辑后,会根据 RISC-V 规范对相应的 CSR 寄存器组进行修改,在部分情况下会发出 PC 重定向信号(例如异常处理和中断处理)
除 CSR 指令权限异常外,各项异常和中断处理命令均由外部传入:由 EXU 级模块整合前端传入的异常中断信号和 LSU 发出的访存相关异常信号。中断信 号由 CSRU 产生后通过飞线连接至前端译码级(注意,此时 CSRU 不对自身产生的中断信号进行处理,防止与当前正在处理的其他 CSR 相关指令产生冲突),译码级将当前处于译码级的指令的原有信息丢弃,将其标记上收到的中断信息后传入后端并指定 CSRU 进行处理。

results matching ""

    No results matching ""