Data switching apparatus

Abstract: A data switch interconnects a number of data processing nodes. The switch includes a number of port units for interfacing with the processing nodes, a number of multiplexing units for performing the switching, and a connection control unit. When a port unit wishes to initiate a connection, it sends a connection command over a command bus to all the multiplexing units and to the connection control unit, specifying a proposed data connection. Each multiplexing unit responds to the connection command by preparing the proposed data connection. At the same time, the connection control unit checks whether the proposed data connection is permissible. If it is permissible, the connection control unit then sends a GO signal to all the multiplexing units instructing them to complete the prepared connection.

Description: Background to the Invention This invention relates to data switching apparatus, for interconnecting a number of data processing nodes. There is a requirement for a data switch that can reliably handle connections between a number of data processing nodes, at high speed. The object of the invention is to provide a data switch of novel construction, which is capable of solving this problem. Summary of the Invention According to the invention there is provided data switching apparatus comprising: (a) a command bus, (b) a plurality of port units connected to the command bus, each port unit including means for sending a connection command on the command bus specifying source and destination ports for a required data connection, (c) a plurality of multiplexing units connected to the command bus, each multiplexing unit being arranged to respond to a connection command on the bus by preparing a data connection between the ports specified by that command, and (d) a connection control unit connected to the command bus, for checking whether the data connection specified by the connection command is permissible and, if it is permissible, sending a control signal to all the multiplexing units instructing them to complete the prepared connection. As will be seen, the invention allows preparation of a data connection to proceed in parallel with checking whether the connection is permissible, thus leading to faster operation. Brief Description of the Drawing Figure 1 is an overall block diagram of a data switch embodying the invention. Description of an Embodiment of the Invention One data switch in accordance with the invention will now be described by way of example with reference to the accompanying drawing. Referring to Figure 1, this shows a data processing system comprising a data switch 10 which connects up to sixty data processing nodes 11, allowing the data processing nodes to exchange data with each other. Each of the data processing nodes 11 is connected to the data switch by way of a fibre optic serial data channel 12. The data switch is controlled by a 50 nanosecond system clock which is distributed to all the units in the switch. The data switch comprises sixty three port units 13. One of these port units, referred to herein as the control port, is connected to a switch control processor 14. Another sixty of the port units are respectively connected to the fibre optic data channels 12, so that they can receive data from and send data to the data processing nodes 11. The remaining two port units are spare. The data switch deals with two different types of connection between the ports: static and dynamic. A dynamic connection can be created or removed in response to information received at a port from any of the processing nodes, over one of the data channels. A static connection can be created or removed only in response to action by the control processor 14. For simplicity, only dynamic connections will be considered. The data switch also includes eleven multiplexing units (MPUs) 15, each of which has 63 input and 63 output lines, connected to respective port units. Each MPU is effectively a 63 X 63 crossbar switch, capable of connecting any of its 63 input lines to any of its 63 output lines. Up to 64 different data connections may exist simultaneously in each MPU at any given time, so as to provide up to 32 simultaneous bi-directional connections. Ten of the MPUs are used to form 10-bit wide parallel data connections between selected pairs of port units. The eleventh MPU, referred to herein as the port status MPU, is used for switching status data. This unit receives an OPERABLE signal from each of the port units, indicating whether that unit is operable. If a port unit which has been selected as the destination port for a connection is not operable, the port status MPU generates an ABORT signal output. The ABORT signal is fed to the other ten MPUs, and causes the proposed connection to be abandoned. The port status MPU also sends a CONNECTED status signal to each of the port units to indicate the static connection status of that port. The data switch also includes a connection control unit (CCU) 16. As will be described, this checks whether a proposed connection set up in the MPUs is permitted or prohibited. If the proposed connection is permitted, the CCU sends a GO signal to all the MPUs 15, enabling the connection. The control unit also receives the ABORT signal from the port status MPU. The port units and MPUs are all connected to a 24-bit connection control bus 18. When one of the port units wishes to send a command on this bus, it first sends a REQUEST signal to a round-robin unit 19. The round-robin unit arbitrates between competing requests on a cyclic priority basis, and grants access to one of the requesting units by sending it an ACCEPT signal. The round-robin unit also generates a LDCOM (load command) signal, which indicates the start of each bus cycle, and which is sent on line 110 to all the port units, MPUs, and the CCU. Each bus cycle is 150 nanoseconds long, i.e. three clock cycles. The port unit that receives the ACCEPT signal places its command on the bus at the next LDCOM signal. Each command contains a function code, specifying one of a number of different commands, including MAKE DYNAMIC CONNECTION and BREAK DYNAMIC CONNECTION. These commands also include a logical source address SA, and a logical destination address DA, specifying which two ports are to be connected. The CCU and each of the MPUs includes translation RAMs (Random Access Memories) for converting the logical source and destination addresses SA and DA in a received command into corresponding physical port numbers SP and DP. The CCU also contains prohibit RAMs, which indicate whether a proposed connection between source and destination addresses SA and DA is permitted or prohibited. The CCU also includes a connection status RAM, addressed by the physical port numbers SP, DP. The connection status RAM contains an entry for each port. Each entry indicates whether or not the port is connected and, if connected, the address of the port to which it is connected and the nature of the connection (static or dynamic). The CCU is connected by way of a 5-bit CONNECT STATUS bus 111 to all the port units. This bus carries a code indicating the response of the CCU to each command; i.e. whether the command was successful and, if not, the reason for the failure. Operation As mentioned, at the start of each bus cycle, when LDCOM is asserted, one of the port units places a command on the connection control bus. The CCU and the MPUs then read this command from the bus into internal command registers. Each unit checks the parity of the command, and if a parity failure is detected, the command is aborted. Assuming the command is not aborted, the CCU and each of the MPUs then decodes the function code of the command, and at the same time accesses its translation RAMs, to translate the logical source and destination addresses SA and DA in the command into corresponding physical port numbers SP and DP. Make Dynamic Connection If the command is a MAKE DYNAMIC CONNECTION command, the operation proceeds as follows. Each of the MPUs decodes the port numbers SP, DP to determine how the MPU should be switched in order to make the required bi-directional connection. It also checks whether the proposed connection is already busy and, if so, abandons the command. At the same time, the CCU accesses its prohibit RAMs, to check whether a connection is permitted between the specified source and destination. It then determines whether the following conditions are met: there was no parity failure in the translation RAMs, the destination address is defined, the source and destination addresses are both valid, and the connection is not prohibited, If these conditions are all met, the CCU sends a GO signal to all the MPUs. When the MPUs receive this GO signal, they perform the necessary switching to complete the required connection. However, if the ABORT signal is asserted at the next again clock beat, the connection is broken. If ABORT is not asserted, the connection is held enabled until it is broken by a subsequent command. After sending a GO signal, the CCU accesses its connection status RAM to check the status of the required connection. It then determines whether the following conditions are met: there was no parity failure in the connection status RAM, the connection is not already busy due to a dynamic link, the destination port is not statically connected, and the ABORT signal was not asserted. If these conditions are all met, the CCU creates an entry for the new connection in the connection status RAM, and places a "command successful" code on the CONNECT STATUS bus. Otherwise, it places a code indicating the reason for the failure on the CONNECT STATUS bus. Break Dynamic Connection. If the command is a BREAK DYNAMIC CONNECTION command, the operation proceeds as follows. Each of the MPUs decodes the port numbers SP, DP to determine how the MPU is to be switched in order to break the specified connection. At the same time, the CCU determines whether the following conditions are met: there was no parity failure in the translation RAMs, the destination address is defined, and the source and destination addresses are both valid. If these conditions are all met, the CCU sends a GO signal to all the MPUs. When the MPUs receive this GO signal, they perform the necessary switching to break the connection. After sending a GO signal, the CCU accesses its connection status RAM to check the current connection status. It then determines whether the following conditions are met: there was no parity failure in the connection status RAM, the connection exists, and the destination port is not statically connected. If these conditions are all met, the CCU clears the entry for the connection from the connection status RAM, and places a "command successful" code on the CONNECT STATUS bus. Otherwise, it places a code indicating the reason for the failure on the CONNECT STATUS bus.

