JP6708860B2 - 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 - Google Patents
仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 Download PDFInfo
- Publication number
- JP6708860B2 JP6708860B2 JP2019079548A JP2019079548A JP6708860B2 JP 6708860 B2 JP6708860 B2 JP 6708860B2 JP 2019079548 A JP2019079548 A JP 2019079548A JP 2019079548 A JP2019079548 A JP 2019079548A JP 6708860 B2 JP6708860 B2 JP 6708860B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- access
- memory
- key
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013519 translation Methods 0.000 title description 16
- 238000000034 method Methods 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 74
- 238000013507 mapping Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 14
- 230000011218 segmentation Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241000256836 Apis Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Description
本願明細書は、例えば、以下の項目も提供する。
(項目1)
保護キーメモリアクセス制御をサポートするように適合されていないプロセッサを有するコンピューティングシステムにおいて保護キーメモリアクセス制御を実装する方法であって、前記プロセッサは、メモリ管理ユニット(MMU)を含み、仮想メモリを管理するオペレーティングシステムを実行し、前記プロセッサは、ユーザプロセスおよびタスクを実行するように適合され、前記方法は、
各プロセスに、仮想アドレスメモリの連続範囲と連続アドレス空間内の各4Kブロックへの記憶域キーとを割り当てることと、
前記プロセスにおける各タスクに記憶域アクセスキーを割り当てることと、
その割り当てられたアクセスキーを伴うタスクに仮想アドレスマッピングを割り当てることによって、特定のアクセスキーを使用してそのタスクの実行を開始することと、
仮想アドレスマッピングを前記割り当てられた記憶域キーのための前記タスクに割り当てることと、
前記タスクによる後続のメモリアクセスに応答して、前記後続のメモリアクセスが前記タスクによって以前に使用されたアクセスキーと異なるアクセスキーを使用する場合、前記タスクが前記異なるアクセスキーを使用する権限を与えられているかどうかを決定し、前記第2のタスクが権限を与えられている場合、後続の仮想アドレスマッピングを前記タスクおよびキーに割り当てることと、
前記タスクによる記憶域を配分するコマンドまたは解放するコマンドに応答して、制御バイトを設定することであって、前記制御バイトを設定することは、前記記憶域キーデータと、各制御バイトに関連付けられたページが有効であるというインジケータとを設定することを含む、ことと、
前記アクセスキーを使用する前記タスクのコンピュータ命令の実行時、
前記タスクに関連付けられた前記アドレス空間内に仮想アドレスを生成することと、
前記第1のアドレスが前記第1のプロセスに関連付けられた前記アドレスの範囲内にあるかどうかを決定することと、
前記アドレスが前記第1のプロセスに関連付けられた前記アドレスの範囲内にある場合、
前記仮想アドレスに対応する前記ページが物理メモリの中に存在しないこと、または、前記タスクが読み取り専用アクセス許可設定を伴ってメモリの中に存在するページに書き込もうとしていることを示すセグメンテーション違反を前記MMUによって生成することと、
前記アクセスキー値が0であること、または前記タスクが前記アクセスキーを使用して前記仮想アドレスにアクセスする権限を与えられていることを例外ハンドラによって検証することと、
前記例外ハンドラを検証すると、前記MMUにおいて、前記仮想アドレスを備えているデータのページに関連付けられるネイティブ保護設定を変更し、前記仮想アドレスへのアクセスを可能にすることと、
続いて、前記命令を再試行し、前記MMUによって、前記タスクの前記命令が前記データのページ内の仮想アドレスにアクセスすることを可能にすることと
を含む、方法。
(項目2)
前記タスクは、前記プロセスの第2のタスクを備えている、項目1に記載の方法。
(項目3)
前記第1および第2のタスクに関連付けられたプレフィックスデータは、異なる物理アドレスの中であるが、同じ論理アドレスにおいて記憶される、項目2に記載の方法。
(項目4)
前記変更することは、対応するページテーブル項目のビット0の値を設定し、前記物理ページがメモリの中に存在していることを示すことを含む、項目1に記載の方法。
(項目5)
MPROTECT()関数を呼び出し、前記ネイティブ保護設定を変更することをさらに含む、項目1に記載の方法。
(項目6)
コンピューティングシステムであって、前記コンピューティングシステムは、
保護キーメモリアクセス制御をサポートするように適合されていないプロセッサであって、前記プロセッサは、メモリ管理ユニット(MMU)を含み、仮想メモリを管理するオペレーティングシステムを実行し、前記プロセッサは、ユーザプロセスおよびタスクを実行するように適合されている、プロセッサと、
命令を記憶している非一過性のメモリと
を備え、
前記命令は、前記プロセッサ上で実行されると、
プロセスに、仮想アドレスメモリの連続範囲と連続アドレス空間内の各4Kブロックへの記憶域キーとを割り当てることと、
前記プロセスにおける各タスクに記憶域アクセスキーを割り当てることと、
その割り当てられたアクセスキーを伴うタスクに仮想アドレスマッピングを割り当てることによって、特定のアクセスキーを使用してそのタスクの実行を開始することと、
仮想アドレスマッピングを前記割り当てられた記憶域キーのための前記タスクに割り当てることと、
前記タスクによる後続のメモリアクセスに応答して、前記後続のメモリアクセスが前記タスクによって以前に使用されたアクセスキーと異なるアクセスキーを使用する場合、前記タスクが前記異なるアクセスキーを使用する権限を与えられているかどうかを決定することと、前記第2のタスクが権限を与えられている場合、後続の仮想アドレスマッピングを前記タスクおよびキーに割り当てることと、
前記タスクによる記憶域を配分するコマンドまたは解放するコマンドに応答して、制御バイトを設定することであって、前記制御バイトを設定することは、前記記憶域キーデータと、各制御バイトに関連付けられるページが有効であるというインジケータとを設定することを含む、ことと、
前記アクセスキーを使用する前記タスクのコンピュータ命令の実行時、
前記タスクに関連付けられた前記アドレス空間内に仮想アドレスを生成することと、
前記第1のアドレスが前記第1のプロセスに関連付けられた前記アドレスの範囲内にあるかどうかを決定することと、
前記アドレスが前記第1のプロセスに関連付けられた前記アドレスの範囲内にある場合、
前記仮想アドレスに対応する前記ページが物理メモリの中に存在しないこと、または、前記タスクが読み取り専用アクセス許可設定を伴ってメモリの中に存在するページに書き込もうとしていることを示すセグメンテーション違反を前記MMUによって生成することと、
前記アクセスキー値が0であること、または前記タスクが前記アクセスキーを使用して前記仮想アドレスにアクセスする権限を与えられていることを例外ハンドラによって検証することと、
前記例外ハンドラを検証すると、前記MMUにおいて、ゲスト仮想アドレスを備えているデータのページに関連付けられたネイティブ保護設定を変更し、前記仮想アドレスへのアクセスを可能にすることと、
続いて、前記命令を再試行し、前記MMUによって、前記タスクの前記命令が前記データのページ内の仮想アドレスにアクセスする可能にすることと
を前記プロセッサに行わせる、コンピューティングシステム。
(項目7)
前記タスクは、前記プロセスの第2のタスクを備えている、項目6に記載のシステム。
(項目8)
前記第1および第2のタスクに関連付けられたプレフィックスデータは、異なる物理アドレスの中であるが、同じ論理アドレスにおいて記憶される、項目6に記載のシステム。
(項目9)
前記ネイティブ保護設定を変更することは、対応するページテーブル項目のビット0の値を設定し、前記物理ページがメモリの中に存在していることを示すことを含む、項目6に記載のシステム。
(項目10)
前記ネイティブ保護設定を変更するように動作可能であるMPROTECT()関数を前記システムの前記オペレーティングシステムの中にさらに備えている、項目6に記載のシステム。
Claims (14)
- 保護キーメモリアクセス制御をサポートするように適合されていないプロセッサを有するコンピューティングシステムにおいて保護キーメモリアクセス制御を実装する方法であって、前記プロセッサは、メモリ管理ユニット(MMU)を含み、仮想メモリを管理するオペレーティングシステムを実行し、前記プロセッサは、ユーザプロセスおよびタスクを実行するように適合され、前記方法は、
各プロセスに、仮想アドレスメモリの連続範囲と連続アドレス空間内の各ブロックへの記憶域キーとを割り当てることと、
前記プロセスにおける各タスクに記憶域アクセスキーを割り当てることと、
その割り当てられたアクセスキーを伴うタスクに仮想アドレスマッピングを割り当てることによって、特定のアクセスキーを使用してそのタスクの実行を開始することと、
前記タスクによる後続のメモリアクセスに応答して、前記後続のメモリアクセスが前記タスクによって以前に使用されたアクセスキーと異なるアクセスキーを使用する場合、前記タスクが前記異なるアクセスキーを使用する権限を与えられているかどうかを決定し、第2のタスクが権限を与えられている場合、後続の仮想アドレスマッピングを前記タスクおよび前記異なるアクセスキーに割り当てることと、
前記タスクによる記憶域を配分するコマンドまたは解放するコマンドに応答して、制御バイトを設定することであって、前記制御バイトを設定することは、前記記憶域キーデータと、各制御バイトに関連付けられたページが有効であるというインジケータとを設定することを含む、ことと、
任意のアクセスキーを使用する前記タスクのコンピュータ命令の実行時、
前記タスクに関連付けられた前記アドレス空間内に仮想アドレスを生成することと、
第1のアドレスが第1のプロセスに関連付けられた前記アドレスの範囲内にあるかどうかを決定することと、
前記アドレスが前記第1のプロセスに関連付けられた前記アドレスの範囲内にある場合、
セグメンテーション違反を前記MMUによって生成することと、
前記アクセスキー値が0であること、または前記タスクが前記アクセスキーを使用して前記仮想アドレスにアクセスする権限を与えられていることを例外ハンドラによって検証することと、
前記例外ハンドラを検証すると、前記MMUにおいて、前記仮想アドレスを備えているデータのページに関連付けられるネイティブ保護設定を変更し、前記仮想アドレスへのアクセスを可能にすることと、
続いて、前記命令を再試行し、前記MMUによって、前記タスクの前記命令が前記データのページ内の仮想アドレスにアクセスすることを可能にすることと
を含む、方法。 - 前記タスクは、前記プロセスの第2のタスクを備えている、請求項1に記載の方法。
- 前記第1および第2のタスクに関連付けられたプレフィックスデータは、異なる物理アドレスの中であるが、同じ論理アドレスにおいて記憶される、請求項2に記載の方法。
- 前記変更することは、対応するページテーブル項目のビット0の値を設定し、前記物理ページがメモリの中に存在していることを示すことを含む、請求項1に記載の方法。
- MPROTECT()関数を呼び出し、前記ネイティブ保護設定を変更することをさらに含む、請求項1に記載の方法。
- 前記セグメンテーション違反は、前記仮想アドレスに対応する前記ページが物理メモリの中に存在しないこと、または、前記タスクが読み取り専用アクセス許可設定を伴ってメモリの中に存在するページに書き込もうとしていること、または、前記タスクがマッチングアクセス許可設定を伴わずにページを読み込もうとしていることを示すことを含む、請求項1〜5のうちのいずれかに記載の方法。
- 前記ブロックは、4kブロックを備えている、請求項1〜6のうちのいずれかに記載の方法。
- コンピューティングシステムであって、前記コンピューティングシステムは、
保護キーメモリアクセス制御をサポートするように適合されていないプロセッサであって、前記プロセッサは、メモリ管理ユニット(MMU)を含み、仮想メモリを管理するオペレーティングシステムを実行し、前記プロセッサは、ユーザプロセスおよびタスクを実行するように適合されている、プロセッサと、
命令を記憶している非一過性のメモリと
を備え、
前記命令は、前記プロセッサ上で実行されると、
プロセスに、仮想アドレスメモリの連続範囲と連続アドレス空間内の各ブロックへの記憶域キーとを割り当てることと、
前記プロセスにおける各タスクに記憶域アクセスキーを割り当てることと、
その割り当てられたアクセスキーを伴うタスクに仮想アドレスマッピングを割り当てることによって、特定のアクセスキーを使用してそのタスクの実行を開始することと、
前記タスクによる後続のメモリアクセスに応答して、前記後続のメモリアクセスが前記タスクによって以前に使用されたアクセスキーと異なるアクセスキーを使用する場合、前記タスクが前記異なるアクセスキーを使用する権限を与えられているかどうかを決定し、第2のタスクが権限を与えられている場合、後続の仮想アドレスマッピングを前記タスクおよび前記異なるアクセスキーに割り当てることと、
前記タスクによる記憶域を配分するコマンドまたは解放するコマンドに応答して、制御バイトを設定することであって、前記制御バイトを設定することは、前記記憶域キーデータと、各制御バイトに関連付けられるページが有効であるというインジケータとを設定することを含む、ことと、
任意のアクセスキーを使用する前記タスクのコンピュータ命令の実行時、
前記タスクに関連付けられた前記アドレス空間内に仮想アドレスを生成することと、
第1のアドレスが第1のプロセスに関連付けられた前記アドレスの範囲内にあるかどうかを決定することと、
前記アドレスが前記第1のプロセスに関連付けられた前記アドレスの範囲内にある場合、
セグメンテーション違反を前記MMUによって生成することと、
前記アクセスキー値が0であること、または前記タスクが前記アクセスキーを使用して前記仮想アドレスにアクセスする権限を与えられていることを例外ハンドラによって検証することと、
前記例外ハンドラを検証すると、前記MMUにおいて、前記ゲスト仮想アドレスを備えているデータのページに関連付けられたネイティブ保護設定を変更し、前記仮想アドレスへのアクセスを可能にすることと、
続いて、前記命令を再試行し、前記MMUによって、前記タスクの前記命令が前記データのページ内の仮想アドレスにアクセスする可能にすることと
を前記プロセッサに行わせる、コンピューティングシステム。 - 前記タスクは、前記プロセスの第2のタスクを備えている、請求項8に記載のシステム。
- 前記第1および第2のタスクに関連付けられたプレフィックスデータは、異なる物理アドレスの中であるが、同じ論理アドレスにおいて記憶される、請求項9に記載のシステム。
- 前記ネイティブ保護設定を変更することは、対応するページテーブル項目のビット0の値を設定し、前記物理ページがメモリの中に存在していることを示すことを含む、請求項8に記載のシステム。
- 前記ネイティブ保護設定を変更するように動作可能であるMPROTECT()関数を前記システムの前記オペレーティングシステムの中にさらに備えている、請求項8に記載のシステム。
- 前記セグメンテーション違反は、前記仮想アドレスに対応する前記ページが物理メモリの中に存在しないこと、または、前記タスクが読み取り専用アクセス許可設定を伴ってメモリの中に存在するページに書き込もうとしていること、または、前記タスクがマッチングアクセス許可設定を伴わずにページを読み込もうとしていることを示すことを含む、請求項8〜12のうちのいずれかに記載のシステム。
- 前記ブロックは、4kブロックを備えている、請求項8〜13のうちのいずれかに記載のシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019079548A JP6708860B2 (ja) | 2019-04-18 | 2019-04-18 | 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019079548A JP6708860B2 (ja) | 2019-04-18 | 2019-04-18 | 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018532157A Division JP6518015B2 (ja) | 2015-12-15 | 2015-12-15 | 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019117664A JP2019117664A (ja) | 2019-07-18 |
JP2019117664A5 JP2019117664A5 (ja) | 2019-08-29 |
JP6708860B2 true JP6708860B2 (ja) | 2020-06-10 |
Family
ID=67305411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019079548A Active JP6708860B2 (ja) | 2019-04-18 | 2019-04-18 | 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6708860B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176280B2 (en) * | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
JP5862408B2 (ja) * | 2012-03-27 | 2016-02-16 | 富士通株式会社 | エミュレーション装置、及びエミュレーションプログラム |
-
2019
- 2019-04-18 JP JP2019079548A patent/JP6708860B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019117664A (ja) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11210239B2 (en) | Protection key management and prefixing in virtual address space legacy emulation system | |
US10241819B2 (en) | Isolating data within a computer system using private shadow mappings | |
US9009727B2 (en) | Virtualization with in-place translation | |
US8578483B2 (en) | Systems and methods for preventing unauthorized modification of an operating system | |
US7380276B2 (en) | Processor extensions and software verification to support type-safe language environments running with untrusted code | |
JP4668166B2 (ja) | ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 | |
WO2009001153A1 (en) | Memory protection unit in a virtual processing environment | |
US20020046305A1 (en) | Method for effective binary translation between different instruction sets using emulated supervisor flag and multiple page tables | |
US7506096B1 (en) | Memory segment emulation model for virtual machine | |
JP2021512400A (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
JP2022505011A (ja) | メモリ・アクセスを制御するための装置及び方法 | |
JP6708860B2 (ja) | 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 | |
JP2024517627A (ja) | ケイパビリティを使用してメモリへのアクセスを制約するための技法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190626 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200409 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6708860 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |