Method and apparatus for a multi-gigabit ethernet architecture
First Claim
1. A method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, comprising:
- receiving a communication from a process operating on a first network entity, wherein the communication is directed to a second network entity;
receiving said communication at a distribution module of a network interface device from a medium access control module across a first interface, wherein said distribution module is configured to distribute portions of said communication among a plurality of communication channels;
distributing elements of said communication into multiple portions, each said portion corresponding to one of a plurality of channels established to convey a communication between said first network entity and said second network entity;
encoding a first portion of said communication with a first starting delimiter;
encoding a second portion of said communication with a second starting delimiter, wherein said second starting delimiter is different from said first starting delimiter;
sending said first portion of said communication on a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
sending said second portion of said communication on a second channel established on a second communication medium coupled to said first network entity and said second network entity;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second.
2 Assignments
0 Petitions
Accused Products
Abstract
An Ethernet architecture is provided for connecting a computer system or other network entity to a dedicated Ethernet network medium. The network interface enables the transmission and receipt of data by striping individual Ethernet frames across a plurality of logical channels and may thus operate at substantially the sum of the individual channel rates. Each channel may be conveyed by a separate conductor (e.g., in a bundle) or the channels may be carried simultaneously on a shared medium (e.g., an electrical or optical conductor that employs a form of multiplexing). On a sending station, a distributor within the sender'"'"'s network interface receives Ethernet frames (e.g., from a MAC) and distributes frame bytes in a round-robin fashion on the plurality of channels. Each “mini-frame” is separately framed and encoded for transmission across its channel. On a receiving station, the receiver'"'"'s network interface includes a collector for collecting the multiple mini-frames (e.g., after decoding) and reconstructing the frame'"'"'s byte stream (e.g., for transfer to the receiver'"'"'s MAC). The first and last bytes of each frame and mini-frame are marked for ease of recognition. Multiple unique idle symbols may be employed for transmission during inter-packet gaps to facilitate the collector'"'"'s synchronization of the multiple channels and/or enhance error detection. A maximum channel skew is specified, and each received channel may be buffered with an elasticity that is proportional to the maximum skew so that significant propagation delay may be encountered between channels without disrupting communications.
-
Citations
125 Claims
-
1. A method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, comprising:
-
receiving a communication from a process operating on a first network entity, wherein the communication is directed to a second network entity;
receiving said communication at a distribution module of a network interface device from a medium access control module across a first interface, wherein said distribution module is configured to distribute portions of said communication among a plurality of communication channels;
distributing elements of said communication into multiple portions, each said portion corresponding to one of a plurality of channels established to convey a communication between said first network entity and said second network entity;
encoding a first portion of said communication with a first starting delimiter;
encoding a second portion of said communication with a second starting delimiter, wherein said second starting delimiter is different from said first starting delimiter;
sending said first portion of said communication on a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
sending said second portion of said communication on a second channel established on a second communication medium coupled to said first network entity and said second network entity;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second. - View Dependent Claims (2, 36, 37, 38, 40, 41, 119, 120, 121, 122)
-
-
3. A method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, comprising:
-
receiving a communication at a distribution module of a network interface device from a medium access control module across a first interface, wherein said distribution module is configured to distribute portions of said communication among a plurality of communication channels;
distributing elements of said communication into multiple portions;
sending a first portion of said communication on a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
sending a second portion of said communication on a second channel established on a second communication medium coupled to said first network entity and said second network entity. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 43, 44, 113, 114, 115, 116, 117, 118)
-
-
15. A method of receiving a communication at a second network entity from a first network entity, wherein the first network entity and the second network entity are coupled to a dedicated communication medium, comprising:
-
receiving at a second network entity a first idle code on each of multiple channels established between a first network and said second network entity;
receiving at said second network entity a first portion of a communication from said first network entity on a first channel of said multiple channels;
receiving at said second network entity a second portion of said communication on a second channel of said multiple channels;
collecting an element of said first portion and an element of said second portion;
receiving at said second network entity a second idle code, different from said first idle code, on each of said multiple channels; and
forwarding said communication toward a process operating on said second network entity. - View Dependent Claims (16, 17, 18, 19, 20, 21, 46, 47)
-
-
22. A method of receiving a communication at a second network entity from a first network entity, wherein the first network entity and the second network entity are coupled to a dedicated communication medium, comprising:
-
receiving at a second network entity a first portion of a communication from a first network entity on a first channel established between said first network entity and said second network entity;
receiving at said second network entity a second portion of said communication on a second channel established between said first network entity and said second network entity;
receiving at a collection module an element of said first communication portion and an element of said second communication portion;
combining said element of said first communication portion and said element of said second communication portion; and
sending said combined elements to a medium access control module across a first interface toward a process operating on said second network entity. - View Dependent Claims (23, 24, 49, 50, 51)
-
-
25. A method of receiving a communication from a first network entity at a second network entity across a plurality of channels, comprising:
-
receiving synchronization information across each of a plurality of channels coupling a first network entity to a second network entity;
receiving at said second network entity a set of bytes across each of said channels;
detecting a first byte and a last byte in each of said sets of bytes;
decoding each of said sets of bytes; and
re-assembling said sets of bytes into a stream of bytes of a communication directed from said first network entity to said second network entity. - View Dependent Claims (26, 53, 54, 55, 56, 57, 58, 109, 110, 111, 112)
-
-
27. A method of operating a computer to communicate with a network entity, comprising:
-
operating a medium access control module configured to communicate a first frame from a computer system to a network entity and receive a second frame at said computer system from said network entity;
operating a distribution module to apportion contents of said first frame among a plurality of communication channels coupling said computer system to said network entity through one or more communication links; and
operating a collection module to combine contents of said second frame received through said plurality of communication channels;
wherein said distribution module and said collection module interface with each of said communication channels at a rate exceeding one gigabit per second; and
wherein said medium access control module interfaces with said distribution module and said collection module at a rate substantially equal to the sum of said rates at which said communication channels interface with said distribution module and said collection module. - View Dependent Claims (28, 29, 39, 60, 61)
-
-
30. A network interface device for coupling a computer system to a network, comprising:
-
a medium access control module configured to communicate with an application executing on a computer system;
multiple physical coding modules, wherein each said physical coding module is configured to encode packet bytes for transmission on a network medium and decode encoded bytes received from said network medium, and wherein said network medium is configured to carry said bytes between said computer system and a network entity;
a distributor configured to accept a first packet from said medium access control module and divide said first packet into a first plurality of packet bytes for transmission across said network medium; and
a collector configured to accept a second plurality of packet bytes from said multiple physical coding modules and combine said second plurality of packet bytes into a second packet for transfer to said medium access control module. - View Dependent Claims (31, 32, 33, 105, 106, 107, 108)
-
-
34. A device for implementing an Ethernet protocol to communicate Ethernet frames between a first network entity and a second network entity, comprising:
-
a distributor configured to distribute bytes of a first Ethernet frame over a plurality of channels in a first order;
a collector configured to receive bytes of a second Ethernet frame over said channels in a second order;
a first interface coupling said distributor and said collector to a medium access control module at a data rate exceeding one gigabit per second, wherein data are transferred across said first interface in multi-byte units in synchronization with both edges of a clock signal; and
a second interface coupling said distributor and said collector to a first physical coding module at a data rate exceeding one gigabit per second in synchronization with both edges of a second clock signal. - View Dependent Claims (35, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104)
-
-
42. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transmitting a communication from a first network entity to a second network entity, the method comprising:
-
receiving a communication at a distribution module of a network interface device from a medium access control module across a first interface, wherein said distribution module is configured to distribute portions of said communication among a plurality of communication channels;
distributing elements of said communication into multiple portions, each said portion corresponding to one of a plurality of channels established to convey a communication between said first network entity and said second network entity;
encoding a first portion of said communication with a first starting delimiter;
encoding a second portion of said communication with a second starting delimiter, wherein said second starting delimiter is different from said first starting delimiter;
sending said first portion of said communication on a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
sending said second portion of said communication on a second channel established on a second communication medium coupled to said first network entity and said second network entity;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second.
-
-
45. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transmitting a communication from a first network entity to a second network entity, the method comprising:
-
receiving a communication at a distribution module of a network interface device from a medium access control module across a first interface, wherein said distribution module is configured to distribute portions of said communication among a plurality of communication channels;
distributing elements of said communication into multiple portions;
sending a first portion of said communication on a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
sending a second portion of said communication on a second channel established on a second communication medium coupled to said first network entity and said second network entity.
-
-
48. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of receiving a communication at a second network entity from a first network entity, the method comprising:
-
receiving at a second network entity a first idle code on each of multiple channels established between a first network and said second network entity;
receiving at said second network entity a first portion of a communication from said first network entity on a first channel of said multiple channels;
receiving at said second network entity a second portion of said communication on a second channel of said multiple channels;
collecting an element of said first portion and an element of said second portion;
receiving at said second network entity a second idle code, different from said first idle code, on each of said multiple channels; and
forwarding said communication toward a process operating on said second network entity.
-
-
52. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of receiving a communication at a second network entity from a first network entity, the method comprising:
-
receiving at a second network entity a first portion of a communication from a first network entity on a first channel established between said first network entity and said second network entity;
receiving at said second network entity a second portion of said communication on a second channel established between said first network entity and said second network entity;
receiving at a collection module an element of said first communication portion and an element of said second communication portion;
combining said element of said first communication portion and said element of said second communication portion; and
sending said combined elements to a medium access control module across a first interface toward a process operating on said second network entity.
-
-
59. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of receiving a communication from a first network entity at a second network entity across a plurality of channels, the method comprising:
-
receiving synchronization information across each of a plurality of channels coupling a first network entity to a second network entity;
receiving at said second network entity a set of bytes across each of said channels;
detecting a first byte and a last byte in each of said sets of bytes;
decoding each of said sets of bytes; and
re-assembling said sets of bytes into a stream of bytes of a communication directed from said first network entity to said second network entity.
-
-
62. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of operating a computer to communicate with a network entity, the method comprising:
-
operating a medium access control module configured to communicate a first frame from a computer system to a network entity and receive a second frame at said computer system from said network entity;
operating a distribution module to apportion contents of said first frame among a plurality of communication channels coupling said computer system to said network entity through one or more communication links; and
operating a collection module to combine contents of said second frame received through said plurality of communication channels;
wherein said distribution module and said collection module interface with each of said communication channels at a rate exceeding one gigabit per second; and
wherein said medium access control module interfaces with said distribution module and said collection module at a rate substantially equal to the sum of said rates at which said communication channels interface with said distribution module and said collection module.
-
-
63. A method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, comprising:
-
transmitting a first idle signal on a first channel and a second channel established on a first communication medium coupled to a first network entity and a second network entity;
receiving a communication from a process operating on said first network entity, wherein the communication is directed to said second network entity;
distributing elements of said communication into multiple portions;
sending a first portion of said communication on said first channel;
sending a second portion of said communication on said second channel; and
transmitting a second idle signal on said first channel and said second channel after said sending said second portion of said communication, wherein said second idle signal is different from said first idle signal;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second;
wherein one of said first portion of said communication and said second portion of said communication includes a first start symbol configured to indicate a start of said communication and the other of said first portion and said second portion includes a second start symbol configured to indicate a start of a portion of said communication; and
wherein one of said first portion of said communication and said second portion of said communication includes a first end symbol configured to indicate an end of said communication and the other of said first portion and said second portion includes a second end symbol configured to indicate an end of a portion of said communication. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70, 71)
-
-
72. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, the method comprising:
-
transmitting a first idle signal on a first channel and a second channel established on a first communication medium coupled to a first network entity and a second network entity;
receiving a communication from a process operating on said first network entity, wherein the communication is directed to said second network entity;
distributing elements of said communication into multiple portions;
sending a first portion of said communication on said first channel;
sending a second portion of said communication on said second channel; and
transmitting a second idle signal on said first channel and said second channel after said sending said second portion of said communication, wherein said second idle signal is different from said first idle signal;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second;
wherein one of said first portion of said communication and said second portion of said communication includes a first start symbol configured to indicate a start of said communication and the other of said first portion and said second portion includes a second start symbol configured to indicate a start of a portion of said communication; and
wherein one of said first portion of said communication and said second portion of said communication includes a first end symbol configured to indicate an end of said communication and the other of said first portion and said second portion includes a second end symbol configured to indicate an end of a portion of said communication.
-
-
73. A method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, comprising:
-
transmitting a first idle signal on;
a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
a second channel established on a second communication medium coupled to said first network entity and said second network entity;
receiving a communication from a process operating on said first network entity, wherein the communication is directed to said second network entity;
distributing elements of said communication into multiple portions;
sending a first portion of said communication on said first channel;
sending a second portion of said communication on said second channel; and
transmitting a second idle signal on said first channel and said second channel after said sending a second portion of said communication, wherein said second idle signal is different from said first idle signal;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88)
-
-
89. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, the method comprising:
-
transmitting a first idle signal on;
a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
a second channel established on a second communication medium coupled to said first network entity and said second network entity;
receiving a communication from a process operating on said first network entity, wherein the communication is directed to said second network entity;
distributing elements of said communication into multiple portions;
sending a first portion of said communication on said first channel;
sending a second portion of said communication on said second channel; and
transmitting a second idle signal on said first channel and said second channel after said sending a second portion of said communication, wherein said second idle signal is different from said first idle signal;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second.
-
-
123. A method of transmitting a communication from a first network entity to a second network entity, wherein the first network entity and the second network entity are coupled to a communication medium, comprising:
-
receiving a communication from a process operating on a first network entity, wherein the communication is directed to a second network entity;
receiving said communication at a distribution module of a network interface device from a medium access control module across a first interface at a data rate exceeding one gigabit per second;
distributing elements of said communication into multiple portions, each said portion corresponding to one of a plurality of channels established to convey a communication between said first network entity and said second network entity;
transferring a first portion of said communication to a first physical coding module across a second interface at a data rate exceeding one gigabit per second;
transferring a second portion of said communication to a second physical coding module across the second interface;
sending said first portion of said communication on a first channel established on a first communication medium coupled to said first network entity and said second network entity; and
sending said second portion of said communication on a second channel established on a second communication medium coupled to said first network entity and said second network entity;
wherein said communication is transmitted to said second entity at a data rate in excess of one gigabit per second; and
wherein;
one of said first portion of said communication and said second portion of said communication includes a first start symbol configured to indicate a start of said communication and the other of said first portion and said second portion includes a second start symbol configured to indicate a start of a portion of said communication; and
one of said first portion of said communication and said second portion of said communication includes a first end symbol configured to indicate an end of said communication and the other of said first portion and said second portion includes a second end symbol configured to indicate an end of a portion of said communication. - View Dependent Claims (124, 125)
-
Specification