JP3874287B2 - 割込み時のプロセッサのアーキテクチャ状態の管理 - Google Patents
割込み時のプロセッサのアーキテクチャ状態の管理 Download PDFInfo
- Publication number
- JP3874287B2 JP3874287B2 JP2003365322A JP2003365322A JP3874287B2 JP 3874287 B2 JP3874287 B2 JP 3874287B2 JP 2003365322 A JP2003365322 A JP 2003365322A JP 2003365322 A JP2003365322 A JP 2003365322A JP 3874287 B2 JP3874287 B2 JP 3874287B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory
- state
- interrupt
- storing
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
プロセッサの状態は、特定の時点でのストアされたデータ、命令、およびハードウエア状態を含み、これを本明細書中では「ハード」または「ソフト」のいずれかとして規定する。「ハード」状態は、プロセッサがプロセス中の現時点からプロセスを実行するためにアーキテクチャに関して必要なプロセッサ内の情報として規定される。これに対して、「ソフト」状態は、プロセス実行の効率を改善するがアーキテクチャに関して正しい結果を達成するために必要ではないプロセッサ内の情報である。図3の処理ユニット200において、ハード状態は、CRR80、LCR82、GPR84および86、FPR88等のユーザレベルレジスタ、ならびにスーパーバイザレベルレジスタ51の内容を含む。処理ユニット200のソフト状態は、L−1 I−キャッシュ18、L−1 D−キャッシュ20の内容、DTLB113およびITLB115等のアドレス変換情報等の「性能に影響を及ぼす」情報、ならびに、BHT35およびL2キャッシュ16の内容の全てまたは一部等、重要性の低い情報の双方を含む。
上述の説明において、GPR86、FPR88、CRR80、およびLCR82等の処理ユニット200のレジスタファイルは、一般に「ユーザレベルレジスタ」として規定される。なぜなら、これらのレジスタは、ユーザまたはスーパーバイザのいずれかの特権により全てのソフトウエアによってアクセス可能であるからである。スーパーバイザレベルレジスタ51は、メモリ管理、構成、および例外処理のような動作のために、典型的にオペレーティングシステムカーネルにおいて、通常オペレーティングシステムによって用いられるレジスタを含む。このため、スーパーバイザレベルレジスタ51に対するアクセスは、一般に、十分なアクセス許可のある小数のみのプロセス(すなわちスーパーバイザレベルプロセス)に制限されている。
図2のMPデータ処理システム201等のMPデータ処理システムにおいて、おそらくは異なるオペレーティングシステムのもとで、多重アプリケーションを同時に実行することができる。図5は、本発明によるMPデータ処理システム201の例示的なソフトウエア構成の層図を示す。
ここで図6および図7を参照すると、本発明に従って、処理ユニット200等の処理ユニットが割込みを処理する例示的な方法のフローチャートが示されている。ブロック502に示すように、プロセッサによって割込みを受信する。この割込みは、例外(例えばオーバーフロー)、外部割込み(例えばI/Oデバスからの)、または内部割込みである場合がある。
従来技術では、ハードアーキテクチャ状態を、プロセッサコアのロード/ストアユニットを介してシステムメモリにストアし、これが、多数のプロセッサクロックサイクルの間、割込みハンドラまたは別のプロセスの実行を阻止する。本発明では、図6のブロック504に示すような、ハード状態をセーブするステップは、図8に示す方法に従っていっそう迅速に行う。これについて、図2に概略的に示したハードウエアを参照して説明する。
従来のプロセッサによって割込みハンドラを実行する場合、割込まれたプロセスのソフト状態は通常汚染(polluted)される。すなわち、割込みハンドラソフトウエアの実行は、プロセッサのキャッシュ、アドレス変換機構、および履歴テーブルを、割込みハンドラが用いるデータ(命令を含む)によってポピュレート(populate)する。このため、割込みを処理した後に割込みのかかったプロセスが再開すると、プロセスでは、命令およびデータキャッシュの失敗、変換の失敗、および分岐誤予測が増大する。かかる失敗および誤予測は、プロセス性能を著しく低下させるが、これは、割込み処理に関する情報がプロセッサおよびキャッシュからパージされ、プロセスのソフト状態をストアしている他の構成要素がプロセスに関する情報によって再ポピュレートされるまで続く。従って、本発明は、割込み処理に関連した性能の犠牲を小さくするために、プロセスのソフト状態の少なくとも一部をセーブしリストアする。
複雑さのため、プロセッサおよび他のICは、通常、ICの試験を容易にする回路を含む。試験回路は、電気電子技術者協会(Institute of Electrical and Electronic Engineers(IEEE))規格1149.1−1990、「Standard Test Access Port and Boundary Scan Architecture」に記載されているようなバウンダリ(boundary)スキャンチェーンを含む。これは、引用により本願にもその全体が含まれるものとする。典型的にパッケージ集積回路上の専用ピン介してアクセスされるバウンダリスキャンチェーンは、集積回路の構成要素間に試験データ用経路を提供する。
従来技術のシステムでは、第1レベル割込みハンドラ(FLIH)および第2レベル割込みハンドラ(SLIH)をシステムメモリにストアし、呼び出された場合にキャッシュメモリ階層をポピュレートする。従来のシステムにおいてシステムメモリからFLIHまたはSLIHを最初に呼び出すと、長いアクセス待ち時間が生じる(キャッシュミスの後にシステムメモリからFLIH/SLIHの位置を特定しロードするため)。キャッシュメモリをFLIH/SLIH命令およびデータによってポピュレートすると、以降のプロセスでは必要でないデータおよび命令によってキャッシュを「汚染させる」ことになる。
通常、処理ユニット200において割込みが発生すると、FLIHを呼び出し、次いでFLIHがSLIHを呼び出し、割込みの処理を完了する。どのSLIHを呼び出し、そのSLIHをどのように実行するかは、一様でなく、送出するパラメータ、条件状態等を含む様々なファクタに依存する。例えば、図12において、FLIH812を呼び出すと、SLIH814を呼び出して実行することになり、結果として点Bに位置する命令が実行される。
ここで図15を参照すると、システムメモリおよび様々なプロセッサおよび例示的なMPデータ処理システムのメモリ部分にストアされたハードおよびソフト状態間の論理関係を図で示す概念図が示されている。図15に示すように、全てのハードアーキテクチャ状態およびソフト状態は、いかなるパーティション内でもプロセッサによってアクセス可能なハイパーバイザ402が割り当てた特別なメモリ領域にストアされる。すなわち、プロセッサAおよびプロセッサBはハイパーバイザ402によって最初に構成されてパーティションX内のSMPとして機能することができるが、プロセッサCおよびプロセッサDは、パーティションY内のSMPとして構成することができる。実行の間、プロセッサAないしDに割込みをかけて、プロセッサAないしDの各々に、上述のように、ハード状態AないしDおよびソフト状態AないしDの各1つをメモリにストアさせることができる。異なるパーティションのプロセッサが同じメモリ空間にアクセスすることができない従来技術のシステムとは異なり、いかなるプロセッサでも、ハードまたはソフト状態AないしDのいずれにもアクセスして、関連する割込みのかかったプロセスを再開することができる。例えば、プロセッサDは、そのパーティション内に生成されたハードおよびソフト状態CおよびDに加えて、ハードおよびソフト状態AおよびBにもアクセスすることができる。このため、いかなるパーティションまたはプロセッサ(複数のプロセッサ)によっても、いかなるプロセス状態にもアクセスすることができる。結果として、ハイパーバイザ402は、パーティション間の負荷バランスにおける自由度および柔軟性を増している。
上述のように、割込みのかかったプロセスのソフト状態は、図3に示すL1 I−キャッシュ18、L2 D−キャッシュ20、およびL2キャッシュ16等のキャッシュメモリの内容を含むことができる。図9を参照して上述したように、これらのソフト状態はシステムメモリにストアされるが、ソフト状態から成るデータの少なくとも一部は、他のプロセスが行ったデータ変更のために、新鮮でなくなる可能性がある。従って、本発明は、システムメモリにストアされたソフト状態をキャッシュコヒーレントに保つための機構を提供する。
製造の間、集積回路は、様々な動作条件のもとで一連の試験を受ける。かかる試験の1つはデータ試験である。この試験では、集積回路の全ての内部ゲートを、上述のIEEE1149.1試験スキャンチェーンを用いて試験データストリームによって試験する。従来技術では、動作環境において集積回路を設置した後、かかる試験プログラムは再び実行しない。その理由は、一つには、ほとんどの動作環境において、集積回路を試験取付具に接続して試験を行うことは実行不可能であるからであり、また一つには、かかる試験によって意図した目的に集積回路を用いることが妨げられるからである。例えば、プロセッサ100において、ハードアーキテクチャ状態を、ロード/ストア実行経路を介してシステムメモリにセーブすると共にシステムメモリからリストアすることによって、試験中に多くの作業の達成が妨げられ、長い待ち時間を招く。
前記プロセッサにおいてプロセスを実行するために重要なアーキテクチャ状態を前記プロセッサ内にストアするステップと、
前記プロセッサ内に前記アーキテクチャ状態のシャドーコピーをストアするステップと、
前記プロセッサにおけるプロセス割込みの受信に応答して、前記アーキテクチャ状態の前記シャドーコピーをメモリにストアするステップと、
前記シャドーコピーの前記メモリへのストアの完了とは無関係に前記アーキテクチャ状態を変更するステップと、
を具備することを特徴とする、方法。
(2)前記変更するステップは、前記シャドーコピーの前記メモリへのストアの完了よりも前に前記アーキテクチャ状態を変更することを含むことを特徴とする、(1)の方法。
(3)前記アーキテクチャ状態の前記シャドーコピーは、前記プロセス割込みに応答して更新されることを特徴とする、(1)の方法。
(4)更に、前記アーキテクチャ状態の各変更に応答して前記シャドーコピーを連続的に更新するステップを含むことを特徴とする、(1)の方法。
(5)前記プロセッサは、関連する揮発性メモリのメモリ階層を有し、前記階層は、最小の待ち時間を有する最高レベルおよび最大の待ち時間を有する最低レベルを含み、前記ストアするステップは、前記揮発性メモリの前記最低レベルに前記アーキテクチャ状態の前記シャドーコピーをストアすることを含むことを特徴とする、(1)の方法。
(6)更に、割込みハンドラを実行して前記プロセス割込みを処理するステップを特徴とする、(1)の方法。
(7)前記プロセッサは、メモリアクセス命令を実行するための実行回路を含み、前記方法は、更に、前記実行回路によるメモリアクセス命令の実行とは無関係に前記シャドーコピーを前記メモリにストアするステップを具備することを特徴とする、(1)の方法。
(8)プロセッサであって、
少なくとも1つの実行ユニットと、
前記少なくとも1つの実行ユニットに結合された命令順序付けユニットと、
前記少なくとも1つの実行ユニットに結合された第1のレジスタ集合と、
を具備し、前記第1のレジスタ集合は、前記プロセッサにおいてプロセスを実行するために重要なアーキテクチャ状態の少なくとも一部を含み、
更に、前記第1のレジスタ集合に結合され、前記第1のレジスタ集合に含まれる前記アーキテクチャ状態の前記少なくとも一部のシャドーコピーを含む、対応するシャドーレジスタと、
前記シャドーレジスタに結合されたメモリと、
を具備し、前記プロセッサは、プロセス割込みを受信すると、前記メモリに前記アーキテクチャ状態の前記シャドーコピーをストアし、前記アーキテクチャ状態の前記シャドーコピーは、前記プロセッサにおいて実行される次のプロセスのためのアーキテクチャ状態の変更には無関係に前記メモリにストアされることを特徴とする、プロセッサ。
(9)更に、
最小の待ち時間を有する最高レベルおよび最大の待ち時間を有する最低レベルを含む関連する揮発性メモリ階層と、
前記不揮発性メモリ階層の前記最低レベルに結合され、前記不揮発性メモリの前記最低レベルに前記アーキテクチャ状態をストアするメモリコントローラと、
を具備することを特徴とする、(8)のプロセッサ。
(10)更に、前記プロセス割込みに応答して前記アーキテクチャ状態の前記シャドーコピーを更新するための手段を具備することを特徴とする、(8)のプロセッサ。
(11)前記アーキテクチャ状態の各変更に応答して前記アーキテクチャ状態の前記シャドーコピーを連続的に更新するための手段を具備することを特徴とする、(8)のプロセッサ。
(12)更に、前記プロセス割込みが完了すると、前記割込みのかかったプロセスの実行を継続するため、前記ストアされたソフト状態をプロセッサに復元するステップを具備することを特徴とする、(1)の方法。
(13)データ処理システムであって、
(8)によるプロセッサを含む複数のプロセッサと、
前記複数のプロセッサに結合された揮発性メモリ階層と、
前記複数のプロセッサを結合する相互接続と、
を具備することを特徴とするデータ処理システム。
(14)プロセッサであって、
前記プロセッサにおいてプロセスを実行するために重要なアーキテクチャ状態を前記プロセッサ内にストアするための手段と、
前記プロセッサ内に前記アーキテクチャ状態のシャドーコピーをストアするための手段と、
前記プロセッサにおけるプロセス割込みの受信に応答して、前記アーキテクチャ状態の前記シャドーコピーをメモリにストアするための手段と、
前記シャドーコピーの前記メモリへのストアの完了とは無関係に前記プロセッサ内の前記アーキテクチャ状態を変更するための手段と、
を具備することを特徴とする、プロセッサ。
(15)前記アーキテクチャ状態を変更するための手段は、前記シャドーコピーの前記メモリへのストアの完了よりも前に前記アーキテクチャ状態を変更するための手段を具備することを特徴とする、(14)のプロセッサ。
(16)更に、前記プロセス割込みに応答して前記アーキテクチャ状態の前記シャドーコピーを更新するための手段を具備することを特徴とする、(14)のプロセッサ。
(17)更に、前記アーキテクチャ状態の各変更に応答して前記シャドーコピーを連続的に更新するための手段を具備することを特徴とする、(14)のプロセッサ。
(18)更に、
最小の待ち時間を有する最高レベルおよび最大の待ち時間を有する最低レベルを含む関連する揮発性メモリ階層と、
前記不揮発性メモリ階層の前記最低レベルに結合され、前記不揮発性メモリの前記最低レベルに前記アーキテクチャ状態をストアするメモリコントローラと、
を具備することを特徴とする、(14)のプロセッサ。
(19)更に、割込みハンドラを実行して前記プロセス割込みを処理するための手段を具備することを特徴とする、(14)のプロセッサ。
(20)更に、メモリアクセス命令を実行するための実行回路を含み、これによって、前記プロセッサは、前記実行回路によるメモリアクセス命令の実行とは無関係に前記シャドーコピーを前記メモリにストアすることができることを特徴とする、(14)のプロセッサ。
(21)更に、
最小の待ち時間を有する最高レベルおよび最大の待ち時間を有する最低レベルを含む関連する揮発性メモリ階層と、
前記不揮発性メモリ階層の前記最低レベルに結合され、前記不揮発性メモリの前記最低レベルに前記アーキテクチャ状態をストアするメモリコントローラと、
を具備することを特徴とする、(14)のプロセッサ。
Claims (20)
- プロセッサにおいて状態情報を管理する方法であって、
前記プロセッサにおいてプロセスを実行するためにハードアーキテクチャ状態を前記プロセッサ内の現在のプロセスハード状態用レジスタにストアするステップと、
前記プロセッサ内に前記ハードアーキテクチャ状態のシャドーコピーを前記プロセッサ内のシャドーレジスタにストアするステップと、
前記プロセッサにおけるプロセス割込みの受信に応答して、
前記ハードアーキテクチャ状態の前記シャドーコピーをメモリにストアするステップと
キャッシュ内容を含むプロセスのソフト状態を内部データ経路を用いて前記メモリにストアするステップと、
前記シャドーコピーの前記メモリへのストアの完了よりも前に前記ハードアーキテクチャ状態を変更するステップと、
前記ソフト状態の前記メモリへのストアとは独立して非同期に前記プロセス割込みを処理する割込みハンドラを実行するステップと、
を具備することを特徴とする、方法。 - 前記変更するステップは、前記シャドーコピーの前記メモリへのストアの完了よりも前に前記ハードアーキテクチャ状態を変更することを含むことを特徴とする、請求項1の方法。
- 前記ハードアーキテクチャ状態の前記シャドーコピーは、前記プロセス割込みに応答して更新されることを特徴とする、請求項1の方法。
- 前記ソフト状態の前記メモリへのストアは、レベル1命令キャッシュ、レベル1データキャッシュ、分岐履歴テーブル、命令変換索引バッファ、データ変換索引バッファ、有効−実アドレステーブル、一体化レベル2キャッシュを前記メモリにストアするステップを含むことを特徴とする、請求項1の方法。
- 前記プロセッサは、前記プロセス割込みの終了の際、
次のプロセスを選択するための次のプロセスハード状態用レジスタを有し、
このレジスタはプロセスの優先度の変動に伴い前記メモリから連続的かつ動的に更新されるステップを具備することを特徴とする、請求項1の方法。 - 更に、割込みハンドラを実行して前記プロセス割込みを処理するステップを特徴とする、請求項1の方法。
- 前記プロセッサは、メモリアクセス命令を実行するための実行回路を含み、
前記方法は、更に、前記実行回路によるメモリアクセス命令の実行とは独立して非同期に前記シャドーコピーを前記メモリにストアするステップと、
前記ソフト状態の前記メモリへのストアするステップと、
を具備することを特徴とする、請求項1の方法。 - プロセッサであって、
少なくとも1つの実行ユニットと、
前記少なくとも1つの実行ユニットに結合された命令順序付けユニットと、
前記少なくとも1つの実行ユニットに結合された第1のレジスタ集合と、
を具備し、前記第1のレジスタ集合は、前記プロセッサにおいてプロセスを実行するためにハードアーキテクチャ状態の少なくとも一部を含み、
更に、前記第1のレジスタ集合に結合され、前記第1のレジスタ集合に含まれる前記ハードアーキテクチャ状態の前記少なくとも一部のシャドーコピーを含む、対応するシャドーレジスタと、
前記シャドーレジスタに結合されたメモリと、
を具備し、前記プロセッサは、プロセス割込みを受信すると、
前記メモリに前記ハードアーキテクチャ状態の前記シャドーコピーをストアし、
キャッシュ内容を含むプロセスのソフト状態を内部データ経路を用いて前記メモリにストアし、
前記シャドーコピーの前記メモリへのストアの完了よりも前に前記ハードアーキテクチャ状態を変更し、
前記ソフト状態の前記メモリへのストアとは独立して非同期に前記プロセス割込みを処理する割込みハンドラを実行することを特徴とする、プロセッサ。 - 前記プロセッサは、前記プロセス割込みの終了の際、
次のプロセスを選択するための次のプロセスハード状態用レジスタを有し、
このレジスタはプロセスの優先度の変動に伴い前記メモリから連続的かつ動的に更新されるための手段を具備することを特徴とする、請求項8のプロセッサ。 - 更に、前記プロセス割込みに応答して前記ハードアーキテクチャ状態の前記シャドーコピーを更新するための手段を具備することを特徴とする、請求項8のプロセッサ。
- 前記ソフト状態の前記メモリへのストアはレベル1命令キャッシュ、レベル1データキャッシュ、分岐履歴テーブル、命令変換索引バッファ、データ変換索引バッファ、有効−実アドレステーブル、一体化レベル2キャッシュを前記メモリにストアするための手段を具備することを特徴とする、請求項8のプロセッサ。
- 更に、前記プロセス割込みが完了すると、前記割込みのかかったプロセスの実行を継続するため、前記ストアされた前記ソフト状態の少なくとも一部をリストアするステップを具備することを特徴とする、請求項1の方法。
- データ処理システムであって、
請求項8によるプロセッサを含む複数のプロセッサと、
前記複数のプロセッサに結合された揮発性メモリ階層と、
前記複数のプロセッサを結合する相互接続と、
を具備することを特徴とするデータ処理システム。 - プロセッサであって、
前記プロセッサにおいてプロセスを実行するためにハードアーキテクチャ状態を前記プロセッサ内の現在のプロセスハード状態用レジスタにストアするための手段と、
前記プロセッサ内に前記ハードアーキテクチャ状態のシャドーコピーを前記プロセッサ内のシャドーレジスタにストアするための手段と、
前記プロセッサにおけるプロセス割込みの受信に応答して、
前記ハードアーキテクチャ状態の前記シャドーコピーをメモリにストアするための手段と、
キャッシュ内容を含むプロセスのソフト状態を内部データ経路を用いて前記メモリにストアするための手段と、
前記シャドーコピーの前記メモリへのストアの完了よりも前に前記プロセッサ内の前記ハードアーキテクチャ状態を変更するための手段と、
前記ソフト状態の前記メモリへのストアとは独立して非同期に前記プロセス割込みを処理する割込みハンドラを実行するための手段と、
を具備することを特徴とする、プロセッサ。 - 前記ハードアーキテクチャ状態を変更するための手段は、前記シャドーコピーの前記メモリへのストアの完了よりも前に前記ハードアーキテクチャ状態を変更するための手段を具備することを特徴とする、請求項14のプロセッサ。
- 更に、前記プロセス割込みに応答して前記ハードアーキテクチャ状態の前記シャドーコピーを更新するための手段を具備することを特徴とする、請求項14のプロセッサ。
- 前記ソフト状態の前記メモリへのストアは、レベル1命令キャッシュ、レベル1データキャッシュ、分岐履歴テーブル、命令変換索引バッファ、データ変換索引バッファ、有効−実アドレステーブル、一体化レベル2キャッシュを前記メモリにストアするための手段を具備することを特徴とする、請求項14のプロセッサ。
- 更に、
前記プロセッサは、前記プロセス割込みの終了の際、
次のプロセスを選択するための次のプロセスハード状態用レジスタを有し、
このレジスタはプロセスの優先度の変動に伴い前記メモリから連続的かつ動的に更新されるための手段を具備することを特徴とする、請求項14のプロセッサ。 - 更に、割込みハンドラを実行して前記プロセス割込みを処理するための手段を具備することを特徴とする、請求項14のプロセッサ。
- 更に、メモリアクセス命令を実行するための実行回路を含み、
これによって、前記プロセッサは、前記実行回路によるメモリアクセス命令の実行とは独立して非同期に前記シャドーコピーを前記メモリにストアすることができる手段と、
前記ソフト状態の前記メモリへのストアする手段と、
を具備することを特徴とする、請求項14のプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/313,321 US7117319B2 (en) | 2002-12-05 | 2002-12-05 | Managing processor architected state upon an interrupt |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004185602A JP2004185602A (ja) | 2004-07-02 |
JP3874287B2 true JP3874287B2 (ja) | 2007-01-31 |
Family
ID=32468219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003365322A Expired - Fee Related JP3874287B2 (ja) | 2002-12-05 | 2003-10-24 | 割込み時のプロセッサのアーキテクチャ状態の管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7117319B2 (ja) |
JP (1) | JP3874287B2 (ja) |
CN (1) | CN1291316C (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7493478B2 (en) * | 2002-12-05 | 2009-02-17 | International Business Machines Corporation | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US7363536B1 (en) * | 2004-07-30 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Delivery of an interruption to an operating system |
US7328331B2 (en) * | 2005-01-25 | 2008-02-05 | Hewlett-Packard Development Company, L.P. | Method and system of aligning execution point of duplicate copies of a user program by copying memory stores |
US20060200616A1 (en) * | 2005-03-02 | 2006-09-07 | Richard Maliszewski | Mechanism for managing resources shared among virtual machines |
US8812781B2 (en) * | 2005-04-19 | 2014-08-19 | Hewlett-Packard Development Company, L.P. | External state cache for computer processor |
US7930589B2 (en) * | 2005-06-17 | 2011-04-19 | Analog Devices, Inc. | Interrupt-responsive non-volatile memory system and method |
US7424563B2 (en) * | 2006-02-24 | 2008-09-09 | Qualcomm Incorporated | Two-level interrupt service routine |
JP4871948B2 (ja) * | 2008-12-02 | 2012-02-08 | 株式会社日立製作所 | 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法 |
JP4691153B2 (ja) * | 2008-12-10 | 2011-06-01 | 富士通株式会社 | マルチコアプロセッサ,制御方法および情報処理装置 |
US8825926B2 (en) * | 2009-04-13 | 2014-09-02 | Microchip Technology Incorporated | Processor with assignable general purpose register set |
US8578138B2 (en) | 2009-08-31 | 2013-11-05 | Intel Corporation | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode |
TW201237630A (en) * | 2011-03-01 | 2012-09-16 | Wistron Corp | Method and computer system for processing data in a memory |
CN102929819B (zh) * | 2012-10-19 | 2016-02-10 | 北京忆恒创源科技有限公司 | 用于处理计算机系统中的存储设备的中断请求的方法 |
US10990159B2 (en) * | 2017-04-25 | 2021-04-27 | Apple Inc. | Architected state retention for a frequent operating state switching processor |
JP7368511B2 (ja) * | 2020-02-03 | 2023-10-24 | 株式会社ソニー・インタラクティブエンタテインメント | データ処理システム、データ転送装置およびコンテキストスイッチ方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4484274A (en) * | 1982-09-07 | 1984-11-20 | At&T Bell Laboratories | Computer system with improved process switch routine |
JPS6027031A (ja) | 1983-07-25 | 1985-02-12 | Nec Corp | 情報処理装置 |
JPS60164840A (ja) | 1984-02-08 | 1985-08-27 | Nec Corp | レジスタセ−ブ,リカバ−方式 |
JPS61241838A (ja) | 1985-04-19 | 1986-10-28 | Nec Corp | 記憶装置 |
US5057997A (en) * | 1989-02-13 | 1991-10-15 | International Business Machines Corp. | Interruption systems for externally changing a context of program execution of a programmed processor |
JPH03201032A (ja) | 1989-12-28 | 1991-09-02 | Toshiba Corp | 演算処理装置 |
JPH04288625A (ja) | 1991-02-18 | 1992-10-13 | Mitsubishi Electric Corp | マイクロコンピュータ |
US6026471A (en) | 1996-11-19 | 2000-02-15 | International Business Machines Corporation | Anticipating cache memory loader and method |
US5987495A (en) * | 1997-11-07 | 1999-11-16 | International Business Machines Corporation | Method and apparatus for fully restoring a program context following an interrupt |
US6189112B1 (en) * | 1998-04-30 | 2001-02-13 | International Business Machines Corporation | Transparent processor sparing |
US6247109B1 (en) * | 1998-06-10 | 2001-06-12 | Compaq Computer Corp. | Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space |
US6308290B1 (en) | 1999-05-20 | 2001-10-23 | International Business Machines Corporation | Look ahead scan chain diagnostic method |
US6981083B2 (en) * | 2002-12-05 | 2005-12-27 | International Business Machines Corporation | Processor virtualization mechanism via an enhanced restoration of hard architected states |
-
2002
- 2002-12-05 US US10/313,321 patent/US7117319B2/en not_active Expired - Fee Related
-
2003
- 2003-10-24 JP JP2003365322A patent/JP3874287B2/ja not_active Expired - Fee Related
- 2003-11-26 CN CNB2003101180003A patent/CN1291316C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1504883A (zh) | 2004-06-16 |
US7117319B2 (en) | 2006-10-03 |
CN1291316C (zh) | 2006-12-20 |
US20040111572A1 (en) | 2004-06-10 |
JP2004185602A (ja) | 2004-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1570352B1 (en) | Method and apparatus for switching between processes | |
CA2508044C (en) | Cross partition sharing of state information | |
US7849298B2 (en) | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states | |
JP3874287B2 (ja) | 割込み時のプロセッサのアーキテクチャ状態の管理 | |
JP2004185603A (ja) | 割込みハンドラ予測方法およびシステム | |
JP3872470B2 (ja) | メモリにおいてセーブされたプロセス状態を管理する方法、処理ユニットおよびデータ処理システム | |
US7039832B2 (en) | Robust system reliability via systolic manufacturing level chip test operating real time on microprocessors/systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060405 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20060405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060405 |
|
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: 20061017 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20061018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061019 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091102 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |