gem5 documentation
Development
Building
Using KVM
Sphinx Documentation
Doxygen
gem5 APIs
Full System
Checkpoints
Directed Testers
Debugging
Architecture Support
Power and Thermal Model
Compiling Workloads
Stats Package
Stats API
Develop Branch
v19.0.0.0
v20.0.0.0
v20.0.0.2
v20.0.0.3
v20.1.0.0
v20.1.0.1
v20.1.0.5
v21.0.0.0
v21.0.1.0
v21.1.0.0
v21.1.0.1
v21.1.0.2
v21.2.0.0
v21.2.1.0
v21.2.1.1
v22.0.0.0
v22.0.0.1
v22.1.0.0
v23.0.0.0
v23.0.0.1
v24.1.0.1
gem5 standard library
Standard Library Overview
Hello World Tutorial
X86 Full-System Tutorial
Developing Your Own Components Tutorial
How To Create Your Own Board Using The gem5 Standard Library
How to use local resources and data sources in gem5
gem5 Resources
Creating Disk Images
Devices
m5term
Building Linux ARM Kernel
Building Android Marshmallow
Guest binaries
Memory System
Memory System
gem5 Memory System
Replacement Policies
Indexing Policies
Classic memory system coherence
Classic caches
Ruby Memory System
Ruby
Cache Coherence Protocols
Garnet 2.0
HeteroGarnet
MOESI CMP directory
Garnet Synthetic Traffic
SLICC
MI example
Garnet standalone
Interconnection network
MOESI hammer
MOESI CMP token
MESI two level
CHI
Replacement Policies
CPU Models
GPU Models
M5ops
authors: Jason Lowe-Power
索引策略
索引策略根据块的地址确定块映射到的位置。
索引策略最重要的方法是 getPossibleEntries() 和 regenerateAddr():
- getPossibleEntries() 确定给定地址可以映射到的条目列表。
- regenerateAddr() 使用存储在条目中的地址信息来确定其完整的原始地址。
有关缓存索引策略的更多信息,请参阅关于 放置策略 和 关联性 的维基百科文章。
Set Associative
组相联索引策略是类表结构的标准,可以进一步分为直接映射(或 1 路组相联)、组相联和全相联(N 路组相联,其中 N 是表条目的数量)。
组相联缓存可以看作是一种倾斜相联缓存,其倾斜函数映射到每一路的相同值。
Skewed Associative
倾斜相联索引策略具有基于哈希函数的可变映射,因此值 x 可以根据所使用的路映射到不同的组。Gem5 实现了 Seznec 等人在 “Skewed-Associative Caches” 中描述的倾斜缓存。
请注意,已实现的哈希函数数量有限,因此如果路数高于该数量,则使用次优的自动生成哈希函数。
