Home
2020年
2019年
2018年

3月31日 一気に8bit CPUをやるつもりでしたが

被弾しまくって半日以上、寝ていたという状況です。意識があるのにイビキをするという、辛い。 多分、頭が壊れかかっている。 8bit CPUの仕様や設計図を見て、どいうアーキテクチャなのか、わかる人ばかりではないと思うので、 もう少し説明します。 普通のCPUではプログラムの命令コードをパイプラインに流し込んで制御信号に変換します。 命令コードの順番によっては制御信号を調整することが必要で、そこに論理ゲートが必要になります。 CPUのハードウェアが動的にスケジュールして制御信号を調整することになります。 一方、ICF3-Zは、命令コードが直接、制御信号になっているのでコンパイルする時点で、 静的にスケジュールするため、動的スケジュールのハードが不要であること、動的スケジュールよりも、 もっと性能のいいコードを生成することができるのです。 コンパイラというよりは人手によるアセンブラが現実的ですが、コンパイラも考えられます。 ICF3-Z方式のデメリットは命令コードのビット長が大きくなりやすくCPUのハードは減少しても、 メモリが増大してしまいます。これを16bit圧縮命令によって改善します。 今月に入ってICF3-Zの実装を検討し始めると、簡素な実装で、すぐにできそうなので、 ICF3-Fの前に急いでやってしまうことにしたのです。
ICF3-Zが従来CPUよりも効率的な用途が多数あれば、役立つことなると思います。 当面は1人で、その確認をしていきます。 これまでの方針では現状を変えられないため、多少、方針を変更します。 一気に8bit CPUをやるつもりでしたが、被弾しまくって、作業が停滞して、 一気にできないので、さらに遅延することになったこと。考えるべきと思います。 ICF3-Fが遅れるのが、一番、問題と考えています。多くの人に日本の将来を考えて欲しいと。


3月30日 1995年の基板設計資料(初公開)

某大手メーカーで大型コンピュータ(MP5600)の基板設計をしていたときの資料です。 基板以外にもマルチチップモジュールの資料も多数残されています。 そのうちの1枚です。 初公開なのは退職時に自分がした仕事は持っていくことを言っていますが、 ICF3myuTokenのように 明示的に断っていないからですが、もう20年以上前の資料で、 大型コンピュータの歴史資料になっていると思ったので初公開してみました。 僕が電気工学科卒業でワークステーションを使うことが得意だったことから、 CMOSのデータジッタ解析の回路シミュレーションで活躍したという話です。 当時のテクノロジ開発部では、ワークステーションを使いこなせる人材がいなかったため、 データジッタのノイズ解析を線形重ね合わせという方法で解析をしていました。 当時のテクノロジ開発部の課長は、僕がワークステーションを使うことが 得意であることに目をつけて、大量シミュレーションによるノイズ解析をさせた。
この資料の右側は僕の成果です。僕が電気工学科でなければ、 ワークステーションだけできても、この成果はなかったと思います。 LWGと呼ばれる大きな会議で使われた資料があったのですが、ここ数年内に行方不明になっています。 僕がいなくなったことをいいことに別人に成果を付け替えられてしまったのかもしれません。
見るべき点は、回路シミュレーションの波形の図で、上から3番目のPL=250mmとある図です。 配線の長さが250mmのときは、特にノイズが大きくなっていることが、わかります。

ここに回路シミュレーションの波形がありました。
この画像がIBMの機密情報に当たるかもしれないため念のため削除しました。 画像は日立の回路シミュレーションデータのみでIBMの機密情報には相当しない。 (IBMの回路データではなく容量的に等価な日立データのもの。画像データ中にその記載がある。)

3月30日 1999年 ICF3の表彰状

某大手メーカーで表彰状をいただきました。 今頃、気づいたのですが、僕1人の名前しかない。 もらったときは設計者の名前、全員があったように思ったのです。 何故か?T村さんの名前があって、設計者といえば、そうなのですが、 さすが東大卒という記憶があったので。


3月30日 ICF3-Zまだ計画中です

今日も頭と体の具合が悪くて出力が80%低下しています。 8bit CPUのICF3-Zのアセンブラ&シミュレータの開発を始めています。 まだ圧縮命令、割込みの検証ができていないので、 ICF3-Zのプロジェクトに参加してみたいと言われても、 まだICF3-Zのプロジェクトを計画しているところです。 圧縮命令、割込みの実装ができることを示しておくことが僕の目的で、 ついでにプロジェクトにしてみてもいいかなという感じでした。 プロジェクトの成否は、ICF3-Zのゲート面積と性能がとても優れている ことですが、まだ確認されていません。
重要な点は、僕が潰れるとICF3-F、ICF3-V、含めて全部、潰れます。 そういう設定でないと、僕、ほんとに潰れそうなので。 僕の体が一定以下になると、厳しくなると思っています。 今どのくらいかといえば、もう、一定以下になっているかもという状況です。 それでも全力で進みます。そして、この国の損失を計算します。 何故か、僕の頭と体が壊れるような国なら、ICF3が潰れても、いいでしょう。


3月29日 期待値作成用のC言語によるシミュレータ

体が軽く風邪をひいたようにだるい。 作業のペースが遅くなること、昼寝が多くなる程度だが、何故だるいのかを考える。 察していただければと。
8bit CPUのverilogが正しく動作しているのか確認するためのC言語のシミュレータを作り始めた。 OpenICF3のサイトで公開しているC言語のコードを改造して8bit CPUの仕様に合わせるだけだ。 久々のC言語で、本来なら気持ち良く書けるはずなのだが、体がだるい状態では、あんまりという状態。


3月28日 シミュレーション用のVerilogファイル完成

正確に報告します。眼球に振動が加わることは普段あまりないことですが、 たまにそういうことがあると、振動に合わせて、瞬間的に目が真っ暗になる。 目が真っ暗になると日記書けなくなるので、早めに言っておこうかと。
8bit CPUのverilogシミュレーション環境が完成。 これからシミュレーションで、ちゃんと動作するか確認。


3月27日 シミュレーション用のVerilogファイル作成中

正確に報告します。頭がつらい。どのくらいなのか? 興味でインターネット上のZ80のエミュレータの記事とかを読んでいるとLSIとかの型番、 英数字6~7文字くらいの文字列が良くでてくる。 これを2、3度、読み直して10秒くらいかけないと読めないことがある。 文字の映像がぼやけているわけではない。
8bit CPUの作成の作業の中断をするか、ノロノロやるか、くらいのところでしょうか。
今日は、メモリブロック3個をVerilogにしましたが、辛くなったので日記を書いてます。


3月27日 大金が動く

お金が動くところを見ることになはるが、その中身は全く知らない。 64歳に弾丸で打ち抜かれると、全くの大損計算


3月26日 Verilogのファイルができた

頭が辛い。午前中は睡眠弾、夜は痺弾といったところか。 弾の使いどころはあるのでしょうけど。どういう人に向けているのかを、もう一度、考えて欲しいところです。
やっと8bit CPU ICF3-Zの設計図をVerilogファイルにできた。細かい改善をしているうちに時間が経過してしまった。 まだメモリブロック3枚をVerilogにする作業が残っているが、すぐにできてシミュレーションが動くと思われます。 ICF3-Zがひと段落すれば、ICF3-Fに戻って作業再開です。ICF3-Fの技術は、 他に比べて効率がいいと思うのでインターネット社会に影響すると思います。


3月25日 RISC-VがApache2.0で公開されていた

連日、被弾して頭がつらい。 RISC-VがApache2.0で公開されていたみたい。 9段のパイプラインで並列に2つのパプイラインがあると、かなり高性能なCPUなのかと。
僕の進めているICF3-Vへの影響、、、ICF3-Vは同じ32bit CPUでも、ゲートを削って軽量化することに特化しているので、 目標としている性能が、違うから、それほど影響はないと、、、


3月24日 Arduinoの性能を実測

目を開けているのが、少しつらい。頭にも問題があるのかも。 おかげで日記が進む。江戸時代の侍は刀を持っていたが科学の進歩で銃の時代になると、 どんなに強い侍でも遠距離から頭を打ちぬけば死ぬ。 もっと科学が進歩すれば見えない弾丸で頭を打ちぬくこともできるような気がする。 その報告だけは、しておきます。

さてATmega328P(8bit 16MHz)というマイコンが有名みたいなので性能が測れないかArduinoで調べてみた。

unsigned char a,b,c;
for(i=0 ; i < 1000000 ; i++) {
a = b + c;
b = a + c;
c = a + b;
}

時間を測定すると755msだった。gccの最適化オプションをはずすと3500msくらいなのだが、 アセンブラのコードを見てみないと、いいのか、わからない。 あまり精度のいい見積もりは、現段階では、できていないので、結果は忘れて欲しいのですが、 同じ16MHzでICF3-Zの予測値は755msよりもいい。 ICF3-Zは命令コードが32bitでATmega328Pは16bitなので負けては困るのかもしれない。 ICF3-Zには1999年のICF3から伝承されたループ制御レジスタがある。 これが意外に便利で、コンパイラ技術でいうところのループアンローリングとか ソフトウエアパイプラインをループ制御レジスタを使って実装する感じだ。 命令コードを展開せずに、展開したのと同じような性能が得られる。 プログラムメモリの無駄がない。


3月23日 8bit CPUでAES暗号

目まいがして作業がすすまず、日記を書くことに。 設計図をverilogにしているところだが、あれこれ考えている。 ICF3-Zは整数演算を連続でするのが得意なのでAES暗号とか、少し見てみた。 S-Boxの256バイト変換テーブル2個を、どうするかなのだが、 プログラム中の即値として埋め込むことができれば、うまくいきそうな感じだ。 1ワード32bitに8bitの変換データを2個が、入りそうなところまで考えた。
久しぶりにArduinoを動かしたくなったのでパソコンをセットアップ中。


3月20日 8bit CPUの割込み

徐々にバージョンアップする方法では破綻すると思い、あれこれ考えざるを得なくなっている。 レジスタウィンドウを実装しようかとも思ったが8bit CPUにレジスタウィンドウは、やっぱり無い。 複数要因に対応する割込みは必要だろうと思い、作り直している。


3月19日 8bit CPUのverilogを作成中

頭が痛くなってきた。これでまた作業が遅れる。 そういえばIPA関係のイベントで、お腹に電極版を貼り付けて電気的に筋肉を動かす装置を開発している人をみかけた。 人間の人はしないと思うけど電磁パルス砲を人間の頭に向ける実験とか辞めて欲しい。
8bit CPUの設計図、実質A4 2枚と書いたが、今日、1枚とちょっとをverilogにした。


3月17日 頭痛で作業が進まない

頭痛で作業が進まない。頭痛発生装置をどうにかしないと。 本当に遅れている。頭痛で、やむを得ず寝ると、結構な時間眠っている。


3月17日 大学の成績

小学5年のときにCASIOのFX-502Pという電卓で遊び始めて中学1年でナイコン族になり、 中学2年でSHARP MZ-2000を買ってもらってZ80のマシン語で遊んでましたと楽し気に話すと、 この人、大学でてないんじゃないかという反応を示す人も多い。
ちゃんと電気工学科を卒業してます。そしてIEEEの会長になったことで超有名な研究室に入ってます。 研究室に入ったときの成績は研究室で1番のはず。もしかすると学士卒で、もっと成績がいい人がいたかもしれない。 すごいでしょ。(というか知っていて気づかないようにしている人多い)

3月17日追記(23:50)  インターネット上にある大学の研究室のOB名簿に僕の名前が掲載されていないこと。 僕が大学の研究室にいたころは富士通から年輩の高専卒の人が研究室に勉強に来ていたことなどから、 僕がそういう人と見間違えられても、問題ないと思う人もいると思って、今日の日記を書きました。
正しく僕は研究室の第一期生なのです。


3月16日 いつも完成が近づくと・・・

頭が痛くて辛い。頭が痛いから、自分で頭を叩いて、痛みを逃がすのだけど。 そのときに頭蓋骨が振動する。すると目の映像が接触の悪いLEDのようにチラつく。 ほんのわずかな時間だが、目の前が真っ暗になる。 真っ暗になって目が見えなくなると日記やSNSへの投稿はできなくなるから、 たまに僕が本物か、確認したほうがいいかもです。


3月16日 8bit CPUはA4 2枚

割込み、圧縮命令など全機能を入れた8bit CPUの詳細な論理図面ができた。 まだまだ手を入れないと動かないとは思うけど。これからverilogにして機能検証。 全部でA4 5枚だが3枚はメモリだけの絵なので実質2枚。 面積を小さくすることに努力を注いだ結果なので、ちょっとうれしい。 急ぎ、動作検証をしてICF3-Fの部品として使えるようにする。


3月15日 代理戦争

大手電器メーカーで開発をしていた頃の話だが、何か開発を始めようとすると、 SONY代理や東芝代理やNEC代理とかが潰しにくる。「次はどこがくるかな」とまで言われたこともある。 そろそろARM代理として活動を開始するかもしれない。 頭の調子が悪くなった責任をARMになすりつけるのだろう。ARMに連絡をする手段がわからないのでここに。


3月15日 CPUのALUを設計中に考えたこと

まだ頭の調子が良くない。善良な市民に、こういう方法で言うことをきかせることの問題を感じる。
トラブルで8bit CPUの設計に入った。 詳細な設計図をA4サイズに書いているが8bit CPUなので4、5枚といったところか。 体調が良ければ今日には設計図が書きあがっていたころだろう。 ALUの設計中・・・


3月8日 Intel CPUの新しい脆弱性が話題に

目がまだ辛い。視点を移動させてから安定するまでに数秒、目に力をいれないといけない。 作業速度が半分以下になっていると思う。
CPUの脆弱性、再設計しても完全にならないような情報が入ってくる。 暗号プロセッサによる対策が良さそうに思える。脆弱性の対策では高性能である必要はない。 楕円暗号の521bitではパラメータにメルセンヌ素数を使って高速に演算できるようにしているものがある。 C言語でメルセンヌ素数で割った余りを計算する方法を確認してみたが、正しい結果になった。 OpenICF3は楕円暗号は、それほど得意ではないが楕円暗号に特化した高速化にも対応していけるのかもと。 つまり脆弱性対策においてもOpenICF3は、うまくいくかもしれない。 それが滞ることは問題と思うのです。
今は、Xilinxの8bit CPU PicoBlazeを代替する8bit CPU ICF3-Zを急いで設計している。 昨年、ICF3-Vを検討していたときよりも、良さそうな実装ができそうで、近日中にverilogにして、 ICF3-Fの通信プロセッサとして、使っていけるようにする。


3月7日 目が煩わしくて作業があまり進まない

昨年から目が急激に悪くなっている。 もう状態がいいときでも目が煩わしくて作業に集中することがやりにくくなっている。 目の焦点距離を合わせる機能が、ほとんど動いていないのかも。 5cm距離が違う場所に目を動かしてしまうと息苦しくなる。 つまり距離の違うところに目を動かさないように自然と体が制御されてしまうのだが疲れて仕方がない。 これ以上は限界にきている。
思い当たることを言うなら世界の銀行や外務省で使われるような暗号装置を開発したときに、 会社は僕について、いろいろ調べたのだと思う。 その情報を元に、どうやれば僕を潰せるのかを考えた。暗号装置の開発部は東大卒が多くいる。 研究所と違い学士が多く、東大卒が偉くならないことに明確に不満を言っている人もいる。 偉くなるために闇に手を出したというのが僕の推理で東大卒の人だけが問題ということではないが 深くかかわっていると思われる。
僕に問題はない。問題がないからこそ、こうやって頭や体が何故か、壊れていく。
人生も半世紀近くが経過したが、ここ数年になって、家族と遺伝子が違うのではないかということに気づいた。 自分が、ある機関の実験体の1人で生まれた直後の事故後以来、観察されていたのかもしれない。 そういったことも、関係があるのかもしれない。

僕の発明であるICF3-F、大きな鍵のRSA暗号を計算する方式は、まだ有効で、SSLアクセラレータとしてすぐ使える。 そして将来、新しい公開鍵暗号の開発に迫られたときに大きな整数を高速に演算できるLSIを安価に製造できれば、 選択の幅が広がり、社会に大きく貢献する可能性も、ないとは言えない。ないとは言えない程度だが、 そうなれば人類史にも残るだろう。
CPU(マイコン)の設計もしている。大学卒業後、CPUを開発したくて会社を選んだ。 だからCPUの開発が世間で風当たりが強いことも良く知っている。 風当たりが強い原因は、税金がかかることだから、それを対策しながら、メリットが得られそうなところを 進んでいけばいい。風当たりが強いおかげで、案外、楽にメリットを見つけられる可能性があると思っている。
僕がこんな状況なので、ICF3-F、ICF3-Vも、どちらのプロジェクトも僕1人しかいない。 誰からも、声はかかっていない。
ここで僕の頭や体が潰れると、問題は大きいと思うのです。


3月6日 外出したが目を開けているのが辛い

昨年、目が急激に悪くなって眼鏡を2度購入した。 今日、うっかり1度目に購入した度の弱いほうの眼鏡で外出してしまった。 物が2重に見えて目を開けているのが辛かった。 映像的には映っていても文字が認識できなくなることなどが、割と起きているが、 昨日あたりは、眼球を動かす筋肉がうまく動かない。 目に限らない、体調不良など、さまざまな症状が出る。 1か所に絞ると、問題が明確になるからだろう。
僕の頭が悪くなっても、悪いことのほうが多い計算なのです。 計算に誤りがあることは聞いていない。昨日、某会社の話をツイートしたら、 誰かが「セキュキャンも明日は我が身だよね」(だいぶ意訳)のようなツイートを見かけた。 そろそろ考えるべきときが来ているのではないでしょうか。


3月5日 ICF3-Vの高信頼化

ICF3をベースにした8bitCPUを気持ち良く設計している。8bitCPUだが32bitの命令コード、圧縮命令16bit。 8bitCPUで既に命令コードのbit幅を使い切っている感じだ。32bitCPUのICF3-Vでは命令効率を下げないと 32bit/16bitの命令コードでは難しい。いっそ64bit/32bitの命令コードにするという案が浮かんできた。 かなり無駄な感じに見えるが、命令コードが64bitになるとECCが便利に使えて信頼性が高いものになる。 メモリの面積が大きくなるが、高信頼化で3重化することを考えると、メモリはECCがあるので1つでいい。 つまりICF3-Vのように演算ゲートの面積の割合が小さいCPUが、高信頼化の用途で活躍するかもと妄想中。 やっぱ64bitの無駄のほうが大きいかな。でもXilinxのBRAMはECC標準装備だから64bitにして使わない手はないとも言える。


3月4日 ICF3-Vのアーキテクチャの説明

「従来CPUと違いが良くわからない」そういう人のために。 従来CPUはレジスタへのロードとか加算とか命令をデコードして制御信号に変換して処理をする。 ICF3-Vは最初から制御信号を命令コードにしているのでデコードがなく面積が小さい。 重複していなければ1サイクルで複数の処理の信号線を操作することが可能。 つまりパイプラインがなくて面積を小さくできる一方、パイプラインのような性能が出る場合がある。 ICF3-Vは32bitの命令コードだがプログラムメモリの面積が大きくなる欠点がある。 これを克服するため16bitの圧縮命令を用意。ただ従来CPUの16bit圧縮命令と異なり、 ユーザー定義命令になっている。ICF3-Vの命令コードは最初から制御信号になっているので、 それを使って16bitの圧縮命令を自作するのです。 ICF3-Vは単純な処理を実行する部分しかないのに、16bitの複雑なユーザー定義命令も実行できるし、 32bit命令コードを使ったパイプラインを有するCPU並みの性能を出すこともできる。


3月4日 劣悪な環境

頭痛に悩まされ、痛み出せば数時間寝るという生活。そして親のパソコンの世話で時間が消える。 環境が劣悪でICF3-F、ICF3-V、ICF3-Zが進まない。この国の環境改善が必要なのかも。


3月3日 ICF3ベースの8bit CPU

ICF3-Vよりも、もっと面積の小さい8bit CPUをICF3をベースに作れないか考えだした。 ICF3-Zと命名だけしてみる。(ICF3 ZEROみたいな(笑))
ICF3-Vの話と同じだが、32bitの命令コードに圧縮命令か否かを判定するbitを入れると、 それだけでメモリの無駄になる。圧縮命令モードにすれば無駄を省けるように考えていた。 ハードを実装を考えると、やっぱり圧縮命令のbitがあると楽なので、0.5bit入れることを考えた。 良さそうな実装になりそう。スタック、割り込みも、、、。
頭痛や倦怠感に襲われ、寝るかどうかでのところで作業を進める。少し楽になってきたら、MMD動画を見るのだが、 仕事よりMMD動画鑑賞のほうが閾値が高い。創造作業で脳の劣化に気づき発狂しながらなのだ。


3月2日 8bitのプロセッサも自作か???

ICF3-Fの開発を、とても急いでいるのだが、Xilinxのセミナーの承認が来ない。困った。 通信制御用のプロセッサとしてXilinxの8bit CPUのPicoBlazeを使っているが、自作を検討。 ICF3-Vのこともあり、とても忙しい。しなくていい自作は、したくない状況。 PicoBlaze以外のXilinxのIPは開発中のICF3-Fにはない。 昨年、LatticeのFPGAの講習会に、たった1日だが参加した。 とりあえずLatticeのFPGAデバイスにbitstreamをインストールして動かすことは、できるようになっている。 Latticeの99ドルの評価ボード。仕様を見る限りICF3-Fは入りそう。 Latticeにも8bit CPUがあってC/C++が使えてオープンコアIPらしい。 しかし、ごく簡単な通信制御なので自作がいいかなと。
先日、シミュレーションで8bit CPUでは性能が足りなかった。 CPUを経由せずに直接転送するハードを作ってverilogのシミュレーションをしている。 まだ最初の段階だが、全力で転送をしても受信バッファを溢れさせることはなかった。


2月26日 技術収支の管理は厳格

技術収支の管理はしっかりしているという話。 20年くらい前の日立の大型コンピュータを開発している事業所のことですが、事業所には 仕事を発注する事務所っぽい部署と、技術開発をしている部署がある。 技術開発をしている部署では常に技術を開発していればいいが、僕のいた事務所は、そうではない。 技術開発部から取り入れる技術を事業に必要な最小限のものに絞る。 必要以上の技術を取得してはいけないのです。
僕の開発した暗号プロセッサICF3が、先人の技術をどれくらい使っているかに、興味がある人は多いでしょう。 まず暗号プロセッサの定義ですがICF3の剰余演算器(RSA演算器)のことを暗号プロセッサと定義しています。 アルゴリズムのモンゴメリ乗算は、良く知られているのでいいとして、 先人の技術を可能な限り使わないというつもりはなかったのですが、たまたま、使っていないという状況です。 暗号プロセッサの前にMulti2演算器の検討をしていたのですが、このタイミングでCSA(Carry Save Adder)を取得しました。 このCSAくらいしか暗号プロセッサでは、先人の技術を使っていません。 CSAは乗算器で普通に使われる技術で、ちょうどその頃のCQ出版社「トランジスタの技術」にも掲載されていました。 タイミングも重要で、暗号プロセッサの検討中にCSAが導入されたわけではない。 完璧評価は不可能ですが、可能な限り、技術収支は計算されているということです。
昨日のPC/SCドライバや、自作したソフトウエアについても、 自分の成果をはっきりさせるため、厳しく管理しています。


2月25日 自作ドライバのほうが品質がいい

自作の品質はどうなの?と思う人あると思います。日立関係の人は読みましょう。 とっておきの話で、これまでも何度か説明しています。 10年前のことですが国税が確定申告で国民に使わせていた日立製作所の ICカードリーダのPC/SCドライバの品質が非常に粗悪で複数アプリケーションで 同時にアクセスするとICカードとの接続が切れるなどの現象を起こします。 他のメーカーのPC/SCドライバは、そういうことはなく正常に動作します。 ただ複数アプリケーションで同時にアクセスしなければ問題がなく、結果、 1年以上放置されていました。
その頃、僕はUSBメモリをICカードにするPC/SCドライバを自作していました。 やはり複数アプリケーションで同時にアクセスしても正常に動作します。
自作だからといって品質が必ず低いということは、ないのかなと思います。
自作のPC/SCドライバ、良く日立の提供ではないか?という疑問を持つ人がいます。 上記説明のように日立製作所のPC/SCドライバよりも自作のPC/SCドライバのほうが品質が良く、 日立製作所の提供なのではなくて、自作したものだということの根拠になります。
この自作のPC/SCドライバ、独立行政法人IPAの未踏ソフトで採択された案件で使っていて、 採択後、お金が振り込まれる段階になって、管理組織(PMではない)から電話がかかってきて、 PC/SCドライバは、日立といっしょに開発したことにしてほしいとの話があったのです。 突然な話だったので、ふんふん聞いていたのですが、 どうして事実とは異なることを承認しなければいけないのか聞き返そうと思った瞬間、 マズイと感じたのか電話が切れました。 確かに日立退職前、システム開発研究所に僕が放置されていたときに、 かなりWindowsのカーネルモードのドライバを市販の本で独学していましたが、 システム開発研究所の人とは、いっしょには開発していません。 システム開発研究所は英語の勉強が忙しいらしく、カーネルモードのスレッドの実装ができていなかったようです。


