采用多端口存储器的智能数据总线接口的制作方法

文档序号:6415906阅读:194来源:国知局
专利名称:采用多端口存储器的智能数据总线接口的制作方法
背景技术
本发明涉及智能数据总线接口,尤其涉及具有多端口存储器和数据处理器的智能数据总线接口。
位于主计算机总线和从计算机总线或者I/O设备之间的典型接口包括一个具有两个独立双向端口的双端口存储器。双端口存储器一般采用两个计算机的重叠地址空间。数据在计算机之间传送,其方法是让一台计算机向其与双端口存储器关联的地址空间写入数据,然后让另一台计算机从其与双端口存储器关联的地址空间读取数据。双端口存储器作为主计算机和从计算机之间的接口特别有利,这里主计算机和从计算机以不同的数据速率工作。该接口要求以中断驱动方式访问主计算机和从计算机的中央处理器(CPU),以实现协议、控制和数据处理功能。每个CPU都受接口中断的拖累,这些中断要求相当大比例的CPU处理能力。
典型智能接口具有一个输入/输出处理器(IOP),它包括一专用微处理器,可使主计算机的CPU从大量的输入/输出(I/O)相关任务中解脱出来。因而,可以获得较高的I/O性能,同时减轻主机CPU的处理负担。另外,IOP可以实现较高级别的I/O协议,执行诸如编码/解码等数据转换,以及执行智能运行时间(runtime)优化,例如超前读的高速缓存和写数据归并。
现有的一例智能数据总线接口是授予Murphy的美国专利第5,130.981号所揭示的网络桥100。术语“智能”是因为在网络桥中采用了专用系统处理器101。在Murphy的网络桥中,用单端口随机存取存储器(RAM)102存储由网络桥通过第一和第二DMA控制器103和104分别从第一网络105和第二网络106接收到的数据包。系统处理器和DMA控制器可以通过三端口RAM接口访问存储在RAM中的数据包,这样可以防止系统处理器和DMA控制器同时访问单端口RAM。在理想情况下,三端口RAM接口107分配对单端口RAM的访问,以致于处理器和两个DMA控制器对单端口RAM具有相同的访问优先级。然而,为了提供相同的访问优先级,RAM的存取周期必须是处理器或DMA控制器之存取周期的三倍,由此将网络桥的最大带宽限制为RAM带宽的大约三分之一。三端口RAM接口选通对单端口RAM的访问,防止处理器和DMA控制器对单端器存储器同时和异步访问。此外,两个网络之间的所有数据传送和所有请求都必须经过Murphy专利中的存储器来进行。
一般情况下,主计算机和从计算机的操作系统必须履行硬件的特定功能,以便使用现有的数据总线或网络接口。目前,智能数据总线接口的标准化努力正朝着制定一个与操作系统无关的标准智能接口协议的方向发展,通过协议的制定,可以解除操作系统对特定智能接口硬件的相关性。因而,执行标准协议的智能接口硬件适应于所有支持标准协议的操作系统。此类标准的实例有智能I/O(I2O)结构、Intel/Microsoft虚拟接口(VI)结构、统一驱动器接口,以及IEEE SCI物理层API。I2O标准具体定义了智能I/O硬件结构、主机CPU与IOP之间的字节传输协议、传输驱动器接口、消息协议,以及IOP初始化和配置。


图1以简化的形式示出了一种现有的智能IOP 2,诸如Intel i960RP。这种Intel IOP被安排根据I2O标准来运作。该IOP包括具有内存储器6的微处理器(处理器)4、存储器总线接口单元(MIU)8、局部总线接口单元(BIU)12,和两个直接存储器存取(DMA)接口14,18。内部总线10将处理器、MIU、BIU和IDMA接口连接在一起。IOP拥有大量的I/O接口,这可使它起智能I/O桥的作用,并且能够对总线接口实现初始化和控制功能。IOP的主要DMA接口14一般通过主机的外围部件互连(PCI)局部总线16与主机CPU(未图示)连接。第两个DMA接口18通过第二PCI总线20与网络硬件(未图示)相连。PCI-PCI桥22允许在PIC总线16和20进行DMA数据交换,但使用IOP或者降低任何一条总线的吞吐量。IOP的微处理器用内部总线10将MIU 8连接至BIU 12和两个DMA接口14、18。
在典型的I/O操作过程中,IOP 2接收到一个放入其芯片上内存储器6中某特定地址的请求。然后,处理器4对该请求解码,并通过用PCI总线20设置适当的网络接口,来对请求作出响应。网络接口执行请求,并通过PCI-PCI桥22把结果数据复制到主机存储器中,或从主机存储器中复制出来。在DMA处理完成后,IOP2接收一个适当的中断,它触发完成对请求的操作。
当需要进行诸如数据编码/解码,一个包接一个包的流控制,或者在智能网络接口中实现高层协议等额外的I/O数据处理时,IOP2结构对性能的限制是很明显的。对于此类I/O数据处理,处理器4必须直接存取数据流。CPU对数据流的存取可以用多种方法来完成,以下说明其中二种方法。
在第一种技术中,处理器4执行编程的I/O,用PCI总线20直接从网络接口的内部弹性缓冲区中读取,内部处理数据,并且用主机PCI总线16将数据直接写入主要PCI地址空间中的目标存储器中。不幸的是,在进行这种编程I/O时,在两个DMA接口14和18的任何一个处,任何访问的时间延迟都会明显减慢处理器4,从而降低其处理效率。另外,通过IOP可获得的总带宽被限定为内部总线10之带宽的一半减去任何处理器程序代码读取时间(程序不在高速缓存)和在两个DMA接口14、18中任何一个处的访问延迟时间。
在第二种技术中,通过以下方式避免PC总线的访问延迟时间,即在两个接口14,18中使用DMA引擎,通过局部存储器总线24、经MIU 8将数据移入和移出局部存储器(未图示)。局部存储器对于任何I/O处理起弹性缓存器的作用。高速内存储器6也可以起弹性缓冲器的作用,以避免PCI总线的延迟时间。内存储器6一般很小,例如1千字节,这要求数据包的发送机和接收机之间有紧密耦连。通过使用内存储器6,可以将可获得的总带宽限于总线10之带宽的一半,再减去处理器4的任何程序获取。相对于任何一条PCI总线的存取延迟时间都分摊于较大的数据串,可以被忽略。然而,在内存储器6太小并且使用局部存储器(未图示)的情况下,总数据通量被限定为内部总线10之带宽的1/4,再减去程序获取所需的带宽。
正如上述两种技术的带宽限制所表明的,如果IOP正在进行调度和控制操作,那么现有IOP 2的结构是有利的。然而,如果要求IOP存取高速数据流,那么由于其体系结构所固有的带宽限制,所以其性能会受更大的限制。
据此,无疑需要一种智能数据总线接口,该接口具有一个内处理器,可以存取和操作高速数据流,不会过度影响数据流通过接口的速率。另外,需要一种智能数据总线接口,它能够在接口两端为数据架桥,并且不要求接口具备这样的超高速内部数据总线,总线的工作带宽不必比高速数据流的带宽大许多倍。本发明满足这些需要,并且提供其他相关的优点。

