Home
2018年
2019年

7月31日 ICF3-Fの作業速度を上げるには

頭痛を止めることだが、その方法を考えるのに、既に数時間が経過している。


7月31日 ICF3-Fの開発環境が立ち上がりました

一時的に移動してきている部屋に開発環境を構築しました。 まだ故障したエアコンの部屋にあるパソコンの退避作業が残されており、開発作業ができるようになっているわけではありません。 軽い頭痛が続いている。


7月30日 一時的に別の部屋に移動

SNSと日記が書けるようにはなりました。エアコンの修理の人が来るのが8月5日です。 8月5日までに13台あったパソコンシステム退避、1日の修理で治るとして、復帰にあと数日かかる予想。 それまでICF3-Fの作業は、ほぼできない。6月末から頭痛でほとんど作業ができていない状況が続いたが、 今は、頭痛で作業が止まらない程度に頭痛というだけなので、パソコンの退避、復帰作業は、 通常の人のおおよそ5倍の時間はかかる。遠隔頭痛システムを沈黙させなければ、作業速度は、普通の人よりかなり遅い。 頭痛で数時間、寝込むことが頻繁に起きているが、その日、作業が停滞したようには見えないのです。 ICF3-Fが完成したからといって、普通の人は、それほどうれしくはないかもしれませんが、 他の国に抜かれてから悔やんでも、取り戻せない。
RSAを高速化する問題は有名で、昔から多くの研究がありました。 FPGAの性能が向上し2001年~2005年ごろにはICF3-Fが実装できるレベルにありました。 にも、かかわらず、今まで、誰も、気づけなかった。 そして、このICF3-Fの発明を、僕が誰にも譲る気がない。 そういう状況で、僕の作業が遅れることの問題を考える必要があるように思います。 頭痛が続いて体が壊れるような方法で、譲る気になるのかというと逆で、稼ぎが減るため、ますます、 ICF3-Fから、大きな利益を得ようとしなければ、ならない。当然、怒りも半端ではない。


7月29日 部屋のエアコンが故障(2)

故障したエアコンの直下にはパソコンが13台、2個のパソコン切り替え機によって、稼働しています。 エアコン修理のため、これらのパソコンを退避せねばならず、ICF3-Fの作業に、大きな遅れが発生。 配線が多数、絡み合っていて、退避、復帰の作業に時間がかかる。 あまり退避せずに修理できればいいのですが。 これから別の部屋に移転します。別の部屋に移転するまで、連絡が途切れるかも。


7月29日 部屋のエアコンが故障

エアコンの故障で、またICF3-Fの作業に遅れが。 さらに5年半前に購入したエアコンで量販店の5年保証が切れていて、泣いています。 空いている扇風機もなく8年前に活躍した太陽光発電の扇風機を使っています。 今日は天気が良く快調に扇風機が回っている。


7月29日 3で割った商を求める論理回路の誤字修正

昨日の日記の説明文に誤字がありました。(2)、(3)、(4)でFAc(m,n,cy)のcyが0になっていたので修正しました。 一昨日のプログラムは正しくcyが設定されていたので誤字です。


7月28日 3で割った商を求める論理回路を考えて証明してみた

ブログ「3で割った商を求める論理回路を考えて証明してみた」にも投稿していますが、この日記にも同様の内容を転写。

はじめに
コンピュータの内部では2進数で計算しています。最近、3進数の半導体の研究も進んでいるようです。 半導体の微細化も限界が近づいてきたため3進数にすることでチップ面積を小さくしたり、低消費電力にする方向が考えられるようになった。という理解を僕はしています。 2進数のコンピュータと接続するためには2進数を3進数に変換する効率のいい回路が必要になる。そこで3で割った商を求める論理回路を考えて証明してみました。

考えた回路の特長
回路が小さいこと。比較的、高速。一般的な除算は最上位ビットから商予測をしながら2bit/cyc程度の性能です。 この回路は最下位ビットから予測なしに直線的に解を求めます。

計算方法の説明と証明
まず3で割り切れる場合を考えます。わかりやすくするため5bitの数、X={x4 x3 x2 x1 x0}で説明します。3は2よりも大きいので商は必ず4bit以下の数になります。商をQ= {d c b a}で表します。 X は2Q + Q で表せます。つまりQを1bit左シフトした値と、Qを加算した値がXになる。1bitの全加算器(フルアダー)を FAとします。 FAのサムをFAs(m,n,cy)、キャリーをFAc(m,n,cy)とすると、2Q + Q の加算は、次のようになる。
(1) x0 = FAs(a,0,0) , cy0 = FAc(a,0,0)
(2) x1 = FAs(b,a,cy0) , cy1 = FAc(b,a,cy0)
(3) x2 = FAs(c,b,cy1) , cy2 = FAc(c,b,cy1)
(4) x3 = FAs(d,c,cy2) , cy3 = FAc(d,c,cy2)
(5) x4 = FAs(0,d,cy3)

これはQからXを求める計算方法ですが、Xはわかっている数なので、XからQを求めます。排他論理和を^の記号とすると全加算器の定義からFAs = m^n^cy です。またFAc = (m&n) | (m&cy) | (n&cy) です。

よって(1)から a = x0 , cy0 = 0

次に(2)のFAsを考えます。
x1 = b^a^cy0 = b^a
aは既知なので、b = x1^a で計算されます。bが既知になったのでcy1も計算され既知になります。

次に(3)のFAsを考えます。
x2 = c^b^cy1
b,cy1は既知なので、c = x2^b^cy1 で計算されます。cが既知になったのでcy2も計算され既知になります。

次に(4)のFAsを考えます。
x3 = d^c^cy2
c,cy2は既知なので、d = x3^c^cy2 で計算されます。

したがってXからQ = { d c b a} が計算できます。

余りがある場合は
3で割った余りを計算する方法は、良く知られています。僕のブログでも解説しています。 余りは1か2なので2の補数にして加算して3で割れる数にしておきます。商を求める計算とパイプライン的にすれば、もっと高速になります。

終わりに
5bitでの証明でしたが、一般化したn bitでも最下位bitからの計算を繰り返していくだけなので自明です。 3で割った商と余りが計算できれば2進数の値を3進数に変換することは、できると思います。


7月27日 超小型3固定除算器、考えた

昨日の日記でICF3を3進数の半導体で作ることはできそうだと言いました。 しかし2進数を3進数に変換することまで考えていませんでした。昨日、以外と難しいと思いました。 そこで超小型3固定除算器、考えてみました。 巨大な数を3で割った余りを求める方法は良く知られています。これは商を求める方法です。 この論理回路を使って2進数を3進数に変換します。 3進数の半導体のメリットを活かすためには、超小型でなければ、ならない。 そしてRSA1演算よりは高速に演算できなければならない。という要件を、多分、満たしている。 超小型3固定除算器をC言語(C++11)のプログラムにしてみた。 最下位ビットから直線的に3で割った商を計算するところが、この論理回路のポイント。 昔、東芝が逆数を演算する特許を取得しようとしたとき、これと似た方法を使っている。 東芝は特許を取得できなかったみたいだが、これはどうだろうか。誰かが特許を取得しているかの確認はしていません。 3進数を2進数に変換するのは、それほど難しくないように思います。 これでICF3-Fを3進数の半導体に実装して実用化できる可能性が見えたような気がします。

このままC++11の処理系でコンパイルできます。 実行するごとに64bitの乱数を生成して、CPUで3で割ったものと、回路で割ったものを比較します。結果が同じならX^Zは0です。


7月26日 ICF3の3進法半導体版のプロジェクト

僕はSSLアクセラレータのICF3-Fで忙しいのですが、 韓国の研究チームが大型ウエハ上でエネルギー効率の良い3進法金属酸化物半導体(MOS)を実現する手法の開発に成功 したと発表したみたいです。スラド記事
ズバリ言うとICF3のアーキテクチャは3値法でも、なんとかなりそうと感じた。
少し実際の実装イメージを考えてみたのですが、半導体上に効率良く実装できそうに見える。 ICF3-Fを3値にするプロジェクト。つまり現在、製品化に向けて開発中のクローズドなプロジェクトの3値化ということで、悩んだ末、ICF3-Fと同じクローズドにしないといけない。
そういえば、国立高専で「モンゴメリ・パイプライン」の実装の研究発表をしている論文を見かけたことがある。 高専の方でも、結構、モンゴメリの実装をやっているのですよね。
結論ですが、研究ネタには、なるだろう。非常にうまくいけば実用化の可能性があるかもしれない。 研究にはverilogシミュレータと現状のFPGAがあれば良く、学生でも可能ということが利点。 韓国の研究に全く依存せず、どこの3進数半導体でもいい。3値にすることで2048bitのRSAが1293bitになる。約63%になる。 これは3値論理にしたことで120%に膨れても、十分なメリットがあることになるが、120%の数字は全くのデマカセ。
でも、僕は先生ではない。


7月27日 2:15AM 2値、3値変換をしっかり考えてなくて修正しました。それでも大きな影響はないと思います。


7月20日 購入したFPGAでLチカ

7月6日に購入したFPGAボード(Cmod A7 35T) でLチカをやってみた。 ICF3-Fを最初に実装するボードを、これにするかは、決めていません。 今朝は体調がいい。しかし、ここ3週間で、まともに動けた日は2日くらいか。


7月19日 ICF3-FはCPUではありません

ICF3について、まだあまり知らない人向けなので、他の方は、読み飛ばしてください。 ICF3は1999年に世界一のRSA暗号の性能だった暗号LSIです。 ICF3-Fは、ICF3の専用演算器を、もっと高速な専用演算器に取り換えたものです。CPUではありません。 ICF3-VとICF3-ZはCPUです。 詳しくは、プロジェクト一覧


7月19日 眼科に行きました

また少し目が劣化したので眼科に行ってきました。 眼底写真を撮り、近くが見えにくくなったみたいですねとしか言われなかったが、 劣化の状況は、わかる範囲で把握できたのではないかと。 もう少し良くならないと、ICF3-Fの作業のスピードは落ちる。 論文など詳細に調べているわけではないが、ICF3-Fが世界初かもしれない状況で、 開発遅延を止めない国というのは、どうにかならないでしょうか。 世界初だと思っている理由は、 「分割加算」を思いつけば、 今の僕のように情報発信するので情報が入ってくるはずなので。
例えば、難問が提案され、20年間解けなかった問題が数か月の差で複数個所で解けたとするなら、 本物は1つで、他は産業スパイによる偽物である可能性が高い。
仮実装の段階で情報発信してしまうのは、ズルイと強く言われているが、 僕は世界の銀行や外務省に収めるような暗号装置を開発した経験があり、最初から産業スパイに狙われていた可能性が高い。 僕の場合は、そうせざるを得なかった、ように思っています。


7月18日 Googleの検索ランキング「PageSpeed」

GIGAZINEの記事、 Googleの検索ランキングを上げるのに重要な指標「PageSpeed」とは何なのか?  記事を読む必要はなくてGPUよりFPGAが有利になるのか?そう思う記事だった。 必ずしもFPGA(ICF3-F)が有利ということはないのですが、そういう傾向ではあるようにと思っただけです。GPUでは、複数のトランザクションを、まとめて演算するため遅延が大きくなりやすくPageSpeedに影響するのです。


7月18日 ファイル暗号ソフトの公開について

良く考えてみるとファイル暗号ソフトを自分のサイトで公開していると、 僕が標的型ウィルスを混入する可能性を考える人があるのだと思った。 僕の場合は、最初から監視されていそうだったので、気にしていなかった。 しかし、あまり監視される材料を持っているのも、問題なので、少し減らすことを考えてみた。 自分のサイトではなくてVectorで公開することにしました。 ダウンロードのページを修正しました。
暗号解読ソフトsha1benchも、Vectorでのみ公開ということに。


7月17日 暗号解読ソフトを開発したのが原因!?

定番のファイル暗号ソフト 「アタッシェケース」のVer3.5.0.0が公開されました。 僕は、このファイル暗号ソフトの解読ソフトを開発しています。 しかしGPUプログラマであれば、 解読ソフトを開発するのに1か月は、かからないでしょう。 (複数のパソコンを連動させる機能を追加したものは、もう少し開発に時間がかかるかもしれませが。) つまり僕が脅威だというなら、GPUプログラマ全員、脅威なのです。
●もう一つ!
この「アタッシェケース」も、とても長いパスワードを使えば、かなり強力に暗号化できることを考えるなら、 僕のToraToraとの違いは小さい。 僕だけを脅威とは言えないと考えます。 ちなみにToraToraはWindows標準関数のAES暗号を使っているので暗号化したいデータを丸ごとOSに渡す仕様です。

なんか日記をいっぱい書いている暇があるならICF3-Fの作業をしろと言われそうですが、 ICF3-Fの作業を開始しようとすると眠くなる仕掛けで、あきらめて日記を書きだすと一時的に治る超科学。


7月17日 量子コンピュータの公募

今日も眠らされていた感じ。満腹になると眠くなることを利用しているかのよう。 こんな体調が続くと本格的に壊れる。そうなる前にと。 IPAの量子コンピュータの公募 があったようです。量子コンピュータはRSA暗号や楕円暗号を解読できる可能性があり、そうなれば社会インフラに大きく影響する。 監視の対象となる。監視者は監視して得られた情報を有効利用する。 どんな有効利用をするのかは僕を見ればわかると思う。僕がICF3-Fを完成させるほうが、いいように思うのです。


7月16日 「RSA暗号の高速化問題」!?

そういう名前で、呼ばれているのかは、知りませんが、 僕の回答(ICF3-F分割加算)は、 高速にRSAが計算できて、FPGAでは最も実用性があると、思っている状態です。 RSAの鍵長が大きくなるとレイテンシが重要になってきますから。 演算器のみの効率で言えばICF3-Fの低基数型ではなく高基数型になるのですがRSA1署名の回路全体での評価は、 まだわからないように思っているのです。


7月16日 英国の新札にチューリング

BBC「新50ポンド札にアラン・チューリング コンピューターやAIの先駆者」
チューリングといえばチューリング賞。チューリング賞を受賞する人にとっては、その知名度が上がることになったように思います。
チューリング賞は、計算機科学分野でのノーベル賞なのだとか。
チューリングの人生を見てみると偉大なる功績を上げたにもかかわらず、 同性愛による罪で、禁錮刑の代わりに、薬品投与による「化学的去勢」を伴う保護観察処分。その2年後、自殺。
ちょっと自分の人生に見えて、しかたがない。僕の揚げ足を狙う輩に注意しようかと。 僕の発言が薬物による障害に見えるから、家宅捜査したら、大麻が出てきました、 みたいなシナリオとか、作られているかもしれない。
一昨年、亡くなった元国会議員の叔父が「大麻合法化活動」をしていました。 僕が大麻と関係することは、とてつもなく、危険だと理解しています。 つまり大麻で、あらぬ問題を作ることは、できないと思います。

