JP5680679B2 - 例外イベントを取り扱うための装置および方法 - Google Patents
例外イベントを取り扱うための装置および方法 Download PDFInfo
- Publication number
- JP5680679B2 JP5680679B2 JP2012557604A JP2012557604A JP5680679B2 JP 5680679 B2 JP5680679 B2 JP 5680679B2 JP 2012557604 A JP2012557604 A JP 2012557604A JP 2012557604 A JP2012557604 A JP 2012557604A JP 5680679 B2 JP5680679 B2 JP 5680679B2
- Authority
- JP
- Japan
- Prior art keywords
- exception
- stack pointer
- level
- further level
- processing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Description
データを処理するように構成される処理回路であって、前記処理回路は、複数の例外状態を有し、前記例外状態は、基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、処理回路と、
例外イベントを取り扱うことから戻るように、処理回路を制御するための例外戻りデータを記憶するための少なくとも1つの例外戻りレジスタであって、少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルの例外状態時に、処理回路によって使用するための専用の対応する例外戻りレジスタを有する、少なくとも1つの例外戻りレジスタと、
前記処理回路が前記例外状態のうちのいずれかにある時、使用するための基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタであって、前記基本レベルのスタックポインタは、基本レベルのスタックデータストアのメモリ内の場所を示す、基本レベルのスタックポインタレジスタと、
少なくとも1つの更なるレベルのスタックポインタを記憶するための少なくとも1つの更なるレベルのスタックポインタレジスタであって、各更なるレベルのスタックポインタは、前記処理回路が対応する更なるレベルの例外状態にある時に使用するための専用であり、対応する更なるレベルのスタックデータストアの前記メモリ内の場所を示す、少なくとも1つの更なるレベルのスタックポインタレジスタと、
現在のスタックポインタを選択して、前記処理回路を制御して、データを処理する時に前記現在のスタックポインタによって示される現在のスタックデータストアを使用するように構成されるスタックポインタ選択回路と、を備え、
前記処理回路が前記基本レベルの例外状態にある時、前記スタックポインタ選択回路は、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択するように構成され、
前記処理回路が、前記少なくとも1つの更なるレベルの例外状態のうちの1つにある時、前記スタックポインタ選択回路は、前記基本レベルのスタックポインタおよび現在の更なるレベルの例外状態に対応する更なるレベルのスタックポインタのうちの少なくとも1つを、前記現在のスタックポインタとして選択するように構成され、前記処理回路は、前記現在のスタックポインタが前記基本レベルのスタックポインタまたは前記更なるレベルのスタックポインタであるかに関わらず、前記現在の更なるレベルの例外状態に対応する例外戻りレジスタを使用することを継続する、データ処理装置を提供する。
データを処理するための処理手段であって、前記処理手段は、複数の例外状態を有し、前記例外状態は、基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、処理手段と、
例外イベントを取り扱うことから戻るように、処理手段を制御するための例外戻りデータを記憶するための少なくとも1つの例外戻りレジスタ手段であって、少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルの例外状態にある時に、処理手段によって使用するための専用の対応する例外戻りレジスタ手段を有する、少なくとも1つの例外戻りレジスタ手段と、
前記処理手段が前記例外状態のうちのいずれかにある時に使用するための基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタ手段であって、前記基本レベルのスタックポインタは、基本レベルのスタックデータストア手段のメモリ手段内の場所を示す、基本レベルのスタックポインタレジスタ手段と、
少なくとも1つの更なるレベルのスタックポインタを記憶するための少なくとも1つの更なるレベルのスタックポインタレジスタ手段であって、各更なるレベルのスタックポインタは、前記処理手段が対応する更なるレベルの例外状態にある時に使用するための専用であり、対応する更なるレベルのスタックデータストア手段の前記メモリ手段内の場所を示す、少なくとも1つの更なるレベルのスタックポインタレジスタ手段と、
現在のスタックポインタを選択し、データを処理する時に前記現在のスタックポインタによって示された現在のスタックデータストア手段を使用するように前記処理手段を制御するためのスタックポインタ選択手段と、を備え、
前記処理手段が前記基本レベルの例外状態にある時、前記スタックポインタ選択手段は、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択するように構成され、
前記処理手段が前記少なくとも1つの更なるレベルの例外状態のうちの1つにある時、前記スタックポインタ選択手段は、前記基本レベルのスタックポインタおよび現在の更なるレベルの例外状態に対応する更なるレベルのスタックポインタのうちの1つを、前記現在のスタックポインタとして選択するように構成され、前記処理手段は、前記現在のスタックポインタが前記基本レベルのスタックポインタまたは前記更なるレベルのスタックポインタであるかに関わらず、前記現在の更なるレベルの例外状態に対応する例外戻りレジスタ手段を使用することを継続する、データ処理装置を提供する。
複数の例外状態のうちの1つにあるデータを処理するステップであって、前記例外状態は、基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、ステップと、
例外イベントに応答して、例外イベントを取り扱うことからの戻りを制御するための例外戻りデータを少なくとも1つの例外戻りレジスタに記憶するステップであって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルの例外状態で処理する時の使用のための専用の対応する例外戻りレジスタを有する、ステップと、
前記処理するステップが前記例外状態のうちのいずれかにある時に使用するための基本レベルのスタックポインタを記憶するステップであって、前記基本レベルのスタックポインタは、基本レベルのスタックデータストアのメモリ内の場所を示す、ステップと、
少なくとも1つの更なるレベルのスタックポインタを記憶するステップであって、各更なるレベルのスタックポインタは、前記処理するステップが、対応する更なるレベルの例外状態にある時の使用のための専用であり、かつ対応する更なるレベルのスタックデータストアの前記メモリ内の場所を示す、ステップと、
現在のスタックポインタを選択し、データを処理する時に現在のスタックポインタによって示された現在のスタックデータストアを使用するように前記処理するステップを制御するステップと、を含み、
前記処理するステップが前記基本レベルの例外状態にあるデータを処理する時、前記選択するステップは、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択し、
前記処理するステップが前記少なくとも1つの更なるレベルの例外状態のうちの1つの中のデータを処理する時、前記選択するステップは、前記現在のスタックポインタとして、前記基本レベルのスタックポインタ、および現在の更なるレベルの例外状態に対応する更なるレベルのスタックポインタのうちの1つを選択し、前記処理するステップは、前記現在のスタックポインタが前記基本レベルのスタックポインタであるかまたは前記更なるレベルのスタックポインタであるかに関わらず、前記現在の更なるレベルの例外状態に対応する例外戻りレジスタを使用することを継続する、データ処理の方法を提供する。
基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む複数の例外状態のうちの1つにあるデータを処理するように構成された処理回路と、
基本レベルのスタックデータストアのメモリ内の場所を示す基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタと、
少なくとも1つの更なるレベルのスタックデータストアの前記メモリ内の場所を示す少なくとも1つの更なるレベルのスタックポインタを記憶するための少なくとも1つの更なるレベルのスタックポインタレジスタであって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルのスタックポインタを有する、少なくとも1つの更なるレベルのスタックデータストアと、
ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記処理回路をトリガして、前記ターゲットの更なるレベルの例外状態に対応する更なるレベルのスタックポインタによって示された更なるレベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンを処理する、例外コントローラと、を備え、
前記処理回路は、前記例外取扱ルーチンの初期部分を処理した後に、前記基本レベルのスタックポインタによって示された前記基本レベルのスタックデータを使用して、前記ターゲットの更なるレベルの例外状態の前記例外取扱ルーチンの残りの部分を処理するように構成される、データ処理装置を提供する。
基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、複数の例外状態のうちの1つにあるデータを処理するための処理手段と、
基本レベルのスタックデータストア手段のメモリ手段内の場所を示す基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタ手段と、
少なくとも1つの更なるレベルのスタックデータストア手段の前記メモリ手段内の場所を示す少なくとも1つの更なるレベルのスタックポインタを記憶するための少なくとも1つの更なるレベルのスタックポインタレジスタ手段であって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルのスタックポインタを有する、少なくとも1つの更なるレベルのスタックポインタレジスタ手段と、
ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記ターゲットの更なるレベルの例外状態に対応する更なるレベルのスタックポインタによって示された更なるレベルのスタックデータストア手段を使用して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンを処理するように、前記処理手段をトリガするための例外制御手段と、を備え、
前記処理手段は、前記例外取扱ルーチンの初期部分を処理した後に、前記基本レベルのスタックポインタによって示された前記基本レベルのスタックデータストア手段を使用して、前記ターゲットの更なるレベルの例外状態の前記例外取扱ルーチンの残りの部分を処理するように構成される、データ処理装置を提供する。
基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、複数の例外状態のうちの1つにあるデータを処理するステップと、
基本レベルのスタックデータストアのメモリ内の場所を示す基本レベルのスタックポインタを記憶するステップと、
少なくとも1つの更なるレベルのスタックデータストアの前記メモリ内の場所を示す少なくとも1つの更なるレベルのスタックポインタを記憶するステップであって、少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルのスタックポインタを有する、ステップと、
ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記ターゲットの更なるレベルの例外状態に対応する更なるレベルのスタックポインタによって示された更なるレベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンの処理をトリガするステップと、
前記例外取扱ルーチンの初期部分を処理した後に、前記基本レベルのスタックポインタによって示された前記基本レベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の前記例外取扱ルーチンの残りの部分を処理するステップと、を含む、データ処理方法を提供する。
以下、本技法の実施形態を、添付の図面を参照して、例示として説明する。
12 解読パイプライン段階
14 発行段階
16 実行段階
18 書き戻し段階
20 例外コントローラ
24 コンテキストレジスタ
26 例外リンクレジスタ(ELR)
28 処理状態保存レジスタ(SPSR)
30 スタックポインタレジスタ
35 スタックデータストア
40 スタックポインタ選択回路
42 スタックポインタ選択レジスタ
120 中断コントローラ
500 アプリケーションプログラム
510 仮想マシンプログラム
520 ホストオペレーティングシステム
530 ホストプロセッサ
Claims (17)
- データ処理装置であって、
データを処理するように構成された処理回路であって、前記処理回路は、複数の例外状態を有し、前記例外状態は、基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、処理回路と、
例外イベントを取り扱うことから戻るように、処理回路を制御するための例外戻りデータを記憶するための少なくとも1つの例外戻りレジスタであって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルの例外状態にある時に、処理回路によって使用される専用の対応する例外戻りレジスタを有する、少なくとも1つの例外戻りレジスタと、
前記処理回路が前記例外状態のうちのいずれかにある時に使用するための、基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタであって、前記基本レベルのスタックポインタは、基本レベルのスタックデータストアのメモリ内の場所を示す、基本レベルのスタックポインタレジスタと、
少なくとも1つの更なるレベルのスタックポインタを記憶するための少なくとも1つの更なるレベルのスタックポインタレジスタであって、各更なるレベルのスタックポインタは、前記処理回路が対応する更なるレベルの例外状態にある時の使用のための専用であり、対応する更なるレベルのスタックデータストアの前記メモリ内の前記場所を示す、少なくとも1つの更なるレベルのスタックポインタレジスタと、
現在のスタックポインタを選択して、データを処理する時に前記現在のスタックポインタによって示される現在のスタックデータストアを使用するように前記処理回路を制御するように構成されたスタックポインタ選択回路と、を備え、
前記処理回路が前記基本レベルの例外状態にある時、前記スタックポインタ選択回路は、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択するように構成され、
前記処理回路が前記少なくとも1つの更なるレベルの例外状態のうちの1つにある時、前記スタックポインタ選択回路は、前記基本レベルのスタックポインタおよび現在の更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタのうちの少なくとも1つを、前記現在のスタックポインタとして選択するように構成され、前記処理回路は、前記現在のスタックポインタが前記基本レベルのスタックポインタであるかまたは前記更なるレベルのスタックポインタであるかに関わらず、前記現在の更なるレベルの例外状態に対応する例外戻りレジスタを使用することを継続する、データ処理装置。 - 前記スタックポインタ選択回路は、ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記現在のスタックポインタとして、前記ターゲットの更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタを選択する、請求項1に記載のデータ処理装置。
- 前記処理回路は、前記例外イベントに応答して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンを処理し、
前記スタックポインタ選択回路は、前記処理回路が前記例外取扱ルーチンの初期部分を完了した後に、前記ターゲットの更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタから、前記基本レベルのスタックポインタへ前記現在のスタックポインタを切り替えるように制御される、請求項2に記載のデータ処理装置。 - 前記例外取扱ルーチンは、前記ターゲットの更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタから、前記基本レベルのスタックポインタへ前記現在のスタックポインタを切り替えるように、前記スタックポインタ選択回路を制御するための命令を含む、請求項3に記載のデータ処理装置。
- 前記現在のスタックポインタが、前記基本レベルのスタックポインタであるか、または前記現在の更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタであるかを示すスタックポインタ選択値を記憶するように構成された、スタックポインタ選択レジスタを備える、請求項1〜4のいずれかに記載のデータ処理装置。
- 前記スタックポインタ選択回路は、前記処理回路が前記少なくとも1つの更なるレベルの例外状態のうちの1つにある時に、前記スタックポインタ選択値に依存して前記現在のスタックポインタを選択する、請求項5に記載のデータ処理装置。
- 前記処理回路が前記少なくとも1つの更なるレベルの例外状態のうちの1つにある時、前記スタックポインタ選択回路は、
(i) 前記スタックポインタ選択値が第1の値を有する場合、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択し、
(ii) 前記スタックポインタ選択値が第2の値を有する場合、前記現在のスタックポインタとして、前記現在の更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタを選択するように構成される、請求項6に記載のデータ処理装置。 - 前記処理回路は、スタックポインタ選択命令に応答して、更新されたスタックポインタ選択値を前記スタックポインタ選択レジスタに書き込む、請求項6および7のいずれかに記載のデータ処理装置。
- 例外イベントに応答して、前記処理回路を制御して前記例外イベントに対応する例外取扱ルーチンを処理する例外コントローラを備え、少なくとも1つの例外イベントは、複数の対応する例外取扱ルーチンを有し、
前記少なくとも1つの例外イベントの発生時に、前記例外コントローラは、前記スタックポインタ選択値に依存して前記処理回路によって処理するために、前記複数の対応する例外取扱ルーチンのうちの1つを選択する、請求項5〜8のいずれか1項に記載のデータ処理装置。 - 前記複数の対応する例外取扱ルーチンは、前記少なくとも1つの更なるスタックデータストアのスタックオーバーフローを取り扱うためのスタックオーバーフロー取扱ルーチンを含み、前記例外コントローラは、前記少なくとも1つの例外イベントに関連するターゲットの更なるレベルの例外状態が、前記処理回路の前記現在の更なるレベルの例外状態と同一であり、かつ前記スタックポインタ選択値が、前記更なるレベルのスタックポインタが前記現在のスタックポインタであることを示す時に、前記少なくとも1つの例外イベントの発生時に、前記スタックオーバーフロー取扱ルーチンを処理するように前記処理回路を制御するように構成される、請求項9に記載のデータ処理装置。
- 前記メモリをさらに備える、請求項1〜10のいずれか1項に記載のデータ処理装置。
- データ処理装置であって、
データを処理するための処理手段であって、前記処理手段は、複数の例外状態を有し、前記例外状態は、基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、処理手段と、
例外イベントを取り扱うことから戻るように、前記処理手段を制御するための例外戻りデータを記憶するための少なくとも1つの例外戻りレジスタ手段であって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルの例外状態にある時に、前記処理手段によって使用するための専用の対応する例外戻りレジスタ手段を有する、少なくとも1つの例外戻りレジスタ手段と、
前記処理手段が前記例外状態のうちのいずれかにある時に使用するための、基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタ手段であって、前記基本レベルのスタックポインタが、基本レベルのスタックデータストア手段のメモリ手段内の場所を示す、基本レベルのスタックポインタレジスタ手段と、
少なくとも1つの更なるレベルのスタックポインタを記憶するための、少なくとも1つの更なるレベルのスタックポインタレジスタ手段であって、各更なるレベルのスタックポインタは、前記処理手段が対応する更なるレベルの例外状態にある時に使用するための専用であり、対応する更なるレベルのスタックデータストア手段の前記メモリ手段内の場所を示す、少なくとも1つの更なるレベルのスタックポインタレジスタ手段と、
現在のスタックポインタを選択し、データを処理する時に前記現在のスタックポインタによって示された現在のスタックデータストア手段を使用するように前記処理手段を制御するための、スタックポインタ選択手段と、を備え、
前記処理手段が前記基本レベルの例外状態にある時、前記スタックポインタ選択手段は、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択するように構成され、
前記処理手段が前記少なくとも1つの更なるレベルの例外状態のうちの1つにある時、前記スタックポインタ選択手段は、前記基本レベルのスタックポインタおよび現在の更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタのうちの1つを、前記現在のスタックポインタとして選択するように構成され、前記処理手段は、前記現在のスタックポインタが前記基本レベルのスタックポインタであるか、または前記更なるレベルのスタックポインタであるかに関わらず、前記現在の更なるレベルの例外状態に対応する前記例外戻りレジスタ手段を使用することを継続する、データ処理装置。 - データ処理の方法であって、
複数の例外状態のうちの1つにあるデータを処理するステップであって、前記例外状態は、基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、ステップと、
例外イベントに応答して、前記例外イベントを取り扱うことからの戻りを制御するための例外戻りデータを少なくとも1つの例外戻りレジスタに記憶するステップであって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルの例外状態で処理する時に使用するための専用の対応する例外戻りレジスタを有する、ステップと、
前記処理するステップが前記例外状態のうちのいずれかにある時に使用するための基本レベルのスタックポインタを記憶するステップであって、前記基本レベルのスタックポインタは、基本レベルのスタックデータストアのメモリ内の場所を示す、ステップと、
少なくとも1つの更なるレベルのスタックポインタを記憶するステップであって、各更なるレベルのスタックポインタは、前記処理するステップが、対応する更なるレベルの例外状態にある時に使用するための専用であり、かつ対応する更なるレベルのスタックデータストアの前記メモリ内の前記場所を示す、ステップと、
現在のスタックポインタを選択し、データを処理する時に前記現在のスタックポインタによって示された現在のスタックデータストアを使用するように前記処理するステップを制御するステップと、を含み、
前記処理するステップが前記基本レベルの例外状態にあるデータを処理する時、前記選択するステップは、前記現在のスタックポインタとして、前記基本レベルのスタックポインタを選択し、
前記処理するステップが前記少なくとも1つの更なるレベルの例外状態のうちの1つにあるデータを処理する時、前記選択するステップは、前記現在のスタックポインタとして、前記基本レベルのスタックポインタおよび現在の更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタのうちの1つを選択し、前記処理するステップは、前記現在のスタックポインタが前記基本レベルのスタックポインタであるか、または前記更なるレベルのスタックポインタであるかに関わらず、前記現在の更なるレベルの例外状態に対応する例外戻りレジスタを使用することを継続する、方法。 - データ処理装置であって、
基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む複数の例外状態のうちの1つにあるデータを処理するように構成された処理回路と、
基本レベルのスタックデータストアのメモリ内の場所を示す基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタと、
少なくとも1つの更なるレベルのスタックデータストアの前記メモリ内の前記場所を示す少なくとも1つの更なるレベルのスタックポインタを記憶するための、少なくとも1つの更なるレベルのスタックポインタレジスタであって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルのスタックポインタを有する、少なくとも1つの更なるレベルのスタックデータストアと、
ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記処理回路をトリガして、前記ターゲットの更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタによって示された前記更なるレベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンを処理する、例外コントローラと、を備え、
前記処理回路は、前記例外取扱ルーチンの初期部分を処理した後に、前記基本レベルのスタックポインタによって示された前記基本レベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の前記例外取扱ルーチンの残りの部分を処理するように構成される、データ処理装置。 - データ処理装置であって、
基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、複数の例外状態のうちの1つにあるデータを処理するための処理手段と、
基本レベルのスタックデータストア手段のメモリ手段内の場所を示す基本レベルのスタックポインタを記憶するための基本レベルのスタックポインタレジスタ手段と、
少なくとも1つの更なるレベルのスタックデータストア手段の前記メモリ手段内の前記場所を示す少なくとも1つの更なるレベルのスタックポインタを記憶するための、少なくとも1つの更なるレベルのスタックポインタレジスタ手段であって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルのスタックポインタを有する、少なくとも1つの更なるレベルのスタックポインタレジスタ手段と、
ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記ターゲットの更なるレベルの例外状態に対応する更なるレベルのスタックポインタによって示された更なるレベルのスタックデータストア手段を使用して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンを処理するように、前記処理手段をトリガするための例外制御手段と、を備え、
前記処理手段は、前記例外取扱ルーチンの初期部分を処理した後に、前記基本レベルのスタックポインタによって示された前記基本レベルのスタックデータストア手段を使用して、前記ターゲットの更なるレベルの例外状態の前記例外取扱ルーチンの残りの部分を処理するように構成される、データ処理装置。 - データ処理の方法であって、
基本レベルの例外状態と、少なくとも1つの更なるレベルの例外状態とを含む、複数の例外状態のうちの1つにあるデータを処理するステップと、
基本レベルのスタックデータストアのメモリ内の場所を示す基本レベルのスタックポインタを記憶するステップと、
少なくとも1つの更なるレベルのスタックデータストアの前記メモリ内の場所を示す少なくとも1つの更なるレベルのスタックポインタを記憶するステップであって、前記少なくとも1つの更なるレベルの例外状態は各々、対応する更なるレベルのスタックポインタを有する、ステップと、
ターゲットの更なるレベルの例外状態に関連する例外イベントに応答して、前記ターゲットの更なるレベルの例外状態に対応する前記更なるレベルのスタックポインタによって示された前記更なるレベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の例外取扱ルーチンの処理をトリガするステップと、
前記例外取扱ルーチンの初期部分を処理した後に、前記基本レベルのスタックポインタによって示された前記基本レベルのスタックデータストアを使用して、前記ターゲットの更なるレベルの例外状態の前記例外取扱ルーチンの残りの部分を処理するステップと、を含む、方法。 - データ処理装置上で実行するコンピュータプログラムによって提供される仮想マシンであって、請求項1〜11のいずれか1項に記載の装置に対応する命令実行環境を提供する、仮想マシン。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1004303.2A GB2478733B (en) | 2010-03-15 | 2010-03-15 | Apparatus and method for handling exception events |
| GB1004303.2 | 2010-03-15 | ||
| PCT/GB2011/050389 WO2011114124A1 (en) | 2010-03-15 | 2011-02-28 | Apparatus and method for handling exception events |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2013522750A JP2013522750A (ja) | 2013-06-13 |
| JP5680679B2 true JP5680679B2 (ja) | 2015-03-04 |
Family
ID=42261618
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012557604A Active JP5680679B2 (ja) | 2010-03-15 | 2011-02-28 | 例外イベントを取り扱うための装置および方法 |
Country Status (10)
| Country | Link |
|---|---|
| US (3) | US8677107B2 (ja) |
| EP (1) | EP2548115B1 (ja) |
| JP (1) | JP5680679B2 (ja) |
| KR (1) | KR101782313B1 (ja) |
| CN (1) | CN102804134B (ja) |
| GB (1) | GB2478733B (ja) |
| IL (1) | IL221068A (ja) |
| MY (1) | MY155863A (ja) |
| TW (1) | TWI478052B (ja) |
| WO (1) | WO2011114124A1 (ja) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2478733B (en) | 2010-03-15 | 2013-08-14 | Advanced Risc Mach Ltd | Apparatus and method for handling exception events |
| US8448022B1 (en) * | 2010-10-26 | 2013-05-21 | Vmware, Inc. | Fault recovery to a call stack position stored in thread local storage |
| US9213828B2 (en) | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
| US9202071B2 (en) | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
| US10210349B2 (en) | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
| GB2501343A (en) * | 2012-02-08 | 2013-10-23 | Advanced Risc Mach Ltd | Data processing apparatus and method using secure domain and less secure domain |
| US9477834B2 (en) * | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
| US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
| US9672164B2 (en) * | 2012-05-31 | 2017-06-06 | Nxp Usa, Inc. | Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address |
| US9513924B2 (en) * | 2013-06-28 | 2016-12-06 | Globalfoundries Inc. | Predictor data structure for use in pipelined processing |
| US9619230B2 (en) | 2013-06-28 | 2017-04-11 | International Business Machines Corporation | Predictive fetching and decoding for selected instructions |
| GB2532777B (en) * | 2014-11-28 | 2021-07-07 | Advanced Risc Mach Ltd | System error handling in a data processing apparatus |
| US10176329B2 (en) * | 2015-08-11 | 2019-01-08 | Symantec Corporation | Systems and methods for detecting unknown vulnerabilities in computing processes |
| GB2547912B (en) * | 2016-03-02 | 2019-01-30 | Advanced Risc Mach Ltd | Register access control |
| GB2549774B (en) * | 2016-04-28 | 2019-04-10 | Imagination Tech Ltd | Method for handling exceptions in exception-driven system |
| GB2573041B (en) * | 2016-04-28 | 2021-01-06 | Imagination Tech Ltd | Method for handling exceptions in exception-driven system |
| US10114573B1 (en) * | 2017-04-26 | 2018-10-30 | International Business Machines Corporation | Dynamic reduction of stack-overflow errors in a recursive data-serialization algorithm |
| GB2562102B (en) * | 2017-05-05 | 2019-09-04 | Advanced Risc Mach Ltd | An apparatus and method for managing use of capabilities |
| GB2563885B (en) * | 2017-06-28 | 2019-10-23 | Advanced Risc Mach Ltd | Interrupting export of memory regions |
| GB2563887B (en) * | 2017-06-28 | 2019-12-25 | Advanced Risc Mach Ltd | Masking of architectural state associated with a realm |
| GB2577729C (en) * | 2018-10-04 | 2021-10-27 | Advanced Risc Mach Ltd | Processor with Register Bank having Banked Versions of a Register each Associated with an Operating State of the Processor |
| GB2579617B (en) * | 2018-12-06 | 2021-01-27 | Advanced Risc Mach Ltd | An apparatus and method for handling exception causing events |
| JP7131486B2 (ja) * | 2019-06-03 | 2022-09-06 | オムロン株式会社 | 制御システム、プログラマブルロジックコントローラおよび情報処理方法 |
| CN110515766B (zh) * | 2019-08-01 | 2023-01-20 | 深圳供电局有限公司 | 一种基于云的电力灾备数据安全防护系统、设备及介质 |
| US11442739B2 (en) | 2019-09-16 | 2022-09-13 | International Business Machines Carporation | Exception handling |
| US11216280B2 (en) * | 2019-11-26 | 2022-01-04 | Arm Limited | Exception interception |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4488227A (en) * | 1982-12-03 | 1984-12-11 | Honeywell Information Systems Inc. | Program counter stacking method and apparatus for nested subroutines and interrupts |
| US4575817A (en) * | 1983-06-27 | 1986-03-11 | International Business Machines Corporation | Switching of programming routine supporting storage stacks |
| US4866599A (en) * | 1985-06-27 | 1989-09-12 | Bull Hn Information Systems Inc. | Call instruction, return instruction and trap procedure for ring crossing architecture |
| JPH03163630A (ja) * | 1989-11-21 | 1991-07-15 | Mitsubishi Electric Corp | プロセッサのスタック制御方法 |
| US5386563A (en) * | 1992-10-13 | 1995-01-31 | Advanced Risc Machines Limited | Register substitution during exception processing |
| US5634046A (en) * | 1994-09-30 | 1997-05-27 | Microsoft Corporation | General purpose use of a stack pointer register |
| US5751985A (en) * | 1995-02-14 | 1998-05-12 | Hal Computer Systems, Inc. | Processor structure and method for tracking instruction status to maintain precise state |
| US5761491A (en) * | 1996-04-15 | 1998-06-02 | Motorola Inc. | Data processing system and method for storing and restoring a stack pointer |
| US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
| US6006323A (en) * | 1998-05-20 | 1999-12-21 | Industrial Technology Research Institute | Intelligent multiple stack management unit |
| US7941647B2 (en) * | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
| US6490509B1 (en) * | 1999-09-17 | 2002-12-03 | Keihin Corporation | Car controlling unit using a multitasking system |
| US6665793B1 (en) * | 1999-12-28 | 2003-12-16 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for managing access to out-of-frame Registers |
| US6757771B2 (en) * | 2000-08-09 | 2004-06-29 | Advanced Micro Devices, Inc. | Stack switching mechanism in a computer system |
| GB2369464B (en) * | 2000-11-27 | 2005-01-05 | Advanced Risc Mach Ltd | A data processing apparatus and method for saving return state |
| US7451324B2 (en) * | 2002-05-31 | 2008-11-11 | Advanced Micro Devices, Inc. | Secure execution mode exceptions |
| US7797681B2 (en) * | 2006-05-11 | 2010-09-14 | Arm Limited | Stack memory selection upon exception in a data processing system |
| CN102077195A (zh) * | 2008-05-08 | 2011-05-25 | Mips技术公司 | 具有紧凑指令集架构的微处理器 |
| GB2461848B (en) * | 2008-07-10 | 2013-01-30 | Cambridge Consultants | Data processing apparatus having a number of operating modes |
| TWI368165B (en) * | 2008-08-13 | 2012-07-11 | Faraday Tech Corp | Processor and method for recovering global history shift register and return address stack thereof |
| GB2478733B (en) | 2010-03-15 | 2013-08-14 | Advanced Risc Mach Ltd | Apparatus and method for handling exception events |
-
2010
- 2010-03-15 GB GB1004303.2A patent/GB2478733B/en active Active
-
2011
- 2011-02-28 MY MYPI2012003329A patent/MY155863A/en unknown
- 2011-02-28 EP EP11705988.1A patent/EP2548115B1/en active Active
- 2011-02-28 KR KR1020127026070A patent/KR101782313B1/ko active Active
- 2011-02-28 JP JP2012557604A patent/JP5680679B2/ja active Active
- 2011-02-28 WO PCT/GB2011/050389 patent/WO2011114124A1/en not_active Ceased
- 2011-02-28 CN CN201180014331.5A patent/CN102804134B/zh active Active
- 2011-03-04 TW TW100107412A patent/TWI478052B/zh active
- 2011-03-07 US US13/064,108 patent/US8677107B2/en active Active
-
2012
- 2012-07-23 IL IL221068A patent/IL221068A/en active IP Right Grant
-
2014
- 2014-01-07 US US14/149,141 patent/US9104425B2/en active Active
-
2015
- 2015-07-01 US US14/788,848 patent/US9727343B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2548115A1 (en) | 2013-01-23 |
| TW201203105A (en) | 2012-01-16 |
| TWI478052B (zh) | 2015-03-21 |
| GB2478733A (en) | 2011-09-21 |
| US8677107B2 (en) | 2014-03-18 |
| CN102804134A (zh) | 2012-11-28 |
| CN102804134B (zh) | 2015-02-25 |
| IL221068A (en) | 2015-07-30 |
| US20140122849A1 (en) | 2014-05-01 |
| JP2013522750A (ja) | 2013-06-13 |
| US20150301833A1 (en) | 2015-10-22 |
| KR101782313B1 (ko) | 2017-10-23 |
| US9104425B2 (en) | 2015-08-11 |
| KR20130012126A (ko) | 2013-02-01 |
| IL221068A0 (en) | 2012-09-24 |
| GB201004303D0 (en) | 2010-04-28 |
| US9727343B2 (en) | 2017-08-08 |
| MY155863A (en) | 2015-12-15 |
| US20110225402A1 (en) | 2011-09-15 |
| WO2011114124A1 (en) | 2011-09-22 |
| GB2478733B (en) | 2013-08-14 |
| EP2548115B1 (en) | 2016-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5680679B2 (ja) | 例外イベントを取り扱うための装置および方法 | |
| US5701493A (en) | Exception handling method and apparatus in data processing systems | |
| JP6185487B2 (ja) | ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持 | |
| US5634046A (en) | General purpose use of a stack pointer register | |
| CN102460377B (zh) | 数据处理设备及方法 | |
| CN101730881A (zh) | 包括多个处理器的系统以及操作该系统的方法 | |
| US6895583B1 (en) | Task control block for a computing environment | |
| US10762226B2 (en) | Register access control | |
| JPH1196002A (ja) | データ処理装置 | |
| US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
| GB2500844A (en) | Selecting either base level or further level stack when processing data in current further level exception state above base level | |
| JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
| KR100329780B1 (ko) | 인터럽트 응답 시간을 줄인 인터럽트 처리 장치 | |
| WO1990005951A1 (en) | Method of handling unintended software interrupt exceptions | |
| JPH0486919A (ja) | マイクロプログラム制御装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131018 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141126 |
|
| 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: 20141208 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150107 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5680679 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |