AWS F1インスタンスのRocket Chipsシミュレータで遊んでみた

RISC-V Rocket ChipsのシミュレータがAWS F1インスタンスで動かせるというので，サンプルにあったベンチマークとbuildrootで追加したDhrystoneとWhetstoneを試してみました．

## 動かし方

動作方法は，[FireSim Demo v1.0 on Amazon EC2 F1](https://fires.im/2017/08/29/firesim-demo-v1.0.html)に詳細に書いてある．すでに日本語で書かれている[FireSimを使ってRocket-ChipをAmazon F1インスタンスで動かす試行](http://msyksphinz.hatenablog.com/entry/2018/03/27/040000)も，とても参考になる．
特に追記することはない．

<details><summary>起動時のdmesgはこんな感じ．</summary><div>
<pre>
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 4.12.0-rc2 (centos@ip-172-31-27-208) (gcc version 7.1.1 20170509 (GCC) ) #1 Fri Aug 4 03:44:55 UTC 2017
[    0.000000] On node 0 totalpages: 1048576
[    0.000000] free_area_init_node: node 0, pgdat ffffffff8034a618, node_mem_map fffffffffc5f9000
[    0.000000]   Normal zone: 14336 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 1048576 pages, LIFO batch:31
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1034240
[    0.000000] Kernel command line: root=/dev/generic-blkdev 
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 2027824K/4194304K available (2640K kernel code, 156K rwdata, 504K rodata, 88K init, 246K bss, 2166480K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:0 nr_irqs:0 0
[    0.000000] riscv,cpu_intc,0: 64 local interrupts mapped
[    0.000000] riscv,plic0,c000000: mapped 3 interrupts to 1/2 handlers
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[    0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=4000)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.000000] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.000000] devtmpfs: initialized
[    0.000000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.000000] futex hash table entries: 256 (order: 0, 6144 bytes)
[    0.000000] NET: Registered protocol family 16
[    0.000000] vgaarb: loaded
[    0.000000] clocksource: Switched to clocksource riscv_clocksource
[    0.004000] NET: Registered protocol family 2
[    0.004000] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[    0.004000] TCP bind hash table entries: 32768 (order: 6, 262144 bytes)
[    0.004000] TCP: Hash tables configured (established 32768 bind 32768)
[    0.004000] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    0.004000] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    0.004000] NET: Registered protocol family 1
[    0.004000] PCI: CLS 0 bytes, default 64
[    0.004000] workingset: timestamp_bits=62 max_order=19 bucket_order=0
[    0.004000] io scheduler noop registered
[    0.004000] io scheduler cfq registered (default)
[    0.004000] io scheduler mq-deadline registered
[    0.004000] io scheduler kyber registered
[    0.256000] console [sbi_console0] enabled
[    0.260000] disk [sbi-disk] of 18446744073709551528 bytes loaded
[    0.268000] disk [generic-blkdev] of loaded; 122880 sectors, 1 tags, 16 max request length
[    0.276000] Registered SimpleNIC a6:0e:9f:de:73:31
[    0.280000] EXT4-fs (generic-blkdev): couldn't mount as ext3 due to feature incompatibilities
[    0.288000] EXT4-fs (generic-blkdev): INFO: recovery required on readonly filesystem
[    0.296000] EXT4-fs (generic-blkdev): write access will be enabled during recovery
[    0.324000] EXT4-fs (generic-blkdev): recovery complete
[    0.328000] EXT4-fs (generic-blkdev): mounted filesystem with ordered data mode. Opts: (null)
[    0.336000] VFS: Mounted root (ext4 filesystem) readonly on device 253:0.
[    0.344000] devtmpfs: mounted
[    0.348000] Freeing unused kernel memory: 88K
[    0.352000] This architecture does not have kernel memory protection.
[    0.368000] random: fast init done
[    0.448000] EXT4-fs (generic-blkdev): re-mounted. Opts: errors=remount-ro,data=ordered
</pre>
</div></details>



## memcachedを動かす

Rocket Chips上で動くmemcachedを，ホストサーバからたたいて評価できるようになっている．

FPGA上で動いているRocket Chipsの上のLinuxで，

```
# memcached -u root
```

として，memcachedを起動しておくのが肝（他はすごく丁寧に書いてあるのに，ここだけ文中にさらっと書いてある）．

sshセッションを2本はるかscreenを使うか，とにかくRocket Chipsにログインしているshellとは別のホストサーバ上のshellで，

```
$ ./bin/ycsb load memcached -s -P workloads/workloada -p "memcached.hosts=192.168.1.10" > load_log
```

とかすると，192.168.1.10(FPGAで動いているRocket Chips)上でのmemcachedの性能を測定できる

サンプル/ベンチマークのmemcachedを実行してみたログは以下の通り．

`./bin/ycsb load memcached -s -P workloads/workloada -p "memcached.hosts=192.168.1.10"` の結果

```
[OVERALL], RunTime(ms), 4923
[OVERALL], Throughput(ops/sec), 203.12817387771685
[TOTAL_GCS_PS_Scavenge], Count, 0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 0
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.0
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 0
[TOTAL_GC_TIME], Time(ms), 0
[TOTAL_GC_TIME_%], Time(%), 0.0
```

