JP2006502470A - 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法 - Google Patents

複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法 Download PDF

Info

Publication number
JP2006502470A
JP2006502470A JP2004509742A JP2004509742A JP2006502470A JP 2006502470 A JP2006502470 A JP 2006502470A JP 2004509742 A JP2004509742 A JP 2004509742A JP 2004509742 A JP2004509742 A JP 2004509742A JP 2006502470 A JP2006502470 A JP 2006502470A
Authority
JP
Japan
Prior art keywords
context
register
contexts
data processing
processing system
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
JP2004509742A
Other languages
English (en)
Other versions
JP4409427B2 (ja
JP2006502470A5 (ja
Inventor
シー. モイヤー、ウィリアム
エイチ. アレンズ、ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2006502470A publication Critical patent/JP2006502470A/ja
Publication of JP2006502470A5 publication Critical patent/JP2006502470A5/ja
Application granted granted Critical
Publication of JP4409427B2 publication Critical patent/JP4409427B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/30134Register stacks; shift registers

Landscapes

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

Abstract

複数のレジスタ・コンテキスト(34、35、36)を有するデータ処理システム(10)を説明する。本発明の一実施形態は、複数のレジスタ・コンテキストのそれぞれに関して、ユーザがプログラム可能なコンテキスト制御レジスタ(140)を使用して、代替レジスタ・コンテキストの一部分を現在のレジスタ・コンテキストにマッピングすることを可能にする。また、コンテキスト制御レジスタを使用して、複数のレジスタ・コンテキストの間における共通のスタック・ポインタの共有を提供することも可能である。したがって、現在のレジスタ・コンテキスト内で動作している場合に、コンテキスト制御レジスタを使用して、現在のレジスタ・コンテキストの対応する一部分にアクセスする代りに、代替レジスタ・コンテキストの一部分にアクセスすることが可能である。

Description

本発明は、一般に、データ処理システムに関し、より詳細には、複数のレジスタ・コンテキストを有するデータ処理システムに関する。
マイクロプロセッサなどのデータ処理システムでは、動作の実行および処理を制御するのにプロセッサが利用される。プロセッサは、通常の動作中および例外処理中にプロセッサによって利用されるレジスタ・コンテキストを格納するレジスタ群を含む。割り込み、またはプロセス切り替えが生じた場合、割り込み処理プログラムまたは新たなプロセスが同一のレジスタ群を使用し、レジスタ内の値の一部を変更する可能性があるため、レジスタ・コンテキスト情報が壊れる可能性がある。
上述の問題の1つの解決法は、割り込みの処理または新たなプロセスを開始するのに先立って、レジスタ・コンテキストの現在の値をメモリの中に保存し、割り込み処理が完了した時点、または現在のプロセスに戻る時点で、メモリからレジスタ群の中に保存されているレジスタ・コンテキスト値を再び読み込むことである。しかし、レジスタ・コンテキストを保存すること、および新たなコンテキストをロードすることのオーバーヘッドは、リアルタイム環境または高性能環境においては望ましくない。したがって、柔軟性があり、オーバーヘッドを減らすデータ処理システムにおけるレジスタ・コンテキスト選択方式の必要性が存在する。
本発明を、例として、限定としてではなく、添付の図によって示す。図では、同様の符号は同様の要素を示す。
図における諸要素は、簡明にするために示しており、必ずしも原寸に比例して描かれているわけではないことは、当業者には理解されよう。例えば、図における諸要素の一部の寸法は、本発明の諸実施形態の理解を向上させるのに役立つよう、他の諸要素と比べて誇張されている可能性がある。
本明細書で使用する「バス」という用語は、データ、アドレス、制御、またはステータスなどの1つまたは複数の様々なタイプの情報を転送するのに使用することが可能な複数の信号または導体を指すのに使用する。「アサートする」および「ネゲートする」(または「デアサートする」)という用語は、信号、ステータス・ビット、または類似の装置を論理的に真の状態、または論理的に偽の状態にすることを指す場合にそれぞれ使用される。論理的に真の状態が論理レベル1である場合、論理的に偽の状態は論理レベル0である。また、論理的に真の状態が論理レベル0である場合、論理的に偽の状態は論理レベル1である。数の前に付いた記号「$」は、その数が16進形式で、つまり16を基数とする形式で表されていることを示す。数の前に付いた記号「%」は、その数が2進形式、つまり2を基数とする形式で表されていることを示す。
図1は、データ・バス4およびアドレス・バス6を介して外部デバイス2に結合されたデータ処理システム10を示している。データ処理システム10は、プロセッサ12を含む。一実施形態では、データ処理システム10および外部デバイス2はそれぞれ、別々の集積回路として実装される。代替の実施形態では、データ処理システム10および外部デバイス2は、単一の集積回路上に実装することが可能である。データ処理システム10内部では、プロセッサ12が、内部データ・バス13および内部アドレス・バス14でシス
テム集積回路22に結合される。
本発明の一部の実施形態では、データ処理システム10は、単一の集積回路上に形成されることに留意されたい。さらに、一部の実施形態では、データ処理システム10は、シングル・チップ・マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、または他の任意のタイプのデータ処理システムであることが可能である。さらに、データ処理システム10は、任意のタイプの電気回路を使用して実装することが可能である。外部デバイス2は、メモリまたは任意のタイプの周辺デバイスを含め、あらゆるタイプの電気回路であることが可能である。代替の実施形態は、より多い、より少ない、または異なる外部集積回路群を含むことが可能である。さらに、バス4およびバス6は、任意の数のビットを使用して実装することが可能である。
動作の際、システム・インテグレーション22を使用して、プロセッサ12と外部デバイス2の間の通信を可能にする。つまり、プロセッサ12は、内部バス14および13を介してデータおよびアドレス情報をシステム・インテグレーション22に送り、インテグレーション22は、データおよびアドレス情報を、外部デバイス2に適切な方法およびフォーマットで、バス4およびバス6を介して送る。プロセッサ12について、図2を参照して以下により詳細に説明する。
図2は、本発明の一実施形態によるプロセッサ12の一部分を示している。プロセッサ12は、演算論理装置(ALU)24、アドレス・ジェネレータ26、命令パイプライン28、命令復号化回路30、レジスタ・ファイル・セット32、およびベクトル・オフセット・ジェネレータ39を含む。レジスタ・ファイル32は、コンテキスト0 34、コンテキスト1 35、およびコンテキストN 36のような複数のレジスタ・コンテキストを含む。したがって、レジスタ・ファイル32は、N+1個のレジスタ・コンテキストを含み、3つだけを図2に示しているが、プロセッサ12は、いくつのレジスタ・コンテキストをハードウェアがサポートすることが可能であるかに依存して、任意の数のレジスタ・コンテキストを含むことが可能である。また、レジスタ・ファイル32は、制御レジスタ・ファイル38も含む。内部アドレス・バス14がアドレス・ジェネレータ26に結合され、アドレス・ジェネレータ26は、レジスタ・ソース・バステップ40を介してレジスタ・ファイル32に結合され、内部データ・バス13にも結合される。ベクトル・オフセット・ジェネレータ39は、ベクトル・オフセット・バス27を介してアドレス・ジェネレータ26に結合される。内部データ・バス13は、命令パイプライン28、ALU24、およびレジスタ・ファイル32に結合される。命令復号化回路30は、命令バス29を介して命令パイプライン28に双方向で結合される。レジスタ・ファイル32は、フィールド情報バス42を介してALU24に結合される。
図3は、本発明の一実施形態によるレジスタ・コンテキスト51を示している。図3のレジスタ・コンテキスト51は、図2のコンテキスト0〜Nのいずれか1つを表すことが可能である。図3の実施形態では、レジスタ・コンテキスト51は、32個の汎用レジスタ(GPR)50、リンク・レジスタ54、カウント・レジスタ56、条件レジスタ58、整数例外レジスタ60、マシン状態レジスタ62、およびコンテキスト制御レジスタ64を含む。リンク・レジスタ54は、サブルーチンを呼び出す際、およびサブルーチンから戻る際、サブルーチン・リンケージ情報を保持するのに使用される。カウント・レジスタ56は、命令のカウントされるループを処理するためのカウント情報を保持するのに使用される。条件レジスタ58は、条件コード計算の結果を保持するのに使用される。整数例外レジスタ60は、様々な例外ステータスを提供するのに使用される。マシン状態レジスタ62は、プロセッサ12内部の様々な機能のステータスを制御し、それらの機能のステータスを提供するのに使用される。コンテキスト制御レジスタ64は、以下により詳細に説明するとおり、本発明の一実施形態に従ってコンテキスト切り替えを提供するのに使
用される。GPR50の1つは、現在のスタック・ポインタを格納するために確保されたスタック・ポインタ・レジスタ52であることにも留意されたい。
したがって、レジスタ・コンテキストとは、前述したレジスタ群(コンテキスト51のレジスタ群)の内容を指す。代替の実施形態は、レジスタ・コンテキスト51の同一のレジスタ群のすべて、または一部を有するものとしてレジスタ・コンテキストを定義するか、またはレジスタ・コンテキスト51のレジスタ群とは異なるレジスタ・セットを含むことが可能である。したがって、本明細書で使用するレジスタ・コンテキストは、任意の数の任意のタイプのレジスタを有するように定義することが可能である。通常、レジスタ・コンテキストは、プロセッサに関するプログラマのレジスタ・モデルの全部または一部を形成するレジスタ・リソース群を含む。通常の動作中、または電源投入またはリセットの後、データ処理システム10は、デフォルトでコンテキスト0 34を利用することが可能である。(代替の実施形態では、通常の動作は、デフォルトで異なるコンテキストになることに留意されたい。)しかし、割り込みまたはプロセス切り替えが生じた場合、コンテキスト0 34内の値を壊さないように、データ処理システム10は、その割り込みを処理するため、またはその新たなプロセスまたはスレッドを実行するために、新たなコンテキストを(コンテキスト1ないしNから)選択する。したがって、割り込み処理およびプロセス切り替え(例えば、マルチスレッド)により、データ処理システム10内部でレジスタ・コンテキストを切り替える必要が生じる可能性がある。また、一部の実施形態では、レジスタ・コンテキスト内のレジスタ群の一部を別のレジスタ・コンテキストと共有することが望ましい可能性がある。したがって、以下に説明するとおり、レジスタ・コンテキストの一部分を別のレジスタ・コンテキストにマップして、オーバーヘッドを減らし、コンテキスト切り替え中の速度を高めるのに役立てることが可能である。
データ処理システム10では、例外および割り込みは、命令パイプライン28の復号化段階または実行段階において認識される。このため、命令が命令復号化回路30に与えられ、復号化された場合、通常の命令処理の代りに、割り込みが認識され、処理されることが可能である。本明細書で説明する一実施形態では、所与の割り込みが他の何らかの割り込みに優先されるかどうかを決める複数の割り込みレベルが存在する。このため、高い優先順位を有する割り込みは、より低い優先順位を有する割り込みより迅速に処理され、より低い優先順位を有する割り込みは、処理を待たなければならない。したがって、同一の優先順位を有する各割り込み、あるいは同一の優先順位を有する各割り込みまたは各タイプの割り込みは、所望される場合、同一のレジスタ・コンテキストを共有することが可能である。
割り込みが受け取られた場合、データ処理システム10は、例外処理シーケンスを実行することを始める。このシーケンス中、ベクトル・オフセット・ジェネレータ39は、ベクトル・オフセット・バス27を介してベクトル・オフセット値をアドレス・ジェネレータ26に与える。アドレス・ジェネレータ26は、ベクトル・オフセット値を使用して、割り込みを処理するために実行が開始されるべき命令アドレスを形成する。一実施形態では、ベクトル・オフセット値に加えて、ベクトル・オフセット・ジェネレータは、割り込み処理のために使用されるべきレジスタ・コンテキストを示すコンテキスト・セレクタも与える。一実施形態では、コンテキスト・セレクタは、ベクトル・オフセット値の一部分であるか、またはベクトル・オフセット・ジェネレータ39によって与えられる別個の値であることが可能である。また、コンテキスト・セレクタは、レジスタ・ファイル32に直接に与えることも可能である。代替の実施形態では、コンテキスト・セレクタは、メモリ(図示せず)から読み取られる値であることが可能であり、あるいは命令を介して受け取られることが可能である。データ処理システム10がレジスタ・ファイル32の中に8つのレジスタ・コンテキストを有するケースでは、コンテキスト・セレクタは、レジスタ・コンテキストの1つを識別するのに使用される3ビットの値であることが可能である。
また、データ処理システム10は、1つのプロセスから別のプロセス(それぞれのプロセスは異なるレジスタ・コンテキストで動作することが可能である)に、プロセッサ12が切り替えることが可能である場合、プロセス切り替えを行うことが可能である。例えば、マルチスレッド・アプリケーションでは、プロセッサ12は、異なる処理スレッド(または処理スレッドのグループ)が異なるレジスタ・コンテキストを使用する場合、様々な処理スレッドの間で絶えず切り替えを行うことが可能である。プロセス切り替えのケースでは、割り込みを使用して、プロセス切り替えをデータ処理システム10に示すことが可能である(割り込み処理が切り替えプロセスを含む場合)。あるいは、他の方法を使用して、プロセス切り替えが必要であることをアドレス・ジェネレータ26に示し、アドレス・ジェネレータ26が新たなプロセスの開始アドレスを生成することが可能である。また、プロセス切り替え後、新たなプロセスにいずれのレジスタ・コンテキストが必要とされるかを示すようにコンテキスト・セレクタも与えられる。前述したとおり、コンテキスト・セレクタは、様々な異なる形で(すなわち、ベクトル・オフセット・ジェネレータ39から、メモリから、ユーザ命令からなど)与えることが可能であり、正しいレジスタ・コンテキストが選択されることが可能であるように、レジスタ・ファイル32に直接に、または間接的に(例えば、アドレス・ジェネレータ26を介して)与えることが可能である。
レジスタ・コンテキストが確立されると、プロセッサ12によって実行される命令は、現在、確立されているコンテキストに対応する適切な汎用レジスタ群(GPR群50)または専用レジスタ群(例えば、LR54、CTR56、CR58、XER60、MSR62、またはCTXCR64)を参照する。他のコンテキスト内のレジスタ群は、影響を受けず(以下に説明するとおり、マッピングが確立されていない限り)、このため、現在、確立されているコンテキストに関する命令の実行に先立って、メモリに代替のコンテキストを保存すること、または復元することを実行する必要は全くない。これにより、オーバーヘッドの節減が可能になる。
図4および図5は、データ処理システム10内部で使用することが可能なレジスタ・コンテキスト内の典型的なマッピングを示している。図4は、3つのレジスタ・コンテキスト、すなわち、コンテキスト0 70、コンテキスト1 72、およびコンテキスト2 74を示している。以上のレジスタ・コンテキストは、図2のコンテキスト0〜Nの範囲内のコンテキストの3つを表すことが可能である。図4の例では、コンテキスト0 70は、データ処理システム10の通常の動作に対応し、コンテキスト1 72は、重要な割り込み(最高優先順位)に対応し、コンテキスト2 74は、外部割込み(低い優先順位)に対応するものと想定する。前述したとおり、一部のケースでは、複数のレジスタ・コンテキストがレジスタ群の一部を「共有する」ことが望ましい。したがって、図4の例では、矢印82で示すとおり、レジスタ・コンテキスト2 74のスタック・ポインタ・レジスタ80が、レジスタ・コンテキスト1 72のスタック・ポインタ78にマップされ、レジスタ・コンテキスト1 72とレジスタ・コンテキスト2 74が同一のスタック・ポインタを共有することが可能であり、両方のレジスタ・コンテキストにおいて同一のスタック・ポインタ値が使用されるようになっていることを示している。このマッピングは、オーバーヘッドを減らし、スタック・ポインタの整合性を保つのに役立つ。したがって、外部割り込みを処理するときには、コンテキスト2 74がデータ処理システム10によって選択される。しかし、スタック・ポインタ・レジスタ80がスタック・ポインタ・レジスタ78にマップされているので、レジスタ・コンテキスト1 72内のスタック・ポインタ・レジスタ78が、そのスタック・ポインタにアクセスするためにレジスタ・コンテキスト2 74における動作中にアクセスされる。つまり、レジスタ・コンテキスト2 74を選択する現在のコンテキスト値で動作している間、スタック・ポインタ・レジスタ80にアクセスしようと試みる命令およびその他の動作は、レジスタ・コンテキス
ト1 72内のスタック・ポインタ・レジスタ78にアクセスするように向けかえられる。これにより、別々のスタック・ポインタ・レジスタ80と78を同期させるオーバーヘッドなしに、コンテキスト1とコンテキスト2の間で単一の矛盾しないスタックおよびスタック・ポインタ値が共有されることが可能になる。
スタック・ポインタ・レジスタ76(コンテキスト0 70の)とスタック・ポインタ・レジスタ78(コンテキスト1 72の)はマップされていないことに留意されたい。したがって、これらのレジスタ・コンテキストで動作している場合、スタック・ポインタにアクセスする際に他のいずれのレジスタ・コンテキストにもアクセスする必要がない。レジスタ・コンテキスト70、72、および74のそれぞれの中のコンテキスト制御レジスタ77、79、および75はそれぞれ、対応するレジスタ・コンテキストのスタック・ポインタがマップされているかどうかを示し、マップされている場合、他のいずれのレジスタ・コンテキストにマップされているかを示す。コンテキスト制御レジスタの詳細を、図6を参照して以下により詳細に説明する。
図5は、別の例による3つのレジスタ・コンテキスト、すなわち、レジスタ・コンテキスト1 90、レジスタ・コンテキスト2 92、およびレジスタ・コンテキスト3 94を示している。図4の場合と同様に、図5のレジスタ・コンテキストは、図2のレジスタ・コンテキスト0〜Nのレジスタ・コンテキストの3つを表すことが可能である。図5の例では、レジスタ・コンテキスト1 90は、プロセスAに対応し、レジスタ・コンテキスト2 92は、プロセスBに対応し、レジスタ・コンテキスト3 94は、プロセスCに対応する。したがって、データ処理システム10は、プロセスAを実行している場合、レジスタ・コンテキスト1 90で動作する。プロセス切り替え時(例えばプロセスAからプロセスBへの切り替え)、コンテキスト・セレクタにより、プロセスBを実行する際に使用するためのレジスタ・コンテキスト2 92が選択される。図4に関連して前述したとおり、スタック・ポインタ・レジスタのそれぞれは、異なるレジスタ・コンテキストにマップされる能力を有する。例えば、図5で、レジスタ・コンテキスト1 90のスタック・ポインタ・レジスタ96が、矢印124で示すとおり、レジスタ・コンテキスト2 92のスタック・ポインタ・レジスタ98にマップされる。したがって、プロセスAを実行している(レジスタ・コンテキスト1 90を使用して)場合、スタック・ポインタへのアクセスにより、実際には、異なるレジスタ・コンテキスト(すなわち、レジスタ・コンテキスト2 92)内のスタック・ポインタ・レジスタ98へのアクセスがもたらされる。ただし、レジスタ・コンテキスト3 94のスタック・ポインタ・レジスタ100はマップされていないことに留意されたい。また、一実施形態では、階層型マッピングを有することも可能である。例えば、スタック・ポインタ・レジスタ96がスタック・ポインタ・レジスタ98にマップされるのと同様に、スタック・ポインタ・レジスタ98も、例えば、スタック・ポインタ・レジスタ100にマップされることが可能である。また、特定のスタック・ポインタ・レジスタに、複数のスタック・ポインタ・レジスタがマップされることも可能である。例えば、スタック・ポインタ・レジスタ98に、スタック・ポインタ・レジスタ100とスタック・ポインタ・レジスタ96がマップされることが可能である。その他のマッピングも同様に可能である。
図5のレジスタ・コンテキスト群は、レジスタのグループ化も含む。例えば、汎用レジスタ群は、4つのレジスタのグループにグループ化される。レジスタ・コンテキスト1 90において、GPR4〜7が一緒にグループ化されてレジスタ・グループ102になり、GPR8〜11が一緒にグループ化されてレジスタ・グループ104になり、GPR28〜31がグループ化されてレジスタ・グループ106になる。したがって、レジスタ・コンテキスト1 90は、図5の例では、それぞれ4つのレジスタの3つのグループ(グループ102、104、および106)を含み、これらのグループのそれぞれが、異なるレジスタ・コンテキストにマップされる(グループとして)ことが可能である。代替の実
施形態では、任意の数およびタイプのレジスタをグループ化することが可能である。あるいは、所望される細分性に依存して、それぞれの個別のレジスタを別個のグループと見なすことが可能である。同様に、レジスタ・コンテキスト2 92は、4つのレジスタの3つのグループ、すなわち、GPR4〜7を有するグループ114、GPR8〜11を有するグループ116、およびGPR28〜31を有するグループ118)を含む。また、レジスタ・コンテキスト3 94も、4つのレジスタの3つのグループ、すなわち、GPR4〜7を有するグループ108、GPR8〜11を有するグループ110、およびGPR28〜31を有するグループ112)を含む。以上のグループ化により、レジスタのグループが、異なるレジスタ・コンテキストの間でマッピングされることが可能になる。
例えば、矢印120で示すとおり、レジスタ・コンテキスト2 92のグループ118が、レジスタ・コンテキスト1 90のグループ106にマップされる。矢印126で示すとおり、レジスタ・コンテキスト3 94のグループ112も、レジスタ・コンテキスト1 90のグループ106にマップされる。つまり、グループ106のレジスタ群は、3つすべてのレジスタ・コンテキスト、すなわち、レジスタ・コンテキスト1 90、レジスタ・コンテキスト2 92、およびレジスタ・コンテキスト3 94によって共有される。したがって、プロセスBまたはプロセスCを実行している場合、現在のレジスタ・コンテキスト(それぞれ、レジスタ・コンテキスト2 92またはレジスタ・コンテキスト3 94)のGPR28〜31へのアクセスにより、実際には、レジスタ・コンテキスト1 90のGPR28〜31へのアクセスがもたらされる。やはり図5に示されていることとして、矢印122で示すとおり、レジスタ・コンテキスト1 90のグループ104が、レジスタ・コンテキスト2 92のグループ116にマップされている。つまり、グループ116のレジスタ群は、レジスタ・コンテキスト1 90とレジスタ・コンテキスト2 92の両方によって共有される。したがって、プロセスAを実行している場合、現在のレジスタ・コンテキストのGPR8〜11へのアクセスにより、実際には、レジスタ・コンテキスト2 92のGPR8〜11へのアクセスがもたらされる。したがって、単一のレジスタ(スタック・ポインタ・レジスタ96、98、または100のような)のマッピングであるか、レジスタのグループのマッピングであるかに関わらず、任意の数のマッピングが存在することが可能である。また、各レジスタ・コンテキストは、あるレジスタ群を1つのレジスタ・コンテキストにマップしており、他のレジスタ群をもう1つのレジスタ・コンテキストにマップしていることも可能である。また、レジスタ、またはグループのレジスタに、複数のレジスタ・コンテキストのレジスタ群がマップされていることも可能である。
各レジスタ・コンテキストのマッピングは、各レジスタ・コンテキストのコンテキスト制御レジスタ(例えば、図5のコンテキスト制御レジスタ128、130、および132)の中で定義される。したがって、図2の各レジスタ・コンテキスト0〜Nは、各レジスタ・コンテキストの中に含められることが可能である(図4および5のように)か、または別々に(図2の制御レジスタ・ファイル38の中などに)格納されることが可能な、対応するコンテキスト制御レジスタを有する。図6は、本発明の一実施形態によるコンテキスト制御レジスタ140の内容を示している。コンテキスト制御レジスタ140は、図4のコンテキスト制御レジスタ77、79、75、または図5のコンテキスト制御レジスタ128、130、および132を指すことが可能である。一実施形態では、コンテキスト制御レジスタ140は、レジスタ群のマッピングを制御する様々な異なるフィールドを有し、現在のコンテキスト情報、代替のコンテキスト情報、および保存されたコンテキスト情報を保持する専用32ビット・レジスタである。
コンテキスト制御レジスタ140のビット0は、複数のレジスタ・コンテキストの使用を有効にするコンテキスト・イネーブル・フィールド142に対応する。例えば、コンテキスト・イネーブル・フィールド142がネゲートされた場合、単一のコンテキストだけ
が有効にされ、コンテキスト制御140内の他のすべての制御フィールドは無視され、現在のコンテキストは、既定のレジスタ・コンテキスト(図2に示した実施形態では、レジスタ・コンテキスト0 34である)に設定される。コンテキスト・イネーブル・フィールド142がアサートされた場合、複数のコンテキストが有効になる。ビット3〜5は、ハードウェアによってサポートされる最大コンテキスト数を示す読み取り専用フィールドであるコンテキスト数フィールド144に対応する。図6の例では、000という値により、1つのコンテキストがサポートされることが示され、111という値により、8つのレジスタ・コンテキストがハードウェアによってサポートされることが示される。データ処理システム10が、8つより多くのレジスタ・コンテキストをサポートすることが可能な場合、コンテキスト数フィールド144のために追加のビットを使用することが可能である。ただし、図6の実施形態では、最大で8つのレジスタ・コンテキストがサポートされるものと想定する。
ビット6〜8は、現在、有効にされているレジスタ・コンテキストを定義する現行コンテキスト・フィールド146に対応する。一実施形態では、このフィールドは、リセット時にクリアされて0になり、既定のレジスタ・コンテキストはレジスタ・コンテキスト0であることを示す。現行コンテキスト・フィールド146は、図2のベクトル・オフセット・ジェネレータ39によって与えられるなど、様々な異なる形で与えられることが可能な前述したコンテキスト・セレクタに対応する。したがって、コンテキスト切り替え(割り込み、またはプロセス切り替えによって生じさせられる)時に、現行コンテキスト・フィールド146は、コンテキスト・セレクタによって示される新たなレジスタ・コンテキストに設定される。例えば、図5を参照すると、データ処理システム10が現在、プロセスAにおいて実行されている場合、プロセスBへのコンテキスト切り替え時に、コンテキスト・セレクタによりレジスタ・コンテキスト2が示され、2という値が、レジスタ・コンテキスト2 92のコンテキスト制御レジスタの現行コンテキスト・フィールドに書き込まれる。
各レジスタ・コンテキストは、独自のコンテキスト制御レジスタを有し、フィールドのいくつかは、異なるコンテキスト制御レジスタの間で共有されることが可能であることに留意されたい。例えば、単一のコンテキスト・イネーブル・ビット、単一のコンテキスト数フィールド、および単一の現行コンテキスト・フィールドが実装されることが可能であり、すべてのコンテキスト制御レジスタによって使用される。というのは、値は、異なるコンテキスト制御レジスタの間で常に同一だからである。代替の実施形態は、各コンテキスト制御レジスタに関してコンテキスト・イネーブル・フィールドまたはコンテキスト数フィールド、または現行コンテキスト・フィールドを使用することも可能であるが、それぞれに関して単一の共有フィールドを使用することにより、ハードウェア要件が少なくなる。
ビット9〜11は、前に有効にされたコンテキストを定義する保存済みコンテキスト・フィールド148に対応する。このフィールドも、リセット時にクリアされて0になることが可能であることに留意されたい。したがって、プロセスAからプロセスBに切り替える前述の例では(図5参照)、現行コンテキスト・フィールドは、2(レジスタ・コンテキスト2 92を表す)に設定され、保存済みコンテキスト・フィールドは、1(前のコンテキスト、レジスタ・コンテキスト1 90を表す)に設定される。
ビット12〜14は、レジスタ・グループに関するコンテキスト・マッピングを定義するのに使用される代替で有効にされるコンテキストを定義する代替コンテキスト・フィールド150に対応する。ビット15〜18は、マッピング・フィールド151に対応する。ビット15は、レジスタ・グループA(GPR4〜7と定義される)に対応し、ビット16は、レジスタ・グループB(GPR8〜11と定義される)に対応し、ビット17は
、レジスタ・グループC(GPR16〜23と定義される)に対応し、ビット18は、レジスタ・グループD(GPR27〜31と定義される)に対応する。レジスタ・グループA〜Dのそれぞれは、対応するビットをアサートすることによって独立に有効にすることが可能である。例えば、ビット15がアサートされた場合、グループAが有効にされて、グループAが代替コンテキスト・フィールドによって定義されたレジスタ・コンテキストにマップされるようになる。ビット15がネゲートされた場合、グループAはマップされない。同様に、ビット16、ビット17、またはビット18がアサートされた場合、レジスタの対応するグループ(それぞれB、C、またはD)が、代替コンテキスト・フィールドによって定義されたレジスタ・コンテキストにマップされる。ビット16、ビット17、またはビット18がネゲートされた場合、レジスタの対応するグループ(それぞれB、C、またはD)はマップされない。したがって、図5を参照すると、レジスタ・コンテキスト1 90のコンテキスト制御レジスタが、代替コンテキスト・フィールドの中に2を含み、レジスタの選択された1つまたは複数のグループがレジスタ・コンテキスト2 92にマップされることを示している。また、ビット16(GPR8〜11を有するグループBに対応する)がアサートされて、レジスタ・コンテキスト1 90のグループ104がレジスタ・コンテキスト2 92のグループ116にマップされるようになる。
図6の典型的なコンテキスト制御レジスタである、コンテキスト制御レジスタ140では、単一の代替コンテキスト・フィールドが利用可能であり、各グループ(A〜D)がその同じ代替レジスタ・コンテキストにマップされるように有効にされることが可能である。つまり、グループAが特定のレジスタ・コンテキストにマップされた場合、グループC〜Dは、その同じコンテキストにだけマップすることが可能である。ただし、代替の実施形態では、レジスタのそれぞれの別個のグループ(グループA〜Dのような)が、対応する代替コンテキスト・フィールドを有して、異なる代替レジスタ・コンテキストにマップされることが可能であるようになっていてもよい。あるいは、グループのグループに関して別個の代替コンテキスト・フィールド(例えば、グループAおよびグループBに関して1つの代替コンテキスト・フィールド、グループCおよびグループDに関して別の代替コンテキスト・フィールド)を使用することが可能である。また、グループは、任意の形で定義することが可能である。例えば、各グループは、4つのより多い、または少ないレジスタを有することが可能であり、各グループが単一のレジスタであること、または各グループが異なる数のレジスタを有することが可能である。また、代替の実施形態では、より多い、またはより少ないグループをより多い、またはより少ない代替コンテキスト・フィールドとともに使用することが可能である。したがって、図6のコンテキスト制御レジスタ140は、一例に過ぎない。また、各フィールドは、必要に応じて、より多い、またはより少ないビットを使用してフィールドの値を表すことも可能である。コンテキスト制御140は、未使用のビット1、2、19〜23、および28〜31を含むが、代替の実施形態は、未使用のビットを全く含まないこと、またはコンテキスト制御情報を格納するのに複数のレジスタを要することも可能である。
コンテキスト制御レジスタ140のビット24は、図4と図5の両方に関連して説明したとおり、スタック・ポインタのマッピングを有効にするスタック・ポインタ・コンテキスト・イネーブル・フィールド152に対応する。ビット25〜27は、スタック・ポインタに関する代替レジスタ・コンテキストを選択するスタック・ポインタ・コンテキスト選択フィールド154に対応する。したがって、ビット24がアサートされた場合、スタック・ポインタは、スタック・ポインタ・コンテキスト選択フィールド154によって示されるレジスタ・コンテキストにマップされるが、ビット24がネゲートされた場合、スタック・ポインタはマップされない(すなわち、現行コンテキスト・フィールド146によって定義された現行コンテキストに留まる)。スタック・ポインタ・コンテキスト選択フィールド154は、データ処理システム10内部の8つのレジスタ・コンテキストのいずれがスタック・ポインタに関する代替のコンテキストとして使用されるべきかを示すこ
とが可能な3ビットの値である。例えば、000という値が、レジスタ・コンテキスト0に対応し、111がレジスタ・コンテキスト7に対応することが可能である。したがって、スタック・ポインタ・コンテキスト選択フィールド154が001に設定されている場合、(かつスタック・ポインタ・コンテキスト・イネーブル・フィールド152がアサートされた場合)、現在のコンテキストのスタック・ポインタは、レジスタ・コンテキスト1にマップされる。例えば、図4を再び参照すると、レジスタ・コンテキスト2 74のコンテキスト制御レジスタのスタック・ポインタ・コンテキスト・イネーブル・フィールドがアサートされ、スタック・ポインタ・コンテキスト選択フィールドが001に設定されて、スタック・ポインタ・レジスタ80がレジスタ・コンテキスト1 72のスタック・ポインタ・レジスタ78にマップされることを示す。また、代替の実施形態は、スタック・ポインタの共有を可能にするだけではない他の個々のレジスタのマッピングも可能にするフィールドを含むことが可能であることにも留意されたい。
コンテキスト制御レジスタは、様々な異なる形でプログラミングすることが可能である。例えば、一実施形態では、各コンテキスト制御レジスタを、直接にユーザによってプログラミングすることが可能である。あるいは、コンテキスト制御レジスタは、現在のコンテキスト制御レジスタの代替のコンテキスト・フィールドを使用して間接的にマップされることが可能である。例えば、一実施形態では、電源投入またはリセットの後、データ処理システムは、デフォルトでレジスタ・コンテキスト0になる。次に、代替コンテキスト・フィールドが、いずれのレジスタ・コンテキストのコンテキスト制御レジスタがプログラミングされるかを示す値に設定されることが可能である。例えば、レジスタ・コンテキスト0なっている間、レジスタ・コンテキスト0のコンテキスト制御レジスタの代替コンテキスト・フィールドに2という値を書き込むことにより、専用レジスタを介してレジスタ・コンテキスト2のコンテキスト制御レジスタのプログラミングへのアクセスが可能になる。コンテキスト制御フィールドのすべてがプログラミングされた後、それらのフィールドがすべて同時に有効にされる(単一の共有コンテキスト・イネーブル・フィールドを有するケースでは、そのビットをアサートすることによって行われる)ことが可能である。また、一実施形態では、コンテキスト制御レジスタ群のプログラミング中、割り込み処理をオフにすることが可能である。
コンテキスト制御レジスタ140は、特定のフィールドおよびビットの位置に関連して説明してきたことに留意されたい。代替の実施形態は、必要に応じて、より多い、またはより少ないフィールドを含むことが可能であり、各フィールドは、必要に応じて、より多い、またはより少ないビットを含むことが可能であることに留意されたい。また、代替の実施形態では、コンテキスト制御レジスタ群は、データ処理システム10内部のいずれの場所に配置してもよいし、あるいはデータ処理システム10の外部に配置してもよい。
かくして、オーバーヘッドのより少ない、柔軟性のあるコンテキスト選択を提供するために、どのようにコンテキスト制御レジスタを使用可能であるかを理解することが可能であろう。データ処理システム10内部のコンテキスト切り替え時に、新たなレジスタ・コンテキストのコンテキスト制御レジスタが更新される。例えば、新たなレジスタ・コンテキストは、現行コンテキスト・フィールドに書き込まれ、前のコンテキストは、保存済みコンテキスト・フィールドに書き込まれ、新たなレジスタ・コンテキスト内で動作する際に、マッピング・フィールドの中で与えられるレジスタ・マッピングが使用される。レジスタ・マッピングにより、異なるレジスタ・コンテキストがレジスタ値を共有することが可能になる。また、レジスタ・マッピングにより、現在のレジスタ・コンテキストのコンテキスト制御レジスタによって定義される現在のレジスタ・コンテキスト外部の他のレジスタ・コンテキスト群のアクセスも可能になる。また、ユーザがプログラミング可能なコンテキスト制御レジスタ群により、どのようにマッピングを定義するかについて柔軟性が可能になる。したがって、本明細書で説明する本発明の一態様により、代替レジスタ・コ
ンテキストの一部分を現在のレジスタ・コンテキストにマップする(またその逆を行う)柔軟性のある機構が提供され、複数のコンテキストの間で共通のスタック・ポインタの柔軟性のある共有が可能になり、リアルタイム・パフォーマンスの向上がもたらされる。現在のコンテキストの一部分を代替のコンテキストにマップすることにより、動作コンテキスト間で情報値を転送することのオーバーヘッドを除く、またはなくすことが可能になり、パフォーマンスの向上および柔軟性がもたらされる。
以上の明細では、本発明を特定の実施形態に関連して説明した。しかし、添付の特許請求の範囲に記載する本発明の範囲を逸脱することなく、様々な改変および変更を行うことが可能であることが当業者には認められよう。例えば、ブロック図は、例示したブロックとは異なるブロックを有することが可能であり、より多い、またはより少ないブロックを有すること、または異なる形で構成されることも可能である。したがって、本明細書および図は、限定するものではなく、例示するものと考えられるべきであり、すべてのそのような改変形態が本発明の範囲に含まれるものとする。
特定の実施形態に関して、利点、その他の優位点、および問題解決法を説明してきた。しかし、これらの利点、優位点、問題解決法、ならびに何らかの利点、優位点、または問題解決法を生じさせる、またはより顕著し得る要素は、一部または全部の請求項の不可欠な、必要な、または本質的な特徴または要素と解釈すべきではない。本明細書で使用する「からなる(comprises)」、「comprising(からなる)」、またはこの用語の他のあらゆる変化形は、排他的でない包含を範囲に含むものとし、したがって、要素のリストからなるプロセス、方法、物品、または装置は、それらの要素を含むだけでなく、明確にリストアップされていない、またはそのようなプロセス、方法、物品、または装置に固有でない他の要素も含み得る。
本発明の一実施形態によるデータ処理システムを示すブロック図。 本発明の一実施形態によるプロセッサを示すブロック図。 本発明の一実施形態によるレジスタ・コンテキストを示す図。 本発明の様々な実施形態によるレジスタ・コンテキスト内の典型的なマッピングを示す図。 本発明の様々な実施形態によるレジスタ・コンテキスト内の典型的なマッピングを示す図。

