文章目录
1 涉及到的相关文件
四个文件夹
compressors
prefetch
replacement_policies
tags
分别表示“缓存压缩”、“预取”、“替换算法”、“标志位”等相关结构
此外,还包括基本文件:
base.hh
base.cc
cache_blk.hh
cache_blk.cc
cache.hh
cache.cc
mshr_queue.hh
mshr_queue.cc
mshr.hh
mshr.cc
noncoherent_cache.hh
noncoherent_cache.cc
queue_entry.hh
queue.hh
write_queue_entry.hh
write_queue_entry.cc
write_queue.hh
write_queue.cc
Cache.py
SConscript
从这些文件中,可以观察到其中的文件包括三类:
- SConscript:负责编译用 Scons
- Cache.py:Python 提供接口
- xx.hh/cc:c++ 实现具体的功能
2 SConscript
2.1 具体结构
Import('*')
SimObject('Cache.py', sim_objects=[
'WriteAllocator', 'BaseCache', 'Cache', 'NoncoherentCache'],
enums=['Clusivity'])
Source('base.cc')
Source('cache.cc')
Source('cache_blk.cc')
Source('mshr.cc')
Source('mshr_queue.cc')
Source('noncoherent_cache.cc')
Source('write_queue.cc')
Source('write_queue_entry.cc')
DebugFlag('Cache')
DebugFlag('CacheComp')
DebugFlag('CachePort')
DebugFlag('CacheRepl')
DebugFlag('CacheTags')
DebugFlag('CacheVerbose')
DebugFlag('HWPrefetch')
DebugFlag('MSHR')
DebugFlag('HWPrefetchQueue')
CompoundFlag('CacheAll', ['Cache', 'CacheComp', 'CachePort', 'CacheRepl',
'CacheVerbose', 'HWPrefetch', 'MSHR'])
2.2 SConscript 简介
SConscript 是 scons 默认自动寻找并执行的配置脚本,对环境进行基本的信息处理,然后创造环境对象,并调用 osconfig.py(硬件相关性较大的配置)build_tools.py(定义了各项公用的操作)
SConscript()方法,递归调用各级子目录中的SConscript,从而实现根据不同项目特点定义相应的代码组织、编译行为。
gem5 中,主要用 scons编译,并 SConscript 完成编译相关内容,主要用的语法有:
SimObject()
Source()
DebugFlag()
CompoundFlag()

1511




被折叠的 条评论
为什么被折叠?