昨日、頭痛が治ったかと思ったのですが、まだあまり調子が良くなくて、 「超科学的去勢」で眠らされているような感じ。感じです。 今日も1日、まったくICF3-Fの作業が進みませんでした。


7月15日 ICF3-Fの作業再開

2週間以上、頭痛が続いていましたが、1時間前くらいに、平常に近い状態に戻りました。


7月15日 ICF3-Fの技術は分割加算だけではない

技術にあまり詳しくない人もあるかと思いましたので。 「分割加算」だけでは RSA暗号の鍵長を長くすることはできないのです。 モンゴメリ乗算の アルゴリズムの式から、ICF3-Fのような低基数型を実装すると、最下位ビットから 暗号プロセッサ全体にブロードキャストする配線が必要になります。 鍵長が長くなると、このブロードキャストが間に合わなくなるのです。 このためブロードキャストが1サイクル遅れても、1サイクル早い隣接演算ブロックと接続できることが必要でした。 試行錯誤の末、うまく接続できています。


7月15日 発明されると物の値段が上がるのか?

「レンズの収差問題」がついに解決 というニュースがネット上で賑わっている。
ところで「RSA暗号の高速化問題」の論文は、昔から多数あります。 僕の「分割加算」が世界のどこかで、 既に発明されているなら、「レンズの収差問題」のようにネット上に話題になったのではないだろうかと思う。 つまり世界初な予感。僕は光学は範囲外なので公式は見てもわかりませんが、カメラ系メディアの結論を見て、 ああ、そっか、そう見られているのかと思いました。
もしかして、僕の「分割加算」も、そう思われているのかと。 この発明の特殊事情は、1999年のICF3の暗号プロセッサを、 ほぼ1人で開発した僕が発明していること。 僕はFPGAに不慣れなところはあるもののASICのLSIのI/Oの回路シミュレーションまで実務経験がある。 頭が破壊されていない限りは、そこそこな品質のものができるように思っています。 SSLアクセラレータは、万が一、バグっても事故につながる確率がかなり低い商品で、 保証に期待することがなければ、かなり安価に販売できるだろうと思っています。 (市販の基板価格を見ていて、全く無理と思う値段のものも多く、最も安価な基板の価格で、ようやくという感じ)
発明の対価が製品に無駄に上乗せされて高くなる感じを持つ人があるのかと思います。 「分割加算」の場合は、僕の最も?安価なSSLアクセラレータを、ご購入いただくだけでいいという方向にならないだろうか。
RSAは鍵長が2倍になると計算量が8倍になって厳しくなるが、 僕の「分割加算」は、RSAの鍵長が2倍になれば、演算器を単純に2倍にするだけで2倍の性能になるのでRSAの延命に使えるのではと思っています。 また大きな数を使う量子コンピュータなどに対する耐性の高い新しい公開鍵暗号の実用化に役立つ可能性など、 社会に貢献するように思っています。

2019年7月15日 8:23AM 初回、ちょっと雑に書きすぎたので、もう少し丁寧に書き直しました。

SSLアクセラレータの商品が、どういうものか、ご存知ない方もあるかと思いましたので説明します。 青色LEDのように白色を作りだすのに必要不可欠というようなことはなく、 サーバーのCPUを新しいものに乗せ換えるとか、SSL演算サーバーを、もっと高性能なものに買い替えるなど、代替できてしまいます。 これらの代替方法よりも、ずっと安ければ多数売れることもあるでしょう。 最初のICF3-FはUSBの小型のやつなので、サーバーのPCIeスロットの空きがない場合でも性能増強できるメリットはあるかもしれない。 別途、SSL演算サーバーを置くことなしにローカルのサーバーで演算できるメリットなど。 サーバーの建物代の関係で、高くても売れるところを知っている人は、得をできるのかも。 将来、必要な鍵長が長くなって対応にかかるコストが増加してきたとき、「分割加算」のSSLアクセラレータ(ICF3-F)が役に立つと思われます。

なを出資は募っておりません。・・・破壊活動が止まらないか・・・
今日も1日、頭痛で作業が全くできていないのでした。


7月14日 頭痛で全く作業できない

この2週間で1日分くらいしか作業ができていない。


7月13日 新しいLatticeのFPGA

目を開けるのが辛く脳内の痺れと頭痛が同時に軽度に続いている。3っつ合わせると作業不能状態だ。 もう3日以上、作業ができていない。新しいLatticeのFPGA、MachXO3Dが目に止まった。 AES、SHA、ECCなど一通りの機能を持ったハードが組み込まれたもののようだ。 あまり僕に関係しそうではないけど、知っておいていいか。


7月12日 僕1人で利権と開発と販売が可能

僕が100%の株を持っている、僕が社長の会社、株式会社iCanalがあります。 ICF3-Fが、それほど儲かりそうでなければ、個人事業になる可能性もありますけど。 利権と開発と販売と僕1人でいいわけですから、あまり儲かる計算ができなくても、開発が滞ることはないので、 僕がやるとICF3-F(SSLアクセラレータ)は完成しやすい。 従来SSLアクセラレータと違いUSBで小型のものなのでSSLアクセラレータ専用マシン無しの運用で、 効率を上げられるかもしれません。 ICF3-Fを急ぎたいのです。


7月11日 ICF3-Fの進捗ゼロ

24時間、まったく作業が進んでいない。原因は眠らされていることか。 タブレットの文字や、基板の文字が読めなくなっている。 正しくは手元の距離では目の焦点を合わせることができなくなった。不便。 そうなってから、どのくらいだろうか、1カ月になるか。 そのくらい長い間、調子が悪いのは、あまり回復しないことが多い。
1983年ごろ大ヒットした アニメ「北斗の拳」 (リンク先はWiki)を子供の頃、良く見ていた。 諸設定の北斗神拳の1行目の途中から。

エネルギーで人間の体に数多く存在するといわれる「経絡秘孔」を突くことで、 人体を内部から破壊することを基本とする一撃必殺の拳法。

そんなアニメを思い出した。ちなみにアニメは少年向けですが、大ヒットに値するほど良かったかと。


7月10日 分割加算はRNSと同じか?

違うと思っています。RNSの論文は多く見かけています。細部まで論文に書かれているものは少ない。 RNSはRedundant Number Systemなので論文に乗法が定義されていたり、2bitの冗長性を定義するものがあります。 東芝の論文にRNS(Residue Number System) がありますが、各桁で余算をしているように見えていますが、 僕の分割加算では、そういう演算は不要です。 累積加算のレジスタ1つを1bitの冗長性で表現して、普通の乗算結果を累積加算しています。


7月9日 ICF3-Fの作業を無理無理やってます

昨日は眠気が増大して寝ていましたが、今日は頭痛。 設計はできないが、デバッグはできると思って無理無理やっています。 8bit CPUをLWZetaから2倍の性能のNapalmに置き換える作業。 LWZetaで動いた回路が動かない。 Napalmでは初期化されていないレジスタを勝手に読み込んでハザードが全体に広まったことが原因だった。 レジスタを初期化したら正しく動作した。 普通は15分くらいの仕事だろうか。今の僕では半日かかる。ICF3-Fの完成が遅れる問題を!


