R800ユーザーズマニュアルを読んで

 国会図書館に遠隔複写を申請していた、月刊Datum1990年10月号掲載の「R800ユーザーズマニュアル暫定版」が届いたのでざっと読んでみた。そもそもあんましハードウェアは詳しくないのだけど、いくつかわかったこと。

 速度アップと乗算命令追加以外でわりと特徴的なことは、

  • 新割り込みモード
  • DMA

 あたりだろう。新割り込みモードは、8段階の優先度付き割り込みで、割り込みベクターレジスタに登録した8ビットの値を上位アドレスにして、そこから2バイトずつ置かれたアドレスに割り込みごとにジャンプするようだ。従来の割り込みと新割り込みの切り替えは割り込みベクターレジスタベクターを書き込むかどうかで行われる。
 MMUというかマッパーは、24ビットのアドレススペースの上位11ビットを変更できるマッパーレジスタが9本用意され、8KB単位でページの内容を入れ替えられる模様。MAP0(0000H~1FFFH)からMAP7(E000H~FFFFH)までの8本と、新割り込み時に使われるMAP0'(0000H~1FFFH)がある。
 DMAはメモリ・メモリ間、メモリ・I/O間の高速データ転送を行う。これは24ビットリニアアドレスで実行可能。

 これらはすべて内部拡張レジスタを使用する。CSREGピンをLowに設定すると内部拡張レジスタが使用できる。なおMSX turbo Rではこのピンは常にHighなので、内部拡張レジスタにアクセスすることはできない。
 内部拡張レジスタは各8ビットでレジスタアドレス00Hから41Hまで存在するが、これらは通常のレジスタ、AとかHLみたいにマシン語の命令で直接操作できるわけではない。

内部I/OレジスタはCSREGピンを「LOW」にすることでアクセスできます。アドレス信号のA0が「LOW」の時、内部I/Oレジスタポインターが書き込まれ「HIGH」の時データが書き込まれます。ポインターはデータ書き込みごとにオートインクリメントされるためマッパレジスタ等の高速書き込みが可能です

 とあるのだがこの文章では具体的にどうしたらいいのかよくわからない。A0が「LOW」ということはアドレスの末尾が0であればいいのだろうけど、CSREGを「LOW」にしたあとで、メモリアクセスすればいいのかI/Oアクセスすればいいのか。どっちでもいいのか、まあとにかくA0を「LOW」にし、何らかの方法でレジスタポインターに目的のレジスタアドレスを設定し、A0を「HIGH」つまり奇数アドレスを設定してレジスタの中身を読み書きすることになるようだ。CSREGを切り替えるには外部回路を作ってI/Oで制御するのが一般的だと思うけど、一旦CSREGを「LOW」にしたらA0=「LOW」でレジスタポインタ、A0=「HIGH」でレジスタデータになるのなら、偶数奇数すべてのアドレスでこのどちらかになるわけで、LDやIN,OUT命令が全部拡張レジスタアクセスになっちゃうとしたら、どうやって戻せばいいんだろうか…うむ、なにか読み違えているっぽい。

せめてアセンブラで書かれた内部拡張レジスタ利用のサンプルコードでもあればと思うのだけど。そんなのはなかった。たとえばI/OポートFFHに0を書き込むとCSREGがLOWになって、1を書き込むとHIGHになるという前提で

XOR A ; A=0
OUT (FFH),A ; CSREGをLOWに
OUT (0),A ; Aが0だから拡張レジスタ0(メモリマッパー0のMA13-MA15)を指定
OUT (1),A ; 拡張レジスタ0に0を設定、ポインタはインクリメントされる。
INC A ; A=1
OUT (1),A ;拡張レジスタ1(メモリマッパー0のMA16-MA23)に1を設定
; これによって物理アドレス 010000Hがマッパー0に設定され、
; 論理アドレス0000Hが物理アドレス010000Hにマップされる。
OUT (FFH),A ;CSREGをHIGHに

とかなんとか。いやこの例は、内部拡張レジスタアクセスが、偶数アドレスと奇数アドレスのIN、OUT命令でできるという憶測に基づくものなので、全然間違ってるかもしれないし、そもそも上で書いたように、I/Oアドレス奇数偶数全部拡張レジスタアクセスになっちゃってるとしたら、最後のOUT(FFH),Aは希望する動作にならないと思うし。

R800というCPU

 MSX turbo Rに採用されたR800というCPUは、Z80互換で10倍速と言われた、当時のMSXユーザーにとっては夢のようなCPUであった。考えてほしい、今使っているあなたのパソコン、10倍速くなりますと言われてワクワクしないユーザーがいるだろうか。実際は画面描画用のVDPが前世代のままで、画面表示にウェイトがかかりまくったので、TurboRであらゆるソフトが10倍速く動いたわけではなかったのだけど。

 もともと、Z80というCPUは、8ビット時代においてやたら高機能なCPUだった。BCDによる十進数計算をサポートし、大量のメモリ領域を1命令で転送するブロック転送なんてのも機械語に入ってたくらいである。そんな複雑で高機能なCPUなので、クロックあたりの速度はそれほと高くなかった。大概の命令に4クロックくらいかかるし。Apple IICommodore 64が採用していた6502と比べると、クロックあたり性能がだいたい半分だったと言われている。ただまあ、大体の場合Z80採用パソコンのほうがクロック数が高かったので、平均して同じくらいの性能を出していた模様だ。

 MSX turboRの企画がASCII社内で持ち上がったとき、Z80互換、非互換を含め次世代MSXにふさわしいCPUが色々検討されたらしい。そんな中で、ASCII社内でMSX事業部とは関係なく、岸岡和也という一人の技術者が、Z80高速化CPUを研究していた。CPUの研究をIT系とはいえただの出版社のいち社員ができるのかと疑問に思うのだが、当時のASCIIってバブル時代だけに半導体設計製造のアスキー三井セミコンダクターなんて会社も持ってたし、そういうこともあるのだろう。これがのちのR800になる。

 R800は、4004以来伝統だった演算回路が4ビットしかない8080/Z80の構造を、内部16ビット演算機に改める。4クロックかかる命令を1クロックでできるようにする。16ビットアドレスの上位8ビットが変化しない256バイト以内のメモリアクセスは上位ビットを読み込まないことで高速化するなどの、こまかい改良を積み重ねて、最終的に10倍速にまでもっていった。ただ、これはトランジスター一個一個並べる論理設計を一人で行ったという話ではない。1980年代後半はカスタムLSIであるASICの設計が、論理回路マトリックスにして大量に並べ、接続を設計するゲートアレイと、演算器やRAM、ROMといった定番ユニットをレディメイドで作成して組み合わせるスタンダードセルという方式が普及していた。R800はこのスタンダードセル方式で作られたらしい。
f:id:juangotoh:20191111164649p:plain

MSX turbo Rの悲劇は、これがMSX規格の最後になったこと。そして採用メーカーがパナソニックただ一社で、出た機種が、FS-A1STとFS-A1GTのニ機種のみ。お世辞にも普及したとは言い難い。対応ソフトも少なかったので、R800の高速性などは、あまり伝えられることもなく消えていった。

 近年、MSX turbo R のMSX BASICでナムコアーケードゲームドルアーガの塔」を驚くほどの再現度で移植した動画が公開された。
www.youtube.com
8ビットホビーパソコン時代でもこれくらいはできなくはなかった。でも、機械語を使わないBASICではまず無理だったはずだ。こんなにカラーとキャラと動きを両立させられるBASICゲームなんてなかったといっていい。BASICでもこんなに速い。R800の実力を30年後に実感した作品である。

 Z80互換や拡張CPUはいろいろある。ザイログのZ800、Z280、日立のHD64180、川崎製鉄のKC80。しかし、R800アスキー三井セミコンダクターが製造し、市場に出たのはパナソニックMSX turbo Rパソコン用だけで、CPU単体の発売がなされた記録がない。MSX turbo Rが出た時代は、8086系の16ビットCPUが全盛期であり、これに対抗するのはモトローラの68000系MPU。もはやZ80互換CPUの時代ではなかった。一瞬ニッチに超高性能Z80が登場して、「いやそんなのいらねーし」と無視された感じなんである。

 Z80を作ったザイログという会社はいまでも残っているし、Z80互換CPUもeZ80など、Z80互換で50MHz動作できるものも販売しているのだが、コンシューマ向けパソコンのCPUに使われたZ80高速互換CPUでは、おそらくR800が唯一にして最高速であったと思われる。

 MSX用チップで言うと、ついに発売されなかったMSX3用のVDP。ヤマハのV9978がある。これはMSXMSX2MSX2+との互換性を保ったまま、さらなる高解像度、多色表示を実現する予定だったチップである。しかし、当時の技術では要求性能を得ることが難しく、結局MSX turbo Rでは前世代、MSX2+と同じV9958を採用する。V9978は、V9958以前との互換性を切り捨てたV9990として販売された。このチップがもともとMSX3用の企画から始まったという話は人口に敷衍したため、のちにヨーロッパの会社がV9990を仕入れて、MSX用カートリッジの形に製造、販売する。MSXの製品寿命が終わったあとの製品なのだけど、ユーザーたちは「ありえたかもしれないMSX3」の幻想に取り憑かれる。その後も度々独立メーカーたちからV9990カートリッジが発売され、MSXエミュレーターも、V9990エミュレーションをサポートするようになる。

 V9990はMSXに一度も採用されなかったし、過去のVDPとの互換性もないので、MSXが現役であれば採用されるはずもない。だけど、現実にチップが製造販売され、ストックがあったことで普及している。

 一方R800MSXの高速なCPUであるのだけど。単独で市場に販売されることがなかったため、その実態は驚くほど知られていない。R800
ハードウェアレベルの仕様は、「R800ユーザーズマニュアル暫定版」という冊子が世に出た唯一のものらしい。これはアスキーシステム事業部名で、関連会社に配られ、さらにCQ出版半導体情報誌Datum、1990年10月号に掲載されたらしい。ちょっと気になったので、この記事を、国立国会図書館に複製申請しているところである。

2019/11/14 追記:
 R800MSX turbo Rに使用されただけで市販されなかったと思っており、そのように記述しましたが、共立電子で単品購入したという方の証言を得ましたので訂正いたします。

RISC-VとPowerVR

 高額なライセンスが不要で、命令の拡張方法も用意されているオープンソースCPU命令セットアーキテクチャ(ISA)のRISC-Vは、今のところはIntelやARMの牙城、PCや高性能モバイル端末のメインとして使われるというよりも、組み込み向けのコントローラー用という位置づけだろう。ただ、ISAが最初から32ビット~128ビットの高性能CPUを念頭に設計されているので、環境さえ整えばスマホやデスクトップPC、インターネットサーバーなどにも使いやすいはず。GCCなどもとっくに対応済みで、RISC-Vの開発環境も整っているし、Linuxの移植はとうに済んでいる。しかし検索してみるとわかるが、RISC-VでのLinux動作記事なんかは、みんなシリアルコンソールで動いており、GUIデスクトップ動作している記事は一つだけ。それも動画で動いているところを見せているものはなく、静止画で画面を映しているだけである。
abopen.com

f:id:juangotoh:20191111160014p:plain
RISC-VデスクトップPC動作画面

 この記事では、市販のビデオカードを使うためにRISC-V評価ボードにPCIeスイッチング用のASICを搭載した拡張ボードを接続して動かしましたという感じで、なんというか余計な手間と費用が半端ない感じだ。PC用ビデオカードは、つまりPCのマザーボードで動くのが普通であり、RISC-V用のPC形式マザーボードなんてないから大変なんである。ARMはどうかというと、こちらはSoCとして、チップにGPUを含めた形が多い。Raspberry piなんかは、BroadcomのSoCを使っていて、これはVideoCoreというGPUを内蔵している。NVidiaが作ってるARM SoCの場合はもちろんGeForceの縮小版みたいなのが内蔵されてるし、AppleもA11で自社製GPUを内蔵している。なお、自社でGPUを調達できないメーカーは、ARMが提供するMaliというGPUが使える。なんかメーカーごとにバラバラだけど、ARM系のビデオは基本OpenGLなので、画面出力APIはだいたい同じなのでいいのだ。

 で、RISC-Vだが、これはあくまで「CPU」部分だけの規格であり、少なくともいまのところGPUの仕様なんかは一切作っていない。それではいつまでたってもスマホやパソコンみたいな応用には結びつかない。まあRISC-Vはそもそも大学の研究テーマだし、そういうのもありかなと思うのだけど、その大学(UCB)からスピンアウトして実際のチップをいち早く作って販売しているメーカー、SiFiveは大学じゃなくて会社だから、RISC-Vの技術を現実のSoCにするためにいろいろやってるわけで、無償で使えるISAだけではSoCは作れないから、周辺インターフェースのIPを所有する会社を説得して、SoC作るためのライセンス交渉をウチがやります。作りたいSoCのデザイン持ち込んでくれればうちがまとめてライセンス交渉しますよという商売を始める。そこにGPUメーカーとして参加したのがイマジネーションテクノロジーズである。この会社、PowerVRというGPUを作ってるのだけど、これ、聞いたことないだろうか。
riscv.org


 僕くらいの年代だと、PowerVRって、セガドリームキャストが採用した3Dチップなんである。「PowerVR、生きとったんかワレ!!」って萬画太郎の絵で驚くような感覚である。
f:id:juangotoh:20191109025634p:plain

 細かく言うと、PowerVRは、もともとPC用の3Dアクセラレーターとして作られたのだけど、最初は本当に3Dしかできなかったので、2Dのグラボと二枚刺ししないといけなくて、PC用としては全然普及しなかったんだよね。その後ドリキャスで使われて、セガがこけた後は、ARMのCPUと組み合わせるGPUとしてずーっとやってきたらしい。PowerVRは、3D表示でメモリを節約することに特化してたので、モバイル用に相性がよかった。ところが、ARMが自社製GPUのMaliを作り出したり、Appleが「お前に支払うライセンス料はねえ!」と自社GPU開発して、かなり追い詰められてるっぽい。一時期会社を買ってくれる人募集とかしていたみたい。そんなイマジネーションが、RISC-Vと組んで復活できるのか。なかなか注目に値すると思うのだけどどうだろうか…

次世代MSXについて現在明かされていること

 前回書いた次世代MSXだが、西和彦氏が言ってるだけではないかと思うかもしれない。しかしD4エンタープライズ代表取締役鈴木直人氏がインタビューに答えている。
igcc.jp

鈴木 実は今「1 chip MSX」の次の構想があり、D4と西さんとで設計をしている最中です。2019年内には、具体的な次のMSXハードを提案できると思います。

――ビッグニュースですね! 復刻してくださいという声は多かったと思うんですが、それが叶うということですね。

鈴木 形自体はまったく別ですし、アーキテクチャもちょっと違うんですけども、かなり「えっ!?」と言わせるハードウェアを提案できるかと思います。プロジェクトEGGも初動から連動するような仕様で今、動いています。

https://igcc.jp/d4%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA2/

 西和彦氏のサイトでの記述は以下の通り。

#143 次世代MSXとIoT MSX
2018-08-07
次世代のMSXを開発している。CPUはARMとR800FPGAの上で何にでもプログラムできるハードウェアでRaspberry Piと同じ大きさの基盤にした。年内に発表したいと思っている。名前は未定。

IoTの分野とMSXとの接点は、ワンチップでMSXと無線通信機能を一体化した5ミリ角のシリコンチップのダイを開発中である。来年の秋ぐらいまでに発表したい。組込用のコントローラーとして。

