JP2013196667A - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP2013196667A
JP2013196667A JP2012066677A JP2012066677A JP2013196667A JP 2013196667 A JP2013196667 A JP 2013196667A JP 2012066677 A JP2012066677 A JP 2012066677A JP 2012066677 A JP2012066677 A JP 2012066677A JP 2013196667 A JP2013196667 A JP 2013196667A
Authority
JP
Japan
Prior art keywords
bus
bus master
bandwidth
memory
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012066677A
Other languages
English (en)
Inventor
Yoshikazu Katabe
佳和 形部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012066677A priority Critical patent/JP2013196667A/ja
Priority to US13/798,719 priority patent/US20130254444A1/en
Publication of JP2013196667A publication Critical patent/JP2013196667A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

【課題】バスマスタのメモリ帯域制限設定値を動的に設定する。
【解決手段】各バスマスタの動作状態を示す動作ステータスの前記複数のバスマスタ分の組み合わせ毎に該各バスマスタのメモリ帯域制限設定値を記憶する帯域制限テーブル36に基づき、前記複数のバスマスタの動作状態の監視の結果得られる前記各バスマスタの動作ステータスの組み合わせに対応した前記各バスマスタのメモリ帯域制限設定値を算出する帯域制限保持部38と、複数のバスマスタとメモリとに接続され、複数のバスマスタの動作状態の監視の結果得られるメモリ帯域利用率が前記メモリ帯域制限設定値に達したバスマスタのデータ転送を制限するバス調停部30と、前記算出された前記各バスマスタの前記メモリ帯域制限設定値を前記バス調停部に動的に設定する制御手段と、を備えることを特徴とする画像処理装置が提供される。
【選択図】図1

Description

本発明は、メモリへのデータ転送を調整可能な画像処理装置に関する。
プリンタ等の画像処理装置には、画像処理をハードウエアで行うための特定用途向け半導体集積回路(ASIC:Application Specific Integrated Circuit)が実装されている。
メインメモリをASIC等のカスタムチップに集約した画像処理装置では、さまざまな転送がメモリに集中する。転送の例としては、「エンジン転送」、「画像処理転送」、「CPU転送」、「IO転送」等が挙げられる。「エンジン転送」は、スキャナやプロッタなどに代表され、ライン単位での等時性が要求される。「画像処理転送」は、HDDや圧縮伸長や回転に代表され、ページ単位での等時性が要求される。「CPU転送」では、システムとしての性能が要求される。「IO転送」は、ネットワークやUSBなどに代表され、外部IF(InterFace)の性能が要求される。
メモリ側の利用可能帯域は有限である。このため、メモリアービタあるいはメモリコントローラにて、転送に優先順位だけでなく帯域制限機能を付加することによって、各々の転送の要求性能を満たす技術が考えられ、既に知られている。
例えば、特許文献1には、優先順位が低いペリフェラル転送の帯域を確保する目的で、バス調停部に各転送元のメモリのアクセス時間を測定するカウンタを設け、各々の転送に対して測定されたカウンタ値と所定の設定値との比較に基づいて、「エンジン転送」や「画像処理転送」等の各転送元の優先順位を変更したり、アクセス要求を受け付けないようにしたりする構成が開示されている。
しかし、今までの帯域制限付きのメモリコントローラでは、静的に帯域制限を設けているにすぎなかった。具体的に説明すると、例えばエンジン転送には予め所定の帯域制限が設定されているため、エンジン転送を行っていない場合でもそのエンジン転送分の帯域は、エンジン転送以外の転送で利用することができなかった。これによれば、エンジン転送分のメモリ帯域を無駄にしており、データの転送状況に応じてメモリ帯域を有効に利用しきれていないという問題があった。
例えば、特許文献1では、CPU転送のカウンタが設定値に達するとCPUのアクセス要求は受け付けられない。その結果、メモリ帯域に余裕があるにも関わらず、そのメモリ帯域を利用できなくなり、メモリ帯域を有効に使い切れていないという問題が生じていた。
これに対して、エンジン転送、画像処理転送、CPU転送、IO転送が一つのメインメモリに集中する画像処理装置で、そのメモリ帯域を今まで以上に効率的に利用し、転送処理時間の短縮や効率化を図ることが求められていた。
上記課題に鑑み、本発明の目的とするところは、複数のバスマスタのメモリ帯域制限設定値を動的に設定可能な画像処理装置を提供することにある。
上記課題を解決するために、本発明のある観点によれば、
複数のバスマスタとメモリとに接続され、メモリへの画像データを含むデータの転送を制御する画像処理装置であって、
各バスマスタの動作状態を示す動作ステータスの前記複数のバスマスタ分の組み合わせ毎に該各バスマスタのメモリ帯域制限設定値を記憶する帯域制限テーブルに基づき、前記複数のバスマスタの動作状態の監視の結果得られる前記各バスマスタの動作ステータスの組み合わせに対応した前記各バスマスタのメモリ帯域制限設定値を算出する帯域制限保持部と、
複数のバスマスタとメモリとに接続され、複数のバスマスタの動作状態の監視の結果得られるメモリ帯域利用率が前記メモリ帯域制限設定値に達したバスマスタのデータ転送を制限するバス調停部と、
前記算出された前記各バスマスタの前記メモリ帯域制限設定値を前記バス調停部に動的に設定する制御手段と、
を備えることを特徴とする画像処理装置が提供される。
本発明によれば、複数のバスマスタのメモリ帯域制限設定値を動的に設定し、画像処理装置のメモリ効率を高めることができる。
一実施形態に係る画像処理装置(ASIC)のハードウエア構成図。 一実施形態に係るバス調停部の内部構成図。 一実施形態に係る帯域制限保持部の内部構成図。 一実施形態に係る帯域制限テーブルの内部構成図。 一実施形態に係る帯域制限制御の一例を示した図。 一実施形態に係る各バスマスタからの要求信号の一例を示した図。 一実施形態に係る画像転送制御処理を示すフローチャート。 一実施形態に係る画像処理装置の起動時処理を示すフローチャート。
以下、本発明の好適な実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[全体構成]
ます、本発明の一実施形態に係る画像処理装置について、図1を参照しながら説明する。画像処理装置は、複数のバスマスタとメモリとに接続され、メモリへの画像データを含むデータの転送を制御し、所定の場合にデータ転送を抑止する。
図1は、本実施形態に係る画像処理装置に内蔵されるコントローラASIC10を示す。本実施形態に係る画像処理装置の一例としては、プリンタやスキャナが挙げられる。ASIC(Application Specific Integrated Circuit)とは、ある算出の用途のために設計、製造される専用LSI(Large Scale Integration)チップを意味し、カスタムチップなどとも呼ばれる。
コントローラASIC10は、バス調停部30と、メモリ32を有するメモリコントローラ34と、帯域制限テーブル36を保持する帯域制限保持部38と、割り込み制御部40と、複数のバスマスタとを有する。
(バス調停部)
バス調停部30は、複数のバスマスタとメモリ32とに接続され、メモリ32とのデータ転送を調停する。本実施形態では、バスにおいて通信を開始できるバスマスタを複数持つ仕組みを有する(マルチバスマスタ)。バスの通信をCPUのみから開始するシングルバスマスタ機能のみ有する装置では、演算中などでCPUがバスへアクセスしていない間、バスは停止している。複数のバスマスタを持つことで、CPUに頼らなくてもデータが転送可能となり,バスを効率良く使用できる。複数のバスマスタが同時にバスにアクセスする場合は,バス調停部30で調停する。
(バスマスタ群)
本実施形態では、複数のバスマスタがバス調停部30を経由してメモリコントローラ34内のメモリ32にデータを転送する。全てのデータはメモリ32を経由して外部から内部へ又は内部から外部へ転送される。
エンジン転送用のバスマスタ(エンジンバスマスタ22)はスキャナやプロッタ等のエンジン21に接続される。エンジンバスマスタ22は、ライン等時性を満たす必要があるバスマスタである。エンジン転送では、その機種特有の読み取り/書き込みのための機械(メカ)的な要件によって必要なメモリ帯域が決まる。必要な帯域を保証できない場合でも機械的動作(メカ動作)は進むので、その結果、異常画像となってしまう。図1では、エンジンバスマスタ22の動作状況は、「VI0」、「V01」、「V02」、「V03」、「V04」の各動作状況の組み合わせとして示される。
画像処理転送用のバスマスタ(画像処理バスマスタ24)は、HDD23や圧縮伸長などに接続される。画像処理バスマスタ24は、ページ等時性を満たす必要があるバスマスタである。画像処理転送では、その機種の速度(毎分**枚)のスペックによって必要なメモリ帯域が決まる。また、通常時は利用しない画像回転や画像編集などのオプション動作が課されると、その分必要なメモリ帯域は多くなる。必要な帯域を保証できない場合、読み取り/書き込みのページ間隔が伸びるのでその機械の速度が低下する。図1では、画像処理バスマスタ24の動作状況は、「HDD」、「ENC」、「DEC」、「ROT」、「EDT」の各動作状況の組み合わせとして示される。
CPU転送用のバスマスタ(CPUバスマスタ26)は、CPU(Central Processing Unit)25やGPU(Graphics Processing Unit)などに接続される。CPUバスマスタ26は、その画像処理装置の処理性能を左右するバスマスタである。CPU転送は、ソフトウエア実装によるため、必要な帯域を定義することは難しい。重い処理を行うために、CPUは無尽蔵にメモリ帯域を必要とする場合がある。必要な帯域を保証できない場合、機械の速度が低下する。図1では、CPUバスマスタ26の動作状況は、「CPUIF」、「GPU」の各動作状況の組み合わせとして示される。
IO(Input Output)転送用のバスマスタ(IOバスマスタ28)は、ネットワーク27a、USB27b、SDカード27c、その他のオプショナル機能(オプション27d)に接続される。IOバスマスタ28は、外部インターフェイスIFの転送性能を成立させるためのバスマスタである。IO転送では、外部デバイスとのデータ転送にエラーが生じないために、必要なメモリ帯域を維持する必要がある。数多くのIOデバイスが接続される場合は、個々の必要帯域は少なくても、必要なメモリ帯域は多くなる。必要な帯域を保証できない場合、外部インターフェイスIFの転送性能は低下する。図1では、IOバスマスタ28の動作状況は、「MAC」、「USB」、「SD」、「PCI」の各動作状況の組み合わせとして示される。
なお、図1では図示を一部省略しているが、CPU25からのレジスタアクセス(レジスタ設定)は、コントローラASIC10内の全てのレジスタに対してアクセス可能とすることができる。また、同様に図1には図示していないが、帯域制限テーブル36には、全てのバスマスタの動作状況が入力されている。
(バス調停部の帯域制限)
バス調停部30は、バスマスタ毎にデータ転送をカウントするカウンタを持っている。カウンタは、直近の1000クロックを測定範囲とした場合、直近の1000クロックのうち何クロックの間データ転送を行っていたかを測定する。これにより、バスマスタ毎にデータ転送時のメモリ帯域利用率を**.*%の精度で算出できる。
また、バス調停部30は、バスマスタ毎にCPU25で設定可能な帯域制限レジスタ31を持っており、バスマスタ毎に使用可能な上限帯域として、各バスマスタのメモリ帯域制限設定値を設定できる。具体的には、帯域制限レジスタ31には、エンジンバスマスタ用の帯域制限設定値31a、画像処理バスマスタ用の帯域制限設定値31b、CPUバスマスタ用の帯域制限設定値31c、IOバスマスタ用の帯域制限設定値31dが設定される。
したがって、バス調停部30は、各カウンタへの転送のカウント値と帯域制限レジスタ31への各帯域制限設定値とによって、あるバスマスタのデータ転送がメモリの上限帯域に達すると、そのバスマスタからの転送要求を受け付けなくする。これは転送カウンタがメモリの上限帯域を下回らない限り継続する。
(バス調停部の動的制御)
CPU25は、バス調停部30内の帯域制限レジスタ31を動的に制御することにより、他のバスマスタが動作していない又はほとんど動作していない間、動作しているバスマスタがメモリ帯域を有効に利用できるようにする。動作していなかったバスマスタが再び動作するときには、帯域制限レジスタ31の各バスマスタの帯域制限設定値を各バスマスタの通常時の帯域配分の設定に戻すように再制御される。例えば、「エンジン転送」が発生していない間、エンジン転送に割り当てられていた帯域を、「画像処理転送」や「CPU転送」にて有効に利用できるように、帯域制限レジスタ31の各バスマスタの帯域制限設定値31a〜31dを変更する。その後、再び「エンジン転送」が発生した場合には、帯域制限レジスタ31の各帯域制限設定値を通常時の帯域配分の設定に戻して、「エンジン転送」の帯域を確保する。
通常、CPU25が帯域制限レジスタをソフトウエアにより制御することによってメモリ帯域の制御を行う。しかしながら、CPU25によるソフトウエア制御では制御が煩雑になる。障壁となっているソフト制御の煩雑さの例を2点挙げる。まず1点目として、バスマスタ数が多い場合、各バスマスタの動作状況の組み合わせはバスマスタ数の2のべき乗に比例する。このため、各バスマスタの動作状況の組み合わせ毎に帯域制御レジスタの帯域制限設定値を管理することは難しい。次に2点目として、CPU上で動くコピーやプリンタなどのアプリケーションは、バスマスタの起動を意識していない。このため、各ソフトウエアによるアプリケーション制御で帯域制限レジスタを制御することは難しい。
上記制御の煩雑さを回避するために、本実施形態では、コントローラASIC10の回路上に帯域制限テーブル36を持った帯域制限保持部38を設ける。コントローラASIC10は、帯域制限テーブル36に予め定められたメモリ帯域制限設定値に基づき、帯域制限レジスタ31をハードウエアにより制御することによってメモリ帯域の制御を行う。
したがって、帯域制限テーブル36は、予めCPU25により設定された全バスマスタの動作状況に応じた帯域制限設定値を保持している。帯域制限保持部38は、バスマスタの動作状況に従い帯域制限レジスタ31の帯域制限設定値を変更する。その際、割り込み制御部40は、CPU25に対して割り込み信号を発生する。CPU25は、高速にレスポンスするために、予め割り込み信号に対する優先度を高くしている。よって、CPU25は、割り込み信号により帯域制限レジスタ31の設定変更が要求されると、帯域制限テーブル36に保持されている、複数のバスマスタの動作状況に応じた帯域制限設定値を読み出し、それをバス調停部31の帯域制限レジスタ31に設定する(レジスタ設定)。
図2を参照しながら、バス調停部30について詳述する。図2は、バス調停部30の内部構成を示す。バス調停部30は、帯域制限レジスタ31、有効転送カウンタ33、帯域制限判定部35及び有効転送カウンタ値シフトレジスタ37をバスマスタ毎に有する。
帯域制限レジスタ31には、図1のエンジンバスマスタの帯域制限設定値31a、画像処理バスマスタの帯域制限設定値31b、CPUバスマスタの帯域制限設定値31c、IOバスマスタの帯域制限設定値31dがCPU25により設定される。
有効転送カウンタ33は、バスマスタ毎のデータ転送をカウントする。本実施形態では、有効転送カウンタ33は100クロック間の有効転送クロック数(すなわち、要求クロック数及び許可のクロック数の合計)をカウントする。
有効転送カウンタ値シフトレジスタ37(FIFO:First In First Out)は、有効転送カウンタ33による有効転送クロック数のカウント結果を直近の10回分だけ保持する。
帯域制限判定部35は、メモリ32の帯域制限が必要であるかを判定する。帯域制限判定部35は、帯域制限が必要と判定すると、バスマスタ側からのデータ転送要求信号、メモリコントローラ34側からの転送許可信号を無効とする(マスクする)。これにより、そのバスマスタからの転送は成立しなくなる。バス調停部30は、このシフトレジスタ内の有効転送クロック数をトータルの1000クロックで割ることによりメモリ帯域利用率を求めることができる。帯域制限レジスタ31には、メモリ32の帯域制限が必要かを判定するための条件となるメモリ帯域利用率である帯域制限設定値が設定される。無制限の場合(メモリ32の帯域制限が不要の場合)には、100%を設定すればよい。
このように、バス調停部30は、複数のバスマスタの動作状態の監視の結果から各バスマスタのメモリ帯域利用率を算出し、算出された各バスマスタのメモリ帯域利用率のうち、CPU25により帯域制限レジスタ31に設定された各バスマスタのメモリ帯域制限設定値に達したメモリ帯域利用率のデータ転送を無効とする。
以上に説明したように、バス調停部30に設定するメモリ帯域制限設定値を各バスマスタの動作状況に応じて動的に変更することにより、画像処理装置のメモリ利用効率を高めることができる。
(帯域制限保持部/帯域制限テーブル)
本実施形態では、帯域制限保持部38は、帯域制限テーブル36を保持する。図3は、帯域制限保持部38の内部構成を示す。バスマスタ動作状況を示す入力信号がバスマスタ毎に帯域制限保持部38に入力される。例えば、エンジンバスマスタ22では、「VI0」、「V01」、「V02」、「V03」、「V04」の各動作状況を示す入力信号が、随時帯域制限保持部38に入力される。入力信号に応じて、帯域制限テーブル36は、バスマスタの動作状況を示す動作ステータスを更新する。
図4は、帯域制限テーブル36に記憶された情報の一例を示す。帯域制限テーブル36には、各バスマスタの動作状態を示す動作ステータス36aが複数のバスマスタ分記憶される。帯域制限テーブル36には、動作ステータス36aが複数のバスマスタ分組み合わされた組み合わせ毎に各バスマスタのメモリ帯域制限設定値36bを記憶する。メモリ帯域制限設定値36bは、メモリ帯域の全体を100%とした場合、バスマスタ動作状況(動作ステータス36a)の組み合わせ毎の帯域制限設定値を示す。
1行目〜5行目の各バスマスタの動作状態の組み合わせに係る帯域制限設定値36bと具体的動作環境との関係は以下の通りである。
1行目の帯域制限設定値 動作環境
エンジン20%,画像処理40%,CPU30%,IO10%:通常時
2行目の帯域制限設定値
エンジン0%,画像処理50%,CPU40%,IO10% :紙間
3行目の帯域制限設定値
エンジン0%,画像処理0%,CPU70%,IO30% :エンジンオフ時
4行目の帯域制限設定値
エンジン0%,画像処理0%,CPU100%,IO0% :アイドル時
5行目の帯域制限設定値
エンジン15%,画像処理35%,CPU40%,IO10%:プリンタ動作時
バスマスタの動作の有無の組み合わせは無限に近くあるので、帯域制限設定値36bのデフォルト値を設定することができる。例えば、図4の帯域制限テーブル36の最終行には、下記1行目〜5行目の動作状態以外の場合の帯域制限設定値36bが、以下のようにデフォルト値として設定されている。
最終行の帯域制限設定値
エンジン20%,画像処理40%,CPU30%,IO10%:デフォルト
なお、以上の帯域制限設定値36bは一例であり、他の値をとることも可能である。また、帯域制限設定値36bは、学習可能であり、学習の結果に応じてより適正な値に設定を変更され得る。
帯域制限保持部38は、複数のバスマスタの動作状態の監視の結果、入力信号に基づきその時点での動作状況を示す各バスマスタの動作ステータスの組み合わせを取得する。そして、帯域制限保持部38は、帯域制限テーブル36に基づき、取得した動作ステータスの組み合わせに対応する各バスマスタのメモリ帯域制限設定値を算出する。所望の組み合わせに対応する帯域制限設定値36bの情報が記憶されていない場合、帯域制限保持部38は、デフォルト値を帯域制限設定値36bとして算出する。
このようにして、帯域制限保持部38は、各バスマスタの動作ステータス36aの組み合わせ毎の帯域制限設定値36bを算出し、算出された帯域制限設定値36bに変化が発生すると割り込みを発生する。割り込み制御部40は、割り込み信号をCPU25に通知する。
CPU25は、CPUのインターフェイスI/F(レジスタIF)を有し、帯域制限テーブル36から、算出された帯域制限設定値36bを読み出す。また、CPU25は、帯域制限テーブル36の初期化のために、帯域制限テーブル36に初期情報を書き込むことができる。
また、別の一例として、CPU25による割り込み処理時間や帯域制限テーブル36の読み出し時間を削減するために、割り込みではなく、CPU25のインターフェイスI/F(CPUIF)に直接、帯域制限レジスタ31への書き込みのためのアクセス(レジスタライトアクセス)を発生させることもできる。この場合、ブロック図のCPU25のインターフェイスI/Fモジュール(CPUIF)には、CPU25からのレジスタアクセスと帯域制限保持部38からのレジスタアクセスを選択する機構が加わる。
また、別の一例として、CPU25は、帯域制限テーブル36の初期化時、帯域制限テーブル36への書き込み(テーブルライト)をレジスタに書き込む(レジスタライト)のではなく、メモリのようにバースト転送することもできる。これにより、帯域制限テーブル36を初期化するための時間を短縮することができ、ユーザが画像処理装置を利用できるまでの時間を短縮できる。
また、別の一例として、帯域制限テーブル36の容量を削減するために、帯域制限保持部38中にバスマスタ動作状況(動作ステータス36a)と帯域制限設定値36bとを可逆圧縮・伸長する機構を導入することもできる。この場合、各バスマスタの動作ステータス36aの組み合わせは可逆圧縮された符号として帯域制限テーブル36に記憶される。これによれば、帯域制限テーブル36のデータ量を圧縮することができるため、メモリの削減が可能となり、コスト削減を図ることができる。また、帯域制限保持部38は、圧縮符号化された帯域制限設定値36bを有することもできる。この場合、バスマスタ動作状況(動作ステータス36a)を圧縮して帯域制限テーブル36内で一致するものを選択し、圧縮された帯域制限設定値36bを伸長してCPU25側へ返す。この場合、バスマスタ動作状況(動作ステータス36a)と帯域制限設定値36bとは必ずしも同じ圧縮方式である必要はない。
なお、CPU25は、帯域制限保持部38により算出された各バスマスタのメモリ帯域制限設定値をバス調停部40に動的に設定する制御手段の一例である。制御手段は、バス調停部30に対するレジスタアクセスバスであってもよく、該レジスタアクセスバスとCPU25からのレジスタアクセスバスとを選択的にアクセス可能である。これによれば、ハードウエアにより処理が行われるため、CPU25によるソフトウエア制御に比べて、メモリ帯域制限設定値をバス調停部40に動的に設定する処理スピードを高速化することができる。これにより、装置性能の向上を図ることができる。
(ライン周期信号を加味した帯域制限制御)
次に、別の一例として、ライン周期信号を加味した帯域制限制御について、図5を参照しながら説明する。エンジン転送は1ページの画像を転送する際にライン転送を繰り返すため、エンジン転送の帰線期間中、エンジンバスマスタの転送は発生しない。このため、帯域制限保持部38中の帯域制限判定部35に、エンジンバスマスタの転送が発生しないエンジン転送の帰線期間を検出する機能を有することもできる。
具体的には、バスマスタの1ライン転送終了時点Aから次のラインのライン周期信号発生時点Bまでを起算期間として、バスマスタ動作信号とアンド(AND)を取る。このようにしてエンジンバスマスタの転送が発生しないエンジン転送の帰線期間を検出し、検出信号を帯域制限保持部38(帯域制限判定部35)へのバスマスタ動作信号として出力する。
帯域制限保持部38は、バスマスタ動作信号を入力すると、エンジン転送のバスマスタによるデータのライン転送の帰線期間中、エンジン転送のバスマスタ(エンジンバスマスタ22)の動作ステータスをオフと判定する。これにより、エンジンバスマスタ22の転送が発生しないエンジン転送の帰線期間には、エンジンバスマスタ22用に確保されたメモリ帯域を他のバスマスタに開放して、他のバスマスタに利用させることによりメモリの有効利用を図ることができる。この結果、装置全体の処理速度を向上させることができる。
[画像転送動作]
次に、画像処理装置が画像転送を行うときの動作について、図6〜図8を参照しながら説明する。図6は、本実施形態に係る各バスマスタからの要求信号の一例を示す。図7は、本実施形態に係る画像転送制御処理を示すフローチャートである。図8は、本実施形態に係る画像処理装置の起動時処理を示すフローチャートである。
まず、図6を参照しながら、画像処理装置が画像転送を行うときの動作を簡単に説明する。画像処理装置が画像転送を行うとき、CPU25は複数のバスマスタを起動する。起動されたバスマスタは、メモリ32からデータをリード(読み込み)したり、あるいは外部からの入力データに所定の処理を施してメモリ32へライト(書き込み)したり、あるいはデータをメモリ32を介して外部へ出力する。
データ処理手順に従ってデータフローが発生するため、一連の動作の間、バス調停部30へ通知されるバスマスタからのデータ転送要求は常に同じではなく、図6に一例を示したようにデータ転送要求は随時変化する。
次に、図7を参照しながら、画像転送制御処理について説明する。画像転送制御処理が開始されると、CPU25は、複数のバスマスタを起動し、複数のバスマスタのそれぞれの制御とバス調停部30の制御とを並行に処理する。図7のフローチャートの左から3つのラインには、CPU25によるV01、VI0、**の各バスマスタの制御が図示され、最も右のラインには、CPU25によるバス調停部30の制御が図示されている。
CPU25は、通常のバスマスタの起動及び終了処理と、バス調停部30の制御処理とを並行して行う。具体的には、CPU25は、通常のバスマスタの設定処理(S70,S76,S82)を制御後、DMA(Direct Memory Access)起動処理(S72,S78,S84)を制御し、更に割り込み信号に基づく終了処理(S74,S80,S86)と、バス調停部30の制御(S88,S90,S92,S94)を並行して行う。
バス調停部30の制御(S88,S90,S92,S94)について説明する。帯域制限保持部38は、常に各バスマスタの動作状況を監視し(図3参照)、帯域制限テーブル36に基づき算出された帯域制限設定値に変化があると、割り込みを発生する。
CPU25は、帯域制限設定値に変化があり、割り込み信号が発生されると(ステップS88)、帯域制限テーブル36に基づき算出された帯域制限設定値を帯域制限テーブル36から読み込み(ステップS90)、読み込んだ帯域制限設定値をバス調停部30の帯域制限レジスタ31にライトする(ステップS92)。CPU25は、すべてのDMA転送が終了したかを判定し(ステップS94)、すべてのDMA転送が終了するまでステップS88,S90,S92,S94の処理を繰り返し、すべてのDMA転送が終了したら画像転送制御処理を終了する。これにより、CPU25は、割り込み処理を高速に実行することができる。
バス調停部30は、新たに設定された帯域制限レジスタ31の帯域制限設定値に基づいて、各バスマスタからのデータ転送を制限する。
なお、CPU25は、電源オン時や省エネ復帰時にシステムを初期化する際、帯域制限テーブル36の初期化を行う。初期化のためのデータはROMやHDDなどの不揮発媒体に格納されており、そこから読み出して帯域制限テーブル36に設定する。このようにCPU25が帯域制限テーブル36を初期化する際、CPU25は、各バスマスタのメモリ帯域制限設定値をメモリ領域からDMA転送することができる。これにより、帯域制限テーブル36の初期化時間を短縮することができる。
[効果]
以上、本実施形態に係る画像処理装置は、帯域制限テーブル36と、帯域制限保持部38と、バス調停部30の帯域制限機能と、CPU25により随時行われる帯域制限設定制御とを有する。そして、本実施形態に係る画像処理装置は、バス調停部30の各バスマスタの帯域制限の条件となる帯域制限レジスタ31への帯域制限設定値の設定において以下の特徴を有する。
すなわち、バス調停部30は、バスマスタの組み合わせ毎の各バスマスタの帯域制限設定値を帯域制限レジスタ31に保持する。そして、バス調停部30は、複数のバスマスタの動作状況を常時監視し、複数のバスマスタの動作状況に応じて帯域制限設定値の変更が必要になったとき、随時、帯域制限レジスタ31が動的に変更される。
これによれば、メモリ32の利用可能帯域は常に100%近くになり、メモリの帯域利用率を常に100%近くに保持し続けることができる。これにより、画像処理装置の処理速度の向上、操作レスポンスの向上、外部デバイスの転送速度の向上などの効果を得ることができ、画像処理装置を利用するユーザの利便性を高めることができる。
(変形例)
最後に取り得る変形例について簡単に説明する。上記実施形態の変形例では、帯域制限保持部38は、帯域制限テーブル36に各バスマスタの優先順位情報を記憶してもよい。この場合、バス調停部30は、帯域制限テーブル36に記憶された優先順位情報に基づき、優先順位の高いバスマスタのデータ転送を優先順位の低いバスマスタのデータ転送より優先するようにメモリ帯域制限を調整してもよい。これにより、バスマスタの動作状況に応じて優先順位を変更できるため、一般に優先順位が低いデバイスの転送性能を向上させる等、デバイスの転送性能の適正化を測ることができる。
<おわりに>
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明の技術的範囲はかかる例に限定されない。本発明の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属する。
例えば、帯域制限テーブルは、帯域制限保持部に保持されてもよいし、帯域制限保持部以外に保持されてもよい。また、帯域制限テーブルの情報は、ASIC内の記憶領域に記憶されていることが好ましいが、ASIC外の記憶領域に記憶されてもよい。
また、各バスマスタは、バス調停部30に設定された各バスマスタのメモリの帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するバースト長をデフォルト値よりも低くしてもよい。これにより、1バスマスタあたりの帯域が低下しているときに、複数のバスマスタ間で残されたメモリ帯域をより均等にシェアすることができる。これにより、特定のバスマスタのみが過度にメモリ帯域を制限されることを避け、極端な性能劣化を回避できる。
また、各バスマスタは、バス調停部30に設定された各バスマスタのメモリ帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するリクエスト数(アウトスタンディングリクエスト数)の上限をデフォルト値よりも低くしてもよい。これによっても、1バスマスタあたりの帯域が低下しているときに、複数のバスマスタ間で残されたメモリ帯域をより均等にシェアすることができる。これにより、特定のバスマスタのみが過度にメモリ帯域を制限されることを避け、極端な性能劣化を回避できる。
なお、CPU25により実行される各機能を実現するためのプログラムは、はじめから図示しないコンピュータに備えられた図示しないROMあるいはHDD等の記憶手段に格納されてもよいし、記録媒体であるCD−ROMあるいはフレキシブルディスク,SRAM,EEPROM,メモリカード等の不揮発性記録媒体(メモリ)に記録され、メモリに記録されたプログラムをコンピュータにインストールしてCPU25に実行させるか、又はCPU25にそのメモリからこのプログラムを読み出して実行させてもよい。さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードすることもできる。
10 コントローラASIC
22 エンジンバスマスタ
24 画像処理バスマスタ
26 CPUバスマスタ
28 IOバスマスタ
30 バス調停部
31 帯域制限レジスタ
32 メモリ
33 有効転送カウンタ
34 メモリコントローラ
35 帯域制限判定部
36 帯域制限テーブル
36a 動作ステータス(バスマスタ動作状況)
36b 帯域制限設定値
37 有効転送カウンタ値
38 帯域制限保持部
40 割り込み制御部
特開2005−56239号公報

Claims (10)

  1. 複数のバスマスタとメモリとに接続され、メモリへの画像データを含むデータの転送を制御する画像処理装置であって、
    各バスマスタの動作状態を示す動作ステータスの前記複数のバスマスタ分の組み合わせ毎に該各バスマスタのメモリ帯域制限設定値を記憶する帯域制限テーブルに基づき、前記複数のバスマスタの動作状態の監視の結果得られる前記各バスマスタの動作ステータスの組み合わせに対応した前記各バスマスタのメモリ帯域制限設定値を算出する帯域制限保持部と、
    複数のバスマスタとメモリとに接続され、複数のバスマスタの動作状態の監視の結果得られるメモリ帯域利用率が前記メモリ帯域制限設定値に達したバスマスタの画像データを含むデータの転送を制限するバス調停部と、
    前記算出された前記各バスマスタの前記メモリ帯域制限設定値を前記バス調停部に動的に設定する制御手段と、
    を備えることを特徴とする画像処理装置。
  2. 前記制御手段は、前記バス調停部に対するレジスタアクセスバスであり、該レジスタアクセスバスとCPUからのレジスタアクセスバスとを選択的にアクセス可能であることを特徴とする請求項1に記載の画像処理装置。
  3. 前記制御手段は、前記帯域制限テーブルを初期化するときバースト転送することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記帯域制限保持部は、前記複数のバスマスタのうちのエンジン転送のバスマスタによるデータのライン転送の帰線期間においてエンジン転送のバスマスタの動作ステータスをオフと判定することを特徴とする請求項1〜3のいずれか一項に記載の画像処理装置。
  5. 前記帯域制限テーブルに記憶される各バスマスタの動作ステータスの組み合わせは可逆圧縮された符号であることを特徴とする請求項1〜4のいずれか一項に記載の画像処理装置。
  6. 前記帯域制限保持部は、圧縮符号化された帯域制限設定値を有することを特徴とする請求項1〜5のいずれか一項に記載の画像処理装置。
  7. 前記制御手段は、前記帯域制限テーブルを初期化するとき、前記各バスマスタのメモリ帯域制限設定値をメモリ領域からダイレクトメモリアクセスにより転送することを特徴とする請求項1〜6のいずれか一項に記載の画像処理装置。
  8. 前記帯域制限保持部は、前記帯域制限テーブルに前記各バスマスタの優先順位情報を記憶し、
    前記バス調停部は、前記帯域制限テーブルに記憶された優先順位情報に基づき、優先順位の高いバスマスタのデータ転送を優先順位の低いバスマスタのデータ転送より優先することを特徴とする請求項1〜7のいずれか一項に記載の画像処理装置。
  9. 前記各バスマスタは、前記バス調停部に設定された前記各バスマスタのメモリ帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するバースト長をデフォルト値よりも低くすることを特徴とする請求項1〜8のいずれか一項に記載の画像処理装置。
  10. 前記各バスマスタは、前記バス調停部に設定された前記各バスマスタのメモリ帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するリクエスト数の上限をデフォルト値よりも低くすることを特徴とする請求項1〜9のいずれか一項に記載の画像処理装置。
JP2012066677A 2012-03-23 2012-03-23 画像処理装置 Pending JP2013196667A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012066677A JP2013196667A (ja) 2012-03-23 2012-03-23 画像処理装置
US13/798,719 US20130254444A1 (en) 2012-03-23 2013-03-13 Image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012066677A JP2013196667A (ja) 2012-03-23 2012-03-23 画像処理装置

Publications (1)

Publication Number Publication Date
JP2013196667A true JP2013196667A (ja) 2013-09-30

Family

ID=49213425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012066677A Pending JP2013196667A (ja) 2012-03-23 2012-03-23 画像処理装置

Country Status (2)

Country Link
US (1) US20130254444A1 (ja)
JP (1) JP2013196667A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045089A (ja) * 2015-08-24 2017-03-02 富士通株式会社 帯域制御回路、演算処理装置、および装置の帯域制御方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6175794B2 (ja) 2013-02-19 2017-08-09 株式会社リコー データ処理装置およびデータ処理方法
CN108885553B (zh) * 2016-01-22 2022-12-27 索尼互动娱乐股份有限公司 模拟向后兼容的传统总线行为
JP6720824B2 (ja) * 2016-10-17 2020-07-08 コニカミノルタ株式会社 画像処理装置、画像処理装置の制御方法、およびプログラム
JP6886301B2 (ja) * 2017-01-26 2021-06-16 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
KR102649351B1 (ko) * 2018-11-06 2024-03-20 삼성전자주식회사 세분화된 상태들에 기초한 그래픽스 프로세서 및 그래픽스 처리 방법
CN111078601B (zh) * 2019-12-18 2022-11-15 成都国科微电子有限公司 一种总线带宽使用峰值调整方法及装置
CN114546908A (zh) * 2022-02-22 2022-05-27 杭州中天微***有限公司 总线带宽自适应单元、方法及芯片

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US7421509B2 (en) * 2001-09-28 2008-09-02 Emc Corporation Enforcing quality of service in a storage network
US6826640B1 (en) * 2003-06-04 2004-11-30 Digi International Inc. Bus bandwidth control system
JP4711835B2 (ja) * 2006-01-17 2011-06-29 株式会社エヌ・ティ・ティ・ドコモ 送信装置および受信装置並びにランダムアクセス制御方法
JP4953789B2 (ja) * 2006-12-07 2012-06-13 キヤノン株式会社 画像処理装置、記録装置、画像処理方法、プログラム、および記憶媒体
US8248425B2 (en) * 2009-09-16 2012-08-21 Ncomputing Inc. Optimization of memory bandwidth in a multi-display system
JP5591022B2 (ja) * 2010-08-16 2014-09-17 オリンパス株式会社 バス帯域モニタ装置およびバス帯域モニタ方法
KR101678571B1 (ko) * 2010-10-05 2016-11-22 삼성전자주식회사 컴퓨팅 시스템의 부팅방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045089A (ja) * 2015-08-24 2017-03-02 富士通株式会社 帯域制御回路、演算処理装置、および装置の帯域制御方法

Also Published As

Publication number Publication date
US20130254444A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
JP2013196667A (ja) 画像処理装置
CN109634883B (zh) 主从式***、指令执行方法与数据存取方法
RU2627100C2 (ru) Гибридное запоминающее устройство
TWI512474B (zh) 電子系統及頻寬管理之方法
US11886742B2 (en) Memory system control method for power-level state of a host via PCIe bus including receiving optimized buffer flush/fill (OBFF) messages over the PCIe bus
CN110737608B (zh) 一种数据操作方法、装置及***
CN115668377A (zh) 用于dram的刷新管理
KR20220116041A (ko) 이기종 메모리 시스템용 시그널링
TWI550408B (zh) 多核心電子系統及其速率調節裝置
US9026703B2 (en) Bus monitoring device, bus monitoring method, and program
KR20160125137A (ko) 애플리케이션 프로세서와 시스템 온 칩
JP2014035549A (ja) バス制御装置、画像処理装置及びバス制御方法
JP6175794B2 (ja) データ処理装置およびデータ処理方法
US11487638B2 (en) Computer program product and method and apparatus for controlling access to flash memory card
US10452574B2 (en) Read performance on a SATA storage device behind a host bus adapter
JPWO2012081085A1 (ja) 割込み要因管理装置及び割込み処理システム
JP2009251713A (ja) キャッシュメモリ制御装置
EP4071583A1 (en) Avoiding processor stall when accessing coherent memory device in low power
WO2020024113A1 (zh) 一种内存交织方法及装置
US20160154603A1 (en) Data transfer control device, apparatus including the same, and data transfer control method
JP2009059276A (ja) 情報処理装置およびプログラム
US20190243439A1 (en) System and method of controlling power down mode of memory device
JP5528939B2 (ja) マイクロコンピュータ
JP2016154001A (ja) 画像処理装置、画像処理用データ転送制御方法、及び画像処理用データ転送制御プログラム
US11842071B2 (en) Data transfer device and data transfer method