(57)【要約】【課題】回路規模を増大させること無く、データ転送における破綻の防止を実現できるようにする。【解決手段】データを記憶する前段のバッファメモリ１２０と、前段のバッファメモリ１２０に記憶されているデータを処理するデータ処理回路部１１１と、データ処理回路部１１１で処理されたデータを記憶する後段のバッファメモリ１２１と、各バッファメモリ１２０及び１２１の使用量を監視するバッファメモリ監視部１４０と、バッファメモリ監視部１４０による各バッファメモリの使用量に応じて、データ処理回路部１１１におけるデータ処理のスループットを制御するデータ処理回路制御部１５０とを具備する。【選択図】図１
2008042654.tif 000002
【特許請求の範囲】
【請求項１】
データの転送を行うデータ転送装置であって、
前記データを記憶する第１のバッファメモリと、
前記第１のバッファメモリに記憶されているデータを処理するデータ処理回路部と、
前記データ処理回路部で処理されたデータを記憶する第２のバッファメモリと、
前記第１のバッファメモリ及び前記第２のバッファメモリの使用量を監視するバッファメモリ監視部と、
前記バッファメモリ監視部による各バッファメモリの使用量に応じて、前記データ処理回路部におけるデータ処理のスループットを制御するデータ処理回路制御部と
を有することを特徴とするデータ転送装置。
【請求項２】
前記データ処理回路制御部は、前記バッファメモリ監視部において、前記第１のバッファメモリの使用量が予め設定された上限の閾値を超えており、且つ、前記第２のバッファメモリの使用量が予め設定された閾値未満であると判定された場合に、前記データ処理回路部に対して前記データ処理のスループットを向上する制御を行うことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記データ処理回路制御部は、前記バッファメモリ監視部において、前記第１のバッファメモリの使用量が予め設定された下限の閾値未満であると判定された場合、もしくは、前記第２のバッファメモリの使用量が予め設定された閾値を超えていると判定された場合に、前記データ処理回路部に対して前記データ処理のスループットを低減する制御を行うことを特徴とする請求項１に記載のデータ転送装置。
【請求項４】
前記データ処理回路制御部は、前記データ処理回路部に与えるクロック周波数を変更して、前記データ処理のスループットを制御することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項５】
前記データ処理回路部には、前記データの処理を行う複数のデータ処理部が設けられており、
前記データ処理回路制御部は、前記データの処理を行う前記データ処理部の数を変更して、前記データ処理のスループットを制御することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項６】
前記データ処理回路制御部は、前記データ処理回路部における前記データの処理内容を変更して、前記データ処理のスループットを制御することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項７】
前記データ処理回路制御部は、前記バッファメモリ監視部において、前記第１のバッファメモリの未使用量が前記第２のバッファメモリの未使用量よりも少ない場合に、前記データ処理回路部に対して前記データ処理のスループットを向上する制御を行うことを特徴とする請求項１に記載のデータ転送装置。
【請求項８】
前記データ処理回路制御部は、前記バッファメモリ監視部において、前記第１のバッファメモリの未使用量が前記第２のバッファメモリの未使用量よりも多い場合に、前記データ処理回路部に対して前記データ処理のスループットを低減する制御を行うことを特徴とする請求項１に記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの転送を行うデータ転送装置に関するものである。
【背景技術】
【０００２】
従来、データの転送を円滑に行うために、各データ処理回路部の間にバッファメモリを挿入する方法を用いたデータ転送装置が知られている（例えば、下記の特許文献１参照）。
【０００３】
図４は、従来のデータ転送装置における概略構成の一例を示す図である。
図４に示すデータ転送装置２００において、被処理データは、バス２３０より入力され、データ処理回路部２１０、２１１及び２１２で各種のデータ処理が行われた後、バス２３５から出力されるものとする。
【０００４】
例えば、バス２３０より入力される被処理データが止めることが許されないデータであるとすると、データ処理回路部２１０は、滞りなく当該被処理データを受け付け、処理結果をバス２３１へ出力しなければならない。
【０００５】
しかしながら、この処理結果の出力データ量及びその出力頻度は、常に一定とは限らないので、例えば、次段のデータ処理回路部２１１は、当該被処理データを常に受け取れるものではない。
【０００６】
このような場合、データ処理回路部２１０及び２１１の間に、十分な容量のバッファメモリ２２０を設けて一時的に被処理データを保存し、データ処理回路部２１０のデータ出力を止めることなく、即ちバス２３０からのデータ入力を止めることなく、データ処理回路部２１１が被処理データを受け取るようにする方法がある。
【０００７】
また、例えば、データ処理回路部２１１の出力データを受け取るデータ処理回路部２１２のデータ出力バス２３５が、例えばシステムバス等に接続されるとき、データ処理回路部２１２では、バスアクセス権が獲得できるまでデータの出力を待たなければならない。データ処理回路部２１２が直接データ処理回路２１１を停止させてしまうことは、挿入されたバッファメモリ２２０をより早く溢れさせてしまうことに繋がるため、データ処理回路部２１２の入力側に別のバッファメモリ２２１を設ける方法が知られている。
【０００８】
【特許文献１】特開２００６−１３９４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来の方法では、各データ処理回路部に、それぞれの処理が滞らないための必要十分なバッファメモリを設けることが必要となり、回路規模の増大を招くという問題があった。即ち、従来では各バッファメモリが独立して使用されており、各データ処理回路部のバッファメモリは、常に最大限に利用されているわけではないのに、それぞれにデータ転送破綻（オーバーラン）を起こさない十分な容量のバッファメモリを用意する必要があった。
【００１０】
本発明は上述の問題点にかんがみてなされたものであり、回路規模を増大させること無く、データ転送における破綻の防止を実現するデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は前述した目的を達成するために、データの転送を行うデータ転送装置であって、  前記データを記憶する第１のバッファメモリと、前記第１のバッファメモリに記憶されているデータを処理するデータ処理回路部と、前記データ処理回路部で処理されたデータを記憶する第２のバッファメモリと、前記第１のバッファメモリ及び前記第２のバッファメモリの使用量を監視するバッファメモリ監視部と、前記バッファメモリ監視部による各バッファメモリの使用量に応じて、前記データ処理回路部におけるデータ処理のスループットを制御するデータ処理回路制御部とを有するデータ転送装置等を提供する。
【発明の効果】
【００１２】
本発明によれば、回路規模を増大させること無く、データ転送における破綻の防止を実現することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面を参照しながら、本発明の実施形態について説明する。
【００１４】
図１は、本発明の実施形態に係るデータ転送装置の概略構成を示す図である。
本実施形態のデータ転送装置１００は、データ処理回路部１１０、１１１及び１１２と、各データ処理回路部の間に設けられたバッファメモリ１２０及び１２１と、バッファメモリ監視部１４０と、データ処理回路制御部１５０を有して構成されている。また、本実施形態のデータ転送装置１００には、データ送信装置（不図示）とデータ処理回路部１１０間、各データ処理回路部と各バッファメモリ間、データ処理回路部１１２とデータ受信装置（不図示）間に、バス１３０〜１３５が構成されている。
【００１５】
図１に示すデータ転送装置１００において、被処理データは、データ送信装置（不図示）からバス１３０を介してデータ処理回路部１１０に入力される。そして、データ処理回路部１１０において、所定のデータ処理が行われた後、処理後のデータは、データ処理回路部１１１へ入力され、さらに次のデータ処理が行われる。
【００１６】
ここで、データ処理回路部１１０とデータ処理回路部１１１のスループットを比較して、後者のスループットの方が常に高い場合には、データ処理回路部１１０及び１１１同士を直接接続することができる。しかしながら、一時的にでも前者のスループットの方が後者を上回る場合には、図１に示すように、バッファメモリ１２０を挿入する。
【００１７】
このバッファメモリ１２０を構成することにより、一時的なスループットの差を低減させることができる。更に、このバッファメモリ１２０を使用しても、スループットの差を低減させることができない場合、即ち、一時的にバッファメモリ１２０がフルになってしまうことがある場合には、データ処理回路部１１０の前段に対してビジー信号等をアサートして、被処理データの入力を一時的に停止することが必要になる。
【００１８】
一方、例えば、データ処理回路部１１０の前段に接続されるデータ送信装置がコピー機であり、データ処理回路部１１０に入力される被処理データがスキャナーエンジンからの出力データであった場合について考える。この場合、通常、スキャナーは１ページのスキャン期間を停止することができないため、データ処理回路部１１０は、前段に対してビジー信号等をアサートすることができない。このため、バッファメモリ１２０を、溢れることのない十分な容量を備えたバッファメモリとしなければならない。言い換えれば、データ処理回路部１１０のスループットの平均がデータ処理回路部１１１のスループットの平均と同じ、もしくは低いけれども、一時的にそのスループットが逆転する場合に、この方法が採られる。
【００１９】
データ処理回路部１１１によって所定のデータ処理が行われた後のデータは、データ処理回路部１１２に送られるが、前述のように、これらデータ処理回路部のスループットに一時的な差がある場合、同様にバッファメモリ１２１が挿入される。この場合においても、バッファメモリ１２０がフルになったときに、データ処理回路部１１１からデータ処理回路部１１０に対してビジー信号が出力されないようにするためには、バッファメモリ１２１を、データ処理回路部１１１及びデータ処理回路部１１２の一時的なスループット差を十分に低減できるような容量を備えたバッファメモリとしなければならない。
【００２０】
このようなデータ処理回路部において、各データ処理回路部の間に挿入されたバッファメモリは、例えば、バッファメモリ１２０がフルのときに、必ずしもバッファメモリ１２１もフルであるとは限らない。
【００２１】
しかしながら、従来の方法では、これら２つのバッファメモリが同時にフルになることがないとシミュレーション等により証明された場合においても、前述したように、それぞれのバッファメモリに十分な容量のものを使用しなければならなかった。
【００２２】
本発明ではこの点について鑑み、バッファメモリ監視部１４０及びデータ処理回路制御部１５０を設けるようにした。このバッファメモリ監視部１４０は、バッファメモリ１２０に対してはメモリ使用領域に係る上限の閾値と下限の閾値を設定し、現在のメモリの使用量がこれらの閾値に対してどの程度であるかを監視する。また、バッファメモリ監視部１４０は、バッファメモリ１２１に対してはメモリ使用領域に係る（上限の）閾値を設定し、現在のメモリの使用量がこの閾値に対してどの程度であるかを監視する。
【００２３】
図２は、各バッファメモリにおける閾値とメモリ使用量との関係を示す模式図である。
図２（ａ）〜図２（ｃ）に示すように、前段のバッファメモリ１２０に対してはメモリ使用領域に係る上限の閾値と下限の閾値が設定されており、後段のバッファメモリ１２１に対してはメモリ使用領域に係る（上限の）閾値が設定されている。
【００２４】
バッファメモリ監視部１４０は、各バッファメモリの閾値に対する各バッファメモリの使用量を、クロックサイクル毎に、もしくは任意の時間毎に監視する。
【００２５】
バッファメモリ監視部１４０は、図２（ｂ）に示すように、バッファメモリ１２０の使用量が上限の閾値を超えた場合で、且つ、バッファメモリ１２１の使用量が（上限の）閾値未満である場合に、当該情報をデータ処理回路制御部１５０に出力する。この場合、データ処理回路制御部１５０は、データ処理回路部１１１に対して、データ処理のスループットを高める（向上させる）ための制御を行う。
【００２６】
このデータ処理のスループットを向上させるための第１の方法としては、データ処理回路部１１１に与えるクロック周波数を高くすることが挙げられる。第２の方法としては、データ処理回路部１１１内に同一の処理ブロックを２つ以上構成し、スループットを向上させる場合に、データの処理を行う処理ブロックの数を増加させてこれらを並列処理する方法が挙げられる。更に、第３の方法としては、データ処理回路部１１１の処理アルゴリズムを、よりスループットが高いアルゴリズムに変える等のデータの処理内容を変更する方法が挙げられる。
【００２７】
また、バッファメモリ監視部１４０は、図２（ｃ）に示すように、バッファメモリ１２０の使用量が下限の閾値未満であった場合、もしくは、バッファメモリ１２１の使用量が（上限の）閾値を超えた場合に、当該情報をデータ処理回路制御部１５０に出力する。この場合、データ処理回路制御部１５０は、データ処理回路部部１１１に対して、データ処理のスループットを低減させるための制御を行う。
【００２８】
このデータ処理のスループットを低減させるための方法としては、例えば、前述したスループットを高めるための方法として挙げた処理に対して、反対の処理を施せばよい。具体的には、このデータ処理のスループットを低減させるための第１の方法としては、データ処理回路部１１１に与えるクロック周波数を低くすることが挙げられる。第２の方法としては、データ処理回路部１１１内に同一の処理ブロックを２つ以上構成し、スループットを低減させる場合に、データの処理を行う処理ブロックの数を減少させる方法が挙げられる。更に、第３の方法としては、データ処理回路部１１１の処理アルゴリズムを、よりスループットが低いアルゴリズムに変える等のデータの処理内容を変更する方法が挙げられる。
【００２９】
図３は、本発明の実施形態に係るデータ転送装置の制御方法を示すフローチャートである。
【００３０】
まず、ステップＳ３０１において、バッファメモリ監視部１４０は、前段のバッファメモリ１２０及び後段のバッファメモリ１２１の使用量を監視する。
【００３１】
続いて、ステップＳ３０２において、バッファメモリ監視部１４０は、バッファメモリ１２０の使用量が予め設定された上限の閾値を超えており、且つ、バッファメモリ１２１の使用量が予め設定された（上限の）閾値未満であるか否かを判定する。即ち、ステップＳ３０２では、図２（ｂ）に示す状態であるか否かを判定する。この判定の結果、バッファメモリ１２０の使用量＞上限の閾値であり、且つ、バッファメモリ１２１の使用量＜（上限の）閾値であった場合には、ステップＳ３０３に進む。この際、バッファメモリ監視部１４０は、データ処理回路制御部１５０に対して、各バッファメモリ１２０及び１２１が図２（ｂ）の状態である旨の情報を送信する。一方、これらの条件を満たさない場合には、ステップＳ３０５に進む。
【００３２】
ステップＳ３０３において、データ処理回路制御部１５０は、バッファメモリ監視部１４０からの情報に基づき、データ処理回路部１１１に対して、上述したデータ処理のスループットを高める（向上させる）ための制御を行う。
【００３３】
続いて、ステップＳ３０４において、バッファメモリ監視部１４０は、前段のバッファメモリ１２０及び後段のバッファメモリ１２１の使用量を監視し続ける。
【００３４】
続いて、ステップＳ３０５において、バッファメモリ監視部１４０は、バッファメモリ１２０の使用量が予め設定された下限の閾値未満である、もしくは、バッファメモリ１２１の使用量が予め設定された（上限の）閾値を超えているか否かを判定する。即ち、ステップＳ３０５では、少なくともいずれか一方のバッファメモリ１２０及び１２１が、図２（ｃ）に示す状態であるか否かを判定する。この判定の結果、バッファメモリ１２０の使用量＜上限の閾値である、又は、バッファメモリ１２１の使用量＞（上限の）閾値である場合には、ステップＳ３０６に進む。この際、バッファメモリ監視部１４０は、データ処理回路制御部１５０に対して、少なくともいずれか一方のバッファメモリ１２０及び１２１が図２（ｃ）の状態である旨の情報を送信する。一方、この条件を満たさない場合には、ステップＳ３０１に戻る。
【００３５】
ステップＳ３０６において、データ処理回路制御部１５０は、バッファメモリ監視部１４０からの情報に基づき、データ処理回路部１１１に対して、上述したデータ処理のスループットを低減させる（降下させる）ための制御を行う。その後、処理は、ステップＳ３０１に戻る。
【００３６】
本実施形態では、複数のバッファメモリを連携して使用することができるため、従来では各々のバッファメモリに必要十分な容量を用意しなければならなかったのに対して、複数のバッファメモリを合計して必要な容量分だけ持たせるようにすることが可能である。この場合、バッファメモリの容量を削減することができ、回路規模を増大を抑止することができるとともに、データ転送における破綻の防止を実現することができる。
【００３７】
また、データ処理回路部１１１のスループットを向上させる制御（例えば、クロック周波数を高くすることやその内部における処理ブロックの並列動作を行う等）を行うことは、消費電力を上昇させることにつながるが、各バッファメモリ１２０及び１２１の使用容量に不均衡が生じた場合にのみスループットを向上させるので、消費電力の上昇を最小限に抑えることが可能である。
【００３８】
なお、本実施形態では、注目するデータ処理回路部１１１の前段及び後段に設けられたバッファメモリ１２０及び１２１のメモリの使用量を監視して、当該データ処理回路部１１１のスループットを制御するようにしている。しかしながら、本発明においては、以下に示す形態であってもよい。
【００３９】
即ち、バッファメモリ監視部１４０において、バッファメモリ１２０及び１２１のメモリの未使用量を監視する。この場合、データ処理回路制御部１５０は、前段のバッファメモリ１２０の未使用量が後段のバッファメモリ１２１の未使用量よりも少ない場合に、データ処理回路部１１１に対して、上述したデータ処理のスループットを向上する制御を行う。一方、データ処理回路制御部１５０は、前段のバッファメモリ１２０の未使用量が後段のバッファメモリ１２１の未使用量よりも多い場合に、データ処理回路部１１１に対して、上述したデータ処理のスループットを低減する制御を行う。
【００４０】
前述した本実施形態に係るデータ転送装置を構成する図１の各手段、並びにデータ転送装置の制御方法を示した図３の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００４１】
具体的に、前記プログラムは、例えばＣＤ−ＲＯＭのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
【００４２】
また、コンピュータが供給されたプログラムを実行することにより本実施形態に係るデータ転送装置の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して本実施形態に係るデータ転送装置の機能が実現される場合や、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて本実施形態に係るデータ転送装置の機能が実現される場合も、かかるプログラムは本発明に含まれる。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施形態に係るデータ転送装置の概略構成を示す図である。
【図２】各バッファメモリにおける閾値とメモリ使用量との関係を示す模式図である。
【図３】本発明の実施形態に係るデータ転送装置の制御方法を示すフローチャートである。
【図４】従来のデータ転送装置における概略構成の一例を示す図である。
【符号の説明】
【００４４】
１００  データ転送装置
１１０、１１１、１１２  データ処理回路部
１２０、１２１  バッファメモリ
１３０〜１３５  バス
１４０  バッファメモリ監視部
１５０  データ処理回路制御部
【図１】
2008042654.tif 000003
【図２】
2008042654.tif 000004
【図３】
2008042654.tif 000005
【図４】
2008042654.tif 000006