外围总线上的数据同步的制作方法

文档序号:6429127阅读:174来源:国知局
专利名称:外围总线上的数据同步的制作方法
技术领域
本发明涉及将异步数据同步化的技术领域,尤其涉及将来自异步外设的读数据与总线时钟相同步。
背景技术
触发器通常用作数字逻辑系统中的存储元件。触发器在时钟的上升沿和下降沿对它们的输入进行采样,并且保持经采样的输入作为它们的输出直到下一时钟沿的到来。由于在数字逻辑系统中使用触发器,亚稳定性是一个重要的设计考虑,数字逻辑系统的大多数设计者必须应对这种亚稳定性。当触发器进入亚稳定状态时,其输出是未知的,可介于逻辑高和逻辑低之间,或者可能是振荡的。如果在下一时钟沿之前,输出不转变成稳定值,那么亚稳定状态就会传递给连接到该触发器的输出的其它逻辑器件。此外,即使在下一时钟沿之前转变成稳定值,该值也可能是不正确的,使得无效数据被传递到连接到该触发器的输出的其它逻辑器件。当触发器的输入在触发器的设定时间和/或保持时间期间改变时,亚稳定性就会发生。
在大多数数字逻辑系统中,触发器的输入在设定时间和保持时间期间不改变,因为这些系统被设计成完全同步的系统,满足或超出了其组件的规范。在完全同步的设计中,触发器的输入与时钟之间有固定的关系,即它们是同步于时钟的。然而,还存在一些系统,在其中使用单个主时钟的完全同步设计是不可能的,或者使用异步设计会带来某些优势。在这些系统中,需要内部互联子系统,它们与它们的时钟之间没有限定的关系,即不同的时钟域。这通常导致需要从一个时钟域提供数据作为另一时钟域的触发器的异步输入。为了使这些系统工作正常,需要将进入的异步输入同步到触发器的时钟域。虽然是关于触发器进行的描述,但是亚稳定状态机器相关的问题同样适用于数字逻辑系统的其它存储元件,如锁存器或锁存器的组合。
对于从异步外设传送数据到计算机系统的总线主控器来说,通常需要这种同步化。图1例示了具有异步外设106的计算机系统的框图。大多数现代的总线系统提供了某些类型的总线接口逻辑100,它控制外设106和总线主控器104之间的使用总线102进行的数据传送。总线接口逻辑100工作于一个时钟域,该时钟域可与总线主控器104的时钟域相同步。然而,外设106工作在其自己的时钟域,该时钟域与总线接口逻辑100的时钟域不相同。外设106的时钟域的频率一般低于总线接口逻辑100的时钟域频率。当从异步外设106读取数据时,数据被置于总线102之上。然后,在总线接口逻辑102或总线主控器104中,使用设置成寄存器的触发器对总线上的数据进行采样。
若读数据不与总线时钟同步,那么异步外设就可能在总线接口逻辑100所使用的触发器的设定时间和/或保持时间期间将数据放置在总线上,使得一个或多个触发器进入亚稳定状态。因此,在大多数系统中,外设106使用外设106上的同步逻辑108将数据放置在总线102上的动作与总线接口逻辑100的时钟域相同步。外设106接收总线时钟,同步逻辑108将读数据放置在总线102上的动作与总线时钟相同步。
图2例示了属于将读数据输出到总线102上的外设106上的典型逻辑,它包括同步逻辑108。为了使外设将数据与总线时钟同步,并在总线上提供稳定值,同步逻辑108一般要求一读缓冲器202将外设内部的内部数据改变/更新与驱动到总线上的读数据相隔离。发出一个更新使能(update_enable)信号以将准备置于总线上的数据读入内部寄存器206中。一般地,更新使能信号足够长以同步于总线时钟。然而,某些应用可能使用短的更新使能信号,并使用逻辑来扩展该更新使能信号使其与总线时钟正确同步。然后,逻辑204将更新使能信号与总线时钟相同步,使得数据传送到读缓冲器202,并因而以同步于总线时钟的方式而置于总线之上。
然而,在各外设上进行的同步化是有缺点的,因为在各外设上都需要同步逻辑。此外,当由各外设执行同步时,同步化的行为是分散的,并且各外设没有必要执行相同方式的同步化。因此,希望能够从异步外设向总线主控器提供稳定而有效的数据,而不要求各外设将其输出与总线时钟相同步。更一般地,希望在不同时钟域的器件之间提供数据传送的集中式同步化。

