JP2020525957A - コンテキスト・データ管理 - Google Patents

コンテキスト・データ管理 Download PDF

Info

Publication number
JP2020525957A
JP2020525957A JP2019572679A JP2019572679A JP2020525957A JP 2020525957 A JP2020525957 A JP 2020525957A JP 2019572679 A JP2019572679 A JP 2019572679A JP 2019572679 A JP2019572679 A JP 2019572679A JP 2020525957 A JP2020525957 A JP 2020525957A
Authority
JP
Japan
Prior art keywords
context data
processing
context
recorded
control
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
JP2019572679A
Other languages
English (en)
Other versions
JP7444610B2 (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 JP2020525957A publication Critical patent/JP2020525957A/ja
Application granted granted Critical
Publication of JP7444610B2 publication Critical patent/JP7444610B2/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/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
    • 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
    • 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
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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
    • 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/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)

Abstract

データ処理システムは、デコーダ回路によってデコードされるコンテキスト・データ依存プログラム命令を実行するための処理回路を含む。このようなコンテキスト・データ依存プログラム命令は、現存するコンテキスト・データに依存する処理を実施する。実例として、コンテキスト・データ依存プログラム命令は浮動小数点命令であってよく、コンテキスト・データは丸めモード情報であってよい。デコーダ回路は、コンテキスト・データが使用されたものとして記録されている場合にこれを保存し、現在のコンテキスト・データが使用されていないものとして記録されている場合にデフォルトのコンテキスト・データを保存する、コンテキスト保存命令をサポートする。デコーダ回路はさらに、現在のコンテキスト・データが使用されたものとして記録されている場合にコンテキスト・データを復元し、現在使用されていないものとして記録されている場合に現在のコンテキスト・データの今後の使用を継続することを許可する、コンテキスト復元命令をサポートする。

Description

本開示は、データ処理システムの分野に関する。より詳細には、本開示は、データ処理システム内のコンテキスト・データの管理に関する。
命令が実行された時点における現在のコンテキスト・データに依存する挙動を有するコンテキスト・データ依存プログラム命令を実行するデータ処理システムを提供することが知られている。例えば、コンテキスト・データ依存プログラム命令は浮動小数点演算プログラム命令であってよく、コンテキスト・データは、これらの浮動小数点演算プログラム命令が実行される際に、複数の丸めモードのうちいずれを使用するべきかを示す構成データであってよい。
本開示の少なくとも1つの実施例は、データを処理するための装置であって、
プログラム命令の制御下で処理動作を実施するための処理回路と、
前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するためのデコーダ回路とを含み、
前記デコーダ回路が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
前記デコーダ回路が、コンテキスト保存命令に応答し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、前記コンテキスト・データを保存するよう前記処理回路を制御し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、デフォルトのコンテキスト・データを保存するよう前記処理回路を制御する、装置を提供する。
本開示の少なくとも1つの実施例は、データを処理するための装置であって、
プログラム命令の制御下で処理動作を実施するための処理回路と、
前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するためのデコーダ回路とを含み、
前記デコーダ回路が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
前記デコーダ回路が、コンテキスト復元命令に応答し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、格納されたコンテキスト・データを使用して前記コンテキスト・データを復元するよう前記処理回路を制御し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、前記コンテキスト・データを維持するよう前記処理回路を制御する、装置を提供する。
本開示の少なくとも1つの実施例は、データを処理するための装置であって、
プログラム命令の制御下で処理動作を実施するための処理手段と、
前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理手段を制御するための制御信号を生成するためのデコーダ手段とを含み、
前記デコーダ手段が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理手段を制御するための前記制御信号を生成し、
前記デコーダ手段が、コンテキスト保存命令に応答し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、前記コンテキスト・データを保存するよう前記処理手段を制御し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、デフォルトのコンテキスト・データを保存するよう前記処理手段を制御する、装置を提供する。
本開示の少なくとも1つの実施例は、データを処理するための装置であって、
プログラム命令の制御下で処理動作を実施するための処理手段と、
前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理手段を制御するための制御信号を生成するためのデコーダ手段とを含み、
前記デコーダ手段が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理手段を制御するための前記制御信号を生成し、
前記デコーダ手段が、コンテキスト復元命令に応答し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、格納されたコンテキスト・データを使用して前記コンテキスト・データを復元するよう前記処理手段を制御し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、前記コンテキスト・データを維持するよう前記処理手段を制御する、装置を提供する。
本開示の少なくとも1つの実施例は、データを処理する方法であって、
プログラム命令の制御下で処理回路を用いて処理動作を実施するステップと、
前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するステップとを含み、
前記デコードするステップが、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
前記デコードするステップが、コンテキスト保存命令に応答し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、前記コンテキスト・データを保存するよう前記処理回路を制御し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、デフォルトのコンテキスト・データを保存するよう前記処理回路を制御する、方法を提供する。
本開示の少なくとも1つの実施例は、データを処理する方法であって、
プログラム命令の制御下で処理回路を用いて処理動作を実施するステップと、
前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するステップとを含み、
前記デコードするステップが、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
前記デコードするステップが、コンテキスト復元命令に応答し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、格納されたコンテキスト・データを使用して前記コンテキスト・データを復元するよう前記処理回路を制御し、
前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、前記コンテキスト・データを維持するよう前記処理回路を制御する、方法を提供する。
本開示の別の実施例は、非一時的なコンピュータ可読媒体に格納されることができるコンピュータ・プログラムの形態であってよく、上述した方法に従って動作するよう汎用コンピュータを制御するためのものであり、従って、このような方法をサポートする仮想マシン実行環境を提供してもよい。
本技術のさらなる態様、特徴、及び利点は、後述する実例の説明を添付図面と併せて読解することで明らかになるであろう。
コンテキスト・データ依存プログラム命令を使用し、且つコンテキスト管理プログラム命令をサポートするデータ処理システムを模式的に示す図である。 コンテキスト保存命令の実行に関する処理を模式的に示すフロー図である。 コンテキスト復元命令の実行に関する処理を模式的に示すフロー図である。 ある状況におけるコンテキスト保存プログラム命令及びコンテキスト復元プログラム命令の使用を模式的に示す図である。 ある状況におけるコンテキスト保存プログラム命令及びコンテキスト復元プログラム命令の使用を模式的に示す図である。 ある状況におけるコンテキスト保存プログラム命令及びコンテキスト復元プログラム命令の使用を模式的に示す図である。 ある状況におけるコンテキスト保存プログラム命令及びコンテキスト復元プログラム命令の使用を模式的に示す図である。 ある状況におけるコンテキスト保存プログラム命令及びコンテキスト復元プログラム命令の使用を模式的に示す図である。 コンテキスト・データ依存プログラム命令及びコンテキスト・データ管理命令をサポートする仮想マシン実行環境を模式的に示す図である。
図1は、プロセッサ・コア4及びメモリ6を備えるデータ処理システム2を模式的に示す。メモリ6は、実行されるプログラム命令8を格納する。メモリ6は、スタック・メモリ領域10と、関連するスタック・ポインタSPとを含み、実行されるコンテキスト・データ保存命令又はコンテキスト・データ復元命令の違いに応じて、コンテキスト・データがそこに保存されることができ、また、そこから復元されることができるスタック・メモリを提供する。
プロセッサ・コア4は、多数の関数ブロックを含むが、明確化のため、図1の実例はこれらのブロックのうちいくつかのみを含む。プログラム命令は、フェッチ回路12によってメモリ6からフェッチされ、フェッチ回路12から、これらのプログラム命令をデコードして制御信号18を生成する働きをするデコーダ回路16に供給され、これらの制御信号18は、デコードされたプログラム命令によって指定された処理動作を実施するようプロセッサ・コア4内のその他の関数ブロックを制御するために使用される。
プロセッサ・コア4は、処理回路20を含む。本実例の図では、処理回路20は、浮動小数点プログラム命令を実行するための浮動小数点処理回路22と、汎用プログラム命令(整数プログラム命令を含んでもよい)を実行するための汎用処理回路24とを含む。浮動小数点処理回路22は、浮動小数点処理回路22によって操作される浮動小数点オペランドを格納する働きをする浮動小数点レジスタ・ファイル26を含む。汎用処理回路24は、汎用処理回路24によって操作されるオペランドを格納する働きをする汎用レジスタ・ファイル25を含む。
様々な異なる構成パラメータに応答して処理回路20の構成及び動作を制御する構成制御回路28もまた、処理回路20内に含まれる。これらの構成パラメータは、浮動小数点コンテキスト・データ・レジスタ30内に格納された浮動小数点コンテキスト・データ(FPSCR及びSFPA)を含む。構成データは、プロセッサ・コア4が現在セキュア・ドメイン内で実行しているのか、非セキュア・ドメイン内で実行しているのかを示す、セキュリティ・レジスタ32内に格納されたNS/Sフラグをさらに含んでもよい(例えば、ARM Limited、Cambridge、Englandによって設計されたTrustzoneアーキテクチャを用いたシステムによって提供されるものなど)。セキュア・ドメイン内で動作している時、処理回路20はセキュア・データにアクセスできる。非セキュア・ドメインで動作している時、処理回路はこのようなセキュア・データにはアクセスできない。このようなセキュア・データの例に、メモリ6のメモリ・アドレス領域内のデータがあり、このようなデータは、セキュア・ドメインで動作している時にプロセッサ・コア4にアクセスでき、非セキュア・ドメインで動作している時にプロセッサ・コア4にアクセスできない、セキュア・データとして指定され、管理される。
アクセス制御レジスタ34は、アクセス制御値(CPACR/NSACR)を格納し、アクセス制御値は、これらの値によって示される現在の構成における処理回路20が特定の処理リソースを使用することを許可されるか否かを示す。例えば、これらのアクセス制御フラグの値に応じて、処理回路20は所与の時点において、浮動小数点回路22の使用を許可されることもあれば、許可されないこともある。その他のコンテキスト構成フラグ値が存在し、それが使用され得ることも可能であり、例えば、異なる処理スレッド間だけでなく、異なるコンテキスト間、ドメイン間及びモード間を切り替えるプログラム命令の実行中に発生する構成及びコンテキスト・データの変更を、データ処理システム2のハードウェア機構が制御及び監視するか否かをハードウェア・レベルで示すことができるAPSEN値がある。例えば、APSENフラグが所与の値を有する時、コンテキスト・データを管理するためのハードウェア機構が無効化されることができ、このような管理の責務が実行中のソフトウェアに課せられる。このような状況でもなお、システムは、例えば、セキュア・ドメイン動作から非セキュア・ドメイン動作へのデータの漏洩を阻止する、又は、スレッドが最初に浮動小数点を使用する際にデフォルトのコンテキスト・データを用いて初期化された新しいコンテキストを作成する働きができるように、コンテキスト・データ管理のバックアップ・レベルを提供することができる。
前述したように、本技術は、コンテキスト・データ依存プログラム命令によって実施されるべき処理動作を少なくとも部分的に指定するコンテキスト・データの管理に関する。このようなコンテキスト・データ依存プログラム命令の一例が、浮動小数点演算プログラム命令であり、この場合のコンテキスト・データの例は、使用されるべき特定の丸めモードを指定するデータでよい。コンテキスト・データの他の形態もまた、可能である。
構成制御回路28は、コンテキスト・データが使用されたか否か、及び、このようなコンテキスト・データがセキュア・ドメインでの動作時に使用されたか否かを記録する働きをするフラグを使用し、且つこれを管理する。より詳細には、構成制御回路28は、浮動小数点コンテキスト・データが浮動小数点命令の制御に使用されるためにアクセスされたかどうかを示す値を有するフラグ値FPCAを保持し、且つこれを使用する。構成制御回路28はさらに、FPコンテキスト・データ・レジスタ30の一部であり、浮動小数点プログラム命令がセキュア・ドメイン動作中に使用されたか否かを示す、フラグSFPAを設定し、且つこれを使用する。例えば、SFPAは、(例えば、プログラム制御下で)スイッチがセキュア・ドメイン動作に切り替わると「0」値に設定されることができ、セキュア・ドメイン内で最初の浮動小数点プログラム命令が実行されると、ハードウェアはこのSFPAフラグを「1」に変更することができる。このようにして、浮動小数点操作が実施されているセキュア・ドメイン動作から、浮動小数点操作が実施されない非セキュア・ドメイン動作に切り替わる場合に、非セキュア・ドメイン動作中に浮動小数点レジスタ・ファイル26に触れないなら、浮動小数点レジスタ・ファイル26のコンテキストの保存及びその後の復元のオーバーヘッドを被る必要がなくなるため、浮動小数点レジスタ値のレイジー・セービングをサポートできる可能性がある。
本開示は、コンテキスト保存命令CXTSave及びコンテキスト復元命令CXTRestoreの提供を含む。図2は、デコーダ回路16によってコンテキスト保存命令をデコードすることに応答して、処理回路20によって実施される処理動作を模式的に示すフロー図である。処理は、コンテキスト保存命令がデコードされるまでステップ36で待機する。ステップ38は、コンテキスト・データのハードウェア選択的保存が無効化されているか否かを判定する。「0」値を有するAPSENフラグによって示されるようにハードウェア選択保存が無効化されていれば、ステップ40はとばされ、処理はそのままステップ42に進む。ハードウェア選択的保存が無効化されていなければ、処理はステップ40に進み、現在の浮動小数点コンテキスト・データが使用されたものとして記録されている(すなわち、FPCA=1)か否かについて判定を行う。ステップ40での判定が、コンテキスト・データが使用されたものとして記録されていないというものであれば、処理はステップ44に進み、(命令の種別に応じて)デフォルトの非セキュア・コンテキスト・データが、現在のスタック・ポインタ値SPによって指示されたメモリ6内のスタック・メモリ領域10か、又は、汎用レジスタ・ファイル25内のレジスタのどちらか一方に(必要に応じて、より簡単に操作できる場所から)保存される。コンテキスト・データがスタック・メモリ領域10に格納されていれば、ステップ46は続いて、スタック・ポインタ値を更新する働きをする。
ステップ40における判定で、コンテキスト・データが使用されたものとして記録されていれば、ステップ42が、アクセス制御レジスタ34内に格納されたアクセス制御値(CPACR/NSACR)をチェックし、浮動小数点プログラム命令(コンテキスト・データ依存命令)の使用が現在許可されているかを判定する働きをする。このような使用が許可されていなければ、且つ、依然としてそれらが使用されたものとして記録されていれば、処理はステップ48に進み、障害がトリガされる。ステップ42におけるチェックが、浮動小数点処理回路22のアクセス/使用が許可されていることを示せば、処理はステップ50に進み、現在のコンテキスト・データ(FPSCR及びSFPA)が、前述したように、(命令種別に応じて)スタック・メモリ領域10又はレジスタのどちらか一方に保存される。ステップ52は、コンテキスト・データがセキュア処理中に使用されたものとして記録されている(すなわち、SFPA=1)かどうかを判定する。コンテキスト・データがセキュア処理中に使用されたものとして記録されていれば、制御はステップ46に進み、ステップ50でコンテキスト・データがスタック・メモリ領域10に保存されていれば、スタック値が更新される。
ステップ52におけるチェックが、現在のコンテキスト・データがセキュア処理中に使用されたものとして記録されていないことを示せば(SFPA=0)、フローはステップ54に進み、コンテキスト・データは非セキュアのデフォルト・コンテキスト・データに設定され、それによって、前回の非セキュア・ドメイン処理中に使用された可能性のある如何なる現在のコンテキスト・データも上書きする。
図3は、デコーダ回路16によってコンテキスト復元命令CXTRestoreをデコードすることに応答して実施される、処理回路20による処理を模式的に示すフロー図である。ステップ56において、処理はコンテキスト復元命令がデコードされるまで待機する。ステップ58は、ハードウェア選択的復元動作が0値を有するAPSENフラグによって示されるように無効化されているかどうかを判定する。ハードウェア選択的復元が無効化されていれば、ステップ60はとばされ、処理はステップ62に進む。ハードウェア選択的復元が無効化されていなければ、処理はステップ60に進み、現在のコンテキスト・データが使用されたものとして記録されている(FPCA=「1」)か否かについて判定を行う。現在のコンテキスト・データが使用されていないものとして記録されていれば、復元動作はスキップされる。しかしながら、処理がステップ64に進む際に、ステップ56でデコードされたコンテキスト復元命令がコンテキスト・データ値又はスタック・メモリ領域10からの値の復元を示すものであれば、ステップ60での判定が復元を実施させないように作用しても、ステップ64は、実際に復元が実施された時と同じようにスタック・ポインタ値を更新する働きをする。ステップ60での判定が、コンテキスト・データが使用されたというものであれば、ステップ62がアクセス制御値(CPSCR/NSACR)をチェックし、これらの値がコンテキスト・データ依存命令(浮動小数点命令)の使用が現在許可されていることを示すかを判定する働きをする。このような使用が許可されておらず、且つ、依然としてコンテキスト・データが使用されたものとして示されていれば、ステップ64で障害がトリガされる。ステップ62における判定で、発生したコンテキスト・データ依存命令の使用が許可されることをアクセス制御値が示していれば、処理はステップ66に進み、保存されたコンテキスト・データ(FPSCR及びSFPA)は、コンテキスト復元命令の詳細な形態に応じて、スタック・メモリ領域10又はレジスタのどちらか一方から復元される。続いて、処理はステップ64に進み、コンテキスト復元命令がスタック・メモリ領域10から復元する形態であれば、スタック・ポインタが更新される。
CXTSave命令及びCXTRestore命令には、2つの種別がある。FPSCR及びSFPAがスタックに直接保存及び復元されることを可能とするメモリ・アクセス命令と、FPSCR及びSFPAを汎用レジスタ25の内外に移動することができるMOVスタイル命令である(R[])。FPCCR.ASPENを0に設定することによって、ソフトウェアが浮動小数点(FP)状態のハードウェア管理を無効化することができる点に注意が必要である。このような場合、プロセッサはアクティブなFPコンテキストがあるかどうかを判定することができない。安全なソリューションを保証するため、これらの命令は、ASPENが0であればアクティブなFPコンテキストがあると見なす。
これらの命令が異なる条件下でどのように動作するかを説明する、いくつかの実例を図4から図8に示す。単純化のため、これらの実例は1つのセキュア関数のみを示しており、その結果、コンパイラが、FP命令がセキュア状態で実行されたかどうかを把握することが可能である。しかし、実際のコードでは、入れ子になったセキュア関数の呼び出しが多段を成している可能性が考えられ、それが異なる供給元のライブラリに渡っている可能性もあり、FPがセキュア状態で使用されたかどうかをゲートウェイ・セキュア関数のコンパイル時に判定することは困難となる。
図4は、セキュア関数が呼び出される前にFPがアクティブでない場合(FPCA=0)を示しており、セキュア関数中にFP命令が実行されないため、FPは非アクティブのままとなる。その結果、関数の開始時におけるCXTSave命令は、SFPAの値と併せてFPSCRのNSデフォルト値(すなわちFPDSCR_NS)をメモリに格納する。関数が戻る前にCXTRestoreが実行されるが、FPがアクティブでないため、NOPとして作用する。全体的な結果としてFP状態に対する変更は実施されないが、現在のスレッドにアクティブなFPコンテキストがなく、FPコンテキスト・データ・レジスタ30内のデータが別のスレッド/例外レベルに属する可能性があるため、これが望ましい結果である。
図5に示す実例は、セキュア関数の呼び出し前にFPがアクティブでない実例1に類似しており、そのためCXTSaveがNSデフォルト値をメモリに格納する。しかし、本例では、セキュア関数がFP命令を実行し、それによってFPCAは1に設定される。関数の最後にCXTRestoreが実行される際にアクティブなFP状態があるため、FPSCRはメモリに格納された値に設定される。CXTSaveがNSデフォルト値を格納したため、CXTRestoreは、NS状態に戻す準備としてFP状態をNSデフォルト値に初期化する効果を有する。NS状態で実行された最初のFP命令(ポイント1を参照)はそのため、正しいFPコンテキストを得る。
図6に示す実例では、セキュア関数が呼び出される前にスレッドがアクティブなFPコンテキスト(FPCA=1)を有する。その結果、セキュア関数開始時のCXTSaveはFPSCR及びSFPAの現在の値をメモリに格納し、FPSCRをNSデフォルト値(すなわちFPDSCR_NS)に設定する。ポイント1において、セキュア状態において最初のFP命令が実行され、これによってFPSCRはセキュア・デフォルト値(FPDSCR_S)に設定される(注意:これはFP命令が実行された際にSFPAフラグが0であることによるもので、既存アーキテクチャの機能である)。NS状態における次のFP命令(ポイント2を参照)がセキュア関数呼び出し前のNSFP命令と同じFPSCR値を参照するよう、関数の最後にCXTRestoreがFPSCRの直前のNS値を復元する。
図7に示す実例は、実例3と類似するが、セキュア関数が非セキュア関数への2つの入れ子呼び出しを有し、1つはセキュア関数内の最初のFP使用の前に、1つはその後にある。本アーキテクチャにおけるいくつかの既存の命令/機能は、ポイント2において、セキュアFP状態が効率的に保存され、非セキュア関数から保護され得ることを意味する。これらの機能はまた、非セキュア関数もFPSCRにおけるデフォルトNS値(割り込みハンドラからコールバック関数が実行される場合と同様に)を参照することを意味する。セキュア関数開始時におけるCXTSaveは、アクティブなFP状態(FPCA=1)がNS状態(SFPA=0)に属することを検出し、それによって、FPSCRをデフォルトNS値に設定する。その結果、ポイント1におけるNS関数はFPSCRの直前のNS値を参照しないが、代わりにポイント2におけるNS関数と同じFPSCR値、すなわちNSデフォルト値(FPDSCR_NS)を参照する。このことは重要であり、NSコールバック関数が参照できる状態は、呼び出し元のセキュア関数が浮動小数点命令を実行したか否かに依存するべきでない。
図8に示す実例では、非セキュアなコードがゲートウェイ・セキュア関数を呼び出し、次に別のセキュア・ゲートウェイ関数を呼び出す。どちらのセキュア関数も非セキュア状態から呼び出されることができるゲートウェイ関数であるため、これらは関数のプロローグ及びエピローグにおいてCXTSave及びCXTRestoreを使用している。
・ポイント1において、現在のコンテキスト・データ(FPSCR及びSFPA)はメモリに押し出され、FPSCRはNSデフォルト値(FPDSCR_NS)に設定される。
・ポイント1とポイント2との間でFP命令が実行されないため、ポイント2において現在のコンテキスト・データ(FPSCR及びSFPA)は再びメモリに押し出され、FPSCRはNSデフォルト値(FPDSCR_NS)に設定される。ポイント1においてFPSCRがNSデフォルト値(FPDSCR_NS)に設定されたため、ポイント2においてメモリに押し出された値はNSデフォルト値であり、ポイント1以前のFPSCRの値ではない。
・ポイント3において、セキュアFP命令が実行され、これによって、実例2のようにセキュアFPコンテキストが作成される。すなわち、SFPAは1に設定され、FPSCRはSデフォルト値(FPDSCR_S)に初期化される。
・ポイント4において、CXTRestoreがコンテキスト・データ(FPSCR及びSFPA)をポイント2以前の値に復元する、すなわち、FPSCRはNSデフォルト値(元はFPDSCR_NSから)に、また、SFPAは0に設定される。
・内部セキュア関数に戻った後、ポイント5においてセキュアFP命令が実行される。一見すると、このFP命令は、直前のポイントで復元されたFPSCRのNSデフォルト値の影響を受け得るように見える。しかし、CXTSave及びCXTRestoreがSFPAの値も同様に保存及び復元するため、ポイント2におけるSFPAの元の値(すなわち0)が復元されている。従って、ポイント5におけるFP命令によって、再びFPSCRは安全なセキュア・デフォルト値(FPDSCR_S)から再初期化される。
・ポイント6において、NS関数によって実行される次の任意のFP命令がポイント1以前のFPSCRの元の値を参照し直すよう、ポイント1で保存された元のコンテキスト・データが復元される。
図9は、使用され得る仮想マシンの実装を示す。前述した実施例が対象技術をサポートする特定の処理ハードウェアを動作させるための装置及び方法に関して本発明を実施する一方、ハードウェア・デバイスのいわゆる仮想マシンの実装を提供することも可能である。これらの仮想マシンの実装は、仮想マシン・プログラム510をサポートするホスト・オペレーティング・システム520を実行するホスト・プロセッサ530上で稼働する。典型的には、リーズナブルな速度で実行する仮想マシンの実装を提供するために大規模で強力なプロセッサが必要とされるが、このようなアプローチは、互換性又は再利用の理由で別のプロセッサにネイティブなコードを実行する要求がある場合など、特定の状況で正当化され得る。仮想マシン・プログラム510は、コンピュータ可読記憶媒体(非一時的な媒体であってよい)に格納されることができ、仮想的なハードウェア・インタフェース(命令実行環境)をゲスト・プログラム500に提供するが、このインタフェースは、仮想マシン・プログラム510によってモデル化されたデバイスである実ハードウェアによって提供されるハードウェア・インタフェースと同じである。従って、上述したメモリ・アクセスの制御を含むプログラム命令は、仮想マシン・プログラム510を用いてゲスト・プログラム500内から実行され、仮想マシン・ハードウェアとの相互作用をモデル化することができる。ゲスト・プログラムが、ハードウェア上で直に稼働するよう設計されたベア・メタル・アプリケーション(実でも仮想でもよい)、又は、それ自体がゲスト・アプリケーションをホストすることができるゲスト・オペレーティング・システムであってよいことは理解されるであろう。
本明細書に、本発明を説明する実施例を添付図面を用いて詳述したが、本発明はこれらの正確な実施例に制限されるものではなく、添付された特許請求の範囲によって定められた本発明の範囲及び意図から逸脱することなく、当業者による様々な変更や改良が成され得ることを理解されたい。

