Home

並列8bitパソコン Vattles

関係する日記(2021年)だけをnoteから転記。
並列8bitパソコンを作って儲かる話になるかも。儲かると思う人は作りましょう。
GPUはSIMD型ですが、Vattlesは、他にない蜜結合MIMD型です。 その特性を活かした自動車部品として期待できないかと思っているところがコアになってます。 配線のコスト低減、電磁波対策としての並列処理の普遍性など。
そして蜜結合MIMD型のパソコンをFPGAで作って儲ければ、 税金を使うことなく立ち上げることができて、日本の将来に役立つだろうと思っています。 パソコンのハードはFPGAの完成品が既に存在しています。 トランジスタの技術2021年3月号のFPGA特集 で取り上げられたDigilent社 BASYS3 (ザイリンクス社 Aritx-7搭載)でも、いいような気がするので、 あまり初期投資がいらない。ただ本格的にパソコン販売を考えるなら自分で基板を作る必要があると思います。 失敗しても僕の責任にしない人は!

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



2月9日 並列8bitパソコンのコンセプト(1)

IchigoJamのように、 マイコンではなくてパソコンという売り方にすると付加価値が大きくなって利益が出やすいのかと思ったのです。 8bitパソコンを趣味で作ってみたいなと思いコンセプトだけ考えてみた。 XilinxのFPGAを使うことしか考えてないので、優れたアーキテクチャの パソコンではないかもしれないが、結構、いいかもと思えている。 高性能は期待できないが、たまには、高速化の役に立つかもしれない。
多くの用途では高周波数のARM、RISC-Vで十分だと思うが、 8bit CPUを並列にしたほうが、高速な処理が、たまにはあるだろうと。 そのたまにしかなくて、1人ではできないところを、汎用的に使えるパソコンにすれば、 なんとかなるかなと。
この並列8bitプロセッサはバイト単位のアクセスのスループットが、高性能なマイコンを 超えることを可能にする。見積の精度はあまいけどXilinxのFPGAを搭載した Cmod A7-15T では8個の演算CPUを搭載できるかな。話題のRaspberry Pi Picoと同じくらいのクロック周波数で動作する。 16bit÷8bitなら10倍の性能が出そう。Picoは2コアだから除算しかしないプログラムなら40倍高速。 (PicoはCortex-M0+なのですが外付けの除算器を持っているようです)     バイトアクセスの性能は単純計算すれば4倍。これを活かすことができればPicoの性能を超えることができるだろう。
将来、8bit CPUの並列処理によって32bit CPUよりコスパのいいプロセッサになるかもしれない。 この並列8bitプロセッサの名前を「Vattles」にします。 由来はナムコのゲームXeviousのデッドコピーBattlesの頭文字をVに変更したもの。 Vattlesを搭載した並列8bitパソコンは商用化を目指すので、すみません。 税金、学校関係の方は、ご利用いただけないです。
でも、当面、時間ないか。プロセッサ間通信はメインCPUがタイミングを見てリード・ライトします。 趣味の8bitパソコンだが、並列プログラミングを極めると、 組み込み向けのデータプロセッサとして将来、使えることがあるかもと思えている。 ほとんど期待できないが、コスパのいいデータ圧縮プロセッサになったりするだろうか。 ICF3-Zが将来、使えるCPUになること期待で、ICF3-ZのCPU 1個の8bitパソコンとして遊んでみてもいい。


2月10日 並列8bitパソコンのコンセプト(2)

XilinxのFPGAを搭載した Cmod A7を、そのまま使ってもいいし、電子工作が好きな人は自作してもいい。
8個あるサブCPUを効率的に使えるアプリは何だろうかと考える。 サブCPUに1つの仕事を割り当てる制御系のアプリはプログラミングが容易になって使えるかも。 メインCPUがサブCPUの状態を見ながらサブCPUをコントロールするのも容易だと思う。
通信をAES暗号で暗号化したVT100端末にすると、子供が多い家庭では普通のPCに寄生する形で パソコン通信に接続できる。あるいは、できるなら直接SSHクライアントでもいい。 端末では通信は下りが圧倒的に多い。AES暗号のCBCモードの復号化では8個のサブCPUで 8倍の性能を出せる。暗号化された受信データを高速に復号化できる。 非力な8bit CPUのパソコンでも通信端末にできるかも。 普通のキーボードを接続すればメールをやりとりしているうちに子供が ブラインドタイプを覚えられるところがいいのかも。
サブCPUの主記憶(データメモリ)はメインCPUの主記憶(データメモリ)でもあるので、 最大64KBの主記憶(データメモリ)を持った8bit CPU 1個のパソコンとして使ってもいい。 スタンドアロンで仮想マシンを活かしたプログラミング言語の学習用として使える。

