人気ブログランキング | 話題のタグを見る

雑多な趣味の記録帳

tom01h.exblog.jp

V-scale に新乗算・除算器を組み込んだ

新しい乗算・除算器を組み込んで、V-scale chip で FPGA の合成をしてみました。左が修正前、右が修正後です。500LUT 増加ってどのくらいなんだろう?割合でみると結構大きいですね。分母はコアじゃなくてチップですからねぇ。
V-scale に新乗算・除算器を組み込んだ_f0054075_22380150.pngV-scale に新乗算・除算器を組み込んだ_f0054075_22380145.png

そして、ワーストスラックは若干ながら改善していました。確かに mul_div が始点だったんですが、FF出しに見えたんだけどなぁ。
CoreMark も再測定しました。ちなみに 4サイクル乗算器はインチキ RTL 記述です。
  • オリジナル IPC=0.45 1.48CMK/MHz
  • 4サイクル乗算器 IPC=0.77 2.54CMK/MHz
  • 新演算器 IPC=0.73 2.43CMK/MHz
除算の高速化の影響よりも、乗算+1の影響のほうが大きいみたいですね。あとは除算用のプレシフトかな?ノーマライザ入れておけば、FPU積み込む事があったら使えそうだし。
よく見ると+1サイクルストールしています。まぁでも、これは必要なストールかな。
[追記 モジュール別のサイズを見つけました。synth後、imple前の物ですけど。ば、倍増か…]
[追記2 それ以前にラッチ推定があったので直しました(^^;]
変更後
+------+----------------+-----------------+------+
| |Instance |Module |Cells |
+------+----------------+-----------------+------+
|1 |top | | 5044|
|17 | vscale |vscale_core | 4485|
|18 | pipeline |vscale_pipeline | 4482|
|19 | csr |vscale_csr_file | 1567|
|20 | ctrl |vscale_ctrl | 1045|
|21 | imm_gen |vscale_imm_gen | 1|
|22 | md |vscale_mul_div | 1430|
|23 | regfile |vscale_regfile | 60|
|24 | src_a_mux |vscale_src_a_mux | 32|
|25 | src_b_mux |vscale_src_b_mux | 37|
変更前
+------+----------------+-----------------+------+
| |Instance |Module |Cells |
+------+----------------+-----------------+------+

|1 |top | | 4475|
|17 | vscale |vscale_core | 3916|
|18 | pipeline |vscale_pipeline | 3913|
|19 | csr |vscale_csr_file | 1562|
|20 | ctrl |vscale_ctrl | 1135|
|21 | imm_gen |vscale_imm_gen | 1|
|22 | md |vscale_mul_div | 777|
|23 | regfile |vscale_regfile | 60|
|24 | src_a_mux |vscale_src_a_mux | 32|
|25 | src_b_mux |vscale_src_b_mux | 37|


by tom01h | 2017-01-09 10:07