如何解决gem5中的Ruby未针对MSI协议重新识别触发器
我正在尝试在this源之后使用Ruby SLICC [版本SHA:8e9b03b640e1c2074896d1123fd55fd336c37d6c]在gem5中实现MSI协议。当我运行build时,它将引发异常并终止操作。
异常:MSI-dir.sm:124:错误:无法识别的函数名称:'trigger_Event_Addr'
MSI-dir.sm文件的第219行出现异常。
in_port(memQueue_in,MemoryMsg,responseFromMemory) {
if (memQueue_in.isReady(clockEdge())) {
peek(memQueue_in,MemoryMsg) {
if (in_msg.Type == MemoryRequestType:MEMORY_READ) {
trigger(Event:MemData,in_msg.addr); //exception raised here
} else if (in_msg.Type == MemoryRequestType:MEMORY_WB) {
trigger(Event:MemAck,in_msg.addr);
} else {
error("Invalid message");
}
}
}
}
我无法找到触发功能的任何详细文档。根据{{3}},触发参数的数量取决于机器本身,我认为这意味着变量参数。此外,我的触发实现是有效的(我假设),如./src/mem/ruby/protocol
中还提供了示例协议文件({ {1}}触发了带有两个参数(Garnet_standalone-dir.sm
)的实现,就像我的一样。我的系统没有dma控制器。
为什么会引发此异常?云如何解决这个问题?
注意:经过数小时的互联网冲浪,自编写gem5 documatation以来,gem5似乎发生了很大变化,并且尚未更新。因此,任何发生的所有更改源都将非常有帮助。 另外,任何像这样的更新的gem5教程资源都将是不错的。我发现的大多数链接主要是文档。
非常感谢您。件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。