(57)【要約】【課題】マスターがメモリーからデータを読み出すのに要する時間を短くできるデータ読出処理装置を提供する。【解決手段】  メモリーコントローラー１３は、ディスクリプター読出部４１及び第１の分割データ読出部４２を備える。ディスクリプター読出部４１は、マスターであるＵＳＢインターフェイス部１４からバス１６経由で送られてきたディスクリプターを読み出す要求に応じて、ディスクリプターをメモリー１２から読み出す。第１の分割データ読出部４２は、ＵＳＢインターフェイス部１４からメモリーコントローラー１３に対して分割データを読み出す要求がされることなく、ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示されるアドレスを指定して分割データをメモリー１２から読み出す。【選択図】図９
2014182727.tif 000002
【特許請求の範囲】
【請求項１】
バスと、
データが複数の分割データに分けられて書き込まれており、かつ前記複数の分割データのそれぞれに割り当てられ、割り当てられた分割データが書き込まれている記憶領域のアドレスを示すディスクリプターが書き込まれており、スレーブとなる記憶装置と、
前記記憶装置に書き込まれている前記ディスクリプターを利用して、前記データを前記記憶装置から読み出す処理をするマスターと、
前記マスターが前記データを前記記憶装置から読み出す処理をするときに、前記記憶装置を制御する記憶装置制御部と、を備え、
前記記憶装置制御部は、
前記マスターから前記バス経由で送られてきた前記ディスクリプターを読み出す要求に応じて、前記ディスクリプターを前記記憶装置から読み出すディスクリプター読み出しを実行するディスクリプター読出部と、
前記マスターから前記記憶装置制御部に対して前記分割データを読み出す要求がされることなく、前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記アドレスを指定して前記分割データを前記記憶装置から読み出す第１の分割データ読み出しを実行する第１の分割データ読出部と、
前記第１の分割データ読出部によって読み出された前記分割データを前記バス経由で前記マスターに転送する第１の分割データ転送を実行する第１の分割データ転送部と、
前記ディスクリプター読出部による前記ディスクリプター読み出し、前記第１の分割データ読出部による前記第１の分割データ読み出し、及び、前記第１の分割データ転送部による前記第１の分割データ転送によって、前記分割データを前記記憶装置から読み出す第１の読出処理を、前記記憶装置から読み出される前記複数の分割データのそれぞれに対して実行する分割データ読出処理部と、を含むデータ読出処理装置。
【請求項２】
前記記憶装置制御部は、
前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターを前記バス経由で前記マスターに転送するディスクリプター転送を実行するディスクリプター転送部と、
前記マスターが、前記ディスクリプター転送部によって転送されてきた前記ディスクリプターで示される前記アドレスを指定して前記分割データを読み出す要求をすることにより、前記分割データを前記記憶装置から読み出す第２の分割データ読み出しを実行する第２の分割データ読出部と、
前記第２の分割データ読出部によって読み出された前記分割データを、前記バス経由で前記マスターに転送する第２の分割データ転送を実行する第２の分割データ転送部と、を含み、
前記分割データ読出処理部は、前記第１の読出処理、又は、前記ディスクリプター読出部による前記ディスクリプター読み出し、前記ディスクリプター転送部による前記ディスクリプター転送、前記第２の分割データ読出部による前記第２の分割データ読み出し、及び、前記第２の分割データ転送部による前記第２の分割データ転送によって、前記分割データを前記記憶装置から読み出す第２の読出処理を選択的に実行する請求項１に記載のデータ読出処理装置。
【請求項３】
前記ディスクリプターは、前記ディスクリプターが割り当てられた前記分割データのサイズ情報を含み、
前記記憶装置制御部は、
前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、予め定められた値以下か否かを判定する読出サイズ判定を実行する読出サイズ判定部を含み、
前記分割データ読出処理部は、前記分割データのサイズが前記予め定められた値以下と判定された場合、前記第１の読出処理を選択し、前記分割データのサイズが前記予め定められた値以下と判定されない場合、前記第２の読出処理を選択する請求項２に記載のデータ読出処理装置。
【請求項４】
前記記憶装置制御部は、
前記分割データのサイズが前記予め定められた値以下と判定された場合において、前記分割データを前記バス経由で前記記憶装置制御部から前記マスターに転送すれば、前記バスの帯域幅のうち、前記マスターに予め割り当てられた帯域を超えるか否かを判定する帯域判定部を含み、
前記分割データ読出処理部は、前記予め割り当てられた帯域を超えると判定されない場合、前記第１の読出処理を選択し、前記予め割り当てられた帯域を超えると判定された場合、前記第２の読出処理を選択する請求項３に記載のデータ読出処理装置。
【請求項５】
前記バスにアクセス可能な他のマスターと、
前記マスターの前記バスへのアクセスと前記他のマスターの前記バスへのアクセスとが競合するか否かを判断するアクセス競合判断部と、を備え、
前記予め定められた値は、第１の値から、前記第１の値より大きい第２の値までの幅を有する値であり、
前記分割データ読出処理部は、(１)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第１の値以下と判定された場合、前記第１の読出処理を選択し、(２)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第２の値以上と判定された場合、前記第２の読出処理を選択し、(３)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していないと判断された場合、前記第１の読出処理を選択し、(４)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していると判断された場合、前記第２の読出処理を選択する請求項３に記載のデータ読出処理装置。
【請求項６】
バスと、
データを複数の分割データに分けて書き込むために、前記複数の分割データのそれぞれに割り当てられ、割り当てられた分割データが書き込まれる記憶領域のアドレスを示すディスクリプターが書き込まれており、スレーブとなる記憶装置と、
前記記憶装置に書き込まれている前記ディスクリプターを利用して、前記データを前記記憶装置に書き込む処理をするマスターと、
前記マスターが前記データを前記記憶装置に書き込む処理をするときに、前記記憶装置を制御する記憶装置制御部と、を備え、
前記マスターは、
前記ディスクリプターを読み出す要求と共に前記ディスクリプターが割り当てられた前記分割データを、前記バス経由で前記記憶装置制御部に送る第１のディスクリプター読み出し要求を実行する第１のディスクリプター読出要求部を含み、
前記記憶装置制御部は、
前記第１のディスクリプター読出要求部によって送られてきた前記ディスクリプターを読み出す要求に応じて、前記ディスクリプターを前記記憶装置から読み出す第１のディスクリプター読み出しを実行する第１のディスクリプター読出部と、
前記第１のディスクリプター読出部によって読み出された前記ディスクリプターで示される前記アドレスを指定して、前記第１のディスクリプター読出要求部によって送られてきた前記分割データを前記記憶装置に書き込む第１の分割データ書き込みを実行する第１の分割データ書込部と、
前記第１のディスクリプター読出要求部による前記第１のディスクリプター読み出し要求、前記第１のディスクリプター読出部による前記第１のディスクリプター読み出し、及び、前記第１の分割データ書込部による前記第１の分割データ書き込みによって、前記分割データを前記記憶装置に書き込む第１の書込処理を、前記記憶装置に書き込まれる前記複数の分割データのそれぞれに対して実行する分割データ書込処理部と、を含むデータ書込処理装置。
【請求項７】
前記マスターは、
前記ディスクリプターを読み出す要求を前記バス経由で前記記憶装置制御部に転送する第２のディスクリプター読み出し要求を実行する第２のディスクリプター読出要求部と、
前記分割データを書き込む要求と共に前記分割データを前記バス経由で前記記憶装置制御部に送る分割データ書き込み要求を実行する分割データ書込要求部と、を含み、
前記記憶装置制御部は、
前記第２のディスクリプター読出要求部によって送られてきた前記ディスクリプターを読み出す要求に応じて、前記ディスクリプターを前記記憶装置から読み出す第２のディスクリプター読み出しを実行する第２のディスクリプター読出部と、
前記第２のディスクリプター読出部によって読み出された前記ディスクリプターを前記バス経由で前記マスターに転送するディスクリプター転送を実行するディスクリプター転送部と、
前記ディスクリプター転送部によって転送されてきた前記ディスクリプターが割り当てられた前記分割データについて、前記分割データ書き込み要求が実行されることによって、前記記憶装置制御部に転送されてきた前記分割データを、前記記憶装置に書き込む第２の分割データ書き込みを実行する第２の分割データ書込部と、を含み、
前記分割データ書込処理部は、前記第１の書込処理、又は、前記第２のディスクリプター読出要求部による前記第２のディスクリプター読み出し要求、前記第２のディスクリプター読出部による前記第２のディスクリプター読み出し、前記ディスクリプター転送部による前記ディスクリプター転送、前記分割データ書込要求部による前記分割データ書き込み要求、及び、前記第２の分割データ書込部による前記第２の分割データ書き込みによって、前記分割データを前記記憶装置に書き込む第２の書込処理を選択的に実行する請求項６に記載のデータ書込処理装置。
【請求項８】
前記ディスクリプターは、前記ディスクリプターが割り当てられた前記分割データのサイズ情報を含み、
前記マスターは、前記複数の分割データのそれぞれに対して、前記分割データのサイズが予め定められた値以下か否かを判定する書込サイズ判定を実行する書込サイズ判定部を含み、
前記分割データ書込処理部は、前記分割データのサイズが前記予め定められた値以下と判定された場合、前記第１の書込処理を選択し、前記分割データのサイズが前記予め定められた値以下と判定されない場合、前記第２の書込処理を選択する請求項７に記載のデータ書込処理装置。
【請求項９】
前記記憶装置制御部は、
前記分割データのサイズが前記予め定められた値以下と判定された場合において、前記分割データを前記バス経由で前記マスターから前記記憶装置制御部に転送すれば、前記バスの帯域幅のうち、前記マスターに予め割り当てられた帯域を超えるか否かを判定する帯域判定部を含み、
前記分割データ書込処理部は、前記帯域判定部によって前記予め割り当てられた帯域を超えると判定されない場合、前記第１の書込処理を選択し、前記帯域判定部によって前記予め割り当てられた帯域を超えると判定された場合、前記第２の書込処理を選択する請求項８に記載のデータ書込処理装置。
【請求項１０】
前記バスにアクセス可能な他のマスターと、
前記マスターの前記バスへのアクセスと前記他のマスターの前記バスへのアクセスとが競合するか否かを判断するアクセス競合判断部と、を備え、
前記予め定められた値は、第１の値から、前記第１の値より大きい第２の値までの幅を有する値であり、
前記分割データ書込処理部は、(１)前記書込サイズ判定部によって前記分割データのサイズが前記第１の値以下と判定された場合、前記第１の書込処理を選択し、(２)前記書込サイズ判定部によって前記分割データが前記第２の値以上と判定された場合、前記第２の書込処理を選択し、(３)前記書込サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していないと判断された場合、前記第１の書込処理を選択し、(４)前記書込サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していると判断された場合、前記第２の書込処理を選択する請求項８に記載のデータ書込処理装置。
【請求項１１】
請求項１〜５のいずれか一項に記載のデータ読出処理装置、及び／又は、請求項６〜１０のいずれか一項に記載のデータ書込処理装置を備える画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクリプターを用いたデータの読み書きに関する。
【背景技術】
【０００２】
画像データ(例えば、原稿をスキャナーで読み取ることによって得られた画像データ)を、メモリーに書き込む処理において、画像データが大きい場合、連続するアドレスの記憶領域を必ずしも確保できない。そこで、画像データを複数の分割データに分けて、アドレスが不連続な記憶領域に格納することにより、メモリー空間を効率的に利用している。この場合、アドレスが不連続な記憶領域に書き込まれた分割データをつなげて元の画像データに戻すことができるように、複数の分割データの書き込み時及び複数の分割データの読み出し時に、ディスクリプターが用いられる。
【０００３】
ディスクリプターを用いた技術として、送信データに関する制御情報を含む送信ディスクリプター及び送信データが、通信装置からネットワークインターフェイス装置へ入力され、ネットワークインターフェイス装置は、入力された送信ディスクリプターに基づいて、入力された送信データをネットワークへ送信するネットワークインターフェイス装置が提案されている(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１７６４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
マスターは、メモリーコントローラーを利用して、メモリーに対してデータの読み書きをする。記憶装置制御部であるメモリーコントローラーは、マスターがメモリーに対してデータを読み書きするときに、記憶装置であるメモリーを制御する装置であり、メモリーがＤＲＡＭであれば、さらに、リフレッシュ制御をする。
【０００６】
マスターが、ディスクリプターを用いてデータをメモリーから読み出す場合、以下の処理でマスターがバスを使用する。
【０００７】
(１)ディスクリプターをメモリーから読み出す要求を、マスターがメモリーコントローラーに送る。
【０００８】
(２)メモリーコントローラーがメモリーから読み出したディスクリプターを、メモリーコントローラーがマスターに転送する。
【０００９】
(３)転送されてきたディスクリプターで示されるソースアドレスを指定して分割データを読み出す要求を、マスターがメモリーコントローラーに送る。
【００１０】
(４)メモリーコントローラーがメモリーから読み出した分割データを、メモリーコントローラーがマスターに転送する。
【００１１】
マスターが、ディスクリプターを用いてデータをメモリーに書き込む場合、以下の処理でマスターがバスを使用する。
【００１２】
(１)ディスクリプターをメモリーから読み出す要求を、マスターがメモリーコントローラーに送る。
【００１３】
(２)メモリーコントローラーがメモリーから読み出したディスクリプターを、メモリーコントローラーがマスターに転送する。
【００１４】
(３)転送されてきたディスクリプターで示されるデスティネーションアドレスを指定して分割データを書き込む要求及び書き込みの対象となる分割データを、マスターがメモリーコントローラーに送る。
【００１５】
マスターがメモリーに対してデータを読み書きする場合、マスターとメモリーコントローラーとの間でバスを利用して上記処理がされる。処理の数が多いと、マスターがメモリーに対してデータを読み書きするのに要する時間が長くなる。
【００１６】
また、上記処理の数が多いと、マスターがバスを使用している期間が増えることになる。マスターがバスを使用している期間は、他のマスターはバスを使用できないので、上記処理の数が多ければ、他のマスターがバスを使用できる期間が減ることになる。
【００１７】
本発明は、マスターが記憶装置からデータを読み出すのに要する時間を短くできるデータ読出処理装置、及び、それを備えた画像形成装置を提供することを目的とする。
【００１８】
本発明は、マスターが記憶装置にデータを書き込むのに要する時間を短くできるデータ書込処理装置、及び、それを備えた画像形成装置を提供することを他の目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成する本発明の一局面に係るデータ読出処理装置は、バスと、データが複数の分割データに分けられて書き込まれており、かつ前記複数の分割データのそれぞれに割り当てられ、割り当てられた分割データが書き込まれている記憶領域のアドレスを示すディスクリプターが書き込まれており、スレーブとなる記憶装置と、前記記憶装置に書き込まれている前記ディスクリプターを利用して、前記データを前記記憶装置から読み出す処理をするマスターと、前記マスターが前記データを前記記憶装置から読み出す処理をするときに、前記記憶装置を制御する記憶装置制御部と、を備え、前記記憶装置制御部は、前記マスターから前記バス経由で送られてきた前記ディスクリプターを読み出す要求に応じて、前記ディスクリプターを前記記憶装置から読み出すディスクリプター読み出しを実行するディスクリプター読出部と、前記マスターから前記記憶装置制御部に対して前記分割データを読み出す要求がされることなく、前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記アドレスを指定して前記分割データを前記記憶装置から読み出す第１の分割データ読み出しを実行する第１の分割データ読出部と、前記第１の分割データ読出部によって読み出された前記分割データを前記バス経由で前記マスターに転送する第１の分割データ転送を実行する第１の分割データ転送部と、前記ディスクリプター読出部による前記ディスクリプター読み出し、前記第１の分割データ読出部による前記第１の分割データ読み出し、及び、前記第１の分割データ転送部による前記第１の分割データ転送によって、前記分割データを前記記憶装置から読み出す第１の読出処理を、前記記憶装置から読み出される前記複数の分割データのそれぞれに対して実行する分割データ読出処理部と、を含む。
【００２０】
本発明の一局面に係るデータ読出処理装置によれば、マスターが記憶装置制御部に分割データを読み出す要求をすることなく、記憶装置制御部は、記憶装置から読み出したディスクリプターで示されるアドレスを指定して、分割データを記憶装置から読み出す。これにより、記憶装置制御部が記憶装置から読み出したディスクリプターをバス経由でマスターに転送し、マスターがそのディスクリプターで示されるアドレスを指定して分割データを読み出す要求をバス経由で記憶装置制御部に送る処理を省略している。よって、マスターが記憶装置からデータを読み出すのに要する時間を短くすることができる。
【００２１】
マスターと他のマスターとの間で、バスへのアクセスが競合した場合、バスを使用する優先度が低い方はバスを使用できないので、優先度が低い方による処理が遅れることになる。本発明の一局面に係るデータ読出処理装置によれば、上記処理を省略することができるので、マスターが記憶装置からデータを読み出す場合に、マスターがバスを使用する期間を短くすることができる。このため、マスターと他のマスターとの間でバスへのアクセスが競合しても、競合時間を減らすことができるので、優先度が低い方による処理が遅れるのを小さくできる。
【００２２】
上記構成において、前記記憶装置制御部は、前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターを前記バス経由で前記マスターに転送するディスクリプター転送を実行するディスクリプター転送部と、前記マスターが、前記ディスクリプター転送部によって転送されてきた前記ディスクリプターで示される前記アドレスを指定して前記分割データを読み出す要求をすることにより、前記分割データを前記記憶装置から読み出す第２の分割データ読み出しを実行する第２の分割データ読出部と、前記第２の分割データ読出部によって読み出された前記分割データを、前記バス経由で前記マスターに転送する第２の分割データ転送を実行する第２の分割データ転送部と、を含み、前記分割データ読出処理部は、前記第１の読出処理、又は、前記ディスクリプター読出部による前記ディスクリプター読み出し、前記ディスクリプター転送部による前記ディスクリプター転送、前記第２の分割データ読出部による前記第２の分割データ読み出し、及び、前記第２の分割データ転送部による前記第２の分割データ転送によって、前記分割データを前記記憶装置から読み出す第２の読出処理を選択的に実行する。
【００２３】
第２の読出処理によれば、マスターは、ディスクリプター読み出し要求及び分割データ読み出し要求をバス経由で記憶装置制御部に送る。第２の読出処理の期間中に、マスターと他のマスターとの間で、バスへのアクセスが競合した場合、マスターが分割データ読み出し要求を送るときに、バスの使用権の調停をすることができる。
【００２４】
これに対して、第１の読出処理によれば、マスターが記憶装置制御部にディスクリプター読み出し要求を送ると、マスターが記憶装置制御部に分割データ読み出し要求を送ることなく、記憶装置制御部は記憶装置から分割データを読み出し、マスターに転送する。このため、第１の読出処理の期間中に、マスターと他のマスターとの間で、バスへのアクセスが競合した場合、バスの使用権を調停することができない。
【００２５】
この構成によれば、第１の読出処理又は第２の読出処理を選択して実行することができるので、状況に応じて(例えば、分割データのサイズの大小)、第１の読出処理と第２の読出処理とを使い分けることができる。
【００２６】
上記構成において、前記ディスクリプターは、前記ディスクリプターが割り当てられた前記分割データのサイズ情報を含み、前記記憶装置制御部は、前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、予め定められた値以下か否かを判定する読出サイズ判定を実行する読出サイズ判定部を含み、前記分割データ読出処理部は、前記分割データのサイズが前記予め定められた値以下と判定された場合、前記第１の読出処理を選択し、前記分割データのサイズが前記予め定められた値以下と判定されない場合、前記第２の読出処理を選択する。
【００２７】
上述したように、第１の読出処理の期間中に、マスターと他のマスターとの間で、バスへのアクセスが競合した場合、バスの使用権を調停することができない。第１の読出処理によって記憶装置から読み出される分割データのサイズが大きいと、第１の読出処理の期間が長くなるので、他のマスターがバスや記憶装置制御部を使用できない期間が長くなる。
【００２８】
この構成によれば、分割データのサイズが予め定められた値以下と判定されない場合、すなわち、予め定められた値より大きいと判定された場合、第１の読出処理を選択せずに、第２の読出処理を選択する。このため、他のマスターがバスや記憶装置制御部を使用できない期間が長くなることを回避できる。
【００２９】
予め定められた値の具体例として、バスのバス幅が挙げられる。これによれば、記憶装置制御部が記憶装置に一回アクセスすることで、記憶装置から分割データを読み出すことを完了できるので、第１の読出処理の期間を最小限度にすることができる。
【００３０】
上記構成において、前記記憶装置制御部は、前記分割データのサイズが前記予め定められた値以下と判定された場合において、前記分割データを前記バス経由で前記記憶装置制御部から前記マスターに転送すれば、前記バスの帯域幅のうち、前記マスターに予め割り当てられた帯域を超えるか否かを判定する帯域判定部を含み、前記分割データ読出処理部は、前記予め割り当てられた帯域を超えると判定されない場合、前記第１の読出処理を選択し、前記予め割り当てられた帯域を超えると判定された場合、前記第２の読出処理を選択する。
【００３１】
帯域幅とは、バスを流れるデータの速度(メガバイト／秒)である。マスターには、予め定められた帯域が与えられている。マスターが、そのマスターに与えられた帯域を超えてバスにアクセスすると、他のマスターは、割り当てられた帯域より小さい帯域しか使用できず、他のマスターによる処理が遅くなる。
【００３２】
マスターが、１秒間のうち、例えば、前半において大量のデータをバスに流すと、後半においてバスに流すデータ量を少なくしなければ、そのマスターに割り当てられた帯域を超えてしまう。
【００３３】
第１の読出処理では、マスターがディスクリプター読み出し要求をすると、記憶装置から分割データの読み出しが完了するまで、マスターはバスや記憶装置制御部を占有する。このため、予め割り当てられた帯域を超えると判定された場合に、第１の読出処理を実行すると、マスターに割り当てられた帯域を超えてしまう。
【００３４】
これに対して、第２の読出処理では、予め割り当てられた帯域を超えると判定された場合、マスターが分割データを読み出す要求を記憶装置制御部に送るタイミングを遅らせることにより、マスターに割り当てられた帯域を超えないようにできる。
【００３５】
そこで、この構成では、分割データのサイズが予め定められた値以下と判定された場合でも、分割データをマスターに転送すれば、マスターに予め割り当てられた帯域を超えると判定すれば、第１の読出処理を選択せずに、第２の読出処理を選択している。これにより、マスターに割り当てられた帯域を超えないようにしている。
【００３６】
上記構成において、前記バスにアクセス可能な他のマスターと、前記マスターの前記バスへのアクセスと前記他のマスターの前記バスへのアクセスとが競合するか否かを判断するアクセス競合判断部と、を備え、前記予め定められた値は、第１の値から、前記第１の値より大きい第２の値までの幅を有する値であり、前記分割データ読出処理部は、(１)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第１の値以下と判定された場合、前記第１の読出処理を選択し、(２)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第２の値以上と判定された場合、前記第２の読出処理を選択し、(３)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していないと判断された場合、前記第１の読出処理を選択し、(４)前記ディスクリプター読出部によって前記記憶装置から読み出された前記ディスクリプターで示される前記分割データのサイズが、前記読出サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していると判断された場合、前記第２の読出処理を選択する。
【００３７】
この構成によれば、分割データのサイズの閾値となる予め定められた値に幅を持たせている。
【００３８】
記憶装置から読み出される分割データのサイズが第１の値以下であれば、分割データの読み出しに時間を要さないと見なして、第１の読出処理を選択する。これにより、マスターと他のマスターとの間でバスへのアクセスが競合しても、調停されず、マスターにバスの使用権が与えられる。
【００３９】
記憶装置から読み出される分割データのサイズが第２の値より大きければ、分割データの読み出しに時間を要すると見なして、第２の読出処理を選択する。これにより、マスターと他のマスターとの間でバスへのアクセスが競合すれば、バスの使用権が調停される。
【００４０】
記憶装置から読み出される分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバスにアクセスしていない場合(アクセスが競合していない場合)、第１の読出処理を選択する。これにより、マスターにバスの使用権が与えられる。
【００４１】
記憶装置から読み出される分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバスにアクセスしている場合(アクセスが競合している場合)、第２の読出処理を選択する。これにより、マスターと他のマスターとの間でバスの使用権が調停される。
【００４２】
本発明の他の局面に係るデータ書込処理装置は、バスと、データを複数の分割データに分けて書き込むために、前記複数の分割データのそれぞれに割り当てられ、割り当てられた分割データが書き込まれる記憶領域のアドレスを示すディスクリプターが書き込まれており、スレーブとなる記憶装置と、前記記憶装置に書き込まれている前記ディスクリプターを利用して、前記データを前記記憶装置に書き込む処理をするマスターと、前記マスターが前記データを前記記憶装置に書き込む処理をするときに、前記記憶装置を制御する記憶装置制御部と、を備え、前記マスターは、前記ディスクリプターを読み出す要求と共に前記ディスクリプターが割り当てられた前記分割データを、前記バス経由で前記記憶装置制御部に送る第１のディスクリプター読み出し要求を実行する第１のディスクリプター読出要求部を含み、前記記憶装置制御部は、前記第１のディスクリプター読出要求部によって送られてきた前記ディスクリプターを読み出す要求に応じて、前記ディスクリプターを前記記憶装置から読み出す第１のディスクリプター読み出しを実行する第１のディスクリプター読出部と、前記第１のディスクリプター読出部によって読み出された前記ディスクリプターで示される前記アドレスを指定して、前記第１のディスクリプター読出要求部によって送られてきた前記分割データを前記記憶装置に書き込む第１の分割データ書き込みを実行する第１の分割データ書込部と、前記第１のディスクリプター読出要求部による前記第１のディスクリプター読み出し要求、前記第１のディスクリプター読出部による前記第１のディスクリプター読み出し、及び、前記第１の分割データ書込部による前記第１の分割データ書き込みによって、前記分割データを前記記憶装置に書き込む第１の書込処理を、前記記憶装置に書き込まれる前記複数の分割データのそれぞれに対して実行する分割データ書込処理部と、を含む。
【００４３】
本発明の他の局面に係るデータ書込処理装置によれば、マスターは、ディスクリプターを読み出す要求と共にそのディスクリプターが割り当てられた分割データを記憶装置制御部に送る。記憶装置制御部はその要求に応じて記憶装置からディスクリプターを読み出し、読み出したディスクリプターで示されるアドレスを指定して、分割データを記憶装置に書き込む。これにより、記憶装置制御部が記憶装置から読み出したディスクリプターをバス経由でマスターに転送し、マスターがそのディスクリプターで示されるアドレスを指定して分割データを書き込む要求をバス経由で記憶装置制御部に送る処理を省略している。よって、マスターがデータを記憶装置に書き込むのに要する時間を短くすることができる。
【００４４】
マスターと他のマスターとの間で、バスへのアクセスが競合した場合、バスを使用する優先度が低い方はバスを使用できないので、優先度が低い方による処理が遅れることになる。本発明の他の面に係るデータ書込処理装置によれば、上記処理を省略することができるので、マスターがデータを記憶装置に書き込む場合に、マスターがバスを使用する期間を短くすることができる。このため、マスターと他のマスターとの間でバスへのアクセスが競合しても、競合時間を減らすことができるので、優先度が低い方による処理が遅れるのを小さくできる。
【００４５】
上記構成において、前記マスターは、前記ディスクリプターを読み出す要求を前記バス経由で前記記憶装置制御部に転送する第２のディスクリプター読み出し要求を実行する第２のディスクリプター読出要求部と、前記分割データを書き込む要求と共に前記分割データを前記バス経由で前記記憶装置制御部に送る分割データ書き込み要求を実行する分割データ書込要求部と、を含み、前記記憶装置制御部は、前記第２のディスクリプター読出要求部によって送られてきた前記ディスクリプターを読み出す要求に応じて、前記ディスクリプターを前記記憶装置から読み出す第２のディスクリプター読み出しを実行する第２のディスクリプター読出部と、前記第２のディスクリプター読出部によって読み出された前記ディスクリプターを前記バス経由で前記マスターに転送するディスクリプター転送を実行するディスクリプター転送部と、前記ディスクリプター転送部によって転送されてきた前記ディスクリプターが割り当てられた前記分割データについて、前記分割データ書き込み要求が実行されることによって、前記記憶装置制御部に転送されてきた前記分割データを、前記記憶装置に書き込む第２の分割データ書き込みを実行する第２の分割データ書込部と、を含み、前記分割データ書込処理部は、前記第１の書込処理、又は、前記第２のディスクリプター読出要求部による前記第２のディスクリプター読み出し要求、前記第２のディスクリプター読出部による前記第２のディスクリプター読み出し、前記ディスクリプター転送部による前記ディスクリプター転送、前記分割データ書込要求部による前記分割データ書き込み要求、及び、前記第２の分割データ書込部による前記第２の分割データ書き込みによって、前記分割データを前記記憶装置に書き込む第２の書込処理を選択的に実行する。
【００４６】
第２の書込処理によれば、マスターは、第２のディスクリプター読み出し要求及び分割データ書き込み要求をバス経由で記憶装置制御部に送る。第２の書込処理の期間中に、マスターと他のマスターとの間で、バスへのアクセスが競合した場合、マスターが分割データ書き込み要求を送るときに、バスの使用権の調停をすることができる。
【００４７】
これに対して、第１の書込処理によれば、マスターが記憶装置制御部に第１のディスクリプター読み出し要求を送ると、記憶装置制御部は記憶装置からディスクリプターを読み出して、記憶装置に分割データを書き込む。このため、第１の書込処理の期間中に、マスターと他のマスターとの間で、バスへのアクセスが競合した場合、バスの使用権を調停することができない。
【００４８】
この構成によれば、第１の書込処理又は第２の書込処理を選択して実行することができるので、状況に応じて(例えば、分割データのサイズの大小)、第１の書込処理と第２の書込処理とを使い分けることができる。
【００４９】
上記構成において、前記ディスクリプターは、前記ディスクリプターが割り当てられた前記分割データのサイズ情報を含み、前記マスターは、前記複数の分割データのそれぞれに対して、前記分割データのサイズが予め定められた値以下か否かを判定する書込サイズ判定を実行する書込サイズ判定部を含み、前記分割データ書込処理部は、前記分割データのサイズが前記予め定められた値以下と判定された場合、前記第１の書込処理を選択し、前記分割データのサイズが前記予め定められた値以下と判定されない場合、前記第２の書込処理を選択する。
【００５０】
上述したように、第１の書込処理の期間中に、マスターと他のマスターとの間で、バスへのアクセスが競合した場合、バスの使用権を調停することができない。第１の書込処理によって記憶装置に書き込まれる分割データのサイズが大きいと、第１の書込処理の期間が長くなるので、他のマスターがバスや記憶装置制御部を使用できない期間が長くなる。
【００５１】
この構成によれば、分割データのサイズが予め定められた値以下と判定されない場合、すなわち、予め定められた値より大きいと判定された場合、第１の書込処理を選択せずに、第２の書込処理を選択する。このため、他のマスターがバスや記憶装置制御部を使用できない期間が長くなることを回避できる。
【００５２】
予め定められた値の具体例として、バスのバス幅が挙げられる。これによれば、記憶装置制御部が記憶装置に一回アクセスすることで、記憶装置に分割データを書き込むことを完了できるので、第１の書込処理の期間を最小限度にすることができる。
【００５３】
上記構成において、前記記憶装置制御部は、前記分割データのサイズが前記予め定められた値以下と判定された場合において、前記分割データを前記バス経由で前記マスターから前記記憶装置制御部に転送すれば、前記バスの帯域幅のうち、前記マスターに予め割り当てられた帯域を超えるか否かを判定する帯域判定部を含み、前記分割データ書込処理部は、前記帯域判定部によって前記予め割り当てられた帯域を超えると判定されない場合、前記第１の書込処理を選択し、前記帯域判定部によって前記予め割り当てられた帯域を超えると判定された場合、前記第２の書込処理を選択する。
【００５４】
帯域幅とは、バスを流れるデータの速度(メガバイト／秒)である。マスターには、予め定められた帯域が与えられている。マスターが、そのマスターに与えられた帯域を超えてバスにアクセスすると、他のマスターは、割り当てられた帯域より小さい帯域しか使用できず、他のマスターによる処理が遅くなる。
【００５５】
マスターが、１秒間のうち、例えば、前半において大量のデータをバスに流すと、後半においてバスに流すデータ量を少なくしなければ、そのマスターに割り当てられた帯域を超えてしまう。
【００５６】
第１の書込処理では、マスターが第１のディスクリプター読み出し要求(ディスクリプターを記憶装置から読み出す要求)をすると、記憶装置に分割データの書き込みが完了するまで、マスターはバスや記憶装置制御部を占有する。このため、帯域判定部によって予め割り当てられた帯域を超えると判定された場合に、第１の書込処理を実行すると、マスターに割り当てられた帯域を超えてしまう。
【００５７】
これに対して、第２の書込処理では、帯域判定部によって予め割り当てられた帯域を超えると判定された場合、マスターが分割データを書き込む要求を記憶装置制御部に送るタイミングを遅らせることにより、マスターに割り当てられた帯域を超えないようにできる。
【００５８】
そこで、この構成では、分割データのサイズが予め定められた値以下と判定された場合でも、分割データを記憶装置制御部に転送すれば、マスターに予め割り当てられた帯域を超えると判定すれば、第１の書込処理を選択せずに、第２の書込処理を選択している。これにより、マスターに割り当てられた帯域を超えないようにしている。
【００５９】
上記構成において、前記バスにアクセス可能な他のマスターと、前記マスターの前記バスへのアクセスと前記他のマスターの前記バスへのアクセスとが競合するか否かを判断するアクセス競合判断部と、を備え、前記予め定められた値は、第１の値から、前記第１の値より大きい第２の値までの幅を有する値であり、前記分割データ書込処理部は、(１)前記書込サイズ判定部によって前記分割データのサイズが前記第１の値以下と判定された場合、前記第１の書込処理を選択し、(２)前記書込サイズ判定部によって前記分割データが前記第２の値以上と判定された場合、前記第２の書込処理を選択し、(３)前記書込サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していないと判断された場合、前記第１の書込処理を選択し、(４)前記書込サイズ判定部によって前記第１の値より大きくかつ前記第２の値より小さいと判定され、かつ、前記アクセス競合判断部によってアクセスが競合していると判断された場合、前記第２の書込処理を選択する。
【００６０】
この構成によれば、分割データのサイズの閾値となる予め定められた値に幅を持たせている。
【００６１】
記憶装置に書き込まれる分割データのサイズが第１の値以下であれば、分割データの書き込みに時間を要さないと見なして、第１の書込処理を選択する。これにより、マスターと他のマスターとの間でバスへのアクセスが競合しても、調停されず、マスターにバスの使用権が与えられる。
【００６２】
記憶装置に書き込まれる分割データのサイズが第２の値より大きければ、分割データの書き込みに時間を要すると見なして、第２の書込処理を選択する。これにより、マスターと他のマスターとの間でバスへのアクセスが競合すれば、バスの使用権が調停される。
【００６３】
記憶装置に書き込まれる分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバスにアクセスしていない場合(アクセスが競合していない場合)、第１の書込処理を選択する。これにより、マスターにバスの使用権が与えられる。
【００６４】
記憶装置に書き込まれる分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバスにアクセスしている場合(アクセスが競合している場合)、第２の書込処理を選択する。これにより、マスターと他のマスターとの間でバスの使用権が調停される。
【００６５】
本発明のさらに他の局面に係る画像形成装置は、本発明の一局面に係るデータ読出処理装置、及び／又は、本発明の他の局面に係るデータ書込処理装置を備える。
【００６６】
本発明のさらに他の局面に係る画像形成装置は、本発明の一局面に係るデータ読出処理装置や本発明の他の局面に係るデータ書込処理装置と同様の作用効果を有する。
【発明の効果】
【００６７】
本発明によれば、マスターが記憶装置からデータを読み出すのに要する時間を短くできる。また、本発明によれば、マスターが記憶装置にデータを書き込むのに要する時間を短くできる。
【図面の簡単な説明】
【００６８】
【図１】本実施形態に係るデータ書込・読出処理装置を備えた画像形成装置の内部構造の概略を説明する説明図である。
【図２】図１に示す画像形成装置の構成を示すブロック図である。
【図３】本実施形態に係るデータ書込・読出処理装置の構成を示すブロック図である。
【図４】ディスクリプター処理部のブロック図である。
【図５】ディスクリプターを説明する説明図である。
【図６】本実施形態に係るデータ書込・読出処理装置に備えられるＵＳＢインターフェイス部において、データ読出処理装置の機能に関するブロックを示すブロック図である。
【図７】本実施形態に係るデータ書込・読出処理装置に備えられるメモリーコントローラーにおいて、データ読出処理装置の機能に関するブロックを示すブロック図である。
【図８】本実施形態に係るデータ書込・読出処理装置について、データ読出処理装置としての動作を説明するフローチャートである。
【図９】第１の読出処理のシーケンス図である。
【図１０】第２の読出処理のシーケンス図である。
【図１１】第１変形例に備えられるメモリーコントローラーにおいて、データ読出処理装置の機能に関するブロックを示すブロック図である。
【図１２】第１変形例の動作を説明するフローチャートである。
【図１３】第２変形例の動作を説明するフローチャートである。
【図１４】本実施形態に係るデータ書込・読出処理装置に備えられるＵＳＢインターフェイス部において、データ書込処理装置の機能に関するブロックを示すブロック図である。
【図１５】本実施形態に係るデータ書込・読出処理装置に備えられるメモリーコントローラーにおいて、データ書込処理装置の機能に関するブロックを示すブロック図である。
【図１６】本実施形態に係るデータ書込・読出処理装置について、データ書込処理装置としての動作を説明するフローチャートである。
【図１７】第１の書込処理のシーケンス図である。
【図１８】第２の書込処理のシーケンス図である。
【図１９】第３変形例に備えられるメモリーコントローラーにおいて、データ書込処理装置の機能に関するブロックを示すブロック図である。
【図２０】第３変形例の動作を説明するフローチャートである。
【図２１】第４変形例の動作を説明するフローチャートである。
【発明を実施するための形態】
【００６９】
以下、図面に基づいて本発明の実施形態を詳細に説明する。図１は、本発明の一実施形態に係るデータ書込・読出処理装置を備えた画像形成装置１の内部構造の概略を説明する説明図である。データ書込・読出処理装置は、後で説明するように、データ読出処理装置の機能とデータ書込処理装置の機能とを有する。
【００７０】
画像形成装置１は、例えば、コピー、プリンター、スキャナー及びファクシミリの機能を有するデジタル複合機に適用することができる。画像形成装置１は、装置本体１００、装置本体１００の上に配置された原稿読取部２００、原稿読取部２００の上に配置された原稿給送部３００及び装置本体１００の上部前面に配置された操作部４００を備える。
【００７１】
原稿給送部３００は、自動原稿送り装置として機能し、原稿載置部３０１に置かれた複数枚の原稿を連続的に原稿読取部２００で読み取ることができるように送ることができる。
【００７２】
原稿読取部２００は、露光ランプ等を搭載したキャリッジ２０１、ガラス等の透明部材により構成された原稿台２０３、不図示のＣＣＤ(Charge Coupled Device)センサー及び原稿読取スリット２０５を備える。原稿台２０３に載置された原稿を読み取る場合、キャリッジ２０１を原稿台２０３の長手方向に移動させながらＣＣＤセンサーにより原稿を読み取る。これに対して、原稿給送部３００から給送された原稿を読み取る場合、キャリッジ２０１を原稿読取スリット２０５と対向する位置に移動させて、原稿給送部３００から送られてきた原稿を、原稿読取スリット２０５を通してＣＣＤセンサーにより読み取る。ＣＣＤセンサーは読み取った原稿を画像データとして出力する。
【００７３】
装置本体１００は、用紙貯留部１０１、画像形成部１０３及び定着部１０５を備える。用紙貯留部１０１は、装置本体１００の最下部に配置されており、用紙の束を貯留することができる用紙トレイ１０７を備える。用紙トレイ１０７に貯留された用紙の束において、最上位の用紙がピックアップローラー１０９の駆動により、用紙搬送路１１１へ向けて送出される。用紙は、用紙搬送路１１１を通って、画像形成部１０３へ搬送される。
【００７４】
画像形成部１０３は、搬送されてきた用紙にトナー画像を形成する。画像形成部１０３は、感光体ドラム１１３、露光部１１５、現像部１１７及び転写部１１９を備える。露光部１１５は、画像データ(原稿読取部２００から出力された画像データ、パソコンから送信された画像データ、ファクシミリ受信の画像データ等)に対応して変調された光を生成し、一様に帯電された感光体ドラム１１３の周面に照射する。これにより、感光体ドラム１１３の周面には、画像データに対応する静電潜像が形成される。この状態で感光体ドラム１１３の周面に現像部１１７からトナーを供給することにより、周面には画像データに対応するトナー画像が形成される。このトナー像は、転写部１１９によって先ほど説明した用紙貯留部１０１から搬送されてきた用紙に転写される。
【００７５】
トナー像が転写された用紙は、定着部１０５に送られる。定着部１０５において、トナー像と用紙に熱と圧力が加えられて、トナー像は用紙に定着される。用紙はスタックトレイ１２１又は排紙トレイ１２３に排紙される。
【００７６】
操作部４００は、操作キー部４０１と表示部４０３を備える。表示部４０３は、タッチパネル機能を有しており、ソフトキーを含む画面が表示される。ユーザーは、画面を見ながらソフトキーを操作することによって、コピー等の機能の実行に必要な設定等をする。
【００７７】
操作キー部４０１には、ハードキーからなる操作キーが設けられている。具体的には、スタートキー４０５、テンキー４０７、ストップキー４０９、リセットキー４１１、コピー、プリンター、スキャナー及びファクシミリを切り換えるための機能切換キー４１３等が設けられている。
【００７８】
スタートキー４０５は、コピー、ファクシミリ送信等の動作を開始させるキーである。テンキー４０７は、コピー部数、ファクシミリ番号等の数字を入力するキーである。ストップキー４０９は、コピー動作等を途中で中止させるキーである。リセットキー４１１は、設定された内容を初期設定状態に戻すキーである。
【００７９】
機能切換キー４１３は、コピーキー及び送信キー等を備えており、コピー機能、送信機能等を相互に切り替えるキーである。コピーキーを操作すれば、コピーの初期画面が表示部４０３に表示される。送信キーを操作すれば、ファクシミリ送信及びメール送信の初期画面が表示部４０３に表示される。
【００８０】
図２は、図１に示す画像形成装置１の構成を示すブロック図である。画像形成装置１は、装置本体１００、原稿読取部２００、原稿給送部３００、操作部４００、制御部５００及び通信部６００がバスによって相互に接続された構成を有する。装置本体１００、原稿読取部２００、原稿給送部３００及び操作部４００に関しては既に説明したので、説明を省略する。
【００８１】
制御部５００は、ＣＰＵ(Central Processing Unit)、ＲＯＭ(Read Only Memory)、ＲＡＭ(Random Access Memory)及び画像メモリー等を備える。ＣＰＵは、画像形成装置１を動作させるために必要な制御を、装置本体１００等の画像形成装置１の上記構成要素に対して実行する。ＲＯＭは、画像形成装置１の動作の制御に必要なソフトウェアを記憶している。ＲＡＭは、ソフトウェアの実行時に発生するデータの一時的な記憶及びアプリケーションソフトの記憶等に利用される。画像メモリーは、画像データ(原稿読取部２００から出力された画像データ、パソコンから送信された画像データ、ファクシミリ受信の画像データ等)を一時的に記憶する。
【００８２】
通信部６００は、ファクシミリ通信部６０１及びネットワークＩ／Ｆ部６０３を備える。ファクシミリ通信部６０１は、相手先ファクシミリとの電話回線の接続を制御するＮＣＵ(Network Control Unit)及びファクシミリ通信用の信号を変復調する変復調回路を備える。ファクシミリ通信部６０１は、電話回線６０５に接続される。
【００８３】
ネットワークＩ／Ｆ部６０３は、ＬＡＮ(Local Area Network)６０７に接続される。ネットワークＩ／Ｆ部６０３は、ＬＡＮ６０７に接続されたパソコン等の端末装置との間で通信を実行するための通信インターフェイス回路である。
【００８４】
図３は、本実施形態に係るデータ書込・読出処理装置１０の構成を示すブロック図である。データ書込・読出処理装置１０は、図２の制御部５００に含まれる。
【００８５】
データ書込・読出処理装置１０は、ＣＰＵ１１、メモリー１２、メモリーコントローラー１３、ＵＳＢインターフェイス部１４、画像データ圧縮部１５及びバス１６を備える。
【００８６】
ＣＰＵ１１は、バス１６に接続されており、図２の制御部５００を構成するＣＰＵである。
【００８７】
メモリー１２は、スレーブとして機能し、メモリーコントローラー１３を介してバス１６に接続されている。メモリー１２は、図２の制御部５００を構成するＲＡＭである。メモリー１２は、記憶装置の例であり、記憶装置の他の例として、ＨＤＤ(Hard Disk Drive)が挙げられる。
【００８８】
メモリーコントローラー１３は、ＣＰＵ１１、ＵＳＢインターフェイス部１４及び画像データ圧縮部１５が、データをメモリー１２に書き込む処理やデータをメモリー１２から読み出す処理をするときに、メモリー１２を制御する装置である。メモリーコントローラー１３は、記憶装置制御部の例である。
【００８９】
ＵＳＢインターフェイス部１４は、バス１６に接続されており、ＵＳＢメモリーに書き込まれているデータをメモリー１２に書き込む処理やメモリー１２からデータを読み出してＵＳＢメモリーに書き込む処理において、マスターとして機能する。
【００９０】
画像データ圧縮部１５は、バス１６に接続されており、画像データの圧縮処理において、マスターとして機能する。
【００９１】
バス１６には、アクセス競合判断部の機能を有する調停部１７が設けられている。調停部１７は、バス１６へアクセスしようとするマスターが複数あるか否か、すなわち、バス１６へのアクセスが競合するか否かを判断し、競合すると判断した場合、いずれのマスターにバス１６の使用権を与えるか調停する。
【００９２】
マスターは、メモリー１２に書き込まれているディスクリプターを利用して、データをメモリー１２から読み出す処理やデータをメモリー１２に書き込む処理をする。
【００９３】
ＣＰＵ１１及びメモリー１２によって、図４に示すディスクリプター処理部２１が実現される。ディスクリプター処理部２１は、複数の分割データに分けられてメモリー１２に書き込まれているデータを読み出すために、ディスクリプターを生成し、生成したディスクリプターをメモリー１２に書き込む。読み出しで使用されるディスクリプターは、複数の分割データのそれぞれに割り当てられ、割り当てられた分割データが書き込まれているメモリー１２の記憶領域のアドレス及び割り当てられた分割データのサイズの情報を含む。
【００９４】
また、ディスクリプター処理部２１は、データを複数の分割データに分けてメモリー１２に書き込むために、ディスクリプターを生成し、生成したディスクリプターをメモリー１２に書き込む。書き込みで使用されるディスクリプターは、複数の分割データのそれぞれに割り当てられ、割り当てられた分割データが書き込まれるメモリー１２の記憶領域のアドレス、及び、割り当てられた分割データのサイズの情報を含む。
【００９５】
図５は、ディスクリプターの具体例を説明する説明図である。ディスクリプターは、２５６ビットであり、最初の３２ビットがソースアドレス(Source Address)領域となる。次の３２ビットがデスティネーションアドレス(Destination Address)領域となる。次の３２ビットがサイズ(Size)領域となる。次の３２ビットがネクストディスクリプターアドレス(Next Descriptor Address)領域となる。次の３２ビットがリザーブド(Reserved)領域及びコントロール(Control)領域となる。残りの９６ビット領域がユーザービット(User bit)領域となる。
【００９６】
これらの領域のうち、本実施形態に関連するのは、ソースアドレス領域、デスティネーションアドレス領域、サイズ領域、及び、ネクストディスクリプターアドレス領域である。
【００９７】
デスティネーションアドレス領域は、データをメモリー１２に書き込む処理で使用される。デスティネーションアドレス領域には、そのディスクリプターが割り当てられた分割データが書き込まれるメモリー１２の記憶領域の先頭アドレスが示される。
【００９８】
ソースアドレス領域は、データをメモリー１２から読み出す処理で使用される。ソースアドレス領域には、そのディスクリプターが割り当てられた分割データが書き込まれているメモリー１２の記憶領域の先頭アドレスが示される。
【００９９】
サイズ領域は、データをメモリー１２から読み出す処理及びデータをメモリー１２に書き込む処理で使用される。サイズ領域には、そのディスクリプターが割り当てられた分割データのサイズが示される。
【０１００】
ネクストディスクリプターアドレス領域は、データをメモリー１２から読み出す処理及びデータをメモリー１２に書き込む処理で使用される。ネクストディスクリプターアドレス領域には、読み出しや書き込みの対象となる次の分割データに割り当てられたディスクリプターが書き込まれているメモリー１２の記憶領域の先頭アドレスが示される。
【０１０１】
ディスクリプター処理部２１は、データをメモリー１２から読み出す処理やデータをメモリー１２に書き込む処理をする場合、１番目のディスクリプターが書き込まれているメモリー１２の記憶領域の先頭アドレスを、マスターに知らせる。これにより、マスターは、ＣＰＵ１１の助けを借りずに、１番目の分割データから順番に複数の分割データをメモリー１２から読み出す処理や、１番目の分割データから順番に複数の分割データをメモリー１２に書き込む処理をすることができる。
【０１０２】
データ書込・読出処理装置１０は、データ読出処理装置の機能とデータ書込処理装置の機能とを有する。まず、データ読出処理装置の機能から説明する。マスターがＵＳＢインターフェイス部１４とする。
【０１０３】
図６は、ＵＳＢインターフェイス部１４について、データ読出処理装置の機能に関するブロックを示すブロック図である。ＵＳＢインターフェイス部１４は、機能ブロックとして、ディスクリプター読出要求部３１、及び、分割データ読出要求部３２を備える。
【０１０４】
ディスクリプター読出要求部３１は、メモリーコントローラー１３がメモリー１２からディスクリプターを読み出す要求を、バス１６経由でメモリーコントローラー１３に送る。
【０１０５】
分割データ読出要求部３２は、メモリーコントローラー１３がメモリー１２から分割データを読み出す要求を、バス１６経由でメモリーコントローラー１３に送る。
【０１０６】
図７は、メモリーコントローラー１３について、データ読出処理装置の機能に関するブロックを示すブロック図である。メモリーコントローラー１３は、機能ブロックとして、ディスクリプター読出部４１、第１の分割データ読出部４２、第１の分割データ転送部４３、ディスクリプター転送部４４、第２の分割データ読出部４５、第２の分割データ転送部４６、分割データ読出処理部４７、及び、読出サイズ判定部４８を備える。
【０１０７】
ディスクリプター読出部４１は、ディスクリプター読み出しを実行する。これは、図６のディスクリプター読出要求部３１からバス１６経由で送られてきたディスクリプターを読み出す要求に応じて、ディスクリプターをメモリー１２から読み出すことである。
【０１０８】
第１の分割データ読出部４２は、第１の分割データ読み出しを実行する。これは、図６の分割データ読出要求部３２からメモリーコントローラー１３に対して分割データを読み出す要求がされることなく、ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示されるアドレスを指定して分割データをメモリー１２から読み出すことである。
【０１０９】
第１の分割データ転送部４３は、第１の分割データ転送を実行する。これは、第１の分割データ読出部４２によって読み出された分割データをバス１６経由でマスターに転送することである。
【０１１０】
ディスクリプター転送部４４は、ディスクリプター転送を実行する。これは、ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターをバス１６経由でマスターに転送することである。
【０１１１】
第２の分割データ読出部４５は、第２の分割データ読み出しを実行する。これは、マスターが、ディスクリプター転送部４４によって転送されてきたディスクリプターで示されるアドレスを指定して分割データを読み出す要求をすることにより、分割データをメモリー１２から読み出すことである。
【０１１２】
第２の分割データ転送部４６は、第２の分割データ転送を実行する。これは、第２の分割データ読出部４５によって読み出された分割データを、バス１６経由でマスターに転送することである。
【０１１３】
分割データ読出処理部４７は、第１の読出処理を、メモリー１２から読み出される複数の分割データのそれぞれに対して実行できる。第１の読出処理は、ディスクリプター読出部４１によるディスクリプター読み出し、第１の分割データ読出部４２による第１の分割データ読み出し、及び、第１の分割データ転送部４３による第１の分割データ転送によって、分割データをメモリー１２から読み出すことである。
【０１１４】
また、分割データ読出処理部４７は、第２の読出処理を、メモリー１２から読み出される複数の分割データのそれぞれに対して実行できる。第２の読出処理は、ディスクリプター読出部４１によるディスクリプター読み出し、ディスクリプター転送部４４によるディスクリプター転送、第２の分割データ読出部４５による第２の分割データ読み出し、及び、第２の分割データ転送部４６による第２の分割データ転送によって、分割データをメモリー１２から読み出すことである。
【０１１５】
分割データ読出処理部４７は、第１の読出処理又は第２の読出処理を選択的に実行できる。
【０１１６】
読出サイズ判定部４８は、読出サイズ判定を実行する。これは、ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示される分割データのサイズが、予め定められた値以下か否かを判定することである。
【０１１７】
本実施形態に係るデータ書込・読出処理装置１０について、データ読出処理装置としての動作を、主に図６、図７及び図８を用いて説明する。図８は、その動作を説明するフローチャートである。マスターがＵＳＢインターフェイス部１４とする。
【０１１８】
読出サイズ判定部４８に備えられるレジスタには、分割データのサイズの閾値となる予め定められた値が設定されている。この値の具体例として、バス１６のバス幅が挙げられる。データ書込・読出処理装置１０の設計者によりその設定がされる。分割データのサイズが閾値以下であれば、第１の読出処理によって分割データをメモリー１２から読み出す。分割データのサイズが閾値以下でなければ(すなわち、閾値より大きければ)、第２の読出処理によって分割データをメモリー１２から読み出す。
【０１１９】
ＵＳＢインターフェイス部１４が、メモリー１２に書き込まれているデータのうち、ＵＳＢメモリー１２に書き込むデータをメモリー１２から読み出す処理を開始する(ステップＳ１)。
【０１２０】
ＵＳＢインターフェイス部１４によってメモリー１２から読み出されるデータは、複数の分割データに分けられてメモリー１２に書き込まれている。図４のディスクリプター処理部２１は、複数の分割データをメモリー１２から読み出すことができるように、複数の分割データのそれぞれに割り当てられるディスクリプターを生成して、メモリー１２に書き込む(ステップＳ２)。
【０１２１】
ディスクリプター処理部２１は、１番目のディスクリプターが書き込まれているメモリー１２の記憶領域のアドレス情報を、バス１６経由でＵＳＢインターフェイス部１４に送る(ステップＳ３)。１番目のディスクリプターとは、ステップＳ２でメモリー１２に書き込まれたディスクリプターのうち、メモリー１２から１番目に読み出される分割データに割り当てられたディスクリプターである。
【０１２２】
ＵＳＢインターフェイス部１４において、ディスクリプター読出要求部３１は、ディスクリプター処理部２１から送られてきたアドレス情報で示されるアドレスを指定して、ディスクリプターを読み出す要求をバス１６経由でメモリーコントローラー１３に送る(ステップＳ４)。
【０１２３】
メモリーコントローラー１３において、ディスクリプター読出部４１は、ディスクリプターを読み出す要求に応じて、ディスクリプターをメモリー１２から読み出す(ステップＳ５)。
【０１２４】
メモリーコントローラー１３において、読出サイズ判定部４８は、ステップＳ５で読み出されたディスクリプターで示される分割データ(ここでは、１番目に読み出される分割データ)のサイズが予め定められた値以下か否かを判定する(ステップＳ６)。
【０１２５】
読出サイズ判定部４８が、分割データのサイズが予め定められた値以下と判定した場合(ステップＳ６でＹｅｓ)、第１の読出処理を用いて分割データはメモリー１２から読み出される(ステップＳ７)。
【０１２６】
これに対して、読出サイズ判定部４８が、分割データのサイズが予め定められた値以下と判定しない場合(ステップＳ６でＮｏ)、第２の読出処理を用いて分割データはメモリー１２から読み出される(ステップＳ８)。
【０１２７】
第１の読出処理では、ＵＳＢインターフェイス部１４がメモリーコントローラー１３に分割データを読み出す要求を送ることなく、メモリーコントローラー１３がメモリー１２から分割データを読み出す。これに対して、第２の読出処理では、ＵＳＢインターフェイス部１４がメモリーコントローラー１３に分割データを読み出す要求を送ることにより、メモリーコントローラー１３がメモリー１２から分割データを読み出す。
【０１２８】
第１の読出処理について説明する。図９は、第１の読出処理のシーケンス図である。読出サイズ判定部４８が、分割データのサイズが予め定められた値以下と判定した場合(図８のステップＳ６でＹｅｓ)、メモリーコントローラー１３は、ステップＳ５で読み出したディスクリプターをバス１６経由でＵＳＢインターフェイス部１４に転送する処理を中止する。
【０１２９】
メモリーコントローラー１３において、第１の分割データ読出部４２は、第１の分割データ読出を実行する(ステップＳ７１)。これは、ステップＳ５でメモリー１２から読み出したディスクリプターで示されるソースアドレスを先頭アドレスにして、メモリー１２の記憶領域に書き込まれている分割データを読み出すことである。
【０１３０】
メモリーコントローラー１３において、第１の分割データ転送部４３は、第１の分割データ転送を実行する(ステップＳ７２)。これは、ステップＳ７１でメモリー１２から読み出された分割データを、ステップＳ５でメモリー１２から読み出されたディスクリプターと共にバス１６経由でＵＳＢインターフェイス部１４に転送することである。ここでは、１番目の分割データとこの分割データに割り当てられたディスクリプターである。
【０１３１】
ディスクリプターを転送するのは、そのディスクリプターで示されるネクストディスクリプターアドレスを指定して、次の分割データに割り当てられているディスクリプターを読み出すことができるようにするためである。
【０１３２】
図８及び図９を参照して、ステップＳ７２後、すなわち、ステップＳ７が終了した後、ＵＳＢインターフェイス部１４は、ステップＳ７２で転送されてきたディスクリプターが最後のディスクリプターか否かを判断する(ステップＳ９)。すなわち、第１の読出処理でメモリー１２から読み出した分割データに割り当てられたディスクリプターが最後のディスクリプターが否か判断する。
【０１３３】
最後のディスクリプターとは、メモリー１２から最後に読み出される分割データに割り当てられたディスクリプターである。図５に示すディスクリプターには、そのディスクリプターが最後のディスクリプターか否かをフラグで示す領域が設けられている。
【０１３４】
ＵＳＢインターフェイス部１４が、最後のディスクリプターと判断しない場合(ステップＳ９でＮｏ)、ＵＳＢインターフェイス部１４において、ディスクリプター読出要求部３１は、ステップＳ７２で転送されてきたディスクリプターで示されるネクストディスクリプターアドレスを指定して、次のディスクリプターを読み出す要求をバス１６経由でメモリーコントローラー１３に送る(ステップＳ１０)。そして、ステップＳ５に戻る。メモリー１２から読み出される次の分割データ(ここでは２番目の分割データ)に対して、ステップＳ５及びそれ以降の処理がされる。
【０１３５】
ＵＳＢインターフェイス部１４が、最後のディスクリプターと判断した場合(ステップＳ９でＹｅｓ)、データをメモリー１２から読み出す処理が終了する。
【０１３６】
次に、第２の読出処理について説明する。図１０は、第２の読出処理のシーケンス図である。読出サイズ判定部４８が、分割データのサイズが予め定められた値以下と判定しない場合(図８のステップＳ６でＮｏ)、メモリーコントローラー１３において、ディスクリプター転送部４４は、ディスクリプター転送を実行する(ステップＳ８１)。これは、ステップＳ５でメモリー１２から読み出されたディスクリプターをバス１６経由でＵＳＢインターフェイス部１４に転送することである。
【０１３７】
ＵＳＢインターフェイス部１４において、分割データ読出要求部３２は、分割データ読出要求を実行する(ステップＳ８２)。これは、ステップＳ８１で転送されてきたディスクリプターで示されるソースアドレスを指定して、分割データを読み出す要求をバス１６経由でメモリーコントローラー１３に送ることである。
【０１３８】
メモリーコントローラー１３において、第２の分割データ読出部４５は、第２の分割データ読出を実行する(ステップＳ８３)。これは、ステップＳ８２の分割データ読出要求に応じて、上記ソースアドレスを先頭アドレスにしてメモリー１２の記憶領域に書き込まれている分割データを読み出すことである。
【０１３９】
メモリーコントローラー１３において、第２の分割データ転送部４６は、第２の分割データ転送を実行する(ステップＳ８４)。これは、ステップＳ８３でメモリー１２から読み出された分割データをバス１６経由でＵＳＢインターフェイス部１４に転送することである。
【０１４０】
図８及び図１０を参照して、ステップＳ８４後、すなわち、ステップＳ８が終了した後、ＵＳＢインターフェイス部１４は、ステップＳ８１で転送されてきたディスクリプターが最後のディスクリプターか否かを判断する(ステップＳ１１)。すなわち、第２の読出処理でメモリー１２から読み出した分割データに割り当てられたディスクリプターが最後のディスクリプターが否か判断する。最後のディスクリプターについては、ステップＳ９で説明している。
【０１４１】
ＵＳＢインターフェイス部１４が、最後のディスクリプターと判断しない場合(ステップＳ１１でＮｏ)、ＵＳＢインターフェイス部１４において、ディスクリプター読出要求部３１は、ステップＳ８１で転送されてきたディスクリプターで示されるネクストディスクリプターアドレスを指定して、次のディスクリプターを読み出す要求をバス１６経由でメモリーコントローラー１３に送る(ステップＳ１２)。そして、ステップＳ５に戻る。メモリー１２から読み出される次の分割データに対して、ステップＳ５の処理及びそれ以降の処理がされる。
【０１４２】
ＵＳＢインターフェイス部１４が、最後のディスクリプターと判断した場合(ステップＳ１１でＹｅｓ)、データをメモリー１２から読み出す処理が終了する。
【０１４３】
データ読出処理装置として、本実施形態に係るデータ書込・読出処理装置１０は以下の効果を有する。
【０１４４】
一つ目の効果から説明する。本実施形態によれば、マスター(ＵＳＢインターフェイス部１４)がメモリーコントローラー１３に分割データを読み出す要求をすることなく、メモリーコントローラー１３は、メモリー１２から読み出したディスクリプターで示されるアドレスを指定して、分割データをメモリー１２から読み出す。これにより、メモリーコントローラー１３がメモリー１２から読み出したディスクリプターをバス１６経由でマスターに転送し、マスターがそのディスクリプターで示されるアドレスを指定して分割データを読み出す要求をバス１６経由でメモリーコントローラー１３に送る処理を省略している。よって、マスターがメモリー１２からデータを読み出すのに要する時間を短くすることができる。
【０１４５】
マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、バス１６を使用する優先度が低い方はバス１６を使用できないので、優先度が低い方による処理が遅れることになる。本実施形態によれば、上記処理を省略することができるので、マスターがメモリー１２からデータを読み出す場合に、マスターがバス１６を使用する期間を短くすることができる。このため、マスターと他のマスターとの間でバス１６へのアクセスが競合しても、競合時間を減らすことができるので、優先度が低い方による処理が遅れるのを小さくできる。
【０１４６】
二つ目の効果は、以下の通りである。第２の読出処理によれば、マスターは、ディスクリプター読み出し要求及び分割データ読み出し要求をバス１６経由でメモリーコントローラー１３に送る。第２の読出処理の期間中に、マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、マスターが分割データ読み出し要求を送るときに、バス１６の使用権の調停をすることができる。
【０１４７】
これに対して、第１の読出処理によれば、マスターがメモリーコントローラー１３にディスクリプター読み出し要求を送ると、マスターがメモリーコントローラー１３に分割データ読み出し要求を送ることなく、メモリーコントローラー１３はメモリー１２から分割データを読み出し、マスターに転送する。このため、第１の読出処理の期間中に、マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、バス１６の使用権を調停することができない。
【０１４８】
本実施形態によれば、第１の読出処理又は第２の読出処理を選択して実行することができるので、状況に応じて(例えば、分割データのサイズの大小)、第１の読出処理と第２の読出処理とを使い分けることができる。
【０１４９】
三つ目の効果は、以下の通りである。上述したように、第１の読出処理の期間中に、マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、バス１６の使用権を調停することができない。第１の読出処理によってメモリー１２から読み出される分割データのサイズが大きいと、第１の読出処理の期間が長くなるので、他のマスターがバス１６やメモリーコントローラー１３を使用できない期間が長くなる。
【０１５０】
本実施形態によれば、分割データのサイズが予め定められた値以下と判定されない場合、すなわち、予め定められた値より大きいと判定された場合、第１の読出処理を選択せずに、第２の読出処理を選択する。このため、他のマスターがバス１６やメモリーコントローラー１３を使用できない期間が長くなることを回避できる。
【０１５１】
予め定められた値の具体例として、バス１６のバス幅が挙げられる。これによれば、メモリーコントローラー１３がメモリー１２に一回アクセスすることで、メモリー１２から分割データを読み出すことを完了できるので、第１の読出処理の期間を最小限度にすることができる。
【０１５２】
本実施形態に係るデータ書込・読出処理装置１０の第１変形例及び第２変形例について、本実施形態に係るデータ書込・読出処理装置１０と異なる点を中心に説明する。図１１は、第１変形例に備えられるメモリーコントローラー１３において、データ読出処理装置の機能に関するブロックを示すブロック図である。このメモリーコントローラー１３には、図７に示すメモリーコントローラー１３を構成する機能ブロックに、さらに帯域判定部４９が追加されている。
【０１５３】
帯域判定部４９は、分割データのサイズが、読出サイズ判定部４８によって予め定められた値以下と判定された場合において、分割データをバス１６経由でメモリーコントローラー１３からマスターに転送すれば、バス１６の帯域幅のうち、マスターに予め割り当てられた帯域を超えるか否かを判定する。
【０１５４】
図６の分割データ読出処理部４７は、予め割り当てられた帯域を超えると判定されない場合、第１の読出処理を選択し、予め割り当てられた帯域を超えると判定された場合、第２の読出処理を選択する。
【０１５５】
他の機能ブロックで実行される機能は、図７に示す同じ名称の機能ブロックで実行される機能と同じなので、説明を省略する。
【０１５６】
図１２は、第１変形例の動作を説明するフローチャートである。図８に示すフローチャートと異なる点を説明する。
【０１５７】
図１１の読出サイズ判定部４８によって分割データのサイズが予め定められた値以下と判定されたとき(ステップＳ６でＹｅｓ)、帯域判定部４９は、分割データをバス１６経由でマスターに転送すれば、バス１６の帯域幅のうち、マスターに予め割り当てられた帯域を超えるか否かを判定する(ステップＳ２１)。
【０１５８】
分割データ読出処理部４７は、予め割り当てられた帯域を超えると判定されないとき(ステップＳ２１でＮｏ)、第１の読出処理を選択する。これに対して、分割データ読出処理部４７は、予め割り当てられた帯域を超えると判定されたとき(ステップＳ２１でＹｅｓ)、第２の読出処理を選択する。
【０１５９】
第１変形例の効果を説明する。帯域幅とは、バス１６を流れるデータの速度(メガバイト／秒)である。マスターには、予め定められた帯域が与えられている。マスターが、そのマスターに与えられた帯域を超えてバス１６にアクセスすると、他のマスターは、割り当てられた帯域より小さい帯域しか使用できず、他のマスターによる処理が遅くなる。
【０１６０】
マスターが、１秒間のうち、例えば、前半において大量のデータをバス１６に流すと、後半においてバス１６に流すデータ量を少なくしなければ、そのマスターに割り当てられた帯域を超えてしまう。
【０１６１】
第１の読出処理では、マスターがディスクリプター読み出し要求をすると、メモリー１２から分割データの読み出しが完了するまで、マスターはバス１６やメモリーコントローラー１３を占有する。このため、予め割り当てられた帯域を超えると判定された場合に、第１の読出処理を実行すると、マスターに割り当てられた帯域を超えてしまう。
【０１６２】
これに対して、第２の読出処理では、予め割り当てられた帯域を超えると判定された場合、マスターが分割データを読み出す要求をメモリーコントローラー１３に送るタイミングを遅らせることにより、マスターに割り当てられた帯域を超えないようにできる。
【０１６３】
そこで、第１変形例では、分割データのサイズが予め定められた値以下と判定された場合でも、分割データをマスターに転送すれば、マスターに予め割り当てられた帯域を超えると判定すれば、第１の読出処理を選択せずに、第２の読出処理を選択している。これにより、マスターに割り当てられた帯域を超えないようにしている。
【０１６４】
第２変形例を説明する。第２変形例において、分割データのサイズの閾値である予め定められた値は、第１の値から、第１の値より大きい第２の値までの幅を有する値である。
【０１６５】
第２変形例に備えられるメモリーコントローラー１３は、図７に示すメモリーコントローラー１３を構成する分割データ読出処理部４７が、以下の機能を有する。
【０１６６】
(１)図７のディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示される分割データのサイズが、読出サイズ判定部４８によって第１の値以下と判定された場合、第１の読出処理を選択する。
【０１６７】
(２)ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示される分割データのサイズが、読出サイズ判定部４８によって第２の値以上と判定された場合、第２の読出処理を選択する。
【０１６８】
(３)ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示される分割データのサイズが、読出サイズ判定部４８によって第１の値より大きくかつ第２の値より小さいと判定され、かつ、図３の調停部１７によってアクセスが競合していないと判断された場合(他のマスターがバス１６にアクセスしていない場合)、第１の読出処理を選択する。
【０１６９】
(４)ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示される分割データのサイズが、読出サイズ判定部４８によって第１の値より大きくかつ第２の値より小さいと判定され、かつ、調停部１７によってアクセスが競合していると判断された場合(他のマスターがバス１６にアクセスをしている場合)、第２の読出処理を選択する。
【０１７０】
第２変形例に備えられるメモリーコントローラー１３を構成する他の機能ブロックで実行される機能は、図７に示す同じ名称の機能ブロックで実行される機能と同じなので、説明を省略する。
【０１７１】
図１３は、第２変形例の動作を説明するフローチャートである。図８に示すフローチャートと異なる点を説明する。
【０１７２】
ステップＳ１の前に、読出サイズ判定部４８に備えられる第１のレジスタには第１の値が設定され、第２のレジスタには第２の値が設定されている。データ書込・読出処理装置１０の設計者によりそれらの設定がされる。
【０１７３】
第２変形例では、図８のステップＳ６の換わりに、ステップＳ３１,Ｓ３２,Ｓ３３が実行される。
【０１７４】
ステップＳ５後、読出サイズ判定部４８は、ディスクリプター読出部４１によってメモリー１２から読み出されたディスクリプターで示される分割データのサイズが第１の値以下か否かを判定する(ステップＳ３１)。
【０１７５】
読出サイズ判定部４８が、分割データのサイズを第１の値以下と判定した場合(ステップＳ３１でＹｅｓ)、分割データ読出処理部４７は、第１の読出処理を選択する(ステップＳ７)。
【０１７６】
読出サイズ判定部４８が、分割データのサイズを第１の値以下と判定しない場合(ステップＳ３１でＮｏ)、読出サイズ判定部４８は、その分割データのサイズが第２の値以上か否かを判定する(ステップＳ３２)。
【０１７７】
読出サイズ判定部４８が、分割データのサイズを第２の値以上と判定した場合(ステップＳ３２でＹｅｓ)、分割データ読出処理部４７は、第２の読出処理を選択する(ステップＳ８)。
【０１７８】
読出サイズ判定部４８が、分割データのサイズを第２の値以上と判定しない場合(ステップＳ３２でＮｏ)、分割データ読出処理部４７は、他のマスターがバス１６にアクセスしているか否かを判断する(ステップＳ３３)。他のマスターとは、例えば、図３に示すＣＰＵ１１や画像データ圧縮部１５である。調停部１７がバス１６へのアクセスが競合していると判断していなければ、分割データ読出処理部４７は、他のマスターがバス１６にアクセスしていると判断しない。これに対して、調停部１７がバス１６へのアクセスが競合していると判断していれば、分割データ読出処理部４７は、他のマスターがバス１６にアクセスしていると判断する。
【０１７９】
分割データ読出処理部４７が、他のマスターがバス１６にアクセスしていると判断しない場合(ステップＳ３３でＮｏ)、分割データ読出処理部４７は、第１の読出処理を選択する(ステップＳ７)。
【０１８０】
分割データ読出処理部４７が、他のマスターがバス１６にアクセスしていると判断した場合(ステップＳ３３でＹｅｓ)、分割データ読出処理部４７は、第２の読出処理を選択する(ステップＳ８)。
【０１８１】
第２変形例の効果を説明する。第２変形例によれば、分割データのサイズの閾値となる予め定められた値に幅を持たせている。
【０１８２】
メモリー１２から読み出される分割データのサイズが第１の値以下であれば、分割データの読み出しに時間を要さないと見なして、第１の読出処理を選択する。これにより、マスターと他のマスターとの間でバス１６へのアクセスが競合しても、調停されず、マスターにバス１６の使用権が与えられる。
【０１８３】
メモリー１２から読み出される分割データのサイズが第２の値より大きければ、分割データの読み出しに時間を要すると見なして、第２の読出処理を選択する。これにより、マスターと他のマスターとの間でバス１６へのアクセスが競合すれば、バス１６の使用権が調停される。
【０１８４】
メモリー１２から読み出される分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバス１６にアクセスしていない場合、第１の読出処理を選択する。これにより、マスターにバス１６の使用権が与えられる。
【０１８５】
メモリー１２から読み出される分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバス１６にアクセスしている場合、第２の読出処理を選択する。これにより、マスターと他のマスターとの間でバス１６の使用権が調停される。
【０１８６】
本実施形態に係るデータ書込・読出処理装置１０について、データ書込処理装置の機能を説明する。マスターがＵＳＢインターフェイス部１４とする。
【０１８７】
図１４は、ＵＳＢインターフェイス部１４について、データ書込処理装置の機能に関するブロックを示すブロック図である。ＵＳＢインターフェイス部１４は、機能ブロックとして、第１のディスクリプター読出要求部５１、第２のディスクリプター読出要求部５２、分割データ書込要求部５３、及び、書込サイズ判定部５４を備える。
【０１８８】
第１のディスクリプター読出要求部５１は、第１のディスクリプター読み出し要求を実行する。これは、ディスクリプターを読み出す要求と共にそのディスクリプターが割り当てられた分割データを、バス１６経由でメモリーコントローラー１３に送ることである。
【０１８９】
第２のディスクリプター読出要求部５２は、第２のディスクリプター読み出し要求を実行する。これは、ディスクリプターを読み出す要求をバス１６経由でメモリーコントローラー１３に送ることである。
【０１９０】
分割データ書込要求部５３は、分割データ書き込み要求を実行する。これは、分割データを書き込む要求と共にその分割データをバス１６経由でメモリーコントローラー１３に送ることである。
【０１９１】
書込サイズ判定部５４は、書込サイズ判定を実行する。これは、複数の分割データのそれぞれに対して、分割データのサイズが予め定められた値以下か否かを判定することである。
【０１９２】
図１５は、メモリーコントローラー１３について、データ書込処理装置の機能に関するブロックを示すブロック図である。メモリーコントローラー１３は、機能ブロックとして、第１のディスクリプター読出部６１、第１の分割データ書込部６２、第２のディスクリプター読出部６３、ディスクリプター転送部６４、第２の分割データ書込部６５、及び、分割データ書込処理部６６を備える。
【０１９３】
第１のディスクリプター読出部６１は、第１のディスクリプター読み出しを実行する。これは、図１４の第１のディスクリプター読出要求部５１によって送られてきたディスクリプターを読み出す要求に応じて、ディスクリプターをメモリー１２から読み出すことである。
【０１９４】
第１の分割データ書込部６２は、第１の分割データ書き込みを実行する。これは、第１のディスクリプター読出部６１によって読み出されたディスクリプターで示されるアドレスを指定して、図１４の第１のディスクリプター読出要求部５１によって送られてきた分割データをメモリー１２に書き込むことである。
【０１９５】
第２のディスクリプター読出部６３は、第２のディスクリプター読み出しを実行する。これは、図１４の第２のディスクリプター読出要求部５２によって送られてきたディスクリプターを読み出す要求に応じて、ディスクリプターをメモリー１２から読み出すことである。
【０１９６】
ディスクリプター転送部６４は、ディスクリプター転送を実行する。これは、第２のディスクリプター読出部６３によって読み出されたディスクリプターをバス１６経由でマスターに転送することである。
【０１９７】
第２の分割データ書込部６５は、第２の分割データ書き込みを実行する。これは、ディスクリプター転送部６４によって転送されてきたディスクリプターが割り当てられた分割データについて、図１４の分割データ書込要求部５３が分割データ書き込み要求を実行することによって、メモリーコントローラー１３に転送されてきた分割データを、メモリー１２に書き込むことである。
【０１９８】
分割データ書込処理部６６は、第１の書込処理を、メモリー１２に書き込まれる複数の分割データのそれぞれに対して実行できる。第１の書込処理は、第１のディスクリプター読出要求部５１による第１のディスクリプター読み出し要求、第１のディスクリプター読出部６１による第１のディスクリプター読み出し、及び、第１の分割データ書込部６２による第１の分割データ書き込みによって、分割データをメモリー１２に書き込むことである。
【０１９９】
また、分割データ書込処理部６６は、第２の書込処理を、メモリー１２に書き込まれる複数の分割データのそれぞれに対して実行できる。第２の書込処理は、第２のディスクリプター読出要求部５２による第２のディスクリプター読み出し要求、第２のディスクリプター読出部６３による第２のディスクリプター読み出し、ディスクリプター転送部６４によるディスクリプター転送、分割データ書込要求部５３による分割データ書き込み要求、及び、第２の分割データ書込部６５による第２の分割データ書き込みによって、分割データをメモリー１２に書き込むことである。
【０２００】
分割データ書込処理部６６は、第１の書込処理又は第２の書込処理を選択的に実行できる。
【０２０１】
本実施形態に係るデータ書込・読出処理装置１０について、データ書込処理装置としての動作を説明する。図１６は、その動作を説明するフローチャートである。マスターがＵＳＢインターフェイス部１４とする。
【０２０２】
ＵＳＢインターフェイス部１４において、書込サイズ判定部５４に備えられるレジスタには、分割データのサイズの閾値となる予め定められた値が設定されている。この値の具体例として、バス１６のバス幅が挙げられる。データ書込・読出処理装置１０の設計者によりその設定がされる。分割データのサイズが閾値以下であれば、第１の書込処理によって分割データがメモリー１２に書き込まれる。分割データのサイズが閾値以下でなければ(すなわち、閾値より大きければ)、第２の書込処理によって分割データがメモリー１２に書き込まれる。
【０２０３】
ＵＳＢインターフェイス部１４は、ＵＳＢメモリーに書き込まれているデータのうち、ユーザーにより選択されたデータをメモリー１２に書き込む処理を開始する(ステップＴ１)。
【０２０４】
図４のディスクリプター処理部２１は、ステップＴ１の選択されたデータを複数の分割データに分けてメモリー１２に書き込むために、複数の分割データのそれぞれに割り当てられるディスクリプターを生成して、メモリー１２に書き込む(ステップＴ２)。
【０２０５】
ディスクリプター処理部２１は、１番目のディスクリプターが書き込まれているメモリー１２の記憶領域のアドレス情報及び１番目に書き込まれる分割データのサイズ情報を、バス１６経由でＵＳＢインターフェイス部１４に送る(ステップＴ３)。１番目のディスクリプターとは、ステップＴ２でメモリー１２に書き込まれたディスクリプターのうち、メモリー１２に１番目に書き込まれる分割データに割り当てられたディスクリプターである。
【０２０６】
書込サイズ判定部５４は、ステップＴ３で転送されてきたサイズ情報で示されるサイズ(ここでは、メモリー１２に１番目に書き込まれる分割データのサイズ)が予め定められた値以下か否かを判定する(ステップＴ４)。
【０２０７】
書込サイズ判定部５４が、分割データのサイズが予め定められた値以下と判定した場合(ステップＴ４でＹｅｓ)、第１の書込処理を用いて分割データがメモリー１２に書き込まれる(ステップＴ５)。
【０２０８】
これに対して、書込サイズ判定部５４が、分割データのサイズが予め定められた値以下と判定しない場合(ステップＴ４でＮｏ)、第２の書込処理を用いて分割データがメモリー１２に書き込まれる(ステップＴ６)。第１の書込処理と第２の書込処理とは、ＵＳＢインターフェイス部１４が分割データをメモリーコントローラー１３に転送するタイミングが異なる。
【０２０９】
第１の書込処理について説明する。図１７は、第１の書込処理のシーケンス図である。書込サイズ判定部５４が、分割データのサイズが予め定められた値以下と判定した場合(図１６のステップＴ４でＹｅｓ)、ＵＳＢインターフェイス部１４において、第１のディスクリプター読出要求部５１は、第１のディスクリプター読出要求を実行する(ステップＴ５１)。これは、図１６のステップＴ３でディスクリプター処理部２１から転送されてきたアドレス情報で示されるアドレスを指定してディスクリプターを読み出す要求、そのディスクリプターが割り当てられた分割データを書き込む要求、及び、そのディスクリプターが割り当てられた分割データを、バス１６経由でメモリーコントローラー１３に送ることである。アドレス情報とは、上述したように、１番目のディスクリプターが書き込まれているメモリー１２の記憶領域のアドレスを示す情報である。
【０２１０】
メモリーコントローラー１３において、第１のディスクリプター読出部６１は、第１のディスクリプター読出を実行する(ステップＴ５２)。これは、ステップＴ５１で送られてきたディスクリプターを読み出す要求に応じて、メモリー１２からディスクリプターを読み出すことである。
【０２１１】
メモリーコントローラー１３において、第１の分割データ書込部６２は、第１の分割データ書込を実行する(ステップＴ５３)。これは、ステップＴ５２でメモリー１２から読み出されたディスクリプターで示されるデスティネーションアドレスを指定して、ステップＴ５１でメモリーコントローラー１３に送られてきた分割データをメモリー１２に書き込むことである。
【０２１２】
メモリーコントローラー１３において、分割データ書込処理部６６は、分割データの書き込みが完了したとき、書込完了通知をバス１６経由でＵＳＢインターフェイス部１４に送る(ステップＴ５４)。分割データ書込処理部６６は、この書込完了通知のときに、ステップＴ５２でメモリー１２から読み出されたディスクリプターをバス１６経由でＵＳＢインターフェイス部１４に転送する。これは、そのディスクリプターで示されるネクストディスクリプターアドレスを指定して、次の分割データに割り当てられているディスクリプターを読み出すことができるようにするためである。
【０２１３】
図１６及び図１７を参照して、ステップＴ５４後、すなわち、ステップＴ５が終了した後、ＵＳＢインターフェイス部１４は、ステップＴ５４で転送されてきたディスクリプターが最後のディスクリプターが否か判断する(ステップＴ７)。最後のディスクリプターとは、メモリー１２に最後に書き込まれる分割データに割り当てられたディスクリプターである。図５に示すディスクリプターには、そのディスクリプターが最後のディスクリプターか否かをフラグで示す領域が設けられている。
【０２１４】
ＵＳＢインターフェイス部１４が、最後のディスクリプターと判断しない場合(ステップＴ７でＮｏ)、ステップＴ４に戻る。ＵＳＢインターフェイス部１４において、書込サイズ判定部５４は、メモリー１２に書き込む次の分割データについて、分割データのサイズが予め定められた値以下か否かを判定する。次の分割データのサイズは、ステップＴ５４で転送されてきたディスクリプターのサイズ領域に示されている。
【０２１５】
次の分割データのサイズが予め定められた値以下であれば(ステップＴ４でＹｅｓ)、次の分割データは、第１の書込処理によってメモリー１２に書き込まれる(ステップＴ５)。次の分割データのサイズが予め定められた値以下でなければ(ステップＴ４でＮｏ)、次の分割データは、第２の書込処理によってメモリー１２に書き込まれる(ステップＴ６)。
【０２１６】
第１の書込処理において、メモリー１２に１番目に書き込まれる分割データについては、図１６のステップＴ３でディスクリプター処理部２１から送られてきたアドレス情報で示されるアドレスを指定してディスクリプターを読み出す要求がされる。メモリー１２に１番目に書き込まれる分割データ以外の分割データについては、ステップＴ５４でメモリーコントローラー１３から送られてきたディスクリプターで示されるネクストディスクリプターアドレスを指定してディスクリプターを読み出す要求がされる。
【０２１７】
一方、ＵＳＢインターフェイス部１４は、最後のディスクリプターと判定した場合(ステップＴ７でＹｅｓ)、メモリー１２へのデータの書き込みが完了する。
【０２１８】
次に、第２の書込処理について説明する。図１８は、第２の書込処理のシーケンス図である。ＵＳＢインターフェイス部１４において、書込サイズ判定部５４が、１番目に書き込まれる分割データのサイズが予め定められた値以下と判定しない場合(図１６のステップＴ４でＮｏ)、ＵＳＢインターフェイス部１４において、第２のディスクリプター読出要求部５２は、第２のディスクリプター読出要求を実行する(ステップＴ６１)。これは、図１６のステップＴ３でディスクリプター処理部２１から転送されてきたアドレス情報で示されるアドレスを指定して、ディスクリプターを読み出す要求をバス１６経由でメモリーコントローラー１３に送ることである。
【０２１９】
メモリーコントローラー１３において、第２のディスクリプター読出部６３は、第２のディスクリプター読出を実行する(ステップＴ６２)。これは、ステップＴ６１で送られてきたディスクリプターを読み出す要求に応じて、メモリー１２からディスクリプターを読み出すことである。
【０２２０】
メモリーコントローラー１３において、ディスクリプター転送部６４は、ディスクリプター転送を実行する(ステップＴ６３)。これは、ステップＴ６２でメモリー１２から読み出されたディスクリプターをバス１６経由で、ＵＳＢインターフェイス部１４に転送することである。
【０２２１】
ＵＳＢインターフェイス部１４において、分割データ書込要求部５３は、分割データ書き込み要求を実行する。これは、ステップＴ６３で転送されてきたディスクリプターで示されているデスティネーションアドレスを指定して分割データを書き込む要求、及び、その分割データをバス１６経由でメモリーコントローラー１３に送ることである(ステップＴ６４)。
【０２２２】
メモリーコントローラー１３において、第２の分割データ書込部６５は、第２の分割データ書込を実行する(ステップＴ６５)。これは、ステップＴ６４で転送されてきた分割データを書き込む要求により、ステップＴ６４で転送されてきた分割データをメモリー１２に書き込むことである。
【０２２３】
メモリーコントローラー１３は、分割データの書き込みが完了したとき、書込完了通知をバス１６経由でＵＳＢインターフェイス部１４に転送する(ステップＴ６６)。
【０２２４】
図１６及び図１８を参照して、ステップＴ６６後、すなわち、ステップＴ６が終了した後、ＵＳＢインターフェイス部１４は、第２の書込処理でメモリー１２に書き込んだ分割データに割り当てられたディスクリプターが最後のディスクリプターが否か判断する(ステップＴ８)。最後のディスクリプターは、ステップＴ７で説明している。
【０２２５】
ＵＳＢインターフェイス部１４が、最後のディスクリプターと判断しない場合(ステップＴ８でＮｏ)、ステップＴ４に戻る。ＵＳＢインターフェイス部１４において、書込サイズ判定部５４は、メモリー１２に書き込む次の分割データについて、分割データのサイズが予め定められた値以下か否かを判定する。次の分割データのサイズは、ステップＴ６３で転送されてきたディスクリプターのサイズ領域に示されている。
【０２２６】
次の分割データのサイズが予め定められた値以下であれば(ステップＴ４でＹｅｓ)、次の分割データは、第１の書込処理によってメモリー１２に書き込まれる(ステップＴ５)。次の分割データのサイズが予め定められた値以下でなければ(ステップＴ４でＮｏ)、次の分割データは、第２の書込処理によってメモリー１２に書き込まれる(ステップＴ６)。
【０２２７】
第２の書込処理において、メモリー１２に１番目に書き込まれる分割データについては、図１６のステップＴ３でディスクリプター処理部２１から送られてきたアドレス情報で示されるアドレスを指定してディスクリプターを読み出す要求がされる。メモリー１２に１番目に書き込まれる分割データ以外の分割データについては、ステップＴ６３でメモリーコントローラー１３から送られてきたディスクリプターで示されるネクストディスクリプターアドレスを指定してディスクリプターを読み出す要求がされる。
【０２２８】
一方、ＵＳＢインターフェイス部１４は、最後のディスクリプターと判断した場合(ステップＴ８でＹｅｓ)、メモリー１２へのデータの書き込みが完了する。
【０２２９】
データ書込処理装置として、本実施形態に係るデータ書込・読出処理装置１０は以下の効果を有する。
【０２３０】
一つ目の効果から説明する。本実施形態によれば、マスターは、ディスクリプターを読み出す要求と共にそのディスクリプターが割り当てられた分割データをメモリーコントローラー１３に送る。メモリーコントローラー１３はその要求に応じてメモリー１２からディスクリプターを読み出し、読み出したディスクリプターで示されるアドレスを指定して、分割データをメモリー１２に書き込む。これにより、メモリーコントローラー１３がメモリー１２から読み出したディスクリプターをバス１６経由でマスターに転送し、マスターがそのディスクリプターで示されるアドレスを指定して分割データを書き込む要求をバス１６経由でメモリーコントローラー１３に送る処理を省略している。よって、マスターがデータをメモリー１２に書き込むのに要する時間を短くすることができる。
【０２３１】
マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、バス１６を使用する優先度が低い方はバス１６を使用できないので、優先度が低い方による処理が遅れることになる。本実施形態によれば、上記処理を省略することができるので、マスターがデータをメモリー１２に書き込む場合に、マスターがバス１６を使用する期間を短くすることができる。このため、マスターと他のマスターとの間でバス１６へのアクセスが競合しても、競合時間を減らすことができるので、優先度が低い方による処理が遅れるのを小さくできる。
【０２３２】
二つ目の効果は、以下の通りである。第２の書込処理によれば、マスターは、第２のディスクリプター読み出し要求及び分割データ書き込み要求をバス１６経由でメモリーコントローラー１３に送る。第２の書込処理の期間中に、マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、マスターが分割データ書き込み要求を送るときに、バス１６の使用権の調停をすることができる。
【０２３３】
これに対して、第１の書込処理によれば、マスターがメモリーコントローラー１３に第１のディスクリプター読み出し要求を送ると、メモリーコントローラー１３はメモリー１２からディスクリプターを読み出して、メモリー１２に分割データを書き込む。このため、第１の書込処理の期間中に、マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、バス１６の使用権を調停することができない。
【０２３４】
本実施形態によれば、第１の書込処理又は第２の書込処理を選択して実行することができるので、状況に応じて(例えば、分割データのサイズの大小)、第１の書込処理と第２の書込処理とを使い分けることができる。
【０２３５】
三つ目の効果は、以下の通りである。上述したように、第１の書込処理の期間中に、マスターと他のマスターとの間で、バス１６へのアクセスが競合した場合、バス１６の使用権を調停することができない。第１の書込処理によってメモリー１２に書き込まれる分割データのサイズが大きいと、第１の書込処理の期間が長くなるので、他のマスターがバス１６やメモリーコントローラー１３を使用できない期間が長くなる。
【０２３６】
本実施形態によれば、分割データのサイズが予め定められた値以下と判定されない場合、すなわち、予め定められた値より大きいと判定された場合、第１の書込処理を選択せずに、第２の書込処理を選択する。このため、他のマスターがバス１６やメモリーコントローラー１３を使用できない期間が長くなることを回避できる。
【０２３７】
予め定められた値の具体例として、バス１６のバス幅が挙げられる。これによれば、メモリーコントローラー１３がメモリー１２に一回アクセスすることで、メモリー１２に分割データを書き込むことを完了できるので、第１の書込処理の期間を最小限度にすることができる。
【０２３８】
本実施形態に係るデータ書込・読出処理装置１０の第３変形例及び第４変形例について、本実施形態に係るデータ書込・読出処理装置１０と異なる点を中心に説明する。図１９は、第３変形例に備えられるメモリーコントローラー１３において、データ書込処理装置の機能に関するブロックを示すブロック図である。このメモリーコントローラー１３には、図１５に示すメモリーコントローラー１３を構成する機能ブロックに、さらに帯域判定部６７が追加されている。
【０２３９】
帯域判定部６７は、分割データのサイズが、図１４の書込サイズ判定部５４によって予め定められた値以下と判定された場合において、分割データをバス１６経由でマスターからメモリーコントローラー１３に転送すれば、バス１６の帯域幅のうち、マスターに予め割り当てられた帯域を超えるか否かを判定する。
【０２４０】
図１９の分割データ書込処理部６６は、予め割り当てられた帯域を超えると判定されないとき、第１の書込処理を選択し、予め割り当てられた帯域を超えると判定された場合、第２の書込処理を選択する。
【０２４１】
他の機能ブロックで実行される機能は、図１５に示す同じ名称の機能ブロックで実行される機能と同じなので、説明を省略する。
【０２４２】
図２０は、第３変形例の動作を説明するフローチャートである。図１６に示すフローチャートと異なる点を説明する。
【０２４３】
書込サイズ判定部５４によって分割データのサイズが予め定められた値以下と判定されたとき(ステップＴ４でＹｅｓ)、メモリーコントローラー１３において、帯域判定部６７は、分割データをバス１６経由でマスターからメモリーコントローラー１３に転送すれば、バス１６の帯域幅のうち、マスターに予め割り当てられた帯域を超えるか否かを判定する(ステップＴ２１)。
【０２４４】
分割データ書込処理部６６は、予め割り当てられた帯域を超えると判定されないとき(ステップＴ２１でＮｏ)、第１の書込処理を選択する。これに対して、分割データ書込処理部６６は、予め割り当てられた帯域を超えると判定されたとき(ステップＴ２１でＹｅｓ)、第２の書込処理を選択する。
【０２４５】
第３変形例の効果を説明する。帯域幅とは、バス１６を流れるデータの速度(メガバイト／秒)である。マスターには、予め定められた帯域が与えられている。マスターが、そのマスターに与えられた帯域を超えてバス１６にアクセスすると、他のマスターは、割り当てられた帯域より小さい帯域しか使用できず、他のマスターによる処理が遅くなる。
【０２４６】
マスターが、１秒間のうち、例えば、前半において大量のデータをバス１６に流すと、後半においてバス１６に流すデータ量を少なくしなければ、そのマスターに割り当てられた帯域を超えてしまう。
【０２４７】
第１の書込処理では、マスターが第１のディスクリプター読み出し要求(ディスクリプターをメモリー１２から読み出す要求)をすると、メモリー１２に分割データの書き込みが完了するまで、マスターはバス１６やメモリーコントローラー１３を占有する。このため、帯域判定部６７によって予め割り当てられた帯域を超えると判定された場合に、第１の書込処理を実行すると、マスターに割り当てられた帯域を超えてしまう。
【０２４８】
これに対して、第２の書込処理では、帯域判定部６７によって予め割り当てられた帯域を超えると判定された場合、マスターが分割データを書き込む要求をメモリーコントローラー１３に送るタイミングを遅らせることにより、マスターに割り当てられた帯域を超えないようにできる。
【０２４９】
そこで、第３変形例では、分割データのサイズが予め定められた値以下と判定された場合でも、分割データをメモリーコントローラー１３に転送すれば、マスターに予め割り当てられた帯域を超えると判定すれば、第１の書込処理を選択せずに、第２の書込処理を選択している。これにより、マスターに割り当てられた帯域を超えないようにしている。
【０２５０】
第４変形例を説明する。第４変形例において、分割データのサイズの閾値である予め定められた値は、第１の値から、第１の値より大きい第２の値までの幅を有する値である。
【０２５１】
第４変形例に備えられるメモリーコントローラー１３は、図１５に示すメモリーコントローラー１３を構成する分割データ書込処理部６６が、以下の機能を有する。
【０２５２】
(１)図１４の書込サイズ判定部５４によって分割データのサイズが第１の値以下と判定された場合、第１の書込処理を選択する。
【０２５３】
(２)書込サイズ判定部５４によって分割データが第２の値以上と判定された場合、第２の書込処理を選択する。
【０２５４】
(３)書込サイズ判定部５４によって第１の値より大きくかつ第２の値より小さいと判定され、かつ、調停部１７によってアクセスが競合していないと判断された場合(他のマスターがバス１６にアクセスしていない場合)、第１の書込処理を選択する。
【０２５５】
(４)書込サイズ判定部５４によって第１の値より大きくかつ第２の値より小さいと判定され、かつ、調停部１７によってアクセスが競合していると判断された場合(他のマスターがバス１６にアクセスをしている場合)、第２の書込処理を選択する。
【０２５６】
第４変形例に備えられるメモリーコントローラー１３を構成する他の機能ブロックで実行される機能は、図１５に示す同じ名称の機能ブロックで実行される機能と同じなので、説明を省略する。
【０２５７】
図２１は、第４変形例の動作を説明するフローチャートである。図１６に示すフローチャートと異なる点を説明する。
【０２５８】
ステップＴ１の前に、書込サイズ判定部５４に備えられる第１のレジスタには第１の値が設定され、第２のレジスタには第２の値が設定されている。データ書込・読出処理装置１０の設計者によりそれらの設定がされる。
【０２５９】
第４変形例では、図１６のステップＴ４の換わりに、ステップＴ３１,Ｔ３２,Ｔ３３が実行される。
【０２６０】
ステップＴ３後、書込サイズ判定部５４は、書き込みの対象となる分割データのサイズが第１の値以下か否かを判定する(ステップＴ３１)。
【０２６１】
書込サイズ判定部５４が、分割データのサイズを第１の値以下と判定した場合(ステップＴ３１でＹｅｓ)、分割データ書込処理部６６は、第１の書込処理を選択する(ステップＴ５)。
【０２６２】
書込サイズ判定部５４が、分割データのサイズを第１の値以下と判定しない場合(ステップＴ３１でＮｏ)、書込サイズ判定部５４は、その分割データのサイズが第２の値以上か否かを判定する(ステップＴ３２)。
【０２６３】
書込サイズ判定部５４が、分割データのサイズを第２の値以上と判定した場合(ステップＴ３２でＹｅｓ)、分割データ書込処理部６６は、第２の書込処理を選択する(ステップＴ６)。
【０２６４】
書込サイズ判定部５４が、分割データのサイズを第２の値以上と判定しない場合(ステップＴ３２でＮｏ)、分割データ書込処理部６６は、他のマスターがバス１６にアクセスしているか否かを判断する(ステップＴ３３)。他のマスターとは、例えば、図３に示すＣＰＵ１１や画像データ圧縮部１５である。調停部１７がバス１６へのアクセスが競合していると判断していなければ、分割データ書込処理部６６は、他のマスターがバス１６にアクセスしていると判断しない。これに対して、調停部１７がバス１６へのアクセスが競合していると判断していれば、分割データ書込処理部６６は、他のマスターがバス１６にアクセスしていると判断する。
【０２６５】
分割データ書込処理部６６が、他のマスターがバス１６にアクセスしていると判断しない場合(ステップＴ３３でＮｏ)、分割データ書込処理部６６は、第１の書込処理を選択する(ステップＴ５)。
【０２６６】
分割データ書込処理部６６が、他のマスターがバス１６にアクセスしていると判断した場合(ステップＴ３３でＹｅｓ)、分割データ書込処理部６６は、第２の書込処理を選択する(ステップＴ６)。
【０２６７】
第４変形例の効果を説明する。第４変形例によれば、分割データのサイズの閾値となる予め定められた値に幅を持たせている。
【０２６８】
メモリー１２に書き込まれる分割データのサイズが第１の値以下であれば、分割データの書き込みに時間を要さないと見なして、第１の書込処理を選択する。これにより、マスターと他のマスターとの間でバス１６へのアクセスが競合しても、調停されず、マスターにバス１６の使用権が与えられる。
【０２６９】
メモリー１２に書き込まれる分割データのサイズが第２の値より大きければ、分割データの書き込みに時間を要すると見なして、第２の書込処理を選択する。これにより、マスターと他のマスターとの間でバス１６へのアクセスが競合すれば、バス１６の使用権が調停される。
【０２７０】
メモリー１２に書き込まれる分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバス１６にアクセスしていない場合、第１の書込処理を選択する。これにより、マスターにバス１６の使用権が与えられる。
【０２７１】
メモリー１２に書き込まれる分割データのサイズが第１の値より大きくかつ第２の値以下であり、かつ、他のマスターがバス１６にアクセスしている場合、第２の書込処理を選択する。これにより、マスターと他のマスターとの間でバス１６の使用権が調停される。
【０２７２】
本実施形態では、第１の読出処理又は第２の読出処理を選択できるようにしている。しかしながら、第２の読出処理を実行せずに、第１の読出処理を実行するデータ読出処理装置であってもよい。
【０２７３】
本実施形態では、第１の書込処理又は第２の書込処理を選択できるようにしている。しかしながら、第２の書込処理を実行せずに、第１の書込処理を実行するデータ書込処理装置であってもよい。
【０２７４】
本実施形態は、本発明に係るデータ読出処理装置やデータ書込処理装置を画像形成装置１に適用した例であるが、本発明に係るデータ読出処理装置やデータ書込処理装置は、パソコン等の情報処理装置に適用することもできる。
【０２７５】
記憶装置に対して読み書きするデータにおいて、サイズが大きい分割データ(何百バイト)とサイズが小さい分割データ(数バイト)とがランダムに混在していることがある。例えば、パソコン等のメモリーから転送されてきたデータを、ＵＳＢメモリーに書き込む場合、ＵＳＢインターフェイス部自身が分割データのサイズを同じにすることができないので、サイズが大きい分割データとサイズが小さい分割データとがランダムに混在しているデータを、ＵＳＢインターフェイス部がＵＳＢメモリーに書き込む必要が生じることがある。
【０２７６】
本発明は、そのような場合に特に有効である。サイズが大きい分割データは、第２の書込処理によってＵＳＢメモリーに書き込むことにより、他のマスターがバスを使用できない期間が長くなることを回避することができる。サイズが小さい分割データは、第１の書込処理によってＵＳＢメモリーに書き込むことにより、分割データの書き込みに要する時間を短くすることができる。サイズが大きい分割データとサイズが小さい分割データとがランダムに混在するデータが大きくなるほど、この効果が大きくなる。
【符号の説明】
【０２７７】
１  画像形成装置
１０  データ書込・読出処理装置
１２  メモリー(記憶装置の例)
１３  メモリーコントローラー(記憶装置制御部の例)
１４  ＵＳＢインターフェイス部(マスターの例)
１５  画像データ圧縮部(他のマスターの例)
１７  調停部(アクセス競合判断部の例)
３１  ディスクリプター読出要求部
３２  分割データ読出要求部
４１  ディスクリプター読出部
４２  第１の分割データ読出部
４３  第１の分割データ転送部
４４  ディスクリプター転送部
４５  第２の分割データ読出部
４６  第２の分割データ転送部
４７  分割データ処理部
４８  読出サイズ判定部
４９  帯域判定部
５１  第１のディスクリプター読出要求部
５２  第２のディスクリプター読出要求部
５３  分割データ書込要求部
５４  書込サイズ判定部
６１  第１のディスクリプター読出部
６２  第１の分割データ書込部
６３  第２のディスクリプター読出部
６４  ディスクリプター転送部
６５  第２の分割データ書込部
６６  分割データ書込処理部
６７  帯域判定部
【図１】
2014182727.tif 000003
【図２】
2014182727.tif 000004
【図３】
2014182727.tif 000005
【図４】
2014182727.tif 000006
【図５】
2014182727.tif 000007
【図６】
2014182727.tif 000008
【図７】
2014182727.tif 000009
【図８】
2014182727.tif 000010
【図９】
2014182727.tif 000011
【図１０】
2014182727.tif 000012
【図１１】
2014182727.tif 000013
【図１２】
2014182727.tif 000014
【図１３】
2014182727.tif 000015
【図１４】
2014182727.tif 000016
【図１５】
2014182727.tif 000017
【図１６】
2014182727.tif 000018
【図１７】
2014182727.tif 000019
【図１８】
2014182727.tif 000020
【図１９】
2014182727.tif 000021
【図２０】
2014182727.tif 000022
【図２１】
2014182727.tif 000023