A multi-mac chip for an Ethernet, the multi-mac chip generating different random variables for each mac layer so that each mac has a distinct backoff interval when there is a collision. This avoids a possible live-lock state. In one embodiment, the random variables are generated by adding distinct numbers to a random variable generated according to the truncated binary exponential backoff algorithm. In another embodiment, each mac stops a free-running counter for some specified number of clock cycles upon occurrence of a distinct event, and each counter for each colliding mac is sampled upon a collision to provide random integers used to calculate backoff intervals for each colliding mac.
|
13. A method to provide a first backoff time interval for a first mac and a second backoff time interval for a second mac, the method comprising:
running a first counter; running a second counter; stopping the first counter for N1 clock cycles upon occurrence of an event associated with the first mac; and stopping the second counter for N2 clock cycles upon occurrence of an event associated with the second mac.
9. A multi-mac chip comprising:
a first mac; a second mac; a first free-running counter; a second free-running counter; a first monitor functional unit to detect an event associated with the. first mac, and coupled to the first free-running counter to disable the first free-running counter for N1 clock cycles upon detection of the event associated with the first mac; and a second monitor functional unit to detect an event associated with the second mac, and coupled to the second free-running counter to disable the second free-running counter for N2 clock cycles upon detection of the event associated with the second mac.
5. A method to provide a first backoff time interval for a first mac and a second backoff time interval for a second mac, the method comprising:
generating a first random variable and a second random variable; adding a first number to the first random variable to provide a first new random variable; adding a second number to the second random variable to provide a second new random variable, wherein the first and second numbers are not equal to each other; generating a first backoff interval for the first mac based upon multiplying the first new random variable with a slotTime; and generating a second backoff interval for the second mac based upon multiplying the second new random variable with the slotTime.
1. A multi-mac chip comprising:
a first mac; a second mac; at least one counter to generate a first random variable for the first mac and a second random variable for the second mac; a first register to store a first number; a second register to store a second number distinct form the first number; at least one summer to sum the first number with the first random variable to provide a first new random variable and to sum the second number with the second random variable to provide a second new random variable; and wherein if the first mac and the second mac detect a collision, the first and second new random variables are to provide, respectively, a first backoff time interval for the first mac and a second backoff time interval for the second mac.
2. The multi-mac chip as set forth in
3. The multi-mac chip as set forth in
4. The multi-mac chip as set forth in
6. The method as set forth in
7. The method as set forth in
8. The method as set forth in
11. The multi-mac chip as set forth in
a first latch to latch k1 bits of the first free-running counter upon the first mac detecting a collision so as to provide a first backoff time interval for the first mac; and a second latch to latch k2 bits of the second free-running counter upon the second mac detecting a collision so as to provide a second backoff time interval for the second mac.
12. The multi-mac chip as set forth in
and
14. The method as set forth in
15. The method as set forth in
latching k1 bits of the first counter upon the first mac detecting a collision to generate a first random variable; latching k2 bits of the second counter upon the second mac detecting a collision to generate a second random variable; generating the first backoff time interval by multiplying the first random variable by a slotTime; and generating the second backoff time interval by multiplying the second random variable by the slotTime.
16. The method as set forth in
and
|
The present invention relates to network communications, and more particularly, to multi-MAC chips used for an Ethernet network.
A portion of an Ethernet LAN (Local Area Network) is illustrated in FIG. 1. Switch 102 is a four-port switch, with ports connected to DTE (Data Terminal Equipment) 104, Hub 106, Hub 108, and three-port switch 110. Connected to Hub 106 are DTE 112, DTE 114, and DTE 116, and connected to Hub 108 are DTE 118 and DTE 120. Data terminal equipment may be, for example, a workstation or server. A hub may be a half-duplex or full-duplex repeater. The connections to switch 110 are not shown for simplicity, but may be connected to other switches, hubs, DTE, or other intermediate network devices.
For an Ethernet, when a collision is detected by a MAC while transmitting a frame, it interrupts transmission of the frame and causes a JAM signal to be transmitted so that all other MACs on the shared medium are notified that a collision has occurred. The MAC will retry transmission of the interrupted frame until transmission is successful or a maximum number of attempts (attemptLimit) have been made. All attempts at. transmitting an interrupted frame are made before transmitting any subsequent outgoing frame.
Retransmission of an interrupted frame is scheduled by a random process known as a truncated binary exponential backoff. The MAC enters a delay period after it has sent the last jam bit, where the delay is an integral multiple of slotTime. The number of slotTimes in the delay before the nth retransmission attempt is the random variable r, where r is an integer-valued-random variable uniformly distributed within the range
0≦r<2k,
where
A method for generating realizations of the random variable r is illustrated in FIG. 3. Ring oscillator 302 provides a clock signal to free-running counter 304. Ring oscillator 302 is designed so that its frequency, and hence the clock signal used to clock counter 304, is a function of temperature or other environmental factors. Counter 304 is sampled and latched by latch 306 when a collision is detected. Any chosen k bits of latch 306 provide a realization of the random variable r.
Some switches use multi-MAC chips, in which two or more MACs are integrated on the same die. Furthermore, some hubs may also employ multiple MAC layers integrated on the same die, such as full-duplex hubs. It may happen, perhaps inadvertently, that two or more MACs on the same multi-MAC chip are connected to the same network segment. Or perhaps there is a path connecting one MAC on a multi-MAC chip to another MAC on the same multi-MAC chip. In such a situation, one MAC on a multi-MAC chip may cause a transmission collision with another MAC on the same multi-MAC chip.
For prior art multi-chip MACs utilizing one oscillator, the random variables generated for each MAC will be the same. For multi-chip MACs utilizing more than one oscillator, each oscillator experiences essentially the same environmental factors, and consequently the random variables generated by each MAC will be correlated. In the worst case, the randomly generated integers will be the same. Correlated random variables among colliding MACs reduce the effectiveness of the truncated binary exponential backoff algorithm. In particular, when the generated random variables are the same, colliding MACs will enter a live-lock situation when they cause collision, because each colliding MAC will retry transmission at the same time, until attemptLimit is reached, in which case an error indication is provided to a higher layer. There is thus a need to address the problem of live-lock in a multi-MAC chip.
One method for generating random variables on a Multi-MAC chip is provided in FIG. 4. Frame transmission is started in step 402. If during frame transmission a collision is detected in step 404, a random integer according to the truncated binary exponential backoff algorithm is generated in step 406. In step 408, an integer number is added to this random integer to provide a new random integer. This integer number is distinct for each MAC on a multi-MAC chip, so that the resulting generated random integers are distinct. The backoff time interval is then obtained by multiplying the new random integer by slotTime, and the MAC waits for the backoff interval time as indicated in step 410 before retrying transmission in step 402.
In some embodiments, the distinct numbers stored for each MAC may be generated by the operating system or device driver, or perhaps provided as input by a system administrator. For other embodiments, the distinct numbers may be a function of each MAC address, or based upon a random event distinct for each MAC, such as the number of octets transmitted by each MAC over some time interval.
Another embodiment for generating random variables in a multi-MAC chip is provided in FIG. 6. Associated with each MAC is a counter clocked by a noisy oscillator.
A high-level model of a multi-MAC chip employing the method of
Various modifications may be made to the disclosed embodiments without departing from the scope of the invention as claimed below.
Wertheimer, Aviad J., Ende, Benzi
Patent | Priority | Assignee | Title |
6947439, | Dec 22 2000 | WSOU Investments, LLC | Ethernet cross point switch with reduced connections by using dual control to the cross points in the switch |
7965734, | Dec 15 2005 | PARADOX SECURITY SYSTEMS LTD | Device network interface |
8015565, | Nov 21 2005 | International Business Machines Corporation | Preventing livelocks in processor selection of load requests |
Patent | Priority | Assignee | Title |
5822538, | Nov 20 1996 | Advanced Micro Devices, Inc. | Method and apparatus for prioritizing traffic in half-duplex networks by selecting delay intervals from fixed ranges |
5854900, | May 31 1996 | Advanced Micro Devices, Inc. | Method and apparatus avoiding capture effect by adding a slot time to an interpacket gap interval in a station accessing an ethernet network |
5894559, | Aug 15 1996 | AMD TECHNOLOGIES HOLDINGS, INC ; GLOBALFOUNDRIES Inc | System for selectively reducing capture effect in a network station by increasing delay time after a predetermined number of consecutive successful transmissions |
5905870, | Sep 11 1996 | GLOBALFOUNDRIES Inc | Arrangement for initiating and maintaining flow control in shared-medium, full-duplex, and switched networks |
6055578, | Aug 19 1996 | AMD TECHNOLOGIES HOLDINGS, INC ; GLOBALFOUNDRIES Inc | Apparatus and method for selectively controlling transmission of consecutive packets in a network station |
6078591, | Jul 17 1997 | AMD TECHNOLOGIES HOLDINGS, INC ; GLOBALFOUNDRIES Inc | Apparatus and method for selectively modifying collision delay intervals based on a detected capture effect in half-duplex network |
6339788, | Jun 12 1998 | IBM Corporation | Method for encapsulating hardware to allow multi-tasking of microcode |
6345310, | Jul 28 1998 | International Business Machines Corporation; IBM Corporation | Architecture for a multiple port adapter having a single media access control (MAC) with a single I/O port |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 08 2000 | Intel Corporation | (assignment on the face of the patent) | / | |||
Jun 19 2000 | ENDE, BENZI | INTEL CORPORATION, A CORPORATION DELAWARE | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010957 | /0977 | |
Jul 19 2000 | WERTHEIMER, AVIAD J | INTEL CORPORATION, A CORPORATION DELAWARE | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010957 | /0977 |
Date | Maintenance Fee Events |
Jan 26 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 26 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Mar 06 2015 | REM: Maintenance Fee Reminder Mailed. |
Jul 29 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 29 2006 | 4 years fee payment window open |
Jan 29 2007 | 6 months grace period start (w surcharge) |
Jul 29 2007 | patent expiry (for year 4) |
Jul 29 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 29 2010 | 8 years fee payment window open |
Jan 29 2011 | 6 months grace period start (w surcharge) |
Jul 29 2011 | patent expiry (for year 8) |
Jul 29 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 29 2014 | 12 years fee payment window open |
Jan 29 2015 | 6 months grace period start (w surcharge) |
Jul 29 2015 | patent expiry (for year 12) |
Jul 29 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |