|
ハード編(補足)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演算器がここで活躍します。 RSA 4096bitを高速にする方法現状の1024bitの演算器でRSA 4096bitを演算させると、かなり遅くなる。 それでも、多くの用途では実用上なんとかなるように思っている。 しかしRSA 4096bitを高速に処理したい用途に対応するには、どうしたらいいのかというと、 単純に現状の演算器を2倍の2048bitにするのが簡単。超高速にRSA 4096bitの演算が可能になる。 あまり正確な数字ではないかもしれないが現状の1024bitの演算器でRSA 4096bitをするなら800msだが 演算器を2倍にすると50msくらいで演算が可能になる。 OpenICF3の改良突貫工事で開発したICF3ですが、良くできていますが、まだ改善の余地のある部分は、 あるようで、いくつか考えているものを列挙します。 検討してやめる可能性が大きいものが含まれています。 これらはOpenICF3 Ver2として採用する予定で、Ver1は1999年のICF3と同一とします。
マイクロコード領域を増量マイクロコードは512ワードまで格納できるが、プログラムカウンタを1bit増やすだけで、768ワードに増量可能。 ただし512~767ワードの領域へ絶対ジャンプすることはできない。 相対ジャンプは可能なので大きなサブルーチンを格納すれば有効に利用できる。 モンゴメリ乗算器の連結改造ICF3には1024bitのモンゴメリ乗算器が2個ある。
これを連結して1個の2048bitのモンゴメリ乗算器にする改造。
b=2のモンゴメリ乗算器ならではのアイディアになるが、厳しいかもしれないが、可能性はありそう。
I=160命令命令コードの中でI=160は、ほとんど使われていないため、何か別の効率的な命令に置き換えたほうがいい。 例えばBCF命令はCF=1のとき分岐だが、CF=0のとき分岐する命令にしてもいいかもしれない。 モンゴメリ乗算器の周波数のみ1.5倍にする改造2017年10月1日追加 |