Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
6a97f43d
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 搜索 >>
提交
6a97f43d
编写于
12月 20, 2021
作者:
W
William Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dcache: parameterize alias bits (WIP)
It seems there is something wrong with 32KB dcache default config
上级
7e6472ba
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
3 deletion
+12
-3
src/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala
src/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala
+9
-0
src/main/scala/xiangshan/cache/dcache/mainpipe/MissQueue.scala
...ain/scala/xiangshan/cache/dcache/mainpipe/MissQueue.scala
+2
-2
src/main/scala/xiangshan/cache/dcache/mainpipe/Probe.scala
src/main/scala/xiangshan/cache/dcache/mainpipe/Probe.scala
+1
-1
未找到文件。
src/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala
浏览文件 @
6a97f43d
...
...
@@ -138,6 +138,7 @@ trait HasDCacheParameters extends HasL1CacheParameters {
val
DCacheTagOffset
=
DCacheAboveIndexOffset
min
DCacheSameVPAddrLength
val
DCacheLineOffset
=
DCacheSetOffset
val
DCacheIndexOffset
=
DCacheBankOffset
val
DCacheAliasBits
=
DCacheAboveIndexOffset
-
DCacheTagOffset
def
addr_to_dcache_bank
(
addr
:
UInt
)
=
{
require
(
addr
.
getWidth
>=
DCacheSetOffset
)
...
...
@@ -159,6 +160,14 @@ trait HasDCacheParameters extends HasL1CacheParameters {
data
(
DCacheSRAMRowBytes
*
(
bank
+
1
)
-
1
,
DCacheSRAMRowBytes
*
bank
)
}
def
addr_to_alias_bit
(
addr
:
UInt
)
:
UInt
=
{
if
(
DCacheAliasBits
>
0
)
{
addr
(
DCacheAboveIndexOffset
-
1
,
DCacheTagOffset
)
}
else
{
0.
U
// DontCare
}
}
def
arbiter
[
T
<:
Bundle
](
in
:
Seq
[
DecoupledIO
[
T
]],
out
:
DecoupledIO
[
T
],
...
...
src/main/scala/xiangshan/cache/dcache/mainpipe/MissQueue.scala
浏览文件 @
6a97f43d
...
...
@@ -332,7 +332,7 @@ class MissEntry(edge: TLEdgeOut)(implicit p: Parameters) extends DCacheModule {
).
_2
io
.
mem_acquire
.
bits
:=
Mux
(
full_overwrite
,
acquirePerm
,
acquireBlock
)
// resolve cache alias by L2
io
.
mem_acquire
.
bits
.
user
.
lift
(
AliasKey
).
foreach
(
_
:=
req
.
vaddr
(
13
,
12
))
io
.
mem_acquire
.
bits
.
user
.
lift
(
AliasKey
).
foreach
(
_
:=
addr_to_alias_bit
(
req
.
vaddr
))
// trigger prefetch
io
.
mem_acquire
.
bits
.
user
.
lift
(
PrefetchKey
).
foreach
(
_
:=
true
.
B
)
// prefer not to cache data in L2 by default
...
...
@@ -389,7 +389,7 @@ class MissEntry(edge: TLEdgeOut)(implicit p: Parameters) extends DCacheModule {
}
refill
.
meta
.
coh
:=
ClientMetadata
(
missCohGen
(
req
.
cmd
,
grant_param
,
isDirty
))
refill
.
error
:=
error
refill
.
alias
:=
req
.
vaddr
(
13
,
12
)
// TODO
refill
.
alias
:=
addr_to_alias_bit
(
req
.
vaddr
)
io
.
main_pipe_req
.
valid
:=
!
s_mainpipe_req
&&
w_grantlast
io
.
main_pipe_req
.
bits
:=
DontCare
...
...
src/main/scala/xiangshan/cache/dcache/mainpipe/Probe.scala
浏览文件 @
6a97f43d
...
...
@@ -148,7 +148,7 @@ class ProbeQueue(edge: TLEdgeOut)(implicit p: Parameters) extends DCacheModule w
req
.
source
:=
io
.
mem_probe
.
bits
.
source
req
.
opcode
:=
io
.
mem_probe
.
bits
.
opcode
req
.
addr
:=
io
.
mem_probe
.
bits
.
address
if
(
DCacheA
boveIndexOffset
>
DCacheTagOffset
)
{
if
(
DCacheA
liasBits
>
0
)
{
// have alias problem, extra alias bits needed for index
req
.
vaddr
:=
Cat
(
io
.
mem_probe
.
bits
.
address
(
PAddrBits
-
1
,
DCacheAboveIndexOffset
),
// dontcare
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录