Jump to content 日本-日本語
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  HP- UX Developer Edge

HP-UXメモリ管理 ホワイト・ペーパー バージョン1.4

プロセッサーのメモリ関連部分
HP-UX/Integrityサーバー お問い合せ
コンテンツに進む

プロセッサーのメモリ関連部分


図7 主要コンポーネントを示すプロセッサー・アーキテクチャ
図7 主要コンポーネントを示すプロセッサー・アーキテクチャ

図7と表1に、主要なプロセッサー・コンポーネントを挙げています。その中でもレジスタ、変換索引バッファ(TLB:Translation Lookaside Buffer)、およびキャッシュがメモリ管理に不可欠であり、表1に続いてこれらのコンポーネントについて詳しく説明します。

表1 プロセッサーのアーキテクチャ、コンポーネント、および目的

コンポーネント 目的
中央処理装置(CPU) メモリからプログラムとデータを読み取り、プログラム命令を実行する主要コンポーネント。CPUには、次のコンポーネントが搭載されている。

  • データを保持する高速メモリとしてのレジスタ。レジスタは、計算、割り込み処理、保護機構、および仮想メモリ管理のために命令によって操作される。この章の最後で、レジスタについてより詳細に解説している。
  • 命令を解釈(デコード)して、適切なCPUハードウェアをアクティブ化する制御信号を生成することで、CPU動作の調整と同期化を行う制御ハードウェア(命令/フェッチ・ユニットとも呼ばれる)。
  • 実際の算術演算、論理演算、およびシフト演算を行う実行ハードウェア。実行ハードウェアは各種の特定のタスクを実行できるが、最も一般的な実行ハードウェアは算術論理演算装置(ALU:Arithmetic and Logic Unit)とシフト・マージ演算装置(SMU:Shift Merge Unit)。
命令/データ・キャッシュ このキャッシュは、データと命令に高速にアクセスするためにCPUで使用される高速メモリの部分。最後にアクセスされたデータがこのキャッシュに保持される。
変換索引バッファ(TLB) このプロセッサー・コンポーネントの次の機能により、CPUが仮想アドレス空間を通じてデータにアクセスできる。

  • 仮想アドレスを物理アドレスに変換する機能。
  • アクセス権をチェックする機能。この機能により、要求しているプロセスに正しい権限がある場合のみ、命令、データ、またはI/Oへのアクセスが許可される。
浮動小数点コプロセッサー CPUに代わって特別なタスクを実行する補助プロセッサー。
システム・インタフェース・ユニット 中心的な(ネイティブ)バスとCPUとの通信を可能にするバス回路。

変換索引バッファ(TLB)


変換索引バッファ(TLB:Translation Lookaside Buffer)は、仮想アドレスを物理アドレスに変換します。

図8 TLBの役割
図8 TLBの役割

アドレス変換はメモリ階層の最上位から処理されます。まず最速コンポーネント(プロセッサー上のTLBなど)をヒットし、次にページ・ディレクトリ・テーブル(メイン・メモリ内のPDIR)に移動し、最後に二次記憶領域に移ります。

TLBによるアドレス変換


TLBは仮想ページ番号(VPN)を見つけるために変換を検索し、物理メモリの参照に使用される物理ページ番号(PPN)を取得します。

図9 TLBはアドレス変換用のキャッシュ
図9 TLBはアドレス変換用のキャッシュ

物理メモリのすべてのページの変換を保持できる十分な大きさのTLBが理想的ですが、このようなTLBは非常に高価です。その代わり、TLBには、メモリ内のページ・ディレクトリ・テーブル(PDIR:Page Directory Table)からのエントリのサブセットが保持されます。最後に利用された変換のコピーがTLBによってキャッシングされるため、PDIRを調べる速度が向上します。

TLBの目的は仮想アドレスを物理アドレスに変換することなので、仮想モードでのメモリ・アクセス時のみTLBが検索されます。この条件は、PSW(Processor Status Word)のDビット(または、命令アクセスのIビット)で示されます。

TLBの構成と種類


モデルに応じて次のいずれかの方法で、プロセッサー上でTLBを構成できます。

  • 統合TLB − データと命令の両方の変換を保持する単一のTLB。
  • 個別のデータTLB(DTLB)と命令TLB(ITLB) − データまたは命令のいずれかのみの変換を保持する、プロセッサー内のデュアルTLBユニット。

個別のDTLBとITLBを装備することの利点は、データと命令の局所性のさまざまな特性とアクセス種類(データに対する頻繁なランダム・アクセスや、比較的連続的な命令の単一使用)を考慮できることです。

ブロックTLB


TLBのサイズは制限されているため、なるべく少ないエントリを使用して最大限のメモリを変換することが望まれます。PA-RISC 2.0プロセッサーでは可変ページ・サイズを使用でき、適切な場合はラージ・ページ・サイズを使用するようにメモリが構成されます。特に、ブート時にカーネル用に最初に割り当てられるメモリは、そのメモリに適した最大限のページ・サイズでマッピングされます(可能であれば他のメモリはラージ・ページ・サイズでマッピングされますが、メモリの少ないシステムでは特に、これが不可能になるというトレードオフ関係があります)。

PA-RISC 2.0より前のPA-RISCプロセッサーでは、汎用可変ページ・サイズがサポートされていません。 その代わり、ブロックTLBを装備することができます。ブロックTLBは非常に小さいですが、そのエントリで4KBの複数ページ(つまり、複数のHPDE)をマッピングできます。ブロックTLBのエントリは、常駐するカーネル・メモリの参照に使用されます(参照されるメモリをページ・アウトすることはできません)。一般にブロックTLBはグラフィックスに使用されます。その理由は、グラフィックスのデータが大きなチャンクでアクセスされるからです。また、ブロックTLBは、その他の静的領域(カーネルのテキストやデータなど)のマッピングにも使用できます。

TLBエントリ


TLBは仮想アドレスを物理アドレスに変換するため、各エントリには仮想ページ番号(VPN)と物理ページ番号(PPN)の両方が含まれます。また、アクセス権、アクセス識別子(ID)、および5つのフラグも含まれます。

表2 TLBフラグ(PA 2.xアーキテクチャ)

フラグ 名前 意味
O Ordered(順序付き) ロード/格納のためのデータへのアクセスは、強度に応じてランク付け(強い順序付け、順序付け、弱い順序付け)される(モデルと定義については、PA-RISC 2.0の仕様を参照)。
U Uncacheable
(キャッシング不可)
メモリ・アドレス空間からのページへのデータ参照をキャッシュに移動できるかどうかを決める。通常は、I/Oアドレス空間にマッピングされるページへのデータ参照、またはキャッシュに移動してはならないメモリ・アドレス空間について、1に設定される。
T(1) Page Reference Trap
(ページ参照トラップ)
このフラグが設定されている場合、このページにアクセスすると、ハードウェアまたはソフトウェアのトラップ・ハンドラによって参照トラップが処理される。
D Dirty(ダーティ) このフラグが設定されている場合、このビットは、メモリ内の関連ページがディスク上の同じページと異なることを示す。このページを無効にする前にフラッシュする必要がある。
B Break(ブレーク) このビットによって、このページへの書き込みが可能な命令に対してトラップが発生。
P Prediction method for branching(分岐予測方法) パフォーマンス・チューニングで使用(オプション)。

(1)フラグT、D、およびBは、データまたは統合TLBにのみ存在します。

PA 1.xアーキテクチャでは、Eビット(「有効」ビット)は、TLBエントリがメモリ内の物理ページの現在の属性を反映することを示します。

ページ・テーブルまたはPDIR


このオペレーティング・システムでは、メモリ内の現在の仮想ページすべてを追跡するページ・ディレクトリ(PDIR:Page Directory)というテーブルがメモリ内で維持されます。ページが一部の仮想アドレス空間内でマッピングされる際、PDIR内のエントリに割り当てられます。PDIRは、メモリ内の物理ページに仮想アドレスをリンクします。

PDIRは、ハッシュ・ページ・ディレクトリ・エントリ(HPDE:Hashd Page Directory Entries)と呼ばれるソフトウェア構造のメモリ常駐テーブルとして実装されます。HPDEには、仮想アドレスと物理アドレスが入っています。プロセッサーが索引のない物理ページをTLB内で検索する必要がある場合、仮想アドレスでPDIRを検索して、一致するアドレスを見つけることができます。

PDIRテーブルは、衝突チェーンを持つハッシュテーブルです。仮想アドレスはハッシュテーブル内のエントリのいずれかへのハッシュに使用され、仮想アドレスが一致するチェーン・エントリが見つかるまで対応するチェーンが検索されます。

ページ・テーブルは純粋なソフトウェア構造ではないことに注意してください。TLBミスを処理するハードウェアを備えるシステムでは、TLBミス・フォールトの解決時にTLBに挿入する適切な変換の検索を試みるハードウェアによって、このページ・テーブルが調べられます。

ページ・フォールト


TLB内に変換がないと、トラップが生じます。プロセッサーがその変換をPDIRで見つけることができると、TLBにその変換を挿入し、実行を継続できます。見つけられない場合、ページ・フォールトが発生します。

ページ・フォールトとは、プロセスで必要とされるアドレスがメイン・メモリ内にない場合に発生するトラップです。この事態は、PDIRミスとも呼ばれます。PDIRミスは、ページが空きリスト、ページ・キャッシュ、またはディスクのいずれかに存在することを示します。この場合、メモリ管理システムは、スワップ・デバイス上またはファイル・システム内で要求されたページを検索し、メイン・メモリにロードする必要があります。

これに対して、PDIRヒットは、TLB内に仮想アドレスの変換が存在することを示します。

ハッシュ・ページ・ディレクトリ(hpdeおよびhpde2_0)構造


各PDEには、仮想アドレスから物理アドレスへの変換に関する情報と、仮想メモリの各ページの管理に必要なその他の情報が含まれます。

PA-RISC 1.1システムとPA-RISC 2.0システムでは、異なるHPDE構造が使用されていますが、フィールドの名前と目的はほとんど同じです。次の表では、PA-RISC 1.1のHPDE(struct hpde)とPA-RISC 2.0のHPDE(struct hpde2_0)の両方の構造要素を示しています。

表3 ハッシュ・ページ・ディレクトリstruct hpdeおよびstruct hpde2_0

要素 PA-RISCのバージョン 意味
pde_valid PA-RISC 1.1 有効なPDEエントリを示すためにカーネルが設定するフラグ。
pde_invalid PA-RISC 2.0 無効なPDEを示すためにカーネルが設定するフラグ。
pde_vpage 両方 仮想ページ - 4096バイトごとに分割される仮想オフセット。
pde_space 両方 完全な仮想スペースIDを含む。
pde_rtrap 両方 データ参照トラップ対応ビット。設定されている場合、ページにアクセスすると、ページ参照トラップ割り込みが発生。
pde_dirty 両方 メモリ内とディスク上でページが異なる場合にマークされるダーティ・ビット。
pde_dbrk 両方 TLBで使用されるデータ・ブレーク。
pde_ar 両方 TLBで使用されるアクセス権。(1)
pde_uncache 両方 非キャッシュ・ビット。
pde_order PA-RISC 2.0 強い順序付けビット。
pde_br_predict PA-RISC 2.0 分岐予測ビット。
pde_ref_trickle 両方 参照用の漸増ビット。htblを直接検索できるハードウェアを備えるシステム上でpde_refで使用。
pde_block_mapped 両方 ページがブロックTLBでマッピングされ、エイリアス(別名)指定できないことを示すブロック・マッピング・フラグ。
pde_executed 両方 簡易キャッシュ・フラッシュ・アルゴリズムで使用され、ページがテキストとして参照されることを示す。(2)
pde_ref 両方 特定の割り込みを受信した場合にカーネルが設定する参照ビット。ページが最近使用されたかどうかを通知するためにvhandで使用。
pde_accessed 両方 簡易キャッシュ・フラッシュ・アルゴリズムで使用され、ページがデータ・キャッシュに存在できることを示す。
pde_modified 両方 スワップ・デバイスに最後に書き込まれてからページが変更されたかどうかを示す、高水準仮想メモリ・ルーチンへのインジケータ。
pde_uip 両方 トラップ処理コードで使用されるロック・フラグ。
pde_protid 両方 TLBで使用される保護ID。
pde_os PA-RISC 2.0 使用中のエントリ。
pde_alias 両方 仮想エイリアス・フィールド。設定されている場合、PDEが、スパースな(疎な)PDIRのメンバーとしてではなく、カーネル・メモリの他の場所から割り当てられている。
pde_wx_demote PA-RISC 2.0
(64ビット・カーネルのみ)
ユーザー・スペースFIC(フラッシュ・インストラクション・キャッシュ:Flush Instruction Cache)。
pde_phys PA-RISC 1.1 物理ページ番号。ページ・サイズ(4096バイト)ごとに分割された物理メモリ・アドレス。
pde_phys_u PA-RISC 2.0 物理ページ番号。最上位25ビット。
pde_phys PA-RISC 2.0 物理ページ番号。ページ・サイズごとに分割された最下位27ビット・アドレス。
var_page PA-RISC 2.0 ページ・サイズ。
pde_next 両方 次のエントリへのポインタ(リストの最後はヌル)。

(1)アクセス権の詳細は、『PA-RISC 2.0 Architectural reference』の第3章「Addressing and Access Control」を参照してください。このフィールドをプログラムで操作する方法の詳細は、マンページmmap(2)およびmprotect(2)を参照してください。

(2)簡易キャッシュ・フラッシュは、キャッシュをフラッシュするかどうかをカーネルに通知するためのパフォーマンス拡張機能です。

命令/データ・キャッシュ


キャッシュは、最近アクセスされた命令とデータを保存するための、プロセッサー・モジュール上の高速連想型メモリです。プロセッサーがデータに即時にアクセスするか、またはデータを求めて(より遅い)メイン・メモリに移る必要があるかを、キャッシュがプロセッサーに通知します。

メイン・メモリからCPUに移動するキャッシュ可能なデータは、キャッシュを通過します。逆に、キャッシュは、CPUがメイン・メモリとデータをやり取りする手段として機能します。キャッシュにより、最後に要求されたデータと命令のコピーが維持されるため、CPUがデータにアクセスする時間が短縮されます。

ほとんどのメモリ・アクセスは、以前にアクセスされたアドレスに非常に近いか同じアドレスへのアクセスなので、キャッシュによってシステム・パフォーマンスが向上します。CPUがアドレスを要求するたびにデータ・ブロックがキャッシュにロードされるという形で、この特性が活用されます。データ・ブロックはキャッシュのサイズ、連想性、およびワークロードに依存しますが、ほとんどの場合(パフォーマンスの測定に応じて)、キャッシュはユーザーが次回に希望するデータを保持するため、ユーザーはそのデータを参照できます。

キャッシュの構成


一部のモデルには、統合キャッシュまたは命令とデータ用の個別のキャッシュがPA-RISCプロセッサーに搭載されています(局所性に優れ、高速になります)。マルチプロセッシング・システムでは各プロセッサーに固有のキャッシュが搭載され、キャッシュ・コントローラにより整合性が維持されます。

キャッシュ・メモリ自体は、次のように構成されます。

  • キャッシュとメイン・メモリの間で受け渡されるデータと同じサイズ単位として定義された、キャッシュ・ラインという同じサイズのブロックの量。キャッシュ・ラインの長さは16、32、または64バイトであり、そのサイズの倍数で整列しています。
  • キャッシュ・ラインの内容を説明し、求められているデータが存在するかどうかを判断するための、各キャッシュに1つのキャッシュ・タグ。このタグには、次の情報が含まれます。
    • データが存在するメイン・メモリ内のページを識別する物理ページ番号(PPN)。
    • フラグ・ビット。設定されている場合、有効なフラグが、キャッシュ・ラインに有効なデータが含まれていることを示します。キャッシュ・ラインの内容がCPUにより変更されている(つまり、メイン・メモリではなくキャッシュに最新のデータが含まれている)場合、ダーティ・ビットが設定されます。ダーティ・ビットが設定されていない場合、フラグは「クリーン」だといいます。これは、キャッシュ・ラインの内容が変更されていないことを意味します。その他の実装固有のフラグも存在することがあります。
    • キャッシュ・タグとキャッシュ・ラインの両方に、ラインが正しいことを確認するチェックサムに使用される関連パリティ・ビットが含まれます。
図10 キャッシュ・タグとキャッシュ・ラインから構成される各キャッシュ・エントリ
図10 キャッシュ・タグとキャッシュ・ラインから構成される各キャッシュ・エントリ

CPUによるキャッシュとTLBの使用

プロセスの実行時、プロセスのコード(テキスト)とデータが参照のためにプロセッサー・レジスタに保存されます。データまたはコードがレジスタ内に存在しない場合は、CPUが必要なデータの仮想アドレスをTLBとキャッシュ・コントローラに提供します。実装に応じて、キャッシュの直接マッピング、連想化、または完全な連想化が可能です。最近のPAの実装では、直接連想型キャッシュと完全連想型TLBが使用されています。キャッシュには事実上索引が付けられているため、仮想アドレスを同時にTLBとキャッシュに送信できます。

複数の仮想ページから1つの物理ページを参照することはできません。また、1つの仮想アドレスを2つの異なる物理アドレスに変換することもできません。つまり、PA-RISCではハードウェア・アドレス・エイリアシングがサポートされていません。ただし、HP-UXでは、EXEC_MAGIC実行可能ファイルでのみテキストのソフトウェア・アドレス・エイリアシングが実装されています。

キャッシュ・コントローラは、仮想アドレスの下位ビットを使用して、直接マッピングされたキャッシュに索引を付けます。キャッシュの各索引により、物理ページ番号(PPN)を含むキャッシュ・タグとデータのキャッシュ・ラインがわかります。キャッシュ・コントローラが特定のキャッシュ場所でエントリを見つけると、キャッシュ・タグ内のPPNとTLBによって返されたPPNを調べ、それが正しいものかどうかを確認するためにキャッシュ・ラインをチェックします。というのも、メイン・メモリのさまざまな場所からのブロックを、特定のキャッシュ場所に正しくマップできるためです。データがキャッシュ内に存在しないにもかかわらずページが変換される場合に生じるデータ・キャッシュ・ミスは、キャッシュ・コントローラによって完全に処理されます。TLBミスは、TLB内でページが変換されなかった場合に発生します。変換がPDIR内にもない場合、ページ・フォールト処理コードを使用して変換がフォールトインされます。変換がRAM内にない場合、データとコードをディスクからページングしなければならないことがあります。この場合、ディスクとメモリとの間の処理を実行する必要があります。

図11 キャッシュからのPPNとTLBからのPPNの比較
図11 キャッシュからのPPNとTLBからのPPNの比較

次の図は、仮想アドレスの要素と物理アドレスの要素のマッピングを詳細なレベルで示しています。

図12 仮想アドレスの変換
図12 仮想アドレスの変換

TLBのヒットとミス


プロセッサーは次の順序で、アドレスが「ヒットまたはミス(hit or miss)」のどちらなのかを検証します。

  • TLBが検索されます。つまり、プロセッサーが発行した仮想アドレスとバイト・オフセットそれぞれでTLB内のエントリが指し示されます。
  • エントリが有効であれば、そのエントリはTLBヒットと呼ばれます。TLBには、キャッシュ内でアクセスできる有効な物理ページ番号(PPN)が含まれます。
  • エントリが無効かまたはTLBに物理ページ番号が含まれない場合、TLBミスが発生します。このミスを処理する必要があります。一部のシステムでは、ハードウェア・ウォーカーがPDIRを検索し、ページが見つからない場合、TLBを更新します。ハードウェアTLBハンドラを搭載していないシステムでは、ソフトウェア割り込みが発生します。ソフトウェア割り込みによってこのフォールトの解消とTLBの更新が行われ、アクセスが続行可能になります。

アクセス制御とページ保護におけるTLBの役割


TLBは仮想アドレス変換を補助するだけでなく、プロセッサーに代わってセキュリティ機能を果たします。これは、アクセスを制御し、ユーザー・プロセスが権限のあるデータのみを参照できるようにするという形で行われます。

TLBには、アクセス権と保護IDが含まれます。PA-RISC 2.0では、最大8つの保護IDを各プロセスに関連付けることができます。これらのIDは、制御レジスタCR-8、CR-9、CR-12、CR-13に保持されます(レジスタごとに2個)。PA-RISC 1.1では、各プロセスに関連付けることができる保護IDは4つのみです。

表4 TLBでのセキュリティ・チェック

セキュリティ・チェック 目的
保護チェック プロセッサー・ステータス・ワード(PSW)のPビット(保護ID検証対応ビット)をチェック。

  • 設定しないと、あたかも保護チェックに合格してアクセス権の検証チェックに進むかのように、ページに対する保護チェックが省略される。
  • 設定すると、TLBエントリのアクセス識別子がCR-8、CR-9、CR-12、およびCR-13の保護IDと比較される。
アクセス権チェック 命令の実行に影響を与える許可可能なアクセスの種類と2つの特権レベルを含む7ビットのフィールドに、アクセス権が保存されている。

  • アクセスの種類は、読み取り、書き込み、実行。
  • 特権レベルは、読み取りアクセス、書き込みアクセス、カーネルおよびユーザー実行についてチェックされる。

次の図は、TLBを介してデータページへのアクセスを制御するチェックポイントを示しています。TLBを介してデータページへのアクセスを制御するために、2つのチェックが行われます。保護チェックとアクセス権チェックです。両方のチェックに合格すると、TLBにより参照されるページへのアクセスが許可されます。

図13 仮想ページに対するアクセス制御
図13 仮想ページに対するアクセス制御

キャッシュのヒットとミス


  • キャッシュ・ラインが最初にキャッシュにコピーされた際、その物理ページ番号が、対応するキャッシュ・タグに保存されています。キャッシュ・コントローラは、キャッシュ・タグのPPNとTLBからのPPNを比較します。
    • キャッシュ・タグのPPNとTLBからのPPNが一致する場合、キャッシュ・ヒットが生じます。データがキャッシュ内に存在し、CPUに提供されます。
    • キャッシュ・タグのPPNがTLBからのPPNと一致しない場合、キャッシュ・ミスが生じます。キャッシュ・ミスの場合、仮想ページ上で参照されるバイトがまだキャッシュ内に存在しないため、キャッシュ・ラインがメモリからロードされます(通常の実装では、一度にページ全体がキャッシュにロードされるのではなく、キャッシュ・ラインがロードされます)。データがキャッシュに存在しないため、データがキャッシュからメイン・メモリにロードされる間、CPUは待機しなければなりません。

      2つのPPNが一致しない場合(TLBヒットを前提として)、仮想ページ上で参照されるバイトがまだキャッシュ内に存在しないため、キャッシュ・ラインがロードされます。キャッシュ・ミスへの対処にかかる時間は、キャッシュ内に存在するデータがクリーンまたはダーティのどちらなのかによって異なります(キャッシュがダーティな場合、古い内容がメモリに書き出され、新しい内容がメモリから読み込まれます)。キャッシュ・ラインが「クリーン」な(つまり変更されていない)場合、メイン・メモリに書き戻す必要はありません。また、キャッシュがダーティであってメイン・メモリに書き戻す必要がある場合に比べて命令サイクルが少なくなります。
  • すべてのPA-RISCマシンでキャッシュ・ライトバック(書き戻し)ポリシーが採用されています。これは、キャッシュ・ラインが置き換えられる場合のみメイン・メモリが更新されることを意味します。

図14 TLB、キャッシュ、PDIRからのページ検索のまとめ
図14 TLB、キャッシュ、PDIRからのページ検索のまとめ

  • PA-RISCでは、GATEWAY命令を使用して特権レベルを上げることができます。この命令により、特権レベルを上げるペース間分岐が実行されます。HP-UXでのこの典型例はシステム・コールです。システム・コールにより、特権レベルがユーザーからカーネルに変更されます。

レジスタ


レジスタは、プロセッサーのCPU内にある高速メモリです。レジスタは、命令制御の流れ、計算、割り込み処理、保護機構、および仮想メモリ管理のためにデータを保持する記憶要素としてソフトウェアで使用されます。

すべての計算はレジスタ間またはレジスタと(命令に埋め込まれた)定数との間で実行されるため、メイン・メモリまたはコードへのアクセスが最小限に抑えられます。このようにレジスタを多用する手法により、PA-RISCシステムのパフォーマンスが向上します。このメモリは通常のメイン・メモリよりもはるかに高速ですが、高価でもあります。このため、プロセッサー専用で使用されます。

レジスタは、実行される命令の特権レベルに応じて、特権的または非特権的の2種類に分類されます。

表5 レジスタの種類(PA-RISC 2.0)

レジスタの種類 目的
32個の汎用レジスタ、サイズはすべて64ビット
(非特権的)
パラメータ渡しなど、即時の結果または頻繁にアクセスされるデータを保持。次に挙げるのは、PA-RISCまたはHP-UXで使用されるレジスタ。

  • GR0 - 常にゼロ
  • GR1 - ADDILターゲット・アドレス
  • GR2 - 戻り先の命令の命令オフセットを含むリターン・ポインタ
  • GR19 - 引き数7(arg7)(64ビット・モード)
  • GR20 - 引き数6(arg6)(64ビット・モード)
  • GR21 - 引き数5(arg5)(64ビット・モード)
  • GR22 - 引き数4(arg4)(64ビット・モード)
  • GR23 - 引き数3(arg3)
  • GR24 - 引き数2(arg2)
  • GR25 - 引き数1(arg1)
  • GR26 - 引き数0(arg0)
  • GR27 - グローバル・データ・ポインタ(dp)
  • GR28 - 戻り値
  • GR29 - 戻り値(double)
  • GR30 - スタック・ポインタ(sp)
7個のシャドウ・レジスタ
(特権的)
割り込み時にGR1、8、9、16、17、24、および25の内容を保存。これにより、割り込みからの復帰時に復元できる。SHR0〜SHR6の番号が付けられている。
8個のスペース・レジスタ(SR5〜SR7は特権的) 現在実行中のプロセスのためのスペースIDを保持。

  • SR0 - 外部命令の分岐とリンクに使用される命令アドレス空間リンク・レジスタ。
  • SR1〜SR7 - プロセスの仮想アドレス形成に使用。
25個の制御レジスタ(CR0およびCR8〜CR31の番号付き)、すべて64ビット(ほとんどが特権的) システムのさまざまな状態を反映するために使用され、多くは主に割り込み処理にかかわる。

  • CR0 - フォールト・トレラント・システムにおけるハードウェア障害のソフトウェア回復とデバッギングに使用される回復カウンタ。
  • CR10 - コプロセッサーの存在と可用性を示す、コプロセッサー構成レジスタ(CCR:Coprocessor Configuration Register)と呼ばれる下位8ビット。ビット0および1は浮動小数点コプロセッサーに対応し、ビット2は性能モニター・コプロセッサーに対応。
  • CR14 - 割り込みベクター・アドレス(IVA:Interruption Vector Address)。
  • CR16 - 間隔タイマー。2つの内部レジスタ。一方のレジスタは実装固有の「最大命令速度」の2倍と半分の間の速さでカウントされ、他方のレジスタには32ビットの比較値が入る。マルチプロセッサー・システムの各プロセッサーには固有の間隔タイマーが備わっているが、同じ周波数で同期化することもクロックを刻む必要もない。
  • CR17 - 割り込み時に命令アドレス空間キューの内容を保存。
  • CR19 - 命令を割り込みハンドラに渡す。
  • CR20、CR21 - 仮想アドレスを命令ハンドラに渡す。
  • CR25 - ハッシュ・ページ・テーブル(htbl)のアドレスを含む。
  • CR26、CR27 - 任意の特権レベルで実行されるコードで読み取り可能だが、特権コードでのみ書き込み可能な一時レジスタ。
32個の浮動小数点レジスタ、すべて64ビットか、64ビットまたは32ビット 計算を保持するデータ・レジスタ。

  • FP-0L - 状態レジスタ。算術モードを制御し、トラップを使用可能にする。また、例外と比較結果を示し、コプロセッサー実装を識別。
  • FP-0R〜FP-3 - 実行が完了すると遅延トラップを引き起こす浮動小数点演算に関する情報を含む例外レジスタ。
2個の命令アドレス・キュー 深さが2要素の2個のキュー。キューの前部要素(IASQ_FrontとIAOQ_Front)が現在の命令の仮想アドレスを形成し、後部要素(IASQ_BackとIAOQ_Back)には次回の命令のアドレスが含まれる。

  • 命令アドレス空間キューに、現在の命令と次回の命令のスペースIDを保持。
  • 命令アドレス・オフセット・キューに、特定のスペースの命令のオフセットを保持。上位62ビットには、命令のワード・オフセットが含まれ、下位2ビットには命令の特権レベルが維持される。
1個のプロセッサー・ステータス・ワード(PSW)、64ビット(特権的) 現在のプロセッサー状態。割り込みが発生すると、PSW(Processor Status Word)が割り込みプロセッサー・ステータス・ワード(IPSW:Interrupt Processor Status Word)に保存され、後で復元される。PSWの下位5ビットはシステム・マスクであり、マスク/マスク解除または有効/無効として定義される。PSWにより無効にされた割り込みはプロセッサーが無視する。マスクされた割り込みは、マスク解除されるまで保留状態になる。
最初のページへ 前のページへ 次のページへ

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項