用于在多条总线之间传送信息的系统和方法

文档序号:6407667阅读:213来源:国知局
专利名称:用于在多条总线之间传送信息的系统和方法
本专利申请一般地涉及处理系统,并特别涉及用于在多条总线之间传送信息的方法和系统。
根据一种提高数据处理系统的效率的方法,指令由通过总线连到公共存储装置的多个处理装置同时执行。一或多个处理装置可有常驻高速缓冲存储器,用于存储经常存取的信息,而不用在每次需要信息时都再次对公用存储装置进行存取。凝聚技术被用来保持多个处理装置之间共享的信息的完整性,特别是被其中的一个处理装置修改的信息的完整性。此外,一或多个处理装置可支通过总线的流水线操作和分离事务处理操作。
某些现有技术曾试图在多条总线之间传送信息。然而,一般的现有技术未能可靠地完成这种信息传送而不遇到不可解决的死锁,特别是在总线彼此异步运行的场合,或在一或多条总线支持凝聚技术、流水线或分离事务处理操作时。
因此,需要一种在多条总线之间传送信息的方法和系统,其中信息在彼此异步地运行的多条总线之间可靠地传送。此外,还需要一种在多条总线之间传送信息的方法和系统,其中信息传送不受不可解决的死锁状态的影响。另外,需要一种在多条数据总线之间传送数据的方法,其中一或多条总线支持着凝聚技术、流水线、或分离事务处理操作。
第一方面,一种方法和系统在多条总线之间传送信息。信息经第一总线在多个第一总线装置之间传送。信息经第二总线在多个第二总线装置之间传送。信息经逻辑装置在第一和第二总线之间传送。利用该逻辑装置,允许一个第一总线装置采取动作,该动作响应于如下的情况即第二总线装置等待上述动作而第一总线装置等待第二总线上的单独动作。
第二方面,一种方法和系统在多条总线之间传送信息。信息通过多个第一总线装置之间的第一总线传送。至少有一个第一总线装置不同于数据段完成地址段,来传送信息。信息经第二总线在多个第二总线装置间传送。利用逻辑装置,监测地址和数据段,并相应地调节经过第一和第二总线及其间的信息传送。
本发明的这些方面的一个技术优点在于,可在互相异步运行的总线之间可靠地传送信息。
本发明的这些方面的另一技术优点在于,信息传送不受不可解决的死锁状态的影响。
本发明的这些方面的又一技术优点在于,信息在多条总线间传送,其中一或多条总线支持凝聚技术、流水线、或分离事物处理操作。
第三方面,处理设备包括用于把设备连到总线及控制线的装置。该设备还包括使设备通过根据相应的相关地址段来分别完成多个数据段从而通过总线传送信息的装置。数据段得到排列,以按相应的相关地址段的顺序完成。另外,该设备包括用于使设备在根据控制线的状态而在先前的一个数据段之前有选择地完成一个特定数据段的装置。
本发明的这一方面的一个技术优点,在于处理设备是为这样的系统提供的,即在该系统中在不受到死锁状态影响的情况下在多条总线之间传送信息。
为了更好地理解本发明及其优点,现在结合附图进行以下说明。其中

