固定频率时钟源的时钟频率调制的方法

文档序号:6527073阅读:267来源:国知局
固定频率时钟源的时钟频率调制的方法
【专利摘要】本发明公开了固定频率时钟源的时钟频率调制的方法。提供了包括用于更新经调制时钟设备的相位的经调制时钟设备。在一个示例中,更新设备包括更新相位多路复用器,其耦连到输出时钟发生器的输出相位多路复用器并且配置为接收输入时钟信号和输入时钟信号的一个或多个相位;输出相位分数计数器,其耦连到更新相位多路复用器并配置为接收更新时钟信号以及生成输出相位;以及更新相位设备,其耦连到输出相位分数计数器以及更新相位多路复用器。输出相位分数计数器进一步配置为发送输出相位到输出相位多路复用器和更新相位设备。更新相位设备配置为生成更新相位以及发送更新相位到更新相位多路复用器。
【专利说明】固定频率时钟源的时钟频率调制的方法
【技术领域】
[0001]本发明总地涉及集成电路,并且更具体地,涉及用于固定频率时钟源的时钟频率调制的方法。
【背景技术】
[0002]计算机的时钟信号是特定类型的信号,其在高态与低态之间振荡并且像节拍器一样用来协调计算机内的各电路的动作。计算机内的时钟发生器生成时钟信号。尽管存在更复杂的排列,但是常见的时钟信号以具有50%占空比(即设备在活动状态中花费作为考虑的总时间的分数的时间的百分比)的形式,通常以固定的恒定频率。使用用于同步的时钟信号的电路可以在时钟周期的上升沿、下降沿时变得活动,或者在双倍数据速率的情况下,在上升沿和下降沿二者时变得活动。
[0003]在操作中,计算机内的设备诸如处理单元可能要求与也要求时钟信号的计算机内的其他设备稍微不同的时钟频率。满足不同时钟信号需求的一个方法是为要求时钟的每个设备(例如每个处理单元或其他设备)提供专用时钟。例如,集成电路可配置有用于要求不同时钟频率的每个设备的不同锁相环(PLL),即使用于设备的所要求频率仅是稍有不同。例如,如果用于一个处理单元的所要求时钟频率是100.0MHz,而用于另一个处理单元的所要求时钟频率稍微不同地在100.5MHz处,那么这两个处理单元典型地要求分开的PLL。那样,每个设备可以以用于该设备的所要求频率操作。不幸的是,具有大量专用时钟(例如PLL)常常在半导体电路上占据相对大量的空间。因此,这类方法典型地不令人满意。
[0004]如前述所示,本领域需要的是提供时钟信号到计算机内的不同设备的更优化的方法。

【发明内容】

[0005]本技术的一个实现方案包括经调制时钟设备,该经调制时钟设备包括用于更新经调制时钟设备的相位的更新设备。在一个示例中,更新设备包括更新相位多路复用器,其耦连到输出时钟发生器的输出相位多路复用器并配置为接收输入时钟信号以及输入时钟信号中的一个或多个相位;输出相位分数计数器,其耦连到更新相位多路复用器并配置为接收更新时钟信号以及生成输出相位;以及更新相位设备,其耦连到输出相位分数计数器和更新相位多路复用器,其中输出相位分数计数器进一步配置为发送输出相位到输出相位多路复用器以及到更新相位设备,并且其中更新相位设备配置为生成更新相位以及发送更新相位到更新相位多路复用器。
[0006]有利地,本技术的经调制时钟系统可以生成稍快于或稍慢于现存源时钟的输出时钟信号,并且这样做不需要用于要求不同时钟频率的每个设备的额外的锁相环(PLL)。
【专利附图】

