专利名称:减少在两个相互异步总线之间数据的同步传送中的累积时间延迟的制作方法
背景技术:
发明的领域本发明总的来说涉及计算机系统,更具体来说涉及数字子系统,其控制数据从一个同步数据总线到另一个同步数据总线的传送,其中两个数据总线是相互异步的。
有关技术的说明多数现代计算机有许多以不同数据速率工作的不同的数据总线。在有些系统中可能不同的数据速率与一个公共时钟有关,因而不同的数据总线相互同步工作。然而,在许多系统中,不同的数据总线相互异步工作。这就是说,总线由不同的时钟控制,其中不同的时钟之频率和相位不存在固定的关系。因此,在源总线上的数据可能相对于数据被传送到达的目标总线上的控制信号以随机变化。由于必须满足数字设备如寄存器或其他存储设备的最小建立和保持时间,数据在两个总线之间的传送必须同步。这通过同步电路来实现。例如,源总线可以产生一个数据选通信号来说明在源总线上的数据准备好被传送。数据选通信号通常不能用于直接控制目标总线。相反,通过将数据选通信号用控制目标总线的时钟信号定时,数据选通信号首先被寄存到一个与目标总线有关的控制电路内。被寄存的数据选通信号然后被用于控制目标总线上的数据存储设备(例如寄存器或锁存器)。通过将数据选通信号(或其它控制信号)与目标总线同步,可以确保源总线的数据相对于目标总线是稳定的,并且因而可以被传送。
虽然数据选通信号的同步确保在两个相互异步的总线之间的数据传送不会发生数据丢失,但需要与同步有关的额外时间。具体地说,达到同步可能要花费目标总线的两个时钟周期那么多的时间。对于不定期的数据传送,同步的额外消耗时间可以很容易忍受;然而,当大量数据用多路传送(例如脉冲串传送)被传送时,累积的额外消耗时间可能会大大地降低计算机系统的总性能。因此,提出了减小两个相互异步的总线之间成组数据传送时间同步额外消耗时间的要求。
发明概述本发明的一个方面是相互异步工作的第一总线和第二总线之间的一个接口电路。第一总线以与第一总线时钟同步的方式将数据提供给接口电路,第二总线以与第二总线时钟同步的方式接收来自接口电路的数据。该装置包括一输入/输出缓冲器,其包括至少第一和第二缓冲单元,来自第一总线的数据以与第一总线时钟同步的方式存储到第一和第二缓冲单元。至少第一和第二数据有效指示器分别与第一和第二缓冲单元有关。当数据被存储在第一缓冲单元时,第一数据有效指示器与第一总线时钟同步地被置位。当数据被存储在第二缓冲单元时,第二数据有效指示器与第一总线时钟同步地被置位。一个数据有效指示器选择器选择第一和第二数据有效指示器中的一个作为输出数据有效指示器。一个总线状态机器与第二总线时钟同步工作,把输入/输出缓冲器来的数据传送到第二总线。总线状态机器选择第一和第二缓冲单元中的一个作为被传送到第二总线的数据的源。总线状态机器控制数据有效指示器选择器,以选择第一和第二数据有效指示器中相应的一个作为输出数据有效指示器。总线状态机器监测输出数据有效指示器,以确定来自第一总线的数据何时已被存储到所选择的第一或第二缓冲单元。第一同步电路接收第一数据有效指示器并把它与第二总线时钟同步,以提供第一被同步的数据有效指示器作为至数据有效指示器选择器的一个输入端。第二同步电路接收第二数据有效指示器并把它与第二总线时钟同步,以提供第二被同步的数据有效指示器作为至数据有效指示器选择器的一个输入端。
本发明的另一个方面是在相互异步工作的第一和第二总线之间传送数据的装置。该装置包括一个数据存储设备,其包括存储数据的许多存储单元。第一总线接口状态机器被连接到第一数据总线。第一总线接口状态机器将数据从第一数据总线传送到多个数据存储单元中所选择的一个单元。第二总线接口状态机器被连接到第二数据总线。第二总线接口状态机器将数据从多个数据存储单元中所选择的一个单元传送到第二数据总线。还包括一个数据存在缓冲器,其对多个存储单元中的每个单元有一相应的指示。指示器中的一个在响应将数据传送到多个数据存储单元中所选择的一个单元的第一总线状态机器时被置位,并在响应将数据从多个数据存储单元中所选择的一个单元传送到第二数据总线的第二总线状态机器时被清除。第二总线接口状态机器仅当所选择的指示器被置位时才传送来自多个数据存储单元中所选择的一个单元的数据。一组相应的延迟电路被连接在数据存在缓冲器和第二总线接口状态机器之间,以延迟该指示器因而第二总线接口状态机器在第一总线接口机器已把数据传送到所选择的数据存储单元之后至少经过一预定时间之后才能传送来自许多数据存储单元中的一个单元的数据。
本发明的另一个方面是在第一数据总线和第二数据总线之间传送数据的装置。第一和第二数据总线相互异步地工作。该装置包括一个缓冲器,其包括存储数据的第一和第二数据存储单元。第一总线接口状态机器被连接到第一数据总线和缓冲器,以便按照第一总线时钟信号控制从第一数据总线传送到第一和第二数据存储单元中所选择的一个单元的数据的传送。第二总线接口状态机器被连接到第二数据总线和缓冲器,以便按照与第一总线时钟信号异步工作的第二总线时钟信号控制从缓冲器到第二数据总线的数据的传送。第一和第二标志缓冲器具有连接到第一和第二总线接口状态机器的相应的第一和第二标志输出。第一标志缓冲器的输出当数据被从第一数据总线传送到第一数据存储单元时被相对于第一总线时钟信号同步地置位,并当数据被从第一数据存储单元传送到第二数据总线时被与第二总线时钟信号同步地清除。第二标志缓冲器输出当数据被从第一数据总线传送到第二数据存储单元时被相对于第一总线时钟信号同步地置位,并当数据被从第二数据存储单元传送到第二数据总线时被相对于第二总线时钟信号同步地清除。第一同步器被连接在第二标志缓冲器和第二总线接口状态机器之间。第二同步器被连接在第二标志缓冲器和第二总线接口状态机器之间。第一同步器把第一标志输出同步到第二总线时钟信号因而第一标志输出在其改变后能被第二总线接口状态机器接收之前被延迟至少一个预定时间。第二同步器把第二标志输出同步到第二总线时钟信号因而第二标志输出在其改变后能被第二总线接口状态机器接收之前被延迟至少一个预定时间。
附图简介本发明下面将结合所附带的附图来说明,其中包括
图1示出两个异步总线之间的示例接口;图2示出在图1接口使用的一个数据有效标志缓冲器的优选实施例;图3示出图1的两个异步总线之间的示例接口,其中接口包括本发明的改进了的同步电路;图4示出图1的总线2接口状态机器的相应部分的示例状态图;图5示出图3的总线2接口状态机器的相应部分的示例状态图。
优选实施例详述图1示出根据已知的系统在两个相互异步总线之间的一个示例接口100。如图1所示,该接口被连接到第一总线(BUS1)110。在这里所述的实施例中,第一总线110最好是PCI(外围部件互连)总线,其按照为用于基于微处理机的计算机,例如基于INTEL系列微处理机的计算机(如INTEL 80486,INTEL奔腾,INTEL P6等等)的PCI总线所建立的标准工作。第一总线110本质上是一32位数据总线,它具有传送第一总线110上的数据的许多数据线(如BUSI DATA112所示)、为第一总线110上所传送的数据提供源或目标地址的许多地址线、以及传递控制第一总线110上数据传送的控制信号的许多控制线(如CONTROL 114所示)。第一总线110也包括第一总线时钟线(BUS1CLK)116,在其上具有一个同步第一总线110上的地址、数据和控制信号的时钟信号。例如,BUS1 CLK线116上的时钟信号益于工作在33MHz。第一总线110的工作对本专业人员是熟悉的,这里不再详述。第一总线110也连接到计算机系统中的其它部件(未示出),例如举例来说一个外围控制器,它可以是一至第一总线110的数据源。
该接口也被连接到第二总线120,在这里所述的实施例中,它最好是一高速处理器总线,例如举例来说是P6总线。在优选实施例中,第二总线120是规定与INTEL P6微处理机通信的64位总线,并与第一总线110异步工作。举例来说,第二总线120可以按照连接到第二总线120的P6微处理机的时钟频率益于工作在50MHz、60MHz或一些其它频率上。这里按照第二总线120来描述,但是与第一总线110异步工作的其它处理器总线也可以被使用。第二总线120的特定特性除了第二总线120上的数据传送相对于第一总线110上的数据传送异步发生外,与本发明无关。第二总线120也包括许多数据线122、许多地址线(未示出)、许多控制线124以及BUS2 CLK线126。
由于第一总线110和第二总线120之间的异步关系,接口100还包括一数据缓冲器130,其在线114上的第一总线控制信号和BUS1 CLK线116上的时钟信号的控制下,经由数据线112接收来自第一总线110的数据。数据缓冲器130缓冲数据,并在第二总线120的控制线124上的控制信号的控制下,以与BUS2 CLK线126上的时钟信号同步的方式向第二总线120提供所缓冲的数据。
数据缓冲器130包括许多存储单元132。在图1的实施例中,仅示出四个存储单元132,记为DATABUF0、DATABUF1、DATABUF2和DATABUF3。从下面的描述可以明白,可以包括附加的存储单元,以提供两个总线之间数据的附加存储。例如,在一个特定的优选实施例中,包括8个存储单元。根据所示的4个存储单元可以不难理解本发明。存储单元132的每一个存储64个数据信号。存储单元132的输入端被共同连接到BUS1 DATA或112。存储单元132的输出端被提供作为64位宽4∶1多路转换器(MUX)134的输入端。另外,当提供附加存储单元(如8个)存储单元时,多路转换器被扩充,以适当地提供附加的输入端组(例如在这样的实施例中多路转换器134应为8∶1多路转换器)。多路转换器134由总线2接口状态机器140经由一对选择线142来控制。具体说,总线2接口状态机器保持一输出指针,其指向位于传送到第二总线120的上一个数据所在的存储单元后面的下一个较大编号的存储单元。可以理解,输出指针是模4输出指针,其计数0、1、2、3、0,因而输出指针指向跟在DATABUF3存储单元后面的DATABUF0存储单元。
在响应选择线142上输出指针值时,在如上面将要讨论的那样假设所选择的存储单元中的数据是有效的,多路转换器134从四个存储单元132中的一个内选择数据作为传递到第二总线120的输出数据的源。所选择的数据被存储在64位宽寄存器150内,该寄存器用线126上的BUS2CLK信号定时,因而数据与第二总线120同步。寄存器150还受允许线152上的允许输入信号所控制。当允许线152无效时,不管存储在寄存器150内的数据如何,寄存器150的数据输出是无效的。当允许线152有效时,寄存器150经由多个BUS2 DATA线122将所寄存的数据输出到第二总线120上。允许线152受总线2接口状态机器140控制,以使寄存器150仅当接口100被选择将数据传送到第二总线120时才允许输出。
来自第一总线110的数据在总线1接口状态机器160控制下被存储在数据缓冲器130内。总线1接口状态机器160经由控制线114和BUS1CL线116从第一总线110接收控制信号和BUS1 CLK信号。总线1接口状态机器160由控制线114传递来的数据准备好控制信号响应,以产生一个所选择的数据选通,经由8个数据选通线164中的一个加到数据存储单元132。(在优选实施例中每个数据存储单元132有两个数据选通线,以便从第一总线110中选通数据的32位进入到每个数据存储单元132的相应的高区和低区)。数据选通线164用作数据存储单元132的时钟信号,因而BUS1 DATA线112上的数据被存储在与数据选通线164中有效的一根线相应的数据存储单元132中所选择的一个单元内。总线1接口状态机器160以通常方式工作,以控制数据缓冲器130作为一个循环FIFO(先进先出)缓冲器,这就是说,总线1接口状态机器160保持一个指向输入单元132的当前一个单元的输入指针,该当前单元是数据缓冲器130中下一个可用的空存储单元。当数据被写入到所选择的存储单元132时,输入指针增加到下一个较高的数字。输入指针是一这样的模4指针(在所述的实施例中有四个存储单元),当输入指针从值3被增加时,它变为0。因此,数据缓冲器130可以被当作DATABUF0与DATA BUF3相邻的“循环”缓冲器。
总线1接口状态机器160在一组线166上输出多个标志组信号,其被提供作为标志缓冲器170的相应组输入(S)的输入,标志缓冲器170包括多个(如四个)数据有效标志缓冲单元。如下面参照图2的更详细描述那样,标志组信号与信号线116上的BUS1 CLK信号同步,而信号线上的BUS1 CLK信号被提供作为至标志缓冲器170中每个标志存储单元的相应的第一时钟输入。标志缓冲器170在相应于数据缓冲器130中每个缓冲单元(DATABUF0…DATABUF3)132的一个有效数据标志情况下存储四个有效数据标志(FLAG0,FLAG1,FLAG2和FLAG3)。一个无效的数据有效标志表示相应的缓冲单元132是空的,数据可以被存储在那个缓冲单元132内。一个有效的数据有效标志表示相应的缓冲单元具有存储在其中的有效数据,数据还不能被存储在那个缓冲单元内。一个有效的数据有效标志也表示对BUS2接口状态机器(下面讨论)来说,在相应的缓冲单元中的数据准备好被传送到第二总线120。当数据被存储在相应的数据缓冲单元内时,数据有效标志被置位。当数据被从相应的数据缓冲单元传送到第二总线120时,数据有效标志被清除。
在标志缓冲器170中的有效数据标志经由一组有效数据标志线172被提供作为至第一4∶1标志多路转换器(MUX)180的输入。第一标志多路转换器180由来自总线1接口状态机器160的一对总线1选择线控制。总线1接口状态机器160控制编码输入指针的当前值那对总线1选择线182。因此,第一标志多路转换器180选择与输入指针目前正指向的数据存储单元相应的数据有效标志,因而多路转换器180的输出是表示在当前输入单元中的数据是否已经有效的数据有效标志。也就是说,所选择的数据有效标志表示上次存储在所选择的数据缓冲单元内的数据是否已经被传送到第二总线120(数据有效标志将为“无效”)或上次存储在所选择的数据缓冲单元内的数据是否是还没有被传送到第二总线120(数据有效标志仍为“有效”)。
在标志缓冲器170中的数据有效标志可经由线174上的SYSTEMRESET重置到一已知的状态(例如,所有数据有效标志无效)。SYSTEM RESET信号是当计算机系统接通电源时,当计算机系统由用户复位时或类似情况下产生的一个通常的复位信号。
第一标志多路转换器180的输出被提供作为至总线1有效数据同步器190的数据输入,总线1有效数据同步器190包括第一总线1同步器触发器192。第一总线1同步器触发器192的数据输出被提供作为至第二总线1同步器触发器194的数据输入。两个总线1同步器触发器192、194由时钟线116上的BUS1 CLK信号定时。第二总线1同步器触发器194的数据输出经由DATA VALID数据线196被提供作为至总线1接口状态机器160的输入。因此,所选择的有效标志被提供作为反馈加至总线1接口状态机器。以表示当前被状态机器中的输入指针所选择的数据存储单元是否可用于存储新数据或新数据是否是无法被接受。应当明白,也可以使用其它类型的数据同步器。
在标志缓冲器170中的有效数据标志经由一组有效数据标志线172被提供作为至第二4∶1标志多路转换器(MUX)200的输入。第二标志多路转换器200由来自总线2接口状态机器140的一对总线2选择线202控制。总线2选择线202被控制以便与输出指针线142相应,输出指针线142选择数据缓冲器130中的数据存储单元132作为被输出至第二总线120的数据的源。因此,第二标志多路转换器200的输出表示当前所选择的数据存储单元是否具有有效数据或在那个单元中的数据是否已经被传送以及不再有效。
第二标志多路转换器200的输出被提供作为至总线2有效数据同步器210的数据输入,总线2有效数据同步器210包括一个第一总线2同步器触发器212。第一总线2同步器触发器212的数据输出被提供作为至第二总线2同步器触发器214的数据输入。两个总线2同步器触发器212、214用时钟线126上的BUS2 CLK信号定时。第二总线2同步器触发器214的输出经由DATA VALID2数据线216被提供作为至总线2接口状态机器140的输入。因此,总线2接口状态机器140被供给关于输出指针当前所指向的数据存储单元内数据有效性的反馈。
在标志缓冲器170中的数据有效缓冲单元(即FLAG0、FLAG1、FLAG2和FLAG3)由四根标志清除线220有选择地被清除,标志清除线220由总线2接口状态机器140产生。标志清除线220的每一根以与信号线126上的BUS2 CLK同步的方式被提供作为至数据有效缓冲单元中的一个单元的相应的标志清除输入(C)。当来自数据缓冲器130中相应的存储单元的数据被传送到第二总线120时,相应的标志清除线被激励。例如,当总线2接口状态机器140选择数据缓冲器130中DATABUF2存储单元内的数据作为至第二总线120的输出数据时,总线2接口状态机器140激励标志清除线220中相应的一根,提供作为至FLAG2数据有效缓冲单元的清除(C)输入。FLAG2数据有效缓冲单元以与信号线126上的BUS2 CLK同步的方式被清除。
图2示出图1中数据有效存储单元170中的一个单元的优选实施例。具体说,图2示出FLAG0数据有效存储单元170A。其它三个数据有效存储单元FLAG1、FLAG2和FLAG3最好与FLAG0数据有效存储单元相同。如图所示,数据有效存储单元170包括第一反转触发器300和第二反转触发器302。
第一反转触发器300有一个时钟输入端310,它接收信号线116上的BUS1 CLK信号。第一反转触发器300有一个反转允许(TE)输入端312,它接收第一个二输入端与门314的输出。第一与门314有一个第一(高态有效)输入端,它接收来自总线1接口状态机器160的信号线166A(图1中一组有效数据标志线166中的一根)上的SET_VALID_O信号。第一与门314有一个第二(低态有效)输入端,它接收信号线172A(图1中信号线172中的一根)上作为反馈的FLAG0数据有效标志。第一反转触发器300有一个Q输出端316,在优选实施例中BUS1 CLK信号由低至高转换时它改变状态(即从低逻辑电平变为高逻辑电平或从高逻辑电平复为低逻辑电平)。第一反转触发器300的Q输出信号仅当信号线166A上的SET_VALID_O信号为有效而同时FLAG0数据有效标志为无效时才改变。当SET_VALID_O信号为有效而FLAG0数据有效标志为无效时,与门314的输出为有效,第一反转触发器300的Q输出将从它的高状态变为它的低状态或从它的低状态变为它的高状态,对BUS1 CLK信号的每个由低至高转换时改变一次。如果SET_VALID_O信号为无效或FLAG0数据有效标志为有效,则第一反转触发器300的Q输出将不管BUS1 CLK信号的变化而保持不变。
第二反转触发器302有一个时钟输入端330,它接收信号线126上的BUS2 CLK信号。第二反转触发器302有一个反转允许(TE)输入端332,它接收第二个二输入与门334的输出。第二与门334有一个第一(高态有效)输入端,它接收来自总线2接口状态机器140的信号线220A(图1中清除有效数据标志线220中的一根)上的CLR_VALID_O信号。第二与门334有一个第二(高态有效)输入端,它接收信号线172A上作为反馈的FLAG0数据有效标志。第二反转触发器302有一个Q输出端336,它在优选实施例中BUS2 CLK信号由低至高转换时改变状态(即从低逻辑电平变为高逻辑电平或从高逻辑电平变为低逻辑电平)。第二反转触发器302的Q输出信号仅当信号线220A上的CLR_VALID_O信号为有效同时FLAG0数据有效标志为有效时才改变。当CLR_VALID_O信号为有效以及FLAG0数据有效标志为有效时,与门334的输出为有效,第二反转触发器302的Q输出将从它的高状态变为它的低状态或从它的低状态变为它的高状态,BUS2 CLK信号的每个由低至高转换时改变一次。如果CLR_VALID_O信号为无效或者FLAG0数据有效标志为无效,则第二反转触发器302的Q输出将不管BUS2 CLK信号的变化而保持不变。
第一反转触发器300有一个复位(RST)输入端340,第二反转触发器302有一个复位(RST)输入端342。RST输入端340、342接收信号线174上的SYSTEM RESET信号。当SYSTEM RESET信号为有效时,两个反转触发器300、302被复位,因而相应的Q输出被清除到它们的低态无效状态。
第一和第二反转触发器300、302的Q输出被提供作为至一个异或门350的分别的第一和第二输入。异或门350的输出提供线172A上的FLAG0数据有效标志,它因而是FLAG0数据有效存储单元的输出。线172A上的FLAG0数据有效标志也经由各自的与门314、334被如上所述提供作为到两个反转触发器300、302的反馈。异或门350根据两个输入工作,当两个Q输出端相互不同(即一个Q输出为高态有效,另一个Q输出为低态有效)时在线172A上提供一个有效FLAG0数据有效标志,以及当两个Q输出端具有相同的逻辑电平(即两个Q输出都为高态有效或两个Q输出都为低态有效)时在线172A上提供一个无效FLAG0数据有效标志。如上所述,当异或门350的输出是高态有效时表示第二反转触发器302的Q输出与第一反转触发器300的Q输出不同,仅仅第二与门334有可能被允许,因而如果CLR_VALID_O信号线220A是有效的话,那么第二反转触发器302被允许。第二反转触发器在信号线126上的BUS2 CLK线下一次由低变高转换时反转。这确保第二反转触发器302的Q输出变得与第一反转触发器300的Q输出相同,因此异或门350的输出变为无效。异或门350的输出的无效状态表示FLAG0数据有效标志被清除(即数据无效)。此外,如果SET_VALID_O信号线166A被总线1接口状态机器160激励,那么第二反转触发器302禁止反转,而第一反转触发器300允许反转。因而可以看出,FLAG0有效数据标志与BUS1 CLK信号同步置位,并与BUS2CLK信号同步清除。
关于上面所述的基于反转触发器的数据存储单元的附加信息可以例如在专利NO.5083049中找到,该专利已交给本中请的代理人并在这里引用为参考资料。本专业人员会知道,在本发明中也可以使用别的数据有效存储单元。
再参见图1,可以看出,总线1有效数据同步器190和总线2有效数据同步器210的用途是确保有效数据标志的变化以与控制两个状态机器的相应的时钟同步的方式被提供至总线1接口状态机器160和总线2接口状态机器140。具体说,如上所述,有效数据标志与BUS1 CLK信号同步地置位,并与BUS2 CLK同步地清除。因此,有效数据标志将以与BUS1 CLK信号同步的方式从它的无效状态变为它的有效状态,并以与BUS2 CLK同步的方式从它的有效状态变为它的无效状态。由于BUS1 CLK信号与BUS2 CLK信号异步,所以总线1接口状态机器160接收数据有效标志的由有效变为无效的转换与它的内部状态转换不同步。因此,有可能在总线1接口状态机器要求有效数据标志的状态稳定不变时会发生转换。总线1同步器190将有效数据标志的由高变低的转换同步到BUS1 CLK上,因而同步到总线1接口状态机器160的内部状态转换上。同样地,总线2同步器210将有效数据标志的由低变高的转换同步到BUS2 CLK上,因而同步到总线2接口状态机器140的内部状态转换上。有效数据标志的由低变高的转换与BUS2 CLK同步是十分重要的,这因为当数据正在被写入到当前所选择的输入单元时相应的有效数据标志被置位。如果当前所选择的输入单元也是当前选择为输出单元(即总线2接口状态机器140已使所有以前存储数据输出),那么总线2接口状态机器140将立即检测到有效数据标志已变为有效并将数据输出到第二总线120。然而,这可能引起总线2接口状态机器140内的亚稳定性以及竞态条件,特别是如果在数据已被存储在相应的数据存储单元和已通过多路转换器134和通过寄存器150被传输之前有效数据标志从它的无效状态转换为它的有效状态。总线2同步器确保在总线2接口状态机器140将数据输出到第二总线120之前数据是稳定的。
图1中的总线1至总线2接口100对其所希望的目的工作很好;然而,接口100包括由总线1同步器190和总线2同步器210引起的同步延迟,它减小接口100的总的数据速率,特别是当数据以成组方式传送到或传送出接口100。通过考虑当数据缓冲器130中所有四个数据缓冲单元(DATABUF0…DATABUF3)都是满的且相应的有效数据标志(FLAG0…FLAG3)被置位时总线2接口状态机器140的工作可以理解这个问题。在总线2接口状态机器140传送来自第一数据缓冲单元(例如DATABUF0)的数据之后,总线2接口状态机器140经由多路转换器134选择下一个缓冲单元(例如DATABUF1)并且也经由至第二标志多路转换器200的选择线202选择下一个有效数据标志(例如FLAG1)。虽然在第二缓冲单元(DATABUF1)中的数据对大量时钟周期来说可能是稳定的,但是总线2接口状态机器140在它能将数据输出到第二总线120前仍必须等待由总线2同步器210同步的有效数据标志。因此,插入两个多余BUS2 CLK信号周期以同步有效数据标志。
当总线1接口状态机器增加输入指针至下一个单元时,插入一个类似的不必要的延迟。虽然下一个数据存储单元在大量时钟周期时间内可能是空的,但是当总线1接口状态机器改变至第一标志多路转换器180的选择线182时,总线1接口状态机器在它能够确定有效数据标志被清除以及数据存储单元可以使用之前必须等待两个时钟周期经由总线1同步器180同步所选择的标志。
申请人已发现,多余的延迟可以通过在把有效数据标志加至总线2标志多路转换器200之前同步有效数据标志来避免。一个改进的接口400示于图3,其中同样的数字表示如上面结合图1所述的同样部件。总线2接口。状态机器140被更改并示为图3中的总线2接口状态机器404。同样地,总线1接口状态机器160被更改并示为图3中的总线1接口状态机器406。
如图3所示,在图1的第一标志多路转换器180的输出端上的单一总线1同步器190已被四个总线1同步器410、412、414和416所替代。每个总线1同步器410、412、414、416有它相应的输入端,其连接至四个数据有效标志缓冲单元170中相应的一个的输出端上,有它相应的输出端,其连接至第一标志多路转换器180的四个输入端中的一个上。对第一总线1同步器410还示出,每个同步器包括一对触发器420、422,其串联连接并且由信号线116上的BUS1 CLK信号定时。
同样地,单一的总线2同步器210已被四个总线2同步器430、432、434和436所替代。每个总线2同步器430、432、434、436有它相应的输入端,其连接至四个数据有效标志缓冲单元170中相应的一个的输出端上,有它相应的输出端,其连接至第二标志多路转换器200的四个输入端中的一个上。如对第一总线2同步器430还示出的,每个同步器包括一对触发器440、442,其串联连接并由信号线126上的BUS2 CLK信号定时。
可以看出,改进的接口400通过确保数据有效标志与总线1接口状态机器406和与总线2接口状态机器404适当同步实现了图1中的接口100的目标。例如,如果总线2接口状态机器404已将所有在数据缓冲器130中的数据输出并正在等待下一个数据被存储在存储单元132中,那么输入指针和输出指针将指向相同的存储单元132。当总线1接口状态机器置位有效数据标志(例如FLAG0)时,FLAG0标志缓冲器170A(图2)的输出在被作为有效输入加至总线2接口状态机器404之前将转换为它的有效状态并通过第一总线2同步器430被传输且变为与总线2接口状态机器404同步。因此,FLAG0标志缓冲器170A的有效输出将一定被同步到总线2时钟并因此被同步到总线2接口状态机器404。FLAG0标志缓冲器170A的有效输出将被延迟,以提供使刚存储在DATABUF0数据存储单元132中的数据能稳定下来所必需的时间。另一方面,如果总线2接口状态机器还在输出一串来自数据缓冲器130的数据,所选择的下一个缓冲单元132已存在在许多时钟周期内所存储在这里的数据,那么数据有效标志(例如FLAG1)将已经通过相应的总线2同步器(例如第二总线2同步器432)被传输并且在第二标志多路转换器200的输入端上将为有效。因此,当总线2接口状态机器改变选择线202以选择FLAG1数据有效标志缓冲器的输出时,标志的有效状态将被立即提供至总线2接口状态机器404,没有任何进一步的延迟。
为了有助于进一步理解图3改进接口的优点,图4示出图1的总线2接口状态机器140的相应部分的示例状态图500,图5示出图3的总线2接口状态机器404的相应部分的示例状态图510。每个状态机器140、404包括图4和5中未示出的不与本发明有关并且不在这里讨论的附加功能。在图4和5中,状态机器的相应内部状态以通常的方式用具有状态名称的圆圈表示。圆圈的连线表示从一个状态到另一个状态的状态转换,或从一状态返回到它自身的状态转换,后者在与图1和2的BUS2 CLK信号126同步时发生。
状态转换的先决条件用位于每个状态转换旁边的带&符号的参数来表示,&符号代表“与”要求,含义是用&连接的所有条件必须被满足才能使得该状态转换发生。条件上面的线表示该条件必须为无效。状态转换旁边的“1”表示在BUS2 CLK信号的下一个周期到来时,从一个状态到下一个状态的转换将无条件地发生。状态转换旁边的“ELSE”表示该状态转换是默认转换,如果来自一已知状态的其它转换的条件不被满足,那么默认转换就发生。如果在一特定转换出现时总线2接口状态机器140执行一相应的操作,那么每个操作在参数末尾用斜杠(/)后跟操作的名字表示。
如图4所示,状态图500包括IDLE状态520,MASK1状态522,MASK2状态524和DATA_XFR_IN_PROG(数据传送在进行中)状态526。状态图500说明多个数据从数据缓冲器132至第二总线120的传送进程。IDLE状态520是总线2接口状态机器140的“正常”状态,如由RESET状态转换530所示那样,当计算机系统被复位时进入该状态。如下面将要讨论的那样,当数据传送完成时总线2接口状态机器140返回到IDLE状态520。
总线2接口状态机器140保持在IDLE状态520,只要新的读数周期没有被总线2接口状态机器140的其它部分启动的话,总线2接口状态机器140的其它部分监视第二总线120上的控制信号和其它条件以确定何时新的读数周期已被启动。保持在IDLE状态直到新的读数周期被启动为止时的总线2接口状态机器140的运转由ELSE状态转换532表示,其中总线2状态机器140的这一部分监视总线2接口状态机器140的其它部分并确定何时新的读数周期已被启动。实际上,在内部NEW_RD信号为无效时,总线2接口状态机器140保持在IDLE状态520。
当新的读数周期已被总线2接口状态机器140启动(NEW_RD为有效)并且总线2接口状态机器140已确定第二总线120已被分配到总线接口100上(记作BUS_RE_TIME的信号为有效)时,则总线2接口状态机器140使状态转换540为MASK1状态522。如由状态转换参数的“/LOAD_QW_CNT”部分进一步说明的那样,当状态转换540正在发生时总线2接口状态机器将把四倍长字个数装载到内部四倍长字计数器(未示出)内。四倍长字个数表示为了从第一总线110向第二总线120传送给定的一串数据必须发生的传递的数目。
MASK1状态522和MASK2状态524是延迟状态,以确保所选择的数据有效标志在总线2接口状态机器140检验所选择的数据有效标志的状态之前有足够的时间从总线2标志多路转换器200通过总线2同步器210传输。因此,从MASK1状态522至MASK2状态524的转换被示出为无条件发生的(用旁边的“1”参数表示)。同样地,从MASK2状态524至DATA_XFR_IN_PROG状态526的转换也是无条件地发生的。
在DATA_XFR_IN_PROG状态526中,总线2接口状态机器140检验DATA_VALID_2标志的状态,如果它不是有效,则如由ELSE转换550所示,总线2接口状态机器保持在DATA_XFR_IN_PROG状态526。否则,如果DATA_VALID_2标志为有效且BUS_RD_TIME为有效,则总线2接口状态机器140分别经由转换552或转换554转换到IDLE状态520或MASK1状态522,以及将把在缓冲单元132的当前所选择的一个单元中的数据输出。这由两个转换552和554上的/OUT_DATA参数说明。可以理解,除了输出数据外,总线2接口状态机器将激励至标志缓冲器170的相应的一个的CLR_VALID信号。
转换552或转换554的选择取决于DONE参数的条件。DONE参数代表四倍长字计数器的QW_CNT输出的条件。如果QW_CNT为零,则DONE将为有效。如果QW_CNT有一个非零值,则DONE将为无效(即DONE为有效)。如果DONE为有效,则总线2接口状态机器140将使转换552回到IDLE状态520,并将对当前输出缓冲单元的指针增加到如参数/INC、BUF、NUM所示,指向作为下一个输出缓冲器的下一个缓冲单元132。否则如果DONE为无效(即DONE为有效),则总线2接口状态机器140将进行至MASK1状态522的转换,将使对当前输出的缓冲单元的指针增加,并将减小四倍长字计数器,如由/DEC_QW_CNT参数所示。正如上面参照图1所讨论的那样,必须通过MASK1状态522和MASK2状态524循环返回以便为以前所选择的数据有效标志传输出总线2同步器,并在DATA_VALID_2信号被总线2接口状态机器140评价之前用总线2接口状态机器140的输入端上的DATA_VALID_2信号线216前面的新选择的数据有效标志来替代提供时间。不管在所选择的输出缓冲单元上的数据在所选择的数据缓冲单元132中已存储了多长时间以及相应的数据有效标志已变为有效多久,都将插入这个延迟。
与图4的状态图500相对照,图5的状态图510要求较少的状态且工作更有效,这因为如图3所示在标志缓冲器170的输出端和总线2标志多路转换器200之间有多个总线2同步器430、432、434和436,而不是如图1所示只是在多路转换器200后面有一个单一的总线2同步器210。具体说,图5的状态图510仅包括IDLE状态600和DATA_XFR_IN_PROG状态610。如上所述,IDLE状态由RESET转换620加入。如ELSE转换622所说明的那样,图3的总线2接口状态机器404将保持在IDLE状态,除非如在DATA_XFR_IN_PROG状态610的转换624旁边的参数所说明的那样满足一定条件。具体说,总线2接口状态机器404将保持在IDLE状态,直到NEW_RD被启动和BUS_RD_TIME条件为有效为止,在那个时候它将由状态转换624转换到DATA_XFR_IN_PROG状态610,并将用所传送的四倍长字的数目装载四倍长字计数器,如由/LOAD_QW_CNT参数所表示的那样。
在DATA_XFR_IN_PROG状态610中,总线2接口状态机器404监视DATA_VALID_2信号的条件。如果DATA_VALID_2信号为有效且BUS_RD_TIME保持为有效,则总线2接口状态机器404根据DONE条件将执行两个状态转换630和632中的一个。如果DONE条件为无效,则总线2接口状态机器404如由状态转换630所说明的那样将保持在DATA_XFR_IN_PROG状态610,并且如由/OUT_DATA参数所说明的那样将输出数据缓冲单元132中当前所选择的一个单元的内容。总线2接口状态机器404将当前缓冲器数目增加1(/INC_BUF_NUM)并将四倍长字计数器减1(/DEC_QW_CNT)。如果DONE条件为有效,则总线2接口状态机器404将经由状态转换632转换回到IDLE状态600,同时输出最末的四倍长字(/OUT_DATA)并将缓冲器数目加1(/INC_BUT_NUM)。如果DATA_VALID_2信号不是有效或如果BUS_RD_TIME条件没有被满足(例如,第二总线120当前不能获得),则总线2接口状态机器404如由ELSE转换634所说明的那样保持在DATA_XFR_IN_PROG状态610。
如状态图510所示,按照图3和5的总线2接口状态机器404没有在图1和4的总线2接口状态机器140中固有的时间延迟。实际上,可以看出,一旦总线2接口状态机器404将状态转换630上的缓冲器数目加1,它就停留在DATA_XFR_IN_PROG状态610并立即检验DATA_VALID_2信号,以确定数据是否能从所选择的缓冲单元132输出。这可以发生,因为相应的数据有效标志(FLAG0、FLAG1、FLAG2或FLAG3)将通过各自的总线2同步器430、432、434或436传输并一旦标志多路转换器200的下一个输入端被选择就将在至标志多路转换器200的输入端上获得。因此,假设第二总线120仍然被分配到总线2接口状态机器404,并假设第一总线110已填充了数据缓冲单元132,则数据可以在每个接连的时钟周期上从缓冲单元132输出,而不必在每个输出之间插入两个时钟周期。
虽然上面是结合本发明的特定实施例来描述的,但可以明白,实施例的描述是本发明的例证而不是企图施加限制。只要不偏离本发明在后面权利要求中所规定的真正精髓和范围,本专业人员可以加以不同的变通和应用。
权利要求
1.相互异步工作的第一和第二总线之间的接口电路,这里所说的第一总线以与第一总线时钟同步的方式把数据提供给所说的接口电路,而这里所说的第二总线以与第二总线时钟同步的方式接收来自所说的接口电路的数据,所说的装置包括一个输入/输出缓冲器,包括至少第一和第二缓冲单元,其中以与第一总线时钟同步的方式存储有来自所说的第一总线的数据;分别与所说的第一和第二缓冲单元有关的至少第一和第二数据有效指示器,当数据被存储在所说的第一缓冲单元时,所说的数据有效指示器与所说的第一总线时钟同步地被置位,当数据被存储在所说的第二缓冲单元时,所说的第二数据有效指示器与所说的第一总线时钟同步地被置位;一个数据有效指示器选择器,其选择所说的第一和第二数据有效指示器中的一个作为输出数据有效指示器;一个与所说的第二总线时钟同步工作的总线状态机器,其把数据从所说的输入/输出缓冲器传送到所说的第二总线,所说的总线状态机器选择所说的第一和第二缓冲单元中的一个作为传送到所说的第二总线的数据的源,所说的总线状态机器控制所说的数据有效指示器选择器以选择所说的第一和第二数据有效指示器中相应的一个作为所说的输出数据有效指示器,所说的总线状态机器监视所说的输出数据有效指示器以确定从所说的第一总线来的数据何时已被存储到所说的第一和第二缓冲单元中所说的一个内;一个第一同步电路,其接收所说的第一数据有效指示器并把它与所说的第二总线时钟同步以提供第一被同步的数据有效指示器作为至所说的数据有效指示器选择器的输入端;以及一个第二同步电路,其接收所说的第二数据有效指示器并把它与所说的第二总线时钟同步以提供第二被同步的数据有效指示器作为至所说的数据有效指示器选择器的输入端。
2.在相互异步工作的第一和第二总线之间传送数据的装置,所说的装置包括一个数据存储设备,包括存储数据的多个存储单元;连接到所说的第一数据总线的第一总线接口状态机器,所说的第一总线接口状态机器把数据从所说的第一数据总线传送到所说的多个数据存储单元中所选择的一个;连接到所说的第二数据总线的第二总线接口状态机器,所说的第二总线接口状态机器把数据从所说的多个数据存储单元中所选择的一个传送到所说的第二数据总线;对每个所说的多个数据存储单元具有各自的指示器的数据存在缓冲器,所说的指示器中的一个在响应把数据传送到所说的多个据存储单元中所说的一个的所说的第一总线状态机器时置位,并在响应把数据从所说的多个据单元中所说的一个传送到所说的第二数据总线的所说的第二总线状态机器时清除,所说的第二总线接口状态机器仅当所说的指示器中所说的一个被置位时才传送从所说的多据存储单元中所说的一个来的数据;以及连接在所说的数据存在缓冲器与所说的第二总线接口状态机器之间的一组各自的延迟电路以延迟所说的指示器因而所说的第二总线接口状态机器在所说的第一总线接口机器已把数据传送到所说的多个据存储单元中所说的一个内之后经过了一预定时间之后才能传送从所说的多个据存储单元中所说的一个来的数据。
3.权利要求2中所规定的装置,其中所说的数据存储设备是缓冲器。
4.权利要求2中所规定的装置,其中所说的第二数据总线有一时钟信号,其同步传送到所说的第二数据总线上的数据,其中所说的各自的延迟电路是同步器,其与所说的时钟信号同步。
5.权利要求2中所规定的装置,其中所说的一组延迟电路是第一组延迟电路,其中所说的预定时间是第一预定时间,其中所说的装置还包括连接在所说的数据存在缓冲器和所说的第一接口状态机器之间的第二组延迟电路以延迟所说的指示器到所说的第一总线接口状态机器,因此所说的第一总线接口状态机器在所说的第二总线接口状态机器已把数据从所说的多个数据存储单元中所说的一个传送到所说的第二数据总线之间的第二预定时间已过去之前不能把数据传送到所说的许多数据存储单元中任何一个内。
6.在第一数据总线和第二数据总线之间传送数据的装置,所说的第一和第二数据总线相互异步工作,所说的装置包括一个缓冲器,包括存储数据的第一和第二数据存储单元;连接到所说的第一数据总线和所说的缓冲器的第一总线接口状态机器以便根据第一总线时钟信号控制从所说的第一数据总线至所说的第一和第二数据存储单元的所选择的一个的数据的传送;连接到所说的第二数据总线和所说的缓冲器的第二总线接口状态机器以便根据与所说的第一总线时钟信号异步工作的第二总线时钟信号控制从所说的缓冲器至所说的第二数据总线的数据的传送;第一和第二标志缓冲器,其具有连接至两个所说的第一和第二总线接口状态机器的各自的第一和第二标志输出,所说的第一标志缓冲器的所说的输出当数据被从所说的第一数据总线传送到所说的第一数据存储单元时与所说的第一总线时钟信号同步地被置位,当数据从所说的第一数据存储单元被传送到所说的第二数据总线时与所说的第二总线时钟信号同步地被清除,所说的第二标志缓冲器输出当数据从所说的第一数据总线被传送到所说的第二数据存储单元时与所说的第一总线时钟信号同步地被置位,并当数据从所说的第二数据存储单元被传送到所说的第二数据总线时与所说的第二总线时钟信号同步地被清除;连接在所说的第一标志缓冲器和所说的第二总线接口状态机器之间的第一同步器和连接在所说的第二标志缓冲器和所说的第二总线接口状态机器之间的第二同步器,所说的第一同步器将所说的第一标志输出与所说的第二总线时钟信号同步,因而所说的第一标志输出在所说的第一标志输出被改变之后所说的第一标志输出能被所说的第二总线接口状态机器接收之前被延迟至少一预定时间,所说的第二同步器将所说的第二标志输出与所说的第二总线时钟信号同步,因而所说的第二标志输出在所说的第二标志输出被改变之后所说的第二标志输出可以被所说的第二总线接口状态机器接收之前被延迟至少所说的预定时间。
全文摘要
第一和第二数据总线(110和120)之间的接口包括第一总线状态机器(406),其控制从第一数据总线(110)至数据缓冲器(132)的数据传送。该接口包括第二总线状态机器(404),其控制从数据缓冲器(132)至第二数据总线(120)的数据传送。数据缓冲器(132)包括按先进先出存取的多个存储单元。当数据从第一数据总线(110)被存储在存储单元(132)时,每个存储单元的各自的有效数据标志(170)被第一总线状态机器置位,并当数据被从存储单元(132)传送到第二数据总线(120)时被第二总线状态机器(404)清除。数据有效标志(170)与第一和第二总线时钟同步,第一和第二总线时钟分别与第一和第二总线状态机器(406和404)相联系,以确保数据有效标志(170)与每个状态机器同步地改变。为了减小从数据缓存器(132)中多个数据单元顺序输出数据所要求的时间,每个数据有效标志(170)被单独同步。
文档编号G06F13/40GK1192282SQ96195861
公开日1998年9月2日 申请日期1996年6月6日 优先权日1995年6月7日
发明者小·L·R·莫特 申请人:Ast研究公司