Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
First Claim
1. A switch for selectively coupling pairs of nodes on a plurality of fibre channel arbitrated loop (FCAL) nets to each other for one or more simultaneous conversations, comprising:
- data path circuitry having a plurality of parallel point-to-point transmit/receive channels and multiplexing circuitry to selectively couple individual ones of said transmit/receive channels to transmit-receive terminals;
a protocol bus;
a plurality of ports each port for interfacing a local FCAL net to said data path circuitry, each port coupled to said protocol bus, wherein each port includes;
a serializer/deserializer circuit having terminals for coupling to an FCAL net and having demultiplexing circuitry to convert incoming differential, encoded serial data from said FCAL net to multi-bit characters and having clock recovery circuitry to recover a receive clock therefrom and having multiplexing circuitry for receiving a plurality of multi-bit characters and converting them into a differential, encoded serial data stream;
an elastic buffer to receive multi-bit characters from and send multi-bit characters to said serializer/deserializer circuit and absorb the differences in transmit and receive rate;
a routing table memory storing mappings between destination node addresses and port IDs of the port coupled to each destination node;
a scoreboard means for storing status information; and
one or more state machine means coupled to said elastic buffer, said routing table memory, said scoreboard means and said protocol bus and at least to said transmit-receive terminals of said data path circuitry for using said routing table memory contents for determining whether destination nodes identified in open primitive signal (OPN) primitives received from source nodes on said local FCAL net are local or remote and using the data content of said scoreboard means to determine if connection to a destination port coupled to said destination node is permissible and transmitting a connection request on said protocol bus to said destination port requesting a connection thereto and using the contents of a connect response frame output by said state machine means of said destination port on said protocol bus for controlling said data path circuitry to implement full duplex connections between said local source and remote destination nodes or to implement full or half duplex connections to remote destination nodes, and for implementing logic and control functions to control said data path circuitry to carry out a dual simplex connections so as to send data and primitives from a source node on said local FCAL net to a remote dual simplex destination node coupled to some other port which is a source node in another half duplex loop tenancy and receive buffer credit flow control primitives back from said dual simplex destination node and to respond to each said buffer credit flow control primitive by transmitting a frame of data to said dual simplex destination node, said state machine means also structured for sending flow control primitives to a third port for transmission to a third node and receive OPN and close primitive signal (CLS) primitives and data frames from said third node when said third port has established a dual simplex connection to a source port through said data path circuitry, and transmit data frames and CLS primitives received from said third node to said source node if and only if said data frames are directed to said source node as indicated by said OPN received from said third node.
5 Assignments
0 Petitions
Accused Products
Abstract
A switch, switched architecture and process for transferring data through an FCAL switch is disclosed. The switch uses multiple switch control circuits each coupled to one FCAL network and all connected to a crossbar switch. The switch control circuits are coupled together by a protocol bus for coordination purposes. Local conversations can occur on each FCAL loop and crossing conversations through the switch can occur concurrently. The OPN primitive is used to establish the connection before any data is transferred thereby eliminating the need for buffer memory in the switch control circuits. The destination address of each OPN is used to address a lookup table in each switch control circuit to determine if the destination node is local. If not, the destination is looked up and a connection request made on the protocol bus. If the remote port is not busy, it sends a reply which causes both ports to establish a data path through the backplane crossbar switch.
667 Citations
25 Claims
-
1. A switch for selectively coupling pairs of nodes on a plurality of fibre channel arbitrated loop (FCAL) nets to each other for one or more simultaneous conversations, comprising:
-
data path circuitry having a plurality of parallel point-to-point transmit/receive channels and multiplexing circuitry to selectively couple individual ones of said transmit/receive channels to transmit-receive terminals; a protocol bus; a plurality of ports each port for interfacing a local FCAL net to said data path circuitry, each port coupled to said protocol bus, wherein each port includes; a serializer/deserializer circuit having terminals for coupling to an FCAL net and having demultiplexing circuitry to convert incoming differential, encoded serial data from said FCAL net to multi-bit characters and having clock recovery circuitry to recover a receive clock therefrom and having multiplexing circuitry for receiving a plurality of multi-bit characters and converting them into a differential, encoded serial data stream; an elastic buffer to receive multi-bit characters from and send multi-bit characters to said serializer/deserializer circuit and absorb the differences in transmit and receive rate; a routing table memory storing mappings between destination node addresses and port IDs of the port coupled to each destination node; a scoreboard means for storing status information; and one or more state machine means coupled to said elastic buffer, said routing table memory, said scoreboard means and said protocol bus and at least to said transmit-receive terminals of said data path circuitry for using said routing table memory contents for determining whether destination nodes identified in open primitive signal (OPN) primitives received from source nodes on said local FCAL net are local or remote and using the data content of said scoreboard means to determine if connection to a destination port coupled to said destination node is permissible and transmitting a connection request on said protocol bus to said destination port requesting a connection thereto and using the contents of a connect response frame output by said state machine means of said destination port on said protocol bus for controlling said data path circuitry to implement full duplex connections between said local source and remote destination nodes or to implement full or half duplex connections to remote destination nodes, and for implementing logic and control functions to control said data path circuitry to carry out a dual simplex connections so as to send data and primitives from a source node on said local FCAL net to a remote dual simplex destination node coupled to some other port which is a source node in another half duplex loop tenancy and receive buffer credit flow control primitives back from said dual simplex destination node and to respond to each said buffer credit flow control primitive by transmitting a frame of data to said dual simplex destination node, said state machine means also structured for sending flow control primitives to a third port for transmission to a third node and receive OPN and close primitive signal (CLS) primitives and data frames from said third node when said third port has established a dual simplex connection to a source port through said data path circuitry, and transmit data frames and CLS primitives received from said third node to said source node if and only if said data frames are directed to said source node as indicated by said OPN received from said third node.
-
-
2. A switch for selectively coupling pairs of nodes on a plurality of fibre channel arbitrated loop (FCAL) nets to each other for one or more simultaneous conversations, comprising:
-
a plurality of state machines configured to relay open primitive signal (OPN) and frames to remote destinations; a port multiplexer configured to interface with the plurality of state machines to a corresponding plurality of backplane data channels; a backplane configured to shunt backplane data to and from the plurality of state machines; and at least one serializer/deserializer unit configured to accept differential encoded serial data, demultiplex the serial data into aligned 10-bit characters, and recover the receive clock from the serial data, wherein each of the plurality of state machines is configured to process received FCAL data, generate commands, and cooperate with the port multiplexer to establish a proper connection to either a local FCAL net or to a designated channel through the backplane so as to facilitate coupling of the received data on whatever data path the state machine establishes. - View Dependent Claims (3, 4)
-
-
5. An apparatus for selectively coupling pairs of nodes on a plurality of fibre channel arbitrated loop (FCAL) nets to each other for one or more simultaneous conversations, comprising:
-
a plurality of state machines means for relaying open primitive signal (OPN) and frames to remote destinations; a port multiplexer means for interfacing with the plurality of state machines means to a corresponding plurality of backplane data channels; a backplane means for shunting backplane data to and from the plurality of state machines means; and at least one serializer/deserializer means for accepting differential encoded serial data, demultiplexing the serial data into aligned 10-bit characters, and recovering the receive clock from the serial data, wherein each of the plurality of state machines means is configured to process received FCAL data, generate commands, and cooperate with the port multiplexer to establish a proper connection to either a local FCAL net or to a designated channel through the backplane means so as to facilitate coupling of the received data on whatever data path the state machines means establishes. - View Dependent Claims (6, 7)
-
-
8. A switch, providing Fibre Channel switching, comprising:
-
a plurality of state machines, each configured to process a Fibre Channel data frame, generate a Fibre Channel command, cooperate with a port multiplexer to establish a connection to either a local Fibre Channel network or to a designated channel through a backplane, and provide fairness of access to the switch to ensure a fraction of switch bandwidth is available on an individual port basis, wherein providing the fairness of access to the switch comprises allowing a source port to camp on a target port using a camp list when the target port is not available, the target port being associated with at least one of the plurality of state machines; the port multiplexer configured to couple the plurality of state machines to the backplane; and the backplane configured to shunt backplane data to and from the plurality of state machines via one or more channels. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification