authors: Jason Lowe-Power

Garnet 独立运行

这是一个虚拟缓存一致性协议,用于以独立方式运行 Garnet。该协议与 Garnet 合成流量 (Garnet Synthetic Traffic) 注入器一起工作。

相关文件

缓存层次结构

此协议假设 1 级缓存层次结构。缓存的作用只是简单地将消息从 cpu 发送到适当的目录(基于地址),在适当的虚拟网络中(基于消息类型)。它不跟踪任何状态。事实上,与其他协议不同,没有创建 CacheMemory。目录接收来自缓存的消息,但不发回任何消息。此协议的目标是仅启用互连网络的模拟/测试。

稳定状态和不变量

状态 不变量
I 所有缓存块的默认状态

缓存控制器

网络测试器 (在 src/cpu/testers/networktest/networktest.cc 中) 生成 ReadReqINST_FETCHWriteReq 类型的数据包,它们分别由 RubyPort (在 src/mem/ruby/system/RubyPort.hh/cc 中) 转换为 RubyRequestType:LDRubyRequestType:IFETCHRubyRequestType:ST。这些消息通过 Sequencer 到达缓存控制器。这些消息的目的地由流量类型确定,并嵌入在地址中。更多详细信息可以在 这里 找到。

目录控制器

其他功能

此协议假设只有 3 个 vnet。