JP2016531363A - 時間のかかる命令の取り扱い - Google Patents

時間のかかる命令の取り扱い Download PDF

Info

Publication number
JP2016531363A
JP2016531363A JP2016535520A JP2016535520A JP2016531363A JP 2016531363 A JP2016531363 A JP 2016531363A JP 2016535520 A JP2016535520 A JP 2016535520A JP 2016535520 A JP2016535520 A JP 2016535520A JP 2016531363 A JP2016531363 A JP 2016531363A
Authority
JP
Japan
Prior art keywords
time
consuming
instructions
exception
instruction
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
JP2016535520A
Other languages
English (en)
Other versions
JP6427575B2 (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 JP2016531363A publication Critical patent/JP2016531363A/ja
Application granted granted Critical
Publication of JP6427575B2 publication Critical patent/JP6427575B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

時間のかかる命令が実行されることが、重大なイベントに対して遅れて応答が行われること、又は全く応答が行われないことにつながり得る。情報処理装置が、1つ又は複数の時間のかかる命令を備える命令を実行するための処理回路60と、その処理回路のために少なくとも1つの例外を生成するための例外生成回路100とを備える。処理回路は、時間のかかる命令が実行され得るか否かを示すための制御値20を保持する。時間のかかる命令が実行され得ないことを制御値が示す場合に、時間のかかる命令に出合うと、第1の例外が、その時間のかかる命令の実行を抑止するよう処理回路を動作する。代替として、時間のかかる命令が実行され得ることを制御値が示す場合、その時間のかかる命令が実行される。

Description

本技法は、データ処理デバイスの分野に向けられる。より詳細には、本技法は、データ処理デバイスにおいて時間のかかる命令(time intensive instructions)を扱うことに関連を有し得る。
リアルタイム・システムにおいて、ある期間内に、又はある特定の時間内に特定の事象に応答することが、しばしば、必要である。このことを実現するため、そのようなシステムは、システム全体の決定論的振舞いに、しばしば、依拠する。例えば、所定の間隔で、又は所定の時点でプロセッサ、又はセンサなどの別のハードウェア・デバイスに対するアクセスをソフトウェアに与えることが必要であり得る。
リアルタイム・システムの一例が、車両の衝突を検出し、そのような衝突を検出すると、エアバッグを展開するように設計されたエアバッグ展開システムである。そのようなシステムにおいて、エアバッグが、衝突事象が検出されてから非常に短い期間内に展開されることが不可欠であり得る。
しかしながら、所定の期間内に特定の事象に応答することの問題は、ハードウェアがビジーである場合、悪化する。特に、プロセッサが、時間のかかる命令を実行している場合、他のいずれの作業も実行され得るようになるまでに遅延が存在する。例えば、エアバッグ展開システムを考慮すると、プロセッサが、衝突事象が生じる直前に、時間のかかる命令の実行を開始した場合、プロセッサは、エアバッグが展開し得る前に、その時間のかかる命令の実行を完了する必要があるであろう。このことは、衝突が起きても、エアバッグ展開システムが、その時間のかかる命令が完了するまで長い期間にわたって動作しない状況につながる可能性がある。
したがって、リアルタイム・システムにおいて、不都合な時点で時間のかかる命令を実行することは、システムのパフォーマンス全体に相当な悪影響を及ぼす可能性があり、システムの完全な障害につながる可能性さえある。
そのような命令に対処する1つの方法は、重大な事象が生じた際にそれらの命令の実行を単に終了させることである。しかし、このことは、その命令に既に費やされたプロセッサ・リソースを無駄にし、プロセッサの状態を、その時間のかかる命令の実行が始まる以前の状態に復元するのに、更に多くのプロセッサ・リソースを費やすことを、しばしば、要求する可能性がある。更に、一部の命令は、それらの命令の性質から、割込み不可能であり、又は割込みがかけられた場合、不都合な副作用をもたらす可能性がある。
一態様によれば、1つ又は複数の時間のかかる命令を備える命令を実行するように構成された処理回路と、前記処理回路のために少なくとも1つの例外を生成するように構成された例外生成回路とを備える情報処理装置であって、前記処理回路は、前記時間のかかる命令が実行され得るかどうかを示すための制御値を保持するように構成され、前記例外生成回路は、前記制御値が、前記時間のかかる命令が実行され得ないことを示す第1の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つの実行を抑止するよう処理回路をトリガする、つまり処理回路にもたらす第1の例外を生成するように構成され、前記例外生成回路は、前記制御値が、前記時間のかかる命令が実行され得ることを示す第2の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つを実行するように構成される情報処理装置が提供される。
本技法の認識によれば、時間のかかる命令の実行は、比較的迅速に応答されなければならない重大な事象に先立ってそのような命令が行われる場合、特にリアルタイム・システムにおいて、有害であり得るときがある。例えば、システムが、時間のかかる命令の実行を開始したとして、直後に重大な事象又は例外が生じたとする場合、その重大な事象又は例外に対して応答し得る前に、その時間のかかる命令が完了している必要があり得る。リアルタイム・システムにおいて、この例外又は事象に対しては非常に短い期間内に応答が行われる必要があり得るので、このことは、容認できないものとなろう。
前述の態様によれば、処理回路によって、時間のかかる命令が実行され得るか否か、即ち、時間のかかる命令が実行されることが許されるかどうかを示すための制御値が、与えられる。制御値が、時間のかかる命令が実行され得ない状態に設定されている場合、時間のかかる命令を実行しようとする試みは、例外生成回路によって第1の例外が生成されることをもたらして、その時間のかかる命令の実行が抑止されるようになる。代替として、制御値の状態が、時間のかかる命令が実行され得るようになっている場合、それらの命令の実行が続けられ、第1の例外は、全く生成されない。このため、制御値の状態を制御することによって、時間のかかる命令が、要求されるとおりに許されること、又は許されないことが可能である。したがって、重大な事象が生じることになっていること、又は生じる確率が高いことが知られている場合、この制御値は、その事象に至るまでの間に時間のかかる命令を許さないように設定され得る。したがって、その事象自体が生じた場合、時間のかかる命令は行われていないはずであり、その事象に迅速に応答が行われ得る。
時間のかかる命令の異なる多くの例が存在する。一部の実施例において、時間のかかる命令は、処理回路の複数の処理サイクルが実行されることを要求する命令と見なされ得る。この例の代わりに、又はこの例に加えて、時間のかかる命令は、開始されると、割込みがかけられ得ない命令を備えることが可能である。
これら2つの例のいずれかに加えて、又はいずれかの代わりに、時間のかかる命令は、浮動小数点平方根命令、除算命令、割込み不可能な多重ロード命令、割込み不可能な多重記憶命令、及び少なくとも1つの所定のシングル・インストラクション・マルチプル・データ(SIMD:single−instruction−multiple−data)命令のうちの少なくとも1つを備え得る。
浮動小数点平方根命令、及び整数除算命令若しくは浮動小数点除算命令は、単に、多数の処理サイクルが完了することを要求するこれらの命令の性質のため、時間がかかり得る。これらの命令に割込みをかけることは、時間のかかる演算が再び開始されることを要求するので、そうしないことが好ましい可能性がある。更に、時間のかかる平方根命令又は除算命令の後に、又はその命令と並行に実行される、プログラム順序において後の命令が、平方根命令又は除算命令の入力レジスタを、その命令が完了される前に上書きして、割込みがかけられた場合、それらの命令が再開されることを非常に困難にする、又は不可能にさえすることが可能である。ロード命令及び記憶命令には、例えば、それらの命令において参照されているメモリのアドレスが、デバイス型メモリとして扱われる場合、割込み不可能として印が付けられることが可能である。そのようなメモリは、ハードウェア・デバイスにマップされることが可能であり、これらのメモリ・ロケーションに対して読取り又は書込みを行うことは、そのデバイスを特定の様態で動作させることになり得る。これらの命令に割込みをかけることは、ハードウェア・デバイスの誤った振舞い、又は非決定論的振舞いにつながり得る。SIMD命令は、単一の処理オペレータが、同一の入力オペランド内の複数のデータ要素上で並行に実行される命令である。少なくとも一部のSIMD演算には、多くのプロセッサ・サイクルが関与することが可能であり、整数除算命令又は浮動小数点除算命令の場合と同様に、割込みが行われた場合、そのような命令を再開することができない可能性がある。
「時間のかかる命令(time intensive instructions)」という用語の他の適切な例が、当業者には明白となり、前段で与えられる例のいずれかの代わりに、又はいずれかに加えて使用されてもよい。
処理回路は、第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを、第1の特権レベルより高い第2の特権レベルで実行するように構成され得る。即ち、第1のソフトウェアは、第2のソフトウェアと比べて、より低い特権レベルで実行される。「より高い」という用語は、特権のレベルを指し、その特権レベルに関連付けられた数値を指すものではない。したがって、より高い特権レベルは、より低い特権レベルより数値的に高いことも、低いことも可能である。一般に、「より高い」特権を有するソフトウェアは、「より低い」特権におけるソフトウェアが利用できない権利を有することが可能である。
これらの実施例のうちのいくつかにおいて、第2のソフトウェアは、前記制御値を変更するよう処理回路を制御するように構成され得る。
例外生成回路は、前記第1のソフトウェアの前記時間のかかる命令のうちの1つに応答して第1の例外を生成するように構成され得る。即ち、例外生成回路は、第1のソフトウェアが、それらの時間のかかる命令のうちの1つを実行しようと試みると、第1の例外を生成することが可能である。したがって、第1のソフトウェアの振舞いは、制御値によって管理され得る。
このため、より高い特権で実行されている第2のソフトウェアは、制御値を設定することが可能であり、より低い特権レベルで実行されている第1のソフトウェアは、その制御値によって影響され得る。そのような実施例は、仮想化された環境などにおいて、1セットのソフトウェアが別のソフトウェアによって管理されるシステムに適している。
例外生成回路は、前記第2の特権レベルより低い特権レベルで実行されるソフトウェアの時間のかかる命令のうちの1つに応答してのみ第1の例外を生成するように構成され得る。即ち、第1の例外は、第2の特権レベルと比べてより低い特権レベルで実行されるソフトウェアに関してだけ生成される。言い換えると、例外生成回路は、前記第2の特権レベルで実行されるソフトウェアの時間のかかる命令のうちの1つに応答して第1の例外を生成することがないように構成される。これらの実施例のうちのいくつかにおいて、例外生成回路は、最高の特権レベルで実行されるソフトウェアの前記時間のかかる命令のうちの1つに応答して前記第1の例外を生成することがないように構成される。したがって、一部のソフトウェアは、時間のかかる命令を生成する資格を常に有し得る。例えば、ハイパーバイザ、即ち、管理ソフトウェアは、時間のかかる命令を常に実行する資格を有し得る。
第1のソフトウェアは、1つ又は複数のゲスト・オペレーティング・システムを備えることが可能であり、第2のソフトウェアは、ハイパーバイザを備えることが可能である。本技法は、ハイパーバイザと、1つ又は複数の仮想化されたゲスト・オペレーティング・システムとを含む環境によく適している。というのは、ハイパーバイザは、リソースが公平に分配されることを確実にするよう各ゲスト・オペレーティング・システムの振舞いを制御することができるからである。例えば、ハイパーバイザに制御値を設定させることによって、第1のゲスト・オペレーティング・システムによって発行された時間のかかる命令が第2のゲスト・オペレーティング・システムに及ぼす効果を制限することが可能である。
制御値は、処理回路上で特定の時点においていずれのソフトウェアが実行されているかを変更するコンテキスト・スイッチなどの、1つ又は複数の所定の事象に応答して変更され得る。例えば、コンテキスト・スイッチが、1つのゲスト・オペレーティング・システムの処理を一時停止して、別のゲスト・オペレーティング・システム又はハイパーバイザの処理を再開することが可能である。そのような実施例において、処理回路は、そのコンテキスト・スイッチに応答して制御値を第2の状態に変更する。即ち、コンテキスト・スイッチに応答して、処理回路は、時間のかかる命令が実行され得るように制御値を変更する。一部の事例において、コンテキスト・スイッチの直後に時間のかかる命令を許すことは、コンテキスト・スイッチが行われてから間をおかずに別のオペレーティング・システムが実行を開始することは可能性が低いので、そのような命令が実行されるのに最も適切な時間である。したがって、そのオペレーティング・システムは、次のコンテキスト・スイッチが行われるまでに時間のかかる命令を実行するのに最も多くの時間を利用できる。
所定の事象の別の例が、予期される事象に第1の所定の期間先行して生成され得る第2の例外である。例えば、予期される事象が、コンテキスト・スイッチであることが可能であり、第2の例外は、前のコンテキスト・スイッチから第2の所定の期間の後に生じることが可能である。即ち、コンテキスト・スイッチが行われてから所定の期間が経過した後、第2の例外が生成されて、時間のかかる命令が実行され得ないよう制御値が状態を変化させるようにする。ハイパーバイザを利用する実施例において、第2のソフトウェア(例えば、ハイパーバイザ)が、第2の例外に応答して処理回路を制御することが可能である。コンテキスト・スイッチは、通常、周期的である。このため、前回のコンテキスト・スイッチ以来、ある期間が経過してから、次のコンテキスト・スイッチが予期されるより前に、時間のかかる命令を抑止することによって、時間のかかる命令の実行が、将来のコンテキスト・スイッチを遅延させる可能性がより低くなり、このため、ハードウェア装置上で実行される他のソフトウェアが影響される可能性がより低くなる。
一部の事例において、第1の所定の期間は、第2の所定の期間より短い。特に、第1の所定の期間の第2の所定の期間に対する比は、1:9であり得る。言い換えれば、時間のかかる命令が実行され得る期間は、時間のかかる命令が実行され得ない期間より長いことが可能であり、時間のかかる命令が実行され得ない期間は、後続のコンテキスト・スイッチが行われる少し前である。この特徴の利点は、時間のかかる命令が全般的に(90%の時間)許され得ることであり、このことは、データ処理デバイスが通常どおり動作することを可能にする。短い期間だけ、時間のかかる命令が抑止される。
第2の例外に応答して、処理回路は、前記時間のかかる命令が実行され得ないことを示す前記第1の状態に制御値を変更するように構成され得る。このようにして、予期される事象に備えて、時間のかかる命令が許されないようにされ、これにより、システムが、時間のかかる命令を実行するように要求されるのではなく、その予期される事象に迅速に応答することがよりうまくできるようにされる。
一部の実施例において、前記処理回路は、第1の例外に応答して前記第2のソフトウェアを実行することに切り換わるように構成される。第2のソフトウェアが、第1の例外が生成されることに反応し得る様々な様態が存在し、それらの様態のうちのいくつかの例が、後段で説明される。これらの例は限定するものではないことが当業者には認識されよう。更に、これらの例は、適宜、任意の様態で組み合わされることが可能である。
第2のソフトウェアが、前記複数の第1のソフトウェアのうちのアクティブのソフトウェアを変更するように前記処理回路を制御するように構成され得る。即ち、前記第1の例外に応答して、第2のソフトウェアが、前記複数の第1のソフトウェアのうちのアクティブのソフトウェアを変更する。例えば、来たるべきコンテキスト・スイッチが通常、許すよりも前に、早期に異なるゲスト・オペレーティング・システムに切り換えられることが可能である。したがって、処理回路の処理サイクルが、無駄にされず、切り換えられた先のゲスト・オペレーティング・システムに従って費やされることが可能である。
前記第1の例外に応答して、前記処理回路は、後続のコンテキスト・スイッチが行われるまで、前記複数の第1のソフトウェアを実行しないように構成され得る。そのような状況において、その複数の第1のソフトウェアのうちのいずれも、別のコンテキスト・スイッチが受け取られるまで実行されない。第1の例外が生成されることに応答して第1のソフトウェアのうちのいずれが実行されるかを変えることをしないことにより、処理装置の決定論的性質が維持される。即ち、特定の第1のソフトウェアが実行されることになる時点は、変化しない。しかし、時間のかかる命令を発行した第1のソフトウェアは、実行を続けることを許されない。コンテキスト・スイッチが行われると、前記複数の第1のソフトウェアのうちのアクティブのソフトウェアが変更されることが可能であり、前記複数の第1のソフトウェアのうちのそのアクティブのソフトウェアが、通常どおり命令を実行することを許されることが可能であり、時間のかかる命令は、その後、処理が元の第1のソフトウェアに再び切り換わると、実行される。
一部の事例において、前記第1の例外に応答して、前記処理回路は、前記時間のかかる命令のうちの前記1つを実行することなしに、前記複数の第1のソフトウェアのうちアクティブのソフトウェアの実行を続けるように構成される。即ち、これらの事例において、前記第1のソフトウェアのうちのアクティブのソフトウェアは、アクティブのままであり、実行を続けることを許される。しかし、第1の例外が生成されることをもたらした時間のかかる命令は、実行されず、後の時点で再発行される必要がある可能性がある。
第2の態様によれば、情報処理装置のためのマシン実施方法が提供され、前記方法は、1つ又は複数の時間のかかる命令を備える1つ又は複数の命令を実行するステップと、前記時間のかかる命令が実行され得るかどうかを示すための制御値を保持するステップと、前記時間のかかる命令が実行され得ないことを前記制御値が示す場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つの実行を抑止する第1の例外を生成するステップと、前記時間のかかる命令が実行され得ることを前記制御値が示す場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つを実行するステップとを備える。
第3の態様によれば、1つ又は複数の時間のかかる命令を備える命令を実行するための処理手段と、前記処理回路のために少なくとも1つの例外を生成するための例外生成手段とを備える情報処理装置であって、前記処理手段は、前記時間のかかる命令が実行され得るかどうかを示すための制御値を保持するように構成され、前記例外生成手段は、前記制御値が、前記時間のかかる命令が実行され得ないことを示す第1の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つの実行を抑止するよう処理手段をトリガする第1の例外を生成するように構成され、前記例外生成手段は、前記制御値が、前記時間のかかる命令が実行され得ることを示す第2の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つを実行するように構成される情報処理装置が提供される。
本技法は、単に例として、添付の図面に示される本発明の実施例を参照して更に説明される。
本技法が適用され得る情報処理装置によって実行されるソフトウェアの階層表現を概略で示す図である。 一実施例による情報処理装置を概略で示す図である。 制御値のステータスに基づいて時間のかかる命令の実行を許すこと/無効にすることの実例を示す図である。 一実施例による第1の例外に対する応答を概略で示す図である。 第2の実施例による第1の例外に対する応答を概略で示す図である。 第3の実施例による第1の例外に対する応答を概略で示す図である。 一実施例による時間のかかる命令に応答する方法を概略で示す図である。
図1は、本明細書で説明される技法を利用することが可能な仮想化されたシステムにおいて実行されるソフトウェアを概略で示す。
ソフトウェアは、階層型であり、例外レベルEL1で実行されているいくつかのゲスト・オペレーティング・システムを管理する、例外レベルEL2(特権レベル又は例外レベルとも呼ばれる)において実行されるハイパーバイザ10を備える。例外レベルは、その例外レベルで実行されているソフトウェアに与えられる特権の度合を示す。この実例において、ハイパーバイザは、ゲスト・オペレーティング・システムより高い例外レベルで実行され、したがって、ハイパーバイザは、ゲスト・オペレーティング・システムより高い特権を有する。この特定の例は、3つの例外レベル(EL2、EL1、及びEL0)を示す。しかし、本明細書で説明される技法は、任意の複数の例外レベルを備えるシステムに適用可能であることが認識されよう。
ゲスト・オペレーティング・システムは、リアルタイム・オペレーティング・システム30と、リッチ・オペレーティング・システム50とを含む。リアルタイム・オペレーティング・システムは、ユーザによって要求されたタスクを絶え間なく実行するのではなく、検出された事象に迅速に応答するように通常、設計される。それらの事象の多くは、重大である可能性があり、システムの破局的な障害を回避するようにそれらの事象にある期間内に応答が行われなければならないことを示す。リッチ・オペレーティング・システムもまた、事象に応答することが可能であるが、通常、事象によって駆動されず、通常、重大な事象に全く対処しない。リッチ・オペレーティング・システムの例には、「Windows(登録商標)」及び「Linux(登録商標)」などの自宅環境においてよく知られているオペレーティング・システムが含まれる。例えば、リアルタイム・オペレーティング・システムが、自動車におけるエアバッグ又はブレーキを制御することが可能である一方で、リッチ・オペレーティング・システムは、カー・ステレオを制御することが可能である。
各オペレーティング・システム30、50が、1つ又は複数のリアルタイムの、又は非リアルタイムのタスク40を管理することが可能である。それらのタスクは、更に低い例外レベルEL0で動作する。
この実施例において、ハイパーバイザが、ハイパーバイザのリソースをそれらの複数のゲスト・オペレーティング・システムの間で共有する。即ち、任意の一時点で、それらのゲスト・オペレーティング・システムのうちの1つだけが、アクティブに実行されており、他のオペレーティング・システムは、待機しなければならない。アクティブのオペレーティング・システムの選択、及びいずれのオペレーティング・システムが次に実行されることになるかの決定は、ハイパーバイザによって制御される。
したがって、各ゲスト・オペレーティング・システムの実行は、他方のゲスト・オペレーティング・システムの振舞いによって部分的に決定されることが認識されよう。例えば、リッチ・オペレーティング・システム50のうちの1つが、特に時間がかかり、したがって、割込み不可能であるタスクの実行を開始した場合、ハイパーバイザ10は、その時間のかかる命令が実行されるのが終わるまで、リアルタイム・オペレーティング・システム30に処理回路の共有を許さない可能性がある。したがって、リアルタイム・オペレーティング・システムが重大な事象に応答するのを待機している場合、リアルタイム・オペレーティング・システムは、待機しなければならない。
図1に示される実施例において、ハイパーバイザ10が、ゲスト・オペレーティング・システム30、50、又はそれらのゲスト・オペレーティング・システムによって管理されるタスク40のうちの1つが、リアルタイム・オペレーティング・システム30がリアルタイムの重大な事象に応答することを妨げる可能性がある、時間のかかる命令を実行することを許されるかどうかを制御する制御値20を設定する。したがって、その制御値の状態を変更することによって、時間のかかる命令の実行を禁止して、又は抑止して、リアルタイムの重大な事象を迅速に扱うことができるようにすることが可能である。制御値20は、メモリ70、レジスタ90、処理回路60の一部を形成してもよく、又は完全に別個のデバイスであってもよい。
図2は、本技法を実施するための情報処理装置を概略で示す。この実施例において、処理回路60が、1つ又は複数の命令を実行するために与えられる。その1つ又は複数の命令は、時間のかかる命令を含み得る。この脈絡において、時間のかかる命令は、その命令の実行のために処理回路60の複数のクロック・サイクルを要求する命令であり得る。1つ又は複数の異なるタイプの命令が、時間のかかる命令(時間を消費する命令)であるとあらかじめ決定され得る。
時間のかかる命令の実行が試みられることに対する処理回路60の応答は、制御値20の状態に依存する。例えば、制御値20が値0、即ち、偽に設定された場合、このことは、時間のかかる命令が許されることを示す。逆に、制御値が値1、即ち、真に設定された場合、このことは、時間のかかる命令が許されないことを示す。これらの値は、無論、逆にされることも可能であること、又は他の表現が可能であり得ることが、当業者には認識されよう。例えば、制御値は、時間のかかる命令が実行されることを許される条件のセットを表してもよい。
時間のかかる命令が許されることを制御値20が示す場合に、時間のかかる命令に処理回路60が(例えば、発行状態又は実行段階において)出合ったことに応答して、処理回路60は、その時間のかかる命令を実行する。代替として、時間のかかる命令が許されないことを制御値20が示す場合に、時間のかかる命令に出合ったことに応答して、例外生成回路100が、第1の例外(又は割込み)を生成する。第1の例外は、処理回路60がアクティブのオペレーティング・システムから切り換えるようにさせて、ハイパーバイザ10を代わりに実行させる。ハイパーバイザ10は、時間のかかる命令が実行されないように時間のかかる命令を抑止することで応答する。次に、ハイパーバイザは、時間のかかる命令を実行することなしに前進することを許す更なるアクションを行うことが可能である。
例外生成回路100が、第1の例外に加えて他の例外を生成することが可能である。発行され得る別の例外の一例が、処理回路に異なるオペレーティング・システムの実行の間で切り換えを行わせるコンテキスト・スイッチ例外である。そのような例外は、サイクル・カウンタ110の値に基づいて周期的に生成され得る。
図2に示される実施例において、例外生成回路100が、制御値20を反転させるように処理回路60を制御する第2の例外を生成する。その結果、時間のかかる命令の実行が変更され得る。サイクル・カウンタ110は、この第2の例外を周期的に発行するのに使用される。その結果、処理回路60は、時間のかかる命令が発行されることを周期的に許すように、又は許さないようにされることが可能であり、或いは所与の周期でその2つの状態の間で交替するようにされることが可能である。
情報処理装置は、メモリ保護ユニット(MPU)80を介してアクセスされるメモリ70を更に含み、MPU80は、メモリ70に対するアクセスを制限する。また、情報処理装置は、レジスタのセット90も備える。他の実施例において、MPUの代わりに、又はMPUに加えてメモリ管理ユニット(MMU)が備えられることも可能である。
時間のかかる命令は、実行されるために処理回路60の複数の処理サイクルを要求し得る。しかし、一部の実施例において、時間のかかる命令は、あらかじめ定義されたセットである。例えば、このあらかじめ定義されたセットは、浮動小数点平方根命令及び除算命令を含み得る。また、このあらかじめ定義されたセットは、メモリ70の中に記憶された複数のデータ値がレジスタ90に転送される割込み不可能な多重ロード命令を含むことも可能である。同様に、あらかじめ定義されたリストは、レジスタ90の中に記憶された複数のデータ値がメモリ70に転送される、割込み不可能な多重記憶命令を含むことが可能である。MPU80は、特定の多重ロード命令又は多重記憶命令が割込み不可能であることを示すことが可能である。このことは、例えば、メモリ70の特定の範囲のメモリ・アドレスとの関係でMPU80における特定のビットを設定することによって行われ得る。このことは、デバイス型メモリを扱う際に実行されることが可能であり、このことによって、ハードウェア・デバイスに直接にマップされたメモリの部分を読み取ること、及びそのような部分に書き込むことが、そのハードウェア・デバイスを制御する。そのような命令は、ハードウェアが誤った様態で、又は非決定論的な様態で動作することをもたらし得る、データ値のサブセットだけしかメモリに記憶されない、又はメモリから読み取られない状況が生じないことを確実にするために、割込み不可能でなければならない。
また、命令の所定のリストは、少なくとも1つの所定のシングル・インストラクション・マルチプル・データ(SIMD)を含むことも可能であり、そのような命令は、単一の命令だけを発行することによって複数のデータに対して多数の操作を並行に実行するために使用され得る。例えば、単一の(SIMD)命令が、行列の乗法を実行するのに使用され得る。
図3は、制御値を使用して、時間のかかる命令が実行され得るかどうかを制御することを概略で示す。
時刻tにおいて、制御値は、時間のかかる命令が許されることを示す0に設定される。
時刻tにおいて、時間のかかる命令が発行される。時刻tにおいて、制御値は0に設定されており、時間のかかる命令が許されることが示されているので、その命令は、進むことが許され、したがって、その命令は、処理回路60によって実行される。
時刻tにおいて、制御値が1に設定されて、時間のかかる命令が許されないことが示される。時間のかかる命令は、時刻tにおける予期されるリアルタイムの重大な事象が近いために時刻tにおいて許されないことが可能である。その予期されるリアルタイムの重大な事象に非常に近いところで時間のかかる命令を許さないことによって、時間のかかる命令を扱うことの結果としてそのリアルタイムの重大な事象に対する応答が遅延する状況が防止され得る。
時刻tにおいて、更なる時間のかかる命令が発行される。時刻tにおいて、制御値は、時間のかかる命令が許されないことを示す1であるので、その時間のかかる命令は、実行されることを許されず、代わりに、処理回路60にその時間のかかる命令を抑止させる第1の例外が、例外生成回路100によって生成され、時間のかかる命令が抑止される。
最後に、時刻tにおいて、その予期されるリアルタイムの重大な事象が生じる。時間のかかる命令は、そのリアルタイムの重大な事象が生じるのに先立って許されないようにされているので、時刻tにおいて処理されている、どのような時間のかかる命令も処理される可能性は低い。したがって、そのリアルタイムの重大な事象に、ほとんど遅延なしに、ほとんど即時に応答が行われることが可能である。
図4Aは、時間のかかる命令が許されないことを制御値20が示す場合に、そのような時間のかかる命令が発行されたことに応答して例外生成回路100によって生成された第1の例外に処理回路60が応答する第1の実例を示す。図4Aに示されるとおり、処理回路60は、異なる3つのオペレーティング・システム、OS1、OS2、及びOS3の実行の間で巡回するように構成される。実行は、別々の時間スライス130においてなされ、各時間スライスは、特定のゲスト・オペレーティング・システム専用である。1つのオペレーティング・システムから別のオペレーティング・システムへの(即ち、1つの時間スライスから別の時間スライスへの)切り換わりは、コンテキスト・スイッチと呼ばれる。各コンテキスト・スイッチが行われることに先立って、第2の例外が生成される(図4Aに破線で示される)。第2の例外は、処理回路60に、時間のかかる命令が許されないように制御値20の中に記憶された値を変更させる。コンテキスト・スイッチが行われた後、制御値20は、時間のかかる命令を再び許すように設定される。したがって、図4Aから理解され得るとおり、各時間スライス130は、時間のかかる命令が許される第1の期間140、及び時間のかかる命令が許されない第2の期間120であると考えられることが可能である。図4Aは、第2の期間120が第1の期間140よりも相当に短いことを示す。例えば、第1の期間140の第2の期間120に対する比は、9:1であり得る。その結果、時間のかかる命令は、コンテキスト・スイッチが行われる直前には許されないことを除いては、全般的に許される。したがって、コンテキスト・スイッチが行われ得る前にどの時間のかかる命令もが完了する必要があることになる可能性は低いので、各コンテキスト・スイッチを扱う際にほとんど遅延が存在しないことになる。したがって、3つのオペレーティング・システム、OS1、OS2、及びOS3は、規則的なスケジュールで実行され、コンテキスト・スイッチが遅延されることによる変動をほとんど伴わずに、決定論的な時点で実行することを許される。時間のかかる命令が許されないことを制御値20が示す場合に、時間のかかる命令を実行しようとする試みが行われると、例外生成回路100が、第1の例外を生成して、ハイパーバイザがプロセッサ60によって実行されるようにする。すると、ハイパーバイザは、図4A、図4B、及び図4Cによって例示される、いくつかの様態のうちの1つで応答することが可能である。
図4Aにおいて、処理回路60が、その時間のかかる命令の実行を抑止すること、及びオペレーティング・システムOS1、OS2、及びOS3のいずれも実行しないことで第1の例外に応答する。したがって、その時間のかかる命令に出合うことから次のコンテキスト・スイッチまでの期間150にわたって、ハイパーバイザの一部を形成するソフトウェアが実行され得るが、ゲスト・オペレーティング・システムは、実行され得ない。
図4Bは、図4Aに類似するが、時刻tに第1の例外が生じたことに対する異なる応答を示す。この実例において、時間のかかる命令は、依然として抑止されるが、オペレーティング・システムOS1、OS2、及びOS3のいずれをも実行しないのではなく、間もなく行われることになっている、予期されるコンテキスト・スイッチ動作が前倒しされる。この実施例において、処理リソースは、無駄にされない。しかしながら、システムの決定論的性質は、次のオペレーティング・システムが、通常、予期されているよりも早期に実行させられるので、変化する。したがって、コンテキスト・スイッチ・タイミングを変更するのではなく、図4Aに示されるとおり次のコンテキスト・スイッチを待機することの方がより単純であり得る。
図4Cは、図4A及び図4Bに類似する。時間のかかる命令は、依然として抑止される。しかしながら、時刻tに生じる第1の例外に応答して、オペレーティング・システムOS3の実行が継続される。例えば、その時間のかかる命令が、OS3の下で第1のタスクの一環として行われた場合、OS3は、第1のタスクではなく、異なる第2のタスクを実行することを続けることができることが可能である。その場合、ハイパーバイザが、その時間のかかる命令の実行を防止するために何らかのアクションを実行する。例えば、ハイパーバイザは、その時間のかかる命令が実行されることをもたらすタスクから切り換えて、代わりに、異なるタスクを実行するために、ゲスト・オペレーティング・システムに、そのオペレーティング・システム独自のコンテキスト・スイッチを発行させることが可能である。代替として、ハイパーバイザは、その要求される動作が、現在、実行され得ないことを示すエラー又は例外を発行することで、その時間のかかる命令に応答してもよい。
図5は、一実施例による時間のかかる命令に応答する方法を概略で示す。
ステップS200で、次の命令がフェッチされる。ステップS210で、処理回路60が、そのフェッチされた命令が時間のかかる命令であるか否かを判定する。その命令が時間のかかる命令ではない場合、次にステップS220で、その命令が実行され、方法は、ステップS200に戻る。しかしながら、ステップS210で、その命令が時間のかかる命令であると判定された場合、次にステップS230で、時間のかかる命令が許されることを制御値が示すかどうかが確認される。時間のかかる命令が許されないことを制御値が示すと判定された場合、次にステップS240で、第1の例外が生成され、ステップS250で、時間のかかる命令が抑止される。次に、方法は、ステップS200に戻る。しかしながら、ステップS230で、時間のかかる命令が許されると判定された場合、次にステップS260で、その時間のかかる命令が実行され、方法は、ステップS200に戻る。
特定の実施例が本明細書で説明されてきたが、本技法は、それらの実施例に限定されないこと、及びそれらの実施例に対する多くの変形及び追加が、本発明の範囲内で行われ得ることが認識されよう。例えば、本発明の範囲を逸脱することなく、以下の従属クレームの特徴と独立クレームの特徴の様々な組合せが行われることも可能である。

Claims (24)

  1. 1つ又は複数の時間のかかる命令を備える命令を実行するように構成された処理回路と、
    前記処理回路のために少なくとも1つの例外を生成するように構成された例外生成回路と、を備える情報処理装置であって、
    前記処理回路は、前記時間のかかる命令が実行され得るかどうかを示すための制御値を保持するように構成され、
    前記例外生成回路は、前記制御値が、前記時間のかかる命令が実行され得ないことを示す第1の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つの実行を抑止するよう前記処理回路にもたらす第1の例外を生成するように構成され、
    前記例外生成回路は、前記制御値が、前記時間のかかる命令が実行され得ることを示す第2の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つを実行するように構成される情報処理装置。
  2. 前記時間のかかる命令は、実行されるのに前記処理回路の複数の処理サイクルを要求する命令を備える請求項1に記載の情報処理装置。
  3. 前記時間のかかる命令は、割込みがかけられ得ない命令を備える請求項1又は2に記載の情報処理装置。
  4. 前記時間のかかる命令は、浮動小数点平方根命令、除算命令、割込み不可能な多重ロード命令、割込み不可能な多重記憶命令、及び少なくとも1つの所定のシングル・インストラクション・マルチプル・データ(SIMD)命令のうちの少なくとも1つを備える請求項1から3までのいずれかに記載の情報処理装置。
  5. 前記処理回路は、第1のソフトウェアを第1の特権レベルで実行し、第2のソフトウェアを、前記第1の特権レベルより高い第2の特権レベルで実行するように構成される請求項1から4までのいずれかに記載の情報処理装置。
  6. 前記第2のソフトウェアは、前記制御値を変更するよう前記処理回路を制御するように構成される請求項5に記載の情報処理装置。
  7. 前記例外生成回路は、前記第1のソフトウェアの前記時間のかかる命令のうちの1つに応答して前記第1の例外を生成するように構成される請求項5又は6に記載の情報処理装置。
  8. 前記例外生成回路は、前記第2の特権レベルより低い特権レベルで実行されるソフトウェアの前記時間のかかる命令のうちの1つに応答してのみ第1の例外を生成するように構成される請求項5から7までのいずれか一項に記載の情報処理装置。
  9. 前記第1のソフトウェアは、1つ又は複数のゲスト・オペレーティング・システムを備え、
    前記第2のソフトウェアは、ハイパーバイザを備える請求項5から8までのいずれか一項に記載の情報処理装置。
  10. 前記処理回路は、1つ又は複数の所定の事象に応答して前記制御値を変更するように構成される請求項1から9までのいずれかに記載の情報処理装置。
  11. 前記1つ又は複数の所定の事象は、コンテキスト・スイッチを含む請求項10に記載の情報処理装置。
  12. 前記コンテキスト・スイッチに応答して、前記処理回路は、前記制御値を前記第2の状態に変更するように構成される請求項11に記載の情報処理装置。
  13. 前記1つ又は複数の所定の事象は、第2の例外を含み、
    前記例外生成回路は、予期される事象に第1の所定の期間先行して前記第2の例外を生成するように構成される請求項10から12までのいずれか一項に記載の情報処理装置。
  14. 前記予期される事象は、コンテキスト・スイッチであり、前記第2の例外は、前のコンテキスト・スイッチから第2の所定の期間の後に生じる請求項13に記載の情報処理装置。
  15. 前記第1の所定の期間は、前記第2の所定の期間より短い請求項14に記載の情報処理装置。
  16. 前記第1の所定の期間の前記第2の所定の期間に対する比は、1:9である請求項15に記載の情報処理装置。
  17. 前記第2の例外に応答して、前記処理回路は、前記制御値を前記第1の状態に変更するように構成される請求項13から16までのいずれか一項に記載の情報処理装置。
  18. 前記処理回路は、前記第1の例外に応答して前記第2のソフトウェアを実行することに切り換わるように構成される請求項5から9までのいずれかに記載の情報処理装置。
  19. 前記処理回路は、複数の第1のソフトウェアのうちの1つを前記第1の特権レベルで実行するように構成される請求項18に記載の情報処理装置。
  20. 前記第1の例外に応答して、前記第2のソフトウェアは、前記複数の第1のソフトウェアのうちのアクティブのソフトウェアを変更するよう前記処理回路を制御するように構成される請求項19に記載の情報処理装置。
  21. 前記第1の例外に応答して、前記処理回路は、後続のコンテキスト・スイッチまで、前記複数の第1のソフトウェアを実行しないように構成される請求項19又は20に記載の情報処理装置。
  22. 前記第1の例外に応答して、前記処理回路は、前記時間のかかる命令のうちの前記1つを実行することなしに、前記複数の第1のソフトウェアのうちのアクティブのソフトウェアの実行を続けるように構成される請求項19から21までのいずれか一項に記載の情報処理装置。
  23. 情報処理装置のためのマシン実施方法であって、前記方法は、
    1つ又は複数の時間のかかる命令を備える1つ又は複数の命令を実行するステップと、
    前記時間のかかる命令が実行され得るかどうかを示すための制御値を保持するステップと、
    前記時間のかかる命令が実行され得ないことを前記制御値が示す場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つの実行を抑止する第1の例外を生成するステップと、
    前記時間のかかる命令が実行され得ることを前記制御値が示す場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つを実行するステップとを備える方法。
  24. 1つ又は複数の時間のかかる命令を備える命令を実行するための処理手段と、
    前記処理回路のために少なくとも1つの例外を生成するための例外生成手段とを備える情報処理装置であって、
    前記処理手段は、前記時間のかかる命令が実行され得るかどうかを示すための制御値を保持するように構成され、
    前記例外生成手段は、前記制御値が、前記時間のかかる命令が実行され得ないことを示す第1の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つの実行を抑止するよう前記処理手段にもたらす第1の例外を生成するように構成され、
    前記例外生成手段は、前記制御値が、前記時間のかかる命令が実行され得ることを示す第2の状態にある場合、前記時間のかかる命令のうちの1つに応答して、前記時間のかかる命令のうちの前記1つを実行するように構成される情報処理装置。
JP2016535520A 2013-08-23 2014-07-07 時間のかかる命令の取り扱い Active JP6427575B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1315109.7 2013-08-23
GB1315109.7A GB2517494B (en) 2013-08-23 2013-08-23 Handling time intensive instructions
PCT/GB2014/052053 WO2015025127A1 (en) 2013-08-23 2014-07-07 Handling time intensive instructions

Publications (2)

Publication Number Publication Date
JP2016531363A true JP2016531363A (ja) 2016-10-06
JP6427575B2 JP6427575B2 (ja) 2018-11-21

Family

ID=49355839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016535520A Active JP6427575B2 (ja) 2013-08-23 2014-07-07 時間のかかる命令の取り扱い

Country Status (10)

Country Link
US (1) US10963250B2 (ja)
EP (1) EP3036629B1 (ja)
JP (1) JP6427575B2 (ja)
KR (1) KR102235142B1 (ja)
CN (1) CN105474174B (ja)
BR (1) BR112016002997B1 (ja)
GB (1) GB2517494B (ja)
IL (1) IL244199B (ja)
TW (1) TWI654561B (ja)
WO (1) WO2015025127A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016532205A (ja) * 2013-08-23 2016-10-13 エイアールエム リミテッド データ・アクセスのアクセス属性の扱い

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367322B1 (en) 2015-07-27 2016-06-14 International Business Machines Corporation Age based fast instruction issue
US10942509B2 (en) 2018-01-19 2021-03-09 Ge Aviation Systems Llc Heterogeneous processing in unmanned vehicles
US11029985B2 (en) 2018-01-19 2021-06-08 Ge Aviation Systems Llc Processor virtualization in unmanned vehicles

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152458A (ja) * 2008-12-24 2010-07-08 Fujitsu Ltd 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
JP2011134162A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> タスクの切り換えを制御するシステムおよび方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058410A (en) 1996-12-02 2000-05-02 Intel Corporation Method and apparatus for selecting a rounding mode for a numeric operation
US6427202B1 (en) * 1999-05-04 2002-07-30 Microchip Technology Incorporated Microcontroller with configurable instruction set
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US7181600B1 (en) * 2001-08-02 2007-02-20 Mips Technologies, Inc. Read-only access to CPO registers
US7779239B2 (en) * 2004-07-28 2010-08-17 Intel Corporation User opt-in processor feature control capability
US7590823B1 (en) * 2004-08-06 2009-09-15 Xilinx, Inc. Method and system for handling an instruction not supported in a coprocessor formed using configurable logic
JP5010164B2 (ja) * 2006-03-31 2012-08-29 株式会社日立製作所 サーバ装置及び仮想計算機の制御プログラム
US7797681B2 (en) 2006-05-11 2010-09-14 Arm Limited Stack memory selection upon exception in a data processing system
US20080072019A1 (en) * 2006-09-19 2008-03-20 Avinash Sodani Technique to clear bogus instructions from a processor pipeline
US20090037918A1 (en) * 2007-07-31 2009-02-05 Advanced Micro Devices, Inc. Thread sequencing for multi-threaded processor with instruction cache
US8397235B2 (en) 2008-10-07 2013-03-12 Futurewei Technologies, Inc. User tolerance based scheduling method for aperiodic real-time tasks
US8429648B2 (en) * 2009-05-28 2013-04-23 Red Hat, Inc. Method and apparatus to service a software generated trap received by a virtual machine monitor
CN101826000A (zh) * 2010-01-29 2010-09-08 北京龙芯中科技术服务中心有限公司 流水线微处理器的中断响应确定方法、装置及微处理器核
CN101866281B (zh) * 2010-06-13 2013-05-22 清华大学 一种多周期指令执行方法和装置
GB2482701C (en) * 2010-08-11 2018-12-26 Advanced Risc Mach Ltd Illegal mode change handling
GB2489000B (en) * 2011-03-14 2019-09-11 Advanced Risc Mach Ltd Diagnosing code using single step execution
US9146767B2 (en) * 2012-06-19 2015-09-29 Raytheon Company Secure cloud hypervisor monitor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152458A (ja) * 2008-12-24 2010-07-08 Fujitsu Ltd 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
JP2011134162A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> タスクの切り換えを制御するシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016532205A (ja) * 2013-08-23 2016-10-13 エイアールエム リミテッド データ・アクセスのアクセス属性の扱い

Also Published As

Publication number Publication date
GB2517494B (en) 2021-02-24
IL244199B (en) 2019-06-30
IL244199A0 (en) 2016-04-21
JP6427575B2 (ja) 2018-11-21
KR102235142B1 (ko) 2021-04-02
BR112016002997B1 (pt) 2022-05-31
GB2517494A (en) 2015-02-25
EP3036629B1 (en) 2021-06-09
US20160202977A1 (en) 2016-07-14
CN105474174A (zh) 2016-04-06
WO2015025127A1 (en) 2015-02-26
EP3036629A1 (en) 2016-06-29
GB201315109D0 (en) 2013-10-09
BR112016002997A2 (ja) 2017-08-01
TW201508636A (zh) 2015-03-01
KR20160045699A (ko) 2016-04-27
TWI654561B (zh) 2019-03-21
CN105474174B (zh) 2020-02-28
US10963250B2 (en) 2021-03-30

Similar Documents

Publication Publication Date Title
EP2315113A1 (en) Multi-threaded processors and multi-processor systems comprising shared resources
US10474494B2 (en) Information processing apparatus, information processing method, and computer program product
KR20160014647A (ko) 인터럽트 핸들링 방법 및 장치
KR20130137591A (ko) 불법 모드 변경처리
JP6427575B2 (ja) 時間のかかる命令の取り扱い
JP2018524731A (ja) セキュアモード状態のデータ・アクセス・トラッキング
CN108241522B (zh) 虚拟化环境中的睡眠状态切换方法、装置及电子设备
US20160011895A1 (en) Virtual machine context management
KR100843134B1 (ko) 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법
EP3502887B1 (en) Interrupt handling for multiple virtual machines
JP2011070290A (ja) データプロセッサ
CN108701031B (zh) 寄存器访问控制
JP7257407B2 (ja) 外部例外処理
JP2008225710A (ja) コンピュータシステム及び該システムで用いられるプロセス切替え方法
US20240086219A1 (en) Transmitting interrupts from a virtual machine (vm) to a destination processing unit without triggering a vm exit
US11726811B2 (en) Parallel context switching for interrupt handling
JP5561294B2 (ja) マイクロコンピュータ
JP2023032307A (ja) 仮想化制御装置および割り込み制御方法
WO2020117666A1 (en) Protection against timing-based security attacks on re-order buffers
JPH05143741A (ja) フレーム・バツフア・アクセス装置
JPH05134843A (ja) フレーム・バツフア・アクセス装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180615

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181029

R150 Certificate of patent or registration of utility model

Ref document number: 6427575

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