FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

自作CPUのOoO発行の様子を計測するための仕組みの作成 (2. 各コンフィグレーションでの統計情報の取得)

前回の続き。もうちょっと修正して、統計情報がきちんと出るようにした。

alu[0]  53 / 245, lsu[0]  81 / 269, bru  66 / 207, csu   0 /   0, fpu[0]   0 /   0,   200 /   721 = 0.277
alu[0]  31 / 289, lsu[0]  59 / 228, bru  57 / 229, csu   0 /   0, fpu[0]   0 /   0,   147 /   746 = 0.197
alu[0]  54 / 277, lsu[0]  84 / 257, bru  62 / 225, csu   0 /   0, fpu[0]   0 /   0,   200 /   759 = 0.264
alu[0]  20 / 156, lsu[0]  28 / 141, bru  16 /  79, csu   0 /   0, fpu[0]   0 /   0,    64 /   376 = 0.170
alu[0]  25 / 170, lsu[0]  41 / 135, bru  12 /  85, csu   0 /   0, fpu[0]   0 /   0,    78 /   390 = 0.200
======================================
Final rate 0039142 / 0226009 = 0.173
======================================

Tinyコンフィグレーションで、全体的に17%の命令がアウト・オブ・オーダで発行できているという統計情報になった。最終的にこれはサイクル精度シミュレータで比較する必要がありそうだ。

一方で、Standardコンフィグレーションでは、全体の22%程度がアウト・オブ・オーダで発行できているという結果になっている。命令のウィンドウが大きくなったので、その分アウト・オブ・オーダでの発行能力が上がっていると考えるべきか。

alu[0]  96 / 394, alu[1]  44 / 211, lsu[0]  90 / 542, lsu[1]  42 / 122, bru  47 / 341, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   319 /  1610 = 0.198
alu[0]  97 / 397, alu[1]  30 / 229, lsu[0]  93 / 532, lsu[1]  41 /  98, bru  44 / 356, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   305 /  1612 = 0.189
alu[0]  84 / 351, alu[1]  31 / 198, lsu[0]  89 / 512, lsu[1]  28 /  91, bru  55 / 376, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   287 /  1528 = 0.188
alu[0]  82 / 260, alu[1]  18 / 126, lsu[0] 113 / 342, lsu[1]  21 /  47, bru  65 / 271, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   299 /  1046 = 0.286
alu[0] 112 / 371, alu[1]  22 / 214, lsu[0] 132 / 608, lsu[1]  54 / 135, bru  52 / 385, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   372 /  1713 = 0.217
alu[0]  52 / 209, alu[1]  18 / 143, lsu[0]  63 / 237, lsu[1]   5 /   6, bru  50 / 206, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   188 /   801 = 0.235
alu[0]  82 / 306, alu[1]  31 / 177, lsu[0]  69 / 388, lsu[1]  15 /  61, bru  45 / 269, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   242 /  1201 = 0.201
alu[0]  58 / 246, alu[1]  54 / 181, lsu[0]  72 / 323, lsu[1]  41 /  93, bru  30 / 167, csu   0 /   0, fpu[0]   0 /   0, fpu[1]   0 /   0,   255 /  1010 = 0.252
======================================
Final rate 0055166 / 0256007 = 0.215
======================================