(57)【要約】【課題】  異なるプロトコル又は周波数で動作する複数のシステムバス間において、ＤＭＡデータ転送の効率及びシステムバスの使用効率を向上できるデータ転送処理装置を提供する。【解決手段】  転送要求処理部１０は、要求されているデータの種類を確認し、並列的なデータ転送が必要である場合には、第１のＤＭＡＣ１２に第１のデータバッファ１６を、第２のＤＭＡＣ１３に第２のデータバッファ１７を、それぞれ割り当て、不必要である場合には、現在起動している第１のＤＭＡＣ１２又は第２のＤＭＡＣ１３に、第１のデータバッファ１６及び第２のデータバッファ１７の両方を割り当てる転送モードを、転送モード設定部１１に設定する。第１のＤＭＡＣ１２及び／又は第２のＤＭＡＣ１３は、転送モードで指示されたデータバッファを用いてデータ転送を実行する。【選択図】  図１
2005293427.tif 000002
【特許請求の範囲】
【請求項１】
異なるプロトコル又は周波数で動作する複数のシステムバス間において、ダイレクト・メモリ・アクセス転送方式によるデータ転送を実行するデータ転送処理装置であって、
転送データを一時的に格納する複数のデータバッファと、
前記データバッファの少なくとも１つを用いて、システムバス間のデータ転送を実行する複数のダイレクト・メモリ・アクセス・コントローラと、
データ転送状態に応じて、前記複数のダイレクト・メモリ・アクセス・コントローラが使用する前記データバッファを動的に割り当てるバッファ割り当て部とを備える、データ転送処理装置。
【請求項２】
前記バッファ割り当て部は、前記複数のダイレクト・メモリ・アクセス・コントローラのそれぞれについて、データ転送に使用できる前記データバッファが１つであるシングルモード又は複数であるマルチモードを、転送されるデータの種別に基づいて設定する転送モード設定部を含み、
前記複数のダイレクト・メモリ・アクセス・コントローラは、前記転送モード設定部の設定モードに従って、各々のデータ転送に使用可能な前記データバッファを決定することを特徴とする、請求項１に記載のデータ転送処理装置。
【請求項３】
前記バッファ割り当て部は、前記複数のダイレクト・メモリ・アクセス・コントローラのそれぞれについて、実際にデータ転送に使用している前記データバッファに関する情報を設定するステータス設定部を含み、
データ転送を実行しようとする前記ダイレクト・メモリ・アクセス・コントローラは、前記ステータス設定部に設定された情報に従って、自己のデータ転送に使用可能な前記データバッファを決定することを特徴とする、請求項１に記載のデータ転送処理装置。
【請求項４】
前記バッファ割り当て部は、使用可能な前記データバッファの使用権を調停するデータバッファ調停制御部をさらに含み、
データ転送を実行しようとする前記ダイレクト・メモリ・アクセス・コントローラは、前記ステータス設定部に設定された情報に従って直ちにデータ転送が開始できない場合には、前記データバッファ調停制御部によって与えられる使用権に従って、自己のデータ転送に使用可能な前記データバッファを決定することを特徴とする、請求項３に記載のデータ転送処理装置。
【請求項５】
前記複数のダイレクト・メモリ・アクセス・コントローラは、それぞれ、データ転送実行中にデータ転送相手の装置によって転送が中断された回数を記憶する遮断回数保持部を含み、
前記データバッファを２つ以上使用している前記ダイレクト・メモリ・アクセス・コントローラは、前記遮断回数保持部が記憶する回数が所定の回数に達した場合、使用している前記データバッファの数を減少させることを特徴とする、請求項３又は４に記載のデータ転送処理装置。
【請求項６】
前記複数のデータバッファは、格納領域を任意に区分して使用するマルチポートのデータバッファで構成され、
前記バッファ割り当て部は、
データ転送を要求する装置毎に、データ転送に必要なデータバッファの段数及び構成に関する情報を予め記憶したバッファ領域対応テーブルと、
前記ダイレクト・メモリ・アクセス・コントローラに割り当てる前記マルチポートのデータバッファの格納領域区分を、前記バッファ領域対応テーブルの記憶情報に基づいて制御するバッファ領域管理部とを含み、
データ転送を実行しようとする前記ダイレクト・メモリ・アクセス・コントローラは、前記バッファ領域管理部によって区分されるエリアを、自己のデータ転送に使用可能な前記データバッファとして決定することを特徴とする、請求項１に記載のデータ転送処理装置。
【請求項７】
転送データを一時的に格納する複数のデータバッファと、データバッファの少なくとも１つを用いて、システムバス間のデータ転送を実行する複数のダイレクト・メモリ・アクセス・コントローラとを備えた装置が、異なるプロトコル又は周波数で動作する複数のシステムバス間において、ダイレクト・メモリ・アクセス転送方式によるデータ転送を実行するデータ転送処理方法であって、
システムバス上のデータ転送状態を判断するステップと、
前記判断するステップの判断に応じて、前記複数のダイレクト・メモリ・アクセス・コントローラが使用する前記データバッファを動的に割り当てるステップと、
前記割り当てるステップで割り当てられた前記データバッファを使用してデータ転送を実行するステップとを備える、データ転送処理方法。
【請求項８】
異なるプロトコル又は周波数で動作する複数のシステムバス間において、ダイレクト・メモリ・アクセス転送方式によるデータ転送を実行するデータ転送処理装置の集積回路であって、
転送データを一時的に格納する複数のデータバッファと、
前記データバッファの少なくとも１つを用いて、システムバス間のデータ転送を実行する複数のダイレクト・メモリ・アクセス・コントローラと、
データ転送状態に応じて、前記複数のダイレクト・メモリ・アクセス・コントローラが使用する前記データバッファを動的に割り当てるバッファ割り当て部とを集積した、集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送処理装置及びデータ転送処理方法に関し、異なるプロトコル又は周波数で動作する複数のシステムバス間において、ダイレクト・メモリ・アクセス（ＤＭＡ）転送方式によるデータ転送を実行するデータ転送処理装置（バスブリッジ等）、及びデータ転送処理方法に関する。
【背景技術】
【０００２】
従来のＤＭＡ転送方式によるデータ転送処理装置の構成例を、図１２に示す。図１２において、従来のデータ転送処理装置１０１は、転送要求処理部１１０と、第１のダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）１１２と、第２のＤＭＡＣ１１３と、第１の調停器１１４と、第２の調停器１１５と、第１のデータバッファ１１６と、第２のデータバッファ１１７と、第１のセレクタ１１８と、第２のセレクタ１１９とを備える。データ転送処理装置１０１は、第１のシステムバス１０６及び第２のシステムバス１０７に接続され、双方のシステムバス間に発生するデータ転送処理を実行する。
【０００３】
転送要求処理部１１０は、内部又は外部からデータ転送の必要が生じると、第１のＤＭＡＣ１１２及び／又は第２のＤＭＡＣ１１３に対して、ＤＭＡ転送要求を与える。第１のＤＭＡＣ１１２は、ＤＭＡ転送要求に応じて、第１のデータバッファ１１６及び第１の調停器１１４を制御する。第２のＤＭＡＣ１１３は、ＤＭＡ転送要求に応じて、第２のデータバッファ１１７及び第２の調停器１１５を制御する。第１の調停器１１４は、第１のＤＭＡＣ１１２及び第２のＤＭＡＣ１１３による制御に基づいて、第１のセレクタ１１８の選択動作を調停する。第２の調停器１５は、第１のＤＭＡＣ１１２及び第２のＤＭＡＣ１３による制御に基づいて、第２のセレクタ１１９の選択動作を調停する。第１のセレクタ１１８は、第１の調停器１１４の調停内容に従って、第１のシステムバス１０６へのアクセス、及び第１のデータバッファ１１６又は第２のデータバッファ１１７への選択を実行する。第２のセレクタ１１９は、第２の調停器１１５の調停内容に従って、第２のシステムバス１０７へのアクセス、及び第１のデータバッファ１１６又は第２のデータバッファ１１７への選択を実行する。第１のデータバッファ１１６及び第２のデータバッファ１１７は、転送されるデータが一時的に書き込まれる記憶領域である。
【０００４】
通常、複数のＤＭＡＣを持つデータ転送処理装置では、図１２に示すように、システムバス間の周波数やプロトコルの差を緩衝させるためのデータバッファ１１６及び１１７が、ＤＭＡＣ１１２及び１１３毎にそれぞれ専用で割り当てられる構成を用いる。この構成によるデータ転送処理装置１０１おいて、例えば第１のＤＭＡＣ１１２を使用して第１のシステムバス１０６から第２のシステムバス１０７へのデータ転送を行う場合を考える。この場合には、次の２つのデータ転送方法が考えられる。
【０００５】
第１のデータ転送方法では、第１のＤＭＡＣ１１２は、第１のシステムバス１０６のアクセス権を獲得して、第１のシステムバス１０６から入力する所定量のデータを第１のデータバッファ１１６に格納する。そして、データ格納後に、第１のＤＭＡＣ１１２は、第２のシステムバス１０７のアクセス権を獲得して、第１のデータバッファ１１６に格納されたデータを第２のシステムバス１０７に出力する。
第２のデータ転送方法では、第１のＤＭＡＣ１１２は、第１のシステムバス１０６のアクセス権を獲得して、第１のシステムバス１０６から入力する所定量のデータを第１のデータバッファ１１６に順次格納していく。ここで、第１のＤＭＡＣ１１２は、第１のデータバッファ１１６にデータが格納しながら第２のシステムバス１０７のアクセス権を獲得して、第１のデータバッファ１１６に格納済みのデータを順次第２のシステムバス１０７に出力する。
【０００６】
しかし、上記第１のデータ転送方法の場合、第１のデータバッファ１１６に格納された全てのデータを第２のシステムバス１０７に出力し終わるまでは、第１のデータバッファ１１６に新たなデータを格納することができない。このため、システムバスの効率的な利用ができず、大量のデータを転送する場合等には、実用性に欠ける。
また、上記第２のデータ転送方法の場合、第１のシステムバス１０６及び第２のシステムバス１０７両方のアクセス権を、１つのＤＭＡＣ１１２が長期にわたって獲得し続けるため、実際にはデータ転送が行われない期間にも双方のシステムバスが開放されず、他の処理に影響を与える。この影響を回避するためには、データ転送が行われる期間と行われない期間との境で、その都度アクセス権の獲得又は開放を行う必要があるが、アクセス権を獲得したい時に他の装置が使用していればシステムバスが空くまで待たなければならないという問題もある（例えば、非特許文献１を参照）。
【非特許文献１】株式会社日立製作所、“日立ＳｕｐｅｒＴＭ  ＲＩＳＣ  ｅｎｊｉｎｅ  ＳＨ７７５１シリーズハードウェアマニュアル”、［ｏｎｌｉｎｅ］、［平成１５年４月１日検索］、インターネット   HYPERLINK "http://www.renesas.com/avs/resource/japan/jpn/pdf/mpumcu/j602215#sh7751.pdf" ｈｔｔｐ：／／ｗｗｗ．ｒｅｎｅｓａｓ．ｃｏｍ／ａｖｓ／ｒｅｓｏｕｒｃｅ／ｊａｐａｎ／ｊｐｎ／ｐｄｆ／ｍｐｕｍｃｕ／ｊ６０２２１５＿ｓｈ７７５１．ｐｄｆ
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、従来のＤＭＡ転送方式によるデータ転送処理装置では、周波数又はプロトコルが異なるシステムバス間のデータ転送を効率的に行っておらず、また大量のデータを転送する等の場合においてはシステムバスを有効利用できていない。
【０００８】
それ故に、本発明の目的は、ＤＭＡ転送方式によるデータ転送において、データ転送効率の向上及びシステムバスの使用効率の向上を図った、データ転送処理装置及びデータ転送処理方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、異なるプロトコル又は周波数で動作する複数のシステムバス間において、ダイレクト・メモリ・アクセス転送方式によるデータ転送を実行するデータ転送処理装置に向けられている。そして、上記目的を達成させるために、本発明のデータ転送処理装置は、複数のデータバッファ、複数のダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）と及びバッファ割り当て部を備える。
複数のデータバッファは、転送データを一時的に格納する。複数のＤＭＡＣは、データバッファの少なくとも１つを用いて、システムバス間のデータ転送を実行する。バッファ割り当て部は、データ転送状態に応じて、複数のＤＭＡＣが使用するデータバッファを動的に割り当てる。
【００１０】
好ましいバッファ割り当て部は、複数のＤＭＡＣのそれぞれについて、データ転送に使用できるデータバッファが１つであるシングルモード又は複数であるマルチモードを、転送されるデータの種別に基づいて設定する転送モード設定部を構成に含む。この構成により、複数のＤＭＡＣは、転送モード設定部の設定モードに従って、各々のデータ転送に使用可能なデータバッファを決定することができる。
また、他の好ましいバッファ割り当て部は、複数のＤＭＡＣのそれぞれについて、実際にデータ転送に使用しているデータバッファに関する情報を設定するステータス設定部を構成に含む。この構成により、データ転送を実行しようとするＤＭＡＣは、ステータス設定部に設定された情報に従って、自己のデータ転送に使用可能なデータバッファを決定することが可能となる。
【００１１】
このとき、バッファ割り当て部が、使用可能なデータバッファの使用権を調停するデータバッファ調停制御部をさらに構成に含んでもよい。この構成により、データ転送を実行しようとするＤＭＡＣは、ステータス設定部に設定された情報に従って直ちにデータ転送が開始できない場合でも、データバッファ調停制御部によって与えられる使用権に従って、自己のデータ転送に使用可能なデータバッファを決定することが可能となる。
また、複数のＤＭＡＣに、それぞれ、データ転送実行中にデータ転送相手の装置によって転送が中断された回数を記憶する遮断回数保持部を含ませて、データバッファを２つ以上使用しているＤＭＡＣは、遮断回数保持部が記憶する回数が所定の回数に達した場合、使用しているデータバッファの数を減少させてもよい。
【００１２】
なお、複数のデータバッファを、格納領域を任意に区分して使用するマルチポートのデータバッファで構成することも可能である。この場合には、バッファ割り当て部は、データ転送を要求する装置毎に、データ転送に必要なデータバッファの段数及び構成に関する情報を予め記憶したバッファ領域対応テーブルと、ＤＭＡＣに割り当てるマルチポートのデータバッファの格納領域区分を、バッファ領域対応テーブルの記憶情報に基づいて制御するバッファ領域管理部との構成を含むことが好ましい。これらの構成により、データ転送を実行しようとするＤＭＡＣは、バッファ領域管理部によって区分されるエリアを、自己のデータ転送に使用可能なデータバッファとして決定することができる。
【００１３】
また、本発明は、転送データを一時的に格納する複数のデータバッファと、データバッファの少なくとも１つを用いて、システムバス間のデータ転送を実行する複数のＤＭＡＣとを備えた装置が、異なるプロトコル又は周波数で動作する複数のシステムバス間において、ＤＭＡ転送方式によるデータ転送を実行するデータ転送処理方法に向けられている。そして、上記目的を達成させるために、本発明のデータ転送処理方法では、システムバス上のデータ転送状態を判断し、この判断に応じて複数のＤＭＡＣが使用するデータバッファを動的に割り当て、この割り当てられたデータバッファを使用してデータ転送を実行する。
【発明の効果】
【００１４】
上記のように、本発明によれば、転送すべきデータの種類に応じて、各ＤＭＡＣがデータ転送に使用するデータバッファの数をシングル又はマルチに切り替えることができる。従って、データ転送効率の向上及びシステムバスの使用効率の向上を図ることができるという効果を発揮する。特に、各ＤＭＡＣの動作状態を表すステータス設定部を用いれば、転送要求処理部の処理負荷を軽減させることができる。また、使用していないデータバッファの使用権を調停するデータバッファ調停制御部を用いることで、データバッファを使用しているＤＭＡＣのデータ転送の終了を待たなくても、空きデータバッファによるデータ転送を迅速に開始することが可能となる。また、データ転送相手の装置からの特定の応答（中断応答）を所定の回数以上受信した場合にデータバッファの使用権を制御するので、途中でデータ転送効率が悪くなった場合は、バッファ構成を動的に変更して他のデータ転送を並行して行うことができる。さらに、マルチポートのデータバッファに対しては、転送要求されるデータに応じてエリア区分を変更するので、他のＤＭＡＣ用のデータバッファの使用状態にかかわらず、要求されたデータ転送に最適なデータバッファ構成でデータ転送を行うことが可能となる。
【発明を実施するための最良の形態】
【００１５】
本発明のデータ転送処理装置は、異なるプロトコル又は周波数で動作する複数のシステムバス間でデータ転送の実行が可能である。以下の各実施形態では、２つのシステムバス間でデータ転送を実行する場合を一例に挙げて、本発明のデータ転送処理装置を説明する。また、各実施形態では、双方のシステムバスがデータ転送処理装置外に構成される例を説明するが、データ転送処理装置が終端装置である場合には、いずれか一方のシステムバスがデータ転送処理装置内に構成されることになる。
【００１６】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るデータ転送処理装置１の構成を示すブロック図である。図１において、第１の実施形態に係るデータ転送処理装置１は、転送要求処理部１０と、転送モード設定部１１と、第１のＤＭＡＣ１２と、第２のＤＭＡＣ１３と、第１の調停器１４と、第２の調停器１５と、第１のデータバッファ１６と、第２のデータバッファ１７と、第１のセレクタ１８と、第２のセレクタ１９とを備える。データ転送処理装置１は、第１のシステムバス６及び第２のシステムバス７に接続され、双方のシステムバス間に発生するデータ転送処理を実行する。典型的な転送要求処理部１０は、デジタル信号プロセッサ（ＤＳＰ）、中央演算処理装置（ＣＰＵ）、及びプログラムメモリ（ＲＯＭ）等で構成されるが、本発明のデータ転送処理装置（以下の各実施形態において同様）は、この構成に限られるものではない。例えば、ＣＰＵだけがデータ転送処理装置外に構成されてもよいし、転送要求処理部１０がデータ転送処理装置外に構成されてもよい。
【００１７】
まず、データ転送処理装置１の各構成の概要を説明する。
転送要求処理部１０は、内部又は外部からデータ転送の必要が生じると、第１のＤＭＡＣ１２及び／又は第２のＤＭＡＣ１３に対してＤＭＡ転送要求を与えると共に、転送モード設定部１１への所定の転送モードを設定する。転送モード設定部１１は、転送要求処理部１０からの指示に従って、第１のデータバッファ１６及び第２のデータバッファ１７を両方使用するのか、いずれか一方を使用するのか、を与える転送モードを設定する。すなわち、転送モード設定部１１は、バッファ割り当て部として機能する。この転送モード設定部１１には、レジスタ等が用いられる。第１のＤＭＡＣ１２は、ＤＭＡ転送要求及び転送モード設定部１１に設定された転送モードに基づいて、第１の調停器１４、第１のデータバッファ１６、及び第２のデータバッファ１７を制御する。第２のＤＭＡＣ１３は、ＤＭＡ転送要求及び転送モード設定部１１に設定された転送モードに基づいて、第２の調停器１５、第１のデータバッファ１６、及び第２のデータバッファ１７を制御する。第１の調停器１４は、第１のＤＭＡＣ１２及び第２のＤＭＡＣ１３による制御に基づいて、第１のセレクタ１８の選択動作を調停する。第２の調停器１５は、第１のＤＭＡＣ１２及び第２のＤＭＡＣ１３による制御に基づいて、第２のセレクタ１９の選択動作を調停する。第１のセレクタ１８は、第１の調停器１４の調停内容に従って、システムバス６へのアクセス、及び第１のデータバッファ１６又は第２のデータバッファ１７の選択を実行する。第２のセレクタ１９は、第２の調停器１５の調停内容に従って、システムバス７へのアクセス、及び第１のデータバッファ１６又は第２のデータバッファ１７への選択を実行する。第１のデータバッファ１６及び第２のデータバッファ１７は、転送されるデータが一時的に書き込まれる記憶領域である。
【００１８】
次に、上記構成によるデータ転送処理装置１の処理動作を、図２及び図３をさらに参照して説明する。図２は、第１の実施形態に係るデータ転送処理装置１が実行するデータ転送処理方法の手順を示すフローチャートである。図２の処理は、転送要求処理部１０において新たなデータ転送の必要が生じると開始される。
【００１９】
まず、転送要求処理部１０は、データ転送を行っていない未使用のＤＭＡＣ、すなわち起動していないＤＭＡＣが存在するか否かを判断する（ステップＳ２０１）。未使用のＤＭＡＣが存在する場合、転送要求処理部１０は、新たに転送が要求されているデータ、またすでにデータ転送が行われている場合にはそのデータの種類を確認する（ステップＳ２０２）。そして、この確認の結果から、転送要求処理部１０は、並列的なデータ転送が必要か否かを判断する（ステップＳ２０３）。例えば、転送すべきデータが、静止画表示用の画面フレームデータと演算処理用データという異なる２種類である場合には、並列的なデータ転送が必要であると判断される。また、転送すべきデータが、動画表示用の高速大容量のデータの１種類である場合には、並列的なデータ転送が不必要であると判断される。
【００２０】
並列的なデータ転送が必要であると判断した場合、転送要求処理部１０は、ステップＳ２０１で判断した未使用のＤＭＡＣを起動させると共に、第１のＤＭＡＣ１２に第１のデータバッファ１６を、第２のＤＭＡＣ１３に第２のデータバッファ１７を、それぞれ割り当てる転送モード（シングルバッファモード）を転送モード設定部１１に設定する（ステップＳ２０４）。一方、並列的なデータ転送が不必要であると判断した場合、転送要求処理部１０は、現在起動している第１のＤＭＡＣ１２又は第２のＤＭＡＣ１３に、第１のデータバッファ１６及び第２のデータバッファ１７の両方を割り当てる転送モード（マルチバッファモード）を転送モード設定部１１に設定する（ステップＳ２０５）。その後、転送要求処理部１０は、起動しているＤＭＡＣに対してＤＭＡ転送要求を与える（ステップＳ２０６）。
【００２１】
ＤＭＡ転送要求を受けた第１のＤＭＡＣ１２及び／又は第２のＤＭＡＣ１３は、転送モード設定部１１に設定された転送モードに従って、そこで指示されたデータバッファを用いてデータ転送を実行する（ステップＳ２０７）。なお、上記ステップＳ２０１において未使用のＤＭＡＣが存在しない場合には、データ転送要求に応えられないため、この処理を終了させる。
【００２２】
図３は、マルチバッファモードによって第１のＤＭＡＣ１２が実行するデータ転送の一例を説明する図である。図３に示すように、このマルチバッファモードでは、第１のデータバッファ１６に格納されたデータの転送が開始されると同時に、第２のデータバッファ１７を用いて後続するデータを格納することが可能となる。第２のデータバッファ１７に格納されたデータの転送は、第１のデータバッファ１６に格納されたデータの転送が完了後に開始される。逆に、第２のデータバッファ１７に格納されたデータの転送が開始されると同時に、第１のデータバッファ１６を用いてさらに後続するデータを格納することが可能となる。以後、転送すべきデータが終了するまで、この処理が繰り返し行われる。このマルチバッファモードでは、シングルバッファモードに比べて、高速にデータ転送を行うことができる。
【００２３】
以上のように、本発明の第１の実施形態に係るデータ転送処理装置及び方法によれば、転送すべきデータの種類に応じて、各ＤＭＡＣがデータ転送に使用するデータバッファの数をシングル又はマルチに切り替えることができる。これにより、異なる２種類のデータの並列転送や、大容量データの高速転送といった、システムが要求するデータ転送を適切に行うことが可能となる。従って、データ転送効率の向上及びシステムバスの使用効率の向上を図ることができる。
【００２４】
（第２の実施形態）
図４は、本発明の第２の実施形態に係るデータ転送処理装置２の構成を示すブロック図である。図４において、第２の実施形態に係るデータ転送処理装置２は、転送要求処理部２０と、ステータス設定部２１と、第１のＤＭＡＣ２２と、第２のＤＭＡＣ２３と、第１の調停器１４と、第２の調停器１５と、第１のデータバッファ１６と、第２のデータバッファ１７と、第１のセレクタ１８と、第２のセレクタ１９とを備える。図４に示すように、第２の実施形態に係るデータ転送処理装置２の構成は、上記第１の実施形態に係るデータ転送処理装置１の構成に対して、転送要求処理部２０、ステータス設定部２１、第１のＤＭＡＣ２２及び第２のＤＭＡＣ２３が異なる。以下、この異なる構成部分を中心に、第２の実施形態に係るデータ転送処理装置２を説明する。
【００２５】
転送要求処理部２０は、内部又は外部からデータ転送の必要が生じると、第１のＤＭＡＣ２２及び／又は第２のＤＭＡＣ２３に対してＤＭＡ転送要求を与える。ステータス設定部２１は、第１のＤＭＡＣ２２及び第２のＤＭＡＣ２３について、データ転送を実行しているか否かや、どのデータバッファを使用してデータ転送を行っているか等の動作状態を設定する。すなわち、ステータス設定部２１は、バッファ割り当て部として機能する。このステータス設定部２１には、レジスタ等が用いられる。第１のＤＭＡＣ２２は、ＤＭＡ転送要求及びステータス設定部２１に設定された動作状態に基づいて、第１の調停器１４、第１のデータバッファ１６及び第２のデータバッファ１７とを制御する。第２のＤＭＡＣ２３は、ＤＭＡ転送要求及びステータス設定部２１に設定された動作状態に基づいて、第２の調停器１５、第１のデータバッファ１６及び第２のデータバッファ１７とを制御する。
【００２６】
図５は、第２の実施形態に係るデータ転送処理装置２が実行するデータ転送処理方法の手順を示すフローチャートである。図５の処理は、転送要求処理部２０において新たなデータ転送の必要が生じると開始される。
【００２７】
まず、転送要求処理部２０は、転送するデータ量のしきい値を、第１のＤＭＡＣ２２及び第２のＤＭＡＣ２３に設定する（ステップＳ５０１）。このしきい値は、各々のＤＭＡＣが、２つのデータバッファを用いて（マルチバッファ）並列的にデータ転送を行うのか、１つのデータバッファを用いて（シングルバッファ）通常のデータ転送を行うのかを、判断するために用いられる。その後、転送要求処理部２０は、データ転送を行っていない未使用のＤＭＡＣ、すなわち起動していないＤＭＡＣが存在するか否かを判断する（ステップＳ５０２）。未使用のＤＭＡＣが存在する場合、転送要求処理部１０は、未使用のＤＭＡＣの１つに対してＤＭＡ転送要求を与える（ステップＳ５０３）。この実施例では、未使用のＤＭＡＣを第１のＤＭＡＣ２２として説明する。ＤＭＡ転送要求を与えられた第１のＤＭＡＣ２２は、ステータス設定部２１に設定された動作状態を確認し、他方の第２のＤＭＡＣ２３がデータ転送を行っているか否かと、マルチバッファ又はシングルバッファのどちらでデータ転送を実行しているかをチェックする（ステップＳ５０４）。
【００２８】
チェックの結果、第１のＤＭＡＣ２２は、第２のＤＭＡＣ２３がデータ転送を行っていない場合、ＤＭＡ転送要求で要求されたデータ転送量が、設定されたしきい値以上であれば第１のデータバッファ１６及び第２のデータバッファ１７の両方を自分に割り当てる（マルチバッファ）転送モードを、しきい値未満であれば第１のデータバッファ１６だけを自分に割り当てる（シングルバッファ）転送モードを、ステータス設定部２１に設定する（ステップＳ５０５〜Ｓ５０７、Ｓ５１０）。これに対し、第１のＤＭＡＣ２２は、第２のＤＭＡＣ２３がデータ転送を行っている場合、そのデータ転送がシングルバッファで実行されており、かつ、ＤＭＡ転送要求で要求されたデータ転送量が設定されたしきい値未満であれば、第１のデータバッファ１６だけを自分に割り当てる（シングルバッファ）転送モードをステータス設定部２１に設定する（ステップＳ５０８〜Ｓ５１０）。それ以外の場合には、第１のＤＭＡＣ２２は、第２のＤＭＡＣ２３のデータ転送が終了するまで、すなわち第２のデータバッファ１７が空くまで待機することになる。
【００２９】
第１のＤＭＡＣ２２及び／又は第２のＤＭＡＣ２３は、ステータス設定部２１に設定された動作状態に従って、指示されたデータバッファを用いてデータ転送を実行する（ステップＳ５１１）。そして、データ転送が終了した後、第１のＤＭＡＣ２２又は第２のＤＭＡＣ２３は、ステータス設定部２１に設定している動作状態をリセットする（ステップＳ５１２）。なお、上記ステップＳ５０２において未使用のＤＭＡＣが存在しない場合には、データ転送要求に応えられないため、この処理を終了させる。
【００３０】
以上のように、本発明の第２の実施形態に係るデータ転送処理装置及び方法によれば、各ＤＭＡＣの動作状態を表すステータス設定部を用いて、一方のＤＭＡＣ自らが他方のＤＭＡＣの動作状態を判断して、データ転送に使用するデータバッファをシングル又はマルチに切り替えることができる。従って、上述した第１の実施形態の効果に加えて、転送要求処理部の処理負荷を軽減させることができる。
【００３１】
（第３の実施形態）
図６は、本発明の第３の実施形態に係るデータ転送処理装置３の構成を示すブロック図である。図６において、第３の実施形態に係るデータ転送処理装置３は、転送要求処理部２０と、ステータス設定部２１と、第１のＤＭＡＣ３２と、第２のＤＭＡＣ３３と、第１の調停器１４と、第２の調停器１５と、第１のデータバッファ１６と、第２のデータバッファ１７と、第１のセレクタ１８と、第２のセレクタ１９と、データバッファ調停制御部３０と、第１のデータバッファステータスフラグ３４と、第２のデータバッファステータスフラグ３５とを備える。図６に示すように、第３の実施形態に係るデータ転送処理装置３の構成は、上記第２の実施形態に係るデータ転送処理装置２の構成に対して、第１のＤＭＡＣ３２、第２のＤＭＡＣ３３、データバッファ調停制御部３０、第１のデータバッファステータスフラグ３４及び第２のデータバッファステータスフラグ３５が異なる。以下、この異なる構成部分を中心に、第３の実施形態に係るデータ転送処理装置３を説明する。
【００３２】
第１のＤＭＡＣ３２は、ＤＭＡ転送要求及びステータス設定部２１に設定された動作状態に基づいて、第１の調停器１４、第１のデータバッファ１６及び第２のデータバッファ１７を制御する。第２のＤＭＡＣ３３は、ＤＭＡ転送要求及びステータス設定部２１に設定された動作状態に基づいて、第２の調停器１５、第１のデータバッファ１６及び第２のデータバッファ１７を制御する。第１のデータバッファステータスフラグ３４には、第１のデータバッファ１６が使用中である場合にフラグが設定される。第２のデータバッファステータスフラグ３５には、第２のデータバッファ１７が使用中である場合にフラグが設定される。データバッファ調停制御部３０は、第１のデータバッファステータスフラグ３４及び第２のデータバッファステータスフラグ３５を用いて、第１のデータバッファ１６及び第２のデータバッファ１７の使用を調停する。このデータバッファ調停制御部３０は、ステータス設定部２１と共に、バッファ割り当て部として機能する。
【００３３】
図７は、第３の実施形態に係るデータ転送処理装置３が実行するデータ転送処理方法の手順を示すフローチャートである。なお、図７において図５に示す処理と同じ処理を実行するステップについては、同一のステップ番号を付してその説明を省略する。
【００３４】
未使用のＤＭＡＣである第１のＤＭＡＣ３２は、転送要求処理部２０からＤＭＡ転送要求が与えられると、ステータス設定部２１に設定された動作状態を確認し、他方の第２のＤＭＡＣ３３がデータ転送を行っているか否かと、マルチバッファ又はシングルバッファのどちらでデータ転送を実行しているかをチェックする（ステップＳ７０４）。これと同時に、第１のＤＭＡＣ３２は、データバッファ調停制御部３０に対してデータバッファ使用要求を送出する（ステップＳ７０４）。
【００３５】
データバッファ使用要求を受けたデータバッファ調停制御部３０は、第２のＤＭＡＣ３３がデータ転送を行っており、そのデータ転送がマルチバッファで実行されているか、ＤＭＡ転送要求で要求されたデータ転送量が設定されたしきい値以上であれば、第１のデータバッファ１６だけを自分に割り当てる（シングルバッファ）転送モードをステータス設定部２１に設定すると共に（ステップＳ７１０）、使用可能なデータバッファの使用権を調停する（ステップＳ７１１）。具体的には、データバッファ調停制御部３０は、第１のデータバッファ１６又は第２のデータバッファ１７のどちらかのデータ転送が終了する（データバッファが空く）のを判断して（ステップＳ７１２）、空いたデータバッファをさらに調停する（ステップＳ７１３）。例えば、第１のデータバッファ１６が終了した場合には、データバッファ調停制御部３０は、第２のＤＭＡＣ３３による第１のデータバッファ１６の使用権をクリアする。これにより、第２のＤＭＡＣ３３は、シングルデータバッファ構成で続きのデータ転送を行う。また、データバッファ調停制御部３０は、第２のＤＭＡＣ３３から開放された第１のデータバッファ１６の使用権を第１のＤＭＡＣ３２に許可する。これにより、第１のＤＭＡＣ３２は、新たなデータ転送の開始が可能となる。なお、この調停処理に応じて、ステータス設定部２１の設定が更新される（ステップＳ７１３）。
【００３６】
以上のように、本発明の第３の実施形態に係るデータ転送処理装置及び方法によれば、使用していないデータバッファの使用権を調停するデータバッファ調停制御部を用いる。これにより、一方のＤＭＡＣが複数のデータバッファを占有してデータ転送を行っていたとしても、途中に発生するデータバッファ未使用の期間を他方のＤＭＡＣに一時的に転用させることが可能となる。従って、一方のＤＭＡＣのデータ転送の終了を待たなくても、空きデータバッファによるデータ転送を迅速に開始することが可能となる。
なお、データバッファの開放を許可させないために、各ＤＭＡＣからデータバッファ調停制御部３０へデータバッファ使用要求を出す際に、要求と共にデータ転送の優先度も通知させてもよい。
【００３７】
（第４の実施形態）
図８は、本発明の第４の実施形態に係るデータ転送処理装置４の構成を示すブロック図である。図８において、第４の実施形態に係るデータ転送処理装置４は、転送要求処理部２０と、ステータス設定部２１と、第１のＤＭＡＣ４２と、第２のＤＭＡＣ４３と、第１の調停器１４と、第２の調停器１５と、第１のデータバッファ１６と、第２のデータバッファ１７と、第１のセレクタ１８と、第２のセレクタ１９と、データバッファ調停制御部３０と、第１のデータバッファステータスフラグ３４と、第２のデータバッファステータスフラグ３５とを備える。図８に示すように、第４の実施形態に係るデータ転送処理装置４の構成は、上記第３の実施形態に係るデータ転送処理装置３の構成に対して、第１のＤＭＡＣ４２及び第２のＤＭＡＣ４３が異なる。以下、この異なる構成部分を中心に、第４の実施形態に係るデータ転送処理装置４を説明する。
【００３８】
第１のＤＭＡＣ４２は、上述した第１のＤＭＡＣ３２内に遮断回数保持部４２１を有する構成である。第２のＤＭＡＣ４３は、上述した第２のＤＭＡＣ３３内に遮断回数保持部４３１を有する構成である。この遮断回数保持部４２１及び４３１は、第１のＤＭＡＣ４２及び第２のＤＭＡＣ４３が、システムバス６又は７にデータ転送を行おうとした際に、データ転送相手の装置によって何度中断されたかをデータバッファ単位でカウントして保持する。この遮断回数保持部４２１及び４３１は、レジスタ等が用いられる。
【００３９】
転送要求処理部２０が、必要に応じて第１のＤＭＡＣ４２及び第２のＤＭＡＣ４３にＤＭＡ転送を要求し、要求された第１のＤＭＡＣ４２及び第２のＤＭＡＣ４３が、データ転送を開始する。今、第１のＤＭＡＣ４２が、システムバス６からシステムバス７へ、第１のデータバッファ１６及び第２のデータバッファ１７の両方を占有したデータ転送を開始した場合で説明する。ここで、システムバス６が、ＰＣＩバスのような連続転送と転送遮断が発生するバスであった場合、システムバス６からデータを第１のデータバッファ１６へ格納中に、データ転送相手の装置から転送の一時中断を受ける場合がある。これは、データ転送相手の装置側の先読み出しデータバッファ（プリフェッチＦＩＦＯ等）の段数や、内部処理の状態に依存する。第１のＤＭＡＣ４２は、転送中断回数を遮断回数保持部４２１へカウントして保持し、予め定めた回数と比較する。予め定めた回数を超える転送中断が発生したときに、第１のデータバッファ１６及び第２のデータバッファ１７を並列的に使用している場合、第１のＤＭＡＣ４２は、どちらか一方のデータバッファを開放する。このとき、第２のＤＭＡＣ４３に新たなデータ転送が要求が発生している場合には、直ちに開放したデータバッファを用いてデータ転送を開始する。
【００４０】
以上のように、本発明の第４の実施形態に係るデータ転送処理装置及び方法によれば、遮断回数保持部を用いて、データ転送相手の装置からの特定の応答を所定の回数以上受信した場合に、データバッファの使用権を制御する。これにより、優先度の高いデータ転送であっても、途中でデータ転送効率が悪くなった場合は、バッファ構成を動的に変更して、他のデータ転送を並行して行うことができる。よって、システム全体のデータ転送効率を高めることが可能となる。
【００４１】
（第５の実施形態）
図９は、本発明の第５の実施形態に係るデータ転送処理装置５の構成を示すブロック図である。図９において、第５の実施形態に係るデータ転送処理装置５は、転送要求処理部２０と、第１のＤＭＡＣ５２と、第２のＤＭＡＣ５３と、バッファ領域対応テーブル５４と、バッファ領域管理部５５と、第１の調停器１４と、第２の調停器１５と、データバッファ５６と、第１のセレクタ５８と、第２のセレクタ５９とを備える。図９に示すように、第５の実施形態に係るデータ転送処理装置５の構成は、上記第２の実施形態に係るデータ転送処理装置２の構成に対して、第１のＤＭＡＣ５２、第２のＤＭＡＣ５３、バッファ領域対応テーブル５４、バッファ領域管理部５５、データバッファ５６、第１のセレクタ５８及び第２のセレクタ５９が異なる。以下、この異なる構成部分を中心に、第５の実施形態に係るデータ転送処理装置２を説明する。
【００４２】
第１のＤＭＡＣ５２は、バッファ領域対応テーブル５４を参照して、第１の調停器１４及びデータバッファ５６を制御する。第２のＤＭＡＣ５３は、バッファ領域対応テーブル５４を参照して、第２の調停器１５及びデータバッファ５６を制御する。バッファ領域対応テーブル５４は、データの転送を要求したデータ転送元の装置に関する情報、例えばベースアドレスと、そのデータ転送元の装置に最適なデータバッファ構成とを保持する。バッファ領域管理部５５は、データバッファ５６のアドレス制御を行って、第１のＤＭＡＣ５２及び第２のＤＭＡＣ５３が使用するバッファ領域を管理する。すなわち、バッファ領域対応テーブル５４及びバッファ領域管理部５５は、バッファ割り当て部として機能する。第１のセレクタ５８は、第１の調停器１４の調停内容に従って、システムバス６へのアクセス、及びデータバッファ５６の第１のＤＭＡＣ５２用ポート又は第２のＤＭＡＣ５３用ポートの選択を実行する。第２のセレクタ５９は、第２の調停器１５の調停内容に従って、システムバス６へのアクセス、及びデータバッファ５６の第１のＤＭＡＣ５２用ポート又は第２のＤＭＡＣ５３用ポートの選択を実行する。データバッファ５６は、格納領域を任意に区切って使用するマルチポートのデータバッファである。
【００４３】
図１０は、第５の実施形態に係るデータ転送処理装置５が実行するデータ転送処理方法の手順を示すフローチャートである。図１０の処理は、転送要求処理部２０において新たなデータ転送の必要が生じると開始される。
【００４４】
まず、転送要求処理部２０は、データ転送を行っていない未使用のＤＭＡＣ、すなわち起動していないＤＭＡＣが存在するか否かを判断する（ステップＳ１００１）。未使用のＤＭＡＣが存在する場合、転送要求処理部２０は、未使用のＤＭＡＣを起動させて、ＤＭＡ転送要求を与える（ステップＳ１００２）。この実施例では、未使用のＤＭＡＣを第１のＤＭＡＣ５２として説明する。ＤＭＡ転送要求を受けた第１のＤＭＡＣ５２は、バッファ領域対応テーブル５４を参照して、データバッファ５６における最適なデータバッファ構成を決定し、バッファ領域管理部５５に通知する（ステップＳ１００３）。最適なデータバッファ構成は、データ転送元の装置のベースアドレスに基づいて決定される。バッファ領域管理部５５は、第１のＤＭＡＣ５２からの通知を受けて、データバッファ５６の未使用領域を通知内容に応じて第１のＤＭＡＣ５２用に割り当て、割り当てた旨を第１のＤＭＡＣ５２に応答する（ステップＳ１００４）。
【００４５】
図１１に、バッファ領域対応テーブル５４の情報及びデータバッファ５６の割り当て例を示す。図１１のように、データバッファ５６の格納領域がバッファ［０］〜［１５］で構成される場合、バッファ領域対応テーブル５４には、バッファ［０］〜［１５］のそれぞれについて割り当てるＤＭＡＣ及びエリアが記述される。データバッファ５６は、このバッファ領域対応テーブル５４の記述内容に従って、エリアが区分されることになる。
【００４６】
転送要求処理部２０は、転送が要求されているデータの種類を確認する（ステップＳ１００５）。そして、この確認の結果から、転送要求処理部２０は、並列的なデータ転送が必要か否かを判断する（ステップＳ１００６）。この判断に従って、第１のＤＭＡＣ５２は、データバッファ領域を２つ使用して並列転送又は１つ使用した通常転送を実行する（ステップＳ１００７、Ｓ１００８）。
【００４７】
以上のように、本発明の第５の実施形態に係るデータ転送処理装置及び方法によれば、任意のエリアで格納領域を区分できる１つの大きなマルチポートのデータバッファを用い、転送要求されるデータ量に応じてエリア区分を変更する。これにより、例えば連続転送可能データ量が長い場合には、それに併せてデータバッファ内に大きなエリアを確保し、短い場合には、小さいエリアで済む。従って、他のＤＭＡＣ用のデータバッファの使用状態にかかわらず、要求されたデータ転送に最適なデータバッファ構成でデータ転送を行うことが可能となる。
【００４８】
なお、本発明のデータ転送処理装置を構成する転送モード設定部、ステータス設定部、ＤＭＡＣ、調停器、データバッファ、データバッファ調停制御部、セレクタ、プリフェッチ語数設定部、アドレス検索部、語数設定テーブル、データバッファステータスフラグ、遮断回数保持レジスタ、バッファ領域対応テーブル、及びバッファ領域管理部の各機能ブロックは、典型的には集積回路であるＬＳＩ（集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、又はウルトラＬＳＩ等と称される）として実現される。これらは、個別に１チップ化されてもよいし、一部又は全部を含むように１チップ化されてもよい。
また、集積回路化の手法は、ＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。また、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別の技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
【産業上の利用可能性】
【００４９】
本発明のデータ転送処理装置及びデータ転送処理方法は、異なるプロトコル又は周波数で動作する複数のシステムバス間において、ＤＭＡ転送方式によるデータ転送を実行する場合等に利用可能であり、特にデータ転送効率の向上及びシステムバスの使用効率の向上を図る場合に適している。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１の実施形態に係るデータ転送処理装置の構成を示すブロック図
【図２】本発明の第１の実施形態に係るデータ転送処理方法の手順を示すフローチャート
【図３】マルチバッファモードによってＤＭＡＣが実行するデータ転送の一例を説明する図
【図４】本発明の第２の実施形態に係るデータ転送処理装置の構成を示すブロック図
【図５】本発明の第２の実施形態に係るデータ転送処理方法の手順を示すフローチャート
【図６】本発明の第３の実施形態に係るデータ転送処理装置の構成を示すブロック図
【図７】本発明の第３の実施形態に係るデータ転送処理方法の手順を示すフローチャート
【図８】本発明の第４の実施形態に係るデータ転送処理装置の構成を示すブロック図
【図９】本発明の第５の実施形態に係るデータ転送処理装置の構成を示すブロック図
【図１０】本発明の第５の実施形態に係るデータ転送処理方法の手順を示すフローチャート
【図１１】バッファ領域対応テーブルの情報及びデータバッファの割り当ての一例を示す図
【図１２】従来のデータ転送処理装置の構成を示すブロック図
【符号の説明】
【００５１】
１、２、３、４、５、１０１  データ転送処理装置
６、７、１０６、１０７  システムバス
１０、２０、１１０  転送要求処理部
１１  転送モード設定部
１２、１３、２２、２３、３２、３３、４２、４３、５２、５３、１１２、１１３  ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）
１４、１５、１１４、１１５  調停器
１６、１７、５６、１１６、１１７  データバッファ
１８、１９、５８、５９、１１８、１１９  セレクタ
２１  ステータス設定部
３０  データバッファ調停制御部
３４、３５  データバッファステータスフラグ
４２１、４３１  遮断回数保持部
５４  バッファ領域対応テーブル
５５  バッファ領域管理部
【図１】
2005293427.tif 000003
【図２】
2005293427.tif 000004
【図３】
2005293427.tif 000005
【図４】
2005293427.tif 000006
【図５】
2005293427.tif 000007
【図６】
2005293427.tif 000008
【図７】
2005293427.tif 000009
【図８】
2005293427.tif 000010
【図９】
2005293427.tif 000011
【図１０】
2005293427.tif 000012
【図１１】
2005293427.tif 000013
【図１２】
2005293427.tif 000014