多计算机系统 本发明涉及一种一个或多个独立主机共享一个或多个共享IO设备且每个主机有选择地发布一个事务处理的多计算机系统。
通常,如果需要将主计算机(以后简称为主机)的总线扩展以便将其与更大数量的IO装置相连或将其物理上与其分开的被扩展的I0设备相连,则一般要用一个总线桥(见“Serialijation of ISA busfor transmission up to 100 mthrough an optical fiber”:一文,发表中“Nikkel Electronics”,1994.8.22(No.615)第119页至129页)。图17示出了总线桥的结构,参考号1表示主机,2表示一个被扩展的IO设备,它包括一个IO装置,例如一个IO插件,3表示在主机1内的IO总线,40表示与IO总线3相连的IO插件,5代表与IO总线3相连的主机适配器。IO主机适配器5包括一个IO总线接口51,一个事务处理包处理单元53及一个位于IO总线3的一侧的传输路径接口54。
数字6表示连接主机1和被扩展的IO设备2的IO扩展电缆,7表示连接到在被扩展IO设备中的IO总线8的IO端口适配器。IO端口适配器7还包括一个IO总线接口74,一个事务处理包处理单元73及一个位于IO总线8-侧的主机传输路径接口71。数字42和43分别表示连接到IO总线8的插件,而数字10表示位于主机内地CPU(中央处理单元)。主机1的传送路径接口54通过IO扩展电缆6连接到被扩展的IO设备2的主机传输路径接口71。
当在主机1的IO总线3上产生对被扩展的IO设备2的一侧的IO插板42和插板43的事务处理时,IO主机适配器5有选择地截获该事务处理。然后,根据早先规定的包的格式将该事务处理进行分包,并通IO扩展电缆6将其传输到被扩展的IO设备2一侧的IO端12适配器7。IO适配器7对包信息进行译码,这样可将在原来主机1的IO总线3上发出的事务处理发送到被扩展IO设备2内的IO总线8上。
于是,主机1的CPU100只在当指定了分别加到IO插件40,42和43的IO插板地址值“100”,“300”及“400”时才发布事务处理,以便可以无须知道连接到内部IO总线2的IO插件40和41与连接到被扩展的设备2的IO总线8的IO插件42和43之间的异同而可自由地访问上述IO插件。
同时,如果把所有并行总线信号连接到被扩展的IO设备2会增加IO扩展电缆6的信号线数目,而不会加长信号线。由于这一缘故,上述总线桥结构在将分包的总线信号加到IO扩展电缆6之前串行化了分包后的总线信号。用这种方式,又可在被扩展的IO设备2的IO总线8上产生在IO总线3上的事务处理。因此,在IO总线8上的IO插件42和43可以与连接到主机1的IO总线的1O插件40完全兼用地工作。
然而,该总线结构方式只能基本上支持在单个主机1与单个扩展的IO设备2之间的一对一连接。例如,为了将两个主机连接到用作为被共享IO装置的单个扩展的IO设备,上述总线桥结构方式可用于如图18所示的结构方式,图中与图17中相应的元件用同一数字表示,而数字11则表示为用于在主机1A与1B间之间进行通信的主机际通信网络。
在这种结构中,当有两个主机1A和1B要访问共享扩展的IO设备2时,它们不得不进行争用控制。然而,IO端口适配器7A和7B分别不具争用控制功能,因为它们只相应于单主机连接。因此,必须在主机1A和1B分别向IO总线3A和3B发布事务处理前,用一个使用在主机之间进行的通信网络11的单独的路由来执行在主机1A和1B之间的争用控制。
此外,如果多主机1A和1B共享扩展的IO设备2,主机1A和1B须以其本身IO空间变换在扩展的IO设备2中的IO装置42和43。然而,上述描述的常规系统不能处理主机有不同项目的变换信息的情形。结果,当主机1A和1B共享分享的IO装置时,出现了这样的限制:它们必须有相同的变换信息。
如果需要将单个主机1连接到或两个以上的被扩展的IO设备2A和2B,则可采用图19的匹配,图中,相应于图17和18中的元件用同一参考数字。如图中可见,为了将主机,连接到两个扩展的IO设备2A和2B,两个IO主适配器5A和5B必须位于主机1的IO总线3上。连接的最大数目受主机1的IO总线3的时隙数的限制。除了上述系统之外,还建议可将这种构型作为单个扩展的系统通过IO端口适配器7与另一个扩展的适配器相连。然而,扩展的设备数增加会导致事务处理延迟时间的增加,从而损害系统的性能。
本发明的目的是提供这样一种多计算机系统:它可以允许单个或多个主机的每个CPU访问与在单个或多个分享的IO装置中的IO总线相连的IO装置,就像访问与在主机中的IO总线相连的IO装置一样;它可对多个主机独立进行争用控制,甚至当多个主机访问同一共享的IO装置时;它可处理多个主机对在分享的IO装置中的IO插件有不同的IO装置变换的情形;以及它可自由地改变主机与共享的IO装置的连接位置和其号数。
本发明的多计算机系统包括:一个具有共享IO总线的共享IO装置,一个与共享IO总线相连的IO端口适配器,一个与共享IO总线相连的共享IO装置,多个主机;每个主机包括一个主IO总线,一个与主IO总线和IO端口相连的IO主适配器,一个与主IO总线相连的主IO装置,以及一个与主IO总线相连的CPU,用来通过IO寻址选择主IO装置以给IO装置发布事务处理;其中IO主机适配器当事务处理被发布时给共享IO装置传送一个带有主机号的事务处理;IO端口适配器分析发布到共享IO装置的事务处理的主机号,并决定将事务处理返回到该多个主机中的其中一个。
在本发明中,在多个主机中的请CPU通过IO寻址选择与主IO总线相连的主IO装置之一和与一个共享IO总线相连的共享IO装置发出一个事务处理;在每个主机中的IO主适配器当事务处理被发送时给所述与共享IO总线相连的IO装置传送一个带有主机号的事务处理;在共享IO装置中的IO端口适配器分析发送到与共享IO总线相连的IO装置的事务处理的主机号以决定将事务处理返回给多个主机中的哪个。用这种方法,在多主机中CPU能以如连接到内部主IO总线的IO装置一样的方式访问与共享IO总线相连的IO装置。
图1说明是本发明的计算机系统的第一实施例的方框图;
图2是图1中的IO主适配器的IO表;
图3是用于图1计算机系统的事务处理包的格式;
图4A至4H示出于用来解释在图1中的主机中的CPU访问在共享IO装置中的IO插件的操作的时序图;
图5是一个用来说明配置了图1计算机系统中的争用控制电路的IO适配器的构型的方框图;
图6是一个用来说明配置了图1计算机系统的忙应答电路的20适配器构型的方框图;
图7是用于解释图6中的忙应答电路中的忙应答表志的过滤操作;
图8是说明本发明的计算机系统的第二实施例的构型的方框图;
图9示出了在图8中的IO主适配器中的交换来;
图10示出了用于图8计算机系统中的事务处理包;
图11是说明本发明的计算机系统第三实施例的构型的方框图;
图12用来说明图11的开关装置中的路由管理表;
图13是在图11的IO主适配器中配置了一个适配器属性寄存器的主机的方框图;
图14配置了排对缓冲器的图11的端12适配器的方框图;
图15A和15B示出了在图11的IO主适配器中的IO变换表;
图16A,16B和16C是用以解释在图11的主CPU中的IO存储器交换的示意图;
图17是说明常规计算机系统构型的方框图;
图18是多个主机连接到传统计算机系统中的构型的方框图;及
图19是多个扩展的IO设备连接在常规计算机系统中的构型的方框图。
现参照上述附图来介绍本发明的实施例。
本发明的第一实施例完整示于图1中,其中与图17相同的元件用相同的数字表示。第一主机1A与第二主机1B与一个共享IO装置2相连。在本实施例中,第一主机1A和第二主机1B的相应的IO主机适配器50A和50B包括IO总线接口51A和51B,事务处理包处理单元53A和53B,及包括分别位于IO总线3A和3B侧的传输接口54A和54B。此外,IO表52A与52B分别与IO主机适配器50A和50B包括IO总线接口51A和51B,事务处理包处理单元53A和53B,及包括分别位于IO总线3A和3B侧的传输接口54A和54B。此外,IO表52A和52B分别与IO主机适配器50A和50B的IO总线接口51A和51B相连,IO表52A和52B贮存位于共享IO装置2一侧的IO插件42和43的插板地址。
共享IO装置2的IO端口适配器70包括一个主机号分析单元75和一个总线转换开关76。主机号分析单元75控制总线开关76的转换。实际上,共享IO装置2的IO总线8是经由IO总线接口74由总线开关76转接的,以便于将总线8经由第一或第二事务处理包73A或73B及第一或第二主机传送路径接口71A或71B与第一或第二主机1A或1B的主机适配器50A或50B相连。
图2示出了存储中IO表52A和52B中的数据。IO表52A(52B)存储“300”和“400”作为连接到在共享IO装置2中的IO总线8 IO插件42和43的地址。图3中示出了由IO主机适配器50A(50B)的事务处理包处理单元53A(53B)产生的事务处理包的格式。该事务处理包包括一个主机号,由CPU(10B)发出的事务处理信息及一个表示事务处理信息结束的结束帧(EOP)。
在这种构型中,例如,如果第一主机1A的CPU10A在共享IO装置2上发出对IO插件42的访问请求的事务处理,则IO插件42的IO插板地址值“300”被输出到第一主机1A的IO总线3A。第一IO主机适配器50A的IO总线接口51A将此IO插件地址42的IO插件地址与在IO表52A上登录的IO插件地址予以比较。
如对图2的介绍时说过的,因为IO插件地址的值“300”登录在IO表52A上,因此IO主机适配器50A接收该事务处理,以使事务处理包处理单元53A产生一个待要传送到共享IO装置2的IO端口适配器70的事务处理包。同时,将IO总线等待(WAIT)信号接通,从而设定IO总线3A于等待状态。
图4A至4H示出了本实施例的读出事务处理的时序。在除了图4A所示的地址信号ADD/DATA以外,还使用图4B中所示的命令信号CMD作为IO总线3的总线中,当根据在IO总线3所示的命令信号作出了读事务处理决定时,按照先前对IO端口适配器70侧确定的读事务处理的格式产生如图3所述的事务处理包的格式。事务处理包通过IO主机适配器50A(50B)以图4D和4E的顺序被传送到IO端口适配器70。
IO端口适配70分析在事务处理包首部的主机号以将总线开关76按主机号接到第一主机1A侧。此后,IO端口70通过IO总线接口74发出如图4F,4G及4H所示的总线事务处理。在IO总线8上的事务处理是完全与由在第一主机1A的CPU10A为IO总线3A所发出的事务处理一样的。当读数据根据该事务处理返回时,IO端口适配器70由读响应产生一个事务处理包。
如上所述,总线开关76保持接到第一主机1A侧的状态,而由第一事务处理包处理单元73A根据读响应产生事务处理包并将其传送到第一主机1A。如图40至4F所示,根据读响应产生的事务处理包到达IO主机适配器50A,事务处理包处理单元53A取出作为IO总线3的AD/DATA信号的读出数据。一旦数据输出完成,等待信号WAIT关断,以便释放IO总线3的等待状态。
下面将解释第一主机1A和第二主机1B同时访问共享IO装置2的争用问题。在图5示出了执行争用控制的IO端口适配器,其中与图1中相同的元件用同一数字表示。除了图1中所示的构成外,IO端口适配器70包括一个争用控制电路77和相应于第一主机1A和第二主机1B的等待缓冲器78A和78B。当事务处理包同时由第一主机1A和第二主机1B同时到达,或者在事务处理正在处理时又到达另一个事务处理,争用控制电路77只接收其中一个事务处理并把所接收的事务处理传送到主机分析单元75。于是,总线开76被固定到主机1A或1B中其中之一。
未被选择的事务处理被存入等待缓冲器78A或78B。一旦以前选择的事务处理完成,总线转换开关76转换以改变连接,以使等待缓冲器78B或78A的内容作为一个新的事务处理产生的最大数据的限定的。
图6中示出了另一个争用控制的方法,图中同于图5的元件标以相同数字。本方法可有效地作为一个IO总线信号来支持总线事务处理失败处理。当从第一主机1A和第二主机1B同时到达时,或当已在处理一个事务处理时又来了另一个事务处理时,争用控制和忙应答电路79只接收一个事务处理并把它传送到主机分析单元75。于是,总线开关76接通到主机1A和1B其中的任何一个。
给主机1B或1A侧,产生一个忙应答包并将此传送到相关的IO主机适配器50B或50A。在争用控制和忙应答电路79中,设定有关相应主机1B或1A的忙表坊和优先表志(ST1,ST2)。当忙表志设立后,给当前正在执行事务处理的主机1A产生一忙应答,直至当现时接收的事务处理完成之后从主机1B接收到事务处理为止。这是因为,由于如图7中的ST3和ST4指明的,虽然忙表志已设定给第一主机A,但优先表志是指向第二主机的,所以确定,第二主机B有一优先权。
在IO主机适配器50B或50A一侧的事务处理包处理单元53B或53A用忙应答包给IO总线3B或3A发出一事务处理信号。当事务处理失败信号被答复之后,CPU10B或10A再发出相同的事务处理。如果当再次发出的事务处理到达IO端口适配器70时,在一侧的事务处理已完成,则优先表志是指接收该达到的事务处理。由于接收了该事务处理,所以在第二主机1B中的忙表志如图5的ST5表示那样被重置,而对第一主机1A侧的优先表志也被重置。
按照上述构型中,IO端口适配器70配置3等待缓冲器78A和78B,这样,在一个主机1A中的事务处理有选择地被处理同时在另一主机1B中的事务处理被存储在等待缓冲器78B中,或者,在主机1A中的事务处理有选择地进行,而对另一主机2B的事务处理进行总线忙控制,同时由忙应答表志和优先表志所示的表志控制使得即使当两主机1A和1B访问共享的IO装置2时可互相独立对主机1A和2B进行争用控制。
在上述描述的第一实施例中,两个主机1A和2B是连到一个共享IO装置2的,但是也可将三个或三个以上的主机连到一个共享IO装置2。此时,对能处理多个主机的总线开关76进行选择而主机号分析单元75根据主机号控制总线开关76。图5和图6的方法均可用作争用控制。
图8示出了本发明的多计算机系统的第二实施例,与图1中相同的元件使用相同的参考数字。如图8可见,单个主机通过一个开关装置80与三个共享IO装置2A,2B和2C相连。在该实施例中,开关装置80包括开关端口81A,81B,81C及开关主体82。开关端口81A,81B,81C,及81D分别与主机1的IO主机适配器和IO端口适配器结构与图1中所示的相应适配器一样。
开关主体82做成所谓“相交开关”(“corss-over swith”),其中从一开关端口选出来的另一开关端口用于数据传输。实际上,根据存储在包中的输出端口信息,开关体82输出由IO主机适配器50,IO端口适配器70A,70B及70C输入的发送事务处理包。
在本实施例中,如图9所示,由主IO适配器5O保留的IO表52,除了上述第一实施例的构型外,还保留有与那样与开关端口81A至81D的号码相关的开关端口相连的共享IO装置2A至2C和保留3与各自相关的共享设备的IU总线8A至8C相连的IO插件42,43;44,45;及46,47的IO插件地址。
实际上,保留了说明下列连接的信息:具有作为IO插件地址值“300”和“400”的IO插件42和43被连接到与号为“2”的开关端口81B相连的号码“1”的IO总线8A;具有作为IO地址值“500”和“600”的IO插件44和45被连接到与开关端口81C相连的号“2”的共享IO装置2B的IO总线8B;及具有作为IO插件地址的值“700”和“800”的IO插件46和47被连接到与号“3”的开关端口81C相连的号“3”的共享IO装置的IO总线8C。
在这种构型中,当主机1的CPU向IO总线3发出一个用于存贮在IO主机适配器50内的IO表52中的IO插地址的事务处理时,IO主机适配器50接收该事务处理并如在第一实施例所述地将该事务处理信息插入到一个包中。现参看图9的表52,连接到具有相应IO地址的共享IO装置2的开关端口号被选择并作为包的标题信息如图10所示地存储起来。与主机1相连的开关端口号本身作为一来自共享IO装置2的应答包的应答目的地信息也被存贮起来。
例如,在用于具有一个IO插件地址“300”的IO插件42的事务处理包的情形,值“2”和“1”分别作为标题信息中的开关端口号和主机端口号被存贮起来。开关装置80利用已到达的第一开关端口81A的事务处理包确定一个输出目的地端12。当IO插件地址为值“300”时,则选择第二开关端口81B,且通过第二开关端口81B将相应的事务处理包传送到第一共享IO装置。
在本实施例的情况下,共享IO装置2的IO端口适配器70有如图1第一实施例一样的构型,而两对主机传输通路接口71A和71B及事务处理包处理单元73A和83B中的一对未被使用。即,如第一实施例中描述的争用控制方式未被使用而总线开关只与其中之一主机,例如,第一主机1A相接通。在IO端口适配器70接收事务处理包之后,主机号分析单元75存贮来自包标题信息的应答目的地主端口号。
向IO总线8发布一个事务处理的过程与实施例1一样。图10A所示的事务包格式是用于产生事务处理应答包。即,存贮在主机号分析单元75中的主机端口号用作为应答事务处理包的标题信息。在本实施例中,是如前所述的事务处理包中的“1”。接着,将所产生的应答包以如传输来自主机1的一个事务处理包的程序一样的方式传输到IO主适配器50中。
在这样一种构型中,主机1的IO主机适配器50与多个共享IO装置2A至2C的IO端口适配器70A至70C以星形与开关装置80的多个开关端口81A至81D相连。在安排在IO主机适配器50上的IO表52的基础上,主机1的CPU10也认可开关端口81B至81D被用于传输。于是,主机1的CPU10可就象访问与IO总线3相连的IO插件40一样的方式来访问与IO总线8A至8C相连的IO插件42至47。
在图11中示出了本发明的多计算机系统的第三实施例,图中与图8中相同的元件用相同的参考号。如图11可见,三个端口1A至1C通过开关装置80与三个享IO装置2A至2C相连。以第二实施例中所描述的方式执行一个来自主机1A至1C的事务处理的处理操作。即,各个多个主机1A至1C可以访问多个共享IO装置2A至2C。为避免对开关端口81A至81F中的同一开关端口的访问争用,在开关装置80中配置了一个路由管理表83。路由管理表83中保存如图12中所示的IO地址,这些地址可由主机1A至1C的CPUS10A至10C读出或写入。
在本实施例中,在正常的IO访问前,主机1A至1C询问路由管理表83:它们能否占据对与访问的共享IO装置2A至2C相连的开关端口81B至81D的连接?现在假定,主机1A要求对具有如在图12的路由管理表83的状态中所示的端口号为“2”的第二开关端口81B相连。在这种情况下,由于开关端现处于在路由管理表83中的“自由状态”,因此将其自由状态转移到设定状态。一旦对上述第二开关端口81B处理的事务处理完成之后,主机将路由管理表83的有关信息从“设定状态”返回到“自由状态”。
为了使IO访问号与主机1的IO总线3和共享IO总线3的IO总线都一样,对路由管理表83的读/写也是在与主机1的IO总线3IO插件40被访问时发出。然而,因为该操作是针对于未登记在IO表52上的IO地址,因此它被接收并安置在IO主机适配器50中。
在本实施例中,如在描述图9时所述主机1预先在IO主机适配器中产生IO表52。如图13所示,这是通过在IO主机适配器50和IO端口适配器70(未示出)中提供一个适配器属性寄存器55实现的。当主机适配器50执行初始化或复位操作时,可由IO主机适配器70来读适配器属性寄存器55。在本实施例中,适配器属性寄存器55给IO主机适配器50置“1”,给IO端口适配器70置“0”。
当IO主机适配器50执行一个初始化操作或复位操作时,它读在所有连接到开关装置80的开关端口81A至81E的装置中的适配器属性寄存器55,以辨认出共享IO装置2连接到哪个开关端口8A至81F,它并根据认辩认在IO表52中写IO地址信息。此后,按CPU10的初始化流程,共享IO装置2在IO表52中产生地址信息。
图14示出了一个IO端口适配器70,该适配器可接收来自多个主机1的事务处理,一直接收到在开关装置80和共享20装置2之间的连接传输通道的最大吞吐量时为止,而经由开关装置80的端口连接路由未完全被占用。具体说,如果事务处理包从多主机1A至1C连续传输,则IO端口适配器70将这些事务处理包存入排列缓冲器90中。存贮在排队缓冲器90中的事务处理一个一个地顺序处理,并发向IO总线8。
因为排队缓冲器90有一限量,所以当它满量时,事务处理包要被接收并安置。为解决此问题,在排队缓冲器9O满时,如第一实施例一样,排对缓冲器控制器91发一个忙应答包给每个IO主机适配器。这样可阻止事务处理发向相关的共享IO装置。当发出忙应答时在排队缓冲器90的填写容量取决于缓冲器容量和其它一些因素。
在该实施例中,由多主机1A至1C分担保留的IO地址信息可取决于各个主机1A至1C的结构。在本实例中,为了使连接于各共享IO装置2A至2C的IO地址信息是相同的而与各主机1A至1C无关,所以对每个主机的IO变换信息被存贮在IO表52中。如可从图15见到,共享IO装置预先在初始化时确定在IO总线8上的唯一IO地址。
在该实施例中,例如,第一共享IO装置2A的IO插件42和43被分别如图14所示在表92上,置值“100”和“200”作为地址。同样,第二共享IO装置2B的IO插件44和45在表92上被置值“100”和“200”作为地址。
在各主机1A至1C的IO插件的配置中,每个IO主机适配器50A至50C读出在每个共享IO装置2A至2C中的单个IO表92上的信息,并用来自CPU10A至10C的IO地址信息对它进行编置以产生如图15A至15B所示的IO变换表。这样,当主机1A的CPU10A给具有IO地址“400”的IO插件43发出一个事务处理时,IO主机适配器50A,按IO表52,发出一个具有IO地址“100”的事务处理包。
在该实施例中,当IO插件作为主方要求给特定主机1发出一个事务处理,如图16所示,用于各主机1A至1C的主存储器上的IO地址地图上分配有一个IO地址区域,以使得该共域在发出事务处理时在与系统相连的所有主机1A至1C中是不同的。用这种方式,各主机1A至1C的地址空间是根据共享IO装置一侧唯一确定的,这样可以给特定主机1发布事务处理。例如,当共享IO装置2一侧需要向第二主机1B发布一个事务处理时,它指定预先以当作主机1B的IO地址区域的地址(200)H至(2FF)H所分配的存储区域来发布该事务处理。
在上述安排中,类似于第二实施例的情形,多个主机1A至1C的CPUS10A至10C可以用如与在主机1A至1C中的IO总线3A至3C的IO插件40A至40C一样的方式来访问与在多个共享IO装置2A至2C中的IO总线8A至8C相连的IO插件42至47。此外,主机适配器50决定与交换装置80的各交换端口81的哪个IO端口适配器70相连并实现,与共享IO装置2的IO总线8相连的IO插件的初始构成,以便于制订IO变换表。
在IO端口适配器件70中,当多个主机1的CPUS10同时给共享的IO装置2发布事务处理时,以到达次序存贮在排队缓冲器90中的事务处理并以到达次序发给IO总线8。这样,即使当多主机同时访问共享IO装置2时,对各主机1的争用控制可以保证相互独立地进行。
在IO端口适配器70中,作出一个忙应答,预告排队缓冲器90可能变成充满因而要压制向所有主机1的共享IO装置发出事务处理。用这种方法,即使当多个主机同时访问同一共享IO装置2,对相应主机1的争用控制也可保证能相互独立进行。
在IO端口适配器70中,作出一个忙应答,预告排对缓冲器90可能变成充满因而要压制向所有主机1的共享IO装置发出事务处理。用这种主法,即使当多个主机同时访问同一共享IO装置2,对相应主机1的争用控制也可保证能相互独立进行。
在IO主机适配器50中,将由主机1所示的IO插件42至47的IO地址和实际共享IO装置2侧的地址编制地图,这样与共享IO装置相连的IO插件的初始化信息是相同的而与各主机1的结构无关。这样,可以处理那种多主机1对在共享IO装置中的IO插件42至47有不同IO装置变换的情形。
当多主机被连到交换装置80之后被初始化时,在被各主机1所用的存储器上的IO地址变换被分配给不同的区域,以使主机1以不同的地址变换,由此根据共享IO装置来鉴别多主机1。这样,就可以处理多主机对在共享IO装置中的IO插件42至47有不同IO装置变换的情形,而且可自由地改变在主机和共享IO装置2之间的连接位置和数目。
如前所述,根据本发明,在多主机中的CPUS通过IO寻址来选择与主机IO总线相连的IO装置和与共享IO总线相连的一个IO装置来发布事处理;当向连接至共享IO总线的IO装置发布事务处理时,在每个主机中的IO主机适配器用一个主机号传送该事务处理;在共享IO装置中的IO端口适配器保持发到与共享IO总线相连的IO装置的事务处理的主机号以便决定向哪个主机返回对该所述事务处理的应答。以这种方式,可实这样一个多计算机系统:在该系统中,多主机的各CPUS可以以与相连于内部主机IO总线的IO装置一样的方式来访问连接于共享IO总线的IO装置。
根据本发明的一个方面,当在多主机中的CPUS同时向共享IO装置中的IO装置发出事务处理时,IO端口适配器有选择地处理在一个预定主计算机中的预定事务处理,并在处理该预定事务处理的同时存贮其它计算机的其它事务处理,而且一旦所述预定事务处理完成后,再有选择地处理其它事务处理。当进行所述预定事务处理时,其它计算机在等待状态时保持主机IO总线在对IO装置的正常事务处理中。这样实现了即使当多主机同时访问同一共享IO装置时,对各主机的争用控制可保证互相独立地进行的多计算机系统。
根据本发明的又一方面,当多主机的CPUS同时给共享IO装置中的IO装置发出事务处理时,IO端口适配器有选择地处理来自预定主机的预定处理,并向来自其它主计算机的其它事务处理作出一个总线忙应答。在其它主计算机中的IO主机适配器当其收到总线忙应答时,它告诉相应的CPU:事务处理由于总线忙而未能接受。用这种方式,实现了即使当多主机同时访问同一共享IO装置时,仍可保证对各主机的争用控制独立进行的多计算机系统。
根据本发明又一方面,在单个或多个主机计机中的IO主机适配器中的IO主机适配器和多共享IO装置的IO端口适配器相以星形连接到交换装置的交换端口,而在主机中的CPU则在安排在IO主机适配器的变换表的基础上确认用于传送的交换端12。用这种方式,可以实现单或多主计算机中的CPUS可以以与主机IO总线相连的IO装置相同的的方式来访问与多共享IO总线相连的IO装置的多计算机系统。
根据本发明的又一方面,一些IO主机适配器决定在其它主机中的IO主机适配器和共享IO装置的端口适配器中哪个与交换装置的交换端口相连,和根据连接于共享IO装置的共享IO总线的IO装置的初始化信息方便地制订变换表。用此方法,可以实现在单个或多个主计算机中的CPUS以与连接于主机IO总线的IO装置一样的方式来访问连接于单或多共享IO总线的IO装置的多计算机系统。
根据本发明的又一方面,当在多主机计算机中的CPUS同时向同一共享IO装置发出事务处理时,IO端口适配器,利用排对缓冲器,按照到达共享IO装置的共享IO总线的次序,顺序地发出来自各主机的事务处理。采用这种方式,实现可即使当多主机同时访问同一共享IO装置时,仍可互相独立地进行争用控制的多计算机系统。
根据本发明的又一方面,IO端口适配器预测排队缓冲器充满时的可能性,以便压制向所有主机的共享IO装置发出事务处理。用这种方式,可实现即使当多主机同时访问同一总线时,仍可独立地进行对各主机的争用控制。
根据本发明的又一方面,IO主机适配器变换由各主机观察到的IO插件的IO地址和在实际的共享IO装置一侧的IO地址,以使得连接到各共享IO装置的IO插件的初始化信息可以一样而与各主机结构无关。用这种方式,实出了可以处理多主机对在共享IO装置中的IO插件具有不同IO装置变换的情形的多计算机系统。
根据本发明的再一方面,当多主机被连到交换装置之后被初始化,在被主计算机使用的存储器上的IO地址变换被分配给不同区域,以使主机在从共享IO装置一侧观察到的不同地址变换,以便根据共享IO装置来鉴别多计算机。用这种方式,可以实现可处理多主机对共享IO装置中的IO插件具有不同IO装置变换的情形和可自由改变在主机和共享IO装置之间的连接位置和数目的这样一种多计算机系统。