本发明为80386提供一个进入80386/82385微计算机系统中的总线仲裁的入口,在该系统中82385工作于主态。 本发明与题为“具有可编程DMA控制的计算机系统”的专利申请NO.30786(1987年3月27日收编)、题为“CPU能为无仲裁器的附加设备进行仲裁的DMA存取仲裁装置”的专利申请NO.30788(1987年3月27日收编)以及题为“具有动态可编程线性/公正优先权仲裁配置的计算机系统”的专利申请NO.102690(1987年9月30日收编)有关。
有关80386的基本情况、80386的特性及其在含有高速缓冲存储器子系统的微计算机系统中的应用在Intel公司1986年4月的“80386介绍”和“80386硬件参考指南”(1986)中有说明。82385的特性及工作性能在Intel公司出版物“82385高性能32位高速缓冲存储控制器”(1987)中有说明。
在上面所列举的专利申请中(其披露在此收作参考)对在几个可能的用户间分配资源的装置作了说明。这些专利申请说明了在与一个单总线微计算机系统相联的几个设备之间分配诸如计算机总线子系统和/或存储器入口之类的资源的情况。这类资源地分配一般叫做仲裁。上面列出的专利申请中所说明的仲裁配置采用具有中央管理器的分配仲裁,将公共资源分配给其中一个可能用户。然而,管理器受CPU控制,这样,在CPU需要存取时,它就能控制管理器,以保证CPU本身可使用所需的公共资源。
具有高速缓冲子系统的微计算机系统就结构来说与没有高速缓冲子系统的微计算机系统有十分显著的不同。具有高速缓冲子系统的微计算机系统是作为双总线装置来运行的。具体些说,在具有高速缓冲子系统的微计算机系统中有一个第一总线(称为CPU局部总线),该总线连接CPU、高速缓冲存储器和高速缓冲控制器。其它装置都连到另一个总线(系统总线)。所谓其它装置包括的主存储器、I/O装置及外围设备等。除了上面所说的那些装置外,系统总线可以也连到高控缓冲控制器上。
高速缓冲子系统通常解除了系统总线一大部分在没有高速缓冲子系统时要由系统总线完成的存储器访问的负担。也就是说,当CPU能从高速缓冲存储器取得信息时,对于这个具体的周期CPU就不需要使用系统总线。因此,其它装置就能在这段时间内使用系统总线来进行其它一些操作。可以预料,这会大大减少CPU实际占用系统总线的时间。通常高速缓冲控制器接至系统总线和CPU局部总线,高速缓冲控制器的一个功能就是管理仲裁管理器,这在单总线系统中是由CPU来管理的。
一种可用的高速缓冲控制器82385能够工作于主态或从态。当82385工作于主态,并管理仲裁管理器时,就不会再有CPU争用系统总线资源的机制了。
因此,本发明的目的是提供一个机制,使得在具有管理仲裁管理器的高速缓冲控制器件的多总线微计算机系统中CPU可以使用由仲裁机制分配的系统总线资源。
如在上述列为参考的专利申请中所描述的仲裁管理器响应从各装置共同耦合过来的仲裁申请信号。当仲裁管理器证出已经有一个或几个装置申请公共资源,就改变一根导线(ARB/GRANT可以进入到全部竞争装置)的状态,发出一个仲裁周期开始的信号。当竞争的装置检出这根导线的状态发生改变,发出一个仲裁周期开始的信号时,这些装置就产生与它们的优先权级别相应的信号,並以这些信号驱动几根从事仲裁的仲裁导线。这些装置和仲裁导线之间连接成使这些导线带有驱动仲裁导线的最高优先权电路的优先权值。因此,每个装置通过将仲裁导线上的优先权值与其本身的优先权值相比较识别是否有更高优先权的装置争用系统总线。在预定的仲裁周期终了时,ARB/GRANT导线改变状态。这开始授予周期,在这周期期间优先权值为仲裁导线上的优先权值的那个竞争装置获得公共资源的控制,开始一个总线周期。
此外,如在上面列为参考的专利申请中所述,另有一根导线用于PREEMPT(抢用)信号,产生这个信号是为了迫使一个已经占用系统资源的装置结束其占用。因此,一个已经获准使用系统资源並且正在使用这资源的装置当识别出要求抢用时需要开始有规则地结束其对系统资源的使用。当因此受抢用的装置结束其对公共资源的使用时,仲裁管理器就开始一个新的如上所述的仲裁周期。
在具有高速缓冲子系统的微计算机系统中,CPU访问高速缓冲存储器(因此不需要使用系统总线)的周期为最小周期或零等待状态周期。当CPU的周期超过这最小值时,就发出CPU要求占用系统总线的信号。因此,比最小宽度长的CPU周期发出CPU需要占用系统总线(公共资源)的信号。
按照本发明,为CPU提供了产生一个PREEMPT信号的装置,该信号使任何通过仲裁机制已获准占用总线的装置结束其占用,如前所述。如同将要说明的那样,CPU产生PREEMPT信号受检测到一个比访问高速缓冲存储器所需的时间长的CPU周期控制。然而,CPU对系统资源的使用安排成尽可能节约时间。具体地说,当一个通过仲裁已获准占用总线的装置识别出抢用(Preempt)信号、开始有规则地结束其对总线的占用时,就发出它对总线占用结束的信号。仲裁管理器用产生一个新的仲裁周期来响应这个信号。如果CPU是发出抢用信号要求释放总线的装置,那末它对仲裁周期开始的反应将不同于所有其它竞争占用总线的装置。在仲裁周期开始时,其它各个争用总线的装置将其优先权置至仲裁导线上。而CPU根本不参与这个过程;仲裁周期一开始,CPU实际上就开始占用总线。
在本发明的一个已做成的具体装置中,最小仲裁周期为300毫微秒。而一个零等待状态的总线周期小于300毫微秒。因此,每当CPU抢用从而获得占用系统总线时,它实际上能够完成与仲裁过程同步的一个周期。
因此,本发明为CPU提供抢用根据仲裁机制原已分配的系统总线的装置。此外,按照本发明,当CPU通过抢用信号获得占用系统总线时,它就起始一个总线周期,该周期能在其它装置竞争总线占用的期间完成。
因此就一方面来说,本发明提供了一种多总线微计算机系统,其组成为:
a)由一CPU局部总线连接在一起的一个微处理器和一个高速缓冲子系统,
b)由一系统总线连接的一个随机存取存储器、一个仲裁管理器以及一些其它功能单元,
c)耦合CPU局部总线和系统总线的装置,
d)上述CPU局部总线和系统总线均含有一组用于仲裁至少某些其它功能单元对所述系统总线的占用,所述导线中的一根提供抢用信号,以及
e)一个具有对超过最小宽度的CPU局部总线周期敏感的输入的抢先信号源,所述抢先信号源具有一个耦合到所述CPU局部总线的输出,用来产生对任何占用所述系统总线的功能单元发生影响的抢先信号,该抢先信号限制了占用的时间。
图1为应用本发明的典型微计算机系统的一般三维视图;
图2为应用本发明的典型微计算机主要部件的详细方框图;
图3说明单总线微计算机系统的仲裁管理器和CPU的连接情况;
图4说明仲裁管理器、CPU和高速缓冲控制器按照本发明连接的情况;
图5示出支持CPU、产生PREEMPT信号的装置;
图6示出支撑CPU、产生信号CPUREQ的逻辑,CPU用信号CPUREQ来产生PREEMPT信号;
图7为说明几个仲裁和授予周期的时序图,其中一个周期提供由一个一般的装置占用系统总线,而另一个周期通过PREEMPT信号提供CPU对系统总线的占用;
图8示出了中央仲裁管理器335与支持其它装置的仲裁器336之间的关系;
图9和图10一起构成仲裁管理器335的方框图;以及
图11为说明图8工作情况的时序图。
图1示出了一个应用本发明的典型微计算机系统。如图所示,该微计算机系统10由相互连接在一起的几个部分组成。具体些说,系统单元30连接到监视器20(诸如一般的电视显示器),对它进行驱动。系统单元30还与诸如键盘40和鼠标器50之类的输入装置连接。诸如打印机60之类的输出装置也能接到系统单元30。最后,系统单元30可以有一个或几个磁盘驱动器(如磁盘驱动器70)。如下所述,系统单元30响应诸如键盘40和鼠标器50的输入装置以及诸如磁盘驱动器70的输入/输出装置,以便给出信号,驱动诸如监视器20和打印机60那样的输出装置。当然,精于此道的明白,其它和常用的一些部件也可接至系统单元30运行。按照本发明,微计算机系统10包括(下面将更为具体加以说明)一个高速缓冲存储子系统有一根CPU局部总线连接处理器、高速缓冲控制器和高速缓冲存储器,其中高速缓冲存储器本身通过缓冲器与系统总线相连。系统总线连接到诸如键盘40、鼠标器50、磁盘驱动器70、监视器20和打印机60这些I/O装置,与这些装置相互作用。此外,按照本发明,系统单元30也可以含有组成连接系统总线与其它一些输入/输出装置的微通道(LM)结构的第三总线。
图2为说明按照本发明所构成的典型微计算机系统各部分的详细方框图。CPU局部总线230(由数据、地址和控制三部分组成)连接微处理器225(诸如80386)、高速缓冲控制器260(它可以含有82385高速缓冲控制器)和随机存取高速缓冲存储器255。缓冲器240也连接到CPU局部总线230上。缓冲器240本身连接到也由地址、数据和控制三部分组成的系统总线250上。系统总线250分布在缓冲器240和另一个缓冲器253之间。系统总线250还连接到总线控制和定时器265以及DMA控制器325上。仲裁控制总线与总线控制和定时器265以及仲裁管理器335相连。主存储器350也连接到系统总线250上。主存储器包括存储控制器351、地址多路转接器352和数据缓冲器353。这些器件与存储元361至364相连,如图2所示。
还有一个缓冲器267接在系统总线250和平面(Planar)总线270之间。平面总线270相应包括地址、数据和控制三部份。沿平面总线270连接的有各种I/O适配器和其它一些器件,如显示适配器275(用来驱动监视器20)、时钟280、附加随机存取存储器285、RS232适配器290(用于串行I/O操作)、打印机适配器295(可用来驱动打印机60)、定时器300、磁盘适配器305(与磁盘驱动器70协同工作)、中断控制器310以及只读存储器315。缓冲器253在系统总线250和诸如由微通道(TM)插座表示的微通道(TM)总线320那样的可选器件总线之间提供一个接口。如存储器331那样的器件可连接到该总线320上。
图8-11对于解释仲裁机制十分有用。参照图8来说明仲裁管理器335与代表各个局部仲裁器的一个局部仲裁器之间的关系。通常,当一个装置希望占用系统总线250传送数据时,局部仲裁器336将收到一个来自与该局部仲裁器有关的具体装置的申请信号。该申请信号变换成/PREEMPT信号,这信号由局部仲裁器产生,传送到仲裁管理器335和仲裁总线的/PREEMPT线上的各个局部仲裁器。应该注意到,在本发明的这个具体装置中,所有的/PREEMPT线是“或”在一起的,因此对于仲裁管理器335而言,论哪个具体装置产生这申请信号都是一样。仲裁管理器335在适当时间(这对精于此道的都非常清楚是由来自刷新控制器(未示出)的HLDA和+REFRESH存储器信号决定的)产生ARB/GRANT信号来响应来自一个或多个局部仲裁器336的/PREEMPT信号。HLDA是在单总线系统中仲裁管理器335与CPU之间交换的一对HLDA和HRQ(或HOLD)中的一个信号。在双总线系统中,这对信号在仲裁管理器和82385之间交换。
因此,当任何一个装置希望争用系统总线250时,该装置就产生一个申请信号给其相应的局部仲裁器336,然后这局部仲裁器在仲裁总线的/PREEMPT线上产生一个/PREEMPT信号。然后在合适的时间,当总线成为可用时(由来自刷新控制器的信号HOLD和+REFRESH确定),仲裁管理器335在仲裁总线上产生ARB/PREEMPT信号的+ARB状态送给每一个局部仲裁器336。就对+ARB状态的响应,每个希望占用系统总线250的局部仲裁器336将其优先权级别驱送到仲裁总线的相应的导线ARB0-ARB3上。然后,每个希望占用系统总线250的局部仲裁器将其所指定的优先权级别与仲裁总线上的优先权级别进行比较,当其优先权级别低于被驱送到仲裁总线上的优先权级别时,就退出对系统总线的竞争。因此,在仲裁周期终了时,只有具有最高优先权级别的那个局部仲裁器在仲裁周期内保持对系统总线的竞争,从而在收到由仲裁管理器335在ARB/GRANT线上送出的GRANT状态时,获得对系统总线的控制。
参照图9和图10来更为详细地说明仲裁管理器335的电路情况。仲裁管理器335由一个包括计数器31至34和蛎?5的变形约翰逊环形定时链、或门36、与非门37、倒相器38以及或门39组成。假设开始时总线处于空闲状态,CPU225拥有总线,但没有使用。电路的工作情况将结合图11的时序予以说明。在上述条件下,ARB/GRANT为有效低电平,而仲裁优先权电平ARB0至ARB3均为1。变形约翰逊环形定时链由通过或门36和与非门37的+HLDA信号保持复位。当一个装置需要占用总线时,/PREEMPT信号起动。如果10所示,/PREEMPT成为有效,使该门输出为正,表示一个处理器保持申请(+PROCHRQ)信号。+ARB0至+ARB3信号和+GRANT信号也送到图10的这个或门,保证CPU225不会与其它装置的总线传递干扰。+PROC HRQ信号使+HLDA失效,结果从计数器31至34上除去复位信号(或门36的输出)。应该理解,输入-S0、-S1、-CMD和-BURST必须为无效,以保证HLDA从上述的计数器31至34上除去复位信号,如图11所示。-S0信号表示写周期,而-S1信号表示读周期。-CMD信号在-S0或-S1后晚一定时间由现行总线控制器产生。在读周期内,-CMD命令从属装置将该数据送到总线上,而在写周期内-CMD有效以保证写数据生效。
在下一个(20兆赫)时钟脉冲,+HLDA失效后,计数器31的输出被置位,使或门39的输出变高,指示了一个仲裁定时周期。或门39的输出保持为高电平,直至计数器33的输出在计数器34的输出已经变高以后的某一时间变低为止。这为ARB/GRANT信号建立了一个300毫微秒的定时脉冲。计数器34的输出保持置位状态,直至装置通过使-S0或-S1有效开始一个总线周期为止。然后输出复位,计数器31-34准备就绪,在现行总线周期结束时再开始定时。如果没有一个装置申请总线服务,则总线返回到空闲状态,控制返回到处理器。HLDA重新有效,现在总线可用于处理器操作。
图3示出了80386(作为微处理器225)与仲裁管理器335之间的连接情况。接在仲裁管理器335右边的输入/输出信号在参考的专利申请中有所说明。具体些说,输出信号ARB/GRANT为规定仲裁机制是处于仲裁状态(在此期间争用系统资源的装置将其优先权级别置于仲裁导线上)还是处于授予状态(在此期间对公共资源获得占用的装置能使用该资源而排斥其它争用的装置)的信号。送至仲裁管理器335的另一个输入信号为已经说明过的PREEMPT信号。最后,由ARB〔0-3〕表示的送至335仲裁管理器的输入为仲裁导线,在仲裁状态期间,这些导线由争用装置用它们本身的优先权级别电平驱动。在仲裁管理器335左面的输入/输出连接表示了在典型的单总线微计算机系统中仲裁管理器335与80386的连接情况。信号HLDA和HRQ(有时叫做HOLD)是握手机制,因此仲裁管理器335能申请占用系统资源而排斥80386(HRQ)。当80386答应时(HLDA),此时仲裁管理器335就能分配对资源的占用。在单总线的微计算机系统中,CPU不能根据本身的情况抢用资源。这可能引起不希望的情况,CPU会被允许成组传送的装置封锁在公共资源以外,不能占用公共资源。
图4为表示在使用80386CPU和82385高速缓冲控制器的双总线微计算机系统中所选出的相互连接情况的方框图。图4仲裁管理器335右边的输入/输出连接情况与图3相同,不再说明。图4所示的要点在于仲裁管理器335现在由82385高速缓冲控制器进行管理,HRQ和HLDA信号就连接到这个器件上。如果没有其它什么配置,则80386会被冻结在对公共资源的占用之外。本发明提供另一种机制,很大程序上可以做成这种状况,而不影响占用公共资源的其它装置。
图5和图6一起说明信号CPREEMPT及其先行信号CPUREQ是怎样产生的。
首先参见图6,这里的逻辑可以看作高速缓冲控制器260的一部分。该逻辑用来产生信号CPUREQ,该信号可以认为是输入到缓冲器240控制部分的控制信号。控制信号CPUREQ由示于左边的那些输入产生,这些输入包括/BUSYCYC386、READYI、CLK、RESET和/(/M/IO & A31)。后面的那个信号为协处理器的被译码地址。信号BUSYCYC386、READYI和/(/M/IO & A31)均为有效低电平信号,这样,当触发器601被置位时(通过在其D输入端的高电平输入),其输出为高电平,而CPUREQ信号为低电平(有效)。除了触发器601以外,图6的逻辑还包括一个或门602、三个与门603-605以及倒相器606-608。
与门603的输入本质上检测延长到超过零等待状态但又不是同时用于协处理器周期的30386周期。一旦检测到这个状况,触发器601就被置位,而在该状况已经结束时只有在时钟时间CLK2才能被复位。门604和605用来在CLK为高电平而READYI为(有效)低电平时使触发器601复位。这状况在完成一个CPU总线周期时发生。
一个延长到超过零等待状态的CPU局部总线周期(而该周期也不是协处理器用的周期)为一个需要占用系统总线的周期。因此,在此情况下的CPUREQ有效,也就是变为低电平。这个信号引起的影响示于图5。
图5示出了与系统总线250有关的逻辑。如图5所示,缓冲器240的控制元件有一个输出CPUREQ(由图6所示的相同信号驱动)。CPUREQ是门501的一个输入,门501的输出/CPREEMPT实际上就是80386产生的抢先信号。如在图5所见,信号/CPREEMPT耦合到仲裁管理器335的一个输入端-PREEMPT导线(见图3或图4)。信号/CPREEMPT由图5所示的包括门501-503的逻辑产生。门501的第二个输入为门503的输出,门503的一个输入为ARB/GRANT信号(即仲裁管理器335的输出)。另一个输入为ENCPUPREEMPT。ENCPUPREEMPT是80386的一个输出。当这个信号为无效时,将禁止/CPREEMPT成为有效。因此当ENCPUPREEMPT为无效时,80386就不能抢用。ENCPUPREEMPT可以由一个用户能设置的开关或一个软件开关来控制,这取决于其它的系统装置和/或软件的要求。在一般环境下,ENCPUPREEMPT将为有效,因此允许80386抢用。当ARB/GRANT指出仲裁过程是处于授字状态(並且ENCPUPREEMPT有效)则门503的输出将为有效。门503的有效输出连同有效的CPURER将允许产生一个有效/CPREEMPT,仅在仲裁过程的授予期间才允许产生一个有效/CPREEMPT。门502用于监视仲裁导线的状态,如果所有导线均为(有效)高电平,表示其它装置並不在为总线进行仲裁,即CPU拥有公共资源时,门502将阻止产生有效的/CPREEMPT。
因此,根据图5和图6所示逻辑,对于不用于协处理並且延长到超过最小时间宽度(零等待状态)的CPU局部总线周期,如果仲裁机制是处于其授予状态,则CPU可以抢用並且将抢用到系统资源。现结合图7A-7E来说明这抢用的情况。
图7A-7E类似于专利申请S.N.30786的图4,说明:
1)成组传送装置使用系统总线(A-D),
2)一典型装置通过用PREEMPT信号抢用系统总线(B-H),
3)CPU通过用/CPREEMPT信号获得系统总线(K-O),以及
4)在CPU占用系统总线的同时对其它装置要求占用系统总线进行仲裁(M)。
具体些说,为说明方便起见,假设一成组传送方式的装置已经获得系统总线的控制,如图7D中(a)所示。当挂在系统总线上的另一装置要求抢用时(B),现正处于控制的成组传送装置完成其现行传送,如图7C中(c)所示。在完成现行传送时,正撤回对系统总线控制的成组传送装置从Burst(成组传送)线上除去其Burst信号,如图7D中(D)处所示。这成组传送装置将不加入下一个仲裁周期。然后,仲裁管理器335将ARB/GRANT置为ARB状态,如图7A中(E)处所示。相同的转换表示另一个仲裁周期的开始,对系统总线的仲裁开始于图7B的(F)处。ARB/GRANT信号变低以后,系统总线的控制就授予新的装置,如图7A的(G)处所示。这个已经获得系统总线控制的新装置就除去其PREEMPT信号,来响应GRANT信号,如图7E中(H)处所示。
稍晚,在图7A-7E的例中根据考虑CPU局部总线230的状况,CPU要求/CPREEMPT,这反映在图7E的PREEMPT(K)处。如已经解释的那样,这将产生一个新的仲裁周期开始,如图7A中(L)处所示。如图7A所示,这个仲裁周期从L延续至O。在这个仲裁周期期间,CPU实际上占用系统总线,而在这周期的开始CPU就解除PREEMPT信号,如图7E中(N)处所示。在CPU占用系统总线期间,可以争用系统总线的其它装置在图7B的(M)处开始时该资源进行仲裁。在该CPU周期结束时,当CPU已完成系统总线的使用时(O),一个新的仲裁也已完成,此后某个装置(如果有装置争用系统总线的话)就能马上在图7A中(O)处开始的时间间隔内占用该资源。
/CPREEMPT信号仅当一个CPU总线周期延长到超过一个预定宽度(如超过零等待状态)时才为有效。在仲裁状态(ARBGRANT为高电平)期间,CPU高速缓冲控制器260由于管理器使HRQ变低而脱离保持状态可以运行一个或多个周期。
由于使用抢用机制而允许占用系统总线的一个CPU周期的结束由READYI有效、CLK为高电平来检测。通过图6逻辑,在这些状况下触发器601被复位,CPUREQ成为无效。
上面已引用的逻辑方程直接转录如下。在这资料中,各符号具有下列意义:
符号 定义
/ 非
: = 寄存项(registered term),等于
= 组合项(combinatorial term),
等于
& 逻辑与
+ 逻辑或
逻辑信号
ARB〔0-3〕 在相关未决申请中已定义
ARB/GRANT 在相关未决申请中已定义
/(/M/IO & A31) 被译码的数字协处理器地址
/CPREEMPT 见图5
/CPUREQ 见图6
ENCPUPREEMPT 可编程位,用来允许或禁止CPU产生
/CPREEMPT
PREEMPT 在相关未决申请中已定义,在本申请中修
改成可用/CPREEMPT产生。
逻辑方程
/BREADY385=/BUSCYC385 & /BREADY & MISS1 (1)
/BT2:=BUSCYC385 & PIPECYC385 & /BADS & CLK & BT2 (2)
+BUSCYC385 & /PIPECYC 385 & BADS & CLK &
NACACHE & BT2
+MISS1 & /BUSCYC 385 &/BADS & /(BW/R) & CLK & NCA &/BREADY
+/MISS1 & /BREADY & /BUSCYC 385 & CLK
+/BT2 & BREADY & HACACHE
+/CLK & /BT2
/BUFWREND:=WBS & /BUSCYC 385 & /BREADY & CLK (3)
/BUSCYC 385:=BUSCYC 385 & /BADS & CLK (4)
+BUSCYC 385 & /PIPECYC 385 & CLK
+BUSCYC 385 & /BT2 & CLK
+/BUSCYC 385 & BREADY
+/BUSCYC 385 & /CLK
/BUSCYC 386:=BUSCYC 386 & /ADS & CLK & /RESET (5)
+BUSCYC 386 & /PIPECYC 386 & CLK & /RESET
+/BUSCYC 386 & CPUREADY & /RESET
+/BUSCYC 386 & /CLK & /RESET
/CPUNA:=/MISS1 & CLK & CPUNA & /NACACHE (6)
+/MISS1 & CLK & CPUNA & /BREADY & /BUSCYC 385
+/CPUNA & /CLK
+/CPUNA & /MISS1 & CLK
+/CPUNA & CLK & BREADY
+/CPUNA & BUSCYC 385 & NACACHE & CLK
LEAB:=/LEAB & /BUSCYC 386 & /CPUREADY & (W/R) & CLK & ADS (7)
+LEAB & BUFWREND & /CLK
+LEAB & WBS& CLK
/MISS1:=MISS1 & BUSCYC 385 & CPUNA & /BADS & /(BW/R) & CLK & NCA (8)
+MISS1 & BUSCYC 385 & /BADS & /(BW/R) & CLK & NCA & /BREADY
+/MISS1 & /CLK
+/MISS1 & BREADY
/PIPECYC 385:=PIPECYC 385 & /BADS & /BUSCYC 385 & CLK & /BREADY (9)
+PIPECYC 385 & /MISS1 & BT2 & /BUSCYC 385 & CLK & /BREADY
z/PIPECYC 385 & /CLK
/PIPECYC 386:=
PIPECYC 386 & /ADS & CLK &/CPUREADY & /RESET &/BUSCYC 386
+/PIPECYC 386 & /CLK & /RESET
/CPUREADY:=/READY & /(W/R) (11)
+/BRDYEN & /BREADY & MISS1 & /BUSCYC 385
+/READYO 387
+/BREADY 385 & (W/R) & /LEAB
+/READYO & (W/R) & NCA
+/RDY 387PAL
在上述逻辑方程中,下列信号在所引用的Intel公司出版物中有所说明。
ADS
BADS
BRDYEN
BREADY
(BW/R)实际上就是指BW/R,括号用来表示整个项是一个信号。
CLK
READYO
RESET
WBS
(W/R)实际上就是指W/R,括号用来表示整个项是一个单一信号。
ADS在有效时指出CPU局部总线230上的一个有效地址。BADS在有效时指出系统总线250上的一个有效地址。BRDYEN为82385的一个输出-READY信号的光行信号。BREADY为从系统总线250送至CPU局部总线230的一个准备就绪信号。BW/R规定系统总线250读或写。CLK是一个与处理器225同步的处理器时钟信号。READYO是在准备就绪信号线上82385的另一个输出。RESET含意应该是十分清楚的。WBS指示写缓冲器的状况。(W/R)为CPU局部总线230的一般读或写信号。
方程(1)-(11)用已定义信号、引用的Intel公司出版物中说明或注明的信号以及NCA、NACACHE、READYO387和RDY387PAL定义了下列各项:
BREADY385
BT2
BUFWREND
BUSCYC385
BUSCYC386
CPUNA
LEAB
MISS1
PIPECYC385
PIPECYC386
CPUREADY
BREADY385是一个与BREADY信号相似的信号,该信号在一个实际构成的具体装置中经过修改以适应一个64K高速缓冲存储器。当使用32K高速缓冲存储器时(如生产厂所推荐的那样)可用BREADY代替BREADY385。
BT2反映了系统总线250的状态。状态BT2是一个在所引用的Intel公司出版物中所定义的状态。
BUFWREND表示一个缓冲写周期的结束。
BUSCYC385也反映系统总线250的状态。该信号对总线状态BTI、BT1、BT1P为高电平,对总线状态BT2、BT2P和BT2I为低电平(这些也都是总线状态,参考所引用的Intel公司出版物)。
BUSCYC386在CPU局部总线230状态TI、T1、T1P、T2I期间为高电平,而在T2期间则为低电平。除非T2I首先发生,该信号对T2P也为低电平。
CPUNA为送至80386的一个信号,允许进行流水线操作。
LEAB为对誊写(posted write)的锁存器允许(写入到缓冲器240),
MISS1为定义双周期中第一个周期有效,用来控制对可高速缓存装置的读出。
PIPECYC385在BT1P(一个总线状态,参见所引出Intel公司出版物)期间有效。
PIPECYC386在CPU局部总线230的状态T1P期间为低电平。
CPUREADY为80386的准备就绪输入。
NCA为一个由译码地址器件在CPU局部总线230上产生的信号,在有效时说明是一个非可高速缓冲存取。高速缓冲性由一个标记部分(A31至A17)以及定义什么标记(如有的话)为可高速缓冲地址,什么标记为可高速缓冲地址的可编程信息确定。
NACACHE为一个类似于BNA信号的信号。BNA为一个由系统产生、向CPU局部总线230要求下一个地址的信号,参见所引Intel出版物。NACACHE与BNA的不同之处只是在于BNA是为32K的高速缓冲存储器而产生的,但NACACHE则是为64K高速缓冲存储器而产生的。只要高速缓冲存储器是32K,如在Intel公司出版物所引证的,在此所说的NACACHE信号可用BNA信号代替。
READYO387为80387数学协处理器的准备就绪输出。
RDY387PAL为用于不装入80387数字协处理器时外部逻辑的一个输出,用来防止由于没有数学协处理器而干扰系统运行。
因此明显可见,由于使用本发明,在用80386微处理器和82385高速缓冲控制器的双总线微计算机系统中,在某些规定的情况下处理器可以有条件地抢用系统总线。具体些说,对于延长到超过所定宽度的局部总线周期,微处理器在有其它一些用户竞争占用系统总线以及抢用选择已经启动(ENCPUPREEMPT)的情况下能够要求/CPREEMPT。然而,当抢用有效时(仲裁管理器向微处理器发出信号),就有二个事件同时发生。第一个事件为微处理器占用系统总线。这种占用並不会受其它潜在的总线用户干扰,因为在微处理器占用期间其它竞争用户是处于仲裁状态。因此在微处理器占用系统总线的同时,其它用户为在微处理器占用总线后的授予状态时占用总线进行仲裁。因此,由于使用本发明,即使其它用户装置正为占用系统总线进行竞争,微处理器也能与此同时占用系统总线。由于微处理器占用系统总线与仲裁状态(其它装置进入的状态)重叠,因此提高了总线的使用和效率。
虽然在此对本发明的一个具体装置已作了说明,显然本发明並不局限于在此说明的这个具体实例。按所附权利要求应该可以构成相当多的具体装置。