Claims: Data switching apparatus comprising: (a) a command bus (18), (b) a plurality of port units (13) connected to the command bus (18), each port unit including means for sending a connection command on the command bus specifying source and destination ports for a required data connection, (c) a plurality of multiplexing units (15) connected to the command bus (18), each multiplexing unit being arranged to respond to a connection command on the bus by preparing a data connection between the ports specified by that command, and (d) a connection control unit (16) connected to the command bus (18), for checking whether the data connection specified by the connection command is permissible and, if it is permissible, sending a control signal to all the multiplexing units instructing them to complete the prepared connection. Apparatus according to Claim 1 wherein: (a) the connection control unit (16) is connected to the port units (13) by means of a connection status bus (111); and (b) the connection control unit (16) comprises means for placing a status code on the connection status bus (111) in response to a connection command, said status code indicating to the port units the status of the requested connection. Apparatus according to Claim 2 wherein the connection control unit (16) includes: (a) a table for storing the current status of each of said ports, thereby indicating whether each port is busy or not busy; (b) means for checking said table to determine the status of the source and destination ports of each requested connection; and (c) means for sending a status code on the status bus to indicate that the required connection is not currently available, if either the source or destination port is already busy. A computer system comprising a plurality of processing nodes (11) interconnected by switching apparatus (10) in accordance with any preceding claim.

Inventors: COLLINS MICHAEL PATRICK ROBERT, DREWRY JOHN ROGER, KORPAL ASHWANI KUMAR, COLLINS, MICHAEL PATRICK ROBERT, DREWRY, JOHN ROGER, KORPAL, ASHWANI KUMAR
Applicants: INT COMPUTERS LTD, INTERNATIONAL COMPUTERS LIMITED
Application year: 1994
Main classification: H04L12
IPC codes: G06F13, G06F15, H04L12