【附图说明】
[0007]因此,可以详细地理解本发明的上述特征,并且可以参考实现方案得到对如上面所简要概括的本发明更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅示出了本发明的典型实现方案,因此不应被认为是对其范围的限制,本发明可以具有其他等效的实现方案。
[0008]图1是示出了配置为实现本发明的一个或多个方面的计算机系统的框图;
[0009]图2是根据本发明的一个实施例的、示出并行处理子系统的框图。
[0010]图3是包括常规时钟系统的计算机系统的框图。
[0011]图4是根据本发明的一个实施例的、包括经调制时钟系统401的计算机系统的框图。
[0012]图5是根据本发明的一个实施例的、图4的经调制时钟设备的一部分的框图。
[0013]图6是根据本发明的一个实施例的、示出由输出时钟发生器所实行的时钟频率调制的示范性运算过程的图。
[0014]图7是根据本发明的一个实施例的、图4的经调制时钟设备的一部分的另一个框图。
[0015]图8是根据本发明的一个实施例的、图4的经调制时钟设备的更详细的框图。
[0016]图9是根据本发明的一个实施例的、用于生成输出时钟信号的方法步骤的流程图。
[0017]图10是根据本发明的一个实施例的、用于更新输出时钟信号的相位的方法步骤的流程图。
[0018]图11是根据本发明的一个实施例的、用于自动校准经调制时钟设备的方法步骤的流程图。
【具体实施方式】
[0019]在下面的描述中,将阐述大量的具体细节以提供对本发明更透彻的理解。然而,本领域的技术人员应该清楚,本发明可以在没有一个或多个这些具体细节的情况下得以实践。在其他实例中,未描述公知特征以避免对本发明造成混淆。
[0020]系统概述
[0021]图1为示出了配置为实现本发明的一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU) 102和包括设备驱动程序103的系统存储器104。CPU102和系统存储器104经由可以包括存储器桥105的互连路径通信。存储器桥105可以是例如北桥芯片,经由总线或其他通信路径106 (例如超传输(HyperTransport)链路等)连接到输入/输出(I/O)桥107。I/O桥107,其可以是例如南桥芯片,从一个或多个用户输入设备108 (例如键盘、鼠标等)接收用户输入并且经由路径106和存储器桥105将该输入转发到CPU102。
[0022]还如所示,并行处理子系统112经由总线或其他通信路径113(例如外围部件互连(PCI) express、加速图形端口(AGP)和/或超传输链路等)耦连到存储器桥105 ;在一个实现方案中,并行处理子系统112是将像素传递到显示设备110(例如常规的基于阴极射线管(CRT)和/或液晶显示器(IXD)的监视器等)的图形子系统。系统盘114也连接到I/O桥107。交换器116提供I/O桥107与诸如网络适配器118以及各种插卡120和121的其他部件之间的连接。其他部件(未明确示出),包括通用串行总线(USB)和/或其他端口连接、压缩光盘(CD)驱动器、数字视频光盘(DVD)驱动器、胶片录制设备及类似部件,也可以连接到I/O桥107。将图1中的各种部件互连的通信路径可以使用任何适合的协议实现,诸如PCI,PC1-Express (PCIe)、AGP、超传输和/或任何其他总线或点到点通信协议,并且如本领域已知的,不同设备间的连接可使用不同协议。设备是硬件或者硬件和软件的组合。部件也是硬件或者硬件和软件的组合。
[0023]如下文参考图2-11所进一步描述的,并行处理子系统112包括配置为通过使用利用一个或多个块的电路来执行软件应用(例如设备驱动程序103)的并行处理单元(PTO)。这些包类型由通信路径113所使用的通信协议来指定。在新包类型被引入通信协议(例如由于对通信协议的增强)的情况下,并行处理子系统112可配置为基于新包类型生成包并且使用新包类型跨通信路径113与CPU102 (或其他处理单元)交换数据。
[0024]在一个实现方案中,并行处理子系统112包含经优化用于图形和视频处理的电路,包括例如视频输出电路,并且构成图形处理单元(GPU)。在另一个实现方案中,并行处理子系统112包含经优化用于通用处理的电路,同时保留底层(underlying)的计算架构,本文将更详细地进行描述。在又一个实现方案中,并行处理子系统112可以与一个或多个其他系统元件集成以形成片上系统(SoC),所述系统元件诸如存储器桥105、CPU102以及I/O桥 107。
[0025]应该理解,本文所示系统是示例性的,并且变化和修改都是可能的。连接拓扑,包括桥的数目和布置、CPU102的数目以及并行处理子系统112的数目,可根据需要修改。例如,在一些实现方案中,系统存储器104直接连接到CPU102而不是通过桥,并且其他设备经由存储器桥105和CPU102与系统存储器104通信。在其他替代性拓扑中,并行处理子系统112连接到I/O桥107或直接连接到CPU102,而不是连接到存储器桥105。而在其他实现方案中,I/O桥107和存储器桥105可能被集成到单个芯片上。大型实现方案可以包括两个或更多个CPU102以及两个或更多个并行处理系统112。本文所示的特定部件是可选的;例如,任何数目的插卡或外围设备都可能得到支持。在一些实现方案中,交换器116被去掉,网络适配器118和插卡120、121直接连接到I/O桥107。
[0026]图2是根据本发明的一个实施例的、示出并行处理子系统112的框图。如所示的,并行处理子系统112包括一个或多个并行处理单元(PI3U) 202,每个并行处理单元202都耦连到本地并行处理(PP)存储器204。通常,并行处理子系统包括U个PPU,其中U > I。(本文中,类似对象的多个实例需要时以标识对象的参考数字和标识实例的括号中的数字来表示。)PPU202和并行处理存储器204可使用一个或多个集成电路设备来实现,诸如可编程处理器、专用集成电路(ASIC)或存储器设备,或者以任何其他技术可行的方式来实现。
[0027]再参考图1,在一些实现方案中,并行处理子系统112中的一些或所有PPU202是具有渲染管线的图形处理器,其可以配置为实施与下述相关的各种任务:经由存储器桥105和总线113从CPU102和/或系统存储器104所供应的图形数据生成像素数据,与本地并行处理存储器204 (可被用作图形存储器,包括例如常规帧缓冲区(buffer))交互以存储和更新像素数据,传递像素数据到显示设备110等等。在一些实现方案中,并行处理子系统112可包括一个或多个作为图形处理器而操作的PPU202以及一个或多个用于通用计算的其他PPU202。这些PTO可以是同样的或不同的,并且每个PTO可具有它自己的专用并行处理存储器设备或不具有专用并行处理存储器设备。一个或多个PPU202可输出数据到显示设备110,或者每个PPU202可输出数据到一个或多个显示设备110。
[0028]在操作中,CPU102是计算机系统100的主处理器,控制和协调其他系统部件的操作。具体地,CPU102发出控制PPU202的操作的命令。在一些实现方案中,CPU102写入用于每个PPU202的命令流到入栈缓冲区(pushbuffer)中(在图1或图2中未明确示出),该入栈缓冲区可位于系统存储器104、并行处理存储器204、或CPU102和PPU202都可访问的其他存储位置中。PPU202从入栈缓冲区读取命令流,然后相对于CPU102的操作异步地执行命令。
[0029]现在返回参考图2,每个PPU202包括经由连接到存储器桥105 (或者,在一个替代性实现方案中,直接连接到CPU102)的通信路径113与计算机系统100的其余部分通信的I/O单元205。PPU202到计算机系统100的其余部分的连接也可以变化。在一些实现方案中,并行处理子系统112可实现为可插入到计算机系统100的扩展槽中的插卡。在其他实现方案中,PTO202可以和诸如存储器桥105或I/O桥107的总线桥集成在单个芯片上。而在其他实现方案中,PTO202的一些或所有元件可以和CPU102集成在单个芯片上。
[0030]在一个实现方案中,通信路径113是PCIe链路,如本领域所知的,其中专用通道被分配到每个PPU202。也可以使用其他通信路径。如上所述,逆流式(contraflow)互连也可以用来实现通信路径113以及计算机系统100、CPU102或PPU202内的任何其他通信路径。I/O单元205生成用于在通信路径113上传送的包(或其他信号),并且还从通信路径113接收所有传入的包(或其他信号),将传入的包引导到PPU202的适当部件。例如,可将与处理任务相关的命令引导到主机接口 206,而将与存储器操作相关的命令(例如,对并行处理存储器204的读取或写入)引导到存储器交叉开关单元210。主机接口 206读取每个入栈缓冲区,并且将由入栈缓冲区所指定的工作输出到前端212。
[0031]有利地,每个PPU202都实现高度并行处理架构。如详细示出的,PPU202 (O)包括算术子系统230,该子系统230包括C个通用处理集群(GPC)208,其中C > I。每个GPC208能够并发执行大量的(例如,几百或几千)线程,其中每个线程是程序的实例(instance)。在各种应用中,可分配不同的GPC208用于处理不同类型的程序或用于实施不同类型的计算。GPC208的分配可以取决于因每种类型的程序或计算所产生的工作量而变化。
[0032]GPC208经由工作分布单元200接收所要执行的处理任务,该工作分布单元200从前端单元212接收定义处理任务的命令。前端212确保在由入栈缓冲区所指定的处理发起前,将GPC208配置为有效状态。
[0033]当PPU202用于图形处理时,例如,用于操作的处理工作量可以分成接近相等大小的任务以使操作能够分布到多个GPC208。工作分布单元200可配置为以能够将任务提供到多个GPC208用于处理的频率来产生任务。在一个实现方案中,工作分布单元200可快速产生任务足以同时维持繁忙的多个GPC208。相比之下,在常规系统中,处理典型地由单个处理引擎来实施,而其他处理引擎在开始他们的处理任务之前保持空闲,等待单个处理引擎完成其任务。在本发明的一些实现方案中,GPU208的各部分配置为实施不同类型的处理。例如,第一部分可配置为实施顶点着色和拓扑生成。第二部分可配置为实施曲面细分(tessellation)和几何着色。第三部分可配置为实施屏幕空间中的像素着色以产生经渲染图像。由GPC208所产生的中间数据可以存储在缓冲区中以允许中间数据能够在GPC208之间进行传送用于进一步处理。[0034]存储器接口 214包括D个分区单元215,每个分区单元215直接耦连到并行处理存储器204的一部分,其中D≥I。如所示的,分区单元215的数目一般等于DRAM220的数目。在其他实现方案中,分区单元215的数目也可以不等于存储器设备的数目。动态随机存取存储器(DRAM)220可以由其他合适的存储设备来替代并且可以是一般常规的设计。诸如帧缓冲区或纹理映射图的渲染目标可以跨DRAM220加以存储,这允许分区单元215并行写入每个渲染目标的各部分以有效地使用并行处理存储器204的可用带宽。
[0035]任何一个GPC208都可以处理要被写到并行处理存储器204内的任何DRAM220的数据。交叉开关单元210配置为路由每个GPC208的输出到任何分区单元215的输入或到另一个GPC208用于进一步处理。GPC208通过交叉开关单元210与存储器接口 214通信,以对各种外部存储器设备进行读取或写入。在一个实现方案中,交叉开关单元210具有到存储器接口 214的连接以和I/O单元205通信,以及到本地并行处理存储器204的连接,从而使得在不同GPC208内的处理内核能够与系统存储器104或对于PPU202而言非本地的其他存储器通信。在图2所示的实现方案中,交叉开关单元210直接与I/O单元205连接。交叉开关单元210可使用虚拟信道来分开GPC208与分区单元215之间的业务流。
[0036]另外,GPC208可被编程以执行与种类繁多的应用相关的处理任务,包括但不限于,线性和非线性数据变换、视频和/或音频数据过滤、建模操作(例如,应用物理定律以确定对象的位置、速率和其他属性)、图像渲染操作(例如,曲面细分着色器、顶点着色器、几何着色器、和/或像素着色器程序)等等。PPU202可将数据从系统存储器104和/或本地并行处理存储器204转移到内部(片上)存储器中,处理该数据,并且将结果数据写回到系统存储器104和/或本地并行处理存储器204,其中这样的数据可以由其他系统部件访问,所述其他系统部件包括CPU102或另一个并行处理子系统112。 [0037]PPU202可配备有任何容量(amount)的本地并行处理存储器204,包括没有本地存储器,并且可以以任何组合方式使用本地存储器和系统存储器。例如,在统一存储器架构(UMA)实现方案中,PPU202可以是图形处理器。在这样的实现方案中,将不提供或几乎不提供专用的图形(并行处理)存储器,并且PPU202会以排他或几乎排他的方式使用系统存储器。在UMA实现方案中,PPU202可集成到桥式芯片中或处理器芯片中,或作为具有高速链路(例如,PCIe)的分立芯片提供,所述高速链路经由桥式芯片或其他通信手段将PPU202连接到系统存储器。
[0038]如上所示,在并行处理子系统112中可以包括任何数目的PPU202。例如,可在单个插卡上提供多个PPU202、或可将多个插卡连接到通信路径113、或可将一个或多个PPU202集成到桥式芯片中。在多PPU系统中的PPU202可以彼此同样或不同。例如,不同的PPU202可能具有不同数目的处理内核、不同容量的本地并行处理存储器等等。在存在多个PPU202的情况下,可并行操作那些PI3U从而以高于单个PPU202所可能达到的吞吐量来处理数据。包含一个或多个PPU202的系统可以以各种配置和形式因素来实现,包括台式电脑、笔记本电脑或手持式个人计算机、移动设备、服务器、工作站、游戏控制台、嵌入式系统等等。
[0039]本发明的一个实施例可以实现为用于在计算机系统上使用的程序产品,所述计算机系统诸如例如图1的计算机系统100。程序产品的一个或多个程序定义实施例的各功能(包括本文所描述的方法)并且可以包含在各种计算机可读存储介质上。示例性计算机可读存储介质包括但不限于:(i)不可写的存储介质(例如,计算机内的只读存储器设备,诸如可由CD-ROM驱动器读取的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失性半导体存储器),在其上存储永久性信息;和(ii )可写的存储介质(例如,磁盘驱动器或硬盘驱动器内的软盘或者任何类型的固态随机存取半导体存储器),在其上存储可更改的信息。
[0040]时钟系统概述
[0041]图3是包括时钟系统301的常规计算机系统300的框图。在计算机中,同步对于计算机操作是至关重要的。时钟系统301将由常规计算机系统300实行的任务进行同步。这类任务可以包括例如在操纵大批其他计算机任务当中的数据之前加载数据。计算机的所有设备不一定在单一时钟上进行操作。常规计算机系统300上的不同设备可能要求以用于不同设备的不同时钟频率进行操作。出于解释的目的,要求稍微不同时钟频率的常规计算
机系统 300 的部件是 PPU202,包括 PPU202 (O)、PPU202 (I)、......以及 PPU202 (U-1),其
中 U > I。
[0042]时钟系统301包括时钟发生器302,包括时钟发生器302 (O)、时钟发生器302(I)、……以及时钟发生器302 (U-1),其中U≥1。因为在该示例中每个特定设备以不同时钟频率操作,所以每个时钟发生器302耦连到特定设备。例如,时钟发生器302 (O)耦连到PPU202 (O)等等。每个时钟发生器302配置为发送输出时钟信号303到特定设备。例如,时钟发生器302 (O)配置为发送输出时钟信号303 (O)到PPU202 (O)等等。每个输出时钟信号(例如输出时钟信号302 (O))是所有大致相同长度的、精确的高和低脉冲的连续流。一个时钟周期是从一个高脉冲的开始直到下一个高脉冲的开始度过的时间。
[0043]针对每个特定设备202发出每个输出信号302的每个时钟发生器302中的电路可以包括电子电路,该电子电路包括锁相环(PLL)。典型地,参考时钟(未示出)驱动锁相环(PLL),其然后驱动时钟分布(未示出)。时钟分布通常被平衡使得时钟同时到达每一个端点。这些端点中的一个是PLL的反馈输入。PLL的功能是将所分布时钟比作传入的参考时钟,并且变化其输出的相位和频率直到参考和反馈时钟是相位和频率匹配的。PLL是普遍存在的并且可以调谐跨数英尺的系统中的时钟以及小部分单片(individual chip)中的时钟。
[0044]然而,针对每个时钟发生器302具有PLL消耗集成电路上的相对大的面积。因此,下文所提供的方法减少被要求生成不同频率的时钟信号的PLL和/或其他设备的数目。
[0045]时钟频率调制概述
[0046]图4是根据本发明的一个实施例的、包括经调制时钟系统401的计算机系统400的框图。出于解释的目的,经调制时钟系统401包括耦连到经调制时钟设备402的一个时钟源410 (例如一个PLL)。取代图3的时钟发生器302 (例如PLL),图4的经调制时钟系统401包括经调制时钟设备402和一个时钟源410。因此,经调制时钟系统401大致减少被要求针对计算机系统400的不同设备生成时钟信号的PLL和/或其他设备的数目。
[0047]还出于解释的目的,要求稍微不同时钟频率的计算机系统400的部件是PPU202,
包括PPU202 (O), PPU202 (I)......以及PPU202 (U-1),其中U≥I。然而,本方法不是这
样受限的。例如,一个PPU (例如PPU202 (O))可以包括每个要求以不同时钟频率操作的多个设备。可替代地,要求不同频率的设备甚至可能不是GPU的PPU的一部分,而是例如CPU或其他设备的一部分。
[0048]经调制时钟设备402包括经调制时钟设备402 (O)、经调制时钟设备402 (I)......以及经调制时钟设备402 (U-l),其中US I。因为在该示例中每个特定设备以不同时钟频率操作,所以每个经调制时钟设备402耦连到特定设备。例如,经调制时钟设备402 (O)耦连到PPU202 (O)等等。每个经调制时钟设备402配置为发送输出时钟信号403到特定设备。每个经调制时钟设备402可以提供不同时钟信号到不同设备(例如PPU202(0)、PPU202⑴等)。例如,时钟发生器302 (O)配置为发送输出时钟信号302 (O)到PPU202 (O)等等。同样地,经调制时钟信号402 (I)配置为发送不同输出时钟信号403 (I)到PPU202 (I)等
坐寸ο
[0049]每个经调制时钟设备402包括校准器设备404、输出时钟发生器406以及更新设备408。例如,经调制时钟设备402 (O)包括校准器设备404 (O)、输出时钟发生器406 (O)以及更新设备408 (O)。经调制时钟设备402 (I)包括校准器设备404 (I)、输出时钟发生器406 (I)以及更新设备408 (I)。经调制时钟设备402 (U-1)包括校准器设备404 (U-1)、输出时钟发生器406 (U-1)以及更新设备408 (U-1),其中U≤I。
[0050]在一些实例中,校准器设备404 (O)可以根据校准器设备404 (O)在集成电路上占据的物理面积以及根据实施校准操作所要求的处理努力而提出挑战。因此,可替代实施例(未示出)是用于经调制时钟系统401具有一个包括下面各项(下文参考图5-8进一步对其进行讨论)的经调制时钟设备402 (O):一个校准器设备404、一个延迟设备的序列、多个输出相位多路复用器516以及多个更新设备408。
[0051]下文参考图5-6进一步描述了输出时钟发生器406 (O)。下文参考图7进一步描述了更新设备408 (O)。下文参考图8进一步描述了校准器设备404 (O)。同样参考数字的其他设备类似地进行配置。 [0052]输出时钟发生器
[0053]图5是根据本发明的一个实施例的、图4的经调制时钟设备402(0)的一部分的框图。输出时钟发生器406 (O)耦连到时钟源410。输出时钟发生器406 (O)使能通过将延迟设备(例如数字延迟设备)的序列添加在时钟源410后面来调制固定频率时钟源410 (例如PLL)的输入时钟信号411的数字方式,每个延迟级之后具有抽头点。抽头点是延迟设备和输出相位多路复用器(mux) 516 (O)之间的连接点(例如节点)。延迟设备是配置为接收时钟信号(例如来自时钟源410的输入时钟信号411或来自前一个数字延迟设备的经延迟时钟信号)以及提供被延迟相对于所接收时钟信号的相位的经延迟时钟信号。下文参考图6进一步描述了该延迟的概念。在图5的该示例中,输出时钟发生器406 (O)包括10个延迟级以及10个相应的抽头点。例如抽头点518位于第一延迟级之后。为了图5的简单性,其他抽头点不具有参考数字。在另一个示例中,输出时钟发生器406 (O)可以包括任何数目的延迟。在图5的该示例中,延迟串行地加以排列。在另一个示例(未示出),延迟可以并行进行排列。
[0054]还如图5所不,输出时钟发生器406 (O)包括输出相位多路复用器(mux) 516,其配置为接收输入时钟信号411和如由每个延迟所修改的每个经延迟时钟信号。输出相位mux516 (O)还配置为接收输出相位514 (O)的选择。输出相位514 (O)设定输出相位mux516 (O)将以其传递输出时钟信号403 (O)的相位。输出相位的选择由下文参考图7进一步对其进行描述的更新设备来提供。输出时钟发生器406 (O)配置为调制输入时钟信号411以满足配置为接收输出时钟发生器406 (O)的输出时钟信号403 (O)的电子部件的操作参数。
[0055]如上文参考图4所描述的,特定部件可能要求与输入时钟信号411和/或其他部件的频率不同的时钟频率。输出时钟发生器406 (O)的时钟调制使系统能够将所要求时钟频率提供到特定部件而不添加附加的PLL。
[0056]在图5中,通过使用输出相位mux516,输出时钟发生器406 (O)可通过以高速改变抽头点(例如向前移动到较晚抽头点或者向后移动到较早抽头)来调制输入时钟信号411。通过在延迟级的序列中连续地从一个抽头向前移动到较晚抽头,输出时钟发生器406 (O)可以提供比输入时钟信号411更慢的输出时钟信号403(0)。相反,通过连续地从一个抽头向后移动到较早抽头,输出时钟发生器406 (O)可以提供比输入时钟信号411更快的输出时钟信号403 (O)。下文参考图6进一步讨论了对在抽头当中向前移动或向后移动的这些概念。
[0057]图6是根据本发明的一个实施例的、示出由输出时钟发生器406 (O)所实行的时钟频率调制的示范性运算过程的图。在该示例中,假定输出时钟发生器406 (O)的要求是生成具有95.2MHz (或10.5ns/周期)的频率并且输出时钟发生器接收IOOMHz (或10.0ns/周期)的输入时钟信号411。典型配置将是提供额外的PLL以生成所要求的95.2MHz,因为否则将没有办法从IOOMHz输入时钟信号411达到所要求的95.2MHz。相反,在本系统中,取代添加额外的PLL,系统可以调制IOOMHz的输入时钟信号以生成95.2MHz的所要求频率。
[0058]在图6的示例中,输入时钟信号均匀地分成10个相位,包括相位O、相位36、相位72、相位108、相位144、相位180、相位216、相位252、相位288、相位324以及相位360(或相位O)。相位O是原始输入时钟信号411的相位。相位360是从相位O偏移360度,但是作为实际问题,可以视为等同于相位O。相位36是从相位O偏移36度。相位72是从相位O偏移72度等等。这些相位中的每一个的每个时钟周期的持续时间是10.0ns/周期(或100MHz),其是输入时钟信号411的周期的持续时间。两个相邻相位之间的时间距离是0.1ns0延迟时间不一定必须相等。在另一个实施例(未示出)中,延迟时间中的至少两个是不相等的。
[0059]为了生成用于输出时钟信号403 (O)的95.2MHz (或10.5ns/周期)的频率,输出时钟发生器406 (O)在选定的时间时将输出时钟信号403 (O)偏移到适当相位。结果是输出时钟信号403 (O)的一些时钟周期比所要求持续时间(例如10.5ns)更长,而一些时钟周期比所要求持续时间(例如10.5ns)更短。在延长的时期期间,时钟周期的平均持续时间大致等于所有时钟周期持续时间的和除以所生成的时钟周期的数目。因此,时钟周期的平均持续时间模拟输出时钟信号403 (O)的所要求频率(例如10.5ns)。
[0060]在图6的该示例中,输出时钟信号403 (O)的时钟周期的一半是每个IOns持续时间,而时钟周期的一半是每个11.0ns持续时间。在延长的时期期间,时钟周期的平均持续时间是大约10.5ns,其等于(10.0ns+11.0ns)/2。因此,时钟周期的平均持续时间模拟用于输出时钟信号403 (O)的95.2MHz的所要求频率。
[0061]如图6所不,对于10.0ns的第一时钟周期,输出时钟发生器406 (O)不偏移抽头点。然后,在第二时钟周期的末尾之前的适当时间时,输出时钟发生器406 (O)将抽头点从相位O偏移到相位36,使得第二周期是11.0ns持续时间。偏移的适当时间是在当两个相位(例如相位O和相位36)都在高态或者当两个相位都在低态时的时间,使得不发生不洁的偏移。接着,对于10.0ns的第三周期,输出时钟发生器406 (O)不实行偏移。然后,在第四时钟周期的末尾之前的适当时间时,输出时钟发生器406 (O)将抽头点从相位36偏移到相位72,使得第四周期是11.0ns持续时间。另外,偏移的适当时间是在的那个两个相位都在高态或当两个相位(例如相位36和相位72)都在低态时的时间,使得不发生不洁的偏移。接着,对于10.0ns的第五周期,输出时钟发生器406 (O)不实行偏移。然后,在第六时钟周期的末尾之前的适当时间时,输出时钟发生器406 (O)将抽头点从相位72偏移到相位108,使得第六周期是11.0ns持续时间。另外,偏移的适当时间是在当两个相位(例如相位72和相位108)都在高态或者当两个相位都在低态时的时间,使得不发生不洁的偏移。输出时钟406以类似方式继续实行偏移的序列以模拟平均时钟周期,其在该示例中是10.5ns/周期(或 95.2MHz)。
[0062]注意,前一个示例示出输出时钟发生器406 (O)可以如何减慢时钟频率(例如将IOOMHz输入减少到95.2MHz输出)。以类似的方式,输出时钟发生器406 (O)可以加速时钟频率(例如将IOOMHz输入增加到105MHz输出)。为了加速时钟频率,取代对随后的相位做出偏移的序列,输出时钟发生器406 (O)配置为对先前的相位做出偏移的序列。作为不例(未不出),对于10.0ns的第一时钟周期,输出时钟发生器406 (O)不实行偏移。然后,在第二时钟周期的末尾之前的适当时间时,输出时钟发生器406 (O)将抽头点从相位O偏移到相位324,使得第二周期是9.0ns持续时间。偏移的适当时间是在当两个相位(例如相位O和相位324)都在高态或者当两个相位都在低态时的时间,使得不发生不洁的偏移。接着,对于10.0ns的第三周期,输出时钟发生器406 (O)不实行偏移。然后,在第四时钟周期的末尾之前的适当时间时,输出时钟发生器406 (O)将抽头点从相位324偏移到相位288,使得第四周期是9.0ns持续时间。另外,偏移的适当时间是在当两个相位都在高态或者当两个相位(例如相位324和相位288)都在低态时的时间,使得不发生不洁的偏移。接着,对于
10.0ns的第五周期,输出时钟发生器406 (O)不实行偏移。然后,在第六时钟周期的末尾之前的适当时间时,输出时钟发生器406 (O)将抽头点从相位288偏移到相位252,使得第六周期是9.0持续时间。另外,偏移的适当时间是在当两个相位(例如相位288和相位252)都在高态或者当两个相位都在低态时的时间,使得不发生不洁的偏移。输出时钟发生器406(O)以类似方式继续实行序列偏移以模拟平均时钟周期,其在该示例中是9.5ns/周期(或者 105MHz)。
[0063]下文参考图9对用于经调制时钟设备402 (O)的方法进行进一步讨论。
[0064]时钟更新设备
[0065]图7是根据本发明的一个实施例的、图4的经调制时钟设备402(0)的一部分的另一个框图。更新设备408 (O)的目的是在适当时间时将抽头点518 (O)偏移到适当相位。因为每个相位更新和下一个输出相位的生成之前存在非零时间,所以每个更新的施行需要稍微在输出时钟发生器406 (O)生成下一个输出相位之前发生。
[0066]更新设备408 (O)耦连到输出时钟发生器406 (0),该输出时钟发生器406 (O)耦连到时钟源410。更新设备408 (O)包括更新相位mux718 (0),其具有接收输入时钟信号411的相位的输入。在该示例中,更新相位mux718(0)接收原始输入时钟信号411以及输入时钟信号411的10个经延迟相位。输出相位分数计数器726 (O)耦连到更新相位mux718(O)和输出相位mux516 (O)。输出相位分数计数器726 (O)配置为从更新相位mux718 (O)接收更新时钟信号703 (O)以及发送输出相位514 (O)到输出相位mux516 (O)。更新相位设备722 (O)耦连到输出相位分数计数器726 (O)以及更新相位muX718 (O)。更新相位设备722 (O)配置为从输出相位分数计数器726 (O)接收输出相位514 (O)以及发送更新相位724 (O)到更新相位mux718 (O)。
[0067]输出相位分数计数器726 (O)跟踪(例如计数)更新时钟信号703 (O)以传递当前输出相位514 (O)。输出相位分数计数器726 (O)从而计算用于输出相位mux516 (O)的当前抽头点。输出相位分数计数器726 (O)是活动抽头的数目的分数累加器/减法器模(modulo)。例如,让N等于用于输入时钟信号411的相位的360度的抽头的数目。让OP等于当前输出相位514 (O)。让UP等于当前输出相位724 (O)。然后,出于解释的目的,更新相位设备722 (O)可以根据下面的示范性等式计算更新相位UP:
[0068]UP=[0P+int (3/4* (N - O) ]mod N (等式 I)
[0069]例如,如果OP等于4并且N等于10,那么UP等于0,其等于[4+int (3* (10-1)/4)]modl0。如果OP等于5并且N等于10,那么UP等于1,其等于[5+int (3* (10-1)/4)]modlO等等。
[0070]等式I是更新相位设备722 (O)可以如何以这样的方式将更新相位UP从输出相位OP偏移:更新时钟信号703 (O)的沿大致总是落在输出时钟信号403 (O)负沿和正沿之间。更新相位的该偏移确保由于改变输出相位mux516 (O)中的抽头,所以输出时钟信号
403(O)大致不存在差错(glitch)(例如没有不洁的切换)。本技术不限于等式I。更新相位设备722 (O)可配置为以在本技术的范围内的许多可替代方式进行偏移。
[0071]以这种方式,输出时钟信号403(0)的长期频率恒定在对输入时钟信号411的固定比率上。在输出相位分数计数器726 (O)处所要添加或减去的值与360度相位确保恒定长期频率操作所需要的级的数目有关。例如,返回参考图6的示例,输出相位分数计数器726(O)配置为每隔一个周期计数1.0ns的偏移以达到长期频率95.2MHz (或10.5ns/周期)。
[0072]下文参考图10对用于更新设备408 (O)的方法进行进一步讨论。
[0073]校准器设备
[0074]图8是根据本发明的一个实施例的、图4的经调制时钟设备402 (O)的更详细的框图。校准器设备404 (O)的目的是检测输入时钟信号411的360度相位(或O度相位)的位置。360度相位的精确位置可取决于输入时钟信号411的频率和经调制设备402 (O)的过程(process)、电压和温度(PVT)的变化而改变。
[0075]校准器设备404 (0)耦连到时钟源410。在该示例中,校准器设备404 (0)包括XNOR门的序列和低通滤波器830 (0)的序列。每个XNOR门配置为接收输入时钟信号411和输入时钟信号411的各相位中的一个。例如,第一 XNOR门接收输入时钟信号411和在36度相位处的输入时钟信号。第二 XNOR门接收输入时钟信号411和在72度相位处的输入时钟信号。第三XNOR门接收输入时钟信号411和在108度相位处的输入时钟信号。第四XNOR门接收输入时钟信号411和在144度相位处的输入时钟信号。第五XNOR门接收输入时钟信号411和在180度相位处的输入时钟信号。第六XNOR门接收输入时钟信号411和在216度相位处的输入时钟信号。第七XNOR门接收输入时钟信号411和在252度相位处的输入时钟信号。第八XNOR门接收输入时钟信号411和在288度相位处的输入时钟信号。第九XNOR门接收输入时钟信号411和在324度相位处的输入时钟信号。第十XNOR门接收输入时钟信号411和在360度相位处的输入时钟信号。[0076]在图8的示例中,每个XNOR门的输出耦连到低通滤波器830 (O)中的一个,总共10个低通滤波器。出于简单性的缘故,图8仅示出一个低通滤波器。每个XNOR门操作为用于输入时钟信号411和在每个XNOR门处所接收的特定相位的输入时钟信号的比较器。如果输入时钟信号411和特定相位的输入时钟信号411 二者大致相同(例如如果两个输入都是I或者如果两个输入都是0),那么每个XNOR门输出高(例如I)。如果一个而不是两个输入是高(例如如果一个输入是1,而另一个输入是0),那么XNOR门输出低(例如O)。
[0077]因为延迟电路的序列具有有限的长度(例如图8中的10个延迟),所以用于输出时钟信号403 (O)的抽头点必须在某一时刻重新利用。该重新利用必须针对加速和减慢输出时钟信号403 (O)而发生。为了使该重新利用发生,校准器设备404 (O)配置为检测输入时钟信号411已由360度的相位(或整数系数的360度)以其进行延迟的特定延迟。因为延迟基于PVT是高度可变的,所以校准器设备404 (O)配置为连续地计算和更新360度的位置,否则可能发生严重的抖动(jitter)。抖动是与输入时钟信号411的真实周期性的不期望的偏离。当360读点改变时,校准器设备404 (O)通过当当前抽头点不靠近360度点时使改变有效来确保平滑的操作。
[0078]每个低通滤波器配置为当输入时钟信号411和特定经延迟时钟信号已大致相等足够长时间时翻转到高有效(active high)。在每个测量的开始,重置开关832 (O)被关闭以对低通滤波器的电容器进行放电。应该确定测量时间,使得阈值仅越过最多2个抽头点。当经调制时钟设备402 (O)在操作中时动态地变化该测量时间可能是必要的。
[0079]下文参考图11对用于校准设备404 (O)的方法进行进一步讨论。
[0080]方法概述
[0081]图9是根据本发明的一个实施例的、用于生成输出时钟信号的方法步骤的流程图。尽管结合输出时钟发生器406 (O)描述了方法步骤,但是本领域技术人员将理解的是,配置为以任何次序实现方法步骤的任何系统均在本发明的范围内。
[0082]如所示,方法900开始于动作905,在该处输出时钟发生器406 (O)从时钟源接收输入时钟信号。在动作910中,输出时钟发生器406 (O)将延迟的序列应用到输入时钟信号以生成输入时钟信号的一个或多个经延迟相位。在动作915,输出时钟发生器406 (O)发送输入时钟信号和输入时钟信号的一个或多个相位到输出相位mux。在动作920,输出时钟发生器406从输入时钟信号和输入时钟信号的一个或多个经延迟相位当中选择输入时钟信号的适当相位。在动作925,输出时钟发生器406 (O)基于输入时钟信号的适当相位生成输出时钟信号。方法100可随后返回到1005并且继续。
[0083]图10是根据本发明的一个实施例的、用于更新输出时钟信号的相位的方法步骤的流程图。尽管结合更新设备408 (O)描述了方法步骤,但是本领域技术人员将理解的是,配置为以任何次序实现方法步骤的任何系统均在本发明的范围内。
[0084]如所示,方法100开始于动作1005,在该处更新设备408 (O)在更新相位mux处接收输入时钟信号和输入时钟信号的一个或多个经延迟相位。在动作1007,更新相位mux发送更新时钟信号到输出相位分数计数器。在动作1010,更新设备408 (O)应用输出相位分数计数器以生成输出相位。在动作1015,更新设备408 (O)发送输出相位到输出时钟发生器的输出相位mux以及到更新相位设备。在动作1020,更新设备408 (O)经由更新相位设备生成更新相位。在动作1025,更新设备408 (O)发送更新相位到更新相位mux。方法1000可随后返回到步骤1005并且继续。
[0085]图11是根据本发明的一个实施例的、用于自动校准经调制时钟设备的方法步骤的流程图。尽管结合校准器设备404 (O)描述了方法步骤,但是本领域技术人员将理解的是,配置为以任何次序实施方法步骤的任何系统均落在本发明的范围内。
[0086]如所示,方法1100开始于动作1105,在该处校准器设备404 (O)关闭每个低通滤波器的每个重置开关以重置(例如短路)每个低通电容器。在动作1110,校准器设备404(0)打开每个重置开关。在动作1115,针对每个低通滤波器,校准器设备404 (O)等待必要的时间T,使得当信号(几乎)完全在相位中时至少I个抽头点(例如XNOR门)使电容器阈值被越过。在动作1120,校准器设备404 (O)读出从所有阈值比较器(例如XN0R)所接收的值。在决策操作1125中,校准器设备404 (O)确定是否至少一个比较器已越过电容器阈值。如果否,那么校准器设备404 (O)在动作1130增加时间T,并且然后返回到动作1105。然而,如果至少I个比较器已越过电容器阈值,那么比较器设备404 (O)移动到决策操作1135,在该处校准器设备404 (O)确定是否多于2个比较器已越过电容器阈值。如果是,那么校准器设备404 (O)在动作1140减少时间T并且然后返回到动作1105。然而,如果多于2个比较器尚未越过电容器阈值(例如仅I或2个比较器已越过电容器阈值),那么校准器设备
404(O)移动到动作1145,在该处校准器设备404 (O)标识和/或抽头点的适当数目存在。因此,校准器设备404 (O)可以通知输出相位分数计数器726 (O)或者经调制时钟设备402(O)的另一个设备适当数目N存在还是不存在。
[0087]图9-11的这些方法可以包括未在该方法概述中讨论的其他动作和/或细节。其他动作和/或细节参考其他附图进行描述并且可以是这些方法的一部分,这取决于实现方案。例如,返回参考图8,如果校准器设备404 (O)确定适当数目N与前一个适当数目N不同,那么校准器设备404 (O)发送经更新校准参数832 (O)到反映该新现实(例如新适当数目N)的输出相位分数计数器。进一步地,校准参数832 (O)也可以包括用于输出时钟信号403 (O)的目标频率;经调制时钟设备402 (O)配置为尝试通过协调输出时钟发生器406(O)、更新设备408 (O)以及校准器设备404 (O)的操作来生成目标频率。
[0088]注意,因为比较器(例如XNOR门)不直接影响输出时钟信号403 (0),所以校准器设备404 (O)可以与输出时钟发生器406 (O)并行操作。校准器设备404 (O)可以以有限的间隔或连续地进行操作,这取决于一个人期待PVT条件改变多快。如果已知PVT条件非常慢地改变,那么校准器设备404 (O)可配置有例如仅仅一个相位和一个阈值检测器(例如一个XNOR门、一个低通滤波器以及选择相位的mux);校准器设备404 (O)然后可以顺序地(例如针对第一抽头点,然后针对第二抽头点,然后针对第三抽头点等)测量最佳相位。因为仅存在一个低通滤波器和一个XNOR门,所以这类减少节省空间(例如硅面积)。可替代地,在延迟元件的规范已知并且被保证大致恒定(例如延迟元件按照PVT条件是大致恒定的)的情况下,校准器设备404 (O)可能不是必要的。例如,如果时钟源(例如PLL设备)配置为自动生成一个时钟信号的不同相位,那么这类可靠状态可能发生。
[0089]有利地,本技术的经调制时钟系统可以生成稍快于或者稍慢于现存源时的输出时钟信号,并且这样做不需要用于每个要求稍微不同的时钟频率的设备的额外的PLL。
[0090]以上已参照特定实施例对本发明进行了描述。然而,本领域普通技术人员将理解的是,可对此做出各种修改和变化而不脱离如随附权利要求书中所阐述的本发明的较宽精神和范围。因此,前面的描述以及附图应被视为是例示性而非限制性的意义。
【权利要求】
1.一种经调制时钟设备,包括用于更新所述经调制时钟设备的相位的更新设备,所述更新设备包括: 更新相位多路复用器,其耦连到输出时钟发生器的输出相位多路复用器并配置为接收输入时钟信号以及所述输入时钟信号的一个或多个相位; 输出相位分数计数器,其耦连到所述更新相位多路复用器并配置为接收更新时钟信号以及生成输出相位;以及 更新相位设备,其耦连到所述输出相位分数计数器以及所述更新相位多路复用器, 其中所述输出相位分数计数器进一步配置为发送所述输出相位到所述输出相位多路复用器以及所述更新相位设备,以及 其中所述更新相位设备配置为生成更新相位以及发送所述更新相位到所述更新相位多路复用器。
2.根据权利要求1所述的经调制时钟设备,其中所述更新相位多路复用器配置为将所述更新相位从所述输出相位偏移,使得所述更新时钟信号的沿落在由所述输出相位多路复用器所生成的输出时钟信号的负沿和正沿之间。
3.根据权利要求1所述的经调制时钟设备,其中所述输出相位分数计数器包括所述输入时钟信号的活动抽头的数目的累加器模。
4.根据权利要求1所述的经调制时钟设备,其中输出相位分数计数器包括所述输入时钟信号的活动抽头的数目的减法器模。
5.根据权利要求1所述的经调制时钟设备,进一步包括校准器设备,所述校准器设备包括比较器的序列,其中每个比较器配置为接收所述输入时钟信号以及与包括在延迟设备的序列中的不同延迟设备相关联的抽头点处的所述输入时钟信号的不同经延迟相位。
6.根据权利要求5所述的经调制时钟设备,其中所述校准器设备进一步包括配置为确定用于所述延迟设备的序列的抽头点的适当数目的低通滤波器的序列。
7.根据权利要求6所述的经调制时钟设备,其中所述低通滤波器的序列进一步配置为读取从所述比较器的序列所接收的值以确定何时至少一个比较器越过电容器阈值以及确定何时不多于两个比较器已越过所述电容器阈值。
8.根据权利要求6所述的经调制时钟设备,其中所述校准器设备配置为确定何时当前的抽头点的适当数目与先前经确定的抽头点的适当数目不同,以及将包括所述当前的抽头点的适当数目的经更新校准参数发送到所述输出相位分数计数器。
9.根据权利要求1所述的经调制时钟设备,其中所述校准器设备配置为与所述输出时钟发生器并行操作。
10.一种计算设备,包括: 一个或多个电子部件;以及 经调制时钟系统,其配置为通过使用一个或多个经调制时钟设备将一个或多个输出时钟信号传递到所述一个或多个电子部件,其中至少一个经调制时钟设备包括更新设备,其具有: 更新相位多路复用器,其耦连到输出时钟发生器的输出相位多路复用器并配置为接收输入时钟信号以及所述输入时钟信号的一个或多个相位, 输出相位分数计数器,其耦连到所述更新相位多路复用器并配置为接收更新时钟信号以及生成输出相位,以及 更新相位设备,其耦连到所述输出相位分数计数器以及所述更新相位多路复用器,其中所述输出相位分数计数器进一步配置为发送所述输出相位到所述输出相位多路复用器以及所述更新相位设备, 其中所述更新相位设备进一步配置为生成更新相位以及发送所述更新相位到所述更新相位多路复 用器。
【文档编号】G06F1/04GK103970180SQ201310752913
【公开日】2014年8月6日 申请日期:2013年12月31日 优先权日:2013年2月6日
【发明者】汤姆·J·韦伯 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1