(57)【特許請求の範囲】
【請求項１】
画像データを供給され印刷を行う電子印刷装置用の画像処理コントローラにおいて、
複数のインターフェースを有し、前記画像データが入力される入出力コントローラと、
前記インターフェース経由で入力された画像データが格納されるメモリと、
所定の画像処理を行う中央処理部と、
前記入出力コントローラと入出力バスを介して接続され、更に前記メモリとメモリバスを介して接続され、前記中央処理部からの前記入出力コントローラへのアクセスを行う入出力サイクルと、前記中央処理部を経由せずに前記入出力コントローラから前記メモリにアクセスを行うDMAサイクルとを制御するメモリコントローラとを有し、
前記入出力バスは、前記入出力サイクル及びDMAサイクルにおいて、コマンド及びデータをマルチプレクスで転送するデータバスを有し、
前記コマンドには前記インターフェースを特定するチャネル情報が含まれ、
前記入出力コントローラには、前記チャネル情報の各チャネルに対応した複数の入出力コントローラ用アドレス設定回路と、
前記メモリコントローラには、前記各チャネルに対応した複数のメモリコントローラ用アドレス設定回路と、を含み、
前記入出力コントローラは、前記DMAサイクルにおいて、前記入出力コントローラ用アドレス設定回路によって設定され、アクセスすべき前記メモリのアドレスを前記各チャネルに対応するスタートアドレスからロードするかインクリメントするかを示すアドレス設定情報を前記コマンドに含めて転送し、
前記メモリコントローラ用アドレス設定回路は前記アドレス設定情報に基づいて前記アドレスを設定し、前記メモリコントローラは設定された前記アドレスに基づいて前記画像データを前記メモリに格納する、ことを特徴とする画像処理コントローラ。
【請求項２】
請求項１において、
前記入出力サイクルにおいては、前記データバスに前記コマンド及びデータに加えてアドレスもマルチプレクスで転送される、ことを特徴とする画像処理コントローラ。
【請求項３】
請求項１において、
前記メモリ内に前記インターフェース毎の記録領域が割り当てられ、
前記DMAサイクルにおいて、前記メモリコントローラは、前記チャネル情報に対応する前記メモリ内の記録領域にアクセスするよう制御することを特徴とする画像処理コントローラ。
【請求項４】
請求項３において、
前記アドレス設定情報は、前記記録領域のサイズに応じて、アクセスすべきアドレスをインクリメントするか初期化するかの情報であって、
前記DMAサイクルにおいて、
前記メモリコントローラは、前記メモリへのアクセスのたびに、前記アドレス設定情報に応じて、前記メモリ内の記録領域のアドレスをインクリメントまたは初期化することを特徴とする画像処理コントローラ。
【請求項５】
請求項１において、
前記コマンドは、データの転送をシングルモードで行うかバーストモードでおこなうかの転送モード情報を含むことを特徴とする画像処理コントローラ。
【請求項６】
請求項５において、
前記コマンドは、更に、前記シングルモードまたはバーストモードに対応するデータ転送サイクル数情報を含むことを特徴とする画像処理コントローラ。
【請求項７】
請求項１において、
前記入出力バスは、前記メモリコントローラが前記データバスに信号を送出するときに前記メモリコントローラによりアサートされる第１の制御信号線と、前記入出力コントローラが前記データバスに信号を送出するときに前記入出力コントローラによりアサートされる第２の制御信号線とを有し、
前記第１の制御信号線のアサートと共に送出される要求コマンドに応答して、前記入出力コントローラが、前記第２の制御信号線のアサートにより返信し、当該入出力サイクルの終了を伝えることを特徴とする画像処理コントローラ。
【請求項８】
請求項１において、
前記入出力バスは、前記メモリコントローラが前記データバスに信号を送出するときに前記メモリコントローラによりアサートされる第１の制御信号線と、前記入出力コントローラが前記データバスに信号を送出するときに前記入出力コントローラによりアサートされる第２の制御信号線とを有し、
前記第２の制御信号線のアサートと共に送出される要求コマンドに応答して、前記メモリコントローラが、前記第１の制御信号線のアサートにより返信し、当該DMAサイクルの終了を伝えることを特徴とする画像処理コントローラ。
【請求項９】
請求項１において、
前記入出力バスは、更に、前記入出力コントローラがアサートしてバス権を要求するリクエスト信号線と、前記メモリコントローラが前記リクエスト信号に応答してアサートしバス権を許可するアクノリッジ信号線とを有することを特徴とする画像処理コントローラ。
【請求項１０】
請求項１乃至９において、
前記入出力コントローラは、前記インターフェースから受信した画像データを、前記DMAアクセスにより、前記メモリ内の受信したインターフェースに対応する記憶領域に記録することを特徴とする画像処理コントローラ。
【請求項１１】
請求項１乃至１０に記載の画像処理コントローラと、前記画像処理コントローラにより処理された画像データに従って、前記画像を印刷する電子印刷装置。
【請求項１２】
画像データを供給され印刷を行う電子印刷装置用の画像処理コントローラにおいて、
複数のインターフェースを有し、前記画像データが入力される入出力コントローラと、
前記インターフェース経由で入力された画像データが格納されるメモリと、
前記入出力コントローラと入出力バスを介して接続され、更に前記メモリとメモリバスを介して接続され、中央処理部を経由せずに前記入出力コントローラから前記メモリにアクセスを行うDMAサイクルを制御するメモリコントローラとを有し、
前記入出力バスは、前記DMAサイクルにおいて、前記インターフェースを特定するチャネル情報を含むアクセスコマンド及びデータをマルチプレクスで転送するデータバスを有し、
前記入出力コントローラには、前記チャネル情報の各チャネルに対応した複数の入出力コントローラ用アドレス設定回路と、
前記メモリコントローラには、前記各チャネルに対応した複数のメモリコントローラ用アドレス設定回路と、を含み、
前記入出力コントローラは、前記DMAサイクルにおいて、前記入出力コントローラ用アドレス設定回路によって設定され、アクセスすべき前記メモリのアドレスを前記各チャネルに対応するスタートアドレスからロードするかインクリメントするかを示すアドレス設定情報を前記コマンドに含めて転送し、
前記メモリコントローラ用アドレス設定回路は前記アドレス設定情報に基づいて前記アドレスを設定し、前記メモリコントローラは、設定された前記アドレスに基づいて前記チャネル情報に対応する前記メモリの記憶領域にアクセス制御することを特徴とする画像処理コントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタなどの電子印刷装置に使用される画像処理コントローラに関し、特に画像処理コントローラ内の入出力インターフェースとメモリコントローラとの間のより高い効率のデータバスとその制御に関する。
【０００２】
【従来の技術】
電子印刷装置は、ホストコンピュータなどにより形成された画像を、レーザビームの照射により潜像を形成し、帯電したトナーを潜像に付着させることで画像を再生する。かかる電子印刷装置は、従来のモノクロ印刷からカラー印刷に進化している。カラー化に伴い、与えられる画像データ量が膨大になり、その入力に要する時間は無視できなくなっている。更に、印刷装置内での画像処理装置は、カラー化に伴い膨大な画像データを処理して印刷用の画像データに変換し、且つその印刷用画像データを印刷エンジンに出力する必要がある。
【０００３】
また、電子印刷装置は、従来のホストコンピュータにプリンタケーブルを介して直接接続される使用形態だけでなく、ＵＳＢやIEEE1394などの新しいインターフェースに対応する必要があり、また複数のホストコンピュータの印刷ジョブに対応できるように、イーサーネットなどのＬＡＮインターフェースに対応する必要もある。従って、内部の画像処理装置のインターフェースは、多様な入力形態に対応して増大する傾向にある。上記のような画像データの増大及びインターフェースの多様化は、従来のモノクロ印刷用の画像処理装置に構造上の限界をもたらしている。
【０００４】
図１１は、従来の電子印刷装置内の画像処理を行うコントローラの構成図である。図１１の画像処理装置（コントローラ）では、ＣＰＵバス２に、ＣＰＵと、ＤＲＡＭからなるメモリ３と、入力された画像データをビットマップ形式で印刷用の画像データに変換するカラー用画像処理回路ＩＭＣと、メモリコントローラＭＣとが接続されている。また、ホストコンピュータなどの外部との画像データのインターフェースを行う入出力コントローラＩＯＣは、アドレス・データバスＡＤを介してメモリコントローラＭＣと接続される。そして、IOコントローラIOCは、複数のインターフェースを有し、それぞれに対応して受信データを蓄積するIOバッファを有する。
【０００５】
図中、アドレスイネーブル信号AENBXは、Ｌレベルの時にバスＡＤにアドレスが送出され、Ｈレベルの時にデータが送出されることを知らせる信号である。リードライト信号RWXは、Ｌレベルでライトを、Ｈレベルでリードを示すコマンド信号である。ＩＯレディー信号IORDYXは、ＩＯコントローラIOCがアクセスを受けたことを示すレディー信号である。そして、複数のインターフェースが受信したデータをメモリ３に直接書き込むＤＭＡリクエスト信号SDRQX（シリアルインターフェース用）、PDRQX（パラレルインターフェース用）、T0DRQX（チャネル０用インターフェース）、T1DRQX（チャネル１用インターフェース）の制御線が設けられる。
【０００６】
上記従来のコントローラにおいて、メモリコントローラＭＣが、ＩＯコントローラＩＯＣとの間のアドレス・データバスＡＤのバス権を持ち、ＣＰＵなどによるＩＯコントローラＩＯＣの所望のインターフェースへのリードやライト要求が、メモリコントローラＭＣを経由して行われる。また、ＩＯコントローラＩＯＣは、ホストコンピュータなど外部から受信した画像データを、ＣＰＵの制御を介することなく、メモリコントローラＭＣによりメモリ３に直接書き込んだり（ライト）、メモリ３に展開された印刷用画像データを直接読み出したり（リード）したりするために、上記のDMAリクエスト信号をアサートして、メモリコントローラにリード制御を依頼する。これは、ＩＯコントローラＩＯＣによるダイレクト・メモリ・アクセス・サイクル（ＤＭＡサイクル）である。
【０００７】
バス権を所有するメモリコントローラＭＣは、リードかライトかを示すリード・ライト信号ＲＷＸによりいずれの処理要求であるかを示しながら、リード時はアドレスを、ライト時はアドレスとデータをアドレス・データバスＡＤに送出して、リードまたはライトの動作を行う。この時、バスＡＤがアドレスとデータをマルチプレクスしているので、アドレスイネーブル信号ＡＥＮＢＸでそのいずれかを示す。
【０００８】
一方、ＩＯコントローラＩＯＣは、バス権を有していないので、ＤＭＡアクセスする場合は、ＤＭＡアクセス対象のインターフェースに対応するＤＭＡリクエスト信号SDRQX、PDRQX、T0DRQX、T1DRQXをアサートし、それに応答して、メモリコントローラＭＣによりリードまたはライト制御を行ってもらう。つまり、ＩＯコントローラＩＯＣがＤＭＡアクセスによりメモリ３にデータを書き込みたい時は、メモリコントローラＭＣにリード制御をリクエストし、ＤＭＡアクセスによりメモリ３からデータを読み出したい時は、ライト制御をリクエストする。
【０００９】
図１２は、上記従来例のメモリコントローラとＩＯコントローラとの間のバス制御を示すタイミングチャートを示す図である。図中（１）ＣＰＵからのIOコントローラIOCへのリードを行うリードIOサイクルでは、メモリコントローラＭＣは、クロックサイクルＣ１でリードライト信号RWXをＨレベルにしてデータ読み出しコマンドを送出しながら、アドレスAh,Alを送出する。これに応答して、IOコントローラIOCは、リードデータDataOutをバスADに送出しながら、クロックサイクルＣ４でレディー信号IORDYXをアサートして、有効なデータを送出したことを示す。これに応答して、メモリコントローラＭＣは、バスAD上のデータDataOutを取り込む。
【００１０】
次に、（２）ＣＰＵからのIOコントローラIOCへのライトを行うライトIOサイクルでは、メモリコントローラＭＣは、クロックサイクルＣ１でリードライト信号RWXをＬレベルにしてライトコマンドを送出しながら、アドレスAh,AlとライトデータDinをバスADに送出する。これに応答して、IOコントローラIOCが書き込み処理を終了すると、レディー信号IORDYXをＬレベルにアサートして処理の終了をメモリコントローラＭＣに知らせる。
【００１１】
更に、（３）IOコントローラIOCが受信したデータをメモリ３にDMAアクセスにより転送するDMAサイクル場合は、IOコントローラIOCが、対応するインターフェースのDMAアクセスを要求するDMAリクエスト信号（例えばシリアルインターフェースのDMAリクエスト信号PDRQX）をアサートする。これに応答して、２クロック後にメモリコントローラMCがバスADにリード用アドレスAh,Alを送出し、上記と同じリード制御が行われる。従って、IOコントローラIOCがデータDataを送出するとレディー信号IORDYXをアサートしてメモリコントローラMCにデータを取り込ませる。その後、DMAリクエスト信号PDRQXはＨレベルに戻る。
【００１２】
【発明が解決しようとする課題】
さて、上記従来の課題は、次の通りである。第１に、電子印刷装置のカラー化に伴い、画像データ量が膨大になり、特に外部のホストコンピュータからIOインターフェースが受信するデータ量が増大し、従来の８ビット単位のデータ転送では、バス効率が悪い。第２に、メモリコントローラMCとIOコントローラIOCとの間の制御信号線の数が増加し、今後インターフェースが増えるたびにそれに対応するDMAリクエスト信号線を更に増やす必要があり、将来の機能拡張に対応できるハードウエア構成になっていない。第３に、上記の第１の課題にも関係するが、画像データの膨大化に伴い、IOコントローラからメモリへのDMAアクセスの効率を上げることが特に望まれる。
【００１３】
そこで、本発明の目的は、IOコントローラとメモリコントローラとの間のバスの使用効率を高くした電子印刷装置の画像処理コントローラを提供することにある。
【００１４】
本発明の別の目的は、IOコントローラとメモリコントローラとの間の制御信号線の数を減らし、機能拡張に柔軟に対応できるバス制御方式にした電子印刷装置の画像処理コントローラを提供することにある。
【００１５】
更に、本発明の別の目的は、上記の画像処理コントローラを有する電子写真装置を提供することにある。
【００１６】
【課題を解決するための手段】
上記の目的を達成するために、本発明の第１の側面は、複数のインターフェースを有し、外部から所望のインターフェース経由で供給される画像データを受信し、内蔵するメモリに格納し、画像処理を行う電子印刷装置用の画像処理コントローラにおいて、前記メモリにメモリバスを介して接続され当該メモリへのアクセスを制御するメモリコントローラと、画像データの入出力を行う入出力コントローラとを有する。そして、メモリコントローラと入出力コントローラとの間に、コマンド、アドレス、データをマルチプレクスで転送するコマンド・アドレス・データバスを設けたことを特徴とする。このバスに、リード、ライト等を特定するコマンドを送出することで、従来のリード・ライト信号線などの制御線をなくす。
【００１７】
更に、好ましい実施例では、メモリコントローラからコマンドを送出してＣＰＵから入出力コントローラへのアクセスを行う入出力アクセスと、入出力コントローラからコマンドを送出してメモリへのアクセスを行うDMAアクセスとが行われる。これにより、入出力コントローラが受信した大量の印刷用の画像データを、高速にメモリに転送することができる。
【００１８】
更に、好ましい実施例では、コマンドに、シングルモードかバーストモードかを識別するデータを含ませる。これにより、コマンド・アドレス・データバスにデータをシングルモードで転送したり、バーストモードで転送したりすることができ、転送すべき画像データの量に応じて高速のデータバス転送が可能になり、バスの使用効率を上げることができる。
【００１９】
本発明の第２の側面は、より頻度の高い入出力コントローラからメモリへのDMAアクセスの効率を上げるために、DMAアクセス時のアドレス設定情報をコマンドに含ませて、アドレス転送サイクルを不要にする。これにより、DMAアクセスでのデータ転送のオーバーヘッドをなくし、入出力バスを経由するデータ転送効率を高くする。
【００２０】
第２の側面での好ましい実施例では、DMAサイクルでのコマンドに、インターフェースを特定するチャネル情報を含ませると共に、コマンドにアドレスの初期化かインクリメントかを示すデータを含ませて、メモリコントローラ側でメモリのアドレスの生成を行わせる。これにより、バス上にアドレスそのものを転送する必要がなくなり、DMAアクセスサイクルでのオーバーヘッドが軽くなり、全体のバス転送速度を上げることができる。
【００２１】
更に、本発明の第３の側面は、入出力サイクル時は、メモリコントローラ側にコマンドとアドレス送出をアサートするバリッド信号（第１の制御信号）を発生させると共に、入出力コントローラに処理完了を示すトランズアクション信号（第２の制御信号）を発生させ、DMAサイクル時は、入出力コントローラ側にコマンド送出をアサートするトランズアクション信号を発生させると共に、メモリコントローラMCに処理完了を示すバリッド信号を発生させることを特徴とする。
【００２２】
更に、本発明の第４の側面は、メモリコントローラにバス権を優先的に与えると共に、入出力コントローラ側にはDMAアクセス時にバス権のリクエスト信号をアサートさせ、メモリコントローラ側にバス権の調停を行わせる。これにより、入出力コントローラがバス権を取得して、コマンドを能動的に発行することができる。
【００２３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【００２４】
図１は、本実施の形態例が適用される電子印刷装置の全体構成図である。電子印刷装置１２は、例えばホストコンピュータ１０にケーブルを介して直接又はネットワークを介して間接的に接続される。ホストコンピュータ１０は、アプリケーションで形成した画像データを印刷データＳ１０として転送する。或いは、ホストコンピュータ１０がファクシミリ受信器の場合は、遠隔から送付された画像データを印刷データＳ１０として転送する。電子印刷装置１２は、供給された印刷データを解釈して印刷に必要な画像再生データＳ１４に変換するコントローラ１４と、画像再生データＳ１４に従って画像を形成する印刷エンジン１６とを有する。
【００２５】
コントローラ１４は、画像処理装置であり、印刷データＳ１０の言語を解釈して１頁または１バンドなどの所定の単位毎に中間データに展開し、色変換や二値化処理を行って画像再生データＳ１４を形成する。また、印刷エンジン１６は、例えばページプリンタの場合であれば、画像再生データＳ１４に従ってレーザ駆動パルスを形成し、ドラム上にレーザビームを照射することで画像に対応する潜像を形成し、そこに帯電したトナーを付着させ、印刷用紙に転写する。
【００２６】
電子印刷装置１２の高速化、及びカラー化に伴い、大量の画像データが印刷データＳ１０としてコントローラ１４に送信される。従って、コントローラ１４は、その大量の印刷データを受信し、効率的に内部のメモリに記録し、必要な画像処理を行わなければならない。また、電子印刷装置１２は、コンピュータのネットワーク化及び多機能化に伴い様々なインターフェースを有することが要求されている。従って、それぞれのインターフェースを介して画像データを印刷データとして入出力することが要求されている。
【００２７】
図２は、本実施の形態例における電子印刷装置１２に内蔵されるコントローラの構成図である。コントローラには、外部との入出力インターフェースの入出力を制御する入出力コントローラIOCと、コントローラの全体を制御するＣＰＵと、外部から受信した印刷データを格納し、印刷データから展開された画像のビットマップデータを格納する高速メモリ３と、高速メモリ３に格納されたビットマップデータを色変換処理や二値化処理して画像再生データを生成する画像処理装置IMGと、ＣＰＵのプログラム、フォント、オプション用プログラムを格納したＲＯＭ群４とを有する。オプション用プログラムROMには、例えば、電子印刷装置がデフォルトで対応していない印刷言語を解釈するプログラムや、ユーザ特有のフォントデータなどが格納される。
【００２８】
そして、メモリコントローラＭＣが、ＣＰＵとＣＰＵバス２０を経由して接続され、画像処理装置IMGとＩＭＧバス２２を介して接続され、ＲＯＭ群とROMバス２４を経由して接続され、IOコントローラIOCとIOバス２６を介して接続され、更に、高速メモリ３とメモリバス２８を介して接続される。かかる構造にすることで、メモリコントローラMCは、各デバイスとの間のバス制御を行い、各デバイスと個別にデータの送受信を行うことができる。
【００２９】
IOコントローラIOCは、複数のインターフェースへのデータの受信、送信を可能にする。インターフェースには、例えば、ホストコンピュータとプリンタケーブルなどで接続されるパラレルインターフェースPIF、シリアルインターフェースSIF、モノクロ用の印刷エンジンにビットマップデータを出力するエンジンインターフェースEIF、印刷装置の設定値を記録する不揮発性メモリとのインターフェースEEPROM、印刷装置の操作パネルとのインターフェースPANELなどが含まれる。更に、インターフェースには、高速インターフェースであるUSBケーブルと接続されるUSBインターフェースUSBと、オプションで内蔵されるハードディスクとのインターフェースIDEと、ＬＡＮと接続されるインターフェースETHERNETと、オプションで装着されるインターフェースTYPEBとを有し、これらのインターフェースは、１６ビットのバス幅を有する。更に、インターフェースには、超高速インターフェースであるIEEE1394との接続をするインターフェースIEEE139を有し、このインターフェースは３２ビットのバス幅を有する。
【００３０】
IOコントローラIOCは、これらのインターフェースとのデータの受信と送信を行うために、それぞれにFIFO型の入出力バッファを有する。そして、受信データは、この入出力バッファに一旦格納され、適宜、高速メモリ３にメモリコントローラＭＣを経由して、DMAアクセスモードで転送される。或いは、ＣＰＵからIOアクセスモードでメモリコントローラMC経由で入出力バッファへのデータの読み出しや書き込みが行われる。例えば、ＣＰＵが不揮発性メモリへのデータの書き込みや読み出しを行ったりする場合は、このIOアクセスモードでアクセスされる。
【００３１】
後に詳述するが、IOバス２６は、例えば８ビットのバス幅を有し、コマンドとアドレスとデータとをマルチプレクスで転送する。コマンドは例えば８ビットデータであり１サイクルで転送され、アドレスとデータは３２ビットデータ単位であり単位当たり４サイクルで転送される。
【００３２】
高速メモリ３は、通常書き換え可能なダイナミックＲＡＭであり、同期型ＤＲＡＭ（SDRAM）が使用されることが好ましい。そして、データの転送速度を上げるために、メモリバス２８は、例えば６４ビット幅で高速周波数に同期してデータを転送する。また、メモリバス２８に合わせて、IMGバス２２及びCPUバス２０も６４ビット幅を有し、同様に高速周波数に同期してデータが転送される。そして、ROMバスは、例えば３２ビット幅を有する。
【００３３】
コントローラ内の概略的なデータの流れは次の通りである。最初にモノクロ印刷の場合で説明すると、（１）例えばシリアルポートSIFに印刷データが供給され、シリアルポートに割り当てられた入力バッファに印刷データが一旦蓄積される。（２）入力バッファ領域が一杯になると、IOコントローラIOCからメモリコントローラMCを経由して、DMAアクセスモードで受信した印刷データが高速メモリ３に転送され、高速メモリ３の受信バッファ領域に記録される。（３）高速メモリ３に格納された印刷データは、ＣＰＵにより読み出されて解釈され、画像のビットマップデータに変換され、再度高速メモリ３のバンドバッファ領域に書き込まれる。ビットマップデータは、ページ単位またはバンド単位のデータである。また、これらのデータの転送は、メモリコントローラMCを経由して行われる。また、ＣＰＵは、上記印刷データの解釈を行うために、必要なプログラムをプログラムROM４からメモリコントローラMCを経由して読み出し、実行する。
【００３４】
次に、（４）高速メモリ３のバンドバッファ領域に記録されているビットマップデータは、メモリコントローラMCを経由して、IOコントローラICのモノクロエンジンインターフェースEIFの出力バッファに転送され、外部のモノクロエンジンに画像再生データとして送出される。
【００３５】
次に、カラー印刷の場合は、（１）例えばＬＡＮ経由でカラー用の印刷データがインターフェースETHERNETに供給され、それに対応する入力バッファに一旦格納される。そして、（２）高速メモリ３の受信バッファ領域にDMAアクセスで転送され、（３）ＣＰＵにより解釈され、ビットマップデータに変換され、再度高速メモリ３内のバンドバッファ領域に格納される。ここまでは、モノクロ印刷の場合と同じである。
【００３６】
ビットマップデータは、例えば画素毎のＲＧＢデータである。そして、（４）高速メモリ３のバンドバッファ領域に記録されたビットマップデータは、６４ビットのバス幅を有するメモリバス２８とＩＭＧバス２２を経由して、画像処理装置IMCに転送され、印刷エンジンのトナーであるYMCKデータに色変換され、二値化処理（例えばハーフトーン処理）され、生成された画像再生データが、直接接続された図示しないカラー用印刷エンジンに出力される。
【００３７】
コントローラ内の大量の画像データが、ＩＯバス２６、メモリバス２８及びIMGバス２２を流れる。それに伴い、データ転送の頻度に応じて、どのデバイスがバスの優先権を持つかが設計されている。例えば、画像処理装置IMGはカラー用の画像データを大量に高速メモリ３から読み出すことを頻繁に行う。従って、IMGバス２２のバス権は画像処理装置IMCが優先的に持ち、メモリコントローラMCからのバス使用要求に対して、調停処理（バスアービタ処理）を行う。また、メモリコントローラMCは、IOバス２６のバス権を優先的に持ち、IOバス使用の調停処理を行う。これにより、IMGバス２２とIOバス２６には、双方向のバスアクセスが実現される。
【００３８】
図３は、本実施の形態例におけるコントローラ内のIOバスの詳細構成を示す図である。メモリコントローラＭＣにそれぞれのデバイスに対するバス２０，２２，２４，２６，２８が独立して設けられる構成は、図２と同じである。メモリコントローラMCとIOコントローラIOCとの間のIOバス２６は、コマンド、アドレス及びデータの転送が行われる双方向のバスCADを有する。このコマンド・アドレス・データバスCADは、例えば８ビットで構成され、コマンドとアドレスとデータとをマルチプレクスで転送する。
【００３９】
また、IOバス２６には、バス制御のために、メモリコントローラMCがIOコントローラIOCに対して送出する第１の制御信号MVLDXと、IOコントローラIOCがメモリコントローラMCに送出する第２の制御信号ITRANXとを有する。第１の制御信号はバリッド信号MVLDXであり、メモリコントローラMCがバスDACに有効なデータ（コマンド、アドレスを含む）を送出していることを示す。第２の制御信号はデータトランズアクション信号ITRANXであり、IOコントローラIOCがデータ処理中であることを示す信号で、この信号ITRANXがアサートされている間は、メモリコントローラMCがIOコントローラに対してコマンドを送出することはできない。
【００４０】
IOバス２６のバス使用権は、メモリコントローラMC側が優先権を有する。従って、IOコントローラIOCがバス権を取得するために、DMAリクエスト信号DMARQXと、DMAアクノリッジ信号DMAACXとが設けられる。即ち、IOコントローラIOCは内部にDMAアクセスを制御するDMA制御回路３８を有し、バス権取得のためにDMAリクエスト信号DMARQXをアサートする。これに応答して、メモリコントローラMC内のバスアービタ回路３２は、バスCADを使用していなければ、DMAアクノリッジ信号DMAACXを返信し、バスの使用権をIOコントローラIOC側に渡す。
【００４１】
それぞれのコントローラには、共通の内部クロックIOCLKが供給され、バス制御とデータ転送がこの内部クロックに同期して行われる。
【００４２】
図４は、コマンドを説明する図表である。本実施の形態例における一つの特徴点は、従来専用に設けられていたコマンド制御信号線をなくし、変わりにコマンド化して、そのコマンドを、８ビットのバスCADにアドレスやデータと共にマルチプレクスで転送することである。従って、８ビットのコマンドをバスCAD上に１サイクルで転送した後、対応するアドレスやデータがバスCAD上にマルチプレクスで転送される。このコマンドには、リードやライトの情報、データ転送モード、転送するデータ量などの情報が含まれる。
【００４３】
図４（１）は、メモリコントローラMC側からIOコントローラIOCに対してアクセスを行うIOアクセスコマンドのフォーマットを示す。コマンドは８ビット（Cmd0〜7）で構成される。IOアクセスコマンドは、読み出しか書込かを示すリード・ライトビットCmd2と、コマンドに対応するデータ転送がシングルモードかバーストモードかを示す転送数ビットCmd1と、各モードでの転送されるデータのサイクル数（データ量／バス幅）を示すサイクル数ビットCmd0とを有する。上位のCmd3-7は、ここの例では利用されておらず、デフォルトで１になっている。８ビットのコマンドCmd0-7はそれぞれバスCAD0-7に対応付けされている。
【００４４】
本実施の形態例において、データの転送モードは３２ビットを一つの単位としている。従って、シングルモードでは４サイクル（３２／８）が必要になり、バーストモードでは、４倍（１６サイクル）と８倍（３２サイクル）とが用意されている。また、アドレスも３２ビットを一つの単位としており、アドレスの転送サイクルも４サイクルである。図中、リザーブになっているところは、必要に応じて使用することが可能になる。
【００４５】
図４（２）は、IOコントローラIOCからメモリコントローラMCにアクセスを行うDMAアクセスコマンドのフォーマットを示す。この場合も、コマンドは８ビット（Cmd0〜7）で構成される。DMAアクセスコマンドも、下位３ビットCmd0-2を利用して、リード・ライトビットCmd2と、シングルモードかバーストモードかを示す転送数ビットCmd1と、転送されるデータのサイクル数を示すサイクル数ビットCmd0とを有する。
【００４６】
更に、DMAアクセスコマンドは、上位ビットCmd4-7に、どのインターフェースについてのDMAアクセスかを示すDMAチャネルビット（インターフェースを特定するチャネル情報）を、ビットCmd3に、DMAアドレス設定要求ビット（アドレス設定情報）をそれぞれ有する。このDMAアドレス設定要求ビットは、転送されるデータの転送先アドレスの設定のために利用され、アドレスとして初期値をロードするか（Cmd3=0）、ロードされているアドレスをインクリメントするか（Cmd3=1）を示す。つまり、メモリコントローラMCでは、データの転送毎にデフォルト（Cmd3=1）でアドレスがインクリメントされ、メモリ内の記録領域が満杯になるとアドレスが初期化される。
【００４７】
図４（３）は、DMAチャネルアサインを示す図表である。図示されるとおり、アサイン可能な１６種類の内、１０種類のDMAチャネルがそれぞれのDMA要素であるインターフェースに対応付けされている。
【００４８】
DMAアクセスは頻繁に行われるので、データ転送の効率を上げるために、アドレスの転送は行わない。その代わりに、コマンドの上位ビットCmd3-7に、どのインターフェースについてのDMAアクセスであるかを示すDMAチャネル情報と、転送先のメモリ３内のアドレスを設定するアドレスロード情報とを追加し、転送先または転送元のメモリのアドレスを送信することなく、メモリコントローラがメモリ３のアドレスを生成できるようにしている。これにより、DMAアクセス時のアドレス自体の転送を省略することができ、コマンドの送信後に大量のデータを転送することができるようにしている。このため、データ転送のオーバーヘッドが少なくなる。詳細な動作説明は後述する。
【００４９】
図５は、IOサイクルとDMAサイクルでのリードとライト動作時のバス制御を説明するための図表である。IOリードサイクル（１）では、ＣＰＵなどがメモリコントローラMCを介してIOコントローラIOC内のバッファまたはそれに接続される外部デバイスのデータを読み出す。簡単に説明すると、メモリコントローラMCがバリッド信号MVLDXをアサートしながらバスCADにコマンドとアドレスを送出すると、それに応答して、IOコントローラIOCがデータをバスCAD上に送出しながら、データトランズアクション信号ITRANXをアサートして、データを返送する。
【００５０】
IOライトサイクル（２）では、ＣＰＵなどがメモリコントローラMCを介してIOコントローラIOC内のバッファまたはそれに接続される外部デバイスにデータを書き込む。この場合も、IOリードサイクルと同様に、メモリコントローラMCがバリッド信号MVLDXをアサートしながらライト要求を送出し、IOコントローラはそれに応答して書き込み動作が終了すると、レディー信号としてデータトランズアクション信号ITRANXをアサートする。ライト要求では、コマンド、アドレス、データがデータバスCAD上にマルチプレクスで送出される。
【００５１】
図５には、IOコントローラ側からメモリにアクセスするDMAリードサイクル（３）とDMAライトサイクル（４）が示される。これらについては、後述する。
【００５２】
図６は、IOリードサイクルとIOライトサイクルの詳細なタイミングチャート図である。図６（１）のIOリードサイクルの動作は以下の通りである。まずクロックサイクル１において、メモリコントローラMCがバリッド信号MLDXをアサートしながら（Ｌレベルが活性化レベル）、８ビットのコマンドcmdと、３２ビットのアドレスadrs0-3とをマルチプレクスで送出する。メモリコントローラMCはデフォルトでバス権を有するので、バスアービタ回路３２がバス権をIOコントローラに渡していなければ即バスを使用することができる。アドレスは８ビットずつ４サイクルで合計３２ビット転送される。
【００５３】
IOコントローラIOCは、受信したコマンドcmdを解釈して、リードサイクルであることと、シングルモードまたはバーストモードであること（但し図４の例ではシングルモードのみ）、データ転送サイクル数を検出し、アドレスで指定された領域のデータを読み出し、クロックサイクル７から、コマンドで指定された転送モード、転送サイクルでデータを返送する。即ち、IOコントローラIOCは、データトランズアクション信号ITRANXをアサートしながら、４サイクルでデータdata0-3をバスCAD上に送出する。
【００５４】
即ち、図５（１）に示した様に、メモリコントローラが送出するバリッド信号MVLDXとコマンド及びアドレスからなるリード要求に対して、IOコントローラが返信する読み出しデータとデータトランズアクション信号ITRANXとからなるリード応答が返される。リードコマンドに対しては、リード応答が受信されるまで、メモリコントローラ内のバスアービタ回路は、バスCADを開放しない。従って、このリード応答によりアクセスの終了が伝えられる。
【００５５】
図６（２）のIOライトサイクルの動作は以下の通りである。まずクロックサイクル１において、メモリコントローラMCがバリッド信号MLDXをアサートしながら、８ビットのコマンドcmdと、３２ビットのアドレスadrs0-3と、書き込みデータdata0-3をマルチプレクスで送出する。コマンドが１クロックサイクル、アドレスが４サイクル、データが４サイクルでそれぞれ転送される。従って、９サイクルにわたりバリッド信号MVLDXがアサートされる。
【００５６】
それに応答して、IOコントローラがアドレスで指定された領域にデータを書き込む処理を終了すると、クロックサイクル１０で、データトランズアクション信号ITRANXをアサートする。このアサートにより、IOライトアクセスが終了したことがメモリコントローラに伝えられ、バスが開放される。言い換えれば、このデータトランズアクション信号ITRANXのアサートにより、そのアクセスが終了し、次のIOアクセスを受け付ける準備ができたことが伝えられる。即ち、このデータトランズアクションのアサートは、レディー信号に対応する。
【００５７】
IOライトサイクルの場合も、図５（２）に示した通り、バリッド信号MVLDXとコマンド、アドレス、データとからなるライト要求に対して、データトランズアクション信号ITRANXからなるライト応答が返信される。
【００５８】
次に、図５に戻りDMAリードサイクルとDMAライトサイクルについて説明する。DMAリードサイクル（３）では、IOコントローラIOCはバス権を有していないので、前述の通り、DMAリクエスト信号DMAREQXをアサートしてDMAアクノリッジ信号DMAACXを受信してからコマンドを送出する。そして、データトランズアクション信号ITRANXをアサートしながら、コマンドをバスCADに送出し、メモリコントローラMCがバリッド信号MVLDXをアサートしながら、読み出しデータをバスCADに送出する。また、DMAライトサイクル（４）でも、バス権を取得した後、IOコントローラがデータトランズアクション信号ITRANXをアサートしながらコマンドとライトデータをバスCADに送出し、ライト処理が完了し、次のバス要求に対するDMAアクノリッジ信号DMAACXのアサートにより次の要求が可能であることが認識される。
【００５９】
図７は、DMAリードサイクルの詳細タイミングチャート図である。図７（１）が４バイトのリード、図７（２）が３２バイトのリードサイクルである。（１）DMA４バイトリードサイクルの動作は以下の通りである。クロックサイクル１でIOコントローラIOCがDMAリクエスト信号DMAREQXをアサートすると、それに応答して、クロックサイクル２で、メモリコントローラMCがバス権を渡すことを示すDMAアクノリッジ信号DMAACXをアサートする。このアサートの１クロック後に、IOコントローラIOCは、データトランズアクション信号ITRANXをアサートしながら、DMAリードコマンドcmdをバスCAD上に送出する。このコマンドは８ビットであり、１サイクルで転送完了する。そして、コマンドには、高速メモリ３のどのデバイスに対応する受信バッファのデータを読みたいかを示すチャネル情報と、アドレス設定情報とが含まれる。
【００６０】
DMAアクノリッジ信号DMAACXのアサートに応答して、IOコントローラは、DMAリクエスト信号DMAREQXをＨレベルに戻す。また、コマンドに応答して、メモリコントローラMCは、DMAアクノリッジ信号DMAACXをＨレベルに戻す。そして、メモリコントローラMCは、コマンドに応答して、対応するアドレスのデータを高速メモリ３から読み出し、クロックサイクル６から４サイクル連続で、データdata0-3をバスCADに送出する。この時、メモリコントローラMCは、バスに有効データが送出されたことを示すバリッド信号MVLDXをアサートする。
【００６１】
図７（２）は、３２バイトのDMAリードサイクルのタイミングチャートである。動作は、返送されるデータ量が３２バイトであり、従ってデータ転送に３２サイクルを要することを除いては、上記の４バイトリードサイクルと同じである。
【００６２】
図８は、DMAサイクル時のアドレスの管理を説明するための図である。DMAサイクルでは、コマンドにアクセス対象のチャネル情報と、アドレス設定情報とを含ませて、IOアクセスのようにアドレスをバス転送することを省略している。そのために、このコマンド内のチャネル情報と、アドレス設定情報とにより、IOコントローラIOCとメモリコントローラMCとの間で、どのアドレスへにアクセスしているかの認識を共通に持つ必要がある。
【００６３】
図８には、高速メモリ３と、メモリコントローラMCと、IOコントローラIOCのアドレス管理に必要な構成が一部示されている。高速メモリ３内には、DMAアクセスの対象インターフェース毎に、受信バッファ領域が割り当てられている。図８の例では、４つの受信バッファ領域IFa〜IFdが示される。それぞれの受信バッファ領域はスタートアドレスADDsとエンドアドレスADDeとアドレス長ADDLが予め設定され、或いはＣＰＵにより割り当てられる。そして、受信バッファ領域にデータが順次格納され、一杯になると、ＣＰＵがそのデータを読み出し、所定の処理を行う。それにより、受信バッファ領域は空になり、再度DMAアクセスによりIOコントローラからデータが書き込まれる。
【００６４】
IOコントローラIOC側は、アドレス管理回路５０を各チャネルに対応して有する（図中50a,50b,50c,50d）。アドレス管理回路５０には、チャネルに割り当てられた高速メモリ３内の受信バッファのバッファ長レジスタ５２と、そのバッファ長をロードしてデータ転送毎にデクリメントするバッファ長カウンタ５４とを有する。バッファ長カウンタのカウント値をレジスタ５２からロードするか、デクリメントするかは、コマンド内のアドレスロードビットcmd3により判断される。また、どのバッファ長をレジスタ５２にロードするかは、コマンドのチャネルビットcmd4-7により選択される。
【００６５】
同様に、メモリコントローラMC側は、アドレス管理回路４０を各チャネルに対応して有する（図中40a,40b,40c,40d）。このアドレス管理回路４０は、チャネルに割り当てられた高速メモリ３内の受信バッファのスタートアドレスADDsがロードされるスタートアドレスレジスタ４２と、そのアドレスをロードして初期化され、その後データ転送毎にアドレスをインクリメントするアドレスカウンタ４４とを有する。スタートアドレスをレジスタ４２からロードするか（初期化）、インクリメントするかは、コマンド内のアドレス設定情報であるアドレスロードビットcmd3により判断される。また、どのスタートアドレスをレジスタ４２にロードするかは、コマンドのチャネルビットcmd4-7により選択される。
【００６６】
IOコントローラ側は、バッファ長カウンタが０にならないかぎり、コマンドcmd3をアンロード「１」に設定する。バッファ長カウンタが０になると、コマンドcmd3をロード「０」に設定する。これにより、メモリコントローラMC側は、アクセスすべき受信バッファ領域のアドレスをアドレスカウンタ４４に生成し、高速メモリ３へのアクセス時に与えることができる。
【００６７】
メモリコントローラMCは、例えば半導体を利用したASICで構成される。そのため、入出力端子数に一定の制限がある。図２のように多くのバスを独立して設けたことで、メモリコントローラMCがIOバスに使用できるピン数に制限が生じ、本実施の形態例では８ビットのバス幅になっている。そして、コマンドをアドレス、データとマルチプレクスすることで、制御信号線の数を減らしている。しかし、IOコントローラからのDMAサイクルは頻繁に行われる。そこで、上記の通り、DMAサイクルにおいては、アドレスのマルチプレクス転送を省略して、コマンドにそのアドレス情報を含めている。
【００６８】
このように、IOコントローラIOCとメモリコントローラMCの双方に、アドレス管理回路を設け、互いにアドレス情報を共有することで、アドレスそのものをバスCAD上に送出することを省略することができる。
【００６９】
図９は、DMAライトサイクルの詳細な動作タイミングチャート図である。図９（１）の１バイトのDMAライトサイクルの動作は次の通りである。IOコントローラIOCは、クロックサイクル１でDMAリクエスト信号DMAREQXをアサートすることで、バス権をメモリコントローラMCに要求する。それに応答して、メモリコントローラのバスアービタが、バスが開放されていれば、クロックサイクル２でDMAアクノリッジ信号DMAACXをアサートして、IOコントローラにバス権を与える。
【００７０】
クロックサイクル４で、IOコントローラIOCは、データトランズアクション信号ITRANXをアサートしながら、DMAライトコマンドcmdと書き込みデータdata0をバスCAD上に送出する。データdata0は１バイトであり１サイクルで転送される。そして、クロックサイクル７で再度IOコントローラがDMAリクエスト信号DMAREQXをアサートしてバス権を要求すると、メモリコントローラMCは、ライト動作が終了した後にDMAアクノリッジ信号DMAACXをアサートする。即ち、DMAアクノリッジ信号DMAACXがライト要求に対する返信に対応し、アクセスの終了を通知するのである。
【００７１】
図９（２）の４バイトのDMAライトサイクルの動作も、上記の１バイトの場合と同じである。但し、転送データ量が４バイトであるので、その情報がコマンドcmdに含められ、クロックサイクル５〜８の４サイクルにわたって、書き込みデータdata0〜3がバスCADに送出される。そして、クロックサイクル９で、次のバスサイクルを許可するレディー信号として、DMAアクノリッジ信号DMAACXがアサートされる。このアクノリッジ信号がアクセスの終了を意味する。
【００７２】
図１０は、３２バイトのDMAライトサイクルの詳細なタイミングチャート図である。この動作も、上記の１バイトDMAライトサイクルと同様に、最初にバス権取得のアービトレーション処理が行われ、IOコントローラから、データトランズアクション信号ITRANXをアサートしながら、コマンドと３２バイトのライトデータがバスCADに送出される。
【００７３】
上記のDMAライトサイクルにおいても、コマンドにチャネルの種類とアドレスのロード、アンロード情報とが含められ、アクセス対象のアドレスの転送は省略されている。
【００７４】
図５で説明した通り、IOコントローラIOCとメモリコントローラMCとの間は、第１の制御信号MVLDXと、第２の制御信号ITRANXとにより、動作の要求と応答が行われる。第１及び第２の制御信号は、動作の要求においては、バスCADに有効データを送出していることを示すと共に、コマンドに含まれた何らかの動作が要求されていることを示す。また、動作の応答においては、その処理が終了することを示すと共に、リードの場合は有効データをバスCADに送出していることを示す。図５の様に、要求と応答をそれぞれの制御信号で実現することで、従来例の如きレディー信号線を設ける必要はない。
【００７５】
以上、本発明の保護範囲は、上記の実施の形態例に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００７６】
【発明の効果】
以上、本発明によれば、電子印刷装置用の画像処理コントローラにおいて、入出力インターフェースとメモリコントローラとの間のバス構成を簡単化し、且つバス使用効率を上げ、データ転送速度を上げることができる。
【図面の簡単な説明】
【図１】本実施の形態例が適用される電子印刷装置の全体構成図である。
【図２】本実施の形態例における電子印刷装置に内蔵されるコントローラの構成図である。
【図３】本実施の形態例におけるコントローラ内のIOバスの詳細構成を示す図である。
【図４】コマンドを説明する図表である。
【図５】  IOサイクルとDMAサイクルでのリードとライト動作時のバス制御を説明するための図表である。
【図６】  IOリードサイクルとIOライトサイクルの詳細なタイミングチャート図である。
【図７】  DMAリードサイクルの詳細タイミングチャート図である。
【図８】  DMAサイクル時のアドレスの管理を説明するための図である。
【図９】  DMAライトサイクルの詳細な動作タイミングチャート図である。
【図１０】  DMAライトサイクルの詳細な動作タイミングチャート図である。
【図１１】従来の電子印刷装置内の画像処理を行うコントローラの構成図である。
【図１２】従来例のメモリコントローラとＩＯコントローラとの間のバス制御を示すタイミングチャートを示す図である。
【符号の説明】
３          高速メモリ
１０        ホストコンピュータ
１２        電子印刷装置
１４        画像処理コントローラ
２６        入出力バス
２８        メモリバス
IOC          入出力コントローラ
MC          メモリコントローラ
IMC          画像処理装置
CAD        データバス、コマンド・アドレス・データバス
MVLDX      第１の制御信号、バリッド信号
ITRANX      第２の制御信号、データトランズアクション信号
DMARQX    リクエスト信号
DMAACX    アクノリッジ信号
【図１】
0003714104.tif 000002
【図２】
0003714104.tif 000003
【図３】
0003714104.tif 000004
【図４】
0003714104.tif 000005
【図５】
0003714104.tif 000006
【図６】
0003714104.tif 000007
【図７】
0003714104.tif 000008
【図８】
0003714104.tif 000009
【図９】
0003714104.tif 000010
【図１０】
0003714104.tif 000011
【図１１】
0003714104.tif 000012
【図１２】
0003714104.tif 000013