Home

ハード編

ハード編(補足)

MRESの論理改善

楕円暗号では連続でモンゴメリ乗算器を利用することが多い、DPレジスタをカウントアップするXCOUNTは、CMPと重複割り当てになっていてCMPによってカウントアップされてしまう副作用が影響するようになった。 CMP後、MRES命令を出せばいいのだが、MRES信号を優先する論理にすればCMPとMRESを同時できて 性能向上および、マイクロコードの節約が可能となる。


1サイクルで比較して減算の性能

1サイクルで比較して減算することを可能とするためマイクロコードの1サイクルが僅かに長くなっている。 それによる性能低下を問題にする人もあるかもしれない。 しかしRSA暗号や楕円暗号の性能を決める主要因となっているのはモンゴメリ乗算器のサイクルです。 ただマイクロコードの1サイクルとモンゴメリ乗算器のサイクルの比率は整数でないと難しいので、 比率を変更できなければ、性能が低下するということではあります。 ICF3では1対2でしたが、1対4にする案もありました。 1対4が採用されなかった理由はディレイの問題ではなく1対2でもIBMのメインフレームの性能を上回るからでした。


RSA 4096bitについて

現状の1024bitの演算器で4096bitができる可能性が出てきました。
試作がほぼ完成
偶然できたOR演算器がここで活躍します。


OpenICF3の改良

突貫工事で開発したICF3ですが、良くできていますが、まだ改善の余地のある部分は、 あるようで、いくつか考えているものを列挙します。 検討してやめる可能性が大きいものが含まれています。 これらはOpenICF3 Ver2として採用する予定で、Ver1は1999年のICF3と同一とします。

  • CALLを1段から2~4段に
  • 自身のアドレスに分岐する場合は、遅延分岐しない。
  • 制御命令コードを4bitから5btiに
  • 1024bit固定のコードではなくn bitの演算器用のコードの書き方
  • 演算器の幅(1024bit)の2倍、4倍の演算を用意にする機能

マイクロコード領域を増量

マイクロコードは512ワードまで格納できるが、プログラムカウンタを1bit増やすだけで、768ワードに増量可能。 ただし512~767ワードの領域へ絶対ジャンプすることはできない。 相対ジャンプは可能なので大きなサブルーチンを格納すれば有効に利用できる。