昔の8bitパソコンと違ってプログラムメモリは別に存在している。 現在は最大256KBですが、すぐに最大1MBに拡張できる予定。


2月11日 VattlesはOSCARのデッドコピーか?

早稲田大学の笠原研究室の並列マシンOSCARを、ご存じの方もあるかもしれない。 約30年前に僕が笠原研究室に入ったときにはOSCARは既に老朽化していたが、 自動並列化コンパイラの研究に、まだ現役で使われていた。当時の学会関係では有名なマシンであったようです。 僕と同じ日立の大型コンピュータの事業部に入った研究室の同期はOSCARで 研究データをとっていたと思います。 僕はOSCARの実機を触る班に入らなかったので、実は良く知らないのです。 8個のプロセッサが3本のバスで接続されるアーキテクチャという記憶が残っています。 VattlesはメインCPU1個、サブCPU8個で1本のバス接続(相当)なので、デッドコピーではないです。
VattlesのCPU、ICF3-Z(Zevios)は税金を使わない方針を謳ってプロジェクトを 立ち上げているので、学校関係で使えなくて、すみません。


2月11日 並列8bitパソコンのコンセプト(3)

並列8bitプロセッサVattlesの応用アプリケーションを考えてみる。 Vattlesの8個のサブCPUはGPUと異なりMIMD。 トランジスタ数を少なく抑えた8bit CPU Zevios(ICF3-Z)だからMIMDにすることができる。 並列処理によって低い周波数でも性能が出せるので遅い安価なメモリが使える。 このVattlesが安価なデータ圧縮プロセッサということになれば、 自動車などでセンサーとシステムとの通信で使うと、低いデータ転送レートでいいことになる。 そして安価な配線材料を使えるとなれば、自動車の生産台数を考えるなら、利益が出そうです。
Vattles搭載パソコンが普及すれば、通信内容に応じた高効率な圧縮アルゴリズムが考え出されるかもしれない。 存在しないハードの圧縮アルゴリズムを考える人はいないでしょう。


2月12日 並列8bitパソコンのコンセプト(4)

第3回目では自動車のセンサーとシステム間のデータ通信の圧縮について書きました。 8bit CPUを並列で動作させるよりも高周波数の32bit CPUのほうが便利かもしれない。 自動車の電子部品産業が、どうなっているのか、知っているわけではない。 しかしこれから流行る電気自動車で電磁波によるノイズが誤動作をさせる 問題があることはネットを見ればわかる。 そこで並列処理によって低い周波数で動作するCPUを使えば、多くの場合、 電磁波によるノイズの問題が小さくなると思われます。
8個の8bit CPUで8倍の性能がでるような圧縮アルゴリズムを採用すると、 32bit CPUと比較しても3倍から5倍の性能が出るように思います。 つまり3倍~5倍、周波数を落とせるということなので、電磁波対策の効果が期待できるかもと。
高信頼化のための並列処理。 4コアのARMでも同じ電磁波対策は、できそうですが、センサー毎に4コアのARMは割高な気がします。

汎用CPUによる並列処理ではなくて圧縮専用プロセッサがいいと思った人いたので解説すると、 圧縮アルゴリズムは用途が決まれば、それに合わせた圧縮方法によって、かなり効率の高い圧縮が期待できるのです。 用途ごとに圧縮専用プロセッサを作るのは、やはり高価かと。


2月15日 並列8bitパソコンのコンセプト(おまけ)

従来の計算機アーキテクチャはSIMD型が多くPlayStation3のCellもSIMD型です。 並列8bitパソコンのコンセプトの日記を書いていくうちに、 組み込み向けの小型のMIMD型が、これから先端技術として製品に導入されていく ような気がしたのです。ただ本当にそうなるのかは、わかりません。 厳密には1個のCPUのメモリ空間に8個の独立に動作するCPUを デュアルポートメモリで接続したマシンです。
サブCPUの個数、メモリのサイズ、メモリ空間の割り当て、割り込みなどを具体的に決めた仕様がないと、 プログラムやハードの開発は進まないと思っています。
パソコンのハードはXilinxのFPGAを使えば、組み立てとケースを作るだけで、出来そうです。 完成品も販売されていますが、在庫のみで販売終了なので、大量生産するには、組み立てるしかない。 このMIMD型のマシン(Vattles)でパソコンを作って、将来役立つように言えば、売れるということはないだろうか。
僕が中学生の頃はNEC PC-8001、SHARP MZ-80B/2000、富士通FM-7の時代で、 将来役立つという宣伝で10万円以上の値段で販売されていました。 期待するほどには役に立ちませんでしたがゲーム機としては役に立っていました。
TOSHIBA PASOPIAは「1家に5台」のキャッチフレーズのテレビCMをやっていたような気が。

