基于环形缓冲器的数据的自适应偏移同步的制作方法

文档序号:6498674阅读:237来源:国知局
基于环形缓冲器的数据的自适应偏移同步的制作方法
【专利摘要】本文公开了一种用于同步第一电路和第二电路之间的操作的方法和装置。该方法涉及:将来自第一电路的接收数据以第一速率写入第一环形缓冲器。第一环形缓冲器具有固定长度的缓冲单元以及相应的读取缓冲器指针和写入缓冲器指针。将所缓冲的接收数据以第二数据速率从第一环形缓冲器读取到第二电路。检测读取缓冲器指针和写入缓冲器指针的各自的位置,并对读取指针和写入指针之间的相对位置进行动态调整以便至少实现预定的最小间距。动态调整包括向环形缓冲器选择性地添加或者从环形缓冲器选择性地删除数据的一些部分。
【专利说明】基于环形缓冲器的数据的自适应偏移同步

【技术领域】
[0001]概括地说,本文的实施例涉及数据通信,且更具体地说,涉及提供用于缓冲数据的流控制的方法和装置。

【背景技术】
[0002]由于很多因素,电路之间的数据传输常常变得不同步。例如,在IP语音(VOIP)应用中,模拟-数字编解码器(例如脉冲编码调制PCM编解码器)可以用与信号处理器可接受的不同的速率来生成数据。缓冲电路通常提供动态的方式来吸收和处理衰落以及在这样的电路之间传送的数据流。
[0003]一种典型的缓冲解决方案采用具有固定数量的缓冲单元的环形或圆形缓冲器。相应的读取和写入指针或索引跟踪可用的缓冲器存储容量。在一些情况下,缓冲器可能变满,从而导致对缓冲器中最旧数据的覆写。这些索引通过二者指向相同的缓冲单元位置来标识这个状态。当由于覆写而导致数据丢失时,可能造成系统中的噪声。
[0004]为了使覆写最小化,可以采用大的缓冲器配置。大的缓冲器能够处理例如PCM控制器与数字信号处理器(DSP)之间的操作中的各种延时。不幸的是,采用大的缓冲器导致系统延时和电路空间的相应增加。


【发明内容】

[0005]本文公开了一种用于同步第一电路和第二电路之间的操作的方法和装置。该方法涉及:以第一数据速率接收数据,以及缓冲数据。由具有固定长度的缓冲单元和相应的读取和写入缓冲器指示符的缓冲电路来处理缓冲。所缓冲的数据以第二数据速率被传送给第二电路。第二数据速率基于读取缓冲器指示符和写入缓冲器指示符之间实现的最小偏移。通过检测读取和写入缓冲器指示符的各自的位置,以及动态调整指示符之间的相对间距来处理偏移的实现,以至少保持最小偏移。

【专利附图】

【附图说明】
[0006]本文的实施例是通过举例的方式来说明的,并且并不旨在被附图中的示图所限制,其中:
[0007]图1是采用缓冲电路来提供数据的自适应偏移同步的系统的一个实施例的框图;
[0008]图2是说明图1的系统的一种操作模式中涉及的步骤的流程图;以及
[0009]图3说明了示出图1的系统的第二操作模式中涉及的步骤的流程图。

