【レポート】
POWERアーキテクチャは、1990年代初頭に開発されたIBMのRS/6000 RISCに端を発し、その後、同社のエンジニアリングワークステーション、Unixサーバ用のプロセサアーキテクチャとして発展する。その一方で、IBM、MotorolaとAppleが協力してPowerPCチップが開発され、POWERベースであるが、若干異なるPowerPCアーキテクチャが作られた。このPowerPCチップは、最近までApple社のPCに使用されていたことは記憶に新しい。また、AppleはIntelプロセサに切り替わってしまったが、Xbox360やPS3といったゲームコンソールのCPUにはPowerPCアーキテクチャのプロセサが使われており、現代の主要なプロセサアーキテクチャという地位は変わっていない。
また、1997年にはIBMとMotorolaが協力して、組み込み用プロセサ向きのPowerPC Book-E仕様を開発した。このPowerPCの組み込みプロセサは制御プロセサとして広く用いられているし、Xilinx社のFPGAの中にもコンポーネントとして組み込まれており、組み込みプロセサとしても主要なアーキテクチャの一つである。
ということで、POWERアーキテクチャは現代を代表するプロセサアーキテクチャであるが、その中には、少しづつ異なる3つのアーキテクチャ仕様が存在するという状況になっている。サーバ、PC、組み込み用では用途が異なるので、異なる仕様が必要というのも正しいが、コンパイラなどのツールを作る上では、それぞれの仕様に対して少しづつ異なる製品を作る必要があり、面倒である。また、ユーザから見ても、プロセサの品種ごとに使用できる命令が異なるのでは、プログラムの流用も出来難いという問題がある。そこで、POWERアーキテクチャを推進する業界団体であるPOWER.ORGにおいて、統一仕様を作成しようという活動が行われ、最近、POWER Instruction Set Architecture Version 2.03として公開された。
これまでの3種のアーキテクチャ仕様を統合したのであるから、メジャーバージョン番号を上げて3.0としても良さそうであるが、仕様を検討したのが謙虚な方々なのか、あるいは、統合しただけで主要な機能追加が無いと考えたのか、従来のPowerPC Version 2.02のマイナーバージョン番号を上げたVersion 2.03というネーミングになっている。
統合したと言っても、全部の仕様をORで取り入れたのでは組み込み用には重過ぎる仕様になり、実用的ではない。従って、V2.03仕様では、仕様を論理的なカテゴリに分割している。全てのPOWERアーキテクチャのプロセサが実装すべき仕様はベーシックカテゴリ、サーバプロセサ用の機能はサーバカテゴリ、組み込みプロセサ用の機能はエンベデッドカテゴリにまとめられている。
これらが主要なカテゴリであるが、それ以外に、次の表に示すように、特定用途向けのオプションカテゴリが多数定義されている。
![]() |
|
POWER ISA 2.03の主なカテゴリ。ベーシックカテゴリは必須。ブルーはサーバ用のカテゴリ、ピンクは組み込み用のカテゴリである。そして、グリーンは単独でも選択できるカテゴリである。 |
図の中で、ブルーで示したカテゴリはサーバ用であり、サーバ性能モニタカテゴリはサーバカテゴリと共に選択しなければならない。また、ピンクで示したカテゴリは組み込み用であり、これらのカテゴリを選択するためには、エンベデッドカテゴリが選択されている必要がある。そして、グリーンで示したカテゴリは独立に選択可能なカテゴリである。
このような体系であるので、ベーシックカテゴリだけを実装しても良いし、ベーシック、サーバとエンベデッドカテゴリの全部を実装してもPOWER ISA2.03準拠のプロセサと言える。次の表に、V2.03仕様のカテゴリの一覧を示す。
| V2.03仕様のカテゴリの表 | ||
|---|---|---|
| カテゴリ | 略号 | 適用 |
| Base | B | 全ての実装において必須 |
| Server | S | サーバ用の実装に必須 |
| Embedded | E | 組み込み用の実装に必須 |
| Alternate Time Base | ATB | 追加タイムベース機能; Book II参照 |
| Cache Specification | CS | 特定用途のキャッシュの指定; Book II参照 |
| Embedded.Cache Debug | E.CD | キャッシュデータとディレクトリへの直接アクセス機能 |
| Embedded.Enhanced Debug | E.ED | 組み込み用の拡張デバグ機能; Book III-E参照 |
| Embedded.External PID | E.PD | 組み込み用の外部PID機構; Book III-E参照 |
| Embedded.Little-Endian | E.LE | 組み込み用のリトルエンディアンページ属性; Book III-E参照 |
| Embedded.MMU Type FSL | E.MF | 組み込み用のFSL型MMU; Book III-E参照 |
| Embedded.Performance Monitor | E.PM | 組み込み用のパフォーマンスモニタ機能; Book III-E参照 |
| Embedded.Processor Control | E.PC | 組み込み用のプロセサコントロール機能; Book III-E参照 |
| Embedded Cache Locking | ECL | 組み込み用の拡張キャッシュロック機能; Book III-E参照 |
| External Control | EXC | デバイスI/O; Book II参照 |
| External Proxy | EXP | 組み込み用の外部プロキシ機構; Book III-E参照 |
| Floating-Point Floating-Point.Record |
FP FP.R |
浮動小数点機構 Rc=1の浮動小数点命令 |
| Legacy Move Assist | LMV | Determine Left most Zero Byte命令 |
| Legacy Integer Multiply-Accumulate1 | LMA | Legacy Integer Multiply-accumulate命令 |
| Load/Store Quadword | LSQ | Quadwordロード/ストア命令; Book III-S参照 |
| Memory Coherence | MMC | メモリコヒーレンスの必要性; Book II参照 |
| Move Assist | MA | Move Assist命令 |
| Server.Performance Monitor | S.PM | サーバ用パフォーマンスモニタ機能; Book III-S参照 |
| Signal Processing Engine1、2 SPE.Embedded Float Scalar Double SPE.Embedded Float Scalar Single SPE.Embedded Float Vector |
SP SP.FD SP.FS SP.FV |
信号処理用の機構 GPRを用いる倍精度浮動小数点命令セット GPRを用いる単精度浮動小数点命令セット GPRを用いるベクトル浮動小数点命令セット |
| Stream | STM | ストリーム処理用の dcbt 命令; Book II参照 |
| Trace | T RC | トレース機構; Book III-S参照 |
| Variable Length Encoding | VLE | 可変長命令機構; Book VLE参照 |
| Vector1 Vector.Little-Endian |
V V.LE |
ベクトル処理機構 べクトルストアにおけるリトルエンディアンサポート |
| Wait | WT | Wait命令; Book II参照 |
| 64-Bit | 64 | 64ビットの実装には必須 |
| 1 SPEは命令コードに重複があるので、VectorとLegacy Integer Multiply-Accumulateカテゴリとは排反である。 | ||
| 2 SPEに依存するFloating-PointカテゴリはSPE.Embedded Float_* oまたはSP.*.と表記する。 | ||
このように、V2.03仕様ではカテゴリという概念を使って、必要な機能だけを実装することを可能としている。一方、カテゴリを選択すると、そのカテゴリに含まれる全機能を実装することが必要であり、カテゴリの中の機能のつまみ食いは許さないということで、バリエーションの増加を抑えている。このような仕組みであるので、サポートしているカテゴリを与えると、その範囲内で最適の動作をするコードを生成するコンパイラを作ることが可能になり、3種のアーキテクチャに対するコンパイラを商品化するのに比べて、開発ツール類のサポートや流通が容易になると考えられる。
また、V2.03仕様は、ユーザ命令を定義するBook-1、仮想記憶アーキテクチャを定義するBook-2、サーバ用OSの命令を定義するBook-3S、組み込み用OS命令を定義するBook-3E、そして可変長命令エンコーディングを定義するBook VLEとAppendixから構成されており、全体では850ページというボリュームである。
MozillaとKodakが写真共有サービスで提携、プラグインの無償配布を開始
【コラム】コンピュータアーキテクチャの話 第65回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャの命令セット(3)
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
【レポート】秋葉原アイテム巡り - 『幻想水滸伝』シリーズ最新作や『GRAVITY DAZE』が発売! 冬アニメ注目のOP・EDテーマも続々リリース [05:00 2/11] ホビー |
|
激シブ!もう一度ゴルフ Ⅱ の魅力を味わってみませんか?【大阪オートメッセ2012】 [03:06 2/11] キャリア |
|
『ヘタリア』キャラソン、新シリーズが配信決定! [03:05 2/11] キャリア |
|
全国の温泉を擬人化したドラマCD、第1弾「草津」は櫻井孝宏さん! [03:05 2/11] キャリア |
|
柿原徹也さんの2ndミニアルバム「CONTINUOUS」2月15日発売 [03:04 2/11] キャリア |