(57)【要約】【課題】  ダイレクトメモリアクセス転送において、ファイルシステムの特徴を効果的に利用し、ＣＰＵが行う処理を大幅に削減可能なダイレクトメモリアクセス制御装置を提供する。【解決手段】  バスマスタ回路８とバスマスタ回路８の制御を行うバスマスタ制御回路９を備えてなり、バスマスタ制御回路９が、バスマスタ回路８に対し、メモリ空間内に設定されたクラスタテーブル５に格納されたクラスタの属性情報を検索させ、属性情報に含まれる後続クラスタの有無または後続クラスタがある場合の当該後続クラスタ番号に基づいてファイル読み込み操作における転送元アドレスまたはファイル書き込み操作における転送先アドレスの設定を行い、バスマスタ回路８に対し、設定した転送元アドレスまたは転送先アドレスに対するダイレクトメモリアクセス転送を実行させる。【選択図】        図１
2006244398.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタ回路と前記バスマスタ回路の制御を行うバスマスタ制御回路を備えてなり、
前記バスマスタ制御回路が、前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルに格納されたクラスタの属性情報を検索させ、前記属性情報に含まれる後続クラスタの有無または後続クラスタがある場合の当該後続クラスタ番号に基づいてファイル読み込み操作における転送元アドレスまたはファイル書き込み操作における転送先アドレスの設定を行い、前記バスマスタ回路に対し、設定した転送元アドレスまたは転送先アドレスに対するダイレクトメモリアクセス転送を実行させることを特徴とするダイレクトメモリアクセス制御装置。
【請求項２】
前記バスマスタ制御回路が、前記バスマスタ回路に対し、クラスタ現在位置アドレスで指定されたクラスタの属性情報をメモリ空間内に設定されたクラスタテーブルから取得させ、前記属性情報に含まれる後続クラスタのクラスタ番号に基づいて転送元アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする請求項１に記載のダイレクトメモリアクセス制御装置。
【請求項３】
前記バスマスタ制御回路が、
ＣＰＵから指定された読み出し対象ファイルの先頭クラスタ番号に基づいてクラスタ現在位置アドレスを設定し、
前記クラスタ現在位置アドレスに基づいてダイレクトメモリアクセス転送の転送元アドレスを設定し、
前記バスマスタ回路に対し、設定した転送元アドレスから前記ＣＰＵから指定された転送先アドレスへ前記クラスタ現在位置アドレスで指定されたクラスタデータのダイレクトメモリアクセス転送を実行させ、
前記ダイレクトメモリアクセス転送実行後に、前記バスマスタ回路に対し、前記クラスタ現在位置アドレスで指定されたクラスタの属性情報をメモリ空間内に設定されたクラスタテーブルから取得させ、
前記属性情報が、転送したクラスタが前記読み出し対象ファイルの最終クラスタであることを示している場合は、ダイレクトメモリアクセス転送を終了し、
前記属性情報が、前記転送したクラスタの後続クラスタのクラスタ番号を示している場合は、当該クラスタ番号に基づいて前記クラスタ現在位置アドレスを再設定して、前記転送元アドレスの設定、前記ダイレクトメモリアクセス転送の実行、及び、前記属性情報の取得を、転送したクラスタが前記読み出し対象ファイルの最終クラスタとなるまで繰り返すことを特徴とする請求項２に記載のダイレクトメモリアクセス制御装置。
【請求項４】
前記先頭クラスタ番号、前記クラスタ現在位置アドレス、前記転送元アドレス、前記転送先アドレス、前記転送元アドレスを計算するためのクラスタサイズとディスクオフセット、及び、前記クラスタテーブルの開始アドレスと終了アドレスを、各別に格納するレジスタを備えていることを特徴とする請求項３に記載のダイレクトメモリアクセス制御装置。
【請求項５】
前記バスマスタ制御回路が、前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルを検索させて、空きクラスタを検出させ、前記空きクラスタに基づいて転送先アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする請求項１〜４の何れか１項に記載のダイレクトメモリアクセス制御装置。
【請求項６】
前記バスマスタ制御回路が、
ＣＰＵから先頭アドレスを指定された書き込み対象ファイルの書き込み指令に応答して、前記書き込み対象ファイルの大きさに基づいて転送回数を設定し、
前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルを検索させてクラスタ現在位置アドレスで指定されるクラスタが空きクラスタか否かを検出させ、空きクラスタでない場合は、前記クラスタ現在位置アドレスを進めて空きクラスタが検出されるまで前記クラスタテーブルの検索を行わせ、空きクラスタが検出されると当該クラスタを転送先アドレスに設定し、前記バスマスタ回路に対し、前記書き込み対象ファイルの前記転送先アドレスへのダイレクトメモリアクセス転送を実行させ、
前記ダイレクトメモリアクセス転送実行後に、前記転送回数を１減じた結果が０か否かを判定し、当該結果が０でない場合は、当該結果が０となるまで、再度前記バスマスタ回路に対し、空きクラスタの検出と、検出された空きクラスタを転送先アドレスとする前記書き込み対象ファイルの未転送部分のダイレクトメモリアクセス転送を繰り返し実行させることを特徴とする請求項５に記載のダイレクトメモリアクセス制御装置。
【請求項７】
前記バスマスタ制御回路が、前記書き込み対象ファイルのダイレクトメモリアクセス転送実行後または完了後に、前記バスマスタ回路に対し、前記クラスタテーブルの更新を行わせることを特徴とする請求項６に記載のダイレクトメモリアクセス制御装置。
【請求項８】
前記書き込み対象ファイルの転送元アドレス、前記クラスタ現在位置アドレス、前記転送先アドレス、前記転送先アドレスを計算するためのクラスタサイズとディスクオフセット、及び、前記クラスタテーブルの開始アドレスと終了アドレスを、各別に格納するレジスタを備えていることを特徴とする請求項６または７に記載のダイレクトメモリアクセス制御装置。
【請求項９】
バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルに格納されたクラスタの属性情報を検索させ、前記属性情報に含まれる後続クラスタの有無または後続クラスタがある場合の当該後続クラスタ番号に基づいてファイル読み込み操作における転送元アドレスまたはファイル書き込み操作における転送先アドレスの設定を行い、前記バスマスタ回路に対し、設定した転送元アドレスまたは転送先アドレスに対するダイレクトメモリアクセス転送を実行させることを特徴とするダイレクトメモリアクセス制御方法。
【請求項１０】
前記バスマスタ回路に対し、クラスタ現在位置アドレスで指定されたクラスタの属性情報をメモリ空間内に設定されたクラスタテーブルから取得させ、前記属性情報に含まれる後続クラスタのクラスタ番号に基づいて転送元アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする請求項９に記載のダイレクトメモリアクセス制御方法。
【請求項１１】
前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルを検索させて、空きクラスタを検出させ、前記空きクラスタに基づいて転送先アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする請求項９または１０に記載のダイレクトメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（中央演算処理装置）と周辺回路からなる組み込みシステムにおけるダイレクトメモリアクセス転送装置及び方法に関する。
【背景技術】
【０００２】
従来、ダイレクトメモリアクセス（ＤＭＡ）によってデータ転送を行う技術においては、ＣＰＵから転送先アドレス、転送元アドレスを設定した後、ダイレクトメモリアクセスが実行され、これを続けて行う場合は、ＣＰＵは割り込み、或いはステータスレジスタをポーリングすることでダイレクトメモリアクセス終了を待ち、終了後、ＣＰＵがアドレス設定からの一連の処理を繰り返して行っていた。この時、アドレスが連続していない小さなデータの塊に対するダイレクトメモリアクセスを繰り返す場合、ＣＰＵからのアドレス設定処理回数が多くなり、その結果システム全体の性能を下げていた。
【０００３】
これを解消する従来技術として、複数の転送先アドレスと転送元アドレスを予めダイレクトメモリアクセスコントローラ内に設定しておき、これを順次実行することで、ＤＭＡ転送間のＣＰＵ処理の回数を減らす方法がある（下記特許文献１参照）。
【０００４】
【特許文献１】特開昭５９−１３６８３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、フレキシブルディスクやメモリカード等に使われているファイルシステムでは、ディスクをクラスタと呼ばれる単位に分割し、そのクラスタ毎の状態（属性情報）をクラスタテーブルに記録している。クラスタテーブルは、クラスタが未使用であるか、また使用中の場合はファイルがそのクラスタで終了しているか、終了していなければ後続のクラスタはどこかが、クラスタ番号の順に記録されている。
【０００６】
一方、ディスクに置かれたデータをメインメモリ上に転送、逆にメインメモリ上に置かれたデータをディスクに転送する場合、ＣＰＵが転送中に他の処理を行えるよう、ダイレクトメモリアクセスが使われる。しかしながら、ファイルシステムにおいては、クラスタテーブルを参照して転送先を探さなければならず、また、クラスタのサイズが小さいこと、断片化と呼ばれる空きクラスタや１つのファイルを構成するクラスタがディスク内に点在する状況が発生すること等から、１回のダイレクトメモリアクセス転送で扱えるデータ量が小さくなり、多量のデータを転送する場合はＣＰＵから何度もダイレクトメモリアクセスの設定と実行のための処理をしなければならなかった。このことがシステム全体に及ぼす影響は大きい。
【０００７】
本発明は、上記問題点に鑑みてなされたものであり、その目的は、ダイレクトメモリアクセス転送において、ファイルシステムの特徴を効果的に利用し、ＣＰＵが行う処理を大幅に削減可能なダイレクトメモリアクセス制御装置及び方法を提供する点にある。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明に係るダイレクトメモリアクセス制御装置は、バスマスタ回路と前記バスマスタ回路の制御を行うバスマスタ制御回路を備えてなり、前記バスマスタ制御回路が、前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルに格納されたクラスタの属性情報を検索させ、前記属性情報に含まれる後続クラスタの有無または後続クラスタがある場合の当該後続クラスタ番号に基づいてファイル読み込み操作における転送元アドレスまたはファイル書き込み操作における転送先アドレスの設定を行い、前記バスマスタ回路に対し、設定した転送元アドレスまたは転送先アドレスに対するダイレクトメモリアクセス転送を実行させることを特徴とする。
【０００９】
一般的にダイレクトメモリアクセス制御回路にはバスマスタと呼ばれる機能があることから、上記特徴の本発明に係るダイレクトメモリアクセス制御装置では、当該バスマスタ機能を実行するバスマスタ回路を制御するバスマスタ制御回路を加え、ファイルシステムの特徴を用いて、ＣＰＵからの処理なしに連続で転送を行う。具体的には、バスマスタ制御回路の制御下において、バスマスタ回路がメモリ空間内に置かれたクラスタテーブルにアクセスし、ダイレクトメモリアクセス転送を行うべき転送先または転送元アドレスを自動で検索する。バスマスタ回路が当該アドレスを検索できた後は、バスマスタ回路が定められた転送元アドレスから転送先アドレスへデータ転送するダイレクトメモリアクセス転送機能を用いてデータ転送を実行する。これにより、ダイレクトメモリアクセス転送に要するＣＰＵが行う処理を大幅に削減できる。
【００１０】
更に、本発明に係るダイレクトメモリアクセス制御装置は、前記バスマスタ制御回路が、前記バスマスタ回路に対し、クラスタ現在位置アドレスで指定されたクラスタの属性情報をメモリ空間内に設定されたクラスタテーブルから取得させ、前記属性情報に含まれる後続クラスタのクラスタ番号に基づいて転送元アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする。
【００１１】
更に好ましくは、本発明に係るダイレクトメモリアクセス制御装置は、前記バスマスタ制御回路が、ＣＰＵから指定された読み出し対象ファイルの先頭クラスタ番号に基づいてクラスタ現在位置アドレスを設定し、前記クラスタ現在位置アドレスに基づいてダイレクトメモリアクセス転送の転送元アドレスを設定し、前記バスマスタ回路に対し、設定した転送元アドレスから前記ＣＰＵから指定された転送先アドレスへ前記クラスタ現在位置アドレスで指定されたクラスタデータのダイレクトメモリアクセス転送を実行させ、前記ダイレクトメモリアクセス転送実行後に、前記バスマスタ回路に対し、前記クラスタ現在位置アドレスで指定されたクラスタの属性情報をメモリ空間内に設定されたクラスタテーブルから取得させ、前記属性情報が、転送したクラスタが前記読み出し対象ファイルの最終クラスタであることを示している場合は、ダイレクトメモリアクセス転送を終了し、前記属性情報が、前記転送したクラスタの後続クラスタのクラスタ番号を示している場合は、当該クラスタ番号に基づいて前記クラスタ現在位置アドレスを再設定して、前記転送元アドレスの設定、前記ダイレクトメモリアクセス転送の実行、及び、前記属性情報の取得を、転送したクラスタが前記読み出し対象ファイルの最終クラスタとなるまで繰り返すことを特徴とする。
【００１２】
更に、本発明に係るダイレクトメモリアクセス制御装置は、前記バスマスタ制御回路が、前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルを検索させて、空きクラスタを検出させ、前記空きクラスタに基づいて転送先アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする。
【００１３】
更に好ましくは、本発明に係るダイレクトメモリアクセス制御装置は、前記バスマスタ制御回路が、ＣＰＵから先頭アドレスを指定された書き込み対象ファイルの書き込み指令に応答して、前記書き込み対象ファイルの大きさに基づいて転送回数を設定し、前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルを検索させてクラスタ現在位置アドレスで指定されるクラスタが空きクラスタか否かを検出させ、空きクラスタでない場合は、前記クラスタ現在位置アドレスを進めて空きクラスタが検出されるまで前記クラスタテーブルの検索を行わせ、空きクラスタが検出されると当該クラスタを転送先アドレスに設定し、前記バスマスタ回路に対し、前記書き込み対象ファイルの前記転送先アドレスへのダイレクトメモリアクセス転送を実行させ、前記ダイレクトメモリアクセス転送実行後に、前記転送回数を１減じた結果が０か否かを判定し、当該結果が０でない場合は、当該結果が０となるまで、再度前記バスマスタ回路に対し、空きクラスタの検出と、検出された空きクラスタを転送先アドレスとする前記書き込み対象ファイルの未転送部分のダイレクトメモリアクセス転送を繰り返し実行させることを特徴とする。
【００１４】
更に好ましくは、本発明に係るダイレクトメモリアクセス制御装置は、前記バスマスタ制御回路が、前記書き込み対象ファイルのダイレクトメモリアクセス転送実行後または完了後に、前記バスマスタ回路に対し、前記クラスタテーブルの更新を行わせることを特徴とする。
【００１５】
上記目的を達成するための本発明に係るダイレクトメモリアクセス制御方法は、バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルに格納されたクラスタの属性情報を検索させ、前記属性情報に含まれる後続クラスタの有無または後続クラスタがある場合の当該後続クラスタ番号に基づいてファイル読み込み操作における転送元アドレスまたはファイル書き込み操作における転送先アドレスの設定を行い、前記バスマスタ回路に対し、設定した転送元アドレスまたは転送先アドレスに対するダイレクトメモリアクセス転送を実行させることを特徴とする。
【００１６】
更に、本発明に係るダイレクトメモリアクセス制御方法は、前記バスマスタ回路に対し、クラスタ現在位置アドレスで指定されたクラスタの属性情報をメモリ空間内に設定されたクラスタテーブルから取得させ、前記属性情報に含まれる後続クラスタのクラスタ番号に基づいて転送元アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする。
【００１７】
更に、本発明に係るダイレクトメモリアクセス制御方法は、前記バスマスタ回路に対し、メモリ空間内に設定されたクラスタテーブルを検索させて、空きクラスタを検出させ、前記空きクラスタに基づいて転送先アドレスの設定を行い、前記バスマスタ回路に対し、ダイレクトメモリアクセス転送を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明に係るダイレクトメモリアクセス制御装置または方法により、ファイルシステムとのダイレクトメモリアクセスによるデータ転送において、ＣＰＵのアドレス設定回数を大幅に削減できる。また、ＣＰＵが行う検索より高速であるため、ファイルの読み込み及び書き込みの速度の向上が可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明に係るダイレクトメモリアクセス制御装置（以下、適宜「本発明装置」と略称する）、及び、本発明装置で実行されるダイレクトメモリアクセス制御方法の実施形態を図面に基づいて説明する。
【００２０】
〈第１実施形態〉
図１は、第１実施形態に係る本発明装置１の概略構成を示すブロック図である。図１に示すように、本発明装置１は、バスマスタ回路８、バスマスタ制御回路９、転送元アドレスレジスタ１０、転送回数設定レジスタ１１、転送先アドレスレジスタ１２、クラスタサイズレジスタ１３、クラスタテーブル開始アドレスレジスタ１４、クラスタテーブル終了アドレスレジスタ１５、クラスタチェーン検索開始レジスタ１６、クラスタ現在位置レジスタ１７、ディスクオフセットレジスタ１８、及び、バスマスタ制御回路命令レジスタ１９を備えて構成される。更に、バスマスタ制御回路命令レジスタ１９は、読み出し書き込み設定レジスタ２０、転送開始命令レジスタ２１からなる。
【００２１】
バスマスタ制御回路９は、ＣＰＵ３からの読み出し指令に対して、バスマスタ回路８に対し以下に示す制御を行い、バスマスタ回路８は、読み出し対象ファイルをディスク６内からバス７を介してダイレクトメモリアクセス転送する。
【００２２】
ＣＰＵ３は、先ず、本発明装置１に対し、読み出し対象ファイルのダイレクトメモリアクセス転送を実行させるために以下の処理を実行する。ＣＰＵ３は、クラスタテーブル開始アドレスレジスタ１４、クラスタテーブル終了アドレスレジスタ１５に、メモリ４のメモリ空間内にコピーしたクラスタテーブル５の位置を設定する。ＣＰＵ３は、クラスタチェーン検索開始レジスタ１６に読み出し対象ファイルの先頭クラスタのクラスタ番号を設定する。ＣＰＵ３は、ディスク６内からダイレクトメモリアクセス転送によって読み出し対象ファイルのデータを読み出すため、転送先アドレスレジスタ１２に当該データを書き込むメモリ４の転送先アドレスを設定する。ＣＰＵ３は、読み出し書き込み設定レジスタ２０に「読み出し」を設定するためのビットを、転送開始命令レジスタ２１に開始命令を与えるためのビットを夫々設定し、バスマスタ制御回路命令レジスタ１９へ書き込む。
【００２３】
バスマスタ制御回路９はバスマスタ制御回路命令レジスタ１９を参照し、以下の動作を実行する。
【００２４】
先ず、バスマスタ制御回路９は、クラスタ現在位置レジスタ１７にクラスタチェーン検索開始レジスタ１６の値のコピーを行う。バスマスタ制御回路９は、クラスタ現在位置アドレスレジスタ１５を読み出し、その値にクラスタサイズレジスタ１３の値を乗じた後、ディスクオフセットレジスタ１８の値を加算して転送元アドレスとし、転送元アドレスレジスタ１０に設定する。バスマスタ制御回路９は、転送回数設定レジスタ１１にクラスタサイズレジスタ１３の内容をコピーする。次に、バスマスタ制御回路９は、上記各レジスタ設定に基づき、バスマスタ回路８に対しダイレクトメモリアクセス転送を実行させる。
【００２５】
バスマスタ制御回路９は、ダイレクトメモリアクセス転送の実行終了を検知した後、クラスタ現在位置レジスタ１７の値をアドレスとして見て、当該アドレス位置で指定されるクラスタテーブル５のクラスタ属性情報をバスマスタ回路７に読み出させる。読み出したクラスタ属性情報がファイル終了を示す内容であれば、読み出し対象ファイルは現在のクラスタで終了しているので、ダイレクトメモリアクセス転送を完了する。読み出したクラスタ属性情報がファイル終了を示していなければ、その属性情報は後続クラスタのクラスタ番号であるので、バスマスタ制御回路９は、クラスタ現在位置レジスタ１７に当該後続クラスタのクラスタ番号セットし、再び、転送元アドレスを上記と同じ要領で転送元アドレスを算出し、転送元アドレスレジスタ１０に設定して、バスマスタ回路８に対し、ダイレクトメモリアクセスを実行させる。
【００２６】
以降、クラスタテーブル５から読み出したクラスタ属性情報がファイル終了を示すようになるまで、バスマスタ制御回路９とバスマスタ回路８は、上記一連の動作を繰り返し行う。バスマスタ制御回路９は、初期の動作と同様にクラスタ現在位置レジスタ１７、クラスタサイズレジスタ１３、ディスクオフセットレジスタ１８の値から転送元レジスタ、転送先レジスタを計算して設定し、ダイレクトメモリアクセス転送を繰り返す。転送回数設定レジスタ１１はバスマスタ回路８がダイレクトメモリアクセス転送を１回実行する毎に１減算される。
【００２７】
〈第２実施形態〉
図２は、第２実施形態に係る本発明装置２の概略構成を示すブロック図である。図２に示すように、本発明装置２は、バスマスタ回路８、バスマスタ制御回路９、転送元アドレスレジスタ１０、転送回数設定レジスタ１１、転送先アドレスレジスタ１２、クラスタサイズレジスタ１３、クラスタテーブル開始アドレスレジスタ１４、クラスタテーブル終了アドレスレジスタ１５、空きクラスタ検索開始レジスタ２２、クラスタ現在位置レジスタ１７、ディスクオフセットレジスタ１８、及び、バスマスタ制御回路命令レジスタ１９を備えて構成される。更に、バスマスタ制御回路命令レジスタ１９は、読み出し書き込み設定レジスタ２０、転送開始命令レジスタ２１からなる。クラスタチェーン検索開始レジスタ１６に代えて空きクラスタ検索開始レジスタ２２を備えている点以外は、第１実施形態に係る本発明装置１と同じ構成である。尚、図２において、第１実施形態と同じ構成要素には同じ符号を付して説明する。
【００２８】
バスマスタ制御回路９は、ＣＰＵ３からの書き込み指令に対して、バスマスタ回路８に対し以下に示す制御を行い、バスマスタ回路８は、書き込み対象ファイルを、バス７を介してディスク６内へダイレクトメモリアクセス転送する。
【００２９】
ＣＰＵ３は、先ず、本発明装置１に対し、読み出し対象ファイルのダイレクトメモリアクセス転送を実行させるために以下の処理を実行する。ＣＰＵ３は、クラスタテーブル開始アドレスレジスタ１４、クラスタテーブル終了アドレスレジスタ１５に、メモリ４のメモリ空間内にコピーしたクラスタテーブル５の位置を設定する。ＣＰＵ３は、空きクラスタ検索開始レジスタ２２に、空きクラスタ検索を行いたいクラスタの先頭アドレスを設定する。ＣＰＵ３は、ディスク６内へダイレクトメモリアクセス転送によって書き込み対象ファイルのデータを書き込むため、転送元アドレスレジスタ１０に書き込み対象ファイルのデータが置かれたメモリ４の先頭アドレスを設定する。また、ＣＰＵ３は、転送回数レジスタ１１に書き込む対象ファイルの大きさを設定する。ＣＰＵ３は、読み出し書き込み設定レジスタ２０に「書き込み」を設定するためのビットを、転送開始命令レジスタ２１に開始命令を与えるためのビットを夫々設定し、バスマスタ制御回路命令レジスタ１９へ書き込む。
【００３０】
バスマスタ制御回路９は、バスマスタ制御回路命令レジスタ１９を参照し、以下の動作を実行する。
【００３１】
バスマスタ制御回路９は、以下の要領でクラスタテーブル５内の検索を開始する。バスマスタ制御回路９は、先ず、空きクラスタ検索開始レジスタ２２の値をクラスタ現在位置レジスタ１７にコピーする。バスマスタ制御回路９は、クラスタ現在位置レジスタ１７の値を読み出し、その値にクラスタサイズレジスタ１３の値を乗じた後、クラスタテーブル開始アドレスレジスタ１４の値を加算して検索対象クラスタのアドレスとし、バスマスタ回路８にクラスタテーブル５を検索させて当該クラスタの属性情報を検出させる。もし、検出した属性情報の値が「０」であれば、当該クラスタは空きクラスタである。バスマスタ制御回路９は、クラスタ現在位置レジスタ１７の値にクラスタサイズレジスタ１３の値を乗じた後、ディスクオフセットレジスタ１８を加算して転送先アドレスとし、転送先アドレスレジスタ１２に設定する。次に、バスマスタ制御回路９は、上記各レジスタ設定に基づき、バスマスタ回路８に対しダイレクトメモリアクセス転送を実行させる。尚、バスマスタ制御回路９は、バスマスタ回路８によりダイレクトメモリアクセス転送が実行される毎に、転送回数設定レジスタ１１の値を１減算する。
【００３２】
検出した属性情報の値が「０」でなかった場合、当該クラスタは空きクラスタではないので、バスマスタ制御回路９は、クラスタ現在位置レジスタ１７の値に１を加算する。引き続き、バスマスタ制御回路９は、クラスタ現在位置レジスタ１７の値を基に次の検索対象クラスタのアドレスを算出し、バスマスタ回路８にクラスタテーブル５を検索させて当該次のクラスタの属性情報を検出させ、次のクラスタが空きクラスタか否かを判定する。以降、検出した属性情報の値が「０」になるまで、同じ要領で、空きクラスタの検索を繰り返し実行し、空きクラスタを検出すると、検出した空きクラスタを上記要領で転送先に設定して、バスマスタ回路８に対しダイレクトメモリアクセス転送を実行させる。
【００３３】
バスマスタ制御回路９は、同じ要領で、空きクラスタの検索と空きクラスタへのダイレクトメモリ転送を、転送回数設定レジスタ１１が０になるまで繰り返す。
【００３４】
また、バスマスタ制御回路９は、全てのダイレクトメモリアクセス転送が終了すると、書き込みに使用したクラスタの属性情報を更新するため、バスマスタ回路８に対し、クラスタテーブル５の更新処理を実行させる。尚、クラスタテーブル５の更新処理は後続クラスタを検出する毎に実行するようにしても構わない。
【００３５】
以下に、本発明装置の別実施形態につき説明する。
【００３６】
上記第１実施形態では、バスマスタ制御回路９が、ＣＰＵ３からの読み出し指令に対して、バスマスタ回路８に対し以下に示す制御を行い、バスマスタ回路８は、読み出し対象ファイルをディスク６内からバス７を介してダイレクトメモリアクセス転送する場合を説明し、また、上記第２実施形態では、バスマスタ制御回路９が、ＣＰＵ３からの書き込み指令に対して、バスマスタ回路８に対し以下に示す制御を行い、バスマスタ回路８は、書き込み対象ファイルを、バス７を介してディスク６内へダイレクトメモリアクセス転送する場合を説明した。しかし、本発明装置に、クラスタチェーン検索開始レジスタ１６と空きクラスタ検索開始レジスタ２２の両方を備え、或いは、１つのクラスタ検索開始レジスタをクラスタチェーン検索開始レジスタ１６と空きクラスタ検索開始レジスタ２２の両方に兼用して、バスマスタ制御回路９が、上記第１実施形態と上記第２実施形態において説明した読み出し及び書き込みの両制御を実行可能に構成するのも好ましい。
【産業上の利用可能性】
【００３７】
本発明に係るダイレクトメモリアクセス制御装置及び方法は、ＣＰＵ（中央演算処理装置）と周辺回路からなる組み込みシステムにおけるダイレクトメモリアクセス転送装置及び方法に利用可能である。
【図面の簡単な説明】
【００３８】
【図１】本発明に係るダイレクトメモリアクセス制御装置の第１実施形態における回路構成を示すブロック図
【図２】本発明に係るダイレクトメモリアクセス制御装置の第２実施形態における回路構成を示すブロック図
【図３】従来のダイレクトメモリアクセス制御装置の一回路構成例を示すブロック図
【符号の説明】
【００３９】
１，２：  本発明に係る半導体記憶装置
３：      ＣＰＵ
４：      メモリ
５：      クラスタテーブル
６：      ディスク
７：      バス
８：      バスマスタ回路
９：      バスマスタ制御回路
１０：    転送元アドレスレジスタ
１１：    転送回数設定レジスタ
１２：    転送先アドレスレジスタ
１３：    クラスタサイズレジスタ
１４：    クラスタテーブル開始アドレスレジスタ
１５：    クラスタテーブル終了アドレスレジスタ
１６：    クラスタチェーン検索開始レジスタ
１７：    クラスタ現在位置レジスタ
１８：    ディスクオフセットレジスタ
１９：    バスマスタ制御回路命令レジスタ
２０：    読み出し書き込み設定レジスタ
２１：    転送開始命令レジスタ
２２：    空きクラスタ検索開始レジスタ
【図１】
2006244398.tif 000003
【図２】
2006244398.tif 000004
【図３】
2006244398.tif 000005