(57)【特許請求の範囲】
【請求項１】
バスを介して相互に通信可能な、中央処理装置と、複数のデバイスと、前記複数のデバイスそれぞれに対応して設けられる割込要求処理装置と、を含み、
前記中央処理装置は、
前記複数のデバイスのいずれかのデバイスに対する所定の処理の実行要求を行い、複数の割込要求処理装置のいずれかの割込要求処理装置から所定の処理の終了を通知する割込み要求を受け付けたことに応じて割込み処理を実行し、
前記デバイスは、
所定の処理の実行要求を受け付けたことに応じて前記所定の処理を実行し、前記所定の処理の終了を通知する割込み要求を対応する割込要求処理装置に出力し、
前記割込要求処理装置は、
前記デバイスから出力される前記割込み要求を受け付ける受付部と、
前記受付部によって前記デバイスから前記割込み要求を受け付けたことに応じて、前記割込み要求を受け付けた回数が所定回数と一致するか否かを判定する第１の判定部と、
前記第１の判定部によって前記所定回数と一致すると判定されたことに応じて、前記割込み要求を前記中央処理装置に通知するか否かを判定する第２の判定部と、
前記第１の判定部によって前記所定回数と不一致であると判定されたことに応じて、前記デバイスに対して前記実行要求を出力し、前記第２の判定部によって前記中央処理装置に通知しないと判定されたことに応じて、前記デバイスとは異なる他のデバイスに対する実行要求を出力し、前記第２の判定部によって前記中央処理装置に通知すると判定されたことに応じて、前記中央処理装置に対して前記割込み要求を出力する出力部と、
を備えることを特徴とするコンピュータシステム。
【請求項２】
前記割込要求処理装置間は、前記バスとは異なる他のバスによって相互に通信可能に接続されており、
前記出力部は、
前記他のバスを介して、前記他のデバイスに対する実行要求を出力することを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
バスを介して相互に通信可能な、中央処理装置と、複数のデバイスと、前記複数のデバイスのそれぞれに対応して設けられる割込要求処理装置と、を含むコンピュータシステムの割込要求処理方法であって、
前記中央処理装置が、
前記複数のデバイスのいずれかのデバイスに対する所定の処理の実行要求を行い、複数の割込要求処理装置のいずれかの割込要求処理装置から所定の処理の終了を通知する割込み要求を受け付けたことに応じて割込み処理を実行し、
前記デバイスが、
所定の処理の実行要求を受け付けたことに応じて前記所定の処理を実行し、前記所定の処理の終了を通知する割込み要求を対応する割込要求処理装置に出力し、
前記割込要求処理装置が、
前記デバイスから出力される前記割込み要求を受け付け、
前記デバイスから前記割込み要求を受け付けたことに応じて、前記割込み要求を受け付けた回数が所定回数と一致するか否かを判定し、
前記所定回数と不一致であると判定したことに応じて、前記デバイスに対して前記実行要求を出力し、
前記所定回数と一致すると判定したことに応じて、前記割込み要求を前記中央処理装置に通知するか否かを判定し、
前記中央処理装置に通知しないと判定したことに応じて、前記デバイスとは異なる他のデバイスに対する実行要求を出力し、
前記中央処理装置に通知すると判定したことに応じて、前記中央処理装置に対して前記割込み要求を出力する、
ことを特徴とするコンピュータシステムの割込要求処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中央処理装置に対するデバイスからの割込み要求を処理するコンピュータシステムおよび割込要求処理方法に関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、中央処理装置は、デバイスからの割込み要求を受け付けると実行中のプログラムを中断し、該プログラムを再開するための情報をメモリに退避して、割込ハンドラなどの割込処理プログラムを呼び出す。そして、中央処理装置は、割込ハンドラによる割込み処理が終了すると、メモリに退避していた情報をもとに、プログラムの実行を再開する。
【０００３】
従来、コンピュータシステム内の中央処理装置に対する割込みに関する様々な技術がある。例えば、複数のプロセッサコアを有する集積回路装置内の割込発生回路において、短時間で連続する割込み発生を防止することで、プロセッサ同士で連携して割込み動作を行う際の誤動作を防ぐ技術がある（たとえば、下記特許文献１参照。）。また、マルチプロセッサシステムにおいて、データ転送のスループットの低下を防ぐために、データ転送用のバスとは異なる割込み専用のバスを使用して割込み要求および割込み情報を転送する技術がある（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３５０４３５号公報
【特許文献２】特公平８−７６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術によれば、中央処理装置に対するデバイスからの割込み頻度が高くなると、割込ハンドラなどのソフトウェア処理が増え、中央処理装置の割込み処理にかかる負荷が増大するとともに処理効率の低下を招くという問題がある。
【０００６】
本発明は、上述した従来技術による問題点を解消するため、中央処理装置の割込み処理にかかる負荷を低減させて、中央処理装置の処理効率の向上を図ることができるコンピュータシステムおよび割込要求処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、開示のコンピュータシステムは、バスを介して相互に通信可能なデバイスに対して実行要求を行った結果、当該デバイスから所定の処理の終了を通知する割込み要求を受け付けて割込み処理を実行する中央処理装置と、前記実行要求に応じて実行される前記所定の処理の終了を前記割込み要求を出力することにより通知するデバイスと、前記デバイスから出力される前記割込み要求を受け付ける受付部と、前記受付部によって前記デバイスから前記割込み要求を受け付けた回数が所定回数と一致するか否かを判定する判定部と、前記判定部によって前記割込み要求を受け付けた回数が前記所定回数と一致するか否か判定された結果、前記割込み要求を受け付けた回数が前記所定回数に達するまで、前記デバイスに対して前記実行要求を出力する出力部とを備える。
【０００８】
また、上述した課題を解決し、目的を達成するため、開示の割込要求処理方法は、中央処理装置からの実行要求に応じて実行される所定の処理の終了を割込み要求を出力することにより通知するデバイスから前記割込み要求を受け付け、前記デバイスから前記割込み要求を受け付けた回数が所定回数と一致するか否かを判定し、前記割込み要求を受け付けた回数が前記所定回数と一致するか否か判定された結果、前記割込み要求を受け付けた回数が前記所定回数に達するまで、前記デバイスに対して前記実行要求を出力する。
【発明の効果】
【０００９】
本コンピュータシステムおよび割込要求処理方法によれば、中央処理装置の割込み処理にかかる負荷を低減させて、中央処理装置の処理効率の向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるコンピュータシステムを示す説明図である。
【図２】実施の形態２にかかるコンピュータシステムを示す説明図である。
【図３】設定テーブルの記憶内容の一例を示す説明図である。
【図４】実施の形態２にかかる割込要求処理装置を示すブロック図である。
【図５】実施の形態２にかかるコンピュータシステムの処理手順を示すシーケンス図である。
【図６】実施の形態２にかかる割込要求処理装置の動作タイミングの一例を示すタイミングチャートである。
【図７】実施の形態２にかかる割込要求処理装置の割込要求処理手順の一例を示すフローチャートである。
【図８】実施の形態２にかかるコンピュータシステムの一実施例を示す説明図である。
【図９】実施の形態２にかかるコンピュータシステムの処理手順の一実施例を示すシーケンス図である。
【図１０】実施の形態３にかかるコンピュータシステムを示す説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかるコンピュータシステムおよび割込要求処理方法の好適な実施の形態を詳細に説明する。
【００１２】
（実施の形態１）
図１は、実施の形態１にかかるコンピュータシステムを示す説明図である。図１において、コンピュータシステム１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、デバイスＤと、割込要求処理装置Ｍと、を含む。コンピュータシステム１００において、ＣＰＵ１０１、デバイスＤおよび割込要求処理装置Ｍは、バス１１０を介して相互に通信可能に接続されている。
【００１３】
ＣＰＵ１０１は、コンピュータシステム１００を制御する中央処理装置である。ＣＰＵ１０１は、デバイスＤからの割込み要求を受け付けて割込み処理を実行する。ここで、割込み要求とは、例えば、デバイスＤが、ある状態や特定の条件を満たしたときにＣＰＵ１０１に対して出力する信号である。
【００１４】
デバイスＤは、所定の機能を実現するハードウェアであり、例えば、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスやインターフェースを含むモジュールである。デバイスＤは、例えば、ＣＰＵ１０１に対して割込み要求を出力することにより所定の処理の終了を通知する。所定の処理とは、デバイスＤの機能を実現するための処理である。デバイスＤとしては、例えば、メモリコントローラ、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）、磁気ディスク、光ディスクなどがある。
【００１５】
割込要求処理装置Ｍは、デバイスＤからＣＰＵ１０１に対して出力される割込み要求を処理する。ここで、デバイスＤからの割込み要求に対してＣＰＵ１０１が行う割込み処理の中には、ＣＰＵ１０１を介して行う必要があるものと、ＣＰＵ１０１を介して行う必要がないものがある。
【００１６】
例えば、ＣＰＵ１０１からデバイスＤに対して実行要求を繰り返し行って、デバイスＤに所定の処理を複数回実行させる場合がある。この場合、デバイスＤは、所定の処理が終了すると、その都度、所定の処理の終了を通知するための割込み要求をＣＰＵ１０１に出力する。そして、ＣＰＵ１０１は、デバイスＤからの割込み要求を受け付けると、その都度、割込み処理を実行する。
【００１７】
具体的には、例えば、ＣＰＵ１０１は、デバイスＤからの割込み要求を受け付けると、実行中のプログラムの処理を中断し、該プログラムを再開するための情報をメモリに退避して、割込ハンドラなどの割込処理プログラムを呼び出す。すなわち、ＣＰＵ１０１は、デバイスＤに所定の処理をＦ回繰り返し実行させる場合、割込ハンドラといったソフトウェア処理をＦ回行うことになる。
【００１８】
この際、割込ハンドラは、デバイスＤの１回目から（Ｆ−１）回目の割込み要求に対しては、割込み要因を分析してデバイスＤの割込み要因をクリアし、デバイスＤに実行要求を行う。また、割込ハンドラは、Ｆ回目の割込み要求に対しては、例えば、Ｆ回繰り返された所定の処理の実行結果を用いて別の処理を行うためのプログラムの実行予約などを行う。
【００１９】
このような割込ハンドラの処理のうち、プログラムの実行予約を行うなどの最後（Ｆ回目）の割込み要求に対する処理は、ＣＰＵ１０１を介して行う必要がある。一方、デバイスＤに対して単に所定の処理の実行要求を行う１回目から（Ｆ−１）回目の割込み要求に対する処理は、ＣＰＵ１０１を介して行う必要がない。
【００２０】
ところが、デバイスＤに対して単なる実行要求を行う処理であっても数百サイクルを必要とするため、ＣＰＵ１０１に対する割込み頻度が高くなると、ＣＰＵ１０１の負荷が増大してしまう。また、ＣＰＵ１０１は、割込み要求を受け付けると実行中のプログラムを中断して割込み処理を行うため、ＣＰＵ１０１に対する割込み頻度が高くなると、本来実行すべき処理に専念できず、ＣＰＵ１０１の処理効率が低下してしまう。
【００２１】
そこで、実施の形態１にかかるコンピュータシステム１００では、必ずしもＣＰＵ１０１が関与しなくてもよいデバイスＤからの割込み要求を横取りして、ＣＰＵ１０１の代わりに処理する割込要求処理装置Ｍを設ける。以下、デバイスＤに所定の処理をＦ回繰り返し実行させる場合の割込要求処理装置Ｍの処理手順を説明する。なお、デバイスＤに対する最初の実行要求は、ＣＰＵ１０１がデバイスＤに直接通知してもよく、また、ＣＰＵ１０１が割込要求処理装置Ｍを介してデバイスＤに通知してもよい。
【００２２】
（１）割込要求処理装置Ｍは、デバイスＤから出力される所定の処理の終了を通知する割込み要求を受け付ける。すなわち、本来はデバイスＤからＣＰＵ１０１に直接通知される割込み要求を、割込要求処理装置ＭがＣＰＵ１０１への通知に先立って受け付ける。
【００２３】
（２）割込要求処理装置Ｍは、デバイスＤから割込み要求を受け付けた回数が、所定回数Ｆと一致するか否かを判定する。ここで、所定回数Ｆは、デバイスＤに所定の処理を繰り返し実行させる回数であり、予め任意に設定されている。
【００２４】
（３）割込要求処理装置Ｍは、デバイスＤから割込み要求を受け付けた回数が所定回数Ｆに達するまで、デバイスＤに対して所定の処理の実行要求を出力する。すなわち、単にデバイスＤに対して所定の処理の実行要求を行う処理は、ＣＰＵ１０１を介して行う必要がないため、割込要求処理装置ＭがＣＰＵ１０１の代わりに行う。
【００２５】
（４）上記（１）〜（３）を繰り返した結果、割込要求処理装置Ｍは、デバイスＤから割込み要求を受け付けた回数が所定回数Ｆと一致すると判定された場合、ＣＰＵ１０１に対して割込み要求を出力する。すなわち、Ｆ回目の割込み要求に対する処理は、ＣＰＵ１０１を介して行う必要があるため、デバイスＤからの割込み要求をＣＰＵ１０１に通知する。
【００２６】
以上説明したように、実施の形態１にかかるコンピュータシステム１００によれば、ＣＰＵ１０１に対するデバイスＤからの割込み要求のうち、ＣＰＵ１０１が直接関与しなくてもよい割込み要求を、割込要求処理装置Ｍに処理させることができる。すなわち、デバイスＤに所定の処理を複数回繰り返し実行させる場合、ＣＰＵ１０１がデバイスＤに対して最初の実行要求を行ったあとは、ＣＰＵ１０１を介すことなく、デバイスＤに所定の処理を複数回実行させることができる。また、ＣＰＵ１０１にはデバイスＤからの最後の割込み要求のみ通知されるため、ＣＰＵ１０１が行う割込み処理は１回となる。これにより、実行中のプログラムを中断して割込ハンドラを呼び出すなどのＣＰＵ１０１の割込み処理を減らすことができ、ＣＰＵ１０１の割込み処理にかかる負荷を低減させて、ＣＰＵ１０１の処理効率の向上を図ることができる。
【００２７】
（実施の形態２）
図２は、実施の形態２にかかるコンピュータシステムを示す説明図である。なお、実施の形態１で説明した箇所と同様の箇所については説明を省略する。図２において、コンピュータシステム２００は、ＣＰＵ２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ２０３と、割込コントローラ２０４と、デバイスＤ１〜Ｄｎと、割込要求処理装置Ｍ１〜Ｍｎと、を含む。コンピュータシステム２００において、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、割込コントローラ２０４、デバイスＤ１〜Ｄｎおよび割込要求処理装置Ｍ１〜Ｍｎは、バス２１０を介して相互に通信可能に接続されている。
【００２８】
ＣＰＵ２０１は、コンピュータシステム２００を制御する中央処理装置である。ＣＰＵ２０１は、割込コントローラ２０４を介して、デバイスＤ１〜Ｄｎからの割込み要求を受け付けて割込み処理を実行する。ＲＯＭ２０２は、ブートプログラムや割込処理プログラムなどの各種プログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。
【００２９】
割込コントローラ２０４は、割込要求処理装置Ｍ１〜Ｍｎから、ＣＰＵ２０１に対するデバイスＤ１〜Ｄｎの割込み要求を受け付けてＣＰＵ２０１に通知する。具体的には、例えば、割込コントローラ２０４は、各デバイスＤ１〜Ｄｎの割込み要因ごとの割込ステータスレジスタおよび割込マスクレジスタを有している。割込ステータスレジスタは、割込み要因の状態を保持するレジスタである。割込マスクレジスタは、ＣＰＵ２０１に対する割込みがイネーブルか否かを示す情報を保持するレジスタである。
【００３０】
割込コントローラ２０４は、ある割込み要因がアサートされると、割込み要因に対応する割込ステータスレジスタに要因の状態を格納する。そして、割込コントローラ２０４は、該割込み要因に対応する割込マスクレジスタがイネーブルの場合、ＣＰＵ２０１に対して割込み要求を出力する。この際、割込コントローラ２０４は、割込み要因に対応する割込みベクタをＣＰＵ２０１に出力する。割込みベクタとは、割込み要因に対応する割込処理プログラムを起動するための情報である。ＣＰＵ２０１は、割込み要求とともに受け付けた割込みベクタを参照して、割込ハンドラなどの割込処理プログラムを呼び出す。
【００３１】
デバイスＤ１〜Ｄｎは、例えば、Ｉ／Ｏデバイスやインターフェースを含むメモリコントローラ、ＤＭＡＣ、エンコーダ、デコーダ、磁気ディスク、光ディスクなどのモジュールである。各デバイスＤ１〜Ｄｎには、各割込要求処理装置Ｍ１〜Ｍｎがそれぞれ搭載されている。各割込要求処理装置Ｍ１〜Ｍｎは、各デバイスＤ１〜ＤｎからＣＰＵ２０１に対する割込み要求を受け付けて処理する。
【００３２】
ここで、コンピュータシステム２００においてＣＰＵ２０１が行う初期設定について説明する。ＣＰＵ２０１は、割込コントローラ２０４の初期設定を行う。具体的には、例えば、ＣＰＵ２０１は、割込み要因に対応する割込みベクタや割込み要求の優先順位などを割込コントローラ２０４に設定する。優先順位とは、複数の割込み要求が同時に発生した場合や多重割込みが発生した場合に、割込み要求を受け付ける順番を決める情報である。
【００３３】
また、ＣＰＵ２０１は、デバイスＤ１〜Ｄｎの初期設定を行う。具体的には、ＣＰＵ２０１は、各デバイスＤ１〜Ｄｎが所定の処理を実行するために必要となる情報を各デバイスＤ１〜Ｄｎに設定する。具体的には、例えば、デバイス間のデータ転送を行う場合、ＣＰＵ２０１は、リードコマンドやライトコマンドなどのコマンド内容、リード先やライト先のアドレス、転送データ量などを実行対象のデバイスＤ１〜Ｄｎに設定する。
【００３４】
また、ＣＰＵ２０１は、割込要求処理装置Ｍ１〜Ｍｎの初期設定を行う。具体的には、例えば、ＣＰＵ２０１は、図３に示す設定テーブル３００を参照して、割込要求処理装置Ｍ１〜Ｍｎの初期設定を行う。ここで、設定テーブル３００の記憶内容について説明する。
【００３５】
図３は、設定テーブルの記憶内容の一例を示す説明図である。図３において、設定テーブル３００は、マクロ名、回数レジスタ値およびＩＤレジスタ値のフィールドを有し、各フィールドに情報を設定することで、設定データ３００−１〜３００−ｎをレコードとして記憶している。
【００３６】
ここで、マクロ名とは、各割込要求処理装置Ｍ１〜Ｍｎの名称である。回数レジスタ値とは、各割込要求処理装置Ｍ１〜Ｍｎが有する回数レジスタＲ２（後述の図４参照）のレジスタ値である。回数レジスタＲ２は、各デバイスＤ１〜Ｄｎに所定の処理を繰り返し実行させる回数を記憶するレジスタである。
【００３７】
ＩＤレジスタ値とは、各割込要求処理装置Ｍ１〜Ｍｎが有するＩＤレジスタＲ３（後述の図４参照）のレジスタ値である。ＩＤレジスタＲ３は、割込コントローラ２０４および割込要求処理装置Ｍ１〜Ｍｎのうちのいずれかの識別子を記憶するレジスタである。ただし、ＩＤレジスタ値「０ｘＦＦＦＦＦＦＦＦ」は、割込コントローラ２０４の識別子である。
【００３８】
一例として、割込要求処理装置Ｍ１を例に挙げると、ＣＰＵ２０１は、設定データ３００−１を参照して、割込要求処理装置Ｍ１の回数レジスタＲ２に「Ｆ１」を設定し、ＩＤレジスタＲ３に「０ｘ０００００００１」を設定する。設定テーブル３００は、例えば、図２に示したＲＯＭ２０２に記憶されている。
【００３９】
以下の説明において、複数のデバイスＤ１〜Ｄｎのうち任意のデバイスを「デバイスＤｉ」と表記する（ｉ＝１，２，…，ｎ）。また、複数の割込要求処理装置Ｍ１〜Ｍｎのうち任意の割込要求処理装置を「割込要求処理装置Ｍｉ」と表記する。また、複数のデバイスＤ１〜ＤｎのうちデバイスＤｉとは異なる他のデバイスを「デバイスＤｊ」と表記する（ｊ≠ｉ、ｊ＝１，２，…，ｎ）。また、複数の割込要求処理装置Ｍ１〜Ｍｎのうち割込要求処理装置Ｍｉとは異なる他の割込要求処理装置を「割込要求処理装置Ｍｊ」と表記する。
【００４０】
（割込要求処理装置Ｍｉの機能的構成）
つぎに、実施の形態２にかかる割込要求処理装置Ｍｉの機能的構成について説明する。図４は、実施の形態２にかかる割込要求処理装置を示すブロック図である。図４において、割込要求処理装置Ｍｉは、受付部４０１と、判断部４０２と、出力部４０３と、カウンタ４０４と、回数判定部４０５と、ＩＤ判定部４０６と、を含む構成である。各機能部（受付部４０１〜ＩＤ判定部４０６）は、例えば、各機能を実現するための回路によって実現される。具体的には、例えば、各機能部（受付部４０１〜ＩＤ判定部４０６）の機能を実現するステートマシンによって実現することができる。
【００４１】
受付部４０１は、ＣＰＵ２０１からデバイスＤｉに対する所定の処理の実行要求を受け付ける。具体的には、例えば、受付部４０１が、バス２１０を介して、イネーブルレジスタＲ１の値をアサートに設定する制御信号をＣＰＵ２０１から受け付ける。ここで、イネーブルレジスタＲ１とは、デバイスＤｉに対する所定の処理の実行要求が有効か否かを示す情報を保持するレジスタである。イネーブルレジスタＲ１がアサートの場合、デバイスＤｉに対する実行要求が有効となっていることを示す。一方、イネーブルレジスタＲ１がネゲートの場合、デバイスＤｉに対する実行要求が無効となっていることを示す。
【００４２】
また、受付部４０１は、他の割込要求処理装置ＭｊからデバイスＤｉに対する所定の処理の実行要求を受け付ける。具体的には、例えば、受付部４０１が、デバイスＤｉに対する所定の処理の実行要求として、バス２１０を介してｒｅａｄｙ信号を受け付ける。受付部４０１によってデバイスＤｉに対する実行要求を受け付けると、イネーブルレジスタＲ１の値がアサートに設定される。
【００４３】
判断部４０２は、デバイスＤｉに対する所定の処理の実行要求が有効となっているか否かを判断する。具体的には、例えば、判断部４０２が、イネーブルレジスタＲ１がアサートの場合、デバイスＤｉに対する実行要求が有効となっていると判断する。一方、判断部４０２が、イネーブルレジスタＲ１がネゲートの場合、デバイスＤｉに対する実行要求が無効となっていると判断する。
【００４４】
また、判断部４０２は、デバイスＤｉに対する所定の処理の実行要求が有効となっている場合、ウェイト指示が有効となっているか否かを判断することにしてもよい。ここで、ウェイト指示とは、デバイスＤｉと連動して動作する他のデバイスＤｊの準備が終了するまでの間、デバイスＤｉを待機させるためのものである。
【００４５】
具体的には、例えば、判断部４０２が、受付部４０１によって受け付けた他のデバイスＤｊからのウェイト信号がアサートされている間は、ウェイト指示が有効となっていると判断する。一方、判断部４０２が、他のデバイスＤｊからのウェイト信号がネゲートされた場合、ウェイト指示が無効となっていると判断する。他のデバイスＤｊからのウェイト信号は、受付部４０１が、他のデバイスＤｊから直接受け付けてもよく、また、デバイスＤｉを介して他のデバイスＤｊから受け付けてもよい。
【００４６】
また、判断部４０２は、イネーブルレジスタＲ１の値がアサートに設定されてから一定時間Ｔ経過するまでの間、ウェイト指示が有効となっていると判断することにしてもよい。ここで、一定時間Ｔは、他のデバイスＤｊの準備が終了するまでにかかる時間であり、予め設定されている。判断部４０２は、イネーブルレジスタＲ１の値がアサートに設定されてから一定時間Ｔ経過したら、ウェイト指示が無効となっていると判断する。
【００４７】
出力部４０３は、判断部４０２によってデバイスＤｉに対する所定の処理の実行要求が有効となっていると判断された場合、デバイスＤｉに対して所定の処理の実行要求を出力する。また、出力部４０３は、デバイスＤｉに対する所定の処理の実行要求が有効かつウェイト指示が無効となっていると判断された場合に、デバイスＤｉに所定の処理の実行要求を出力することにしてもよい。これにより、デバイスＤｉと連動して動作する他のデバイスＤｊの準備が終了してから、デバイスＤｉに対して所定の処理の実行要求を行うことができる。
【００４８】
具体的には、例えば、出力部４０３が、所定の処理の実行要求をデバイスＤｉの主機能部４１０に出力する。ここで、主機能部４１０は、所定の処理を実行するデバイスＤｉの機能部であり、所定の処理が終了するとＣＰＵ２０１に対する割込み要求を割込みコントローラを介して通知する。所定の処理の実行要求が主機能部４１０に出力されると、主機能部４１０によって所定の処理が実行される。
【００４９】
また、受付部４０１は、デバイスＤｉからＣＰＵ２０１に対して割込みコントローラを介して通知される割込み要求を、ＣＰＵ２０１への通知に先立って受け付ける。具体的には、例えば、受付部４０１が、割込要求処理装置ＭｉとデバイスＤｉとを直接接続する割込み信号線を使用して、デバイスＤｉの主機能部４１０から出力される割込み要求を受け付ける。
【００５０】
カウンタ４０４は、受付部４０１によって割込み要求を受け付けた回数をカウントする。具体的には、例えば、カウンタ４０４が、受付部４０１によって割込み要求を受け付けると、その都度、カウンタ値をインクリメントすることにより、割込み要求を受け付けた回数をカウントする。
【００５１】
回数判定部４０５は、割込み要求を受け付けた回数が、所定回数Ｆｉと一致するか否かを判定する。ここで、所定回数Ｆｉとは、デバイスＤｉに所定の処理を繰り返し実行させる回数である。所定回数Ｆｉは、回数レジスタＲ２のレジスタ値として予め設定されている。具体的には、例えば、回数判定部４０５が、回数レジスタＲ２のレジスタ値と、カウンタ４０４のカウント値とが一致するか否かを判定する。
【００５２】
出力部４０３は、回数判定部４０５によって割込み要求を受け付けた回数が所定回数Ｆｉに達するまで、デバイスＤｉに対して所定の処理の実行要求を出力する。具体的には、例えば、出力部４０３が、回数レジスタＲ２のレジスタ値とカウンタ４０４のカウント値が不一致の場合、所定の処理の実行要求を主機能部４１０に出力する。
【００５３】
また、出力部４０３は、所定の処理の実行要求の出力に先立って、割込み要因のクリア指示を主機能部４１０に出力することにしてもよい。主機能部４１０は、割込み要因のクリア指示を受け付けると、割込み要因ビットの値を変更して割込み要因をクリアする。これにより、デバイスＤｉからの割込み要求が繰り返し発生することを防ぐことができる。
【００５４】
ＩＤ判定部４０６は、回数判定部４０５によって割込み要求を受け付けた回数が所定回数Ｆｉと一致すると判定された場合、ＣＰＵ２０１に対して割込み要求を通知するか否かを判定する。具体的には、例えば、ＩＤ判定部４０６が、ＩＤレジスタＲ３のレジスタ値が割込コントローラ２０４の識別子と一致するか否かを判定する。
【００５５】
ここで、ＩＤレジスタＲ３のレジスタ値が割込コントローラ２０４の識別子と一致する場合、ＩＤ判定部４０６が、ＣＰＵ２０１に対して割込み要求を通知すると判定する。一方、ＩＤレジスタＲ３のレジスタ値が割込コントローラ２０４の識別子と不一致の場合、ＩＤ判定部４０６が、ＣＰＵ２０１に対して割込み要求を通知しないと判定する。
【００５６】
ここでは、割込コントローラ２０４の識別子は「０ｘＦＦＦＦＦＦＦＦ」に設定されている。このため、ＩＤ判定部４０６が、ＩＤレジスタＲ３のレジスタ値の論理積（ＡＮＤ）が「１」となる場合に、割込コントローラ２０４の識別子と一致すると判定することにしてもよい。一方、ＩＤレジスタＲ３のレジスタ値の論理積が「０」となる場合、ＩＤ判定部４０６が、割込コントローラ２０４の識別子と一致しないと判定する。
【００５７】
また、割込要求処理装置Ｍｉ内部に割込コントローラ２０４の識別子を記憶する記憶装置を設けることにしてもよい。この場合、ＩＤ判定部４０６は、ＩＤレジスタＲ３のレジスタ値と記憶装置に記憶されている識別子とを比較して、割込コントローラ２０４の識別子と一致するか否かを判定する。
【００５８】
回数判定部４０５によって割込み要求を受け付けた回数が所定回数Ｆｉと一致すると判定された場合、判断部４０２によってイネーブルレジスタＲ１の値がネゲートに設定される。これにより、デバイスＤｉが所定の処理をＦｉ回繰り返し実行したあとに、割込要求処理装置ＭｉからデバイスＤｉに対して実行要求を行うことを防ぐことができる。
【００５９】
出力部４０３は、ＩＤ判定部４０６によってＣＰＵ２０１に対して割込み要求を通知すると判定された場合、ＣＰＵ２０１に対するデバイスＤｉからの割込み要求を割込コントローラ２０４に出力する。具体的には、例えば、出力部４０３が、割込要求処理装置Ｍｉと割込コントローラ２０４とを直接接続する割込み信号線を使用して、デバイスＤｉからの割込み要求を出力する。
【００６０】
割込コントローラ２０４は、割込要求処理装置ＭｉからデバイスＤｉの割込み要求を受け付けると、ＣＰＵ２０１に対してデバイスＤｉの割込み要求とともにデバイスＤｉの割込み要因に対応する割込みベクタを出力する。これにより、ＣＰＵ２０１を介して処理する必要がある割込み要求をＣＰＵ２０１に通知することができる。
【００６１】
また、出力部４０３は、ＩＤ判定部４０６によってＣＰＵ２０１に対して割込み要求を通知しないと判定された場合、他のデバイスＤｊに対して所定の処理の実行要求を出力する。具体的には、例えば、出力部４０３が、ＩＤレジスタＲ３のレジスタ値から識別される他の割込要求処理装置Ｍｊに、デバイスＤｊに対する所定の処理の実行要求を出力する。
【００６２】
より具体的には、例えば、出力部４０３が、バス２１０に対してｖａｌｉｄ信号を出力するとともに、ＩＤレジスタＲ３のレジスタ値を出力する。この結果、バス２１０により、ＩＤレジスタＲ３のレジスタ値から識別される他の割込要求処理装置Ｍｊにｒｅａｄｙ信号が出力される。
【００６３】
そして、他の割込要求処理装置Ｍｊは、バス２１０からｒｅａｄｙ信号を受け付けると、デバイスＤｊに対して所定の処理の実行要求を出力する。このように、デバイスＤｉのつぎに動作させる他のデバイスＤｊに搭載されている割込要求処理装置Ｍｊの識別子をＩＤレジスタＲ３に設定しておくことで、複数のデバイスＤ１〜Ｄｎを任意のシーケンスに従って動作させることができる。
【００６４】
なお、上述した説明では、デバイスＤｉからの割込み要求を、割込コントローラ２０４を介してＣＰＵ２０１に通知することにしたが、これに限らない。具体的には、例えば、出力部４０３が、ＣＰＵ２０１と割込要求処理装置Ｍｉとを直接接続する割込み信号線を使用して、デバイスＤｉからの割込み要求をＣＰＵ２０１に直接出力することにしてもよい。
【００６５】
また、上述した説明では、割込要求処理装置ＭｉからデバイスＤｉに対して割込み要因のクリア指示を出力することで、デバイスＤｉが割込み要因をクリアすることにしたが、これに限らない。具体的には、例えば、デバイスＤｉが、所定の処理の実行要求を受け付けると、自律的に割込み要因をクリアすることにしてもよい。
【００６６】
（コンピュータシステム２００の処理手順）
つぎに、実施の形態２にかかるコンピュータシステム２００の処理手順について説明する。ここでは、割込要求処理装置ＭｉのＩＤレジスタＲ３に割込要求処理装置Ｍｊの識別子が保持されており、割込要求処理装置ＭｊのＩＤレジスタＲ３に割込コントローラ２０４の識別子が保持されている場合を例に挙げて説明する。
【００６７】
図５は、実施の形態２にかかるコンピュータシステムの処理手順を示すシーケンス図である。図５のシーケンス図において、（１）ＣＰＵ２０１は、割込コントローラ２０４、割込要求処理装置Ｍｉ，ＭｊおよびデバイスＤｉ，Ｄｊの初期設定を行う。（２）ＣＰＵ２０１は、デバイスＤｉに対する実行要求を割込要求処理装置Ｍｉに出力する。（３）ＣＰＵ２０１は、任意のプログラムの実行を開始する。
【００６８】
（４）割込要求処理装置Ｍｉは、デバイスＤｉに対する実行要求を受け付けると、デバイスＤｉに対して実行要求を出力する。（５）デバイスＤｉは、割込要求処理装置Ｍｉから実行要求を受け付けると所定の処理を実行する。（６）割込要求処理装置Ｍｉは、所定の処理の終了を通知するためのＣＰＵ２０１に対する割込み要求をデバイスＤｉから受け付ける。
【００６９】
（７）割込要求処理装置Ｍｉは、デバイスＤｉから割込み要求を受け付けた回数がＦｉ回となるまで、デバイスＤｉの割込み要因をクリアするとともに、デバイスＤｉに対して実行要求を出力する。（８）割込要求処理装置Ｍｉは、デバイスＤｉから割込み要求を受け付けた回数がＦｉ回となったら、デバイスＤｉの割込み要因をクリアして、他のデバイスＤｊに対する実行要求を他の割込要求処理装置Ｍｊに出力する。
【００７０】
（９）割込要求処理装置Ｍｊは、割込要求処理装置ＭｉからデバイスＤｊに対する実行要求を受け付けると、デバイスＤｊに対して実行要求を出力する。（１０）デバイスＤｊは、割込要求処理装置Ｍｊから実行要求を受け付けると所定の処理を実行する。（１１）割込要求処理装置Ｍｊは、所定の処理の終了を通知するためのＣＰＵ２０１に対する割込み要求をデバイスＤｊから受け付ける。
【００７１】
（１２）割込要求処理装置Ｍｊは、デバイスＤｊから割込み要求を受け付けた回数がＦｊ回となるまで、デバイスＤｊの割込み要因をクリアするとともに、デバイスＤｊに対して実行要求を出力する。（１３）割込要求処理装置Ｍｊは、デバイスＤｊから割込み要求を受け付けた回数がＦｊ回となったら、デバイスＤｊの割込み要因をクリアして、ＣＰＵ２０１に対するデバイスＤｊからの割込み要求を割込コントローラ２０４に出力する。
【００７２】
（１４）割込コントローラ２０４は、割込要求処理装置Ｍｊから割込み要求を受け付けると、ＣＰＵ２０１にデバイスＤｊからの割込み要求を出力する。（１５）ＣＰＵ２０１は、割込コントローラ２０４から割込み要求を受け付けると、実行中のプログラムを中断して割込ハンドラを呼び出す。この結果、割込ハンドラによってデバイスＤｊからの割込み要求が処理される。
【００７３】
（割込要求処理装置Ｍｉの動作タイミング）
つぎに、実施の形態２にかかる割込要求処理装置Ｍｉ，Ｍｊの動作タイミングについて説明する。ここでは、図５と同様に、割込要求処理装置ＭｉのＩＤレジスタＲ３に割込要求処理装置Ｍｊの識別子が保持されており、割込要求処理装置ＭｊのＩＤレジスタＲ３に割込コントローラ２０４の識別子が保持されている場合を例に挙げて説明する。
【００７４】
図６は、実施の形態２にかかる割込要求処理装置の動作タイミングの一例を示すタイミングチャートである。図６において、割込要求処理装置Ｍｉは、イネーブルレジスタＲ１の値がアサートに設定されると、デバイスＤｉから割込み要求を受け付けた回数をカウントする。割込要求処理装置Ｍｉは、デバイスＤｉから割込み要求を受け付けた回数がＦｉ回となったら、イネーブルレジスタＲ１の値をネゲートに設定して、バス２１０に対してｖａｌｉｄ信号を１サイクルアサートする（図６中（ａ））。
【００７５】
バス２１０は、ｖａｌｉｄ信号がアサートされると、割込要求処理装置Ｍｊに対してｒｅａｄｙ信号を１サイクルアサートする（図６中（ｂ））。割込要求処理装置Ｍｊは、ｒｅａｄｙ信号がアサートされると、イネーブルレジスタＲ１の値をアサートに設定する（図６中（ｃ））。
【００７６】
割込要求処理装置Ｍｊは、イネーブルレジスタＲ１の値がアサートに設定されると、デバイスＤｊから割込み要求を受け付けた回数をカウントする。割込要求処理装置Ｍｊは、デバイスＤｊから割込み要求を受け付けた回数がＦｊ回となったら、イネーブルレジスタＲ１の値をネゲートに設定して、ＣＰＵ２０１に対するデバイスＤｊからの割込み要求を割込コントローラ２０４に出力する（図６中（ｄ））。これにより、ＣＰＵ２０１を介すことなく、デバイスＤｉのあとにデバイスＤｊを動作させることができる。
【００７７】
（割込要求処理装置Ｍｉの割込要求処理手順）
つぎに、実施の形態２にかかる割込要求処理装置Ｍｉの割込要求処理手順について説明する。図７は、実施の形態２にかかる割込要求処理装置の割込要求処理手順の一例を示すフローチャートである。
【００７８】
図７のフローチャートにおいて、まず、判断部４０２により、イネーブルレジスタＲ１の値がアサートに設定されたか否かを判断する（ステップＳ７０１）。ここで、イネーブルレジスタＲ１の値がアサートに設定されるのを待って（ステップＳ７０１：Ｎｏ）、アサートに設定された場合（ステップＳ７０１：Ｙｅｓ）、判断部４０２により、ウェイト信号がアサートされているか否かを判断する（ステップＳ７０２）。
【００７９】
ここで、ウェイト信号がアサートされている場合（ステップＳ７０２：Ｙｅｓ）、判断部４０２により、ウェイト信号がネゲートされるのを待つ。そして、ウェイト信号がネゲートされた場合（ステップＳ７０２：Ｎｏ）、出力部４０３により、デバイスＤｉに対して割込み要因のクリア指示を出力する（ステップＳ７０３）。つぎに、出力部４０３により、デバイスＤｉに対して所定の処理の実行要求を出力する（ステップＳ７０４）。
【００８０】
このあと、受付部４０１により、デバイスＤｉから割込み要求を受け付けるのを待って（ステップＳ７０５：Ｎｏ）、割込み要求を受け付けた場合（ステップＳ７０５：Ｙｅｓ）、カウンタ４０４により、カウント値をインクリメントする（ステップＳ７０６）。そして、回数判定部４０５により、カウンタ４０４のカウント値と回数レジスタＲ２のレジスタ値とが一致するか否かを判定する（ステップＳ７０７）。
【００８１】
ここで、カウンタ４０４のカウント値と回数レジスタＲ２のレジスタ値とが不一致の場合（ステップＳ７０７：Ｎｏ）、ステップＳ７０２に戻る。一方、カウンタ４０４のカウント値と回数レジスタＲ２のレジスタ値とが一致する場合（ステップＳ７０７：Ｙｅｓ）、出力部４０３により、デバイスＤｉに対して割込み要因のクリア指示を出力する（ステップＳ７０８）。
【００８２】
つぎに、判断部４０２により、イネーブルレジスタＲ１の値をネゲートに設定する（ステップＳ７０９）。そして、ＩＤ判定部４０６により、ＩＤレジスタＲ３のレジスタ値が割込コントローラ２０４の識別子と一致するか否かを判定する（ステップＳ７１０）。
【００８３】
ここで、不一致の場合（ステップＳ７１０：Ｎｏ）、出力部４０３により、バス２１０に対して、ｖａｌｉｄ信号を１サイクルアサートするとともにＩＤレジスタＲ３のレジスタ値を出力して（ステップＳ７１１）、本フローチャートによる一連の処理を終了する。
【００８４】
一方、一致する場合（ステップＳ７１０：Ｙｅｓ）、出力部４０３により、ＣＰＵ２０１に対するデバイスＤｉからの割込み要求を割込コントローラ２０４に出力して（ステップＳ７１２）、本フローチャートによる一連の処理を終了する。
【００８５】
これにより、ＣＰＵ２０１が直接関与しなくてもよい割込み要求を、ＣＰＵ２０１の代わりに処理することができる。また、他のデバイスＤｊに搭載されている割込要求処理装置Ｍｊの識別子をＩＤレジスタＲ３に設定しておくことで、ＣＰＵ２０１を介すことなく、デバイスＤｉと連動して動作する他のデバイスＤｊを動作させることができる。
【００８６】
（コンピュータシステム２００の一実施例）
つぎに、実施の形態２にかかるコンピュータシステム２００の一実施例について説明する。図８は、実施の形態２にかかるコンピュータシステムの一実施例を示す説明図である。ここでは、コンピュータシステム２００内のデバイスＤｉとして、ＤＭＡＣ８０１およびメモリコントローラ８０２を例に挙げて説明する。
【００８７】
ＤＭＡＣ８０１は、コンピュータシステム２００のＤＭＡ転送を制御する。ＤＭＡＣ８０１には、割込要求処理装置Ｍ１が搭載されている。メモリコントローラ８０２は、コンピュータシステム２００のＲＡＭ２０３やＮＡＮＤフラッシュメモリ８０３などのインターフェースを統括する。
【００８８】
ここでは、ＣＰＵ２０１が、ＤＭＡＣ８０１を使用して、ＮＡＮＤフラッシュメモリ８０３に格納されているデータをＲＡＭ２０３に転送する場合を想定する。ここで、ＮＡＮＤフラッシュメモリ８０３は、不揮発性の半導体メモリであり、ページ単位（例えば、５１２［Ｂ］または２０４８［Ｂ］）の書き込み、読み出しを行う。
【００８９】
このため、ＮＡＮＤフラッシュメモリ８０３からページ単位よりも大きなデータ量のデータを読み出す場合、ＤＭＡＣ８０１を複数回起動してデータの転送を行う必要がある。例えば、ＮＡＮＤフラッシュメモリ８０３のページ単位のデータ量を２［ＫＢ］、総転送データ量を１６［ＫＢ］とすると、ＤＭＡＣ８０１を８回（＝１６／２）起動してデータの転送を行う必要がある。このため、割込要求処理装置Ｍ１の回数レジスタＲ２に保持される所定回数Ｆ１は「Ｆ１＝８」となる。
【００９０】
（コンピュータシステム２００の処理手順の一実施例）
つぎに、実施の形態２にかかるコンピュータシステム２００の処理手順の一実施例について説明する。図９は、実施の形態２にかかるコンピュータシステムの処理手順の一実施例を示すシーケンス図である。
【００９１】
図９のシーケンス図において、（１）ＣＰＵ２０１は、割込コントローラ２０４、ＮＡＮＤフラッシュメモリ８０３、ＤＭＡＣ８０１および割込要求処理装置Ｍ１の初期設定を行う。具体的には、例えば、ＣＰＵ２０１は、割込みベクタや優先順位などを割込コントローラ２０４に設定する。また、ＣＰＵ２０１は、リードコマンドや読み込み先のアドレスなどをＮＡＮＤフラッシュメモリ８０３に設定する。また、ＣＰＵ２０１は、アクセスアドレスや転送データ量（ここでは、ページ単位のデータ量）などをＤＭＡＣ８０１に設定する。また、ＣＰＵ２０１は、回数レジスタＲ２のレジスタ値「８」およびＩＤレジスタＲ３のレジスタ値「０ｘＦＦＦＦＦＦＦＦ」を割込要求処理装置Ｍ１に設定する。
【００９２】
（２）ＣＰＵ２０１は、ＤＭＡＣ８０１に対する転送処理の実行要求を割込要求処理装置Ｍ１に出力する。（３）ＣＰＵ２０１は、任意のプログラムの実行を開始する。（４）割込要求処理装置Ｍ１は、ＤＭＡＣ８０１に対する転送処理の実行要求を受け付けると、ＤＭＡＣ８０１に対して転送処理の実行要求を出力する。
【００９３】
（５）ＤＭＡＣ８０１は、割込要求処理装置Ｍ１から実行要求を受け付けると、ＮＡＮＤフラッシュメモリ８０３からＲＡＭ２０３へのデータの転送処理を実行する。具体的には、例えば、ＤＭＡＣ８０１は、ＮＡＮＤフラッシュメモリ８０３に格納されているデータを、ＤＭＡＣ８０１内部のバッファに取り込んだあとＲＡＭ２０３に書き込む処理を、１ページ分のデータが転送されるまで繰り返す。
【００９４】
（６）割込要求処理装置Ｍ１は、転送処理の終了を通知するためのＣＰＵ２０１に対する割込み要求をＤＭＡＣ８０１から受け付ける。（７）ＮＡＮＤフラッシュメモリ８０３は、１ページ分のデータが読み出されると、割込要求処理装置Ｍ１に対してウェイト信号をアサートして、次ページのデータの読み込みを開始する。具体的には、例えば、ＮＡＮＤフラッシュメモリ８０３は、バス２１０を介して、割込要求処理装置Ｍ１に対して直接接続されたウェイト信号をアサートして、ページの切り替えを行う。
【００９５】
（８）ＮＡＮＤフラッシュメモリ８０３は、次ページのデータの読み込みが完了したら、割込要求処理装置Ｍ１に対してウェイト信号をネゲートする。具体的には、例えば、ＮＡＮＤフラッシュメモリ８０３は、バス２１０を介して、割込要求処理装置Ｍ１に対して直接接続されたウェイト信号をネゲートする。
【００９６】
（９）割込要求処理装置Ｍ１は、ＤＭＡＣ８０１から割込み要求を受け付けた回数が８回となるまで、ＤＭＡＣ８０１の割込み要因をクリアするとともに、ＤＭＡＣ８０１に転送処理の実行要求を出力する。具体的には、例えば、割込要求処理装置Ｍ１は、ＮＡＮＤフラッシュメモリ８０３からウェイト信号がネゲートされるのを待って、ＤＭＡＣ８０１に対して転送処理の実行要求を出力する。
【００９７】
（１０）割込要求処理装置Ｍ１は、ＤＭＡＣ８０１から割込み要求を受け付けた回数が８回となったら、ＤＭＡＣ８０１の割込み要因をクリアして、ＣＰＵ２０１に対するＤＭＡＣ８０１からの割込み要求を割込コントローラ２０４に出力する。（１１）割込コントローラ２０４は、割込要求処理装置Ｍ１から割込み要求を受け付けると、ＣＰＵ２０１に対してＤＭＡＣ８０１からの割込み要求を出力する。ＣＰＵ２０１は、割込コントローラ２０４からの割込み要求を受け付けると、実行中のプログラムを中断して割込ハンドラを呼び出す。そして、割込ハンドラによってＤＭＡＣ８０１からの割込み要求が処理される。
【００９８】
コンピュータシステム２００の一実施例によれば、データ転送を行う際の、ＣＰＵ２０１の割込み処理にかかる負荷を低減させて、ＣＰＵ２０１の処理効率の向上を図ることができる。具体的には、ＣＰＵ２０１の代わりに、ＤＭＡＣ８０１からの１回目から７回目までの割込み要求を割込要求処理装置Ｍｉに処理させることができる。このため、ＣＰＵ２０１は、ＤＭＡＣ８０１からの最後（８回目）の割込み要求に対する割込み処理を行うだけでよい。これにより、従来に比べてＣＰＵ２０１は本来実行すべき処理に専念することができ、ＣＰＵ２０１の処理効率を向上させることができる。
【００９９】
以上説明したように、実施の形態２にかかるコンピュータシステム２００によれば、割込要求処理装置Ｍｉが、デバイスＤｉから割込み要求を受け付けた回数が所定回数Ｆｉとなるまで、ＣＰＵ２０１の代わりに割込み要求を処理することができる。すなわち、ＣＰＵ２０１に対する複数のデバイスＤ１〜Ｄｎからの割込み要求を、複数の割込要求処理装置Ｍ１〜Ｍｎに分散して処理させることができる。これにより、実行中のプログラムを中断して割込ハンドラを呼び出すなどのＣＰＵ２０１の割込み処理を減らすことができ、ＣＰＵ２０１の割込み処理にかかる負荷を低減させて、ＣＰＵ２０１の処理効率の向上を図ることができる。
【０１００】
また、コンピュータシステム２００によれば、割込コントローラ２０４の識別子をＩＤレジスタＲ３に設定しておくことで、割込み要求を受け付けた回数が所定回数Ｆｉとなったら、デバイスＤｉからの割込み要求をＣＰＵ２０１に通知することができる。これにより、ＣＰＵ２０１を介して処理する必要がある割込み要求をＣＰＵ２０１に通知することができる。
【０１０１】
また、コンピュータシステム２００によれば、割込要求処理装置Ｍｊの識別子をＩＤレジスタＲ３に設定しておくことで、割込み要求を受け付けた回数が所定回数Ｆｉとなったら、他のデバイスＤｊに対して所定の処理の実行要求を行うことができる。これにより、ＣＰＵ２０１を介すことなく、複数のデバイスＤ１〜Ｄｎを任意のシーケンスに従って動作させることができる。
【０１０２】
また、コンピュータシステム２００に割込要求処理装置Ｍｉを設置するために、ＣＰＵ２０１、割込コントローラ２０４およびデバイスＤｉのインターフェース部分を変更する必要がない。このため、ＣＰＵ２０１、割込コントローラ２０４およびデバイスＤｉの回路構成を変更することなく、ＣＰＵ２０１の処理効率の向上を図ることができる。
【０１０３】
（実施の形態３）
つぎに、実施の形態３にかかるコンピュータシステム１０００について説明する。実施の形態３では、コンピュータシステム１０００に割込要求処理装置Ｍｉ，Ｍｊ間の通信を行うための専用のバスを設ける。なお、実施の形態１，２で説明した箇所と同様の箇所については、図示および説明を省略する。
【０１０４】
図１０は、実施の形態３にかかるコンピュータシステムを示す説明図である。コンピュータシステム１０００において、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、割込コントローラ２０４およびデバイスＤ１〜Ｄｎは、バス２１０を介して相互に通信可能に接続されている。また、コンピュータシステム１０００において、割込コントローラ２０４および割込要求処理装置Ｍ１〜Ｍｎは、割込専用バス１０１０を介して通信可能に接続されている。
【０１０５】
ここで、割込要求処理装置Ｍｉは、割込専用バス１０１０を介して、他の割込要求処理装置Ｍｊと相互に通信を行う。具体的には、例えば、出力部４０３は、割込専用バス１０１０を介して、他のデバイスＤｊに対する実行要求を他の割込要求処理装置Ｍｊに出力する。また、受付部４０１は、割込専用バス１０１０を介して、デバイスＤｉに対する実行要求を他の割込要求処理装置Ｍｊから受け付ける。
【０１０６】
また、割込要求処理装置Ｍｉは、割込専用バス１０１０を介して、割込コントローラ２０４と相互に通信を行う。具体的には、例えば、出力部４０３は、割込専用バス１０１０を介して、ＣＰＵ２０１に対するデバイスＤｉからの割込み要求を割込コントローラ２０４に出力する。
【０１０７】
以上説明したように、実施の形態３にかかるコンピュータシステム１０００によれば、バス２１０とは異なる割込専用バス１０１０を介して、割込要求処理装置Ｍｉ，Ｍｊ間の通信を行うことができる。これにより、割込要求処理装置Ｍｉ，Ｍｊ間の通信によりバス２１０の帯域が圧迫されることを避けて、バス２１０のスループットの低下を防ぐことができる。また、割込要求処理装置Ｍｉ，Ｍｊ間の通信プロトコルを、バス２１０の通信プロトコルに合わせる必要がないため、システム設計者の手間を削減することができる。
【０１０８】
本実施の形態で説明した割込要求処理装置Ｍｉは、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した割込要求処理装置Ｍｉの機能（受付部４０１〜ＩＤ判定部４０６）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、割込要求処理装置Ｍｉを製造することができる。
【０１０９】
また、割込要求処理装置Ｍｉの各機能部（受付部４０１〜ＩＤ判定部４０６）は、例えば、ＲＯＭ２０２やＲＡＭ２０３などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、その機能を実現することにしてもよい。なお、本実施の形態で説明した割込要求処理方法は、各機能部（受付部４０１〜ＩＤ判定部４０６）を有するパーソナル・コンピュータやワークステーション等のコンピュータにより実現することができる。
【符号の説明】
【０１１０】
１００，２００，１０００  コンピュータシステム
１０１，２０１  ＣＰＵ
１１０，２１０  バス
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  割込コントローラ
４０１  受付部
４０２  判断部
４０３  出力部
４０４  カウンタ
４０５  回数判定部
４０６  ＩＤ判定部
１０１０  割込専用バス
Ｄ，Ｄ１〜Ｄｎ  デバイス
Ｍ，Ｍ１〜Ｍｎ  割込要求処理装置
【図１】
0005644197.tif 000002
【図２】
0005644197.tif 000003
【図３】
0005644197.tif 000004
【図４】
0005644197.tif 000005
【図５】
0005644197.tif 000006
【図６】
0005644197.tif 000007
【図７】
0005644197.tif 000008
【図８】
0005644197.tif 000009
【図９】
0005644197.tif 000010
【図１０】
0005644197.tif 000011