(57)【要約】【課題】プロセッサ間における割込み処理を好適に高速化することができるようにする。【解決手段】本発明に係る情報処理装置１においては、少なくともＣＰＵ２−１とＣＰＵ２−２を備え、ＣＰＵ２−１とＣＰＵ２−２とが複数の信号線により接続されており、ＣＰＵ２−１は、外部入出力ポート４の各ポートからそれぞれ出力される複数の信号線を、割込み処理を起動する信号線である割込み線とデータ線として使用する信号線である割込みデータ線に分割した上で、ＣＰＵ２−１において発生した割込みに対応する出力信号を割込み線と割込みデータ線に設定し、ＣＰＵ２−２は、割込み線と割込みデータ線に設定された出力信号が外部入出力ポート４と信号線を介して接続されたＣＰＵ２−２の割込みポート６に出力された後、割込みポート６から割込みデータを読み出し、読み出された割込みデータに対応する割込み処理を起動する。【選択図】  図１
2009059154.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の演算処理部と第２の演算処理部とを備え、前記第１の演算処理部と前記第２の演算処理部とが複数の信号線により接続される情報処理装置において、
前記第１の演算処理部は
前記第１の演算処理部に設けられた入出力ポートの各ポートからそれぞれ出力される複数の信号線を、割込み処理を起動する信号線である割込み線と、データ線として使用する信号線である割込みデータ線に分割した上で、前記第１の演算処理部において発生した割込みに対応する出力信号を前記割込み線と前記割込みデータ線に設定する第１の設定手段を備え、
前記第２の演算処理部は、
前記第１の設定手段により前記割込み線と前記割込みデータ線に設定された出力信号が、前記入出力ポートと信号線を介して接続された前記第２の演算処理部の割込みポートに出力された後、前記割込みポートから割込みデータを読み出す読み出し手段と、
前記読み出し手段により読み出された前記割込みデータに対応する割込み処理を起動する起動手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記第１の演算処理部は、
前記第１の演算処理部において発生した割込みが、前記割込みデータ線を使用する割込みであるか否かを判定する判定手段と、
前記判定手段により前記第１の演算処理部において発生した割込みが、前記割込みデータ線を使用する割込みであると判定された場合、前記第１の演算処理部に設けられた割込みポートにて前記第２の演算処理部からの割込み完了ＡＣＫ信号が受信された後に、割込み完了ＡＣＫ信号に対応する割込み処理によりＡＣＫ割込みステイタスがリセットされているか否かを確認する確認手段と、
前記確認手段により、割込み完了ＡＣＫ信号に対応する割込み処理によりＡＣＫ割込みステイタスがリセットされていると確認された場合、前記第１の演算処理部において新たに発生した割込みに関する割込み完了ＡＣＫ信号の要求有りに設定する第２の設定手段とをさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段により前記第１の演算処理部において発生した割込みが、前記割込みデータ線を使用する割込みではないと判定された場合、前記確認手段による確認処理はキャンセルされることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１の演算処理部は、
前記第１の演算処理部に設けられた割込みポートにて前記第２の演算処理部から受信された割込みＡＣＫ信号に対する割込み処理を起動し、ＡＣＫ割込みを要求しているプログラムを検出する検出手段と、
前記検出手段によりＡＣＫ割込みを要求しているプログラムが検出された後、割込み完了ＡＣＫ信号に対応する割込み処理によりＡＣＫ割込みステイタスをリセットするリセット手段とをさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第２の演算処理部は、
前記第１の設定手段により前記割込み線と前記割込みデータ線に設定された出力信号が前記割込みポートに出力された場合に、前記割込みデータ線を使用する割込みであるか否かを判定する判定手段をさらに備え、
前記判定手段により前記割込みデータ線を使用する割込みであると判定された場合、前記読み出し手段は、前記割込みポートから割込みデータを読み出すことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記第２の演算処理部に設けられた前記割込みポートの各ポートのうち、割込み処理を起動する信号線である前記割込み線に対応するポートを無効に設定し、データ線として使用する信号線である前記割込みデータ線に対応するポートを有効に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記第１の演算処理部に設けられた入出力ポートの各ポートからそれぞれ出力される複数の信号線を前記割込み線と前記割込みデータ線に分割する場合、前記割込み線と前記割込みデータ線に割り当てられる信号線の数は任意に設定されることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記第１の設定手段は、前記第１の演算処理部において発生した割込みに対応する出力信号を前記割込みデータ線に設定した後、前記割込み線に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記第２の演算処理部は、
前記第１の設定手段により前記割込み線と前記割込みデータ線に設定された出力信号が前記割込みポートに出力された場合に、前記割込み線による割込みであるか、または前記割込みデータ線による割込みであるかを判定する判定手段をさらに備え、
前記判定手段により前記割込みデータ線による割込みであると判定された場合、前記起動手段による起動処理はキャンセルされることを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
少なくとも第１の演算処理部と第２の演算処理部とを備え、前記第１の演算処理部と前記第２の演算処理部とが複数の信号線により接続される情報処理装置の情報処理方法において、
前記第１の演算処理部は
前記第１の演算処理部に設けられた入出力ポートの各ポートからそれぞれ出力される複数の信号線を、割込み処理を起動する信号線である割込み線と、データ線として使用する信号線である割込みデータ線に分割した上で、前記第１の演算処理部において発生した割込みに対応する出力信号を前記割込み線と前記割込みデータ線に設定し、
前記第２の演算処理部は、
前記割込み線と前記割込みデータ線に設定された出力信号が、前記入出力ポートと信号線を介して接続された前記第２の演算処理部の割込みポートに出力された後、前記割込みポートから割込みデータを読み出し、読み出された前記割込みデータに対応する割込み処理を起動することを特徴とする情報処理方法。
【請求項１１】
割込み処理装置に発生した割込みが、割込みデータを伴う割込みである否かを判定する判定手段と、
前記判定手段により前記割込み処理装置に発生した割込みが、割込みデータを伴う割込みであると判定された場合、割込み処理に用いられる割込みデータを示す割込み信号を生成する生成手段と、
前記生成手段により生成された前記割込み信号に基づいて、前記割込み処理装置に発生した割込みに対応する割込み処理を起動する起動手段とを備えることを特徴とする割込み処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および情報処理方法並びに割込み処理装置に係り、特に、プロセッサ間において通信を行うことができるようにした情報処理装置および情報処理方法並びに割込み処理装置に関する。
【背景技術】
【０００２】
近年、１つのシステムに複数のＣＰＵ（Central Processing Unit）を搭載し、同時に複数のＣＰＵを動作させることで処理能力を向上させる「マルチプロセッシング」技術が提案されている。複数のＣＰＵを同時に動作させる場合、ＣＰＵ間においてデータ転送を行う。
【０００３】
例えばデュアルポートメモリを介してデータ転送を行うプロセッサ間通信において、プロセッサ間でのデータ転送に用いる記憶エリアを分割し、それぞれのエリアに読込み依頼割込みと読込み終了割込みを用意することによって、読込み依頼プロセッサに対し、対応した読込み完了を示す割込みを受信側プロセッサが発行する技術が提案されている（例えば特許文献１参照）。
【０００４】
特許文献１に提案されている技術によれば、プロセッサ間通信におけるキューイングやポーリングなどの処理負担を軽減し、またデータ転送の高速化を図ることができる。
【特許文献１】特開平４−２７９９５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に提案されている技術では、そもそも、割込み処理を行う際に複数のプロセッサで共用する共有メモリにアクセスする必要があり、また、１つ１つの割込み処理に対して受信側のプロセッサから応答を返すようにしているため、データ転送の高速化にある程度の限界ができてしまう。また、共有メモリのメモリ領域をブロックごとに分割し、分割されたメモリ領域を固定して使用するため、メモリ領域に制限のある共有メモリを有効に利用することができなくなってしまう。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、プロセッサ間における割込み処理を好適に高速化することができる情報処理装置および情報処理方法並びに割込み処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、上述した課題を解決するために、少なくとも第１の演算処理部と第２の演算処理部とを備え、第１の演算処理部と第２の演算処理部とが複数の信号線により接続される情報処理装置において、第１の演算処理部は第１の演算処理部に設けられた入出力ポートの各ポートからそれぞれ出力される複数の信号線を、割込み処理を起動する信号線である割込み線と、データ線として使用する信号線である割込みデータ線に分割した上で、第１の演算処理部において発生した割込みに対応する出力信号を割込み線と割込みデータ線に設定する第１の設定手段を備え、第２の演算処理部は、第１の設定手段により割込み線と割込みデータ線に設定された出力信号が、入出力ポートと信号線を介して接続された第２の演算処理部の割込みポートに出力された後、割込みポートから割込みデータを読み出す読み出し手段と、読み出し手段により読み出された割込みデータに対応する割込み処理を起動する起動手段とを備えることを特徴とする。
【０００８】
本発明の情報処理方法は、上述した課題を解決するために、少なくとも第１の演算処理部と第２の演算処理部とを備え、第１の演算処理部と第２の演算処理部とが複数の信号線により接続される情報処理装置の情報処理方法において、第１の演算処理部は、第１の演算処理部に設けられた入出力ポートの各ポートからそれぞれ出力される複数の信号線を、割込み処理を起動する信号線である割込み線と、データ線として使用する信号線である割込みデータ線に分割した上で、第１の演算処理部において発生した割込みに対応する出力信号を割込み線と割込みデータ線に設定し、第２の演算処理部は、割込み線と割込みデータ線に設定された出力信号が、入出力ポートと信号線を介して接続された第２の演算処理部の割込みポートに出力された後、割込みポートから割込みデータを読み出し、読み出された割込みデータに対応する割込み処理を起動することを特徴とする。
【０００９】
本発明の割込み処理装置は、上述した課題を解決するために、割込み処理装置に発生した割込みが、割込みデータを伴う割込みである否かを判定する判定手段と、判定手段により割込み処理装置に発生した割込みが、割込みデータを伴う割込みであると判定された場合、割込み処理に用いられる割込みデータを示す割込み信号を生成する生成手段と、生成手段により生成された割込み信号に基づいて、割込み処理装置に発生した割込みに対応する割込み処理を起動する起動手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プロセッサ間における割込み処理を好適に高速化することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１２】
ここで、本発明の実施の形態を説明する前に、本発明に適用した概念について説明する。複数のプロセッサ（例えばＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）など）間でのデータ転送において、外部割込みを使用した割込み処理を行う場合、外部割込みが発生すると、発生した割込み要因を判定するために複数のプロセッサ間で共用している共有メモリを読み込むとともに、その割込み要因を解析する必要がある。換言すれば、外部割込みを使用した割込み処理を行う場合、１つの割込みにつき１つの割込み処理を割り当てるときには共有メモリにアクセスする必要はないが、１つの割込みに複数の割込み処理を割り当てるときには、複数の状況判断を要する情報を付加的に伝えなければならないため、共有メモリにアクセスしなければならず、プロセッサ間における割込み処理の高速化を図ることが困難となる。
【００１３】
そこで、データを転送する際の送信側のプロセッサの外部出力ポートを、データを転送する際の受信側のプロセッサの割込みポートに接続するようにする。このとき、送信側のプロセッサに設けられた外部出力ポートを割込み用ポートと割込みデータ用ポートに分離するとともに、受信側のプロセッサに設けられた割込みポートを割込み用ポートと割込みデータ用ポートに分離し、送信側のプロセッサに設けられた外部出力ポートの割込み用ポートと割込みデータ用ポートと、受信側のプロセッサに設けられた割込みポートとを接続する。これにより、受信側のプロセッサが割込みポートのレジスタを読み込むことで、発生した割込み要因と割込みデータを一度に取得することができ、その結果、プロセッサ間における割込み処理を好適に高速化することができる。以下、この概念を用いた本発明の実施形態について説明する。
【００１４】
図１は、本発明の情報処理装置１の概略的な内部の構成を表している。
【００１５】
図１に示されるように、情報処理装置１は、データを転送する際の送信側のプロセッサとしてのＣＰＵ２−１、データを転送する際の受信側のプロセッサとしてのＣＰＵ２−２、およびＲＡＭ（Random Access Memory）などからなる共有メモリ３などにより構成される。
【００１６】
送信側のプロセッサとしてのＣＰＵ２−１には、外部と信号をやり取りするための外部入出力ポート４が設けられている。この外部入出力ポート４は、各端子の入出力を任意に設定することができる。また、送信側のプロセッサとしてのＣＰＵ２−１には、受信側のプロセッサとしてのＣＰＵ２−２から割込み完了ＡＣＫ信号（割込み完了応答信号）を受信するための割込みポート５が設けられている。
【００１７】
一方、受信側のプロセッサとしてのＣＰＵ２−２には、送信側のプロセッサとしてのＣＰＵ２−１から割込み信号を受信するための割込みポート６が設けられている。また、受信側のプロセッサとしてのＣＰＵ２−２には、外部と信号をやり取りするための外部入出力ポート７が設けられている。この外部入出力ポート７は、各端子の入出力を任意に設定することができる。
【００１８】
具体的には、図１の例の場合、送信側のプロセッサとしてのＣＰＵ２−１に設けられた外部と信号をやり取りするための外部入出力ポート４には、少なくとも６ポートが設けられており、また、受信側のプロセッサとしてのＣＰＵ２−２に設けられた割込み信号を受信するための割込みポート６にも、少なくとも６ポートが設けられる。このとき、ＣＰＵ２−１の外部入出力ポート４に設けられた６つのポートからそれぞれ出力される６本の外部出力線（信号線）は、割込み処理を起動する信号線である割込み線３本（図１の割込み１乃至３）と、データ線として使用する信号線である割込みデータ線３本（割込みデータ０乃至２）に分割される。そして、送信側のプロセッサとしてのＣＰＵ２−１の外部入出力ポート４に設けられた各ポートから出力される外部出力線（割込み線および割込みデータ線）は、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート７に設けられた各ポートに接続される。
【００１９】
なお、本発明の実施形態においては、例えば割込み１と割込み３は割込みデータ線により割込みデータを使用する割込みであり、これに対して、割込み２は割込みデータ線により割込みデータを使用しない割込みである。
【００２０】
一方、送信側のプロセッサとしてのＣＰＵ２−１に設けられた割込み信号を受信するための割込みポート５には、少なくとも１ポートが設けられており、また、受信側のプロセッサとしてのＣＰＵ２−２に設けられた外部と信号をやり取りするための外部入出力ポート７にも、少なくとも１ポートが設けられる。このとき、受信側のプロセッサとしてのＣＰＵ２−２の外部入出力ポート７に設けられたポートから出力される外部出力線は、送信側のプロセッサとしてのＣＰＵ２−１の割込みポート５に設けられたポートに接続される。
【００２１】
ここで、例えば割込み１と割込み３は割込みデータ線により割込みデータを使用する割込みであり、３本の割込みデータ線（割込みデータ０乃至２）を用いることで、例えば図２に示されるように、８通り（２の３乗通り）の処理を割込み１または３に対する処理として割り当てることができる。これにより、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６のレジスタを読み込むことで、発生した割込み要因（割込み）と割込みデータを一度に取得することができ、共有メモリ３から割込み要因（割込み）に対応する割込みデータを読み取る必要がなくなり、その結果、ＣＰＵ２−１とＣＰＵ２−２のプロセッサ間における割込み処理を好適に高速化することができる。
【００２２】
次に、送信側のプロセッサとしてのＣＰＵ２−１と受信側のプロセッサとしてのＣＰＵ２−２が有する機能的な構成について説明する。例えば送信側のプロセッサとしてのＣＰＵ２−１の外部入出力ポート４のレジスタに値を設定したとき、外部入出力ポート４に設けられる各ポートの設定値は、ほぼ同時に変更される。具体的には、図３に示されるように、送信側のプロセッサとしてのＣＰＵ２−１の外部入出力ポート４のレジスタに値を設定すると、最初の割込み１の割込み線に出力される出力信号が確定し、順次、割込みデータ０乃至２の割込みデータ線に出力される出力信号が確定する。このとき、最初に出力信号が確定した後から最後に出力信号が確定するまでの確定時間をｔ１と定義すると、確定時間ｔ１はほぼ「０」である。
【００２３】
一方、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６の各ポートに関しては、ＣＰＵ２−２の割込み制御機能により、各ポートの割込みの検出レベルを「エッジ／レベル」に設定することができる。また、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６の各ポートのうち、割込み処理を起動する信号線である割込み線（割込み１乃至３）に対応するポートと、データ線として使用する信号線である割込みデータ線（割込みデータ０乃至２）に対応するポートに関しては、各ポートを「Disable／Enable」に設定することができる。ＣＰＵ２−２において例えば割込みポートのうちの割込みデータ線に対応するポートが「Disable」に設定されると、ＣＰＵ２−２に対して割込みが発生しなくなる。
【００２４】
ここで、外部出力線である割込み線および割込みデータ線を、受信側のプロセッサとしてのＣＰＵ２−２の割込みポートに接続するために、まず、ＣＰＵ２−２の割込みポートの設定を行う。
【００２５】
例えば受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６の各ポートに関して、ＣＰＵ２−２は、ＣＰＵ２−２の割込み制御機能により、各ポートの割込みの検出レベルを「エッジ」に設定する。これにより、送信側のＣＰＵ２−１は、割込み線（割込み１乃至３）と割込みデータ線（割込みデータ０乃至２）に出力する出力信号の設定が完了した後、割込みデータを使用しない割込み２に関しては、受信側のプロセッサとしてのＣＰＵ２−２からの割込み完了ＡＣＫ信号（割込み完了応答信号）を受信することなく、割込み２の信号線に出力される出力信号の設定を変更することが可能となる。
【００２６】
また、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６の各ポートのうち、割込み処理を起動する信号線である割込み線（割込み１乃至３）に対応するポートに関しては、各ポートを「Enable」（有効）に設定し、データ線として使用する信号線である割込みデータ線（割込みデータ０乃至２）に対応するポートに関しては、各ポートを「Disable」（無効）に設定する。これにより、３本の割込み線（割込み１乃至３）による割込みのみが、受信側のプロセッサとしてのＣＰＵ２−２で生成され、割込みデータ線による余分な割込みは生成されないことになる。
【００２７】
次に、図４のフローチャートを参照して、図１の送信側のプロセッサとしてのＣＰＵ２−１における割込み信号設定処理について説明する。
【００２８】
ステップＳ１において、ＣＰＵ２−１は、新たに発生した割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みであるか否かを判定する。
【００２９】
例えば割込み１と割込み３は割込みデータ線により割込みデータを使用する割込みであり、これに対して、割込み２は割込みデータ線により割込みデータを使用しない割込みであることから、新たに発生した割込みが割込みデータ線により割込みデータを使用する割込み１である場合、新たに発生した割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みであると判定される。
【００３０】
一方、新たに発生した割込みが割込みデータ線により割込みデータを使用しない割込み２である場合、新たに発生した割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みではないと判定される。
【００３１】
ステップＳ１において新たに発生した割込みが割込みデータ線を使用する割込みであると判定された場合、ＣＰＵ２−１はステップＳ２で、ＣＰＵ２−１に予め設けられた割込みポート５にてＣＰＵ２−２から割込み完了ＡＣＫ信号が受信された後に、割込み完了ＡＣＫ信号の要求がリセットされているか否か（割込み完了ＡＣＫ信号に対応する割込み処理によりＡＣＫ割込みステイタスがリセットされているか否か）を確認する。換言すれば、ＣＰＵ２−１は、ＣＰＵ２−１に予め設けられた割込みポート５にて割込み完了ＡＣＫ信号待ちをしている割込みがなく、割込みデータ線を使用した割込み処理が可能であるか否かを確認する。
【００３２】
ステップＳ２においてＣＰＵ２−１に予め設けられた割込みポート５にてＣＰＵ２−２から割込み完了ＡＣＫ信号が受信された後に、割込み完了ＡＣＫ信号の要求がリセットされていないと確認された場合、処理はステップＳ２に戻り、ＣＰＵ２−１に予め設けられた割込みポート５にてＣＰＵ２−２から割込み完了ＡＣＫ信号が受信された後に、割込み完了ＡＣＫ信号の要求がリセットされていると確認されるまで待機する。
【００３３】
これにより、新たに発生した割込みが割込みデータ線を使用する割込みである場合に、ＣＰＵ２−１に予め設けられた割込みポート５にてＣＰＵ２−２から割込み完了ＡＣＫ信号が受信された後に、割込み完了ＡＣＫ信号の要求がリセットされていると確認されるまで、新たな割込みが発生しないようにすることができる。
【００３４】
一方、ステップＳ２においてＣＰＵ２−１に予め設けられた割込みポート５にてＣＰＵ２−２から割込み完了ＡＣＫ信号が受信された後に、割込み完了ＡＣＫ信号の要求がリセットされていると確認された場合、ＣＰＵ２−１はステップＳ３で、新たに発生した割込みに関する割込み完了ＡＣＫ信号の要求有りに設定する（セットする）。すなわち、ＡＣＫ割込みステイタスが、新たに発生した割込みに関する割込み完了ＡＣＫ信号の要求有りを示すステイタスにセットされる。
【００３５】
ステップＳ４において、ＣＰＵ２−１は、ＣＰＵ２−１に予め設けられた外部入出力ポート４にて、発生した割込みに対応する出力信号を、割込み線（割込み１乃至３）および割込みデータ線（割込みデータ０乃至２）に設定する（セットする）。
【００３６】
一方、ステップＳ１において新たに発生した割込みが割込みデータ線を使用する割込みでないと判定された場合、ステップＳ２乃至３の処理はスキップされ、処理はステップＳ４に進み、ステップＳ４にて出力信号が設定される。その後、送信側のプロセッサとしてのＣＰＵ２−１における割込み信号設定処理は終了する。
【００３７】
ところで、本発明の実施形態においては、送信側のプロセッサとしてのＣＰＵ２−１から受信側のプロセッサとしてのＣＰＵ２−２に対して割込みデータ線を用いた割込み処理が行われた場合、ＣＰＵ２−２に設けられた外部入出力ポート７から信号線を介してＣＰＵ２−１に設けられた割込みポート５に対して割込み完了ＡＣＫ信号を出力するようにしている。そこで、この割込み完了ＡＣＫ信号をＣＰＵ２−１に対して出力する必要性について説明する。
【００３８】
従来のように割込みに対応する割込みデータが共有メモリなどを読み込む（Readする）ことにより取得されている場合には、受信側のプロセッサとしてのＣＰＵ２−２からの割込み完了ＡＣＫ信号を待つ必要性はない。しかし、本発明の実施形態においては、例えば割込み１と割込み３は割込みデータ線により割込みデータを使用する割込みであることから、送信側のプロセッサとしてのＣＰＵ２−１は、ＣＰＵ２−１から発行された割込みが、受信側のプロセッサとしてのＣＰＵ２−２で受け付けが完了したことを確認する必要がある。
【００３９】
なぜならば、送信側のプロセッサとしてのＣＰＵ２−１が割込み１を発行した後、受信側のプロセッサとしてのＣＰＵ２−２からの割込み完了ＡＣＫ信号を受信しないうちに新たな割込み３を発行した場合、受信側のプロセッサとしてのＣＰＵ２−２が、発行された割込み１に対応する割込みデータを受信する前に割込み３に対応する割込みデータに変更されてしまうからである。
【００４０】
より具体的には、割込み１が発生した後、受信側のプロセッサとしてのＣＰＵ２−２からの割込み完了ＡＣＫ信号の確認を待たずに割込み３が発生した場合、読み込んだ割込みデータが先に発行された割込み１に対応する割込みデータであるのか、後に発行された割込み３に対応する割込みデータであるのかをＣＰＵ２−２が区別することが不可能となる。このような状況が発生することを回避するため、割込みデータ線を使用する割込みの場合には、発生ごとにＣＰＵ２−２からＣＰＵ２−１に対して出力された割込み完了ＡＣＫ信号を受信したか否かを確認する必要がある。
【００４１】
ここで、図５のフローチャートを参照して、図１の送信側のプロセッサとしてのＣＰＵ２−１におけるＡＣＫ割込みステイタス設定処理について説明する。このＡＣＫ割込みステイタス設定処理は、受信側のプロセッサとしてのＣＰＵ２−２から、割込みデータを有する割込みを受け付けたことを示す割込みＡＣＫ信号をＣＰＵ２−１が受信したときに開始される。
【００４２】
ステップＳ１１において、送信側のプロセッサとしてのＣＰＵ２−１は、ＣＰＵ２−１に予め設けられた割込みポート５にて、割込みデータを有する割込みを受け付けたことを示す割込みＡＣＫ信号を受信する。ＣＰＵ２−１は、割込み発行プログラムを実行し、受信された割込みＡＣＫ信号に対する割込み処理を起動し、ＡＣＫ割込みを要求しているプログラムを検出する。
【００４３】
ステップＳ１２において、ＣＰＵ２−１は、その後、割込みポートにて受信された割込み完了ＡＣＫ信号に対応する割込み処理によりＡＣＫ割込みステイタスをリセットする。
【００４４】
これにより、送信側のプロセッサとしてのＣＰＵ２−１にて実行される割り込み発行プログラムは、すでにＣＰＵ２−１にて発行された割込みが受信側のＣＰＵ２−２にて受け付けられたことを認識するとともに、次の割込みデータ線を使用する割込みを発行することが可能となる。
【００４５】
なお、割込みデータ線を使用しない割込みは、割込みデータ線に対応する外部入出力ポート４の設定を変更する必要がないので、従来通り、割込みＡＣＫ信号を待つことなく新たな割込みを発生（発行）することができる。
【００４６】
次に、図６のフローチャートを参照して、図１の受信側のプロセッサとしてのＣＰＵ２−２における割込み処理について説明する。なお、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６の各ポートのうち、割込み処理を起動する信号線である割込み線（割込み１乃至３）に対応するポートに関しては、各ポートが「Enable」（有効）に設定され、データ線として使用する信号線である割込みデータ線（割込みデータ０乃至２）に対応するポートに関しては、各ポートが「Disable」（無効）に設定されている。これにより、３本の割込み線（割込み１乃至３）による割込みのみが、受信側のプロセッサとしてのＣＰＵ２−２で生成される。
【００４７】
ステップＳ２１において、受信側のプロセッサとしてのＣＰＵ２−２は、新たにＣＰＵ２−１から割込み線を介して受信された割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みであるか否かを判定する。
【００４８】
例えば割込み１と割込み３は割込みデータ線により割込みデータを使用する割込みであり、これに対して、割込み２は割込みデータ線により割込みデータを使用しない割込みであることから、新たに発生した割込みが割込みデータ線により割込みデータを使用する割込み１である場合、新たに発生した割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みであると判定される。一方、新たに発生した割込みが割込みデータ線により割込みデータを使用しない割込み２である場合、新たに発生した割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みではないと判定される。
【００４９】
ステップＳ２１において新たにＣＰＵ２−１から割込み線を介して受信された割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みであると判定された場合（すなわち、割込み線を介して受信された割込みが割込み１または３であると判定された場合）、ＣＰＵ２−２はステップＳ２２で、受信された割込み（割込み１または３）に対応する割込みデータを割込みポート６のレジスタから読み出す。ＣＰＵ２−２は、割込みデータの読み出し後、割込みポート６のレジスタに格納された割込みおよび割込みデータをリセットする（クリアする）。
【００５０】
ステップＳ２３において、ＣＰＵ２−２は、予め設けられた外部入出力ポート７に接続されているＡＣＫ割込み線に割込み完了ＡＣＫ信号を設定する（セットする）。ステップＳ２４において、ＣＰＵ２−２は、割込みポートから読み出された割込みデータに対応する割込み処理を起動する。具体的には、図２に示される各割込み要因（割込み）に対応する割込み要因データ（割込みデータ）を用いた割り込み処理が起動される。例えば図２の割込み要因データ０の場合、割込みポートの各ポートに割り当てられた値は「０」、「０」、「０」であることから、これらの数値を用いた割込み処理が起動される。また、例えば図２の割込み要因データ６の場合、割込みポートの各ポートに割り当てられた値は「０」、「１」、「１」であることから、これらの数値を用いた割込み処理が起動される。
【００５１】
一方、ステップＳ２１において新たにＣＰＵ２−１から割込み線を介して受信された割込みが、割込みデータ線（割込みデータ０乃至２）を使用する割込みではないと判定された場合（すなわち、割込み線を介して受信された割込みが割込み２であると判定された場合）、ＣＰＵ２−２はステップＳ２５で、受信された割込み（割込み２）に対応する割込み処理を起動する。
【００５２】
その後、受信側のプロセッサとしてのＣＰＵ２−２に割込み処理は終了する。
【００５３】
本発明の実施形態においては、少なくとも第１の演算処理部としてのＣＰＵ２−１と第２の演算処理部としてのＣＰＵ２−２とを備え、ＣＰＵ２−１とＣＰＵ２−２とが複数の信号線により接続される情報処理装置１において、ＣＰＵ２−１は、ＣＰＵ２−１に設けられた外部入出力ポート４の各ポートからそれぞれ出力される複数の信号線を、割込み処理を起動する信号線である割込み線と、データ線として使用する信号線である割込みデータ線に分割した上で、ＣＰＵ２−１において発生した割込みに対応する出力信号を割込み線と割込みデータ線に設定し、ＣＰＵ２−２は、ＣＰＵ２−１にて割込み線と割込みデータ線に設定された出力信号が、外部入出力ポート４と信号線を介して接続されたＣＰＵ２−２の割込みポート６に出力された後、割込みポート６から割込みデータを読み出し、読み出された割込みデータに対応する割込み処理を起動することができる。これにより、受信側のプロセッサとしてのＣＰＵ２−２が割込みポート６のレジスタを読み込むことで、外部割込みを使用した割込み処理を行う場合に共有メモリにアクセスする必要がなくなるとともに、発生した割込み要因と割込みデータを一度に取得することができ、その結果、プロセッサ間における割込み処理を好適に高速化することができる。
【００５４】
ところで、図１の例の場合、ＣＰＵ２−１の外部入出力ポート４に設けられた６つのポートからそれぞれ出力される６本の外部出力線（信号線）は、割込み処理を起動する信号線である割込み線３本（図１の割込み１乃至３）と、データ線として使用する信号線である割込みデータ線３本（割込みデータ０乃至２）に分割されるようにしたが、外部出力線を割込み線と割込みデータ線に分割する際の使用本数は固定されておらず、任意に設定するとともに、適宜変更するようにしてもよい。例えば図７に示されるように、送信側のプロセッサとしてのＣＰＵ２−１と受信側のプロセッサとしてのＣＰＵ２−２に電気的に接続されているポートがｎポート存在する場合には、「割込み線用のポート数＋割込みデータ線用のポート数≦ｎ」の範囲で任意にそのポート数を設定することができる。より具体的には、ｎ＝１６である場合、割込み線用のポート数を３とし、割込みデータ線用のポート数を１３とするようにしてもよい。
【００５５】
なお、ＣＰＵ２−１が、発生した割込みに対応する出力信号を外部入出力ポート４の割込み線と割込みデータ線に設定する場合、一般的に、外部入出力ポート４のレジスタに設定値を書き込む形式が採られる。このとき、例えば図８のケース１に示されるように、例えば送信側のプロセッサとしてのＣＰＵ２−１の外部入出力ポート４のレジスタに値を設定したとき、外部入出力ポート４に設けられる各ポートの設定値は、ほぼ同時に変更される。なお、「時間ｔ２」は、受信側のプロセッサとしてのＣＰＵ２−２が割込み信号を受信し、割込み処理が起動して割込みポートのレジスタの状態を読み出しにいくまでの時間を意味している。
【００５６】
しかしながら、外部入出力ポート４の各ポートごとにレジスタを有する場合には、例えば図８のケース２に示されるように、外部入出力ポート４のポート数が多くなるにつれて、割込みデータ線での出力信号の設定が間に合わなくなることも考えられる。すなわち、ケース１においては、割込み１よりも前に割込みデータ０の信号がすでに立ち上がっているため、ＣＰＵ２−２では割込みデータ０の信号を用いた割込み処理を起動することができる。ところが、ケース２においては、ＣＰＵ２−２が割込みポートのレジスタを読み出そうとすると、割込みデータ２の信号に関しては立ち上がりが時間ｔ２までに間に合っていないために、割込みデータ２の信号に関して誤読してしまう。
【００５７】
そこで、図８のケース３に示されるように、割込みよりも前に割込みデータの信号を立ち上げるようにして、割込みと割込みデータの信号を統一する必要がある。このときの送信側のプロセッサとしてのＣＰＵ２−１における割込み信号設定処理は、図９のフローチャートに示される。
【００５８】
図９のフローチャートを参照して、図１の送信側のプロセッサとしてのＣＰＵ２−１における他の割込み信号設定処理について説明する。なお、図９のステップＳ３１乃至Ｓ３３の処理は、図４のステップＳ１乃至Ｓ３の処理と同様であり、その説明は繰り返しになるので省略する。
【００５９】
ステップＳ３４において、送信側のプロセッサとしてのＣＰＵ２−１は、ＣＰＵ２−１に予め設けられた外部入出力ポート４にて、発生した割込みに対応する出力信号を、割込みデータ線（割込みデータ０乃至ｎ）に設定する（セットする）。
【００６０】
ステップＳ３５において、ＣＰＵ２−１は、ＣＰＵ２−１に予め設けられた外部入出力ポート４にて、発生した割込みに対応する出力信号を、割込み線（割込み１乃至３）に出力信号を設定する（セットする）。
【００６１】
これにより、割込みよりも前に割込みデータの信号を立ち上げ、割込みデータ線での出力信号の設定値をＣＰＵ２−２にて誤読することを防止することができる。その結果、プロセッサ間における割込み処理を正確に起動する同時に、好適に高速化することができる。
【００６２】
なお、受信側のプロセッサとしてのＣＰＵ２−２の割込みポート６の各ポートのうち、割込み処理を起動する信号線である割込み線（例えば割込み１乃至３）に対応するポートと、データ線として使用する信号線である割込みデータ線（例えば割込みデータ０乃至２）に対応するポートに関しては、各ポートを「Disable／Enable」に設定するようにし、ＣＰＵ２−２において例えば割込みポートのうちの割込みデータ線に対応するポートを「Disable」に設定するようにすると、ＣＰＵ２−２に対して割込みが発生しなくなる。
【００６３】
しかし、ＣＰＵ２−２の中には、割込み制御機能により割込みポートの各ポートを「Disable／Enable」に設定することができない（マスクできない）ものもある。そのため、割込み線による割込みだけでなく、割込みデータ線による割込みも発生してしまう。そこで、図１０のフローチャートに示されるように、ステップＳ４１においてＣＰＵ２−２は割込み線による割込みであるか否かを判定し、割込み線による割込みではないと判定された場合（すなわち、）割込みデータ線による割込みであると判定された場合）、ステップＳ４２でＣＰＵ２−２割込みデータ線による割込みであるので割込み処理をキャンセルし、何ら処理を行わないようにする。これにより、割込みデータ線による割込みが発生したとしても、事実上実行しないようにすることができる。
【００６４】
なお、ステップＳ４３以降の処理については、図６の処理と基本的には同様であり、その説明は繰り返しになるので省略する。
【００６５】
なお、本発明に係る情報処理装置１（あるいは割込み処理装置）は、例えばパーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯型ゲーム機、携帯型音楽再生機、携帯型動画再生機、その他の情報処理情報処理装置にも適用することができる。
【００６６】
また、本発明の実施形態において説明した一連の処理は、ソフトウェアにより実行させることもできるが、ハードウェアにより実行させることもできる。
【００６７】
さらに、本発明の実施形態では、フローチャートのステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【図面の簡単な説明】
【００６８】
【図１】本発明に係る情報処理装置の内部の概略的な構成を示すブロック図。
【図２】割込みと、割込みデータとして割り当てられた外部入出力ポートの値の関係を示す図。
【図３】送信側のプロセッサとしてのＣＰＵの外部入出力ポートの信号出力波形を示す図。
【図４】送信側のプロセッサとしてのＣＰＵにおける割込み信号設定処理を説明するフローチャート。
【図５】送信側のプロセッサとしてのＣＰＵにおけるＡＣＫ割込みステイタス設定処理を説明するフローチャート。
【図６】受信側のプロセッサとしてのＣＰＵにおける割込み処理を説明するフローチャート。
【図７】本発明に係る情報処理装置の内部の概略的な他の構成を示すブロック図。
【図８】送信側のプロセッサとしてのＣＰＵの外部入出力ポートの他の信号出力波形を示す図。
【図９】送信側のプロセッサとしてのＣＰＵにおける他の割込み信号設定処理を説明するフローチャート。
【図１０】受信側のプロセッサとしてのＣＰＵにおける他の割込み処理を説明するフローチャート。
【符号の説明】
【００６９】
１…情報処理装置、２（２−１および２−２）…ＣＰＵ、３…共有メモリ、４…外部入出力ポート、５…割込みポート、６…外部入出力ポート、７…割込みポート。
【図１】
2009059154.tif 000003
【図２】
2009059154.tif 000004
【図３】
2009059154.tif 000005
【図４】
2009059154.tif 000006
【図５】
2009059154.tif 000007
【図６】
2009059154.tif 000008
【図７】
2009059154.tif 000009
【図８】
2009059154.tif 000010
【図９】
2009059154.tif 000011
【図１０】
2009059154.tif 000012