Claims (21)

  1. データを処理するための装置であって、
    プログラム命令の制御下で処理動作を実施するための処理回路と、
    前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するためのデコーダ回路とを含み、
    前記デコーダ回路が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
    前記デコーダ回路が、コンテキスト保存命令に応答し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、前記コンテキスト・データを保存するよう前記処理回路を制御し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、デフォルトのコンテキスト・データを保存するよう前記処理回路を制御する、装置。
  2. 前記コンテキスト・データ依存プログラム命令が浮動小数点プログラム命令であり、前記コンテキスト・データが浮動小数点構成データであり、前記浮動小数点プログラム命令が前記浮動小数点構成データに依存する浮動小数点処理動作を指定する、請求項1に記載の装置。
  3. 前記デフォルトのコンテキスト・データがデフォルトの浮動小数点構成データである、請求項2に記載の装置。
  4. 前記処理回路が、セキュア・ドメイン及び非セキュア・ドメインを含む複数のドメインで動作し、前記セキュア・ドメインでの動作時に前記処理回路がセキュア・データにアクセスでき、前記非セキュア・ドメインでの動作時に前記処理回路が前記セキュア・データにアクセスできない、請求項1から3までのいずれか一項に記載の装置。
  5. 前記コンテキスト・データが前記処理回路によって保存され、前記コンテキスト・データが前記セキュア・ドメインで処理中に使用されていないものとして記録されている場合に、前記処理回路が前記コンテキスト・データを前記非セキュア・ドメイン向けのデフォルトのコンテキスト・データに設定する、請求項4に記載の装置。
  6. 前記コンテキスト・データが前記処理回路によって保存され、前記コンテキスト・データが前記セキュア・ドメインで処理中に使用されたものとして記録されている場合に、保存された前記コンテキスト・データの使用を維持する、請求項5に記載の装置。
  7. 前記コンテキスト保存命令が、
    前記コンテキスト・データが使用されたものとして記録されている場合に、前記セキュリティ・ドメイン指示フラグが、前記コンテキスト・データが前記セキュア・ドメインによって使用されたものとして記録されたかを示すよう設定され、
    前記コンテキスト・データが使用されたものとして記録されていない場合に、前記セキュリティ・ドメイン指示フラグが、前記セキュア・ドメインによって使用されていないことを示す値に設定されるように、
    前記コンテキスト・データが使用されたものとして記録されているかどうかに応じて、セキュリティ・ドメイン指示フラグを保存するよう前記処理回路を制御する、請求項4から6までのいずれか一項に記載の装置。
  8. 前記処理回路が現在、前記コンテキスト・データ・プログラム命令の使用を許可されていない場合に、前記コンテキスト・データが使用されたものとして記録されているかどうかに応じて、障害対応の例外がトリガされる、請求項1から7までのいずれか一項に記載の装置。
  9. 選択的なコンテキスト・データのハードウェア制御が無効化されている場合に、前記コンテキスト・データが、使用されたものとして記録され、且つ、コンテキスト保存命令に応答して保存されたものとして扱われるよう、選択的なコンテキスト・データ保存のハードウェア制御がソフトウェア構成可能なフラグによって無効化される、請求項1から8までのいずれか一項に記載の装置。
  10. 前記コンテキスト・データがメモリ内の位置に保存される、及び、
    前記コンテキスト・データが汎用レジスタ・ファイル内のレジスタに保存される、
    のうちの一方である、請求項1から9までのいずれか一項に記載の装置。
  11. データを処理するための装置であって、
    プログラム命令の制御下で処理動作を実施するための処理回路と、
    前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するためのデコーダ回路とを含み、
    前記デコーダ回路が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
    前記デコーダ回路が、コンテキスト復元命令に応答し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、格納されたコンテキスト・データを使用して前記コンテキスト・データを復元するよう前記処理回路を制御し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、前記コンテキスト・データを維持するよう前記処理回路を制御する、装置。
  12. 前記コンテキスト・データ依存プログラム命令が浮動小数点プログラム命令であり、前記コンテキスト・データが浮動小数点構成データであり、前記浮動小数点プログラム命令が前記浮動小数点構成データに依存する浮動小数点処理動作を指定する、請求項11に記載の装置。
  13. 前記処理回路が現在、前記コンテキスト・データ・プログラム命令の使用を許可されていない場合に、前記コンテキスト・データが使用されたものとして記録されているかどうかに応じて、障害対応の例外がトリガされる、請求項11又は12に記載の装置。
  14. 前記処理回路が、セキュア・ドメイン及び非セキュア・ドメインを含む複数のドメインで動作し、前記セキュア・ドメインでの動作時に前記処理回路がセキュア・データにアクセスでき、前記非セキュア・ドメインでの動作時に前記処理回路が前記セキュア・データにアクセスできず、また、前記処理回路が前記コンテキスト復元命令によって、前記セキュア・ドメインが前記コンテキスト・データを使用したかどうかを示すセキュリティ・ドメイン指示フラグを復元するよう制御され、前記復元が、前記コンテキスト・データが使用されたものとして記録されているかどうかに依存する、請求項11から13までのいずれか一項に記載の装置。
  15. 前記コンテキスト・データがメモリ内の位置から復元される、及び、
    前記コンテキスト・データが汎用レジスタ・ファイル内のレジスタから復元される、
    のうちの一方である、請求項11から14までのいずれか一項に記載の装置。
  16. 選択的なコンテキスト・データのハードウェア制御が無効化されている場合に、コンテキスト復元命令に応答して、前記コンテキスト・データが使用されたものとして記録されたものとして扱われるよう、選択的なコンテキスト・データ保存のハードウェア制御がソフトウェア構成可能なフラグによって無効化される、請求項11から15までのいずれか一項に記載の装置。
  17. データを処理するための装置であって、
    プログラム命令の制御下で処理動作を実施するための処理手段と、
    前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理手段を制御するための制御信号を生成するためのデコーダ手段とを含み、
    前記デコーダ手段が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理手段を制御するための前記制御信号を生成し、
    前記デコーダ手段が、コンテキスト保存命令に応答し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、前記コンテキスト・データを保存するよう前記処理手段を制御し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、デフォルトのコンテキスト・データを保存するよう前記処理手段を制御する、装置。
  18. データを処理するための装置であって、
    プログラム命令の制御下で処理動作を実施するための処理手段と、
    前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理手段を制御するための制御信号を生成するためのデコーダ手段とを含み、
    前記デコーダ手段が、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理手段を制御するための前記制御信号を生成し、
    前記デコーダ手段がコンテキスト復元命令に応答し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、格納されたコンテキスト・データを使用して前記コンテキスト・データを復元するよう前記処理手段を制御し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、前記コンテキスト・データを維持するよう前記処理手段を制御する、装置。
  19. データを処理する方法であって、
    プログラム命令の制御下で処理回路を用いて処理動作を実施するステップと、
    前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するステップとを含み、
    前記デコードするステップが、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
    前記デコードするステップが、コンテキスト保存命令に応答し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、前記コンテキスト・データを保存するよう前記処理回路を制御し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、デフォルトのコンテキスト・データを保存するよう前記処理回路を制御する、方法。
  20. データを処理する方法であって、
    プログラム命令の制御下で処理回路を用いて処理動作を実施するステップと、
    前記プログラム命令をデコードして、前記処理動作を実施するよう前記処理回路を制御するための制御信号を生成するステップとを含み、
    前記デコードするステップが、少なくとも1つのコンテキスト・データ依存プログラム命令及びコンテキスト・データに応答して、前記コンテキスト・データ依存プログラム命令及び前記コンテキスト・データによって指定されたコンテキスト・データ依存処理動作を実施するよう前記処理回路を制御するための前記制御信号を生成し、
    前記デコードするステップが、コンテキスト復元命令に応答し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されたものとして記録されている場合に、格納されたコンテキスト・データを使用して前記コンテキスト・データを復元するよう前記処理回路を制御し、
    前記コンテキスト・データがコンテキスト・データ依存処理動作を制御するために使用されていないものとして記録されている場合に、前記コンテキスト・データを維持するよう前記処理回路を制御する、方法。
  21. 請求項19又は20に記載の方法に従って動作するようコンピュータを制御するための、仮想マシン・コンピュータ・プログラム。
