JP4897851B2 - コンピュータ・システム及びコンピュータ・システムの制御方法 - Google Patents

コンピュータ・システム及びコンピュータ・システムの制御方法 Download PDF

Info

Publication number
JP4897851B2
JP4897851B2 JP2009117642A JP2009117642A JP4897851B2 JP 4897851 B2 JP4897851 B2 JP 4897851B2 JP 2009117642 A JP2009117642 A JP 2009117642A JP 2009117642 A JP2009117642 A JP 2009117642A JP 4897851 B2 JP4897851 B2 JP 4897851B2
Authority
JP
Japan
Prior art keywords
interrupt
instruction
priority
int
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.)
Expired - Fee Related
Application number
JP2009117642A
Other languages
English (en)
Other versions
JP2010267064A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2009117642A priority Critical patent/JP4897851B2/ja
Priority to US12/779,456 priority patent/US8909835B2/en
Publication of JP2010267064A publication Critical patent/JP2010267064A/ja
Application granted granted Critical
Publication of JP4897851B2 publication Critical patent/JP4897851B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

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

Description

この発明は、コンピュータ・システムに関し、特に、組込みシステムに使用される命令制御装置及び割込み制御方法に関するものである。
近年、組込みシステムが社会の至るところで使われて、重要な役割を担っている。すなわち、デジカメ、携帯電話、DVDプレーヤ、ロボット、フライト制御システム、自動車の燃料噴射システムやオートブレーキシステム、と多岐に亘る。
従来知られている組込みシステムの一般的な定義は、専用の機能を実行するために、ハードウェアとソフトウェアが緊密に結合されたコンピュータ・システムである、というものである。
さらに、組込みシステムに要求される性質の1つにリアルタイム性がある。すなわち、結合された入出力機器の状態の変化に速やかに応答するために通常、組込みシステムは、入出力機器からの割込みという形で、通知を受け取る。割込みの信号は、割込みコントローラに入力され、その時点で割込みマスクレジスタにセットされている値に応じて、許可または保留される。許可された割込みは、割込みテーブルに対してルックアップされ、対応するベクタアドレスにある割込みハンドラへの制御の移動をもたらす。
このとき、割込み処理の緊急性などの観点から、個々の割込み処理には、優先順位が割当てられている。そして、低優先順位の割込み処理の実行中に、高優先順位の割込みが来ると、高優先順位の割込みの処理に制御が渡され、低優先順位の割込み処理は一旦停止して、高優先順位の割込みの処理が終わるのを待つ。そうして、高優先順位の割込みの処理の終了後、低優先順位の割込み処理は処理を再開する。
一方、高優先順位の割込み処理の実行中に、低優先順位の割込みが来ると、低優先順位の割込み処理は直ちには処理を始めることができず、保留状態で、高優先順位の割込みの処理が終わるのを待つ。このような割込みの優先順位に基づく処理は、一般的には上記の割込みマスクレジスタにセットされている値に応じて行なわれる。
ところで、例えば、自動車のエンジンECUで、次のような問題があった。すなわち、自動車のエンジンECUでは、エンジンのロータが回転するにつれて、上死点を計算するための割込みが順次入ってくる。この上死点の計算の処理の後、燃料の噴射・点火を行なうための割込みが入ってくる。この燃料の噴射・点火を行なうための割込みの前に上死点の計算処理は完了していなくてはならず、そうでないと信頼性を確保するため、一旦処理をキャンセルする必要がある。これは実行時間制約と呼ばれる。
処理を正しくキャンセルするためには、実行時間制約に従って、個々の割込み処理に、適切に優先順位をつける必要がある。優先順位が正しくないと、実行時間制約のある処理の途中に別の割込みが入ってきて、実行時間制約を満たすことが一層難しくなる。
上記の例では、上死点の計算の割込み処理により高い優先順位を与え、燃料の噴射・点火の割込みに、より低い優先順位を与えて実行すればいい。そのように設定すると、上死点を計算するための割込みが完了しないと、燃料の噴射・点火という割込みが開始されないので、処理順序は確定される。しかし、割込みマスクレジスタに設定されている値を下げないと、より低い優先順位の割込み処理を実行することができない。
これを達成するための従来の1つの方法は、普通のcall命令で低い優先順位とすべき処理を呼び出しつつ、割込みマスクの内容を変更する命令を実行することによって、次の低い優先順位の割込み処理を可能とすることである。しかし、call命令と割込みマスクの内容を変更する命令の間の他の割込みをマスクできず、その間に別の割り込みが入ってくることがある、という問題があった。
別の従来の方法は、低い優先順位とすべき処理を呼び出す際に、ソフトウェア割込みを起こし、そこで割込みマスクの内容を変更する命令を実行することである。この場合も、次の割込み処理の先頭で全ての割込みを受理する状態になり、そこで他の割込みの影響を防げなかった。
そこで更に別の方法は、周辺機器からの割込みを利用することである。すなわち、周辺機器からの割込みとともに割込みマスクの内容を変更する命令を実行することにより、その間の他の割込みを相当程度防げるので、処理の信頼性は高まる。しかし、周辺機器を利用するので、実行に時間がかかるという問題がある。
特開平10−074148号公報は、発生した単数又は複数の割り込み要求の中から優先度判定回路によって選択された割り込み処理の優先度を表すレベル信号と、命令中断レジスタから出力される命令の中断を許可する優先度とを比較器で比較し、要求のあった割り込み処理の優先度が、命令の中断を許可された優先度よりも高ければ、中央処理装置に対して、割り込み処理要求と共に中断信号を出力することを開示する。
特開2004−199558号公報は、優先順位制御部で優先順位の高い割込ハンドラの実行中にその割込ハンドラがイベント待ちの状態になったことを受けてその割込ハンドラの割込優先順位を最下位に下げるとともに、実行調停部でその割込ハンドラの処理の続行を確保するために必要なレジスタの内容をその割込ハンドラについてあらかじめ固定されたスタック領域のレジスタ確保領域に待避させるとともに、優先順位の低い割込ハンドラ用のレジスタ保存領域の内容を読み出して実行することを開示する。
特開2007−128396号公報は、割込イベントの受信によって呼び出される割込ハンドラの実行中に、割込イベントの発生を無効にし、通常のアプリケーションよりも実行優先度の低い開始処理タスクを起動し、開始処理タスクに実行権が移ったときに、データ処理タスクを起動し、さらにデータ処理タスクに実行権が移ったときに、割込イベントを発生させた割込要因に関するデータ処理を行った後、割込イベントの発生を有効にすることを開示する。
しかし、これらの先行技術文献にも、割込みベクタの値を変更する際に、他の割込みの影響を受けないようにする技術は示唆も開示もされない。すると、プログラムの設計段階において、高優先順位の割込み処理から低優先度の割込み処理へ制御が渡されるときに、起こり得る割込みのパターン数が膨大であり、これらの先行技術文献のような従来手法では、すべてのパターンについて正しく動作すると保証されたプログラムを設計することが困難である。
さらに、プログラムのテスト段階において、高優先順位の割込み処理から低優先度の割込み処理へ制御が渡されるときに、起こり得る割込みのパターンのすべてを実現させるために必要なテストケースの作成はさらに困難である。
特開平10−074148号公報 特開2004−199558号公報 特開2007−128396号公報
従って、この発明の目的は、組込みシステムなどにおいて、割込みベクタの値を変更する際に、他の呼び出し、割込み、例外などの影響を受けないようにすること、すなわち、アトミシティ(atomicity)を達成することにある。
上記目的は、CPUにおけるCALL命令や、ソフトウェア割込み命令に拡張機能を付与するようにCPUの構成を変更することによって達成される。
すなわち、本発明によれば、CPUの命令デコーダのデコード結果により直接、割込みマスクレジスタの内容を変更できるように、CPUのアーキテクチャに変更が加えられる。このような変更は通常、大幅な変更ではないので、CPUの設計変更に、多大の手間はかからない。そして、拡張したCALL命令や、拡張したソフトウェア割込み命令がCPUに追加され、拡張したCALL命令や、拡張したソフトウェア割込み命令は、割込みマスクレジスタの値を変更する機能をもつ。割込みマスクレジスタの値は、オペランドにより指定するか、または、移動先の割込み処理ルーチンの優先度を割込みマスクレジスタにセットする、などの技法を用いる。
このような単一命令が、処理の呼び出しと、割込みマスクレジスタの値変更を同時に達成し、さらにその単一命令の実行の間、割込みが禁止されることによって、アトミシティが達成される。
この発明によれば、CPUに、処理の呼び出しと、割込みマスクレジスタの値変更を同時に達成するアトミシティをもつ命令が提供されるので、特に組込みシステムにおいて、処理の安全性が高まり、結果の製品の信頼性を高めることができる。
また、組込みシステムのプログラマは、従来複雑なプログラミング手法を駆使していたような処理に、その拡張された命令を利用することによって、プログラムの効率を向上させ、且つ、コードの保守性を改善することができる。さらに、本発明を用いることで、プログラムの設計段階においても、プログラムのテスト段階においても、高優先順位の割込み処理から低優先度の割込み処理へ制御が渡されるときに、割込みが禁止されていることをハードウェアが保証しているため、上記のような設計やテストは不要になり、よりプログラムの信頼性を高められる。
本発明を実施するためのハードウェア構成のブロック図である。 call_cl呼び出しによる状態の変化を示す図である。 int_ch呼び出しによる状態の変化を示す図である。 高優先度割込み処理から、低優先度割込み処理に移動する処理を説明する図である。
以下、図面を参照して、本発明の一実施例の構成及び処理を説明する。以下の記述では、特に断わらない限り、図面に亘って、同一の要素は同一の符号で参照されるものとする。なお、ここで説明する構成と処理は、一実施例として説明するものであり、本発明の技術的範囲をこの実施例に限定して解釈する意図はないことを理解されたい。
図1は、本発明を実施するためのハードウェアのブロック図である。図1の構成は、典型的なCPUのアーチテクチャを示すものであり、システムレジスタ102、命令をメモリからフェッチしてくる命令フェッチャ104、フェッチされた命令を解釈する命令デコーダ106、命令デコーダ106によって解釈された命令を実行する実行器108を有する。
システムレジスタ102は、割込みマスクレジスタ102a、プログラムカウンタ102bなどといった、特定の用途のみに使用可能な専用レジスタからなるが、ここでは代表的に割込みマスクレジスタ102a及びプログラムカウンタ102bだけが示されている。
図1の構成はさらに、メモリユニット110と、メモリ112を有する。メモリユニット110は、実行器108の実行結果を、メモリ112の指定されたアドレスに書込む。メモリ112は、好適にはランダム・アクセス・メモリ(RAM)であり、プログラムとデータが格納されている。メモリ112には、システムの立ち上げ時に、所定のローダ(図示しない)の働きで、ROM(図示しない)からシステムプログラムがロードされる。
命令フェッチャ104は、プログラムカウンタ102bが指し示すアドレスで、メモリ112から命令を読み取る。
割込みコントローラ114は、ピンや周辺機器からの割込み信号を受け付ける端子をもち、その割込み信号の優先度(優先順位ともいう)に従い、比較器116に割込み信号を送出する。割込みコントローラ114には、個々の割込み番号に対する優先度を設定可能である。
比較器116は、割込みコントローラ114からの割込み信号の優先度と、割込みマスクレジスタ102aの内容とを比較して、割込みコントローラ114からの割込み信号の優先度が、割込みマスクレジスタ102aに格納されている値より大きい場合に、論理高レベル信号を出力し、割込みコントローラ114からの割込み信号の優先度が、割込みマスクレジスタ102aに格納されている値と等しいかそれより小さい場合に、論理低レベル信号を出力する。
比較器116の出力は、ANDゲート118の一方の入力として提供される。ANDゲート118の他方の入力は、実行器108から提供される。実行器108は、特定の命令に対して、命令実行の開始から、命令実行の完了まで、ANDゲート118の他方の入力を、論理高レベルに保つ。すると、ANDゲート118の他方の入力は、反転されてANDゲート118に入力されるので、実行器108の命令実行の開始から命令実行の完了まで、ANDゲート118の出力信号は、論理低レベルに保たれる。この実施例では、実行器108からANDゲート118に入力される信号を、割込み禁止ビットと呼ぶことにする。
ANDゲート118の出力信号は、実行器108に提供され、実行器108は、ANDゲート118の出力信号が論理低レベルである状態では、割込み命令を実行しないように動作する。実行されない割込み命令は、保留状態に置かれ、後で割込み可能になったときに実行されるかまたは、単に破棄される。
次に、本発明に従い拡張される命令について説明する。本発明では、サブルーチンを呼ぶcall、割込みのintなどの、制御を移動される命令が拡張される。
先ず、callが、既存のサブルーチンを呼ぶ命令であるとし、そのオペランド付きの命令フォーマットは、次のとおりであるとする。
call <移動先の開始アドレスをもつレジスタ番号>
すると、本発明に従い拡張されるcall命令を、call_clと記すことにすると、そのオペランド付きの命令フォーマットは、次のようになる。
call_cl <移動先の開始アドレスをもつレジスタ番号>,<割込みマスクに設定する値>
CPUの命令長を32ビットとすると、call_clは、他の命令と重ならないように、32ビットの範囲で、例えば次のようにエンコードされることになる。すなわち、call_cl自体が20ビット、移動先の開始アドレスをもつレジスタ番号が4ビット、割込みマスクに設定する値が4ビット、残りの4ビットが0、というのが、命令デコーダ106によって解釈される命令表現である。
図1に従い、call_clが解釈されて実行される様子について説明する。先ず、メモリ112からcall_clとそのオペランドが命令フェッチャ104によって読み込まれ、その命令は、命令デコーダ106によってデコードされる。命令デコーダ106は、そのデコードによって、移動先の開始アドレスと、割り込みマスクに設定する値を取得する。
このデコード結果に基づき、実行器108は命令を実行し、割込み禁止ビットを1にセットし、システムレジスタの値を全てスタックに保存し、割込みマスクの値として与えられた値を、割込みマスク・レジスタ102aに設定し、プログラムカウンタの値を移動先の開始アドレスに設定する。その後、実行器108は、割込み禁止ビットを0にリセットする。
図2に、call_clの実行前後の状態の変化を示す。図2から見て取れるように、call_cl実行により、プログラムカウンタが移動先の開始アドレスになることと、戻り後の処理のため、スタックに、システムレジスタの状態とcall_clの次の命令の番地が積まれるだけではなく、割込みマスクの値がMからNに書き換わっていることが見て取れる。
次に、intが、既存の割込み命令であるとし、そのオペランド付きの命令フォーマットは、次のとおりであるとする。
int <割込み番号>
すると、本発明に従い拡張されるint命令を、int_chと記すことにすると、そのオペランド付きの命令フォーマットは、次のようになる。
int_ch <割込み番号>
これだけ見ると、int_chは、intと同じであるが、int_chは、指定可能な割込み番号の範囲が,ユーザ定義領域の番号のみでなく、システムが持つすべての割込み番号である点で異なる。そのことの意味は、以下の説明により、一層よく理解される。
図1に従い、int_chが解釈されて実行される様子について説明する。先ず、メモリ112からint_chとそのオペランドが命令フェッチャ104によって読み込まれ、その命令は、命令デコーダ106によってデコードされる。命令デコーダ106は、そのデコードによって、割り込み番号を取得する。
このデコード結果に基づき、実行器108は命令を実行し、割込み禁止ビットを1にセットし、システムレジスタの値を全てスタックに保存し、割込み番号の情報を基に、割込みコントローラ114から移動先の割込みハンドラの優先度を取得する。そして、取得した移動先の優先度の値を、割込みマスク・レジスタ102aに設定し、プログラムカウンタの値を移動先の開始アドレスに設定する。その後、実行器108は、割込み禁止ビットを0にリセットする。
図3に、int_chの実行前後の状態の変化を示す。図3から見て取れるように、int_ch実行により、プログラムカウンタが移動先の開始アドレスになることと、戻り後の処理のため、スタックに、システムレジスタの状態とint_chの次の命令の番地が積まれるだけではなく、割込みマスクの値がMからに書き換わっていることが見て取れる。
図4は、高優先度の上死点計算割込み処理402から、低優先度の燃料の噴射・点火割込み処理404に移動する処理を示す図である。図4において、高優先度の上死点計算割込みは、可変な連続した割り込みとして実行される。本発明によれば、高優先度の上死点計算割込み処理402中に、int_chにより、低優先度の燃料の噴射・点火割込み処理404への移動が実行される。これによって、割込みマスクレジスタ102aに燃料の噴射・点火割込み処理404の優先度がセットされ、これにより、上死点計算割込み処理402の完了後、確実に低優先度の燃料の噴射・点火割込み処理404が実行される。
これにより、上死点計算割込み処理402の開始時402aに、低優先度の割込み処理の情報がスタックにあるかどうかチェックして、もし低優先度の割込み処理の情報がスタックにある場合、エラーが生じていると判断して、処理をキャンセルすることが可能となる。
次に、SystemCによる、本発明に係るCPUハードウェアの実装例の一部を示す。特に、CALL_CL及びINT_CHというラベルの箇所に注目されたい。下記のコードからは、既存のCPUハードウェアの設計に大幅な変更を加えることなく、本発明に係る構成が実現できることが理解されるであろう。なお、SystemCの内容については、David C. Black and Jack Donovan, "SystemC: From The Ground UP", 2006, Springer Science&Business Media, Inc. などを参照されたい。
// decoder.hの開始
#ifndef __DECODER_H
#define __DECODER_H
#include <systemc.h>
SC_MODULE(DECODER)
{
public:
//ポート定義
sc_in<unsigned int> code; //32ビットコード
sc_out<sc_uint<20>> inst; //命令
sc_out<sc_uint<4>> dest; //デスティネーションオペランド
sc_out<sc_uint<4>> src1; //ソースオペランド1
sc_out<sc_uint<4>> src2; //ソースオペランド2
sc_out<sc_uint<4>> mask; //割込みマスクの値
sc_out<sc_uint<4>> int_no; //割込み番号
sc_out<sc_uint<1>> atomicity; //アトミック命令なら1
//プロセスの宣言
void decoder(void);
//コンストラクター
SC_CTOR(DECODER)
{
//プロセスのタイプ
SC_METHOD(decoder);
//センシティビティ・リスト
sensitive << code;
}
};
#endif /* __DECODER_H */
// decoder.hの終わり
// decoder.cppの開始
#include "decoder.h"
・・・
void MODULE::decoder(void)
{
inst = code.range( 31, 22 ); //命令の抽出
switch( inst )
{
・・・ //他の命令についての動作定義
case CALL:
src1 = code.range( 21, 18);
mask = atom = dest = src2 = int_no = 0;
case CALL_CL:
src1 = code.range( 21, 18 );
mask = code.range( 17, 14 );
atom = 1;
dest = src2 = int_no = 0;
break;
case INT:
int_no = code.range( 21, 18 );
check_user_vector_range( int_no ); //ユーザ定義の範囲内かチェック
atom = 1;
dest = src1 = src2 = mask = 0;
break;
case INT_CH:
int_no = code.range( 21, 18 );
atom = 1;
dest = src1 = src2 = mask = 0;
break;
・・・ //他の命令についての動作定義
}
return;
}
// decoder.cppの終わり
// executor.hの開始
#ifndef __EXECUTOR_H
#define __EXECUTOR_H
#include <systemc.h>
SC_MODULE(DECODER)
{
public:
//ポート定義
sc_in<sc_uint<20>> inst; //命令
sc_in<sc_uint<4>> dest; //デスティネーションオペランド
sc_in<sc_uint<4>> src1; //ソースオペランド1
sc_in<sc_uint<4>> src2; //ソースオペランド2
sc_in<sc_uint<4>> mask; //割込みマスクの値
sc_in<sc_uint<4>> int_no; //割込み番号
sc_in<sc_uint<1>> atomicity; //アトミック命令なら1
・・・ //メモリユニットへのポート,レジスタへのポートなど
//プロセスの宣言
void executor(void);
//コンストラクター
SC_CTOR(EXECUTOR)
{
//プロセスのタイプ
SC_METHOD(executor);
//センシティビティ・リスト
sensitive << inst;
}
};
#endif /* __EXECUTOR_H */
// executor.hの終わり
// executor.cppの開始
#include "executor.h"
・・・
void MODULE::executor(void)
{
if( atomicity == 0) {
process_external_interrupt(); //割り込みのチェック
}
switch( inst )
{
・・・ //他の命令についての動作定義
case CALL:
//プログラムカウンタの更新
PC = read_register( src1 );
break;
case CALL_CL:
//システムレジスタをスタックへ保存
store_system_registers (*SP, MR, PC);
SP = SP - 8;
//割り込みマスクの更新
MR = mask;
//プログラムカウンタの更新
PC = read_register( src1 );
break;
case INT:
case INT_CH: //ソフトウェア割り込みを起こす命令と同じ処理
//システムレジスタをスタックへ保存
store_system_registers (*SP, MR, PC);
SP = SP - 8;
//割り込みマスクレジスタの更新
MR = read_intc_ipr( int_no ); //割り込みコントローラから割り込みの優先順位を取得
//プログラムカウンタの更新
PC = read_int_vec( int_no ); //割り込みベクタテーブルから飛び先を取得
break;
・・・ //他の命令についての動作定義
}
return;
}
// executor.cppの終わり
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に、多様な変更または改良を加えることが可能であり、その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、この分野の当業者に明らかであろう。
例えば、上記の実施例では、callとintの命令を本発明に従い拡張したが、jumpなどその他の移動命令にも本発明は適宜適用することが可能である。
また、本発明は、特定のCPUアーキテクチャに限定されず、優先順位付けされた割込みの処理を含む、任意のCPUアーキテクチャに適用可能である。
102a・・・割込みマスクレジスタ
106 ・・・命令デコーダ
108 ・・・実行器
114 ・・・割込みコントローラ

