(57)【要約】【課題】  マルチＣＰＵシステムにおいて、ＣＰＵごとに割り込み処理をわける。【解決手段】  各ＣＰＵが主記憶装置の同一の割り込みベクタを用いて割り込み処理を実行するマルチＣＰＵシステムであって、前記ＣＰＵ（５０１）と接続され、該ＣＰＵ（５０１）を識別するための識別子が格納されるレジスタ（５０３）を備え、前記ＣＰＵは、割り込み指示を受けとった場合に、前記割り込みベクタ内の複数の割り込み処理のうち、前記レジスタに格納された識別子に対応する割り込み処理を選択的に実行することを特徴とする。【選択図】  図６
2007226463.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵと、該ＣＰＵが共有する主記憶装置とを備え、割り込み指示を受け取った場合に、該各ＣＰＵが該主記憶装置の同一の割り込みベクタを用いて割り込み処理を実行する情報処理装置であって、
前記ＣＰＵと接続され、該ＣＰＵを識別するための識別子が格納されるレジスタを備え、
前記ＣＰＵは、割り込み指示を受け取った場合に、前記割り込みベクタ内の複数の割り込み処理のうち、前記レジスタに格納された識別子に対応する割り込み処理を選択的に実行することを特徴とする情報処理装置。
【請求項２】
複数のＣＰＵと、該ＣＰＵが共有する主記憶装置と、該ＣＰＵと接続され該ＣＰＵを識別するための識別子が格納されるレジスタとを備え、割り込み指示を受け取った場合に、該各ＣＰＵが該主記憶装置の同一の割り込みベクタを用いて割り込み処理を実行する情報処理装置における情報処理方法であって、
前記ＣＰＵは、割り込み指示を受け取った場合に、前記割り込みベクタ内の複数の割り込み処理のうち、前記レジスタに格納された識別子に対応する割り込み処理を選択的に実行することを特徴とする情報処理方法。
【請求項３】
請求項２に記載の情報処理方法をコンピュータによって実現させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵと、該ＣＰＵが共有する主記憶装置とを備える情報処理装置における割り込み処理技術に関するものである。
【背景技術】
【０００２】
従来より、複数のＣＰＵが主記憶装置を共有するマルチＣＰＵシステム（情報処理装置）が知られ、例えば、複合機などの画像形成装置に搭載されている（例えば、特許文献１参照）。複合機などの場合、同じタイプのＣＰＵを２つ以上使用し、一方のＣＰＵにおいて複写動作などの画像処理を実行し、他方のＣＰＵでコードデータのレンダリング処理を実行するなど、ＣＰＵごとに役割を明確に分けて使用する場合が多い。
【特許文献１】特開２０００−０１９８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、同じタイプのＣＰＵを複数使用するマルチＣＰＵシステムの場合、割り込み処理を実行させるにあたり以下のような点に配慮する必要がある。
【０００４】
すなわち、ＣＰＵのアーキテクチャによっては、ＣＰＵごとに割り込みベクタのアドレスを設定できるよう構成されているものもある。このようなＣＰＵを使用する場合には、複数のＣＰＵにおいて割り込み指示が入力された場合でも、一方のＣＰＵの割り込みベクタと他方のＣＰＵの割り込みベクタとを分けることができるため、ＣＰＵごとに異なる割り込み処理を実行させることが可能である。
【０００５】
これに対して、例えば、ＭＩＰＳなどのアーキテクチャの場合、ＣＰＵごとに割り込みベクタのアドレスを変更することができない（つまり、同じメモリの同じアドレス上に異なるＣＰＵの割り込みベクタが配置されることとなる）。このため、複数のＣＰＵにおいて割り込み指示が入力された場合、各ＣＰＵはメモリ上の同じアドレスにマッピングされた同じ割り込み処理を実行することとなり、ＣＰＵごとに異なる割り込み処理を実行させることができない。
【０００６】
このように、ＣＰＵのアーキテクチャによっては、複写機などの画像形成装置のようにＣＰＵごとに処理を分けたい場合に不都合が生じることがある。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、マルチＣＰＵシステムにおいて、ＣＰＵごとに割り込みベクタのアドレスを変更することができない場合でも、ＣＰＵごとに割り込み処理をわけることができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
複数のＣＰＵと、該ＣＰＵが共有する主記憶装置とを備え、割り込み指示を受け取った場合に、該各ＣＰＵが該主記憶装置の同一の割り込みベクタを用いて割り込み処理を実行する情報処理装置であって、
前記ＣＰＵと接続され、該ＣＰＵを識別するための識別子が格納されるレジスタを備え、
前記ＣＰＵは、割り込み指示を受け取った場合に、前記割り込みベクタ内の複数の割り込み処理のうち、前記レジスタに格納された識別子に対応する割り込み処理を選択的に実行することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、マルチＣＰＵシステムにおいて、ＣＰＵごとに割り込みベクタのアドレスを変更することができない場合でも、ＣＰＵごとに割り込み処理をわけることができるようになる。
【発明を実施するための最良の形態】
【００１０】
以下、必要に応じて添付図面を参照しながら本発明の一実施形態を詳細に説明する。なお、以下の実施形態では、本発明にかかるマルチＣＰＵシステム（情報処理装置）を画像形成装置に搭載する場合について説明するが、本発明の実施形態は特にこれに限られず、他の装置に適用してもよいことはいうまでもない。
【００１１】
１．画像形成装置のブロック構成ならびに該装置を備えるネットワークシステムの構成
図１は本発明に係るマルチＣＰＵシステムが搭載された画像形成装置の一例を示すブロック構成図である。同図に示すように、画像形成装置１００は、イーサネット（登録商標）等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１８０に接続可能である。これにより、ホストコンピュータ（本実施形態では第一のホストコンピュータ１６０、第二のホストコンピュータ１７０）と通信し、データの送受信を行うことができる。
【００１２】
画像形成装置１００は、画像データの読取処理を行うリーダ部１２０と、画像データの出力処理を行うプリンタ部１３０と備える。また、画像データの入出力操作を行うキーボード及び画像データや各種機能の表示／設定などを行う液晶パネルを備えた操作部１４０を備える。更に、リーダ部１２０を制御して読み込んだ画像データや、ＬＡＮ１８０を介して第一または第二のホストコンピュータ１６０、１７０より受信したコードデータをレンダリングして生成される画像データを保存する画像記憶部（ハードディスク）１５０を備える。
【００１３】
これら各構成要素はコントローラ部１１０に接続され、コントローラ部１１０は、該構成要素を制御する。
【００１４】
リーダ部１２０は、原稿用紙を搬送する原稿給紙ユニット１２１と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット１２２を有する。
【００１５】
プリンタ部１３０は、記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット１３３を有する。また、画像データを記録用紙に転写／定着させるマーキングユニット(部)１３１と、印字された記録用紙にソート処理やステイプル処理を施し、外部に排出する排紙ユニット（部）１３２を有する。
【００１６】
コントローラ部１１０は、リーダ部１２０を制御して、原稿用紙の画像データを読み込み、プリンタ部１３０を制御して該画像データを記録用紙に出力するコピー機能を提供する。また、リーダ部１２０から読み取った画像データを、コードデータに変換し、ネットワーク１８０を介してホストコンピュータ１６０、１７０へ送信するスキャナ機能を備える。更に、ホストコンピュータ１６０または１７０からネットワーク１８０を介して受信したコードデータを画像データに変換し（レンダリング処理し）、プリンタ部１３０に出力するプリンタ機能、その他の機能を有している。
【００１７】
２．画像形成装置のハードウェア構成
図２は画像形成装置１００のハードウェア構成を示す図であり、特に、リーダ部１２０及びプリンタ部１３０の詳細を示す断面図である。
【００１８】
はじめにリーダ部１２０について説明する。原稿給送装置２０１に積層された原稿用紙がその積層順に従って、先頭から順次１枚ずつプラテンガラス２０３上へ給送される。そして、スキャナ装置２０７で所定の読み取り動作が終了した後、読み取られた原稿用紙は、プラテンガラス２０３上の原稿排出トレイ２０２に排出される。
【００１９】
また、原稿用紙がプラテンガラス２０３上に搬送されると、ランプ２０４を点灯し、次いで光学装置２０７の移動を開始させ、原稿用紙を下方から照射し走査する。そして、原稿用紙からの反射光は、複数のミラー２０８、２０５、２０６、及び、レンズ２１０を介してＣＣＤイメージセンサ（以下「ＣＣＤ」と記す）２１１へ導かれ、走査された原稿画像はＣＣＤ２１１によって読み取られる。ＣＣＤ２１１で読み取られた画像データは、所定の処理が施された後、制御装置（図２において不図示）に転送される。
【００２０】
原稿給送装置２０１が原稿の流し読み機能を有している場合、原稿給送装置２０１に積層された原稿用紙は、原稿流し読み位置２０９を一定の速度で通過する。この場合、光学装置２０７は原稿流し読み位置２０９に移動し、等速で搬送される原稿をランプ２０４によって照射し、ＣＣＤ２１１によって随時読み取ることで画像データを生成し、制御装置（図２において不図示）に転送する。
【００２１】
次いで、プリンタ部１３０について説明する。制御装置から出力された画像データに対応するレーザ光が、レーザドライバ２１７により駆動されるレーザ発光装置２１８から発光される。そして感光ドラム２１９にはレーザ光に応じた静電潜像が形成され、現像器２２０により当該静電潜像の部分に現像剤が付着される。
【００２２】
一方、レーザ光の照射開始と同期したタイミングで、カセット２１２、カセット２１３、カセット２１４、カセット２１５、手差し給紙段２１６のいずれかから記録用紙が給紙されて搬送路２２６により転写装置２２１に搬送される。そして、感光ドラム２１９に付着している現像剤を記録用紙に転写する。
【００２３】
画像データが転写された記録用紙は搬送ベルト２２２によって、定着装置２２３に搬送され、定着装置２２３における加熱・加圧処理により画像データが記録用紙に定着される。定着装置２２３を通過した記録用紙は搬送路２３０、搬送路２２９を通り、排紙ビン２２４に排出される。
【００２４】
印字面を反転して排紙ビン２２４に排出する場合には、搬送路２３１、搬送路２３３まで導かれ、そこから逆方向に搬送され、搬送路２３２、搬送路２２９を通り、排紙ビン２２４に排出される。図２に記していないが、排紙ビン２２４の変わりに、排紙装置を装着することが可能で、排紙装置は排出された記録用紙を束ねて記録用紙の仕分けを行ったり、仕分けされた記録用紙に対してステイプル処理などを行ったりすることができる。
【００２５】
また、画像データを記録用紙に両面記録する場合は、定着装置２２３を通過したあと、記録用紙を、搬送路２３１からフラッパ２２５によって搬送路２２８に導く。その後、記録用紙を逆方向に搬送し、フラッパ２２５によって搬送路２３３、再給紙搬送路２２７へと導く。再給紙搬送路２２７へ導かれた記録用紙は上述と同様にして搬送路２２６を通り、転写装置２２１へ給紙される。
【００２６】
３．画像形成装置の制御装置の詳細
図３は画像形成装置のコントローラ部１１０の詳細を示すブロック図である。
【００２７】
メインコントローラ３０１は、ＣＰＵやシステムバスブリッジ等（詳細は後述）を備える。また、後述する各種コントローラ回路を含む機能ブロックを内蔵すると共に、ＲＯＭ  Ｉ／Ｆ３０３を介してＲＯＭ３０２と接続されている。また、ＤＲＡＭ  Ｉ／Ｆ３０５を介してＤＲＡＭ（主記憶装置）３０４と接続され、コーデックＩ／Ｆ３０６を介してコーデック３０７と接続されている。更に、ネットワークＩ／Ｆ３１１を介してネットワークコントローラ３０９と接続され、コネクタ３１０によりＬＡＮ１８０との間で所定の制御動作を行う。
【００２８】
ＲＯＭ３０２は、メインコントローラ３０１のＣＰＵで実行される各種制御プログラムや演算データが格納されている。ＤＲＡＭ（主記憶装置）３０４は、メインコントローラ３０１のＣＰＵが動作するための作業領域や画像データを一時的に蓄積するための領域として使用される。コーデック３０７はＤＲＡＭ（主記憶装置）３０４に蓄積されたラスターイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長する。また、コーデック３０７にはＳＲＡＭ３０８が接続されており、該ＳＲＡＭ３０８はコーデック３０７の一時的な作業領域として使用される。
【００２９】
また、メインコントローラ３０１はスキャナバス３２４を介してスキャナＩ／Ｆ３２３に接続され、プリンタバス３２９を介してプリンタＩ／Ｆ３２８に接続される。さらにＰＣＩバス等の汎用高速バス３１３を介して拡張ボードを接続するための拡張コネクタ３１２及び入出力制御部（Ｉ／Ｏ制御部）３１４に接続される。
【００３０】
Ｉ／Ｏ制御部３１４はリーダ部１２０やプリンタ部１３０との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ３１５が２チャンネル装備されている。また、該シリアル通信コントローラ３１５はＩ／Ｏバス３１６を介してスキャナＩ／Ｆ３２３及びプリンタＩ／Ｆ３２８に接続されている。
【００３１】
スキャナＩ／Ｆ３２３は、第一の調歩同期シリアルＩ／Ｆ３２６及び第一のビデオＩ／Ｆ３２７を介してスキャナコネクタ３２５に接続され、さらに該スキャナコネクタ３２５はリーダ部１２０のスキャナユニット１２２に接続されている。そして、スキャナＩ／Ｆ３２３はスキャナユニット１２２から受信した画像データに対し所望の２値化処理を行ったり、主走査方向及び／又は副走査方向の変倍処理を行う。またスキャナユニット１２２から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス３２４を介してメインコントローラ３０１に画像データを転送する。
【００３２】
また、プリンタＩ／Ｆ３２８は、第２の調歩同期シリアルＩ／Ｆ３３１及び第２のビデオＩ／Ｆ３３２を介してプリンタコネクタ３３０に接続され、さらに該プリンタコネクタ３３０はプリンタ部１３０のマーキングユニット１３１に接続されている。そして、プリンタＩ／Ｆ３２８はメインコントローラ３０１から出力された画像データにスムージング処理を施して該画像データをマーキングユニット１３１に出力する。さらにマーキングユニット１３１から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス３２９に出力する。
【００３３】
また、Ｉ／Ｏ制御部３１４は、ＬＣＤコントローラ３１８及びキー入力Ｉ／Ｆ３３４を介してパネルＩ／Ｆ３１９に接続され、パネルＩ／Ｆ３１９は操作部１４０に接続されている。また、Ｉ／Ｏ制御部３１４は不揮発性メモリとしてのＥＥＰＲＯＭ３２２に接続され、またＥ−ＩＤＥコネクタ３３３を介して画像データの書き込み／読み出しが可能な画像記録部（ハードディスク）１５０に接続されている。さらに、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール３２０に接続されている。尚、リアルタイムクロックモジュール３２０はバックアップ用電池３２１に接続されて該バックアップ用電池３２１によりバックアップされている。
【００３４】
４．メインコントローラの詳細構成
図４はメインコントローラ３０１内部の詳細を示すブロック構成図である。
【００３５】
プロセッサコア４０１は、２つのＣＰＵ（ＣＰＵ−Ａ、ＣＰＵ−Ｂ）を備え、６４ビットのプロセッサバス（ＳＣバス）を介して、システム・バス・ブリッジ（ＳＢＢ）４０２に接続される。また、各ＣＰＵ（ＣＰＵ−Ａ、ＣＰＵ−Ｂ）には、外部レジスタ４０４が接続されている（詳細は後述）。
【００３６】
ＳＢＢ４０２は４×４の６４ビットクロスバスイッチであり、プロセッサコア４０１の他に、キャッシュメモリを備えたＳＤＲＡＭやＲＯＭを制御するメモリコントローラ４０３と専用のローカルバス（ＭＣバス）を介して接続されている。
【００３７】
さらに、グラフィックバスであるＧバス４０４、ＩＯバスであるＢバス４０５と接続され、全部で４つのバスに接続される。ＳＢＢ４０２は、これら４モジュール間を、可能な限り同時平行接続を確保することができるように設計されている。また、データの圧縮伸張ユニット（コーデック）３０７とも、ＣＯＤＥＣ  Ｉ／Ｆ４１８を介して接続されている。
【００３８】
Ｇバス４０４はＧバスアービタ（ＧＢＡ）４０６により協調制御されており、リーダ部１２０やプリンタ部１３０と接続するためのリーダ部／プリンタ部コントローラ（ＳＰＣ）４０８に接続される。また、Ｂバス４０５は、Ｂバスアービタ（ＢＢＡ）４０７により協調制御されており、ＳＰＣ４０８のほか、電力管理ユニット（ＰＭＵ）４０９、インタラプトコントローラ（ＩＣ）４１０に接続されている。また、ＵＡＲＴを用いたシリアルインタフェースコントローラ（ＳＩＣ）４１１、ＵＳＢコントローラ４１２、ＩＥＥＥ１２８４を用いたパラレルインタフェースコントローラ（ＰＩＣ）４１３にも接続されている。更に、イーサネット（登録商標）を用いたＬＡＮコントローラ（ＬＡＮＣ）４１４、汎用入出力コントローラ（ＭＩＳＣ）４１５、ＰＣＩバスインタフェース（ＰＣＩＣ）４１６にも接続されている。
【００３９】
Ｂバスアービタ４０７はＢバス４０５を協調制御するアービトレーションであり、Ｂバス４０５のバス使用要求を受け付け、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に２つ以上のマスタがバスアクセスを行うのを禁止している。尚、アービトレーション方式は３段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。
【００４０】
インタラプトコントローラ４１０は、上述した各機能ブロック及びコントローラ部１１０の外部からインタラプトを集積し、プロセッサコア４０１がサポートするコントローラ類４０８、４１１〜４１６及びノンマスカブルインタラプト（ＮＭＩ）に再配分する。
【００４１】
電力管理ユニット４０９は機能ブロック毎に電力を管理し、さらに１チップで構成されている電子部品としてコントローラ部１１０の消費電力量の監視を行う。すなわち、コントローラ部１１０は、プロセッサコア４０１を内蔵した大規模なＡＳＩＣ（特定用途向けＩＣ）で構成されており、このため全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラ部１１０自体が破壊されてしまうおそれがある。
【００４２】
そこで、このような事態を防止するために各機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量をパワーマネージメントレベルとして電力管理ユニット４０９に集積する。そして、該電力管理ユニット４０９では各機能ブロックの消費電力量を合計し、該消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して監視する。
【００４３】
Ｇバスアービタ４０６は中央アービトレーション方式によりＧバス４０４を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。尚、バスマスタへの優先権の付与方式として公平アービトレーションモードと優先アービトレーションモードのいずれかを指定することができる。なお公平アービトレーションモードとは、全てのバスマスタを同じ優先権として、公平にバス権を付与するモードであり、優先アービトレーションモードとは、いずれか一つのバスマスタに対して優先的にバスを使用させるモードである。
【００４４】
５．マルチＣＰＵシステムの構成
図５は、コントローラ部１１０内に構成されたマルチＣＰＵシステムを図３、図４に基づいて模式的に表した図である。
【００４５】
上述のように、メインコントローラ３０１は主記憶装置３０４にＣＰＵ−Ａ（５０１）とＣＰＵ−Ｂ（５０２）が共有してアクセスするマルチＣＰＵシステムとして構成されている。また、各ＣＰＵ（ＣＰＵ−Ａ（５０１）、ＣＰＵ−Ｂ（５０２））にはそれぞれ外部レジスタ５０３、５０４が搭載されている。なお、本実施形態では２つのＣＰＵ（ＣＰＵ−Ａ（５０１）、ＣＰＵ−Ｂ（５０２））を搭載したマルチＣＰＵシステムに関して説明するが、本発明は特にこれに限定されない。図５のＣＰＵ−Ａ（５０１）、ＣＰＵ−Ｂ（５０２）以外のＣＰＵを使用したマルチＣＰＵシステムであってもよい。
【００４６】
ＣＰＵ−Ａ（５０１）とＣＰＵ−Ｂ（５０２）とはそれぞれ別個の処理を実行するよう構成されている。ここでは、一例として、ＣＰＵ−Ａ（５０１）が複写動作などの画像処理を、ＣＰＵ−Ｂ（５０２）がコードデータのレンダリング処理等を実行するものとする。
【００４７】
また、ＣＰＵ−Ａ（５０１）およびＣＰＵ−Ｂ（５０２）は、それぞれ、システムバスブリッジ４０２、メモリコントローラ４０３を介して、主記憶装置３０４に対して画像データのリード／ライトが可能である。
【００４８】
６．ＣＰＵの詳細構成ならびに動作
図６はプロセッサコア４０１を構成する各ＣＰＵ内部のレジスタ郡を示す図である（図６の例はＣＰＵ−Ａ（５０１）を示しているが、ＣＰＵ−Ｂ（５０２）についても同様の構成となっている）。６０１は演算器、６０２は命令解析器、６０３は命令実行器、６０４はＣＰＵ−Ａの汎用レジスタ、６０５はＣＰＵ−Ａの特殊レジスタである。外部レジスタ５０３は、特殊レジスタ６０６に接続されている。
【００４９】
通常のプログラムに基づいて処理を実行する場合、汎用レジスタ６０４を用いて計算が行われる。たとえば、１＋２の結果を知りたい場合、汎用レジスタ１に“１”を入れ、汎用レジスタ２に“２”を入れ、結果を汎用レジスタ３に入れるといった按配である。これを命令解析器６０２に命令実行器６０３、演算器６０１を通すことにより行う。結果は汎用レジスタ３に出力され、ユーザは結果を得ることができる。
【００５０】
特殊レジスタ６０５はＣＰＵ−Ａ（５０１）が動作する際の設定や、割り込みの可否等を設定するための特殊なレジスタであり、通常の計算の際には使用しない。図６に示すように、特殊レジスタにはＣＰＵ−Ａ（５０１）外部のデバイスである外部レジスタ５０３を接続することが可能である。図６の例では、外部レジスタ５０３が特殊レジスタ６０６に接続されている。
【００５１】
外部レジスタ５０３には自ＣＰＵがＣＰＵ−Ａ（５０１）であるかＣＰＵ−Ｂ（５０２）であるかを示すＣＰＵ−ＩＤ（識別子）が格納されている。したがって、特殊レジスタ６０６を参照することによって、ＣＰＵ−Ａ（５０１）が動作しているのか、ＣＰＵ−Ｂ（５０２）が動作しているのかをＣＰＵ自身が認識することができる。
【００５２】
７．主記憶装置の構成
図７は主記憶装置３０４の構成を示す図である。７０１は割り込みベクタ、７０２はテキスト領域、７０３はデータ領域である。７０４は割り込み処理を実行するためのプログラムであり、７０５は通常処理を実行するためのプログラム、７０６は画像データ等である。
【００５３】
このように通常処理を行うプログラムはデータ領域７０２におかれ、当該領域を作業領域として処理が実行される。そしてデータ領域７０２にある画像データ等を処理して、プリンタ部１３０に出力したりする。
【００５４】
割り込み信号がＣＰＵ−Ａ（５０１）に入ると、データ領域７０３にある通常処理を実行するためのプログラムから割り込みベクタ７０１にジャンプし、割り込み処理プログラムを実行する。そして、割り込み処理が終了すると、割り込みベクタ７０１にジャンプしたときの元の場所に復帰し、通常処理のプログラムの実行を再開する。
【００５５】
なお、本実施形態にかかるマルチＣＰＵシステムは、各ＣＰＵが同一の割り込みベクタを使用する。このため、割り込みベクタ７０１内の割り込み処理プログラム７０４には、ＣＰＵ−Ａ（５０１）にて実行されるべき割り込み処理プログラムと、ＣＰＵ−Ｂ（５０２）にて実行されるべき割り込み処理プログラムとが混在している。
【００５６】
８．マルチＣＰＵシステムの処理の流れ
図８は本実施形態にかかるマルチＣＰＵシステムにおける割り込み信号入力時の処理の流れを示すフローチャートである。このうち、図８（Ａ）は、ＣＰＵ−Ａ（５０１）における処理の流れを、図８（Ｂ）は、ＣＰＵ−Ｂ（５０２）における処理の流れをそれぞれ示している。なお、ＣＰＵ−Ａ（５０１）における処理とＣＰＵ−Ｂ（５０２）における処理とは、基本的に同じであるため、以下では、代表してＣＰＵ−Ａ（５０１）における処理について説明する。
【００５７】
割り込み信号がＣＰＵ−Ａ（５０１）に入力されると、ＣＰＵ−Ａ（５０１）は割り込み処理を開始する。すなわち、割り込みベクタ７０１にジャンプし、割り込みベクタ７０１内にある共通の割り込み処理を実行開始する（ステップＳ８０１Ａ）。これにより、割り込みベクタ７０１内にある共通のコードが順次ＣＰＵ−Ａ（５０１）により実行されていく。なお、共通の割り込み処理とは、割り込み信号が入力されたときに、ＣＰＵ−Ａ、ＣＰＵ−Ｂの区別なく実行される割り込み処理をいう。
【００５８】
共通のコードを順次実行するにあたっては、ステップＳ８０２Ａにおいて、実行しようとするコードがＣＰＵによって異なる処理をする必要があるコードであるか否かを逐次確認しながら行う。実行しようとするコードがＣＰＵによって異なる処理をする必要があるコードでないことが確認された場合に（ステップＳ８０２Ａで「Ｎｏ」の場合に）、当該コードを実行する（すなわち共通コードの実行を継続する）。
【００５９】
一方、実行しようとするコードがＣＰＵによって異なる処理をする必要があるコードである場合には（ステップＳ８０２Ａで「Ｙｅｓ」の場合には）、ステップＳ８０３Ａに進み、当該コードの実行を一旦停止する（すなわち、共通コードの実行を停止する）。
【００６０】
そして、ステップＳ８０４Ａにおいて、当該実行しようとするコードが、ＣＰＵ−Ａにより実行されるべきコードであるか否かを判定する。ＣＰＵ−Ａにより実行されるべきコードであると判定された場合には、ステップＳ８０５Ａに進み、当該実行しようとするコードを実行する。なお、当該コードを実行すると、次の共通コードまで進むため、ステップＳ８０６Ａでは、当該次の共通コードから実行を再開する。
【００６１】
一方、ステップＳ８０４Ａにおいて、当該実行しようとするコードが、ＣＰＵ−Ａにより実行されるべきコードでないと判定された場合には、当該コードを実行することなく、次の共通コードに進む。ステップＳ８０６Ａでは、当該次の共通コードから実行を再開する。
【００６２】
更にステップＳ８０７Ａでは、すべてのコードについて実行を完了したか否かを判定する。実行を完了したと判定された場合には、割り込み処理を終了する。一方、すべてのコードについて実行を完了していないと判定された場合には、ステップＳ８０２Ａに戻り、ステップＳ８０２Ａ〜ステップＳ８０６Ａまでの処理を繰り返す。
【００６３】
これにより、割り込みベクタ７０１内に、ＣＰＵ−Ａにおいて実行されるべき割り込み処理とＣＰＵ−Ｂにおいて実行されるべき割り込み処理とが混在していた場合でも、ＣＰＵ−Ａは、選択的に割り込み処理を実行することが可能となる。
【００６４】
以上の説明から明らかなように、本実施形態にかかるマルチＣＰＵシステムは、ＣＰＵ−ＩＤを格納した外部レジスタを特殊レジスタに接続する構成とした。これにより、複数のＣＰＵに割り込み信号が入力された場合に、各ＣＰＵは、割り込み処理を実行するに際して、当該外部レジスタに基づいて、自ＣＰＵを認識したうえで実行することが可能となる。
【００６５】
この結果、ＣＰＵは、割り込みベクタ内に混在している割り込み処理のうち、自ＣＰＵで実行すべき割り込み処理のみを選択的に実行することが可能となる。つまり、ＣＰＵごとに割り込みベクタのアドレスを変更することができない場合でも、ＣＰＵごとに割り込み処理をわけることができるようになる。
【００６６】
９．他の実施形態
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００６９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【図面の簡単な説明】
【００７１】
【図１】マルチＣＰＵシステムが搭載された画像形成装置の一例を示すブロック構成図である。
【図２】画像形成装置のハードウェア構成を示す図である。
【図３】画像形成装置のコントローラ部の詳細を示す図である。
【図４】コントローラ部を構成するメインコントローラ内部の詳細を示すブロック構成図である。
【図５】コントローラ部内に構成されたマルチＣＰＵシステムを図３、図４に基づいて模式的に表した図である。
【図６】メインコントローラ内部のプロセッサコアを構成する各ＣＰＵ内部のレジスタ郡を示す図である。
【図７】主記憶装置の構成を示す図である。
【図８】マルチＣＰＵシステムにおける割り込み信号入力時の処理の流れを示す図である。
【図１】
2007226463.tif 000003
【図２】
2007226463.tif 000004
【図３】
2007226463.tif 000005
【図４】
2007226463.tif 000006
【図５】
2007226463.tif 000007
【図６】
2007226463.tif 000008
【図７】
2007226463.tif 000009
【図８】
2007226463.tif 000010