(57)【要約】【課題】ＤＭＡ転送の時間管理を可能にし、リアルタイム処理においてシステム破綻を招くことのないＤＭＡ転送制御装置を提供する。【解決手段】複数の論理プロセッサ毎にバス占有可能時間値および１組または複数組のＤＭＡ転送パラメータを格納する転送パラメータ記憶手段１２１と、ＤＭＡ転送パラメータに基づきＤＭＡ転送を実行するデータ転送実行手段１２２と、ＤＭＡ転送パラメータの授受ならびにＤＭＡ転送の開始および中断を制御する制御手段１２３と、論理プロセッサ毎に最初のＤＭＡ転送が開始されるとバス占有経過時間の計測を開始する時間計測手段１２３１とを備え、バス占有経過時間がバス占有可能時間値に達した場合に、制御手段１２３は実行中のＤＭＡ転送を中断させ、所定順の論理プロセッサに係るＤＭＡ転送パラメータに基づくＤＭＡ転送を開始させる。【選択図】  図１
2005056067.tif 000002
【特許請求の範囲】
【請求項１】
主プロセッサで実行される複数の論理プロセッサ毎にバス占有可能時間値および１組または複数組のＤＭＡ転送の転送パラメータを格納する転送パラメータ記憶手段と、前記転送パラメータに基づきＤＭＡ転送を実行するデータ転送実行手段と、前記転送パラメータの授受ならびにＤＭＡ転送の開始および中断を制御する制御手段と、前記論理プロセッサ毎に最初のＤＭＡ転送が開始されるとバス占有経過時間の計測を開始する時間計測手段とを備え、
前記バス占有経過時間が前記バス占有可能時間値に達した場合に、前記制御手段は実行中のＤＭＡ転送を中断させ、所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させるＤＭＡ転送制御装置。
【請求項２】
前記バス占有経過時間が前記バス占有可能時間値に達する前に、ある論理プロセッサに係るすべてのＤＭＡ転送が終了した場合に、前記制御手段は所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させる請求項１記載のＤＭＡ転送制御装置。
【請求項３】
主プロセッサで実行される複数の論理プロセッサ毎にバス占有可能転送データ数および１組または複数組のＤＭＡ転送の転送パラメータを格納する転送パラメータ記憶手段と、前記転送パラメータに基づきＤＭＡ転送を実行するデータ転送実行手段と、前記転送パラメータの授受ならびにＤＭＡ転送の開始および中断を制御する制御手段と、前記論理プロセッサ毎に最初のＤＭＡ転送が開始されるとバス占有可能転送データ数の計測を開始する時間計測手段とを備え、
前記バス占有可能転送データ数が前記バス転送データ数が前記バス占有可能転送データ数に達した場合に、前記制御手段は実行中のＤＭＡ転送を中断させ、所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させるＤＭＡ転送制御装置。
【請求項４】
前記バス転送データ数が前記バス占有可能転送データ数に達する前に、ある論理プロセッサに係るすべてのＤＭＡ転送が終了した場合に、前記制御手段は所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させる請求項３記載のＤＭＡ転送制御装置。
【請求項５】
前記所定順は巡回的とし、ＤＭＡ転送要求が無い論理プロセッサに係るＤＭＡ転送処理はすべてスキップされる請求項１から４のいずれか一項記載のＤＭＡ転送制御装置。
【請求項６】
前記転送パラメータ記憶手段において、論理プロセッサ毎の前記複数組の転送パラメータはＦＩＦＯ構造にキューイングされる請求項１から５のいずれか一項記載のＤＭＡ転送制御装置。
【請求項７】
前記転送パラメータのキューイングが所定の最大転送パラメータ数を超えて行われようとした場合に、前記制御手段は前記主プロセッサにエラー発生を通知する請求項６記載のＤＭＡ転送制御装置。
【請求項８】
前記転送パラメータの先頭キューの前に緊急キューとして１組の転送パラメータをキューイングすることが可能な請求項６または７記載のＤＭＡ転送制御装置。
【請求項９】
前記緊急キューがキューイングされた状態で、さらに前記緊急キューのキューイングが行われようとした場合に、前記制御手段は前記主プロセッサにエラー発生を通知する請求項８記載のＤＭＡ転送制御装置。
【請求項１０】
前記転送パラメータを論理プロセッサ毎に無効にする機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１１】
前記転送パラメータを個別に無効にする機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１２】
キューイングされた前記転送パラメータに関するキュー管理情報を論理プロセッサ毎に前記転送パラメータ記憶手段に格納し、前記キュー管理情報は少なくとも個別の転送パラメータの有効／無効情報を含む請求項６から９のいずれか１項記載のＤＭＡ転送制御装置。
【請求項１３】
前記転送パラメータに基づくＤＭＡ転送の実行を論理プロセッサ毎に保留する機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１４】
前記転送パラメータに基づくＤＭＡ転送の実行を個別に保留する機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１５】
前記転送パラメータに基づくＤＭＡ転送の実行をすべて保留する機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１６】
実行が保留されたＤＭＡ転送については、ＤＭＡ転送に係るすべての処理がスキップされる請求項１３から１５のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１７】
キューイングされた前記転送パラメータに関するキュー管理情報を論理プロセッサ毎に前記転送パラメータ記憶手段に格納し、前記キュー管理情報は少なくとも個別の転送パラメータの保留情報を含む請求項６から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１８】
論理プロセッサに係る一連のＤＭＡ転送の実行終了時に転送パラメータをＤＭＡ転送の実行開始時の値に復元し、該転送パラメータに基づくＤＭＡ転送の実行を繰り返す機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項１９】
個別のＤＭＡ転送の実行終了時に該ＤＭＡ転送の転送パラメータをＤＭＡ転送の実行開始時の値に復元し、該転送パラメータに基づくＤＭＡ転送の実行を繰り返す機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項２０】
前記バス占有可能時間値あるいは前記バス占有可能転送データ数に拘らず、論理プロセッサ毎にＤＭＡ転送の中断を禁止する機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項２１】
前記バス占有可能時間値あるいは前記バス占有可能転送データ数に拘らず、個別にＤＭＡ転送の中断を禁止する機構を備える請求項１から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項２２】
前記データ転送実行手段に１組の転送パラメータを保持する転送パラメータ一時記憶手段を備え、前記データ転送実行手段は前記転送パラメータ一時記憶手段に保持された転送パラメータを使用してＤＭＡ転送を行う請求項１から２１のいずれか一項記載のＤＭＡ転送制御装置。
【請求項２３】
前記転送パラメータのキューイングの際に１組の転送パラメータのバッファとして用いる転送パラメータ一時格納手段を備え、前記制御手段は、前記転送パラメータ一時格納手段に格納された転送パラメータを用いてキューイングされる転送パラメータに関するキュー管理情報を論理プロセッサ毎に生成し、前記転送パラメータおよび前記キュー管理情報を前記転送パラメータ記憶手段に格納する請求項６から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項２４】
前記転送パラメータのキューイングの際に、前記転送パラメータ一時格納手段から前記転送パラメータ記憶手段への転送パラメータの転送中は、前記主プロセッサからのキューイングのアクセスを待たせる請求項２３記載のＤＭＡ転送制御装置。
【請求項２５】
論理プロセッサ毎に前記転送パラメータがキューイングされているか否かを示すキューアクティブフラグを備え、前記制御手段は前記キューアクティブフラグを巡回的にチェックして論理プロセッサ毎のＤＭＡ転送要求の有無を判断する請求項６から９のいずれか一項記載のＤＭＡ転送制御装置。
【請求項２６】
前記キューアクティブフラグは論理プロセッサに係るいずれかの転送パラメータが有効化されたときにセットされ、該論理プロセッサに係るすべてのＤＭＡ転送の終了時にリセットされる請求項２５記載のＤＭＡ転送制御装置。
【請求項２７】
前記キューアクティブフラグのいずれかをリセットするときは、該リセットされるキューアクティブフラグのセット要求を待たせる請求項２６記載のＤＭＡ転送制御装置。
【請求項２８】
前記キューアクティブフラグをＤＭＡ転送制御装置の外部から直接アクセスすることが可能な経路を有する請求項２５記載のＤＭＡ転送制御装置。
【請求項２９】
前記キューアクティブフラグの状態と前記キュー管理情報との間で矛盾が生じた場合に、前記キュー管理情報に従って前記キューアクティブフラグの状態を補正する請求項２５記載のＤＭＡ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＭＡ転送の時間管理を可能にするＤＭＡ転送制御装置に関する。
【背景技術】
【０００２】
近年、機器のマルチメディア化に伴い、プロセッサ上で音声や動画像（ＡＶ）の符号化や復号処理を行うことが日常的となっている。一般にＡＶ復号処理を行う場合に、所定の時間内に一定量の処理を完結させること、すなわちリアルタイム処理（実時間処理）が必要である。さらに音声および動画像の双方向通信では、符号化処理においてもリアルタイム性が要求される。
【０００３】
このようなリアルタイム処理を含む複数の処理を単一のプロセッサ上で実行する場合には、処理のリアルタイム性を保証する機構が必要である。この機構を実現する方法の一つに、プロセッサ資源を時分割し、所定の時間毎に処理内容を切り替える方式がある。この方式は、大局的にみると、複数の仮想的な論理プロセッサがそれぞれ異なる処理を並列に実行していることと等価である。以下では、この方式を仮想的マルチプロセッシング（ＶＭＰ）と呼ぶことにする。
【０００４】
ＡＶ処理においては、入出力装置、バッファメモリ（データの一時蓄積用メモリ）、ワークメモリ（データ処理用のメモリ）等の間で、内部データバスを経由して大量のデータ転送を行う必要がある。通常このようなデータ転送にプロセッサ資源を消費することは好ましくなく、ＤＭＡ（直接メモリアクセス）コントローラを用いて行うことが一般的である。
【０００５】
近年のシステムＬＳＩにおける情報処理量の増大に伴い、ＬＳＩ内部バスにおけるデータ転送量もまた増大する一方である。このデータ転送を効率良く行うために、ＤＭＡコントローラにも高機能なものが求められており、これまでに種々の提案がなされている。例えば、転送効率を向上させるために、複数のＤＭＡ転送に優先度を持たせるものや（特許文献１参照）、複数のＤＭＡ転送を予約実行するものが考案されている（特許文献２参照）。
【０００６】
【特許文献１】特開平９−２２３１０２号公報
【特許文献２】特開２００２−４１４４５号公報
【０００７】
図２は従来のＤＭＡコントローラを搭載したシステムの構成例を示すブロック図である。図２において、マイクロプロセッサユニット（ＭＰＵ）１は、プロセッサ１１、内部ＤＭＡコントローラ１２、外部ＤＭＡバスインターフェイス１３、内部メモリ１４、１５、１６から構成され、１１〜１６の各部はＭＰＵに搭載されたプロセッサ内部バスおよび内部ＤＭＡバスに接続される。さらに、ＭＰＵ１、外部ＤＭＡコントローラ２、周辺回路３、外部メモリ４、周辺回路５は、ＭＰＵ外部のＤＭＡバスに接続される。
【０００８】
図２のシステムを用いて、蓄積デバイス（例えば半導体メモリカード）から音声圧縮データを読み出し、復号処理を行った後に音声インターフェイス回路に出力する場合を考察する。この場合に、周辺回路３は半導体メモリカードとのインターフェイス回路、周辺回路５は音声インターフェイス回路とする。
【０００９】
音声再生を途切れなく行うために、音声復号処理を行うプログラム（プログラムＣとする）にはリアルタイム性が要求される。さらに、この音声復号処理プログラムＣと並列に、２つの非リアルタイム性のプログラムＡおよびプログラムＢを実行させるものとする。この場合のプロセッサ１１および内部ＤＭＡコントローラ１２の動作を図３のタイミングチャートに示す。
【００１０】
この音声復号処理におけるデータおよび処理の流れは、以下のようになる。
（処理１）外部ＤＭＡコントローラ２は、圧縮音声データを周辺回路３から外部メモリ４へ随時転送する。なお、この処理は、内部ＤＭＡコントローラ１２の動作を考察する上で特に意識する必要はない。
【００１１】
（処理２）内部ＤＭＡコントローラ１２は、過去の復号処理結果を内部メモリ１４から周辺回路５へ転送する。このＤＭＡ転送はプログラムＣによって起動される。
【００１２】
（処理３）内部ＤＭＡコントローラ１２は、処理２のＤＭＡ転送を完了すると、プロセッサ１１に割込みを通知する。これによりプログラムＣは次のＤＭＡ転送を起動し、内部ＤＭＡコントローラ１は、処理２に引き続いて新たな圧縮データを外部メモリ４から内部メモリ１４へ転送する。処理２、３において、内部メモリ１４は、バッファメモリとして使用されている。
【００１３】
（処理４）プロセッサ１１では、上記２、３の処理と並行して内部メモリ１５に保持されたデータの復号処理を行う。本処理において、内部メモリ１５は、ワークメモリとして使用されている。
【００１４】
処理２から４までは所定の処理単位時間毎に繰り返され、単位時間毎に内部メモリ１４と１５の用途が交互に入れ替わる。すなわち、内部メモリ１４は、ある時間ではバッファメモリ、別の時間ではワークメモリとして使用される。内部メモリ１５についても同様である。
【００１５】
このシステムでは、プログラムＣのリアルタイム性を保証するために、プログラムＡ、Ｂ、Ｃが図３に示すように時分割で実行される。この状態を、プログラムＡ、Ｂ、Ｃがそれぞれ個別の仮想的な論理プロセッサによって実行されているとみなすこともできる。図３に示す「処理単位時間」は、音声復号処理の場合、一般に符号化方式や、周辺回路の出力データレート（単位時間あたりの出力データ量）、バッファ容量等から決定される。
【００１６】
また、このシステムでは、仮想的マルチプロセッシングを導入しているため、各プログラム（Ａ、Ｂ、Ｃ）の開発にあたって他のプログラムの処理内容や実行時間等を考慮する必要がない。各プログラムにそれぞれ一定のプロセッサ資源が確保されることを前提として、プログラム開発を独立して進めることが可能である。すなわち、仮想的マルチプロセッシングには、リアルタイム処理を保証できる他に、プログラム開発が容易という利点がある。さらに同様の理由から、処理単位時間が異なる別のシステムへ上記プログラムＡ、Ｂを移植することも容易である。
【００１７】
次に、このシステムの問題点を示すために、特定のプログラムがＤＭＡバスを長時間占有した場合を考察する。図４のタイミングチャートに示す動作例においては、プログラムＢは転送量の大きいＤＭＡ転送を実行し、ＤＭＡバスを長時間占有している。このＤＭＡ転送が終了しＤＭＡバスが開放されると、プログラムＣは内部メモリ１５から周辺回路５へのＤＭＡ転送を実行し、転送完了後プロセッサ１１に割込みを通知する。
【００１８】
しかし、図４のタイミングチャートにおいては、割込みが通知された時点でプログラムＣの処理はすでに終了しており、引き続いて次のＤＭＡ転送を起動することができない。プログラムＣが内部メモリ１５のデータ処理を開始する時点で、処理対象のデータが未転送であるため、リアルタイム処理は破綻する。
【００１９】
このような事態を回避するためには幾つかの方法が考えられるが、その一つとして複数のＤＭＡ転送を予約実行する方法がある。すなわち、図５のタイミングチャートに示すように、外部メモリから内部メモリ１５へのＤＭＡ転送要求を事前に予約しておき、内部メモリ１５から周辺回路５へのＤＭＡ転送の完了後、予約したＤＭＡ転送を自動的に実行させればよい。具体的には、特許文献２に記載のＤＭＡコントローラを用いることで、これを実現することができる。
【００２０】
しかしながら、複数のＤＭＡ転送を予約実行できたとしても、プログラムＣのリアルタイム性を保証できない場合がある。例えば、図６のタイミングチャートに示す動作例においては、プログラムＢのＤＭＡ転送時間が長いため、ＤＭＡ転送の完了が内部メモリ１５の処理開始に間に合わず、リアルタイム処理は破綻する。
【００２１】
結局、プログラムＣのＤＭＡ転送に対して一定時間のＤＭＡバスアクセスを保証するには、プログラムＡ、Ｂが起動するＤＭＡ転送に対し、その起動タイミングおよび転送時間（あるいは転送語数）に制限を加える以外には確実な方法はない。上記の考察から分かるように、リアルタイム処理を行う場合には、プロセッサ資源の時分割（ＶＭＰの導入）のみでは不十分であって、ＤＭＡ転送の時間管理（スケジューリング）についても併せて考慮する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
上述したように、プログラムＡ、Ｂの開発においては、これらのプログラムがＤＭＡ転送要求を行う場合に、プログラムＣのリアルタイム処理を破綻させないよう配慮する必要がある。しかしながら、これによってプログラムＡ、Ｂ、Ｃの開発には依存関係が生じ、開発を独立して進めることができなくなる。このように、ＤＭＡ転送のスケジューリングに起因して、プログラム開発が容易というＶＭＰの利点は大きく損なわれることとなる。
【００２３】
また、ＡＶ符号化／復号処理においては、符号化方式や入出力データレートによって処理にかかる時間がそれぞれ異なるため、処理単位時間は様々な値を取り得るが、全ての場合について、システム破綻がないことを保証する必要がある。
【００２４】
さらに、複数のリアルタイム処理が輻輳した場合には、システム開発および検証工数が膨大になるほか、システム破綻のないスケジューリングを実施すること自体が困難となる場合もある。
【００２５】
本発明は、このような従来の問題点に鑑みてなされたものであって、リアルタイム処理においてＤＭＡ転送の時間管理を可能にすることにより、個々のプログラムにおいてはＤＭＡ転送のスケジューリングを考慮する必要がなく、プログラムの開発や移植が容易で、リアルタイム処理においてシステム破綻を招くことのないＤＭＡ転送制御装置（ＤＭＡコントローラ）を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明のＤＭＡ転送制御装置は、主プロセッサで実行される複数の論理プロセッサ毎にバス占有可能時間値および１組または複数組のＤＭＡ転送の転送パラメータを格納する転送パラメータ記憶手段と、前記転送パラメータに基づきＤＭＡ転送を実行するデータ転送実行手段と、前記転送パラメータの授受ならびにＤＭＡ転送の開始および中断を制御する制御手段と、前記論理プロセッサ毎に最初のＤＭＡ転送が開始されるとバス占有経過時間の計測を開始する時間計測手段と、を備え、バス占有経過時間がバス占有可能時間値に達した場合に、制御手段は実行中のＤＭＡ転送を中断させ、所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させるものである。
【００２７】
上記構成によれば、論理プロセッサ毎のバス占有経過時間をバス占有可能時間値に制限することができるため、リアルタイム処理におけるＤＭＡ転送の時間管理が可能になり、システム破綻を回避することができ、処理のリアルタイム性を確実に保障することができる。
【００２８】
また、バス占有経過時間がバス占有可能時間値に達し実行中のＤＭＡ転送が中断された場合に、プログラムを介することなく自動的に次に実行すべきＤＭＡ転送が開始されるため、個々のプログラムにおいてはＤＭＡ転送のスケジューリングを考慮する必要がなく、プログラムの開発や保守が容易になる。
【００２９】
さらに、本発明のＤＭＡ転送制御装置は、バス占有経過時間がバス占有可能時間値に達する前に、ある論理プロセッサに係るすべてのＤＭＡ転送が終了した場合に、制御手段は所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させるものである。
【００３０】
上記構成によれば、ある論理プロセッサに係るすべてのＤＭＡ転送の終了時にバス占有可能時間に余裕がある場合も、バス占有が打ち切られ、次に実行すべきＤＭＡ転送が開始されるため、バス占有の無駄な時間を無くすことができ、ＤＭＡ転送効率を向上させることができる。
【００３１】
本発明のＤＭＡ転送制御装置は、主プロセッサで実行される複数の論理プロセッサ毎にバス占有可能転送データ数および１組または複数組のＤＭＡ転送の転送パラメータを格納する転送パラメータ記憶手段と、前記転送パラメータに基づきＤＭＡ転送を実行するデータ転送実行手段と、前記転送パラメータの授受ならびにＤＭＡ転送の開始および中断を制御する制御手段と、前記論理プロセッサ毎に最初のＤＭＡ転送が開始されるとバス転送データ数の計測を開始する転送データ数計測手段とを備え、前記バス転送データ数が前記バス占有可能転送データ数に達した場合に、前記制御手段は実行中のＤＭＡ転送を中断させ、所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させるものである。
【００３２】
上記構成によれば、バス占有可能時間値に代えてバス占有可能転送データ数を用い、バス占有経過時間に代えてバス転送データ数を計測しても、バス占有経過時間を計測するＤＭＡ転送制御装置と同等のＤＭＡ転送の時間管理が可能であるため、リアルタイム処理において同様の効果を得ることができる。
【００３３】
さらに、本発明のＤＭＡ転送制御装置は、バス転送データ数がバス占有可能転送データ数に達する前に、ある論理プロセッサに係るすべてのＤＭＡ転送が終了した場合に、制御手段は所定順の論理プロセッサに係る転送パラメータに基づくＤＭＡ転送を開始させるものである。
【００３４】
上記構成によれば、バス占有可能時間値に代えてバス占有可能転送データ数を用い、バス占有経過時間に代えてバス転送データ数を計測しても、バス占有経過時間を計測するＤＭＡ転送制御装置と同等の処理が可能であるため、バス占有の無駄な時間を無くすことができ、ＤＭＡ転送効率を向上させることができる。
【００３５】
さらに、本発明のＤＭＡ転送制御装置は、前記所定順は巡回的とし、ＤＭＡ転送要求が無い論理プロセッサに係るＤＭＡ転送処理はすべてスキップされるものである。
【００３６】
上記構成によれば、ＤＭＡ転送要求を有する論理プロセッサに係るＤＭＡ転送のみが巡回的に処理されるため、バス占有の無駄な時間を無くすことができ、ＤＭＡ転送効率を最大に向上させることができる。
【００３７】
さらに、本発明のＤＭＡ転送制御装置は、論理プロセッサ毎の複数組の転送パラメータは転送パラメータ記憶手段にてＦＩＦＯ構造にキューイングされるものである。
【００３８】
上記構成によれば、転送パラメータをＦＩＦＯ構造にキューイングしてＤＭＡ転送制御を行うことにより、ＤＭＡ転送終了割込みから次のＤＭＡ転送起動にかかるオーバヘッドがなくなり、ＤＭＡ転送効率を向上させることができる。
【００３９】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータのキューイングが所定の最大転送パラメータ数を超えて行われようとした場合に、制御手段は主プロセッサにエラー発生を通知するものである。
【００４０】
上記構成によれば、所定の最大転送パラメータ数を超えて転送パラメータのキューイングが行われることを防ぐことができるため、すでにキューイングされた転送パラメータの破壊など、意図しない動作を防止することができる。
【００４１】
本発明のＤＭＡ転送制御装置は、前記転送パラメータの先頭キューの前に緊急キューとして１組の転送パラメータをキューイングすることが可能なものである。
【００４２】
上記構成によれば、緊急キューが通常の転送パラメータより高い優先度でキューイングされるため、即時応答性が要求される事象の発生などに応じて、これに係るＤＭＡ転送を緊急キューとして扱い最優先で実行することができる。
【００４３】
本発明のＤＭＡ転送制御装置は、緊急キューがキューイングされた状態で、さらに緊急キューのキューイングが行われようとした場合に、制御手段は主プロセッサにエラー発生を通知するものである。
【００４４】
上記構成によれば、緊急キューが２重にキューイングされることを防ぐことができるため、すでにキューイングされた転送パラメータの破壊など、意図しない動作を防止することができる。
【００４５】
本発明のＤＭＡ転送制御装置は、転送パラメータを論理プロセッサ毎に無効にする機構を備えるものである。
【００４６】
上記構成によれば、転送パラメータを論理プロセッサ毎に無効にすることができるため、アプリケーションが途中で無効になった場合などへの対応が可能となる。また、ＤＭＡ要求の投機的実行が可能となり、アプリケーション作成上の自由度が増す。
【００４７】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータを個別に無効にする機構を備えるものである。
【００４８】
上記構成によれば、転送パラメータを個別に無効にすることができるため、転送データ数が途中で変更された場合などへの対応が可能となる。また、ＤＭＡ要求の投機的実行が可能となり、アプリケーション作成上の自由度が増す。
【００４９】
さらに、本発明のＤＭＡ転送制御装置は、キューイングされた転送パラメータに関するキュー管理情報を論理プロセッサ毎に転送パラメータ記憶手段に格納するものであり、このキュー管理情報は少なくとも個別の転送パラメータの有効／無効情報を含むものである。
【００５０】
上記構成によれば、キュー管理情報を更新するだけでＤＭＡ転送の終了時やキューの削除時に転送パラメータを個別に削除することができるため、転送パラメータを書き換えることなくキューの途中にあるＤＭＡ転送要求を削除することが可能となり、また、複数のＤＭＡ転送要求を削除することも容易になる。
【００５１】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータに基づくＤＭＡ転送の実行を論理プロセッサ毎に保留する機構を備えるものである。
【００５２】
上記構成によれば、ＤＭＡ転送の実行を論理プロセッサ毎に保留することができるため、アプリケーションが中断され、また再開される場合に、ＤＭＡ転送の途中における転送パラメータの退避、削除、復帰の各処理が不要となり、保留と復帰の切り替えを高速化することができる。
【００５３】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータに基づくＤＭＡ転送の実行を個別に保留する機構を備えるものである。
【００５４】
上記構成によれば、ＤＭＡ転送の実行を個別に保留することができるため、アプリケーションが中断され、また再開される場合に、ＤＭＡ転送の途中における個別の転送パラメータの退避、削除、復帰の各処理が不要となり、保留と復帰の切り替えを高速化することができる。
【００５５】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータに基づくＤＭＡ転送の実行をすべて保留する機構を備えるものである。
【００５６】
上記構成によれば、デバッグ時などでＤＭＡ転送が実行されると不都合な場合に、この機能を使用して実際のＤＭＡ転送が実行をスキップさせることができる。
【００５７】
さらに、本発明のＤＭＡ転送制御装置は、実行が保留されたＤＭＡ転送については、ＤＭＡ転送に係るすべての処理がスキップされるものである。
【００５８】
上記構成によれば、ＤＭＡ転送要求が保留された論理プロセッサに係るＤＭＡ転送のバス占有時間終了待ちを無くし、バス使用効率を上げることができる。
【００５９】
さらに、本発明のＤＭＡ転送制御装置は、キューイングされた転送パラメータに関するキュー管理情報を論理プロセッサ毎に転送パラメータ記憶手段に格納するものであり、キュー管理情報は少なくとも個別の転送パラメータの保留情報を含むものである。
【００６０】
上記構成によれば、キュー管理情報に個別の転送パラメータの保留情報を含めることにより、ＤＭＡ転送の実行を個別に保留することが容易になり、また、複数のＤＭＡ転送要求を保留することも容易になる。
【００６１】
さらに、本発明のＤＭＡ転送制御装置は、論理プロセッサに係る一連のＤＭＡ転送の実行終了時に転送パラメータをＤＭＡ転送の実行開始時の値に復元し、その一連の転送パラメータに基づくＤＭＡ転送の実行を繰り返す機構を備えるものである。
【００６２】
上記構成によれば、論理プロセッサ毎に自動的にＤＭＡ転送を繰り返し実行することにより、アプリケーションにおいて繰り返し実行される一連のＤＭＡ転送について、ＤＭＡ転送終了割込みから次のＤＭＡ起動にかかるオーバヘッドを無くし、ＤＭＡ転送効率を向上させることができる。
【００６３】
さらに、本発明のＤＭＡ転送制御装置は、個別のＤＭＡ転送の実行終了時にこのＤＭＡ転送の転送パラメータをＤＭＡ転送の実行開始時の値に復元し、この転送パラメータに基づくＤＭＡ転送の実行を繰り返す機構を備えるものである。
【００６４】
上記構成によれば、個別のＤＭＡ転送要求毎に自動的にＤＭＡ転送を繰り返し実行することにより、アプリケーションにおいて繰り返し実行される個別のＤＭＡ転送について、ＤＭＡ転送終了割込みから次のＤＭＡ起動にかかるオーバヘッドを無くし、ＤＭＡ転送効率を向上させることができる。
【００６５】
さらに、本発明のＤＭＡ転送制御装置は、バス占有可能時間値あるいはバス占有可能転送データ数に拘らず、論理プロセッサ毎にＤＭＡ転送の中断を禁止する機構を備えるものである。
【００６６】
上記構成によれば、緊急性の高いアプリケーションが起動され、これに伴うＤＭＡ転送要求が時分割処理されては不都合な場合に、一時的に論理プロセッサ毎にＤＭＡ転送の時分割処理を禁止し、緊急性の高いＤＭＡ転送を優先して処理した後に通常動作に戻すことができる。
【００６７】
さらに、本発明のＤＭＡ転送制御装置は、バス占有可能時間値あるいはバス占有可能転送データ数に拘らず、個別にＤＭＡ転送の中断を禁止する機構を備えるものである。
【００６８】
上記構成によれば、緊急性の高いアプリケーションが起動され、これに伴うＤＭＡ転送要求が時分割処理されては不都合な場合に、一時的に個別にＤＭＡ転送の時分割処理を禁止し、緊急性の高いＤＭＡ転送を優先して処理した後に通常動作に戻ることができる。
【００６９】
さらに、本発明のＤＭＡ転送制御装置は、データ転送実行手段は、１組の転送パラメータを保持する転送パラメータ一時記憶手段を備え、これに保持された転送パラメータを使用してＤＭＡ転送を行うものである。
【００７０】
上記構成によれば、ＤＭＡ転送の実行時に転送パラメータ記憶手段をアクセスする必要が無くなるため、メモリアクセスに係る消費電力を節約することができる。また、プロセッサからの転送パラメータのキューイングとアクセスが競合することが無いため、プロセッサ側の待ち時間が少なくなりＣＰＵ効率が向上する。
【００７１】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータのキューイングの際に１組の転送パラメータのバッファとして用いる転送パラメータ一時格納手段を備え、制御手段は、転送パラメータ一時格納手段に格納された転送パラメータを用いてキューイングされる転送パラメータに関するキュー管理情報を論理プロセッサ毎に生成し、転送パラメータおよびキュー管理情報を転送パラメータ記憶手段に格納するものである。
【００７２】
上記構成によれば、１組の転送パラメータを一時格納するバッファを備えているため、転送パラメータのキューイングの際に、各パラメータ値を格納する度に転送パラメータ記憶手段をアクセスする必要が無くなる。
【００７３】
さらに、本発明のＤＭＡ転送制御装置は、転送パラメータのキューイングの際に、転送パラメータ一時格納手段から転送パラメータ記憶手段への転送パラメータの転送中は、主プロセッサからのキューイングのアクセスを待たせるものである。
【００７４】
上記構成によれば、転送パラメータ記憶手段への転送パラメータの格納中に転送パラメータ一時格納手段にバッファされたパラメータ値が変化し意図しない動作を引き起こすことを防ぐことができる。
【００７５】
さらに、本発明のＤＭＡ転送制御装置は、論理プロセッサ毎に転送パラメータがキューイングされているか否かを示すキューアクティブフラグを備え、制御手段はキューアクティブフラグを巡回的にチェックして論理プロセッサ毎のＤＭＡ転送要求の有無を判断するものである。
【００７６】
上記構成によれば、各論理プロセッサに係るＤＭＡ転送終了後、次の論理プロセッサに係るＤＭＡ転送要求の有無を判断することができ、ＤＭＡ転送要求が無い場合は、転送パラメータ記憶手段をアクセスする必要が無いため処理を高速化でき、併せて消費電力を削減することができる。
【００７７】
さらに、本発明のＤＭＡ転送制御装置は、論理プロセッサ毎のキューアクティブフラグは、この論理プロセッサに係るいずれかの転送パラメータが有効化されたときにセットされ、この論理プロセッサに係るすべてのＤＭＡ転送の終了時にリセットされるものである。
【００７８】
上記構成によれば、各々のキューアクティブフラグは各論理プロセッサに係るＤＭＡ転送要求の最初の発生からすべてのＤＭＡ転送の終了時までの間セットされるため、ＤＭＡ転送要求の有無を常に正しく示すことができる。
【００７９】
さらに、本発明のＤＭＡ転送制御装置は、キューアクティブフラグのいずれかをリセットするときは、このリセットされるキューアクティブフラグのセット要求を待たせるものである。
【００８０】
上記構成によれば、キューアクティブフラグのリセット時に新たなセット要求を待たせることで、キューアクティブフラグの不正な変化により意図しない動作を引き起こすことを防ぐことができる。
【００８１】
さらに、本発明のＤＭＡ転送制御装置は、キューアクティブフラグをＤＭＡ転送制御装置の外部から直接アクセスすることが可能な経路を有するものである。
【００８２】
上記構成によれば、プロセッサがデバッグモードに入る場合に、キューアクティブフラグを外部から直接アクセス可能にすることにより、有力な解析手段を提供することができる。
【００８３】
本発明のＤＭＡ転送制御装置は、キューアクティブフラグの状態とキュー管理情報との間で矛盾が生じた場合に、キュー管理情報に従って前記キューアクティブフラグの状態を補正するものである。
【００８４】
上記構成によれば、デバッグモードでの操作等によりキューアクティブフラグの状態とキュー管理情報との間で矛盾が生じた場合に、キュー管理情報に従ってキューアクティブフラグの状態が補正されるため、プロセッサが不正な状態に陥ることを防ぐことができる。
【発明の効果】
【００８５】
本発明によれば、論理プロセッサ毎のバス占有経過時間をバス占有可能時間値に制限することにより、リアルタイム処理におけるＤＭＡ転送の時間管理が可能になり、システム破綻を回避することができ、処理のリアルタイム性を確実に保障することができる。
【００８６】
また、バス占有経過時間がバス占有可能時間値に達し実行中のＤＭＡ転送が中断された場合に、プログラムを介することなく自動的に次に実行すべきＤＭＡ転送が開始されるため、個々のプログラムにおいてはＤＭＡ転送のスケジューリングを考慮する必要がなく、プログラムの開発や保守が容易になる。
【００８７】
さらに本発明によれば、転送パラメータをＦＩＦＯ構造にキューイングしてＤＭＡ転送制御を行うことにより、ＤＭＡ転送終了割込みから次のＤＭＡ転送起動にかかるオーバヘッドが無くなり、ＤＭＡ転送効率を向上させることができる。
【００８８】
さらに本発明によれば、転送パラメータを論理プロセッサ毎あるいは個別に無効にすることができるため、アプリケーションが途中で無効になった場合などへの対応が可能となる。また、ＤＭＡ要求の投機的実行が可能となり、アプリケーション作成上の自由度が増す。
【００８９】
さらに本発明によれば、ＤＭＡ転送の実行を論理プロセッサ毎あるいは個別に保留することができるため、アプリケーションが中断され、また再開される場合に、ＤＭＡ転送の途中における転送パラメータの退避、削除、復帰の各処理が不要となり、保留と復帰の切り替えを高速化することができる。
【００９０】
さらに本発明によれば、論理プロセッサ毎あるいは個別にＤＭＡ転送を繰り返し実行することにより、アプリケーションにおいて繰り返し実行される一連のＤＭＡ転送についてＤＭＡ転送終了割込みから次のＤＭＡ起動にかかるオーバヘッドを無くし、ＤＭＡ転送効率を向上させることができる
【００９１】
さらに本発明によれば、緊急性の高いアプリケーションが起動され、これに伴うＤＭＡ転送要求が時分割処理されては不都合な場合に、一時的に論理プロセッサ毎あるいは個別にＤＭＡ転送の時分割処理を禁止し、緊急性の高いＤＭＡ転送を優先して処理した後に通常動作に戻すことができる。
【発明を実施するための最良の形態】
【００９２】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の図面の記載において、同一または類似の部分には同一または類似の符号を付し、同一部分については重複した説明を省略する。
【００９３】
また、本発明の各実施の形態においては、システム構成として図２を想定する。すなわち、各実施の形態における動作例として、図２に示すシステムを用いて、蓄積デバイス（例えば半導体メモリカード）から音声圧縮データを読み出し、復号処理を行った後に音声インターフェイス回路に出力する場合を想定し、周辺回路３は半導体メモリカードとのインターフェイス回路、周辺回路５は音声インターフェイス回路とする。
【００９４】
（実施の形態１）
図１は本発明の実施の形態１に係るＤＭＡ転送制御装置の構成を示すブロック図である。図１において、プロセッサ１１およびＤＭＡ転送制御装置（ＤＭＡコントローラ）１２はプロセッサ内部バスおよびＤＭＡバスに接続される。これらは、図２におけるマイクロプロセッサユニット（ＭＰＵ）１の一部として組み込まれるものであり、図２と同一の符号を付している。
【００９５】
ＤＭＡ転送制御装置１２は、転送パラメータ記憶手段１２１、データ転送実行手段１２２、制御手段１２３から構成され、さらに、制御手段１２３は時間計測手段１２３１を含むように構成される。プロセッサ内部バス、データ伝送実行手段１２２、時間計測手段１２３１は、ＤＭＡ転送制御装置１２の内部において転送パラメータ記憶手段１２１に接続される。
【００９６】
転送パラメータ記憶手段１２１は、プロセッサ１１から送出されたＤＭＡ転送の転送パラメータおよびバス占有可能時間を論理プロセッサ毎に格納する。図７は転送パラメータ記憶手段に格納される転送パラメータの配列例を示すメモリマップである。
【００９７】
データ転送実行手段１２２は、制御手段１２３からの制御に従い、ＤＭＡ転送の実行に必要なアドレスや制御信号を生成する。制御手段１２３は、転送パラメータ記憶手段１２１に格納されるデータの入出力、およびデータ転送実行手段１２２が行うＤＭＡ転送の開始と中断を制御する。また、本実施の形態のＤＭＡ転送制御装置は、特許文献２に示されたようなＤＭＡ転送を予約実行する機能を有するものとする。
【００９８】
図８は、本実施の形態のＤＭＡ転送制御装置の動作例を示すタイミングチャートである。この例では、３つの異なるプログラムＡ、Ｂ、Ｃが、それぞれ論理プロセッサ０、１、２に割り当てられている。各プログラムのＤＭＡバス占有可能時間は、Ａ：Ｂ：Ｃ＝１：１：３となるように定められており、これらバス占有可能時間の値は、プロセッサ１１により転送パラメータ記憶手段１２１に図７に示すように格納されている。
【００９９】
プログラムが割り当てられていない論理プロセッサ３〜１５のバス占有可能時間は０である。時間計測手段１２３１は論理プロセッサ番号順に巡回的にバス占有可能時間を読み出し、論理プロセッサ毎のバス占有経過時間を常時計測しており、ＤＭＡバスの占有権は図８の最下段に示すように各プログラムに割り当てられる。
【０１００】
まずプログラムＣは、ＤＭＡ転送制御装置１２に対して内部メモリ１４から周辺回路５へのＤＭＡ転送を要求する。このとき、プロセッサ１１はＤＭＡ転送制御装置１２に対してＤＭＡ転送の実行に必要な１組の転送パラメータを送出し、これらは転送パラメータ記憶手段１２１に格納される。この１組の転送パラメータは次に示すものである。
（１）転送元（内部メモリ１４）開始アドレス
（２）転送先（周辺回路５）開始アドレス
（３）転送方式
（４）転送語数
【０１０１】
ＤＭＡバスの割り当てがプログラムＣに切り替えられると、制御手段１２３は、転送語数が０でないことを読み取り、データ転送実行手段１２２にＤＭＡ転送を開始させる。データ転送実行手段１２２は、ＤＭＡ転送の進行に伴い、転送パラメータ記憶手段１２１に格納された転送元アドレス、転送先アドレス、転送語数を随時更新し、転送語数＝０となった時点でＤＭＡ転送の完了を制御手段１２３に通知する。さらに、制御手段１２３はプロセッサ１１に割込みを通知する。
【０１０２】
プログラムＣはこの割込み通知を受け、次のＤＭＡ転送である外部メモリから内部メモリ１４へのＤＭＡ転送を要求する。要求の手順は最初のＤＭＡ転送のときと同様である。このＤＭＡ転送は、ＤＭＡバスが再度プログラムＣに割り当てられた時点で実行される。
【０１０３】
さらに時間が進むと、プログラムＢがＤＭＡ転送を要求し実行されるが、プログラムＢのバス占有可能時間が比較的短いためＤＭＡ転送は一度に完了しない。ＤＭＡ転送のバス占有経過時間がバス占有可能時間に達した時点で、制御手段１２３はデータ転送実行手段１２２にＤＭＡ転送を中断させる。このとき、転送元アドレス、転送先アドレス、転送語数の途中経過が転送パラメータ記憶手段１２１に残っているので、ＤＭＡバスが再度プログラムＢに割り当てられるとＤＭＡ転送を引き続いて実行することができる。
【０１０４】
ここで、図８のタイミングチャートにおいては、図の最下段に示すように、バス占有可能時間を論理プロセッサ毎のＤＭＡ転送用タイムスロットとして強制的に与える場合を示している。しかしながら、この方法では、ある論理プロセッサに係るすべてのＤＭＡ転送がバス占有可能時間値に達する前に終了した場合に、与えられたＤＭＡ転送用タイムスロットに空き時間が発生することになる。そのため、論理プロセッサ毎にＤＭＡ転送用タイムスロットを機械的に与える方式では、ＤＭＡバスの稼働率を最高にすることができず、達成可能なリアルタイム性能が低くなる恐れがある。
【０１０５】
そこで、本発明においては、ある論理プロセッサに係るすべてのＤＭＡ転送がバス占有可能時間値に達する前に終了した場合に、次の論理プロセッサに係るＤＭＡ転送を直ちに開始させるように制御する。ここで論理プロセッサの順序は番号順かつ巡回的とする。また、ＤＭＡ転送パラメータが格納されていない論理プロセッサに係るＤＭＡ転送処理は、すべてスキップするように制御する。このようにすることで、ＤＭＡバスの稼働率を限界まで上げることができる。
【０１０６】
これらの制御機能により、プログラムＢのＤＭＡ転送が中断された、もしくは終了した時点で、転送パラメータ記憶手段１２１にプログラムＣの転送パラメータが格納されていることが確認された場合は、制御手段１２３はデータ転送実行手段１２２にプログラムＣのＤＭＡ転送を開始させる。
【０１０７】
しかし、プログラムＢのＤＭＡ転送が中断された時点で、まだプログラムＣの転送パラメータが格納されていない場合は、制御手段１２３は次の転送パラメータに基づきＤＭＡ転送を開始しようとするが、他に転送パラメータが設定されていないので再びプログラムＢのＤＭＡ転送を開始させる。図９は、この場合のＤＭＡ転送の中断と再開が繰り返される動作例を示すタイミングチャートである。
【０１０８】
このように、転送パラメータ記憶手段１２１に予約格納された転送パラメータを制御手段１２３が巡回的にチェックし、転送語数が０でない次のＤＭＡ転送をデータ転送実行手段１２２に開始させるため、バス占有経過時間がバス占有可能時間に達してＤＭＡ転送が中断された場合に、プログラムを介することなく次のＤＭＡ転送を直ちに開始することができる。
【０１０９】
さらに、本実施の形態のＤＭＡ転送制御装置において、時間計測手段１２３１を用いてバス占有経過時間を計測する方法と同等の時間監視方法として、バス転送データ数を計測する方法を採用することもできる。この場合は、転送パラメータ記憶手段１２１にはバス占有可能時間値に代えてバス占有可能転送データ数を格納し、時間計測手段１２３１はＤＭＡ転送におけるバス転送データ数を計測し、これがバス占有可能転送データ数に達した場合に実行中のＤＭＡ転送を中断させ、次のＤＭＡ転送を開始させるようにする。
【０１１０】
なお上記説明では、転送パラメータ記憶手段１２１に予約格納された転送パラメータにおいて、転送語数をチェックすることにより実際のＤＭＡ転送要求の有無を判定しているが、これに代えて、転送パラメータの一部、例えば転送方式にＤＭＡ転送要求有効フラグを設けるようにしてもよい。これは以下に説明する他の実施の形態においても同様である。
【０１１１】
以上のように、本実施の形態のＤＭＡ転送制御装置では、プログラム毎にＤＭＡバス占有時間、あるいはこれと同等なバス占有可能転送データ数を割り当てて制御することにより、一括したスケジューリングを行う。これにより、個々のプログラム（Ａ、Ｂ、Ｃ）において、ＤＭＡ転送のスケジューリングを考慮する必要がなくなる。また、リアルタイム処理が必要なプログラム（Ｃ）に対して、充分なバス占有時間を割り当てることにより、リアルタイム処理におけるシステム破綻を回避することが可能となる。
【０１１２】
（実施の形態２）
前述した実施の形態１においては、ＤＭＡ転送制御装置がプログラムを介することなく、転送パラメータ記憶手段に予約格納された転送パラメータに基づき巡回的にＤＭＡ転送を開始することができたが、ＤＭＡ転送を終了し転送語数＝０となった転送パラメータは効力を失い、プロセッサに割込むことで新しい転送パラメータを受け取る必要がある。
【０１１３】
例えば、図８に示すタイミングチャートにおいて、内部メモリ１５から周辺回路５へのＤＭＡ転送終了後は、プロセッサへ割込み、外部メモリから内部メモリ１５へのＤＭＡ転送要求を予約する必要がある。本実施の形態においては、図１に示すＤＭＡ転送制御装置において、１つの論理プロセッサが複数のＤＭＡ転送要求を予約することにより、関連する一連のＤＭＡ転送をプロセッサへ割込まずに実行することを可能にする。
【０１１４】
図１０は、本発明の実施の形態２に係るＤＭＡ転送制御装置において、転送パラメータ記憶手段に格納された転送パラメータの配列例を示すメモリマップである。この例においては、１つの論理プロセッサ１について６組の転送パラメータがキューイング可能である。転送パラメータのキューに基づくＤＭＡ転送は一連のものとして連続して実行されるため、バス占有可能時間は６組の転送パラメータに対して１つ与えられている。
【０１１５】
転送パラメータのキューはＦＩＦＯ構造をとり、例えば、制御手段１２３には各論理プロセッサ毎にキュートップとキューボトムのポインタを設け、転送パラメータの積み込み時にキュートップを更新し、ＤＭＡ転送の終了時にキューボトムを更新するように管理する。
【０１１６】
図１１は、本実施の形態のＤＭＡ転送制御装置の動作例を示すタイミングチャートである。この例では、図２の構成例のシステムにおいて、３つの異なるプログラムＡ、Ｂ、Ｃが、それぞれ論理プロセッサ０、１、２に割り当てられ、それぞれの転送パラメータが転送パラメータ記憶手段１２１に格納されている。
【０１１７】
プログラムＡはＤＭＡ転送を行わず、プログラムＢは比較的短いバス占有可能時間が与えられている。リアルタイム性が要求されるプログラムＣでは、内部メモリ１４／１５から周辺回路５へのＤＭＡ転送と、外部メモリから内部メモリ１４／１５へのＤＭＡ転送とを連続して実行できるように、２組の転送パラメータが論理プロセッサ２について設定され、２つのＤＭＡ転送に必要なバス占有可能時間が与えられている。
【０１１８】
論理プロセッサ２の転送パラメータをこのようにキューイングすることにより、内部メモリ１４／１５から周辺回路５へのＤＭＡ転送と、外部メモリから内部メモリ１４／１５へのＤＭＡ転送との間の、ＤＭＡ転送終了割込みとＤＭＡ転送起動にかかるオーバヘッドがなくなり、ＤＭＡ転送効率を向上させることができる。
【０１１９】
上述のプログラムＣではリアルタイム性が要求されたが、アプリケーションによっては事象の発生に対する即時応答性が要求されるものがある。この場合は、発生した事象に対応して用意される転送パラメータのＤＭＡ転送を最優先で実行する必要がある。そのため、通常の転送パラメータのキューより優先度の高い転送パラメータを、その論理プロセッサの緊急キューとしてキューイング可能な機構を設ける必要がある。
【０１２０】
図１２は、本実施の形態において、このような緊急キューのキューイングを可能にする転送パラメータの配列例を示すメモリマップである。図１２においては、論理プロセッサの通常キューの先頭にある転送パラメータの前に緊急キューの転送パラメータがキューイング可能である。このように緊急キューをキューイング機構を設けることにより、発生した事象に対応するＤＭＡ転送を最優先で実行することができる。
【０１２１】
一方、本実施の形態による転送パラメータのキューイングを無制限に行うと、転送パラメータ数が所定の最大転送パラメータ数を超えてしまう可能性がある。そのため、最大転送パラメータ数を超えて転送パラメータのキューイングが行われようとしたことを検知し、これをエラーとしてプロセッサに通知するようにする。また、緊急キューがキューイングされた状態で、さらに緊急キューがキューイングされようとした場合にも、これを検知しエラーとしてプロセッサに通知するようにする。
【０１２２】
図１３は、本発明の実施の形態２に係るＤＭＡ転送制御装置の構成を示すブロック図であり、上述したような転送パラメータのキューイングにおける異常を検知し、割込みによりプロセッサに通知する機能を備えている。
【０１２３】
図１３のＤＭＡ転送制御装置１２ａにおいては、図１のＤＭＡ転送制御装置１２に対して、プロセッサ１１に対する割込みとして、前述した通常キューの異常の通知、および緊急キューの異常の通知が追加され、これに係る制御機能が制御手段１２３ａに追加されている。このような機能を備えることにより、すでにキューイングされた転送パラメータの破壊など、意図しない動作を防止することができる。
【０１２４】
（実施の形態３）
本実施の形態においてはＤＭＡ転送要求の削除を可能にする。これにより、アプリケーションが途中で無効になった場合や、転送データ数が途中で変更された場合への対応が可能となる。また、ＤＭＡ要求の投機的実行が可能となり、アプリケーション作成上の自由度が増す。以下、図１または図１３に示したＤＭＡ転送制御装置により本実施の形態を説明する。
【０１２５】
アプリケーションが途中で無効になった場合は、ＤＭＡ転送要求を論理プロセッサ毎に削除する方法を取ることができる。この場合は、該当する論理プロセッサに対応する転送パラメータを無効にするようにプロセッサから書き換える。これは例えば、転送語数を０に設定するか、あるいは有効フラグを設けている場合は、それを無効に設定することにより達成される。
【０１２６】
また、実施の形態２のように１つの論理プロセッサにキューイングされた複数のＤＭＡ転送要求を全て削除する場合は、制御手段１２３において該当する論理プロセッサのキュートップとキューボトムのポインタを初期状態に戻すことで達成される。しかし、複数のＤＭＡ転送要求を全て削除するのではなく個別に削除する場合は、キュー構造を維持するための処理が必要である。
【０１２７】
図１４は、本発明の実施の形態３に係るＤＭＡ転送制御装置において、転送パラメータ記憶手段に格納された転送パラメータの配列例を示すメモリマップである。この例においては、１つの論理プロセッサ１について６組の転送パラメータがキューイング可能で、この６組の転送パラメータ全体に対して、バス占有可能時間とキュー管理情報が与えられている。
【０１２８】
キュー管理情報はキューに置かれた各転送パラメータの格納位置とその有効性を示す有効フラグとからなる。キュー構造はキュー管理情報により管理される。キュー管理情報は６つの部分に区分けされ、右端の部分がキュートップとなる。転送パラメータの格納位置はキュー領域内の順番号で示され、転送パラメータは任意の位置に格納することができる。この格納位置は転送パラメータの登録時に決定され、転送パラメータを有効化する積み込み時に有効フラグが有効に更新される。
【０１２９】
ＤＭＡ転送終了時およびＤＭＡ転送要求を個別に削除する場合は、キュー管理情報より当該のキュー情報を取り去ると共に、当該キューよりもボトム側のキュー情報をキュートップ側にシフトさせて詰める。これにより転送パラメータの格納位置に１つ空きができるが、この格納位置には、プロセッサから個別に新たな転送パラメータのキューイングを行うことができる。すなわち、新たな転送パラメータを登録し、キュー管理情報の有効フラグを有効に更新（積み込み）することができる。
【０１３０】
ＤＭＡ転送時およびＤＭＡ転送終了時における、キュー管理情報とキュー領域内の転送パラメータの状態例を図２３に示す。また、ＤＭＡ転送要求を個別に削除する場合の削除前および削除後における、キュー管理情報とキュー領域内の転送パラメータの状態例を図２４に示す。
【０１３１】
このように、各転送パラメータを管理するキュー管理情報を設けることにより、キュー管理情報を更新するだけでＤＭＡ転送の終了時やキューの削除時に転送パラメータを個別に無効化することができる。その結果、転送パラメータ自体を書き換えることなくキューの途中にあるＤＭＡ転送要求を削除することが可能となり、また、複数のＤＭＡ転送要求を削除することも容易になる。
【０１３２】
図１５は、本実施の形態において、転送パラメータ記憶手段１２１に格納された転送パラメータに緊急キューがキューイングされた場合の配列例を示すメモリマップである。この場合も、キュー管理情報に緊急キューの管理情報を含めることにより、上述した方法と同様の処理を行うことができる。
【０１３３】
（実施の形態４）
本実施の形態においてはＤＭＡ転送要求の保留を可能にする。これにより、アプリケーションが中断され、また再開される場合に、ＤＭＡ転送の途中における転送パラメータの退避、削除、復帰の各処理が不要となり、保留と復帰の切り替えを高速化することができる。以下、図１または図１３に示したＤＭＡ転送制御装置により本実施の形態を説明する。
【０１３４】
アプリケーションを途中で中断する場合は、論理プロセッサ毎にＤＭＡ転送要求を保留する方法を取る。この場合は、プロセッサから制御手段１２３に論理プロセッサ毎の保留情報を設定し、制御手段１２３は保留情報が設定された論理プロセッサに対応するＤＭＡ転送要求を実行しないように制御する。
【０１３５】
また、実施の形態２のように１つの論理プロセッサにキューイングされた複数のＤＭＡ転送要求を個別に保留する場合は、キュー管理情報にＤＭＡ転送要求毎の保留フラグを設ける方法を取る。図１６は、本実施の形態において、キュー管理情報にＤＭＡ転送要求毎の保留フラグを設けた場合のキュー管理情報の構成例を示す図である。
【０１３６】
論理プロセッサ毎にＤＭＡ転送要求が保留された場合、あるいは論理プロセッサのＤＭＡ転送要求がすべて保留された場合は、当該論理プロセッサに与えられたバス占有可能時間によらず、ＤＭＡバス占有がスキップされる。これにより、ＤＭＡ転送要求が保留された論理プロセッサに係るＤＭＡ転送のバス占有時間終了待ちを無くし、バス使用効率を上げることができる。
【０１３７】
さらに、キューイングしたＤＭＡ転送要求の実行をすべて保留する機能を設けることができる。プロセッサから制御手段１２３に対して全保留コマンドを実行することにより全保留状態に遷移させ、解除コマンドを実行することにより全保留状態から脱出するように制御する。デバッグ時などでＤＭＡ転送が実行されると不都合な場合に、この機能を使用して全てのＤＭＡ転送の実行を保留させることができる。
【０１３８】
（実施の形態５）
本実施の形態においては特定のＤＭＡ転送を繰り返し実行する機構を実現する。これにより、アプリケーションにおいて繰り返し実行されるＤＭＡ転送に関し、ＤＭＡ転送終了割込みから次のＤＭＡ起動にかかるオーバヘッドを無くし、ＤＭＡ転送効率を向上させることができる。以下、図１または図１３に示したＤＭＡ転送制御装置により本実施の形態を説明する。
【０１３９】
この機構を実現するために、繰り返し実行するＤＭＡ転送については転送パラメータ記憶手段１２１においてキューイングされた転送パラメータ登録時の設定値を保持し、制御手段１２３がこの転送パラメータを繰り返し復元（キューイング）するように制御する。
【０１４０】
図１７は、本発明の実施の形態５に係るＤＭＡ転送制御装置において、転送パラメータ記憶手段に格納された転送パラメータの配列例を示すメモリマップである。この例においては実施の形態２と同様に、１つの論理プロセッサ１について６組の転送パラメータがキューイング可能で、この６組の転送パラメータ全体に対してバス占有可能時間が与えられている。
【０１４１】
さらに、各転送パラメータにおいて、転送元開始アドレス、転送先開始アドレス、転送語数については、ＤＭＡ転送の実行時に随時更新される現在値に加えて、転送パラメータを初期値に復元するための転送パラメータ登録時の設定値を保持している。また、制御フラグとして繰り返し実行フラグを設けている。
【０１４２】
論理プロセッサ毎にＤＭＡ転送を繰り返し実行する場合は、設定された一連の転送パラメータによるＤＭＡ転送終了後、これら一連の転送パラメータを再度初期値に復元する。また、ＤＭＡ転送要求を個別に繰り返し実行する場合は、繰り返し実行フラグが設定されている転送パラメータのＤＭＡ転送終了後、転送パラメータを初期値に復元し、このＤＭＡ転送を再度開始させる。
【０１４３】
このように、論理プロセッサ毎あるいは個別のＤＭＡ転送要求毎に自動的にＤＭＡ転送を繰り返し実行することにより、ＤＭＡ転送終了割込みから次のＤＭＡ起動にかかるオーバヘッドを無くし、ＤＭＡ転送効率を向上させることができる。
【０１４４】
（実施の形態６）
本実施の形態においてはＤＭＡ転送の時分割処理を一時的に禁止することができる機構を実現する。これにより、緊急性の高いアプリケーションが起動されＤＭＡ転送要求を行った場合に、一時的にＤＭＡ転送の時分割処理を禁止し、緊急性の高いＤＭＡ転送を優先して処理した後に通常動作に戻すことができる。以下、図１または図１３に示したＤＭＡ転送制御装置により本実施の形態を説明する。
【０１４５】
ＤＭＡ転送の時分割処理の禁止と解除は、プロセッサから制御手段１２３に対して所定のコマンドを実行することで処理される。論理プロセッサ毎にＤＭＡ転送の時分割禁止を行う方法としては、バス占有可能時間が特定の値、例えば最大値あるいは０などの値に設定された場合に時分割禁止とみなす方法、あるいは、バス占有可能時間に付随して時分割禁止フラグを設ける方法などがある。また、個別のＤＭＡ転送要求毎の時分割禁止は、図１７に示すように転送パラメータの一部に時分割禁止フラグを設けることにより実現される。
【０１４６】
時分割処理が禁止されたＤＭＡ転送においては、論理プロセッサ毎に設定されたバス占有可能時間値あるいはバス占有可能転送データ数に拘らず、時間計測手段１２３１によるバス占有時間監視機能が抑止され、実行中のＤＭＡ転送は中断されず終了するまで実行される。
【０１４７】
このように、ＤＭＡ転送の時分割処理の禁止と解除を行う機構を設けることにより、緊急性の高いアプリケーションに伴うＤＭＡ転送要求が時分割処理されては不都合な場合に、これを優先させて１回で処理することができる。
【０１４８】
（実施の形態７）
図１８は本発明の実施の形態７に係るＤＭＡ転送制御装置の構成を示すブロック図である。図１８のＤＭＡ転送制御装置１２ｃにおいては、図１のＤＭＡ転送制御装置１２に対して、データ伝送実行手段１２２の内部に転送パラメータ一時記憶手段１２２１が設けられ、これに対応する制御機能が制御手段１２３ｃに追加されている。
【０１４９】
転送パラメータ一時記憶手段１２２１にはＤＭＡ転送の実行開始時に制御手段１２３ｃにより転送パラメータ記憶手段１２１から転送パラメータがコピーされ、データ伝送実行手段１２２においてＤＭＡ転送の実行時のアドレス計算用として使用される。これにより、データ伝送実行手段１２２はＤＭＡ転送が中断あるいは終了するまで転送パラメータ記憶手段１２１に対してアクセスを行わない。
【０１５０】
このように構成することで、ＤＭＡ転送の実行時のアドレス計算を行う度に転送パラメータ記憶手段１２１に格納された転送パラメータを参照する必要が無くなるため、メモリアクセスに係る消費電力を節約することができる。また、プロセッサからの転送パラメータのキューイングとアクセスが競合することが無く、特に、転送パラメータ記憶手段１２１が１ポートメモリで構成されている場合にプロセッサ側の待ち時間が少なくなりプロセッサ実行効率が向上する。
【０１５１】
（実施の形態８）
図１９は本発明の実施の形態８に係るＤＭＡ転送制御装置の構成を示すブロック図である。図１９のＤＭＡ転送制御装置１２ｂにおいては、図１のＤＭＡ転送制御装置１２に対して、キューイングの際にバッファとして用いるための転送パラメータ一時格納手段１２４が設けられ、これに対応する制御機能が制御手段１２３ｂに追加されている。
【０１５２】
図２０は転送パラメータ一時格納手段１２４の構成例を示すブロック図である。転送パラメータ一時格納手段１２４は１組の転送パラメータを一時格納することができる。転送パラメータのキューイングの際は、転送パラメータを構成する各パラメータ値を転送パラメータ一時格納手段１２４に設定した後、開始フラグをセットし、キュー管理情報を更新し、この１組の転送パラメータを転送パラメータ記憶手段１２１へ転送する。
【０１５３】
転送パラメータ一時格納手段１２４から転送パラメータ記憶手段１２１への転送パラメータの転送中は、プロセッサから制御手段１２３ｂへのキューイングのアクセスを待たせる。このようにすることで、転送パラメータ記憶手段１２１への転送パラメータの格納中に転送パラメータ一時格納手段１２４にバッファされたパラメータ値が変化し意図しない動作を引き起こすことを防いでいる。
【０１５４】
（実施の形態９）
図２１は本発明の実施の形態９に係るＤＭＡ転送制御装置の構成を示すブロック図である。図２１のＤＭＡ転送制御装置１２ｅにおいては、図１のＤＭＡ転送制御装置１２に対して、実施の形態７における転送パラメータ一時記憶手段１２２１および実施の形態８における転送パラメータ一時格納手段１２４が設けられるとともに、新たに記憶補助手段１２５が設けられ、これに対応する制御機能が制御手段１２３ｅに追加されている。
【０１５５】
記憶補助手段１２５には、転送パラメータがキューイングされているか否かを論理プロセッサ毎に示すキューアクティブフラグを格納する。制御手段１２３ｅは記憶補助手段１２５の各論理プロセッサに対応するキューアクティブフラグを巡回的にチェックすることにより、論理プロセッサ毎のＤＭＡ転送要求の有無を判断する。
【０１５６】
キューアクティブフラグは、該当する論理プロセッサについて、キューイングされたいずれかの転送パラメータが有効化されたときにセットされ、すべてのＤＭＡ転送の終了時にリセットされる。また、キューアクティブフラグの更新中は、プロセッサから制御手段１２３ｅへのキューイングのアクセスを待たせるように制御する。
【０１５７】
これにより、各論理プロセッサについてのＤＭＡ転送終了後、次の論理プロセッサにおけるＤＭＡ転送要求の有無を判断することができ、ＤＭＡ転送要求が無い場合は、転送パラメータ記憶手段１２１をアクセスする必要が無いため処理を高速化でき、併せて消費電力を削減することができる。また、キューアクティブフラグを設けて上記のように使用することでＤＭＡ転送制御装置に起動時にキュー管理情報を初期化する必要が無くなるため、特に転送パラメータ記憶手段１２１がメモリで構成されている場合には有効である。
【０１５８】
図２２は本実施の形態において、記憶補助手段１２５をプロセッサ内部バスに接続する経路を設けた構成例を示すブロック図である。これにより、キューアクティブフラグをＤＭＡ転送制御装置の外部から直接アクセスすることを可能にしている。
【０１５９】
例えば、プロセッサが不正な状態に陥った場合にプロセッサの動作を停止させてデバッグモードに入ることがあるが、このような場合に、キューアクティブフラグを外部から直接アクセス可能にすることにより、有力な解析手段を提供することができる。
【０１６０】
また、デバッグモードにおいてキューアクティブフラグやキュー管理情報が不正に操作され、その後、デバッグモードから通常動作に復帰した場合には、キューアクティブフラグの状態とキュー管理情報との間で矛盾が生じ、プロセッサが不正な状態に陥ることが起こり得る。そのような場合に備えて、両者に矛盾が生じた場合は、キュー管理情報に従ってキューアクティブフラグの状態を補正する機能を備えることも有用である。
【産業上の利用可能性】
【０１６１】
本発明にかかるＤＭＡ転送制御装置は、論理プロセッサ毎のバス占有経過時間をバス占有可能時間値に制限することにより、リアルタイム処理におけるＤＭＡ転送の時間管理が可能になり、システム破綻を回避することができ、処理のリアルタイム性を確実に保障することができるという効果を有し、ＤＭＡ転送の時間管理を可能にするＤＭＡ転送制御装置等として有用である。
【図面の簡単な説明】
【０１６２】
【図１】本発明の実施の形態１に係るＤＭＡ転送制御装置の構成を示すブロック図。
【図２】従来のＤＭＡコントローラを搭載したシステムの構成例を示すブロック図。
【図３】時分割で実行されるプログラムにおける従来のＤＭＡ転送制御装置の動作を示すタイミングチャート。
【図４】特定のプログラムがＤＭＡバスを長時間占有した場合の従来のＤＭＡ転送制御装置の動作を示すタイミングチャート。
【図５】複数のＤＭＡ転送を予約実行する機能を備えた従来のＤＭＡ転送制御装置の動作を示すタイミングチャート。
【図６】複数のＤＭＡ転送を予約実行する機能を備えてもリアルタイム処理が破綻する場合の従来のＤＭＡ転送制御装置の動作を示すタイミングチャート。
【図７】本発明の実施の形態１における転送パラメータ記憶手段に格納される転送パラメータの配列例を示すメモリマップ。
【図８】本発明の実施の形態１に係るＤＭＡ転送制御装置の動作例を示すタイミングチャート。
【図９】本発明の実施の形態１に係るＤＭＡ転送制御装置においてＤＭＡ転送の中断と再開が繰り返される動作例を示すタイミングチャート。
【図１０】本発明の実施の形態２における転送パラメータ記憶手段に格納された転送パラメータの配列例を示すメモリマップ。
【図１１】本発明の実施の形態２に係るＤＭＡ転送制御装置の動作例を示すタイミングチャート。
【図１２】本発明の実施の形態２における緊急キューのキューイングを可能にする転送パラメータの配列例を示すメモリマップ。
【図１３】本発明の実施の形態２に係るＤＭＡ転送制御装置の構成を示すブロック図。
【図１４】本発明の実施の形態３における転送パラメータ記憶手段に格納された転送パラメータの配列例を示すメモリマップ。
【図１５】本発明の実施の形態３における緊急キューがキューイングされた場合の転送パラメータの配列例を示すメモリマップ。
【図１６】本発明の実施の形態４におけるＤＭＡ転送要求毎の保留フラグを設けたキュー管理情報の構成例を示す図。
【図１７】本発明の実施の形態５における転送パラメータ記憶手段に格納された転送パラメータの配列例を示すメモリマップ。
【図１８】本発明の実施の形態７に係るＤＭＡ転送制御装置の構成を示すブロック図。
【図１９】本発明の実施の形態８に係るＤＭＡ転送制御装置の構成を示すブロック図。
【図２０】本発明の実施の形態８における転送パラメータ一時格納手段１２４の構成例を示すブロック図。
【図２１】本発明の実施の形態９に係るＤＭＡ転送制御装置の構成を示すブロック図。
【図２２】本発明の実施の形態９におけるキューアクティブフラグを外部から直接アクセス可能にする経路を設けた構成例を示すブロック図。
【図２３】本発明の実施の形態３における転送パラメータの状態を示す図。
【図２４】本発明の実施の形態３における転送パラメータの状態を示す図。
【符号の説明】
【０１６３】
１  マイクロプロセッサユニット
２  外部ＤＭＡコントローラ
３  周辺回路
４  外部メモリ
５  周辺回路
１１  プロセッサ
１２、１２ａ、１２ｂ、１２ｃ、１２ｅ  ＤＭＡ転送制御装置
１３  外部ＤＭＡバスインターフェイス
１４、１５、１６  内部メモリ
１２１  転送パラメータ記憶手段
１２２  データ転送実行手段
１２３、１２３ａ、１２３ｂ、１２３ｃ、１２３ｅ  制御手段
１２４  転送パラメータ一時格納手段
１２５  記憶補助手段
１２２１  転送パラメータ一時記憶手段
１２３１  時間計測手段
【図１】
2005056067.tif 000003
【図２】
2005056067.tif 000004
【図３】
2005056067.tif 000005
【図４】
2005056067.tif 000006
【図５】
2005056067.tif 000007
【図６】
2005056067.tif 000008
【図７】
2005056067.tif 000009
【図８】
2005056067.tif 000010
【図９】
2005056067.tif 000011
【図１０】
2005056067.tif 000012
【図１１】
2005056067.tif 000013
【図１２】
2005056067.tif 000014
【図１３】
2005056067.tif 000015
【図１４】
2005056067.tif 000016
【図１５】
2005056067.tif 000017
【図１６】
2005056067.tif 000018
【図１７】
2005056067.tif 000019
【図１８】
2005056067.tif 000020
【図１９】
2005056067.tif 000021
【図２０】
2005056067.tif 000022
【図２１】
2005056067.tif 000023
【図２２】
2005056067.tif 000024
【図２３】
2005056067.tif 000025
【図２４】
2005056067.tif 000026