Switching ethernet controller
Abstract
An Ethernet controller, for use within an Ethernet network of other Ethernet controller connected together by a bus, is provided. The Ethernet controller includes a plurality of ports including at least one bus port associated with ports connected to other switching Ethernet controllers, a hash table for storing addresses of ports within the Ethernet network, a hash table address control, a storage buffer including a multiplicity of contiguous buffers in which to temporarily store said packet, an empty list including a multiplicity of single bit buffers, a packet storage manager, a packet transfer manager and a write-only bus communication unit. The hash table address control hashes the address of a packet to initial hash table location values, changes the hash table location values by a fixed jump amount if the address values stored in the initial hash table location do not match the received address, and provides at least an output port number of the port associated with the received address. The packet storage manager associates the state of the bit of a single bit buffer with the empty or full state of an associated contiguous buffer and generates the address of a contiguous buffer. The packet transfer manager directs the temporarily stored packet to the port determined by said hash table control unit. The write-only bus communication unit is activated by the packet transfer manager, for transferring the packet out of the bus port by utilizing the bus for write only operations.
Claims
exact text as granted — not AI-modified1. A generally full-wire throughput, switching Ethernet controller for use within an Ethernet network of other switching Ethernet controllers connected together by a bus, the controller comprising:
a. a plurality of ports including at least one bus port associated with ports connected to other switching Ethernet controllers; b. a hash table for storing addresses of ports within said Ethernet network; c. hash table address control for hashing the address of a packet to initial hash table location values, for changing the hash table location values by a fixed jump amount if the address values stored in said initial hash table location does not match the received address, and for providing at least an output port number of the port associated with the received address; d. a storage buffer including a multiplicity of contiguous buffers in which to temporarily store said packet; e. an empty list including a multiplicity of single bit buffers; f. a packet storage manager for associating the state of the bit of a single bit buffer with the empty or full state of an associated contiguous buffer and for generating the address of a contiguous buffer through a simple function of the address or number of its associated single bit buffer; g. a packet transfer manager for directing said temporarily stored packet to the port determined by said hash table control unit; and h. a write-only bus communication unit, activated by said packet transfer manager, for transferring said packet out said at least one bus port by utilizing said bus only for write operations.
2. A controller according to claim 1 and wherein said write-only bus communication unit includes a direct memory access controller.
3. A switching controller, comprising:
a hash table including a plurality of hash table locations that store destination addresses; a hash table controller that selects a first address in the hash table based on a hash of a first destination address in at least one packet; and a packet transfer manager that transfers the at least one packet from a source port to a destination port when a second destination address stored at the first address matches the first destination address and that selects a second address that is offset from the first address in the hash table when the second destination address stored at the first address does not match the first destination address.
4. The switching controller of claim 3 wherein the offset is a fixed offset.
5. The switching controller of claim 3 further comprising:
P ports each including:
S source ports that communicate with S source devices; and
D destination ports that communicate with D destination devices,
wherein P, S and D are integers, P is greater than one, and S and D are greater than or equal to one.
6. The switching controller of claim 5 wherein each of the S source devices includes a source address and each of the D destination devices include a destination address.
7. The switching controller of claim 5 further comprising:
memory that includes a plurality of buffers, wherein each of the P ports corresponds to a respective one of the plurality of buffers.
8. The switching controller of claim 3 wherein the at least one packet comprises the first destination address.
9. The switching controller of claim 3 wherein the at least one packet comprises a combination of the first destination address and data.
10. The switching controller of claim 4 wherein the fixed offset is a prime number.
11. The switching controller of claim 3 wherein the packet transfer manager generates additional addresses that are offset from a preceding address in the hash table when the second destination address stored at the first address does not match the first destination address.
12. The switching controller of claim 3 wherein the switching controller is a switching Ethernet controller.
13. A switching controller, comprising:
hash table storing means for storing a plurality of hash table locations that store destination addresses; hash table control means for selecting a first address in the hash table based on a hash of a first destination address in at least one packet; and packet transfer managing means for transferring the at least one packet from a source port to a destination port when a second destination address stored at the first address matches the first destination address and that selects a second address that is offset from the first address in the hash table when the second destination address stored at the first address does not match the first destination address.
14. The switching controller of claim 13 wherein the offset is a fixed offset.
15. The switching controller of claim 13 further comprising:
P ports each including:
S source ports that communicate with S source devices; and
D destination ports that communicate with D destination devices,
wherein P, S and D are integers, P is greater than one, and S and D are greater than or equal to one.
16. The switching controller of claim 15 wherein each of the S source devices includes a source address and each of the D destination devices include a destination address.
17. The switching controller of claim 15 further comprising:
storing means for storing a plurality of buffers, wherein each of the P ports corresponds to a respective one of the plurality of buffers.
18. The switching controller of claim 13 wherein the at least one packet comprises the first destination address.
19. The switching controller of claim 13 wherein the at least one packet comprises a combination of the first destination address and data.
20. The switching controller of claim 14 wherein the fixed offset is a prime number.
21. The switching controller of claim 13 wherein the packet transfer managing means generates additional addresses that are offset from a preceding address in the hash table storing means when the second destination address stored at the first address does not match the first destination address.
22. The switching controller of claim 13 wherein the switching controller is a switching Ethernet controller.
23. A method for operating a switching controller, comprising:
providing a hash table including a plurality of hash table locations that store destination addresses; selecting a first address in the hash table based on a hash of a first destination address in at least one packet; transferring the at least one packet from a source port to a destination port when a second destination address stored at the first address matches the first destination address; and selecting a second address that is offset from the first address in the hash table when the second destination address stored at the first address does not match the first destination address.
24. The method of claim 23 wherein the offset is a fixed offset.
25. The method of claim 23 further comprising:
providing P ports each including:
S source ports that communicate with S source devices; and
D destination ports that communicate with D destination devices,
wherein P, S and D are integers, P is greater than one, and S and D are greater than or equal to one.
26. The method of claim 25 wherein each of the S source devices includes a source address and each of the D destination devices include a destination address.
27. The method of claim 25 further comprising:
associating each of the P ports with a respective one of a plurality of buffers.
28. The method of claim 23 wherein the at least one packet comprises the first destination address.
29. The method of claim 23 wherein the at least one packet comprises a combination of the first destination address and data.
30. The method of claim 24 wherein the fixed offset is a prime number.
31. The method of claim 23 further comprising generating additional addresses that are offset from a preceding address in the hash table when the second destination address stored at the first address does not match the first destination address.
32. The method of claim 23 wherein the switching controller is a switching Ethernet controller.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.