IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーム・リミテッドの特許一覧

特表2022-523109セキュア及びノンセキュア・ストレージのためのルックアップ回路
<>
  • 特表-セキュア及びノンセキュア・ストレージのためのルックアップ回路 図1
  • 特表-セキュア及びノンセキュア・ストレージのためのルックアップ回路 図2
  • 特表-セキュア及びノンセキュア・ストレージのためのルックアップ回路 図3
  • 特表-セキュア及びノンセキュア・ストレージのためのルックアップ回路 図4
  • 特表-セキュア及びノンセキュア・ストレージのためのルックアップ回路 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-21
(54)【発明の名称】セキュア及びノンセキュア・ストレージのためのルックアップ回路
(51)【国際特許分類】
   G06F 21/78 20130101AFI20220414BHJP
   G06F 12/1009 20160101ALI20220414BHJP
【FI】
G06F21/78
G06F12/1009 100
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021544603
(86)(22)【出願日】2020-01-29
(85)【翻訳文提出日】2021-09-21
(86)【国際出願番号】 GB2020050206
(87)【国際公開番号】W WO2020157496
(87)【国際公開日】2020-08-06
(31)【優先権主張番号】1901436.4
(32)【優先日】2019-02-01
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】クラスク、シモン ジョン
(72)【発明者】
【氏名】イーパン、ジャコブ
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205MM36
5B205MM51
(57)【要約】
【解決手段】 入力ドメイン内の入力アドレスを含む要求を受信する入力回路を含む装置が提供される。出力回路は、出力アドレスを提供する。出力アドレスは、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む。ルックアップ回路は、入力アドレス及びセキュア物理アドレス間の少なくとも1つのマッピングと、入力アドレス及びノンセキュア物理アドレス間の少なくとも1つのマッピングとを含む複数のマッピングを格納する。
【選択図】図2
【特許請求の範囲】
【請求項1】
入力ドメイン内の入力アドレスを含む要求を受信するための入力回路と、
出力アドレスを提供するための出力回路であって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、出力回路と、
前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するためのルックアップ回路であって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、ルックアップ回路とを含む、装置。
【請求項2】
前記装置がメモリ保護ユニットである、請求項1に記載の装置。
【請求項3】
前記入力アドレスが中間物理アドレスであり、
前記エントリが、前記入力アドレスから前記セキュア物理アドレスへのマッピングと、前記入力アドレスから前記ノンセキュア物理アドレスへのマッピングとを含む、
請求項1又は2に記載の装置。
【請求項4】
前記ルックアップ回路が、前記エントリ内の各エントリについて、前記エントリがセキュア物理アドレスであるか、又は、前記エントリがノンセキュア物理アドレスであるかを示すためのセキュリティ・インジケータを含む、請求項1から3までの何れかに記載の装置。
【請求項5】
前記セキュリティ・インジケータに応じて、前記セキュア・ストレージ回路及び前記ノンセキュア・ストレージ回路へのアクセスを制御するための保護回路を含む、請求項1から4までの何れかに記載の装置。
【請求項6】
前記要求内の各要求が、前記要求内の入力アドレスが前記セキュア物理アドレスのうちの1つに関連付けられるか、又は、前記ノンセキュア物理アドレスのうちの1つに関連付けられるかを示すための、要求タイプ・フィールドを含む、請求項5に記載の装置。
【請求項7】
前記保護回路が、前記セキュリティ・インジケータ及び前記要求タイプ・フィールドに応じて、前記セキュア・ストレージ回路及び前記ノンセキュア・ストレージ回路へのアクセスを制御するよう適合される、請求項6に記載の装置。
【請求項8】
前記要求タイプ・フィールド及び前記セキュリティ・インジケータが一致する場合に、前記保護回路が前記要求の続行を許可する、請求項6又は7に記載の装置。
【請求項9】
前記要求タイプ・フィールドが、前記入力アドレスが前記ノンセキュア・ストレージ回路に関連付けられることを示し、且つ、前記セキュリティ・インジケータが、前記入力アドレスが前記ノンセキュア・ストレージ回路に関連付けられることを示す場合に、前記保護回路が、前記ノンセキュア・ストレージ回路に前記要求を転送する、請求項6から8までの何れか一項に記載の装置。
【請求項10】
前記要求タイプ・フィールドが、前記入力アドレスが前記セキュア・ストレージ回路に関連付けられることを示し、且つ、前記セキュリティ・インジケータが、前記入力アドレスが前記セキュア・ストレージ回路に関連付けられることを示す場合に、前記保護回路が、前記セキュア・ストレージ回路に前記要求を転送する、請求項6から9までの何れか一項に記載の装置。
【請求項11】
前記要求タイプ・フィールドと前記セキュリティ・インジケータとの間に不一致がある場合に、1つ又は複数のエラー動作を実施して前記保護回路の挙動を制御するための、1つ又は複数の設定を格納するためのストレージ回路を含む、請求項6から10までの何れか一項に記載の装置。
【請求項12】
前記要求タイプ・フィールドが、前記入力アドレスが前記セキュア・ストレージ回路に関連付けられることを示し、且つ、前記セキュリティ・インジケータが、前記入力アドレスが前記ノンセキュア・ストレージ回路に関連付けられることを示す場合に、前記保護回路が前記エラー動作を実施し、
前記要求タイプ・フィールドが、前記入力アドレスが前記ノンセキュア・ストレージ回路に関連付けられることを示し、且つ、前記セキュリティ・インジケータが、前記入力アドレスが前記セキュア・ストレージ回路に関連付けられることを示す場合に、前記保護回路が前記エラー動作を実施する、請求項6から11までの何れか一項に記載の装置。
【請求項13】
前記エラー動作が、前記要求タイプ・フィールド及び前記セキュリティ・インジケータによって示された、前記ストレージ回路のうち最も安全性の低いものに前記要求を転送することを含む、請求項11又は12に記載の装置。
【請求項14】
前記エラー動作が、前記要求タイプ・フィールド及び前記セキュリティ・インジケータによって示された、前記ストレージ回路のうち最も安全性の高いものに前記要求を転送することを含む、請求項11から13までの何れか一項に記載の装置。
【請求項15】
前記エラー動作が、フォルトを生成することを含む、請求項11から14までの何れか一項に記載の装置。
【請求項16】
前記フォルトが、無効ページ・フォルトに一致する、請求項15に記載の装置。
【請求項17】
前記保護回路がオーバーライドされるべきかを示すオーバーライド・フィールドを含む前記要求を含む、請求項5から16までの何れか一項に記載の装置。
【請求項18】
前記オーバーライド・フィールドが、前記セキュリティ・インジケータに関係なく、前記要求が前記セキュア・ストレージ回路に転送されるべきか、又は、前記ノンセキュア回路に転送されるべきかを示すよう適合される、請求項17に記載の装置。
【請求項19】
入力ドメイン内の入力アドレスを含む要求を受信するステップと、
出力アドレスを提供するステップであって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、ステップと、
前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するステップであって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、ステップとを含む、方法。
【請求項20】
入力ドメイン内の入力アドレスを含む要求を受信するための手段と、
出力アドレスを提供するための手段であって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、手段と、
前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するための手段であって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、手段とを含む、装置。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理に関する。より詳細には、本開示は、データ・ストレージに関する。
【背景技術】
【0002】
一部のシステム内では、いくつかの異なるモードで、各モードに割り当てられたメモリを用いて動作することが望ましいことがある。例えば、第1の動作モードで実行するソフトウェアは、第1の動作モードに関連付けられたメモリ領域にアクセスを制限され得る。一方で、第2の動作モードで実行するソフトウェアは、第1の動作モードに関連付けられたメモリ領域と第2の動作モードに関連付けられたメモリ領域のどちらにもアクセスすることを許可され得る。第1及び第2の動作モードはそれぞれ、例えば、ノンセキュア動作モード及びセキュア動作モードであってよい。
【発明の概要】
【課題を解決するための手段】
【0003】
少なくとも1つの実施例において、入力ドメイン内の入力アドレスを含む要求を受信するための入力回路と、出力アドレスを提供するための出力回路であって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、出力回路と、前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するためのルックアップ回路であって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、ルックアップ回路とを含む装置がある。
【0004】
少なくとも1つの実施例において、入力ドメイン内の入力アドレスを含む要求を受信するステップと、出力アドレスを提供するステップであって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、ステップと、前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するステップであって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、ステップとを含む方法がある。
【0005】
少なくとも1つの実施例において、入力ドメイン内の入力アドレスを含む要求を受信するための手段と、出力アドレスを提供するための手段であって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、手段と、前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するための手段であって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、手段とを含む装置がある。
【0006】
一例としてのみ、以下の添付図面に示す実施例を参照して、本技術をさらに説明する。
【図面の簡単な説明】
【0007】
図1図1は、いくつかの実施例によるシステムを示す図である。
図2図2は、いくつかの実施例による第2段階回路の実例を示す図である。
図3図3は、いくつかの実施例による、構成レジスタ内で設定され得る可能な設定のいくつかの実例を示す図である。
図4図4は、いくつかの実施例による判定(decision)プロセスを表すフローチャートを示す図である。
図5図5は、いくつかの実施例による方法を示す図である。
【発明を実施するための形態】
【0008】
添付図面を参照して実施例を論じる前に、実施例及びこれに関する利点の説明を以下に記載する。
【0009】
少なくともいくつかの実施例は、入力ドメイン内の入力アドレスを含む要求を受信するための入力回路と、出力アドレスを提供するための出力回路であって、前記出力アドレスが、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む、出力回路と、前記入力アドレスのそれぞれについて、前記出力アドレスのうちの対応する1つを示す、複数のエントリを格納するためのルックアップ回路であって、前記エントリのうちの少なくとも1つが、前記セキュア物理アドレスのうちの1つに関し、且つ、前記エントリのうちの少なくとも1つが、前記ノンセキュア物理アドレスのうちの1つに関する、ルックアップ回路とを含む装置を提供する。
【0010】
上記の実施例では、装置が、ストレージ回路にアクセスするためのアクセス要求(例えば、読み取り又は書き込み)を受信する。ストレージ回路は、セキュア動作モードで実行するソフトウェアのデータを格納するセキュア・ストレージ回路と、ノンセキュア動作モードで実行するソフトウェアのデータを格納するノンセキュア・ストレージ回路とに分離される。いくつかの実施例において、セキュア動作モードで実行するソフトウェアは、何れのストレージ回路のデータにもアクセスすることができるが、ノンセキュア動作モードで実行するソフトウェアは、セキュア・ストレージ回路のデータにアクセスすることができない(例えば、ノンセキュア・ストレージ回路にはアクセスできるが、セキュア・ストレージ回路にはアクセスできない)。出力アドレスは、物理アドレスであり、それ故、セキュア・ストレージ回路又はノンセキュア・ストレージ回路のどちらかの特定位置のアドレスに一致し、入力アドレスは、入力ドメイン内のアドレスである。入力ドメインは、例えば、アドレスの変更を行う必要がないならば、それ自体が物理アドレスのドメインであってもよい。しかし、こうした状況で入力アドレスと出力アドレスとの間に変更がなくとも、なお、用語「変換」が用いられることに注意されたい。ドメインはまた、物理アドレスが入力アドレスとは異なる、仮想ドメイン(又は、部分的な物理ドメイン)であってもよい。ルックアップ回路は、入力アドレスに対応する出力アドレスを示すために使用することができる。場合によっては、入力アドレスと出力アドレスは同一であってよい。何れにしても、ルックアップ回路はセキュア・アドレス及びノンセキュア・アドレスの両方のエントリを含む。
【0011】
いくつかの実施例において、装置はメモリ保護ユニット(Memory Protection Unit)である。メモリ保護ユニット(MPU:Memory Protection Unit)は、ストレージ回路に保護機能を提供し、これによって、プロセスがアクセスすることを許可されていないメモリにアクセスすることを回避する。これは、いくつかのメモリ領域を定義することによって実施することができ、そのそれぞれを特定のアクセス属性に関連付けることができ、又、そのそれぞれがセキュア・ストレージ回路又はノンセキュア・ストレージ回路に属するものとして示され得る。これらの実施例の一部では、MPUによって実施される変換プロセスは、入力アドレスを変更しない(故に、入力アドレスと出力アドレスが同一である)、即ち、アドレスを変更するのではなく、要求を適切なストレージ回路に送信する。
【0012】
いくつかの実施例において、入力アドレスは中間物理アドレスであり、エントリは、入力アドレスからセキュア物理アドレスへのマッピングと、入力アドレスからノンセキュア物理アドレスへのマッピングとを含む。これは、第1段階で、仮想アドレス(VA:Virtual Address)が中間物理アドレス(IPA:Intermediate Physical Address)に変換され、続いて、第2段階で、装置を使用してIPAを物理アドレス(PA:Physical Address)に変換する、多重変換に使用され得る。重ねて、VA及びIPA、若しくはIPA及びPA、又は、VA、IPA、及びPAでさえ、全て同一であってよいことに注意されたい。IPAの使用が発生し得る1つの状況が、ハイパーバイザが提供される場合である。オペレーティング・システムは、ハイパーバイザによって提供された、システムの抽象化された状態を参照し得るため、オペレーティング・システムは、ハイパーバイザを意識することなく、特定のアドレスが物理アドレスであるものと見なし得る。しかし、実際には、この(中間物理)アドレスを実際の物理アドレスに変換するための第2次変換が必要となり得る。
【0013】
いくつかの実施例において、ルックアップ回路は、エントリ内の各エントリについて、当該エントリがセキュア物理アドレスであるか、又は、当該エントリがノンセキュア物理アドレスであるかを示すためのセキュリティ・インジケータを含む。セキュリティ・インジケータは、例えば、当該エントリがノンセキュア・アドレス又はセキュア・アドレスに関するかどうかを示す、ルックアップ回路内の単一ビットの形態を取ることができる。
【0014】
いくつかの実施例において、装置は、セキュリティ・インジケータに応じて、セキュア・ストレージ回路及びノンセキュア・ストレージ回路へのアクセスを制御するための保護回路を含む。このインジケータに基づいて、ルックアップ回路が、データをどこから取得するべきかを判定することが可能である。特に、アドレスがセキュア物理アドレスであることをエントリが示せば、データはセキュア・ストレージ回路から取得するべきであるが、アドレスがノンセキュア物理アドレスであれば、データはノンセキュア・ストレージ回路から取得するべきである。
【0015】
いくつかの実施例において、要求内の各要求は、当該要求内の入力アドレスがセキュア物理アドレスのうちの1つに関連付けられているか、又は、ノンセキュア物理アドレスのうちの1つに関連付けられているかを示すための要求タイプ・フィールドを含む。従って、要求タイプ・フィールドは、要求の発行側(例えば、オペレーティング・システム)が、要求がセキュア・ストレージ内のアドレスに関すると認識しているか、又は、ノンセキュア・ストレージ内のアドレスに関すると認識しているかを示す。
【0016】
いくつかの実施例において、保護回路は、セキュリティ・インジケータ及び要求タイプ・フィールドに応じて、セキュア・ストレージ回路及びノンセキュア・ストレージ回路へのアクセスを制御するよう適合される。セキュリティ・インジケータ及び要求タイプ・フィールドは、互いに異なっていてよい。例えば、実際にはセキュア・ストレージにデータが格納されていても、要求タイプ・フィールドは、要求がノンセキュア・ストレージについて作成されていることを示すことがある。データは、例えば、プロセス間の通信を可能にするために、「想定外の」位置に格納されることがある。このため、ドメイン間の通信はセキュリティを目的として禁止されることがあることから、どちらのプロセスも同一のドメイン内(例えば、セキュア又はノンセキュア)で動作することになる。
【0017】
いくつかの実施例において、要求タイプ・フィールド及びセキュリティ・インジケータが一致する場合、保護回路は要求が続行することを許可する。これらの実施例では、セキュリティ・インジケータ及び要求タイプ・フィールドによって提供される指示が、どちらも同一のドメインが使用されることを示す(例えば、これらが合致する)場合に、要求は続行することを許可される。要求タイプ・フィールドによって示されるドメインがセキュリティ・インジケータのものと合致し、よって、データが想定されたドメイン内に格納されるため、さらなる動作を実施する必要はない。
【0018】
例えば、いくつかの実施例において、要求タイプ・フィールドが、入力アドレスがノンセキュア・ストレージ回路に関連付けられていることを示し、セキュリティ・インジケータが、入力アドレスがノンセキュア・ストレージ回路に関連付けられていることを示す場合、保護回路は、ノンセキュア・ストレージ回路に要求を転送する。同様に、要求タイプ・フィールドが、入力アドレスがセキュア・ストレージ回路に関連付けられていることを示し、セキュリティ・インジケータが、入力アドレスがセキュア・ストレージ回路に関連付けられていることを示す、いくつかの実施例では、保護回路はセキュア・ストレージ回路に要求を転送する。
【0019】
いくつかの実施例において、装置は、要求タイプ・フィールドとセキュリティ・インジケータとの間に不一致がある場合に、1つ又は複数のエラー動作を実施して、保護回路の挙動を制御するための、1つ又は複数の設定を格納するためのストレージ回路を含む。ストレージ回路は、例えば、不一致の発生時に特定の動作を行うか否かを示す、フロップの形態を取ることができる。フロップは、例えば、代わりに他の動作が実施されるべきか、又は、複数の動作のうち何れが実行されるべきかを示す他のビットと併せて、レジスタの単一ビットを格納することができる。
【0020】
いくつかの実施例において、要求タイプ・フィールドが、入力アドレスがセキュア・ストレージ回路に関連付けられていることを示し、セキュリティ・インジケータが、入力アドレスがノンセキュア・ストレージ回路に関連付けられていることを示す場合、保護回路は、エラー動作を実施し、又、要求タイプ・フィールドが、入力アドレスがノンセキュア・ストレージ回路に関連付けられていることを示し、セキュリティ・インジケータが、入力アドレスがセキュア・ストレージ回路に関連付けられていることを示す場合、保護回路は、エラー動作を実施する。従って、セキュリティ・インジケータと要求タイプ・フィールドとの不一致に応答して、エラー動作が実施される。
【0021】
様々なエラー動作が可能であり、そのそれぞれが、単体で、又は、任意に組み合わせて使用されることができる。
【0022】
いくつかの実施例において、エラー動作は、要求タイプ・フィールド及びセキュリティ・インジケータによって示された、ストレージ回路のうち最も安全性の低いものに要求を転送することを含む。これは、例えば、ストレージ回路のうち最小権限を有するもの、及び/又は、それに関連する最低保護であってよい。ストレージ回路が「セキュア」及び「ノンセキュア」のドメインを定義する場合においては、これはノンセキュア・ドメインとなる。ストレージ回路のうち最も安全性の低いものに要求を送信することによって、セキュリティを侵害される可能性が低くなる。
【0023】
或いは、いくつかの実施例において、エラー動作は、要求タイプ・フィールド及びセキュリティ・インジケータによって示された、ストレージ回路のうち最も安全性の高いものに要求を転送することを含む。
【0024】
いくつかの実施例において、エラー動作は、フォルトを生成することを含む。例えば、いくつかの実施例において、フォルトは、無効ページ・フォルトに一致する。このように、フォルトに応答して、オペレーティング・システム又はハイパーバイザなどが無効なアクセス要求を発行したソフトウェアの実行を中断又は終了することによって、メモリ・アクセスのエラーを処理するための既存技術を採用することができる。オペレーティング・システム又はハイパーバイザはまた、要求を発行したソフトウェアの特性又は権限に応じて、異なる挙動を実施することができる。
【0025】
いくつかの実施例において、要求は、保護回路がオーバーライドされるべきかを示すためのオーバーライド・フィールドを含む。
【0026】
いくつかの実施例において、オーバーライド・フィールドは、セキュリティ・インジケータに関係なく、要求がセキュア・ストレージ回路に転送されるべきか、又は、ノンセキュア回路に転送されるべきかを示すよう適合される。このようにして、保護回路の典型的な挙動に関わらず、要求が続行し、且つ/又は、特定のストレージ回路に送信されることを、根底にある保護機構に関係なく可能にすることができる。
【0027】
いくつかの特定の実施例を、図面を用いて以下に説明する。
【0028】
図1は、ソフトウェアが、いくつかの異なる権限モード及び実行レベルで実行されるシステム100を示す。特に、システム100はセキュア・ドメイン(S)及びノンセキュア・ドメイン(NS)を含む。セキュア・ドメイン内で動作するアプリケーションは、セキュア・ドメイン及びノンセキュア・ドメインに確保されたデータにアクセスすることができる。しかし、ノンセキュア・ドメイン内で実行するソフトウェアは、ノンセキュア・ドメインに確保されたメモリにのみアクセスすることができ、セキュア・ドメインに確保されたメモリにはアクセスすることができない。装置は、それ故、何れの時点においても、セキュア・ドメイン内のソフトウェアがアクティブなセキュア動作モードで実行するか、又は、ノンセキュア・ドメイン内のソフトウェアがアクティブなノンセキュア動作モードで実行することができる。
【0029】
これらの実行モードとは別に、いくつかの、即ち、実行モードのそれぞれに対して1つの、異なる実行レベルがある。最も低いアプリケーション・レベル105、110、オペレーティング・システム・レベル115、120、及び、ハイパーバイザ・レベル125、130がある。この上には、セキュア・ドメイン及びノンセキュア・ドメインの両方にまたがるセキュア・モニタ・レベル135がある。
【0030】
アプリケーションは、最小権限レベル105、110で実行し、オペレーティング・システムによって管理される。オペレーティング・システムは、オペレーティング・システム・レベル115、120で実行し、代わってハイパーバイザによって管理される。ハイパーバイザは、ハイパーバイザ・レベル125、130で実行し、代わって、セキュア動作モードとノンセキュア動作モードとの切り替えを担うセキュア・モニタによって管理される。
【0031】
実行モード間の切り分けにより、ノンセキュア・ドメイン120内で動作するオペレーティング・システムは、ノンセキュア・ドメイン110内で動作するアプリケーションのみを管理することができ、セキュア・ドメイン105内で動作するアプリケーションを管理することはできない。
【0032】
システム100は、いくつかの異なるオペレーティング・システムを使用することができる。これらは、代わって、ハイパーバイザによって管理されることができる。重ねて、ハイパーバイザは、セキュア・ドメイン115内のオペレーティング・システムを管理するセキュア・ドメイン125に対して提供され、且つ、ノンセキュア・ドメイン120内のオペレーティング・システムを管理するノンセキュア・ドメイン130に対して提供される。最高実行レベルで動作するセキュア・モニタ135が提供される。
【0033】
アプリケーションのうちの1つを実行中に、仮想アドレス(VA)にアクセス要求が発行されることがある。仮想アドレスは、関連するオペレーティング・システムによって第1段階変換回路140に対して発行され、第1段階変換回路140は、変換索引バッファ(TLB:Translation Lookaside Buffer)、又はEL0で管理されるメモリ保護ユニット(MPU)の形態を取ることができる。TLBは、仮想アドレス(VA)から、物理アドレス(PA)又は中間物理アドレス(IPA)の何れかへの第1段階変換を提供する。中間物理アドレスは、いくつかの異なるオペレーティング・システムの実行を可能とするために、適切なハイパーバイザ125、130が、オペレーティング・システムにシステムの抽象化された状態を参照させる結果として使用され得る。
【0034】
続いて、アドレス変換の第2段階が、第2段階変換回路145によって実施される。これが、入力に基づいてPAを作成する。これは、例えば、IPAからのさらなる変換を伴うことがあり、このような変換は、例えばTLBによって提供され得る。或いは、入力及び出力はどちらもPAであってよく、メモリ保護動作は、適切なメモリ領域へのアクセスを制御するために実施されてもよい。このようなサービスは、メモリ保護ユニット(MPU)の形態を取ることになる。何れの場合でも、第2段階回路145は1つのみ提供される。その結果、第2段階回路145によって出力されるPAは、セキュア・ドメイン・アプリケーション105、オペレーティング・システム115、ハイパーバイザ125に対して提供されるセキュア・メモリ155と、ノンセキュア・ドメイン・アプリケーション110、オペレーティング・システム120、及びハイパーバイザ130に対して提供されるノンセキュア・メモリ155とのどちらにも関する可能性がある。
【0035】
第1段階変換回路140によって出力されるアドレスは、中間物理アドレス又は物理アドレスであってよい。特に、第2段階の変換プロセスが実行されたとしても、この第2段階の変換がアドレスの変更又は変換を伴う必要はない。即ち、アドレスの変換は実施されなくてもよいか、又は、変換は全て、物理アドレスを出力する第1段階変換回路140によって実施される。続いて、例えば、MPU 145によって、当該物理アドレスへのアクセスが許可されているか否かを判定するなどのさらなる動作が、当該物理アドレスに対して実施され得る。他の実施例では、第1段階変換回路140によって出力される中間物理アドレスは、物理アドレスを取得するために、さらに変換されなければならない。
【0036】
上述したように、本明細書では、両方の段階でMPUが使用される場合であっても、用語「変換」が使用される。熟練者は、本文脈における「変換」が、アドレスが変換されることを要するものでないことを理解するであろう。例えば、このような「変換」プロセスは、チェック、属性割り当て、及び、入力アドレスと同一となる出力アドレスを計算する変換回路(例えば、MPUの形態にある)を用いた新アドレスの計算を実施することを含み得る。従って、第1段階後に、又は第2段階後にアドレスの変更が発生し得るが、何れの時点においても、アドレスの変更が発生する必要性はない。このような挙動は、例えば、関連するページ・テーブルのエントリが、関連するVAと同一の値を有するIPAを含む場合(第1段階変換の場合)に、全てのアドレス変換を実施するMMUに一致する。
【0037】
図2は、メモリ保護ユニット(MPU)の形態にある第2段階回路145の実例を示す。MPU 145は、ある位置及びメモリにアクセスするための要求を受信する入力回路200を含む。入力回路200に提供されるアドレスは、前述したIPA又はPAであってよい。図2に示す実施例はMPUであるため、入力回路200に提供されるアドレスはPAである。入力回路200によって受信されるアクセス要求はまた、アクセス要求がセキュア(0)であるか、又はノンセキュア(1)であるかを示すためのフラグ(NS)を含む。さらに、アクセス要求が特定のストレージ回路に強制変更されるかどうかを示すオーバーライド(SA、NSA)が提供される。この場合は、SA(セキュアをノンセキュアに強制変更)及びNSA(ノンセキュアをセキュアに強制変更)のどちらもゼロであるため、値はオーバーライドが提供されていないことを示す。
【0038】
アクセス要求は、セキュア回路150及びノンセキュア回路155へのアクセスを制御するために、保護回路205に渡される。本制御は、特定の領域に対するパラメータと共に識別された、いくつかのメモリ領域を含むストレージ回路220に基づいて実施される。さらに、保護回路はまた、保護回路205の挙動を制御する構成レジスタ210を参照する。構成レジスタ210の実例は、図3に示す。本実例において、提供される入力アドレス(0xF433C1ADE)は、基準アドレス0xF433C1ABBを有し、384バイトのサイズを有する領域内に位置する。MPUは、2の累乗でないサイズの領域を定義することができ、それによって、定義される領域のサイズについて柔軟性を供与することに注意されたい。結果として、アクセス要求は当該領域でヒットする。図2に示すように、当該領域を定義するストレージ回路220は、0xF4Aのようなパラメータをリスト化する。これらのパラメータの詳細は、本開示とは関係しない。しかしながら、このようなパラメータは、例えば、異なるプロセスが問題のメモリ領域を読み取ることができるか、又はこれに書き込むことができるかを制限することによって、メモリ領域へのアクセスをさらに制御するために使用され得る。何れにしても、メモリ領域がセキュア・ストレージ回路150に関連付けられるか、又は、ノンセキュア・ストレージ回路155に関連付けられるかを示すためのセキュリティ・インジケータとして、フラグ「NS」が提供される。この場合、ヒットしたストレージ回路220の領域の値は、フラグ「NS」の値として「1」を有する。その結果、メモリ領域は、ノンセキュア・ストレージ回路155に関連付けられる。保護回路は、セキュリティ・インジケータが要求タイプ・フィールド「NS」に合致することを認識し、それ故、要求は続行を許可される。従って、この場合に入力アドレスに合致する出力アドレスは、出力回路230によってノンセキュア・ストレージ回路155へ出力される。構成レジスタ210、要求タイプ・フィールド「NS」、オーバーライド・フィールド「SA」並びに「NSA」、及び、セキュリティ・インジケータ「NS」に関する保護回路の挙動は、図4を用いてより詳細に示す。
【0039】
従って、第2段階回路145が、セキュア・ストレージ回路150及びノンセキュア・ストレージ回路155の両方へのアクセスを提供する単一のストレージ回路220を提供することが可能であることが理解されるであろう。従って、セキュア・ストレージ回路150及びノンセキュア回路155の両方へのアクセスを制御するために提供される必要があるMPU 145は1つのみである。
【0040】
図3は、保護回路205の挙動を制御するために使用され得る構成レジスタ210内に格納されることができる、可能な設定のいくつかの実例を示す。特に、構成レジスタ210は、要求タイプ・フィールド「NS」とセキュリティ・インジケータ「NS」との間に不一致がある場合に発生するエラー動作の数を制御するために使用されることができる。本実例では、エラー動作は、フォルトを発生させるべきか、発生させるべきフォルトのタイプ、及び、不一致の発生時に要求がどのように送信されるべきかを示す。「発生フォルト」のエラー動作には、可能値が2つある。フォルトが発生したか、していないか、の何れかである。従って、これは単一ビットで表されることができる。「フォルト・タイプ」は、フォルトの発生時に発生させるべきフォルトのタイプを示す。本実例では、これは、前述のシステムが、要求されたページが有効でないことを示すために使用するinvalid_pageフォルト、又は、要求タイプ・フィールドとセキュリティ・インジケータとの不一致を示すために使用される「security_mismatch」フォルトを含み得る。重ねて、この構成値は2通りのみであるため、単一ビットを用いて表すことができる。「発生フォルト」構成値によって定義されたフォルトが発生しない場合においては、「フォルト・タイプ」構成値が無視されることは明らかである。「宛先」エラー動作は、要求が送信されるべき宛先を示す。本明細書では、3つの値が許可されている。宛先が「無し(none)」であると示されていれば、要求は転送されない。宛先が「最低(least)」であると示されていれば、要求は、ストレージ回路のうち最も安全性の低いもの、本実例では、ノンセキュア・ストレージ回路155に転送される。或いは、宛先が最も安全性の高いもの(the most secure)であると示されていれば、要求は、ストレージ回路のうち最も安全性の高いもの、この場合は、セキュア・ストレージ回路150に送信される。これらの3つの値は、2ビットで表すことができる。従って、フォルトを発生させるべきか、発生させるべきフォルトのタイプ、及び、不一致の発生時に要求に対して何をするべきか、を示すために、合計で4ビットが使用され得る。その他の可能なエラー動作は、熟練者にとって明らかであろう。
【0041】
図4は、ストレージ回路220内でヒットするメモリ領域がアクセスされるべきかどうかを判定する際に保護回路205によって実施され得る判定(decision)プロセスを表すフローチャート400を示す。ステップ405において、アクセス要求が受信される。アクセス要求は、アドレス(INPUT.ADDR)と、アクセス要求がセキュア(0)であるか、ノンセキュア(1)であるかの指標(INPUT.NS)とを含む。続いて、ステップ410において、メモリ領域がセキュアであるか、即ち、REGION[INPUT.ADDR].NSが1であるか、を判定する。1でなければ、ステップ415において、アクセス要求がセキュアであるかを判定する。アクセス要求がセキュアであれば、ステップ450において、メモリ領域がセキュアであり、且つアクセス要求がセキュアであると判定されたことになる。続いて、ステップ450において、要求がノンセキュアに強制変更されるべきか(即ち、SAフラグが1であるか)を判定する。強制変更されるべきでなければ、ステップ455において、要求はセキュア(OUTPUT.NS=0)であるとして続行する。強制変更されるべきであれば、ステップ445において、要求はノンセキュア(OUTPUT.NS=1)であるとして続行する。ステップ415に戻り、アクセス要求がセキュアでなければ、ステップ425において、メモリ領域はセキュアであるが、アクセス要求はノンセキュアであると判定されたことになる。そして、ステップ425において、NSCHECKが設定されるかを判定する。これによって、メモリ領域のセキュリティと要求のセキュリティとの不一致が発生した場合(ステップ425の場合)のフォルトが発生する。そのため、NSCHECKが設定されていれば、ステップ435において、フォルトが生成される。フォルトのタイプは、図3に示した構成値「フォルト・タイプ」によって指定することができる。そうでない場合は、ステップ440において、トランザクションは最も安全性が低いモード(即ち、ノンセキュア)を規定値に設定する。しかし、ステップ440では、これがオーバーライド又は強制変更されることが可能である。特に、ステップ440では、ノンセキュア・トランザクションをセキュア・トランザクションに強制変更するよう、NSAが設定されているかどうかを判定する。設定されていなければ、ステップ445において、トランザクションはノンセキュア(OUTPUT.NS=1)であるとして出力される。設定されていれば、ステップ445において、トランザクションは、前述したようにセキュアであるとして出力される。
【0042】
ステップ410に戻り、メモリ領域がノンセキュアであれば、ステップ420において、アクセス要求がノンセキュアであるか(即ち、INPUT.NSが1であるか)を判定する。ノンセキュアであれば、メモリ領域とトランザクション・タイプとが合致し(どちらもノンセキュア)、プロセスは、前述したようにオーバーライドを検討するステップ440に進む。そうでない場合は、プロセスはステップ430に進み、これはアクセスされるメモリ領域とトランザクション・タイプとの不一致を表す。ステップ430は、そのため、NSCHECKが有効であるかを判定する。有効であれば、ステップ435において、前述したようにフォルトが生成される。有効でなければ、トランザクションは最もセキュリティ・レベルが低いもの(即ち、ノンセキュア)として進行し、ステップ440は、前述したように、トランザクションがセキュアとなるよう強制変更されるべきか(即ち、NSAが0であるか)を判定する。
【0043】
従って、保護回路205が、ストレージ回路220内の何れのメモリ領域がヒットしたか、当該領域に関するセキュリティ・インジケータ(REGION[INPUT.ADDR].NS)、入力アドレスが、セキュア物理アドレスに関連付けられるか、又はノンセキュア物理アドレスに関連付けられるかを示す要求タイプ・フィールド(INPUT.NS)、オーバーライド・フラグ「SA」及び「NSA」、並びに、要求タイプ・フィールドとセキュリティ・インジケータとの不一致の発生時に何が発生するかを示す構成領域210(NSCHECK)に応じて、ストレージ回路150、155の何れにアクセスするかを判定する方法が実証される。
【0044】
この特定の実例において、「宛先」構成値は、「最低」に設定される。その結果、ステップ425及び430においてメモリ領域タイプと要求タイプとの不一致がある場合、フォルトが生成されなければ、トランザクションはノンセキュアであることを規定値に設定する。しかし、他の実施例では、トランザクションはセキュアであることを規定値に設定する(例外がスローされなければ、プロセスをステップ425及び430からステップ450に進行させる)か、又は、ステップ425及び430の判定(decision)を完全に排除し、ステップ415及び420において不一致が発生した場合に、トランザクションを破棄して、ステップ435において常にフォルトを生成することができることが理解されるであろう。
【0045】
図5は、いくつかの実施例による方法を示す。本方法は、フローチャート500の形態で示される。ステップ510において、入力アドレスに対して、対応する出力アドレスを示すエントリがストレージ回路に格納される。これは、入力アドレス及び出力アドレス間の変換として提供されるか、又は、入力アドレスと出力アドレスが同一であってよい(例えば、MPUの場合)。エントリのうち少なくとも1つは、セキュア・ストレージ回路内のセキュア物理アドレスに一致し、少なくとも1つのエントリが、ノンセキュア・ストレージ回路内のノンセキュア物理アドレスに一致する。ステップ520において、入力ドメイン内の入力アドレスを含む要求を受信する。入力ドメインは、例えば、装置の特性に応じて、中間物理アドレス・ドメインであるか、又は、物理アドレス・ドメインであってよい。ステップ530において、入力アドレスに応じて出力アドレスが提供される。出力アドレスは、セキュア・ストレージ回路宛てのセキュア物理アドレスと、ノンセキュア・ストレージ回路宛てのノンセキュア物理アドレスとを含む。
【0046】
従って、アクセス・プロセスの一部として、セキュア・ストレージ回路及びノンセキュア・ストレージ回路の両方へのアクセスを制御することができる装置を提供する方法が実証される。
【0047】
本願において、用語「~よう構成される」は、装置の構成要素が所定の動作を実施することができる構成を有するという意味で使用される。この文脈において、「構成」は、ハードウェア又はソフトウェアの相互接続の配置又は方法を意味する。例えば、装置は、所定の動作を提供する専用ハードウェアを有するか、又は、プロセッサ若しくは他の処理デバイスがその機能を実施するようプログラムされることができる。「~よう構成される」は、装置の構成要素が、所定の動作を提供するために何らかの方法で変更されなければならないことを含意するものではない。
【0048】
本明細書に、添付図面を参照して具体的な実施例を詳述したが、本発明がこれらの正確な実施例に限定されるものではなく、添付された特許請求の範囲によって定められた本発明の範囲から逸脱することなく、当業者によって様々な変更、追加、修正が成され得ることは理解されるべきである。例えば、独立請求項の特徴と従属請求項の特徴とを、本発明の範囲から逸脱することなく、様々に組み合わせることができる。

図1
図2
図3
図4
図5
【国際調査報告】