基于環(huán)形緩沖器的數(shù)據(jù)的自適應(yīng)偏移同步的制作方法
【專利摘要】本文公開了一種用于同步第一電路和第二電路之間的操作的方法和裝置。該方法涉及:將來自第一電路的接收數(shù)據(jù)以第一速率寫入第一環(huán)形緩沖器。第一環(huán)形緩沖器具有固定長度的緩沖單元以及相應(yīng)的讀取緩沖器指針和寫入緩沖器指針。將所緩沖的接收數(shù)據(jù)以第二數(shù)據(jù)速率從第一環(huán)形緩沖器讀取到第二電路。檢測讀取緩沖器指針和寫入緩沖器指針的各自的位置,并對讀取指針和寫入指針之間的相對位置進行動態(tài)調(diào)整以便至少實現(xiàn)預(yù)定的最小間距。動態(tài)調(diào)整包括向環(huán)形緩沖器選擇性地添加或者從環(huán)形緩沖器選擇性地刪除數(shù)據(jù)的一些部分。
【專利說明】基于環(huán)形緩沖器的數(shù)據(jù)的自適應(yīng)偏移同步
【技術(shù)領(lǐng)域】
[0001]概括地說,本文的實施例涉及數(shù)據(jù)通信,且更具體地說,涉及提供用于緩沖數(shù)據(jù)的流控制的方法和裝置。
【背景技術(shù)】
[0002]由于很多因素,電路之間的數(shù)據(jù)傳輸常常變得不同步。例如,在IP語音(VOIP)應(yīng)用中,模擬-數(shù)字編解碼器(例如脈沖編碼調(diào)制PCM編解碼器)可以用與信號處理器可接受的不同的速率來生成數(shù)據(jù)。緩沖電路通常提供動態(tài)的方式來吸收和處理衰落以及在這樣的電路之間傳送的數(shù)據(jù)流。
[0003]一種典型的緩沖解決方案采用具有固定數(shù)量的緩沖單元的環(huán)形或圓形緩沖器。相應(yīng)的讀取和寫入指針或索引跟蹤可用的緩沖器存儲容量。在一些情況下,緩沖器可能變滿,從而導(dǎo)致對緩沖器中最舊數(shù)據(jù)的覆寫。這些索引通過二者指向相同的緩沖單元位置來標(biāo)識這個狀態(tài)。當(dāng)由于覆寫而導(dǎo)致數(shù)據(jù)丟失時,可能造成系統(tǒng)中的噪聲。
[0004]為了使覆寫最小化,可以采用大的緩沖器配置。大的緩沖器能夠處理例如PCM控制器與數(shù)字信號處理器(DSP)之間的操作中的各種延時。不幸的是,采用大的緩沖器導(dǎo)致系統(tǒng)延時和電路空間的相應(yīng)增加。
【發(fā)明內(nèi)容】
[0005]本文公開了一種用于同步第一電路和第二電路之間的操作的方法和裝置。該方法涉及:以第一數(shù)據(jù)速率接收數(shù)據(jù),以及緩沖數(shù)據(jù)。由具有固定長度的緩沖單元和相應(yīng)的讀取和寫入緩沖器指示符的緩沖電路來處理緩沖。所緩沖的數(shù)據(jù)以第二數(shù)據(jù)速率被傳送給第二電路。第二數(shù)據(jù)速率基于讀取緩沖器指示符和寫入緩沖器指示符之間實現(xiàn)的最小偏移。通過檢測讀取和寫入緩沖器指示符的各自的位置,以及動態(tài)調(diào)整指示符之間的相對間距來處理偏移的實現(xiàn),以至少保持最小偏移。
【專利附圖】
【附圖說明】
[0006]本文的實施例是通過舉例的方式來說明的,并且并不旨在被附圖中的示圖所限制,其中:
[0007]圖1是采用緩沖電路來提供數(shù)據(jù)的自適應(yīng)偏移同步的系統(tǒng)的一個實施例的框圖;
[0008]圖2是說明圖1的系統(tǒng)的一種操作模式中涉及的步驟的流程圖;以及
[0009]圖3說明了示出圖1的系統(tǒng)的第二操作模式中涉及的步驟的流程圖。
【具體實施方式】
[0010]根據(jù)本文的實施例,公開了用于同步第一電路和第二電路之間的操作的方法和裝置。該方法包括:將來自第一電路的接收數(shù)據(jù)以第一速率寫入第一環(huán)形緩沖器。緩沖器具有固定長度的緩沖單元以及相應(yīng)的讀取和寫入緩沖器指示符。將所緩沖的接收數(shù)據(jù)以第二數(shù)據(jù)速率從環(huán)形緩沖器讀取到第二電路。檢測讀取和寫入緩沖器指示符的各自的位置,并對指示符之間的相對位置進行動態(tài)調(diào)整以便至少實現(xiàn)預(yù)定的最小間距。動態(tài)調(diào)整包括向環(huán)形緩沖器選擇性地添加或者從環(huán)形緩沖器選擇性地刪除數(shù)據(jù)的一些部分。因此,可以使對緩沖數(shù)據(jù)的覆寫最小化,同時也優(yōu)化系統(tǒng)延時。
[0011]在下面的描述中,闡述了大量具體細(xì)節(jié)(例如,具體組件、電路和過程的例子)以提供對本公開內(nèi)容的透徹理解。另外,在下面的描述中以及出于解釋的目的,闡述了特定術(shù)語以提供對本文的實施例的透徹理解。然而,對于本領(lǐng)域技術(shù)人員將顯而易見是,實踐本文的實施例可以不需要這些具體細(xì)節(jié)。在其它實例中,為了避免使本公開內(nèi)容不清楚,以框圖形式示出了公知的電路和設(shè)備。如本文所使用的,術(shù)語“耦合”意指直接連接或者通過一個或多個中間組件或電路連接。在本文中描述的各條總線上提供的信號中的任何一個都可以與其它信號進行時間復(fù)用,并在一條或多條公共總線上提供。另外,電路元件或軟件塊之間的互連可以被示為總線或單條信號線??偩€中的每條總線還可以是單條信號線,并且這些單條信號線中的每一條還可以是總線,并且單條線或總線可以表示用于組件之間通信的各種物理或邏輯機制中的任意一個或多個。本文的實施例不應(yīng)該被解釋為對本文中描述的具體例子的限制,而是包括由所附權(quán)利要求所定義的范圍中的全部實施例。
[0012]更具體地,并總體上參照圖1,示出了用于執(zhí)行信號處理操作的集成電路(IC)設(shè)備102。在一個具體實施例中,信號處理涉及互聯(lián)網(wǎng)協(xié)議語音(VOIP)通信。VOIP通信通常涉及:捕獲模擬音頻信號,對音頻信號進行數(shù)字化和編碼,以及以適于經(jīng)由互聯(lián)網(wǎng)進行傳輸?shù)姆绞綄?jīng)數(shù)字化的音頻進行處理。經(jīng)由VOIP的對話因此涉及:兩個遠(yuǎn)程點之間的雙向通信,以及與該通信相關(guān)聯(lián)的往返延時。在一個具體實施例中,為了執(zhí)行VOIP處理,IC設(shè)備102采用經(jīng)由緩沖電路107與信號處理器106(例如數(shù)字信號處理器(DSP))交互的脈沖編碼調(diào)制(PCM)控制器104。
[0013]進一步參照圖1,在一個具體實施例中,集成電路設(shè)備102在耦合到數(shù)據(jù)I/O接口電路112的一個或多個管腳103處接收音頻數(shù)據(jù)。接口電路112通常包括允許IC設(shè)備102與各種物理傳輸介質(zhì)相對接的發(fā)送和接收電路(未示出)。雖然為了清楚起見僅示出了一個管腳103,但應(yīng)當(dāng)理解的是,可以采用多個接口管腳以并行或串行方案來傳輸數(shù)據(jù)。在一個實施例中,定時信息伴隨所接收的音頻數(shù)據(jù),以形成恢復(fù)的時鐘信號RCLK形式的定時基準(zhǔn)。此外,雖然示出和描述了用于IC的有線數(shù)據(jù)接口,但還可以采用無線接口,并且在這樣的情況下,接口會包括合適的RF調(diào)制電路并關(guān)聯(lián)天線電路。
[0014]接口 112耦合到PCM控制器104以實現(xiàn)所接收的音頻信號的模數(shù)轉(zhuǎn)換,以及由信號處理器106處理并且從信號處理器106發(fā)送的信號的數(shù)模轉(zhuǎn)換。PCM控制器只是對音頻信號進行編碼的一種方式,但是多種不同的編碼算法可以被采用。相應(yīng)的模數(shù)轉(zhuǎn)換器(ADC)和數(shù)模轉(zhuǎn)換器(DAC)(未示出)執(zhí)行如本領(lǐng)域技術(shù)人員公知的信號轉(zhuǎn)換。PCM控制器104通常以相對于所恢復(fù)的時鐘信號RCLK —致的數(shù)據(jù)速率進行操作,并對經(jīng)由接口 112傳輸?shù)慕邮誖x和發(fā)送Tx數(shù)據(jù)執(zhí)行模數(shù)和數(shù)模轉(zhuǎn)換。雖然PCM控制器104被示出和描述為布置在IC設(shè)備102上,但其可以位于單獨的IC設(shè)備上并被封裝在一起,或者與信號處理器106相分離。
[0015]信號處理器106可以采取若干形式中的一種形式,包括專用數(shù)字信號處理器(DSP)或基于主機的軟DSP。信號處理器106可以由片上時鐘(未不出)生成的本地時鐘信號CLK來提供時鐘,并以與PCM控制器104的速率類似的速率來進行操作。然而,由于偶然的優(yōu)先級沖突,信號處理器106可能無法與PCM控制器104同步。
[0016]進一步參照圖1,緩沖電路107被置于PCM控制器104與信號處理器106之間,以便處理它們之間的數(shù)據(jù)速率的不匹配。在一個實施例中,緩沖電路107包括采取環(huán)形緩沖器形式的相應(yīng)的接收緩沖器108和發(fā)送緩沖器110。每個環(huán)形緩沖器可以包括固定數(shù)量的緩沖存儲單元111和相應(yīng)的讀取和寫入索引或指針。接收緩沖器108因此采用接收讀取指針RIRx和接收寫入指針WIRx,而發(fā)送緩沖器110采用發(fā)送讀取指針RITx和發(fā)送寫入指針WITx0
[0017]對于接收緩沖器108來說,接收讀取指針RIRx通過其指針位置來指示多少數(shù)據(jù)已經(jīng)被傳送給了信號處理器106。這個位置的指示可以采取計數(shù)的形式,該計數(shù)表示將要在下一個讀取操作中讀取的緩沖存儲單元111的地址。在一個實施例中,接收讀取指針RIRx對作為其讀取操作的定時基準(zhǔn)的本地時鐘信號CLK進行響應(yīng)。換言之,接收讀取指針RIRx使用作為其定時基準(zhǔn)的本地時鐘CLK來遞增到其下一個單元位置,以便在每一個時鐘周期讀取該單元的內(nèi)容。
[0018]另一方面,接收緩沖器108的接收寫入指針WIRx使用所恢復(fù)的時鐘信號RCLK作為其定時信號,并通過與接收讀取指針RIRx類似的計數(shù)值來指示多少數(shù)據(jù)已經(jīng)被裝載進接收緩沖器108。當(dāng)讀取和寫入指針指示在相同接收緩沖存儲單元處的各自的位置時,被寫入緩沖器的數(shù)據(jù)的量與從該緩沖器讀取的數(shù)據(jù)的量相匹配,從而指示滿的緩沖器。因此,在沒有更多緩沖器容量的情況下,任何進一步的寫入操作都將覆寫現(xiàn)有數(shù)據(jù)。
[0019]以使PCM控制器104與信號處理器106之間的數(shù)據(jù)質(zhì)量和同步最大化的方式,將用于向接收緩沖器108和發(fā)送緩沖器110的讀取和寫入索引提供時鐘的定時基準(zhǔn)配置在所恢復(fù)的時鐘RCLK與本地時鐘CLK之間。為此,接收緩沖器108的接收寫入指針WlRx和發(fā)送緩沖器110的發(fā)送讀取指針RlTx由所恢復(fù)的時鐘RCLK提供時鐘,同時接收緩沖器108的接收讀取指針RlRx和發(fā)送緩沖器110的發(fā)送寫入指針WlTx由本地時鐘CLK提供時鐘。
[0020]為了盡力避免覆寫但仍使緩沖器尺寸和延時最小化,在一個實施例中,信號處理器106以監(jiān)測和檢測每個環(huán)形緩沖器的讀取和寫入指針之間的相對間距的模式來操作?;谠摍z測,信號處理器106在讀取和寫入指針之間實現(xiàn)最小間距,以使緩沖器覆寫現(xiàn)有數(shù)據(jù)的情況最少。“間距”因此表示在覆寫發(fā)生之前可由緩沖電路107吸收的值得異步操作的讀取/寫入周期的數(shù)量。
[0021]信號處理器106還以第二模式操作,第二模式對可能極大地影響音頻傳輸之間的服務(wù)質(zhì)量的PCM控制器104與信號處理器106之間的不期望的延時進行檢測。作為響應(yīng),信號處理器106對發(fā)送緩沖器讀取指針RITx和寫入指針WITx之間的間距進行自適應(yīng)調(diào)整,以匹配信號處理器106的延時。盡管數(shù)據(jù)可能在調(diào)整過程中丟失,但仍然執(zhí)行該操作。因此,不僅可以避免覆寫,而且可以達(dá)到PCM控制器104與信號處理器106之間的最優(yōu)級別的同步。
[0022]圖2說明了陳述與上面提到的操作的第一操作模式相對應(yīng)的操作方法的步驟的流程圖。在步驟202處,在VOIP通信期間,音頻數(shù)據(jù)被IC設(shè)備102在接口 112處接收到,并被饋送到PCM控制器104以便于以對應(yīng)于從所接收的音頻數(shù)據(jù)恢復(fù)的時鐘信號RCLK的速率來進行PCM編碼。然后,在步驟204處,將經(jīng)PCM編碼的數(shù)據(jù)以所恢復(fù)的時鐘RCLK指定的速率寫入接收緩沖器108中由接收寫入指針WIRx指示的位置處。然后,在步驟206處,以本地時鐘速率CLK將之前寫入的緩沖數(shù)據(jù)從接收緩沖器108讀入信號處理器106。在步驟208處,信號處理器106通過首先確定寫入和讀取指針是否實際上展示了最小間距(通過寫入和讀取指針計數(shù)的比較等等)來實現(xiàn)寫入和讀取指針之間的最小間距。如果計數(shù)反映了正確的最小間距,則更多的數(shù)據(jù)通過緩沖器進行循環(huán),循環(huán)開始于步驟202。然而,如果計數(shù)反映了比所期望的閾值更小的偏移,則在步驟210處,相對于彼此對指針進行調(diào)整以便達(dá)到該偏移。在該點處,該方法可以迭代回202處的數(shù)據(jù)接收步驟,或者參與解決PCM控制器104與信號處理器106之間的延時的進一步的模式(經(jīng)由氣泡“A”)。
[0023]現(xiàn)在參照圖3,PCM控制器104與信號處理器106之間的不期望的延時可以通過在302處檢測電路之間的操作中的延時或延遲,以及在步驟304處確定是否超過了延時閾值來補償。極大的延時可能導(dǎo)致除了例如由緩沖器覆寫導(dǎo)致的周期性丟失數(shù)據(jù)問題之外的重大質(zhì)量問題。如果延時閾值在限制之內(nèi),則操作再繼續(xù)(經(jīng)由氣泡“B”)進行圖2的數(shù)據(jù)接收步驟。
[0024]然而,如果在步驟304處,超過了延時閾值,則在步驟306處,對發(fā)送緩沖器讀取和寫入指針的相對位置進行自適應(yīng)調(diào)整以匹配處理器延時。在一個實施例中,這是通過以迭代的方式對發(fā)送寫入指針WITx的位置進行調(diào)整直到延時落入限制之內(nèi)來執(zhí)行的。在一些實例中,這可能由于發(fā)送寫入指針WITx的自適應(yīng)調(diào)整而導(dǎo)致位于刪除的緩沖單元位置中的數(shù)據(jù)的暫時性數(shù)據(jù)丟失。雖然丟失數(shù)據(jù)與傳統(tǒng)觀點相反,但已確定其與保持?jǐn)?shù)據(jù)和容忍延時相比更利于最優(yōu)服務(wù)質(zhì)量。
[0025]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)意識到由本文描述的實施例所提供的益處和優(yōu)點。通過提供能夠?qū)崿F(xiàn)最小讀取和寫入指針偏移的第一操作模式,可以使由于緩沖器覆寫而導(dǎo)致的數(shù)據(jù)丟失最小化。還通過提供用于基于延時考慮來對發(fā)送指針進行自適應(yīng)調(diào)整的第二操作模式,可以達(dá)到最優(yōu)服務(wù)質(zhì)量。
[0026]在前述說明中,已經(jīng)參考具體的示例性實施例對本文的實施例進行了描述。然而,顯而易見的是,在不脫離如所附權(quán)利要求書中闡述的本公開內(nèi)容的更寬廣的精神和范圍的前提下,可以對其進行各種修改和改變。例如,本文提供的描述的大部分涉及VOIP背景中的音頻數(shù)據(jù)同步。然而,多種應(yīng)用可以從本文的教導(dǎo)受益,包括基于視頻的數(shù)據(jù)應(yīng)用、基本網(wǎng)絡(luò)數(shù)據(jù)傳輸應(yīng)用等等。因此,本說明和附圖應(yīng)當(dāng)被視為是說明性的而不是限制性的。
【權(quán)利要求】
1.一種用于同步第一電路和第二電路之間的操作的方法,所述方法包括: 以第一速率將來自所述第一電路的數(shù)據(jù)寫入第一環(huán)形緩沖器,所述第一環(huán)形緩沖器具有固定長度的緩沖單元以及相應(yīng)的讀取緩沖器指示符和寫入緩沖器指示符; 以第二數(shù)據(jù)速率將來自所述第一環(huán)形緩沖器的所緩沖的數(shù)據(jù)讀取到所述第二電路; 檢測所述讀取緩沖器指示符和所述寫入緩沖器指示符的各自的位置;以及 對所述指示符之間的相對位置進行動態(tài)調(diào)整以便至少實現(xiàn)預(yù)定的最小間距,其中,所述動態(tài)調(diào)整包括:向所述第一環(huán)形緩沖器選擇性地添加或者從所述第一環(huán)形緩沖器選擇性地刪除所述數(shù)據(jù)的一些部分。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 以所述第二數(shù)據(jù)速率將來自所述第二電路的發(fā)送數(shù)據(jù)寫入第二環(huán)形緩沖器,所述第二環(huán)形緩沖器具有相應(yīng)的寫入指針和讀取指針; 以所述第一數(shù)據(jù)速率將來自所述第二環(huán)形緩沖器的所緩沖的發(fā)送數(shù)據(jù)讀取到所述第一電路;以及 基于延遲參數(shù)來自適應(yīng)地調(diào)整所述第二環(huán)形緩沖器讀取指針和寫入指針的位置。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述延遲參數(shù)包括所述第二電路相對于所述第一電路的操作延時,并且自適應(yīng)調(diào)整包括:對所述第二環(huán)形緩沖器讀取指針和寫入指針之間的所述相對位置進行自適應(yīng)調(diào)整以匹配所述延時。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述第二環(huán)形緩沖器的所述寫入指針響應(yīng)于與所述第二電路相關(guān)聯(lián)的第一定時基準(zhǔn),并且所述第二環(huán)形緩沖器的所述讀取指針響應(yīng)于與所述第一電路相關(guān)聯(lián)的第二定時基準(zhǔn)。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述第一定時基準(zhǔn)與所述第二定時基準(zhǔn)之間的相位差與所述延時相對應(yīng)。
6.根據(jù)權(quán)利要求4所述的方法,其中,所述第一定時基準(zhǔn)包括利用由所述第一電路接收的數(shù)據(jù)恢復(fù)的時鐘,并且所述第二定時基準(zhǔn)包括向所述第二電路提供時鐘的本地時鐘。
7.一種用于對關(guān)聯(lián)于第一定時基準(zhǔn)的音頻編解碼電路和關(guān)聯(lián)于第二定時基準(zhǔn)的信號處理器之間的操作進行同步的方法,所述方法包括: 在第一模式中,在相應(yīng)的接收緩沖電路和發(fā)送緩沖電路的寫入指針和讀取指針之間實現(xiàn)最小定時偏移,所述接收緩沖電路和所述發(fā)送緩沖電路置于所述音頻編解碼電路與所述信號處理器之間的相應(yīng)接收路徑和發(fā)送路徑之間;以及 在第二模式中,對所述發(fā)送緩沖電路的所述讀取指針和所述寫入指針之間的定時偏移進行自適應(yīng)調(diào)整,以匹配由所述信號處理器相對于所述音頻編解碼電路展示的延時。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述發(fā)送緩沖電路的所述寫入指針響應(yīng)于所述第二定時基準(zhǔn),并且所述發(fā)送緩沖電路的所述讀取指針響應(yīng)于所述第一定時基準(zhǔn)。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述第一定時基準(zhǔn)包括從與所述音頻編解碼電路相關(guān)聯(lián)的數(shù)據(jù)恢復(fù)的時鐘,并且所述第二定時基準(zhǔn)包括向所述信號處理器提供時鐘的本地時鐘。
10.一種集成電路設(shè)備,其包括: 第一電路,其響應(yīng)于第一定時基準(zhǔn); 第二電路,其響應(yīng)于第二定時基準(zhǔn);以及 緩沖電路,其包括可操作為響應(yīng)于接收寫入指針從所述第一電路接收數(shù)據(jù)的接收環(huán)形緩沖器,所述接收環(huán)形緩沖器可操作為響應(yīng)于接收讀取指針向所述第二電路傳送數(shù)據(jù); 其中,所述第二電路對所述接收讀取指針和所述接收寫入指針之間的相對位置進行調(diào)整,以便在它們之間實現(xiàn)預(yù)定的最小間距。
11.根據(jù)權(quán)利要求10所述的集成電路設(shè)備,還包括: 發(fā)送環(huán)形緩沖器,其用于:響應(yīng)于發(fā)送寫入指針從所述第二電路接收數(shù)據(jù),并且響應(yīng)于發(fā)送讀取指針向所述第一電路傳送發(fā)送數(shù)據(jù),其中,所述發(fā)送寫入指針與所述第二定時基準(zhǔn)同步,并且所述發(fā)送讀取指針與所述第一定時基準(zhǔn)同步。
12.根據(jù)權(quán)利要求10所述的集成電路設(shè)備,其中,所述第一電路包括脈沖編碼調(diào)制(PCM)控制器,并且所述第二電路包括軟DSP電路。
13.根據(jù)權(quán)利要求10所述的集成電路設(shè)備,其中,所述第一定時基準(zhǔn)是從與所述第一電路相關(guān)聯(lián)的數(shù)據(jù)恢復(fù)的所恢復(fù)的時鐘信號,并且所述第二定時基準(zhǔn)包括本地時鐘信號。
14.根據(jù)權(quán)利要求10所述的集成電路設(shè)備,其中,所述第二電路包括: 邏輯單元,其可操作為檢測所述發(fā)送讀取指針和所述發(fā)送寫入指針之間的所述相對位置以及基于在所述發(fā)送讀取指針和所述發(fā)送寫入指針之間檢測到的延遲的閾值水平對所述相對位置進行自適應(yīng)調(diào)整。
15.根據(jù)權(quán)利要求14所述的集成電路設(shè)備,其中,所述第二電路展示相對于所述第一電路的延時,并且所述自適應(yīng)調(diào)整重新安排所述發(fā)送讀取指針和所述發(fā)送寫入指針之間的所述相對間距以匹配所述延時。
【文檔編號】G06F13/28GK104380273SQ201280074005
【公開日】2015年2月25日 申請日期:2012年6月18日 優(yōu)先權(quán)日:2012年6月18日
【發(fā)明者】周明東, 傅光寧, 鄔聞嘉 申請人:高通股份有限公司