第4回
最新 Power アーキテクチャ Power ISA 2.03 詳解
春木 大，安藤 穣に代表される大規模なベクタ演算ユニットの追加まで，すべてAPU 単位の拡張として定義されます． このような拡張は，Power アーキテクチャと Freescale Book E
1．
インプリメンテーション仕様

PowerPC アーキテクチャではユーザ命令セット・アーキテク
チャ（UISA）や VEA，OEA の三つに分かれて定義されていま1990 年代後半に，組み込み市場は著しい成長をとげました．

した．Book E では APU 単体で定義されます．例えば，命令これまでデスクトップ・コンピュータ向けに改良を重ねてきたコードの割り当てや命令の実行に必要とされる，レジスタとPowerPC アーキテクチャは，Book E と呼ばれる組み込み機器いったリソースの拡張がすべて Book E において定義されていに必要な機能を発展させたアーキテクチャ仕様になりました．

ます．

Book E は，組み込み機器用プロセッサに求められる要件を満

また Book E では，再利用可能な命令コード領域を定義してたすために，仮想環境アーキテクチャ（VEA）および動作環境おり，複数の APU で使用できます．例えば，Alti Vec およびアーキテクチャ（OEA）で定義した割り込みモデルとメモリ管理

e500，e200 で実装されている信号処理エンジン（SPE ： Signal

モデルを，組み込み用に特化したモデルに拡張定義しています．

Processing Engine）は，命令コードの一部を共有しています

Freescale Semiconductor 社は，Book E アーキテクチャに準拠（従って，それらが同時に実装されることはない）．

した e500，e200 SoC コアのインプリメンテーションを行う際● Power ISA 2.03 への統合に，機能の取捨や拡張を明確にした Freescale Book E インプ

図 1 に示すように，Power ISA 2.03 は統合アーキテクチャとリメンテーション仕様（以降 EIS）を定義し，公開しています．

呼ばれ，Book E/EIS，PowerPC 2.02 で定義されているすべて● Book E における機能拡張のリソースを統合する形で再定義しています．リソースの統合

Book E アーキテクチャの設計思想では，体系的にアーキテに際し，Power ISA 2.03 では Book E における APU という考クチャの機能拡張を行うことを前提としています．機能拡張は，え方をより一般的にした カテゴリ と呼ばれる概念を導入して補助プロセッシング・ユニット（APU ： Auxiliary Processing

アーキテクチャの定義を行っています．

Unit）という単位をもって行われます． 一つの命令またはレジ

例えば PowerPC アーキテクチャにおいて UISA で定義されスタを新たに定義したり，既に定義されているレジスタにビッていた add 命令は，Power ISA 2.03 では汎用レジスタ（GPR）ト・フィールドを追加するといった小さな拡張から，AltiVecやコンディション・レジスタ（CR），リンク・レジスタ（LR）などとともに，基本カテゴリ（Category ： B）の一部として分類されます．さらに同カテゴリには， VEA で定義されていたタPowerアーキテクチャ・テクノロジ

イム・ベース機能や OEA で定義されていた割り込みリソース

統合アーキテクチャPower ISA 2.03

（デスクトップPowerPCアーキテクチャ
1.10）

UISA

組み込みカテゴリ（旧Book E/EIS）なども分類されています．インプリメンテーションでは，カテ

サーバ・カテゴリ
旧PowerPC
アーキテクチャ
2.02（）

ゴリ別に取捨選択を行えるため，以前は複数のアーキテクチャ定義をもって行われていた仕様定義を，単一のアーキテクチャで行えるようになりました．

BookⅠ（拡張仕様）

VEA

Book ⅡOEABook Ⅲ
デスクトップBook Ⅲ-E
組み込み

Book Ⅱ（拡張仕様）
Book Ⅲ-S
サーバ

インプリ
メンテ−ション

603e/e300
e600

e200
e500
e700

G5
IBM 970

図 1 Power アーキテクチャ・テクノロジ関係図

2．Power ISA 2.03 詳細
ここでは，Power アーキテクチャ 2.03 として定義されるプロ
グラミングや割り込み，キャッシュ，メモリ管理モデルについて，EIS で定義される部分を中心に解説します．

180 KEYWORD ―― Power ISA 2.03，Book E，プログラミング・モデル，命令モデル，割り込みモデル，メモリ管理モデル

June 2007表 1 Power ISA 2.03 カテゴリ 一覧
カテゴリ名称（英語表記）
BaseServerEmbedded
Alternate Time Base
Cache Specification
Embedded.Cache Debug
Embedded.Cache Initialization
Embedded.Enhanced Debug
Embedded.External PID
Embedded.Little-Endian
Embedded.MMU Type FSL
Embedded.Performance Monitor
Embedded.Processor Control
Embedded Cache Locking
External Control
External Proxy
Floating-Point
Floating-Point.Record
Legacy Move Assist
Legacy Integer Multiply-Accumulate1
Load/Store Quadword
Memory CoherenceMove Assist
Signal Processing Engine
SPE.Embedded Float Scalar Double
SPE.Embedded Float Scalar Single
SPE.Embedded Float Vector
StreamTrace
Variable Length Encoding
VectorVector.Little-Endian
Wait
64-Bit

略 号
B
S
E
ATB
CS
E.CD
E.CI
E.ED
E.PD
E.LE
E.MF
E.PM
E.PC
E.CL
EXC
EXP
FP
FP.R
LMV
LMA
LSQ
MMC
MA
SP
SP.FD
SP.FS
SP.FV
STM
TRC
VLE
V
V.LE
WT
64

各カテゴリの概要
すべてのインプリメンテーションに必要とされるベース・カテゴリ
すべてのサーバ・インプリメンテーションに必要とされるカテゴリ
すべての組み込みインプリメンテーションに必要とされるカテゴリ
拡張タイム・ベース・カテゴリ
特定のキャッシュ命令に必要とされるカテゴリ
キャッシュ・データおよびディレクトリに直接アクセスするためのデバッグ仕様
キャッシュ全体を無効化（初期化）するための命令を定義
組み込み用拡張デバッグ・カテゴリ
組み込み用外部 PID 機構カテゴリ
組み込み用リトル・エンディアン属性カテゴリ
Freescale 形式の組み込み用メモリ管理ユニット・カテゴリ
組み込み用パフォーマンス・モニタ・カテゴリ
組み込み用プロセッサ・コントロール・カテゴリ
組み込み用キャッシュ・ロック・カテゴリ
外部コントロール・カテゴリ
外部プロキシ・カテゴリ
浮動小数点演算カテゴリ
浮動小数点演算レコード・カテゴリ旧ムーブ・アシスト（dlmzb 命令）カテゴリ
旧整数 MAC 演算命令カテゴリ
4 ワード・ロード/ストア命令カテゴリ
メモリ・コヒーレンシの実装に必要とされるカテゴリ
ムーブ・アシスト命令カテゴリ（lswi，lswx 命令など）
信号処理エンジン・カテゴリ
倍精度演算用カテゴリ
2 並列単精度浮動小数点演算カテゴリ
単精度浮動小数点演算カテゴリ
ストリーム・カテゴリ（dcbt 命令など）
トレース・カテゴリ
可変長命令カテゴリ
ベクタ演算カテゴリ
リトル・エンディアン・ベクタ演算カテゴリ
wait 命令カテゴリ
64 ビット・インプリメンテーション・カテゴリ，32 ビット・インプリメンテーションでは使用不可● カテゴリり込み時のセーブ/リストア・レジスタ，およびそれらのレジPower ISA 2.03 におけるカテゴリの分類について，代表的なスタにアクセスするための専用命令なども，このカテゴリで定ものを表 1 に示します．この表において，あるカテゴリはサ義されています．

ポートされている場合のみ定義されるといった依存関係を伴い（2）組み込みカテゴリ（Category ： E）ます．このような依存関係はカテゴリ表記において， . （ドッPower ISA 2.03 への統合において，Book E および EIS で定ト表現）を用いて表されます．例えば，浮動小数点演算レコー義される組み込み用途の拡張機能の大半は，この組み込みカテド・カテゴリは Category ： FP.R で表され，依存関係の上位にゴリに分類されます．同カテゴリには，当たる浮動小数点演算カテゴリ（Category ： FP）とともに実装¡システム・レジスタにアクセスするためのムーブ命令，例えされます．

ば MSR の外部割り込み有効ビット（MSR［EE］）をほかのス（1）基本カテゴリ（Category ： B）

テータス・ビットに影響を与えずに変更する wrtee 命令

Power ISA 2.03 に準拠するプロセッサのインプリメンテー¡ソフトウェア用途のスペシャル・パーパス・レジスタ群

ションには基本カテゴリが必須とされています．同カテゴリに（SPRG4 〜 7）

は，GPR やロード/ストア命令，整数演算命令といった，アー¡プロセス・アイデンティフィケーション・レジスタ（PID0）

キテクチャの核である構成要素が分類されます．これらはすべ¡デバイス・コントロール・レジスタ群 DCRsて UISA で定義されていますが，OEA や VEA で定義されているマシン・ステータス・レジスタ（MSR）やタイム・ベース，割June 2007

（e200 コアで実装）などが分類されます．表 1 に示すように，組み込みカテゴリに181