【手続補正書】
【提出日】平成23年1月28日(2011.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想アドレスを主ストレージ内のデータ・ブロックの変換アドレスに変換するために用いられる変換テーブル階層構造を有するコンピュータ・システムにおけるデータを保護するための方法であって、
変換すべき前記仮想アドレスを取得するステップと、
前記変換テーブル階層構造の変換テーブルの初期基点アドレスを取得するステップであって、前記変換テーブル階層構造がセグメント・テーブルを含むステップと、
前記取得された初期基点に基づいて、前記セグメント・テーブルからセグメント・テーブル・エントリを取得するステップであって、前記セグメント・テーブル・エントリがフォーマット制御フィールドを含むように構成されているステップと、
強化型ＤＡＴファシリティがイネーブルであることに応答して、前記セグメント・テーブル・エントリ内の前記フォーマット制御フィールドがイネーブルであるかどうかを判定するステップと、
前記フォーマット制御フィールドがイネーブルであることに応答して、
前記セグメント・テーブル・エントリ内のアクセス妥当性フィールドがイネーブルであるかどうかを判定するステップであって、前記セグメント・テーブル・エントリが、前記アクセス妥当性フィールド、セグメント・アクセス制御フィールド、セグメント・フェッチ保護フィールド、及び主ストレージ内の大データ・ブロックのセグメント・フレーム絶対アドレスを含むステップ
を実施するステップと、
前記アクセス妥当性フィールドがイネーブルであることに応答して、
所望の前記メモリ・ブロックへのストアを許可するステップであって、前記ストアは前記仮想アドレスに関連付けられており、前記ストアが、前記セグメント・アクセス制御フィールドが、プログラム・ステータス・ワード又は実行中のプログラム命令のオペランドのうちのいずれか１つによって与えられるプログラム・アクセス・キーに一致したことに応答してのみ許可されるステップと、
前記所望のデータ・ブロックからのフェッチを許可するステップであって、前記フェッチは前記仮想アドレスに関連付けられており、ａ）前記セグメント・フェッチ保護フィールドがディスエーブルであること、又はｂ）前記セグメント・フェッチ保護フィールドがイネーブルであり、且つ前記仮想アドレスに関連付けられた前記プログラム・アクセス・キーが前記セグメント・アクセス制御フィールドと等しいこと、のいずれかに応答してのみ許可されるステップを実施するステップと
を実施するステップと、
強化型ＤＡＴファシリティがイネーブルでないことに応答して、
前記セグメント・テーブル・エントリからページ・テーブルの基点を取得するステップであって、前記仮想アドレスのページ・インデックス部分を用いて前記ページ・テーブル内のページ・テーブル・エントリを参照するステップと、
前記ページ・テーブル・エントリから、主ストレージ内の小データ・ブロックのページ・フレーム実アドレスを取得するステップであって、前記小データ・ブロックは前記大データ・ブロックよりもサイズが小さく、且つ、ストレージ・キーに関連付けられた４キロバイトのデータ・ブロックから成り、前記ストレージ・キーは、ストレージ・アクセス制御フィールドとストレージ・フェッチ保護フィールドとを含み、主ストレージ内の所望の実データ・ブロックの変換アドレスは、前記ページ・フレーム実アドレスと前記仮想アドレスのバイト・インデックス部分との組合せを含む、ステップと、
を実施するステップと
を含む方法。
【請求項２】
前記変換アドレスが、実アドレス又は絶対アドレスのうちのいずれか１つであり、前記実アドレスに対してプレフィックス付加を行うことによって前記絶対アドレスが形成され、前記変換テーブル階層構造が、領域第１テーブル、領域第２テーブル、領域第３テーブル、及び前記セグメント・テーブルのうちの１つ又は複数から成り、前記セグメント・テーブルから前記セグメント・テーブル・エントリを取得する前記ステップが、Ａ、Ｂ、Ｃ、Ｄのうちのいずれか１つを含み、
Ａ）前記領域第１テーブルの前記取得された初期基点アドレスに基づいて、前記仮想アドレスの第１インデックス部分を用いて前記領域第２テーブルの基点アドレスを含む前記領域第１テーブル内の領域第１テーブル・エントリを参照し、
前記領域第２テーブルの前記基点アドレスに基づいて、前記仮想アドレスの第２インデックス部分を用いて前記領域第３テーブルの基点アドレスを含む前記領域第２テーブル内の領域第２テーブル・エントリを参照し、前記領域第３テーブルの前記基点アドレスに基づいて、前記仮想アドレスの第３インデックス部分を用いて前記セグメント・テーブルの基点アドレスを含む前記領域第３テーブル内の領域第３テーブル・エントリを参照し、前記セグメント・テーブルの前記基点アドレスに基づいて、前記仮想アドレスのセグメント・インデックス部分を用いて前記セグメント・テーブル内のセグメント・テーブル・エントリを参照するステップ、
Ｂ）前記領域第２テーブルの前記取得された初期基点アドレスに基づいて、前記仮想アドレスの前記第２インデックス部分を用いて前記領域第３テーブルの基点アドレスを含む前記領域第２テーブル内の前記領域第２テーブル・エントリを参照し、前記領域第３テーブルの前記基点アドレスに基づいて、前記仮想アドレスの前記第３インデックス部分を用いて前記セグメント・テーブルの前記基点アドレスを含む前記領域第３テーブル内の前記領域第３テーブル・エントリを参照し、前記セグメント・テーブルの前記基点アドレスに基づいて、前記仮想アドレスの前記セグメント・インデックス部分を用いて前記セグメント・テーブル内の前記セグメント・テーブル・エントリを参照するステップ、
Ｃ）前記領域第３テーブルの前記取得された初期基点アドレスに基づいて、前記仮想アドレスの前記第３インデックス部分を用いて前記セグメント・テーブルの前記基点アドレスを含む前記領域第３テーブル内の前記領域第３テーブル・エントリを参照し、前記セグメント・テーブルの前記基点アドレスに基づいて、前記仮想アドレスの前記セグメント・インデックス部分を用いて前記セグメント・テーブル内の前記セグメント・テーブル・エントリを参照するステップ、及び
Ｄ）前記セグメント・テーブルの前記取得された初期基点アドレスに基づいて、前記仮想アドレスの前記セグメント・インデックス部分を用いて前記セグメント・テーブル・エントリを参照するステップ
である、請求項１に記載の方法。
【請求項３】
前記強化型ＤＡＴファシリティがイネーブルであり、且つ前記フォーマット制御フィールドがイネーブルでないことに応答して、
前記セグメント・テーブル・エントリからページ・テーブルの基点を取得するステップであって、前記仮想アドレスのページ・インデックス部分を用いて前記ページ・テーブル内のページ・テーブル・エントリを参照するステップと、
前記ページ・テーブル・エントリから、主ストレージ内の小データ・ブロックのページ・フレーム実アドレスを取得するステップであって、前記小データ・ブロックは前記大データ・ブロックよりもサイズが小さく、且つ４キロバイトのデータ・ブロックから成り、前記小データ・ブロックは、ストレージ・アクセス制御フィールドとストレージ・フェッチ保護フィールドとを含むストレージ・キーに関連付けられており、主ストレージ内の所望の実データ・ブロックの変換アドレスは、前記ページ・フレーム実アドレスと前記仮想アドレスのバイト・インデックス部分との組合せを含む、ステップと、
前記プログラムのアクセス制御フィールドが前記ストレージ・アクセス制御フィールドに一致したことに応答してのみ、前記所望の実メモリ・ブロックに対するストアを許可するステップであって、前記ストアは前記仮想アドレスに関連付けられており、前記プログラム・アクセス制御フィールドは、プログラム・ステータス・ワード又は実行中のプロフラム命令のオペランドのうちのいずれか１つを含むプログラム・エンティティによって与えられる、ステップと、
ａ）前記ストレージ・フェッチ保護フィールドがディスエーブルであること、又はｂ）前記ストレージ・フェッチ保護フィールドがイネーブルであり、且つ前記仮想アドレスに関連付けられたプログラム・アクセス・キーが前記ストレージ・アクセス制御フィールドと等しいこと、のいずれかにのみ応答して、前記所望のデータ・ブロックからのフェッチを許可するステップであって、前記フェッチは前記仮想アドレスに関連付けられており、前記プログラム・アクセス・キーは、プログラム・ステータス・ワード又は実行中のプログラム命令のオペランドのうちのいずれか１つによって与えられる、ステップと
を実施する、請求項２に記載の方法。
【請求項４】
前記強化型ＤＡＴファシリティがイネーブルでないことに応答して、
前記セグメント・テーブル・エントリからページ・テーブルの基点を取得し、前記仮想アドレスのページ・インデックス部分を用いて前記ページ・テーブル内のページ・テーブル・エントリを参照するステップと、
前記ページ・テーブル・エントリから、主ストレージ内の小データ・ブロックのページ・フレーム実アドレスを取得するステップであって、前記小データ・ブロックは前記大データ・ブロックよりもサイズが小さく、且つ、ストレージ・キーに関連付けられた４キロバイトのデータ・ブロックから成り、前記ストレージ・キーは、ストレージ・アクセス制御フィールド及びストレージ・フェッチ保護フィールドを含み、主ストレージ内の所望の実データ・ブロックの変換アドレスは、前記ページ・フレーム実アドレスと前記仮想アドレスのバイト・インデックス部分との組合せを含む、ステップと、
前記プログラムのアクセス制御フィールドが前記ストレージ・アクセス制御フィールドに一致したことに応答してのみ、前記所望の実メモリ・ブロックに対するストアを許可するステップであって、前記ストアが前記仮想アドレスに関連付けられる、ステップと、
ａ）前記ストレージ・フェッチ保護フィールドがディスエーブルであること、又はｂ）前記ストレージ・フェッチ保護フィールドがイネーブルであり、且つ前記仮想アドレスに関連付けられたプログラム・アクセス・キーが前記ストレージ・アクセス制御フィールドに等しいこと、のいずれかにのみ応答して、前記所望のデータ・ブロックからのフェッチを許可するステップであって、前記フェッチは前記仮想アドレスに関連付けられており、前記プログラム・アクセス・キーは、プログラム・ステータス・ワード又は実行中のプログラム命令のオペランドのうちのいずれか１つによって与えられる、ステップと
を実施する、請求項２に記載の方法。
【請求項５】
前記プログラム・アクセス・キーが０であることに応答して、前記所望のメモリ・ブロックへのストア及び前記所望のメモリ・ブロックからのフェッチを許可し、前記ストア及びフェッチが前記仮想アドレスに関連付けられる、請求項１に記載の方法。
【請求項６】
前記アクセス妥当性フィールド及び前記フェッチ保護フィールドがイネーブルであることに応答して、保護例外が、前記所望のメモリ・ブロックからのフェッチ動作が試行されたこと、且つ前記セグメント・アクセス制御フィールドが前記プログラムのアクセス制御フィールドに一致しないことに応答して示され、前記フェッチ動作が前記仮想アドレスに関連付けられている、請求項１に記載の方法。
【請求項７】
前記アクセス妥当性フィールドがイネーブルであるかどうかを判定する前記ステップが、ａ）制御レジスタのストレージ保護オーバーライド・フィールドがディスエーブルかどうか、又はｂ）前記ストレージ保護オーバーライド・フィールドがイネーブルであり、且つ前記セグメント・アクセス制御フィールドがイネーブルでないかどうか、のうちのいずれか１つを判定するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記仮想アドレスの前記変換に用いられた情報を、少なくとも１つの変換ルックアサイド・バッファ内にストアするステップと、
その後の仮想アドレスの、主ストレージ内の前記データ・ブロックの前記絶対アドレスへのそれ以降の変換を、前記変換テーブル階層構造ではなく前記変換ルックアサイド・バッファ由来の前記ストアされた情報を用いて実施するステップと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記変換が前記システムのアーキテクチャに対してネイティブではないことに応答して、
前記変換をエミュレートするための所定のソフトウェア・ルーチンを識別するステップであって、前記所定のソフトウェア・ルーチンが複数の命令を含むステップと、
前記所定のソフトウェア・ルーチンを実行するステップと
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記大データ・ブロックが、少なくとも１メガバイトのサイズのブロックを含む、請求項１に記載の方法。
【請求項１１】
方法に係る請求項１から請求項１０のいずれか１項に記載の方法の全てのステップを実行するように適合された手段を備える、システム。
【請求項１２】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システム上で実行されるときに、請求項１から請求項１０のいずれか１項に記載の方法の全てのステップをコンピュータに実行させる、コンピュータ・プログラム。