【手続補正書】
【提出日】令和1年6月26日(2019.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
保護キーメモリアクセス制御をサポートするように適合されていないプロセッサを有するコンピューティングシステムにおいて保護キーメモリアクセス制御を実装する方法であって、前記プロセッサは、メモリ管理ユニット（ＭＭＵ）を含み、仮想メモリを管理するオペレーティングシステムを実行し、前記プロセッサは、ユーザプロセスおよびタスクを実行するように適合され、前記方法は、
各プロセスに、仮想アドレスメモリの連続範囲と連続アドレス空間内の各ブロックへの記憶域キーとを割り当てることと、
前記プロセスにおける各タスクに記憶域アクセスキーを割り当てることと、
その割り当てられたアクセスキーを伴うタスクに仮想アドレスマッピングを割り当てることによって、特定のアクセスキーを使用してそのタスクの実行を開始することと、
前記タスクによる後続のメモリアクセスに応答して、前記後続のメモリアクセスが前記タスクによって以前に使用されたアクセスキーと異なるアクセスキーを使用する場合、前記タスクが前記異なるアクセスキーを使用する権限を与えられているかどうかを決定し、第２のタスクが権限を与えられている場合、後続の仮想アドレスマッピングを前記タスクおよび前記異なるアクセスキーに割り当てることと、
前記タスクによる記憶域を配分するコマンドまたは解放するコマンドに応答して、制御バイトを設定することであって、前記制御バイトを設定することは、前記記憶域キーデータと、各制御バイトに関連付けられたページが有効であるというインジケータとを設定することを含む、ことと、
任意のアクセスキーを使用する前記タスクのコンピュータ命令の実行時、
前記タスクに関連付けられた前記アドレス空間内に仮想アドレスを生成することと、
第１のアドレスが第１のプロセスに関連付けられた前記アドレスの範囲内にあるかどうかを決定することと、
前記アドレスが前記第１のプロセスに関連付けられた前記アドレスの範囲内にある場合、
セグメンテーション違反を前記ＭＭＵによって生成することと、
前記アクセスキー値が０であること、または前記タスクが前記アクセスキーを使用して前記仮想アドレスにアクセスする権限を与えられていることを例外ハンドラによって検証することと、
前記例外ハンドラを検証すると、前記ＭＭＵにおいて、前記仮想アドレスを備えているデータのページに関連付けられるネイティブ保護設定を変更し、前記仮想アドレスへのアクセスを可能にすることと、
続いて、前記命令を再試行し、前記ＭＭＵによって、前記タスクの前記命令が前記データのページ内の仮想アドレスにアクセスすることを可能にすることと
を含む、方法。
【請求項２】
前記タスクは、前記プロセスの第２のタスクを備えている、請求項１に記載の方法。
【請求項３】
前記第１および第２のタスクに関連付けられたプレフィックスデータは、異なる物理アドレスの中であるが、同じ論理アドレスにおいて記憶される、請求項２に記載の方法。
【請求項４】
前記変更することは、対応するページテーブル項目のビット０の値を設定し、前記物理ページがメモリの中に存在していることを示すことを含む、請求項１に記載の方法。
【請求項５】
ＭＰＲＯＴＥＣＴ（）関数を呼び出し、前記ネイティブ保護設定を変更することをさらに含む、請求項１に記載の方法。
【請求項６】
前記セグメンテーション違反は、前記仮想アドレスに対応する前記ページが物理メモリの中に存在しないこと、または、前記タスクが読み取り専用アクセス許可設定を伴ってメモリの中に存在するページに書き込もうとしていること、または、前記タスクがマッチングアクセス許可設定を伴わずにページを読み込もうとしていることを示すことを含む、請求項１〜５のうちのいずれかに記載の方法。
【請求項７】
前記ブロックは、４ｋブロックを備えている、請求項１〜６のうちのいずれかに記載の方法。
【請求項８】
コンピューティングシステムであって、前記コンピューティングシステムは、
保護キーメモリアクセス制御をサポートするように適合されていないプロセッサであって、前記プロセッサは、メモリ管理ユニット（ＭＭＵ）を含み、仮想メモリを管理するオペレーティングシステムを実行し、前記プロセッサは、ユーザプロセスおよびタスクを実行するように適合されている、プロセッサと、
命令を記憶している非一過性のメモリと
を備え、
前記命令は、前記プロセッサ上で実行されると、
プロセスに、仮想アドレスメモリの連続範囲と連続アドレス空間内の各ブロックへの記憶域キーとを割り当てることと、
前記プロセスにおける各タスクに記憶域アクセスキーを割り当てることと、
その割り当てられたアクセスキーを伴うタスクに仮想アドレスマッピングを割り当てることによって、特定のアクセスキーを使用してそのタスクの実行を開始することと、
前記タスクによる後続のメモリアクセスに応答して、前記後続のメモリアクセスが前記タスクによって以前に使用されたアクセスキーと異なるアクセスキーを使用する場合、前記タスクが前記異なるアクセスキーを使用する権限を与えられているかどうかを決定し、第２のタスクが権限を与えられている場合、後続の仮想アドレスマッピングを前記タスクおよび前記異なるアクセスキーに割り当てることと、
前記タスクによる記憶域を配分するコマンドまたは解放するコマンドに応答して、制御バイトを設定することであって、前記制御バイトを設定することは、前記記憶域キーデータと、各制御バイトに関連付けられるページが有効であるというインジケータとを設定することを含む、ことと、
任意のアクセスキーを使用する前記タスクのコンピュータ命令の実行時、
前記タスクに関連付けられた前記アドレス空間内に仮想アドレスを生成することと、
第１のアドレスが第１のプロセスに関連付けられた前記アドレスの範囲内にあるかどうかを決定することと、
前記アドレスが前記第１のプロセスに関連付けられた前記アドレスの範囲内にある場合、
セグメンテーション違反を前記ＭＭＵによって生成することと、
前記アクセスキー値が０であること、または前記タスクが前記アクセスキーを使用して前記仮想アドレスにアクセスする権限を与えられていることを例外ハンドラによって検証することと、
前記例外ハンドラを検証すると、前記ＭＭＵにおいて、前記ゲスト仮想アドレスを備えているデータのページに関連付けられたネイティブ保護設定を変更し、前記仮想アドレスへのアクセスを可能にすることと、
続いて、前記命令を再試行し、前記ＭＭＵによって、前記タスクの前記命令が前記データのページ内の仮想アドレスにアクセスする可能にすることと
を前記プロセッサに行わせる、コンピューティングシステム。
【請求項９】
前記タスクは、前記プロセスの第２のタスクを備えている、請求項８に記載のシステム。
【請求項１０】
前記第１および第２のタスクに関連付けられたプレフィックスデータは、異なる物理アドレスの中であるが、同じ論理アドレスにおいて記憶される、請求項９に記載のシステム。
【請求項１１】
前記ネイティブ保護設定を変更することは、対応するページテーブル項目のビット０の値を設定し、前記物理ページがメモリの中に存在していることを示すことを含む、請求項８に記載のシステム。
【請求項１２】
前記ネイティブ保護設定を変更するように動作可能であるＭＰＲＯＴＥＣＴ（）関数を前記システムの前記オペレーティングシステムの中にさらに備えている、請求項８に記載のシステム。
【請求項１３】
前記セグメンテーション違反は、前記仮想アドレスに対応する前記ページが物理メモリの中に存在しないこと、または、前記タスクが読み取り専用アクセス許可設定を伴ってメモリの中に存在するページに書き込もうとしていること、または、前記タスクがマッチングアクセス許可設定を伴わずにページを読み込もうとしていることを示すことを含む、請求項８〜１２のうちのいずれかに記載のシステム。
【請求項１４】
前記ブロックは、４ｋブロックを備えている、請求項８〜１３のうちのいずれかに記載のシステム。