(57)【特許請求の範囲】
【請求項１】
ＤＭＡコントローラのレジスタに設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向を含む第一のＤＭＡ条件データに基づいてアドレス情報を含む所定のパケット形式でデータ転送制御を行なう直接設定方式のＤＭＡコントローラと、前記ＤＭＡコントローラとの間でデータの転送制御を行なうメモリコントローラとの間に接続され、前記ＤＭＡコントローラとバス間のパケットデータを変換処理するデータ転送制御装置であって、
前記ＤＭＡコントローラから前記第一のＤＭＡ条件データに基づいて生成されたパケットデータが転送されると、前記データ転送制御装置のレジスタに設定されたテーブルアドレスに基づいて、前記メモリコントローラに管理されるメモリ上に設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向、次テーブルアドレスを含む第二のＤＭＡ条件データを取得し、当該第二のＤＭＡ条件データに基づいて前記パケットデータのアドレス情報を変換処理して前記メモリコントローラに出力するパケット変換部を備えているデータ転送制御装置。
【請求項２】
ＤＭＡコントローラのレジスタに設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向を含む第一のＤＭＡ条件データに基づいてアドレス情報を含む所定のパケット形式でデータ転送制御を行なう直接設定方式のＤＭＡコントローラと、前記ＤＭＡコントローラとの間でデータの転送制御を行なうメモリコントローラとの間に接続され、前記ＤＭＡコントローラとバス間のパケットデータを変換処理するデータ転送制御装置によるデータ転送制御方法であって、
データ転送制御装置は、前記ＤＭＡコントローラから前記第一のＤＭＡ条件データに基づいて生成されたパケットデータが転送されると、前記データ転送制御装置のレジスタに設定されたテーブルアドレスに基づいて、前記メモリコントローラに管理されるメモリ上に設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向、次テーブルアドレスを含む第二のＤＭＡ条件データを取得し、当該第二のＤＭＡ条件データに基づいて前記パケットデータのアドレス情報を変換処理して前記メモリコントローラに出力するデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バススレーブとして機能するメモリコントローラと、前記メモリコントローラに対してデータを入出力処理するバスマスタとして機能するデータ処理デバイスとが、バスを介して接続されるバス制御システムにおけるデータ転送制御装置及びデータ転送制御方法に関する。
【背景技術】
【０００２】
メモリコントローラに対してデータを書込み処理し、或いは、メモリコントローラからデータを読出し処理するデータ処理デバイスにはＤＭＡコントローラが設けられ、夫々のデバイスのＣＰＵを介在することなく高速にデータの転送処理が行なわれるように構成されている。
【０００３】
このようなＤＭＡコントローラには、直接設定方式と間接設定方式があり、伝統的な直接設定方式は、ＤＭＡコントローラに転送元アドレス、転送先アドレス、転送サイズ、転送方向（書込みまたは読出しの識別）でなるＤＭＡ条件データが設定されるレジスタが設けられ、システムＣＰＵによりＤＭＡ条件データが当該レジスタに直接書込まれた後にＤＭＡ開始コマンドが入力されると、当該ＤＭＡ条件データに基づいて、書込みまたは読出しの何れかを識別するフラグと、書込みまたは読出しアドレスと、データ等でなるパケットが生成されて、順次転送先に転送されるように構成されている。
【０００４】
一方、間接設定方式は、メモリコントローラに管理されるメモリ領域に、転送元アドレス、転送先アドレス、転送サイズ、転送方向（書込みまたは読出しの識別）、次テーブルアドレスを一セットとする複数のテーブルリスト格納領域が設けられ、システムＣＰＵによりＤＭＡ条件データが各テーブルリストに直接書込まれ、且つ、ＤＭＡコントローラに準備されているレジスタに前記テーブルリストの先頭アドレスが書込まれた後にＤＭＡ開始コマンドが入力されると、当該ＤＭＡコントローラがテーブルリストをアクセスして得られたＤＭＡ条件データに基づいて、書込みまたは読出しの何れかを識別するフラグと、書込みまたは読出しアドレスと、データ等でなるパケットが生成されて、順次転送先に転送されるように構成されている。
【特許文献１】特開平０５−１２８０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
後者は、上述の特許文献１に提案されているように、データ処理デバイスから一連のデータをメモリ上の複数のアドレス領域に分散して格納する際、またはメモリ上の複数のアドレス領域に分散して存在するデータをデータ処理デバイスに転送する際に高速に処理できるフレキシビリティに富んだ方式であり、近年多用されるようになっているが、上述の伝統的な直接設定方式を採用するＤＭＡコントローラは、既に多くの汎用的且つ安価なＩＰ回路として存在しており、これらの財産を効果的に活用することが望まれていた。
【０００６】
本発明は、上述の課題に鑑み、直接設定方式を採用するＤＭＡコントローラを間接設定方式に転用できるデータ転送制御装置及びデータ転送制御方法を提供する点にある。
【課題を解決するための手段】
【０００７】
上述の目的を達成するため、本発明によるデータ転送制御装置の特徴構成は、特許請求の範囲の書類の請求項１に記載した通り、ＤＭＡコントローラのレジスタに設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向を含む第一のＤＭＡ条件データに基づいてアドレス情報を含む所定のパケット形式でデータ転送制御を行なう直接設定方式のＤＭＡコントローラと、前記ＤＭＡコントローラとの間でデータの転送制御を行なうメモリコントローラとの間に接続され、前記ＤＭＡコントローラとバス間のパケットデータを変換処理するデータ転送制御装置であって、前記ＤＭＡコントローラから前記第一のＤＭＡ条件データに基づいて生成されたパケットデータが転送されると、前記データ転送制御装置のレジスタに設定されたテーブルアドレスに基づいて、前記メモリコントローラに管理されるメモリ上に設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向、次テーブルアドレスを含む第二のＤＭＡ条件データを取得し、当該第二のＤＭＡ条件データに基づいて前記パケットデータのアドレス情報を変換処理して前記メモリコントローラに出力するパケット変換部を備えている点にある。
【０００８】
上述の構成によれば、直接設定方式による第一のＤＭＡ条件データに基づいて駆動されるＤＭＡコントローラからのパケットデータが、パケット変換部によって間接設定方式である第二のＤＭＡ条件データに基づいて変換されてバス上に流れ、第二のＤＭＡ条件データに基づいて変換されたパケットデータがバスを介してメモリコントローラに転送されて、メモリコントローラのメモリに格納されるので、間接設定方式が採用されるシステムであっても、直接設定方式によるＤＭＡコントローラを用いて何ら支障なくデータの転送ができるようになるのである。しかも、このようなデータ転送制御装置は安価なゲートアレイ等により容易に実現できるので、大幅なコストの上昇を招くことも無いのである。
【０００９】
本発明によるデータ転送制御方法の特徴構成は、同請求項２に記載した通り、ＤＭＡコントローラのレジスタに設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向を含む第一のＤＭＡ条件データに基づいてアドレス情報を含む所定のパケット形式でデータ転送制御を行なう直接設定方式のＤＭＡコントローラと、前記ＤＭＡコントローラとの間でデータの転送制御を行なうメモリコントローラとの間に接続され、前記ＤＭＡコントローラとバス間のパケットデータを変換処理するデータ転送制御装置によるデータ転送制御方法であって、データ転送制御装置は、前記ＤＭＡコントローラから前記第一のＤＭＡ条件データに基づいて生成されたパケットデータが転送されると、前記データ転送制御装置のレジスタに設定されたテーブルアドレスに基づいて、前記メモリコントローラに管理されるメモリ上に設定された転送元アドレス、転送先アドレス、転送サイズ、転送方向、次テーブルアドレスを含む第二のＤＭＡ条件データを取得し、当該第二のＤＭＡ条件データに基づいて前記パケットデータのアドレス情報を変換処理して前記メモリコントローラに出力する点にある。
【発明の効果】
【００１０】
以上説明した通り、本発明によれば、直接設定方式を採用するＤＭＡコントローラを間接設定方式に転用できるデータ転送制御装置及びデータ転送制御方法を提供することができるようになった。
【発明を実施するための最良の形態】
【００１１】
以下、本発明のデータ転送制御装置及びデータ転送制御方法をデータ転送システムに適用した実施形態について説明する。前記データ転送システムのブロック構成は、図１に示すように、レジスタ２０に設定された後述する第一のＤＭＡ条件データに基づいて所定のパケット形式でデータ転送制御を行なう直接設定方式のＤＭＡコントローラ１０と、前記ＤＭＡコントローラ１０との間でデータの転送制御を行なうメモリコントローラ１１と、前記ＤＭＡコントローラ１０と前記メモリコントローラ１１の間に接続され、前記ＤＭＡコントローラ１０と共通バス１３間のパケットデータを変換処理する本発明のデータ転送制御装置１４を備え、システムＣＰＵ（不図示）からの指示に基づいて所定の動作を実施するように構成されている。尚、前記ＤＭＡコントローラ１０と前記データ転送制御装置１４は前記共通バス１３を介して接続されている。また、前記データ転送制御装置１４は、前記ＤＭＡコントローラ１０から転送されたパケットデータ、または、前記メモリコントローラ１１から転送されたパケットデータを、前記メモリコントローラ１１に管理されるメモリ上に設定された後述する第二のＤＭＡ条件データに基づいて変換処理して出力するパケット変換部１５を備えて構成されている。
【００１２】
つまり、前記データ転送システムの概要は、前記ＤＭＡコントローラ１０が、例えば、バッファ１６に分散して蓄積されている複数のデータを、前記レジスタ２０に設定された第一のＤＭＡ条件データに基づいた所定のパケット形式で、前記データ転送制御装置１４を介して、前記メモリコントローラ１１に転送する際に、前記データ転送制御装置１４が、前記パケット変換部１５により、前記所定のパケット形式からなるパケットデータを、前記メモリコントローラ１１に管理されるメモリ上に設定された第二のＤＭＡ条件データに基づいて変換処理して出力するように構成されている。
【００１３】
前記ＤＭＡコントローラ１０は、例えば、図２に示すように、前記バッファ１６に分散して蓄積された各データのうち、転送されることとなるデータＸ、Ｙ、Ｚの何れかに対する条件が、つまり、図３に示すような、転送元アドレス、転送先アドレス、転送サイズ、転送方向（書込みまたは読出しの識別）等からなる前記第一のＤＭＡ条件データが、前記データＸ、Ｙ、Ｚの転送順序に従って順次設定される前記レジスタ２０を備え、前記レジスタ２０に、前記第一のＤＭＡ条件データが、前記システムＣＰＵにより直接書込まれるように構成されている。
【００１４】
前記メモリコントローラ１１は、当該メモリコントローラ１１が管理し、図４に示すような、転送元アドレス、転送先アドレス、転送サイズ、転送方向（書込みまたは読出しの識別）、次テーブルアドレスを一セットとする複数のテーブルリスト２１ａ、２１ｂ、２１ｃを格納するテーブルリスト格納領域２１が設けられ、前記システムＣＰＵにより前記第二のＤＭＡ条件データが前記各テーブルリスト２１ａ、２１ｂ、２１ｃに直接書込まれるように構成されている。ここで、前記各テーブルリスト２１ａ、２１ｂ、２１ｃは、例えば、前記バッファ１６に分散して蓄積されている前記データＸ、Ｙ、Ｚが転送されてくるときには、それぞれ前記データＸ、Ｙ、Ｚに対応するように構成されている。また、前記次テーブルアドレスは、例えば、前記テーブルリスト２１ａにおいては、前記テーブルリスト２１ｂのテーブルアドレスであり、前記テーブルリスト２１ｂにおいては、前記テーブルリスト２１ｃのテーブルアドレスである。つまり、前記次テーブルアドレスは、次にセットされるテーブルリストのテーブルアドレスを示すものである。
【００１５】
前記パケット変換部１５は、図５に示すような、前記メモリコントローラ１１における所定のテーブルアドレスが設定されるレジスタ２２が設けられ、前記システムＣＰＵにより前記所定のテーブルアドレスが第三のＤＭＡ条件データとして前記レジスタ２２に直接書込まれるように構成されている。
【００１６】
以下、前記バッファ１６に分散して蓄積されたデータＸ、Ｙ、Ｚを前記メモリコントローラ１１に転送する場合における前記データ転送システムの動作について、図６に示すフローチャートに基づいて説明する。前記システムＣＰＵは、前記バッファ１６に分散して蓄積されたデータＸ、Ｙ、Ｚの何れかに対する前記第一のＤＭＡ条件データ、例えば、前記データＸに対する前記第一のＤＭＡ条件データを生成し（ＳＡ１）、前記ＤＭＡコントローラ１０における前記レジスタ２０に、前記生成した第一のＤＭＡ条件データを直接書き込む（ＳＡ２）。
【００１７】
前記ＤＭＡコントローラ１０は、前記第一のＤＭＡ条件データが前記レジスタ２０に書き込まれると、前記第一のＤＭＡ条件データに基づいて、例えば、図７に示すような、書込みを識別するフラグＦ１と、書込みアドレスＡ１と、前記データＸ等でなるパケットデータＰａ（ｉ）を生成するとともに（ＳＡ３）、前記パケットデータＰａ（ｉ）を前記データ転送制御装置１４に送信するための送信コマンドＣａ１を、前記データ転送制御装置１４に送信する（ＳＡ４）。
【００１８】
前記データ転送制御装置１４は、前記ＤＭＡコントローラ１０から前記送信コマンドＣａ１を受信すると、前記パケットデータＰａ（ｉ）を受信するための返信コマンドＣｂ１を前記ＤＭＡコントローラ１０に送信する（ＳＡ５）。
【００１９】
前記ＤＭＡコントローラ１０は、前記データ転送制御装置１４から前記返信コマンドＣｂ１を受信すると、前記生成したパケットデータＰａ（ｉ）を前記データ転送制御装置１４に送信する（ＳＡ６）。
【００２０】
前記データ転送制御装置１４は、前記ＤＭＡコントローラ１０から前記パケットデータＰａ（ｉ）を受信すると、前記パケットデータＰａ１を一旦内部バッファに蓄積するとともに（ＳＡ７）、前記パケットデータＰａ（ｉ）の受信が完了した旨の完了コマンドＣｃ１を前記ＤＭＡコントローラ１０に送信する（ＳＡ８）。
【００２１】
前記ＤＭＡコントローラ１０が、前記データ転送制御装置１４から前記完了コマンドＣｃ１を受信すると、前記システムＣＰＵが、前記データＹまたは前記データＺに対する前記第一のＤＭＡ条件データを生成することで、前記ステップＳＡ１から前記ステップＳＡ８の処理が、前記データＹ及び前記データＺに対しても同様に実行される。つまり、符号ｉは、前記ＤＭＡコントローラ１０により生成されるパケットデータの番号であり、ｉ＝Ｘ、Ｙ、Ｚを示している。
【００２２】
また、前記システムＣＰＵは、前記ＤＭＡコントローラ１０が、前記データＸ、Ｙ、Ｚそれぞれに対して、前記パケットデータＰａ（ｉ）の受信が完了した旨の前記完了コマンドＣｃ１を受信すると（ＳＡ９）、前記生成した複数の前記第一のＤＭＡ条件データに基づいて、前記第二のＤＭＡ条件データ及び前記第三のＤＭＡ条件データを生成し（ＳＡ１０、ＳＡ１１）、前記第二のＤＭＡ条件データを前記テーブルリスト格納領域２１における前記各テーブルリスト２１ａ、２１ｂ、２１ｃに、前記第三のＤＭＡ条件データを前記レジスタ２２に直接書込む（ＳＡ１２、ＳＡ１３）。
【００２３】
尚、ここで、前記第三のＤＭＡ条件データは、前記テーブルリスト格納領域２１における先頭テーブルアドレス、つまり、前記テーブルリスト２１ａのテーブルアドレスとして生成される。
【００２４】
前記データ転送制御装置１４は、前記システムＣＰＵにより前記レジスタ２２に前記第三のＤＭＡ条件データが書き込まれると、前記共通バス１３を介して前記メモリコントローラ１１に前記各パケットデータＰａ（ｉ）を変換処理したパケットデータＰｂ（ｉ）を送信するための送信コマンドＣａ２を、前記メモリコントローラ１１に送信する（ＳＡ１４）。
【００２５】
前記メモリコントローラ１１は、前記共通バス１３を介して前記データ転送制御装置１４から前記送信コマンドＣａ２を受信すると、前記テーブルリスト格納領域２１における前記各テーブルリスト２１ａ、２１ｂ、２１ｃに書き込まれた前記第二のＤＭＡ条件データを、前記共通バス１３を介して前記データ転送制御装置１４に返信コマンドＣｂ２として送信する（ＳＡ１５）。
【００２６】
前記データ転送制御装置１４は、前記共通バス１３を介して前記メモリコントローラ１１から返信コマンドＣｂ２を受信すると、前記第二のＤＭＡ条件データ及び前記第三のＤＭＡ条件データに基づいて前記各パケットデータＰａ（ｉ）のアドレスに関する情報を書き換えたパケットデータＰｂ（ｉ）をそれぞれ生成し（ＳＡ１６）、前記生成した各パケットデータＰｂ（ｉ）を、順次、前記共通バス１３を介して前記メモリコントローラ１１に送信する（ＳＡ１７）。
【００２７】
前記メモリコントローラ１１は、前記各パケットデータＰｂ（ｉ）が送信されてくると、前記各テーブルリスト２１ａ、２１ｂ、２１ｃに書き込まれている前記第二のＤＭＡ条件データに基づいて前記各パケットデータＰｂ（ｉ）から前記データＸ、Ｙ、Ｚを抽出し、前記抽出した前記データＸ、Ｙ、Ｚを格納するとともに（ＳＡ１８）、前記各パケットデータＰｂ（ｉ）の受信が完了した旨の完了コマンドＣｃ２を前記データ転送制御装置１４に送信する（ＳＡ１９）。
【００２８】
前記データ転送制御装置１４は、前記メモリコントローラ１１から前記完了コマンドＣｃ２を受信すると、前記ＤＭＡコントローラ１０からの新たな送信コマンドＣａ１の受信に備える。
【００２９】
つまり、前記データ転送制御装置１４は、直接設定方式を採用するＤＭＡコントローラ１０を間接設定方式に転用している。
【００３０】
以下、別の実施形態について説明する。上述の実施形態では、前記ＤＭＡコントローラ１０が、前記データＸ、Ｙ、Ｚそれぞれに対して、前記パケットデータＰａ（ｉ）の受信が完了した旨の前記完了コマンドＣｃ１を受信した後に、前記システムＣＰＵが、前記第二のＤＭＡ条件データ及び前記第三のＤＭＡ条件データを生成し、前記第二のＤＭＡ条件データを前記テーブルリスト格納領域２１における前記各テーブルリスト２１ａ、２１ｂ、２１ｃに、前記第三のＤＭＡ条件データを前記レジスタ２２に直接書込む構成について説明したが、前記システムＣＰＵは、前記ＤＭＡコントローラ１０が最初に前記完了コマンドＣｃ１を受信した後に、前記第二のＤＭＡ条件データ及び前記第三のＤＭＡ条件データを生成し、前記第二のＤＭＡ条件データを前記テーブルリスト格納領域２１における前記各テーブルリスト２１ａ、２１ｂ、２１ｃに、前記第三のＤＭＡ条件データを前記レジスタ２２に直接書込む構成としてもよい。
【００３１】
つまり、前記データ転送制御装置１４が、最初に前記パケットデータＰａ（ｉ）を受信した後に、前記ＤＭＡコントローラ１０との間で前記パケットデータＰａ（ｉ）の転送を行うと同時に、既に受信している前記パケットデータＰａ（ｉ）から前記パケットデータＰｂ（ｉ）を生成し、前記メモリコントローラ１１との間で、前記生成したパケットデータＰｂ（ｉ）の転送を並行して行う構成としてもよい。転送に費やす時間を短縮することができる。
【００３２】
上述した実施形態は、本発明の一例に過ぎず、本発明の作用効果を奏する範囲において各ブロックの具体的構成等を適宜変更設計できることは言うまでもない。
【図面の簡単な説明】
【００３３】
【図１】データ転送システムのブロック構成の説明図
【図２】バッファに分散して蓄積されたデータの説明図
【図３】第一のＤＭＡ条件データの説明図
【図４】第二のＤＭＡ条件データの説明図
【図５】第三のＤＭＡ条件データの説明図
【図６】データ転送システムの動作を説明するためのフローチャート
【図７】パケットデータの説明図
【符号の説明】
【００３４】
１０：ＤＭＡコントローラ
１１：メモリコントローラ
１３： 共通バス
１４：データ転送制御装置
１５：パケット変換部
１６：バッファ
２１：テーブルリスト格納領域
２０、２２：レジスタ
【図１】
0004437467.tif 000002
【図２】
0004437467.tif 000003
【図３】
0004437467.tif 000004
【図４】
0004437467.tif 000005
【図５】
0004437467.tif 000006
【図６】
0004437467.tif 000007
【図７】
0004437467.tif 000008