專(zhuān)利名稱(chēng)::在pc應(yīng)用程序與hda音頻編譯碼器中的dsp之間進(jìn)行通信的系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明關(guān)于用于個(gè)人計(jì)算機(jī)(PC)應(yīng)用程序與高清晰度音頻(HDA,HighDefinitionAudio)音頻編譯碼器中的數(shù)字信號(hào)處理器(DSP)之間的通信的系統(tǒng)及方法。
背景技術(shù):
:基于PC的音頻隨著PC的激增與計(jì)算機(jī)技術(shù)的進(jìn)步,已經(jīng)存在針對(duì)于其具有愈來(lái)愈多的先進(jìn)特征的PC的需求。特別是其購(gòu)買(mǎi)多媒體PC與高階的游戲PC的顧客要求優(yōu)質(zhì)的音頻質(zhì)量,藉以達(dá)成來(lái)自其PC的最終的音頻/視覺(jué)體驗(yàn)。此需求已經(jīng)某個(gè)程度為由英特爾公司(Intel)提出的高清晰度音頻規(guī)范所滿足。當(dāng)英特爾公司的1997年音頻編譯碼器標(biāo)準(zhǔn)(AC’97)被提出時(shí),PC使用者通常聆聽(tīng)其僅具有立體聲音的音樂(lè)與電影。隨著諸如杜比(Dolby)數(shù)字與DTS的多信道的音頻格式變得較為普及,使用者變成習(xí)慣這些音頻格式且開(kāi)始預(yù)期運(yùn)用這些格式的完全環(huán)繞、多喇叭的聲音將會(huì)在PC環(huán)境中實(shí)現(xiàn)。盡管AC’97技術(shù)最初是足夠的,但是目前已經(jīng)無(wú)法跟得上能讓PC產(chǎn)生更高質(zhì)量的音頻的較為新近的進(jìn)展(例如較新的音頻與視訊編碼/譯碼算法)。隨著英特爾公司的高清晰度音頻規(guī)范修訂版1.0(其為以參照方式而納入于本文)的提出于2004年而開(kāi)始,HDA接口已經(jīng)逐漸普及于PC領(lǐng)域。英特爾公司規(guī)范所定義的HDA架構(gòu)企圖以滿足其針對(duì)于PC領(lǐng)域的高質(zhì)量音頻的需求。此架構(gòu)界定自PC存儲(chǔ)器至一或多個(gè)音頻編譯碼器的高清晰度音頻內(nèi)容的傳遞,運(yùn)用一種HDA控制器,通過(guò)一種HDA總線以執(zhí)行音頻數(shù)據(jù)的直接存儲(chǔ)器存取(DMA)。通過(guò)HDA總線所傳遞的音頻數(shù)據(jù)由編譯碼器的種種的構(gòu)件(在HDA規(guī)范中被稱(chēng)為“接口工具集(widget)”)而接收、處理、及輸出。盡管HDA規(guī)范允許在其針對(duì)于PC的一種HDA系統(tǒng)設(shè)計(jì)中有頗多靈活性,但是此靈活性在實(shí)施該設(shè)計(jì)時(shí)就喪失了。舉例而言,盡管一HDA系統(tǒng)可能具有多個(gè)編譯碼器以對(duì)音頻數(shù)據(jù)執(zhí)行不同型式的處理,但是這些編譯碼器是硬式連接的且其功能是無(wú)法改變的。提供其維持HDA系統(tǒng)的靈活性的系統(tǒng)與方法將是合意的,包括能在實(shí)施之后改變系統(tǒng)的功能。此靈活性是通過(guò)提供一種包含DSP的HDA編譯碼器而在一個(gè)系統(tǒng)中實(shí)現(xiàn)的。該DSP是可編程的,使得編譯碼器的功能可通過(guò)改變DSP的編程而得到修改。DSP的編程通常是通過(guò)經(jīng)由一互連件(例如I2C、SPI、或USB)直接連接一編程裝置至DSP且轉(zhuǎn)移程序指令與配置信息至DSP而達(dá)成的。然而,在此系統(tǒng)及方法中,免除此分離的互連件的需要是合意的,故程序與配置信息的通信是經(jīng)由HDA總線而轉(zhuǎn)移至DSP的。高清晰度音頻(HDA)隨著英特爾公司的高清晰度音頻規(guī)范修訂版1.0于公元2004年提出,HDA接口已經(jīng)逐漸普及于PC領(lǐng)域。特別是多媒體PC與高階的游戲PC的使用者要求優(yōu)質(zhì)的音頻質(zhì)量,藉以達(dá)成自其PC的最終的音頻/視覺(jué)體驗(yàn)。HDA架構(gòu)有助于將高保真音頻內(nèi)容從PC的存儲(chǔ)器系統(tǒng)傳遞至HDA系統(tǒng)的音頻編譯碼器。HDA規(guī)范的主要目的是描述在PC環(huán)境內(nèi)的一種基礎(chǔ)結(jié)構(gòu),其被設(shè)計(jì)成支持高質(zhì)量的音頻。此基礎(chǔ)結(jié)構(gòu)提供一種機(jī)制,用于經(jīng)由一HDA總線而直接將音頻數(shù)據(jù)從PC的存儲(chǔ)器系統(tǒng)轉(zhuǎn)移至一或多個(gè)音頻編譯碼器。典型而言,編譯碼器轉(zhuǎn)換自存儲(chǔ)器所接收的數(shù)字音頻數(shù)據(jù)至模擬信號(hào),且處理這些信號(hào)以將信號(hào)輸出給放大器(這些信號(hào)可作為線路輸出、調(diào)制解調(diào)器輸出、或輸出而被提供)。
發(fā)明內(nèi)容本發(fā)明的一或多個(gè)實(shí)施例描述于下文。應(yīng)該注意的是下文所述的這些與任何其它實(shí)施例是示例性的,且旨在說(shuō)明本發(fā)明而非限制本發(fā)明。如本文所述,本發(fā)明的種種的實(shí)施例包含在具有高清晰度音頻(HDA)系統(tǒng)的個(gè)人計(jì)算機(jī)(PC)中實(shí)現(xiàn)的系統(tǒng)及方法。這些系統(tǒng)及方法能夠在PC的中央處理單元(CPU)上執(zhí)行的應(yīng)用程序以及被并入HDA系統(tǒng)中的編譯碼器中的數(shù)字信號(hào)處理器(DSP)之間進(jìn)行通信,其中,通信是經(jīng)由HDA總線而實(shí)現(xiàn)的。在一個(gè)實(shí)施例,HDA編譯碼器包括耦接至可編程處理器(諸如DSP)的一或多個(gè)常規(guī)HDA接口工具集。該編譯碼器包括一組寄存器,其配置成存儲(chǔ)經(jīng)由HDA總線傳輸?shù)腍DA動(dòng)詞(verb)與數(shù)據(jù)??删幊烫幚砥髋渲贸勺R(shí)別動(dòng)詞(指示關(guān)聯(lián)信息是來(lái)自該編譯碼器的外部的一CPU上執(zhí)行的一應(yīng)用程序的通信),讀取關(guān)聯(lián)的信息,且根據(jù)關(guān)聯(lián)的動(dòng)詞以處理信息。該信息可以是種種的型式,諸如程序指令、參數(shù)數(shù)據(jù)、對(duì)于信息的請(qǐng)求、等等。在一個(gè)實(shí)施例,這些寄存器包括針對(duì)于一輸入字節(jié)、一輸出字節(jié)、及一控制/狀態(tài)字節(jié)的HDA通用寄存器。這些HDA寄存器耦接于該編譯碼器的HDA接口與一組DSP可存取寄存器(其存儲(chǔ)三個(gè)輸入字節(jié)、三個(gè)輸出字節(jié)、及一控制/狀態(tài)字節(jié))之間。這些寄存器被用于將數(shù)據(jù)從HDA接口處的一個(gè)字節(jié)寬轉(zhuǎn)換成DSP處的三個(gè)字節(jié)寬。一個(gè)替代的實(shí)施例可包括PC系統(tǒng),其能夠通過(guò)一HDA總線在PC的CPU上執(zhí)行的應(yīng)用程序以及一HDA編譯碼器的DSP之間進(jìn)行通信。另一個(gè)替代的實(shí)施例可包括一種方法,用于通過(guò)一HDA總線在CPU上執(zhí)行的應(yīng)用程序以及一HDA編譯碼器的DSP之間進(jìn)行通信。本發(fā)明的其它目的與優(yōu)點(diǎn)可在閱讀上文的詳細(xì)說(shuō)明且參照伴隨的圖式而變得顯明。圖1是說(shuō)明根據(jù)一個(gè)實(shí)施例的一種系統(tǒng)的硬件結(jié)構(gòu)的功能框圖,這種系統(tǒng)具有包括基于處理器的編譯碼器的一高清晰度音頻(HDA)架構(gòu)。圖2是說(shuō)明根據(jù)一個(gè)實(shí)施例的在一個(gè)范例HDA編譯碼器的接口工具集的互連的圖,該HDA編譯碼器具有一整合式脈沖寬度調(diào)制(PWM)控制器/放大器。圖3是說(shuō)明根據(jù)一個(gè)實(shí)施例的運(yùn)用耦接于其間的HDA總線在一PC的CPU與一編譯碼器的DSP之間的通信鏈路的圖。圖4是說(shuō)明根據(jù)一個(gè)實(shí)施例的一種程序的流程圖,這種程序用于將24位字組從應(yīng)用程序傳送至DSP。圖5是說(shuō)明根據(jù)一個(gè)實(shí)施例的一種程序的流程圖,這種程序用于應(yīng)用程序以請(qǐng)求DSP提供針對(duì)于特定參數(shù)的設(shè)定。盡管本發(fā)明容易為種種的修改與替代形式,其特定實(shí)施例是通過(guò)舉例而顯示于圖式與伴隨的詳細(xì)說(shuō)明。然而,應(yīng)該了解的是圖式與詳細(xì)說(shuō)明無(wú)意為限制本發(fā)明于其為已經(jīng)描述的特別實(shí)施例。反之,此揭示內(nèi)容意圖以涵蓋其屬于由隨附權(quán)利要求書(shū)所界定的本發(fā)明范疇內(nèi)的所有修改、等效者與替代者。具體實(shí)施例方式參考圖1,示出了一種系統(tǒng)的硬件結(jié)構(gòu)的功能框圖,這種系統(tǒng)具有包含基于DSP的編譯碼器的一種HDA架構(gòu)。如此圖所描繪,在一PC100中的HDA架構(gòu)包括一HDA控制器110、一HDA總線120以及數(shù)個(gè)編譯碼器130-132。(盡管圖1包括三個(gè)編譯碼器,在給定的實(shí)施例中可能具有較多或較少個(gè)編譯碼器。)這些構(gòu)件連同CPU140與存儲(chǔ)器控制器150一起被建構(gòu)在PC的主機(jī)板上。HDA控制器110是經(jīng)由一總線160而耦接至存儲(chǔ)器控制器150的,總線160可以是諸如一PCI總線或其它型式的系統(tǒng)總線。存儲(chǔ)器控制器150通過(guò)一主總線161而耦接至CPU140。存儲(chǔ)器控制器150亦為耦接至系統(tǒng)存儲(chǔ)器170。編譯碼器130-132可連接至一或多個(gè)轉(zhuǎn)換器,藉以將這些編譯碼器所處理的音頻數(shù)據(jù)轉(zhuǎn)換至一適合的輸出格式,或?qū)⑦@些編譯碼器所接收的輸入數(shù)據(jù)轉(zhuǎn)換至適當(dāng)?shù)母袷揭怨┻@些編譯碼器使用。這些編譯碼器的音頻處理是通過(guò)常規(guī)的接口工具集與諸如DSP的可編程處理器的組合來(lái)執(zhí)行的。這些轉(zhuǎn)換器所產(chǎn)生的輸出信號(hào)可被提供至種種的輸出裝置,諸如放大器、喇叭、或頭戴式耳機(jī)。HDA控制器110用作PCI總線上的一個(gè)總線主控輸入/輸出(I/O)裝置。HDA控制器110包括多個(gè)DMA引擎111-113。(雖然三個(gè)DMA引擎被描繪于圖中,在給定的實(shí)施例可能具有較多或較少個(gè)DMA引擎。)DMA引擎111-113控制在系統(tǒng)存儲(chǔ)器170(經(jīng)由存儲(chǔ)器控制器150與總線160)與種種的HDA編譯碼器130-132之間的數(shù)據(jù)轉(zhuǎn)移。DMA引擎可將數(shù)據(jù)從這些編譯碼器轉(zhuǎn)移至系統(tǒng)存儲(chǔ)器,以及將數(shù)據(jù)從該系統(tǒng)存儲(chǔ)器轉(zhuǎn)移至編譯碼器。HDA總線120配置成支持HDA控制器110與編譯碼器130-132之間的串行數(shù)據(jù)轉(zhuǎn)移。HDA總線120亦被用于將一24MHz位線時(shí)鐘從HDA控制器110分配至編譯碼器130-132。此位線時(shí)鐘由該控制器與編譯碼器使用,從而能夠通過(guò)HDA總線來(lái)轉(zhuǎn)移數(shù)據(jù)。編譯碼器使用該位線時(shí)鐘以從HDA總線中提取時(shí)間多路復(fù)用、串行化的數(shù)據(jù)。典型而言,每個(gè)編譯碼器130-132從HDA總線120上的時(shí)間多路復(fù)用數(shù)據(jù)中提取數(shù)字?jǐn)?shù)據(jù)流。此數(shù)字?jǐn)?shù)據(jù)將被轉(zhuǎn)換成模擬信號(hào),且被編譯碼器處理。該處理可包括執(zhí)行種種的功能,諸如音量控制、靜音、混音等等。如上所述,處理后的數(shù)據(jù)可被提供至一轉(zhuǎn)換器,如有必要可轉(zhuǎn)換該處理后的信號(hào)以產(chǎn)生一輸出信號(hào)(例如轉(zhuǎn)換器可轉(zhuǎn)換模擬信號(hào)至一數(shù)字輸出信號(hào))。除了處理音頻數(shù)據(jù)之外,編譯碼器130-132可經(jīng)由HDA總線120將控制數(shù)據(jù)提供給HDA控制器110。編譯碼器亦可接收輸入信號(hào)(例如來(lái)自一麥克風(fēng)的模擬輸入信號(hào)),處理這些信號(hào),且經(jīng)由HDA總線將這些信號(hào)提供給HDA控制器。數(shù)據(jù)以“流(stream)”方式在系統(tǒng)存儲(chǔ)器170與編譯碼器130-132之間轉(zhuǎn)移。在HDA規(guī)范中,流是一種在這些編譯碼器之一與系統(tǒng)存儲(chǔ)器的緩沖器之間的邏輯連接。各個(gè)流由HDA控制器中相對(duì)應(yīng)的一個(gè)DMA引擎所驅(qū)動(dòng)。DMA引擎可僅驅(qū)動(dòng)單個(gè)流,故若該系統(tǒng)具有比DMA引擎還多的流,則這些流中的一個(gè)或多個(gè)必須維持為非活動(dòng)(inactive),直到DMA引擎變?yōu)榭捎糜隍?qū)動(dòng)它們。流可以是一輸入流或一輸出流,但不能同時(shí)是這二者。輸出流被視為廣播流,且可以被不止一個(gè)編譯碼器接收。另一方面,輸入流僅僅關(guān)聯(lián)于單個(gè)編譯碼o如上所述,這些流在HDA總線上作為時(shí)間多路復(fù)用數(shù)據(jù)被傳送。HDA總線以連續(xù)幀的格式傳送串行的數(shù)據(jù)比特流的。幀速率是48kHz,故各個(gè)幀是20.83微秒長(zhǎng)。幀可分為諸個(gè)字段(field),包括用于命令及/或響應(yīng)數(shù)據(jù)的字段以及用于一或多個(gè)流的樣本字段。幀亦可包括零(null)空間,若小于最大數(shù)目的流正被傳送。在數(shù)據(jù)流的各個(gè)樣本內(nèi),通常存在對(duì)應(yīng)于二個(gè)通道(例如左與右立體聲信道)的數(shù)據(jù)的字段。然而,應(yīng)該注意的是更多個(gè)通道(例如左、右、左后、與右后)可以被傳送。此外,多個(gè)樣本字段可被用以輸送單個(gè)信道的數(shù)據(jù),其具有大于48kHz幀速率的數(shù)據(jù)速率。HDA規(guī)范旨在定義一種架構(gòu),其中,編譯碼器具有一種模塊式結(jié)構(gòu)。編譯碼器運(yùn)用參數(shù)化的建立方塊(接口工具集)以形成可顯露及可配置的編譯碼器。接口工具集(與接口工具集的群集)是在HDA架構(gòu)中獨(dú)特地可尋址的節(jié)點(diǎn)。結(jié)果,軟件驅(qū)動(dòng)程序可識(shí)別及控制這些編譯碼器的種種的操作。形成HDA編譯碼器的接口工具集是互連的,以形成在編譯碼器內(nèi)的功能群組。編譯碼器可含有超過(guò)一個(gè)功能群組。舉例而言,編譯碼器可含有用于處理不同音頻信道的音頻數(shù)據(jù)的數(shù)個(gè)音頻功能群組。常用于這些音頻功能群組中的接口工具集包括音頻輸出轉(zhuǎn)換器接口工具集、音頻輸入轉(zhuǎn)換器接口工具集、(I/O)(引腳)接口工具集、混合器接口工具集、選擇器(mux)接口工具集、電力狀態(tài)接口工具集以及音量接口工具集。具有集成的處理器的HDA編譯碼器通常,編譯碼器中的接口工具集是硬式連接在一起的。特定的編譯碼器可被設(shè)計(jì)成執(zhí)行若干個(gè)功能,但這些功能是由具有固定功能的接口工具集執(zhí)行的,故該編譯碼器的功能一旦其設(shè)計(jì)已被建立且編譯碼器已被構(gòu)成時(shí)亦被固定。另一方面,此編譯碼器包括可編程處理器,諸如數(shù)字信號(hào)處理器(DSP)。DSP能夠執(zhí)行音頻數(shù)據(jù)的智能處理。在一個(gè)實(shí)施例,DSP被編程以用作被整合至HDA編譯碼器中的D類(lèi)PWM控制器。參考圖2,示出了具有一整合PWM控制器/放大器的一個(gè)典型HDA編譯碼器中的接口工具集的互連。在此示例中,編譯碼器配置成處理八個(gè)通道(四個(gè)立體對(duì))的音頻數(shù)據(jù)。DDC接口工具集(例如210)將每一對(duì)立體聲從一輸入信號(hào)格式轉(zhuǎn)換成一內(nèi)部數(shù)字格式。因?yàn)镠DA總線上的數(shù)據(jù)流是時(shí)間多路復(fù)用的,所以DDC接口工具集從該總線中抽取適當(dāng)?shù)囊纛l數(shù)據(jù)分組,且將該數(shù)據(jù)格式化成可在編譯碼器中進(jìn)行處理的數(shù)字流(例如I2S數(shù)據(jù)流)。(在此實(shí)施例中,編譯碼器處理數(shù)字形式的信號(hào),而非模擬形式。)數(shù)字信號(hào)接著被混合器接口工具集(例如220)以及一引腳接口工具集(例如230)所處理,混合器接口工具集可將該信號(hào)與其它信號(hào)求和或控制該信號(hào)的音量,引腳接口工具集可令該信號(hào)靜音且將該信號(hào)輸出至一PWM控制器/放大器(例如240)。應(yīng)該注意的是混合器接口工具集與引腳接口工具集可以是編譯碼器的虛擬(或邏輯)構(gòu)件。盡管DDC接口工具集是一硬件構(gòu)件,其為從HDA總線抽取數(shù)據(jù)所必需的,混合器與引腳接口工具集通常執(zhí)行可由DSP提供的功能。因此,混合器與引腳接口工具集可呈現(xiàn)為硬件(其不需要被使用),或DSP可邏輯地簡(jiǎn)單代表這些接口工具集,使得尋址至這些接口工具集的命令被轉(zhuǎn)送至DSP,其中,命令以相同方式被處理,就好像這些接口工具集已經(jīng)實(shí)際存在一樣。舉例而言,當(dāng)該混合器接口工具集將正常控制由編譯碼器所處理的音頻信號(hào)的音量時(shí),DSP可根據(jù)PWM控制器來(lái)控制音量。同理,當(dāng)該引腳接口工具集將正??刂旗o音與輸入/輸出功能時(shí),這些功能可在PWM控制器中被實(shí)現(xiàn)。全數(shù)字式D類(lèi)PWM控制器因包括DSP而為優(yōu)于其模擬的對(duì)應(yīng)者。DSP允許音頻聲音的定制化,諸如參數(shù)均衡、幻覺(jué)(psycho-)音頻、空間均衡、虛擬環(huán)繞聲音、低音提升、混音、定制的濾波器等等。這些特征通??赏ㄟ^(guò)諸如I2C、SPI、或USB等專(zhuān)用的控制端口而可存取,在一種典型獨(dú)立式系統(tǒng)中它們是成本有效的方式以與DSP進(jìn)行通信。然而,在PC系統(tǒng)中,成本壓力是很高的,且免除專(zhuān)用的硬件連接是有價(jià)值的,因?yàn)檫@會(huì)導(dǎo)致成本降低。這些系統(tǒng)因此能夠經(jīng)由HDA總線在PC上執(zhí)行的一應(yīng)用程序與DSP之間進(jìn)行通信,藉以能夠?qū)SP進(jìn)行編程和配置,而不需要專(zhuān)用的硬件連接。經(jīng)由HDA總線與編譯碼器的處理器進(jìn)行通信為了讓DSP執(zhí)行音頻信號(hào)處理,DSP必須能夠與PC應(yīng)用程序進(jìn)行通信以傳送及接收信息,諸如參數(shù)、設(shè)定、狀態(tài)等等。參考圖3,示出了在PC的CPU上執(zhí)行的應(yīng)用程序與DSP之間的通信鏈路。在圖3的實(shí)施例中,CPU310與存儲(chǔ)器320連接至南橋315,其接著被連接至HDA控制器330。HDA控制器330與HDA編譯碼器350均被連接至HDA總線340。編譯碼器350具有一HDA接口361,其被連接至HDA總線340。寄存器GPI(371)、GPI0(372-373)與GP0(374)被連接至HDA接口361,且配置成存儲(chǔ)通過(guò)HDA總線340所轉(zhuǎn)移的I/O數(shù)據(jù)。(GPI0寄存器的讀取與寫(xiě)入部分在圖中被顯示為分離的方塊372與373)。多路復(fù)用器381被連接至GPI寄存器371,且用于選擇DSP讀取寄存器377中所存儲(chǔ)的三個(gè)字節(jié)之一從而存儲(chǔ)于GPI寄存器371。多路復(fù)用器382被連接至GP0寄存器374且用于將來(lái)自GP0寄存器374的數(shù)據(jù)的字節(jié)存儲(chǔ)到DSP寫(xiě)入寄存器379的三字節(jié)位置中選定的一個(gè)之中。DSP控制/狀態(tài)寄存器378被連接至GPI0寄存器372、373。DSP接口362將DSP390耦接至寄存器377-379。CPU310執(zhí)行相對(duì)應(yīng)的軟件應(yīng)用程序與驅(qū)動(dòng)程序。該應(yīng)用程序控制與DSP的通信,且使該驅(qū)動(dòng)程序驅(qū)動(dòng)數(shù)據(jù)至HDA控制器。HDA控制器接著驅(qū)動(dòng)此數(shù)據(jù)至HDA總線。該編譯碼器的HDA接口接著讀取自HDA總線的數(shù)據(jù)且轉(zhuǎn)送該數(shù)據(jù)至編譯碼器功能群組中適當(dāng)?shù)墓?jié)點(diǎn),使得其可被傳遞至適當(dāng)?shù)募拇嫫?。從這些寄存器,數(shù)據(jù)通過(guò)DSP接口而到達(dá)DSP,其可接著響應(yīng)于數(shù)據(jù)(例如通過(guò)更新其編程、修改其響應(yīng)、送回控制信息等等)。DSP通過(guò)此過(guò)程的逆向而送回?cái)?shù)據(jù)至應(yīng)用程序。應(yīng)該注意的是DSP并未置放動(dòng)詞于HDA總線上,而是置放數(shù)據(jù)于響應(yīng)于動(dòng)詞的總線上(例如得到控制/狀態(tài)信息、讀取數(shù)據(jù)、等等),這些動(dòng)詞被應(yīng)用程序置放于總線上。如上所述,數(shù)據(jù)以幀的形式在HDA總線上通信。此數(shù)據(jù)的幀速率是48kHz。各個(gè)幀包括命令/響應(yīng)字段、及一或多個(gè)數(shù)據(jù)分組。各個(gè)分組對(duì)應(yīng)于往返于這些編譯碼器之一的流。各個(gè)幀中的命令/響應(yīng)字段被用于傳送信息使其往返于這些編譯碼器。各個(gè)出站(outbound)的幀中的命令/響應(yīng)字段是由40個(gè)位所組成的。此字段包括8個(gè)保留位(傳輸為0)、4位的編譯碼器識(shí)別符、8位的節(jié)點(diǎn)識(shí)別符(以識(shí)別在編譯碼器之內(nèi)的目標(biāo)節(jié)點(diǎn))、與20位的動(dòng)詞。各個(gè)入站(inbound)的幀的命令/響應(yīng)字段是由36個(gè)位所組成的。這包括一有效位、一“非請(qǐng)求(unsolicited)”位、2個(gè)保留位(傳輸為0)、與一32位的響應(yīng)。為了能夠在DSP與PC應(yīng)用程序之間傳送參數(shù)、設(shè)定、狀態(tài)、等等,此系統(tǒng)利用一組HDA指定動(dòng)詞以在應(yīng)用程序與HDA音頻編譯碼器之內(nèi)的DSP之間創(chuàng)建虛擬通信信道。這些動(dòng)詞被羅列在下列的表1中。表1動(dòng)詞<table>tableseeoriginaldocumentpage9</column></row><table>8位GPI0被指定為控制/狀態(tài)。GP0是在寫(xiě)入操作中從該應(yīng)用程序發(fā)送至DSP的數(shù)據(jù),而GPI是在讀取操作中由該應(yīng)用程序從DSP中接收的數(shù)據(jù)。在讀取與寫(xiě)入操作之間,GPI0控制/狀態(tài)被進(jìn)一步分割,如表2所定義。針對(duì)于讀取操作,GPI0控制/狀態(tài)被稱(chēng)作為gpiCntl,而針對(duì)于寫(xiě)入操作,則被稱(chēng)作為gpoCntl。表2:GPI0控制/狀態(tài)定義<table>tableseeoriginaldocumentpage9</column></row><table>GP0P0S指出當(dāng)DSP對(duì)字組(其于一個(gè)實(shí)施例為24位的字組)進(jìn)行操作時(shí)的GP0/寫(xiě)入緩沖器字節(jié)位置。亦可以是重設(shè)該緩沖器且可指出GP0緩沖器是否為“空(empty)”(即數(shù)據(jù)是否已經(jīng)被該DSP所讀取)。STPKT是針對(duì)于分組起始的一控制位,且GP0WR是一控制位以指出該通信交易是寫(xiě)入或讀取操作。STPKT可被用于通過(guò)總線而發(fā)送一大分組。一寫(xiě)入操作并未致使數(shù)據(jù)被DSP送回,而一讀取操作則為之。GPIP0S指出當(dāng)DSP對(duì)字組進(jìn)行操作時(shí)的GPI/讀取緩沖器字節(jié)位置,且亦被用于指出緩沖器“滿(full)”狀態(tài)。HDA接口露出一組GPI0引腳接口工具集,其為1字節(jié)寬且可以被讀取或?qū)懭?。通用輸入輸?GPI0)寄存器被用于存儲(chǔ)進(jìn)出數(shù)據(jù)的狀態(tài)、以及DSP邏輯的重設(shè)狀態(tài)。在GPI0寄存器中存在可利用的二個(gè)不同重設(shè)。一個(gè)是啟動(dòng)于HDA的重設(shè),致使DSP啟動(dòng)加載程序?qū)ふ襾?lái)自HDA鏈路的程序。另一個(gè)重設(shè)是啟動(dòng)正常的重設(shè),致使DSP啟動(dòng)加載程序?qū)ふ襾?lái)自HDA總線或別處的程序,這取決于這些啟動(dòng)模式引腳被設(shè)定為何種狀態(tài)。通用輸入(GPI)寄存器被用于存儲(chǔ)來(lái)自HDA鏈路的字組,且通用輸出(GP0)寄存器被用于存儲(chǔ)在該鏈路上發(fā)送的字組。在此實(shí)施例中,DSP的存儲(chǔ)器空間是三個(gè)字節(jié)寬。另一方面,HDA鏈路是一個(gè)字節(jié)寬。為了克服字組對(duì)準(zhǔn)的差異,DSP運(yùn)用一計(jì)數(shù)器追蹤哪個(gè)字節(jié)跨過(guò)HDA總線而被傳送或接收。在總線上正被傳送/接收的字節(jié)的狀態(tài)可用于GPI0寄存器中。HDA總線將接口工具集視為僅有一個(gè)字節(jié)寬的寄存器。在DSP—側(cè),DSP將接口工具集視為三個(gè)字節(jié)的寄存器,其具有在GPI0寄存器中的一狀態(tài)值,以指示哪個(gè)字節(jié)正在HDA總線上被被輸送。此系統(tǒng)中的寫(xiě)入操作涉及一系列的SET-GPI0、SET_GP0、與GET-GPI0動(dòng)詞。運(yùn)用此操作,應(yīng)用程序向DSP發(fā)送參數(shù)設(shè)定、控制、系數(shù)、數(shù)據(jù)等等。參考圖4,示出了將24位的字組從應(yīng)用程序傳送至DSP的流程圖。首先,一動(dòng)詞ID0x715與GPI0[5:0]=0x00被應(yīng)用程序置放于HDA總線上。此舉通過(guò)清除GP0寄存器且指示寫(xiě)入操作而開(kāi)始該寫(xiě)入操作。然后,動(dòng)詞ID0x714被置放于總線上,且GP0被設(shè)定至24位字組的高字節(jié)。這發(fā)送該24位字組的高字節(jié)。DSP識(shí)別且讀取GP0的字節(jié)。接著,動(dòng)詞ID0x714再次被置放于總線上,而GP0被設(shè)定至24位字組的中間字節(jié)。DSP再次讀取作為字組的中間字節(jié)的GP0的字節(jié)。最后,動(dòng)詞ID0x714被置放于總線上,且GP0被設(shè)定至24位字組的低字節(jié)。DSP接著讀取此字節(jié)以完成該24位字組的傳輸。針對(duì)需要從該應(yīng)用程序傳送至DSP的連續(xù)的字組,重復(fù)此程序。讀取操作通常為涉及先進(jìn)行一寫(xiě)入且后讀取。寫(xiě)入操作欲告知該DSP其正在查詢的信息/狀態(tài)是什么。舉例而言,應(yīng)用程序可能需要知道一特定參數(shù)的設(shè)定,故其將該參數(shù)的識(shí)別符轉(zhuǎn)移至DSP,然后請(qǐng)求來(lái)自DSP的響應(yīng),且然后DSP將該參數(shù)值轉(zhuǎn)移回應(yīng)用程序。此程序的一個(gè)實(shí)例在圖5中示出。參考圖5,示出了該應(yīng)用程序請(qǐng)求DSP提供一特定參數(shù)的設(shè)定的一種程序的流程圖。應(yīng)用程序先在HDA總線上發(fā)送動(dòng)詞ID0x715,且GPI0[5:0]被設(shè)定至0x00。此舉通過(guò)清除GP0寄存器且指示寫(xiě)入操作而開(kāi)始該寫(xiě)入操作。在下一個(gè)幀,應(yīng)用程序發(fā)送動(dòng)詞ID0x714且GP0被設(shè)定至用于識(shí)別所請(qǐng)求參數(shù)的字組的高字節(jié)。DSP從總線中讀取此字節(jié)。在下一個(gè)幀,應(yīng)用程序發(fā)送動(dòng)詞ID0x714且GP0被設(shè)定至用于識(shí)別該參數(shù)的字組的中間字節(jié),其接著被DSP所讀取。在下一個(gè)幀,應(yīng)用程序發(fā)送動(dòng)詞ID0x714且GP0被設(shè)定至該參數(shù)識(shí)別符的低字節(jié),其接著被DSP讀取,以完成該程序的第一部分。在下一個(gè)幀,應(yīng)用程序接著發(fā)送動(dòng)詞ID0xF15以開(kāi)始該操作的讀取部分(其中DSP將數(shù)據(jù)寫(xiě)入至HDA總線且應(yīng)用程序讀取來(lái)自該總線的數(shù)據(jù))。在發(fā)送動(dòng)詞ID0xF15之后,應(yīng)用程序等待該GPI緩沖器為滿。換言之,應(yīng)用程序等待gpiCntl[l:0](GPI0[7:6])為0x1,以指出該緩沖器為滿。若此字段中的值不是0x1,則重復(fù)發(fā)送動(dòng)詞ID0xF15的步驟。當(dāng)DSP已加載其響應(yīng)至GPI緩沖器時(shí),設(shè)定gpiCntl[l:0]的值至0x1。應(yīng)用程序接著發(fā)送動(dòng)詞IDOxFlO且讀取來(lái)自該GPI緩沖器的24位設(shè)定的高字節(jié)。DSP接著加載該響應(yīng)的中間字節(jié)至緩沖器,且應(yīng)用程序發(fā)送動(dòng)詞IDOxFlO并且讀取來(lái)自該GPI緩沖器的中間字節(jié)。最后,DSP加載該響應(yīng)的低字節(jié)至該緩沖器且應(yīng)用程序發(fā)送動(dòng)詞IDOxFlO及讀取該低字節(jié)。當(dāng)該應(yīng)用程序讀取來(lái)自該GPI緩沖器的低字節(jié)時(shí),該程序就完成了。盡管前文的實(shí)例描述由應(yīng)用程序的一查詢與由DSP的一響應(yīng),本系統(tǒng)的通信機(jī)制可被用于諸多其它目的。舉例而言,應(yīng)用程序可傳送程序指令至DSP,且DSP可更新其編程且執(zhí)行這些指令。替代而言,應(yīng)用程序可傳送參數(shù)數(shù)據(jù)至DSP。此參數(shù)數(shù)據(jù)可包括音頻均衡信息、濾波器系數(shù)、或是隨著其處理音頻數(shù)據(jù)而影響該編譯碼器的響應(yīng)的其它數(shù)據(jù)。在另一個(gè)實(shí)例,應(yīng)用程序可傳送數(shù)據(jù)至DSP以定制PWM控制器/放大器的響應(yīng)。DSP可進(jìn)而配置成傳送其定義定制化的信息為回到應(yīng)用程序而使得定制化可以是存儲(chǔ)于PC的系統(tǒng)存儲(chǔ)器。應(yīng)該注意的是術(shù)語(yǔ)“PC”與“個(gè)人計(jì)算機(jī)”運(yùn)用于本文以指稱(chēng)其為由個(gè)別消費(fèi)者所一般購(gòu)買(mǎi)及運(yùn)用的大范圍的計(jì)算系統(tǒng)。這些系統(tǒng)可包括桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)與類(lèi)似者,且可以是運(yùn)用于家庭、辦公室、行動(dòng)或其它的環(huán)境。亦應(yīng)該注意的是雖然上述的實(shí)施例針對(duì)于包括DSP者的編譯碼器,其它實(shí)施例可運(yùn)用不同于DSP者的型式的處理器(諸如通用的可編程處理器、可程式微控制器、等等)以達(dá)成其為通過(guò)一處理器的運(yùn)用于HDA編譯碼器所得到的可編程能力、可配置能力、與其它優(yōu)點(diǎn)。可以是由本發(fā)明所提供的俾益與優(yōu)點(diǎn)已經(jīng)相關(guān)于特定的實(shí)施例而描述于上文。這些俾益與優(yōu)點(diǎn)、及可致使其為存在或成為較顯著的任何要素或限制非解釋為權(quán)利要求書(shū)的任一項(xiàng)或所有項(xiàng)的重要、要求或必要特征。如運(yùn)用于本文,術(shù)語(yǔ)“包括”、“包含”或其任何其它變化者意圖以解讀為非排他式包括其跟隨彼等術(shù)語(yǔ)的后的要素或限制。因此,包含一組要素的一種系統(tǒng)、方法、或其它實(shí)施例不受限于僅有彼等要素,且可包括其未明確列出或固有于主張的實(shí)施例的其它要素。盡管本發(fā)明已經(jīng)關(guān)于特別實(shí)施例而描述,應(yīng)該了解的是這些實(shí)施例說(shuō)明性質(zhì)且本發(fā)明的范疇不受限于這些實(shí)施例。對(duì)于上文所述的實(shí)施例的諸多的變化、修改、附加與改良可能。預(yù)期的是這些變化、修改、附加與改良屬于如同詳述于隨附權(quán)利要求書(shū)的本發(fā)明的范疇內(nèi)。權(quán)利要求一種高清晰度音頻(HDA)編譯碼器,包含可編程處理器;及一個(gè)或多個(gè)寄存器,配置成存儲(chǔ)經(jīng)由HDA總線所傳輸?shù)腍DA動(dòng)詞與數(shù)據(jù);其中,該可編程處理器配置成識(shí)別用于指示關(guān)聯(lián)數(shù)據(jù)包含來(lái)自該編譯碼器外部的CPU上執(zhí)行的應(yīng)用程序的通信的一個(gè)或多個(gè)動(dòng)詞,檢索所述關(guān)聯(lián)數(shù)據(jù),并且根據(jù)與該數(shù)據(jù)相關(guān)聯(lián)的一個(gè)或多個(gè)動(dòng)詞來(lái)處理該數(shù)據(jù)。2.如權(quán)利要求1所述的HDA編譯碼器,其中,該可編程處理器包含數(shù)字信號(hào)處理器(DSP)。3.如權(quán)利要求2所述的HDA編譯碼器,其中,該DSP配置成D類(lèi)PWM控制器。4.如權(quán)利要求3所述的HDA編譯碼器,其中,該DSP配置成基于接收到的通信而修改該D類(lèi)PWM控制器的響應(yīng)。5.如權(quán)利要求2所述的HDA編譯碼器,更包含一組HDA輸入/輸出(GPIO)寄存器,配置成暫時(shí)存儲(chǔ)在該應(yīng)用程序與可編程處理器之間傳輸?shù)臄?shù)據(jù)。6.如權(quán)利要求5所述的HDA編譯碼器,更包含一組DSP可存取式寄存器,耦接至所述GPIO寄存器且配置成暫時(shí)存儲(chǔ)在該應(yīng)用程序與可編程處理器之間傳輸?shù)臄?shù)據(jù),其中,每個(gè)GPIO寄存器不超過(guò)一個(gè)字節(jié)寬,且該組DSP可存取式寄存器至少是二個(gè)字節(jié)寬。7.如權(quán)利要求1所述的HDA編譯碼器,其中,該可編程處理器配置成響應(yīng)于接收到的通信而提供數(shù)據(jù)。8.如權(quán)利要求1所述的HDA編譯碼器,其中,該可編程處理器配置成基于該數(shù)據(jù)而修改該可編程處理器的操作。9.如權(quán)利要求8所述的HDA編譯碼器,其中,該數(shù)據(jù)包含一個(gè)或多個(gè)程序指令,且該處理器配置成執(zhí)行這些程序指令。10.如權(quán)利要求1所述的HDA編譯碼器,更包含一個(gè)或多個(gè)HDA接口工具集,耦接至該可編程處理器。11.一種在個(gè)人計(jì)算機(jī)(PC)中實(shí)現(xiàn)的方法,該方法包含定義一個(gè)或多個(gè)HDA動(dòng)詞,以指示在PC的CPU上執(zhí)行的應(yīng)用程序以及該P(yáng)C的HDA編譯碼器中的可編程處理器之間的通信;及在HDA總線上傳送所述一個(gè)或多個(gè)HDA動(dòng)詞之一以及關(guān)聯(lián)數(shù)據(jù),所述HDA總線被耦接于該CPU與編譯碼器之間。12.如權(quán)利要求11所述的方法,更包含基于所傳送的所述一個(gè)或多個(gè)HDA動(dòng)詞之一以及關(guān)聯(lián)數(shù)據(jù),修改該可編程處理器的操作。13.如權(quán)利要求12所述的方法,其中,修改該可編程處理器的操作包含修改在該可編程處理器上執(zhí)行的程序。14.如權(quán)利要求11所述的方法,其中,在HDA總線上傳送所述一個(gè)或多個(gè)HDA動(dòng)詞之一以及關(guān)聯(lián)數(shù)據(jù)包含該應(yīng)用程序以一個(gè)或多個(gè)接續(xù)的幀而將針對(duì)于數(shù)據(jù)的請(qǐng)求置放于該HDA總線上,且該可編程處理器以一個(gè)或多個(gè)后續(xù)的幀而將響應(yīng)數(shù)據(jù)置放于該HDA總線上。15.如權(quán)利要求11所述的方法,其中,在HDA總線上傳送所述一個(gè)或多個(gè)HDA動(dòng)詞之一以及關(guān)聯(lián)數(shù)據(jù)包含(a)該應(yīng)用程序?qū)⒌谝粍?dòng)詞置放于該HDA總線上,以清除GPO緩沖器且指示一寫(xiě)入操作;(b)該應(yīng)用程序發(fā)送第二動(dòng)詞,且GPO字段被設(shè)定為用于識(shí)別所請(qǐng)求的數(shù)據(jù)的字組的第一字節(jié);(c)該可編程處理器讀取來(lái)自該總線的第一字節(jié);(d)針對(duì)用于識(shí)別所請(qǐng)求的數(shù)據(jù)的字組的任何其它字節(jié),重復(fù)(b)與(C);(e)該應(yīng)用程序發(fā)送第三動(dòng)詞,以指示該寫(xiě)入操作的結(jié)束;(f)該應(yīng)用程序等待該可編程處理器以指示GPI緩沖器為滿;(g)該可編程處理器將響應(yīng)數(shù)據(jù)置放于該GPI緩沖器中且指示該GPI緩沖器為滿;(h)該應(yīng)用程序發(fā)送第四動(dòng)詞且讀取該響應(yīng)數(shù)據(jù)的第一字節(jié);及(i)針對(duì)該響應(yīng)數(shù)據(jù)的任何其它字節(jié),重復(fù)(h)。16.一種音頻放大系統(tǒng),包含CPU,配置成執(zhí)行一應(yīng)用程序;HDA總線,耦接至該CPU;及HDA編譯碼器,耦接至該HDA總線,其中,該編譯碼器包括一可編程處理器;其中,在該CPU上執(zhí)行的應(yīng)用程序經(jīng)由該HDA總線而與該可編程處理器進(jìn)行通信。17.如權(quán)利要求16所述的音頻放大系統(tǒng),其中,該應(yīng)用程序配置成經(jīng)由該HDA總線而將程序指令傳送至該可編程處理器。18.如權(quán)利要求16所述的音頻放大系統(tǒng),其中,該應(yīng)用程序配置成經(jīng)由該HDA總線而將參數(shù)數(shù)據(jù)傳送至該可編程處理器。19.如權(quán)利要求16所述的音頻放大系統(tǒng),其中,該應(yīng)用程序配置成經(jīng)由該HDA總線而將多個(gè)字節(jié)寬的數(shù)據(jù)傳送至該可編程處理器。20.如權(quán)利要求19所述的音頻放大系統(tǒng),其中,該數(shù)據(jù)是以多個(gè)HDA總線幀而被傳送的。21.如權(quán)利要求16所述的音頻放大系統(tǒng),更包含HDA控制器,耦接于該CPU與HDA總線之間,其中,該應(yīng)用程序包括一驅(qū)動(dòng)程序,其配置成使該HDA控制器經(jīng)由該HDA總線而在該應(yīng)用程序與可編程處理器之間輸送信息。22.如權(quán)利要求16所述的音頻放大系統(tǒng),其中,該應(yīng)用程序配置成在該HDA總線上輸送HDA動(dòng)詞,其中,第一組動(dòng)詞與關(guān)聯(lián)數(shù)據(jù)包含在該應(yīng)用程序與可編程處理器之間的通信,且其中,該可編程處理器配置成識(shí)別第一組中的動(dòng)詞且響應(yīng)于第一組中的動(dòng)詞的通信。23.如權(quán)利要求22所述的音頻放大系統(tǒng),其中,第一組中的動(dòng)詞包括用于設(shè)定該可編程處理器的控制數(shù)據(jù)、從該可編程處理器得到控制數(shù)據(jù)、將數(shù)據(jù)發(fā)送至該可編程處理器、及從該可編程處理器接收數(shù)據(jù)的動(dòng)詞。24.如權(quán)利要求16所述的音頻放大系統(tǒng),其中,該可編程處理器包含數(shù)字信號(hào)處理器(DSP)。25.如權(quán)利要求16所述的音頻放大系統(tǒng),其中,該可編程處理器配置成D類(lèi)PWM控制器。全文摘要本發(fā)明揭示了實(shí)施于個(gè)人計(jì)算機(jī)(PC)的系統(tǒng)及方法,能夠在執(zhí)行于中央處理單元(CPU)的一應(yīng)用程序以及被包括在一高清晰度音頻(HDA)系統(tǒng)的編譯碼器中的一數(shù)字信號(hào)處理器(DSP)之間進(jìn)行通信,其中,通信是經(jīng)由HDA總線而實(shí)現(xiàn)。在一個(gè)實(shí)施例,HDA編譯碼器包括耦接至可編程處理器(諸如DSP)的一或多個(gè)常規(guī)HDA接口工具集。該編譯碼器包括一組寄存器,其配置成存儲(chǔ)經(jīng)由HDA總線所傳輸?shù)腍DA動(dòng)詞與數(shù)據(jù)。可編程處理器配置成識(shí)別指示關(guān)聯(lián)信息為自執(zhí)行于CPU的一應(yīng)用程序的通信的動(dòng)詞,讀取關(guān)聯(lián)的信息,且根據(jù)關(guān)聯(lián)的動(dòng)詞處理信息。該信息可以是程序指令、參數(shù)數(shù)據(jù)、對(duì)于信息的請(qǐng)求等等。文檔編號(hào)G06F3/16GK101802775SQ200880105062公開(kāi)日2010年8月11日申請(qǐng)日期2008年9月1日優(yōu)先權(quán)日2007年9月1日發(fā)明者丹尼爾·L·江,杰佛瑞·M·克拉斯,艾當(dāng)·薩哈瑞亞,賴瑞·E·漢德,道格拉斯·D·賈伐瑞申請(qǐng)人:D2影音公司