`./bin/ycsb run memcached -s -P workloads/workloada -p "memcached.hosts=192.168.1.10"` の結果

```
[OVERALL], RunTime(ms), 4438
[OVERALL], Throughput(ops/sec), 225.3267237494367
[TOTAL_GCS_PS_Scavenge], Count, 0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 0
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.0
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 0
[TOTAL_GC_TIME], Time(ms), 0
[TOTAL_GC_TIME_%], Time(%), 0.0
```


<details><summary>load_logの全部</summary><div>
<pre>
[OVERALL], RunTime(ms), 4923
[OVERALL], Throughput(ops/sec), 203.12817387771685
[TOTAL_GCS_PS_Scavenge], Count, 0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 0
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.0
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 0
[TOTAL_GC_TIME], Time(ms), 0
[TOTAL_GC_TIME_%], Time(%), 0.0
[CLEANUP], Operations, 1
[CLEANUP], AverageLatency(us), 3793.0
[CLEANUP], MinLatency(us), 3792
[CLEANUP], MaxLatency(us), 3793
[CLEANUP], 95thPercentileLatency(us), 3793
[CLEANUP], 99thPercentileLatency(us), 3793
[CLEANUP], 3793, 1.0
[INSERT], Operations, 1000
[INSERT], AverageLatency(us), 4792.307
[INSERT], MinLatency(us), 2592
[INSERT], MaxLatency(us), 81791
[INSERT], 95thPercentileLatency(us), 26591
[INSERT], 99thPercentileLatency(us), 28927
[INSERT], Return=OK, 1000
[INSERT], 2593, 1.0
[INSERT], 2605, 2.0
[INSERT], 2615, 1.0
[INSERT], 2617, 1.0
[INSERT], 2619, 2.0
[INSERT], 2621, 3.0
[INSERT], 2623, 3.0
[INSERT], 2625, 3.0
[INSERT], 2627, 4.0
[INSERT], 2629, 6.0
[INSERT], 2631, 4.0
[INSERT], 2633, 2.0
[INSERT], 2637, 4.0
[INSERT], 2639, 8.0
[INSERT], 2641, 12.0
[INSERT], 2643, 5.0
[INSERT], 2645, 3.0
[INSERT], 2647, 10.0
[INSERT], 2649, 5.0
[INSERT], 2651, 10.0
[INSERT], 2653, 14.0
[INSERT], 2655, 8.0
[INSERT], 2657, 8.0
[INSERT], 2659, 7.0
[INSERT], 2661, 14.0
[INSERT], 2663, 10.0
[INSERT], 2665, 13.0
[INSERT], 2667, 13.0
[INSERT], 2669, 12.0
[INSERT], 2671, 4.0
[INSERT], 2673, 4.0
[INSERT], 2675, 8.0
[INSERT], 2677, 12.0
[INSERT], 2679, 11.0
[INSERT], 2681, 9.0
[INSERT], 2683, 12.0
[INSERT], 2685, 13.0
[INSERT], 2687, 9.0
[INSERT], 2689, 11.0
[INSERT], 2691, 5.0
[INSERT], 2693, 9.0
[INSERT], 2695, 7.0
[INSERT], 2697, 13.0
[INSERT], 2699, 9.0
[INSERT], 2701, 11.0
[INSERT], 2703, 12.0
[INSERT], 2705, 9.0
[INSERT], 2707, 8.0
[INSERT], 2709, 19.0
[INSERT], 2711, 12.0
[INSERT], 2713, 7.0
[INSERT], 2715, 13.0
[INSERT], 2717, 4.0
[INSERT], 2719, 6.0
[INSERT], 2721, 11.0
[INSERT], 2723, 9.0
[INSERT], 2725, 7.0
[INSERT], 2727, 6.0
[INSERT], 2729, 7.0
[INSERT], 2731, 11.0
[INSERT], 2733, 11.0
[INSERT], 2735, 13.0
[INSERT], 2737, 7.0
[INSERT], 2739, 11.0
[INSERT], 2741, 11.0
[INSERT], 2743, 9.0
[INSERT], 2745, 3.0
[INSERT], 2747, 12.0
[INSERT], 2749, 4.0
[INSERT], 2751, 7.0
[INSERT], 2753, 7.0
[INSERT], 2755, 5.0
[INSERT], 2757, 5.0
[INSERT], 2759, 7.0
[INSERT], 2761, 4.0
[INSERT], 2763, 7.0
[INSERT], 2765, 5.0
[INSERT], 2767, 6.0
[INSERT], 2769, 9.0
[INSERT], 2771, 6.0
[INSERT], 2773, 5.0
[INSERT], 2775, 6.0
[INSERT], 2777, 3.0
[INSERT], 2779, 7.0
[INSERT], 2781, 2.0
[INSERT], 2783, 5.0
[INSERT], 2785, 7.0
[INSERT], 2787, 3.0
[INSERT], 2791, 6.0
[INSERT], 2793, 1.0
[INSERT], 2795, 3.0
[INSERT], 2797, 4.0
[INSERT], 2799, 7.0
[INSERT], 2801, 4.0
[INSERT], 2803, 4.0
[INSERT], 2805, 4.0
[INSERT], 2807, 4.0
[INSERT], 2809, 2.0
[INSERT], 2811, 3.0
[INSERT], 2813, 3.0
[INSERT], 2815, 4.0
[INSERT], 2817, 2.0
[INSERT], 2819, 1.0
[INSERT], 2821, 3.0
[INSERT], 2823, 3.0
[INSERT], 2825, 2.0
[INSERT], 2827, 2.0
[INSERT], 2829, 1.0
[INSERT], 2831, 1.0
[INSERT], 2833, 4.0
[INSERT], 2835, 1.0
[INSERT], 2837, 3.0
[INSERT], 2839, 2.0
[INSERT], 2841, 1.0
[INSERT], 2843, 1.0
[INSERT], 2849, 1.0
[INSERT], 2851, 1.0
[INSERT], 2853, 1.0
[INSERT], 2855, 2.0
[INSERT], 2859, 3.0
[INSERT], 2863, 1.0
[INSERT], 2871, 2.0
[INSERT], 2873, 1.0
[INSERT], 2875, 1.0
[INSERT], 2877, 1.0
[INSERT], 2883, 1.0
[INSERT], 2887, 2.0
[INSERT], 2889, 1.0
[INSERT], 2893, 1.0
[INSERT], 2905, 2.0
[INSERT], 2907, 2.0
[INSERT], 2911, 1.0
[INSERT], 2913, 1.0
[INSERT], 2917, 1.0
[INSERT], 2919, 1.0
[INSERT], 2921, 1.0
[INSERT], 2925, 1.0
[INSERT], 2933, 1.0
[INSERT], 2941, 2.0
[INSERT], 2943, 3.0
[INSERT], 2949, 1.0
[INSERT], 2951, 1.0
[INSERT], 2953, 1.0
[INSERT], 2955, 1.0
[INSERT], 2957, 1.0
[INSERT], 2959, 3.0
[INSERT], 2965, 3.0
[INSERT], 2969, 4.0
[INSERT], 2971, 1.0
[INSERT], 2975, 1.0
[INSERT], 2977, 2.0
[INSERT], 2979, 2.0
[INSERT], 2985, 1.0
[INSERT], 2987, 2.0
[INSERT], 2989, 3.0
[INSERT], 2991, 2.0
[INSERT], 2999, 3.0
[INSERT], 3003, 4.0
[INSERT], 3007, 2.0
[INSERT], 3013, 1.0
[INSERT], 3015, 1.0
[INSERT], 3019, 1.0
[INSERT], 3021, 1.0
[INSERT], 3027, 3.0
[INSERT], 3035, 1.0
[INSERT], 3037, 4.0
[INSERT], 3039, 1.0
[INSERT], 3041, 2.0
[INSERT], 3047, 2.0
[INSERT], 3053, 1.0
[INSERT], 3057, 1.0
[INSERT], 3059, 1.0
[INSERT], 3067, 3.0
[INSERT], 3075, 1.0
[INSERT], 3085, 3.0
[INSERT], 3087, 1.0
[INSERT], 3095, 1.0
[INSERT], 3097, 1.0
[INSERT], 3099, 1.0
[INSERT], 3109, 1.0
[INSERT], 3113, 1.0
[INSERT], 3117, 1.0
[INSERT], 3121, 2.0
[INSERT], 3123, 1.0
[INSERT], 3125, 2.0
[INSERT], 3133, 2.0
[INSERT], 3139, 2.0
[INSERT], 3141, 1.0
[INSERT], 3143, 1.0
[INSERT], 3155, 1.0
[INSERT], 3163, 1.0
[INSERT], 3167, 1.0
[INSERT], 3177, 1.0
[INSERT], 3179, 1.0
[INSERT], 3181, 1.0
[INSERT], 3183, 2.0
[INSERT], 3187, 1.0
[INSERT], 3193, 2.0
[INSERT], 3201, 1.0
[INSERT], 3203, 2.0
[INSERT], 3207, 1.0
[INSERT], 3209, 1.0
[INSERT], 3211, 2.0
[INSERT], 3213, 1.0
[INSERT], 3217, 1.0
[INSERT], 3223, 1.0
[INSERT], 3225, 1.0
[INSERT], 3231, 1.0
[INSERT], 3235, 1.0
[INSERT], 3261, 1.0
[INSERT], 3265, 1.0
[INSERT], 3277, 1.0
[INSERT], 3279, 1.0
[INSERT], 3289, 2.0
[INSERT], 3291, 1.0
[INSERT], 3313, 2.0
[INSERT], 3327, 1.0
[INSERT], 3329, 1.0
[INSERT], 3333, 1.0
[INSERT], 3343, 1.0
[INSERT], 3365, 1.0
[INSERT], 3367, 1.0
[INSERT], 3373, 1.0
[INSERT], 3411, 1.0
[INSERT], 3449, 1.0
[INSERT], 3481, 1.0
[INSERT], 3525, 1.0
[INSERT], 3633, 1.0
[INSERT], 3831, 1.0
[INSERT], 4247, 1.0
[INSERT], 4275, 1.0
[INSERT], 4299, 1.0
[INSERT], 4335, 1.0
[INSERT], 4367, 1.0
[INSERT], 4435, 1.0
[INSERT], 4503, 1.0
[INSERT], 4519, 1.0
[INSERT], 4559, 1.0
[INSERT], 4571, 1.0
[INSERT], 4579, 1.0
[INSERT], 4627, 1.0
[INSERT], 4683, 1.0
[INSERT], 4687, 1.0
[INSERT], 4719, 1.0
[INSERT], 4907, 1.0
[INSERT], 4987, 1.0
[INSERT], 5007, 1.0
[INSERT], 9423, 1.0
[INSERT], 10639, 1.0
[INSERT], 19567, 1.0
[INSERT], 20223, 1.0
[INSERT], 21423, 1.0
[INSERT], 22719, 1.0
[INSERT], 24463, 1.0
[INSERT], 24863, 2.0
[INSERT], 24927, 1.0
[INSERT], 24959, 1.0
[INSERT], 24991, 1.0
[INSERT], 25103, 1.0
[INSERT], 25343, 1.0
[INSERT], 25503, 1.0
[INSERT], 25775, 1.0
[INSERT], 26159, 1.0
[INSERT], 26191, 1.0
[INSERT], 26223, 1.0
[INSERT], 26367, 1.0
[INSERT], 26415, 1.0
[INSERT], 26431, 1.0
[INSERT], 26447, 1.0
[INSERT], 26495, 1.0
[INSERT], 26527, 1.0
[INSERT], 26543, 3.0
[INSERT], 26591, 1.0
[INSERT], 26623, 1.0
[INSERT], 26703, 1.0
[INSERT], 26847, 1.0
[INSERT], 26879, 1.0
[INSERT], 26911, 2.0
[INSERT], 26927, 1.0
[INSERT], 26943, 1.0
[INSERT], 26959, 1.0
[INSERT], 27007, 1.0
[INSERT], 27023, 2.0
[INSERT], 27071, 1.0
[INSERT], 27119, 3.0
[INSERT], 27135, 2.0
[INSERT], 27199, 1.0
[INSERT], 27423, 1.0
[INSERT], 27935, 1.0
[INSERT], 27999, 1.0
[INSERT], 28111, 1.0
[INSERT], 28159, 1.0
[INSERT], 28207, 1.0
[INSERT], 28319, 2.0
[INSERT], 28335, 1.0
[INSERT], 28367, 1.0
[INSERT], 28399, 1.0
[INSERT], 28415, 1.0
[INSERT], 28479, 1.0
[INSERT], 28495, 1.0
[INSERT], 28575, 2.0
[INSERT], 28591, 1.0
[INSERT], 28623, 1.0
[INSERT], 28687, 1.0
[INSERT], 28735, 1.0
[INSERT], 28927, 1.0
[INSERT], 29039, 1.0
[INSERT], 29119, 1.0
[INSERT], 29647, 1.0
[INSERT], 30127, 1.0
[INSERT], 30367, 1.0
[INSERT], 32239, 1.0
[INSERT], 34111, 1.0
[INSERT], 38879, 1.0
[INSERT], 59615, 1.0
[INSERT], 81791, 1.0
</pre></div></details>

