CN109478081A - 管理跨不同时钟域的时钟信号的频率变化 - Google Patents
管理跨不同时钟域的时钟信号的频率变化 Download PDFInfo
- Publication number
- CN109478081A CN109478081A CN201680087626.8A CN201680087626A CN109478081A CN 109478081 A CN109478081 A CN 109478081A CN 201680087626 A CN201680087626 A CN 201680087626A CN 109478081 A CN109478081 A CN 109478081A
- Authority
- CN
- China
- Prior art keywords
- clock
- clock signal
- edge
- processor
- frequency
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 10
- 230000007423 decrease Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 14
- 230000008034 disappearance Effects 0.000 description 12
- 230000000630 rising effect Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
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/08—Clock generators with changeable or programmable clock frequency
-
- 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/10—Distribution of clock signals, e.g. skew
-
- 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/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- 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/26—Power supply means, e.g. regulation thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Power Sources (AREA)
- Information Transfer Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
一种处理器[100]维持正在时钟域[102、103]之间进行传输的数据的最小设置时间,包括响应于时钟域中的至少一者的时钟信号的频率变化而维持所述最小设置时间。所述处理器采用监测时钟域中的每一者的时钟边沿的一个或多个控制模块[122、124]来确保接收时钟域不从存储位置访问数据,直到在数据已被写入所述存储位置之后在传输时钟域中已消逝最小数量个相位为止。此外,所述控制模块响应于所述时钟域中的一者或两者的时钟频率的变化而维持所述最小设置时间。
Description
背景技术
处理器通常采用一个或多个时钟信号来使处理器的模块处的逻辑运算同步,由此防止诸如设置错误、竞态条件等错误。典型处理器针对处理器的不同部分采用不同的时钟信号,其中每个处理器部分称为时钟域。通过采用不同的时钟域,处理器以不同的频率操作不同的部分,并且还相对于逻辑运算的定时相对独立地操作不同的部分。例如,处理器可用不同频率的时钟信号来使不同时钟域同步,由此提高处理效率。此外,处理器可将不同的时钟信号提供到不同的时钟域而不将不同的时钟信号同步,由此简化处理器处的时钟管理和信号路由。然而,当跨处理器的时钟域传送数据时,可能出现亚稳态错误。通过在时钟域之间包括亚稳态电路(例如触发器组)来实现数据传输,可缓解这些错误。然而,此类亚稳态电路可能会增加时延,并且需要额外的电路(诸如缓冲器的额外条目)来解决控制信号延迟。通过采用先进先出缓冲器(FIFO)来跨时钟域传输数据也可减少这些错误,但是当时域中的一个的时钟频率变更时,常规FIFO可能会在数据传输过程中引入错误,这是因为电压下降或者因为时钟域中的一者或多者的功率模式的变化。
附图说明
通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。在不同附图中使用相同附图标号来指示类似或相同项目。
图1是处理器的框图,所述处理器根据一些实施方案响应于时钟域中的一者的时钟频率的变化而维持时钟域之间的数据传输的最小设置时间。
图2是示出图2的FIFO读取/写入控制模块的图示,所述FIFO读取/写入控制模块根据一些实施方案维持图1的处理器的时钟域之间的数据传输的最小设置时间。
图3是示出图2的FIFO读取/写入控制模块的图示,所述FIFO读取/写入控制模块根据一些实施方案响应于图1的处理器的时钟域的频率变化而维持最小设置时间。
图4是根据一些实施方案的图1的处理器的先进先出(FIFO)读取/写入控制模块的框图。
图5是根据一些实施方案响应于时钟域中的一者的时钟信号的频率变化而维持用于在处理器的时钟域之间传输数据的最小设置时间的方法的流程图。
具体实施方式
图1至图5示出用于维持正在处理器的时钟域之间进行传输的数据的最小设置时间的技术,包括响应于时钟域中的至少一者的时钟信号的频率变化而维持最小设置时间。处理器采用用于监测时钟域中每一个的时钟边沿的一个或多个控制模块来确保接收时钟域不从存储位置读取数据,直到在数据已被写入存储位置之后在传输时钟域中已消逝最小数量个相位为止,由此确保数据有足够的设置时间来准确地存储在存储位置处,从而减少数据传输错误。此外,控制模块响应于时钟域中的一者或两者处的时钟频率的变化而维持最小设置时间,无论时钟频率的变化是时钟域中的一者的功率模式的变化的结果、电压下降的结果还是它们的组合,皆是如此。通过采用一个或多个控制模块来维持最小设置时间,处理器响应于时钟频率变化而继续准确地传输数据,并且特别地,不重新开始任何一个时钟域的传输过程。处理器可在支持时钟域之间的准确数据传输的同时提高处理效率并降低功耗。
在一些实施方案中,处理器用于传输数据的存储位置是具有多个条目的先进先出队列(FIFO)。每个时钟域管理用于访问FIFO的一组指针,其中控制模块管理何时调整每个指针值并将其提供给FIFO,由此控制何时写入和读取FIFO。控制模块由此确保在读取写入FIFO的数据之前为数据确立最小设置时间。例如,在一些实施方案中,控制模块强制实施两个时钟域的“较慢”时钟信号(即,两个时钟域的具有较低频率的时钟信号)的一个周期(一个完整周期)的最小设置时间。为强制实施最小设置时间,控制模块跟踪两个时钟信号的时钟边沿,并确保只有在提供写入指针以在传输时钟域写入给定存储位置之后已消逝最小设置时间时才将用于在接收时钟域读取FIFO的给定存储位置的读取指针提供到FIFO。最小设置时间的强制实施有时需要控制模块选择性地跳过或忽略在接收时钟域的各个时钟周期内从FIFO的读取。如本文进一步描述,通过采用控制模块来强制实施最小设置时间,处理器调整被提供到时钟域中的至少一者的时钟信号的频率,同时维持跨时钟域的数据流。相比而言,常规时钟域同步电路通常响应于时钟域中的一者的时钟频率的变化而经历重置处理,由此消耗额外的功率并降低数据传输的速度和效率。
图1示出处理器100,所述处理器100根据一些实施方案维持用于存储正在时钟域之间传输的数据的最小设置时间。处理器100由多种支持计算的电子装置中的任何一种实现,所述多种支持计算的电子装置诸如服务器、台式计算机、笔记本计算机、平板计算机、支持计算的便携式蜂窝电话(例如,“智能电话”)、支持计算的手表或其他可穿戴物品、个人数字助理(PDA)、游戏控制台等。在所描绘的实例中,处理器100包括两个时钟域,指定为核心时钟域102和L3时钟域103。核心时钟域102包括与处理器核心(未示出)的运算相关联的模块,并且包括用于存储供处理器核心访问的数据的2级(L2)高速缓存120。L3时钟域103包括用于存储供L2高速缓存120访问的数据的3级(L3)高速缓存,如本文进一步描述。
在一些实施方案中,L3高速缓存126与用于核心时钟域102的处理器核心的L2高速缓存120一起形成存储器分级结构。存储器分级结构还包括用于处理器核心的L1高速缓存(未示出)以及主存储器(未示出)。处理器100基于存储器管理方案来在存储器分级结构的不同级别之间传输数据,由此将可能由处理器核心访问的数据移动得更靠近存储器分级结构中的处理器核心,并且不太可能由处理器核心访问的数据更远离存储器分级结构中的处理器核心。在一些实施方案中,处理器100包括类似于核心时钟域102的另外的核心时钟域(未示出),用于支持不同的处理器核心和对应L2高速缓存,其中每个核心时钟域具有自身的存储器分级结构,包括自身的L1高速缓存和L2高速缓存,但其中处理器100的存储器分级结构中的多个存储器分级结构共享L3高速缓存126。
为在维持核心时钟域102的处理效率的同时促进L3高速缓存126的共享,处理器100将不同的时钟信号提供到核心时钟域102和L3时钟域103,以使相应运算同步。在所描绘的实例中,提供到核心时钟域102的时钟信号被指定为“CCLK”,而提供到L3时钟域103的时钟信号被指定为“L3CLK”。如本文进一步描述,CCLK时钟信号和L3CLK时钟信号是异步的,因此可具有不同的频率,但是如本文进一步描述的那样具有能够跟踪的相位关系,因为这些时钟信号来源于共同PLL源。
特别地,为生成CCLK信号和L3CLK信号,处理器100采用锁相环路(PLL)105和时钟发生器106。PLL 105是通常被配置为生成指定为“VCO_CLK”的时钟信号的压控振荡器电路,所述时钟信号被锁相到由诸如参考晶体的时钟源(未示出)所提供的稳定振荡信号。在一些实施方案中,PLL 105供应彼此异相的多个时钟信号,以通过组合所述多个时钟信号中的选定者来支持生成不同频率的时钟信号。例如,在一些实施方案中,PLL 105供应各自与其他八个时钟信号中的一个异相至少45度的八个时钟信号,从而支持用于生成时钟信号的第1/8整数分频级。
时钟发生器106是被配置为基于VCO_CLK信号生成CCLK信号和L3CLK信号的模块。在一些实施方案中,如上所指示,PLL 105供应彼此异相的多个时钟信号,并且时钟发生器106通过基于独立地确立每个时钟信号的时钟频率的控制信令而选择性地组合多个时钟信号来生成CCLK信号和L3CLK信号。在所描绘的实例中,控制信令由指定为动态电压和频率缩放(DVFS)模块107和电压下降模块108的两个模块提供。
DVFS模块107通常被配置来确定核心时钟域102和L3时钟域103中的每一者的功率模式,并且提供在图1处表示为指定为“FREQ”的信号的控制信令,从而基于相应功率模式指示时钟信号CCLK和L3CLK中的每一者的频率。在一些实施方案中,DVFS模块107将每个时钟信号的频率指示为除数值,出于描述目的而指定为“fVCO”的频率VCO_CLK的时钟信号将除以所述除数值。因此,例如,DVFS模块107将CCLK信号的频率指示为fVCO除以2.5,而将L3CLK信号的频率指示为fVCO除以1.75。如实例所示,DVFS模块107基于相应功率模式而独立地设定CCLK时钟信号和L3CLK时钟信号的频率。
电压下降模块108检测核心时钟域102和时钟域103中的一者或两者的基准电压的电压下降,并且作为响应,提供在图1中表示为指定为“DROOP”的信号的控制信令,从而指示对时钟信号CCLK和L3CLK中的一者或两者的频率的调整。响应于检测到电压下降已停止(即,基准电压已返回到标称水平),电压下降模块108经由DROOP信号提供控制信令以终止对时钟信号CCLK和L3CLK中的一者或两者的调整。
时钟发生器106基于DROOP信号和FREQ信号而标识CCLK时钟信号和L3CLK时钟信号中的每一者的频率。在一些实施方案中,时钟发生器106通过标识由FREQ信号指示的每个时钟信号的标称频率来标识频率,然后基于DROOP信号而调整时钟信号的频率。例如,基于FREQ信号,时钟发生器106将CCLK信号的标称时钟频率确定为fVCO除以二。时钟发生器106还确定DROOP信号指示核心时钟域102的电压下降。作为响应,时钟发生器106将CCLK信号的频率调整为fVCO除以二,以确保电压下降并不导致处理器核心或其他模块的不当操作。此外,基于FREQ信号,时钟发生器106将L3信号的标称频率确定为fVCO除以1.75。时钟发生器106还确定DROOP信号指示L3时钟域103没有电压下降,因此将L3CLK信号的频率维持在标称频率。
时钟发生器106以CCLK时钟信号和L3时钟信号各自确定的频率生成CCLK时钟信号和L3时钟信号。在一些实施方案中,时钟发生器106通过独立地组合VCO_CLK信号的相移版本来生成CCLK时钟信号和L3时钟信号中的每一者,从而以相应频率生成每个时钟信号。如上所指示,时钟发生器106独立于彼此地设定和改变时钟信号CCLK和L3CLK中的每一者的频率,使得CCLK时钟信号和L3CLK时钟信号是异步的。
由于时钟信号CCLK和L3CLK的异步性,核心时钟域102和L3时钟域103无法仅基于对应的时钟信号中的一者而直接可靠地传送数据。因此,为促进核心时钟域102与L3时钟域103之间的数据传送,处理器100包括具有多个条目的FIFO 130,其中每个条目是可由核心时钟域102和L3时钟域103访问的可单独寻址的存储位置。例如,在一些实施方案中,FIFO130包括三个条目。为便于描述,根据本文所述的技术,假设FIFO 130用于将数据从核心时钟域102传输到L3时钟域103,并且处理器100包括用于将数据从L3时钟域103传输到核心时钟域102的不同FIFO(未示出)。
为访问FIFO 130,核心时钟域102和L3时钟域103各自分别包括指定为读取/写入模块122和读取/写入模块124的读取/写入模块。读取/写入模块122和124中的每一者独立地管理用于访问FIFO 130的一组指针。特别地,读取/写入模块122采用写入指针来指示FIFO130的待写入的下一条目。响应于从L2高速缓存120接收到用于传输到L3时钟域103的数据,读取/写入模块122写入数据到FIFO 130的条目,然后将写入指针调整为指向FIFO130的下一条目。如果所写入条目是FIFO 130的最后一个条目,则读取/写入模块122将写入指针调整为指向FIFO 130的第一条目。因此,假设FIFO 130具有三个条目,则写入指针首先指向条目零,然后指向条目一,然后指向条目二,然后返回到条目零。
读取/写入模块124采用读取指针来指示FIFO 130的待读取的下一条目。读取/写入模块124从读取指针所指示的条目进行读取,然后将读取指针调整为指向FIFO 130的下一条目。如同上述写入指针一样,如果所读取条目是FIFO 130的最后一个条目,则读取/写入模块124将读取指针调整为指向FIFO 130的第一条目。
读取/写入模块122和124中的每一者由对应于时钟域的时钟信号(即,分别为时钟信号CCLK和L3CLK)同步。如上所解释,这些时钟信号是异步的。为确保在被读取之前写入数据已被适当地存储在FIFO 130的条目处,读取/写入模块124跟踪时钟信号的边沿并维持写入FIFO 130的条目的数据的最小设置时间。在用于读取侧(数据正被读取的时钟域)的时钟信号具有更高频率的一些实施方案中,读取/写入模块124确保在条目由读取/写入模块122写入之后在CCLK时钟信号的至少一个时钟周期内不读取FIFO 130的条目。在用于写入侧(数据正被写入FIFO 130的时钟域)的时钟信号具有更高的频率的一些实施方案中,读取/写入模块124确保不写入数据,直到先前写入的数据的最小设置时间达到为止。由此读取/写入模块122和124确保条目处的数据在由另一读取/写入模块读取时不在传输(即,正被写入)中。此外,读取/写入模块122和124确保响应于CCLK时钟信号或L3CLK时钟信号中的任何频率变化而维持最小设置时间,由此确保响应于时钟频率变化的在无需传输数据或重置数据传输电路的情况下的适当数据传输。
在一些实施方案中,读取/写入模块124并不直接地跟踪CCLK时钟信号的边沿。相反地,如下文关于图4进一步描述,读取/写入模块124通过跟踪L3CLK时钟信号与VCO_CLK时钟信号之间的消逝相位以及通过监测对CCLK或L3CLK信号的频率变化的任何指示来间接地跟踪CCLK信号的边沿。通过监测消逝相位和时钟信号的频率两者,读取/写入模块124确保最小设置时间得以维持。特别地,虽然读取/写入模块124可能无法直接观察到CCLK时钟信号的边沿的精确定时,但是对消逝相位和频率变化两者的监测允许读取/写入模块124至少强制实施最小设置时间,如下文进一步描述。
图2示出根据一些实施方案的维持从FIFO 130读取条目的最小设置时间的读取/写入模块124的实例。特别地,图2示出分别对应于CCLK信号和L3CLK信号的实例的波形240和241。波形240和241各自被划分成多个周期:CCLK(波形240)的周期250-255和L3CLK(波形241)的周期260-267。此外,对于每个周期250-255,图2指示FIFO 130的由读取/写入模块122写入的位置,并且对于每个周期260-267,图2示出FIFO 130的由读取/写入模块124读取的位置。因此,在所描绘的实例中,读取/写入模块122在周期250期间写入FIFO 130的位置0,并且在周期253期间再次写入,而读取/写入模块在周期262期间读取FIFO 130的位置0并且在周期266期间再次读取。
对于图2的实例,假设CCLK的每个周期在时钟信号的上升沿开始。因此,读取/写入模块122响应于时钟信号CCLK的每个上升沿而发起写入FIFO 130的对应位置。类似地,L3CLK的每个周期在时钟信号的上升沿开始,因此当从FIFO 130读取时,读取/写入模块124响应于时钟信号L3CLK的上升沿而发起读取对应位置。然而,为了确保针对到FIFO 130的写入的最小设置时间得以维持,读取/写入模块124在选定周期期间并不从FIFO 130进行读取,这些周期在图2中被指定为“NO READ”。
在所描绘的实例中,CCLK时钟信号处于比L3CLK时钟信号低的频率,因此读取/写入模块124在CCLK时钟信号的每个周期期间写入数据到FIFO 130的条目。为针对每个写入维持一个CCLK周期的最小设置时间,读取/写入模块124监测CCLK时钟信号的边沿并且禁止在L3时钟信号的周期内从FIFO 130进行的读取,其中最小设置时间将得不到满足。因此,对于L3CLK信号的周期261,读取/写入模块124准备好从FIFO 130的位置0进行读取。然而,读取/写入模块124确定在周期261开始时,自读取/写入模块122在周期250的开始发起写入到位置0起尚未消逝CCLK的完整周期。因此,读取/写入模块124通过例如在周期261期间不将读取指针提供到FIFO130来禁止在所述周期期间从FIFO 130进行读取。对于周期262,读取/写入模块124确定自写入位置0由读取/写入模块122发起起已消逝CCLK的完整周期。作为响应,读取/写入模块124在周期262的开始(即,响应于上升沿)发起读取位置0。
对于周期263,读取/写入模块124准备好从FIFO 130的位置1进行读取。读取/写入模块124确定自周期251期间写入位置1起已消逝CCLK的完整周期,因此读取/写入模块124在周期263期间读取位置1。对于周期264,读取/写入模块124准备好从FIFO 130的位置0进行读取。然而,读取/写入模块124确定在周期264开始时,自读取/写入模块122在周期252的开始发起写入到位置2起尚未消逝CCLK的完整周期。因此,读取/写入模块124禁止在周期264期间从FIFO 130进行读取。对于随后的周期262,读取/写入模块124确定自写入位置2由读取/写入模块122发起起已消逝CCLK的完整周期。作为响应,读取/写入模块124在周期264的开始(即,响应于上升沿)发起读取位置2。因此,在图2所示的实例中,读取/写入模块124维持在读取数据之前写入FIFO 130的数据的最小设置时间,即使在CCLK信号和L3CLK信号是异步的情况下也是如此。
应理解,图2示出从FIFO 130进行读取的读取/写入模块124的实例。在一些实施方案中,读取/写入模块124以类似方式写入FIFO130,以维持所写入数据的最小设置时间。特别地,在L3CLK信号的选定周期期间,读取/写入模块124将写入指针提供到FIFO 130以写入数据,其中将所述周期选择为确保不写入数据到条目,直到已达成先前写入条目的数据的最小设置时间之后数据已由读取/写入模块122读取为止。因此,对于其中读取/写入模块准备好写入数据到条目的给定时钟周期,响应于确定尚未达成写入条目的数据的最小设置时间,读取/写入模块124禁止将写入指针提供到FIFO 130,直到随后的时钟周期为止,从而确保所写入数据的最小设置时间得到满足。
在一些实施方案中,读取/写入模块124被配置来维持最小设置时间,即使在CCLK和L3CLK信号中的一者或多者经历频率变化的情况下也是如此。在图3处示出根据一些实施方案的实例。类似于图2,图3示出分别对应于CCLK信号和L3CLK信号的实例的波形340和341。波形340和341各自被划分成多个周期:CCLK(波形340)的周期350-354和L3CLK(波形241)的周期360-367。对于每个周期350-354,图3示出FIFO 130的由读取/写入模块122写入的位置,并且对于每个周期360-367,图3示出FIFO 130的由读取/写入模块124读取的位置。
类似于图2的实例,在图3的实例中,对于到FIFO 130的每次写入,读取/写入模块124维持一个CCLK周期的最小设置时间。然而,在图3的实例中,CCLK信号在时间371改变频率。频率的变化可以是核心时钟域102的功率模式的变化、由电压下降模块108检测到的核心时钟域102的电压下降,或者它们的组合的结果。响应于频率变化,读取/写入模块124调整何时读取FIFO 130的条目以维持一个CCLK时钟周期的最小设置时间。例如,对于L3CLK的周期364,读取/写入模块124准备好从FIFO 130的位置2进行读取。然而,读取/写入模块124确定尚未达到在CCLK时钟信号的周期352期间用于数据写入位置2的最小设置时间,因为CCLK时钟信号在时间371的频率减小已延长周期。响应于确定尚未达到最小设置时间,读取/写入模块124禁止在周期364内从FIFO 130进行读取。在随后的周期365,读取/写入模块124确定在CCLK时钟信号的所调整频率下已达到用于写入数据到位置2的最小设置时间,并且作为响应,将读取指针提供到FIFO 130以从位置2进行读取。因此,通过跟踪CCLK信号的边沿,读取/写入模块124调整何时读取FIFO 130的条目以维持最小设置时间,即使CCLK时钟信号的频率改变也是如此。
图4示出根据一些实施方案的读取/写入模块124的框图。在所描绘的实例中,并且如下文进一步描述,读取/写入模块124通过跟踪VCO_CLK信号的消逝相位来跟踪CCLK时钟信号的边沿。特别地,因为CCLK时钟信号是基于VCO_CLK信号的,所以VCO_CLK信号的消逝相位在CCLK时钟信号的边沿时提供对位置的相对指示。因此,通过跟踪VCO_CLK信号的消逝相位,读取/写入模块124能够在不直接感测CCLK时钟信号的边沿的情况下标识是否已达成写入FIFO 130的数据的最小设置时间。
在图4的实例中,读取/写入模块124包括控制模块440、读取指针模块442、写入指针模块444、VCO_CLK相位计数器446以及相位计数器调整模块448。读取指针模块442被配置来存储用于读取/写入模块124的读取指针。响应于指定为“RD”的信号的断言,读取指针模块将读取指针调整为指向FIFO 130的下一位置,并且将读取指针提供到FIFO 130。作为响应,FIFO 130读取由读取指针指示的位置,并将读取的数据提供到读取/写入模块124以用于传输到L3高速缓存126。
写入指针模块444与读取指针模块442类似地配置,以写入数据到FIFO 130。特别地,写入指针模块444存储待写入FIFO 130的数据以及用于读取/写入模块124的写入指针。响应于指定为“WRT”的信号的断言,读取指针模块将写入指针调整为指向FIFO 130的下一位置,并将写入指针连同待写入到所述位置的数据一起提供到FIFO130。作为响应,FIFO130写入由写入指针指示的数据位置。
控制模块440被配置来生成RD信号和WRT信号以从FIFO 130读取数据和向FIFO130写入数据以维持最小设置时间,如上文参考图2和图3所述。特别地,关于从FIFO 130进行读取,控制模块440标识时钟信号CCLK的边沿,如本文进一步描述,并且响应于L3CLK信号的上升沿以及作为响应确定自读取/写入模块122写入数据到FIFO 130的待读取的下一条目起已消逝CCLK的至少一个时钟周期的最小设置时间两者而断言RD信号。如果响应于L3CLK信号的上升沿,控制模块440确定自读取/写入模块122写入数据到FIFO 130的待读取的下一条目起尚未消逝至少一个时钟信号的最小设置时间,则控制模块440通过将RD信号维持在否定状态来禁止从FIFO 130进行读取。
为监测CCLK信号的边沿,控制模块440采用VCO_CLK相位计数器446和相位计数器调整模块448。VCO_CLK相位计数器446是从预定义值向下计数到零然后将其自身重置为预定义值的计数器。为从预定义值开始向下计数,响应于L3CLK信号的每个上升沿,VCO-CLK相位计数器将其存储值减小达相位计数器调整模块448所存储的调整量。调整值反映CCLK信号的每个相位的VCO_CLK信号的相位数量。控制模块440基于CCLK时钟信号的频率来设定调整量。特别地,响应于CCLK时钟信号的频率的变化,时钟发生器106(图1)通过F_CHNG信号提供对变化的指示。作为响应,控制模块440调整相位计数器调整模块448处的调整值,以反映新频率下CCLK信号的每个相位的VCO_CLK信号的新相位数量。
当VCO_CLK相位计数器446达到零时,它向控制模块440断言信号。因为信号的断言是基于VCO_CLK信号相位与CCLK时钟信号的关系的,所以信号的断言向控制模块440指示CCLK时钟信号的边沿相对于L3CLK信号的相对位置。因此,基于VCO_CLK相位计数器446对信号的断言,控制模块440确定在读取/写入模块122已写入数据到FIFO 130的条目之后是否已达到最小设置时间。此外,因为相位计数器调整模块448基于CCLK信号的频率的变化而更新,所以控制模块440响应于此类频率变化而维持最小设置时间。在一些实施方案中,读取/写入模块124使用类似于计数器446和调整模块448的计数器和调整值来跟踪CCLK信号的相位,但具有反映CCLK信号与L3CLK信号之间的相位和频率关系的调整值。这样一来允许控制模块440针对FIFO 130的每次读取和写入而标识是否已达成对应存储器访问操作的最小设置时间,以及因此是否能够访问FIFO 130的位置。
图5示出根据一些实施方案的维持用于从处理器时钟域之间的FIFO读取数据的最小设置时间的方法500的流程图。出于描述目的,方法500是关于图1的处理器100处的示例性实现方案来描述的。在框502处,L3时钟域103的读取/写入模块124监测核心时钟域102的时钟信号CCLK的边沿。在框504处,读取/写入模块标识其是否已接收到L3CLK时钟信号的下一上升沿。如果否,则方法返回到框502。
返回到框504,响应于接收到L3CLK时钟信号的上升沿,方法流程前进到框506,并且读取/写入模块124基于CCLK信号的所监测边沿来确定是否已达到写入FIFO 130的待读取的下一条目的数据的最小设置时间。如果是,则方法流程前进到框508,并且读取/写入模块124发出读取指针以读取FIFO 130的下一个条目,并将读取的数据提供到L3高速缓存126。方法流程返回到框502。返回到框506,如果尚未达到最小设置时间,则方法流程前进到框510,并且读取/写入模块124通过不发出用于L3CLK时钟信号的当前周期的读取指针来禁止读取FIFO 130。
应注意,并非上文在一般描述中所述的所有活动或元件是必需的,特定活动或装置的一部分可能不是必需的,并且除所述的那些之外,可执行一个或多个其他活动,或者包括其他元件。再者,列出活动的次序不一定是其被执行的次序。此外,概念已参考具体实施方案进行描述。然而,本领域普通技术人员应理解,在不脱离如所附权利要求所阐述的本公开的范围的情况下,可进行各种修改和改变。因此,本说明书和附图将视为说明性而非限制性的,并且所述此类修改意图包括在本公开的范围内。
上文已参考具体实施方案描述了益处、其他优点以及问题的解决方案。然而,所述益处、优点、问题解决方案以及可能致使任何益处、优点或解决方案出现或变得更明显的任何一个或多个特征都不应视为任何或所有权利要求的关键、必需或本质特征。此外,上文所公开的特定实施方案仅仅是说明性的,因为所公开的主题可以受益于本文教示的本领域技术人员显而易见的不同但等效的方式进行修改和实践。不意图对本文所示的构造或设计细节进行限制,在所附权利要求书中所描述的除外。因此,显而易见的是,上文所公开的特定实施方案可进行变更或修改,并且所有此类变化形式视为在所公开主题的范围内。因此,本文所寻求的保护如下文权利要求书中所阐述。
Claims (20)
1.一种方法,其包括:
在处理器[100]的第一时钟域[102],基于第一时钟信号[240]的第一边沿来访问缓冲器[130]的第一条目;
在所述处理器的第二时钟域[103]:
基于用于从所述缓冲器的所述第一条目进行读取的最小设置时间来选择第二时钟信号[241]的第二边沿,所述第二时钟信号与所述第一时钟信号异步;
响应于所述选定第二边沿而访问所述缓冲器的所述第一条目;
响应于对所述第一时钟信号的第一频率变化的请求,将所述第二时钟信号的第三边沿选择为维持所述最小设置时间;以及
响应于所述选定第二边沿而访问所述缓冲器。
2.如权利要求1所述的方法,其还包括:
响应于对所述第二时钟信号的第二频率变化的请求,将所述第二时钟信号的第四边沿选择为维持所述最小设置时间;以及
响应于所述选定第二边沿而访问所述缓冲器。
3.如权利要求1所述的方法,其中:
选择所述第二边沿包括:基于在所述第二时钟域对所述缓冲器的第一先前访问之后所述第二时钟信号的第一数量个相位的期满来选择所述第二边沿;并且
选择所述第三边沿包括:基于在所述第二时钟域对所述缓冲器的第二先前访问之后所述第二时钟信号的第二数量个相位的期满来选择所述第三边沿。
4.如权利要求1所述的方法,其中所述第一时钟信号处于第一频率,而所述第二时钟信号处于不同于所述第一时钟频率的第二时钟频率。
5.如权利要求1所述的方法,其还包括:
响应于检测到所述处理器处的电压下降[108]而请求所述第一频率变化。
6.如权利要求1所述的方法,其还包括:
响应于所述处理器的功率模式的变化[107]而请求所述第一频率变化。
7.如权利要求1所述的方法,其中选择所述第二边沿包括:
基于第一调整值[448]来对第三时钟信号的第一数量个相位进行计数;以及
基于所述第一数量个相位[446]来选择所述第二边沿。
8.如权利要求7所述的方法,其中选择所述第三边沿包括:
基于第二调整值来对所述第三时钟信号的第二数量个相位进行计数,所述第二调整值不同于所述第一调整值;以及
基于所述第二调整值来选择所述第三边沿。
9.如权利要求8所述的方法,其还包括:
响应于对所述第一频率的所述请求而从所述第一调整值改变到所述第二调整值。
10.如权利要求8所述的方法,其还包括:基于所述第三时钟信号来生成所述第一时钟信号和所述第二时钟信号。
11.一种方法,其包括:
从处理器[100]的第一时钟域[102]访问先进先出(FIFO)缓冲器[130]的数据;以及
从用于从所述处理器的第二时钟域[103]访问所述FIFO缓冲器的所述数据的多个时钟周期中选择第一时钟周期,所述第一时钟周期被选择为维持写入所述数据之后的最小设置时间。
12.一种处理器[100],其包括:
先进先出缓冲器(FIFO)[130];
第一时钟域[102],所述第一时钟域[102]用于根据第一时钟信号[240]的第一边沿访问所述FIFO;
第二时钟域[103],所述第二时钟域[103]包括读取模块[124],所述读取模块[124]被配置来:
基于用于访问所述FIFO的第一条目的最小设置时间来选择第二时钟信号[241]的第二边沿,所述第二时钟信号与所述第一时钟信号异步;
响应于所述选定第二边沿而访问所述FIFO的所述第一条目;
响应于对所述第一时钟信号的第一频率变化的请求,将所述第二时钟信号的第三边沿选择为维持所述最小设置时间;并且
响应于所述选定第二边沿而访问所述FIFO。
13.如权利要求12所述的处理器,其中所述读取模块被配置来:
响应于对所述第二时钟信号的第二频率变化的请求,将所述第二时钟信号的第四边沿选择为维持所述最小设置时间;并且
响应于所述选定第二边沿而访问所述FIFO。
14.如权利要求12所述的处理器,其中:
选择所述第二边沿包括:基于在所述第二时钟域对所述FIFO的第一先前访问之后所述第二时钟信号的第一数量个相位的期满来选择所述第二边沿;并且
选择所述第三边沿包括:基于在所述第二时钟域对所述FIFO的第二先前访问之后所述第二时钟信号的第二数量个相位的期满来选择所述第三边沿。
15.如权利要求12所述的处理器,其中所述第一时钟信号处于第一频率,而所述第二时钟信号处于不同于所述第一时钟频率的第二时钟频率。
16.如权利要求12所述的处理器,其还包括:
电压下降模块[108],所述电压下降模块[108]用于响应于检测到所述处理器处的电压下降而请求所述第一频率变化。
17.如权利要求12所述的处理器,其还包括:
功率控制模块[107],所述功率控制模块[107]被配置来响应于所述处理器的功率模式的变化而请求所述第一频率变化。
18.如权利要求12所述的处理器,其中所述读取模块被配置来通过以下来选择所述第二边沿:
基于第一调整值来对第三时钟信号的第一数量个相位[446]进行计数;以及
基于所述第一数量个相位来选择所述第二边沿。
19.如权利要求18所述的处理器,其中所述读取模块被配置来通过以下来选择所述第三边沿:
基于第二调整值来对所述第三时钟信号的第二数量个相位进行计数,所述第二调整值不同于所述第一调整值;以及
基于所述第二调整值来选择所述第三边沿。
20.如权利要求19所述的处理器,其中所述读取模块被配置来:
响应于对所述第一频率的所述请求而从所述第一调整值改变到所述第二调整值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/209,521 | 2016-07-13 | ||
US15/209,521 US10168731B2 (en) | 2016-07-13 | 2016-07-13 | Managing frequency changes of clock signals across different clock domains |
PCT/US2016/051813 WO2018013155A1 (en) | 2016-07-13 | 2016-09-15 | Managing frequency changes of clock signals across different clock domains |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109478081A true CN109478081A (zh) | 2019-03-15 |
Family
ID=60941023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680087626.8A Pending CN109478081A (zh) | 2016-07-13 | 2016-09-15 | 管理跨不同时钟域的时钟信号的频率变化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10168731B2 (zh) |
EP (1) | EP3485341B1 (zh) |
JP (1) | JP6707706B2 (zh) |
KR (1) | KR102427773B1 (zh) |
CN (1) | CN109478081A (zh) |
WO (1) | WO2018013155A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI755830B (zh) * | 2020-08-28 | 2022-02-21 | 力晶積成電子製造股份有限公司 | 記憶體的讀取方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109863240A (zh) | 2016-10-31 | 2019-06-07 | 通用电气公司 | 生物反应器组件 |
WO2020086760A2 (en) | 2018-10-24 | 2020-04-30 | Magic Leap, Inc. | Asynchronous asic |
CN113785257A (zh) * | 2019-05-24 | 2021-12-10 | 英特尔公司 | 用于透明地改变互连架构的频率的设备、方法和系统 |
US11967960B2 (en) * | 2021-07-30 | 2024-04-23 | Advanced Micro Devices, Inc. | Methods and apparatus for synchronizing data transfers across clock domains using heads-up indications |
CN114461012B (zh) * | 2022-01-19 | 2024-05-10 | 许昌许继软件技术有限公司 | 一种嵌入式系统不同时钟域运行时戳获取方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319745A1 (en) * | 2004-06-04 | 2009-12-24 | Laberge Paul A | System and method for an asynchronous data buffer having buffer write and read pointers |
CN102647374A (zh) * | 2011-02-18 | 2012-08-22 | 瑞昱半导体股份有限公司 | 跨时钟域的干扰消除装置及方法 |
CN103003807A (zh) * | 2010-07-28 | 2013-03-27 | 格诺多有限公司 | 第一时钟域和第二时钟域之间的同步数据传输 |
CN103650406A (zh) * | 2011-05-23 | 2014-03-19 | 英特尔移动通信有限公司 | 用于同步第一时钟域与第二时钟域之间的数据切换的设备 |
CN103812590A (zh) * | 2012-11-12 | 2014-05-21 | 辉达公司 | 用于确定用于安全采样时钟域的信号的时间的系统和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3417476B2 (ja) * | 2000-09-06 | 2003-06-16 | 日本電気株式会社 | 多入力データ同期回路 |
US7194500B2 (en) * | 2003-07-11 | 2007-03-20 | Sony Corporation | Scalable gray code counter |
US7315600B2 (en) * | 2004-03-30 | 2008-01-01 | Arm Limited | Asynchronous FIFO apparatus and method for passing data between a first clock domain and a second clock domain and a second clock domain of a data processing apparatus |
US7574635B1 (en) * | 2004-12-23 | 2009-08-11 | Xilinx, Inc. | Circuit for and method of testing a memory device |
US7234017B2 (en) * | 2005-02-24 | 2007-06-19 | International Business Machines Corporation | Computer system architecture for a processor connected to a high speed bus transceiver |
US8260982B2 (en) | 2005-06-07 | 2012-09-04 | Lsi Corporation | Method for reducing latency |
WO2008129364A1 (en) | 2007-04-23 | 2008-10-30 | Nokia Corporation | Transferring data between asynchronous clock domains |
US7934113B2 (en) * | 2007-05-21 | 2011-04-26 | Texas Instruments Incorporated | Self-clearing asynchronous interrupt edge detect latching register |
US8433875B2 (en) | 2010-02-24 | 2013-04-30 | Esilicon Corporation | Asynchronous scheme for clock domain crossing |
WO2013100976A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Data transfer between asynchronous clock domains |
US9116204B2 (en) * | 2012-03-30 | 2015-08-25 | Intel Corporation | On-die all-digital delay measurement circuit |
US9367286B2 (en) * | 2013-08-28 | 2016-06-14 | Imagination Technologies Limited | Crossing pipelined data between circuitry in different clock domains |
US9449127B1 (en) * | 2015-04-01 | 2016-09-20 | Freescale Semiconductor, Inc. | System for verifying timing constraints of IC design |
-
2016
- 2016-07-13 US US15/209,521 patent/US10168731B2/en active Active
- 2016-09-15 JP JP2019501659A patent/JP6707706B2/ja active Active
- 2016-09-15 WO PCT/US2016/051813 patent/WO2018013155A1/en unknown
- 2016-09-15 KR KR1020197003897A patent/KR102427773B1/ko active IP Right Grant
- 2016-09-15 CN CN201680087626.8A patent/CN109478081A/zh active Pending
- 2016-09-15 EP EP16909046.1A patent/EP3485341B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319745A1 (en) * | 2004-06-04 | 2009-12-24 | Laberge Paul A | System and method for an asynchronous data buffer having buffer write and read pointers |
CN103003807A (zh) * | 2010-07-28 | 2013-03-27 | 格诺多有限公司 | 第一时钟域和第二时钟域之间的同步数据传输 |
CN102647374A (zh) * | 2011-02-18 | 2012-08-22 | 瑞昱半导体股份有限公司 | 跨时钟域的干扰消除装置及方法 |
CN103650406A (zh) * | 2011-05-23 | 2014-03-19 | 英特尔移动通信有限公司 | 用于同步第一时钟域与第二时钟域之间的数据切换的设备 |
CN103812590A (zh) * | 2012-11-12 | 2014-05-21 | 辉达公司 | 用于确定用于安全采样时钟域的信号的时间的系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI755830B (zh) * | 2020-08-28 | 2022-02-21 | 力晶積成電子製造股份有限公司 | 記憶體的讀取方法 |
Also Published As
Publication number | Publication date |
---|---|
US10168731B2 (en) | 2019-01-01 |
KR20190018742A (ko) | 2019-02-25 |
WO2018013155A1 (en) | 2018-01-18 |
EP3485341B1 (en) | 2022-09-07 |
JP2019522858A (ja) | 2019-08-15 |
JP6707706B2 (ja) | 2020-06-10 |
KR102427773B1 (ko) | 2022-08-01 |
EP3485341A1 (en) | 2019-05-22 |
EP3485341A4 (en) | 2020-03-18 |
US20180017988A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478081A (zh) | 管理跨不同时钟域的时钟信号的频率变化 | |
CN111316234B (zh) | 极低功率微控制器系统 | |
CN102257569B (zh) | 时钟转发的低功率信号传输系统 | |
EP1421463B1 (en) | Phase locked loops fast power up methods and apparatus | |
CN109314507A (zh) | 自适应时钟分布系统中的供应电压跟踪时钟产生器 | |
US8195849B2 (en) | Device and method for transferring data between devices | |
CN102571319B (zh) | 用于在频率改变期间的高效延迟锁定环训练协议的机制 | |
TW200539182A (en) | Synchronization devices having input/output delay model tuning elements | |
TW201250452A (en) | Apparatus, method, and system for improved power delivery performance with a dynamic voltage pulse scheme | |
US9672882B1 (en) | Conditional reference voltage calibration of a memory system in data transmisson | |
US11683149B2 (en) | Precise time management using local time base | |
US9666264B1 (en) | Apparatus and method for memory calibration averaging | |
US8023343B2 (en) | Systems and methods for issuing address and data signals to a memory array | |
JP2021506027A (ja) | ポインタオフセットを用いた非同期バッファ | |
WO2012064537A2 (en) | Using a stuttered clock signal to reduce self-induced voltage noise | |
US20150277481A1 (en) | Semiconductor device | |
US9928890B2 (en) | System and method for calibrating memory using credit-based segmentation control | |
US9104364B2 (en) | Generation and distribution of steered time interval pulse to a plurality of hardware components of the computing system | |
US7047433B2 (en) | Method and circuit for synchronizing a higher frequency clock and a lower frequency clock | |
KR100834399B1 (ko) | 반도체 메모리 장치 및 그의 구동방법 | |
CN100573487C (zh) | 可控制多重数据存取的系统及相关方法 | |
CN113922905A (zh) | 一种交叉连接设备及其时钟保持方法、系统 | |
CN107209479A (zh) | 用于控制表的操作的电子电路 | |
JPH0619574A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190315 |
|
RJ01 | Rejection of invention patent application after publication |