JP2019572679A 2017-07-05 2018-06-19 コンテキスト・データ管理 Active JP7444610B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1710790.5 2017-07-05
GB1710790.5A GB2564144B (en) 2017-07-05 2017-07-05 Context data management
PCT/GB2018/051701 WO2019008323A1 (en) 2017-07-05 2018-06-19 CONTEXTUAL DATA MANAGEMENT

Publications (2)

Publication Number Publication Date
JP2020525957A true JP2020525957A (ja) 2020-08-27
JP7444610B2 JP7444610B2 (ja) 2024-03-06

Family

ID=59592414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019572679A Active JP7444610B2 (ja) 2017-07-05 2018-06-19 コンテキスト・データ管理

Country Status (9)

Country Link
US (1) US11704127B2 (ja)
EP (1) EP3649549B1 (ja)
JP (1) JP7444610B2 (ja)
KR (1) KR102584039B1 (ja)
CN (1) CN110799940B (ja)
GB (1) GB2564144B (ja)
IL (1) IL271662B2 (ja)
TW (1) TWI822685B (ja)
WO (1) WO2019008323A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165652A (ja) * 1991-12-16 1993-07-02 Fujitsu Ltd タスク切替え制御方法
JPH0895804A (ja) * 1994-09-26 1996-04-12 Mitsubishi Electric Corp 中央処理装置
JP2012530315A (ja) * 2009-06-19 2012-11-29 アーム・リミテッド データ処理装置および方法
US20130042093A1 (en) * 2007-12-31 2013-02-14 Don A. Van Dyke Context state management for processor feature sets
WO2017009597A1 (en) * 2015-07-15 2017-01-19 Arm Limited Secure mode state data access tracking

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status
US5481719A (en) * 1994-09-09 1996-01-02 International Business Machines Corporation Exception handling method and apparatus for a microkernel data processing system
US5987495A (en) 1997-11-07 1999-11-16 International Business Machines Corporation Method and apparatus for fully restoring a program context following an interrupt
US6810476B2 (en) * 2000-08-09 2004-10-26 Advanced Micro Devices, Inc. Variable state save formats based on operand size of state save instruction
JP5154119B2 (ja) * 2007-03-26 2013-02-27 テレフオンアクチーボラゲット エル エム エリクソン(パブル) プロセッサ
CN101430376B (zh) * 2008-12-24 2011-05-04 北京航空航天大学 利用索引信息加速图形电磁计算目标雷达散射截面预评估系统
GB2474521B (en) * 2009-10-19 2014-10-15 Ublox Ag Program flow control
GB2474522B (en) * 2009-10-19 2014-09-03 Advanced Risc Mach Ltd Register state saving and restoring
US10102003B2 (en) * 2012-11-01 2018-10-16 International Business Machines Corporation Intelligent context management
CN105190541A (zh) 2013-03-15 2015-12-23 索夫特机械公司 利用具有寄存器视图、源视图、指令视图以及多个注册模板的微处理器体系架构执行指令块的方法
US9417876B2 (en) 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
CN104240285A (zh) * 2014-09-16 2014-12-24 无锡梵天信息技术股份有限公司 利用vtf技术处理cpu大批量数据传入gpu的方法
US9715403B2 (en) * 2015-02-27 2017-07-25 Red Hat, Inc. Optimized extended context management for virtual machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165652A (ja) * 1991-12-16 1993-07-02 Fujitsu Ltd タスク切替え制御方法
JPH0895804A (ja) * 1994-09-26 1996-04-12 Mitsubishi Electric Corp 中央処理装置
US20130042093A1 (en) * 2007-12-31 2013-02-14 Don A. Van Dyke Context state management for processor feature sets
JP2012530315A (ja) * 2009-06-19 2012-11-29 アーム・リミテッド データ処理装置および方法
WO2017009597A1 (en) * 2015-07-15 2017-01-19 Arm Limited Secure mode state data access tracking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
インテル株式会社, インテル・アーキテクチャ・ソフトウェア・ディベロッパーズ・マニュアル 中巻:命令セット・リファレンス, JPN6022025597, 1997, pages 38 - 3, ISSN: 0004953534 *
インテル株式会社, ソフトウェア・ディベロッパーズ・マニュアル 下巻:システム・プログラミング・ガイド, JPN6022025596, 1997, pages 38 - 5, ISSN: 0004953535 *