【具体实施方式】
[0010]根据本文的实施例,公开了用于同步第一电路和第二电路之间的操作的方法和装置。该方法包括:将来自第一电路的接收数据以第一速率写入第一环形缓冲器。缓冲器具有固定长度的缓冲单元以及相应的读取和写入缓冲器指示符。将所缓冲的接收数据以第二数据速率从环形缓冲器读取到第二电路。检测读取和写入缓冲器指示符的各自的位置,并对指示符之间的相对位置进行动态调整以便至少实现预定的最小间距。动态调整包括向环形缓冲器选择性地添加或者从环形缓冲器选择性地删除数据的一些部分。因此,可以使对缓冲数据的覆写最小化,同时也优化系统延时。
[0011]在下面的描述中,阐述了大量具体细节(例如,具体组件、电路和过程的例子)以提供对本公开内容的透彻理解。另外,在下面的描述中以及出于解释的目的,阐述了特定术语以提供对本文的实施例的透彻理解。然而,对于本领域技术人员将显而易见是,实践本文的实施例可以不需要这些具体细节。在其它实例中,为了避免使本公开内容不清楚,以框图形式示出了公知的电路和设备。如本文所使用的,术语“耦合”意指直接连接或者通过一个或多个中间组件或电路连接。在本文中描述的各条总线上提供的信号中的任何一个都可以与其它信号进行时间复用,并在一条或多条公共总线上提供。另外,电路元件或软件块之间的互连可以被示为总线或单条信号线。总线中的每条总线还可以是单条信号线,并且这些单条信号线中的每一条还可以是总线,并且单条线或总线可以表示用于组件之间通信的各种物理或逻辑机制中的任意一个或多个。本文的实施例不应该被解释为对本文中描述的具体例子的限制,而是包括由所附权利要求所定义的范围中的全部实施例。
[0012]更具体地,并总体上参照图1,示出了用于执行信号处理操作的集成电路(IC)设备102。在一个具体实施例中,信号处理涉及互联网协议语音(VOIP)通信。VOIP通信通常涉及:捕获模拟音频信号,对音频信号进行数字化和编码,以及以适于经由互联网进行传输的方式对经数字化的音频进行处理。经由VOIP的对话因此涉及:两个远程点之间的双向通信,以及与该通信相关联的往返延时。在一个具体实施例中,为了执行VOIP处理,IC设备102采用经由缓冲电路107与信号处理器106(例如数字信号处理器(DSP))交互的脉冲编码调制(PCM)控制器104。
[0013]进一步参照图1,在一个具体实施例中,集成电路设备102在耦合到数据I/O接口电路112的一个或多个管脚103处接收音频数据。接口电路112通常包括允许IC设备102与各种物理传输介质相对接的发送和接收电路(未示出)。虽然为了清楚起见仅示出了一个管脚103,但应当理解的是,可以采用多个接口管脚以并行或串行方案来传输数据。在一个实施例中,定时信息伴随所接收的音频数据,以形成恢复的时钟信号RCLK形式的定时基准。此外,虽然示出和描述了用于IC的有线数据接口,但还可以采用无线接口,并且在这样的情况下,接口会包括合适的RF调制电路并关联天线电路。
[0014]接口 112耦合到PCM控制器104以实现所接收的音频信号的模数转换,以及由信号处理器106处理并且从信号处理器106发送的信号的数模转换。PCM控制器只是对音频信号进行编码的一种方式,但是多种不同的编码算法可以被采用。相应的模数转换器(ADC)和数模转换器(DAC)(未示出)执行如本领域技术人员公知的信号转换。PCM控制器104通常以相对于所恢复的时钟信号RCLK —致的数据速率进行操作,并对经由接口 112传输的接收Rx和发送Tx数据执行模数和数模转换。虽然PCM控制器104被示出和描述为布置在IC设备102上,但其可以位于单独的IC设备上并被封装在一起,或者与信号处理器106相分离。
[0015]信号处理器106可以采取若干形式中的一种形式,包括专用数字信号处理器(DSP)或基于主机的软DSP。信号处理器106可以由片上时钟(未不出)生成的本地时钟信号CLK来提供时钟,并以与PCM控制器104的速率类似的速率来进行操作。然而,由于偶然的优先级冲突,信号处理器106可能无法与PCM控制器104同步。
[0016]进一步参照图1,缓冲电路107被置于PCM控制器104与信号处理器106之间,以便处理它们之间的数据速率的不匹配。在一个实施例中,缓冲电路107包括采取环形缓冲器形式的相应的接收缓冲器108和发送缓冲器110。每个环形缓冲器可以包括固定数量的缓冲存储单元111和相应的读取和写入索引或指针。接收缓冲器108因此采用接收读取指针RIRx和接收写入指针WIRx,而发送缓冲器110采用发送读取指针RITx和发送写入指针WITx0
[0017]对于接收缓冲器108来说,接收读取指针RIRx通过其指针位置来指示多少数据已经被传送给了信号处理器106。这个位置的指示可以采取计数的形式,该计数表示将要在下一个读取操作中读取的缓冲存储单元111的地址。在一个实施例中,接收读取指针RIRx对作为其读取操作的定时基准的本地时钟信号CLK进行响应。换言之,接收读取指针RIRx使用作为其定时基准的本地时钟CLK来递增到其下一个单元位置,以便在每一个时钟周期读取该单元的内容。
[0018]另一方面,接收缓冲器108的接收写入指针WIRx使用所恢复的时钟信号RCLK作为其定时信号,并通过与接收读取指针RIRx类似的计数值来指示多少数据已经被装载进接收缓冲器108。当读取和写入指针指示在相同接收缓冲存储单元处的各自的位置时,被写入缓冲器的数据的量与从该缓冲器读取的数据的量相匹配,从而指示满的缓冲器。因此,在没有更多缓冲器容量的情况下,任何进一步的写入操作都将覆写现有数据。
[0019]以使PCM控制器104与信号处理器106之间的数据质量和同步最大化的方式,将用于向接收缓冲器108和发送缓冲器110的读取和写入索引提供时钟的定时基准配置在所恢复的时钟RCLK与本地时钟CLK之间。为此,接收缓冲器108的接收写入指针WlRx和发送缓冲器110的发送读取指针RlTx由所恢复的时钟RCLK提供时钟,同时接收缓冲器108的接收读取指针RlRx和发送缓冲器110的发送写入指针WlTx由本地时钟CLK提供时钟。
[0020]为了尽力避免覆写但仍使缓冲器尺寸和延时最小化,在一个实施例中,信号处理器106以监测和检测每个环形缓冲器的读取和写入指针之间的相对间距的模式来操作。基于该检测,信号处理器106在读取和写入指针之间实现最小间距,以使缓冲器覆写现有数据的情况最少。“间距”因此表示在覆写发生之前可由缓冲电路107吸收的值得异步操作的读取/写入周期的数量。
[0021]信号处理器106还以第二模式操作,第二模式对可能极大地影响音频传输之间的服务质量的PCM控制器104与信号处理器106之间的不期望的延时进行检测。作为响应,信号处理器106对发送缓冲器读取指针RITx和写入指针WITx之间的间距进行自适应调整,以匹配信号处理器106的延时。尽管数据可能在调整过程中丢失,但仍然执行该操作。因此,不仅可以避免覆写,而且可以达到PCM控制器104与信号处理器106之间的最优级别的同步。
[0022]图2说明了陈述与上面提到的操作的第一操作模式相对应的操作方法的步骤的流程图。在步骤202处,在VOIP通信期间,音频数据被IC设备102在接口 112处接收到,并被馈送到PCM控制器104以便于以对应于从所接收的音频数据恢复的时钟信号RCLK的速率来进行PCM编码。然后,在步骤204处,将经PCM编码的数据以所恢复的时钟RCLK指定的速率写入接收缓冲器108中由接收写入指针WIRx指示的位置处。然后,在步骤206处,以本地时钟速率CLK将之前写入的缓冲数据从接收缓冲器108读入信号处理器106。在步骤208处,信号处理器106通过首先确定写入和读取指针是否实际上展示了最小间距(通过写入和读取指针计数的比较等等)来实现写入和读取指针之间的最小间距。如果计数反映了正确的最小间距,则更多的数据通过缓冲器进行循环,循环开始于步骤202。然而,如果计数反映了比所期望的阈值更小的偏移,则在步骤210处,相对于彼此对指针进行调整以便达到该偏移。在该点处,该方法可以迭代回202处的数据接收步骤,或者参与解决PCM控制器104与信号处理器106之间的延时的进一步的模式(经由气泡“A”)。
[0023]现在参照图3,PCM控制器104与信号处理器106之间的不期望的延时可以通过在302处检测电路之间的操作中的延时或延迟,以及在步骤304处确定是否超过了延时阈值来补偿。极大的延时可能导致除了例如由缓冲器覆写导致的周期性丢失数据问题之外的重大质量问题。如果延时阈值在限制之内,则操作再继续(经由气泡“B”)进行图2的数据接收步骤。
[0024]然而,如果在步骤304处,超过了延时阈值,则在步骤306处,对发送缓冲器读取和写入指针的相对位置进行自适应调整以匹配处理器延时。在一个实施例中,这是通过以迭代的方式对发送写入指针WITx的位置进行调整直到延时落入限制之内来执行的。在一些实例中,这可能由于发送写入指针WITx的自适应调整而导致位于删除的缓冲单元位置中的数据的暂时性数据丢失。虽然丢失数据与传统观点相反,但已确定其与保持数据和容忍延时相比更利于最优服务质量。
[0025]本领域技术人员应当意识到由本文描述的实施例所提供的益处和优点。通过提供能够实现最小读取和写入指针偏移的第一操作模式,可以使由于缓冲器覆写而导致的数据丢失最小化。还通过提供用于基于延时考虑来对发送指针进行自适应调整的第二操作模式,可以达到最优服务质量。
[0026]在前述说明中,已经参考具体的示例性实施例对本文的实施例进行了描述。然而,显而易见的是,在不脱离如所附权利要求书中阐述的本公开内容的更宽广的精神和范围的前提下,可以对其进行各种修改和改变。例如,本文提供的描述的大部分涉及VOIP背景中的音频数据同步。然而,多种应用可以从本文的教导受益,包括基于视频的数据应用、基本网络数据传输应用等等。因此,本说明和附图应当被视为是说明性的而不是限制性的。
【权利要求】
1.一种用于同步第一电路和第二电路之间的操作的方法,所述方法包括: 以第一速率将来自所述第一电路的数据写入第一环形缓冲器,所述第一环形缓冲器具有固定长度的缓冲单元以及相应的读取缓冲器指示符和写入缓冲器指示符; 以第二数据速率将来自所述第一环形缓冲器的所缓冲的数据读取到所述第二电路; 检测所述读取缓冲器指示符和所述写入缓冲器指示符的各自的位置;以及 对所述指示符之间的相对位置进行动态调整以便至少实现预定的最小间距,其中,所述动态调整包括:向所述第一环形缓冲器选择性地添加或者从所述第一环形缓冲器选择性地删除所述数据的一些部分。
2.根据权利要求1所述的方法,还包括: 以所述第二数据速率将来自所述第二电路的发送数据写入第二环形缓冲器,所述第二环形缓冲器具有相应的写入指针和读取指针; 以所述第一数据速率将来自所述第二环形缓冲器的所缓冲的发送数据读取到所述第一电路;以及 基于延迟参数来自适应地调整所述第二环形缓冲器读取指针和写入指针的位置。
3.根据权利要求2所述的方法,其中,所述延迟参数包括所述第二电路相对于所述第一电路的操作延时,并且自适应调整包括:对所述第二环形缓冲器读取指针和写入指针之间的所述相对位置进行自适应调整以匹配所述延时。
4.根据权利要求3所述的方法,其中,所述第二环形缓冲器的所述写入指针响应于与所述第二电路相关联的第一定时基准,并且所述第二环形缓冲器的所述读取指针响应于与所述第一电路相关联的第二定时基准。
5.根据权利要求4所述的方法,其中,所述第一定时基准与所述第二定时基准之间的相位差与所述延时相对应。
6.根据权利要求4所述的方法,其中,所述第一定时基准包括利用由所述第一电路接收的数据恢复的时钟,并且所述第二定时基准包括向所述第二电路提供时钟的本地时钟。
7.一种用于对关联于第一定时基准的音频编解码电路和关联于第二定时基准的信号处理器之间的操作进行同步的方法,所述方法包括: 在第一模式中,在相应的接收缓冲电路和发送缓冲电路的写入指针和读取指针之间实现最小定时偏移,所述接收缓冲电路和所述发送缓冲电路置于所述音频编解码电路与所述信号处理器之间的相应接收路径和发送路径之间;以及 在第二模式中,对所述发送缓冲电路的所述读取指针和所述写入指针之间的定时偏移进行自适应调整,以匹配由所述信号处理器相对于所述音频编解码电路展示的延时。
8.根据权利要求7所述的方法,其中,所述发送缓冲电路的所述写入指针响应于所述第二定时基准,并且所述发送缓冲电路的所述读取指针响应于所述第一定时基准。
9.根据权利要求8所述的方法,其中,所述第一定时基准包括从与所述音频编解码电路相关联的数据恢复的时钟,并且所述第二定时基准包括向所述信号处理器提供时钟的本地时钟。
10.一种集成电路设备,其包括: 第一电路,其响应于第一定时基准; 第二电路,其响应于第二定时基准;以及 缓冲电路,其包括可操作为响应于接收写入指针从所述第一电路接收数据的接收环形缓冲器,所述接收环形缓冲器可操作为响应于接收读取指针向所述第二电路传送数据; 其中,所述第二电路对所述接收读取指针和所述接收写入指针之间的相对位置进行调整,以便在它们之间实现预定的最小间距。
11.根据权利要求10所述的集成电路设备,还包括: 发送环形缓冲器,其用于:响应于发送写入指针从所述第二电路接收数据,并且响应于发送读取指针向所述第一电路传送发送数据,其中,所述发送写入指针与所述第二定时基准同步,并且所述发送读取指针与所述第一定时基准同步。
12.根据权利要求10所述的集成电路设备,其中,所述第一电路包括脉冲编码调制(PCM)控制器,并且所述第二电路包括软DSP电路。
13.根据权利要求10所述的集成电路设备,其中,所述第一定时基准是从与所述第一电路相关联的数据恢复的所恢复的时钟信号,并且所述第二定时基准包括本地时钟信号。
14.根据权利要求10所述的集成电路设备,其中,所述第二电路包括: 逻辑单元,其可操作为检测所述发送读取指针和所述发送写入指针之间的所述相对位置以及基于在所述发送读取指针和所述发送写入指针之间检测到的延迟的阈值水平对所述相对位置进行自适应调整。
15.根据权利要求14所述的集成电路设备,其中,所述第二电路展示相对于所述第一电路的延时,并且所述自适应调整重新安排所述发送读取指针和所述发送写入指针之间的所述相对间距以匹配所述延时。
【文档编号】G06F13/28GK104380273SQ201280074005
【公开日】2015年2月25日 申请日期:2012年6月18日 优先权日:2012年6月18日
【发明者】周明东, 傅光宁, 邬闻嘉 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1