用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法
【专利说明】用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法
本申请是申请号为201080056178.8、申请日为2010年12月10日、发明名称为“用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法”的发明专利申请的分案申请。
相关申请的交叉引用
[0001]本申请要求的美国的非临时申请序列号为12/635,942,申请日为2009年12月11日的权利,将该申请的内容在此处全部弓I用以供参考。
技术领域
[0002]本申请涉及计算机总线和互联协议,诸如高速外部组件互连协议(PCIe:Peripheral Component Interconnect Express),超级传递协议(HyperTransport),或者类似的协议。
【背景技术】
[0003]在计算机系统中,提供多种总线用于将主机处理器和其他设备进行互连并且在其中传送数据。例如,已开发的取代旧版本的外部组件互连(PC1-Peripheral ComponentInterconnect)和 PC1-X 标准的高速外部组件互连(PCIe 〖Peripheral ComponentInterconnect Express) o PCIe被用在客户端、服务器以及工业应用中以作为主板(motherboard)级的互连来链接装配在主板上的外设以及作为附加主板的扩展卡接口。
[0004]PCIe和早期的PCI或PC1-X总线之间的区别是基于点到点串行链路的拓扑结构,而不是共享的并行总线结构。可以认为PCIe是取代旧的并行PCI和PC1-X总线的高速串行协议。在软件级上,PCIe则维持与PCI的兼容,这样的话,可在与PCIe的新特征没有直接的关系的遗留应用(legacy applicat1n)和操作系统中配置以及使用PCIe装置。
[0005]在PCIel.0或1.1版本中,每条通道支持的数据速率为250MB/S。而在2007年发布的PCIe2.0版本中,加入了第二代信号模式,将信号的传输速率翻倍为500MB/S。而在目前开发的PCIe3.0中,将加入第三代信号模式从而使速率达到lGB/s。
[0006]PCIe2.0和3.0也维持与早期版本的PCIe(例如,PCIe 1.x)的兼容性。由于市场中依然使用与PCIe 1.X兼容的装置,因此与PCIe 2.0或3.0兼容的装置则需要与PCIe 1.X兼容的装置相连。PCIe 2.0或3.0装置需要切换由一个端口所请求的时钟频率(clock speed)并且在一段时间内不中断在任意其他端口上的数据传输的情况下无干扰(glitch-free)的更新该时钟频率。
【发明内容】
[0007]用于切换运行在不同时钟频率下的多链路的时钟频率的装置,包括分频器和时钟切换控制器。该分频器用于从源时钟信号生成多个不同频率的时钟信号。该时钟切换控制器用于在由多个链路端口请求的多个数据速率中选择一个最大的数据速率,并在选定的最大数据速率处将传送时钟信号与每个端口的时钟使能信号一起输出到端口,每个端口的时钟使能信号选择性地使能传输时钟信号来匹配由多个端口中的每一个所请求的数据速率。
[0008]用于切换运行在不同时钟频率下的多链路的时钟频率的方法,包括从一个源时钟信号生成多个不同频率的时钟信号。在由多个链路端口所请求的多个数据速率中确定一个最大的数据速率。在选定的最大速率处提供到多个端口中的每一个的传送时钟信号。提供时钟使能信号到多个端口中的每一个来选择性地使能传送时钟信号以匹配由多个端口的每一个所请求的数据速率。
[0009]一种存储由通用计算机执行的切换运行在不同时钟频率下的多链路的时钟信号的指令组的计算机可读存储介质。该指令组包括用于从一个源时钟信号生成多个不同频率的时钟信号的生成代码部分(segment);用于在由多个链路端口请求的数据速率中确定最大数据速率的确定代码部分(segment);用于为多个端口的每一个提供最大数据速率的时钟信号的第一提供代码部分(segment);以及用于为多个端口的每一个提供时钟使能信号的第二提供代码部分(segment),该时钟使能信号选择性地使能传输时钟信号以匹配由多个端口的每一个所请求的数据速率。该指令组可以是用于构建装置的硬件描述语言(HDL:hardware descript1n language)指令。
【附图说明】
[0010]结合说明书中的实施例和附图,从下述说明书中可以得到更详细的描述,其中,
[0011]图1显示了分频器和时钟切换控制器的第一部分;
[0012]图2显示了时钟切换控制器的第二部分;
[0013]图3显示了时钟使能信号生成器;
[0014]图4显示了时钟生成器的时钟切换时序;以及
[0015]图5显示了端口 A-C的使能信号的示例性时序图。
【具体实施方式】
[0016]本申请描述的实施例允许装置选择由多个端口中的一个所请求的多个时钟频率中的一个,并且使得时钟频率无干扰的(glitch-free)更新,即在已知的时间内不中断其他端口上的数据传输。本实施例为多频率下运行多链路的装置提供了时钟切换的方案。本实施例可用在符合任何计算机总线和互连协议的支持多时钟频率的任意装置上。例如,本实施例可应用在任何支持PCIe 2.0或3.0,或未来将开发出来的任何版本的任意PCIe兼容设备上。随后,本实施例将参照PCIe协议来解释。然而,应该注意的是,本实施例适用于任何计算机总线和互连协议,包括但不限于高速外部组件互连协议(PCIe PeripheralComponent Interconnect Express),超级传递协议(HyperTransport),等等。
[0017]图1-3显示了根据一个实施例在不同频率中用于生成三个时钟信号和改变时钟频率的示例性的时钟生成器。时钟生成器100包括分频器110和时钟切换控制器200。图1显示了分频器110和时钟切换控制的第一部分200a。图2显示了时钟切换控制器的第二部分200b。图3显示了作为时钟切换控制器200的一部分的时钟使能信号产生器300。图4显示了时钟生成器100的时钟切换时序图(timing)。应该注意的是,图1_3中所示的时钟生成器只是一个示例,并不是一个限定,任何用于频率分解和时钟信号切换的配置都可用来实现时钟生成器。此外,时钟生成器可生成不同的两个或多于三个频率信号并根据需要在这些信号中切换。
[0018]参考图1,时钟生成器100从锁相环路150 (PLL: phase locked loop)接收锁相环路时钟信号102(PLLCLK:phase locked loop clock)。在这个实施例中,PLL时钟信号102的频率是2GHz并且利用分频器110将该PLL时钟信号102除以2,4,8以分别对应于PCIe的第三、第二、第一代的处理(图4中线1-4显示了该PLL时钟信号和三个时钟信号)。应该注意的是,PLL时钟信号102可以是任何频率并且可以根据系统的要求被分解为任意频率信号。尽管本实施例使用了 PLL时钟信号,本领域技术人员应该知道也可以使用其他源时钟信号。
[0019]图1中的示例性分频器110包括倒相器112,专用或非(NOR)门118,126,或(OR)门 124和D触发器(D flip-flops) 114,116,120,122,128,13(LD触发器 114,116,120,122,128,130由PLL时钟信号同步。D触发器114的输出进入到D触发器116中并且经过反相器112后也反馈回D触发器114。D触发器114的输出使每一个PLL时钟周期被反相,因此,D触发器116在PLL时钟信号的半频处输出PCIe第三代时钟信号132c (即,生成PCIe第三代时钟信号)。
[0020]D触发器120的输出进入到D触发器122中并且也通过专用或非逻辑门118后反馈回D触发器120中。D触发器114的输出进入到专用或非逻辑门118的另一个输入中。D触发器122在PLL时钟信号的四分之一频率处输出PCIe第二代时钟信号132b。
[0021]D触发器128的输出进入到D触发器130中并且也通过专用或非逻辑门126后反馈回D触发器128中。在进入专用或非126之前,D触发器114和D触发器120的输出被或门124进行选通(gated)。D触发器130在PLL时钟信号102的八分之一频率处输出PCIe第一代时钟信号132a。
[0022]时钟门控(clock-gating)单元212a,212b,212c截止上面生成的时钟信号132a,132b,132c 中的两个信号并且根据控制信号 244a,244b,244c (clk_gl_en,clk_g2_en,clk_g3_en)上述时钟信号132a,132b,132c中仅有一个可被输出以作为提供给链路的传送时钟信号(TXCLK:tranmit clock signal)。TXCLK信号在图4中由线17表示。控制信号244a,244b,244c在图4中由线14-16表示。时钟门控单元212a,212b,212c中的每一个分别包括门控D锁存器214a,214b,214c和与逻辑门216a,216b,216c。控制信号244a,244b,244c (clk_gl_en,clk_g2_en,clk_g3_en)中的每一个分别进入到门控 D 锁存器 214a,214b,214c中的D输入并且时钟信号132a,132b,132c中的每一个分别通过反相器输入到门控D锁存器214a,214b,214C的G输入。时钟信号132a,132b,132c中的每一个经由门控D锁存器214a,214b,214c分别进入到与逻辑门216a,216b,216c中。与逻辑门216a,216b,216c的输出进入到或门218中。当选定clk_gl_en信号244a时,则输出第一代时钟信号132a ;当选定clk_g2_en信号244b时,则输出第二代时钟信号132b ;当选
定clk_g3_en信号244c时,则第三代时钟信号132c被输出,分别通过或门218实现上述输出。
[0023]基于request_clk信号232生成了控制信号244a,244b,244c。参照图2将详细描述request_clk信号232的生成。request_clk信号232信号是指示生成时钟信号的信号。request_clk信号232可以是两位信号用来指示本实施例中的三个时钟频率中的一个(例如,“ 00 ”表不第一代时钟信号,“ OI ”表不第二代时钟信号,“ 1 ”表不第三代时钟信号)。
[0024]生成的request_clk信号232(来自图2中的电路的输出信号)在进入到D触发器238之前可通过连续的4个D触发器234,235,236,237来进行门限控制。被连续的4个延时缓冲器246,247,248,249所延迟的传送时钟信号140 (TXCLK)为D触发器234,235,236,237提供时钟。由4个延时缓冲器246,247,248,249延迟的TXCLK信号在图4中由线21-24表示。每一个延时缓冲器246,247,248,249可延迟时钟信号140 —定的延迟时间(例如,IGHz每个延迟缓冲器最多延迟I纳秒)。这是为了确保TXCLK信号嵌入延迟与内核逻辑的匹配,以及在时钟生成逻辑处将时钟延迟步进(st印)返回以匹配上述嵌入的延迟。
[0025]PLL时钟信号102为D触发器238提供时钟信号并且来自或非门240控制的D触发器114,120,128的三个输出信号分别进入到D触发器238的使能输入中,这样的话,只有在D触发器114,120,128的所有输出都低的时候,才传送由连续的D触发器234-237延迟的request_clk信号232 (并且改变TX时钟信号的频率)。经由D触发器238输出的requeSt_elk信号232基于request_clk信号232驱动三个与逻辑门242a,242b,242c的一个为高另外两个为低,并且与逻辑门242a,242b,242c的输出分别成为时钟门控单元212a,212b,212c 的控制信号 244a,244b,244c。
[0026]参考图2,详细描述了 request_clk信号232的生成。可要求PCIe设备支持多于一个链路,并且每一个链路需要不同的时钟频率。由选择器252在多个链路所请求的时钟频率中(clk_sel_A,clk_sel_B,…,clk_sel_N)选择最大的时钟频率。在本实施例中,clk_sel[l:0]信号254是一个两位信号以指示选定的最大时钟频率(在本实施例中用两位来指示从三个时钟频率中选择一个是足够的)。通过D触发器256输出的所选定的时钟频率信号(clk_sel [1: O]) 254 作为 request_clk 信号 232。该 clk_sel [1: O]信号以及 request—elk信号232在图4中用线5和6表示。
[0027]TXCLK信号为D触发器256提供时钟并且基于计数信号263 (D触发器262的输出)来使能或无效该D触发器256,计数信号263是由current_clk信号274 (D触发器272的输出)与request_clk信号232 (D触发器256的输出),以及相位信号286 (D触发器284的输出)进行比较得到的。D触发器272存储指示目前被选定的时钟频率的current_clk信号274(例如,“00”表示第一代时钟信号,“01”指示第二代时钟信号,“10”指示第三代时钟信号)。当TXCLK信号变换时,该request_clk信号232则成为current_clk信号274。
[0028]比较器264确定该request_clk信号232是否与current_clk信号274不同并且该比较器264的输出进入到D触发器262的使能输入。只有当request_clk信号232与current_clk信号274不同时,D触发器262才被使能(即,该request_clk信号已经被改变)。在requeSt_Clk信号232和current_clk信号274变得不同之后,在指向D触发器262的D输入的反馈回路中的D触发器262和一个+1加法器266作为两位计数器来计数TXCLK周期的数量。计数信号263在图4中显示为线12。
[0029]当计数信号变为“11”时比较器268输出高位。比较器268的输出进入到D触发器272的使能输入端。因此,在本实施例中在requeSt_Clk信号232已经被改变了 4个TXCLK周期之后,该request_clk信号232变成current_clk信号274,如图4中所示的线6-10。选择4个TXCLK周期是因为最快时钟信号(IGHz)与最慢时钟信号(250MHz)的比率是4并且根据系统所请求的时钟频率,不同的TXCLK周期是必须的。比较器276将cUrrent_clk信号274与request_clk信号232进行比较并输出到与逻辑门292处。
[0030]current_clk信号274驱动第一和第二复用器282,290。如果current_clk信号274是“00”,则第一复用器282输出“00”,并且如果current_clk信号274是“01”,则相位信号加2,如果current_clk信号274是“ 10”,则相位信号加I。复用器282的输出进入到D触发器284的D输入端,该触发器的两位输出是相位信号286 (图4中线11)。在本实施例中相位信号286是两位信号。如果相位信号286是“00”的话,则比较器288a输出高位,否则其输出低位。如果相位信号286是“01”的话,则比较器288b输出高位,否则其输出低位。如果相位信号是“10”的话,则比较器288c输出高位,否则其输出低位。根据CUrrent_elk信号274第二复用器290输出比较器288a,288b,288c三个输出中的一个。来自比较器276和第二复用器290的输出由与逻辑门292进行门限控制,该与逻辑门的输出则使能或无效D触发器256。
[0031]包括计数信号263和相位信号286的生成以及current_clk信号274和request_elk信号232的比较的时钟切换控制器的逻辑确保了只在一个特定相位上发生时钟信号(TXCLK)的无干扰(glitch-free)的切换,并且在已知的时间内在不中断任何其他端口上的数据传输。
[0032]参考图3,详细描述了时钟使能信号的生成。期望源时钟运行在由PCIe IP支持的最高数据速率下(例如,PCIe 3.0支持的IGHz)。时钟生成器100生成1GHz,500MHz,和250MHz时钟信号并且向所有的PCIe链路提供上述生成的时钟信号中的一个。时钟切换控制器200确定由PCIe IP内核中的活动链路所请求的最快时钟频率,并且将该最快时钟信号提供给所有PCIe链路。由于提供相同的时钟信号给所有的PCIe链路,因此该时钟切换控制器200也为请求较慢时钟信号的每一个链路生成时钟使能信号。例如,如果由链路请求的最快时钟频率是IGHz的话,那么时钟切换控制器200将生成并提供IGHz的时钟信号到所有的链路。时钟切换控制器200也为每一个链路提供时钟使能信号,这样的话该IGHz信号对请求500MHz时钟频率的链路每隔一个时钟周期使能一次,并且该时钟使能信号仅对请求250MHz的链路每四个时钟周期使能一次。时钟使能信号在图4中显示为线18-20。每一个链路选择三个时钟使能信号中的一个信号。
[0033]图3显示了链路A的示例性时钟使能信号生成电路300。支持多链路的时钟切换控制器200包括多套图3中所示的电路300。
[0034]由链路A请求的时钟频率为clk_sel_A,其为两位信号并根据所请求的时钟频率(例如,“00”表不第一代时钟信号,“01”表不第二代时钟信号,“10”表不第三代时钟信号)驱动复用器310输出三个输入(使能信号309a,309b,309c)中的一个。
[0035]基于current_clk 信号 274,request_clk 信号 232,计数信号 263,相位信号 286而生成三个使能信号 309a,309b,309c (clk_en[0],clk_en[l],clk_en[2])。根据计数信号263 (即,如果计数信号为“11”,则为request_clk信号,否则的话则为current_clk信号),current_clk信号274或者request_clk信号232中的一个会进入到三个比较器322,332,342中。比较器302将计数信号263进行比较,该比较器的输出则控制复用器304。
[0036]如果current_clk信号274或者request_clk信号232是“00”的话,则根据current_clk信号274,第一个分支320生成一个常开模式(always-on)信号,50%占空比(duty cycle)信号,或者25%占空比信号。如果current_clk信号274或者request_clk信号232是“00”的话,则比较器322的输出(以及因此或门324的输出)总是为高位,因此则生成常开模式信号并通过D触发器308提供给复用器310。比较器325a和325c将current_clk信号274分别与“01”和“ 10”进行比较,比较器325b和325d将request_clk信号286分别与“00”和“10”进行比较。如果current_clk信号274是“01”,则比较器322的输出和与逻辑门328的输出为低,但是由于相位值为“00”,因此与逻辑门326被开启。当cUrrent_clk信号是“01”时,由于相位信号286在“00”和“01”之间变换,因此与逻辑门326的输出(以及相应地或门324的输出)有50%的时间被开启。如果current_elk信号274是“10”的话,则比较器322和与逻辑门326的输出为低位,但是由于相位信号是“00”,因此与逻辑门328被开启。当current_clk信号是“10”时,由于相位信号286在“00”,“01”,“10”,和“11”之间变换,因此,与逻辑门328的输出(以及相应的或门324的输出)有25%的时间是开启的。例如,如
果current_clk信号是“ 10”(其意味着TXCLK信号是IGHz),并且由链路A请求的时钟频率是250MHz时(即,clk_sel_A是“00”),则复用器310输出第一分支信号,该第一分支信号为来自与逻辑门328输出的25%占空比信号,IGHz的TXCLK信号仅有25%的时间是有效的能够为来自通用IGHz TXCLK的链路产生250MHz的时钟信号。如果current_clk信号是“01”时(其意味着TXCLK信号是500MHz),为链路A请求的时钟频率是250MHz (即,clk_sel_A是“00”),复用器310输出第一分支信号,该第一分支信号为从与逻辑门326输出的50%占空比信号。
[0037]如果current_clk信号274或者request_clk信号232是“01”的话,则第二分支330或者生成常开模式信号或者生成50%占空比信号。如果current_clk信号274或者request_clk信号232是“01”的话,则比较器332的输出(以及相应地或逻辑门334的输出)为常高信号,因此则生成一个常开模式信号并且通过D触发器308b提供给复用器310。比较器335a将cUrrent_clk信号与“ 10”进行比较,并且比较器335b将相位信号的第一位与“O”进行比较。如果current_clk信号274是“10”,比较器332的输出为低位,但是由于相位信号286的第一位为“0”,因此开启与逻辑门336,其生成50%占空比信号。
[0038]如果current_clk信号274或者request_clk信号232是“ 10”的话,则第三个分支340 ( S卩,比较器342)生成常开模式信号,其通过D触发器来门控复用器310。
[0039]图5显示了端口 A-C的使能信号的示例性时序图。首先,由端口 A-C请求的数据速率都是250MHz (即,每秒钟2.5千兆(GT/s))。因此,生成在250MHz的TXCLK信号并且端口 A-C的使能信号为常开模式信号。当由链路B请求的数据速率增加到500MHz时(即,传输速率增加到5GT/s),则将TXCLK信号切换为500MHz信号并且提供给所有链路A-C。由于链路A和C的数据速率保持为250MHz,因此提供50%占空比的时钟使能信号给链路A和Co然后,链路C请求的数据速率增加到1GHz。将TXCLK信号切换为IGHz信号并且提供给所有链路A-C。由于链路A和B的数据速率分别保持在250MHz和500MHz,因此链路A和B的时钟使能信号分别变为25%和50%的占空比信号。然后,由链路C请求的数据速率降为250MHzο将TXCLK信号切换回500MHz信号并且提供给所有链路A-C。链路A-C的时钟使能信号分别变为50%占空比信号,常开模式信号和50%占空比信号。然后,由端口 B请求的数据速率降为250MHz并且将TXCLK信号切换为250MHz。然后端口 C的数据速率增加到IGHz并且将TXCLK切换为1GHz。由于端口 A和B的数据速率为250MHz,因此端口 A和B的时钟使能信号变为25%占空比信号。然后,端口 C的数据速率降为250MHz并且将TXCLK切换为250MHz,并且端口 A-C的时钟使能信号变为常开模式信号。
[0040]以上描述的符合本实施例的时钟切换具有节省空间和能量的优点,这样的话,在每一个PCIe IP内核中可以只使用一个PLL电路而不是在PCIe IP中的每一个PCIe链路中使用一个PLL电路。可使用一个PCIe IP内核来运行以不同速率运行的链路,以取代每一个链路都必须启动一个PCIe IPo由于时钟切换电路无干扰的改变时钟频率的事实,本实施例使得未改变速率的链路运行不被中断。此外,按照本发明,可以保证在4个时钟周期内时钟切换来提供更新的时钟频率。
[0041]目前,绝大多数电子电路是通过使用软件来设计和制造的(例如,硬件描述语言(HDL: hardware descript1n language))。HDL是描述电子电路的结构、操作、和/或行为的计算机语言。时钟生成器100(即,电子电路)可使用软件(例如:HDL)来设计和制造。HDL可以是当下使用的传统HDL或者将来发展的HDL中的任意一种。HDL的指令组被生成来描述时钟生成器100的结构,操作,和/或行为。该指令组可存储在任何计算机可读存储介质中。
[0042]尽管上面以特定的结合方式描述了特征和元素,实际上每一个特征或元素均可单独使用而不需要其他特征或元素或在具有或不具有其他特征和元素的各种组合中使用。本申请中的方法或流程图可通过计算机程序,软件或集成在计算机可读存储介质中的固件通过通用计算机或处理器来实现。计算机可读存储介质的例子包括只读存储器(ROM),随机访问存储器(RAM),寄存器,高速缓存,半导体存储器装置,诸如内置硬盘和可移动硬盘等磁介质,磁光介质,以及诸如CD-ROM盘和数字多功能磁盘(DVD)等光介质。
[0043]本申请中合适的处理器包括例如通用目的处理器,特殊目的处理,传统处理器,数字信号处理器(DSP),多个微处理器,与DSP内核相连的一个或多个微处理器,控制器,微控制器,特定用途集成电路(ASIC 〖Applicat1n Specific Integrated Circuit),现场可编程门阵列电路(FPGA:field Programmable Gate Arrays),任何其他类型的集成电路(IC),和/或状态机。
【主权项】
1.一种用于切换运行在不同时钟频率下的多链路的时钟频率的装置,该装置包括: 用于从源时钟信号生成多个不同频率的时钟信号的分频器; 用于为多个端口选择所述时钟信号之一并以每个端口所请求的数据速率将所选择的时钟信号输出到每个端口的时钟切换控制器;以及 其中时钟切换控制器用于选择与所述多个端口所请求的数据速率中最大数据速率相匹配的所述时钟信号之一。
2.如权利要求1所述的装置,其中改变所选择的时钟信号的频率以匹配每个端口所请求的数据速率。
3.如权利要求1所述的装置,其中所述时钟切换控制器包括: 用于计数所选择的时钟信号的时钟周期的计数器,其中所述时钟切换控制器用于在所述最大数据速率已经改变了预定数量的时钟周期之后重新选择所述生成的时钟信号之一。
4.如权利要求1所述的装置,其中所述时钟切换控制器包括: 存储器,其用于存储所选择的时钟信号的相位的信息,以便在所述最大数据速率改变时以所述选择的时钟信号的预定相位切换所述选择的时钟信号。
5.如权利要求1所述的装置,其中该装置是高速外围组件互联(PCIe)兼容装置。
6.如权利要求1所述的装置,其中该装置是超级传送兼容装置。
7.如权利要求1所述的装置,其中所述分频器用于生成250MHz、500MHz和IGHz的信号中的至少两种信号。
8.如权利要求1所述的装置,其中所述源时钟信号是锁相环路时钟信号。
9.一种用于切换运行不同时钟频率下的多链路的时钟信号的方法,该方法包括: 经由分频器从源时钟信号生成多个不同频率的时钟信号; 通过切换为多个端口选择所述时钟信号之一; 以每个端口所请求的数据速率将所述选择的时钟信号输出到每个端口 ;以及 其中所述时钟信号之一被选择为匹配所述多个端口所请求的数据速率中的最大数据速率。
10.如权利要求9所述的方法,其中改变所述选择的时钟信号的频率以匹配每个端口所请求的数据速率。
11.如权利要求9所述的方法,其中在所述最大数据速率已经改变了预定数量的时钟周期之后重新选择所述生成的时钟信号之一。
12.如权利要求9所述的方法,其中在所述最大数据速率改变时以所述选择的时钟信号的预定相位切换所述选择的时钟信号。
13.如权利要求9所述的方法,其中所述链路是高速外围组件互联(PCIe)兼容装置。
14.如权利要求9所述的方法,其中所述链路是超级传送兼容装置。
15.如权利要求9所述的方法,其中所述生成的时钟信号是250MHz、500MHz和IGHz的信号中的至少两种信号。
16.如权利要求9所述的方法,其中所述源时钟信号是锁相环路时钟信号。
17.一种存储由计算机执行的切换运行在不同时钟频率下的多链路的时钟信号的指令组的非暂时的计算机可读存储介质,该指令组包括: 用于从源时钟信号生成多个不同频率的时钟信号的代码部分; 用于为多个端口选择所述时钟信号之一的代码部分; 用于以每个端口所请求的数据速率将所述选择的时钟信号输出到每个端口的代码部分;以及 其中所述时钟信号之一被选择为匹配所述多个端口所请求的数据速率中的最大数据速率。
18.如权利要求17所述的非暂时的计算机可读存储介质,其中该指令是用来制造装置的硬件描述语言(HDL)指令。
【专利摘要】本发明公开了用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法。分频器从源时钟信号产生多个不同频率的时钟信号。时钟切换控制器从多个链路的端口所请求的数据速率中选择最大的数据速率并以所选定的最大数据速率将传送时钟信号与每一个端口的时钟使能信号一起被输出。每一个时钟使能信号选择性地使能传送时钟信号以用于匹配由每一个端口所请求的数据速率。根据端口的请求在已知时间内不中断到其他端口的数据传输无干扰地选定并更新时钟频率。
【IPC分类】G06F1-06, G06F13-40, G06F1-10
【公开号】CN104866009
【申请号】CN201510186122
【发明人】凯温·D·塞诺赫拉贝克, 纳塔莱·巴尔别罗, 戈登·F·卡鲁克
【申请人】Ati科技无限责任公司
【公开日】2015年8月26日
【申请日】2010年12月10日
【公告号】CN102725708A, CN102725708B, EP2510417A2, EP2510417B1, US8190944, US8984322, US20110145622, US20120221883, WO2011070328A2, WO2011070328A3