(57)【要約】【課題】  HDAコーデックに内蔵されるDSPなどのプログラム可能なプロセッサを起動するシステムと方法。【解決手段】  前記コーデック及び起動プログラム命令を含むシステムメモリは、HDAバスに接続される。第１のモードでは、前記DSPは、前記HDAバスを介して起動プログラム命令を受信し、これら命令を用いて起動する。第２のモードでは、前記DSPは、前記DSPに接続されるメモリに含まれる命令から起動する。一実施形態においては、前記DSPに接続される前記メモリは、プラグインカードの構成部品であり、前記DSPは、前記プラグインカードの有無を判断し、そして、存在する場合には前記プラグインカード上の前記メモリから起動し、前記プラグインカードが存在しない場合は、前記HDAを介して前記システムメモリから起動するよう設定されている。【選択図】図６
2010538376.tif 000002
【特許請求の範囲】
【請求項１】
CPUと、
前記CPUと結合するシステムメモリのシステムと、
前記メモリと結合するハイ・デフィニッション・オーディオ（HDA）コントローラと、
前記HDAコントローラと結合するHDAバスと、
前記HDAバスと結合するコーデックを含み、
前記コーデックは、前記システムメモリに格納され、且つ、前記HDAコントローラにより前記HDAバスから前記コーデックへ転送される起動プログラム命令から、少なくとも第１のモードで起動するよう設定されている前記コーデック内に、プログラム可能なプロセッサを備えることを特徴とするパーソナルコンピュータシステム。
【請求項２】
不揮発性メモリを有する分離可能部品を前記プログラム可能なプロセッサと接続するよう構成されたコネクタを更に含み、
前記プログラム可能なプロセッサは、前記第１のモード又は第２のモードのいずれかで起動するよう設定され、
前記第２のモードにおいては、前記プログラム可能なプロセッサは、前記分離可能部品の前記不揮発性メモリに格納された起動プログラム命令から起動するよう設定されていることを特徴とする請求項１記載のパーソナルコンピュータシステム。
【請求項３】
前記分離可能部品を更に含み、
前記分離可能部品は、前記コネクタを介して前記コーデックと結合するプラグインカードを備えることを特徴とする請求項２記載のパーソナルコンピュータシステム。
【請求項４】
前記プログラム可能なプロセッサは、前記分離可能部品が前記コーデックと結合しているかどうかを判断し、前記分離可能部品が前記コーデックと結合している場合には前記第２のモードで起動し、前記分離可能部品が前記コーデックと結合していない場合には前記第１のモードで起動するよう設定されていることを特徴とする請求項２記載のパーソナルコンピュータシステム。
【請求項５】
前記コーデックは、前記プログラム可能なプロセッサと結合する不揮発性メモリを備え、
前記コーデックは、前記HDAバスからプログラム命令を受信し、前記プログラム命令を前記プログラム可能なプロセッサに結合された前記不揮発性メモリに格納し、前記プログラム可能なプロセッサに結合された前記不揮発性メモリ内に格納された前記プログラム命令から前記プログラム可能なプロセッサを再起動するよう設定されていることを特徴とする請求項１記載のパーソナルコンピュータシステム。
【請求項６】
前記プログラム可能なプロセッサは、クラスD−PWMコントローラとして構成されていることを特徴とする請求項１記載のパーソナルコンピュータシステム。
【請求項７】
前記HDAバスと前記プログラム可能なプロセッサ間で通信するデータを一時的に格納するよう設定された第１のHDA入出力（GPIO）レジスタのセットを更に備える請求項１記載のパーソナルコンピュータシステム。
【請求項８】
前記プログラム可能なプロセッサにアクセス可能な第２のレジスタのセットを更に備え、
前記第２のプロセッサアクセス可能レジスタのセットは、第１のGPIOレジスタのセットと結合し、且つ、前記HDAバスと前記プログラム可能なプロセッサ間で通信するデータを一時的に格納するよう設定され、前記GPIOレジスタは、それぞれ１バイト幅未満であり、前記プロセッサアクセス可能レジスタのセットは、少なくとも２バイト幅であることを特徴とする請求項７記載のパーソナルコンピュータシステム。
【請求項９】
ハイ・デフィニッション・オーディオ（HDA）バスと結合するよう構成されたコーデックとを備え、
前記コーデックは、前記HDAバスからの前記コーデックにより受信される起動プログラム命令を用いて少なくとも第１のモードで起動するよう設定されたプログラム可能なプロセッサを備える事を特徴とするデバイス。
【請求項１０】
前記プログラム可能なプロセッサは、分離可能な不揮発性メモリと結合するよう構成され、
前記プログラム可能なプロセッサは、前記第１のモード又は第２のモードのいずれかで起動するように設定され、
前記第２のモードにおいては、前記プログラム可能なプロセッサは、前記分離可能な不揮発性メモリ内に格納された起動プログラム命令から起動するよう設定されていることを特徴とする請求項９記載のデバイス。
【請求項１１】
前記プログラム可能なプロセッサは、前記分離可能不揮発性メモリが前記プログラム可能なプロセッサと結合しているかどうかを判断し、前記分離可能不揮発性メモリが前記プログラム可能なプロセッサと結合している場合には前記第２のモードで起動し、前記分離可能不揮発性メモリが前記プログラム可能なプロセッサと結合していない場合には前記第１のモードで起動するよう設定されていることを特徴とする請求項１０記載のデバイス。
【請求項１２】
前記コーデックは、前記プログラム可能なプロセッサと結合する不揮発性メモリを備え、
前記コーデックは、前記HDAバスからプログラム命令を受信し、前記プログラム命令を前記プログラム可能なプロセッサに結合された前記不揮発性メモリに格納し、前記プログラム可能なプロセッサに結合された前記不揮発性メモリ内に格納された前記プログラム命令から前記プログラム可能なプロセッサを再起動するよう設定されていることを特徴とする請求項９記載のデバイス。
【請求項１３】
前記プログラム可能なプロセッサは、クラスD−PWMコントローラとして構成されていることを特徴とする請求項９記載のデバイス。
【請求項１４】
前記HDAバスと前記プログラム可能なプロセッサ間で通信するデータを一時的に格納するよう設定された第１のHDA入出力（GPIO）レジスタのセットを更に備える請求項９記載のデバイス。
【請求項１５】
前記プログラム可能なプロセッサにアクセス可能な第２のレジスタのセットを更に備え、
前記第２のプロセッサアクセス可能レジスタのセットは、第１のGPIOレジスタのセットと結合し、且つ、前記HDAバスと前記プログラム可能なプロセッサから通信するデータを一時的に格納するよう設定され、前記GPIOレジスタは、それぞれ１バイト幅未満であり、前記プロセッサアクセス可能レジスタのセットは、少なくとも２バイト幅であることを特徴とする請求項１４記載のデバイス。
【請求項１６】
第１のモードにおいて、
メモリから起動プログラム命令を回収し、
前記メモリと前記コーデック間に結合されるHDAバスを介して、前記メモリから前記コーデックへ前記起動プログラム命令を転送し、
前記起動プログラム命令を用いて前記コーデック内のプログラム可能なプロセッサを起動することを含む、ハイ・デフィニッション・オーディオ（HDA）コーデック内のプログラム可能なプロセッサを起動する方法。
【請求項１７】
前記メモリから前記起動プログラム命令を回収する前に、分離可能な不揮発性メモリが前記コーデックに結合しているかどうかを判断し、前記分離可能な不揮発性メモリが前記コーデックと結合していない場合には前記第１のモードで起動し、前記分離可能な不揮発性メモリが前記コーデックと結合している場合には前記第２のモードで起動することを更に含み、前記第２のモードにおいて前記プログラム可能なプロセッサは、前記分離可能な不揮発性メモリに格納された起動プログラム命令から起動することを特徴とする請求項１６記載の方法。
【請求項１８】
前記コーデックは、前記プログラム可能なプロセッサと結合する不揮発性メモリを備え、前記方法は、前記HDAバスからプログラム命令を受信する前記コーデックと、前記プログラム可能なプロセッサと結合する前記不揮発性メモリ内に前記プログラム命令を格納する前記コーデックと、前記不揮発性メモリ内に格納された前記プログラム命令から再起動する前記プログラム可能なプロセッサを更に含むことを特徴とする請求項１６記載の方法。
【請求項１９】
起動後、前記プログラム可能なプロセッサがクラスD−PWMコントローラとして機能することを特徴とする請求項１６記載の方法。
【請求項２０】
前記起動プログラム命令、それぞれマルチバイト言語からなり、
前記起動プログラム命令を前記HDAバスから前記コーデックに転送する工程は、個別のHDAフレーム内の各マルチバイト言語の各バイトの転送を含むことを特徴とする請求項１６記載の方法。
【発明の詳細な説明】
【図面の簡単な説明】
【０００１】
本発明のその他の目的と利点は、以下の詳細な説明の解釈と、添付の図面を参照することにより、明らかとなるであろう。
【０００２】
【図１】図１は、一実施形態に従ったDSPベースのコーデックを内蔵するハイ・デフィニッション・オーディオ（HDA）構成を有するシステムのハードウェア構造を示す機能ブロック図である。
【図２】図２は、一実施形態に従った一体型パルス幅変調（PWM）コントローラ／増幅器を有する典型的HDAコーデック内のウィジェットの配線を示す図である。
【図３】図３は、一実施形態に従ったパーソナルコンピュータ（PC）内におけるメモリとHDAバスを用いたDSP間の通信回線を示す図である。
【図４】図４は、一実施形態のHDAシステム内のGPIレジスタにデータを書き込むために使用される手順を示すフロー図である。
【図５】図５は、一実施形態のHDAシステム内のGPOレジスタからデータを読み込むために使用される手順を示すフロー図である。
【図６】図６は、一実施形態に従ったHDAバスからHDAコーデックのDSPへ起動プログラムの３バイト言語を転送する手順を示すフロー図である。
【図７】図７は、一実施形態に従ったHDAバスからHDAコーデックのDSPへ、その後不揮発性メモリへと起動プログラムの３バイト言語を転送する手順を示すフロー図である。
【０００３】
本発明は、種々の変形例及び代替形態を前提とし、その具体的な実施形態は、図面と添付の詳細な説明に一例として示されている。ただし、図面と詳細な説明は、本発明を記載の特定の実施形態に限定するものではないことを理解されたい。また、本開示は、添付の請求項により規定される本発明の範囲内において、全ての変形例、同等物および代替物をカバーするものである。
【発明を実施するための形態】
【０００４】
以下に、本発明の１つ以上の実施形態を説明する。以下に記載されるこれら及びその他の実施形態は具体例であり、限定としてよりも本発明の説明を意図していることに留意されたい。
【０００５】
本明細書に記載するように、本発明の多様な実施形態は、パーソナルコンピュータ（PC）のハイ・デフィニッション・オーディオ・システム内のコーデックに内蔵されるデジタル・シグナル・プロセッサ（DSP）などのプロセッサを起動するシステム及び方法を含み、起動プログラム命令がハイ・デフィニッション・オーディオ（HDA）バスを介してプロセッサに転送される。
【０００６】
一実施形態においては、HDAコーデックは、HDAバスに結合するよう構成されている。コーデックは、HDAバスを介して起動プログラム命令を受信し、HDAバスから受信した命令を使って起動するよう構成されたDSPなどのプログラム可能なプロセッサを備える。一実施形態においては、コーデックは、プラグインカード上のEEPROMなどの分離可能な不揮発性メモリと結合するよう構成されている。この場合、DSPは、プラグインカード及び対応するメモリがPCのマザーボード、ひいてはDSPに接続されているかどうかを判断するよう構成されている。プラグインカードが存在する場合には、DSPは、カードのメモリ上の起動プログラム命令から起動する。プラグインカードが存在しない場合には、DSPは、システムメモリからHDAバスを介して受信する起動プログラム命令から起動する。
【０００７】
PCベースのオーディオ
PCの急増とコンピュータ技術の進歩に伴って、拡張機能数の多いPCが求められている。特にマルチメディアPCや高性能ゲームPCを購入する消費者が、彼らのPCから究極の視聴覚的経験を得るための高音質を求めている。この需要には、Intelが導入したHDA規格がある程度応えている。
【０００８】
１９９７年にIntelのオーディオコーデック規格（AC’97）が発表された際、PCユーザーは、通常、ステレオ音響のみで音楽や映画を視聴していた。Dolby DigitalやDSTなどの多チャンネルオーディオ形式が人気となり、ユーザーはこれらのオーディオ形式に慣れ始め、PC環境で利用できるこれらの形式を使用したフルサラウンドの、マルチスピーカーの音を期待するようになった。当初はAC’97技術で十分であったが、PCに高音質を作り出させる最近の進歩（新しいオーディオビデオ符号復号化アルゴリズム）に後れを取っている。
【０００９】
本明細書に引用される２００４年のIntelのハイ・デフィニッション・オーディオ規格1.0版の発表に始り、HDAインターフェースは徐々にPC界の人気を獲得してきた。Intel規格で規定されるHDA構成は、PC界の高音質オーディオのニーズに応えようとするものである。この構成は、PCのメモリから、HDAバスを介した音声データのダイレクトメモリアクセス（DMA）転送を実行するHDAコントローラを使用した１つ以上のオーディオコーデックへのハイファイ音声コンテンツの配信を特徴としている。HDAバスを介して配信された音声データは、コーデックの様々な構成部品（HDA規格において「ウィジェット」と称する）により受信、処理、及び、出力される。
【００１０】
HDA規格ではPC用のHDAシステムの設計にかなりの融通が利く一方で、その設計が実装されると、この融通は利かなくなる。例えば、HDAシステムは、音声データに異なる種類の処理を行う複数のコーデックを有してもよいが、これらのコーデックはハードウェアであり、その機能性が変わることはない。実装された後にもシステムの機能性が変更できることを含む、HDAシステムの融通性を保つシステム及び方法を提供することが望ましい。
【００１１】
この融通性は、DSPを内蔵するHDAコーデックを設けることにより、１つのシステムに設けられる。DSPは、DSPのプログラミングを変更することによりコーデックの機能が修正できるよう、プログラムが可能である。このプログラミングは、システムに電源が入り、DSPが起動した際、DSP上に少なくとも部分的にインストールされる。本システムにおいては、起動プログラムは、DSPにローカル接続する不揮発性メモリから受信するのではなく、HDAバスを介してDSPに転送することができる。一実施形態においては、起動プログラム命令は、HDAバスを介してDSPへ、或いは、HDAバス以外のコネクタを介してコーデックに結合するプラグインカードのいずれかから提供される。更に別の実施形態においては、起動プログラム命令をHDAバスを介してDSPに転送することができ、DSPは、DSPがその後ローカルメモリ内のプログラムから起動できるよう、これらの命令をローカル不揮発性メモリに取り込む。
【００１２】
ハイ・デフィニッション・オーディオ（HDA）
２００４年のIntelのハイ・デフィニッション・オーディオ規格1.0版の発表に伴い、HDAインターフェースは徐々にPC界の人気を獲得してきた。特にマルチメディアPCや高性能ゲームPCのユーザーは、彼らのPCから究極の視聴覚的経験を得るための高音質を求めている。HDA構成は、PCのメモリシステムからHDAシステムのオーディオコーデックへのハイファイ音声コンテンツの配信における隙間を埋めている。
【００１３】
HDA規格の主要目標は、高音質をサポートするよう設計されたPC環境内の基礎構造を説明することである。この基礎構造は、PCのメモリシステムからHDAバスを介した１つ以上のオーディオコーデックへ、音声データを直接転送するメカニズムを提供する。コーデックは、通常、メモリから受信したデジタル音声データをアナログ信号に変換し、例えば、ライン出力、モデム出力、又は、増幅器への出力として供給できる信号を出力するため、これらの信号を処理する。
【００１４】
図１を参照すると、DSPベースのコーデックを内蔵するHDA構成を有するシステムのハードウェア構造を説明する機能ブロック図が示されている。この図に描かれるように、PC１００のHDA構成は、HDAコントローラ１１０と、HDAバス１２０と、数個のコーデック１３０〜１３２を備える。（図１は３つのコーデックを備えているが、特定の実施形態においては、コーデックはそれより多くても少なくてもよい。）これらの構成部品は、CPU１４０及びメモリコントローラ１５０と共にPCのマザーボード上に構築される。
【００１５】
HDAコントローラ１１０は、PCIバス或いは他種のシステムバスなどのバス１６０を介してメモリコントローラ１５０に結合される。メモリコントローラ１５０は、ホストバス１６１によりCPU１４０に結合される。また、メモリコントローラ１５０は、システムメモリ１７０にも結合される。コーデック１３０〜１３２は、コーデックにより処理された音声データを適切な出力形式に変換するため、或いは、コーデックにより受信された入力データをコーデックの使用に適当な形式に変換するために、1つ以上の変換器に接続されてもよい。コーデックの音声処理は、従来のウィジェットとDSPなどのプログラム可能なプロセッサとの組合せにより実行される。変換器により生成された出力信号は、増幅器、スピーカー、又は、ヘッドフォンなどの様々な出力装置に提供することができる。
【００１６】
HDAコントローラ１１０は、PCIバス上のバスマスタリング入出力（I/O）装置として作動する。HDAコントローラ１１０は、複数のDMAエンジン１１１〜１１３を備える。（図には３つのDMAエンジンが描かれているが、特定の実施形態においては、それより多くても少なくてもよい。）DMAエンジン１１１〜１１３は、（メモリコントローラ１５０及びバス１６０を介して）システムメモリ１７０から様々なHDAコーデック１３０〜１３２へのデータ転送を管理する。DMAエンジンは、コーデックからシステムメモリ、且つ、システムメモリからコーデックへデータを転送することができる。
【００１７】
HDAバス１２０は、HDAコントローラ１１０からコーデック１３０〜１３２間のシリアルデータ転送をサポートするよう構成されている。HDAバス１２０は、24MhzビットラインクロックをHDAコントローラ１１０からコーデック１３０〜１３２に配信するためにもまた使用される。このビットラインクロックは、HDAバスを介したデータ転送を可能にするよう、コントローラ及びコーデックにより使用される。コーデックは、HDAバスから時分割されたシリアル化データを抽出するためにビットラインクロックを使う。
【００１８】
通常、コーデック１３０〜１３２は、HDAバス１２０上の時分割データからデジタルデータストリームをそれぞれ抽出する。このデジタルデータは、コーデックによりアナログデータに変換され、処理される。処理には、音量調節、ミューティング、ミキシングなど、様々な機能の実行が含まれてもよい。上述のように、処理データは、出力信号を生成するために、必要に応じて処理信号を変換できる変換器に供給することができる（例えば、変換器は、アナログ信号をデジタル出力信号に変換してもよい）。音声データの処理に加え、コーデック１３０〜１３２は、HDAバス１２０を介してHDAコントローラ１１０に制御データを供給することができる。また、コーデックは、入力信号（例えば、マイクからのアナログ入力信号）も受信し、信号を処理し、これら信号をHDAバスを介してHDAコントローラに供給する。
【００１９】
データは、「ストリーム」内でシステムメモリ１７０とコーデック１３０〜１３２間で転送される。HDA規格では、ストリームは、システムメモリ内の１つのコーデックと緩衝器の間の論理結合である。各ストリームは、HDAコントローラの対応するDMAエンジンの１つにより駆動する。DMAエンジンは、単一ストリームのみを駆動することができ、つまり、システムがDMAエンジンを上回るストリームを有する場合、DMAエンジンがそれらを駆動できるようになるまで、１つ以上のストリームが使われないまま残ってしまうことになる。ストリームは入力ストリームか出力ストリームのいずれかであってもよいが、両方ではない。出力ストリームは、ブロードキャストストリームと考えられ、１つ以上のコーデックにより受信される。一方、入力ストリームは、ただ１つのコーデックに使われる。
【００２０】
上述のように、ストリームは、HDAバスを介して時分割データとして運搬される。HDAバスは、連続フレーム内でデータを送信する。フレーム率は48kHzであり、つまり各フレームは20.83マイクロ秒の長さである。フレームは、命令及び／又は応答データ用のフィールド且つ１つ以上のストリームそれぞれのサンプルフィールドを含むフィールド内で崩壊する可能性がある。また、ストリームの最大数未満が送信されている場合、フレームはゼロ空間を含んでもよい。データストリームの各サンプル内には、通常、２つのチャンネル（例えば、左右のステレオチャンネル）に対応するデータのフィールドがある。しかし、
それ以上のチャンネル（例えば、左、右、左後方、右後方）が送信されてもよいことに留意されたい。また、複数のサンプルフィールドは、フレーム率48kHzを越えるデータ転送速度を有する単一チャンネル用のデータの運搬に使用することができる。
【００２１】
HDA規格は、モジュール構造を有するコーデックの構成の規定を意図するものである。コーデックは、解明、設定可能なコーデックを形成するため、パラメータ化基礎的要素（ウィジェット）を使用させる。ウィジェット及びウィジェット群は、HDA構成における独自のアドレス可能なノードである。これにより、ソフトウェアのドライバは、コーデックの様々な操作を識別及び管理できる。
【００２２】
HDAコーデックを形成するウィジェットは、コーデック内に機能群を形成するため、相互接続される。１つのコーデックに１つ以上の機能群を含むことができる。コーデックは、例えば、異なる音声チャンネル用の音声データを処理する幾つかの音声機能群を含んでもよい。これらの音声機能群で一般的に使用されるウィジェットは、音声出力変換器ウィジェット、音声入力変換器ウィジェット、入出力（ピン）ウィジェット、ミキサーウィジェット、セレクタ（多重通信回路）ウィジェット、電力段ウィジェット、及び音量ウィジェットを含む。
【００２３】
複合プロセッサ付HDAコーデック
従来、コーデック内のウィジェットは、共に配線接続されている。特定のコーデックは、複数の機能を実行するよう設計されている場合があるが、これら機能は、固定機能を有するウィジェットによって実行されているため、一旦その設計が確立しコーデックが構築されてしまうと、コーデックの機能もまた固定されてしまう。一方、本コーデックは、DSPといったプログラム可能なプロセッサを内蔵している。
【００２４】
DSPは、音声データの知的処理を実行する機能を提供する。一実施形態においては、DSPは、HDAコーデック内に一体化されたクラスD−PWMコントローラとして機能するようプログラムされている。図２を参照すると、一体型PWMコントローラ／増幅器を有する典型的HDAコーデック内のウィジェットの配線を説明する図が示されている。本実施例では、コーデックは、８つのチャンネル（４ペアのステレオ）の音声データを処理するよう設定されている。各ステレオのペアは、DDCウィジェット（例えば、２１０）により、入力デジタル形式から内部デジタル形式へ変換される。HDAバス上のデータストリームが時分割であるため、DDCウィジェットは、バスから適切なパケット音声データを引き出し、
コーデックで処理できるデジタルストリーム（例えば、I2Sデータストリーム）内のデータをフォーマットする。（本実施形態においては、コーデックは、アナログではなく、デジタル形式の信号を処理する。）デジタル信号は、その後、信号と他の信号を合計する、或いは、信号の量を制御することのできるミキサーウィジェット（例えば、２２０）、及び、信号を無音化し、PWMコントローラ／増幅器（例えば、２４０）へ信号を出力することができるピンウィジェット（例えば、２３０）により処理される。
【００２５】
なお、ミキサーウィジェット及びピンウィジェットは、コーデックの仮想（又はローカル接続）部品であってもよい。DDCウィジェットは、HDAバスからデータを引き出すために必要なハードウェア部品であり、ミキサー及びピンウィジェットは、通常、DSPにより提供することができる機能を実行する。結果、ミキサー及びピンウィジェットは、（使う必要のない）ハードウェアとして存在するか、DSPはこれらウィジェットを単に論理的に示すものとなり、これらウィジェットによりアドレス指定された指令は、あたかもウィジェットが物理的に存在するかのように、同様の方法でそれらを処理するDSPへと転送される。例えば、ミキサーウィジェットが通常コーデックにより処理された音声信号の音量を制御するなら、DSPは、PWMコントローラの機能として、音量を制御できる。同様に、ピンウィジェットが通常ミューティング及び入出力機能を制御するなら、PWMコントローラがこれら機能を実施できる。
【００２６】
全てのデジタルクラスD−PWMコントローラは、DSPを含むことで、そのアナログ対応部より優れている。DSPは、パラメトリック・イコライゼーション、心理音響効果、ルーム・イコライゼーション、バーチャルサラウンド音響、低音ブースト、ミキシング、カスタムフィルタなど、音声のカスタマイズができる。これらの機能は、通常、スタンドアロンシステム内でDSPとの通信手段に費用効率の良い代表的なI2C、SPI又はUSBのような、専用制御ポートを通してアクセス可能である。しかし、PCシステムにおいては、コスト上の圧力が強く、コスト削減につながることから、専用のハードウェア接続を排除することが有益となる。
【００２７】
コーデックのプロセッサの起動
DSPがプログラム可能なデバイスであることから、電源を入れた際に起動しなくてはならない。通常、DSPのようなプロセッサは、特にこの目的でプロセッサに接続されるEEPROMなどの不揮発性メモリからプログラムを回収することにより起動する。メモリは、例えば、I2C又はSPIリンクを介してプロセッサに接続することができる。プログラムを使ってのこのメモリへのプログラミングは、通常、DSPのリセット及び起動ラインを制御するマイクロコントローラに、USBリンクを介して指令を送ることにより完了する。
【００２８】
本システムにおいては、専用起動メモリの必要性を排除し、それによりこのメモリに必要であったコストと空間を排除することが望ましい。よって、本システムは、HDAバスを介して起動プログラム命令を受信するよう構成されている。これらの命令は、既存のメモリに格納し、且つ、HDAバスを介してコーデックのDSPに転送することができるため、専用DSP起動メモリの必要性が排除される。また、本システムは、任意で接続された起動メモリがプロセッサに接続されているかどうかを判断し、そうであればこのメモリから、オプションのメモリが無い場合はHDAバスから起動する構成としてもよい。また、システムは、HDAバスから起動し、HDAバスを介して受信した命令をローカルメモリ内に取り込み、ローカルメモリ内に取り込んだ命令から再起動する構成としてもよい。
【００２９】
HDAインターフェースは、読み込み或いは書き込みのできる１バイト幅のGPIOピンウィジェットのセットを剥き出しにしている。汎用入出力（GPIO）レジスタは、受信及び発信データの状況、及び、DSPロジックのリセット状態を格納するために使用される。GPIOレジスタでは、２つの異なるリセットが可能である。一つは、DSP起動ローダーにHDAリンクから来るプログラムを探させる、HDAを介した起動のリセットである。別のリセットは、何のために起動モードピンがセットされたかにより、DSP起動ローダーにHDAバス或いは他の場所から来るプログラムを探させる、通常起動のリセットである。汎用入力（GPI）レジスタは、HDAリンクから来る言語を格納するために使用され、汎用出力（GPO）レジスタは、リンクを介して送られる言語を格納するために使用される。
【００３０】
図３を参照すると、PC内におけるメモリとHDAバスを用いたDSPとの間の通信回線を説明する図が示されている。本実施形態においては、CPU３１０及びメモリ３２０がサウスブリッジ３１５に接続され、順にHDAコントローラ３３０と接続される。HDAコントローラ３３０及びHDAコーデック３５０は、どちらもHDAバス３４０に接続されている。コーデック３５０は、HDAバス３４０に接続されるHDAインターフェース３６１を有する。GPI（３７１）、GPIO（３７２〜３７２）及びGPO（３７４）のレジスタは、HDAインターフェース３６１に接続され、HDAバス３４０を介して転送される入出力データを格納するよう設定されている。（GPIOレジスタの読み込み及び書き込み部は、図中の個別のブロック３７２及び３７３に示される。）マルチプレクサー３８１は、GPIレジスタ３７１に接続され、DSP読み込みレジスタ３７７に格納された３つのバイトのうち１つを選択しGPIレジスタ３７１に格納する役目を果たしている。マルチプレクサー３８２は、GPOレジスタ３７４に接続され、DSP書き込みレジスタ３７９内の３つのバイトの場所のうちの選択された１つに、GPOレジスタ３７４からのデータのバイトを格納する役目を果たしている。DSP制御／状況レジスタ３７８は、GPIOレジスタ３７２〜３７３に接続されている。DSPインターフェース３６２は、DSP３９０とレジスタ３７７〜３７９を連結する。
【００３１】
本実施形態において、DSPのメモリ空間は、3バイト幅である。一方、HDAリンクは、１バイト幅である。言語配置の差を打開するため、DSPは、バイトがHDAバスを越えて送信又は受信されたトラックを保つため、カウンタを使用している。バイトがバス上に送信又は受信されているバイト状況は、GPIOレジスタで得られる。HDAバスは、ウィジェットを、ただのバイト幅レジスタとして見なしている。DSP側では、DSPは、ウィジェットを、どのバイトがHDAバスに運搬されているかを示すGPIOレジスタ内の状態値を有する３バイトレジスタとして見なしている。
【００３２】
HDAバスとプログラム言語との幅に差があることから、GPIレジスタへの書き込みには、以下の手順が使われる。手順を図４に示す。まず、GPIピンを読み込んで、GPIピンが空いていることを確認する。そして、上位バイトをGPIピンに書き込む。その後、GPIピンを読み込んで、GPIカウンタの値が増加したことを確認する。これらの工程は、それぞれ中位バイト及び下位バイトに繰り返される。これらの工程で、HDAバス上に３バイト言語が書き込まれる−工程は、バスに書き込まれる３バイト言語それぞれに繰り返される。
【００３３】
図５に示されるように、GPIOレジスタからデータを読み込むため、同様の手順が使われる。まず、GPOピンを読み込んで、GPIピンが空いていることを確認する。そして、上位バイトをGPIピンに書き込む。その後、GPIOピンを読み込んで、GPIカウンタの値が増加したことを確認する。これらの工程は、それぞれ中位バイト及び下位バイトに繰り返される。これらの工程で、HDAバス上に３バイト言語が書き込まれる−工程は、バスに書き込まれる３バイト言語それぞれに繰り返される。
【００３４】
HDAバスとDSPの間で３バイト言語を転送するこれらの手順は、図６に示すように、HDAバスからDSPへの起動プログラム命令の転送に使うことができる。これらの手順は、DSPの起動ピンがHDAバスから取り込むよう設定されていることを想定している。図６を参照すると、HDAバスのリセットラインは、アサートされており（本実施形態では論理ハイ）、DSPをリセットしている。そして、HDAバスコントローラは、DSP上のHDAインターフェースを列挙する。リセットラインがアサートされた後、DSP起動ローダーは、GPOピンが満たされるのを待つ。起動プログラム命令の３バイトは、GPOピンに書き込まれる（空になるまでは、他のバイトを受信しない）。そして、DSP起動ローダーは、GPOピンから３バイト言語を読み込む。その後、GPOピンが空になるため、起動プログラムの別の３バイト言語がGPOピンに書き込まれる。プログラムの逐次言語は、プログラム全体がHDAバスを介して送られるまで、この方式で転送される。起動プログラムの最後の言語が転送されると、DSPは起動プログラムを立ち上げる。なお、HDAバスを介して取り込まれたDSPプログラムは、メモリ内の起動ローダーのプログラムの場所、プログラムのバイト数及びプログラムのチェックサムを通知するため、いくらかのオーバーヘッドデータを含む。
【００３５】
上述のように、図６に示す手順は、DSPの起動ピンがHDAバスから取り込むよう設定されている場合に実行される。一実施形態においては、DSPは、HDAバス、或いは、DSPに更に直接接続されたメモリから互いに起動プログラムを取り込めるよう設定されている。DSPは、これらの起動モード（HDAバスからの起動、又は、DSP接続メモリからの起動）の１つを、手動あるいは自動的に選択するよう設定されてもよい。起動モードの１つの手動の選択は、DSPの起動ピンを、どのモードがデバイスの起動に使われるべきかを示すよう設定することで完了できる。自動選択は、例えば、接続されたメモリがあれば、そこからから起動し、メモリが接続されていなければHDAバスから起動するDSPを有することで、完了できる。
【００３６】
一実施形態においては、DSPベースのコーデックを備えるHDAシステムは、PCのマザーボード上に構築される。また、マザーボードは、プラグインカードなどの第２の分離可能部品のマザーボードへの接続を可能にするコネクタを備える。（本明細書で使われる「分離可能」とは、第２の構成部品をマザーボードから取り外し、又は、分離できることを意味する。）この第２の構成部品は、起動プログラムを格納する不揮発性メモリを備えている。第２の構成部品がマザーボードに接続されている場合、DSPは、従来のDSPがローカル不揮発性メモリから起動するのと同様にして、第２の構成部品上のメモリから起動できる。第２の構成部品がマザーボードに接続されていない場合、上述のように、DSPは、HDAバスから起動する。
【００３７】
HDAバス或いは第２の分離可能構成部品のメモリからの起動に加え、DSPは、HDAバスを介して起動プログラムを受信し、このプログラムをEEPROMなどの不揮発性メモリ内に取り込み、そしてEEPROMに格納されたプログラムから再起動するよう設定されてもよい。図７に手順を示す。なお、従来のシステムでは、通常、DSPがそこから起動し、そして新たなインターフェースから起動するためDSPをリセットするインターフェースを変更するマイクロコントローラに指令を送る必要があった。図７の手順は、マイクロコントローラの必要性を排除し、しシステムのコストを抑えている。
【００３８】
図７を参照すると、GPIO指令は、HDAを介した起動ビットを低く設定するため、HDAを介して送られる。別のGPIO指令が、その後、HDAを介した起動ビットを高くアサートするため送られる。これにより、HDAインターフェースを除くDSPがリセット状態になる。そして、DSP起動ローダーは、高く設定されたGPIがフルビットになるのを待つ。GPIのフルビットが高い場合、DSP起動ローダーは、GPOレジスタから３バイト言語を取り出す。これは、プログラム内の連続する３バイト言語それぞれに繰り返される。一旦プログラム内の全ての言語が受信されると、DSPは受信したコードを実行する。そして、DSPは、GPIレジスタにレディ信号言語を送信する。DSPプログラムは、いつGPOレジスタが満たされるかを調べるため、GPIOレジスタを確認する。GPOレジスタが満たされると、DSPプログラムは、受信した言語をローカル不揮発性メモリに書き込む。これは、全てのプログラムイメージがローカルメモリ内に取り込まれるまで繰り返される。そして、GPIO指令は、通常起動ビットを高く設定するために、HDAを介して送られる。その後、DSPはリセットし、起動ローダーはローカル不揮発性メモリからプログラムを取り込む。
【００３９】
なお、本明細書においては、「PC」及び「パーソナルコンピュータ」という言葉は、個人消費者が一般に購入及び使用する広範囲のコンピュータシステムを示すため使われている。これらのシステムは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューなどを含んでもよく、家庭、オフィス、移動先又はその他の環境で用いることができる。上記記載の実施形態はDSPを内蔵するコーデックに焦点を合わせているが、別の実施形態では、HDAコーデック内のプロセッサの使用を通して得られるプログム可能、設定可能、及び、その他の利点を達成するため、DSP以外の種類のプロセッサ（汎用プロセッサ、プログラム可能マイクロコントローラなど）を用いてよいことにも留意されたい。
【００４０】
本発明が提供する受益と利点は、具体的実施形態に関連させて上述した。これらの受益と利点、およびこれを発生させるあるいはより一層表明する、すべての要素と限定は、一部の又はすべての請求項の臨界的な、必須の、あるいは本質的な特徴と解されるものではない。ここに用いる、「備える」の用語またはこの変形は、この用語に続く要素や限定を非排他的に含むものとして解釈するように使用されている。したがって、システム、方法、あるいは要素セットを備えるその他の実施形態は、これらの要素のみに限定されない。また、請求項に記載の実施形態に明白に挙げられていない、あるいはこれらに固有のその他の要素を含んでいてもよい。
【００４１】
本発明は特定の実施形態を参照して述べられているが、実施形態は図に示しただけであり、本発明の範囲をこれらの実施形態に限定するものではないと理解すべきである。上述した実施形態の様々な変形例、変更例、追加および改良が可能である。本発明の範囲内にあるこれらの変形例、変更例、追加及び改良は、以下の請求の範囲に詳細を示す。
【符号の説明】
【００４２】
１００・・・PC、１１０・・・HDAコントローラ、１１１、１１２、１１３・・・DMAエンジン、１２０・・・HDAバス、１３０、１３１、１３２・・・コーデック、１４０・・・CPU、１５０・・・メモリコントローラ、１６０・・・バス、１６１・・・ホストバス、１７０・・・システムメモリ、２１０・・・DDC、２２０・・・ミキサー、２３０・・・ピン、２４０・・・PWMコントローラ／増幅器、３１０・・・CPU、３１５・・・サウスブリッジ、３２０・・・メモリ、３３０・・・HDAコントローラ、３４０・・・HDAバス、３５０・・・HDAコーデック、３６１・・・HDAインターフェース、３６２・・・DSPインターフェース、３７１・・・GPIレジスタ、３７２、３７３・・・GPIOレジスタ、３７４・・・GPOレジスタ、３８１、３８２・・・マルチプレクサー、３７７・・・DSP読み込みレジスタ、３７８・・・DSP制御／状況レジスタ、３７９・・・DSP書き込みレジスタ、３９０・・・DSP
【図１】
2010538376.tif 000003
【図２】
2010538376.tif 000004
【図３】
2010538376.tif 000005
【図４】
2010538376.tif 000006
【図５】
2010538376.tif 000007
【図６】
2010538376.tif 000008
【図７】
2010538376.tif 000009
【国際調査報告】
2010538376.tif 000010
2010538376.tif 000011
2010538376.tif 000012