8bit CPUが先端技術になることは考えていなかったのですが、可能性があるなら、 失敗しても無傷な範囲で、やってみたほうがいいように思ったのです。

NEC PC-8801のテレビCMのYoTube、 斉藤由貴が「パソコンは英語よりも大事」と言っています。


2月15日 ICF3-Zの方針に違反

並列8bitパソコン Vattlesの話です。
僕が開発している8bit CPU ICF3-Z は方針として税金を使わないことを決めています。SNS上には「自分で決めた方針を自分が破ってどうする」 みたいなものもあったので少し解説をします。
ICF3-Zを9個を使った並列マシンVattlesは30年前の早稲田大学にあった並列マシンOSCARに似ている ところもあってOSCAR研究成果が入る、つまり税金が使われることにならないか?ということだと思います。
僕はOSCARのあった研究室に入ったのですが、既に並列マシンOSCARは老朽化していたため、 次の並列マシンのための研究のほうをしています。次の並列マシンは富士通のスパコンのことです。 つまり僕自身は並列マシンOSCARの研究はしていません。 並列マシンOSCARの研究の要点は8~16プロセッサをバスで接続した並列マシン向けに 自動的に最適化するコンパイラです。 既存のプログラムを人が並列化をすることなくコンパイラが自動的するというもの。 既存のプログラムは、あまり並列性がないものも多く、これらを自動的に並列化して、 高性能を得るために、OSCARではプロセッサ間通信の性能を上げるためバスを3本にしています。
一方、Vattlesはバスを1本にしてハードを単純化しています。 並列性のない既存のプログラムを、どうにかして高速化するということを捨てます。 上流仕様から、人がプロセッサ数の並列性のあるプログラムを作成して、 CPUのクロック周波数を圧倒的に低くします。 最も重要なVattlesの目的はクロック周波数を圧倒的に低くして電気自動車など電磁波ノイズ対策として使われることです。
つまり並列マシンOSCARの研究成果は、あれば便利かもしれないですが、なくても全く問題ないのです。
研究室の卒業生の方にはアルゴリズムの並列化が得意な人も多くいらっしゃると思います。 企業に入られた方で、税金と関係ない人がVattlesシステムの納品先の開拓と、 ともにVattlesの先生になっていただければ、この国の産業が活性化するように思いました。


2月16日 プロセッサVattlesの並列プログラミング

Vattlesを構成する9個のCPUは、すべて ICF3-Z(Zevios)です。 このため1個のMain CPUのプログラムも、8個のSub CPUのプログラムも 同じツールでプログラミングできます。 ただしSub CPUでは同じサイクルにレジスタをリード・ライトできない制限があります。 このため少しMain CPUより性能が落ちます。
Main CPUとSub CPU間の通信は、デュアルポートメモリを使うことで、非常にシンプル通信できます。 Main CPUから見るとメインメモリにリード・ライトするだけです。 Sub CPUもメインメモリやレジスタをリード・ライトするだけでMain CPUと通信できます。 例えばAES暗号のプログラムをSub CPUに入れておきます。 AES暗号は固定サイクルで演算できるのでMainがSub CPUのメモリ領域に演算したいデータを書き込んで、 固定サイクル待ってから、Sub CPUのメモリ領域のメモリを読みだせばいいのです。 MainがSubの0番にAES暗号化を依頼してSub 0が実行を開始します。 次にMainがSubの1番にAES暗号化を依頼してSub 1の実行を開始します。 MIMD型なので、すべてのSub CPUにデータをセットするまで実行を待つ必要はありません。 最後のSub CPUにデータをセットして実行を開始したら、 0番目のSubの演算が終わるまで待ちます。 ICF3-Zはプログラムの実行サイクル数を計算するのが容易なので 並列プログラミングが簡単にできると思います。
例をもう一つ上げるとZIPやLHAのような圧縮を2KB単位でSub CPUに依頼すること。 ZIPやLHAのような圧縮プログラムは実行時間が可変長なのでMain CPUが終了を確認する必要があります。 1バイトの終了フラグをSub CPUのレジスタ(スクラッチパッド 256バイト)の領域に確保して 終了を書き込めば、Mainがそれを確認して、圧縮されたデータをリードします。 終了フラグはレジスタでなくてもデータメモリの領域でもいいのですが、 レジスタにすると1サイクル早く終了を報告できます。 ZIPやLHA圧縮のように実行時間が可変長な、ものでも並列プログラミングが簡単にできると思います。
Main-Subのプロセッサ間は、デュアルポートメモリなので、通信時間がほとんどないため、 小さい単位での並列化も可能です。 ICF3-Zの命令セットについては、初心者にとって難しいものですが、 Vattlesの並列プログラミングは、簡単だと思います。


