自作RISC-V CPUコアの方は、いくつかの実装の変更を行って性能がかなり伸びるようになった。
Coremarkの環境を構築して測定できるようにしておく。最大構成ではコンパイルに時間がかかるので、4種類の構成で性能を測定した。 あとはRV64に限定している。ITERATIONS=1に設定している。
4種類でサイクル数を測定した結果、ちゃんとスケールしていることが見えてきた。しかもこの4種類がどれもエラーなく完走できたのはうれしい。
| Configuration | Cycles | CMK/MHz |
|---|---|---|
| Tiny | 685680 | 1.45 |
| Small | 412513 | 2.42 |
| Standard | 294002 | 3.40 |
| Big | 258621 | 3.87 |

- Tiny
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 685680
Total time (secs): %f
Iterations/Sec : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations : 1
Compiler version : GCC11.1.0
Compiler flags : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xe714
Errors detected
- Small
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 412513
Total time (secs): %f
Iterations/Sec : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations : 1
Compiler version : GCC11.1.0
Compiler flags : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xe714
Errors detected
- Standard
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 294002
Total time (secs): %f
Iterations/Sec : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations : 1
Compiler version : GCC11.1.0
Compiler flags : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xe714
Errors detected
- Big
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 258621
Total time (secs): %f
Iterations/Sec : %f
ERROR! Must execute for at least 10 secs for a valid result!
Iterations : 1
Compiler version : GCC11.1.0
Compiler flags : -O3 -march=rv64imfdc -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -fno-builtin -lm -lgcc -T ../riscv64-baremetal/link.ld
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xe714
Errors detected