(57)【要約】    【課題】  インターロック発生時にプロセッサでの処理速度の低減を防止すること。    【解決手段】  本発明では、割込み要求の実行を保留しておき、所定時間内にインターロックが発生する場合には、そのインターロック発生時に前記割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に前記割込み要求を実行するように構成した。【選択図】      図１
2005038278.tif 000002
【特許請求の範囲】
【請求項１】
割込み要求の実行を保留しておき、その割込み要求をインターロック発生前に実行するように構成したことを特徴とするプロセッサ。
【請求項２】
割込み要求の実行を保留しておき、所定時間内にインターロックが発生する場合には、そのインターロック発生前に前記割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に前記割込み要求を実行するように構成したことを特徴とするプロセッサ。
【請求項３】
割込み要求を受付ける割込み受付ステップと、
前記割込み要求の実行を保留しておく割込み保留ステップと、
プログラムの実行中にインターロックが発生するか否かを判断するインターロック発生判断ステップと、
インターロックの発生前に保留しておいた前記割込み要求を実行する割込み実行ステップと、
を有するプロセッサの処理方法。
【請求項４】
割込み要求を受付ける割込み受付ステップと、
前記割込み要求の実行を保留しておく割込み保留ステップと、
前記割込み要求を受付けてからの時間を計測する時間計測ステップと、
プログラムの実行中にインターロックが発生するか否かを判断するインターロック発生判断ステップと、
所定時間内にインターロックが発生する場合には、そのインターロック発生前に前記割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に前記割込み要求を実行する割込み実行ステップと、
を有するプロセッサの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ及びプロセッサの処理方法に関するものである。
【背景技術】
【０００２】
近年、各種電子機器の高機能化に伴って、電子機器にプロセッサが内臓されるようになってきており、このプロセッサを用いて各種の機能を実現するようにしている。
【０００３】
このプロセッサは、基本的には、命令の読込みステージ（Ｆｅｔｃｈ）、命令の解読ステージ（Ｄｅｃｏｄｅ）、命令の実行ステージ（Ｅｘｅｃｕｔｅ）といった３段階のパイプライン構成をとっており、特に近年においては、プロセッサでの高速処理の要求を満たすために、実行ステージをさらに複数段階に分割して処理するパイプライン構成をとるものもある（たとえば、特許文献１参照）。
【０００４】
たとえば、図３に示した例では、プロセッサは、１番目の命令について、読込みステージ、解読ステージ、実行ステージ１〜５を行うとともに、２番目の命令に対する読込みステージ、解読ステージ、実行ステージ１を並列して行っている。
【０００５】
このように、実行ステージを複数段階に分割して処理することによって、複数の命令の処理を同時に並列して行うことができ、プロセッサでの処理速度を高速化することができる。
【特許文献１】特開平１１−３２７９００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、上記した実行ステージを複数段階に分割して処理する方法にあっては、複数の命令同士の関係によっては、命令の実行が一時的に中断されてしまうインターロックが発生する場合がある。
【０００７】
たとえば、積和演算の結果を所定のメモリに格納する場合のように、積和演算命令(MSM)の次に格納命令(STORE)を実行するプログラム、
MSM  D0,S0,S1
STORE  D0,(memory)
の場合には、１番目の命令（積和命令）の実行結果（D0）を２番目の命令（格納命令）で使用するために、図５に模式的に示したように、１番目の命令の実行が完了するまで２番目の命令に対する実行を一時的に停止するインターロックが発生する。
【０００８】
このように、プロセッサでの命令の実行中にインターロックが発生すると、その間のプロセッサの処理能力が低下するおそれがあった。
【課題を解決するための手段】
【０００９】
そこで、請求項１に係る本発明では、割込み要求の実行を保留しておき、その割込み要求をインターロック発生前に実行するように構成したプロセッサを提供するものである。
【００１０】
また、請求項２に係る本発明では、割込み要求の実行を保留しておき、所定時間内にインターロックが発生する場合には、そのインターロック発生前に前記割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に前記割込み要求を実行するように構成したプロセッサを提供するものである。
【００１１】
また、請求項３に係る本発明では、割込み要求を受付ける割込み受付ステップと、前記割込み要求の実行を保留しておく割込み保留ステップと、プログラムの実行中にインターロックが発生するか否かを判断するインターロック発生判断ステップと、インターロックの発生前に保留しておいた前記割込み要求を実行する割込み実行ステップとを有するプロセッサの処理方法を提供するものである。
【００１２】
また、請求項４に係る本発明では、割込み要求を受付ける割込み受付ステップと、前記割込み要求の実行を保留しておく割込み保留ステップと、前記割込み要求を受付けてからの時間を計測する時間計測ステップと、プログラムの実行中にインターロックが発生するか否かを判断するインターロック発生判断ステップと、所定時間内にインターロックが発生する場合には、そのインターロック発生前に前記割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に前記割込み要求を実行する割込み実行ステップとを有するプロセッサの処理方法を提供するものである。
【発明の効果】
【００１３】
本発明では、以下に記載する効果を奏する。
【００１４】
すなわち、本発明では、割込み要求の実行を保留しておき、その割込み要求をインターロック発生前に実行するようにしているため、インターロックの発生を回避することができ、プロセッサの処理能力の低下を防止することができる。
【発明を実施するための最良の形態】
【００１５】
本発明に係るプロセッサは、外部からの割込み要求を受付けた際に、その割込み要求を直ちに実行するのではなく、一旦割込み要求の実行を保留しておき、予め設定した所定時間内にプロセッサでのプログラムの実行においてインターロックが発生する場合には、そのインターロック発生前に割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に割込み要求を実行するように構成したものである。
【００１６】
すなわち、プロセッサは、外部からの割込み要求を受付けた際に、以下の処理プログラムを実行するようにしている（図１、図４参照）。
【００１７】
まず、プロセッサ１は、命令メモリ２に格納されたプログラムからプログラムカウンタＰＣで示されるアドレスＰＡに格納された命令コードを実行する。その際に、命令コードがデコーダ３とセレクタ４に入力されるが、外部からの割込み要求がないので、デコーダ３からセレクタ４に対してイネーブル信号ｅｎが出力されず、セレクタ４によって命令コードが選択され、インストラクションレジスタ５に格納され、デコーダ３でデコードされる。
【００１８】
次に、外部に接続したＩ／Ｏやメモリなどのデバイスから割込み要求（Interrupt Request）があった場合に、その割込み要求をデコーダ３で受付け、割込み要求の内容をデコーダ内の所定のメモリに格納しておく（割込み受付ステップＳ１）。
【００１９】
次に、外部からの割込み要求の実行を直ちに行わずに一旦保留しておき、通常通り所定のプログラムを実行する（割込み保留ステップＳ２）。
【００２０】
次に、割込み要求を受付けてからの時間をタイマーを用いて計測する（時間計測ステップＳ３）。
【００２１】
次に、所定のプログラムの実行中の予め設定した所定時間内にインターロックが発生するか否かを所定のプログラムの命令列の相互関係から判断する（インターロック発生判断ステップＳ４）。すなわち、デコーダ３においてインストラクションレジスタ５から入力された命令コード（前回の命令コード）と命令メモリ２から入力された命令コード（今回の命令コード）との相互関係からインターロックが発生するか否かを判断する。
【００２２】
そして、所定時間内にインターロックが発生すると判断した場合には、そのインターロック発生前に割込み要求を実行するためのコール（ＣＡＬＬ）命令を実行する割込み実行ステップ（Ｓ５）に移行する。すなわち、インターロックが発生すると判断した場合には、デコーダ３からセレクタ４にイネーブル信号ｅｎを出力し、セレクタ４でメモリ６に格納したＣＡＬＬコードを選択してインストラクションレジスタ５に入力し、デコーダ３でＣＡＬＬ命令が実行される。
【００２３】
一方、所定時間内にインターロックが発生しないと判断した場合には、所定時間経過後に割込み要求を実行するためのコール（ＣＡＬＬ）命令を実行する割込み実行ステップ（Ｓ６）に移行する。
【００２４】
たとえば、先に例示した積和演算の結果を所定のメモリに格納する場合のように、積和演算命令(MSM)の次に格納命令(STORE)を実行するプログラム、
MSM  D0,S0,S1
STORE  D0,(memory)
の場合には、１番目の命令（積和命令）の実行結果（D0）を２番目の命令（格納命令）で使用するために、先に図４に模式的に示したように、１番目の命令の実行が完了するまで２番目の命令に対する実行を一時的に停止するインターロックが発生する。
【００２５】
しかしながら、本発明に係るプロセッサでは、図２に模式的に示すように、２番目の命令（格納命令）の途中でインターロックが発生するか否かを判断し、インターロックが発生すると判断した場合にはインターロック発生前に割込み要求に対応する命令（ＣＡＬＬ命令）の読込みステージ、解読ステージ、実行ステージ（割込み実行ステップＳ５）を行い、割込みベクタに分岐するようにしている。
【００２６】
すなわち、プロセッサは、割込み要求の実行後、つまり割込みベクタ及び割込みハンドラ処理からリターン命令（ＲＥＴＵＲＮ）により復帰した後にインターロックの発生によって実行を保留せざるを得なかった命令（ここでは、２番目の命令）を実行するようにしている。
【００２７】
このように、本発明に係るプロセッサでは、割込み要求の実行を保留しておき、その割込み要求をインターロック発生前に実行するようにしている。
【００２８】
そのため、本発明に係るプロセッサでは、プロセッサでの命令の実行中にインターロックが発生するのを未然に回避することができ、プロセッサの処理能力の低下を防止することができる。
【００２９】
また、本発明に係るプロセッサでは、プロセッサが実行するプログラムによっては、割込み要求後に必ずインターロックが発生するとは限らないため、所定時間内にインターロックが発生する場合には、そのインターロック発生時に割込み要求を実行し、一方、所定時間内にインターロックが発生しない場合には、所定時間経過後に割込み要求を実行するようにしている。
【００３０】
これにより、プログラムの実行中にインターロックが発生しない場合でも、割込み要求の実行を行うことができる。
【図面の簡単な説明】
【００３１】
【図１】本発明に係るプロセッサの処理方法を示すフローチャート。
【図２】本発明に係るプロセッサでの処理を示す模式図。
【図３】プロセッサでの処理を示す模式図。
【図４】プロセッサを示す模式図。
【図５】従来のプロセッサでの処理を示す模式図。
【符号の説明】
【００３２】
Ｓ１  割込み受付ステップ
Ｓ２  割込み保留ステップ
Ｓ３  時間計測ステップ
Ｓ４  インターロック発生判断ステップ
Ｓ５、Ｓ６  割込み実行ステップ
【図１】
2005038278.tif 000003
【図２】
2005038278.tif 000004
【図３】
2005038278.tif 000005
【図４】
2005038278.tif 000006
【図５】
2005038278.tif 000007