图1是根据第一实施例的用于在多条总线间传送信息的系统的框图;
图2a-d是对图1的系统的总线运行的说明;
图3是图1的处理装置的系统接口的示意框图;
图4是根据第二实施例的用于在多条总线间传送信息的系统的框图。
参见图1-4,就能对本发明的最佳实施例及其优点有最好的了解;各附图中相同及对应的部分采用了相同的标号。
图1是用10概括地表示的根据第一实施例的系统的框图,该系统用于在总线12和总线14之间传送信息。总线12包括地址总线ADDRESS(A)和数据总线DATA(A)。另外,总线12包括控制线的数据总线只写DBWO(A)、高优先级窥探请求HPSNPREQ(A)、及将在以下进一步讨论的地址重试ARTRY(A)。为简明起见,未显示总线12的其他控制线。在最佳实施例中,地址总线ADDRESS(A)为32位宽,数据总线DATA(A)为64位宽,且它们都能以处理装置16和18的全时钟速率操作。
每一个处理装置16和18均连到总线ADDRESS(A)和DATA(A)及总线12的控制线DBWO(A)、HPSNPREQ(A)和ARTRY(A)。输入/输出(“I/O”)装置20与总线ADDRESS(A)和DATA(A)及总线12的控制线ARTRY(A)相连。在另一实施例中,I/O装置20是另一种类型的I/O装置,如盘存储单元或总线接口单元。
仲裁逻辑22与控制线DBWO(A)相连。另外,仲裁逻辑22经控制线总线请求BR1(A)、地址总线许可BG1(A)及数据总线许可DBG1(A)而与处理装置16耦合,如下面所要讨论的。类似地,仲裁逻辑经控制线总线请求BR2(A)、地址总线许可BG2(A)、及数据总线许可DBG2(A)与处理装置18耦合,如下面所要进一步讨论的。
总线14包括地址总线ADDRESS(B)和数据总线DATA(A)。在一个实施例中,总线14按NU-BUS总线构成。处理装置24和I/O装置26与总线14的总线ADDRESS(B)和DATA(B)相连。判断逻辑28经控制线总线请求BR1(B)和总线许可BG1(B)而与处理装置24耦合,如下面所要进一步讨论的。
在一个实施例中,处理装置24是与NU-BUS结构兼容的微处理器。在最佳实施例中,I/O装置26是存储装置。在另一实施例中,I/O装置26是另一种I/O装置,如盘存储单元或总线接口单元。
总线间通信逻辑(“ICL”)34包括外出排队36、进入排队38、及控制逻辑40。每一个外出排队36和进入排队38均与总线ADDRESS(A)、DATA(A)、ADDRESS(B)和DATA(B)相连。控制逻辑40经控制线总线请求BR(I)、地址总线许可BG(I)、数据总线许可DBG(I)和DEADLOCK(I)与判断逻辑22耦合,如下面要进一步讨论的。另外控制逻辑40经控制线总线请求BR(O)和总线许可BG(O)耦合到判断逻辑28,如下面所要进一步讨论的。另外,控制逻辑40连到总线12的控制线HPSNPREQ(A)和ARTRY(A)。
处理装置16和18及I/O装置20一同构成与总线12相连的一组装置。在一种实施例中,I/O装置20与处理装置18是一个整体,如虚线框42所示。在另一种实施例中,该组装置包括其他与总线12相连的I/O装置和处理装置。在又一种实施例中,处理装置18不与总线12相连。
处理装置24与I/O装置26一同构成与总线14相连的一组装置。在另一实施例中,I/O装置26与处理装置24是一个整体,如虚线框44所示。在又一实施例中,该组装置包括其他与总线14,相连的处理装置和I/O装置。
总线12和14不由中央仲裁装置控制,以使信息经总线14与经总线12传送的信息异步地被传送。总线12在ICL34、I/O装置20、以及处理装置16和18之间传送信息。仲裁逻辑22通过在连到总线12的潜在总线主控器即ICL34和处理装置16之间进行仲裁,而对这种信息传送进行同步。总线主控器控制着地址或数据总总线,并能启动或请求事务处理。
事务处理是总线装置之间的完全交换。事务处理最少包括在其中总线主控器控制地址总线的地址段期间的地址事务处理。事务处理还可包括在包含在该交换中的一或多个数据段期间在数据总线上的一或多个数据事务处理。
各潜在总线主控器,均通过相联的总线请求、地址总线许可、及数据总线许可控制线,而与仲裁逻辑22耦合,如上面所具体讨论的。在另一种实施例中,其他的潜在总线主控器被连到总线12,它们中每一个均经相联的总线请求、地址总线许可、及数据许可控制线而与仲裁逻辑22耦合。
总线14在ICL34、I/O装置26、及处理装置24之间传送信息。仲裁逻辑28通过在与总线14相连的潜在总线主控器即ICL34和处理装置24之间进行仲裁,对这种信息传送进行同步。各潜在总线主控器经相关的总线请求和总线许可控制线(如上面所进一步讨论的)与仲裁逻辑28耦合。在另一实施例中,其他的潜在总线主控器与总线14相连每个均经相关的总线请求、地址总线许可、及数据许可控制线,与仲裁逻辑28耦合。
总线12连到两个总线从属器,即I/O装置20和ICL34。总线14连到两个总线从属器,即I/O装置26和ICL34。因此,ICL34即作为总线12和总线14上的总线主控器又作为总线从属器而工作。总线从属器是被总线主控器寻址的装置。总线从属器在地址段标识,并用于在数据段中为总线主控器发出或吸收数据。
图2a-d显示了系统10的总线操作。参见图2a,仲裁逻辑28支持传统的微处理器总线协议。对于处理装置24和I/O装置26间的一个示例性的信息传送,处理装置24在地址段(“使用期”)50a中完成地址总线ADDRESS(B)上的地址事务处理。响应于地址总线ADDRESS(B)上的地址事务处理,处理装置24在与地址段50a相联的数据段(“使用期”)50b中完成数据总线DATA(B)上的数据事务处理。类似地,后面的信息传送操作具有地址段52a、54a及56a和分别相应的、响应于其的数据段52b、54b及56b。
如图2a所示,用传统的微处理机总线协议,地址段50a一直延续到其相关的数据段50b完成。因此,在处理装置24在地址段50a中完成了地址总线ADDRESS(B)上的地址事务处理之后,在相关的数据段50b中完成数据总线DATA(B)上的数据事务处理之前,处理装置24并不放弃对地址总线ADDRESS(B)的控制。在段50a和50b中,处理装置24同时控制地址总线ADDRESS(B)和数据总线DATA(B)。
通过比较,仲裁逻辑22支持地址总线ADDRESS(A)上的地址段与数据总线DATA(A)上的数据段的解耦,以此方式,仲裁逻辑22支持总线12上的流水线和分离事务处理操作。例如,处理装置16还能在第一个事务处理完成之前启动在总线12上的第二个事务处理;另外,处理装置16能把事务处理分成地址事务处理和数据事务处理。
参见图2b,对于在处理装置16和I/O装置20间的一个示例性的信息传送,地址段60a先于其相联的数据段60b完成,从而使地址段60a不同于其相联的数据段60b。这样分离事务处理操作使处理装置16能控制地址总线ADDRESS(A)而不必控制数据总线DATA(A)。
因此,处理装置16和18可通过完成地址总线ADDRESS(A)上的只寻址传送而不必使用数据总线DATA(A),从而减小总线的流量,节省数据总线带宽。地址段62a也可延续至其相关的数据段62b完成。另外,由于地址和数据段是不同的,不同处理装置的地址段64a和66a可在其各自相应的数据段64b和66b完成之前完成,从而实现处理器间的流水线化。这种流水线和分离事务处理操作,通过允许诸如数据段64b和66b的背对背数据段,有效地利用了数据总线DATA(A),从而使多个处理装置处理根据来自仲裁逻辑22的指令有效地交叠在总线12上。
参见图2c,各处理装置16和18有用于支持处理器内的流水线化的内部排队。对于处理装置16和I/O装置20之间的一个示例性的信息传送,处理装置16在其相应的数据段70b之前完成地址段70a。在为另一示例性信息传送时较后的地址段中,数据段70b(与前面的地址段70a相应)完成。在地址段72a中,其自己的相应数据段也完成了。
用于处理装置16的不同信息传送的地址段74a和76a可在其各自的相应数据段74b和76b完成之前完成。为简单起见,处理装置16在任一时刻最多允许多两个未完成(“未决”)数据段。因此,若有两个数据段尚未完成,则处理装置16在两个未决数据段之一完成之前不会完成另一地址段。在另一实施例中,处理装置16可同时允许两个以上的未决数据段。
参见图2b,总线12的协议一般要求数据段60b、62b、64b、及66b按它们各自的相应地址段60a、62a、64a、及66a的顺序完成。同样地,参见图2c,处理装置16在设计上把数据段70b、72b、74b及76b按它们各自相应的地址段70a、72a、74a、及76a的顺序完成。
然而,参见图2d,无固定顺序的分离事务处理,在某些情况下(如下面所进一步讨论的)最好由仲裁逻辑22、ICL34、及处理装置16和18支持。在这类情况下,数据段80b、82b、84b、和86b不必按它们各自相应的地址段80a、82a、84a和86a的顺序完成。如图2d所示,数据段86b在数据段84b之前完成,尽管地址段84a先于地址段86a完成。以此方式,包含地址段86a及其相应数据段86b的信息传送被“包络”在包含地址段84a及其相应数据段84b的信息传送中。
各地址段和数据段包括三段,即仲裁、传送、和终止。在地址段的仲裁段,仲裁逻辑22响应总线仲裁信号并把对地址总线ADDRESS(A)的控制授予总线主控器。在数据段的仲裁段中,仲裁逻辑22把对数据总线DATA(A)的控制授予总线主控器。多个潜在总线主控器可竞争总线12的共用资源。促裁逻辑22支持公平或其他协议。另外,仲裁逻辑22能安置总线主控器,以减少仲裁的开销,从而使总线主控器不用对其仲裁便可控制总线。
在地址段的传送段中,信号交换线和地址总线ADDRESS(A)由总线主控器操作。在数据段的传送段中,总线主控器对数据总线DATA(A)进行取样或驱动。在终结段,段被终结或通知再试。
应特别提到,总线14和仲裁逻辑28的协议未能支持流水线和分离事务处理操作。总线12和14最好异步运行并且不由中央仲裁装置控制,使总线12不与总线14直接相连。以此方式,总线12和处理装置16和18的流水流化及分离事务处理的好处不会因总线12与总线14直接相连而丧失。
图3是处理装置16的系统接口100的示意框图。处理装置18在设计上与处理装置16相同。系统接口100包括耦合在统一的高速缓冲存储器104和地址总线ADDRESS(A)之间的窥探逻辑102。
高速缓冲存储器104存储指令和数据。高速缓冲存储器104是具有八路组结合性的、实际寻址和索引的32千字节高速缓冲存储器。高速缓冲存储器104形成128个区段的八组。每个16字的高速缓冲存储器约包括两个八字区段。这两个区段存储相邻的存储地址,因而共用公共的线路地址标记。高速缓冲存储器的凝聚性由区段的粒度来维持。
地址转换/控制逻辑110与高速缓冲存储器104、读取排队106、及存储排队108耦合。地址转换/控制逻辑110还与指令取出器112和执行单元114耦合。执行单元114包括浮点处理单元、定点处理单元、及分支处理单元。
窥探逻辑102“窥探”总线12上的事务处理,以便向高速缓冲存储器104提供凝聚性。凝聚性是一种机制,用于维持处理装置间共享的信息的完整性,特别是被处理装置修正的信息的完整性。为了保证凝聚性,处理装置16通过监测总线12上的事务处理来进行“窥探”,以判定是否要求对于高速缓冲存储器104,读取排队106、或存储排队108采取凝聚行动。
系统接口100还包括读取排队106和存储排队108,每个均耦合在地址转换/控制逻辑110和地址总线ADDRESS(A)之间。
作为例子参见图1,处理装置16从I/O装置20的特定地址输入信息。处理装置16修正信息并将其存入高速缓冲存储器104。随后,处理装置20试图从I/O装置20的该特定地址输入信息。处理装置16的窥探逻辑102“窥探”到此地址并判定高速缓冲存储器104在窥探的地址存储了信息,这个信息具有相对于I/O装置20中的相应信息的修改状态。
响应于这个匹配,处理装置16确认ARTRY(A)并通知处理装置18以下匹配,即与在高速缓冲存储器104中的修正信息的匹配。由于处理装置16认识到处理装置18需要存取修正信息,处理装置16向I/O装置20的特定地址执行修正信息的脉冲串写入复制(“窥探推动”)然后,处理装置18成功地从I/O装置的特定地址输入信息。
处理装置的事务处理可包括多个地址或数据拍。脉冲串通常是多个拍信息传送,其总的大小等于高速缓冲存储器区段。相一般是处理装置接口上的单一状态,它可在多个总线周期上延伸。总线周期一般是由总线取样率确定的周期。
高速缓冲存储器的凝聚性依靠区段的粒度维持,从而为高速缓冲存储器104的各区段维持单独的凝聚状态位。若从存储器填满了线路的第一区段,则处理装置16可试图作为低优先权总线操作(称为动态再装载操作来装载第二个区段。
高速缓冲存储器104有专用于地址转换/控制逻辑110的单独口,用于取出及装载/存储操作。此外,高速缓冲存储器104还有专用于窥探逻辑102的另一个口,用于窥探总线12上的事务处理。因此,窥探操作并不降低处理装置16的取出及装载/存储操作。
系统接口100的读取排队106和存储排队108支持诸如地址流水线化、窥探、及写入缓冲的特征。读取排队106包括两个读取排队元素,即A和B。读取排队元素A和B可共同向多达两个的未决读取操作提供缓存。
存储排队108包括三个存储排队元素,即SNOOP、A和B。存储排队元素A和B缓冲存储操作及区段替代去除,以使区段替代能在从高速缓冲存储器104至I/O装置20的修正区段复制之前进行。
存储排队元素SNOOP把窥探推进操作(在下面将进一步讨论)排在存储排队元素A和B的操作之前。每当需要窥探推进操作时,若ICL34认定HPSNPREQ(A),处理装置16便把窥探推进操作放在存储排队元素SNOOP中;否则,处理装置16把窥探推进操作放在存储排队元素A和B之一中。
参见图1,由在上面详细讨论的凝聚技术和仲裁逻辑22,在总线12上支持多个潜在总线主控器(处理装置16、处理装置18、ICL34)。另外,多个潜在总线主控器(处理装置24、ICL34)可竞争总线14的共用资源。仲裁逻辑28支持公平或其他协议,并能“安置”总线控制器,,以减小仲裁开销。
多处理器的软件支持由原子存储操作提供。例如,原子总线存取可试图成为对同一地址的读一写操作的一部分,而造成处理装置放弃独占存取的另一总线控制器将不会存取。处理装置分别开始读出和写入,但通知存储系统它正尝试原子操作。若操作失败,状态被保留,以使处理装置能再试。
关于总线12,潜在总线主控制器(处理装置16、处理装置18、ICL34)认定其总线请求线路(BR1(A)、BR2(A)、BR(I)),以表明潜在总线主控器正请求对地址总线ADDRESS(A)的控制。当潜在总线主控器需要执行总线处理时,该潜在总线主控器持续认定其总线请求线路。若被安置,总线主控器不认定其总线请求线路。若流水线已满,总线请求线路可被认定。
潜在总线主控器否定其总线请求线路,以表明潜在总线主控器未请求对地址总线ADDRESS(A)的控制。这种情况下,总线主控器可能没有未决的总线操作、可能被安置,或者ARTRY(A)线路可在总线12的前一周期上被认定。即使正有另一未决事务处理,潜在总线主控器在来自仲裁逻辑22的可接受合格总线授予的至少一个总线周期之后才能否定其总线请求线路,潜在总线主控器还响应正被认定的ARTRY(A)线路,将其总线请求线路否定至少一个总线周期。
响应于认定其总线请求线路的潜在总线主控器,仲裁逻辑22认定潜在总线主控器的总线授予线(BG1(A)、BG2(A)、BG(I)),以表明潜在总线主控器可以以适当的条件对总线12的下一周期的地址总线ADDRESS(A)进行控制。仲裁逻辑22可随时认定总线授予线。若总线主控器需要进行第二个处理,则总线主控器在第一次处理的地址段完成后再次检查对其总线授予线的合格认定。对潜在总线主控器的总线授予线的否定,表明潜在的总线主控器未被允许在总线12的下一周期利用地址总线ADDRESS(A)。仲裁逻辑22每次仅认定一条总线授予线,以使地址总线ADDRESS(A)每次仅受一个潜在总线主控器的控制。
控制线ARTRY(A)是双向信号,使潜在总线主控器使其他潜在总线主控器再试总线操作。潜在总线主控器为高速缓冲存储器/存储器凝聚性或为硬件排队问题而认定ARTRY(A)。例如,若外出的排队36已满,ICL34可认定ARTRY(A)。
潜在总线主控器认定控制线ARTRY(A),以表明潜在总线主控器检测到应再次执行窥探的地址段的状态。若作为窥探的结果,潜在总线主控器需要把信息复制到I/O装置20,潜在总线主控器如上所述地认定其总线请求线。对控制线ARTRY(A)的不认定,表明窥探的地址段不需再执行。
若总线主控器目前正控制地址总线ADDRESS(A),则对ARTRY(A)的认定,表明该总线主控器应立即否定其总线请求线,直至否定ARTRY(A)之后的一个总线周期。然后,总线主控器应尝试再执行窥探的地址段,对ARTRY(A)的否定表明总线主控器不必再执行窥探的地址段。
若潜在总线主控器目前未控制地址总线ADDRESS(A),则对ARTRY(A)的认定表明潜在总线主控器应立即否定其总线请求线,直至否定ARTRY(A)之后的一个总线周期。
仲裁逻辑22认定一潜在总线主控器的数据总线授予线(DBG1(A),DBG2(A),DBG(I)),以表明潜在总线主控器在适当条件下可在总线12的下一周期控制数据总线DATA(A)。仲裁逻辑22可随时认定数据授予线。对潜在总线主控器的数据总线授予线的否定,表明该潜在总线主控器未被允许在总线12的下一周期开始使用数据总线DATA(A)。
仲裁逻辑22通过有选择地认定和否定总线授予线BG1(A),BG2(A),BG(I))及数据总线授予线(DBG1(A),DBG2(A),DBG(I)),影响流水线化。虽然处理装置16可将其自己的总线操作流水线化(处理器内流水线化)至一个层次的深度,可在多个潜在总线主控器间的总线12上出现的流水线化的最大层次数(处理器内流水线化)则不受限制。
作为总线12上的总线从属器,ICL输入从总线12发向总线14的读和写指令,且ICL34把这类指令放在外出排队36中。作为总线14上的总线主控器,ICL34认定至仲裁逻辑28的BR(O),以获得对总线14的总线ADDRESS(B)和DATA(B)的控制。响应于ICL34对BR(O)的认定,仲裁逻辑28在适当的时刻,通过认定BG(O),把对总线14的控制授予ICL34。响应于仲裁逻辑28对BG(O)的认定,ICL34执行在外出排队中的一或多个指令。
作为总线14上的总线从属器,ICL34输入从总线14发向总线12的读和写指令,且ICL34把这类指令置于进入排队38中。作为总线12上的总线主控器,ICL34认定至仲裁逻辑22的BR(I),以获得对总线12的总线ADDRESS(A)的控制。响应于ICL34对BR(I)的认定,仲裁逻辑通过认定BG(I)而在适当时刻把对ADDRESS(A)的控制授予ICL34。响应于仲裁逻辑22对BG(I)的认定,ICL34完成对进入排队38中的一或多个指令的地址段。在以后的适当时刻,仲裁逻辑22通过认定DBG(I),把对DATA(A)的控制授予ICL34。响应于仲裁逻辑22对DBG(I)的控制,ICL34完成与前面完成的地址段有关的数据段。
作为总线12上的总线主控器,ICL34认定控制线HPSNPREQ(A)。响应于对HPSNPREQ(A)的认定,处理装置16把任何所需的窥探推进操作,作为存储排队108(图3)中的最高优先级操作,置于存储排队元素SNOOP中,以使这个窥探推进操作成为处理装置16为总线12排队的下一操作。
如上面结合图2b-d所进一步讨论的,总线12的协议一般要求数据段按它们的各自相应的地址段的顺序完成。同样,处理装置16在设计上把数据段按它们各自相应的地址段的顺序完成。而且,如上面结合图2d所进一步讨论的,无顺序的分离事务处理在某些情况下最好由仲裁逻辑22、ICL34、及处理装置16和18支持。
为支持这种无顺序分离事务处理,仲裁逻辑22认定控制线DBWO(A)。响应于仲裁逻辑22对控制线DBWO(A)和DBG1(A)的认定,处理装置16为一未决的写入数据段而不是为未决的读取数据段,控制数据总线DATA(A)。在这种情况下控制了数据总线DATA(A)之后,即使相关的读取地址段在相关的写入地址段之前。处理装置16还是在完成(与前面完成的读取地址段有关的)未决读取数据段之前,先完成(与前面完成的写入地址段有关的)未决写入数据段。
以此方式,包含写入地址段及其相关的写入数据段的信息传送,被“包络”在包含读取地址段及其相应的读取数据段的信息传送中。这把写入操作有效地“包络”在读取操作中。该写入操作可是窥探推进操作。类似地,响应于仲裁逻辑22对控制行DBWO(A)和DBG2(A)的认定,处理装置18为一未决写入数据段对数据总线DATA(A)进行控制。
以下事件序列,描述了一示例性的操作(1)处理装置16通过在没有地址再试的情况下成功完成一读取地址段而开始一读取操作,以使相应的读取数据段未决,(2)处理装置16,通过在没有地址再试的情况下成功完成一写入地址段,开始一写入操作,以使相应的写入数据段未决,(3)仲裁逻辑22认定控制线DBWO(A)和DBG1(A),(4)处理装置16把未决写入操作“包络”在读取操作中,使写入数据段相对于读取数据段不按顺序地完成,(5)仲裁逻辑22认定控制行DBG1(A)而不认定DBWO(A),且(6)处理装置16完成未决读取数据段。在任何这些事件之间,其他潜在总线主控器可尝试任意次的总线操作。
在认定DBWO(A)之后,仲裁逻辑22不认定潜在总线主控器的数据总线授予行,直至仲裁逻辑22证实潜在总线主控器有未决写入数据。对DBWO(A)的否定,表明各潜在总线主控器应按它们各自的相应地址段的顺序完成数据段。
即使潜在总线主控器没有未决读取数据段,仲裁逻辑22也能认定DBWO(A),但对DBWO(A)的这种认定对写入数据段完成的顺序没有影响。写入数据段的顺序,由认定BG1(A)时存储排队108(图3)中的存储操作的顺序决定,而与何时认定DBG1(A)无关。
在一个读取操作中,可包括一个以上的写入操作。例如,窥探推进操作是最高优先级的写入操作,但在一具体时刻,在存储排队108中可有一个以上窥探推进操作。在此情况下,多个窥探推进操作可被包括在一个读取操作中。
仲裁逻辑22监测总线12上的操作并使总线主控器和总线从属器相对于总线12的行动得以同步。为了控制,处理装置16和18、仲裁逻辑22、及ICL34把行动识别为特定的总线事务处理类型。为支持和同步流水线、分离、及无顺序事务处理,仲裁逻辑22利用了控制线DBWO(A)和各潜在总线主控器的各个总线请求线、总线授予行、及数据总线授予线。为相对其相应地址段不按顺序地完成数据段,仲裁逻辑22把不按顺序的数据段与其原有地址段相联系。
重要的是,系统10通过通信逻辑电路(包括仲裁逻辑22和ICL34),支持总线12和14之间的信息传送。总线14和仲裁逻辑28的协议未能支持流水线和分离事务处理操作。部线12和14最好异步操作且不由中央仲裁装置控制,以使总线12不与总线14直接相连。由此,不会由于直接连接总线12和14而牺牲总线12和处理装置16与18的流水线化和分离事务处理的好处。
通信逻辑电路(包括仲裁逻辑22和ICL34)在总线12与一非流水线化非分离事务处理的总线(如总线14)之间传送信息。与这类总线间传送相联系,可产生死锁状态,其中与总线14相连的第二处理装置(如处理装置24)等候着与总线12相连的第一处理装置(如处理装置16)的行动,而第一处理装置又等候着第二处理装置的独立行动。响应于这类死锁状态,通信逻辑电路(包括仲裁逻辑22和ICL34),利用控制线DBWO(A)和DEADLOCK(I),通过启动与总线12相连的第一处理装置的动作,解决该死锁状态。
下列事例序列,描述了一例死锁状态及利用通信逻辑电路(包括仲裁逻辑22和ICL34)的解决办法。
事件1处理装置18通过在没有地址再试的情况下成功完成读取地址段,开始在I/O装置26读取信息的读取操作,从而使相应的读取数据段未决,并使一读取指令被ICL34置于外出排队36中。
事件2处理装置24通过成功完成一读取地址处理,开始在I/O装置20读取信息的读取操作,从而使一读取指令被ICL34置于进入排队38中。由于总线14及仲裁逻辑28的协议未支持流水线及分离事务处理操作,处理装置24在完成读取地址处理后并不放弃对地址总线ADDRESS(B)的控制。相反,处理装置24在等待完成数据总线DATA(B)上的数据事务处理时,同时控制着地址总线ADDRESS(B)和数据总线DATA(B)。
事件3ICL34的控制逻辑40,响应于同时在外出排队36和进入排队38中的存储指令,检测到潜在的死锁状态。因此,控制逻辑40认定至仲裁逻辑22的控制线DEADLOCK(I)。
事件4为简单起见,处理装置18最多同时允许两个未决数据段。因此,响应于对DEADLOCK(I)的认定及已有未决读取数据段的处理装置18(在上面结合事件1进一步讨论的),仲裁逻辑可以(a)利用BG2(A),为除窥探推进操作之外的任何后续总线操作,制止处理装置18对地址总线ADDRESS(A)的控制,或者(b)把对地址总线ADDRESS(A)的控制授予处理装置18但响应于任何不是写入存储器的操作而认定ARTRY(A)。以这两种方式之一,仲裁逻辑22使处理装置18为所需的窥探推进操作保留两个允许的未决数据段中的一个。
事件5作为总线12上的总线主控器,ICL34认定至仲裁逻辑22的BR(I),以得到对总线12的总线ADDRESS(A)的控制。响应于ICL34对BR(I)的认定,仲裁逻辑22,通过认定BG(I),在适当的时刻把对ADDRESS(A)的控制授予ICL34。响应于仲裁逻辑22对BG(I)的认定,ICL34认定HPSNPREQ(A)并为在进入排队38中的(在上面结合事件2进一步讨论的)读取指令完成一地址段。
事件6处理装置18“窥探”地址并确定其高速缓冲存储器在窥探的地址存储相对于在I/O装置20中的相应信息处于修正状态的信息。响应于此匹配,处理装置18认定ARTRY(A),以通知ICL34与其高速缓冲存储器中的修正信息的匹配。
事件7由于处理装置18认识到ICL34需要存取修正的信息,且由于HPSNPREQ(A)被认定,处理装置18把一窥探推进操作作为其存储排队中的最高优先级操作置于存储排队元素SNOOP中(在上面结合事件3进一步讨论过),以使这种窥探推进操作成为处理装置18为总线12排队的下一个操作。
事件8响应对ARTRY(4)的认定,总线12上除处理装置18外的所有其他潜在总线主控器,均撤回总线请求。由于处理装置18认定ARTRY(A),处理装置18认定BR2(A)。响应于对BR2(A)的认定,仲裁逻辑22认定BG2(A)。响应于对BG2(A)的认定,处理装置18通过在没有再试的情况下成功完成一写入地址段,开始(在上面结合事件7具体讨论的)窥探推进操作,从而使一写入数据段未决。
事件1至8产生死锁状态。在事件8后,处理装置18有两个未决数据段。第一个示决未决数据段是一读取数据段,它因等待处理装置24的一独立行动(即处理装置对地址总线ADDRESS(B)和数据总线DATA(B)的控制的放弃)而被处理装置18所推迟。在处理装置24放弃对ADDRESS(B)和DATA(B)的控制之前,ICL34不能响应处理装置18在事件1开始的读取操作而从I/O装置26读取信息。处理装置18在ICL34能读取这类信息之前,不完成第一个未决数据段。第二个未决数据段是因等待第一个未决数据段的完成而被处理装置18推迟的写入数据段。
然而,处理装置24等待处理装置18的行动,即处理装置18完成第二个未决数据段。在处理装置18完成第二个未决数据段之前,ICL34不能响应处理装置24在事件2开始的读取操作从I/O装置20读取信息。在ICL34能读取这种信息之前,处理装置24不放弃对地址总线ADDRESS(B)和数据总线DATA(B)的控制。
在最佳实施例的一个重要方面,总线仲裁逻辑22检测到(1)处理装置18有未决读取数据段,其后跟有未决写入数据段。且(2)ICL34正认定DEADLOCK(I)以表示潜在死锁状态。在这类情况下,仲裁逻辑22最好通过认定DBG2(A)并同时认定DBWO(A),把对数据总线DATA(A)的控制给予处理装置18。响应于对DBG2(A)和DBWO(A)的认定,处理装置18把未决窥探推进操作“包络”在读取操作中,以使未决写入数据段相对于未决读取数据段不按顺序地被完成。
此时,处理装置18还剩下一个未决读取数据段,同时ICL34有一未决读取数据段。若仲裁逻辑22把对DATA(A)的控制授予处理装置18,则死锁状态将持续。因此,响应于ICL34对DEADLOCK(I)持续的认定,仲裁逻辑22通过认定DBG(I)而把对DATA(A)的控制授予ICL34。
响应于对DBG(I)的认定,ICL34根据处理装置24在事件2开始的读取信息,经数据总线DATA(A)从I/O装置20读取信息,以完成ICL34的未决读取数据段。ICL34随后经数据总线DATA(B)把这类信息传到处理装置24并否定DEADLOCK(I)。
在处理装置24通过输入这类信息而完成其读取操作后,它放弃对地址总线ADDRESS(B)和数据总线DATA(B)的控制。在处理装置24放弃对总线14的这类控制后,仲裁逻辑28通过响应于ICL34对BR(O)的认定而认定BG(O),把对总线14的控制授予ICL34。然后,ICL34根据处理装置18在事件1开始的读取操作,从I/O装置26读取信息。
由于未认定DEADLOCK(I),仲裁逻辑22通过认定DBG2(A)而不认定DBWO(A),从而把对DATA(A)的控制授予处理装置18。响应于对DBG2(A)的认定,处理装置18根据处理装置18在事件1开始的读取操作,经数据总线DATA(A)从ICL34输入信息,以完成处理装置18的未决读取数据段。
图4是系统10的第二个实施例的框图。如图4所示,系统10与图1中所示的相同,只是处理装置24、I/O装置26及仲裁逻辑28被替代了。在它们的位置上,图4显示了处理装置120、处理装置122、I/O装置124、及仲裁逻辑126。
处理装置120和122在设计上与处理装置16和18相同。另外,仲裁逻辑126在设计上与仲裁逻辑22相同。如图4所示,总线14在设计上与总线12相同。总线14包括地址总线ADDRESS(B)、数据总线DATA(B)、及控制线ARTRY(B)、HPSNPREQ(B)及DBWO(B)。同样,图4的控制线DEADLOCK(O)、DBG(O)、BG(O)、及BR(O)在设计上分别与控制线DEADLOCK(I)、DBG(I)、BG(I)及BR(I)相同。
对图4所示的系统10,以下事件序列描述了一例锁状态及通信逻辑电路(包括仲裁逻辑22、仲裁逻辑126、及ICL34)对其的解除。
事件1处理装置18通过在没有再试的情况下成功完成一读取地址段,开始在I/O装置24读取信息的读取操作,以使一个相应的读取数据段未决,并使一个读取指令被ICL34置于外出排队36中。
事件2处理装置120通过在没有再试的情况下成功完成一读取地址段,开始在I/O装置20读取信息的读取操作,以使相应的读取数据段未决,并使一读取指令被ICL34置于进入排队38中。
事件3ICL34的控制逻辑40响应于同时在外出排队36和进入排队38中的存储指令,检测潜在的死锁状态。因此,控制逻辑40对仲裁逻辑22认定控制线DEADLOCK(I)并对仲裁逻辑126认定控制线DEADLOCK(O)。
事件4响应于对DEADLOCK(I)的认定及已有未决读取数据段的处理装置18,仲裁逻辑22使处理装置18为所需的窥探推进操作而保留其两个允许的未决数据段中的一个。或者,响应于对DEADLOCK(O)的认定及已有未决读取数据段的处理装置120,仲裁逻辑126使处理装置120为所需的窥探推进操作而保留其两个允许的未决数据段中的一个。
事件5作为总线12上的总线主控器,ICL34认定至仲裁逻辑22的BR(I),以获得对总线12的总线ADDRESS(A)的控制。响应于ICL34对BR(I)的认定,仲裁逻辑22通过认定BG(I)而在适当时刻把对ADDRESS(A)的控制授予ICL34。响应于仲裁逻辑22对BG(I)的认定,ICL34认定HPSNPREQ(A)并为进入排队38中的(在上面结合事件2进一步讨论过)读取操作完成地址段。
事件6处理装置18“窥探”地址并确定其高速缓冲存储器在窥探的地址存储了信息,该信息所处的修正状态系相对于I/O装置20中的相应信息而言。响应于该匹配,处理装置认定ARTRY(A)以通知ICL34在其高速缓冲存储器中与修正信息的匹配。
事件7由于处理装置18认识到ICL34需要存取修正的信息,且由于HPSNPREQ(A)被认定,处理装置18把窥探推进操作作为其存储排队中最高优先级的操作而置于存储排队元素SNOOP中,以使这种窥探推进操作成为处理装置18为总线12排队的下一个操作。
事件8响应于对ARTRY(A)的认定,除处理装置18外的所有其他潜在总线主控器均撤回总线请求。由于处理装置认定ARTRY(A),处理装置18认定BR2(A)。响应于对BG2(A)的认定,仲裁逻辑22认定BG2(A)。响应对BG2(A)的认定,处理装置18通过在没有地址再试的情况下成功完成写入地址段而开始窥探推进操作,以使写入数据段未决。
事件9作为总线14上的总线主控器,ICL34认定至仲裁逻辑126和BR(O),以获得对总线14的总线ADDRESS(B)的控制。响应于ICL34对BR(O)的认定,仲裁逻辑126通过认定BG(O)在适当时刻把对ADDRESS(B)的控制授予ICL34。响应仲裁逻辑126对BG(O)的认定,ICL34认定HPSNPREQ(B)并为外出排队36中的(在上面结合事件1进一步讨论的)读取指令完成地址段。
事件10处理装置120“窥探”地址并确定其高速缓冲存储器在窥探的地址存储有相对I/O装置124中的相应信息处于修正状态的信息。响应于这种匹配,处理装置120认定ARTRY(B),以通知ICL34与在其高速缓冲存储器中的修正信息的匹配。
事件11由于处理装置120认识到ICL34需要存取修正的信息,且由于HPSNPREQ(B)被认定,处理装置120把窥探推进操作作为其存储排队中最高优先级的操作置于存储排队元素SNOOP中,以使该窥探推进操作成为处理装置120为总线14排队的下一个操作。
事件12响应于对ARTRY(B)的认定,除处理装置120之外的所有其他潜在总线主控器均撤回总线请求。由于处理装置120认定ARTRY(B),处理装置120认定BR1(B)。响应于对BR1(B)的认定,仲裁逻辑126认定BG1(B)。响应于对BG1(B)的认定,处理装置120,通过在没有地址再试的情况下成功完成写入地址段,开始窥探推进操作,以使写入数据段未决。
从事件1至12产生一死锁状态。在事件12后,处理装置18有两个未决数据段,且处理装置120有两个未决数据段。处理装置18的第一个未决数据段,是因等待处理装置120的独立行动即处理装置120完成其第二个未决数据段而被处理装置18推迟的读取数据段。在处理装置120完成其第二个未决数据段之前,ICL34不能响应处理装置18在事件1开始的读取操作而从I/O装置124读取信息。在ICL34能读取这种信息之前,处理装置18不完成其第一个未决数据段。处理装置18的第二个未决数据段是被处理装置18推迟以等待其第一个未决数据段完成的写入数据段。
然而,处理装置120等待处理装置18的动作,即等待处理装置18完成其第二个未决数据段。在处理装置18完成其第二个未决数据段之前,ICL34不能响应处理装置120在事件2开始的读取操作而从I/O装置20读取信息。在ICL34能读取这种信息之前,处理装置120不完成其第一个未决数据段。处理装置120的第二个未决数据段是被处理装置120推迟以等待其第一个未决数据段完成的写入数据段。
在最佳实施例的一个重要方面,总线仲裁逻辑22检测(1)处理装置18有未决读取数据段,其后跟有未决写入数据段,且(2)ICL34正认定DEADLOCK(I)以表明潜在的死锁状态。在这种情况下,仲裁逻辑22最好通过认定DB2(A)并同时认定DBWO(A),把对数据总线DATA(A)的控制授予处理装置18。响应于对DBG2(A)和DBWO(A)的认定,处理装置18把其未决窥探推进操作“包络”在其读取操作中,以使其未决写入数据段相对于其未决读取数据段不按顺序地完成。
响应于ICL34对DEADLOCK(I)持续认定,仲裁逻辑22通过认定DBG(I),把对DATA(A)的控制授予ICL34响应于对DBG(I)的认定,ICL34根据处理装置120在事件2开始的读取操作,通过数据总线DATA(A)从(I/O)装置20读取信息,从而完成ICL34的未决读取数据段。ICL34随后经数据总线DATA(B)把这种信息传送到处理装置120,并否定DEADLOCK(I)和DEADLOCK(O),从而解除死锁状态。
或者,总线仲裁逻辑126检测(1)处理装置120有未决读取数据段,其后跟有未决写入数据段且(2)ICL34正认定DEADLOCK(O)以表明潜在的死锁状态。在此情况下,总线仲裁逻辑126最好通过认定DBG1(B)并同时认定DBWO(B),把对数据总线DATA(B)的控制授予处理装置120。响应于对DBG1(B)和DBWO(B)的认定,处理装置120把其未决窥探推进操作“包络”在其读取操作中,从而使其未决写入数据段相对其未决读取数据段不按顺序地完成。
响应于ICL34对DEADLOCK(O)的持续认定,仲裁逻辑126,通过认定DBG(O),把对DATA(B)的控制授予ICL34。响应对DBG(O)的认定,ICL34,根据处理装置18在事件1开始的读取操作,通过数据总线DATA(B)从I/O装置124读取信息,从而完成ICL34的未决读取数据段。ICL34随后经数据总线DATA(A)把这种信息传送到处理装置18并否定DEADLOCK(I)和DEADLOCK(O),从而解除死锁状态。
控制线DBWO(A)还可用于某些外部排队控制器情况,及诸如“转储和运行”的更复杂存储操作。例如,控制线DBWO(A)可用于修正的高速缓冲存储器区段被去除到存储缓冲器同时存储器被装载操作所存取的情况。这种去除最好在不对装载存储器等待时间产生不利影响的情况下,由存储系统输入。由于处理装置16可使处理流水线化,可在再试地址总线处理的同时,使数据总线处理等待。
尽管详细描述了本发明及其优点,但应理解,在不脱离如所附权利要求书限定的本发明的实质和范围的前提下,可对其进行各种改变替换和更动。
权利要求
1.用于在多条总线之间传送信息的系统,其特征在于包括第一总线,用于在多个第一总线装置之间传送信息;第二总线,用于在多个第二总线装置之间传送信息;逻辑装置,用于所述第一和第二总线之间传送信息,并用于允许一个第一总线装置采取行动,该行动响应于下述情况,即第二总线装置等待所述动作而所述第一总线装置又等待所述第二总线上的单独的行动。
2.权利要求1的系统,其特征在于所述多个第一总线装置包括输入/输出装置,且其中所述行动包括由所述第一总线装置向所述输入/输出装置输出特定的信息。
3.权利要求1的系统,其特征在于所述第一总线装置通过完成响应于各自的相应地址段的多个数据段来经所述第一总线传送信息,所述数据段被排出顺序以按所述各自的相应地址段的顺序完成。
4.权利要求1的系统,其特征在于所述第二总线相对于经所述第一总线传送的信息异步地传送信息。
5.权利要求1的系统,其特征在于所述单独动作包括所述第二总线装置放弃对所述第二总线的控制。
6.权利要求1的系统,其特征在于所述多个第一总线装置包括与所述第一总线装置构成整体的输入/输出装置,且其中所述行动包括由所述输入/输出装置于向所述逻辑装置输出特定的信息。
7.权利要求1的系统,其特征在于所述多个第二总线装置包括与所述第二总线装置构成整体的输入/输出装置,且其中所述独立动作包括由所述输入/输出装置向所述逻辑装置输出特定的信息。
8.用于在多条总线之间传送信息的系统,其特征在于包括第一总线,用于在多个第一总线装置之间传送信息,至少一个第一总线装置通过完成与多个数据段分离的多个地址段传送信息;第二总线,用于在多个第二总线装置之间传送信息;逻辑装置,用于监测所述地址和数据段并响应其而调节经过所述第一和第二总线及在第一和第二总线之间的信息传送。
9.处理设备,其特征在于包括用于把该设备连到一总线并连到一控制线的装置;用于使所述设备通过完成每个均响应于各自的相应地址段的多个数据段而经所述总线传送信息的装置,所述数据段被排出顺序以按所述各自的相应地址段的顺序完成;用于使该设备响应于所述控制线的状态而在一个特定的所述数据段的前一个之前完成该特定所述数据段的装置。
10.在多条总线之间传送信息的方法,其特征在于包括以下步骤经过第一总线在多个第一总线装置之间传送信息;经过第二总线在多个第二总线装置之间传送信息;经过逻辑装置在所述第一和第二总线之间传送信息;利用所述逻辑装置,允许一个第一总线装置采取动作,该动作响应于下述情况,即第二总线装置等待上述动作而所述第一总线装置等待所述第二总线上的单独动作。
11.在多条总线之间传送信息的方法,其特征在于包括以下步骤经过第一总线在多个第一总线装置之间传送信息,至少一个所述第一线装置通过完成与多个数据段分离的多个地址段而传送信息;经过第二总线在多个第二总线装置之间传送信息;利用逻辑装置,监测所述地址和数据段并响应其调节通过所述第一和第二总线及在所述第一和第二总线之间的信息传送。
全文摘要
用于在多条总线之间传送信息的方法和系统。信息经第一总线在多个第一总线装置之间传送。信息经第二总线在多个第二总线装置之间传送。信息经逻辑装置在第一和第二总线之间传送。利用逻辑装置,允许一个第一总线装置采取动作响应于下述情况,即第二总线装置等待上述动作,而该第一总线装置又等待第二总线上的单独动作。
文档编号G06F13/38GK1094526SQ9410052
公开日1994年11月2日 申请日期1994年1月20日 优先权日1993年1月29日
发明者查尔斯·罗伯茨·摩尔, 约汉·斯蒂芬·穆海什, 罗伯特·詹姆斯·里斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1