发明内容
本发明的一方面提供了一种电路,用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化。该电路包括数据寄存器,用于在第一总线时钟周期期间对由第一器件放置在数据总线上的数据进行采样;比较器,用于将第二连续总线时钟周期期间数据总线上的数据与由数据寄存器采样的数据进行比较。所述电路还包括多路复用器,用于在所述采样的数据与所述第二总线时钟周期期间总线上的数据相同时,在第三连续总线时钟周期期间,输出采样数据给第二器件,而当所述采样数据与所述第二总线时钟周期期间数据总线上的数据不相同时,将所述第三总线时钟周期期间数据总线上的数据输出到第二器件。
本发明的另一方面提供了一种方法,用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化。在第一总线时钟周期期间,对第一器件置于总线上的数据进行采样。将第二连续总线时钟周期期间的数据总线上的数据与所述采样的数据进行比较。当所述采样数据与所述第二总线时钟周期期间数据总线上的数据相同时,在第三连续总线时钟周期期间,将所述采样数据输出给第二器件。当所述采样数据与所述第二总线时钟周期期间数据总线上的数据不相同时,将所述第三总线时钟周期期间数据总线上的数据输出给第二器件。
本发明的又一方面提供一种具有异步外设和总线接口逻辑的计算机,异步外设通过将读数据置于外围总线上而将读数据传送到总线主控器,总线接口逻辑将读数据同步化。所述总线接口逻辑包括数据寄存器,对第一时钟周期期间外围总线上的读数据进行采样;比较器,将第二连续总线时钟周期期间外围总线上的读数据与所述采样的读数据进行比较;以及多路复用器,当所述采样的读数据与所述第二总线时钟周期期间数据总线上的读数据相同时,在第三连续总线时钟周期期间,输出采样的读数据,当所述采样的读数据与所述第二总线时钟周期期间数据总线上的读数据不相同时,输出所述第三总线时钟周期期间数据总线上的读数据。