Claims (1)

  1. 割込みマスクレジスタを有し、割込み処理にレベルがセットされ、該割込み処理のレベルが該割込みマスクレジスタにセットされているレベルよりも高くないことに応答して該割込み処理が待機させられるコンピュータ・システムにおいて、
    所定の単一命令に応答して、呼び出し先の処理のアドレスを指定し、前記アドレスから処理を呼び出して実行させることと、前記単一命令に続くオペランドにより指定されたレベルに前記割込みマスクレジスタの値を変更することを同時に達成するように前記単一命令を実行する実行手段と、
    前記実行手段が前記単一命令を実行する間、割込みを禁止する手段とを有する、
    コンピュータ・システム。
JP2009117642A 2009-05-14 2009-05-14 コンピュータ・システム及びコンピュータ・システムの制御方法 Expired - Fee Related JP4897851B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009117642A JP4897851B2 (ja) 2009-05-14 2009-05-14 コンピュータ・システム及びコンピュータ・システムの制御方法
US12/779,456 US8909835B2 (en) 2009-05-14 2010-05-13 Computer system and method of controlling computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009117642A JP4897851B2 (ja) 2009-05-14 2009-05-14 コンピュータ・システム及びコンピュータ・システムの制御方法

Publications (2)

Publication Number Publication Date
JP2010267064A JP2010267064A (ja) 2010-11-25
JP4897851B2 true JP4897851B2 (ja) 2012-03-14

