(57)【要約】【課題】複数のモジュールを搭載する組込み機器において、複数のモジュールの初期化処理などの順序関係を有する複数のデータ設定処理をマスタプロセッサに負担をかけることなく、処理を高速化するデータ転送装置を提供する。【解決手段】マスタプロセッサからのデータ設定指令あるいはシステム内のステータスの変化を起点として、予め設定された複数のデータ設定間の実行順序情報を含むデータ設定設定情報をもとに、処理シーケンサが複数ＤＭＡにデータ設定を並列処理させる。【選択図】図２
2006134025.tif 000002
【特許請求の範囲】
【請求項１】
マスタプロセッサからの指定を受けて、少なくとも２つ以上の複数のＤＭＡコントローラを制御するデータ設定装置であって、複数のデータ設定間の実行順序の情報を含む前記複数のＤＭＡコントローラのいずれかに実行させるべきデータ設定コマンドをならべて構成されるデータ設定コマンド列を所定の記憶手段から取得するデータ設定コマンド列取得手段と、データ設定コマンド列アクセス手段により取得したデータ設定コマンド列に従った順序でデータ設定コマンド列内のデータ設定コマンドを逐次、当該データ設定コマンドを実行し得るＤＭＡコントローラに実行開始させる実行制御手段とを備え、前記実行制御手段は、一のＤＭＡコントローラに一のデータ設定コマンドを実行させている間において、データ設定間の実行順序に従いながら、後続のデータ設定コマンドを他のＤＭＡコントローラに実行させる並列実行制御手段を含むことを特徴とするデータ設定装置。
【請求項２】
マスタプロセッサとは独立して、少なくとも２つ以上の複数のＤＭＡコントローラを制御するデータ設定装置であって、複数のデータ設定間の実行順序の情報を含む前記複数のＤＭＡコントローラのいずれかに実行させるべきデータ設定コマンドをならべて構成されるデータ設定コマンド列を所定の記憶手段から取得するデータ設定コマンド列取得手段と、データ設定コマンド列取得手段により受け付けられた指定に係るデータ設定コマンド列に従った順序でデータ設定コマンド列内のデータ設定コマンドを逐次、前記データ設定コマンドを実行し得るＤＭＡコントローラに実行開始させる実行制御手段とを備え、前記実行制御手段は、一のＤＭＡコントローラに一のデータ設定コマンドを実行させている間において、データ設定間の実行順序に従いながら、後続のデータ設定コマンドを他のＤＭＡコントローラに実行させる並列実行制御手段を含むことを特徴とするデータ設定装置。
【請求項３】
前記データ設定コマンドは複数のデータ設定間の実行順序の情報として、一のデータ設定コマンド実行に先立ち他の指定された複数のデータ設定コマンドの全てが終了することを実行開始条件とすることを特徴とする請求項１または２記載のデータ設定装置。
【請求項４】
請求項１または請求項２に記載のデータ設定コマンドは複数のデータ設定間の実行順序の情報として、一のデータ設定コマンド実行に先立ち他の指定された複数のデータ設定コマンドのうちで指定された個数のデータ設定コマンドが終了することを実行開始条件とすることを特徴とする請求項１または２記載のデータ設定装置。
【請求項５】
請求項１から４のいずれか１項記載のデータ設定コマンドはデータ設定のほかにコマンド内のアドレスで示された記憶領域への読み出しを行い、読み出した値の全てあるいは一部が期待値と一致するまで繰り返し記憶領域の読み出しと比較を繰り返すレジスタ値ポーリングコマンドを含むことを特徴とする請求項１から４のいずれか１項記載のデータ設定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに並列処理させるデータ設定装置に関する。
【背景技術】
【０００２】
特許文献１で示されるように、マスタプロセッサから受け取った複数のコマンド列に対応する処理をスレーブプロセッサ、ＤＭＡコントローラ等の回路に行わせる際に、各回路の稼働率を上げるための制御を行う制御機構を含む回路群制御システムが提案されており、図１に示すように、マスタプロセッサからＤＭＡコントローラ用のＲｅａｄＤＭＡコマンド、スレーブプロセッサ用のＳＰｓｔａｒｔコマンド等が順にならんで構成されるコマンド列Ａ０及びＡ１の指定を受けた場合に、回路群制御システムは、コマンド列Ａ０中のＲｅａｄＤＭＡコマンドをＤＭＡコントローラに実行させた後にコマンド列Ａ０中のＳＰｓｔａｒｔコマンドをスレーブプロセッサに実行させ、この時点でＤＭＡコントローラが非稼働状態になったことを検知しコマンド列Ａ１中のＲｅａｄＤＭＡコマンドが実行可能であると判定してそのＲｅａｄＤＭＡコマンドをＤＭＡコントローラに実行させ、両コマンド列の並列実行を行う、というものである。
【特許文献１】特開２００３−２０８４１２号公報（第１−４５頁、第１２図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記従来の構成では、同一コマンド列内に設定されたデータ設定の間では実行順序を保つことができるものの、異なるコマンド列に設定されたデータ設定の間での実行順序を制御する仕組みがないため、例えばシステム起動時の複数モジュールに対する初期化処理などの順序関係を有する複数のデータ設定を行おうとした場合に、せっかくデータ設定の並列処理を行うために複数のＤＭＡコントローラ等の回路を搭載していても活かすことができず、結局一つのＤＭＡコントローラ等の回路に逐次的にデータ設定処理を行わせることしかできず、処理の高速化が図れないという課題を有する。
【０００４】
本発明は、前記従来の課題を解決するもので、実行順序を有する複数のデータ設定を高速に処理することを目的としたデータ設定装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するための手段として本発明は、マスタプロセッサからの指定を受けて、少なくとも２つ以上の複数のＤＭＡコントローラを制御するデータ設定装置であって、複数のデータ設定間の実行順序の情報を含む前記複数のＤＭＡコントローラのいずれかに実行させるべきデータ設定コマンドをならべて構成されるデータ設定コマンド列を所定の記憶手段から取得するデータ設定コマンド列取得手段と、データ設定コマンド列アクセス手段により取得したデータ設定コマンド列に従った順序でデータ設定コマンド列内のデータ設定コマンドを逐次、当該データ設定コマンドを実行し得るＤＭＡコントローラに実行開始させる実行制御手段とを備え、前記実行制御手段は、一のＤＭＡコントローラに一のデータ設定コマンドを実行させている間において、データ設定間の実行順序に従いながら、後続のデータ設定コマンドを他のＤＭＡコントローラに実行させる並列実行制御手段を含むことを特徴とするデータ設定装置を提供する。
【０００６】
本構成によって、データ設定装置は実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに処理させることができ複数のデータ設定処理の高速化を実現できる。
【０００７】
また、上記の課題を解決するための手段として本発明は、マスタプロセッサとは独立して、少なくとも２つ以上の複数のＤＭＡコントローラを制御するデータ設定装置であって、複数のデータ設定間の実行順序の情報を含む前記複数のＤＭＡコントローラのいずれかに実行させるべきデータ設定コマンドをならべて構成されるデータ設定コマンド列を所定の記憶手段から取得するデータ設定コマンド列取得手段と、データ設定コマンド列取得手段により受け付けられた指定に係るデータ設定コマンド列に従った順序でデータ設定コマンド列内のデータ設定コマンドを逐次、前記データ設定コマンドを実行し得るＤＭＡコントローラに実行開始させる実行制御手段とを備え、前記実行制御手段は、一のＤＭＡコントローラに一のデータ設定コマンドを実行させている間において、データ設定間の実行順序に従いながら、後続のデータ設定コマンドを他のＤＭＡコントローラに実行させる並列実行制御手段を含むことを特徴とするデータ設定装置を提供する。
【０００８】
本構成によって、データ設定装置はマスタプロセッサと独立に実行順序を有する複数のデータ設定処理を高速化でき、とくにシステム起動時の複数モジュールの初期化処理において起動時間を短縮することができる。
【０００９】
また、上記の課題を解決するための手段として本発明は、前記データ設定コマンドは複数のデータ設定間の実行順序の情報として、一のデータ設定コマンド実行に先立ち他の指定された複数のデータ設定コマンドの全てが終了することを実行開始条件とすることを特徴とする請求項１または２記載のデータ設定装置を提供する。
【００１０】
本構成によって、データ設定装置は処理開始条件として指定された複数のデータ設定の全処理の終了後にデータ設定処理を開始することにより、マスタプロセッサに複数のデータ設定間の実行順序の制御をさせることなくデータ設定を高速化することができる。
【００１１】
また、上記の課題を解決するための手段として本発明は、請求項１または請求項２に記載のデータ設定コマンドは複数のデータ設定間の実行順序の情報として、一のデータ設定コマンド実行に先立ち他の指定された複数のデータ設定コマンドのうちで指定された個数のデータ設定コマンドが終了することを実行開始条件とすることを特徴とする請求項１または２記載のデータ設定装置を提供する。
【００１２】
本構成によって、データ設定装置は処理開始条件として指定された複数のデータ設定のうちで指定された個数のデータ設定処理の終了後にデータ設定処理を開始することにより、マスタプロセッサに複数のデータ設定間の実行順序の制御をさせることなくデータ設定を高速化することができる。
【００１３】
また、上記の課題を解決するための手段として本発明は、請求項１から４のいずれか１項記載のデータ設定コマンドはデータ設定のほかにコマンド内のアドレスで示された記憶領域への読み出しを行い、読み出した値の全てあるいは一部が期待値と一致するまで繰り返し記憶領域の読み出しと比較を繰り返すレジスタ値ポーリングコマンドを含むことを特徴とするデータ設定装置を提供する。
【００１４】
本構成によって、マスタプロセッサや他のモジュールからコマンド内のアドレスで示された記憶領域の値を制御されることにより、データ設定装置はマスタプロセッサや他のモジュールと連携してデータ設定を行うことができる。
【発明の効果】
【００１５】
本発明のデータ設定装置によれば、データ設定装置は実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに並列に処理させることにより処理時間を短縮することができる。
【００１６】
また、本発明のデータ設定装置によれば、システム構成が頻繁に変更される再構成可能な組込み機器におけるデータ設定や初期化をプログラム全体を更新することなくデータ設定情報のみの変更で済み、再プログラムの簡素化が図れることである。
【００１７】
また、本発明のデータ設定装置によれば、マスタプロセッサとは独立にデータ設定処理を行うので、マスタプロセッサの負荷を軽減するとともに、データ設定に関する実行順序制御を行うための複雑なプログラムを必要としないためユーザの利便性を向上することができる。
【発明を実施するための最良の形態】
【００１８】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１９】
（実施の形態１）
図２は本発明の実施の形態１に係るデータ設定装置２０を含む情報処理装置を示す図である。
【００２０】
図２を構成する回路、信号について説明する。
【００２１】
データ設定装置２０は、本発明の複数のデータ設定の並列処理を担う装置である。
【００２２】
データ設定装置２０は、シーケンサ２０１、データ設定コマンド記憶２０２、３個のＤＭＡコントローラ（２０３、２０４、２０５）から構成される。
【００２３】
データ設定コマンド記憶２０２は、データ設定装置が起動すると、記憶装置２３に記憶されたデータ設定コマンドをアクセス調停２２を介して取得し、内蔵する記憶領域に保存する。
【００２４】
シーケンサ２０１は、ＤＭＡコントローラ制御回路２０１０とホスト通信制御回路２０１１から構成される。
【００２５】
ＤＭＡコントローラ制御回路２０１０は、データ設定コマンド記憶２０２からデータ設定コマンドを取得しながら、複数のＤＭＡコントローラ（２０３、２０４、２０５）の起動制御を行うことにより、データ設定コマンドに示されたデータ設定処理を行う。
【００２６】
ホスト通信制御回路２０１１は、マスタプロセッサ２１との通信制御を担い、データ設定装置２０の起動制御レジスタ２０１１２、データ設定処理状態レジスタ２０１１１、割込み通知許可レジスタ２０１１３を有する。
【００２７】
複数のＤＭＡコントローラ（２０３、２０４、２０５、２０６）は各々ＤＭＡコントローラ制御回路２０１０からの起動制御のもと、実行順序情報を含むデータ設定に従いデータ設定処理を行う。各ＤＭＡコントローラは、ＤＭＡ転送処理中か否かを示す使用フラグ（２０３１、２０４１、２０５１、２０６１）を備える。
【００２８】
マスタプロセッサ２１はデータ設定装置２０と接続されており、レジスタ設定によってデータ設定装置２０の起動制御を行う。またマスタプロセッサ２１は、データ設定装置２０からデータ設定処理完了等の割込み通知を受ける。
【００２９】
アクセス調停２２は、データ設定装置２０やマスタプロセッサ２１からの記憶装置２３へのアクセスを調停する。
【００３０】
記憶装置２３は情報処理装置のプログラム、データ、レジスタ群をまとめた記憶ユニットである。
【００３１】
図３は、ＤＭＡコントローラ（２０３、２０４、２０５）が備えたデータ設定（２０３１、２０４１、２０５１）のフォーマットを示した図である。
【００３２】
データ設定３０は、起動制御レジスタ３０１、使用ＩＤ３０２、転送元アドレス３０３、転送先アドレス３０４、転送サイズ３０５、開始条件０  ３０６、開始条件１  ３０７、開始条件２  ３０８で構成される。
【００３３】
起動制御レジスタ３０１は、ＤＭＡコントローラを起動する際にＤＭＡコントローラ制御回路２０１０によって１に設定され、ＤＭＡコントローラがデータ転送を終了するとＤＭＡコントローラ自身によって０にクリアされる。従ってＤＭＡコントローラが稼動中かどうかのチェックは起動制御レジスタ３０１に１がセットされているかどうかで判断する。
【００３４】
使用ＩＤ  ３０２は、ＤＭＡコントローラ制御回路２０１０によってデータ設定コマンドのＩＤが設定される。
【００３５】
転送元アドレス３０３、転送先アドレス３０４、転送サイズ３０５、開始条件０  ３０６、開始条件１  ３０７、開始条件２  ３０８には、ＤＭＡコントローラ制御回路２０１０によって、データ設定コマンドの転送元アドレス、転送先アドレス、転送サイズ、第１の開始条件、第２の開始条件、第３の開始条件が設定される。
【００３６】
データ設定コマンドに開始条件がない場合は、第１の開始条件３０６、第２の開始条件３０７、第３の開始条件３０８にそれぞれ０を設定する。
【００３７】
図４は、データ設定装置２０のデータ設定処理のフローチャートである。図４のフローチャートにおける各処理ステップについて説明する。
【００３８】
データ設定装置２０は起動制御レジスタ２０１１２に１が設定されていないかどうかをチェックすることにより、マスタプロセッサ２１からの起動指令があるかどうかを監視し続ける（処理ステップＳ４０１）。
【００３９】
もし起動指令がある場合、アクセス調停２２を介してデータ設定コマンドを記憶装置２３から取得し、データ設定コマンド記憶２０２にストアする（処理ステップＳ４０２）。
【００４０】
次にシーケンサ２０１はデータ設定コマンド記憶２０２のデータ設定を全て読み出したかどうかのチェックを行い（処理ステップＳ４０３）、読み出しが完了していない場合、データ設定コマンド記憶２０２からデータ設定コマンドを未読み出し情報の先頭から順にロードする（処理ステップＳ４０４）。
【００４１】
ここで、ＤＭＡコントローラ制御回路２０１０は、複数のＤＭＡコントローラ（２０３、２０４、２０５）のうちで未使用状態のＤＭＡコントローラがあるかどうかを各ＤＭＡコントローラのデータ設定（２０３１、２０４１、２０５１）内の使用ＩＤ３０２をチェックし（処理ステップＳ４０５）、使用ＩＤ３０２に不正ＩＤが設定されている未使用ＤＭＡコントローラがある場合、空いているＤＭＡコントローラを抽出し、データ設定３０の使用ＩＤ  ３０１をセットし（処理ステップＳ４０６）、処理ステップＳ４０４で読み出したデータ設定コマンドをデータ設定３０の各レジスタ（転送元アドレス３０３、転送先アドレス３０４、転送サイズ３０５、開始条件０  ３０６、開始条件１  ３０７、開始条件２  ３０８）に設定した後、起動制御レジスタ３０１に１を設定することのより起動をかける（処理ステップＳ４０７）。
【００４２】
その後、処理ステップＳ４０３に戻り、次のデータ設定コマンドに対するデータ設定処理を行う。
【００４３】
処理ステップＳ４０３において、データ設定コマンド記憶２０２から全てのデータ設定コマンドを読み出し、全てのデータ設定を完了した場合、ホスト通信制御回路２０１１は、データ設定処理状態レジスタに１をセットする（処理ステップＳ４０８）。
【００４４】
その後、割込み通知許可レジスタ２０１１３に１が設定されているかどうかを確認して、マスタプロセッサ２１への割込み通知が必要かどうかのチェックを行い（処理ステップＳ４０９）、必要な場合、ホスト通信制御回路２０１１は、マスタプロセッサ２１に割込み通知を行った（処理ステップＳ４１０）後、処理ステップＳ３０１に戻る。一方、処理ステップＳ４０９において割込み通知が不要な場合は、直ちに処理ステップＳ４０１に戻り、マスタプロセッサからの次のデータ設定の起動指令を待つ。
【００４５】
図５は、ＤＭＡコントローラ（２０３、２０４、２０５）のデータ設定処理のフローチャートである。図５のフローチャートにおける各処理ステップについて説明する。
【００４６】
ＤＭＡコントローラは、データ設定３０内の起動制御レジスタ３０１に１が設定されているかどうかをチェックすることでＤＭＡコントローラ制御回路２０１０からの起動指令があるかどうかを監視し続ける（処理ステップＳ５１）。
【００４７】
起動指令がある場合、起動指令に先立ちＤＭＡコントローラ制御回路２０１０に設定されたデータ設定３０の開始条件０  ３０６、開始条件１  ３０７、開始条件２  ３０８のうちで開始条件として０以外のＩＤが設定されているものが存在するかどうかをチェックし（処理ステップＳ５２）、開始条件が設定されている場合、開始条件が成立するのを待ち（処理ステップＳ５３）、開始条件成立した後、データ設定コマンドに従いＤＭＡ転送を開始する（処理ステップＳ５４）。
【００４８】
ＤＭＡ転送が完了すると、ＤＭＡコントローラのデータ設定３０内の使用ＩＤ３０２に無効ＩＤをセットしてＤＭＡコントローラを未使用状態に設定し（処理ステップＳ５５）、さらにＤＭＡコントローラのデータ設定３０内の起動制御レジスタ３０１を０にクリア（処理ステップＳ５６）した後、処理ステップＳ５１に戻り、次のデータ設定の起動指令を待つ。
【００４９】
ここで、処理フローＳ５３の開始条件の確認方法について説明する。
【００５０】
処理対象のデータ設定は、データ設定３０内の３つの開始条件（３０６、３０７、３０８）に設定されたデータ設定ＩＤよりも先にＤＭＡコントローラにデータ設定を行っている、という性質がある。
【００５１】
この性質を利用して、自身のＤＭＡコントローラを除く全てのＤＭＡコントローラのデータ設定の中の使用ＩＤ  ３０２を参照して、全ての開始条件（３０６、３０７、３０８）に設定されたＩＤが存在していなければ、開始条件に設定されたデータ設定は既に完了していることになる。
【００５２】
図６は、本発明のデータ設定装置の第１の実施例における動作を説明するためのデータ設定例である。
【００５３】
本データ設定例では、データ設定として、データ設定１、データ設定２、データ設定３、データ設定４、データ設定５の５つのデータ設定からなり、データ設定間の実行順序として、データ設定４はデータ設定１、データ設定２、データ設定３の３つのデータ設定処理の完了後に処理開始、データ設定５はデータ設定４のデータ設定処理の完了後に処理開始という、２つが存在する。
【００５４】
図７は、図６で示されたデータ設定処理を行うためのデータ設定コマンド列である。このデータ設定コマンド列はデータ設定処理開始前に記憶装置２３に予め設定しておく。
【００５５】
図８は、実際のデータ設定処理の様子を示した図である。
【００５６】
以下、図８のデータ設定処理の手順を説明する。
【００５７】
まず、マスタプロセッサは、データ設定コマンドを記憶装置２３に設定した後、データ設定装置２０に起動指令を出す（タイミングｔ０）。
【００５８】
データ設定装置２０は、データ設定１、データ設定２、データ設定３の順序でデータ設定処理を行う。データ設定１には第１のＤＭＡコントローラ２０３が割り当てら（タイミングｔ１）、データ設定２には第２のＤＭＡコントローラ２０４が割り当てられ（タイミングｔ２）、データ設定３には第３のＤＭＡコントローラ２０５が割り当てられる（タイミングｔ３）。
【００５９】
次にデータ設定４のデータ設定処理を行おうとするが、未使用状態のＤＭＡコントローラが存在しないため、ＤＭＡコントローラに空きが出来るまで待機状態となる（タイミングｔ３からｔ４の期間）。
【００６０】
しばらくしてデータ設定２の処理が完了して第２のＤＭＡコントローラ２０４が未使用状態になると、待機状態になっていたデータ設定４を割り当てデータ設定処理を開始しようとする（タイミングｔ４）。
【００６１】
ところがデータ設定４の開始条件に指定されたデータ設定が全て完了していない（データ設定１とデータ設定３は未完了）ため、第２のＤＭＡコントローラ２０４は転送開始待ちとなる（タイミングｔ４からｔ６の期間）。
【００６２】
次に処理対象となるデータ設定５は、未使用状態のＤＭＡコントローラが存在しないため、ＤＭＡコントローラに空きが出来るまで待機状態となる（タイミングｔ４からｔ５の期間）。
【００６３】
しばらくしてデータ設定３の処理が完了して第３のＤＭＡコントローラ２０５が未使用状態になると、待機状態になっていたデータ設定５を割り当てデータ設定処理を開始しようとする（タイミングｔ５）。
【００６４】
ところがデータ設定５の開始条件に指定されたデータ設定４が完了していないため、第３のＤＭＡコントローラ２０５は転送開始待ちとなる（タイミングｔ５からｔ７の期間）。
【００６５】
しばらくしてデータ設定１の処理が完了すると第１のＤＭＡコントローラが未使用状態となる。
【００６６】
同時にデータ設定４の開始条件（データ設定１、データ設定２、データ設定３の全てが完了）が成立することにより、データ設定４を割り当てられた第２のＤＭＡコントローラ２０４はデータ設定を開始する（タイミングｔ６）。
【００６７】
次に第２のＤＭＡコントローラによって処理されていたデータ設定４の処理が完了すると、データ設定５の処理を割り当てられた第３のＤＭＡコントローラはデータ設定を開始し（タイミングｔ７）、処理が終了すると終了をマスタプロセッサ２１に通知する（タイミングｔ８）。
【００６８】
データ設定の完了通知を受けたマスタプロセッサ２１はデータ設定終了後の処理を行う。
【００６９】
なお、マスタプロセッサ２１はデータ設定処理中（タイミングｔ１からｔ８の期間）は、データ設定に関する処理を一切行わないため、他の処理を実行することが出来る。
【００７０】
以上、説明したように本発明の効果を以下に記載する。
【００７１】
本発明の第１の効果は、複数のデータ設定の完了を開始条件に持つ実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに並列に処理させることにより処理時間を短縮することができることである。
【００７２】
（実施の形態２）
図９〜１２は、本発明の実施の形態２に係るデータ設定装置の動作を説明するための図である。
【００７３】
図９は、データ設定装置のＤＭＡコントローラ（２０３、２０４、２０５）に搭載するデータ設定（２０３１、２０４１、２０５１）のフォーマットを示した図である。
【００７４】
データ設定９０は、起動制御レジスタ９０１、使用ＩＤ９０２、転送元アドレス９０３、転送先アドレス９０４、転送サイズ９０５、開始条件０  ９０６、開始条件１  ９０７、開始条件カウント９０８で構成される。
【００７５】
起動制御レジスタ９０１は、ＤＭＡコントローラを起動する際にＤＭＡコントローラ制御回路２０１０によって１に設定され、ＤＭＡコントローラがデータ転送を終了するとＤＭＡコントローラ自身によって０にクリアされる。従ってＤＭＡコントローラが稼動中かどうかのチェックは起動制御レジスタ９０１に１がセットされているかどうかで判断する。
【００７６】
使用ＩＤ９０２は、ＤＭＡコントローラ制御回路２０１０によってデータ設定コマンドのＩＤが設定される。
【００７７】
転送元アドレス９０３、転送先アドレス９０４、転送サイズ９０５、開始条件０  ９０６、開始条件１  ９０７、開始条件カウント９０８には、ＤＭＡコントローラ制御回路２０１０によって、データ設定コマンドの転送元アドレス、転送先アドレス、転送サイズ、第１の開始条件、第２の開始条件、開始条件カウントが設定される。
【００７８】
データ設定コマンドに開始条件がない場合は、開始条件０  ９０６、開始条件１  ９０７、開始条件カウント９０８にそれぞれ０を設定する。
【００７９】
ここで、第２の実施例における処理フローＳ５３の開始条件の確認方法について説明する。
【００８０】
図９に示した通り、第２の実施例におけるデータ設定の開始条件は、指定された複数個のデータ設定の中で指令された個数のデータ設定が完了することである。
【００８１】
この開始条件の確認方法は、データ設定３０内の３つの開始条件（３０６、３０７、３０８）に設定されたデータ設定ＩＤの個数（Ｎ）、開始条件カウント９０８の値（Ｙ）としたときに、自身を除く全ＤＭＡ  コントローラの中で開始条件（３０６、３０７、３０８）に指定されたＩＤを使用ＩＤに持つＤＭＡコントローラの個数（Ｚ）が（Ｘ＋Ｙ）以下であれば、開始条件に設定されたデータ設定は既に完了していることになる。
【００８２】
図１０は、本発明のデータ設定装置の第２の実施例における動作を説明するためのデータ設定例である。
【００８３】
本データ設定例では、データ設定として、データ設定１、データ設定２、データ設定３、データ設定４、データ設定５の５つのデータ設定からなり、データ設定間の実行順序として、データ設定３はデータ設定１、データ設定２のいずれか一方のデータ設定処理の完了後に処理開始、データ設定５はデータ設定４のデータ設定処理の完了後に処理開始という、２つが存在する。
【００８４】
図１１は、図１０で示されたデータ設定処理を行うためのデータ設定コマンド列である。このデータ設定コマンド列はデータ設定処理開始前に記憶装置２３に予め設定しておく。
【００８５】
図１２は、実際のデータ設定処理の様子を示した図である。
【００８６】
以下、図１２のデータ設定処理の手順を説明する。
【００８７】
まず、マスタプロセッサは、データ設定コマンド列を記憶装置２３に設定した後、データ設定装置２０に起動指令を出す（タイミングｔ０）。
【００８８】
データ設定装置２０は、データ設定１、データ設定２、データ設定３の順序でデータ設定処理を行う。データ設定１には第１のＤＭＡコントローラ２０３が割り当てら（タイミングｔ１）、データ設定２には第２のＤＭＡコントローラ２０４が割り当てられ（タイミングｔ２）、データ設定３には第３のＤＭＡコントローラ２０５が割り当てられる（タイミングｔ３）。
【００８９】
ところがデータ設定３の開始条件は、データ設定１またはデータ設定２のいずれかの処理の完了であるため、転送開始待ちとなる（タイミングｔ３からｔ４の期間）。
【００９０】
次に処理対象となるデータ設定４は、未使用状態のＤＭＡコントローラが存在しないため、ＤＭＡコントローラに空きが出来るまで待機状態となる（タイミングｔ４からｔ５の期間）。
【００９１】
しばらくしてデータ設定２の処理が完了するとデータ設定３の開始条件が成立するため、データ設定３が割り当てられた第３のＤＭＡコントローラ２０５はデータ設定処理を開始する。
【００９２】
同時に、第２のＤＭＡコントローラ２０４が未使用状態になることにより、待機状態になっていたデータ設定４を割り当てデータ設定処理を開始する（タイミングｔ５）。
【００９３】
次に処理対象となるデータ設定５は、未使用状態のＤＭＡコントローラが存在しないため、ＤＭＡコントローラに空きが出来るまで待機状態となる（タイミングｔ６からｔ８の期間）。
【００９４】
しばらくしてデータ設定１の処理が完了して第１のＤＭＡコントローラ２０５が未使用状態になると、待機状態になっていたデータ設定５を割り当てデータ設定処理を開始しようとする（タイミングｔ６）。
【００９５】
ところがデータ設定５の開始条件に指定されたデータ設定４が完了していないため、第１のＤＭＡコントローラ２０５は転送開始待ちとなる（タイミングｔ７からｔ９の期間）。
【００９６】
しばらくしてデータ設定３の処理が完了すると第３のＤＭＡコントローラが未使用状態となる（タイミングｔ７）。
【００９７】
しばらくしてデータ設定４の処理が完了するとデータ設定５の処理を割り当てられた第１のＤＭＡコントローラはデータ設定を開始し（タイミングｔ８）、処理が終了すると終了をマスタプロセッサ２１に通知する（タイミングｔ９）。
【００９８】
データ設定の完了通知を受けたマスタプロセッサ２１はデータ設定終了後の処理を行う。
【００９９】
なお、マスタプロセッサ２１はデータ設定処理中（タイミングｔ１からｔ９の期間）は、データ設定に関する処理を一切行わないため、他の処理を実行することが出来る。
【０１００】
以上、説明したように本発明の効果を以下に記載する。
【０１０１】
本発明の第１の効果は、複数のデータ設定のうちの指定個数のデータ設定の完了を開始条件に持つ実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに並列に処理させることにより処理時間を短縮することができることである。
【０１０２】
（実施の形態３）
図１３は本発明の実施の形態３に係るデータ設定装置１３０を含む情報処理装置を示す図である。
【０１０３】
図１３を構成する回路、信号について説明する。
【０１０４】
データ設定装置１３０は、本発明の複数のデータ設定の並列処理を担う装置である。
【０１０５】
データ設定装置は、シーケンサ１３０１、データ設定コマンド記憶１３０２、２個のＤＭＡコントローラ（１３０３、１３０４）から構成される。
【０１０６】
データ設定コマンド記憶１３０２は、リセット解除信号が有効になると自動的にデータ設定装置１３０を起動し、データ設定装置１３０の内部に備えた記憶装置１３０７に記憶されたデータ設定コマンドを取り出し、データ設定コマンド記憶１３０２にロードする。
【０１０７】
シーケンサ１３０１は、ＤＭＡコントローラ制御回路１３０１０とホスト通信制御回路１３０１１から構成される。
【０１０８】
ＤＭＡコントローラ制御回路１３０１０は、データ設定コマンド１３０２からデータ設定コマンドを取得しながら、２個のＤＭＡコントローラ（１３０３、１３０４）の起動制御を行うことにより、データ設定コマンドに示されたデータ設定処理を行う。
【０１０９】
ホスト通信制御回路１３０１１は、マスタプロセッサ１３１との通信制御を担い、データ設定処理状態レジスタ１３０１１１、割込み通知許可レジスタ１３０１１３を有する。
【０１１０】
２個のＤＭＡコントローラ（１３０３、１３０４）は各々ＤＭＡコントローラ制御回路１３０１０からの起動制御のもと、実行順序情報を含むデータ設定に従いデータ設定処理を行う。各ＤＭＡコントローラは、ＤＭＡ転送処理中か否かを示す使用フラグ（１３０３１、１３０４１）を備える。
【０１１１】
マスタプロセッサ１３１はデータ設定装置１３０と接続されており、データ設定装置２０からデータ設定処理完了等の割込み通知を受ける。
【０１１２】
アクセス調停１３２は、データ設定装置１３０やマスタプロセッサ１３１からの記憶装置１３３へのアクセスを調停する。
【０１１３】
記憶装置１３３は情報処理装置のプログラム、データ、レジスタ群をまとめた記憶ユニットである。
【０１１４】
図１４は、ＤＭＡコントローラ（１３０３、１３０４）に搭載するデータ設定（１３０３１、１３０４１）のフォーマットを示した図である。
【０１１５】
データ設定１４０は、起動制御レジスタ１４０１、使用ＩＤ１４０２、コマンド１０４３、転送元アドレス１４０４、転送先アドレス１４０５、転送サイズ１４０６、開始条件０  １４０７、開始条件１  １４０８で構成される。
【０１１６】
使用ＩＤ  １４０２は、ＤＭＡコントローラ制御回路１３０１０によってデータ設定コマンドのＩＤが設定される。
【０１１７】
コマンド１４０３、転送元アドレス１４０４、転送先アドレス１４０５、転送サイズ１４０６、開始条件０  １４０７、開始条件１  １４０８には、ＤＭＡコントローラ制御回路１３０１０によって、ＤＭＡ転送かまたはレジスタ値ポーリングのいずれかを指定するコマンド、データ設定コマンドの転送元アドレス、転送先アドレス、転送サイズ、第１の開始条件、第２の開始条件が各々設定される。
【０１１８】
データ設定コマンドに開始条件がない場合は、開始条件０  １４０７、開始条件１  １４０８にそれぞれ０を設定する。
【０１１９】
図１５は、データ設定装置１３０のデータ設定処理のフローチャートである。図１５のフローチャートにおける各処理ステップについて説明する。
【０１２０】
データ設定装置１３０はリセット解除信号が有効に設定されていないかどうかをチェックすることにより、自動起動の必要性があるかどうかを監視し続ける（処理ステップＳ１５０１）。
【０１２１】
もし自動起動の必要性がある場合、データ設定コマンドをデータ設定装置１３０の内部に備えた記憶装置１３０５から取得し、データ設定コマンド記憶１３０２にストアする（処理ステップＳ１５０２）。
【０１２２】
次にシーケンサ１３０１はデータ設定コマンド記憶１３０２のデータ設定を全て読み出したかどうかのチェックを行い（処理ステップＳ１３０３）、読み出しが完了していない場合、データ設定コマンド記憶１３０２からデータ設定コマンドを未読み出し情報の先頭から順にロードする（処理ステップＳ１５０４）。
【０１２３】
ここで、ＤＭＡコントローラ制御回路１３０１０は、複数のＤＭＡコントローラ（１３０３、１３０４）のうちで未使用状態のＤＭＡコントローラがあるかどうかを各ＤＭＡコントローラのデータ設定（１３０３１、１３０４１）内の使用ＩＤ  １４０２をチェックし（処理ステップＳ１５０５）、使用ＩＤ  １４０２に不正ＩＤが設定されている未使用ＤＭＡコントローラがある場合、空いているＤＭＡコントローラを抽出し、データ設定１４０の使用ＩＤ  １４０１をセットし（処理ステップＳ１５０６）、処理ステップＳ１５０４で読み出したデータ設定コマンドをデータ設定１４０の各レジスタ（コマンド１４０３、転送元アドレス１４０４、転送先アドレス１４０５、転送サイズ１４０６、第１の開始条件１４０７、第２の開始条件１４０８）に設定した後、起動制御レジスタ１４０１に１を設定することのより起動をかける（処理ステップＳ１５０７）。
【０１２４】
その後、処理ステップＳ１５０３に戻り、次のデータ設定コマンドに対するデータ設定処理を行う。
【０１２５】
処理ステップＳ１５０３において、データ設定コマンド記憶１３０２から全てのデータ設定コマンドを読み出し、全てのデータ設定を完了した場合、ホスト通信制御回路１３０１１は、データ設定処理状態レジスタに１をセットする（処理ステップＳ１５０８）。
【０１２６】
その後、割込み通知許可レジスタ１３０１１２に１が設定されているかどうかを確認して、マスタプロセッサ１３１への割込み通知が必要かどうかのチェックを行い（処理ステップＳ１５０９）、必要な場合、ホスト通信制御回路１３０１１は、マスタプロセッサ１３１に割込み通知を行った（処理ステップＳ１５１０）後、処理ステップＳ１５０１に戻る。一方、処理ステップＳ１５０９において割込み通知が不要な場合は、直ちに処理ステップＳ１５０１に戻り、マスタプロセッサからの次のデータ設定の起動指令を待つ。
【０１２７】
図１６は、ＤＭＡコントローラ（１３０３、１３０４）のデータ設定処理のフローチャートである。図１６のフローチャートにおける各処理ステップについて説明する。
【０１２８】
ＤＭＡコントローラは、データ設定１４０内の起動制御レジスタ１４０１に１が設定されているかどうかをチェックすることでＤＭＡコントローラ制御回路１３０１０からの起動指令があるかどうかを監視し続ける（処理ステップＳ１６０１）。
【０１２９】
起動指令がある場合、起動指令に先立ちＤＭＡコントローラ制御回路１３０１０に設定されたデータ設定１４０の開始条件０  １４０７、開始条件１  １４０８のうちで開始条件として０以外のＩＤが設定されているものが存在するかどうかをチェックし（処理ステップＳ１６０２）、開始条件が設定されている場合、開始条件が成立するのを待つ（処理ステップＳ１６０３）。
【０１３０】
開始条件成立した後、データ設定１４０内のコマンド１４０３がＤＭＡ転送コマンドなのか、レジスタ値ポーリングコマンドなのかのチェックを行い（処理ステップＳ１６０４）、コマンド１４０３がＤＭＡ転送コマンドの場合、データ設定コマンドに従いＤＭＡ転送を開始する（処理ステップＳ１６０５）。
【０１３１】
ＤＭＡ転送が完了すると、ＤＭＡコントローラのデータ設定１４０内の使用ＩＤ  １４０２に無効ＩＤをセットしてＤＭＡコントローラを未使用状態に設定し（処理ステップＳ１６０６）、さらにＤＭＡコントローラのデータ設定１４０内の起動制御レジスタ１４０１を０にクリア（処理ステップＳ１６０７）した後、処理ステップＳ１６０１に戻り、次のデータ設定の起動指令を待つ。
【０１３２】
処理ステップＳ１６０４において、コマンド１４０３がレジスタ値ポーリングコマンドの場合、データ設定１４０内の転送元アドレス１４０４に設定されたポーリング対象アドレスの内容をロードし（処理ステップＳ１６０８）、ロードした値とデータ設定１４０内の転送先アドレス１４０５に設定されたポーリング期待値との間で、データ設定１４０内の転送サイズ１４０６に設定された期待値マスクによって指定されるビットフィールドが一致するかどうかをチェックし、一致するならばレジスタ値ポーリング処理を終了して処理ステップＳ１６０６に分岐し、一致しなければ処理ステップＳ１６０８に戻り再度レジスタ値ポーリング処理を行う（処理ステップＳ１６０９、Ｓ１６１０）。
【０１３３】
ここで、処理フローＳ１６０３の開始条件の確認方法について説明する。
【０１３４】
処理対象のデータ設定は、データ設定３０内の２つの開始条件（１４０７、１４０８）に設定されたデータ設定ＩＤよりも先にＤＭＡコントローラにデータ設定を行っている、という性質がある。
【０１３５】
この性質を利用して、自身のＤＭＡコントローラを除く全てのＤＭＡコントローラのデータ設定の中の使用ＩＤ  １４０２を参照して、全ての開始条件（１４０７、１４０８）に設定されたＩＤが存在していなければ、開始条件に設定されたデータ設定は既に完了していることになる。
【０１３６】
図１７は、本発明のデータ設定装置の第３の実施例における動作を説明するためのデータ設定例である。
【０１３７】
本データ設定例では、データ設定として、レジスタ値ポーリング１、データ設定２、データ設定３の１つのレジスタ値ポーリングと２つのデータ設定からなり、レジスタ値ポーリングとデータ設定間の実行順序として、データ設定３はレジスタ値ポーリング１、データ設定２の１つのレジスタ値ポーリングと１つのデータ設定処理の完了後に処理開始、という実行順序が存在する。
【０１３８】
図１８は、図１７で示されたデータ設定処理を行うためのデータ設定コマンドである。このデータ設定コマンドはデータ設定処理開始前に記憶装置１３０７に予め設定されている。
【０１３９】
図１９は、実際のデータ設定処理の様子を示した図である。
【０１４０】
以下、図１９のデータ設定処理の手順を説明する。
【０１４１】
まず、データ設定装置１３０はＲＥＳＥＴ解除信号によりリセット解除設定がされると自動で起動する（タイミングｔ０）。
【０１４２】
データ設定装置１３０は、レジスタ値ポーリング１、データ設定２、データ設定３の順序でデータ設定処理を行う。レジスタ値ポーリング１には第１のＤＭＡコントローラ１３０３が割り当てら（タイミングｔ１）、データ設定２には第２のＤＭＡコントローラ１３０４が割り当てられる（タイミングｔ２）。
【０１４３】
次にデータ設定３のデータ設定処理を行おうとするが、未使用状態のＤＭＡコントローラが存在しないため、ＤＭＡコントローラに空きが出来るまで待機状態となる（タイミングｔ２からｔ３の期間）。
【０１４４】
しばらくしてデータ設定２の処理が完了して第２のＤＭＡコントローラ１３０４が未使用状態になると、待機状態になっていたデータ設定３を割り当てデータ設定処理を開始しようとする（タイミングｔ３）。
【０１４５】
ところがデータ設定３の開始条件に指定されたデータ設定が全て完了していない（レジスタ値ポーリング１は未完了）ため、第２のＤＭＡコントローラ１３０４は転送開始待ちとなる（タイミングｔ３からｔ４の期間）。
【０１４６】
しばらくして第１のＤＭＡコントローラ１３０３によって処理されていたレジスタ値ポーリング１の処理が完了すると、データ設定３の処理を割り当てられた第２のＤＭＡコントローラは開始条件が成立する（レジスタ値ポーリング１とデータ設定２ともに処理終了）ことによりデータ設定を開始し（タイミングｔ４）、処理が終了すると終了をマスタプロセッサ１３１に通知する（タイミングｔ５）。
【０１４７】
データ設定の完了通知を受けたマスタプロセッサ１３１はデータ設定終了後の処理を行う。
【０１４８】
なお、マスタプロセッサ１３１はデータ設定処理中（タイミングｔ１からｔ５の期間）は、データ設定に関する処理を一切行わないため、他の処理を実行することが出来る。
【０１４９】
以上、第３の実施例で説明したように本発明の効果を以下に記載する。
【０１５０】
本発明における効果は、複数のデータ設定の完了を開始条件に持つ実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに並列に処理させるデータ設定装置において、データ設定のコマンドとしてレジスタ値ポーリングコマンドを備えるため、複数のデータ設定間の実行順序制御に加えて、レジスタ値ポーリングコマンドで指定されたアドレスのレジスタ値を他の機能モジュールから設定することによる連携動作を複雑なプログラムを作成することなく可能となり、ユーザの利便性を向上することができる。
【０１５１】
以上、本発明の実施形態の一例を示してきたが、本発明は上記の実施形態に限らず、特許請求の範囲の各請求項に記載した発明の範囲内での各種修正、変形を含むことは当然のことである。
【０１５２】
さらに本発明のデータ設定装置は、一般的なＤＭＡコントローラの備える機能であるマスタプロセッサとの連携機能として、データ設定機能のタイムアウト、中断、再開、再実行、さらに割込み機能を必要に応じて搭載しても良い。
【０１５３】
以上、説明したように本発明の効果を以下に記載する。
【０１５４】
本発明の第１の効果は、実行順序を有する複数のデータ設定を複数のＤＭＡコントローラに並列に処理させることにより処理時間を短縮することができることである。
【０１５５】
また本発明の第２の効果は、システム構成が頻繁に変更される再構成可能な組込み機器におけるデータ設定や初期化をプログラム全体を更新することなくデータ設定コマンドのみの変更で済み、再プログラムの簡素化が図れることである。
【０１５６】
さらに本発明の第３の効果は、また本発明のデータ設定装置によれば、マスタプロセッサとは独立にデータ設定処理を行うので、マスタプロセッサの負荷を軽減するとともに、データ設定に関する実行順序制御を行うための複雑なプログラムを必要としないためユーザの利便性を向上することができることである。
【産業上の利用可能性】
【０１５７】
本発明にかかるデータ設定装置は、順序関係を有する複数のデータ設定を並列処理する機能を有し、組込み機器をはじめ、ＰＣなどのコンピュータシステムの起動時の初期化処理に利用されシステム起動の高速化に有用である。またシステム構成が頻繁に変更される再構成可能な組込み機器におけるデータ設定や初期化等の用途にも応用できる。
【図面の簡単な説明】
【０１５８】
【図１】従来のデータ設定装置の処理フローを示した図
【図２】本発明の第１の実施例および第２の実施例の構成を説明するための情報処理装置を示した図
【図３】本発明の第１の実施例におけるＤＭＡコントローラが備えたデータ設定コマンドのフォーマットを示す図
【図４】本発明の第１の実施例および第２の実施例におけるデータ設定処理のフローチャート
【図５】本発明の第１の実施例および第２の実施例におけるＤＭＡコントローラのデータ設定処理のフローチャート
【図６】本発明の第１の実施例における動作を説明するための設定例を示した図
【図７】本発明の第１の実施例におけるデータ設定コマンド列を示した図
【図８】本発明の第１の実施例におけるＤＭＡコントローラの動作の様子を示した図
【図９】本発明の第２の実施例におけるＤＭＡコントローラが備えたデータ設定コマンドのフォーマットを示す図
【図１０】本発明の第２の実施例における動作を説明するための設定例を示した図
【図１１】本発明の第２の実施例におけるデータ設定コマンド列を示した図
【図１２】本発明の第２の実施例におけるＤＭＡコントローラの動作の様子を示した図
【図１３】本発明の第３の実施例の構成を説明するための情報処理装置を示した図
【図１４】本発明の第３の実施例におけるＤＭＡコントローラが備えたデータ設定コマンドのフォーマットを示す図
【図１５】本発明の第３の実施例におけるデータ設定処理のフローチャート
【図１６】本発明の第３の実施例におけるＤＭＡコントローラのデータ設定処理のフローチャート
【図１７】本発明の第３の実施例における動作を説明するための設定例を示した図
【図１８】本発明の第３の実施例におけるデータ設定コマンド列を示した図
【図１９】本発明の第３の実施例におけるＤＭＡコントローラの動作の様子を示した図
【符号の説明】
【０１５９】
２０    データ設定装置
２１    マスタプロセッサ
２２    アクセス調停
２３    記憶装置
２０１    シーケンサ
２０２    データ設定コマンド記憶
２０３    第１のＤＭＡコントローラ
２０４    第２のＤＭＡコントローラ
２０５    第３のＤＭＡコントローラ
２０３１    第１のＤＭＡコントローラ２０３内のデータ設定
２０４１    第２のＤＭＡコントローラ２０４内のデータ設定
２０５１    第３のＤＭＡコントローラ２０５内のデータ設定
２０１０    ＤＭＡコントローラ制御回路
２０１１    ホスト通信制御回路
２０１１１    データ設定処理状態レジスタ
２０１１２    起動制御レジスタ
２０１１３    割込み通知許可レジスタ
３０    データ設定
３０１    起動制御レジスタ
３０２    使用ＩＤ
３０３    転送元アドレス
３０４    転送先アドレス
３０５    転送サイズ
３０６    開始条件０
３０７    開始条件１
３０８    開始条件２
１３０    データ設定装置
１３１    マスタプロセッサ
１３２    アクセス調停
１３３    記憶装置
１３０１    シーケンサ
１３０２    データ設定コマンド記憶
１３０３    第１のＤＭＡコントローラ
１３０４    第２のＤＭＡコントローラ
１３０７    データ設定装置１３０内に備えた記憶装置
１３０３１    第１のＤＭＡコントローラ２０３内のデータ設定
１３０４１    第２のＤＭＡコントローラ２０４内のデータ設定
１３０１０    ＤＭＡコントローラ制御回路
１３０１１    ホスト通信制御回路
１３０１１１    データ設定処理状態レジスタ
１３０１１２    割込み通知許可レジスタ
１４０    データ設定
１４０１    起動制御レジスタ
１４０２    使用ＩＤ
１４０３    コマンド
１４０４    転送元アドレス
１４０５    転送先アドレス
１４０６    転送サイズ
１４０７    開始条件０
１４０８    開始条件１
【図１】
2006134025.tif 000003
【図２】
2006134025.tif 000004
【図３】
2006134025.tif 000005
【図４】
2006134025.tif 000006
【図５】
2006134025.tif 000007
【図６】
2006134025.tif 000008
【図７】
2006134025.tif 000009
【図８】
2006134025.tif 000010
【図９】
2006134025.tif 000011
【図１０】
2006134025.tif 000012
【図１１】
2006134025.tif 000013
【図１２】
2006134025.tif 000014
【図１３】
2006134025.tif 000015
【図１４】
2006134025.tif 000016
【図１５】
2006134025.tif 000017
【図１６】
2006134025.tif 000018
【図１７】
2006134025.tif 000019
【図１８】
2006134025.tif 000020
【図１９】
2006134025.tif 000021