#144 次世代MSXとIoT MSX その2
2018-08-28
次世代MSXについて書いたらかなりの反響だったので、もう少し詳しく書くことにしたい。Raspberry Piの大きさで、電源はAC48V。基板の上にAC-DCコンバーター搭載して、USB3.0の電源供給もカバー。ザイリンクスのPGAを搭載。EthernetWiFiBluetoothUSB3.0。100ピン多目的Busコネクター。基板を64枚スタックするとマルチプロセッサーになる。OSはWindows10、LinuxMSX OS(MSX DOSの進化形)。FPGAソースコードはオープンにする。LinuxMSX OSもソースコードはオープンにする。オンラインのグループウェアを提供。情報交換と情報公開のプラットフォームにする。D4E社に協賛してもらってゲームソフトウェアを安価に提供の予定。Cコンパイラを調整中。MSX BASICライセンス予定。CPUはARMとR800

http://nishi.org/

 西氏が作っているのは2種類。次世代MSXとIoT MSXである。IoT MSXは組み込み用のチップであって、パソコンとは別物だ。問題は次世代MSXの方である。この文章はあえて曖昧にしているのかもしれないが、どうも実態がよくわからない。CPUはARMとR800とあるが、これをザイリンクスのFPGA上にすべて記述するのか、それともCPUは普通に作られたものを搭載して、それとは別にFPGAを搭載するのか。どうもFPGA上にCPUコアを載せてしまうように読めるのだがどうだろうか。少しあとの方のコラムに、MSXの事とは明示されていないが以下の記述がある。

#263 35ドルのコンピュータのこれから
2019-06-11
大ヒットとなった英国のワンボードコンピューター、ラズベリーPiの後を追って類似の商品がたくさん出てきた。ARMのCPUの数が現行は4つであるが、これが増えたものが1つの方向。もう一つはCPUがARMではなくx86でフルWindowsが動くものもある。私はこれが大好きだ。では、東大のラボで何を作るのか。私が今作っているのは巨大なFPGAを搭載し、高速のBUS構造を持ったアーキテクチャをソフトウェアでプログラミングできるワンボードコンピューターを設計している。年内に発表し、試作品を世界中に届けたい。東大の生協と楽天と、amazonで。

http://nishi.org/

 この「巨大なFPGAを搭載し、高速のBUS構造を持ったアーキテクチャをソフトウェアでプログラミングできるワンボードコンピューター」が次世代MSXではないかと思われる。Windows 10を動かすようなARMコアをR800とともに乗せるなら、「巨大なFPGA」を使うのもわかる。D4Eの鈴木氏が「2019年内に」と言っている事とも符合する。

 とにかく、次世代MSXは、ラズパイサイズでFPGAを使った、64枚スタックできる基板ということになる。(64枚スタックするとマルチプロセッサになるという意味がよくわからない。64枚ないとマルチプロセッサにならないのだろうか??)また、基板をスタックするということは、基板上にはMSXのカートリッジスロットは配置されないのだろうか。いやラズパイサイズだったら多分載せるスペースが足らないだろうけど。

 あとVDPについて何も語っていないのが気になる。今CPUやOSまで変えてV9958でもあるまい。V9990でもたかだかVGA解像度、しかもインターレースモードである。単に昔のMSXシリーズの再現ならそれでいいとしても、今の時代にわざわざ次世代として発表するならフルHD対応は最低限、下手すると4Kくらいは期待されるのではないか。ただ、D4Eを通して旧作ゲームの配信を考えているようなので、V9958互換機能は必須になるだろう。あるいは旧作ゲームはARM上で動くWindowsLinuxでのエミュレーションになるのかもしれない。D4EのプロジェクトEGGはそもそもエミュレーションで動いているし。搭載するARMが、実チップであるかFPGA上のIPコアであるかはさておき、それがラズパイと同様にGPUのVideoCoreまで搭載しているなら、V9958エミュレーションくらいは楽にこなせるはずだ。

 この考えが正しければ、カートリッジスロットはなし。旧作ゲームは配信で遊ぶ。新MSXとしての機能は旧MSXとの互換性が低いか、もしかしたらほとんどないかもしれない。旧MSX-DOSソフトは機種ごとにグラフィック環境がバラバラだった時代のCP/MMS-DOSのように、テキストを使うものくらいしか動かないかも。メモリーマッパーなんかも廃止されてR800MMUを使うかもしれない(R800は内蔵MMUで16MBまで使えたはず。turbo Rでは互換性のためにこの機能は使われなかった)。そもそもZ80を載せないのであれば、R800Z80に比べて高速であるだけで非互換性が出てしまう。MSX2+までZ80 3.58MHzで固定だったため、アクションゲームなどは実時間で制御していないものが大半だろう。だからturbo RではZ80R800を切り替えて使っていたわけで。そこまでいくと「どこがMSXなんだろう」となるかもしれないけど。