<details><summary>run_logの全部</summary><div>
<pre>
[OVERALL], RunTime(ms), 4438
[OVERALL], Throughput(ops/sec), 225.3267237494367
[TOTAL_GCS_PS_Scavenge], Count, 0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 0
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.0
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 0
[TOTAL_GC_TIME], Time(ms), 0
[TOTAL_GC_TIME_%], Time(%), 0.0
[READ], Operations, 509
[READ], AverageLatency(us), 4276.255402750491
[READ], MinLatency(us), 1686
[READ], MaxLatency(us), 34623
[READ], 95thPercentileLatency(us), 27199
[READ], 99thPercentileLatency(us), 31087
[READ], Return=OK, 509
[READ], 1686, 1.0
[READ], 1700, 1.0
[READ], 1707, 1.0
[READ], 1714, 1.0
[READ], 1718, 2.0
[READ], 1722, 1.0
[READ], 1733, 2.0
[READ], 1735, 2.0
[READ], 1738, 1.0
[READ], 1742, 1.0
[READ], 1754, 1.0
[READ], 1758, 1.0
[READ], 1759, 1.0
[READ], 1772, 1.0
[READ], 1773, 1.0
[READ], 1777, 1.0
[READ], 1780, 1.0
[READ], 1784, 1.0
[READ], 1797, 1.0
[READ], 1800, 1.0
[READ], 1804, 3.0
[READ], 1806, 1.0
[READ], 1808, 1.0
[READ], 1810, 1.0
[READ], 1814, 2.0
[READ], 1816, 1.0
[READ], 1820, 1.0
[READ], 1823, 2.0
[READ], 1824, 1.0
[READ], 1825, 2.0
[READ], 1828, 1.0
[READ], 1830, 1.0
[READ], 1831, 1.0
[READ], 1832, 1.0
[READ], 1834, 2.0
[READ], 1835, 1.0
[READ], 1836, 3.0
[READ], 1837, 1.0
[READ], 1838, 3.0
[READ], 1842, 2.0
[READ], 1844, 1.0
[READ], 1845, 1.0
[READ], 1848, 1.0
[READ], 1849, 2.0
[READ], 1852, 1.0
[READ], 1854, 1.0
[READ], 1855, 1.0
[READ], 1856, 2.0
[READ], 1858, 2.0
[READ], 1859, 1.0
[READ], 1861, 1.0
[READ], 1863, 1.0
[READ], 1864, 1.0
[READ], 1865, 1.0
[READ], 1866, 1.0
[READ], 1871, 2.0
[READ], 1872, 2.0
[READ], 1873, 1.0
[READ], 1874, 1.0
[READ], 1876, 1.0
[READ], 1877, 1.0
[READ], 1878, 1.0
[READ], 1879, 4.0
[READ], 1880, 4.0
[READ], 1881, 2.0
[READ], 1882, 3.0
[READ], 1883, 1.0
[READ], 1884, 2.0
[READ], 1885, 1.0
[READ], 1888, 1.0
[READ], 1889, 1.0
[READ], 1890, 1.0
[READ], 1892, 1.0
[READ], 1894, 1.0
[READ], 1899, 2.0
[READ], 1900, 1.0
[READ], 1903, 2.0
[READ], 1905, 1.0
[READ], 1911, 1.0
[READ], 1912, 1.0
[READ], 1915, 1.0
[READ], 1918, 1.0
[READ], 1919, 1.0
[READ], 1921, 1.0
[READ], 1925, 1.0
[READ], 1926, 1.0
[READ], 1927, 1.0
[READ], 1929, 1.0
[READ], 1932, 1.0
[READ], 1934, 1.0
[READ], 1938, 1.0
[READ], 1939, 1.0
[READ], 1941, 2.0
[READ], 1943, 1.0
[READ], 1944, 1.0
[READ], 1946, 1.0
[READ], 1956, 1.0
[READ], 1957, 1.0
[READ], 1958, 1.0
[READ], 1967, 1.0
[READ], 1968, 1.0
[READ], 1973, 1.0
[READ], 2000, 1.0
[READ], 2005, 1.0
[READ], 2007, 1.0
[READ], 2041, 1.0
[READ], 2051, 1.0
[READ], 2061, 1.0
[READ], 2081, 1.0
[READ], 2113, 1.0
[READ], 2125, 1.0
[READ], 2333, 1.0
[READ], 2615, 1.0
[READ], 2629, 1.0
[READ], 2641, 1.0
[READ], 2645, 1.0
[READ], 2647, 1.0
[READ], 2661, 2.0
[READ], 2663, 1.0
[READ], 2665, 1.0
[READ], 2667, 1.0
[READ], 2677, 1.0
[READ], 2683, 1.0
[READ], 2697, 2.0
[READ], 2699, 1.0
[READ], 2701, 1.0
[READ], 2703, 3.0
[READ], 2705, 2.0
[READ], 2711, 1.0
[READ], 2713, 2.0
[READ], 2715, 1.0
[READ], 2725, 2.0
[READ], 2729, 1.0
[READ], 2731, 3.0
[READ], 2733, 2.0
[READ], 2735, 2.0
[READ], 2739, 1.0
[READ], 2741, 2.0
[READ], 2743, 1.0
[READ], 2745, 7.0
[READ], 2747, 2.0
[READ], 2751, 2.0
[READ], 2753, 2.0
[READ], 2755, 1.0
[READ], 2757, 1.0
[READ], 2759, 2.0
[READ], 2761, 6.0
[READ], 2763, 1.0
[READ], 2767, 2.0
[READ], 2769, 4.0
[READ], 2771, 2.0
[READ], 2773, 3.0
[READ], 2775, 2.0
[READ], 2777, 4.0
[READ], 2779, 5.0
[READ], 2781, 2.0
[READ], 2783, 3.0
[READ], 2785, 1.0
[READ], 2787, 5.0
[READ], 2789, 6.0
[READ], 2791, 6.0
[READ], 2793, 8.0
[READ], 2795, 4.0
[READ], 2797, 3.0
[READ], 2799, 4.0
[READ], 2801, 3.0
[READ], 2803, 2.0
[READ], 2805, 2.0
[READ], 2807, 4.0
[READ], 2809, 2.0
[READ], 2811, 1.0
[READ], 2813, 4.0
[READ], 2815, 1.0
[READ], 2817, 4.0
[READ], 2819, 2.0
[READ], 2821, 1.0
[READ], 2823, 2.0
[READ], 2825, 6.0
[READ], 2827, 4.0
[READ], 2829, 4.0
[READ], 2831, 4.0
[READ], 2833, 3.0
[READ], 2835, 5.0
[READ], 2837, 3.0
[READ], 2839, 2.0
[READ], 2841, 4.0
[READ], 2843, 5.0
[READ], 2847, 1.0
[READ], 2849, 1.0
[READ], 2851, 2.0
[READ], 2853, 7.0
[READ], 2855, 2.0
[READ], 2857, 3.0
[READ], 2859, 6.0
[READ], 2861, 5.0
[READ], 2863, 2.0
[READ], 2865, 3.0
[READ], 2867, 1.0
[READ], 2869, 1.0
[READ], 2871, 3.0
[READ], 2875, 2.0
[READ], 2877, 2.0
[READ], 2879, 5.0
[READ], 2883, 2.0
[READ], 2887, 2.0
[READ], 2889, 3.0
[READ], 2893, 1.0
[READ], 2895, 2.0
[READ], 2897, 2.0
[READ], 2899, 2.0
[READ], 2901, 1.0
[READ], 2903, 2.0
[READ], 2905, 1.0
[READ], 2907, 3.0
[READ], 2911, 3.0
[READ], 2915, 3.0
[READ], 2919, 1.0
[READ], 2927, 1.0
[READ], 2929, 1.0
[READ], 2931, 1.0
[READ], 2933, 1.0
[READ], 2939, 3.0
[READ], 2941, 1.0
[READ], 2943, 2.0
[READ], 2947, 1.0
[READ], 2949, 1.0
[READ], 2957, 1.0
[READ], 2961, 2.0
[READ], 2969, 1.0
[READ], 2973, 1.0
[READ], 2991, 1.0
[READ], 2995, 3.0
[READ], 2997, 1.0
[READ], 3001, 2.0
[READ], 3005, 1.0
[READ], 3015, 1.0
[READ], 3027, 2.0
[READ], 3033, 1.0
[READ], 3037, 1.0
[READ], 3045, 1.0
[READ], 3061, 1.0
[READ], 3067, 1.0
[READ], 3069, 1.0
[READ], 3071, 1.0
[READ], 3075, 1.0
[READ], 3079, 1.0
[READ], 3087, 1.0
[READ], 3097, 2.0
[READ], 3103, 1.0
[READ], 3109, 1.0
[READ], 3113, 1.0
[READ], 3121, 1.0
[READ], 3129, 1.0
[READ], 3141, 1.0
[READ], 3147, 1.0
[READ], 3165, 1.0
[READ], 3179, 2.0
[READ], 3195, 1.0
[READ], 3213, 2.0
[READ], 3283, 1.0
[READ], 3303, 1.0
[READ], 3657, 1.0
[READ], 4351, 1.0
[READ], 4495, 1.0
[READ], 4575, 1.0
[READ], 4591, 1.0
[READ], 4603, 1.0
[READ], 4691, 1.0
[READ], 5115, 1.0
[READ], 12911, 1.0
[READ], 21327, 1.0
[READ], 25567, 1.0
[READ], 26415, 1.0
[READ], 26671, 1.0
[READ], 26783, 1.0
[READ], 27167, 1.0
[READ], 27199, 1.0
[READ], 27359, 1.0
[READ], 28431, 1.0
[READ], 28447, 1.0
[READ], 28623, 1.0
[READ], 28735, 1.0
[READ], 29039, 2.0
[READ], 29327, 1.0
[READ], 29343, 1.0
[READ], 29679, 1.0
[READ], 29695, 1.0
[READ], 29855, 1.0
[READ], 30191, 1.0
[READ], 30303, 1.0
[READ], 30351, 1.0
[READ], 30447, 1.0
[READ], 30607, 1.0
[READ], 30671, 1.0
[READ], 31071, 1.0
[READ], 31087, 1.0
[READ], 31759, 1.0
[READ], 31839, 1.0
[READ], 32175, 1.0
[READ], 32863, 1.0
[READ], 34623, 1.0
[CLEANUP], Operations, 1
[CLEANUP], AverageLatency(us), 3607.0
[CLEANUP], MinLatency(us), 3606
[CLEANUP], MaxLatency(us), 3607
[CLEANUP], 95thPercentileLatency(us), 3607
[CLEANUP], 99thPercentileLatency(us), 3607
[CLEANUP], 3607, 1.0
[UPDATE], Operations, 491
[UPDATE], AverageLatency(us), 4336.232179226069
[UPDATE], MinLatency(us), 1911
[UPDATE], MaxLatency(us), 90559
[UPDATE], 95thPercentileLatency(us), 26735
[UPDATE], 99thPercentileLatency(us), 31967
[UPDATE], Return=OK, 491
[UPDATE], 1911, 1.0
[UPDATE], 1914, 1.0
[UPDATE], 1916, 1.0
[UPDATE], 1918, 1.0
[UPDATE], 1929, 1.0
[UPDATE], 1939, 1.0
[UPDATE], 1941, 1.0
[UPDATE], 1945, 1.0
[UPDATE], 1948, 1.0
[UPDATE], 1953, 1.0
[UPDATE], 1955, 1.0
[UPDATE], 1960, 2.0
[UPDATE], 1961, 2.0
[UPDATE], 1967, 1.0
[UPDATE], 1968, 2.0
[UPDATE], 1977, 1.0
[UPDATE], 1980, 1.0
[UPDATE], 1988, 1.0
[UPDATE], 1991, 1.0
[UPDATE], 1992, 1.0
[UPDATE], 1999, 2.0
[UPDATE], 2001, 1.0
[UPDATE], 2002, 1.0
[UPDATE], 2004, 1.0
[UPDATE], 2005, 1.0
[UPDATE], 2006, 3.0
[UPDATE], 2008, 1.0
[UPDATE], 2009, 2.0
[UPDATE], 2010, 1.0
[UPDATE], 2011, 1.0
[UPDATE], 2012, 1.0
[UPDATE], 2014, 1.0
[UPDATE], 2015, 1.0
[UPDATE], 2016, 3.0
[UPDATE], 2017, 4.0
[UPDATE], 2018, 2.0
[UPDATE], 2019, 1.0
[UPDATE], 2020, 3.0
[UPDATE], 2021, 1.0
[UPDATE], 2022, 1.0
[UPDATE], 2023, 1.0
[UPDATE], 2024, 3.0
[UPDATE], 2025, 2.0
[UPDATE], 2026, 2.0
[UPDATE], 2027, 3.0
[UPDATE], 2028, 4.0
[UPDATE], 2029, 2.0
[UPDATE], 2030, 2.0
[UPDATE], 2031, 6.0
[UPDATE], 2032, 3.0
[UPDATE], 2033, 3.0
[UPDATE], 2034, 2.0
[UPDATE], 2035, 5.0
[UPDATE], 2036, 1.0
[UPDATE], 2037, 1.0
[UPDATE], 2038, 9.0
[UPDATE], 2039, 1.0
[UPDATE], 2040, 2.0
[UPDATE], 2041, 2.0
[UPDATE], 2042, 8.0
[UPDATE], 2043, 4.0
[UPDATE], 2044, 2.0
[UPDATE], 2045, 3.0
[UPDATE], 2046, 1.0
[UPDATE], 2047, 4.0
[UPDATE], 2049, 7.0
[UPDATE], 2051, 7.0
[UPDATE], 2053, 3.0
[UPDATE], 2055, 3.0
[UPDATE], 2057, 11.0
[UPDATE], 2059, 3.0
[UPDATE], 2061, 2.0
[UPDATE], 2063, 2.0
[UPDATE], 2065, 3.0
[UPDATE], 2067, 3.0
[UPDATE], 2069, 4.0
[UPDATE], 2071, 4.0
[UPDATE], 2073, 8.0
[UPDATE], 2075, 2.0
[UPDATE], 2077, 4.0
[UPDATE], 2079, 3.0
[UPDATE], 2081, 3.0
[UPDATE], 2083, 4.0
[UPDATE], 2085, 3.0
[UPDATE], 2087, 5.0
[UPDATE], 2089, 4.0
[UPDATE], 2091, 2.0
[UPDATE], 2093, 3.0
[UPDATE], 2095, 1.0
[UPDATE], 2097, 2.0
[UPDATE], 2099, 2.0
[UPDATE], 2101, 4.0
[UPDATE], 2103, 1.0
[UPDATE], 2105, 3.0
[UPDATE], 2107, 1.0
[UPDATE], 2109, 2.0
[UPDATE], 2111, 3.0
[UPDATE], 2113, 4.0
[UPDATE], 2115, 1.0
[UPDATE], 2117, 3.0
[UPDATE], 2119, 4.0
[UPDATE], 2121, 5.0
[UPDATE], 2123, 6.0
[UPDATE], 2125, 2.0
[UPDATE], 2127, 3.0
[UPDATE], 2129, 1.0
[UPDATE], 2131, 2.0
[UPDATE], 2133, 2.0
[UPDATE], 2135, 1.0
[UPDATE], 2137, 1.0
[UPDATE], 2139, 3.0
[UPDATE], 2141, 5.0
[UPDATE], 2143, 5.0
[UPDATE], 2145, 1.0
[UPDATE], 2147, 2.0
[UPDATE], 2149, 1.0
[UPDATE], 2151, 2.0
[UPDATE], 2153, 2.0
[UPDATE], 2157, 3.0
[UPDATE], 2159, 7.0
[UPDATE], 2161, 1.0
[UPDATE], 2163, 2.0
[UPDATE], 2165, 3.0
[UPDATE], 2167, 2.0
[UPDATE], 2169, 3.0
[UPDATE], 2171, 4.0
[UPDATE], 2173, 1.0
[UPDATE], 2175, 3.0
[UPDATE], 2177, 2.0
[UPDATE], 2179, 1.0
[UPDATE], 2181, 1.0
[UPDATE], 2183, 1.0
[UPDATE], 2187, 3.0
[UPDATE], 2191, 2.0
[UPDATE], 2193, 2.0
[UPDATE], 2195, 2.0
[UPDATE], 2197, 2.0
[UPDATE], 2199, 1.0
[UPDATE], 2201, 4.0
[UPDATE], 2203, 2.0
[UPDATE], 2205, 2.0
[UPDATE], 2209, 2.0
[UPDATE], 2211, 1.0
[UPDATE], 2215, 2.0
[UPDATE], 2219, 1.0
[UPDATE], 2221, 1.0
[UPDATE], 2225, 1.0
[UPDATE], 2227, 1.0
[UPDATE], 2229, 2.0
[UPDATE], 2231, 2.0
[UPDATE], 2233, 1.0
[UPDATE], 2235, 1.0
[UPDATE], 2245, 4.0
[UPDATE], 2247, 1.0
[UPDATE], 2249, 1.0
[UPDATE], 2251, 1.0
[UPDATE], 2257, 2.0
[UPDATE], 2261, 1.0
[UPDATE], 2263, 1.0
[UPDATE], 2265, 1.0
[UPDATE], 2267, 1.0
[UPDATE], 2271, 2.0
[UPDATE], 2273, 2.0
[UPDATE], 2281, 1.0
[UPDATE], 2287, 3.0
[UPDATE], 2295, 1.0
[UPDATE], 2297, 1.0
[UPDATE], 2301, 2.0
[UPDATE], 2303, 2.0
[UPDATE], 2305, 2.0
[UPDATE], 2311, 1.0
[UPDATE], 2313, 1.0
[UPDATE], 2317, 2.0
[UPDATE], 2319, 3.0
[UPDATE], 2321, 1.0
[UPDATE], 2325, 2.0
[UPDATE], 2327, 2.0
[UPDATE], 2329, 1.0
[UPDATE], 2333, 1.0
[UPDATE], 2335, 1.0
[UPDATE], 2341, 2.0
[UPDATE], 2343, 1.0
[UPDATE], 2345, 1.0
[UPDATE], 2351, 2.0
[UPDATE], 2357, 1.0
[UPDATE], 2359, 1.0
[UPDATE], 2361, 2.0
[UPDATE], 2363, 4.0
[UPDATE], 2371, 1.0
[UPDATE], 2379, 1.0
[UPDATE], 2387, 2.0
[UPDATE], 2411, 1.0
[UPDATE], 2417, 1.0
[UPDATE], 2439, 1.0
[UPDATE], 2445, 1.0
[UPDATE], 2451, 1.0
[UPDATE], 2457, 1.0
[UPDATE], 2461, 1.0
[UPDATE], 2485, 1.0
[UPDATE], 2487, 1.0
[UPDATE], 2591, 1.0
[UPDATE], 2621, 1.0
[UPDATE], 2625, 1.0
[UPDATE], 2723, 1.0
[UPDATE], 2739, 1.0
[UPDATE], 3703, 1.0
[UPDATE], 3741, 1.0
[UPDATE], 3865, 1.0
[UPDATE], 3911, 1.0
[UPDATE], 3949, 1.0
[UPDATE], 4057, 1.0
[UPDATE], 4131, 1.0
[UPDATE], 4175, 1.0
[UPDATE], 19503, 1.0
[UPDATE], 22079, 1.0
[UPDATE], 22143, 1.0
[UPDATE], 22351, 1.0
[UPDATE], 22543, 1.0
[UPDATE], 25023, 1.0
[UPDATE], 25231, 1.0
[UPDATE], 25519, 1.0
[UPDATE], 26095, 1.0
[UPDATE], 26255, 1.0
[UPDATE], 26319, 1.0
[UPDATE], 26383, 1.0
[UPDATE], 26559, 1.0
[UPDATE], 26735, 1.0
[UPDATE], 26863, 1.0
[UPDATE], 27551, 1.0
[UPDATE], 27663, 1.0
[UPDATE], 27743, 1.0
[UPDATE], 27855, 1.0
[UPDATE], 27935, 1.0
[UPDATE], 27983, 1.0
[UPDATE], 28015, 1.0
[UPDATE], 28127, 1.0
[UPDATE], 28959, 1.0
[UPDATE], 29071, 1.0
[UPDATE], 29647, 1.0
[UPDATE], 30495, 1.0
[UPDATE], 30991, 1.0
[UPDATE], 31023, 1.0
[UPDATE], 31167, 1.0
[UPDATE], 31215, 1.0
[UPDATE], 31279, 1.0
[UPDATE], 31407, 1.0
[UPDATE], 31967, 1.0
[UPDATE], 32031, 1.0
[UPDATE], 32095, 1.0
[UPDATE], 33055, 1.0
[UPDATE], 35135, 1.0
[UPDATE], 90559, 1.0
</pre></div></details>

## DhrystoneとWhetstoneを動かす

buildrootのパッケージにDhrystoneとWhetstoneがあったので，追加してbuild，FPGA上のRocket Chipsの上で動かしてみました．

```
# dhrystone

Dhrystone Benchmark, Version 2.1 (Language: C)

Program compiled without 'register' attribute

Please give the number of runs through the benchmark: 10000000
...
Microseconds for one run through Dhrystone:    0.6
Dhrystones per Second:                      1587301.6
```

```
# whetstone 100000

Loops: 100000, Iterations: 1, Duration: 18 sec.
C Converted Double Precision Whetstones: 555.6 MIPS
```