(57)【要約】【課題】複数の集積回路で構築されたシステムにおいて、ＣＰＵの機能を停止させた集積回路で割り込みが発生した場合でも、適切に割り込み制御を行うことができる。【解決手段】プロセッサと、割り込み処理の要求を受け付けるとプロセッサに対して割り込み通知を送信する割り込みコントローラとを有する制御モジュールと、制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、他の集積回路と接続するための外部インタフェースと、を備え、プロセッサが停止している場合には、割り込みコントローラからの割り込み通知が処理モジュールに入力され、処理モジュールは、割り込みコントローラから割り込み通知を受け付けると、割り込み通知に対応する割り込みパケットを送信し、処理モジュールによって送信された割り込みパケットが、外部インタフェースを介して他の集積回路に転送される。【選択図】図７
2018097522.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、割り込み処理の要求を受け付けると前記プロセッサに対して割り込み通知を送信する割り込みコントローラとを有する制御モジュールと、
前記制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、
他の集積回路と接続するための外部インタフェースと、を備え、
前記プロセッサが停止している場合には、前記割り込みコントローラからの前記割り込み通知が前記処理モジュールに入力され、
前記処理モジュールは、前記割り込みコントローラから前記割り込み通知を受け付けると、前記割り込み通知に対応する割り込みパケットを送信し、
前記処理モジュールによって送信された前記割り込みパケットが、前記外部インタフェースを介して前記他の集積回路に転送される
ことを特徴とする集積回路。
【請求項２】
前記処理モジュールは外部ポートを有し、
前記割り込みコントローラと前記外部ポートとが信号線で接続され、
前記プロセッサが停止している場合には、前記割り込みコントローラからの前記割り込み通知が前記信号線および前記外部ポートを介して前記処理モジュールに入力される
請求項１に記載の集積回路。
【請求項３】
前記処理モジュールは、自モジュールの処理において割り込みが発生すると、発生した前記割り込みに対応する割り込みパケットを送信し、前記プロセッサが停止している場合には、送信された前記割り込みパケットが、前記外部インタフェースを介して前記他の集積回路に転送される
請求項１または請求項２に記載の集積回路。
【請求項４】
前記処理モジュールは、自モジュールの処理において割り込みが発生すると、発生した前記割り込みに対応する割り込みパケットを送信し、前記プロセッサが動作している場合には、送信された前記割り込みパケットが前記割り込みコントローラに転送される
請求項３に記載の集積回路。
【請求項５】
前記制御モジュールと前記処理モジュールと前記外部インタフェースとの間を接続してパケットを転送するバスと、
前記バスの経路を制御する経路制御手段と、をさらに備え、
前記経路制御手段は、
前記プロセッサが停止している場合には、前記処理モジュールから送信される前記割り込みパケットが、前記外部インタフェースを介して前記他の集積回路に転送されるように、前記バスの経路を制御する
請求項１から請求項４のうちのいずれか１項に記載の集積回路。
【請求項６】
前記経路制御手段は、
前記プロセッサが動作している場合には、前記処理モジュールから送信される前記割り込みパケットが、前記割り込みコントローラに転送されるように、前記バスの経路を制御する
請求項５に記載の集積回路。
【請求項７】
プロセッサと、割り込み処理の要求を受け付けると前記プロセッサに対して割り込み通知を送信する割り込みコントローラとを有する制御モジュールと、
前記制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、を備え、
前記制御モジュールは、
他の集積回路とシリアルバスを介して通信を行う通信手段を有し、
前記プロセッサが停止している場合には、前記割り込みコントローラからの前記割り込み通知が前記通信手段に入力され、前記通信手段が、入力された前記割り込み通知に基づき、前記割り込み処理を要求するためのデータを前記他の集積回路に送信する
ことを特徴とする集積回路。
【請求項８】
第１の集積回路と、前記第１の集積回路に拡張用の集積回路として接続される第２の集積回路と、を備え、
前記第１の集積回路および前記第２の集積回路は、
プロセッサと、割り込み処理の要求を受け付けると前記プロセッサに対して割り込み通知を送信する割り込みコントローラとを有する制御モジュールと、
前記制御モジュールから入力する情報に応じて処理を実行する処理モジュールと、を少なくとも含み、
前記第２の集積回路において前記プロセッサが停止されている場合には、前記第２の集積回路の前記割り込みコントローラからの前記割り込み通知が前記第２の集積回路の前記処理モジュールに入力され、
前記第２の集積回路の前記処理モジュールは、前記第２の集積回路の前記割り込みコントローラから前記割り込み通知を受け付けると、前記割り込み通知に対応する割り込みパケットを前記第１の集積回路に送信する
ことを特徴とする情報処理装置。
【請求項９】
前記第２の集積回路を前記第１の集積回路の拡張用の集積回路として動作させるための設定を行うモード設定手段をさらに備える
請求項８に記載の情報処理装置。
【請求項１０】
各集積回路は、前記モード設定手段から入力される信号に基づいて、各モジュールに対して供給される電源を制御する電源制御手段をさらに含み、
前記モード設定手段は、
前記第２の集積回路の前記電源制御手段に対して、前記制御モジュールの前記プロセッサに電源を供給させないようにするための前記信号を入力する
請求項９に記載の情報処理装置。
【請求項１１】
前記モード設定手段は、
各集積回路の前記電源制御手段に対して、各モジュールのうち使用されないモジュールに電源を供給させないようにするための前記信号を入力する
請求項１０に記載の情報処理装置。
【請求項１２】
各モジュールを接続するバスの経路を設定するためのレジスタを備え、
前記モード設定手段は、
前記第２の集積回路の前記処理モジュールから送信される前記割り込みパケットが、前記第１の集積回路に転送されるように、前記レジスタを設定する
請求項９から請求項１１のうちのいずれか１項に記載の情報処理装置。
【請求項１３】
第１の集積回路と、前記第１の集積回路に拡張用の集積回路として接続される第２の集積回路と、を備え、前記第１の集積回路および前記第２の集積回路が、プロセッサと、割り込み処理の要求を受け付けると前記プロセッサに対して割り込み通知を送信する割り込みコントローラとを有する制御モジュールと、前記制御モジュールから入力する情報に応じて処理を実行する処理モジュールと、を少なくとも含む、情報処理装置における割り込み制御方法であって、
前記第２の集積回路において前記プロセッサが停止されている場合に、前記第２の集積回路の前記割り込みコントローラが、前記第２の集積回路の前記処理モジュールに前記割り込み通知を入力するステップと、
前記第２の集積回路の前記処理モジュールが、前記第２の集積回路の前記割り込みコントローラから前記割り込み通知を受け付けると、前記割り込み通知に対応する割り込みパケットを前記第１の集積回路に送信するステップと、を含む
ことを特徴とする割り込み制御方法。
【請求項１４】
コンピュータを、請求項１から請求項７のうちのいずれか１項に記載の集積回路として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の集積回路で構築された情報処理装置において、集積回路間を接続する通信バスを介して割り込み制御を行う技術に関する。
【背景技術】
【０００２】
スキャナ機能、プリンタ機能、コピー機能、ネットワーク機能、ＦＡＸ送受信機能といった様々な機能を兼備えるデジタル複合機が知られている。そのようなデジタル複合機における各機能は、外部装置との間で行われる画像データの入出力動作を制御する制御部と、画像データに対して所定の画像処理を行う複数の画像処理部とを有する、コントローラにより制御される（特許文献１参照）。
【０００３】
近年の半導体の進化により、一つのＬＳＩ（大規模集積回路）に多くの機能を搭載させることが可能になっている。したがって、上記のようなコントローラの構成を、一つのＬＳＩに構築させたシステムが登場している。さらに、このようなＬＳＩを複数用いて、ＬＳＩごとに機能を使い分けるシステムも登場している。例えば２つのＬＳＩを通信バスで接続して、一方のＬＳＩ（以下、メインチップと呼ぶ）にシステム制御処理とプリント機能とを含ませ、もう一方のＬＳＩ（以下、拡張チップと呼ぶ）にそれ以外の機能（スキャン機能など）を含ませるシステムがある。このように複数のＬＳＩを用いてＬＳＩごとに機能を使い分けるシステムでは、未使用の機能に関する回路の電源を遮断したり、当該回路へのクロック供給を停止したりして、消費電力を低減させる場合がある。例えば、拡張チップの制御をメインチップのＣＰＵに行わせることで、拡張チップのＣＰＵの機能を停止させるシステムがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−０６４６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、拡張チップのＣＰＵの機能を停止させると、拡張チップにおいて割り込みコントローラが割り込み処理の要求を受信したとしても、ＣＰＵに割り込み通知を行うことができなくなる。したがって、拡張チップのＣＰＵの機能を停止させる場合には、拡張チップの割り込みコントローラからメインチップのＣＰＵに割り込みが通知される仕組みが必要となる。
【０００６】
そこで、本発明は、複数の集積回路で構築されたシステムにおいて、ＣＰＵの機能を停止させた集積回路で割り込みが発生した場合でも、適切に割り込み制御を行うことが可能な集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による集積回路は、プロセッサと、割り込み処理の要求を受け付けるとプロセッサに対して割り込み通知を送信する割り込みコントローラとを有する制御モジュールと、制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、他の集積回路と接続するための外部インタフェースと、を備え、プロセッサが停止している場合には、割り込みコントローラからの割り込み通知が処理モジュールに入力され、処理モジュールは、割り込みコントローラから割り込み通知を受け付けると、割り込み通知に対応する割り込みパケットを送信し、処理モジュールによって送信された割り込みパケットが、外部インタフェースを介して他の集積回路に転送されることを特徴とする。
【発明の効果】
【０００８】
本発明によると、複数の集積回路で構築されたシステムにおいて、ＣＰＵの機能を停止させた集積回路で割り込みが発生した場合でも、適切に割り込み制御を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態における画像形成装置の構成を示すブロック図である。
【図２】第１の実施形態におけるコントローラ部の構成を示すブロック図である。
【図３】メインコントローラ部のシステム制御部の内部構成を示すブロック図である。
【図４】第１実施形態においてリングバスを流れるパケットデータの一例を示す図である。
【図５】第１の実施形態におけるプリント処理部、ループバック処理部、およびスキャン処理部の内部構成の一例を示すブロック図である。
【図６】第１の実施形態におけるリングバススイッチの内部構成の一例を示すブロック図である。
【図７】第１の実施形態におけるコントローラ部の動作を説明するための図である。
【図８】第２の実施形態におけるコントローラ部の動作を説明するための図である。
【図９】メインコントローラ部と拡張コントローラ部間で行われるシリアル通信を説明するための図である。
【発明を実施するための形態】
【００１０】
［第１実施形態］
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
＜画像形成装置＞
図１は、第１の実施形態における画像形成装置１００の構成を示すブロック図である。図１に示すように、画像形成装置１００は、スキャナ部１１０と、コントローラ部（情報処理装置ともいう）１２０と、操作部１３０と、プリンタ部１４０とを備える。
【００１２】
スキャナ部１１０は、原稿画像を光学的に読み取り、画像データに変換する。スキャナ部１１０は、原稿を読取る原稿読取部１１２と、原稿を搬送する原稿給紙部１１１とを含む。プリンタ部１４０は、記録媒体（用紙）を搬送し、記録媒体上に画像データを可視画像として印刷する。プリンタ部１４０は、用紙を給紙する給紙部１４２と、画像データを用紙に転写して定着させる転写定着部１４１と、印刷された用紙に対してソートやステイプルを行って機外に出力する排紙部１４３とを含む。コントローラ部１２０は、スキャナ部１１０およびプリンタ部１４０と電気的に接続される。コントローラ部１２０はさらに、ＬＡＮ、ＩＳＤＮ、インターネット／イントラネット等のネットワーク１５０と接続される。コントローラ部１２０は、スキャナ部１１０を制御して原稿の画像データを取得し、プリンタ部１４０を制御して画像データを用紙に印刷して出力するコピー機能を提供する。また、コントローラ部１２０は、スキャナ部１１０を制御して取得した画像データをコードデータに変換し、ネットワーク１５０を介して図示しないホストコンピュータに送信するスキャン機能を提供する。また、コントローラ部１２０は、ホストコンピュータからネットワーク１５０を介して受信したコードデータを画像データに変換し、プリンタ部１４０を制御して画像データを用紙に印刷するプリンタ機能を提供する。さらに、コントローラ部１２０は、ネットワーク１５０（例えばＩＳＤＮ）から受信したデータをプリントするＦＡＸ受信機能や、ネットワーク１５０にスキャンしたデータを送信するＦＡＸ送信機能を有する。スキャン、プリント、ＦＡＸ送受信といった各機能における処理の実行指示をジョブと呼び、画像形成装置１００は各ジョブに従って処理を実行する。操作部１３０は、例えば液晶タッチパネルであって、コントローラ部１２０に接続される。操作部１３０は、画像形成装置１００を操作するためのユーザインタフェースを提供する。
【００１３】
＜コントローラ部＞
図２は、第１の実施形態におけるコントローラ部１２０の構成を示すブロック図である。コントローラ部１２０は、メインコントローラ部２００と、拡張コントローラ部２０１と、モード設定部２０２と、リングバススイッチ設定部（経路設定部ともいう）２０３とを有する。また、コントローラ部１２０は、ＲＯＭ２０４と、ＲＡＭ２０５と、ＨＤＤ２０６と、ＰＨＹ２０７とを有する。さらに、コントローラ部１２０は、各処理モジュール（後述する、プリント処理部、ループバック処理部、およびスキャン処理部）が一時的な作業領域として使用するＲＡＭ２０８，２０９を有する。メインコントローラ部２００と拡張コントローラ部２０１とは、リングバス（図２において白抜き矢印で示される通信バス）で接続される。
【００１４】
コントローラ部１２０の各構成要素について説明する。本実施形態においては、コントローラ部１２０はプリント基板等の電子回路基板であり、メインコントローラ部２００および拡張コントローラ部２０１はＬＳＩである。なお、コントローラ部１２０、メインコントローラ部２００および拡張コントローラ部２０１はその他の形態で実現されてもよい。また、本実施形態では、拡張コントローラ部２０１の構成をメインコントローラ部２００と同一構成としている。ただし、拡張用集積回路として動作可能であれば、拡張コントローラ部２０１はどのような機能や構成を有するものであってもよい。すなわち、拡張コントローラ部２０１は、リングバスに接続してパケットデータをやり取り可能なインタフェースを有していればよい。
【００１５】
まず、メインコントローラ部２００について説明する。メインコントローラ部２００は、システム制御部（制御モジュールともいう）２１０と、リングバススイッチ２２０と、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０とを有する。メインコントローラ部２００はさらに、電源制御部２７０と、クロック制御部２８０と、ＲＡＭコントローラ２６０と、リングバス外部インタフェース（リングバス外部Ｉ／Ｆ）２９０とを有する。
【００１６】
メインコントローラ部２００のシステム制御部２１０は、スキャナ部１１０を用いたスキャン処理やプリンタ部１４０を用いたプリント処理を制御する。システム制御部２１０は、それらの処理で用いられる画像データの転送を、リングバススイッチ２２０を介して行う。システム制御部２１０とリングバススイッチ２２０とはリングバスで接続される。また、システム制御部２１０は、ネットワーク１５０へのデータ送信やネットワーク１５０からのデータ受信、操作部１３０の表示処理などを行う。このように、システム制御部２１０はシステム全体を統括制御する。
【００１７】
メインコントローラ部２００のリングバススイッチ２２０は、画像データをコントローラ部１２０内の各ブロックに転送するためのリングバスのスイッチ制御を行う。すなわち、リングバススイッチ２２０は、リングバスの経路制御を行う。本実施形態では、各ブロックに画像データを転送するためのリングバスが、図２に示すように、リングバススイッチ２２０を介してリング状につながっている。これによりシステム制御部２１０とプリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０、リングバス外部Ｉ／Ｆ２９０は画像データをやり取りすることができる。リングバススイッチ２２０は、必要に応じてリングバス上にある各ブロックの接続先を変更するためのスイッチを備える。リングバススイッチ２２０は、リングバススイッチ設定部２０３（具体的には、リングバススイッチ設定部２０３が有するレジスタ）の設定値に従ってスイッチを制御する。リングバススイッチ２２０が行うスイッチ制御については後述する。
【００１８】
メインコントローラ部２００のプリント処理部２３０は、プリンタ部１４０で画像データを印字するための色空間変換処理や中間長処理、ガンマ補正など各種画像処理を行う。プリント処理部２３０はリングバススイッチ２２０から画像データを受け取り、画像データに上記画像処理を施した後に画像データをプリンタ部１４０に出力する。
【００１９】
メインコントローラ部２００のループバック処理部２４０は、プリント処理とスキャン処理のどちらでも利用する可能性がある画像処理を実施するブロックである。本実施形態では、ループバック処理部２４０は、変倍処理、画像合成処理、回転処理などを行う。ループバック処理部２４０はシステム制御部２１０からリングバスを介して画像データを受け取り、画像データに上記画像処理を施し、処理後の画像データをリングバススイッチ２２０に転送する。リングバススイッチ２２０に転送された画像データは、リングバスを介してシステム制御部２１０に転送される。
【００２０】
メインコントローラ部２００のスキャン処理部２５０は、スキャナ部１１０で取得した画像データに対して、シェーディング補正処理やＭＴＦ補正処理、入力ガンマ補正やフィルタ処理といった画像処理を行う。スキャン処理部２５０はスキャナ部１１０から転送されてきた画像データにこれら画像処理を施し、処理後の画像データをリングバススイッチ２２０に転送する。リングバススイッチ２２０に転送された画像データは、リングバスを介してシステム制御部２１０に転送される。
【００２１】
メインコントローラ部２００のＲＡＭコントローラ２６０は、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０から受け取った画像データを、ＲＡＭ２０８に一時的に書き込む。またＲＡＭコントローラ２６０は、各処理モジュール（プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０）からの指示に従ってＲＡＭ２０８に書き込んだ画像データを読み込んで、各処理モジュールに転送する。このように、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０はそれぞれ、画像処理を実行する際に一時的な画像バッファとしてＲＡＭ２０８を利用する。また、このときＲＡＭコントローラ２６０とＲＡＭ２０８間の転送路には、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０それぞれの画像データが多重化されて行き交う。そのため、この転送路の転送処理性能（メモリ帯域性能）を上回るデータ転送が要求されると、転送待ち状態が発生する。よって、ＲＡＭコントローラ２６０とＲＡＭ２０８間のデータ転送がメインコントローラ部２００の処理能力のボトルネックになるケースが多々発生する。なお、ＲＡＭコントローラ２６０は、ステータスが変化した場合に割り込み信号２１０２を発行する。例えば、ＲＡＭコントローラ２６０は、起動時にＲＡＭ２０８とのアクセスタイミング調整などの初期化を行い、初期化が完了した時に割り込み信号を発行する。割り込み信号２１０２は、図２に示すように、システム制御部２１０のＣＰＵ（後述する、ＣＰＵ３１０）に通知される。
【００２２】
メインコントローラ部２００のリングバス外部Ｉ／Ｆ２９０は、リングバススイッチ２２０を中心としたメインコントローラ部２００内のリングバスと、メインコントローラ部２００の外部とを接続するインタフェースである。メインコントローラ部２００は、リングバス外部Ｉ／Ｆ２９０を介して、外部とデータの送受信を行う。本実施形態では、リングバス外部Ｉ／Ｆ２９０は、図２に示すように、拡張コントローラ部２０１とリングバスで接続される。
【００２３】
メインコントローラ部２００の電源制御部２７０は各処理モジュールに供給する電圧を制御する。メインコントローラ部２００のクロック制御部２８０は各処理モジュールに入力するクロックを制御する。
【００２４】
割り込み信号２１０１は、システム制御部２１０（具体的には、後述する、システム制御部２１０の割り込み制御部３８０）から出力される。プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０はそれぞれ、後述するように、割り込み信号を入力する割り込み外部ポートと、割り込み制御部とを備える。図２に示すように、システム制御部２１０の割り込み制御部３８０と、各処理モジュールの外部ポートとは、割り込み信号２１０１を伝達可能な信号線で接続されている。割り込み信号２１０１は、各処理モジュールの割り込み外部ポートを介して、各処理モジュールの割り込み制御部に入力される。
【００２５】
次に、拡張コントローラ部２０１について説明する。拡張コントローラ部２０１は、コントローラ部１２０の処理を高速化するための拡張用集積回路である。本実施形態では、拡張コントローラ部２０１の構成はメインコントローラ部２００と同様である。よって、拡張コントローラ部２０１内の各ブロック（システム制御部２１１、リングバススイッチ２２１、電源制御部２７１、クロック制御部２８１、リングバス外部Ｉ／Ｆ２９１）の機能は、メインコントローラ部２００内の対応するブロックと同様である。また、システム制御部２１１から出力される割り込み信号２１１１は、メインコントローラ部２００内における割り込み信号２１０１信号と同様である。また本実施形態では、拡張コントローラ部２０１のプリント処理部２３１、ループバック処理部２４１、およびスキャン処理部２５１のうちループバック処理部２４１が拡張機能として使用される。その理由は、プリント処理部２３１やスキャン処理部２５１を使用すると、プリンタ部１４０やスキャナ部１１０を、メインコントローラ部２００から拡張コントローラ部２０１に接続し直す必要が発生し、コントローラ部１２０の構成が複雑化するからである。さらに本実施形態では、動作させる必要がないプリント処理部２３１やスキャン処理部２５１やシステム制御部２１１内のＣＰＵ（図７に示すＣＰＵ３１１）に供給される電源を遮断したり、それらに供給されるクロックを停止したりできる。それにより、システムの消費電力を抑えることが可能となるためである。図２では、電源遮断またはクロック停止されるブロックがグレーアウト表示されている。
【００２６】
モード設定部２０２は、電源制御部２７０，２７１やクロック制御部２８０，２８１の設定を行うための信号を出力する。またモード設定部２０２は、リングバススイッチ設定部２０３の設定を行うための信号を出力する。モード設定部２０２には、それらの信号を制御するための情報（以下、モード設定情報という）が予め設定されている。そして、コントローラ部１２０の電源が投入されるとメインコントローラ部２００、拡張コントローラ部２０１、およびリングバススイッチ設定部２０３が起動する前に、モード設定情報に従ってモード設定部２０２から信号が出力される。電源制御部２７０，２７１はモード設定部２０２からの信号によって指定される処理部にのみ電圧を供給する。またクロック制御部２８０，２８１も同様にモード設定部２０２からの信号によって指定される処理部にのみ所望のクロックを出力する。さらにリングバススイッチ設定部２０３も同様にモード設定部２０２からの信号に応じて、リングバススイッチ２２０への制御信号を出力する。これにより、一方のＬＳＩをメインコントローラ部として動作させ、他方のＬＳＩを拡張コントローラ部として動作させることが可能となる。また、メインコントローラ部や拡張コントローラ部における一部の処理部を動作させたり、停止させたりすることが可能となる。なお、電源制御部２７０，２７１およびクロック制御部２８０，２８１に対しては、メインコントローラ部２００および拡張コントローラ部２０１の入力端子（図示せず）を介して、モード設定部２０２から出力される信号が入力される。
【００２７】
＜システム制御部＞
本実施形態では、メインコントローラ部２００のシステム制御部２１０と、拡張コントローラ部２０１のシステム制御部２１１とは同様の構成である。したがって、以下では、システム制御部２１０の内部構成について説明する。図３は、メインコントローラ部２００のシステム制御部２１０の内部構成を示すブロック図である。図３を用いて、システム制御部２１０内の各ブロックについて詳細に説明する。
【００２８】
システム制御部２１０内の各ブロックはシステムバス３００によって接続される。ＣＰＵ３１０は、システム全体を制御するプロセッサである。ＣＰＵ３１０は、ＲＡＭ２０５に展開されたＯＳや制御プログラムに従ってプリント処理やスキャン処理といったジョブ処理を統括的に制御する。
【００２９】
ＲＯＭコントローラ３２０は、ＲＯＭ２０４にアクセスするための制御モジュールである。ＲＯＭ２０４にはシステムのブートプラグラムが格納される。画像形成装置１００の電源がＯＮされると、ＣＰＵ３１０はＲＯＭコントローラ３２０を介してＲＯＭ２０４にアクセスし、ＣＰＵ３１０がブートする。
【００３０】
ＲＡＭコントローラ３３０は、ＲＡＭ２０５にアクセスするための制御モジュールである。ＲＡＭ２０５にはシステムの制御プログラムや画像データが格納される。ＲＡＭコントローラ３３０は、ＲＡＭ２０５の設定や制御を行うためのレジスタを備える。このレジスタは、ＣＰＵ３１０からアクセス可能である。
【００３１】
操作部インタフェース３４０は、操作部１３０から入力されるユーザの操作指示を受け付けたり、操作結果の表示の制御を行ったりする。
【００３２】
ＨＤＤコントローラ３６０は、ＨＤＤ（ハードディスクドライブ）２０６とシステムバス３００とを接続する。ＨＤＤ２０６は、システムソフトウェアやアプリケーションプログラムを格納する。また、ＨＤＤ２０６は、画像データと、各画像データに対応するページ情報やジョブ情報とを格納する。ＣＰＵ３１０は、ＨＤＤコントローラ３６０に指示を入力することで、ＨＤＤ２０６からデータを読み込んだり、ＨＤＤ２０６にデータを書き込んだりする。
【００３３】
ＬＡＮコントローラ３７０は、ＰＨＹ２０７を介してネットワーク１５０に接続し、外部のホストコンピュータとの間で画像データなどの情報の入出力を行う。
【００３４】
モデム３７２は図示しない公衆回線に接続し、ＦＡＸ送信処理やＦＡＸ受信処理といったジョブ処理が行われる際に、外部のＦＡＸ機器とデータ通信を行う。
【００３５】
画像圧縮部３５０は、ＲＡＭ２０５またはＨＤＤ２０６に格納される画像データをＪＰＥＧフォーマットに圧縮処理する。また画像伸張部３５１はＪＰＥＧフォーマットに圧縮された画像データを伸張処理する。
【００３６】
レンダリング部３５２は、ネットワーク１５０からＬＡＮコントローラ３７０を経由して受信した画像データ（ＰＤＬデータ）を、プリンタ部１４０で取り扱い可能なビットマップデータに変換する。
【００３７】
割り込み制御部３８０は、システム制御部２１０における割り込みを制御する。割り込み制御部３８０は、システム制御部２１０に入力される割り込み処理要求を受け付けて、ＣＰＵ３１０に割り込みの通知（以下、割り込み通知と呼ぶ）を行う。本実施形態では、割り込み制御部３８０は、割り込み処理要求を受け付けると、割り込み信号３９０１をＣＰＵ３１０に送出する。それにより、ＣＰＵ３１０に割り込みが通知される。なお割り込み制御部３８０は、各処理モジュールからの割り込み処理要求を入力可能であり、さらに、入力された割り込み処理要求を割り込み信号３９０１としてＣＰＵ３１０に通知するか否かを選択可能である。また割り込み信号３９０１は、システム制御部２１０のポート（図示せず）から、図２に示す割り込み信号２１０１として外部に出力される。
【００３８】
リングバスＩ／Ｆ３０１は、システム制御部２１０内のシステムバス３００と、システム制御部２１０外のリングバススイッチ２２０を中心としたリングバスとを接続するインタフェースである。以下、リングバスを流れるデータをパケットデータ、または単にパケットと呼ぶ。リングバスＩ／Ｆ３０１は、ＲＡＭ２０５またはＨＤＤ２０６に格納されたパケットデータをリングバスに送信する。また、リングバスＩ／Ｆ３０１は、リングバスから受信したパケットデータをＲＡＭ２０５またはＨＤＤ２０６に格納する。ここでパケットデータについて詳細に説明する。
【００３９】
図４は、第１実施形態においてリングバスを流れるパケットデータの一例を示す図である。パケット４００は、ヘッダ部４１０とデータ部４２０とを有する。ヘッダ部４１０は、パケットタイプ４１１，チップＩＤ４１２，ページＩＤ４１３，ジョブＩＤ４１４，パケットＹ座標４１５，パケットＸ座標４１６，パケットバイト長４１７，およびデータバイト長４１８を含む。
【００４０】
パケットタイプ４１１は、パケット４００が画像データ、コマンド、割り込みのいずれであるかを示す情報である。パケットタイプ４１１が画像データを示す場合には、データ部４２０には画像データが格納される。また、パケットタイプ４１１がコマンドを示す場合には、データ部４２０には各処理部の係数やモードなどを設定するための設定アドレスと設定値とを示すデータが格納される。さらに、パケットタイプ４１１が割り込みを示す場合には、データ部４２０には割り込み要因を示すステータスデータが格納される。
【００４１】
チップＩＤ４１２は、パケット４００を送信するターゲット（宛て先）となる処理部を識別するためのＩＤ（識別子）である。例えばチップＩＤが０ならば、プリント処理部２３０がターゲットとなる。チップＩＤが１ならばループバック処理部２４０がターゲットとなる。チップＩＤが２ならばスキャン処理部２５０がターゲットとなる。チップＩＤが３ならばシステム制御部２１０（具体的には、システム制御部２１０の割り込み制御部３８０）がターゲットとなる。チップＩＤが４ならば拡張コントローラ部２０１内のループバック処理部２４１がターゲットとなる。
【００４２】
ページＩＤ４１３は、パケット４００が属するページ番号を示す。スキャンやプリントといった処理は複数ページ実施される場合があり、その場合にパケット４００が何ページ目に属するパケットであるかを示す情報である。
【００４３】
ジョブＩＤ４１４は、パケット４００が属するジョブ番号を示す。例えば、スキャンジョブとプリントジョブが同時に実施される場合にはスキャンジョブのパケットには１が割り当てられ、プリントジョブのパケットには２が割り当てられる。それにより、ジョブを識別することが可能となる。
【００４４】
パケットＹ座標４１５は、データ部４２０に画像データが格納されている場合に、その画像データのページ内における位置（Ｙ座標）を示す。また、パケットＸ座標４１６は、データ部４２０に画像データが格納されている場合に、その画像データのページ内における位置（Ｘ座標）を示す。データ部４２０に格納される画像データはページ単位の画像データを所定の画素数（例えば、３２画素×３２画素）の矩形サイズに分割したものである。よってパケットデータからページデータを再生成する場合に、上記Ｙ座標およびＸ座標が参照される。なお、データ部４２０に格納される画像データは、画像圧縮部３５０または各処理部に実装されている圧縮器によって圧縮されたデータ（圧縮画像データ）である。パケットバイト長４１７は、パケット４００のトータルバイト数を示し、データバイト長４１８はデータ部４２０のトータルバイト数を示す。
【００４５】
本実施形態におけるリングバスには以上説明したようなパケットデータが流れ、各処理部はパケットデータを受信して解釈する。そして、各処理モジュールが受信したパケットがコマンドを含むパケットであれば、当該コマンドで指定される、処理のモードや係数などが、各処理モジュールに設定される。以降、各処理モジュールは、自モジュールに設定されたモードや係数に従って動作する。また、各処理モジュールが受信したパケットが画像データを含むパケットであれば、各処理モジュールにおいて、当該画像データに対する画像処理が実行される。
【００４６】
次に、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０について図５を用いて詳細に説明する。図５は、第１の実施形態におけるプリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０の内部構成の一例を示すブロック図である。なお、本実施形態では、画像データに対して画像処理を行う処理モジュール（プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０）を例にする。しかし、メインコントローラ部２００および拡張コントローラ部２０１は、画像データ以外のデータを含むパケットを受信し、受信したデータに対して画像処理以外の処理を行う処理モジュールを有していても良いことは言うまでもない。
【００４７】
＜プリント処理部＞
図５（ａ）には、プリント処理部２３０の内部構成の一例が示されている。パケット入出力Ｉ／Ｆ５００は、パケット入力部５０４とパケット出力部５０５とを有する。パケット入力部５０４は、パケットを受信すると、ヘッダ部４１０のチップＩＤ４１２を参照し、自身に割り振られたチップＩＤと同一かどうかを確認する。チップＩＤ４１２が示すＩＤが自身に割り振られたチップＩＤと異なる場合、パケット入力部５０４は、プリント処理部２３０で処理すべきパケットではないと判断する。そして、パケット入力部５０４は、パケット出力部５０５にパケットを転送する。一方、チップＩＤ４１２が示すＩＤがプリント処理部２３０に割り振られたチップＩＤと同一である場合、パケット入力部５０４は、プリント処理部２３０で処理すべきパケットであると判断する。このとき、パケットに画像データが含まれる場合は、伸張器５０１，パケットラスタ変換部５０２、およびプリンタ画像処理部５０３を経由して、当該画像データに対して画像処理が実行される。また、パケットにコマンドが含まれる場合は、パケット入力部５０４は、データ部４２０に格納されている設定アドレスと設定値とを参照し、指定された係数やモードを設定保持部５０６に設定する。また、パケットが設定値をリードするコマンドを含む場合は、設定保持部５０６によって、設定値を格納したパケットがパケット出力部５０５に送られる。設定保持部５０６は、プリント処理部２３０で使用される設定値を保持する。伸張器５０１、パケットラスタ変換部５０２、およびプリンタ画像処理部５０３は、設定保持部５０６が保持する設定値に基づいて処理を行う。
【００４８】
割り込み制御部５０７は、割り込み外部ポート（以下、単に外部ポートと呼ぶ）５０８またはプリンタ画像処理部５０３からの割り込み信号を検知すると、検知した割り込み信号に対応する割り込み要因を割り込みステータス値として保持する。そして割り込み制御部５０７は、割り込みパケット（パケットタイプが割り込みを示すパケット）を生成する。
【００４９】
まず、ヘッダ部４１０の生成について説明する。割り込み制御部５０７は、パケットタイプ４０１に割り込みパケットを示す値を設定する。また割り込み制御部５０７は、チップＩＤ４１２に、システム制御部２１０のチップＩＤ（本実施形態では、３）を設定する。さらに割り込み制御部５０７は、パケットバイト長４１７にパケットのトータルバイト数を、データバイト長４１８に割り込みステータス値のトータルバイト数を設定する。ヘッダ部４１０のその他の情報は未使用であるため、任意の値が設定される。
【００５０】
次に、データ部４２０の生成について説明する。割り込み制御部５０７は、割り込み信号を検知した際に保持した割り込みステータス値を、データ部４２０に格納する。図４に示す割り込み要因４２０１〜４２０８は、プリント処理部２３０から送出される割り込みパケットの、データ部に格納される情報の一例である。割り込み制御部５０７は、検知した割り込み信号に応じて、割り込み要因４２０１〜４２０８に値を設定する。本実施形態では、割り込み要因４２０１〜４２０８には初期値として「０」が設定されていて、割り込み信号が検知されると、検知された割り込み信号に対応する割り込み要因に「１」が設定される。割り込み要因４２０１は、外部ポート５０８からの割り込み信号が検知された場合に設定される。割り込み要因４２０２〜４２０８は、プリント処理において割り込みが発生した場合に設定される。本実施形態では、割り込み要因４２０２〜４２０８は、プリンタ画像処理部５０３からの割り込み信号が検知された場合に設定される。割り込み要因４２０２は、アンダーランエラーが発生したことを示す。アンダーランエラーはプリント動作に対して画像データの供給が間に合わなかった場合に発生するエラーである。割り込み要因４２０３は、本実施形態では未使用である。割り込み要因４２０４は、プリンタ部１４０から主走査同期信号を受信したことを示す。割り込み要因４２０５は、プリンタ部１４０から副走査同期信号を受信したことを示す。割り込み要因４２０６は、プリンタ部１４０に紙の先端が到達したことを示す。割り込み要因４２０７は、プリンタ部１４０に紙の後端が到達したことを示す。割り込み要因４２０８は、プリンタ画像処理部５０３が１ページ分の処理を完了したことを示す。
【００５１】
割り込み制御部５０７は、生成した割り込みパケットをパケット入出力Ｉ／Ｆ５００に渡す。そして、パケット入出力Ｉ／Ｆ５００のパケット出力部５０５は、リングバスを介してシステム制御部２１０に割り込みパケットを送信する。割り込みパケットは、システム制御部２１０の割り込み制御部３８０によって受信される。割り込み制御部３８０は、受信した割り込みパケットに基づき、ＣＰＵ３１０に割り込み通知を行う。ＣＰＵ３１０は、割り込み通知に応じてプリント処理部２３０を制御する。
【００５２】
パケット出力部５０５は、パケット入力部５０４、設定保持部５０６、および割り込み制御部５０７から送られてくるパケットデータの調停を行い、リングバスにパケットデータを転送する。
【００５３】
伸張器５０１は、パケット入出力Ｉ／Ｆ５００から送られてくる、圧縮された画像データを伸張する。それにより、圧縮された画像データが、後段の画像処理を実施可能な画素状態に復元される。
【００５４】
パケットラスタ変換部５０２は、伸張された画素データを伸張器５０１から受け取り、ラスタ画像データに変換する。前述したようにパケットには、矩形（３２画素×３２画素）の画像データが格納されている。画像形成装置１００が例えば電子写真方式である場合、プリンタ部１４０における印刷処理はラスタ順（ライン順）で行われる。そこで、本実施形態では、パケットラスタ変換部５０２が画像データの画素の並びをラスタ順に変換する。パケットラスタ変換部５０２は、画像データを変換する際に、ＲＡＭ２０８を一時バッファとして使用する。なお、パケットラスタ変換部５０２は、ＲＡＭコントローラ２６０を介して、ＲＡＭ２０８に対するアクセスを行う。
【００５５】
プリンタ画像処理部５０３は、ラスタ順に変換された画像データをパケットラスタ変換部５０２から受け取り、プリンタ部１４０で画像データを印刷するための前処理としての画像処理を行う。具体的にはＲＧＢをＣＭＹＫに変換する色空間変換処理、ディザ法や誤差拡散法による中間長処理、ガンマ補正などである。プリンタ画像処理部５０３は、画像処理後の画像データをプリンタ部１４０に出力する。また、プリンタ画像処理部５０３は、プリンタ部１４０の起動および給紙部１４２からの給紙のタイミングに合わせて、プリンタ部１４０に画像データを出力する必要がある。そのため、プリンタ画像処理部５０３は、画像処理後の画像データを、そのタイミングまでバッファリングする。具体的には、プリンタ画像処理部５０３は、画像処理後の画像データを、ＲＡＭコントローラ２６０を介してＲＡＭ２０８に一時的に書き込む。そして、プリンタ画像処理部５０３は、給紙のタイミングに同期させＲＡＭ２０８から画像データを読み込み、プリンタ部１４０に出力する。
【００５６】
＜ループバック処理部＞
図５（ｂ）には、ループバック処理部２４０の内部構成の一例が示されている。パケット入出力Ｉ／Ｆ５１０は、パケット入力部５１４とパケット出力部５１５とを有する。パケット入力部５１４は、パケットデータを受信すると、ヘッダ部４１０のチップＩＤ４１２を参照し、ループバック処理部２４０に割り振られたチップＩＤと同一かどうかを確認する。チップＩＤ４１２が示すＩＤがループバック処理部２４０に割り振られたチップＩＤと異なる場合、パケット入力部５１４は、ループバック処理部２４０で処理すべきパケットデータではないと判断する。そして、パケット入力部５１４は、パケット出力部５１５にパケットデータを転送する。一方、チップＩＤ４１２の示すＩＤがループバック処理部２４０に割り振られたチップＩＤと同一である場合、パケット入力部５１４は、ループバック処理部２４０で処理すべきパケットであると判断する。このとき、パケットに画像データが含まれる場合は、伸張器５１１、およびループバック画像処理部５１２を経由して、当該画像データに対して画像処理が実行される。画像処理後の画像データは圧縮器５１３を経由して、パケット入出力Ｉ／Ｆ５１０に入力される。パケット入出力Ｉ／Ｆ５１０は圧縮器５１３から画像データを受け取ると、当該画像データにヘッダを付与し、当該画像データをパケットデータとしてシステム制御部２１０に送信する。また、パケットにコマンドが含まれる場合は、パケット入力部５１４は、データ部４２０に格納されている設定アドレスと設定値とを参照し、指定された係数やモードを設定保持部５１６に設定する。また、パケットが設定値をリードするコマンドを含む場合は、設定保持部５１６によって、設定値を格納したパケットがパケット出力部５１５に送られる。設定保持部５１６は、ループバック処理部２４０で使用される設定値を保持する。伸張器５１１、ループバック画像処理部５１２、および圧縮器５１３は、設定保持部５１６が保持する設定値に基づいて処理を行う。
【００５７】
割り込み制御部５１７は、外部ポート５１８またはループバック画像処理部５１２からの割り込み信号を検知すると、検知した割り込み信号に対応する割り込み要因を割り込みステータス値として保持する。そして割り込み制御部５１７は、割り込みパケットを生成する。ヘッダ部４１０の生成については、前述した内容と同様である。したがって、ここではデータ部４２０の生成についてのみ説明する。
【００５８】
割り込み制御部５１７は、割り込み信号を検知した際に保持したステータス値を、データ部４２０に格納する。図４に示す割り込み要因４２１１〜４２１８は、ループバック処理部２４０から送出される割り込みパケットの、データ部に格納される情報の一例である。割り込み要因４２１１は、外部ポート５１８からの割り込み信号が検知された場合に設定される。割り込み要因４２１２〜４２１８は、ループバック処理において割り込みが発生した場合に設定される。本実施形態では、割り込み要因４２１２〜４２１８は、ループバック処理部２４０からの割り込み信号が検知された場合に設定される。割り込み要因４２１２は、フォーマットエラーが発生したことを示す。フォーマットエラーは、ループバック処理部２４０に入力された画像データのフォーマットと処理内容とが不一致の場合に発生するエラーである。割り込み要因４２１３〜４２１７は、本実施形態では未使用である。割り込み要因４２１８は、ループバック処理部２４０が１ページ分の処理を完了したことを示す。
【００５９】
割り込み制御部５１７は生成した割り込みパケットをパケット入出力Ｉ／Ｆ５１０に渡す。そして、パケット入出力Ｉ／Ｆ５１０のパケット出力部５１５は、リングバスを介してシステム制御部２１０に割り込みパケットを送信する。割り込みパケットは、システム制御部２１０の割り込み制御部３８０によって受信される。割り込み制御部３８０は、受信した割り込みパケットに基づき、ＣＰＵ３１０に割り込み通知を行う。ＣＰＵ３１０は、割り込み通知に応じてスキャン処理部２５０を制御する。
【００６０】
パケット出力部５１５は、パケット入力部５１４、圧縮器５１３、設定保持部５１６、および割り込み制御部５１７から送られてくるパケットデータの調停を行い、リングバスにパケットデータを転送する。
【００６１】
伸張器５１１は、伸張器５０１と同様であるため説明を省略する。
【００６２】
圧縮器５１３は、ループバック画像処理部５１２から送られてくる、処理済みの画像データを圧縮し、後段のパケット入出力Ｉ／Ｆ５１０に出力する。この圧縮処理は、パケットデータに画像データを格納可能にするために行われる。
【００６３】
ループバック画像処理部５１２は、プリント処理とスキャン処理のどちらでも利用する可能性がある編集系の画像処理、例えば変倍処理、画像合成処理、回転処理を行う。ループバック画像処理部５１２は、伸張器５１１から受け取った画像データに対して、上記編集系の画像処理を施し、処理後の画像データを圧縮器５１３に出力する。拡張コントローラ部２０１のループバック処理部２４１のループバック画像処理部５１２でも同様に、上記編集系の画像処理が行われる。
【００６４】
＜スキャン処理部＞
図５（ｃ）には、スキャン処理部２５０の内部構成の一例が示されている。パケット入出力Ｉ／Ｆ５２０は、パケット入力部５２４とパケット出力部５２５とを有する。パケット入力部５２４は、パケットデータを受信すると、ヘッダ部４１０のチップＩＤ４１２を参照し、スキャン処理部２５０に割り振られたチップＩＤと同一かどうかを確認する。チップＩＤ４１２が示すＩＤがスキャン処理部２５０に割り振られたチップＩＤと異なる場合、スキャン処理部２５０で処理すべきパケットデータではないと判断する。そして、パケット入力部５２４は、パケット出力部５２５にパケットデータを転送する。一方、チップＩＤ４１２が示すＩＤがスキャン処理部２５０に割り振られたチップＩＤと同一である場合、パケット入力部５２４は、スキャン処理部２５０で処理すべきパケットであると判断する。このとき、パケットにコマンドが含まれる場合は、パケット入力部５２４は、データ部４２０に格納されている設定アドレスと設定値を参照し、指定された係数やモードを設定保持部５２６に設定する。なお、スキャン処理部２５０にはスキャナ部１１０からのみ画像データが入力されるため、受信したパケットのパケットが画像データを示すことはない。また、パケットが設定値をリードするコマンドを含む場合は、設定保持部５２６によって、設定値を格納したパケットがパケット出力部５２５に送られる。設定保持部５２６は、スキャン処理部２５０で使用される設定値を保持する。圧縮器５２１、ラスタパケット変換部５２２、およびスキャン画像処理部５２３は、設定保持部５２６が保持する設定値に基づいて処理を行う。
【００６５】
割り込み制御部５２７は、外部ポート５２８またはスキャン画像処理部５２３からの割り込み信号を検知すると、検知した割り込み信号に対応する割り込み要因を割り込みステータス値として保持する。そして割り込み制御部５２７は、割り込みパケットを生成する。ヘッダ部４１０の生成については前述した内容と同様である。したがって、ここではデータ部４２０の生成についてのみ説明する。
【００６６】
割り込み制御部５２７は、割り込み信号を検知した際に保持したステータス値を、データ部４２０に格納する。図４に示す割り込み要因４２２１〜４２２８は、スキャン処理部２５０から送出される割り込みパケットの、データ部に格納される情報の一例である。割り込み要因４２２１は、外部ポート５２８からの割り込み信号が検知された場合に設定される。割り込み要因４２２２〜４２２８は、スキャン処理において割り込みが発生した場合に設定される。本実施形態では、割り込み要因４２２２〜４２２８は、スキャン処理部２５０からの割り込み信号が検知された場合に設定される。割り込み要因４２２２は、オーバーランエラーが発生したことを示す。オーバーランエラーは、スキャン動作に対してメモリへのスキャンデータの書き込みが間に合わなかった場合に発生するエラーである。割り込み要因４２２３は、本実施形態では未使用である。割り込み要因４２２４は、スキャナ部１１０から主走査同期信号を受信したことを示す。割り込み要因４２２５は、スキャナ部１１０から副走査同期信号を受信したことを示す。割り込み要因４２２６は、スキャナ部１１０に紙の先端が到達したことを示す。割り込み要因４２２７は、スキャナ部１１０に紙の後端が到達したことを示す。割り込み要因６２２７は、スキャン画像処理部５２３が１ページ分の処理を完了したことを示す。
【００６７】
割り込み制御部５２７は、生成した割り込みパケットをパケット入出力Ｉ／Ｆ５２０に渡す。そして、パケット入出力Ｉ／Ｆ５２０のパケット出力部５２５は、リングバスを介してシステム制御部２１０に割り込みパケットを送信する。割り込みパケットは、システム制御部２１０の割り込み制御部３８０によって受信される。割り込み制御部３８０は、受信した割り込みパケットに基づき、ＣＰＵ３１０に割り込み通知を行う。ＣＰＵ３１０は、割り込み通知に応じてスキャン処理部２５０を制御する。
【００６８】
パケット出力部５２５は、パケット入力部５２４、設定保持部５２６、および割り込み制御部５２７から送られてくるパケットデータの調停を行い、リングバスにパケットデータを転送する。
【００６９】
圧縮器５２１は、ラスタパケット変換部５２２から送られてくる画像データを圧縮し、後段のパケット入出力Ｉ／Ｆ５２０に出力する。この圧縮処理は、パケットデータに画像データを格納可能にするために行われる。
【００７０】
ラスタパケット変換部５２２は、スキャン画像処理部５２３から受け取った画素データを、パケット送信可能な画像データに変換する。前述したように、本実施形態では、パケットデータのデータ部に格納される画像データは、矩形（３２画素×３２画素）の画像データである。一方、スキャナ部１１０でのスキャン処理はライン型のイメージセンサを用いてラスタ順（ライン順）で行われる。そこで、ラスタパケット変換部５２２は、スキャン画像処理部５２３から受け取った画像データの画素の並びをラスタ順から、３２画素×３２画素の矩形ごとに並び替える。ラスタパケット変換部５２２、画像データを変換する際に、ＲＡＭ２０８を一時バッファとして使用する。
【００７１】
スキャン画像処理部５２３は、スキャナ部１１０から画像データを受け取り、シェーディング補正処理やＭＴＦ補正処理、入力ガンマ補正やフィルタ処理といった画像処理を行う。画像処理後の画像データはラスタパケット変換部５２２に出力される。なお、スキャン画像処理部５２３は、スキャナ部１１０でのイメージセンサを用いたスキャン動作を停止させないために、入力される画像データの転送速度に間に合うように画像データを受信する必要がある。一方で、パケット入出力Ｉ／Ｆ５２０によるパケット送信が他の処理部（プリント処理部２３０やループバック処理部２４０）のパケット送信とタイミングが重なった場合、自身のパケット送信が待たされる場合がある。そのような場合、パケットの送信速度が安定しなくなる。そのため、スキャン画像処理部５２３は、送信タイミングまでの一時的な干渉用の画像バッファとしてＲＡＭ２０８を使用する。そして、スキャン画像処理部５２３は、一時的にＲＡＭ２０８に格納した画像データを、パケット送信のタイミングに同期させて読み込み、読み込んだ画像データをラスタパケット変換部５２２に送信する。
【００７２】
＜リングバススイッチ＞
図６は、第１の実施形態におけるリングバススイッチ２２０の内部構成の一例を示すブロック図である。リングバススイッチ２２０は、スイッチ６０１〜スイッチ６０５を有する。スイッチ６０１〜スイッチ６０５は、複数の入力から１つを選択して出力することが可能な切換器であって、例えばマルチプレクサである。スイッチ６０１〜スイッチ６０５のそれぞれは、リングバススイッチ設定部２０３に設定された値（設定値）に従って、リングバスにおける接続先を切り替える。これにより、システム制御部２１０、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０、リングバス外部Ｉ／Ｆ２９０の、それぞれのリングバス上での接続順を自由に変更することができる。
【００７３】
本実施形態においては、上記設定値は上述したように、モード設定部２０２によって、リングバスを動作させる前に値が設定されるものとしている。しかし、リングバスを動作させる前にリングバススイッチの値が確定できる構成であれば良く、メインコントローラ部２００および拡張コントローラ部２０１の外部から設定を変更できるようにしてもよい。例えば、上記設定値を編集可能なソフトウェアを用いて、ユーザが操作部１３０を介して上記設定値を変更できるように構成されていてもよい。その際、上記ソフトウェアはシステム制御部２１０のＣＰＵ３１０によって実行される。または、上述のモード設定情報を、コントローラ部１２０の外部から設定できるようにしてもよい。例えば、ネットワーク１５０を介して図示しないホストコンピュータから、モード設定情報の値を変更できるように構成されていてもよい。
【００７４】
＜コントローラ部の動作＞
図７は、第１の実施形態におけるコントローラ部１２０の動作を説明するための図である。図７には、ＲＡＭコントローラ２６１の割り込みが、リングバス外部Ｉ／Ｆ２９１，２９０を介して拡張コントローラ部２０１からメインコントローラ部２００に送信される様子が示されている。
【００７５】
メインコントローラ部２００のリングバススイッチ２２０の各スイッチは、上述したように、リングバススイッチ設定部２０３の設定値に従って制御される。それにより、システム制御部２１０を起点とするパケットが、プリント処理部２３０、リングバス外部Ｉ／Ｆ２９０、スキャン処理部２５０と順回し、システム制御部２１０へと戻る。このような接続制御は、図７に示すようにメインコントローラ部２００とともに拡張コントローラ部２０１を使用する場合に実施される。
【００７６】
拡張コントローラ部２０１のリングバススイッチ２２１の各スイッチは、リングバススイッチ設定部２１３の設定値に従って制御される。それにより、リングバス外部Ｉ／Ｆ２９１を介して外部から入力するパケットが、ループバック処理部２４１に渡って、再びリングバス外部Ｉ／Ｆ２９１を介して、外部に返される。
【００７７】
上記のようなリングバススイッチを有するメインコントローラ部２００と拡張コントローラ部２０１とを組み合わせることで、図７に示すようなパス（太線矢印で示される経路）が構築される。それにより、システム制御部２１０を起点とするパケットが、プリント処理部２３０、ループバック処理部２４１、スキャン処理部２５０と順回し、再びシステム制御部２１０へと戻る。このように、メインコントローラ部２００のループバック処理部２４０を使用せずに、拡張コントローラ部２０１のループバック処理部２４１を使用することによって、ＲＡＭ２０８へのデータ転送路の混雑を緩和させることができる。またそれにより、メインコントローラ部２００の性能の低下を防ぐことができる。
【００７８】
また図７に示すシステムでは、動作させる必要がない、ループバック処理部２４０、プリント処理部２３１、およびスキャン処理部２５１については、電源の供給が遮断される。これにより、システムの消費電力を削減することができる。これらの構成要素については、図７においてグレーアウト表示されている。
【００７９】
さらに図７に示すシステムでは、メインコントローラ部２００のＣＰＵ３１０が拡張コントローラ部２０１の制御を行う。そのため、システム制御部２１１のＣＰＵ３１１に対する電源の供給も遮断することができる。したがって、システムの消費電力をさらに削減することができる。また、拡張コントローラ部２０１のＣＰＵ３１１を起動させるためのＲＯＭや、ＣＰＵ３１０とＣＰＵ３１１との制御タイミングを調停するためのソフトウェアが不要となる。よって、システムの構成を簡素化することができる。
【００８０】
なお、図７に示すシステムでは、システム制御部２１１のＣＰＵ３１１に対する電源の供給が遮断されるため、システム制御部２１１の割り込み制御部３８１から出力される割り込み信号はＣＰＵ３１１ではなくＣＰＵ３１０に通知される必要がある。例えば、本実施形態ではＲＡＭコントローラ２６１は起動時に、ＲＡＭ２０９とのアクセスタイミング調整などの初期化を行う。ＲＡＭ２０９がＤＤＲ３  ＳＤＲＡＭである場合には、ＺＱキャリブレーションやＤＬＬリセットなどの処理を起動時に行う必要がある。ここでソフトウェア制御の簡略化のため本実施形態では、ＲＡＭコントローラ２６１はこれらの処理を自ら実行し、処理が完了すると割り込み（初期化完了割り込み）を発生させるものとする。初期化完了割り込みは、割り込み信号２１１２として、システム制御部２１１の割り込み制御部３８１に通知される。割り込み制御部３８１は割り込み信号２１１２を検知すると、割り込み信号２１１１をループバック処理部２４１の割り込み外部ポートに入力する。すると、ループバック処理部２４１は前述したとおり、割り込みパケットを生成する。生成された割り込みパケットは、図７に示すように、リングバス外部Ｉ／Ｆ２９１，２９０を介してメインコントローラ部２００のシステム制御部２１０に伝送され、スキャン処理部２５０にて受信される。ここで、割り込みパケットのチップＩＤには、システム制御部２１０に対応するチップＩＤが設定されている。したがって、スキャン処理部２５０は割り込みパケットをそのまま転送する。転送された割り込みパケットはリングバススイッチ２２０を介してシステム制御部２１０の割り込み制御部３８０によって受信され、割り込み制御部３８０からＣＰＵ３１０に割り込み通知がなされる。
【００８１】
ここでは、システム制御部２１１に入力される割り込み信号として、ＲＡＭ２０９の初期化完了割り込みに対応する割り込み信号２１１２を例にした。しかし、システム制御部２１１が他の割り込み信号を入力する場合には、それらの割り込み信号についても同様に処理される。
【００８２】
また、ループバック処理部２４１において割り込み（例えば、オーバーランエラーの割り込み）が発生した場合には、上述したように、ループバック処理部２４１の割り込み制御部において、チップＩＤに「３」が設定された割り込みパケットが生成される。そして、生成されたパケットは、図７に示すようなパスを経由してメインコントローラ部２００のシステム制御部２１０に伝送され、システム制御部２１０において割り込み制御部３８０からＣＰＵ３１０に対して割り込み通知がなされる。したがって、システム制御部２１０のＣＰＵ３１０は、ループバック処理部２４１において発生し割り込みを検知することができる。
【００８３】
一方、メインコントローラ部２００の割り込み制御部３８０から送信される割り込み信号２１０１も同様に、プリント処理部２３０およびスキャン処理部２５０に通知される。しかし、本実施形態では、プリント処理部２３０およびスキャン処理部２５０は割り込み信号２１０１をマスク制御し、割り込みパケットを生成しないようにするものとする。
【００８４】
以上のように、本実施形態では、コントローラ部１２０において、拡張コントローラ部２０１のＣＰＵ３１１を停止した場合に、拡張コントローラ部２０１からメインコントローラ部２００のＣＰＵ３１０に対して割り込み通知を行う。したがって、本実施形態によれば、複数の集積回路で構築されたシステムにおいて、ＣＰＵの機能を停止させた集積回路で割り込みが発生した場合でも、適切に割り込み制御を行うことが可能となる。
【００８５】
なお、本実施形態では、メインコントローラ部２００のループバック処理部２４０と、システム制御部２１１のＣＰＵ３１１、プリント処理部２３１、およびスキャン処理部２５１とを停止させる構成を例にしたが、本構成に限るものではない。拡張コントローラ部２０１で動作させる処理部で割り込みパケットを生成して割り込み通知をメインコントローラ部２００のＣＰＵ３１０へ通知することができれば、どのような構成であってもよい。なお、拡張コントローラ部２０１において、動作させる処理部が複数あった場合には、いずれかの処理部が選択され、選択した処理部の割り込み制御部において、割り込み信号２１１１に応じた割り込みパケットを生成させるようにしてもよい。一方、選択されなかった処理部の割り込み制御部に対しては、割り込みパケットが生成されないように設定すればよい。
【００８６】
また、本実施形態では、リングバススイッチ設定部２０３が、メインコントローラ部２００および拡張コントローラ部２０１の外部に配置される構成を例にした。しかし、メインコントローラ部２００および拡張コントローラ部２０１がそれぞれリングバススイッチ設定部を有していても良い。その場合は、モード設定部２０２は、モード設定情報に基づき、メインコントローラ部２００のリングバススイッチ設定部および拡張コントローラ部２０１のリングバススイッチ設定部のそれぞれに対して設定を行えばよい。
【００８７】
また、本実施形態では、メインコントローラ部２００の割り込み制御部３８０から送信される割り込み信号２１０１を、プリント処理部２３０およびスキャン処理部２５０においてマスク制御するようにしている。しかし、割り込み制御部が、ＬＳＩの動作モードを判定し、判定結果に基づいて割り込み通知の送信先をＣＰＵまたは各処理モジュールに切り替えるようにしてもよい。そのような形態を実現するには、例えば、メインコントローラ部として動作しているか、拡張コントローラ部として動作しているかを示す動作モード情報を各ＬＳＩに保持させればよい。そして、モード設定部２０２が、モード設定情報に基づいて各ＬＳＩの動作モード情報を設定し、各ＬＳＩの割り込み制御部が、動作モード情報に基づいて上記判定を行えばよい。
【００８８】
［第２実施形態］
図８は、第２の実施形態におけるコントローラ部１２０の動作を説明するための図である。図８に示すように、第２の実施形態におけるメインコントローラ部２００のシステム制御部２１０は、シリアル通信部８００を有する。また、拡張コントローラ部２０１のシステム制御部２１１は、シリアル通信部８０１を有する。さらに、シリアル通信部８００，８０１は、図８に示すように、シリアルバス８０３を介して互いに接続される。図８には、シリアル通信部８００，８０１からシリアルバス８０３を介して拡張コントローラ部２０１からメインコントローラ部２００に割り込み送信（割り込み処理を要求するためのデータ送信）が行われる様子が示されている。以下では、図７に示すシステムとの差分のみを説明する。
【００８９】
シリアル通信部８００は、シリアルバス８０３を介してデータの送受信を行う。シリアル通信のプロトコルとしてＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）通信などが用いられるものとする。
【００９０】
図８にグレーアウト表示されている構成要素は、図７と同様に、動作させる必要がない構成要素である。したがって、拡張コントローラ部２０１の割り込み制御部３８１の割り込みは図７に示すシステムと同様に、ＣＰＵ３１１ではなくＣＰＵ３１０に通知される必要がある。したがって、本実施形態では、図８に示すように、割り込み制御部３８１から出力される割り込み信号をシリアル通信部８０１へ入力する構成を採用する。
【００９１】
＜コントローラ部＞
シリアル通信部８０１は割り込みを検知するとシリアルバス８０３を介してシリアル通信を開始する。図９は、メインコントローラ部２００と拡張コントローラ部２０１間で行われるシリアル通信を説明するための図である。図９には、本実施形態におけるシリアル通信（調歩同期式のＵＡＲＴ通信）の通信フォーマットが示されている。本実施形態におけるシリアル通信の設定速度（ボーレート）は、９６００ｂｐｓであり、データビット数は８ビットであるものとする。また、パリティチェックは偶数パリティであり、ストップビット（ｓｔｏｐ  ｂｉｔ）の数が１ビットであるものとする。シリアルバス８０３におけるＨｉｇｈ信号（信号レベルがＨｉｇｈである信号）は、通常、アイドル状態を示す。拡張コントローラ部２０１のシリアル通信部８０１が割り込み送信を行う場合、シリアル通信部８０１は始めにスタートビット（ｓｔａｒｔ  ｂｉｔ）を示すＬｏｗレベルの信号を出力する。その際、シリアル通信部８０１は、Ｌｏｗレベルの信号を９６００ｂｐｓの規定時間に保持するように制御する。次に、シリアル通信部８０１は、８ビットのデータを示す信号レベルの制御を行う。ここでは、データ“１００１０１１０”が送信されるものとする。次に、シリアル通信部８０１は、偶数パリティを示す信号になるように、パリティビット（ｐａｒｉｔｙ  ｂｉｔ）を制御する。ここでは、８ビットデータ“１００１０１１０”における１の個数が４つであるため、パリティビットを示す信号はＨｉｇｈレベルになるように制御される。最後に、シリアル通信部８０１は、ストップビットを示す信号がＨｉｇｈレベルになるように制御する。なお、続けて通信を行わない場合は、シリアル通信部８０１は、Ｈｉｇｈレベルに維持されるように信号を制御しし、続けて通信を行う場合はスタートビットを示すＬｏｗレベルになるように信号を制御する。
【００９２】
ここで、受信側であるメインコントローラ部２００のシリアル通信部８００がデータ“１００１０１１０”を受信すると、シリアル通信部８００から割り込み制御部３８０に通知がなされるように設計されているものとする。割り込み制御部３８０は、シリアル通信部８００からの通知を受けて、拡張コントローラ部２０１からの割り込みを検知し、当該割り込みをＣＰＵ３１０に通知する。ここでは、シリアル通信部８００は割り込みを受信すると、受信が正しく行えたことを示すデータ、例えば受信したデータと同じ“１００１０１１０”を送信する。シリアル通信部８０１は、シリアル通信部８００から当該データを受信すると、割り込み送信が正しく行えたとして割り込み処理を完了させる。ここで、シリアル通信部８００は、受信した偶数パリティが正しくない場合はパリティエラーを示す信号をシリアル通信部８０１に送信する。シリアル通信部８０１は、パリティエラーを示す信号を受信した場合は、再度割り込み送信を行うものとする。
【００９３】
なお、シリアル通信のプロトコルはＵＡＲＴに限らず、例えばＩ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＳＰＩ（Ｓｒｉｒａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）などの方式であってもよいことはいうまでもない。
【００９４】
また、割り込み送信で伝送されるデータに格納する値を、割り込み要因に応じて変更してもよいことはいうまでもない。
【００９５】
以上のように、メインコントローラ部２００と拡張コントローラ部２０１とで構成されるシステムにおいて、シリアルバス８０３を介して拡張コントローラ部２０１から割り込みをメインコントローラ部２００のＣＰＵ３１０に通知することが可能となる。
【００９６】
また、本実施形態では、ＵＡＲＴ通信などを用いて割り込み送信を行っているので、既存のシリアル通信インタフェース（ＳＣＩ：Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ）をシリアル通信部８００，８０１として用いることができる。例えば、システム制御部がマイクロコンピュータで実現されている場合において、当該マイクロコンピュータがＳＣＩを備えている場合には、当該ＳＣＩをシリアル通信部８００，８０１として用いることができる。
【００９７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018097522.tif 000003
【図２】
2018097522.tif 000004
【図３】
2018097522.tif 000005
【図４】
2018097522.tif 000006
【図５】
2018097522.tif 000007
【図６】
2018097522.tif 000008
【図７】
2018097522.tif 000009
【図８】
2018097522.tif 000010
【図９】
2018097522.tif 000011