Claims (10)

  1. 複数のレジスタ・コンテキスト(34、35、36)と、
    該複数のレジスタ・コンテキストの少なくとも一部分に対応するコンテキスト制御情報を格納するための記憶回路(38)と、
    該複数のレジスタ・コンテキスト内の現在のレジスタ・コンテキストの対応する部分の代りに、該複数のレジスタ・コンテキスト内の代替レジスタ・コンテキストの一部分に選択的にアクセスするための処理回路(12)と、からなるデータ処理システム(10)。
  2. 前記代替レジスタ・コンテキストの前記一部分が、前記格納されたコンテキスト制御情報によって示される請求項1に記載のデータ処理システム。
  3. 前記記憶回路が、複数のコンテキスト制御レジスタからなり、該複数のコンテキスト制御レジスタのそれぞれが、前記複数のレジスタ・コンテキストの対応するレジスタ・コンテキストに対応する請求項1に記載のデータ処理システム。
  4. 前記代替レジスタ・コンテキストの前記一部分が、スタック・ポインタからなる請求項1に記載のデータ処理システム。
  5. 前記一部分が、レジスタの集合からなる請求項1に記載のデータ処理システム。
  6. 前記コンテキスト制御情報が、イネーブル・フィールドからなり、該イネーブル・フィールドがアサートされた場合、前記処理回路が、前記代替レジスタ・コンテキストの前記一部分にアクセスする請求項1に記載のデータ処理システム。
  7. 複数のレジスタ・コンテキストを有するデータ処理システムにおいて、
    第1のレジスタ・コンテキストの第1の部分にアクセスすること、および
    該第1のレジスタ・コンテキストの対応するコンテキスト制御情報に基づいて該第1のレジスタ・コンテキストの第2の部分に対応する第2のレジスタ・コンテキストの一部分に選択的にアクセスすること、
    からなる該複数のレジスタ・コンテキスト内の該対応するコンテキスト制御情報を有する該第1のレジスタ・コンテキストで動作することからなる方法。
  8. 前記コンテキスト制御情報が、イネーブル・フィールドからなり、該イネーブル・フィールドがアサートされた場合、前記第1のレジスタ・コンテキストの前記第2の部分に対応する前記第2のレジスタ・コンテキストの前記一部分にアクセスすることからなる請求項7に記載の方法。
  9. コンテキスト・セレクタを受け取ること、
    該コンテキスト・セレクタに基づき、対応するコンテキスト制御情報を有する前記第2のレジスタ・コンテキストで動作すること、および
    前記第2のレジスタ・コンテキストの該対応するコンテキスト制御情報に基づき、前記第2のレジスタ・コンテキストの第2の部分に対応する第3のレジスタ・コンテキストの一部分に選択的にアクセスすること、からさらになる請求項7に記載の方法。
  10. 代替レジスタ・コンテキスト・フィールドおよびマッピング・フィールドを有する対応するコンテキスト制御レジスタから各々がなる、複数のレジスタ・コンテキスト(34、35、36)と、
    該複数のレジスタ・コンテキスト内の現在のレジスタ・コンテキストの対応する部分にアクセスする代りに、該複数のレジスタ・コンテキスト内の代替レジスタ・コンテキスト
    の一部に選択的にアクセスする処理手段(12)であって、該代替レジスタ・コンテキストの一部は該現在のレジスタ・コンテキストに対応する該コンテキスト制御レジスタの中の該マッピング・フィールドによって定義され、該代替レジスタ・コンテキストは該現在のレジスタ・コンテキストに対応する該コンテキスト制御レジスタの中の該代替レジスタ・コンテキスト・フィールドによって定義される、処理手段(12)と、からなるデータ処理システム(10)。
JP2004509742A 2002-05-31 2003-05-07 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法 Expired - Fee Related JP4409427B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/159,386 US7117346B2 (en) 2002-05-31 2002-05-31 Data processing system having multiple register contexts and method therefor
PCT/US2003/014215 WO2003102723A2 (en) 2002-05-31 2003-05-07 Data processing system having multiple register contexts and method therefor

Publications (3)

Publication Number Publication Date
JP2006502470A true JP2006502470A (ja) 2006-01-19
JP2006502470A5 JP2006502470A5 (ja) 2006-06-15
JP4409427B2 JP4409427B2 (ja) 2010-02-03

Family

ID=29582888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004509742A Expired - Fee Related JP4409427B2 (ja) 2002-05-31 2003-05-07 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法

Country Status (8)

Country Link
US (1) US7117346B2 (ja)
EP (1) EP1573444A2 (ja)
JP (1) JP4409427B2 (ja)
KR (1) KR100989215B1 (ja)
CN (1) CN100472453C (ja)
AU (1) AU2003225300A1 (ja)
TW (1) TWI323847B (ja)
WO (1) WO2003102723A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013099414A1 (ja) * 2011-12-26 2013-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション レジスタ・マッピング方法
EP3128415A2 (en) 2015-08-06 2017-02-08 Fujitsu Limited Computing device, process control method, and process control program

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098568A1 (en) * 2002-11-18 2004-05-20 Nguyen Hung T. Processor having a unified register file with multipurpose registers for storing address and data register values, and associated register mapping method
US7631307B2 (en) * 2003-12-05 2009-12-08 Intel Corporation User-programmable low-overhead multithreading
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7562207B2 (en) * 2005-01-27 2009-07-14 Innovasic, Inc. Deterministic microcontroller with context manager
US7516311B2 (en) * 2005-01-27 2009-04-07 Innovasic, Inc. Deterministic microcontroller context arrangement
KR100728899B1 (ko) * 2005-10-27 2007-06-15 한국과학기술원 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서
US7590774B2 (en) * 2005-12-01 2009-09-15 Kabushiki Kaisha Toshiba Method and system for efficient context swapping
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
JPWO2009022371A1 (ja) * 2007-08-16 2010-11-04 ネットクリアスシステムズ株式会社 タスク処理装置
WO2011048442A1 (en) * 2009-10-22 2011-04-28 Freescale Semiconductor, Inc. Integrated circuits and methods for debugging
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
US20130275725A1 (en) * 2011-01-03 2013-10-17 Freescale Semiconductor, Inc. Integrated circuit device and method for performing conditional negation of data
US9842005B2 (en) 2011-03-25 2017-12-12 Intel Corporation Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
CN108108188B (zh) 2011-03-25 2022-06-28 英特尔公司 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
WO2012131437A1 (en) * 2011-03-30 2012-10-04 Freescale Semiconductor, Inc. Integrated circuit device and method for enabling cross-context access
CN107729267B (zh) 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
US10078515B2 (en) 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2014108747A1 (en) * 2013-01-10 2014-07-17 Freescale Semiconductor, Inc. Integrated circuit processor and method of operating a integrated circuit processor
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10031770B2 (en) * 2014-04-30 2018-07-24 Intel Corporation System and method of delayed context switching in processor registers
US9996353B2 (en) 2015-02-26 2018-06-12 International Business Machines Corporation Universal history buffer to support multiple register types
US9971604B2 (en) 2015-02-26 2018-05-15 International Business Machines Corporation History buffer for multiple-field registers
US10067766B2 (en) * 2015-02-26 2018-09-04 International Business Machines Corporation History buffer with hybrid entry support for multiple-field registers
US10802866B2 (en) * 2015-04-30 2020-10-13 Microchip Technology Incorporated Central processing unit with DSP engine and enhanced context switch capabilities
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
CN110928574A (zh) * 2019-11-20 2020-03-27 深圳市汇顶科技股份有限公司 微控制器、中断处理芯片、设备及中断处理方法
US11663010B2 (en) * 2021-03-08 2023-05-30 Unisys Corporation System and method for securely debugging across multiple execution contexts
US11816486B2 (en) 2022-01-18 2023-11-14 Nxp B.V. Efficient inter-thread communication between hardware processing threads of a hardware multithreaded processor by selective aliasing of register blocks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
JPH04242433A (ja) * 1991-01-17 1992-08-31 Nec Corp マイクロプロセッサ
US5386563A (en) * 1992-10-13 1995-01-31 Advanced Risc Machines Limited Register substitution during exception processing
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors
US5701508A (en) * 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US5812868A (en) * 1996-09-16 1998-09-22 Motorola Inc. Method and apparatus for selecting a register file in a data processing system
US6145049A (en) * 1997-12-29 2000-11-07 Stmicroelectronics, Inc. Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set
US6154832A (en) * 1998-12-04 2000-11-28 Advanced Micro Devices, Inc. Processor employing multiple register sets to eliminate interrupts
WO2000079394A1 (en) 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for providing manifold array (manarray) program context switch with array reconfiguration control
US7925869B2 (en) 1999-12-22 2011-04-12 Ubicom, Inc. Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013099414A1 (ja) * 2011-12-26 2013-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション レジスタ・マッピング方法
JPWO2013099414A1 (ja) * 2011-12-26 2015-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation レジスタ・マッピング方法
US9430254B2 (en) 2011-12-26 2016-08-30 International Business Machines Corporation Register mapping techniques
US9471342B2 (en) 2011-12-26 2016-10-18 International Business Machines Corporation Register mapping
EP3128415A2 (en) 2015-08-06 2017-02-08 Fujitsu Limited Computing device, process control method, and process control program

Also Published As

Publication number Publication date
EP1573444A2 (en) 2005-09-14
JP4409427B2 (ja) 2010-02-03
US7117346B2 (en) 2006-10-03
CN100472453C (zh) 2009-03-25
TW200401195A (en) 2004-01-16
KR20050010508A (ko) 2005-01-27
US20030226001A1 (en) 2003-12-04
AU2003225300A8 (en) 2003-12-19
CN1856770A (zh) 2006-11-01
WO2003102723A2 (en) 2003-12-11
AU2003225300A1 (en) 2003-12-19
KR100989215B1 (ko) 2010-10-20
WO2003102723A3 (en) 2006-04-06
TWI323847B (en) 2010-04-21

Similar Documents

Publication Publication Date Title
JP4409427B2 (ja) 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法
US8191085B2 (en) Method and apparatus for loading or storing multiple registers in a data processing system
US5812868A (en) Method and apparatus for selecting a register file in a data processing system
US7406550B2 (en) Deterministic microcontroller with configurable input/output interface
US7526579B2 (en) Configurable input/output interface for an application specific product
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
JP3773470B2 (ja) データ処理装置内でのコプロセッサ命令の取り扱い
JP3970609B2 (ja) プロセッサシステム
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
JP5289688B2 (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
US7516311B2 (en) Deterministic microcontroller context arrangement
US7680967B2 (en) Configurable application specific standard product with configurable I/O
JP6143841B2 (ja) コンテキストスイッチを伴うマイクロコントローラ
US6449675B1 (en) Multifield register having a selection field for selecting a source of an information field
US6886159B2 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
US5355463A (en) Circuit configuration for transforming the logical address space of a processor unit to the physical address space of a memory
WO2006081092A2 (en) Deterministic microcontroller with configurable input/output interface
US11816486B2 (en) Efficient inter-thread communication between hardware processing threads of a hardware multithreaded processor by selective aliasing of register blocks
US20060168421A1 (en) Method of providing microcontroller cache memory

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090902

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090909

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090928

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091111

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees