以下、本発明の実施形態を図1〜図10に基づき、データ伝送装置1を含む複合機100(画像形成装置に相当)を例に挙げ説明する。但し、本実施形態に記載されている構成、配置等の各要素は、発明の範囲を限定せず単なる説明例にすぎない。
(複合機100の概略)
まず、図1に基づき、本発明の実施形態に係る複合機100の概略を説明する。図1は実施形態に係る複合機100の一例を示す模型的正面断面図である。
まず、図1に示すように、複合機100の正面前方には、複合機100の各種設定や入力を行うための操作パネル101が設けられる(破線で図示)。そして、上部に画像読取部2と原稿搬送装置102が設けられる。又、複合機100は、本体内部に給紙部3A、搬送路3B、画像形成部4A、定着部4B等を備える。
まず、図1に破線で示すように、操作パネル101は、複合機100の正面上方に設けられる。そして、操作パネル101は、複合機100の状態や各種メッセージの表示や、機能の選択、設定や文字入力を受け付ける。
原稿搬送装置102は、読み取る原稿を載置する原稿トレイ102Aを有する。そして、原稿搬送装置102は、原稿トレイ102Aから原稿を1枚ずつ、自動的に連続して読取位置(送り読取用コンタクトガラス21)に搬送する。又、原稿搬送装置102は、図1の紙面奥側を支点として画像読取部2に対して上下方向に開閉自在に取り付けられ、画像読取部2のコンタクトガラス(送り読取用コンタクトガラス21及び載置読取用コンタクトガラス22)を上方から押さえるカバーとして機能する。
画像読取部2は、図1に示すように、上面に送り読取用コンタクトガラス21と書籍等の原稿を1枚ずつ読み取る際、原稿が載置される載置読取用コンタクトガラス22を含む。画像読取部2は、内部にランプ、ミラー、レンズ、イメージセンサ等(不図示)を有する。イメージセンサは、送り読取用コンタクトガラス21を通過する原稿、あるいは、載置読取用コンタクトガラス22に載置された原稿の反射光を元に、原稿を読み取る。そして、イメージセンサは原稿からの反射光を画像濃度に応じたアナログの電気信号に変換し、その後、量子化を行い、その結果、原稿の画像データが得られる。複合機100は、読み取りにより得られた画像データに基づき印刷を行うことができる(コピー機能)。尚、本実施形態の画像読取部2は、カラーでも、白黒でも読み取り可能である。
給紙部3Aは、複数の用紙(例えば、コピー用紙、普通紙、再生紙、厚紙、OHPシート等の各種シート)を収容し、1枚ずつ搬送路3Bに送り込む。給紙部3Aには、収納用紙が載置されるカセット31を複数含ませることができる(図1ではカセット31を一個のみ図示し他は省略)。又、カセット31から搬送路3Bに送り出すため回転駆動する給紙ローラ32が設けられる。例えば、印刷時に、いずれかの給紙ローラ32が回転駆動し、用紙が1枚ずつ搬送路3Bに送り出される。
搬送路3Bは、給紙部3Aから送り出された用紙を搬送する通路である。尚、用紙搬送経路に沿って画像形成部4A、定着部4B等が配される。そして、搬送路3Bには、給紙された用紙を画像形成部4Aの手前で待機させ、画像形成部4Aにおけるトナー像形成とタイミングを合わせて用紙を送り出すレジストローラ対33等が設けられる。又、搬送路3Bには、回転し、排出トレイ34に印刷済み用紙を排出する、あるいは、片面印刷済み用紙を両面搬送路3Cに送り込む排出ローラ対35が設けられる。
画像形成部4Aは、画像データに基づきトナー像を形成し、搬送される用紙にトナー像を転写する。そのため、画像形成部4Aは、図1に矢印で示す方向に回転駆動する感光体ドラム41、及び、感光体ドラム41の周囲に配設された帯電装置42、露光装置43、現像装置44、転写ローラ45、クリーニング装置46等を備える。
トナー像形成及び転写プロセスを説明すると、画像形成部4Aの略中心に設けられた感光体ドラム41は、図2において、感光体ドラム41の右斜め上方に設けられる帯電装置42により、所定電位に帯電される。図4において、露光装置43は、帯電装置42の右側方に設けられ、画像データに基づき、レーザ光を出力し、感光体ドラム41表面を走査露光して画像データに応じた静電潜像を形成する。尚、画像形成に用い得る画像データとしては、画像読取部2で得られた画像データや、他にネットワーク等により接続される外部のコンピュータ200や相手方FAX装置300(図2参照)から送信された画像データ等がある。
そして、図1において、感光体ドラム41の右斜め下方に設けられる現像装置44は、感光体ドラム41に形成された静電潜像にトナーを供給して現像する。感光体ドラム41の左方に設けられる転写ローラ45は感光体ドラム41に圧接し、ニップが形成される。そして、トナー像の形成にあわせタイミングを図られつつ、用紙はニップに進入する。用紙進入時、転写ローラ45には所定の電圧が印加され、用紙に感光体ドラム41上のトナー像が転写される。クリーニング装置46は、転写後に感光体ドラム41に残留するトナーを除去する。
定着部4Bは、用紙に転写されたトナー像を定着させる。本実施形態における定着部4Bは主として発熱体を内蔵する加熱ローラ47と加圧ローラ48で構成される。加熱ローラ47と加圧ローラ48は圧接しニップを形成する。そして、用紙が、このニップを通過することで、用紙表面のトナーが溶融・加熱され、トナー像が用紙に定着する。トナー定着後の用紙は、排出ローラ対35によって排出トレイ34に排出される。このようにして、コピー機能、プリンタ機能の使用時、画像形成(印刷)が行われる。
定着部4Bから排出ローラ対35までの搬送路3Bにつながる両面搬送路3Cは、両面印刷の際、片面印刷済み用紙をレジストローラ対33の手前に搬送する搬送路である。両面印刷を行う場合、排出ローラ対35は、片面印刷済みの用紙をひとまず排出トレイ34方向に向けて排出する。そして、排出ローラ対35を用紙が通過しきる前に、排出ローラ対35は、逆回転し、片面印刷済み用紙のスイッチバックを行う。これにより、片面印刷済み用紙の後端は両面搬送路3Cに送り込まれる。そして、両面搬送路3Cは、複数の搬送ローラ対36〜38を有し、搬送ローラ対36〜38は、片面印刷済みの用紙をレジストローラ対33の手前まで搬送し、搬送路3Bに合流させる。そして、レジストローラ対33から片面印刷済み用紙が送り出され、未印刷面にトナー像が転写される。
又、排出ローラ対35は、回転し、定着部4Bを通過した両面印刷をしない場合の印刷済用紙や、両面印刷済用紙を排出トレイ34に排出する。これにより、1枚の用紙への印刷が完了する。
(複合機100のハードウェア構成)
次に、図2に基づき、本発明の実施形態に係る複合機100のハードウェア構成を説明する。図2は、本発明の実施形態に係る複合機100のハードウェア構成の一例を示すブロック図である。
図2に示すように、本実施形態に係る複合機100は、内部の制御基板上に制御部5を有する。制御部5は、装置全体の動作を統括し、複合機100の各部の制御を司る。そして、制御部5には、例えば、CPU50が含まれる。
CPU50は、演算回路、レジスタ、カウンタ等、演算、制御等の処理のための部分を含む。CPU50は、後述のRAM6(ランダム アクセス メモリ)やROM61内のデータ、プログラム等を読み込むことができる。そして、ROM61、RAM6は、制御部5とバス等により通信可能に接続される。ROM61は、電源がオフしても記憶内容が保持される不揮発性メモリである。ROM61は、CPU50が制御のため実行するプログラムや、起動時プログラムや、装置固有の各種パラメータなどの各種制御用の固定データを記憶する。
RAM6は、CPU50が制御の際に実行するプログラムや、画像データや、各種データを一時的に記憶する。又、RAM6は、複合機100に入力された画像データをHDD62に記憶させる際、画像データを一時的に記憶する。例えば、RAM6に記憶される画像データは、ラスタデータ(例えば、ビットマップデータ)である。又、RAM6は、HDD62に記憶される画像データ等の各種データやプログラム等の読出先となる。
又、制御部5には、用紙搬送や印刷を実際に制御するエンジン制御部40が通信可能に接続される。制御部5は、エンジン制御部40に指示を与える。この指示を受けて、エンジン制御部40は、用紙搬送や画像形成で用いる各種回転体(各搬送ローラ対や感光体ドラム41等)を回転させる等、給紙部3A、搬送路3B、画像形成部4A、定着部4B、両面搬送路3Cを制御する。
又、複合機100には、外部との通信インターフェイスとしての通信部51(データ入力部に相当)を含む。通信部51は、例えば、外部のコンピュータ200と、ネットワークやケーブルで接続して通信を行うためのデータ通信部52を含む。データ通信部52は例えば、ネットワーク接続用や直接的に複合機100とコンピュータ200を接続するためのコネクタや、通信制御用のコントローラ等のチップを含む。このデータ通信部52により、複合機100は、コンピュータ200等から画像データや印刷の設定データを含む印刷用データを受け、印刷を行うことができる(プリンタ機能)。又、通信部51には、FAX通信部53を含むことができる。FAX通信部53は、ファクシミリとしての機能を果たすための部分であり、モデムや、画像データのファクシミリに対応した形式への変換や、受信データの伸張のための回路、チップ等を含む。このFAX通信部53によって、画像データの送信や受信が行われる(FAX機能)。
又、制御部5は、バス等により操作パネル101とも通信可能に接続される。そして、操作パネル101になされた設定内容を示すデータは、制御部5に送られ、制御部5は、複合機100を使用者の設定どおりに動作するように制御する。
又、複合機100には、画像データに対して圧縮や、圧縮された画像データの伸長処理や、濃度変換や拡大縮小等の画像処理を行う画像処理部7が設けられる。又、複合機100に設けられる画像処理部7は、例えば、画像処理専用の回路としてのASICや画像処理用メモリ(ワークメモリ)等を含む。そして、画像処理部7は、例えば、濃度変更や拡大縮小等の各種画像処理を画像データに施す。尚、画像処理部7が行える画像処理は多岐にわたるので、公知の複合機100に関する画像処理を行えるものとして、実行可能な画像処理の詳細の説明は省略する。
又、複合機100には、大容量記憶装置(ストレージ)として、ハードディスクドライブ(Hard Disk Drive;HDD62)が搭載される。HDD62は、画像データの記憶やプログラム、各種管理データの記憶に利用される。尚、HDD62の変わりに、フラッシュROM等で構成される半導体記憶装置によるストレージを用いてもよい。このように、HDD62へのデータの書き込み(記憶)や、HDD62内のデータ読出では、データは、一旦、RAM6を経由する。
(データ伝送装置1)
次に、図3に基づき、本発明の実施形態に係るデータ伝送装置1の一例を説明する。図3は、本発明の実施形態に係るデータ伝送装置1の構成の一例を示すブロック図である。
本実施形態の複合機100では、例えば、画像読取部2や通信部51が、複合機100への画像データの入力部として機能する。そして、入力された画像データは、画像読取部2や通信部51から、RAM6へと送られる。そして、例えば、RAM6から画像処理部7に向けて画像データが送信され、画像処理後の画像データは、画像処理部7からRAM6に返送される。尚、画像処理部7では複数回、同じ画像データに対し画像処理が施される場合もある。例えば、画像処理部7は、圧縮された画像データを伸張処理し、伸張処理後の画像データをいったんRAM6に格納し、その後、再度、伸張された画像データが画像処理部7に与えられ、画像処理部7が画像処理を施す場合がある、この場合、RAM6と画像処理部7間の画像データの送信と返信は、複数回行われる。又、例えば、画像処理後の画像データは、記憶するためにHDD62に送信され、あるいは、印刷のため、画像形成部4Aの露光装置43に送信される。
このように、本実施形態の複合機100では、例えば、画像データのやりとりが、画像読取部2、通信部51、RAM6、画像処理部7、HDD62、露光装置43間で行われる。言い換えると、画像読取部2、通信部51、RAM6、画像処理部7、HDD62、露光装置43は、データの送信部であるし、データの受信部でもある。
ここで、伝送速度を確保するため、データの伝送は、バースト伝送で行われることもある。このバースト伝送では、送信部は、例えば、アドレス順でバースト伝送を行うが、受信側のハードウェアの仕様や、処理の便宜上、バースト伝送内のデータの順番を入れ替えたい場合がある。
そこで、本実施形態の複合機100では、バッファ部8が設けられる。例えば、送信部から送信された画像データは、いったんバッファ部8に記憶され、その後、受信部に引き渡される。そこで、図3に、バッファ部8を仲介させる送信部、又は、受信部として、画像読取部2、通信部51、RAM6、画像処理部7、HDD62、露光装置43を示す。即ち、送信部は、画像データを出力し、受信部の一例は、画像データに対し画像処理を行う画像処理部7及び/又は、読出された画像データを記憶するRAM6である。
ここで、本実施形態での複合機100では、画像データ等のデータは、RAM6を必ず経由する。そこで、図3に示すように、例えば、伝送路としてのバス84と画像読取部2、通信部51、画像処理部7、HDD62、露光装置43を接続し、バス84とRAM6の間にバッファ部8を設けてもよい。即ち、複数種の送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)と複数種の受信部(RAM6、HDD62、画像処理部7、露光装置43等)の間にバスが設けられ、バッファ部8は、バスに接続される。
尚、本説明での「ワード」とは、伝送路の仕様によって定まり、例えば、1クロックで送信されるビット数を1とした単位である。例えば、64ビットの帯域を有する伝送路(バス)では、1ワードは64ビットである。そして、「バースト伝送」とは、アドレスの指定などの手順を一部省略して、複数のワードを連続して送信することをいう。又、「バースト長」とは、1回のバースト伝送で送られるワード数である。
そこで、図3に基づき、バッファ部8の構成の一例を説明する。まず、図3に示すように、バッファ部8は、送信部から送信された画像データ等のデータのバッファ部8での受信、書込や、バッファ部8から受信部に画像データ等のデータの引き渡しを制御するコントローラ80を有する。図3の例ではバッファ部8にコントローラ80を設ける例を示しているが、バッファ部8の制御を、例えば、RAM6のコントローラが行ってもよく、バッファ部8以外に設けられたコントローラ80が、バッファ部8の制御を行ってもよい。
尚、前提として、送信部は、バッファ部8に対し、データの受け取りと、指定する受信部への転送を指示する。あるいは、受信部は、バッファ部8に対し、指定する送信部からのデータの受け取りと、自己への転送を指示する。これにより、バッファ部8のコントローラ80は、画像データ等のデータの送信元と受信先を認識する。
そして、図3に示すように、バッファ部8には、送信部から送信された画像データ等のデータを記憶するバッファメモリ81が設けられる。バッファメモリ81は、少なくとも1回のバースト伝送で伝送されるデータの大きさ分の容量を有する。
例えば、1回のバースト伝送で、64ビット(8バイト)のワードが4回送信される場合(バースト長4の場合)、少なくとも、バッファメモリ81の容量は、8×4=32バイトとされる。又、例えば、8バイトのワードが32回送信される場合(バースト長32の場合)、バッファメモリ81の容量は、少なくとも、8×32=256バイトとされる。尚、送信側と受信側のハードウェアの仕様によって、1ワードあたりの大きさや、1回のバースト伝送で送信されるデータのサイズには差異があり得るので、複合機100における送信部と受信部の組み合わせの内、1回のバースト伝送でのデータのサイズが最も大きいバースト伝送を基準として、バッファメモリ81の容量を定めればよい。
そして、バッファメモリ81は、複数の記憶ブロック9を含む。図3の例では、第0記憶ブロック90、第1記憶ブロック91、第2記憶ブロック92、第3記憶ブロック93の4つの記憶ブロック9を含む例を図示している。記憶ブロック9の数は、1回のバースト伝送に含まれるワードの数だけ用意される。例えば、1回のバースト伝送のバースト長が32の場合(ワードの数が32の場合)、バッファメモリ81内には、32の記憶ブロック9が用意される。言い換えると、記憶ブロック9は、1回のバースト伝送のバースト長(1回のバースト伝送におけるワード数)分だけ用意される。又、記憶ブロック9の1つあたりの容量は、少なくとも、バースト伝送における1バースト分(1ワード分)の容量を有する。例えば、ワードが8バイトの場合、記憶ブロック9の1つあたりの容量は、8バイトとされる。
尚、送信側と受信側のハードウェアの仕様によって、1ワードあたりの大きさや、1回のバースト伝送で送信されるデータのサイズには差異があり得るので、複合機100における送信部と受信部の組み合わせの内、1ワードあたりのビット数や、1回のバースト伝送で最も長いバースト長を基準として、1つの記憶ブロック9あたりの容量や、記憶ブロック9の数を定めればよい。
又、バッファ部8は、インデックステーブルTを記憶するインデックスメモリ82を含む。インデックステーブルTは、バッファ部8(各記憶ブロック9)への書込順(格納順)を示すテーブルでもあり、各記憶ブロック9からの読出順を示すテーブルでもある(詳細は後述)。このインデックステーブルTの内容を更新することで、滞ることなく、任意にバースト伝送でのワードの伝送順序を変更しつつデータの伝送を行うことができる。
又、バッファ部8は、バッファメモリ81の各記憶ブロック9がワードを記憶しているか、すでに読み出されたかの状態を示すフラグを記憶するフラグメモリ83を有する。例えば、フラグメモリ83は、「1(High)」か「0(Low)」で、記憶ブロック9がまだ読み出されていないデータを記憶しているか、記憶ブロック9からすでに読み出されているかを1ビットで示す。言い換えると、各記憶ブロック9に対応したフラグメモリ83は、データを書き込んでよいか否かを現すビットを記憶する。例えば、記憶ブロック9が4つの場合、フラグメモリ83は、4ビット分の容量ですむ。
(インデックステーブルTの概要)
次に、図4に基づき、本発明の実施形態に係るデータ伝送装置1でのインデックステーブルTの一例を説明する。図4は、実施形態に係るデータ伝送装置1でのインデックステーブルTの一例を示す説明図である。
まず、以下の説明では、バースト伝送におけるバースト長が4である例(4つのワードが1回のバースト伝送で連続して送信される例)を説明する。
インデックステーブルTは、送信部からバッファ部8が受信したバースト伝送に含まれる各ワードの書込先(格納先)の記憶ブロック9を値として記憶する。又、バッファ部8が受信した各ワードの読出順(受信部への出力順)を示すテーブルでもある。
又、インデックステーブルTは、少なくともバースト長の2倍の行を有する。本説明ではバースト長は4であるので、インデックステーブルTの行数は8である。尚、本説明では、先頭位置の行を第0行と定め、最後尾の行を第7行(計8行)とする。そして、インデックステーブルTの各行の欄内には、書込先となる記憶ブロック9及び読み出す記憶ブロック9が示されている。
そして、本実施形態では、記憶ブロック9への書込と、記憶ブロック9からの読出が別個に並行して行われる。まず、書込に関しては、コントローラ80は、バースト伝送されてきたワードを第0行目から順番にインデックステーブルTを参照して、バッファメモリ81の各記憶ブロック9に記憶させていく。例えば、第0行目を参照した場合、コントローラ80は、バースト伝送されてきたワードを第0記憶ブロック90に記憶させる。その結果、送信部は、ワードをインデックステーブルTに指示された記憶ブロック9に書き込むことになる。
そして、第0行目を参照し、インデックステーブルTに指示された記憶ブロック9への記憶が完了すると、コントローラ80は、第1行目を参照する。そして、行の順番にインデックステーブルTを参照して、バースト伝送された各ワードの記憶ブロック9への記憶がなされる。尚、最後尾の第7行目までいくと、第0行目に戻る。言い換えると、コントローラ80は、先頭行から順にインデックステーブルTを参照し、最終行を参照し、ワードの記憶が完了すると、再びインデックステーブルTの先頭行を参照する。
又、読出に関しては、コントローラ80は、バッファメモリ81内の各記憶ブロック9に記憶されたワードを、例えば第4行目から順番にインデックステーブルTを参照して、読み出して、受信部に送信させる。尚、本説明におけるインデックステーブルTの参照では、読出で参照される行(読出のポインタ)は、書込で参照される行(書込のポインタ)よりも先行する。例えば、図4に示すインデックステーブルTの第4行目を参照した場合、コントローラ80は、第0記憶ブロック90に記憶されたワードを受信部に向けてバッファメモリ81から送信させる。その結果、受信部は、ワードをインデックステーブルTに指示された記憶ブロック9の順に(インデックステーブルTの行順に)、ワードを読み出すことになる。
そして、第4行目を参照し、インデックステーブルTに指示された記憶ブロック9への読出が完了すると、コントローラ80は、第5行目を参照する。そして、行の順番にインデックステーブルTを参照して、バースト伝送された各ワードの読出がなされる。尚、第7行目までいくと、第0行目に戻る。言い換えると、コントローラ80は、先頭行から順にインデックステーブルTを参照し、最終行を参照し、読出が完了すると、再びインデックステーブルTの先頭行を参照する。
(データ伝送装置1での伝送順序の変更)
次に、図5を用いて、本発明の実施形態に係るデータ伝送装置1での伝送順序の変更の一例を説明する。図5は、本発明の実施形態に係るデータ伝送装置1での伝送順序の変更の概要を記す説明図であり、(a)は、バースト伝送の一例を示し、(b)は、画像データの一例を示す。
例えば、本実施形態の複合機100では、データの伝送が行われるが、バースト伝送により送信されたワードの伝送順序を途中で変えたい場合がある。例えば、送信部は、一定の順序で画像データ等のデータを送信するが、送信部が送信したワードの順序のままでは受信部が処理を行えない場合がある。言い換えると、送信部や受信部におけるデータ伝送の仕様により、バースト伝送により送信されたワードの伝送順序を変えなくてはならない場合がある。
図5(a)は、バースト伝送でのワードの伝送順序を逆にする例を示している。例えば、送信部が、4つのワードを連続して送信するバースト伝送を行うとする。便宜上、送信部がバースト伝送する上で、1番目のワードをワードW0とし、2番目のワードをワードW1とし、3番目のワードをワードW2とし、4番目のワードをワードW3として、以下の説明を行う。
ワードW0→ワードW1→ワードW2→ワードW3の順でバースト伝送されたデータをそのまま受け取っても、受信部は処理できない場合、受信部にデータを与える際、各ワードの順序を変えた上で渡さなくてはならない。例えば、図5(a)に示すように、場合により、各ワードの伝送順序を逆転させなければならない場合がある。
又、両面印刷では、用紙のスイッチバックが行われ、用紙の表裏だけでなく先頭と末尾の位置の入れ替えも行われる。一方で、画像形成部4Aは、画像データの上端部分から画像の形成を行う。そのため、図5(b)に示すように、両面印刷では、表面側(第1面側)に対し、両面印刷における裏面側(第2面側)の画像データを反転させる必要がある。尚、一般に、RAM6等は、画像データの左隅上端の画素から記憶し、右下隅の画素を最後として、各画素を予め定められた順番に、アドレス順に記憶する。
両面印刷のような画像データの回転を行う場合でも、各ワードの伝送順序を逆転させた方が、好ましい場合がある。言い換えると、伝送経路で各ワードの伝送順序が逆転されていれば、受信部としての画像処理部7やRAM6等は、並び替えを行わなくてすむ場合がある。
このようなワードの伝送順序の並び替えを行う場合、一般に、画像処理部7のような受信部内にバッファを設け、バッファがいったん送信部からのデータを受信し、バッファが受信部の所望するワードの順序に並び替える。従来、バースト伝送に含まれる各ワードは、バッファ内の決められた位置(アドレス)に記憶される。そのため、ワードのデータ伝送順序を逆転させる場合、バッファが1バースト伝送分の容量しか持たないと、1バースト分のデータを受信した後、格納したデータ(ワード)を全て送信終えるまで、次のバースト伝送のデータを受け付けできない。各ワードの伝送順序を逆転(反転)させる場合、バースト伝送での最後のワードが到達して初めて読み出せる。従って、例えば、ワードのデータ伝送順序を逆転させる場合、逆転させない場合に比べ、データの伝送速度は、1/2程度となる。
そこで、データの伝送速度を落とさないようにするため、従来、バッファの容量は、少なくとも、2回のバースト伝送されるデータのサイズ分とされる(1回のバースト伝送のデータのサイズの2倍の容量)。このように構成することで、1回のバースト伝送分の容量を用いてデータを受信しつつ、残りの1回のバースト伝送分の容量でデータの読出を行う。これにより、データの伝送速度を落とさずに、所望の順番でデータを読み出せる。
しかし、近年、1回のバースト伝送に含まれるワード数の増加や、1ワードのサイズの大型化によって、バッファの容量も増加する傾向にある。又、受信部が受信したうえで、伝送速度を落とさずに、受信部内のバッファを利用して伝送順序を変えようとすると、受信部が備えるべきバッファの容量が増大する。これは、複合機100の製造コスト増大につながる。
そこで、本発明のバッファ部8は、1回のバースト伝送分の容量で有りながら、データの伝送速度を落とさずに伝送順序を変更する。しかも、各受信部にバッファを内蔵させずに、例えば、バス84にバッファ部8を接続すればよく、理想的にバッファ部8は、1カ所設ければすむ。
(データ伝送の例)
次に、図6乃至及び図10を用いて、本発明の実施形態に係るデータ伝送装置1でのデータ伝送の流れの一例を説明する。図6乃至図10は、一連であり、本発明の実施形態に係るデータ伝送装置1でのデータ伝送の流れの一例を示す説明図である。
尚、本説明では、送信部から送信されたバースト伝送でのワードを、逆転(反転)させた上で受信部に読み出させる例を説明する。即ち、バッファ部8は、バースト伝送で送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)から受信したワードの順序を、読出順指示に基づき、逆転させて受信部(RAM6、HDD62、画像処理部7、露光装置43等)に出力する。
まず、図6〜図10において、左端に位置するのは、インデックステーブルTである。そして、各インデックステーブルTの右側には、バッファメモリ81を示している。各記憶ブロック9の「invalid(無効)」、「valid(有効)」は、フラグメモリ83が記憶する。「invalid(無効)」は、記憶ブロック9が、ワードの読出等によって格納しているデータがなく、データを書き込める状態であることを示す。又、「valid(有効)」は、記憶ブロック9は未読出の格納しているデータを有し、データを上書きしてはならないことを示す。
即ち、バッファ部8は、記憶ブロック9にワードが書き込まれているか否かの状態を示すフラグとしての状態ビットを各記憶ブロック9について記憶し、コントローラ80は、インデックステーブルの行を参照して書込を行う場合、書込先の記憶ブロック9の状態ビットが未書込を示す状態(invalid(無効))となるまで、記憶ブロック9へのワードの書込を待機させるとともに、送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)に次のワードの送信を待機させ、ワードが受信部(RAM6、HDD62、画像処理部7、露光装置43等)に出力された場合、読み出されたワードが記憶されていた記憶ブロック9の状態ビットを未書込の状態(invalid(無効))に更新する。
例えば、データ伝送が行われる場合、最初に、受信部が受信可能な状態にあるかを確認するため、送信部と受信部間で通信が行われる。このとき、例えば、受信部は、自己が所望するワードの伝送順序を送信部やバッファ部8に伝える。これにより、バッファ部8のコントローラ80は、受信部が所望するデータの伝送順序(読出順指示)を把握する。
あるいは、データ伝送が行われる場合、送信部は、バースト伝送を開始する前に、データを受信する受信部をバッファ部8に通知してもよい。送信部と受信部の組み合わせは、有限であるから、コントローラ80は、送信部と受信部の組み合わせにあわせ、伝送順序を記憶しておいてもよい。このようにしても、コントローラ80は、受信部が所望するデータの伝送順序(読出順指示)を把握できる。
そして、例えば、コントローラ80は、バースト伝送によるデータの伝送が開始される前に、インデックステーブルTの各行に、記憶先となる記憶ブロック9、即ち、インデックステーブルTの値を書き込んでセットする。尚、コントローラ80は、データ伝送開始時のインデックステーブルTを送信部と受信部の組み合わせに応じて、記憶しておいてもよい。
具体的に、バッファ部8における書込では、コントローラ80は、以下に示すような書込アルゴリズム(プログラム)に基づいて書込制御を行う。
L1: wait until v(p(wpp+0))==invalid;
L2: dat(p(wpp+0))=INPUT DATA;
L3: v(p(wpp+0))=valid
L4: p(wpp+4)= p(wpp+new order())
L5: wpp= wpp+1
まず、この書込アルゴリズムの概要を説明する。プログラムでのwppは、書込のポインタの位置を示し、インデックステーブルTで現在参照している行を示す(図6〜図10では、W→で示している)。例えば、データの伝送開始時は、書込のポインタは、インデックステーブルTの第0行の位置にセットされる。又、書込アルゴリズムのp(wpp+x)は、インデックステーブルTの各行に書き込まれている具体的な値(書込先を示す記憶ブロック9)のことである、本例では、p(wpp+x)は、第0記憶ブロック〜第3記憶ブロックのいずれかの値をとる。又、書込アルゴリズムのv(p(wpp+x))は、フラグメモリ83が記憶する各記憶ブロック9の「invalid(無効)」、「valid(有効)」の値のことである。
次に、書込アルゴリズムを具体的に説明する。
まず、「L1: wait until v(p(wpp+0))==invalid;」は、インデックステーブルTで現在の参照行で書込先として示される記憶ブロック9(書込先)のフラグが、invalidとなるまで書込を待つという命令である。従って、コントローラ80は、記憶ブロック9のフラグが、invalidとなるまでバッファメモリ81の書込を待つ。言い換えると、L1の状態が続く。又、コントローラ80は、送信部に送信を待機させる。
記憶ブロック9のフラグが、invalidとなると、「L2: dat(p(wpp+0))=INPUT DATA;」が実行される。「L2: dat(p(wpp+0))=INPUT DATA;」は、バッファ部8が送信部から受信したデータを、インデックステーブルTの現在の参照行で書込先として示される記憶ブロック9に格納(コピー)するという命令である。これにより、コントローラ80は、インデックステーブルTに基づき、いずれかの記憶ブロック9(90〜93)にデータを格納する。
L2が実行されると、L3「v(p(wpp+0))=valid」の命令が実行される。L3「v(p(wpp+0))=valid」は、インデックステーブルTで現在参照している行で、データを格納した記憶ブロック9のフラグを「valid」とするという命令である。これにより、コントローラ80はL2でデータを格納した記憶ブロック9に対応するフラグメモリ83の値をvalidに変更する。
L3が実行されると、L4「p(wpp+4)= p(wpp+new order())」の命令が実行される。L4「p(wpp+4)= p(wpp+new order())」は、インデックステーブルTで現在参照している行に対しnew orderに示される値(命令値)を加えた行で示されている記憶ブロック9の値を、インデックステーブルTで現在参照している行の4行後の行(次のバースト伝送で参照される行)の記憶先として、インデックステーブルTを変更するという命令である。
まず、L4につき、「new order」の値について説明する。本例のように、ワードの順序を逆転させてから受信部に与える場合、「new order」の値の組み合わせは、{+3、+1、−1、−3}となる。尚、+3の値はインデックステーブルTの第0行と第4行を参照しているときの値であり、+1の値はインデックステーブルTの第1行と第5行を参照しているときの値であり、−1の値はインデックステーブルTの第2行と第6行を参照しているときの値であり、−3の値はインデックステーブルTの第3行と第7行を参照しているときの値である。ワードの順序を逆転させる場合の「new order」の値を、インデックステーブルの行順に並べると、{+3、+1、−1、−3、+3、+1、−1、−3}となる。
そして、「new order」の値の組み合わせは、予め用意され、例えば、コントローラ80が記憶している。又、「new order」の値の組み合わせは、データの伝送順序の並び替え方によって異なるので、例えば、コントローラ80は、データの伝送順序の並び替え方にあわせて必要な「new order」の値の組み合わせ記憶しておく。
例えば、インデックステーブルTで第0行目が参照され、バッファメモリ81への書込が行われたとすると、L4「p(wpp+4)= p(wpp+new order())」の命令は、第0行からnew orderに示される値+3を加えた(進んだ)行である第3行において記憶先として示される記憶ブロック9を、現在参照している第0行の4行後の行である第4行の記憶先として、インデックステーブルTを変更するという命令となる。
尚、上記のアルゴリズムでは、現在参照している行に対して3行先や4行先が参照されることがあるが、参照される行の値が、最終行の第7行よりも大きくなる桁上がりが生じた場合、桁上がりは無視され、先頭行に戻る(以下、読出の場合を含め、インデックステーブルの参照において同様)。例えば、現在参照している行がインデックステーブルTの第6行であり、この第6行に対する4行先は、6+4−8=第2行となる(8は、インデックステーブルの全行数)。
L4が実行されると、L5「wpp= wpp+1」の命令が実行される。これにより、インデックステーブルTで参照される行が次行に移る(例えば、第0行→第1行)。尚、最終行を参照していた場合は、先頭行に戻る(第7行→第0行)。
次に、バッファ部8における読出を説明する。読み出しでは、コントローラ80は、以下に示すような書込アルゴリズム(プログラム)に基づいて読出制御を行う。
L1: wait until v(p(rpp))==valid;
L2: OUTPUT DATA = dat(p(rpp));
L3: v(p(rpp))=invalid
L4: wpp= wpp+1
まず、この読出アルゴリズムの概要を説明する。プログラムでのrppは、読出のポインタの位置を示し、インデックステーブルTで現在参照している行を示す(図6〜図10では、R→で示している)。データの伝送開始時、読出のポインタは、インデックステーブルTの第4行の位置にセットされる。言い換えると、読出のポインタの位置は、書込の参照行から1バースト伝送分離れた位置にセットされる。又、読出アルゴリズムのp(rpp)は、インデックステーブルTの各行に書き込まれている具体的な値(読出元を示す記憶ブロック9)のことである、本例では、p(rpp)は、第0記憶ブロック〜第3記憶ブロックのいずれかの値をとる。又、読出アルゴリズムのv(p(rpp))は、フラグメモリ83が記憶する各記憶ブロック9の「invalid(無効)」、「valid(有効)」の値のことである。
次に、読出アルゴリズムを具体的に説明する。
まず、「L1: wait until v(p(rpp))==valid;」は、インデックステーブルTで現在参照している行で示されている記憶ブロック9(読出元)のフラグが、validとなるまで読出を待つという命令である。従って、コントローラ80は参照行で読出元として示される記憶ブロック9のフラグが、validとなるまでバッファメモリ81からの読出を待つ。
記憶ブロック9のフラグがvalidとなると、「L2: OUTPUT DATA = dat(p(rpp));」が実行される。「L2: OUTPUT DATA = dat(p(rpp));」は、インデックステーブルTの現在の参照行で読出元として示される記憶ブロック9から受信部に向けてワード(データ)を出力するという命令である。これにより、コントローラ80は、インデックステーブルTに基づき、いずれかの記憶ブロック9(90〜93)からデータ(ワード)を出力させる。
L2が実行されると、L3「v(p(rpp))=invalid」の命令が実行される。L3「v(p(rpp))=invalid」は、データを読み出した記憶ブロック9に対応するフラグの値を「invalid」とするという命令である。これにより、コントローラ80は、L2でデータを読み出した記憶ブロック9に対応するフラグメモリ83の値をinvalidに変更する。
L3が実行されると、L4「rpp = rpp +1」の命令が実行される。これにより、読出処理で参照されるインデックステーブルTの行が次行に移る(例えば、第0行→第1行)。尚、最終行を参照していた場合は、先頭行に戻る(第7行→第0行)。
次に、図6〜図10を用いて、ワードWの伝送順序を逆順にするときの、書込、読出アルゴリズに基づく具体的なバッファ部8での動作を説明する。具体的には、W0→W1→W2→W3の伝送順をW3→W2→W1→W0とする。
まず、図6の(1)等に示すように、コントローラ80は、書込のポインタ(図6〜図10において「W→」で図示)をインデックステーブルTの第0行に、読出のポインタ(図6〜図10において「R→」で図示)をインデックステーブルTの第4行にセットする。言い換えると、コントローラ80は、インデックステーブルTの読出行を、書き出し行よりも1回のバースト伝送分の行数を空けて、データ伝送を開始する。
そして、図6の(1)に示すように、コントローラ80は、バースト伝送によるデータの伝送が開始される前に、インデックステーブルTの各行に、記憶先としての記憶ブロック9をセットする。書込のポインタは、第0行にされるので、例えば、図6(1)に示すように、コントローラ80は、第0行〜第3行について、インデックステーブルTの行順と各記憶ブロック9の順番とが逆となるように書込での記憶先をインデックステーブルTに書き込む。尚、コントローラ80は、データ伝送開始時のインデックステーブルTを送信部と受信部の組み合わせに応じて、記憶しておいてもよい。
インデックステーブルTの第4行〜第7行については、インデックステーブルTの更新動作をわかりやすくするため、説明の便宜上、ひとまず空欄のままとして説明する。尚、第4行〜第7行については、所望する受信部への伝送順(読出順)と一致するように、バースト伝送によるデータの伝送が開始される前に、読出元をインデックステーブルTに書き込むようにしてもよい(セットするようにしてもよい)。
そして、図6の(2)に示すように、1ワード目到達と、コントローラ80による書込のアルゴリズムでのL1〜L3が実行される。これにより、第3記憶ブロック93に、W0が書き込まれる(格納される)。そして、図6の(3)に示すように、コントローラ80は、書込のアルゴリズムでのL4を実行する。
図6の(3)に示す場合の書込アルゴリズムのL4は、コントローラ80は、第0行から+3行目の第3行に示される記憶ブロック9の値(この場合、第0記憶ブロック90)を、インデックステーブルTの第0行から+4行目に書き込む(この場合、第4行目に第0記憶ブロックが値90として書き込まれる)。そして、図6の(4)で、書込のポインタの改行が行われる。
そして、同様にバッファ部8へのワードの書込が継続される。そして、本説明では、例えば、図6の(1)〜(4)や図7の(5)〜(8)に示すように、送信部からバースト伝送された各ワードは、インデックステーブルTに示される順番で、第3記憶ブロック93→第2記憶ブロック92→第1記憶ブロック91→第0記憶ブロック90の順に格納される。そして、バッファ部8での書込が進むと、例えば、図7の(8)で示すように、第0記憶ブロック90がワードW3を、第1記憶ブロック91がワードW2を、第2記憶ブロック92がワードW1を、第3記憶ブロック90がワードW0を記憶する状態となる。
図6〜図10での(2)、(4)、(6)、(8)、(11)、(13)、(15)、(17)で、破線矢印で示すように、コントローラ80は、インデックステーブルTでの参照行(書込のポインタ)で指示される書込先が「invalid」の状態であると、記憶ブロック9にワードの書込が行われる。尚、図6〜10の各図で、2回目のバースト伝送でのワードには「’」を付して区別している。
又、書込が行われると、図6〜図10での(3)、(5)、(7)、(9)、(12)、(14)、(16)、(18)に示すように、コントローラ80は、インデックステーブルTの更新を行う。そして、予めコントローラ80が記憶するnew orderの値で定まる値が、書込のポインタのある行から4行先(1バースト伝送後)に書き込まれる。即ち、コントローラ80は、書込のためインデックステーブルTで参照している行に対し、予め定められた命令値(new orderの値)を加えた行で示されている記憶ブロック9の値を、インデックステーブルTで現在参照している行よりも1バースト伝送後に参照される行の記憶ブロック9の値として、インデックステーブルTを変更する。
このインデックステーブルTの更新は、1バースト伝送分後の行(即ち、本実施形態では、バースト長が4なので4行後)について行う。言い換えると、書込の際に参照した行+4の行(2回のバースト伝送分の行数を超えた場合は、桁上がりを省く)のインデックステーブルTでの記憶先を更新する。
尚、図8〜図10に示す場合は、インデックステーブルTの行数は、バースト伝送のワード数の2倍なので、ある程度ワードの書込が行われると、インデックステーブルTの各行の値は一定となる状態となる。しかし、インデックステーブルTの行数は、行われるバースト伝送の種類により、バースト伝送のワード数の2倍や整数倍になるとは限らない(例えば、全部で10行等)。しかし、書込に伴ってインデックステーブルTの更新を行うので、インデックステーブルTが何行であっても、滞りなく送信部から受信部へのデータの引渡を行うことができる。
即ち、インデックステーブルTは、複数行を有し、各行に書込及び読出を行う記憶ブロック9が記され、コントローラ80は、ワードの読出に関しては、記憶ブロック9からのワードの読出を完了すると、次行を参照し、次行に記された記憶ブロック9からワードを読出して受信部(RAM6、HDD62、画像処理部7、露光装置43等)に出力し、最終行に至るとインデックステーブルTの先頭行に戻って参照して読出を行い、かつ、インデックステーブルTで書込で参照される行よりも先行する行を参照して読出を行い、ワードの書込に関しては、記憶ブロック9へのワードの書込を完了すると、次行を参照し、次行に記された記憶ブロック9に到着したワードを書き込み、最終行に至ると、インデックステーブルTの先頭行に戻って参照し、記憶ブロック9へのワードの書き込みが行われると、読出順指示に合うように、次のバースト伝送で参照されるインデックステーブルTの行の値を変更する。
次に、読出に関して説明する。コントローラ80は、インデックステーブルTで参照している行に示された記憶ブロック9が「valid」であれば、バッファメモリ81からのワードの読出を行い、受信部に送信させる。具体的には、図6〜図10での(10)、(11)、(13)、(15)で各ワードの記憶ブロック9からの読み出しが行われる。
ここで、データの伝送順序を逆転する場合、バースト伝送で最後に到達したワード(本説明ではワードW3)から、受信部に送信する。そのため、読出では、バースト伝送で最後に到達するワード(本説明ではワードW3)の書込がなされるまで、コントローラ80は読み出しを待たなくてはならない状態となる場合もある(図6〜図7の(1)〜(8)や、図10の(17)の状態)。例えば、図6〜図7の(1)〜(8)に示すように、読出のポインタが参照する第0記憶ブロック90は、バースト伝送での最後のワードW3が書き込まれるまで、「valid」とはならない。そして、書込のポインタは、やがて、読出のポインタに追いつく(例えば、図8の(10)を参照)。
そのため、バッファメモリ81の全ての記憶ブロック9がワードで満たされる状態となる場合がある。しかし、同じ記憶ブロック9で読出と書込は同時には行えない。この場合、コントローラ80は、書込を1ステップ待たせる(図8の(10)や図10の(19)の状態)。言い換えると、読出を優先させる。このため、書込のポインタは、読出のポインタを追随し、追い抜くことはない。
このように、本実施形態に示すデータ伝送装置1によれば、バースト伝送されるデータの順序を逆転させる場合であって、バッファメモリ81の容量が1回のバースト伝送分のサイズしかなくても、破綻なく書込と読出を並行させることができる。そして、バッファ部8は、このようなインデックステーブルTの更新を伴ったデータの格納と読出を、例えば、1ページ分の画像データの送信を終えるまで続ける。
即ち、データ伝送装置1を含む画像形成装置(複合機100)は、複数のワードを連続して出力するバースト伝送でデータを送信する送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)と、データを受信する受信部(RAM6、HDD62、画像処理部7、露光装置43等)と、送信部からバースト伝送されたデータを受け受信部に転送するバッファ部8と、を有し、バッファ部8は、送信部から送信されたデータの受信、書込や、受信部へのデータの引渡を制御するコントローラ80と、少なくとも1ワード分の容量を有する記憶ブロック9を、少なくとも1回のバースト伝送に含まれるワード数分含むバッファメモリ81と、少なくとも現在のバースト伝送での各ワードの記憶ブロック9への書込順及び読出順と、次回のバースト伝送での各ワードの各記憶ブロック9への書込順及び読出順を示すインデックステーブルTを記憶するインデックスメモリ82と、を含み、インデックスメモリ82は、バッファメモリ81から受信部へのワードの読出順指示を送信部及び/又は受信部から受け、読出順指示にあわせ、予め定められたインデックステーブルTをセットし、コントローラ80は、インデックステーブルTに定められた順番に基づき、送信部からバースト伝送された各ワードの各記憶ブロック9への書込と、受信部への出力のため各記憶ブロック9に書き込まれた各ワードの読出と、をバッファメモリ81に並行して行わせる。
尚、バッファ部8が送信部から受信したデータを、ワードの伝送順序を変えないで受信部に送信する場合、インデックステーブルTは、例えば、図4に示すようなインデックステーブルTでよい。言い換えると、現在のバースト伝送と次回のバースト伝送では、同じ順番で、到達したワードを各記憶ブロック9に格納し、読み出していけばよい。即ち、上半分のバースト長分の行(本説明では、第1行から第4行)の値の並びと、下半分のバースト長分の行(本説明では、第5行から第8行)の値の並びを同じにする。
このようにして、本実施形態の構成によれば、バッファメモリ81は、インデックステーブルTに定められた順番に基づき、送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)からバースト伝送された各ワードの各記憶ブロック9への書き込みと、インデックステーブルTに定められた順番に基づき、各記憶ブロック9に書き込まれている各ワードを読出て受信部(RAM6、HDD62、画像処理部7、露光装置43等)への出力が並行して行われる。これにより、読出順指示にあわせて随時更新されるインデックステーブルTに定められたバッファメモリ81の各記憶ブロック9に、各ワードの書込が行われていく。従って、バッファの容量が1回のバースト伝送分のデータサイズでも、滞りなく、データの伝送順序の変更が行われつつ、送信部から受信部にデータを伝送することができる。
又、コントローラ80は、読出順指示に合うように、インデックステーブルTでの書込で現在参照している行に対し、1回のバースト伝送分のワード書込後に参照される行(次回のバースト伝送で同じ順番のワードの書込の際に参照される行)の値を変更する。これにより、読出で参照される行が書込で参照される行よりも先行し、かつ、次のバースト伝送に備えてインデックステーブルTが変更されるので、次のバースト伝送では、読み出しが終わった記憶ブロック9に、随時書込が行われるインデックステーブルTを生成することができる。又、所望する順番にワード(データ)の伝送順序の変更するために、予め定められた命令値を用いて、インデックステーブルTの書き換えが行われる。これにより、命令値を切り替えるだけで、様々な伝送順序に切り替えることができる。
又、インデックステーブルTの行を参照して書込を行う場合、書込先の記憶ブロック9の状態ビットが未書込を示す状態となるまで、記憶ブロック9へのワードの書込は待機されるとともに、送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)に次のワードの送信を待機させ、ワードが受信部(RAM6、HDD62、画像処理部7、露光装置43等)に出力された場合、読み出されたワードが記憶されていた記憶ブロック9の状態ビットは未書込の状態に更新される。これにより、書込対象の記憶ブロック9が空き次第、ワードが書き込まれ、又、読出をしていない限り、記憶ブロック9が上書きされることもない。
又、バースト伝送で送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)から受信したワードの順序は、読出順指示に基づき、逆転されて受信部(RAM6、HDD62、画像処理部7、露光装置43等)に出力される。これにより、両面印刷の場合の裏面用の画像データ等、逆方向に画像データを伝送する場合でも大容量のバッファを設けることなく、スムーズにデータの伝送を行うことができる。
又、バッファ部8は、バスに接続される。これにより、どのような送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)と受信部(RAM6、HDD62、画像処理部7、露光装置43等)の組み合わせでのデータ伝送であっても、1回のバースト伝送のデータサイズの容量を有するバッファメモリ81を有するバッファ部8を1つ設けておくだけで、伝送速度を落とすことなく、ワードの伝送順序の変換を行いつつデータの伝送を行うことができる。
又、送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)は、画像データを出力し、受信部(RAM6、HDD62、画像処理部7、露光装置43等)は、画像データに対し画像処理を行う画像処理部7及び/又は、読出された画像データを記憶するRAM6とする。これにより、回転処理等のため、画像データの伝送において、ワードの伝送順序の変更が必要な場合でも、大容量のバッファメモリ81を設けることなく、スムーズにワードの伝送順序の変更を行いつつ、データの伝送を行うことができる。従って、バッファメモリ81の増設を行うことなく、最低限の容量のバッファメモリ81で、画像データの処理速度を工事用させることができる。
又、画像形成装置(例えば、複合機100)は、本発明のデータ伝送装置1を含むので、送信部(画像読取部2、通信部51、RAM6、HDD62、画像処理部7等)と受信部(RAM6、HDD62、画像処理部7、露光装置43等)のデータの伝送において、バッファメモリ81の容量が、1回のバースト伝送分のデータサイズしかなくても、滞ることなく、任意にバースト伝送でのワードの伝送順序を変更しつつ、データの伝送を行うことができる。従って、ワードの伝送順序の変更に要するバッファメモリ81を大きく減らすことができ、製造コスト削減を図ることができる。又、各送信部と各受信部での規格や仕様上のデータの伝送順序にとらわれずに、デバイスを採用することができ、画像形成装置の設計、開発の自由度を高めることができる。
次に、他の実施形態について説明しておく。上記の例では、バースト長が4である場合を説明したが、上記の説明は、バースト長が4以上であっても適用できる。例えば、バースト長が32の場合、インデックステーブルTは、64行であり、バッファメモリ81に含まれる記憶ブロック9は、32個とし、コントローラ80は、書込順、読出順を示すインデックステーブルTを必要に応じて更新すればよい。
以上、本発明の実施形態について説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で種々の変更を加えて実施することができる。