(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155745
(43)【公開日】2024-10-31
(54)【発明の名称】データレジスターアクセス方法、装置、コンピュータ可読記憶媒体及び電子機器
(51)【国際特許分類】
G06F 9/52 20060101AFI20241024BHJP
G06F 9/455 20180101ALI20241024BHJP
G06F 12/14 20060101ALI20241024BHJP
【FI】
G06F9/52 120B
G06F9/455 150
G06F12/14 510D
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2024042275
(22)【出願日】2024-03-18
(31)【優先権主張番号】202310440320.8
(32)【優先日】2023-04-21
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】522378775
【氏名又は名称】北京地平▲線▼信息技▲術▼有限公司
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】シュンリー チョン
(72)【発明者】
【氏名】ジェンジュン リー
(72)【発明者】
【氏名】ジン リー
【テーマコード(参考)】
5B017
【Fターム(参考)】
5B017AA01
5B017BA01
5B017BB06
5B017CA01
(57)【要約】
【課題】本開示はデータレジスターアクセス方法、装置、コンピュータ可読記憶媒体及び電子機器を開示する。
【技術手段】当該方法は、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定するステップと、第1の仮想マシン識別子に基づいて少なくとも2つのデータレジスター群及び保護レジスター群からターゲットデータレジスター群及びターゲット保護レジスターを決定するステップと、ターゲット保護レジスターに基づいてターゲット仮想マシンのターゲットデータレジスター群へのアクセス権限を決定するステップと、アクセス権限がアクセス許可であることに応じ、第1のアドレスに基づいてターゲットデータレジスター群からアクセス対象データレジスターを決定し且つターゲット仮想マシンをアクセス対象データレジスターにアクセスさせるステップとを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定するステップであって、前記第1のアドレスは、前記アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示すステップと、
前記第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群から前記ターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定するステップと、
前記ターゲット保護レジスターに基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限を決定するステップと、
前記アクセス権限がアクセス許可であることに応じ、前記第1のアドレスに基づいて、前記ターゲットデータレジスター群からアクセス対象データレジスターを決定し、且つ前記ターゲット仮想マシンを前記アクセス対象データレジスターにアクセスさせるステップと、を含む、データレジスターアクセス方法。
【請求項2】
前記ターゲット保護レジスターに基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限を決定する前記ステップは、
前記ターゲット保護レジスターから、予め記憶された第2の仮想マシン識別子を取得するステップと、
前記第1の仮想マシン識別子及び前記第2の仮想マシン識別子に基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限を決定するステップと、を含む、請求項1に記載のデータレジスターアクセス方法。
【請求項3】
前記第1の仮想マシン識別子及び前記第2の仮想マシン識別子に基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限を決定する前記ステップは、
前記第1の仮想マシン識別子及び前記第2の仮想マシン識別子に基づいて、イネーブル信号を生成するステップと、
前記イネーブル信号に基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限をオンにするステップと、を含む、請求項2に記載のデータレジスターアクセス方法。
【請求項4】
ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定する前記ステップは、
前記レジスターアクセスリクエストから前記アクセス対象データレジスターの第2のアドレスを抽出するステップと、
前記第2のアドレスから第1のセグメントデータを抽出するステップと、
前記第1のセグメントデータに基づいて前記第1の仮想マシン識別子を決定するステップと、
前記第2のアドレスから第2のセグメントデータを抽出するステップと、
前記第2のセグメントデータに基づいて前記アクセス対象データレジスターの第1のアドレスを決定するステップと、を含む、請求項1に記載のデータレジスターアクセス方法。
【請求項5】
前記第1の仮想マシン識別子及び前記第2の仮想マシン識別子に基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限を決定する前記ステップは、
前記第1の仮想マシン識別子及び前記第2の仮想マシン識別子が権限許可条件に合致しないと決定されることに応じて、禁止信号を生成し、且つ前記禁止信号に基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限をオフにするステップを含む、請求項2に記載のデータレジスターアクセス方法。
【請求項6】
前記第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群から前記ターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定する前記ステップは、
前記第1の仮想マシン識別子に基づいて、前記少なくとも2つのデータレジスター群からターゲットデータレジスター群を決定し、及び前記ターゲットデータレジスター群と前記ターゲット保護レジスターとの間のアドレスオフセットを決定するステップと、
前記アドレスオフセットに基づいて、前記保護レジスター群から前記ターゲット保護レジスターを決定するステップと、を含む、請求項1に記載のデータレジスターアクセス方法。
【請求項7】
ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定する前記ステップの前に、前記データレジスターアクセス方法はさらに、
予め設定された少なくとも2つの仮想マシンの数に基づいて、第1の所定数のデータレジスターをグループ化し、前記少なくとも2つの仮想マシンにおける各仮想マシンに対応するデータレジスター群を得るステップと、
第2の所定数の保護レジスターにおいて、得られた少なくとも2つのデータレジスター群における各データレジスター群に対応する保護レジスターを設定するステップと、
前記少なくとも2つのデータレジスター群における各データレジスター群のアドレス範囲に基づいて、各データレジスター群に対応する仮想マシン識別子を生成し、且つ前記仮想マシン識別子を対応する保護レジスターに記憶するステップと、を含む、請求項1に記載のデータレジスターアクセス方法。
【請求項8】
ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定するために用いられる第1の決定モジュールであって、前記第1のアドレスは、前記アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示す第1の決定モジュールと、
前記第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群から前記ターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定するために用いられる第2の決定モジュールと、
前記ターゲット保護レジスターに基づいて、前記ターゲット仮想マシンの、前記ターゲットデータレジスター群へのアクセス権限を決定するために用いられる第3の決定モジュールと、
前記アクセス権限がアクセス許可であることに応じ、前記第1のアドレスに基づいて、前記ターゲットデータレジスター群からアクセス対象データレジスターを決定し、且つ前記ターゲット仮想マシンを前記アクセス対象データレジスターにアクセスさせるために用いられるアクセスモジュールと、を含む、データレジスターアクセス装置。
【請求項9】
コンピュータ可読記憶媒体であって、前記記憶媒体には、ロジック実行デバイスによって実行されて上記請求項1~7のいずれか一項に記載のデータレジスターアクセス方法を実現するために用いられるコンピュータプログラムが記憶されている、コンピュータ可読記憶媒体。
【請求項10】
電子機器であって、ロジック実行デバイス、第1の所定数のデータレジスター、第2の所定数の保護レジスター及びコマンドメモリーを含み、
前記コマンドメモリーは前記ロジック実行デバイスの実行可能なコマンドを記憶するために用いられ、
前記ロジック実行デバイスは、前記メモリーから前記実行可能なコマンドを読み取り、且つ前記コマンドを実行して上記請求項1~7のいずれか一項に記載のデータレジスターアクセス方法を実現するために用いられる、電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示はコンピューター技術分野に関し、特にデータレジスターアクセス方法、装置、コンピュータ可読記憶媒体及び電子機器に関する。
【背景技術】
【0002】
仮想マシン(VM、Virtual Machine)はソフトウェアシミュレーションにより完全なハードウェアシステム機能を有し、完全な隔離環境で動作する完全なコンピューターシステムである。実体コンピューターで完了できる動作は、仮想マシンにおいても実現できる。同一コンピューター上で、仮想マシンを介して複数のオペレーティングシステム、例えばWindows(登録商標)、DOS、LINUX(登録商標)などを同時に実行することができる。
【0003】
異なる仮想マシンにおけるソフトウェアプログラムが安全に動作することを保障するために、ハードウェアリソースが同じ時間にただ1つのソフトウェア環境又は仮想マシン内にあることを要求し、レジスターはハードウェアシステムにおける重要な記憶リソースであり、そのため、仮想化技術において異なる仮想マシン間のレジスターに対するアクセス保護を保障することは非常に重要である。
【0004】
現在の仮想化技術はソフトウェアの角度からレジスターアクセス衝突の問題を解決することが多い。例えば、フラグビットを設定することによりアクセスするレジスターを制御し、1つの仮想マシンがレジスターにアクセスする前に、まずフラグビットを問い合わせてそれが指定されたレジスターに書き込む権限を有するか否かを確認し、アクセス権限を有する場合にのみ当該レジスターにアクセスするコマンドを送信することができ、アクセス権限を有しない場合、コマンドの送信を禁止する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
現在の仮想化技術が採用するレジスターにアクセスする方法は、ソフトウェアスケジューリングを必要とし、時間消費が多く、アクセス速度が遅く、作業効率が低いという欠点があった。レジスターアクセス保護を実現する上でアクセス効率をいかに向上させるかが現在解決すべき問題である。
【課題を解決するための手段】
【0006】
上記技術的問題を解決するために、本開示の実施例はデータレジスターアクセス方法、装置、コンピュータ可読記憶媒体及び電子機器を提供し、異なる仮想マシンに対応するレジスター隔離を実現し、且つ柔軟で、効率的な特徴を有する。
【0007】
本開示の実施例はデータレジスターアクセス方法を提供し、当該方法は、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定するステップであって、第1のアドレスは、アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示すステップと、第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群からターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定するステップと、ターゲット保護レジスターに基づいて、ターゲット仮想マシンのターゲットデータレジスター群へのアクセス権限を決定するステップと、アクセス権限がアクセス許可であることに応じ、第1のアドレスに基づいて、ターゲットデータレジスター群からアクセス対象データレジスターを決定し、且つターゲット仮想マシンをアクセス対象データレジスターにアクセスさせるステップと、を含む。
【0008】
本開示の実施例のほかの態様によれば、データレジスターアクセス装置を提供し、当該装置は、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定するために用いられる第1の決定モジュールであって、第1のアドレスは、アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示す第1の決定モジュールと、第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群からターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定するために用いられる第2の決定モジュールと、ターゲット保護レジスターに基づいて、ターゲット仮想マシンのターゲットデータレジスター群へのアクセス権限を決定するために用いられる第3の決定モジュールと、アクセス権限がアクセス許可であることに応じ、第1のアドレスに基づいて、ターゲットデータレジスター群からアクセス対象データレジスターを決定し、且つターゲット仮想マシンをアクセス対象データレジスターにアクセスさせるために用いられるアクセスモジュールと、を含む。
【0009】
本開示の実施例のほかの態様によれば、コンピュータ可読記憶媒体を提供し、コンピュータ可読記憶媒体には、ロジック実行デバイスによって実行されて上記データレジスター
【0010】
本開示の実施例のほかの態様によれば、電子機器を提供し、電子機器はロジック実行デバイス、第1の所定数のデータレジスター、第2の所定数の保護レジスター及びコマンドメモリーを含み、コマンドメモリーはロジック実行デバイスの実行可能なコマンドを記憶するために用いられ、ロジック実行デバイスは、メモリーから実行可能なコマンドを読み取り、且つコマンドを実行して上記データレジスターアクセス方法を実現する。
【0011】
本開示の実施例のほかの態様によれば、コンピュータプログラム製品を提供し、コンピュータプログラム製品はコンピュータプログラムコマンドを含み、コンピュータプログラムコマンドがコマンドプロセッサーによって実行されるとき、本開示により提供されるデータレジスターアクセス方法を実行する。
【発明の効果】
【0012】
本開示の上記実施例により提供されるデータレジスターアクセス方法、装置、コンピュータ可読記憶媒体及び電子機器によれば、ターゲット仮想マシンにために専用なターゲットデータレジスター群を設置し、且つターゲット保護レジスターを用いてターゲット仮想マシンのターゲットデータレジスター群へのアクセス権限を制御することにより、ターゲット仮想マシンがそれに対応するターゲットデータレジスター群にしかアクセスできず、それにより異なる仮想マシンがそれぞれ対応するデータレジスター群にアクセスするように柔軟に制御することができ、ハードウェア上でレジスター群間の隔離を実現し、複雑なソフトウェアプログラムを設置して仮想マシンの、レジスターへのアクセス権限を制御することを避け、それにより、仮想マシンがレジスターにアクセスする効率を向上させる。
【図面の簡単な説明】
【0013】
【
図2】本開示の1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。
【
図3】本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。
【
図4】本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。
【
図5】本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。
【
図6】本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。
【
図7】本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。
【
図8】本開示の1つの例示的な実施例により提供されるデータレジスターアクセス装置の構造概略図である。
【
図9】本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス装置の構造概略図である。
【発明を実施するための形態】
【0014】
本開示を解釈するために、以下、添付図面を参照しながら、本開示の例示的な実施例について詳細に説明し、明らかのように、説明された実施例は本開示の実施例の一部に過ぎず、本開示のすべての実施例ではなく、本開示は例示的な実施例によって制限されない。
【0015】
なお、特に具体的な説明がない限り、これらの実施例に記載された部材及びステップの相対配置、数式及び数値は本開示の範囲を限定するものではない。
出願の概要
【0016】
従来技術はマルチ仮想マシンシーンでのデータレジスターアクセス競合を防ぐために、ソフトウェアの角度から処理されることが多く、ソフトウェアがデータレジスターに対する異なる仮想マシンのアクセス権限をスケジューリングする必要があり、時間消費が多く、アクセス速度が遅く、作業効率が低いという問題があった。当該問題を解決するために、本開示の実施例はデータレジスターアクセス方法を提供し、当該方法は、ターゲット仮想マシンのために専用なターゲットデータレジスター群を設置することを実現し、且つターゲット保護レジスターによってターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を制御し、異なる仮想マシンがそれぞれに対応するデータレジスター群にアクセスするように柔軟に制御することができ、ハードウェア上でレジスター群間の隔離を実現し、複雑なソフトウェアプログラムを設置して仮想マシンのレジスターへのアクセス権限を制御する必要がなく、仮想マシンがレジスターにアクセスする効率を向上させる。
例示的なシステム
【0017】
図1は、本開示の実施例のデータレジスターアクセス方法を適用可能な又はデータレジスターアクセス装置が適用可能なハードウェアシステムアーキテクチャー100の一例を示す図である。
【0018】
図1に示すように、ハードウェアシステムアーキテクチャー100はロジック実行デバイス101、第1の所定数のデータレジスター102、第2の所定数の保護レジスター103及びコマンドメモリー104を含んでもよい。
【0019】
上記ロジック実行デバイス101は、ロジック制御機能を実行するための各種デバイスを含んでもよい。例えば、ロジック実行デバイス101は、ハードウェア記述言語で設計された専用ロジック回路、汎用マイクロプロセッサー、マイクロコントローラーなどのうちの少なくとも1つのデバイスを含んでもよい。
【0020】
上記第1の所定数のデータレジスター102は少なくとも2つの仮想マシンにデータ一時記憶機能を提供するために用いられる。通常、第1の所定数のデータレジスター102は複数のデータレジスター群を含んでもよく、
図1に示すように、第1の所定数のデータレジスター102はN個のデータレジスター群(データレジスター群0、データレジスター群1、……、データレジスター群N-1を含む)を含み、各データレジスター群は1つの仮想マシンに対応し、仮想マシンは対応するデータレジスター群を利用してデータの読
【0021】
上記第2の所定数の保護レジスター103は仮想マシンとデータレジスター群との対応関係を示すデータを記憶するために用いられ、例えば、保護レジスターに仮想マシンの識別子を記憶することができる。各データレジスター群は、1つの保護レジスターに対応し、
図1に示すように、保護レジスター0、保護レジスター1、……、保護レジスターN-1は、それぞれ1つのデータレジスター群に対応する。ロジック実行デバイス101は保護レジスターからデータを読み取り、読み取ったデータに基づいて仮想マシンがアクセス対象データレジスター群へのアクセス権限を有するか否かを判定することができる。
【0022】
上記コマンドメモリー104はロジック実行デバイス101の実行可能なコマンドを記憶するために用いられ、ロジック実行デバイス101はメモリーから実行可能なコマンドを読み取り、且つ実行可能なコマンドを実行して仮想マシンのデータレジスター群へのアクセスに対する制御を実現する。
【0023】
選択可能に、上記ロジック実行デバイス101はプロセッサー及びアクセス権限判定モジュールを含んでもよく、プロセッサーはメモリーから実行可能なコマンドを読み取ることができ、データレジスター群、保護レジスター、仮想マシンの対応関係を確立するなどの機能を実現し、権限判定モジュールはロジック判定機能を実行する専用回路を含んでもよく、レジスターへのアクセスリクエストを復号し、保護レジスターからターゲット仮想マシンのアクセス権限を示すデータを読み取り、読み取ったデータに基づいてターゲット仮想マシンがターゲットレジスター群へのアクセス権限に合致するか否かを判断するなどの機能を実現する。
【0024】
なお、本開示の実施例により提供されるデータレジスターアクセス方法は一般的にロジック実行デバイス101により実行され、それに応じて、データレジスターアクセス装置はロジック実行デバイス101に設けられることができる。上記システムアーキテクチャーは同一物理空間に設けられてもよく、例えばシステムオンチップ(SOC、System on Chip)に設けられ、上記システムアーキテクチャーは異なる物理空間に設けられてもよく、例えば上記ロジック実行デバイス101、第1の所定数のデータレジスター102、第2の所定数の保護レジスター103及びコマンドメモリー104はそれぞれ異なるチップに設けられる。
【0025】
なお、
図1におけるロジック実行デバイス、データレジスター、保護レジスター、コマンドメモリーの数は例示的に過ぎない。実現の必要に応じて、任意の数のロジック実行デバイス101、第1の所定数のデータレジスター102、第2の所定数の保護レジスター103及びコマンドメモリー104を有してもよい。
例示的な方法
【0026】
図2は本開示の1つの例示的な実施例により提供されるデータレジスターアクセス方法のフローチャートである。本実施例は電子機器(
図1に示すようなロジック実行デバイス101)に適用されてもよく、
図2に示すように、当該方法はステップ201~ステップ204を含む。
【0027】
ステップ201において、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定する。
【0028】
本実施例で、電子機器は、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定することができる。
【0029】
ここで、上記レジスターアクセスリクエストは、ターゲット仮想マシンがデータレジスターにアクセスする前に生成したリクエストであってもよい。通常、ターゲット仮想マシンはアクセス対象データレジスターにデータを書き込み又は当該アクセス対象データレジスターからデータを読み出す必要がある場合、レジスターアクセスリクエストを生成する必要があり、電子機器はレジスターアクセスリクエストから、ターゲット仮想マシンを示す第1の仮想マシン識別子(VMID)及びアクセス対象データレジスターの第1のアドレスを抽出することができる。第1の仮想マシン識別子はターゲット仮想マシンを示し、すなわちターゲット仮想マシンはターゲットデータレジスター群にアクセスする前に、自身の仮想マシン識別子を生成する必要があり、電子機器は第1の仮想マシン識別子に基づいて、
図1に示すような少なくとも2つのデータレジスター群からターゲットデータレジスター群を決定することができる。第1の仮想マシン識別子は任意の形式の識別子であってもよく、例えば、数字、文字、記号のうちの少なくとも一種を含んでもよい。
【0030】
上記第1のアドレスは、アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示す。選択可能に、第1のアドレスはアクセス対象データレジスターの相対アドレスであってもよく、絶対アドレスであってもよい。例えば、アクセス対象データレジスターの絶対アドレスがmビットのバイナリーデータであれば、第1のアドレスは当該mビットのバイナリーデータであってもよく、当該mビットのバイナリーデータの下位nビットであってもよく、下位nビットはすなわち相対アドレスであり、下位nビットの数値範囲はターゲットデータレジスター群におけるデータレジスターの数に対応してもよい。
【0031】
選択可能に、上記レジスターアクセスリクエストはアクセス対象データレジスターの絶対アドレスを含んでもよく、当該絶対アドレスがmビットのバイナリーデータであれば、その上位m-nビットは第1のレジスター識別子であってもよく、その下位nビットは上記第1のアドレスであってもよい。すなわち、上位m-nビットのデータは、2n個のデータレジスターからなるターゲットデータレジスター群に対応し、第1のアドレスはすなわちアクセス対象データレジスターのこの2n個のデータレジスターにおけるアドレスである。従って、第1のレジスター識別子に基づいて第1の所定数のデータレジスター102においてターゲットデータレジスター群に位置決めすることができ、第1のアドレスに基づいてターゲットデータレジスター群においてアクセス対象データレジスターに位置決めすることができる。
【0032】
ステップ202において、第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群からターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定する。
【0033】
本実施例で、電子機器は、第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群からターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定することができる。ここで、保護レジスター群は、
図1に示すような第2の所定数の保護レジスターにおける少なくとも2つの保護レジスターからなるレジスター群であってもよい。
【0034】
保護レジスター群における各保護レジスターは1つのデータレジスター群に対応し、すなわち1つの仮想マシンに対応する。保護レジスター群における保護レジスターとデータレジスター群、仮想マシンとの対応関係は予め確立されてもよい。例えば、
図1に示す第1の所定数のデータレジスター102及び第2の所定数の保護レジスターのアドレスは連続的に配列され、各データレジスター群の配列順序に基づいて、各データレジスター群に対応するアドレスオフセットを順次設定することができ、アドレスオフセットに基づいて対応する保護レジスターを決定することができる。また例えば、データレジスター群の先頭アドレスと、対応する保護レジスターのアドレス、仮想マシン識別子とを含む対応関係テーブルを予め確立し、当該対応関係テーブルに基づいて、ターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定することができる。
【0035】
ステップ203において、ターゲット保護レジスターに基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を決定する。
【0036】
本実施例では、電子機器は、ターゲット保護レジスターに基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を決定することができる。ここで、ターゲット保護レジスターには、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を示すデータが記憶されることができる。
【0037】
例えば、ターゲット保護レジスターには1つの仮想マシン識別子が記憶されることができ、当該仮想マシン識別子と上記第1の仮想マシン識別子が同じである場合、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有することを決定する。ターゲット仮想マシンがアクセスしようとするターゲットデータレジスター群が他の仮想マシンに対応するデータレジスター群である場合、ターゲット仮想マシンが生成したレジスターアクセスリクエストにそれ自身を示す第1の仮想マシン識別子を含む必要があるため、電子機器は第1の仮想マシン識別子と保護レジスターに記憶された仮想マシン識別子が異なると判定し、ターゲット仮想マシンがターゲットデータレジスター群にアクセスする権限を有しないと判定する。また例えば、ターゲット保護レジスターには、ターゲットデータレジスター群のアドレス範囲を示すアドレスデータ(例えば、ターゲットデータレジスター群における各データレジスターのアドレスの上位セグメントデータであり、上位セグメントデータのビット数は所定値である)が記憶されることができ、ターゲット仮想マシンのアクセス対象データレジスターのアドレスが、ターゲット保護レジスターに記憶されているアドレスデータが示すアドレス範囲に属すると決定された場合に、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有することを決定する。
【0038】
選択可能に、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有することを決定した後、電子機器はターゲットデータレジスター群にイネーブル信号を送信することができ、それによりターゲットデータレジスターに、データ読み書き機能をオンにさせる。
【0039】
ステップ204において、アクセス権限がアクセス許可であることに応じて、第1のアドレスに基づいて、ターゲットデータレジスター群からアクセス対象データレジスターを決定し、且つターゲット仮想マシンをアクセス対象データレジスターにアクセスさせる。
【0040】
本実施例で、電子機器は、アクセス権限がアクセス許可であることに応じて、第1のアドレスに基づいて、ターゲットデータレジスター群からアクセス対象データレジスターを決定することができる。
【0041】
ここで、第1のアドレスは、アクセス対象レジスターの、ターゲットデータレジスター群における相対アドレスであってもよく、当該相対アドレスに基づいて、ターゲットデータレジスター群からアクセス対象レジスターを位置決めすることができる。例えば、第1のアドレスは0からA-1までの番号であってもよく、Aはターゲットデータレジスター群に含まれるデータレジスターの数である。
【0042】
続いて、電子機器はターゲット仮想マシンをアクセス対象データレジスターにアクセスさせることができ、すなわちターゲット仮想マシンはソフトウェアを実行する時に、上記アクセス対象データレジスターに対してデータ読み書き操作を行う。
【0043】
本開示の上記実施例により提供される方法は、ターゲット仮想マシンに対して専用なターゲットデータレジスター群を設置し、且つターゲット保護レジスターを用いてターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を制御することにより、ターゲット仮想マシンがそれに対応するターゲットデータレジスター群にしかアクセスできず、それにより異なる仮想マシンがそれぞれ対応するデータレジスター群にアクセスするように柔軟に制御することができ、ハードウェア上でレジスター群間の隔離を実現し、複雑なソフトウェアプログラムを設置して仮想マシンのレジスターへのアクセス権限を制御することを避け、それにより、仮想マシンがレジスターにアクセスする効率を向上させる。
【0044】
いくつかの選択可能な実現形態で、
図3に示すように、ステップ203は、ステップ2031及び2032を含む。
【0045】
ステップ2031において、ターゲット保護レジスターから予め記憶された第2の仮想マシン識別子を取得する。
【0046】
ここで、第2の仮想マシン識別子はターゲットデータレジスター群に対応する仮想マシンを示し、すなわちターゲットデータレジスター群にアクセスできる仮想マシンを示す。一例として、第2の仮想マシン識別子は、ターゲットデータレジスター群に含まれる各データレジスターの上位セグメントデータであってもよい。例えば、データレジスターのアドレスがmビットのバイナリーデータである場合、すなわち第1の所定数のデータレジスター102のアドレス範囲は[m-1:0]であり、当該アドレス範囲を2つのセグメントに分けて[m-1:n]と[n-1:0]と表記し、セグメント[m-1:n]で各データレジスター群を示し、セグメント[n-1:0]で各データレジスター群におけるデータレジスターを示す場合、ターゲットデータレジスター群に含まれる各データレジスターのアドレスのm-1番目ビット~n番目ビットは全て同一である。これにより、ターゲットデータレジスター群に含まれる各データレジスターのアドレスのm-1番目ビット~n番目ビットを第2の仮想マシン識別子とすることができる。
【0047】
ステップ2032において、第1の仮想マシン識別子及び第2の仮想マシン識別子に基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を決定する。
【0048】
具体的には、電子機器は第1の仮想マシン識別子と第2の仮想マシン識別子が同じであると決定する場合、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有すると決定し、同じでなければ、ターゲット仮想マシンはターゲットデータレジスター群へのアクセス権限を有しない。
【0049】
本実施例はレジスターアクセスリクエストにおける第1の仮想マシン識別子とターゲット保護レジスターに記憶されている第2の仮想マシン識別子を比較することにより、ターゲット仮想マシンがターゲットデータレジスター群にアクセスする権限を有するか否かを決定し、ターゲットデータレジスター群にアクセスすることを要求するターゲット仮想マシンのアクセス権限を迅速に、正確に判定することができ、マルチ仮想マシン環境でデータレジスターにアクセスする効率を向上させることに役立つ。
【0050】
いくつかの選択可能な実現形態で、
図4に示すように、ステップ2032は、ステップ20321及び20322を含む。
【0051】
ステップ20321において、第1の仮想マシン識別子及び第2の仮想マシン識別子に基づいて、イネーブル信号を生成する。
【0052】
ここで、イネーブル信号は、レベル信号(ハイレベル又はローレベル)であってもよく、複数のビットを含むデジタル信号であってもよい。
【0053】
ステップ20322において、イネーブル信号に基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限をオンにする。
【0054】
例えば、イネーブル信号はローレベル信号であってもよく、すなわち電子機器は第1の仮想マシン識別子と第2の仮想マシン識別子の比較結果(例えば第1の仮想マシン識別子と第2の仮想マシン識別子が同じである)に基づいて、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有すると判定する場合、ターゲットデータレジスター群に接続されたイネーブル信号線のレベルをプルダウンし、ターゲットデータレジスター群の読み書き機能をオンにし、それによりターゲット仮想マシンはターゲットデータレジスターにアクセスすることができる。
【0055】
本実施例はイネーブル信号を生成することによってターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限をオンにし、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を簡単で、柔軟に制御することを実現することができる。
【0056】
いくつかの選択可能な実現形態で、ステップ2032は、
第1の仮想マシン識別子及び第2の仮想マシン識別子が権限許可条件に合致しないと決定することに応じて、禁止信号を生成し、且つ禁止信号に基づいて、ターゲット仮想マシンの、ターゲットデータレジスターへのアクセス権限をオフにするステップをさらに含む。
【0057】
上記例を継続し、電子機器は第1の仮想マシン識別子と第2の仮想マシン識別子が異なると決定する時、権限許可条件に合致しないと決定することができ、この時、禁止信号を示すハイレベルを生成することができ、上記イネーブル信号線のレベルを引き上げ、ターゲットデータレジスター群の読み書き機能を禁止し、それによりターゲット仮想マシンがターゲットデータレジスターにアクセスすることができない。
【0058】
本実施例はターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有しない場合、ターゲット仮想マシンのターゲットデータレジスター群へのアクセスを禁止することができ、それにより異なる仮想マシン間のデータレジスター群の隔離を実現することに役立ち、マルチ仮想マシンがデータレジスターにアクセスする衝突を防止する。
【0059】
いくつかの選択可能な実現形態では、
図5に示すように、ステップ201は、ステップ2011~2015を含む。
【0060】
ステップ2011において、レジスターアクセスリクエストからアクセス対象データレジスターの第2のアドレスを抽出する。
【0061】
ここで、第2のアドレスはアクセス対象レジスターの絶対アドレスであってもよく、絶対アドレスとは、アクセス対象データレジスターの
図1に示される第1の所定数のデータレジスター102における位置を示すアドレスである。
【0062】
ステップ2012において、第2のアドレスから第1のセグメントデータを抽出する。
【0063】
ここで、第1のセグメントデータは第2のアドレスにおける上位セグメントデータであってもよい。例えば、第2のアドレスがmビットのバイナリーデータである場合、すなわち、第1の所定数のデータレジスター102のアドレス範囲は[m-1:0]であり、当該アドレス範囲を2つのセグメントに分けて[m-1:n]と[n-1:0]と表記し、そうすると、第1のセグメントデータはアドレス範囲[m-1:n]に対応するデータを含んでもよい。
【0064】
ステップ2013において、第1のセグメントデータに基づいて第1の仮想マシン識別子を決定する。
【0065】
通常、第1のセグメントデータを第1の仮想マシン識別子に決定することができる。選択的に、さらに第1のセグメントデータと第1の仮想マシン識別子との対応関係を予め確立し、当該対応関係に基づいて、第1の仮想マシン識別子を決定することができる。
【0066】
ステップ2014において、第2のアドレスから第2のセグメントデータを抽出する。
【0067】
ここで、第2のセグメントデータは第2のアドレスにおける下位セグメントデータであってもよい。上記の例に続き、第2のセグメントデータはアドレス範囲[n-1:0]に対応するデータを含んでもよい。
【0068】
ステップ2015において、第2のセグメントデータに基づいてアクセス対象データレジスターの第1のアドレスを決定する。
【0069】
通常、第2のセグメントデータを第1のアドレスとして決定すればよい。選択可能に、第2のセグメントデータと第1のアドレスとの対応関係を予め確立し、当該対応関係に基づいて、第1のアドレスを決定してもよい。
【0070】
上記の例を続けて、アドレス範囲[m-1:n]の第1のセグメントデータが第1の仮想マシン識別子である場合、当該アドレス範囲は2m-n個のデータレジスター群を示すことができる。アドレス範囲[n-1:0]が第2のセグメントデータである場合、当該アドレス範囲は各データレジスター群に含まれる2n個のデータレジスターを示すことができる。
【0071】
本実施例は第2のアドレスから、第1のセグメントデータと第2のセグメントデータを抽出して第1の仮想マシン識別子と第1のアドレスを得ることにより、アドレスに基づいてターゲット仮想マシンのアクセス対象データレジスターが属するターゲットデータレジスター群を迅速且つ正確に位置決めすること、及びアクセス対象データレジスターの、ターゲットデータレジスター群における位置を迅速且つ正確に位置決めすることを実現し、それにより仮想マシンがデータレジスターにアクセスする権限を判定することを向上させることに役立つ。
【0072】
いくつかの選択可能な実現形態では、
図6に示すように、ステップ202は、ステップ2021~2022を含む。
【0073】
ステップ2021において、第1の仮想マシン識別子に基づいて、少なくとも2つのデータレジスター群からターゲットデータレジスター群を決定し、ターゲットデータレジスター群とターゲット保護レジスターとの間のアドレスオフセットを決定する。
【0074】
通常、
図1に示す第1の所定数のデータレジスター102及び第2の所定数の保護レジスター103は、連続して配列される。このため、各データレジスター群に対応する保護レジスター群を予め割り当てておく場合には、各データレジスター群に対応するアドレスオフセットを設け、当該アドレスオフセットに基づいて、データレジスター群に対応する保護レジスターに位置決めすることができる。
【0075】
選択可能に、アドレスオフセットの開始アドレスはデータレジスター群の先頭アドレスであってもよく、最終アドレスなどであってもよく、当該開始アドレスは上記アドレスオフセットと加算し、対応する保護レジスターのアドレスを得ることができる。
【0076】
ステップ2022において、アドレスオフセットに基づいて、保護レジスター群からターゲット保護レジスターを決定する。
【0077】
例えば、ターゲットデータレジスター群の先頭アドレスを当該アドレスオフセットに加算してターゲット保護レジスターのアドレスを得ることができ、ターゲット保護レジスターのアドレスに基づいてターゲットデータレジスター群からターゲット保護レジスターを決定することができる。
【0078】
本実施例はターゲットデータレジスター群とターゲット保護レジスターとの間のアドレスオフセットを決定することにより、アドレスオフセットに基づいてターゲット保護レジスターを決定し、ターゲット保護レジスターを迅速、正確に位置決めすることを実現し、それによりターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限の効率を判定することに役立つ。
【0079】
いくつかの選択可能な実現形態では、
図7に示すように、ステップ201の前に、当該方法はステップ701~703をさらに含む。
【0080】
ステップ701において、予め設定された少なくとも2つの仮想マシンの数に基づいて、第1の所定数のデータレジスターをグループ化し、少なくとも2つの仮想マシンにおける各仮想マシンに対応するデータレジスター群を得る。
【0081】
ここで、第1の所定数のデータレジスターに含まれるデータレジスター群の数は分割された固定数であってもよく、当該数は仮想マシンの数以上であってもよく、電子機器は、各仮想マシンに対応するデータレジスター群を設定することができ、データレジスター群の数は仮想マシンの数と同じであってもよく、すなわち設定された仮想マシンの数に基づいて、対応する数のデータレジスター群を分割する。
【0082】
ステップ702において、第2の所定数の保護レジスターにおいて、得られた少なくとも2つのデータレジスター群における各データレジスター群に対応する保護レジスターを設定する。
【0083】
具体的には、各データレジスター群のアドレス範囲と保護レジスターのアドレスとの対応関係情報を設定することができる。例えば、当該対応関係情報は、各データレジスター群の先頭アドレスと、対応するアドレスオフセットとを含み、アドレスオフセットに基づいて、各データレジスター群に対応する保護レジスターを決定することができる。
【0084】
ステップ703において、少なくとも2つのデータレジスター群における各データレジスター群のアドレス範囲に基づいて、各データレジスター群に対応する仮想マシン識別子を生成し、且つ仮想マシン識別子を対応する保護レジスターに記憶する。
【0085】
例として、各データレジスター群のアドレス範囲内の各アドレスの上位セグメントデータを仮想マシン識別子として対応する保護レジスターに記憶することができる。またユーザが手動で設定した各データレジスター群に対応する仮想マシン識別子を対応する保護レジスターに記憶することができる。
【0086】
通常、電子機器の起動時に、初期化操作を行う必要があり、当該初期化操作はすなわち上記ステップ701~ステップ703を含む。なお、初期化操作を実行するハードウェアは上記
図2~
図6に対応する各実施例を実行するハードウェアと異なる。すなわち、電子機器は、第1のロジック実行デバイス及び第2のロジック実行デバイスを含んでもよく、第1のロジック実行デバイスは、ハードウェア記述言語で設計された専用ロジック回路であり、第2のロジック実行デバイスは、汎用プロセッサーであってもよい。電子機器が起動する時、汎用プロセッサーによって初期化を行い、すなわちレジスター群、仮想マシン、保護レジスターの対応関係を配置する。そして、各仮想マシンのアクセス権限は、専用ロジック回路によって制御される。
【0087】
本実施例は予め複数の仮想マシンのためにそれぞれ対応するデータレジスター群及び保護レジスターをそれぞれ設置することを実現し、ハードウェア上に異なる仮想マシンがアクセスするデータレジスターの隔離を実現し、異なる仮想マシンの間にデータレジスターにアクセスする時に引き起こした相互干渉を避け、複雑なソフトウェアを用いてデータレジスターを管理する必要がなく、複数の仮想マシン環境でデータレジスターにアクセスする効率を向上させる。
例示的な装置
【0088】
図8は本開示の1つの例示的な実施例により提供されるデータレジスターアクセス装置の構造概略図である。本実施例は電子機器に適用でき、
図8に示すように、データレジスターアクセス装置は、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定するために用いられる第1の決定モジュール801であって、第1のアドレスは、アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示す第1の決定モジュール801と、第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群からターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定するために用いられる第2の決定モジュール802と、ターゲット保護レジスターに基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を決定するために用いられる第3の決定モジュール803と、アクセス権限がアクセス許可であることに応じ、第1のアドレスに基づいて、ターゲットデータレジスター群からアクセス対象データレジスターを決定し、且つターゲット仮想マシンをアクセス対象データレジスターにアクセスさせるために用いられるアクセスモジュール804と、を含む。
【0089】
本実施例で、第1の決定モジュール801は、ターゲット仮想マシンが生成したレジスターアクセスリクエストから第1の仮想マシン識別子及びアクセス対象データレジスターの第1のアドレスを決定することができる。
【0090】
ここで、上記レジスターアクセスリクエストは、ターゲット仮想マシンがデータレジスターにアクセスする前に生成したリクエストであってもよい。通常、ターゲット仮想マシンはアクセス対象データレジスターにデータを書き込み又は当該アクセス対象データレジスターからデータを読み出す必要がある場合、レジスターアクセスリクエストを生成する必要があり、第1の決定モジュール801はレジスターアクセスリクエストから、ターゲット仮想マシンを示す第1の仮想マシン識別子(VMID)及びアクセス対象データレジスターの第1のアドレスを抽出することができる。第1の仮想マシン識別子は、アクセス対象データレジスターの、所属ターゲットデータレジスター群に対応する仮想マシンを示し、すなわち、ターゲット仮想マシンはターゲットデータレジスター群にアクセスする前に、ターゲットデータレジスター群に対応する仮想マシン識別子を生成する必要があり、第1の決定モジュール801は、第1の仮想マシン識別子に基づいて、
図1に示される少なくとも2つのデータレジスター群からターゲットデータレジスター群を決定することができる。第1の仮想マシン識別子は任意の形式の識別子であってもよく、例えば、数字、文字、記号のうちの少なくとも一種を含んでもよい。
【0091】
上記第1のアドレスは、アクセス対象データレジスターの、所属ターゲットデータレジスター群における位置を示す。選択可能に、第1のアドレスはアクセス対象データレジスターの相対アドレスであってもよく、絶対アドレスであってもよい。例えば、アクセス対象データレジスターの絶対アドレスがmビットのバイナリーデータであれば、第1のアドレスは当該mビットのバイナリーデータであってもよく、当該mビットのバイナリーデータの下位nビットであってもよく、下位nビットはすなわち相対アドレスであり、下位nビットの数値範囲はターゲットデータレジスター群におけるデータレジスターの数に対応してもよい。
【0092】
選択可能に、上記レジスターアクセスリクエストはアクセス対象データレジスターの絶対アドレスを含んでもよく、当該絶対アドレスはmビットのバイナリーデータであれば、その上位m-nビットは第1のレジスター識別子であってもよく、その下位nビットは上記第1のアドレスであってもよい。すなわち、上位m-nビットのデータは、2n個のデータレジスターからなるターゲットデータレジスター群に対応し、第1のアドレスはすなわちアクセス対象データレジスターのこの2n個のデータレジスターにおけるアドレスである。それにより第1のレジスター識別子に基づいて第1の所定数のデータレジスター102においてターゲットデータレジスター群に位置決めすることができ、第1のアドレスに基づいてターゲットデータレジスター群においてアクセス対象データレジスターに位置決めすることができる。
【0093】
本実施例で、第2の決定モジュール802は、第1の仮想マシン識別子に基づいて、予め設定された少なくとも2つのデータレジスター群及び予め設定された保護レジスター群からターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定することができる。ここで、保護レジスター群は、
図1に示すような第2の所定数の保護レジスターにおける少なくとも2つの保護レジスター群からなるレジスター群であってもよい。
【0094】
保護レジスター群における各保護レジスターは1つのデータレジスター群に対応し、すなわち1つの仮想マシンに対応する。保護レジスター群における各保護レジスターとデータレジスター群との対応関係は、予め確立されてもよい。例えば、
図1に示す第1の所定数のデータレジスター102及び第2の所定数の保護レジスターのアドレスは連続的に配列され、各データレジスター群の配列順序に基づいて、各データレジスター群に対応するアドレスオフセットを順次設定することができ、アドレスオフセットに基づいて対応する保護レジスターを決定することができる。また例えば、データレジスター群の先頭アドレス及び対応する保護レジスターのアドレスと、仮想マシン識別子とを含む対応関係テーブルを予め確立し、当該対応関係テーブルに基づいて、ターゲット仮想マシンに対応するターゲットデータレジスター群及びターゲット保護レジスターを決定することができる。
【0095】
本実施例では、第3の決定モジュール803は、ターゲット保護レジスターに基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を決定することができる。ここで、ターゲット保護レジスターには、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を示すデータが記憶されることができる。
【0096】
例えば、ターゲット保護レジスターには1つの仮想マシン識別子が記憶されることができ、当該仮想マシン識別子と上記第1の仮想マシン識別子が同じである場合、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有することを決定する。また例えば、ターゲット保護レジスターには、ターゲットデータレジスター群のアドレス範囲を示すアドレスデータ(例えば、ターゲットデータレジスター群における各データレジスターのアドレスの上位セグメントデータであり、上位セグメントデータのビット数は所定値である)が記憶されることができ、ターゲット仮想マシンのアクセス対象データレジスターのアドレスが、ターゲット保護レジスターに記憶されているアドレスデータが示すアドレス範囲に属すると決定された場合に、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有することを決定する。
【0097】
選択可能に、ターゲット仮想マシンがターゲットデータレジスター群へのアクセス権限を有すると決定した後、第3の決定モジュール803はターゲットデータレジスター群にイネーブル信号を送信することができ、それによりターゲットデータレジスターに、データ読み書き機能をオンにさせる。
【0098】
本実施例で、アクセスモジュール804は、アクセス権限がアクセス許可であることに応じ、第1のアドレスに基づいて、ターゲットデータレジスター群からアクセス対象データレジスターを決定することができる。
【0099】
ここで、第1のアドレスは、アクセス対象レジスターの、ターゲットデータレジスター群における相対アドレスであってもよく、当該相対アドレスに基づいて、ターゲットデータレジスター群からアクセス対象レジスターを位置決めすることができる。例えば、第1のアドレスは0からA-1までの番号であってもよく、Aはターゲットデータレジスター群に含まれるデータレジスターの数である。
【0100】
続いて、アクセスモジュール804はターゲット仮想マシンをアクセス対象データレジスターにアクセスさせることができ、すなわちターゲット仮想マシンがソフトウェアを実行する時に、上記アクセス対象データレジスターに対してデータ読み書き操作を行う。
【0101】
図9を参照し、
図9は本開示のもう1つの例示的な実施例により提供されるデータレジスターアクセス装置の構造概略図である。
【0102】
いくつかの選択可能な実現形態で、第3の決定モジュール803は、ターゲット保護レジスターから予め記憶された第2の仮想マシン識別子を取得するために用いられる読み取りユニット8031と、第1の仮想マシン識別子及び第2の仮想マシン識別子に基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を決定するために用いられる第1の決定ユニット8032と、を含む。
【0103】
いくつかの選択可能な実現形態で、第1の決定ユニット8032は、第1の仮想マシン識別子及び第2の仮想マシン識別子に基づいて、イネーブル信号を生成するために用いられる生成サブユニット80321と、イネーブル信号に基づいて、ターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限をオンにするために用いられるオンサブユニット80322と、を含む。
【0104】
いくつかの選択可能な実現形態で、第1の決定モジュール801は、レジスターアクセスリクエストからアクセス対象データレジスターの第2のアドレスを抽出するために用いられる第1の抽出ユニット8011と、第2のアドレスから第1のセグメントデータを抽出するために用いられる第2の抽出ユニット8012と、第1のセグメントデータに基づいて第1の仮想マシン識別子を決定するために用いられる第2の決定ユニット8013と、第2のアドレスから第2のセグメントデータを抽出するために用いられる第3の抽出ユニット8014と、第2のセグメントデータに基づいてアクセス対象データレジスターの第1のアドレスを決定するために用いられる第3の決定ユニット8015と、を含む。
【0105】
いくつかの選択可能な実現形態で、第1の決定ユニット8032は、第1の仮想マシン識別子及び第2の仮想マシン識別子が権限許可条件に合致しないと決定することに応答し、禁止信号を生成し、且つ禁止信号に基づいて、ターゲット仮想マシンの、ターゲットデータレジスターへのアクセス権限をオフにするために用いられるオフサブユニット80323を含む。
【0106】
いくつかの選択可能な実現形態で、第2の決定モジュール802は、第1の仮想マシン識別子に基づいて、少なくとも2つのデータレジスター群からターゲットデータレジスター群を決定し、及びターゲットデータレジスター群とターゲット保護レジスターとの間のアドレスオフセットを決定するために用いられる第4の決定ユニット8021と、アドレスオフセットに基づいて、保護レジスター群からターゲット保護レジスターを決定するために用いられる第5の決定ユニット8022と、を含む。
【0107】
いくつかの選択可能な実現形態で、当該装置はさらに、予め設定された少なくとも2つの仮想マシンの数に基づいて、第1の所定数のデータレジスターをグループ化し、少なくとも2つの仮想マシンにおける各仮想マシンに対応するデータレジスター群を得るために用いられるグループ化モジュール805と、第2の所定数の保護レジスターにおいて、得られた少なくとも2つのデータレジスター群における各データレジスター群に対応する保護レジスターを設定するために用いられる設定モジュール806と、少なくとも2つのデータレジスター群における各データレジスター群のアドレス範囲に基づいて、各データレジスター群に対応する仮想マシン識別子を生成し、且つ仮想マシン識別子を対応する保護レジスターに記憶するために用いられる生成モジュール807と、を含む。
【0108】
本開示の上記実施例により提供されるデータレジスターアクセス装置は、ターゲット仮想マシンのために専用なターゲットデータレジスター群を設置し、且つターゲット保護レジスターを用いてターゲット仮想マシンの、ターゲットデータレジスター群へのアクセス権限を制御することにより、ターゲット仮想マシンがそれに対応するターゲットデータレジスター群にしかアクセスできず、それにより異なる仮想マシンがそれぞれ対応するデータレジスター群にアクセスするように柔軟に制御することができ、ハードウェア上でレジスター群間の隔離を実現し、複雑なソフトウェアプログラムを設置して仮想マシンのレジスターへのアクセス権限を制御することを避け、それにより、仮想マシンがレジスターにアクセスする効率を向上させる。
例示的な電子機器
【0109】
本開示の実施例はさらに電子機器を提供し、当該電子機器は、
図1に示されるロジック実行デバイス101、第1の所定数のデータレジスター102、第2の所定数の保護レジスター103及びコマンドメモリー104を含み、ロジック実行デバイス101、第1の所定数のデータレジスター102、第2の所定数の保護レジスター103及びコマンドメモリー104の機能に対して、上記
図1に示される例示的なアーキテクチャーの説明を参照することができ、ここで説明を省略する。
【0110】
また、当該電子機器は、入力装置、出力装置及び必要なメモリーなどを含んでもよい。ここで、入力装置は例えばマウス、キーボード、タッチパネル、通信ネットワークコネクタなどを含んでもよく、各種コマンドなどを入力するために用いられる。出力装置は、例えば、ディスプレイ、プリンター、通信ネットワーク及びそれらが接続される遠隔出力機器などを含んでもよく、各種データなどを出力するために用いられる。メモリーは上記入力装置から入力されたデータ、及び電子機器の動作中に生成されたデータを記憶するために用いられる。メモリーは揮発性メモリー及び/又は不揮発性メモリーを含んでもよい。揮発性メモリーには、ランダムアクセスメモリー(RAM)及び/又はキャッシュメモリー(cache)などが含まれる。不揮発性メモリーは、例えば、リードオンリメモリー(ROM)、ハードディスク、フラッシュメモリーなどを含んでもよい。
例示的なコンピュータプログラム製品及びコンピュータ可読記憶媒体
【0111】
本開示の実施例は、上記の方法及び機器に加えて、
図1に示されるロジック実行デバイス101によって実行されるとき、本明細書の上記「例示的な方法」の節で説明される本開示の様々な実施例に係るデータレジスターアクセス方法におけるステップをプロセッサに実行させるコンピュータプログラムコマンドを含むコンピュータプログラム製品であってもよい。
【0112】
コンピュータプログラム製品は、Java(登録商標)、C++などのオブジェクト指向プログラミング言語、及び「C」言語又は類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組合せで、本開示の実施例の操作を実行するために作成されたプログラムコードであることができる。プログラムコードは、完全にユーザコンピューティングデバイス上で、部分的にユーザコンピューティングデバイス上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザコンピューティングデバイス上で、部分的にリモートコンピューティングデバイス上で、又は完全にリモートコンピューティングデバイスもしくはサーバー上で実行されてもよい。
【0113】
また、本開示の実施例は、コンピュータプログラムコマンドが記憶されているコンピュータ可読記憶媒体であってもよく、コンピュータプログラムコマンドは、ロジック実行デバイス101によって実行されると、本明細書の上記「例示的な方法」の節で説明される本開示の様々な実施例に係るデータレジスターアクセス方法におけるステップをロジック実行デバイス101に実行させる。
【0114】
コンピュータ可読記憶媒体は、1つ又は複数の可読媒体の任意の組合せを採用することができる。可読媒体は、可読信号媒体又は可読記憶媒体であってもよい。可読記憶媒体は、例えば、これらに限定されないが、電気、磁気、光学、電磁、赤外線、又は半導体のシステム、装置、又はデバイス、あるいはそれらの任意の組合せを含んでもよい。可読記憶媒体のより具体的な例(非網羅的なリスト)としては、1つ以上のワイヤを有する電気接続、ポータブルディスク、ハードディスク、ランダムアクセスメモリー(RAM)、リードオンリメモリー(ROM)、消去可能プログラマブルリードオンリメモリー(EPROM又はフラッシュメモリー)、光ファイバ、ポータブルコンパクトディスクリードオンリメモリー(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせが挙げられる。
【0115】
本開示の基本原理を具体的な実施例に関して上記のように説明したが、なお、本開示で言及された利点、優勢、効果などは、限定的なものではなく例示に過ぎず、本開示の各実施例がそれらを必ず備えていると考えるべきではない。また、上記開示の具体的な詳細は、例示的な作用及び理解を容易にするための作用に過ぎず、限定的なものではなく、上記詳細は、本開示が必ず上記具体的な詳細で実現されることを限定しない。
【0116】
当業者であれば、本願の精神及び範囲から逸脱することなく、本開示に対して様々な変更及び変形を行うことができる。このように、本願のこれらの修正及び変形は本開示の特許請求の範囲及びその同等技術の範囲内に属する場合、本開示もこれらの修正及び変形を含むことを意図する。
【手続補正書】
【提出日】2024-03-21
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
本開示の実施例のほかの態様によれば、コンピュータ可読記憶媒体を提供し、コンピュータ可読記憶媒体には、ロジック実行デバイスによって実行されて上記データレジスターアクセス方法を実現するために用いられるコンピュータプログラムが記憶されている。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
上記第1の所定数のデータレジスター102は少なくとも2つの仮想マシンにデータ一時記憶機能を提供するために用いられる。通常、第1の所定数のデータレジスター102は複数のデータレジスター群を含んでもよく、
図1に示すように、第1の所定数のデータレジスター102はN個のデータレジスター群(データレジスター群0、データレジスター群1、……、データレジスター群N-1を含む)を含み、各データレジスター群は1つの仮想マシンに対応し、仮想マシンは対応するデータレジスター群を利用してデータの読
み書きを行うことができる。