PowerPC
読み方:パワーピーシー
別名:パワーPC
PowerPCとは、Apple Computer、IBM、Motorolaによって開発された、RISCアーキテクチャのマイクロプロセッサのシリーズ名である。
PowerPCの初代製品「PowerPC 601」は1990年代前半に発表された。その後、省電力モデル「PowerPC 603」や演算処理性能に優れた「PowerPC 604」といった後継製品が発表された。1990年代を通じて、Power Macintosh(Power Mac)やPowerBook、iMacなどの、Appleの主要なコンピュータに搭載されている。「PowerPC 740」以降は、Apple側では製品シリーズを世代ごとに分けて「PowerPC G3」、「PowerPC G4」、「PowerPC G5」と読んでいる。2000年代半ば以降は、AppleはPowerPCに替えてIntelアーキテクチャのCPUを採用している。
なお、ニンテンドーゲームキューブに搭載されている「Gekko」や、PLAYSTATION 3やスーパーコンピュータ「Roadrunner」に搭載されている「Cell Broadband Engine」も、PowerPCをベースとして開発されたマイクロプロセッサである。
RISC: | PowerPC G3 PowerPC G4 PowerPC G5 PowerPC StrongARM SPARC64 VIIIfx SuperSPARC |
PowerPC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/05 16:53 UTC 版)
PowerPC(パワーピーシー、英: Performance optimization with enhanced RISC - Performance Computing)は1991年にApple Computer、IBM、モトローラの提携(AIM連合)によって開発された、RISCタイプのマイクロプロセッサーである。
- 1 PowerPCとは
- 2 PowerPCの概要
PowerPC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/09 03:26 UTC 版)
「ステータスレジスタ」の記事における「PowerPC」の解説
PowerPCのステータスレジスタは、4ビットのフラグ8組から構成されており、コンディションレジスタ(CR0 - CR7)と呼ばれる。以下の一覧の左側は四則演算などの命令にupdate condition registerの指定(命令の後にピリオドを付ける。例えば符号付き16bit即値加算 addi なら addi. と指定する)でセットされる。 Bit 0. 負数 - 演算結果が負 Bit 1. 正数 - 演算結果が正 (0を含まず) Bit 2. ゼロ - 演算結果が0 Bit 3. サマリオーバーフロー(XERレジスタのSOフィールドのコピー) 演算命令実行時にCR0 - CR7のどのコンディションレジスタに結果を反映させるか(またはどこにも反映させないか)を指定できる。また、指定した2つのコンディションレジスタ同士でビット単位の論理演算が可能で、その結果を反映させるコンディションレジスタも自由に指定でき、複数の大小比較と論理演算を事前に行っておき、ひとつの条件分岐で済ませてしまうことができる。条件分岐時にもどのコンディションレジスタのどの組を参照するかを指定できる。これにより、フラグ更新を伴う複数の演算を先に実施しておき、後で条件分岐を行うということが可能となる。
※この「PowerPC」の解説は、「ステータスレジスタ」の解説の一部です。
「PowerPC」を含む「ステータスレジスタ」の記事については、「ステータスレジスタ」の概要を参照ください。
PowerPC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/19 16:59 UTC 版)
「メモリ管理ユニット」の記事における「PowerPC」の解説
PowerPCは数種類の互換性の無いMMUの設計をもったアーキテクチャが存在する。 PowerPC G1/G2/G3/G4 は、ページは通常 4 KiB である。TLBミスが起きると、標準の PowerPC MMU は2つの参照を同時に行う。1つは、データとコード毎に4個または8個ある Block Address Translation (BAT) レジスタが指すアドレス範囲かどうかの参照である。BATレジスタは最大 256 MiB の連続なメモリをマップするもので、OS がカーネル自身をマップするのに使われることが多い。BAT参照が成功すると、もう一方の参照は中止され、無視される。 もう1つの参照は、全プロセッサでサポートされているわけではないが、逆引きページテーブルを参照する。まず、仮想アドレスの上位4ビットで 16本あるセグメントレジスタを1つ選択する。セグメントレジスタにある24ビットの値を仮想アドレスの上位4ビットと置換して 52ビットのアドレスを生成する。セグメントレジスタを使うことで複数のプロセスが1つのハッシュテーブルを利用できるようになっている。52ビットのアドレスはハッシュされ、チップ外のテーブルのインデックスとして使用される。ここで、8個のページテーブルエントリが一致するかどうかチェックされる。ハッシュ衝突によって一致が見つからない場合、プロセッサはハッシュ関数を若干変えて再試行する。それでも一致を見つけられない場合、CPUは(MMUを無効化した上で)OSに例外(トラップ)を通知し、処理を依頼する。OS はハッシュテーブルから1つのエントリを捨てて空きを作り、新たなエントリをそこに入れる。新たなエントリは、通常の木構造のページテーブルを参照することで得る方式もあるし、低速になるがメモリ効率のよい方法としてもっと根本的なメモリ管理のデータ構造を辿って得る場合もある。NXビット制御のサポートはセグメントレジスタで行われているため、256 MiB 単位となる。 この方式の問題は、ハッシュ関数を使うため、キャッシュ上の局所性に乏しい点である。木構造のページテーブルでは、仮想アドレス上近いエントリは近い場所に配置される。PowerPC での OS はこの問題の影響を小さくするため、なるべくハッシュテーブルの大きさを小さくする必要がある。 また、プロセスのページテーブルエントリを削除するのも時間がかかる。これに対処するために OS はなるべくセグメントレジスタの再利用を遅らせようとする。あるいは、メモリの浪費を承知の上で、プロセス単位にハッシュテーブルを持つことも考えられる。G1 ではページテーブルエントリの探索は行わないが、ハッシュ値の生成まではハードウェアが行い、OSがその先を行う。従って、OS が TLB の書き換えを行う。G2、G3 と初期の G4 では、ハードウェアでハッシュテーブルを探索する。最近のチップでは OS がどちらの方式にするかを選択できる。ハードウェアでハッシュテーブル探索しない場合、OS は一般的な木構造のページテーブルを使うことができる。
※この「PowerPC」の解説は、「メモリ管理ユニット」の解説の一部です。
「PowerPC」を含む「メモリ管理ユニット」の記事については、「メモリ管理ユニット」の概要を参照ください。
固有名詞の分類
- PowerPCのページへのリンク