説明

データ転送制御装置及び画像処理装置

【課題】簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させること。
【解決手段】データバス及びデータのアクセスルートを複数備えるデータ処理システムにおいて、データ転送制御装置100は、データ転送開始前に、外部からデータ転送における設定値が設定記憶される制御レジスタ部103と、上記制御レジスタ部103に記憶された上記設定値に基づき、上記複数のデータバス300,400の何れかを使用する、データが通過する経路を、自律的に決定する比較部104と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大容量のデータ転送を行うデータ転送制御装置及びそのようなデータ転送制御装置を有する画像処理装置に関する。
【背景技術】
【0002】
入出力装置からデータを効率よく転送する方法の1つに、デバイスとシステムメモリとの間でデータ転送を行うダイレクトメモリアクセス(以下、DMAと記す)転送方式がある。このDMA転送方式は、一般にデータ転送制御装置と呼ばれる新規のハードウェアを必要とする。しかしながら、デバイスとシステムメモリとの間で直接的にデータ転送が行えるため、データ転送効率に優れている。また、CPUを介さずにデータ転送処理を行う事ができるので、CPUの負荷が軽減され、システム全体の処理の高速化が実現されている。
【0003】
このようなデータ転送制御装置がバスに接続されるデータ転送装置を構成するときに、上記データ転送制御装置とデータバスとのインタフェースの整合性を考慮しなくてはならない。従って、複数のバスに上記データ転送制御装置を接続する場合は、例えば特許文献1に示されるような複数のバスI/F回路を備えたバスブリッジが必要となる。該特許文献1によれば、データ転送制御装置とバスの間に中継部を備える事により、複数のバス上にも上記データ転送制御装置を接続する事が可能となる。
【0004】
また、特許文献2のように、データ転送中継装置の内部にデータ記憶部を具備する事で連続転送を可能とし、さらなるデータ転送効率の向上が図られている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−134289号公報
【特許文献2】特開2004−355041号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
通常、LSIのデータバスは様々なサイズのデータ転送を行なっている。また、近年のデジタルカメラの撮像素子の高画素化に伴う画像データの大容量化と高速化や画像処理の複雑化によって、単位時間内に扱うデータのサイズは年々増大している。そのため、従来の構成のみではバス帯域の不足に陥るケースがみられた。
【0007】
この帯域不足を回避する従来手法として、バスのプライオリティ制御やLOCK制御、命令/制御バスとデータバスを分離する方法などがある。この場合、ROMから命令のフェッチやCPUから各レジスタ制御を行う際の低速アクセスによるバスの帯域の占有を軽減することができる。
【0008】
一方、デジタルカメラにおける撮像や画像処理、記録、表示等を同時に扱う、画像処理エンジンとも称される画像処理装置は、リアルタイム性と高速性の両立が求められている。この画像処理装置は、データの処理内容によって同一コアとメモリ間で転送されるデータ量と負荷が大きく変動する特徴を持っている。
【0009】
このため、デジタルカメラにおいて高速連写を行う場合、従来のデータ転送制御装置のようにCPUがバス状態の監視や制御を管理するだけでは処理が追いつかず、連写速度や連写枚数が制限されてしまう。また、高速データ転送中の少量のデータ転送や、撮像素子の高画素化に伴う記録画像と表示画像との間のデータ量の偏りなどから、使用条件によって局所的にバスの負荷がかかり、データバスのスループットが低下するという問題が出てきている。
【0010】
本発明は、上記の点に鑑みてなされたもので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができるデータ転送制御装置及びそのようなデータ転送制御装置を有する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明のデータ転送制御装置の一態様は、
データバス及びデータのアクセスルートを複数備えるデータ処理システムにおいて、
データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部と、
上記記憶部に記憶された上記設定値に基づき、上記複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部と、
を具備することを特徴とする。
また、本発明の画像処理装置の一態様は、
上記データ転送制御装置の一態様と、
上記複数のデータバスの一つに接続され、画像データを処理する画像処理部と、
を具備することを特徴とする。
【発明の効果】
【0012】
本発明によれば、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができるデータ転送制御装置及びそのようなデータ転送制御装置を有する画像処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1実施形態に係るデータ転送制御装置を備えるデータ処理システムの構成を示す図である。
【図2】第1実施形態に係るデータ転送制御装置の構成を示す図である。
【図3】第1実施形態に係るデータ転送制御装置における制御レジスタ部の構成を示す図である。
【図4】第6実施形態に係るデータ転送制御装置における制御レジスタ部の構成を示す図である。
【図5】本発明の一実施形態に係る画像処理装置を備えるデータ処理システムの構成を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための形態を図面を参照して説明する。
【0015】
(データ転送制御装置)
まず、本発明のデータ転送制御装置の実施形態を説明する。
【0016】
[第1実施形態]
図1に示すように、本発明の第1実施形態に係るデータ転送制御装置100は、データバス及びデータのアクセスルートを複数備えるデータ処理システムに適用される。即ち、このデータ処理システムは、本実施形態に係るデータ転送制御装置100と、メモリ200、第1バス300、第2バス400、CPU500、及びレジスタバス600と、から構成されている。
【0017】
第1バス300は、バス幅が128bitとなっており、データ転送制御装置100とメモリ200とが接続されている。第2バス400は、バス幅が32bitとなっており、CPU500とデータ転送制御装置100とメモリ200とが接続されている。
【0018】
メモリ200は、第2バス400に接続されているCPU500からのアクセスや、第1バス300及び第2バス400に接続されているデータ転送制御装置100からのDMA転送をスレーブ動作にて受け付け、データやCPU500のインストラクションデータを保存し、リード及びライトが可能となっている。
【0019】
CPU500は、レジスタバス600を介してデータ転送制御装置100に転送起動の指示や転送に関わる設定値を設定する。
【0020】
データ転送制御装置100は、図2に示すように、第1バス300に接続されているDMA転送を実施する第1DMAマスタポート部101と、第2バス400に接続されているDMA転送を実施する第2DMAマスタポート部102と、レジスタバス600と接続されレジスタ設定を受け付ける制御レジスタ部103と、制御レジスタ部103を基に比較を実施する比較部104と、第1DMAマスタポート部101または第2DMAマスタポート部102が取得したデータを保持するデータ処理部105と、から構成されている。
【0021】
制御レジスタ部103は、図3に示すように、転送開始レジスタ103−1、入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3、データサイズレジスタ103−4、入力バースト長レジスタ103−5、出力バースト長レジスタ103−6、入力データ幅サイズレジスタ103−7、出力データ幅サイズレジスタ103−8、入力アドレスレジスタ103−9、及び出力アドレスレジスタ103−10を有している。
【0022】
DMA転送開始レジスタ103−1は、当該データ転送制御装置100のDMA転送の開始時に所定の値、例えば「1」が設定記憶されるレジスタである。
【0023】
入力バス使用閾値レジスタ103−2及び出力バス使用閾値レジスタ103−3は、DMA転送の開始前に、比較部104で使用するための閾値情報が設定記憶されるレジスタである。また、データサイズレジスタ103−4は、第1DMAマスタポート部101または第2DMAマスタポート部102にてDMA転送する際のパラメータとなる、メモリ200からデータを取得する際またはメモリ200へデータを格納する際のデータサイズがDMA転送の開始前に設定されるレジスタである。本第1実施形態では、上記入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3には、閾値情報として、このデータ転送のデータサイズの閾値が設定記憶される。従って、これら入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3、及びデータサイズレジスタ103−4は、データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部として機能する。
【0024】
入力バースト長レジスタ103−5は、メモリ200からデータを取得する際の連続データ転送回数であるデータ転送のバースト長がDMA転送の開始前に設定されるレジスタであり、出力バースト長レジスタ103−6は、メモリ200へデータを格納する際の連続データ転送回数であるデータ転送のバースト長がDMA転送の開始前に設定されるレジスタである。
【0025】
入力データ幅サイズレジスタ103−7は、メモリ200からデータを取得する際のデータ幅であるデータ転送のデータバスのビット幅がDMA転送の開始前に設定されるレジスタであり、出力データ幅サイズレジスタ103−8は、メモリ200へデータを格納する際のデータ幅であるデータ転送のデータバスのビット幅がDMA転送の開始前に設定されるレジスタである。
【0026】
入力アドレスレジスタ103−9は、メモリ200からデータを取得する際のアドレスであるデータ転送の転送元アドレスがDMA転送の開始前に設定されるレジスタであり、出力アドレスレジスタ103−10は、メモリ200へデータを格納する際のアドレスであるデータ転送の転送先アドレスがDMA転送の開始前に設定されるレジスタである。
【0027】
比較部104は、DMA転送開始レジスタ103−1に所定の値が設定された際に、メモリ200からのデータ取得のみの動作の場合は、データサイズレジスタ103−4に設定されているデータサイズと入力バス使用閾値レジスタ103−2に設定されているデータサイズの閾値とを比較する。そして、データサイズレジスタ103−4に設定されているデータサイズの方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きければ、データが通過する経路を、第1DMAマスタポート部101側と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200からデータを取得し、データ処理部105へ送る。これに対して、データサイズレジスタ103−4に設定されているデータサイズが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくなければ、データが通過する経路を、第2DMAマスタポート部102側と決定する。これにより、第2DMAマスタポート部102は、DMA転送にて第2バス400を経由してメモリ200からデータを取得し、データ処理部105へ格納する。
【0028】
一方、メモリ200へのデータ格納のみの動作の場合は、比較部104は、データサイズレジスタ103−4に設定されているデータサイズと出力バス使用閾値レジスタ103−3に設定されているデータサイズの閾値とを比較する。そして、データサイズレジスタ103−4に設定されているデータサイズの方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくなければ、データが通過する経路を、第2DMAマスタポート部102側と決定する。これにより、第2DMAマスタポート部102は、データ処理部105にあるデータをDMA転送にて第2バス400を経由してメモリ200へ送る。これに対して、データサイズレジスタ103−4に設定されているデータサイズの方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きければ、データが通過する経路を、第1DMAマスタポート部101側と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200へデータ処理部105にあるデータを送る。
【0029】
以上のように、比較部104は、記憶部に記憶された設定値に基づき、複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部として機能する。
【0030】
以下、より具体的な例を用いて説明する。
【0031】
本実施形態では、主に以下の8つの動作がある。
(1)データ転送制御装置100が、一般的な記録サイズである12M(4000×3000)サイズの記録用画像データを、第1バス300経由でメモリ200から取得する。
(2)データ転送制御装置100が、一般的な記録サイズである12Mサイズの記録用画像データを、第2バス400経由でメモリ200から取得する。
(3)データ転送制御装置100が、一般的な記録サイズである12Mサイズの記録用画像データを、第1バス300経由でメモリ200へ格納する。
(4)データ転送制御装置100が、一般的な記録サイズである12Mサイズの記録用画像データを、第2バス400経由でメモリ200へ格納する。
(5)データ転送制御装置100が、一般的な表示サイズであるVGA(640×480)サイズの表示用画像データを、第1バス300経由でメモリ200から取得する。
(6)データ転送制御装置100が、一般的な表示サイズであるVGAサイズの表示用画像データを、第2バス400経由でメモリ200から取得する。
(7)データ転送制御装置100が、一般的な表示サイズであるVGAサイズの表示用画像データを、第1バス300経由でメモリ200へ格納する。
(8)データ転送制御装置100が、一般的な表示サイズであるVGAサイズの表示用画像データを、第2バス400経由でメモリ200へ格納する。
【0032】
上記(1)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103に対し、データサイズレジスタ103−4には記録サイズである12Mを、入力バス使用閾値レジスタ103−2には閾値情報として記録サイズの半分の値(6M)を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0033】
起動させられたデータ転送制御装置100は、比較部104にて、データサイズレジスタ103−4に設定されているデータサイズと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、データサイズレジスタ103−4に設定されているデータサイズが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101が第1バス300を通してメモリ200からデータを取得し、それをデータ処理部105に格納する。
【0034】
上記(2)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、データサイズレジスタ103−4には記録サイズである12Mを、入力バス使用閾値レジスタ103−2には閾値情報として記録サイズの倍の値(24M)を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0035】
起動させられたデータ転送制御装置100は、比較部104にて、データサイズレジスタ103−4に設定されているデータサイズと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、データサイズレジスタ103−4に設定されているデータサイズが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102が第2バス400を通してメモリ200からデータを取得し、それをデータ処理部105に格納する。
【0036】
上記(3)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、データサイズレジスタ103−4には記録サイズである12Mを、出力バス使用閾値レジスタ103−3には閾値情報として記録サイズの半分の値(6M)を、それぞれ設定する。また、出力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0037】
起動させられたデータ転送制御装置100は、比較部104にて、データサイズレジスタ103−4に設定されているデータサイズと出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、データサイズレジスタ103−4に設定されているデータサイズが出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101がデータ処理部105に格納されている記録用データを第1バス300を通してメモリ200へ送り、そこに格納する。
【0038】
上記(4)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、データサイズレジスタ103−4には記録サイズである12Mを、出力バス使用閾値レジスタ103−3には記録サイズの倍の値(24M)を、それぞれ設定する。また、出力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0039】
起動させられたデータ転送制御装置100は、比較部104にて、データサイズレジスタ103−4に設定されているデータサイズと出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、データサイズレジスタ103−4に設定されているデータサイズが出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102がデータ処理部105に格納されている記録用データを第2バス400を通してメモリ200へ送り、そこに格納する。
【0040】
上記(5)〜(8)の動作は、上記(1)〜(4)の画像サイズを12MサイズからVGAサイズへ変更したデータ転送の実施である。よって、その説明は省略する。
【0041】
なお、上記のパラメータ及び閾値の各値は一例に過ぎず、本発明はそれらの値に限定するものでないことは勿論である。
【0042】
以上のように、本第1実施形態によれば、制御レジスタ部103の入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3及びデータサイズレジスタ103−4に記憶された設定値に基づき、第1バス300と第2バス400の何れかを使用する、データが通過する経路を、自律的に決定するので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができる。
【0043】
また、データが通過する経路の決定は、サイズ情報がその閾値よりも大きいか否かに基づいて、簡単に行なうことができる。そして、サイズ情報として、データサイズを用いることで、例えば記録する画像データと、表示する画像データとで閾値を変更することにより、自律的にデータ経路の変更が可能となる。
【0044】
なお、上記実施形態では、比較部104においてデータサイズが入力または出力バス使用閾値より大きいか否かにより、使用するDMAマスタポート部を選択するようにしていたが、これに限定されるものではなく、それ以外の大きい、等しい、小さいなどの3種以上の比較に変更しても、同様の効果を得ることが可能である。
【0045】
[第2実施形態]
本発明の第2実施形態に係るデータ転送制御装置100の構成は、上記第1実施形態のそれと同様であり、比較部104が比較する対象が異なる。
【0046】
以下、上記第1実施形態と異なる部分を説明する。
【0047】
本第2実施形態では、DMA転送の開始前に、比較部104で使用するための閾値情報が設定記憶されるレジスタである入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3には、閾値情報として、このデータ転送のバースト長の閾値が設定記憶される。即ち、本実施形態では、これら入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3と、データ転送のバースト長が設定される入力バースト長レジスタ103−5または出力バースト長レジスタ103−6とは、データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部として機能する。
【0048】
比較部104は、DMA転送開始レジスタ103−1に所定の値が設定された際に、メモリ200からのデータ取得のみの動作の場合は、入力バースト長レジスタ103−5に設定されているバースト長と入力バス使用閾値レジスタ103−2に設定されているバースト長の閾値とを比較する。そして、入力バースト長レジスタ103−5に設定されているバースト長の方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きければ、データが通過する経路を、第1DMAマスタポート部101側と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200からデータを取得し、データ処理部105へ送る。これに対して、入力バースト長レジスタ103−5に設定されているバースト長が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくなければ、データが通過する経路を、第2DMAマスタポート部102側と決定する。これにより、第2DMAマスタポート部102は、DMA転送にて第2バス400を経由してメモリ200からデータを取得し、データ処理部105へ格納する。
【0049】
一方、メモリ200へのデータ格納のみの動作の場合は、比較部104は、出力バースト長レジスタ103−6に設定されているバースト長と出力バス使用閾値レジスタ103−3に設定されているバースト長の閾値とを比較する。そして、出力バースト長レジスタ103−6に設定されているバースト長の方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくなければ、データが通過する経路を、第2DMAマスタポート部102側と決定する。これにより、第2DMAマスタポート部102は、データ処理部105にあるデータをDMA転送にて第2バス400を経由してメモリ200へ送る。これに対して、出力バースト長レジスタ103−6に設定されているバースト長の方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きければ、データが通過する経路を、第1DMAマスタポート部101側と決定する。これにより、第1DMAマスタポート部101は、データ処理部105にあるデータをDMA転送にて第1バス300を経由してメモリ200へ送る。
【0050】
以上のように、本第2実施形態においても、比較部104は、記憶部に記憶された設定値に基づき、複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部として機能する。
【0051】
以下、より具体的な例を用いて説明する。
【0052】
本実施形態では、主に以下の8つの動作がある。
(1)データ転送制御装置100が、第1バス300を通してバースト転送にてデータをメモリ200から取得する。
(2)データ転送制御装置100が、第2バス400を通してバースト転送にてデータをメモリ200から取得する。
(3)データ転送制御装置100が、第1バス300を通してバースト転送にてデータをメモリ200へ格納する。
(4)データ転送制御装置100が、第2バス400を通してバースト転送にてデータをメモリ200へ格納する。
(5)データ転送制御装置100が、第1バス300を通してシングル転送にてデータをメモリ200から取得する。
(6)データ転送制御装置100が、第2バス400を通してシングル転送にてデータをメモリ200から取得する。
(7)データ転送制御装置100が、第1バス300を通してシングル転送にてデータをメモリ200へ格納する。
(8)データ転送制御装置100が、第2バス400を通してシングル転送にてデータをメモリ200へ格納する。
【0053】
上記(1)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、入力バースト長レジスタ103−5には「4」を、入力バス使用閾値レジスタ103−2には「3」を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0054】
起動させられたデータ転送制御装置100は、比較部104にて、入力バースト長レジスタ103−5に設定されているバースト長と入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、入力バースト長レジスタ103−5に設定されているバースト長が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101が第1バス300を通してメモリ200からバースト転送にてデータを取得し、それをデータ処理部105に格納する。
【0055】
上記(2)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、入力バースト長レジスタ103−5には「4」を、入力バス使用閾値レジスタ103−2には「8」を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0056】
起動させられたデータ転送制御装置100は、比較部104にて、入力バースト長レジスタ103−5に設定されているバースト長と入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、入力バースト長レジスタ103−5に設定されているバースト長が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102が第2バス400を通してメモリ200からバースト転送にてデータを取得し、それをデータ処理部105に格納する。
【0057】
上記(3)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、出力バースト長レジスタ103−6には「4」を、出力バス使用閾値レジスタ103−3は「3」を、それぞれ設定する。また、出力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0058】
起動させられたデータ転送制御装置100は、比較部104にて、出力バースト長レジスタ103−6に設定されているバースト長と出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、出力バースト長レジスタ103−6に設定されているバースト長が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101がデータ処理部105にあるデータを第1バス300を通してメモリ200へバースト転送にて送り、そこに格納する。
【0059】
上記(4)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、出力バースト長レジスタ103−5には「4」を、出力バス使用閾値レジスタ103−3には「8」を、それぞれ設定する。また、出力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0060】
起動させられたデータ転送制御装置100は、比較部104にて、出力バースト長レジスタ103−6に設定されているバースト長と出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、出力バースト長レジスタ103−6に設定されているバースト長が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102がデータ処理部105にあるデータを第2バス400を通してメモリ200へバースト転送にて送り、そこに格納する。
【0061】
上記(5)〜(8)の動作は、上記(1)〜(4)の入力バースト長レジスタ103−5または出力バースト長レジスタ103−6に設定する値を「2」、閾値を「1」または「4」としたシングル転送の実施である。よって、その説明は省略する。
【0062】
なお、上記のパラメータ及び閾値の各値は一例に過ぎず、本発明はそれらの値に限定するものでないことは勿論である。
【0063】
以上のように、本第2実施形態によれば、制御レジスタ部103の入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3と、入力バースト長レジスタ103−5または出力バースト長レジスタ103−6とに記憶された設定値に基づき、第1バス300と第2バス400の何れかを使用する、データが通過する経路を、自律的に決定するので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができる。
【0064】
また、データが通過する経路の決定は、サイズ情報がその閾値よりも大きいか否かに基づいて、簡単に行なうことができる。そして、サイズ情報として、データ転送のバースト長を用いることで、例えばバースト転送とシングル転送にて閾値を変更することにより、自律的にデータ経路の変更が可能となる。
【0065】
なお、上記実施形態では、比較部104においてバースト長が入力または出力バス使用閾値より大きいか否かにより、使用するDMAマスタポート部を選択するようにしていたが、これに限定されるものではなく、それ以外の大きい、等しい、小さいなどの3種以上の比較に変更しても、同様の効果を得ることが可能である。
【0066】
[第3実施形態]
本発明の第3実施形態に係るデータ転送制御装置100の構成は、上記第1実施形態のそれと同様であり、比較部104が比較する対象が異なる。
【0067】
以下、上記第1実施形態と異なる部分を説明する。
【0068】
本第3実施形態では、DMA転送の開始前に、比較部104で使用するための閾値情報が設定記憶されるレジスタである入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3には、閾値情報として、このデータ転送のデータバスのビット幅の閾値が設定記憶される。即ち、本実施形態では、これら入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3と、データ転送のデータバスのビット幅が設定される入力データ幅サイズレジスタ103−7または出力データ幅サイズレジスタ103−8とは、データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部として機能する。
【0069】
比較部104は、DMA転送開始レジスタ103−1に所定の値が設定された際に、メモリ200からのデータ取得のみの動作の場合は、入力データ幅サイズレジスタ103−7に設定されているビット幅と入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。そして、入力データ幅サイズレジスタ103−7に設定されているビット幅の方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きければ、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200からデータを取得し、データ処理部105へ送る。これに対して、入力データ幅サイズレジスタ103−7に設定されているビット幅が入力バス使用閾値レジスタ103−2に設定されている閾値より大きくなければ、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102は、DMA転送にて第2バス400を経由してメモリ200からデータを取得し、データ処理部105へ格納する。
【0070】
一方、メモリ200へのデータ格納のみの動作の場合は、比較部104は、出力データ幅サイズレジスタ103−8に設定されているビット幅と出力バス使用閾値レジスタ103−3に設定されている閾値と比較する。そして、出力データ幅サイズレジスタ103−8に設定されているビット幅の方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくなければ、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102は、データ処理部105にあるデータをDMA転送にて第2バス400を経由してメモリ200へ送る。これに対して、出力データ幅サイズレジスタ103−8に設定されているビット幅の方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きければ、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101は、データ処理部105にあるデータをDMA転送にて第1バス300を経由してメモリ200へ送る。
【0071】
以上のように、本第3実施形態においても、比較部104は、記憶部に記憶された設定値に基づき、複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部として機能する。
【0072】
以下、より具体的な例を用いて説明する。
【0073】
本実施形態では、主に以下の8つの動作がある。
(1)データ転送制御装置100が、第1バス300を通してデータ幅128bitのデータをメモリ200から取得する。
(2)データ転送制御装置100が、第2バス400を通してデータ幅128bitのデータをメモリ200から取得する。
(3)データ転送制御装置100が、第1バス300を通してデータ幅128bitのデータをメモリ200へ格納する。
(4)データ転送制御装置100が、第2バス400を通してデータ幅128bitのデータをメモリ200へ格納する。
(5)データ転送制御装置100が、第1バス300を通して一般的なCPUであつかうデータ幅32bitのデータをメモリ200から取得する。
(6)データ転送制御装置100が、第2バス400を通して一般的なCPUであつかうデータ幅32bitのデータをメモリ200から取得する。
(7)データ転送制御装置100が、第1バス300を通して一般的なCPUであつかうデータ幅32bitのデータをメモリ200へ格納する。
(8)データ転送制御装置100が、第2バス400を通して一般的なCPUであつかうデータ幅32bitのデータをメモリ200へ格納する。
【0074】
上記(1)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、入力データ幅サイズレジスタ103−7には「128」を、入力バス使用閾値レジスタ103−2には「64」を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0075】
起動させられたデータ転送制御装置100は、比較部104にて、入力データ幅サイズレジスタ103−7に設定されているビット幅と入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、入力データ幅サイズレジスタ103−7に設定されているビット幅が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101が第1バス300を通して入力データ幅サイズレジスタ103−7に設定されているビット幅単位ごとにメモリ200からデータを取得し、それをデータ処理部105に格納する。
【0076】
上記(2)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、入力データ幅サイズレジスタ103−7には「128」を、入力バス使用閾値レジスタ103−2には「256」を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0077】
起動させられたデータ転送制御装置100は、比較部104にて、入力データ幅サイズレジスタ103−7に設定されているビット幅と入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、入力データ幅サイズレジスタ103−7に設定されているビット幅が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102が第2バス400を通して入力データ幅サイズレジスタ103−7に設定されているビット幅単位ごとにメモリ200からデータを取得し、それをデータ処理部105に格納する。
【0078】
上記(3)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、出力データ幅サイズレジスタ103−8には「128」を、出力バス使用閾値レジスタ103−3には「64」を、それぞれ設定する。また、出力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0079】
起動させられたデータ転送制御装置100は、比較部104にて、出力データ幅サイズレジスタ103−8に設定されているビット幅と出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、出力データ幅サイズレジスタ103−8に設定されているビット幅が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101がデータ処理部105に格納されているデータを、出力データ幅サイズレジスタ103−8に設定されているビット幅単位ごとに第1バス300を通してメモリ200へのDMA転送を実施し、そこにデータを格納する。
【0080】
上記(4)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、出力データ幅サイズレジスタ103−8には「128」、出力バス使用閾値レジスタ103−3には「256」を、それぞれ設定する。また、出力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0081】
起動させられたデータ転送制御装置100は、比較部104にて、出力データ幅サイズレジスタ103−8に設定されているビット幅と出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、出力データ幅サイズレジスタ103−8に設定されているビット幅が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102がデータ処理部105に格納されているデータを、出力データ幅サイズレジスタ103−8に設定されているビット幅単位ごとに第2バス400を通してメモリ200へのDMA転送を実施し、そこに格納する。
【0082】
上記(5)〜(8)の動作は、上記(1)〜(4)の入力データ幅サイズレジスタ103−7または出力データ幅サイズレジスタ103−8の値を「32」とし、また、入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3に設定する閾値を「64」または「16」とした転送の実施である。よって、その説明は省略する。
【0083】
なお、上記のパラメータ及び閾値の各値は一例に過ぎず、本発明はそれらの値に限定するものでないことは勿論である。
【0084】
以上のように、本第3実施形態によれば、制御レジスタ部103の入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3と、入力データ幅サイズレジスタ103−7または出力データ幅サイズレジスタ103−8とに記憶された設定値に基づき、第1バス300と第2バス400の何れかを使用する、データが通過する経路を、自律的に決定するので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができる。
【0085】
また、データが通過する経路の決定は、サイズ情報がその閾値よりも大きいか否かに基づいて、簡単に行なうことができる。そして、サイズ情報として、データ転送のデータバスのビット幅を用いることで、例えばCPU用のデータ転送とその他データ転送にて閾値を変更することにより、自律的にデータ経路の変更が可能となる。
【0086】
なお、上記実施形態では、比較部104においてデータ幅サイズが入力または出力バス使用閾値より大きいか否かにより、使用するDMAマスタポート部を選択するようにしていたが、これに限定されるものではなく、それ以外の大きい、等しい、小さいなどの3種以上の比較に変更しても、同様の効果を得ることが可能である。
【0087】
[第4実施形態]
本発明の第4実施形態に係るデータ転送制御装置100の構成は、上記第1実施形態のそれと同様であり、比較部104が比較する対象が異なる。
【0088】
以下、上記第1実施形態と異なる部分を説明する。
【0089】
本第4実施形態では、DMA転送の開始前に、比較部104で使用するための閾値情報が設定記憶されるレジスタである入力バス使用閾値レジスタ103−2及び出力バス使用閾値レジスタ103−3には、閾値情報として、アドレス範囲を示す情報が設定記憶される。即ち、本実施形態では、これら入力バス使用閾値レジスタ103−2及び出力バス使用閾値レジスタ103−3と、転送元アドレスが設定される入力アドレスレジスタ103−9及び転送先アドレスが設定される出力アドレスレジスタ103−10とは、データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部として機能する。
【0090】
比較部104は、DMA転送開始レジスタ103−1に所定の値が設定された際に、入力アドレスレジスタ103−9に設定されている転送元アドレスと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。そして、入力アドレスレジスタ103−9に設定されている転送元アドレスの方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きければ、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200の転送元アドレスよりデータを取得し、それをデータ処理部105へ送る。これに対して、入力アドレスレジスタ103−9に設定されている転送元アドレスの方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくなければ、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102は、DMA転送にて第2バス400を経由してメモリ200の転送元アドレスよりデータを取得し、それをデータ処理部105へ送る。
【0091】
こうしてデータを取得した後、比較部104は、出力アドレスレジスタ103−10に設定されている転送先アドレスと出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。そして、出力アドレスレジスタ103−10に設定されている転送先アドレスの方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくなければ、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102は、データ処理部105にあるデータをDMA転送にて第2バス400を経由してメモリ200の転送先アドレスへ送る。これに対して、出力アドレスレジスタ103−10に設定されている転送先アドレスの方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きければ、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101は、データ処理部105にあるデータをDMA転送にて第1バス300を経由してメモリ200の転送先アドレスへ送る。
【0092】
以上のように、本第4実施形態においても、比較部104は、記憶部に記憶された設定値に基づき、複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部として機能する。
【0093】
以下、より具体的な例を用いて説明する。
【0094】
本実施形態では、主に以下の4つの動作がある。
(1)データ転送制御装置100が、第1バス300経由にてメモリ200からデータ取得し、その取得したデータを第2バス400経由にてメモリ200へ格納する。
(2)データ転送制御装置100が、第1バス300経由にてメモリ200からデータ取得し、その取得したデータを第1バス300経由にてメモリ200へ格納する。
(3)データ転送制御装置100が、第2バス400経由にてメモリ200からデータ取得し、その取得したデータを第2バス400経由にてメモリ200へ格納する。
(4)データ転送制御装置100が、第2バス400経由にてメモリ200からデータ取得し、その取得したデータを第1バス300経由にてメモリ200へ格納する。
【0095】
上記(1)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、入力アドレスレジスタ103−9には転送元アドレスとして例えば「0x10000000」を、出力アドレスレジスタ103−10には転送先アドレス値として例えば「0x00000000」を、入力バス使用閾値レジスタ103−2には「0x08000000」を、出力バス使用閾値レジスタ103−3には「0x08000000」を、それぞれ設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0096】
起動させられたデータ転送制御装置100は、比較部104にて、入力アドレスレジスタ103−9に設定されている転送元アドレスと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、入力アドレスレジスタ103−9に設定されている転送元アドレスが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101が第1バス300を通してメモリ200の入力アドレスレジスタ103−9に設定されている転送元アドレスからデータを取得し、それをデータ処理部105に格納する。
【0097】
その後、比較部104は、出力アドレスレジスタ103−10に設定されている転送先アドレスと出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、出力アドレスレジスタ103−10に設定されている転送先アドレスが出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102がデータ処理部105に格納されているデータを第2バス400を通してメモリ200の出力アドレスレジスタ103−10に設定されている転送先アドレスへDMA転送を実施し、メモリ200の該当アドレスへそのデータを格納する。
【0098】
上記(2)〜(4)の動作は、入力アドレスレジスタ103−9に設定する転送元アドレスと入力バス使用閾値レジスタ103−2に設定する閾値、及び出力アドレスレジスタ103−10に設定する転送先アドレスと出力バス使用閾値レジスタ103−3に設定する閾値とを変更することにより実現できる。よって、その説明は省略する。
【0099】
なお、上記のパラメータ及び閾値の各値は一例に過ぎず、本発明はそれらの値に限定するものでないことは勿論である。
【0100】
以上のように、本第4実施形態によれば、制御レジスタ部103の入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3、入力アドレスレジスタ103−9及び出力アドレスレジスタ103−10に記憶された設定値に基づき、第1バス300と第2バス400の何れかを使用する、データが通過する経路を、自律的に決定するので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができる。
【0101】
また、データが通過する経路の決定は、アドレス情報が閾値としてのアドレス範囲を示す情報よりも大きいか否かに基づいて、簡単に行なうことができる。そして、アドレス情報として、転送元アドレスまたは転送先アドレスを用いることで、例えばアドレスの範囲にて閾値を変更することにより、自律的にデータ経路の変更が可能となる。
【0102】
なお、上記実施形態では、比較部104において転送元または転送先アドレスが入力または出力バス使用閾値より大きいか否かにより、使用するDMAマスタポート部を選択するようにしていたが、これに限定されるものではなく、それ以外の大きい、等しい、小さいなどの3種以上の比較に変更しても、同様の効果を得ることが可能である。
【0103】
[第5実施形態]
本発明の第5実施形態に係るデータ転送制御装置100の構成は、上記第1実施形態のそれと同様であり、比較部104が比較する対象が異なる。
【0104】
以下、上記第1実施形態と異なる部分を説明する。
【0105】
本第5実施形態では、DMA転送の開始前に、比較部104で使用するための閾値情報が設定記憶されるレジスタである入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3には、閾値情報として、アドレス範囲を示す情報が設定記憶される。即ち、本実施形態では、入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3と、転送元アドレスが設定される入力アドレスレジスタ103−9または転送先アドレスが設定される出力アドレスレジスタ103−10とは、データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部として機能する。
【0106】
比較部104は、DMA転送開始レジスタ103−1に所定の値が設定された際に、メモリ200からのデータ取得のみ動作の場合は、入力アドレスレジスタ103−9に設定されている転送元アドレスと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。そして、入力アドレスレジスタ103−9に設定されている転送元アドレスの方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きければ、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200の転送元アドレスよりデータを取得し、それをデータ処理部105へ送って格納する。これに対して、入力アドレスレジスタ103−9に設定されている転送元アドレスの方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくなければ、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102は、DMA転送にて第2バス400を経由してメモリ200の転送元アドレスよりデータを取得し、それをデータ処理部105へ送って格納する。
【0107】
一方、メモリ200へのデータ格納のみの動作の場合には、比較部104は、出力アドレスレジスタ103−10に設定されている転送先アドレスと出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。そして、出力アドレスレジスタ103−10に設定されている転送先アドレスの方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくなければ、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102は、データ処理部105にあるデータをDMA転送にて第2バス400を経由してメモリ200の転送先アドレスへ送る。これに対して、出力アドレスレジスタ103−10に設定されている転送先アドレスの方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きければ、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101は、データ処理部105にあるデータをDMA転送にて第1バス300を経由してメモリ200の転送先アドレスへ送る。
【0108】
以上のように、本第5実施形態においても、比較部104は、記憶部に記憶された設定値に基づき、複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部として機能する。
【0109】
以下、より具体的な例を用いて説明する。
【0110】
本実施形態では、主に以下の4つの動作がある。
(1)データ転送制御装置100が、第1バス300経由にてメモリ200からデータ取得する。
(2)データ転送制御装置100が、第1バス300経由にてメモリ200へデータ格納する。
(3)データ転送制御装置100が、第2バス400経由にてメモリ200からデータ取得する。
(4)データ転送制御装置100が、第2バス400経由にてメモリ200へデータ格納する。
【0111】
上記(1)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、入力アドレスレジスタ103−9には転送元アドレスとして例えば「0x10000000」を、入力バス使用閾値レジスタ103−2には「0x08000000」を、それぞれ設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0112】
起動させられたデータ転送制御装置100は、比較部104にて、入力アドレスレジスタ103−9に設定されている転送元アドレスと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、入力アドレスレジスタ103−9に設定されている転送元アドレスが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101が第1バス300を通してメモリ200の入力アドレスレジスタ103−9に設定されている転送元アドレスからデータを取得し、それをデータ処理部105に格納する。
【0113】
上記(2)の動作を行なう場合には、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。即ち、出力アドレスレジスタ103−10には転送先アドレス値として例えば「0x10000000」を、出力バス使用閾値レジスタ103−3には「0x08000000」を、それぞれ設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0114】
比較部104は、出力アドレスレジスタ103−10に設定されている転送先アドレスと出力バス使用閾値レジスタ103−3に設定されている閾値とを比較する。この場合、出力アドレスレジスタ103−10に設定されている転送先アドレスが出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101がデータ処理部105に格納されているデータを第1バス300を通してメモリ200の出力アドレスレジスタ103−10に設定されている転送先アドレスへDMA転送を実施し、メモリ200の該当アドレスへそのデータを格納する。
【0115】
上記(3)、(4)の動作は、入力アドレスレジスタ103−9に設定する転送元アドレスと入力バス使用閾値レジスタ103−2に設定する閾値、出力アドレスレジスタ103−10に設定する転送先アドレスと出力バス使用閾値レジスタ103−3に設定する閾値を変更することにより実現できる。よって、その説明は省略する。
【0116】
なお、上記のパラメータ及び閾値の各値は一例に過ぎず、本発明はそれらの値に限定するものでないことは勿論である。
【0117】
以上のように、本第5実施形態によれば、制御レジスタ部103の入力バス使用閾値レジスタ103−2または出力バス使用閾値レジスタ103−3と、入力アドレスレジスタ103−9または出力アドレスレジスタ103−10とに記憶された設定値に基づき、第1バス300と第2バス400の何れかを使用する、データが通過する経路を、自律的に決定するので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができる。
【0118】
また、データが通過する経路の決定は、アドレス情報が閾値としてのアドレス範囲を示す情報よりも大きいか否かに基づいて、簡単に行なうことができる。そして、アドレス情報として、転送元アドレスまたは転送先アドレスを用いることで、例えばアドレスの範囲にて閾値を変更することにより、自律的にデータ経路の変更が可能となる。
【0119】
なお、上記実施形態では、比較部104において転送元または転送先アドレスが入力または出力バス使用閾値より大きいか否かにより、使用するDMAマスタポート部を選択するようにしていたが、これに限定されるものではなく、それ以外の大きい、等しい、小さいなどの3種以上の比較に変更しても、同様の効果を得ることが可能である。
【0120】
[第6実施形態]
上記第1乃至第5実施形態では、比較部104における比較対象がハードウェア的に決められていたが、ソフトウェア的に比較対象を指定可能とすることで、必要に応じて上記第1乃至第5実施形態の何れの動作も実行可能とすることができる。
【0121】
例えば、図4に示すように、入力バス使用閾値レジスタ103−2、出力バス使用閾値レジスタ103−3、データサイズレジスタ103−4、入力バースト長レジスタ103−5、出力バースト長レジスタ103−6、入力データ幅サイズレジスタ103−7、出力データ幅サイズレジスタ103−8、入力アドレスレジスタ103−9、及び出力アドレスレジスタ103−10のMSB等の所定の1ビットを設定値有効フラグとして用いる。比較部104は、この設定値有効フラグが所定の値、例えば「1」となっているレジスタの設定値を比較対象として比較を行なう。図4は、第1実施形態の(1)の動作を行なう場合を示している。
【0122】
また、このような設定値有効フラグを使用することにより、上記第1乃至第5実施形態の組み合わせ、即ち、複数組の閾値判定によりデータが通過する経路を決定することも可能となる。
【0123】
例えば、データが通過する経路を、メモリ200からのデータの取得に関しては上記第1実施形態のようなデータサイズにより決定し、メモリ200へのデータの格納に関しては上記第2実施形態のようなデータ転送のバースト長により決定することができる。この場合は、DMA転送の開始前に、入力バス使用閾値レジスタ103−2にはデータサイズの閾値が、また、出力バス使用閾値レジスタ103−3にはデータ転送のバースト長の閾値が、それぞれ設定記憶され、更に、データサイズレジスタ103−4及び出力バースト長レジスタ103−6にパラメータとなるデータサイズ及びデータ転送のバースト長が設定されると共に、それらレジスタ103−2,103−3,103−4,103−6の設定値有効フラグが所定の値、例えば「1」とされる。
【0124】
そして、比較部104は、DMA転送開始レジスタ103−1に所定の値が設定された際に、メモリ200からのデータ取得のみ動作を行なう場合に、データサイズレジスタ103−4に設定されているデータサイズと入力バス使用閾値レジスタ103−2に設定されているデータサイズの閾値とを比較する。そして、データサイズレジスタ103−4に設定されているデータサイズの方が入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きければ、データが通過する経路を、第1DMAマスタポート部101側と決定する。これにより、第1DMAマスタポート部101は、DMA転送にて第1バス300を経由してメモリ200からデータを取得し、データ処理部105へ送る。これに対して、データサイズレジスタ103−4に設定されているデータサイズが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくなければ、データが通過する経路を、第2DMAマスタポート部102側と決定する。これにより、第2DMAマスタポート部102は、DMA転送にて第2バス400を経由してメモリ200からデータを取得し、データ処理部105へ格納する。
【0125】
一方、メモリ200へのデータ格納の動作を行なう場合には、比較部104は、出力バースト長レジスタ103−6に設定されているバースト長と出力バス使用閾値レジスタ103−3に設定されているバースト長の閾値とを比較する。そして、出力バースト長レジスタ103−6に設定されているバースト長の方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きくなければ、データが通過する経路を、第2DMAマスタポート部102側と決定する。これにより、第2DMAマスタポート部102は、データ処理部105にあるデータをDMA転送にて第2バス400を経由してメモリ200へ送る。これに対して、出力バースト長レジスタ103−6に設定されているバースト長の方が出力バス使用閾値レジスタ103−3に設定されている閾値よりも大きければ、データが通過する経路を、第1DMAマスタポート部101側と決定する。これにより、第1DMAマスタポート部101は、データ処理部105にあるデータをDMA転送にて第1バス300を経由してメモリ200へ送る。
【0126】
このように、複数組の閾値判定によりデータが通過する経路を決定することも可能となる。但し、一つの閾値判定からは第1バス300、他の閾値判定からは第2バス400、というような矛盾する経路決定が発生しないように、その組み合わせには注意が必要である。
【0127】
なお、各レジスタ103−2〜103−10にそれぞれ設定値有効フラグを設ける代わりに、各ビットが各レジスタ103−2〜103−10の有効/無効を示す一つの設定値有効指示レジスタを設け、比較部104は、その設定値有効指示レジスタで所定の値、例えば「1」となっているビットに対応するレジスタの設定値を比較対象として比較を行なうような構成とすることも可能である。
【0128】
(画像処理装置)
次に、上記第1乃至第6実施形態を用いて説明したような本発明のデータ転送制御装置を有する本発明の画像処理装置の一実施形態を説明する。
【0129】
図5に示すように、本発明の一実施形態に係る画像処理装置は、データバス及びデータのアクセスルートを複数備えるデータ処理システムに適用される。即ち、このデータ処理システムは、データ転送制御装置100と、メモリ200、第1バス300、第2バス400、CPU500、レジスタバス600及び画像処理部700と、から構成され、画像処理装置は、その内の少なくともデータ転送制御装置100と画像処理部700とを含む。
【0130】
第1バス300は、バス幅が128bitとなっており、データ転送制御装置100とメモリ200と画像処理部700とが接続されている。第2バス400は、バス幅が32bitとなっており、CPU500とデータ転送制御装置100とメモリ200とが接続されている。
【0131】
メモリ200は、第2バス400に接続されているCPU500からのアクセスや、第1バス300及び第2バス400に接続されているデータ転送制御装置100からのDMA転送をスレーブ動作にて受け付け、データやCPU500のインストラクションデータを保存し、リード及びライトが可能となっている。
【0132】
CPU500は、レジスタバス600を介してデータ転送制御装置100に転送起動の指示や転送に関わる設定値を設定する。さらに、CPU500は、レジスタバス600を介して画像処理部700へ処理用のパラメータを設定する。
【0133】
画像処理部700は、画像データに対して一般的なフィルタ演算、デモザイク演算、拡大縮小演算などの処理を実行可能であり、演算対象データを第1バス300経由でメモリ200から取得し、演算終了後に演算結果データを第1バス300経由でメモリ200へ格納する。
【0134】
このような画像処理装置の動作につき、以下の代表的な2種類の動作を説明する。
(1)画像処理装置の撮影時において、画像処理部700にて一般的な記録サイズである12Mの記録用画像データを画像処理後に、データ転送制御装置100が第1バス300を通してデータを取得する。
(2)画像処理装置の表示時において、画像処理部700にて一般的な表示サイズであるVGAの表示用画像データを画像処理後に、データ転送制御装置100が第2バス400を通してデータを取得する。
【0135】
上記(1)の動作を行なう場合には、最初に、画像処理部700が第1バス300を通して記録用画像データをメモリ200から取得し、フィルタ演算を実施する。そして、演算完了後に、第1バス300を通してその演算結果の記録用画像データをメモリ200に格納する。
【0136】
その後に、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。例えば、上記データ転送制御装置100の第1実施形態を例に取れば、データサイズレジスタ103−4には記録サイズである12Mを、入力バス使用閾値レジスタ103−2には記録サイズの半分の値(6M)を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0137】
起動させられたデータ転送制御装置100は、比較部104にて、データサイズレジスタ103−4に設定されているデータサイズと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、データサイズレジスタ103−4に設定されているデータサイズが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きいため、第1DMAマスタポート部101をデータが通過する経路と決定する。これにより、第1DMAマスタポート部101が第1バス300を通してメモリ200から上記演算結果の記録用画像データを取得し、それをデータ処理部105に格納する。
【0138】
上記(2)の動作を行なう場合には、最初に、画像処理部700が第1バス300を通して表示用画像データをメモリ200から取得し、フィルタ演算を実施する。そして、演算完了後に、第1バス300を通してその演算結果の表示用画像データをメモリ200に格納する。
【0139】
その後に、CPU500は、DMA転送の開始前に、レジスタバス600を通してデータ転送制御装置100内部の制御レジスタ部103を設定する。例えば、上記データ転送制御装置100の第1実施形態を例に取れば、データサイズレジスタ103−4にはVGAの値を、入力バス使用閾値レジスタ103−2にはVGAの倍の値を、それぞれ設定する。また、入力アドレス等のDMA転送に必要なパラメータを、対応するレジスタに設定する。その後、CPU500は、DMA転送開始レジスタ103−1に所定の値を設定することで、データ転送制御装置100を起動させる。
【0140】
起動させられたデータ転送制御装置100は、比較部104にて、データサイズレジスタ103−4に設定されているデータサイズと入力バス使用閾値レジスタ103−2に設定されている閾値とを比較する。この場合、データサイズレジスタ103−4に設定されているデータサイズが入力バス使用閾値レジスタ103−2に設定されている閾値よりも大きくないため、第2DMAマスタポート部102をデータが通過する経路と決定する。これにより、第2DMAマスタポート部102が第2バス400を通してメモリ200から上記演算結果の表示用画像データを取得し、それをデータ処理部105に格納する。
【0141】
なお、上記のパラメータ及び閾値の各値は一例に過ぎず、本発明はそれらの値に限定するものでないことは勿論である。
【0142】
以上のように、本画像処理装置の一実施形態によれば、撮影時と表示時などの動作状態に応じてバスの負荷が変動するが、制御レジスタ部103に記憶された設定値に基づき、第1バス300と第2バス400の何れかを使用する、データが通過する経路を、自律的に決定するので、簡易的な設定を基に局所的なバス負荷を低減するためにデータ経路を調整し、システム全体のデータスループットを向上させることができる。
【0143】
なお、本一実施形態では、比較部104において例えばデータサイズが入力または出力バス使用閾値より大きいか否かにより、使用するDMAマスタポート部を選択するようにしていたが、これに限定されるものではなく、それ以外の大きい、等しい、小さいなどの3種以上の比較に変更しても、同様の効果を得ることが可能である。また、上記第1実施形態に係るデータ転送制御装置100を適用した場合を例に説明したが、第2乃至第6実施形態の何れに係るデータ転送制御装置100も同様に適用可能である。
【0144】
また、本一実施形態では、画像処理部700が第1バス300側に接続されていたが、これに限ったことではなく、第2バス400側に接続しても同様の効果を得ることが可能である。
【0145】
以上、実施形態に基づいて本発明を説明したが、本発明は上述した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。
【0146】
例えば、上記データ転送制御装置の第1乃至第6実施形態では、CPU500は、レジスタバス600を介してデータ転送制御装置100に転送起動の指示や転送に関わる設定値を設定するように構成しているが、レジスタバス600を有さず、第2バス400を介してそれらの動作を行なうよう構成することも可能である。
【0147】
また、上記データ転送制御装置の第1乃至第6実施形態及び画像処理装置の一実施形態では、バス及びDMAマスタポート部がそれぞれ2つある構成で説明してきたが、2つ以外の構成においても比較部や閾値を対応する構成に変更することにより同様の効果を得ることが可能なことは勿論である。
【0148】
更に、上記データ転送制御装置の第1乃至第6実施形態及び画像処理装置の一実施形態では、第1バス300及び第2バス400を異なるバスとして説明したが、データ転送制御装置100とバスの接続において、第1バス、第2バスはあくまでDMAチャネルを意味するので、必ずしも異なるバスである必要はなく、1つのバスに複数ポートを割り当てた場合であっても、本発明は適用可能なことは言うまでもない。
【符号の説明】
【0149】
100…データ転送制御装置、 101…第1DMAマスタポート部、 102…第2DMAマスタポート部、 103…制御レジスタ部103、 103−1…DMA転送開始レジスタ、 103−2…入力バス使用閾値レジスタ、 103−3…出力バス使用閾値レジスタ、 103−4…データサイズレジスタ、 103−5…入力バースト長レジスタ、 103−6…出力バースト長レジスタ、 103−7…入力データ幅サイズレジスタ、 103−8…出力データ幅サイズレジスタ、 103−9…入力アドレスレジスタ、 103−10…出力アドレスレジスタ、 104…比較部、 105…データ処理部、 200…メモリ、 300…第1バス、 400…第2バス、 500…CPU、 600…レジスタバス、 700…画像処理部。

【特許請求の範囲】
【請求項1】
データバス及びデータのアクセスルートを複数備えるデータ処理システムにおいて、
データ転送開始前に、外部からデータ転送における設定値が設定記憶される記憶部と、
上記記憶部に記憶された上記設定値に基づき、上記複数のデータバスの何れかを使用する、データが通過する経路を、自律的に決定するデータ経路決定部と、
を具備することを特徴とするデータ転送制御装置。
【請求項2】
上記記憶部に記憶される設定値は、サイズ情報とその閾値情報であって、
上記データ経路決定部は、上記記憶部に記憶された上記サイズ情報が上記閾値情報よりも大きいか否かに基づいて、上記データが通過する経路を自律的に切り替えることを特徴とする請求項1に記載のデータ転送制御装置。
【請求項3】
上記サイズ情報がデータ転送のデータサイズであることを特徴とする請求項2に記載のデータ転送制御装置。
【請求項4】
上記サイズ情報がデータ転送のバースト長であることを特徴とする請求項2に記載のデータ転送制御装置。
【請求項5】
上記サイズ情報がデータ転送のデータバスのビット幅であることを特徴とする請求項2に記載のデータ転送制御装置。
【請求項6】
上記記憶部に記憶される設定値は、アドレス情報とその閾値情報であって、
上記データ経路決定部は、上記記憶部に記憶された上記アドレス情報が上記閾値情報よりも大きいか否かに基づいて、上記データが通過する経路を自律的に切り替えることを特徴とする請求項1に記載のデータ転送制御装置。
【請求項7】
上記アドレス情報がデータ転送の転送元アドレスであることを特徴とする請求項6に記載のデータ転送制御装置。
【請求項8】
上記アドレス情報がデータ転送の転送先アドレスであることを特徴とする請求項6に記載のデータ転送制御装置。
【請求項9】
上記閾値情報がアドレス範囲を示す情報であることを特徴とする請求項6に記載のデータ転送制御装置。
【請求項10】
請求項1乃至請求項9の何れかに記載のデータ転送制御装置と、
上記複数のデータバスの一つに接続され、画像データを処理する画像処理部と、
を具備することを特徴とする画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate