首页 > 代码库 > gem5: 使用ruby memory system中的mesh结构 出现AssertionError错误

gem5: 使用ruby memory system中的mesh结构 出现AssertionError错误

问题:在使用ruby memory system中的mesh结构測试时,出现例如以下错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/fandroid/gem5/src/python/m5/main.py", line 388, in main
    t = t.tb_next
  File "configs/example/ruby_fs.py", line 112, in <module>
    Ruby.create_system(options, system, system.piobus, system._dma_ports)
  File "/home/fandroid/gem5/configs/ruby/Ruby.py", line 153, in create_system
    RouterClass)
  File "/home/fandroid/gem5/configs/topologies/Mesh.py", line 84, in makeTopology
    assert(node.type == ‘DMA_Controller‘)
AssertionError

解决方法: 參考这里
请看例如以下代码:

# 该问题主要是--num-dirs=16没有设置引起的。--garnet-network=flexible也是必需要设置的,否则会出现deadlock错误。
build/ALPHA_MOESI_CMP_directory/gem5.debug configs/example/ruby_fs.py -n 16 --l1i_size=32kB --l1d_size=32kB --l2_size=16MB --num-l2caches=16 --topology=Mesh --cpu-type=timing --mesh-rows=4 --num-dirs=16 --garnet-network=flexible
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

gem5: 使用ruby memory system中的mesh结构 出现AssertionError错误