WO1991018462A1 - High bandwidth fault tolerant lan - Google Patents

High bandwidth fault tolerant lan Download PDF

Info

Publication number
WO1991018462A1
WO1991018462A1 PCT/CA1991/000164 CA9100164W WO9118462A1 WO 1991018462 A1 WO1991018462 A1 WO 1991018462A1 CA 9100164 W CA9100164 W CA 9100164W WO 9118462 A1 WO9118462 A1 WO 9118462A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
sub
host
networks
destination host
Prior art date
Application number
PCT/CA1991/000164
Other languages
French (fr)
Inventor
Ernest Stewart Lee
Peter I. P. Boulton
Original Assignee
The University Of Toronto Innovations Foundation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The University Of Toronto Innovations Foundation filed Critical The University Of Toronto Innovations Foundation
Publication of WO1991018462A1 publication Critical patent/WO1991018462A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks

Definitions

  • the present invention relates to data transmission systems and in particular to networks for the transfer of data packets between remote locations.
  • Many different packet transfer systems have been proposed to meet different requirements and rooted tree broadcast networks have been proposed as offering many advantages for local area networks.
  • a rooted tree network provides a number of communications channels which are connected to a common hub. The hub selects one of the channels for retransmission to another hub at a higher level within the network. The process of selection and retransmission repeats until a transmission is selected at the root hub, which is at the highest level of the network.
  • Transmissions selected at the root hub are transmitted across a nexus and are thus broadcast through the network, eventually to each of the channels in the network.
  • the rooted tree network offers advantages with its simplicity, a failure in one channel can result in the isolation of a large portion of the network. Moreover, the maximum transmission rate through the network is limited to that of the slowest connected host device. Any host devices capable of a faster operating rate than that of the slowest host device are thus operated inefficiently.
  • U.S. Patent 4,417,334 to Gunderson shows a rooted tree network in which the transmission links are duplicated and operate in parallel, through two independent root nodes, to provide a level of fault tolerance to failed links or a failed root node.
  • the two networks carry packets independently of each other and a node attempting to transmit a packet selects whichever network is currently not in use. If both networks are in use the transmitting node waits for either one to become available. In the event of a failure of one of the two networks, the other network will carry all of the transmissions, although at an effectively lower rate.
  • this reference only teaches a two network system with a single level of child nodes below the root node. More importantly, hosts connected to these networks must be fast enough to deal with the simultaneous arrival of a packet on each network. In other words, the maximum network speed is limited by the speed of its slowest host.
  • each node includes an arbitrator which operates to select the first packet received over any of the node's filial links, or from a connected host, for broadcast onto the node's parental link. In the event of a simultaneous arrival of two packets, one is arbitrarily selected. Collisions are thus avoided as the non-selected packets are ignored. While a selection competition occurs at each node in the network, no collisions occur and thus an increase in useful network throughput is possible. However, failure of a single transmission link or node can lead to isolation of a large part of the network or even total failure.
  • U.S. Patent 4,701,756 to Burr shows a rooted tree network wherein provision is made to deal with a failure of the root node by providing an alternative root node.
  • U.S. Patent 4,773,069 to the present inventors teaches a robust rooted tree network wherein redundant transmission links are provided between a child of one parent node and the child of another parent node. This provides a level of robustness to faulty child-parent links or a faulty parent node.
  • the level of robustness is limited and the required redundant lines do not provide any increased packet carrying bandwidth.
  • U.S. Patent 4,777,487 to the present inventors teaches a rooted tree network wherein each node contains a deterministic arbitrator unit. This arbitration unit selects only one received packet for transmission through the network and further operates to ensure that a device attempting to access the network through the node will be granted access within a predetermined time period.
  • the network taught is still susceptible to faults in the nodes or transmission links of the network.
  • U.S. Patent Application 07/346,665 to the present inventors teaches a fault tolerant rooted tree network wherein several redundant transmission links may be provided between different nodes allowing the automatic bypassing of a faulty link to ensure continued operation of the network. However, the redundant links sit idle until needed for fault avoidance and thus are not used to increase the network's bandwidth. Also, if a benign failure occurs on a redundant link when it is idle, the failure will remain undetected until attempts are made to use it after the failure of another line.
  • a data transfer network comprising a plurality of rooted tree sub-networks each having a nexus to regulate the transfer of data through the respective sub-network, a plurality of hosts each connected to at least one of said sub-networks, at least one of said hosts being connected to a plurality of said sub-networks and having a data-reception rate less than the cumulative data transfer rate of said sub-networks to which it is connected and discrimination means to monitor the flow of data across each of said nexus and to prohibit transfer of data to said one host at a cumulative rate in excess of the data-reception rate of said one host.
  • the present invention provides a network of at least two independent rooted tree networks, operating as sub-networks, to link attached hosts.
  • the independent sub-networks allow parallel transmissions between connected hosts for increased net data transfer rates.
  • the sub ⁇ networks have a common discretionary unit which may determine a maximum acceptable transmission rate to any host and limits access to the nexus of each sub-network to ensure that the maximum rate is not exceeded.
  • each of the sub-networks may carry data packets independently of the others, in the event of a failure in one sub-network, another sub-network continues operation as the network, albeit at a somewhat reduced data rate. Thus the network may tolerate one or more faults.
  • Figure 1 shows a rooted tree network comprised of three sub-networks
  • FIG. 2 is a block diagram of a parallel network interface unit (NIU) shown in Figure 1;
  • Figure 3 is a block diagram of a transmitter unit of the parallel network interface unit (NIU) shown in Figure 2;
  • FIG. 4 is a block diagram of a serial network interface unit (NIU) shown in Figure 1;
  • Figure 5 is a block diagram of a hub shown in
  • Figure 1 Figure 1;
  • Figure 6 is a block diagram of a root hub shown in Figure 1;
  • Figure 7 is a block diagram of a local discretionary unit of the root hub shown in Figure 6;
  • FIG 8 is a block diagram of a common discretionary unit (CDU) shown in Figure 1;
  • FIGs 9, 10 and 11 are flowcharts showing the operating logic flow of the local and the common discretionary units of Figures 7 and 8 respectively.
  • a network is indicated generally at 8.
  • the network 8 comprises three sub-networks 10 A , 10 B , 10 c each arranged in a rooted tree topology.
  • Each sub-network 10 includes hubs 20 interconnected by transmission links 18 with each sub-network terminating at a network interface unit NIU indicated generally at 14.
  • the NIUs 14 are used to connect hosts 12 to the network 10.
  • Each of the sub-networks 10 A , 10 B , 10 c have a root hub 22 A , 22 B , 22 c that acts as a nexus for the sub-network with hubs 22 A , 22 B , 22 c being arranged in hierarchial stages.
  • the stages are determined by the number of transmission links 18 interposed between a hub 20 and the root hub 22.
  • Each hub 20 is thus further identified by a subscript relating its stage in the network, the highest stage, that closest to the root hub 22, being 1 and each lower stage being incremented by one.
  • links 18 are identified by a subscript relating the sub-network to which they belong and a second and third subscript relating the stages they connect.
  • a hub 20 at the highest stage of sub-network 10 A would be referred to as 20 A1 and a transmission link between this hub and another hub in a stage one level lower would be identified as 18 A12 .
  • Links 18 between root hub 22 and hubs 20 are identified with a second subscript R, for example 18 AR1 .
  • R for example 18 AR1 .
  • a hub 20 or link 18 of any one sub-network 10 differs from a hub 20 or link 18 of any other sub-network 10 only in regards to the sub-network to which it belongs.
  • Any root hub 22 is also functionally identical to any other root hub 22.
  • a transmission between any two hosts 12 is carried by any one of the sub-networks 10 as selected by the NIU 14 of the host originating the transmission.
  • This NIU 14 determines which, if any, sub-network 10 is available for transmission, for example 10 A and transmits the packet through hubs 20 A and links 18 A to root hub 22 A .
  • the root hub 22 A broadcasts the packet back down through all of the stages of the sub-network 10 A and the packet is eventually received by the NIU 14 attached to the destination host 12.
  • Each data transmission in the network includes information identifying its originating host 12 and its destination host 12 and the identification further provides an indication of the maximum data-reception rate of the destination host. In the preferred embodiment, this information is encoded in a predefined portion of the transmitted packet.
  • the maximum data-reception capacity of a destination host 12 is determined by a local discretionary unit in each root hub 22 of the sub-network 10 when it receives the transmission for broadcast.
  • a common discretionary unit CDU 32 monitors the nexus of each root hub 22 to prevent a root hub, 22 B for example, from broadcasting data through its sub-network 10 B if data is already being broadcast to the particular destination host 12 by another sub-network, 10 A for example. If a local discretionary unit determines that it is possible that the destination host 12 of a packet may receive data transmissions at a cumulative rate greater than its maximum capacity, the local discretionary unit queries the CDU 32 for permission to transmit as will be described later. In the network shown in Figure 1, it is anticipated that there may be two types of host 12, those with data-reception rates which are high enough to handle properly the simultaneous arrival of packets on all the sub-networks 10, and those which are not.
  • serial NIU 14 denoted with a subscript S
  • parallel NIU denoted with a subscript P for the purpose of clarity. It should be understood that in Figure 1, the arrangement and number of serial and parallel NIUs is entirely arbitrary and should not be considered as being limiting in any way.
  • Hosts 12 capable of receiving simultaneous packet arrivals over all the sub-networks 10 are connected to parallel NIUs and those hosts 12 capable of handling only a single packet arrival at one time are connected to a serial NIUs.
  • Each of the NIUs 14 has a unique address within the network and this address further contains a code that identifies the destination type of NIU 14 as being either parallel or serial.
  • Each packet transmitted throughout the network contains the address of the NIU of the originating host as well as the address of the NIU of the destination hosts.
  • FIG. 2 shows a parallel NIU 14 p which consists of three receiver elements 26 A , 26 B , 26 c associated with respective ones of the sub-networks 10 A , 10 B , 10 c and a transmitter unit 28.
  • a parallel NIU 14 p has one receiver element for each sub-network 10 in the network 8.
  • Each receiver element 26 A , 26 B , 26 c is connected to a respective one of the connected transmission links 18 A , 18 B , 18 c .
  • the transmission links 18 are each comprised of a pair of unidirectional communications lines which operate in opposite directions to allow full duplex communication over the link 18.
  • the device whether hub or NIU, at each end of each link 18 has a receive line and a transmit line which may be used simultaneously.
  • Each receiver element 26 is thus connected to the receive line of a respective one of the links 18.
  • Each receiver element 26 A , 26 B , 26 c is further connected to a common transfer link 16 between the NIU 14 p and the host 12. As this link is shared by all receiver elements 26, it is preferably a full duplex parallel data bus allowing high speed transfer of data between host 12 and NIU 14 p .
  • Each sub-network 10 A , 10 B , 10 c in the network is arranged to carry a carrier signal when it is not carrying a packet.
  • Receiver element 26 A continually monitors its transmission link 18 A with a carrier detector which asserts a carrier arriving signal CA A to the transmitter unit 28 provided a carrier signal is detected.
  • the detection of the carrier signal implies that the sub-network 10 A is currently not carrying a packet and that at least the receive line of the transmission link 18 A of sub-network 10 A is functional.
  • the receiver element 26 A monitors the link 18 A for packets which are copied into a buffer in the receiver element 26 A and which are checked for either an originating address or a destination address corresponding to the address of the receiver's NIU 14 p . If a received packet meets neither of these criteria, the buffer element is cleared in preparation to receive another packet.
  • the receiver element 26 A If a packet is received with its destination address corresponding to the NIU's address, the receiver element 26 A asserts its corresponding packet ready signal PR A to the host 12.
  • the host 12 monitors the packet ready signal PR A , PR g , PR-, of each receiver element 26 A , 26 ⁇ , 26 c respectively.
  • the host 12 When the host 12 is ready to accept the received packet from a receiver element 26, it asserts the transmit data TD signal to that receiver element 26.
  • the receive element 26 A When the receive element 26 A has its TD signal asserted, it copies the packet stored in its buffer element to the host through the transfer link 16.
  • the TD A signal is de-asserted by the host 12 and receiver element 26 A clears its buffer element in preparation to receive another packet.
  • each receiver element 26 A , 26 B , 26 c of the parallel NIU 14 p operates in a wholly parallel fashion allowing packets to be simultaneously received over each sub-network 10 of the network 8.
  • the transfer link 16 between the host 12 and the NIU 14 p preferably has a data transfer rate sufficiently high to allow the transfer to host 12 of all received packets in the NIU 14 p within the time required to receive one packet.
  • the transmitter includes a central control and sequencer unit CCSU 30, a data bus demultiplexer DBD 32, a buffer memory unit BMU 35, transmit unit demultiplexers TUDs 36-, 36 2 , 36 3 and transmitters XMT A , XMT B , XMT C .
  • the host 12 asserts a ready to send signal RTS to the CCSU 30.
  • the CCSU 30 checks the buffer empty BE lines of buffer memory unit BMU 35 to see if the BMU 35 has a buffer available to receive a packet from the host 12.
  • BMU 35 preferably has a buffer for each sub-network 10 to which the NIU 14 is attached.
  • the CCSU 30 asserts the buffer select signals BS to the data bus demultiplexer DBD 32 to connect the transfer link 16 to the available buffer in BMU 35 and asserts the buffer control lines BC to instruct the buffer to receive data from the transfer link 16 through DBD 32.
  • the CCSU 30 then asserts the send packet signal SP to the host 12 causing the host 12 to transfer its packet to the available buffer in the BMU 35.
  • the host 12 de-asserts the RTS signal to CCSU 30 for at least several bit times to indicate the end of the transfer.
  • the host 12 is immediately available for other tasks.
  • the listening for echoes of previously transmitted packets and the retransmission of packets which do not obtain access to the root hub 22 A are performed by the NIU 14 p .
  • the host 12 may immediately re-assert the RTS signal if it has another packet to transmit. If the BMU 35 has another available buffer, as indicated by the BE lines, the CCSU 30 can immediately and appropriately assert the BS, BC, and SP signals to accept the packet. If the BMU 35 does not have an available buffer, the host 12 waits until the SP line is asserted by CCSU 30 when a buffer becomes free and the host 12 then transfers the packet over transfer link 16 to the available buffer.
  • the CCSU 30 continuously monitors the carrier arriving signals CA A , CA.,, CA C from each receiver element 26 A , 26 B , 26 c to determine which receive lines of transmission links 18 A , 18 B , 18 c respectively are carrying a carrier signal. As stated previously, a transmission link 18 with a receive line carrying a carrier signal is assumed to be available for the transmission of a packet.
  • Each buffer in the BMU 35 has associated with it a transmission unit demultiplexer TUD 36.
  • the transmitter unit 28 also has a transmitter XMT associated with each connected transmission link 18.
  • the TUDs 36 allow the output of any buffer in the BMU 35 to be connected to any XMT at any one time.
  • the CCSU 30 Whenever a packet is stored in BMU 35 for transmission and the carrier arriving CA signals indicate that one of the sub-networks, 10 A for example, is available, the CCSU 30 signals the transmission unit demultiplexer TUD associated with the buffer containing the packet to be transmitted, through the transmitter control lines TCL, to connect the buffer to the transmitter XMT A . The CCSU 30 then, through the buffer control BC lines, instructs the BMU 35 to transfer the packet to XMT which in turn transmits the packet onto the transmission link 18 A . If no sub-network 10 is available, and a packet is waiting to be transmitted, the CCSU 30 waits until a CA signal is asserted indicating that a sub-network 10 is available. Once a sub-network 10 becomes available, the packet is then transmitted as described above.
  • the CCSU 30 begins a timing operation.
  • the CCSU 30 performs timing operations for each packet it transmits through any sub-network 10.
  • the NIU 14 is transmitting on all three sub-networks 10, three concurrent and independent timing operations are performed by CCSU 30.
  • the echo detect signal ED corresponding to the sub-network on which the transmission was, or is being effected, is not received within a predefined retry period, the transmission of the packet is assumed to have been unsuccessful.
  • the CCSU 30 When a transmission is unsuccessful, the CCSU 30 randomly selects another transmission link 18 when it is available, and connects the buffer in BMU 35 to the XMT corresponding to the available link 18 through the appropriate TUD. The packet is then retransmitted and the timing operation begins again. The packet is retransmitted in this manner until an echo is detected within the retry period. It may be the case that the time required to transmit a complete packet exceeds the retry time. If a packet is still being transmitted from a XMT when the echo is received, the CCSU 30 allows the transmission of the packet to continue until the entire packet has been transmitted.
  • the CCSU 30 will immediately abort any remaining transmission and will retransmit the entire packet as described previously.
  • the BMU 35 clears the buffer which contained the packet and asserts a buffer empty BE signal to the CCSU 30 to indicate that the buffer is available for reuse.
  • a serial NIU 14 s is shown in Figure 4.
  • the serial NIU 14 s differs from the parallel NIU 14 p in that only one packet can be received or transmitted at any one time.
  • Only one receiver element 40 is provided in the serial NIU 14 s but a vestigial echo and packet detector 42 is provided for each of the links 18 from the various sub-networks 10.
  • the receiver element 40 may be connected to a link 18 belonging to any of the sub-networks 10 through a multiplexer 44.
  • a central control and sequencer unit CCSU 46 controls the operation of the NIU 14 s as will be described.
  • a host 12 connected to a serial NIU 14 S receives a packet in the following manner.
  • the vestigial echo and packet detectors 42 A , 42 B , 42 c each monitor one of the sub-networks in the network.
  • the vestigial echo and packet detector 42 provides an echo detect ED signals and a carrier arriving CA signal to CCSU 46, as well as providing packet select PS signals to multiplexer 44.
  • a detector, 42 A determines that a packet being received over a link 18 A has a destination address corresponding to that of the serial NIU 14 s , it provides a packet select signal PS to the multiplexer 44 to connect the link 18 A to receiving element 40. The packet is then copied into the buffer in receiver element 40.
  • the packet ready signal PR is asserted to the host 12.
  • the transmit data TD signal is asserted to the receiver element 40 and the packet is copied over the transfer link 16 to the host 12.
  • the PR signal is de-asserted and the buffer in receiver element 40 is cleared.
  • the transmitter element of the serial NIU 14 s differs from that of the parallel NIU 14 p in that it has only one transmitter XMT and only one buffer 50.
  • a host 12 connected to a serial NIU 14 s asserts the ready to send RTS signal.
  • the CCSU 46 checks the status of the buffer empty BE signal to determine if buffer 50 is available for use.
  • the CCSU 46 When the BE line indicates that buffer 50 is empty, and thus available, the CCSU 46 asserts the send packet SP signal to the host 12 and, with the buffer control BC signals, the CCSU 46 instructs the buffer 50 to store the packet transferred from host 12 over transfer link 16. The host 12 then transfers the packet into buffer 50 over transfer link 16 and host 12 de-asserts the RTS signal when the transfer is complete.
  • CCSU 46 monitors the carrier arriving CA signals from the vestigial echo and packet detectors 42.
  • the CCSU 46 When a sub-network 10 is available, as indicated by an asserted carrier arriving CA signal, the CCSU 46 connects the output of transmitter 48 to the available link 18 by asserting the transmission control lines TCL to demultiplexer 52 and the packet is transmitted onto the available link 18. After transmission has begun, the CCSU 46 begins a timing operation similar to that of the parallel NIU 14 p . As the serial NIU 14 s can only transmit one packet at a time, the ED signals from each vestigial echo and packet detector are input, in the preferred embodiment, to OR gate 54 whose output 56 is connected to the CCSU 46.
  • the packet is assumed to have been transmitted successfully.
  • the transmission is allowed to continue until the entire packet has been transmitted.
  • the buffer 50 is emptied and the CCSU 46 is able to assert again the SP signal in response to an RTS signal.
  • the output 56 is not asserted within the retry period, the packet is assumed to have been unsuccessfully transmitted and the CCSU 46 randomly selects a transmission link 18 which is available, as indicated by its CA signal.
  • the CCSU 46 asserts the TCL to demultiplexer 52 to connect transmitter 48 to the selected free link 18 and the packet is retransmitted from buffer 50. If no transmission link 18 is available, the CCSU 46 waits and monitors the CA signals until one becomes available. It will thus be seen that the NIUs 14 allow data to be transmitted through the network 8 at an effective transmission rate which may approach the sum of the maximum rate of each available sub-network 10.
  • FIG. 5 shows a typical hub 20 A1 of sub-network 10 A with a parent link 18 AR1 and three child transmission links, two links 18 A12 to hubs 20 A2 , and a link 18 AN1 to a NIU 14.
  • This hub 20 A1 has been chosen as an illustrative example only. It should also be understood that any hub may have more or fewer child links.
  • the hub 20 A1 further comprises a selector 56 to connect the receive line of one of the two links 18 A12 or link 18 AN1 to the transmit line of the parental link 18 AR1 and a broadcaster 58 to connect the receive line 18 AR1 of the parent link to each of the transmit lines of the two links 18 A12 and to the transmit line of 18 AN1 .
  • the selector 56 may be operated in several ways and, in the preferred embodiment, the technique used is that described in USP 4,570,162 to Boulton et al., the subject matter of which is incorporated herein by reference.
  • the selector taught in the Boulton reference utilizes an exclusive and first come first served technique with the additional advantage that partial packets will not be selected.
  • packets transmitted from each NIU 14 to sub-network 10 A will progress through links 18 A with one packet being selected at each hub 20 A for further transmission in the sub-network 10 A .
  • An originating NIU 14 whose packets fail to be selected at a hub 20 A for further transmission in the sub-network 10 A will not receive an echo within the retry period. The originating NIU 14 will thus retransmit the packet as described previously.
  • Packets which are successful in being selected at each hub 20 A will eventually arrive at a root hub 22 A as shown in Figure 6, which selects one arriving packet for broadcast throughout the sub-network 10 A .
  • the root hub 22 comprises a selector 60 which is similar to that contained in the hubs 20 and a broadcaster 62 which transmits the selected packet to the transmit line of all the transmission links 18 which are attached to the root hub 22.
  • a local discretionary unit LDU 64 is included in each root hub 22. The LDU 64 determines whether the destination NIU 14 of a selected packet is a serial NIU 14 s or a parallel NIU 14 p and if the destination is a serial NIU 14 s , the LDU 64 queries the common discretionary unit 32 as to whether the transmission should be allowed or inhibited. In the embodiment shown in Figure 1, it is assumed that any host 12 connected to a parallel NIU 14 p has a data-reception rate sufficiently high to handle the simultaneous arrival of a packet from each connected sub-network 10.
  • the output of the selector 60 is passed to the local discretionary unit LDU 64 over line 66.
  • Each root hub 22 A , 22 B , 22 c has its own local discretionary unit 64 A , 62 B , 62 c which is connected to the common discretionary unit 32 by control buses 34 A , 34 B , 34 c respectively.
  • the local discretionary unit 64 is better illustrated in Figure 7 and its operation is outlined in Figure 9.
  • a packet detect and address extraction module PDAEM 68 monitors line 66, the output of selector 60, to detect the beginning of a received packet as indicated at step 138 in Figure 9. When the beginning of a received packet is detected, PDAEM 68 transmits the packet on a bit by bit basis to a first shift register 70 over line 72 as indicated at step 140 and onto line 48.
  • the shift register 70 is used as a delay line whereby an arriving packet input to the shift register 70 is not output from the shift register 70 for a number of bit times equal to the number of shift bits in the register.
  • the required number of shift bits is dependent upon the speed of the control circuity in the LDU 64 and CDU 32 and is predetermined when constructing the network.
  • the local control and sequencing unit LCSU 74 counts the number of received bits, as indicated on line 76 from the PDAEM 68.
  • the received packet is determined to be destined for a parallel NIU and the comparator asserts line 84 to the LCSU 74. If even one bit differs during the comparison, the packet destination is determined to be a serial NIU and line 84 remains de-asserted, as indicated at step 146.
  • the destination NIU is a parallel NIU.
  • LCSU 74 asserts line 75 to gate 86 to connect the output of shift register 70 over line 88 to OR gate 90. Or gate 90 connects to output line 92 as indicated at step 148.
  • Output line 92 is the input to the broadcaster 62 of the root hub 22.
  • the LCSU 74 monitors the selected packet to detect the end of the transmission, as indicated at step 180, and opens gates 86 and 134 by asserting lines 75 and 93 respectively, as indicated at step 156.
  • PDAEM 68 is reset to look for the start of another packet as indicated at step 158.
  • the destination NIU of the received packet is a serial NIU.
  • Line 75 to gate 86 is de-asserted thus connecting the output of shift register 70 to the input of shift register 94, as indicated at step 150.
  • Shift register 94 is used as another delay line and provides the necessary delay to consult the common discretionary unit 32 for the status of the destination NIU 14.
  • the LCSU 74 asserts request line 112 to request service from a common discretionary unit 32, as indicated at step 152.
  • the common discretionary unit 32 is shown in Figure 8 and its operation is outlined in Figure 10.
  • Each root hub 22 has its own memory word 104 A , 104 B , 104 c in the common discretionary unit 32, and shares the common comparison register 106.
  • An activity bit 108 is appended to each memory word 104 and an activity bit 109 is appended to the common comparison register 106.
  • the activity bit 109 of the common compare register 106 is permanently set to 1 while the activity bits 108 of the memory words 104 may be individually set or cleared by the activity bit forcing device ABF 110.
  • the LCSU 74 from each root hub 22 has a request line H2 A , 112 B , 112 c connecting it to an arbitrator 114 in the common discretionary unit 32. If the common discretionary unit 32 is available, the arbitrator 114 selects the first request for service from lines 112,, 112 B , 112 c . If the common discretionary unit 32 is already busy serving a request, the arbitrator 114 immediately returns a reset signal H6 A , 116 B , 116 c to the requesting LCSU 74 A , 74 B , 74 c as indicated at step 154.
  • the LCSU 74 Upon receiving a reset signal 116 from the arbitrator 114, the LCSU 74 opens gates 86 and 134 by de-asserting lines 75 and 93 respectively, as indicated at step 156, and resets the PDAEM by asserting line 118, as indicated at step 158.
  • the local discretionary unit 64 is thus reset to its initial state, the packet is not broadcast from the root hub 22 and the root hub 22 is ready to select the next arriving packet. If the common discretionary unit 32 is available for use, as indicated at step 154, the control unit CU 120 signals the activity bit force unit 110, as indicated at step 156, to clear the activity bit 108 of the memory word 104 which corresponds to the root hub 22 which is currently being served.
  • the control unit CU 120 asserts the memory control lines MCL, putting the contents of the common compare register 106 onto the comparison bus 122 as one input to each comparison unit 124 A , 124 B , 124 C and the contents of each unique memory word 104 are applied as the other.
  • the comparison units 124 A , 124 B , 124 C compare the contents of the common comparison register 106 to the contents of each memory word 104 A , 104 B , 104 c , including the activity bit 108 A , 108 B , 108 c in a bit-wise manner.
  • the comparison units 124 operate in a parallel fashion so that the result of each comparison is available simultaneously.
  • each comparison unit 124 The outputs 126 of each comparison unit 124 are connected to an OR gate 128 as indicated at step 160. If the comparison unit 124 detects a match between its two comparands, the comparison succeeds and its output 126 A , 126 B , 126 c is asserted. This implies that another of the root hubs 22 is transmitting a packet to the destination serial NIU 14 s .
  • OR gate 128 Conversely, if at least one comparison succeeds, the output 130 of OR gate 128 is asserted because another sub-network 10 in the network 8 is currently transmitting a packet to a NIU 14 with the same destination address as that stored in the common compare register 106.
  • the output 130 of OR gate 128 is connected to the control unit CU 120. If the output 130 is asserted, the desired destination serial NIU 38 is detected as currently receiving another packet.
  • the CU 120 asserts line 121 to arbitrator 114, which in turn asserts the reset line 116 A , 116 B , 116 c corresponding to the central hub being served.
  • Arbitrator 114 considers that the common discretionary unit 32 is thus available to accept another service request, as indicated at step 162.
  • the destination serial NIU is detected as not currently receiving a packet through any sub-network 10.
  • the CU 120 asserts the accept line 132 to the root hub 22 being served, as indicated at step 164.
  • CU 120 instructs the activity bit force unit 110, by asserting line 123, to set the activity bit of the memory word corresponding to the root hub 22 which is being served, as indicated at step 166.
  • Arbitrator 114 again considers the CDU 32 to be available, as indicated at step 168.
  • the LCSU 74 closes gate 134 thus allowing the output of the second shift register 94 to pass through OR gate 90 to output 92 and thence to the broadcast unit 62 of the root hub 22, as indicated at step 170.
  • the PDAEM 68 of an originating hub detects the end of a packet, as indicated at step 172, it asserts the end of transmission EOT line 136 to the ABF unit 110, as indicated at step 174.
  • the ABF unit 110 clears the activity bit 108 of the memory word 104 which corresponds to the originating hub whose LDU 64 asserted its EOT line, as indicated at step 178. It should be understood that the CDU 32 continuously monitors the EOT lines, as indicated at step 176, and clears any activity bit 108 corresponding to a received EOT signal, as indicated at step 178.
  • an NIU with a serial receiver and parallel transmitter or an NIU with a parallel receiver and serial transmitter may be favourably employed. It should be obvious to one of skill in the art that these NIUs could be fabricated from the components described herein with only minor modifications. It is thus apparent that the common discretionary unit 32 and the local discretionary units 64 cooperate to ensure that only one packet is transmitted to a serial NIU at any one time. Hosts with a data processing rate sufficient to deal with the simultaneous arrival of several packets may be connected simultaneously to all sub-networks 10 in network 8 through a parallel NIU 14 p and have access to the network 8 at a cumulative transfer rate approaching that of the sum of the rates of the available sub-networks 10.
  • Serial NIUs 14 s Slower hosts 12 with the capability of receiving only one packet at a time are connected to serial NIUs 14 s and thus, while the host 12 has access to all the sub-networks 10 of the network 8, the access is on an exclusive basis and the host 12 need only be able to accept packets at a reception rate corresponding to that of a sub-network 10. Additionally, it is anticipated that serial NIUs will be less expensive to manufacture than parallel NIUs. Each sub-network 10 of network 8 is limited to a data transfer rate corresponding to that of the slowest host 12 in the network. However, the network 8 is limited only to ensure that hosts 12 connected to parallel NIUs 14 p are capable of accepting transmissions at the cumulative total transmission rate appearing at the parallel NIU 14 p .
  • a supercomputer for example, may be connected to a parallel NIU 14 p and a slower computer may be connected to a serial NIU 14s and each will operate within the network without any direct limitation to the other's speed.
  • the network 8 In its normal state, without any faults, the network 8 operates as follows.
  • a host 12 connected to a parallel NIU 14 p wishes to send a packet to a host 12 also connected to a parallel NIU 14 p .
  • a packet is assembled at the originating host 12 with the address of the host's NIU and the address of the destination host's NIU according to a predefined packet structure.
  • the originating host 12 asserts the ready to send RTS line to the NIU 14 p and awaits the assertion of the send packet SP line by the central control and sequencer unit CCSU 30 in the NIU 14 p .
  • the CCSU 30 checks the buffer memory unit BMU 35 for a free buffer, and when one is free, the CCSU 30 asserts the SP line to the host 12 and instructs the BMU 35 to store the packet transferred from the host 12 over transfer link 16 in the empty buffer. When the host 12 detects the assertion of the
  • the SP line begins transfer of the packet into the selected buffer in the BUM 35.
  • the host 12 de-asserts the RTS line to indicate to the CCSU 30 that the transfer is complete.
  • the originating host 12 may, if it has another packet ready to transmit, again assert the RTS line.
  • the CCSU 30 reviews the status of the carrier arriving CA lines of each sub-network 10 and randomly selects one of the asserted ones.
  • the asserted line implies that the sub-network 10 corresponding to that line is available for a transmission.
  • the CCSU 30 configures the transmission unit demultiplexer TUD associated with the buffer containing the packet awaiting transmission, to connect to the transmitter XMT associated with the selected sub-network 10.
  • the CCSU 30 then instructs the BMU 35 to copy the packet to the XMT for transmission onto the sub-network 10.
  • the local discretionary unit 64 determines that the destination address of the packet is a parallel NIU 14 p and broadcasts the packet over the transmit line in each of the root hub's transmission links 18. This broadcast means that the packet will be available at all of the NIUs 14 in the network 8.
  • the destination NIU 14 will receive the packet and transfer it to its connected host 12 by recognizing the destination address included in the packet.
  • the originating NIU 14 will also receive the packet and will recognize it as an echo of its earlier transmitted packet by examining the originating address. The originating NIU 14 will thus assume that the packet has been successfully transmitted and will clear the packet's buffer in its BMU 35.
  • the originating NIU 14 is a parallel NIU 14 p and the destination is a serial NIU 14 p .
  • the transmission procedure is identical with that outlined above until the receipt and selection of the packet at the root hub 22.
  • the local discretionary unit 64 at the root hub 22 will examine the code in the destination address to determine that the destination NIU 14 is a serial NIU 14 s .
  • the local discretionary unit 64 transfers a copy of the destination address of the packet to the common discretionary unit CDU 32.
  • the destination address from the local discretionary unit 64 is copied into the memory word 104 corresponding to the root hub 22 and, if allowed by the arbitrator 114 in the CDU 32, the address is also copied into the common compare register 106 of the CDU 32.
  • the arbitrator 114 of the CDU 32 knows at all times whether the CDU 32 is available to service a request or is in the process of serving a request. In the later case, the arbitrator 114 immediately asserts the reset line 116 to the local discretionary unit 64 of the root hub 22. The root hub 22 then does not transmit the packet and instead resets its selector 60 to allow the selection of another packet from its transmission links 18. The originating host 12 will not receive an echo of its packet within the retry time and will thus attempt to retransmit the packet.
  • the arbitrator 114 allows the activity bit force unit ABF 110 to clear the activity bit 108 of the memory word 104 corresponding to the requesting root hub 22 and the contents of the common compare register 106 are compared with the contents of each of the memory words of the CDU 32. If the contents of any of the memory words 104 of the CDU 32 match those of the common compare register 106, the destination NIU 14 is currently receiving a packet and another cannot be sent. The CDU 32 thus resets the local discretionary unit 64 of the root hub 22 requesting service, inhibiting the transmission of the packet and the originating NIU 14 will attempt to retransmit the packet.
  • the destination NIU 14 is available to receive a packet.
  • the ABF 110 asserts the activity bit 108 of the memory word 104 corresponding to the requesting root hub 22 and the CDU 32 asserts the accept line 132 to the requesting root hub 22.
  • the root hub 22 will then broadcast the packet to the transmit line of its transmission links 18.
  • the echo detection indicating a successful transmission and the clearing of the buffer in the BMU 35 at the originating NIU 14 are performed in the same manner as in the previous parallel NIU 14 p to parallel NIU 14 p example.
  • the root hub 22 completes the broadcast of the packet, it asserts the end of transmission EOT line to the CDU 32.
  • the ABF 110 unit in the CDU 32 de-asserts the activity bit 108 of the memory word 104 corresponding to the root hub 22, effectively ensuring that a subsequent comparison with the contents of the memory word 104 will fail, thus indicating that the root hub 22 is not transmitting to the serial NIU 14 p .
  • the activity bit 108 of the memory words 104 in the CDU 32 is a simple and quick method of validating and invalidating the contents of the memory words 104.
  • a serial NIU 14 s to serial NIU 14 s or serial NIU 14 s to parallel NIU 14 p transmission is analogous to the above-described examples with the only difference being that the originating serial NIU 14 s has a vestigial echo and packet detector 42 attached to each receive line of its transmission links 18 to detect an echo of its transmitted packet.
  • the network 8 described above offers good tolerance to many faults that may occur as a number of independent sub-networks 10 may be provided and no host 12, connected through an NIU 14 to more than one sub-network, will be solely dependent upon any one sub-network 10.
  • no host 12 connected through an NIU 14 to more than one sub-network, will be solely dependent upon any one sub-network 10.
  • the failure of an uplink may be detected through the addition of simple counting hardware in the NIUs. Any uplink with more than a preselected number of retries within a given time could be flagged for testing. In operation, the uplink failure would lead to an increase in retries, and thus lower network efficiency, but would not isolate any NIUs as they will eventually retry their transmission over another, working, uplink.
  • a failure in the local discretionary or common discretion units could take two forms.
  • the units could fail such that they do not select any packets for transmission. This failure is catastrophic and readily detected. Or the units could fail and allow multiple packets to be sent to serial NIUs. This failure will only be detected according to the network load and the probability of a serial NIU simultaneously receiving two packets. There will be no effect on transmissions to parallel NIUs apart from a possible lowering of available bandwidth due to the probable increased retries, detected by other protocol means, to the serial NIUs.
  • the Local Discretionary Unit determines the parallel NIU's rate and, if less than the cumulative rate of the entire network, requests service from the Common Discretionary Unit in a manner similar to that used for serial NIUs.
  • a comparison operation again similar to that described for a serial NIU is performed by the CDU, however in this case the CDU monitors the comparison results and will allow a number of successful comparisons up to the data rate of the NIU. In the example of the host with a rate of 4, up to 4 successful comparisons could occur before the CDU would prevent further simultaneous transmissions.

Abstract

A data transmission network comprised of a number of rooted tree topology sub-networks (10A, 10B, 10C) is provided. The address of each destination host in the network includes an identifier of the host's maximum data-reception rate and the identifier is examined by a discretionary device (CDU32) at each root node (22). If the discretionary device determines that the maximum data-reception rate of the destination host may be exceeded by the simultaneous arrival of transmissions over the sub-networks to which the destination host (12) is attached, the discretionary device in the root node queries a common control device wihch determines the number of transmissions currently being sent to the destination host. If the maximum data-reception rate of the destination host would be exceeded by a transmission in addition to those already being transmitted to the destination host, the common control device resets the querying root node. The maximum reception rate of the destination host is thus prevented from being exceeded and the querying root node is immediately availabe to attempt the transfer of another transmission.

Description

HIGH BANDWIDTH FAULT TOLERANT LAN
The present invention relates to data transmission systems and in particular to networks for the transfer of data packets between remote locations. Many different packet transfer systems have been proposed to meet different requirements and rooted tree broadcast networks have been proposed as offering many advantages for local area networks. A rooted tree network provides a number of communications channels which are connected to a common hub. The hub selects one of the channels for retransmission to another hub at a higher level within the network. The process of selection and retransmission repeats until a transmission is selected at the root hub, which is at the highest level of the network.
Transmissions selected at the root hub are transmitted across a nexus and are thus broadcast through the network, eventually to each of the channels in the network.
While the rooted tree network offers advantages with its simplicity, a failure in one channel can result in the isolation of a large portion of the network. Moreover, the maximum transmission rate through the network is limited to that of the slowest connected host device. Any host devices capable of a faster operating rate than that of the slowest host device are thus operated inefficiently.
In light of the above-mentioned problems associated with rooted tree networks, several improvements have been considered.
U.S. Patent 4,417,334 to Gunderson shows a rooted tree network in which the transmission links are duplicated and operate in parallel, through two independent root nodes, to provide a level of fault tolerance to failed links or a failed root node. The two networks carry packets independently of each other and a node attempting to transmit a packet selects whichever network is currently not in use. If both networks are in use the transmitting node waits for either one to become available. In the event of a failure of one of the two networks, the other network will carry all of the transmissions, although at an effectively lower rate. However, this reference only teaches a two network system with a single level of child nodes below the root node. More importantly, hosts connected to these networks must be fast enough to deal with the simultaneous arrival of a packet on each network. In other words, the maximum network speed is limited by the speed of its slowest host.
U.S. Patent 4,570,162 to Boulton et al. describes a method of improving network efficiency by reducing the number of collisions which may occur. In the Boulton reference, each node includes an arbitrator which operates to select the first packet received over any of the node's filial links, or from a connected host, for broadcast onto the node's parental link. In the event of a simultaneous arrival of two packets, one is arbitrarily selected. Collisions are thus avoided as the non-selected packets are ignored. While a selection competition occurs at each node in the network, no collisions occur and thus an increase in useful network throughput is possible. However, failure of a single transmission link or node can lead to isolation of a large part of the network or even total failure.
U.S. Patent 4,701,756 to Burr shows a rooted tree network wherein provision is made to deal with a failure of the root node by providing an alternative root node. However, a problem exists in that failure of a data link or node may still lead to failure of at least part of the network. U.S. Patent 4,773,069 to the present inventors teaches a robust rooted tree network wherein redundant transmission links are provided between a child of one parent node and the child of another parent node. This provides a level of robustness to faulty child-parent links or a faulty parent node. However, the level of robustness is limited and the required redundant lines do not provide any increased packet carrying bandwidth.
U.S. Patent 4,777,487 to the present inventors teaches a rooted tree network wherein each node contains a deterministic arbitrator unit. This arbitration unit selects only one received packet for transmission through the network and further operates to ensure that a device attempting to access the network through the node will be granted access within a predetermined time period. However, the network taught is still susceptible to faults in the nodes or transmission links of the network. U.S. Patent Application 07/346,665 to the present inventors teaches a fault tolerant rooted tree network wherein several redundant transmission links may be provided between different nodes allowing the automatic bypassing of a faulty link to ensure continued operation of the network. However, the redundant links sit idle until needed for fault avoidance and thus are not used to increase the network's bandwidth. Also, if a benign failure occurs on a redundant link when it is idle, the failure will remain undetected until attempts are made to use it after the failure of another line.
This may lead to uncertainty about the fault tolerance of the network.
It is therefore an object of the present invention to obviate or mitigate at least some of the above-mentioned difficulties.
According to the present invention, there is provided a data transfer network comprising a plurality of rooted tree sub-networks each having a nexus to regulate the transfer of data through the respective sub-network, a plurality of hosts each connected to at least one of said sub-networks, at least one of said hosts being connected to a plurality of said sub-networks and having a data-reception rate less than the cumulative data transfer rate of said sub-networks to which it is connected and discrimination means to monitor the flow of data across each of said nexus and to prohibit transfer of data to said one host at a cumulative rate in excess of the data-reception rate of said one host.
The present invention provides a network of at least two independent rooted tree networks, operating as sub-networks, to link attached hosts. The independent sub-networks allow parallel transmissions between connected hosts for increased net data transfer rates. To avoid transmitting at a net data rate which is too high for any particular host at one time, the sub¬ networks have a common discretionary unit which may determine a maximum acceptable transmission rate to any host and limits access to the nexus of each sub-network to ensure that the maximum rate is not exceeded. As each of the sub-networks may carry data packets independently of the others, in the event of a failure in one sub-network, another sub-network continues operation as the network, albeit at a somewhat reduced data rate. Thus the network may tolerate one or more faults.
A preferred embodiment of the present invention will now be described, by way of example only, with reference to the following drawings, wherein
Figure 1 shows a rooted tree network comprised of three sub-networks;
Figure 2 is a block diagram of a parallel network interface unit (NIU) shown in Figure 1; Figure 3 is a block diagram of a transmitter unit of the parallel network interface unit (NIU) shown in Figure 2;
Figure 4 is a block diagram of a serial network interface unit (NIU) shown in Figure 1; Figure 5 is a block diagram of a hub shown in
Figure 1; Figure 6 is a block diagram of a root hub shown in Figure 1;
Figure 7 is a block diagram of a local discretionary unit of the root hub shown in Figure 6;
Figure 8 is a block diagram of a common discretionary unit (CDU) shown in Figure 1; and
Figures 9, 10 and 11 are flowcharts showing the operating logic flow of the local and the common discretionary units of Figures 7 and 8 respectively.
In Figure 1, a network is indicated generally at 8. The network 8 comprises three sub-networks 10A, 10B, 10c each arranged in a rooted tree topology. Each sub-network 10 includes hubs 20 interconnected by transmission links 18 with each sub-network terminating at a network interface unit NIU indicated generally at 14. The NIUs 14 are used to connect hosts 12 to the network 10.
For clarity of description, those components associated with one of the sub-networks 10A, 10B, 10c will be identified with an appropriate subscript A,B,C respectively.
Each of the sub-networks 10A, 10B, 10c have a root hub 22A, 22B, 22c that acts as a nexus for the sub-network with hubs 22A, 22B, 22c being arranged in hierarchial stages. The stages are determined by the number of transmission links 18 interposed between a hub 20 and the root hub 22. Each hub 20 is thus further identified by a subscript relating its stage in the network, the highest stage, that closest to the root hub 22, being 1 and each lower stage being incremented by one. In a similar manner, links 18 are identified by a subscript relating the sub-network to which they belong and a second and third subscript relating the stages they connect. For example, a hub 20 at the highest stage of sub-network 10A would be referred to as 20A1 and a transmission link between this hub and another hub in a stage one level lower would be identified as 18A12. Links 18 between root hub 22 and hubs 20 are identified with a second subscript R, for example 18AR1. It should be understood that in the following description three sub-networks have been chosen as an illustrative example only and no limitation as to the number of sub-networks or stages in each network is intended by this. It should be further understood that the arrangement and number of hubs and stages shown in Figure 1 is entirely arbitrary and should not be considered as being limiting in any way. It should further be understood that a hub 20 or link 18 of any one sub-network 10 differs from a hub 20 or link 18 of any other sub-network 10 only in regards to the sub-network to which it belongs. Any root hub 22 is also functionally identical to any other root hub 22. A transmission between any two hosts 12 is carried by any one of the sub-networks 10 as selected by the NIU 14 of the host originating the transmission. This NIU 14 determines which, if any, sub-network 10 is available for transmission, for example 10A and transmits the packet through hubs 20A and links 18A to root hub 22A. The root hub 22A broadcasts the packet back down through all of the stages of the sub-network 10A and the packet is eventually received by the NIU 14 attached to the destination host 12. Each data transmission in the network includes information identifying its originating host 12 and its destination host 12 and the identification further provides an indication of the maximum data-reception rate of the destination host. In the preferred embodiment, this information is encoded in a predefined portion of the transmitted packet. The maximum data-reception capacity of a destination host 12 is determined by a local discretionary unit in each root hub 22 of the sub-network 10 when it receives the transmission for broadcast.
A common discretionary unit CDU 32 monitors the nexus of each root hub 22 to prevent a root hub, 22B for example, from broadcasting data through its sub-network 10B if data is already being broadcast to the particular destination host 12 by another sub-network, 10A for example. If a local discretionary unit determines that it is possible that the destination host 12 of a packet may receive data transmissions at a cumulative rate greater than its maximum capacity, the local discretionary unit queries the CDU 32 for permission to transmit as will be described later. In the network shown in Figure 1, it is anticipated that there may be two types of host 12, those with data-reception rates which are high enough to handle properly the simultaneous arrival of packets on all the sub-networks 10, and those which are not. Therefore, two types of NIU 14 have been designed, the serial NIU denoted with a subscript S and the parallel NIU denoted with a subscript P for the purpose of clarity. It should be understood that in Figure 1, the arrangement and number of serial and parallel NIUs is entirely arbitrary and should not be considered as being limiting in any way.
Hosts 12 capable of receiving simultaneous packet arrivals over all the sub-networks 10 are connected to parallel NIUs and those hosts 12 capable of handling only a single packet arrival at one time are connected to a serial NIUs.
Each of the NIUs 14 has a unique address within the network and this address further contains a code that identifies the destination type of NIU 14 as being either parallel or serial. Each packet transmitted throughout the network contains the address of the NIU of the originating host as well as the address of the NIU of the destination hosts.
Figure 2 shows a parallel NIU 14p which consists of three receiver elements 26A, 26B, 26c associated with respective ones of the sub-networks 10A, 10B, 10c and a transmitter unit 28. Generally, a parallel NIU 14p has one receiver element for each sub-network 10 in the network 8. Each receiver element 26A, 26B, 26c is connected to a respective one of the connected transmission links 18A, 18B, 18c.
The transmission links 18 are each comprised of a pair of unidirectional communications lines which operate in opposite directions to allow full duplex communication over the link 18. Thus the device, whether hub or NIU, at each end of each link 18 has a receive line and a transmit line which may be used simultaneously. Each receiver element 26 is thus connected to the receive line of a respective one of the links 18. Each receiver element 26A, 26B, 26c is further connected to a common transfer link 16 between the NIU 14p and the host 12. As this link is shared by all receiver elements 26, it is preferably a full duplex parallel data bus allowing high speed transfer of data between host 12 and NIU 14p.
The operation of the receiver elements 26A, 26B, 26c will now be explained through a discussion of element 26A with an understanding that the operation of the other receiver elements is substantially the same. Each sub-network 10A, 10B, 10c in the network is arranged to carry a carrier signal when it is not carrying a packet. Receiver element 26A continually monitors its transmission link 18A with a carrier detector which asserts a carrier arriving signal CAA to the transmitter unit 28 provided a carrier signal is detected. The detection of the carrier signal implies that the sub-network 10A is currently not carrying a packet and that at least the receive line of the transmission link 18A of sub-network 10A is functional.
When no carrier signal is arriving over the link 18A, the receiver element 26A monitors the link 18A for packets which are copied into a buffer in the receiver element 26A and which are checked for either an originating address or a destination address corresponding to the address of the receiver's NIU 14p. If a received packet meets neither of these criteria, the buffer element is cleared in preparation to receive another packet.
If a packet is received with its destination address corresponding to the NIU's address, the receiver element 26A asserts its corresponding packet ready signal PRA to the host 12. The host 12 monitors the packet ready signal PRA, PRg, PR-, of each receiver element 26A, 26β, 26c respectively. When the host 12 is ready to accept the received packet from a receiver element 26, it asserts the transmit data TD signal to that receiver element 26. When the receive element 26A has its TD signal asserted, it copies the packet stored in its buffer element to the host through the transfer link 16. When the complete packet is transferred to the host 12, the TDA signal is de-asserted by the host 12 and receiver element 26A clears its buffer element in preparation to receive another packet.
If a packet is received at receiver element 26A with an originating address corresponding to that of the receiver's NIU 14p, the receiver element 26A asserts its corresponding echo detect EDA signal to the transmitter unit 28. Assertion of an ED signal to the transmitter unit 28 implies that a packet previously broadcast from the transmitter 28 over a sub-network 10 was successfully broadcast from the root node 22 of that sub-network 10. It should be understood that each receiver element 26A, 26B, 26c of the parallel NIU 14p operates in a wholly parallel fashion allowing packets to be simultaneously received over each sub-network 10 of the network 8. To avoid the accumulation of packets in the NIU 14p, the transfer link 16 between the host 12 and the NIU 14p preferably has a data transfer rate sufficiently high to allow the transfer to host 12 of all received packets in the NIU 14p within the time required to receive one packet.
The operation of transmitter unit 28 of the parallel NIU 14p will now be discussed, with reference to Figure 3. The transmitter includes a central control and sequencer unit CCSU 30, a data bus demultiplexer DBD 32, a buffer memory unit BMU 35, transmit unit demultiplexers TUDs 36-, 362, 363 and transmitters XMTA, XMTB, XMTC.
To transmit a packet, the host 12 asserts a ready to send signal RTS to the CCSU 30. The CCSU 30 checks the buffer empty BE lines of buffer memory unit BMU 35 to see if the BMU 35 has a buffer available to receive a packet from the host 12. BMU 35 preferably has a buffer for each sub-network 10 to which the NIU 14 is attached.
As soon as a buffer is available, as indicated by the BE lines, the CCSU 30 asserts the buffer select signals BS to the data bus demultiplexer DBD 32 to connect the transfer link 16 to the available buffer in BMU 35 and asserts the buffer control lines BC to instruct the buffer to receive data from the transfer link 16 through DBD 32. The CCSU 30 then asserts the send packet signal SP to the host 12 causing the host 12 to transfer its packet to the available buffer in the BMU 35. At the completion of the transfer, the host 12 de-asserts the RTS signal to CCSU 30 for at least several bit times to indicate the end of the transfer.
Once the packet has been transferred to the NIU 14p, the host 12 is immediately available for other tasks. The listening for echoes of previously transmitted packets and the retransmission of packets which do not obtain access to the root hub 22A are performed by the NIU 14p.
Thus, once the host 12 de-asserts the RTS signal for a period long enough to indicate the end of a transmission, it may immediately re-assert the RTS signal if it has another packet to transmit. If the BMU 35 has another available buffer, as indicated by the BE lines, the CCSU 30 can immediately and appropriately assert the BS, BC, and SP signals to accept the packet. If the BMU 35 does not have an available buffer, the host 12 waits until the SP line is asserted by CCSU 30 when a buffer becomes free and the host 12 then transfers the packet over transfer link 16 to the available buffer.
The CCSU 30 continuously monitors the carrier arriving signals CAA, CA.,, CAC from each receiver element 26A, 26B, 26c to determine which receive lines of transmission links 18A, 18B, 18c respectively are carrying a carrier signal. As stated previously, a transmission link 18 with a receive line carrying a carrier signal is assumed to be available for the transmission of a packet. Each buffer in the BMU 35 has associated with it a transmission unit demultiplexer TUD 36. The transmitter unit 28 also has a transmitter XMT associated with each connected transmission link 18. The TUDs 36 allow the output of any buffer in the BMU 35 to be connected to any XMT at any one time.
Whenever a packet is stored in BMU 35 for transmission and the carrier arriving CA signals indicate that one of the sub-networks, 10A for example, is available, the CCSU 30 signals the transmission unit demultiplexer TUD associated with the buffer containing the packet to be transmitted, through the transmitter control lines TCL, to connect the buffer to the transmitter XMTA. The CCSU 30 then, through the buffer control BC lines, instructs the BMU 35 to transfer the packet to XMT which in turn transmits the packet onto the transmission link 18A. If no sub-network 10 is available, and a packet is waiting to be transmitted, the CCSU 30 waits until a CA signal is asserted indicating that a sub-network 10 is available. Once a sub-network 10 becomes available, the packet is then transmitted as described above.
As soon as transmission commences, the CCSU 30 begins a timing operation. The CCSU 30 performs timing operations for each packet it transmits through any sub-network 10. Thus, if the NIU 14 is transmitting on all three sub-networks 10, three concurrent and independent timing operations are performed by CCSU 30. If the echo detect signal ED corresponding to the sub-network on which the transmission was, or is being effected, is not received within a predefined retry period, the transmission of the packet is assumed to have been unsuccessful.
When a transmission is unsuccessful, the CCSU 30 randomly selects another transmission link 18 when it is available, and connects the buffer in BMU 35 to the XMT corresponding to the available link 18 through the appropriate TUD. The packet is then retransmitted and the timing operation begins again. The packet is retransmitted in this manner until an echo is detected within the retry period. It may be the case that the time required to transmit a complete packet exceeds the retry time. If a packet is still being transmitted from a XMT when the echo is received, the CCSU 30 allows the transmission of the packet to continue until the entire packet has been transmitted.
If the transmission time exceeds the retry period and no echo is received within the retry period, the CCSU 30 will immediately abort any remaining transmission and will retransmit the entire packet as described previously.
When both an echo has been received and the transmission has been completed, the BMU 35 clears the buffer which contained the packet and asserts a buffer empty BE signal to the CCSU 30 to indicate that the buffer is available for reuse.
A serial NIU 14s is shown in Figure 4. The serial NIU 14s differs from the parallel NIU 14p in that only one packet can be received or transmitted at any one time. Only one receiver element 40 is provided in the serial NIU 14s but a vestigial echo and packet detector 42 is provided for each of the links 18 from the various sub-networks 10. The receiver element 40 may be connected to a link 18 belonging to any of the sub-networks 10 through a multiplexer 44. A central control and sequencer unit CCSU 46 controls the operation of the NIU 14s as will be described. A host 12 connected to a serial NIU 14S receives a packet in the following manner. The vestigial echo and packet detectors 42A, 42B, 42c each monitor one of the sub-networks in the network. The vestigial echo and packet detector 42 provides an echo detect ED signals and a carrier arriving CA signal to CCSU 46, as well as providing packet select PS signals to multiplexer 44.
When a detector, 42A for example, determines that a packet being received over a link 18A has a destination address corresponding to that of the serial NIU 14s, it provides a packet select signal PS to the multiplexer 44 to connect the link 18A to receiving element 40. The packet is then copied into the buffer in receiver element 40.
When a packet is stored in the buffer in receiver element 40, the packet ready signal PR is asserted to the host 12. When the host is ready to accept the transfer of the packet, the transmit data TD signal is asserted to the receiver element 40 and the packet is copied over the transfer link 16 to the host 12. When the transfer is complete, the PR signal is de-asserted and the buffer in receiver element 40 is cleared. The transmitter element of the serial NIU 14s differs from that of the parallel NIU 14p in that it has only one transmitter XMT and only one buffer 50.
To transmit a packet, a host 12 connected to a serial NIU 14s asserts the ready to send RTS signal. The CCSU 46 checks the status of the buffer empty BE signal to determine if buffer 50 is available for use.
When the BE line indicates that buffer 50 is empty, and thus available, the CCSU 46 asserts the send packet SP signal to the host 12 and, with the buffer control BC signals, the CCSU 46 instructs the buffer 50 to store the packet transferred from host 12 over transfer link 16. The host 12 then transfers the packet into buffer 50 over transfer link 16 and host 12 de-asserts the RTS signal when the transfer is complete. When a packet is stored in buffer 50 for transmission, CCSU 46 monitors the carrier arriving CA signals from the vestigial echo and packet detectors 42. When a sub-network 10 is available, as indicated by an asserted carrier arriving CA signal, the CCSU 46 connects the output of transmitter 48 to the available link 18 by asserting the transmission control lines TCL to demultiplexer 52 and the packet is transmitted onto the available link 18. After transmission has begun, the CCSU 46 begins a timing operation similar to that of the parallel NIU 14p. As the serial NIU 14s can only transmit one packet at a time, the ED signals from each vestigial echo and packet detector are input, in the preferred embodiment, to OR gate 54 whose output 56 is connected to the CCSU 46.
If the output 56 of OR gate 54 is asserted within the retry time period, the packet is assumed to have been transmitted successfully. As in the case of the parallel NIU 14p, if the echo is received before the transmission of the packet is complete, the transmission is allowed to continue until the entire packet has been transmitted. When both the transmission is completed and the echo is received, the buffer 50 is emptied and the CCSU 46 is able to assert again the SP signal in response to an RTS signal. If the output 56 is not asserted within the retry period, the packet is assumed to have been unsuccessfully transmitted and the CCSU 46 randomly selects a transmission link 18 which is available, as indicated by its CA signal. The CCSU 46 asserts the TCL to demultiplexer 52 to connect transmitter 48 to the selected free link 18 and the packet is retransmitted from buffer 50. If no transmission link 18 is available, the CCSU 46 waits and monitors the CA signals until one becomes available. It will thus be seen that the NIUs 14 allow data to be transmitted through the network 8 at an effective transmission rate which may approach the sum of the maximum rate of each available sub-network 10.
The operation of each of the sub-networks 10 will now be discussed, with sub-network 10A selected as an example. Figure 5 shows a typical hub 20A1 of sub-network 10A with a parent link 18AR1 and three child transmission links, two links 18A12 to hubs 20A2, and a link 18AN1 to a NIU 14. This hub 20A1 has been chosen as an illustrative example only. It should also be understood that any hub may have more or fewer child links.
The hub 20A1 further comprises a selector 56 to connect the receive line of one of the two links 18A12 or link 18AN1 to the transmit line of the parental link 18AR1 and a broadcaster 58 to connect the receive line 18AR1 of the parent link to each of the transmit lines of the two links 18A12 and to the transmit line of 18AN1.
The selector 56 may be operated in several ways and, in the preferred embodiment, the technique used is that described in USP 4,570,162 to Boulton et al., the subject matter of which is incorporated herein by reference. The selector taught in the Boulton reference utilizes an exclusive and first come first served technique with the additional advantage that partial packets will not be selected.
Thus, packets transmitted from each NIU 14 to sub-network 10A will progress through links 18A with one packet being selected at each hub 20A for further transmission in the sub-network 10A. An originating NIU 14 whose packets fail to be selected at a hub 20A for further transmission in the sub-network 10A will not receive an echo within the retry period. The originating NIU 14 will thus retransmit the packet as described previously.
Packets which are successful in being selected at each hub 20A will eventually arrive at a root hub 22A as shown in Figure 6, which selects one arriving packet for broadcast throughout the sub-network 10A.
The root hub 22 comprises a selector 60 which is similar to that contained in the hubs 20 and a broadcaster 62 which transmits the selected packet to the transmit line of all the transmission links 18 which are attached to the root hub 22. To monitor the cumulative transmission rate to any NIU 14 in the network 8, a local discretionary unit LDU 64 is included in each root hub 22. The LDU 64 determines whether the destination NIU 14 of a selected packet is a serial NIU 14s or a parallel NIU 14p and if the destination is a serial NIU 14s, the LDU 64 queries the common discretionary unit 32 as to whether the transmission should be allowed or inhibited. In the embodiment shown in Figure 1, it is assumed that any host 12 connected to a parallel NIU 14p has a data-reception rate sufficiently high to handle the simultaneous arrival of a packet from each connected sub-network 10.
The output of the selector 60 is passed to the local discretionary unit LDU 64 over line 66. Each root hub 22A, 22B, 22c has its own local discretionary unit 64A, 62B, 62c which is connected to the common discretionary unit 32 by control buses 34A, 34B, 34c respectively. The local discretionary unit 64 is better illustrated in Figure 7 and its operation is outlined in Figure 9. A packet detect and address extraction module PDAEM 68 monitors line 66, the output of selector 60, to detect the beginning of a received packet as indicated at step 138 in Figure 9. When the beginning of a received packet is detected, PDAEM 68 transmits the packet on a bit by bit basis to a first shift register 70 over line 72 as indicated at step 140 and onto line 48.
The shift register 70 is used as a delay line whereby an arriving packet input to the shift register 70 is not output from the shift register 70 for a number of bit times equal to the number of shift bits in the register. The required number of shift bits is dependent upon the speed of the control circuity in the LDU 64 and CDU 32 and is predetermined when constructing the network. As the arriving packet is loaded into the shift register 70, the local control and sequencing unit LCSU 74 counts the number of received bits, as indicated on line 76 from the PDAEM 68. When the LCSU 74 determines that the destination address of the selected packet is being received, as indicated at step 142, line 77 is asserted, thereby closing switch 79 so that the address is additionally passed to the common discretionary unit 32 over line 81, as indicated at step 144, while the packet continues to be copied into shift register 70. The LCSU 74 continues to count bits until it determines that the portion of the destination address which contains the manufacturer's NIU code is being received. Line 48 supplies the code to comparator 80 which the LCSU 74 then activates by asserting line 78. The comparator 80 performs a bit by bit comparison between the manufacturer's code for a parallel NIU, which is stored in memory unit 82, and the code received over line 48. If every bit is the same, the received packet is determined to be destined for a parallel NIU and the comparator asserts line 84 to the LCSU 74. If even one bit differs during the comparison, the packet destination is determined to be a serial NIU and line 84 remains de-asserted, as indicated at step 146.
If line 84 to LCSU 74 is asserted, the destination NIU is a parallel NIU. LCSU 74 asserts line 75 to gate 86 to connect the output of shift register 70 over line 88 to OR gate 90. Or gate 90 connects to output line 92 as indicated at step 148. Output line 92 is the input to the broadcaster 62 of the root hub 22. The LCSU 74 monitors the selected packet to detect the end of the transmission, as indicated at step 180, and opens gates 86 and 134 by asserting lines 75 and 93 respectively, as indicated at step 156. Furthermore, PDAEM 68 is reset to look for the start of another packet as indicated at step 158.
On the other hand, if line 84 to LCSU 74 is de-asserted, the destination NIU of the received packet is a serial NIU. Line 75 to gate 86 is de-asserted thus connecting the output of shift register 70 to the input of shift register 94, as indicated at step 150. Shift register 94 is used as another delay line and provides the necessary delay to consult the common discretionary unit 32 for the status of the destination NIU 14. The LCSU 74 asserts request line 112 to request service from a common discretionary unit 32, as indicated at step 152. The common discretionary unit 32 is shown in Figure 8 and its operation is outlined in Figure 10. When the destination address of the received packet is sent to the common discretionary unit 32 by a LDU 64 through line 81, it feeds splitter 98 which copies the address to internal address line 100 and compare line 102 as indicated at step 144.
Each root hub 22 has its own memory word 104A, 104B, 104c in the common discretionary unit 32, and shares the common comparison register 106. An activity bit 108 is appended to each memory word 104 and an activity bit 109 is appended to the common comparison register 106. The activity bit 109 of the common compare register 106 is permanently set to 1 while the activity bits 108 of the memory words 104 may be individually set or cleared by the activity bit forcing device ABF 110.
The LCSU 74 from each root hub 22 has a request line H2A, 112B, 112c connecting it to an arbitrator 114 in the common discretionary unit 32. If the common discretionary unit 32 is available, the arbitrator 114 selects the first request for service from lines 112,, 112B, 112c. If the common discretionary unit 32 is already busy serving a request, the arbitrator 114 immediately returns a reset signal H6A, 116B, 116c to the requesting LCSU 74A, 74B, 74c as indicated at step 154.
Upon receiving a reset signal 116 from the arbitrator 114, the LCSU 74 opens gates 86 and 134 by de-asserting lines 75 and 93 respectively, as indicated at step 156, and resets the PDAEM by asserting line 118, as indicated at step 158. The local discretionary unit 64 is thus reset to its initial state, the packet is not broadcast from the root hub 22 and the root hub 22 is ready to select the next arriving packet. If the common discretionary unit 32 is available for use, as indicated at step 154, the control unit CU 120 signals the activity bit force unit 110, as indicated at step 156, to clear the activity bit 108 of the memory word 104 which corresponds to the root hub 22 which is currently being served. The control unit CU 120 asserts the memory control lines MCL, putting the contents of the common compare register 106 onto the comparison bus 122 as one input to each comparison unit 124A, 124B, 124C and the contents of each unique memory word 104 are applied as the other.
As indicated at step 158, the comparison units 124A, 124B, 124C compare the contents of the common comparison register 106 to the contents of each memory word 104A, 104B, 104c, including the activity bit 108A, 108B, 108c in a bit-wise manner. For efficiency and speed, the comparison units 124 operate in a parallel fashion so that the result of each comparison is available simultaneously.
The outputs 126 of each comparison unit 124 are connected to an OR gate 128 as indicated at step 160. If the comparison unit 124 detects a match between its two comparands, the comparison succeeds and its output 126A, 126B, 126c is asserted. This implies that another of the root hubs 22 is transmitting a packet to the destination serial NIU 14s.
If even one bit of the two comparands differs, the comparison fails and output 126A, 126B, 126C is de-asserted. Thus, if all the comparisons fail, the output 130 of OR gate 128 is de-asserted, indicating that no memory word 104, excepting that associated with the requesting central hub 22, contains a memory address matching that in the common compare register 106. This implies that no other sub-network is transmitting a packet to the NIU whose address is specified in the common compare register 106.
Conversely, if at least one comparison succeeds, the output 130 of OR gate 128 is asserted because another sub-network 10 in the network 8 is currently transmitting a packet to a NIU 14 with the same destination address as that stored in the common compare register 106. The output 130 of OR gate 128 is connected to the control unit CU 120. If the output 130 is asserted, the desired destination serial NIU 38 is detected as currently receiving another packet. Thus, the CU 120 asserts line 121 to arbitrator 114, which in turn asserts the reset line 116A, 116B, 116c corresponding to the central hub being served. Arbitrator 114 considers that the common discretionary unit 32 is thus available to accept another service request, as indicated at step 162.
If, on the other hand, the output 130 of OR gate 128 is de-asserted, the destination serial NIU is detected as not currently receiving a packet through any sub-network 10. Thus, the CU 120 asserts the accept line 132 to the root hub 22 being served, as indicated at step 164. CU 120 instructs the activity bit force unit 110, by asserting line 123, to set the activity bit of the memory word corresponding to the root hub 22 which is being served, as indicated at step 166. Arbitrator 114 again considers the CDU 32 to be available, as indicated at step 168.
When the accept line 132 is asserted to the local discretionary unit, the LCSU 74 closes gate 134 thus allowing the output of the second shift register 94 to pass through OR gate 90 to output 92 and thence to the broadcast unit 62 of the root hub 22, as indicated at step 170. When the PDAEM 68 of an originating hub detects the end of a packet, as indicated at step 172, it asserts the end of transmission EOT line 136 to the ABF unit 110, as indicated at step 174. The ABF unit 110 clears the activity bit 108 of the memory word 104 which corresponds to the originating hub whose LDU 64 asserted its EOT line, as indicated at step 178. It should be understood that the CDU 32 continuously monitors the EOT lines, as indicated at step 176, and clears any activity bit 108 corresponding to a received EOT signal, as indicated at step 178.
For some host components it is envisaged that an NIU with a serial receiver and parallel transmitter or an NIU with a parallel receiver and serial transmitter may be favourably employed. It should be obvious to one of skill in the art that these NIUs could be fabricated from the components described herein with only minor modifications. It is thus apparent that the common discretionary unit 32 and the local discretionary units 64 cooperate to ensure that only one packet is transmitted to a serial NIU at any one time. Hosts with a data processing rate sufficient to deal with the simultaneous arrival of several packets may be connected simultaneously to all sub-networks 10 in network 8 through a parallel NIU 14p and have access to the network 8 at a cumulative transfer rate approaching that of the sum of the rates of the available sub-networks 10. Slower hosts 12 with the capability of receiving only one packet at a time are connected to serial NIUs 14s and thus, while the host 12 has access to all the sub-networks 10 of the network 8, the access is on an exclusive basis and the host 12 need only be able to accept packets at a reception rate corresponding to that of a sub-network 10. Additionally, it is anticipated that serial NIUs will be less expensive to manufacture than parallel NIUs. Each sub-network 10 of network 8 is limited to a data transfer rate corresponding to that of the slowest host 12 in the network. However, the network 8 is limited only to ensure that hosts 12 connected to parallel NIUs 14p are capable of accepting transmissions at the cumulative total transmission rate appearing at the parallel NIU 14p. A supercomputer, for example, may be connected to a parallel NIU 14p and a slower computer may be connected to a serial NIU 14s and each will operate within the network without any direct limitation to the other's speed.
In its normal state, without any faults, the network 8 operates as follows.
As a first example, assume that a host 12 connected to a parallel NIU 14p wishes to send a packet to a host 12 also connected to a parallel NIU 14p. A packet is assembled at the originating host 12 with the address of the host's NIU and the address of the destination host's NIU according to a predefined packet structure. The originating host 12 asserts the ready to send RTS line to the NIU 14p and awaits the assertion of the send packet SP line by the central control and sequencer unit CCSU 30 in the NIU 14p. The CCSU 30 checks the buffer memory unit BMU 35 for a free buffer, and when one is free, the CCSU 30 asserts the SP line to the host 12 and instructs the BMU 35 to store the packet transferred from the host 12 over transfer link 16 in the empty buffer. When the host 12 detects the assertion of the
SP line, it begins transfer of the packet into the selected buffer in the BUM 35. When the packet transfer is complete, the host 12 de-asserts the RTS line to indicate to the CCSU 30 that the transfer is complete. After a few bit times of maintaining the RTS line de- asserted, which are required to indicate the completion of the transfer, the originating host 12 may, if it has another packet ready to transmit, again assert the RTS line. The CCSU 30 reviews the status of the carrier arriving CA lines of each sub-network 10 and randomly selects one of the asserted ones. The asserted line implies that the sub-network 10 corresponding to that line is available for a transmission. The CCSU 30 configures the transmission unit demultiplexer TUD associated with the buffer containing the packet awaiting transmission, to connect to the transmitter XMT associated with the selected sub-network 10. The CCSU 30 then instructs the BMU 35 to copy the packet to the XMT for transmission onto the sub-network 10.
Assuming that the packet wins all selection competitions along its upward path, it will eventually arrive at and be selected by the root hub 22. The local discretionary unit 64 determines that the destination address of the packet is a parallel NIU 14p and broadcasts the packet over the transmit line in each of the root hub's transmission links 18. This broadcast means that the packet will be available at all of the NIUs 14 in the network 8.
The destination NIU 14 will receive the packet and transfer it to its connected host 12 by recognizing the destination address included in the packet. The originating NIU 14 will also receive the packet and will recognize it as an echo of its earlier transmitted packet by examining the originating address. The originating NIU 14 will thus assume that the packet has been successfully transmitted and will clear the packet's buffer in its BMU 35.
As a second example, assume that the originating NIU 14 is a parallel NIU 14p and the destination is a serial NIU 14p. The transmission procedure is identical with that outlined above until the receipt and selection of the packet at the root hub 22.
The local discretionary unit 64 at the root hub 22 will examine the code in the destination address to determine that the destination NIU 14 is a serial NIU 14s. The local discretionary unit 64 transfers a copy of the destination address of the packet to the common discretionary unit CDU 32.
The destination address from the local discretionary unit 64 is copied into the memory word 104 corresponding to the root hub 22 and, if allowed by the arbitrator 114 in the CDU 32, the address is also copied into the common compare register 106 of the CDU 32.
The arbitrator 114 of the CDU 32 knows at all times whether the CDU 32 is available to service a request or is in the process of serving a request. In the later case, the arbitrator 114 immediately asserts the reset line 116 to the local discretionary unit 64 of the root hub 22. The root hub 22 then does not transmit the packet and instead resets its selector 60 to allow the selection of another packet from its transmission links 18. The originating host 12 will not receive an echo of its packet within the retry time and will thus attempt to retransmit the packet.
If the CDU 32 in the above example is not occupied servicing a request, the arbitrator 114 allows the activity bit force unit ABF 110 to clear the activity bit 108 of the memory word 104 corresponding to the requesting root hub 22 and the contents of the common compare register 106 are compared with the contents of each of the memory words of the CDU 32. If the contents of any of the memory words 104 of the CDU 32 match those of the common compare register 106, the destination NIU 14 is currently receiving a packet and another cannot be sent. The CDU 32 thus resets the local discretionary unit 64 of the root hub 22 requesting service, inhibiting the transmission of the packet and the originating NIU 14 will attempt to retransmit the packet.
If no matches are found between the memory words 104 and the common compare register 106, the destination NIU 14 is available to receive a packet. The ABF 110 asserts the activity bit 108 of the memory word 104 corresponding to the requesting root hub 22 and the CDU 32 asserts the accept line 132 to the requesting root hub 22. The root hub 22 will then broadcast the packet to the transmit line of its transmission links 18. The echo detection indicating a successful transmission and the clearing of the buffer in the BMU 35 at the originating NIU 14 are performed in the same manner as in the previous parallel NIU 14p to parallel NIU 14p example. When the root hub 22 completes the broadcast of the packet, it asserts the end of transmission EOT line to the CDU 32. The ABF 110 unit in the CDU 32 de-asserts the activity bit 108 of the memory word 104 corresponding to the root hub 22, effectively ensuring that a subsequent comparison with the contents of the memory word 104 will fail, thus indicating that the root hub 22 is not transmitting to the serial NIU 14p. The activity bit 108 of the memory words 104 in the CDU 32 is a simple and quick method of validating and invalidating the contents of the memory words 104.
A serial NIU 14s to serial NIU 14s or serial NIU 14s to parallel NIU 14p transmission is analogous to the above-described examples with the only difference being that the originating serial NIU 14s has a vestigial echo and packet detector 42 attached to each receive line of its transmission links 18 to detect an echo of its transmitted packet.
The network 8 described above offers good tolerance to many faults that may occur as a number of independent sub-networks 10 may be provided and no host 12, connected through an NIU 14 to more than one sub-network, will be solely dependent upon any one sub-network 10. A brief outline of some of the possible faults, their detection and their impact on the network 8 follows.
The failure of an uplink, the transmit line in a transmission link at a lower stage hub to a higher stage hub, may be detected through the addition of simple counting hardware in the NIUs. Any uplink with more than a preselected number of retries within a given time could be flagged for testing. In operation, the uplink failure would lead to an increase in retries, and thus lower network efficiency, but would not isolate any NIUs as they will eventually retry their transmission over another, working, uplink.
The failure of any downlink, the receive line in a transmission link at a lower stage hub from a higher stage hub, is detected by the absence of an arriving carrier signal. Thus a sub-network with a failed downlink will automatically be ignored as the CCSUs in the NIUs only select sub-networks with asserted CA signals.
A failure in the local discretionary or common discretion units could take two forms. The units could fail such that they do not select any packets for transmission. This failure is catastrophic and readily detected. Or the units could fail and allow multiple packets to be sent to serial NIUs. This failure will only be detected according to the network load and the probability of a serial NIU simultaneously receiving two packets. There will be no effect on transmissions to parallel NIUs apart from a possible lowering of available bandwidth due to the probable increased retries, detected by other protocol means, to the serial NIUs.
It should be understood that a network of three sub-networks has been discussed solely for reasons of brevity and clarity and this discussion should not be construed as limiting the invention to embodiments of three sub-networks.
It should be apparent to those skilled in the art that the above proposal can be modified, if desired, to allow the favourable connection of hosts with data-reception rates greater than the cumulative transfer rate of any two sub-networks but less than the cumulative transfer rate of all the sub-networks in the network. This could be accomplished, for example, by the modification of the Local Discretionary Units to ascertain the maximum data-reception rate of all parallel NIUs. This rate would be expressed in integer multipliers of the individual sub-network rates and could be included as part of the code in the NIUs' unique addresses. For example, if a host with a maximum reception rate of 225 Megabits per second in a network whose ten sub-networks each had individual transfer rates of 50 Megabits per second would have a rate of 4 (i.e. 200 Megabits per second) included in its unique address code.
The Local Discretionary Unit determines the parallel NIU's rate and, if less than the cumulative rate of the entire network, requests service from the Common Discretionary Unit in a manner similar to that used for serial NIUs. A comparison operation again similar to that described for a serial NIU is performed by the CDU, however in this case the CDU monitors the comparison results and will allow a number of successful comparisons up to the data rate of the NIU. In the example of the host with a rate of 4, up to 4 successful comparisons could occur before the CDU would prevent further simultaneous transmissions.
It should be apparent to those skilled in the art that changes in the form and details of the foregoing may be made without departing from the spirit and scope of the invention.

Claims

We claim:
1. A data transfer network comprising a plurality of rooted tree sub-networks each having a nexus to regulate the transfer of data through the respective sub-network, a plurality of hosts each connected to at least one of said sub-networks, at least one of said hosts being connected to a plurality of said sub-networks and having a data-reception rate less than the cumulative data transfer rate of said sub-networks to which it is connected and discrimination means to monitor the flow of data across each of said nexus and to prohibit transfer of data to said one host at a cumulative rate in excess of the data-reception rate of said one host.
2. A data transfer network according to claim l wherein said discrimination means prohibits simultaneous data transfers to said one host in more than one of said sub-networks.
3. A data transfer network according to claim l wherein data transferred through said sub-networks is configured to identify the data-reception rate of the destination host to which said data is directed, said discriminating means monitoring said configuration and the said nexus of at least the sub-networks to which said destination host is connected to prohibit data-transfer to said destination host in excess of the maximum cumulative data-reception rate of said destination host.
4. A data transfer network according to claim 3 wherein said discrimination means prohibits simultaneous data transfers to said destination host in more than one of said sub-networks.
5. A data transfer network according to claim 4 wherein said discrimination means is operable upon detecting said configuration to inhibit further transfer to said destination host through other of said nexus.
6. A data transfer network according to claim 3 wherein said discrimination means includes monitoring means at each said nexus to determine said configuration and an inhibit means responsive to each of said monitoring means to prohibit data transfer through said nexus at a cumulative rate greater than the maximum data-reception rate of said destination host.
7. A data transfer network according to claim 6 wherein each of said monitoring means provides either a first or second signal to said inhibit means; said first signal indicating the data-reception rate of the destination host to which said data is directed is at least equal to the cumulative transfer rate of said sub-networks to which said destination host is connected, said inhibit means allowing said transmission; and said second signal indicating both the identity of said destination host and that the data-reception rate of said destination host is less than said cumulative transfer rate.
8. A data transfer network according to claim 7 wherein the maximum data-reception rate of each of said hosts is expressed as an allowable number of simultaneous transmissions to each said host, said allowable number being included in said configuration.
9. A data transfer network according to claim 8 wherein said inhibit means further comprises memory means to record the identity of each said destination host identified in said second signals and comparison means operating on said memory means to determine the number of nexus transferring data to any one of said destination host and comparing said number to said allowable number, said inhibit means inhibiting further requests for transmission to said one destination host upon said comparison means determining that said allowable number would be exceeded.
10. A data transfer network according to claim 9 wherein said inhibit means provides a reset signal to any of said nexus attempting to transfer data to said destination host which would exceed said allowable number, said reset signal terminating said attempt to transfer said data.
11. A data transfer network according to claim 10 wherein upon said nexus receiving said reset signal, said nexus is immediately available to attempt to perform another data transfer.
12. A data transfer network according to claim 3 wherein each of said hosts is connected to respective ones of said sub-networks through a buffer means.
13. A data transfer network according to claim 12 wherein said buffer means are capable to transfer data to said sub-networks at different rate than the data is transferred to said host.
14. A data transfer network according to claim 13 wherein said buffer means operates to transfer data to said sub-networks in a serial manner and to said host in a parallel manner.
15. A data transfer network according to claim 14 wherein at least one of said buffer means operates to allow the simultaneous reception of data from each of said sub-networks to which said buffer means is connected.
16. A data transfer network according to claim 14 wherein at least one of said buffer means operates to allow the simultaneous transmission of data to each of said sub-networks to which said buffer means is connected.
17. A data transfer network according to claim 15 wherein at least one of said buffer means operates to allow the simultaneous transmission of data to each of said sub-networks to which said buffer means is connected.
18. A local area network comprising at least two sub-networks arranged in a rooted tree topology and each said sub-network having a root node whereby data accepted at said root node is broadcast throughout the entire respective sub-network; at least two hosts, at least one of said hosts connected to more than one of said sub-networks, and at least one of the multiply connected hosts having a maximum data-reception rate less than the cumulative data transfer rate of the sub-networks to which it is connected; and discrimination means to inhibit transmission of data to said one host which would result in a cumulative transfer rate to said one multiply connected host in excess of the maximum data-reception rate of said one multiply connected host.
19. A local area network according to claim 18 wherein each transmission through said network includes an identification portion identifying at least the originating host, destination host and the maximum data-reception rate of said destination host expressed as a number of simultaneous transmissions to each said host.
20. A local area network according to claim 19 wherein said discrimination means further comprises a local discretionary unit at each of said root nodes to determine said number of said destination host of a transmission pending acceptance at said root node and a common discretionary unit to inhibit said acceptance at said root node of any transmission that would exceed said number.
21. A local area network according to claim 20 wherein said local discretionary means provides the common discretionary means the identity of said destination host; said common discretionary means further including memory means and comparison means, said memory means storing said identity of said destination hosts to which data are being transmitted and said comparison means determining the number of occurrences of the identity of said destination host stored in said memory means, said common discretionary means inhibiting acceptance of transmissions to said destination host from further root nodes when said maximum transfer rate has been attained.
22. A local area network according to claim 20 wherein a root node inhibited from accepting a transmission by said common discretionary means is immediately available to attempt to accept another transmission for broadcast.
PCT/CA1991/000164 1990-05-18 1991-05-15 High bandwidth fault tolerant lan WO1991018462A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52487390A 1990-05-18 1990-05-18
US524,873 1990-05-18

Publications (1)

Publication Number Publication Date
WO1991018462A1 true WO1991018462A1 (en) 1991-11-28

Family

ID=24091006

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA1991/000164 WO1991018462A1 (en) 1990-05-18 1991-05-15 High bandwidth fault tolerant lan

Country Status (1)

Country Link
WO (1) WO1991018462A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997016782A2 (en) * 1995-10-18 1997-05-09 Leslie Christopher Holborow Computer network security arrangements
EP0785651A1 (en) * 1996-01-16 1997-07-23 AT&T Corp. Receiver sharing for demand priority access method repeaters
WO1998004070A1 (en) * 1996-07-23 1998-01-29 3Com Ireland Multisegment repeater
WO1998004071A1 (en) * 1996-07-23 1998-01-29 3Com Ireland Mac architecture
WO1998036535A1 (en) * 1997-02-14 1998-08-20 Advanced Micro Devices, Inc. Integrated multiport switch having shared media access control circuitry
GB2396991A (en) * 2002-12-20 2004-07-07 Hewlett Packard Development Co Rapid selection of devices in a tree topology network
CN116866160A (en) * 2023-09-05 2023-10-10 空间液态金属科技发展(江苏)有限公司 Design method for improving reliability of spacecraft network system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0255386A2 (en) * 1986-07-30 1988-02-03 The University Of Toronto Innovations Foundation Robust rooted tree network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0255386A2 (en) * 1986-07-30 1988-02-03 The University Of Toronto Innovations Foundation Robust rooted tree network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ICC '90 CONFERENCE RECORD, Atlanta, Georgia, 15-19 April 1990, vol. 4, IEEE, (New York, US), S. MARANO: "Performances study of a high throughput collisonless tree lan with simultaneous transmission", pages 1680-1681, see page 1680, right-hand column, lines 2-9; page 1681, left-hand column, lines 18-21; page 1681, right-hand column, line 44 - page 1682, left-hand column, line 17 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997016782A2 (en) * 1995-10-18 1997-05-09 Leslie Christopher Holborow Computer network security arrangements
WO1997016782A3 (en) * 1995-10-18 1997-06-26 Leslie Christopher Holborow Computer network security arrangements
EP0785651A1 (en) * 1996-01-16 1997-07-23 AT&T Corp. Receiver sharing for demand priority access method repeaters
GB2331434A (en) * 1996-07-23 1999-05-19 3Com Ireland Mac architecture
WO1998004071A1 (en) * 1996-07-23 1998-01-29 3Com Ireland Mac architecture
WO1998004070A1 (en) * 1996-07-23 1998-01-29 3Com Ireland Multisegment repeater
GB2332840A (en) * 1996-07-23 1999-06-30 3Com Ireland Multisegment repeater
GB2331434B (en) * 1996-07-23 2001-04-04 3Com Ireland Mac architecture
WO1998036535A1 (en) * 1997-02-14 1998-08-20 Advanced Micro Devices, Inc. Integrated multiport switch having shared media access control circuitry
US6094436A (en) * 1997-02-14 2000-07-25 Advanced Micro Devices, Inc. Integrated multiport switch having shared media access control circuitry
GB2396991A (en) * 2002-12-20 2004-07-07 Hewlett Packard Development Co Rapid selection of devices in a tree topology network
GB2396991B (en) * 2002-12-20 2005-11-09 Hewlett Packard Development Co Systems and methods for rapid selection of devices in a tree topology network
US7310343B2 (en) 2002-12-20 2007-12-18 Hewlett-Packard Development Company, L.P. Systems and methods for rapid selection of devices in a tree topology network
CN116866160A (en) * 2023-09-05 2023-10-10 空间液态金属科技发展(江苏)有限公司 Design method for improving reliability of spacecraft network system
CN116866160B (en) * 2023-09-05 2023-11-21 空间液态金属科技发展(江苏)有限公司 Design method for improving reliability of spacecraft network system

Similar Documents

Publication Publication Date Title
US5740174A (en) Method and apparatus for performing collision detection and arbitration within an expansion bus having multiple transmission repeater units
EP0094180B1 (en) Dual-count, round-robin distributed arbitration technique for serial buses
EP0100662B1 (en) Digital communication system
US4750109A (en) Method and system for expediting multi-packet messages in a computer network
US4683563A (en) Data communication network
US4845722A (en) Computer interconnect coupler employing crossbar switching
US5771462A (en) Bus arbitration infrastructure for deployment of wireless networks
EP0140712A2 (en) Data transmission system and method
US5210871A (en) Interprocessor communication for a fault-tolerant, mixed redundancy distributed information processing system
JP2551304B2 (en) Broadcast link control method
JPS62501116A (en) Idle period signal in packet switching system
US5528594A (en) Method and system for implementing sub-tokens on a token ring network
EP0230549B1 (en) Linear-space signalling for a circuit-switched network
US6181708B1 (en) Lossless arbitration scheme and network architecture for collision based network protocols
WO1991018462A1 (en) High bandwidth fault tolerant lan
US4707830A (en) Token passing LAN using a plurality of tokens
US5442631A (en) Communication control device
US6594283B1 (en) Network communication device
WO1991008627A1 (en) Packet filter for bridge between networks
EP0597030B1 (en) Automatically deactivated no-owner frame removal mechanism for token ring networks
EP0482813A1 (en) Data communication network and method of operation
JP2698687B2 (en) Local area network interface mechanism
SU1550516A1 (en) Method of determining procedure of message transmission
JPH0595363A (en) Duplexed ring bus fault detecting device
JPS61169040A (en) Communication control system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE

NENP Non-entry into the national phase

Ref country code: CA