|
5月29日 自作8bitCPUが32bitの10倍の性能って本当!?一昨日の日記、「5月27日 あれ僕の8bit CPUが32bit CPUより圧倒的に速いぞ!?」に、
ちょっと驚いた人とか、疑った人とか、あったみたいです。
「65535÷3」で10倍は、値が固定値だからではないか?とか、クロックの周波数が違うのではないかとか。
ICF3-Zは16bit÷8bitの演算を、どんな値でも常に17サイクルで実行できます。
一般的なCPUの命令セットでは、加算器1個を駆使する「命令」「配線」がないので、本当に10倍違うということが起きます。
加算器1個の駆使する「配線」とそれを制御する制御系、すなわちアーキテクチャをICF3-Zは持っているのです。
暗号プロセッサとして、そうなるように設計しているからですが、それでも、うまくできています。
しかしアプリケーションは暗号演算だけではないので、デメリットもあって、考えながら判断しないといけないと思います。
5月29日 自作CPUのニモニック変更しますゼロフラグの値によって分岐するJUMPZ0をJUMPNZに、JUMPZ1をJUMPZにします。
ニモニックを考えたときはJUMPZ0、JUMPZ1は、わかりやすいと思いました。
実際、アセンブラのプログラムを書いてみると、演算結果を考えて、ゼロフラグの変化を考えて、
JUMPZ0か、JUMPZ1を選択することになると思います。普通の人なら、無意識にできるでしょう。
今の僕は、ゼロフラグの変化を考えたところで、それ以外のことが消えて、
JUMPZ0にしたらいいのか、JUMPZ1にしたらいいのか、わからなくなる。
この現象を発見して半年以上、治っていない。
普通に生活していて、そういう損傷が、都合よく、僕に発生する確率は小さいでしょう。
C 5月28日 ゼロフラグで損傷判定一時的に思考能力が低下し寝ていたが、ある程度、回復したのでICF3-Fの作業を開始した。
自身の脳の状態を長いこと観測しているが、回復していない機能があることに気づく。
ごく短時間の一時記憶が、ほとんど機能しない。
そのために少し苦しみながら、ゆっくりと作業をすることになる。
具体的に話すとCPUにはゼロフラグというビットが存在する。演算結果がゼロなら1、非ゼロなら0になるフラグだ。
ゼロフラグによって分岐させる命令、JUMPZ0とJUMPZ1がある。
JUMPZ0はゼロフラグが0なら分岐。JUMPZ1はゼロフラグが1なら分岐。とても分かりやすい仕様だ。
普通の人には、何一つ、感じることなくJUMPZ0、JUMPZ1を使うだろう。
一時記憶が損傷している僕には、JUMPZ0、JUMPZ1を使うのに30秒以上考えないと、ならない。
5月27日 あれ僕の8bit CPUが32bit CPUより圧倒的に速いぞ!?自作8bit CPU ICF3-Zですが、
FPGAに実装できるVerilogの公開を見合わせています。
インターネットで、たまたまARM Cortex-M0のソフトウェアによる除算性能が書かれたパンフレットが見つかりました。
5月27日 一時的に公開したCPUの反応みたいな反応が何故かQiitaに出てくるというのは、さておき、言ってることはわかるんですけど、というような。 軽い頭痛が超長時間続いていて、そのせいで本来の能力が出ていないということにつきます。 5月27日 再起不能になっても頑張って開発は続く頭痛は直っているが、まだ僅かに痺れが残っている。 記憶のデータベースから、キーワード検索するような能力が低下している。 例えば、僕の頭が壊れて再起不能になる。間違いなく大型コンピュータのを開発していた部署の東大卒が疑われることになる。 すると、再起不能になるまで壊れることはない。 頭が悪くなる程度だろう、ICF3-Fの作業が遅れて、品質低下の恐れがでることになる。 工夫が足りず、性能も低下する心配もある。 僕が頑張って開発を続けている以上、他では、できないと思うので、日本は考えるべきときと思います。 そして再起不能になっても、頑張って開発をつづけるでしょう。 5月27日 頭痛が直ったおはようございます。いつの間にかに寝ていて、寝苦しいこともなく、 目が覚めるとスッキリしていました。 6:16 AM 再び、頭痛がしてきたので寝ます。お休みなさい。 11:26 AM 起きました。治ったようです。ぐっすり寝ていた。 5月26日 頭痛で日記が進む頭が痛いだけで済んでない。意識が戻ってくるのか心配。このままいくと頭が悪くなる。 既に、かなり頭は悪くなっているけど。来るとわかっているので、耐えきるだろう。 ICF3-Fの作業が遅くなるし、品質にも影響する。耐えきるから、問題しか発生しない。 5月26日 頭痛でICF3-Fが進まない頭痛で困っている話を、あるSNSでしたから、頭痛が良くなるのかと思っていたが、違った。
腹8分目の食事しかしていないのに、食後、1時間半くらいあたりで、睡眠に落ちて、
寝苦しい時間を過ごすというのを繰り返している。
5月24日 CRC32回路と自作CPUの接続テストXilinxの8bit CPU PicoBlazeでは正常に動作していたものが自作CPUにCRC32回路を接続すると計算が合わない。
頭がフラフラして、思考能力が著しく低下しているので原因を究明に時間がかかったが、どうにか正常に動作した。
5月24日 眠気と目まいで作業が進んでいませんICF3-Fの製品化まで僕1人の作業でできるという見通しが、眠気と目まいが起きる原因なんだろうなと 5月24日 プロジェクトの状況表示を作ってみたこのサイトのOpenICF3のページのトップにプロジェクトの 状態を記述するようにしてみました。 5月24日 アセンブラをバージョンアップ自作8bit CPUのICF3-Zと WZeta、Verilogやアセンブラなどの開発環境の公開は停止中ですが、 アセンブラをバージョンアップをしました。定数のdefineができるようになりました。 技術的な問題で公開停止しているわけではありません。 CPU開発への風当たりが強いので公開しても、イジメにあって、得にもならないことが問題なのです。 ICF3-Zは、産業スパイが盗みだしている可能性があります。誰にも許可をしていません。 WZetaも、誰にも許可をしていません。もし、日立関係以外で、ご興味があれば、ご連絡ください。 ICF3-Z、WZetaは税金の引き出しに使われたくないと考えています。 5月23日 乗除算器のないCPUの乗除算性能ARM Cortex-M0は乗算器(32サイクル)がオプションになっている。
性能が必要なケースでは、このオプションは必須になるため、ICF3-Vとの性能差は小さくなる。
参考までの話ですが、乗算器無しで乗算をした場合の性能について僕が
XilinxのMicroBlazeで調べたものがあるのですがARMでも当てはまります。
5月23日 IoTゲートウェイ経由のIoTデバイスIoTゲートウェイ経由ではIoTデバイスは公開鍵暗号などの重たい処理をIoTゲートウェイに任せることができる。 IoTデバイスを可能な限りARM Cortex-M0のような軽量なCPUを使ってIoTシステムの原価を下げたい。 と僕が勝手に思っている。 次世代暗号で鍵交換をしてAES暗号で認証をするシステムはあるような気がします。 とてつもない数のIoTデバイスでICF3-Vが使えることがあるのかもと。 税金プロジェクトかもしれないが、たとえば自動車の信号機が、ICF3-Vで将来的にコスト削減につながるなど。 採算が取れる見通しがあれば、いいという考え方はないだろうか。 例えばICF3-Vが5倍速いアーキテクチャだとして、1人が1か月くらいで開発できるアセンブラがあれば、 IoTゲートウェイと通信する程度のソフトウェアの開発ができてしまう。 実際にやってみると5倍が3倍になって、1か月が3年くらいになって、赤字という可能性は多そうですが。 ICF3-Vを作るなら、いっしょにICF3を搭載してIoTゲートウェイを経由しない直接接続というのもあるのかな。 ICF3-Vでインターネットと接続するのは、少し苦労するのかもしれないですが。 ワンチップでRSAと楕円に対応するデバイスが可能になる。 楕円しか対応していないものが既に存在していますが、これだと楕円が先に解読されても、RSAがあるとか。 何事も、採算を考えて。 5月22日 ICF3-Vが次世代暗号に適していたら?とある有名ジャーナリストのSNSに誘導され、「ARMがHuaweiとの取引停止、BBCが報道。」のニュースを知りました。 5月22日 自作CPUで通信シミュレーション通りました今年の2月にXilinxの8bit CPU PicoBlazeでVerilogの通信シミュレーションを していましたが、8bit 自作CPU(LWZeta)で通信シミュレーションが正しく動作しました。 LWZetaはPicoBlazeの置き換えを、全く意識していないので、そういった用途は期待できないと思われます。 LWZetaは1命令4サイクルでPicoBlazeの1命令2サイクルに対して、かなり性能が悪そうなのですが、 LWZetaは3オペランド、128レジスタなので暗号演算は楽なような気がします。 PicoBlazeは16レジスタ、256スクラッチパッドメモリです。レジスタが少ないので 暗号演算のデータはスクラッチパッドに置かれる。 するとLWZetaでは1命令で演算できるのが、PicoBlazeはロード、演算、ストアの3命令になることが多くなります。 つまりLWZetaでは32bit、4サイクルの処理がPicoBlazeでは54bit、6サイクルになる。 実際に暗号演算を実装をして確認していないので、あまり正しくないかもしれませんけど。 5月21日 昨日のSNS投稿内容への訂正1999年のICF3のRSA演算器は、モンゴメリ乗算器と暗号プロセッサに分解できる。 昨日、ツイッターで剰余演算器は、アドバイスされることもなく、上長に報告することもなく、1週間で作ったと書きました。 アドバイスされなかったというのは間違いではなかと指摘があり、訂正します。 暗号プロセッサの中に、偶数でも計算できる剰余演算器が潜んでいるのですが、暗号プロセッサの設計開始時に、 「6ブロック程度で作らないと、作りきれなくなるから。バイト単位で切ればできるでしょう。」 というアドバイスをいただいたのでした。ディレイの観点および、論理設計者にフロア設計をさせない方針から、 バイト単位(実際には16bit単位になった)になることは、必然だったのだが、全くアドバイスがないというのは間違いでした。 ちなみにICF3はフロア設計が単純作業になるような論理設計をしています。 5月20日 ICF3-Vが圧倒する
最近の国立大学の暗号ハードの研究を見ていると、
次世代暗号アルゴリズムの効率的な実装で、IoT向けのCPUではICF3-VがARM
Cortex-M0を圧倒しそうに見えてならない。
見間違いかもしれないが、もし本当なら32bit CPU ICF3-Vがビジネスで成功することがあるのかも。
5月18日 新しいIntel CPUの脆弱性でAESの鍵が盗める超軽量8bit CPUの出番か!?AES暗号の処理を8bit CPUで行う脆弱性の対策が考えられます。 性能はあまり必要なくAES暗号以外の処理も必要な場合、 AES専用演算器よりも超軽量8bit CPUが有利な場合があると思います。 8bit CPUであればWZetaである必要はないですが。 WZetaのアセンブラを改良しているところで、定数をdefineできる機能を追加中です。 5月17日 結局、2つのCPUサイトを公開のままWZeta、 ICF3-Zの2つのCPUサイトを公開のまま、 オープンソースの公開は停止ということになりました。 今後は、LWZeta(WZetaの劣化版)をSSLアクセラレータICF3-Fに組込みICF3-Fの完成を急ぎます。 2つのCPUのサイトの連絡先で、連絡は受け付けていますが、大きな作業が入りそうなことは、あまりできないと思います。 5月14日 WZetaのサイトの閉鎖を予定しています8bit CPUのオープンソースWZeta。劣化版をリリースすることで問題点をすべて解決。 そしてXilinxのFPGAでは劣化版でも性能があまり落ちない予想(BRAM付属の出力FF)なのですが、 現在「いいね」などを僅かにいただいている程度なので閉鎖を予定しています。 WZetaを検討している方は即中止をおススメします 5月14日 自分で自分のアイディアを回避32bitの命令コードのプログラムをバイト単位でメモリに格納しておく。 このとき命令コードのフォーマットを工夫しておけば、 プログラムカウンタがインクリメントされ、CPUに到着した命令コードから実行ができる。 工夫がない場合、最悪32bitすべての命令コードがCPUに到着しなければ命令を実行できない。 劣化版では命令コードのフォーマットをシャッフルすることで工夫がない命令コードと判断できる。 5月14日 特許調査中断、劣化版検討アイディアをなくした劣化版を開発するとともに特許検討の保留。 WZetaは32bitの命令コードを8bit単位で送信することで省リソース化する特長を有していましたが、 命令コードをシャッフルしてして32bit単位で送信するアーキテクチャに修正した劣化版の開発を考えます。 特長のない命令セット(コードのフォーマット)になるため特許侵害になる可能性はほぼゼロになる。 アセンブラレベルでは完全互換なのでAES暗号のサンプルなどは、そのまま動作する予定です。 うまくいけば、元のWZetaに戻せる。という方針を思いつきました。 5月13日 命令セットの工夫の特許調査開始1990年後半、日立の大型コンピュータを開発していました。僕の名前の入った特許が2件あります。
特許作成の仕事をしたことはありません。しかし特許調査の仕事はしたことはあります。
RSA暗号のハードウェアで必須ではないが、あると便利な逆数の計算方法があります。
当時、従来より600倍高速な方法を見つけたと上長に報告すると、特許調査をするように言われました。
会社の特許検索端末で調べ始めて、比較的すぐに東芝が同様の特許を出願しているのが確認されました。
5月12日 8bit CPUのオープンソース公開しました既にSNSで発表していますが
8bit CPUのオープンソースWZetaを公開しました。
命令コードの工夫を思いつくのに半日くらいで、後は僕のわずかな作業時間のみで、
構成されるWZetaは、制限の緩いライセンスで公開することが可能でした。
5月11日 オープンソース公開の風当たりの強さ日本でCPUのオープンソースハードを公開することの風当たりの強さに困りました。
MITライセンスを考えていたのですが、これだと社会貢献が評価されないと、やらないほうが得なのです。
5月10日 AESがFPGAの実機で動いた自作8bit CPU WZetaでAES暗号256bitが実機で動作しました。
これってもしかしてAES暗号のIPと考えることもできるんだろうか。
AES暗号が動作するWZetaはXilinxのPicoBlazeの面積の60%~65%くらいか。
周波数は安定しない。200MHzを超えることもある。(ただし1命令4クロック)
WZetaの実装で誰かの特許にぶつかる可能性は、低いように思ってますが、ぶつかっていなければ、
MITライセンスにするとAES暗号のIPとして使いやすいかも。
5月9日 AESがVerilogシミュレータで動いた一昨日の日記でAES暗号のプログラムがC言語の 8bit CPUシミュレータで動作していたのですが、無事、Verilogシミュレータで動作しました。 軽い頭痛と眠気で寝ていました。一昨日は、久々に調子が良かったのにと。 前々回調子が良かった日との共通項を見つけた。歯医者に行った日。ボリュームで20秒間隔くらいで調節できるのか。 5月8日 他に誰も出社してない日過去の話で恐縮です。僕が大型コンピュータを開発していた時代、 休日に無給で自主的に勉強することも多かった。 ICF3開発後、AES暗号もハードウェア実装できるか自主的に出社して検討していました。 非東大卒で一番偉い長時間管理の課長も、そのとき出社していました。 他に誰も出社していない日でした。 休日、自主的に出社すると、長時間残業管理の課長もよく出社していなぁと。 僕も残業しまくっていましたから、誰が、長時間残業で頑張っているのか評価できるくらいに。 追記。退職直前、研究所で遊んでいたと思う人が多いので。 1994年に入社、長時間残業を頑張り抜いて、1999年にICF3で大型コンピュータの事業に大きく貢献。 30歳、これで結婚できると思ったのですが、いろいろ頑張りましたが、何故か、うまくいかない。 結婚紹介所にいっても、無駄だと諦めさせられた。 みな酷いと思いながらPKIとJavaとC言語の勉強に励みました。 もう一仕事しないと、みなが認めてくれない。そう思いました。 焦りまくっていたので休日、遊ぶ余裕が心になく、ソフトウェア開発に励んだ。 ゴールデンウイークに1人、寂しく、Javaの勉強していたことを思い出します。 そしてICカードエミュレータを自力で開発し、会社の事業に貢献できると社内展開しようとした瞬間、 謎の風邪に襲われ、欠勤が続いた。2004年12月のことです。これ以上、体を壊されないようにと思い退職した。 この状況を遊んでいたと言うのはあんまり。 5月8日 8bitCPUのAES暗号はLinuxを使っているのか?スラドの記事ドンキPBのネットワークカメラ、
Linuxの痕跡が確認されるも開発元は「Linuxを使っていない」と主張、ソースコード開示を拒むということが話題になったようです。
まだ自作8bitCPUのオープンソースを公開していませんが、AES暗号が使えそうか?という話です。
日立退職前に研究所でICカードエミュレータの元を自力で開発していたときに、
たまたまAES暗号について勉強していて、C言語のソースコードを仕様から作成していた。
アルゴリズムの理解のためなので性能は、全く考えていないものでした。opensslの10倍以上遅いものでした。
5月8日 半日以上作業が停滞すると日記にあまり厳格には日記をつけないかもしれないですが、なぜか体調が悪くなって作業が半日以上停滞するなら、 日記を書こうかと。現在も、日記をつけるのに片目をつぶりながら書いています。 1日半以上、筋肉痛で力が入らなかったり、うまく筋肉をコントロールできない状況が続いた。 マウスをうまく握れない。 過去の話を書くと、床に倒れて、自分で起きることができなくなるほど、筋肉が動かなくなったことがある。 これは1度の例外的な話ですが、時々、謎の筋肉痛になる。痛みだけなら、作業が停滞することもない。 文字で説明するのは難しいが、吐き気で動けない状況と同じだった。 これは大袈裟な話でも嘘でもない。 5月7日 FPGAのSSLアクセラレータの製品化僕が去年発明したモンゴメリ乗算の累積加算における分割加算の証明は
インターネットの社会インフラに影響する可能性があると思っています。
現状のRSA暗号や楕円暗号の延命や、巨大整数を使う新しい公開鍵暗号を発明に役立つと思います。
この日記にも書いていますが、公開鍵暗号を加速するモンゴメリ乗算は、基数を大きくしたり、小さくしたりすることができます。
僕の発明は小さい方(低基数)の高速化に役立ちます。高基数型の方法でも僕の発明と同じことができます。
FPGAとASICの場合分けをします。FPGAでは広島大学の高基数型がIEEEに掲載されています。
小さい高基数型を多数並べる方式でスループットの性能はいいです。
ただ1演算の演算時間は大きく、現状のRSA 2048bitまでなら問題ないのですが、
鍵長が大きくなると1演算時間が問題になっていきます。
僕の低基数は多数の演算器を並列に動作させて1演算を行えるので、鍵長が長くなっても大丈夫です。
ASICでは、FPGAと異なり演算器やメモリを自由に配置できるので、高基数でも1演算の性能が出せるようになると思います。
ただ設計にコストがかかるので、量子コンピュータによる解読リスクのある状況下では、うまく資金を集めるのが難しく、
設計コストが安価でFPGAでも性能が出せる僕のICF3-Fは有望です。
そして高基数型を実際に実装して、思ったより性能が出ないということになれば、そうなれば僕の名前は世界に残るのかもしれない。
現在は2048bitですが1万ビット以上とか、それ以上になってくると低基数が有利になることも考えられます。
5月7日 自作CPUでAES暗号を実装してみた自作8bitのWZetaはXilinxの8bit CPU PicoBlazeよりも面積が小さく役に立ちそうなので、
オープンソースとして公開するべく作業を進めています。
最初、GPLにしようかと言っていましたが、方式性能的に優れているということもないので、
MITライセンスとか検討しています。
C言語によるシミュレータでAES 256bitの暗号化、復号化のプログラムを実装してみました。
AES暗号の仕様を読むと、一見、8bitの乗算命令とか、1bitシフタ命令がCPUに必要みたいな感じですが、
WZetaは、どちらもありません。しかしうまく実装できる方法を見つけました。
AES暗号の仕様が、良くできているということかもしれないですけど。
5月7日 日立は退職支援をしたのか?毒殺して潰してますから、そんなことをして僕のわかりやすい成果に対する処遇を引っ張り出されると困るはずなので、
支援することはないと思います。僕が退職するときの条件は、日立とケンカできるようにして出てきています。
なので退職金はあまりもらえなかった。数十万円程度。
退職直後は、僕の活躍を毒殺で潰したことを周囲に話て、再度、日立に戻ることを検討していました。
当時、独立行政法人IPAで税金によるソフトウェア開発支援プロジェクトしていたゲーム会社社長は日立出身でしたが、
日立関連のICカードを販売する計画を持っていきました。1度は落されましたが、2回目で採択されました。
IPAにあった社長の経歴には日立製作所としか書かれていなくて、まさかこれから問題を言う先の日立とは思っていなかった。
このためゲーム会社社長には、僕の問題について、一言も話すことなく、終わっています。
この採択で僕は320~330万円くらいお金が入りました。
そこから日立関連の会社にICカードとして100万円くらい払っていると思います。
活躍した従業員を毒殺で潰す会社というのが拡散されるICカードは、全然、売れませんでした。
ちなみにあまり関係ないですがICカードを購入した会社は日立から離脱したようです。
退職前、日立、富士通、NECが出資して設立した日本認証サービスという会社に出入りしていました。
NEC出身の社長に「公開鍵暗号のハードが搭載されていない認証デバイスでは秘密鍵が漏洩しやすいので、
僕の開発したルネサスのICチップを使ったICカードを宣伝していただけないでしょうか?」と提案したところ、
日本認証サービスの会社のウェブサイトで宣伝していただけました。
認証局のサイトでの宣伝は効果があったはずですが、全然、ICカードは売れませんでした。
追記。退職金について確定拠出年金が計算に入っていないことを指摘されました。 株なので、引き出せる頃には、手数料や株の下落で、数十万円になっているかもしれないことはありますが、 いいときは100万円くらいの価値かもしれません。ちなみに、このお金、今、引き出せない。 追記 2019年5月10日。NEC出身の社長への説明をもう少し詳しく。 提案当時、日本認証サービスでは最も安価な認証デバイスを推奨していました。 公開鍵暗号の演算器は搭載されていないタイプでした。電子署名をする際、秘密鍵をCPUに送ってCPUで計算させるため秘密鍵が漏洩しやすいものでした。 一方、僕のICカードはRSA暗号が搭載されICカード内で演算されるため秘密鍵は漏洩することはありません。 また、当時のICカードの業界標準規格のAPIは、秘密鍵が漏洩することのないものでしたが、悪人によって知らないうちに破壊することができるものでした。 僕のICカードは、この問題に気づき、秘密鍵を書き込むためのパスワードと、 署名をするパスワードを分ける機能をつけながら、業界標準のAPIで動作するものを提供していました。 恐らく、この機能がないと、セキュリティ的にかなり問題なはずです。 見た目は、大丈夫なのかなという感じだったかもしれませんが、とても優れたものでした。 これが僕の提案を受けていただけた要因として大きかったのかと。 5月5日 パソコン故障で修理作業修理作業をしたら、過去何度も修理していて、思わず写真に撮っただけの読む必要のない日記。 パソコンで作業をしているとデータを入れているHDDが徐々に動かなくなっていった。 中古HDDだったので、手早く別のHDDに交換。しかしHDDは動かない。 原因は電源と思ってATX電源を交換。動作するようになった。 ATX電源は過去、FANを交換してFANの電源が外にはみ出している。 CPUクーラーもFANが、過去ダメになって、余っていたサイズの会わないFANが付いている。 GPUは中古で購入したときにFANを固定するネジが破損していて、針金で固定している。 良くやってるなぁと自分に感心。 写真をマウスでクリックすると拡大されます 5月3日 32bitのICF3-Vの状況8bitのICF3-Zは、かなり完成していて、 もうICF3-Zのサイトまで準備中のステータスで作ってしまいました。 32bitのICF3-Vのほうは放置されたまま実装があまり進んでいません。 しかしICF3-Zの実装によって、圧縮命令や、割込みなどの実装技術については、確認されているので、あとは 命令コードのビットの割り当てをどうすれば、効率が上がるのかという状況です。 IoTのマイコンでは公開鍵暗号の処理は重いため、AES暗号による認証を利用する計画が多いのですが、 ICF3-Vは乗算器無しでキャリーレス乗算が効率的に処理できるため、圧倒的?に面積の 小さいプロセッサになる可能性もあるのかと。その確認をするところですが、後回しと思います。 ICF3ベースのCPUは、FPGAによってCPUの設計コストが下がったから、技術的なところを押さえておいて、 ビジネスになるところを見つけて推進するという方針です。 技術的なところだけではなく反ICF3のARM支持と、韓国の影響があるように見えています。 5月3日 僕が稲門会にいない理由日立にも稲門会はある。僕が言うのもなんなんですけど。稲門会というのは早稲田OBの集まりなんだと思う。 会社に入って数回はOB会に行ったことがある。 日立の大型コンピュータ開発部の僕のいた部署は東大卒がいっぱいの部署なのですが、 稲門会に参加しようとした日、何度か、一つ年下の東大卒の人に、稲門会には行かないように止められた。 そして稲門会には行かなくなった。 2度だけだったかもしれないが、2度あれば、稲門会に行ってはいけないのだと思うでしょう。 普通、東大派に入れてもらったのだと思いますよね。日立の東大卒の責任のひとつと思っています。 5月2日 PicoBlazeのアセンブラPicoBlazeの導入コストとWZetaのメリット。WZetaは公開予定で、予定の話で恐縮です。
Xilinxの8bit CPU PicoBlazeの開発環境はXilinxが提供する無償のものはWindows版だけのようです。
WindowsのVivadoで開発していれば、それほど問題はないのですが、
僕の場合はLinux上のQEMUでWindowsを起動してQEMUとLinuxでファイル共有させる環境の構築などで
1週間かかっています。さらに実際にデバッグするにはPicoBlazeのディスアセンブラが必要になるので
自作に数日かな?かかったような気がします。 5月2日 WZetaのアセンブラ作成中自作8bit CPUのWZetaが正しく動作するのか検証するためC言語でアセンブラの開発をしている。 30年前くらいからC言語を使っているが、仕事時間のおおよそ10%くらいはC言語かもしれない。 プログラミングをしていると、脳の損傷が、露見することがある。 自分にはプログラミングに癖があってif文の>=や<=は、>や<に置き換える癖。 今日も、置き換えをしようとした瞬間、できなくなっていることに、驚いた。 多分、脳のどっかが損傷している。最近の暗殺兵器は、かなり陰湿なので、注意されたい。 この手のことができるところは限られるし、依頼元は明らかなので、このやり方を問題と思う人もいると思うのです。 5月1日 CPUの知識は、どこで得たのか誤った認識を持つ人が多くでてきそうなので書きます。
1994年4月に日立の中央研究所超高速プロセッサ部の
大型コンピュータのCPUを開発するところに入りました。
その部署の実体は既に事業部にあり、先輩は、わざわざ研究所まで来て、
将来、自分の仕事を奪われるような行いは、しません。
1日くらいやってきて、性能測定の方法だけ、僕に教えて後は、ほとんど放置でした。
研究所に入って、1年が過ぎようとするところで、IBMのCPUを購入して
大型コンピュータを開発する部署に異動になって、
IBMのCMOS CPUと日立のメモリを接続する電子回路シミュレーションをする仕事になりました。
4月28日 超軽量8bit CPUが合成できたまだ目の調子がわるい。文章がスムーズに読めない。 4月27日 頭痛が強くなって中断中痛い、、、 4月26日 もうひとつ8bit CPUを作り始めた頭が痛み出したので作業しにくくなったため日記を書きます。
8bit CPU ICF3-Zの仕上げに入ったところで、もっと軽量な8bit CPUを思いつきました。
世界のインターネットインフラに影響する可能性を持つSSLアクセラレータICF3-Fが最重要で、
ICF3-Fで使う超軽量な8bit CPUが必要だったため、急遽、新しい8bit CPUの開発を始めました。
ICF3-Zで8bit CPUを開発する環境は整っていたので、急速に出来上がってきています。
4月24日 性能重視のLUT数昨日の日記には面積重視の結果しか書かなかったのですが、性能重視の結果を出してみます。 いい性能が合成されても少しVerilogのファイルを変更すると、2度と合成されないとか、ありそうなのですが、とりあえず。 (乱数シードを調整して、同じ条件で、多数合成すれば、いいと思うが、まだそこまで調べていません)
FPGAはXilinxの(XC7A35TICSG324-1L)です。 4月23日 自作CPUに64KBの拡張RAMを実装文字認識力の低下でネット上の記事を読むのが多少、辛い。
64KBの全領域に書き込んで、正しく書き込まれたかを確認するプログラムがFPGAの実機で動作しました。 シミュレーションでプログラム終了後、64KBのメモリを全部表示させ、正しい値が書き込まれているか確認しました。 動いている。 FPGAはXilinxの(XC7A35TICSG324-1L)です。 もう少し小さいFPGAでも十分入りますが、Artyは緑のLEDが4個+4個の合計8個あって、Dレジスタ1バイトの値を表示させるのに使っています。 4月19日 自作CPUのデバッグ機能が動いた午前中、医者に行ってきました。とくに何かあるという話はありませんでした。 XilinxのFPGA(XC7A35TICSG324-1L)に実装して面積を確認しています。 論理合成のオプションで結果が違うので、面積重視、性能重視の結果です。
400 LUTいかない面積の小さいCPUで、追加のデバッグモジュールなしにパスカウントを 使ったブレークポイントを設定できるのは、良くできるほうなんだろうと思うが、 他のCPUの面積とかわからないから、なんとも。 4月16日 早めに言っておきたいことがあります数か月前に前兆らしきもの(まだ医者に言われてない)ができて、またもう一つできました。 治ればいいのですが、数か月前にできたものも治っていない。 僕が消滅すればですが某大手メーカーの東大卒に激怒していたことを、みな忘れないようにお願いします。 OpenICF3も、この激怒を広報していただける方のみ、 使ってください。僕は某大手メーカーの東大卒が悪いと考えています。 これから大きな研究成果や開発成果をあげる方。明日は我が身と思います。 それ以外の方も、考えていただけますよう、よろしくお願いします。 大きな成果を上げると、潰され、隠蔽できず。僕のようになるのです。あまりに、酷いことになります。 4月15日 8bit CPUの割込みが動作したICF3-Z(8bit CPU)の圧縮命令と割込みの動作を確認中。いくつか試してみたが、どちらも、なんか動作している。 まだまだ動作検証が必要だが、ちょっと嬉しい。バグをいくつか修正したら性能が少し低下しました。 Intelの8051という有名な8bitマイコンをFPGAにしたlight52があったので比較。 light52のFPGAはXilinx Zynq(-1)で、ICF3-ZのXilinx Artix(-1)と、ほぼ同じなのではないかと。
light52の説明書を読むと1命令の実行に6サイクルとある。
ICF3-Zは1命令1サイクルで同時に2命令を1サイクルで処理できることも、稀だがある。
なんか、圧倒的、みたいな。^^) ICF3-Zは動作検証中なので、最終的にどうなるのか、まだ未定。性能が悪くなる予定は、ないですが。 4月13日 自作仮想マシンとか昨日1日中、眠っていたり、深い思考ができない状態だが、仮想マシンに興味を持った。
Ruby言語にマイコン用の仮想マシンmRuby VMがあるらしい。
ほとんど研究ネタだと思うが、自作仮想マシンを作ってみるのも面白いかなと。
実用性については不明なので、暇にならないとできないが。 4月11日 自作8bit CPUで除算した結果をLチカ自作8bit CPU(ICF3-Z)が、動くようになったので16bit÷8bitの除算をして、その結果をLEDに表示させてみました。 16bit÷8bitの除算には17サイクルが必要になりますが、従来CPUの命令セットでは、除算器無しに、この性能はでません。 シフト命令、減算命令、条件分岐命令の組合せで除算をすれば、数倍から10倍のサイクルが必要となると思われます。 ICF3-Zは面積が小さいわりに高性能な乗除算が可能です。 1サイクルが複数クロックのCPUもありますがICF3-Zは1サイクル=1クロックです。 LEDが点滅する動画もYouTubeにアップしました。 4月10日 自作8bit CPUとMicroBlazeとの比較注意!ICF3-Z(自作8bit CPU)の全機能を実装していますが、論理的な検証を全くしていないので、
結果が変わってくる可能性があります。XilinxのソフトCPUコアには8bitのPicoBlazeと32bitのMicroBlazeがあります。
PicoBlazeとMicroBlazeの性能差は、かなりあってICF3-Zは、その間に入るような感じかもしれない。
ICF3-ZをソフトCPUコアとして使うなら8bitで制御できて高い周波数が要求されるようなケースで役に立つように思う。
PicoBlazeは1命令の実行に2サイクルかかるので実質、50MHz程度のI/O制御となる。
一方、ICF3-Zは150-180MHzのI/O制御が可能となる。
実際にI/O制御のプログラム経験はなく、ICF3-Fが初めてなので、使い勝手がいい命令セットになっているのか、わからないが、
使いやすいような命令セットにしたつもり。
両者、メモリは4KBですが、多分、MicroBlazeは2KBコード、2KBデータなんじゃないかと思います。 一方、ICF3-Zは4KBコードと256バイトのデータ。 機能的な差はMicroBlazeが32bitなのに対し、ICF3-Zが8bitである他、
ICF3-Zは圧縮命令を持っているため16bit命令が使えます。MicroBlazeの2倍の命令を格納できる機能を持っている。
ICF3-Zは8bitながら乗算、除算、余算ができるので、そういう処理はMicroBlaze(乗算器無)よりも勝ります。
ICF3-ZはI/O命令と加減算の命令が同時にできることもメリットです。 上側がMicroBlazeの実装結果、下側がICF3-Zの実装結果。ICF3-Zが小さいことがわかると思います。 4月9日 名前を考えたWZetaにしよう再び目が辛くなってきた。頭の損傷の傾向も見えてきた。比率の計算ができなくなっている。 例えばMIPS(million instructions per second)、CPI(Cycles Per Instruction)が計算できない。数十秒かかる。 青色ダイオードやフラッシュメモリの発明における教訓を思い出す。 この事件が表面化した状態で、頭を打ちぬく銃の乱射の放置は全方位問題なはず。 自身に銃口が向けられて何ができるのかを考えてみてください。善良な市民に発砲しないところを見せたほうが良いように思うのです。 前置きが長くなりましたがICF3-Z(8bi CPU)のFPGAへの仮実装が続いています。
面積と周波数の概略を知るため論理的な動作検証よりも先に仮実装をしています。
まだ正しい数字とは言い難いですがプログラムメモリ4KB(ECC無)の場合、
XilinxのFPGA(XC7A35TICSG324-1L)で180MHzの周波数になりました。
Xilinxの8bitCPU、PicoBlazeでは100MHz程度(実質50MHz)。
Xilinxの32bitは昨年測定してみた結果がブログにあります。
166MHz程度のようです。もしかすると設定の改善でもう少し性能がでるのかもしれないですが。^^; 最初からわかっていたことですがICF3-Zの面積は、PicoBlazeと比較して大きいので、 ICF3-F用の通信制御に、もっと小さい面積のプロセッサが欲しくなってきた。 ICF3-Zから、さらにフォークしてICF3-Zのサブセットになるようなプロセッサを作ろうかなと。 名前を考える。ICF3-ZZ(ダブルゼータ)がいいかと思ったが、サブセットにするとICF3の特長を失うのでWZetaという名前にしよう。 名前だけ、先に決まった。(笑) 4月7日 8bit CPUのVerilogシミュレーションが動いたまだAレジスタとBレジスタに即値を代入して加算した結果をAレジスタに代入するという簡単なプログラムでの確認しかできていない。
いろいろな命令の確認をする前にXilinxのFPGAに実装すると、どのくらいの面積(LUT数、FF数)になるのか、知りたくなって、FPGAへの実装を始めた。
ICF3-Z(8bit CPU)は移植性を考えたVerilogになっていて、プログラム用のメモリのVerilogがBRAMに変換できず、半日が経過した。
CEやリセットのないFFからBRAMには変換できないのではないかという推理。
ASICを考えるなら不要なCEとリセットは、削除して軽量な実装にしたいと考えていたので、原因究明に時間がかかった。
結局、原因を明らかにするよりBRAMを直接記述することに。
なぜXilinxの8bit CPU PicoBlazeと比較しないのかと考えた人もあるかと。 ICF3-Zは演算レジスタ(A,B,C,D)を余計に装備しているので高い周波数で動作して、乗除算機能があるので、 乗除算はPicoBlazeの10倍以上、高速なはずなのです。面積で負けることは、最初からわかっていることなので。 4月5日 NHK新番組「逆転人生」相変わらず頭と体が痛い。目の調子は良くなったが、頭が悪くなっている問題が検出されている。 4月2日 わかっていること僕は世界の銀行で使われるような暗号装置(1999年のICF3)の開発をしているときに会社に
監視員をつけられていると思う。
監視をしなければ僕が悪組織と内通していない保証ができない。
軍事機密レベルの監視装置がついていてもおかしくはない。いや、ついていると思う。
監視員は監視ついでに僕のリストラの方法を考え、さらに儲けようとする。
監視員にとってみればOpenICF3が成功すれば、これまでの悪事が明らかになる。
そして潰せば国の損失になる。
そこで監視員が考えることは、僕からOpenICF3の利権を奪うか、事実上、無効化することだと思う。
僕にしてみればOpenICF3は、これまでの、とてつもない不遇を、どうにかするための大事な資産であり、
不遇が解決しない限りは、騙し取られないようにするため運用があまりできない。
どうしようもない。学生を使った手口も使ってくるかもしれない。そのあたりを考えていただけると。
4月1日 エイプリルフールだから許されるだろう被弾して結局、1日以上、寝ていた。頭痛と筋肉痛と両方。 |