(57)【要約】【課題】  必要なメモリ容量及びパフォーマンスをシステム毎に柔軟に変更可能なシステムを実現する。【解決手段】  外部から入力される同期信号に従って動作するメモリモジュールのメモリ容量に応じて決定された個数分のメモリ制御回路がメモリモジュールに接続されたメモリ制御システムにおいて、メモリ制御回路の１つがメモリモジュールに同期信号を出力することにより、メモリモジュールへのアクセスを制御する。【選択図】      図６
2006277619.tif 000002
【特許請求の範囲】
【請求項１】
外部からの同期信号に従って動作するメモリモジュールへのアクセスを制御するメモリ制御システムであって、
前記メモリモジュールのメモリ構成に応じた個数分のメモリ制御回路と、
前記決定された個数分のメモリ制御回路に接続されたメモリモジュールと、
前記メモリ制御回路を介して前記メモリモジュールへのアクセスを制御する制御手段とを有することを特徴とするメモリ制御システム。
【請求項２】
前記決定された個数分のメモリ制御回路のうち１つをマスタとし、その他をスレーブとし、前記マスタのメモリ制御回路が前記メモリモジュールへの同期信号を出力することを特徴とする請求項１記載のメモリ制御システム。
【請求項３】
前記マスタのメモリ制御回路と前記メモリモジュールとの間で前記同期信号と制御信号とを接続することを特徴とする請求項２記載のメモリ制御システム。
【請求項４】
前記マスタのメモリ制御回路は、前記スレーブのメモリ制御回路とのタイミング調整を行うことを特徴とする請求項３記載のメモリ制御システム。
【請求項５】
メモリモジュールに複数のメモリ制御回路が接続されたメモリ制御システムであって、
前記複数のメモリ制御回路の一つが、
前記メモリモジュールにアドレスを発行する手段と、
他のメモリ制御回路と同期して、前記メモリモジュールへアクセスする手段とを有することを特徴とするメモリ制御システム。
【請求項６】
画像データに基づいて画像を形成する画像形成装置において、
前記画像データを蓄積するメモリモジュールと、
前記メモリモジュールのメモリ構成に応じた個数分のメモリ制御回路と、
前記メモリ制御回路により前記メモリモジュールへ画像データを書き込み、前記メモリモジュールから前記画像データを読み出して画像形成を行う画像形成手段とを有することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部からの同期信号に従って動作するメモリモジュールへのアクセスを制御する技術に関する。
【背景技術】
【０００２】
ダイナミックＲＡＭ（DRAM）を搭載するシステム設計においては、システムが必要とするメモリの容量やパフォーマンスを算出し、最大仕様を満たすメモリコントローラを設計している。このようなメモリコントローラを設計する場合は、最大のパフォーマンスを求めるため、バス幅を必要とし、ＩＣの外部ピンも増えてしまう。
【０００３】
一方、複合複写機（ＭＦＰ）のコントローラにおいても、データの高解像度化が進み、１つのシステムに求められるメモリ容量や要求されるパフォーマンスの幅も広がっている。そこで、システム設計においては、求められるメモリ容量と要求されるパフォーマンスとを見積もり、その最大仕様に見合ったメモリコントローラを設計している。
【０００４】
しかし、例えば１０個の製品のうち９個までは、中程度のメモリ容量とパフォーマンスで十分であるのに、１つの製品の最大仕様が大容量メモリと高パフォーマンスを要求している場合、バス幅を大きくし、外部ピン数を増やしてＩＣを設計し、システムの共通化を図るという手法が選択されることが多い。
【特許文献１】特開平６−６７９９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そのため、このように設計したシステムでは、中程度以下の容量及びパフォーマンスを要する製品にとってはオーバースペックになり、ＩＣの外部ピンが多くなることにより、ＩＣ単体だけでなく、最終的な製品におけるコスト増加の要因となる。また、消費電力も無駄に増加するケースもあり得る。
【０００６】
例えば、複数のドラムを持つ電子写真技術を利用したカラー複写機でメモリを使用する用途として、メインメモリから同時に出力する各色のデータを順番に時間的にずらして、ドラムの画像処理部に出力する機構があるが、この際に、データを一時的に保持する遅延メモリ量の増大が問題になっている。
【０００７】
また、単純にメモリ量が増大するだけであればよいが、複写機では機種毎に求められるメモリコントローラとしてのパフォーマンスも大幅に異なり、メモリコントローラがオーバースペックになるか、様々なバス幅を持つメモリコントローラを含むＩＣが複数存在することになる。
【０００８】
本発明は、上記課題を解決するためになされたもので、必要なメモリ容量及びパフォーマンスをシステム毎に柔軟に変更可能なシステムを実現することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、外部からの同期信号に従って動作するメモリモジュールへのアクセスを制御するメモリ制御システムであって、前記メモリモジュールのメモリ構成に応じた個数分のメモリ制御回路と、前記決定された個数分のメモリ制御回路に接続されたメモリモジュールと、前記メモリ制御回路を介して前記メモリモジュールへのアクセスを制御する制御手段とを有することを特徴とする。
【００１０】
また、本発明は、画像データに基づいて画像を形成する画像形成装置において、前記画像データを蓄積するメモリモジュールと、前記メモリモジュールのメモリ構成に応じた個数分のメモリ制御回路と、前記メモリ制御回路により前記メモリモジュールへ画像データを書き込み、前記メモリモジュールから前記画像データを読み出して画像形成を行う画像形成手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、必要なメモリ容量及びパフォーマンスをシステム毎に柔軟に変更可能なシステムを実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１３】
まず、本発明に係るメモリコントローラを適用する画像入出力システムの全体構成を、図１を参照しながら説明する。
【００１４】
図１は、画像入出力システムの構成の一例を示す概略ブロック図である。図１において、リーダー部（画像入力装置）１２０は原稿画像を光学的に読み取り、画像データに変換して出力する。リーダー部１２０は、原稿を読み取るための機能を持つスキャナユニット１２１と、原稿を搬送するための機能を持つ原稿給紙ユニット（ＤＦユニット）１２５とで構成される。
【００１５】
プリンタ部（画像出力装置）１３０は、記録紙を搬送し、記録紙上に画像データを可視画像として印字して装置外に排紙する。プリンタ部１３０は、複数種類の記録紙カセットを持つ給紙ユニット１３１と、画像データを記録紙に転写、定着させる機能を持つマーキングユニット１３２と、印字された記録紙をソート、ステイプルして機外へ出力する機能を持つ排紙ユニット１３３とで構成される。
【００１６】
コントローラ部（制御装置）１１０は、リーダー部１２０及びプリンタ部１３０と電気的に接続され、ネットワーク（ＬＡＮ）１４０を介してパーソナルコンピュータ（ＰＣ）１４１、１４２と接続されている。また、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどのドライブユニット１６０も接続されている。
【００１７】
コントローラ部１１０は、リーダー部１２０を制御して原稿上の画像を画像データとして読み込み、プリンタ部１３０を制御して画像データを記録用紙に出力するコピー機能を提供する。また、リーダー部１２０で読み取った画像データをコードデータに変換し、ネットワーク１４０を介してＰＣ１４１又は１４２へ送信するスキャナ機能や、ＰＣ１４１又は１４２からネットワーク１４０を介して受信したコードデータを画像データに変換し、プリンタ部１３０に出力するプリンタ機能を提供する。
【００１８】
また、コントローラ部１１０には、液晶タッチパネルで構成される操作部１５０が接続されている。そして、操作部１５０は画像入出力システム１００を操作するためのユーザインターフェース（Ｉ／Ｆ）を提供する。
【００１９】
本発明に係るコントローラは、上述したコントローラ部１１０において、読み取られた画像データやＰＣ１４１又は１４２から送信されてくるコードデータに対して画像処理を行い、プリンタ部１３０から１色よりも多い４色の感光ドラムを持つ、４Ｄドラムなどのプリンタシステムにおいて、用いることが可能である。
【００２０】
図２は、本実施形態で利用するメモリコントローラＩＣ２００の一例を示す図である。尚、メインコントローラＩＣ２００は、コントローラ部１１０内に設けられている。図２において、メモリコントローラＩＣ２００はプリンタ部１３０から出力されるデータ出力の第１のリクエスト信号２０１を受け、要求信号生成部２０２がメイン制御部（コントローラ部１１０内）へ画像データ出力リクエスト信号２０３を送信する。一方、このリクエスト信号２０３を受けたメイン制御部は画像データを画像処理プロセッサ（コントローラ部１１０内）へ転送し、画像処理プロセッサがそのデータに所定の画像処理を施して出力する。
【００２１】
次に、メモリコントローラＩＣ２００では、画像処理プロセッサから出力されたデータを入力データ２０４として入力インターフェース部２０５が受信し、内部クロックに同期させる。そして、メモリバスマスタ部２０６がその入力データ２０４を内部に設けられたライト用のデータバッファに一時的にバッファリングし、一定容量のデータを蓄積するとメモリコントローラ２１１へライト要求を出す。
【００２２】
例えば、４Ｄプリンタの場合、各色のリクエスト信号２０１がプリンタ部１３０から出力されるタイミングは異なるが、画像処理プロセッサは４色のデータ相関を取って処理するものがあるため、メモリコントローラＩＣ２００にも４色同時にデータが入力される。図２には示していないが、入力インターフェース部２０５とメモリバスマスタ部２０６の間には、４色相関を取る画像処理モジュールが存在することが望ましい。
【００２３】
そして、４色相関を取って画像処理が行われた後、第２、第３、第４のデータ出力リクエスト信号２０１が、用紙に印字するスピードに合わせて所定の位置まで用紙が来た時に、第１のリクエスト信号よりも遅れてプリンタ部１３０から出力され、それぞれのメモリ領域に書き込まれた４色のデータを読み出す構成となっている。
【００２４】
そこで、４色のデータを独立して外部メモリへ書き込み、各色が独立してデータを出力することを可能とするため、メモリバス用のマルチプレクサ２０７を配置し、ライト用の各メモリバスマスタ部２０６及びリード用の各メモリバスマスタ部２０８が順番にメモリコントローラ２１１へアクセス可能に構成されている。その後、外部メモリからデータを読み出した後、読み出されたデータ２０９はプリンタインターフェース（コントローラ部１１０内）へ（更にはプリンタ部１３０へ）出力される。
【００２５】
更に、メモリコントローラＩＣ２００には、別の同種のメモリコントローラＩＣと同期を取り、よりビット幅の広いメモリデバイスにアクセスする機能を有している。そのためのチップ間同期用のインターフェース部２１３が設けられている。
【００２６】
ここでは、１つのメモリコントローラＩＣのメモリデータビット幅を１６ビットとしているため、４つまでのＩＣ間接続を可能とし、最大で６４ビットまでのメモリデバイスと接続するシステムを構成することが可能である。このようにすることにより、最小は４ビット幅のメモリデバイスから、８／１６／３２／６４と様々なビット幅を持つメモリデバイス及びメモリモジュールをメモリコントロールシステムに接続することが可能となる。
【００２７】
この時、上述した各メモリバスマスタ部２０６、２０８は、複数のうち１つのみが動作し、データパスのみを制御する構成を採っても良い。
【００２８】
その他、メモリコントローラＩＣ２００には、メモリコントローラ２１１を動作させるためのクロックを生成するＰＬＬ２１０、メモリデバイス（外部メモリ）とのインターフェース部２１２、及び内部の各ブロックの制御動作を区別するためのレジスタ設定を可能とするレジスタ設定用データインターフェース部２１４が設けられている。
【００２９】
このレジスタ設定用インターフェース部２１４により設定される内容としては、メモリコントローラＩＣ２００の初期化ステータス、各種メモリアクセスコマンドの出力タイミング、バースト長、リフレッシュカウンタ、メモリ空間割り当て、メモリデバイス指定、ステータスレジスタなどからなる。
【００３０】
更に、システムとしてチップ間同期の有無、スレーブメモリコントローラＩＣとのクロック関係検出及びマスタメモリコントローラＩＣ用のクロック調整タイミングパラメータなどシステム拡張において、動作モードを区別する必要のある内容についてのレジスタが各モジュールに設けられている。
【００３１】
また、マスタメモリコントローラＩＣが全てのスレーブメモリコントローラＩＣを一括で制御する方式としているが、スレーブメモリコントローラＩＣにＩＤを振り、そのＩＤにより制御を行う構成としても良い。
【００３２】
次に、メモリコントローラＩＣ２００に接続されるDRAMデバイス例について説明する。メモリコントローラＩＣ２００を１つで利用する場合、メモリコントローラＩＣの持つ内部レジスタの設定を切り換えることにより、１６ビット又は８ビットや４ビットの単体のDRAMデバイスを接続することが可能である。
【００３３】
更に、メモリコントローラＩＣ２００を２つ接続し、片側をマスタメモリコントローラ、もう一方をスレーブメモリコントローラとして利用する場合、図３に示すように、３２ビット幅を持つDIMM（Dual In-line Memory Module）３００を２つのメモリコントローラＩＣ２００に接続可能とする。
【００３４】
DIMM３００メモリ上に載っている単体のメモリデバイス３０１は、８ビット幅であり、２つのデバイスで１つのメモリコントローラＩＣからデータの読み書きが行われる。尚、このDIMM３００デバイスのクロックは２種類のクロック入力を持つが、２種類ともマスタメモリコントローラから出力されるＣＬＫ（正転／反転）である。
【００３５】
更に、メモリコントローラＩＣ２００を４つ接続し、１つをマスタメモリコントローラ、他の３つをスレーブメモリコントローラとして、システムを構成する場合、図４に示すような６４ビット幅を持つDIMM４００に８ビット幅を持つ単体のメモリデバイス４０１が８枚載っている構成がある。
【００３６】
ここでも、２つのメモリデバイスに対して、１つのメモリコントローラＩＣ２００からアクセスすることになる。また、DIMM４００は４種類のＣＬＫ入力を持つが、４種類ともマスタメモリコントローラＩＣから出力されるものを利用するのが通常である。
【００３７】
以下、図面を参照して本発明に係るメモリコントローラＩＣ２００を利用した実施例を詳細に説明する。
【実施例１】
【００３８】
まず、実施例１として、システムとしてはそれほど多くのメモリ容量やパフォーマンスを必要としないプリンタにメモリコントローラＩＣを適用した場合を例に説明する。実施例１のシステムは、いわゆる、ローエンドタイプの機械を想定したシステムである。
【００３９】
図５は、実施例１におけるメモリコントローラＩＣを含むシステム構成の一例を示す図である。メインボード５００上にはメインＣＰＵ５０１があり、システム全体を制御している。このメインＣＰＵ５０１には、メインメモリ５０２が接続され、一時データ保存用として利用される。また、メインＣＰＵ５０１にはＩＯコントローラ５０３が接続され、ＬＡＮなどのネットワークや、ＵＳＢなどの汎用インターフェースとの入出力を制御することも可能である。
【００４０】
更に、メインボード５００には画像処理ボード５１０が接続されており、メインＣＰＵ５０１から画像処理プロセッサ５０４を経由して画像処理プロセッサ５０４の出力データをメモリコントローラＩＣ２００の入力データ２０４として入力する。
【００４１】
この例では、メモリコントローラＩＣ２００は１つで構成されているため、単独モードとして動作する。
【００４２】
以上の構成において、ユーザから印字命令があると、メインＣＰＵ（メイン制御部）５０１はプリンタ部１３０へプリントのReady 確認を行い、プリンタ部１３０からのリクエスト信号２０１を待つ。その後、このリクエスト信号２０１が来ると、メインＣＰＵ５０１はメインメモリ５０２上にデータを展開し、画像処理プロセッサ５０４へ転送する。画像処理プロセッサ５０４が転送されたデータに所定の画像処理を施し、画像処理したデータをメモリコントローラＩＣ２００内に各色のデータ毎に設けられた各メモリバスマスタ部２０６へ出力する。そして、各メモリバスマスタ部２０６がメモリコントローラ２１１へメモリアクセス要求を出し、外部メモリ５１１へのライトを行う。
【００４３】
尚、メモリバスマスタ部２０６のそれぞれは単独で動作するため、要求の通ったメモリバスマスタ部２０６から順番に外部メモリ５１１へアクセスできるような仕組みになっている。
【００４４】
ここで、メインメモリ５０２から外部メモリ５１１へデータが書き込まれながら第２のリクエスト信号２０１がプリンタ部１３０からメモリコントローラＩＣ２００内のデータリード側のメモリバスマスタ部２０８に通知される。
【００４５】
これにより、メモリコントローラＩＣ２００のメモリコントローラ２１１は外部メモリ５１１に対してデータのリード要求を行い、外部メモリ５１１からデータをリードする。そして、リードしたデータをプリンタ部１３０へ出力し、プリンタ部１３０が印字データに加工を行って画像を出力する。この時、第１色目は、数ラインだけ外部メモリ５１１に溜め込み、タイミングを合わせてからプリンタ部１３０へ出力しても良いし、外部メモリ５１１へアクセスするパスをスルーし、直接プリンタ部１３０へ出力しても良く、これらを切り換えるように制御しても良い。
【実施例２】
【００４６】
次に、実施例２として、システムとしてはローエンドタイプよりメモリ容量やパフォーマンスを必要とするミドルレンジのプリンタにメモリコントローラＩＣを適用した場合を例に説明する。
【００４７】
図６は、実施例２におけるメモリコントローラＩＣを含むシステム構成の一例を示す図である。この例では、１色当たりの処理すべき画像データ量が１つのメモリコントローラＩＣ２００が持つ入出力インターフェースの２倍である場合を想定している。即ち、図６に示すように、メインボード６００上には、メインＣＰＵ６０１、メインメモリ６０２、ＩＯコントローラ６０３の他に、２倍の画像データを処理する２つの画像処理プロセッサ（画像処理回路）６０４、６０５が設けられている。
【００４８】
また、サブボードとしての画像処理ボード６１０にもメモリコントローラＩＣ（メモリ制御回路）２００が２つ載る構成となっている。ここで、メモリコントローラＩＣ２００は、それぞれマスタＩＣ６１１とスレーブＩＣ６１２の関係になるように設定する必要がある。この設定は、内部レジスタで設定しても良いし、外部ピンによる設定であっても構わない。
【００４９】
また、２つの画像処理プロセッサ６０４、６０５と、２つのメモリコントローラＩＣ（マスタＩＣ６１１、スレーブＩＣ６１２）とは、２つのメモリコントローラＩＣに４色のデータがそれぞれ接続されるように基板上で配線され、接続されている。
【００５０】
更に、２つのメモリコントローラＩＣ（マスタＩＣ６１１、スレーブＩＣ６１２）と接続されている外部メモリデバイス（メモリモジュール）３００の接続方法は以下の通りである。
【００５１】
データ及びストローブ信号については、DQS[0]-DQ[7:0]、DQS[1]-DQ[15:8]、DQS[2]-DQ[23:16]、DQS[3]-DQ[31:24]とデータに対してストローブ信号が各チップと対応するように接続する。
【００５２】
一方、外部メモリアドレス、制御信号、クロックについては、図６に示すようにマスタＩＣ６１１からのみ出力し、外部メモリデバイス３００と接続する。つまり、外部メモリデバイス３００は、マスタＩＣ６１１のクロックをベースに動作する同期式ダイナミックＲＡＭである。また、スレーブＩＣ６１２については、外部メモリデバイス３００へ接続するクロック信号を１本ずつマスタＩＣ６１１の所定のピンに接続しておく。
【００５３】
ここで、図６に示すシステムにおいて、マスタＩＣ６１１、スレーブＩＣ６１２が外部メモリデバイス３００へアクセスする方法の一例について説明する。
【００５４】
初期化のシーケンスの一つとして、マスタＩＣ６１１がスレーブＩＣ６１２のクロックの状況を検出する検出部を備えているものとする。
【００５５】
図７は、スレーブＩＣのクロック状況を検出する回路の一例を示す図である。尚、この検出回路は、マスタＩＣ６１１、スレーブＩＣ６１２のメモリコントローラＩＣ内に存在するが、初期設定でスレーブＩＣ６１２と設定された時から使用されることはない。
【００５６】
図７において、クロック状況検出回路７００は、設定用レジスタ７１０、差分検出回路７２０、セレクタ７３０で構成されている。この差分検出回路７２０は、他のスレーブの外部メモリ用クロック入力インターフェース（図７に示す例では、最大４つのＩＣによるメモリアクセスまでとしているので、３つのスレーブ用として３本の入力）を持ち、これらの差分を検出する。
【００５７】
また、設定用レジスタ７１０には、基板インターフェース上で遅延すると想定される値をオフセット値として設定可能である。そして、セレクタ７３０は、差分検出回路７２０から算出された各クロックの差分から最適なフィードバッククロックを選択する。ここで選択されたクロックは、ＰＬＬ２１０にフィードバックされ、マスタ６１１内のシステムクロックとして出力される。
【００５８】
これにより、マスタＩＣ６１１が生成するクロックCLK0/CLK0#とスレーブＩＣ６１２が生成するクロックCLKとの差分を吸収し、外部メモリデバイス３００に対してマスタＩＣ６１１とスレーブＩＣ６１２にとって最適なクロックを供給することが可能となる。
【００５９】
更に、上述した調整だけで設定値が合わない場合は、ライト時のストローブ信号の出力タイミングを調整する機構により、各チップからのライト時に発行するストローブ信号の遅延値を調整可能とする。
【００６０】
本システムで採用するメモリコントローラは、あるページのデータの出力を開始すると、そのページの最終データの出力完了まで、ほぼ継続的にメモリアクセスが行われる構成となっている。
【００６１】
次に、ライト時の動作について説明する。画像処理プロセッサ６０４、６０５から来るデータは、メモリバスマスタ部２０６の内部に設けられたライト用バッファにデータがストアされ、データが外部メモリ３００に設定したバースト長分のデータがたまると、メモリバスマスタ部２０６が各色毎に順番にライト要求を出して、メモリアクセスを行う構成となっている。ここで、マスタＩＣ６１１は、その色（メモリバスマスタ）を示す信号をmmst_id信号として各スレーブＩＣに出力する。メモリバスマスタ２０６は４つ存在しているが、複数ＩＣによるメモリアクセス時には、１つのみが動作し、メモリのデータパスを切り換えている。
【００６２】
図８は、ライト時の各信号のタイミングを示す図である。マスタＩＣ６１１のメモリコントローラ２１１は、図８に示すように、バッファにデータが完全にたまる少し前（基準値は設定可能でシステム固定）に、ram_cmd信号を使ってWrite Ready信号をスレーブＩＣに出力する。そして、各スレーブＩＣからram_ack信号の返信を待つハンドシェイクを行い、スレーブＩＣの状態を検出することが可能な構成になっている。これにより、ライト時のタイミング例のように、ライト命令（コマンド）のram_cmdを出力するタイミングをスレーブＩＣに合わせて変更することができる。
【００６３】
このようにして、マスタＩＣ６１１がライトコマンドをスレーブＩＣ６１２に対して発行する。マスタＩＣ６１１はライトコマンドを発行した後、スレーブＩＣ６１２にコマンドが到達するタイミングに合わせて、マスタＩＣ６１１内でwrt_rdy信号をアサートし、その信号を受けたメモリコントローラ２１１のインターフェース部２１２が外部メモリデバイス３００に対して、ライトコマンドとアドレスを発行し、ストローブ信号に合わせてデータを出力する。
【００６４】
一方、スレーブＩＣ６１２の方は、ram_cmd信号を受けてからマスタＩＣ６１１にタイミングを合わせる形でsv_wrdy信号をアサートし、データ及びストローブ信号を出力する。
【００６５】
外部メモリデバイス３００側では、このストローブ信号が一定の範囲内に収まっていれば、マスタＩＣ６１１が出力するCLK/CLK#信号によってデータを受けることができる構造となっている。
【００６６】
次に、メモリリードについては、プリンタ部１３０からリード要求が入ってから、そのページ分のデータが読み出し終わるまで、一定の間隔でデータのリードを続ける。この時、リード側のメモリバスマスタ２０８は図２に示す４つのうち１つのみが動作し、データを出力すべき、色に合わせてＭＵＸのデータパスを切り換えている。
【００６７】
図９は、リード時の各信号のタイミングを示す図である。図９に示すように、リード側では、プリンタ部１３０からのリード要求により、マスタＩＣ６１１のメモリコントローラ２１１がmmst_id信号とram_cmd信号とをRead ReadyコマンドとしてスレーブＩＣ６１２側に送信する。マスタＩＣ６１１のメモリコントローラ２１１は、このram_ack信号の返信を待ち、ハンドシェイクを完了してから、再度ram_cmdによりリードコマンドをスレーブＩＣ６１２に発行する。
【００６８】
また、マスタＩＣ６１１側は、スレーブＩＣ６１２にリードコマンドが到達するタイミングに合わせてrd_rdy信号をアサートし、メモリインターフェース部２１２は外部メモリデバイス３００に対してリードコマンド及びアドレスを出力する。また、リードデータに合わせて外部メモリデバイス３００から入力されるストローブ信号のマスク信号として、sgate信号が存在し、これを所望のタイミングでゲートを解除し、データを受け取ることが可能である。
【００６９】
一方、スレーブＩＣ６１２側は、マスタＩＣ６１１のリードコマンドを受けてからsv_rdrdy信号をアサートし、内部のマスク解除信号をアサートする。このマスク解除タイミングは、マスタＩＣ６１１及びスレーブＩＣ６１２で調整可能となっているため、コマンド信号の転送及び各ＩＣのCLK位相の違いがあっても、それらを吸収できる仕組みとなっている。
【００７０】
リード側の要求は、ライトアクセスのどこかに任意に割り込む形で実行され、ライト側の要求は、あくまで順番に行われるものとし、一度バッファにデータがたまりライト要求のハンドシェイクを終えると、その後３回のアクセスはハンドシェイクを行わずにメモリアクセスを行える構成とする。
【実施例３】
【００７１】
次に、実施例３として、システムとしては大容量メモリとパフォーマンスを必要とするハイエンドのプリンタにメモリコントローラＩＣを適用した場合を例に説明する。
【００７２】
図１０は、実施例３におけるメモリコントローラＩＣを含むシステム構成の一例を示す図である。この例では、システムのパフォーマンスも高いものが要求されるため、図１０に示すように、メインボード１０００上には、２つのメインＣＰＵ１００１、１００２を搭載し、それぞれメインメモリ１００３、１００４が接続されている。ＩＯコントローラ１００５は１つであるが、同種のバスを介して２つのメインＣＰＵ１００１、１００２が接続されている。また、メインＣＰＵ１００１には、２つの画像処理プロセッサ１００６、１００７が接続され、メインＣＰＵ１００２には、２つの画像処理プロセッサ１００８、１００９が接続されており、各画像処理プロセッサが各色の処理を行う。
【００７３】
そして、画像処理ボード１０１０上には、４つのメモリコントローラＩＣ（マスタＩＣ１０１１、スレーブＩＣ１０１２、スレーブＩＣ１０１３、スレーブＩＣ１０１４）が搭載され、各ＩＣには各画像処理プロセッサから１色ずつ計４色のデータが入力されるように構成されている。ここで、マスタＩＣ、各スレーブＩＣの設定は、外部ピンによる設定でも良いし、内部レジスタで設定しても良い。
【００７４】
また、各メモリコントローラＩＣには、６４ビット幅を持つ外部メモリデバイス４００が接続されている。この外部メモリデバイス４００との接続方法は以下の通りである。
【００７５】
データ及びストローブ信号については、DQ[7:0]-DQS[0]、DQ[15:8]-DQS[1]、DQ[23:16]-DQS[2]、DQ[31:24]-DQS[3]、DQ[39:32]-DQS[4]、DQ[47:40]-DQS[5]、DQ[55:48]-DQS[6]、DQ[63:56]-DQS[7]の対応により、各ＩＣから接続されている。
【００７６】
一方、アドレス・コマンド及びメモリデバイス基板上のデバイスに供給する複数種類のクロック信号はマスタＩＣ１０１１から出力されている。
【００７７】
ここで、図１０に示すシステムにおいて、４つのメモリコントローラＩＣが外部メモリデバイス４００へアクセスする方法の一例について説明する。
【００７８】
尚、４つのメモリコントローラＩＣがDIMMメモリモジュール４００にアクセスする場合も、実施例２で説明した２つのメモリコントローラＩＣでアクセスする場合と基本的には同様である。
【００７９】
まず、初期化時に、実施例２と同様に、各ＩＣのクロックをリファレンスとして供給を受け、３つのクロック信号に対して最も速いタイミングを満たせるようなクロックに調整を行う。
【００８０】
次に、メモリライト時は、バーストライト用データバッファにデータがたまる少し前にmmst_id信号とWrite Ready信号をram_cmd信号に載せて出力し、各スレーブＩＣ１０１２、１０１３、１０１４から出力されるram_ack1/2/3信号を待つ。ここで、最もAck信号の到達時間の遅いＩＣを見て、図８のram_cmd信号をスレーブＩＣに転送するまでクロック数を変更する。
【００８１】
マスタＩＣ１０１１は、ram_cmdでライトコマンド信号をスレーブＩＣ１０１２〜１０１４側に出力し、その到達タイミングを考慮してwr_rdy信号をアサートし、データ及びデータストローブ信号の出力を行う。このストローブ信号はマスタＩＣ１０１１のクロックCLKがデバイスに到達するタイミングに対するストローブ信号のずれの許容範囲内において、各ＩＣで調整可能である。
【００８２】
この時、４色順番にアクセスするために、Write Readyのハンドシェイクは一度のみとしている。
【００８３】
一方、メモリリード時も同様であり、プリンタ部１３０からのリード要求信号に続いてmmst_id信号とRead Ready信号とをram_cmd信号に載せて出力し、スレーブＩＣ１０１２〜１０１４から出力されるram_ack1/2/3信号を待つ。
【００８４】
マスタＩＣ１０１１は、ハンドシェイク完了後、ram_cmdでリードコマンド信号をスレーブＩＣに出力し、スレーブＩＣにコマンド信号が届くタイミングを待ち、rd_rdy信号をアサートし、外部メモリデバイス４００に対して、コマンドとアドレスを発行する。この外部メモリデバイス４００に対するコマンド発行後からリードデータ及びストローブ信号の戻り時間は、基板設計時に想定されているため、その時間を考慮して内部のsgate及びsvgate信号のマスク信号を解除し、ストローブ信号を受信し、内部でデータをラッチするように構成されている。
【００８５】
ここでは、プリンタのドラム間の遅延補正用メモリコントローラを一例として、メモリコントローラシステムの例を挙げたが、メモリコントローラＩＣを搭載し、本発明の特徴に沿うようなアクセスを行えるシステムにおいては、適用可能である。
【００８６】
以上説明した実施例によれば、同期式のダイナミックＲＡＭを扱うシステムにおいて、１種類のＩＣによりメモリ容量及びパフォーマンスをシステムに応じて構成を大きく変更することが可能になるという効果がある。
【００８７】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダー，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００８８】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００８９】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００９０】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００９１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９２】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９３】
【図１】画像入出力システムの構成の一例を示す概略ブロック図である。
【図２】本実施形態で利用するメモリコントローラＩＣ２００の一例を示す図である。
【図３】８ビット幅のメモリデバイス４つで構成される３２ビット幅メモリモジュールを示す図である。
【図４】８ビット幅のメモリデバイス８つで構成される６４ビット幅メモリモジュールを示す図である。
【図５】実施例１におけるメモリコントローラＩＣを含むシステム構成の一例を示す図である。
【図６】実施例２におけるメモリコントローラＩＣを含むシステム構成の一例を示す図である。
【図７】スレーブＩＣのクロック状況を検出する回路の一例を示す図である。
【図８】ライト時の各信号のタイミングを示す図である。
【図９】リード時の各信号のタイミングを示す図である。
【図１０】実施例３におけるメモリコントローラＩＣを含むシステム構成の一例を示す図である。
【符号の説明】
【００９４】
１００  画像入出力システム
１１０  コントローラ部（制御装置）
１２０  リーダー部（画像入力装置）
１２１  スキャナユニット
１２５  原稿給紙ユニット（ＤＦユニット）
１３０  プリンタ部（画像出力装置）
１３１  給紙ユニット
１３２  マーキングユニット
１３３  排紙ユニット
１４０  ネットワーク（ＬＡＮ）
１４１  パーソナルコンピュータ（ＰＣ）
１４２  パーソナルコンピュータ（ＰＣ）
１５０  操作部
１６０  ドライブユニット
２０２  要求信号生成部
２１１  メモリコントローラ
【図１】
2006277619.tif 000003
【図２】
2006277619.tif 000004
【図３】
2006277619.tif 000005
【図４】
2006277619.tif 000006
【図５】
2006277619.tif 000007
【図６】
2006277619.tif 000008
【図７】
2006277619.tif 000009
【図８】
2006277619.tif 000010
【図９】
2006277619.tif 000011
【図１０】
2006277619.tif 000012