发明内容
本发明体现在一种智能数据总线接口以其相关的方法,它提供了灵活而高效的数据接口。该智能数据总线接口包括一个多端口存储器、第一双向数据总线、第一双向数据总线和一个处理器。多端口存储器具有多个数据存储单元和至少三个独立的双向数据端口,其中双向数据端口被构造成可以同步和异步地向多个数据存储单元写入和读取数据。第一双向数据总线与双向数据端口的第一端口相连。第二双向数据总线与双向数据端口的第二端口连接。处理器与双向数据端口的第三端口连接,并对多个数据存储单元中的数据进行操作。通过使用多端口存储器,智能数据总线接口可以让每个双向数据总线以全带宽数据速率工作,并且由处理器提供对数据流的处理。
本发明的一个更详细的特征是,智能数据总线接口还包括连接于第一双向数据总线和第一双向数据端口之间的第一数据总线接口单元、连接于第二双向数据总线和第二双向数据端口之间的第二数据总线接口单元。第一和第二数据总线接口单元异步地向多个数据存储单元写入和读取数据。处理器异步地对预先由第一和第二数据总线接口中的一个写入多个数据存储单元中一部份的数据进行操作,同时第一和第二总线接口分别同时向多个数据存储单元的其它部分写入和读取数据。另外,智能数据总线接口可以包含一个通过逻辑单元,它连接在第一和第二总线接口单元之间,用于提供介于第一和第二数据总线之间的数据桥接。另外,第一数据总线可以是PCI数据总线,第一数据总线接口单元可以是PCI接口单元,第二数据总线可以是SCI数据总线,而第二数据总线接口可以是SCI接口单元。通过逻辑单元可以将SCI数据总线上的数据地址变换为PCI数据总线上的数据地址,以提供SCI-PCI的数据总线桥接。通过逻辑单元还可以将PCI数据总线上的数据地址变换为SCI数据总线上的数据地址,以提供PCI-SCI的数据总线桥接。此外,可以将一个内部总线连接在处理器和PCI接口单元之间。
本发明的其他更详细的特征还有,SCI数据总线可以使用一个64位数据地址,PCI数据总线可以使用一个32位数据总线,以及多端口存储器可以是一个使用四端口存储器的三端口存储器,四端口存储器四个端口中的两个用于形成与SCI数据总线相连的第二双向数据总线。此外,通过逻辑单元可以在SCI总线接口单元和PCI总线接口单元之间进行飞经地址变换。另外,数据桥可以在分割处理协议和统一处理协议之间进行协议转换。另一种方法是,处理器可以调度在第一和第二数据总线接口之间的数据块读取,以实现一个链接模式DMA。
本发明的其他更详细的特征还有,第一数据总线可以是主机PCI数据总线,第一数据总线接口单元是第一DMA接口单元;第二数据总线可以是从设备PCI数据总线,第二数据总线接口单元是第二DMA接口单元;通过逻辑单元相应地将主机PCI数据总线上的数据地址转送给从设备PCI数据总线,并将从设备PCI数据总线上的数据地址转送给主机PCI数据总线,以提供PCI-PCI的桥接单元。另一种方法是,将诸如ATM总线等第三双向数据总线通过ATM接口与至少三个双向数据端口的第四端口相连,第一数据总线可以是以太网数据总线,第一数据总线接口单元是第一以太网接口单元,第二数据总线可以是以太网数据总线,第二数据总线接口单元是第二以太网接口单元,而通过逻辑单元可以提供介于第一和第二以太网总线之间的数据桥。另外,可以将一个内部总线与处理器、第一数据总线接口单元和第二数据总线接口单元相连,以使在处理器和第一和第二数据总线接口单元之间进行控制和设置的通信。
本发明的其它更详细的特征还有,处理器对多端口存储器中存储的数据进行加密的解密。另外,处理器可以是数字状态机,或者用于进行数据加密和解密的数据管理状态机。处理器可以包括局部存储器,用于实现一种反射存储器协议高速缓冲存储器。此外,可以将第二处理器与至少三个双向数据端口的第四端口相连。另外,可以将一条主总线接口与多端口存储器的一个端口相连。
本发明的另一个实施例是这样一种接口,它包括处理器、用于向第一数据总线发送和接收数据的第一总线接口、用于向第二数据总线发送和接收数据的第二数据接口,以及具有第一、第二和第三端口的三端口存储器,它用于将数据存储于多个存储单元并从存储单元中读取所存储数据的第三端口。第一端口与第一总线接口相连,以便将从第一数据总线接收到的数据存储于存储单元中,并将第一总线接口从存储单元读取的数据发送到第一数据总线。第二端口与第二总线接口相连,以便将从第二数据总线接收到的数据存储于存储单元中,并将第二总线接口从存储单元读取的数据发送到第二数据总线。处理器与第三端口连接,用于读取、处理和存储数据于存储单元中,并且通过一特定端口存储于一特定存储单元的数据,在此特别端口正从另一个存储单元读取和存储数据时,可以被不同于此特定端口的另一端口读取。
本发明还可应用于一种数据接口方法。该方法包括以下步骤提供具有多个数据存储单元的多端口存储器;将通过第一端口从第一数据总线接收到的数据存储在多个存储单元的第一部分中;以及通过第二端口处理存储在多个存储单元之第一部分中的数据,同时独立地且同时地将通过第一端口从第一数据总线接收到的数据存储在多个存储单元的第二部分中。
本发明的另一个更详细的特征是,本方法还包括以下步骤通过第三数据端口读取存储在多个数据存储单元之第一部分中的经处理的数据,同时通过第二端口独立地且同时地处理存储在多个数据存储单元之第二部分中的数据,且同时独立地且同时地将通过第一端口从第一数据总线接收到的数据存储在多个数据存储单元的第三部分中。
附图概述图1是一简化的方框图,示出了现有技术的智能I/O处理器。
图2是一方框图,示出了依照本发明的智能数据总线接口的第一实施例,该接口具有在两个PCI总线之间工作的三端口存储器。
图3是一方框图,示出了依照本发明的智能数据总线接口的第二实施例,该接口具有在第一和第二网络总线之间工作的一个四端口存储器和两个处理器。
图4是一方框图,示出了依照本发明的智能数据总线接口的第三实施例,该接口PCI总线和SCI总线之间的运作。
围5是一示意图,示出了一种与图4中总线接口一起使用的飞经(fly-by)地址变换方法,该方法用地址变换表在SCI总线和PCI总线的地址域之间进行地址转换。
图6是一数据流图,示出了将64位SCI地址转换成32位PCI地址的方法,该方法与图5的(fly-by)地址变换方法一致。
图7是一数据流图,示出了将64位SCI地址转换成32位PCI地址的另一种方法,该方法与图5的地址变换方法一致。
图8是一示意图,示出了由四端口存储器构造的三端口存储器,它具有两条n位宽的数据总线和一条2n位宽的数据总线。
图9是一示意图,示出了四个四端口存储器,它们被构造成与图8所示三端口存储器一致的三端口存储器,具有一个32位PCI总线和一个64位SCI总线。
图1O是一方框图,示出了基于本发明四端口存储器的智能网络路由器,用于在两个以太网和一个ATM网之间的连接。
本发明较佳实施例的详细描述现参考图2,该图示出了本发明第一实施例的智能数据总线接口30。总线接口30有点类似于图1的IOP2,但它还包括了诸如三端口存储器等多端口存储器32,以及通过逻辑单元52。该接口包括一个带有内部处理器存储器36的处理器34,还包括两个分别与第一和第二数据总线46、50相连的外部总线接口44和48。每个数据总线46和50都通过各自的总线接口44、48与三端口存储器的双向数据端口32a、32b相连,其中总线接口44和48能够从三端口存储器中的特定缓存单元接收和发送数据包。处理器34与三端口存储器的第三双向数据端口32c相连。本发明智能数据总线接口的一个特别的优点是,每个双向数据端口可以用高达其全访问速度的数据速率来独立发送或接收数据,而不必与其余端口同步或等待其余数据端口。
处理器34通过内部总线40与三端口存储器32的第三端口32c以及DMA接口44、48相连。因为处理器可以通过三端口存储器的第三端口访问两条数据总线46、50的数据,所以它可以用与任何一条数据总线46、50的数据速率无关的速率对存储于三端口存储器中的数据进行操作,不必中断任何一条数据总线与三端口存储器之间的全速率数据传送。因此,当第一总线接口正在对存储单元的第二缓冲区或段进行写操作,并且第二总线接口正在从第三缓冲区或段读取数据时,处理器能够改动三端口存储器中存储单元的第一缓冲槽或段。因此,数据总线46、50可以全速运行,完全与处理器34无关。如果必须附加处理性能,为高速数据流服务,那么可以对三端口存储器增加端口,形成多端口存储器,并且使附加的处理器与附加的端口相连。
本发明的智能数据总线接口30还可以包括存储器总线接口单元(MIU)38和局部总线接口单元(BIU)42,其功能类似于图1中的MIU 8和BIU 12。通过多端口存储器32的专用端口32c,处理器34可以直接访问通过两个数据总线44、48的所有数据。内部总线40是由处理器控制的,因而当处理器通过内部总线访问多端口存储器端口时,不存在存取延迟时间或其他的总线竞争。结果,通过接口30可获得的总的数据转换带宽为总体内部处理器之多端口存储器端口带宽的一半(它取决于内部总线40的速度),再减去任何处理器获取程序代码所需的带宽(程序不在高速缓存)。很容易增加内部总线的带宽,其方法是将其宽度增加到足够二倍于最快外部总线的带宽。处理器也可以通过内部总线直接访问总线接口44或48,以便对总线接口初始化,并设置总线接口。
多端口存储器32中与两个总线接口44、48相连的两个端口可以用适于存储器带宽的数据速率接收或发送数据包。使用通过逻辑单元52并结合多端口存储器32可以将总线接口构造成具有与图1中PCI-PCI桥22类似的功能,以便按“直通”方式实现数据包转发,但处理器34不访问数据。通过逻辑单元52可以有选择地对数据包逐个操作,并由此实现滤波功能。当在任何一个总线接口接收到数据包时,产生转发给定数据包的决定,数据包不用通过处理器。通过逻辑单元可以是由处理器设置的状态机,它截获普遍认定的数据包,或者旁路掉特定的数据包,从而为处理器免去处理普通数据包的任务。通过逻辑单元在与统一处理总线、分割处理总线或网络(如PCI、SBUS、SCI、SerialExpress、ATM或以太网)相连的同时,对数据包进行选定级别的处理。
处理器34不受限制,可以对数据流的任何部分直接访问,允许在不同总线之间进行协议转换和带宽转换。处理器可以对数据流的任何部分进行复杂的数据处理,而不影响任何总线接口。因此,处理器可以高效地承担底层网络协议,从而减轻主机处理器的处理负担。处理器进行数据包处理的不利影响是增加了智能数据总线接口的延迟时间。然而,此延迟时间会远远小于执行相同任务的主机处理器所造成的延迟时间。
为简单起见,图2所示的智能数据总线接口30使用三端口存储器32。但是,本发明不限于三端口存储器。例如如图3所示,可以用四端口存储器32′支持附加的处理器34',例如附加的处理器可以是硬件的编码/解码引擎,与存储器的第四端口32d相连。附加处理器可以降低内部总线40′所需的带宽。
如图4所示,使用多端口存储70的另一例智能数据总线接口位于SCI-PCI网桥60内。该网桥连接通常以统一处理总线为特征的PCI总线62,以及通常以分割处理网络为特征的SCI总线64。在SCI接口66接收到的SCI数据包可以是超前读的高速缓冲存储器存储界,因而需要存储在三端口存储器70的弹性缓冲区中。网桥还包括连接在三端口存储器70和PCI总线62之间的PCI接口68。两条数据总线62和64异步操作,也就是以不同的数据率工作。
利用市场上可买到的多端口存储器,用市场流行(COTS,commercial-off-the-shelf)芯片可以完成智能多端口存储器网桥60,从而避免采用较为昂贵的专用集成电路(ASIC)设计。还可以将设计的各种逻辑部件合并成单个ASIC,以降低大批量生产的成本。图4中的SCI-PCI网桥60是板卡部件,而不是芯片器件。内部总线72将处理器74与其局部存储器76、固件78(诸如只读存储器ROM)以及三端口存储器70相连。处理器是COTS微控制器。处理器直接访问局部PCI总线接口68,以便进行初始化、设置以及诸如读改动、写处理等特殊循环。直接PCI访问路径还可以用来在局部存储器76中实现反射存储区。利用SCI网络,处理器可用来实现一种使反射存储器与所有其他远程映射存储器的同步协议。在这种情况下,局部PCI主机可以从反射的局部存储器76直接读取数据。
SCI接口66和PCI接口68都可以实现类似的双重功能,使它们可以接收和发送数据。总线接口60的主要功能是能够将给定的数据包送过接口。对于SCI接口66,将三端口存储器70中的数据包发送给网络,而对于PCI接口68,则将三端口存储器中的数据包写入特定的PCI地址或从中读取。
SCI接口66接收数据,并将其存储在可用的弹性缓冲区中。如本领域熟练技术人员所周知的,用空闲的缓冲区表或可用的查找表可以实现弹性缓冲区。所选的缓冲资源管理方法对于本发明来说并不重要。如果没有可用的空闲缓冲区,那么会阻塞其它进入的请求。SCI接口还监视数据,以便确定是否要用处理器77或通过逻辑单元80处理给定的数据包。
因为PCI总线62是统一处理总线,所以PCI接口68更为复杂。对于写操作,将数据存储在可用的缓冲区中。如果PCI数据的脉冲串大小超过了64字节或256字节的数据块大小,那么会产生多个写脉冲串。如果所有的写缓冲区都满了,那么PCI接口发出重试指令,直到至少空出一个缓冲区。对于所产生的每个PCI数据脉冲,PCI接口68用诸如消息队列等现有方法,通知处理器74有等待的请求。然后,处理器进行必要的重定格式和地址变换。在成功地完成了写数据包处理之后,处理器规划将数据包发送到SCI网络接口。
对于PCI读操作,内部地址映射表规定了特定读操作是否选择反射存储区(它是局部存储器76的一部分),或者是否执行一个透明读操作。对于访问局部反射存储器76,裁定局部总线72,并执行适当的读操作。对于透明读操作,将读地址作为读请求写入三端口存储器70,并通知处理器。处理器进行检查,判断是否能够从任意一个局部高速缓冲器中得到被请求读的数据。如果所请求的数据不在高速缓冲器中,那么产生适当的SCI读请求。如果给定的属性允许超前读高速缓存,那么就进行64字节或256字节的读操作,覆盖被请求的字。读64个字节相比读一个字的额外开销很小。
在此体系结构中可以采用两层高速缓存层。第一高速缓存层是三端口存储器70。在完成第一次SCI读操作后,可以马上兑现对相邻地址的读操作。第二高速缓存层在局部存储器76中实现。在完成读操作之前,在从三端口存储器70中清除所读的数据包之前,处理器74可以将其拷贝到局部存储器76的保留区域中,该区域起二级高速缓存的作用。在对该高速缓冲存储器存储界进行额外读操作的情况下,可以将局域缓存的数据复制回去,就好象数据是从远程节点所接收到的一样,只是延迟时间更小。如本领域所周知的,将三端口存储器70和局部存储器76之间的拷贝操作作为飞经操作来执行,每个数据字仅需要一个时钟周期。三端口存储器中每个有效的读数据缓冲器都配有一个高速缓存标号,使得PCI读接口68能够确定高速缓冲存储器存储界的可用性和位置,不需要处理器介入。
对反射存储区的写操作类似于对SCI地址区域的写操作。处理器74将写数据拷贝到反射存储器,并产生适当的SCI写操作,更新所有其他链接的反射存储段。将进来的、对反射存储器子地址的SCI写拷贝到适当的反射存储区。
处理器74可以设置SCI接口66,以便将特定的数据包类型转发到通过逻辑单元80,从而将处理器74从处理普通数据包的任务中解放出来。例如,被登记的写响应成功消息仅仅释放三端口存储器70中适当的缓冲资源,并且不要求处理器进行处理操作。通过逻辑单元的另一个特点是,能够处理流动数据块。对于不需要重定格式的较长的DMA数据串(如异步视频数据),可以将基本的DMA缓冲类型(一般为64或256字节的数据块)直接转发到PCI接口68。通过逻辑单元80对PCI接口68的合适密钥地址进行写操作,触发适当的PCI数据串。处理器74控制通过逻辑单元80转发哪些数据包。转发的选择取决于数据包的类型、源地址和SCI子地址。可以有多重的、同时的数据流,其中有些数据流旁路通过处理器,而另一些由处理器进行处理。
SCI子地址的有关部分受SCI从接口66的监视,并被转发到PCI主接口68。只要三端口存储器中存储有适当格式化的地址变换,PCI主接口68可以飞行地进行SCI-PCI地址变换。
图5-7示出了SCI-PCI飞经地址变换方法。该方法适于进行PCI-SCI地址变换。SCI请求地址100的相关高位比特由图4中的SCI接口66来监视,同时将地址写入有效缓冲槽102的一个确定的,静态子地址中。SCI源标识符可用来为不同的SCI主机确定不同的地址映射或优先级。并不是图5中的所有地址都要使用。三端口存储器70的PCI端口可以由两个具有独立地址总线的数据字构成,在图5中标识为地址域A和地址域B。相当于主机系统页面大小的地址域A一般为4K字节,因而需要12个寻址位。在PCI接口68的寻址阶段,地址域104具有被通过的页面子地址。地址域A的地址位从三端口存储器70中的一个单元中读出,该单元是接收缓冲器102的基地址加上地址字的适当静态缓存偏移。地址域B 106具有经变换的地址加上访问选项108(诸如只读属性)。在发生非法访问(诸如对只读区域做写操作)的情况下,中止操作,产生仅地址阶段。从地址变换表110读取地址部分106。它是由地址变换表基地址加上地址变换索引112来确定的,而地址变换索引112由SCI从接口66来监视。利用经转发的关于适当缓冲器地址和地址变换索引的先前知识,通过同时对三端口存储器70的不同部分寻址,来构成新的地址。通过考虑到每个端口的8位或16位宽度中,一般的多端口存储器是有效的,很容易实现多端口存储器PCI总线的两个子字。因此,一个32位PCI数据总线可以用多个多端口存储器芯片来构成。这样,不用将给定端口的所有地址位都汇入总线,就可以产生多个独立可寻址的数据子离,它们可用来编译经变换的地址。
图6更详细地描述了采用外部LUT的飞经地址变换方法。64位SCI地址100和32位PCI地址114在图中的虚线分隔区域中表示4位。当然,其它地址位宽度也是可以的,并且本发明不限于64位SCI地址或32位PCI地址。
在SCI接口66将外来的SCI请求拷贝到多端口存储器70的适当插槽102中时,它还监视外来请求的地址位。在本例中,用SCI的地址位48,43-42以及21-16,将9位索引112形成为16位的SCI-PCI查找表。SCI-PCI查找表的索引由三个字段构成。第一个索引位是SCI源标识符的最低位。该位提供了二组不同的SCI请求者针对窗口和访问权限的区别。下面两个索引位(SCI地址43-42)用来允许多达四个同时窗口,每个窗口的大小为4MB。最低六个索引位定义了给定窗口中的多达64个页面。注意在此实施例中,要求SCI子地址位47-44为零,以便通过逻辑装置80可以接收请求,并将请求转发到PCI接口68。
查找表中的高二位定义了一个二位的控制字段116。控制字段116的第一位用作写保护位,第二位用于控制PCI接口68的字节交换引擎。此特征允许一种分页面的连接转换。查找表中的其余14位构成PCI主地址的16至29位。PCI地址的高二位由CSR寄存器定义,并定义了PCI主基地址。这就形成一个1GB的PCI地址窗口。SCI-PCI查找表可以是任何存储器大小。如果512个地址变换条目还不够,则可以采用更大的存储器,允许更大的查找表索引112。
总是将SCI地址写入三端口存储器70中一个适当输入缓冲器的具体子地址中。因此,可以对三端口存储器寻址,致使其数据输出驱动这个地址字。在这种情况下,仅有对应于存储器低16位的输出使能,而SCI-PCI查找表同时提供高16位。PCI主定序器由提供的查找表索引112生成适当的地址,该地址原来是用通过逻辑单元80转发给它的。
通过为查找表保留部分三端口存储器,可以将外部查找表存储器放入三端口存储器70中。对上述情况的唯一变化是三端口存储器的PCI端口必须允许对其最重要和最不重要的16位端口进行独立寻址。这种情况下,PCI局部存储器端口具有两条独立的地址总线,但只有一条控制总线。
图7描述了一种采用内部查找表和标记比较的飞经地址变换方法。这种地址变换方法由所使用的操作系统的页面大小驱动。一般的页面大小是4K字节。如果在较小的多端口存储器70中仅有很小的页面尺寸以及数目有限的地址变换条目,那么将存储在多端口存储器70中的条目实现为地址变换高速缓存条目。与以前一样,监测SCI地址中被选定的位,并用其构造查找表索引112。然而,地址变换条目(ATE)108是32位宽,其中一部分确定ATE高速缓存标记118,标记118需要与适当的SCI目标地址位120匹配,以使该条目有效。这些SCI目标地址位120受SCI接口66监测,并以类似于地址变换索引字112的方式转发给PCI接口68。它们也可以从多端口存储器70的PCI端口读出。
然后,由输入缓冲槽SCI目标地址偏移的数据位0-11以及适当匹配地址变换条目的12-31位组成最终的PCI地址。这个过程在读取ATE之后的周期中进行,在该期间中对地址标记作了比较。在PCI寻址阶段,多端口存储器70的第二个8位端口(D8-18)失效,并且PCI接口68适当地驱动先前读取和监测的地址位。
注意,PCI-SCI地址变换可以用类似的方法来实现。另外,在一个更复杂的实施例中,一个数据端口可以有多个地址总线。这种实施手段扩展了上述方法。
对于上述方法,可以依照下表l实施通过微处理器74或者PCI局部总线62观察到的三端口存储器70的存储器映射关系。
表1TPM存储器布局
目前可获得的最简单的多端口存储器或者是双端口存储器或者是四端口存储器。可以用三个双端口存储器来实现三端口存储器。然而,如图8所示,采用一个四端口存储器130,只要求一片存储芯片就可以建立一个三端口存储器70。四端口存储器具有四条8位数据总线。因而,需要将四片芯片合并,形成一条32位总线。SCI后端总线接口一般为64位宽。为了避免用八个8位的多端口存储器来建立一条64位总线,可以将两个数据端口合并,形成一条64位总线。合并后64位总线中的最低地址位连接于某个固定的级别(端口2作为低端,端口3作为高端)。哪个地址位固定于那个级别取决于IOP总线接口的连接特色,以及数据总线B的构成。如果执行一个64位写操作,那么四端口存储器识别出同时在两个端口的写请求,要同步地写入到相邻的两个存储器地址。这就表明了本发明的接口如何能够适应各种总线宽度而不需要特殊设计的芯片。多端口存储器的所有端口都异步操作,允许各个端口拥有各自独立的时钟区域。四端口存储器的另外一个应用是将第四个端口用作一个额外的网络端口,或者如果一个处理器74不够用的话,允许附加第二个处理器74′,图9更详细地示出了用四端口存储器130来构造三端口存储器70。因为最低地址引线分别连接地线GRN或者电源VCC,所以闪烁地址总线是11′位宽(A2(0)<=‘0’;A3(0)<=‘1’,反之亦然,对于所以芯片根据所涉及的总线连接)。PCI局部总线芯片B1与驱动D8-D15的芯片不对称,其包含部分通过地址和部分ATE地址位。其它分组输出使能信号或者地址总线也是可能的,这要根据具体的飞经地址变换方案。
图10示出了依照本发明根据四端口存储器162的智能网络路由器60的体系结构。所选择的例子是一个局域网/广域网的防火墙,例如它实现一个155 Mbit速率的ATM连接164,加上两个独立的100 Mbit以太网局域网连接166、168。它还可以使用通过逻辑单元170,起以太网桥接器的作用。与前述实施例一样,处理器172由局部存储器174和固件ROM 176支持,能够所有网络端口,以便进行构造和控制。所有的ATM通信量都通过四端口存储器162选择路由,所有的防火墙功能以及局域网/广域网协议转换都是通过处理器72来进行的。图10所示的网络接口178、180和182例举了可能的数据总线结构。然而,本发明并不限于任何特定的协议或网络标准。
虽然上述内容涉及本发明的具体实施例,但本领域的熟练技术人员知道,这些内容仅仅是说明性的,不背离本发明的原理,可以对这些实施例进行各种变化。本发明的范围范围由后附权利要求书限定。
权利要求
1.一种接口装置,其特征在于,包括一个多端口存储器,它具有多个数据存储单元,并且至少具有三个独立的双向数据端口,所述三个独立的双向数据端口被构造成可以同步和异步地向多个数据存储单元写入和读取数据;第一手段,用于使双向数据端端口的第一端口与第一双向数据总线相连;第二手段,用于使双向数据端口的第二端口与第二双向数据总线相连;以及处理器,它与双向数据端口的第三端口相连,用于对多个数据存储单元中的数据进行处理。
2.如权利要求1所述的接口装置,其特征在于,第一数据总线使用n个数据位;第二数据总线使用m个数据位,其中m大于n;并且多端口存储器是一个使用四端口存储器的三端口存储器,四端口存储器四个端口中的一个用于第一数据总线,四个端口中的两个用于第二数据总线,以支持更宽的m位数据地址。
3.如权利要求1所述的接口装置,其特征在于,第一连接手段包括连接在第一双向数据总线和第一双向数据端口之间的第一数据总线接口单元,用于异步地向多个数据存储单元写入和读取数据;第二连接手段包括连接在第一双向数据总线和第二双向数据端口之间的第二数据总线接口单元,用于异步地向多个数据存储单元写入和读取数据。处理器对预先由第一和第二数据总线接口中的一个写入多个数据存储单元中一部分的数据进行异步处理,同时第一和第二总线接口分别同时向多个数据存储单元中的其它部分写入和读取数据。
4.如权利要求3所述的接口装置,其特征在于,还包括一个通过逻辑单元,它连接在第一和第二总线接口单元之间,用于提供介于第一和第二数据总线之间的数据桥。
5.如权利要求4所述的接口装置,其特征在于,数据桥在分割处理协议和统一处理协议之间进行协议转换。
6.如权利要求4所述的接口装置,其特征在于,第一数据总线是PCI数据总线;第一数据总线接口单元是PCI接口单元;第二数据总线是SCI数据总线;第二数据总线接口单元是SCI接口单元;通过逻辑单元将SCI数据总线上的数据地址变换成PCI数据总线上的数据地址,从而提供了SCI-PCI数据总线桥接。
7.如权利要求6所述的接口装置,其特征在于,通过逻辑单元将PCI数据总线上的数据地址变换为SCI数据总线上的数据地址,从而提供了PCI-SCI数据总线桥接。
8.如权利要求4所述的接口装置,其特征在于,SCI数据总线使用一个64位数据地址;PCI数据总线使用一个32位数据地址;以及多端口存储器是使用四端口存储器的三端口存储器,其中四端口存储器四端口中的一个用于PCI数据总线,四端口中的二个端口用于SCI数据总线,以支持更宽的64位数据地址。
9.如权利要求8所述的接口装置,其特征在于,通过逻辑单元在SCI总线接口单元和PCI总线接口单元之间进行飞经地址变换。
10.如权利要求3所述的接口装置,其特征在于,第一数据总线是主机PCI数据总线;第一数据总线接口单元是第一DMA接口单元;第二数据总线是从设备PCI数据总线;第二数据总线接口单元是第二DMA接口单元;以及通过逻辑单元将主机PCI数据总线上的数据地址转发到从设备PCI数据总线,并将从设备PCI数据总线上的数据地址转发到主机PCI数据总线,以提供了PCI-PCI的桥接单元。
11.如权利要求3所述的接口装置,其特征在于,处理器调度在第一和第二数据总线接口单元之间的数据块读取,以实现链接模式DMA数据传送。
12.如权利要求3所述的接口装置,其特征在于,还包括一内部总线,它与处理器、第一数据总线接口单元以及第二数据总线接口单元相连,用于在处理器和第一和第二数据总线接口单元之问实现控制和设置指令的通信。
13.如权利要求1所述的接口装置,其特征在于,还包括第三手段,它用于将双向数据端口的第四端口与第三双向数据总线相连。
14.如权利要求13所述的接口装置,其特征在于,第三连接手段包括第三双向数据总线接口单元,该单元与双向数据端口的第四端口相连;和所述接口装置还包括一个通过逻辑单元,它连接于第一和第二总线接口单元之间,用于提供介于第一和第二数据总线的局域网桥。
15.如权利要求14所述的接口装置,其特征在于,第一数据总线是第一以太网数据总线;第一连接手段包括第一以太网接口单元;第二数据总线是第二以太网数据总线;第二连接手段包括第二以太网接口单元;第三连接手段包括ATM接口单元,它连接在第三双向数据总线和第四双向数据端口之间;以及通过逻辑单元提供了介于第一和第二以太网数据总线之间的数据桥接。
16.如权利要求1所述的接口装置,其特征在于,处理器包括用于对存储在多端口存储器中的数据进行编码和解码的手段。
17.如权利要求1所述的接口装置,其特征在于,还包括第二处理器,它与双向数据端口的第四端口相连,用于对多个数据存储单元中的数据进行操作。
18.如权利要求1所述的接口装置,其特征在于,处理器是一个数字状态机。
19.如权利要求1所述的接口装置,其特征在于,处理器包括用于实现反射存储器协议的局部存储器。
20.如权利要求1所述的接口装置,其特征在于,处理器包括用于实现高速缓冲存储器的局部存储器。
21.一种接口装置,其特征在于,包括一个处理器;第一总线接口,用于从第一数据总线接收数据以及向第一数据总线发送数据;第二总线接口,用于从第二数据总线接收数据以及向第二数据总线发送数据;三端口存储器,它具有第一、第二和第三端口,用于将数据存储到多个存储单元中,或者从存储单元中读取数据;第一端口与第一总线接口相连,以便将从第一数据总线接收到的数据存储在存储单元中,而将第一总线接口从存储单元读取的数据发送到第一数据总线;第二端口与第二总线接口相连,以便将从第二数据总线接收到的数据存储于存储单元中,而将第二总线接口从存储单元读取的数据发送到第二数据总线;处理器与第三端口相连,用于读取、处理和存储数据于存储单元中;通过一特定端口存储于一特定存储单元中的数据,在此特定端口正从另一个存储单元读取或存储数据同时,可以由与此特定端口无关的另一个端口读取。
22.一种接口装置,其特征在于,包括多端口存储器,它具有多个双向数据端口;多个总线接口,每个接口与多个数据端口中的一个相连,用于向多端口存储器存储和读取数据;多个数据处理器,每个数据处理器与多个数据端口中的一个单独的数据端口相连,用于同时从多端口存储器中的不同部分读取数据,处理存储的数据,以及将处理后的数据存储于多端口存储器中。
23.如权利要求22所述的接口装置,其特征在于,多个处理器中的每个处理器都具有用于对多端口存储器中存储的数据进行编码和解码的手段。
24.如权利要求22所述的接口装置,其特征在于,还包括一个内部总线,它连接在多个总线接口和多个数据处理器之间,用于在多个数据处理器和多个总线接口之间传输控制和设置指令;
25.如权利要求22所述的接口装置,其特征在于,还包括一个通过逻辑装置,它用多端口存储器在两个总线接口之间传送数据,不依赖于处理器;
26.如权利要求25所述的接口装置,其特征在于,通过逻辑装置在两个总线接口之间进行飞经地址变换。
27.如权利要求22所述的接口装置,其特征在于,多端口存储器是一个四端口存储器,它用四端口存储器实现具有不同端口数据总线宽度的三端口存储器。
28.一种数据接口方法,其特征在于,包括以下步骤提供一个具有多个数据存储单元的多端口存储器;将通过第一端口从第一数据总线接收到的数据存储于多个存储单元的第一部分中;通过第二端口处理存储在多个数据存储单元之第一部分中的数据,同时独立地且同时地将通过第一端口从第一数据总线接收到的数据存储于多个存储单元的第二部分中。
29.如权利要求28所述的数据接口方法,其特征在于,还包括以下步骤通过第三数据端口读取存储在多个数据存储单元之第一部分中的经处理的数据,同时通过第二端口独立地且同时地处理存储在多个数据存储单元之第二部分中的数据,且同时独立地且同时地将通过第一端口从第一数据总线接收到的数据存储于多个存储单元的第三部分中。
全文摘要
一种采用三端口存储器的智能数据总线接口,其中三端口存储器具有三个独立的数据端口,它们可以对两个双向数据总线和一个数据处理器同时存取存储在存储器中的数据。两个数据总线和所述处理器与分立的数据端口相连,并且都可用全数据速率独立地访问三端口存储器中的数据。由于采用了三端口存储器,所以不再需要拷贝或移动数据,以对处理器和数据总线存取数据。智能数据总线接口特别适于在任何端口以全速率处理编码/解码、网络协议以及 PCI/SCI桥接等操作,而不会增加主机处理器的负担。
文档编号G06F13/40GK1279785SQ9881138
公开日2001年1月10日 申请日期1998年9月22日 优先权日1997年9月23日
发明者V·林登斯特鲁斯 申请人:依科技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1