JP2013533567A - メモリアクセス制御 - Google Patents

メモリアクセス制御 Download PDF

Info

Publication number
JP2013533567A
JP2013533567A JP2013523661A JP2013523661A JP2013533567A JP 2013533567 A JP2013533567 A JP 2013533567A JP 2013523661 A JP2013523661 A JP 2013523661A JP 2013523661 A JP2013523661 A JP 2013523661A JP 2013533567 A JP2013533567 A JP 2013533567A
Authority
JP
Japan
Prior art keywords
access
memory
access control
mode
modes
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.)
Granted
Application number
JP2013523661A
Other languages
English (en)
Other versions
JP5718463B2 (ja
Inventor
リチャード・ロイ・グリセンスウェイト
Original Assignee
アーム・リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2013533567A publication Critical patent/JP2013533567A/ja
Application granted granted Critical
Publication of JP5718463B2 publication Critical patent/JP5718463B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

第1のモードまたは第2のモードで動作する処理回路(4)を含むデータ処理システム(2)。アクセス制御ビット(40,42)を含むページテーブルデータ(30)は、メモリページに対するメモリアクセスのための許可を制御するために使用される。第1のモードでは、アクセス制御ビットは、冗長エンコーディングの少なくとも1つのインスタンスを含む。第2のモードでは、冗長エンコーディングは、アクセス制御ビットエンコーディング空間のより効率的な使用を提供するために取除かれる。

Description

本発明は、データ処理システムの分野に関する。より詳細には、本発明は、データ処理システムのメモリアドレス空間内でメモリページに対するアクセス許可の制御の分野に関する。
メモリのページ(連続領域)に対するアクセス許可を制御するためにページテーブルデータに応答するメモリ管理ユニットを有するデータ処理システムを設けることが知られている。例として、特定のメモリページが、特権例外レベルでの読取りおよび書込みのためにアクセス可能であるとしてマークを付けられるが、ユーザ例外レベルでの読取りアクセスだけのためにマークを付けられることができる。読取りおよび書込みアクセスに加えて、に指定されることができる、さらなるアクセス許可は、メモリページから読取られたプログラム命令を実行することができることである。
所与のメモリページに対して読取りアクセスが許可されるか、書込みアクセスが許可されるか、また実行アクセスが許可されるかを、特権レベルおよびユーザレベルのそれぞれについて独立にかつ直交して指定するアクセス制御ビットを含むページテーブルデータを提供することが、PowerPCプロセッサアーキテクチャから知られている。これは、1メモリページ当たり6つのアクセス制御ビットを消費する。
データ処理システム内で使用されるメモリの量が、より大きくなり、ページテーブルデータの複数のセットを必要とする仮想化などの技法の出現と共に、ページテーブルデータのサイズは、より重大な要因になってきた。使用されるアクセス制御ビットの数を減らすことによって、ページテーブルデータを格納するための必要とされるメモリ空間の量を低減することが有利である。この点に関する別の要因は、異なる命令セットを使用して異なる動作モードをサポートする欲求である。ページテーブルデータによって消費されるメモリ空間の量を低減するために、新たに導入される命令セットを使用するモードなどの新たに導入されるモードによって使用されるページテーブルデータは、先行するページテーブルデータおよび先行する命令セットと後方互換性があるべきであることが所望される。
一態様から見ると、本発明は、データを処理するための装置を提供し、装置は、
データ処理オペレーションを実施するプログラム命令に応答し、複数のモードで動作するように構成された処理回路と、
前記処理回路およびメモリに結合し、ページテーブルデータに基づいて前記メモリ内に格納されたデータ値に対するアクセス許可を制御するように構成されたメモリ管理回路とを備え、
前記メモリは、複数のメモリページに分割されたメモリアドレス空間を有し、前記ページテーブルデータは、それぞれのメモリページ用のアクセス許可を規定する、前記複数のメモリページのそれぞれ用の複数のアクセス制御ビットを含み、
前記処理回路が、アクセス許可をエンコードするために所定の数のアクセス制御ビットを使用する前記複数のモードの第1のモードにあるとき、前記メモリ管理回路は、前記アクセス制御ビットの複数の異なる組合せが、アクセス許可の同じセットを提供する冗長エンコーディングの少なくとも1つのインスタンスに応答し、
前記処理回路が、アクセス許可をエンコードするために前記所定の数のアクセス制御ビットを使用する前記複数のモードの第2のモードにあるとき、前記メモリ管理ユニットは、非冗長エンコーディングにおいてアクセス許可の複数の異なるセットを提供するアクセス制御ビットの複数の異なる組合せに応答する。
本技法は、第1の動作モードで使用されるアクセス制御ビットが、冗長エンコーディングの1つまたは複数のインスタンスを含むことを認識する。第2の動作モードでは、この冗長エンコーディングに対応するアクセス制御ビットの異なる組合せが、アクセス許可の複数の異なるセットを提供するために使用されることができ、それにより、アクセス制御ビットエンコーディング空間をより効率的に利用する。第1および第2のモードは、アクセス許可をエンコードするために同じ数のアクセス制御ビットを使用する。実際には、たとえばユーザ例外レベルと特権例外レベルの両方において、読取りアクセス、書込みアクセス、および実行アクセスの完全に直交しかつ独立の制御を設けることは、現実には必要とされないアクセス許可についての複数の可能性、たとえばユーザ例外レベルで書込み可能であったが、特権例外レベルで書込み可能でなかったメモリページをもたらすことを、本技法は認識する。異なるアクセス許可を提供し、アクセス制御ビットをより効率的に利用するために、第1の動作モード内での冗長エンコーディングが、第2の動作モードで使用されることができることを認識することによって、本技法はさらに進む。
有利な後方互換性を提供する方法として、第2の動作モードで提供されるアクセス許可の複数の異なるセットは、第1のモードにおける冗長エンコーディングに対応するアクセス許可の同じセットを含むことができ、それにより、同じページテーブルデータが、第1の動作モードと第2の動作モードで使用されることを可能にする。
第1のモード動作では、アクセス許可の従来のビューは、メモリページ内に格納されたデータ値が、それらのデータ値が実行可能であるために読取り可能であることを、アクセス許可が指定しなければならないような制御の装備をもたらす。しかし、仮想化技法のより広範な使用の出現によって、メモリページが実行可能であり、一方、データとして読取り可能でないことは、第2の動作モードで有用となりうる。例として、こうした配置構成は、プログラム命令が、未変換命令をデータとして読取るいずれの試みもトラップされ、仮想化をマスクする適切な処置がとられるように、仮想化システム内で変換されるときに有用である可能性がある。
異なる動作モードのそれぞれの動作モード内で、ユーザレベルおよび特権レベルを含む複数の例外レベルも設けられることができ、特権レベルは、装置のリソースに対してより多くのアクセスを提供する(たとえば、特権レベルは、ある制御または構成が変更されることを可能にする)。
アクセス制御ビットは、複数の異なる意味を提供し、それらの意味を異なる方法でエンコードするために使用されうることが理解されることになるが、いくつかの実施形態では、アクセス制御ビットの第1のアクセス制御ビットは、処理回路が複数のモードの第1のモードにあるとき、処理回路がユーザレベルと特権レベルの両方にあるときに、対応するメモリページからの命令の実行を防止するようにメモリ管理回路を選択的に制御する。したがって、この第1のアクセス制御ビットは、第1のモードで動作するとき、「execute never」フラグとして効果的に役立つ。
この同じ第1のアクセス制御ビットは、第2の動作モード内で異なる意味で、すなわち、処理回路がユーザレベルにあるときに、対応するメモリページからの命令の実行を防止するようにメモリ管理回路を選択的に制御するが、処理回路が特権レベルにあるときにそのメモリページからの命令を処理回路が実行できるか否かを制御しないために使用されうる。したがって、この状況では、第2のモードで動作するときの同じ第1のアクセス制御ビットは、「user execute never」ビットとして役立つ。
アクセス制御ビットの第2のアクセス制御ビットは、処理回路が特権レベルにあり、処理回路が第1の動作モードまたは第2のモードのいずれかにあるときに、対応するメモリページからの命令の実行を防止するようにメモリ管理回路を選択的に制御するために使用されることができる。したがって、アクセス制御ビットのこの第2のアクセス制御ビットは、「privilege execute never」ビットとして役立つ。
処理回路がユーザレベルで動作するときのメモリページについてのアクセス制御ビットの少なくとも一部の組合せについて、メモリ管理回路は、そのメモリページからの命令の実行を許可するが、メモリページに対する読取りアクセスおよび書込みアクセスを許可しないことは、いくつかの実施形態では以外にも有用である。
プログラミングにおいてエラーを起こし易いセキュリティを確実な方法で強化するために、メモリ管理回路は、メモリページから読取られる命令の実行を、そのメモリページ用のアクセス制御ビットがそのメモリページに対する書込みアクセスを提供するときのそのメモリページ用のアクセス制御ビットによって指定されるいずれの実行許可に係らず、防止する実行制御オーバライドパラメータに応答することができる。書込みアクセスと実行アクセスの両方を同時に装備することは、潜在的なセキュリティ脆弱性であり、したがって、改変を受け易いメモリページの実行を防止することは、セキュリティ強化である。実行制御オーバライドパラメータは、こうした制御が、単純な方法でかつページテーブルデータ自体(大きく、複雑で、変化する場合がある)と独立に設けられることを可能にする。
異なる動作モードは、種々の異なる形態をとりうるが、少なくともいくつかの実施形態では、第1の動作モードは、第1の命令セットからのプログラム命令に応答する処理回路に対応し、第2の動作モードは、第2の命令セットからのプログラム命令に応答する処理回路に対応する。
さらなる態様から見ると、本発明は、データを処理するための装置を提供し、装置は、
プログラム命令に応答しデータ処理オペレーションを実施するための処理手段であって、複数のモードで動作するように構成される、処理手段と、
前記処理手段およびメモリに結合し、ページテーブルデータに基づいて前記メモリ内に格納されたデータ値に対するアクセス許可を制御するためのメモリ管理手段とを備え、
前記メモリは、複数のメモリページに分割されたメモリアドレス空間を有し、前記ページテーブルデータは、それぞれのメモリページ用のアクセス許可を規定する、前記複数のメモリページのそれぞれ用の複数のアクセス制御ビットを含み、
前記処理手段が、アクセス許可をエンコードするために所定の数のアクセス制御ビットを使用する前記複数のモードの第1のモードにあるとき、前記メモリ管理手段は、前記アクセス制御ビットの複数の異なる組合せが、アクセス許可の同じセットを提供する冗長エンコーディングの少なくとも1つのインスタンスに応答し、
前記処理手段が、アクセス許可をエンコードするために前記所定の数のアクセス制御ビットを使用する前記複数のモードの第2のモードにあるとき、前記メモリ管理手段は、非冗長エンコーディングにおいてアクセス許可の複数の異なるセットを提供するためにアクセス制御ビットの前記複数の異なる組合せに応答する。
さらなる態様から見ると、本発明は、データを処理する方法を提供し、方法は、
プログラム命令に応答して、複数のモードで動作するように構成される処理回路によってデータ処理オペレーションを実施するステップと、
ページテーブルデータに基づいて前記メモリ内に格納されたデータ値に対するアクセス許可を制御するステップとを含み、
前記メモリは、複数のメモリページに分割されたメモリアドレス空間を有し、前記ページテーブルデータは、それぞれのメモリページ用のアクセス許可を規定する、前記複数のメモリページのそれぞれ用の複数のアクセス制御ビットを含み、
前記処理回路が、アクセス許可をエンコードするために所定の数のアクセス制御ビットを使用する前記複数のモードの第1のモードにあるとき、前記アクセス制御ビットは、前記アクセス制御ビットの複数の異なる組合せが、アクセス許可の同じセットを提供する冗長エンコーディングの少なくとも1つのインスタンスを提供し、
前記処理回路が、アクセス許可をエンコードするために前記所定の数のアクセス制御ビットを使用する前記複数のモードの第2のモードにあるとき、前記アクセス制御ビットの前記複数の異なる組合せは、非冗長エンコーディングにおいてアクセス許可の複数の異なるセットを提供する。
本発明の実施形態はまた、上述した技法を実施するための実行環境を提供するための、コンピュータプログラムによって制御される汎用コンピュータを備える仮想機械の形態で提供されることができる。
本発明の実施形態は、ここで、添付図面を参照して例としてだけ述べられる。
メモリアクセスを制御するためのページテーブルデータに応答するメモリ管理ユニットを含むデータ処理システムを概略的に示す図である。 第1の動作モードと第2の動作モードに設けられる、ページテーブルデータのアクセス制御ビットとアクセス許可との間のマッピングを示すテーブルである。 アクセス許可をデコードするメモリ管理ユニットのアクションを概略的に示すフロー図である。 上述した技法を実装するための仮想機械環境を概略的に示す図である。
図1は、メモリ管理ユニット6およびキャッシュメモリ8を介して主メモリ10に結合された、プロセッサコアの形態の処理回路4を含むデータ処理システム2を概略的に示す。処理回路4は、命令パイプライン22に沿って渡されるプログラム命令に応答して命令デコーダ20によって生成される制御信号によって制御される、汎用レジスタバンク12、マルチプレクサ14、シフター16、および加算器18を備えるデータ経路を含む。命令デコーダ20は、第1の命令セットと第2の命令セットの両方からの命令をデコードすることができる。モードレジスタ24は、命令デコーダ20を制御するモード値を格納して、命令パイプライン22からのプログラム命令を、第1の命令セットからの命令(ISA0)または第2の命令セットからの命令(ISA1)としてデコードする。
処理回路4は、2つの異なる命令セットの使用に対応する上述した2つの異なるモードで動作すると共に、これらのモードのそれぞれのモード内で複数の異なる例外レベル、すなわちユーザレベルと特権レベルで動作することができる。例外レベルレジスタ26は、処理回路4の目下の例外レベルを規定するデータを格納する。例外レベルレジスタ26で示される目下の例外レベルに基づいて、処理回路4は、データ処理システム2内の異なるリソースにアクセスすることができる。当業者が情通しているように、特権レベルの場合、ユーザレベルの場合よりリソースに対するより多くのアクセスが、通常、与えられる。たとえば、いくつかの構成パラメータまたは命令は、特権レベルにおけるチャージングまたは実行について利用可能である可能性があるだけであり、ユーザレベルにおいて利用可能でない可能性がある。
メモリアクセスを生成するときの処理回路4は、メモリ管理ユニット6によって物理アドレスPAに変換される仮想アドレスVAを生成する。メモリ管理ユニット6はまた、主メモリ10のメモリアドレス空間がその中に分割されるメモリページに関連するアクセス許可を管理の責任もある。メモリ管理ユニット6内の変換ルックアサイドバッファ28は、主メモリ10内に格納されたページテーブルデータ30のキャッシュされたコピーを使用して、大部分の仮想−物理アドレス変換を実施する。このページテーブルデータは、仮想−物理アドレス変換を指定すると共に、アクセス制御ビットを使用してアクセス許可を指定する。
メモリアクセスが、処理回路4からメモリ管理ユニット6によって受信されると、目下のモードおよび目下の例外レベルが、アクセス許可に対してチェックされて、メモリアクセスが公認されるか否かが判定される。メモリアクセスが公認されるか否かはまた、メモリアクセスが、読取りメモリアクセスであるか、書込みメモリアクセスであるか、または関係するメモリページから実行用の命令をフェッチしようとするアクセスであるかに依存することになる。
許可されるメモリアクセスについてメモリ管理ユニット6から出力される変換済み物理アドレスPAは、キャッシュメモリ8に渡される。キャッシュメモリ8が、関係するデータを格納している場合、そのメモリアクセスは、キャッシュメモリ8によってサービスされる。キャッシュメモリ8が、関係するデータを格納していない場合、メモリアクセスは、主メモリ10に進む。
図1に示すように、主メモリは、複数のメモリページ34、36、38に分割されたメモリアドレス空間32を含み、複数のメモリページ34、36、38は、異なるサイズおよびそれらに関連する異なるアクセス許可を有する。メモリアドレス空間32内には、ページテーブルデータ30も含まれ、ページテーブルデータ30は、仮想−物理アドレスマッピングを規定するデータ、ならびに、処理回路の動作モードおよび処理回路4の例外レベルに応じてアクセス許可を制御するためのアクセス制御ビットを格納する。
図2は、所与のメモリページについてページテーブルデータ30内に格納されたセクセツ制御ビットと、第1の動作モードおよび第2の動作モードならびにそれらの動作モード内の異なる例外レベルにおいて、これらのアクセス制御ビットによって提供されるアクセス許可との間の関係を示す表である。見てわかるように、この例示的な実施形態では、4つのアクセス制御ビットが存在する。
第1のアクセス制御ビット40は、処理回路4が第1の命令セットを実行する第1のモードにあるときにユーザレベルと特権レベルの両方で適用可能な(execute never)非実行制御ビットに対応する。処理回路4が第2の命令セットを実行するときの第2のモードでは、第1のアクセス制御ビット40は、ユーザレベルでそのメモリページについて実行が許可されるか否かを指定し、また、特権レベルにあるときにそのメモリページから実行が許可されるか否かを制御できない、(user execute never)ユーザ非実行制御ビットとして役立つ。
第2のアクセス制御ビット42は、(privilege execute never)特権実行非制御ビットとして役立つ。第2の動作モードでは、privilege execute never制御ビットである第2のアクセス制御ビット42およびuser execute never制御ビットである第1のアクセス制御ビット40は、独立にかつ直交して動作する。第1の動作モードでは、execute never制御ビットとして働く第1のアクセス制御ビット40は、privilege execute never制御ビットとして役立つ第2のアクセス制御ビット42の指示をオーバライドすることができる。そのため、メモリページが、実行されない(never execute)メモリページであることを第1のアクセス制御ビット40が指示する場合、実行許可は、特権レベル実行が許可されることをprivilege execute never制御ビット42が指示しても、そのメモリページ内で許可されないことになる。
第1の動作モードにあるときに第2のアクセス制御ビット42の指示をオーバライドする第1のアクセス制御ビット40のこの挙動は、図2でマークを付けられるように第1の動作モード内で冗長エンコーディングをもたらす。そのため、アクセス制御ビットの異なる組合せは、アクセス制御ビットのエンコーディングビット空間の消費に対応する、第1の動作モード内の同じアクセス許可をもたらす。
第2の動作モードでは、アクセス制御ビットは別様にデコードされ、この冗長性が取除かれて、アクセス制御ビットの異なる組合せによって与えられるアクセス許可がアクセス許可の異なる組合せに対応する非冗長エンコーディングが提供される。第2のモードで与えられるアクセス許可の組合せの1つは、第1のモードで与えられるアクセス許可の単一の組合せと同じであり、それにより、後方互換性が促進される。アクセス許可のこの同じセットは、図2において「#」でマークを付けられる。
処理回路4の第1の動作モード内で、メモリページは、実行可能であるために読取り可能でなければならない。この条件は、処理回路4の第2の動作モードで適用されない。図2において「」でマーク付けされた、実行のみ用の(execute only)アクセス許可であるアクセス許可は、第1の動作モード内でのエンコーディングによって提供されないアクセス許可の形態に対応する。
図2に示すように、アクセス制御ビットのエンコーディングの上半分は、アクセス制御ビットの少なくとも一部の組合せについて書込みアクセスを提供し、一方、表の下半分では、書込みアクセスが許可されない。書込みアクセスが利用可能である時に提供される実行許可は、図1に示すメモリ管理ユニット6の制御レジスタ44内に格納された実行制御オーバライドパラメータによってオーバライドされることができる。この実行制御オーバライドパラメータは、特権レベルソフトウェア制御下で書込まれることができる、または、さらに高いセキュリティが所望される場合には、ハードウェア制御下で設定されることができる。実行制御オーバライドパラメータが設定されると、書込み可能であるメモリページについての実行許可は、実行許可が許容されることを第1のアクセス制御ビット40および/または第2のアクセス制御ビット42が指示しても、許可されないことになる。
図3は、メモリアクセスが受信されるときにアクセス許可をデコードするときのメモリ管理ユニット6のアクションを示すフロー図である。ステップ46にて、メモリ管理ユニット6は、メモリアクセスが受信されるのを待つ。ステップ48にて、メモリアクセスのその仮想アドレスに対応するメモリページについてのアクセス制御ビットが読取られる。アクセス制御ビットのこうした読取りは、関係するメモリページが、最近アクセスされたか、または、別法として、当業者が情通するように、ページテーブルデータ30を通してページテーブルウォークを必要とする場合、変換ルックアサイドバッファ28内のルックアップによって実施されることができる。
ステップ50にて、アクセス制御ビットは、処理回路の目下のモード(たとえば、処理回路が、第1の命令セットの命令を実行しているか、または、第2の命令セットの命令を実行しているか)ならびに目下の例外レベル(たとえば、処理回路が、ユーザレベルにあるか、または、特権レベルにあるか)に基づいてデコードされて、アクセス許可が与えられることが決定される。このデコーディングは、図2の表による。
ステップ52にて、デコードされたアクセス許可が、試行されるメモリアクセスと比較され、試行されるメモリアクセスが、許可されるメモリアクセスであるか否かについての判定が行われる。メモリアクセスが許可されない場合、ステップ54は、メモリアボート(abort)を生成する。メモリアクセスが許可される場合、ステップ56は、受信された仮想アドレスに対応する物理アドレスを出力し、メモリアクセスは、適宜キャッシュメモリ8または主メモリ10に渡るように許可される。
図4は、使用されることができる仮想機械実装態様を示す。先に述べた実施形態は、関係する技法をサポートする特定の処理ハードウェアを動作させるための装置および方法によって本発明を実装するが、ハードウェアデバイスのいわゆる仮想機械実装態様も可能である。これらの仮想機械実装態様は、仮想機械プログラム510をサポートするホストオペレーティングシステム520を実行するホストプロセッサ530上に実行される。通常、適度な速度で実行する仮想機械実装態様を提供するためによりパワフルなプロセッサが必要とされるが、こうした手法は、互換性または再使用のために別のプロセッサに固有のコードを実行するという欲求が存在するときなど、ある状況で正当化されることができる。仮想機械プログラム510は、アプリケーションプログラム500にアプリケーションプログラムインタフェースを提供し、そのアプリケーションプログラムインタフェースは、仮想機械プログラム510によってモデル化されるデバイスである現実のハードウェアによって提供されることになるアプリケーションプログラムインタフェースと同じである。そのため、上述したメモリアクセスの制御を含むプログラム命令は、仮想機械ハードウェアとのその相互作用をモデル化するために、仮想機械プログラム510を使用してアプリケーションプログラム500内から実行されることができる。
40 第1のアクセス制御ビット
42 第2のアクセス制御ビット

Claims (24)

  1. データを処理するための装置であって、
    データ処理オペレーションを実施するプログラム命令に応答し、複数のモードで動作するように構成された処理回路と、
    前記処理回路およびメモリに結合し、ページテーブルデータに基づいて前記メモリ内に格納されたデータ値に対するアクセス許可を制御するように構成されたメモリ管理回路とを備え、
    前記メモリは、複数のメモリページに分割されたメモリアドレス空間を有し、前記ページテーブルデータは、それぞれのメモリページ用のアクセス許可を規定する、前記複数のメモリページのそれぞれ用の複数のアクセス制御ビットを含み、
    前記処理回路が、アクセス許可をエンコードするために所定の数のアクセス制御ビットを使用する前記複数のモードの第1のモードにあるとき、前記メモリ管理回路は、前記アクセス制御ビットの複数の異なる組合せが、アクセス許可の同じセットを提供する冗長エンコーディングの少なくとも1つのインスタンスに応答し、
    前記処理回路が、アクセス許可をエンコードするために前記所定の数のアクセス制御ビットを使用する前記複数のモードの第2のモードにあるとき、前記メモリ管理回路は、非冗長エンコーディングにおいてアクセス許可の複数の異なるセットを提供するアクセス制御ビットの前記複数の異なる組合せに応答する装置。
  2. アクセス許可の前記複数の異なるセットは、前記複数のモードの前記第1のモードの動作と前記複数のモードの前記第2のモードの動作との間で互換性がある、アクセス制御ビット値のセットを提供するアクセス許可の前記同じセットを含む請求項1に記載の装置。
  3. 前記モードの前記第1のモードにおいて、前記アクセス許可は、メモリページ内に格納されたデータ値が、前記メモリページ内の前記データ値が実行可能であるために読取り可能であることを指定しなければならない請求項1および2のいずれか1項に記載の装置。
  4. 前記モードの前記第2のモードにおいて、前記アクセス許可は、メモリページ内に格納されたデータ値が、前記メモリページ内の前記データ値が実行可能であるために読取り可能であることを指定する必要がなく、それにより、前記データ値は、データとして読取られるのではなく、命令として実行されることができる請求項3に記載の装置。
  5. 前記処理回路は、前記複数のモードのそれぞれのモード内で複数の例外レベルで動作するように構成され、前記複数の例外レベルは、ユーザレベルおよび特権レベルを含み、前記特権レベルは、装置のリソースに対してより多くのアクセスを提供する請求項1から4項のいずれか1項に記載の装置。
  6. 前記アクセス制御ビットの第1のアクセス制御ビットは、前記処理回路が前記複数のモードの前記第1のモードにあるとき、前記処理回路が前記ユーザレベルと前記特権レベルの両方にあるときに、対応するメモリページからの命令の実行を防止するように前記メモリ管理回路を選択的に制御する請求項5に記載の装置。
  7. 前記アクセス制御ビットの第1のアクセス制御ビットは、前記処理回路が前記複数のモードの前記第2のモードにあるとき、前記処理回路が前記特権レベルではなく前記ユーザレベルにあるときに、対応するメモリページからの命令の実行を防止するように前記メモリ管理回路を選択的に制御する請求項6に記載の装置。
  8. 前記アクセス制御ビットの第2のアクセス制御ビットは、前記処理回路が前記複数のモードの前記第1のモードと前記複数のモードの前記第2のモードの両方にあるとき、前記処理回路が前記特権レベルにあるときに、対応するメモリページからの命令の実行を防止するように前記メモリ管理回路を選択的に制御する請求項6および7のいずれか1項に記載の装置。
  9. 前記処理回路がユーザレベルで動作するときのメモリページについての前記アクセス制御ビットの少なくとも一部の組合せについて、前記メモリ管理回路は、前記メモリページからの命令の実行を許可するが、前記メモリページに対する読取りアクセスおよび書込みアクセスを許可しない請求項4または請求項5に記載の装置。
  10. 前記アクセス制御ビットがメモリページに対する書込みアクセスを提供するとき、前記メモリ管理回路は、前記アクセス制御ビットによって指定されるいずれの実行許可に係らず、前記メモリページから読取られる命令の実行を防止する実行制御オーバライドパラメータに応答する請求項1から9のいずれか1項に記載の装置。
  11. 前記複数のモードの前記第1のモードで動作するとき、前記処理回路は、第1の命令セットからのプログラム命令に応答し、前記複数のモードの前記第2のモードで動作するとき、前記処理回路は、第2の命令セットからのプログラム命令に応答する請求項1から10のいずれか1項に記載の装置。
  12. データを処理するための装置であって、
    プログラム命令に応答しデータ処理オペレーションを実施するための処理手段であって、複数のモードで動作するように構成される、処理手段と、
    前記処理手段およびメモリに結合し、ページテーブルデータに基づいて前記メモリ内に格納されたデータ値に対するアクセス許可を制御するためのメモリ管理手段とを備え、
    前記メモリは、複数のメモリページに分割されたメモリアドレス空間を有し、前記ページテーブルデータは、それぞれのメモリページ用のアクセス許可を規定する、前記複数のメモリページのそれぞれ用の複数のアクセス制御ビットを含み、
    前記処理手段が、アクセス許可をエンコードするために所定の数のアクセス制御ビットを使用する前記複数のモードの第1のモードにあるとき、前記メモリ管理手段は、前記アクセス制御ビットの複数の異なる組合せが、アクセス許可の同じセットを提供する冗長エンコーディングの少なくとも1つのインスタンスに応答し、
    前記処理手段が、アクセス許可をエンコードするために前記所定の数のアクセス制御ビットを使用する前記複数のモードの第2のモードにあるとき、前記メモリ管理手段は、非冗長エンコーディングにおいてアクセス許可の複数の異なるセットを提供するためにアクセス制御ビットの前記複数の異なる組合せに応答する装置。
  13. データを処理する方法であって、
    プログラム命令に応答して、複数のモードで動作するように構成される処理回路によってデータ処理オペレーションを実施するステップと、
    ページテーブルデータに基づいてメモリ内に格納されたデータ値に対するアクセス許可を制御するステップとを含み、
    前記メモリは、複数のメモリページに分割されたメモリアドレス空間を有し、前記ページテーブルデータは、それぞれのメモリページ用のアクセス許可を規定する、前記複数のメモリページのそれぞれ用の複数のアクセス制御ビットを含み、
    前記処理回路が、アクセス許可をエンコードするために所定の数のアクセス制御ビットを使用する前記複数のモードの第1のモードにあるとき、前記アクセス制御ビットは、前記アクセス制御ビットの複数の異なる組合せが、アクセス許可の同じセットを提供する冗長エンコーディングの少なくとも1つのインスタンスを提供し、
    前記処理回路が、アクセス許可をエンコードするために前記所定の数のアクセス制御ビットを使用する前記複数のモードの第2のモードにあるとき、前記アクセス制御ビットの前記複数の異なる組合せは、非冗長エンコーディングにおいてアクセス許可の複数の異なるセットを提供する方法。
  14. アクセス許可の前記複数の異なるセットは、前記複数のモードの前記第1のモードの動作と前記複数のモードの前記第2のモードの動作との間で互換性がある、アクセス制御ビット値のセットを提供するアクセス許可の前記同じセットを含む請求項13に記載の方法。
  15. 前記モードの前記第1のモードにおいて、前記アクセス許可は、メモリページ内に格納されたデータ値が、前記メモリページ内の前記データ値が実行可能であるために読取り可能であることを指定しなければならない請求項13および14のいずれか1項に記載の方法。
  16. 前記モードの前記第2のモードにおいて、前記アクセス許可は、メモリページ内に格納されたデータ値が、前記メモリページ内の前記データ値が実行可能であるために読取り可能であることを指定する必要がなく、それにより、前記データ値は、データとして読取られるのではなく、命令として実行されることができる請求項15に記載の方法。
  17. 前記処理回路は、前記複数のモードのそれぞれのモード内で複数の例外レベルで動作するように構成され、前記複数の例外レベルは、ユーザレベルおよび特権レベルを含み、前記特権レベルは、方法を実施する装置のリソースに対してより多くのアクセスを提供する請求項13から16項のいずれか1項に記載の方法。
  18. 前記アクセス制御ビットの第1のアクセス制御ビットは、前記処理回路が前記複数のモードの前記第1のモードにあるとき、前記処理回路が前記ユーザレベルと前記特権レベルの両方にあるときに、対応するメモリページからの命令の実行の選択的な防止を制御する請求項17に記載の方法。
  19. 前記アクセス制御ビットの第1のアクセス制御ビットは、前記処理回路が前記複数のモードの前記第2のモードにあるとき、前記処理回路が前記特権レベルではなく前記ユーザレベルにあるときに、対応するメモリページからの命令の実行の選択的な防止を制御する請求項18に記載の方法。
  20. 前記アクセス制御ビットの第2のアクセス制御ビットは、前記処理回路が前記複数のモードの前記第1のモードと前記複数のモードの前記第2のモードの両方にあるとき、前記処理回路が前記特権レベルにあるときに、対応するメモリページからの命令の実行を防止するようにメモリ管理回路を選択的に制御する請求項18および19のいずれか1項に記載の方法。
  21. 前記処理回路がユーザレベルで動作するときのメモリページについての前記アクセス制御ビットの少なくとも一部の組合せについて、前記メモリページからの命令の実行は許可されるが、前記メモリページに対する読取りアクセスおよび書込みアクセスは許可されない請求項16または請求項17に記載の方法。
  22. 前記アクセス制御ビットがメモリページに対する書込みアクセスを提供するとき、実行制御オーバライドパラメータは、前記アクセス制御ビットによって指定されるいずれの実行許可に係らず、前記メモリページから読取られる命令の実行の防止を制御するために役立つ請求項13から21のいずれか1項に記載の方法。
  23. 前記複数のモードの前記第1のモードで動作するとき、前記処理回路は、第1の命令セットからのプログラム命令に応答し、前記複数のモードの前記第2のモードで動作するとき、前記処理回路は、第2の命令セットからのプログラム命令に応答する請求項13から22のいずれか1項に記載の方法。
  24. 請求項13から23のいずれか1項に記載の方法を実施するようにコンピュータを制御するコンピュータプログラムを含む仮想機械。
JP2013523661A 2010-08-11 2011-06-13 メモリアクセス制御 Active JP5718463B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1013466.6A GB2482700A (en) 2010-08-11 2010-08-11 Memory access control
GB1013466.6 2010-08-11
PCT/GB2011/051089 WO2012020236A1 (en) 2010-08-11 2011-06-13 Memory access control

Publications (2)

Publication Number Publication Date
JP2013533567A true JP2013533567A (ja) 2013-08-22
JP5718463B2 JP5718463B2 (ja) 2015-05-13

Family

ID=42931473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013523661A Active JP5718463B2 (ja) 2010-08-11 2011-06-13 メモリアクセス制御

Country Status (10)

Country Link
US (1) US8788775B2 (ja)
EP (1) EP2603872B1 (ja)
JP (1) JP5718463B2 (ja)
KR (1) KR101861544B1 (ja)
CN (1) CN103069398B (ja)
GB (1) GB2482700A (ja)
IL (1) IL223732A (ja)
MY (1) MY168732A (ja)
TW (1) TWI514135B (ja)
WO (1) WO2012020236A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020521222A (ja) * 2017-05-25 2020-07-16 エイアールエム リミテッド 機能に関連付けられるパーミッションを解釈するための装置及び方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
US9720843B2 (en) 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US20140331019A1 (en) * 2013-05-06 2014-11-06 Microsoft Corporation Instruction set specific execution isolation
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
KR20150062745A (ko) * 2013-11-29 2015-06-08 한국전자통신연구원 가상화 서비스 장치 및 방법
CN103824019B (zh) * 2014-02-19 2017-03-08 青岛海信电器股份有限公司 一种应用于数字电视的数据处理方法、处理器及数字电视
US10489309B2 (en) * 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
US20160210069A1 (en) * 2015-01-21 2016-07-21 Bitdefender IPR Management Ltd. Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
TWI602185B (zh) * 2015-03-04 2017-10-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
GB2543520B (en) * 2015-10-20 2019-06-19 Advanced Risc Mach Ltd Memory access instructions
GB2547912B (en) * 2016-03-02 2019-01-30 Advanced Risc Mach Ltd Register access control
EP3264317B1 (en) * 2016-06-29 2019-11-20 Arm Ltd Permission control for contingent memory access program instruction
GB2562102B (en) * 2017-05-05 2019-09-04 Advanced Risc Mach Ltd An apparatus and method for managing use of capabilities
US20200073822A1 (en) * 2018-08-30 2020-03-05 Micron Technology, Inc. Security Configuration for Memory Address Translation from Object Specific Virtual Address Spaces to a Physical Address Space
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11544069B2 (en) 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors
GB2611823B (en) * 2021-10-18 2023-10-11 Advanced Risc Mach Ltd Technique for handling sealed capabilities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0192856A (ja) * 1987-07-01 1989-04-12 Digital Equip Corp <Dec> アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
JP2001202287A (ja) * 1999-10-01 2001-07-27 Hitachi Ltd 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JP2008257734A (ja) * 2007-04-03 2008-10-23 Arm Ltd メモリドメインを基にしたデータ処理システム内のセキュリティ制御

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
JPS63240657A (ja) * 1987-03-28 1988-10-06 Toshiba Corp 記憶保護装置
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US5075845A (en) * 1989-12-22 1991-12-24 Intel Corporation Type management and control in an object oriented memory protection mechanism
US6349355B1 (en) * 1997-02-06 2002-02-19 Microsoft Corporation Sharing executable modules between user and kernel threads
EP1182550A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Task based priority arbitration
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US7278030B1 (en) * 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
US7024544B2 (en) * 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7213125B2 (en) * 2004-07-31 2007-05-01 Hewlett-Packard Development Company, L.P. Method for patching virtually aliased pages by a virtual-machine monitor
US20060218425A1 (en) * 2005-02-25 2006-09-28 Zhimin Ding Integrated microcontroller and memory with secure interface between system program and user operating system and application
US20090106498A1 (en) * 2007-10-23 2009-04-23 Kevin Michael Lepak Coherent dram prefetcher

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0192856A (ja) * 1987-07-01 1989-04-12 Digital Equip Corp <Dec> アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
JP2001202287A (ja) * 1999-10-01 2001-07-27 Hitachi Ltd 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JP2008257734A (ja) * 2007-04-03 2008-10-23 Arm Ltd メモリドメインを基にしたデータ処理システム内のセキュリティ制御

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020521222A (ja) * 2017-05-25 2020-07-16 エイアールエム リミテッド 機能に関連付けられるパーミッションを解釈するための装置及び方法
JP7280195B2 (ja) 2017-05-25 2023-05-23 アーム・リミテッド 機能に関連付けられるパーミッションを解釈するための装置及び方法

Also Published As

Publication number Publication date
US8788775B2 (en) 2014-07-22
US20120042144A1 (en) 2012-02-16
WO2012020236A1 (en) 2012-02-16
CN103069398A (zh) 2013-04-24
TWI514135B (zh) 2015-12-21
MY168732A (en) 2018-11-29
GB2482700A (en) 2012-02-15
CN103069398B (zh) 2016-03-09
JP5718463B2 (ja) 2015-05-13
EP2603872B1 (en) 2015-08-19
IL223732A (en) 2015-07-30
GB201013466D0 (en) 2010-09-22
EP2603872A1 (en) 2013-06-19
TW201207615A (en) 2012-02-16
KR20130136436A (ko) 2013-12-12
KR101861544B1 (ko) 2018-05-28

Similar Documents

Publication Publication Date Title
JP5718463B2 (ja) メモリアクセス制御
JP5571201B2 (ja) ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限
CN111837111B (zh) 用于存储有界指针的装置和方法
JP6893216B2 (ja) 有界ポインタの使用を制御するための装置及び方法
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
CN110663024B (zh) 用于诠释与能力相关联的权限的装置及方法
JP7445431B2 (ja) 命令の実行を制御する装置および方法
CN111771188A (zh) 带链接分支指令的分支目标变体
JP6944444B2 (ja) メモリアクセス命令
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术
KR20230170976A (ko) 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140715

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: 20150223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150318

R150 Certificate of patent or registration of utility model

Ref document number: 5718463

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250