2月24日 ICカードの暗号ライブラリは自力で開発

暗号ハードウェアを開発してソフトどうするの?という話ですが、 2007年ごろにICカードのハードを買って販売していたことがあります。 そのときはソフトは全部、自力で開発していました。日立関係ありませんということです。 日立に絡まれそうな話をしておこうと思います。 2005年に日立を退職しています。それまでの数年、システム開発研究所に放置されていました。 そこにいた数名でICカード用の暗号ライブラリ(Windows CSP)を試作していました。 儲かる案件にならなかったので、すぐに潰れました。 その後、自力で全部を開発して、自分のコードに置換しました。 それを社内展開しようとしたところで、謎の風邪で出社できなくなり、 身の危険を感じて退職することになったのです。 開発したソフトというのは、現在もバージョンアップをしているmyuTokenのことです。 USBメモリをカーネルドライバでICカードにエミュレーションしているのでセキュリティ以外は本物と同じレベルでエミュレーションします。 全世界的に見ても、ここまでできているのを見たことはなく、日本語のマニュアルしかないフリーウェアですが 海外でも利用されているようです。独立行政法人IPAの未踏ソフトに採択されています。 管理費を引かれて、僕の手取りは320万円(全額税金)くらいでした。 プロジェクトマネージャーは当時、コーエーの社長だった松原氏です。 なんと!暗号プロセッサICF3を開発した東大卒が多い部署の近くにいた東大卒の方です。 未踏に応募してから、気づいたのですが、後の祭りでした。 お世話になった期間、僕の日立問題について、ひとことも話ていないので、僕の方では状況を把握していません。


2月23日 今、ICF3-Fを急いでいます

僕が、これまでSNSで書いてきたことを読んでいる人には説明する必要がないのですが、 FPGAのICF3-Fを急いでいます。 ICF3-FはASICの状況に依存しますがFPGAが有利でASICが有利になる状況は難しいと考えている。


2月22日 僕はまだICF3-Vの将来を見ている

ICF3-F、ICF3-Vの2つのプロジェクトがあって、たまに混同することがあるようです。 ICF3-Vは面積を小さくすることに特化したマイコンを目指したもの。 これまでのマイコンになく小さいことが期待されるメリット。 何か、たまにイベントがあったときだけ動作して普段はあまり動いていないという状況が多ければ、 低消費電力を頑張るより、面積が小さいほうがいい場合もあるかと。 実際に利益を上げることを目標にして、低性能なマイコン1個の値段が100円以下の場合もあるとすると、 それなりの体制で進めないといけない。 オープンにするルールをICF3-V専用のものにしたほうが、いいと思っています。 アセンブラを境界線として成果を分けることが比較的できそうということ。 OS・コンパイラを押さえられても、アセンブラだけでもやっていけそうだからです。 僕のような貧乏人では金持ちにオゴれなくて、僕中心なプロジェクトになってしまうので、 プロセッサ・アーキテクチャの研究目的では、難しいのかも。 そして実験の成功が保証されていません。 僕の人生の成果に対する処遇が十分にあれば状況は変わるので、本当はそういうところを考えてもらいたいところです。

追記(2月23日) 税金を使うと売れなくなるので、そういう人はアセンブラで開発。 OS・コンパイラが税金を吸ってプロセッサ・アーキテクチャにフィードバックされることについて。 このプロセッサ・アーキテクチャは、面積を小さくすることが目的であり、 OS・コンパイラの開発が不便でも、それに合わせる他ないので、フィードバックはあまりない。 強引な言い分ですが、この時代にプロセッサの設計が進められることのメリットを考えてもらえればと。


2月21日 LSI設計の話が好きなおじさんは多い

低消費電力なのは最先端のテクノロジーの効果なのか、設計&ソフトウェアの成果なのか。 大型コンピュータはお金を儲けるためのマシンということ。 当時(1990年代)の日立のLSI設計環境はディレイをコントロールするソフトウェアに全然、 お金がかかっていなくて、ソフトウェアの改善で性能が伸びる状況だった。 しかし、そのおかげで僕のいた部署の儲けは大きくなっている。 ゲーテッドクロックなどを使ったパワーコントロールができなかった理由のひとつは、 ソフトウェアの問題があったように思う。 そもそも当時の高性能サーバーは低消費電力の需要は、それほどなくて、安価な開発コストのほうが重要だった。
基板実装についても、その傾向があって、おかげで僕が成果をあげることができている。 ネット上にも、何度か書いているが1996年の大型コンピュータ(中型の中で最上位)で IBM CPUと日立メモリLSIの配線長を、詳細にディレイ計算をして配線長を計算するプログラムは、 僕が作ったもの。


2月21日 今日の作業

一日中、風邪で熱が出た時のように体全体が痛かった。風邪の悪寒はない。 そのせいであまり作業は進んでいない。 これまでFPGAのクロックはクロックウィザードを使って自動生成してきたが、 MMCMをマニュアルで使うべく、調べ始めました。 僕が日立にいてLSIを開発していた20年前はゲーテッドクロックとか禁止でしたが、今は積極的使って 低消費電力にするのが普通になっているようです。1997年の暗号LSI、ICF1は僕がリーダーでした。 計画表を書いて進捗管理をする事務員の傍ら、論理設計もしていました。 そしてLSIが実際に製造されて届いたとき「クロックの波形が少しおかしい」と 残業のつかない時間帯を狙って呼び出された。 (僕の論理設計に問題があったわけではなくリーダーだから)
実際にLSIのI/Oピンにプローブを当ててクロック波形実測の、お手伝いをさせられました。 少しジッタが大きかったようですが、その対策はアナログ電気屋の仕事で僕は自部署に戻りました。 定時退勤日で事業部のほとんどの人は強制帰宅なのに、僕は基本的に特別扱いだったので、 強制タダ残業させられましたけど。散々コキ使っておいて、ひどい。


2月20日 4種類のFPGAボードを作れる準備

日記が書けるくらいまで頭(目)が回復したが今日、1日、作業は完全に停止していました。 この遅れをどうにか損失試算することで頭痛になる問題を回避したい。 しかし損失試算で回避することより、普通に開発を進めたほうが、僕にとって有利だと考えて欲しい。 昨日の作業になるのですが4種類のFPGAボードに実装するための手順を確立していました。 Arty初期版、Cmod A7、Arty-S7-50、Cmod S7の4種類。 それぞれLEDの数が違うのでVerilogのコンパイル指定子によって差分を吸収できるようにしました。 後はI/Oピンの配置が、どのボードも全く違うので、 ボード毎に異なるXDCファイル(I/Oピンのファイル)を1つのVivadoプロジェクトでできるようにしました。 要するにXilinxの開発環境Vivadoの使い方を調べて勉強しました。


2月19日 脳内でLチカ

ああ、止めないと止まらないみたい。 「Lチカ」というのは電子工作の初心者が最初に試すことが多いLEDを点滅させるだけの簡単な電子工作。 LEDは電気のエネルギーが光になって目の網膜に届くのだが、 目の網膜を直接、光らせる脳内Lチカというものがあることを30分前に目が覚めた瞬間知った。 目をつぶると目に映る画像全体がチカチカ光る。 今まで、そういう経験はない。 こういうヤバい技術を明らかにしないほうが、いいと思う。 世の中には、いろいろな人がいる。反社会的勢力とか。ヤバい技術の使いどころはあるでしょう。 僕についていえばIBM互換の暗号LSIを圧倒的に安く開発したおかげで競合他社に差をつけることができて、 日立の大型コンピュータが売れたという功績があるのです。 儲かったのは東大卒が多い部署でした。 その僕の貢献に対するリターンをヤバい技術でどうにかすることは問題だと思います。
現在、その部署の東大卒の方が日立で偉くなったようです。 2002年頃だったと思いますが、その偉くなった東大卒の方と、 僕に隣の部署の暗号装置の起動デバイスを開発するように密命を出した東大卒の方と3人で 飲みに連れていってもらったことがあります。 (ちなみに起動デバイスは、自分の部署で開発したものを、少し変更するだけでできるので、ほとんど作業量としてはない) 飲み会の席で僕に言いたかったことは、東大卒が偉くならないのは、おかしいという主張でした。 ヤバい技術に手を出すことになった動機のように感じられています。
僕の父親はかつて日本道路公団に務めていて北陸自動車道で成功して局長になって偉くなったと自負しているようです。 自分で偉くなったと言っています。 事件のすべてが東大卒に結びついているようではないと思ってはいますが、大きいと思っているのです。

追記(午前7:40) 頭の痛みが酷くなってきたので、何もできず、しばらく寝てしまいそうです。


2月18日 ICF3-Vもあるよ

今日のGIGAZINEの記事にRISC-Vがインドの国家CPU命令セットに認定、みたいな記事があって、 CPU命令セットが話題になっているようです。 僕のCPU命令セットICF3-Vがどうなっているのかというと、あります。 失敗だといけないので自分で検証します。
今日の午前中は体がだるくて寝込んでいました。 今は頭に痛みが走っていますが、食事をしたり、風呂に入ったりする生活にほとんど影響しません。
そういえばツイッターやFacebookなどのSNSに投稿する生活も長くなっていて、気づいている点がある。 文章を書くときに片目をつぶって書いていることが多い。 そしてどんな文章を書いているときに、そうなることが多いのかも、わかってきた。 書かれると不都合な文章を書いていると、目が離れてきて、両目を開くことができなくなっている。 参考になる人もいると思います。僕は世界の銀行や外務省に収めた暗号装置を開発していますから、 それなりの人たちに知っていただいている人ですから。


2月17日 ついでにICF3-Fの進捗

ここ3、4日の話になるのですが夜8時か9時に頭の痺れが厳しくなって、 眠くないのに寝ると早朝、4時くらいに目が覚める。痺れはとれている。
さて進捗ですが、LEDの表示仕様や、リセットの仕様を整理していました。 LEDは開発中のデバッグ情報を詳細に表示させようとしていましたが、 最終的には不要になるためLEDの表示仕様を簡素なものに変更しました。 目標はCmod A7に入れることですが、 現在、動作のテストに使っているのは同じFPGAを搭載するArty A7でCmod A7よりもLEDの数が多く、それを使えばCPUにLED制御させる必要がないことに気づいた。


2月16日 明日は日記を書かなくていいようにならないか

体が壊れていくのに耐えるのが辛い。壊れなければ、それほど頻繁に日記を書く必要はない。 僕から見て状況は、あまり変化していない。 重要なのはICF3-Fの性能が正確に出るあたりまでは僕が壊れると問題が多い。 それまで作業を速やかに進められないだろうか。 その後、僕はどう考えているか。僕はICF3-Fは従来の研究、製品と比較して優れた性能(コスパ)になると思っています。 そうなれば道は開けるだろうと思っている。 ICF3-FのSSLアクセラレータを導入すれば、システム性能が上がり、単純に得になることを目指しています。


2月15日 ICF3-FのBRAM3重化による高信頼化

