(57)【要約】【課題】メモリに格納された２種類のデータからそれら２種類のデータを含む出力信号を効率よく生成することが可能な信号処理装置を実現する。【解決手段】ＤＭＡコントローラ１１１は第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）に含まれる複数の転送ディスクリプタを順次処理する。もし、処理対象の現在の転送ディスクリプタにフラグがセットされているならば、ＤＭＡコントローラ１１１は、ＳＴＡＲＴ信号を発生する。ＤＭＡコントローラ１１２は、ＳＴＡＲＴ信号を受信するたびに、第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）内の処理対象の現在の転送ディスクリプタを処理する。データミキサ回路１１３は、ＤＭＡコントローラ１１１，１１２によって主メモリ１２から同期して読み出されるメインデータおよびサブデータから出力信号を生成する。【選択図】      図１
2006215886.tif 000002
【特許請求の範囲】
【請求項１】
実行すべきデータ転送の内容をそれぞれ記述した複数の第１ディスクリプタを順次処理することによって、メモリに格納された第１のデータを直接メモリアクセスによってリードするための一連のデータ転送を実行すると共に、処理対象の現在の第１ディスクリプタに他のデータ転送の起動を指示する制御情報が含まれている場合、起動信号を発生する第１の直接メモリアクセスコントローラと、
前記起動信号を受信する度に、実行すべきデータ転送の内容をそれぞれ記述した複数の第２ディスクリプタの中の処理対象の現在の第２ディスクリプタを処理することによって、前記メモリに格納された第２のデータを直接メモリアクセスによってリードするための一連のデータ転送の中の一つのデータ転送を実行する第２の直接メモリアクセスコントローラと、
前記第１の直接メモリアクセスコントローラによってリードされた第１のデータと前記第２の直接メモリアクセスコントローラによってリードされた第２のデータとを合成して、前記第１のデータと前記第２のデータとを含む出力信号を生成する出力信号生成部とを具備することを特徴とする信号処理装置。
【請求項２】
前記出力信号は、前記第１のデータと前記第２のデータとが多重化されたデータ列から構成されていることを特徴とする請求項１記載の信号処理装置。
【請求項３】
前記出力信号生成部は、前記第１の直接メモリアクセスコントローラによる１以上の連続するデータ転送によって前記メモリからリードされる前記第１のデータの部分データ列と、前記第２の直接メモリアクセスコントローラによる１回のデータ転送によって前記メモリからリードされる前記第２のデータの部分データ列とを合成して前記第１のデータと前記第２のデータとを多重化するように構成されていることを特徴とする請求項１記載の信号処理装置。
【請求項４】
前記複数の第１ディスクリプタおよび前記複数の第２ディスクリプタはそれぞれ前記メモリに格納されており、
前記第１の直接メモリアクセスコントローラは前記処理対象の現在の第１ディスクリプタを前記メモリからリードし、前記第２の直接メモリアクセスコントローラは前記処理対象の現在の第２ディスクリプタを前記メモリからリードすることを特徴とする請求項１記載の信号処理装置。
【請求項５】
前記第１のデータはオーディオデータであり、前記第２のデータは前記オーディオデータに関する属性データであることを特徴とする請求項１記載の信号処理装置。
【請求項６】
前記第１のデータはビデオデータであり、前記第２のデータは前記ビデオデータの輝度の階調値を制御するためのディザパターン情報であることを特徴とする請求項１記載の信号処理装置。
【請求項７】
各種データ処理を実行するプロセッサと、
第１のデータと、前記第１のデータに付随して出力すべき第２のデータと、前記第１のデータに関するデータ転送の内容をそれぞれ記述した複数の第１ディスクリプタと、前記第２のデータに関するデータ転送の内容をそれぞれ記述した複数の第２ディスクリプタとを格納するメモリと、
前記プロセッサからのデータ転送開始指示に応答して、前記複数の第１ディスクリプタを順次処理することによって、前記メモリに格納された第１のデータを直接メモリアクセスによってリードするための一連のデータ転送を実行すると共に、処理対象の現在の第１ディスクリプタに他のデータ転送の起動を指示する制御情報が含まれている場合、起動信号を発生する第１の直接メモリアクセスコントローラと、
前記起動信号を受信する度、前記複数の第２ディスクリプタの中の処理対象の現在の第２ディスクリプタを処理することによって、前記メモリに格納された第２のデータを直接メモリアクセスによってリードするための一連のデータ転送の中の一つのデータ転送を実行する第２の直接メモリアクセスコントローラと、
前記第１の直接メモリアクセスコントローラおよび前記第２の直接メモリアクセスコントローラにそれぞれ結合され、前記第１の直接メモリアクセスコントローラによってリードされる前記第１のデータと前記第２の直接メモリアクセスコントローラによってリードされる前記第２のデータとを合成して、前記第１のデータと前記第２のデータとを含む出力信号を生成する出力信号生成部とを具備することを特徴とする信号処理システム。
【請求項８】
前記出力信号は、前記第１のデータと前記第２のデータとが多重化されたデータ列から構成されていることを特徴とする請求項７記載の信号処理装置。
【請求項９】
前記出力信号生成部は、前記第１の直接メモリアクセスコントローラによる１以上の連続するデータ転送によって前記メモリからリードされる前記第１のデータの部分データ列と、前記第２の直接メモリアクセスコントローラによる１回のデータ転送によって前記メモリからリードされる前記第２のデータの部分データ列とを合成して前記第１のデータと前記第２のデータとを多重化するように構成されていることを特徴とする請求項７記載の信号処理システム。
【請求項１０】
メモリにそれぞれ格納された第１のデータおよび第２のデータを処理する信号処理方法であって、
実行すべきデータ転送の内容をそれぞれ記述した複数の第１ディスクリプタを順次処理することによって、前記メモリに格納された第１のデータを直接メモリアクセスによってリードするための一連の第１データ転送を実行するステップと、
前記複数の第１ディスクリプタの中の処理対象の現在の第１ディスクリプタに他のデータ転送の起動を指示する制御情報が含まれている場合、起動信号を発生するステップと、
前記起動信号が発生される度、実行すべきデータ転送の内容をそれぞれ記述した複数の第２ディスクリプタの中の処理対象の現在の第２ディスクリプタを処理することによって、前記メモリに格納された第２のデータを直接メモリアクセスによってリードするための一連の第２データ転送の中の一つを実行するステップと、
前記メモリからリードされる前記第１のデータと前記メモリからリードされる前記第２のデータとを合成して、前記第１のデータと前記第２のデータとを含む出力信号を生成するステップとを具備することを特徴とする信号処理方法。
【請求項１１】
前記出力信号を生成するステップは、１以上の連続する前記第１データ転送によって前記メモリからリードされる前記第１のデータの部分データ列と、１回の前記第２データ転送によって前記メモリからリードされる前記第２のデータの部分データ列とを合成して前記第１のデータと前記第２のデータとを多重化するステップを含むことを特徴とする請求項１０記載の信号処理方法。
【請求項１２】
前記複数の第１ディスクリプタおよび前記複数の第２ディスクリプタはそれぞれ前記メモリに格納されており、
前記処理対象の現在の第１ディスクリプタは前記メモリからリードされ、前記処理対象の現在の第２ディスクリプタは前記メモリからリードされることを特徴とする請求項１０記載の信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２種類のデータを含む出力信号を生成するための信号処理装置、信号処理システム、および信号処理方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、ＡＶ（オーディオ・ビデオ）機器のような各種信号処理システムが開発されている。これら信号処理システムにおいては、ＡＶデータのような大容量のデータストリームの転送を効率よく実行するために、直接メモリアクセス（ＤＭＡ）転送が用いられている。
【０００３】
特許文献１には、画像データの転送をＤＭＡ転送を用いて実行する装置が開示されている。この装置においては、２つのＤＭＡコントローラが設けられている。これら２つのＤＭＡコントローラは、カメラから入力される画像データを２つの異なるメモリにそれぞれ転送する。
【特許文献１】特開２００１−１７５５８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ＡＶデータを外部機器に出力するインタフェース規格として、オーディオデータとその属性データのような２種類のデータを含む出力信号を外部機器に出力する規格が知られている。
【０００５】
２種類のデータを含む出力信号を得るためには、通常、それら２種類のデータをソフトウェアによって予め合成することが必要となる。しかし、この場合には、２種類のデータだけでなく、それら２種類のデータの合成後のデータもメモリに格納されることになる。このため、多くのメモリ空間が占有されてしまう。よって、メモリ上に合成データを用意することなく、上述の出力信号を生成する新たな機能を実現することが必要である。
【０００６】
本発明は上述の事情を考慮してなされたものであり、メモリに格納された２種類のデータからそれら２種類のデータを含む出力信号を効率よく生成することが可能な信号処理装置、信号処理システム、および信号処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明の信号処理装置は、実行すべきデータ転送の内容をそれぞれ記述した複数の第１ディスクリプタを順次処理することによって、メモリに格納された第１のデータを直接メモリアクセスによってリードするための一連のデータ転送を実行すると共に、処理対象の現在の第１ディスクリプタに他のデータ転送の起動を指示する制御情報が含まれている場合、起動信号を発生する第１の直接メモリアクセスコントローラと、前記起動信号を受信する度に、実行すべきデータ転送の内容をそれぞれ記述した複数の第２ディスクリプタの中の処理対象の現在の第２ディスクリプタを処理することによって、前記メモリに格納された第２のデータを直接メモリアクセスによってリードするための一連のデータ転送の中の一つのデータ転送を実行する第２の直接メモリアクセスコントローラと、前記第１の直接メモリアクセスコントローラによってリードされた第１のデータと前記第２の直接メモリアクセスコントローラによってリードされた第２のデータとを合成して、前記第１のデータと前記第２のデータとを含む出力信号を生成する出力信号生成部とを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、メモリに格納された２種類のデータからそれら２種類のデータを含む出力信号を効率よく生成することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施形態を説明する。
【００１０】
図１には、本発明の一実施形態に係る信号処理システムの構成例が示されている。この信号処理システムはデジタル信号を扱うシステムであり、たとえばパーソナルコンピュータ、ＡＶ機器等として実現されている。
【００１１】
この信号処理システムは、ＣＰＵ（Central Processing Unit）１１、主メモリ１２、メモリコントローラ１３、複数のＩ／Ｏデバイス１５、および信号処理装置１６を備えている。これら各コンポーネントはバス１４に接続されている。複数のＩ／Ｏデバイス１５は、たとえば、ハードディスクドライブ、ＵＳＢ（Universal Serial Bus）コントローラ等を含む。
【００１２】
ＣＰＵ１１は各種データ処理を実行するプロセッサであり、この信号処理システムの動作を制御する。主メモリ１２はＣＰＵ１１によって実行されるプログラムおよびＣＰＵ１１によって処理されるデータを格納するメモリ装置である。メモリコントローラ１３は主メモリ１２をアクセス制御する。
【００１３】
信号処理装置１６は、主メモリ１２に格納された２種類のデータ（メインデータＤａｔａ１，サブデータＤａｔａ２）からそれら２種類のデータ（メインデータＤａｔａ１，サブデータＤａｔａ２）を含む出力信号を生成するデバイスである。サブデータＤａｔａ２はメインデータＤａｔａ１に付随する補助データとして使用されるデータである。出力信号は、メインデータＤａｔａ１とサブデータＤａｔａ２とを含む所定フォーマットのデジタルデータ列から構成される。信号処理装置１６は、主メモリ１２からメインデータＤａｔａ１とサブデータＤａｔａ２とを同期して読み出し、それら読み出されたメインデータＤａｔａ１とサブデータＤａｔａ２とを組み合わせて出力信号を生成する。
【００１４】
信号処理装置１６は、図示のように、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２、およびデータミキサ回路（Ｄａｔａ  Ｍｉｘ）１１３を備えている。
【００１５】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１はいわゆるディスクリプタベースのＤＭＡ転送（descriptor based DMA）を実行するコントローラであり、転送ディスクリプタ（または単にディスクリプタと称する）に従ってＤＭＡ転送を実行する。すなわち、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１によるＤＭＡ転送は、ＣＰＵ１１によって主メモリ１２に格納された第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）にしたがって実行される。第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）は、実行すべき複数のデータ転送の内容を記述した情報であり、当該複数のデータ転送の内容をそれぞれ記述した複数の転送ディスクリプタから構成されている。
【００１６】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）に含まれる複数の転送ディスクリプタを順次処理することにより、主メモリ１２に格納されたメインデータＤａｔａ１をＤＭＡによってリードするための一連のデータ転送を実行する。
【００１７】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、処理対象の現在の転送ディスクリプタを保持するレジスタ（ＴＤ１レジスタ）１１４を備えている。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第１の転送ディスクリプタチェーン（ＴＤ１  Ｃｈａｉｎ）内の先頭の転送ディスクリプタを主メモリ１２からレジスタ（ＴＤ１レジスタ）１１４に読み込み、そしてその読み込んだ転送ディスクリプタによって指定されるデータ転送を実行する。このデータ転送が完了すると、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第１の転送ディスクリプタチェーン（ＴＤ１  Ｃｈａｉｎ）内の次の転送ディスクリプタを主メモリ１２からレジスタ（ＴＤ１レジスタ）１１４に読み込み、その読み込んだ転送ディスクリプタによって指定されるデータ転送を実行する。このようにして、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、主メモリ１２に格納されたメインデータＤａｔａ１をＤＭＡによってリードするための一連のデータ転送を順次実行する。このように、メインデータＤａｔａ１をリードするための一連のデータ転送は第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１によって自動実行されるので、ＣＰＵ１１はメインデータＤａｔａ１の転送処理期間中に別の処理を実行することができる。
【００１８】
さらに、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２を起動するための起動信号ＳＴＡＲＴを発生する機能を有している。起動信号ＳＴＡＲＴは、レジスタ（ＴＤ１レジスタ）１１４に読み込まれた現在の転送ディスクリプタにフラグがセットされている場合に発生される。このフラグは、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２のＤＭＡ転送を起動すべきことを指示する制御情報である。
【００１９】
転送ディスクリプタの構成例を図２に示す。各転送ディスクリプタは実行すべきデータ転送の内容を記述した情報である。各転送ディスクリプタは、メモリアドレスフィールド２０１、転送サイズフィールド２０２、次ディスクリプタ先頭アドレスフィールド２０３、コマンドフィールド２０４、およびステータスフィールド２０５から構成されている。
【００２０】
メモリアドレスフィールド２０１は、転送対象のデータが格納されているメモリ領域の先頭アドレスを示すメモリアドレスを含む。転送サイズフィールド２０２は転送対象のデータのデータサイズを示すサイズ情報を含む。次ディスクリプタ先頭アドレスフィールド２０３は次に処理すべき転送ディスクリプタが格納されているメモリ領域の先頭アドレスを示すポインタを含む。コマンドフィールド２０４は、現在の転送ディスクリプタの処理の中で実行すべき各種オプション処理の内容等を指定するコマンドを含む。
【００２１】
このコマンドは、例えば、データ転送に使用すべきバスサイクルの種類（例えば、バーストリード転送、シングルリード転送等）を指定するパラメタ、データ転送完了後にＣＰＵ１１に割り込み信号を発生すべきか否かを指定するためのパラメタ等を含む。
【００２２】
本実施形態においては、コマンドフィールド２０４内のエリアの一部に上述のフラグ（ＦＬＡＧ）を記述するためのフラグフィールド３００が定義されている。フラグフィールド３００にフラグ（ＦＬＡＧ）がセットされている場合（ＦＬＡＧ＝“１”）、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２を起動するために、起動信号ＳＴＡＲＴを発生する。
【００２３】
ステータスフィールド２０５は、転送の完了等を示す転送結果ステータスが書き戻されるフィールドである。処理対象の現在の転送ディスクリプタに対応する転送を完了した時、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送の完了を示す転送結果ステータスを主メモリ上の現在の転送ディスクリプタ内のステータスフィールド２０５に書き込む。
【００２４】
第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２もいわゆるディスクリプタベースのＤＭＡ転送（descriptor based DMA）を実行するコントローラであり、ＣＰＵ１１によって主メモリ１２に格納された第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）にしたがってＤＭＡ転送を実行する。第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）は、実行すべき複数のデータ転送の内容を記述した情報であり、当該複数のデータ転送の内容をそれぞれ記述した複数の転送ディスクリプタから構成されている。
【００２５】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１からの起動信号ＳＴＡＲＴを受信する度、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）内の処理対象の現在の転送ディスクリプタを処理することにより、主メモリ１２に格納されたサブデータＤａｔａ２をＤＭＡによってリードするための一連のデータ転送の内の１つの転送を実行する。
【００２６】
第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、処理対象の現在の転送ディスクリプタを保持するレジスタ（ＴＤ２レジスタ）１１５を備えている。第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、起動信号ＳＴＡＲＴを受信すると、まず、第２の転送ディスクリプタチェーン（ＴＤ２  Ｃｈａｉｎ）内の先頭の転送ディスクリプタを主メモリ１２からレジスタ（ＴＤ２レジスタ）１１５に読み込み、そしてその読み込んだ転送ディスクリプタによって指定されるデータ転送を実行する。このデータ転送が完了すると、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、次の起動信号ＳＴＡＲＴを受信するまで待機状態（Ｗａｉｔ）となる。起動信号ＳＴＡＲＴを受信すると、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、次の転送ディスクリプタを主メモリ１２からレジスタ（ＴＤ２レジスタ）１１５に読み込み、その読み込んだ転送ディスクリプタによって指定されるデータ転送を実行する。このようにして、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、起動信号ＳＴＡＲＴを受信するたびに、１回のデータ転送を実行する。
【００２７】
第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）内の各転送ディスクリプタも、図２に示されているように、メモリアドレスフィールド２０１、転送サイズフィールド２０２、次ディスクリプタ先頭アドレスフィールド２０３、コマンドフィールド２０４、およびステータスフィールド２０５から構成されている。しかし、コマンドフィールド２０４内には、上述のフラグ（ＦＬＡＧ）を記述するためのフィールドを定義する必要はない。
【００２８】
データミキサ回路（Ｄａｔａ  Ｍｉｘ）１１３は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１によってリードされたメインデータＤａｔａ１と第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２によってリードされたサブデータＤａｔａ２とを合成して、メインデータＤａｔａ１とサブデータＤａｔａ２とを含む所定フォーマットの出力信号を生成する出力信号生成部である。この出力信号は、たとえば、メインデータＤａｔａ１とサブデータＤａｔａ２とが多重化されたデジタルデータ列から構成されている。
【００２９】
このデジタルデータ列においては、例えば、ある単位データ列ごとに、メインデータＤａｔａ１とサブデータＤａｔａ２とが交互に配置されている。各単位データ列は、ある一定データ長のメインデータＤａｔａ１の部分データ列と、このメインデータＤａｔａ１の部分データ列に対応する、サブデータＤａｔａ２の部分データ列とから構成されている。このサブデータＤａｔａ２の部分データ列のデータ長は、通常、メインデータＤａｔａ１の部分データ列のデータ長よりも短い。
【００３０】
各単位データ列に含まれるべきメインデータＤａｔａ１の部分データ列は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１による、１回または連続する数回のＤＭＡ転送によって主メモリ１２からリードすることができる。一方、各単位データ列に含まれるべきサブデータＤａｔａ２の部分データ列は、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２による１回のＤＭＡ転送によって主メモリ１２からリードすることができる。このため、サブデータＤａｔａ２のＤＭＡ転送を実行する頻度はメインデータＤａｔａ１のＤＭＡ転送を実行する頻度よりも少なくて良く、また１回のＤＭＡ転送で転送されるサブデータＤａｔａ２の転送データサイズはメインデータＤａｔａ１の転送データサイズよりも小さくてよい。
【００３１】
本実施形態においては、サブデータＤａｔａ２の転送タイミングは、第１の転送ディスクリプタチェーン（ＴＤ１  Ｃｈａｉｎ）内の各転送ディスクリプタに含まれるフラグフィールドの内容によって制御される。このため、メインデータＤａｔａ１内のある部分データ列の転送に同期して、当該メインデータＤａｔａ１内の部分データ列に対応する、サブデータＤａｔａ２の部分データ列の転送を行うことができる。したがって、データミキサ回路（Ｄａｔａ  Ｍｉｘ）１１３内に大容量の作業バッファなどを設けることなく、データミキサ回路（Ｄａｔａ  Ｍｉｘ）１１３は、主メモリ１２上の異なる記憶領域から同期して転送されるメインデータＤａｔａ１の部分データ列とサブデータＤａｔａ２の部分データ列とを組み合わせるだけで、上述の出力信号を容易に生成することができる。
【００３２】
次に、図３を参照して、信号処理装置１６によって実行されるメインデータＤａｔａ１およびサブデータＤａｔａ２の転送動作について説明する。
【００３３】
ここでは、メインデータＤａｔａ１に関するデータ転送の内容を記述した第１の転送ディスクリプタチェーン（ＴＤ１  Ｃｈａｉｎ）が転送ディスクリプタ群ＴＤ１＿１，ＴＤ１＿２，ＴＤ１＿３，ＴＤ１＿４，…から構成され、サブデータＤａｔａ２に関するデータ転送の内容を記述した第２の転送ディスクリプタチェーン（ＴＤ２  Ｃｈａｉｎ）が転送ディスクリプタ群ＴＤ２＿１，ＴＤ２＿２，…から構成されているものとする。また、転送ディスクリプタ群ＴＤ１＿１，ＴＤ１＿３にはそれぞれフラグがセットされており、転送ディスクリプタ群ＴＤ１＿２，ＴＤ１＿４にはフラグがセットされていないものとする。このような第１の転送ディスクリプタチェーン（ＴＤ１  Ｃｈａｉｎ）および第２の転送ディスクリプタチェーン（ＴＤ２  Ｃｈａｉｎ）はＣＰＵ１１によって生成され、そして主メモリ１２に格納される。
【００３４】
ＣＰＵ１１は、第１の転送ディスクリプタチェーン（ＴＤ１  Ｃｈａｉｎ）の先頭の転送ディスクリプタＴＤ１＿１の格納位置を示すメモリアドレスを第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１に通知すると共に、第２の転送ディスクリプタチェーン（ＴＤ２  Ｃｈａｉｎ）の先頭の転送ディスクリプタＴＤ２＿１の格納位置を示すメモリアドレスを第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２に通知する。この後、ＣＰＵ１１は、データ転送の開始を第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１に指示する。
【００３５】
ＣＰＵ１１からのデータ転送開始指示に応答して、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、処理対象の現在の転送ディスクリプタ、すなわち、ディスクリプタＴＤ１＿１を主メモリ１２から読み込み、レジスタ１１４に格納する。第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１から起動信号ＳＴＡＲＴを受け取るまで待機する。
【００３６】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、ディスクリプタＴＤ１＿１の処理を開始する。ディスクリプタＴＤ１＿１にはフラグがセットされているので、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生して第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２にＤＭＡ転送の開始を指示すると共に、ディスクリプタＴＤ１＿１によって指定された、メインデータＤａｔａ１内の一部のデータＤａｔａ１＿１をＤＭＡによって主メモリ１２からリードするデータ転送を開始する。
【００３７】
第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、起動信号ＳＴＡＲＴを受信すると、処理対象の現在の転送ディスクリプタ、すなわち、ディスクリプタＴＤ２＿１を主メモリ１２から読み込み、レジスタ１１５に格納する。そして、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、ディスクリプタＴＤ２＿１の処理を開始する。すなわち、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、ディスクリプタＴＤ２＿１によって指定された、サブデータＤａｔａ２内の一部のデータＤａｔａ２＿１をＤＭＡによって主メモリ１２からリードするデータ転送を実行する。このデータＤａｔａ２＿１の転送が完了すると、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、再び待機状態となる。
【００３８】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、現在の転送ディスクリプタＴＤ１＿１によって指定されたデータ（Ｄａｔａ１＿１）の転送が完了すると、ディスクリプタＴＤ１＿１内の次ディスクリプタ先頭アドレスフィールド２０３によって指定される次の転送ディスクリプタＴＤ１＿２を主メモリ１２から読み込み、レジスタ１１４に格納する。そして、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送ディスクリプタＴＤ１＿２の処理を開始する。転送ディスクリプタＴＤ１＿２にはフラグがセットされていないので、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生しない。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、現在の転送ディスクリプタＴＤ１＿２によって指定される、メインデータＤａｔａ１内の一部のデータＤａｔａ１＿２をＤＭＡによって主メモリ１２からリードするデータ転送を実行する。
【００３９】
転送ディスクリプタＴＤ１＿２によって指定されたデータＤａｔａ１＿２の転送が完了すると、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、ディスクリプタＴＤ１＿２内の次ディスクリプタ先頭アドレスフィールド２０３によって指定される次の転送ディスクリプタＴＤ１＿３を主メモリ１２から読み込み、レジスタ１１４に格納する。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送ディスクリプタＴＤ１＿３の処理を開始する。
【００４０】
ディスクリプタＴＤ１＿３にはフラグがセットされているので、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生して第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２にＤＭＡ転送の開始を指示すると共に、ディスクリプタＴＤ１＿３によって指定された、メインデータＤａｔａ１内の一部のデータＤａｔａ１＿３をＤＭＡによって主メモリ１２からリードするデータ転送を開始する。
【００４１】
第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、起動信号ＳＴＡＲＴを受信すると、ディスクリプタＴＤ２＿１内の次ディスクリプタ先頭アドレスフィールド２０３によって指定される次の転送ディスクリプタＴＤ２＿２を主メモリ１２から読み込み、レジスタ１１５に格納する。そして、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、ディスクリプタＴＤ２＿１の処理を開始して、ディスクリプタＴＤ２＿１によって指定されるサブデータＤａｔａ２内の一部のデータＤａｔａ２＿２をＤＭＡによって主メモリ１２からリードするデータ転送を実行する。このデータＤａｔａ２＿２の転送が完了すると、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、再び待機状態となる。
【００４２】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送ディスクリプタＴＤ１＿３によって指定されたデータＤａｔａ１＿３の転送が完了すると、転送ディスクリプタＴＤ１＿３内の次ディスクリプタ先頭アドレスフィールド２０３によって指定される次の転送ディスクリプタＴＤ１＿４を主メモリ１２から読み込み、レジスタ１１４に格納する。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送ディスクリプタＴＤ１＿４の処理を開始する。転送ディスクリプタＴＤ１＿４にはフラグがセットされていないので、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生しない。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送ディスクリプタＴＤ１＿４によって指定される、メインデータＤａｔａ１内の一部のデータＤａｔａ１＿４をＤＭＡによって主メモリ１２からリードするデータ転送を実行する。
【００４３】
図４には、データミキサ回路（Ｄａｔａ  Ｍｉｘ）１１３によって生成される出力信号の一例が示されている。
【００４４】
図４の出力信号においては、先頭の単位データ列は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１による２回のＤＭＡ転送によって主メモリ１２からリードされた２つの部分データ列Ｄａｔａ１＿１，Ｄａｔａ１＿２と、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２による１回のＤＭＡ転送によって主メモリ１２からリードされた１つの部分データ列Ｄａｔａ２＿１から構成されている。また、２番目の単位データ列は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１による２回のＤＭＡ転送によって主メモリ１２からリードされた２つの部分データ列Ｄａｔａ１＿３，Ｄａｔａ１＿４と、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２による１回のＤＭＡ転送によって主メモリ１２からリードされた１つの部分データ列Ｄａｔａ２＿１から構成されている。
【００４５】
また、サブデータの部分データ列については、連続する２つの単位データ列で共通に使用してもよい。この場合、例えば、先頭の単位データ列は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１による１回のＤＭＡ転送によって主メモリ１２からリードされた部分データ列Ｄａｔａ１＿１と、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２による１回のＤＭＡ転送によって主メモリ１２からリードされた部分データ列Ｄａｔａ２＿１とから構成され、２番目の単位データ列は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１による１回のＤＭＡ転送によって主メモリ１２からリードされた部分データ列Ｄａｔａ１＿２と、先頭の単位データ列で使用した部分データ列Ｄａｔａ２＿１とから構成される。
【００４６】
図５には、データミキサ回路（Ｄａｔａ  Ｍｉｘ）１１３の構成の一例が示されている。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１によって主メモリ１２から転送されるデータは受信バッファ２０１に格納され、また第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２によって主メモリ１２から転送されるデータは受信バッファ２０２に格納される。マルチプレクサ２０３は、例えば、受信バッファ２０１に格納されたメインデータと受信バッファ２０２に格納されたサブデータとを交互に読み出すことにより、メインデータとサブデータとが多重化された出力信号を生成する。
【００４７】
次に、具体的な出力信号の例について説明する。出力信号は、例えば、デジタルオーディオ出力信号、またはデジタルビデオ出力信号等として使用される。
【００４８】
図６は、信号処理装置１６から出力されるデジタルオーディオ出力信号のフォーマットの例を示している。このデジタルオーディオ出力信号においては、メインデータはオーディオデータから構成され、サブデータはユーザデータから構成される。ユーザデータは、オーディオデータに関する属性データである。
【００４９】
例えば、ユーザデータは、オーディオデータのタイトル情報、歌詞情報、および再生開始からの経過時間を示す時間情報の内の少なくとも一つを含む。単位データ列は、ある再生時間分のオーディオデータ列（例えば、１以上のオーディオフレーム）と、当該オーディオデータ列に対応するユーザデータとから構成される。このようなデジタルオーディオ出力信号のフォーマットの規格の例としては、ＩＥＣ６０９５８などがある。
【００５０】
図７は、信号処理装置１６から出力されるデジタルビデオ出力信号のフォーマットの例を示している。このデジタルビデオ出力信号においては、メインデータはビデオデータから構成され、サブデータはユーザデータから構成される。ユーザデータは、ビデオデータに関する属性データである。例えば、ユーザデータは、ビデオデータの輝度の階調値を制御するためのディザパターン情報等を含む。単位データ列は、たとえば、１フレーム分のビデオデータと、当該ビデオデータ列に対応するディザパターン情報とから構成される。
【００５１】
次に、図８および図９を参照して、主メモリ１２上の異なるメモリ領域にそれぞれに格納されたオーディオデータ（メインデータ）およびユーザデータ（サブデータ）からデジタルオーディオ出力信号を生成する場合の動作について説明する。
【００５２】
図８には、第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）および第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）それぞれの記述内容の例が示されている。
【００５３】
第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）は、オーディオデータの転送内容を記述した転送ディスクリプタ群ＴＤ１＿１，ＴＤ１＿２，ＴＤ１＿３，ＴＤ１＿４，ＴＤ１＿５，…から構成されている。オーディオデータは、複数の部分オーディオデータ群ＡＵＤＩＯ１，ＡＵＤＩＯ２，ＡＵＤＩＯ３，ＡＵＤＩＯ４，ＡＵＤＩＯ５，…から構成されている。転送ディスクリプタ群ＴＤ１＿１，ＴＤ１＿２，ＴＤ１＿３，ＴＤ１＿４，ＴＤ１＿５，…は、それぞれ部分オーディオデータ群ＡＵＤＩＯ１，ＡＵＤＩＯ２，ＡＵＤＩＯ３，ＡＵＤＩＯ４，ＡＵＤＩＯ５，…の転送を指示する情報を含む。また転送ディスクリプタ群ＴＤ１＿２，ＴＤ１＿５には、それぞれフラグがセットされている。
【００５４】
第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）は、ユーザデータの転送内容を記述した転送ディスクリプタ群ＴＤ２＿１，ＴＤ２＿２，ＴＤ２＿３，…から構成されている。ユーザデータは、複数の部分ユーザデータ群ＵＳＥＲ１，ＵＳＥＲ２，ＵＳＥＲ３，…から構成されている。転送ディスクリプタ群ＴＤ２＿１，ＴＤ２＿２，ＴＤ２＿３…は、それぞれ部分ユーザデータ群ＵＳＥＲ１，ＵＳＥＲ２，ＵＳＥＲ３，…の転送を指示する情報を含む。
【００５５】
この場合、部分オーディオデータＡＵＤＩＯ２の転送に同期して部分ユーザデータ群ＵＳＥＲ１の転送が実行され、また部分オーディオデータＡＵＤＩＯ５の転送に同期して部分ユーザデータ群ＵＳＥＲ２の転送が実行される。
【００５６】
このデータ転送の様子を図９に示す。
【００５７】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、転送ディスクリプタ群ＴＤ１＿１，ＴＤ１＿２，ＴＤ１＿３，ＴＤ１＿４，ＴＤ１＿５，…を順次処理して、部分オーディオデータ群ＡＵＤＩＯ１，ＡＵＤＩＯ２，ＡＵＤＩＯ３，ＡＵＤＩＯ４，ＡＵＤＩＯ５，…をリードするための一連のデータ転送を実行する。この場合、部分オーディオデータＡＵＤＩＯ２の転送開始時には、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生する。この起動信号ＳＴＡＲＴに応答して、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、転送ディスクリプタ群ＴＤ２＿１を処理して、部分ユーザデータＵＳＥＲ１をリードするためのデータ転送を実行する。また、部分オーディオデータＡＵＤＩＯ５の転送開始時にも、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生する。この起動信号ＳＴＡＲＴに応答して、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、転送ディスクリプタ群ＴＤ２＿２を処理して、部分ユーザデータＵＳＥＲ２をリードするためのデータ転送を実行する。
【００５８】
次に、図１０のフローチャートを参照して、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１によって実行される処理の手順を説明する。
【００５９】
ＣＰＵ１１から転送開始指示を受けると（ステップＳ１０１のＹＥＳ）、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）内の処理対象の転送ディスクリプタを主メモリ１２からレジスタ１１４に読み込む（ステップＳ１０２）。第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、レジスタ１１４内の現在の転送ディスクリプタをチェックして、現在の転送ディスクリプタに第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２の起動を指示する制御情報が含まれているか否か、つまり現在の転送ディスクリプタにフラグがセットされているか否かを判断する（ステップＳ１０３）。
【００６０】
現在の転送ディスクリプタにフラグがセットされているならば（ステップＳ１０３のＹＥＳ）、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、起動信号ＳＴＡＲＴを発生して、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２にＤＭＡ転送の開始を指示する（ステップＳ１０４）。一方、現在の転送ディスクリプタにフラグがセットされていないならば（ステップＳ１０３のＮＯ）、ステップＳ１０４の処理はスキップされる。
【００６１】
第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、現在の転送ディスクリプタによって指定されるメインデータをＤＭＡによってリードするデータ転送を開始する（ステップＳ１０５）。このデータ転送が完了すると（ステップＳ１０６のＹＥＳ）、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）内の全ての転送ディスクリプタの処理が完了したかどうかを判断する（ステップＳ１０７）。全ての転送ディスクリプタの処理が完了していない場合、つまり次に処理すべき転送ディスクリプタがある場合には（ステップＳ１０７のＮＯ）、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１は、当該次に処理すべき転送ディスクリプタについて上述のステップＳ１０２〜Ｓ１０６の処理を実行する。このようにして、第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）内の全ての転送ディスクリプタが順次処理される。
【００６２】
次に、図１１のフローチャートを参照して、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２によって実行される処理の手順を説明する。
【００６３】
第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、第１のＤＭＡコントローラ（ＤＭＡＣ＃１）１１１からの起動信号ＳＴＡＲＴの発生を待機する。起動信号ＳＴＡＲＴを受信すると（ステップＳ１１１のＹＥＳ）、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）内の処理対象の転送ディスクリプタを主メモリ１２からレジスタ１１５に読み込む（ステップＳ１１２）。第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、レジスタ１１５内の現在の転送ディスクリプタを処理し、その現在の転送ディスクリプタによって指定されるサブデータをＤＭＡによって主メモリ１２からリードするデータ転送を開始する（ステップＳ１１３）。このデータ転送が完了すると（ステップＳ１１４のＹＥＳ）、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）内の全ての転送ディスクリプタの処理が完了したかどうかを判断する（ステップＳ１１５）。全ての転送ディスクリプタの処理が完了していない場合、つまり次に処理すべき転送ディスクリプタがある場合には（ステップＳ１１５のＮＯ）、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、次の起動信号ＳＴＡＲＴの発生を待機する。起動信号ＳＴＡＲＴを受信すると（ステップＳ１１１のＹＥＳ）、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、次に処理すべき転送ディスクリプタについて上述のステップＳ１１２〜Ｓ１１４の処理を実行する。このようにして、第２のＤＭＡコントローラ（ＤＭＡＣ＃２）１１２は、起動信号ＳＴＡＲＴを受信するたびに、第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）内の１つの転送ディスクリプタを処理する。
【００６４】
以上のように、本実施形態においては、主メモリ１２上の異なる領域にそれぞれ格納された２種類のデータ（メインデータ、サブデータ）が２つのＤＭＡコントローラ１１１，１１２によって同期して読み出されるので、それら２種類のデータを含む出力信号を容易に生成することが可能となる。この場合、ＤＭＡコントローラ１１２の起動タイミングは、ＤＭＡコントローラ１１１によって順次処理される転送ディスクプリタ群それぞれに含まれるフラグフィールドの内容によって制御される。よって、ソフトウェアの制御の下、２つのＤＭＡコントローラ１１１，１１２のＤＭＡ転送動作を容易に同期化させることができる。
【００６５】
なお、本実施形態では、第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）および第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）を主メモリ１２上に格納したが、信号処理装置１６内に作業メモリが設けられている場合には、これら第１の転送ディスクリプタチェーン情報（ＴＤ１  Ｃｈａｉｎ）および第２の転送ディスクリプタチェーン情報（ＴＤ２  Ｃｈａｉｎ）を作業メモリ上に格納しても良い。
【００６６】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態に係る信号処理システムの構成を示すブロック図。
【図２】図１の信号処理システムで用いられるディスクリプタの構成を示す図。
【図３】図１の信号処理システムによって実行されるデータ転送動作を説明するための図。
【図４】図１の信号処理システムによって生成される出力信号の例を示す図。
【図５】図１の信号処理システムに設けられた出力信号生成部の構成例を示すブロック図。
【図６】図１の信号処理システムによって生成されるデジタルオーディオ出力信号の例を示す図。
【図７】図１の信号処理システムによって生成されるデジタルビデオ出力信号の例を示す図。
【図８】図１の信号処理システムで用いられる２つの転送ディスクリプタチェーンの例を示す図。
【図９】図１の信号処理システムにおいてオーディオデータとユーザデータとが同期して転送される様子を示す図。
【図１０】図１の信号処理システムに設けられた第１のＤＭＡコントローラによって実行される処理手順を示すフローチャート。
【図１１】図１の信号処理システムに設けられた第２のＤＭＡコントローラによって実行される処理手順を示すフローチャート。
【符号の説明】
【００６８】
１１…ＣＰＵ、１２…主メモリ、１６…信号処理装置、１１１…第１のＤＭＡコントローラ、１１２…第２のＤＭＡコントローラ、１１３…データミキサ回路、２０１…メモリアドレスフィールド、２０２…転送サイズフィールド、２０３…次ディスクリプタ先頭アドレスフィールド、２０４…コマンドフィールド、２０５…ステータスフィールド、３００…フラグフィールド。
【図１】
2006215886.tif 000003
【図２】
2006215886.tif 000004
【図３】
2006215886.tif 000005
【図４】
2006215886.tif 000006
【図５】
2006215886.tif 000007
【図６】
2006215886.tif 000008
【図７】
2006215886.tif 000009
【図８】
2006215886.tif 000010
【図９】
2006215886.tif 000011
【図１０】
2006215886.tif 000012
【図１１】
2006215886.tif 000013