(57)【要約】【課題】優先度の高いマスタによるメモリに対するアクセスを保障しながら、他のマスタに対してもメモリに対して効率良くアクセスさせる。【解決手段】メモリに記憶されたデータにアクセスする第１マスタおよび第２マスタによるアクセスを調停する第１サブアービタと、第１マスタおよび第２マスタ以外の複数のマスタによるメモリに対するアクセスを調停する第２サブアービタと、第１サブアービタからメモリに対するアクセスを、第２サブアービタからメモリに対するアクセスより優先させるメインアービタと、第２マスタによるメモリに対するアクセス量を予め設定された範囲内に制限する制限部と、を備えるデータ処理装置を提供する。【選択図】図１
2014160341.tif 000002
【特許請求の範囲】
【請求項１】
メモリに記憶されたデータにアクセスする第１マスタおよび第２マスタによる前記アクセスを調停する第１サブアービタと、
前記第１マスタおよび前記第２マスタ以外の複数のマスタによる前記メモリに対するアクセスを調停する第２サブアービタと、
前記第１サブアービタから前記メモリに対するアクセスを、前記第２サブアービタから前記メモリに対するアクセスより優先させるメインアービタと、
前記第２マスタによる前記メモリに対するアクセス量を予め設定された範囲内に制限する制限部と、
を備えるデータ処理装置。
【請求項２】
前記第１マスタは、前記メモリに記憶された画像データを１ライン単位でのリアルタイム性を確保して読み出し、
前記第２マスタは、画像処理がされた画像データを前記メモリに書き込み、
前記制限部は、前記第２マスタによる前記画像データの前記メモリに対する書き込みアクセスのアクセス量を所定の帯域の範囲内に制限する
請求項１に記載のデータ処理装置。
【請求項３】
前記制限部は、前記第１サブアービタにおける前記第２マスタとの間のバス接続ポートに設けられる請求項１または２に記載のデータ処理装置。
【請求項４】
前記制限部は、前記第２マスタにおける前記第１サブアービタとの間のバス接続ポートに設けられる請求項１または２に記載のデータ処理装置。
【請求項５】
前記制限部は、
前記第１サブアービタと前記第２マスタとの間のバスクロックをカウントするクロックカウンタと、
前記クロックカウンタのカウント値の範囲を予め記憶する範囲記憶部と、
前記クロックカウンタのカウント値が前記範囲記憶部に記憶された範囲内の場合に、前記第２マスタによる前記メモリへのアクセスを遮断する抑制部と、
を有する請求項３または４に記載のデータ処理装置。
【請求項６】
前記制限部は、
前記第１サブアービタと前記第２マスタとの間のデータの転送帯域を検出する転送帯域検出部と、
前記転送帯域の上限を予め記憶する上限記憶部と、
前記転送帯域検出部により検出された前記転送帯域が前記上限記憶部に記憶された前記上限を超えた場合に、前記第２マスタによる前記メモリへのアクセスを遮断する抑制部と、
を有する請求項３または４に記載のデータ処理装置。
【請求項７】
前記制限部による制限を有効とするか否かを設定するモード設定部
をさらに備える請求項１から６の何れか１項に記載のデータ処理装置。
【請求項８】
前記モード設定部は、外部のデバイスが動作しているか否かを示すモード信号を受け取り、受け取ったモード信号に応じて前記制限部による制限を有効とするか否かを設定する
請求項７に記載のデータ処理装置。
【請求項９】
メモリに記憶されたデータにアクセスする第１マスタおよび第２マスタによる前記アクセスを調停する第１サブアービタと、前記第１マスタおよび前記第２マスタ以外の複数のマスタによる前記メモリに対するアクセスを調停する第２サブアービタとを備えたデータ処理装置におけるデータ処理方法であって、
前記第１サブアービタから前記メモリに対するアクセスを、前記第２サブアービタから前記メモリに対するアクセスより優先させ、
前記第２マスタによる前記メモリに対するアクセス量を予め設定された範囲内に制限する
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスへのアクセスを調停するデータ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
近年、複合機（ＭＦＰ）の高速化が進んでいる。ＭＦＰでは、スキャナの読み取り速度およびプロッタの書き込み速度が向上しており、メインメモリとの間のデータ転送のライン等時性（画像データの１ライン単位でのデータ転送のリアルタイム性）の確保が厳しくなっている。
【０００３】
さらに、ＭＦＰでは、チップシュリンク化が進んでいる。１つのチップに、ＭＦＰのための機能に加えて、ＩＯ機能、ＣＰＵ（Central  Processing  Unit）、表示出力機能およびグラフィック機能が追加されるので、ライン等時性のみならず、システム性能のリアルタイム性（例えばＣＰＵの割込み処理等のシステムとしてのリアルタイム性）、表示性能のリアルタイム性（フレーム転送のリアルタイム性）も同時に要求される。
【０００４】
そして、ＭＦＰでは、コスト削減のためにメインメモリの集約化が進んでいる。ワンチップに高速なＤＲＡＭ（Dynamic  Random  Access  Memory）を接続してシステムで共有するので、あらゆるデータ転送がメインメモリに集中する。したがって、ＭＦＰでは、各マスタによるメインメモリとの間のデータ転送についてアービタを用いてＱｏＳ（Quality  of  Service）制御を行い、ライン等時性の保障、並びにシステム性能のリアルタイム性および表示性能のリアルタイム性の保障をする必要がある。
【０００５】
そこで、従来のＭＦＰは、最も優先すべきライン等時性に関するマスタによるメインメモリに対するアクセスの優先順位を上げて、ライン等時性を保障している。さらに、ＭＦＰでは、１ライン内にライン等時性を確保すべきマスタがアクセスできない遊休期間を設定し、その遊休時間に次に優先すべきデータ転送（ページ等時性、システム転送）をライン等時性に影響のないレベルでアービタにより許可することにより、システム性能のリアルタイム性および表示性能のリアルタイム性の保障をしている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来のＭＦＰでは、ライン等時性を最優先してその合間に他の転送を挟んでいるにすぎなかった。システム性能、ページ転送およびフレーム転送のリアルタイム性は、ライン等時性のメモリアクセス要求頻度によっては、そのリアルタイム性を保障できない場合もある。
【０００７】
例えば、ＭＦＰのコントロールＩＣは、通常のプリンタ動作においては、ライン同期信号に同期して動作するプロッタエンジンに対して、最優先でプリンタ画像を転送する。ライン同期信号には、帰線期間と呼ばれる次のライン転送開始までの待ち時間が存在するので、コントロールＩＣは、待ち時間に優先順位が下の転送処理を行うことができる。これによりプリンタ動作中であっても、他のページのプリンタ画像の描画処理、ＣＰＵの処理およびＧＰＵ（Graphics  Processing  Unit）による操作部表示処理等を実現できる。
【０００８】
ところが、１８０度回転プリンタ動作等の特殊な動作では、プロッタエンジンに出力する前に、伸張した画像を１８０度回転させるためにメインメモリ上に展開する処理を実行する。この動作では、デコーダが隙間なく符号をメインメモリから読み出して、伸張後の画像をメインメモリに書き込むので、メモリ帯域を独占してしまう恐れがある。このため、この動作では、優先順位が下のメインメモリに対するデータ転送の性能が著しく低下し、１８０度回転プリンタ動作の機能は提供できるもののシステム全体の性能が低下する、という問題が生じてしまう。
【０００９】
この問題を解決するために、いくつかの方法があるが、どれもプロッタエンジン転送との両立は難しい。例えば、デコーダのメモリ優先順位をＣＰＵ等のその他のモジュールと同じにするという手段が考えられる。この場合、１８０度回転プリンタ動作中もＣＰＵおよびその他のモジュールがメインメモリにアクセスすることが可能なので、システム全体の性能の低下は回避できる。しかし、ＣＰＵやその他のモジュールの動作状況によっては、伸張処理性能がプロッタエンジンの出力性能に間に合わず、例えば異常画像を引き起こす場合もある。
【００１０】
また、一部のモジュール（例えばＣＰＵやＧＰＵ）を画像データの転送よりも優先順位を上げるという手段も考えられる。この場合、１８０度回転プリンタ動作中であってもＣＰＵ処理は滞らず、ＧＰＵの操作部描画処理も滞らないので、ユーザー視点ではシステム低下を回避できる。しかし、ＣＰＵ、ＧＰＵの動作内容によっては、伸張処理性能がプロッタエンジンの出力性能に間に合わない。逆に、ＣＰＵ、ＧＰＵ自体の限界性能が十分に低い場合はこの手段が有効ではあるが、今後のＭＦＰに搭載されるＣＰＵ、ＧＰＵ性能の限界性能はより高くなると予想されるので、この手段を適用できなくなる。
【００１１】
本発明は、上記に鑑みてなされたものであって、優先度の高いマスタによるメモリに対するアクセスを保障しながら、他のマスタに対してもメモリに対して効率良くアクセスさせることができるデータ処理装置およびデータ処理方法を提供することを目的とする。 
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明に係るデータ処理装置は、メモリに記憶されたデータにアクセスする第１マスタおよび第２マスタによる前記アクセスを調停する第１サブアービタと、前記第１マスタおよび前記第２マスタ以外の複数のマスタによる前記メモリに対するアクセスを調停する第２サブアービタと、前記第１サブアービタから前記メモリに対するアクセスを、前記第２サブアービタから前記メモリに対するアクセスより優先させるメインアービタと、前記第２マスタによる前記メモリに対するアクセス量を予め設定された範囲内に制限する制限部と、を備える。
【００１３】
本発明に係るデータ処理方法は、メモリに記憶されたデータにアクセスする第１マスタおよび第２マスタによる前記アクセスを調停する第１サブアービタと、前記第１マスタおよび前記第２マスタ以外の複数のマスタによる前記メモリに対するアクセスを調停する第２サブアービタとを備えたデータ処理装置におけるデータ処理方法であって、前記第１サブアービタから前記メモリに対するアクセスを、前記第２サブアービタから前記メモリに対するアクセスより優先させ、前記第２マスタによる前記メモリに対するアクセス量を予め設定された範囲内に制限する。
【発明の効果】
【００１４】
本発明によれば、優先度の高いマスタによるメモリに対するアクセスを保障しながら、他のマスタに対してもメモリに対して効率良くアクセスさせることができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施形態に係る画像処理システム１０の構成を示す図である。
【図２】図２は、通常のプリンタ動作時における、画像処理システム１０内のデータの流れを示す図である。
【図３】図３は、１８０度回転プリンタ動作時における、画像処理システム１０内のデータの流れを示す図である。
【図４】図４は、制限部８１が第１アービタ７１のバス接続ポートに設けられた場合の画像処理システム１０の部分構成を示す図である。
【図５】図５は、制限部８１がデコーダ用書込ＤＭＡ５５のバス接続ポートに設けられた場合の画像処理システム１０の部分構成を示す図である。
【図６】図６は、第１例に係る制限部８１の構成を示す図である。
【図７】図７は、第１例に係る制限部８１の処理フローを示す図である。
【図８】図８は、第２例に係る制限部８１の構成を示す図である。
【図９】図９は、第２例に係る制限部８１の処理フローを示す図である。
【発明を実施するための形態】
【００１６】
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１７】
図１は、実施形態に係る画像処理システム１０の構成を示す。画像処理システム１０は、スキャナおよびプロッタを備える複合機等に用いられる制御装置である。画像処理システム１０は、例えば、スキャナから取り込んだ画像データを取得して、プロッタに対して画像データを出力する。
【００１８】
画像処理システム１０は、プロッタエンジン２０と、メモリ３０と、ディスク記憶装置４０と、データ処理装置５０とを備える。プロッタエンジン２０は、プロッタによる画像形成動作を制御する。プロッタエンジン２０は、画像信号の１ライン毎の動作タイミングを示すライン同期信号に同期して動作する。
【００１９】
メモリ３０は、例えばＤＲＡＭである。メモリ３０は、データ処理装置５０の処理対象となる画像データ、および、印刷用の符号化データであるプリンタ符号データ等を記憶する。ディスク記憶装置４０は、例えばハードディスクドライブである。ディスク記憶装置４０は、プリンタ符号データ等を記憶する。
【００２０】
データ処理装置５０は、例えば１チップの回路である。データ処理装置５０は、複合機の全体のシステム制御、表示モニタの表示制御、および、プリンタ画像の描画処理等を行う。さらに、データ処理装置５０は、プリント動作時において、ライン等時性を保障しながらプロッタエンジン２０に対して画像データを出力する。
【００２１】
データ処理装置５０は、デバイスインターフェイス５１と、出力用ＤＭＡ（Direct  Memory  Access）５２と、デコーダ用読出ＤＭＡ５３と、デコーダ５４と、デコーダ用書込ＤＭＡ５５と、ディスクコントローラ６１と、エンコーダ６２と、グラフィックコントローラ６３と、ＣＰＵ６４と、ＧＰＵ６５と、第１アービタ７１と、第２アービタ７２と、第３アービタ７３と、メモリコントローラ７４とを有する。
【００２２】
デバイスインターフェイス５１は、プロッタエンジン２０との間でデータの送受信をするためのインターフェイス回路である。デバイスインターフェイス５１は、一例として、ＰＣＩエキスプレスの規格のインターフェイス回路である。
【００２３】
出力用ＤＭＡ５２は、メモリ３０に記憶されているデータを読み出して、デバイスインターフェイス５１を介してプロッタエンジン２０へと転送する。この場合、出力用ＤＭＡ５２は、第１アービタ７１およびメモリコントローラ７４を介してメモリ３０にアクセスする。また、出力用ＤＭＡ５２は、１ライン単位でのリアルタイム性（ライン等時性）を確保して、メモリ３０に記憶された画像データを読み出してプロッタエンジン２０へと転送する。
【００２４】
また、出力用ＤＭＡ５２は、デコーダ５４から出力された画像データを入力して、デバイスインターフェイス５１を介してプロッタエンジン２０へと出力する。この場合にも、出力用ＤＭＡ５２は、ライン等時性を確保して、画像データをプロッタエンジン２０へと転送する。
【００２５】
デコーダ用読出ＤＭＡ５３は、メモリ３０に記憶されたプリンタ符号データを読み出して、デコーダ５４へと転送する。この場合、デコーダ用読出ＤＭＡ５３は、第１アービタ７１およびメモリコントローラ７４を介してメモリ３０にアクセスする。また、デコーダ用読出ＤＭＡ５３は、ライン等時性を確保してデータを転送する。
【００２６】
デコーダ５４は、デコーダ用読出ＤＭＡ５３から供給されたプリンタ符号データを伸張処理して、画像データを生成する。そして、デコーダ５４は、通常の印刷動作時においては、伸張した画像データを出力用ＤＭＡ５２へと出力する。
【００２７】
また、デコーダ５４は、１８０度回転プリンタ動作等の画像処理を施した画像データを印刷する動作時においては、伸張した画像データに対して所定の画像処理を施して、デコーダ用書込ＤＭＡ５５へと出力する。
【００２８】
デコーダ用書込ＤＭＡ５５は、１８０度回転プリンタ動作等の動作時において、デコーダ５４により画像処理が施された画像データを読み出して、メモリ３０に書き込む。この場合、デコーダ用書込ＤＭＡ５５は、第１アービタ７１およびメモリコントローラ７４を介してメモリ３０にアクセスする。
【００２９】
ディスクコントローラ６１は、ディスク記憶装置４０との間でのデータのやり取りを制御する。ディスクコントローラ６１は、メモリ３０とディスク記憶装置４０との間のプリンタ符号データの転送を制御する。この場合、ディスクコントローラ６１は、第２アービタ７２およびメモリコントローラ７４を介してメモリ３０にアクセスする。また、ディスクコントローラ６１は、１ページ単位でのリアルタイム性（ページ等時性）を確保して、データを転送する。
【００３０】
エンコーダ６２は、メモリ３０に記憶された画像データを読み出し、読み出した画像データを圧縮してプリンタ符号データを生成し、プリンタ符号データをメモリ３０に書き戻す。この場合、エンコーダ６２は、第２アービタ７２およびメモリコントローラ７４を介してメモリ３０にアクセスする。また、エンコーダ６２は、ページ等時性を確保して、圧縮処理等を実行する。
【００３１】
グラフィックコントローラ６３は、画像データをメモリ３０から読み出して描画処理をし、描画処理後の画像データをメモリ３０に書き戻す。この場合、グラフィックコントローラ６３は、第２アービタ７２およびメモリコントローラ７４を介してメモリ３０にアクセスする。また、グラフィックコントローラ６３は、ページ等時性を確保して、圧縮処理等を実行する。
【００３２】
ＣＰＵ６４は、画像処理システム１０が設けられている複合機等のシステム全体を制御する。ＣＰＵ６４は、命令等をメモリ３０から読み出して実行する。この場合、ＣＰＵ６４は、第３アービタ７３およびメモリコントローラ７４を介してメモリ３０にアクセスする。
【００３３】
ＧＰＵ６５は、複合機等のシステムに設けられた表示入力装置にユーザインターフェイスを表示し、表示入力装置に対する操作入力を受け付ける。ＧＰＵ６５は、ユーザインターフェイスを表示するための情報をメモリ３０から読み出して表示する。この場合、ＧＰＵ６５は、第３アービタ７３およびメモリコントローラ７４を介してメモリ３０にアクセスする。
【００３４】
第１アービタ７１は、出力用ＤＭＡ５２、デコーダ用読出ＤＭＡ５３およびデコーダ用書込ＤＭＡ５５によるメモリ３０に対するアクセスを調停する。すなわち、第１アービタ７１は、出力用ＤＭＡ５２、デコーダ用読出ＤＭＡ５３およびデコーダ用書込ＤＭＡ５５をマスタとし、メモリコントローラ７４をスレーブとしたデータ転送を調停する。第１アービタ７１は、一例として、ＬＲＵ（Least  Recently  Used）等のラウンドロビン方式で調停をする。
【００３５】
また、第１アービタ７１は、メモリコントローラ７４の最も優先順位の高いポートに接続される。このような第１アービタ７１は、出力用ＤＭＡ５２、デコーダ用読出ＤＭＡ５３およびデコーダ用書込ＤＭＡ５５の何れのアクセスを受け付けるかを決定するサブアービタとして機能する。
【００３６】
第２アービタ７２は、ディスクコントローラ６１、エンコーダ６２およびグラフィックコントローラ６３によるメモリ３０に対するアクセスを調停する。すなわち、第２アービタ７２は、ディスクコントローラ６１、エンコーダ６２およびグラフィックコントローラ６３をマスタとし、メモリコントローラ７４をスレーブとしたデータ転送を調停する。
【００３７】
第２アービタ７２は、一例として、ラウンドロビン方式で調停をする。また、第２アービタ７２は、メモリコントローラ７４の２番目に優先順位の高いポートに接続される。このような第２アービタ７２は、ディスクコントローラ６１、エンコーダ６２およびグラフィックコントローラ６３の何れのアクセスを受け付けるかを決定するサブアービタとして機能する。
【００３８】
第３アービタ７３は、ＣＰＵ６４およびＧＰＵ６５によるメモリ３０に対するアクセスを調停する。すなわち、第３アービタ７３は、ＣＰＵ６４およびＧＰＵ６５をマスタとし、メモリコントローラ７４をスレーブとしたデータ転送の調停をする。
【００３９】
第３アービタ７３は、一例として、ラウンドロビン方式で調停をする。また、第３アービタ７３は、メモリコントローラ７４の最も優先順位の低いポートに接続される。このような第３アービタ７３は、ＣＰＵ６４およびＧＰＵ６５の何れのアクセスを受け付けるかを決定するサブアービタとして機能する。
【００４０】
メモリコントローラ７４は、第１アービタ７１、第２アービタ７２および第３アービタ７３からのメモリ３０に対するアクセスを制御する。具体的には、メモリコントローラ７４は、第１アービタ７１からのアクセスを最も優先順位を高くし、第２アービタ７２からのアクセスを２番目に優先順位を高くし、第３アービタ７３からのアクセスを最も優先順位を低くする。
【００４１】
すなわち、メモリコントローラ７４は、第１アービタ７１からメモリ３０へのアクセスを、第２アービタ７２および第３アービタ７３からのメモリ３０へのアクセスよりも優先させる。また、メモリコントローラ７４は、第２アービタ７２からメモリ３０へのアクセスを、第３アービタ７３からメモリ３０へのアクセスよりも優先させる。このようなメモリコントローラ７４は、第１アービタ７１、第２アービタ７２および第３アービタ７３の何れかのアクセスを受け付けるかを決定するメインアービタとして機能する。
【００４２】
制限部８１は、デコーダ用書込ＤＭＡ５５からメモリ３０に対する書き込みアクセスのアクセス量を、予め設定された帯域の範囲内に制限する。例えば、制限部８１は、１８０度回転プリンタ動作等における、画像処理が施された画像データをメモリ３０へ書き戻す際のアクセスを、予め設定された帯域内に制限する。なお、制限部８１による帯域制限の方法の一例については詳細を後述する。
【００４３】
図２は、通常のプリンタ動作時における、画像処理システム１０内のデータの流れを示す。画像処理システム１０は、通常のプリンタ動作において、以下のように処理を進める。
【００４４】
ＧＰＵ６５は、メモリ３０から操作画像を読み出して表示入力部にユーザインターフェイスを表示する（Ｓ１１）。そして、ＧＰＵ６５は、入力情報をメモリ３０に書き込む。また、ＣＰＵ６４は、メモリ３０から命令を読み出して実行し、実行結果をメモリ３０に書き込む（Ｓ１２）。
【００４５】
グラフィックコントローラ６３は、画像データをメモリ３０から読み出して描画処理をし、描画処理後の画像データをメモリ３０に書き込む（Ｓ１３）。続いて、エンコーダ６２は、描画処理後の画像データをメモリ３０から読み出して圧縮符号化処理してプリンタ符号データを生成し、プリンタ符号データをメモリ３０に書き込む（Ｓ１４）。
【００４６】
続いて、ディスクコントローラ６１は、プリンタ符号データをメモリ３０から読み出して、プリンタ文書としてディスク記憶装置４０に書き込む（Ｓ１５）。そして、プリンタの印刷準備が開始されると、ディスクコントローラ６１は、プリンタ符号データをディスク記憶装置４０から読み出して、メモリ３０に書き込む（Ｓ１６）。
【００４７】
続いて、デコーダ用読出ＤＭＡ５３は、プリンタ符号データをメモリ３０から読み出して、デコーダ５４へと転送する（Ｓ１７）。デコーダ５４は、プリンタ符号データを伸張処理して、画像データを生成する（Ｓ１８）。そして、出力用ＤＭＡ５２は、デコーダ５４により伸張された画像データを入力して、デバイスインターフェイス５１を介してプロッタエンジン２０へと出力する（Ｓ１９）。
【００４８】
図３は、１８０度回転プリンタ動作時における、画像処理システム１０内のデータの流れを示す。画像処理システム１０は、１８０度回転プリンタ動作において、以下のように処理を進める。
【００４９】
まず、ステップＳ１１からステップＳ１７までは、図２の同様の処理が実行される。続いて、デコーダ５４は、デコーダ用読出ＤＭＡ５３により読み出されたプリンタ符号データを伸張処理して画像データを生成し、画像データを１８０度反転させる。そして、デコーダ用書込ＤＭＡ５５は、１８０度回転させた画像データをメモリ３０に書き込む（Ｓ２０）。続いて、出力用ＤＭＡ５２は、１８０度回転した画像データをメモリ３０から読み出して、デバイスインターフェイス５１を介してプロッタエンジン２０へと出力する（Ｓ２１）。
【００５０】
図４は、制限部８１が第１アービタ７１のバス接続ポートに設けられた場合の画像処理システム１０の部分構成を示す。制限部８１は、一例として、第１アービタ７１における、帯域制限の対象となるマスタであるデコーダ用書込ＤＭＡ５５との間のバス接続ポートに設けられる。この場合、第１アービタ７１は、制限部８１と、セレクタ８２とを有する。
【００５１】
セレクタ８２は、複数のマスタ（出力用ＤＭＡ５２、デコーダ用読出ＤＭＡ５３およびデコーダ用書込ＤＭＡ５５）の何れか一つを選択して、スレーブ（メモリコントローラ７４）と接続する。ここで、セレクタ８２における複数のマスタとスレーブとの間の通信プロトコルは、例えばＡＸＩ（Advanced  eXtensible  Interface）またはＯＣＰ（Open  Core  Protocol）のようなスプリット・トランザクションを用いたプロトコルである。スプリット・トランザクションとは、転送要求とデータ転送が分けられた転送である。
【００５２】
制限部８１は、セレクタ８２とデコーダ用書込ＤＭＡ５５との間に挿入される。デコーダ用書込ＤＭＡ５５からのメモリ３０への書き込みアクセスを制限する場合、制限部８１は、デコーダ用書込ＤＭＡ５５からの転送要求のレディー応答をネゲート（無効）とする。これにより、制限部８１は、デコーダ用書込ＤＭＡ５５からの有効なデータ転送を待機させることができ、書き込みアクセスの制限をすることができる。
【００５３】
図５は、制限部８１がデコーダ用書込ＤＭＡ５５のバス接続ポートに設けられた場合の画像処理システム１０の部分構成を示す。
【００５４】
制限部８１は、制限対象のマスタであるデコーダ用書込ＤＭＡ５５における、セレクタ８２との間のバス接続ポートに設けられてもよい。この場合、第１アービタ７１は、制限部８１を有さない。セレクタ８２は、図４に示したものと同一であるので説明を省略する。
【００５５】
制限部８１は、デコーダ用書込ＤＭＡ５５の入出力ポートと、セレクタ８２との間に挿入される。デコーダ用書込ＤＭＡ５５からのメモリ３０への書き込みアクセスを制限する場合、制限部８１は、デコーダ用書込ＤＭＡ５５からの転送要求のレディー応答をネゲート（無効）とする。これにより、制限部８１は、デコーダ用書込ＤＭＡ５５からの有効なデータ転送を待機させることができ、書き込みアクセスの制限をすることができる。
【００５６】
図６は、第１例に係る制限部８１の構成を示す。第１例に係る制限部８１は、バスクロックのサイクル数を計測して、所定のサイクル数との比較結果から、デコーダ用書込ＤＭＡ５５の転送の許可/不許可を判定する。
【００５７】
具体的には、第１例に係る制限部８１は、クロックカウンタ１０１と、範囲記憶部１０２と、抑制部１０３と、モード設定部１０４と、範囲設定部１０５とを含む。
【００５８】
クロックカウンタ１０１は、第１アービタ７１とデコーダ用書込ＤＭＡ５５との間のバスクロックをカウントする。クロックカウンタ１０１は、一定の値の範囲を巡回的にカウントする。クロックカウンタ１０１は、例えば８ビットカウンタであれば“０〜２５５”の範囲を繰り返しカウントする。範囲記憶部１０２は、クロックカウンタ１０１のカウント値の範囲を予め記憶する。例えば、範囲記憶部１０２は、クロックカウンタ１０１の全範囲のうちの一部の範囲（８ビットカウンタであれば、“６４〜１２８”といった範囲）を記憶する。
【００５９】
抑制部１０３は、クロックカウンタ１０１のカウント値が範囲記憶部１０２に記憶された範囲内の場合に、デコーダ用書込ＤＭＡ５５によるメモリ３０へのアクセスを遮断して、転送要求を抑止する。例えばクロックカウンタ１０１のカウントの範囲が“０〜２５５”であり、範囲記憶部１０２が記憶している範囲が“６４〜１２８”であるとする。この場合、抑制部１０３は、カウント値が“０〜６３”および“１２９〜２５５”の間ではデコーダ用書込ＤＭＡ５５による書き込みアクセスを伝達させ、カウントが“６４〜１２８”の範囲ではデコーダ用書込ＤＭＡ５５による書き込みアクセスを遮断する。
【００６０】
モード設定部１０４は、制限部８１による制限を有効とするか否かを設定する。抑制部１０３は、モード設定部１０４が制限を有効とするように設定している場合には、デコーダ用書込ＤＭＡ５５による書き込みアクセスを制限する。抑制部１０３は、モード設定部１０４が制限を無効とするように設定している場合には、デコーダ用書込ＤＭＡ５５による書き込みアクセスの制限をしない。
【００６１】
また、モード設定部１０４は、外部のデバイスが動作しているか否かを示すモード信号を受け取り、受け取ったモード信号に応じて制限部８１による制限を有効とするか否かを設定してもよい。これにより、モード設定部１０４は、外部のデバイスが動作しており、その外部のデバイスにもメモリ３０へアクセスをさせる必要がある場合に、デコーダ用書込ＤＭＡ５５による書き込みアクセスを制限することができる。
【００６２】
範囲設定部１０５は、範囲記憶部１０２にカウント値の抑制範囲を設定する。範囲設定部１０５は、一例として、外部からの入力に応じて抑制範囲を設定する。
【００６３】
図７は、第１例に係る制限部８１の処理フローを示す。図７のフローは、例えば、デコーダ用書込ＤＭＡ５５からメモリ３０への書き込みアクセスが発生した場合に、制限部８１により実行される。
【００６４】
まず、ステップＳ１０１において、クロックカウンタ１０１は、カウント値を“０”に初期化する。続いて、ステップＳ１０２において、範囲設定部１０５は、カウント値の抑制範囲を範囲記憶部１０２に設定する。
【００６５】
続いて、ステップＳ１０３において、クロックカウンタ１０１は、バスクロックをカウントする。この場合、クロックカウンタ１０１は、カウント値が最大値を超えた場合、初期値“０”に戻り巡回的にカウントを続ける。
【００６６】
続いて、ステップＳ１０４において、抑制部１０３は、カウント値が抑制範囲内か否かを判断する。カウント値が抑制範囲内ではない場合（ステップＳ１０４のＮｏ）、抑制部１０３は、処理をステップＳ１０６に進める。カウント値が抑制範囲内である場合（ステップＳ１０４のＹｅｓ）、抑制部１０３は、処理をステップＳ１０５に進める。ステップＳ１０５において、抑制部１０３は、デコーダ用書込ＤＭＡ５５からメモリ３０へのデータの転送要求を抑止する。例えば、抑制部１０３は、デコーダ用書込ＤＭＡ５５からの転送要求のレディー応答をネゲート（無効）とする。
【００６７】
続いて、ステップＳ１０６において、抑制部１０３は、抑制処理を終了させるか否かを判断する。抑制部１０３は、一例として、デコーダ用書込ＤＭＡ５５からメモリ３０のデータの転送要求に応じたデータ転送が完了した場合には抑制処理を終了させる。抑制処理を終了させない場合には（ステップＳ１０６のＮｏ）、抑制部１０３は、処理をステップＳ１０３に戻して、処理を繰り返す。
【００６８】
抑制処理を終了させる場合には（ステップＳ１０６のＹｅｓ）、ステップＳ１０７において、抑制部１０３は、転送要求の抑止制御を解除する。続いて、ステップＳ１０８において、抑制部１０３は、帯域制限が解除済みか否かを判断する。解除済みでなければ（ステップＳ１０８のＮｏ）、抑制部１０３は、処理をステップＳ１０３に戻して、帯域制限を連続して機能させる。解除済みであれば（ステップＳ１０８のＹｅｓ）、制限部８１は、本フローを抜ける。このような構成の制限部８１によれば、簡単なハードウェア構成でアクセスの帯域制限をすることができる。
【００６９】
図８は、第２例に係る制限部８１の構成を示す。第２例に係る制限部８１は、直近の所定の期間内のデータの転送量を累積するカウンタにより、単位時間あたりのデータ転送量（すなわち、転送帯域）を計算し、所定の転送帯域との比較結果から、デコーダ用書込ＤＭＡ５５の転送の許可/不許可を判定する。
【００７０】
第２例に係る制限部８１は、転送帯域検出部１１１と、上限記憶部１１２と、抑制部１１３と、モード設定部１１４と、上限設定部１１５とを含む。
【００７１】
転送帯域検出部１１１は、第１アービタ７１とデコーダ用書込ＤＭＡ５５との間のデータの転送帯域を検出する。転送帯域検出部１１１は、一例として、データ転送サイクル数カウンタ１２１と、レジスタ１２２とを有する。
【００７２】
データ転送サイクル数カウンタ１２１は、設定された帯域測定範囲内における転送データ数をカウントする。例えば、データ転送サイクル数カウンタ１２１は、帯域測定範囲として、１０００サイクルの範囲が設定される。そして、データ転送サイクル数カウンタ１２１は、１０００サイクル毎に、データ転送サイクル数をカウントする。例えば、データ転送サイクル数カウンタ１２１は、１０００サイクルのうちの１００サイクルでデータ転送が行われた場合には、データ転送サイクル数として１００サイクルを出力する。
【００７３】
レジスタ１２２は、データ転送サイクル数カウンタ１２１から出力されたカウント値を保持する。転送帯域検出部１１１は、レジスタ１２２のカウント値をデータの転送帯域として出力する。上限記憶部１１２は、データの転送帯域の上限を予め記憶する。上限記憶部１１２は、例えば１０００サイクルのうち２０パーセント以上でデータ転送された場合にアクセスを抑止する場合には、２００サイクルを上限として記憶する。
【００７４】
抑制部１１３は、転送帯域検出部１１１から出力された転送帯域（カウンタ値）が、上限記憶部１１２に記憶された転送帯域の上限を超えた場合に、デコーダ用書込ＤＭＡ５５によるメモリ３０へのアクセスを遮断する。例えば、転送帯域の上限として２０パーセントが設定されたとする。この場合、抑制部１１３は、１０００サイクルのうちの２００サイクル以上のデータ転送が行われた場合には、デコーダ用書込ＤＭＡ５５による書き込みアクセスを遮断する。
【００７５】
モード設定部１１４は、図６に示すモード設定部１０４と同様の処理を実行する。上限設定部１１５は、上限記憶部１１２に転送帯域の上限を設定する。上限設定部１１５は、一例として、外部からの入力に応じて上限を設定する。
【００７６】
図９は、第２例に係る制限部８１の処理フローを示す。図９のフローは、例えば、デコーダ用書込ＤＭＡ５５からメモリ３０への書き込みアクセスが発生した場合に、制限部８１により実行される。
【００７７】
まず、ステップＳ２０１において、データ転送サイクル数カウンタ１２１は、カウント値を“０”に初期化する。続いて、ステップＳ２０２において、データ転送サイクル数カウンタ１２１は、帯域測定範囲のカウント値を設定する。また、上限設定部１１５は、転送帯域の上限を上限記憶部１１２に設定する。
【００７８】
続いて、ステップＳ２０３において、データ転送サイクル数カウンタ１２１は、帯域測定範囲内におけるデータ転送サイクル数をカウントする。そして、データ転送サイクル数カウンタ１２１は、帯域測定範囲毎のデータ転送サイクル数が、増加したか、減少したか、変化なしかを判断する。
【００７９】
増加した場合（ステップＳ２０３の増加）、ステップＳ２０４において、データ転送サイクル数カウンタ１２１は、カウンタ値をインクリメントして、処理をステップＳ２０６に進める。減少した場合（ステップＳ２０３の減少）、ステップＳ２０５において、データ転送サイクル数カウンタ１２１は、カウンタ値をデクリメントして、処理をステップＳ２０６に進める。変化が無かった場合（ステップＳ２０３の変化なし）、データ転送サイクル数カウンタ１２１は、カウンタ値を変えずに、処理をステップＳ２０６に進める。
【００８０】
続いて、ステップＳ２０６において、抑制部１１３は、転送帯域が上限を超えたか否かを判断する。転送帯域が上限を超えていない場合（ステップＳ２０６のＮｏ）、抑制部１１３は、処理をステップＳ２０８に進める。転送帯域が上限を超えた場合（ステップＳ２０６のＹｅｓ）、抑制部１１３は、処理をステップＳ２０７に進める。ステップＳ２０７において、抑制部１１３は、デコーダ用書込ＤＭＡ５５からメモリ３０へのデータの転送要求を抑止する。例えば、抑制部１１３は、デコーダ用書込ＤＭＡ５５からの転送要求のレディー応答をネゲート（無効）とする。
【００８１】
続いて、ステップＳ２０８において、抑制部１１３は、抑制処理を終了させるか否かを判断する。抑制部１１３は、一例として、デコーダ用書込ＤＭＡ５５からメモリ３０のデータの転送要求に応じたデータ転送が完了した場合には抑制処理を終了させる。抑制処理を終了させない場合には（ステップＳ２０８のＮｏ）、抑制部１１３は、処理をステップＳ２０３に戻して、処理を繰り返す。
【００８２】
抑制処理を終了させる場合には（ステップＳ２０８のＹｅｓ）、ステップＳ２０９において、抑制部１１３は、転送要求の抑止制御を解除する。続いて、ステップＳ２１０において、抑制部１１３は、帯域制限が解除済みか否かを判断する。解除済みでなければ（ステップＳ２１０のＮｏ）、抑制部１１３は、処理をステップＳ２０３に戻して、帯域制限を連続して機能させる。解除済みであれば（ステップＳ２１０のＹｅｓ）、制限部８１は、本フローを抜ける。このような構成の制限部８１によれば、構成は複雑となるが精度良くアクセスの帯域制限をすることができる。
【符号の説明】
【００８３】
１０  画像処理システム
２０  プロッタエンジン
３０  メモリ
４０  ディスク記憶装置
５０  データ処理装置
５１  デバイスインターフェイス
５２  出力用ＤＭＡ
５３  デコーダ用読出ＤＭＡ
５４  デコーダ
５５  デコーダ用書込ＤＭＡ
６１  ディスクコントローラ
６２  エンコーダ
６３  グラフィックコントローラ
６４  ＣＰＵ
６５  ＧＰＵ
７１  第１アービタ
７２  第２アービタ
７３  第３アービタ
７４  メモリコントローラ
８１  制限部
８２  セレクタ
１０１  クロックカウンタ
１０２  範囲記憶部
１０３  抑制部
１０４  モード設定部
１０５  範囲設定部
１１１  転送帯域検出部
１１２  上限記憶部
１１３  抑制部
１１４  モード設定部
１１５  上限設定部
１２１  データ転送サイクル数カウンタ
１２２  レジスタ
【先行技術文献】
【特許文献】
【００８４】
【特許文献１】特開２０１２−０２７７５１号公報
【特許文献２】特開２００１−３０７０８３号公報
【特許文献３】特開２００４−１１４３３０号公報
【図１】
2014160341.tif 000003
【図２】
2014160341.tif 000004
【図３】
2014160341.tif 000005
【図４】
2014160341.tif 000006
【図５】
2014160341.tif 000007
【図６】
2014160341.tif 000008
【図７】
2014160341.tif 000009
【図８】
2014160341.tif 000010
【図９】
2014160341.tif 000011