Family

ID=43069420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009117642A Expired - Fee Related JP4897851B2 (ja) 2009-05-14 2009-05-14 コンピュータ・システム及びコンピュータ・システムの制御方法

Country Status (2)

Country Link
US (1) US8909835B2 (ja)
JP (1) JP4897851B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5512383B2 (ja) * 2010-05-12 2014-06-04 ルネサスエレクトロニクス株式会社 計算機システム
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
JP6149189B2 (ja) * 2012-11-12 2017-06-21 株式会社ソフイア スロットマシン
US9697150B2 (en) * 2013-09-04 2017-07-04 Jory Schwach Real-time embedded system
CN106959859B (zh) * 2017-03-30 2021-08-24 北京奇虎科技有限公司 系统调用函数的调用方法与装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
US4573118A (en) * 1983-03-31 1986-02-25 Fairchild Camera & Instrument Corporation Microprocessor with branch control
JPS6453237A (en) * 1987-08-24 1989-03-01 Nec Corp Multi-interruption control method
JPH02187829A (ja) * 1989-01-13 1990-07-24 Mitsubishi Electric Corp ディジタル信号処理プロセッサ
JPH03240831A (ja) * 1990-02-19 1991-10-28 Fujitsu Ltd 割り込み処理方式
JPH0477930A (ja) * 1990-07-19 1992-03-12 Nec Corp マイクロコンピュータ
JPH0743653B2 (ja) * 1990-07-25 1995-05-15 株式会社東芝 割込みコントローラ
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
JP3678759B2 (ja) * 1992-07-21 2005-08-03 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 割込を発生するための装置および割込を発生するための方法
FR2709579B1 (fr) * 1993-08-31 1995-11-17 Sgs Thomson Microelectronics Codeur de niveau de priorité.
US5619706A (en) * 1995-03-02 1997-04-08 Intel Corporation Method and apparatus for switching between interrupt delivery mechanisms within a multi-processor system
AU5726596A (en) * 1995-05-05 1996-11-21 Apple Computer, Inc. System and method for providing cooperative interrupts in a preemptive task scheduling environment
JPH1074148A (ja) 1996-08-29 1998-03-17 Nec Ic Microcomput Syst Ltd 割り込み処理装置
US5778220A (en) * 1996-11-18 1998-07-07 Intel Corporation Method and apparatus for disabling interrupts in a highly pipelined processor
US5896549A (en) * 1997-02-04 1999-04-20 Advanced Micro Devices, Inc. System for selecting between internal and external DMA request where ASP generates internal request is determined by at least one bit position within configuration register
US5875342A (en) * 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
US5937199A (en) * 1997-06-03 1999-08-10 International Business Machines Corporation User programmable interrupt mask with timeout for enhanced resource locking efficiency
US6032245A (en) * 1997-08-18 2000-02-29 International Business Machines Corporation Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads
US6170033B1 (en) * 1997-09-30 2001-01-02 Intel Corporation Forwarding causes of non-maskable interrupts to the interrupt handler
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
FR2775370B1 (fr) * 1998-02-20 2001-10-19 Sgs Thomson Microelectronics Procede de gestion d'interruptions dans un microprocesseur
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
US6633940B1 (en) * 1999-10-11 2003-10-14 Ati International Srl Method and apparatus for processing interrupts in a computing system
US6651126B1 (en) * 1999-10-29 2003-11-18 Texas Instruments Incorporated Snapshot arbiter mechanism
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US6845419B1 (en) * 2000-01-24 2005-01-18 Freescale Semiconductor, Inc. Flexible interrupt controller that includes an interrupt force register
US6732298B1 (en) * 2000-07-31 2004-05-04 Hewlett-Packard Development Company, L.P. Nonmaskable interrupt workaround for a single exception interrupt handler processor
US6674841B1 (en) * 2000-09-14 2004-01-06 International Business Machines Corporation Method and apparatus in a data processing system for an asynchronous context switching mechanism
JP2002175261A (ja) * 2000-12-05 2002-06-21 Oki Electric Ind Co Ltd データ転送制御回路
US6823414B2 (en) * 2002-03-01 2004-11-23 Intel Corporation Interrupt disabling apparatus, system, and method
US7546446B2 (en) * 2002-03-08 2009-06-09 Ip-First, Llc Selective interrupt suppression
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US7197587B2 (en) * 2002-06-19 2007-03-27 Hewlett-Packard Development Company, L.P. Systems-events core for monitorings system events for a cellular computer system within a parent computer system, system-event manager for monitoring system events for more than one cellular computer system, and related system and method
JP2004199558A (ja) 2002-12-20 2004-07-15 Kawasaki Microelectronics Kk 割込処理調停装置
US6928502B2 (en) * 2003-01-31 2005-08-09 Via Telecom Co., Ltd. Method and apparatus for processing interrupts at dynamically selectable prioritization levels
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
US7774585B2 (en) * 2003-11-12 2010-08-10 Infineon Technologies Ag Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation
GB2409543B (en) * 2003-12-23 2006-11-01 Advanced Risc Mach Ltd Interrupt masking control
US8019914B1 (en) * 2005-10-07 2011-09-13 Western Digital Technologies, Inc. Disk drive implementing shared buffer memory with reduced interrupt latency
US7984281B2 (en) * 2005-10-18 2011-07-19 Qualcomm Incorporated Shared interrupt controller for a multi-threaded processor
JP2007128396A (ja) 2005-11-07 2007-05-24 Matsushita Electric Ind Co Ltd 割込制御方法および情報処理装置
US7716407B2 (en) * 2008-01-03 2010-05-11 International Business Machines Corporation Executing application function calls in response to an interrupt
US7954012B2 (en) * 2008-10-27 2011-05-31 International Business Machines Corporation Hierarchical debug information collection

