JP2004530966A - イベント処理 - Google Patents
イベント処理 Download PDFInfo
- Publication number
- JP2004530966A JP2004530966A JP2002561686A JP2002561686A JP2004530966A JP 2004530966 A JP2004530966 A JP 2004530966A JP 2002561686 A JP2002561686 A JP 2002561686A JP 2002561686 A JP2002561686 A JP 2002561686A JP 2004530966 A JP2004530966 A JP 2004530966A
- Authority
- JP
- Japan
- Prior art keywords
- event
- priority
- mask
- register
- control unit
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Logic Circuits (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Description
【発明の属する技術分野】
本発明は、プログラム可能なプロセッサ内のイベント処理に関する。
【0002】
【従来の技術】
デジタル信号プロセッサのようなプログラム可能なマイクロプロセッサの設計における1つの課題は、割込みおよび例外を含むイベントの処理である。割込みは、プロセッサ内の正常な命令のフローを変更するイベントである。例外は、無効命令やバス・エラーのようなエラーに遭遇したときに生じる、ソフトウェアで開始されるイベントである。プロセッサの設計において、イベントをできるだけ迅速に処理することが望ましい。しかしながら、そのためには、一般的に追加のハードウェアが必要となり、プロセッサの電力消費を増加させることになる。
【0003】
イベント処理における課題は、割込みが入れ子にされる可能性があるという事実によってさらに複雑になる。換言すれば、第1の割込みがまだ処理されている間に、第2の割込み(例えば入れ子の割込み)が受け付けられることがある。したがって、所定のいかなる時間でも、多くの割り込み処理ルーチンが活動状態になり得る。イベント処理には、最も効率的な方法で、活動状態にある複数の処理ルーチンを取り扱うための優先順位を決める機構が要求される。
【0004】
【詳細な説明】
図1は、実行ユニット4および制御ユニット6を有するプログラム可能なプロセッサ2を図示するブロック図である。制御ユニット6は、イベント・ハンドラ10を有する。イベント・ハンドラ10は、以下で詳述されるように、処理するイベントの演算時間を短縮することができる。特に、イベント・ハンドラ10は、処理可能なイベントのセットおよび処理不可能なイベントのセットを示す優先順位マスクを生成する。このようにして、プロセッサ2は迅速に処理可能なイベントを認識して処理することができる。
【0005】
実行ユニット4は、命令を処理するための多くのステージを有する実行パイプラインである。各ステージは他のステージと同時に処理を行い、各クロック・サイクルで結果をパイプライン内の次のステージへ渡す。各命令の最終結果は、間断なくパイプラインの終端に現れる。
【0006】
制御ユニット6は、実行ユニット4を介して命令およびデータのフローを制御する。命令の処理中に、例えば制御ユニット6は、演算ユニットの多様なコンポーネントに対して、命令を取り出して解読し、対応する動作を実行し、メモリまたはローカル・レジスタに結果を書き戻すことを指示する。
【0007】
図2は、イベント・ハンドラ10の実施例を図示するブロック図である。イベント・ハンドラ10は、イベント優先順位レジスタ(IPEND_R)16に接続された優先順位ロジック14を有する。イベント・ハンドラ10はまた、イベント・マスク・レジスタ(IMASK)18およびイベント・ラッチ・レジスタ(ILAT)20を有する。ロジック22は、IMASK18およびILAT20に接続される。IPEND_R16、IMASK18およびILAT20は、すべてイベント管理ロジック24に接続される。イベント管理ロジック24は、制御ロジック25に接続される。さらに、イベント管理ロジック24は、状態レジスタ(IPEND)26に接続される。さらに、イベント管理ロジック24は、優先順位ロジック14に接続される。
【0008】
プロセッサ2によって処理されるすべてのイベントは、イベント優先順位を有する。レジスタ16,18,20,26はすべて同じ幅を有し、各レジスタは複数の番号が付されたビットを有する。さらに、レジスタ16,18,20,26のそれぞれにおいて、同じ番号が付されたビットは同じイベントに関連する。したがって、プロセッサ2によって処理されるすべてのイベントは、レジスタ16,18,20,26のそれぞれと関連するビットを有する。
【0009】
典型的な実施例では、レジスタ16,18,20,26は16ビットのレジスタである。各レジスタは、16のイベント(例えばイベント0−15)のうちの1つに対応するビットを有する。イベント0−15は、例えば0番目のイベントが優先順位の最も高いイベントであり、15番目のイベントが優先順位の最も低いイベントであるというように優先順位がつけられる。例として、イベント0−15は、以下のように優先順位がつけられる:エミュレーション0、リセット1、マスクできない割込み2、例外3、グローバル割込み可能4、ハードウェア・エラー5、優先順位の高いタイマ6、および一般的な割込み優先順に一般的な割込み7−15。
【0010】
IMASKレジスタ18は、イベントを割込み可能または割込み禁止にすることを容易にするイベント・マスク・レジスタである。したがって、IMASK18内の各ビットは、対応するイベントが割込み可能であるかどうか示す。例えば、特別のイベントのためのIMASKビットが1である場合、イベントは割込み可能である。イベントが割込み可能でない場合、回路は決してイベントを処理しない。IMASKレジスタ18内のビットは、当業者に知られている任意の方法によってセットされる。これらは、IMASKをセットするためにメモリ・マップ・レジスタへ書き込むこと、またはIMASKをセットするためにソフトウェア命令を実行することを含むであろう。このように、どのようなイベントも、容易に割込み可能または割込み禁止にすることができる。
【0011】
1つの特定の実施例では、たとえシステム内に16個の異なる優先順位の命令が存在するとしても、IMASKレジスタは16ビットよりも小さい幅を有する。この実施例において、例えば、特定の優先順位が高いビット(例えば0−4)は、決してマスクされない。したがって、IMASKレジスタは、常に割込み可能であるイベント0−4を占めるビットを有さない。
【0012】
イベント・ラッチ・レジスタ(ILAT)20内のビットは、対応するイベントがシステムによっていつラッチ(または受付)されたかを示す。イベントがラッチされる時は常に、それに対応するビットがILAT内で1にセットされる。そして、イベントがシステムによって受け入れられるときに、対応するビットがILAT内で0にリセットされる。したがって、ILATは、受け付けられたがまだ処理されていないイベントを示す。
【0013】
ILAT内の各ビットは、ハードウェア要求またはソフトウェア要求によってセットされる。一度セットされると、関連するイベントが処理のために受け入れられない限り、ビットはILAT内に保持される。しかしながら、一旦イベントがシステムによって受け入れられると、ILAT内のビットは0にリセットされる。さらに、いくつかの実施例では、ILAT内の1またはそれ以上のビットはクリアされ得る。
【0014】
IPENDレジスタ26は、現在活動状態にあるすべてのイベントを追跡する状態レジスタである。イベントがシステムによって受け入れられる(そして、例えばILAT内のそのビットが0にリセットされる)とき、IPEND内のそのビットが1にセットされる。所定のいかなる時間でも、複数のイベントを活動可能にすることができ、したがって、IPEND内の複数のビットをセットすることができる。しかしながら、1つのイベントだけを一度に処理することもできる。したがって、IPEND内でセットされる優先順位が最も高いビットは、どのイベントが現在処理されているのかを示す。
【0015】
IPEND_R16は、システムによって現在処理されているイベントの優先順位を表す優先順位レジスタである。同時に、IPEND_Rは、処理可能なイベントおよび処理不可能なイベントの進行中のタブを提供する。
【0016】
1つの構成において、IPEND内でセットされた優先順位が最も高いビットが、IPEND_R内のイベント・アクティブ・ビットに対応する。IPEND_R内のイベント・アクティブ・ビットは、IPEND_R内の優先順位がより低いすべてのビットと共に0にセットされる。イベント・アクティブ・ビットよりも優先順位が高いすべてのビットは、1にセットされる。したがって、IPEND_R内のイベント・アクティブ・ビットは、そのレジスタ内で0にセットされるビットのうち、優先順位が最も高いビットである。
【0017】
IPEND_Rは、処理可能なイベントを検出するために、プロセッサ2に迅速かつ効率的な方法を提供する。イベント・アクティブ・ビットよりも優先順位が高いビットだけがIPEND_R内で1にセットされるので、イベント・ハンドラ10は迅速にイベントが処理可能であることを識別することができる。IPEND_R内のイベントのビットが1である場合、それは直ちに処理可能である。
【0018】
さらに、IPENDの入力は、IPEND_Rの値を計算するロジックに入力を提供する。したがって、IPENDが調整されるとき(例えば新しいイベントが得られるとき)はいつでも、IPEND_Rは同一のクロック・サイクル内で自動的に調整される。このように、新しいイベントが受け付けられたときはいつでも、イベント・ハンドラ10が優先順位の決定を行うことを可能にするために、IPEND_Rを利用することができる。
【0019】
イベント・ハンドラは、レジスタIPEND_R16,ILAT18,IMASK20を使用することによって、迅速かつ効率的にイベントを処理することができる。ILAT18は、受け付けられたが処理されていないイベントをイベント・ハンドラ10に伝える。IMASK20は、プロセッサ2が特別のイベントを処理することが可能であるかどうかをハンドラ10に伝える。そして、IPEND_R16は、イベントが直ちに処理されるほど優先順位が高いかどうかをハンドラに伝える。したがって、イベントのビットが、これら3つのレジスタのすべてにおいて1であるときに、イベントが得られる。さらに、新しいイベントが得られるであろうという事実を迅速に検出することによって、イベント管理ロジック24および制御ロジック25が、新しいイベントの処理ルーチンへのフローの変更を、迅速かつ効率的に処理することが可能になる。
【0020】
時には、より高い優先順位のイベントが処理されているために、イベントが直ちに得られないことがある。例えば、より高い優先順位のイベントが現在処理されている場合、IPEND_Rは、より低い優先順位のイベントのために0となる。したがって、イベントはシステムによって受け入れられず、そのILATビットはその値を保持する。
【0021】
しかしながら、ついには、システムがより高い優先順位のイベントの処理を終える。一旦その処理ルーチンが終了すると、より高い優先順位のイベントのビットは、IPEND内で0に戻され、IPEND_Rが調整される。この時点で、そのIPEND_Rビットが1に調整された場合は、より低い優先順位のイベントがシステムに受け入れられる。
【0022】
図3は、イベントの割り当てられた優先順位に基づいて優先順位マスクを生成するために使用される、優先順位ロジック14の典型的な実施例を示す回路図である。この優先順位マスクは、IPEND_Rに書き込まれ、かつイベント・ハンドラ10によって使用され、これによって、プロセッサ2が処理可能なイベントを迅速に認識し処理できるようになる。
【0023】
優先順位ロジック14は16個の入力を有し、各入力が16個のイベントのうちの1つに対応する。これら16個の入力は、IPENDレジスタ(図示せず)をセットするイベント管理ロジック24のそれぞれの出力から到来する。優先順位ロジックは、さらに、IPEND_Rレジスタ16の16個のビットのそれぞれに接続された16個の出力を有する。
【0024】
優先順位ロジック14の各入力はそれぞれ、イベント管理ロジック(図示せず)の対応する出力から到来する。イベントのビットが、イベント管理ロジック(図示せず)によってIPEND内で0にセットされたとき、優先順位ロジックは0を反転し、イベント・ビットに対して1を出力する。イベントのビットが、イベント管理ロジック(図示せず)によってIPEND内で1にセットされたとき、優先順位ロジック14は1を反転し、イベントのビットに対して0を出力する。さらに、イベントのビットが、イベント管理ロジック(図示せず)によってIPEND内で1にセットされたとき、優先順位ロジックは、1を反転し、かつイベントのビットよりも優先順位が低いすべてのビットに対して0を伝播するために適合される。優先順位ロジック14によって生成された1と0のこの収集は、IPEND_R16内に書き込まれる優先順位マスクである。
【0025】
図3に示されるように、優先順位ロジック14の1つの実施例は、優先順位ロジック・モジュール40,42,44,46によって実施される。これらの優先順位ロジック・モジュールは、40,42,44,46は、総体として優先順位マスクを生成する。例えば、優先順位ロジック・モジュール40,42,44,46に1が入力された場合、そのモジュールは、そのそれぞれのビットのために優先順位マスクのサブセットを生成する。優先順位マスクのサブセットは、モジュールによって受け付けられるイベントのためにイベント・アクティブ・ビット(例えば0)を生成し、モジュールによって処理される優先順位のより高いイベントのために1を生成し、そして、モジュールによって処理される優先順位のより低いイベントのために0を生成することにより生成される。優先順位状況ビットもまた、より低い優先順位のロジック・モジュールに伝播される(例えば、より低い優先順位のモジュールによって処理されるイベントのために0を出力する結果となる)。さらに、より高い優先順位のロジック・モジュールは、それらが処理するイベントのために1を出力する。このようにして、優先順位ロジック・モジュールの収集は優先順位マスクを生成する。
【0026】
特定の実施例において、優先順位ロジック・モジュール40,42,44,46は、それぞれが4個の入力および4個の出力を有するクワッドである。1がクワッドへ入力されるときは常に、全ての優先順位のより低いクワッド(quad)の出力は0である。さらに、あるクワッドによって1が受け付けられた場合、そのクワッド内の対応するビットおよび全ての優先順位のより低いビットの出力は0であり、一方で、全ての優先順位のより高いビットの出力は1である。図3に示されるように、優先順位ロジック・モジュール40は、1層のANDゲートを有するクワッドであり、一方、優先順位ロジック・モジュール42は、2層のANDゲートを有するクワッドである。同様に、優先順位ロジック・モジュール44および優先順位ロジック・モジュール46は、それぞれが2層のANDゲート(モジュール42内で示されたものと同様)を有するクワッドである。モジュール44内のANDゲートの第2層は、モジュール42から到来する1個の入力を有する。同様に、モジュール46内のANDゲートの第2層は、モジュール44から到来する1個の入力を有する。このようにして、優先順位ロジック14は、迅速かつ効率的に機能することができる。優先順位ロジック14、および/または優先順位ロジック・モジュール40,42,44,46の他の実施例は、図3に照らして明らかになるであろう。
【0027】
図4は、本発明の実施例に従って動作モードを示すフロー・チャートである。イベントが受け付けられたとき(60)、ILAT内でそのビットがセットされ(62)、その優先順位が決定される(64)。その優先順位が、IPEND_Rレジスタ内で1に対応するまで(66)、イベントは処理されない。イベントの優先順位が、IPEND_R(66)およびIMASK(68)内で1に対応する場合、そのビットがIPEND内でセットされ(70)、ILAT内でクリアされる(72)。IPENDをセットすることによって、次に、IPEND_Rレジスタが調整される(74)。この時点で、イベントが処理される(76)。イベントが処理されるとすぐに(78)、IPEND内のそのビットが0に戻され(80)、それが再びIPEND_Rを調整する(82)。
【0028】
図5は、本発明の実施例に従って動作モードを示す別のフロー・チャートである。図5は、1つの実施例が、どのようにして入れ子のイベントを効率的に処理するかを示す。優先順位XのイベントXが受け付けられたとき、ILAT内のX番目のビットが1にセットされる(92)。しかしながら、ここでもまた、IPEND_R(94)およびIMASK(96)内のそのビットが1にセットされるまで、イベント・ハンドラはイベントを処理しない。ILAT、IPEND_RおよびIMASKのすべてがイベントのビットのために1を有する場合、そのILATビットは0に戻され(98)、イベントが処理される(100)。この時点で、IPEND内のイベントのビットが1にセットされる(102)。IPENDをセットすることによって(102)、次に、IPEND_Rが調整される(104)。イベントが処理されるとすぐに(106)、IPENDとIPEND_Rが再び調整される(108)。
【0029】
イベントが処理される前に(106)、第2のイベントが受け付けられた場合(110)、第2のイベントのビットがILAT内で1にセットされる(112)。第2のイベントが第1のイベントよりも高い優先順位を有さない場合(114)、(IPEND_Rを調査することにより迅速に決定される)、第1のイベントが処理される(116)。(118)で示されるように、ステップ(94)で始まるプロセスが、第2のイベントのために繰り返される。
【0030】
第2のイベントが第1のイベントよりも高い優先順位を有する場合(114)、(再び、IPEND_Rを調査することにより迅速に決定される)、第2のイベントは第1のイベントに優先して処理される。(118)で示されるように、ステップ(94)で始まるプロセスが、第2のイベントのために繰り返される。そして、第2のイベントが処理された後、回路は第1のイベントの処理を終了する(120)。
【0031】
図6は、状態レジスタ(IPEND)26を調節するために実施される回路の実施例を示す回路図である。図6はIPEND内の1ビットのための典型的な回路である。IPEND内の他のビットのいずれもが、それと関連する同様の回路を有する。
【0032】
IPEND26の対応するビットは、システムによって得られたすべてのイベントのために1にセットされる。しかしながら、一旦特定のイベントの処理ルーチンが実行されると、IPEND内の対応するビットは、この事実を表すためにクリアされる必要がある。図5に示されるように、IPEND_Rレジスタ内の遷移は、3ウエイANDゲート122によって検出される。上述のように、IPEND_R内の0から1への遷移は、IPEND内の現在活動可能なイベントのビットを画定する。ゲート122のRTI入力は、イベント・ハンドラの最終命令(例えばRTI命令)を検出する。したがって、ゲート122が、IPEND_R内の遷移およびRTI命令の双方を検出するとき、そのイベントのためのIPENDのビットがクリアされる。さらに、同一の信号124は、同一のクロック・サイクル間に、IPEND_R16を調整するために優先順位ロジック・モジュール40,42,44,46に送り返される。
【0033】
図7は、本発明の実施例に従って、他の特徴を示す回路ブロック図である。IPEND_Rレジスタ16、IMASKレジスタ18、ILATレジスタ20は、すべてイベント管理ロジック24に接続される。イベント管理ロジックは、制御ロジック25に接続される。イベント管理ロジックは、そのそれぞれの出力が互いに関して直交するように適合される。換言すると、イベント管理ロジックからの16個の出力のうちの1つだけを、任意の所定時間にセットすることができる。したがって、イベント管理ロジック24からの出力を全くセットしないことも、また、出力の1つだけを所定の時間にセットすることもできる。
【0034】
これらの直交信号に基づいて、イベント・ベクトル選択線130は、いずれの処理ルーチンの取り出しが必要であるかを決定するために使用される。したがって、IPENDが書き込まれている(および、優先順位ロジックが優先順位マスクを生成し、IPEND_Rにそれが書き込まれる)間に、イベント・ベクトル選択線が、適切な処理ルーチンを選択するために使用される。そして、処理ルーチンがICACHE(図示せず)から取り出され、実行パイプライン内で実行される。
【0035】
図8は、本発明に従った実施例を示す回路ブロック図であって、イベント管理ロジック24に接続されたレジスタ16,18,20を示す。図示のように、各レジスタの4番目のビットは、ANDゲート131へ移動する。レジスタ16,18,20の他のすべてのビットは、同様のANDゲート(図示せず)へ移動する。このようにして、イベント管理ロジックは、3つのレジスタ16,18,20のすべてに書き込まれたイベントを有するイベントのみを取得する。
【0036】
イベント管理ロジック24は、それぞれが、ロジック24の出力の1つだけが任意の所定時間に駆動し得ることを保証する回路(図10−13の各図を参照)を有するイベント管理ロジック・モジュール132,134,136,138を実行する。したがって、イベント・ベクトル選択線130に対して、信号はは互いに関して直交である。これらの直交の信号に基づいて、イベント・ベクトル選択線130は、イベント・ベクトル・テーブルからのイベントを選択する(例えば、どの処理ルーチンの取り出しが必要であるかを指定する)ために使用される。
【0037】
図9は、本発明の実施例に従って他の特徴を示す回路図である。上述のように、レジスタ16,18,20のすべてのビットは、図8の131で示さたANDゲートに類似したANDゲートに、それぞれの入力を提供する。図9は、イベント管理ロジック・モジュール132,134,136,138に接続されたそれぞれの出力を有する、全16個のANDゲートを示す。しかしながら、16個のANDゲートの出力は、さらに16ウエイのORゲート150に入力を提供する。このORゲート150は、他方で、制御ロジック25に接続される。このようにして、イベントが次のクロック・サイクルで取得されるであろうということを示すために、初期信号が作成される。そして、この初期信号は、フローの変更を効率的に処理するために、制御ロジック25内で使用することができる。
【0038】
図10−図13はそれぞれ、イベント・ベクトル選択線130で直交信号を生成するために使用されるイベント管理ロジック・モジュール138,136,134,132のための典型的なロジックを示す。図10は、モジュール138のための典型的なロジックを示す。図11は、NORゲート160を含むモジュール136のための典型的なロジックを示す。NORゲート160の入力はまた、モジュール138の入力でもある。図12は、NORゲート160およびNORゲート170を含むモジュール134のための典型的なロジックを示す。NORゲート160の入力はモジュール138の入力と同じであり、一方、NORゲート170の入力はモジュール136の入力である。図13は、NORゲート160,170,180を含むモジュール132のための典型的なロジックを示す。さらに、ゲート160の入力はモジュール138の入力であり、ゲート170の入力はモジュール136の入力であり、ゲート180の入力はモジュール134の入力である。イベント・ベクトル選択線130で直交信号を生成するための他の実施例は、図10−図13に照らして明らかになるであろう。
【0039】
図14は、イベント処理ルーチン動作のモードを示すフロー・チャートである。図示のように、イベント管理はわずか3つのクロック・サイクルしか要しない。最初のサイクルは、イベントをラッチすることを含む。第1のクロックのサイクル間に、イベントが受け付けられ(190)、そのビットがILAT内でセットされる(192)。
【0040】
第2のクロック・サイクル間に、イベントが処理される。第2のクロック・サイクル間に、優先順位検出(194)およびイベント・マスキング(196)が、イベントが取得されるかどうかを決定する(198)。もしそうであれば、イベントのビットが状態レジスタに書き込まれ(200)、優先順位レジスタが調整される(202)。さらに、1またはそれ以上の信号が生成され、フローの変更の処理を促進する(204)。これらの信号は、新しいイベントが取得されるであろうということを示す初期信号、または、適切な処理ルーチンを選択するために使用される直交信号を含む。
【0041】
第3のクロック・サイクル間に、フローの変更が処理される。実行ユニットが終了し(206)、新しいイベント・アドレスがICACHEに付与される(208)。さらに、1またはそれ以上のアボートされた命令のアドレスは、復帰レジスタ内に保存される(210)。そして、続くクロック・サイクル間に、適切な処理ルーチンが演算ユニット内で実行される。
【0042】
発明の多くの実施例が記述された。例えば、処理可能なイベントのセットおよび処理不可能なイベントのセットを示す優先順位マスクを生成するイベント・ハンドラを有するプロセッサについて記述された。プロセッサは、汎用目的の演算システム、デジタル処理システム、ラップトップ・コンピュータ、個人用デジタル情報処理端末(PDA)および携帯電話を含む多種多様のシステムで実行される。このようなあらゆるシステムにおいて、プロセッサは、フラッシュ・メモリ・デバイスまたはスタティック・ランダム・アクセス・メモリ(SRAM)のような、オペレーティング・システムを格納するメモリ・デバイスおよび他のソフトウェア・アプリケーションに結合される。これらおよび他の実施例は、添付の請求項の範囲内である。
【図面の簡単な説明】
【図1】本発明の実施例に従ってプログラム可能なプロセッサを示すブロック図である。
【図2】イベント・ハンドラの実施例を示すブロック図である。
【図3】優先順位ロジックの典型的な実施例を示す回路図である。
【図4】本発明の実施例に従って動作モードを示すフロー・チャートである。
【図5】本発明の実施例に従って動作モードを示す他のフロー・チャートである。
【図6】本発明の実施例に従って状態レジスタを調整するための回路を示す回路図である。
【図7】本発明の実施例に従ってイベント・ベクトル選択線を示す回路ブロック図である。
【図8】本発明の実施例に従ってモジュールを有するイベント管理ロジックに接続されたレジスタを示す回路ブロック図である。
【図9】本発明の実施例に従って初期信号がどのように生成されるかを示す回路図である。
【図10】本発明の実施例に従って図8のモジュールのための典型的なロジックを示す。
【図11】本発明の実施例に従って図8のモジュールのための典型的なロジックを示す。
【図12】本発明の実施例に従って図8のモジュールのための典型的なロジックを示す。
【図13】本発明の実施例に従って図8のモジュールのための典型的なロジックを示す。
【図14】本発明の実施例に従ってイベント処理ルーチン動作のモードを示すフロー・チャートである。
Claims (26)
- 優先順位が付されたイベントのセットを処理するために適合された、優先順位ロジック・モジュールのセットの第1優先順位ロジック・モジュール内で第1イベントを受け付ける段階と、
前記第1優先順位ロジック・モジュール内でマスクのサブセットを生成すること、および優先順位状態ビットを優先順位のより低いロジック・モジュールへ伝播することによって、処理可能なイベントのセットおよび処理不可能なイベントのセットを示す優先順位マスクを生成する段階と、
から成ることを特徴とする方法。 - 前記優先順位マスクのサブセットを生成する段階は、前記第1イベントのためのイベント・アクティブ・ビットを生成する段階と、より高い優先順位のイベントのために1を生成する段階と、より低い優先順位のイベントのために0を生成する段階と、から成ることを特徴とする請求項1記載の方法。
- 前記方法は、前記優先順位マスクに従って優先順位レジスタを更新する段階をさらに含むことを特徴とする請求項1記載の方法。
- 前記方法は、
第2イベントを受け付ける段階と、
前記第2イベントが前記優先順位マスクによって決定された処理可能なイベントである場合には、前記第2イベントを処理する段階と、
をさらに含むことを特徴とする請求項3記載の方法。 - 前記方法は、
前記第2イベントの割り当てられた優先順位に基づいて新しい優先順位マスクの生成する段階であって、前記新しい優先順位マスクは、処理可能なイベントのセットおよび処理不可能なイベントのセットを示す、段階と、
前記新しい優先順位マスクに従って優先順位レジスタを更新する段階と、
をさらに含むことを特徴とする請求項4記載の方法。 - 前記方法は、
第2イベントを受け付ける段階と、
前記第2イベントが受け付けられたことを表すために、イベント・ラッチ・レジスタをセットする段階と、
前記第1イベントが処理可能かどうかを決定するために、イベント・マスク・レジスタを検出する段階と、
前記第2イベントが、前記優先順位マスクによって決定された処理可能なイベントであるとき、
前記イベント・ラッチ・レジスタが、前記第2イベントが受け付けられたことを反映してセットされたとき、および、
前記イベント・マスク・レジスタが、前記第2イベントをマスクしないとき、
に前記イベントを処理する段階と、
をさらに含むことを特徴とする請求項3記載の方法。 - 前記方法は、
前記第1イベントが処理されていることを表すために、イベント状態レジスタをセットする段階をさらに含むことを特徴とする請求項3記載の方法。 - 前記イベント状態レジスタをセットする段階および前記優先順位レジスタを更新する段階が、同じクロック・サイクル中に発生することを特徴とする請求項7記載の方法。
- 前記方法は、
新しいイベントが取得されるであろうということを示す信号を生成する段階をさらに含むことを特徴とする請求項1記載の方法。 - 新しいイベントが取得されるであろうということを示す信号を生成する段階および優先順位マスクを生成する段階が、同じクロック・サイクル中に発生することを特徴とする請求項9記載の方法。
- イベントを処理するために適合された実行ユニットと、
優先順位ロジック・モジュールのセットを含む制御ユニットであって、前記制御ユニットが、前記第1優先順位ロジック・モジュール内でマスクのサブセットを生成すること、および優先順位状態ビットを優先順位のより低いロジック・モジュールへ伝播することによって、第1ロジック・モジュール内で第1イベントが受け付けられたときに、処理可能なイベントのセットおよび処理不可能なイベントのセットを示す第1優先順位マスクを生成するために適合される、制御ユニットと、
から構成されることを特徴とする装置。 - 前記制御ユニットが優先順位レジスタを含み、前記制御ユニットが、前記優先順位マスクに従って前記優先順位レジスタを更新するために適合されることを特徴とする請求項11記載の装置。
- 前記処理可能なイベントのセットが、前記第1イベントよりも高い優先順位を割り当てられたことを特徴とする請求項11記載の装置。
- 前記装置は、
前記制御ユニット内で第2イベントを受け付け、
前記第2イベントが、前記優先順位マスクによって決定された処理可能なイベントである場合には、前記実行ユニット内で前記第2イベントを実行する、
ことを特徴とする請求項12記載の装置。 - 前記制御ユニットは、
前記第2イベントが、前記優先順位マスクによって決定された処理可能なイベントである場合には、前記第2イベントの割り当てられた優先順位に基づいて第2優先順位マスクを生成し、前記第2優先順位マスクが処理可能なイベントのセットおよび処理不可能なイベントのセットを示し、
前記第2優先順位マスクに従って前記優先順位レジスタを更新する、
ために適合されることを特徴とする請求項14記載の装置。 - 前記制御ユニットは、さらにイベント・ラッチ・レジスタおよびイベント・マスク・レジスタを含み、前記制御ユニットは、さらに、
第2イベントを受け付け、
前記第2イベントが受け付けられたことを表すために、イベント・ラッチ・レジスタをセットし、
前記第1イベントが処理可能かどうかを決定するために、前記イベント・マスク・レジスタを検出し、
前記第2イベントが、前記優先順位マスクによって決定された処理可能なイベントであるとき、
前記イベント・ラッチ・レジスタが、前記第2イベントが受け付けられたことを反映してセットされたとき、および、
前記イベント・マスク・レジスタが、前記第2イベントをマスクしないとき、
に前記イベントを処理する、
ために適合されることを特徴とする請求項12記載の装置。 - 前記制御ユニットが、さらにイベント状態レジスタを含み、前記制御ユニットが、前記第1イベントが処理されていることを表すために前記イベント状態レジスタをセットするために適合されていることを特徴とする請求項11記載の装置。
- 前記制御ユニットが、同じクロック・サイクル中に前記イベント状態レジスタをセットし、かつ、前記優先順位レジスタを更新するために適合されることを特徴とする請求項17記載の装置。
- 前記制御ユニットが、新しいイベントが得られるであろうということを示す信号を生成するために適合されることを特徴とする請求項11記載の装置。
- 優先順位ロジック・モジュールのセットのそれぞれが、4つのイベントを処理するために適合されることを特徴とする請求項11記載の装置。
- SRAMメモリ・デバイスと、
前記メモリ・デバイスに結合されたプロセッサであって、前記プロセッサは、優先順位ロジック・モジュールのセットを含む制御ユニットを含み、前記制御ユニットは、前記第1優先順位ロジック・モジュール内でマスクのサブセットを生成すること、および、優先順位状態ビットを優先順位のより低いロジック・モジュールへ伝播することによって、第1ロジック・モジュール内で第1イベントが受け付けられたときに、処理可能なイベントのセットおよび処理不可能なイベントのセットを示す第1優先順位マスクを生成するために適合される、プロセッサと、
から構成されることを特徴とするシステム。 - 前記制御ユニットが優先順位レジスタを含み、前記制御ユニットが前記優先順位マスクに従って前記優先順位レジスタを更新するために適合されることを特徴とする請求項21記載のシステム。
- 前記プロセッサが、前記制御ユニットに接続された実行ユニットをさらに含むことを特徴とする請求項21記載のシステム。
- 前記プロセッサが、
前記制御ユニット内で第2イベントを受け付け、
前記第2イベントが、前記優先順位マスクによって決定された処理可能なイベントである場合には、前記実行ユニット内で前記第2イベントを実行する、
ために適合されることを特徴とする請求項23記載のシステム。 - 前記制御ユニットが、直交信号を生成するために適合されたイベント管理ロジックを含むことを特徴とする請求項21記載のシステム。
- 前記制御ユニットが、次の命令のアドレスを選択するための直交信号を使用するために適合される制御ロジックを含むことを特徴とする請求項25記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/705,207 US6842812B1 (en) | 2000-11-02 | 2000-11-02 | Event handling |
PCT/US2001/045248 WO2002061582A2 (en) | 2000-11-02 | 2001-10-30 | Event handling |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004530966A true JP2004530966A (ja) | 2004-10-07 |
JP3822568B2 JP3822568B2 (ja) | 2006-09-20 |
Family
ID=24832494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002561686A Expired - Fee Related JP3822568B2 (ja) | 2000-11-02 | 2001-10-30 | イベント処理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6842812B1 (ja) |
JP (1) | JP3822568B2 (ja) |
KR (1) | KR100521110B1 (ja) |
CN (1) | CN1308828C (ja) |
TW (1) | TW550510B (ja) |
WO (1) | WO2002061582A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI286704B (en) * | 2005-08-08 | 2007-09-11 | Via Tech Inc | Computer system and boot method thereof |
CN100371896C (zh) * | 2005-08-22 | 2008-02-27 | 威盛电子股份有限公司 | 计算机系统及其开机方法 |
US7971205B2 (en) * | 2005-12-01 | 2011-06-28 | International Business Machines Corporation | Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status |
US20070204277A1 (en) * | 2006-02-27 | 2007-08-30 | Burgess Andrew L Jr | Computer program and method for managing implementation of a process |
US8171270B2 (en) * | 2006-12-29 | 2012-05-01 | Intel Corporation | Asynchronous control transfer |
KR100934215B1 (ko) * | 2007-10-29 | 2009-12-29 | 한국전자통신연구원 | 이벤트 처리 명령어 세트 기반의 마이크로프로세서 및 이를이용한 이벤트 처리 방법 |
US20090138683A1 (en) * | 2007-11-28 | 2009-05-28 | Capps Jr Louis B | Dynamic instruction execution using distributed transaction priority registers |
WO2009104438A1 (ja) | 2008-02-18 | 2009-08-27 | 株式会社 村田製作所 | 弾性波装置及びその製造方法 |
US20090288089A1 (en) * | 2008-05-16 | 2009-11-19 | International Business Machines Corporation | Method for prioritized event processing in an event dispatching system |
CN107135428A (zh) * | 2017-04-19 | 2017-09-05 | 深圳市金立通信设备有限公司 | 一种屏蔽消息的方法及终端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63238630A (ja) | 1987-03-26 | 1988-10-04 | Toshiba Corp | マイクロプロセツサの割込み制御装置 |
US5555420A (en) * | 1990-12-21 | 1996-09-10 | Intel Corporation | Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management |
US5894577A (en) | 1993-09-22 | 1999-04-13 | Advanced Micro Devices, Inc. | Interrupt controller with external in-service indication for power management within a computer system |
US5745772A (en) | 1996-08-02 | 1998-04-28 | Micron Electronics, Inc. | Advanced programmable interrupt controller |
US5925114A (en) * | 1997-03-21 | 1999-07-20 | Motorola, Inc. | Modem implemented in software for operation on a general purpose computer having operating system with different execution priority levels |
US5958036A (en) | 1997-09-08 | 1999-09-28 | Lucent Technologies Inc. | Circuit for arbitrating interrupts with programmable priority levels |
JP3556465B2 (ja) | 1998-04-21 | 2004-08-18 | 株式会社ルネサステクノロジ | 割り込みコントローラ |
US6651126B1 (en) * | 1999-10-29 | 2003-11-18 | Texas Instruments Incorporated | Snapshot arbiter mechanism |
-
2000
- 2000-11-02 US US09/705,207 patent/US6842812B1/en not_active Expired - Lifetime
-
2001
- 2001-10-30 WO PCT/US2001/045248 patent/WO2002061582A2/en active IP Right Grant
- 2001-10-30 CN CNB018181058A patent/CN1308828C/zh not_active Expired - Fee Related
- 2001-10-30 JP JP2002561686A patent/JP3822568B2/ja not_active Expired - Fee Related
- 2001-10-30 KR KR10-2003-7005995A patent/KR100521110B1/ko not_active IP Right Cessation
- 2001-11-01 TW TW090127163A patent/TW550510B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN1592890A (zh) | 2005-03-09 |
WO2002061582A3 (en) | 2004-06-24 |
WO2002061582A2 (en) | 2002-08-08 |
TW550510B (en) | 2003-09-01 |
KR100521110B1 (ko) | 2005-10-14 |
US6842812B1 (en) | 2005-01-11 |
CN1308828C (zh) | 2007-04-04 |
JP3822568B2 (ja) | 2006-09-20 |
KR20030072347A (ko) | 2003-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3781419B2 (ja) | パイプライン方式のプロセッサにおける例外処理 | |
JP4750865B2 (ja) | デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 | |
US20040205747A1 (en) | Breakpoint for parallel hardware threads in multithreaded processor | |
JP3638271B2 (ja) | 情報処理装置 | |
JP3242508B2 (ja) | マイクロコンピュータ | |
JPH07248897A (ja) | コンピュータ・システムにおける例外からの回復方法、及びそのための装置 | |
US11847456B2 (en) | Livelock recovery circuit for detecting illegal repetition of an instruction and transitioning to a known state | |
US7376820B2 (en) | Information processing unit, and exception processing method for specific application-purpose operation instruction | |
JP3822568B2 (ja) | イベント処理 | |
CA2056356C (en) | Interruption handling system | |
US5522084A (en) | Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus | |
US6070218A (en) | Interrupt capture and hold mechanism | |
JP2004005603A (ja) | 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置 | |
JP2001209534A (ja) | 述語データを提供するシステム | |
US7269720B2 (en) | Dynamically controlling execution of operations within a multi-operation instruction | |
EP1039376A1 (en) | Efficient sub-instruction emulation in a vliw processor | |
US6920547B2 (en) | Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor | |
JPH11306044A (ja) | データプロセッサ | |
JPH07182165A (ja) | コミット条件付き命令の処理方法およびその装置 | |
TW202418068A (zh) | 處理器及自處理器偵測軟錯誤的方法 | |
KR100672550B1 (ko) | 멀티플 인터럽트 처리 방법 | |
US7124285B2 (en) | Peak power reduction when updating future file | |
JP2000305782A (ja) | 演算装置 | |
JPH05250161A (ja) | マイクロコンピュータ装置 | |
JPH0628388A (ja) | ベクトル計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051221 |
|
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: 20060619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060622 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 7 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |