(57)【要約】  マルチチャネルオーディオアライメント方式が開示される。本開示の一態様は、オーディオソースにおける複数の関連するオーディオチャネルにわたるオーディオサンプルの蓄積を提供する。関連するオーディオチャネルは相互関連性を指示し、すべての関連するオーディオチャネルが送信するデータを有するとき、ソースは、関連するオーディオチャネルがタイムスロットの所与のセグメントウィンドウ内に存在するように、シリアル低電力チップ間メディアバス(SLIMbus)のタイムスロット上にデータを放出する。この蓄積は、すべてのセグメントウィンドウの境界において繰り返される。同様に、蓄積はオーディオシンクにおいて実行することができる。オーディオシンク内の構成要素は、すべての関連するシンクからのステータス信号が、所定のしきい値に達したことを指示する場合にのみ、受信データを読み出すことができる。そのような蓄積オプションを提供することによって、複数のオーディオデータチャネルにわたってオーディオ忠実度が保持される。
2018500799.tif 000002
【特許請求の範囲】
【請求項１】
オーディオストリームを制御する方法であって、
オーディオストリームからの第1のオーディオチャネルに関連付けられる第1のデータをマスタオーディオソース内の第1のポートに与えるステップと、
前記オーディオストリームからの第2のオーディオチャネルに関連付けられる第2のデータを前記マスタオーディオソース内の第2のポートに与えるステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のオーディオチャネルおよび前記第2のオーディオチャネル内の同等のオーディオサンプルをグループ化し、時分割フォーマット内のセグメントウィンドウ境界に対応するセグメントウィンドウの中に入れることができるように、前記セグメントウィンドウ境界において、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタを排出させるステップとを含む、方法。
【請求項２】
前記マスタオーディオソースからスレーブオーディオシンクに前記第1のデータをプッシュするステップをさらに含む、請求項1に記載の方法。
【請求項３】
スレーブオーディオシンクによって前記マスタオーディオソースからプルされた前記第1のデータを有するステップをさらに含む、請求項1に記載の方法。
【請求項４】
エラー条件を検出するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記エラー条件を検出するステップの後に、前記マスタオーディオソースからナルデータを出力するステップをさらに含む、請求項4に記載の方法。
【請求項６】
前記第1のデータおよび前記第2のデータが所定のウォーターマークレベルを超えているか否かを検出するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記第1のデータまたは前記第2のデータのいずれかが前記所定のウォーターマークレベルを超えていない場合には、データ出力をスキップするステップをさらに含む、請求項6に記載の方法。
【請求項８】
オーディオストリームを制御する方法であって、
オーディオストリームからの第1のオーディオチャネルに関連付けられる第1のデータをスレーブオーディオソース内の第1のポートに与えるステップと、
前記オーディオストリームからの第2のオーディオチャネルに関連付けられる第2のデータを前記スレーブオーディオソース内の第2のポートに与えるステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のオーディオチャネルおよび前記第2のオーディオチャネル内の同等のオーディオサンプルをグループ化し、時分割フォーマット内のセグメントウィンドウ境界に対応するセグメントウィンドウの中に入れることができるように、前記セグメントウィンドウ境界において、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタを排出させるステップとを含む、方法。
【請求項９】
前記スレーブオーディオソースからマスタオーディオシンクに前記第1のデータをプッシュするステップをさらに含む、請求項8に記載の方法。
【請求項１０】
マスタオーディオシンクによって前記スレーブオーディオソースからプルされた前記第1のデータを有するステップをさらに含む、請求項8に記載の方法。
【請求項１１】
エラー条件を検出するステップをさらに含む、請求項8に記載の方法。
【請求項１２】
前記エラー条件を検出した後に、前記スレーブオーディオソースからナルデータを出力するステップをさらに含む、請求項11に記載の方法。
【請求項１３】
前記第1のデータおよび前記第2のデータが所定のウォーターマークレベルを超えているか否かを検出するステップをさらに含む、請求項8に記載の方法。
【請求項１４】
前記第1のデータまたは前記第2のデータのいずれかが前記所定のウォーターマークレベルを超えていない場合には、データ出力をスキップするステップをさらに含む、請求項13に記載の方法。
【請求項１５】
オーディオストリームを制御する方法であって、
オーディオバスからの第1のオーディオチャネルに関連付けられる第1のデータをマスタオーディオシンク内の第1のポートにおいて受信するステップと、
前記オーディオバスからの第2のオーディオチャネルに関連付けられる第2のデータを前記マスタオーディオシンク内の第2のポートにおいて受信するステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のFIFOレジスタにおける第1のカウントを第1の所定のしきい値と比較するステップと、
前記第1のカウントが前記第1の所定のしきい値を超える場合には、第1のレディ信号を設定するステップと、
前記第2のFIFOレジスタにおける第2のカウントを第2の所定のしきい値と比較するステップと、
前記第2のカウントが前記第2の所定のしきい値を超える場合には、第2のレディ信号を設定するステップと、
前記第1のレディ信号および前記第2のレディ信号が設定された場合には、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタの内容を読み出すことができるようにするステップとを含む、方法。
【請求項１６】
オーディオストリームを制御する方法であって、
オーディオバスからの第1のオーディオチャネルに関連付けられる第1のデータをスレーブオーディオシンク内の第1のポートにおいて受信するステップと、
前記オーディオバスからの第2のオーディオチャネルに関連付けられる第2のデータを前記スレーブオーディオシンク内の第2のポートにおいて受信するステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のFIFOレジスタにおける第1のカウントを第1の所定のしきい値と比較するステップと、
前記第1のカウントが前記第1の所定のしきい値を超える場合には、第1のレディ信号を設定するステップと、
前記第2のFIFOレジスタにおける第2のカウントを第2の所定のしきい値と比較するステップと、
前記第2のカウントが前記第2の所定のしきい値を超える場合には、第2のレディ信号を設定するステップと、
前記第1のレディ信号および前記第2のレディ信号が設定された場合には、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタの内容を読み出すことができるようにするステップとを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、その全体が参照により本明細書に組み込まれる、2014年11月14日に出願された「MULTI-CHANNEL AUDIO ALIGNMENT SCHEMES」と題する米国特許出願第14/541,577号の優先権を主張する。
【０００２】
本開示の技術は、包括的には、MIPI(登録商標)によって公表されたシリアル低電力チップ間メディアバス(SLIMbus:Serial Low-power Inter-chip Media Bus)仕様に関し、詳細には、SLIMbusを用いて、複数の関連するオーディオチャネルを管理することに関する。
【背景技術】
【０００３】
モバイルフォンおよびコンピュータタブレットのような電子デバイスは、様々な日常使用をサポートするために現代社会において一般的になってきた。これらの電子デバイスはそれぞれ、一般的に、マイクロフォンとスピーカとを含む。電子デバイスにおいて使用される通常のマイクロフォンおよびスピーカは、各デバイスを接続する専用の2ポート配線を必要とするアナログインターフェースを有する。しかしながら、電子デバイスは、複数のマイクロフォンおよび/またはスピーカのような、複数のオーディオデバイスを含むことができる。したがって、そのような電子デバイス内のマイクロプロセッサまたは他の制御デバイスが、共通の通信バスを介して複数のオーディオデバイスにオーディオデータを通信できるようにすることが望まれる場合がある。さらに、共通の通信バスを介して電子デバイス内の異なるオーディオデバイスにオーディオチャネルに関連するデジタルデータを転送するために規定された通信プロトコルを提供することも望まれる場合がある。
【０００４】
MIPI(登録商標) Allianceは、シリアル低電力チップ間メディアバス(SLIMbus(商標))標準規格を表明し、そのバージョン1.01が、2008年12月3日に採用者に公開された。この標準規格の複写は、www.mipi.org/specifications/serial-low-power-inter-chip-media-bus-slimbussm-specificationにおいて、MIPI(登録商標) Allianceの会員が見ることができる。SLIMbusは、モデム、アプリケーションプロセッサおよびスタンドアローンコーデックチップ間の通信を可能にする、モバイル端末業界におけるオーディオデータ用インターフェースとして設計された。SLIMbusは、所与のオーディオチャネルのサンプルを搬送する連続したタイムスロットを有する時分割多重化(TDM:time division multiplexed)バスである。帯域幅が許す限り、バス上に同時に2つ以上のチャネルを規定することができる。SLIMbusは一般に、モバイル端末業界内の多数によって採用されてきた。
【０００５】
SLIMbusを使用するコンピューティングデバイスにおいて、2つ以上のチャネルが与えられるとき、SLIMbus標準規格は、最適なオーディオ忠実度を与えるために宛先側においてこれらのデータチャネルをいかにアライメントさせることができるかを扱わない。したがって、関連するチャネルアライメントを提供し、それに伴ってオーディオ忠実度を高めることによって、SLIMbus標準規格を改善することができる。
【発明の概要】
【課題を解決するための手段】
【０００６】
詳細な説明において開示される態様は、マルチオーディオチャネルアライメント方式を含む。詳細には、本開示の態様は、オーディオソースにおける複数の関連するオーディオチャネルにわたるオーディオサンプルの蓄積を提供する。関連するオーディオチャネルは相互関連性を指示し、すべての関連するオーディオチャネルが送信するデータを有するとき、ソースは、関連するオーディオチャネルがタイムスロットの所与のセグメントウィンドウ内に存在するように、シリアル低電力チップ間メディアバス(SLIMbus)のタイムスロット上にデータを放出する。この蓄積は、すべてのセグメントウィンドウの境界において繰り返される。同様に、蓄積はオーディオシンクにおいて実行することができる。オーディオシンク内の構成要素は、すべての関連するシンクからのステータス信号が、所定のしきい値に達したことを指示する場合にのみ、受信データを読み出すことができる。そのような蓄積オプションを提供することによって、複数のオーディオデータチャネルにわたってオーディオ忠実度が保持される。
【０００７】
この関連において、一態様では、オーディオストリームを制御する方法が規定される。その方法は、オーディオストリームからの第1のオーディオチャネルに関連付けられる第1のデータをオーディオソース内の第1のポートに与えることを含む。また、その方法は、オーディオストリームからの第2のオーディオチャネルに関連付けられる第2のデータをオーディオソース内の第2のポートに与えることを含む。その方法はさらに、第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に第1のデータを蓄積することを含む。また、その方法は、第2のポートにおいて、第2のFIFOレジスタ内に第2のデータを蓄積することと、第1のポートおよび第2のポートを同一のチャネルレートにおいて動作するようにプログラミングすることとを含む。その方法はさらに、第1のオーディオチャネルおよび第2のオーディオチャネル内の同等のオーディオサンプルをグループ化し、時分割フォーマット内のセグメントウィンドウ境界に対応するセグメントウィンドウの中に入れることができるように、セグメントウィンドウ境界において、第1のFIFOレジスタおよび第2のFIFOレジスタを排出させることを含む。
【０００８】
別の態様では、オーディオストリームを制御する方法が規定される。その方法は、オーディオストリームからの第1のオーディオチャネルに関連付けられる第1のデータをスレーブオーディオソース内の第1のポートに与えることを含む。また、その方法は、オーディオストリームからの第2のオーディオチャネルに関連付けられる第2のデータをスレーブオーディオソース内の第2のポートに与えることを含む。その方法はさらに、第1のポートにおいて、第1のFIFOレジスタ内に第1のデータを蓄積することと、第2のポートにおいて、第2のFIFOレジスタ内に第2のデータを蓄積することとを含む。その方法はさらに、第1のポートおよび第2のポートを同一のチャネルレートにおいて動作するようにプログラミングすることを含む。また、その方法は、第1のオーディオチャネルおよび第2のオーディオチャネル内の同等のオーディオサンプルをグループ化し、時分割フォーマット内のセグメントウィンドウ境界に対応するセグメントウィンドウの中に入れることができるように、セグメントウィンドウ境界において、第1のFIFOレジスタおよび第2のFIFOレジスタを排出させること含む。
【０００９】
別の態様では、オーディオストリームを制御する方法が規定される。その方法は、オーディオバスからの第1のオーディオチャネルに関連付けられる第1のデータをマスタオーディオシンク内の第1のポートにおいて受信することを含む。また、その方法は、オーディオバスからの第2のオーディオチャネルに関連付けられる第2のデータをマスタオーディオシンク内の第2のポートにおいて受信することを含む。その方法はさらに、第1のポートにおいて、第1のFIFOレジスタ内に第1のデータを蓄積することを含む。また、その方法は、第2のポートにおいて、第2のFIFOレジスタ内に第2のデータを蓄積することを含む。また、その方法は、第1のポートおよび第2のポートを同一のチャネルレートにおいて動作するようにプログラミングすることを含む。その方法はさらに、第1のFIFOレジスタにおける第1のカウントを第1の所定のしきい値と比較することを含む。その方法は、第1のカウントが第1の所定のしきい値を超える場合には、第1のレディ信号を設定することを含む。また、その方法は、第2のFIFOレジスタにおける第2のカウントを第2の所定のしきい値と比較することを含む。その方法はさらに、第2のカウントが第2の所定のしきい値を超える場合には、第2のレディ信号を設定することを含む。また、その方法は、第1のレディ信号および第2のレディ信号が設定された場合には、第1のFIFOレジスタおよび第2のFIFOレジスタの内容を読み出すことができるようにすることを含む。
【００１０】
別の態様では、オーディオストリームを制御する方法が開示される。その方法は、オーディオバスからの第1のオーディオチャネルに関連付けられる第1のデータをスレーブオーディオシンク内の第1のポートにおいて受信することを含む。また、その方法は、オーディオバスからの第2のオーディオチャネルに関連付けられる第2のデータをスレーブオーディオシンク内の第2のポートにおいて受信することを含む。その方法はさらに、第1のポートにおいて、第1のFIFOレジスタ内に第1のデータを蓄積することを含む。また、その方法は、第2のポートにおいて、第2のFIFOレジスタ内に第2のデータを蓄積することを含む。また、その方法は、第1のポートおよび第2のポートを同一のチャネルレートにおいて動作するようにプログラミングすることを含む。その方法はさらに、第1のFIFOレジスタにおける第1のカウントを第1の所定のしきい値と比較することを含む。その方法は、第1のカウントが第1の所定のしきい値を超える場合には、第1のレディ信号を設定することを含む。また、その方法は、第2のFIFOレジスタにおける第2のカウントを第2の所定のしきい値と比較することを含む。その方法はさらに、第2のカウントが第2の所定のしきい値を超える場合には、第2のレディ信号を設定することを含む。また、その方法は、第1のレディ信号および第2のレディ信号が設定された場合には、第1のFIFOレジスタおよび第2のFIFOレジスタの内容を読み出すことができるようにすることを含む。
【図面の簡単な説明】
【００１１】
【図１】オーディオ要素を備える例示的なモバイル端末のブロック図である。
【図２】外部オーディオシステムを駆動する例示的なモバイル端末のブロック図である。
【図３】関連する構成要素を備えるSLIMbusの簡略化された図である。
【図４】SLIMbus構成要素内のポートと、2つの構成要素間に延在するSLIMbusとの簡略化されたブロック図である。
【図５】関連するオーディオチャネルがSLIMbus上で単一のセグメントウィンドウ内にいかに与えられるかに関する簡略化されたタイミング図である。
【図６】本開示の例示的な態様による、オーディオソース構成要素内の要素の簡略化されたブロック図である。
【図７】本開示の例示的な態様によるオーディオシンク構成要素内の要素の簡略化されたブロック図である。
【図８】ソースが関連するチャネルを蓄積し、送信するためのプロセスの流れ図である。
【図９】シンクが関連するチャネルを受信し、蓄積するためのプロセスの流れ図である。
【図１０】スレーブソースからデータをプルするマスタシンクに関連付けられる例示的なプロセスの流れ図である。
【図１１】マスタソースからデータをプルするスレーブシンクに関連付けられる例示的なプロセスの流れ図である。
【図１２】マスタシンクにデータをプッシュするスレーブソースに関連付けられる例示的なプロセスの流れ図である。
【図１３】スレーブシンクにデータをプッシュするマスタソースに関連付けられる例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００１２】
ここで図面を参照しながら、本開示のいくつかの例示的な態様が説明される。「例示的」という語は、本明細書では「一例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。
【００１３】
詳細な説明において開示される態様は、マルチチャネルオーディオアライメント方式を含む。詳細には、本開示の態様は、オーディオソースにおける複数の関連するオーディオチャネルにわたるオーディオサンプルの蓄積を提供する。関連するオーディオチャネルは相互関連性を指示し、すべての関連するオーディオチャネルが送信するデータを有するとき、ソースは、関連するオーディオチャネルがタイムスロットの所与のセグメントウィンドウ内に存在するように、SLIMbusのタイムスロット上にデータを放出する。この蓄積は、すべてのセグメントウィンドウの境界において繰り返される。同様に、蓄積はオーディオシンクにおいて実行することができる。オーディオシンク内の構成要素は、すべての関連するシンクからのステータス信号が、所定のしきい値に達したことを指示する場合にのみ、受信データを読み出すことができる。そのような蓄積オプションを提供することによって、複数のオーディオデータチャネルにわたってオーディオ忠実度が保持される。
【００１４】
本開示に関連付けられる例示的な方法およびプロセスを扱う前に、その方法およびプロセスが実施される場合があるハードウェア要素の概説が、図1〜図7を参照しながら与えられる。例示的なプロセスが、図8および図9を参照しながら与えられる。
【００１５】
この関連において、図1は、モバイル端末10の一例を示す。モバイル端末10が具体的に例示されるが、マルチチャネルオーディオのために時分割多重化バスを利用する他のプロセッサベースシステムも、本開示の態様から利益を得ることができる。この例では、モバイル端末10は、それぞれが1つまたは複数のプロセッサ14を含む、1つまたは複数の中央処理ユニット(CPU)12を含む。プロセッサ14は、オーディオ処理を取り扱う1つまたは複数のアプリケーションプロセッサを含むことができる。CPU12は、一時的に記憶されたデータに迅速にアクセスするために、プロセッサ14に結合されるキャッシュメモリ16を有する場合がある。CPU12は、システムバス18に結合され、モバイル端末10内に含まれるデバイスを相互結合することができる。よく知られているように、CPU12は、システムバス18を通してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU12は、メモリユニット22(0)〜22(N)にアクセスするために、メモリコントローラ20にバストランザクション要求を通信することができる。図1には示されていないが、複数のシステムバス18を設けることができ、各システムバス18が異なるファブリックを構成する。同様に、例示的な態様では、システムバス18のうちの1つは、オーディオ用のシリアル低電力チップ間メディアバス(SLIMbus)とすることができる。別の例示的な態様では、SLIMbusは、1つまたは複数の入力デバイス(たとえば、マイクロフォン)用に、そして、1つまたは複数の出力デバイス(たとえば、スピーカ)用に存在する場合がある。
【００１６】
他のデバイスをシステムバス18に接続することができる。図1に示されるように、これらのデバイスは、例として、メモリコントローラ20およびメモリユニット22(0)〜22(N)を含むメモリシステム、1つまたは複数の入力デバイス24、1つまたは複数の出力デバイス26、1つまたは複数のネットワークインターフェースデバイス28、ならびに1つまたは複数のディスプレイコントローラ30を含むことができる。入力デバイス24は、限定はしないが、入力キー、スイッチ、マイクロフォン、ボイスプロセッサなどを含む任意のタイプの入力デバイスを含むことができる。入力デバイス24がマイクロフォンである場合には、入力デバイスはSLIMbusに接続することができる。出力デバイス26は、限定はしないが、スピーカのようなオーディオインジケータ、ビデオインジケータ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。出力デバイス26がスピーカである場合には、出力デバイスはSLIMbusに接続することができる。ネットワークインターフェースデバイス28は、ネットワーク32との間のデータ交換を可能にするように構成される任意のデバイスとすることができる。ネットワーク32は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ワイヤレスローカルエリアネットワーク(WLAN)およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス28は、所望の任意のタイプの通信プロトコルをサポートするように構成することができる。
【００１７】
また、CPU12は、1つまたは複数のディスプレイ34に送られる情報を制御するために、システムバス18を通してディスプレイコントローラ30にアクセスするように構成される場合もある。ディスプレイコントローラ30は、1つまたは複数のビデオプロセッサ36を通して表示される情報をディスプレイ34に送り、ビデオプロセッサ36は、表示される情報を、ディスプレイ34に適したフォーマットとなるように処理する。ディスプレイ34は、限定はしないが、陰極線管(CRT)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む任意のタイプのディスプレイを含むことができる。
【００１８】
モバイル端末10は、SLIMbusによって結合される複数のスピーカおよび/または複数のマイクロフォンを含むことができるが、モバイル端末10は、ドッキングステーションを通して(またはワイヤレスで)などによって、外部サウンドシステムに結合することができる。この関連において、図2は、ドッキングステーション42に関連付けられるモバイル端末10を備える5.1チャネルサラウンドサウンドシステム40を示す。ドッキングステーション42は、中央スピーカ44を含み、フロントスピーカ46(L)および46(R)ならびにリアスピーカ48(L)および48(R)と、サブウーファ50とに結合することができる。十分に理解されているように、各スピーカ44、46(L)、46(R)、48(L)および48(R)ならびにサブウーファ50は個別のオーディオチャネルを有することができる。スピーカ44、46(L)、46(R)、48(L)および48(R)ならびにサブウーファ50の出力を適切にアライメントさせるとき、聴取者52は高いオーディオ忠実度を経験することができる。
【００１９】
オーディオ構成要素がモバイル端末10(または他のプロセッサベースデバイス)内にあるか、または外部システム内にあるかにかかわらず、モバイル端末10(または他のプロセッサベースデバイス)は、モデム、コーデックおよび/またはアプリケーションプロセッサのようなオーディオ構成要素間でオーディオデータを移動させるためにSLIMbusを含むことができる。この関連において、簡略化されたオーディオシステム60が図3に示される。簡略化されたオーディオシステム60は、構成要素としてSLIMbus通信バス66に通信可能に結合されるマスタ62(マスタデバイスと呼ばれる場合もあるが、「デバイス」はさらなる言外の意味を有する場合があるので、これ以降、単に「マスタ」と呼ばれる)と、スレーブデバイス64(1)〜64(4)とを含むことができる。例示的な態様において、スレーブデバイス64(1)〜64(4)は、マイクロフォン、スピーカまたは他のオーディオデバイスとすることができる。マスタ62はアプリケーションプロセッサ、コーデックまたはモデムとすることができ、2つの信号:共通クロックワイヤ70を介して通信されるクロック信号68と、共通データワイヤ74上で通信されるデータ信号72とを用いて、スレーブデバイス64(1)〜64(4)と通信する。図3には4つのスレーブデバイス64(1)〜64(4)のみが示されるが、それより多くの、または少ない構成要素がSLIMbus通信バス66に結合される場合があることは理解されたい。マスタ62は、それに関連付けられる制御システム(CS)76を有することができ、制御システムは、ハードウェアで実現されるプロセッサとすることができ、プロセッサは、プロセッサに関連付けられるメモリ内に記憶される関連するソフトウェアを有することは理解されたい。例示的な態様において、制御システム76は、マスタ62のシステムオンチップ(SoC)の一部である。代替の例示的な態様では、制御システム76は、モバイル端末10のCPU12に関連付けられる場合がある。さらなる例示的な態様では、スレーブデバイス64(1)〜64(4)はそれぞれ、それぞれのスレーブ制御システム78(1)〜78(4)を有する。
【００２０】
簡略化されたオーディオシステム60内の各構成要素は複数のポートを含むことができ、ポートはそれぞれ異なるオーディオチャネルに割り当てられる場合があることは理解されたい。この構成の例示的な態様が図4に示される。詳細には、オーディオシステム80は、第1の構成要素82(1)および第2の構成要素82(2)を含むことができる。第1の構成要素82(1)は複数のポート84を含むことができ、そのうちの84(m)および84(n)が示される。同様に、第2の構成要素82(2)は複数のポート84を含むことができ、そのうちの84(x)および84(y)が示される。ポート84はオーディオチャネル86を受信する。詳細には、ポート84(m)は第1のオーディオチャネル86(1)を受信し、ポート84(n)は第2のオーディオチャネル86(2)を受信する。シリアライザ(図示せず)が、オーディオデータをアセンブルし、オーディオデータをデータワイヤ74上に配置する。第2の構成要素82(2)は、データを抽出し、そのデータを適切なポート84に渡すためにデシリアライザ(図示せず)を使用する。この例では、第1のオーディオチャネル86(1)のためのデータはポート84(x)に渡され、第2のオーディオチャネル86(2)のためのデータはポート84(y)に渡される。ポート84は、分離されたオーディオチャネル86(1)および86(2)を、適切な信号処理ブロック88(1)および88(2)に渡す。
【００２１】
本開示の例示的な態様は、関連するオーディオチャネル86のためのオーディオデータを蓄積することと、それぞれの関連するオーディオチャネル86のための対応するサンプルを共通データワイヤ74上のTDM信号内のセグメントウィンドウの中に入れることとを提供する。この関連において、図5は、チャネルサンプルs11およびs12が第1のオーディオチャネル86(1)からサンプリングされ、チャネルサンプルs21およびs22が第2のオーディオチャネル86(2)からサンプリングされる信号フロー90の例示を提供する。同じ汎用サンプリング点からのサンプルが蓄積され、同じセグメントウィンドウ92において共通データワイヤ74上に配置される。蓄積はすべてのセグメントウィンドウ境界において行われる。第2の構成要素82(2)は、共通データワイヤ74上のデータをシリアル化し、サンプルをリアセンブルする。リアセンブルされたサンプル94を、受信機においてアライメントさせる。
【００２２】
ソースにおいてアライメントしたサンプルを確保するために、各ポートにおいて先入れ先出し(FIFO)レジスタが使用される場合がある。図6は、ソース内のFIFOレジスタのブロック図を与える。この例において、ソースは第1の構成要素82(1)である(そして、マスタ62とすることもできる)。第1の構成要素82(1)は制御システムを含み、制御システムはCS76とすることができる。図6においてプロセッサとして例示されるが、プロセッサは、何らかの他の信号処理エンティティに置き換えることができ、それでもCS76とすることができることは理解されたい。CS76はダイレクトメモリアクセス(DMA)モジュール100と通信する。DMAとして示されるが、何らかの他のデータフェッチエンティティが使用される場合があることは理解されたい。DMAモジュール100は、第1のオーディオチャネル86(1)および第2のオーディオチャネル86(2)を生成する。第1のオーディオチャネル86(1)は、ポート84(m)においてFIFO102に与えられる。シリアライザ(パラレル/シリアル(P2S))104がFIFO102の出力を取り込み、シリアル化された信号をマルチプレクサ(MUX)106に渡す。同様に、第2のオーディオチャネル86(2)は、ポート84(n)においてFIFO108に与えられる。シリアライザ110がFIFO108の出力を取り込み、シリアル化された信号をMUX106に渡す。クロックワイヤ70からのクロック信号が、必要に応じて、または所望により、ポート84に与えられる。TDM制御信号が、それぞれのサンプルをデータワイヤ74上に置くようにMUX106を制御する。信号が、セグメントウィンドウロジック116によって制御されるスイッチ112、114を通して、ポート84からMUX106に渡される。使用時に、FIFO102、108は、それぞれのオーディオチャネル86のためのデータを収集(または蓄積)し、所定のデータ量が蓄積されたときに、フラグまたはステータスインジケータを設定する。すべての関連するチャネルが十分なデータ蓄積を指示した時点に基づいて、セグメントウィンドウロジック116は、データをMUX106に放出する。このようにして、オーディオチャネル86の関連するサンプルのためのデータが最終的に、データワイヤ74上の同じセグメントウィンドウ内に存在する。このようにして、蓄積は、初期化後の各セグメントウィンドウにおいてサンプルアライメントを与える。このアライメントはオーディオ忠実度を改善するのを助ける。
【００２３】
受信側において、オーディオ忠実度を改善するのを助けるために、サンプルアライメントと位相アライメントの両方が望まれる場合がある。そのような受信側構成要素の構造が図7を参照しながら与えられる。デマルチプレクサ(DEMUX)120においてデータワイヤ74からオーディオデータが受信され、デマルチプレクサは、受信信号を分割し、分割された信号122(x)および122(y)をそれぞれのポート84(x)、84(y)に与える。また、ポート84は、クロックワイヤ70からクロック信号68を受信する。ポート84(x)はFIFO126(x)に関連付けられるデシリアライザ(シリアル/パラレル(S2P))124(x)において、分割された信号122(x)を受信する。FIFO126(x)は、エラー生成ロジック128(x)にステータスメッセージを、コンパレータ130(x)にカウントを与える。コンパレータ130(x)はカウントをウォーターマーク(または他の所定のしきい値)132(x)と比較し、比較に基づいてレディ信号134(x)を出力する(すなわち、カウントがウォーターマーク132(x)を超える場合には、レディ信号134がイネーブルされる)。エラー生成ロジック128(x)は、エラーバス136にエラー信号を選択的に与える。レディ信号134(x)は、レディバス138に与えられる。
【００２４】
引き続き図7を参照すると、本開示の例示的な態様は、マルチチャネルグループのチャネルのうちのいずれかが、アンダーフロー条件またはオーバーフロー条件のような、エラー条件を有するか否かを確認するために、エラーバス136上の情報を評価することによってエラー処理を実行する。エラー条件が存在する場合には、本開示の例示的な態様は、ストリームが再生されるか、または他の是正措置が講じられるまで、チャネルを中断し、代わりにナルデータ(null data)を使用する。是正措置が講じられるとき、ストリームがグループとして復元または再生される。
【００２５】
引き続き図7を参照すると、ポート84(x)は、第1のコンパレータ142(x)および第2のコンパレータ144(x)のためのステータスを設定するグルーピングレジスタ140(x)も含む。第1のコンパレータ142(x)はレディバス138から信号を受信する。第2のコンパレータ144(x)は、エラーバス136から信号を受信する。コンパレータ142(x)、144(x)の比較に基づいて、スイッチ146(x)、148(x)を開閉して、クロック150からのクロック信号をFIFO126(x)に与える。クロック信号がFIFO126(x)に与えられるか否かに基づいて、さらに処理する(たとえば、スピーカに渡す)ために、データがFIFO126(x)から信号処理ブロック152(x)にプルされる。クロック150からのクロック信号は、信号処理ブロック152(x)および152(y)にも渡される。FIFO126(x)およびFIFO126(y)で使用される同じクロック信号で信号処理ブロック152(x)および152(y)をクロック制御することによって、サンプルアライメントが保持され、オーディオ忠実度が改善される。
【００２６】
引き続き図7を参照すると、ポート84(y)は、(y)で示されるが、同じ機能を実行する類似の要素を有する。ウォーターマーク132の値およびグルーピングレジスタ140内の情報は、必要に応じて、または所望により、メッセージ制御またはプログラミングエンティティによってプログラミングされる場合があることを理解されたい。
【００２７】
このような構造を背景にして、第1の構成要素82(1)における関連するポートがいかにリンクされるかを示す、例示的なプロセス160が与えられる。図示されるように、第1の構成要素82(1)はソース構成要素である。プロセス160は、制御システム76が、2つ(または3つ以上)のオーディオチャネルを通して送出されることになるオーディオデータを収集すること(ブロック162)から開始する。制御システム76およびDMA100は、ポート(m)のFIFO102を第1のチャネルオーディオデータでプレフィルする(ブロック164)。その後、制御システム76およびDMA100は、ポート(n)のFIFO108を第2のチャネルオーディオデータでプレフィルする(ブロック166)。マネージャデバイス(図示せず)が、同じチャネルレート(たとえば、48kHz)を有するようにポート84をプログラミングする(ブロック168)。
【００２８】
引き続き図8を参照すると、マネージャデバイスは、両方のポート84上のチャネルを同時に起動する(ブロック170)。2つのポート84からの2つのオーディオチャネルの番号を付された所与のサンプルが、同じセグメントウィンドウ内に入れられる(ブロック172)。マネージャデバイスは、これがデータ終了であるか否かを判断し(ブロック174)、そのプロセスは、言及されたように繰り返すか、またはブロック174が肯定的に応答される場合には、ポートを終了し、リセットする(ブロック176)。
【００２９】
図9は、受信側においてチャネルをリンクする例示的な技法を示すプロセス180を示す。すなわち、第2の構成要素82(2)はシンク構成要素である。この関連において、プロセス180は、プロセッサがポート(x)のためのウォーターマーク132(x)およびグルーピングレジスタ140(x)をプログラミングすること(ブロック182)から開始する。プロセッサは、ポート(y)のためのウォーターマーク132(y)およびグルーピングレジスタ140(y)をプログラミングする(ブロック184)。プロセッサは第2の構成要素82(2)内、または第1の構成要素82(1)内に存在する場合があり、プログラミングは、データワイヤ74にわたって送信されるメッセージによって達成される場合があることに留意されたい。
【００３０】
引き続き図9を参照すると、マネージャデバイス(図示せず)が、ポート84(x)および84(y)を同じチャネルレートになるようにプログラミングすることができる(ブロック186)。マネージャデバイスは、両方のポート上のチャネルを同時に起動する(ブロック188)。様々なことが起こる場合がある。第1の事例では、FIFO126(x)がフィルし始め、レディ信号134(x)も絶えず更新される(ブロック190)。レディ信号134(x)は、レディバス138を通してポート84(y)に渡される。第2の事例では、FIFO126(y)がフィルし始め、レディ信号134(y)も絶えず更新される(ブロック192)。レディ信号134(y)は、レディバス138を通してポート84(x)に渡される。同時に、クロック150がオンに切り替えられ、ポート84(x)および84(y)ならびに他の信号処理ブロック152(x)および152(y)に与えられる(ブロック194)。すべての関与するポートがレディを知らせる(ブロック196)と、両方のポート84(x)およびポート84(y)がレディを知らせるとき、読出しクロックがFIFO126(x)および126(y)を通り抜ける(ブロック198)。
【００３１】
引き続き図9を参照すると、ポート84(x)および84(y)がデータワイヤ74からのデータでフィルされ続け(ブロック200)、両方のオーディオチャネルの番号を付された同じサンプルが、FIFO126(x)および126(y)からそれぞれの信号処理ブロック152(x)および152(y)に同時にプルされる(ブロック202)。コントローラは、任意のポートからのエラー信号があるか否かを確認する(ブロック204)。エラーがある場合には、コントローラは、両方のFIFO126(x)および126(y)の読出しをディスエーブルし、プロセッサの介入を待つ(ブロック206)。ブロック204においてエラーがない場合には、コントローラは、オーディオデータ終了であるか否かを確認する(ブロック208)。終了であった場合には、プロセス180は終了する(ブロック210)。そうでない場合には、プロセス180は、示されるように繰り返す。
【００３２】
上記の検討は、マルチチャネルオーディオストリームのチャネルアライメントを助長するためにデータを蓄積することの背後にある一般概念を考えるが、ソースおよびシンクがマスタ/スレーブであるという性質に応じて、これを実現することができるいくつかの取り得る方法がある。すなわち、ソースはマスタまたはスレーブとすることができ、シンクも同様にマスタまたはスレーブとすることができる。さらに、ソースがデータをプッシュする場合があるか、シンクがデータをプルする場合がある。これらの異なる変形形態の例示的な態様が図10〜図13において与えられる。
【００３３】
この関連において、図10は、例示的なプロセス220を示しており、ソースはスレーブであり、マスタシンクがスレーブソースからデータをプルする。プロセス220において、データのフローレートは、マスタシンクによって決定され、送信ソースFIFOレジスタに渡される。したがって、リセット(ブロック222)後に、バスポートがアイドル状態に入れられた場合(ブロック224)、構成要素が、バスチャネルがイネーブルされたか否かを監視する(ブロック226)。この応答が否定である間、プロセス220は、言及されたように繰り返す。バスチャネルがイネーブルされると、プロセス220は分岐する。
【００３４】
図10を引き続き参照すると、最初に、バスポートはアクティブ状態にされる(ブロック228)。制御システム78は、チャネルがセグメントウィンドウ境界にあるか否かを判断する(ブロック230)。ブロック230への応答が否定である場合には、プロセス220は、ポートデータがレディである前に、バスポートがアクティブであると理解する(ブロック232)。しかしながら、ブロック230への応答が肯定である場合には、制御システム78は、すべての関連するチャネルがウォーターマークレベルにあるか否かを確認する(ブロック234)。ブロック234への応答が否定である場合には、プロセスは、ポートデータがレディである前に、バスポートがアクティブであると理解する(ブロック232)。しかしながら、ブロック234に対する応答が肯定である場合には、バスポートが始動し、データレディ状態を指示する(ブロック236)。
【００３５】
引き続き図10を参照すると、ポートデータが入手可能である前に、バスポートがアクティブであると理解した(ブロック232)後に、制御システム78は、送信機が送信タイムスロットに達したか否かを判断する(ブロック238)。ブロック238に対する応答が否定である場合には、プロセス220はブロック230に戻る。しかしながら、ブロック238に対する応答が肯定である場合には、送信機は、プレゼンスを伴わないナルデータを出力し(ブロック240)、このナルデータは、外部バスに与えられる(ブロック242)。制御システム78が、チャネルがディスエーブルされた否かを判断する間、ナルデータは継続される(ブロック244)。ブロック244に対する応答が否定である場合には、プロセスはブロック230に戻り、内部データシンク前にバスが始動する場合には、任意の適切なエラー処理を伴う(ブロック246)。しかしながら、ブロック244への応答が肯定である場合には、ポートはシャットダウン状態に入り(ブロック248)、プロセスはブロック224に戻る。
【００３６】
引き続き図10を参照すると、ブロック236に戻ると、制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック250)。ブロック250への応答が否定である場合には、判断は繰り返す。エラーがある場合には、エラー信号がエラーバスに与えられ、エラー状態が指示される(ブロック252)。ブロック252のエラー状態から、ポートはシャットダウン状態に入り(ブロック248)、プロセスはブロック224に戻る。ブロック250においてエラーがなく、タイムスロットに達していた場合には、ソースは、プレゼンスステータスが設定された第1の有効データを出力し(ブロック254)、データが外部バスに送られる(ブロック242)。プロセス220が継続し、送信タイムスロットに達したか否かを判断する(ブロック256)。ブロック256に対する応答が否定である場合には、プロセス220は、言及されたように繰り返す。ブロック256に対する応答が、エラーが発生したことである場合には、プロセス220は、先に説明されたように、エラー状態に入る(ブロック252)。ブロック256に対する応答が肯定である場合には、送信タイムスロットに達しており、制御システム78は、バス上にマスタシンクデータプル指示、すなわち、この送信タイムスロットのための有効データを指示するために、ソースによって設定されるデータ存在「P」バスタグを補うためにシンクによって設定されるサンプル要求「SRQ」タグが存在するか否かを判断する(ブロック258)。データをプルすることを望むシンクによってプルプロトコルにおいてSRQが設定される間に、プッシュプロトコルでは、データストローブ(「STR」)タグが設定される場合がある。エラーがある場合には、エラー状態がアサートされ(ブロック252)、先に説明されたように、ポートはシャットダウン状態に入り(ブロック248)、そのプロセスはブロック224に戻る。ブロック258に対する応答が否定である場合には、ソースはデータ出力を延期するか、またはスキップする(260)。ブロック258に対する応答が肯定である場合には、有効データが出力される(ブロック262)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック264)。ブロック264に対する応答が否定である場合には、プロセス220は、言及されたように、ブロック256に戻る。ブロック264に対する応答が肯定である場合には、先に説明されたように、ポートはシャットダウン状態に入り(ブロック248)、そのプロセスはブロック224に戻る。
【００３７】
引き続き図10を参照すると、ブロック226に戻ると、ソースは、内部データソースがイネーブルされたか否かも判断する(ブロック266)。ブロック266に対する応答が否定である場合、プロセス220は、図示されるようにループする。ブロック266に対する応答が肯定である場合には、内部ソースはデータ開始状態に入る(ブロック268)。ソースは、内部データソース送信要求があるか否かを判断する(ブロック270)。ブロック270においてエラーがある場合には、エラー状態がアサートされ(ブロック252)、ポートはシャットダウン状態に入り(ブロック248)、そのプロセスはブロック224に戻る。ブロック270に対する応答が否定である場合、プロセス220は、図示されるようにループする。ブロック270に対する応答が肯定である場合には、ソースはマルチチャネルグループ内のすべての関連するチャネルがウォーターマークレベル以上であるか否かを判断する(ブロック272)。エラーが検出される場合には、エラー状態がアサートされ(ブロック252)、ポートはシャットダウン状態に入り(ブロック248)、そのプロセスはブロック224に戻る。ブロック272に対する応答が否定である場合、データは無視される(ブロック274)。しかしながら、ブロック272に対する応答が肯定である場合には、有効データが入力され、肯定応答(ACK)応答が生成される(ブロック276)。その後、データは外部ソースからプルされる(ブロック278)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック280)。ブロック280に対する応答が否定である場合には、プロセスは、言及されたように、ブロック270にループバックする。ブロック280に対する応答が肯定である場合には、ポートはシャットダウン状態に入り(ブロック248)、そのプロセスはブロック224に戻る。
【００３８】
図11は、例示的な態様に関連付けられるプロセス290の流れ図を示しており、スレーブシンクがマスタソースからデータをプルする。この関連において、プロセス290は、リセットで開始し(ブロック292)、バスポートはアイドル状態に入る(ブロック294)。プロセス290は、バスチャネルがイネーブルされたか否かを判断する(ブロック296)。ブロック296が否定である限り、プロセス290は、示されるようにループする。バスチャネルがイネーブルされると、バスポートはアクティ状態に入る(ブロック298)。そのプロセスは、内部データシンクがイネーブルされたか否かを判断する(ブロック300)。ブロック300が否定である限り、示されるように、プログラム290はループする。内部データシンクがイネーブルされると、プロセス290は分岐する。
【００３９】
引き続き図11を参照すると、プロセス290が継続し、内部シンクがデータ開始状態に入る(ブロック302)。制御システム78は、すべての関連するチャネルが指定されたウォーターマークレベルにあるか否かを判断する(ブロック304)。ブロック304に対する応答が否定である場合には、内部データシンクはナルデータ状態に入る(ブロック306)。制御システム78は、内部データシンク要求があるか否かを判断する(ブロック308)。ブロック308に対する応答が否定である場合、プロセス290は、示されるようにループバックする。ブロック308に対する応答が肯定である場合には、内部データシンク要求が存在し、ナルデータが出力される(ブロック310)。このデータは、内部シンクに与えられる(312)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック314)。ブロック314に対する応答が否定である場合、プロセスは、示されるようにループバックする。ブロック314への応答が肯定である場合には、プロセス290はポートシャットダウン状態に続き(ブロック316)、プロセス290は、示されるように、アイドル状態にあるバスポートに戻る(ブロック294)。内部データシンクが始動する前にバスが始動する場合には、エラー処理が生じる場合がある。
【００４０】
引き続き図11を参照すると、ブロック304に対する応答が肯定である場合には、チャネルはウォーターマークレベル以上にあり、データシンクは始動状態に入る(ブロック318)。制御システム78は、内部データシンク要求があるか否かを判断する(ブロック320)。内部データシンク要求が存在しない限り、プロセス290は、示されるように、ループバックする。ブロック320において、内部データシンク要求がある場合には、ソースは有効データを出力する(ブロック322)。このデータは、内部シンクに与えられる(ブロック324)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック326)。ブロック326に対する応答が否定である場合には、プロセス290は、示されるように、ブロック320にループバックする。ブロック326に対する応答が肯定である場合には、チャネルはディスエーブルされており、先に示されたように、ポートはシャットダウン状態に入り(ブロック316)、アイドル状態にあるバスポートにループバックする(ブロック294)。ブロック320において内部データシンク要求に関連付けられるエラーがある場合には、シンクはエラー状態に入り(ブロック328)、ポートは、先に説明されたように、シャットダウン状態に入る(ブロック316)。
【００４１】
引き続き図11およびブロック300を参照すると、内部シンクがデータ開始状態に入るのと同時に、バスポートが始動し、バスポートがデータレディ状態にあることを指示する(ブロック330)。制御システム78は、データがセグメントウィンドウ境界にあるか否かを判断する(ブロック332)。ブロック332に対する応答が否定である(そして、エラーがない)限り、プロセス290は、示されるようにループバックする。エラーがある場合には、プロセス290は、先に論じられたように、エラー状態に入る(ブロック328)。ブロック332に対する応答が肯定である場合には、データはセグメントウィンドウ境界にあり、その際、制御システム78は、すべての関連するチャネルがウォーターマークレベル以上にあるか否かを判断する(ブロック334)。再び、エラーがある場合には、プロセス290は、先に論じられたように、エラー状態に入る(ブロック328)。ブロック334に対する応答が否定である場合には、制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック336)。エラーがある場合には、プロセス290は、先に論じられたように、エラー状態に入る(ブロック328)。エラーがない場合には、送信タイムスロットに達していない限り、プロセス290は、示されるようにループする。送信タイムスロットに達すると、データは無視され、バスサンプル要求バスタグビット(SRQ)はシンクによってアサートされない(ブロック338)。しかしながら、ブロック334が肯定的に応答される(すなわち、関連するチャネルがウォーターマークレベル以上にある)場合には、制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック340)。エラーがある場合には、プロセス290は、先に論じられたように、エラー状態に入る(ブロック328)。エラーがなく、送信タイムスロットに達していない限り、プロセス290は、示されるようにループする。送信タイムスロットに達していると、有効データが入力され、ソースからのデータプレゼンスに肯定応答するために、シンクによってSRQタグビットがアサートされる(ブロック342)。データはバスからプルされる(ブロック344)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック346)。ブロック346に対する応答が否定である場合には、プロセス290は、示されるようにブロック332に戻り、そうでない場合には、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック316)。
【００４２】
図12は、例示的な態様に関連付けられるプロセス350の流れ図を示しており、スレーブソースがマスタシンクにデータをプッシュする。プロセス350は、リセットで開始し(ブロック352)、バスポートはアイドル状態に入る(ブロック354)。制御システム78は、バスチャネルがイネーブルされたか否かを判断する(ブロック356)。バスがイネーブルされていない限り、プロセス350は、示されるようにループする。バスチャネルがイネーブルされると、プロセス350は分岐する。1パス後、バスポートはアクティブ状態に入る(ブロック358)。制御システム78は、データがセグメントウィンドウ境界にあるか否かを判断する(ブロック360)。ブロック360への応答が否定である場合には、ポートデータが入手可能である前に、バスポートはアクティブである(ブロック362)。制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック364)。ブロック364に対する応答が否定である場合には、プロセス350は、示されるように、ブロック360にループバックする。ブロック364に対する応答が肯定である場合には、プレゼンス指示を伴わないナルデータが出力され(ブロック366)、このナルデータは、外部バスに与えられる(ブロック368)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック370)。チャネルがディスエーブルされていない場合には、プロセス350は、示されるように、ブロック360に戻る。チャネルがディスエーブルされた場合には、ポートはシャットダウン状態に入り(ブロック372)、そのプロセスは、示されるように、ブロック354に戻る。
【００４３】
引き続き図12を参照すると、ブロック360に戻ると、ブロック360が肯定的に応答される場合には、制御システム78は、すべての関連するチャネルがウォーターマークレベルにあるか否かを判断する(ブロック374)。ブロック374に対する応答が否定である場合には、プロセス350は、示されるように、ブロック362に進む。ブロック374に対する応答が肯定である場合には、バスポートが、データレディを伴う始動状態に入る(ブロック376)。制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック378)。エラーがある場合には、プロセス350はエラー状態に入り(ブロック380)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック372)。送信タイムスロットに達していない限り、示されるように、プロセス350はループする。送信タイムスロットに達すると、プレゼンスステータスが設定された、すなわち、バスプレゼンス(「P」)タグおよびSTRタグが設定された有効データが出力される(ブロック382)。データは外部バスに送信される(ブロック368)。制御システム78は、データがセグメントウィンドウ境界にあるか否かを判断する(ブロック384)。エラーがある場合には、プロセス350はエラー状態に入り(ブロック380)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック372)。エラーがない場合には、セグメントウィンドウ境界に達していない限り、プロセス350は、示されるようにループする。セグメントウィンドウ境界に達すると、制御システム78は、すべての関連するチャネルがウォーターマークレベル以上であるか否かを判断する(ブロック386)。再び、エラーがある場合には、プロセス350はエラー状態に入り(ブロック380)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック372)。エラーがなく、すべてのチャネルがウォーターマークレベルより上にあるとは限らない場合には、制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック388)。エラーがある場合には、プロセス350はエラー状態に入り(ブロック380)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック372)。エラーがなく、送信タイムスロットに達していない場合には、プロセス350は、示されるようにループする。送信タイムスロットに達すると、ソースは、プレゼンスが設定されない、すなわち、バスPタグまたはSTRタグが設定されないナルデータを出力する(ブロック390)。ナルデータは外部バスに出力される(ブロック392)。エラーがなく、すべての関連するチャネルがウォーターマークしきい値以上にある場合には、制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック394)。エラーがある場合には、プロセス350はエラー状態に入り(ブロック380)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック372)。エラーがなく、送信タイムスロットに達していた場合には、ソースは、プレゼンスステータスが設定された、すなわち、バスPタグおよびSTRタグが設定された有効データを出力する(ブロック396)。そのデータは外部バスに出力される(ブロック392)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック398)。ブロック398に対する応答が否定である場合には、プロセス350は、示されるように、ブロック384に戻る。チャネルがディスエーブルされていた場合には、先に示されたように、ポートはシャットダウン状態に入る(ブロック372)。
【００４４】
引き続き図12を参照すると、ブロック356に戻ると、同時に、制御システム78は、内部データソースがイネーブルされたか否かを判断する(ブロック400)。ブロック400に対する応答が否定である場合には、プロセス350は、示されるようにループする。内部データソースがイネーブルされると、内部ソースはデータ開始状態に入る(ブロック402)。制御システム78は、内部データソースが送信要求を有するか否かを判断する(ブロック404)。エラーがある場合には、プロセス350はエラー状態に入り(ブロック380)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック372)。エラーがなく、ブロック404に対する応答が否定である場合には、プロセス350は、示されるようにループする。送信要求があると、内部データソースは、有効データを入力する(ブロック406)。データは内部データソースから到来する(ブロック408)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック410)。ブロック410に対する応答が否定である場合には、プロセス350はブロック404に戻る。ブロック410に対する応答が肯定である場合には、先に論じられたように、ポートはシャットダウン状態に入る(ブロック372)。
【００４５】
図13は、例示的な態様に関連付けられるプロセス420の流れ図を示しており、マスタソースがスレーブシンクにデータをプッシュする。プロセス420は、リセットで開始し(ブロック422)、バスポートはアイドル状態に入る(ブロック424)。制御システム78は、バスチャネルがイネーブルされたか否かを判断する(ブロック426)。バスがイネーブルされていない限り、プロセス420は、示されるようにループする。バスチャネルがイネーブルされると、バスポートはアクティ状態に入る(ブロック428)。制御システム78は、内部データシンクがイネーブルされたか否かを判断する(ブロック430)。ブロック430に対する応答が否定である限り、示されるように、プログラム420はループする。ブロック430に対する応答が肯定である場合には、プロセス420は分岐する。
【００４６】
引き続き図13を参照すると、プロセス420が継続し、内部シンクがデータ開始状態に入る(ブロック432)。制御システム78は、すべての関連するチャネルがウォーターマークレベルにあるか否かを判断する(ブロック434)。ブロック434に対する応答が否定である場合には、データシンクはナルデータ状態に入る(ブロック436)。制御システム78は、内部データシンク要求があるか否かを判断する(ブロック438)。ブロック438に対する応答が否定である場合には、プロセス420は、示されるように、ブロック434にループバックする。ブロック438に対する応答が肯定である場合には、内部シンクに(ブロック442)ナルデータが出力される(ブロック440)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック444)。ブロック444に対する応答が否定である場合には、プロセス420は、示されるように、ブロック434にループバックする。ブロック444に対する応答が肯定である場合には、示されるように、ポートはシャットダウン状態に入り(ブロック446)、ブロック424に戻る。
【００４７】
引き続き図13を参照すると、ブロック434に対する応答が肯定である場合には、データシンクは始動状態に入る(ブロック448)。制御システム78は、内部データシンク要求があるか否かを判断する(ブロック450)。エラーがある場合には、プロセス420はエラー状態に入り(ブロック452)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック446)。エラーがなく、ブロック450に対する応答が否定である場合には、プロセス420は、示されるように、ブロック450にループバックする。エラーがなく、ブロック450に対する応答が肯定である場合には、制御システム78は、すべての関連するチャネルがウォーターマークレベル以上であるか否かを判断する(ブロック454)。エラーがある場合には、プロセス420はエラー状態に入り(ブロック452)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック446)。エラーがなく、ブロック454に対する応答が否定である場合には、プロセス420は、出力をスキップする(ブロック456)。ブロック454に対する応答が肯定である場合には、有効データが送出され、ACK応答が与えられる(ブロック458)。データは内部シンクに送信される(ブロック460)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック462)。ブロック462に対する応答が否定である場合には、プロセス420は、示されるように、ブロック450にループバックする。ブロック462に対する応答が肯定である場合には、ポートは、先に示されたように、シャットダウン状態に入る(ブロック446)。
【００４８】
引き続き図13を参照すると、ブロック430後に、プロセス420によって、バスポートが始動し、データレディ状態に入る(ブロック464)。制御システム78は、送信タイムスロットに達したか否かを判断する(ブロック466)。エラーがある場合には、プロセス420はエラー状態に入り(ブロック452)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック446)。エラーがなく、ブロック466に対する応答が否定である場合には、プロセス420は、示されるようにループする。ブロック466に対する応答が肯定である場合には、送信タイムスロットに達しており、その際、データソースは、この送信タイムスロットのための有効データが存在することを指示するために、有効サンプル要求ストローブSTRタグおよび関連するデータ存在Pタグをアサートする(ブロック468)。エラーがある場合には、プロセス420はエラー状態に入り(ブロック452)、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック446)。エラーがなく、ブロック468に対する応答が否定である場合には、データ入力スロットはスキップされる(ブロック470)。ブロック468に対する応答が肯定である場合には、有効データが入力される(ブロック472)。データはバスソースデータから受信される(ブロック474)。制御システム78は、チャネルがディスエーブルされたか否かを判断する(ブロック476)。チャネルがディスエーブルされていない場合には、プロセス420は、示されるように、ブロック466にループバックする。チャネルがディスエーブルされた場合には、ポートは、先に論じられたように、シャットダウン状態に入る(ブロック446)。
【００４９】
なお、図10〜図13はスレーブ制御システム78が行うことから提示されるが、本開示の例示的な態様は、これらの概念をマスタ制御システム76に拡張することは理解されたい。さらに、いつ始動すべきかを規定するためにウォーターマークを使用する概念は、スレーブとマスタの両方に関して存在する。サンプルごとにプレゼンスまたはSRQ/STRをアサートするためにウォーターマークを使用する概念は、スレーブ側において一般的であるが、マスタ側において見いだすこともできるオーディオ時間基準への近接性を仮定する。
【００５０】
先に示唆されたように、本明細書において開示される態様によるマルチチャネルオーディオアライメント方式は、任意のプロセッサベースデバイス内に設けることができるか、または組み込むことができる。例としては、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、定置データユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤがある。任意のそのようなデバイスが本開示の態様から利益を得る場合があるが、本開示は、SLIMbusプロトコルに従って動作するデバイスで使用するのに特に適している。
【００５１】
本明細書において開示される態様に関して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、またはその両方の組合せとして実現できることは、当業者はさらに理解されよう。本明細書において説明されるデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて利用される場合がある。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリとすることができ、所望の任意のタイプの情報を記憶するように構成することができる。この互換性を明確に説明するために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップは、概してそれらの機能に関してこれまで説明されてきた。そのような機能がどのように実現されるかは、特定の適用例、設計上の選択、および/またはシステム全体に課される設計制約によって決まる。当業者は、説明された機能を特定の適用例ごとに様々な方法において実現できるが、そのような実施態様の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００５２】
本明細書において開示される態様に関して説明される種々の例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェア構成要素、または本明細書において説明される機能を実行するように設計されるそれらの任意の組合せを用いて実現または実行することができる。プロセッサは、マイクロプロセッサとすることができるが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。
【００５３】
本明細書で開示する態様は、ハードウェアにおいて、また、ハードウェアに記憶された命令において具現される場合があり、命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体は、プロセッサと一体にすることができる。プロセッサおよび記憶媒体はASIC内に存在することができる。ASICは、リモート局内に存在することができる。代替形態では、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバ内に存在することができる。
【００５４】
本明細書の例示的な態様のいずれかにおいて説明される動作ステップは、例および検討を提供するために説明されることにも留意されたい。説明される動作は、図示されるシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明される動作は、実際には複数の異なるステップにおいて実行される場合がある。さらに、例示的な態様において論じられる1つまたは複数の動作ステップが組み合わせられる場合がある。当業者には容易に明らかになるように、流れ図に示される動作ステップは、多数の異なる変更を受ける場合があることは理解されたい。当業者は、情報および信号が様々な異なる技術および技法のいずれかを使用して表される場合があることも理解されよう。たとえば、上記の説明全体を通して参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【００５５】
本開示の上記の説明は、当業者が本開示を実施するかまたは使用することを可能にするために提供される。本開示に対する種々の変更が、当業者には容易に明らかになり、本明細書において規定される一般原理は、本開示の趣旨または範囲を逸脱することなく、他の変形形態に適用される場合がある。したがって、本開示は、本明細書において説明される例および設計に限定されるものではなく、本明細書において開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５６】
10  モバイル端末
12  中央処理ユニット(CPU)
14  プロセッサ
16  キャッシュメモリ
18  システムバス
20  メモリコントローラ
22(0)〜22(N)  メモリユニット
24  入力デバイス
26  出力デバイス
28  ネットワークインターフェースデバイス
30  ディスプレイコントローラ
32  ネットワーク
34  ディスプレイ
36  ビデオプロセッサ
40  5.1チャネルサラウンドサウンドシステム
42  ドッキングステーション
44  中央スピーカ
46(L)  フロントスピーカ
46(R)  フロントスピーカ
48(L)  リアスピーカ
48(R)  リアスピーカ
50  サブウーファ
60  簡略化されたオーディオシステム
62  マスタ
64(1)  スレーブデバイス
64(2)  スレーブデバイス
64(3)  スレーブデバイス
64(4)  スレーブデバイス
66  SLIMbus通信バス
68  クロック信号
70  共通クロックワイヤ
72  データ信号
74  共通データワイヤ
76  制御システム(CS)
78  制御システム
78(1)  スレーブ制御システム
78(2)  スレーブ制御システム
78(3)  スレーブ制御システム
78(4)  スレーブ制御システム
80  オーディオシステム
82(1)  第1の構成要素
82(2)  第2の構成要素
84  ポート
84(m)  ポート
84(n)  ポート
84(x)  ポート
84(y)  ポート
86  オーディオチャネル
86(1)  第1のオーディオチャネル
86(2)  第2のオーディオチャネル
88(1)  信号処理ブロック
88(2)  信号処理ブロック
90  信号フロー
92  セグメントウィンドウ
94  リアセンブルされたサンプル
100  ダイレクトメモリアクセス(DMA)モジュール
102  FIFO
104  シリアライザ
106  マルチプレクサ(MUX)
108  FIFO
110  シリアライザ
112  スイッチ
114  スイッチ
116  セグメントウィンドウロジック
120  デマルチプレクサ(DEMUX)
122(x)  分割された信号
122(y)  分割された信号
124(x)  デシリアライザ
126(x)  FIFO
126(y)  FIFO
128(x)  エラー生成ロジック
130(x)  コンパレータ
132(x)  ウォーターマーク
132(y)  ウォーターマーク
134  レディ信号
134(x)  レディ信号
134(y)  レディ信号
136  エラーバス
138  レディバス
140(x)  グルーピングレジスタ
140(y)  グルーピングレジスタ
142(x)  第1のコンパレータ
144(x)  第2のコンパレータ
146(x)  スイッチ
148(x)  スイッチ
150  クロック
152(x)  信号処理ブロック
152(y)  信号処理ブロック
160  プロセス
180  プロセス
220  プロセス
290  プロセス
350  プロセス
420  プロセス
【図１】
2018500799.tif 000003
【図２】
2018500799.tif 000004
【図３】
2018500799.tif 000005
【図４】
2018500799.tif 000006
【図５】
2018500799.tif 000007
【図６】
2018500799.tif 000008
【図７】
2018500799.tif 000009
【図８】
2018500799.tif 000010
【図９】
2018500799.tif 000011
【図１０−１】
2018500799.tif 000012
【図１０−２】
2018500799.tif 000013
【図１１−１】
2018500799.tif 000014
【図１１−２】
2018500799.tif 000015
【図１２−１】
2018500799.tif 000016
【図１２−２】
2018500799.tif 000017
【図１３−１】
2018500799.tif 000018
【図１３−２】
2018500799.tif 000019
【手続補正書】
【提出日】平成29年5月16日(2017.5.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オーディオストリームを制御する方法であって、
オーディオストリームからの第1のオーディオチャネルに関連付けられる第1のデータをマスタオーディオソース内の第1のポートに与えるステップと、
前記オーディオストリームからの第2のオーディオチャネルに関連付けられる第2のデータを前記マスタオーディオソース内の第2のポートに与えるステップと、
前記第1のポートにおいて、所定のデータ量が蓄積されるまで、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、前記所定のデータ量が蓄積されるまで、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のオーディオチャネルおよび前記第2のオーディオチャネル内の同等のオーディオサンプルをグループ化し、時分割フォーマット内のセグメントウィンドウ境界に対応するセグメントウィンドウの中に入れることができるように、前記セグメントウィンドウ境界において、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタを排出させるステップと、
前記同等のオーディオサンプルをグループ化し、前記セグメントウィンドウ境界に対応する前記セグメントウィンドウの中に入れるステップとを含む、方法。
【請求項２】
前記マスタオーディオソースからスレーブオーディオシンクに前記第1のデータをプッシュするステップをさらに含む、請求項1に記載の方法。
【請求項３】
スレーブオーディオシンクによって前記マスタオーディオソースからプルされた前記第1のデータを有するステップをさらに含む、請求項1に記載の方法。
【請求項４】
エラー条件を検出するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記エラー条件を検出するステップの後に、前記マスタオーディオソースからナルデータを出力するステップをさらに含む、請求項4に記載の方法。
【請求項６】
前記第1のデータおよび前記第2のデータが所定のウォーターマークレベルを超えているか否かを検出するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記第1のデータまたは前記第2のデータのいずれかが前記所定のウォーターマークレベルを超えていない場合には、データ出力をスキップするステップをさらに含む、請求項6に記載の方法。
【請求項８】
オーディオストリームを制御する方法であって、
所定のデータ量が蓄積されるまで、オーディオストリームからの第1のオーディオチャネルに関連付けられる第1のデータをスレーブオーディオソース内の第1のポートに与えるステップと、
前記所定のデータ量が蓄積されるまで、前記オーディオストリームからの第2のオーディオチャネルに関連付けられる第2のデータを前記スレーブオーディオソース内の第2のポートに与えるステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のオーディオチャネルおよび前記第2のオーディオチャネル内の同等のオーディオサンプルをグループ化し、時分割フォーマット内のセグメントウィンドウ境界に対応するセグメントウィンドウの中に入れることができるように、前記セグメントウィンドウ境界において、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタを排出させるステップと、
前記同等のオーディオサンプルをグループ化し、前記セグメントウィンドウ境界に対応する前記セグメントウィンドウの中に入れるステップとを含む、方法。
【請求項９】
前記スレーブオーディオソースからマスタオーディオシンクに前記第1のデータをプッシュするステップをさらに含む、請求項8に記載の方法。
【請求項１０】
マスタオーディオシンクによって前記スレーブオーディオソースからプルされた前記第1のデータを有するステップをさらに含む、請求項8に記載の方法。
【請求項１１】
エラー条件を検出するステップをさらに含む、請求項8に記載の方法。
【請求項１２】
前記エラー条件を検出した後に、前記スレーブオーディオソースからナルデータを出力するステップをさらに含む、請求項11に記載の方法。
【請求項１３】
前記第1のデータおよび前記第2のデータが所定のウォーターマークレベルを超えているか否かを検出するステップをさらに含む、請求項8に記載の方法。
【請求項１４】
前記第1のデータまたは前記第2のデータのいずれかが前記所定のウォーターマークレベルを超えていない場合には、データ出力をスキップするステップをさらに含む、請求項13に記載の方法。
【請求項１５】
オーディオストリームを制御する方法であって、
オーディオバスからの第1のオーディオチャネルに関連付けられる第1のデータをマスタオーディオシンク内の第1のポートにおいて受信するステップと、
前記オーディオバスからの第2のオーディオチャネルに関連付けられる第2のデータを前記マスタオーディオシンク内の第2のポートにおいて受信するステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のFIFOレジスタにおける第1のカウントを第1の所定のしきい値と比較するステップと、
前記第1のカウントが前記第1の所定のしきい値を超える場合には、第1のレディ信号を設定するステップと、
前記第2のFIFOレジスタにおける第2のカウントを第2の所定のしきい値と比較するステップと、
前記第2のカウントが前記第2の所定のしきい値を超える場合には、第2のレディ信号を設定するステップと、
前記第1のレディ信号および前記第2のレディ信号が設定された場合には、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタの内容を読み出すことができるようにするステップとを含む、方法。
【請求項１６】
オーディオストリームを制御する方法であって、
オーディオバスからの第1のオーディオチャネルに関連付けられる第1のデータをスレーブオーディオシンク内の第1のポートにおいて受信するステップと、
前記オーディオバスからの第2のオーディオチャネルに関連付けられる第2のデータを前記スレーブオーディオシンク内の第2のポートにおいて受信するステップと、
前記第1のポートにおいて、第1の先入れ先出し(FIFO)レジスタ内に前記第1のデータを蓄積するステップと、
前記第2のポートにおいて、第2のFIFOレジスタ内に前記第2のデータを蓄積するステップと、
前記第1のポートおよび前記第2のポートを同一のチャネルレートにおいて動作するようにプログラミングするステップと、
前記第1のFIFOレジスタにおける第1のカウントを第1の所定のしきい値と比較するステップと、
前記第1のカウントが前記第1の所定のしきい値を超える場合には、第1のレディ信号を設定するステップと、
前記第2のFIFOレジスタにおける第2のカウントを第2の所定のしきい値と比較するステップと、
前記第2のカウントが前記第2の所定のしきい値を超える場合には、第2のレディ信号を設定するステップと、
前記第1のレディ信号および前記第2のレディ信号が設定された場合には、前記第1のFIFOレジスタおよび前記第2のFIFOレジスタの内容を読み出すことができるようにするステップとを含む、方法。
【国際調査報告】
2018500799.tif 000020
2018500799.tif 000021
2018500799.tif 000022
2018500799.tif 000023
2018500799.tif 000024