公开/公告号CN101120299A
专利类型发明专利
公开/公告日2008-02-06
原文格式PDF
申请/专利权人 汤姆森许可贸易公司;
申请/专利号CN200480008059.X
发明设计人 罗伯特·艾伦·卡斯尔巴里;
申请日2004-02-10
分类号G06F3/00(20060101);G06F3/06(20060101);G06F12/00(20060101);G06F13/00(20060101);
代理机构11021 中科专利商标代理有限责任公司;
代理人戎志敏
地址 法国布洛里
入库时间 2023-12-17 19:41:21
法律状态公告日
法律状态信息
法律状态
2016-03-23
未缴年费专利权终止 IPC(主分类):G06F3/00 授权公告日:20120404 终止日期:20150210 申请日:20040210
专利权的终止
2012-07-11
专利权的转移 IPC(主分类):G06F3/00 变更前: 变更后: 登记生效日:20120615 申请日:20040210
专利申请权、专利权的转移
2012-04-04
授权
授权
2008-04-02
实质审查的生效
实质审查的生效
2008-02-06
公开
公开
相关申请的交叉引用
根据35U.S.C.119(e),本申请要求于2003年3月28日提交的美国临时专利申请序列号60/458,649的优先权,该申请的教导被结合于此。
技术领域
本发明涉及在读、写时钟异步时用于减小向存储器读取数据以及随后从存储器写入数据时的抖动的技术。
背景技术
当今的数字存储器,例如先进先出设备(FIFO),响应于系统时钟所生成的周期性时钟信号来操作。对于FIFO设备,在接收到连续的写时钟脉冲时,向连续位置写入数据。基于同样的理由,在接收到连续的读时钟脉冲时,从先前写入了数据的每个连续位置中读取数据。读和写时钟之间动态的相位及频率差造成了抖动。增加读时钟频率将减少抖动的发生。然而,在诸如FIFO之类的设备中,增加读时钟频率而不相应地增加写时钟频率可能导致对设备读取太迅速。增加写时钟频率将克服这种困难。然而,并不总是能够增加写时钟频率。
这样,需要一种用来访问存储器设备中写入的数据的技术来克服上述缺点。
发明内容
简而言之,根据优选实施例,提供了一种用于以减小的抖动从存储器中读取数据的方法。该方法着手应用以xfn的频率提供的连续读时钟脉冲,其中x是整数,并且fn是写时钟频率。向存储器设备提供连续的读地址(每一个具有给定的持续时间),以标识出连续的相应位置,从这些位置读取数据。响应于读取数据的速度,改变这些连续地址中的至少一个的持续时间,以跳过或重复局部样本(fractionalsample),以便使得在读取存储器时能够减小抖动,同时确保不会以太高的速度读出数据。
附图说明
图1示出了根据本发明优选实施例的存储器电路的示意框图,该电路实现了以减小的抖动读取数据;
图2示出了具有同步读、写时钟脉冲的FIFO存储器的一组时序图,这不会导致跳过数据样本;
图3示出了具有异步读、写时钟脉冲的FIFO存储器的一组时序图,这需要跳过数据样本;
图4示出了具有异步读、写时钟脉冲的FIFO存储器的一组时序图,这需要重复数据样本;
图5示出了图1所示的FIFO存储器的一组时序图,其中读时钟频率是写时钟频率的倍数,并且在必要时根据本发明来跳过或重复局部样本,以避免太过迅速地读取FIFO。
具体实施方式
图1示出了由先进先出类型存储器12构成的存储器电路10,其操作来同时读取和写入数据。FIFO 12具有“写数据”输入14,用于接收(写入)数据以进行存储,以及“写地址”总线16,用于接收写地址。“写地址”总线16上接收到的每个写地址指定FIFO 12中相应的存储位置,以便接收“写数据”输入14上出现的数据。当在“写时钟”输入18处接收到周期性时钟脉冲同时FIFO在“写使能”输入19上接收到预定逻辑状态的“写使能”信号时,FIFO 12就向相应存储位置中写入数据。实际上,写时钟脉冲的频率为fn。
FIFO 12具有“读数据”输出22,FIFO在该输出上输出从“读地址”总线24上出现了其地址的存储位置中读取出的数据。当在“读时钟”输入24处接收到读时钟脉冲同时FIFO在“写使能”输入28处接收到预定逻辑状态的“读使能”信号时,FIFO 12就从相应的存储位置进行读取。系统时钟25向FIFO 12提供“读时钟”脉冲,而多位计数器30生成读地址。
根据本发明的一个方面,多位计数器30根据由FIFO调整逻辑模块32所确定的FIFO的文件使用状态,来改变提供给FIFO 12的连续的“读地址”中至少一个的持续时间。模块32响应于来自FIFO的文件使用信号,确定FIFO存储器12的使用。作为响应,模块32提供时钟使能信号,以控制多位计数器30,多位计数器30接着又确定对FIFO12的读取相对于正在进行的写入快多少或慢多少,以减小抖动。
增加FIFO的“读时钟”频率将减小抖动的发生,即,减小连续读取之间的样本值的不确定性。然而,增大“读时钟”可能导致读取FIFO太快。换言之,超过了写时钟频率的读时钟频率可以导致FIFO用完数据,这会导致无效的输出数据。相反,超过读时钟频率的写时钟频率通常会导致FIFO太过迅速地被填满。在过去,对于读、写时钟频率之间的差别的管理需要重复或跳过从FIFO读取的全部样本,这在输出数据中加入了整个样本的抖动。
为了更好地理解现有的抖动管理技术的缺点,参考图2,其示出了具有同步的读、写时钟脉冲的FIFO存储器的一组时序。从图2的线(a)中看到,“写时钟”脉冲周期是1/fn。假设输入数据流(在线(b)中示出)在图2的线(a)中的第四个写时钟脉冲时经历了状态改变。在FIFO的“写使能”输入保持在预定的逻辑电平时,FIFO在接收到连续的“写地址”时将向连续的存储位置中写入输入流中的样本。当接收到预定逻辑电平的“读使能”信号时,FIFO将读取在FIFO读地址输入处出现其地址的存储位置处所存储的样本。图2的线(e)示出了从FIFO中与图2的线(f)上出现的“读地址”相对应的每个存储位置读取的数据。只要读和写时钟信号保持同步,就不必进行重复或跳过。
如前所述,超过读时钟频率的写时钟频率能够导致FIFO 12太过迅速地填满。避免这一困难的一种方法需要在读取FIFO期间丢弃或跳过样本,如图3所示。图3的线(a)示出了从FIFO读取的数据流,而图3的线(b)示出了提供给FIFO的连续的读地址。如果“写时钟”频率超过读时钟频率,则需要通过丢弃或跳过本来应该读取的样本来“弥补”。作为示例,跳过了图3的线(b)中的存储位置n+3处的样本值。跳过一个样本使抖动增加了一整个时钟周期。相反,读时钟频率超过写时钟频率能够导致FIFO太过迅速地读取数据。为了避免这一困难,通常需要FIFO重复读取至少一个样本。图4的线(a)示出了从FIFO读取的数据流,而图4的线(b)示出了提供给FIFO的连续的读地址,其中重复了至少一个地址(n+1),以减慢对样本的读取。重复一个样本使抖动增加了一整个时钟周期。
如上所述,FIFO调整逻辑模块32改变向多位计数器30发送时钟使能信号的定时,使多位计数器改变“读地址”的持续时间,以在必要情况下跳过或重复局部样本(fractional sample)。从图1中的表看到,如果FIFO存储器12的使用是可接受的(即,对FIFO的读取和写入速度保持大致相同),则FIFO调整逻辑模块32在向多位计数器30发送时钟使能信号期间每4个时钟周期就执行“!Fifo调整序列”。在该序列期间不会出现样本的跳过或重复。如果FIFO调整逻辑模块32检测到FIFO存储器12变空或接近于空,则该模块开始“FIFO调整序列&重复”,以在来自系统时钟发生器25的第一个时钟之后向多位计数器提供时钟使能信号。这导致样本局部的重复。相反,如果FIFO调整逻辑模块32检测到FIFO存储器填满或接近填满,则该模块开始“FIFO调整序列&丢弃”,在此期间,其在第三个时钟周期之后向多位计数器30发送时钟使能,这导致样本局部的跳过。
参考图5,可以最好地理解根据上述技术来减小抖动的方式。图5的线(a)示出了以“写时钟”频率的x倍生成的连续“读时钟”脉冲。换言之,“读时钟”频率等于xfn。在所图示的实施例中,x等于4,但是x也可以是其他整数值。当FIFO 12从系统时钟25接收到频率为xfn的“读时钟”脉冲时,多位计数器30以低得多的速度向FIFO12提供读地址(通常以fn量级的频率)。在这种条件下,FIFO将相同的样本输出n次。
为了弥补数据读取和写入之间的同步失去,多位计数器30根据FIFO 12的使用状态改变一个或多个地址的长度,以跳过或重复样本的一部分,从而防止溢出或下溢,并且由此将FIFO容量保持在预定的阈值范围。如线(c)所示,跳过了至少一个读地址(例如,读地址(n+2))的持续时间(长度),以跳过样本一部分(例如,1/4个样本),如图5的线(b)所示,以便在从FIFO 12读取数据落后于写入数据时进行补偿。参考图5的线(e),至少一个读地址(例如,读地址(n+2))的持续时间被延长,以重复样本的一部分(例如,1/4个样本),如图5的线(d)所示,以便在从FIFO 12写入数据落后于读取数据时进行补偿。通过以上述方式增大“读时钟”频率,由重复或跳过样本所导致的抖动变为1/x个时钟周期,而不是在图3和4中图示的现有技术的方法中的整个时钟脉冲。因为该技术只跳过或重复局部样本,所以这种跳过或重复可能需要发生得更为频繁,因为在每个周期中只发生较少的校正。
前面描述了一种用于在向诸如FIFO之类的存储器设备写入数据以及随后从其中读取数据时减小抖动的技术。
机译: 一种用于旋转阳极的异步操作的方法,其具有减小的焦点抖动和相关的x射线源布置
机译: 异步抖动减少技术
机译: 异步抖动减少技术