Also Published As

Publication number Publication date
JP2010267064A (ja) 2010-11-25
US8909835B2 (en) 2014-12-09
US20100293314A1 (en) 2010-11-18

Similar Documents

Publication Publication Date Title
US8386788B2 (en) Method and apparatus for loading a trustable operating system
JP5680679B2 (ja) 例外イベントを取り扱うための装置および方法
US9645949B2 (en) Data processing apparatus using privileged and non-privileged modes with multiple stacks
US5701493A (en) Exception handling method and apparatus in data processing systems
KR100588790B1 (ko) 데이터처리기에서의후속명령처리에작용하는방법및장치
KR101740224B1 (ko) 불법 모드 변경처리
US20170242803A1 (en) Systems and methods for performing instruction fetches based on privilege states and code memory regions
US8135975B2 (en) Software programmable timing architecture
US7996659B2 (en) Microprocessor instruction that allows system routine calls and returns from all contexts
JP4897851B2 (ja) コンピュータ・システム及びコンピュータ・システムの制御方法
KR20140123546A (ko) 도메인간 전환시의 불안전한 액세스로부터 분리된 안전한 데이터의 유지
JP2002268914A (ja) 特権命令の実行を監視する方法
JPH10505444A (ja) 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ
JPH0877075A (ja) 情報処理装置
CN114003365A (zh) 用于risc-v架构的快速中断系统
GB2461848A (en) Processor with a privileged stack pointer and a stack pointer used in privileged and non-privileged modes
US20080010426A1 (en) Processor system and processing method for operating system program in processor system
US20030037227A1 (en) Processor enabling exception handling to be set by program
US10762226B2 (en) Register access control
JPH0895798A (ja) データ処理装置
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JP7276755B2 (ja) 処理速度整合回路およびマイクロプロセッサ
JP2559929B2 (ja) プログラマブルコントローラ
CN115774574A (zh) 一种操作系统内核切换方法和装置
JP2009205351A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111108

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

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

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees