Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
f56bb478
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
11 个月 前同步成功
通知
1183
Star
3914
Fork
526
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
XiangShan
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f56bb478
编写于
8月 08, 2020
作者:
Y
Yinan Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dispatch queue: fix replayPregReq logic
上级
4af96747
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
5 deletion
+5
-5
src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
...main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
+5
-5
未找到文件。
src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
浏览文件 @
f56bb478
...
...
@@ -184,9 +184,9 @@ class DispatchQueue(size: Int, enqnum: Int, deqnum: Int, replayWidth: Int) exten
val
replayIndex
=
(
0
until
replayWidth
).
map
(
i
=>
(
dispatchPtr
-
i
.
U
)(
indexWidth
-
1
,
0
))
for
(
i
<-
0
until
replayWidth
)
{
val
replayValid
=
stateEntries
(
replayIndex
(
i
))
===
s_valid
io
.
replayPregReq
(
i
).
isInt
:=
replayValid
&&
uopEntries
(
replayIndex
(
i
)).
ctrl
.
src1Type
===
SrcType
.
reg
io
.
replayPregReq
(
i
).
isFp
:=
replayValid
&&
uopEntries
(
replayIndex
(
i
)).
ctrl
.
src1Type
===
SrcType
.
fp
val
shouldResetDest
=
inReplayWalk
&&
stateEntries
(
replayIndex
(
i
))
===
s_valid
io
.
replayPregReq
(
i
).
isInt
:=
shouldResetDest
&&
uopEntries
(
replayIndex
(
i
)).
ctrl
.
rfWen
io
.
replayPregReq
(
i
).
isFp
:=
shouldResetDest
&&
uopEntries
(
replayIndex
(
i
)).
ctrl
.
fpWen
io
.
replayPregReq
(
i
).
preg
:=
uopEntries
(
replayIndex
(
i
)).
pdest
}
...
...
@@ -221,7 +221,7 @@ class DispatchQueue(size: Int, enqnum: Int, deqnum: Int, replayWidth: Int) exten
0.
U
,
Mux
(
mispredictionValid
&&
(!
inReplayWalk
||
needCancel
(
dispatchIndex
-
1.
U
)),
dispatchCancelPtr
,
dispatchPtr
+
Mux
(
inReplayWalk
,
-
dispatchReplayStep
,
numDeq
))
Mux
(
inReplayWalk
,
dispatchPtr
-
dispatchReplayStep
,
dispatchPtr
+
numDeq
))
)
headPtr
:=
Mux
(
exceptionValid
,
0.
U
,
headPtr
+
numCommit
)
...
...
@@ -249,7 +249,7 @@ class DispatchQueue(size: Int, enqnum: Int, deqnum: Int, replayWidth: Int) exten
)
}
XSDebug
(
p
"head: $headPtr, tail: $tailPtr, dispatch: $dispatchPtr\n"
)
XSDebug
(
p
"head: $headPtr, tail: $tailPtr, dispatch: $dispatchPtr
, replayCnt: $dispatchReplayCntReg
\n"
)
XSDebug
(
p
"state: "
)
stateEntries
.
reverse
.
foreach
{
s
=>
XSDebug
(
false
,
s
===
s_invalid
,
"-"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录