OpenRisc-50-or1200的freeze模块分析

本文详细分析了OpenRisc-50-or1200处理器控制通路中的freeze模块,该模块根据流水线各阶段反馈生成暂停信号,如genpc_freeze, if_freeze, id_freeze, ex_freeze和wb_freeze。文章阐述了暂停信号的产生规则,确保无指令丢失,并探讨了代码实现细节,揭示了简单的代码如何实现复杂的流水线管理功能。" 18730927,1413482,图形编程:自定义View详解与实现,"['Android开发', '自定义组件', 'UI设计', '编程实践']
摘要由CSDN通过智能技术生成

引言

之前,我们分析or1200的控制通路中的sprs模块和except模块,本小节,我们就分析一下or1200控制通路的最后一个模块,就是freeze模块。


1,整体分析

freeze模块,顾名思义,就是根据各个流水阶段的反馈信号,负责产生控制整条流水线各个阶段的暂停信号,如取指阶段的genpc_freeze和if_freeze信号,解码阶段的id_freeze信号,执行阶段的ex_freeze信号,以及写回阶段的wb_freeze信号,共5个暂停信号。

可以这么说,freeze就好像整条流水线的监工,如果发现某一阶段出现问题,就控制那个流水阶段暂停。


2,暂停信号产生规则

freeze模块产生的这5个信号不是相互独立的,是有一定的规则的,那么到底有什么规则呢?关于freeze模块的5个暂停信号的产生过则,or1200_freeze.v中有如下描述:


//
// Pipeline freeze
//
// Rules how to create freeze signals:
// 1. Not overwriting pipeline stages:
// Freeze signals at the beginning of pipeline (such as if_freeze) can be 
// asserted more often than freeze signals at the of pipeline (such as 
// wb_freeze). In other words, wb_freeze must never be asserted w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值