MSXの中古価格が偉い高騰している&次世代MSX

近年、8ビット時代のレトロパソコンが人気だ。その流れで、MSXの中古価格が偉いことになっている。30年前の新品価格並で売られていることがある。MSX最終規格、turbo RのPanasonic FS-A1STが不具合有りで8万円とかそんな感じ。こないだなんてアマゾンでMSX1のSONY HB-101が87500円で売られていた。

8ビットパソコンは、日立、シャープ、NEC富士通が先行して殆どのシェアを握り、参入が遅れたメーカーはなかなか入り込めなかった。そこでマイクロソフトアスキーが共通企画としてMSXを提唱し、家電メーカーが我先に参入することになる。比較的低価格でゲーム向けのパソコン規格になったので、各社からかなりの数が販売された。ただゲーム機としては性能でファミコンに負けていたし、表現力を増したMSX2MSX2+MSX turbo Rといった後継規格が出るたびに対応メーカーが減り続ける。MSX2で色数とか増しても、性能が変わらなかったので多色モードを使うと遅くなるし、コナミなんかはかなり末期までシューティングゲームはMSX1の規格で作り続けていた。あとの規格になるほどメーカーも台数も少なくなるので、どれでも動く最初のMSX1に合わせてゲームが作られていたわけだ。まして時代は16ビットパソコンがあたりまえになる1990年。この年発表されたMSX turbo Rに対応する機種は、とうとうパナソニック一社からしか発売されなかった。

そんなこんなで、10年くらい前まで、MSXは中古パソコン市場なんかでも見向きもされない。ハードオフでジャンクコーナーに1000円で投げ売りされるようなものだったのだ。

ちなみに僕は1986年に29800円という激安価格で発売された、MSX2のFS-A1を買った。この機種は一体型でFDDもなかったので、外付けFDDとRGBモニターをセットで買ったら、合計で約10万円になって「くそ」と思った記憶がある。なお、このパソコンのイメージキャラクターは、なんかマッチョでむさ苦しいアシュギーネという親父だった。
f:id:juangotoh:20191105013145j:plain
このパソコン使ってたころ、アスキーが運営していたパソコン通信のASCII NETから、MSXのユーザー向けのMSX NETを独立させるという話が出て、南青山のASCIIに呼び出された。MSX NETのCOMIC SIGのSIGOPやってくれないかという話で、引き受けるならSONYのセパレート型MSX2。HB-F500を貸与するという。
f:id:juangotoh:20191105013758j:plain
もちろん引き受けましたよ。その後ASCII NETはASCII NET PCSに、MSX NETはASCII NET MSXに名前が変わり、やがてパソコン通信サービス自体を終了。貸与されたHB-F500は返せと言われることもなく引っ越しするたび持っていったのだけど、押し入れにしまわれて、最終的に廃棄しました。最初に自分で買った29800円のFS-A1もとっくに捨てた。こいつらいまでも持ってたら、合計10万円以上で売れたんじゃねえかなあ。捨てるまで故障もしなかったし。

MSXは21世紀が始まる頃にはほぼ無価値のジャンクに成り果てていた。しかしこの安いパソコンでゲームをして、プログラミングを学んだ世代が忘れずに大人になって、2006年の1チップMSXに結実する。これ、MSXの生みの親、西和彦氏が結構乗り気で規格承認して推し進めたんだけど、当時思ったほど予約注文集まらなくて、西さんうっちゃったんだよね。でもいざ売り出されたら即座に5000個完売。こういうのに需要があるというのが浮き彫りになった。

