科学・技術
SuperHアーキテクチャの復活(2015年)
Resurrecting the SuperH Architecture (2015) (lwn.net)
要約
この記事は、2015年のLinuxCon Japanでのセッションに基づき、かつて広く使われたHitachiのSuperHアーキテクチャをオープンソースハードウェアとして復活させるプロジェクトについて論じています。特許の期限切れを機に、低コストFPGAやASICで製造可能なオープンな「J2」コア設計が開発されており、Linuxを動作させるための基盤が築かれています。
全文翻訳
Nathan Willis著 2015年6月10日 LinuxCon Japan
プロセッサアーキテクチャは決して単純なものではありません。今日のLinuxボックスのCPUを支配するx86およびARMアーキテクチャの作成と洗練には、数え切れないほどの数百万ドルと数千時間がおそらく費やされてきました。しかし、それはx86とARMだけが価値のあるアーキテクチャであることを意味するものではありません。Jeff Dionne、Rob Landley、Shumpei KawasakiがLinuxCon Japanのセッション「Turtles all the way down: running Linux on open hardware」で示したように。
このチームは、多くの一般的なシステムオンチップ(SoC)設計に匹敵するパフォーマンスを提供し、オープンハードウェアとして製造できる、やや古いアーキテクチャに新たな命を吹き込む作業に取り組んでいます。問題のアーキテクチャは日立のSuperHであり、その命令セットは多くのARM Thumb CPUで使用されている命令セットの前身でした。しかし、最も重要なSuperH設計の特許はすべて期限切れになっており、今後数ヶ月および数年でさらに期限切れになるため、SuperHは復活の候補となります。
Dionne、Landley、Kawasakiのセッション[PDF]は、低コストFPGAで合成したり、バルクで製造したりできるSuperHベースの「J2」コア設計の現状を概説しました。Dionneは、オープンハードウェア上でオープンソースソフトウェアを実行する価値を主張することから講演を始めました。それはもちろん、十分に馴染みのある立場ですが、彼はさらに、現代のラップトップにはx86プロセッサよりもはるかに多くのARMおよびMIPSプロセッサが含まれていると指摘しました。これらの小さなプロセッサは、USBおよびハードドライブコントローラーとして機能し、ACPIおよび低レベルのシステム管理サービスなどを実行します。したがって、「ハードウェアを制御する」という概念には、これらのチップも含まれる必要があります。
次に彼は、Linuxを実行できる最小システムとは何かを尋ねました。本当に必要なのは、フラットな32ビットメモリアドレス空間、命令を保持するレジスタを持つCPU、一部のI/Oおよびストレージ(カーネルとinitramfsをロードできる)、そして割り込み用のタイマーであると彼は言いました。それにGCCがあれば、Linuxを実行するには十分です — ただし、仕様によっては高速ではないかもしれません。キャッシュ、浮動小数点ユニット、SMP、またはメモリ管理ユニット(MMU)さえ必要ありません。
この時点で、LandleyがDionneがuClinuxのメンテナーであったことを指摘しました。uClinuxは、2003年にDionneがメンテナーシップを他の人に引き継ぐまで、非MMUシステムでのLinuxメンテナンスにおいて活発なプロジェクトでしたが、残念ながら、その後の開発は著しく遅くなりました。
Linuxを実行するための要件は非常に低いですが、今日人気のある多くのオープンハードウェアボード(Raspberry Piなど)は、あらゆる種類の不要な追加機能を含んでいます。これがSuperHにつながります。Dionneによると、SuperHは「莫大な研究開発投資」をかけて開発されたとのことです。SuperH SH2は、5段のハーバードRISCアーキテクチャを採用し、同時代のものよりもはるかに進んだ命令セット密度を持つ、高度に最適化された設計でした。彼は、その密度はCPU効率を測定する一般的な方法であると説明しました。密度の高いアーキテクチャは、より少ない命令を必要とし、したがって特定のタスクを実行するためにより少ないクロックサイクルを必要とします。CPUのクロックサイクルのほとんどは、何かの待ち時間に費やされます。命令の待ち時間はボトルネックであるため、十分な速さで命令を取得できれば、「クロックスピードが何であってもほとんど関係ありません」と彼は言いました。
SuperHアーキテクチャは非常に密度が高いため、2009年の研究論文[PDF]では、x86、x86_64、およびCRIS v32以外のすべてのアーキテクチャよりも優れているとプロットされました。ARMでさえ、1990年代半ばにSuperH特許ポートフォリオをライセンスしてThumb命令セットを作成しました。幸いなことに、特許は現在期限切れになっています。SH2特許の最後は2014年に期限切れになり、さらに多くの特許が期限切れになります。彼は、SH2プロセッサはセガサターンゲームコンソールで使用されていたと述べました。SH4(ソニーのセガドリームキャストに搭載)の特許は2016年に期限切れになります。それらは古いチップですが、比較的強力なデバイスで使用されていました。
このマイルストーンに備えて、Dionne、Landley、その他は、SH2のクリーンルーム再実装であるJ2に取り組んできました。これは「コアデザインキット」として実装されています。コアのソースはVHDLで記述されており、Xilinx Spartan6 FPGAで合成できます。Spartan6は低コストのプラットフォームですが(ボードは約50ドルで購入可能)、シリアルコントローラー、メモリコントローラー、デジタル信号プロセッサ、イーサネットコントローラーなどの追加の合成コンポーネントを追加するのに十分なスペースも備えています。つまり、基本的なSoCです。
J2プロジェクトのもう1つの主な利点は、カーネル、GCC、GDB、strace、およびその他のほとんどのシステムコンポーネントでSuperHサポートを実装するための作業がすでに完了していることです。これと比較して、OpenRISCやRISC-Vのような他のオープンCPUコアプロジェクトがいくつかありますが、それらの開発者は、CPUコア設計が使用できるほど安定したら、すべてのコードをゼロから書く必要があります。Landleyが付け加えたように、「新しいコードを書く必要はありませんでした。ただ、いくつかを見つけて、ほこりを払う必要があっただけです。」したがって、プロジェクトは優れたISAを「相続」し、SuperHに取り組んだ多くの元日立従業員とも連絡を取っています。
しかし、50ドルのFPGAが唯一のハードウェアターゲットである場合、それはほとんど意味がありません。Spartan6はFPGAとしては安価ですが、それでもほとんどの顧客がSoCに支払う金額よりも高価です。そのため、J2ビルドチェーンはXilinxビットストリーム(FPGAに合成される出力)を生成するだけでなく、特定用途向け集積回路(ASIC)製造サービスで製造できるRTL回路設計も生成します。Dionneによると、最新かつ最小のプロセスを求めて探せばチップ製造は高価ですが、実際には、プラントの再工具化コストが法外であるため、古い設備で低コストのチップを製造することに満足している多くのASICベンダーがいます。J2設計の180nm実装は、チップあたり約3セントで、ロイヤリティは不要だと彼は言いました。「これは『中に無料のおもちゃが入っている』レベルの使い捨てコンピューティングです。」
現時点では、J2は低価格デバイスの構築に十分ですが、ロードマップは、より多くのSuperH特許が期限切れになるにつれて、より複雑な設計に向かっています。2016年には、次のイテレーションであるJ2+がSMPサポートと一連のDSPを追加し、医療機器や、しばしば引用される家庭用電力モニターのようなモノのインターネット(IoT)製品などの信号処理アプリケーションで使用できるようになります。さらに1年ほどで、J4(SH4アーキテクチャベース)はシングルインストラクション・マルチデータ(SIMD)アレイを追加し、セットトップボックスや自動車コンピューティングに適したものになります。
LandleyとDionneはライブデモを行いました。前日に東京の秋葉原で購入した市販のSpartan6ボードに合成されたJ2コアでLinuxを起動しました。デモボードは(数秒かかりましたが)3.4カーネルを起動し、bashプロンプトを開始しました。小さな勝利ですが、聴衆からの拍手を浴びるのに十分でした。Dionneは、新しいカーネルのサポートも作業中であると述べました。
Landleyは、プロジェクトを文書化する2つの公開ウェブサイトを設定している途中だと述べました。nommu.orgサイトはMMUなしのLinux開発を文書化し(うまくいけば、現在廃止されているuClinuxサイトに取って代わるでしょう)、0pf.orgはチームのハードウェア作業を文書化する予定です。ハードウェアコストを削減し、コミュニティの関心を高めるために、チームはKickstarterキャンペーンも計画しており、開発ボードを製造する予定です — 希望としては、既存のスターターキットのモデルよりも強力なFPGAを搭載し、Raspberry-Pi互換のフォームファクターで提供されます。より大きなFPGAを含めることで、これらのボードはJ4 SMP設計と互換性があるはずです。Lx9バージョンのSpartan6(J2開発システムに使用されたもの)は、SMP使用にはロジックゲートが不足しています。
講演の終わりに、聴衆の1人が、SuperHは古すぎて多くのプロジェクトでサポートが維持されていないのではないかという懸念を表明しました。彼は、J2チームがその削除を阻止するために迅速に行動する必要があるかもしれないと示唆しました。Landleyは、確かに、最新のビルド