专利名称:流欠载/过载的恢复的制作方法
背景音频编解码器可以向音频控制器提供比该音频控制器被编程为可接受的采样数量更多的采样。如果该音频控制器不能接受这些额外的采样,则所述额外的采样可能会由于过载(over-run)而丢失。相反地,如果音频编解码器向音频控制器提供比该音频控制器被编程为可接受的数据量要少的数据,则该音频控制器可能会由于欠载(under-run)而将来自所述音频编解码器的其他数据解释为一个或更多个采样。欠载和过载这两种情况都可能导致音频质量降低和/或错误的情况。
在附图中以示例性而非限定性的方式图示说明了这里所描述的发明。为了图示说明的简单和明晰,图中的要素没有必要按比例绘制。例如,为了清晰,一些要素的尺寸可能相对于其他要素被夸大。此外,在被认为适当的地方,在这些图中重复了参考标号,以指示对应或者类似的要素。
图1示出具有音频控制器的计算设备的实施方案。
图2示出由图1的音频控制器所传输的帧的实施方案。
图3示出图1的音频控制器的流量(flow)控制方法的实施方案。
具体实施例方式
以下内容描述了数据流技术。在以下描述中,阐述了大量具体的细节,例如逻辑实现、操作码、指定操作数的方式、资源划分/共享/复制的实现、系统组件的类型和相互关系、以及逻辑划分/综合选择,以便提供对本发明更完整的理解。然而,本领域的技术人员将会理解,没有这些具体的细节也可以实现本发明。此外,没有详细地示出控制结构、门级电路和全部软件指令序列,以免模糊了本发明。本领域的普通技术人员利用所包括的描述,无需非常规的试验(undue experimentation)就能够实现适当的功能。
在说明书中提及“一种实施方案”、“实施方案”、“一种示例性的实施方案”等都是指所描述的实施方案可以包括具体的特点、结构或特性,但是并非每种实施方案都一定要包括所述具体的特点、结构或特性。而且,这些短语不一定是指同一种实施方案。此外,当关于某种实施方案来描述具体的特点、结构或特性时,认为无论是否明确地指出,本领域的技术人员在其知识范围内都可以结合其他实施方案来实现这种特点、结构或特性。
可以用硬件、固件、软件或它们的组合来实现本发明的实施方案。本发明的实施方案也可以实现为存储在机器可读介质上的指令,这些指令可被一个或更多个处理器读取并执行。机器可读介质可以包括用于存储或发送机器(例如计算设备)可读形式的信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如载波、红外线信号、数字信号等),以及其他介质。
图1中示出计算设备100的实施方案。计算设备可以包括处理器100和经由处理器总线104相互耦合的芯片组102。芯片组102可以包括一个或更多个集成电路封装(package)或芯片,所述集成电路封装或芯片将处理器100耦合到存储器106和音频控制器108。芯片组102还可以经由一条或更多条总线112将处理器耦合到计算设备的其他组件110(例如BIOS固件、键盘、鼠标、存储设备、网络接口等等)。在一个实施方案中,芯片组102可以包括存储器控制器114,以经由存储器总线116访问存储器106。存储器控制器114可以响应于与处理器100、音频控制器108以及计算设备的其他组件110相关联的存储器事务(transaction),对存储器106进行访问。此外,存储器106可以包括提供可寻址存储位置的各种存储器件,存储器控制器114可以从所述可寻址位置读取数据,或是向所述可寻址位置写入数据。特别地,存储器106可以包括一种或更多种不同种类的存储设备,例如DRAM(动态随机访问存储器)设备、SDRAM(同步DRAM)设备、DDR(双倍数据率)SDRAM设备,或其他存储设备。
音频控制器108可以控制存储器106和音频编解码器118之间的数据流量。音频控制器108可以集成在芯片组102中。然而,如所描绘的,音频控制器108也可以从芯片组102中分离出来。在这样的实施方案中,音频控制器108可以包括总线接口120、链路控制器122,以及一个或更多个DMA(直接存储器访问)控制器124。音频控制器108的总线接口120可以将音频控制器108耦合到芯片组102的总线接口120,从而成为音频控制器108到存储器106的接口,所述存储器106耦合到芯片组102的存储器控制器114。
通过控制音频控制器108和编解码器118之间的链路,链路控制器122可以为音频控制器108提供到音频总线126以及耦合到音频总线126的编解码器118的接口。在一个实施方案中,音频总线126可以包括一个或更多个从每个编解码器118到音频控制器108的点对点串行输入链路。音频总线126还可以包括从音频控制器108到编解码器118的广播串行输出链路。链路控制器122可以生成帧128,并且可以根据音频总线协议经由音频总线126的链路接收帧128。
在一个实施方案中,每个DMA控制器124可以由处理器100单独地编程,以在存储器106的缓存和一个或更多个编解码器118之间引流(stream)数据。音频编解码器118可以与结合在计算设备中和/或以别的方式耦合到计算设备的声卡、调制解调器、传真机、音频捕捉设备等相对应。在一个实施方案中,音频编解码器118可以集成到芯片组102中,可以安装在计算设备的主板上,可以安装在耦合到计算设备的附加卡(add-in card)上,和/或可以是耦合到计算设备的接口端口(未示出)的外部设备(例如坞站(docking station)、音频混频器等)的一部分。
如图2中所示出,链路控制器122可以通过帧128从编解码器118接收音频流,所述帧128是由音频总线控制链路的控制信号130和音频总线串行数据输入链路的数据信号132所定义。特别地,控制信号130可以包括帧同步134,以指示帧128的开始。如所示出的,帧128可以包括命令/响应136、一个或更多个流标签(tag)、一个或更多个分组(packet)140以及可选的空字段(null field)142。命令/响应136可以包括请求帧128的接收者执行一些动作的命令,和/或可以包括对之前帧128的命令的响应。
一般来说,流标签138可以指示分组140的开始,可以标示该分组140与哪个流相关联,并且可以指示分组140的长度。在一个实施方案中,帧128的每个流标签138可以包括流标识符(ID)144,所述流标识符指示该分组140与哪个流相关联。此外,每个流标签138可以包括实际分组长度146,所述实际分组长度指示后续分组140的长度(例如字节(byte)的数量)。流标签138可以允许编解码器118在单个帧128内传输多个流和/或单个流的多个分组140。此外,空字段142可以包括填充(pad)位/字节,它们将帧128扩展到固定长度或是某个帧单元长度的倍数。在另一个实施方案中,空字段142可以与音频链路的静止(quiescent)时段相关联,在该静止时段中没有数据被传送。
如所示出的,每个分组140可以包括一个或更多个采样块148和可选空填充(null pad)150。空填充150可以将分组140填充到固定的分组长度或填充到某个帧单元长度的倍数。在另一个实施方案中,空填充150可以与音频链路的静止时段相关联,在该静止时段中没有数据被传送。分组140的每个采样块148可以包括用于多条通道(channel)中每条通道的单独的采样。例如,立体声采样块148可以包括右通道采样152和左通道采样152,所述左、右通道采样与在立体声音频信号期间的相同采样点相关联。类似地,5.1采样块148可以包括中间通道采样152、前右通道采样152、前左通道采样152、后右通道采样152、后右通道采样152以及低音通道采样152,所有这些采样都与在5.1通道音频信号期间的相同采样点相关联。
在一个实施方案中,处理器100可以以要从编解码器118传输到存储器106的缓冲区(buffer)的流的特性来编程音频控制器108。特别地,处理器100可以向该流分配DMA控制器124,可以设置采样长度(例如每个采样152的位的数量),可以设置采样块长度(例如每个采样块148的字节数量或采样152的数量),并且可以设置预期的分组长度(例如每个分组140的采样块数量或字节数量),以指示在每个分组140中编解码器118的预期发送量。
在这样的环境中,如果编解码器118发送分组140,所述分组140具有的实际分组长度146大于音频控制器118被配置为可接受的预期分组长度,则可能发生过载。在一个实施方案中,音频控制器108可以通过接受分组140的附加采样块148来从上述过载中恢复过来,因为所述附加采样块148是分组140的有效采样块148。如果编解码器118发送分组140,该分组140具有的实际分组长度146是采样块长度的非整数倍,则也可能发生过载/欠载。在一个实施方案中,音频控制器可以通过丢弃或抛弃任何不完整的(partial)采样块148来从过载/欠载状况中恢复过来。此外,如果编解码器118发送分组140,该分组140具有的实际分组长度146小于音频控制器124被配置为可接受的预期分组长度,则可能发生欠载。在一个实施方案中,音频控制器124可以通过仅接受分组140的已发送采样块148来从上述欠载中恢复过来,因为已发送采样块148是分组140仅有的有效采样块148。
图3中所示为音频控制器108从流过载和/或欠载中恢复的方法的实施方案。在方框200,处理器100可以编程音频控制器108,和/或音频控制器108可以另外配置为处理编解码器118的音频流。在一个实施方案中,处理器100可以通过向链路控制器122和/或DMA控制器124提供流的流ID 144,从而将该流分配给音频控制器108的DMA控制器124。此外,处理器100可以向链路控制器和/或DMA控制器124提供流的采样长度、采样块长度以及预期分组长度。
在方框202,音频控制器108可以从编解码器118接收流标签138,所述流标签138具有流ID 144,以及指示与该流标签138相关联的分组的字节数量的实际分组长度146。在方框204中,链路控制器122可以基于接收的实际分组长度146更新TBR(将要被接收)值。在一个实施方案中,链路控制器122可以通过将TBR值设置为等于接收的实际分组长度146来更新TBR值,从而指示将要被接收的分组140的字节数量。
在方框206,链路控制器可以确定是否已达到分组140的终点(end)。在一个实施方案中,链路控制器122可以基于用于该分组140的TBR值来确定已达到分组140的终点。特别地,响应于TBR值与分组终点值(例如0)具有预定关系(例如小于或等于),链路控制器122可以确定已达到分组140的终点。链路控制器122还可以响应于检测到以信号通知(signal)另一帧128开始的帧同步134和/或以信号通知帧128的另一分组开始的流标签138,确定己达到分组140的终点。
在方框208,响应于检测到分组140的终点,链路控制器122可以使分配给接收的分组140的流的DMA控制器124将接收的完整采样块148传输到存储器106的缓冲区。如所描绘的,DMA控制器124可以在向存储器106传输完整采样块148之前等待,直到流的终点,这可以提高向存储器106的传输效率。然而,在其他实施方案中,DMA控制器124可以更频繁地向存储器106传输完整的采样块148,以减少接收到完整采样块148的时刻与可在存储器106中获得所述完整采样块148的时刻之间的延时(latency)。
然而,如果链路控制器122没有检测到分组140的终点,则在方框210中,链路控制器122可以确定是否还有分组140的一个或更多个额外的完整采样块148将可以被接收。在一个实施方案中,链路控制器122可以基于TBR值确定可以被接收的额外的完整采样块148。特别地,音频控制器可以响应于确定TBR值与分组140的采样块长度具有预定的关系(例如,小于或等于),来确定分组140的额外完整采样块148可以被接收。在方框212,响应于确定额外完整采样块148不被接收,链路控制器122可以通过在检测到分组140的终点之前抛弃任何接收的分组数据来抛弃不完整的采样块。在一个实施方案中,响应于检测到以信号通知下一帧128开始的帧同步134、以信号通知帧128的另一分组140开始的流标签138或指示当前分组140终点的TBR值,链路控制器122可以确定已达到分组140的终点。
在方框214,链路控制器122可以缓冲从音频编解码器118接收的数据,并且可以针对同步事件(例如帧同步)监测控制信号130。在方框216,链路控制器122可以确定是否已接收到完整的采样块148。在一个实施方案中,链路控制器122可以将具有已定义字节数量的采样块148分类为完整采样块148,并且将具有字节数量比已定义字节数量少的采样块148分类为不完整采样块。在方框218,响应于确定已经接收到完整采样块148,DMA控制器124可以接受完整的采样块148,并且可以相应地更新TBR值。在一个实施方案中,DMA控制器124可以通过从TBR值中减去采样块长度或完整采样块148的字节数量来更新TBR值。接着,DMA控制器124可以返回到方框206,以确定是否已达到分组140的终点。响应于确定到此时仅仅已接收到不完整采样块148,DMA控制器124可以返回到方框214,以接收采样块148的剩余部分。
参照示例性的实施方案描述了本发明的某些特征。然而,这些描述不想被解释为限定性的。示例性实施方案的各种修改以及本发明的其他实施方案(它们对本发明所属领域的技术人员来说是很明显的)被视为落在本发明的精神和范围内。
权利要求
1.一种方法,包括接收包括流的一个或更多个采样块的分组,以及在检测到所述分组的终点后,抛弃剩余的所述分组的任何不完整采样块。
2.如权利要求1所述的方法,还包括接收所述分组的实际分组长度,以及基于所述实际分组长度检测所述分组的所述终点。
3.如权利要求1所述的方法,还包括响应于接收所述流的同步信号,检测所述分组的所述终点。
4.如权利要求1所述的方法,还包括响应于检测所述流的另一个分组,检测所述分组的所述终点。
5.如权利要求1所述的方法,还包括接收指示所述分组的完整采样块数量的预期分组长度,接收指示所述分组的完整采样块数量的实际分组长度,以及尽管所述预期分组长度指示比所述实际分组长度更少的完整采样块数量,接受所述实际分组长度所指示的所述完整采样块数量。
6.如权利要求1所述的方法,还包括接收指示所述分组的完整采样块数量的预期分组长度,接收指示所述分组的完整采样块数量的实际分组长度,以及尽管所述预期分组长度指示比所述实际分组长度更多的完整采样块数量,仅接受所述实际分组长度所指示的所述完整采样块数量。
7.如权利要求1所述的方法,还包括仅仅向存储器的缓冲区传输所述分组的完整采样块。
8.如权利要求1所述的方法,还包括将任何具有的字节数比定义的字节数少的采样块分类为不完整的采样块。
9.一种装置,包括存储器接口,所述存储器接口用来访问存储器,链路控制器,所述链路控制器用来接收包括多个采样块的分组,并且用来抛弃所述分组的不完整采样块。直接存储器访问(DMA)控制器,所述DMA控制器用来从所述链路控制器接收完整采样块,并且用来通过所述存储器接口将所述完整采样块传输给所述存储器。
10.如权利要求9所述的装置,其中所述链路控制器还将任何具有的字节数比定义的字节数少的采样块分类为不完整的采样块。
11.如权利要求9所述的装置,其中所述链路控制器还接收所述分组的流标识符,以及响应于确定DMA控制器已经被配置为处理与所述流标识符相关联的流,向所述DMA控制器传输所述完整采样块。
12.如权利要求9所述的装置,其中所述链路控制器用预期分组长度进行配置,所述预期分组长度指示预期用于所述流的每个分组的完整采样块数量,接收指示所述分组的完整采样块数量的实际分组长度,以及尽管所述预期分组长度指示比所述实际分组长度更少的完整采样块数量,接受所述实际分组长度所指示的所述完整采样块数量。
13.如权利要求9所述的装置,其中所述链路控制器用预期分组长度进行配置,所述预期分组长度指示预期用于所述流的每个分组的完整采样块数量,接收指示所述分组的完整采样块数量的实际分组长度,以及尽管所述预期分组长度指示比所述实际分组长度更多的完整采样块数量,仅接受所述实际分组长度所指示的所述完整采样块数量。
14.如权利要求9所述的装置,其中所述分组的每个采样块至少包括第一音频通道的第一采样和第二音频通道的第二采样。
15.如权利要求14所述的装置,其中所述链路控制器将任何具有的字节数比定义的字节数少的采样块分类为不完整的采样块。
16.一种系统,所述系统包括处理器、存储器、音频控制器和音频编解码器,其中所述处理器通过向所述音频控制器提供所述音频编解码器的流的流标识符和所述流的采样块长度,配置所述音频控制器来处理所述流,以及响应于接收具有所述相关联的流标识符的分组,所述音频控制器基于所述流的所述采样块长度分类所述分组的采样块,向所述存储器传输被分类为完整采样块的采样块,并且抛弃被分类为不完整采样块的采样块。
17.如权利要求16所述的系统,其中所述音频控制器将具有的字节数比所述采样块长度锁定义的字节数少的采样块分类为不完整的采样块。
18.如权利要求16所述的系统,其中所述处理器在所述存储器内为所述流分配缓冲区,在所述存储器内为另一流分配另一缓冲区,并且配置所述音频控制器来处理所述另一流,以及所述音频控制器向所述流的所述缓冲区传输所述流的完整采样块,并且向所述另一流的所述另一缓冲区传输所述另一流的完整采样块。
19.如权利要求18所述的系统,其中所述音频控制器从所述音频编解码器接收所述流和所述另一流。
20.如权利要求18所述的系统,其中所述音频控制器从所述音频编解码器接收所述流,并且从另一音频编解码器接收所述另一流。
21.如权利要求16所述的系统,其中所述处理器还通过向所述音频控制器提供预期分组长度来为所述流配置所述音频控制器,所述预期分组长度指示预期用于所述流的每个分组的完整采样块数量,以及尽管所述预期分组长度指示比实际分组长度更少的完整采样块数量,所述音频控制器向所述存储器传输所述实际分组长度所指示的所述完整采样块数量。
22.如权利要求16所述的系统,其中所述处理器还通过向所述音频控制器提供预期分组长度来为所述流配置所述音频控制器,所述预期分组长度指示预期用于所述流的每个分组的完整采样块数量,以及尽管所述预期分组长度指示比实际分组长度更多的完整采样块数量,所述音频控制器仅向所述存储器传输所述实际分组长度所指示的所述完整采样块数量。
23.一种包括多条指令的机器可读介质,响应于所述多条指令被执行,导致设备将流的多个采样块分类为一个或更多个完整采样块,以及一个或更多个不完整采样块,以及仅向存储器传输所述分组的所述一个或更多个完整采样块。
24.如权利要求23所述的机器可读介质,其中响应于所述多条指令被执行,还导致所述设备丢弃所述分组的所述一个或更多个不完整采样块。
25.如权利要求24所述的机器可读介质,其中响应于所述多条指令被执行,还导致尽管流的预期分组长度指示比实际分组长度更少的完整采样块数量,所述设备传输所述流的分组的所述实际分组长度所定义的完整采样块数量。
26.如权利要求23所述的机器可读介质,其中响应于所述多条指令被执行,还导致尽管流的预期分组长度指示比实际分组长度更多的完整采样块数量,所述设备仅传输所述流的分组的所述实际分组长度所定义的完整采样块数量。
全文摘要
描述了用来从流欠载和/或过载状况中恢复的机器可读介质、方法和装置。在一些实施方案中,音频控制器可以抛弃所述流的任何不完整采样块。
文档编号G06F3/16GK1882910SQ200480034080
公开日2006年12月20日 申请日期2004年11月10日 优先权日2003年11月25日
发明者佐哈尔·博金, 布伦特·沙特兰德, 小阿瑟·亨特, 米希尔·沙赫 申请人:英特尔公司