JP6511446B2 - データ・アクセスのアクセス属性の扱い - Google Patents

データ・アクセスのアクセス属性の扱い Download PDF

Info

Publication number
JP6511446B2
JP6511446B2 JP2016535521A JP2016535521A JP6511446B2 JP 6511446 B2 JP6511446 B2 JP 6511446B2 JP 2016535521 A JP2016535521 A JP 2016535521A JP 2016535521 A JP2016535521 A JP 2016535521A JP 6511446 B2 JP6511446 B2 JP 6511446B2
Authority
JP
Japan
Prior art keywords
data
attribute
access instruction
data access
software
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
Application number
JP2016535521A
Other languages
English (en)
Other versions
JP2016532205A (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 JP2016532205A publication Critical patent/JP2016532205A/ja
Application granted granted Critical
Publication of JP6511446B2 publication Critical patent/JP6511446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の技術はデータ処理の分野に関する。より詳細には、本発明の技術はデータ処理装置でのデータ・アクセスのアクセス属性の扱いに関する。
データ・ストアからのデータにアクセスするためのデータ・アクセス命令には、そのデータ・アクセスがどのように行われるかを制御するアクセス属性が備わることがある。例えば、あるデータ・アクセスを他のデータ・アクセスに対して順序に従わずに処理してもよいか否か、及びアクセスされたデータをいつ又はどのようにキャッシュすべきかをアクセス属性が指定することがある。しかし、いくつかのアクセス属性はデータ・アクセスの実行に関連する遅延(レイテンシ:latency)に影響することがある。実時間システム(例えば、自動車又は工業用途に使用される装置)では、多くの場合、特定の処理動作が完了するために要する時間に関して、確定的なふるまい(behavior)が行われることが望ましく、したがって、一定のデータ・アクセスに関連する長い遅延は問題になる可能性がある。このことは特に、多数の異なるソフトウェア・アプリケーションが単一のプロセッサ内で組み合わされているときに、1つのアプリケーションが遅延の大きなデータ・アクセスを開始した場合、実時間のクリティカルな動作を行っている別のソフトウェア・アプリケーションが妨害されることがある。本発明の技術は、これらの問題の解決を目指す。
1つの態様から見ると、本発明の技術は、
データを処理するように構成された処理回路と、
データを保管するように構成されたデータ・ストアと
を備えるデータ処理装置を提供し、
前記処理回路が第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを第1の特権レベルより高い第2の特権レベルで実行するように構成されており、
データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、データ処理装置が、第1のソフトウェアが設定する少なくとも1つの第1の属性及び第2のソフトウェアが設定する少なくとも1つの第2の属性に基づいて前記データ・アクセス命令のための少なくとも1つのアクセス属性を判断するように構成され、前記少なくとも1つの第1の属性及び前記少なくとも1つの第2の属性がそれぞれ、データ・アクセス命令の実行の中断が可能であるか否かを指定し、
前記少なくとも1つの第2の属性がデータ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、データ処理装置が、前記少なくとも1つの第1の属性がそのデータ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性がそのデータ・アクセス命令の実行を中断可能と設定していると判断するように構成される。
あるタイプのデータ・アクセス属性は、データ・アクセス命令の実行が中断可能か否かを指定してもよい。いくつかのタイプのデータ・アクセス命令は実行に長い時間を要することがあるので、実時間システムでは、そのデータ・アクセス命令がデータ・アクセスの途中で中断可能であるか否かが重要であり得る。中断不可能とマークされているデータ・アクセスの途中に、直ちにサービスを受ける必要のある割り込みなどの実時間(リアルタイム)クリティカルイベントが発生すると、処理回路はデータ・アクセスを完了するために割り当てられ、その結果、望ましくない遅延(delay)が実時間クリティカルイベントの処理に生じることがある。
処理装置は、第1の特権レベルで実行する第1のソフトウェア及び、第1の特権レベルより高い第2の特権レベルで実行する第2のソフトウェアを含む、いくつかのソフトウェアをサポートしてもよい。ソフトウェアの層はそれぞれ、あるデータ・アクセス命令に独自のアクセス属性を設定してもよく、少なくとも1つの第1の属性が第1のソフトウェアによって指定され、少なくとも1つの第2の属性が第2のソフトウェアによって指定され、個々の属性はそのデータ・アクセス命令の実行が中断可能であるか否かを指定する。通常の方式では、同じデータ・アクセスに複数の異なるアクセス属性が設定されていると、そのデータ・アクセスの実際の属性として、最も制限的な属性が選択されることになる。例えば、そのアクセスが中断不可能であると第1のソフトウェアが指定する場合は通常、この指定が、より制限性の低い、データ・アクセスの中断を許可するあらゆる属性に優先する。しかし、データ・アクセスの実行に長時間を要する場合は、制限性の高い属性は実時間クリティカルイベントに対するサービスの能力に影響することがある。
したがって、所定のタイプのデータ・アクセス命令について、第2のソフトウェアが設定した少なくとも1つの第2の属性がそのデータ・アクセス命令の実行を中断可能と指定しているときは、処理回路は、第1のソフトウェアが設定した少なくとも1つの第1の属性が実行を中断不可能と指定していたとしても、実行は中断可能であるとアクセス属性が指定していると判断してもよい。よって、実時間クリティカルイベントの発生時にデータ・アクセス命令が確実に中断され得るように、第1のソフトウェアが設定した属性が、より高い特権レベルにある第2のソフトウェアが設定した属性に無効にされてよい。このことによって、例えば、長時間の割り込み処理遅延が防止される。人は通常、アクセスの処理を、そのデータ・アクセスに設定された相反する属性のうち最も制限的なものを使って行うであろうから、このアプローチは直感に反するものである。
この技術はどのようなデータ・アクセス命令にも使用できるが、特に、複数の処理サイクルに亘って実行され、中断不可能とマークされた場合に長時間の遅延を発生させる可能性のある命令に有用である。
データ・アクセス命令の実行が中断可能であれば、割り込み、例外、又は別の実時間クリティカルイベントが発生したときに、その命令の実行が保留されてもよい。イベントの処理が終われば、そのデータ・アクセス命令の実行が先頭から再起動されてもよいし、可能なら、そのデータ・アクセスが中断された位置から再開されてもよい。
本発明の技術は概して、処理回路によって実行されるあらゆるソフトウェア内で発生する、所定のタイプのデータ・アクセス命令に適用されてもよい。或いは、1つ又は複数の特定のタイプのソフトウェア、具体的には第1のソフトウェア自体の中、又は第1のソフトウェアの制御下で実行するさらに別のソフトウェアの中に所定のタイプのデータ・アクセス命令が出現するときにのみ、前述したとおりのアクセス属性の判断が使用されてもよい。第2のソフトウェア内で所定のタイプのデータ・アクセス命令に遭遇した場合は、そのアクセス属性は第2のソフトウェアが指定する第2の属性に基づいて判断され得、第1のソフトウェアが指定する第1の属性は考慮されない。よって、発生する所定のタイプのデータ・アクセス命令の全てに対して前述した属性判断を使用する必要はない。
第2のソフトウェアが第1のソフトウェアよりも高い特権を有しており、第1及び第2のソフトウェアは、異なる特権レベルで動作する任意のソフトウェアでもよい。本明細書では、「より高い特権レベル」とは、この特権レベルで動作しているソフトウェアが「より低い特権レベル」で動作しているソフトウェアよりも多くの権利を有することを意味する(例えば、第1のソフトウェアからアクセス不可能なデータに第2のソフトウェアがアクセス可能であり得ること、又は、第1のソフトウェアには利用不可能な一定のアクションを第2のソフトウェアが実施可能であり得ることなど)。第1及び第2の特権レベルは、3つ以上のレベルの中の任意の2つの特権レベルでもよい。異なる特権レベルは数値で表されてもよい。いくつかの実施例では高い方の数値がより高い特権レベルを表してもよく(例えば、特権レベル3が特権レベル2よりも高い権利を有してもよい)、その他の実施例では低い方の数値がより高い特権レベルを表してもよい(例えば、特権レベル0が特権レベル1よりも高い権利を有してもよい)。
例えば、実時間システムが仮想化を許可し、そこで同一のデバイス上に複数のオペレーティング・システムが共存し、ハイパーバイザがそれらのオペレーティング・システムを管理することがある。このタイプの環境では、第1のソフトウェアがオペレーティング・システムの1つを含み、第2のソフトウェアがハイパーバイザを含んでもよい。オペレーティング・システム及びハイパーバイザはそれぞれ別々に、データ・アクセスのアクセス属性を定めてもよい。所定のタイプのデータ・アクセス命令の実行が中断可能であるとハイパーバイザが指定する一方で、その命令が中断不可能であることをオペレーティング・システムが要求する場合には、ハイパーバイザがオペレーティング・システムに優先して、オペレーティング・システムが設定する属性に関わらず、そのデータ・アクセスが中断可能とマークされるようにすることができる。このことにより、ゲストのオペレーティング・システムが遅延の大きい不適切なシナリオを作り出すことが防がれる。
本発明の技術は、長い遅延が懸念されるあらゆるタイプのデータ・アクセス命令に適用され得るが、特に、データ・ストアから複数のレジスタにデータをロードするためのロード・マルチプル命令又は、複数のレジスタからデータ・ストアにデータを保管するためのストア・マルチプル命令に有用である。通常、ロード・マルチプル又はストア・マルチプル命令はレジスタのリストを指定することがあり、ロード又はストア命令の実行には複数の処理サイクルが必要になり、サイクルの数はリスト内のレジスタの数によって異なる。ロード・マルチプル又はストア・マルチプル命令が中断不可能と指定され、複数のロード又はストアを完了することがプロセッサにゆだねられると、通常、それらの複数のロード又はストアが完了するまで他の演算にサービスを行うことができない。このことは、その他のイベントの処理に望ましくない長い遅延を引き起こす可能性があり、それらのイベントは実時間クリティカルである可能性がある。これに対処するために、第1のソフトウェアがそのような命令を中断不可能とマークしたとしても、より高い特権レベルにある第2のソフトウェアが、必要な場合には確実にロード・マルチプル及びストア・マルチプル命令が中断可能(且つ、後に再実行可能)になるように覆すことができる。
いくつかのシステムでは、あるデータ・アクセスが中断可能であると第2のソフトウェアが指定し、且つ第1のソフトウェアがそのデータ・アクセスが中断不可能であると指定する場合には、常に第2のソフトウェアが第1のソフトウェアに優先してもよい。しかし、状況によっては、そのデータ・アクセスを中断不可能のままにしておくことが望ましいことがある。したがって、処理装置は制御値を保持してもよい。少なくとも1つの第2の属性がデータ・アクセスの中断を許可している場合、処理回路は制御値に基づいて、そのデータ・アクセス命令の実行を中断できるか判断してもよい。制御値の第1の値は、第1の属性が実行を中断不可能と指定している場合でも、実行が中断可能であることを示すことができる(第2のソフトウェアが指定した属性が第1のソフトウェアが指定した属性に優先するように)。制御値の第2の値は、実行が中断可能か否かは第1の属性に基づいて判断されるべきであるか否かを示してもよい(第1及び第2の属性のうち、より制限的な方が選択されるように)。制御値によって、システムは、アクセスが第2のソフトウェアによって強制的に中断不可能にされるか否かを選択することができる。遅延クリティカル(latency-critical)イベントが予想される場合には制御値を第1の値に設定して実時間要件が確実に満たされるようにすることができ、そのようなイベントが予想されず、割り込み遅延が問題にならないと予想される場合には制御値を第2の値に設定して、第1のソフトウェアの定める方法でデータ・アクセスを制御できるようにしてもよい。制御値は、例えばハイパーバイザなどの第2のソフトウェアに応答して、処理回路によって第1又は第2の値に設定されてもよい。
第2のソフトウェアが第1のソフトウェアの設定した中断不可能な第1の属性に優先してデータ・アクセスを中断可能と設定してもなお、処理回路は、第1のソフトウェアの設定した少なくとも1つの第1の属性に基づいて、データ・アクセス命令の他の特性を少なくとも1つ判断してもよい。例えば、この他の特性は割り込み処理遅延に影響せず、したがって実時間クリティカルではない何らかの特性でもよい。よって、そのデータ・アクセス命令に定められるアクセス属性は、第1及び第2のソフトウェアが定める特性の組み合わせに対応してもよい。
例えば、この他の特性は、所定のタイプのデータ・アクセス命令の実行を他のデータ・アクセス命令の実行に対してリオーダー(reorder:再配列)できるか否かの指示を含んでもよい。また、この他の特性は、データ・アクセス命令に応答してアクセスされたデータがどのようにキャッシュされるかを制御するためのキャッシュ・ポリシー情報を含んでもよい。例えば、キャッシュ・ポリシーは、書き込みアクセスをライト・スルー・アクセス、ライト・バック・アクセス、又はライト・アロケート・アクセスのいずれとして扱うべきかを指定してもよく、これは、アクセスされたデータにいつキャッシュ・ストレージ位置が割り当てられるか、及び、そのキャッシュ・ストレージ位置でいつデータが更新されるかに影響する。同様のポリシー情報が読み出しに設定されてもよい。したがって、データ・アクセスを強制的に中断可能とする第1の値を制御値が有しているときでも、そのデータ・アクセスは、第2のソフトウェアに要求されるとおり中断可能且つ再実行可能となって高遅延の状況を防ぎながらも、バス上の提示順序及びキャッシュ・ポリシー情報などの第1のソフトウェアが定めたいくつかの特性を維持してもよい。
一実例では、第1及び第2のソフトウェアが定める第1及び第2の属性、並びに第1及び第2の属性の組み合わせに基づいてデータ・アクセス命令に設定される最終的なアクセス属性は、それぞれ、そのデータ・アクセス命令がノーマル・タイプのデータ命令か、デバイス・タイプのデータ命令かを特定してもよい。通常、ノーマル・タイプのデータ・アクセス命令は中断可能で、後の段階で再実行又は再開することができる。また、ノーマル・タイプのデータ・アクセスは、他のアクセスに対してリオーダーが許可されることがある。それに対して、デバイス・タイプのデータ・アクセス命令は中断及び再実行が不可能で、他のデータ・アクセスに対してリオーダーすることができない。デバイス・タイプのデータ・アクセスは、多くの場合、データ・アクセスの予想される宛先が外部デバイスに割り当てられたデータ・ストアの領域であるときに、オペレーティング・システムによって使用される。いくつかの外部デバイスは、対応するデバイス・タイプのメモリ領域への読み出し又は書き込みに応答して一定の動作を実行するようにトリガされ得るので、デバイス・タイプ領域に対する読み出し又は書き込みのシーケンスを中断又はリオーダーするべきではなく、それを行うと、外部デバイスが行う動作に影響することがあるという点が重要であり得る。したがって、通常、デバイスの正確な挙動を確保するためにデバイス・タイプのデータ・アクセスが使用される。しかし、複数のオペレーティング・システムが組み合わせられ、ハイパーバイザがオペレーティング・システムを管理する仮想化システムでは、実際には外部デバイスが存在しなくてもよく、外部デバイスに相当する仮想機能をハイパーバイザが提供して、オペレーティング・システムには外部デバイスが実在するように見せかけてもよい。したがって、データ・アクセスへの割り込みに影響される実在のデバイスは存在しなくてもよいので、デバイス・タイプのデータ・アクセスの中断又はリオーダーが可能か否かは問題にしなくてもよい。第2のソフトウェアは、第1のソフトウェアの設定したデバイス・タイプのアクセスが本当にデバイス・タイプのアクセスであることが必要なのか否かを知っていてもよく、デバイス・タイプのアクセスでなくてもよい場合は、第1の属性に優先してそのアクセスをノーマル・タイプのデータ・アクセスとし、必要な場合に中断できるようにすることができる。
データ・アクセス命令はデータ・ストア内のある位置のアドレスを指定することがある。第1及び第2のソフトウェアが設定する第1及び第2の属性は、このアドレスに基づいて決定されてもよい。メモリ・アドレス又はメモリ・アドレスの一部に基づいて特定される、データ・ストアの異なるメモリ領域に、異なるアクセス属性を設定することができる。
属性は、少なくとも1つの第1の属性及び少なくとも1つの第2の属性を定める第1及び第2のデータを保管する、第1及び第2のメモリ属性ユニットを使用して設定されてもよい。第1及び第2のメモリ属性ユニット内のデータは、それぞれ第1及び第2のソフトウェアによって設定されてもよい。メモリ属性ユニットはメモリ保護ユニットであって、データ・アクセスに関連する物理アドレスを受け取り、そのアドレスに基づいて属性データを検索してもよい。或いは、第1及び第2のメモリ属性ユニットはメモリ管理ユニットであって、仮想アドレスを受け取り、その仮想アドレスを物理アドレスに変換し、元の仮想アドレス又は変換後の物理アドレスのどちらかに基づいて対応するデータ・アクセスのアクセス属性を決定してもよい。このように、第1及び第2の属性を決定する様々な方法があってもよい。
データ・アクセス命令のアクセス属性の決定は、データ処理装置の様々な部分によって行われてもよい。例えば、処理回路、第2のメモリ属性ユニット、又はデータ・ストアが、第1及び第2の属性に基づいてアクセス属性の決定を行うこともできる。このように、本発明の技術は、この決定がデータ処理装置内のどこで行われるかについて制限されない。
別の態様から見れば、本発明の技術は、
データを処理するための処理手段と、
データを保管するためのデータ保管手段と
を備えるデータ処理装置を提供し、
前記処理手段が、第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを第1の特権レベルより高い第2の特権レベルで実行するように構成されており、
データ保管手段内のデータにアクセスするためのデータ・アクセス命令に応答して、データ処理装置が、第1のソフトウェアが設定した少なくとも1つの第1の属性及び第2のソフトウェアが設定した少なくとも1つの第2の属性であって、それぞれがそのデータ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも1つの第1の属性及び少なくとも1つの第2の属性に基づいて、前記データ・アクセス命令のための少なくとも1つのアクセス属性を判断するように構成され、
前記少なくとも1つの第2の属性がデータ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、データ処理装置が、前記少なくとも1つの第1の属性がそのデータ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性がそのデータ・アクセス命令の実行を中断可能と指定していると判断するように構成される。
さらに別の態様から見れば、本発明の技術は、データを処理するように構成された処理回路とデータを保管するように構成されたデータ・ストアとを備えるデータ処理装置のためのデータ処理方法を提供し、前記処理回路は、第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを第1の特権レベルより高い第2の特権レベルで実行するように構成されており、前記方法は、
データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、第1のソフトウェアが設定した少なくとも1つの第1の属性及び第2のソフトウェアが設定した少なくとも1つの第2の属性であって、それぞれがそのデータ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも1つの第1の属性及び少なくとも1つの第2の属性に基づいて、前記データ・アクセス命令のための少なくとも1つのアクセス属性を判断することと、
前記少なくとも1つの第2の属性がデータ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記少なくとも1つの第1の属性がそのデータ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性がそのデータ・アクセス命令の実行を中断可能と指定していると判断することとを含む。
本技術の実施例を、添付図面を参照しながら単に実例として以下に説明する。
データ処理装置の概略図である。 異なる特権レベルで実行しているソフトウェアの概略図である。 異なる特権レベルで実行しているソフトウェアのそれぞれによって定められるメモリ属性の実例の概略図である。 ロード・マルチプル命令及びストア・マルチプル命令の実例を示す図である。 中断不可能なロード・マルチプル又はストア・マルチプル命令が実時間システム内で割り込みの処理に遅延を発生させる実例を示す図である。 第1及び第2の特権レベルのソフトウェアが定めるアクセス属性の可能な組み合わせから、データ・アクセスに使用するアクセス属性を判断するための表である。 図6の表を使用してアクセス属性を判断することによって図5に示される割り込み高遅延を防止する方法の実例を示す図である。 所定のタイプのデータ・アクセス命令についてアクセス特権を判断する方法を示す図である。
図1は、データを処理するための処理回路4及びデータを保管するためのメモリ(データ・ストア)6を備えるデータ処理装置2の一部を概略的に示す。処理回路は、処理回路4によって処理される値を保管するためのレジスタ8を有する。データはメモリ6からレジスタ8にロードされ、レジスタ8からメモリ6に保管されることができる。命令はメモリ6からプロセッサ4にフェッチされることができる。データ又は命令を保管するために、メモリ6内のデータ又は命令よりも小さい遅延(レイテンシ)でアクセスすることができる、データ・キャッシュ又は命令キャッシュ(図1に示されず)が提供されてもよい。
図2に示されるように、処理回路4は異なる特権レベルEL0、EL1、EL2で実行するソフトウェアをサポートする。ハイパーバイザ10が第2の特権レベルEL2で実行される。ハイパーバイザ10は、EL2より低い特権レベルである第1の特権レベルEL1で実行されるゲスト・オペレーティング・システム12の数を管理する。ハイパーバイザ10は、異なるオペレーティング・システム12間の切り換えを管理する。例えば、各オペレーティング・システム12に異なるタイム・スロットが割り当てられ、そのタイム・スロット中に処理回路4がそのオペレーティング・システム12を実行してもよい。各オペレーティング・システム12は、最も低い特権レベルである基本特権レベルEL0で実行する1つ又は複数のアプリケーション14を実行する。オペレーティング・システム12は1つ又は複数の実時間オペレーティング・システム(RTOS:real time operating systems)12−0、12−1及び少なくとも1つの非実時間(「GUIリッチ」)オペレーティング・システム12−2を含む。実時間オペレーティング・システム12−0、12−1は、例えば、安全のために迅速な割り込み応答処理が重要な、車両内のブレーキ及びエアバッグ・システムを制御するアプリケーションなどの、1つ又は複数の実時間アプリケーション14−0、14−1、14−2を管理する。GUIリッチなオペレーティング・システム12−2は、グラフィカル・ユーザ・インタフェース(GUI:graphical user interface)をサポートする、Windows(登録商標)、iOS(登録商標)、Linux(登録商標)などのオペレーティング・システムである。GUIリッチなオペレーティング・システム12−2は、車両内のステレオ・システムを管理するためのアプリケーションなどの、割り込みが迅速に処理されるか否かが比較的重要ではない1つ又は複数の非実時間アプリケーション14−3を実行する。その他のシステムは、図2に示される3つのレベル以外に、より多くの、又は少ない特権レベル(「例外レベル」としても知られる)を有してもよい。
図1に戻ると、データ処理装置2は第1のメモリ保護ユニット(MPU:memory protection unit)20を有し、MPU20は第1の特権レベルEL1で実行するオペレーティング・システム12の1つによって設定される第1のメモリ・アクセス属性を定めるデータを保管する。各オペレーティング・システム12はそれぞれ独自のメモリ・アクセス属性のセットを保持し、プロセッサ4が実行をそのオペレーティング・システム12に切り換えたときに、その属性が第1のMPU20にロードされる。処理回路4はまた第2のMPU22も有し、MPU22は第2の特権レベルEL2にあるハイパーバイザ10によって設定されるメモリ・アクセス属性を定める。データ・アクセス命令に応答して、処理回路4は命令が指定するアドレスを第1のMPU20及び第2のMPU22の両方に提供し、それらのMPUは、そのアドレスについてそれぞれのアクセス属性を検索する。それらのアクセス属性に基づいて、MPU20、22はそのアクセスが実行可能かどうか判断し、そのアクセスが許可されない場合はフォルトをトリガしてもよい。例えば、メモリ6の一定の領域が特権付きとして指定され、特権のない命令によるアクセスが不可能であってもよい。属性はまた、アクセスが中断可能か否かなどの、メモリ6によってどのようにアクセスが行われるかに影響する様々な特性を定めてもよい。
属性はまた、キャッシュ・ポリシー情報を定めてもよい。読み出しアクセスについて、キャッシュ・ポリシー情報は読み出しが下記のいずれであるか指定してもよい。
・リード・スルー:キャッシュにコピーを置くことなく、要求された値がメモリからプロセッサ4のレジスタ8に直接読み出される。
・非リード・スルー:値がメモリ6からキャッシュに読み出され、次にキャッシュからレジスタ8に読み出される。
同様に書き込みアクセスについて、アクセスは下記のように指定されてもよい。
・ライト・スルー:キャッシュ・ヒット時に、キャッシュ及びメモリの両方に値が書き込まれる。
・ライト・バック:キャッシュ・ヒット時にキャッシュに値が書き込まれ、その値を保管するキャッシュ位置がダーティとしてマークされるが、値はメモリ6には書き戻されず、異なるデータ値を保管するためにそのキャッシュ位置が再割り当てされることが必要になってから、ダーティなデータ値がメモリ6に書き戻される。
・ライト・アロケート:キャッシュ・ミス時に、要求されたデータ値がキャッシュにロードされる。
・非ライト・アロケート:キャッシュ・ミス時に、要求されたデータ値がメモリ内で修正され、キャッシュにはロードされない。
これらは、メモリ・アクセス属性によって指定できる特性のほんの数実例であり、他にも多くの特性があり得る。
図1の実例では、プロセッサ4が提供するアドレスは物理アドレスであり、MPU20、22はそれぞれ、そのメモリ・アドレスに対応するアクセス属性を検索する。ただし他の実例では、MPU20、20は、処理回路4から仮想アドレスを受け取ってその仮想アドレスを物理アドレスに変換すると共にメモリ・アクセス属性を検索する、メモリ管理ユニット(MMU:memory management unit)に置き換えられてもよい。オペレーティング・システム12によって第1のMMU20に、またハイパーバイザ10によって第2のMMUに、異なる仮想−物理アドレス・マッピングが定められてもよい。よって、一般に、MPU又はMMUは、データ・アクセスが指定したメモリ・アドレスに基づいて検索され、データ・アクセスのアクセス属性を定めるデータを含む、どのようなメモリ属性ユニットでもよい。
図3に示されるように、第1の例外レベルEL1で実行しているオペレーティング・システム12と第2の例外レベルEL2で実行しているハイパーバイザ10が、同じメモリ・アドレスに対して相反するメモリ属性を定める場合がある。例えば、図3の左側に示されるように、オペレーティング・システム12がメモリ・アドレス空間30の異なる領域をノーマル・メモリ領域40又はデバイス・タイプ領域50として指定することがある。メモリ40のノーマル領域を目標とするメモリ・アクセス命令はアクセスの途中で中断され、後に再実行されるか再開されてもよいが、デバイス・タイプのメモリ領域50を目標とするアクセス命令は中断及び再実行/再開が不可能である。また、ノーマル・タイプのアクセスは、他のアクセスに対して元のプログラム順と比べて異なる順序で処理されてもよいが、デバイス・タイプのアクセスはリオーダーできない。図3の右側に示されるように、第2の特権レベルEL2で実行しているハイパーバイザによって定められるメモリ属性が同様に、アドレス空間30のノーマル領域40及びデバイス・タイプ領域50を定めることがある。しかし、ハイパーバイザ10が定める領域は、オペレーティング・システム12が定める領域と同じではないことがある。例えば、オペレーティング・システム12が、アドレス空間30のある領域が外部デバイスにマッピングされると予想して、その領域をデバイス・タイプと設定することがあるが、ハイパーバイザ10によって管理される仮想化システムでは、そのようなデバイスが存在しないことがあるので、ハイパーバイザ10はそのような領域を代わりにノーマルとしてマークすることがある。例えば、図3に示されるようにアドレス55を目標とするデータ・アクセスで、そのアクセスをオペレーティング・システム12がデバイス・タイプとして指定し、ハイパーバイザ10がノーマル・タイプとして指定することがある。
図4は、このメモリ属性の相違が重要な意味をもつ可能性のあるいくつかの命令の実例を示す。図4は、メモリ6からレジスタ8に複数の値をロードするためのロード・マルチプル命令LDM(load multiple)を示す。ロード・マルチプル命令は、レジスタ8にロードされる第1の値Aのメモリ6内のアドレスを示すアドレス#addrを含むアドレス・レジスタr0を指定する。ロード・マルチプル命令はまた、データ値のロード先のレジスタを特定するレジスタr1〜r12のリストも指定する。図4に示すように、アドレス#addrに保管されている値Aがレジスタr1にロードされ、次に、後続の値B〜Lをそれぞれ他のレジスタr2〜r12にロードするためにアドレスがインクリメントされる。同様に、ストア・マルチプル命令STM(store multiple)は、アドレス#addrを含むレジスタr0及び、データ値A〜Lがメモリに保管される元のレジスタr1〜r12のリストを指定する。アドレス#addrは第1の値Aの保管先であるメモリ内の位置を特定し、次に後続のメモリ位置にアクセスするために、そのアドレスがインクリメントされる。リスト内のレジスタの数は、実行されるロード又はストアの数を決定する。通常、ロード・マルチプル又はストア・マルチプル命令は、レジスタ毎に1回の処理サイクルを必要とし得る。図4はレジスタを使用してアドレス#addrが指定される実例を示すが、他の実例では、アドレスは、命令エンコーディングにおいて即値として指定されてもよい。
図5は、オペレーティング・システム12の制御下で第1のMPU20によって、ロード・マルチプル又はストア・マルチプル命令がデバイス・タイプとして指定されたときに発生することのある問題を示す。図5に示されるように、タイム・スロットが各オペレーティング・システム12に割り当てられ、各オペレーティング・システム12が処理回路4によってそれぞれのタイム・スロットの間に実行されていてもよい。割り込み60が定期的に生成されて、新しいオペレーティング・システム12への切換をトリガする。図5に示されるタイム・スロットの長さは等しいが、これは必須ではなく、1つのオペレーティング・システム12に別のオペレーティング・システムより長いタイム・スロットを割り当てることもできる。
実時間(リアルタイム)オペレーティング・システム12−0、12−1にとって、そのオペレーティング・システム12への切り換えをトリガする割り込み60が確定的な時間に発生することは重要である。図5に示されるように、これらの割り込みのうちの1つである60−1が発生する少し前に、非実時間オペレーティング・システム12−2がロード・マルチプル又はストア・マルチプル命令に遭遇することがある。その命令がデバイス・タイプとマークされていれば、その命令は中断不可能である。図4に示されるように複数のロード又は複数のストアを行うと何回かの処理サイクルが必要な可能性があるので、ロード・マルチプル又はストア・マルチプル命令を完了した場合、その結果、図5に示されるように、実時間オペレーティング・システム12−1に関連付けられたタイム・スロットにまで動作が及ぶこともある。命令が中断不可能な場合には、次のオペレーティング・システム12−1への切換をトリガするための割り込み60−1の処理が、それによって遅延することがある。実時間オペレーティング・システム12−1がタイム・スロットの先頭で実時間クリティカルイベントにサービスを行うことが必要な場合があるので、このことは問題になる可能性がある。
典型的なアーキテクチャでは、同じトランザクションに対してメモリ属性の複数の層が定められたとき、通常これらの属性は組み合わせられて、元の属性の中で最も制限的な属性に対応する結合属性を形成する。よって、あるトランザクションを1つの属性がデバイス・タイプとして指定し、他の属性がそれをノーマル・タイプとして指定した場合には、通常、そのトランザクションはデバイス・タイプにマークされる。しかし、実時間システムでは、図5に示されるように、これは高い割り込み遅延(レイテンシ)の問題を引き起こす。その理由は、より制限的なデバイス・タイプ属性の結果、実時間イベントへのサービスが過度に遅れることがあるからである。
この問題に対処するために、オペレーティング・システム12の制御下で第1のMPU20が定める第1のアクセス属性及び、ハイパーバイザ10の制御下で第2のMPU22が定める第2の属性を、図6に示されるように、別の方法で組み合わせることができる。第2のMPU22がトランザクションをデバイス・タイプとすべきと定める場合には、全体的な属性は、第1のMPU20が設定する対応する第1の属性の状態とは無関係に、デバイス・タイプとして設定される(図6の下の列を参照)。また、第1及び第2のMPU20、22の両方がトランザクションをノーマル・タイプとして設定する場合には、全体的な属性もまたノーマル・タイプとして設定される(図6の左上の欄を参照)。
しかし、あるトランザクションをハイパーバイザがノーマル・タイプとして指定し、そのトランザクションをオペレーティング・システムがデバイス・タイプとして設定する場合には(図6の右上の欄)、そのトランザクションの全体的なメモリ・アクセス属性の決定には処理回路が保持する制御値100が使用される。制御値100は、いくつかの方法で保持されてもよく、レジスタ8又はメモリ6の中などの、データ処理装置2の中の任意の場所に保管されてもよい。或いは、制御値100は、図1に示されるように処理回路4内の場所に保管されてもよい。一実例では、処理回路4は、プロセッサ4の様々な特性を制御するいくつかの制御ビットを含む制御レジスタを有してもよく、メモリ属性の制御値100がそれらの制御ビットのうちの1つであってもよい。また、第2のMPU22が制御値100を保持することもできる。
制御値100は、ハイパーバイザがノーマル・タイプと指定した少なくとも1つの特定のタイプのデータ・アクセス命令について、ノーマル/デバイスのタイプ属性の設定を制御する。制御値が第1の値(例えば値1)を有する場合には、ハイパーバイザ10のノーマル・タイプ設定がオペレーティング・システム12の設定するデバイス・タイプに優先するように、トランザクションはノーマルとしてマークされる。それでも、トランザクションのその他の特性は、オペレーティング・システム12が指定するデバイス状態に従って維持されてもよい。例えば、そのトランザクションが他のトランザクションに対して元の順序で処理されるという特性がデバイス・トランザクションに従って維持されてもよいが、そのトランザクションはノーマル・トランザクションに従って中断可能であってもよい。制御値が1の場合には、オペレーティング・システム12がどちらの属性を指定しているかに関わらず、全体的な属性はハイパーバイザが指定する属性に設定されることに留意されたい。
一方、制御値100が第2の値(例えば0)を有する場合には、ハイパーバイザが第2のMPU22を使用してアクセスをノーマル・タイプと指定しているとしても、そのトランザクションは第1のMPU20が設定する第1の属性に従ってデバイス・タイプとしてマークされることができる。このことは、そのデータ・アクセスがなおも中断不可能として取り扱われることを意味する。制御値100が0の場合には、そのデータ・アクセスの全体的なアクセス属性は第1及び第2のMPU20、22が設定する属性のうち最も制限的なものに従って設定されるので、ハイパーバイザ10又はオペレーティング・システム12のどちらかがデバイス・タイプのアクセスを定める場合には、全体的な属性もまた、デバイス・タイプになる。
制御値100は、例えばハイパーバイザ10などのソフトウェアによって設定することができる。これにより、オペレーティング・システム12によるデバイス・タイプの指示を破棄できるかどうかをハイパーバイザ10が制御することが可能になる。実時間オペレーティング・システムの開始をトリガする割り込み60などの実時間クリティカルなイベントの発生が予想される場合には、第1のMPU20がトランザクションをデバイス・タイプと定めたとしても、トランザクションがなおもノーマルと見なされて中断可能になるように、制御値を1に設定することができる。したがって、図7に示されるように、ロード・マルチプル又はストア・マルチプル命令が非実時間オペレーティング・システム12−2によって開始されたとしても、割り込み60−1が発生するとロード・ストア・マルチプル命令が中断されて、オペレーティング・システム12−1が実時間イベントを処理することができる。非実時間オペレーティング・システム12−2がプロセッサ4上で次のスロットを受け取ると、ロード・マルチプル又はストア・マルチプル命令は再始動又は再開されることができる。一方、実時間クリティカルイベントが予想されない場合には、あるトランザクションをオペレーティング・システム12がデバイス・タイプと指定する場合には、そのトランザクションをデバイス・タイプとして扱って中断不可能にすべきであることを示すために、ハイパーバイザは制御値を0に設定することができる。
図6に示されるアクセス属性の決定は第2のMPU22によって行われてもよく、MPU22は第1のMPU20から第1の属性を受け取り、自身が検索した第2の属性と組み合わせて全体的な属性を形成してもよい。或いは、第1及び第2の両方の属性がメモリ6に提供されてもよく、アクセスがメモリ6によってどのように扱われるかを決定する結合属性を決定するための制御ロジックを、メモリ6が有してもよい。
図6に示される実例では、1の制御値はハイパーバイザの「ノーマル」属性がオペレーティング・システムの「デバイス」属性に優先すべきであることを示し、0の制御値はオペレーティング・システムの「デバイス」属性が使用されるべきであることを示すが、他の実例では、0と1の意味が入れ替えられるように、逆のマッピングが使用されてもよい。図6に示される技術は、ロード・マルチプル命令若しくはストア・マルチプル命令、又は中断不可能な場合に長い遅延を引き起こすことが予想されるその他のデータ・アクセス命令などの所定のタイプのデータ・アクセス命令にのみ使用されてもよい。この技術は、その他の実例では全てのデータ・アクセス命令に使用されることもできる。図6に示される技術が使用されない命令に対しては、第1及び第2のMPU20、22が指定するそれぞれの属性のうち、より制限的な方の属性が使用されてもよい(制御値100が図6の値0を持つ場合と同様)。
また、制御値100を使用せずに本発明の技術を実装することも可能である。この場合、所定のタイプの命令に対して、MPU22が常に第1のMPU20に優先することができ、あるトランザクションをハイパーバイザ10が「ノーマル」タイプと指定すると、オペレーティング・システム12がそれを「デバイス」タイプと指定したとしても、そのトランザクションは中断可能になる。
また、図6に示される技術は、所定のタイプのデータ・アクセス命令が基本特権レベルEL0又は第1の特権レベルEL1で実行されるときにのみ使用されてもよい。ハイパーバイザ・レベルEL2で実行されるデータ・アクセス命令はこの技術に従わなくともよく、代わりに、第1のMPU20が同じアドレスに設定するどのような属性にも無関係に、第2のMPU22が設定した権限に基づいてデバイス・タイプ又はノーマル・タイプの命令として扱われてもよい(図6の、制御値1の場合と同様)。
いくつかのシステムでは、この技術はより一般的に適用されて制御ビット100を提供し、高い特権レベルで実行しているソフトウェアがこの制御ビットを設定して、低い特権レベルで実行している所定のタイプのデータ・アクセス命令が中断可能か否かを制御してもよい。すなわち、特権レベルの高いソフトウェアと特権レベルの低いソフトウェアがそれぞれ特権レベルEL2、EL1で実行している必要はなく、その代わり、特権レベルの階層の中の任意の2つの特権レベルで動作していてもよい。
図8は、あるデータ・アクセス命令のメモリ・アクセス属性を決定する方法の実例を概略的に示す。ステップ100で、プロセッサ4が所定のデータ・アクセス(この実例では、基本特権レベルEL0又は第1の特権レベルEL1で実行しているソフトウェアからのロード・マルチプル命令又はストア・マルチプル命令)を実行しようとしているか判断される。そのように判断されない場合には、そのデータ・アクセス命令のメモリ・アクセス属性は、従来技術で知られる方法などの他の方法で決定される。一方、特権レベルEL0又はEL1でロード・マルチプル又はストア・マルチプル命令に遭遇した場合には、方法はステップ102に進み、第2のMPU22がその命令の第2の属性を決定する。第2の属性がデバイス・タイプである場合には、ステップ104でその命令の全体的なアクセス属性がデバイス・タイプとして決定され、その命令がメモリ6に発行される。したがって、このデータ・アクセスは中断もリオーダーもできないので、プロセッサ4は、他のアクセスを実行する前にそのロード・マルチプル又はストア・マルチプル命令の完了を託される。
一方で、ステップ102で第2のMPUがそのデータ・アクセスがノーマル・タイプのアクセスであると判断した場合には、ステップ106で第1のMPU20がそのデータ・アクセス命令の属性を決定する。実際には、ステップ102及び106は、それぞれMPU20、22によって並列に行われてもよいし、又はステップ102の前にステップ106が行われてもよい。ステップ106で第1のMPU20が決定した第1の属性がノーマルである場合(すなわち、両方のMPU20、22がそのアクセスをノーマルと定めた)には、ステップ108で、この命令についての全体的なアクセス属性100はノーマルと決定される。したがって、マルチプル・ロード又はマルチプル・ストア命令は必要なら中断可能である。
一方で、ステップ106で属性がデバイス・タイプである(すなわち、そのトランザクションをハイパーバイザ10がノーマルと定め、オペレーティング・システムがデバイスとして定めている)と判断された場合には、ステップ110で、システムは制御ビット100をチェックする。制御ビットが第1の値(この実例では1)を有する場合には、ステップ112で全体的な属性がノーマルとして設定され、その命令が中断不可能であることを示す。したがって、オペレーティング・システム12が設定したデバイス・タイプの指示をハイパーバイザが破棄したことになる。しかし、オペレーティング・システム12が設定したデバイス・タイプの指示に関連する、そのトランザクションの少なくとも1つの他の特性は維持されてもよい。例えば、そのトランザクションがメモリバス上に元の順序で提示されるように、そのトランザクションが他のトランザクションに比してリオーダーされてはならないという事項は維持されてもよい。また、オペレーティング・システム12に従って第1のMPU20が定めたキャッシュ読み出し/書き込みポリシー情報もまた維持されてもよい。一方で、制御ビット110が第2の値(例えば0)を有する場合には、その命令がメモリ6に発行されたときに中断不可能になるように、ステップ114で、その命令の属性がデバイス・タイプとして設定される。この場合、第1のMPU20が提供する、より制限的なデバイスの指示が採用される。
本明細書では添付の図面を参照しながら説明的な実施例について詳細に記載したが、本発明がこれらの厳密な実施例に限定されないこと、及び、添付の特許請求の範囲によって定められるとおりの本発明の範囲を逸脱することなく当業者によって様々な変更及び増倍が行われることが可能であることを理解されたい。

Claims (16)

  1. データを処理するように構成された処理回路と、
    データを保管するように構成されたデータ・ストアと
    を備えるデータ処理装置であって、
    前記処理回路が第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを前記第1の特権レベルより高い第2の特権レベルで実行するように構成され、
    前記データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、前記データ処理装置が、前記第1のソフトウェアに基づいて設定する少なくとも1つの第1の属性及び前記第2のソフトウェアに基づいて設定する少なくとも1つの第2の属性に基づいて前記データ・アクセス命令のための少なくとも1つのアクセス属性を判断するように構成され、前記少なくとも1つの第1の属性及び前記少なくとも1つの第2の属性がそれぞれ、前記データ・アクセス命令の実行の中断が可能であるか否かを指定し、
    前記少なくとも1つの第2の属性が前記データ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記データ処理装置が、前記少なくとも1つの第1の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断することが可能なように構成される、
    データ処理装置。
  2. 前記所定のタイプのデータ・アクセス命令が、複数の処理サイクルに亘って実行されるデータ・アクセス命令である、請求項1に記載のデータ処理装置。
  3. 前記所定のタイプのデータ・アクセス命令が、前記第1のソフトウェアの命令又は前記第1のソフトウェアの制御下で実行するさらに別のソフトウェアの命令である、請求項1又は2に記載のデータ処理装置。
  4. 前記処理回路が複数のオペレーティング・システムをサポートし、前記第1のソフトウェアが前記複数のオペレーティング・システムの1つであり、前記第2のソフトウェアが前記複数のオペレーティング・システムを管理するためのハイパーバイザである、請求項1から3までのいずれか一項に記載のデータ処理装置。
  5. 前記所定のタイプのデータ・アクセス命令が、前記データ・ストアから前記データ処理装置の複数のレジスタにデータをロードするためのロード・マルチプル命令又は、前記データ処理装置の複数のレジスタから前記データ・ストアにデータを保管するためのストア・マルチプル命令である、請求項1から4までのいずれか一項に記載のデータ処理装置。
  6. 前記データ処理装置が制御値を保持するように構成され、
    前記少なくとも1つの第2の属性が前記データ・アクセス命令の実行が中断可能であると指定している前記所定のタイプのデータ・アクセス命令に応答して、前記データ処理装置が、前記制御値に基づいて、前記少なくとも1つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定しているか否かを判断するように構成される、
    請求項1から5までのいずれか一項に記載のデータ処理装置。
  7. 前記少なくとも1つの第2の属性が前記データ・アクセス命令の実行が中断可能であると指定している前記所定のタイプのデータ・アクセス命令について、
    前記制御値が第1の値を有する場合には、前記少なくとも1つの第1の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると前記データ処理装置が判断するように構成され、
    前記制御値が第2の値を有する場合には、前記データ・アクセス命令の実行が中断可能であると前記少なくとも1つのアクセス属性が指定しているか否かを前記データ処理装置が前記少なくとも1つの第1の属性に基づいて判断するように構成される、
    請求項6に記載のデータ処理装置。
  8. 前記処理回路が前記第2のソフトウェアに応答して前記制御値を設定するように構成される、請求項6又は7に記載のデータ処理装置。
  9. 前記少なくとも1つの第1の属性が前記データ・アクセス命令の実行を中断不可能と指定しているときに、前記データ処理装置が、前記少なくとも1つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断する場合には、前記少なくとも1つの第1の属性に基づいて、前記データ・アクセス命令の実行が中断可能か否かという特性ではない少なくとも1つの他の特性を決定し、当該少なくとも1つの他の特性を、前記少なくとも1つのアクセス属性が指定するように前記データ処理装置が構成される、請求項1から8までのいずれか一項に記載のデータ処理装置。
  10. 前記少なくとも1つの他の特性が、
    (i)前記所定のタイプのデータ・アクセス命令の実行が他のデータ・アクセス命令の実行に対してリオーダーされることが可能か否か、及び
    (ii)前記データ・アクセス命令に応答してアクセスされる前記データがどのようにキャッシュされるかを制御するためのキャッシュ・ポリシー情報
    のうち少なくとも1つを含む、請求項9に記載のデータ処理装置。
  11. 前記少なくとも1つのアクセス属性、前記少なくとも1つの第1の属性、及び前記少なくとも1つの第2の属性がそれぞれ、前記データ・アクセス命令が中断可能なノーマル・タイプのデータ・アクセス命令であるか中断不可能なデバイス・タイプのデータ・アクセス命令であるかを特定する、請求項1から10までのいずれか一項に記載のデータ処理装置。
  12. 前記データ・アクセス命令が前記データ・ストア内のある位置のアドレスを指定し、前記データ処理装置が、前記アドレスの少なくとも一部に基づいて前記少なくとも1つの第1の属性及び前記少なくとも1つの第2の属性を決定するように構成される、請求項1から11までのいずれか一項に記載のデータ処理装置。
  13. 前記少なくとも1つの第1の属性を定める第1のデータを保管するように構成される第1のメモリ属性ユニットを含み、前記処理回路が前記第1のソフトウェアに応答して前記第1のデータを設定するように構成される、請求項1から12までのいずれか一項に記載のデータ処理装置。
  14. 前記少なくとも1つの第2の属性を定める第2のデータを保管するように構成される第2のメモリ属性ユニットを含み、前記処理回路が前記第2のソフトウェアに応答して前記第2のデータを設定するように構成される、請求項1から13までのいずれか一項に記載のデータ処理装置。
  15. データを処理するための処理手段と、
    データを保管するためのデータ保管手段と
    を備えるデータ処理装置であって、
    前記処理手段が、第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを前記第1の特権レベルより高い第2の特権レベルで実行するように構成されており、
    前記データ保管手段内のデータにアクセスするためのデータ・アクセス命令に応答して、前記データ処理装置が、前記第1のソフトウェアに基づいて設定した少なくとも1つの第1の属性及び前記第2のソフトウェアに基づいて設定した少なくとも1つの第2の属性であって、それぞれが前記データ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも1つの第1の属性及び少なくとも1つの第2の属性に基づいて、前記データ・アクセス命令のための少なくとも1つのアクセス属性を判断するように構成され、
    前記少なくとも1つの第2の属性が前記データ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記データ処理装置が、前記少なくとも1つの第1の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断するように構成される、
    データ処理装置。
  16. データを処理するように構成された処理回路と、データを保管するように構成されたデータ・ストアとを備え、前記処理回路は第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを前記第1の特権レベルより高い第2の特権レベルで実行するように構成されたデータ処理装置のためのデータ処理方法であって、
    前記データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、前記第1のソフトウェアに基づいて設定した少なくとも1つの第1の属性及び前記第2のソフトウェアに基づいて設定した少なくとも1つの第2の属性であって、それぞれが前記データ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも1つの第1の属性及び少なくとも1つの第2の属性に基づいて、前記データ・アクセス命令のための少なくとも1つのアクセス属性を判断することと、
    前記少なくとも1つの第2の属性が前記データ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記少なくとも1つの第1の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも1つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断することとを含む、
    データ処理方法。
JP2016535521A 2013-08-23 2014-07-15 データ・アクセスのアクセス属性の扱い Active JP6511446B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1315108.9A GB2517493A (en) 2013-08-23 2013-08-23 Handling access attributes for data accesses
GB1315108.9 2013-08-23
PCT/GB2014/052154 WO2015025129A1 (en) 2013-08-23 2014-07-15 Handling access attributes for data accesses

Publications (2)

Publication Number Publication Date
JP2016532205A JP2016532205A (ja) 2016-10-13
JP6511446B2 true JP6511446B2 (ja) 2019-05-15

Family

ID=49355838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016535521A Active JP6511446B2 (ja) 2013-08-23 2014-07-15 データ・アクセスのアクセス属性の扱い

Country Status (10)

Country Link
US (2) US10354092B2 (ja)
EP (1) EP3036622B1 (ja)
JP (1) JP6511446B2 (ja)
KR (1) KR102269912B1 (ja)
CN (1) CN105453029B (ja)
BR (1) BR112016002977B1 (ja)
GB (1) GB2517493A (ja)
IL (1) IL243889B (ja)
TW (1) TWI630554B (ja)
WO (1) WO2015025129A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2940575B1 (en) * 2014-05-02 2018-05-09 Nxp B.V. Controller circuits, data interface blocks, and methods for transferring data
GB2546742B (en) * 2016-01-26 2019-12-11 Advanced Risc Mach Ltd Memory address translation management
US11205152B1 (en) * 2016-03-18 2021-12-21 Amazon Technologies, Inc. Virtual logistical network overlay for physical logistical network
GB2564400B (en) * 2017-07-06 2020-11-25 Advanced Risc Mach Ltd Graphics processing
WO2019148948A1 (zh) * 2018-02-02 2019-08-08 华为技术有限公司 一种内核完整性保护方法及装置
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
GB2578135B (en) 2018-10-18 2020-10-21 Advanced Risc Mach Ltd Range checking instruction
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
JP2759407B2 (ja) 1993-04-15 1998-05-28 ローレルバンクマシン株式会社 硬貨包装機
US5889973A (en) * 1995-03-31 1999-03-30 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
FR2775370B1 (fr) * 1998-02-20 2001-10-19 Sgs Thomson Microelectronics Procede de gestion d'interruptions dans un microprocesseur
US6574736B1 (en) * 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
SE519869C2 (sv) * 2000-12-01 2003-04-15 Saab Ab Datoranordning och förfarande för exekvering av programvaror av olika kritikalitet
DE10206865C1 (de) * 2002-02-18 2003-05-15 Daimler Chrysler Ag Reaktionszeit-Beschränkung eines Software-Prozesses
US20040005483A1 (en) * 2002-03-08 2004-01-08 Chhiu-Tsu Lin Perovskite manganites for use in coatings
US7944953B2 (en) * 2002-04-03 2011-05-17 Tvworks, Llc Method and apparatus for transmitting data in a data stream
GB2392998B (en) * 2002-09-16 2005-07-27 Advanced Risc Mach Ltd Handling interrupts during multiple access program instructions
JP2004139503A (ja) 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
US20040111593A1 (en) * 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
US20040168047A1 (en) * 2003-02-24 2004-08-26 Matsushita Electric Industrial Co., Ltd. Processor and compiler for creating program for the processor
US7543331B2 (en) * 2003-12-22 2009-06-02 Sun Microsystems, Inc. Framework for providing a configurable firewall for computing systems
US7147938B2 (en) * 2004-06-30 2006-12-12 Eastman Kodak Company Organic element for electroluminescent devices
US8166483B2 (en) * 2004-08-06 2012-04-24 Rabih Chrabieh Method and apparatus for implementing priority management of computer operations
US20060064528A1 (en) * 2004-09-17 2006-03-23 Hewlett-Packard Development Company, L.P. Privileged resource access
JP4345630B2 (ja) * 2004-09-29 2009-10-14 ソニー株式会社 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
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
JP2007004661A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US8726292B2 (en) * 2005-08-25 2014-05-13 Broadcom Corporation System and method for communication in a multithread processor
US8443188B2 (en) * 2006-11-30 2013-05-14 Microsoft Corporation Using code access security for runtime accessibility checks
US8869294B2 (en) * 2006-12-05 2014-10-21 Intel Corporation Mitigating branch prediction and other timing based side channel attacks
US8136091B2 (en) * 2007-01-31 2012-03-13 Microsoft Corporation Architectural support for software-based protection
GB2448149B (en) * 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
KR101496329B1 (ko) * 2008-03-28 2015-02-26 삼성전자주식회사 네트워크의 디바이스 보안 등급 조절 방법 및 장치
US8347380B1 (en) * 2008-06-30 2013-01-01 Symantec Corporation Protecting users from accidentally disclosing personal information in an insecure environment
US8450300B2 (en) * 2009-07-13 2013-05-28 Cempra Pharmaceuticals Inc. Fusidic acid dosing regimens for treatment of bacterial infections
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
US20110197004A1 (en) * 2010-02-05 2011-08-11 Serebrin Benjamin C Processor Configured to Virtualize Guest Local Interrupt Controller
US8826231B1 (en) * 2010-06-28 2014-09-02 The Boeing Company Methods and systems for deploying software applications
JP5541036B2 (ja) * 2010-09-21 2014-07-09 富士通株式会社 メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置
US9798873B2 (en) * 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US8898459B2 (en) * 2011-08-31 2014-11-25 At&T Intellectual Property I, L.P. Policy configuration for mobile device applications
US8695010B2 (en) * 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
US8856789B2 (en) * 2012-09-06 2014-10-07 Assured Information Security, Inc. Facilitating execution of a self-modifying executable
GB2517494B (en) * 2013-08-23 2021-02-24 Advanced Risc Mach Ltd Handling time intensive instructions
EP3120238B1 (en) * 2014-03-19 2020-10-28 Intel Corporation Access isolation for multi-operating system devices
US9747218B2 (en) * 2015-03-20 2017-08-29 Mill Computing, Inc. CPU security mechanisms employing thread-specific protection domains
US9870466B2 (en) * 2015-09-26 2018-01-16 Mcafee, Inc. Hardware-enforced code paths
US20170123800A1 (en) * 2015-11-04 2017-05-04 International Business Machines Corporation Selective resource activation based on privilege level
US10261919B2 (en) * 2016-07-08 2019-04-16 Hewlett Packard Enterprise Development Lp Selective memory encryption
US10650156B2 (en) * 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
US11042485B2 (en) * 2018-06-20 2021-06-22 Vmware, Inc. Implementing firmware runtime services in a computer system

Also Published As

Publication number Publication date
US11055440B2 (en) 2021-07-06
KR102269912B1 (ko) 2021-06-28
CN105453029A (zh) 2016-03-30
WO2015025129A1 (en) 2015-02-26
GB201315108D0 (en) 2013-10-09
BR112016002977A2 (ja) 2017-08-01
EP3036622A1 (en) 2016-06-29
US10354092B2 (en) 2019-07-16
US20190286831A1 (en) 2019-09-19
TWI630554B (zh) 2018-07-21
EP3036622B1 (en) 2018-03-07
KR20160045735A (ko) 2016-04-27
BR112016002977B1 (pt) 2022-06-21
IL243889B (en) 2019-05-30
CN105453029B (zh) 2018-11-09
IL243889A0 (en) 2016-04-21
US20160210465A1 (en) 2016-07-21
GB2517493A (en) 2015-02-25
TW201514857A (zh) 2015-04-16
JP2016532205A (ja) 2016-10-13

Similar Documents

Publication Publication Date Title
JP6511446B2 (ja) データ・アクセスのアクセス属性の扱い
JP7245779B2 (ja) Tlbまたはキャッシュ割り当ての分割
JP7065099B2 (ja) メモリシステムリソースの分割または性能監視
JP7265478B2 (ja) メモリ分割
JP7065098B2 (ja) メモリシステムリソースの分割または性能監視
JP7128822B2 (ja) メモリシステムリソースの分割または性能監視
JP2022547545A (ja) ページテーブルウォークメモリトランザクションのためのパーティション識別子
US11237985B2 (en) Controlling allocation of entries in a partitioned cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190408

R150 Certificate of patent or registration of utility model

Ref document number: 6511446

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