CN101171559B - 用于跨时钟通信的可编程相位生成器 - Google Patents
用于跨时钟通信的可编程相位生成器 Download PDFInfo
- Publication number
- CN101171559B CN101171559B CN2006800157482A CN200680015748A CN101171559B CN 101171559 B CN101171559 B CN 101171559B CN 2006800157482 A CN2006800157482 A CN 2006800157482A CN 200680015748 A CN200680015748 A CN 200680015748A CN 101171559 B CN101171559 B CN 101171559B
- Authority
- CN
- China
- Prior art keywords
- clock
- phase
- phase generator
- signal
- ratio
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
用于支持在不同时钟域中的组件之间进行通信的方法和装置,所述不同时钟域的时钟频率比N/D为有理数。在一个实施例中,使用一组整数相位生成器,在具有N个相位的总周期期间产生相位控制信号,其中总周期由具有D个相位的主周期和具有R个相位的调整周期组成,其中R是R/D的余数。对于小于2∶1的时钟频率比,使用2∶1和1∶1的相位生成器的组合。通过相位生成器逻辑来生成时钟信号,以在不同时钟域中的通信组件之间实现时间控制。在一个实施例中,在可编程相位生成器中实现相位生成器逻辑。
Description
技术领域
概括地说,本发明的领域涉及计算机和通信网络,具体地说,涉及通信组件的时钟频率之间的比率可以是有理数的时钟方案,但不限于此。
背景技术
诸如交换机和路由器之类的网络设备用于以分组的形式,高线速地中继网络业务。处理网络业务时,最重要的一个考虑是分组吞吐量。为了实现这一点,开发了名为网络处理器的专用处理器,以在每秒钟内高效地处理非常大量的分组。为了处理分组,网络处理器(和/或使用网络处理器的网络设备)需要从用于指示分组目的地、级别等等的分组头中提取数据,在存储器中存储负载数据,进行分组分类和排队操作,确定分组的下一跳,选择用于中继分组的适当的网络端口等等。通常将这些操作称为“分组处理”操作。
现代网络处理器(一般还被称为网络处理器单元(NPU))用多个多线程处理元件(例如处理核心)(在由加州圣克拉拉的 公司制造的网络处理器中被称为微引擎或者计算引擎)来执行分组处理,其中每个线程执行流水线中特定的任务或者任务集。在分组处理期间,执行许多访问,以在连接到网络处理器以及/或者由网络处理器所提供的多种共享资源之间移动数据。例如,网络处理器一般将分组元数据(metadata)等等存储在静态随机访问存储器(SRAM)中,同时将分组(或者分组负载数据)存储在记忆动态随机访问存储器(DRAM)的存储中。此外,可以将网络处理器连接到加密处理器、混列单元、通用处理器,以及诸如PCI(外围设备互连)和PCI Express总线的扩展总线。
通常,网络处理器能以协作的方式,例如经由流水线的处理方案,执行处理。典型情况下,不同的线程执行相同的任务或者相关的任务的不同部分。有的线程专用于特定的任务或者任务集,例如分组转发、分组分类等等。这种方案能对于大部分分组以线速进行处理操作,通常称为“快速路径”操作。然而,一些分组出现了需要额外操作的问题。有一种方法,通过使用由通用处理器所执行的“慢速路径”操作,来执行对于这些分组的分组处理,其中重定向事件导致分组处理从多线程处理元件转换到通用处理器。通用处理器一般比多线程处理元件提供更大的指令集,从而支持更灵活和复杂的任务的执行,以便处理这种“问题”分组。
在很多情况下,多线程处理元件与通用处理器所使用的结构具有显著的不同。例如,IntelNPU上的微引擎使用RISC(精简指令集运算)结构,而通用处理器使用CISC(复杂指令集计算)。此外,不同类型的处理元件的操作速度通常不同。
从快速路径切换到慢速路径需要在微引擎与通用处理器之间进行通信。此外,微引擎和通用处理器需要访问存储在存储器中的分组数据,可以经由存储器或者以另一个频率工作的系统总线来访问该分组数据。同样地,有必要具有某种时钟方案,以使得处理元件与在不同的时钟频率上运行的总线彼此通信。此前,这已经通过使一种处理元件(例如,微引擎)的时钟频率是另一种处理元件(例如,通用处理器)或总线的时钟频率的整数倍来实现。
尽管这样能在处理元件与诸如存储器的系统资源之间进行通信,但却限制了NPU整体结构的设计灵活性。例如,可能有益的是,增加一种处理元件的频率,而不管另一种处理元件或者总线的频率,或者使用时钟域之间的比值是有理数而不是限于整数比的结构。
附图说明
通过参考以下详细描述,并且结合附图,本发明的前述方面和若干相应优点将会变得更容易意识到并且能更好地理解,其中,如非特别说明,相同的附图标记贯穿全文表示相同的部件。
图1示出了对应于能使两个不同时钟域中的组件彼此通信的跨时钟通信方案的时序图,其中时钟域的时钟频率比是5∶1;
图2示出了对应于本发明的一个实施例的时序图,该实施例能在具有时钟频率比为有理数的时钟域中的组件之间进行跨时钟通信,其中该比值为24∶5;
图3示出了对应于具有比值为8∶3的时钟域的跨时钟通信方案的实现的时序图;
图4a示出了对应于支持小于2∶1的有理数时钟频率比的跨时钟通信方案的第一实现的时序图,其中,1∶1相位生成器用于主周期,2∶1相位生成器用于调整周期;
图4b示出了对应于图4a的跨时钟通信方案的可替换的实现的时序图,其中2∶1相位生成器用于主周期,1∶1相位生成器用于调整周期;
图5是可用于生成对应于图2、3、4a和4b中所描述的每个实施例的控制信号的可编程相位生成器的一个实施例的示意图;
图6是使用包括金属屏蔽环片单元的网络处理器的网络线路卡的示意图,该金属屏蔽环片单元使用图5的可编程相位生成器;
图7是跨时钟域环境的示意图,对该环境中在用于形成有理数比值的不同时钟频率上运行的处理器进行激活,以经由可编程相位生成器来彼此通信;
图8是使用总线接口单元的跨时钟域环境的示意图,该总线接口单元具有相位生成器逻辑,以便在工作于第一时钟域内的处理器核心和工作于第二时钟域内的多个组件之间进行通信,工作于第二时钟域内的多个组件通过总线接口进行访问。
具体实施方式
本文描述了用于在具有有理数的频率比的时钟域之间进行跨时钟通信的方法和装置的实施例。在以下描述中,描述了多个具体细节,例如使用IntelNPU的实现,以提供对于本发明的实施例的透彻的理解。然而,本领域普通技术人员将会认识到,缺少一个或 者多个具体细节,或者通过其它方法、组件材料等等,也照样可以可以实现本发明。在其它实例中,没有详细给出或者描述公知的结构、材料或者操作,以免混淆本发明的方方面面。
本说明书通篇所涉及的“一个实施例”或者“实施例”是指,所描述与实施例有关的特定的特征、结构或者特点至少包括在本发明的一个实施例中。因此,本说明书通篇在多种地方所出现短语的“在一个实施例中”或者“在实施例中”不一定全部针对相同的实施例。此外,可以将特定的特征、结构或者特点以任意合适的方式组合在一个或者多个实施例中。
根据本文公开的实施例的多个方面,提供了多种技术,以支持工作在不同的时钟域中,诸如处理元件和存储器或者系统总线的组件之间的通信,其中时钟域的时钟频率比是有理数。尽管以下实例特别地涉及NPU结构的实现,但该技术的通用原理和教义还适用于其它结构和系统。
下面将总体描述用于支持跨越具有整数时钟频率比的多个时钟域的跨时钟通信的一种技术。然后将会给出这个用于支持有理数的时钟频率比的方案的扩展。
在本文所描述的实施例中,用时钟相位生成器逻辑来创建相位信号,以便在不同时钟域中的组件之间进行通信。术语“时钟域”是指以相同的时钟频率工作的一个或者多个组件的集合或者组。有时候将时钟域中的组件称为“块”,从而,可以将在不同的时钟域中的组件之间的通信描述为块之间的通信。用称为“金属屏蔽环片”单元的单元来实现相位生成器逻辑。这种相位生成器在IntelNPU中的典型应用是,对在跨越通用处理器和内存控制器/系统总线之间的握手信号进行同步。还可以将这里的原理和教义应用于其它跨时钟通信环境,例如以不同的时钟比工作的两个处理元件之间。
图1描述了对应于示例性的跨时钟定时方案的时序图,该定时方案能使相应时钟域中的组件彼此通信。在这个实例中,时钟域的比值是5∶1,即,一个时钟域的时钟频率是另一个域的时钟频率的五倍。对于这里所示的实例,将用于高频时钟域的时钟信号描述为 核心时钟(CCLK)信号,而将用于低频时钟域的时钟信号描述为BCLK信号。金属屏蔽环片单元还以较低的BCLK信号时钟速度运行。在前述通信定时方案的一个实施例中,将使用Xscale结构并且运行在667MHz(例如,CCLK=667MHz)时钟频率上的通用处理器连接到运行在133MHz(例如,BCLK=133MHz)时钟速度上的存储器控制器/系统总线。
如时序图100所示,该通信方案使用具有5个相位的基本定时周期。除CCLK和BCLK信号之外,该方案还采用相位1控制信号、相位2控制信号以及相位n控制信号,每个控制信号在每个基本定时周期的各自相位期间激活(例如,维持逻辑高电平)。同时,在每个给定的基本定时周期期间,CCLK信号经历五个周期,而BCLK信号经历一个周期。
图1的定时方案的一个优点是:由处理器(CCLK)发往金属屏蔽环片单元(BCLK)的所有握手信号在相位1(CCLK的上升沿)期间发起,在相位n(BCLK的上升沿)时由金属屏蔽环片捕获。另一方面,所有由金属屏蔽环片单元发出的去向处理器的握手信号在相位n(BCLK的上升沿)时发起,在相位2(CCLK的上升沿)时由处理器来捕获。由于为两个块之间传播的任意握手提供了与建立时间相等价的两个核心时钟(CCLK)周期的最小值,所以这使得设计方案具有很大的鲁棒性。此外,由于不对在相位1的上升沿上的任何信号进行定时,所以,对于BCLK信号上升沿和CCLK的上升沿之间的时钟偏差,不必有任何顾虑。
只要指定了CCLK与BCLK的整数比(例如,图1中的5∶1),前述相位生成器逻辑就能良好地工作。当CCLK与BCLK之间的比值是有理数而不是整数时,本发明的实施例也能使用相位生成器逻辑。例如,在一种实现方案中,处理器时钟速度CCLK=640MHz,而存储器/系统总线时钟速度BCLK保持为133MHz。在此情况下,时钟周期的比值将是(CCLK∶BCLK=24∶5),其中BCLK与CCLK的上升沿每24个CCLK周期对准一次。
为了支持24∶5的时间比,一个实施例使用一组5+5+5+5+4 的CCLK周期。这意味着,在前20个CCLK周期内,使用图1的比值为5∶1的相位生成器方案。在第20个CCLK周期结束时,对于后四个CCLK周期使用比值为4∶1的相位生成器。图2中示出了对应的时序图200。
如图2中所示,在CCLK周期21到周期24期间,使用比值为4∶1的相位生成器。将相位1、相位2以及相位n用作使能信号,对从CCLK到BCLK或者从BCLK到CCLK的跨时钟握手信号的发起和捕获进行门控。这一思想是为了确保当出现(assert)相位控制信号时,发起和捕获时钟沿落入该期间内。用核心时钟(CCLK)信号来生成相位控制信号。
一般情况下,可以实现图2中所示的定时方案,以便在频率比N/D为大于2∶1的有理数的多个时钟域之间进行通信。在一个实施例中,将多个更公共的周期(称为主周期)中的每一个的相位数量设置为等于分母D,而将总时序周期的相位总数(例如,重复的总周期期间执行的相位的总数)设置为等于分子N。在一种方法中,使用一个“调整”周期(其相位数量等于频率比N/D的余数R),以获得等于分子N的总时序周期的相位总数。可以使用比值为D∶1的相位生成器来实现总时列的主周期,而使用比值为R∶1的相位生成器来实现调整周期,其中R等于调整周期中的相位数量。
例如,在图2的定时方案中,CCLK∶BCLK的比值是24∶5,因此,分子N是24,分母D是5,余数R是4。因此,在序列中,用比值为5∶1的相位生成器来实现四个具有5(D)个相位的主周期,其后紧跟具有4(R)个相位的单个调整周期(用比值为4∶1的相位生成器来实现的),从而,总周期的相位总数是24(N)。
如图3中的时序图300所示,在另一个实例中,时钟域的比值是8∶3(例如266MHz/100MHz)。总周期的相位总数是8,主周期的长度是3个相位。因此,定时序列由3+3+2个相位组成,其对于主周期可以用比值为3∶1的相位生成器来实现,对于调整周期可以用比值为2∶1的相位生成器来实现。同样,这种想法是为了确保:当出现(assert)相位n时,发生更慢的时钟BCLK的上升沿。对于 两个时钟域之间的建立时间,这将允许多于一个CCLK周期。
对于小于2∶1的时钟频率比,也可以使用跨时钟通信方案的实施例。在一个实施例中,使用比值为2∶1的相位生成器和比值为1∶1的相位生成器的组合,以获得正确的比值。本质上来说,1∶1相位生成器对于所有控制信号生成(assert)静态高逻辑电平。可以使用两类2∶1相位生成器,这里将其称为“A类”和“B类”。这两类相位生成器的不同之处在于如何生成相位1和相位2控制信号的方式。
更详细地说,在图4a的时序图400中示出了A类2∶1相位生成器的实现。(注意,在图3的实施例中也使用了A类2∶1相位生成器。)这个时序图对应于CCLK与BCLK之比是5∶4。在比值为1∶1的相位生成器中,相位1、相位2以及相位n控制信号中的每一个都保持(assert)为高。此外,相位n控制信号在所有相位中始终保持为高。在A类2∶1相位生成器中,由金属屏蔽环片单元发出的去向处理器的所有控制信号从BCLK的上升沿发起,并且,当出现(assert)相位2时,由处理器在下一个CCLK信号的上升沿时捕获。一般情况下,当调整周期具有两个相位的长度时,将使用A类2∶1相位生成器。
图4b示出了使用B类2∶1相位生成器的时序图450。在B类2∶1相位生成器中,当出现(assert)相位1时,BCLK信号由处理器从CCLK的上升沿发起,并且由金属屏蔽环片单元在下一个CCLK信号的上升沿时捕获。同时,当出现(assert)相位2时,从BCLK的上升沿发起CCLK信号,并且当出现(assert)相位2时,由处理器在下一个CCLK的上升沿捕获该CCLK信号。一般情况下,当主周期具有两个相位的长度时,将使用B类2∶1相位生成器。
图5中示出了用于生成前述控制信号的可编程相位生成器500。可编程相位生成器包括多个整数相位生成器,这些相位生成器的输出端经由复用器来选择。在所示的实施例中,可编程相位生成器500包括5∶1相位生成器502、4∶1相位生成器504、3∶1相位生成器506、A类2∶1相位生成器508、B类2∶1相位生成器510 以及1∶1相位生成器512。这些相位生成器中的每一个相位生成器的输出馈入复用器514,复用器514的控制输入端连接到比较器516的输出端。可编程相位生成器500进一步包括计数器518和可编程寄存器520。计数器518、比较器516以及可编程寄存器520的组合形成了可编程计数器522。
可编程相位生成器500的操作如下。首先,用户将期望的比值编入可编程寄存器520中。例如,对于比值24∶5,用户将把20和4编入可编程寄存器520中合适的寄存器。由核心时钟(CCLK)所定时的计数器在由比较器516复位之后,从0开始计数。当计数小于20时,比较器516通过将合适的复用器选择信号524提供给复用器514,来选择5∶1相位生成器502。当计数达到20时,比较器选择4∶1相位生成器,并且还复位计数器518,以及相位生成器502、504、506、508、510和512中的每一个。再一次,计数器从0开始计数,随着CCLK信号的每个周期而增加一。当计数达到4时,比较器翻转复用器选择信号524,以选择5∶1相位生成器502。然后持续重复整个过程。
一般情况下,可编程相位生成器500所使用的相位生成器的比值仅仅说明实际实现中可能使用的相位生成器比值的集合。在其它实施例中,可以使用相位生成器比值的不同组合,包括比值大于5∶1的相位生成器。相位生成器比值的特定组合一般取决于适用于可编程相位生成器所使用的集成电路或者系统环境的结构约束。
图6示出了网络处理器600的实现实例,该网络处理器使用可编程相位生成器500来实现跨时钟通信。在这个实现中,网络处理器600用在线路卡602中。一般情况下,线路卡602用于说明使用标准化的或者专有结构的多种类型的网络元件线路卡。例如,典型的这类线路卡可以包括先进通信计算机结构(ATCA)模板,其连接到ATCA底架中的公共背板,ATCA底架可以进一步包括ATCA模版。因此,如背板接口604所示,线路卡包括一组连接器,以与背板上的匹配连接器配对。一般情况下,背板接口604支持多种输入/输出(I/O)通信信道,并且向线路卡602供电。为了简单起见,图 6中仅示出了所选择的I/O接口,然而,应理解的是,还存在其它I/O和电源输入接口。
网络处理器600包括n个微引擎605。在一个实施例中n=8,而在其它实施例中n=16、24或32。还可以使用其它数量的微引擎605。在所示的实施例中,示出的16个微引擎605分成各有8个微引擎的两簇,包括ME簇0和ME簇1。
经由称为处理器“底架”的多组总线和控制线,每个微引擎605连接到其它网络处理器组件。为了清楚和简单起见,将这些组总线和控制线描述为内部互联线612。连接到内部互联线的还有SRAM控制器614、DRAM控制器616、通用处理器618、介质交换机结构控制器620、PCI(外围设备互联)控制器621、暂存存储器622、散列单元623。网络处理器600可以提供的其它未显示的组件包括、但不限于:加密单元、CAP(控制状态寄存器访问代理)单元以及性能监视器。
SRAM控制器614用于经由SRAM接口626,访问外部SRAM存储器624。类似地,DRAM控制器616用于经由DRAM接口630,访问外部DRAM存储器628。在一个实施例中,DRAM存储器628使用DDR(双倍数据速率)DRAM。在其它实施例中,DRAM存储器可以使用Rambus DRAM(RDRAM)或者低延时DRAM(RLDRAM)。
可以使用通用处理器618来进行多种网络处理器操作。在一个实施例中,慢速路径分组处理操作通过在通用处理器618上执行的软件来实现,而快速路径操作主要通过在微引擎605上执行的指令线程来实现。
介质交换机结构控制器620用于与安装有线路卡网络元件的介质交换机结构相交互。在一个实施例中,介质交换机结构控制器620使用系统分组级接口4相位2(SPI4-2)接口632。一般情况下,可以用一个或者多个独立的线路卡来主控实际的交换机结构,或者可以将实际的交换机结构构造在底架背板中。交换机结构634示出了这两种配置。
PCI控制器621使网络处理器能够与一个或者多个PCI设备交互,这一个或者多个PCI设备经由PCI接口636连接到背板接口604。在一个实施例中,PCI接口636包括PCI Express接口。
通用处理器618和内部互联线612代表了两个时钟域,这两个时钟域的比值为有理数。因此,包括可编程相位生成器500的金属屏蔽环片单元625连接在通用处理器618和内部互联线612之间,以便在两个时钟域的时钟信号之间提供合适的时间控制信号。
在初始化期间,将用于实现各种分组处理功能和操作的编码指令(例如微码)载入微引擎605的控制存储器。在一个实施例中,从线路卡602所主控的非易失性存储器638,例如闪速存储器设备,载入指令。非易失性存储器的其它实例包括只读存储器(ROM)、可编程ROM(PROM)以及电可擦除PROM(EEPROM)。在一实施例中,通过通用处理器618,经由接口649来访问非易失性存储器638。在另一个实施例中,可以经由连接到内部互联线612的接口(未示出)来访问非易失性存储器638。
除了从本地(对于线路卡602而言是本地)存储器载入指令之外,还可以从外部资源载入指令。例如,在一个实施例中,将指令存储在有另一个线路卡(未示出)所主控的磁盘设备642上,否则,由安装有线路卡602的网络元件来提供指令。在另一个实施例中从远程服务器等等,经由网络644,以载波的形式下载指令。
在一个实施例中,通用处理器618运行软件,以使用户将合适的数据编入可编程寄存器520,以使可编程相位生成器500根据两个时钟域的时钟比(例如CCLK∶BCLK),生成控制信号。在另一个实施例中,将寄存器值硬编码在网络处理器600上。
图7示出了示例性的跨时钟域环境700,在该环境中,以各自的时钟频率运行的一对处理器之间进行通信,这对处理器的时钟频率的比值是有理数。在环境700中,处理器A工作在使用CCLK时钟信号的时钟域1中,而处理器B工作在使用BCLK信号的时钟域2中。可编程相位生成器700接收CCLK和BCLK信号,并且生成控制信号704和706,从而提供定时信号,以便经过总线接口708 在处理器A和B之间传递地址和数据。本质上来说,控制信号704和706类似于前述握手信号,但在这里称之为控制信号,因为它们实际上没有在两个通信组件(例如处理器A和B)之间传递。
图8示出了包括总线接口单元(BIU)800的金属屏蔽环片单元的示例性实现。BIU位于处理器核802、南AHB 804以及存储控制器单元(MCU)806之间。MCU 806用于访问存储器808,并且MCU 806还连接到南AHB 804和北AHB 805。处理器核802工作在使用CCLK时钟信号的时钟域1中,而BIU 800、MCU 806、存储器808、南先进高性能总线(AHB)804和北AHB 805都工作在使用BCLK时钟信号的时钟域2中。与前面所述的一样,比值BCLK∶CCLK是有理数。
BIU 800使用相位生成器逻辑810、核心地址解码器812以及事务队列814和816。经由地址和数据总线818以及核心存储器总线(CMB)端口,在处理器核心802和BIU 800之间传递数据。通过相位生成器逻辑810,根据对应于BCLK∶CCLK的有理数比的合适的相位生成方案,生成握手信号820,握手信号820包括用于控制地址和数据总线818的定时信号。
如上所述,在一些配置中,在不同的时钟域的通信组件之间发送握手信号,以控制可用的数据和地址总线的时机,从而支持这些组件之间的通信。在其它配置中,这些信号被称为控制信号,因为它们实际上没有在通信组件之间传递。一般情况下,这些握手信号和控制信号都包括“时钟信号”,用于通过将合适的定时输入提供给可用的通信接口(例如,数据和地址总线),从而支持跨越不同时钟域的通信。
在BIU 800中,事务队列814和816作为数据缓冲器。这使得处理器核心向存储器808以及以异步的方式经由南AHB 804和北AHB 805访问的多种组件,发送数据,或从它们那里接收数据。在可选的配置(未示出)中,时钟域中的组件之间的数据传递是同步的,并且没有使用数据缓冲器。
注意,这里所公开的原理和教义适用于多种类型的集成电路结 构。通常,可以将该技术的多个方面应用于使用了具有有理数的时钟频率比的多个时钟域的结构。在一些包括三个或者更多不同的时钟域的实现中,可以使用上述类型的多个金属屏蔽环片单元,这是可预期到的。
本发明所示的实施例的以上描述,包括摘要中的描述,不是穷举的,即,并不是要将本发明限制于所公开的精确形式。尽管这里为了说明性的目的而公开了本发明的实例和具体实施例,但是,本领域技术人员将会认识到,可以在本发明的保护范围内有多种等价的修改。
可以根据以上的详细描述,对本发明作出这些修改。以下权利要求中所使用的术语不应解释为:将本发明限制于说明书和附图中所公开的具体实施例。根据权利要求解释的现有法律原则,本发明的保护范围完全是由以下权利要求来确定的。
Claims (26)
1.一种用于在第一和第二时钟域中的组件之间进行交叉通信的方法,所述第一和第二时钟域的时钟频率之比为有理数,所述方法包括:
在具有第一组相位的多个主周期期间生成相位控制信号;
在具有第二组相位的调整周期期间生成相位控制信号;
在总周期中重复生成相位控制信号,所述总周期包括所述多个主周期和所述调整周期;
基于分别用于所述第一和第二时钟域的第一和第二时钟信号以及所生成的相位控制信号,在所述第一和第二时钟域之间发送时钟信号。
2.如权利要求1所述的方法,其中,
所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值是N∶D,
所述总周期包括N个相位,每个主周期包括D个相位,所述调整周期包括R个相位,其中R是N除以D所得到的余数。
3.如权利要求1所述的方法,
其中,第一时钟域以核心时钟频率而工作,
其中,对于在所述第一和第二时钟域之间所发送的每个时钟信号,使用具有两个核心时钟周期的最小值的建立时间。
4.如权利要求1所述的方法,其中,生成相位控制信号包括:
在每个主周期和调整周期的第一相位期间,生成第一相位控制信号;
在每个主周期和调整周期的第二相位期间,生成第二相位控制信号;
在每个主周期和调整周期的最后相位期间,生成最后相位控制信号。
5.如权利要求1所述的方法,其中,所述第一和第二时钟域中的时钟频率的比值小于2∶1,所述方法还包括:
使用2∶1相位生成器,生成对应于所述主周期的相位控制信号;
使用1∶1相位生成器,生成对应于所述调整周期的相位控制信号。
6.如权利要求1所述的方法,其中,所述第一和第二时钟域中的时钟频率的比值小于2∶1,所述方法还包括:
使用1∶1相位生成器,生成对应于所述主周期的相位控制信号;
使用2∶1相位生成器,生成对应于所述调整周期的相位控制信号。
7.一种用于跨时钟通信的装置,包括:
相位生成器逻辑,其生成多个控制信号,用于对第一和第二时钟域之间的通信信号进行同步化,
其中,所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值是有理数。
8.如权利要求7所述的装置,其中,所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值大于2∶1。
9.如权利要求8所述的装置,其中,所述有理数比值是N∶D,并且,在可编程相位生成器中实现所述相位生成器逻辑,所述可编程相位生成器是可编程的,对于一个总周期而言,它生成包括N个相位的控制信号,所述总周期包括至少一个主周期和一个调整周期的组合,每个主周期包括D个相位,所述调整周期包括R个相位,其中R是N除以D所得到的余数。
10.如权利要求9所述的装置,其中,所述可编程相位生成器包括:
复用器,它具有多个输入端和一个输出端;
可编程计数器电路,它的第一输入端接收由所述第一时钟域所使用的第一时钟信号,它的第一输出端连接到所述复用器;
D∶1相位生成器,它的第一和第二时钟信号输入端分别接收所述第一时钟信号和由所述第二时钟域所使用的第二时钟信号,所述D∶1相位生成器还有一个输出端被连接作为所述复用器的所述多个输入端中的第一输入端;
R∶1相位生成器,它的第一和第二时钟信号输入端分别接收所述第一时钟信号和所述第二时钟信号,它有一个输出端被连接作为所述复用器的所述多个输入端中的第二输入端。
11.如权利要求7所述的装置,其中,对于在所述第一和第二时钟域之间所发送的每个时钟信号,使用具有两个核心时钟周期的最小值的建立时间。
12.如权利要求7所述的装置,其中,所述相位生成器逻辑生成第一相位控制信号、第二相位控制信号以及第n相位控制信号。
13.如权利要求7所述的装置,其中,所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值小于2∶1。
14.如权利要求13所述的装置,其中,所述相位生成器逻辑包括:
2∶1相位生成器,其生成与包括两个相位的周期相对应的控制信号;
1∶1相位生成器,其生成与包括一个相位的周期相对应的控制信号。
15.如权利要求14所述的装置,其中,在可编程相位生成器中实现所述相位生成器逻辑,所述可编程相位生成器是可编程的,它生成包括至少两个主周期和一个调整周期的总周期,其中用2∶1相位生成器来生成所述主周期,用1∶1相位生成器来生成所述调整周期。
16.如权利要求14所述的装置,其中,在可编程相位生成器中实现所述相位生成器逻辑,所述可编程相位生成器是可编程的,它生成包括至少两个主周期和一个调整周期的总周期,其中用1∶1相位生成器来生成所述主周期,用2∶1相位生成器来生成所述调整周期。
17.如权利要求7所述的装置,还包括:
在所述第一时钟域中工作的处理器;
在所述第二时钟域中工作的总线,
其中,将所述相位生成器逻辑可操作地连接到所述处理器和总线中的每一个,以提供用于支持在所述处理器和所述总线之间进行通信的时间控制信号。
18.如权利要求7所述的装置,还包括:
在所述第一时钟域中工作的第一处理器;
在所述第二时钟域中工作的第二处理器,
其中,将所述相位生成器逻辑可操作地连接到所述第一处理器和第二处理器中的每一个,以提供用于支持在所述第一处理器和所述第二处理器之间进行通信的时间控制信号。
19.如权利要求7所述的装置,其中,在可编程相位生成器中实现所述相位生成器逻辑,所述可编程相位生成器包括:
复用器,具有多个输入端和一个输出端;
可编程计数器电路,它的第一输入端接收由所述第一时钟域所使用的第一时钟信号,它的第一输出端连接到所述复用器;
至少两个相位生成器,每个相位生成器生成对应于各自整数时钟比值的时钟信号,其第一和第二时钟信号输入端分别接收所述第一时钟信号和由所述第二时钟域所使用的第二时钟信号,每个相位生成器还有一个输出端作为相应的输入端连接到所述复用器。
20.如权利要求19所述的装置,其中,所述至少两个相位生成器包括:
1∶1相位生成器,它的第一和第二时钟信号输入端分别接收所述第一时钟信号和由所述第二时钟域所使用的第二时钟信号,所述1∶1相位生成器还有一个输出端作为第一输入端连接到所述复用器;
2∶1相位生成器,它的第一和第二时钟信号输入端分别接收所述第一时钟信号和所述第二时钟信号,所述2∶1相位生成器还有一个输出端作为第二输入端连接到所述复用器;
3∶1相位生成器,它的第一和第二时钟信号输入端分别接收所述第一时钟信号和所述第二时钟信号,所述3∶1相位生成器还有一个输出端作为第三输入端连接到所述复用器;
4∶1相位生成器,它的第一和第二时钟信号输入端分别接收所述第一时钟信号和所述第二时钟信号,所述4∶1相位生成器还有一个输出端作为第四输入端连接到所述复用器。
21.一种用于跨时钟通信的集成电路,包括:
在第一时钟域中运行的处理器;
在第二时钟域中运行的总线;
相位生成器逻辑,其生成多个控制信号,用于对第一和第二时钟域之间的通信信号进行同步化,其中,所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值是有理数。
22.如权利要求21所述的集成电路,其中,所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值大于2∶1。
23.如权利要求21所述的集成电路,其中,所述第一时钟域中的时钟频率相对于所述第二时钟域中的时钟频率的比值小于2∶1。
24.一种用于跨时钟通信的网络线路卡,包括:
印刷电路板,其具有背板接口,所述背板接口包括基于系统分组级接口的介质交换机结构接口;
装配在所述印刷电路板上的网络处理器,所述网络处理器包括:
在第一时钟域中工作的内部互联线;
连接到所述内部互联线的多个计算引擎;
介质交换机结构接口控制器,其连接到所述内部互联线和所述基于系统分组级接口的介质交换机结构接口;
在第一时钟域中工作的通用处理器;
可编程相位生成器,其生成多个控制信号,用于对所述通用处理器和所述内部互联线之间的通信信号进行同步化,其中所述第一时钟域中的时钟频率相对于第二时钟域中的时钟频率的比值是有理数。
25.如权利要求24所述的网络线路卡,其中,所述第二时钟域中的时钟频率相对于所述第一时钟域中的时钟频率的比值大于2∶1。
26.如权利要求24所述的网络线路卡,其中,所述第二时钟域中的时钟频率相对于所述第一时钟域中的时钟频率的比值小于2∶1。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/125,699 US7428652B2 (en) | 2005-05-10 | 2005-05-10 | Programmable phase generator for cross-clock communication where the clock frequency ratio is a rational number |
US11/125,699 | 2005-05-10 | ||
PCT/US2006/017049 WO2006121738A2 (en) | 2005-05-10 | 2006-05-02 | Programmable phase generator for cross-clock communication where the clock frequency ratio is a rational number |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101171559A CN101171559A (zh) | 2008-04-30 |
CN101171559B true CN101171559B (zh) | 2010-12-15 |
Family
ID=36922208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800157482A Expired - Fee Related CN101171559B (zh) | 2005-05-10 | 2006-05-02 | 用于跨时钟通信的可编程相位生成器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7428652B2 (zh) |
CN (1) | CN101171559B (zh) |
WO (1) | WO2006121738A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807913B (zh) * | 2010-03-26 | 2012-04-04 | 华为技术有限公司 | 低速时钟使能信号产生方法、装置和设备 |
CN104484011A (zh) * | 2014-11-25 | 2015-04-01 | 上海高性能集成电路设计中心 | 一种分布控制双时钟异步发送、接收模块及fifo装置 |
CN104850524B (zh) * | 2015-05-29 | 2018-06-01 | 大唐微电子技术有限公司 | 一种跨时钟域的ahb总线桥接方法和装置 |
US20170168541A1 (en) * | 2015-12-15 | 2017-06-15 | Intel Corporation | Processor core energy management |
US11493949B2 (en) * | 2020-03-27 | 2022-11-08 | Qualcomm Incorporated | Clocking scheme to receive data |
CN111612622B (zh) * | 2020-05-20 | 2021-03-23 | 深圳比特微电子科技有限公司 | 用于执行散列算法的电路和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588004A (en) * | 1994-09-07 | 1996-12-24 | Hitachi, Ltd. | Bus synchronizing method and system based thereon |
CN1420632A (zh) * | 2002-04-17 | 2003-05-28 | 湘潭师范学院 | 一种用余数插补比较法产生矩形波的虚拟信号发生器 |
CN1474567A (zh) * | 2002-08-07 | 2004-02-11 | ������������ʽ���� | 数据传送装置 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4405898A (en) * | 1980-06-30 | 1983-09-20 | International Business Machines Corporation | Pseudo synchronous clocking |
US5459855A (en) * | 1992-08-10 | 1995-10-17 | Hewlett-Packard Company | Frequency ratio detector for determining fixed frequency ratios in a computer system |
US6112307A (en) * | 1993-12-30 | 2000-08-29 | Intel Corporation | Method and apparatus for translating signals between clock domains of different frequencies |
US5487092A (en) * | 1994-12-22 | 1996-01-23 | International Business Machines Corporation | System for high-speed synchronization across clock domains |
US5634116A (en) | 1995-03-30 | 1997-05-27 | International Business Machines Corporation | Non-integer multiple clock translator |
US5802132A (en) * | 1995-12-29 | 1998-09-01 | Intel Corporation | Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme |
US5821784A (en) * | 1995-12-29 | 1998-10-13 | Intel Corporation | Method and apparatus for generating 2/N mode bus clock signals |
US5834956A (en) * | 1995-12-29 | 1998-11-10 | Intel Corporation | Core clock correction in a 2/N mode clocking scheme |
US5862373A (en) * | 1996-09-06 | 1999-01-19 | Intel Corporation | Pad cells for a 2/N mode clocking scheme |
US5826067A (en) * | 1996-09-06 | 1998-10-20 | Intel Corporation | Method and apparatus for preventing logic glitches in a 2/n clocking scheme |
US5796995A (en) * | 1997-02-28 | 1998-08-18 | Texas Instruments Incorporated | Circuit and method for translating signals between clock domains in a microprocessor |
US6172540B1 (en) * | 1999-08-16 | 2001-01-09 | Intel Corporation | Apparatus for fast logic transfer of data across asynchronous clock domains |
US6633994B1 (en) * | 2000-02-22 | 2003-10-14 | International Business Machines Corporation | Method and system for optimizing data transfers between devices interconnected by buses operating at different clocking speeds |
US6738917B2 (en) * | 2001-01-03 | 2004-05-18 | Alliance Semiconductor Corporation | Low latency synchronization of asynchronous data |
US6956918B2 (en) | 2001-06-27 | 2005-10-18 | Intel Corporation | Method for bi-directional data synchronization between different clock frequencies |
US6928574B1 (en) * | 2001-08-23 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | System and method for transferring data from a lower frequency clock domain to a higher frequency clock domain |
US6931562B1 (en) * | 2001-08-23 | 2005-08-16 | Hewlett-Packard Development Company, L.P. | System and method for transferring data from a higher frequency clock domain to a lower frequency clock domain |
US6982575B2 (en) * | 2002-01-30 | 2006-01-03 | Agilent Technologies, Inc. | Clock ratio data synchronizer |
US6898725B2 (en) * | 2002-03-27 | 2005-05-24 | International Business Machines Corporation | Method for adjusting system clocks using dynamic clock ratio detector to detect clock ratio between clock domain of driver and counting receiver clock domain |
US7296174B2 (en) * | 2002-10-11 | 2007-11-13 | Broadcom Corporation | Apparatus and method to interface two different clock domains |
US7269754B2 (en) * | 2002-12-30 | 2007-09-11 | Intel Corporation | Method and apparatus for flexible and programmable clock crossing control with dynamic compensation |
TWI300892B (en) * | 2003-04-01 | 2008-09-11 | Faraday Tech Corp | Method of synchronizing dual clock frequencies |
US6864722B2 (en) * | 2003-05-09 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Phase detector for a programmable clock synchronizer |
US7219251B2 (en) * | 2003-05-09 | 2007-05-15 | Hewlett-Packard Development Company, L.P. | Programmable clock synchronizer |
US7134035B2 (en) * | 2003-05-30 | 2006-11-07 | Sun Mircosystems, Inc. | Method for generating a synchronization signal based on the clock ratio between two clock domains for data transfer between the domains |
US7249274B1 (en) * | 2003-12-30 | 2007-07-24 | Intel Corporation | System and method for scalable clock gearing mechanism |
-
2005
- 2005-05-10 US US11/125,699 patent/US7428652B2/en not_active Expired - Fee Related
-
2006
- 2006-05-02 WO PCT/US2006/017049 patent/WO2006121738A2/en active Application Filing
- 2006-05-02 CN CN2006800157482A patent/CN101171559B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588004A (en) * | 1994-09-07 | 1996-12-24 | Hitachi, Ltd. | Bus synchronizing method and system based thereon |
CN1420632A (zh) * | 2002-04-17 | 2003-05-28 | 湘潭师范学院 | 一种用余数插补比较法产生矩形波的虚拟信号发生器 |
CN1474567A (zh) * | 2002-08-07 | 2004-02-11 | ������������ʽ���� | 数据传送装置 |
Also Published As
Publication number | Publication date |
---|---|
US7428652B2 (en) | 2008-09-23 |
CN101171559A (zh) | 2008-04-30 |
WO2006121738A2 (en) | 2006-11-16 |
US20060259805A1 (en) | 2006-11-16 |
WO2006121738A3 (en) | 2007-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101171559B (zh) | 用于跨时钟通信的可编程相位生成器 | |
DE112013007751B3 (de) | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht | |
US9489200B2 (en) | Method and apparatus for asynchronous processor with fast and slow mode | |
US7296174B2 (en) | Apparatus and method to interface two different clock domains | |
CN106992770B (zh) | 时钟电路及其传输时钟信号的方法 | |
JP4998699B2 (ja) | 半導体装置、及び通信制御方法 | |
JP4384819B2 (ja) | 弾性インターフェース装置およびそのための方法 | |
US8365111B2 (en) | Data driven logic simulation | |
Sheng et al. | Towards Low-Latency Communication on FPGA Clusters with 3D FFT Case Study | |
JPH0877103A (ja) | バス同期化方式及びこれを用いた装置,システム | |
Tidala | High performance network on chip using AXI4 protocol interface on an FPGA | |
CN110012181B (zh) | 定时控制器、包括其的调制解调器芯片和集成电路 | |
Antichi et al. | Bruno: A high performance traffic generator for network processor | |
WO2015099799A1 (en) | Dynamic interconnect with partitioning on emulation and protyping platforms | |
Manley | A scalable packetised radio astronomy imager | |
US9966964B1 (en) | Multi-phase divider | |
CN108141204B (zh) | 用于控制从多通道输出的波形的相位的系统和方法 | |
Schoeberl et al. | S4noc: a minimalistic network-on-chip for real-time multicores | |
EP3173895B1 (en) | Clock tree implementation method, system-on-chip and computer storage medium | |
KR102606239B1 (ko) | 힙 정렬 기반의 타이밍 컨트롤러, 이를 구비하는 모뎀 칩, 및 집적 회로 | |
Pulley et al. | Software defined baseband processing for 3G base stations | |
Baines et al. | The picoArray and reconfigurable baseband processing for wireless basestations | |
JP4691791B2 (ja) | データ処理システム | |
US6552590B2 (en) | Clocking scheme for ASIC | |
CN117742662A (zh) | 真随机数发生器、集成电路及控制方法、芯片及电子器件 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101215 Termination date: 20130502 |