同步装置的制作方法

文档序号:12133363阅读:179来源:国知局
同步装置的制作方法

本发明涉及同步装置。



背景技术:

对于执行时间敏感任务而言,计算机和通信系统的时间同步是重要的。装置之间缺乏同步可能导致各种问题。例如,在无线媒体系统中,系统中的不同媒体播出装置(例如,扬声器)之间缺乏同步可能导致媒体回放不同步。准确同步至关重要的其它时间敏感任务包括同步用于通信的时间(例如,在时分多址通信系统中)、准确时间戳记(例如,对于高频交易而言)、针对全球导航卫星系统的定时等。

装置之间缺乏同步可能是由在那些装置处运行的时钟之间的微小差异造成的。甚至当时钟最初被准确地设置时,它们也将由于时钟漂移导致的在一定时间量之后不同,时钟漂移可能是由例如时钟以稍微不同的速率对时间进行计数、诸如温度差的环境因素、相对论效应等造成的。同步多个装置的当前方法涉及使用软件连续地监测那些装置的时钟之间的时间差,并且然后更新时钟源(例如,锁相环)。这种连续监测要求处理器被不断地通电,这耗尽电力。此外,更新特定时钟源(诸如,锁相环)还要求一些额外时间来稳定时钟。因此,需要一种同步装置的改进方式。



技术实现要素:

根据第一方面,提供了一种用于估计第一信号与第二信号之间的时间差的电路,该电路包括:第一信号线,其用于接收所述第一信号;延迟单元,其被构造成接收所述第二信号并且延迟所述第二信号,以提供所述第二信号的多个延迟版本,每个延迟版本被延迟与其它延迟版本不同的延迟量;比较单元,其被构造成将所述第二信号的每个延迟版本与所述第一信号进行比较,以识别所述第二信号的哪个延迟版本是与所述第一信号在时间上最接近匹配的信号;以及差估计器,其被构造成根据所识别的延迟版本来估计所述第一信号与所述第二信号之间的时间差。

所述第一信号与所述第二信号之间的所估计的时间差可以是所述最接近匹配的延迟信号被延迟的延迟量。

所述延迟单元可以包括一系列延迟信号线,每条延迟信号线联接到所述第二信号线并且被构造成将所述第二信号延迟与其它延迟信号线不同的延迟量,以提供所述第二信号的所述多个延迟版本。

所述比较单元可以被构造成,当所述第一信号从第一状态转变到第二状态时,将每条所述延迟信号线处的信号与所述第一信号进行比较。

每条延迟线可以包括多个缓冲器,针对每条延迟线的缓冲器的数量不同于针对其它延迟线的缓冲器的数量,每个缓冲器被构造成将所述第二信号延迟预定时间量。

所述延迟单元可以被构造成提供所述第二信号的n个延迟版本,其中,针对所述第二信号的第i个延迟版本的延迟是delay(i)=iT,其中,i=1、2、3…n并且T是预定时间量。

所述电路还可以包括:第二信号线,其用于接收所述第二信号;第二延迟单元,其被构造成接收所述第一信号并且将所述第一信号延迟多个延迟,以提供所述第一信号的多个延迟版本,所述第一信号的每个延迟版本被延迟与其它延迟版本不同的延迟量;以及第二比较单元,其被构造成将所述第一信号的每个延迟版本与所述第二信号进行比较,其中,所述差估计器被构造成选择所述比较单元或所述第二比较单元以用于估计所述第一信号与所述第二信号之间的时间差。

所述第一信号可以是根据第一时钟生成的时间标记并且所述第二信号可以是根据第二时钟生成的时间标记。

所述时间差可以小于所述第一时钟或所述第二时钟的时钟周期。

根据第二方面,提供了一种估计第一信号与第二信号之间的时间差的方法,所述方法包括:在第一信号线处接收所述第一信号;接收所述第二信号并且延迟所述第二信号,以提供所述第二信号的多个延迟版本,每个延迟版本被延迟与其它延迟版本不同的延迟量;将所述第二信号的每个延迟版本与所述第一信号进行比较,以识别所述第二信号的哪个延迟版本是与所述第一信号在时间上最接近匹配的信号;以及根据所识别的延迟版本估计所述第一信号与所述第二信号之间的时间差。

所述第一信号与所述第二信号之间的所估计的时间差可以是所述最接近匹配的延迟信号被延迟的延迟量。

所述第二信号可以在延迟单元处被延迟,所述延迟单元包括一系列延迟信号线,每条延迟信号线被构造成将所述第二信号延迟与其它延迟信号线不同的延迟量,以提供所述第二信号的多个延迟版本。

比较步骤可以包括当所述第一信号从第一状态转变到第二状态时,将每条所述延迟信号线处的信号与所述第一信号进行比较。

每条延迟线可以包括多个缓冲器,针对每条延迟线的缓冲器的数量不同于针对其它延迟线的缓冲器的数量,每个缓冲器被构造成将所述第二信号延迟预定时间量。

所述延迟可以包括提供所述第二信号的n个延迟版本,其中,针对所述第二信号的第i个延迟版本的延迟是delay(i)=iT,其中,i=1、2、3…n并且T是预定时间量。

所述方法还可以包括:将所述第一信号延迟多个延迟,以提供所述第一信号的多个延迟版本,所述第一信号的每个延迟版本被延迟与其它延迟版本不同的延迟量;以及将所述第一信号的每个延迟版本与所述第二信号进行比较,以识别所述第一信号的哪个延迟版本是与所述第一信号在时间上最接近匹配的信号,根据第一信号或第二信号的所识别的延迟版本估计所述第一信号与所述第二信号之间的时间差。

所述第一信号可以是根据第一时钟生成的时间标记并且所述第二信号是根据第二时钟生成的时间标记。

所述时间差可以小于所述第一时钟或所述第二时钟的时钟周期。

根据第三方面,提供了一种定义上述电路的计算机程序代码,由此可以制造所述电路。

根据第四方面,提供了一种其上存储有计算机可读指令的非暂时性计算机可读存储介质,当所述计算机可读指令在用于生成集成电路的显示(manifestation)的计算机系统处被处理时,致使所述计算机系统生成上述电路的显示。

根据第五方面,提供了一种用于执行上述方法的计算机程序代码。

根据第六方面,提供了一种其上存储有计算机可读指令的非暂时性计算机可读存储介质,当所述计算机可读指令在计算机系统处被执行时,致使所述计算机系统执行上述方法。

附图说明

现在,将通过参照附图举例说明来描述本发明。在附图中:

图1示出包括集线器装置和远程装置的示例系统;

图2示出控制器的示例示意图;

图3示出时间标记的示例;

图4a示出时间比较单元的示例示意图;

图4b示出用于确定两个时间标记之间的时间差的示例;

图4c示出用于确定两个时间标记之间的时间差的另一个示例;

图4d示出用于确定两个时间标记之间的时间差的又一个示例;

图5示出比较时间标记的示例;

图6示出比较时间标记的另一个示例;

图7示出延迟时钟信号的示例;

图8示出分数时钟信号修改器的示例电路;

图9示出多路复用器单元的示例电路;

图10示出修改时钟信号的示例;

图11示出在时钟信号中添加并且去除时间的示例;以及

图12示出修改时钟信号的示例处理。

具体实施方式

以下描述被提出以使本领域任何人员能够得到并且使用本发明,并且在特定应用环境中被提供。对所公开的实施方式的各种修改对于本领域技术人员将是显而易见的。

可以在不脱离本发明的精神和范围的情况下,将在此定义的总体原理应用至其它实施方式和应用。因此,本发明不旨在限于所示出的实施方式,而是符合与在此公开的原理和特征一致的最广范围。

本公开涉及同步装置。例如,一个装置可能需要与另一个装置同步,使得可以在那些装置处同时发生指定事件。在另一个示例中,装置中的组件可能需要与相同装置中的另一个组件同步。另外,装置处的每个组件可能需要与另一个装置处的多个组件同步。在此描述的示例涉及同步媒体装置,使得媒体可以在每个媒体装置中被同步地播放。执行其它时间关键任务的其它类型的装置(例如,计算机、通信装置、定位装置等)可以以类似方式同步。

图1描绘了包括集线器装置101和一个或更多个远程装置102和103的示例媒体系统100。集线器装置101包括媒体控制器106,媒体控制器106用于控制将由远程装置102和103输出的媒体。集线器装置101可以是例如智能电话、平板、PC、膝上型计算机、智能手表、智能眼镜、扬声器、智能TV、AV接收器、混合器、游戏控制台、游戏控制器、媒体集线器、机顶盒、Hi-FI等。集线器装置101可以包括或连接到媒体源(未示出)。媒体源可以是例如内部存储装置(例如,闪存、硬盘)、可移除存储装置(例如,存储卡、CD)、联网存储装置(例如,网络驱动器或云)、互联网媒体提供商(例如,流服务)、无线电(例如,DAB)、麦克风等。

每个远程装置102和103分别包括(或连接到)用于播放媒体的媒体播放器107b和107c。集线器101可以要求媒体播放器107b和107c同步播出媒体。媒体播放器107b和107c中的每个可以向媒体输出(诸如,扬声器、显示器、振动反馈电机、灯等)提供媒体。集线器装置101还可以包括用于同步播放媒体的媒体播放器和输出(未示出)。每个媒体播放器107b和107c可以分别连接到无线通信装置104b和104c,以接收用于回放的媒体或者接收播出特定媒体的指令。媒体播放器107b和107c还可以分别从连接到装置102和103的其它媒体源(未示出)接收媒体。远程装置102和103可以是例如独立扬声器或显示器或者被集成到其它装置(诸如,智能电话、TV、对接站、Hi-Fi、智能手表、智能眼镜、虚拟现实头盔等)中。

每个装置101至103可以分别包括用于彼此通信的通信装置104a至104c。每个通信装置104a至104c可以分别包括提供针对该通信装置的定时的时钟105a至105c。每个通信装置104a至104c可以使用其时钟以例如协调装置之间的通信(例如,协调用于接收和发送数据的时间)。在该示例中,通信装置104a至104c是根据Wi-Fi协议进行通信的装置。然而,通信装置104a至104c可以是任何其它合适类型的有线或无线通信装置(诸如,Bluetooth、以太网、USB、Zigbee、LTE、I2S、S/PDIF等)。

在Wi-Fi示例中,时钟105a至105c可以是被用作用于Wi-Fi通信的定时源的物理层时钟。Wi-Fi标准提供由接入点(AP)周期性地广播到每个站(STA)的定时信标(时间同步函数TSF)。要求TSF由接收机处理,接收机根据TSF重置其自身时钟。因此,物理层时钟105a至150c可以使用TSF进行同步。在图1的示例中,集线器装置101或远程装置102或103中的任一个可以是AP。

每个装置101至103可以包括提供用于播放媒体的定时的时钟。在图1的示例中,媒体控制器106包括时钟108a并且媒体播放器107b和107c分别包括时钟108b和108c。