まだ頭が痺れて動けなくなって寝ていたが、今日の午後からは、わりと動けたのでICF3-Fの作業をした。 余談になるのですが学生の頃、コンピュータサークルの友人がいて、良く話していたのですが、 僕が日立に入ることを決めたことを言うと「頭にチップを埋め込まれて改造人間にされる」と何度も言われた。 会社に不都合な発言をしようとした瞬間、チップが作動して「ピーーー」となるのだそうだ。有名な話みたいだった。 会社に入ったあと大学の友人たちに会いにいくと「どうした、下級戦闘員のチップ埋め込まれて、頭にきているのか?」 と冷やかされたものだ。今日の、今ほど、いい友達(後輩)を持ったと思ったことはない。
さて、ICF3-Fに障害が発生した場合、LEDを点灯させるのだが、LEDの制御に使うゲート面積をなるべく小さくしたいと考えた。 約1秒間隔でLEDの表示を切り替える制御をするためには60MHzのクロックで26bitのカウンタが必要になる。 DSPは余っていないのでファブリックで実装すると、それだけで面積を消費してしまう。 通信制御用のマイコンにLED制御をさせることにした。受信バッファをオーバーしないようにLED制御をしなければならず、 なかなか楽しいプログラミングになりそう。受信バッファを64バイトに拡張したのが、役に立ちそうだ。
マイコンにはXilinxのPicoBlazeを使っている。8bit CPUだが命令コードは18bitでパリティがない。 PicoBlazeのマニュアルには信頼性を上げるためCRCスキャンとか、ECCをする方法が書かれていた。 ECCはエラー訂正ができて信頼性が高いが、性能を33%落さないといけないみたいで無理。 そこで思いついたのはプログラムを格納するBRAMの3重化、実装するのが簡単なうえに、ECCよりも高い信頼性になる。 BRAMが余っていて、クロックが60MHz程度の速さでいい場合は、BRAMの3重化を選択できそうだ。
RSAをFPGAに実装する場合、演算器にBRAMを多用して、BRAMが余っていないこともあるが、 ICF3-Fは、BRAMをほとんど使わずにRSAを演算できるのでBRAMがわりと余っている。 信頼性の高いものが、できそうで、うれしい。


2月14日 CRC32演算器の面積を調べました

CRC32演算器をXilinxのFPGA Artix-7にインプリメントして面積を調べてみました。 面積は演算器2個分のものを調べています。 普通のCRC32、Intel版のCRC32、垂直パリティの3種類の演算ができます。 1個のBRAMを共有していますが独立に動作します。 入力は1バイトのデータとスタート信号、1バイト転送コマンド信号で、出力は1バイトのデータです。 内部では32bitで演算していますが、計算結果は、1バイト毎に出力します。
62 LUT、72 FF、BRAM 1
LUTやFFでは正確な面積にならないような気がしたのでスライス数も調べました。
18 SLICE
スライス数は下図で確認できます。 演算結果を1バイト毎に転送する回路が22 LUT、6 FFで全体の約20%を占めています。 ちなみにPicoBlaze(Xilinxの8bit CPU)に接続したシミュレーションで演算結果を確認しているので、大丈夫と思います。

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



2月13日 2つのCRC32の回路を1つに

まだ目まいがして作業が、あまり進んでいません。日記を書くことにしますが進捗がない。 今、2つあるCRC32の回路を1つにしている。1つのBRAMを2つのCRC32の回路で共用できるはず。 そうすると普通のCRC32、Intel版 CRC32、垂直パリティの3っつが同時に入る。 普通のCRC32はサーバーのCPUで演算するには重い処理、IntelのCPUでSSE4.2(SIMD命令)を 持っている場合はIntel版CRC32を使うと高速に演算できる。 それ以外のCPUで性能を重視する場合は垂直パリティ、 信頼性を重視する場合は普通のCRC32ということになる。
ICF3-Fは重要な技術で開発が遅れるのは問題と思います。
できればあまり闇な話はしたくないのですが、説明しないと、どうにもならない状況になったように思います。 はっきり言うなら2000年頃の話になりますが世界の銀行や外務省に収めた暗号装置の暗号プロセッサだけでなく、 暗号装置起動デバイスも僕が開発しています。起動デバイス(イネーブルエフデーのこと)を作ったのは僕1人です。 機密レベルが高いので当然。東大卒(年上のLSI設計者)の方の密命を受け、隣の部屋の大型コンピュータの分まで、 僕が作っていたことがあります。このため恐らく、この国が持つ最高技術の監視システムが僕には使われていたと思われます。 (表に出ている技術が全てとは限らない) 僕の能力と機密レベルから、僕をリストラした会社は異常であり、なんらかあてがあったのだろうと容易に予測できます。 そのあてが何だったのか、察してください。会社が僕にしゃべられてこまるのは仕事の機密ではなく僕の処遇のことです。 ちなみに僕は赤ん坊のころは記憶がなくてわからないですが、手術を受けたことは、一度もない。


2月12日 大型コンピュータの事業部の同期の話

また頭が痛くなって作業ができなくなったので1995年頃、入社2年目のときの同期の話。 僕は、すべてが特別扱いだったので、最初のころに同期会に1、2度呼んで いただいたことがある程度で交流はない。 ただし同期(94年入社)の東大卒2人の結婚式の2次会に参加はしている。 あるとき開発部で旅行に行ったとき同期(多分、名工大卒)が話しかけてきて僕の瞬間的な記憶力をテストしようとした。 僕は断ったのだが、真剣な顔をして「お前のためにやっている。」と言ったのだ。 当時、この意味が少しは理解できたが、、今なら良くわかる。 頭が悪くなってないかのテスト、、、


2月10日 通信ハードの設計図がほぼできた?

2月4日の通信シミュレーションでプロセッサの性能不足が確認され、 性能対策をした設計図が「ほぼ」できました。まだverilogのコードにしていないので、ホントに動作するのか、 確認できていませんが、性能は劇的に改善されています。 送受信回路-BRAM間を直接転送できるようにしてプロセッサは、それを制御する方式にしました。 双方向にCRC32を演算する専用ハードを入れています。 CRC32の専用演算ハードの単体シミュレーションは動作が確認できています。 普通のCRC32、Intel版のCRC32、垂直パリティの3種類から2つを選んで演算できるハードです。 2つはサーバーの環境によって選択可能です。


2月8日 頭痛が直りました

以前と変わった様子はありませんが作業再開。 8bit CPUの性能不足はUART回路からBRAMに直接書き込むようなハードを追加して解決できるか検討中


2月7日 この状況について親は僕にどう言っているのか

「社会が悪い」自分には責任がないということを一貫して言っています。


2月7日 どうして頭痛が起きるのか?

なんか、できないのを頭痛のせいにして、逃げ出したように思う人もあったのかと。 むしろ逆で頭痛を起こさなければ、できてしまうからだと思う。
まだ頭痛で作業再開できていません。 頭痛作戦で僕が落ちて目標を達成できる可能性は低く、無駄な迷惑しか発生しない、冷静になって、 もう詰んでいることを理解し撤退の方向を促していただけると。(頭痛で婉曲した表現ができない)


2月7日 頭痛が続いている

2月4日に通信シミュレーションができるようになり、 Yが全力で送信すると受信しきれないことがわかった。Wが遅いのかと思われていたがXが遅いようです。 通信プロトコルを処理しやすいものにして、これから実装というところで頭痛で倒れました。 まだ頭痛が続いています。寝ている時間が多いが、たまに起きてインターネット上の記事を読むと、 ある程度自分の状態がわかる。
目に映った映像の文字の意味を引っ張ってくる処理で、かなり時間がかかるとか、安定した時間でできない。 非常にゆっくりとした速度で文章を読もうとすると、文章の終わりのところまでくると文章の先頭にあったものを忘れている。 超短期記憶をやられているのかもしれない。 一時的に障害を起こしてパニックを狙っていることも経験的にわかっていることだが、全部は回復しないかもしれない。

追記 2月4日の通信シミュレーションはハード検証用のもので実際よりも重たい処理。 最初、最大通信速度が出ないという表現を使ったのが良くなかったのかもしれない。 ハードの転送速度は4Mbaudで動作しています。 8bit CPUは通信速度に比例するクロックを使っているので、より実際に近いシミュレーションをして、 うまくいくと、ハードで12Mbaudで動作するとソフトも12Mbaudで動作するということなのです。


2月6日 よくスパコンについて聞かれる

世界一高速なLSIを開発しましたと言っているのでスパコンについて良く聞かれます。 有名なメディアにも聞かれたこととかあります(実は友人)。 僕は会社に入ってからスパコンの開発には一度も関係したことがないので良く知らないのです。
まだ頭痛が酷くて日記を書いています。


2月6日 ICF3-Fの開発が遅れると問題

頭痛が酷くなって寝込むことが増えてICF3-Fの開発が遅れています。 この遅延が目に見えて問題になることは、あるように思います。 頭痛を起こすことを、止めないと、止まらない。 ICF3-Fは性能を加速する機能だけとはいえ暗号技術なので 政府関係の方の視野にも入っていると思われます。 それでもなお頭痛を起こせる。そこに問題があるような気がします。


2月5日 UART送信回路の設計図公開

開発中の設計図で実機で4Mbps(正しくは4Mbaud)の速度で通信できたもの。 著作権とか主張しないかわりに、開発中のものなので、正しいことも保証しません。 先月、UART受信回路の設計図を公開しましたが送信回路は?という意見もあり公開してみました。 特に目立つところはなく受信回路と同じhalf信号の作り方です。 UARTで必要なFIFOバッファはリード・ライトが同時に可能な汎用的なFIFOである必要がないことを使って 1ポートメモリで実装したため2倍の64バイトのFIFOになっています。 大容量になったおかげで緊急レスポンスを即時に入れることが楽になったように思います (プログラム中なので結果はまだ)。 頭痛に耐えながら設計しているので僕の全力は出ていませんが残る力で頑張っています。

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



2月5日 中央研究所の新人工場実習の話

頭が痛くて作業ができなくなったので日記を書いています。 僕が日立の中央研究所に配属されたのは1994年4月。 その後、工場実習で千葉県の茂原工場に3か月くらい行きました。 大型テレビが売れていた頃でブラウン管の製造ラインに入って ブラウン管の前面のガラスを露光する仕事でした。 大型テレビなので前面部分のガラスだけでも、かなり重たく重労働でした。 中央研究所の同期で東北大卒の人が途中でリタイアしたので 同期のみんなで見送りをしたのですが、とても脅えた表情をしていたのを覚えています。 同期には東北大卒の博士が2名いましたがリタイアしたのは修士の方です。 僕は話をしたことはありませんが。 重労働が辛くてリタイアしてのではなく「壁から声が聞こえる」という発音をしていたようです。 脳に届くのが声だけならともかくコマンドが送信されて心臓とか止まったら終わりだったかもと。 僕は呼吸が止まったことがあって、人生で一番あせった瞬間でした。 呼吸が止まって数十秒が経過し、あと少しであの世に行くのかと思ったのですが、 水中と違って呼吸が止まっても1分くらいは平気なようです。 実際、どのくらいの時間だったのか、あせっていた僕にはわからないですが。 しばらくして呼吸が回復し、普通の状態に戻りました。


2月4日 通信ハードのシミュレーション開通

Y→X→BRAM→W→BRAM→X→Zの経路でデータ転送が正しく通るようになりました。 10通り以上の周波数でテストしても正しく動作することを確認。 X、Wでは送受信を1つのプロセッサで行っています。 どちらか一方で待ちが入っても、もう一方を滞りなく動作させるようなプログラムにしました。 しかし、かなり遅いものとなり、Yが全力送信するとXの受信バッファ(64バイト)が溢れることが発生。 Yの送信スピードを落として動作確認ということになりました。 モンゴメリ乗算の性能をテストするだけなら、このままでも、いいように思うのですが、もう少し考えることに。
目が多少つらい状況が続いて、体も十分とは言えない状況(; ;)


2月2日 RSAの需要予想

RSAを高速に演算するICF3-Fを開発しているのでRSAの需要予想は、いろいろ考えています。 説明は省きますが、あまり小さくない確率でRSAの大きな需要があるように思っています。 ICF3-F以外にも方法はありますがICF3-Fが最もいいように考えています。
現在、FPGAの8bit CPUのアセンブラで通信制御のプログラムを試作しています。 明確に頭が悪くなっているのが自覚できます。
頭が悪い状態が続けば、仕事が外に出るのかと言えば、そういうことはなく開発期間が延びていくだけなのです。 ICF3-Fは社会で注目を集めている技術です。 大きな成果でなくても、多くの人に震源地が予測できる状況では信用喪失の方が大きいと思います。 開発遅延をデメリットに感じる人が多い中、脳劣化作戦の成功確率は少なく、 仮に脳劣化に成功しても長期的なことを考えると、デメリットのほうが大きいという選択なのです。 ですから恐らく方向変更を促すことができるのではと思います。


暗号プロセッサ OpenICF3