US2009228568A1PendingUtilityA1

Multicasting Computer Bus Switch

52
Assignee: STEWART HEATHPriority: Jan 5, 2004Filed: May 19, 2009Published: Sep 10, 2009
Est. expiryJan 5, 2024(expired)· nominal 20-yr term from priority
H04L 49/103H04L 49/201G06F 13/404G06F 13/4022G06F 13/1673G06F 13/4282
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

There is disclosed apparatus and methods of multicasting in a shared address space. A shared memory address space may include two or more multicast portions. Each multicast portion may be associated with a respective end point and with at least one other multicast portion. Data units may be transmitted to at least some of the end points via memory-mapped I/O into the shared memory address space. When a destination address of a data unit is in a first multicast portion associated with a first end point, the data unit may be transmitted to the first end point, revised to specify a destination address in a second multicast portion associated with the first multicast portion, and transmitted to a second end point associated with the second multicast portion.

Claims

exact text as granted — not AI-modified
1 . A method of multicasting data units in a shared memory address space, comprising:
 associating two or more multicast portions of the shared memory address space with respective end points, wherein each multicast portion is associated with at least one other multicast portion   transmitting data units to at least some of the end points via memory-mapped I/O into the shared memory address space   wherein, when a destination address of a data unit is in a first multicast portion associated with a first end point, the method further comprises:
 transmitting the data unit to the first end point 
 revising the data unit to specify a destination address in a second multicast portion associated with the first multicast portion 
 transmitting the data unit to a second end point associated with the second multicast portion. 
   
     
     
         2 . The method of multicasting data units of  claim 1 , wherein the method further comprises:
 associating a plurality of individual portions of the shared memory address space with respective end points   when the destination address of a data unit is in an individual portion, transmitting the data unit to the respective end point.   
     
     
         3 . The method of multicasting data units of  claim 2 , wherein the method further comprises:
 associating each end point with a respective broadcast portion of the shared memory address space   when the destination address of a data unit is in a first broadcast portion, the method further comprises
 (a) transmitting the data unit to an end point associated with the first broadcast portion 
 (b) revising the data unit to specify a destination address in another broadcast portion 
 (c) transmitting the data unit to an end point associated with the another broadcast portion 
 (d) repeating (b) and (c) until the data unit has been transmitted to every end point. 
   
     
     
         4 . The method of multicasting data units of  claim 3 , wherein
 each end point is connected to a respective port of a switch   data units are transmitted to the end points via the respective ports.   
     
     
         5 . The method of multicasting data units of  claim 3 , wherein each of the multicast portions, the individual portions, and the broadcast portions is at least as large as a largest expected data unit. 
     
     
         6 . A switch for multicasting in a shared memory address space, the switch comprising
 a buffer to receive data units transmitted via memory mapped I/O to addresses in the shared memory address space   a plurality of ports associated with a corresponding plurality of end points, at least two of the plurality ports associated with a respective multicast address portion in the shared memory address space, wherein each of the multicast address portions is associated with at least one other multicast address portion   logic to
 cause data units in the buffer having a destination address in a first multicast address portion associated with a first port to be forwarded for transmission out the first port without being removed from the buffer and then replace the destination address with an address in a second multicast address portion associated with the first multicast address portion 
 cause data units in the buffer having a destination address in the second multicast address portion to be forwarded for transmission out the second port. 
   
     
     
         7 . The switch for multicasting in a shared memory address space of  claim 6 , wherein
 each of the plurality of ports is associated with a respective individual address portion in the shared memory address space   the logic further to cause data units in the buffer having a destination address in an individual address portion to be forwarded for transmission out the respective port.   
     
     
         8 . The switch for multicasting in a shared memory address space of  claim 7 , wherein
 each of the plurality of ports is associated with a respective broadcast address portion in the shared memory address space   the logic further to cause data units in the buffer having a destination address in a broadcast address portion to be forwarded for transmission out all of the plurality of ports.   
     
     
         9 . The switch for multicasting in a shared memory address space of  claim 8 , wherein each of the multicast address portions, the individual address portions, and the broadcast address portion is at least as large as a largest expected data unit. 
     
     
         10 . A switch for multicasting in a shared memory address space, the switch comprising
 a buffer to receive data units transmitted via memory mapped I/O to addresses in the shared memory address space   a plurality of ports associated with a corresponding plurality of end points, at least some of the ports associated with one or more multicast groups, wherein at least two ports are associated with each multicast group and each multicast group is associated with a respective multicast address portion of the shared memory address space   logic to cause data units in the buffer having a destination address in a first multicast address portion to be forwarded for transmission out all ports associated with a first multicast group associated with the first multicast address portion.   
     
     
         11 . The switch for multicasting in a shared memory address space of  claim 10 , wherein
 each of the plurality of ports is associated with a respective individual address portion in the shared memory address space   the logic further to cause data units in the buffer having a destination address in an individual address portion to be forwarded for transmission out the respective port.   
     
     
         12 . The switch for multicasting in a shared memory address space of  claim 11 , wherein
 each of the plurality of ports is associated with a broadcast address portion in the shared memory address space   the logic further to cause data units in the buffer having a destination address in the broadcast address portion to be forwarded for transmission out all of the plurality of ports.   
     
     
         13 . The switch for multicasting in a shared memory address space of  claim 12 , wherein each of the multicast address portions, the individual address portions, and the broadcast address portion is at least as large as a largest expected data unit. 
     
     
         14 . A method of multicasting in a shared memory address space using a switch having a plurality of ports associated with a corresponding plurality of end points, the method comprising:
 associating a plurality of multicast portions of the shared memory address space with respective ports; wherein each multicast portion is associated with at least one other multicast portion   receiving data units transmitted via memory-mapped I/O to destination addresses in the shared memory address space   wherein, when a destination address of a data unit is in a first multicast portion associated with a first port, the method further comprises:
 forwarding the data unit for transmission out the first port 
 revising the data unit to specify a destination address in a second multicast portion associated with the first multicast portion 
 forwarding the data unit for transmission out a second port associated with the second multicast portion. 
   
     
     
         15 . The method of multicasting data units of  claim 14 , wherein the method further comprises:
 associating a plurality of individual portions of the shared memory address space with respective ports   when the destination address of a data unit is in an individual portion, forwarding the data unit for transmission out a respective port.   
     
     
         16 . The method of multicasting data units of  claim 15 , wherein the method further comprises:
 associating each port with a respective broadcast portion of the shared memory address space   when the destination address of a data unit is in a first broadcast portion, the method further comprises
 (a) forwarding the data unit for transmission out a first port associated with the first broadcast portion 
 (b) revising the data unit to specify a destination address in another broadcast portion 
 (c) forwarding the data unit for transmission out another port associated with the another broadcast portion 
 (d) repeating (b) and (c) until the data unit has been forwarded for transmission out all of the plurality of ports. 
   
     
     
         17 . The method of multicasting data units of  claim 16 , wherein each of the multicast portions, the individual portions, and the broadcast portions is at least as large as a largest expected data unit. 
     
     
         18 . A method of multicasting in a shared memory address space using a switch having a plurality of ports associated with a corresponding plurality of end points, the method comprising:
 associating a plurality of individual portions of the shared memory address space with respective ports   associating at least one multicast portion of the shared memory address space with two or more ports   receiving data units addressed to destination addresses in the shared memory address space, wherein
 when a destination address of a data unit is in an individual portion, forwarding the data unit for transmission out the respective port 
 when a destination address of a data unit is in a multicast portion, forwarding the data unit for transmission out each of the ports associated with multicast portion 
 when a destination address of a data unit is in a broadcast portion of the shared memory address space, forwarding the data unit for transmission out all of the plurality of ports. 
   
     
     
         19 . The method of multicasting data units of  claim 16 , wherein each of the multicast portions, the individual portions, and the broadcast portion is at least as large as a largest expected data unit.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.