图1例示了具有异步外设的计算机系统的框图;图2例示了用于将读数据输出到外围总线的外设上的现有技术同步逻辑;图3例示了本发明的具有异步外设的计算机系统的框图;图4例示了本发明的由同步逻辑所执行的方法;图5a例示了执行图4的方法的同步逻辑的一个实施例;
图5b例示了解除声明nPWAIT达一个总线时钟周期的时序图;图5c例示了由异步外设解除nPWAIT达不止一个时钟周期以扩展读访问的持续时间的时序图。
具体实施例方式
虽然本发明将以计算机系统中的外设和总线主控器之间的同步化的较佳实施例进行描述,但是本发明并不限于此。可以想像,本发明可适用于从具有第一时钟域的任何源设备传递数字数据到具有第二时钟域的目标设备。
图3例示了根据本发明的具有异步外设306的计算机系统的框图。本发明的计算机系统类似于图1的计算机系统。按照图1的计算机系统,本发明的计算机系统具有总线接口逻辑300,它控制外设306和总线主控器304之间使用总线302进行的数据传送。总线接口逻辑300工作于一个时钟域,该时钟域通常同步于总线主控器304的时钟域。然而,外设306工作于其自己的时钟域,该时钟域不同于总线接口逻辑300的时钟域。外设306的时钟频率一般(虽然不总是)低于总线接口逻辑300的时钟频率。然而,异步外设306改变读数据的速率不比总线接口逻辑300的时钟频率快。当从外设306读取数据时,数据被置于总线302之上,并且总线接口逻辑300使用配置成寄存器的触发器来采样数据。然而,不是在各外设中具有同步逻辑,逻辑308而是内置于总线接口逻辑300中,以确保来自总线302的读数据在其被传递给总线主控器304之前是有效且稳定的。
因此,对于对外设306进行的读取,外设306以异步于总线时钟的方式将读数据置于总线302之上。随后,逻辑308通过实施图4所例示的方法以确保将有效的数据传递给总线主控器304。如所示,逻辑308首先判断外设306是异步的(步骤400)。随后,逻辑308两次或多次对外设306置于总线上的数据进行采样(步骤402)。逻辑308比较连续的数据采样的值(步骤404)。如果数据采样是相同的,则将采样的数据作为有效数据返回给总线主控器304(步骤406)。如果数据采样是不相同的,则将下一周期中的数据作为有效数据返回给总线主控器304(步骤408)。
图5a例示了执行图4的方法的同步逻辑308的一个实施例。在该实施例中,数据是一组相关的位,表示单个信息块,如数据字。这些位保持相干以便具有有效的信息。虽然未示出,但是数据是独立位的组合的实施例也处于本发明的范围之内。在此情况下,不需要使位之间保持相干,可以独立地改变这些位。类似地,虽然具有门控时钟的寄存器例示为用于将数据置于总线之上的机构,但是还可使用具有相同功能的其它实现方式。例如,具有反馈多路复用器的寄存器、对各位具有各自时钟的独立寄存器或具有非门控时钟的寄存器都可使用。类似地,即使按照三态总线来例示总线,但是本领域的技术人员会理解到任何类型的总线都处于本发明的范围之内。
当发起读处理时(如通过总线主控器304提供的读使能信号),从外设306将一信号nPWAIT提供给总线接口逻辑300,以通知总线接口逻辑300该外设306是异步的,并且因此需要执行同步化。在许多总线系统中,对于慢速外设来说,即对于以较低频率运行或由于任何其它原因而在一个总线时钟周期内无法使其数据准备好的外设来说,还使用信号来扩展读访问的持续时间。所例示的同步逻辑308的实施例把使用nPWAIT信号来通知总线接口逻辑需要执行同步和使用该信号来扩展读访问持续时间结合在一起。
不是使用外设306中的读缓冲器,根据读访问,数据从寄存器506被直接驱动到外围总线510上。同样,根据读访问,外设306将nPWAIT信号设为低(LOW)。当外设306需要扩展读访问的持续时间时,nPWAIT信号设置为低长达外设需要扩展读访问所需的总线时钟周期数。当外设306仅仅需要通知总线接口逻辑300需要进行同步时,nPWAIT信号仅设定为低达一个总线时钟周期。在此情况下,外围总线访问最后3个总线时钟周期。
当外设306指示出需要同步时,总线接口逻辑300使用同步逻辑308执行同步。同步逻辑308包括连接到外围总线510的数据寄存器500;比较器,比较器的一个输入连接到外围总线510,另一个输入连接到数据寄存器500的输出;多路复用器504,用于在外围总线510和数据寄存器500的输出之间进行选择,作为对总线主控器304的输入DIN。该输入DIN被提供给一寄存器(未示出),总线主控器304使用该寄存器对来自外设306的数据进行采样。同步逻辑308还包括逻辑508,用于控制数据寄存器500、比较器502和多路复用器504以执行图4所例示的方法。
结合图5b讨论同步逻辑508的工作,图5b例示了解除声明nPWAIT达一个总线时钟周期的时序图。虽然示出的总线时钟PCLK具有与总线主控器的时钟MCLK相同的频率和相位关系,但这并不是必须的。这两个时钟之间有时可以有轻微的不对称,或者可以从MCLK进行分频来得到PCLK,从而PCLK具有较低的频率,这取决于系统的实现。如所示,在读访问期间,在读的第一总线时钟周期期间解除nPWAIT。当nPWAIT被解除时,在第一总线周期期间置于总线510上的数据Datal在第一总线时钟周期的结束处被读入数据寄存器500。比较器502将第二总线时钟周期期间总线510上的数据Data2与数据寄存器500中的数据Datal进行比较。在第三总线时钟周期的开始处,比较器502的结果用于控制多路复用器504或者输出来自数据寄存器500的Datal,或者输出在第三总线时钟周期期间总线510上的数据。如所示,当数据Datal等于Data2时,数据寄存器500的输出(即Datal)被多路复用器504输出作为总线主控器304的输入DIN。相反,当Datal不等于Data2时,由多路复用器504输出总线510上的数据作为总线主控器304的输入DIN。
总线接口逻辑308提供等待信号nWAIT,将总线主控器306置于等待状态直到DIN有效为止。信号nWAIT可以用任何适当的方式将总线主控器306置于等待状态,如禁用总线主控器的时钟或通过执行NOP防止总线主控器306进入下一状态。
图5c例示了由外设306解除nPWAIT达不止一个时钟周期以扩展读访问的持续时间的时序图。如所示,当nPWAIT被解除达不止一个时钟周期时,多路复用器504输出的作为DIN的数据是所述访问的最后一个周期的总线510上的数据(即在nPWAIT的上升沿之后的周期)。
虽然已按照指示同步需要和用于扩展读访问而示出了nPWAIT,但是也可能使用两个独立的信号来执行各个功能。此外,还可能消除对指示外设是异步的信号的需要。通过保持一张异步外设的列表,并对这些外设自动实施本发明,总线接口逻辑仍然能够执行同步而不需要信号来指示要求同步。
虽然以关于较佳实施例描述和示出了本发明,但是,可对其形式和细节作出各种改变、删节和添加,这都不背离本发明的要旨和范围。
权利要求
1.一种用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的电路,其特征在于,所述电路包括数据寄存器,用于在第一总线时钟周期期间对由第一器件放置在数据总线上的数据进行采样;比较器,用于将第二连续总线时钟周期期间数据总线上的数据与由数据寄存器采样的数据进行比较;多路复用器,用于在所述采样的数据与所述第二总线时钟周期期间数据总线上的数据相同时,在第三连续总线时钟周期期间输出采样数据给第二器件,而当所述采样数据与所述第二总线时钟周期期间数据总线上的数据不相同时,将所述第三总线时钟周期期间数据总线上的数据输出到第二器件。
2.如权利要求1所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的电路,其特征在于,所述第一器件是计算机系统中的异步外设,而所述第二器件是总线主控器。
3.如权利要求1所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的电路,其特征在于,所述第一器件保持在一张列表中,该列表指示出当数据传送到第二器件时需要同步化,所述电路在数据传送到第二器件时自动地执行同步化。
4.如权利要求1所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的电路,其特征在于,所述第一器件向所述电路提供一信号,指示出在数据传送给第二器件时,需要同步化。
5.如权利要求1所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的电路,其特征在于,所述第一器件提供一信号,用于指示传送数据到第二器件的时间的持续期需要被扩展。
6.如权利要求1所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的电路,其特征在于,所述第一器件向所述电路提供一信号,用于在数据传送给第二器件时指示需要同步化,以及指示需要扩展用于数据传送给第二器件的时间的持续期。
7.一种用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的方法,其特征在于,所述方法包括在第一总线时钟周期期间,对第一器件置于总线上的数据进行采样;将第二连续总线时钟周期期间数据总线上的数据与所述采样的数据进行比较;当所述采样数据与所述第二总线时钟周期期间数据总线上的数据相同时,在第三连续总线时钟周期期间,将所述采样数据输出给第二器件;当所述采样数据与所述第二总线时钟周期期间数据总线上的数据不相同时,将所述第三总线时钟周期期间数据总线上的数据输出给第二器件。
8.如权利要求7所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的方法,其特征在于,所述第一器件是计算机系统中的异步外设,而所述第二器件是总线主控器。
9.如权利要求7所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的方法,其特征在于,所述第一器件保持在一张列表中,该列表指示出当数据传送到第二器件时需要同步化,所述电路在数据传送到第二器件时自动地执行同步化。
10.如权利要求7所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的方法,其特征在于,所述第一器件向所述电路提供一信号,指示出在数据传送给第二器件时,需要同步化。
11.如权利要求7所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的方法,其特征在于,所述第一器件提供一信号,用于指示传送数据到第二器件的时间的持续期需要被扩展。
12.如权利要求7所述的用于将从具有第一时钟域的第一器件到具有第二时钟域的第二器件的数据传送同步化的方法,其特征在于,所述第一器件向所述电路提供一信号,用于在数据传送给第二器件时指示需要同步化,以及指示需要扩展用于数据传送给第二器件的时间的持续期。
13.一种计算机,其特征在于,包括异步外设,异步外设通过将读数据置于外围总线上而将读数据传送到总线主控器;总线接口逻辑,总线逻辑接口将读数据同步化,所述总线接口逻辑包括数据寄存器,对第一时钟周期期间外围总线上的读数据进行采样;比较器,将第二连续总线时钟周期期间外围总线上的读数据与所述采样的读数据进行比较;以及多路复用器,当所述采样的读数据与所述第二总线时钟周期期间数据总线上的读数据相同时,在第三连续总线时钟周期期间,输出采样的读数据,当所述采样的读数据与所述第二总线时钟周期期间数据总线上的读数据不相同时,输出所述第三总线时钟周期期间数据总线上的读数据。
14.如权利要求13所述的计算机,其特征在于,所述外设保持在一张列表中,该列表指示出读访问需要同步化,所述总线接口逻辑在读访问被执行时自动地执行同步化。
15.如权利要求13所述的计算机,其特征在于,所述外设向所述总线逻辑提供一信号,指示出在读访问被执行时,需要同步化。
16.如权利要求13所述的计算机,其特征在于,所述外设提供一信号,用于指示传送数据到第二器件的时间的持续期需要被扩展。
17.如权利要求13所述的计算机,其特征在于,所述外设向所述总线控制逻辑提供一信号,用于在数据传送给第二器件时指示需要同步化,以及指示需要扩展用于数据传送给第二器件的时间的持续期。
全文摘要
描述了一种系统和方法,用于将不同时钟域中的器件之间的数据传送同步化。在较佳实施例中,同步逻辑将来自异步外设的读数据与总线时钟同步。同步逻辑不是位于各个外设上,而是位于总线接口逻辑中。当存在指示需要外设同步时,同步逻辑就对数据总线进行两次或多次采样,比较连续的数据采样的值。如果数据采样是相同的,则该数据返回给总线主控器。如果是不同的,则下一周期中的数据被返回给总线主控器。
文档编号G06F13/40GK1568448SQ02820201
公开日2005年1月19日 申请日期2002年10月9日 优先权日2001年10月16日
发明者F·布托德 申请人:模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1