上述每个时钟(Wi-Fi时钟105a至105c和媒体时钟108a至108c)可以按时钟频率f生成时钟信号,时钟频率f可以是可调谐的。每个时钟可以按相同或不同时钟频率进行操作。每个时钟可以在每一个时钟周期p将其值从第一值(例如,0)改变成第二值(例如,1)并且改变回第一值。时钟周期p=1/f。在图3中描绘了示例时钟信号301。可以使用PLL(未示出)调谐每个时钟,PLL可以通过合适控制软件来控制。

在示例情形下,集线器装置101处的媒体控制器106可以指示(例如,借助Wi-Fi)远程装置102和103中的每个执行时间敏感任务。例如,时间敏感任务可以是在远程装置102和103中的每个处同步播放媒体。这可以包括同步地回放来自远程装置102和103中的每个的相同媒体(例如,用于多房间回放),或者同步地播放媒体的不同成分(诸如,左右立体声通道)。媒体的同步回放依赖于将在时间上彼此同步的媒体播放器107b和107c。然而,时钟108b和108c之间的时钟漂移可能导致媒体播放器107b和107c随着时间丧失同步,因此造成不同步地回放媒体。

每个媒体控制器107b和107c分别包括用于从时钟108b和108c提供同步时钟信号的同步控制器109b和109c。

在第一情形下,每个同步控制器109b和109c可以提供与公共(或基准)时钟同步的时钟信号。在该示例中,基准时钟可以是集线器装置101的Wi-Fi时钟105a。如上所述,时钟105b和105c借助TSF与时钟105a同步。因此,媒体时钟108b和108c与TSF同步Wi-Fi时钟105b和105c的同步分别将使得媒体时钟108b和108c彼此同步。因此,在该示例中,通过控制器109b提供与Wi-Fi时钟105b同步的时钟信号并且通过控制器109c提供与Wi-Fi时钟105c同步的时钟信号来实现同步。另选地,接收到的TSF可以被直接提供到每个控制器109b和109c,以提供用于同步时钟信号的定时基准。

在第二情形下,控制器109b和109c中的仅一个执行同步。例如,控制器109b可以提供与媒体控制器107c直接同步的时钟信号。这可以通过装置103借助例如通信装置104b和104c直接地且周期性地将定时消息(诸如,ping)发送到装置102来实现。然后,控制器109b可以提供根据接收到的定时消息同步的时钟信号。

以下进一步详细地描述通过同步控制器109b和109c中的一个或二者执行的同步处理。为了简单起见,以下论述是指仅由控制器109b执行的同步。这可以是在上述第一或第二情形下执行的同步或者可以要求装置102与另一个装置同步的任何其它情形。

图2是同步控制器109b的示例示意图。控制器109b可以包括第一时间标记生成器201、第二时间标记生成器202、时间比较单元203、整数时钟信号修改器204和分数时钟信号修改器205。控制器109b的每个组件201至205具有可以独立于其它组件实现的(如以下进一步描述的)特定功能。

控制器109b向与时钟105b同步的媒体播放器107b提供同步时钟信号。控制器109b可以从时钟108b接收时钟信号并且借助整数时钟信号修改器204和/或分数时钟信号修改器205修改该信号,以提供与时钟105b同步的修改后的时钟信号。因此,不是重新调谐时钟108b,而是修改由时钟108b输出的信号,使得它与时钟105b同步。修改后的时钟信号被提供到使用它用于定时的媒体播放器107b。另选地,可以使用控制器109b来确定时钟105b和108b之间的时间差,然后(例如,通过调谐时钟PLL)调整时钟108b,以使它与时钟105b同步。在该实现中,来自时钟108b的时钟信号而不是时钟信号的修改版本被提供到媒体播放器107b。

以下是对控制器109b的每个组件的详细描述。如上所述,每个组件可以独立于其它组件进行操作并且在其它实现中可独立地提供。例如,时间比较单元203可以在要求确定(任何合适类型的)两个信号之间的时间差的任何其它合适装置中提供。在另一个示例中,分数时钟信号修改器205可以在要求(任何合适类型的)信号被暂时移位的任何其它合适装置中提供。

时间标记生成器

第一时间标记生成器201和第二时间标记生成器202生成表示待同步的时钟上的时间的信号(诸如,时间标记)。例如,可以是时钟108b将与时钟105b同步(例如,如上述第一情形中那样)。在该情况下,表示时钟105b处的时间的信号被提供到时间标记生成器中的一个(例如,第一时间标记生成器201)并且表示时钟108b处的时间的信号被提供到另一个时间标记生成器(例如,第二时间标记生成器202)。第一时间标记生成器201和第二时间标记生成器202根据各自时钟输出表示相同时间的时间标记。因此,如果时钟105b和108b同步,则由第一时间标记生成器201和第二时间标记生成器202输出的时间标记将是相同的。如果时钟105b和108b不同步,则由第一时间标记生成器201和第二时间标记生成器202输出的时间标记将偏移时钟105b和108b不同步的时间差。来自第一时间标记生成器201和第二时间标记生成器202的信号被提供到时间比较单元203,以确定信号之间的时间差。

提供到第一时间标记生成器201和第二时间标记生成器202的信号可以是由时钟105b和108b中的每个输出的时钟信号。第一时间标记生成器201和第二时间标记生成器202可以接收时钟信号并且根据这两个时钟输出指示相同特定时间的时间标记。如图3中所示,由第一时间标记生成器201和第二时间标记生成器202中的每个输出的时间标记的类型可以是例如在特定时间t生成的脉冲303a或其极性在时间t改变的信号303b。第一时间标记生成器201和第二时间标记生成器202可以输出根据时钟105b和108b中的每个在已经过去特定时间量之后改变的时间标记信号。例如,第一时间标记生成器201和第二时间标记生成器202可以根据该时钟输出每y秒(例如,20微秒)发生脉动或者改变极性的信号。

在另一个示例中,可以借助与该时钟同步的操作或任务或事件,间接得到一时钟处的时间。如图3的示例中所示的,可以根据何时播出媒体帧302来生成时间标记。可以要求根据时钟108b在设定时间t播出媒体帧302。当时钟108b一点点地到达(tick to)时间t时,媒体帧302开始播出。因此,媒体帧302开始播出的瞬间可以指示根据媒体时钟108b的时间t。可以在帧302开始时生成时间标记303a或303b并且该时间标记将指示根据时钟108b的时间t。在图3中描绘该示例,图3示出由于在时间t播出而导致的媒体帧302(帧中具有n-1个数据位)。在该示例中,第二时间标记生成器202接收何时从媒体播放器107b播出帧302的指示(而非来自媒体时钟108b的时钟信号)作为其输入。第二时间标记生成器202可以输出在每帧开始时改变的时间标记信号303a或303b。所生成的时间标记信号被提供到时间比较单元203。在该示例中,第一时间标记生成器201根据WiFi时钟105b在时间t生成时间标记。例如,第一时间标记生成器201从WiFi时钟105b接收时钟信号并且当该时钟接近时间t时,第一时间标记生成器201输出时间标记信号303a或303b。

在另一个示例中,第一时间标记生成器201可以根据由通信装置104b接收的信号来生成时间标记。例如,通信装置104b可以是从接入点(AP)周期性地接收定时信标(TSF)的Wi-Fi装置。信标可以包括由AP生成并且发送信标的时间(根据AP处的时钟)的时间戳。要求将由接收器将信标处理为优先权(priority),并且当信标由AP广播时,在接入点和每个接收器之间存在快速且直接路径。因此,接收信标将在接入点的时钟处的时间的准确指示同时提供到每个接收装置(例如,装置102和103)。在示例中,AP时钟是集线器装置101处的时钟105a。信标一被远程装置102的通信装置104b接收,第一时间标记生成器201就可以被提供有信标。另选地,已经接收到信标的指示可以被提供到第一时间标记生成器201。然后,第一时间标记生成器201一接收到信标(或指示),就输出时间标记。(从第一时间标记生成器201)生成的时间标记提供根据集线器装置101的时钟105a的时间戳时间的指示。第二时间标记生成器202也被提供有接收到的信标(或接收到的信标中的时间戳信息)。然后,当时钟108b接近时间戳时间时,第二时间标记生成器202生成时间标记。因此,在第二时间标记生成器202处生成的时间标记指示根据时钟108b的时间戳时间。所生成的时间标记被提供到时间比较单元203,以比较这两个标记之间的时间差。

在以上示例中,可以使用调整后的时间戳的值在第二时间标记生成器202处生成时间标记。例如,可以通过加上等于在通信装置104b的介质/物理接口处接收信标和在第一时间标记生成器201处接收信标(或已经接收到信标的指示)之间的延迟的时间量来调整接收到的时间戳值。因此,当时钟108b接近时间戳时间加上用于在第一时间标记生成器201处接收信标(或其指示)的延迟时,第二时间标记生成器202生成时间标记。

另选地,Wi-Fi装置104b可以根据接收到的信标生成时间标记并且将时间标记直接提供到比较单元203,而非第一时间标记生成器201。

时间标记提供了根据各种装置的时间的简单表示。这允许快速且简单地进行时间比较并且能够在快速且有效的硬件装置(诸如,逻辑门)处实现。还可以使用时间标记来检验在时间敏感系统中是否在相同时间/以相同速率来触发事件。

时间比较单元

时间比较单元203将从第一时间标记生成器201和第二时间标记生成器202接收的信号(即,时间标记)进行比较,以确定这两个信号之间的时间差。时间比较单元203确定这两个信号之间的时间差是大于或等于时钟108b的一个时钟周期还是小于时钟108b的一个时钟周期。基于该确定,选择用于修改来自时钟108b的时钟信号的合适技术。如果该时间差小于一个时钟周期,则选择分数时钟信号修改器205对时钟信号执行修改。如果该时间差大于一个时钟周期或等于一个时钟周期,则单独地或者与分数时钟信号修改器205结合地选择整数时钟信号修改器204以对时钟信号执行修改。在另一个示例中,如果该时间差大于一个时钟周期,则时间比较单元203可以仅选择分数时钟信号修改器205来执行修改。以下更详细地论述整数时钟信号修改器204和分数时钟信号修改器205的操作。

图4a是时间比较单元203的示例示意图。时间比较单元接收由第一时间标记生成器201和第二时间标记生成器202分别生成的时间标记401和402。时间比较单元203包括计数器403,计数器403用于对时间标记401和402之间的(时钟108b的)时钟周期的数量进行计数。计数器在来自时间标记的信号改变时对时钟周期的数量进行计数并且在来自另一个时间标记的信号改变时停止计数。图4b示出时间标记401和402之间的时间差是一个时钟周期,并且因此通过计数器403测量计数1的情形。如果计数器403测量计数1或更多,则确定时间标记401和402之间的时间差大于或等于时钟108b的一个时钟周期并且将使用整数时钟信号修改器204来修改来自时钟108b的时钟信号。

