|
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日以上、寝ていた。頭痛と筋肉痛と両方。 3月31日 一気に8bit CPUをやるつもりでしたが被弾しまくって半日以上、寝ていたという状況です。意識があるのにイビキをするという、辛い。
多分、頭が壊れかかっている。
8bit CPUの仕様や設計図を見て、どいうアーキテクチャなのか、わかる人ばかりではないと思うので、
もう少し説明します。
普通のCPUではプログラムの命令コードをパイプラインに流し込んで制御信号に変換します。
命令コードの順番によっては制御信号を調整することが必要で、そこに論理ゲートが必要になります。
CPUのハードウェアが動的にスケジュールして制御信号を調整することになります。
一方、ICF3-Zは、命令コードが直接、制御信号になっているのでコンパイルする時点で、
静的にスケジュールするため、動的スケジュールのハードが不要であること、動的スケジュールよりも、
もっと性能のいいコードを生成することができるのです。
コンパイラというよりは人手によるアセンブラが現実的ですが、コンパイラも考えられます。
ICF3-Z方式のデメリットは命令コードのビット長が大きくなりやすくCPUのハードは減少しても、
メモリが増大してしまいます。これを16bit圧縮命令によって改善します。
今月に入ってICF3-Zの実装を検討し始めると、簡素な実装で、すぐにできそうなので、
ICF3-Fの前に急いでやってしまうことにしたのです。
3月30日 1995年の基板設計資料(初公開)某大手メーカーで大型コンピュータ(MP5600)の基板設計をしていたときの資料です。
基板以外にもマルチチップモジュールの資料も多数残されています。
そのうちの1枚です。
初公開なのは退職時に自分がした仕事は持っていくことを言っていますが、
ICF3や
myuTokenのように
明示的に断っていないからですが、もう20年以上前の資料で、
大型コンピュータの歴史資料になっていると思ったので初公開してみました。
僕が電気工学科卒業でワークステーションを使うことが得意だったことから、
CMOSのデータジッタ解析の回路シミュレーションで活躍したという話です。
当時のテクノロジ開発部では、ワークステーションを使いこなせる人材がいなかったため、
データジッタのノイズ解析を線形重ね合わせという方法で解析をしていました。
当時のテクノロジ開発部の課長は、僕がワークステーションを使うことが
得意であることに目をつけて、大量シミュレーションによるノイズ解析をさせた。 写真をマウスでクリックすると拡大されます 3月30日 1999年 ICF3の表彰状某大手メーカーで表彰状をいただきました。
今頃、気づいたのですが、僕1人の名前しかない。
もらったときは設計者の名前、全員があったように思ったのです。
何故か?T村さんの名前があって、設計者といえば、そうなのですが、
さすが東大卒という記憶があったので。 3月30日 ICF3-Zまだ計画中です今日も頭と体の具合が悪くて出力が80%低下しています。
8bit CPUのICF3-Zのアセンブラ&シミュレータの開発を始めています。
まだ圧縮命令、割込みの検証ができていないので、
ICF3-Zのプロジェクトに参加してみたいと言われても、
まだICF3-Zのプロジェクトを計画しているところです。
圧縮命令、割込みの実装ができることを示しておくことが僕の目的で、
ついでにプロジェクトにしてみてもいいかなという感じでした。
プロジェクトの成否は、ICF3-Zのゲート面積と性能がとても優れている
ことですが、まだ確認されていません。 3月29日 期待値作成用のC言語によるシミュレータ体が軽く風邪をひいたようにだるい。
作業のペースが遅くなること、昼寝が多くなる程度だが、何故だるいのかを考える。
察していただければと。
3月28日 シミュレーション用のVerilogファイル完成正確に報告します。眼球に振動が加わることは普段あまりないことですが、
たまにそういうことがあると、振動に合わせて、瞬間的に目が真っ暗になる。
目が真っ暗になると日記書けなくなるので、早めに言っておこうかと。 3月27日 シミュレーション用のVerilogファイル作成中正確に報告します。頭がつらい。どのくらいなのか?
興味でインターネット上のZ80のエミュレータの記事とかを読んでいるとLSIとかの型番、
英数字6~7文字くらいの文字列が良くでてくる。
これを2、3度、読み直して10秒くらいかけないと読めないことがある。
文字の映像がぼやけているわけではない。
3月27日 大金が動くお金が動くところを見ることになはるが、その中身は全く知らない。 64歳に弾丸で打ち抜かれると、全くの大損計算 3月26日 Verilogのファイルができた頭が辛い。午前中は睡眠弾、夜は痺弾といったところか。
弾の使いどころはあるのでしょうけど。どういう人に向けているのかを、もう一度、考えて欲しいところです。
3月25日 RISC-VがApache2.0で公開されていた連日、被弾して頭がつらい。
RISC-VがApache2.0で公開されていたみたい。
9段のパイプラインで並列に2つのパプイラインがあると、かなり高性能なCPUなのかと。
3月24日 Arduinoの性能を実測目を開けているのが、少しつらい。頭にも問題があるのかも。
おかげで日記が進む。江戸時代の侍は刀を持っていたが科学の進歩で銃の時代になると、
どんなに強い侍でも遠距離から頭を打ちぬけば死ぬ。
もっと科学が進歩すれば見えない弾丸で頭を打ちぬくこともできるような気がする。
その報告だけは、しておきます。 3月23日 8bit CPUでAES暗号目まいがして作業がすすまず、日記を書くことに。
設計図をverilogにしているところだが、あれこれ考えている。
ICF3-Zは整数演算を連続でするのが得意なのでAES暗号とか、少し見てみた。
S-Boxの256バイト変換テーブル2個を、どうするかなのだが、
プログラム中の即値として埋め込むことができれば、うまくいきそうな感じだ。
1ワード32bitに8bitの変換データを2個が、入りそうなところまで考えた。
3月20日 8bit CPUの割込み徐々にバージョンアップする方法では破綻すると思い、あれこれ考えざるを得なくなっている。 レジスタウィンドウを実装しようかとも思ったが8bit CPUにレジスタウィンドウは、やっぱり無い。 複数要因に対応する割込みは必要だろうと思い、作り直している。 3月19日 8bit CPUのverilogを作成中頭が痛くなってきた。これでまた作業が遅れる。
そういえばIPA関係のイベントで、お腹に電極版を貼り付けて電気的に筋肉を動かす装置を開発している人をみかけた。
人間の人はしないと思うけど電磁パルス砲を人間の頭に向ける実験とか辞めて欲しい。
3月17日 頭痛で作業が進まない頭痛で作業が進まない。頭痛発生装置をどうにかしないと。 本当に遅れている。頭痛で、やむを得ず寝ると、結構な時間眠っている。 3月17日 大学の成績小学5年のときにCASIOのFX-502Pという電卓で遊び始めて中学1年でナイコン族になり、
中学2年でSHARP MZ-2000を買ってもらってZ80のマシン語で遊んでましたと楽し気に話すと、
この人、大学でてないんじゃないかという反応を示す人も多い。 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を設計中に考えたことまだ頭の調子が良くない。善良な市民に、こういう方法で言うことをきかせることの問題を感じる。 3月8日 Intel CPUの新しい脆弱性が話題に目がまだ辛い。視点を移動させてから安定するまでに数秒、目に力をいれないといけない。
作業速度が半分以下になっていると思う。 3月7日 目が煩わしくて作業があまり進まない昨年から目が急激に悪くなっている。
もう状態がいいときでも目が煩わしくて作業に集中することがやりにくくなっている。
目の焦点距離を合わせる機能が、ほとんど動いていないのかも。
5cm距離が違う場所に目を動かしてしまうと息苦しくなる。
つまり距離の違うところに目を動かさないように自然と体が制御されてしまうのだが疲れて仕方がない。
これ以上は限界にきている。
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 CPUICF3-Vよりも、もっと面積の小さい8bit CPUをICF3をベースに作れないか考えだした。
ICF3-Zと命名だけしてみる。(ICF3 ZEROみたいな(笑)) 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らしい。
しかし、ごく簡単な通信制御なので自作がいいかなと。 |