Modular high-capacity switch
Abstract
A modular optical switch includes a set of optical switch modules connected in a mesh, a master controller for the whole optical node and a switch-module controller for each of the optical switch modules. The optical switch modules receive optical signals from, and transmit optical signals to, edge nodes based on connection requests received from the edge nodes. The master controller acts to select a path, using a simple or compound time-slot matching process, through the mesh of switch modules for each optical signal related to a connection request. Advantageously, the optical switch modules are fast switching, enabling the use of time-sharing schemes such as TDM, and the modular optical core node is made practical by efficient path selection at the master controller. A hybrid modular switch may include both optical and electronic switch modules, a master controller, and a switch-module controller for each of the switch modules.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A modular switch comprising:
a plurality of switch modules, each of said plurality of switch modules including:
a plurality of inlet ports, each of said plurality of inlet ports adapted to communicatively couple to an optical link from an external node;
a plurality of outlet ports, each of said plurality of outlet ports adapted to communicatively couple to an optical link to an external node;
a plurality of outbound ports, each of said plurality of outbound ports communicatively coupled to an inter-modular link to an other of said plurality of switch modules;
a plurality of inbound ports, each of said plurality of inbound ports communicatively coupled to an inter-modular link from an other of said plurality of switch modules; and
a master controller including a path selection device adapted to match vacant time slots in calendars associated with particular ones of said inlet ports, said outlet ports and selected outbound ports of said switch modules in response to receiving a connection request, said connection request specifying an inlet port, an outlet port, and a number of time slots in a time-division-multiplex frame.
2 . The modular switch of claim 1 further comprising
a plurality of switch-module controllers, each of said plurality of switch-module controllers communicatively coupled to an associated one of said plurality of switch modules and to said master controller, each of said plurality of switch-module controllers operable to:
receive said connection request from one of said external nodes via said associated one of said plurality of switch modules;
send said connection request to said master controller;
receive a schedule from said master controller, where said schedule is generated by said master controller responsive to receiving said connection request; and
send, to said associated one of said plurality of switch modules, commands adapted to configure said associated one of said plurality of switch modules according to said schedule.
3 . The modular switch of claim 2 wherein each of said plurality of switch modules further comprises:
a controller input port adapted to receive communication from said associated switch-module controller; and
a controller output port adapted to transmit communication to said associated switch-module controller.
4 . The modular switch of claim 3 wherein each of said switch modules is an optical switch module and each of said switch-module controllers is further operable to exchange time-locking data with said external nodes via said associated one of said plurality of switch modules, said time-locking data comprising readings of time counters provided at said external nodes and said modular switch.
5 . The modular switch of claim 3 wherein at least one of said plurality of switch modules is an electronic switch module and each of said inlet ports and inbound ports associated with said electronic switch module includes a data buffer.
6 . The modular switch of claim 5 wherein at least one of said plurality of switch modules is an optical switch module and said electronic switch module has at least one outbound port that is communicatively coupled to an inter-modular link to said optical switch module, each of said at least one outbound port including a data buffer.
7 . An optical core node comprising:
a plurality of optical switch modules connected as a mesh, wherein each of said optical switch modules is adapted to:
communicate with an external node over a corresponding outer link;
communicate with another optical switch module over an inner link, and
a plurality of switch-module controllers, each of said plurality of switch-module controllers associated with one of said plurality of optical switch modules, each of said switch-module controllers including a time-locking unit adapted to time-lock said switch-module controller with said external node with which said switch-module controller communicates over said outer link.
8 . A method of controlling an optical switch module in a modular optical switch, said method comprising:
receiving a connection request, from an edge node, via said optical switch module, where satisfying said connection request requires use of an inter-modular link to another optical switch module in said modular optical switch; sending a time-slot-allocation request toga master controller of said modular optical switch, where said time-slot-allocation request is based at least in part on said connection request; receiving a plurality of connection schedules, from said master controller in response to said sending said time-slot-allocation request, wherein each of said plurality of connection schedules is associated with a port of said optical switch module; and sending, to said optical switch module, commands adapted to configure an internal connectivity of said optical switch module according to said connection schedules.
9 . The method of claim 8 further comprising receiving a release request specifying an inlet port, an outlet port, and identifiers of timeslots to be released.
10 . The method of claim 9 further comprising receiving a release request specifying the release of all time-slots allocated to a path from an inlet port to an outlet port.
11 . The method of claim 8 further comprising sending each of said connection schedules to an appropriate one of said plurality of edge nodes.
12 . The method of claim 8 further comprising translating said connection request, where said connection request specifies a source edge node and a destination edge node, to a time-slot-allocation request, where said time-slot-allocation request specifies an inlet port, an outlet port, and a number of time slots per calendar period.
13 . In a switching node having a plurality of input ports and a plurality of output ports, said switching node having a controller that includes a route-set memory storing a route set of routes for each pair of input and output ports, and a plurality of cascaded schedulers, each scheduler associated with a result memory and operable to schedule connections for a specified sub-set of time slots within a slotted time frame, a method of scheduling connections in response to receiving connection requests, each connection request including a connection descriptor having a connection identifier and specifying one of said plurality of input ports, one of said plurality of output ports and a requested number of time slots in a slotted time frame, said method comprising:
determining a number of pending time slots, said number of pending time slots initially equated to said requested number of time slots; selecting a current scheduler, starting with said first scheduler, to allocate allocable time slots and place identifiers of said allocable time slots in said result memory; selecting a subsequent scheduler as said current scheduler; and cyclically reading content of said result memory associated with each of said plurality of cascaded schedulers.
14 . The method of claim 13 further comprising classifying said routes in each said route set into at least one category such that said allocable time slots may only be allocated within a selected one of said at least one categories.
15 . The method of claim 14 further comprising:
sorting said at least one categories according to a descending order of preference, a first sorted category being the most preferred;
allowing use of routes in a preferred category for allocating said allocable number time slots;
where said pending number of time slots is not zero and said current scheduler is the last of said plurality of cascaded schedulers, repeating said selecting said schedulers allowing use of routes in a next preferred category of said at least one categories.
16 . The method of claim 15 wherein said switching node is a space switching node and said schedulers are time-slot matching units.
17 . The method of claim 16 wherein said switching node comprises switching modules arranged in a meshed structure and said at least one categories include:
routes traversing two of said switching modules;
routes traversing three of said switching modules; and
routes that traverse one of said switching modules.
18 . The method of claim 17 further comprising:
releasing said allocable time slots if said pending number of pending time slots is still greater than zero after allowing use of all of said at least one categories; and
generating a rejection message.
19 . The method of claim 17 further comprising reporting said identifiers of said allocable time slots for said connection request to an entity from which said connection request was received.
20 . The method of claim 19 wherein, if said pending number of time slots is greater than zero after using all of said categories, retaining said identifiers of said allocable time slots and initiating a new connection request specifying said pending number of time slots.
21 . The method of claim 14 wherein routes of the same category in said route set for each pair of input and output ports are selected cyclically for consecutive connection requests associated with said each pair of input and output ports.
22 . The method of claim 13 wherein said allocating said allocable time slots includes selecting said allocable time slots to be as close as possible to a reference time slot in said slotted time frame.
23 . The method of claim 13 further comprising adapting a size of said specified sub-set of time slots so as to balance processing loads of said plurality of cascaded schedulers.
24 . In a switching node comprising inlet ports, outlet ports and inner links, where a route set is designated for each pair of inlet and outlet ports and includes at least one route, each of said at least one route traversing two of said inner links, each inlet port adapted to receive time-multiplexed signals, each said signal occupying at least one time-slot in a time frame having a time slots, each inlet port, outlet port and inner link associated with a calendar of σ>1 cells, each cell corresponding to a time slot and containing an indication of an occupancy state, a method of scheduling a transfer of data, in a specified number of time slots, from a given inlet port to a given outlet port using a designated route set, said method comprising:
selecting a candidate time slot from said a time slots, where said selecting is performed in a predetermined order;
for said candidate time slot:
determining, from said calendar associated with said given inlet port, an occupancy state of said given inlet port for said candidate time slot;
determining, from said calendar associated with said given outlet port, an occupancy state of said given outlet port for said candidate time slot;
selecting a candidate route in said designated route set for consideration, where said selecting is performed in a cyclic order and where said consideration comprises determining, from said calendar associated with a first inner link in said candidate route, an occupancy state of said first inner link in said candidate route for said candidate time slot;
where said occupancy state of said given inlet port, said given outlet port and said first inner link in said candidate route is determined as vacant, considering said candidate route a first available route and said candidate time slot an allocable time slot.
25 . The method of claim 24 further comprising associating a vacancy value with each of said candidate routes, where a vacancy value for a given route is a total number of vacant time slots per time frame.
26 . The method of claim 25 further comprising repeating said occupancy state determining and candidate route selecting to find a second available route from said candidate routes and selecting said second available route if said vacancy value associated with said second available route is greater than said vacancy value associated with said first available route.
27 . The method of claim 26 further comprising repeating said candidate time slot selecting, said occupancy state determining and candidate route selecting while said specified number of time slots exceeds said number of allocable time slots.
28 . The method of claim 26 wherein said predetermined order is a sequential order of said a time slots.
29 . A method of matching vacant time slots in a plurality of calendars of time slots, each of said plurality of calendars associated with a port at one of a plurality of optical switch modules in a modular optical switch, said method comprising:
receiving a request for scheduling a time slot that is vacant in a first of said optical switch modules and a second of said optical switch modules, said request specifying an inlet port of said first of said optical switch modules, used to receive a data block from a first edge node, and an outlet port of said second of said optical switch modules, used to transmit said data block to a second edge node; performing a second-order matching process, said second-order matching process including:
examining occupancy of said inlet port and said outlet port over sequential time slots until a particular time slot is found for which both said inlet port and said outlet port are vacant, where said examining begins at an initial time slot; and
where said particular time slot is found for which both said inlet port and said outlet port are vacant, assessing occupancy of a first inter-modular link connecting said first of said optical switch modules to said second of said optical switch modules for said particular time slot.
30 . The method of claim 29 further comprising, where said first inter-modular link is vacant for said particular time slot, updating said plurality of calendars to result in updated calendars that reflect use of said particular time slot to satisfy said request.
31 . The method of claim 30 further comprising, upon completion of said second-order matching process, sending said updated calendars to said first of said optical switch modules and said second of said optical switch modules.
32 . The method of claim 29 further comprising, where said first inter-modular link is occupied for said particular time slot, continuing said examining and said assessing, starting at the time slot subsequent to said particular time slot.
33 . The method of claim 29 wherein said second-order matching process is limited to a predefined range of time slots and wherein, if said particular time slot is not found, said request is forwarded for a second-order matching process in respect of a subsequent predefined range of time slots.
34 . The method of claim 29 further comprising a third-order matching process, said third-order matching process including:
examining occupancy of said inlet port and said outlet port over sequential time slots until a new particular time slot is found for which both said inlet port and said outlet port are vacant, where said examining begins at said initial time slot;
where said new particular time slot is found for which both said inlet port and said outlet port are vacant, assessing occupancy of a second inter-modular link connecting said first of said optical switch modules to a third of said optical switch modules and a third inter-modular link connecting said third of said optical switch modules to said second of said optical switch modules for said new particular time slot.
35 . The method of claim 34 further comprising, where both said second inter-modular ink and said third inter-modular link are vacant for said particular time slot, updating said plurality of calendars to result in updated calendars that reflect use of said new particular time slot to satisfy said request.
36 . The method of claim 35 further comprising, upon completion of said third-order matching process, sending said updated calendars to said first of said optical switch modules, said second of said optical switch modules and said third of said optical switch modules.
37 . A method of matching vacant time slots in a plurality of calendars of time slots, each of said plurality of calendars associated with a port at one of a plurality of optical switch modules in a modular optical switch, said method comprising:
receiving a request for scheduling a time slot that is vacant in a first of said optical switch modules and a second of said optical switch modules, said request specifying an inlet port of said first of said optical switch modules, used to receive a data block from a first edge node, and an outlet port of said second of said optical switch modules, used to transmit said data block to a second edge node; performing a third-order matching process, said third-order matching process including:
examining occupancy of said inlet port and said outlet port for sequential time slots until a particular time slot is found for which both said inlet port and said outlet port are vacant, where said examining begins at an initial time slot;
where said particular time slot is found for which both said inlet port and said outlet port are vacant, assessing occupancy of a second inter-modular link connecting said first of said optical switch modules to a third of said optical switch modules and a third inter-modular link connecting said third of said optical switch modules to said second of said optical switch modules for said particular time slot.
38 . An apparatus for matching vacant time slots in a plurality of calendars of time slots, each of said plurality of calendars associated with a port at one of a plurality of optical switch modules in a modular optical switch, said apparatus comprising:
a request buffer adapted to receive a request for allocating a time slot that is vacant in a first of said optical switch modules and a second of said optical switch modules, said request specifying an inlet port of said first of said optical switch modules, used to receive a data block from a first edge node, and an outlet port of said second of said optical switch modules, used to transmit said data block to a second edge node; a path finder adapted to perform a time-slot matching process for a given connection request read from said request buffer, and generate a result record; a connection control circuit adapted to:
receive said result record;
update said plurality of calendars to result in updated calendars that reflect use of said particular time slot to satisfy said request; and
send said updated calendars to said first of said optical switch modules and said second of said optical switch modules.
39 . The apparatus of claim 38 further comprising a result buffer adapted to, upon completion of said time-slot matching process, store said result record.
40 . The apparatus of claim 39 further comprising a selector adapted to forward result records received from said path finder to said result buffer.
41 . The apparatus of claim 40 wherein said selector is further adapted to forward requests to a subsequent request buffer when a number of allocable time slots is less than a specified number.
42 . The apparatus of claim 41 wherein said selector is further adapted to receive release requests.
43 . The apparatus of claim 42 wherein said time-slot matching process is a first-order matching process including:
examining occupancy of said inlet port and said outlet port for sequential time slots until a particular time slot is found for which both said inlet port and said outlet port are vacant, where said examining begins at an initial time slot.
44 . The apparatus of claim 42 wherein said time-slot matching process is a second-order matching process including:
examining occupancy of said inlet port and said outlet port for sequential time slots until a particular time slot is found for which both said inlet port and said outlet port are vacant, where said examining begins at an initial time slot; and
where said particular time slot is found for which both said inlet port and said outlet port are vacant, assessing occupancy of a first inter-modular link connecting said first of said optical switch modules to said second of said optical switch modules for said particular time slot;
where said first inter-modular link is vacant for said particular time slot, generating a result record identifying said given request, said particular time slot and said first inter-modular link.
45 . The apparatus of claim 42 wherein said time-slot matching process is a third-order matching process including:
examining occupancy of said inlet port and said outlet port over sequential time slots until a new particular time slot is found for which both said inlet port and said outlet port are vacant, where said examining begins at an initial time slot;
where said new particular time slot is found for which both said inlet port and said outlet port are vacant, assessing occupancy of a second inter-modular link connecting said first of said optical switch modules to a third of said optical switch modules and a third inter-modular link connecting said third of said optical switch modules to said second of said optical switch modules for said new particular time slot; and
where said second and third inter-modular links are vacant for said particular time slot, generating a result record identifying said given request, said particular time slot and said first inter-modular link.
46 . A method of selecting a path through a modular optical switch comprising:
receiving a request, where said request identifies a requested number of time slots, an inlet port of a first switch module and an outlet port of a second switch module; responsive to said receiving said request, comparing a state map associated with said inlet port to a state map associated with said outlet port to find a matching time slot that is vacant in both said inlet port and said outlet port; if said comparing provides said matching time slot, wherein said state maps associated with said respective ports indicate vacancy in said particular time slot, recording said matching time slot in a result record; and transmitting said result record to a controller of said modular optical switch.
47 . The method of claim 46 further comprising repeating said comparing for a subsequent time slot of a first predetermined set of sequential time slots either until said matching time slot has been found or until said state maps associated with each of said first predetermined set of sequential time slots have been compared.
48 . The method of claim 46 further comprising:
responsive to said receiving said request, initializing a local index to a value of said requested number of time slots;
where said matching time slot is found,
reducing said local index by one; and
generating an indication of successful matching.
49 . The method of claim 48 further comprising repeating said comparing, reducing and generating for each of said sequential time slots of said first predetermined set of sequential time slots either until said local index has been reduced to zero or until said state maps associated with each sequential time slot of said first predetermined set of additional time slots have been compared.
50 . The method of claim 49 further comprising, where each of said first predetermined set of sequential time slots have been compared and said local index exceeds zero, repeating said comparing, reducing and generating for sequential time slots of a second predetermined set of sequential time slots either until said local index has been reduced to zero or until said state maps associated with each additional time slot of said second predetermined set of sequential time slots have been compared.
51 . The method of claim 49 further comprising, where each of said first predetermined set of sequential time slots have been compared and said local index exceeds zero, outputting a request with a requested number of time slots set to a value of said local index.
52 . A path selection apparatus comprising:
a plurality of matching units, where each of said plurality of matching units is adapted to:
receive a connection request, where said connection request identifies a requested number of time slots, an inlet port of a first switch module and an outlet port of a second switch module;
responsive to said receiving said time-slot-allocation request, compare a state map, specific to a particular time slot, associated with said inlet port to a state map, specific to said particular time slot, associated with said outlet port to find a matching time slot that is vacant in both said inlet port and said outlet port;
if said comparing provides said matching time slot, wherein said state maps associated with said respective ports indicate vacancy in said particular time slot, record said matching time slot in a result record;
a plurality of result buffers, each of said a plurality of result buffers adapted to receive a result record from an associated one of said plurality of matching units; and a cyclic selector adapted to select a single result record at a time from each of said plurality of result buffers under control of said cyclic selector.
53 . The path selection apparatus of claim 52 wherein each of said plurality of matching units comprises:
a request buffer for receiving said time-slot-allocation request;
a memory adapted to store said state map associated with said inlet port and said state map associated with said outlet port;
a path finding processor adapted to:
receive said connection request from said request buffer;
access said memory; and
perform said comparing to result in a given result record; and
a selector adapted to:
receive said given result record as a product of said comparing; and
transmit said result record to said associated result buffer.
54 . A data structure for simple and compound time-slot matching over a number of time slots to be considered, said data structure for use in a switch module in a modular switch comprising a plurality of switch modules having inlet ports and outlet ports, said data structure comprising:
a first matrix having:
a number of rows equal to a first product of a maximum number of said inlet ports and a maximum number of switch modules; and
a number of columns equal to said number of time slots;
a second matrix having:
a number of rows equal to a second product of a maximum number of said outlet ports and a maximum number of switch modules; and
a number of columns equal to said number of time slots;
a third matrix having:
a number of rows equal to a third product of said maximum number of said inlet ports and a maximum number of time slots to be considered; and
a number of columns equal to a maximum number of said outlet ports;
a fourth matrix having:
a number of rows equal to a fourth product of said maximum number of said outlet ports and a maximum number of time slots to be considered; and
a number of columns equal to said maximum number of inlet ports.
55 . The data structure of claim 54 wherein each element in each of said matrices is a 1-bit word indicating an occupancy state.
56 . A method of using the data structure of claim 54 for first-order time-slot matching, said method comprising:
finding an entry in a row in said first matrix indicating a vacant occupancy state for an inlet port of a given one of said plurality of switch modules; and
finding an entry in a row in said second matrix indicating a vacant occupancy state for an outlet port of said given one of said plurality of switch modules.
57 . A method of using the data structure of claim 54 for second order time-slot matching, said method comprising:
finding an entry in a row in said first matrix indicating a vacant occupancy state for an inlet port of a first one of said plurality of switch modules;
finding an entry in a row in said second matrix indicating a vacant occupancy state for an outlet port of a second one of said plurality of switch modules; and
finding an entry in a row in said third matrix indicating a vacant occupancy state for an inner link to said second one of said plurality of switch modules; and
58 . A method of using the data structure of claim 54 for third-order time-slot matching, said method comprising:
finding an entry in a row in said first matrix indicating a vacant occupancy state for an inlet port of a first one of said plurality of switch modules;
finding an entry in a row in said second matrix indicating a vacant occupancy state for an outlet port of a second one of said plurality of switch modules;
finding an entry in a row in said third matrix indicating a vacant occupancy state for an inner link to a third one of said plurality of switch modules; and
finding an entry in a row in said fourth matrix indicating a vacant occupancy state for an inner link to said second one of said plurality of switch modules.Join the waitlist — get patent alerts
Track US2004037558A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.