Repeater interface controller

Abstract: A repeater interface controller that connects segments of a bus/tree local area network utilizes a distributed architecture that includes two types of nodes. A central node performs the majority of the operations defined in the IEEE 802.3 repeater specification. A port node (P1-P8) resides at the end of each of a spoke from the central node and is the connection between a network segment and a repeater segment, each port node controls transmit operations upon its associated segment and arbitrates with other port nodes whenever there is contention during packet reception or collision.

Description: Background of the Invention 1. Field of the Invention The present invention relates to local area networks and, in particular, to various features of a repeater interface controller that connects segments of a bus/tree network. 2. Discussion of the Prior Art A local area network, or LAN, is a communications system that provides interconnection among a number of independent computing stations within a small area, such as a single building or a group of adjacent buildings. The most-commonly implemented local area network topology is the so-called "bus/tree" topology. In a "bus" network, all stations attach directly to a linear transmission medium, or bus, through appropriate hardware interfacing. A transmission from any station in the network propagates the length of the medium and can be received by all other stations. A "tree" topology is a generalization of the bus topology. In a tree network, the transmission medium is a branching cable with no closed loops. Each branch defines a network "segment". As in a bus network, a transmission from any station in the network propagates through the medium on all segments and can be received by all other stations. Data are transmitted in a bus/tree network in units that are usually referred to as "frames" or "packets". In addition to data to be transmitted, each packet includes control information such as the address of the packet source (transmit station) and the address of the packet destination (receive station). Because all stations of a bus/tree network share a common transmission medium, only one station may transmit at a time. A transmitted packet propagates through the medium, is received by all stations on the network and is copied by the destination station to which it is addressed. In a baseband LAN, digital signals are transmitted onto the medium as voltage pulses, usually utilizing Manchester encoding. Transmission is bidirectional; that is, a signal inserted at any point on the medium propagates in both directions to the ends of the medium where it is absorbed. Baseband systems can extend only a limited distance, usually about 1 km. maximum, because of attenuation of the digital signal. Because of the wide variety of physical, electrical and procedural characteristics available to designers of equipment for local area networks, it has become widely acknowledged that certain standards must be observed. For example, the International Organization for Standardization (ISO) has developed a voluntary Open Systems Interconnection (OSI) model which defines a general computer system architecture. An "open" system may be implemented in any way provided that it conforms to a minimal set of OSI standards that allow it to communicate with other "open" systems. A number of local area network protocol standards have been developed by the Institute of Electrical and Electronics Engineers (IEEE) 802 committee. One of these standards, the IEEE 802.3 standard, defines a protocol for a bus/tree local area network. As discussed below, the IEEE 802.3 standard defines a bus/tree protocol that implements the carrier sense multiple access with a collision detection (CSMA/CD. The standard also defines a media access control (MAC) function for transmitting packets to and receiving packets from the transmission medium as well as packet structure and the interaction that takes place between MAC entities in the network. The IEEE 802.3 standard anticipates that stations will be located only a short distance from the physical transmission medium. Thus, the standard specifies a medium attachment unit (MAU) that connects directly to the physical medium and an attachment unit interface (AUI) which serves as the transmission medium between a station and an associated MAU. As stated above, in a bus/tree network, a transmission from any station in the network propagates through the medium on all segments and can be received by all other stations. Thus, the 802.3 CSMA/CD protocol defines a "random access" or "contention" technique for addressing the problem of how multiple stations will share a common transmission medium when all stations transmit randomly and contend with one another for transmission time on the network. According to the well-known carrier sense multiple access (CSMA) technique, a station wishing to transmit first listens to the medium to determine if another transmission is occurring. If the medium is in use, then the station idles for some pseudorandom time and then re-attempts the transmission. If the medium is idle, then the station transmits. If two or more stations transmit at the same time, then a collision occurs. To account for collisions, the transmitting station waits a period of time after transmitting for an acknowledgment that its transmission has been received by the destination station. If no acknowledgement is received, then the station assumes that a collision has occurred and retransmits. Although the CSMA technique is an efficient method for managing transmission in a bus/tree network, it does have deficiencies. For example, when two packets collide, the medium remains unstable for the duration of transmission of both packets. For long packets, the amount of bandwidth wasted before re-transmission is permitted can be considerable. This bandwidth waste can be reduced if a station continues to listen to the medium while it is transmitting. The rules for this procedure, known as carrier sense multiple access with collision detection (CSMA/CD) are as follows. If a station wishing to transmit senses that the medium is idle, then it transmits. If the station senses that the medium is busy, it continues to listen to the medium until it senses that the medium is idle and then immediately transmits. If the station detects a collision during transmission, then it transmits a brief jamming signal to assure that all stations on the network know that there has been a collision; then it ceases transmission. After transmitting the jamming signal, the station waits a pseudo-random period of time and then re-attempts the transmission. The length of a bus/tree network can be extended by connecting together a number of medium "segments" using "repeaters". A "repeater" comprises two or more MAUs and associated logic joined together and connected to two or more different segments of the network medium by corresponding AUIs. The repeater passes retimed digital signals in both directions between the two segments, amplifying and regenerating the signals as they pass through. A conventional repeater is transparent to the rest of the network system. It does no buffering and does not isolate one segment from the rest of the network. Thus, if two stations on different segments attempt transmission at the same time, their transmissions will collide. The IEEE 802.3 standard provides for a variety of medium and data-rate options within the protocol. To distinguish implementations using different alternatives, the following notation has been adopted: (data rate,Mbps) (medium type) (max. segment lgth*100m) Thus, an IEEE 802.3 network with a data rate of 10-Mbps, a baseband medium and a maximum segment length of 500 meters is referred to as a 10BASE5 network. The IEEE 802.3 10BASE5 standard specifies use of a 50-ohm coaxial cable as the transmission medium and a data rate of 10 Mbps using digital signalling with Manchester encoding. These parameters define the maximum cable length at 500 m./segment. The IEEE 802.3 10BASE2 standard provides a lower-cost network configuration well suited for personal computer networks and commonly-referred to as "Cheapernet". As with a 10BASE5 network, a 10BASE2 network uses 50-ohm coaxial cable and Manchester encoding at a data rate of 10 Mbps. The difference between a 10BASE5 and a 10BASE2 Cheapernet network is the use in a Cheapernet network of a thinner, more flexible cable which enables expended, simpler installation options. However, the thinner cable suffers greater signal attenuation and lower noise resistance and, thus, supports fewer stations over shorter segment lengths. One of the best known local area networks is Ethernet, which was developed by Xerox Corporation in the mid-1970s. The Ethernet architecture was used as the basis for an IEEE 802.3 network which includes several features worthy of notation. The IEEE 802.3 network includes a "heartbeat" function. This is a signal sent from the MAU to the station that confirms that the MAU collision signal circuitry is working and connected to the station. Without this signal, which is referred to as the signal-quality-error signal, the station is unsure whether the frame was actually sent without a collision or whether a defective MAU failed to properly report a collision. IEEE 802.3 also includes a jabber function. This is a self-interrupt capability that allows a MAU to inhibit transmitted data from reaching the medium if the transmission occurs for longer than a predetermined time period. Chapter 9 of the IEEE 802.3 specification defines the standard for a repeater utilizable in 10 Mbps baseband networks. As stated in the specification, network segments may be connected directly by repeater combinations as long as only one signal path is operative between any two points on the network and the number of repeaters in that signal path is not greater than four. The 802.3 repeater must be designed to receive and decode data from any network segment under defined jitter conditions and to retransmit data to all other network segments attached to it with timing and amplitude restored. Retransmission of data occurs simultaneously with reception. If a collision occurs, the repeater propagates the collision event throughout the network by transmitting a jam signal. The repeater also detects and isolates faulty network segments. Fig. 1 shows an example of an 802.3 multi-port repeater system 1. A Manchester encoded data packet received by one of multiple transceivers (XCVR) 2 of the system 1 is processed by the associated port logic 3 and then provided via a multiplexor 4 to a decoder 5. The decoder 5 recovers NRZ data and a clock signal from the Manchester encoded input. Data is placed on a CONTROL BUS for processing by a central state machine 6, which implements the repeater's protocol facilities, aided by a set of central counters 7. Information generated by the port state machine 6 may be provided to a set of display devices and drivers 8. Recovered data from the decoder 5 is entered via an RX DATA PATH BUS to an elasticity buffer FIFO 9 from which it is read, Manchester encoded and retransmitted to all network segments and retransmitted to all network segments via transceivers 2. The IEEE 802.3 committee' s Hub Management Task Force currently has under consideration a Draft Supplement to the IEEE 802.3 standard relating to hub management. The goal of the hub management standard is to provide Management Information Service (MIS) capability over the network. Since repeaters enjoy a "privileged" view of transmissions on an 802.3 network, they are a logical place to implement the MIS function. The draft standard describes management of repeater hubs in terms of a general model of management of resources within the OSI environment. It is known from EP-A-0222669 and as explained with reference to Figure 1 herein to provide a repeater interface controller for connecting a plurality of segments of a local area network, the repeater interface controller comprising: a central node that includes: central receiver means for receiving data packets, repeater means responsive to receipt of the data packets by the central receiver means for repeating each of the data packets to form repeated data packets, and central transmitter means for transmitting the repeated data packets; and a plurality of port nodes connected to the central node, each port node being connectable to a corresponding one of the plurality of segments, each port node including: first port receiver means for receiving data packets from said corresponding segment of the local area network; and first port transmitter means for transmitting the data packets received by the first port receiver means to the central node. The invention is characterised in that each port node includes: priority means for identifying the port node that first received the data packets as a source port node such that other of the plurality of port nodes cannot transmit data packets received from their corresponding segments to the central node while said port node is identified as the source port node; second port receiver means for receiving the repeated data packets from the central node; second port transmitter means for transmitting the repeated data packets received by the second port receiver means to said corresponding segment when said port node is not identified as the source port node, and for transmitting the repeated data packets received by the second port receiver means to said corresponding segment when said port node is identified as the source port node and when an externally-generated test signal is present; and collision detection means for identifying when the first port receiver means is receiving data packets at the same time that the second port transmitter means is transmitting data packets. In a preferred form of the present invention, the RIC utilizes a distributed architecture of functional entities. That is, the RIC architecture is that of a spoke wheel that includes two types of nodes. A central node performs the majority of the operations defined in the IEEE 802.3 repeater specification. A port node resides at the end of each spoke and is the connection between a network segment and the repeater system. Being the connection to the network segment, each port node controls transmit operations upon its associated segment and arbitrates with other port nodes whenever there is contention during packet reception or collision. Description of the Drawings Fig. 1 is a block diagram illustrating an example of an 802.3 repeater. Fig. 2 is a block diagram illustrating a repeater interface controller (RIC) in accordance with the present invention. Fig. 3 is a block diagram illustrating the architecture of an embodiment of an RIC in accordance with the present invention. Fig. 4 is a state diagram illustrating an IEEE 802.3 standard state machine. Fig. 5 is a state diagram illustrating a port state machine with power up in the IDLE mode. Fig. 6 is a conceptual diagram illustrating a distributed architecture of a repeater interface controller in accordance with the present invention. Fig. 7 is a block diagram illustrating two daisy-chained RICs. Fig. 8 is a timing diagram illustrating the packet repetition represented by the signals shown in the Fig. 12 block diagram. Fig. 9 is a timing diagram illustrating operation of a RIC during a receive collision. Fig. 10 is a timing diagram illustrating operation of a RIC during a transmit collision. Fig. 11 is a timing diagram illustrating the effect of a jabber length frame on a RIC-based repeater system. Detailed Description of the Invention General Description Fig. 2 shows a repeater controller interface ("RIC") 10 that satisfies the IEEE 802.3 repeater specification. The RIC 10 includes repeater segment partition and jabber lockup protection functions. The RIC 10 includes an on-chip phase-locked-loop (PLL) for Manchester data decoding, a Manchester encoder and an elasticity buffer for frame preamble regeneration. As shown in Fig. 2, each RIC 10 can connect to thirteen physical transmission medium segments via its network interface ports. One port 12 is fully attachment unit interface (AUI) compatible and able to connect to an external medium attachment unit (MAU) using the maximum length of AUI cable. The other 12 ports , collectively identified as "14" in Fig. 2, have integrated 10BASE-T transceivers 16. These transceiver functions may be bypassed so that the RIC 10 may be used with external transceivers 16, illustrated in Fig. 2 as National Semiconductor DP8392 coaxial transceivers. Large repeater units, containing several hundred ports, may be constructed by cascading RICs 10 together with an Inter-RIC bus 18. The RIC 10 is configurable for specific applications. It provides port status information 20 via LED array displays and a simple interface for system processors. The RIC 10 possess multi-function counter and status flag arrays to facilitate networks statistics gathering. A serial management interface 24 is available for the collection of data in managed hub applications. Each of the above-described features of the RIC 10 will be described in greater detail below. The IEEE 802.3 repeater specification details a number of functions that a repeater system in compliance with the specification must perform. These requirements, together with a need for the repeater implementation to be multi-port, strongly favors the choice of a modular repeater design style. In a modular design, functionality is split between those tasks common to all data channels and those tasks exclusive to each individual channel. The RIC 10 follows this modular design approach. That is, certain functional blocks are replicated for each network attachment (also known as a repeater port) and others are shared. Overview of RIC Functions 1. Segment Specific Block: Network Port Fig. 3 provides a block diagram of the RIC 10. As shown in Fig. 3, the segment-specific blocks 26, i.e., Ports 1-13, consist of one of more physical layer interfaces 26a and a logic block 26b required for performing repeater operations upon that particular segment. The logic block 26b is known as the "port" logic since it is the access "port" the repeater uses to access a segment on the rest of the network. To perform the tasks defined by the IEEE 802.3 repeater specification and to enable a large repeater system to be built using multiple RIC integrated circuits, a distributed architecture of functional entities is utilized in the RIC 10. As shown in Fig. 6, the RIC architecture is a spoke wheel containing nodes of two types. A central node performs the majority of the operations defined in the repeater specification: preamble regeneration, data decoding, fragment extension, jam packet generation, jabber protection and collision handling. A port node resides at the end of each spoke and is the connection between a network segment and the repeater system. In the disclosed embodiment of the RIC 10, thirteen (13) port nodes are utilized. However, this number is purely an implementation restriction rather than an architectural restriction. Being the connection to the network segment, the port node controls the transmit operations upon that segment and arbitrates with other port notes whenever there is contention during packet reception or collision. Other port node functions include physical media interfacing (to either 10BASE-T or AUI) and segment partitioning operations. In order for the repeater system to function, two types of communications channels are required. Referring again to Fig. 6, the first is a unidirectional channel between ports, where this connection may be visualized as the rim of the wheel. This link is used to resolve contention between ports when multiple data packets or collision signals are received. The second channel is a bidirectional handshake between the central and port nodes. By this means, information concerning a packet is conveyed from the receiving port into the main unit for processing and then out to the other ports for transmission. The combination of the functional units and their communications links gives rise to the spoked wheel shape of the Fig. 6 communications links. The manifestation of these communication links outside the device is known as the Inter-RIC bus. This allows large repeater systems using many RIC 10 devices may be built. The type of physical layer interface provided depends upon the port under examination. As stated above, and in accordance with an aspect of the present invention Port 1 has an AUI-compliant interface for use with AUI compatible transceivers and cable. Ports 2-13 may be configured for use with one of two interfaces: twisted pair or an external transceiver. A twisted-pair interface utilizes the RICs on-chip 10BASE-T transceivers; the later allows connection to external transceivers. When using the external transceiver mode, the interface is AUI-compatible. Although AUI-compatible transceivers are supported, the interface is not designed for use with an interface cable. Thus, the transceivers are necessarily internal to the repeater equipment enclosure. The port logic 26b includes three distinct functions. A port state machine (PSM) is required to perform data and collision repetition, as described by the IEEE 802.3 repeater specification. For example, the PSM determines whether this particular port should be receiving from or transmitting to its network segment. In accordance with an aspect of the present invention, the port partition logic implements an improved version of the IEEE 802.3 repeater port partition state machine to control port partitioning. The port status register reflects the current status of the port. It may be accessed by a system processor to obtain this status or to perform certain port configuration operations, such as port disable. 2. Shared Functional Blocks: Repeater Core Logic The shared functional blocks 28 include a repeater main state machine (MSM) and timers 30, a 32-bit elasticity buffer 32, a PLL decoder 34 and receive and transmit multiplexors 36. These blocks perform the majority of the operations needed to fulfill the requirements of the IEEE 802.3 repeater specification. When a packet is received by a port from the transmission medium, it is sent via the receive multiplexor 36 to the PLL decoder 34. Notification of the data and collision status is sent to the main state machine MSM 30 via receive multiplexor 36 and collision activity status signals are forwarded on a control and status bus. This enables the main state machine 30 to determine the source of the data to be repeated and the type of data to be transmitted. The transmit data may be either the received packet's data field or a preamble/jam pattern consisting of a 1010... bit pattern. Associated with the main state machine MSM 30 are a series of timers. These timers ensure that various IEEE 802.3 specification times (referred to in the specification as the TW1-TW6 times) are fulfilled. A repeater unit in compliance with the 802.3 specification is required to meet the same signal jitter performance as any receiving node attached to a network segment. Consequently, a phased-locked-loop Manchester decoder 34 is required so that the received packet may be decoded and the jitter accumulated over the receiving segment eliminated. The decoder 34 outputs data in NRZ format with an associated clock and enable signal. The packet is thus in a convenient format for transfer to other devices, such as network controllers and other RICs, via the Inter-RIC bus interface 38. The data may then be re-encoded into Manchester data and transmitted. Reception and transmission via physical layer transceiver units causes a loss of bits in the preamble field of a data packet. The 802.3 repeater specification requires compensation for this loss. To accomplish this, elasticity buffer 32 is used to temporarily store bits in the data field of the received packet while the preamble is being regenerated. 3. Inter-RIC Bus Interface The sequence of operation for data transmission by the RIC 10 is as follows. Soon after the network segment receiving the data packet has been identified, the RIC 10 begins to transmit the packet preamble pattern (1010...) onto the other network segments. While the preamble is being transmitted, the elasticity buffer 32 monitors the decoded received clock and data signals via the Inter-RIC bus, as described in greater detail below. When a start-up frame delimiter "SFD" is detected, the received data stream is written into the elasticity buffer 32. Removal of data from the elasticity buffer 32 for retransmission is not permitted until a valid length preamble pattern has been transmitted. Using the RIC 10 in a repeater system allows the topology to be constructed with many more network attachments than can be supported by a single chip. The split of repeater functions described above allows data packets and collision status to be transferred between the multiple RICs. At the same time, the multiple RICs still behave as a single logical repeater. Since all RICs in the repeater system are identical and capable of performing any of the repetition operations, the failure of one RIC will not cause the failure of the entire system. This is an important issue in large multi-port repeaters. As stated above, cascaded RICs communicate via a specialized interface known as the Inter-RIC bus 18 (Fig.2). This bus 18 allows the data packet to be transferred from the receiving RIC to other RICs in the system without the need for additional external logic circuits. The Inter-RIC bus 18 includes a set of status lines capable of conveying collision information between RICs to ensure that their main state machines (MSM) 30 operate in the appropriate manner. 4. LED Interface and Hub Management Function Repeater systems usually possess optical displays indicating network activity and the status of specific repeater operations. Referring to Fig. 3, the LED display and update logic block of the RIC 10 provides a variety of indicators. The display updates are completely autonomous and merely require SSI logic devices to drive the display devices, usually made up of light emitting diodes (LEDs). The status display is very flexible, allowing a choice of those indicators appropriate for the specification of the equipment. The RIC 10 provides special features for large repeaters possessing hub management capabilities. As stated above, hub management uses the unique position of repeaters in a network to gather statistics about the network segments to which they are attached. The RIC 10 provides hub management statistical data as follows. Important events are gathered by the management interface block 40 from the various other logic blocks throughout the RIC 10. These events may be stored in on-chip latches or counted in on-chip counters according to user supplied of latching and counting masks. The fundamental task of any hub management system is to associate the current frame and any management status information with the network segment (i.e., repeater port) from which the frame was received. An ideal system would place this combined data frame and status field in system memory for examination by hub management software. The ultimate function of the hub management support logic 42 of the RIC 10 is to provide this function. To accomplish this, the RIC 10 utilizes a dedicated hub management interface. This is similar to the Inter-RIC bus 18 since it allows the data packet to be recovered from the receiving RIC. Unlike the Inter-RIC bus 18, however, the intended recipient is not another RIC, but a controller device (e.g., a National Semiconductor Corporation DP83932 "SONIC"" network controller). The use of a dedicated management bus 24 (Fig. 2) allows a management status field to be appended at the end of the frame. This can be done without affecting the operation of the RIC 10. 5. Processor Interface The processor interface 22 (Fig. 2) of the RIC 10 allows connection to a system processor. Data transfer occurs via an octal bi-directional data bus. The RIC 10 has a number of on-chip registers indicating the status of the hub management functions, chip configuration and port status. These may be accessed by providing the selected address at the RIC's register address input pins (RA4-RA0). Display update cycles and processor accesses occur utilizing the same data bus. An arbiter in the processor/display block 44 schedules and arbitrates the processor accesses and display updates to ensure that the correct information is written into the display latches. During the display update cycles, the RIC 10 behaves as a master of the data bus. This is the default state of the data bus. Consequently, as shown in Fig. 2, a TRISTATE™ buffer must be placed between the RIC 10 and the system processor's data bus. This buffer ensures that bus contention is avoided during simultaneous display update cycles and processor accesses of other devices on the system bus. When the processor accesses a RIC register, the RIC 10 enables the buffer and selects the operation, either input or output, of the data pins. Description of Repeater Operations In order to implement a multi-chip repeater system which behaves as though it were a single logical repeater, special consideration must be paid to the data path used in frame repetition, such as where in the path specific operations, such as Manchester decoding and elasticity buffering, are to be performed. Also, the system's state machines, which utilize available network activity signals, must be able to accommodate the various packet repetition and collision scenarios detailed in the 802.3 repeater specification. As described generally above, and as shown in Fig. 3, the RIC 10 contains two types of inter-acting state machines: a port state machine (PSM) (each network attachment has its own PSM) and a main state machine MSM 30 that controls the RIC's shared functional blocks. The port state machine and the main state machine will now be described in greater detail. Reference will be made to expressions used in the IEEE 802.3 repeater specification. For the precise definition of these terms, reference is made to the IEEE 802.3 specification. To avoid confusion with RIC implementation, where references are made to repeater states or terms as described in the specification, these items are written in italics. The IEEE 802.3 standard state diagram is shown in Fig. 10. The RIC's main state diagram is shown in Fig. 11. 1. Port State Machine The port state machine PSM has two primary functions. First, it controls the transmission of repeated data and jams signals over the attached segment. Second, it decides whether a port will be designated as the source of data or collision information which will be repeated over the network. This designated repeater port is known as "PORT N". As shown in Fig. 4, an arbitration process is required to enable the RIC 10 to transition from the. IDLE state to the SEND PREAMBLE PATTERN or RECEIVE COLLISION states. This process is used to locate the port which will be PORT N for that particular packet. The data received from this port is directed to the PLL decoder 34 and transmitted over the Inter-RIC bus 18. If the RIC 10 enters the TRANSMIT COLLISION state (Fig. 5), then a further arbitration operation is performed to determine which port is designated as PORT M. PORT M is differentiated from the RIC's other ports if the RIC enters the ONE PORT LEFT state. In this state, PORT M does not transmit to its segment, whereas all other ports are still required to transmit to their segments. Fig. 5 shows the port state machine (PSM). This state machine is an asynchronous machine which powers up in the IDLE state. The minterms of the Fig. 5 state machine are as follows Minterm 1 ACKI and ACTNSIz and NOT TXEG and COLU no higher port with activity no external activity (inter-ric bus) no current transmission unpartitioned collision Minterm 2 ACKI and ACTNSIz and NOT TXEGTW1 and CRSU no higher port with activity no external activity (inter-ric bus) no transmission and the TW1 time has counted down unpartitioned carrier Minterm 3 ACKI and TXEG and COLU and NOT ANYXNSiz no higher port with activity there is a current transmission this segment has a collision there is a transmit collision on the inter-ric bus Minterm 4 NOT ACKI a higher port on the daisy chain (including multiple rics) has activity Minterm 5 TXEG and NOT ANYXNSIz and NOT COLU there is a current transmission there is a transmit collision on the inter-ric bus this segment does not have an unpartitioned collision Minterm 6 NOT TXEG and TXEGTW1 and NOT COLU there is no current transmission the TW1 (transmit recovery time) has not counted down this segment does not have an unpartitioned collision Minterm 7 ACKI and TXEG and ANYXNSIz and NOT COLU and NOT CRSU no higher port with activity there is a current transmission there is no transmit collision this segment does not have an unpartitioned collision this segment does not have an unpartitioned carrier Minterm 8 ACKI and TXEG and ANYXNSIz and COLU no higher port with activity there is a current transmission there is no transmit collision this segment has a collision Minterm 9 ACKI and TXEG and ANYXNSIz and CRSU no higher port with activity there is a current transmission there is no transmit collision this segment has an unpartitioned carrier Minterm 10 NOT TXEG there is no current transmission Minterm 11 NOT ANYXNSIz there is a transmit collision on the inter-ric bus Minterm 12 PASS THROUGH this is just a pass through state it is only to set it so that only one of the S terms change at one time 2. Main State Machine As stated above, the main state machine MSM 30 (Fig. 2) controls the operation of the shared functional blocks in each RIC 10. The main state machine 30 performs the majority of the data and collision propagation operations as defined by the IEEE 802.3 repeater specification. The interaction of the main state machine MSM 30 and port state machine PSM is visible, in part, by observing the Inter-RIC bus 18. 3. Inter-RIC Bus Operation In accordance with an aspect of the present invention, the Inter-RIC bus 18 implements a protocol for connecting multiple RICs together to maintain the logical function of a single repeater. The resulting multi-RIC system meets the IEEE 802.3 repeater specification and may connect several hundred network segments. The protocol allows the multiple RIC devices to be driven by a central system clock or to operate asynchronously. The Inter-RIC bus 18 is designed to accommodate the need of large "rack based" repeater systems. Earlier implementations of these systems have used an architecture in which a central re-timing card controls number of port attachment cards. Designs of this type suffer from two major drawbacks. First, they lack modularity; that is, all cards are not identical. Second, all cards are subject to a central point of failure, i.e., the re-timing card. The Inter-RIC bus 18 avoids these architectural constraints. Additionally, the architecture of the bus 18 allows the system to grow in size, that is, to increase the number of segments attached, without a complete redesign in bus architecture. The Inter-RIC bus protocol operates using a number of status and data signals to perform the functions defined by the IEEE 802.3 specification: data packet repetition, collision propagation and jabber protection. The Inter-RIC bus 18 connects multiple RICs to realize the following operations: PORT N identification (which port the repeater receives data from), PORT M identification (which port is the last one experiencing a collision), data transfer, RECEIVE COLLISION identification, TRANSMIT COLLISION identification, and DISABLE OUTPUT (jabber protection). Table 1 briefly describes the operation of each bus signal, the conditions required for a RIC 10 to Inter-RIC assert a signal and which RICs (in a multi-RIC system) would monitor a signal. 4. Methods of RIC Cascading In order to build multi-RIC repeaters, PORT N and PORT M identification must be performed across all RICs in the system. Inside each RIC 10, the port state machines PSM are arranged in a logical arbitration chain where Port 1 is the highest and Port 13 is the lowest. The top of the chain, the input to Port 1, is accessible to the user via the RIC's /ACKI input pin. The output from the bottom of the chain becomes the /ACKO output pin. In a single RIC system, PORT N is defined as the highest port in the arbitration chain with receive or collision activity. PORT N identification is performed when the repeater is in the IDLE state. PORT M is defined as the highest port in the chain with a collision when the repeater leaves the TRANSMIT COLLISION state. In order for the arbitration chain to function, all that needs to be done is to tie the /ACKI signal to the logic high state. In multi-RIC systems, there are two ways to propagate the arbitration chain between RICs. The first and most straight forward way is to extend the arbitration chain by daisy-chaining the /ACKI/ACKO signals between RICs. In this approach, one RIC 10 is placed at the top of the chain (its /ACKI input is tied high), then the /ACKO signal from this RIC 10 is sent to the /ACKI input of the next RIC, and so on. This arrangement is simple to implement, but places some topological restrictions upon the repeater system, such as, if the repeater is constructed using a back plane with removable printed circuit boards (these boards contain the RICs and their associated components). If one of the boards is removed, then the /ACKI/ACKO chain will be broken and the repeater will not operate correctly. The second method of PORT N or M identification avoids this problem. This technique relies upon the use of an external parallel arbiter. According to this scheme, each RIC 10 is assigned a priority level also known as an arbitration vector. One method of doing this is to assign a priority number which reflects the position of a RIC board on the repeater back plane (i.e., its slot number). When a RIC 10 experiences receive activity and the repeater system is in the IDLE state, the RIC board will assert the /ACKO signal. External arbitration logic recognizes this activity and drives the identification number onto the arbitration bus. There then follows a period of arbitration during which the RIC 10 receiving the packet, and thus containing Port N, is identified. An identical procedure is used in the TRANSMIT COLLISION state to identify PORT M. This parallel means of arbitration is not subject to the problem caused by missing boards (i.e., empty slots on the back plane). The logic associated with asserting this arbitration vector in the various frame repetition scenarios can be implemented in programmable logic. To perform PORT N or M arbitration, both of the above methods employ the same signals: /ACKI, /ACKO and /ACTN. The Inter-RIC bus 18 allows multi-RIC operations to be performed in exactly the same manner as if there is only a single RIC 10 in the system. The simplest way to describe the operation of Inter-RIC bus 18 is to describe its use in a number of common frame repetition scenarios. Throughout the following description, the RICs are presumed to be operating in external transceiver mode. This is advantageous for the explanation, since the receive, transmit and collision signals from each network segment are observable. In the internal transceiver mode, this is not the case, since the collision signal for the non-AUI ports is derived by the transceivers inside the RIC 10. Examples of Packet Repetition Scenarios 1. Data Repetition The simplest frame operation performed over the Inter-RIC bus 18 is data repetition. In this operation, a data frame is received at one port and transmitted to all other segments. The first task to be performed in a data repetition operation is PORT N identification. This is an arbitration process performed by the port state machines PSM in the system. In situations where two or more ports 18 simultaneously receive packets, the Inter-RIC bus 18 operates by choosing one of the active ports and forcing the other ports to transmit data. This is done to faithfully follow the IEEE 802.3 specification's allowed exit path from the IDLE state, i.e., to the SEND PREAMBLE PATTERN or RECEIVE COLLISION states, Figs. 10 and 11. Fig. 11 shows the states of the Inter-RIC bus which may be observed at the RIC's I/O pins. The packet begins with the PREAMBLE PATTERN derived from the RIC's on-chip jam/preamble generator. The data received at PORT N is directed through the receive multiplexor 36 to the PLL decoder 34. Once phase lock has been achieved, the decoded data, in NRZ format, with its associated clock and enable signal, are asserted onto the IRD, /IRE and IRC lines of the Inter-RIC bus 18. This serial data stream is received from the bus by all RICs 10 in the repeater system and is directed to their respective elasticity buffer 32. Logic circuits monitor the data stream and look for the start of frame delimiter SFD. When the SFD has been detected, data is loaded into the elasticity buffer 32 for later transmission. This will occur when sufficient frame preamble has been transmitted and certain state machine operations have been fulfilled. Fig. 7 shows two daisy-chained RICs A and B with RIC A positioned at the top of the chain. A packet is received at PORT B1 of RIC B and is then repeated by the other ports in the system. Fig. 13 shows the functional timing diagram for the frame repetition represented by the signals shown in Fig. 12. In the Fig. 7 example, only two ports in the system are shown. Obviously, the other ports also repeat the frame. The example also indicates the operation of the RICs' state machines insofar as can be seen by observing the Inter-RIC bus 18. For reference, the repeater's state transitions are shown in the terms of the states defined by the IEEE 802.3 specification. The location (i.e., which port it is) of PORT N is also shown. The following describes the repeater and inter-RIC bus transitions shown in Fig. 8. The repeater is stimulated into activity by the data signal received by PORT B1. The RICs 10 in the system are alerted to forthcoming repeater operation by the falling edges on the /ACKI/ACKO daisy chain and the /ACTN bus signal. Following a defined start-up delay, the repeater moves to the SEND PREAMBLE state. The RIC system utilizes the start-up delay to perform port arbitration. When packet transmission begins, the RIC system enters the REPEAT state. The expected sequence of repeater states for normal packet repetition, SEND PREAMBLE, SEND SFD and SEND DATA, is followed but is not visible upon the Inter-RIC bus 18. The states are merged together into a single REPEAT state. This is also true for the WAIT and IDLE states; they appear as combined Inter-RIC bus IDLE state. Once a repeat operation has begun (i.e., the repeater leaves the IDLE state), it is required to transmit at least 96 bits of data or jam/preamble onto its network segments. If the duration of the receive signal from PORT N is smaller than 96 bits, then the repeater transitions to the RECEIVE COLLISION state (described below). This behavior is known as fragment extension. After the packet data has been repeated, including the emptying of the RIC's elasticity buffer 32, the RIC 10 performs the TW1 transmit recovery operation. This is performed during a WAIT state. 2. Receive Collisions A receive collision is a collision which occurs on the network segment attached to PORT N. That is, the collision presence is recognized on the receive port in a similar manner as a data packet is received and then is propagated to the other network segments. Receive collision propagation follows a similar sequence of operations as is followed for data repetition. An arbitration process is performed to find PORT N and a preamble/jam pattern is transmitted by the repeater's other ports. When PORT N detects a collision on its segment, the /COLN signal of Inter-RIC bus 18 is asserted. This signal forces all the RICs 10 in the system to transmit a preamble/jam pattern to their segments. This is important, since these RICs 10 may be already transmitting data from their elasticity buffers 32. The repeater moves to the RECEIVE COLLISION state when the RICs 10 begin to transmit the jam pattern. The repeater remains in this state until both of the following conditions have been fulfilled: (1) at least 96 bits have been transmitted onto the network and (2) the activity has ended. The actual end of activity has its own permutations of conditions: (1) collision and receive data signals may end simultaneously, (2) receive data may appear to end before collision signals, and (3) receive data may continue for some time after the end of the collision. Network segments using coaxial media may experience spurious gaps in segment activity when the collision signal goes inactive. This arises from the interaction between the receive and collision signal squelch circuits, implemented in coaxial transceivers, and the properties of the coaxial cable itself. The 802.3 repeater specification avoids propagation of these activity gaps by extending collision activity by the TW2 wait time. The specification requires that jam pattern transmission must be sustained throughout this period. After this, the repeater will move to the WAIT state unless there is a data signal being received by PORT N. (Figs. 10 and 11). The functional timing diagram shown in Fig. 9 shows the operation of a repeater system during a receive collision. The repeater system configuration is the same as earlier described with reference to Fig. 6. The RICs 10 perform the same PORT N arbitration and data repetition operations as previously described. The system is notified of the receive collision on PORT B1 by the following edge of the /COLN bus signal. This is the signal that informs the main state machines MSM 30 to output the jam pattern rather than the data held in the elasticity buffers 32. Once a collision has occurred, the IRC, IRD and /IRE bus signals may become undefined. When the collision has ended and the TW2 operation performed, the repeater moves to the WAIT state. 3. Transmit Collisions A transmit collision is a collision that is detected upon a segment to which the repeater system is transmitting. The port state machine PSM monitoring the colliding segment asserts the /ANYXN bus signal. The assertion of the /ANYXN signal causes PORT M arbitration to begin. The repeater moves to the TRANSMIT COLLISION state when the port which-had been PORT N starts to transmit a Manchester encoded 1 on a network segment. While in the TRANSMIT COLLISION state, all ports of the repeater must transmit the 1010... jam pattern and PORT M arbitration is performed. Each RIC 10 is obliged, by the IEEE 802.3 specification, to insure that all of its ports transmit for at least 96 bits once the TRANSMIT COLLISION state has been entered. This transmit activity is enforced by the /ANYXN bus signal. While /ANYXN is active, all ports of RIC 10 will transmit jam. To insure this situation lasts for at least 96 bits, the main state machines MSM 30 inside the RICs 10 assert the /ANYXN signal throughout this period. After this period has elapsed, the /ANYXN signal will only be asserted if there are multiple ports with active collisions on their network segments. There are two possible ways for a repeater to leave the TRANSMIT COLLISION state. The most straight-forward way is when network activity (i.e., collisions and their TW2 extensions) ends before the 96 bit enforced period expires. Under these conditions, the repeater system may move directly to the WAIT state when 96 bits have been transmitted to all ports. If the main state machines MSM 30 enforced period ends and there is still one port experiencing a collision, then the ONE PORT LEFT state is entered. This may be seen on the Inter-RIC bus 18 when the /ANYXN signal is de-asserted and PORT M stops transmitting to its network segment. In this circumstance, the Inter-RIC bus 18 transitions to the RECEIVE COLLISION state. The repeater will remain in this state while PORT M 's collision, TW2 collision extension and any receive signals are present. When these conditions are not true, packet repetition finishes and the repeater enters the WAIT state. Fig. 15 shows a multi-RIC system operating under transmit collision conditions. There are many different scenarios which may occur during a transmit collision. Fig. 10 illustrates one of these. Fig. 10 begins with packet reception by PORT A1. PORT B1 experiences a collision. Since it is not PORT N, it asserts the /ANYXN signal. This signal alerts the main state machines MSM 30 in the system to switch from data to jam pattern transmission. PORT A1 is also monitoring the /ANYXN bus line. /ANYXN assertion forces PORT A1 to relinquish its PORT N status, start transmitting, stop asserting /ACTN and release its hold on the port state machine PSM arbitration signals (/ACKOA and /ACKIB). The first bit it transmits will be a Manchester encoded "1" in the jam pattern. Since PORT B1 is the only port with a collision, it obtains PORT M status and stops asserting the /ANYXN signal. It does, however, assert /ACTN and exerts its presence upon the port state machine PSM arbitration chain, forcing /ACKOB low. The main state machines MSM 30 insure that the /ANYXN signal stays active and, thus, forces all of the ports, including PORT M, to transmit to their segments. After some time, PORT A1 experiences a collision. This arises from the presence of the packet being received from PORT A1's segment and the jam signal the repeater is now transmitting onto the segment. Two packets on one segment results in a collision. PORT M now moves from PORT B1 to PORT A1. PORT A1 fulfills the same criteria as PORT B1, i.e., it has an active collision on its segment, but, in addition, it is higher on the arbitration chain. This priority yields no benefits for PORT A1, since the /ANYXN signal is still active. There are now two collision sources driving the /ANYXN signal: the main state machines MSM 30 and the collision on PORT B1. Eventually, the collision on PORT B1 ends and the /ANYXN extension by the main state machines 30 expires. Since there is now only one collision on the network (this may be deduced since /ANYXN is inactive), the repeater moves to the ONE PORT LEFT state. The RIC system treats this state in a similar manner to a receive collision with PORT M fulfilling the role of the receiving port. The difference from a true receive collision is that the switch from packet data to the jam pattern has already been made, controlled by the /ANYXN signal. Thus, the state of the /COLN signal has no effect upon repeater operations. In common with the operation of the RECEIVE COLLISION state, the repeater remains in this condition until a collision and receive activity on PORT M subside. The packet repetition operation completes when the TW1 recovery time and the WAIT state has been performed. In transmit collision conditions, the /COLN signal will only go active if the RIC 10 which contained PORT N at the start of packet repetition contains PORT M during the TRANSMIT COLLISION and ONE PORT LEFT states. 4. Jabber Protection A repeater is required to disable transmit activity if the length of its current transmission reaches the jabber protect limit. This is defined by the TW3 time of the 802.3 specification. The repeater disables output for a time period defined by the TW4 time of the 802.3 specification. After this period, normal operation may resume. Fig. 11 shows the effect of a jabber length frame upon a RIC-based repeater system. In this scenario, the JABBER PROTECT state is entered from the SEND DATA state. While the TW4 time period is observed, the Inter-RIC bus displays the IDLE state. In order to be specification compliant, new packet activity or continuous activity may occur on the network, but does not result in packet repetition. As shown in Fig. 11, this may only occur when the TW4 time requirement has been satisfied.

Claims: A repeater interface controller for connecting a plurality of segments of a local area network, the repeater interface controller comprising: a central node (28) that includes: central receiver means for receiving data packets, repeater means responsive to receipt of the data packets by the central receiver means for repeating each of the data packets to form repeated data packets, and central transmitter means for transmitting the repeated data packets; and a plurality of port nodes (26) connected to the central node, each port node being connectable to a corresponding one of the plurality of segments, each port node including: first port receiver means for receiving data packets from said corresponding segment of the local area network; and first port transmitter means for transmitting the data packets received by the first port receiver means to the central node, characterised in that each port node includes: priority means for identifying the port node that first received the data packets as a source port node such that others of the plurality of port nodes cannot transmit data packets received from their corresponding segments to the central node while said port node is identified as the source port node; second port receiver means for receiving the repeated data packets from the central node; second port transmitter means for transmitting the repeated data packets received by the second port receiver means to said corresponding segment when said port node is not identified as the source port node, and for transmitting the repeated data packets received by the second port receiver means to said corresponding segment when said port node is identified as the source port node and when an externally-generated test signal is present; and collision detection means for identifying when the first port receiver means is receiving data packets at the same time that the second port transmitter means is transmitting data packets. A repeater interface controller according to claim 1 wherein the second port transmitter means further comprises means for disabling the collision detection means of said port so that the data packets may be received and transmitted at the same time.

Inventors: CIMINO DANIEL J, CROSBIE DAVID, HOLLAND DENNIS E, MAN-SUM YEUNG VICKIE, MOORWOOD CHARLES A, QUOC VO HOWARD, SHAH HARESH K, SINGH CHARAN J, CIMINO, DANIEL J., CROSBIE, DAVID, HOLLAND, DENNIS E., MAN-SUM YEUNG, VICKIE, MOORWOOD, CHARLES A., QUOC VO, HOWARD, SHAH, HARESH K., SINGH, CHARAN J.
Applicants: NAT SEMICONDUCTOR CORP, NATIONAL SEMICONDUCTOR CORPORATION
Application year: 1992
Main classification: H04L12
IPC codes: H04L12