时间比较单元203包括分数差估计器404,分数差估计器404用于确定比时间标记401和402之间的一个时钟周期更小的时间差(即,时钟周期的一小部分)。图4c示出时间标记401和402之间的时间差小于时钟周期的情形。分数差估计器404包括延迟单元405,延迟单元405用于将时间标记中的一个延迟不同量,以提供该时间标记的延迟版本。在该示例中,时间标记402(其表示媒体时钟108b上的时间)被延迟。延迟单元405可以包括用于延迟所输入的时间标记的多个延迟缓冲器。这在图4c中示出,图4c示出延迟时间标记402以提供时间标记信号402的延迟版本402a、402b、402c的延迟缓冲器405a、405b和405c。然后,将延迟版本中的每个与另一个时间标记401进行比较,以确定延迟版本402a、402b、402c中的哪个与时间标记401最接近地(在时间上)匹配,如图4c中的406所示的。在图4c的示例中,延迟版本402c是与时间标记401最接近匹配的延迟版本。分数差估计器404可以包括用于将标记401的每个延迟版本与另一个标记402进行比较的比较单元407。

施加到最接近匹配的延迟信号(402c)的延迟量(405a、405b和405c的总和)对应于时间标记401和402之间的时间差。延迟缓冲器405a至405c中的每个可以施加例如3ns的延迟。信号402经过所有三个延迟缓冲器405a、405b和405c,以提供延迟版本401c。因此,施加到版本401c的总延迟是9ns,所以估计时间标记401与402之间的时间差是9ns。

延迟单元405将时间标记延迟n个数量的延迟,其中,每个延迟是不同的。优选地,以预定时间量(例如,2ns、3ns或4ns等)的增量延迟时间标记,以提供渐增延迟的延迟版本。例如,延迟单元405可以提供时间标记信号的n个延迟版本,其中,针对第i个延迟版本的延迟是:

Delay(i)=iT,其中,i=1、2、3…n并且T是预定时间量。

如以上关于图4c描述的,延迟单元405可以包括用于延迟时间标记信号的一系列延迟缓冲器。串联的每个延迟缓冲器的输出可以被提供到串联的下一个缓冲器的输入。信号线可以连接到每个缓冲器的输出,以将时间标记信号的每个延迟版本提供到比较单元407。

比较单元407接收时间标记401、时间标记402和延迟版本402a至402c中的每个作为其输入。比较单元407将时间标记410与时间标记402和延迟版本402a至402c中的每个进行比较。在该示例中,通过确定延迟版本402a至402c中的每个的上升沿出现的时间并且确定那些确定的时间中的哪个最接近时间标记信号401的上升沿出现的时间来比较信号。

如果时间标记信号是脉冲信号(例如,诸如303a,如以上参照图3描述的),则比较单元407可以在信号401从一种状态转变到另一种状态的瞬间(例如,当检测到信号401的上升沿时),针对延迟版本402a至402c从每条信号线捕捉数据。如果时间标记信号是电平信号(303b),则比较单元407可以在检测到信号401的上升沿或下降沿的瞬间,针对延迟版本402a至402c从信号线捕捉数据。因此,仅当检测到来自信号401的上升沿(和针对电平时间标记的下降沿)时,才能够启动比较单元407。与连续监测时钟之间的漂移或传统超频方法相比,这样节省了电力要求。

图5a描述比较单元407如何将时间标记401与时间标记402和时间标记402的延迟版本402a至402d进行比较的一个示例。在该示例中,延迟版本402b是与401(而非先前示例中的402c)最接近匹配的信号。在该示例中,延迟单元405提供被递增延迟的信号402a至402d。串联的第一延迟线应用延迟T以提供信号402a,第二延迟线应用延迟2T以提供信号402b,第三延迟线应用延迟3T以提供信号402c,等等。可以对信号401和402和每个延迟版本402a至402d执行异或(XOR)运算。XOR运算的结果总体在500处示出。当在时间t1检测到信号401的上升沿时,可以捕捉XOR运算的结果。如图5中所示,信号402(在时间上)领先于信号401。因此,当信号401转变到不同状态(例如,较高状态,如图中所示)时,信号402已经处于该状态。当在时间t1对信号401和402进行异或时,结果是“0”,如在DL(0)所示。(在DL(1)所示的)延迟信号402a还在时间t1处产生结果“0”,因为它仍领先于信号401。应用至信号402b的延迟致使它类似于信号401。信号402b还产生XOR结果“0”(如在DL(2)所示),因为XOR输入是相同的。施加到延迟信号402c和401d的延迟致使那些信号被延迟,使得它们(在时间上)落后于信号401。这致使它们在时间t1处的XOR结果(分别在DL(3)和DL(4))处示出)是“1”。因此,在t1处捕捉的XOR结果是“00011”(为渐增延迟次序)。

分数差估计器404可以包括延迟识别器408,延迟识别器408用于基于由比较单元407提供的XOR结果来估计时间标记401和402之间的延迟。所捕捉的结果中的从“0”到“1”的转变识别信号402a至402d中的哪个与信号401最接近地匹配。与紧接在时间t1处的第一“1”值之前的“0”值对应的延迟线(即,最多延迟的“0”延迟线)对应于具有最接近匹配信号的延迟线。由每条延迟线施加的延迟量是已知的,所以延迟识别器408通过确定施加到时间标记402的最接近匹配延迟版本的延迟量,估计时间标记401和402之间的时间差。该时间差指示时钟105b和108b不同步的时间量。延迟识别器408将所识别的时间差提供给分数时钟信号修改器205。

在以上示例中,时间标记402领先于时间标记401(因为时钟108b比时钟105b更快),所以可以提供用于与时间标记401进行比较的时间标记402的延迟版本。在时间标记401领先于时间标记402(因为时钟105b比时钟108b更快)的情形下,使时间标记401的延迟版本401a至401d与时间标记402进行异或将导致一系列“1”,如图6中所示,所以将不能确定标记401和402之间的时间差。因此,如图6中所示,可以提供第二延迟单元405a,第二延迟单元405a包括用于提供时间标记401的延迟版本401a至401d的一系列第二延迟缓冲器。还可以提供第二比较单元(未示出),第二比较单元用于将时间标记402与延迟版本401a至401d中的每个进行比较,以确定延迟版本401a至401d中的哪个与时间标记402(在时间上)最接近地匹配。第二比较单元可以按与以上描述的比较单元407类似的方式进行操作。来自这两个比较单元的输出可以被提供到延迟识别器408,以确定:1)时间标记401或402中的哪个更快;以及2)从较快时间标记的延迟版本的输出确定时间标记401和402之间的时间差。例如,使用图5和图6中的示例,可以给分数差估计器404提供来自比较单元407的输出“00011”和来自第二比较单元的输出“11111”。当在来自比较单元407的输出中存在从“0”到“1”的转变并且在来自第二比较单元的输出中不存在从“0”到“1”的转变时,确定时间标记402比时间标记401更快。然后,使用来自比较单元407的输出来确定如上所述的时间标记401和402之间的时间差。

如果时间标记401和402之间的时间差等于或大于一个时钟周期,则时间比较单元203输出(i)来自计数器403的结果;如果该时间差小于一个时钟周期,则时间比较单元203输出(ii)来自分数差估计器404的结果。来自计数器403的输出被提供到整数时钟信号修改器204并且来自分数差估计器404的输出被提供到分数时钟信号修改器205。另选地,通过计数器403或估计器404确定的时间差可以被提供到时钟控制器(诸如,PLL调谐器,未示出),时钟控制器可以基于所确定的时间差来更新时钟108b。

在替代实现中,分数差估计器404可以识别比一个时钟周期更大的延迟。这可以通过提供足够延迟缓冲器以使得可以施加比一个时钟周期更大的延迟来提供比一个时钟周期更大的时间标记402的延迟版本来实现。这在图4d中示出,图4d示出用于分别提供时间标记402的延迟版本402d-402g的额外缓冲器405d-405g。类似于图4c,然后将每个延迟版本与时间标记401进行比较,以确定延迟版本402a至402g中的哪个与时间标记401(在时间上)最接近地匹配,如图4d中的406a所示的。因此,在该示例中,分数差估计器404将延迟版本402g识别为与时间标记401最接近匹配的信号,延迟版本402g被延迟了大约1.7个时钟周期。

时钟修改

可以基于由时间比较单元203确定的时间差,修改提供到媒体播放器107b的时钟信号。在一个示例中,由时间比较单元203确定的时间差可以被提供到能够调整时钟信号(例如,时钟108b)的源的时钟控制器。例如,如果时钟源是PLL时钟生成器,则可以控制PLL以重新调谐时钟,使得所确定的时间差被消除,从而使时钟108b与时钟105b同步。重新调谐时钟源是相对缓慢的处理,因为将时钟源稳定达到新相位/频率要花费一定时间。因此,修改由时钟源输出的信号(而非重新调谐时钟源)是有利的,因为可以相对快速地执行修改。然后,修改后的时钟信号可以被提供到媒体播放器107b。

如果由时间比较单元203确定的时间差使得时钟108b领先于时钟105b一个或更多个时钟周期,则计数器403将该时间差提供到整数时钟信号修改器204。整数时钟信号修改器204(直接地或借助分数时钟信号修改器205,如图2中所示)从时钟108b接收时钟信号并且通过使得跳过一个或更多个时钟脉冲来修改该时钟信号。例如,如果由计数器403确定的时间差是时钟108b领先于105b N个时钟周期,则修改器204将使得跳过N个时钟周期。这具有使时钟信号放慢或延迟N个时钟周期的效果。这在图7中示出,图7示出来自时钟105b的原始时钟信号701和通过在703跳过一个时钟脉冲修改的修改后的时钟信号702。整数时钟信号修改器204可以使得通过在需要被去除的N个脉冲内选通时钟信号701来跳过N个脉冲。现在被同步的修改后的信号702被提供到媒体播放器107b。

如果由时间比较单元203确定的时间差使得时钟108b领先于时钟105b小于一个时钟周期,则分数差估计器404将时间差提供到分数时钟信号修改器205。分数时钟信号修改器205从时钟108b接收时钟信号并且通过使得时钟信号被延迟所确定的时间差来修改该时钟信号。图8示出分数时钟信号修改器205的示例,分数时钟信号修改器205包括延迟单元801和多路复用器单元802。延迟单元801从时钟108b接收时钟信号701并且将时钟信号701延迟多个延迟,以提供时钟信号701的多个延迟版本。延迟单元801包括一系列延迟缓冲器,这些延迟缓冲器以与(上述)延迟单元405类似的方式提供时钟信号的多个延迟版本。时钟信号的每个延迟版本被提供到多路复用器单元802。多路复用器单元802从分数差估计器404接收分数时间差并且选择被延迟与分数时间差对应的时间量的时钟信号的延迟版本。所选延迟版本被提供到整数时钟信号修改器204以进一步进行修改或者被提供到媒体播放器107b以提供同步时钟信号。

优选地,当使用分数时钟信号修改器205修改时钟信号时,递增地执行时钟信号的不同延迟版本之间的切换。这有助于保持媒体播放器107b和控制器109b稳定。图9示出用于递增地修改时钟信号701的示例。在该示例中,延迟单元具有15条延迟线,每条延迟线将时钟信号701递增地延迟3ns(从而在第15条延迟线处提供45ns的延迟)。在该示例中,多路复用器单元802包括为级联构造的4个4:1多路复用器802a至802d。从延迟单元801给多路复用器802a提供原始时钟信号701(零延迟)和信号701的前三个延迟版本(即,被延迟3ns、6ns和9ns),给多路复用器803b提供随后四个延迟版本(即,被延迟12ns、15ns、18ns和21ns),等等。提供或门802e,或门802e接收来自多路复用器802a至802d的输出并且输出与所选延迟线对应的信号。如果例如由分数差估计器404确定的时间差是36ns,则多路复用器802a至802d被设置成使得在多个时钟周期内,延迟被递增地增加至36ns。例如,多路复用器可以被设置成通过从(i)信号701(零延迟)切换成9ns延迟;(ii)从9ns延迟切换成18ns延迟;(iii)从18ns延迟切换成27ns延迟;以及(iv)从27ns延迟切换成36ns延迟来增加延迟。可以在预定数量的时钟周期之后(例如,每四个周期)执行每次递增,以有助于稳定性。

分数时钟信号修改器205能够将时钟信号修改一个或多于一个时钟周期。在该示例中,时间比较单元203可以给分数时钟信号修改器205而非整数时钟信号修改器204提供一个或更多个时钟周期的时间差。图10示出分数时钟信号修改器205如何将时钟信号延迟一个或更多个时钟周期的一个示例。在图10中,Clk是时钟信号701,并且clk_d1至clk_d4是clk的延迟版本。在该示例中,d是缓冲器延迟并且是时钟周期的四分之一。这意味着,分数延迟补偿所要求的缓冲器的数量是:

因此,如果观察到的延迟(例如,由时间比较单元203估计)是3*d,则分数时钟信号修改器205可以遵循以下步骤:

1.将clk切换成clk_d1

2.将clk_d1切换成clk_d2

3.将clk_d2切换成clk_d3

这将提供延迟了3*d或者3/4个时钟周期的修改后的时钟信号。

如果需要进一步将时钟信号延迟4*d(等同于一个时钟周期的整数延迟),则存在两个选项:(i)插入另一个延迟缓冲器并且从clk_d3切换成clk_d4;或(ii)回到clk。

延迟线可以被视为是循环的,使得从clk_d3->clk_d4或者从clk_d3->clk将具有相同效果(因为它们之间没有分数延迟,正好是整数延迟)。延迟链可以不止于此:例如,如果系统必须补偿1.5个时钟周期的时间差(等同于在系统中引入6个时间延迟d),则可以实现以下切换链:

Clk->clk_d1->clk_d2->clk_d3->clk->clk_d1->clk_d2。

这样将提供延迟了6*d或1.5个时钟周期的修改后的时钟信号。

延迟线的循环性质的一个优点在于,系统可以在不要求额外资源(诸如,额外延迟缓冲器)的情况下,补偿大于一个时钟周期的延迟。另选地,分数时钟信号修改器205可以设置有额外延迟缓冲器,这些延迟缓冲器提供大于一个时钟周期的总延迟(例如,以类似于图4d的方式)。

由控制器109b输出的修改后的时钟信号可以相对于时钟105b随时间漂移。可以通过比较修改后的时钟信号与来自时钟105b的时钟信号之间的时间差,使修改后的时钟信号可以与时钟105b重新同步。在该情况下,来自控制器109b的修改后的时钟信号被提供到时间标记生成器202,以针对修改后的时钟信号生成时间标记。将所生成的时间标记与针对时钟105b生成的时间标记进行比较。如果(例如,借助时间比较单元203)确定时钟105b领先于来自控制器109b的修改后的时钟信号(即,比该修改后的时钟信号快),则分数时钟信号修改器205可以切换至具有比当前延迟线更小的延迟的新延迟线。新延迟线与当前延迟线之间的差对应于时钟105b领先于修改后的时钟信号的时间量。这通过图11中的示例示出。在1001处示出由控制器109b输出的修改后的时钟信号并且在701处示出来自时钟108b的原始时钟信号。在1002处,通过在分数时钟信号修改器205处选择与x秒延迟对应的延迟线引入x秒延迟来修改时钟信号。在一定时间之后,将修改后的时钟信号1001与来自时钟105b的时钟信号(未示出)进行比较并且确定时钟105b现在比修改后的时钟信号1001快y秒。在1003处,通过选择比当前x秒延迟线少y秒的延迟线,从修改后的时钟信号1001中减去y秒。因此,在1003处选择x-y秒延迟线,以使修改后的时钟信号1001漂移y秒,使得它与时钟105b同步。

优选地,时钟108b被构造成比其将同步到的时钟(例如,时钟105b)稍微更快地运行。这可以通过调谐时钟108b使得时钟108b具有比时钟105b的时钟频率大可能最小可控增量的时钟频率来实现。这有助于确保时钟108b将领先于时钟105b运行,使得整数时钟信号修改器204和/或分数时钟信号修改器205可以通过施加合适延迟修改来自时钟105b的时钟信号,因此提供与时钟105b同步的修改后的时钟信号。

图12示出由控制器109b执行的用于提供与时钟105b同步的时钟信号的处理。在步骤1101中,开始时间差测量处理。在该步骤中,可以通过例如生成时间标记(如上所述)并且(例如,使用时间比较单元203)估计那些标记之间的时间差,将时钟105b与时钟108b进行比较。在步骤1102中,确定所估计的时间差是否小于一个时钟周期。如果时间差小于一个时钟周期,则处理前进到步骤1103。否则,处理前进至步骤1104。在步骤1103中,通过按以上关于分数时钟信号修改器205描述的所估计的分数时间差调整来自时钟108b的时钟信号来修改该时钟信号。然后,处理返回到步骤1101,以进行下一个测量处理。在步骤1104中,确定对应于时间差的时钟脉冲的数量。在步骤1105中,从时钟108b的时钟信号中去除所确定的时钟脉冲的数量。另选地,可以在分数时钟信号修改器205处执行步骤1105,分数时钟信号修改器205能够将时钟信号调整一个或多于一个时钟周期,如上所述。然后,处理返回到步骤1101以进行下一个测量。

上述时间差测量和时钟修改方法可以几乎基于硬件(例如,使用延迟缓冲器确定时间差,选通时钟信号,使用延迟缓冲器和多路复用器来修改时钟信号)。这种硬件方法要求最少软件介入,软件介入可能造成资源短缺并且释放软件处理资源来执行其它任务或休眠。特别地,使用硬件方法执行规则时间差测量而不是借助软件监测时间差节省了大量资源。这将有助于确保修改后的时钟信号保持与时钟105b紧密同步。该误差包含保持同步系统稳定并且防止将使同步系统不稳定的误差构建。使用基于硬件的方法的另一个优点在于,可以使处理器处于休眠并且仅偶尔簿记时才唤醒处理器。这导致大量电力节省,这对于改进电池供电装置的电池寿命特别有利。

图1、图2、图4a和图8的装置被示出为包括多个功能框。这仅仅是示意性的并且不旨在限定这样的实体的不同逻辑元件之间的严格划分。可以按任何合适方式来提供每个功能框。

总体上,上述功能、方法、技术或组件中的任一个可以在软件、固件、硬件(例如,固定逻辑电路)、或其任何组合中实现。可以在此使用术语“模块”、“功能”、“组件”、“元件”、“单元”、“框”和“逻辑”来总体上表示软件、固件、硬件、或其任何组合。在软件实现的情况下,模块、功能、组件、元件、单元、框或逻辑表示当在处理器上执行时执行指定任务的程序代码。在此描述的算法和方法可以通过一个或更多个处理器执行致使处理器执行算法/方法的代码来执行。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器和可使用磁、光学和其它技术来存储指令或其它数据并且可由机器访问的其它存储器装置。

如在此使用的术语“计算机程序代码”和“计算机可读指令”是指用于处理器的任何种类的可执行代码,包括用机器语言、解释语言或脚本语言表达的代码。可执行代码包括二进制代码、机器代码、字节代码、定义集成电路的代码(诸如,硬件描述语言或网表)、和用诸如C、Java或OpenCL的编程语言代码表达的代码。可执行代码可以是例如任何种类的软件、固件、脚本、模块或库,当在虚拟机或其它软件环境下适当地执行、处理、解释、编译、执行可执行代码时,致使支持可执行代码的计算机系统的处理器执行由代码指定的任务。

处理器、计算机、或计算机系统可以是任何种类的装置、机器或专用电路、或其集合或一部分,具有使得它可以执行指令的处理能力。处理器可以是任何种类的通用或专用处理器(诸如,CPU、GPU、芯片上系统、状态机、媒体处理器、专用集成电路(ASIC)、可编程逻辑阵列、现场可编程门阵列(FPGA)等)。计算机或计算机系统可以包括一个或更多个处理器。

定义集成电路的代码可以按任何方式定义集成电路(包括网表、用于构造可编程芯片的代码、和在任一级定义集成电路的硬件描述语言),硬件描述语言包括寄存器传输级(RTL)代码、诸如Verilog或VHDL的高级电路表示和诸如OASIS和GDSII的低级电路表示。当在被构造用于生成集成电路的显示的适当装配的计算机系统中进行处理时,定义集成电路的代码可能致使计算机系统生成用代码表达的集成电路的显示。这样的计算机系统可能造成通过例如提供用于控制机器的输出生成集成电路的显示,所述机器被构造成制造集成电路或者制造集成电路的中间表达(诸如,光刻掩模)。

可以在计算机系统处处理逻辑上限定集成电路(诸如,RTL)的较高级表示,计算机系统被构造用于在软件环境的背景下生成集成电路的显示,包括定义电路元件和用于组合那些元件的规则以生成通过由表示如此定义的集成电路的显示。

如通常在计算机系统处执行以定义机器的软件的情况那样,可能要求一个或更多个中间用户步骤(例如,提供命令、变量等)用于被构造用于生成集成电路的显示以执行定义集成电路的代码的计算机系统,从而生成该集成电路的显示。

申请人由此独立地公开了在此描述的每个单个特征和两个或更多个这样的特征的任何组合,在某种程度上,这样的特征或组合能够依照本领域技术人员的公知常识作为整体基于本说明书来执行,而不管这样的特征或特征的组合是否能解决在此公开的任何问题。依据以上描述,本领域技术人员将清楚,可以在本发明的范围内进行各种修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1