系统总线外围总线间最佳数据传送用多总线系统总线桥的制作方法

文档序号:6407902阅读:185来源:国知局
专利名称:系统总线外围总线间最佳数据传送用多总线系统总线桥的制作方法
下面的美国专利申请如果它们被全部公开则在这里被结合作为参考文献申请号为08/068477,申请日为1993年5月28日,题目为“用于多总线计算机系统的直接存贮器存取(DMA)周期逻辑”(按照代理人的备案目录BC9-93010进一步识别);
申请号为08/069253,申请日为1993年5月28日,题目为“多总线计算机系统所涉及应用的仲裁逻辑(按照代理人的备案目录BC9-93-011进一步识别)申请号为08/070134,申请日为1993年5月28日,题目为“在一信息处理系统中用来启动多总线网络的方法和装置”(按照代理人的备案目录BC9-93-011进一步识别);
申请号为08/069230,申请日为1993年5月28日,题目为“在多总线计算机系统中用于外围总线的误差俘获逻辑”(按照申请人的备案目录BC9-93-025进一步识别);
申请号为08/068882,申请日为1993年5月28日,题目为“在一具有一多路传送总线的信息处理系统中用来提供背对背数据传送的方法和装置”(按照申请人的备案目录BC9-93-026进一步识别);和申请号为08/069234,申请日为1993年5月28日,题目为“在一信息处理系统中在不同总线结构之间用来提供准确和完全通讯的方法和装置”(按照申请人的备案目录BC9-93-030进一步识别)。
本发明通常涉及在一多总线计算机环境中用于互连总线的桥,尤其是涉及为了使互连总线的不同数据处理协议同步工作从而在两总线之间实现最佳数据传送效率而插入了一缓冲器的桥。
计算机系统或信息处理系统通常都包括有一条以上的总线,在该系统中的每条总线都有若干装置与其相连,与该总线相连的这些装置通过该总线相互进行局部通讯。例如,一典型的计算机系统包括有与一中央处理单元(CPU)相连接的系统总线或CPU局部总线,通过该总线可使该CPU直接与连接到该系统总线上的其它装置进行通讯。该系统还可包括一个或多个外围总线,这些外围总线将诸如输入/输出装置(I/O)和图形部件之类的外围装置连到该计算机系统上。
通常,系统总线和外围总线使用一组不同的标准协议或规则以在与其相连的不同装置和部件之间进行数据传送。这些协议被指定到该总线之中并称之为该总线的“体系结构”。因此,当数据必须在与外围总线相连的一外围装置和与该系统总线相连的CPU或其它系统部件之间进行传送时,就产生了若干通讯问题。因为不同的总线结构只与一种数据传送有关,由第一总线结构所传送的数据不可能是该接收的第二总线结构所使用或所理解的形式。
因此,需要一种装置去“变换”从一总线结构传送到另外总线结构的数据。这种变换装置通常包含在总线-总线桥(接口)的硬件之中,通过该总线-总线桥可连接两种不同的总线。将一系统总线连接到一外围总线的总线一总线桥通常称之为主桥。因此,该连接一系统总线和一外围总线的主桥包括所有变换在两总线之间的通信数据并确保在该两总线之间所传送的数据可被理解的逻辑和硬件。
为了容许在不同总线的装置之间进行全系统的通讯,总线-总线桥应被设计得使一总线的通讯协议与另外总线的通讯协议相匹配。已知的包含上述内容的总线-总线桥在下面的受让于IBM公司的正在审查之中的专利申请中被批露申请号为07/815992,名为“用于具有双总线结构的计算机系统的总线控制逻辑”;申请号为07/816184,名为“奇偶误差检测和校正”;申请号为07/816204,名为“高速缓冲存贮采听和数据无效技术”;申请号为07/816203,名为“用于具有双总线结构的计算机系统的总线接口逻辑”;申请号为07/816691,名为“用于总线接口单元的双向数据存贮装置”;申请号为07/816693,名为“用于控制总线工作速度的总线接口”;申请号为07/816116,名为“用于具有双总线结构的计算机系统的任意控制逻辑”;以及申请号为07/816698,名为“用于检测在总线至总线接口中地址单元的方法和装置”;所有这些申请均是在1992年1月2日提出的。这些申请所披露装置容许在该系统中与不同总线相连的装置进行全系统的通讯。
但是,这样的桥并不能解决企图将一不相容的系统总线(例如-X86型结构总线)与一利用外围部件互连(PCI)总线结构或类似总线结构的外围总线相同步的固有问题。这样的一个不相容性的例子是使用PCI总线或系统总线来产生称之为顺序字符组传送的一特定数据传送的不同方法。
一顺序地字符组传送是一数据传送,在该数据传送中在该地址段期间提供了一地址并随后出现了几个数据段。在该第一数据段期间,该数据被传送到在该地址段所提供的地址之中或从该地址之中传送出该数据。在接着的数据段期间,该数据传送发生在顺序地相随于在该地址段所提供的地址的各自地址上(以后将该顺序地字符组传送简称为字符级组传送)。
该PCI字符组协议供在任何地址范围中所开始的一无限量数据串的分段之用(当然,假定PCI仲裁原则不会强制该装置启动该字符组去放弃该总线)。相反,该系统总线字符组协议对用于向某些地址边界进行信息组传输的起始地址作出限制并且在一单一的字符组传送中仅容许一定数量的数据段。
因此,该系统总线结构仅允许一四个汉字(DWORD′S)或16字节数据的字符组。
在该系统总线结构以及在下面所阵述的其它结构中的这些限制要求连接一系统总线和-PCI总线的主桥在两条不同总线之间变换数据传送。但是,连接-PCI总线到一系统总线的主桥不仅必须要变换两种不同结构之间的数据,还必须要尽可能有效地执行这种变换。
因此,本发明的一个目的是在一多总线计算机系统中提供一用来将-CPI系统总线和一利用PCI总线结构或具有类似于该PCI总线结构的某些协议的总线结构的总线互连的桥,同时最大限度地发挥在该互连总线之间的该数据传送效率。
根据本发明,在一主桥内部的硬件逻辑将一系统总线连接到使用PCI总线结构的一外围总线或连接到一使用了类似于所提供的PCI的总线结构的外围总线。本发明的硬件使得在该总线之间所完成的数据传送的速率为最佳,同时变换在不同结构的两总线之间所传送的数据。


图1是一信息处理系统的框图;
图2是在一写操作期间由图1所示系统的外围总线所传送的各种信号的一时序图;
图3是在一读操作期间图2的信号的一时序图;
图4是图1所示系统的主桥的接口硬件的一框图;
图5是图4所示接口硬件的定步逻辑的一逻辑线路图;
图6是图5所示定步逻辑的FIFO准备逻辑单元的一逻辑线路图;
图7是图4所示接口硬件的预读取逻辑的一逻辑线路图;
图8是图4所示接口硬件的字符组逻辑的一逻辑线路图。
现在参见图1,通常以10表示的一多总线信息处理系统10包括有(i)通过S-总线(系统总线)16连接到S-总线(系统总线)装置14的一处理器、高速缓冲存贮器和存贮器组成的集合体12和(ii)通过主PCI总线22与系统总线装置中的一主边PCI主桥20相连的主PCI装置18。对该处理器、高速缓冲存贮器和存贮器的集合体12,S-总线装置14,主PCI装置18以及图1中所示的其它部件的详细说明将在下面给出。
该处理器、高速缓冲存贮器和存贮器的集合体12包括有一中央处理器(CPU)24、一自检验电路26、一存贮控制器28、一CPU高速缓冲存贮器30和基本系统存贮器32。在最佳实施例中该CPU24是可由Intel公司购买的商业型号为j486TM的32位微处理器,但该系统10也可采用其它类型的CPU来实施,特别是利用另外的X86型微处理器。当电源功率上升时,该自检验电路26对该CPU24提供一机内自检验(BIST)特性。该自检验电路还控制可被包含在S-总线装置14中的每一个之中的任何自检验特性。
该CPU24通过CPU局部总线34与自检验电路26和存贮控制器28相连,借助于基本系统存贮器总线36,该存贮控制器28与基本系统存贮器32相连。通过基本系统存贮器总线36,该存贮控制器28控制对基本系统存贮器32的读和写操作,这些操作或者通过CPU局部总线34由CPU24来启动或者通过S-总线16由一S-总线装置14来启动。由于该存贮控制器具有可在两条总线上处理操作的能力,所以可通过基本系统存贮器总线36和CPU局部总线34的操作同时地进行处理。S-总线16、基本系统存贮器总线36和CPU局部总线34是32位总线,如同每条典型的总线一样,上述每条总线包括数据、地址和控制信息通道(如图1中所示的“D”、“A”和“C”)。
基本系统存贮器32提供全系统存贮能力并可包括或者非交错或者交错存贮器卡。该CPU高速缓冲存贮器30容许包含在基本系统存贮器32之中或者包含在位于该系统10的另外位置的扩充存贮器之中的信息的短期存贮。例如,这种扩充存贮器可位于在该系统中的外接I/O装置之中。该CPU高速缓冲存贮器30包括随机存取存贮器(RAM,未示出),该RAM用来暂时在存贮由该CPU24频繁地访问的基本系统存贮器32的地址单元。该CPU24直接访问存贮在CPU高速缓冲存贮器30中的信息,反之若访问存贮在基本系统存贮器32中的信息,必须要通过该存贮控制器28的处理。
对基本系统存贮器32的所有访问是通过基本系统存贮器总线36由存贮控制器28来控制的。该存贮控制器启动对该基本系统存贮器32的系统存贮周期,在该周期期间,或者CPU 24或者系统总线装置14中的一个通过存贮控制器28访问该基本系统存贮器。在一指向存贮控制器28的存贮周期期间,该存贮控制器28响应于该存贮周期。但是,如果该存贮周期未指向于该存贮控制器28,则该信息进入S-总线16。如果该存贮控制器28确定它所处理的操作是-I/O周期,则该存贮控制器将该信息扩散到S-总线16,以便由一系统总线装置访问那里。如果该I/O周期被指定用于一系统总线装置,那么该合适的原系统总线装置对该存贮控制器回报一译码命令。如果该I/O操作被指定用于一主PCI装置18,那么该PCI主桥20对该存贮控制器回报一译码命令并将该I/O周期转到该适当的主PCI装置。
一系统时钟组件38向系统总线装置14提供一单一的时钟信号,并向CPU24提供一对时钟信号。在该最佳实施例中,提供给该系统总线的时钟信号工作在33MHz。提供给CPU24的两个信号分别工作在33MHz和66MHz。该CPU24需要两个时钟信号,这是由于CPU24内部工作是在66 MHz,而通过CPU局部总线34通讯则是在33 MHz。
在该处理器,高速缓冲存贮器和存贮器集合体12与该系统总线装置之间的通讯是通过32位S-总线16由该存贮控制器28来处理的。如在图1的最佳实施例所示,连接到该系统总线的还有直接存贮器存取(DMA)控制器40、系统任意控制指针(SACP)42、输入/输出(I/O)控制器44、PCMCIA控制器46,和电源管理控制器48。在希望更进一步改善电源管理控制的情况下,可将一可任选的电源管理控制器50连接到该电源管理控制器48上。提供该S-总线16上的缓冲器52居于该DMA控制器44和该I/O控制器44的中间。但是,如图1所示,它还企图可将除图示之外的其它系统总线装置14连接到该S-总线16。
该PCMCIA控制器46被直接与PCMCIA插板槽54相连。外围I/O装置56可通过缓冲器58与PCMCIA插板槽54相连。该外围I/O装置56通过I/O控制器44被连接。连接到该I/O控制器的是一时刻时钟60和-RAM组件62。该I/O控制器44支持各种端口,包括一鼠标端口64、串行端口66、一并行端口68,和一键盘端口70。
除了在该S-总线16上支持系统总线装置14之外,该系统10还支持一第二高速、高带宽总线,在该最佳实施例中这种总线是该主PCI总线22。在一相对短的时间期间里,PCI总线22能够执行有效的数据传送(高达每秒120兆毕特数据)。该PCI总线能达到这样高水平的性能,部分原因是由于它可直接地连接到其它高速总线上,例如连接到可连接有CPU的系统总线上,因此在与PCI总线相连的装置和与系统总线相连的装置之间可提供快速的数据传送。实际上,诸如某些图形组件控制器之类的一些高集成装置的操作需要通过一诸如PCI总线之类的高性能总线而直接连接到一系统总线。另外,该PCI总线结构不需任何“胶合逻辑”去操作与它相连的外围装置。用于其它总线的胶合逻辑线路通常包括诸如译码器、缓冲器或锁存器之类的各种硬件元件,这些元件被置于外围装置和总线之间。
主PCI总线对33MHz的同步时钟信号起作用,并且通过PCI总线所传输的数据串的长度是32位。在PCI总线上的一32位数据串称之为一双字(DWORD),该双字被分为4字节,每字节为8位数据。由该PCI总线所携带的数据地址信息被多路传送到一信号上。多路传送消除了用于分出地址和数据线的要求另外还在一与其它总线结构相反的PCI总线环境中减少了所要求的信号数量。在PCI总线结构上需要的信号数量是45-47之间,而非多路传送总线所要求的典型的信号数量是它的两倍。因此,由于信号数目的减少,为支持一装置而连接到该PCI总线所需的连接引线的数目也减少相应的数目。PCI结构因而特别适用于高集成度台式计算机系统。
在下面的参考文献中对PCI总线结构的结构和工作提供了更为详细的说明“外围部件互连(PCI)1.0版本说明“1992年6月22日公布;”初级PCI系统设计指南“1992年11月1日公布;”外围部件上互连(PCI)加入插件板/连接器附加物”1992年12月6日公布;和“外围部件互连(PCI)2.0版本说明”1993年4月30日公布,所有这些均由该PCI Special Iureresf Group提供,如果它们能被全部提供则这些参考文献的内容作为说明书的参考。
在系统10中主PCI装置18通过主PCI总线22与其它装置相互通讯。借助于PCI主桥20主PCI装置与驻留在S-总线16上的CPU、高速缓冲存贮器和存贮器集合体12和其它系统总线装置14进行通讯,而PCI主桥20本身也是驻留在系统总线上的一系统总线装置。然后,该PCI主桥20作为S-总线16和主PCI总线22之间的一接口并在这两条总线之间提供一有效地通讯手段,并且任何外围装置均可与这些总线连接。
该PCI主桥20是一低执行时间互连装置,通过该PCI主桥20可使CPU24或其它系统总线装置16直接访问原始PCI装置′18或与其相连的装置。该桥20还提供一容许主PCI装置或与其相连的装置快速并直接访问基本系统存贮器32的高性能通道。另外,该主桥20还提供在该S-总线16和该原始PCI总线22之间需要提供给一接口的所有硬件,这样数据可在这些总线之间传送。
信息处理系统10的另外的构型省去了S-总线16,以便使得主桥20连接PCI总线22并直接与CPU局部总线34相连。在这种配置中,任何的S-总线装置均可连接到CPU局部总线34。因为S-总线16和CPU局部总线34使用相同结构进行操作,所以如下所述在如像最佳实施例的这种另外配置中由本发明所执行的传送特性是相同的。
该主PCI总线22能够支持各种与PCI兼容的装置。如图1所示,这些装置可包括图形控制器72、串行SCS I(小型计算机系统接口)控制器74、将来PCMCIA控制器76、标准I/O总线(即,ISA或MICRO CHANNEL R(“MC-A”))桥78(还称之为一扩充桥)、和PCI副桥80。但是,如图1所示与该主PCI总线22相连的该装置仅仅是实施-PCI总线结构的系统的一个例子,因而所披露的典型的结构配置绝非是对本发明的限制。
图形控制器72通常被提供有以VRAM82形式存在的存贮能力,这种存贮能力使该图形控制器可以缓冲在其内的视频图象,该图形控制器72并可控制任何可由PCI总线结构支持的已知图形组件。该SCSI控制器74用作在与SCSI总线86相连的SCSI装置84和主PCI总线22之间的一接口,并可控制任何可由PCI总线结构支持的SCSI装置。将来PCMCIA控制器76被连接到插件板槽88并对其进行控制。
该标准总线桥78作为在与一标准(即,MC-A或ISA)总线92相连的I/O装置90和主PCI总线22之间的一接口。副PCI装置94通过副PCI总线96被连接到PCI副桥80。许多未辨别出的副PCI装置94可随后被连接到副PCI总线96。该PCI副桥80作为在与付PCI总线96相连的副PCI装置94和主PCI总线22之间的一接口。
在整个计算机系统10中不存在有其它PCI总线的情况下,若干与该PCI总线相兼容的外围装置可安置在该主PCI总线上;或者若干PCI外围装置可同除PCI总线96之外的若干副PCI总线一起连接到主PCI总线22,并通过相同数量的分离,各自的PCI桥80而被连接到主PCI总线22。每条副PCI总线还可有若干通过PCI桥与其相连的附加PCI总线并且这些“第三级”PCI总线可具有以各种组合方式与其相连的进一步的PCI总线。相类似地每条PCI总线具有若干连接其上的PCI装置。两条PCI总线之间的每一连接都必须通过一与桥80等同的PCI桥。
此外,多个等同于PCI主桥20的桥可由S-总线16来驱动。这些主桥的每一个都可具有若干系统10的设计者所希望的任何配置与其相连接的PCI总线、桥和装置。因此,包括有PCI总线结构的系统10的部分可包括若干以各种同等和分级组合安置的总线和PCI外围装置(后面通常称之为PCI网络)。
本发明的PCI主桥20提供了用来互连该CPU局部总线和该PCI总线的装置,以使在该互连总线之间尽可能有效地传送数据。由于这两条总线的通讯协议不同,因而提供了逻辑线路,该逻辑线路提供了一有效的总线-总线接口,这在下面将进一步说明。
图2示出了在与副PCI总线22相连的外围装置的两个连续写周期期间,在该PCI总线22上出现的各种PCI总线信号的时序图。这个外围装置可以是可由-PCI总线驱动的图形控制器72、标准总线桥78或任何其它外围装置。类似地,图2中所示的写周期是典型的PCI总线写周期而并不是唯一对于副PCI总线22的写周期。在该PCI网络中它们可以是在副PCI总线96上或任何其它PCI总线上的写周期。
该时钟信号(CLOCK)提供用于对在该PCI网络上所有通讯进行同步。CLOCK是输入到每个PCI装置和所有PCI桥的信号。CLOCK的同步意味着在PCI结构中的所有通讯信号具有至少一个时钟的持续时间并且任何指令或数据传送越过至少一个时钟间隔而被执行。在图2中的信号由垂直虚线划分成单独的“时钟”或“阶段”。每条虚线表示一时钟持续时间的开始和紧接的前面时钟持续时间的结束。每条线上的信号被采样或在该时钟信号的上升沿具有它们的实际意义。
帧信号(FRAME)被用于任何与该PCI总线相连的PCI桥或外围装置以表明它启动了一次对与该总线相连的另外的PCI桥或外围装置的通讯周期或一次访问启动一访问的外围装置或PCI桥称之为主动装置。被指向进行访问的装置或部件称之为从动装置或目标。FRAME是一负触发信号。因此,如图中时钟2处所示那样当一主动装置驱动该FRAME为低时,一主动装置指示一从装置开始一访问。
起始器准备信号(IRDY)也是负触发信号,该信号指明何时该主动装置准备开始一数据传送。因此,当在一读周期期间它准备接收数据或在一写周期期间向从动装置传送数据时,该主动装置驱动IRDY为低。
目标准备信号(TRDY)被触发为低,该信号指明何时一从动装置准备开始一数据传送。因此,当在一写周期期间它准备接收来自主动装置的数据和在一读周期向该主动装置传送数据时该从动装置驱动TRDY为低。
地址/数据信号(AD)运载被作为一数据传送目标的寄存器的地址和运载在一条线路上被多路传送的数据。当它断定为FRAME时,在一地址段期间,该地址信息由主动装置在AD上驱动。根据在一数据段期间该访问是一写周期还是一读周期,该主动装置或从动装置将分别提供在该地址段之后在AD上所驱动的数据。该地址段是一个时钟的持续时间,并且该数据段是至少一个时钟,但如果该数据传送由于被该PCI主动装置IRDY或被从动装置TRDY认定而延迟则该数据段可多于一个时钟。
命令/字节使能信号(C/BE)在一条线上多路地提供PCI总线指令和字节使能信号。当它认定FRAME和在AD上的地址段期间,一总线命令由该主动装置所认定。该总线命令不是读指令就是写指令,取决于所启动的访问该主动装置的类型。
在AD上的数据传送期间,该字节使能信号呈现在C/BE上。该字节使能信号包括四个毕特。当所有这四个毕特被触发为低时,表明在AD上所传送的所有四个字节或所有32位数据被使能。被使能的数据是正常的、可理解的数据。当四个毕特中的一个是高时,在PCI总线上所传送的四个字节数据中的一个未被使能,这意味着个别字节数据是不可理解的并且将被接收或传送该数据串的装置或部件所忽略。
在如图2所示的单独写操作期间各种PCI总线信号的功能如下的述在第二时钟期间,一主动装置驱动FRAME为低,这意味着该主动装置开始一次对一从动装置的访问。在该第二时钟期间,IRDY和TRDY围绕周期而转动。
这时,主动装置提供在AD线上所瞄准的访问目标的从动装置中该寄存器的地址。同时,在C/BE线上由该主动装置产生一写指令。
进至第三时钟,FRAME未被认定,这表明该访问已完成准备。现在该主动装置获得对该IRDY线的控制并将其驱动为低,表明该主动装置准备向从动装置传送数据。该从动装置也获得对TRDY线的控制并将它触发为低,表明它所译码的地址信号作为在它本身内部人一寄存器的一个地址并且在该寄存器内准备接收数据。因此,在第三时钟期间,在AD线上的数据从该主动装置被传送到在它的被译码的寄存器中的该从动装置。
当该数据被传送时,-C/BE线认定表明该数据是否已被启动的它的字节启动信号。如果该四个毕特中的一个或多个毕特是高,那么在该AD线上相应的数据字节未被启动。
在第五时钟期间,由于另外的写周期开始,所以该时序图重复出现。这个第二写周期可由该相同的主动装置或一不同的主动装置来启动。类似地,该写周期的目标可以是相同的从动装置或一完全不同的从动装置。
为了消除在连接到该PCI总线的各个装置之间发生冲突的危险,每条线在该第二写周期启动之前均要通过一周转周期。对周转周期和冲突全面的解释,可见与此同时申请并转让给IBM公司的名为“在一具有多总线的信息处理系统中用来提供背对背数据传送”的未审定申请。
现在具体的参见图3,图3示出了一读周期和另一读周期开始的时序图。在时钟2期间,该主动装置认定FRAME为低。因为这是一单一的数据阶段传送,所以在时钟2期间仅对一时钟信号FRAME保持为低。在时钟2期间,该主动装置还向AD上供给地址信息并将一读指令给到该C/BE线上。
在第三时钟时序,由于在第四时钟期间该从动装置要控制该AD线信号以提供该主动装置需要读出的数据,所以该AD线必须进入一周转周期。为了消除在该AD线上主动装置和从动装置之间的冲突,这个周转周期是必须的。在时钟3期间该主动装置认定IRDY为低则发出准备读出该所需数据的信号。在第三时钟信号期间,该主动装置还认定在该C/BE线上的字节使能信号。
在第四时钟信号期间,该从动装置提供在AD线上的数据并认定TRDY。在该C/BE线上该字节使能信号仍被认定。因为该IRDY信号在该第四时钟中为低,所以被读出的数据从该从动装置传送到该主动装置。
当一与PCI总线相连的主动装置需要向一与一系统或CPU局部总线相连的部件或装置传送数据时,必须采用两步步骤。(例如像S-总线16那样的系统总线和CPU局部总线二者均付合X86型总线结构,因而在后面将其称之为CPU局部总线结构)在该第一步期间,将该PCI总线连接到CPU局部总线的主桥是一在该PCI总线上用于一数据传送的从动装置。对于第二步来说,该主桥变成在CPU局部总线上用于一读或写周期的一主动装置并且被作为数据传送目标的装置或部件是一用于这种特定数据处的从动装置。
例如,如果图形控制器72把一用于DMA控制器40的写周期作为目标,那么PCI主桥20变为一在主PCI总线22上用于一写周期的从动装置。在该写周期期间被写入的数据然后被传送到主桥20。随着DMA控制器40作为该从动装置或该写周期的目标,主桥20随后变为用于在该S-总线16上的一写周期的主动装置。在该S-总线16上的写周期期间该数据再次从主桥20传送到DMA控制器40。在一类似两步步骤的读周期操作中,该主桥20是一在PCI总线22上的从动装置,并随后变成主动装置去完成在该S-总线16上的数据传送。
另外,如果在S-总线16上一主动装置向在PCI总线22上的一装置启动一数据传送,那么它必须首选使用主桥20作为一从动装置。然后该主桥20变为主动装置用来在该PCI总线22上进行数据传送。
在与该PCI网络中的PCI桥80下面的PCI总线相连的装置和与该CPU局部总线34或S-总线16相连的部件之间的数据传送必须要通过该PCI网络来向共同一该网络连接的PCI桥和从该PCI桥执行连续数据传送来完成该数据传送。如果该特定传送是一写周期,一旦PCI桥80具有被传送的数据,在PCI桥80在该PCI总线22上被用作一主动装置并且主桥20在该PCI总线22上是一从动装置和在该S-总线16上是一主动装置的情况下,则利用上述的两步步骤来完成数据传送。
在S-总线16和PCI总线22之间的数据传送必须以两步来完成是由于它们具有不同的总线结构。在该CPU局部总线结构中,数据和地址信息在该PCI总线结构中不会被多路传送;它们是在单独的线上被传送。在这些线上的数据和地址信息串其长度为32位(4字节)。
该CPU局部总线结构具有一字节使能线,该字节使能线执行在PCI总线结构中该字节使能信号的相同功能。因此,在该CPU局部总线结构中该字节使能信号的长度是4位并表明在该数据线上该数据和一特定字节或者被使能或者未被使能(被中止)。
该CPU局部总线34和S-总线16使用来自PCI总线22的CLOCK信号作为定时信号。在该CPU局部总线34和S-总线16上的时钟信号的持续间隔称之为总线周期。
和PCI总线结构不同,CPU局部总线34的数据和地址信息在单独的线上被传送。因此,一旦作为一数据传送目标的该从动装置响应在该地址线上所传送的地址时,该数据传送可在该CPU局部总线上在一个总线周期里完成。在几个32位数据串对连续地址的一字符组传送期间,一旦该从动装置响应于第一传送时,每个接着发生的数据传送可在一单一的总线周期里完成。在一数据传送期间,该字节使能线在该CPU局部总线上产生该字字节使能信号。
参见图2,如果在时钟2至4所图示的写周期是针对于与该S-总线16相连的部件,那么该主桥20是针对该PCI写周期的从动装置。因而,响应于在该第二时钟中所传送的地址主桥20接收在该第三时钟内在它内部寄存器中的一个寄存器中传送的数据。
然后,一旦对S-总线16给予控制,则起主动装置作用的该主桥20在S-总线16上产生一写周期。在第一总线周期期间,该主桥20传送相同的地址信息,并在该PCI写周期期间将所接收的字节使能信号送入在该S-总线16上的它们各自的线上。该适当的从动装置响应于该地址信息并且在该响应之后的下一总线周期期间该数据被传送。
参见图4,图4示出了该逻辑线路100的一方框图,给出了该PCI主桥20的部分形式,该PCI主桥提供了在PCI总线22和S-总线16之间的总线一总线接口装置。逻辑线路100包括(i)先入先出(FIFO)缓冲器逻辑线路102;(ii)用来将S-总线16与FIFO缓冲器逻辑线路102接合的S-总线接口逻辑线路104;和(iii)用来将主PCI总线22与该FIFO缓冲器逻辑线路102相接合的PCI总线接口逻辑线路106。
FIFO缓冲器逻辑102包括一先入先出缓冲器(FIFO)(未示出),它可存贮16位(4DWORD)数据串。该FIFO能够从S-总线16予读出数据并能够从PCI总线22数据后写入数据到其中。该FIFO予读出数据予料一读出字符组传送将从连续地址读出数据,并且因而在启动传送所需要的特定的主动装置需要读出数据之前从这些地址“予读出”该数据。在一来自PCI主动装置写入字符组传送期间,当该FIFO从连续地址接收数据时出现后写入,并且因而在该主桥将它传送到与S-总线16相连的从动装置之前从该主动装置“后写入”该数据。例如在一双字(DWPRD)交错结构或往复转换工作结构中可实施该FIFO。对于FIFO和读出于检出数据和写入通过数据的工作的完整说明在上面所介绍的受让予IBM公司的未审定专利申请中已经给出。
S-总线接口逻辑线路104响应于来自PCI总线接口逻辑线路106的请求读出或予读出来自S-总线16进入FIFO102之中的数据。接口逻辑104还响应于FIFO或PCI总线接口逻辑线路106所提供的状态信息从该FIFO将数据写入S-总线16。
PCI总线接口逻辑线路响应以S-总线16为目标的PCI总线周期。对于读周期,它要求S-总线读出或予读出来自S-总线16的数据并按照由该FIFO所提供的状态信息输出来自该FIFO的所需数据。对于写周期,PCI总线接口逻辑线路106容许按照来自该FIFO的状态信息将数据写入或后写入该FIFO。
当数据从一与PCI总线22相连的装置输入该FIFO时,PCI接口逻辑线路106必须监视该FIFO的状态以保证新数据没有越过已经在该FIFO中的其它有效数据串而被写入。如果该FIFO的所有四个DWORDS已经充满了数据,那么更多的数据就不能输入其内。
在由PCI总线22所启动的后写入或者予读出字付组传送期间,当该分别被后写入或被予读出的数据装满该FIFO时,该字付组传送必须终止或有效数据将被溢出该FIFO。一种可用来终止该字付组传送的简单方法是迫使该装置停止向该FIFO提供数据,或者从该FIFO读出数据,以放弃它对PCI总线22的访问。这就有效地将装置从主桥20断开而终止了该数据传送。
但是,一旦一装置作出了它对PCI总线22的访问,由于PCI总线结构仲裁准则,对于一个在PCI总线22上的5个时钟的最小期限来说它不可能恢复对该PCI总线22的访问。此外,对于一不定的时间期限来说该装置不可能恢复对该PCI总线22的控制。因此,如果该字付组传送来自与PCI总线22相连的装置并且以长度为几个数据阶段的S-总线16作为目标,那么在该传送可被完成之前,该装置将被迫从该主桥20几次断开。完成该传送所需的时间期限将是不确定的,并且无疑会是长的。
另外的可以用以保证数据不会额外写入该FIFO的方法至今尚未公知,当该FIFO已装满时它认定在该PCI总线22上的TRDY信号,同时容许与该PCI总线22相连的装置启动该数据传送(“PCI主动装置”)以保持它对该PCI总线22的访问。当在该FIFO中的存贮空间变为可利用时,TRDY被重新认定并且该字付组成传送可被完成。这种方法消除了终止该启动装置对PCI总线22的访问的问题。因而,可完成从PDI总线22到S-总线16的字符组传送的,其效率远高于上面讨论的断开法。另外,由于当在FIFO中存贮空间变为有效时数据立即被传送到该FIFO中,因而所需完成该数据传送的时间是最佳的。这种方法由下面所述的本发明的基本逻辑线路来提供。
现在参见图5,图5示出了一定步逻辑线路110的线路图。定步逻辑线路110是在PCI主桥20中的硬件逻辑线路,它包括PCI总线接口逻辑线路106的一部分。定步逻辑线路110的主要用途是重新认定和认定在PCI总线22上的TRDY信号,以便从PCI总线22输入到该FIFO的数据的定步可控制在一最佳形式上。
如上所述,该FIFO能够暂时地存贮16个字节或4DWORD的数据。(在该FIFO中DWORD的存贮空间通常将称之为一“FIFO的DWORD”)。该FIFO中的每个DWORD被赋予32位PCI地址信号的位数2和3的四个二进制值中的一个。位数2和3是一PCI地址的最后有效地址位,为了在该FIFO中选择-DWORD,位数2和3是必须的(位数0和1没有被该PCI结构用于PCI存贮器地址)。被赋予该FIFO的四个连续的DWORD的位数2和3的二进制值是00,01,10和11;分别表示+进制的0,1,2和3。用于当前PCI数据段的位数2和3的值被输入到在标记有PCI-A[2]和[3]的线上的定步逻辑线路110。
该PCI-A线被加到两个4输入端的多路转换器112和114。多路转换器112和114的每一个输入端相应于在PCI-A线上的四个可能信号值中的一个,并且因而还相应于FIFO的四个DWORDS中的一个。多路转换器112和114选择相应于在该PCI-A上的当前值并输出来自这个输入端的当前信号。
输入到多路转换器114的是相应于在该FIFO上的四个DWORD数据的四个PCI字节使能信号。如果在一特定的DWORD中不存在有数据,那么用于这个DWORD的该字节使能信号将是1111,它表明在该DWORD没有任何字节包含被使能的数据。用于FIFO的四个DWORD该字节使能信号被存贮在主桥20的硬件(未示出)中的锁存寄存器中并被称之为“被锁存的字节有效信号。将该被锁存的字节有效信号传送到多路转换器114的输入端的各条线被标记为DWO-BV,DWl-BV,BW2-BV和DW3-BV并分别相应于FIFO的DWORDO,DWORD 1,DWORD 2和DWORD 3。
每个被锁存的字节有效信号被输入到由四个4输入端“与”门116组成的与门组中相应的一个与门和由四个4输入端“或非”门118组成的“或非”门组中的一个相应或门。例如,DWO-BV信号被输入到组116的ANDO和组118的NORO。组116和118的“与”门和“或非”门分别在每个4位被锁存的字节有效信号上执行逻辑操作。
来自组116的四个“与”门中的每个“与”门的输出被输入到多路转换器112的相应四个输入端中的一个并指明对应于这些输出的该FIFO的DWORD是空的还是不空的。例如,ANDO的输出被连接到相应于该FIFO的DWORDO的多路转换器112的输入。
组118的四个“或非”门的每一个“或非”门的输出表明对应于这些输出的该FIFO的DWORD是被使能数据充满的还是未被充满的。例如,当NORO的输出是二进制高时,它表明该FIFO的DWORD是满的。这些信号被输出到包括主桥20的新剩硬件。
多路转换器112的输出被连接到一个2输入端“与”门(AND4)的一输入端。AND4的另外输入端被连接有一信号W-CYC,如果来自PCI总线22的当前数据传送是一写操作并且在一读数据传送期间始终为低时,该信号W-CYC总是二进制高位。
多路转换器114的输出被连接到2输入端比较器120的一输入端。来自PCI总线22的C/BE线的字节使能信号被连接到比较器120的另一输入端。比较器120将锁存FIFO的一特定DWORD的字节有效信号的多路转换器114的输出与当前读传送的字节使能信号进行比较。这些字节使能信号是由产生读传送的PCI主动装置所产生的。如果来自该多路转换器114的信号小于或等于该字节使能信号,那么在一输出线122上该比较器120产生一二进制高位信号。
输出线122被连接到一个2输入端“与”门(AND5)的一输入端。AND5的另外输入端被连接到一标为R-CYC的信号。在一读数据传送期间R-CYC总是一二进制高位并且在一写数据传送期间R-CYC总是一低位。
AND4和AND5的输出端的每一端与一个2输入端“或”门(OR4)的一个输入端相连。OR4的输出被连到一个工输入端“与”门(AND6)的一输入端。AND6的另一输入端接收来自-FIFO准备逻辑块124的信号FIFO-AVLBL。当该FIFO对于由该PCI主动装置启动的现行数据传送是可利用时,FIFO准备逻辑块124产生一用于FIFO-AVLBL的高位信号。
与门6的输出连接到多输入端与非门126。到与非门126的其它输入端连接主桥20内的其它信号,主桥20可以影响PCI总线上TRDY信号的确立或重新确立。这些信号可以是PCI主桥20的目标异常终止或者是PCI主桥20的目标分离,后者意味着主桥20不希望使另外的数据传输发生。
与非门126的输出就是连接到PCI总线22的TRDY线上的所述TRDY信号。当包括与门6在内的所有输入给与非门的信号均为2进制高电平时,与非门126的输出将变为低电平。这样,TRDY信号将被激活为低电平,这些信号被传输给PCI总线22上的一个设备以启动所述的数据传输,从而使得所述数据能够在当前PCI数据段期间被写入的所述的FIFO或从FIFO中读出。
组116中四与门的输出端就是4输入端与门(与门7)的全部输入端,并输出给包括主桥20在内有硬件的其余部份。如上所述,当所有的这四个信号均为高电平时,则向桥20的硬件表明所述FIFO的特定DWDORD完全是空的。与门7的输出被标记为FIFO-EMPTtY。与门7的输出被输入给FIFO准备逻辑部件124。
下面来参考图6,该图示出了FIFO准备逻辑部件124。来自与门6的FIFO-EMPtY信号被连接到α输入端与门128的一个输入端上,该与门128的另一个输入端连接有信号S-DATA。所述的S-DATA信号是由主桥20内的公知硬件产生的。当所述信号S-DATA为二进制高电平时,它表明由连接到PCI总线22上的主动装置所启动的数据传输直接指向连接到S-总线16上的一个设备或一个部件,并且主桥20处于这样一种状态,在这种状态下,它能够传送所述的数据传输。
反相器130以与与门128相并连的方式连接到S-DATA。与门128和反相器130的输出作为控制信号连接到了输入端多路转换器132。所述的了输入端多路转换器132根据来自与门128和反相器130的控制信号值在其输出端上选择其3个输入之一进行传送。当来自与门128的输出信号为高电平而来自反相器130的输出为低电平时,那么,所述的多路转换器132将输出其连接到2进制高电平的第一输入。在不论与门128的输出是什么而仅S-DATA为低电平时,所述的多路转换器132将输出其连接到二进制低电平值的第二输入。在反相器130和与门128的输出均为低电平的情况下,所述多路转换器132将输出连接到锁存电路134输出端的第三输入。
锁存电路134的输入端连接到所述多路转换器132的输出端。这样,所述多路转换器132的输出信号通过锁存电路134被反馈给所述多路转换器132的第三输入端。所述多路转换器132的输出信号还是所述的FLFO-AVLBL信号,该信号被传送给定步逻辑110的与门6的一个输入端。
定步逻辑110根据由PCI主动装置所启动的字符组传输是写入操作还是读出操作而进行不同的操作。在字符组写传输期间的操作中,通过在PCI总线22的AD线上的某个范围内驱动一个地址,所述的PCI主动装置启动一个以S总线为目标的字符组写传输。主桥20响应利用驱动S-DATA成为一个高电平信号的这个地址。在这点上,假设FLFO是空的,那么,所有锁存的字节有效信号的值均为逻辑“1”,从而使得在组116中每个与门的输出均为高,这些高电平将驱动与门7的输出,即FIFO-EMPTY变为高电平。
由于S-DATA和FIFO-EMPTY均为高电平,所以,反相器130的输出和与门128的输出分别为低和高电平。这就使得将在多路转换器132的输出端上被驱动的一个高电平信号作为FIFO-AVLBL。该高电平信号也被锁存在锁存电路134中长达一个PCI时钟信号之久。
对于这个例子来说,假设所述字符组传输第一地址的第二位和第三位为二进制值“00”,然而,它们还具有如上所述其它三种可能值中的任一种。如上所述,由于DWO-BV将具有其所有位都为“1”的值,这将使得多路转换器112选择将要在其输出端上进行传输的与门0的输出,而该输出信号将是一个二进制高电平信号。
除了W-CYC的高电平值以外,多路转换器112的高电平输出也要输入给与门4。因此,与门4产生一个高电平输出,而该高电平又使或门4产生一个高电平输出。由于FIFO-AVLBL为高电平并且来自或门4的输出为高电平,所以,与门6的输出变成高电平。
如果当与门6的输出变成高电平的时候到达与非门126的其它TRDY状态输入为高电平,那么,与非门126将使得TRDY变成低电平。这就使得数据从主动装置中被写入FIFO的DWORDo中。
由于这是一个顺序字符组传输并且数据是被指派写入所述FlFO的,所以,与第二数据周期相关的所述的地址的第二位和第三位由下面将要讨论的主桥20中的其它硬件增值为“01”并且所述FlFO的DWORD1那个周期期间被用于接收所述数据。因此,多路传换器112选择与门1的输出进行传输以作为它自己的输出。这样,与门1和多路转换器112的输出均为高电平。这就使得与门4和或门4在其各自的输出端上产生高电平。
由于DWO-BV将由4位二进制值组成,而在这4位二进值中至少有一位为“0”用以指示在FlFO的DWORDo中数据的存在,所以,与第二数据周期相关的与门0现在将具有一个低电平输出。因此,由于所述的FlFO不再完全是空的了,所以,来自与门7的FlFO-EMPTY信号将转变为低电平。
除了S-DATA以外,FIFO-EMPTY信号被输入给与门128,该信号在整个字符组传输期间始终保持为高电平。由于FlFO-EMPTY现在为低电平,所以,与门128产生低电平输出。这样,从与门128和反相器130输出给多路转换器132的二进制控制住输入信号均为低电平信号,这就使得多路转换器132选择来自锁存电路134的反馈输入作为其所输出的FlFO-AVLBL,该信号为二进制高电平。
由于FlFO-AVLBL和或门4的输出二者皆为高电平,所以与门6的输出为高电平。这就使得与非门126驱动TRDY变成低电平并使得数据在所述第二数据段期间从所述的主动装置写入所述FlFo的DWORD1中。
通过使所述地址的第二位和第三位增值以使处理本身重复进行,直到所述FlFO的每一个DWORD都含有数据为止。如果连接到S-总线16的从动装置(“从动装置”或“S-总线从动装置”)变得适用于去完成传输,那么,数据将在自DWORDo开始的FlFO以外进行传输。假设在PCI主动装置试图向它们指派写入新的数据以前所述FlFO的多个DWORD是空的,那么TRDY将保持低电平值以允许所述新的数据被写入FlFO。因此,在所述主动装置试图向已经含有有效数据的DWROD指派写入数据以前,数据将被连续地输出给所述FlFO。由于所述的S-总线16一次只能充满数据的16个字节随后必须中止,所以在多路数据段字符组传输过程中,这种情形可能会发生多次。这样,连接到S-总线16的从动装置可以使FlFO变空的速度低于由PCI总线上的主动装置利用数据对其充填的速度。
当所述主动装置试图向一个已经含有效数据的DWORD(例如是DWORDO)指派写入数据时,来自组16的输出,特别是与门0的输出将变为低电平。多路转换器112选择该低电平输入作为其输出端的输出,该输出最终引起与非门126的一个低电平输入。这就重新确立了TRDY为高电平,从而在当前PCI时钟信号期间避免了所述主机完成所述的数据传输。
在连续的PCI时钟期间内,TRDY被不断地确立,直到在DWORDO中的数据被输出给连接到S-总线16上的从动装置为止。当这种情况发生时,DWO-BV的值又再一次变为全部逻辑“l”。因此,与门1通过多路转换器112,与门4、或门4,与门6产生一个到与非门126的高电平信号,借此使得与非门6将TRDY信号转换为低电平,从而允许所述数据写入到DWORDO中这样,当在所述的FIFo中的DWORD变得适用时,通过直接激活TRDY,定步逻辑110选择从PCI总线022向所述FIFO指派写入数据的最佳参数条件。
这些TRDY确立和必须的重新确立在整个字符组传输过程中一直持续下去,直到通过重新确立FRAME而使主动装置发出信号表明所述字符组传输完成为止。当发生这种情形时,通过PCI桥20中的硬件将S-DATA转变为低电平。当S-DATA变为低电平时,多路转换器132驱动FIFO-AVLBL变为低电平,从而使得与门6的输出变成低电平并且TRDY被重新确立为高电平。
在由连接到PCI总线22并连接于S-总线16的从动装置为目标的主动装置启动的字符组读传输期间,主桥20从所述的从动装置中予先读取数据到所述FIFO。当所述PCI主动装置试图将一个特定地址读出的数据存在于所述FIFO相应于所述地址的第二位和第三位的DWORD中时,TRDY被确立。定步逻辑110还提供这种确立TRDY的功能以用于由PCI总线22所启动的字符组读传输。
在所述的FIFO准备逻辑124用于写入传输时,它的作用方式与读出传输相同。因此,当由所述的PCI主动装置启动读出传输以用于S-总线16并且所述的FIFO是空的时,S-DATA变成高电平,该高电平使得FIFO-AVLBL在整个数据传输期间一直为高电平。
根据作为当前PCI数据段目标的所述地址的第二位和第三位,多路转换器114将输出一个锁存的字节有效信号以用于FlFO中相应于这些位号的特定DWORDo。例如,假设一个读出分段传输的初始数据传输是以其第二位和第三位等于“00”的这样一个地址为目标的,那么多路转换器114将在其输出端上选择DWO-BV进行输出。
多路转换器114的输出被输入给比较器120,在比较器120中,该输出与当前PCI数据周期的字节使能信号比较。若所述的比较器确定多路转换器114的输出小于或等于所述字节使能信号,那么它将输出一个高电平信号给与门5作为输入信号。当发生这种情形时,所述主动装置试图将从所述从动装置中读出的数据存在于所述FIFO的DWORDo之中,随后,TRDY将被确立。
因此,来自比较器120的高电平信号经过与门5,或门4和与门6到达与非门126,并由该与非门126确立TYDY信号,同时,由所述PCI主动装置从DWORDo中读出数据。
如果DWO-BV大于字节使能信号,那么在DWoRDo中就不存在有所需的数据。这样,比较器120将输出低电平,并且不确立TRDY信号。然而,一旦由所述主动装置所查寻的数据被从S-总线16输入给DWORDo,比较器120的输出就变成高电平,从而允许TRDY被确立为低电平。
这种处理通过如上所述的增值所述地址值的第二位和第三位不断重复,直到所述的字符组传输完成为止。当发生这种情形时,桥20驱动S-DATA为低电平,该低电平使得TRDY被重新确立为高电平。
下面参考图7,该图示出了S-总线16接口逻辑104的予读取逻辑150。予读取逻辑150根据来自PCI主动装置总线命令予测在什么时候数据应当被从连接到S-总线16的一个从动装置中予读取到的述FIFO中。因此,只有在由一个PCI主动装置启动的字符组读出传输时,予读取逻辑150才直接“取”数据,这就使得FIFO的使用最优化,并使得完成字符组读传输所需的时间最优化。
予读取逻辑150包括一个3端输入与门152,该与门的三个输入端分别连接到PCI总线22C/BE线的第三位,第二位和第0位。在第0位被输入给与门152之前,它的值是反相的。因此,在所述PCI总线22的C/BE线第二位和第三位上的高电平二进制值和在第0位上的低电平二进制值将使得与门152的输出成为高电平。
在命令周期期间内这三个位的二进制的组合表明启动所述阅读数据传输的主动装置在启动一个字符组读数据传输,并且这些数据应当被予行先读入所述FIFO,以使得总的数据传输速度最佳化。由这些位值相结合所表示的特定PCI总线命令是“Memory Long”和Mlmory Read Multiple”。
与门152的输出端连接到三输入端多路转换器154的第一输入端。多路转换器154的第二输入端接二进制低电平值。多路转换器154的第三输入端通过锁存电路156连接到它自己的输出端。
多路转换器154根据通过主桥20的硬件所接收并用作控制信号的各PCI总线信号的状态来选择其输入之一作为其输出信号。在一个PCI命令和地址段期间,多路转换器154选择其第一输入(与门152的输出)作为其输出。在所述PCI总线22上的数据段期间,多路转换器154选择其第三输入作为其输出。当由所述PCI主动装置所启动的阅读段传输被完成,这就意味着所有必须的数据都已被所述主动装置读出,那么,多路转换器154就要选择它的第二输入、即二进制低电平值作为它的输出。
多路转换器154的输出不仅连接到锁存电路156,而且还连接到与门158的一个输入端。与门158的另一个输入连接到一个信号,即LB-HIT上,该信号是由桥20的硬件产生的。当主桥20译码与由PCI主动装置产生的数据传输相关的所述地址并且确定它是以连接到S-总线16的从动装置为目标时,LB-HIT变成高电平。
与门158的输出是一个READ-PFTCH信号,该信号被传送给主桥20的其它硬件。当READ-PFTCH为二进制高电平时,它向主桥20的其它硬件指示应当通过连接到PCI总线22上的一个主动装置将数据予先读入所述FIFO。
与门158的输出也被输入给锁存电路160并被反相,同时还要输入给与门162。锁存电路160的输出被连接到与门162的另一个输入端。
锁存电路160和156保持输入给它们的值达一个PCI时钟信号间隔,随后在下一个连续的时钟信号期间内将它们输出。因此,当与门156的输出保持为高电平的时间持续几个时钟间隔并随后在一个时钟信号期间内变为低电平并保持该低电平达若干个时钟信号周期时,锁存电路160将在与门158的输出为低电平的同时保持高电平信号达一个时钟间隔。因此,对于一个时钟信号间隔而言,与门162的输出将“中止”高电平随后重新变为低电平。
作为一个控制信号,与门162的输出被传送给3输入端多路转换器164。多路转换器164具有另一个由S-总线16接口逻辑104所产生的控制输入信号BUSY。当BVSY为高电平时,它表示所述数据仍然被在S-总线16上进行予先读取,以响应由所述PCI主动装置启动的字符组读传输。
当BUSY为高电平并且与门162的输出脉动为高电平时,多路转换器164输出其连接到二进制高电平信号的第一输入。当只有BUSY为高电平时,多路转换器164选择通过锁存电路166连接到该多路转换器164的输出端以作为反馈信号的第三输入作为它的输出。当BUSY为低电平时,多路转换器164将输出连接到二进制低电平的第二输入端。
多路转换器164的输出端连接到与门168的一个输入端。与门168的另一个输入是一个由S-总线16接口逻辑104产生的信号LAST-RDY的经反相的二进制值。在最后的数据串被从连接到S-总线16的从动装置予先读入所述FIFO以前,信号LAST-RDY一直保持为二进制高电平。当所述的READ-PFTCH信号变成低电平时,从所述从动装置中所予先读取的最后数据串是由接口逻辑104确定的。
与门168的输出被连接到锁存电路170。锁存电路170的输出是一个CLEAR-FIFO信号。当CLEAR-FIFO信号为高电平时,它通知FIFO逻辑102使所述FIFO的DWORD清零并将所述的字节有效信号全部置为二进制的“1”。因此,所述的FIFO被排空并为下次的数据传输作好准备。
在操作过程中,PCI主动装置通过在所述PCI总线22的C/BE线上确立一个存贮器读出长命令或存贮器读出多命令从而在一个PCI命令/地址段期间启动一个字符组读传输。在同一个命令/地址段期间,所述主动装置在PCI总线22的所述AD线上传输一个存贮器地址,该存贮器地址指向连接到S-总线16的一个从动装置。
紧接着,PCI总线22的C/BE线的第0、第2和第3位被输入给与门152。这些位的二进制分别为0、1和1。它们表示存贮器读出长或存贮器读出多PCI总线命令。这些命令表示当前的读出数据传输是一个字符组传输。在所述C/BE线的第0位的低电平值输入给与门152以前,它被反相。这样,所产生的与门152的输出是一个二进制高电平值,该高电平值被输入给多路转换器154的第一输入端。
由于当前PCI段是一个地址段,所以,多路转换器154选择来自与门152并位于其第一输入端的高电平信号作为其输出信号。在所述地址段之后的连续PCI数据段期间,多路转换器154选择其第三、即反馈输入作为其输出,由于馈存电路156的关系,上述输出将总是处于高电平值状态。
当主桥20对由所述PCI主动装置所确立的地址进行译码时,主要确定所述的数据传输是以连接到S-总线16上的一个从动装置为目标的。因此,主桥20的硬件驱动信号LB-HIT为高电平信号。
来自多路转换器154的高电平信号和LB-HIT被输入给与门158,从而使得它产生一个与所述信号READ-PFTCH相关的高电平输出。当所述的READ-PFTCH信号变成高电平时,它通知所述的FIFO缓冲器逻辑102和S-总线16接口逻辑104开始从所述的从动装置中予取数据到所述的FIFO。
在所述的PCI主动装置表示它已经通过将所述的FRAME信号确立为高电平而从所述从动装置(通过所述FIFo)中读出了全部所需数据以前,READ-PFTCH将一直保持为高电平。当发生这种情形时,多路转换器154将选择呈二进制低电平状态的其第二输入作为其输出。这样,与门158将产生一个与READ-PFTCH相关的低电平信号,该信号通知S-总线16接口逻辑104停止向所述FIFO予读入数据。
当通过确立FRAME为高电平从而使所述PCI主动装置停止数据传输时,数据可能已经被予先读入所述的FIFO,而这是不需要的,并且还没有被所述主动装置所阅读。在S-总线16和PCI总线22之间的另外的数据传输能够开始以前,任一剩余的数据必须从所述FIFO中加以清除成排空。读出予取逻辑150的剩余逻辑执行这些功能。
在与门158开始产生一个与READ-PFTCH相关的低电平值的时钟信号期间,所述的低电平值被反相并输入给与门162。在该时钟信号期间,锁存电路160将同时输出一个高电平二进制值,该高电平二进制值将使先前的时钟信号不能输出。因此,对于READ-PFTCH变成低电平的一个时钟信号期间而言,与门162脉动为高电平输出。
除了所述的BUSY信号以外,这个来自与门162的脉动高电平输出也被作为一个控制信号输入给多路转换器164。由于所述的S-总线16将处于从所述从动装置中完成最后予取数据的处理阶段,所以在该时钟信号期间,BUSY信号也将是高电平。因此,多路转换器164将驱动连接到其第一输入端的高电平信号作为它的输出。
一旦作为当前数据传输的结果,所述的S-总线16处于忙碌状态从而完成由读出予取逻辑150所启动的读出予取,BUSY将保持高电平状态。这将使得多路转换器164去选择由于锁存电路166而处于高电平信号状态的反馈输入。
除了LAST-RDY信号以外,这个高电平信号也被输入给与门168。当LAST-RDY信号变成低电平,从而表示向所述FIFO的最及读出予取已经完成时,与门168将向锁存电路170输出一个高电平信号。锁存电路170在其输出端保持该高电平信号以作为CLEAR-FIFO信号。所述的CLEAR-FIFO信号使FIFO缓冲器逻辑去清零未使用的FIFO,予取数据并将所有锁存的字节有效信号全部返回为二进制“1”。
因此,读出予取逻辑150就能够灵活地或者是仅当由一个连接到所述PCI总线22上的主动装置启动一个读出分段传输时在所述S-总线16上启动一个读出予取操作。读出予取逻辑150还能以一个最佳的方式将所述的FIFO清零,从而使所述的数据传输能够尽可能快地通过所述FIFO来加以完成。
除了读出予取逻辑150以及在S-总线16和PCI总线22之间的最优和转移通信以外,主桥20和特定S-总线16的接口逻辑104必须包括有硬件以调节涉及到字符组传输的各总线构造的两个差异。如上所述,这些差异之一就是所述PCI总线的构造能够连续地产生从任一地址所起始的数据传输,而所述的CPU局部总线/系统总线构造仅能在某个地址上开始一个连续的字符组传输。
在CPU局部总线和PCI总线结构之间有关分段传输的另一个区别是所述的CPU局部总线或系统总线不能传输相互不连接的字符组数据,而PCI总线却具有这种能力。当被它们各自的字节使能信号所使能的二个或多路字节的数据被一个或多个未被使能字节数据所隔开时就会产生相互之间不连接的数据。当与任意一个正被传输的数据串相关的任意一个或所有字节使能信号指出所述的数据未被使能时,在一个字符组传输期间就会产生相互不连接的数据。例如,假如一个四数据串中任一个所述字节使能信号中的任一个是一个二进制高电平值(其值为“1”),那么,该四数据串的字符组传输将是非连接的。如上所述,在一个字符组传输中的不连接数据在CPU局部总线34和S-总线16的总线结构中是不可能传输的。
下面参考图8,该图示出了系统总线接口逻辑104的字符组逻辑200。字符组逻辑200使得在PCI总线22和S-总线16之间含有不连接数据字符组传输的速度最佳。通过检测以S-总线16为目标的不连接数据的字符组传输、将所述的字符组传输转换成传输所述不连接数据所需的任一数量的单个数据传输以及将剩余的连续数据进行分段,所述的字符组逻辑200执行上述的最佳操作。因此,本发明评论在含有不连接数据的字符组传输中正在被传输的所有数据,并且确定单一传输和分段传输的最佳组合,这种最佳组合将尽可能有效地传送数据。字符组逻辑200还能保证任意一个由PCI主动装置所启动的字符组传输开始于一个在S-总线16的结构限制内的正确地址边界,同时使在S-总线16上的所有字符组传输速度最佳。
字符组逻辑200在三输入端多路转换器202的第一输入端接收一个标记为PCI-AD[X2]的输入信号。PCI-AD[X”2]包括所述PCI地址信号的较低位数,所述的PCI地址信号是在所述PCI地址段由PCI主动装置在PCI总线22上进行传送的,用以启动一个以S-总线16为目标的字符组传输。包含有PCI-AD[X2]在内的PCI地址信号的位号是位号X到2(2是所述地址信号的最低序号位)。位号X是由系统设计者所选择的位号,其依据是设计者所能允许的在PCI总线上以任意一种PCI/系统总线数据传输方式进行传输所能分开的PCI数据段的数量。根据设计者所能允许的任意一种PCI主动装置完成对所述PCI总线进行存取所需的时间量或由于设计原因所使用的其它系统结构所需之时间量,所述的设计者设定这个最大值。
如下面所述,如果字符组逻辑使这个地址递增,那么在初始PCI地址信号中,位序号高于位序号X的位号将被替换,随后,在PCI总线22上数据段的最大号被超过。当出现这种情形时,所述的PCI接口逻辑106将启动一个目标中止,该目标中止信号在允许超过数据段最大号的PCI数据传输的总线周期内不允许任一数据传输。因此,所述的主动装置将与主桥20脱离,这就允许其它的PCI主动装置对PCI总线22进行存取。
多路转换器202的第二输入端与2输入端多路转换器204的输出端相连。多路转换器202的第三输入端通过锁存电路206与多路转换器202本身的输出端相连,以作为一个反馈输入。
利用在主桥20之内的另外硬件向多路转换器202提供多个控制信号。在一个PCI地址段期间,多路转换器202选择其第一输入端信号。作为其输出,该信号将启动一个以S-总线16为目标的传输。在S-总线16上的任一数据段被完成并且与下一个系统总线数据段相关的一个地址必须被产生之后,多路转换器202的第二输入被驱动以作为其输出。在一个系统总线数据段期间或者是当S-总线16上的数据段已被完成并且在S-总线16上的下一个数据段的目标指向与所完成的数据段相同的一个地址时,多路转换器202的第三输入被选择。当在S-总线16上去传输一个单一DWORD中的不连接数据或去调节S-总线16的动态总线规模容量时就会发生上述的后一种情况。这两个问题以及所发明的用于介决这些问题的硬件已经在指定给I.B.M公司的未审定专利申请、其发明名称为“用来在一个信息处理系统中的不同总线结构之间提供精确而完整通信的方法和装置”中已有披露。
在多路转换器202的输出信号经过锁存电路206以后,它包含有与S-总线16上的当前数据段相关的地址的位号X到2。这个信号被标记为SBUS-AD[X”2]。SBUS-AD[X2]被输出给系统总线接口逻辑104。S-总线接口逻辑104将SBUS-AD[X”2]和PCI-AD的剩余位号组合起来并在S-总线16的地址线上输出该组合的地址值以用于S-总线16上的当前数据段。
SBUS-AD(SBUS-AD[23])的第二位的和第三位被输入给一个字符组尺寸逻辑组件208。到该字符组尺寸逻辑组件208的其它输入包括来自定步逻辑110的DWORD FULL EMPTY信号,来自予取逻辑150的RDAD-PFTCH信号和一个FIFO-FLUSH信号。所述的FIFO-FLUSH信号是当PCI总线接口逻辑指出所述FIFO中的数据应当被写入S-总线16上的从动装置时由FIFO缓冲器逻辑102产生的。
所述的字符组尺寸逻辑组件208根据它所接收的输入信号的值产生一个输出信号BSIZE。DSIZE信号表示在S-总线16上应当被分段的数据段的号随SBVS-AD[23]的当前值开始。BSIZE被输出给系统总线接口逻辑104,该逻辑依据BSIZE的指示以字符组模式来传送数据段的号。
字符组尺寸逻辑组件208是一个逻辑的组合,它根据所述的字符组传输是一个写入操作(表1)还是一个读出予取操作(表2)来产生下述表1和2所表明的与BSIZE相关的值表1-与指派写入周期相关的字符组尺寸逻辑
表2-用于读出予取周期的字符组尺寸逻辑(READ-PFTCH=1) (X表示一种“非管理”状态)如从上述表所指出的,S-总线16的结构仅允许从利用其值为“00”或“10”的SBUS-AD[23]信号结束的地址开始的字符组传输。并且如果这个值等于“10”的话,仅允许两个字符组数据传输。
因此,如表1所表明的,在所述FIFO内的数据的特定DWORD的所述DWORD FULL信号必须是表明在所述DWORD内的所有数据字节都已被使能的高电平信号,才能在S-总线16上对那个DWORD进行分段。这就保证了在S-总线16上将不对非连接数据进行字符组传输。
SBUS-AD[X2]也被分别输入给两个加法器210和212。加法器210将SBUS-AD[X2]的值加1,并将这个新的值输出给多路转换器204的第一输入端。加法器212将SBUS-AD[X2]加2并将这个新值输出给多路转换器204的第二输入端。
地址增量逻辑组件214为多路转换器204提供控制信号。地址增量逻辑组件214从定步逻辑110中接收DWORD EMPTY信号,还接收SBUS-AD[32]和FIFO-FLUSH信号作为其输入信号,并根据这些输入信号产生用于多路转换器204的控制信号。如下面的表3所示,由地址增量逻辑组件214所输出的控制信号根据加于它的输入信号或为高电平或为低电平表3-CPU局部总线地址增量逻辑 地址增量逻辑组件214提供产生表3的各种功能。地址增量逻辑214的目的就是当主动装置表示将有未被使能的数据被写入那个地址时跳过在由PCI主动装置所启动的一个字符组传输内的某些地址。当所述地址增量逻辑组件的输出为低电平时,多路转换器204将驱动加法器210的输出作为它自己的输出。这表示了一种正常状态。在这种状态下,在S-总线上下一个数据传输的地址被简单地增加一个DWORD地址。当所述的地址增量逻辑组件的输出为高电平时,多路转换器204将选择加法器212的输出作为自己的输出,这将使得所述的地址值被增加2个DWORD地址。当在S-总线16上的除被写入的所述FIFO中的数据的全部下一个DWORD没有被使能从而表示与在所述FIFO中的这个DWORD相对应的地址在特定的字符组写传输中应当被跳过时,就会发生这种情况。这样,就没有数据被写入那个地址。
在操作过程中,在向连接到S-总线16的一个从动装置的字符组写传输期间,由所述PCI主动装置所提供的第一PCI地址的位号X到2被输入给多路转换器202的第一输入端。由于这是一个通知开始进行PCI字符组传输的第一个PCI地址段,所以,多路转换器202将驱动这个地址值作为它的输出。锁存电路206锁存这个值并输出它以用于第一个SBUS-AD[X2]的值。
SBUS-AD[23]被输入给字符组尺寸逻辑组件208。字符组尺寸逻辑组件208在接收一个与FIFO-FLUSH相关的高电平信号以前不产生输出信号。当它确实接收了这个高电平信号时,所述的FIFO将被填充来自所述PCI主动装置的指派写入数据。
当字符组尺寸逻辑208确实收到了FIFO-FLUSH信号时,它将根据四个DWORD FULL信号来判断在所述FIFO的每一个DWORD中的数据是否含有连接的数据,并且它还要对所述的SBUS-AD[32]信号作出评价。根据这种评价,字符组尺寸逻辑将产生一个与BSIZE相关的信号。
例如,假设位号2和3具有值为“00”,FIFO-FLUSH是高电平并且整个FIFO都被充满,那么,其值为4的BSIZE将被产生。因此,所述的系统总线接口逻辑104将向所述的从动装置分段写入传输所述FIFO中数据的四个DWORD。这是S-总线16的最大分段能力,因此,也是向字符组尺寸逻辑组件208输入信号的最快可能组合,如果由所述主动装置启动的写入传输长于数据的四个DWORD,那么在当所述的FIFO中变得尚有空间可得时,所述的FIFO将被继续充填来自所述主动装置的指派写入数据。FIFO-FLUSH信号将被不断确立,直到在所述FIFO中的第一个DWORD被同时排空成所述PCI总线处理被完成为止。
因此,字符组尺寸逻辑组件208根据在S-总线16上分段之后SBUS-AD信号位号2和3的增值产生下一个BSIZE信号。在S-总线16上的4数据段被分段以后,这个值将再次变成“00”,从而再次允许在S-总线16上的最佳字符组传输。这个过程将持续下去,直到所述的字符组传输被完成并且FIFO-FLUSH信号不产生为止。
相反,一个字符组写传输可以起始于这样一个地址,在这个地址中,SBUS-AD[23]的值别“01”。在这种状态下,由于S-总线16的限制,字符组尺寸逻辑组件208将把来自PCI总线22的字符组传输分成在S-总线16上的一个单个数据传输和一定数量的字符组传输。这就建立了一个比先前所述例较为缓慢的数据传输。但是,使用S-总线16的最大分段能力,逻辑组件208能够尽快地完成所述的传输。
当接收到所述的FIFO-FLUSH信号时,假设所有的DW FULL信号都是高电平,那么由于所述的BSIZE值将为“1”,所以一个单一的数据传输将起始于一个以值“01”作为结束的地址处。如上所讨论,在这个传输以后,所述的地址将由加法器210加1,随后,SBUS-AD的位号2和3的下一个值将是“10”。因此,BSIZE将变为2,从而引起在S-总线16上2个DWORD的字符组传输。特别由于先前的两个DWORD的字符组传输,所述地址将被增值两倍。因此,与SBUS-AD[23]相关的这个新值将是“00”。字符组尺寸逻辑组件现在如前例所述允许与BSIZE相关的最大值,直到所述的数据传输由PCI主动装置完成为止。
当所述的字符组尺寸逻辑组件208确实被用于向系统总线从动装置执行字符组写操作时,其工作方式基本上同于从一个系统总线从动装置中读出予取数据的工作方式。区别在于所述的DWORD EMPTY信号被用来取代DWORD FULL信号、READ-PFTCH被用于取代FIFO-FLUSH,且表2被用来取代表1。
因此,本发明披露了一种用于能够使在系统总线和外围总线间的数据传输最佳化的多总线信息处理系统的总线到总线桥的最佳实施例。但是,根据前面的陈述,应当理解,这些陈述仅仅是借助于举例来完成的,本发明并不受限于这些特定的例子,并且各种重新配置,修改和替代都可以在不脱离随后所附权利要求实质精神的前提下加以完成。
权利要求
1.一种信息处理系统,包括一个中央处理单元;一个连接到所述中央处理单元的系统总线;一个用于将外围设备连于其上的外围总线;一个用于将所述的系统总线连接到所述外围总线上的主桥;所述的主桥包括一个缓冲器,用于暂存在所述系统总线和外围总线之间进行传递的数据;其特征在于所述的主桥还包括一个逻辑网络,该网络根据所述数据是否是不连接数据而使向所述缓冲器传入或从中传出所述数据的速度为最佳。
2.根据权利要求1所述的信息处理系统,其特征在于所述的逻辑网络还根据通过所述系统总线写入或读出所述数据的地址而使向所述缓冲器传入和传出所述数据的速度为最优。
3.根据权利要求2所述的信息处理系统,其特征在于包括一个增量逻辑,用于提供通过所述的系统总线写入或读出的所述数据的所述地址。
4.根据权利要求3所述的信息处理系统,其特征在于所述的增量逻辑包括一个使所述地址增加一个地址的第一加法器,还包括在所述数据通过所述的系统总线被写入或读出之后直接使所述地址增加两个地址的第二加法器。
5.根据权利要求4所述的信息处理系统,其特征在于所述的增量逻辑包括一个多路转换器,该多路转换器根据在通过所述系统总线写入或读出所述数据之后是否应该直接跳过在分段数据传输中的一个地址来输出所述第一加法器所述增量后的地址或所述第二加法器的增量后的地址。
6.根据权利要求1所述的信息处理系统,其特征在于所述的外围总线是一个PCI总线。
7.根据权利要求1所述的信息处理系统,其特征在于所述的外围总线是一个多路总线。
8.一种信息处理系统,包括一个中央处理单元;一个连接到所述中央处理单元的系统总线;一个用于将外围设备连于其上的PCI总线;一个用于将所述的系统总线连接到所述PCI总线上的主桥;所述的主桥包括一个缓冲器,用于暂存在所述系统总线和所述PCI总线之间进行传递的数据,其特征于所述的主桥包括一个逻辑网络,该逻辑网络使通过所述PCI总线和系统总线向所述缓冲器传入或传出所述数据的速度为最优。
9.根据权利要求8所述的信息处理系统,其特征在于所述的逻辑网络包括一个定步逻辑,用于当所述的缓冲器存贮空间是空的时向其传送所述数据。
10.根据权利要求9所述的信息处理系统,其特征在于当所述的存贮空间是空的时,所述的定步逻辑驱动一个使能信号给一个主外围设备。
11.根据权利要求10所述的信息处理系统,其特征在于当所述的主动设备接收所述的使能信号时,所述的主动设备将所说的数据串写入所述的存贮空间。
12.根据权利要求10所述的信息处理系统,其特征在于当所述的存贮空间被所述的数据填满时,所述的定步逻辑不驱动所述的使能信号。
13.根据权利要求9所述的信息处理系统,其特征在于当所述缓冲器的所述存贮空间被所述数据填满时,所述的定步逻辑还可以用于传送。
14.根据权利要求13所述的信息处理系统,其特征在于当所述的存贮空间被所述数据填满时,所述的定步逻辑驱动一个使能信号给一个主动设备。
15.根据权利要求14所述的信息处理系统,其特征在于当所述的主动设备接收所述的使能信号时,所述的主动设备读出所述存贮空间内的所述数据。
16.一种信息处理系统,包括一个中央处理单元;一个联接到所述中央处理单元的系统总线;一个用于将外围设备连接于其上的外围总线;一个用于将所述系统总线连接到所述外围总线上的主桥;所述的主桥包括一个缓冲器,用于暂存在所述系统总线和外围总线间进行传递的数据;其特征在于所述的主桥还包括一个逻辑,用于当连接到所述围总线上的一个主动设备启动一个指向连接到所述系统总线上的一个从动装置的字符组读传输时,通过所述的系统总线向所述的缓冲器予先写入所述的数据。
17.根据权利要求16所述的信息处理系统,其特征在于所述的逻辑包括一个传感器,用于检测在什么时候所述的主动设备去启动所述的字符组读传输。
18.根据权利要求16所述的信息处理系统,其特征在于包括一个检测器,用于检测在什么时候所述的字符组读传输被完成,并用于驱动一个信号去清零在所述字符组读传输期间未被读出的任一数据的所述缓冲器。
19.根据权利要求16的信息处理系统,其特征在于所述的外围总线是一个PCI总线。
20.根据权利要求16所述的信息处理系统,其特征在于所述的外围总线是一个多路总线。
全文摘要
本发明提供了一种主桥内的硬件逻辑,该主桥将一个系统总线连接到使用PCI总线结构的一个外围总线上,或者是其所使用的总线结构类似于PCI总线结构的一个外围总线上。所发明的硬件使得在两个总线间实现数据传输的速度最优化,同时在两个总线的不同结构之间转换数据传输。
文档编号G06F13/40GK1100822SQ9410774
公开日1995年3月29日 申请日期1994年5月26日 优先权日1993年5月28日
发明者N·阿明尼, A·科利, G·N·桑托斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1