(57)【特許請求の範囲】
【請求項１】
メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御装置であって、
前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するシーケンス制御部と、
前記シーケンス制御部から前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドとを前記メモリに出力するコマンド出力部と、を備え、
前記メモリは画像データを格納する画像メモリであり、
前記第１所定数および前記第２所定数は、前記メモリから画像の水平方向の１ライン分の画像データを読み出す時間が予め定めた第１目標時間以下になるという第１条件と、前記メモリに画像の１ページ分の画像データを書き込む時間が予め定めた第２目標時間以下になるという第２条件の双方を同時に満たす数であることを特徴とするメモリ制御装置。
【請求項２】
前記シーケンス制御部は、
前記ライトパケットを前記第１所定数蓄積し、蓄積した前記第１所定数の前記ライトパケットを連続して出力する第１バッファと、
前記リードパケットを前記第２所定数蓄積し、蓄積した前記第２所定数の前記リードパケットを連続して出力する第２バッファと、
前記第１バッファが前記第１所定数の前記ライトパケットを連続して出力していないときに、前記第２バッファから前記第２所定数の前記リードパケットを連続して出力させ、前記第２バッファが前記第２所定数の前記リードパケットを連続して出力していないときに、前記第１バッファから前記第１所定数の前記ライトパケットを連続して出力させるバッファ制御部と、を備えることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御装置であって、
前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するシーケンス制御部と、
前記シーケンス制御部から前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドとを前記メモリに出力するコマンド出力部と、を備え、
前記第１所定数と前記第２所定数は、１を除く同じ数の所定数であり、
前記ライトパケットと前記リードパケットとが１つずつ交互に並ぶように前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更して前記シーケンス制御部に出力するリードライト分離部をさらに備え、
前記シーケンス制御部は、
前記ライトパケットを前記所定数蓄積し、前記所定数の前記ライトパケットを連続して出力するバッファと、
前記バッファが前記所定数の前記ライトパケットを連続して出力していないときに、前記リードライト分離部から入力した前記パケットシーケンスに含まれる前記リードパケットを出力させるバッファ制御部と、を備えることを特徴とするメモリ制御装置。
【請求項４】
メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御装置であって、
前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するシーケンス制御部と、
前記シーケンス制御部から前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドとを前記メモリに出力するコマンド出力部と、を備え、
前記第１所定数と前記第２所定数は、１を除く同じ数の所定数であり、
前記ライトパケットと前記リードパケットとが１つずつ交互に並ぶように前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更して前記シーケンス制御部に出力するリードライト分離部をさらに備え、
前記シーケンス制御部は、
前記リードパケットを前記所定数蓄積し、前記所定数の前記リードパケットを連続して出力するバッファと、
前記バッファが前記所定数の前記リードパケットを連続して出力していないときに、前記リードライト分離部から入力した前記パケットシーケンスに含まれる前記ライトパケットを出力させるバッファ制御部と、を備えることを特徴とするメモリ制御装置。
【請求項５】
前記メモリは、ＳＤＲＡＭであることを特徴とする請求項１乃至４のいずれか一項に記載のメモリ制御装置。
【請求項６】
メモリと、
前記メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、
前記メモリから読み出した前記データに基づいて所定の処理を実行する処理部と、を備える情報処理装置であって、
前記メモリ制御部は、
前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するシーケンス制御部と、
前記シーケンス制御部から前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドと前記メモリに出力するコマンド出力部と、を備え、
前記メモリは画像データを格納する画像メモリであり、
前記処理部は、前記画像データに基づいて記録媒体に画像を形成するプロッタであり、
前記第１所定数および前記第２所定数は、前記メモリから画像の水平方向の１ライン分の画像データを読み出す時間が前記プロッタの性能から求められる第１目標時間以下になるという第１条件と、前記メモリに画像の１ページ分の画像データを書き込む時間が前記プロッタの性能から求められる第２目標時間以下になるという第２条件を同時に満たす数であることを特徴とする情報処理装置。
【請求項７】
メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御方法であって、
前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するステップと、
前記ライトパケットと前記リードパケットの並びが変更された前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドとを前記メモリに出力するステップと、を含み、
前記メモリは画像データを格納する画像メモリであり、
前記第１所定数および前記第２所定数は、前記メモリから画像の水平方向の１ライン分の画像データを読み出す時間が予め定めた第１目標時間以下になるという第１条件と、前記メモリに画像の１ページ分の画像データを書き込む時間が予め定めた第２目標時間以下になるという第２条件の双方を同時に満たす数であることを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、情報処理装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）形式の画像データから印刷を行う場合、ＰＤＬ形式の画像データがラスター形式の画像データ（以下、「ラスターイメージデータ」という。）に展開され、ラスターイメージデータに基づいて印刷が行われる。ＰＤＬ形式の画像データからラスターイメージデータを生成する処理を、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）処理という。大量印刷業種向けの高速処理を行う画像形成システムでは、ＲＩＰ処理を行うＤＦＥ（Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄ）装置と、ラスターイメージデータに基づいて記録媒体である紙に画像を印刷する画像形成装置とを分離した構成が採用されることが多い。この場合、ＤＦＥ装置と画像形成装置は通信ケーブルなどで接続され、ＲＩＰ処理後のラスターイメージデータが、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（以下、「ＰＣＩｅ」という。）規格に準拠した情報通信により、ＤＦＥ装置から画像形成装置へと転送される。
【０００３】
このような画像形成システムでは、ＤＦＥ装置から画像形成装置に転送されたラスターイメージデータを一時的に格納するメモリとして、高速のデータ転送速度を実現できるＤＤＲ−ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ−Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられることが多い。ＤＤＲ−ＳＤＲＡＭ（以下、「ＤＤＲ」と略称する。）は、クロック信号の立ち上がりと立ち下がりのそれぞれでデータのやりとりを行うことが可能であり、理論上は同一クロックで動作するＳＤＲＡＭの２倍のデータ転送速度が得られる。
【０００４】
ＤＤＲに対するデータの書き込みや読み出しは、ロウアドレスとカラムアドレスの２つのアドレスで指定されるメモリセルへのアクセスにより実現される。このとき、同一のロウアドレスを連続してアクセスする場合は、データの書き込みや読み出しが高速になる。一方、ロウアドレスが頻繁に切り替わる場合、特に、異なるロウアドレスを指定してデータの書き込みと読み出しを交互に行う場合は、書き込みから読み出しの切り替えを行うたびにコマンド受付完了待ちの時間が発生するため、パフォーマンスが低下する。
【０００５】
上記の画像形成システムでは、ＤＦＥ装置から画像形成装置にラスターイメージデータを転送してＤＤＲに書き込む処理と、ＤＤＲから読み出したラスターイメージデータに基づいて画像を印刷する処理とが並行して行われる。このため、ＤＤＲに対しては、ラスターイメージデータの書き込みと読み出しが時分割で交互に行われることになり、異なるロウアドレスを指定したデータの書き込みと読み出しの切り替えが頻繁に発生するため、データ転送効率の低下が懸念される。
【０００６】
外部デバイスとメモリとの間のデータ転送効率を向上させる技術としては、例えば、特許文献１に記載のメモリ帯域制御装置が知られている。このメモリ帯域制御装置は、入出力ポートを介して接続された複数の外部デバイスのうち、データ転送要求のあった外部デバイスに対してのみメモリ帯域を動的に割り当てるＩ／Ｏバッファを設けることで、複数の外部デバイスに対してメモリ帯域を固定的に割り当てる場合と比較して、メモリ帯域が無駄に消費されることを抑制し、外部デバイスとメモリとの間のデータ転送効率を高めるようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術は、複数の外部デバイスのうちデータ転送要求のあった外部デバイスにのみメモリ帯域を割り当てることでデータ転送効率を向上させる技術である。したがって、この特許文献１に記載の技術を上記の画像形成システムに適用した場合、ＤＦＥ装置から画像形成装置にラスターイメージデータを転送してＤＤＲに書き込む処理と、ＤＤＲから読み出したラスターイメージデータに基づいて画像を印刷する処理とを並行して行うことができずに、画像形成システムとしてのパフォーマンスが低下する。また、ＤＦＥ装置から画像形成装置へのラスターイメージデータの転送と、ＤＤＲから読み出したラスターイメージデータに基づく画像の印刷とを並行して行う場合は、特許文献１に記載の技術を適用したとしても、ＤＤＲに対して異なるロウアドレスを指定したデータの書き込みと読み出しの切り替えが頻繁に発生するため、データ転送効率の低下が懸念される。
【０００８】
本発明は、上記に鑑みてなされたものであって、メモリに対するデータの書き込みと読み出しを時分割で交互に行う場合であっても、メモリへのデータの書き込みや読み出しを高速に行って、効率のよいデータ転送を実現することができるメモリ制御装置、情報処理装置およびメモリ制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明に係るメモリ制御装置は、メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御装置であって、前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するシーケンス制御部と、前記シーケンス制御部から前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドとを前記メモリに出力するコマンド出力部と、を備え、前記メモリは画像データを格納する画像メモリであり、前記第１所定数および前記第２所定数は、前記メモリから画像の水平方向の１ライン分の画像データを読み出す時間が予め定めた第１目標時間以下になるという第１条件と、前記メモリに画像の１ページ分の画像データを書き込む時間が予め定めた第２目標時間以下になるという第２条件の双方を同時に満たす数であることを特徴とする。
【００１０】
また、本発明に係る情報処理装置は、メモリと、前記メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、前記メモリから読み出した前記データに基づいて所定の処理を実行する処理部と、を備える情報処理装置であって、前記メモリ制御部は、前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するシーケンス制御部と、前記シーケンス制御部から前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドと前記メモリに出力するコマンド出力部と、を備え、前記メモリは画像データを格納する画像メモリであり、前記処理部は、前記画像データに基づいて記録媒体に画像を形成するプロッタであり、前記第１所定数および前記第２所定数は、前記メモリから画像の水平方向の１ライン分の画像データを読み出す時間が前記プロッタの性能から求められる第１目標時間以下になるという第１条件と、前記メモリに画像の１ページ分の画像データを書き込む時間が前記プロッタの性能から求められる第２目標時間以下になるという第２条件を同時に満たす数であることを特徴とする。
【００１１】
また、本発明に係るメモリ制御方法は、メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御方法であって、前記データの書き込み要求を含むライトパケットと、前記データの読み出し要求を含むリードパケットと、を含むパケットシーケンスを入力し、前記ライトパケットが第１所定数連続し、前記リードパケットが第２所定数連続するように、前記パケットシーケンスに含まれる前記ライトパケットと前記リードパケットの並びを変更するステップと、前記ライトパケットと前記リードパケットの並びが変更された前記パケットシーケンスを入力し、前記ライトパケットと前記リードパケットの並び順に従って、前記ライトパケットに応じたライトコマンドと前記リードパケットに応じたリードコマンドとを前記メモリに出力するステップと、を含み、前記メモリは画像データを格納する画像メモリであり、前記第１所定数および前記第２所定数は、前記メモリから画像の水平方向の１ライン分の画像データを読み出す時間が予め定めた第１目標時間以下になるという第１条件と、前記メモリに画像の１ページ分の画像データを書き込む時間が予め定めた第２目標時間以下になるという第２条件の双方を同時に満たす数であることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、メモリに対するデータの書き込みと読み出しを時分割で交互に行う場合であっても、メモリへのデータの書き込みや読み出しを高速に行って、効率のよいデータ転送を実現することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態の画像形成システムの概略構成図である。
【図２】図２は、ＤＦＥ装置と画像形成装置との間の伝送路を説明する図である。
【図３】図３は、カードアダプタの概要を示す模式図である。
【図４】図４は、ＤＦＥ装置と画像形成装置の具体的な構成例を示す図である。
【図５】図５は、図４に示した構成の画像形成装置におけるラスターイメージデータのデータフローを示す図である。
【図６】図６は、ラスターイメージデータの構成を説明する図である。
【図７】図７は、画像形成装置のデータ転送におけるトランザクションについての説明図である。
【図８】図８は、画像形成装置の１ライン周期に同期したデータ転送の一例を示すタイミングチャートである。
【図９】図９は、メモリコントローラに入力されるパケットシーケンスの一例を示す概念図である。
【図１０】図１０は、図９に示したパケットシーケンスをそのまま処理してフレームメモリに対するデータの書き込みと読み出しを行った場合の処理時間を示す概念図である。
【図１１】図１１は、メモリコントローラの機能的な構成の一例を示すブロック図である。
【図１２】図１２は、メモリコントローラが備えるシーケンス制御部による処理の流れを示すフローチャートである。
【図１３】図１３は、１ラインリード時間および１ページライト時間の算出に使用するｒｅａｄ＿ｕｎｉｔ＿ｎｕｍおよびｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍの概念を説明する図である。
【図１４】図１４は、１ラインリード時間と、リードパケットのバッファ蓄積数およびライトパケットのバッファ蓄積数との関係を示すグラフ図である。
【図１５】図１５は、１ページライト時間と、リードパケットのバッファ蓄積数およびライトパケットのバッファ蓄積数との関係を示すグラフ図である。
【図１６】図１６は、１ラインリード時間がライン読み出し目標時間以下となり、かつ、１ページライト時間がページ書き込み目標時間以下となるリードパケットのバッファ蓄積数およびライトパケットのバッファ蓄積数の範囲を説明する図である。
【図１７】図１７は、１ラインリード時間がライン読み出し目標時間以下となり、かつ、１ページライト時間がページ書き込み目標時間以下となるリードパケットのバッファ蓄積数およびライトパケットのバッファ蓄積数の範囲を説明する図である。
【図１８】図１８は、メモリコントローラの機能的な構成の一例を示すブロック図である。
【図１９】図１９は、シーケンス制御部に入力されるパケットシーケンスと、シーケンス制御部から出力されるパケットシーケンスとを、時間ｔ１〜ｔ９のそれぞれについて観測した様子を示す説明図である。
【図２０】図２０は、メモリコントローラが備えるシーケンス制御部による処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明に係るメモリ制御装置、情報処理装置およびメモリ制御方法の最良な実施の形態を詳細に説明する。以下では、ＤＦＥ装置と画像形成装置とが通信ケーブルにより接続された画像形成システムを例に説明する。以下の実施の形態では、画像形成装置が、特許請求の範囲に記載の「情報処理装置」に相当し、画像形成装置が備えるメモリコントローラが、特許請求の範囲に記載の「メモリ制御装置」に相当する。なお、本発明が適用可能な装置（システム）はこれらに限られるものではない。
【００１５】
（第１の実施の形態）
図１は、本実施に係る形態の画像形成システム１００の概略構成図である。画像形成システム１００は、ＤＦＥ装置２００と、画像形成装置４００とを備える。ＤＦＥ装置２００と画像形成装置４００は、通信ケーブル３００によって接続される。ＤＦＥ装置２００は、いわゆるプリントサーバとして機能するものである。ＤＦＥ装置２００は、ネットワーク５００を介して、ユーザが使用するＰＣなどの複数の端末（クライアント端末）６００にも接続される。
【００１６】
ＤＦＥ装置２００のマザーボード２１０には、図２に示すように、ＰＣＩｅ規格に準拠したスロット（以下、「ＰＣＩｅスロット」という。）２２０が搭載されている。ＰＣＩｅスロット２２０には、カードアダプタ７００が装着される。
【００１７】
画像形成装置４００のマザーボード４１０には、図２に示すように、ＰＣＩｅスロット４２０が搭載されている。ＰＣＩｅスロット４２０には、カードアダプタ７００が装着される。
【００１８】
ＤＦＥ装置２００側のカードアダプタ７００と画像形成装置４００側のカードアダプタ７００とは、通信ケーブル３００によって相互に接続される。これにより、ＤＦＥ装置２００と画像形成装置４００とが、お互いのカードアダプタ７００および通信ケーブル３００を介して通信可能に接続され、ＤＦＥ装置２００と画像形成装置４００との間で高速の情報通信が行われる。
【００１９】
本実施の形態に係る画像形成システム１００では、画像情報（ブラックの画像情報、シアンの画像情報、マゼンタの画像情報、およびイエローの画像情報）が、ラスターイメージデータの形式で、ＤＦＥ装置２００から画像形成装置４００に転送される。画像形成装置４００は、ＤＦＥ装置２００から転送されたラスターイメージデータに基づいて、カラーの画像を形成する。
【００２０】
なお、通信ケーブル３００としては、ＰＣＩｅ規格に準拠した銅線ケーブルや光アクティブケーブル、その他の高速差動信号を伝送可能なケーブルなど、様々な通信ケーブルを用いることができる。
【００２１】
図３は、カードアダプタ７００の概要を示す模式図である。カードアダプタ７００は、ＤＦＥ装置２００側と画像形成装置４００側とで共通の構成である。カードアダプタ７００は、図３に示すように、ケーブルコネクタ７１０と、カードエッジコネクタ７２０と、ＰＣＩｅブリッジ７３０とを備えている。
【００２２】
ケーブルコネクタ７１０は、通信ケーブル３００が装着されるコネクタである。また、カードエッジコネクタ７２０は、カードアダプタ７００がＰＣＩｅスロット２２０またはＰＣＩｅスロット４２０に装着されたときに、ＰＣＩｅスロット２２０またはＰＣＩｅスロット４２０の端子に接続されるコネクタである。ケーブルコネクタ７１０およびカードエッジコネクタ７２０としては、ＰＣＩｅ規格に準拠したものが用いられる。
【００２３】
ＰＣＩｅブリッジ７３０は、ケーブルコネクタ７１０とカードエッジコネクタ７２０との間でデータを中継する、ＰＣＩｅ規格に準拠したブリッジである。ＰＣＩｅブリッジ７３０としては、ノントランスペアレントタイプのブリッジが用いられる。ノントランスペアレントタイプのＰＣＩｅブリッジ７３０を用いてＤＦＥ装置２００と画像形成装置４００とを接続することにより、ＤＦＥ装置２００と画像形成装置４００が、互いに邪魔されることなく個別に初期化などを行うことが可能となる。また、各装置のプロセッサは、別々に動作しながら互いのリソースにアクセス可能となる。
【００２４】
また、ＰＣＩｅブリッジ７３０としては、クロックアイソレーション機能を持つブリッジを用いることが望ましい。クロックアイソレーション機能とは、ブリッジを境界としてクロックドメインを分割する機能である。クロックアイソレーション機能により、ＤＦＥ装置２００側のＰＣＩｅブリッジ７３０と画像形成装置４００側のＰＣＩｅブリッジ７３０との間（通信ケーブル３００を用いてラスターイメージデータを転送する領域）を、それ以外の領域から独立したクロックドメインとすることができる。そして、ＤＦＥ装置２００側のＰＣＩｅブリッジ７３０と画像形成装置４００側のＰＣＩｅブリッジ７３０との間のクロックドメインでは、クロックとして非スペクトラム拡散クロックを用い、それ以外のクロックドメインでは、クロックとしてスペクトラム拡散クロックを用いる。これにより、不要輻射（ＥＭＩ）の低減を図りつつ、ＤＦＥ装置２００と画像形成装置４００との間で同期を取りながら適切な通信を行うことが可能となる。
【００２５】
すなわち、ＥＭＩの低減を図るためには、ＤＦＥ装置２００や画像形成装置４００の動作の基準となるクロックとしてスペクトラム拡散クロックを用いることが有効である。しかし、画像形成システム１００全体のクロックとしてスペクトラム拡散クロックを用いると、ＤＦＥ装置２００と画像形成装置４００との間で同期が取れず、通信ケーブル３００を用いた通信を適切に行うことができない。これに対して、ＰＣＩｅブリッジ７３０のクロックアイソレーション機能を用いて、ＰＣＩｅブリッジ７３０間のクロックドメインを分離し、この部分のみクロックとして非スペクトラム拡散クロックを用いるようにすれば、画像形成システム１００全体としてのＥＭＩの低減を図りつつ、ＤＦＥ装置２００と画像形成装置４００との間での通信ケーブル３００を用いた通信を適切に行うことができる。
【００２６】
次に、本実施の形態に係る画像形成システム１００におけるＤＦＥ装置２００と画像形成装置４００の具体的な構成例について、さらに詳しく説明する。
【００２７】
図４は、本実施の形態に係る画像形成システム１００のＤＦＥ装置２００と画像形成装置４００の具体的な構成例を示す図である。本実施の形態に係る画像形成システム１００において、ＤＦＥ装置２００と画像形成装置４００は、ＰＣＩｅの規格に準拠した通信ケーブル３００により接続される。また、ＤＦＥ装置２００には、ＬＡＮなどのネットワーク５００を介して、ユーザが使用するＰＣなどのクライアント端末６００が接続される。
【００２８】
ＤＦＥ装置２００は、ＤＦＥ処理部１０を備える。ＤＦＥ処理部１０は、図示しないプロセッサやメモリを用いて実現されるＤＦＥ装置２００側のデータ処理部である。ＤＦＥ処理部１０は、主な機能構成として、ＲＩＰ処理部１１、画像処理部１２、および、データ転送処理部１３を有する。
【００２９】
ＲＩＰ処理部１１は、クライアント端末６００からネットワーク５００経由で送られた印刷ジョブを受信し、印刷ジョブに含まれるＰＤＬ形式のデータを、印刷用のラスターイメージデータに展開する。
【００３０】
画像処理部１２は、ＲＩＰ処理部１１により生成されたラスターイメージデータに対して、画像回転や拡大または縮小など、画像編集のための画像処理を行う。画像処理部１２により画像処理が行われた後のラスターイメージデータは、図示しないメモリに格納される。
【００３１】
データ転送処理部１３は、画像処理部１２により画像処理が行われた後のラスターイメージデータをページ単位で上記メモリから取り出す。そして、データ転送処理部１３は、上記メモリから取り出したラスターイメージデータを、メモリライト転送により、通信ケーブル３００を介して画像形成装置４００に転送する。メモリライト転送とは、書き込み要求（本実施の形態では、後述する画像形成装置４００のフレームメモリ３１にラスターイメージデータを書き込む要求である。以下、この書き込み要求を「ライトリクエスト」という。）に応じてデータを転送する処理である。
【００３２】
通信ケーブル３００との接続には、図示しないカードアダプタ（上述したカードアダプタ７００に相当）が用いられる。カードアダプタには、通信ケーブル３００を介して画像形成装置４００に転送するラスターイメージデータが入力されるＰＣＩｅブリッジ１４（上述したＰＣＩｅブリッジ７３０に相当）が実装されている。ラスターイメージデータは、このＰＣＩｅブリッジ１４を経由し、ＰＣＩｅのプロトコルに則って通信ケーブル３００を介して画像形成装置４００に転送される。
【００３３】
なお、ラスターイメージデータの転送に用いるＰＣＩｅのレーン数は、転送するラスターイメージデータのサイズと要求される印刷処理速度に応じて十分な転送帯域が得られるレーン数とする。ここでは、一例として、４レーン（ｘ４）でラスターイメージを転送するものとする。また、本実施の形態に係る画像形成システム１００では、ラスターイメージデータは、非圧縮の状態で、ＤＦＥ装置２００から画像形成装置４００へと転送される。
【００３４】
画像形成装置４００は、メモリコントローラ統合型プロセッサ２１、メインメモリ２２、ＰＣＨ２３、ＰＣＩｅスイッチ２４、２つのプロッタＡＳＩＣ２５ａ，２５ｂ、プリンタエンジン２６、フレームメモリ３１、および、メモリコントローラ３０（特許請求の範囲に記載の「メモリ制御装置」に相当）を備える。
【００３５】
また、画像形成装置４００には、通信ケーブル３００との接続用に図示しないカードアダプタ（上述したカードアダプタ７００に相当）が設けられている。そして、このカードアダプタに実装されたＰＣＩｅブリッジ２７（上述したＰＣＩｅブリッジ７３０に相当）を経由して、ＤＦＥ装置２００からＰＣＩｅのプロトコルに則って通信ケーブル３００を介して転送されたラスターイメージデータが入力される。
【００３６】
本実施の形態に係る画像形成システム１００では、上述したＤＦＥ装置２００側のＰＣＩｅブリッジ１４と、画像形成装置４００側のＰＣＩｅブリッジ２７との双方に、それぞれノントランスペアレントタイプのブリッジが用いられる。つまり、本実施の形態に係る画像形成システム１００では、ノントランスペアレントタイプのブリッジ同士を通信ケーブル３００によって接続することで、ＤＦＥ装置２００と画像形成装置４００との間のホスト間通信が可能とされている。
【００３７】
この場合、ＤＦＥ装置２００側から見て画像形成装置４００側のＰＣＩｅブリッジ２７が非透過の状態となるとともに、画像形成装置４００側から見てＤＦＥ装置２００側のＰＣＩｅブリッジ１４が非透過の状態となる。このため、画像形成システム１００の起動時に、ＤＦＥ装置２００側から立ち上げても画像形成装置４００側から立ち上げても画像形成システム１００は正常に起動し、起動時の立ち上げ順に制約が加わらない。また、システム起動後の稼働時において通信ケーブル３００が抜けたとしても、システムがハングアップすることがない。さらに、ＤＦＥ装置２００と画像形成装置４００との間の通信の際に、ＤＦＥ装置２００と画像形成装置４００との間でアドレス変換を行う必要があるが、ＤＦＥ装置２００のアドレス空間と、画像形成装置４００のアドレス空間のほかに、ノントランスペアレントタイプのブリッジ（ＰＣＩｅブリッジ１４，２７）に共通のアドレス空間（ＮＴ空間）を設定することができ、しかもそのＮＴ空間を固定することが可能であるので、ＤＦＥ装置２００側と画像形成装置４００側の双方でＮＴ空間とのアドレス変換を行えばよく、アドレス変換が容易となる。
【００３８】
また、本実施の形態に係る画像形成システム１００では、上述したＤＦＥ装置２００側のＰＣＩｅブリッジ１４と、画像形成装置４００側のＰＣＩｅブリッジ２７との双方に、それぞれクロックアイソレーション機能を有するブリッジが用いられ、ＰＣＩｅブリッジ１４とＰＣＩｅブリッジ２７との間のクロックドメインが、独立したクロックドメインとされている。そして、ＰＣＩｅブリッジ１４とＰＣＩｅブリッジ２７との間を除く他のクロックドメインでは、クロックとしてスペクトラム拡散クロックが用いられ、ＰＣＩｅブリッジ１４とＰＣＩｅブリッジ２７との間のクロックドメインでは、クロックとして非スペクトラム拡散クロックが用いられる。これにより、不要輻射（ＥＭＩ）の低減を図りつつ、ＤＦＥ装置２００と画像形成装置４００との間で同期を取りながら適切な通信を行えるようにしている。
【００３９】
メモリコントローラ統合型プロセッサ２１は、ＤＦＥ装置２００からのラスターイメージデータの転送を制御するための転送制御処理などを実行する。メモリコントローラ統合型プロセッサ２１は、この転送制御処理を含む各種の処理（ソフトウェア）を実行するための作業領域として、メインメモリ２２を用いる。なお、本実施の形態に係る画像形成システム１００では、ＤＦＥ装置２００から画像形成装置４００へ非圧縮の状態でラスターイメージデータが転送される。また、ラスターイメージデータに対する画像編集のための画像処理は、ＤＦＥ装置２００側で行われている。したがって、メモリコントローラ統合型プロセッサ２１は、ラスターイメージデータの伸張処理や画像編集のための画像処理を行わない。
【００４０】
メモリコントローラ統合型プロセッサ２１は、ＰＣＨ２３およびこれに接続された制御信号伝送用ケーブル２８を介して、ＤＦＥ装置２００のＤＦＥ処理部１０と接続されている。ＤＦＥ装置２００から画像形成装置４００へのラスターイメージデータの転送は、メモリコントローラ統合型プロセッサ２１から制御信号伝送用ケーブル２８経由でＤＦＥ処理部１０へと伝送される制御信号に従って実行され、ページ単位でのラスターイメージデータの転送開始タイミングなどが制御される。
【００４１】
メインメモリ２２は、第１のメモリバス２９を介してメモリコントローラ統合型プロセッサ２１と接続されている。このメインメモリ２２は、メモリコントローラ統合型プロセッサ２１の作業領域として用いられる。本実施の形態に係る画像形成システム１００では、ＤＦＥ装置２００から転送されたラスターイメージデータは、このメインメモリ２２には格納されず、メモリコントローラ３０に接続されたフレームメモリ３１に格納される。
【００４２】
ＰＣＩｅスイッチ２４は、ＰＣＩｅブリッジ２７と、メモリコントローラ３０と、プロッタＡＳＩＣ２５ａと、プロッタＡＳＩＣ２５ｂと、メモリコントローラ統合型プロセッサ２１とに接続される。ＰＣＩｅスイッチ２４は、これらＰＣＩｅブリッジ２７、メモリコントローラ３０、プロッタＡＳＩＣ２５ａ、プロッタＡＳＩＣ２５ｂ、および、メモリコントローラ統合型プロセッサ２１の間のパケットルーティングを行う。
【００４３】
なお、本実施の形態に係る画像形成システム１００では、メモリコントローラ統合型プロセッサ２１とＰＣＩｅスイッチ２４との間の接続レーン数は、最小の１レーン接続（×１）としている。これは、本実施の形態に係る画像形成システム１００の場合、メモリコントローラ統合型プロセッサ２１とＰＣＩｅスイッチ２４との間でラスターイメージデータの転送は行われず、これらの間では、メモリコントローラ統合型プロセッサ２１がプロッタＡＳＩＣ２５ａ，２５ｂに１ラインのサイズやディスクリプタのアドレスを設定するためのレジスタ設定用のパケット程度しか転送されないためである。
【００４４】
プロッタＡＳＩＣ２５ａ，２５ｂは、メモリリード転送により、フレームメモリ３１に格納されたラスターイメージデータを、プリンタエンジン２６の印刷速度（紙送り速度）に同期して、主走査方向１ライン分ずつメインメモリ２２から読み出して、プリンタエンジン２６に転送する。なお、プロッタＡＳＩＣ２５ａ，２５ｂは、それぞれ４色分のメモリリード転送処理が可能な構成であり、プロッタＡＳＩＣ２５ａがＣＭＹＫの４色に対応し、プロッタＡＳＩＣ２５ｂがクリアトナーや特色２色に対応している。メモリリード転送とは、読み出し要求（本実施の形態では、画像形成装置４００のフレームメモリ３１からラスターイメージデータを読み出す要求である。以下、この読み出し要求を「リードリクエスト」という。）に応じてデータを転送する処理である。
【００４５】
プリンタエンジン２６は、プロッタＡＳＩＣ２５ａ，２５ｂによりライン周期で転送されるラスターイメージデータに基づいて、記録媒体である紙に画像を形成する。
【００４６】
フレームメモリ３１は、ＤＦＥ装置２００から転送されたラスターイメージデータをページ単位で格納する。フレームメモリ３１としては、例えば、高速のデータ転送速度を実現できるＤＤＲが用いられる。なお、フレームメモリ３１としては、ＤＤＲ以外にも、クロック信号に同期してデータの書き込みおよび読み出しを行う各種ＳＤＲＡＭを利用可能である。フレームメモリ３１は、第２のメモリバス３３を介してメモリコントローラ３０に接続されている。
【００４７】
メモリコントローラ３０は、フレームメモリ３１に対するラスターイメージデータの書き込みおよび読み出しを制御する。メモリコントローラ３０は、第２のメモリバス３３を介してフレームメモリ３１と接続されているとともに、ＰＣＩｅスイッチ２４と接続される。このようなメモリコントローラ３０としては、例えば、ＰＣＩｅ接続ポートとＤＤＲメモリバス（第２のメモリバス３３）を有するＡＳＩＣや、ＰＣＩｅとＤＤＲメモリバスとに対応した高速ＩＯを搭載した汎用の高速ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などが用いられる。なお、メモリコントローラ３０の具体的な構成例については詳細を後述する。
【００４８】
メモリコントローラ３０とＰＣＩｅスイッチ２４との間の接続レーン数は、２つのプロッタＡＳＩＣ２５ａ，２５ｂで必要とされる帯域よりも広い帯域が確保できる接続レーン数とされる。本実施の形態に係る画像形成システム１００では、プロッタＡＳＩＣ２５ａ，２５ｂがそれぞれ４レーン接続（×４）とされているため、メモリコントローラ３０とＰＣＩｅスイッチ２４との間の接続レーン数を、８レーン接続（×８）としている。
【００４９】
次に、本実施の形態に係る画像形成システム１００におけるラスターイメージデータのデータフローについて、図５を参照して説明する。図５は、図４に示した構成の画像形成装置４００におけるラスターイメージデータのデータフローを示す図である。
【００５０】
ＤＦＥ装置２００のＲＩＰ処理部１１により生成されたラスターイメージデータは、画像処理部１２による画像処理が行われた後、データ転送処理部１３によるメモリライト転送によって、非圧縮の状態でＰＣＩｅブリッジ１４および通信ケーブル３００を経由して、ページ単位で画像形成装置４００へと転送される。ＤＦＥ装置２００から画像形成装置４００へと転送されたラスターイメージデータは、ＰＣＩｅブリッジ２７、ＰＣＩｅスイッチ２４を経由してメモリコントローラ３０に入力され、メモリコントローラ３０によってフレームメモリ３１に書き込まれる（図５の破線矢印（１）で示す経路）。
【００５１】
このとき、画像形成装置４００のＰＣＩｅスイッチ２４は、ＰＣＩｅブリッジ２７とメモリコントローラ３０との間でのラスターイメージデータの転送を中継する。メモリコントローラ３０は、通信ケーブル３００、ＰＣＩｅブリッジ２７およびＰＣＩｅスイッチ２４を経由してＤＦＥ装置２００から転送されたラスターイメージデータを、第２のメモリバス３３を介してフレームメモリ３１に格納する。
【００５２】
１ページ分のラスターイメージデータがフレームメモリ３１に格納されると、画像形成装置４００のプロッタＡＳＩＣ２５ａ，２５ｂが、メモリコントローラ３０に対してリードリクエストを送信する。その後、プロッタＡＳＩＣ２５ａ，２５ｂは、メモリリード転送によって、プリンタエンジン２６の印刷速度（紙送り速度）に同期して、フレームメモリ３１にページ分が格納されたラスターイメージデータを、１ライン分ずつフレームメモリ３１から読み出し、プリンタエンジン２６に転送する（図５の破線矢印（２）および破線矢印（３）で示す経路）。このとき、ＰＣＩｅスイッチ２４は、メモリコントローラ３０とプロッタＡＳＩＣ２５ａ，２５ｂとの間でのラスターイメージデータの転送を中継する。プロッタＡＳＩＣ２５ａ，２５ｂは、メモリコントローラ３０を介してフレームメモリ３１から読み出したラスターイメージデータを、ＰＣＩｅスイッチ２４経由で取得し、プリンタエンジン２６に供給する。
【００５３】
プロッタＡＳＩＣ２５ａ，２５ｂによるメモリリード転送によって１ライン分ずつのラスターイメージデータがフレームメモリ３１からプリンタエンジン２６に供給されている間、次のページのラスターイメージデータが、ＤＦＥ装置２００のデータ転送処理部１３によるメモリライト転送により、画像形成装置４００に転送されてフレームメモリ３１に書き込まれる。つまり、本実施の形態に係る画像形成システム１００では、ラスターイメージデータをページ単位でフレームメモリ３１に書き込む処理と、フレームメモリ３１からラスターイメージデータをライン単位で読み出してプリンタエンジン２６に供給する処理とを同時並行で処理することで、印刷処理が実行される。
【００５４】
本実施の形態に係る画像形成システム１００では、以上のように、ラスターイメージデータをページ単位でフレームメモリ３１に書き込む処理と、フレームメモリ３１からラスターイメージデータをライン単位で読み出してプリンタエンジン２６に供給する処理とを同時並行で処理する。このため、ＰＣＩｅスイッチ２４からメモリコントローラ３０に対しては、ライトリクエストを含むライトパケットと、リードリクエストを含むリードパケットとが混在したパケットシーケンスが送られる。メモリコントローラ３０は、このパケットシーケンスに含まれるライトパケットとリードパケットの並びを変更することにより、フレームメモリ３１へのラスターイメージデータの書き込みや読み出しを高速に行えるようにする機能を備える。
【００５５】
図６は、ラスターイメージデータの構成を説明する図である。ラスターイメージデータは、図６に示すように、主走査方向および副走査方向の２次元配列によって構成されている。上述した本実施の形態に係る画像形成システム１００では、ＤＦＥ装置２００のＲＩＰ処理部１１によって図６のようなラスターイメージデータが生成され、画像形成装置４００のフレームメモリ３１に転送される。
【００５６】
プロッタＡＳＩＣ２５ａ，２５ｂによるフレームメモリ３１からプリンタエンジン２６へのデータ転送は、主走査方向の画素データを決められた時間周期に転送する処理を副走査方向に繰り返す、同期転送によって実行される。
【００５７】
図７は、画像形成装置４００のメモリリード転送におけるトランザクションについての説明図である。画像形成装置４００のメモリリード転送は、図７に示すように、主走査方向の１ラインごとに、複数の画素データを１つのパケットデータとして、１ラインずつ複数（図７の例ではｎ個）のパケット群から構成されるトランザクションとして、副走査方向に画像が走査される速度に同期させて転送する必要がある。１トランザクションあたりの許容時間を、１ライン周期と呼ぶ。１ライン周期は、下記のように、プリンタエンジン２６の紙送り速度と印刷画像解像度によって決まる。
１ライン周期（ｓ）＝１／｛［紙送り速度（ｍｍ／ｓ）］×［１ｍｍあたりの画素数］｝
【００５８】
なお、画像形成装置４００がスキャナエンジンを備える場合には、スキャナエンジンで読み取った画素データを同様の同期転送によりフレームメモリ３１に転送する必要がある。この場合の１ライン周期は、下記のように、スキャナエンジンが備えるヘッドの移動速度と読み取り解像度によって決まる。
１ライン周期（ｓ）＝１／｛［ヘッド移動速度（ｍｍ／ｓ）］×［１ｍｍあたりの画素数］｝
【００５９】
図８は、画像形成装置４００の１ライン周期に同期したデータ転送の一例を示すタイミングチャートである。以下では、説明を簡単にするために、１ライン分のデータ量を４つのパケットで転送できるものとして説明する。
【００６０】
プロッタＡＳＩＣ２５ａ，２５ｂによるフレームメモリ３１からプリンタエンジン２６へのメモリリード転送は、上記のように１ライン周期に同期させた同期転送となる。このメモリリード転送は、プロッタＡＳＩＣ２５ａ，２５ｂからフレームメモリ３１へのリードリクエスト（パケット読み出し要求）に応じて実行される。
【００６１】
ラスターイメージデータの１ライン分の全てのパケットデータ（図中Ｄ１〜Ｄ４）が、１ライン周期内でフレームメモリ３１からプリンタエンジン２６へ転送されれば、ライン同期制約が守られていることになる。図８の例では、パケットデータＤ１〜Ｄ４の転送が１ライン周期内で完了しており、ライン同期制約が満たされている。パケットデータＤ１〜Ｄ４の転送が完了してから次のライン周期が始まるまでの間は、余裕時間となる。
【００６２】
図８の例では、プロッタＡＳＩＣ２５ａ，２５ｂからのリードリクエストに対するフレームメモリ３１からの応答遅延時間（レイテンシ）が短いため、ライン同期制約を満たしたデータ転送が可能となっている。しかしながら、応答遅延時間が長くなると、ラスターイメージデータの１ライン分の全てのパケットデータ（図中Ｄ１〜Ｄ４）の転送を１ライン周期内で完了させることができなくなり、プリンタエンジン２６でエラーが発生するとともに、紙には異常画像が印刷されてしまうことになる。
【００６３】
以上のようなライン同期制約は、高速で移動する紙にプリンタエンジン２６で画像を形成する画像形成装置４００でのデータ転送に固有のものであり、例えば、図５の破線矢印（１）で示したように、ＤＦＥ装置２００から画像形成装置４００に対してラスターイメージデータをページ単位で転送する場合には、このような制約は存在しない。つまり、ページ単位でのデータ転送が遅れると、時間あたりの印刷枚数が減ることはあるが、印刷する紙のページ間では、プリンタエンジン２６を一時停止して、ページ単位でのデータ転送完了を待つことができ、エラー発生や異常画像の印刷にはつながらないためである。これに対して、高速な紙の移動は、ライン単位でのデータ転送が遅れた場合に急停止することはできないため、ライン同期制約は必ず守られていなければならない。
【００６４】
特に、大量印刷業種向けなど、高速かつ高解像度の印刷処理が求められる画像形成システムでは、１ライン周期が数十μｓレベルと非常に短く、この短い期間内に数十ｋｂｙｔｅにもなる１ライン分のデータ量を転送しなければならなくなってきており、このような状況であってもライン同期制約を確実に守れるようにする対策が求められている。
【００６５】
また、本実施の形態に係る画像形成システム１００は、上述したように、ラスターイメージデータをページ単位でフレームメモリ３１に書き込む処理と、フレームメモリ３１からラスターイメージデータをライン単位で読み出してプリンタエンジン２６に供給する処理とを同時並行で処理するシステムである。したがって、フレームメモリ３１へのラスターイメージデータの書き込みと読み出しが時分割で交互に行われることになり、ライン同期制約を確実に守れるようにするためには、フレームメモリ３１に対するアクセスを適切に制御する必要がある。さらに、上述したプリンタエンジン２６の一時停止を防止し、システムとしての性能向上を図るためには、ライン同期制約を確実に守れるようにすることに加え、ＤＦＥ装置２００から画像形成装置４００に対するページ単位でのラスターイメージデータの転送も効率よく行えるようにする必要がある。
【００６６】
そこで、本実施の形態に係る画像形成システム１００では、フレームメモリ３１に対するラスターイメージデータの書き込みおよび読み出しを制御するメモリコントローラ３０に、入力したパケットシーケンスに含まれるライトパケットとリードパケットの並びを変更して、フレームメモリ３１へのラスターイメージデータの書き込みや読み出しを高速に行えるようにする機能を持たせている。
【００６７】
本実施の形態に係る画像形成システム１００では、画像形成装置４００のフレームメモリ３１として、上述したようにＤＤＲを用いる。したがって、フレームメモリ３１に対するラスターイメージデータの書き込みや読み出しの際に、同一のロウアドレスを連続してアクセスする場合は、データの書き込みや読み出しが高速になる。一方、ロウアドレスが頻繁に切り替わる場合、特に、異なるロウアドレスを指定してデータの書き込みと読み出しを交互に行う場合は、書き込みから読み出しの切り替えを行うたびにコマンド受付完了待ちの時間が発生するため、パフォーマンスが低下する。
【００６８】
詳述すると、ＤＤＲからのデータ読み出しは、ロウアドレスにより指定される行のうち、カラムアドレスにより指定されるメモリセルの電荷をデータとして出力する動作となる。このとき、メモリセルの電荷をチャージして出力する必要があるが、電荷のチャージは同一のロウアドレスのメモリセルに対して一括して行われる。したがって、同一のロウアドレスから連続してデータを読み出す場合は、最初に電荷のチャージを行えば、それ以降は、メモリセルからデータを読み出すたびに電荷のチャージを行う必要はない。しかしながら、データの読み出しの間に、異なるロウアドレスのメモリセルに対するデータの書き込みが介入すると、データの書き込みの後に再度データの読み出しを行う際に、再度電荷のチャージを行う必要がある。このデータ読み出し時に電荷のチャージが終了するまでの時間が、コマンド受付完了待ちの時間となる。なお、データの書き込み時には電荷をチャージする必要がないため、このような時間が発生しない。
【００６９】
本実施の形態に係る画像形成システム１００では、上述したように、ＤＦＥ装置２００から画像形成装置４００にラスターイメージデータを転送してフレームメモリ３１に書き込む処理と、フレームメモリ３１から読み出したラスターイメージデータに基づく画像の印刷とが同時に行われる。このため、フレームメモリ３１に対しては、ラスターイメージデータの書き込みと読み出しが時分割で交互に行われることになり、異なるロウアドレスを指定したデータの書き込みと読み出しの切り替えが頻繁に発生する。
【００７０】
すなわち、フレームメモリ３１からのラスターイメージデータの読み出しは、ラインごとに行われるため、同一のロウアドレスからのデータ読み出しとなる。したがって、１ライン分のラスターイメージデータをフレームメモリ３１から連続して読み出すことができれば、ラインの最初のデータの読み出し時に電荷をチャージする時間が必要となるが、その後のデータ読み出しは、高速に行うことができる。しかしながら、本実施の形態に係る画像形成システム１００では、１ライン分のラスターイメージデータをフレームメモリ３１から読み出している間に、ＤＦＥ装置２００から画像形成装置４００に転送されたラスターイメージデータをフレームメモリ３１に書き込む必要がある。このとき、ラスターイメージデータの書き込み先は、既にラスターイメージデータの読み出しが終了したメモリセルとなる。したがって、ラスターイメージデータを読み出し中のメモリセルとは異なるロウアドレスのメモリセルに対して書き込みが行われることになり、例えば、１パケットずつのデータの書き込みと読み出しを交互に行うようにすると、書き込みから読み出しの切り替えを行うたびにコマンド受付完了待ちの時間が発生し、データ転送効率が低下する。
【００７１】
図９は、メモリコントローラ３０に入力されるパケットシーケンスの一例を示す概念図である。図９では、パケットシーケンスに含まれる各パケットのうち、リードパケットを細線の四角、ライトパケットを太線の四角でそれぞれ示している。リードパケットは、リードリクエストを含むパケットである。ライトパケットは、ライトリクエストを含むパケットである。本実施の形態では、ライトパケットには、ライトリクエストの他に、フレームメモリ３１に書き込むラスターイメージデータ（以下、ラスターイメージデータを単に「データ」と略称する。）が含まれているものとして説明する。このため、ライトパケットの処理に必要な時間はリードパケットの処理に必要な時間よりも長く、例えば、リードパケットが１パケットあたり６サイクル（１サイクルは同期信号の立ち上がりから次の同期信号の立ち上がりまでの時間）の処理時間を要するのに対し、ライトパケットは１パケットあたり１０サイクルの処理時間を要する。なお、パケットシーケンスは図中の矢印の方向に流れるものとし、各パケットに付した数字は、メモリコントローラ３０に入力される順番を示す。
【００７２】
図１０は、図９に示したパケットシーケンスをそのまま処理してフレームメモリ３１に対するデータの書き込みと読み出しを行った場合の処理時間を示す概念図である。図中のハッチングを付した領域が、コマンド受付完了待ちの時間（例えば１０サイクル）を表している。
【００７３】
図１０に示すように、フレームメモリ３１に入力されるパケットシーケンスにライトパケットとリードパケットとが混在する場合、ライトパケットを処理してからリードパケットを処理するまでの間に、コマンド受付完了待ちの時間が発生する。これは、上述したように、ライトパケットに含まれるライトリクエストが指定するロウアドレスとリードパケットに含まれるリードリクエストが指定するロウアドレスが異なり、リードリクエストに応じてメモリセルからデータを読み出す際に電荷をチャージする時間が必要となるためである。このライトパケットとリードパケットの間のコマンド受付完了待ちの時間が頻繁に発生すると、データ転送効率の低下を招き、上述したライン同期制約の遵守や、プリンタエンジン２６による複数ページの連続印刷の維持が難しくなる。
【００７４】
図１１は、本実施の形態の画像形成装置４００が備えるメモリコントローラ３０の機能的な構成の一例を示すブロック図である。メモリコントローラ３０は、図１１に示すように、シーケンス制御部３１０と、メモリコントロール部３２０とを備える。
【００７５】
シーケンス制御部３１０は、メモリコントローラ３０に入力されたパケットシーケンスに含まれるライトパケットとリードパケットの並びを、ライトパケットが第１所定数連続し、リードパケットが第２所定数連続するように変更する。シーケンス制御部３１０は、ライト用バッファ３１１、リード用バッファ３１２、および、バッファ制御部３１３を備える。
【００７６】
ライト用バッファ３１１は、メモリコントローラ３０に入力されたパケットシーケンスに含まれるライトパケットを、予め定めた第１所定数蓄積し、蓄積した第１所定数のライトパケットを連続して出力する。また、リード用バッファ３１２は、メモリコントローラ３０に入力されたパケットシーケンスに含まれるリードパケットを、予め定めた第２所定数蓄積し、蓄積した第２所定数のリードパケットを連続して出力する。
【００７７】
バッファ制御部３１３は、ライト用バッファ３１１からのライトパケットの出力と、リード用バッファ３１２からのリードパケットの出力を制御する。具体的には、バッファ制御部３１３は、ライト用バッファ３１１が第１所定数のライトパケットを連続して出力していないときにリード用バッファ３１２から第２所定数のリードパケットを連続して出力させ、リード用バッファ３１２が第２所定数のリードパケットを連続して出力していないときにライト用バッファ３１１から第１所定数のリードパケットを連続して出力させる。
【００７８】
ライト用バッファ３１１によるライトパケットの蓄積数（第１所定数）と、リード用バッファ３１２によるリードパケットの蓄積数（第２所定数）は、下記の２つの条件を同時に満たす数に設定される。
・条件１：フレームメモリ３１から画像の水平方向１ライン分のデータを読み出す時間が、ライン同期制約を守るために予め定めた目標時間（以下、「ライン読み出し目標時間」という。）以下になる。
・条件２：フレームメモリ３１に画像の１ページ分のデータを書き込む時間が、ページ間でプリンタエンジン２６を一時停止させることなく複数ページの連続印刷を行えるようにするために予め定めた目標時間（以下、「ページ書き込み目標時間」という。）以下になる。
なお、上記の条件１および条件２の双方を同時に満たす第１所定数および第２所定数の具体例については、詳細を後述する。
【００７９】
メモリコントローラ３０に入力されたパケットシーケンスは、シーケンス制御部３１０の処理によってパケットの並び替えが行われる。そして、シーケンス制御部３１０から出力されるパケットシーケンスは、ライトパケットが第１所定数連続し、リードパケットが第２所定数連続するパケットシーケンスとなる。なお、図１１では、便宜上、ライトパケットとリードパケットが２つずつ連続するようにパケットシーケンスに含まれるパケットの並び替えが行われた例を図示している。シーケンス制御部３１０によりパケットの並び替えが行われたパケットシーケンスは、メモリコントロール部３２０に入力される。
【００８０】
メモリコントロール部３２０は、コマンド生成部３２１（特許請求の範囲に記載の「コマンド出力部」に相当）と、データ制御部３２２とを備える。
【００８１】
コマンド生成部３２１は、シーケンス制御部３１０によりパケットの並び替えが行われたパケットシーケンスを入力し、入力したパケットシーケンスのライトパケットとリードパケットの並び順に従って、ライトパケットに応じたライトコマンドおよびリードパケットに応じたリードコマンドをそれぞれ生成し、フレームメモリ３１に出力する。具体的には、コマンド生成部３２１は、入力したパケットシーケンスの先頭のパケットから順に、パケットに含まれるリクエスト（ライトリクエストまたはリードリクエスト）を参照し、リクエストに含まれるアクセス情報（アクセスするメモリセルのアドレス）と、アクセス方向情報（ライト／リード）などに基づいて、フレームメモリ３１へ与えるＲＡＳ（Ｒｏｗ  Ａｒｒａｙ  Ｓｔｒｏｂｅ）、ＣＡＳ（Ｃｏｌｕｍｎ  Ａｒｒａｙ  Ｓｔｒｏｂｅ）などのコマンド（アクセ方向情報がライトであればライトコマンド、リードであればリードコマンド）を生成する。そして、コマンド生成部３２１は、生成したコマンドをフレームメモリ３１に出力する。
【００８２】
データ制御部３２２は、フレームメモリ３１に対するデータの書き込みおよび読み出しを制御する。具体的には、データ制御部３２２は、メモリライト転送の場合は、メモリコントロール部３２０に入力されたライトパケットから書き込むべきデータを取り込んでフレームメモリ３１に出力する。また、データ制御部３２２は、メモリリード転送の場合は、フレームメモリ３１から読み出されたデータを取り込んで、ＰＣＩｅスイッチ２４に出力する。
【００８３】
図１２は、メモリコントローラ３０が備えるシーケンス制御部３１０による処理の流れを示すフローチャートである。図１２のフローチャートは、画像の１ページ分のデータの書き込みまたは読み出しが終了するまでのシーケンス制御部３１０による処理の流れを示している。
【００８４】
ステップＳ１０１：シーケンス制御部３１０は、パケットシーケンスの先頭から順に、パケットシーケンスに含まれるパケットを入力し、ステップＳ１０２に進む。
【００８５】
ステップＳ１０２：シーケンス制御部３１０は、ステップＳ１０１で入力したパケットがライトパケットであるか否かを判定する。そして、ステップＳ１０１で入力したパケットがライトパケットであれば（ステップＳ１０２：Ｙｅｓ）ステップＳ１０３に進み、ステップＳ１０１で入力したパケットがリードパケットであれば（ステップＳ１０２：Ｎｏ）ステップＳ１１１に進む。
【００８６】
ステップＳ１０３：シーケンス制御部３１０は、ステップＳ１０１で入力したライトパケットをライト用バッファ３１１に格納し、第１カウンタをカウントアップして、ステップＳ１０４に進む。第１カウンタは、第１所定値をカウントするためのカウンタである。
【００８７】
ステップＳ１０４：シーケンス制御部３１０は、第１カウンタのカウント値が第１所定値に達したか否かを判定する。そして、第１カウンタのカウント値が第１所定値に達していれば（ステップＳ１０４：Ｙｅｓ）ステップＳ１０５に進み、第１カウンタのカウント値が第１所定値未満であれば（ステップＳ１０４：Ｎｏ）ステップＳ１０９に進む。
【００８８】
ステップＳ１０５：シーケンス制御部３１０は、リード用バッファ３１２からのリードパケットの出力中であるかどうかを判定する。そして、リード用バッファ３１２からのリードパケットの出力中であれば（ステップＳ１０５：Ｙｅｓ）ステップＳ１０６に進み、リード用バッファ３１２からのリードパケットの出力中でなければ（ステップＳ１０５：Ｎｏ）ステップＳ１０７に進む。
【００８９】
ステップＳ１０６：シーケンス制御部３１０は、リード用バッファ３１２からのリードパケットの出力が終わるまで待機し、ステップＳ１０７に進む。
【００９０】
ステップＳ１０７：シーケンス制御部３１０は、ライト用バッファ３１１に蓄積された第１所定数のライトパケットをライト用バッファ３１１から連続して出力させるとともに、第１カウンタをリセットし、ステップＳ１０８に進む。
【００９１】
ステップＳ１０８：シーケンス制御部３１０は、画像の１ページ分のデータの書き込みまたは読み出しが終了したか否かを判定する。そして、画像の１ページ分のデータの書き込みまたは読み出しが終了していれば（ステップＳ１０８：Ｙｅｓ）、図１２のフローチャートで示す一連の処理を終了する。一方、画像の１ページ分のデータの書き込みまたは読み出しが終了していなければ（ステップＳ１０８：Ｎｏ）、シーケンス制御部３１０は、ステップＳ１０１に戻って次のパケットを入力し、ステップＳ１０１以降の処理を繰り返し行う。
【００９２】
ステップＳ１０９：シーケンス制御部３１０は、画像の１ページ分のデータに対応するライトパケットが入力されたか否かを判定する。そして、画像の１ページ分のデータに対応するライトパケットが入力されていれば（ステップＳ１０９：Ｙｅｓ）ステップＳ１１０に進み、画像の１ページ分のデータに対応するライトパケットが入力されていなければ（ステップＳ１０９：Ｎｏ）、ステップＳ１０１に戻って次のパケットを入力し、ステップＳ１０１以降の処理を繰り返し行う。
【００９３】
ステップＳ１１０：シーケンス制御部３１０は、ライト用バッファ３１１に蓄積されたライトパケット（第１所定数に満たないライトパケット）をライト用バッファ３１１から連続して出力させるとともに、第１カウンタをリセットし、図１２のフローチャートで示す一連の処理を終了する。
【００９４】
ステップＳ１１１：シーケンス制御部３１０は、ステップＳ１０１で入力したリードパケットをリード用バッファ３１２に格納し、第２カウンタをカウントアップして、ステップＳ１１２に進む。第２カウンタは、第２所定値をカウントするためのカウンタである。
【００９５】
ステップＳ１１２：シーケンス制御部３１０は、第２カウンタのカウント値が第２所定値に達したか否かを判定する。そして、第２カウンタのカウント値が第２所定値に達していれば（ステップＳ１１２：Ｙｅｓ）ステップＳ１１３に進み、第２カウンタのカウント値が第２所定値未満であれば（ステップＳ１１２：Ｎｏ）ステップＳ１１７に進む。
【００９６】
ステップＳ１１３：シーケンス制御部３１０は、ライト用バッファ３１１からのライトパケットの出力中であるかどうかを判定する。そして、ライト用バッファ３１１からのライトパケットの出力中であれば（ステップＳ１１３：Ｙｅｓ）ステップＳ１１４に進み、ライト用バッファ３１１からのライトパケットの出力中でなければ（ステップＳ１１３：Ｎｏ）ステップＳ１１５に進む。
【００９７】
ステップＳ１１４：シーケンス制御部３１０は、ライト用バッファ３１１からのライトパケットの出力が終わるまで待機し、ステップＳ１１５に進む。
【００９８】
ステップＳ１１５：シーケンス制御部３１０は、リード用バッファ３１２に蓄積された第２所定数のリードパケットをリード用バッファ３１２から連続して出力させるとともに、第２カウンタをリセットし、ステップＳ１１６に進む。
【００９９】
ステップＳ１１６：シーケンス制御部３１０は、画像の１ページ分のデータの書き込みまたは読み出しが終了したか否かを判定する。そして、画像の１ページ分のデータの書き込みまたは読み出しが終了していれば（ステップＳ１１６：Ｙｅｓ）、図１２のフローチャートで示す一連の処理を終了する。一方、画像の１ページ分のデータの書き込みまたは読み出しが終了していなければ（ステップＳ１１６：Ｎｏ）、シーケンス制御部３１０は、ステップＳ１０１に戻って次のパケットを入力し、ステップＳ１０１以降の処理を繰り返し行う。
【０１００】
ステップＳ１１７：シーケンス制御部３１０は、画像の１ページ分のデータに対応するリードパケットが入力されたか否かを判定する。そして、画像の１ページ分のデータに対応するリードパケットが入力されていれば（ステップＳ１１７：Ｙｅｓ）ステップＳ１１８に進み、画像の１ページ分のデータに対応するライトパケットが入力されていなければ（ステップＳ１１７：Ｎｏ）、ステップＳ１０１に戻って次のパケットを入力し、ステップＳ１０１以降の処理を繰り返し行う。
【０１０１】
ステップＳ１１８：シーケンス制御部３１０は、リード用バッファ３１２に蓄積されたリードパケット（第２所定数に満たないリードパケット）をリード用バッファ３１２から連続して出力させるとともに、第２カウンタをリセットし、図１２のフローチャートで示す一連の処理を終了する。
【０１０２】
以上のように、本実施の形態に係る画像形成システム１００においては、画像形成装置４００のメモリコントローラ３０に、ライトパケットが第１所定数連続し、リードパケットが第２所定数連続するように、パケットシーケンスに含まれるパケットの並びを変更するシーケンス制御部３１０を設けている。そして、シーケンス制御部３１０により変更された並び順に従って、メモリコントロール部３２０からフレームメモリ３１に対して、ライトパケットに応じたライトコマンドと、リードパケットに応じたリードコマンドとが出力されるようにしている。したがって、データの書き込みから読み出しへの切り替え時のコマンド受付完了待ちの時間の発生回数を減らし、データ転送効率の向上を図ることができる。これにより、上述したライン同期制約を遵守して異常画像が印刷されることを防止できるとともに、ＤＦＥ装置２００から画像形成装置４００に対するページ単位でのデータ転送も効率よく行って、複数ページの連続印刷を継続的に行うことができる。
【０１０３】
次に、シーケンス制御部３１０のライト用バッファ３１１に蓄積するライトパケットの蓄積数（第１所定数）と、リード用バッファ３１２に蓄積するリードパケットの蓄積数（第２所定数）の具体例について、図１３〜図１７を参照しながら詳しく説明する。
【０１０４】
第１所定数と第２所定数は、上述した条件１および条件２の双方を同時に満たす数に設定される。これら第１所定数と第２所定数が取りうる範囲は、ライン読み出し目標時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅと、ページ書き込み目標時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅと、１ライン分のデータの読み出しに要する時間（以下、「１ラインリード時間」という。）ｔ＿ｒｅａｄ＿ｌｉｎｅ１と、１ページ分のデータの書き込みに要する時間（以下、「１ページライト時間」という。）ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１との関係から定められる。ライン読み出し目標時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅと、ページ書き込み目標時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅは、画像形成装置４００のプリンタエンジン２６の性能などに応じて決まる値である。１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１と、１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１は、下記のように算出することができる。
【０１０５】
まず、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１と、１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１の算出に使用する用語について、以下のように定義する。
１ラインのバイト数：ｌｉｎｅ１＿ｂｙｔｅ（Byte）
１ページの総バイト数：ｐａｇｅ１＿ｂｙｔｅ（Byte）
リードパケットのサイズ：ｒｅａｄ＿ｓｉｚｅ（Byte）
ライトパケットのサイズ：ｗｒｉｔｅ＿ｓｉｚｅ（Byte）
リードパケットのサイズ毎での時間：ｔ＿ｒｅｓｄ（s）
ライトパケットのサイズ毎での時間：ｔ＿ｗｒｉｔｅ（s）
データの書き込みから読み出しへ切り替わる際のコマンド受付完了待ちの時間：ｔ＿ｗａｉｔ（s）
ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍあたりで、バッファリング等で生じる待ち時間：ｔ＿ｂｕｆ（s）
リードパケットのバッファ蓄積数（第２所定数）：ｒｅａｄ＿ｂｕｆ＿ｎｕｍ
ライトパケットのバッファ蓄積数（第１所定数）：ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ
【０１０６】
次に、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１および１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１の算出方法の一例について、図１３を参照しながら説明する。図１３は、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１および１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１の算出に使用するｒｅａｄ＿ｕｎｉｔ＿ｎｕｍおよびｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍの概念を説明する図であり、図１３（ａ）がｒｅａｄ＿ｕｎｉｔ＿ｎｕｍの説明図、図１３（ｂ）がｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍの説明図である。
【０１０７】
ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍは、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍを１つのユニットとしたときの１ラインでのユニット数である。つまり、例えば、図１３（ａ）に例示するように、ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＝３の場合に、３つのリードパケットの塊であるユニットが１ラインにいくつ含まれるかを示したものがｒｅａｄ＿ｕｎｉｔ＿ｎｕｍである。ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍは、下記式（１）のように表すことができる。
ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ＝ｌｉｎｅ１＿ｂｙｔｅ／（ｒｅａｄ＿ｓｉｚｅ×ｒｅａｄ＿ｂｕｆ＿ｎｕｍ）の切り捨て  ・・・（１）
【０１０８】
このｒｅａｄ＿ｕｎｉｔ＿ｎｕｍを用いると、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１は、下記式（２）のように表すことができる。
ｔ＿ｒｅａｄ＿ｌｉｎｅ１＝ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ×（ｒｅａｄ＿ｂｕｆ＿ｎｕｍ×ｔ＿ｒｅａｄ＋ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ×ｔ＿ｗｒｉｔｅ＋ｔ＿ｗａｉｔ＋ｔ＿ｂｕｆ）＋α  ・・・（２）
なお、αは１ラインのバイト数ｌｉｎｅ１＿ｂｙｔｅをｒｅａｄ＿ｕｎｉｔ＿ｎｕｍで除算したときの剰余バイト分の時間であり、例えば下記式（３）のように表すことができる。
α＝ＲＯＵＮＤＵＰ（（ｌｉｎｅ１＿ｂｙｔｅ−ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ×ｒｅａｄ＿ｂｕｆ＿ｎｕｍ）／ｒｅａｄ＿ｓｉｚｅ）×ｔ＿ｒｅｓｄ  ・・・（３）
なお、ＲＯＵＮＤＵＰは整数部への切り上げである。
【０１０９】
ｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍは、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍをｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ分集めたものを１つのユニットとしたときの１ページでのユニット数である。つまり、例えば、図１３（ｂ）に例示するように、ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ＝２の場合に、２つのライトパケットの塊をｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ分集めたユニットが１ページにいくつ含まれるかを示したものがｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍである。ｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍは、下記式（４）のように表すことができる。
ｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍ＝ｐａｇｅ１＿ｂｙｔｅ／（ｗｒｉｔｅ＿ｓｉｚｅ×ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ×ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ）の切り捨て  ・・・（４）
【０１１０】
このｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍを用いると、１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１は、下記式（５）のように表すことができる。
ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１＝ｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍ×ｔ＿ｒｅａｄ＿ｌｉｎｅ１＋β  ・・・（５）
なお、βは１ページの総バイト数ｐａｇｅ１＿ｂｙｔｅをｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍ単位の総バイト数で除算したときの剰余バイト分の時間であり、例えば下記式（６）のように表すことができる。
β＝ＲＯＵＮＤＵＰ（（ｐａｇｅ１＿ｂｙｔｅ−ｗｒｉｔｅ＿ｓｉｚｅ×ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ×ｒｅａｄ＿ｕｎｉｔ＿ｎｕｍ×ｗｒｉｔｅ＿ｕｎｉｔ＿ｎｕｍ）／ｗｒｉｔｅ＿ｓｉｚｅ）×ｔ＿ｗｒｉｔｅ  ・・・（６）
なお、ＲＯＵＮＤＵＰは整数部への切り上げである。
【０１１１】
図１４は、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１と、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍおよびライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍとの関係を示すグラフ図である。図１４の横軸はリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍであり、縦軸は１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１である。図１４では、例として、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍが１，２，４，８，１６，３２の場合について、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍに対する１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１を、それぞれグラフとして示している。
【０１１２】
図１５は、１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１と、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍおよびライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍとの関係を示すグラフ図である。図１５の横軸はリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍであり、縦軸は１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１である。図１５では、例として、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍが１，２，４，８，１６，３２の場合について、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍに対する１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１を、それぞれグラフとして示している。
【０１１３】
図１６および図１７は、図１４および図１５のグラフ図において、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１がライン読み出し目標時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅ以下（上記の条件１）となり、かつ、１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１がページ書き込み目標時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅ以下（上記の条件２）となるリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）およびライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）の範囲を説明する図である。なお、図１６では、一例として、ライン読み出し目標時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅを０．０００５ｓとしている。また、図１７では、一例として、ページ書き込み目標時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅを３ｓとしている。
【０１１４】
図１６に示す各グラフにおいて、１ラインリード時間ｔ＿ｒｅａｄ＿ｌｉｎｅ１がライン読み出し目標時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅと等しくなるときのリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍが、リードパケットのバッファ蓄積数の下限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎとなる。また、図１７に示す各グラフにおいて、１ページライト時間ｔ＿ｗｒｉｔｅ＿ｐａｇｅ１がページ書き込み目標時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅと等しくなるときのリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍが、リードパケットのバッファ蓄積数の上限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘとなる。任意の数のライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍに対して、下限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎから上限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘの間のリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍが、上記の条件１および条件２の双方を同時に満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）の許容範囲となる。
【０１１５】
図１６および図１７では、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍが８，１６，３２のときのリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍの許容範囲を、それぞれ破線の枠で示している。例えば、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）が３２の場合、上記の条件１および条件２の双方を同時に満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）の許容範囲は、およそ１５〜２５となる。
【０１１６】
以下、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）が３２の場合を例に挙げて、上記の条件１および条件２の双方を同時に満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）の許容範囲の求め方について具体的に説明する。
【０１１７】
リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）をｒｎ（図１５および図１６の例ではｒｎ＝１〜３２）とし、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）が３２で、かつ、リードパケットのバッファ蓄積数ｒｎの場合の１ラインリード時間をｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅ３２（ｒｎ）とする。また、ライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）が３２で、かつ、リードパケットのバッファ蓄積数ｒｎの場合の１ページライト時間をｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅ３２（ｒｎ）とする。
【０１１８】
図１６に示したグラフ図より、１ラインリード時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅ３２（ｒｎ）がライン読み出し目標時間ｒｅａｄ＿ｌｉｎｅ＿ｔｉｍｅ以下となるリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍのうち、最小の値を、リードパケットのバッファ蓄積数の下限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎとする。図１６の例では、この条件（条件１）を満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍは１５〜３２であるので、その中で最小の１５がリードパケットのバッファ蓄積数の下限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎとなる。
【０１１９】
次に、図１７に示したグラフ図より、１ページライト時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅ３２（ｒｎ）がページ書き込み目標時間ｗｒｉｔｅ＿ｐａｇｅ＿ｔｉｍｅ以下となるリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍのうち、最大の値を、リードパケットのバッファ蓄積数の上限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘとする。図１７の例では、この条件（条件２）を満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍは１〜２５であるので、その中で最大の２５がリードパケットのバッファ蓄積数の上限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘとなる。
【０１２０】
任意の数のライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍに対して、以上のように求めたリードパケットのバッファ蓄積数の下限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎと上限値ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘが、ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎ≦ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘの関係にあれば、上記任意の数のライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍとの関係において、ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎからｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘの範囲が、上記の条件１および条件２の双方を同時に満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）の許容範囲となる。一方、ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍｉｎ＞ｒｅａｄ＿ｂｕｆ＿ｎｕｍ＿ｍａｘの関係にあれば、上記任意の数のライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍとの組み合わせで、上記の条件１および条件２の双方を同時に満たすリードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍは存在しないことになる。以上のようにして、上記の条件１および条件２の双方を同時に満たすライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）と、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）とを決定することができる。決定したライトパケットのバッファ蓄積数ｗｒｉｔｅ＿ｂｕｆ＿ｎｕｍ（第１所定数）と、リードパケットのバッファ蓄積数ｒｅａｄ＿ｂｕｆ＿ｎｕｍ（第２所定数）は、シーケンス制御部３１０により、例えば、メモリコントローラ３０内の図示しないＥＥＰＲＯＭなどの記憶部に記憶される。
【０１２１】
（第２の実施の形態）
次に、第２の実施の形態について説明する。第２の実施の形態に係る画像形成システムでは、画像形成装置４００が、第１の実施の形態で説明したメモリコントローラ３０に代えて、メモリコントローラ３０’を備える。なお、その他の構成については第１の実施の形態と共通するため、以下、第１の実施の形態と共通する構成については同一の符号を付して重複した説明を省略し、第２の実施の形態に特徴的な点のみ説明する。
【０１２２】
図１８は、本実施の形態の画像形成装置４００が備えるメモリコントローラ３０’の機能的な構成の一例を示すブロック図である。メモリコントローラ３０’は、図１８に示すように、リードライト分離部３３０と、シーケンス制御部３１０’と、メモリコントロール部３２０とを備える。
【０１２３】
リードライト分離部３３０は、メモリコントローラ３０’に入力されたパケットシーケンスに含まれるライトパケットとリードパケットの並びを、ライトパケットとリードパケットとが１つずつ交互に並ぶように変更してシーケンス制御部３１０’に出力する。リードライト分離部３３０は、リードライト判別部３３１と、バッファ３３２を備える。
【０１２４】
リードライト判別部３３１は、メモリコントローラ３０’に入力されたパケットシーケンスに含まれるライトパケットとリードパケットを判別する。リードライト判別部３３１は、ライトパケットとリードパケットのうち、予め定めた一方のパケットを、バッファ３３２に格納して一時的に保持する。そして、リードライト判別部３３１は、ライトパケットとリードパケットのうち、バッファ３３２に一時的に保持されない他方のパケット（ライトパケットをバッファ３３２が保持する場合はリードパケット、リードパケットをバッファ３３２が保持する場合はライトパケット）がリードライト分離部３３０から出力された直後に、バッファ３３２に一時的に保持した一方のパケットをリードライト分離部３３０から出力させる。これにより、リードライト分離部３３０から出力されるパケットシーケンスは、ライトパケットとリードパケットが１つずつ交互に並んだパケットシーケンスとなる。
【０１２５】
シーケンス制御部３１０’は、ライト用バッファ３１１’と、バッファ制御部３１３’を備える。本実施の形態のシーケンス制御部３１０’には、第１の実施の形態で説明したリード用バッファ３１２が設けられていない。
【０１２６】
ライト用バッファ３１１’は、リードライト分離部３３０からシーケンス制御部３１０’に入力されたパケットシーケンスに含まれるライトパケットを、予め定めた所定数蓄積し、蓄積した所定数のライトパケットを連続して出力する。ここで、所定数は、第１の実施の形態で説明した第１所定数と第２所定数とが等しい場合に、上記の条件１と条件２の双方を同時に満たす数（１を除く）である。
【０１２７】
バッファ制御部３１３’は、ライト用バッファ３１１’が所定数のライトパケットを連続して出力していないときに、リードライト分離部３３０からシーケンス制御部３１０’に入力されたパケットシーケンスに含まれるリードパケットを出力させる。
【０１２８】
メモリコントローラ３０’に入力されたパケットシーケンスは、シーケンス制御部３１０’の処理によってパケットの並び替えが行われる。そして、シーケンス制御部３１０’から出力されるパケットシーケンスは、ライトパケットが所定数連続し、リードパケットが所定数連続するパケットシーケンスとなる。なお、図１８では、便宜上、ライトパケットとリードパケットが２つずつ連続するようにパケットシーケンスに含まれるパケットの並び替えが行われた例を図示している。シーケンス制御部３１０’によりパケットの並び替えが行われたパケットシーケンスは、メモリコントロール部３２０に入力される。
【０１２９】
本実施の形態のメモリコントローラ３０’が備えるメモリコントロール部３２０は、第１の実施の形態のメモリコントローラ３０が備えるメモリコントロール部３２０と同じであるため、詳細な説明は省略する。
【０１３０】
図１９は、シーケンス制御部３１０’に入力されるパケットシーケンスと、シーケンス制御部３１０’から出力されるパケットシーケンスとを、時間ｔ１〜ｔ９のそれぞれについて観測した様子を示す説明図である。なお、図１９では、ライト用バッファ３１１’が蓄積するライトパケットの数（所定数）を２とし、シーケンス制御部３１０’が、ライトパケットとリードパケットが２つずつ連続するパケットシーケンスを出力する場合を例示している。
【０１３１】
時刻ｔ１では、リードパケットとライトパケットが１つずつ交互に並ぶパケットシーケンスの先頭のリードパケットが、シーケンス制御部３１０’に入力される。
【０１３２】
時刻ｔ２では、リードパケットとライトパケットが１つずつ交互に並ぶパケットシーケンスの２つ目のライトパケットが、シーケンス制御部３１０’に入力される。このとき、シーケンス制御部３１０’からは、時刻ｔ１で入力された先頭のリードパケットが出力される。
【０１３３】
時刻ｔ３では、リードパケットとライトパケットが１つずつ交互に並ぶパケットシーケンスの３つ目のリードパケットが、シーケンス制御部３１０’に入力される。このとき、時刻ｔ２で入力された２つ目のライトパケットは、ライト用バッファ３１１’に格納され、シーケンス制御部３１０’から出力されない。
【０１３４】
時刻ｔ４では、リードパケットとライトパケットが１つずつ交互に並ぶパケットシーケンスの４つ目のライトパケットが、シーケンス制御部３１０’に入力される。このとき、シーケンス制御部３１０’からは、時刻ｔ３で入力された３つ目のリードパケットが出力される。
【０１３５】
時刻ｔ５では、リードパケットとライトパケットが１つずつ交互に並ぶパケットシーケンスの５つ目のリードパケットが、シーケンス制御部３１０’に入力される。このとき、時刻ｔ４で入力された４つ目のライトパケットは、ライト用バッファ３１１’に格納され、シーケンス制御部３１０’から出力されない。
【０１３６】
時刻ｔ６では、時刻ｔ２で入力され、ライト用バッファ３１１’に蓄積された２つ目のライトパケットが、シーケンス制御部３１０’から出力される。このとき、時刻ｔ５で入力された５つ目のリードパケットは、ライトパケットの出力中であるため、出力待ちの状態となる。
【０１３７】
時刻ｔ７では、時刻ｔ４で入力され、ライト用バッファ３１１’に蓄積された４つ目のライトパケットが、シーケンス制御部３１０’から出力される。このとき、時刻ｔ５で入力された５つ目のリードパケットは、ライトパケットの出力中であるため、出力待ちの状態となる。
【０１３８】
時刻ｔ８では、コマンド受付完了待ちの時間が発生するため、時刻ｔ５で入力された５つ目のリードパケットは、出力待ちの状態となる。
【０１３９】
時刻ｔ９では、リードパケットとライトパケットが１つずつ交互に並ぶパケットシーケンスの６つ目のリードパケットが、シーケンス制御部３１０’に入力される。このとき、時刻ｔ５で入力され、出力待ちの状態となっていた５つ目のリードパケットが、シーケンス制御部３１０’から出力される。
【０１４０】
以降、同様の動作が繰り返され、リードパケットとライトパケットが２つずつ連続するパケットシーケンスが、シーケンス制御部３１０’から出力される。
【０１４１】
図２０は、本実施の形態のメモリコントローラ３０’が備えるシーケンス制御部３１０’による処理の流れを示すフローチャートである。図２０のフローチャートは、画像の１ページ分のデータの書き込みまたは読み出しが終了するまでのシーケンス制御部３１０’による処理の流れを示している。
【０１４２】
ステップＳ２０１：シーケンス制御部３１０’は、パケットシーケンスの先頭から順に、パケットシーケンスに含まれるパケットを入力し、ステップＳ２０２に進む。
【０１４３】
ステップＳ２０２：シーケンス制御部３１０’は、ステップＳ２０１で入力したパケットがライトパケットであるか否かを判定する。そして、ステップＳ２０１で入力したパケットがライトパケットであれば（ステップＳ２０２：Ｙｅｓ）ステップＳ２０３に進み、ステップＳ２０１で入力したパケットがリードパケットであれば（ステップＳ２０２：Ｎｏ）ステップＳ２０９に進む。
【０１４４】
ステップＳ２０３：シーケンス制御部３１０’は、ステップＳ２０１で入力したライトパケットをライト用バッファ３１１’に格納し、カウンタをカウントアップして、ステップＳ２０４に進む。カウンタは、所定値をカウントするためのカウンタである。
【０１４５】
ステップＳ２０４：シーケンス制御部３１０’は、カウンタのカウント値が所定値に達したか否かを判定する。そして、カウンタのカウント値が所定値に達していれば（ステップＳ２０４：Ｙｅｓ）ステップＳ２０５に進み、カウンタのカウント値が所定値未満であれば（ステップＳ２０４：Ｎｏ）ステップＳ２０７に進む。
【０１４６】
ステップＳ２０５：シーケンス制御部３１０’は、ライト用バッファ３１１’に蓄積された所定数のライトパケットをライト用バッファ３１１’から連続して出力させるとともに、カウンタをリセットし、ステップＳ２０６に進む。
【０１４７】
ステップＳ２０６：シーケンス制御部３１０’は、画像の１ページ分のデータの書き込みまたは読み出しが終了したか否かを判定する。そして、画像の１ページ分のデータの書き込みまたは読み出しが終了していれば（ステップＳ２０６：Ｙｅｓ）、図２０のフローチャートで示す一連の処理を終了する。一方、画像の１ページ分のデータの書き込みまたは読み出しが終了していなければ（ステップＳ２０６：Ｎｏ）、シーケンス制御部３１０’は、ステップＳ２０１に戻って次のパケットを入力し、ステップＳ２０１以降の処理を繰り返し行う。
【０１４８】
ステップＳ２０７：シーケンス制御部３１０’は、画像の１ページ分のデータに対応するライトパケットが入力されたか否かを判定する。そして、画像の１ページ分のデータに対応するライトパケットが入力されていれば（ステップＳ２０７：Ｙｅｓ）ステップＳ２０８に進み、画像の１ページ分のデータに対応するライトパケットが入力されていなければ（ステップＳ２０７：Ｎｏ）、ステップＳ２０１に戻って次のパケットを入力し、ステップＳ２０１以降の処理を繰り返し行う。
【０１４９】
ステップＳ２０８：シーケンス制御部３１０’は、ライト用バッファ３１１’に蓄積されたライトパケット（所定数に満たないライトパケット）をライト用バッファ３１１’から連続して出力させるとともに、カウンタをリセットし、図２０のフローチャートで示す一連の処理を終了する。
【０１５０】
ステップＳ２０９：シーケンス制御部３１０’は、ライト用バッファ３１１’からのライトパケットの出力中であるかどうかを判定する。そして、ライト用バッファ３１１’からのライトパケットの出力中であれば（ステップＳ２０９：Ｙｅｓ）ステップＳ２１０に進み、ライト用バッファ３１１’からのライトパケットの出力中でなければ（ステップＳ２０９：Ｎｏ）ステップＳ２１１に進む。
【０１５１】
ステップＳ２１０：シーケンス制御部３１０’は、ライト用バッファ３１１’からのライトパケットの出力が終わるまで待機し、ステップＳ２１１に進む。
【０１５２】
ステップＳ２１１：シーケンス制御部３１０’は、ステップＳ２０１で入力したリードパケットを出力し、ステップＳ２１２に進む。
【０１５３】
ステップＳ２１２：シーケンス制御部３１０’は、画像の１ページ分のデータの書き込みまたは読み出しが終了したか否かを判定する。そして、画像の１ページ分のデータの書き込みまたは読み出しが終了していれば（ステップＳ２１２：Ｙｅｓ）、図２０のフローチャートで示す一連の処理を終了する。一方、画像の１ページ分のデータの書き込みまたは読み出しが終了していなければ（ステップＳ２１２：Ｎｏ）、シーケンス制御部３１０’は、ステップＳ２０１に戻って次のパケットを入力し、ステップＳ２０１以降の処理を繰り返し行う。
【０１５４】
以上のように、本実施の形態に係る画像形成システム１００においては、画像形成装置４００のメモリコントローラ３０’に、ライトパケットとリードパケットとが１つずつ交互に並ぶようにパケットシーケンスのパケットの並び順を変更するリードライト分離部３３０と、リードライト分離部３３０からパケットシーケンスを入力し、ライトパケットとリードパケットが所定数ずつ連続するようにパケットシーケンスのパケットの並びを変更するシーケンス制御部３１０’とを設けている。そして、シーケンス制御部３１０’により変更された並び順に従って、メモリコントロール部３２０からフレームメモリ３１に対して、ライトパケットに応じたライトコマンドと、リードパケットに応じたリードコマンドとが出力されるようにしている。したがって、第１の実施の形態と同様、データの書き込みから読み出しへの切り替え時のコマンド受付完了待ちの時間の発生回数を減らし、データ転送効率の向上を図ることができる。これにより、上述したライン同期制約を遵守して異常画像が印刷されることを防止できるとともに、ＤＦＥ装置２００から画像形成装置４００に対するページ単位でのデータ転送も効率よく行って、複数ページの連続印刷を継続的に行うことができる。
【０１５５】
なお、本実施の形態では、メモリコントローラ３０’のシーケンス制御部３１０’の構成として、リードライト分離部３３０からのパケットシーケンスに含まれるライトパケットを所定数蓄積し、所定数のライトパケットを連続して出力するライト用バッファ３１１’と、ライト用バッファ３１１’が所定数のライトパケットを連続して出力していないときに、リードライト分離部３３０からのパケットシーケンスに含まれるリードパケットを出力させるバッファ制御部３１３’を備える構成について説明した。しかし、シーケンス制御部３１０’は、リードライト分離部３０からのパケットシーケンスに含まれるリードパケットを所定数蓄積し、所定数のリードパケットを連続して出力するリード用バッファと、リード用バッファが所定数のリードパケットを連続して出力していないときに、リードライト分離部３３０からのパケットシーケンスに含まれるライトパケットを出力させるバッファ制御部を備える構成であってもよい。この場合も、シーケンス制御部３１０’は、ライトパケットとリードパケットが所定数ずつ連続するパケットシーケンスを出力するので、上述した効果を同様に得ることができる。
【０１５６】
また、本実施の形態では、メモリコントローラ３０’のリードライト分離部３３０が、ライトパケットとリードパケットとが１つずつ交互に並ぶようにパケットシーケンスのパケットの並び順を変更するようにしているが、リードライト分離部３３０は、１つのライトパケットと第１の実施の形態で説明した第２所定数のリードパケットとが交互に並ぶように、パケットシーケンスのパケットの並びを変更するようにしてもよい。この場合、シーケンス制御部３１０’のライト用バッファ３１１’が、第１の実施の形態で説明した第１所定数のライトパケットを蓄積し、第１所定数のライトパケットを連続して出力する構成とすることで、第１の実施の形態と同様に、ライトパケットが連続する数（第１所定数）とリードパケットが連続する数（第２所定数）とを異なる数にすることができ、汎用性が高くなる。
【０１５７】
また、リードライト分離部３３０は、上記の例とは逆に、１つのリードパケットと第１所定数のライトパケットとが交互に並ぶように、パケットシーケンスのパケットの並びを変更するようにしてもよい。この場合、シーケンス制御部３１０’のライト用バッファ３１１’の代わりにリード用バッファを設け、リード用バッファが第２所定数のリードパケットを蓄積し、第２所定数のリードパケットを連続して出力する構成とすることで、第１の実施の形態と同様に、ライトパケットが連続する数（第１所定数）とリードパケットが連続する数（第２所定数）とを異なる数にすることができ、汎用性が高くなる。
【０１５８】
以上、本発明の具体的な実施の形態を詳細に説明したが、本発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。例えば、上記の各実施例では、ＰＣＩｅ規格のプロトコルに則ってラスターイメージデータの転送を行う場合について説明したが、データ転送の方式はこれに限定されるものではない。
【０１５９】
また、上述した実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１６０】
３０，３０’  メモリコントローラ
３１  フレームメモリ
３１０，３１０’  シーケンス制御部
３１１，３１１’  ライト用バッファ
３１２  リード用バッファ
３１３，３１３’  バッファ制御部
３２０  メモリコントロール部
３２１  コマンド生成部
３３０  リードライト分離部
３３１  リードライト判別部
３３２  バッファ
４００  画像形成装置
【先行技術文献】
【特許文献】
【０１６１】
【特許文献１】特開２００５−８４９０７号公報
【図１】
0005754273.tif 000002
【図２】
0005754273.tif 000003
【図３】
0005754273.tif 000004
【図４】
0005754273.tif 000005
【図５】
0005754273.tif 000006
【図６】
0005754273.tif 000007
【図７】
0005754273.tif 000008
【図８】
0005754273.tif 000009
【図９】
0005754273.tif 000010
【図１０】
0005754273.tif 000011
【図１１】
0005754273.tif 000012
【図１２】
0005754273.tif 000013
【図１３】
0005754273.tif 000014
【図１４】
0005754273.tif 000015
【図１５】
0005754273.tif 000016
【図１６】
0005754273.tif 000017
【図１７】
0005754273.tif 000018
【図１８】
0005754273.tif 000019
【図１９】
0005754273.tif 000020
【図２０】
0005754273.tif 000021