(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムが搭載されているマスタプロセッサと、
前記マスタプロセッサの指示に基づいて動作するスレーブプロセッサと、
複数の周辺内蔵回路と、
外部もしくは前記周辺内蔵回路からの割込み要求を受信する割込みコントローラとを有し、
前記割込み要求に基づいたタスク処理を前記マスタプロセッサあるいは前記スレーブプロセッサが分担して処理するマルチプロセッサシステムであって、
前記マスタプロセッサが優先度の高い割込み処理を実行している状態で、優先度の低い割込み処理の要求が起きた場合に、前記割込みコントローラは、プロセッサ間割込みを通じて、前記マスタプロセッサの処理を中断し、優先度の低い割込み処理を前記スレーブプロセッサに割り振り、
前記プロセッサ間割込みがマスク可能な割込みの中で最も優先順位が高い優先レベルであることを特徴とするマルチプロセッサシステム。
【請求項２】
請求項１記載のマルチプロセッサシステムにおいて、
さらに、プロセッサ間割込み制御レジスタを有し、
前記割込みコントローラは、前記マスタプロセッサ及び前記スレーブプロセッサのいずれのプロセッサにおいても処理実行待ちの状態で、割込み要求が起きた場合には、前記プロセッサ間割込み制御レジスタ内の情報をもとに、前記マスタプロセッサから前記スレーブプロセッサへの割込み要求を出力することを特徴とするマルチプロセッサシステム。
【請求項３】
請求項１記載のマルチプロセッサシステムにおいて、
前記割込みコントローラは、マスタプロセッサ用プロセッサ間割込み許可禁止判定回路を有し、前記マスタプロセッサが優先度の高い割込み処理を、前記スレーブプロセッサが優先度の低い割込み処理をそれぞれ並行して実行後、前記スレーブプロセッサの割込み処理が終了した場合に、前記マスタプロセッサ用プロセッサ間割込み許可禁止判定回路で他の割込み要求の有無を判定し、その結果にしたがって前記スレーブプロセッサから前記マスタプロセッサへの割込み要求の出力が決定されることを特徴とするマルチプロセッサシステム。
【請求項４】
請求項２記載のマルチプロセッサシステムにおいて、
前記プロセッサ間割込み制御レジスタに保持しているプロセッサ間割込み許可を禁止するビットは、前記マスタプロセッサ用プロセッサ間割込み許可禁止判定回路の判定結果にしたがって更新されることを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関し、特にオペレーティングシステム（以下、「ＯＳ」という。）が搭載されているマスタプロセッサと、スレーブプロセッサなどからなる非対称型マルチプロセッサの割込み制御部の構成に適用して有効な技術に関する。
【背景技術】
【０００２】
本発明者が検討した技術として、例えば、マルチプロセッサシステムにおいては、以下の技術が考えられる。
【０００３】
従来の組込み用途向けマイクロプロセッサの分野では、動作周波数の向上と論理方式の改善により性能向上と低電力化の両立を実現してきていた。しかし、プロセッサの高周波数化が進む一方で、動作時電力の増加、またリーク電流に起因する待機時電力の増加により、従来までの消費電力を抑制しつつかつ更に動作周波数を向上させることにも限界が見え始めている。このような事情から、現在、情報処理装置の性能改善と低電力化を実現する手段として、従来のプロセッサを複数個オンチップで搭載し、処理を並列で行うことによって、動作周波数を向上させなくとも、高い演算性能を得ることが可能なマルチプロセッサシステムが有望となっている。
【０００４】
マルチプロセッサシステムでは、ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｌｅ  Ｐｒｏｃｅｓｓｏｒ）とＡＳＭＰ（Ａｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｌｅ  Ｐｒｏｃｅｓｓｏｒ）に分けられる。ＳＭＰは、複数のプロセッサが一つのＯＳと一つのメモリを共有する形態を有する対称型マルチプロセッサのことであり、複数搭載されたプロセッサは同等なものとして扱われ、任意のプロセッサで汎用的な処理を実行する。ＳＭＰは、汎用的な性能向上が実現できるため、ハイエンドサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの分野に適用されているが、ＳＭＰ対応のＯＳの割込み応答時間が長いため、高いリアルタイム性能を要求する組込み用途向けマイクロプロセッサの分野には不向きであった。
【０００５】
一方、ＡＳＭＰは、個々のプロセッサがメモリやＯＳを持つことが可能な形態を有する非対称型マルチプロセッサのことであり、複数搭載されたプロセッサがそれぞれ特定の役割を担って動作する。ＡＳＭＰでは、既存のソフト資産の流用、あるいは開発工数の削減のため、主に組込み用途向けマイクロプロセッサで適用されている。しかしながら、個々のプロセッサにＯＳを搭載すると、各々のＯＳ処理用にメモリ領域を確保する必要があり、その分コストが増加していた。そのため、一つのＯＳが搭載されたＡＳＭＰ構成として、ＯＳが搭載されたマスタプロセッサとＯＳが搭載されていないスレーブプロセッサを備えたマスタスレーブ構成をとることで、更なる低コストのマルチプロセッサシステムを提供することが可能である。
【０００６】
このようなマスタスレーブ構成のマルチプロセッサシステムを、高いリアルタイム性能が要求される組込み機器制御分野に適用するには、各プロセッサに効率よく割込み処理を分担させる仕組みが必要となる。従来のマスタスレーブ構成のマルチプロセッサシステムにおいては、マスタプロセッサでは時系列処理を、非マスタプロセッサでは時系列でないものを処理するように、割込み要求を分配する方法が、例えば、以下の特許文献１に開示されている。
【特許文献１】特開２０００−３０５９１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前記のようなマルチプロセッサシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００８】
前記背景技術で述べた特許文献１では、割込み要求を出力する周辺内蔵回路が自ら、割込み処理をするプロセッサについて、マスタプロセッサあるいはそれ以外のプロセッサを指定し、それに対応する信号を割込みコントローラに出力している。そのため、割込みコントローラは、プロセッサの負荷状態には関係なく、割込み要求を出力する周辺内蔵回路の指図どおり割込み処理を割り振っている。したがって、各プロセッサの動作状況を考慮しないで割込み処理を分担するため、効率良く割込み処理を分担することは難しくなる。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
すなわち、本発明によるマルチプロセッサシステムは、ＯＳが搭載されているマスタプロセッサと、前記マスタプロセッサの指示に基づいて動作するスレーブプロセッサと、複数の周辺内蔵回路と、プロセッサ間割込みを要求するあるいはプロセッサ間割込み許可を禁止するという情報を保持するプロセッサ間割込み制御レジスタと、外部もしくは前記周辺内蔵回路からの割込み要求の処理優先順位を判定した後、前記マスタプロセッサもしくは前記スレーブプロセッサへ割込み要求を出力制御する割込みコントローラとを有し、前記割込み要求に基づいたタスク処理を前記マスタプロセッサあるいは前記スレーブプロセッサが分担して処理するものであって、前記割込みコントローラは、前記マスタプロセッサから前記スレーブプロセッサへの割込み要求を出力するためのスレーブプロセッサ用プロセッサ間割込み要求制御回路と、前記スレーブプロセッサから前記マスタプロセッサへの割込み要求を出力するためのマスタプロセッサ用プロセッサ間割込み要求制御回路とを有し、前記マスタプロセッサ及び前記スレーブプロセッサで並行して割込み処理を行わせるものである。
【００１２】
また、本発明によるマルチプロセッサシステムは、ＯＳが搭載されているマスタプロセッサと、前記マスタプロセッサの指示に基づいて動作するスレーブプロセッサとを有し、前記マスタプロセッサが優先度の高い割込み処理を、前記スレーブプロセッサが優先度の低い割込み処理をそれぞれ並行して実行後、前記スレーブプロセッサの前記割込み処理が終了した場合に、他の割込み要求が来ているか否かを判定し、その結果に従って前記スレーブプロセッサから前記マスタプロセッサへの割込み要求を出力するものである。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１４】
リアルタイム性の向上が実現できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
（実施の形態１）
図１１は本発明の実施の形態１によるマルチプロセッサシステムの構成を示すブロック図である。
【００１７】
まず、図１１により、本実施の形態１によるマルチプロセッサシステムの構成の一例を説明する。本実施の形態１のマルチプロセッサシステム１０は、例えば１つの半導体基板上に形成された半導体集積回路（ＬＳＩ）とされ、割込みコントローラ（ＩＮＴＣ）１、プロセッサ間割込み制御レジスタ（ＩＰＣＲ；Ｉｎｔｅｒｒｕｐｔ ａｍｏｎｇ Ｐｒｏｃｅｓｓｏｒｓ Ｃｏｎｔｒｏｌ Ｒｅｇｉｓｔｅｒ ）２、マスタプロセッサ（ＭＰ；Ｍａｓｔｅｒ Ｐｒｏｃｅｓｓｏｒ）３、スレーブプロセッサ（ＳＰ；Ｓｌａｖｅ Ｐｒｏｃｅｓｓｏｒ）４、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１１０１、内蔵周辺モジュール１１２１〜１１２ｎ、ＣＰＵバス１１１１，１１１２、内部バス１１１３、周辺バス１１１４、ＢＳＣなどから構成されている。割込みコントローラ１は、マスタプロセッサ３とスレーブプロセッサ４への割込み要求を制御する。
【００１８】
マスタプロセッサ３はＣＰＵバス１１１１に、スレーブプロセッサ４はＣＰＵバス１１１２にそれぞれ接続されている。また、プロセッサ間割込み制御レジスタ２は、ＩＮＴＣ１内に搭載されずに、ＣＰＵバス１１１１および１１１２に接続されている。なぜならば、ＩＮＴＣ１内に搭載された場合には、レジスタ設定時にプロセッサがＣＰＵバス、内部バス、周辺バスを介してＩＮＴＣ１内のレジスタへアクセスする必要があるため、レジスタを設定するまでのサイクル数が増加してしまうのに対して、ＣＰＵバス１１１１および１１１２に接続された場合には、レジスタ設定時にプロセッサがＣＰＵバスのみを介してレジスタへアクセスすることが可能なため、ＩＮＴＣ１内に搭載したときと比較して、レジスタを設定するまでのサイクル数が短縮できるからである。
【００１９】
ＩＮＴＣ１は、内部バス１１１３に比べ低速な動作を行うＩ/Ｏ（入出力装置）などの内蔵周辺モジュール１１２１〜１１２ｎとともに、周辺バス１１１４に接続されている。
【００２０】
次に、本実施の形態１によるマルチプロセッサシステムにおける割込み動作の概要を説明する。図１１に示すように、内蔵周辺モジュール１１２１〜１１２ｎやダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１１０１あるいは、外部端子１１３１など複数の割込み発生要因元からの割込み要求をＩＮＴＣ１が受け取り、そのＩＮＴＣ１が割り込み発生要因元から受けた割込み要求から、あらかじめＩＮＴＣ内のレジスタあるいはプロセッサ間割込み制御レジスタ２に設定した規則にしたがって、最も優先順位の高い要求を選択し、マスタプロセッサ３には割込み信号線１１４１を通じて、スレーブプロセッサ４には割込み信号線１１４２を通じてそれぞれ通知される。
【００２１】
図１は本実施の形態１のマルチプロセッサシステムにおいて、割込みコントローラ部分の詳細構成を示すブロック図である。本実施の形態１に係るマルチプロセッサシステム１０における割込みコントローラ（ＩＮＴＣ）１は、例えば、マスタプロセッサ用プロセッサ間割込み要求制御回路（ＩＰＲＣＬＭＰ；Ｉｎｔｅｒｒｕｐｔ ａｍｏｎｇ Ｐｒｏｃｅｓｓｏｒｓ Ｒｅｑｕｅｓｔ Ｃｏｎｔｒｏｌ Ｌｏｇｉｃ ｆｏｒ Ｍａｓｔｅｒ Ｐｒｏｃｅｓｓｏｒ）１００、スレーブプロセッサ用プロセッサ間割込み要求制御回路（ＩＰＲＣＬＳＰ；Ｉｎｔｅｒｒｕｐｔ ａｍｏｎｇ Ｐｒｏｃｅｓｓｏｒｓ Ｒｅｑｕｅｓｔ Ｃｏｎｔｒｏｌ Ｌｏｇｉｃ ｆｏｒ Ｓｌａｖｅ Ｐｒｏｃｅｓｓｏｒ）１０１、マスタプロセッサ用割込み制御レジスタ（ＩＣＲＭＰ；Ｉｎｔｅｒｒｕｐｔ Ｃｏｎｔｒｏｌ Ｒｅｇｉｓｔｅｒ ｆｏｒ Ｍａｓｔｅｒ Ｐｒｏｃｅｓｓｏｒ）１６０、スレーブプロセッサ用割込み制御レジスタ（ＩＣＲＳＰ；Ｉｎｔｅｒｒｕｐｔ Ｃｏｎｔｒｏｌ Ｒｅｇｉｓｔｅｒ ｆｏｒ Ｓｌａｖｅ Ｐｒｏｃｅｓｓｏｒ）１６１、優先順位判定回路（ＰＲＪＬ；Ｐｒｉｏｒｉｔｙ Ｒａｎｋｉｎｇ Ｊｕｄｇｍｅｎｔ Ｌｏｇｉｃ）１７０，１７１、比較器１８０，１８１などから構成されている。また、プロセッサ間割込み制御レジスタ（ＩＰＣＲ）２は、マスタプロセッサ用プロセッサ間割込み制御レジスタ（ＩＰＣＲＭＰ；Ｉｎｔｅｒｒｕｐｔ ａｍｏｎｇ Ｐｒｏｃｅｓｓｏｒｓ Ｃｏｎｔｒｏｌ Ｒｅｇｉｓｔｅｒ ｆｏｒ Ｍａｓｔｅｒ Ｐｒｏｃｅｓｓｏｒ）２０とスレーブプロセッサ用プロセッサ間割込み制御レジスタ（ＩＰＣＲＳＰ；Ｉｎｔｅｒｒｕｐｔ ａｍｏｎｇ Ｐｒｏｃｅｓｓｏｒｓ Ｃｏｎｔｒｏｌ Ｒｅｇｉｓｔｅｒ ｆｏｒ Ｓｌａｖｅ Ｐｒｏｃｅｓｓｏｒ）２１を持ち、プロセッサ間の割込み要求に関する情報を保持している。また、マスタプロセッサ（ＭＰ）３は割込みマスクビット（ＩＭＳＫＢ；Ｉｎｔｅｒｒｕｐｔ ＭａＳＫ Ｂｉｔ）３０を備え、スレーブプロセッサ（ＳＰ）４は割込みマスクビット（ＩＭＳＫＢ）４０を備えている。
【００２２】
図３に、本実施の形態１に係るプロセッサ間割込み制御レジスタ（ＩＰＣＲ）２の詳細構成を示す。また、図１２に、プロセッサ間割込み制御レジスタ２に配置したビットの詳細仕様を示す。
【００２３】
プロセッサ間割込み制御レジスタ２には、マスタプロセッサ用、スレーブプロセッサ用それぞれに対して、１ビットのビットＢ１とＢ２を指定する領域を有している。図３の例を挙げると、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０は、Ｂ１ビット２０１とＢ２ビット２０２を、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１では、Ｂ１ビット２１１とＢ２ビット２１２をそれぞれ有している。
【００２４】
Ｂ１ビットは、プロセッサ間割込みの要求の有無の機能を備えており、例えば、信号値が”１”のときはプロセッサ間割込みの要求があることを、”０”のときはプロセッサ間割込みの要求がないことを示す。
【００２５】
一方、Ｂ２ビットは、プロセッサ間割込み許可の禁止有無の機能を備えており、例えば、信号値が”１”のときは、プロセッサ間割込み許可を禁止することを、”０”のときは、プロセッサ間割込み許可を禁止しないことを示す。以上の仕様から、例えば、マスタプロセッサ３からスレーブプロセッサ４へのプロセッサ間割込みを要求するには、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１のＢ１ビット２１１を”１”に、Ｂ２ビット２１２を”０”に設定すれば良い。
【００２６】
マスタプロセッサ３とスレーブプロセッサ４は、それぞれ割込みマスクビット３０と４０を備えており、この割込みマスクビットと比較して割込みレベルが高い場合に、割込み処理を実行する。
【００２７】
スレーブプロセッサ４は、マスタプロセッサ３からの指示された処理に基づいて実行するため、マスタプロセッサ３からのプロセッサ間割込みで起動を行う。
【００２８】
ＩＮＴＣ１は、マスタプロセッサ３に割込み要求を出力するために、複数の割込み要求元から要求された割込みの中から優先度の一番高い割込みを選択する優先順位判定回路１７０と、その優先順位を決定するために必要な情報を保持しているマスタプロセッサ用割込み制御レジスタ１６０と、優先順位判定回路１７０から選択された優先度の一番高い割込みのレベルとマスタプロセッサ３内の割込みマスクビット３０とを比較する比較器１８０を備えている。この割込みマスクビット３０と比較して要求された割込みレベルが高い場合に、マスタプロセッサ３に割込みを要求することができる。
【００２９】
また同様に、スレーブプロセッサ４に割込み要求を出力するために、複数の割込み要求元から要求された割込みのなかから優先度の一番高い割込みを選択する優先順位判定回路１７１と、その優先順位を決定するために必要な情報を保持しているスレーブプロセッサ用割込み制御レジスタ１６１と、優先順位判定回路１７１から選択された優先度の一番高い割込みのレベルとスレーブプロセッサ４内の割込みマスクビット４０とを比較する比較器１８１を備えている。この割込みマスクビット４０と比較して要求された割込みレベルが高い場合に、スレーブプロセッサ４に割込みを要求することができる。
【００３０】
マスタプロセッサ３とスレーブプロセッサ４での処理の割り振りについては、プロセッサ間割込みを通じて行われる。スレーブプロセッサ４からマスタプロセッサ３への割込みについては、マスタプロセッサ用のプロセッサ間割込み制御レジスタ２０のレジスタ情報を参照して、マスタプロセッサ用プロセッサ間割込み要求制御回路１００が制御し、優先順位判定回路１７０にプロセッサ間割込み要求信号を出力する。一方、マスタプロセッサ３からスレーブプロセッサ４への割込みについては、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１のレジスタ情報を参照して、スレーブプロセッサ用プロセッサ間割込み要求制御回路１０１が制御し、優先順位判定回路１７１にプロセッサ間割込み要求信号を出力する。
【００３１】
次に、図４を用いて、本実施の形態１に係るマスタスレーブ構成のマルチプロセッサシステムにおいて、割込みが要求されてからその割込みに対応したタスク実行までの処理に関する動作フローについて説明する。
【００３２】
まず、タスクに対応した割込み要求元からＩＮＴＣ１内のマスタ用優先順位判定回路１７０に割込み要求信号が送られる（図４のステップＳ３０１）。マスタ用優先順位判定回路１７０では、送られた割込み要求信号の割込みレベルが、マスタプロセッサ用割込み制御レジスタ１６０にしたがって優先順位が一番高いか否かを判定する（図４のステップＳ３０２）。優先順位が一番高くない場合は、割込み処理は行われず、通常のプログラムの実行処理を行い、優先順位が一番高い場合は、マスタ用優先順位判定回路１７０がタスクに対応した割込みレベルをそれぞれ比較器１８０とスレーブ用優先順位判定回路１７１に出力する（図４のステップＳ３０３）。
【００３３】
比較器１８０では、マスタ用優先順位判定回路１７０で選択された割込みの優先レベルとマスタプロセッサ３の割込みマスクビット３０とを比較する（図４のステップＳ３０４）。前記選択された割込みの優先レベルがマスタプロセッサ３の割込みマスクビット３０より高くない場合は、割込み処理は行われず、通常のプログラムの実行処理を行い、高い場合は、マスタプロセッサへ割込み要求信号が出力される（図４のステップＳ３０５）。割込み要求信号を受けたマスタプロセッサ３は、搭載されているＯＳに通知し、その通知を受けてＯＳがタスクを起動する（図４のステップＳ３０６）。その後、起動したタスクがＯＳのスケジューリングキューに積まれているタスクの中で優先順位が一番高いか否かを判定する。（図４の３２０）。優先順位が一番高くない場合は、起動したタスクをスケジューリングキューに積む（図４のステップＳ３２２）。一方、優先順位が一番高い場合は、各プロセッサで実行中のタスク及び起動したタスクの優先度判定を行う（図４のステップＳ３２１）。
【００３４】
この優先度判定の条件を図１３に示す。判定条件の基本方針は、次の３点である。（１）マスタプロセッサ３あるいはスレーブプロセッサ４がタスクを実行していない場合は、実行していないプロセッサに起動タスクを実行させる。なお、マスタプロセッサ３とスレーブプロセッサ４の両プロセッサとも、タスクが実行していない場合は、スレーブプロセッサに起動タスクを実行させる。（２）マスタプロセッサ３とスレーブプロセッサ４がともにタスクを実行している場合は、マスタプロセッサ３とスレーブプロセッサ４のうち一番優先度の低いタスク処理を行っているプロセッサに、起動したタスクを実行させる。（３）起動したタスクの優先度が、各プロセッサで実行中のタスクの優先度と比較していずれも低い場合には、起動したタスクは、ＯＳのスケジューリングキューに積まれる。
【００３５】
以上の方針に基づいて、図１３の起動タスクとマスタプロセッサ３の実行中のタスクとスレーブプロセッサ４の実行中のタスクの計３つのタスクの優先度に応じて、起動したタスク処理のマスタプロセッサ３での実行、あるいはスレーブプロセッサ４での実行、あるいはスケジューリングキューへの格納、を行う。起動したタスク処理がマスタプロセッサ３で実行すると判定した場合には、マスタプロセッサ３が起動したタスク処理を実行する（図４のステップＳ３３０）。起動したタスク処理をスレーブプロセッサ４で実行すると判定した場合は、マスタプロセッサ４のＯＳが、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１のＢ１ビット２１１を”１”に、Ｂ２ビット２１２を”０”に設定し（図４のステップＳ３０８）、スレーブプロセッサ用プロセッサ間割込み要求制御回路１０１からスレーブ用優先順位判定回路１７１にプロセッサ間割込み要求信号を送る（図４のステップＳ３０９）。
【００３６】
スレーブ用優先順位判定回路１７１では、送られた割込み要求信号の割込みレベルが、スレーブプロセッサ用割込み制御レジスタ１６１にしたがって優先順位が一番高いか否かを判定する（図４のステップＳ３１０）。優先順位が一番高くない場合は、割込み処理は行われず、受付待ちとなりステップＳ３０９に戻る。優先順位が一番高い場合は、スレーブ用優先順位判定回路１７１が、タスクに対応した割込みレベルをそれぞれ比較器１８１とマスタ用優先順位判定回路１７０に出力する（図４のステップＳ３１１）。
【００３７】
比較器１８１では、スレーブ用優先順位判定回路１７１で選択された割込みの優先レベルとスレーブプロセッサ４の割込みマスクビット４０とを比較する（図４のステップＳ３１２）。前記選択された割込みの優先レベルがスレーブプロセッサ４の割込みマスクビット４０より高くない場合は、割込み処理は行われず受付待ちとなり、ステップＳ３０９に戻る。一方、高い場合は、スレーブプロセッサ４へ割込み要求信号を出力し（図４のステップＳ３１３）、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１のＢ１ビット２１１を”０”にクリアする（図４のステップＳ３１４）。以上の過程を経てスレーブプロセッサ４がタスクを実行する（図４のステップＳ３４０）。
【００３８】
次に、図５を用いて、本実施の形態１に係るマスタスレーブ構成のマルチプロセッサシステムにおいて、割込みに対応したタスク実行からＯＳがタスクを終了し、再スケジューリングを実施するまでの処理に関する動作フローについて説明する。
【００３９】
まず、マスタプロセッサ３に関して説明する。マスタプロセッサ３がタスク実行を終了した後、ＯＳがタスクを終了する（図５のステップＳ３３０、Ｓ３３１）。その後、再スケジューリングを実施し、以降に処理するタスクの処理順番を管理する（図５のステップＳ３６０）。
【００４０】
続いて、スレーブプロセッサ４に関して説明する。スレーブプロセッサ４がタスク実行を終了する直前に、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ１ビット２０１を”１”に、Ｂ２ビット２０２を”０”に設定する（図５のステップＳ３４１）。その後、スレーブプロセッサ４がタスク実行を終了し（図５のステップＳ３４２）、ＯＳのタスク終了処理を行うためにスレーブプロセッサ４からマスタプロセッサ３に割込みを要求する。具体的には、マスタプロセッサ用プロセッサ間割込み要求制御回路１００からマスタ用優先順位判定回路１７０にプロセッサ間割込み要求信号を送る（図５のステップＳ３４３）。
【００４１】
マスタ用優先順位判定回路１７０では、送られた割込み要求信号の割込みレベルが、マスタプロセッサ用割込み制御レジスタ１６０にしたがって優先順位が一番高いか判定する（図５のステップＳ３４４）。優先順位が一番高くない場合は、割込み処理は行われず受付待ちとなり、ステップＳ３４３に戻る。優先順位が一番高い場合は、マスタ用優先順位判定回路１７０がタスクに対応した割込みレベルを比較器１８０に出力する（図５のステップＳ３４５）。
【００４２】
比較器１８０では、マスタ用優先順位判定回路１７０で選択された割込みの優先レベルとマスタプロセッサ３の割込みマスクビット３０とを比較する（図５のステップＳ３４６）。前記選択された割込みの優先レベルがマスタプロセッサの割込みマスクビット３０より高くない場合は、割込み処理は行われず受付待ちとなり、ステップＳ３４３に戻る。一方、高い場合は、マスタプロセッサ３へ割込み要求信号を出力し（図５のステップＳ３４７）、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ１ビット２０１を”０”にクリアする（図５のステップＳ３４８）。以上の過程を経て、ＯＳがタスクを終了し、再スケジューリングを実施し、以降に処理するタスクの処理順番を管理する（図５のステップＳ３６０）。
【００４３】
図６を用いて、本実施の形態１に係るマスタスレーブ構成における割込み分担処理の流れを説明する。図６では、タスクの優先順位に関して、タスクＡが一番高いとし、次いでタスクＢ，タスクＣの優先順位とする。また、スレーブプロセッサ４は起動していない状態から開始すると仮定する。
【００４４】
まず、タスクＢに対応する割込み要求４９０がＩＮＴＣ１に要求される。その後、４４０で、図４のステップＳ３０２からステップＳ３０５の動作フローに従って、優先順位判定を行い、マスタプロセッサ３へタスクＢに対応する割込み要求を出力する。４１０で、図４のステップＳ３０６の動作フローにしたがって、マスタプロセッサ３が割込み要求を受け、マスタプロセッサ３に搭載されているＯＳがタスクＢの起動を行う。その後、スレーブプロセッサが起動していないことから、図４のステップＳ３２０からステップＳ３０８の動作フローにしたがって、タスクＢの処理の分担をスレーブプロセッサ４に割り振ることに決定し、スレーブプロセッサ４へのプロセッサ間割込みの設定を行う。ＩＮＴＣ１は、４４１で、図４のステップＳ３０９からステップＳ３１４の動作フローに従って、スレーブプロセッサ４へのプロセッサ間割込みをスレーブプロセッサ４へ要求する。そして、４００で、スレーブプロセッサ４がタスクＢを実行する。
【００４５】
スレーブプロセッサ４がタスクＢを実行中に、タスクＡに対応する割込み要求４９１がＩＮＴＣ１に要求される。その後、４４３で、図４のステップＳ３０２から３０５の動作フローに従って、優先順位判定を行い、タスクＡは先のタスクＢより優先順位が高いことからマスタプロセッサ３へタスクＡに対応する割込み要求を出力する。４１２で、図４のステップＳ３０６の動作フローにしたがって、マスタプロセッサ３が割込み要求を受け、マスタプロセッサ３に搭載されているＯＳがタスクＡの起動を行う。その後、マスタプロセッサ３が起動していないことから、図４のステップＳ３２０〜Ｓ３３０の動作フローに従い、タスクＡの処理の分担をマスタプロセッサ３に割り振ることに決定し、４２０で、マスタプロセッサ３がタスクＡを実行する。マスタプロセッサ３がタスクＡを実行中に、スレーブプロセッサ４が処理していたタスクＢの実行が終了した場合には、図５のステップＳ３４１からステップＳ３４３の動作フローにしたがって、スレーブプロセッサ４からマスタプロセッサ３へのプロセッサ間割込みを要求するが、その後、図５のステップＳ３４４により、タスクＢがタスクＡより優先順位が低いために、図５のステップＳ３４５以降のステップへ進まず、割込み要求待ち４５０の状態となる。この４５０の状態は、マスタプロセッサ３がタスクＡを終了し、４１３でのＯＳのタスクＡ終了処理と再スケジューリングの実施後まで続く。更に、タスクＡの実行中に、タスクＡよりも優先度の低いタスクＣに対応する割込み４９２が発生しても、タスクＣに対する割込み要求は待たされる。タスクＡが終了すると、タスクＢの優先順位が一番高くなるため、図５のステップＳ３４５以降のステップに進むことができる。図５のステップＳ３４８までの動作フローにしたがって、４４２でタスクＢの終了をマスタプロセッサ３に搭載しているＯＳに通知するため、スレーブプロセッサ４からマスタプロセッサ３へプロセッサ間割込みを要求する。そして、４１１でＯＳのタスクＢの終了処理と再スケジューリングの実施を行う。その後は、他に割込み要求を待たされていたタスクＣについて、空いているスレーブプロセッサ４にて処理を実行する。
【００４６】
以上のようにして、マスタプロセッサ３とスレーブプロセッサ４が並行して割込み処理を分担して実行することが可能となる。しかし、スレーブプロセッサ４と比較してマスタプロセッサ３が優先度の高いタスク処理を行った場合に、スレーブプロセッサ４が早くタスク処理を終了しても、割込み要求が待たされることになり、割込み処理のリアルタイム性の向上が期待できない虞がある。また、スレーブプロセッサ４が早くタスク処理を終了できない場合は、すぐにスレーブプロセッサ４に処理を実行することができないため、マスタプロセッサ３とスレーブプロセッサ４が並行して割込み処理の分担実行が可能であるにもかかわらず、その構成を十分に生かしきれていない。まだ改善の余地があると考える。
【００４７】
そこで、プロセッサ間割込みの優先レベルについて、スレーブプロセッサ４に割り振るタスクの優先レベルではなく、一意的にマスク可能な割込みの中で一番高い優先レベルに設定した。そのときのマスタスレーブ構成における割込み分担処理の流れに関して図７を用いて説明する。このときの構成を示すブロック図は図１と、また動作フローの流れは図４及び図５と同じである。なお、図７では、タスクの優先順位に関して、タスクＡを一番高い優先順位とし、次いでタスクＢ，タスクＣの優先順位とする。また、スレーブプロセッサは起動していない状態から開始すると仮定する。更に図７において、図６と同じ符号は同一部分を示す。図６における同一部分については、重複した説明は省略し、図６と異なる部分である４００の終了以降から説明する。
【００４８】
マスタプロセッサ３がタスクＡを実行中に、スレーブプロセッサ４が処理していたタスクＢの実行が終了した場合には、図５のステップＳ３４１からステップＳ３４３の動作フォローにしたがって、スレーブプロセッサ４からマスタプロセッサ３へのプロセッサ間割込みを要求する。その後、図５のステップＳ３４４により、プロセッサ間割込みは、マスク可能な割込みの中で一番優先順位が高いので、図５のステップＳ３４５以降のステップに進むことができる。図５のステップＳ３４８までの動作フローにしたがって、４４２でタスクＢの終了をマスタプロセッサ３に搭載しているＯＳに通知するため、スレーブプロセッサ４からマスタプロセッサ３へプロセッサ間割込みを要求する。そして、４１１でマスタプロセッサ３は、プロセッサ間割込みを受け付け、タスクＡの実行を中断し、ＯＳがタスクＢの終了処理と再スケジューリングの実施を行う。４１１が終了した後に、マスタプロセッサ３は中断していたタスクＡの実行を再開する。その後、マスタプロセッサ３がタスクＡを終了し、４１３でのＯＳのタスクＡの終了処理と再スケジューリングの実施を行う。しかし相変わらず、タスクＡの実行中に、タスクＡよりも優先度の低いタスクＣに対する割込み４９２が発生しても、タスクＣに対する割込み要求は待たされる。タスクＡが終了した後に、割込み要求を待たされていたタスクＣについて、空いているスレーブプロセッサ４に処理を実行する。
【００４９】
以上により、プロセッサ間割込みの優先順位を、マスク可能な割込みのうち最も高い設定にすることで、マスタプロセッサ３が優先順位の高いタスク処理を実行していても、容易にプロセッサ間割込みを受け付けることが可能となる。その結果、マスタプロセッサ３のタスク処理の実行と並行して４４２のプロセッサ間割込み要求処理が行えることで、その分、タスクＣに対応した割込みの処理時間を若干早めることができ、全体の割込み処理時間の短縮が見込まれる。
【００５０】
しかし、依然として、図７のとおりに、スレーブプロセッサ４が処理待ちの状態にもかかわらず、タスクＣに対応した割込みの要求が待たされており、マスタプロセッサ３とスレーブプロセッサ４に効率的に割込み処理を分担する点では、改善の余地が残る。
【００５１】
（実施の形態２）
図２は、本発明の実施の形態２によるマルチプロセッサシステムにおいて、割込みコントローラ部分の詳細構成を示すブロック図である。図２において、図１と同じ符号は同一部分を示す。なお、本発明の実施の形態２によるマルチプロセッサシステムの構成の一例として、図１１と同じ構成が考えられる。
【００５２】
本発明の実施の形態２に係る割込みコントローラ（ＩＮＴＣ）１ａは、図１の前記実施の形態１に係る割込みコントローラ１と比較して、マスタプロセッサ用プロセッサ間割込み許可禁止判定回路１１０が追加されている。
【００５３】
マスタプロセッサ３と、スレーブプロセッサ４と、ＩＮＴＣ１と、プロセッサ間割込み制御レジスタ２と、マスタプロセッサ用割込み制御レジスタ１６０と、スレーブプロセッサ用割込み制御レジスタ１６１と、優先順位判定回路１７０，１７１と、比較器１８０，１８１と、マスタプロセッサ用プロセッサ間割込み要求制御回路１００と、スレーブプロセッサ用プロセッサ間割込み要求制御回路１０１とは、図１における同一名称の部分と同一の機能を有するもので、重複した説明は省略する。
【００５４】
マスタプロセッサ用プロセッサ間割込み許可禁止判定回路（ＩＰＤＪＬＭＰ；Ｉｎｔｅｒｒｕｐｔ ａｍｏｎｇ Ｐｒｏｃｅｓｓｏｒｓ Ｄｉｓａｂｌｅ Ｊｕｄｇｍｅｎｔ Ｌｏｇｉｃ ｆｏｒ Ｍａｓｔｅｒ Ｐｒｏｃｅｓｓｏｒ）１１０は、マスタプロセッサ用プロセッサ間割込み要求制御回路１００から出力される、スレーブプロセッサ４からマスタプロセッサ３へのプロセッサ間割込み要求信号と、マスタ用優先順位判定回路１７０から出力される他の割込み要求待ち検出信号をもとに、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ２ビット２０２を更新する。具体的には、スレーブプロセッサ４からマスタプロセッサ３へのプロセッサ間割込み要求が出力され、かつ他の割込み要求待ち検出信号が出力されないときに、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ２ビット２０２を“１”に更新し、それ以外の条件では“０”に更新する。
【００５５】
図１０に、本実施の形態２に係るプロセッサ間割込み制御レジスタ２の詳細構成を示す。また、図１４に、そのプロセッサ間割込み制御レジスタ２に配置したビットの詳細仕様を示す。図１０において、図３と同じ名称・符号の部分は同一の機能を有するので、重複した説明は省略する。プロセッサ間割込み制御レジスタ２には、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１のそれぞれに対して、Ｂ３を指定する領域を有している。図３の例を挙げると、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０は、Ｂ１ビット２０１とＢ２ビット２０２に加え、Ｂ３ビット２０３を、スレーブプロセッサ用プロセッサ間割込み制御レジスタ２１では、Ｂ１ビット２１１とＢ２ビット２１２に加え、Ｂ３ビット２１３をそれぞれ有している。
【００５６】
Ｂ３ビットは、プロセッサ間割込みの優先レベルであり、任意に割り込みの優先レベルを変更することが可能である。
【００５７】
次に、図８を用いて、本実施の形態２に係るマスタスレーブ構成のマルチプロセッサシステムにおいて、割込みに対応したタスク実行からＯＳがタスクを終了し、再スケジューリングを実施し、更に他の割込み要求待ちが有る場合には、タスク起動までの処理に関する動作フローについて説明する。図８において、図６と同じ符号は同一部分を示す。図６における同一部分については、重複した説明は省略し、図６と異なる部分であるスレーブプロセッサに関する動作フローについて説明する。なお、割込みが要求されてから、その割込みに対応したタスク実行までの処理に関する動作フローについては図５と同一である。
【００５８】
スレーブプロセッサ４がタスク実行を終了する直前に、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ１ビット２０１を”１”に設定する（図８のステップＳ３５１）。その後、スレーブプロセッサ４がタスク実行を終了する（図８のステップＳ３４２）。その後、他の割込み要求が存在しているか調べ（図８のステップＳ３５２）、存在していない場合は、マスタプロセッサ用プロセッサ間割込み許可禁止判定回路１１０が、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ２ビット２０２を”１”に設定することで割込み処理は行われず受付待ちとなり、ステップＳ３５２に戻る（図８のステップＳ３５４）。存在する場合は、マスタプロセッサ用プロセッサ間割込み許可禁止判定回路１１０が、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ２ビット２０２を”０”に設定することで（図８のステップＳ３５３）、マスタプロセッサ用プロセッサ間割込み要求制御回路１００が、プロセッサ間割込み要求信号をマスタ用優先順位判定回路１７０に出力する（図８のステップＳ３４３）。
【００５９】
その後、図８のステップＳ３４４〜Ｓ３４７を経て、ＯＳがタスクを終了し、再スケジューリングを実施し、以降に処理するタスクの処理順番を管理する（図８のステップＳ３６０）。なお、プロセッサ間割込みの優先レベルについては、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ３ビット２０３の情報により、優先順位の高さを任意に決定することが可能である。
【００６０】
その後、他の割込み要求が存在しているか調べ（図８のステップＳ３７０）、存在していない場合は、ＯＳが、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ１ビット２０１を”０”に設定することで（図８のステップＳ３７１）、プロセッサ間割込み要求を取り下げる。一方、存在する場合は、プロセッサ間割込み要求信号がそのまま出力されているので、マスタプロセッサ用プロセッサ間割込み要求制御回路１００が、プロセッサ間割込み要求信号をマスタ用優先順位判定回路１７０に出力する（図８のステップＳ３８０）。
【００６１】
その後、図５と同様にしてステップＳ３４４〜Ｓ３４７を経て、ＯＳがタスクを起動し、ＯＳが、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ１ビット２０１を”０”に設定することで（図８のステップＳ３８５）、プロセッサ間割込み要求を取り下げた後、図４のステップＳ３２０以降に続く。
【００６２】
続いて図９を用いて、本実施の形態２に係るマスタスレーブ構成における割込み分担処理の流れを説明する。図９では、タスクの優先順位に関して、タスクＡを一番高い優先順位とし、次いでタスクＢ、タスクＣの優先順位とする。また、スレーブプロセッサは起動していない状態から開始すると仮定する。更に図９において、図６及び図７と同じ符号は同一部分を示す。図６及び図７と同じ部分については、重複した説明は省略し、図６及び図７と異なる部分である４００の終了以降から説明する。
【００６３】
マスタプロセッサ３がタスクＡを実行中に、スレーブプロセッサ４が処理していたタスクＢの実行が終了した場合には、図８のステップＳ３５１、Ｓ３４２の順の動作フォローにしたがって、スレーブプロセッサ４からマスタプロセッサ３へのプロセッサ間割込みを要求するが、その後、図８のステップＳ３５２により、他の割込み要求が存在していないため、図８のステップＳ３５３以降のステップへ進まず、図８のステップＳ３５４で、マスタプロセッサ３へのプロセッサ間割込みマスク信号を設定することにより、プロセッサ間割込みをマスクし、図８のステップＳ３５２に戻る。他の割込み要求が存在すると、４５１で図８のステップＳ３５３、ステップＳ３４３〜Ｓ３４７の順の動作フォローにしたがって、スレーブプロセッサ４からマスタプロセッサ３へのプロセッサ間割込みマスク信号を取り下げ、プロセッサ間割込み信号をマスタプロセッサ３へ要求する。
【００６４】
その後、４１１でＯＳのタスクＡ終了処理と再スケジューリングを実施する。それと並行して、他のタスクＣに対する割込み要求が存在するので、図８のステップＳ３８０以降のステップに進み、４４４で、タスクＣに対応したプロセッサ間割込み要求が出力される。なお、プロセッサ間割込み要求ビットがマスクされていないために、プロセッサ間割込み要求が出力されたままとなっている。また、タスクＣに関する優先レベルは、プロセッサ間割込み優先レベルに置き換わっているので、マスク可能な割込みで一番高い優先順位となっている。
【００６５】
その後は、図８のステップＳ３４４〜Ｓ３４７までの動作フローにしたがって、マスタプロセッサ３に再度プロセッサ間割込み要求を出力した後に、４１４でＯＳがタスクＣを起動し、プロセッサ間割込み要求ビットを取り下げる。以降は、図４のステップＳ３２０以降の動作フローにしたがって、空いているスレーブプロセッサにタスクＣの処理を実行する。
【００６６】
以上のようにして、スレーブプロセッサ４と比較してマスタプロセッサ３が優先度の高いタスク処理を行った場合に、他の優先度の低いタスク処理を実行するための割込み要求を待たせることがないため、全体の割込み処理時間の短縮が見込まれ、リアルタイム性の更なる向上が期待できる。なお、他の優先度の低いタスク処理に対応した割込み要求が起きるまで、既にタスク処理を終了したスレーブプロセッサ４に関するＯＳのタスク終了処理を待たせることになり、スレーブプロセッサ４のリソースを占有しているように思えるが、新たに割込み処理が要求されない限りスレーブプロセッサ４を使用することはないため、スレーブプロセッサ４のＯＳタスク終了処理を待たせることによる影響はないと考える。
【００６７】
また、以上に示した本実施の形態２では、プロセッサ間割込みの優先順位が一意的に決定され、マスク可能な割込みの中でも最も高い優先順位であった。しかし、マスタプロセッサ用プロセッサ間割込み制御レジスタ２０のＢ３ビット２０３を設定することで、プロセッサ間割込みの優先順位を任意に決定することが可能となる。例えば、マスタプロセッサが処理する優先度の高いタスクを最優先に実施したい場合には、プロセッサ間割込みの優先順位をマスタプロセッサで処理している優先順位より低く設定することで、図６のタスク処理の流れに示すように、マスタプロセッサ３が処理する優先度の高いタスクを中断することなく処理が可能となる。逆に、マスタプロセッサ３が優先度の高いタスク処理を実施しているが、優先度の低いタスク処理をスレーブプロセッサ４に分配したい場合には、プロセッサ間割込みの優先順位をマスタプロセッサ３で処理している優先順位より高く設定することで、プロセッサ間割込み要求をすぐに受け付けることが可能となり、スレーブプロセッサ４に優先度の低いタスク処理を実行することが可能となる。
【００６８】
以上のように、プロセッサ間割込みの優先レベルを任意に変更可能なため、マスタプロセッサ３とスレーブプロセッサ４の各々の割込み処理の分配を所望通りに制御することが可能となる。
【００６９】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７０】
本願明細書に記載される実施の形態により、マスタスレーブ構成のマルチプロセッサシステムにおいて、マスタプロセッサとスレーブプロセッサとで効率よく割込み処理を分配することが可能なため、リアルタイム性が向上する。
【産業上の利用可能性】
【００７１】
本発明は、半導体集積回路を利用したマルチプロセッサシステムなどに適用可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態１によるマルチプロセッサシステムにおいて、割込みコントローラ部分の詳細構成を示すブロック図である。
【図２】本発明の実施の形態２によるマルチプロセッサシステムにおいて、割込みコントローラ部分の詳細構成を示すブロック図である。
【図３】本発明の実施の形態１によるマルチプロセッサシステムにおいて、プロセッサ間割込み制御レジスタの詳細構成を示す図である。
【図４】本発明の実施の形態１によるマルチプロセッサシステムにおいて、割込みが要求されてからその割込みに対応したタスク実行までの処理に関する動作フローを示す図である。
【図５】本発明の実施の形態１によるマルチプロセッサシステムにおいて、割込みに対応したタスク実行からＯＳがタスクを終了し再スケジューリングを実施するまでの処理に関する動作フローを示す図である。
【図６】本発明の実施の形態１によるマルチプロセッサシステムにおいて、マスタスレーブ構成における割込み分担処理の流れを示す図である。
【図７】本発明の実施の形態１によるマルチプロセッサシステムにおいて、マスタスレーブ構成における割込み分担処理の流れを示す図である。
【図８】本発明の実施の形態２によるマルチプロセッサシステムにおいて、割込みに対応したタスク実行からＯＳがタスクを終了し再スケジューリングを実施し、更に他の割込み要求待ちが有る場合のタスク起動までの処理に関する動作フローを示す図である。
【図９】本発明の実施の形態２によるマルチプロセッサシステムにおいて、マスタスレーブ構成における割込み分担処理の流れを示す図である。
【図１０】本発明の実施の形態２によるマルチプロセッサシステムにおいて、プロセッサ間割込み制御レジスタの詳細構成を示す図である。
【図１１】本発明の実施の形態１または２によるマルチプロセッサシステムの構成を示す図である。
【図１２】本発明の実施の形態１によるマルチプロセッサシステムにおいて、プロセッサ間割込み制御レジスタに配置したビットの詳細仕様を示す図である。
【図１３】本発明の実施の形態１によるマルチプロセッサシステムにおいて、優先度判定の条件を示す図である。
【図１４】本発明の実施の形態２によるマルチプロセッサシステムにおいて、プロセッサ間割込み制御レジスタに配置したビットの詳細仕様を示す図である。
【符号の説明】
【００７３】
１，１ａ  割込みコントローラ（ＩＮＴＣ）
２  プロセッサ間割込み制御レジスタ（ＩＰＣＲ）
３  マスタプロセッサ（ＭＰ）
４  スレーブプロセッサ（ＳＰ）
１０  マルチプロセッサシステム  
２０  マスタプロセッサ用プロセッサ間割込み制御レジスタ（ＩＰＣＲＭＰ ）
２１  スレーブプロセッサ用プロセッサ間割込み制御レジスタ（ＩＰＣＲＳＰ）
３０，４０  割込みマスクビット（ＩＭＳＫＢ）
１００  マスタプロセッサ用プロセッサ間割込み要求制御回路（ＩＰＲＣＬＭＰ）
１０１  スレーブプロセッサ用プロセッサ間割込み要求制御回路（ＩＰＲＣＬＳＰ）
１１０  マスタプロセッサ用プロセッサ間割込み許可禁止判定回路（ＩＰＤＪＬＭＰ）
１６０  マスタプロセッサ用割込み制御レジスタ（ＩＣＲＭＰ）
１６１  スレーブプロセッサ用割込み制御レジスタ（ＩＣＲＳＰ）
１７０，１７１  優先順位判定回路（ＰＲＪＬ）
１８０，１８１  比較器
２０１，２１１  Ｂ１ビット
２０２，２１２  Ｂ２ビット
２０３，２１３  Ｂ３ビット
１１０１  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）
１１１１，１１１２  ＣＰＵバス
１１１３  内部バス
１１１４  周辺バス
１１２１〜１１２ｎ  内蔵周辺モジュール
１１３１  外部端子
１１４１，１１４２  割込み信号線
【図１】
0004457047.tif 000002
【図２】
0004457047.tif 000003
【図３】
0004457047.tif 000004
【図４】
0004457047.tif 000005
【図５】
0004457047.tif 000006
【図６】
0004457047.tif 000007
【図７】
0004457047.tif 000008
【図８】
0004457047.tif 000009
【図９】
0004457047.tif 000010
【図１０】
0004457047.tif 000011
【図１１】
0004457047.tif 000012
【図１２】
0004457047.tif 000013
【図１３】
0004457047.tif 000014
【図１４】
0004457047.tif 000015