7月8日 ノーヘル賞だね

僕が分割加算のアルゴリズムの話をインターネット上でしているので、 親が何か、期待したらしく「ノーヘル賞だね」と言ってくるので、 「いや、ノーベル賞の授賞者を見ると、CPUの実装や、演算器の実装で受賞している人はいない」と、まともに答えた。 もう一度、親の発音を思い出すと「脳減る症」だということに気づいて、大爆笑してしまった。 発明すると「脳減る症」になる問題。「脳減る症」が未然に防がれない、日本社会が、疎ましい。


7月6日 分割加算のアルゴリズムはFPGA向き

昨日の日記でRSAのアルゴリズムの話をしました。 中国人剰余定理やモンゴメリ乗算は実装手段にあまり依存しないアルゴリズムです。 それに続けて僕の分割加算のアルゴリズムを 書いたため違和感を持った人がいたようです。分割加算はFPGAやASICでモンゴメリ乗算の低基数の場合に高い効果を発揮します。 この日記でも何度か書いていますが、RSAを高速化する方法として、モンゴメリ乗算の高基数型と低基数型があります。 高基数型は乗算器をパイプライン化して高い周波数を出せるため高速です。 ただ乗算器にデータを途切れなく流し込んでRSAの演算結果にできる制御論理が大きくなりやすい。実装環境毎の依存性も大きく開発コストが大きいといったデメリットがあります。 一方、低基数型のICF3-Fはパイプラインはないものの、データのローカリティが高く作りやすい。実装環境毎の依存性が小さく開発コストが小さい。 鍵長に比例した演算ゲートを投入することで性能を上げることができる。デメリットは高基数型と比較して乗算器の周波数を上げられないため性能が出にくい。
楕円暗号のように鍵長が小さいうちは高基数型が有利ですが、RSAのように鍵長が長くなってくれば低基数型になってくるかもしれない。 高基数は演算器の効率は高いのですが、制御論理も大きくなってしまうため、演算器の性能だけでなく、RSA署名1演算の全工程ができる実装で比較しなければいけません。


7月6日 FPGAボード(Cmod A7)を購入

長い間続いた頭痛も収まり、秋葉原の有名通販でFPGAボードCmod A7-35T(XC7A35T-1CPG236C)を購入しました。 でもCmod A7-35TにICF3-Fを押し込むのは、 ちょっと厳しいかなと思っています。 入らない場合はCmod S7(XCS25-1CSGA225C)にして2つあるモンゴメリ乗算器を1つにすれば入るかなと。 モンゴメリ乗算器1個だと性能のほうは、ちょっと心配かも。


7月5日 ICF3-F作業再開するも、進まない

頭痛が治ったかと思ったら、頭痛の種類が変わっただけでした。 苦痛は軽いのですが、別の部分が重くなったというか、作業できるほどではなくて、弱りました。 わかっている人もあると思いますが、何故こんなマイナスにしかならないことを書くのかです。 どのくらいICF3-Fの作業が遅れたのかを、記録して後から、考えるためです。
中国人剰余定理のアルゴリズムは、RSAの理論的な計算量を約4分の一近くまで減らします。
モンゴメリ乗算のアルゴリズムは計算機が不得手な除算を乗算に変換してRSAの計算を加速します。
そして
僕の分割加算のアルゴリズムは大きな数の加算キャリーを分割して並列に加算できるようにすることでRSAの計算をさらに加速します。
何が言いたいかといえば、早くICF3-Fを実装して、その効果を検証したくて、しかたがない状態なのです。


7月4日 辞めた社員による機密情報の漏洩が話題に

僕の開発環境についていえば、ずっと僕1人でやっているので、大丈夫です。


7月4日 ICF3-F作業再開

5日間つづいた頭痛から、やっと解放されたようです。単に、おさらいです。読む必要ありません。 ICF3-Fの通信論理で使っている8bit CPUをLWZetaからNapalmに置き換えます。 LWZetaは1命令4サイクルなので1バイトの転送を平均12.5命令で処理しなければいけません。 間接ジャンプを上手く利用することで可能な範囲ではありました。 しかし1命令2サイクルのNapalmでは1バイトの転送を平均25命令で処理すれば良く、かなり楽になるのです。


7月4日 どうして過去を取り返そうとするのか、それが伝わっていない

ある人に、そう言われた。決定的な理由は、体が半壊していること。 電車で1時間の場所に行って、1時間歩いて、電車で帰ると、体中が筋肉痛で、次の日か、その次の日まで動けなくなる。 電車で1時間の場所に行くだけで運が悪ければ、頭が激しく痛み、引き返して家で寝ていなければならない。 退職直後から、徐々に悪化して、現在では、前述の通りの体になっている。 普通に働いて稼ぐことは、全く無理だからです。 そして、そのことは某大企業の問題だと、僕は考えているからです。 実際、関東の外に出たことは10年以上ない。東京に出ることも年に数えるほどしかない。


7月3日 頭痛が少し治りました

連続で日記を書いてすいません。 頭痛が続いてると日記に書いたので、治ったことを書かないと、 ご心配する方もいらっしゃると思いましたので、報告いたします。 少し治りました。まだ30分くらいしか経過していないので、実は、まだわからない。 一昨日の日記で左耳が聞こえなくなったときの話を書いたのですが、 現在も周波数が交錯していると書いたところ、そこまで酷くはないだろうとの指摘がありました。
正確に書きます。 ほとんど聞こえなくなった時点からの回復経過で、かなり酷い周波数の交錯がありました。 現在は、音量は8割に減り、雑音が1割入って、音質は、ペットボトルで自作したスピーカのように弾けた音になっています。 遠近を聞き分けることはできず、すべて耳のすぐ近くで鳴っているような音です。


7月3日 3人に1人が退職後も…

ある有名なコミュニティ型ニュースサイトで「3人に1人が退職後も元職場のファイルやメールにアクセスできる」 ということが話題になっているようです。 僕は2005年6月に日立製作所を退職していますが、最終日、「胸章」の返却を要請され返却しています。 「胸章」は日立のビルに入るときにチェックされるものです。人によっては返却しない場合もあるらしいです。 僕は全てのアクセスを遮断されたと思います。推定、毒を盛られて体を潰されています(頭も軽く)。 頭にきましたが、それを証明できるわけでもなし、会社を余儀なく辞めることにしました。 ここで会社の転職支援を受けると、日立に抗議できなくなるため、一切の支援を受けていません。 頭にきていましたが、しかし、まずは日立との和解を試みました。 そして日立の関連会社のICカードを買うことを考えました。 関連に連絡をしても、すぐには取り合ってもらえませんでした。 「独立行政法人IPAの未踏の公募で採択されて、 どうしてもICカードが必要なのです」と無理に押し切りました。 ちゃんと採択されたお金を使って、定価の1割、2割引きくらいで買っています。日立に借りはありません。 僕のICF3などの活躍の成果に対して体を潰して退職に追い込む酷い仕打ち。 これを政府関係に話せば、なんとかなると、当時は考えていました。 しかし現実は、うまくいきませんでした。現在も、この酷い仕打ちをどうにか、ならないか苦労しています。

このときICカードの開発、販売を通してわかったことですが、 僕がICカードのミドルウェアで実装した役に立つ機能を宣伝していると、あたかも、 日立のライブラリの機能の再販みたいな言われ方をすることが、非常に多かった。 できれば、気を付けて見てください。

2019年7月4日追記 日立のライブラリにも僕が独自に追加した機能と同じものがあるのではないか? との指摘がありました。当時の日立関連のICカードメーカがICカードのコマンドの仕様書を僕のところに送付しています。 10ページ程度で1ページに1コマンドしかない薄い仕様書です。カードコマンドの内容は、シンプルなもので、 読み間違うことも、読み落とすこともないと思います。同じ機能のものがあれば使っていると思います。


7月3日 頭痛が止まらない

頻繁に言葉が出なくなって偏差値で換算すれば30くらいか。辛い。 6秒間の会話で後半3秒になると前半3秒が消えていて思考が停止する。 頭痛が止まらないとICF3-Fの作業が進まない。


7月3日 ICF3は日立の製品名ではないのか?

いえ。ICF3は開発コードネームです。FAQに追加しました。


7月3日 ICF3-Fの作業が完全に停滞(その4)

今日も頭痛で停滞。 親も早く(ICF3-Fの作業を)しろと僕に言ったのですが、それを僕に言っても意味がなくて、みんなに言って欲しいと思いました。 これでも部屋で一人、「痛い痛い」と連発していることもある。
ICF3-Fは既存の基板のbitstreamファイルをダウンロード販売すること 可能な予定です。 半導体部品を全く仕入れずに販売すること 可能なのです。 FPGAメーカーが無償で開発環境を提供しているFPGAに限られますが。 もし結果が出れば、その結果を見て次を考えます。

既存の基板を使ったダウンロード販売を可能にするためには、 既存の基板に追加することなくサーバーと通信できること。 通信性能がFPGAの演算性能を上回ること。 SSLアクセラレータとしての性能がビジネスになる領域にあることです。 この1年近くをかけて、うまくいきそうであることを確認してきました。 現在目標としているUSB接続では転送性能は、あまり高速ではないですが、将来、 鍵長が長くなれば必要な通信性能がかなり下がるので、まずはUSBと考えています。


7月2日 大型計算機の回路シミュレーション波形の画像を削除

違法な方法で入り込む人の1人が「IBMの機密情報に当たるのでは」と連絡が入ったので、 念のため該当する部分を削除しました。 削除した画像は日立の回路シミュレーションデータのみでIBMの機密情報には相当しません。 IBMの回路データではなく日立が作成した等価な入力容量のみのもの。画像中にその記載がありました。 20年以上前の回路シミュレーションの波形画像で、 日立の大型計算機がIBMのCMOSチップを導入する上で重要だったCMOSノイズ評価の波形画像でした。 バイポーラからCMOSへの転換期、日立の電気屋の部署では情報処理技術者が不足していたため、 簡易な評価方法でノイズ評価をしていました。 当時、担当した僕がPerlなどのプログラミングが得意であったため、 電気屋の課長にやってみないかと言われ、Perlで回路シミュレーション波形データを画像化しました。 理論通りの配線長のところでノイズが大きくなることが確認され、そして簡易な評価方法との違いが明確になりました。 当時の日立の開発部署では入社2年目に、研修員論文を書く制度があり、 僕はこの簡易な評価方法とPerlを使った評価方法との違いを、研修員論文として社内で発表もしています。 2005年の日立退職時の打ち合わせで、自分のした仕事は、(競合他社の)転職先に持っていきたいと明示的に断っていたこと。 20年以上前の話で技術的には陳腐化しているので、問題ないかと思って歴史的資料として公開しました。


7月2日 ICF3-Fの作業が完全に停滞(その3)

まだ頭が辛い。寝ているほどではないのでChromium OSの最新版の独自ビルドを始めた。 頭が辛い問題がなければ、ICF3-Fの試作で性能値を出すことを先にするつもりでした。 ICF3-Fの性能値が正確に出せれば、僕だけでなく、いろいろな予測が出せるはずだからです。 最初からいいつづけていますが、RSAを延命することで、世界のコンピューター システムのコストを下げることなど。
参考まで、RSAの鍵長が長くなるとCPUでは性能が激減することを書いたブログ。
RSA 8192bitの性能を測定するソースコード

Qiitaのサイトが障害で止まっていた場合に備えて、もう一つ。
RSA 8192bitの性能を測定するソースコード

3:10AM 追記 : 意識が飛びそう。いつまでつづくか・・・


7月1日 ICF3-Fの作業が完全に停滞(その2)

今ちょっと頭痛が軽くなったので日記を書きます。CPUのオープンソースは公開を停止している。 ICF3-F(SSLアクセラレータ)の作業が停滞している問題について考える。 今は、それしかできないが、壊れると元には戻らないかもしれない。 十数年前、僕の左耳が一度、ほとんど聞こえなくなった。医者に3分の一の確率で、聞こえないままだと言われた。 現在、周波数帯によって、かなり戻っているところと、そうでないところがある。 人の声の周波数帯は、かなり回復している。ただ回復していても別の周波数帯の音に変わってしまって、 音楽を聴くと鑑賞には全く絶えないレベルだ。 壊れると元には戻らないのかもしれない。 ICF3-Fの進捗が大幅に遅れるだけでなく、本来、もっとより良いものが出来ていたはずのところが、そうでなくなるのかも。


7月1日 ICF3-Fの作業が完全に停滞

Napalm完成直後からの頭痛が、まだ続いている。 ネット上にある自分以外が書いた文章を読むと、吐き気がして、考える力がなくなっている。 目に文字は映っているのだが、文字の意味を、引っ張ってくる処理に支障が出ている。 本当に若いころなら1か月でできる仕事が10か月かかる状況。 ICF3-F完成に向けて技術的に困っていることはなく、頭痛が止まらなければ、時間が無駄になるだけだと思うのです。


7月1日 電力解析によるサイドチャネル

まだ頭が痛いし、偏差値35のままです。いや40ぐらいにはなったかな。 ICF3-Fの作業が止まっています。(いいのか?) さて、1999年のICF3を製品出荷した前後だと思いますが、 社内でICF3の電力解析のサイドチャネル耐性の「評価の」成果は中央研究所にという話が僕の耳にも入りました。 設計的にはICF3が電力解析攻撃に強いのは、評価するまでもなく当たり前なのです。 ただ僕が、そうなるように狙って設計したわけではありません。 ハードウェア制御論理を簡単にしたいという理由でできたアーキテクチャが、たまたま電力解析攻撃に強いものになった。 完成度の高い製品が1回でできたという幸運です。 どうして電力解析攻撃に強いのか。RSA暗号は、秘密鍵の値によって、A×B、A×Aの計算をします。 秘密鍵の最下位ビットから順番に値を調べて0ならA×Aの演算をします。1ならA×BとA×Aの演算をします。 ICF3は0、1の値に依存せずにA×Aの演算器と、A×Bの演算器を、並列に動作させるので、 秘密鍵の値によらず、時間と電力が同じになるという特性を持っています。 したがってタイミングアタックや電力解析攻撃に強い。 暗号LSIは性能だけでなく、そういった特性もセールスポイントなのです。^^)


6月30日 8bit CPU LWZetaからNapalmに入れ替え

