Abstract:
In a communication network, an efficient link error monitor is provided that completely relieves the microprocessor of computing the link error rate and comparing it with link error rate thresholds. The link error rate computation and the comparison are performed by the physical layer of a communication station. The physical layer generates an interrupt to the microprocessor only if a threshold is crossed and a microprocessor action may be required. The physical layer includes a number of registers that can be conveniently written by the microprocessor to designate the thresholds and monitor the link errors. The link error rate is estimated using a simple estimator that provides a realistic link error rate estimate even at early stages of operation when few link errors have been detected and when, therefore, little statistical information on the link error rate exists.

Description:
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 
     CROSS-REFERENCES TO RELATED APPLICATIONS 
     This application is related to, and incorporates by reference, the following U.S. patent applications filed on the same date as the present application: the application Ser. No. 08/082,678 entitled &#34;Method and Apparatus for Trace Propagation in a Ring Network&#34; filed by David C. Brief, Robert L. Macomber and James R. Hamstra, pending; the application Ser. No. 08/082,193 entitled &#34;Elasticity Buffer Control Method&#34; filed by James R. Hamstra and David C. Brief, pending; the application Ser. No. 08/083,111 entitled &#34;Hybrid Loopback for FDDI-II Slave Stations&#34; filed by David C. Brief, pending; and the application Ser. No. 08/083,963 entitled &#34;Intelligent Repeater Functionality&#34; filed by David C. Brief, Gregory DeJager, James R. Hamstra, pending. 
     BACKGROUND OF THE INVENTION 
     The present invention relates to communication networks, and more particularly to monitoring the link errors in communication networks. 
     A communication network includes a number of stations connected by communication links. The errors on a link are monitored so as to take a corrective action when needed. For example, in some Fiber Distributed Data Interface (FDDI) networks, a link is taken out of the network when the link error rate exceeds a predetermined threshold. 
     In particular, in some FDDI networks, link errors are detected by the physical layer of a station that receives data on the link. When a link error is detected, the physical layer generates an interrupt to a microprocessor controlling the SMT (Station Management) layer. The interrupts allow the microprocessor to keep track of the link errors. On each such interrupt, the microprocessor recomputes the link error rate and compares it to the threshold. If the link error rate exceeds the threshold, the microprocessor reconfigures the network to take the link out. 
     In high speed transmission networks, a station receives many bits per second (125 Mbits/second in the FDDI network). Hence, if even a small proportion of the received bits is erroneous, computing the link error rate and comparing it to a threshold may take a significant amount of the microprocessor time. The microprocessor becomes detracted from other tasks such as controlling the station MAC layer (MAC stands for Media Access Control) and other layers. It is therefore desirable to make link error monitoring more efficient so as to place less burden on the microprocessor. 
     SUMMARY OF THE INVENTION 
     The present invention provides in some embodiments an efficient link error monitor apparatus and methods that completely relieve the microprocessor from computing the link error rate and comparing it to a threshold. The link error rate computation and the comparison are performed by the physical layer. The physical layer generates an interrupt to the microprocessor only if a threshold is crossed and a microprocessor action may be required. 
     The physical layer includes a number of registers that can be conveniently written by the microprocessor to initialize the link error monitoring operation. 
     The physical layer computes the link error rate using a simply algorithm requiring only one register. On reset, this register is initialized to a positive number based on a link error rate prediction. Thus the register provides a realistic link error rate estimate even before any link errors are detected. 
     This initial estimate is also used in recomputing the link error rate when link errors are detected, but the initial estimate is given progressively smaller weight as more link errors are detected. The initial estimate thus helps obtain a realistic link error rate estimate when only few link errors have been detected. 
     Other features and advantages of the invention are described below. The invention is defined by the appended claims. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a partial block diagram of a communication station illustrating the use of the present invention. 
     FIG. 2 is a partial block diagram of a physical layer controller according to the present invention. 
     FIG. 3 illustrates a Link Event Monitor Event Register of the controller of FIG. 2. 
     FIGS. 4, 5a and 5b are pseudo-code representations of portions of the logic circuitry of the controller of FIG. 2. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 is a block diagram of a portion of communication station 110 such as, for example, an FDDI communication station. Physical layer controller 120 transmits data to and receives data from a PMD (physical media dependent) transceiver. The transceiver, not shown, is connected to a transmission medium such as a fiber optics cable. Physical layer controller 120 performs the FDDI form 5 bit/4 bit data encoding and decoding, serial/parallel data conversion, clock recovery, clock generation, and link error monitoring. 
     Controller 120 is connected to isochronous MAC (Media Access Control) 130 and packet MAC 140. MACs 130 and 140 control access to the communication medium and perform address recognition, address generation, and verification of frame check sequences. The two MACs are connected to a higher level data layer (not shown). Software-operated microprocessor 150 controls the two MACs and the physical layer controller 120. See FDDI Physical Layer Protocol (PHY-2) American National Standard (ANSI X3.231-199X) incorporated herein by reference. See also Fiber Distributed Data Interface Designer&#39;s Guide (National Semiconductor Corporation of Sunnyvale, Calif., 1990) incorporated herein by reference. 
     Microprocessor 150 communicates with MACs 130, 140 and controller 120 through control bus (CBUS) 160. 
     Controller 120 detects link errors on the link on which the controller receivers data through the PMD transceiver. If the link error rate exceeds a predetermined &#34;cutoff&#34; threshold, the FDDI network is reconfigured to take the link out of the network. If the link error rate decreases and falls below a &#34;pass&#34; threshold, the link is re-inserted into the network. (Of note, when the link is taken out of an FDDI network, a continuous idle pattern is transmitted on the link which allows controller 120 to continue measuring the error rate on the link.) 
     In order to relieve the microprocessor from computing the link error rate and comparing it with the thresholds, controller 120 performs these tasks itself. Controller 120 interrupts the microprocessor only when the link error rate crosses one of the threshold under certain conditions that may require microprocessor intervention. These conditions are described below. The microprocessor and CBUS overhead are therefore reduced. 
     FIG. 2 is a partial block diagram of one embodiment of controller 120. Such a controller is described, for example, in DP83258/9 PLAYER-2S™ Enhanced Physical Layer Controller (National Semiconductor Corporation, 1992) incorporated herein by reference. In controller 120, phaser 210 recovers the 125 megahertz clock from the incoming data stream from the PMD transceiver. Phaser 210 generates a 12.5 MHz clock for synchronizing the controller operation. 
     Receiver 214 performs serial-to-parallel conversion of the incoming data and detects link errors. The receiver performs also other operations as described in the aforementioned document DP83258/9 PLAYER-2S™ Enhanced Physical Layer Controller. 
     Hybrid Multiplexer (HMUX) 220 performs the functions of an HMUX slave device as defined in the Hybrid Ring Control American National Standard (ANSI X3.186-199X) incorporated herein by reference. 
     Configuration switch 224 allows switching the transmitted and received data paths between one or more physical layer controllers and MACs. 
     Transmitter 230 performs serial-to-parallel data conversion and other operations described in the aforementioned document DP83258/9 PLAYER-2S™ Enhanced Physical Layer Controller. 
     Link error monitor (LEM) 234 includes threshold registers for representing link error rate thresholds. The use of such thresholds is described for example, in the FDDI station management American National Standard (ANSI X3.229-199X) incorporated herein by reference. LEM 234 also includes circuitry for continuously monitoring the link error rate and comparing it with the thresholds. The comparison is performed on every cycle of the 12.5 MHz clock. An interrupt to microprocessor 150 is generated whenever a threshold is crossed under certain conditions described below. 
     The threshold registers are writable by microprocessor 150 through CBUS 160 and CBUS control 232. CBUS 160 includes address and data buses thus providing a simple interface to LEM 234. 
     The link error rate (LER) is defined as the ratio of the number of error bits to the total number of bits received. Under the ANSI FDDI PMD standard, the maximum tolerable LER is 2.5×10 -10 . Thus in some applications, the pass threshold is 2.5×10 -10  or lower. 
     As is known, at the transmission speed of 125 Mbits/second, ##EQU1## where N is the number of link error bits in a time interval of T seconds. If T is the interval between successive error bits, then N=1. 
     LEM 234 estimates LER by computing T as a weighted average time interval AveInt between link errors. The highest weight is given to the most recent time interval between errors. More particularly, if i 0 , i 1  . . . i n  are successive time intervals between errors, then ##EQU2## 
     Of note, the infinite sum of all the weights is equal to 1, i.e.,: ##EQU3## 
     Controller 120 computers AveInt and the intervals I 0 , . . . i n  in cycles of the 12.5 MHz clock, that is, in the units of 80 ns. Using these units, we obtain from formula (1): ##EQU4## 
     In some embodiments, controller 120 does not detect all errors, and thus the actual LER can be higher than computer by controller 120. For example, in some FDDI embodiments, controller 120 detects only the following errors. In the ALS or CLS line states, a violation symbol is detected in the upper or lower nibble. In the ILS state, an error is detected if a symbol in either nibble is not Q, H or I and if successive nibbles do not form JK (the starting delimiter). 
     Controller 120 computers AveInt in an internal 48-bit register LERC. The logic equations for the controller 120 LEM circuitry are shown in Appendix A attached hereto. The equations are written in a language RTL easily understandable to persons skilled in the art. In RTL, assignments denoted by the symbol &#34;=&#34; are asynchronous assignments performed during the current clock cycle, and assignments denoted by &#34;←&#34; are synchronous assignments performed on the next rising edge of the clock. The clock is the 12.5 MHz clock generated by phaser 210. 
     LEM 234 includes register CLEIR holding the binary exponent of the number in register LERC. That is, 
     
         LERC=2.sup.CLEIR 
    
     Register CLEIR is designated as &#34;lei --  bexp&#34; in Appendix A. Register CLEIR is an 8-bit register. Its two most significant bits are unused. Register CLEIR is accessible from CBUS 160 which includes an 8-bit data bus. 
     LEM 234 computes the value of register CLEIR by determining the most significant &#34;1&#34; bit in register LERC. The mantissa of register LERC is discarded. 
     The following Table 1 shows the LEM registers accessible from the CBUS. Each register is an 8-bit register. CBUS 160 includes an address bus for addressing the registers. Register LERC is not accessible from CBUS 160 in some embodiments. 
     
                       TABLE 1______________________________________Register   Description______________________________________CLEIR   Binary exponent of the interval between errors. The   interval is stored in LERC.LECUTR  Binary exponent of the cutoff threshold time interval   between errors.LEPASR  Binary exponent of the pass threshold time interval   between errors.LEALR   Binary exponent of the alarm threshold time interval   between errors.LEMER   LEM event register.LEMMR   LEM mask register.______________________________________ 
    
     Registers LECUTR, LEPASR, LEALR represent, respectively, the cutoff, pass, and alarm thresholds, The alarm threshold in a typical application is set between the cutoff and pass thresholds. When the alarm threshold is exceeded under certain conditions described below, an interrupt is generated to microprocessor 150 to alarm the user of a high error rate. 
     Each register LECUTR, LEPASR, LEALR is written with a binary exponent of the time-between-errors interval corresponding to the respective threshold. If LER --  THRESH is a link error rate threshold, equation (3) above provides: ##EQU5## 
     In some embodiments, when controller 120 is reset, registers LECUTR, LEPASR, LEALR are initialized, respectively, to the binary exponents of times-between-errors corresponding to the LER --  THRESH values 10 -7 , 2.5×10 -10 , 10 -9 . 
     The LER cutoff threshold is exceeded when the value in register CLEIR is below the value in register LECUTR. When the cutoff threshold is exceeded, controller 120 sets an internal flag LEM --  cutoff, signaling a Cutoff event. When register CLEIR has a value less than the value of register LEALR, controller 120 sets an internal flag LEM --  alarm, signaling an Alarm event. When the value of register CLEIR is equal to or greater than the value of register LEPASR, controller 120 sets an internal flag LEM --  pass, signaling a Pass event. 
     To avoid multiple interrupts when the link error rate is hovering around a threshold, the thresholds are &#34;armed&#34; so as to provide a hysteresis as follows. When the Cutoff event occurs, the pass threshold is armed and the alarm and cutoff thresholds are unarmed. Thus after the LER cutoff threshold is exceeded, cutoff and alarm threshold crossing does not generate an interrupt until the pass threshold is reached. When the Pass event occurs, the pass threshold is unarmed and the cutoff and alarm thresholds are armed so that respected occurrences of the Pass event will not generate an interrupt until the Cutoff or Alarm event occurs. When the Alarm event occurs, the pass and cutoff thresholds are armed and the alarm threshold is unarmed. 
     An armed event (i.e., crossing of an armed threshold) caused a bit to be set in LEM event register LEMER illustrated in FIG. 3. The bits of register LEMER are described in the following Table 2. 
     
                       TABLE 2______________________________________Bit  Symbol   Description______________________________________D7   LEMAE    LEM ALARM EVENT: This bit is set when an         armed Alarm event occurs.D6   LEMCE    LEM CUTOFF EVENT: This bit is set when         an armed Cutoff event occurs.D5   LEMPE    LEM PASS EVENT: This bit is set when an         armed Pass event occurs.D4   LEMDE    LEM DETECT EVENT: This bit is set when a         Link Error Event is detected. A Link Error         Event is an occurrence of a predetermined         number of errors as defined by an LEM register         writable by the microprocessor. See, for         example, the description of the device         PLAYER+ ™ in Desktop FDDI Handbook         (National Semiconductor Corporation of Sunny-         vale, California, 1992) incorporated herein by         reference. This bit may be used in implementa-         tions that want to time-stamp link errors and use         an alternate LER algorithm.D3   LEMTE    LEM THRESHOLD EVENT: This bit is set         when the specified threshold number of events is         reached. This bit may be used in implementations         that use an alternate LER algorithm.D2:0 res      Reserved for future use.______________________________________ 
    
     When any one of bits LEMAE, LEMCE, LEMPE is set, controller 120 generates an interrupt to microprocessor 150 (unless the interrupt is masked as described below). Microprocessor 150 can then read register LEMER to determiner which event has occurred. The microprocessor can then write register LEMER to reset the register. When a bit of register LEMER becomes set, microprocessor 150 is prevented by controller 120 from writing the register LEMER until the microprocessor reads the register. This prevents the microprocessor from overwriting the register LEMER before detecting that a register bit has been set. 
     LEM mask register LEMMR has one bit for each bit of register LEMER to mask the corresponding interrupt. For example, if bit D7 of mask register LEMMR is reset, an interrupt is not generated when bit D7 of register LEMER is set. 
     Bits D2:0 of register LEMMR are reserved for future use just as bits D2:0 of register LEMER. 
     FIG. 4 illustrates in pseudo-code some logic operations performed by LEM 234 on reset. Register LERC is initialized to the value of the 48-bit register PASEXP. Register PASEXP holds the pass threshold time interval between errors, that is, 
     
         PASEXP=2.sup.LEPASR                                        (4) 
    
     Register LERC is initialized to PASEXP rather than to zero for the following reasons. The initial value of LERC corresponds to the time interval i 0  of formula (2). Interval i 0  is given the weight of 1/2 n+1  where n+1 is the number of detected link errors. Thus when the number of detected errors is small, the interval i 0  is given a large weight. If register LERC were initialized to zero, register LERC would not provide as accurate estimate of the link error rate until a large number of errors were received, except for systems where the link error rate is very large, that is, where the average time interval between link errors is close to zero. Since in most networks the average time interval is closer to the pass threshold time interval than to zero, initializing the register LERC to the pass threshold time interval allows obtaining a realistic estimate of the actual link error rate immediately upon reset or at least after detecting but a small number of link errors. 
     In some embodiments register LERC is initialized on reset to another positive value. This value is greater in some embodiments then the cutoff threshold time interval between errors. In some embodiments, this value is greater than the alarm threshold time interval between errors. 
     As shown in FIG. 4, register CLEIR receives the binary exponent of the value in register LERC. 
     Flag arm --  pass is reset (receives the value zero) so that the Pass event is unarmed. Flags arm --  cutoff and arm --  alarm are set so that the Cutoff and Alarm events are armed. 
     FIGS. 5a, 5b show in pseudo-code some logic operations performed by LEM 234 after reset on every rising edge of the 12.5 MHz clock. If a new link error has not been detected, register LERC is incremented, and if a new link error has been detected, the contents of register LERC are shifted right to divide the register by two. The reason for these operations is as follows. If the value AveInt after the receipt of n+1 errors is denoted AveInt n , then formula (2) above shows that: 
     
         AveInt.sub.n =1/2(i.sub.n +AveInt.sub.n-1)                 (5) 
    
     When a new link error is not detected, register LERC is incremented so that register LERC during an error-free interval i n  becomes increased by i n . When a new error is detected, register LERC is divided by two to obtain AveInt n . 
     As shown in FIG. 5a, register CLEIR receives the binary exponent of register LERC. 
     Register CLEIR is compared with the three thresholds to determine whether a bit should be set in LEM event register LEMER. If the Alarm event is armed (arm --  alarm=1) and the value of register CLEIR is smaller than the value of register LEALR, then (1) the LEMAE bit of the LEM event register is set indicating the Alarm event; (2) the Pass and Cutoff events are armed (flags arm --  pass and arm --  cutoff are set); and (3) the Alarm event is unarmed (flag arm --  alarm is reset). If the Cutoff event is armed and CLEIR is less than LECUTR, then the LEMCE bit of register LEMER is set, the Pass event is armed and the Cutoff and Alarm events are unarmed. If the Pass event is armed and register CLEIR is greater than or equal to register LEPASR, then the LEMPE bit of register LEMER is set, the Pass event is unarmed and the Cutoff and Alarm events are armed. An interrupt is then generated in accordance with the values of registers LEMER and LEMMR. 
     As is seen from the above, LEM 234 determines whether the link error rate crosses a threshold, and if the interrupts are not masked, LEM 234 interrupts the microprocessor when: (1) the Pass event is armed and the link error rate LER crosses the pass threshold in the downward direction, that is, LER changes from a value larger than the pass threshold to a value equal to or below the pass threshold; (2) the Alarm event is armed and LER crosses the alarm threshold in the upward direction; or (3) the Cutoff event is armed and LER crosses the cutoff threshold in the upward direction. 
     While the invention has been illustrated with respect to the embodiments described above, other embodiments and variations are within the scope of the invention. In particular, the invention is not limited to register sizes or bus widths. Further, the invention is not limited to any particular clock rate or to any particular operations being performed on a particular edge or a particular cycle of a particular clock. In some embodiments, the Pass event is defined as the event that LER is less than the pass threshold rather than less than or equal to the pass threshold. In some embodiments, the Alarm event is defined as the event that LER is greater than or equal to the alarm threshold. In some embodiments, the Cutoff event is defined as the event that LER is greater than or equal to the cutoff threshold. Other embodiments and variations are within the scope of the invention as defined by the following claims. ##SPC1##