(57)【要約】【課題】  ＤＭＡ制御する際にシステム全体の効率化を図ることを可能とする。【解決手段】  複数のコマンドリスト３１〜３ｎを備え、その一つを用いてＣＰＵ１とは独立して制御手段であるアクセス制御部２３と実行コマンド部２４とが主記憶装置５をＤＭＡ制御することによって、ＣＰＵが他のコマンドリストにアクセスできる。従って、ＤＭＡ制御装置が一つの例えばコマンドリスト３１に含まれる全コマンドを処理した後には休止時間なしで、直ちにＣＰＵが設定した次の例えばコマンドリスト３３を処理できる。【選択図】    図１
2005157717.tif 000002
【特許請求の範囲】
【請求項１】
一つのセントラル・プロセッサ・ユニット（ＣＰＵ）からダイレクト・メモリ・アクセス（ＤＭＡ）により所定のコマンドに基づいて記憶装置のデータを転送する方法であって、前記ＣＰＵがアクセス可能な複数のコマンドリストを備え、
前記ＣＰＵから、データ転送処理中を除く前記コマンドリストにアクセスし、前記コマンドリストのうちの少なくとも一つに転送許可を与えると共に複数の転送許可に対しては所定の順序を指定し、
ＤＭＡ制御により、前記所定の順序に従い一つのコマンドリストを選択してデータ転送処理中を設定すると共に選択されたコマンドリストに含まれるコマンドに基づいて順次データ転送することを特徴とするデータ転送方法。
【請求項２】
請求項１に記載のデータ転送方法において、前記所定の順序は前記ＣＰＵから転送許可に優先順位として付与され、データ転送を処理するコマンドリストを前記優先順位にしたがって順次選択することを特徴とするデータ転送方法。
【請求項３】
請求項１に記載のデータ転送方法において、前記コマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとを指定しており、開始アドレスから当該転送サイズに示されるデータ数に対応するアドレスまでのデータを転送することを特徴とするデータ転送方法。
【請求項４】
請求項１に記載のデータ転送方法において、前記コマンドリストを主記憶装置に備え、前記ＣＰＵから受けた転送許可にしたがって前記主記憶装置にアクセスし、転送許可されたコマンドリストから取り出したコマンドに基づいて順次データ転送することを特徴とするデータ転送方法。
【請求項５】
一つのセントラル・プロセッサ・ユニット（ＣＰＵ）が選択した一つのコマンドリストにアクセスして一つまたは複数のコマンドを格納し、この格納されたコマンドに基づいてダイレクト・メモリ・アクセス（ＤＭＡ）によりデータを転送するデータ転送装置において、
前記ＣＰＵは、データ転送処理中を除く前記コマンドリストに対して前記コマンドリストに転送許可のエネーブルフラグを設定すると共に前記コマンドを新規または変更して格納する手段と、当該コマンドにしたがったデータ転送を開始させる開始フラグを設定する手段とを備え、
前記データ転送装置は、
データ転送処理中を除く少なくとも一つのコマンドリストに対して、前記ＣＰＵにより前記コマンドリストそれぞれに対応する転送許可のエネーブルフラグとデータ転送開始を要求する開始フラグとが設定される制御レジスタと、
データ転送処理中を除く時期に前記ＣＰＵによりアクセスされ、少なくとも一つのコマンドを新規または変更して格納する前記コマンドリストを複数で有するコマンドリストテーブルと、
前記開始フラグの設定を受けた際、前記エネーブルフラグの設定されたコマンドリストが複数の場合には所定の順序で、一つのコマンドリストを選択してデータ転送処理中と設定し、選択されたコマンドリストから一つずつのコマンドを受け取ると共に、データ転送対象の記憶装置とアクセスし、受け取った前記コマンドに含まれる信号情報に基づいて転送元アドレスから転送先アドレスへのデータ転送を制御する制御手段と
を備えることを特徴とするデータ転送装置。
【請求項６】
請求項５に記載のデータ転送装置において、前記ＣＰＵのエネーブルフラグを設定する手段は、エネーブルフラグにその優先順位を加えて格納し、前記制御手段はこの優先順位を前記所定の順序とすることを特徴とするデータ転送装置。
【請求項７】
請求項５に記載のデータ転送装置において、前記コマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとの指定を有しており、前記制御手段は、受け取ったコマンドに基づいて、データ転送対象のアドレスを開始アドレスから連続して順次生成すると共に転送データ数を計数して転送データ数が前記転送サイズの指定数に達した際にデータ転送を終了することを特徴とするデータ転送装置。
【請求項８】
請求項５に記載のデータ転送装置において、ＤＭＡ制御装置として前記制御レジスタ、前記コマンドリストテーブル、及び前記制御手段を備え、前記制御レジスタおよび前記コマンドリストテーブルはコントロールバスを介して前記ＣＰＵとアクセスする一方、前記制御手段はメモリバスを介して主記憶装置とアクセスすることを特徴とするデータ転送装置。
【請求項９】
請求項５に記載のデータ転送装置において、前記コマンドリストテーブルは主記憶装置に格納される一方、データ転送装置は前記コマンドリストそれぞれの格納場所をポインタとして有するポインタリストを更に備え、
ＤＭＡ制御装置として前記制御レジスタ、前記ポインタリスト、及び前記制御手段を備え、かつ
前記制御レジスタ、前記ポインタリスト、および前記コマンドリストテーブルはコントロールバスを介して前記ＣＰＵとアクセスし、かつ
前記制御手段は、前記ＣＰＵからの前記開始フラグの設定によりメモリバスを介して前記主記憶装置とアクセスし、前記エネーブルフラグを設定された前記ポインタリストにおける対応ポインタの指定を受けて前記主記憶装置から対象となる一つのコマンドリストを選択して取得し、このコマンドリストに含まれるコマンドに基づいて所定のデータ転送を順次制御する
ことを特徴とするデータ転送装置。
【請求項１０】
請求項５に記載のデータ転送装置において、前記制御手段は、
前記開始フラグの設定により前記エネーブルフラグを設定された一つのコマンドリストから選択された一つのコマンドを受け取ると共に、データ転送対象の記憶装置とアクセスし、前記コマンドから受ける信号情報に基づいて転送元アドレスから転送先アドレスへのデータ転送を制御するアクセス制御部と、
開始フラグ及びエネーブルフラグの設定により前記コマンドリストから選択されたコマンドを受け取り、前記アクセス制御部と協同動作して受け取ったコマンドに基づきデータ転送用のアドレスを生成すると共にデータ転送数を照合してデータ転送の終了を通知する実行コマンド部と
を備えることを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばマイクロコンピュータ・システムのような情報処理システムで主記憶装置と主記憶装置及び周辺装置のうちの一つとの間でＣＰＵ（セントラル・プロセッサ・ユニット）の処理を介すことなしにデータの転送処理を直接行なうＤＭＡ（ダイレクト・メモリ・アクセス）制御のための方法及びその装置に関し、システム全体の処理能力の低下を回避できるデータ転送方法及びその装置に関するものである。
【背景技術】
【０００２】
従来のデータ転送装置及びその方法は、例えば特許文献１に開示されている。
【０００３】
このデータ転送装置は、例えば図７に示される機能ブロックにより示すことができる。
【０００４】
図示されるデータ転送装置では、マイクロコンピュータ・システムにおけるＣＰＵ１０１がまずＤＭＡ制御装置１０２に対してコマンドを、コントロールバス３を介して送る。このコマンドに基づいて、ＤＭＡ制御装置１０２がＣＰＵ１０１から開始フラグを受けた際にメモリバス４を介して主記憶装置５に直接アクセスし、主記憶装置５におけるデータ転送制御を行なっている。
【０００５】
特許文献１でＤＭＡＣと記載されるのは図７におけるＤＭＡ制御装置１０２である。また、専用レジスタ群と記載されるのはコマンドを格納するメモリ部分であり、例えば制御レジスタ１２１とコマンドリスト１２２における一つのコマンド１３１とに対応する。すなわち、コマンド１３１には、開始される転送元（ソース）開始アドレス及び転送先（デスティネイション）開始アドレス、終了する転送元（ソース）終了アドレス及び転送先（デスティネイション）終了アドレス、並びに開始から終了までのアドレス数であるデータの転送数が含まれている。
【０００６】
図示されるデータ転送装置は、ＣＰＵ１０１、ＤＭＡ制御装置１０２、コントロールバス３、メモリバス４、及び主記憶装置５から構成される。ＤＭＡ制御装置１０２は、制御レジスタ１２１、コマンドリスト１２２、アクセス制御部１２３、及びアドレス生成機能を有する実行コマンド部１２４から構成される。
【０００７】
制御レジスタ１２１は開始フラグ、ディセーブル（動作禁止）フラグなどを含み、各種フラグは、ＣＰＵ１０１からコントロールバス３を介して制御され、内部に保持される情報の読み書きが可能である。コマンドリスト１２２は一つだけでなく複数のコマンド１３Ｘを有することが可能であり、各コマンドは、ＣＰＵ１０１からコントロールバス３を介して制御され、内部に格納される情報の読み書きが可能である。
【０００８】
アクセス制御部１２３は、実行コマンド部１２４と協同動作してＤＭＡ制御装置１０２が主記憶装置５とアクセスするための各種の信号を生成し、データ転送を制御する。また、実行コマンド部１２４は、ＤＭＡ制御装置１０２が例えばコマンド１３１を実行する際にコマンド１３１を内部に移し替え、このコマンド１３１の実行中にディセーブルフラグによりディセーブル設定を受けた際には、このコマンド１３１の実行を中断することができる。この実行コマンド部１２４は、書き込まれたコマンドに従い主記憶装置５とアクセスするためのアドレスを生成する。
【０００９】
また、図８に示されるコマンドリスト１２２には三つのコマンド１３１〜１３３が格納され、コマンド１３１が転送元開始アドレス、転送元終了アドレス、転送先開始アドレス、転送先終了アドレス、及び転送数をそれぞれのレジスタに格納している。同様に、コマンド１３２、１３３としてそれぞれの各レジスタにも同様に各アドレスと転送数とが格納されている。
【００１０】
次に、図９に図７及び図８を併せ参照してＤＭＡ制御装置１０２の主要動作手順について説明する。
【００１１】
ＤＭＡ制御装置１０２は、コマンド１３１〜１３３それぞれにコマンドの格納があり、制御レジスタ１２１にＣＰＵ１０１から開始フラグのセットを受付け（手順Ｓ１０１）した際にはコマンドリスト１２２の最初のコマンド１３１を選択（手順Ｓ１０２）してコマンド１３１に含まれる転送元開始アドレス、転送元終了アドレス、転送先開始アドレス、転送先終了アドレス、および転送数を実行コマンド部１２４に設定（手順Ｓ１０３）する。次いで、実行コマンド部１２４は、設定されたコマンド１３１に含まれる転送元開始アドレスから転送先開始アドレスへのデータ転送（手順Ｓ１０４）を主記憶装置５にメモリバス４を介して指示し実行させる。
【００１２】
実行コマンド部１２４は、データ転送の終了により転送数を一つ減退（手順Ｓ１０５）させ、転送元開始アドレスおよび転送先開始アドレスを転送元終了アドレスおよび転送先終了アドレスのそれぞれと比較（手順Ｓ１０６）する。開始と終了とのアドレスが一致しない場合（手順Ｓ１０７がＮＯ）では、実行コマンド部１２４は、実行した転送元開始アドレスと転送先開始アドレスとのそれぞれを一つ増加（手順Ｓ１０８）させて次の順序の開始アドレスを生成し、この増進により更新された開始アドレスでデータ転送（手順Ｓ１０９）すると共に、設定された転送数を一つ減退させる上記手順１０５に戻り、手順を繰り返す。
【００１３】
上記手順Ｓ１０７が「ＹＥＳ」でデータ転送を実行した開始アドレスがコマンドの終了アドレスと一致した場合、連続アドレス部分のデータ転送が終了している。ここで、上記手順Ｓ１０５により減退された転送数が「０」に未達（手順Ｓ１１１のＮＯ）の場合、転送データが残っていることを示す。従って、実行コマンド部１２４は、次のコマンド１３２を選択（手順Ｓ１１２）し、このコマンドを取り込んで内部に設定する上記手順Ｓ１０３に戻り、その手順を繰り返す。
【００１４】
上記手順Ｓ１１１が「ＹＥＳ」で転送数が「０」の場合には全コマンドのデータ転送が終了（手順Ｓ１１３）したので、ＣＰＵにこれを通知する。全コマンドの実行が終了するとＤＭＡ制御装置１０２はメモリバス４を開放し、開始フラグを抹消して動作を停止する。
【００１５】
また、ディセーブルフラグの設定によるデータ転送の一時中止の場合には再起動できる。しかし、この一時中止の間でも、ＣＰＵ１０１はコマンドリスト１２２にアクセスできない。
【００１６】
すなわち、上述したＤＭＡ制御装置では、一つのコマンドリストしか存在しないため、この一つのコマンドリストに対して転送処理の実行が終了しないと次のコマンドの格納及びその処理ができないという問題がある。
【００１７】
例えばディジタル放送チューナなどの機器において、受信した番組情報または番組の映像データ若しくは音声データを主記憶装置上に展開するにあたり、ＣＰＵは一回のデータ転送ごとにＤＭＡ制御装置に対してコマンド設定をしなければならない。従って、ＣＰＵは、一回のデータ転送処理ごとにＤＭＡ制御装置によるデータ転送完了を待つ必要があるという可能性がある。更にＣＰＵは、ＤＭＡ制御装置に対するコマンド設定のための時間が必要なため、全体の処理能力を低下させる要因となってしまう。ＣＰＵが、受信するデータ量に対して十分に処理できる性能があれば問題は少ない。しかし、昨今の高画質化、高情報密度化によりＣＰＵの性能が追いつかないのが実情であり、このため、ＣＰＵ自体が高価になってしまうという問題点を有する。
【００１８】
また、受信したデータによってはＤＭＡ制御によるデータ転送処理の優先順位を変更する必要を生じることがある。この場合、ＣＰＵは、その変更のために転送開始までにデータの並び順を検討して、用意するコマンドリストの順番を変更しなければならない。そのため、今回のデータ転送処理と次のデータ転送処理との間に行う処理が増加して、システム全体の処理能力が低下してしまうという問題点を有する。
【特許文献１】特開２００３−５８４９１号公報（図１、図１０）
【発明の開示】
【発明が解決しようとする課題】
【００１９】
解決しようとする課題は、ＣＰＵからアクセスして格納するコマンドリストがＤＭＡ制御装置に一つしか存在しないため、ＤＭＡ制御装置がこの一つのコマンドリストに対して転送処理の実行を終了しないと、ＣＰＵは次のコマンドの格納及びその処理ができないことである。
【００２０】
従って、ＣＰＵは、一つのコマンドリストに一つのコマンドしかない場合のように、一回のデータ転送処理ごとにＤＭＡ制御装置によるデータ転送完了を待つ可能性がある。更にＣＰＵはＤＭＡ制御装置に対するコマンド設定のための時間が必要なため、多数のコマンドリスト処理が連続する場合、ＤＭＡ制御時間にその設定と解除との処理時間が加算され、全体の処理能力を低下させる要因となってしまう。
【００２１】
また、受信したデータによってはＤＭＡ制御によるデータ転送処理の優先順位を変更する必要を生じることがある。この処理のため、ＣＰＵは、データ転送開始までにデータの並び順を検討して、用意するコマンドリストの順番を変更しなければならない。そのため、今回のデータ転送処理と次のデータ転送処理との間に行う処理が上述する時間より更に増加して、システム全体の処理能力が低下してしまうという問題点が生じる。
【課題を解決するための手段】
【００２２】
本発明は、一つのＣＰＵから独立して所定のコマンドに基づいてＤＭＡ（ダイレクト・メモリ・アクセス）により記憶装置のデータを転送するＤＭＡ制御手段に関する。
【００２３】
すなわち、本発明は、システム全体の処理能力低下を回避するため、ＣＰＵが独立してアクセス可能な複数のコマンドリストを備えており、ＣＰＵはデータ転送処理中を除くコマンドリストにのみアクセス可能であり、コマンドが書き込まれた複数コマンドリストのうちの少なくとも一つに転送許可を与えると共にこの転送許可が複数に与えられた場合にはその転送許可に所定の順序を与えており、ＤＭＡ制御は、転送許可が与えられたうちから所定の順序により一つのコマンドリストを選択して「データ転送処理中」を設定すると共にこのコマンドリストに含まれるコマンドに基づいて順次データ転送することを主要な特徴としている。
【００２４】
この構成により、一つのコマンドリストのデータ転送処理中に、他のコマンドリストに対してＣＰＵがアクセス可能であり、データ転送処理中以外のコマンドリストにおけるＤＭＡ処理の追加、訂正、削除などが可能である。従って、一つのコマンドリストに対してデータ転送の処理が終了した際に、直ちに、所定の順序、例えばコマンドリストの配列順序、またはＣＰＵから指定された処理順序に従った次の順序のコマンドリストをデータ転送のために選択して休止期間なしで連続するデータ転送を実行することができる。
【００２５】
また、ここで採用されるコマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとを指定している。従って、転送元およびこの転送先の開始アドレスから上記転送サイズに示されるデータ数に対応するアドレスまでのデータが転送される。この構成により、コマンドでのメモリ容量を最小に設定することができる。
【００２６】
また、コマンドリストを主記憶装置に備え、ＣＰＵから受けた転送許可にしたがって主記憶装置にアクセスし、転送許可されたコマンドリストから取り出したコマンドに基づいて順次データ転送することができる。この構成により、ＤＭＡ制御装置の大きさを縮小できると共にコマンドリストのデータ格納容量を主記憶装置で増加させることができる。
【００２７】
具体的な構成では、ＣＰＵは、データ転送処理中以外の一つのコマンドリストに対してコマンドリストに転送許可のエネーブルフラグを設定すると共に少なくとも一つのコマンドを新規または変更して格納する手段と、このコマンドにしたがったデータ転送を開始させる開始フラグを設定する手段とを備える。更に、ＣＰＵは、複数のエネーブルフラグに対して所定の順序として優先順位を設定してもよい。優先順位の設定により、一旦設定された優先順位をＣＰＵから適宜変更することができる。
【００２８】
また、データ転送装置は制御レジスタとコマンドリストテーブルとその制御手段とにより構成され、この制御手段は例えばアクセス制御部と実行コマンド部とにより構成される。
【００２９】
制御レジスタは、データ転送処理中以外の少なくとも一つのコマンドリストに対して、ＣＰＵによりコマンドリストそれぞれに対応して転送許可を示すエネーブルフラグとデータ転送開始を要求する開始フラグとが設定される。コマンドリストテーブルは、データ転送処理中以外の時期にＣＰＵによりアクセス可能であり、少なくとも一つのコマンドを新規または変更して格納する複数のコマンドリストを有する。
【００３０】
制御手段では、アクセス制御部が、開始フラグの設定を受けた際、データ転送対象の主記憶装置とアクセスして、実行コマンド部から受ける信号情報に基づき転送元アドレスから転送先アドレスへのデータ転送を制御する。実行コマンド部は、開始フラグの設定またはアクセス制御部からの駆動、及びエネーブルフラグの設定されたコマンドリストが複数の場合には所定の順序で、一つのコマンドリストを選択してデータ転送処理中と設定し、選択されたコマンドリストに含まれるコマンドを受け取り、アクセス制御部と協同動作して受け取ったコマンドに基づきデータ転送用のアドレスを開始アドレスとして生成すると共にデータ転送数を照合してデータ転送の終了を通知する。
【発明の効果】
【００３１】
本発明のデータ転送方法およびその装置は、データ転送のためＤＭＡを実行する複数のコマンドリストを備え、そのうちの一つのコマンドリストを所定の順序で選択してデータ転送処理中と設定し、データの転送を許可している。このデータ転送実行中では、残るコマンドリストに対するコマンドおよびそのエネーブルフラグはＣＰＵにより自由にアクセスできるので、ＤＭＡ制御によるデータ転送処理の優先順位変更などが可能である。したがって、データ転送実行直後に次の順序のコマンドリストを選択してＤＭＡ制御によるデータ転送が可能である。このため、ＤＭＡ制御によるデータ転送が休止期間なしで連続して可能であり、システム全体の処理能力を上げるという効果がある。
【発明を実施するための最良の形態】
【００３２】
システム全体の処理能力を上げるという目的を、データ転送のためＤＭＡを実行する複数のコマンドリストを備え、そのうちの一つのコマンドリストを選択しデータ転送処理中に設定してデータの転送を許可し、このデータ転送処理の実行中では、残るコマンドリストにＣＰＵが自由にアクセスすることにより、コマンドリストにおけるコマンド内容および選択順序を新規設定または変更することにより実現した。すなわち、データ転送を実行した直後に次の順序のコマンドリストを選択してＤＭＡ制御による連続したデータ転送が可能である。
【実施例１】
【００３３】
本発明の実施の一形態について図１を参照して説明する。
【００３４】
図１は、本発明によるデータ転送装置のブロック構成図であって、ＣＰＵ１、ＤＭＡ制御装置２、コントロールバス３、メモリバス４、および主記憶装置５により構成される。ＤＭＡ制御装置２は、制御レジスタ２１、コマンドリストテーブル２２、アクセス制御部２３、およびアドレス生成の実行コマンド部２４により構成される。アクセス制御部２３および実行コマンド部２４は、上述した制御手段を形成し、ＣＰＵ１から受けた情報に基づいてＣＰＵ１の制御を受けることなく、主記憶装置５との直接メモリアクセスを制御する。
【００３５】
図１が上述した従来の装置と相違する点は、複数のコマンドリスト３１〜３ｎをコマンドリストテーブル２２として有し、制御手段が実行対象のコマンドを取得してＤＭＡを実行することである。
【００３６】
このため、制御レジスタ２１は開始フラグ１０と優先順位を付与されたエネーブル（動作許可）フラグ１１〜１ｎとを含み、各フラグはＣＰＵ１からコントロールバス３を介して内部に保持される情報の読み書きが可能である。図面上では「エネーブルフラグ・順位」と示されているが、優先順位が付与されたエネーブルフラグを意味しており、今後、特に限定する場合以外は「エネーブルフラグ」とのみ呼称する。エネーブルフラグはコマンドリストにコマンドが書き込まれた際にその優先順位番号と共に例えばフラグ「１」を立てる。しかし、コマンドが書き込まれたコマンドリストでも、エネーブルフラグに優先順位を付与されたフラグ「１」が立っていなければ格納されているコマンドは実行されない。
【００３７】
例えば初期状態のように、すべてのエネーブルフラグ１１〜１ｎにコマンドの格納がなくフラグ「０」が立っている場合、優先順位にしたがって、コマンドがエネーブルフラグ１１から順次格納されフラグ「１」が立てられることとしている。図１では、エネーブルフラグ１２に対応する処理の実行中に最優先のコマンドがコマンドリスト３１に書き込まれた状態を示す。
【００３８】
コマンドリストテーブル２２はコマンドリスト３１〜３ｎを含み、それぞれのコマンドリスト３１〜３ｎはＣＰＵ１からコントロールバス３を介して内部に格納されるコマンド情報の読み書きが可能である。コマンドリストは一つの実行単位であり、コマンドリスト内に含むコマンドにしたがってデータ転送処理が逐次実行される。この実施の形態において優先順位は、ＣＰＵ１からの指定がなければ、例えばエネーブルフラグ１１〜１ｎの格納順序としている。
【００３９】
また、本実施の形態では、優先順位は「１」からの番号順とし、データ転送処理のために選択された際には、設定されている優先順位を「−１」演算するものとする。したがって、優先順位「１」は次に選択する最優先順位であり、優先順位「０」の設定は「データ転送処理中」を意味するものとする。また、優先順位「０」を付与されているエネーブルフラグ以外はＣＰＵ１からのアクセスにより優先順位の変更が可能である。
【００４０】
ここでは、最優先順位を常に優先順位「１」として説明したが、正の整数による最小数字番号を最優先順位としてもよい。この結果、付与された全ての優先順位を「−１」演算する処理が省かれる。
【００４１】
アクセス制御部２３はＤＭＡ制御装置２が主記憶装置５をアクセスするための各種の信号を生成する回路であり、開始フラグ１０により起動されて例えばエネーブルフラグ１１を選択し、コマンドリストテーブル２２から対応するコマンドリスト３１のコマンド情報を実行コマンド部２４Ａに取り込む。実行コマンド部２４はコマンドリスト３１から取り込まれたコマンドに従い主記憶装置５をアクセスするためのアドレスを生成し、転送データ数を計測する回路である。
【００４２】
このような構成により、一つのコマンドリストのデータ転送処理中に、他のコマンドリストに対してＣＰＵがアクセス可能であり、コマンドリストにおけるＤＭＡ処理の追加、訂正、削除などが可能である。従って、一つのコマンドリストに対してデータ転送の処理が終了した際に、直ちに、所定の順序、例えば許可が与えられている次に続く順番のコマンドリストをデータ転送のために選択することができる。
【００４３】
また、ここで採用されるコマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとを指定している。従って、転送元およびこの転送先の開始アドレスから上記転送サイズに示されるデータ数に対応するアドレスまでのデータが転送される。この構成により、コマンドのメモリ容量を最小に設定することができる。
【００４４】
次に、図２を参照してコマンドリストテーブル２２に格納されるコマンドリスト３１〜３ｎの詳細について説明する。
【００４５】
上述したように、コマンドリスト３１〜３ｎそれぞれはデータ転送処理の実行単位であり、それぞれに含まれるコマンドは、例えば一連の転送データが記憶領域で分割されて転送・格納されるために用意されている。したがって、それぞれのコマンドリストに含まれるコマンドは一つのみの場合も多数の場合もある。
【００４６】
図示されるコマンドリスト３１にはＤＭＡ制御装置２の動作を指示するコマンド３１１〜３１３が格納されている。ここでは三つのコマンドで説明するが、コマンドリスト２Ｘの大きさにより格納されるコマンド数は任意の正の整数である。コマンドリスト３２〜３ｎも同様である。図２ではコマンドリスト３３に一つのコマンド３３１が格納されている。
【００４７】
図示されるコマンド３１１〜３１３は、それぞれ転送元開始アドレス、転送先開始アドレスおよび転送サイズの三つの情報からなり、一つのデータ転送に必要な情報である。ここでは「０ｘ」で始まる値は１６進数であることを示す。転送サイズは負の値を設定することが可能であり、この場合、データ転送時のアドレスは一つずつ減退されることを示す。
【００４８】
例えば、図示されるコマンド３１１には、１６進数による転送元開始アドレス「ａ００００」と転送先開始アドレス「ａ８０００」と転送先サイズ「１００」とが格納されている。また、コマンド３１３には、１６進数による転送元開始アドレス「ｂ００００」と転送先開始アドレス「８００００」と転送先サイズ「−８０」とが格納されている。
【００４９】
次に、図３に図１を併せ参照してＤＭＡ制御に関する概略手順について説明する。
【００５０】
まず、ＣＰＵ１がＤＭＡ制御装置２のコマンドリストテーブル２２内のコマンドリスト３１からコマンドリスト３ｎまでに対してデータ転送に必要なコマンドを格納（手順Ｓ１のＹＥＳ）し、コマンドを格納した例えば、コマンドリスト３１，３３に対応して制御レジスタ２１に動作許可を示しその優先順位「１，２」それぞれが付与されたエネーブルフラグ１１，１３を設定（手順Ｓ２のＹＥＳ）する。その後、ＣＰＵ１が開始フラグ１０を制御レジスタ２１に設定（手順Ｓ３のＹＥＳ）することにより、ＤＭＡ制御装置２は、開始フラグの設定を受付け（手順Ｓ４）し、設定された最初の順位、この例では優先順位「１」のエネーブルフラグ１１を選択（手順Ｓ５）する。
【００５１】
ＤＭＡ制御装置２は、この手順Ｓ５でエネーブルフラグ１１を選択した際にはエネーブルフラグ１１，１３の優先順位「１，２」を優先順位「０，１」に更新設定（手順Ｓ６）し、エネーブルフラグ１１に対してデータ転送処理中を設定する。上述したように、優先順位の更新を選択されたフラグに対してのみ優先順位「０」に更新した際には、上記優先順位は「０，２」とすることができる。この場合、最優先順位は最若番「２」を有するエネーブルフラグに与えられることになる。
【００５２】
次いで、ＤＭＡ制御装置２は、後で図４を参照して説明するように、選択されたエネーブルフラグ１１に対応するコマンドリスト３１のコマンド内容に従って主記憶装置５内に格納されている指定されたデータの転送（手順Ｓ７）を制御する。
【００５３】
ＤＭＡ制御装置２は一つのコマンドリスト３１によるデータ転送を完了したタイミングでそのエネーブルフラグ１１を優先順位「０」と共に抹消（手順Ｓ８）する。この時点で、動作許可状態の例えばエネーブルフラグ１３、すなわち既に動作許可が設定ざれたコマンドリスト３３があり（手順Ｓ９のＹＥＳ）なので、ＤＭＡ制御装置２は、次の優先順位「１」に設定されているこのエネーブルフラグ１３を選択（手順Ｓ１０）してその優先順位「１」を優先順位「０」に更新する上記手順Ｓ６に戻り、手順を繰り返す。
【００５４】
上記手順Ｓ９が「ＮＯ」で動作許可状態であった各コマンドリストに関して全ての転送処理が終了、すなわち設定ざれたエネーブルフラグが全くない場合、ＤＭＡ制御装置２は開始フラグ１０を抹消（手順Ｓ１１）してＤＭＡ制御装置２自身の動作を停止する。
【００５５】
次に、図４に図１及び図２を併せ参照して上記手順Ｓ６のＤＭＡ制御装置２によるデータ転送手順について詳細に説明する。ここでは図２に示されるように、コマンドリスト３１、３３にコマンド３１１〜３１３および３３１それぞれが格納され、制御レジスタ２１にエネーブルフラグ１１、１３が設定されているものとする。
【００５６】
ＤＭＡ制御装置２は、上記手順Ｓ５で制御レジスタ２１に開始フラグ１０の設定を受付けした際にアクセス制御部２３を駆動し、最初の優先順位「１」に設定されたエネーブルフラグ１１を選択して対応するコマンドリスト３１の最初のコマンド３１１を選択（手順Ｓ２０）する。選択されたコマンド３１１はアクセス制御部２３により実行コマンド部２４に移し替えされ、転送元および転送先それぞれの開始アドレスと転送サイズとが設定（手順Ｓ２１）される。
【００５７】
以降の手順はアクセス制御部２３と実行コマンド部２４とにより構成される制御手段により実行可能であり、ＤＭＡ制御装置２におけるデータ転送は、実行コマンド部２４のコマンド情報に基づきアクセス制御部２３により実行される。
【００５８】
この状態で、制御レジスタ２１及びコマンドリストテーブル２２にＣＰＵ１からのアクセスが可能となる。すなわち、ＣＰＵ１は、制御レジスタ２１においてデータ転送処理中の優先順位「０」を付与されたエネーブルフラグに対応するコマンドリストテーブル２２内のコマンドリスト以外にアクセスできる。
【００５９】
上記手順Ｓ２１に続き、アクセス制御部２３は実行コマンド部２４のコマンド情報、すなわち開始アドレス情報に基づき転送元開始アドレス「ａ００００」番地から２５６バイト分のデータを転送先開始アドレス「ａ８０００」番地へ転送（手順Ｓ２２）する。このデータ転送により実行コマンド部２４の転送サイズ「１００」は一つ減退（手順Ｓ２３）し「０ｆｆ」となる。
【００６０】
この転送サイズは「０」ではない（手順Ｓ２４のＮＯ）ので、実行コマンド部２４ではコマンド情報のうち転送元および転送先それぞれの開始アドレスを一つ増進（手順Ｓ２５）して新しい転送元開始アドレス「ａ０００１」番地及び転送先開始アドレス「ａ８００１」番地が生成される。アクセス制御部２３はこの新しく生成された開始アドレス情報に基づき転送元開始アドレス「ａ０００１」番地から２５６バイト分のデータを転送先開始アドレス「ａ８００１」番地へ転送（手順Ｓ２６）して転送サイズを一つ減退させる上記手順Ｓ２３に戻る。以降の手順は、上記手順Ｓ２４での転送サイズが「０」になるまで、この例では「２５６」回のデータ転送を繰り返す。
【００６１】
上記手順Ｓ２４が「ＹＥＳ」で転送サイズが「０」になった際には、コマンド３１１に対応するデータ転送が終了（手順Ｓ２７）する。ここで、処理中のコマンドリスト３１内のコマンド３１２が残存（手順Ｓ２８のＮＯ）するので、手順は、このコマンド３１２を選択（手順Ｓ２９）して上記手順Ｓ２１に戻り、繰り返えされる。
【００６２】
すなわち、次のコマンド３１２を参照し、転送元開始アドレス「ａ８０００」から転送先開始アドレス「ｂ００００」へ１２８バイトの転送を実行する。すなわち、「ａ８０００」番地に格納されたデータを「ｂ００００」番地に転送し、次に「ａ８００１」番地に格納されたデータを「ｂ０００１」番地に格納し、以下順次アドレスを一つずつ増進させつつ、転送サイズのデータ数が「２５６」になるまでデータ転送を繰り返す。
【００６３】
更に、次にコマンド３１３を参照し、転送元開始アドレス「ｂ００００」から転送先開始アドレス「８００００」へ１２８バイトの転送を実行する。ここでは転送サイズの値が負になっているので、転送方向が逆になる。すなわち、「ｂ００００」番地に格納されたデータを「８００００」番地に転送し、次に「ａｆｆｆｆ」番地に格納されたデータを「７ｆｆｆｆ」番地に格納し、以下順次アドレスを一つずつ減退させつつ、転送サイズのデータ数が「１２８」になるまでデータ転送を繰り返す。ここまででコマンドリスト３１のコマンド処理が全て完了したので、コマンドリスト３１の処理は完了である。
【００６４】
すなわち、これは上記手順Ｓ２８が「ＹＥＳ」で全コマンドの処理が終了した場合であり、手順はこの転送終了コマンドリストに対応するエネーブルフラグを抹消する図３における手順Ｓ７に続く。
【００６５】
このように、ＤＭＡ制御装置２では、ＣＰＵ１から受けた複数のコマンドリストから選択した一つのコマンドリストに基づいてＣＰＵ１とは独立し、制御手段が主記憶装置に直接アクセスしてデータ転送するという形態を採用したので、選択した一つのコマンドリストに従ってデータ転送した後、休止時間なしで他の動作可能なコマンドリストを選択してデータ転送できる。従って、システム全体の処理能力低下を回避することができる。
【００６６】
上記説明では、制御手段をアクセス制御部２３および実行コマンド部２４に機能分担させて説明したが、他の機能ブロックも含め、機能の分離併合は上記機能を満たす限り自由であり、上記説明が本発明を限定するものではない。同様に、例えばデータ転送の計数において、転送サイズをコマンドの転送数としてデータ転送ごとに一つずつ減退させて「０」に達するまでとしているが、データ転送数を一つずつ増進計測して計数値が上記転送サイズの数値と一致するまでとしてもよいなど、機能実行手段におけるこのような変更は上記機能を満たす限り自由であり、上記説明が本発明を限定するものではない。
【実施例２】
【００６７】
本発明における別の実施の一形態について図５を参照して説明する。
【００６８】
図５は、本発明によるデータ転送装置のブロック構成図であって、ＣＰＵ１、ＤＭＡ制御装置２Ａ、コントロールバス３、メモリバス４、および主記憶装置５Ａにより構成される。ＤＭＡ制御装置２Ａは、制御レジスタ２１、ポインタリスト２５、アクセス制御部２３Ａ、およびアドレス生成の実行コマンド部２４Ａにより構成される。主記憶装置５Ａにはコマンドリストテーブル２２が格納されている。アクセス制御部２３Ａおよび実行コマンド部２４Ａは、上述した制御手段を形成し、ＣＰＵ１から受けた情報に基づいてＣＰＵ１の制御を受けることなく、主記憶装置５Ａとの直接メモリアクセスを制御する。
【００６９】
図５と図１との相違は、ＤＭＡ制御装置２Ａ、アクセス制御部２３Ａ、実行コマンド部２４Ａ、および主記憶装置５Ａにあり、コマンドリストテーブル２２が主記憶装置５Ａに格納される一方、コマンドリストテーブル２２に代わるポインタリスト２５がＤＭＡ制御装置２Ａに新に追加されている。
【００７０】
図１と同一機能のブロックには同一の名称および番号符号を付与してその説明は省略する。
【００７１】
ポインタリスト２５はコマンドリスト３１〜３ｎそれぞれに対応するポインタ４１〜４ｎを含み、ポインタ４１〜４ｎそれぞれには主記憶装置５Ａに格納されるコマンドリスト３１〜３ｎそれぞれの番地が格納されている。コマンドリスト３１〜３ｎおよびポインタ４１〜４ｎそれぞれは、ＣＰＵ１からコントロールバス３を介して内部に格納される情報の読み書きが可能である。
【００７２】
アクセス制御部２３Ａは、ＤＭＡ制御装置２Ａが主記憶装置５Ａをアクセスするための各種の信号を生成する回路であり、開始フラグ１０により起動されて例えばエネーブルフラグ１１を選択し、対応するポインタ４１にしたがって主記憶装置５Ａからコマンドリスト３１のコマンド情報を実行コマンド部２４Ａに取り込む。実行コマンド部２４は取り込まれたコマンドに従い主記憶装置５Ａをアクセスするためのアドレスを開始アドレスとして生成し転送データ数をチェックする回路である。
【００７３】
このような構成により、ＤＭＡ制御装置の機能処理時間は少々増大するが、多数のコマンドリストが大きなメモリ容量を有する主記憶装置に格納される一方、ＤＭＡ制御装置ではコマンドリストのポインタのみを格納すればよいのでＤＭＡ制御装置でのメモリ領域は小さくて済む。また、この処理のための時間は増加するが、上述した実施例１と同様の機能及び効果を発揮することができる。
【００７４】
したがって、上記図３で説明したＤＭＡ制御に関する概略手順については、図３の中での「コマンドリスト」を「ポインタ」に読み替えることでよい。
【００７５】
次に、図５に図１及び図２を併せ参照して上記手順Ｓ６に対応するＤＭＡ制御装置２Ａによるデータ転送手順について詳細に説明する。
【００７６】
ＤＭＡ制御装置２Ａは、上記手順Ｓ５で制御レジスタ２１に開始フラグ１０の設定を受付けした際にアクセス制御部２３Ａを駆動する。アクセス制御部２３Ａは、例えば設定された最初のエネーブルフラグ１１を選択し、対応するポインタ４１にしたがった主記憶装置５Ａのコマンドリスト３１を選択して実行コマンド部２４に移し替え取得（手順Ｓ４０）する。
【００７７】
以降の手順はアクセス制御部２３Ａと実行コマンド部２４Ａとの制御手段により実行可能であり、この状態で、制御レジスタ２１及びコマンドリストテーブル２２に、ＣＰＵ１からのアクセスが可能となる。従って、ＤＭＡ制御装置２Ａにおけるデータ転送は、実行コマンド部２４Ａのコマンド情報に基づきアクセス制御部２３Ａにより実行される。
【００７８】
すなわち、上記手順Ｓ４０に続き、アクセス制御部２３Ａは、取得したコマンドリスト３１から最初のコマンド３１１を選択（手順Ｓ４１）し、実行コマンド部２４Ａに、転送元および転送先それぞれの開始アドレスと転送サイズとを設定（手順Ｓ４２）する。
【００７９】
次いで、アクセス制御部２３Ａは実行コマンド部２４Ａのコマンド情報、すなわち開始アドレス情報に基づき転送元開始アドレス「ａ００００」番地から２５６バイト分のデータを転送先開始アドレス「ａ８０００」番地へ転送（手順Ｓ４３）する。このデータ転送により実行コマンド部２４の転送サイズ「１００」は一つ減退（手順Ｓ４４）し「０ｆｆ」となる。
【００８０】
この転送サイズは「０」ではない（手順Ｓ４５のＮＯ）ので、実行コマンド部２４Ａではコマンド情報のうち転送元および転送先それぞれの開始アドレスを一つ増進（手順Ｓ４６）して新しい転送元開始アドレス「ａ０００１」番地及び転送先開始アドレス「ａ８００１」番地が生成される。アクセス制御部２３Ａはこの新しく生成された開始アドレス情報に基づき転送元開始アドレス「ａ０００１」番地から２５６バイト分のデータを転送先開始アドレス「ａ８００１」番地へ転送（手順Ｓ４７）して転送サイズを一つ減退させる上記手順Ｓ４４に戻る。以降の手順は、上記手順Ｓ４５での転送サイズが「０」になるまで、この例では「２５６」回のデータ転送を繰り返す。
【００８１】
上記手順Ｓ４５が「ＹＥＳ」で転送サイズが「０」になった際には、コマンド３１１に対応するデータ転送が終了（手順Ｓ４８）する。ここで、処理中のコマンドリスト３１内のコマンド３１２が残存（手順Ｓ４９のＮＯ）するので、手順は、次のコマンド３１２を選択（手順Ｓ５０）して上記手順Ｓ４２に戻り、繰り返えされる。
【産業上の利用可能性】
【００８２】
複数のコマンドリストの一つを用いてＣＰＵとは独立して直接メモリアクセス制御することによって、ＣＰＵが他のコマンドリストにアクセスできるので、ＣＰＵとは独立して直接アクセス制御する際にシステム全体の効率化を図る用途に適用できる。
【図面の簡単な説明】
【００８３】
【図１】本発明のデータ転送装置における機能ブロックの実施の一形態を示した図である。（実施例１）
【図２】本発明のデータ転送装置におけるコマンドリストテーブルの実施の一形態を示した図である。（実施例１、２共通）
【図３】本発明のデータ転送装置におけるＤＭＡ制御に関する概略手順の実施の一形態を示したフローチャートである。（実施例１）
【図４】図１に示されたデータ転送装置におけるＤＭＡ制御装置に関する主要手順の実施の一形態を示したフローチャートである。（実施例１）
【図５】本発明による図１とは異なるデータ転送装置における機能ブロックの実施の一形態を示した図である。（実施例２）
【図６】図５に示されたデータ転送装置におけるＤＭＡ制御装置に関する主要手順の実施の一形態を示したフローチャートである。（実施例２）
【図７】従来のデータ転送装置における機能ブロックの一例を示した図である。
【図８】図７に示されたデータ転送装置におけるコマンドリストテーブルの一例を示した図である。
【図９】図７に示されたデータ転送装置におけるＤＭＡ制御装置に関する主要手順の一例を示したフローチャートである。
【符号の説明】
【００８４】
１    ＣＰＵ
２、２Ａ    ＤＭＡ制御装置
３    コントロールバス
４    メモリバス
５、５Ａ    主記憶装置
１０    開始フラグ
１１、１３、１ｎ    エネーブルフラグ
２１    制御レジスタ
２２    コマンドリストテーブル
２３、２３Ａ    アクセス制御部
２４、２４Ａ    実行コマンド部
２５    ポインタリスト
３１、３３、３ｎ    コマンドリスト
４１、４３    ポインタ
３１１、３１２、３１３、３２１、３３１    コマンド
【図１】
2005157717.tif 000003
【図２】
2005157717.tif 000004
【図３】
2005157717.tif 000005
【図４】
2005157717.tif 000006
【図５】
2005157717.tif 000007
【図６】
2005157717.tif 000008
【図７】
2005157717.tif 000009
【図８】
2005157717.tif 000010
【図９】
2005157717.tif 000011