(57)【要約】    【課題】  バスを階層化した場合に効率的に外部メモリにアクセスできるシステムＬＳＩを提供する。    【解決手段】  バスブリッジ１０７，１０８にそれぞれキャッシュメモリ１２０，１２１を設ける。ＣＰＵ１０１は、スキャナインターフェース１１４、ＣＣＤ補正部１１３、出力画像処理部１１２、プリンタインターフェース１１１がアクセスするメモリ領域を管理し、必要に応じてキャッシュメモリ１２０，１２１の内容を無効化する等のコヒーレンシ管理を行う。【選択図】      図１
2005346582.tif 000002
【特許請求の範囲】
【請求項１】
システムの動作を制御するプロセッサ、及び外部メモリに対するアクセスを制御するメモリコントローラが接続された第１のバスと、所定のモジュールが接続された第２のバスとが少なくとも１つのバスブリッジを介して接続されたシステムＬＳＩにおいて、
前記バスブリッジのうち少なくとも１つのバスブリッジにキャッシュメモリを設けたことを特徴とするシステムＬＳＩ。
【請求項２】
前記第２のバスを複数有することを特徴とする請求項１に記載のシステムＬＳＩ。
【請求項３】
前記プロセッサは、前記モジュール、及び外部メモリを用いて所定の処理を行う場合、前記キャッシュメモリのコヒーレンシ管理を行うことを特徴とする請求項１又は２に記載のシステムＬＳＩ。
【請求項４】
前記プロセッサは、前記モジュール、及び外部メモリを用いて所定の処理を行う場合、前記キャッシュメモリ、外部メモリをダブルバッファとして利用するようにメモリ領域を管理することを特徴とする請求項１〜３の何れかに記載のシステムＬＳＩ。
【請求項５】
前記第２のバスには、ＤＭＡ機能を備えるＩＯインターフェース制御手段が接続されることを特徴とする請求項１〜４の何れかに記載のシステムＬＳＩ。
【請求項６】
前記第２のバスには、ＤＭＡ機能を備えるハードウェアエンジンが接続されることを特徴とする請求項１〜４の何れかに記載のシステムＬＳＩ。
【請求項７】
請求項１〜６の何れかに記載のシステムＬＳＩと、該システムＬＳＩの前記第２のバスにＩＯインターフェースを介して接続したスキャナ部とプリンタ部とを有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種の機能が１つのＬＳＩに統合されて搭載されたシステムＬＳＩ及びそれを備えた画像処理装置に関する。
【背景技術】
【０００２】
従来、１つのＬＳＩの中にＣＰＵやメモリコントローラ、各種のＩＯインターフェース、専用ハードウェアエンジン等を内蔵したシステムＬＳＩが実現されている。図５は、このようなシステムＬＳＩの論理的構成例を示している。
【０００３】
図５において、外部メモリ５０３だけがシステムＬＳＩに内蔵されておらず、他のモジュールは、全てシステムＬＳＩに内蔵されている。そして、システムＬＳＩの内部では、ＣＰＵ５０１、メモリコントローラ５０２、ＰＣＩコントローラ、ＵＳＢコントローラ、ＵＡＲＴ等のＩＯインターフェース５０５，５０６，…，５０７、特定の処理を高速に行うための専用ハードウェアエンジン５０８，５０９，…，５１０は、全て１つのシステムバス５０４により、互いにデータ送受信可能に接続されている。
【０００４】
しかしながら、多くの外部ピンを必要とするメモリインターフェースは、材質と実装上の問題から１つしか実装することができないため、図５のように１つのシステムバス５０４上に全てのモジュールを接続すると、図６に模式的に示すように、物理レイアウト上で、メモリコントローラと、そのメモリコントローラと対向するモジュールまでの長い距離に亘ってバス配線を引き廻す必要が生じる。その結果、配線遅延が増大し、バスの動作周波数を上げることが出来ないという問題がある。
【０００５】
この問題に対処するには、バスを階層化し、バス同士をバスブリッジにより接続する手法が考えられる（例えば特許文献１参照）。図７はこのような構成例を示している。
【０００６】
図７において、７０１はＣＰＵ、７０２はメモリコントローラであり、外部メモリ７０３へのアクセスを制御する。７０４はバスであり、ＣＰＵ７０１、メモリコントローラ７０２を接続する。７０５はバスブリッジであり、バス７０４と次の階層のバス７０６とをブリッジ接続する。７０７および７０８もバスブリッジであって、バス７０６と、さらに次の階層のバス７０９、７１０をそれぞれブリッジ接続する。７１１、７１４はＩＯインターフェースである。７１２、７１３は所定の処理を専ら行う専用ハードウェアエンジンである。
【０００７】
このように、各階層のバスをバスブリッジにより接続することにより、各バスの負荷容量が軽減され、各バスの動作周波数を上げることができると同時に、短いバスを多段に接続して、物理的に遠距離にあるモジュール同士を接続することができる。
【特許文献１】特開平１０−９１２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このようにバスを階層化した場合、最も深い階層にあるモジュールからメモリコントローラまでのアクセス時間（レイテンシ）が増大し、該モジュールの処理性能を制限してしまうという問題がある。
【０００９】
また、システムＬＳＩに多くのモジュールを内蔵すると、それら多数のモジュールから外部メモリへのアクセスが行われることにより、多くのメモリバンド幅を消費するとともに、アクセスパターンがランダムアクセスに近くなる。一方、今日の高速メモリは、連続アクセス時に最適な性能を発揮できるように作られており、ランダムアクセス時には、最大アクセス性能の半分以下のバンド幅しか供給できなくなるので、外部メモリへのアクセス頻度を低減することが望まれていた。
【００１０】
そこで、本発明は、バスを階層化した場合に効率的に外部メモリにアクセスできるシステムＬＳＩを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は、システムの動作を制御するプロセッサ、及び外部メモリに対するアクセスを制御するメモリコントローラが接続された第１のバスと、所定のモジュールが接続された第２のバスとが少なくとも１つのバスブリッジを介して接続されたシステムＬＳＩにおいて、前記バスブリッジのうち少なくとも１つのバスブリッジにキャッシュメモリを設けている。
【発明の効果】
【００１２】
本発明によれば、少なくとも１つのバスブリッジにキャッシュメモリを設けることにより、バスを階層化した場合に効率的に外部メモリにアクセスできるシステムＬＳＩを提供することが可能となる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施の形態に係るシステムＬＳＩの構成を示すブロック図である。なお、図１に示したシステムＬＳＩは、複写機用のシステムＬＳＩを示しているが、本発明は、複写機以外の装置用のシステムＬＳＩにも適用できることは言うまでもない。
【００１４】
図１に示したように、本システムＬＳＩ１００は、階層化されたバス１０４，１０６，１０９，１１０を有している。また、１層目のバス１０４と２層目のバス１０６は、バスブリッジ１０５により接続され、３層目（最も深い階層）のバス１０９はバスブリッジ１０７により２層目のバス１０６に接続され、３層目のバス１１０はバスブリッジ１０８により２層目のバス１０６に接続されている。
【００１５】
バス１０４には、ＣＰＵ１０１とメモリコントローラ１０２が接続されている。このＣＰＵ１０１は、システムＬＳＩ全体の動作を制御し、メモリコントローラ１０２は、外部メモリ１０３に対するアクセスを制御するものである。この外部メモリ１０３としては、例えばＳＤＲＡＭが使用される。バスブリッジ１０７，１０８には、それぞれ本発明に特有なキャッシュメモリ１２０，１２１が接続されている。
【００１６】
バス１０９には、プリンタインターフェース１１１と出力画像処理部１１２とが接続されている。このプリンタインターフェース１１１は、外部のプリンタエンジン１４０に接続されている。出力画像処理部１１２は、プリンタエンジン１４０の特性に応じて画像データを加工するものである。また、バス１１０には、スキャナインターフェース１１４と、ＣＣＤ補正部１１３とが接続されている。このスキャナインターフェース１１４は、外部のスキャナエンジン１３０に接続されている。ＣＣＤ補正部１１３は、スキャナエンジン１３０から入力されたデータをスキャナエンジン１３０内のＣＣＤの特性に応じて補正するものである。
【００１７】
次に、本実施形態に特有なキャッシュメモリ１２０，１２１について、詳細に説明する。キャッシュメモリ１２０，１２１は、共に１ＭＢのメモリ容量であり、ライン長は４ＫＢとなっている。また、キャッシュのデータ更新方式としては、ライトスルー方式を採用し、マッピング方式としては、ダイレクトマップ方式を採用している。従って、タグは１２ｂｉｔ×２５６エントリである。また、ライト時にキャッシュミスした場合、そのライトアドレスに対応するラインが割り当てられるライトアロケート方式を採っている。
【００１８】
また、キャッシュヒット時のレイテンシは、１サイクルである。ミスヒット時のペナルティは、５サイクル＋上位バスブリッジ遅延＋上位バスアクセス時間＋外部メモリアクセスレイテンシであって、概ね２０〜３０サイクルであり、これはキャッシュメモリを実装しない場合のアクセスレイテンシと大差ない。
【００１９】
また、キャッシュメモリ１２０は、バスブリッジ１０７内に備えられたレジスタにアクセスすることにより、キャッシュメモリ１２０の各エントリを無効化することができる。すなわち、バスブリッジ１０７のレジスタは、論理アドレス空間内の０ｘｆｆｆｆ＿ａ０００〜０ｘｆｆｆｆ＿ａｆｆｆ番地に割り当てられており（図４参照）、このうち、０ｘｆｆｆｆ＿ａ００４番地に存在するレジスタにクリアコマンドをライトすることにより、キャッシュメモリ１２０の全てのキャッシュエントリが無効化される。この無効化は、上記のライト操作により、キャッシュメモリ１２０の各ラインの有効フラグビット（図２参照）が全てクリアされることにより実現される。
【００２０】
図２は、キャッシュメモリ１２０，１２１のデータ構成を示す概念図である。図２において、２０１〜２０９は、キャッシュのラインデータを格納するデータ領域であり、合計２５６エントリ分のデータ領域がある。２１１〜２１９は、それぞれデータ領域２０１〜２０９のラインデータに対応するタグデータを格納するタグ領域であり、合計２５６エントリ分のタグ領域がある。
【００２１】
２２１〜２２９は、キャッシュラインの有効フラグビットであり、合計２５６エントリ分の有効フラグビットがある。これら有効フラグビット２２１〜２２９は、それぞれフリップフロップで構成されており、これらフリップフロップのクリア入力に負パルスを印加することで、全ての有効フラグビットを同時にクリアすることができる。このクリア処理は、前述のように、バスブリッジ１０７の０ｘｆｆｆｆ＿ａ００４番地のレジスタにクリアコマンドをライトすることにより、図２のクリア信号２３０が「０」になるように構成することで実現される。
【００２２】
次に、以下のＳ１〜Ｓ４のようなコピー処理を行う場合を例にとって、システムＬＳＩ１００の動作を説明する。
Ｓ１：スキャナインターフェース１１４により、スキャナエンジン１３０からスキャンデータを読み込む。
Ｓ２：ＣＣＤ補正部１１３により、スキャンデータの各画素データに対してＣＣＤの特性に応じた補正を施す。
Ｓ３：出力画像処理部１１２により、補正後のデータに対してプリンタエンジン１４０の特性に応じた画像処理を施す。
Ｓ４：プリンタインターフェース１１１により、画像処理後のデータをプリンタエンジン１４０に出力する。
【００２３】
ここで、Ｓ１〜Ｓ４の処理は、図３に示すように、１ページ分のデータを５１２ＫＢのバンド単位で分割し、その５１２ＫＢのバンド毎に順番に行われる。
【００２４】
ＣＰＵ１０１は、まず、１バンド目のデータを処理するために、タスク管理プログラムに基づいて、スキャナインターフェース１１４用の出力バッファ領域として、０ｘ１０００＿００００番地から０ｘ１００７＿ｆｆｆｆ番地までの５１２ＫＢ（１バンド分）の論理アドレス空間に係る領域を割り当てる（図４参照）。同様に、ＣＣＤ補正部１１３用の出力バッファ領域として、０ｘ１０１０＿００００番地から０ｘ１０１７＿ｆｆｆｆ番地までの５１２ＫＢ（１バンド分）の論理アドレス空間に係る領域を割り当てる。また、出力画像処理部１１２用の出力バッファ領域として、０ｘ１０２０＿００００番地から０ｘ１０２７＿ｆｆｆｆ番地までの５１２ＫＢ（１バンド分）の論理アドレス空間に係る領域を割り当てる。
【００２５】
Ｓ１：次に、ＣＰＵ１０１は、タスク管理プログラムに基づいて、スキャナインターフェース１１４が具備するＤＭＡ開始アドレスレジスタに、スキャナインターフェース１１４の出力バッファ領域の１バンド目の先頭アドレスである０ｘ１０００＿００００を書き込み、スキャナインターフェース１１４が具備するＤＭＡ転送長レジスタにデータ長として０ｘ８＿００００（バイト）を書き込む。
【００２６】
次に、ＣＰＵ１０１は、タスク管理プログラムに基づいて、スキャナインターフェース１１４が具備する動作開始レジスタに動作開始コマンドを書き込むことにより、スキャンデータの読み込み開始をスキャナインターフェース１１４に指示する。この読み込み開始の指示により、スキャナインターフェース１１４は、１バンド分（５１２ＫＢ）のスキャンデータをスキャナエンジン１３０から読み込み、外部メモリ１０３に順次ＤＭＡ転送して格納していく。
【００２７】
この際、外部メモリ１０３には、上記の１バンド目の先頭アドレス０ｘ１０００＿００００番地から順に０ｘ１０００＿０ｆｆｆ番地までスキャンデータが格納されていく。また、キャッシュメモリ１２１はライトアロケート方式を採るため、これと同時に、キャッシュメモリ１２１にも外部メモリ１０３に格納されたものと同一のスキャンデータが、ライン長（４ＫＢ）毎に格納されていく。
【００２８】
Ｓ２：次に、ＣＰＵ１０１は、タスク管理プログラムに基づいて、ＣＣＤ補正部１１３を起動する。このＣＣＤ補正部１１３が具備するＤＭＡ読み出し開始アドレスレジスタには、ＣＰＵ１０１（タスク管理プログラム）により、上記の１バンド目の先頭アドレス０ｘ１０００＿００００が書き込まれており、ＣＣＤ補正部１１３は、この先頭アドレス０ｘ１０００＿００００に基づいて、１バンド目のスキャンデータを読み出して、順次、上記の補正処理を施す。
【００２９】
なお、スキャナインターフェース１１４が外部メモリ１０３に書き込んだバンド単位（５１２ＫＢ）のスキャンデータは、キャッシュメモリ１２１の容量（１ＭＢ）の約半分であるため、ＣＣＤ補正部１１３がキャッシュメモリ１２１からスキャンデータの読み出しを行った場合、必ずキャッシュヒットする。これにより、ＣＣＤ補正部１１３は、メモリコントローラ１０２を介して外部メモリ１０３からスキャンデータを読み出す場合よりもはるかに短いレイテンシで、キャッシュメモリ１２１からスキャンデータを読み出すことができ、本来の性能を発揮することができる。
【００３０】
ＣＣＤ補正部１１３が具備するＤＭＡ書き込み開始アドレスレジスタには、ＣＰＵ１０１（タスク管理プログラム）により、ＣＣＤ補正部１１３の出力バッファ領域の１バンド目の先頭アドレスである０ｘ１０１０＿００００が書き込まれており、ＣＣＤ補正部１１３は、補正処理後の１バンド目のスキャンデータを０ｘ１０１０＿００００番地より順に外部メモリ１０３に格納していく。
【００３１】
この際、同時に、キャッシュメモリ１２１にも、外部メモリ１０３に格納されたものと同一の補正処理後のスキャンデータが、ライン長（４ＫＢ）毎に格納されていく。この場合、キャッシュメモリ１２１はダイレクトマップ方式で、補正処理前のスキャンデータをキャッシュメモリ１２１に格納する場合のインデックスアドレスと、補正処理後のスキャンデータをキャッシュメモリ１２１に格納する場合のインデックスアドレスとが一致するので、キャッシュメモリ１２１には、補正処理後のスキャンデータが補正処理前のスキャンデータと置き換わるように保持されていくことになる。
【００３２】
Ｓ３：次に、ＣＰＵ１０１は、出力画像処理部１１２を起動する。この出力画像処理部１１２が具備するＤＭＡ読み出し開始アドレスレジスタには、ＣＰＵ１０１（タスク管理プログラム）により、１バンド目の補正処理後のスキャンデータが格納された領域の先頭アドレスである０ｘ１０１０＿００００が書き込まれており、出力画像処理部１１２は、この先頭アドレスに基づいて、１バンド目の補正処理後のスキャンデータを外部メモリ１０３から読み出す。この読み出した補正処理後のスキャンデータは、ライン単位でキャッシュメモリ１２０に保持される。
【００３３】
ここで、キャッシュメモリ１２１はライトスルー方式であるため、ＣＣＤ補正部１１３が出力した補正処理後のスキャンデータは、そのまま外部メモリ１０３上に格納されていることになる。
【００３４】
次に、出力画像処理部１１２は、読み出した補正処理後のスキャンデータに対し、順次、画像処理を施す。出力画像処理部１１２が具備するＤＭＡ書き込み開始アドレスレジスタには、ＣＰＵ１０１（タスク管理プログラム）により、出力画像処理部１１２の出力バッファ領域の１バンド目の先頭アドレスである０ｘ１０２０＿００００が書き込まれており、出力画像処理部１１２は、画像処理後の１バンド目のスキャンデータを０ｘ１０２０＿００００番地より順に外部メモリ１０３に格納していく。
【００３５】
この際、キャッシュメモリ１２０はライトアロケート方式を採るため、同時に、キャッシュメモリ１２０にも、外部メモリ１０３に格納されたものと同一の画像処理後のスキャンデータが、ライン長（４ＫＢ）毎に格納されていく。この場合、キャッシュメモリ１２０はダイレクトマップ方式で、画像処理前のスキャンデータをキャッシュメモリ１２０に格納する場合のインデックスアドレスと、画像処理後のスキャンデータをキャッシュメモリ１２０に格納する場合のインデックスアドレスとが一致するので、キャッシュメモリ１２０には、画像処理後のスキャンデータが画像処理前のスキャンデータと置き換わるように保持されていくことになる。
【００３６】
Ｓ４：次に、ＣＰＵ１０１は、タスク管理プログラムに基づいて、プリンタインターフェース１１１を起動する。プリンタインターフェース１１１が具備するＤＭＡ読み出し開始アドレスレジスタには、ＣＰＵ１０１（タスク管理プログラム）により、１バンド目の画像処理後のスキャンデータが格納された領域の先頭アドレスである０ｘ１０２０＿００００が書き込まれており、プリンタインターフェース１１１は、この先頭アドレスに基づいて、１バンド目の画像処理後のスキャンデータを読み出し、プリンタエンジン１４０に出力していく。
【００３７】
この場合も、プリンタインターフェース１１１が読み出す画像処理後のスキャンデータの容量は、キャッシュメモリ１２０の容量の約半分であり、必ずキャッシュヒットするため、プリンタインターフェース１１１は、実際にはメモリコントローラ１０２を介して外部メモリ１０３にアクセスすることはなく、キャッシュメモリ１２０から全てのデータを読み出すことができる。
【００３８】
このようなＳ１〜Ｓ４のステップの処理を繰り返し行うことで、複数バンド分のスキャンデータを順次複写していく。この場合、１バンド分の処理が全て終了するまで次のバンドの処理の開始を待つ必要はなく、各ステップの処理はパイプライン的に行うことができる。
【００３９】
すなわち、ＣＰＵ１０１（タスク管理プログラム）は、１バンド目の出力バッファ領域を前述のように割り当てた後、スキャナインターフェース１１４用の２バンド目の出力バッファ領域として、０ｘ１００８＿００００番地から０ｘ１００ｆ＿ｆｆｆｆ番地までの５１２ＫＢ（１バンド分）の論理アドレス空間に係る領域を割り当てる（図４参照）。同様に、ＣＣＤ補正部１１３用の２バンド目の出力バッファ領域として、０ｘ１０１８＿００００番地から０ｘ１０１ｆ＿ｆｆｆｆ番地までの５１２ＫＢ（１バンド分）の論理アドレス空間に係る領域を割り当てる。また、出力画像処理部１１２用の２バンド目の出力バッファ領域として、０ｘ１０２８＿００００番地から０ｘ１０２ｆ＿ｆｆｆｆ番地までの５１２ＫＢ（１バンド分）の論理アドレス空間に係る領域を割り当てる。
【００４０】
従って、スキャナインターフェース１１４は、１バンド目のスキャンデータをスキャナ１３０から受け取ると、引き続き２バンド目のスキャンデータをスキャナ１３０から受け取り、１バンド目、２バンド目のスキャンデータを順次、外部メモリ１０３にＤＭＡ転送して格納することができる。
【００４１】
この転送処理は、次のようにして行われる。スキャナインターフェース１１４は、１バンド目のデータ転送が終了すると、その旨を割り込みによってＣＰＵ１０１に通知する。この通知により、ＣＰＵ１０１は、スキャナインターフェース１１４が具備するＤＭＡ開始アドレスレジスタに、２バンド目に係る出力バッファ領域の先頭アドレスである０ｘ１００８＿００００を書き込み、ＤＭＡ転送長レジスタに０ｘ８＿００００（バイト）を書き込む。続いて、ＣＰＵ１０１は、スキャナインターフェース１１４の具備する動作開始レジスタに動作開始コマンドを書き込むことにより、スキャンデータの読み込み開始をスキャナインターフェース１１４に指示する。
【００４２】
以下、ＣＣＤ補正部１１３、出力画像処理部１１２、プリンタインターフェース１１１も同様に、１バンド目の処理が終了すると、その旨を割り込みによってＣＰＵ１０１に通知し、ＣＰＵ１０１は、その通知に基づいて２バンド目の処理動作のためのレジスタ設定を行う。このようにして２バンド目の処理が行われる。このとき、キャッシュメモリ１２０，１２１は、ダイレクトマップ方式をとることと、キャッシュ容量がバンドデータの約２倍であるため、１バンド目のデータを格納するラインと２バンド目のデータを格納するラインは排他的に使用される。従って１バンド目と２バンド目のデータを処理するにあたり、キャッシュのコヒーレンシの問題は生じない。
【００４３】
次に、２バンド目のデータ処理が終了すると、３バンド目のデータ処理を行うことになる。この３バンド目のデータ処理時にスキャナインターフェース１１４、ＣＣＤ補正部１１３、出力画像処理部１１２に対して割り当てられる出力バッファ領域は、１バンド目のデータ処理時に割り当てられた領域と同一である。
【００４４】
すなわち、スキャナインターフェース１１４には、０ｘ１０００＿００００から０ｘ１００７＿ｆｆｆｆまでの５１２ＫＢの空間、ＣＣＤ補正部１１３には、０ｘ１０１０＿００００から０ｘ１０１７＿ｆｆｆｆまでの５１２ＫＢの空間、出力画像処理部１１２には、０ｘ１０２０＿００００から０ｘ１０２７＿ｆｆｆｆまでの５１２ＫＢの空間に係る領域が、それぞれ出力バッファ領域として割り当てられる。
【００４５】
換言すれば、スキャナインターフェース１１４、ＣＣＤ補正部１１３、出力画像処理部１１２は、それぞれ２つずつ割り当てられた出力バッファ領域をダブルバッファとして交互に使用することにより、コピー処理に係る各自の処理をパイプライン的に実行していく。
【００４６】
この際、キャッシュメモリ１２０，１２１においても、容量がバンドデータの２倍であるため、ダブルバッファ的に使用される。ただし、３バンド目のデータ処理を開始するにあたり、キャッシュのコヒーレンシに注意を払う必要がある。
【００４７】
すなわち、出力画像処理部１１２は、３バンド目のデータを０ｘ１０１０＿００００番地より読み出すが、これはキャッシュヒットする。なぜなら、このときキャッシュメモリ１２０には、出力画像処理部１１２が１バンド目のデータを処理した際に出力バッファ領域として使用した０ｘ１０２０＿００００番地〜０ｘ１０２７＿ｆｆｆｆ番地のデータ、すなわち１バンド目の画像処理に係るデータのコピーが保持されているからである。
【００４８】
ところが、出力画像処理部１１２は、実際にはＣＣＤ補正部１１３が処理した３バンド目の補正処理後のスキャンデータを読み込む必要があり、この３バンド目の補正処理後のスキャンデータは、外部メモリ１０３に順次格納されている。従って、出力画像処理部１１２が３バンド目の処理を行う場合は、出力画像処理部１１２が３バンド目のデータ処理を開始する前にキャッシュメモリ１２０の内容を無効化することにより、出力画像処理部１１２が０ｘ１０１０＿００００番地から順に読み出す際にキャッシュヒットせず、外部メモリ１０３から正しいデータを読み込むようにする必要がある。
【００４９】
このキャッシュメモリ１２０の無効化処理は、ＣＰＵ１０１が行う。すなわち、ＣＰＵ１０１上で実行されるタスク管理プログラムは、自身の管理するアドレス情報に基づいて前記コヒーレンシの問題を検出すると、バスブリッジ１０７が具備する０ｘｆｆｆｆ＿ａ００４番地に存在するレジスタにクリアコマンドをライトすることにより、キャッシュメモリ１２０の全てのエントリを無効化する。
【００５０】
このようなキャッシュメモリ１２０の無効化処理を、３バンド目以降の奇数番目のバンドを処理する際に行うことにより、出力画像処理部１１２は、正しいデータを読み込むことが可能となる。
【００５１】
以上説明したように、本実施の形態では、バスブリッジ１０７，１０８にそれぞれキャッシュメモリ１２０，１２１を設けたので、システムＬＳＩにおいて、バスの配線遅延を低減するためバスを階層化した場合にも、深い階層にあるモジュール（出力画像処理部１１２、ＣＣＤ補正部１１３、スキャナインターフェース１１４）が外部メモリ１０３にアクセスする際のレイテンシの増加を抑え、これらモジュールの性能を損なうことなく動作させることができ、また、システムＬＳＩにおける外部メモリ１０３へのアクセス頻度を低減することができるなど、効率的に外部メモリ１０３にアクセスすることが可能となる。
【００５２】
なお、本発明は、上記の実施の形態に限定されることなく、例えば、上記の実施の形態のように、容量１ＭＢ、ライン長４ＫＢ、ライトスルー方式でかつダイレクトマップ方式のキャッシュメモリを用いることなく、それ以外の方式のキャッシュメモリを用いることも可能である。
【００５３】
また、キャッシュメモリは、少なくとも１つのバスブリッジに設ければよい。換言すれば、キャッシュメモリは、全てのバスブリッジに設ける、或いは１つバスブリッジに設けるなど、所定のバスブリッジに任意に設けることができる。さらに、システムＬＳＩに内蔵されるＣＰＵの数も任意である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態に係るシステムＬＳＩの論理的構成を示すブロック図である。
【図２】キャッシュメモリのデータ構成を示す概念図である。
【図３】バンド単位での処理を説明するための概念図である。
【図４】メモリのアドレスマップを説明するための概念図である。
【図５】従来のシステムＬＳＩの論理的構成を示すブロック図である（バスを階層化しない場合）。
【図６】図５に係るシステムＬＳＩの物理的なレイアウトを示す図である。
【図７】従来のシステムＬＳＩの論理的構成を示すブロック図である（バスを階層化した場合）。
【符号の説明】
【００５５】
１００…システムＬＳＩ、１０１…ＣＰＵ、１０２…メモリコントローラ、１０３…外部メモリ、１０４，１０６，１０９，１１０…バス、１０５，１０７，１０８…バスブリッジ、１１１…プリンタインターフェース、１１２…出力画像処理部、１１３…ＣＣＤ補正部、１１４…スキャナインターフェース、１２０，１２１…キャッシュメモリ
【図１】
2005346582.tif 000003
【図２】
2005346582.tif 000004
【図３】
2005346582.tif 000005
【図４】
2005346582.tif 000006
【図５】
2005346582.tif 000007
【図６】
2005346582.tif 000008
【図７】
2005346582.tif 000009