その後レトロゲームやレトロPCはFPGAでロジック構築する流れから、Raspberry piのようなSoCボードでエミュレーションするほうが簡単という流れになる。任天堂ファミコンスーファミのエミュ機を出す。HAL研がMZ-80やPC-8001のエミュ機を出す。だから、次にMSX公式の機械が出るなら、やっぱソフトウェアエミュレーターになると思ったのだけど、どうも西和彦氏は違うことを考えているようだ。

nishi.org
コラムの#143,#144に次世代MSX開発中という話が出ている。FPGAで、ARMとR800を実装するらしい。OSはWindows 10、LinuxMSX OS(MSX DOSの進化系)とのこと。
これはもうMSXの再現ではないだろう。turbo Rは互換性のためにZ80R800を切り替えていた。ARMとR800では、旧MSXシリーズとの互換性を切り捨てたと思える。MSXWindowsLinuxは必要なのか。ほんとうに次世代MSXを作る気なのだろうか。そもそもLinuxWindowsが動くARMコアをR800とともに載せられるFPGAマシンって、リーズナブルな値段で作れるのか?

2019年中にも発表されると言われている次世代MSX。いったいどんなものになるのか楽しみなような不安なような。

米中対立がRISC-V開発を促してるのだろうか。

 RISC CPUの元祖はIBMの801かもしれないが、MIPSやARMに繋がる現代の多くのRISCアーキテクチャの大本はカリフォルニア大学バークレイ校のBerkeley RISCだろう。
 RISC-VのVは「ファイブ」であり、バークレイ校で作られた5番目のRISC命令仕様だ。この仕様はオープンソース化され、RISC-Vファウンデーションに移管されて普及を目指している。仕様がオープンであるため、この命令セットのCPUを誰が作ってもライセンス料などは発生しない。主にその要因で結構注目を集めているし、多くの企業や組織がRISC-Vファウンデーションに参加、なんらかの商品化を目指している。とはいえ、RISC-Vのいい点はなにもオープンであることだけではない。

 既存のCPUは、x86にしてもARMにしても、長い年月の積み重ねで命令数は増加し、回路は複雑化している。ARMも64bitモードの命令セットはそれ以前のものと大きく変わってしまっている。互換性を保ちつつ高性能化するためにはそういう変化は避けられない。既存の主流CPUは、16ビットや32ビットの頃に基本設計がなされたものなので、互換性を保ったまま64ビットの時代に対応するのが難しかったのだ。RISC-Vは最初から32,64,128ビットでの使用を考えて設計されている。128ビットの仕様の詳細はいまだ決定されていないが、命令の拡張をあらかじめ決めてあるので、おかしなことになる見込みは少ない。

 組み込みのマイクロコントローラから、HPCまで広くカバーするように設計されており、命令数も整数用の最小限のものから、単精度、倍精度実数、MMU関連などをオプションで設定しており、メーカーが独自の命令を追加する余地もきちんとある。BSDライセンスなので、そもそも勝手に拡張してもかまわない。まっさきに採用をアナウンスしたのがハードディスクやSSDを作っているWDであり、組み込み用途としてのものであったのもうなずける。現代のコンピューター周辺機器は基本インテリジェントなものであり、内部にCPUを持っている。こういう部分に使う比較的小規模で、特定用途のCPUというのは、WDのようなメーカーなら機器のために必要な命令を追加した自社製のものを使いたいということがあるだろう。これをARMやIntelに言ってライセンスをもらうというのはあまり現実的ではない。ただ、組み込み用マイクロコントローラだけに使うには、RISC-Vの仕様全体は大きい。小さくもできるがそれだけではないわけで。スマホやパソコン、スパコンまでサポートする気満々なのである。この分野はARMやIntelの牙城であり、そうそうシェアを奪えるものではない。なお、日本の場合かつての大手半導体メーカーがCPUジャンルを統合したルネサスが各種コントローラーを作っていることもあり、日本企業のRISC-Vへの注目は組み込み向け含めてもなかなか出てこなかった。

 RISC-Vファウンデーションが決めているのは、命令セットであり、具体的なCPUの設計ではない。ハードウェア記述言語で作成したリファレンス実装はあるし、関係者が起業したSiFiveが実際に動作するCPUを販売しているが、あくまで初期開発ボード的な商品でしかない。また、ARMのようにGPUを統合してそこそこ高性能な3Dグラフィックまでこなすものは出てきていない。要するにスマホやパソコン用としてはいまだ使い勝手の良くない初期段階という感じだった。最近までは。

 米国トランプ政権が中国を危険視し、ITジャンルでの各種規制を強めた結果、ARMやGoogleの最新技術を一時的にも得られなくなるかもしれなくなった中国だが、その途端雨後の筍のようにRISC-V関連の発表や商品化が相次いでいる。
f:id:juangotoh:20190830012930p:plain

 以前から中国企業が多数RISC-Vファウンデーションに参加していたので、たまたま今の時期にその成果が出てきたのかもしれないのだけど、米中対立がこれらの発表を急がせたという部分はあるのじゃないかなあ。その結果、こんな面白そうなガジェットが入手できるようになっていたりする。
fabcross.jp
64ビットRISC-V2コアにニューラルネットワークアクセラレータを内蔵したCPUを搭載したカメラ付きの小さなアイテム。3000円くらいでこんなの買えるんだぜ。

 少なくとも、MIPSIBMのPOWERアーキテクチャがオープン化するなんて話が出てくるのは、RISC-Vが人気だからだろう。ちょっと前までの日本では、RISC-Vといっても「どうせオープンってもハードウェアはソフトみたいにはいかないぜ、IntelやARMがある以上どうにもならん」って感じだったと思うのだけど、無視できない勢力になりつつあると思う。

怪傑?快傑?

怪傑という言葉がある。goo辞書によると
dictionary.goo.ne.jp
非常にすぐれた力を持つ不思議な人物。
となっている。
怪傑ゾロとか怪傑黒頭巾とか、怪傑ライオン丸とか、怪傑ゾロリとか。いろいろな作品タイトルになっている…ちょっと待て?

f:id:juangotoh:20181215034544p:plain
ライオン丸は「怪傑」じゃなくて「快傑」じゃないか。不思議、あやしいを意味する「怪」じゃなくて、ここちいい、スカッとする方の「快」じゃないか。「傑」は「傑作」「傑物」の「傑」であり、文字通り優れたものを表す。つまり「快傑」なら胸がすくような優れた人物であって、不思議でも怪しくもないことになる。ではゾロは?黒頭巾は?

時系列で言うなら、黒頭巾の前にゾロがある。1919年に書かれた小説が、1920年に映画化され世界的大ヒット。このときの邦題は「奇傑ゾロ」怪傑でも快傑でもない。ただ、「奇」はあやしい意味を含むので、「怪傑」に近いかも知れない。だが、1935年に「快傑黒頭巾」が書かれ、1937年以降、ゾロの何度かの映画化の際、邦題が「快傑ゾロ」になっている。つまり、ある種のヒーローにつける冠としての「かいけつ」は「快傑」が最初であり、それは「快傑黒頭巾」が元祖であったといってもいいのではないかと思う。
怪傑ゾロ - Wikipedia

これがその後、1972年の「快傑ライオン丸」まで定着し続けたと思われる。では怪しい方の「怪傑」はどこから産まれたのだろう。

金太の大冒険」で有名なコミックソング歌手、つボイノリオが1976年に「怪傑黒頭巾」という曲を発表している。これはシモネタソングであって、タイトル自体が一種のパロディと言えるので、ここであえて「快傑」を「怪傑」に置き換えたのではないか。するとシモネタでもパロディでもない作品でヒーローに「怪傑」とつけるのは単に間違いではないだろうか。というか、「怪傑」はそもそもパロディ用語であってつボイノリオの一発ギャグでしかないという可能性が浮かぶ。


ちなみに、ゾロリはゾロのパロディだが、表記は「かいけつ」であって、実は漢字表記されていない。彼はもともとは「ほうれんそうマン」というシリーズの適役であったが、のちにスピンオフとして主役になった。

結論として、「怪傑」はつボイノリオの曲名にのみ存在し、一般的には使われない単語である。goo辞書の記述は間違いもしくは敷衍した誤解ではないかと思われる。