JP6921800B2 - セキュアモード状態のデータ・アクセス・トラッキング - Google Patents

セキュアモード状態のデータ・アクセス・トラッキング Download PDF

Info

Publication number
JP6921800B2
JP6921800B2 JP2018500364A JP2018500364A JP6921800B2 JP 6921800 B2 JP6921800 B2 JP 6921800B2 JP 2018500364 A JP2018500364 A JP 2018500364A JP 2018500364 A JP2018500364 A JP 2018500364A JP 6921800 B2 JP6921800 B2 JP 6921800B2
Authority
JP
Japan
Prior art keywords
protection
flag
value
security mode
access
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
JP2018500364A
Other languages
English (en)
Other versions
JP2018524731A (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 JP2018524731A publication Critical patent/JP2018524731A/ja
Application granted granted Critical
Publication of JP6921800B2 publication Critical patent/JP6921800B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • 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
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Executing Machine-Instructions (AREA)

Description

この開示は、データ処理システムの分野に関する。より具体的には、この開示は、第1セキュリティモード及び第2セキュリティモードにおいて動作可能であるデータ処理システムに関する。
TrustZone(登録商標)アーキテクチャの特徴を支援するARM(登録商標)リミテッドによって設計されたプロセッサのような、セキュアモード及び非セキュアモードを有するデータ処理システムを提供することが知られている。そのようなシステムの中で重要なのは、セキュアモードで実施される処理に依存する状態データは、特に望まない限り、非セキュアモードではアクセス可能であるべきでない、ということである。
本開示の少なくとも幾つかの実施形態は、データを処理するための装置を提供し、該装置は、
第1セキュリティモード及び第2セキュリティモードで動作するための処理回路と、
処理回路が、関数呼び出しに関連して、第1セキュリティモードに入る際に、第1の値を有するアクセス・トラッキング・フラグを提供するためのフラグ回路であって、前記関数呼び出しに関連して前記第1セキュリティモードで動作している際に、所定の状態データへの少なくとも1つのタイプの最初のアクセスが、処理回路によって検出されるにあたり、処理回路は、前記アクセス・トラッキング・フラグを第2の値に切り替えるように構成される、フラグ回路と、
を備える。
本開示の少なくとも幾つかの更なる実施形態は、データを処理する方法を提供し、該方法は、
第1セキュリティモード及び第2セキュリティモードの1つにおいて処理を実施することと、
処理回路が、関数呼び出しに関連して、前記第1セキュリティモードに入る際に、第1の値を有するアクセス・トラッキング・フラグを提供することと、
前記関数呼び出しに関連して前記第1セキュリティモードで動作している際に、所定の状態データへの少なくとも1つのタイプの最初のアクセスが、処理構成回路によって検出されるにあたり、アクセス・トラッキング・フラグを第2の値に切り替えることと、
を備える。
本開示の少なくとも幾つかの更なる実施形態は、有形のコンピュータプログラム格納媒体上に格納されたコンピュータプログラムを提供し、該コンピュータプログラム格納媒体の中に、コンピュータプログラムは、遅延(lazy)保護プログラム命令及び/又は遅延(lazy)ロードプログラム命令の少なくとも1つを含む。
添付図面を参照しながら、実施例が、単に例として、これから説明されるであろう。
非セキュア処理とセキュア処理との間の一連の関数呼び出し、及びセキュアモード処理に依存する浮動小数点状態データを保護するための関連アクションを模式的に図示する。 セキュアモードから非セキュアモードへの関数呼び出しに際して、セキュア浮動小数点アクセスフラグを保存するフラグ回路を模式的に図示する流れ図である。 非セキュアモードからセキュアモードへの関数のリターンに際して、セキュア浮動小数点アクセスを復元するフラグ回路を模式的に図示する流れ図である。 セキュア浮動小数点アクセスフラグがリセットされてもよい、代替的方法の例を模式的に図示する流れ図である。 セキュア浮動小数点アクセスフラグがリセットされてもよい、代替的方法の例を模式的に図示する流れ図である。 フラグ回路及び状態保護回路による、浮動小数点アクセスに対するハードウェア応答を模式的に図示する流れ図である。 状態保護回路の準備を誘発(trigger)する遅延保護プログラム命令を模式的に図示する流れ図である。 浮動小数点状態データ復元動作、及び保護フラグの解除を誘発する遅延ロードプログラム命令を模式的に図示する流れ図である。 セキュアモード処理に依存する浮動小数点状態データを保護することの一部分として、アクセス・トラッキング・フラグ及び保護フラグの提供を支援するための、フラグ回路及び状態保護を組み込む処理装置を模式的に図示する図である。 代替的実施例を模式的に図示するものであり、この代替的実施例によって、セキュア浮動小数点アクセスフラグは、異なる誘因(trigger)に応じて、リセットされると共に設定されてもよい。
図1は、関数呼び出し(call)及び関数戻り(return)に応じて、非セキュアモードとセキュアモードとの間の処理切り替えを模式的に図示し、それと共に、アクセス・トラッキング・フラグ及び保護フラグの関連制御、並びにスタックメモリへの、及びスタックメモリからの浮動小数点レジスタ状態データの保存動作及び復元動作の関連制御を模式的に図示する。図示されるように、処理は、非セキュア関数fn0で始まるが、この非セキュア関数fn0は、セキュア関数fn1に対して関数呼び出しを行う。この関数呼び出しが行われる時、モードは、非セキュアモードから切り替えられると共に、セキュアモードに入る。これは、アクセス・トラッキング・フラグ(セキュア浮動小数点アクセスフラグSFPA)を第1の値(例えば、“0”)に設定することを誘発する。その後、この関数fn1が浮動小数点レジスタにアクセスするまで、関数fn1を使用するセキュアモードにおける処理が進行する。これは、第1の値から第2の値(例えば、“1”)にアクセス・トラッキング・フラグSFPAを変化させるフラグ回路(フラグコントローラ)によって検出される。アクセス・トラッキング・フラグが第2の値を既に有する場合、浮動小数点レジスタに対する次のアクセスは、その第2の値を有するアクセス・トラッキング・フラグをそのままにする。
セキュアモード関数fn1が非セキュア関数に対して関数呼び出しを行いたい場合、セキュアモード関数fn1は、セキュアモードから出るための準備の一部分として、遅延(lazy)保護プログラム命令VLSTMを実行することを担当する。プロセッサの処理回路による遅延保護命令VLSTMの実行は、多くのアクションを有する。もしアクセス・トラッキング・フラグSFPAが第2の値を有する場合(即ち、第2の値は、浮動小数点レジスタアクセスが、セキュア関数fn1の処理の間に生じたことを示す、”1”という値に設定される)、その時は、保護応答が準備され、且つ保護フラグLSPACTは、この保護応答が準備されたことを示す値に設定される。保護応答準備は、もし必要ならば、浮動小数点レジスタ状態データを格納するのに使用されるために、非セキュアアクセスから保護されたスタックメモリの中に、格納スペースを割り当てることを含む。浮動小数点レジスタ状態データは、この時、スタックへ保存されず、むしろ該データが占有することになるスペースがスタックの中に確保され、且つスタック内でその割り当てられたスペースへのポインタが保存される。
もし、遅延保護プログラム命令が実行される際に、アクセス・トラッキング・フラグSFPAが第1の値を有する(即ち、第1の値は、セキュア関数fn1が任意の浮動小数点アクセスを行わなかったことを示す、“0”という値に設定される)場合、その時は、保護を必要とするセキュア関数fn1に関連付けられたセキュア浮動小数点状態データは存在せず、且つ、従って、保護応答は準備されず、且つ保護フラグLSPACTは設定されない(スペースがセキュアスタックメモリの中に割り当てられる必要は無く、且つポインタは設定されない)。遅延保護プログラム命令VLSTMの実行に加えて、ハードウェアはセキュアモードから非セキュアモードに切り替わる関数呼び出しに応答するが、この応答は、プッシュ動作を介して、セキュア関数fn1のためのその時のアクセス・トラッキング・フラグSFPAの値を、セキュア関数fn1のためのセキュアスタックに保存する(例えば、非セキュアモードにおいてアクセス可能でないメモリ領域に格納される)ことによって行われる。
セキュア関数fn1からの関数呼び出しは、図1の例では、非セキュア関数fn2に向けて行われる。セキュア関数fn1の任意のセキュア浮動小数点状態データは、最初のうちは、浮動小数点レジスタの中に依然として存在する。この浮動小数点状態データを保存しない(saving off)こと、及び浮動小数点状態データをクリアすることについては、デフォルト設定によって、時間及びエネルギーは消費されていない。もし非セキュア関数fn2がいかなる浮動小数点アクセスも行わない場合、そしてその後、セキュア関数fn1が再開される場合、その時は、浮動小数点状態データは、依然として決まった場所に存在するであろう。そして、更なるエネルギー及び時間は、その浮動小数点状態データを復元する必要性を回避することによって、節約されるであろう。
しかしながら、もし浮動小数点レジスタへのアクセスが、LSPACTフラグが“1”に設定されている間に試みられる(例えば、非セキュア関数fn2において実行される浮動小数点命令によって)場合、その時は、セキュア状態保護回路は、セキュア関数fn1の浮動小数点状態データを、以前に実行された遅延保護命令VLSTMによって設定された(準備された)セキュア状態メモリ内の割り当てられた格納領域に保存する役割を果たし、且つ、その後、非セキュア関数fn2による浮動小数点レジスタへのアクセスを許可する前に、浮動小数点レジスタをクリアする。セキュア状態保護回路は、遅延保護VLSTMによって以前に準備された保護応答を実施するが、その理由は、セキュア状態保護回路が次のことを検出するためである。即ち、検出する内容は、保護フラグLSPACTが、浮動小数点レジスタがセキュア関数fn1による処理に依存する状態データを含むことを示すように設定されたこと(例えば、“1”の値を有すること)、及び、セキュアスタックの中にスペースを割り当てると共に、セキュア関数fn1の浮動小数点状態データを保存するプッシュ動作で使用するために、その割り当てられたスペースへのポインタを保存することによって、保護応答が、その浮動小数点状態データのために準備されたこと、である。
保護応答が実施された場合、保護フラグLSPACTは(例えば、“0”という値に)リセットされるが、その理由は、セキュア浮動小数点状態データが保存されると共にクリアされたからであり、従って、非セキュア関数fn2の処理中に生じる、次の浮動小数点アクセスは、そのセキュア浮動小数点状態データに対して、更なる保護応答を誘発する必要がないからである。
図1に示されるように、非セキュア関数fn2は、セキュア関数fn1に処理を戻す関数戻り(function return)を実行することによって終了する。ハードウェアは、この関数戻りに応答するが、この応答は、セキュア関数fn1のエグジット(exit)にあたり、セキュアスタック上に置かれたアクセス・トラッキング・フラグSFPAを復元することによって行われる。再開されたセキュア関数fn1に対してアクセス・トラッキング・フラグSFPAをこのように復元することは、そのセキュア関数fn1内の以前の処理が、浮動小数点レジスタに対して何らかのアクセスを実施したかどうかを示し、且つ、従って、セキュア関数fn1からの関数呼び出しが行われた際に、幾つかのセキュア浮動小数点状態データが現存したことを示す。セキュア関数fn1は、自身が再開される際、遅延(lazy)ロード命令VLLDMを実行することを担当する。このことは、図1において疑似符号で図示されたアクションを有する。より具体的には、もしアクセス・トラッキング・フラグSFPAが第2の値を有する(例えば、“1”に設定される)場合、その時は、保護フラグが依然として設定されるかどうか(例えば、LSPACTが“1”)について、判定が行われる。もし保護フラグが依然として設定されている場合、これは、セキュア関数fn1がVLSTM命令を実行したために、保護応答が誘発されなかったことを示す。万一これが当てはまる場合、その時は、セキュア浮動小数点状態データの復元を行う必要はない。その理由は、セキュア浮動小数点状態データが、浮動小数点レジスタの中に依然として存在するであろうということであり、更にその理由は、介在する処理中に、アクセスの試みが行われなかったからである。保護フラグはリセットされるであろう(LSPACT=0)。そして、更なる処理が実施される必要はない。
逆に、万一アクセス・トラッキング・フラグが第2の値(例えば、SFPA=“1”)を有し、且つ万一、遅延ロードプログラム命令VLLDMが実行される際に、保護フラグが設定されない(例えば、LSPACT=“0”)場合、その時は、これは次のことを示す。即ち、これは、セキュア関数fn1がエグジット(exit)の際に、セキュア浮動小数点状態データが決まった場所に存在したことを指示すると共に、VLSTMを実行することに続いて、且つVLLDM命令の実行の前に、保護応答が誘発されたことを示す。従って、この環境におけるVLLDMプログラム命令は、復元応答を誘発するが、ここで復元応答は、浮動小数点レジスタポップ動作として、保存されたポインタ値によって指示されるセキュアスタック(ポップ)の中から、セキュア浮動小数点状態データを復元する。
このようにして、フラグ回路はアクセス・トラッキング・フラグSFPAを提供することが分かるであろう。ここでアクセス・トラッキング・フラグSFPAは、関数呼び出しに関連して、処理回路がセキュアモードに入る(非セキュア関数fn0からセキュア関数fn1への切り替えが行われる)際に、第1の値(例えば、SFPA=”0”)を有する。フラグ回路は、その後、セキュア関数fn1の処理の間に生じる浮動小数点レジスタへのアクセスを監視する役割を果たし、且つ、万一浮動小数点レジスタへのアクセスが生じる場合、アクセス・トラッキング・フラグを第2の値(SFPA=”0”)へ切り替える。追跡される浮動小数点レジスタへのアクセスは、それらの浮動小数点レジスタへの任意の読み出しアクセス又は書き込みアクセスの形態を取ってもよい。幾つかのタイプのアクセスは、アクセス・トラッキング・フラグの値を切り替えることなく、実施されてもよい。その理由は、それらのアクセスは、潜在的なセキュリティと妥協するような方法では、セキュアモード処理に依存する任意の情報を含む浮動小数点状態データに帰着しないからである。従って、追跡されるアクセスは、少なくとも1つのタイプのものである。このようにして提供されるアクセス・トラッキング・フラグは、以前に説明された遅延保護及び遅延ロードのような機構を可能にするが、これらの機構は、この保護が必要でない場合には、不必要な時間及びエネルギー諸経費を背負い込むことなく、状態データに対して保護を提供するように、履行されるべきものである。図1の例が、浮動小数点レジスタデータである状態データと関連して説明されてきたことは、正しく認識されるであろう。可能なことであるが、同じ機構は、SIMDレジスタデータのような、セキュアモード処理に関連付けられる他の形態の状態データを保護するのに使用されてもよい。
図1は単純な関数呼び出しツリーを表してはいるが、この発明が、複雑な関数呼び出しツリーにおいて、セキュア状態を効率的に保護するのに使用され得るということは、当業者によって正しく認識されるであろう。具体的には、セキュア関数fn1における処理は、(潜在的には異なる時間にコンパイルされる)幾つかの関数に分割されるであろう。それによって、非セキュア関数fn2に対する関数呼び出しを扱うコンパイラは、fn1の開始時には、セキュア状態に入ってから生じた全ての処理に気付かないかもしれない。結果として、コンパイラが、FPレジスタがセキュアコードによってアクセスされたかどうかを知ることは、しばしば、困難であるか又は不可能である。
図2は、アクセス・トラッキング・フラグSFPAを保存することにおける、フラグ回路のアクションを模式的に図示する流れ図である。ステップ100では、処理は、システムをセキュアモードから非セキュアモードへ切り替えている関数呼び出しが検出されるまで、待つ。そのような関数が検出された場合、処理はステップ102へ進むが、ステップ102では、次のセキュアから非セキュアへの関数呼び出しを待ち受けるために、処理がステップ100へ戻る前に、アクセス・トラッキング・フラグSFPAの現在の値は、セキュアスタックメモリへ保存される。
図3は、アクセス・トラッキング・フラグを復元することにおける、フラグ回路のアクションを模式的に図示する流れ図である。ステップ104では、処理は、非セキュアモードからセキュアモードへの関数戻りが検出されるまで、待つ。そのような戻りが検出された場合、その時は、ステップ106は、ポップ動作を介して、セキュアスタックからアクセス・トラッキング・フラグSFPAを復元する役割を果たす。
他の実施例も可能である。他の実施例とは、それらの実施例においては、VLLDM命令の後に実行される別の命令によって、スタックスペースの割り当て解除が実施され、且つVLLDMは、浮動小数点状態が保存されたかもしれない位置を指定するレジスタパラメータを取る、というようなものである。
図4Aは、いかにしてフラグ回路がアクセス・トラッキング・フラグをリセットするかについての、第1の例を図示する。ステップ108では、フラグ回路は、非セキュアモードからセキュアモードへの関数呼び出しが検出されるまで、待つ。そのような関数呼び出しが検出された場合、その時は、ステップ110は、アクセス・トラッキング・フラグを第1の値(例えば、SFPA=”0”)にリセットする役割を果たす。処理は、その後、ステップ108へ戻る。このタイプのアクセス・トラッキング・フラグのリセットは、例えば、アクセス・トラッキング・フラグを第2の値(例えば、SFPA=”1”)に設定する機構に関連して、使用されてもよい。但し、これには、セキュア浮動小数点データへの次に起こる最初のアクセスが、その時の処理回路がセキュアモードにあるか、又は非セキュアモードにあるかとは無関係に生じる場合か、又は、代わりに、セキュア浮動小数点状態データへの最初のアクセスが、処理回路がセキュアモードで動作している時に生じる場合か、のいずれかに該当するという条件が付く。アクセス・トラッキング・フラグが、設定されると共にリセットされるために、制御されてもよい、様々な異なる方法が存在する。この制御の狙いは、次の通りである。即ち、狙いは、セキュア処理の間、浮動小数点状態データへの最初のアクセスが生じるまでに、セキュアモード処理に入る呼び出しに際して、アクセス・トラッキング・フラグは第1の値を有するが、その後すぐに、アクセス・トラッキング・フラグは第2の値に設定される、というものである。
図4Bは、いかにしてフラグ回路が、アクセス・トラッキング・フラグのリセットを制御するかについての、第2の例を図示する流れ図である。ステップ112では、処理は、セキュアモードから非セキュアモードへの関数呼び出しが行われるまで、又はセキュアモードから非セキュアモードへの関数戻りが行われるまで、待つ。そのような関数呼び出し又は関数戻りが検出された場合、その時は、ステップ114は、アクセス・トラッキング・フラグを第1の値(例えば、SFPA=”0”)に設定する役割を果たす。そのようなリセット機構は、浮動小数点状態データへの最初のアクセスを検出するにあたり、アクセス・トラッキング・フラグを設定する機構に関連して使用されてもよい。ここで該浮動小数点状態データへの最初のアクセスは、システムが、セキュアモードにおいて続いて動作している場合に生じる。
図5は、浮動小数点状態データへの試みられたアクセスに対する(フラグ回路及びセキュア状態保護回路による)ハードウェア応答を模式的に図示する流れ図である。ステップ116では、処理は、1つ以上の浮動小数点レジスタへのアクセスが試みられるまで、待つ(即ち、処理回路によって、所定の状態データへの少なくとも1つのタイプのアクセスを検出する例)。そのような試みられたアクセスが検出される場合、その時は、ステップ118は、保護フラグLSPACTが現在設定されているかどうか(例えば、LSPACT=”1”)を判定する。もし保護フラグが設定される場合、その時は、ステップ120は、その割り当てられた格納領域に対するポインタアドレスによって指示されるような、セキュアスタック内の割り当てられた格納領域に、現在の浮動小数点レジスタの内容を格納する役割を果たす。格納領域の割り当て、及びその割り当てられた格納領域に対する適切なポインタの発生は、以前に説明されたように、遅延保護プログラム命令を実行することによって、以前に設定されている(準備されている)。
ステップ120に続いて、ステップ122は、今まで保存されてきた浮動小数点レジスタをクリアする役割を果たす。ステップ124は、その後、保護フラグをリセットする役割を果たす(例えば、LSPACT=”0”を設定する)。これは、次のことを示す。即ち、これは、セキュア浮動小数点状態データに対して、次のアクセスの試みが行われる場合、準備されたあらゆる保護アクションが、今取られており、且つ、従って、繰り返される必要はない、ということを示す。
ステップ124に続いて、又は、もしステップ118における判定が保護フラグは設定されなかったというものである場合、処理はステップ126に進み、ステップ126では、プロセッサは現在、セキュアモードで動作しているか否かについて、判定が行われる。もしプロセッサがセキュアモードで動作している場合、その時は、ステップ128は、アクセス・トラッキング・フラグSFPAが現在、第1の値(例えば、SFPA=”0”)を有するか否かを判定する。もしアクセス・トラッキング・フラグが第1の値を有する場合、その時は、このことは、ステップ116で検出されたアクセスが、セキュアモード処理の間に生じる最初の浮動小数点アクセスであることを示し、且つ、従って、ステップ130は、アクセス・トラッキング・フラグを第2の値(例えば、SFPA=”1”)に切り替えるのはもちろんのこと、浮動小数点構成(例えば、丸めモード、浮動小数点例外処置など)を、デフォールト構成に設定する役割を果たす。ステップ130に続いて、又は、もしそれらの判定が否定的である場合は、ステップ126及び128に続いて、処理はステップ132へ進み、ステップ132では、ステップ116で試みられた浮動小数点アクセスが許可される。処理は、その後、ステップ116へ戻り、次の試みられた浮動小数点レジスタアクセスを待ち受ける。
図6は、もし必要ならば、保護応答を実施するために、いかにして遅延格納プログラム命令(遅延保護プログラム命令)の実行が、状態保護回路を誘発するか、を模式的に図示する流れ図である。ステップ134では、遅延格納プログラム命令VLSTMの復号が検出される。ステップ136は、その後、アクセス・トラッキング・フラグが第2の値(例えば、SFPA=”1”)を有するか否かを判定する。もしアクセス・トラッキング・フラグが第2の値を有さない場合、その時は、保護される必要があるセキュア浮動小数点状態データは存在せず、且つ、従って、準備が行われる必要はなく、且つ処理はステップ134へ戻る。しかしながら、もしアクセス・トラッキング・フラグが第2の値を有する場合、その時は、処理はステップ138へ進み、ステップ138では、保護フラグが設定される(保護は、装備されたことが示されるが、しかし未だ誘発されない)。ステップ140は、その後、保存されるべき浮動小数点レジスタ状態データ(又は、VLSTM命令のパラメータの中で指定されるような他のデータ)のためのセキュアスタックの中にスペースを、必要であるものとして続いて検出された場合に、割り当てる役割を果たす。また、処理が、次の遅延格納プログラム命令を待ち受けるためにステップ134へ戻る前に、セキュアスタック内のその割り当てられたスペースへのポインタが設定される。
他の実施例も可能である。他の実施例とは、それらの実施例においては、VLSTM命令は、セキュア浮動小数点状態データを直ちにプッシュするように、状態保護回路を誘発する役割を果たす、というようなものである。別の選択肢は、次に示す通りである。即ち、別の選択肢は、VLSTM命令の前に実行される別の命令が、スタックスペースを割り当てる役割を果たし、且つVLSTMが、その割り当てられたスペースの位置を指定するレジスタパラメータを取る、というものである。
図7は、遅延ロードプログラム命令の実行に対する応答を模式的に図示する。ステップ142では、遅延ロードプログラム命令(VLLDM)が復号される。ステップ144は、その後、アクセス・トラッキング・フラグSFPAが第2の値(例えば、SFPA=”1”)を有するか否かを判定する。もしアクセスフラグが第2の値を有さない場合、保護が準備される必要があり、セキュアスタックへのプッシュ動作の対象になるかもしれないし、ならないかもしれない、セキュア浮動小数点レジスタ状態データは存在しなかったことになる。このように、もしアクセス・トラッキング・フラグが第1の値を有する場合、その時は、処理は、ステップ144からステップ142へ戻って、次の遅延ロード命令を待ち受ける。もしアクセス・トラッキング・フラグが、ステップ144で判定されたように、第2の値を有する場合、その時は、ステップ146は、保護フラグが依然として設定されている(例えば、LSPACT=”1”)か否かを判定する。もし保護フラグが依然として設定されない場合、その時は、これは、次のことを示す。即ち、これは、保護応答が、先行する処理の間、セキュア浮動小数点状態データのために誘発されたことを示し、且つ、従って、ステップ148が、スタックから、浮動小数点レジスタに対するセキュア浮動小数点状態データの復元動作(ポップ)を実行する役割を果たすと共に、対応するスタックスペースの割り当てを解除すること示す。割り当てられた格納領域もまた、割り当てが解除されて、そのスペースを解放する。もしステップ146での判定が、保護フラグは依然として設定されている(例えば、LSPACT=”1”)というものである場合、その時は、保護は、設定されると共に準備されたが、しかし誘発されなかったということであり、且つ、従って、復元動作は要求されず、且つ処理はステップ150へ進み、ステップ150では、保護フラグはリセットされる(例えば、LSPACT=”0”)。
幾つかの実施例では、遅延非保護プログラム命令が提供されてもよく、該命令は、これが実行されると、処理回路がセキュアモードで動作しており、且つ保護フラグが依然として設定されている(例えば、LSPACT=”1”)際には、保護応答を無効化する。
図8は、メインメモリ156に接続されたプロセッサ154を含むデータ処理システム152を模式的に図示する。プロセッサ154は、メインメモリ156から、プログラム命令及びデータを引き出す。プログラム命令は、命令取り出しユニット157によって取り出され、且つ、続いて、命令復号器158によって復号される。ここで命令復号器158は、それらのプログラム命令によって指定されるように、実施されるべき処理動作を制御するための制御信号を発生させる。実施される処理動作は、例えば、整数処理動作を含んでもよい。この整数処理動作は、汎用のレジスタバンク160内に格納され、且つ乗算器162、シフタ164及び加算器166のような処理回路によって扱われるデータ値を使用して、実施される。プログラム命令はまた、浮動小数点プログラム命令を含んでもよい。この浮動小数点プログラム命令は、浮動小数点レジスタ168内に格納され、且つ浮動小数点実行回路170によって実行される浮動小数点データ値に対して実施される。浮動小数点実行回路170は、浮動小数点構成レジスタ172内に格納された浮動小数点構成によって構成される。セキュアモードの処理において、最初の浮動小数点アクセスが行われる際、この浮動小数点構成(例えば、丸めモード、例外挙動など)は、デフォルト値に設定される。デフォルト構成は、ハードウェアで実現されてもよく、又はあらかじめ、プログラムされてもよい。浮動小数点構成レジスタ172内に格納された浮動小数点構成は、同時に保護され復元されてもよい。その理由は、浮動小数点状態データは、以前に議論されたように、保護されると共に復元されるからである。浮動小数点構成は、浮動小数点レジスタ自体の内容に加えて、セキュア浮動小数点状態データの一部分であってもよい。
フラグコントローラ174(フラグ回路)及びセキュア状態保護回路176は、浮動小数点回路に関連付けられる。これらの回路は、以前に説明された機能を有する。これらの回路は、両方とも、以前に説明されたように、アクセス・トラッキング・フラグSFPA及び保護フラグLSPACTを維持すると共に、アクセス・トラッキング・フラグSFPA及び保護フラグLSPACTに応答する。更に、ポインタのために、スタックメモリ178内の領域に格納部分が提供される。ここでスタックメモリ178は、セキュア浮動小数点状態データが必要な場合に、セキュア浮動小数点状態データを格納するために、実行時に(メインメモリ156内に)割り当てられる。
図9は、異なる実施形態の動作及び、いかにしてそれらの実施形態が、アクセス・トラッキング・フラグを第1の値に設定すると共に、アクセス・トラッキング・フラグを第2の値に設定する役割を果たせるか、を模式的に図示する。例(a)では、関数呼び出しによって、非セキュアモードからセキュアモードへの切り替えが行われる場合、アクセス・トラッキング・フラグは、第1の値に設定される。続いて、セキュアモードにある間に、(少なくとも1つのタイプの)最初の浮動小数点アクセスが行われる時に、アクセス・トラッキング・フラグは、第2の値に設定される。例(b)では、関数呼び出しとして、非セキュアモードからセキュアモードへの切り替えが行われる場合、アクセス・トラッキング・フラグは、再び第1の値に設定される。プロセッサがセキュアモードと非セキュアモードのどちらにあるかとは無関係に、続いて起こる最初の浮動小数点アクセスが生じた時、アクセス・トラッキング・フラグは、第1の値から第2の値へ切り替えられる。例(c)では、関数呼び出し又は関数戻りとして、セキュアモードから非セキュアモードへの切り替えが行われる場合、アクセス・トラッキング・フラグは、第1の値に設定される。続いて、プロセッサがセキュアモードで動作している際に、最初の浮動小数点アクセスが検出されると、アクセス・トラッキング・フラグは、第2の値に設定される。例(a)、(b)及び(c)の全ては、セキュア状態における最初の浮動小数点アクセスが検出されるまで、アクセス・トラッキング・フラグが第1の値を有する、という効果を持つことが分かるであろう。
本明細書では、添付図面を参照しながら、例証的な実施形態が詳細に説明されてきたが、請求項は、それらの正確な実施形態に限定されないこと、及び、添付された請求項の範囲及び精神から外れることなく、当業者によって様々な変更、追加及び修正が、実施形態の中で成し遂げられ得ることは、理解されるべきである。例えば、独立請求項の特徴と共に、従属請求項の特徴の様々な組合せを、創作することが可能であろう。

Claims (27)

  1. データを処理するための装置であって、
    第1セキュリティモード及び第2セキュリティモードで動作する処理回路と、
    前記処理回路が、関数呼び出しに関連して、前記第1セキュリティモードに入る際に、第1の値を有するアクセス・トラッキング・フラグを提供するフラグ回路であって、前記関数呼び出しに関連して、前記第1セキュリティモードで動作している際に、前記処理回路によって、所定の状態データへの少なくとも1つのタイプの最初のアクセスを検出する、前記処理回路は、前記アクセス・トラッキング・フラグを第2の値に切り替えるように構成される、フラグ回路と、
    を備える、装置。
  2. 前記フラグ回路は、
    前記第1セキュリティモードに入る、前記アクセス・トラッキング・フラグを前記第1の値に設定すると共に、前記処理回路が前記第1セキュリティモードと前記第2セキュリティモードのどちらで動作しているかとは無関係に、前記最初のアクセスを検出する、前記アクセス・トラッキング・フラグを前記第1の値から前記第2の値へ変更すること、
    前記第1セキュリティモードに入る、前記アクセス・トラッキング・フラグを前記第1の値に設定すると共に、前記最初のアクセス及び、前記処理回路が前記第1セキュリティモードで動作していることを検出する、前記アクセス・トラッキング・フラグを前記第2の値に変更すること、
    前記第2セキュリティモードに入る、前記アクセス・トラッキング・フラグを前記第1の値に設定すると共に、前記最初のアクセス及び、前記処理回路が前記第1セキュリティモードで動作していることを検出す、前記アクセス・トラッキング・フラグを前記第2の値に変更すること、
    の1つを行うように構成される、請求項1に記載の装置。
  3. 前記フラグ回路は、前記処理回路を前記第1セキュリティモードでの動作から前記第2セキュリティモードでの動作へ切り替える、更なる関数呼び出しに応答して、前記アクセス・トラッキング・フラグの現在の値を、アクセス・トラッキング・フラグ・データストアに保存する、請求項1又は2に記載の装置。
  4. 前記フラグ回路は、前記アクセス・トラッキング・フラグ・データストアから、前記現在の値を前記アクセス・トラッキング・フラグに復元するために、前記処理回路を前記第2セキュリティモードでの動作から前記第1セキュリティモードでの動作へ切り替える前記更なる関数呼び出しからの関数戻りに応答する、請求項3に記載の装置。
  5. 前記アクセス・トラッキング・フラグ・データストアはスタックメモリである、請求項3又は4に記載の装置。
  6. 前記処理回路が、前記第2セキュリティモードで動作
    関数呼び出しに関連して、前記第2セキュリティモードに切り替わる前に、前記第1セキュリティモードで動作している際に、前記アクセス・トラッキング・フラグが前記第2の値を有し、そして
    前記処理回路が前記所定の状態データへのアクセスを試みる、
    場合を少なくとも条件に、前記所定の状態データに関する保護応答を誘発するためのセキュア状態保護回路を備え
    請求項1から5のいずれか一項に記載の装置。
  7. 保護応答は、前記所定の状態データを状態データストアに保存することを含む、請求項6に記載の装置。
  8. 前記アクセス・トラッキング・フラグが前記第2の値を有することと遅延保護プログラム命令が実行されていることの少なくともいずれかの場合であって、且つ前記処理回路が、前記所定の状態データにアクセスを試みる場合、前記処理回路は、前記遅延保護プログラム命令の実行に応答して、前記保護応答を実施するための前記セキュア状態保護回路を準備する、請求項6又は7に記載の装置。
  9. 前記保護応答は、保護フラグを、前記保護応答を誘発することを示す値に設定することを含む、請求項6から8のいずれか一項に記載の装置。
  10. 前記保護フラグは、
    専用の保護フラグ、及び、
    前記アクセス・トラッキング・フラグ、
    うちのいずれかである、請求項9に記載の装置。
  11. 前記遅延保護プログラム命令の前記実行は、前記保護応答を誘発する、請求項8から10のいずれか一項に記載の装置であって、請求項9は請求項8に従属する、装置
  12. 前記処理回路が、前記第1セキュリティモードで動作し、且つ前記保護フラグが、前記保護応答を誘発することを示す前記値を有する場合に、
    前記処理回路は、遅延ロードプログラム命令の実行に応答して、前記状態データストアから、前記所定の状態データをロードする、請求項9又は10に記載の装置であって、請求項9は請求項8に従属し、請求項8は請求項7に従属する、装置
  13. 前記所定の状態データの前記ロードが、前記第2の値を有する前記アクセス・トラッキング・フラグに更に依存する、請求項12に記載の装置。
  14. 前記処理回路が、前記第1セキュリティモードで動作し、且つ前記保護フラグが、前記保護応答を誘発することを示す値以外の値を有する場合に、
    前記処理回路は、前記遅延ロードプログラム命令の実行に応答して、前記セキュア状態保護回路を前記準備することを解除する、請求項12又は13に記載の装置。
  15. 前記処理回路が、前記第1セキュリティモードで動作し、且つ前記保護フラグが、前記保護応答を誘発することを示す値以外の値を有する場合に、
    前記処理回路は、遅延非保護プログラム命令の実行に応答して、前記保護応答を無効化する、請求項9又は10に記載の装置。
  16. 浮動小数点値を格納する浮動小数点レジスタファイルを備え、
    前記所定の状態データは、前記浮動小数点値を含む、請求項1から15のいずれか一項に記載の装置。
  17. 前記処理回路による前記浮動小数点値への前記アクセスは、浮動小数点命令の実行を含む、請求項16に記載の装置。
  18. 浮動小数点構成データが、前記処理回路により浮動小数点処理動作を実施することに関連付けられた1つ以上のパラメータを特定し、且つ、前記アクセス・トラッキング・フラグが前記第1の値を有する場合に、前記第1セキュリティモードにおいて前記浮動小数点命令を実行する、前記浮動小数点構成データは、デフォルトの浮動小数点構成データに設定される、請求項17に記載の装置。
  19. 前記状態データストアはスタックメモリを含む、請求項7に記載の装置又は請求項8から18のいずれか一項に記載の装置であって、請求項8、9及び16は請求項7に従属する、装置
  20. 前記セキュア状態保護回路は、前記保存することを実施するために準備され、この準備は、前記所定の状態データを格納するために、前記スタックメモリ内の格納領域を割り当て、及び前記格納領域のためのポインタアドレスを前記セキュア状態保護回路に提供することによって行われる、請求項7又は請求項19に記載の装置であって、請求項6は請求項5に従属する、装置
  21. 前記遅延保護プログラム命令は、前記装置のどの状態データが、前記所定の状態データを含むかを特定するパラメータを有する、請求項20に記載の装置であって、請求項20は請求項19に従属し、請求項19は請求項8に従属する、装置
  22. 前記遅延ロードプログラム命令が、前記所定の状態データを前記スタックメモリからロードする場合、
    前記遅延ロードプログラム命令が、前記セキュア状態保護回路を前記準備することを解除する場合、及び、
    前記遅延ロードプログラム命令が実行される場合、
    いずれかの場合において、処理回路は、前記遅延ロードプログラム命令の実行に応答して、前記スタックメモリ内の格納領域の割り当てを解除する、請求項19に記載の装置であって、請求項19は請求項12に従属し、請求項9は請求項8に従属する、装置
  23. 前記遅延ロードプログラム命令は、前記装置のどの状態データが、前記所定の状態データを含むかを特定するパラメータを有する、請求項12、13、及び22のいずれか一項に記載の装置。
  24. 前記第1セキュリティモードは、前記第2セキュリティモードよりもセキュアである、請求項1から23のいずれか一項に記載の装置。
  25. データを処理する方法であって、
    第1セキュリティモード及び第2セキュリティモードのいずれかにおいて処理を実施することと、
    関数呼び出しに関連して、処理回路が前記第1セキュリティモードに入る際に、第1の値を有するアクセス・トラッキング・フラグを提供することと、
    前記関数呼び出しに関連して前記第1セキュリティモードで動作している際に、前記処理回路によって、所定の状態データへの少なくとも1つのタイプの最初のアクセスを検出する、前記アクセス・トラッキング・フラグを第2の値に切り替えることと、
    を備える、方法。
  26. 請求項1に記載の装置の動作を制御するための、有形のコンピュータプログラム格納媒体上に格納されたコンピュータプログラムであって、
    前記コンピュータプログラムは、前記第1セキュリティモードで動作している時に実行可能である遅延保護プログラム命令を含み、前記第2セキュリティモードで動作している時に、前記処理回路が前記所定の状態データにアクセスすることを試みる場合、前記所定の状態データに関する保護応答を実施するためのセキュア状態保護回路を準備する、コンピュータプログラム。
  27. 請求項12に記載の装置の動作を制御するための、有形のコンピュータプログラム格納媒体上に格納されたコンピュータプログラムであって、
    前記処理回路が、前記第1セキュリティモードで動作し、且つ前記保護フラグが、前記保護応答を誘発することを示す前記値を有する場合に、
    前記コンピュータプログラムは、実行可能である遅延ロードプログラム命令を含み、前記状態データストアから前記所定の状態データをロードするために前記処理回路を制御する、コンピュータプログラム。
JP2018500364A 2015-07-15 2016-05-26 セキュアモード状態のデータ・アクセス・トラッキング Active JP6921800B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1512367.2 2015-07-15
GB1512367.2A GB2540388B (en) 2015-07-15 2015-07-15 Secure mode state data access tracking
PCT/GB2016/051526 WO2017009597A1 (en) 2015-07-15 2016-05-26 Secure mode state data access tracking

Publications (2)

Publication Number Publication Date
JP2018524731A JP2018524731A (ja) 2018-08-30
JP6921800B2 true JP6921800B2 (ja) 2021-08-18

Family

ID=54013982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018500364A Active JP6921800B2 (ja) 2015-07-15 2016-05-26 セキュアモード状態のデータ・アクセス・トラッキング

Country Status (9)

Country Link
US (1) US10503932B2 (ja)
EP (1) EP3308314B1 (ja)
JP (1) JP6921800B2 (ja)
KR (1) KR102509365B1 (ja)
CN (1) CN107735791B (ja)
GB (1) GB2540388B (ja)
IL (1) IL256164B (ja)
TW (1) TWI721996B (ja)
WO (1) WO2017009597A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223639B2 (en) 2017-06-22 2019-03-05 International Business Machines Corporation Relation extraction using co-training with distant supervision
US10229195B2 (en) 2017-06-22 2019-03-12 International Business Machines Corporation Relation extraction using co-training with distant supervision
GB2564144B (en) * 2017-07-05 2020-01-08 Advanced Risc Mach Ltd Context data management
US11100254B2 (en) * 2018-12-05 2021-08-24 Micron Technology, Inc. Processors with security levels adjustable per applications
US20230350582A1 (en) * 2022-04-27 2023-11-02 Micron Technology, Inc. Data masking for memory
GB2621170A (en) * 2022-08-05 2024-02-07 Xmos Ltd Execution of Instructions from Trusted and Untrusted Memories

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor
US6560698B1 (en) * 1999-05-07 2003-05-06 Advanced Micro Devices, Inc. Register change summary resource
US6763397B1 (en) * 1999-05-27 2004-07-13 Sun Microsystems, Inc. Fully lazy linking
US7386839B1 (en) * 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
US9645949B2 (en) * 2008-07-10 2017-05-09 Cambridge Consultants Ltd. Data processing apparatus using privileged and non-privileged modes with multiple stacks
JP4886063B2 (ja) * 2009-12-04 2012-02-29 株式会社エヌ・ティ・ティ・ドコモ 状態報知装置、状態報知方法及びプログラム
GB2487355B (en) * 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
US8850557B2 (en) * 2012-02-29 2014-09-30 International Business Machines Corporation Processor and data processing method with non-hierarchical computer security enhancements for context states
US9477834B2 (en) * 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
CN102722440B (zh) * 2012-06-07 2017-03-15 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN102724195B (zh) * 2012-06-20 2015-12-02 华为技术有限公司 访问请求跟踪方法和相关装置
JP2014089644A (ja) * 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
CN103927191B (zh) * 2013-01-11 2017-05-24 北京阿里巴巴云计算技术有限公司 函数调用的资源配置方法和装置
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
GB2515047B (en) 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
TWI508087B (zh) * 2013-07-01 2015-11-11 Mstar Semiconductor Inc 記憶體信號的動態相位追蹤方法及其相關控制電路
US9952887B2 (en) * 2014-06-23 2018-04-24 Vmware, Inc. Device simulation in a secure mode supported by hardware architectures

Also Published As

Publication number Publication date
IL256164B (en) 2020-03-31
JP2018524731A (ja) 2018-08-30
EP3308314B1 (en) 2020-05-06
EP3308314A1 (en) 2018-04-18
WO2017009597A1 (en) 2017-01-19
US10503932B2 (en) 2019-12-10
TW201702890A (zh) 2017-01-16
GB2540388B (en) 2019-01-23
GB2540388A (en) 2017-01-18
KR20180029054A (ko) 2018-03-19
CN107735791A (zh) 2018-02-23
GB201512367D0 (en) 2015-08-19
CN107735791B (zh) 2021-09-07
KR102509365B1 (ko) 2023-03-13
US20180373898A1 (en) 2018-12-27
IL256164A (en) 2018-02-28
TWI721996B (zh) 2021-03-21

Similar Documents

Publication Publication Date Title
JP6921800B2 (ja) セキュアモード状態のデータ・アクセス・トラッキング
US8301856B2 (en) Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
JP6185487B2 (ja) ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持
JP2017526071A5 (ja)
US9760374B2 (en) Stack pointer and memory access alignment control
US9536084B1 (en) Systems and methods for delivering event-filtered introspection notifications
US10963250B2 (en) Selectively suppressing time intensive instructions based on a control value
JP4533713B2 (ja) 情報処理装置およびデータ転送制御方法
JP6920286B2 (ja) 例外処理
CN114282206A (zh) 栈溢出检测方法、装置、嵌入式系统和存储介质
TWI748934B (zh) 資料處理設備中的系統錯誤處置
KR100843134B1 (ko) 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법
CN108701031B (zh) 寄存器访问控制
EP3649549B1 (en) Context data management
JPH02244334A (ja) 情報処理装置
JPH03273349A (ja) アクセス制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210728

R150 Certificate of patent or registration of utility model

Ref document number: 6921800

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150