2015-11-06 70 views
0

我們有一個應用程序使用現有的memcpy和未修改的RISCV編譯器將80MB大容量數據從一個內存位置複製到其他位置。我們可以看到循環數是〜900,這看起來不正確。如果我改變尺寸,計數或多或少保持不變。 這顯然不正確。由於使用了RISCV編譯器,問題是否存在?我們正在使用riscv64-unknown-elf。我們需要riscv64-unknown-linux-gnu嗎?性能「memcpy」不正確

+0

什麼是你的RISC-V的模擬器?你怎麼能得到900個週期?你能發佈測試和彙編代碼的源代碼嗎? – osgx

回答

1

我已經取得了類似的性能試驗,並與在SPARC-V8 LEON3處理器的結果,所以我有如下的數據:

  • 複製8 KB(千字節)的塊
  • LEON3:11780個時鐘週期。
  • Rocket:14630個時鐘週期。

我已經使用修改過的單核Rocket配置和禁用的L2緩存,並使用NASTI仲裁器的自身實現來提供1個時鐘訪問AXI設備。使用默認配置最有可能會導致更糟糕的結果。

我的SoC implementaiton:https://github.com/sergeykhbr/riscv_vhdl