Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
2d12085e
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
9 个月 前同步成功
通知
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 搜索 >>
提交
2d12085e
编写于
7月 31, 2021
作者:
L
Lingrui98
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ftq: fix ftb_entry_len perf counters
上级
11592c76
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
4 deletion
+6
-4
src/main/scala/xiangshan/decoupled-frontend/FTB.scala
src/main/scala/xiangshan/decoupled-frontend/FTB.scala
+2
-1
src/main/scala/xiangshan/decoupled-frontend/NewFtq.scala
src/main/scala/xiangshan/decoupled-frontend/NewFtq.scala
+4
-3
未找到文件。
src/main/scala/xiangshan/decoupled-frontend/FTB.scala
浏览文件 @
2d12085e
...
...
@@ -33,7 +33,7 @@ trait FTBParams extends HasXSParameter with HasBPUConst {
val
tagSize
=
20
}
class
FTBEntry
(
implicit
p
:
Parameters
)
extends
XSBundle
with
FTBParams
{
class
FTBEntry
(
implicit
p
:
Parameters
)
extends
XSBundle
with
FTBParams
with
BPUUtils
{
val
valid
=
Bool
()
val
tag
=
UInt
(
tagSize
.
W
)
...
...
@@ -59,6 +59,7 @@ class FTBEntry (implicit p: Parameters) extends XSBundle with FTBParams {
def
getOffsetVec
=
VecInit
(
brOffset
:+
jmpOffset
)
def
isJal
=
!
isJalr
def
getFallThrough
(
pc
:
UInt
)
=
getFallThroughAddr
(
pc
,
carry
,
pftAddr
)
override
def
toPrintable
:
Printable
=
{
p
"-----------FTBEntry----------- "
+
...
...
src/main/scala/xiangshan/decoupled-frontend/NewFtq.scala
浏览文件 @
2d12085e
...
...
@@ -308,7 +308,8 @@ class FTBEntryGen(implicit p: Parameters) extends XSModule with HasBackendRedire
io
.
is_br_full
:=
hit
&&
is_new_br
&&
br_full
}
class
Ftq
(
implicit
p
:
Parameters
)
extends
XSModule
with
HasCircularQueuePtrHelper
with
HasBackendRedirectInfo
{
class
Ftq
(
implicit
p
:
Parameters
)
extends
XSModule
with
HasCircularQueuePtrHelper
with
HasBackendRedirectInfo
with
BPUUtils
{
val
io
=
IO
(
new
Bundle
{
val
fromBpu
=
Flipped
(
new
BpuToFtqIO
)
val
fromIfu
=
Flipped
(
new
IfuToFtqIO
)
...
...
@@ -847,7 +848,7 @@ class Ftq(implicit p: Parameters) extends XSModule with HasCircularQueuePtrHelpe
XSPerfAccumulate
(
"toIfuBubble"
,
io
.
toIfu
.
req
.
ready
&&
!
io
.
toIfu
.
req
.
valid
)
val
from_bpu
=
io
.
fromBpu
.
resp
.
bits
val
enq_entry_len
=
(
from_bpu
.
ftb_entry
.
pftAddr
-
from_bpu
.
pc
)
>>
instOffsetBits
val
enq_entry_len
=
(
from_bpu
.
ftb_entry
.
getFallThrough
(
from_bpu
.
pc
)
-
from_bpu
.
pc
)
>>
instOffsetBits
val
enq_entry_len_recording_vec
=
(
1
to
PredictWidth
+
1
).
map
(
i
=>
enq_entry_len
===
i
.
U
)
val
enq_entry_len_map
=
(
1
to
PredictWidth
+
1
).
map
(
i
=>
f
"enq_ftb_entry_len_$i"
->
(
enq_entry_len_recording_vec
(
i
-
1
)
&&
enq_fire
)
...
...
@@ -907,7 +908,7 @@ class Ftq(implicit p: Parameters) extends XSModule with HasCircularQueuePtrHelpe
val
ftb_modified_entry_jalr_target_modified
=
u
(
ftbEntryGen
.
is_jalr_target_modified
)
val
ftb_modified_entry_br_full
=
ftb_modified_entry
&&
ftbEntryGen
.
is_br_full
val
ftb_entry_len
=
(
ftbEntryGen
.
new_entry
.
pftAddr
-
update
.
pc
)
>>
instOffsetBits
val
ftb_entry_len
=
(
ftbEntryGen
.
new_entry
.
getFallThrough
(
update
.
pc
)
-
update
.
pc
)
>>
instOffsetBits
val
ftb_entry_len_recording_vec
=
(
1
to
PredictWidth
+
1
).
map
(
i
=>
ftb_entry_len
===
i
.
U
)
val
ftb_init_entry_len_map
=
(
1
to
PredictWidth
+
1
).
map
(
i
=>
f
"ftb_init_entry_len_$i"
->
(
ftb_entry_len_recording_vec
(
i
-
1
)
&&
ftb_new_entry
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录