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 (将#修改为@)