Also Published As

Publication number Publication date
CN110799940A (zh) 2020-02-14
KR102584039B1 (ko) 2023-10-04
CN110799940B (zh) 2023-12-22
GB2564144B (en) 2020-01-08
GB201710790D0 (en) 2017-08-16
IL271662B2 (en) 2024-03-01
US20200167160A1 (en) 2020-05-28
TWI822685B (zh) 2023-11-21
IL271662B1 (en) 2023-11-01
WO2019008323A1 (en) 2019-01-10
US11704127B2 (en) 2023-07-18
GB2564144A (en) 2019-01-09
JP7444610B2 (ja) 2024-03-06
EP3649549B1 (en) 2023-12-20
EP3649549A1 (en) 2020-05-13
IL271662A (en) 2020-02-27
KR20200020926A (ko) 2020-02-26
TW201907294A (zh) 2019-02-16

Similar Documents

Publication Publication Date Title
US8959318B2 (en) Illegal mode change handling
JP6185487B2 (ja) ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持
JP6807383B2 (ja) 転送プレフィックス命令
JP2009157542A (ja) 情報処理装置及びそのスタックポインタ更新方法
US11663034B2 (en) Permitting unaborted processing of transaction after exception mask update instruction
KR102307581B1 (ko) 레지스터 복구 분기 명령
JP7444610B2 (ja) コンテキスト・データ管理
JP6882320B2 (ja) ベクトル命令の処理
JP5822848B2 (ja) 例外の制御方法、システムおよびプログラム
WO2023144939A1 (ja) コンピュータ、制御方法及び制御プログラム
JP2001125804A (ja) 割り込み処理制御装置および方法
JPH0749777A (ja) 情報処理装置
JP2008305016A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231031

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20231109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240222

R150 Certificate of patent or registration of utility model

Ref document number: 7444610

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150