(57)【要約】【課題】実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合するマスタのアクセスを実行可能にする。【解決手段】本発明に係るデータ転送制御装置１１０は、ＣＰＵ１０１及び第１のＤＭＡＣ１０２からの要求に従い、第１の記憶装置１０７へアクセスする第１のＩＦ１０５と、第１のＤＭＡＣ１０２からの要求に従い、第２の記憶装置１０８へアクセスする第２のＩＦ１０６と、第２のＩＦ１０６が第２の記憶装置１０８にアクセスを開始してからの経過時間をカウントするカウンタ１０９とを備える。第１のＩＦ１０５は、連続転送動作中に、ＣＰＵ１０１から第１の記憶装置１０７へのアクセス要求を受けた場合において、経過時間が基準値以下の場合、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスを許可する。【選択図】図１
2012221125.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶装置及び第２の記憶装置の一方から他方にデータを転送するデータ転送制御装置であって、
前記第１の記憶装置に対してアクセスを行うマスタと、
前記マスタから独立した第１のバスと、
前記第１のバスを介して、前記第１の記憶装置及び前記第２の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第１のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と、
前記マスタ及び前記第１のＤＭＡＣからの要求に従い、前記第１の記憶装置へアクセスする第１のインターフェース部と、
前記第１のＤＭＡＣからの要求に従い、前記第２の記憶装置へアクセスする第２のインターフェース部と、
前記第２のインターフェース部が前記第２の記憶装置にアクセスを開始してからの第１の経過時間をカウントするカウンタとを備え、
前記第１のインターフェース部は、
前記連続転送動作中に、前記マスタから前記第１の記憶装置へのアクセス要求を受けた場合において、（１）前記第１の経過時間が第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可し、（２）前記第１の経過時間が前記第１の基準値より大きい場合、前記マスタから前記第１の記憶装置へのアクセスを禁止する第１のアクセス制御部を備える
データ転送制御装置。
【請求項２】
前記第１のインターフェース部は、さらに、
前記第１のＤＭＡＣから前記第２の記憶装置への１回のアクセスに必要な第１のＤＭＡＣアクセス時間と、前記マスタから前記第１の記憶装置への１回のアクセスに必要な第１のマスタアクセス時間とを保持する第１のレジスタを備え、
前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算することで、前記第１の基準値を算出する
請求項１に記載のデータ転送制御装置。
【請求項３】
前記第１のレジスタは、さらに、１回の前記データ転送動作の第１の遅延許容値を保持し、
前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記第１の遅延許容値を加算することで、前記第１の基準値を算出する
請求項２に記載のデータ転送制御装置。
【請求項４】
前記第１のインターフェース部は、さらに、
１回の前記連続転送動作における全体遅延許容量を保持する第２のレジスタを備え、
前記第１のアクセス制御部は、前記マスタから前記第１の記憶装置へのアクセス要求が発生した際に、
前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第１の遅延許容値を加算することで、前記第１の基準値を算出し、
前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記第２のレジスタに保持されている前記全体遅延許容量を減らし、
前記第２のレジスタに保持されている前記全体遅許容延量が予め定められた値以下になった場合、前記第１の基準値として、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算した値を用いる
請求項２に記載のデータ転送制御装置。
【請求項５】
前記第１の遅延許容値は、前記全体遅延許容量である
請求項４に記載のデータ転送制御装置。
【請求項６】
前記第１のアクセス制御部は、
前記全体遅延許容量が予め定められた閾値以上の場合、第１の値を前記遅延許容値として用い、
前記全体遅延許容量が前記閾値未満の場合、前記第１の値の値より小さい第２の値を前記遅延許容値として用いる
請求項４に記載のデータ転送制御装置。
【請求項７】
前記第１のアクセス制御部は、
前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記第１の経過時間と前記第１のマスタアクセス時間とを加算し、加算した値から前記第１のＤＭＡＣアクセス時間を減算することで、第１の遅延時間を算出し、前記第２のレジスタに保持されている前記全体遅延許容量から前記第１の遅延時間を減算することで、前記第２のレジスタに保持されている前記全体遅延許容量を更新する
請求項４に記載のデータ転送制御装置。
【請求項８】
前記第２のレジスタは、１回の前記連続転送動作を分割した複数の部分区間の各々に対応する部分遅延許容量を保持し、
前記第１のアクセス制御部は、前記マスタから前記第１の記憶装置へのアクセス要求が発生した際に、
前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、対応する部分区間の前記部分遅延量を加算することで、前記第１の基準値を算出し、
前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記第２のレジスタに保持されている、対応する部分区間の前記部分遅延許容量を減らし、
前記第２のレジスタに保持されている、対応する区間の前記部分遅延量が予め定められた値以下になった場合、前記第１の基準値として、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算した値を用いる
請求項４に記載のデータ転送制御装置。
【請求項９】
前記第１のＤＭＡＣは、
１回の前記データ転送動作において、前記第１の記憶装置又は前記第２の記憶装置へ連続してアクセスする回数を示す連続アクセス回数を保持する第３のレジスタと、
前記第１の記憶装置又は前記第２の記憶装置から、読み出したデータを保持するバッファとを備え、
前記第１のＤＭＡＣは、１回の前記データ転送動作において、前記第１の記憶装置及び前記第２の記憶装置の一方から前記連続アクセス回数分、連続してデータを読み出し、当該連続して読み出したデータを前記バッファに格納し、前記バッファに格納したデータを、前記連続アクセス回数分の書き込み動作で、前記第１の記憶装置及び前記第２の記憶装置の他方へ書き込み、
前記カウンタは、前記第２のインターフェース部による、前記第２の記憶装置への前記連続アクセス回数分のアクセスのうち初回のアクセスが開始されてからの時間を前記第１の経過時間としてカウントする
請求項１に記載のデータ転送制御装置。
【請求項１０】
前記第１のインターフェース部は、さらに、
前記第１のＤＭＡＣから前記第２の記憶装置への１回のアクセスに必要な第１のＤＭＡＣアクセス時間と、前記マスタから前記第１の記憶装置への１回のアクセスに必要な第１のマスタアクセス時間とを保持する第１のレジスタを備え、
前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間と前記連続アクセス回数との積から前記第１のマスタアクセス時間を減算することで、前記第１の基準値を算出する
請求項９に記載のデータ転送制御装置。
【請求項１１】
前記第１のレジスタは、さらに、１回の前記データ転送動作の第１の遅延許容値を保持し、
前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間と前記連続アクセス回数との積から前記第１のマスタアクセス時間を減算したうえで、前記第１の遅延許容値を加算することで、前記第１の基準値を算出する
請求項１０に記載のデータ転送制御装置。
【請求項１２】
前記データ転送制御装置は、さらに、
前記第１のバスから独立した第２のバスを備え、
前記マスタは、前記第２のバスを介して前記第１の記憶装置へのアクセスを行う第２のＤＭＡＣである
請求項１〜１１のいずれか１項に記載のデータ転送制御装置。
【請求項１３】
前記マスタは、前記第１のバスから独立した第２のバスを介して、前記第１の記憶装置及び前記第２の記憶装置にアクセスし、
前記第２のインターフェース部は、さらに、前記マスタからの指示に従い、前記第２の記憶装置へアクセスし、
前記カウンタは、さらに、前記第１のインターフェース部が前記第１の記憶装置にアクセスを開始してからの第２の経過時間をカウントし、
前記第２のインターフェース部は、前記連続転送動作中に、前記マスタから前記第２の記憶装置へのアクセス要求を受けた場合、
前記第２の経過時間が第２の基準値以下の場合、前記マスタから前記第２の記憶装置へのアクセスを許可し、
前記第２経過時間が前記第２の基準値より大きい場合、前記マスタから前記第２の記憶装置へのアクセスを禁止する第２のアクセス制御部を備える
請求項１に記載のデータ転送制御装置。
【請求項１４】
前記第１のインターフェース部は、さらに、
前記第１のＤＭＡＣから前記第２の記憶装置への１回のアクセスに必要な第１のＤＭＡＣアクセス時間と、前記マスタから前記第１の記憶装置への１回のアクセスに必要な第１のマスタアクセス時間とを保持する第１のレジスタを備え、
前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算することで、前記第１の基準値を算出し、
前記第２のインターフェース部は、さらに、
前記第１のＤＭＡＣから前記第１の記憶装置への１回のアクセスに必要な第２のＤＭＡＣアクセス時間と、前記マスタから前記第２の記憶装置への１回のアクセスに必要な第２のマスタアクセス時間とを保持する第４のレジスタを備え、
前記第２のアクセス制御部は、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算することで、前記第２の基準値を算出する
請求項９に記載のデータ転送制御装置。
【請求項１５】
前記第１のレジスタは、さらに、１回の前記データ転送動作の第１の遅延許容値を保持し、
前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記第１の遅延許容値を加算することで、前記第１の基準値を算出し、
前記第４のレジスタは、さらに、１回の前記データ転送動作の第２の遅延許容値を保持し、
前記第２のアクセス制御部は、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算したうえで、前記第２の遅延許容値を加算することで、前記第２の基準値を算出する
請求項１４に記載のデータ転送制御装置。
【請求項１６】
前記データ転送制御装置は、さらに、
１回の前記連続転送動作における全体遅延許容量を保持する第２のレジスタを備え、
前記第１のアクセス制御部は、前記マスタから前記第１の記憶装置へのアクセス要求が発生した際に、
前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第１遅延許容値を加算することで、前記第１の基準値を算出し、
前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、
前記第２のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第１の基準値として、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算した値を用い、
前記第２のアクセス制御部は、前記マスタから前記第２の記憶装置へのアクセス要求が発生した際に、
前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第２遅延許容値を加算することで、前記第２の基準値を算出し、
前記第２の経過時間が前記第２の基準値以下の場合、前記マスタから前記第２の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、
前記第２のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第２の基準値として、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算した値を用いる
請求項１４に記載のデータ転送制御装置。
【請求項１７】
前記マスタは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である
請求項１〜１１、及び１３〜１６のいずれか１項に記載のデータ転送制御装置。
【請求項１８】
請求項１〜１７のいずれか１項に記載のデータ転送制御装置と、
前記第１の記憶装置と、
前記第２の記憶装置とを含む
データ転送システム。
【請求項１９】
第１の記憶装置及び第２の記憶装置の一方から他方にデータを転送する集積回路であって、
前記第１の記憶装置に対してアクセスを行うマスタと、
前記マスタから独立した第１のバスと、
前記第１のバスを介して、前記第１の記憶装置及び前記第２の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第１のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と、
前記マスタ及び前記第１のＤＭＡＣからの要求に従い、前記第１の記憶装置へアクセスする第１のインターフェース部と、
前記第１のＤＭＡＣからの要求に従い、前記第２の記憶装置へアクセスする第２のインターフェース部と、
前記第２のインターフェース部が前記第２の記憶装置にアクセスを開始してからの第１の経過時間をカウントするカウンタとを備え、
前記第１のインターフェース部は、
前記連続転送動作中に、前記マスタから前記第１の記憶装置へのアクセス要求を受けた場合において、（１）前記第１の経過時間が第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可し、（２）前記第１の経過時間が前記第１の基準値より大きい場合、前記マスタから前記第１の記憶装置へのアクセスを禁止する第１のアクセス制御部を備える
集積回路。
【請求項２０】
第１の記憶装置及び第２の記憶装置の一方から他方にデータを転送するデータ転送制御装置におけるデータ転送方法であって、
前記データ転送制御装置は、
前記第１の記憶装置に対してアクセスを行うマスタと、
前記マスタから独立した第１のバスと、
前記第１のバスを介して、前記第１の記憶装置及び前記第２の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第１のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）とを備え、
前記データ転送方法は、
前記マスタ及び前記第１のＤＭＡＣからの要求に従い、前記第１の記憶装置へアクセスするステップと、
前記第１のＤＭＡＣからの要求に従い、前記第２の記憶装置へアクセスするステップと、
前記第２の記憶装置にアクセスを開始してからの第１の経過時間をカウントするステップと、
前記連続転送動作中に、前記マスタから前記第１の記憶装置へのアクセス要求を受けた場合において、（１）前記第１の経過時間が第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可し、（２）前記第１の経過時間が前記第１の基準値より大きい場合、前記マスタから前記第１の記憶装置へのアクセスを禁止するステップとを含む
データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセス（以下、ＤＭＡという）転送におけるアクセス競合を制御するためのデータ転送制御装置及びデータ転送システムに関するものである。
【背景技術】
【０００２】
一般に情報処理装置では、ＤＭＡコントローラ（以下、ＤＭＡＣという）を用いて、ＤＭＡ転送を行うことで、ＣＰＵを介さずに効率よくデータ転送を行うことができる。しかし、一般的にメモリアクセスに共通バスを使用している計算機においては、ＤＭＡ転送中は、ＤＭＡＣがバスを占有するためにＣＰＵによるアクセス及び他のＤＭＡ転送が実行できないという課題があった。
【０００３】
これを解決する手段が特許文献１にて提示されている。特許文献１に記載の構成は、複数のバスと、複数のバスマスタと、バス制御部と、複数のバスに対応して設けられ転送データを格納する複数のデータ記憶部とを備える。そして、バス制御部がバス毎に独立に調停を行うことで、異なるバスに対する複数の転送要求を同時に実行することが可能となる。ただし、一つのバスに対し、二以上のバス獲得要求が発生した場合には、アクセスが競合するため、優先度に従いＤＭＡＣにバス使用権が与えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−０９１５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１で提示されている技術では、バスが競合しない場合には同時アクセスが可能であるが、アクセス先が競合した場合は、ＤＭＡ転送期間中はＣＰＵ等のマスタのアクセスが待たされるという課題があった。
【０００６】
一方で、ＤＭＡ転送中にＣＰＵ等のマスタのアクセスを許可した場合には、マスタのアクセスによって後続のＤＭＡ転送に遅延が発生する。そのため、ＤＭＡ転送速度の低下が発生することにより、要求されるＤＭＡ転送速度が満たされない恐れがあるという課題があった。
【０００７】
本発明は、上記従来の課題を解決するものであり、実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合するマスタのアクセスを実行可能にできるデータ転送制御装置、データ転送システム及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の一形態に係るデータ転送装置は、第１の記憶装置及び第２の記憶装置の一方から他方にデータを転送するデータ転送制御装置であって、前記第１の記憶装置に対してアクセスを行うマスタと、前記マスタから独立した第１のバスと、前記第１のバスを介して、前記第１の記憶装置及び前記第２の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第１のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と、前記マスタ及び前記第１のＤＭＡＣからの要求に従い、前記第１の記憶装置へアクセスする第１のインターフェース部と、前記第１のＤＭＡＣからの要求に従い、前記第２の記憶装置へアクセスする第２のインターフェース部と、前記第２のインターフェース部が前記第２の記憶装置にアクセスを開始してからの第１の経過時間をカウントするカウンタとを備え、前記第１のインターフェース部は、前記連続転送動作中に、前記マスタから前記第１の記憶装置へのアクセス要求を受けた場合において、（１）前記第１の経過時間が第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可し、（２）前記第１の経過時間が前記第１の基準値より大きい場合、前記マスタから前記第１の記憶装置へのアクセスを禁止する第１のアクセス制御部を備える。
【０００９】
ここで、ＤＭＡＣは転送元からの読み出しと転送先への書き込みとを交互に連続で行うことでデータ転送を行う。よって、一方の記憶装置にアクセスを行っている間、他方の記憶装置は後続のＤＭＡ転送開始までの間はアクセスが行われていない空き状態となる。
【００１０】
そこで、本発明の一形態に係るデータ転送制御装置は、マスタと第１のＤＭＡＣが第１の記憶装置に対するアクセス競合を起こすときに、第１の記憶装置におけるアクセスの空き状態期間を見積もり、第１の経過時間が第１の基準値以下の場合にはマスタのアクセスを許可する。これにより、当該データ転送装置は、ＤＭＡ転送中であっても、ＤＭＡ転送とアクセス先が競合するマスタのアクセスを実行可能にできる。また、当該データ転送制御装置は、第１の経過時間が第１の基準値より大きい場合にはマスタのアクセスを禁止する。これにより、当該データ転送装置は、実行中のＤＭＡ転送の転送速度要求を満たすことができる。
【００１１】
また、前記第１のインターフェース部は、さらに、前記第１のＤＭＡＣから前記第２の記憶装置への１回のアクセスに必要な第１のＤＭＡＣアクセス時間と、前記マスタから前記第１の記憶装置への１回のアクセスに必要な第１のマスタアクセス時間とを保持する第１のレジスタを備え、前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算することで、前記第１の基準値を算出してもよい。
【００１２】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、第１のＤＭＡＣアクセス時間と第１のマスタアクセス時間とから第１の基準値を算出できる。
【００１３】
また、前記第１のレジスタは、さらに、１回の前記データ転送動作の第１の遅延許容値を保持し、前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記第１の遅延許容値を加算することで、前記第１の基準値を算出してもよい。
【００１４】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、ＤＭＡ転送の遅延量を遅延許容値内に抑えつつ、ＤＭＡ転送中のマスタによる第１の記憶装置へのアクセスを実現できる。
【００１５】
また、前記第１のインターフェース部は、さらに、１回の前記連続転送動作における全体遅延許容量を保持する第２のレジスタを備え、前記第１のアクセス制御部は、前記マスタから前記第１の記憶装置へのアクセス要求が発生した際に、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第１の遅延許容値を加算することで、前記第１の基準値を算出し、前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記第２のレジスタに保持されている前記全体遅延許容量を減らし、前記第２のレジスタに保持されている前記全体遅許容延量が予め定められた値以下になった場合、前記第１の基準値として、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算した値を用いてもよい。
【００１６】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、ＤＭＡ転送中のマスタによる第１の記憶装置へのアクセスを実現できる。
【００１７】
また、前記第１の遅延許容値は、前記全体遅延許容量であってもよい。
【００１８】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、ＤＭＡ転送中のマスタによる第１の記憶装置へのアクセスを実現する制御を容易に行うことができる。
【００１９】
また、前記第１のアクセス制御部は、前記全体遅延許容量が予め定められた閾値以上の場合、第１の値を前記遅延許容値として用い、前記全体遅延許容量が前記閾値未満の場合、前記第１の値の値より小さい第２の値を前記遅延許容値として用いてもよい。
【００２０】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、全体遅延許容量に余裕がある場合には、より多くのマスタからのアクセスを許可できる。
【００２１】
また、前記第１のアクセス制御部は、前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記第１の経過時間と前記第１のマスタアクセス時間とを加算し、加算した値から前記第１のＤＭＡＣアクセス時間を減算することで、第１の遅延時間を算出し、前記第２のレジスタに保持されている前記全体遅延許容量から前記第１の遅延時間を減算することで、前記第２のレジスタに保持されている前記全体遅延許容量を更新してもよい。
【００２２】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、ＤＭＡ転送中のマスタによる第１の記憶装置へのアクセスを実現できる。
【００２３】
また、前記第２のレジスタは、１回の前記連続転送動作を分割した複数の部分区間の各々に対応する部分遅延許容量を保持し、前記第１のアクセス制御部は、前記マスタから前記第１の記憶装置へのアクセス要求が発生した際に、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、対応する部分区間の前記部分遅延量を加算することで、前記第１の基準値を算出し、前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記第２のレジスタに保持されている、対応する部分区間の前記部分遅延許容量を減らし、前記第２のレジスタに保持されている、対応する区間の前記部分遅延量が予め定められた値以下になった場合、前記第１の基準値として、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算した値を用いてもよい。
【００２４】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、マスタによるアクセスを連続転送動作中において均一化できる。
【００２５】
また、前記第１のＤＭＡＣは、１回の前記データ転送動作において、前記第１の記憶装置又は前記第２の記憶装置へ連続してアクセスする回数を示す連続アクセス回数を保持する第３のレジスタと、前記第１の記憶装置又は前記第２の記憶装置から、読み出したデータを保持するバッファとを備え、前記第１のＤＭＡＣは、１回の前記データ転送動作において、前記第１の記憶装置及び前記第２の記憶装置の一方から前記連続アクセス回数分、連続してデータを読み出し、当該連続して読み出したデータを前記バッファに格納し、前記バッファに格納したデータを、前記連続アクセス回数分の書き込み動作で、前記第１の記憶装置及び前記第２の記憶装置の他方へ書き込み、前記カウンタは、前記第２のインターフェース部による、前記第２の記憶装置への前記連続アクセス回数分のアクセスのうち初回のアクセスが開始されてからの時間を前記第１の経過時間としてカウントしてもよい。
【００２６】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、１回のデータ転送動作において複数回のアクセスが連続して行われる場合にも適用できる。
【００２７】
また、前記第１のインターフェース部は、さらに、前記第１のＤＭＡＣから前記第２の記憶装置への１回のアクセスに必要な第１のＤＭＡＣアクセス時間と、前記マスタから前記第１の記憶装置への１回のアクセスに必要な第１のマスタアクセス時間とを保持する第１のレジスタを備え、前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間と前記連続アクセス回数との積から前記第１のマスタアクセス時間を減算することで、前記第１の基準値を算出してもよい。
【００２８】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、１回のデータ転送動作において複数回のアクセスが連続して行われる場合にも、第１の基準値を算出できる。
【００２９】
また、前記第１のレジスタは、さらに、１回の前記データ転送動作の第１の遅延許容値を保持し、前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間と前記連続アクセス回数との積から前記第１のマスタアクセス時間を減算したうえで、前記第１の遅延許容値を加算することで、前記第１の基準値を算出してもよい。
【００３０】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、ＤＭＡ転送の遅延量を遅延許容値内に抑えつつ、ＤＭＡ転送中のマスタによる第１の記憶装置へのアクセスを実現できる。
【００３１】
また、前記データ転送制御装置は、さらに、前記第１のバスから独立した第２のバスを備え、前記マスタは、前記第２のバスを介して前記第１の記憶装置へのアクセスを行う第２のＤＭＡＣであってもよい。
【００３２】
この構成によれば、本発明に一形態に係るデータ転送装置は、実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合する第２のＤＭＡＣのアクセスを実行可能にできる。
【００３３】
また、前記マスタは、前記第１のバスから独立した第２のバスを介して、前記第１の記憶装置及び前記第２の記憶装置にアクセスし、前記第２のインターフェース部は、さらに、前記マスタからの指示に従い、前記第２の記憶装置へアクセスし、前記カウンタは、さらに、前記第１のインターフェース部が前記第１の記憶装置にアクセスを開始してからの第２の経過時間をカウントし、前記第２のインターフェース部は、前記連続転送動作中に、前記マスタから前記第２の記憶装置へのアクセス要求を受けた場合、前記第２の経過時間が第２の基準値以下の場合、前記マスタから前記第２の記憶装置へのアクセスを許可し、前記第２経過時間が前記第２の基準値より大きい場合、前記マスタから前記第２の記憶装置へのアクセスを禁止する第２のアクセス制御部を備えてもよい。
【００３４】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、マスタと第１のＤＭＡＣとが、第１及び第２の記憶装置に対して独立してアクセスを行い、いずれかの記憶装置でアクセス競合を起こす時に、実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合するマスタのアクセスを実行可能にできる。
【００３５】
また、前記第１のインターフェース部は、さらに、前記第１のＤＭＡＣから前記第２の記憶装置への１回のアクセスに必要な第１のＤＭＡＣアクセス時間と、前記マスタから前記第１の記憶装置への１回のアクセスに必要な第１のマスタアクセス時間とを保持する第１のレジスタを備え、前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算することで、前記第１の基準値を算出し、前記第２のインターフェース部は、さらに、前記第１のＤＭＡＣから前記第１の記憶装置への１回のアクセスに必要な第２のＤＭＡＣアクセス時間と、前記マスタから前記第２の記憶装置への１回のアクセスに必要な第２のマスタアクセス時間とを保持する第４のレジスタを備え、前記第２のアクセス制御部は、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算することで、前記第２の基準値を算出してもよい。
【００３６】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、第１のＤＭＡＣアクセス時間と第１のマスタアクセス時間とから第１の基準値を算出できるとともに、第２のＤＭＡＣアクセス時間と第２のマスタアクセス時間とから第２の基準値を算出できる。
【００３７】
また、前記第１のレジスタは、さらに、１回の前記データ転送動作の第１の遅延許容値を保持し、前記第１のアクセス制御部は、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記第１の遅延許容値を加算することで、前記第１の基準値を算出し、前記第４のレジスタは、さらに、１回の前記データ転送動作の第２の遅延許容値を保持し、前記第２のアクセス制御部は、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算したうえで、前記第２の遅延許容値を加算することで、前記第２の基準値を算出してもよい。
【００３８】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、ＤＭＡ転送の遅延量を遅延許容値内に抑えつつ、ＤＭＡ転送中のマスタによる第１及び第２の記憶装置へのアクセスを実現できる。
【００３９】
また、前記データ転送制御装置は、さらに、１回の前記連続転送動作における全体遅延許容量を保持する第２のレジスタを備え、前記第１のアクセス制御部は、前記マスタから前記第１の記憶装置へのアクセス要求が発生した際に、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第１遅延許容値を加算することで、前記第１の基準値を算出し、前記第１の経過時間が前記第１の基準値以下の場合、前記マスタから前記第１の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、前記第２のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第１の基準値として、前記第１のＤＭＡＣアクセス時間から前記第１のマスタアクセス時間を減算した値を用い、前記第２のアクセス制御部は、前記マスタから前記第２の記憶装置へのアクセス要求が発生した際に、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第２遅延許容値を加算することで、前記第２の基準値を算出し、前記第２の経過時間が前記第２の基準値以下の場合、前記マスタから前記第２の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、前記第２のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第２の基準値として、前記第２のＤＭＡＣアクセス時間から前記第２のマスタアクセス時間を減算した値を用いてもよい。
【００４０】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、ＤＭＡ転送中のマスタによる第１及び第２の記憶装置へのアクセスを実現できる。
【００４１】
また、前記マスタは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。
【００４２】
この構成によれば、本発明に一形態に係るデータ転送装置は、実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合するＣＰＵアクセスを実行可能にできる。
【００４３】
なお、本発明は、このようなデータ転送制御装置として実現できるだけでなく、データ転送制御装置に含まれる特徴的な手段をステップとするデータ転送方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の非一時的なコンピュータ読み取り可能な記録媒体、及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【００４４】
さらに、本発明は、このようなデータ転送制御装置の機能の一部又は全てを実現する半導体集積回路（ＬＳＩ）として実現したり、このようなデータ転送制御装置を含むデータ転送システムとして実現したりできる。
【発明の効果】
【００４５】
以上より、本発明は、実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合するマスタのアクセスを実行可能にできるデータ転送制御装置、データ転送システム及びデータ転送方法を提供できる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態１に係るデータ転送制御システムのブロック図である。
【図２】本発明の実施の形態１に係る第１のＩＦのフローチャートである。
【図３】本発明の実施の形態１に係る、ＤＭＡ転送中のそれぞれの記憶装置へのアクセス状態を示すタイミングチャートである。
【図４】本発明の実施の形態１に係る、ＣＰＵアクセス許可時のタイミングチャートである。
【図５】本発明の実施の形態１に係る、ＣＰＵアクセス不許可時のタイミングチャートである。
【図６】本発明の実施の形態１に係る、比較例におけるタイミングチャートである。
【図７】本発明の実施の形態１に係るデータ転送制御システムの変形例のブロック図である。
【図８】本発明の実施の形態２に係るデータ転送制御システムのブロック図である。
【図９】本発明の実施の形態２に係る第１のＩＦのフローチャートである。
【図１０】本発明の実施の形態２に係る、ＣＰＵアクセス許可時のタイミングチャートである。
【図１１】本発明の実施の形態２に係る、ＣＰＵアクセス不許可時のタイミングチャートである。
【図１２】本発明の実施の形態２に係る、ＣＰＵアクセス許可時のタイミングチャートである。
【図１３】本発明の実施の形態２に係る、ＣＰＵアクセス不許可時のタイミングチャートである。
【図１４】本発明の実施の形態３に係るデータ転送制御システムのブロック図である。
【図１５】本発明の実施の形態３に係る、ＤＭＡ連続転送全体のタイミングチャートである。
【図１６】本発明の実施の形態３に係る第１のＩＦのフローチャートである。
【図１７】本発明の実施の形態３に係る、ＣＰＵアクセス許可時のタイミングチャートである。
【図１８】本発明の実施の形態３に係る、ＣＰＵアクセス不許可時のタイミングチャートである。
【図１９】本発明の実施の形態４に係るデータ転送制御システムのブロック図である。
【図２０】本発明の実施の形態４に係る第１のＩＦのフローチャートである。
【図２１】本発明の実施の形態４に係る、ＤＭＡ転送中のそれぞれの記憶装置へのアクセス状態を示すタイミングチャートである。
【図２２】本発明の実施の形態４に係る、ＣＰＵアクセス許可時のタイミングチャートである。
【図２３】本発明の実施の形態４に係る、ＣＰＵアクセス不許可時のタイミングチャートである。
【図２４】本発明の実施の形態５に係るデータ転送制御システムのブロック図である。
【図２５】本発明の実施の形態５に係る、ＣＰＵアクセス許可時のタイミングチャートである。
【図２６】本発明の実施の形態５に係る、ＣＰＵアクセス不許可時のタイミングチャートである。
【図２７】本発明の実施の形態６に係るデータ転送制御システムのブロック図である。
【図２８】本発明の実施の形態７に係るデータ転送制御システムのブロック図である。
【図２９】本発明の実施の形態８に係るデータ転送制御システムのブロック図である。
【図３０】本発明の実施の形態９に係るデータ転送制御システムのブロック図である。
【図３１】本発明の実施の形態１０に係るデータ転送制御システムのブロック図である。
【図３２】本発明の実施の形態１１に係るデータ転送制御システムのブロック図である。
【図３３】本発明の実施の形態１２に係るデータ転送制御システムのブロック図である。
【発明を実施するための形態】
【００４７】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００４８】
（実施の形態１）
本発明の実施の形態１に係るデータ転送制御装置は、ＤＭＡＣが第２の記憶装置にアクセス中に、ＣＰＵから第１の記憶装置へのアクセス要求があった場合、ＤＭＡＣが第２の記憶装置にアクセスを開始した時刻からの第１の経過時間が基準値以下であるか否かを判定する。そして、当該データ転送制御装置は、第１の経過時間が基準値以下の場合にＣＰＵから第１の記憶装置へのアクセスを許可する。
【００４９】
これにより、当該データ転送制御装置は、実行中のＤＭＡ転送の転送速度要求を満たしつつ、ＤＭＡ転送とアクセス先が競合するマスタのアクセスを実行可能にできる。
【００５０】
まず、本発明の実施の形態１に係るデータ転送制御装置の構成を説明する。
【００５１】
図１は、本発明の実施の形態１に係るデータ転送システム１００の構成を示すブロック図である。図１に示すデータ転送システム１００は、第１の記憶装置１０７と、第２の記憶装置１０８と、データ転送制御装置１１０とを備える。
【００５２】
データ転送制御装置１１０は、第１の記憶装置１０７及び第２の記憶装置１０８の一方から他方にデータを転送する。例えば、データ転送制御装置１１０は、第１の記憶装置１０７からデータを読み出して処理を行うと共に、第２の記憶装置１０８から第１の記憶装置１０７に対してデータ転送を行う。
【００５３】
第１の記憶装置１０７は、例えば、揮発性メモリであり、第２の記憶装置１０８は、第１の記憶装置１０７に比べアクセス時間が長い不揮発メモリである。なお、第１の記憶装置１０７及び第２の記憶装置１０８の種類は、これに限定されない。
【００５４】
データ転送制御装置１１０は、ＣＰＵ１０１と、第１のＤＭＡＣ１０２と、第１のＤＭＡＣバス１０４と、第１のＩＦ１０５と、第２のＩＦ１０６と、カウンタ１０９とを備える。
【００５５】
ＣＰＵ１０１は、第１の記憶装置１０７へのアクセスを行うマスタである。
【００５６】
第１のＤＭＡＣバス１０４は、本発明の第１のバスに相当し、ＣＰＵ１０１から独立してデータ転送が可能である。
【００５７】
第１のＤＭＡＣ１０２は、第１のＤＭＡＣバス１０４を介して、第１の記憶装置１０７と第２の記憶装置１０８との間でデータ転送を行う。具体的には、第１のＤＭＡＣ１０２は、第１のＤＭＡＣバス１０４を介して、連続転送動作を行う。ここで連続転送動作とは、第１の記憶装置１０７及び第２の記憶装置１０８の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う動作である。また、この連続転送動作において、第１の記憶装置１０７及び第２の記憶装置１０８の一方からデータを読み出す動作と、読み出したデータを他方へ書き込む動作とは時系列に排他的に行われる。また、以下ではこの連続転送動作をＤＭＡ転送又はＤＭＡ転送動作とも呼ぶ。
【００５８】
これらＣＰＵ１０１と第１のＤＭＡＣ１０２はそれぞれ独立して動作する。
【００５９】
第１のＩＦ１０５は、本発明の第１のインターフェース部に相当し、第１の記憶装置１０７へのアクセスを制御する。具体的には、第１のＩＦ１０５は、ＣＰＵ１０１及び第１のＤＭＡＣ１０２からの要求に従い、第１の記憶装置１０７へアクセスする。
【００６０】
第２のＩＦ１０６は、本発明の第２のインターフェース部に相当し、第２の記憶装置１０８へのアクセスを制御する。具体的には、第２のＩＦ１０６は、第１のＤＭＡＣ１０２からの要求に従い、第２の記憶装置１０８へアクセスする。また、第２のＩＦ１０６は、第２の記憶装置１０８へアクセスを開始した際に、アクセス開始信号をカウンタ１０９へ出力する。
【００６１】
カウンタ１０９は、第２のＩＦ１０６が第２の記憶装置１０８にアクセスを開始してからの第１の経過時間（カウント値）をカウントする。具体的には、カウンタ１０９は、第２のＩＦ１０６からアクセス開始信号を受け取るとカウントを開始する。また、カウンタ１０９は、アクセス制御部１５２にカウント値を渡す。
【００６２】
第１のＩＦ１０５は、第１のレジスタ１５１と、アクセス制御部１５２とを備える。
【００６３】
第１のレジスタ１５１は、レジスタ１５３及び１５４を含む。
【００６４】
レジスタ１５３は、ＤＭＡＣアクセス時間Ｔ１を保持する。このＤＭＡＣアクセス時間Ｔ１は、本発明の第１のＤＭＡＣアクセス時間に相当し、第１のＤＭＡＣ１０２から第２の記憶装置１０８への１回のアクセスに必要な時間を示す。具体的には、ＤＭＡＣアクセス時間Ｔ１は、第１のＤＭＡＣ１０２から第２の記憶装置１０８への１回のアクセスに必要なクロックのサイクル数を示す。
【００６５】
レジスタ１５４は、ＣＰＵアクセス時間Ｔ２を保持する。このＣＰＵアクセス時間Ｔ２は、本発明の第１のマスタアクセス時間に相当し、ＣＰＵ１０１から第１の記憶装置１０７への１回のアクセスに必要な時間を示す。具体的には、ＣＰＵアクセス時間Ｔ２は、ＣＰＵ１０１から第１の記憶装置１０７への１回のアクセスに必要なクロックのサイクル数を示す。
【００６６】
アクセス制御部１５２は、本発明の第１のアクセス制御部に相当し、第１のＤＭＡＣ１０２による連続転送動作中における、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスの可否を判定する。
【００６７】
具体的には、アクセス制御部１５２は、連続転送動作中に、ＣＰＵ１０１から第１の記憶装置１０７へのアクセス要求を受けた場合、第１の基準値と、カウンタ１０９でカウントされた第１の経過時間（カウント値）とを比較する。そして、アクセス制御部１５２は、第１の経過時間が第１の基準値以下の場合、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスを許可する。また、アクセス制御部１５２は、第１の経過時間が第１の基準値より大きい場合、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスを禁止する。ここで、第１の基準値とは、ＤＭＡＣアクセス時間Ｔ１からＣＰＵアクセス時間Ｔ２を減算した値である。つまり、アクセス制御部１５２は、ＤＭＡＣアクセス時間Ｔ１からＣＰＵアクセス時間Ｔ２を減算することで、第１の基準値を算出する。
【００６８】
以下、以上のように構成されたデータ転送制御装置１１０の動作を説明する。
【００６９】
本発明は、ＤＭＡ転送中の動作を特徴とするものである。よって、以下では、ＤＭＡ転送を実行中の動作を説明する。
【００７０】
まず、第１のＤＭＡＣ１０２の動作を説明する。第１のＤＭＡＣ１０２は、転送元の記憶装置と転送先の記憶装置とに交互に連続してアクセスすることで連続転送動作を行う。ここで、第１の記憶装置１０７から第２の記憶装置１０８へのデータ転送を考える。この場合、第１のＤＭＡＣ１０２は、まず第１のＩＦ１０５に対して、第１の記憶装置１０７からのデータ読み出し要求を発行する。そして、第１の記憶装置１０７からのデータ読み出しが完了すると、第１のＤＭＡＣ１０２は、第２のＩＦ１０６に対して、第２の記憶装置１０８へのデータ書き込み要求を発行することで、先ほど読み出したデータを第２の記憶装置１０８に書き込む。データ書き込みが完了すると、第１のＤＭＡＣ１０２は、引き続き、アドレスを更新し、再度第１の記憶装置１０７に対する読み出しを開始する。第１のＤＭＡＣ１０２は、以降同様に交互にアクセスを実行する。第１のＤＭＡＣ１０２は、最終的に転送すべきデータの転送が完了すると連続転送動作を終了する。
【００７１】
次に、第１のＩＦ１０５の動作を説明する。
【００７２】
図２は、ＤＭＡ転送を実行するときの第１のＩＦ１０５による動作のフローチャートである。
【００７３】
まず、ＣＰＵ１０１又は第１のＤＭＡＣ１０２により、レジスタ１５３にＤＭＡＣアクセス時間Ｔ１が設定され、レジスタ１５４にＣＰＵアクセス時間Ｔ２が設定される（Ｓ１０１）。なお、このＤＭＡＣアクセス時間Ｔ１及びＣＰＵアクセス時間Ｔ２は、連続転送動作の前に予め設定されていてもよいし、連続転送動作ごとに、ＤＭＡＣアクセス時間Ｔ１及びＣＰＵアクセス時間Ｔ２のうち少なくとも一方が設定されてもよい。
【００７４】
また、以下では、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスをＣＰＵアクセスと呼び、第１のＤＭＡＣ１０２から第１の記憶装置１０７又は第２の記憶装置１０８へのアクセスをＤＭＡアクセスと呼ぶ。また、ＣＰＵアクセスの要求をＣＰＵアクセス要求と呼び、ＤＭＡアクセスの要求をＤＭＡアクセス要求と呼ぶ。
【００７５】
ここで、図２に示すステップＳ１０２の時点で、第１のＩＦ１０５でＣＰＵアクセスが実行中であった場合には、ＣＰＵアクセスが完了後に連続転送動作を開始してもよいし、ＣＰＵアクセスをキャンセルして連続転送動作を開始してもよいものとする。
【００７６】
最初に、連続転送動作中にＣＰＵアクセスが発生しない場合の動作を、図２及び図３を用いて説明する。
【００７７】
まず、第１のＩＦ１０５は、ＤＭＡＣ１０２からのアクセス要求を受け取り（Ｓ１０２）、ＤＭＡアクセスを開始する（Ｓ１０３）。当該ＤＭＡアクセスが完了すると（Ｓ１０４）、次に、第１のＤＭＡＣ１０２は第２の記憶装置１０８へのアクセスを行う。この間は第１のＩＦ１０５は処理を行わない。その後、第２の記憶装置１０８へのアクセスが終了し（Ｓ１０６でＹｅｓ）、かつ、ステップＳ１１０において連続転送動作が完了していなければ（Ｓ１１０でＮｏ）、第１のＩＦ１０５は、再度ステップＳ１０２でＤＭＡアクセス要求を受け取り、ＤＭＡアクセスを実行する（Ｓ１０３）。最終的にステップＳ１１０において連続転送動作が完了していれば（Ｓ１１０でＹｅｓ）、ＤＭＡ連続転送動作が終了する。
【００７８】
図３は、このときの第１の記憶装置１０７及び第２の記憶装置１０８へのアクセス状況を示す図である。図３に示すように、連続転送動作において第１のＤＭＡＣ１０２は、第１の記憶装置１０７と第２の記憶装置１０８とに交互にアクセスを行っている。
【００７９】
次に、第１のＤＭＡＣ１０２が第１の記憶装置１０７にアクセス中、つまり、図２におけるステップＳ１０２からステップＳ１０４の期間中にＣＰＵアクセス要求が発行された場合の動作を説明する。
【００８０】
このときは、ＤＭＡアクセスを実行中のため、ＣＰＵアクセス要求は受理されない。
【００８１】
次に、第１のＤＭＡＣ１０２が第１の記憶装置１０７にアクセスを行っていないとき、すなわち図２におけるステップＳ１０４の後からステップＳ１１０の期間中にＣＰＵアクセス要求が発行された場合の動作、又は、ステップＳ１０２からステップＳ１０４の期間に発行され受理されなかったＣＰＵアクセス要求がステップＳ１０４のＤＭＡアクセス完了時点まで待ち状態であった場合の動作を説明する。
【００８２】
まず、ＤＭＡアクセス終了（Ｓ１０４）の後、カウンタ１０９は、第２の記憶装置１０８へのＤＭＡアクセスの開始と同時に、カウントを開始する（Ｓ１０５）。
【００８３】
その後、第１のＩＦ１０５は、第１の記憶装置１０７へのＤＭＡアクセスが終了するまでの期間において（Ｓ１０６でＮｏ）、所定の期間ごとに、ＣＰＵアクセス要求が発行されたか否かを判定する（Ｓ１０７）。
【００８４】
ＣＰＵアクセス要求が発行された場合（Ｓ１０７でＹｅｓ）、第１のＩＦ１０５は、当該ＣＰＵアクセスの可否を判定する。具体的には、第１のＩＦ１０５は、カウンタ１０９によるカウンタ値が第１の基準値以下の場合（Ｓ１０８でＹｅｓ）には、ＣＰＵアクセスを実行する（Ｓ１０９）。また、第１のＩＦ１０５は、カウンタ１０９によるカウンタ値が第１の基準値より大きい場合（Ｓ１０８でＮｏ）には、ＣＰＵアクセス要求を受理しない。
【００８５】
このアクセス判定動作の具体例を、図４及び図５を用いて説明する。また、図４及び図５において、カウント値は、第１のＤＭＡＣ１０２による第２の記憶装置１０８へのアクセス開始からの第１の経過時間であり、カウンタ１０９から値が出力されている。また、残り期間Ｔ３は、ＣＰＵアクセス要求の発生から後続の第１の記憶装置１０７に対するＤＭＡアクセス開始までの期間を示し、これはＤＭＡＣアクセス時間Ｔ１からカウント値を減算することで算出できる。
【００８６】
図４は、ＣＰＵアクセス要求の発生時点で、後続のＤＭＡアクセス開始までの残り期間Ｔ３より、ＣＰＵアクセス時間Ｔ２が小さい場合の動作例を示す図である。この場合、ＣＰＵアクセス要求は受理され、ＣＰＵアクセスが実行される。また、ＤＭＡ転送の動作自体は図３と同様となり、ＤＭＡ転送を阻害することなくＣＰＵ１０１によるアクセスが実行される。
【００８７】
図５は、残り期間Ｔ３より、ＣＰＵアクセス時間Ｔ２が大きい場合の動作例を示す図である。この場合、ＣＰＵアクセスを許可してしまうと、当該ＣＰＵアクセスが後続の第１の記憶装置１０７に対するＤＭＡ転送と競合することになる。よって、この場合は、ＣＰＵアクセスは許可されない。
【００８８】
図６は、比較のための図であり、残り期間Ｔ３より、ＣＰＵアクセス時間Ｔ２が大きい場合において、本発明の実施の形態１に係る処理を行わない場合の動作例を示す図である。図６に示すように、このような場合に、ＣＰＵアクセスを許可してしまうと、当該ＣＰＵアクセスが後続の第１の記憶装置１０７に対するＤＭＡ転送と競合することになる。これにより、後続のＤＭＡ転送が遅延してしまう。
【００８９】
以上のように、本発明の実施の形態１に係るデータ転送制御装置１１０は、後続のＤＭＡアクセス開始までの残り期間Ｔ３より、ＣＰＵアクセス時間Ｔ２が小さい場合にのみＣＰＵアクセスを許可する。これにより、当該データ転送制御装置１１０は、後続のＤＭＡアクセスを遅延させることなく、ＣＰＵ１０１による第１の記憶装置１０７へのアクセスを実行できる。
【００９０】
なお、上記説明では、第１のレジスタ１５１がＤＭＡＣアクセス時間Ｔ１及びＣＰＵアクセス時間Ｔ２を保持する例を説明したが、図７に示すように、第１のレジスタ１５１は、上記第１の基準値（＝Ｔ２−Ｔ１）を保持するレジスタ１５５を含んでもよい。この場合、アクセス制御部１５２は、当該第１の基準値とカウント値とを比較することによりアクセス判定を行う。
【００９１】
また、図４では、次のＤＭＡ転送を開始するまでにＣＰＵアクセスが１度発生する動作例を記載しているが、後続のＤＭＡアクセス開始までの残り期間Ｔ３よりＣＰＵアクセス時間Ｔ２が小さい条件を満たすのであれば、次のＤＭＡ転送を行うまでに何度ＣＰＵアクセスを実行してもよい。
【００９２】
また、図１に示す例では、データ転送システム１００は、一つのＣＰＵ１０１のみを含むが、第１のＤＭＡＣ１０２と独立したバスを持ち、第１の記憶装置１０７に対してアクセスを行う、任意の個数のＣＰＵを含んでもよい。この場合も、簡単な機能の追加で同様の効果を実現できる。
【００９３】
また、図１に示す例では、第１のＤＭＡＣ１０２が２個の記憶装置にアクセス可能な例を示したが、第１のＤＭＡＣ１０２は、第１の記憶装置１０７を含む３個以上の記憶装置にアクセス可能であってもよい。この場合も、簡単な機能の追加で同様の効果を実現できる。
【００９４】
また、上記では主に、第１の記憶装置１０７から第２の記憶装置１０８へデータを転送する例を述べたが、本発明は、第１の記憶装置１０７及び第２の記憶装置１０８の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う場合に適用できる。
【００９５】
また、上述したように、第１の記憶装置１０７は、例えば、揮発性メモリであり、第２の記憶装置１０８は、第１の記憶装置１０７に比べアクセス時間が長い不揮発メモリである。このような場合に本発明の実施の形態１に係るデータ転送制御装置１１０を用いることで、アクセス時間の長い第２の記憶装置１０８に保持されているデータを順次第１の記憶装置１０７に転送すると共に、第１の記憶装置１０７からデータを読み出すことができるので、効率よく処理を実行できる。
【００９６】
なお、接続される記憶装置はデータアクセスが可能な装置であればその構成は上記に制限されない。
【００９７】
（実施の形態２）
本発明の実施の形態２では、上述した実施の形態１の変形例について説明する。本発明の実施の形態２に係るデータ転送制御装置２１０は、さらに、遅延許容値Ｔ４を用いて、ＣＰＵアクセスの可否を判定する。
【００９８】
図８は、本発明の実施の形態２に係るデータ転送システム２００の構成を示すブロック図である。図８に示すデータ転送制御装置２１０は、実施の形態１に係るデータ転送制御装置１１０に対して、第１のＩＦ２０５の構成が異なる。具体的には、第１のレジスタ１５１は、さらに、１回のデータ転送動作における遅延の許容値である遅延許容値Ｔ４を保持するレジスタ２５６を有する。この遅延許容値Ｔ４は本発明の第１の遅延許容値に相当する。また、アクセス制御部２５２は、ＣＰＵアクセスの可否の判定に当該遅延許容値Ｔ４を使用する。それ以外の構成要素は実施の形態１と同様である。
【００９９】
上記実施の形態１では、ＤＭＡ転送と競合しない場合にのみＣＰＵアクセスを許可していた。それに対し、本発明の実施の形態２では、一定値までＤＭＡ転送の遅延を許容し、競合した場合でもＤＭＡ転送を遅延させてＣＰＵアクセスを実行する。
【０１００】
具体的には、アクセス制御部２５２は、ＤＭＡＣアクセス時間Ｔ１からＣＰＵアクセス時間Ｔ２を減算したうえで、遅延許容値Ｔ４を加算することで、第１の基準値を算出する。次に、アクセス制御部２５２は、算出した第１の基準値と、カウンタ１０９でカウントされた第１の経過時間（カウント値）とを比較する。そして、アクセス制御部２５２は、第１の経過時間が第１の基準値以下の場合、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスを許可する。また、アクセス制御部２５２は、第１の経過時間が第１の基準値より大きい場合、ＣＰＵ１０１から第１の記憶装置１０７へのアクセスを禁止する。
【０１０１】
図９は、本発明の実施の形態２におけるＤＭＡ転送中の第１のＩＦ２０５による動作のフローチャートである。なお、図９に示す処理は、図２に示す処理に対して、ステップＳ２０１及びＳ２０８の処理が異なる。また、図９に示す処理は、さらに、ステップＳ２１１の処理を含む。
【０１０２】
まず、ＣＰＵ１０１又は第１のＤＭＡＣ１０２により、レジスタ１５３にＤＭＡＣアクセス時間Ｔ１が設定され、レジスタ１５４にＣＰＵアクセス時間Ｔ２が設定され、レジスタ２５６に遅延許容値Ｔ４が設定される（Ｓ２０１）。
【０１０３】
図９において、ＤＭＡアクセス要求が発行された時（Ｓ１０２）、ＣＰＵアクセスが既に実行中であれば（Ｓ２１１でＹｅｓ）、ＣＰＵアクセスが完了するまでＤＭＡ転送が待たされる。ステップＳ２１１でＣＰＵアクセスが終了すると、ＤＭＡアクセスが実行される（Ｓ１０３）。フローチャートのそれ以外の動作は実施の形態１と同様である。
【０１０４】
また、ステップＳ１０３からステップＳ１０４のＤＭＡアクセス実行中は、実施の形態１と同様にＣＰＵアクセス要求は受理されない。
【０１０５】
ステップＳ１０４のＤＭＡアクセス完了以降にＣＰＵアクセス要求が存在する場合（Ｓ１０７でＹｅｓ）は、アクセス制御部２５２はアクセス判定を行い、ＣＰＵアクセスの可否を決定する（Ｓ２０８）。
【０１０６】
このときのアクセス判定について図１０及び図１１を用いて説明する。図１０及び図１１において、遅延許容値Ｔ４はＤＭＡ転送に遅延が発生しても要求性能を満たすことができる遅延の許容時間であり、レジスタ２５６に保持されている。
【０１０７】
図１０は、ＣＰＵアクセス要求の発生時点で、後続のＤＭＡアクセス開始までの残り期間Ｔ３と遅延許容値Ｔ４との合計値より、ＣＰＵアクセス時間Ｔ２の方が小さい場合の動作例を示す図である。この場合、ＣＰＵアクセス要求は受理され、ＣＰＵアクセスが実行される。また、図１０に示すＤＭＡアクセス要求発行時点ではＣＰＵアクセスを実行中のため、後続のＤＭＡ転送は待ち状態になり遅延が発生するが、この時のＤＭＡ転送の遅延は設定されている遅延許容値Ｔ４以内に収まっている。
【０１０８】
図１１は、後続のＤＭＡアクセス開始までの残り期間Ｔ３と遅延許容値Ｔ４との合計値より、ＣＰＵアクセス時間Ｔ２の方が大きい場合の動作例を示す図である。この場合、ＣＰＵアクセスを許可してしまうと、後続のＤＭＡ転送の遅延が設定されている遅延許容値Ｔ４よりも大きくなってしまうため、ＣＰＵアクセスは許可されない。
【０１０９】
以上のように、本発明の実施の形態２に係るデータ転送制御装置２１０は、ＤＭＡ転送の遅延を設定した遅延許容値以内に収めつつＣＰＵアクセスを実行できる。
【０１１０】
また、上述した実施の形態１においては、ＤＭＡＣアクセス時間Ｔ１よりＣＰＵアクセス時間Ｔ２の方が小さい時のみＣＰＵアクセスを行うことができるが、実施の形態２においては、遅延許容値Ｔ４の値によっては、ＤＭＡＣアクセス時間Ｔ１よりＣＰＵアクセス時間Ｔ２が大きい場合でもＣＰＵアクセスを実現可能である。この時の動作を図１２及び図１３を用いて説明する。
【０１１１】
この時も同様に、図１２に示すようにＤＭＡ転送の遅延が、設定された遅延許容値Ｔ４内に収まるのであればＣＰＵアクセスを実行できる。また、同様に、図１３に示すようにＤＭＡ転送の遅延が遅延許容値Ｔ４を超える場合にはＣＰＵアクセスは許可されない。
【０１１２】
なお、実施の形態２に係るデータ転送制御装置２１０に、上述した実施の形態１と同様の変形例を適用してもよい。
【０１１３】
例えば、第１のレジスタ１５１は、ＤＭＡＣアクセス時間Ｔ１、ＣＰＵアクセス時間Ｔ２、及び遅延許容値Ｔ４のかわりに、第１の基準値（＝Ｔ１−Ｔ２＋Ｔ４）を保持していてもよい。
【０１１４】
（実施の形態３）
本発明の実施の形態３では、上述した実施の形態１の変形例について説明する。本発明の実施の形態３に係るデータ転送制御装置３１０は、さらに、全体遅延許容量Ｔ５を用いて、ＣＰＵアクセスの可否を判定する。
【０１１５】
図１４は、本発明の実施の形態３に係るデータ転送システム３００の構成を示すブロック図である。図１４に示すデータ転送制御装置３１０は、実施の形態１に係るデータ転送制御装置１１０に対して、第１のＩＦ３０５の構成が異なる。具体的には、第１のＩＦ３０５は、さらに、第２のレジスタ３５７を備える。また、アクセス制御部３５２の機能が、アクセス制御部１５２と異なる。
【０１１６】
第２のレジスタ３５７は、第１のＤＭＡＣ１０２による一度の連続転送動作における全体遅延許容量Ｔ５を保持するレジスタ３５８を含む。この全体遅延許容量Ｔ５について図１５を用いて説明する。
【０１１７】
第１のＤＭＡＣ１０２は予め決まった量のデータを連続して転送する連続転送動作を行う。この時、図１５に示すＤＭＡ転送要求時間は、ＤＭＡ転送を完了させる必要がある時刻までの経過時間であり設計時に与えられている。また、最速ＤＭＡ転送完了時間は、ＤＭＡ転送がアクセス競合で阻害されなかった場合に最速でＤＭＡ転送を完了することができる時間であり、一度のアクセスにかかる時間と必要アクセス回数とから予め算出できる。全体遅延許容量Ｔ５は、これらの値から算出でき、ＤＭＡ転送に途中で遅延が発生したとしてもＤＭＡ転送要求時間内にＤＭＡ転送を完了させることができる遅延時間の許容量である。
【０１１８】
アクセス制御部３５２は、ＣＰＵ１０１から第１の記憶装置１０７へのアクセス要求が発生した際に、以下の処理を行う。
【０１１９】
まず、アクセス制御部３５２は、ＤＭＡＣアクセス時間Ｔ１からＣＰＵアクセス時間Ｔ２を減算したうえで、全体遅延許容量Ｔ５を加算することで、第１の基準値を算出する。そして、アクセス制御部３５２は算出した第１の基準値を用いて、ＣＰＵアクセスの可否を判定する。
【０１２０】
また、アクセス制御部３５２は、カウント値が第１の基準値以下であり、ＣＰＵアクセスを許可した場合、カウンタ値とＣＰＵアクセス時間Ｔ２とを加算し、加算した値からＤＭＡＣアクセス時間Ｔ１を減算することで、遅延時間Ｔ６を算出する。この遅延時間Ｔ６は本発明の第１の遅延時間に相当する。次に、アクセス制御部３５２は、第２のレジスタ３５７に保持されている全体遅延許容量Ｔ５から遅延時間Ｔ６を減算することで、第２のレジスタ３５７に保持されている全体遅延許容量Ｔ５を更新する。
【０１２１】
図１６は、本発明の実施の形態３におけるＤＭＡ転送中の第１のＩＦ３０５による動作のフローチャートである。なお、図１６に示す処理は、図９に示す処理に対して、ステップＳ３０１及びＳ３０８の処理が異なる。また、図１６に示す処理は、さらに、ステップＳ３１２の処理を含む。
【０１２２】
まず、ＣＰＵ１０１又は第１のＤＭＡＣ１０２により、レジスタ１５３にＤＭＡＣアクセス時間Ｔ１が設定され、レジスタ１５４にＣＰＵアクセス時間Ｔ２が設定され、レジスタ３５８に全体遅延許容量Ｔ５が設定される（Ｓ３０１）。
【０１２３】
また、ステップＳ１０４のＤＭＡアクセス完了以降にＣＰＵアクセス要求が存在する場合（Ｓ１０７でＹｅｓ）は、アクセス制御部３５２はアクセス判定を行い、ＣＰＵアクセスの可否を決定する（Ｓ３０８）。
【０１２４】
このアクセス判定について、図１７及び図１８を用いて説明する。また、実施の形態３ではアクセス判定と同時に、第１のレジスタ１５１及び第２のレジスタ３５７の値を更新する。その動作についても説明する。
【０１２５】
説明のために、第１のレジスタ１５１は実施の形態１と同様の構成を有し、ＤＭＡＣアクセス時間Ｔ１、及びＣＰＵアクセス時間Ｔ２を保持するとする。また、残り期間Ｔ３はＤＭＡＣアクセス時間Ｔ１からカウント値を引くことで算出される。
【０１２６】
なお、これらの値は第１のレジスタ１５１に設定される値を限定するものではなく、アクセス許可を判定する第１の基準値を第１のレジスタ１５１に保持しておいてもよい。
【０１２７】
図１７は、全体遅延許容量Ｔ５が十分大きい値のときの動作例を示す図である。このとき、カウント値は、第１の基準値（＝Ｔ１−Ｔ２＋Ｔ５）以下なので（Ｓ３０８でＹｅｓ）、ＣＰＵアクセス要求は受理され、ＣＰＵアクセスが実行される（Ｓ１０９）。
【０１２８】
次に、アクセス制御部３５２は、遅延時間Ｔ６を算出する。この遅延時間Ｔ６は、ＣＰＵアクセスによって後続のＤＭＡアクセスに遅延が発生した場合の遅延値である。このとき、ＤＭＡ転送は遅延時間Ｔ６の時間だけ遅延が発生しているため、アクセス制御部３５２は、第２のレジスタ３５７に保持されている全体遅延許容量Ｔ５から遅延時間Ｔ６を減算し、これを新しい全体遅延許容量Ｔ５として第２のレジスタ３５７に保持する（Ｓ３１２）。
【０１２９】
図１８は、ＤＭＡ転送に遅延が生じた結果、第２のレジスタ３５７に保持している全体遅延許容量Ｔ５がＣＰＵアクセス時間Ｔ２よりも小さくなったときの動作例を示す図である。このとき、ＣＰＵアクセスによりＤＭＡ転送が遅延すると、場合によってはＤＭＡ転送の遅延許容量を超え、ＤＭＡ転送要求を満たさない恐れがある。したがって、アクセス制御部３５２は、カウント値が第１の基準値（＝Ｔ１−Ｔ２＋Ｔ５）より大きい（Ｓ３０８でＮｏ）ことにより、後続のＤＭＡ転送に遅延が発生する場合にはＣＰＵアクセスを許可しない。
【０１３０】
以上のように、本発明の実施の形態３に係るデータ転送制御装置３１０は、ＤＭＡ転送の遅延が発生するたびに全体遅延許容量Ｔ５を再計算し、全体遅延許容量Ｔ５を元にアクセス判定の基準値を更新する。これにより、データ転送制御装置３１０は、ＤＭＡ転送に要求される完了時間は満たしつつ、柔軟にＣＰＵによるアクセスを実行できる。
【０１３１】
なお、実施の形態３に係るデータ転送制御装置３１０に、上述した実施の形態１又は２と同様の変形例を適用してもよい。
【０１３２】
また、アクセス制御部３５２は、ＤＭＡ転送の遅延時間Ｔ６を算出するのではなく、ＤＭＡ転送に遅延が発生するたびに、予め定められた値を全体遅延許容量Ｔ５から減算してもよい。
【０１３３】
また、上記説明では、ＤＭＡＣアクセス時間Ｔ１からＣＰＵアクセス時間Ｔ２を減算した値に全体遅延許容量Ｔ５を加算した値を第１の基準値として用いているが、実施の形態２と同様の遅延許容値Ｔ４を用いて、ＤＭＡＣアクセス時間Ｔ１からＣＰＵアクセス時間Ｔ２を減算した値に遅延許容値Ｔ４を加算した値を第１の基準値として用いてもよい。この場合、アクセス制御部３５２は、上記と同様に、遅延時間Ｔ６を算出し、順次、全体遅延許容量Ｔ５から遅延時間Ｔ６を減算する。そして、全体遅延許容量Ｔ５が遅延許容値Ｔ４以下になった場合に、アクセス制御部３５２は、全体遅延許容量Ｔ５を用いて、第１の基準値を算出する。
【０１３４】
さらに、アクセス制御部３５２は、上記の遅延許容値Ｔ４を、残りの全体遅延許容量Ｔ５に応じて、段階的に変化させてもよい。例えば、全体遅延許容量Ｔ５の初期値が１００サイクルの場合、アクセス制御部３５２は、全体遅延許容量Ｔ５が３０サイクル以上の場合は、遅延許容値Ｔ４を１０サイクルに設定し、全体遅延許容量Ｔ５が３０サイクル未満の場合は、遅延許容値Ｔ４を５サイクルに設定する。
【０１３５】
また、アクセス制御部３５２は、一回の連続転送動作を複数の期間に分け、それぞれの期間ごとに全体遅延許容量Ｔ５を設定してもよい。言い換えると、第２のレジスタ３５７は、１回の連続転送動作を分割した複数の部分区間の各々に対応する部分遅延許容量を保持する。また、アクセス制御部３５２は、ある部分区間においては、上述した処理における全体遅延許容量Ｔ５の代わりに、当該部分区間に対応する部分遅延許容量を用いればよい。
【０１３６】
（実施の形態４）
本発明の実施の形態４では、上述した実施の形態１の変形例を説明する。本発明の実施の形態４では、一回のデータ転送動作において、各記憶装置に連続してアクセスを行う場合を説明する。
【０１３７】
図１９は、本発明の実施の形態４に係るデータ転送システム４００の構成を示すブロック図である。図１９に示すデータ転送制御装置４１０は、実施の形態１に係るデータ転送制御装置１１０に対して、第１のＤＭＡＣ４０２、第１のＩＦ４０５に含まれるアクセス制御部４５２、及び第２のＩＦ４０６の機能が異なる。
【０１３８】
第１のＤＭＡＣ４０２は、バッファ４２１と、第３のレジスタ４２２とを含む。第３のレジスタ４２２は、１回のデータ転送動作において、第１の記憶装置１０７又は第２の記憶装置１０８へ連続してアクセスする回数を示す連続アクセス回数４２３を保持する。
【０１３９】
バッファ４２１は、第１の記憶装置１０７又は第２の記憶装置１０８から、読み出したデータを保持する。
【０１４０】
第１のＤＭＡＣ４０２は、１回のデータ転送動作において、第１の記憶装置１０７及び第２の記憶装置１０８の一方から連続アクセス回数４２３分、連続してデータを読み出し、当該連続して読み出したデータをバッファ４２１に格納する。その後、第１のＤＭＡＣ４０２は、バッファ４２１に格納したデータを、連続アクセス回数４２３分の書き込み動作で、第１の記憶装置１０７及び第２の記憶装置１０８の他方へ書き込む。
【０１４１】
また、カウンタ１０９は、第２のＩＦ４０６による、第２の記憶装置１０８への連続アクセス回数４２３分のアクセスのうち初回のアクセスが開始されてからの時間を第１の経過時間としてカウントする。具体的には、第２のＩＦ４０６は、連続アクセスの初回アクセス時にアクセス開始信号を発行する。そして、カウンタ１０９は、当該アクセス開始信号に応じて、カウントを開始する。
【０１４２】
以下、第１のＤＭＡＣ４０２の動作を説明する。ここでは、第１の記憶装置１０７から第２の記憶装置１０８へデータを転送する連続転送動作を行う場合を例に挙げる。まず、第１のＤＭＡＣ４０２は第１の記憶装置１０７からのデータ読み出しを実行し、読み出したデータをバッファ４２１に保持する。引き続き、第１のＤＭＡＣ４０２は、第１の記憶装置１０７に対して連続でアクセスを行い、読み出したデータを順次バッファ４２１に保持する。第１のＤＭＡＣ４０２は、この動作を第３のレジスタ４２２に保持されている連続アクセス回数４２３分繰り返す。なお、バッファ４２１は一度の読み出しデータサイズ×連続アクセス回数４２３分のデータを保持することができるものとする。その後、第１のＤＭＡＣ４０２は、バッファ４２１に保持されているデータを順次第２の記憶装置１０８に書き込む。また、第１のＤＭＡＣ４０２は、この動作も、連続アクセス回数４２３分繰り返す。以降、第１のＤＭＡＣ４０２は、これらの一連のデータ転送動作を繰り返すことで連続転送動作を実行する。
【０１４３】
図２０は、実施の形態４におけるＤＭＡ転送中の第１のＩＦ４０５による動作のフローチャートである。なお、図２０に示す処理は、図２に示す処理に対して、ステップＳ４０１、Ｓ４０６及びＳ４０８の処理が異なる。また、図２０に示す処理は、さらに、ステップＳ４１３の処理を含む。
【０１４４】
まず、ＣＰＵ１０１又は第１のＤＭＡＣ１０２により、レジスタ１５３にＤＭＡＣアクセス時間Ｔ１が設定され、レジスタ１５４にＣＰＵアクセス時間Ｔ２が設定され、第３のレジスタ４２２に連続アクセス回数４２３が設定される（Ｓ４０１）。
【０１４５】
また、第１のＩＦ４０５は、ステップＳ１０２からステップＳ１０４で一度のアクセスを行った後、ステップＳ４１３にて指定回数（連続アクセス回数４２３）分のアクセスが完了していなければ（Ｓ４１３でＮｏ）、再度ステップＳ１０２からステップＳ１０４の処理が実行する。一方、ステップＳ４１３で連続アクセス回数分のアクセスが完了した後（Ｓ４１３でＹｅｓ）、第１のＩＦ４０５は、一度、ＤＭＡＣアクセスを終了する。その間、第１のＤＭＡＣ４０２は第２の記憶装置１０８に対して同様に指定回数分のアクセスを連続で実行している。
【０１４６】
第１のＤＭＡＣ４０２による第２の記憶装置１０８へのアクセスが完了後（Ｓ４０６でＹｅｓ）、ステップＳ１１０において連続転送動作が完了していなければ（Ｓ１１０でＮｏ）、第１のＩＦ４０５は、再度ステップＳ１０２でアクセス要求を受け取り、ＤＭＡアクセスを実行する（Ｓ１０３）。最終的にＳ１１０において連続転送動作が完了していれば（Ｓ１１０でＹｅｓ）、第１のＩＦ４０５は連続転送動作を終了する。
【０１４７】
図２１は、ＤＭＡ転送中にＣＰＵ１０１によるアクセスが発生しない場合の動作例を示す図である。また、図２１では、連続アクセス回数４２３が２回の場合の例に示す。なお、連続アクセス回数４２３には任意の回数が設定されてよい。
【０１４８】
また、ステップＳ４１３のＤＭＡアクセス完了以降にＣＰＵアクセス要求が存在する場合（Ｓ１０７でＹｅｓ）は、アクセス制御部４５２はアクセス判定を行い、ＣＰＵアクセスの可否を決定する（Ｓ４０８）。
【０１４９】
このアクセス判定動作を、図２２及び図２３を用いて説明する。図２２及び図２３において、ＤＭＡＣアクセス時間Ｔ１ｂは、第１のＤＭＡＣ４０２が第２の記憶装置１０８に連続アクセス回数４２３分のアクセスを行っている期間を示す。このＤＭＡＣアクセス時間Ｔ１ｂは、ＤＭＡＣアクセス時間Ｔ１と、連続アクセス回数４２３との積である。カウント値は、第１のＤＭＡＣ４０２による第２の記憶装置１０８への連続アクセスの初回アクセス開始からの第１の経過時間であり、カウンタ１０９から出力されている。残り期間Ｔ３はＣＰＵアクセス要求の発生から後続の第１の記憶装置１０７に対する後続のＤＭＡアクセス開始までの期間を示す。この残り期間Ｔ３は、ＤＭＡＣアクセス時間Ｔ１ｂからカウント値を減算することで算出できる。
【０１５０】
アクセス制御部４５２は、上記の値を用いて、実施の形態１と同様にＣＰＵアクセスの可否を判断する。図２２に示すように、ＣＰＵアクセス要求の発生時点で残り期間Ｔ３よりＣＰＵアクセス時間Ｔ２が小さい場合、つまり、カウント値が第１の基準値（＝Ｔ１ｂ−Ｔ２）以下の場合（Ｓ４０８でＹｅｓ）、アクセス制御部４５２は、ＣＰＵアクセスを許可する（Ｓ１０９）。また、図２３に示すように、ＣＰＵアクセス要求の発生時点で残り期間Ｔ３よりＣＰＵアクセス時間Ｔ２が大きい場合、つまり、カウント値が第１の基準値（＝Ｔ１ｂ−Ｔ２）より大きい場合（Ｓ４０８でＮｏ）、アクセス制御部４５２は、ＣＰＵアクセスを許可しない。
【０１５１】
以上のように、本発明の実施の形態４に係るデータ転送制御装置４１０は、後続のＤＭＡアクセス開始までの残り期間Ｔ３より、ＣＰＵアクセス時間Ｔ２が小さい場合のみＣＰＵアクセスを許可する。これにより、データ転送制御装置４１０は、後続のＤＭＡアクセスを遅延させることなく、ＣＰＵ１０１による第１の記憶装置１０７へのアクセスを実行できる。
【０１５２】
また、実施の形態４では、第１のＤＭＡＣ４０２が同一の記憶装置に対して連続アクセスを行うことで、ＤＭＡＣアクセス時間Ｔ１より、ＣＰＵアクセス時間Ｔ２が大きい場合でも、ＤＭＡ転送を遅延させることなくＣＰＵ１０１による第１の記憶装置１０７へのアクセスを実行できる。
【０１５３】
なお、実施の形態４に係るデータ転送制御装置４１０に、上述した実施の形態１〜３と同様の変形例を適用してもよい。
【０１５４】
（実施の形態５）
本発明の実施の形態５では、上述した実施の形態４に係るデータ転送制御装置４１０に対して、上述した実施の形態２と同様の変更を施した例を説明する。
【０１５５】
図２４は、本発明の実施の形態５に係るデータ転送システム５００の構成を示すブロック図である。図２４に示すデータ転送制御装置５１０は、実施の形態４に係るデータ転送制御装置４１０に対して、第１のＩＦ５０５の構成が異なる。具体的には、第１のレジスタ１５１は、さらに、遅延許容値Ｔ４を保持するレジスタ２５６を有する。また、アクセス制御部５５２の機能が、アクセス制御部４５２と異なる。
【０１５６】
実施の形態２と同様に、実施の形態５では、一定値までＤＭＡ転送の遅延を許容し、競合した場合にＤＭＡ転送を遅延させることで、ＣＰＵアクセスを実行する。
【０１５７】
実施の形態５におけるアクセス判定について、図２５及び図２６を用いて説明する。なお、アクセス可否の判定は実施の形態２と同様である。
【０１５８】
図２５に示すように、残り期間Ｔ３と遅延許容値Ｔ４との合計より、ＣＰＵアクセス時間Ｔ２のほうが小さい場合、ＣＰＵアクセスは許可される。また、図２６に示すように残り期間Ｔ３と遅延許容値Ｔ４との合計より、ＣＰＵアクセス時間Ｔ２のほうが大きい場合、ＣＰＵアクセスは許可されない。
【０１５９】
以上のように、本発明の実施の形態５に係るデータ転送制御装置５１０は、ＤＭＡＣアクセス時間Ｔ１よりＣＰＵアクセス時間Ｔ２が大きい場合でも、ＤＭＡ転送の遅延を設定した遅延許容値Ｔ４以内に収めつつＣＰＵアクセスを実行できる。
【０１６０】
（実施の形態６）
本発明の実施の形態６では、データ転送制御装置６１０が、ＣＰＵ１０１の代わりに第２のＤＭＡＣ６０１を備える例を説明する。
【０１６１】
図２７は、本発明の実施の形態６に係るデータ転送システム６００の構成を示すブロック図である。図２７に示すデータ転送制御装置６１０は、実施の形態１に記載のデータ転送制御装置１１０に対して、ＣＰＵ１０１の代わりに、第２のＤＭＡＣバス６０３と、第２のＤＭＡＣ６０１を備える。第２のＤＭＡＣバス６０３は、本発明の第２のバスに相当し、第１のＤＭＡＣバス１０４から独立してデータ転送が可能である。第２のＤＭＡＣ６０１は、第２のＤＭＡＣバス６０３を介して第１の記憶装置１０７及び第３の記憶装置６１１にアクセスを行う。
【０１６２】
また、第２のＤＭＡＣ６０１による第１の記憶装置１０７へのアクセスは第１のＤＭＡＣ１０２による第１の記憶装置１０７へのアクセスより優先度が低いものとする。
【０１６３】
また、実施の形態６に係るデータ転送制御装置６１０の動作は、実施の形態１におけるＣＰＵ１０１からのアクセス要求が第２のＤＭＡＣ６０１からのアクセス要求に代わったものであり、それ以外の動作は実施の形態１と同様である。つまり、実施の形態１におけるＣＰＵ１０１を第２のＤＭＡＣ６０１に置き換えて、簡単な機能の追加で同様の効果を実現できる。
【０１６４】
なお、実施の形態２から実施の形態５までのそれぞれの実施の形態についても、ＣＰＵ１０１を第２のＤＭＡＣ６０１に置き換えて、同様の効果を実現できる。
【０１６５】
また、ここでは、データ転送制御装置６１０が、２個のＤＭＡＣを備える例を述べたが、データ転送制御装置６１０は、３個以上のＤＭＡＣを備えてもよい。この場合も簡単な機能の追加で同様の効果を実現できる。また、データ転送制御装置６１０は、任意の個数のＣＰＵと任意の個数のＤＭＡＣとを備えてもよい。この場合も、簡単な機能の追加で同様の効果を実現できる。
【０１６６】
（実施の形態７）
本発明の実施の形態７では、第２のＩＦも第１のＩＦと同様の処理を行う場合を説明する。
【０１６７】
図２８は、本発明の実施の形態７に係るデータ転送システム７００の構成を示すブロック図である。図２８に記載のデータ転送制御装置７１０は、図１に示すデータ転送制御装置１１０に対して、カウンタ７０９及び第２のＩＦ７０６の機能が異なる。また、データ転送制御装置７１０は、第１のＤＭＡＣバス１０４から独立してデータ転送が可能であるＣＰＵバス７０３を備える。このＣＰＵバス７０３は、本発明の第２のバスに相当する。
【０１６８】
ＣＰＵ１０１はＣＰＵバス７０３を介して第１の記憶装置１０７及び第２の記憶装置１０８に対するアクセスを行う。
【０１６９】
第２のＩＦ７０６は、さらに、ＣＰＵ１０１からの指示に従い、第２の記憶装置１０８へアクセスする。この第２のＩＦ７０６は、第４のレジスタ７５１と、アクセス制御部７５２とを備える。第４のレジスタ７５１は、レジスタ７５３とレジスタ７５４を含む。レジスタ７５３は、第１のＤＭＡＣ１０２から第２の記憶装置１０８へのアクセスに要する時間を示すＤＭＡＣアクセス時間Ｔ１（第２のＤＭＡＣアクセス時間）を保持する。レジスタ７５４は、ＣＰＵ１０１から第２の記憶装置１０８へのアクセスに要する時間を示すＣＰＵアクセス時間Ｔ２（第２のマスタアクセス時間）を保持する。
【０１７０】
カウンタ７０９は、さらに、第１のＩＦ１０５が第１の記憶装置１０７にアクセスを開始してからの第２の経過時間をカウントする。
【０１７１】
アクセス制御部７５２は、連続転送動作中に、ＣＰＵ１０１から第２の記憶装置１０８へのアクセス要求を受けた場合、第２の経過時間が第２の基準値以下の場合、ＣＰＵ１０１から第２の記憶装置１０８へのアクセスを許可し、第２経過時間が第２の基準値より大きい場合、ＣＰＵ１０１から第２の記憶装置１０８へのアクセスを禁止する。
【０１７２】
具体的には、第１のＩＦ１０５は、第１のＤＭＡＣ１０２から第１の記憶装置１０７へのアクセス開始時にアクセス開始信号を発行する。第２のＩＦ７０６は、第１のＤＭＡＣ１０２から第２の記憶装置１０８へのアクセス開始時にアクセス開始信号を発行する。カウンタ７０９は第１のＩＦ１０５もしくは第２のＩＦ７０６いずれかからのアクセス開始信号を受け取るとカウントを開始する。
【０１７３】
つまり、第２のＩＦ７０６の機能は、第１のＩＦ１０５においてアクセス先を第１の記憶装置１０７から第２の記憶装置１０８に置き換えた場合と同様である。
【０１７４】
また、ＤＭＡ転送中にＣＰＵ１０１が第１の記憶装置１０７にアクセスする際の第１のＩＦ１０５の動作は、カウンタ７０９が第２のＩＦ７０６からのアクセス開始信号を受け、カウントを開始するときである。この動作は実施の形態１における第１のＩＦ１０５の動作と同様である。
【０１７５】
ＤＭＡ転送中にＣＰＵ１０１が第２の記憶装置１０８にアクセスする際の第２のＩＦ７０６の動作は、カウンタ７０９が第１のＩＦ１０５からのアクセス開始信号を受け、カウントを開始する時である。これらの動作は第１のＩＦ１０５において、第１の記憶装置１０７と第２の記憶装置１０８とが入れ替わった場合と同様であり、実質的に実施の形態１の第１のＩＦ１０５の動作と同様である。
【０１７６】
（実施の形態８）
本発明の実施の形態８では、上述した実施の形態７に係るデータ転送制御装置７１０に対して、上述した実施の形態２と同様の変更を施した例を説明する。
【０１７７】
図２９は、本発明の実施の形態８に係るデータ転送システム８００の構成を示すブロック図である。なお、実施の形態８に係るデータ転送制御装置８１０に対する、実施の形態７からの第１のＩＦ２０５における変更点は、実施の形態１に対する実施の形態２の変更点と同じである。また、実施の形態７からの第２のＩＦ８０６における変更点も、第１の記憶装置１０７と第２の記憶装置１０８が入れ替わるだけで、実施の形態１に対する実施の形態２の変更点と同様である。
【０１７８】
具体的には、第４のレジスタ７５１は、さらに、遅延許容値Ｔ４（第２の遅延許容値）を保持するレジスタ８５６を有する。また、アクセス制御部８５２の機能が、アクセス制御部７５２と異なる。
【０１７９】
また、ＤＭＡ転送中にＣＰＵ１０１が第１の記憶装置１０７にアクセスする際の、第１のＩＦ２０５の動作は、実施の形態２における第１のＩＦ２０５の動作と同様である。
【０１８０】
ＤＭＡ転送中にＣＰＵ１０１が第２の記憶装置１０８にアクセスする際の、第２のＩＦ８０６の動作も、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の第１のＩＦ２０５の動作と同様である。
【０１８１】
（実施の形態９）
本発明の実施の形態９では、上述した実施の形態７に係るデータ転送制御装置７１０に対して、上述した実施の形態３と同様の変更を施した例を説明する。
【０１８２】
図３０は、本発明の実施の形態９に係るデータ転送システム９００の構成を示すブロック図である。
【０１８３】
第１のＩＦ３０５に含まれる第１のレジスタ１５１は実施の形態３の第１のレジスタ１５１と同様である。また、アクセス制御部３５２は実施の形態３のアクセス制御部３５２と同様である。なお、実施の形態３では、第１のＩＦ３０５が第２のレジスタ３５７を備えていたが、データ転送制御装置９１０は、当該第２のレジスタ３５７の代わりに、第２のレジスタ９５７を備えている。
【０１８４】
第２のＩＦ９０６に含まれる第４のレジスタ７５１は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の第１のレジスタ１５１と同様である。また、アクセス制御部９５２は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合のアクセス制御部３５２と同様である。
【０１８５】
第２のレジスタ９５７は、実施の形態３の第２のレジスタ３５７と同様に、一度の連続転送動作における全体遅延許容量Ｔ５を保持する。ここで、第２のレジスタ９５７に保持される全体遅延許容量Ｔ５は、アクセス制御部３５２及びアクセス制御部９５２のそれぞれのアクセス制御で遅延が発生するたびに更新される。
【０１８６】
また、ＤＭＡ転送中にＣＰＵ１０１が第１の記憶装置１０７にアクセスする際の、第１のＩＦ３０５の動作は、実施の形態３における第１のＩＦ３０５の動作と同様である。
【０１８７】
ＤＭＡ転送中にＣＰＵ１０１が第２の記憶装置１０８にアクセスする際の、第２のＩＦ９０６の動作は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の第１のＩＦ３０５の動作と同様である。
【０１８８】
（実施の形態１０）
本発明の実施の形態１０では、上述した実施の形態７に係るデータ転送制御装置７１０に対して、上述した実施の形態４と同様の変更を施した例を説明する。
【０１８９】
図３１は、本発明の実施の形態１０に係るデータ転送システム１０００の構成を示すブロック図である。
【０１９０】
図３１に記載のデータ転送制御装置１０１０において、第１のＤＭＡＣ４０２は実施の形態４における第１のＤＭＡＣ４０２と同様である。
【０１９１】
第１のＩＦ４０５は、実施の形態４の第１のＩＦ４０５と同様である。また、ＤＭＡ転送中にＣＰＵ１０１が第１の記憶装置１０７にアクセスする際の第１のＩＦ４０５の動作は、実施の形態４における第１のＩＦ４０５の動作と同様である。
【０１９２】
第２のＩＦ１００６に含まれる第４のレジスタ７５１及びアクセス制御部１０５２は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の、第１のＩＦ４０５に含まれる第１のレジスタ１５１及びアクセス制御部４５２と同様である。また、ＤＭＡ転送中にＣＰＵ１０１が第２の記憶装置１０８にアクセスする際の第２のＩＦ１００６の動作は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の第１のＩＦ４０５の動作と同様である。
【０１９３】
（実施の形態１１）
本発明の実施の形態１１では、上述した実施の形態７に係るデータ転送制御装置７１０に対して、上述した実施の形態５と同様の変更を施した例を説明する。
【０１９４】
図３２は、本発明の実施の形態１１に係るデータ転送システム１１００の構成を示すブロック図である。
【０１９５】
図３２に記載のデータ転送制御装置１１１０において、第１のＤＭＡＣ４０２は実施の形態５における第１のＤＭＡＣ４０２と同様である。
【０１９６】
第１のＩＦ５０５は、実施の形態５における第１のＩＦ５０５と同様である。また、ＤＭＡ転送中にＣＰＵ１０１が第１の記憶装置１０７にアクセスする際の第１のＩＦ５０５の動作は、実施の形態５における第１のＩＦ５０５の動作と同様である。
【０１９７】
第２のＩＦ１１０６に含まれる第４のレジスタ７５１及びアクセス制御部１１５２は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の、第１のＩＦ５０５に含まれる第１のレジスタ１５１及びアクセス制御部５５２と同様である。また、ＤＭＡ転送中にＣＰＵ１０１が第２の記憶装置１０８にアクセスする際の第２のＩＦ１１０６の動作は、第１の記憶装置１０７と第２の記憶装置１０８とを入れ替えた場合の第１のＩＦ５０５の動作と同様である。
【０１９８】
（実施の形態１２）
本発明の実施の形態１２では、上述した実施の形態７に係るデータ転送制御装置７１０に対して、上述した実施の形態６と同様の変更を施した例を説明する。
【０１９９】
図３３は、本発明の実施の形態１２に係るデータ転送システム１２００の構成を示すブロック図である。図３３に示すデータ転送制御装置１２１０は、実施の形態７に記載のデータ転送制御装置７１０に対して、ＣＰＵ１０１の代わりに、第２のＤＭＡＣ６０１を備える。第２のＤＭＡＣ６０１によるそれぞれの記憶装置へのアクセスは、第１のＤＭＡＣ１０２によるアクセスより優先度が低いものとする。
【０２００】
実施の形態１２の動作は、実施の形態７におけるＣＰＵ１０１からの要求が第２のＤＭＡＣ６０１からのアクセス要求に代わったものであり、それ以外の動作は実施の形態７と同様である。実施の形態７におけるＣＰＵ１０１を第２のＤＭＡＣ６０１に置き換えて、簡単な機能の追加で同様の効果を実現できる。
【０２０１】
なお、実施の形態８から実施の形態１１までのそれぞれの実施の形態についても、ＣＰＵ１０１を第２のＤＭＡＣ６０１に置き換えても、同様の効果を実現できる。
【０２０２】
以上、本発明の実施の形態に係るデータ転送制御装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【０２０３】
また、上記実施の形態に係るデータ転送制御装置に含まれる各処理部は典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。
【０２０４】
典型的には、上記データ転送制御装置は、１チップの半導体集積回路として構成される。なお、データ転送制御装置と第１の記憶装置とを含む回路が、１チップの半導体集積回路として構成されてもよい。
【０２０５】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０２０６】
また、本発明の実施の形態に係る、データ転送制御装置の機能の一部又は全てを、ＣＰＵ等のプロセッサがプログラムを実行することにより実現してもよい。
【０２０７】
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【０２０８】
また、上記実施の形態１〜１２に係る、データ転送制御装置、及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
【０２０９】
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
【０２１０】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【０２１１】
また、上記フローチャートで示す処理手順に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【０２１２】
更に、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
【産業上の利用可能性】
【０２１３】
本発明に係るデータ転送制御装置は、記憶装置間のデータ転送における転送要求を満たしながら、それらの記憶装置へのアクセスを含む処理を並列して行うことができるので、外部記憶装置又は内蔵記憶装置など複数の記憶装置を持つ情報処理装置に有効である。
【符号の説明】
【０２１４】
１００、２００、３００、４００、５００、６００、７００、８００、９００、１０００、１１００、１２００  データ転送システム
１０１  ＣＰＵ
１０２、４０２  第１のＤＭＡＣ
１０４  第１のＤＭＡＣバス
１０５、２０５、３０５、４０５、５０５  第１のＩＦ
１０６、４０６、７０６、８０６、９０６、１００６、１１０６  第２のＩＦ
１０７  第１の記憶装置
１０８  第２の記憶装置
１０９、７０９  カウンタ
１１０、２１０、３１０、４１０、５１０、６１０、７１０、８１０、９１０、１０１０、１１１０、１２１０  データ転送制御装置
１５１  第１のレジスタ
１５２、２５２、３５２、４５２、５５２、７５２、８５２、９５２、１０５２、１１５２  アクセス制御部
１５３、１５４、１５５、２５６、３５８、７５３、７５４、８５６  レジスタ
３５７、９５７  第２のレジスタ
４２１  バッファ
４２２  第３のレジスタ
４２３  連続アクセス回数
６０１  第２のＤＭＡＣ
６０３  第２のＤＭＡＣバス
６１１  第３の記憶装置
７０３  ＣＰＵバス
７５１  第４のレジスタ
Ｔ１、Ｔ１ｂ  ＤＭＡＣアクセス時間
Ｔ２  ＣＰＵアクセス時間
Ｔ３  残り期間
Ｔ４  遅延許容値
Ｔ５  全体遅延許容量
Ｔ６  遅延時間
【図１】
2012221125.tif 000003
【図２】
2012221125.tif 000004
【図３】
2012221125.tif 000005
【図４】
2012221125.tif 000006
【図５】
2012221125.tif 000007
【図６】
2012221125.tif 000008
【図７】
2012221125.tif 000009
【図８】
2012221125.tif 000010
【図９】
2012221125.tif 000011
【図１０】
2012221125.tif 000012
【図１１】
2012221125.tif 000013
【図１２】
2012221125.tif 000014
【図１３】
2012221125.tif 000015
【図１４】
2012221125.tif 000016
【図１５】
2012221125.tif 000017
【図１６】
2012221125.tif 000018
【図１７】
2012221125.tif 000019
【図１８】
2012221125.tif 000020
【図１９】
2012221125.tif 000021
【図２０】
2012221125.tif 000022
【図２１】
2012221125.tif 000023
【図２２】
2012221125.tif 000024
【図２３】
2012221125.tif 000025
【図２４】
2012221125.tif 000026
【図２５】
2012221125.tif 000027
【図２６】
2012221125.tif 000028
【図２７】
2012221125.tif 000029
【図２８】
2012221125.tif 000030
【図２９】
2012221125.tif 000031
【図３０】
2012221125.tif 000032
【図３１】
2012221125.tif 000033
【図３２】
2012221125.tif 000034
【図３３】
2012221125.tif 000035