Ethernet local area networks are in wide use today. The term Ethernet is often used to refer to carrier sense multiple access/collision detection (CSMA/CD) local area networks (LANs) that generally conform to Ethernet specifications, including the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard (published Jul. 29, 1996).
Basic Ethernet transmission, such as 10 Base-T, is capable of a data transmission rate of 10 Megabits per second (Mbps). The need for greater data rates has led to the development of “Fast Ethernet” and “Gigabit Ethernet” technology that transmits data at rates up to 1 gigabits per second (Gbps). At such high speeds, link integrity is very important and as a result, it is desirable to analyze channels that form the link. However, such analysis typically requires inducing loss of the link itself.
Thus after channel analysis, set-up processes for the link must again be performed. Such processes include autonegotiation, which is a mechanism specified in the IEEE 802.3 standard in which network entities at either end of a link segment automatically determine the data rate at which the link segment will operate. Using autonegotiation, each network entity compares what Ethernet implementation it supports to what implementation the network entity at the other end supports. Such an autonegotiation process and other set-up processes such as link convergence are expensive to perform. Thus a need exists to analyze channels without link loss.
In certain embodiments, a communication link may be established between link partners and one or more channels therebetween may be tested without link loss. In such manner, various protocol requirements, such as autonegotiation and a convergence process, may be avoided. In certain embodiments, the link partners may be instructed to not transmit data during a period of acquisition of data for use in the channel analysis. However, when such data acquisition is completed, normal operation may continue without requiring configuration processes to occur again.
Referring to
Link 45 which, in some embodiments, may be a copper link, such as a category 5(CAT 5) or other such cable device, optical fiber or the like may couple system 30 and system 50. Thus, data may be transferred between system 30 and system 50 via link 45, which may be an Ethernet connection that permits data transfer at high speeds, for example, at gigabit speeds such as 1 or 10 Gbps or greater.
Also shown in
While discussed herein in various embodiments as being a link partner that is an Ethernet controller using an Ethernet protocol, it is to be understood that the scope of the present invention is not so limited. Further, the components described above as being part of link partner 20 may take different forms, and may be a part of a single semiconductor device, or may be segmented among multiple such devices.
Referring now to
Still referring to
A test bus 27 may be coupled to MII 25 to route test data used in channel analysis to test circuitry 28, which may be dedicated circuitry within link partner 20 to perform channel analysis. However, in other embodiments, such channel analysis may be performed using other circuitry within link partner 20 via software or firmware programmed to perform such channel analysis. Similarly, such software and/or firmware may be used to control test circuitry 28 to perform the channel analysis.
In various embodiments, PHY 26 may include various components such as a physical coding sublayer (PCS) for modulation and coding of signals provided by MAC 24, as well as demodulation and decoding of signals received from link 45 via lines 29. Such operations may include a scrambling of data and coding using, for example a Viterbi encoder, and physical circuitry to form and transmit/receive serial data via link 45 according to a given protocol, such as an Ethernet protocol.
In various embodiments, it may be desired to analyze channels within link 45 without link loss. For example, it may be desired to analyze one or more channels within link 45 between system 30 and system 50 (which may be a device under test (DUT)) and obtain various parameters regarding the channel. Such parameters may include, for example, a channel frequency response and a time-domain channel pulse response.
As an example of usage of such channel analysis, an information technology (IT) manager may desire to analyze channels within various links of a network of an enterprise. Such network may include numerous information handling systems, including desktop computers, server computers, storage area networks (SANs), data servers, and the like. Accordingly, the IT manager may access a software program, such as a software driver using, for example, a graphical user interface (GUI) of a device under test. Such a GUI may allow the IT manager to select desired links for testing, as well as one or more channels thereof.
Referring now to
While various mechanisms may be used to cause the link partner to transmit such idle signals, in one embodiment, an instruction from the DUT may be sent along the link to cause the remote link partner to transmit idles. In other embodiments, combinations of software, hardware and/or firmware in either the DUT or the remote link partner may be used to initiate such idle signals. Such idle signals may take various forms. For example, in one embodiment such idle signals may be ordered sets in accordance with the IEEE 802.3 standard. Such idle signals are typically used to establish a link with a link partner and maintain it between data transmissions. The signals are not data, but rather are idle messages. That is, idle signals may be a known sequence sent when a link partner is not sending data to another partner.
Decoded idle symbols of a given channel of the link partner may be output to a test bus on the DUT (block 140). For example, a first channel's (e.g., a channel A) decoded symbols from the remote link partner may be sent to a test bus, which may be sent from a MII, for example a gigabit MII (GMIII), and placed into packets. Such packets may thus contain data desired to be analyzed during a channel analysis process. Because a link has been established between the two link partners, the decoded symbols may reflect far-end transmitted symbols with high integrity. These decoded symbols may then be later used as a reference series.
As discussed above, a test bus may be an alternate route from a GMII. Thus, instead of transferring data to a MAC, data may be provided to an alternate processing core, such as a digital signal processor (DSP) or test circuitry (e.g. test circuitry 28), to perform analysis of data from the test bus. Using such test circuitry, data packets may be opened and information extracted therefrom and processed. Thus, at block 140, the decoded symbols from channel A may be output onto the test bus and routed to the test circuitry.
Then data of a channel desired to be analyzed may be output to the test bus on the DUT (block 150). For example, an output of an analog to digital converter (ADC) within PHY 26 that receives data from the desired channel via the communication link may be used to receive analog data across the communication link and convert it into digital data for further processing. This data may be sent to the GMII and placed into packets to be analyzed in test circuitry.
At block 160, post-processing of the acquired data may be performed. While such post-processing may take different forms, one embodiment of such post-processing will be discussed further below. Finally, after such post-processing occurs, various parameters relating to the channel analysis may be output (block 170). For example, in one embodiment frequency response and/or time-domain pulse response information may be output. Such parameters may be output via a user display, such as a graphical user interface (GUI) of the display for review by a user (e.g., an IT manager).
Now referring to
In one embodiment, idle signals may be spread through four channels, namely channels A, B, C and D. In such an embodiment, the channel A idles may be used by the scrambler to compute a reference series to use as a baseline. Then the idle signals sent on channels B through D may have further computations performed thereon. For example, a PCS-like algorithm in the test circuitry may receive decoded signals after decoding in the DSP or test circuitry. The algorithm may then identify which channel is the channel A. After it finds the channel A, it may use at least a portion of the streaming decoded symbols from channel A to identify the other channels. In such manner, a PCS-type algorithm may be mimicked in software to identify channel A and then perform calculations to lock the scrambler on each channel for identification thereof.
For example, at block 220, a delimiter between test bus switches may be identified. Such a delimiter may be a known sequence on the test bus, which may be used to parse data at the point of delimitation. The point of delimitation may be when a switch occurs between different sources being sent on the test bus. For example, at a first time decoded symbol data may be sent (e.g., from channel A), and at a second time analog-to-digital (A/D) data from a given channel (e.g., one of channels B-D) may be sent. In certain embodiments, a known approximate time delay between these different test bus data flows may be present.
The acquired scrambler may then be advanced based on a time difference delay between receipt of the channel A decoded symbols and data from a channel under analysis, which is also received on the test bus. Thus a reference series for the other channel (or channels, if desired) may be calculated (block 230). For example, the scrambler may be advanced from its position set above at block 210, and from its advanced position, a reference series for the channel under analysis may be computed. For example, if a channel B is to be analyzed, a reference series for channel B may be computed. Such a reference series may be determined using the A/D data received from the remote link partner. In such manner, the data represents the far-end transmission, channel parameters, and the analog front end (AFE) of the link partner of the DUT. In one embodiment, the reference series may be a computed idle sequence.
Next, a cross-correlation may be calculated between the reference series determined above (in block 230) and channel data output for the channel under analysis (block 240). For example, the channel data may be obtained in block 150 of
Then a reference series phase may be identified based on a peak of the cross-correlation (block 250). For example, a phase relationship between the ADC output and the reference series may be determined based on the peak of the cross-correlation. A time-domain channel pulse response may then be computed (block 260). While such a pulse response may be calculated in various manners, in one embodiment a least-squares computation may be performed. From the pulse response, a channel frequency response may be computed (block 270). In certain embodiments, the frequency response computation may take into account different system components, such as transmit filters, delay circuits, other AFE components, and the like.
After such channel analysis, system data transmission between link partners may be initiated (or resumed) without performing any channel set-up procedures, such as autonegotiation or link convergence.
Embodiments may be implemented in code and may be stored on a storage medium having stored thereon instructions which can be used to program a system to perform the instructions. The storage medium may include, but is not limited to, any type of disk including floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), and magneto-optical disks, semiconductor devices such as read-only memories (ROMs), random access memories (RAMs), erasable programmable read-only memories (EPROMs), flash memories, electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions.
Example embodiments may be implemented in software for execution by a suitable system configured with a suitable combination of hardware devices.
Now referring to
The processor 410 may be coupled over a host bus 415 to a memory hub 430 in one embodiment, which may be coupled to a system memory 420 (e.g., a dynamic RAM) via a memory bus 425. The memory hub 430 may also be coupled over an Advanced Graphics Port (AGP) bus 433 to a video controller 435, which may be coupled to a display 437. The AGP bus 433 may conform to the Accelerated Graphics Port Interface Specification, Revision 2.0, published May 4, 1998, by Intel Corporation, Santa Clara, Calif.
The memory hub 430 may also be coupled (via a hub link 438) to an input/output (I/O) hub 440 that is coupled to a input/output (I/O) expansion bus 442 and a PCI bus 444. Instead of a PCI bus, a different bus, such as a PCI Express™ bus or a CSA bus may be present. The I/O expansion bus 442 may be coupled to an I/O controller 446 that controls access to one or more I/O devices. As shown in
The PCI bus 444 may also be coupled to various components including, for example, a link partner 20 that is coupled to a network port (not shown) to transmit data across a link 45, such as an Ethernet link. Additional devices may be coupled to the I/O expansion bus 442 and the PCI bus 444, such as an input/output control circuit coupled to a parallel port, serial port, a non-volatile memory, and the like. Although the description makes reference to specific components of the system 400, it is contemplated that numerous modifications and variations of the described and illustrated embodiments may be possible.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Number | Name | Date | Kind |
---|---|---|---|
4740992 | Havens et al. | Apr 1988 | A |
4910507 | Shimizu et al. | Mar 1990 | A |
4968978 | Stolarczyk et al. | Nov 1990 | A |
5241542 | Natarajan et al. | Aug 1993 | A |
5790057 | Linde et al. | Aug 1998 | A |
6278864 | Cummins et al. | Aug 2001 | B1 |
6445733 | Zuranski et al. | Sep 2002 | B1 |
6504849 | Wang et al. | Jan 2003 | B1 |
6662332 | Kimmitt | Dec 2003 | B1 |
6718417 | Bachrach | Apr 2004 | B1 |
6813729 | Tsang et al. | Nov 2004 | B1 |
6862674 | Dice et al. | Mar 2005 | B2 |
6937571 | Acharya et al. | Aug 2005 | B1 |
6968158 | Bhute et al. | Nov 2005 | B1 |
7068611 | Bui | Jun 2006 | B2 |
7120557 | Schmitz et al. | Oct 2006 | B2 |
20010035994 | Agazzi et al. | Nov 2001 | A1 |
20020080792 | Rosier | Jun 2002 | A1 |
20020132603 | Lindskog et al. | Sep 2002 | A1 |
20030165152 | Mills et al. | Sep 2003 | A1 |
20040008736 | Bae et al. | Jan 2004 | A1 |
20040034486 | Iannuzzi | Feb 2004 | A1 |
20040228275 | Costo et al. | Nov 2004 | A1 |
20040258085 | Costo | Dec 2004 | A1 |
Number | Date | Country |
---|---|---|
2813624 | Apr 2000 | FR |
0514583 | Aug 1991 | WO |
WO 9308360 | Oct 1991 | WO |
WO 9518710 | Nov 1994 | WO |
Number | Date | Country | |
---|---|---|---|
20050276225 A1 | Dec 2005 | US |