Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
4317f084
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
10 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
4317f084
编写于
8月 16, 2020
作者:
Z
zhanglinjuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ubtb: update ubtb when branch prediction is correct
上级
b5bf93ad
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
3 deletion
+10
-3
debug/cputest.sh
debug/cputest.sh
+1
-1
src/main/scala/xiangshan/frontend/Bim.scala
src/main/scala/xiangshan/frontend/Bim.scala
+7
-0
src/main/scala/xiangshan/frontend/uBTB.scala
src/main/scala/xiangshan/frontend/uBTB.scala
+2
-2
未找到文件。
debug/cputest.sh
浏览文件 @
4317f084
...
...
@@ -5,7 +5,7 @@ TEST_HOME=$AM_HOME/tests/cputest
for
t
in
${
$(
ls
$TEST_HOME
/tests
)
%.c
}
do
echo
-n
"
\x
1b[0m
$t
: "
make
-C
$TEST_HOME
ARCH
=
riscv64-noop
E
=
0
ALL
=
$t
run 2>/dev/null
|
grep
"HIT GOOD TRAP"
make
-C
$TEST_HOME
ARCH
=
riscv64-noop
ALL
=
$t
run 2>&1 |
tee
>
$TEST_HOME
/build/
$t
.log
|
grep
"HIT GOOD TRAP"
if
[[
$?
==
1
]]
;
then
echo
"
\x
1b[31mfail"
...
...
src/main/scala/xiangshan/frontend/Bim.scala
浏览文件 @
4317f084
...
...
@@ -127,5 +127,12 @@ class BIM extends BasePredictor with BimParams{
bim
(
b
).
io
.
w
.
req
.
bits
.
setIdx
:=
Mux
(
doing_reset
,
resetRow
,
updateRow
)
bim
(
b
).
io
.
w
.
req
.
bits
.
data
:=
Mux
(
doing_reset
,
2.
U
(
2.
W
),
newCtr
)
}
XSDebug
(
doing_reset
,
"Reseting...\n"
)
XSDebug
(
"[update] v=%d pc=%x pnpc=%x tgt=%x brTgt=%x\n"
,
io
.
update
.
valid
,
u
.
pc
,
u
.
pnpc
,
u
.
target
,
u
.
brTarget
)
XSDebug
(
"[update] taken=%d isMisPred=%d"
,
u
.
taken
,
u
.
isMisPred
)
XSDebug
(
false
,
true
.
B
,
p
"brTag=${u.brTag} pd.isBr=${u.pd.isBr} brInfo.bimCtr=${Binary(u.brInfo.bimCtr)}\n"
)
XSDebug
(
"needToUpdate=%d updateBank=%x updateRow=%x newCtr=%b oldCtr=%b\n"
,
needToUpdate
,
updateBank
,
updateRow
,
newCtr
,
oldCtr
)
XSDebug
(
"[wrbypass] hit=%d hits=%b\n"
,
wrbypass_hit
,
wrbypass_hits
.
asUInt
)
}
\ No newline at end of file
src/main/scala/xiangshan/frontend/uBTB.scala
浏览文件 @
4317f084
...
...
@@ -173,8 +173,8 @@ class MicroBTB extends BasePredictor
val
jalFirstEncountered
=
!
u
.
isMisPred
&&
!
u
.
brInfo
.
btbHitJal
&&
(
u
.
pd
.
brType
===
BrType
.
jal
)
val
entry_write_valid
=
io
.
update
.
valid
&&
(
u
.
isMisPred
||
jalFirstEncountered
)
//io.update.valid //&& update_is_BR_or_JAL
val
meta_write_valid
=
io
.
update
.
valid
&&
(
u
.
isMisPred
||
jalFirstEncountered
)
//io.update.valid //&& update_is_BR_or_JAL
val
entry_write_valid
=
io
.
update
.
valid
&&
(
u
.
isMisPred
||
!
u
.
isMisPred
&&
u
.
pd
.
isBr
||
jalFirstEncountered
)
//io.update.valid //&& update_is_BR_or_JAL
val
meta_write_valid
=
io
.
update
.
valid
&&
(
u
.
isMisPred
||
!
u
.
isMisPred
&&
u
.
pd
.
isBr
||
jalFirstEncountered
)
//io.update.valid //&& update_is_BR_or_JAL
//write btb target when miss prediction
when
(
entry_write_valid
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录