2月17日 VattlesのAES暗号の性能

AES暗号は良く使われる用途の一つです。AES暗号のCBCモードの復号化では、 8個のサブCPUの稼働率は、ほぼ100%になります。 データを8分割して、それぞれCBCモードの暗号化をすれば、暗号化においても稼働率が、ほぼ100%になると思います。


2月25日 マイコン新時代到来?マルチプロセッサへ

CQ出版のInterface 4月号を購入。 8bit CPUにMicroPythonを移植する記事があったので購入しようと思ったのですが、買ってみてびっくり。 MicroPythonがFreeRTOSになっていました。どうもCQ出版の偽サイトに騙されたっぽいです。 僕の日記サイトも偽サイトで誤った情報を掴まされている可能性はあると思います。 重要なことは僕に直接、訊ねていただけるよう、お願いします。
せっかくInterfaceを購入したのでFreeRTOSの記事を少し読んでみました。 タスク・スケジューリングの話が書いてありました。 複数の仕事を、どういった順番でCPUで実行するのかという話です。 参考までに30年前、僕の大学の卒業研究はマルチプロセッサのタスク・スケジューリングです。 同じタスク・スケジューリングという言葉ですが、大雑把に言えばOSのタスク・スケジューリングと コンパイラのタスク・スケジューリングは別物と思ったほうが、良いと思います。 同じ言葉だからといって別物ということは、良くあるので、注意しましょう。
僕も、それほど詳しくないのですが、FreeRTOSのタスク・スケジューリングを読んで思ったことは、 タスク毎にCPUを割り当てれば、メンテナンスが良い、高信頼なシステムを構築できるのではないか。 ということです。プログラマは1つのタスクのリアルタイム処理に専念できますし、 複数のCPUで処理をするので処理量のわりには低いクロック周波数で動作できるので電磁波対策になれば、 高信頼を得られるので。
そしてマイコンのマルチプロセッサ化に貢献するのは、少ないトランジスタ数で乗算除算も高速に演算できる ICF3-Zです。 CPUの高速化は32bitで進んでしまったので高性能な8bitはあまり存在していないはず。 暗号プロセッサのために1999年に僕が独自に設計した加算器一体型の乗除算器がいいのです。
並列8bitパソコン Vattlesを開発して、多くの人が並列アルゴリズムを 開発できる機会を得られれば、この国の産業が活気づくような気がします。 何か、できないだろうか。
パソコンの儲けが、あてにできれば、立ち上がりが良くて、失敗しても、 昔の8bitパソコンのようなホビーとして楽しく遊べるというもの。

おまけの話
僕が中学生の頃に買ってもらった8bitパソコンはSHARP MZ-2000。 兵庫県川西市あるダイエーで19万円でした。MZ-2000は グラフィックメモリが別売でテキスト表示しかできませんでした。 どうにかグラフィックメモリ2万円?くらいで購入してもらいました。 パソコンのメモリといえばDDR3とか規格があって基板にチップが張り付いているものだと思うかもしれませんが、 MZ-2000のグラフィックメモリは違っていてRAMのチップをソケットに自分で差し込むタイプでした。 僕が中学生ということもあって、不注意にも、1つだけ反対向きにチップを差し込んでしまったのです。 パソコンの電源を入れて画像を表示させると、明らかに動作していないチップがある画面でした。 あわてて、もう一度、パソコンのフタを開けて正しい方向にチップを刺したのですが、1回で壊れたようです。 MZ-2000はグリーンディスプレイなので赤、緑、青、どれを表示させても緑なのでカラー対応のゲームをしても、 色がわからなくてゲームにならないという問題がありました。 カラー対応の麻雀ゲームでは、「白」と「中」が区別できず、ゲームができませんでした。 ところが、この故障したメモリのおかげでグリーンディスプレイでゲームができるようになったのです。 故障したRAMは赤の担当だったようで「白」と「中」の区別ができたのです。 すべてのハイが識別できたので、普通に麻雀ゲームができました。
とても笑える話でしょ。


暗号プロセッサ OpenICF3