Napalm完成直後から頭痛が続いている。 作業がかなり滞っている。某大企業のリストラ屋の持つリソース、科学力、頭脳、とても優秀。ここから考えられることを考えればいいのかも。 CRC32の回路はXilinx PicoBlazeに合わせて作ったためLWZetaに入れ替えたとき1命令2サイクルから1命令4サイクルの変更をしました。 そしてCRC32回路が進化。またLWZetaからNapalmに入れ替えたので、1命令4サイクルから1命令2サイクルの変更が必要になりました。 頭痛がなけれ、今日この日記の進捗に変更完了が、書けたと思う。 頭痛が酷くならなければ、明日には変更完了になるだろうか、、、


6月29日 8bit CPU NapalmがFPGAで動いた

頭痛と眠気で眠ったあと起きると全身の筋肉で力がはいらない。偏差値35ビームは、頭が悪くなるだけではない。 WZetaのNapalm(ナパーム)をFPGAの実機で動作させました。 AES暗号の計算が正しく動作することを確認しました。 FPGAの実装結果をWZetaのサイトに追加しました。


6月28日 8bit CPU ナパームのシミュレーションが全部通った

周波数10分の一、偏差値35くらいの頭になっていたので時間がかかりましたが8bit CPU WZetaのナパームのVerilogが完成し、 シミュレーションのテストベンチが、全部通りました。 オリジナルのWZetaは1命令4サイクルですがナパームは1命令2サイクルの実装なのです。


6月25日 暗号解読を加速しないのか?

暗号プロセッサのオープンソースOpenICF3を公開していますと言うと、 たまに「暗号解読を加速しないのか?」と聞かれることがあります。 FAQに「暗号解読を加速しないのか?」を追加しました。


6月21日 進捗がないけど日記を書く

頭の痺れで思考能力が著しく低下したので、こういうときに設計をしても、 やらないほうがいいくらいの酷いものになることがある。なので日記を書きます。 言いたいのは、僕が若いころなら5倍は速く仕事が進んでいる。 1か月で終わる仕事が、今は5か月かかっている。 今、開発を進めているICF3-Fは、RSA1回の演算時間でFPGA世界最速の性能になるのではないかと思っている。 それを明らかにすることが、一番、現状の状況に対して効果があると考えている。 そして、効果に比例した邪魔が入る。 若い頃なら、回避行動なしに被弾しながら一直線にICF3-Fの性能を測定できるものを開発していただろう。 今は5ヶ月、被弾しながら一直線は、厳しいと思う結果、回避行動が多くなる。 その結果、10か月かかるような状況だと思っています。 若い頃なら、1か月なのに。頭に痺れを入れるのをやめさせることはできないのだろうか
ついでに今日の作業内容。新しい8bit CPU Napalm(ナパーム)の設計図を作成しています。 WZetaと同じバイナリが動作する互換CPUです。 配線を入れ替えるだけでWZetaとLWZetaのどちらのバイナリも動作する予定。


6月20日 RISC-V DAY 2019が中央研究所で!

RISC-V DAY 2019 が9月30日に日立の中央研究所で予定されているようです。 海外から来られる方の話題に暗号プロセッサのオープンソースOpenICF3もあるように思います。
海外の人に  OpenICF3は僕のプロジェクトです。日立や中央研究所は無関係です。 僕はRISC-V DAY 2019に参加しません。
1999年の暗号LSI ICF3の設計のほとんどは僕がやっています。開発についても僕が多くをしています。 僕は1994年から約1年、中央研究所の超高速プロセッサ部にいました。 ICF3の開発に中央研究所超高速プロセッサ部の出身は、僕以外に2名います。 1人はICF3のリーダーでIBMのCPUと接続するI/F部のハード設計・開発担当。 リーダーは僕がRSA暗号のモンゴメリ乗算器を検討した結果を承認する役割も持っていました。 暗号プロセッサの部分は僕が単独で設計開発しています。 もう1人はLSI全体を大型コンピューターを使ったシミュレータでシミュレータするチームのリーダーで、 ICF3のシミュレーションをしていました。検証のみで設計には関与していません。
ちなみにICF3開発中の開発現場に中央研究所の人は全くいませんでした。 世界の銀行に収めるような暗号装置のLSIですから、当たり前といえば、そうですが。 ICF3の設計・開発者といえば僕1人で、だいたい正しい。


6月19日 また8bit CPUを作り始めました

ICF3-Fの通信制御のCPUとしてWZetaを使って開発を進めてきました。 WZetaは1命令4サイクルで動作するのですが性能的にギリギリという状況が見えてきた。 それほど無理でもないが、WZeta互換な1命令2サイクルの8bit CPUを開発しても、それほど時間がかからない。 それで、また8bit CPUを開発することに。WZeta Napalm(ナパーム)と命名。 WZetaのプログラムがI/0命令のタイミングを除いて、そのまま動作。 Napalm(ナパーム)の高性能版をSuper Napalm(スーパー・ナパーム)ということにしようかと。
ところでWZetaは、8bitレジスタ×128と大容量ですが、データ用の8bitのSRAMの先頭128バイトに実装できたり、 プログラムは8bitのROMで良かったりするので、TTLでCPUを作るようなこともできるもかもしれません。 僕自身に経験がないので、確かな話ではありませんが。


6月16日 限定公開してわかったこと(2)

このまま、いけばCPUのオープンソースは公開停止になるのかと。 そうなれば、世界の銀行に暗号装置を納品したときの名残の問題が残るのみ。 もう長いこと名残が続いて酷いことをされている。彼らの目標、彼らが利益を上げる方法を考えると、 僕は1999年に世界一のRSA暗号LSIを開発して会社の利益や日本に貢献したはずが、どうしてとなる。 そこに大きな問題があると思っています。
公開鍵暗号の高速化の方法としてモンゴメリ乗算があり、そして大きく2種類ある。 ICF3のような低基数型と高基数型。 高基数型も、タイミングアタックの脆弱性を対策すると、性能が落ちる場合がある。 ICF3型は、タイミングアタックの脆弱性がない。 完璧な脆弱性対策をすると、どちらも性能が劣化する可能性があるが、 以前の日記に書いていなかったと思ったので。
ICF3-Fの発明の価値は、 まだわからないかもしれないですが、海外に先を越されるのは、大きな問題になる可能性がある。
ICF3-Fの進捗は、作業時間に対する効率は良く順調。 これからFPGAの実機を使って、加算のような簡単な演算を、サーバーから連続送信して、 結果を受信するテストを開始するところです。


6月16日 世界の銀行に暗号装置を納品したときの名残

そのせいで政財界関連、医関連、T関連が、あんまり合法的でない方法で勝手に出入りしてくるのです。 ある、ARMの超大物、日本人が煙たがっているとの報告が入りました。 関連を経由すると、情報が、かなり捻じ曲がったり、ねつ造される場合があるので、 そういう問題を避けるには、直接話せる方法があったほうがいいのかもしれません。
限定公開によって、一般の人がCPU技術を知る機会があったことは、僕はいいことだったと思っています。 そして、これから、どうするのか考えていければと思っています。
ICF3-Fを急いでいます。関連は破壊的な行いをする場合が多く、今、破壊的な行いをされると困ったことになるのです。 破壊防止策として、これを書いています。防止策になるかは、みなさん次第なのだと思いますが。


6月16日 限定公開してわかったこと

2つの8bit CPU ICF3-ZWZetaについて、2019年6月16日~18日の3日間、 Verilogのソースを含めたすべてのβ版を限定公開します。 今日はまだ初日ですが、ネット上の反応からわかったことは 既存のCPUのライセンス料を安くする目的に使えそうか?ということです。

ICF3-Zは従来CPUとはアーキテクチャが異なり、命令セットに性能レンジがありません。 低性能領域においてコア面積に対する性能がいい、という特性を持っています。 乗算器がないクラスのCPUでは、加算器1個を効率的に利用するICF3-Zの アーキテクチャによって既存のCPUの数倍から10倍以上の性能がでます。 この情報からRISC-Vの組込み向けの小さいCPUコアでは、 このアーキテクチャの一部を模倣するところがあるかもと想像しています。 既存のCPUのライセンス料に注目するよりは、 加算器1個で高性能が出せる効率のいいアーキテクチャや、 まだ成功するか、わかっていませんが、 仮想マシンを効率良く実行できるアーキテクチャを注目していだだければと。

WZetaはCPUコア面積を小さくすることを絶対として作られたアーキテクチャです。 命令セットは、ごく普通の命令セットですが、面積を小さくするために偏屈している部分があります。 ASICで使うことも考えられていますがFPGA寄りかもしれません。 しかし、既存の32bit CPUの最小構成のコア面積よりも10倍~30倍小さいので、 ライセンス料の理由というよりは、面積が小さいという理由でWZetaを使うというように考えていただければと思います。


6月15日 CPUのオープンソースを3日間限定公開

2019年6月16日~18日の3日間限定で 8bit CPU ICF3-ZWZetaの2つのオープンソースを公開します。 今回の限定公開は「中を見てみないことには検討できない」ということを考慮しました。 こういったCPUのオープンソースが、日本にもあるべきか、多くの人の考えが必要なのかもと。


6月13日 演算中に次のデータをレジスタに転送

8bit CPU WZetaが演算中の暗号プロセッサのレジスタに 次のデータを書き込む機能を検証する簡易なVerilogシミュレーションが動作した。この調子で完成を急ぎたい。


6月12日 1日中寝ていた

睡魔が酷く、昨日もあまり作業できていなかったが、今日は、全くできていない。 SSLアクセラレータの性能を上げる分割加算を 早く実証しないといけないのに。万が一のことがあったらどうするつもりなのだろう。


6月11日 RISC-VベースのPicoRV32

PicoRV32をXilinxのFPGAに実装した結果を見つけました。 僕の8bit CPU WZetaと比較してみます。

CPUコアLUT数FF数BRAM数LUT-RAM周波数
PicoRV32
(最小構成)
761442-48-
WZeta
SPM=128Byte
Data=2KB
67641.00217MHz

WZetaの周波数はArtix-7の-1LなのでPicoRV32で使われているスピードグレードより遅いデバイス

PicoRV32は1命令、平均4サイクルのようです。WZetaは1命令4サイクル固定です。 WZetaでもAES暗号 256bitの演算やI/O操作が可能です。 PicoRV32は32bitのRISC-VなのでWZetaにできない、いろいろなことができるはずですが、 10倍違うとWZetaにできることなら、WZetaが便利のように思いました。


6月11日 BRAMから暗号プロセッサにデータ転送する論理の設計図

開発中の設計図ですが、睡魔に眠らされ、全身の筋肉から力が抜けることに耐えながらやっています、それを言いたかった。 1999年のICF3では演算中は暗号プロセッサしか汎用レジスタ(1024bit×16)を操作することはできませんでした。 ICF3-Fでは性能を上げるため暗号プロセッサの演算中に次のデータを汎用レジスタ(1024bit×64)に書き込みをする、 データ転送機能(DataMover)を実装します。 XilinxのFPGAの分散RAMが16本×2だと簡単だったのですが64本×1なので暗号プロセッサが 汎用レジスタをリード・ライトしているタイミングではデータ転送機能のほうからリード・ライトできません。 そこで「データ転送機能」が書き込みを、とりあえずしてみて成功したか否かを確認する方式になっています。 Verilogのシミュレーションの図で言うとWの部分です。


写真をマウスでクリックすると拡大されます


6月11日 回路開発ソフトはExcel 97(追記)

1999年のICF3の開発部で、LSIの実装ファイルのどこまでを作っていたのかを、もう一度、説明することに。 暗号プロセッサを3000ゲート程度の論理に分解して、レイアウト実装する部署に依頼するところまで。 レイアウト実装する部署では、3000ゲート単位の論理セルを、クロックバッファーを避けながら、 配置します。自動配線プログラムは使っていたようですが、配置がどこまで自動化されていたのかは僕の知るところではありません。 ICF3の開発部で、いきなり3000ゲートの単位のNAND、NORのセルで構成されるファイルを作っていたわけではなく 2段階に分けて作業していました。 1段階目では、AND、ORよりも、もう少し抽象度の高い設計図を作ります。 OpenICF3の公式サイトでICF3の暗号プロセッサの設計図を公開していますが、この1段階目の設計図になります。 1段階目の設計図を作るのにExcelによるタイムチャートを使います。 1段階目の設計図からVisual HDLというGUIのEDAを使ってNAND、NORのセルに置き換えた設計図にしていきます。 Visual HDLが、どこのEDAツールか、知る必要がなかったので、知りませんが、内部的にはVHDLのようです。 一応、VHDLによるシミュレーション機能はあったようですが、使い方を勉強する暇がなかったので、使っていません。 基本的にシミュレーションによる論理設計は厳禁でしたし。 1段階目の設計図から2段階目の設計図を作成するのに、隣の大型コンピューター開発部では、 アルバイトを使っていたようですが、東大卒の多い、僕の部署では、僕が自分でやります。
一般的なCPUではレイアウトから設計にフィードバックして、設計とレイアウトを繰り返すことが普通のようです。 ICF3はレイアウトからフィードバックなくLSI実装が可能なアーキテクチャでした。 これは設計者をリストラしても、外部にLSI実装の社外秘が漏洩しないため経営者や 半導体製造メーカにとって都合のいい特長でした。

XilinxのFPGAでは、3000ゲートに分割することなく、丸ごと自動配置が可能です。 そしてマニュアルで配置することもできるみたいで、全部1人でできそうです。


6月10日 回路開発ソフトはExcel 97

睡魔に襲われ、わずかな作業時間で開発しています。脳内睡魔を止めないと、ゆっくりとしか進まないのかも。 1999年のICF3の暗号プロセッサはExcel 97でタイムチャートを作成して論理回路を開発しました。 Verilogのような論理シミュレータはありません。Excelと脳内シミュレータでの開発を強いられました。 それでもバグを1つも出さなかった。かなり凄いことです。 当時の僕が、とても精密に動作していたということだと思います。
通常、メインフレームを使った論理シミュレータを使うのですが、 暗号プロセッサ単体でのシミュレーションはしませんでした。単体シミュレーションを新規に起こす方法を知らなかった。 いきなりLSI全体でのシミュレーションで動作検証をして正しく動作しました。
ICF3-Fの開発でもExcel 97を少し使っていますがCUIのVerilog中心でやっています。(激安な開発コスト)
Excel 97でタイムチャートを作るのは、0、1の遷移を人手でナナメ線にしているので、 かなり時間がかかって大変なので、もう少し複雑な論理設計では最新のEDAが便利なのかもしれません。

写真をマウスでクリックすると拡大されます


6月9日 シミュレーションでダミーの演算結果が得られた

