次のページ 前のページ 目次へ

9. サポートされている CPU

9.1 MIPS32 アーキテクチャ

MIPS32 仕様に準拠した全ての CPU がサポートされています。これには MIPS 4kc と Alchemy 社 (現 AMD 社) Au1000 ほかを含みます。

9.2 MIPS64 アーキテクチャ

MIPS64 仕様に準拠した全ての CPU がサポートされています。これには MIPS 5K, 10K, Sibyte 社 SB1 コア / SB1250 SOC(System On Chip) ほかを含みます。

9.3 R2000, R3000 ファミリ

Linux は最初の MIPS プロセッサ R2000, R3000 及びこの二つから派生した多くのプロセッサ (例えば R3081 など) をサポートしています。

9.4 R4000 ファミリ

Linux は R4000 ファミリの多くのメンバーをサポートしています。現時点では R4000PC, R4400PC, R4300, R4600, R4700 がサポートされています。

サポートされていないのは、R4000MC と R4400MC CPU (マルチプロセッサシステム向け) と、CPU 制御の二次キャッシュを持つ R5000 システムです。後者のほうは、キャッシュが外部のキャッシュコントローラではなく R5000 自身で制御されている場合を指します。この違いは重要です。 と言うのは、MIPS ではキャッシュはアーキテクチャ的に可視で、 ソフトウェアで制御してやる必要があるためです。

R4000SC/R4400SC サポートで CPU モジュールを提供してくれた Ulf Carlsson (ulfc@engr.sgi.com) さんの功績は特記されるべきでしょう。

SGI システムでの R4000 と R4400 のバージョン番号付けに多少紛らわしい点があるので、ここで説明しておきます。 この二つのプロセッサは基本的には同じもので、主な違いは R4000 の一次キャッシュが 8kb づつであるのに対して R4400 はその二倍持っていることです。従ってこの二つのプロセッサは c0_PrId で自分の識別番号として同じ 4 を返し、別のバージョン番号を返すようになっています。 ところが、マーケティング上の都合で、改良品である R4400 は素晴らしい新製品であるということになりました。 R4000 プロセッサはバージョン番号が 3.0 までで、R4400 プロセッサには 4.0 以降のバージョン番号が付けられています。このバージョン番号付けの結果、R4400 は新製品として販売され、マーケティング上の番号付けは再度 1.0 から行われました。IRIX の hinv コマンドはハードウェアのバージョン番号を返しますが、Linux では混乱を最小にとどめるため、マーケティング上のほうの番号を返しています。 これは MIPS のプロセッサエラッタなどの、文書でのバージョン番号ではそちらが使われているためです。

9.5 R5000 ファミリ

R5000 と、類似のファミリのメンバ、例えば R5230 や R5260 (PMC Sierra 社) は Linux でサポートされています。 このサポート範囲には内蔵二次キャッシュコントローラや SGI IP22 の外部キャッシュコントローラに対するサポートも含まれています。

9.6 R6000

MIPS 系のプロセッサの R6000 はしばしば IBM 社のワークステーションの RS6000 と混同されます。ですので、もし IBM 機の Linux のことが知りたいという希望を持ってこの文書を読まれているのでしたら、読む文書が違っています。

R6000 は現在サポートされていません。これは 32-bit の MIPS ISA 2 (MIPS II) に準拠したプロセッサで、興味深くはありますがかなり変なチップです。 これは BIT Technology 社で開発・製造されたもので、後に NEC が生産を引き継ぎました。これは Cray 社のスーパーコンピュータで使われていて、現在でも使われている特に高速なチップ向けの ECL プロセスで作られています。このプロセッサは、TLB slice と呼ばれる TLB を、外付けの一次キャッシュの最後の数ラインの一部を使って実現する手法を採っています。 このため、MMU は R3000 や R4000 シリーズのものと相当に異なり、 これがこのプロセッサがサポートされていない理由の一つになっています。

9.7 RM7000 ファミリ

RM7000 と類似のファミリのメンバは、三次キャッシュのサポートを含めて Linux でサポートされています。

9.8 R8000

R8000 は現在未サポートです。これはこのプロセッサが一部の SGI の機種のみで使われた比較的まれなプロセッサで、Linux/MIPS 開発者が誰もこのような機種を持っていない、ということも理由の一部です。

R8000 はかなり興味深いシリコンチップです。このプロセッサのキャッシュと TLB 周りはほかの MIPS ファミリとはかなり違っています。 このプロセッサは R10000 が完成する前に、浮動小数点最高性能の名誉を Silicon Graphics が奪い返すべくクイックハックで作成されたものです。

9.9 R10000

R10000 は mips64 カーネルとしてサポートされています。現在 IP22 アーキテクチャ (SGI Indy、Challenge S と Indigo 2) および Origin でサポートされています。

このプロセッサは、キャッシュがノン・コヒーレントなシステムではとても制御しづらく、 このためそのようなシステムでこのプロセッサがサポートできるようになるまでにはしばらくかかると思います。 現時点では、そのようなシステムには SGI O2 と Indigo  があります。

9.10 TLB の無いプロセッサ

組み込み向け用途の上記 CPU の派生品には、TLB 機能の一部を欠くものがあります。 これらの品種はサポートしませんし、サポートされることを期待してもらっても困ります。

ハッカーなら、マイクロコントローラ向けの Linux (略称 ucLinux) をちょっと調べてみようと思われるかもしれません。これは TLB のないプロセッサをサポート可能です。但し、プロセッサのタイプに TLB の有無が与える影響がほとんどないことを考えると、やはり TLB のあるプロセッサを選択することを薦めます。 そうすることで設計作業をずっと節約できます。

9.11 浮動小数点機構が部分的にサポートされた、または搭載されていないプロセッサ

Linux/MIPS バージョン 2.4 から、完全な浮動小数点エミュレーション機能が加わりましたので、 このようなプロセッサも、浮動小数点付きのプロセッサとのバイナリ互換性を保ったままサポート可能になっています。


次のページ 前のページ 目次へ