(57)【要約】      （修正有）【課題】  異なるタイプのインタフェースからの入力信号又は異なるタイプのインタフェースへの出力信号に対する、共通のシステムクロックのプリプロセスを容易にする。【解決手段】  音声処理技術では、異なるサンプルクロックの周波数、及び／又は異なるデータフレーム又は異なるデータワードのフォーマットに関連する異なるタイプのインタフェースが存在する。異なるタイプのインタフェースからの入力信号は、その後の共通フォーマットの中央演算処理のためにプリプロセスされる。このプリプロセスは、共通のシステムクロックに対する同期、異なるタイプのインタフェースに符合する異なるチャネルプロトコルに従うチャネルデコードに対する同期、及び該ＰＣＭビットストリームから、これよりサンプルワードが中央演算処理に供給される中間的な記憶装置に記憶されるサンプルワードを形成するように同期を利用する。【選択図】  図１
2004248279.tif 000002
【特許請求の範囲】
【請求項１】
共通のシステムクロック（ｓｙｓ＿ｃｌｋ）を使用して、共通フォーマットの中央演算処理のために、異なるタイプのインタフェース（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）からの入力信号（ＳＡＤＩ）をプリプロセスするための方法であって、前記異なるインタフェースタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレーム又はデータワードのフォーマットに関連しており、
前記異なるタイプのインタフェースからの入力信号（ＳＡＤＩ）から、システムクロックに同期した入力信号を発生し（ＧＰＩ）、
前記異なるタイプのインタフェースに関連する前記異なるチャネルプロトコル（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）に従い、前記システムクロックに同期した入力信号をチャネルデコードし（１１）、一様なワードフォーマットを有する対応するＰＣＭビットストリームのフォーマット信号を供給し、
前記ＰＣＭビットストリームのフォーマット信号から、たとえばＦＩＦＯのような、これよりサンプルワードが前記中央演算処理に供給される中間的な記憶装置（１４）に記憶されるサンプルワードを形成するように、前記ＰＣＭビットストリームのフォーマット信号をさらに処理する（１３）、
ことを特徴とする方法。
【請求項２】
共通のシステムクロック（ｓｙｓ＿ｃｌｋ）を使用して、共通フォーマットの中央演算処理において、異なるタイプのインタフェース（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）への出力信号（ＳＡＤＯ）をプリプロセスするための方法であって、前記異なるインタフェースタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレーム又はデータワードのフォーマットに関連しており、
システムクロックに同期したＰＣＭビットストリームのフォーマット信号をサンプルワードから形成することで、前記中央演算処理から出力され（ＳＢ）、たとえばＦＩＦＯのような中間的な記憶装置（１４）に記憶される前記サンプルワードをさらに処理し（１３）、ＰＣＭビットストリームのフォーマット信号は、一様なワードフォーマットを有し、かつ前記異なるタイプのインタフェース（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）に関連しており、
前記異なるタイプのインタフェースに関連する前記異なるチャネルプロトコル（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）に従い、一様なワードフォーマットを有する前記システムクロックに同期したＰＣＭビットストリームのフォーマット信号をチャネルエンコードして、対応するシステムクロックに同期した出力信号を供給し（１２）、
前記システムクロックに同期した出力信号から、もはやシステムクロックに同期しないが前記タイプのインタフェースに従うインタフェースタイプに適合した出力信号（ＳＡＤＯ）を発生する（ＧＰＯ）、
ことを特徴とする方法。
【請求項３】
共通のシステムクロック（ｓｙｓ＿ｃｌｋ）を使用して、共通フォーマットの中央演算処理のために、異なるタイプのインタフェース（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）からの入力信号（ＳＡＤＩ）をプリプロセスするための装置であって、前記異なるインタフェースタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレーム又はデータワードのフォーマットに関連しており、
前記異なるタイプのインタフェースからの入力信号（ＳＡＤＩ）から、システムクロックに同期した入力信号を発生するための手段（ＧＰＩ）と、
前記異なるタイプのインタフェースに関連する前記異なるチャネルプロトコル（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）に従い、前記システムクロックに同期した入力信号をチャネルデコードして、一様なワードフォーマットを有する対応するＰＣＭビットストリームのフォーマット信号を供給するための手段（１１）と、
前記ＰＣＭビットストリームのフォーマット信号から、たとえばＦＩＦＯのような、これよりサンプルワードが前記中央演算処理に供給される中間的な記憶装置（１４）に記憶されるサンプルワードを形成するように、前記ＰＣＭビットストリームのフォーマット信号をさらに処理するための手段（１３）と、
を備えることを特徴とする装置。
【請求項４】
共通のシステムクロック（ｓｙｓ＿ｃｌｋ）を使用して、共通フォーマットの中央演算処理において、異なるタイプのインタフェース（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）への出力信号（ＳＡＤＯ）をプリプロセスするための装置であって、前記異なるインタフェースタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレーム又はデータワードのフォーマットに関連しており、
システムクロックに同期したＰＣＭビットストリームのフォーマット信号をサンプルワードから形成することで、前記中央演算処理から出力され（ＳＢ）、たとえばＦＩＦＯのような中間的な記憶装置（１４）に記憶される前記サンプルワードをさらに処理するための手段と（１３）、ＰＣＭビットストリームのフォーマット信号は、一様なワードフォーマットを有し、かつ前記異なるタイプのインタフェース（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）に関連しており、
前記異なるタイプのインタフェースに関連する前記異なるチャネルプロトコル（ＩＥＣ９５８，Ｉ２Ｓ，ＡＣ−Ｌｉｎｋ，ＡＤＡＴ）に従い、一様なワードフォーマットを有する前記システムクロックに同期したＰＣＭビットストリームのフォーマット信号をチャネルエンコードして、対応するシステムクロックに同期した出力信号を供給するための手段と（１２）、
前記システムクロックに同期した出力信号から、もはやシステムクロックに同期しないが前記タイプのインタフェースに従うインタフェースタイプに適合した出力信号（ＳＡＤＯ）を発生するための手段（ＧＰＯ）と、
を備えることを特徴とする装置。
【請求項５】
前記インタフェースのタイプは、ＩＥＣ９５８、Ｉ２Ｓ、ＡＣ−Ｌｉｎｋ及びＡＤＡＴのうちの少なくとも２つを含む、
請求項１乃至４のいずれか記載の方法又は装置。
【請求項６】
チャネルの置き換えを検出して回避するために、システムクロックに同期した処理で、幾つかの個々のサンプルがそれらのチャネルタイプで記録又はチェックされ、前記チャネルの置き換えは、たとえばサンプルを挿入又は消去した場合に生じ、前記記録は、たとえば、前記システムクロックに同期した処理で特に使用されないサブコードのビットを使用して実行される、
請求項１乃至５のいずれか記載の方法又は装置。
【請求項７】
前記中間的な記憶装置（１４）に関するＤＭＡブロック転送のために、それぞれのＤＭＡデータブロックの最初のワードについてＬＦの記録が実行され、該ＬＦ記録は、ＤＭＡバッファ出力を準備するときにプロセッサの処理数を低減するために評価される、
請求項１乃至６のいずれか記載の方法又は装置。
【請求項８】
前記サンプルワードの更なる処理を実行するストリームユニットの正確に時間設定されたスタートアップを容易にするために、内部発生されたタイムスタンプが中央演算処理により前記ストリームユニットに供給される、
請求項１乃至７のいずれか記載の方法又は装置。
【請求項９】
個別のクロック、及びデータ又は前記システムクロックに対する同期信号を有するインタフェース信号の同期のために、同期されるクロック（ｂｃｋ）の同じエッジでクロックされる２つの連続するＤフリップフロップが使用される、
請求項１乃至８のいずれか記載の方法又は装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通のシステムクロックを利用して、異なるタイプのインタフェースからの入力信号、又は異なるタイプのインタフェースへの出力信号を共通フォーマットの中央演算処理でプリプロセスするための方法及び装置に関する。
【背景技術】
【０００２】
デジタルＩＯ向けのＩＥＣ９５８及びＡＤＡＴ、或いは主にＡＤ／ＤＡコンバータへの接続向けのＡＣ−ＬＩＮＫ及びＩ２Ｓのような、様々なＡ／Ｖシステム向けデジタルオーディオ入力／出力インタフェースが一般に使用されている。今日では、一般的なインタフェースアプリケーションは、単一のインタフェースタイプを超える機能を要求することもある。
【０００３】
かかるインタフェースの公知のビルディングブロックは、単一のインタフェースを通常実現する。たとえば、受信機は、雑音のないデータビットと、シリアルデータビットストリームから一連のサンプルワードを形成する後段の直列−並列変換向けのビットクロックとを出力するプロトコルのデコーダから構成されている。その後、このサンプルワードは、たとえば、ダイレクトメモリアクセス（ＤＭＡ）及び／又は、割込み又はポーリングデータ転送、並びに必要であれば、オーディオデータをバッファリングするためのＦＩＦＯを利用して、処理システムのメモリに書き込まれる。
【０００４】
送信機は、対応して逆方向のデータ処理を実現する類似の構成要素から構成される。一般のシステムは、プロセッサのクロックとオーディオのサンプリング周波数の比により、データ転送向けのＤＭＡを利用する。基本的なＤＭＡ転送動作は、処理速度が問題とされない場合にはソフトウェアで実行することができる。以下では、ＤＭＡの使用に対して時々言及するが、本発明では、それぞれのケースで、ＤＭＡ入力及び出力を割込み又はポーリング機構により置き換えることができる。
【０００５】
（ＩＥＣ９５８受信機のような）単一プロトコル向けの専用インタフェースは、専用の直列−並列コンバータ、すなわち、ＭＳＢ  ｆｉｒｓｔ又はＬＳＢ  ｆｉｒｓｔを実現し、ビット数等はインタフェースの仕様に従うコンバータを一般に利用する（又は、送信機の場合には、並列−直列コンバータを利用する）。
【発明の開示】
【課題を解決するための手段】
【０００６】
共通すなわち中央のプロセッサと相互作用のために異なるタイプのオーディオインタフェースを結合するとき、複数の異なる動作条件が考慮されなければならない。基本的に、かかるインタフェースは、随伴する同期及びクロック信号をほとんど用いることなく或いは全く用いることなしに、オーディオデータのシリアル転送を利用する。さらに、オーディオインタフェースは、プロセッサ又はバスのシステムクロックに関連していない特別なオーディオに関連したクロックを使用している。したがって、１つ以上の同時に使用されているオーディオインタフェースを組み込むことは、アクティブなインタフェースあたり最多で１つの追加の異なるクロックまで、幾つかの独立なオーディオクロックが出現することになる。
【０００７】
全ての先に説明されたインタフェースは、最大２４ビットのＰＣＭデータワードを転送するものであり、これにより、幾つかの順次に転送されるＰＣＭデータワードは、完全なオーディオサンプルを形成する（ＩＥＣ９５８、Ｉ２ＳＴＹＰＥ２、ステレオ；ＡＤＡＴ  ｔｙｐｅ８；ＡＣ−Ｌｉｎｋ  ｔｙｐｅ  ２  ｔｏ  ６：マルチチャネル）。あるタイプのインタフェースについて、追加のサイド情報は、たとえば、ＳＰＤＦ：  ＶＵＣ；  ＡＤＡＴ：  Ｕｓｅｒ  Ｂｉｔｓ；  ＡＣ−Ｌｉｎｋ：  Ｔａｇ，  Ｃｍｄ，  Ｓｔａｔｕｓのようなオーディオ情報ビットとマージされる。シリアルＰＣＭデータの転送は、ＬＳＢ（最下位ビット）  ｆｉｒｓｔ又はＭＳＢ（最上位ビット）  ｆｉｒｓｔのいずれかとなることができる。
【０００８】
本発明により解決されるべき課題は、異なるタイプのインタフェースからの入力信号又は異なるタイプのインタフェースへの出力信号に対して、共通のシステムクロックのプリプロセスを容易にすることである。ここで、異なるインタフェースのタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレームのフォーマット又は異なるデータワードのフォーマットに関連している。また、本発明により解決されるべき課題は、共通のシステムクロックの動作領域をできるだけ広くすることである。この問題は、請求項１及び請求項２に開示される方法により解決される。本方法を利用する装置は、請求項３及び請求項４に開示されている。
【０００９】
以下の説明において、用語「オーディオサンプル」又は「サンプル」は、Ｋ個の番号（又はワード）からなる完全なＫチャネルのサンプルを示している。１つの番号はチャネルの１つにそれぞれ対応しており、Ｋはオーディオチャネルの数である。これらの番号は、「サンプルワード」又は「ワード」と示される。
【００１０】
本発明のオーディオインタフェースのアーキテクチャは、パラメータ付きユニバーサルオーディオＩＣセル又はユニットの実現に関連している。このユニットは、システムＩＣ設計、ＰＣＢ設計及びソフトウェア設計についてできるだけ高い柔軟性を保持するやり方で、中央演算処理システムにおいて、同時かつ様々な形態で、先に説明されたタイプのインタフェースの少なくとも全てから到来するデータ、又は先に説明されたタイプのインタフェースの少なくとも全てに供給されるデータを処理することができる。
【００１１】
本発明は、全体的なセル又はユニットのアーキテクチャ、及び特定の詳細な解決策に関連している。
【００１２】
ＤＳＰ（デジタルシグナルプロセッサ）は、ＤＳＰデータワードからなる入力及び出力を様々な特殊なシリアルデータフォーマットにすることができる、一般的に機器構成可能なシリアルインタフェースＳＩＯ（シリアル入出力）を含んでいることがある。先に説明された単一プロトコル向け専用インタフェースの代替として、先に説明されたマルチタイプインタフェースのうちの１つを実現するために、かかるユニバーサルＳＩＯを特定のプロトコルのデコーダ又はエンコーダと結合することができる。完全なユニットは、ビットクロック又はそれぞれのチャネルクロックで時間を計測することができる。プロセッサクロックを利用して、プロセッサによるパラレルサンプルワードへのアクセスが好適に提供される。
【００１３】
図１は、本発明によるデジタルオーディオインタフェースユニットの例示的なアーキテクチャを示している。シリアルオーディオデータ入力ＳＡＤＩ信号及びシリアルオーディオデータ出力ＳＡＤＯ信号が左側に示されており、システムプロセッサ（ＲＩＳＣ、ＤＳＰ又はμＰ、図示せず）に接続しているシステムバスＳＢが右側に示されている。全てのオーディオクロックに関連する信号は、できるだけ早く（入力）又はできるだけ遅く（出力）システムクロックに同期される。このシステムクロックは、バスクロックに等しい場合がある。有利なことに、これにより、システムクロックの処理領域、すなわちシステムクロックでのみ時間を計測されるロジックの部分をできるだけ広くすることができる。
【００１４】
汎用の入力ブロックＧＰＩ（同期ステージと、ＳＡＤＩ信号を双方向かつ汎用的に使用するための制御ロジックとを含む）を介して、Ｎ個のオーディオデータ入力は、１つずつ、チャネルプロトコルのデコード（すなわち、ＩＥＣ９５８、Ｉ２Ｓ、ＡＣ−Ｌｉｎｋ、ＡＤＡＴ等のプロトコル）に対処するＮチャネルデコーダユニット１１に供給され、入力ビット当たりのデータビットのタイプ（たとえば、ＰＣＭ、サブコード又はｉｇｎｏｒｅ）を判定する。結果的に得られたＮ組の一般のＰＣＭビットストリームフォーマット信号は、インタフェースのタイプに依存しないストリームユニット１３に供給され、このユニット１３は、Ｎ入力のうちの単一の入力又は複数の入力から、できる限り中間的なレジスタでの記憶装置を利用して、到来するシリアルデータビット（ＰＣＭ及びサブコード）をサンプルワードとしてＦＩＦＯ１４に出力する。ＦＩＦＯ１４は、バスインタフェース１５を介して、その出力信号をバスＳＢに渡すことができる。
【００１５】
同様に、バスＳＢからのデータは、バスインタフェース１５、ＦＩＦＯ１４、ストリームユニット１３、Ｍチャネルエンコーダユニット１２及び汎用出力ブロックＧＰＯ（シリアルオーディオデータ出力のための同期ステージ、及びＳＡＤＯ信号を双方向かつ汎用的に使用するための制御ロジックを含む）を介して、Ｍ個のシリアルオーディオデータ出力信号ＳＡＤＯを供給する出力に渡す。これにより、ＭはＮと異なる。
【００１６】
チャネルエンコーダユニット１２は、一般のＰＣＭビットストリームを異なるインタフェースフォーマットにエンコードする。すなわち、このユニット１２は、１つ以上のＩＥＣ９５８、ＡＣ’９７、Ｉ２Ｓ及びＡＤＡＴエンコーダを含んでいる。
【００１７】
ストリームユニット１３は、直列−並列変換を実行する。このユニット１３は、あるストリームに属する異なる入力信号から全ての到来するＰＣＭビットを収集し、レジスタファイル１９に記録する。この記録の内容は、その結果ＦＩＦＯ１４に転送することができる。ＦＩＦＯ１４から到来するデータについて逆も可能である。たとえば、最大１６チャネルからそれぞれ構成される８つの同時のオーディオストリームを処理するために、８つの異なるストリームユニットが存在する。レジスタファイル１８は、オーディオセルについて全ての制御及び状態レジスタを含んでいる。クロックユニット１６は、同期された内部ビットクロック及びイネーブル信号を発生する。タイマーユニット１７は、現在のシステムの時間のためのカウンタ、ローダブルタイマー、及び外部の基準信号でシステムの時間をサンプルするためのレジスタを含んでいる。
【００１８】
入力データＳＡＤＩ及び出力データＳＡＤＯは、対応するビットクロックＢＣＫ、マスタークロックＭＣＫ、及び信号ＬＲＣＫを伴う。この信号ＬＲＣＫは、たとえば、Ｉ２Ｓ及びＡＣ９７といった、個別のクロック、データ及び同期信号を有するインタフェースタイプ向けの完全なオーディオサンプルの最初のＰＣＭワードのうちの最初のビットを特定する。このクロック信号又は同期信号は、クロックユニット１６により選択され、システムクロックに同期される。
【００１９】
プロトコルのコンバータは、直列−並列変換と同様に、共通のビットクロック／チャネルクロックによりクロックされる。
【００２０】
原理的に、本発明の方法は、共通のシステムクロックを使用して、共通のフォーマットの中央演算処理向けに異なるタイプのインタフェースからの入力信号をプリプロセス（ｐｒｅ−ｐｒｏｃｅｓｓｉｎｇ）するために適するものである。この異なるインタフェースのタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレームのフォーマット又は異なるデータワードのフォーマットに関連している。本方法は、以下のステップを含んでいる。
【００２１】
異なるタイプのインタフェースからの入力信号から、システムクロックに同期した入力信号を生成するステップ。
【００２２】
該異なるタイプのインタフェースに適合する異なるチャネルプロトコルに従い、該システムクロックに同期した入力信号をチャネルデコードし（ｃｈａｎｎｅｌ  ｄｅｃｏｄｉｎｇ）、これにより、一様なワードフォーマットを有する対応するＰＣＭビットストリームのフォーマット信号を供給するステップ。
【００２３】
該ＰＣＭビットストリームのフォーマット信号から、たとえばＦＩＦＯのような、これよりサンプルワードが中央演算処理に供給される中間的な記憶装置に記憶されるサンプルワードを形成するように、該ＰＣＭビットストリームのフォーマット信号をさらに処理するステップ。
【００２４】
或いは、本発明の方法は、共通のシステムクロックを使用して、共通フォーマットの中央演算処理において異なるタイプのインタフェースへの出力信号をプリプロセスするために適するものである。この異なるインタフェースのタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレームのフォーマット又は異なるデータワードのフォーマットに関連している。本方法は、以下のステップを含んでいる。
【００２５】
サンプルワードから、システムクロックに同期したＰＣＭビットストリームのフォーマット信号を形成することにより、該中央演算処理から出力され、たとえばＦＩＦＯのような中間的な記憶装置に記憶されるサンプルワードをさらに処理するステップ。このＰＣＭビットストリームのフォーマット信号は、一様なワードフォーマットを有しており、異なるタイプのインタフェースに適合する。
【００２６】
該異なるタイプのインタフェースに適合する異なるチャネルプロトコルに従い、一様なワードフォーマットを有する該システムクロックに同期したＰＣＭビットストリームのフォーマット信号をチャネルエンコードし（ｃｈａｎｎｅｌ  ｅｎｃｏｄｉｎｇ）、これにより、対応するシステムクロックに同期した出力信号を供給するステップ。
【００２７】
該システムクロックに同期した出力信号から、もはやシステムクロックに同期していないが、かかるインタフェースのタイプに従うインタフェースのタイプに適合した出力信号を発生するステップ。
【００２８】
原理的に、本発明の装置は、共通のシステムクロックを使用して、共通フォーマットの中央演算処理向けに異なるタイプのインタフェースからの入力信号をプリプロセスするために適するものである。かかる異なるインタフェースのタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレームのフォーマット又は異なるデータワードのフォーマットに関連している。本装置は、以下の構成要素を含んでいる。
【００２９】
異なるタイプのインタフェースからの入力信号から、システムクロックに同期した入力信号を発生するための手段。
【００３０】
該異なるタイプのインタフェースに適合する異なるチャネルプロトコルに従い、該システムクロックに同期した入力信号をチャネルデコードし、これにより、一様なワードフォーマットを有する対応するＰＣＭビットストリームのフォーマット信号を供給するための手段。
【００３１】
該ＰＣＭビットストリームのフォーマット信号から、たとえば、ＦＩＦＯのような、これよりサンプルワードが中央演算処理に供給される中間的な記憶装置に記憶されているサンプルワードを形成するように、該ＰＣＭビットストリームのフォーマット信号をさらに処理するための手段。
【００３２】
或いは、本発明の装置は、共通のシステムクロックを使用して、共通のフォーマットの中央演算処理において異なるタイプのインタフェースへの出力信号をプリプロセスするために適するものである。該異なるインタフェースのタイプは、異なるサンプルクロック周波数、及び／又は異なるデータフレームのフォーマット又は異なるデータワードのフォーマットに関連している。本装置は、以下の構成要素を含んでいる。
【００３３】
サンプルワードから、システムクロックに同期したＰＣＭビットストリームのフォーマット信号を形成することにより、該中央演算処理から出力され、たとえばＦＩＦＯのような中間的な記憶装置に記憶されるサンプルワードをさらに処理するための手段。このＰＣＭビットストリームのフォーマット信号は、一様なワードフォーマットを有しており、該異なるタイプのインタフェースに適合している。
【００３４】
該異なるタイプのインタフェースに適合する異なるチャネルプロトコルに従い、該システムクロックに同期したＰＣＭビットストリームフォーマットをチャネルエンコードし、これにより、対応するシステムクロックに同期した出力信号を供給するための手段。
【００３５】
該システムクロックに同期した出力信号から、もはやシステムクロックに同期しないが該タイプのインタフェースに従うインタフェースのタイプに適合した出力信号を発生するための手段。
【００３６】
本発明の有効な追加の実施の形態は、それぞれ従属的な請求項に開示されている。本発明の典型的な実施の形態は、添付図面を参照して説明される。
【発明を実施するための最良の形態】
【００３７】
図２〜図５は、ＩＥＣ９５８サブフレームのフォーマットフレーム、ＡＣフォーマットフレーム、ＡＤＡＴフォーマットフレーム及びＩ２Ｓフォーマットフレームをそれぞれ示している。これらの図から、フォーマットが非常に異なっていることが明らかである。
【００３８】
現在の最新技術による実現とは対照的に、図７に示されるチャネルデコーダのブロックは、要求されるプロトコルの全て又はほぼ全てをデコードする。この要求されるプロトコルは、固定された入力ピンに関連される。好都合なことに、プロトコルのデコーダ機能の全て又はほぼ全てを１つのユニットに実現することは、全ての個々のプロトコルのデコーダの追加される複雑さと同じ複雑さではない。これは、ロジックの一部（すなわち、ＩＥＣ９５８，ＡＤＡＴ，ＡＣ’９７及びＩ２Ｓボックス外のロジック）は、図７に示されるように共有することができるからである。ＩＥＣ９５８及びＡＤＡＴデコーダにおけるクロックデータ分離器又はプリアンブル検出器のような特定の機能は、共有されていない。
【００３９】
他方で、マルチプロトコルのエンコーダ／デコーダ（コンバータ）に関連するＩ／Ｏ信号の数を、対応する簡単な単一プロトコルのエンコーダ／デコーダ（コンバータ）の更に多い数と比較したとき、同じ数のＩＯピン及び該ピンを接続するためのある種のマルチプレクサロジックにより、複数の単一プロトコルのエンコーダ／デコーダの解決策について更に低い複雑さとすることができるが、一般に、低いトランスペアレンシー及びフレキシビリティという犠牲を払うことになる。
【００４０】
ストリームユニット１３は、多数の単方向のストリームの形式でデータ転送を実行する。それぞれのストリームに対して、１組のコンフィグレーションレジスタが割り当てられており、どの入力信号をＦＩＦＯ１４（したがって、その後の処理システム）に転送すべきか、及び利用可能なＰＣＭサンプルのタイムスロット（すなわち、第一、第二等、１つの信号入力についてのサンプルワード）のうちのどのタイムスロットでＦＩＦＯ１４に転送すべきかが判定される。それぞれのストリームは、処理システムにより独立にアクセスすることができるそれ自身のＦＩＦＯ（領域）を所有しており、結果として、ストリーム当たりの別個のＤＭＡユニット（図示せず）は、適切なＤＭＡデータ転送のために必要とされる（ストリームは、互いに独立に動作する）。入力ストリームは、複数の信号入力について構成される場合（「チャネルアグレゲーション」、たとえば、３×２チャネルストリームを形成する３つのＩＥＣ９５８インタフェース）、全ての信号は、同じインタフェースタイプに一致しなければならず、同じサンプリング周波数を有さなければならず、及び同位相でなければならない。ストリーム出力の処理及び特徴は、類似している。
【００４１】
ストリームユニットについて、幾つかの設計オプションが存在する。独立なＦＩＦＯを使用することに対して、ソフトウェアにより適切なサイズに作られた分離されたストリームＦＩＦＯに分割される単一のＦＩＦＯ−ＲＡＭを使用し、ＦＩＦＯからチャネルエンコーダ／デコーダにビットを直接転送するか、或いはチャネルエンコーダ／デコーダからＦＩＦＯにビットを直接転送することである。すなわち、任意の中間的なレジスタを必要とすることなしに、全ビットを連続して処理すること（全体のデータレートを制限する場合がある）、或いは、ＦＩＦＯ１４とチャネルデコーダ１１及びチャネルエンコーダ１２の間に配置される中間的な（シフト）レジスタを使用することである。
【００４２】
先に説明されたように、１つ又は複数のストリームユニットだけでなく、全てのチャネルエンコーダ／デコーダは、信号Ｉ／Ｏピンに接近した同期のため、共通のシステムクロックでクロックされる。最新技術の処理では、幾つかの入力及び出力ストリームが同時に転送される典型的なオーディオシナリオでは、ＳＩＯタイプ（シリアル入出力）の実現は、幾つかの異なる（ビット／チャネル）クロックを一般に使用して、関連するＳＩＯユニットを実行する。したがって、ＳＩＯユニットを一体化することによる全体の最適化が不可能であるが、本発明では、使用される単一の（ｓｙｓｔｅｍ＿）クロックのためにストリームユニット１３にとって全体的な最適化が可能である。これにより、（ビット毎に、又は１回の読出し／修正／書込み用のレジスタを使用して）ＦＩＦＯからシリアルオーディオビットストリームを直接読出すか、あるいはＦＩＦＯにシリアルオーディオビットストリームを直接書込むことで、多数の組のオーディオデータパスのレジスタなしに、１つ又は複数の完全なストリームユニットを実現することが可能である。別の容易に実現可能となる機能は、チャネルアグレゲーションであり、すなわち、幾つかの同じタイプのＩ／Ｏ信号を共通のストリームにマージすることである。それぞれの論理ストリームは、該ストリームについてどのＩ／Ｏ信号が使用されているかを選択し、これにより、Ｉ／Ｏ信号のマルチプレクサは、ストリームユニットに配置される。
【００４３】
図１２の上半部分では、チャネルエンコーダ１１及びチャネルデコーダ１２における幾つかのタイミングは、図１２の下半部分のストリームユニット１３における幾つかの信号のタイミングと共に示されている。
【００４４】
先に説明されたように、システムクロックｓｙｓ＿ｃｌｋでチャネルエンコーダ／デコーダをクロックすることにより、マルチプレクサにより選択された幾つかの可能なオーディオビットクロックのうちの任意の１つによる、図１１に部分的に示されている同期装置ユニットの主要部分に対するクロックを回避する。最後の同期ステージＴＦＦ１，ＴＦＦ２及びＲＦＦ０は、対応するオーディオビットクロックにより直接クロックされる。したがって、チップの入力パス付近の同期は、２つ以上のフリップフロップが同じゲート制御された立ち上がり／立ち下りエッジ（ｇａｔｅｄ  ｅｄｇｅ）でクロックされるのを回避する。この同期装置は、図１及び図６のクロックユニットブロック１６にそれぞれ含まれている。
【００４５】
ＳＩＯタイプのものでさえ公知の実現は、複数のサンプルに関して動作しないだけでなく、現在のプロセッサ向けの単一サンプルのワードと典型的に同じプロセッサのマシンワードに関して動作しないという事実による問題点を有している。
【００４６】
好都合なことに、検出されていないチャネルの置き換え（ｐｅｒｍｕｔａｔｉｏｎ）、及びタイムスタンプを使用したタイミングの良い出力は、図１又は図６のそれぞれに従う構成で実現することが容易である。これは、ストリームユニットがワードに代えてオーディオサンプルを処理するためである。
【００４７】
幾つかの実施の形態が以下に説明される。
【００４８】
図１及び図６では、チャネルデコーダ／エンコーダ１１，１２とストリームユニット１３の間のインタフェース信号は、対応する情報信号ｓｆｒａｍｅ＿ｅｎａｂｌｅ（サンプルフレームイネーブル）を含んでおり、この情報信号は、１つのシステムクロック（ｓｙｓ＿ｃｌｋ）のサイクルパルスであり、このパルスは、新たなサンプルの開始を示しており、ストリームユニット１３のチャネルエンコーダ又はチャネルデコーダにより発生される。信号ｐｃｍ＿ｅｎａｂｌｅ及び信号ｓｕｂｃｏｄｅ＿ｅｎａｂｌｅのそれぞれの１サイクルのパルスは、関連するデータラインに有効な各ＰＣＭのサブコードビットを伝送又は要求するｓｙｓ＿ｃｌｋサイクルを示している。
【００４９】
［基本的なオーディオＰＣＭ及びストリームフォーマット］
Ｐチャネルオーディオ信号（Ｐ＝１，２，３，サポートされるストリーム当たりの最大チャネル数）を転送するオーディオストリームは、サンプルのシーケンシャルな形式で転送され、それぞれのサンプル（たとえば、ステレオ又は６チャネルサンプル）は、チャネル当たり１つのＰ個のデータワード（たとえば、３２ビットのデータワード）から構成されることが想定されている。そのとき、考慮されるオーディオインタフェースにより転送される入力ワードのオーディオコンテンツのサイズは、最大２４ビットを超えない、すなわち最大２４ビットを超える必要がない。したがって、たとえば、通常のＲＩＳＣプロセッサ又はある種のＤＳＰ、或いはダブルワード２×１６ビットとしてのオーディオワードを記憶する１６ビットＤＳＰ向けのような、選択されたプロセッサ／メモリシステムのため、ワード当たりより多くのビットが利用可能である場合、又はたとえば、２４ビットＤＳＰの場合において２４ビットのうちの全てのビットが要求されない場合、追加のワードビットを使用して、他のサイド情報を転送することができる。
【００５０】
本発明の処理システムにデータを入力する場合、かかるサイド情報を取ることが要求される場合があるが、この処理は、追加の費用なしで、移動、スケーリング、整数から浮動小数点への変換、浮動小数点から整数への変換のような必要な他の動作とともに容易に実行することができる。
【００５１】
図８ａ及び図８ｂは、たとえば、ＦＩＦＯ１４又はシステムメモリで処理されるような、３２ビット及び２４ビットのマシンワード（図８ｃ）向けの、可能なサンプルフォーマットを示している。サイド情報のビットの簡単な変換／除去或いは挿入のために、（より長い）ワードにおいて左揃え又は右揃えのいずれかにされるＰＣＭビットを表すフォーマットが使用される。したがって、これらの変形例のみが示されている。ＰＣＭビット、Ｆビット及びＬビットに関して、全てのオーディオサンプルは、使用されるチャネルエンコーダ／デコーダとは無関係に同じ表現を有しており、２つの代替的なフォーマットのうちの１つのみがＧＰＩ／ＧＰＯ又はステージについて選択され、したがって、ハードウェア又はソフトウェアに対して固有なサンプルを表している。
【００５２】
理解／表現を容易にするために、本実施の形態に関する以下の説明は、３２ビットのフォーマットに限定される。全ての機能性、又はあるケースでは機能性のうちのサブセットは、より長いマシンワード又はより短いマシンワードで容易に実現することができる。
【００５３】
［サブコード］
個々のサンプルワードに挿入される第一のタイプのかかる追加の情報は、サブコード情報とすることができ、ＳＯＤＩＦ（ＶＵＣＰ）、ＡＤＡＴ（Ｃ１．．Ｃ４）、ＡＣ９７（Ｔａｇｓ）のような幾つかのインタフェースは、サブコード情報を定義している。ＳＰＤＩＦのケースでは、サブコードビットは、それぞれのサンプルと既に直接関連付けされて、転送される。図８ａは、例示的な３２ビットのワードフォーマットであり、２４ビットをデータに使用し、ワード当たり最大５ビットをサブコードに使用し、３ビットを更なる情報に使用する。サブコードの総量及び内容は、インタフェースのタイプに依存する。本発明によれば、オリジナルのサブコードの総量は保持されるが、サブコードのビットに使用されるビット位置は固定及びユニークに選択することができる。唯一の例外は、有効ビット（Ｖ）であり、それぞれのサンプルの有効性を示している。この情報項目は、信号入力の場合に、ストリームユニット１３により特別な方法で解釈及び処理することができる。
ａ）入力ワードは、Ｖビットを含んでおり、受信されたときに送出され、これにより、有効な情報のソフトウェア処理が可能となる。
ｂ）又は、全てのサンプルワードが無効である場合に、Ｐチャネルサンプルは廃棄される（ＦＩＦＯ／メモリへの書き込みを禁止する）。
ｃ）又は、無効なワードがミュートされる。
ｄ）又は、サンプルワードは、ＣＤプレーヤのような既存の装置で公知の形式で周囲の有効なワードから補間される。
【００５４】
サブコードの転送のための好適な方法は、ＩＥＣ９５８入力のケースにおいて関連するサンプルワードと共に、４つのＶＵＣＰサブコードビットを転送すること、
（４つのサブコードビットを有するフォーマットについて）Ｐチャネルサンプルのうちの第一のワードにおける全てのＡＤＡＴサブコードビットを転送すること、
Ｉ２Ｓのケースにおける隣接する非ＰＣＭの位置（ｎｏｎ−ｐｃｍ  ｌｏｃａｔｉｏｎ）にサブコードのビットを埋め、単一のＩ２Ｓインタフェースを介してＤＳＰのような装置との結合されたオーディオとサブコードのデータ交換を可能にし、
及び／又は（データスロットに関係する）ＡＣｌｉｎｋのタグビットで有効ビットを埋める。
【００５５】
［チャネルの置き換えの回避］
オーディオ入力及び出力に関する１つの問題は、チャネルの置き換えに関する可能性である。これは、幾つかの典型的なマシンワード（典型的にはオーディオチャネル当たり１つ）が殆どのオーディオハードウェアの構成において単一のＰチャネルサンプルを転送することが必要とされる事実による。したがって、プロセッサシステム（プロセッサ、ＤＭＡユニット、シリアルＩ／Ｏユニット、ＦＩＦＯ）は、個々のマシンワードに対応するのみであって、より大きなエンティティに対応するものではない。したがって、１つのデータワードがオーディオデータストリームから誤って挿入又は消去された場合、「マシン」ワードのシーケンスを読んでいる装置又はステージ（サブルーチン、スレッド、プロセッサ、オーディオインタフェースハードウェア等）は、どのワードがどのオーディオチャネルのうちの１つに関連されているかに関する情報のトラックを解放する可能性がある。
【００５６】
図６に説明されるようなシステムでは、システムプロセッサ、ＤＭＡ、或いは割り込みベース又はポーリングベースのオーディオストリームの入力／出力を含んでおり、かかるチャネルの置き換えの原因は、誤ったＦＩＦＯアクセス、入力及び出力のインタイムのサービスを不可能にする一時的なプロセッサの計算負荷、或いは一時的に増加される割り込み遅延である場合がある。
【００５７】
したがって、適切なチャネルでストリーム入力及び出力を開始することは、入力／出力がその後に正しいことを保証しない。全ての先の影響がシステムエラーとして考慮された場合、及び正常の（デバックされた）状況下にあるように見えない場合であっても、正しいチャネルタイプの出力がチェックされる実用が存在する。図６に説明される例示的なオーディオインタフェースでは、説明される問題は、ＦＩＦＯ又はＤＭＡコントローラにおいて生じる可能性がある。しかし、ストリームユニット１３は、チャネルエンコーダ／デコーダにより転送されるｓｆｒａｍｅ＿ｅｎａｂｌｅ信号のためサンプルの境界を認識しており、したがって、このチェックを実行することができる。
【００５８】
本発明の特徴は、チャネルの置き換えの検出及び補正を可能にすることであり、最終的なデータストリームの消費者によって識別することができるように、個々のサンプルをそれらのタイプで記録することである。安全かつ実現が容易な測定は、（特に使用されていない）ビットのうちの１つにより、オーディオサンプルのサンプルワードのうちの１つ、特に“Ｌ”ビット、すなわちサンプルの最初のワードを“１”に記録すなわち設定し、サンプルの全ての他のワードについて、このビットを“０”に設定することである。したがって、左揃え／右揃えのエラーは、１サンプル毎に検出可能となる。
【００５９】
一方で、オーディオデータ転送の一端にはプロセッサソフトウェアがあるので、このビット挿入、すなわちそれぞれのサンプルに対するこのチェックは、プロセッサにとって負荷が比較的高くなる。他方で、聴取者がチャネルの置き換えを検出するためにある程度の時間を必要とすることを考慮して、それぞれＬ番目のサンプル（Ｌは、たとえば０．１秒を下回る検出時間となるに十分に小さい数）のうちの最初のワードのみを記録／チェックすることは十分なことである。したがって、４８キロヘルツ当たり１１５２／１０２４サンプルのレンジにおける典型的なオーディオコーデックのフレーム、又はＤＭＡブロックサイズは、「Ｆビット（フレームビット）」のマークのための距離として使用することができる。
【００６０】
ＤＭＡブロックサイズの距離を使用することで（それぞれのＤＭＡブロックの最初のサンプルのうちの最初のワードはＦ＝“１”で記録される）、オーディオインタフェースハードウェアは、（処理システムのメモリにおける）ＤＭＡブロックの最初のサンプルと同じである、Ｆビットの組を有するサンプルが出力／入力されるポイントをタイミングよく正確に判定することができる。この特徴は、オーディオインタフェースのハードウェアによるタイムスタンプ及びブロックエラー（以下を参照）のような追加のサイド情報の測定、及び該サイド情報をＤＭＡブロックと協力して転送／処理すること（完了）を容易にする。
【００６１】
オーディオ入力処理のケースでは、Ｆビットは、ストリームユニットハードウェアにより、ＦＬＥＮオーディオサンプルのそれぞれのシーケンスの最初のワードについて設定される。ストリームユニットのはじめのスタートアップ又はリスタートは、ＦＩＦＯ１４に書き込まれた最初のサンプルの最初のワードがＦ＝“１”で記録されるようなやり方で常に行われる。ＤＭＡ（或いは割込み又はポーリング）データ入力は、関連する目的地のメモリ位置へのそれぞれ単一の（ＤＭＡ）ブロックの転送後に発見される最初のワードが、常に、Ｆビットの組を有する当該ワードであるように、同じブロック長ＦＬＥＮ＊Ｐを使用するためにセットアップされる。これは、（ＤＭＡ）ブロック完了処理の間にチェックされる。かかる（ＤＭＡ）ブロックの最初のワードが設定されていない場合、データ入力はミスアラインメントされており、このストリームユニット（及び関連するＤＭＡ）についての入力処理のリスタートが必要とされる。
【００６２】
出力処理の場合では、出力のために使用される（ＤＭＡ）ブロックのサイズは、ストリームユニット１３と同様に、ＦＬＥＮ＊Ｐワードの値に再び初期化される。出力のためにソフトウェアにより準備されるそれぞれのＤＭＡブロックについて、最初のＦビットのみが設定され、他の全てのビットがリセットされる。ストリームユニット１３の開始に応じて、関連するＦＩＦＯ１４（すなわち、当該ストリームに拘束されるその一部）は、空きメモリ状態にされなければならない。したがって、開始後にストリームユニット１３により読み出される最初のワードは、Ｆビットの組を有するワードであり、その時、Ｆビットのリセットを有するＦＬＥＮ＊Ｐ−１ワードが後続する。ＦＬＥＮ＊（Ｐ＋Ｐ）番目のワードでは、Ｆビットが再び設定される等となる。
【００６３】
ストリームユニットのハードウェアは、Ｆビットの組の出現をチェックする。Ｆビットが誤入された場合、すなわち、ＦビットがＰチャネルサンプルの最初として出力されないワードについて設定されている場合、Ｆビットの組を有するサンプルが前のサンプルから厳密にＦＬＥＮサンプル離れていない場合、或いはＦビットがＦＬＥＮサンプルの間にゼロである場合、ストリームユニットは停止され、エラー状態にスイッチされる。この状態は、出力処理をリスタートすることができるように、ソフトウェアにより検出される（状態変化による割込み又はポーリング）。
【００６４】
図９には、ストリームユニット１３で必要とされるハードウェアが示されている。フレームカウンタＦＣＮＴ９２及びフレーム長（すなわち（ＤＭＡ）ブロックサンプルカウント）レジスタＦＬＥＮ９１は、オーディオ入力の間に、Ｆビットの組を挿入して、オーディオ出力の間にＦビットの適切な出現をチェックすることが要求される。図９のサンプル実現について、ＦＣＮＴは、それぞれ（Ｐチャネル）のサンプル（より詳細には、適切なチャネルユニットからのそれぞれのｓｆｒａｍｅ＿ｅｎａｂｌｅパルス）についてインクリメントされ、０からＦＬＥＮ−１までカウントする。その後、ＦＣＮＴは、“０”に再びリセットされる。最終的に、ＦＬＥＮ−１に達することは、次のサンプルの最初のワードがＦビットの組で記録されるべきであることを示す。
【００６５】
Ｆビットを使用することの代替は、サンプル間にブロックベースで挿入されるＳＹＮＣワード（並びに、最終的にはブロック長、及び選択的にはチェックサム及び他のサイド情報）の挿入／チェックである。これは、ワード当たり１ビットを必要としないという利点を有する。代わりに、全てのビットは、オーディオデータ向けに使用することができるが、このメカニズムは、オーディオデータワードが同期ワードであるとして誤って解釈されるという可能性のため（このｓｙｎｃコードが禁止されたデータワードである場合を除いて）、完全に問題がないわけではない。検出がチェックサムにより更に確実に行われたとしても、スタートアップは、ＳＹＮＣワードの繰り返される出現の後にのみ実行される。別の代替は、（ワード当たりの追加ビット、すなわち追加のポインタにより）ＦＩＦＯ１４においてブロックの最初のワードを記録し、それぞれのブロック転送の後、このポインタ対実際のＤＭＡ（又は割込み）ポインタをチェックすることである。この実施の形態は、ＤＭＡの連鎖を排除するものである。
【００６６】
更なる代替は、専用ＤＭＡユニット（図示せず）を使用することであり、ＦＩＦＯが使用される場合にＦＩＦＯのワード記録と共に、できる限りオーディオセル／インタフェースに組み込まれる。この場合、ストリームハードウェア及びＤＭＡハードウェアは、ＤＭＡブロックの転送とストリームユニットのＦＣＮＴ／ＦＬＥＮブロックが同相であるように動作するか、ＤＭＡユニットがワードの概念を採用するように動作する。それにもかかわらず、この代替は、汎用のＤＭＡユニットに代わって、専用ＤＭＡユニットを必要とするという不都合を有する。
【００６７】
［ＦＬビットフィールド、ドントケア定義］
【表１】
2004248279.tif 000003
オーディオインタフェースセルによる出力のためにＤＭＡバッファを準備するとき、プロセッサ動作の回数を低減するために、Ｆビットが拡張されてＦＬ２ビットフィールドにとなる。表１及び図８ａを参照されたい。表によれば、ＬＦ＝０１ｂは、ＤＭＡブロックの最初のサンプル（Ｆ＝１）のうちの最初のワード（Ｌ＝０）を示しており、ＬＦ＝１０ｂは、サンプルの最初でないワードを示している。他の２つのコードＬＦ＝００ｂ及びＬＦ＝１１ｂは、「特定的ではないサンプル」を定義している。
【００６８】
オーディオデータの入力に応答して、ストリームユニット１３は、コードＬＦ＝０１ｂ及びＬＦ＝１０ｂのみを挿入し、したがって、各サンプルは、Ｌ又はＦのいずれかで正しく記録され、個々のサンプルのアラインメントと同様にＤＭＡブロックをチェックすることができる。オーディオデータの出力の間、ソフトウェアは、はじめに、ＬＦ＝００ｂ又はＬＦ＝１１ｂコードを有する符号拡張かつ右揃え２４ビットＰＣＭのビット数（３２ビット以内）、又は下位８ビットが最初は０である左揃え２４ビットＰＣＭのビット数のいずれかを有するＤＭＡ出力バッファを準備する。ストリームユニット１３は、コードＬＦ＝００ｂ及びＬＦ＝１１ｂを「特定的でないサンプル情報」として解釈し、該サンプルを次のワードとして出力する。それぞれのＤＭＡバッファの真の最初のワードは、ＤＭＡブロック出力を開始する前に、ＬＦ＝１０ｂコード、すなわちストリームユニットによるＦビットのチェックを導くコードでソフトウェアにより記録される。チェック結果が「真ではない」場合、ストリームユニットは停止し、ソフトウェアにより出力処理を再開することができる。上記説明を参照されたい。
【００６９】
オーディオ入力処理により得られるＬＦビットフィールドは、ＤＭＡブロック長及びチャネル数が等しい場合にオーディオ出力処理について当てはまるように、再使用することができる。
【００７０】
［タイムスタンプ、ブロックエラー、ＳＰＴＳ］
先に説明したストリームユニット１３の拡張は、それぞれ独立な入力又は出力ストリーム当たりの１つの拡張、すなわちカウンタ９２ＦＣＮＴ、レジスタ９１ＦＬＥＮ、及びＦビットメカニズムであり、ＤＭＡバッファ（図示せず）の真の最初のワードに関連するレジスタ９５における正確なＰＴＳタイムスタンプを取込むこと、及びＤＭＡブロックにおける正確なサンプルのためのエラー情報を収集する累積的なエラーレジスタＳＥＲＲＯＲ９９を取込むことを容易にする。これは、比較結果９３ＦＣＮＴ＝ＦＬＥＮ−１及び当該取込みを可能にするためのｓｆｒａｍｅ＿ｅｎａｂｌｅを使用して行われる。
【００７１】
図９におけるカウンタ９４ＣＴＳ（現在の時間）は、それぞれのシステムクロックをカウントし、最大値０ｘＦＦＦＦ  ＦＦＦＦに達したときに“０”に巻き直しするマシンワード幅（３２ビット）のアップカウンタを表している。カウンタＣＴＳの出力は、オーディオインタフェースセルのための時間基準として使用することができる。ステージ９５ＰＴＳ（プレゼンテーション・タイム・スタンプ）は、以下に基づいてＣＴＳ値を取込むことである。
（ＦＣＮＴ＝ＦＬＥＮ−１）ＡＮＤ  ｓｆｒａｍｅ＿ｅｎａｂｌｅ
チャネルエラー記憶装置９６ＣＥＲＲＯＲは、ＳＥＲＲＯＲレジスタ９９によりサンプリングされたときクリアされ、その後、（たとえば、（ＦＣＮＴ＝ＦＬＥＮ−１）ＡＮＤ  ｓｆｒａｍｅ＿ｅｎａｂｌｅで）再びサンプルされるまで、入力又は出力信号に関連する全てのエラー情報を収集する。したがって、ＳＥＲＲＯＲは、まさに終了されたＤＭＡブロック／終了されようとしているＤＭＡブロックの全てのサンプルに関連するチャネルのエラー情報を正確に含んでいる。オーディオ入力の間、アクティブ状態にあるＳＥＲＲＯＲは、完全な入力ブロックがエラーについて更に検査されるべきであるか、又はミュート或いは無視されるべきかのいずれかであることを示し、後者の２つの機能は、ブロックベースで都合よくエラーを処理することができる。
【００７２】
オーディオ入力の間、はじめに、ストリームユニット１３は、（ＦＣＮＴ＝ＦＬＥＮ−１）のブロックエンド、サンプルＰＴＳ及び情報アイテムＳＥＲＲＯＲを発見し、次のサンプルをＦ＝１で記録することができる。次いで、ＦＩＦＯ１４から最後のブロックサンプルを読み出した後、ＤＭＡユニットは、そのブロック完了信号（割込み）を発生する。したがって、ＰＴＳ及びＳＥＲＲＯＲレジスタの値は、ＤＭＡ完了の割り込みの間に、ソフトウェアにより都合よく読み出すことができ、まさに終了されたＤＭＡブロック又は次のＤＭＡブロックに付属させることができる（後者は、両者の値がブロックエンドでサンプリングされるため、ＰＴＳにとって都合がよい）。
【００７３】
明らかに、これは、「使用されるＦＩＦＯサイズ＜ＦＬＥＮ＊Ｐ」及び「割込み遅延＜ＤＭＡフレーム周期」であることを要求しており、さもなければ、サンプリングされたＰＴＳ／ＳＥＲＲＯＲ値とＤＭＡブロック値との間の関係が失われる可能性がある。「使用されるＦＩＦＯサイズ」は、実際に記憶されるサンプルワード数を示す。「ＤＭＡフレーム周期」は、時間間隔ＦＬＥＮ／Ｆｓを示し、Ｆｓはサンプリング周波数である。
【００７４】
簡単な代替では、「割込み遅延＜ＦＬＥＮ／Ｆｓ」を使用することができる。
【００７５】
オーディオ出力について、ＤＭＡ完了状態は、サンプリングがＦＩＦＯ遅延のために発生する前に生じる場合がある。したがって、ＤＭＡ完了状態の間にＰＴＳとＳＥＲＲＯＲとを読み出すことは適切ではない。代わりに、たとえば、割り込みにより、又はＰＴＳを読出す代わりに、及びＳＰＴＳレジスタ９７（その時間でのサンプルＰＴＳ）を読出すことにより、ＤＭＡブロックの中央（すなわち、ＦＣＮＴ＝ＦＬＥＮ／２）、及びサンプルの両方の値を読むことは、「使用されるＦＩＦＯサイズ＜０．５＊ＦＬＥＮ＊Ｐ」及び「割り込み遅延＜０．５＊ＦＬＥＮ＊１／Ｆｓ」である限り使用することができる。ここで、Ｆｓはサンプリング周波数である。たとえば、ｓｙｓ＿ｃｌｋ発振器について最も悪いケースである１００ｐｐｍの精度、及びサンプリング周波数４４１００Ｈｚでの１１５２サンプルのＤＭＡフレームサイズによれば、ＤＭＡフレーム周期は２６．１ｍｓとなり、その結果、約５．２μｓという最も悪いケースのタイムスタンプ精度となり、この精度は、基準クロック発振器が１００ｐｐｍの精度を有する場合にも達成可能である。
【００７６】
［タイムド・スタートアップ］
図９と共に説明される更なる機能は、正確に時間設定されたストリームユニット１３の起動である。ストリームユニットは、空きメモリ状態のＦＩＦＯ１４、及び停止されたストリームユニットシーケンサ（図示せず）で開始される。ＰＴＳレジスタ９５は、（ＣＴＳに関連する）適切な開始時間、及びストリーム状態マシン９８に発生されるＲＵＮ命令でロードされる。ＣＴＳが開始時間に進んだ後、すなわち、条件ｍｏｄ（ＣＴＳ−ＰＴＳ）≧０が真である場合、ランイネーブル信号ＲＵＮ＿ＥＮがストリーム状態マシン９８に発生される。
【００７７】
［共通のＩ／Ｏタイミング］
入力信号及び出力信号は、「ビットクロック（ｂｃｋ）領域」から更に高いシステムクロック（ｓｙｓ＿ｃｌｋ）領域に同期することができ、それによって、ビットクロック領域の入力から出力まで“ｉｎｐｕｔ−ｔｏ−ｏｕｔｐｕｔ”の遅延は、簡単な複数の「ビットクロック」周期により表現することができ、「システムクロック」周波数とは完全に独立である。先に説明したようなＩ２Ｓ（図５参照、ＢＩＴ＿ＣＬＫに同期するＤＡＴＡ／ＬＲＣＫ）又はＡＣｌｉｎｋ（ＡＣ９７）インタフェースのような、別々のクロック、並びにデータ及び／又は同期信号を有するシリアルオーディオデータインタフェースに関連する信号は、インタフェースのビットクロック又はチャネルクロックに代わり、共通の（更に高い）システムクロック（図１０、ｓｙｓ＿ｃｌｋ）のみを使用するロジックにより処理される場合（図１０におけるＢＣＫ＝ｂｃｋ、図５におけるＢＩＴ＿ＣＬＫ）、オーディオインタフェースの１つ以上のクロックが固定位相を有さず、かつシステムクロックの整数倍の正確な周波数を有さない限り、追加のクロック同期ステージが必要とされる。このクロック同期は、図１０に示されるようなＲＦＦ１／ＲＦＦ２及び／又はＣＦＦ０／ＣＦＦ１のそれぞれのような２つのＤフリップフロップの構成を使用することで達成することができる。これらのＤフリップフロップは、システムクロックｓｙｓ＿ｃｌｋでクロックされる。同期されるべき１つ以上の入力信号（ＲＦＦ０の出力Ｑでの信号及び／又はクロックｂｃｋ）は、第一のフリップフロップＣＦＦ０及びＲＦＦ１のそれぞれのＤ入力に供給される。このように、「同期された」入力信号は、第二のフリップフロップＣＦＦ１及びＲＦＦ２のＱ出力で利用可能である。かかる２つのフリップフロップ回路は、「準安定」という公知の影響のため、第一のフリップフロップのエラーの確率を十分に低い量に低減する。ホールドウィンドウに関する第一のフリップフロップの入力のセットアップの妨害により、技術に依存した確率に関係する所与の期間の間、フリップフロップの未定義の出力状態がもたらされる。フリップフロップのかかる準安定状態は、不安定である。しかし、２つのフリップフロップ回路により、それぞれのフリップフロップは、好都合なことに、約１クロック周期内でその２つの安定状態のうちの１つに強制的に再び設定される。
【００７８】
より詳細には、図１０における基準クロックｂｃｋについて一般に使用される同期装置の形態は、（ＣＦＦ０及びＣＦＦ１のような）かかる準安定抑圧回路、及び（たとえば、フリップフロップＣＦＦ２、ＡＮＤゲートＡ及びフリップフロップＣＦＦ３による立ち上がりエッジについて具体化される）その後のエッジ検出器からなる構成を使用し、単一のシステムクロックサイクルを示すイネーブル信号ｂｃｋ＿ｅｎを取得する（たとえば、オリジナルのクロックｂｃｋのそれぞれの立ち上がりエッジ当たり１つのイネーブルサイクル）。この場合、類似の入力回路（「入力同期装置」１０１）の出力は、後続する同期ロジック（同期装置１０１におけるＲＦＦ３）により読むことができる。入力同期装置１０１及びビットクロック同期装置１０２の（システムクロック数で測定される）遅延を殆ど同一に維持することは、たとえば、約１周期のシステムクロックｓｙｓ＿ｃｌｋのウィドウ内で信号ｂｃｋの立ち上がりエッジ付近で入力信号（ＲＦＦ０．Ｑ）をサンプリングするとして説明することができる入力側（ｂｃｋ、ＲＦＦ０．Ｑ）のシステム動作となる。したがって、クロックｂｃｋに同期し、かつシステムクロックｓｙｓ＿ｃｌｋに非同期である入力信号（ＲＦＦ０．Ｑ）は、システムクロックｓｙｓ＿ｃｌｋが、同期されるクロックｂｃｋよりも幾分高い限り、たとえば、クロックｂｃｋの立ち上がりエッジ付近で正しく読む込むことができる。フリップフロップＲＦＦ０は、適切に定義された（小さな）セットアップを達成するために、ビットクロックｂｃｋで入力信号Ｄｉｎをサンプリングし、システムクロックｓｙｓ＿ｃｌｋのサイクルタイムにより決定される（より大きな）ウィンドウのみを達成する代わりに、入力データＤｉｎの範囲（たとえば、ｂｃｋの立ち上がりの傾斜付近）をホールドする。
【００７９】
図１１のタイミングチャートは、図１０の入力同期回路内で生じる各種信号をその時間的な関係において示している。サンプルウィンドウ、すなわち入力信号のサンプリングを行うことができる期間は、入力信号Ｄｉｎに関して示されている。
【００８０】
図１０に関連して、代わりに、クロックｂｃｋの立ち下がりエッジ又は両方のエッジに関してサンプリングする等価回路を使用することができる。
【００８１】
図１０の回路では、同期（ｓｙｓ＿ｃｌｋ）領域からインタフェースの形式特定の領域へのデータの出力は、システムクロックｓｙｓ＿ｃｌｋでクロックされ、信号ｂｃｋ＿ｅｎでイネーブルされるＴＦＦ０のようなフリップフロップの出力信号を使用することにより、出力同期装置１０３において達成することができる。（ｓｙｓ＿ｃｌｋ周波数）／（ｂｃｋ周波数）の整数比が、たとえば、次のｂｃｋの立ち上がりエッジの前で十分に大きい限り、（フリップフロップのクロックから出力までの“ｃｌｏｃｋ−ｔｏ−ｏｕｔｐｕｔ”遅延を加えて）ｂｃｋ＿ｅｎサイクルの終了で、したがって、たとえば、ｂｃｋ＿ｅｎパルスが生成されるクロックｂｃｋの立ち上がりエッジの後に出力データが現れる。ｂｃｋエッジに関連して適切に定義された時間での出力ポイントを取得するために、ＴＦＦ０の出力は、たとえば、ｂｃｋの立ち上がりエッジでフリップフロップＴＦＦ１によりリサンプリングされ、これにより、その出力Ｑは、オーディオインタフェース向けに使用される標準的なＩ／Ｏ機能に準拠するために、ｂｃｋ＿ｅｎの立ち下がりエッジでフリップフロップＴＦＦ２によりリサンプルされる。入力は、ビットクロックの立ち上がりエッジでサンプリングされ、出力は、ビットクロックの立ち下がりエッジで変化する。また、図１１のタイミングチャートは、図１０の出力同期回路内で発生する対応する信号をそれらの時間的な関係で示している。
【００８２】
代わりに、クロックｂｃｋの立ち下がりエッジ又は両サイドのエッジに関してサンプリングする等価な出力同期回路を使用することもできる。
【００８３】
フリップフロップＴＦＦ０及びＴＦＦ２は、ある種の範囲で選択的である。
【００８４】
また、ＴＦＦ０は、同期装置の外部に配置することができ、これにより、（図１０における信号ｓＤｏｕｔについても当てはまるように）ｓｙｓ＿ｃｌｋの同期ロジック領域のそれぞれの出力信号は、同じ特性、すなわち、ｓｙｓ＿ｃｌｋでクロックされ、ｂｃｋ＿ｅｎでイネーブルされるフリップフロップから生じる特性を有していなければならない。
【００８５】
ＴＦＦ２は、オーディオインタフェース向けに使用される先の標準的なＩ／Ｏ特性が要求される場合にのみ必要とされる。ＴＦＦ２が必要とされない場合、入力サンプリング及び出力変化は、クロックｂｃｋの同じタイプのエッジ、たとえば立ち上がりエッジにより影響を受ける。
【００８６】
クロック選択ユニット１０４は、同期処理のために使用される、外部のビットクロックＢＣＫ又は内部のビットクロックｂｃｋのいずれかを選択する。内部クロック源が使用される場合、この同じクロックをＢＣＫに出力することができ、又は出力しないこともできる。また、クロック選択ユニットは、通過する信号を反転する。
【００８７】
入力／出力／クロック同期装置の組は、以下の構成からなる。
ビットクロックｂｃｋの同じタイプの「サンプル」エッジ（たとえば、立ち上がりエッジ）でクロックされる入力ステージＲＦＦ０及び出力ステージＴＦＦ１。反対のタイプの「出力」エッジでクロックされる第二の選択的な出力ステージＴＦＦ２。ビットクロックｂｃｋ（ＣＦＦ０，ＣＦＦ１）及びデータ入力Ｄｉｎ（ＲＦＦ１、ＲＦＦ２）のための準安定「抑圧」回路、すなわち、少なくとも１つのフリップフロップが、ＳＹＳ＿ｃｌｋでクロックされ、かつｂｃｋ＿ｅｎでイネーブルされるｓｙｓ＿ｃｌｋ領域で動作し（ＲＦＦ３及びＴＦＦ０）、以下の特性を有している（フリップフロップＴＦＦ０を用いることなしに、正確な値は図１０における好適な実施の形態で適用される）。
【００８８】
ａ）ｂｃｋに対するＤｉｎのセットアップ及びホールド間隔は、ｓｙｓ＿ｃｌｋ特性とは独立に、ＲＦＦ０により決定される。ｂ）ｂｃｋの「出力エッジ」（たとえば、立下りエッジ）からＤｏｕｔまでの伝播遅延は、（使用された場合には）ＴＦＦ２又は（さもなければ）ＴＦＦ１のクロックからデータ出力までの遅延により特徴付けられ、ｓｙｓ＿ｃｌｋパラメータにより特徴付けられるものではない。ｃ）比（ｓｙｓ＿ｃｌｋ周波数）／（ｂｃｋ周波数）が３．．．．４，よりも大きい限り、ＤｉｎとＤｏｕｔの間の２つのｂｃｋサイクルのうちの有効な「同期装置の一定の遅延」（図１１参照、Ｔｄ）が適用される。
【００８９】
この遅延は、ｓＤｏｕｔとｓＤｉｎが直接連動している場合（一点破線）であって、ＴＦＦ０フリップフロップが省略される場合に適用される。（ＴＦＦ０のような）ループに挿入されるそれぞれの追加のフリップフロップは、別のｂｃｋサイクルをこの遅延に加える。すなわち、システムクロックは、ビットクロックよりも有意に高くなければならないが、同期領域のためのロジックは、周波数の比とは独立に設計することができる。
【００９０】
準安定抑圧回路及びエッジ検出器の変形例が可能である。同じ信号の異なるクロックエッジに関してクロックすること、及び／又はＣＦＦ１とＣＦＦ２のフリップフロップを１つのフリップフロップに結合することで、同じ準安定なエラーの確率を達成するために、最大の可能なｓｙｓ＿ｃｌｋ周波数を低下する代償として、要求される（ｓｙｓ＿ｃｌｋ周波数）／（ｂｃｋ周波数）の比を減少することができる。図１０における例示的な実現は、その周波数の比を約“２”に低下するが、同じシステムクロックが使用された場合、準安定を決定するために利用可能な時間が要素“２”を超える分だけ短縮される。
【００９１】
オーディオインタフェースのうちの幾つか（Ｉ２ＳインタフェースではＬＲＣＫ＝左右指示、ＡＣ９７インタフェースではＳＹＮＣ、或いは通常のシリアルＤＳＰインタフェース向けのワードストローブ）においてのみ必要とされ、存在する同期信号は、原則として、同期信号のエッジを有する、それぞれシリアル転送されるオーディオ（ｍチャネル）サンプルのうちの最初のサンプル（又はある他のビットｎ）を示すものであって、Ｄｉｎ及びＤｏｕｔ信号のように扱うことができる。同期信号を入力同期装置（図１０、１０１）に入力すること、かかる同期信号を出力同期装置（図１０、１０３）に出力することができる。これは、これらの同期信号は、データ信号と同じタイミング又は類似のタイミングを典型的に有しているためである（入力がＢＣＫの一方のエッジでサンプリングされ、出力がＢＣＫの反対のエッジでサンプリングされる）。クロック同期装置は、ビットクロックのみに必要とされ、このビットクロックに同期される転送された全ての他の信号は、入力及び出力同期装置のセルにより処理される。
【００９２】
結果的に、データ入力信号に対する同期信号は、データ出力信号に対する同期信号と同様に、同期ロジックのために異なる遅延を受けないが、出力サイドに対する入力サイドは（データ出力に対する同期入力のように）、図１１にＤｏｕｔに対するＤｉｎのケースについて示されるように、遅延Ｔｄを受ける。
【００９３】
本発明のストリームユニット及び同期装置の効果は、以下に示される。チャネル（Ｆビット）の置き換えを回避することができる。ＦＬビット関係、ドントケア出力同期信号、（ＰＴＳ）ブロックのタイムスタンプが使用される、タイムド・スタートアップが実行可能である、ブロックエラー処理をストリームユニットに組み込むことができる。
【００９４】
より低い構成の複雑さ。これは、典型的な要求されるストリームユニットの数がプロトコルユニット／シフタユニットの数よりも少ないことによる。
【００９５】
単一のソフトウェアによる実現が可能。これは、単一のストリームユニットでの実現及びオーディオデータと共にサイド情報を処理することによる。
【００９６】
一定のビットクロック遅延を有する同期装置に関して、一方で、同期されるビットクロックよりも有意に高いシステムクロックが要求され、したがって、すべての同期ケース向けに適用することができない。しかし、このシステムクロックは、オーディオアプリケーション向けに適用することができる。これは、典型的なオーディオビットクロック周波数は、実際のＩＣ技術向けに、及びある程度に現在のＦＰＧＡ技術向けに適用できるシステムクロックよりも有意に低いためである。この一定のビットクロック遅延は、全ての比ｓｙｓ＿ｃｌｋ／ｂｉｔ＿ｂｌｋ＞Ｎについて達成することができる。ここで、Ｎは選択された同期ロジックに依存する。
【図面の簡単な説明】
【００９７】
【図１】本発明のデジタルオーディオインタフェースユニットに関する簡略化されたブロック図である。
【図２】ＩＥＣ９５８サブフレームフォーマットを示す図である。
【図３】ＡＣ’９７フォーマットフレームを示す図である。
【図４】ＡＤＡＴフォーマットフレームを示す図である。
【図５】Ｉ２Ｓフォーマットフレームを示す図である。
【図６】図１のブロック図のさらに詳細な図である。
【図７】チャネルデコーダのブロック図である。
【図８】ＦＩＦＯ又はシステムメモリ（図示せず）における記憶のためのフォーマット例である。
【図９】ストリームユニットで使用されるカウンタ回路を示すブロック図である。
【図１０】ＧＰＩ／シンクロナイザユニットのブロック図である。
【図１１】同期タイミングを説明するタイミングチャートである。
【図１２】チャネルエンコーダ／デコーダ及びストリームユニットのタイミングを説明するタイミングチャートである。
【符号の説明】
【００９８】
１１：チャネルエンコーダユニット
１２：チャネルデコーダユニット
１３：ストリームユニット
１４：ＦＩＦＯ
１５：バスインタフェース
１６：クロックユニット
１７：タイマーユニット
１８，１９：レジスタファイル
１０１：入力同期回路
１０２：ビットクロック同期装置
１０３：出力同期回路
１０４：クロック選択ユニット
【図１】
2004248279.tif 000004
【図２】
2004248279.tif 000005
【図３】
2004248279.tif 000006
【図４】
2004248279.tif 000007
【図５】
2004248279.tif 000008
【図６】
2004248279.tif 000009
【図７】
2004248279.tif 000010
【図８】
2004248279.tif 000011
【図９】
2004248279.tif 000012
【図１０】
2004248279.tif 000013
【図１１】
2004248279.tif 000014
【図１２】
2004248279.tif 000015