RSAの演算データはYから送信されWに届く。 Wは暗号プロセッサにデータをセットするためにあるが、今回は、 届いたデータをそのままダミーの演算結果として返すプログラムになっています。 Wは、Xのクロック周波数とは無関係な周波数で動作していますがBRAMを挟むことで、 周波数の違いを吸収します。 Wの周波数は暗号プロセッサの動作限界のギリギリまで上げることができます。



6月8日 思考能力が著しく低下したので作業中断

現象を正確に書きます。 ネット上の記事を読んでいると1度、読んだだけでは理解できず、2度3度、 読み直して、頭に苦痛を発生させながら理解することができるという状態。 3単語を読み終えることには2単語目の記憶がなくなっている。 記憶がある場合でも、理解に結びつけるためには、苦痛が発生する。 睡魔の乱発も感じていますが、痛みがないので、あまりここに書かれていない。 作業が遅れることは問題と思います。

追記 10:10 PM ベッドで横になっていたら1時間以上眠ったようです。 とりあえず作業再開します。


6月8日 CPUオープンソースの海外の動向

オープンなハードウェアの開発と普及を促進する団体「OpenHW」グループが発足したようです。 昨日の記事より、もう少し詳しいかも。


6月7日 RISC-VベースのCORE-VとWZetaの面積比較

CORE-VはRISC-VベースのSoC向けのプロセッサコアなんだそうです。 WZetaと競合しそうです。 RISC-Vは32bitなのでCORE-Vが、Xilinxの32bit MicroBlaze MCS(一番面積が小さいもの)と同程度と仮定して、 面積比較をします。LUT数で10倍違うのでWZetaが便利な用途はありそうです。

CPUコアLUT数FF数BRAM数LUT-RAM周波数
MicroBlaze7003381.0176166MHz
WZeta67641.00217MHz

6月6日 転送と同時にCRC32を計算する回路が動作した

動作を確認できたのはBRAMからUART送信回路への直接転送。 プログラムで1バイト単位にCRC32を計算するか、否かを選択できる。 CRC32は処理が重い計算なのでIntel CPUのサーバーではCRC32Cが使える。 またCRC32、CRC32Cの専用演算命令がないサーバーの場合、垂直パリティに変更することができる。 BRAMにCRC32/CRC32C/垂直パリティのテーブルが入っていて、テーブルを切り替えるだけなので、 3種類の巡回冗長検査ができるが回路は1個分の面積。



6月5日 サーバーからのデータを高速に受信

USBのUARTでサーバーからRSA演算に必要なデータを1バイトづつ8bit CPUで受け取って FPGAのメモリ(BRAM)に書き込むと遅くて処理が間に合わない。 そこで直接転送することも可能な回路を追加した。直接転送を使ったBRAMへの読み書きの動作が確認できた。

20年以上前に米国カリフォルニア州のサンノゼに3か月間いたことがある。 そのとき泊まっていたホテルがAMD本社の正門前だったことに今日気づいた。 ホテルの敷地で、一番、AMD本社の正門に近いところでAMDのマークが良く見えた。

追記: あ、いや。体が健康なら、アメリカに行くこともできたかもという話です。(英語ができるとは言っていない)



6月4日 Xilinx代理

Xilinx代理を自称する怪しげな声が 「WZetaは他社への移行を容易にするからXilinxは怒っている」と言っている。 WZetaはXilinxのPicoBlazeを代替するには、どちらかというと面倒なCPUだ。 PicoBlazeが1命令2サイクルなのに対し、WZetaは1命令4サイクルなのでタイミングが違う。 これだけでも、面倒なのが、わかると思います。 恐らくCPU開発の阻止をXilinxのせいにして、やりたかったのだろう。 Xilinxと直接、話せたほうがいいのかも。


6月4日 自作CPUに新命令INPUTANDを追加

超軽量CPU WZetaに新命令を追加しました。 現在、公開を見合わせていますが、公開できるようになればなぁと。 「いいね」などの支援より、反CPU開発な人たちへの説得が問題です。 新命令はINPUTAND、INPUTOR、INPUTXORの3つ。 I/Oからステータスを取得して、必要なビットとANDすることは、頻度が高いので実装しました。 この新命令の追加で、ゲート数が増えることがなかったのも、理由の一つです。
自作CPUICF3-Zの公開を見合わせている問題もWZetaと同じです。 仮想マシンの機能は、おまけなのですが、うまくいく可能性を捨てきれない。 (やり始めて、うまくいかないことはありそう) 税金なくArduinoの非C言語版みたいなものが、できることはないのだろうか。 加算器1個による暗号性能の単純な比較だけでなく。
しかしながら、基本的には自分が少しでも損をする可能性のあることはしない方針だと思っていただけると。 WZetaを競合他社が使って僕が損をするというようなことは全然OKです。ICF3-Zは、また別です。


6月3日 15年間使ったレンタルサーバーを解約

2005年7月14日から使ってきた、さくらインターネットのレンタルサーバーを解約しました。 僕が日立製作所を退職したのは2005年6月末です。 レンタルサーバーを借りることにしたのは2014年12月に社内展開できるレベルまで自分1人で作り上げた ICカードエミュレータmyuTokenを公開するためです。 2014年12月に謎の風邪を頻発して倒れました。このままだと体を壊されると思って退職しました。
昔の思い出話で、書いてある通りの意味しかありません。 ICカードエミュレータを公開して「窓の杜」や「Vector」にメールすると、 レンタルサーバーのアクセスログに来ていることがわかったりして、当時は、それが楽しみで毎日アクセスログを見ていました。 東大からのアクセスが、多数ありました。東大の方で、僕のやっていることを理解している人がいるのだと、 ちょっと感動したのです。良くみると「理3」からのアクセスでしたが気にしないことにします。


6月3日 加算器1個の除算なら5倍以上ですが、、

最近の日記(5月27日)、日記(5月29日)に 加算器1個のCPUなら、ICF3をCPUにしたアーキテクチャが5倍以上高速という話をしています。 有名CPUの最も下のクラスのCPUでは加算器1個なので、そうなのですが、 実際、乗算器オプションも既に明記されていて、その低速な乗算器を使った モンゴメリ乗算のケースを忘れていました。次世代暗号アルゴリズムで、 モンゴメリ乗算が利用可能なのかはわからないのですが、利用可能なら、 暗号演算の性能が2倍くらいまで落ち込むことはあるのかもと。 暗号性能以外は、エコシステムなど、デメリットが大きいので、2倍では、どうかというところ。 もう少し精度ある見積もりをするか、あきらめるか。


6月2日

"C9 C9 80"の3バイトを転送するとステータスを返すだけだが、サーバーからの命令を受信できるような、 プログラムをCPU Xで実行するシミュレーションがうまくいった。 自作CPUの間接ジャンプは128×n+8bitレジスタ(0~127)のアドレスにしかジャンプできない仕様ですが、 プログラムメモリの先頭をジャンプテーブルにすることで、便利に使えることがわかった。



6月1日 みんなハッピーという国

この国に役立ったと言えるレベルの発明をすると、 頭や体にムチを打って村八分にして、みんなハッピーという国か。状況の打開に苦労しています。 僕に言える特殊事情は、計算機のハードに強い。 大学1年のときに電磁気学を深く勉強してしまったこと。 世界の銀行や外務省に収めた暗号装置のもっともセキュリティの深いところを開発していること。 日立製作所の中央研究所に入ったこと。
電波ウィルスの被害に遭遇しやすい環境と、電波ウィルスへの強い検知能力だろう。


暗号プロセッサ OpenICF3