CN102725708A - 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法 - Google Patents

用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法 Download PDF

Info

Publication number
CN102725708A
CN102725708A CN2010800561788A CN201080056178A CN102725708A CN 102725708 A CN102725708 A CN 102725708A CN 2010800561788 A CN2010800561788 A CN 2010800561788A CN 201080056178 A CN201080056178 A CN 201080056178A CN 102725708 A CN102725708 A CN 102725708A
Authority
CN
China
Prior art keywords
clock
signal
clock signal
data rate
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800561788A
Other languages
English (en)
Other versions
CN102725708B (zh
Inventor
凯温·D·塞诺赫拉贝克
纳塔莱·巴尔别罗
戈登·F·卡鲁克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Priority to CN201510186122.9A priority Critical patent/CN104866009B/zh
Publication of CN102725708A publication Critical patent/CN102725708A/zh
Application granted granted Critical
Publication of CN102725708B publication Critical patent/CN102725708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

本发明公开了用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法。分频器从源时钟信号产生多个不同频率的时钟信号。时钟切换控制器从多个链路的端口所请求的数据速率中选择最大的数据速率并以所选定的最大数据速率将传送时钟信号与每一个端口的时钟使能信号一起被输出。每一个时钟使能信号选择性地使能传送时钟信号以用于匹配由每一个端口所请求的数据速率。根据端口的请求在已知时间内不中断到其他端口的数据传输无干扰地选定并更新时钟频率。

Description

用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法
相关申请的交叉引用
本申请要求的美国的非临时申请序列号为12/635,942,申请日为2009年12月11日的权利,将该申请的内容在此处全部引用以供参考。
技术领域
本申请涉及计算机总线和互联协议,诸如高速外部组件互连协议(PCIe:Peripheral Component Interconnect Express),超级传递协议(HyperTransport),或者类似的协议。
背景技术
在计算机系统中,提供多种总线用于将主机处理器和其他设备进行互连并且在其中传送数据。例如,已开发的取代旧版本的外部组件互连(PCI:Peripheral Component Interconnect)和PCI-X标准的高速外部组件互连(PCIe:Peripheral Component Interconnect Express)。PCIe被用在客户端、服务器以及工业应用中以作为主板(motherboard)级的互连来链接装配在主板上的外设以及作为附加主板的扩展卡接口。
PCIe和早期的PCI或PCI-X总线之间的区别是基于点到点串行链路的拓扑结构,而不是共享的并行总线结构。可以认为PCIe是取代旧的并行PCI和PCI-X总线的高速串行协议。在软件级上,PCIe则维持与PCI的兼容,这样的话,可在与PCIe的新特征没有直接的关系的遗留应用(legacyapplication)和操作系统中配置以及使用PCIe装置。
在PCIe1.0或1.1版本中,每条通道支持的数据速率为250MB/s。而在2007年发布的PCIe2.0版本中,加入了第二代信号模式,将信号的传输速率翻倍为500MB/s。而在目前开发的PCIe3.0中,将加入第三代信号模式从而使速率达到1GB/s。
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)的更新该时钟频率。
发明内容
用于切换运行在不同时钟频率下的多链路的时钟频率的装置,包括分频器和时钟切换控制器。该分频器用于从源时钟信号生成多个不同频率的时钟信号。该时钟切换控制器用于在由多个链路端口请求的多个数据速率中选择一个最大的数据速率,并在选定的最大数据速率处将传送时钟信号与每个端口的时钟使能信号一起输出到端口,每个端口的时钟使能信号选择性地使能传输时钟信号来匹配由多个端口中的每一个所请求的数据速率。
用于切换运行在不同时钟频率下的多链路的时钟频率的方法,包括从一个源时钟信号生成多个不同频率的时钟信号。在由多个链路端口所请求的多个数据速率中确定一个最大的数据速率。在选定的最大速率处提供到多个端口中的每一个的传送时钟信号。提供时钟使能信号到多个端口中的每一个来选择性地使能传送时钟信号以匹配由多个端口的每一个所请求的数据速率。
一种存储由通用计算机执行的切换运行在不同时钟频率下的多链路的时钟信号的指令组的计算机可读存储介质。该指令组包括用于从一个源时钟信号生成多个不同频率的时钟信号的生成代码部分(segment);用于在由多个链路端口请求的数据速率中确定最大数据速率的确定代码部分(segment);用于为多个端口的每一个提供最大数据速率的时钟信号的第一提供代码部分(segment);以及用于为多个端口的每一个提供时钟使能信号的第二提供代码部分(segment),该时钟使能信号选择性地使能传输时钟信号以匹配由多个端口的每一个所请求的数据速率。该指令组可以是用于构建装置的硬件描述语言(HDL:hardware description language)指令。
附图说明
结合说明书中的实施例和附图,从下述说明书中可以得到更详细的描述,其中,
图1显示了分频器和时钟切换控制器的第一部分;
图2显示了时钟切换控制器的第二部分;
图3显示了时钟使能信号生成器;
图4显示了时钟生成器的时钟切换时序;以及
图5显示了端口A-C的使能信号的示例性时序图。
具体实施方式
本申请描述的实施例允许装置选择由多个端口中的一个所请求的多个时钟频率中的一个,并且使得时钟频率无干扰的(glitch-free)更新,即在已知的时间内不中断其他端口上的数据传输。本实施例为多频率下运行多链路的装置提供了时钟切换的方案。本实施例可用在符合任何计算机总线和互连协议的支持多时钟频率的任意装置上。例如,本实施例可应用在任何支持PCIe 2.0或3.0,或未来将开发出来的任何版本的任意PCIe兼容设备上。随后,本实施例将参照PCIe协议来解释。然而,应该注意的是,本实施例适用于任何计算机总线和互连协议,包括但不限于高速外部组件互连协议(PCIe:Peripheral Component Interconnect Express),超级传递协议(HyperTransport),等等。
图1-3显示了根据一个实施例在不同频率中用于生成三个时钟信号和改变时钟频率的示例性的时钟生成器。时钟生成器100包括分频器110和时钟切换控制器200。图1显示了分频器110和时钟切换控制的第一部分200a。图2显示了时钟切换控制器的第二部分200b。图3显示了作为时钟切换控制器200的一部分的时钟使能信号产生器300。图4显示了时钟生成器100的时钟切换时序图(timing)。应该注意的是,图1-3中所示的时钟生成器只是一个示例,并不是一个限定,任何用于频率分解和时钟信号切换的配置都可用来实现时钟生成器。此外,时钟生成器可生成不同的两个或多于三个频率信号并根据需要在这些信号中切换。
参考图1,时钟生成器100从锁相环路150(PLL:phase lockedloop)接收锁相环路时钟信号102(PLLCLK:phase locked loop clock)。在这个实施例中,PLL时钟信号102的频率是2GHz并且利用分频器110将该PLL时钟信号102除以2,4,8以分别对应于PCIe的第三、第二、第一代的处理(图4中线1-4显示了该PLL时钟信号和三个时钟信号)。应该注意的是,PLL时钟信号102可以是任何频率并且可以根据系统的要求被分解为任意频率信号。尽管本实施例使用了PLL时钟信号,本领域技术人员应该知道也可以使用其他源时钟信号。
图1中的示例性分频器110包括倒相器112,专用或非(NOR)门118,126,或(OR)门124和D触发器(D flip-flops)114,116,120,122,128,130。D触发器114,116,120,122,128,130由PLL时钟信号同步。D触发器114的输出进入到D触发器116中并且经过反相器112后也反馈回D触发器114。D触发器114的输出使每一个PLL时钟周期被反相,因此,D触发器116在PLL时钟信号的半频处输出PCIe第三代时钟信号132c(即,生成PCIe第三代时钟信号)。
D触发器120的输出进入到D触发器122中并且也通过专用或非逻辑门118后反馈回D触发器120中。D触发器114的输出进入到专用或非逻辑门118的另一个输入中。D触发器122在PLL时钟信号的四分之一频率处输出PCIe第二代时钟信号132b。
D触发器128的输出进入到D触发器130中并且也通过专用或非逻辑门126后反馈回D触发器128中。在进入专用或非126之前,D触发器114和D触发器120的输出被或门124进行选通(gated)。D触发器130在PLL时钟信号102的八分之一频率处输出PCIe第一代时钟信号132a。
时钟门控(clock-gating)单元212a,212b,212c截止上面生成的时钟信号132a,132b,132c中的两个信号并且根据控制信号244a,244b,244c(clk_g1_en,clk_g2_en,clk_g3_en)上述时钟信号132a,132b,132c中仅有一个可被输出以作为提供给链路的传送时钟信号(TXCLK:tranmitclock signal)。TXCLK信号在图4中由线17表示。控制信号244a,244b,244c在图4中由线14-16表示。时钟门控单元212a,212b,212c中的每一个分别包括门控D锁存器214a,214b,214c和与逻辑门216a,216b,216c。控制信号244a,244b,244c(clk_g1_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_g1_en信号244a时,则输出第一代时钟信号132a;当选定clk_g2_en信号244b时,则输出第二代时钟信号132b;当选定clk_g3_en信号244c时,则第三代时钟信号132c被输出,分别通过或门218实现上述输出。
基于request_clk信号232生成了控制信号244a,244b,244c。参照图2将详细描述request_clk信号232的生成。request_clk信号232信号是指示生成时钟信号的信号。request_clk信号232可以是两位信号用来指示本实施例中的三个时钟频率中的一个(例如,“00”表示第一代时钟信号,“01”表示第二代时钟信号,“10”表示第三代时钟信号)。
生成的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一定的延迟时间(例如,1GHz每个延迟缓冲器最多延迟1纳秒)。这是为了确保TXCLK信号嵌入延迟与内核逻辑的匹配,以及在时钟生成逻辑处将时钟延迟步进(step)返回以匹配上述嵌入的延迟。
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_clk信号232基于request_clk信号232驱动三个与逻辑门242a,242b,242c的一个为高另外两个为低,并且与逻辑门242a,242b,242c的输出分别成为时钟门控单元212a,212b,212c的控制信号244a,244b,244c。
参考图2,详细描述了request_clk信号232的生成。可要求PCIe设备支持多于一个链路,并且每一个链路需要不同的时钟频率。由选择器252在多个链路所请求的时钟频率中(clk_sel_A,clk_sel_B,...,clk_sel_N)选择最大的时钟频率。在本实施例中,clk_sel[1:0]信号254是一个两位信号以指示选定的最大时钟频率(在本实施例中用两位来指示从三个时钟频率中选择一个是足够的)。通过D触发器256输出的所选定的时钟频率信号(clk_sel[1:0])254作为request_clk信号232。该clk_sel[1:0]信号以及request_clk信号232在图4中用线5和6表示。
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。
比较器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。
当计数信号变为“11”时比较器268输出高位。比较器268的输出进入到D触发器272的使能输入端。因此,在本实施例中在request_clk信号232已经被改变了4个TXCLK周期之后,该request_clk信号232变成current_clk信号274,如图4中所示的线6-10。选择4个TXCLK周期是因为最快时钟信号(1GHz)与最慢时钟信号(250MHz)的比率是4并且根据系统所请求的时钟频率,不同的TXCLK周期是必须的。比较器276将current_clk信号274与request_clk信号232进行比较并输出到与逻辑门292处。
current_clk信号274驱动第一和第二复用器282,290。如果current_clk信号274是“00”,则第一复用器282输出“00”,并且如果current_clk信号274是“01”,则相位信号加2,如果current_clk信号274是“10”,则相位信号加1。复用器282的输出进入到D触发器284的D输入端,该触发器的两位输出是相位信号286(图4中线11)。在本实施例中相位信号286是两位信号。如果相位信号286是“00”的话,则比较器288a输出高位,否则其输出低位。如果相位信号286是“01”的话,则比较器288b输出高位,否则其输出低位。如果相位信号是“10”的话,则比较器288c输出高位,否则其输出低位。根据current_clk信号274第二复用器290输出比较器288a,288b,288c三个输出中的一个。来自比较器276和第二复用器290的输出由与逻辑门292进行门限控制,该与逻辑门的输出则使能或无效D触发器256。
包括计数信号263和相位信号286的生成以及current_clk信号274和request_clk信号232的比较的时钟切换控制器的逻辑确保了只在一个特定相位上发生时钟信号(TXCLK)的无干扰(glitch-free)的切换,并且在已知的时间内在不中断任何其他端口上的数据传输。
参考图3,详细描述了时钟使能信号的生成。期望源时钟运行在由PCIe IP支持的最高数据速率下(例如,PCIe 3.0支持的1GHz)。时钟生成器100生成1GHz,500MHz,和250MHz时钟信号并且向所有的PCIe链路提供上述生成的时钟信号中的一个。时钟切换控制器200确定由PCIe IP内核中的活动链路所请求的最快时钟频率,并且将该最快时钟信号提供给所有PCIe链路。由于提供相同的时钟信号给所有的PCIe链路,因此该时钟切换控制器200也为请求较慢时钟信号的每一个链路生成时钟使能信号。例如,如果由链路请求的最快时钟频率是1GHz的话,那么时钟切换控制器200将生成并提供1GHz的时钟信号到所有的链路。时钟切换控制器200也为每一个链路提供时钟使能信号,这样的话该1GHz信号对请求500MHz时钟频率的链路每隔一个时钟周期使能一次,并且该时钟使能信号仅对请求250MHz的链路每四个时钟周期使能一次。时钟使能信号在图4中显示为线18-20。每一个链路选择三个时钟使能信号中的一个信号。
图3显示了链路A的示例性时钟使能信号生成电路300。支持多链路的时钟切换控制器200包括多套图3中所示的电路300。
由链路A请求的时钟频率为clk_sel_A,其为两位信号并根据所请求的时钟频率(例如,“00”表示第一代时钟信号,“01”表示第二代时钟信号,“10”表示第三代时钟信号)驱动复用器310输出三个输入(使能信号309a,309b,309c)中的一个。
基于current_clk信号274,request_clk信号232,计数信号263,相位信号286而生成三个使能信号309a,309b, 309c(clk_en[0],clk_en[1],clk_en[2])。根据计数信号263(即,如果计数信号为“11”,则为request_clk信号,否则的话则为current_clk信号),current_clk信号274或者request clk信号232中的一个会进入到三个比较器322,332,342中。比较器302将计数信号263进行比较,该比较器的输出则控制复用器304。
如果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_clk信号274是“10”的话,则比较器322和与逻辑门326的输出为低位,但是由于相位信号是“00”,因此与逻辑门328被开启。当current_clk信号是“10”时,由于相位信号286在“00”,“01”,“10”,和“11”之间变换,因此,与逻辑门328的输出(以及相应的或门324的输出)有25%的时间是开启的。例如,如果current_clk信号是“10”(其意味着TXCLK信号是1GHz),并且由链路A请求的时钟频率是250MHz时(即,clk_sel_A是“00”),则复用器310输出第一分支信号,该第一分支信号为来自与逻辑门328输出的25%占空比信号,1GHz的TXCLK信号仅有25%的时间是有效的能够为来自通用1GHz TXCLK的链路产生250MHz的时钟信号。如果current_clk信号是“01”时(其意味着TXCLK信号是500MHz),为链路A请求的时钟频率是250MHz(即,clk_sel_A是“00”),复用器310输出第一分支信号,该第一分支信号为从与逻辑门326输出的50%占空比信号。
如果current_clk信号274或者request_clk信号是232是“01”的话,则第二分支303或者生成常开模式信号或者生成50%占空比信号。如果current_clk信号274或者request_clk信号232是“01”的话,则比较器332的输出(以及相应地或逻辑门334的输出)为常高信号,因此则生成一个常开模式信号并且通过D触发器308b提供给复用器310。比较器335a将current_clk信号与“10”进行比较,并且比较器335b将相位信号的第一位与“0”进行比较。如果current_clk信号274是“10”,比较器332的输出为低位,但是由于相位信号286的第一位为“0”,因此开启与逻辑门336,其生成50%占空比信号。
如果current_clk信号274或者request_clk信号是232是“10”的话,则第三个分支340(即,比较器342)生成常开模式信号,其通过D触发器来门控复用器310。
图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和C。然后,链路C请求的数据速率增加到1GHz。将TXCLK信号切换为1GHz信号并且提供给所有链路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的数据速率增加到1GHz并且将TXCLK切换为1GHz。由于端口A和B的数据速率为250MHz,因此端口A和B的时钟使能信号变为25%占空比信号。然后,端口C的数据速率降为250MHz并且将TXCLK切换为250MHz,并且端口A-C的时钟使能信号变为常开模式信号。
以上描述的符合本实施例的时钟切换具有节省空间和能量的优点,这样的话,在每一个PCIe IP内核中可以只使用一个PLL电路而不是在PCIe IP中的每一个PCIe链路中使用一个PLL电路。可使用一个PCIe IP内核来运行以不同速率运行的链路,以取代每一个链路都必须启动一个PCIeIP。由于时钟切换电路无干扰的改变时钟频率的事实,本实施例使得未改变速率的链路运行不被中断。此外,按照本发明,可以保证在4个时钟周期内时钟切换来提供更新的时钟频率。
目前,绝大多数电子电路是通过使用软件来设计和制造的(例如,硬件描述语言(HDL:hardware description language))。HDL是描述电子电路的结构、操作、和/或行为的计算机语言。时钟生成器100(即,电子电路)可使用软件(例如:HDL)来设计和制造。HDL可以是当下使用的传统HDL或者将来发展的HDL中的任意一种。HDL的指令组被生成来描述时钟生成器100的结构,操作,和/或行为。该指令组可存储在任何计算机可读存储介质中。
尽管上面以特定的结合方式描述了特征和元素,实际上每一个特征或元素均可单独使用而不需要其他特征或元素或在具有或不具有其他特征和元素的各种组合中使用。本申请中的方法或流程图可通过计算机程序,软件或集成在计算机可读存储介质中的固件通过通用计算机或处理器来实现。计算机可读存储介质的例子包括只读存储器(ROM),随机访问存储器(RAM),寄存器,高速缓存,半导体存储器装置,诸如内置硬盘和可移动硬盘等磁介质,磁光介质,以及诸如CD-ROM盘和数字多功能磁盘(DVD)等光介质。
本申请中合适的处理器包括例如通用目的处理器,特殊目的处理,传统处理器,数字信号处理器(DSP),多个微处理器,与DSP内核相连的一个或多个微处理器,控制器,微控制器,特定用途集成电路(ASIC:Application Specific Integrated Circuit),现场可编程门阵列电路(FPGA:fieldProgrammable Gate Arrays),任何其他类型的集成电路(IC),和/或状态机。

Claims (19)

1.一种用于切换运行在不同时钟频率下的多链路的时钟频率的装置,该装置包括:
用于从源时钟信号生成多个不同频率的时钟信号的分频器;
用于在多个链路的端口所请求的多个数据速率中选择最大数据速率并且以所选择的所述最大数据速率将传送时钟信号连同用于所述多个端口中的每一个的时钟使能信号一同输出到所述端口,所述时钟使能信号中的每一个选择性地使能所述传送时钟信号来匹配由所述多个端口中的每一个所请求的数据速率。
2.如权利要求1所述的装置,其中所述时钟切换控制器包括:
用于计数所述传送时钟信号的时钟周期的计数器,使得在已经改变所述最大数据速率后切换所述传送时钟信号预定数量的时钟周期。
3.如权利要求1所述的装置,其中所述时钟切换控制器包括:
存储器,其用于存储当前时钟信号,请求时钟信号,以及所述当前时钟信号的相位的信息,以便以所述传送时钟信号的预定相位切换所述传送时钟信号。
4.如权利要求1所述的装置,其中所述时钟切换控制器包括:
用于门控在不同频率处生成的所述多个时钟信号的时钟门控单元,由此仅输出一个时钟信号作为与控制信号对应的所述传送时钟信号,其中所述控制信号基于请求时钟信号产生,以指示将生成的所述传送时钟信号的频率。
5.如权利要求1所述的装置,其中该装置是高速外围组件互联(PCIe)兼容装置。
6.如权利要求1所述的装置,其中该装置是超级传送兼容装置。
7.如权利要求1所述的装置,其中所述分频器用于生成250兆赫兹(MHz),500MHz,和1千兆赫兹(GHz)的信号。
8.如权利要求1所述的装置,其中所述源时钟信号是锁相环路时钟信号。
9.一种用于切换运行不同时钟频率下的多链路的时钟信号的方法,该方法包括:
从源时钟信号生成多个不同频率的时钟信号;
在由多个链路端口请求的数据速率中确定最大数据速率;
为所述多个端口中的每一个提供所选定的所述最大数据速率的传送时钟信号;以及
为所述多个端口的每一个提供时钟使能信号,该时钟使能信号选择性地使能所述传送时钟信号以匹配由所述多个端口的每一个所请求的数据速率。
10.如权利要求9所述的方法,进一步包括:
自所述最大数据速率已经改变起,计数所述传送时钟信号的时钟周期,使得所述最大数据速率已经改变之后切换所述传送时钟信号预定数量的时钟周期。
11.如权利要求9所述的方法,其中所述传送时钟信号在所述传送时钟信号的预定相位处被切换。
12.如权利要求9所述的方法,进一步包括:
门控所述多个时钟信号,以便输出一个时钟信号作为对应控制信号的所述传送时钟信号,其中所述控制信号基于请求时钟信号而生成以指示将生成的所述传送时钟信号的频率。
13.如权利要求9所述的方法,其中所述时钟信号是250兆赫兹(MHz),500MHz,以及1千兆赫兹(1GHz)信号。
14.如权利要求9所述的方法,其中所述源时钟信号是锁相环路时钟信号。
15.一种存储由通用计算机执行的切换运行在不同时钟频率下的多链路的时钟信号的指令组的计算机可读存储介质,该指令组包括:
用于从源时钟信号生成多个不同频率的时钟信号的生成代码部分;
用于在由多个链路端口请求的数据速率中确定最大数据速率的确定代码部分;
用于以所选定的所述最大数据速率为所述多个端口的每一个提供传送时钟信号的第一提供代码部分;以及
用于为所述多个端口的每一个提供时钟使能信号的第二提供代码部分,该时钟使能信号选择性地使能所述传输时钟信号以匹配由所述多个端口的每一个所请求的数据速率。
16.如权利要求15所述的计算机可读存储介质,该指令组进一步包括:
计数代码部分,其用于自所述最大数据速率已经改变起,计数所述传送时钟信号的时钟周期,以便在所述最大数据速率已经改变之后切换所述传送时钟信号预定数量的时钟周期。
17.如权利要求15所述的计算机可读存储介质,该指令组进一步包括,
门控代码部分,其用于门控所述多个时钟信号,以便输出一个时钟信号以作为对应控制信号的所述传送时钟信号,其中基于请求时钟信号生成控制信号以指示将生成的所述传送时钟信号的频率。
18.如权利要求15所述的计算机可读存储介质,其中所述源时钟信号是锁相环路时钟信号。
19.如权利要求15所述的计算机可读存储介质,其中该指令是用来制造装置的硬件描述语言(HDL)指令。
CN201080056178.8A 2009-12-11 2010-12-10 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法 Active CN102725708B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510186122.9A CN104866009B (zh) 2009-12-11 2010-12-10 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/635,942 2009-12-11
US12/635,942 US8190944B2 (en) 2009-12-11 2009-12-11 Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed
PCT/GB2010/002251 WO2011070328A2 (en) 2009-12-11 2010-12-10 Device configured to switch a clock speed for multiple links running at different clock speeds and methods for switching the clock speed

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510186122.9A Division CN104866009B (zh) 2009-12-11 2010-12-10 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法

Publications (2)

Publication Number Publication Date
CN102725708A true CN102725708A (zh) 2012-10-10
CN102725708B CN102725708B (zh) 2015-05-20

Family

ID=43982246

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510186122.9A Active CN104866009B (zh) 2009-12-11 2010-12-10 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法
CN201080056178.8A Active CN102725708B (zh) 2009-12-11 2010-12-10 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510186122.9A Active CN104866009B (zh) 2009-12-11 2010-12-10 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法

Country Status (6)

Country Link
US (2) US8190944B2 (zh)
EP (2) EP2510417B1 (zh)
JP (2) JP5785183B2 (zh)
KR (1) KR101375799B1 (zh)
CN (2) CN104866009B (zh)
WO (1) WO2011070328A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064461A (zh) * 2012-12-31 2013-04-24 华为技术有限公司 一种时钟使能信号的产生方法及装置
CN105009455A (zh) * 2012-12-13 2015-10-28 相干逻辑公司 同步数字系统中对芯片间通信的多频率时钟漂移控制
CN109254617A (zh) * 2017-07-14 2019-01-22 华为技术有限公司 时钟信号产生方法以及装置
CN109891355A (zh) * 2016-12-01 2019-06-14 英特尔公司 用于总线上的动态时钟频率控制的方法、设备和系统
CN112104822A (zh) * 2019-06-17 2020-12-18 三星电子株式会社 成像设备及其操作方法
CN112104822B (zh) * 2019-06-17 2024-07-02 三星电子株式会社 成像设备及其操作方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009107108A1 (en) * 2008-02-28 2009-09-03 Nxp B.V. Clock switching circuits and methods
WO2010071634A1 (en) * 2008-12-16 2010-06-24 Hewlett-Packard Development Company, L.P. Clock signals for dynamic reconfiguration of communication link bundles
US8190944B2 (en) * 2009-12-11 2012-05-29 Ati Technologies Ulc Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed
JP5434812B2 (ja) * 2010-06-21 2014-03-05 富士通セミコンダクター株式会社 データ処理システム
KR102251813B1 (ko) 2015-04-07 2021-05-13 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102507714B1 (ko) 2016-05-02 2023-03-09 삼성전자주식회사 SRIS를 지원하는 PCIe 장치
US10459477B2 (en) * 2017-04-19 2019-10-29 Seagate Technology Llc Computing system with power variation attack countermeasures
CN109426329A (zh) * 2017-08-30 2019-03-05 比亚迪股份有限公司 片上系统及其时钟频率动态控制方法和装置
JP6865856B2 (ja) * 2017-12-12 2021-04-28 三菱電機株式会社 光通信装置、制御方法、及び制御プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766781A (zh) * 2004-10-29 2006-05-03 国际商业机器公司 用于切换与主时钟相关的频率的方法和装置
US20060288249A1 (en) * 2005-06-21 2006-12-21 Dell Products L.P. Demand-based dynamic clock control for transaction processors
CN101482762A (zh) * 2009-02-11 2009-07-15 华为技术有限公司 一种调节cpu时钟频率的方法及系统
CN101556571A (zh) * 2009-04-08 2009-10-14 苏州国芯科技有限公司 实现clb总线与从属模块之间高低速切换的桥接器

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232853A (ja) 1997-02-18 1998-09-02 Toshiba Corp シリアルデータ転送回路
JP2923882B2 (ja) * 1997-03-31 1999-07-26 日本電気株式会社 クロック供給回路を備える半導体集積回路
JP4130006B2 (ja) * 1998-04-28 2008-08-06 富士通株式会社 半導体装置
JP2000181566A (ja) * 1998-12-14 2000-06-30 Mitsubishi Electric Corp マルチクロック並列処理装置
EP1189444A1 (en) * 2000-09-16 2002-03-20 Deutsche Thomson-Brandt Gmbh Method and data recorder for converting first data packet timestamps based on a first clock rate to second data packet timestamps based on a second clock rate
US6445228B1 (en) * 2001-08-28 2002-09-03 Xilinx, Inc. Programmable even-number clock divider circuit with duty cycle correction and optional phase shift
US6483888B1 (en) * 2001-10-11 2002-11-19 International Business Machines Corporation Clock divider with bypass and stop clock
US6515530B1 (en) * 2001-10-11 2003-02-04 International Business Machines Corporation Dynamically scalable low voltage clock generation system
TWI221369B (en) * 2003-04-29 2004-09-21 Via Tech Inc Device and method for adjusting the frequency of the timing signal
KR20050118569A (ko) * 2004-06-14 2005-12-19 삼성전자주식회사 컴퓨터 시스템
JP2006252656A (ja) * 2005-03-10 2006-09-21 Nec Electronics Corp マルチポートメモリ装置
US7369453B2 (en) * 2006-02-28 2008-05-06 Samsung Electronics Co., Ltd. Multi-port memory device and method of controlling the same
US7433263B2 (en) * 2006-02-28 2008-10-07 Samsung Electronics Co., Ltd. Multi-port semiconductor device and method thereof
EP2008164A2 (en) * 2006-03-30 2008-12-31 Silicon Image, Inc. Inter-port communication in a multi- port memory device
US7308523B1 (en) * 2006-04-10 2007-12-11 Pericom Semiconductor Corp. Flow-splitting and buffering PCI express switch to reduce head-of-line blocking
US7734858B2 (en) * 2006-04-27 2010-06-08 Dell Products L.P. Fabric interposer for blade compute module systems
TWM307793U (en) * 2006-09-04 2007-03-11 Iei Technology Corp Half-sized PCI central processing unit interface and computer device with PCIe extensible capability
US8090263B2 (en) * 2007-08-24 2012-01-03 Mission Technology Group Inc. System and method for expanding PCIe compliant signals over a fiber optic medium with no latency
US7921322B2 (en) * 2007-10-17 2011-04-05 Spansion Llc Optimize personalization conditions for electronic device transmission rates with increased transmitting frequency
JP5160856B2 (ja) * 2007-10-24 2013-03-13 ルネサスエレクトロニクス株式会社 Ddrメモリコントローラ及び半導体装置
JP5287297B2 (ja) * 2008-03-18 2013-09-11 株式会社リコー データ処理回路、省電力方法、省電力プログラム、記録媒体及び機器
US7999581B1 (en) * 2008-03-23 2011-08-16 Freescale Semiconductor, Inc. System and a method for providing an output clock signal
JP2009234445A (ja) * 2008-03-27 2009-10-15 Toyota Motor Corp 車両用電子制御ユニット、動作クロック切り替え方法
US8098993B2 (en) * 2008-05-08 2012-01-17 Alpenio, Inc. Method and apparatus for transporting computer bus protocols over an optical link
US7886103B2 (en) * 2008-09-08 2011-02-08 Cisco Technology, Inc. Input-output module, processing platform and method for extending a memory interface for input-output operations
US8190944B2 (en) * 2009-12-11 2012-05-29 Ati Technologies Ulc Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766781A (zh) * 2004-10-29 2006-05-03 国际商业机器公司 用于切换与主时钟相关的频率的方法和装置
US20060288249A1 (en) * 2005-06-21 2006-12-21 Dell Products L.P. Demand-based dynamic clock control for transaction processors
CN101482762A (zh) * 2009-02-11 2009-07-15 华为技术有限公司 一种调节cpu时钟频率的方法及系统
CN101556571A (zh) * 2009-04-08 2009-10-14 苏州国芯科技有限公司 实现clb总线与从属模块之间高低速切换的桥接器

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105009455A (zh) * 2012-12-13 2015-10-28 相干逻辑公司 同步数字系统中对芯片间通信的多频率时钟漂移控制
CN105009455B (zh) * 2012-12-13 2018-03-27 相干逻辑公司 同步数字系统中对芯片间通信的多频率时钟漂移控制
CN103064461A (zh) * 2012-12-31 2013-04-24 华为技术有限公司 一种时钟使能信号的产生方法及装置
CN103064461B (zh) * 2012-12-31 2016-03-09 华为技术有限公司 一种时钟使能信号的产生方法及装置
CN109891355A (zh) * 2016-12-01 2019-06-14 英特尔公司 用于总线上的动态时钟频率控制的方法、设备和系统
CN109891355B (zh) * 2016-12-01 2023-01-10 太浩研究有限公司 用于总线上的动态时钟频率控制的方法、设备和系统
CN109254617A (zh) * 2017-07-14 2019-01-22 华为技术有限公司 时钟信号产生方法以及装置
CN109254617B (zh) * 2017-07-14 2020-11-06 华为技术有限公司 时钟信号产生方法以及装置
CN112104822A (zh) * 2019-06-17 2020-12-18 三星电子株式会社 成像设备及其操作方法
CN112104822B (zh) * 2019-06-17 2024-07-02 三星电子株式会社 成像设备及其操作方法

Also Published As

Publication number Publication date
WO2011070328A2 (en) 2011-06-16
JP6170970B2 (ja) 2017-07-26
US20120221883A1 (en) 2012-08-30
US8190944B2 (en) 2012-05-29
EP2957981A1 (en) 2015-12-23
JP5785183B2 (ja) 2015-09-24
EP2510417A2 (en) 2012-10-17
CN102725708B (zh) 2015-05-20
EP2510417B1 (en) 2015-09-02
WO2011070328A3 (en) 2011-11-03
CN104866009A (zh) 2015-08-26
US20110145622A1 (en) 2011-06-16
JP2016006658A (ja) 2016-01-14
CN104866009B (zh) 2017-10-24
US8984322B2 (en) 2015-03-17
EP2957981B1 (en) 2018-08-08
KR20120123269A (ko) 2012-11-08
JP2013513843A (ja) 2013-04-22
KR101375799B1 (ko) 2014-03-19

Similar Documents

Publication Publication Date Title
CN102725708B (zh) 用于切换运行在不同时钟频率下的多个链路的时钟频率的装置和用于切换时钟频率的方法
CN101135921B (zh) 多时钟切换装置及其切换方法
US7583106B2 (en) Clock circuitry
EP0699991A2 (en) Method and apparatus for switching clock signals in a fault-tolerant computer system
CN101286741A (zh) 用于从共同时钟信号产生同步时钟信号的方法和设备
EP0529369A2 (en) Asynchronous clock switching for advanced microprocessors
US6266780B1 (en) Glitchless clock switch
JP2008178017A (ja) クロック同期システム及び半導体集積回路
CN105740177B (zh) 信号传输的控制方法和装置、以及信号锁存装置
Ma et al. Design and implementation of APB bridge based on AMBA 4.0
Ono et al. A modular synchronizing FIFO for NoCs
KR20040085209A (ko) 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치
CN113918497B (zh) 一种优化ahb总线数据传输性能的系统、方法及服务器
Mekie et al. Interface design for rationally clocked GALS systems
RU2256949C2 (ru) Способ и устройство дифференциального стробирования на коммуникационной шине
Ning et al. Design of a GALS Wrapper for Network on Chip
CN116911222B (zh) 一种低功耗的握手协议同步器及相应的方法
KR100300054B1 (ko) 클럭위상동기회로
Krstić et al. GALS for bursty data transfer based on clock coupling
JP2001117665A (ja) 種々のクロックレートを参照するコンピュータマザーボード用コンピュータチップセット
Mekie et al. Interfaces for Rationally clocked Globally Asynchronous Locally Synchronous (GALS) systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant