EP0089159B1 - Timed token ring with multiple priorities - Google Patents

Timed token ring with multiple priorities Download PDF

Info

Publication number
EP0089159B1
EP0089159B1 EP83301185A EP83301185A EP0089159B1 EP 0089159 B1 EP0089159 B1 EP 0089159B1 EP 83301185 A EP83301185 A EP 83301185A EP 83301185 A EP83301185 A EP 83301185A EP 0089159 B1 EP0089159 B1 EP 0089159B1
Authority
EP
European Patent Office
Prior art keywords
loop
token
class
data
station
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
EP83301185A
Other languages
German (de)
French (fr)
Other versions
EP0089159A1 (en
Inventor
Robert M. Grow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of EP0089159A1 publication Critical patent/EP0089159A1/en
Application granted granted Critical
Publication of EP0089159B1 publication Critical patent/EP0089159B1/en
Expired legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion

Definitions

  • the present invention relates in general to a system and method for communicating information between distributed stations. More particularly, the present invention relates to a timed token loop which provides three or more classes of service with a priority relationship between classes.
  • the three classes of service provided allow guaranteed bandwidth, interactive and batch services. These classes are implemented by timing the rotation time of a write token to measure instantaneous load and limiting transmission of information by class of service and the observed write token rotation time.
  • Circuit switched communication as provided by PBXs is efficient for handling voice traffic, but is limited by the maximum bandwidth available for data traffic.
  • the inefficiencies inherent in using circuit switched service for communication of bursty data traffic are being solved for low data rate devices through submultiplexing in the PBX.
  • local area networks have been optimized for efficient transmission of data at high burst rates with little consideration for handling of digital voice.
  • Broadband systems provide the capability for carrying both voice and data over the same media through separate logical networks for voice and data on the same physcal media.
  • This hybrid approach solves some problems by using a single media, but does not allow the flexibility given by integration of data on the same logical network.
  • the Cambridge ring which is based on the work of Pierce, is more adapted to a circuit type of service. In such a system, you essentially have a boxcar (which corresponds to available bandwidth) into which data may be inputted or extracted. A fixed allocation procedure may be implemented which reserves the boxcar for a station to use.
  • the drawback of the Cambridge ring is that there's no simple or obvious way to use the boxcar when its not being used by the station that has a fixed reservation on it.
  • a monitor in the ring seizes and suppresses the token for the transmission of asynchronous data and substitutes instead a token for the transmission of synchronous (or Class 1) data. Thereafter, each station in the ring which has synchronous (or Class 1) material transmits its Class 1 material around the ring similarly to the manner of transmitting asynchronous (or Class 2) data. When the monitor receives back the synchronous token it once again regenerates the asynchronous token which it sends around the loop.
  • the present invention seeks to provide an improvement over the disclosed system by providing that the stations in the token controlled loop are self- controlling and do not require the presence of an additional monitor.
  • interruption to the loop at regular interals is not required by virtue of the individual stations in the loop guaranteeing a minimum bandwidth (ALLOC) to synchronous (or Class 1) traffic, the bandwidth allocated to Class 1 traffic during periods of light load on the ring exceeding this minimum value if required.
  • ALLOC minimum bandwidth
  • a lost token is recovered by intervention of the central monitor which looks for through-passing tokens and, if it sees none for more than a predetermined period, clears the ring and then issues a new free token.
  • no such central monitor is required, each station in the ring checking for the presence of the token and the first station to fail to detect a token within a predetermined time sending out a recovery token. Further, in the present invention the recovery token is eventually returned to that station having . either the highest or the lowest designating address, the eventual destination station of the recovery token generating a new write token.
  • the present invention consists in a method of allocating bandwidth in a loop communications network, said network including a loop-connected set of stations providing data flow unidirectionally from one of said stations to the next, each of said stations being operable to pass data through itself along said loop, to extract data from said loop and to inject data into said loop, each of said stations having associated therewith at least one identifier address, each of said stations being assigned in a Class 1 priority for synchronous data, a Class 2 priority for asynchronous data or a mixture of Class 1 and Class 2 priorities, each of said stations being operable to become the source of new data into said network in response to the receipt of a write token from that one station next earlier in said loop and each station being operable, having completed provision of data to said network, being operable to pass said write token to that one of said stations next later in said loop, said method being characterised by including the steps of; each of said stations measuring the amount of time required for said write token to pass around said loop and return to said each of said stations, and, each of said stations having
  • the present invention consists in a station for use in a loop communication network, said network including a set of stations providing data flow unidirectionally from one station to another around a loop, said station comprising; a through-passing data path operable to receive data from said loop and operable to pass the received data unaltered back onto said loop; data extraction means operable to extract data from said loop; data injection means operable to inject data onto said loop; address recognition logic operable to compare an incoming destination address from said loop with at least one identifier address and to provide output indicative of the match found therebetween to control said through-passing data path and said data extraction means; transmit priority logic operable to control provision to said loop of either Class 1 priority data requring a guaranteed bandwidth, or Class 2 priority data not requiring a guaranteed bandwidth, or a mixture of data having both said Class 1 priority and said Class 2 priority; a token detector operable to detect receipt of a write token from said loop and operable to provide indication thereof to said data injection means to cause said data injection means to provide any available data
  • a timed token protocol is provided to allow for the integration of three or more classes of service on the same loop communications network.
  • the highest class of service (Class 1) is for information which requires a guarantee of bandwidth and/or deterministic delay and jitter characteristics. This. class of service is used for information that is represented in the time domain (e.g., pulse code modulated voice), or where minimal queuing delay is important (e.g., process control).
  • the second class of information (Class 2) is that which is non-real time, but of an interactive nature. Traditional data communications between terminals and computers falls into this classification. That is, Class 2 information requires some minimum throughput, but the absolute guarantee of bandwidth is not a requirement.
  • the third class of service (Class 3) is for batch information where no minimum throughput is required and transmission of information may be delayed until network load is light.
  • the timing of a write token is the mechanism used for measuring instantaneous load.
  • the measurement of load allows for the establishment of the three classes of service.
  • Each class of service uses a different set of rules for determining when information may be transmitted.
  • TTRT target token rotation time
  • the right to service new information into the network is controlled by passing a privilege to transmit (the write token) from one station to another.
  • the passing of the write token is controlled by the communication protocol.
  • Class 1 (C1) information may be transmitted upon every write token reception.
  • the amount of C1 information transmitted with each write token reception is limited by a bandwidth allocation procedure to be explained below.
  • Other classes of information control their transmission by using a timer for each class.
  • the timer for Class 2 is the target token rotation time minus the time for transmission of the maximum length frame (TTRT - MAXFRAME) (or the Class 2 target time).
  • the target time for Class 3 would be some percentage of the target token rotation time related to load minus the maximum sized frame transmission time; (e.g., .6 x TTRT - MAXFRAME).
  • Stations of Class 2 or lower priority control their transmission of information by timing between arrivals of the write token.
  • priority class timers are reset to their initial values if no information is to be transmitted, and the write token is passed on unimpeded. If, at arrival of the write token, timers have not decremented to zero and information is queued for transmission, queued information may be transmitted for any priority class (other than Class 1) with a non-zero timer value.
  • a station which simultaneously services multiple classes of information transmits lowest priority first and highest priority last. For example, in a station which has Class 1, Class 2 and Class 3 traffic, if when the write token arrives the Class 3 (C3) timer has not decremented to zero, the residual value in the C3 timer is loaded into a token holding timer, the C3 timer is reset, and all timers continue to decrement. New frames may be sourced at C3 priority level onto the ring as long as the token holding timer has not decremented to zero. When the holding timer has decremented to zero, the current frame in transmission is completed. At that time the residual in the Class 2 (C2) timer is loaded into the holding timer and the C2 timer is reinitialized.
  • C3 Class 3
  • C2 information then proceeds as described for C3.
  • Class 1 (C1) information is then transmitted.
  • the write token is transmitted after all the allowed C1 frames. If at write token arrival the C3 timer had decremented to zero, the protocol begins with service to Class 2. If both the C3 and C2 timers had decremented to zero, transmission begins with C1.
  • the timer value for Class 3 would be less than the available bandwidth for Class 1 (C3TIMER ⁇ ALLOC). In such case, no minimum bandwidth is guaranteed for Class 3. If the C3 timer is greater than allocatable bandwidth, some minimum bandwidth has been guaranteed for Class 2 or Class 3.
  • Class 1 service is that of a minimum guaranteed bandwidth, since the guarantee is for each Class 1 station that has received a portion of the allocatable bandwidth to be able to transmit some fixed amount of information every rotation of the write token. If the write token is rotating faster than the target token rotation time, the bandwidth usable by Class 1 would therefore be greater than the guaranteed minimum.
  • Class 2 devices have a pool of bandwidth guaranteed to them which is shared fairly by all devices designed to use that quality of service.
  • the timing of the write token allows any unused Class 1 bandwidth to be used by lower priority stations. This includes both allocated and unused bandwidth as well as unallocated Class 1 bandwidth.
  • Class 3 priority has no guaranteed throughput, but would only transmit when the load falls below the arbitrary percentage established for that class.
  • the mechanism for allocation of bandwidth for Class 1 service is to use a special token which is transmitted around the loop.
  • the write token is captured and a bandwidth allocation token is transmitted.
  • Each station on the loop takes this bandwidth allocation token, adds to it the amount of bandwidth which is currently allocated by that station for Class 1, and forwards the allocation token to the next station.
  • the bandwidth allocation token returns to the station attempting to allocate bandwidth, the write token is regenrated and passed on to the next station. If the current allocation of bandwidth returned in the bandwidth allocation token plus the desired allocation is less than the allocatable bandwidth, then the allocation is granted. The bandwidth desired is then added to the total allocated for that station.
  • the protocol of the present invention is designed to operate in a token controlled loop (or ring) communications network.
  • a token controlled loop or ring
  • the protocol of the present invention may be implemented either on a physical loop or on a logical loop (or ring) superimposed on a physical bus.
  • Such a loop communications network may utilize a single loop (or ring) architecture or one incorporating a second redundant loop with network components that route the data around any network faults.
  • the following description will consider the implementation of the present invention in a single loop architecture. However, those skilled in the art will appreciate that the present invention may be readily adapted for use in loop architecture employing a second redundant loop.
  • the timed token protocol of the present invention allows for the integration of different classes of service on the same communications network.
  • the preferred embodiment of the protocol supports three basic priority classes of service.
  • the first class (Class 1) is for that type of information which requires a guarantee of bandwidth and deterministic delay and jitter characteristics.
  • This class of service is used for information which is represented in the time domain.
  • Class 1 information may include real- time audio applications such as pulse code modulated (PCM) voice.
  • PCM pulse code modulated
  • the second priority class of information (Class 2) supports non-real time applications requiring interactive response. Typical of such an application is traditional data communications between terminals and a computer. Thus, in this class some minimum throughput is required, but an absolute guarantee of bandwidth is not a requirement.
  • This class of traffic is sometimes referred to as asynchronous.
  • the third class of service (Class 3) is that of batch traffic which requires no minimum throughput, but can be transported through the network when load is light. Background communications such as electronic mail or file transfers are typical applications where Class 3 service would be appropriate.
  • the protocol of the present invention allows for the creation of additional priorities within this class of service for batch traffic. Thus, Class 4 .... Class N, all subclasses of Class 3, may be established.
  • the timing of a write token is the mechanism used for measuring instantaneous load on the loop. This measurement of load allows for the establishment of the classes of service discussed above. Each class of service uses a different set of rules for determining when information may be transmitted.
  • the speed at which the write token rotates around the loop determines the rate at which the network services each station, the network's queing delay, and the bandwidth lost to passing the write token from station to station.
  • An initial value called the target token rotation time (TTRT) must be selected for the network.
  • the loop protocols guarantee that the short-term average rotation time will vary from the minimum orbit time with no load, to the target token rotation time (TTRT) under full load conditions.
  • the TTRT is important since it defines the maximum average write token rotation time. Thus, under 100% offered load, the write token will revolve at the TTRT.
  • the TTRT is loaded into each station during network initialization.
  • the TTRT is related to the rate at which devices operating at a Class 1 priority require service. For Class 1 priority, information may be transmitted once every write token arrival. Thus, the protocol guarantees that Class 1 (C1) information may be sent at least once every TTRT for each Class 1 station on the loop that has received a guarantee of bandwidth. This means that the TTRT determines the guaranteed service rate for C1 transmissions.
  • the TTRT is related to the rate at which devices operating at a Class 1 priority require service. For example, if service is only required every eight milliseconds, a 64K bits per second information rate would be transmitted using a packet size of 64 bytes (or 512 bits). Thus, the time to accumulate 512 bits at a rate of 64K bits/second is 8 milliseconds. If the information generation rate was 32K bits per second instead of 64K bits per second (bps), a packet size of 32 bytes (or 256 bits) would be used with this eight millisecond TTRT. Similarly, a chosen service time of four milliseconds would require 32 bytes (or 256 bits) per packet to support a 64k bps information rate, or 16 bytes (or 128 bits) per packet for a 32K bps information rate.
  • the value used for the target token rotation time must be less than or equal to the selected serviced time in order to guarantee that each station is serviced within the selected service time. If error free bandwidth is desired for Class 1, the error rate of the media must be taken into consideration. In such case, the target token rotation time would be correspondingly less than the rate at which packets are produced.
  • the right to source new information into the network of the present invention is controlled by passing a privilege to transmit (or write token) from one station to another.
  • the passing of the write token is controlled by the communication protocol.
  • FIG. 1 shows a single loop communications system as employed in the present invention.
  • station A 10 passes a write token to station B 12
  • station B 12 passes the write token to station C 14 ....
  • station Z 16 passes the write token to station A 10, and the cycle is thereafter repeated.
  • Each station on the loop may interconnect devices for handling one or more priority classes of data.
  • a single station may handle classes 1 or 2 or 3, or any combination of the three classes.
  • Class 1 information may be transmitted upon every write token reception by a Class 1 station.
  • the amount of C1 information that a Class 1 station may transmit upon each write token reception is limited by a bandwidth allocation procedure to be explained below.
  • Other classes of information transmission are controlled by using a timer for each class, each station capable of transmitting non-Class 1 information must have a timer for each non-class 1 priority of information it is capable of transmitting.
  • the initial value (or target time) for each Class 2 timer is set to the target token rotation time (TTRT) minus the time for transmission of the maximum length frame (TTRT-MAXFRAME).
  • TTRT target token rotation time
  • MAXFRAME is dependent on the quality of crystals used in the network, the amount of padding inserted between frames, the coding and synchronization system utilized, and other characteristics of the network. If the network uses a central clock, the maximum length frame could be arbitrarily long. In the preferred embodiment of the invention, the maximum length frame has been chosen to be 1024 bytes in the information field.
  • the timer value for Class 2 is chosen to assure efficient network utilization and prevent starvation of stations.
  • the timer value for Class 2 is not TTRT-MAXFRAME, the network will give smaller frames a greater probability of transmission. This would tend to encourage inefficient network utilization since the overhead to information ratio is higher for smaller frames. It also might prevent some Class 2 stations from transmitting at all.
  • the target time for every Class 3 timer is set to some percentage of the target token rotation time minus the maximum sized frame transmission time.
  • the target time for Class 3 might be 0.6 X TTRT-MAXFRAME.
  • the percentage of the TTRT used in the calculation of the Class 3 target time is related to the load on the network.
  • each timer within the same Class is set to the same initial value, the value being set when the network is configured.
  • the timer value for any other priorities of batch information would follow the same pattern as used for Class 3, with each priority using a smaller percentage of TTRT for its initial timer value. For example, if a Class 4 priority was included, the initial Class 4 timer vlaue (or target time) might be 0.4 X TTRT- MAXFRAME.
  • Stations of Class 2 or lower priority control their transmission of information by timing the write token from arrival to arrival. "Each time the write token arrives at a station, priority class timers are reset to their initial values. If no information is to be transmitted, the write token is passed back onto the loop unimpeded. If, at arrival of the write token, the timers have not decremented to zero and information is queued for transmission, queued information may be transmitted for any priority class (other than Class 1) whose corresponding timer has a non-zero value. Thus, a station can transmit Class 2 (or Class 3) information as long as the time since the previous write token arrival is less than the Class 2 (or Class 3) target time. If the write token arrives later than a Class 2 (or Class 3) target time since its previous arrival, the station must refrain from transmitting any Class 2 (or Class 3) information onto the loop.
  • a station which simultaneously services multiple classes of information transmits lowest priority first and highest priority last. For example, in a station which has Class 1, Class 2 and Class 3 traffic, when the write token arrives, if the timer for Class 3 has not decremented to zero, the residual value in the Class 3 timer is loaded into a token holding timer, the Class 3 timer is simultaneously reset to its initial value, and the Class 3 timer and token holding timer immediately begin to decrement. Note that during this time the Class 2 timer and all timers in other stations are continuously decrementing. Multiple new frames may be sourced at Class 3 priority level onto the loop as long as the token holding timer has not decremented to zero.
  • the station After Class 2 transmission is ended, the station next transmits Class 1 information. Details of when Class 1 information may be transmitted will be discussed below. After all of the allowed Class 1 frames have been transmitted, the write token is retransmitted back onto the loop.
  • a method of accumulating lateness is preferred.
  • Such a method may be optionally implemented in the present invention as follows.
  • the timer for a class that transmitted decrements to zero it will cause a class lateness register (not shown) to increment until write token arrival. This lateness must be removed before transmission can occur for that class again.
  • the measure of token earliness (the residual of the target timer normally transferred to the token holding timer) is subtracted from the lateness register. This continues until the lateness has been compensated for by earliness. Then transmission can resume either on the same rotation that lateness is completely removed or on the next rotation after lateness is completely removed.
  • the amount of Class 1 information that may be transmitted upon each write token reception is limited by a value representing allocatable bandwidth.
  • This value, ALLOC is less than the target token rotation time.
  • the amount that ALLOC differs from the target token rotation time is dependent on three factors. These three factors are the amount of bandwidth to be allocated for Class 2 devices to guarantee minimum throughput (C2POOL), the latency (LATEN) of the physical or logical ring, and any bandwidth for system administration (SYSADM).
  • System ad- minstration would include functions required to construct a logical loop or for bandwidth allocation procedures.
  • Latency is the amount of time it takes for the token to go around the loop with zero load.
  • ALLOC allocatable bandwidth
  • C2POOL Class 2 pool
  • LATEN latency
  • SYSADM system administration
  • Class 1 service is that of a minimum guaranteed bandwidth.
  • Each Class 1 station that has received a portion of the allocatable bandwidth (ALLOC) guarantees it will be able to transmit some fixed amount of information corresponding to the size of its allocation for every rotation of the write token. Thus, if the write token is rotating faster than the target token rotation time, the bandwidth usable by Class 1 stations would be greater than the guaranteed minimum bandwidth available for Class 1 information.
  • ALLOC allocatable bandwidth
  • the pool of bandwidth guaranteed to Class 2 stations is shared by all stations designed to use Class 2 service.
  • the timing of the write token allows any unused Class 1 bandwidth to be used by lower priority stations. This is accomplished by lower priority stations timing the write token and measuring load as previously described.
  • the token holding timer basically says how much bandwidth was not used on the last rotation. Note that this has no bearing on what is allocated or what was even allocatable; it is just what was used, and so by measuring the current load (via the C2 and C3 timers) lower priority stations are able to use that unused Class 1 bandwidth which is either not allocated to Class 1 or allocated and not used.
  • the transmission algorithm used by Class 2 and 3 stations does not even look at ALLOC; only the allocation algorithm for Class 1 looks at ALLOC.
  • Class 3 and lower priority stations have no guaranteed pool of bandwidth available to them and hence have no guaranteed throughput. Thus, they may only transmit when the load falls below the arbitrary percentage established for that class. As previously discussed, Class 3 and lower priority stations make this determination based on the target time (or timer value) established for that class. For example, if the Class 2 target time is 8 milliseconds and the class 3 target time equated to 6 milliseconds, then whenever Class 2 load fell below 75 percent Class 3 would be able to transmit.
  • a Class 1 station may want to increase the amount of Class 1 bandwidth allocated to it. For example, if a device such as a PBX is attached to a station, each time you establish a call or terminate a call the station would want to change the amount of allocated Class 1 bandwidth for that station to reflect the current load.
  • the mechanism used for allocation of bandwidth for Class 1 service is to use a special token which is transmitted around the loop.
  • This bandwidth allocation token includes a field for accumulating the allocated bandwidth of all stations (ALLOCATED). This field is initialized to the current allocation of the station transmitting the bandwidth allocation token.
  • ALLOCATED the allocated bandwidth of all stations
  • Each Class 1 station on the loop takes the bandwidth allocation token, adds to the allocated field (ALLOCATED) the amount of bandwidth which is currently allocated by that station to Class 1, and forwards the bandwidth allocation token to the next station.
  • the bandwidth allocation token returns to the station attempting to allocate bandwidth, the write token is regenerated and passed on to the next station.
  • Station C compares the value in the allocation field ALLOCATED against the loop capacity of 12 (as specified by ALLOC). Since there is a difference of 3 units between the value of the ALLOCATED field and ALLOC, station C may allocate up to three additional units of Class 1 bandwidth. If C was trying to allocate only one additional unit, it would change its current allocation register from 0 to 1. Subsequently, if station C received a bandwidth allocation token, it would add 1 unit to the ALLOCATED field; viz., its current allocation. Note that when station C is finished using its 1 unit of allocated Class 1 bandwidth, it will change its current allocation register back to 0 units. Similarly, when other Class 1 stations no longer require part or all of their currently allocated bandwidth, they will also reduce the value in their current allocation register accordingly.
  • a Class 1 station Under one particular failure condition it is possible for a Class 1 station to receive a bandwidth allocation token wherein the value in the ALLOCATED field exceeds the total allocatable Class 1 bandwidth (ALLOC).
  • ALLOC total allocatable Class 1 bandwidth
  • FIG. 4A A description of the loopback mechanism is contained in U.S. Patent 4,190,821, issued to Thomas R. Woodward on Feb. 26, 1980.
  • station C wanted to allocate additional bandwidth.
  • the ALLOCATED field would specify 11 units.
  • station A would detect that the currently allocated Class 1 bandwidth exceeded ALLOC, and would respond by terminating all sessions since it could only have a current allocation of 1 unit. Since station A terminated all sessions, it would change its current allocation to 0 and when the allocation token arrived at station B the ALLOCATED field would still specify 11 units.
  • station A could deallocate 1 unit of bandwidth and maintain a portion of its sessions. In such case, station A would add 1 unit to the ALLOCATED field of the allocation token. Thus, when the allocation token reached station B, the ALLOCATED field would specify 12 units. Station B would detect that the currently allocated Class 1 bandwidth exceeded ALLOC (if station B maintained its current allocation), and respond by terminating all of its sessions since it could no longer have a current allocation of 1 unit. Thus when the allocation token arrived at station C, the ALLOCATED field would specify 12 units, and the request made by station C could not be granted since ALLOCATED was already equal to ALLOC.
  • the absolute worst case time for rotation of the write token is less than or equal to two times the target token rotation time (TTRT). This worst case time occurs under the extremely unlikely conditions that all of the bandwidth is currently allocated to Class 1 (no C2POOL) and all of the bandwidth is being used by Class 1 stations on one rotation and on the next rotation all stations cease to transmit.
  • the station knows that the write token has been lost.
  • the station will initiate a bidding cycle to recover the token.
  • the bidding cycle is initiated by the station transmitting a recovery token (FIG. 3) with its individual address in the destination address (DA) field.
  • the next station receiving the recovery token passes it on if the destination address in the recovery token is greater than its own individual address, replaces the destination address with its own individual address if the destination address is smaller than its own individual address, or wins the bid and regenerates the write token when the destination address in the recovery token is equal to its own individual address.
  • the station with the highest individual address wins the bid and regenerates the write token.
  • the bidding algorithm may easily be modified so that the station having the lowest individual address will win the bid and regenerate the write token.
  • the network allows for creation of status indications (in the EFD field) for error control and flow control on data frames. If a received data frame has a bad cyclic redundancy check (in the frame check sequence field), a status bit in the EFD field will be set to NAK. If the station has no room to buffer the frame, a status bit in the EFD field will be set to indicate the buffer full condition. On the other hand, if the frame is buffered a status bit in the EFD field will be set to ACK. If the destination address of a frame is not that of the station, the frame is repeated to the next station without change, except in the case described below.
  • Each station also looks at the source address of every received data frame. If the source address is equal to the station's individual address, the frame has made one complete revolution of the loop. The status indicated in the EFD field is captured and used to control retransmission. The station invalidates the frame by either placing an abort sequence in the frame or by removing the frame from the loop. This prohibits multiple receptions of the same frame by its continuing to rotate around the loop under very light load.
  • the start frame delimiter indicates whether the frame is one of the tokens used for management of the loop or is a data frame.
  • the end frame delimiter (EFD) includes a status field which is used to indicate positive or negative acknowledgment of the frame, buffer status and other status indications.
  • the data frame has two addresses, the destination address (DA) and the source address (SA).
  • DA destination address
  • SA source address
  • User data and any user control information is carried in the information field (INFO) of the data frame.
  • the frame check sequence field FCS is used to detect errors in transmission.
  • information transmitted on the loop is encoded in a dual frequency format which produces three values, "1", "0", and "violation".
  • the violation value is used to define SFD and EFD.
  • FIG. 5 shows a block diagram of the ring logic provided for each station on the loop.
  • solid lines indicate actual data flow and broken lines indicate control information.
  • the broken line entering the bottom of the transmit priority logic 32 is the control interface from the data device(s) (not shown) supported by and included in each station.
  • the data lines leaving the bottom of the receive buffer logic 42 and entering the bottom of the transmit buffer logic 34 are data interfaces which allow the data device(s) (i.e., facsimile units, storage devices, etc.) to receive/transmit information from/to the ring logic.
  • these data interface lines are normally coupled to some logic on the data bus of the data device(s).
  • Signals received from the loop are fed into a decoder 20 where a clock is extracted and the data is clocked into the first in/first out queuing unit (FIFO) 22.
  • a decentralized clock is utilized; viz., each station runs off of an independent clock. In such a situation, the difference in rates between the received clock and a station's internal clock can cause the need to insert or delete bits between frames. This is accomplished by the FIFO 22. Thus, the FIFO 22 will add or delete bits between frames to compensate for rate disparities between crystals in different stations.
  • the design of the FIFO 22 is dependent on the clocking system being used, the quality of crystals and other parameters.
  • FIFO 22 The design of a FIFO 22 to accommodate the particular network's characteristics will be obvious to those skilled in the art. It should be noted that the FIFO's 22 length is an important factor in determining the maximum frame length MAXFRAME. Thus, MAXFRAME is dependent on how many bits of padding the frame creation logic 36 inserts between frames, the length of the FIFO 22 and other factors such as how many stations are in the loop and the method of clocking used. The tradeoff between these variables will be apparent to those skilled in the art.
  • the data output from the FIFO 22 sources four parallel sections of logic: the token management logic 24; the frame synchronization logic 26; the address recognition logic 28; and the error detection logic 30.
  • the frame synchronization logic 26 scans the data coming in from FIFO 22 looking for start frame delimiters (SFDs). Upon detection of a start frame delimiter, the frame synchronization logic determines whether the frame is a data frame or a token based on the coding of the start frame delimiter. The design of the frame synchronization logic is dependent on the coding scheme used to indicate start frame delimiters (SFD's) and end frame delimiters (EFDs).
  • the frame synchronization logic 26 would have to find those flag patterns and also remove the inserted zeros in non-flag fields.
  • illegal coding sequences are used to indicate delimiters and identify whether a data frame or one of the three types of tokens has been received.
  • the token management logic 24 is notified by the frame synchronization logic 26.
  • the token can be one of three types: a write token, a recovery token, or a bandwidth allocation token.
  • the token management logic 24 will reset an internal timer (not shown) which is doing timeouts for recovery of the write token. That is, the internal timer will be reset to its initial value of two times the TTRT. Note that this internal timer is also set to its initial value when a station joins the loop. If a write token is received, the transmit priority logic 32 is notified by the token management logic 24.
  • the transmit priority logic 32 includes the C2 timer, C3 timer, token holding timer, the lateness register, none of which are shown. Upon the transmit priority logic 32 being notified of the receipt of a write token, the transmit priority logic 32 will load the token holding timer and reset the C2 and C3 timers in accordance with the procedure specified earlier. If information has been queued for transmission in the transmit buffer logic 34 and the timers for the classes queued have not decremented to zero, information will be taken from the buffers (not shown) in the transmit buffer logic 34 and run through the frame creation logic 36 where a start frame delimiter, the source address, the frame check sequence and end frame delimiter are appended.
  • the design of the frame creation logic 36 is dependent on the data structure used in the transmit buffer logic 34, the ordering of fields of the data frame, and the method used for creating frame delimiters.
  • the only information stored in the transmit buffer logic 34 is the information field and the destination address.
  • the frame creation logic 36 puts on a start frame delimiter (SFD), adds the source address (SA), generates the frame check sequence (FCS) and adds the end frame delimiter (EFD).
  • the frame constructed in the frame creation logic 36 is transferred to the output control logic 38 which in turn supplies the data frame to the encoder 40.
  • the output control logic 38 is a multiplexor, responsive to inputted control signals, for gating to the encoder 40 one of the output control logic's 38 data inputs in accordance with the received control signals. Its design is well known to those skilled in the art.
  • the encoder 40 encodes the data frame into whatever data transmission format is being utilized (i.e., NRZ, dual frequency) and transmits the encoded data frame onto the loop. The transmission of information continues until the allowed holding time for the write token (as indicated by the token holding timer) has expired or until all queues information in the transmit buffer logic 34 has been transmitted.
  • the output control logic 38 then causes the write token to be regenerated by the token management logic 24, and the regenerated write token is gated from the token management logic 24 through the output control logic 38 to the encoder 40.
  • the token management logic 24 uses the control signals from the address recognition logic 28 to determine whether the destination address (DA) in the recovery token is less than, equal to, or greater than the station's address.
  • the address recognition logic 28 includes a simple comparator to perform the comparison and supplies the token. management logic 24 with control signals indicating the result of the comparison. If the destination address is greater than the station's address, the recovery token is gated through the output control logic 34 into the encoder 40 and back onto the loop unimpeded. If the destination address in the recovery token is less than the station's address, the recovery token's DA is replaced with the station's address and the modified recovery token is gated out onto the loop.
  • the station has won the bid to recover the write token.
  • a new write token is generated (by the same mechanism used to generate a write token after completing the transmission of data frames) and gated out onto the loop.
  • this bid mechanism allows only the station with the highest address to regenerate a write token after it is lost.
  • the allocation field (ALLOCATED) in the token is added to the current allocation for the station (which is stored in the token management logic 24) by the token management logic 24. If the result of this calculation is greater than total amount of Class 1 bandwidth which is allowed to be allocated on the ring (ALLOC), the token management logic 24 notifies the transmit priority logic 32 and the unaltered bandwidth allocation token is immediately transmitted out on the ring through the output control logic 38. As previously discussed, the latter situation can occur under the anomaly when two loops are joined together. If the result of this calculation is less than or equal to the total allocatable Class 1 bandwidth, the bandwidth allocation token is forwarded out onto the loop with the new total in the ALLOCATED field.
  • the address recognition logic 28 will buffer the frame in the receive buffer logic 42 if the frame's destination address is equal to (one of) the address(es) of the station, or cause the frame to be aborted if the station was the source of the frame (SA- station address).
  • SA- station address the address(es) of the station
  • a station may recognize multiple addresses; viz., its station address, a broadcast address and (in some network implementations) a generic address. If the station's address is neither the source nor the destination specified in the frame, the frame is transmitted through the station unimpeded.
  • the address recognition logic 28 uses timing signals from the frame synchronization logic 26 to supply signals from the address recognition logic 28: to the token management logic 24 indicating the result of recovery token address comparison; to the frame creation logic 36 for aborting frames, and to the receive buffer logic 42 for frame and acknowledgement reception.
  • the receive buffer logic 42 will attempt to store the frame. If the station was the source of the frame, the frame creation logic 36 inserts an abort sequence into the frame.
  • the abort sequence in the preferred embodiment is a frame delimiter (not shown in FIG. 3). After modifying the frame to indicate an abort condition, the station retransmits the modified frame back onto the loop.
  • the address recognition logic 28 When comparing for destination addresses, the address recognition logic 28 will match both a unique station identifier as well as any broadcast addresses which the station has been conditioned to recognize. If the destination address of the frame matches the station's unique identifier or broadcast address, the received buffer logic 42 causes an update of the status field of the frame that is being received based on internal buffer conditions and control signals the receive buffer logic 42 receives from the error detection logic 30 (which computes the CRC). The receive buffer logic 42 accomplishes this status update by signaling the frame creation logic 36 to modify the end frame delimiter. In both the case of broadcast frames and non-broadcast frames, after updating the status the modified frame will be transmitted back onto the loop.

Description

    Background of the Invention
  • The present invention relates in general to a system and method for communicating information between distributed stations. More particularly, the present invention relates to a timed token loop which provides three or more classes of service with a priority relationship between classes. The three classes of service provided allow guaranteed bandwidth, interactive and batch services. These classes are implemented by timing the rotation time of a write token to measure instantaneous load and limiting transmission of information by class of service and the observed write token rotation time.
  • The synthesis of the architecture for future office automation systems will be effected to a large extent by the available communication mechanisms supporting those systems. Circuit switched communication as provided by PBXs is efficient for handling voice traffic, but is limited by the maximum bandwidth available for data traffic. The inefficiencies inherent in using circuit switched service for communication of bursty data traffic are being solved for low data rate devices through submultiplexing in the PBX. In contrast, local area networks have been optimized for efficient transmission of data at high burst rates with little consideration for handling of digital voice.
  • Broadband systems provide the capability for carrying both voice and data over the same media through separate logical networks for voice and data on the same physcal media. This hybrid approach solves some problems by using a single media, but does not allow the flexibility given by integration of data on the same logical network.
  • Distributed communication systems based on token loop structures are well known in the prior art. Thus, in the article by David J. Farber titled "A Ring Network", Datamation, February 1975, pp. 44-46, a collection of minicomputers connected by a ring-like digital communication system is disclosed. Similarly, the work by Newhall and Farmer on token controlled rings is exemplified in a paper titled "An Experimental Distributed Switching System To Handle Bursty Computer Traffic, in Proc. ACM Symp. Problems in the Optimization of Data Communications Systems (Pine Mountain, GA, Oct. 1969), pp. 31-34.
  • The work of both Newhall and Farber was primarily applicable to data type traffic where all stations were given an essentially equal opportunity to transmit. Thus the drawback of both systems is that they cannot support a guarantee of bandwidth.
  • The inability to guarantee bandwidth is also a drawback of the Ethernet system and all CSMACD-type protocols for local area networks.
  • The Cambridge ring, which is based on the work of Pierce, is more adapted to a circuit type of service. In such a system, you essentially have a boxcar (which corresponds to available bandwidth) into which data may be inputted or extracted. A fixed allocation procedure may be implemented which reserves the boxcar for a station to use. The drawback of the Cambridge ring is that there's no simple or obvious way to use the boxcar when its not being used by the station that has a fixed reservation on it.
  • In an article entitled "A Reliable Token-Ring System for Local Area Communication" by Bux, Closs, Janson, Kummerle and Muller given at the National Telecommunications Conference in New Orleans, U.S.A. on 29th November to 3rd December 1981, there is disclosed a token-ring system where transmission of stations in a ring is controlled by the passing of a token from station to station. Upon receipt of a token, a sending station seizes the token, transmits its asynchronous data, and, in response to the receipt back round the ring of its end frame delimiter, once again sends the token to the next station in the ring for the station next to receive the token also to send whatever asynchronous (or Class 2) data it may have. At regular intervals a monitor in the ring seizes and suppresses the token for the transmission of asynchronous data and substitutes instead a token for the transmission of synchronous (or Class 1) data. Thereafter, each station in the ring which has synchronous (or Class 1) material transmits its Class 1 material around the ring similarly to the manner of transmitting asynchronous (or Class 2) data. When the monitor receives back the synchronous token it once again regenerates the asynchronous token which it sends around the loop. The present invention seeks to provide an improvement over the disclosed system by providing that the stations in the token controlled loop are self- controlling and do not require the presence of an additional monitor. In the present invention interruption to the loop at regular interals is not required by virtue of the individual stations in the loop guaranteeing a minimum bandwidth (ALLOC) to synchronous (or Class 1) traffic, the bandwidth allocated to Class 1 traffic during periods of light load on the ring exceeding this minimum value if required. In the National Telecommunications Conference article, a lost token is recovered by intervention of the central monitor which looks for through-passing tokens and, if it sees none for more than a predetermined period, clears the ring and then issues a new free token. In the present application no such central monitor is required, each station in the ring checking for the presence of the token and the first station to fail to detect a token within a predetermined time sending out a recovery token. Further, in the present invention the recovery token is eventually returned to that station having . either the highest or the lowest designating address, the eventual destination station of the recovery token generating a new write token.
  • It is the general object of the present invention to overcome these and other drawbacks of the prior art by providing a timed token protocol method and apparatus which integrates the favorable characteristics of both circuit switched and packet switched communications and provides these characteristics to a station through a single physical and logical interface.
  • It is another object of the present invention to provide a protocol adaptable to either a physical or logical loop which provides three or more classes of service with a priority relationship between classes, the three classes allowing guaranteed bandwidth, interactive and batch services.
  • It is still another object of the present invention to provide a timed token protocol for a loop communications network which allows the bandwidth guaranteed to a first station to be used by that first station when needed and further allows the same guaranteed bandwidth to be used by another station when it is not needed by the first station.
  • It is yet another object of the present invention to provide a token controlled loop which provides efficient utilization of available bandwidth by the stations configured on the loop.
  • It is an additional object of the present invention to provide a timed token protocol adaptable to either a physical or logical loop which provides for stations configured on the loop, each being of one or more of multiple classes of priority.
  • It is a further object of the present invention to provide a timed token protocol for stations interconnected in a continuous loop structure, the protocol providing for stations with different priority levels, wherein stations of the highest priority level are capable of allocating a guaranteed minimum bandwidth to themselves to the exclusion of other stations of the same priority.
  • It is still a further object of the present invention to provide a timed token protocol for stations interconnected in a continuous loop structure, the protocol providing for stations with different priority levels, wherein stations not of the highest but of equal priority level are guaranteed a pool of bandwidth which may be fairly shared between them.
  • These and other objects, features and advantages of the present invention will become more apparent from the detailed description of the preferred embodiment when read in conjunction with the drawings.
  • Summary of the Invention
  • According to one aspect, the present invention consists in a method of allocating bandwidth in a loop communications network, said network including a loop-connected set of stations providing data flow unidirectionally from one of said stations to the next, each of said stations being operable to pass data through itself along said loop, to extract data from said loop and to inject data into said loop, each of said stations having associated therewith at least one identifier address, each of said stations being assigned in a Class 1 priority for synchronous data, a Class 2 priority for asynchronous data or a mixture of Class 1 and Class 2 priorities, each of said stations being operable to become the source of new data into said network in response to the receipt of a write token from that one station next earlier in said loop and each station being operable, having completed provision of data to said network, being operable to pass said write token to that one of said stations next later in said loop, said method being characterised by including the steps of; each of said stations measuring the amount of time required for said write token to pass around said loop and return to said each of said stations, and, each of said stations having Class 2 data to be provided to the loop using said measured time as a measure of the bandwidth available on the loop and providing said Class 2 data to said loop if said measured time is less than a first predetermined limit.
  • According to another aspect, the present invention consists in a station for use in a loop communication network, said network including a set of stations providing data flow unidirectionally from one station to another around a loop, said station comprising; a through-passing data path operable to receive data from said loop and operable to pass the received data unaltered back onto said loop; data extraction means operable to extract data from said loop; data injection means operable to inject data onto said loop; address recognition logic operable to compare an incoming destination address from said loop with at least one identifier address and to provide output indicative of the match found therebetween to control said through-passing data path and said data extraction means; transmit priority logic operable to control provision to said loop of either Class 1 priority data requring a guaranteed bandwidth, or Class 2 priority data not requiring a guaranteed bandwidth, or a mixture of data having both said Class 1 priority and said Class 2 priority; a token detector operable to detect receipt of a write token from said loop and operable to provide indication thereof to said data injection means to cause said data injection means to provide any available data to said loop; and a token generator operable subsequently to provision to said loop by said data injection means of any available data to provide a fresh write token to said loop; said station being characterised by comprising a first timer coupled to be reset on each instance of said token detector detecting a write token received from said loop and operable to measure the amount of time required for a write token to reappear from said loop; and said station being further characterised by said transmit priority logic being operable to permit said data injection means to provide any available data of said Class 2 priority to said loop in response to detection by said token detector of a write token if and only if said measured time by said first timer is less than a first predetermined time limit.
  • According to the invention, a timed token protocol is provided to allow for the integration of three or more classes of service on the same loop communications network. The highest class of service (Class 1) is for information which requires a guarantee of bandwidth and/or deterministic delay and jitter characteristics. This. class of service is used for information that is represented in the time domain (e.g., pulse code modulated voice), or where minimal queuing delay is important (e.g., process control). The second class of information (Class 2) is that which is non-real time, but of an interactive nature. Traditional data communications between terminals and computers falls into this classification. That is, Class 2 information requires some minimum throughput, but the absolute guarantee of bandwidth is not a requirement. The third class of service (Class 3) is for batch information where no minimum throughput is required and transmission of information may be delayed until network load is light.
  • The timing of a write token is the mechanism used for measuring instantaneous load. The measurement of load allows for the establishment of the three classes of service. Each class of service uses a different set of rules for determining when information may be transmitted.
  • An initial value called the target token rotation time (TTRT) must be selected for the network. The network protocols are designed so that under 100% offered load, the write token will revolve at the TTRT. The TTRT must be chosen to be less than or equal to the rate at which devices operating at a Class 1 priority require service.
  • As in all token controlled communications systems, the right to service new information into the network is controlled by passing a privilege to transmit (the write token) from one station to another. The passing of the write token is controlled by the communication protocol.
  • Class 1 (C1) information may be transmitted upon every write token reception. The amount of C1 information transmitted with each write token reception is limited by a bandwidth allocation procedure to be explained below. Other classes of information control their transmission by using a timer for each class. The timer for Class 2 is the target token rotation time minus the time for transmission of the maximum length frame (TTRT - MAXFRAME) (or the Class 2 target time). The target time for Class 3 would be some percentage of the target token rotation time related to load minus the maximum sized frame transmission time; (e.g., .6 x TTRT - MAXFRAME).
  • Stations of Class 2 or lower priority control their transmission of information by timing between arrivals of the write token. Each time the write token arrives at a station, priority class timers are reset to their initial values if no information is to be transmitted, and the write token is passed on unimpeded. If, at arrival of the write token, timers have not decremented to zero and information is queued for transmission, queued information may be transmitted for any priority class (other than Class 1) with a non-zero timer value.
  • A station which simultaneously services multiple classes of information transmits lowest priority first and highest priority last. For example, in a station which has Class 1, Class 2 and Class 3 traffic, if when the write token arrives the Class 3 (C3) timer has not decremented to zero, the residual value in the C3 timer is loaded into a token holding timer, the C3 timer is reset, and all timers continue to decrement. New frames may be sourced at C3 priority level onto the ring as long as the token holding timer has not decremented to zero. When the holding timer has decremented to zero, the current frame in transmission is completed. At that time the residual in the Class 2 (C2) timer is loaded into the holding timer and the C2 timer is reinitialized. Transmission of C2 information then proceeds as described for C3. Class 1 (C1) information is then transmitted. The write token is transmitted after all the allowed C1 frames. If at write token arrival the C3 timer had decremented to zero, the protocol begins with service to Class 2. If both the C3 and C2 timers had decremented to zero, transmission begins with C1.
  • At design or configuration time, parameters must be chosen to allow for the quality of service desired for the classes of information. A value representing allocatable bandwidth is used for the control of Class 1 traffic. This value (ALLOC) is less than the target token rotation time. The amount of difference depends upon two factors. One is the amount of bandwidth wished for Class 2 devices to guarantee minimum throughput (C2POOL), and the other is the latency (LATEN) of the physical or logical ring. Latency is the amount of time it takes for the token to go around the ring with zero load. The sum of allocatable bandwidth, the Class 2 pool, and latency is equal to the target token rotation time (TTRT = ALLOC + C2POOL + LATEN). Normally the timer value for Class 3 would be less than the available bandwidth for Class 1 (C3TIMER<ALLOC). In such case, no minimum bandwidth is guaranteed for Class 3. If the C3 timer is greater than allocatable bandwidth, some minimum bandwidth has been guaranteed for Class 2 or Class 3.
  • By limiting traffic through the described mechanisms, Class 1 service is that of a minimum guaranteed bandwidth, since the guarantee is for each Class 1 station that has received a portion of the allocatable bandwidth to be able to transmit some fixed amount of information every rotation of the write token. If the write token is rotating faster than the target token rotation time, the bandwidth usable by Class 1 would therefore be greater than the guaranteed minimum.
  • Class 2 devices have a pool of bandwidth guaranteed to them which is shared fairly by all devices designed to use that quality of service. In addition, the timing of the write token allows any unused Class 1 bandwidth to be used by lower priority stations. This includes both allocated and unused bandwidth as well as unallocated Class 1 bandwidth. Class 3 priority has no guaranteed throughput, but would only transmit when the load falls below the arbitrary percentage established for that class.
  • In the preferred embodiment, the mechanism for allocation of bandwidth for Class 1 service is to use a special token which is transmitted around the loop. When a Class 1 station desires to allocate additional bandwidth to itself, the write token is captured and a bandwidth allocation token is transmitted. Each station on the loop takes this bandwidth allocation token, adds to it the amount of bandwidth which is currently allocated by that station for Class 1, and forwards the allocation token to the next station. When the bandwidth allocation token returns to the station attempting to allocate bandwidth, the write token is regenrated and passed on to the next station. If the current allocation of bandwidth returned in the bandwidth allocation token plus the desired allocation is less than the allocatable bandwidth, then the allocation is granted. The bandwidth desired is then added to the total allocated for that station.
  • In addition to the present invention providing a protocol method for the integration of different classes of service on the same communication network, a preferred hardware embodiment of the station logic is also described. Details of the hardware implemention is contained in the detailed description of the preferred embodiment.
  • Brief Description of the Drawings
    • Figure 1 illustrates the interconnection of a plurality of stations in a communications loop as employed in the present invention.
    • Figure 2 illustrates a plurality of Class 1 stations interconnected in a loop structure, each station having a current Class 1 allocation of the number of units indicated.
    • Figure 3 shows the formats of the data frame, recovery token, bandwidth allocation token and write token as used in the preferred embodiment of the present invention.
    • Figure 4A illustrates a single loop with redundant transmission paths, having been restructured into two separate fragmentary loops after the occurrence of the two indicated faults and the invocation of loopback. Each station shown is Class 1 priority and has a current Class 1 allocation as indicated.
    • Figure 4B is similar to Figure 4A, but illustrates the configuration after the failure between stations C and D has been repaired, wherein the two separate loops of Figure 4A have begun to function as a single loop.
    • Figure 5 shows a block diagram of the loop logic included in each station attached to the loop.
    Detailed Description of the Preferred Embodiment
  • The protocol of the present invention is designed to operate in a token controlled loop (or ring) communications network. Those skilled in the art will appreciate that the protocol of the present invention may be implemented either on a physical loop or on a logical loop (or ring) superimposed on a physical bus. Such a loop communications network may utilize a single loop (or ring) architecture or one incorporating a second redundant loop with network components that route the data around any network faults. The following description will consider the implementation of the present invention in a single loop architecture. However, those skilled in the art will appreciate that the present invention may be readily adapted for use in loop architecture employing a second redundant loop.
  • The timed token protocol of the present invention allows for the integration of different classes of service on the same communications network. The preferred embodiment of the protocol supports three basic priority classes of service. The first class (Class 1) is for that type of information which requires a guarantee of bandwidth and deterministic delay and jitter characteristics. This class of service is used for information which is represented in the time domain. Thus, for example, Class 1 information may include real- time audio applications such as pulse code modulated (PCM) voice. Such Class 1 information is sometimes referred to as synchronous information.
  • The second priority class of information (Class 2) supports non-real time applications requiring interactive response. Typical of such an application is traditional data communications between terminals and a computer. Thus, in this class some minimum throughput is required, but an absolute guarantee of bandwidth is not a requirement. This class of traffic is sometimes referred to as asynchronous.
  • The third class of service (Class 3) is that of batch traffic which requires no minimum throughput, but can be transported through the network when load is light. Background communications such as electronic mail or file transfers are typical applications where Class 3 service would be appropriate. The protocol of the present invention allows for the creation of additional priorities within this class of service for batch traffic. Thus, Class 4 .... Class N, all subclasses of Class 3, may be established.
  • As will be discussed below, the timing of a write token is the mechanism used for measuring instantaneous load on the loop. This measurement of load allows for the establishment of the classes of service discussed above. Each class of service uses a different set of rules for determining when information may be transmitted.
  • The speed at which the write token rotates around the loop determines the rate at which the network services each station, the network's queing delay, and the bandwidth lost to passing the write token from station to station. An initial value called the target token rotation time (TTRT) must be selected for the network. The loop protocols guarantee that the short-term average rotation time will vary from the minimum orbit time with no load, to the target token rotation time (TTRT) under full load conditions. The TTRT is important since it defines the maximum average write token rotation time. Thus, under 100% offered load, the write token will revolve at the TTRT. In the preferred embodiment of the present invention, the TTRT is loaded into each station during network initialization.
  • The TTRT is related to the rate at which devices operating at a Class 1 priority require service. For Class 1 priority, information may be transmitted once every write token arrival. Thus, the protocol guarantees that Class 1 (C1) information may be sent at least once every TTRT for each Class 1 station on the loop that has received a guarantee of bandwidth. This means that the TTRT determines the guaranteed service rate for C1 transmissions.
  • As previously mentioned, the TTRT is related to the rate at which devices operating at a Class 1 priority require service. For example, if service is only required every eight milliseconds, a 64K bits per second information rate would be transmitted using a packet size of 64 bytes (or 512 bits). Thus, the time to accumulate 512 bits at a rate of 64K bits/second is 8 milliseconds. If the information generation rate was 32K bits per second instead of 64K bits per second (bps), a packet size of 32 bytes (or 256 bits) would be used with this eight millisecond TTRT. Similarly, a chosen service time of four milliseconds would require 32 bytes (or 256 bits) per packet to support a 64k bps information rate, or 16 bytes (or 128 bits) per packet for a 32K bps information rate.
  • The value used for the target token rotation time must be less than or equal to the selected serviced time in order to guarantee that each station is serviced within the selected service time. If error free bandwidth is desired for Class 1, the error rate of the media must be taken into consideration. In such case, the target token rotation time would be correspondingly less than the rate at which packets are produced.
  • As in all prior art token controlled communications systems, the right to source new information into the network of the present invention is controlled by passing a privilege to transmit (or write token) from one station to another. In the present invention, the passing of the write token is controlled by the communication protocol.
  • FIG. 1 shows a single loop communications system as employed in the present invention. In such a system, station A 10 passes a write token to station B 12, station B 12 passes the write token to station C 14 .... and station Z 16 passes the write token to station A 10, and the cycle is thereafter repeated.
  • Each station on the loop may interconnect devices for handling one or more priority classes of data. Thus, a single station may handle classes 1 or 2 or 3, or any combination of the three classes.
  • Class 1 information may be transmitted upon every write token reception by a Class 1 station. The amount of C1 information that a Class 1 station may transmit upon each write token reception is limited by a bandwidth allocation procedure to be explained below. Other classes of information transmission are controlled by using a timer for each class, each station capable of transmitting non-Class 1 information must have a timer for each non-class 1 priority of information it is capable of transmitting.
  • The initial value (or target time) for each Class 2 timer is set to the target token rotation time (TTRT) minus the time for transmission of the maximum length frame (TTRT-MAXFRAME). As will be obvious to those skilled in the art, MAXFRAME is dependent on the quality of crystals used in the network, the amount of padding inserted between frames, the coding and synchronization system utilized, and other characteristics of the network. If the network uses a central clock, the maximum length frame could be arbitrarily long. In the preferred embodiment of the invention, the maximum length frame has been chosen to be 1024 bytes in the information field.
  • In the preferred embodiment, the timer value for Class 2 is chosen to assure efficient network utilization and prevent starvation of stations. Thus, if the timer value for Class 2 is not TTRT-MAXFRAME, the network will give smaller frames a greater probability of transmission. This would tend to encourage inefficient network utilization since the overhead to information ratio is higher for smaller frames. It also might prevent some Class 2 stations from transmitting at all.
  • The target time for every Class 3 timer is set to some percentage of the target token rotation time minus the maximum sized frame transmission time. For example, the target time for Class 3 might be 0.6 X TTRT-MAXFRAME. The percentage of the TTRT used in the calculation of the Class 3 target time is related to the load on the network. Thus, each timer within the same Class is set to the same initial value, the value being set when the network is configured.
  • The timer value for any other priorities of batch information would follow the same pattern as used for Class 3, with each priority using a smaller percentage of TTRT for its initial timer value. For example, if a Class 4 priority was included, the initial Class 4 timer vlaue (or target time) might be 0.4 X TTRT- MAXFRAME.
  • Note that in the present invention all timers in all stations are continually decremating until they have decremented to zero (at which time a timer ceases to decrement).
  • Stations of Class 2 or lower priority control their transmission of information by timing the write token from arrival to arrival. "Each time the write token arrives at a station, priority class timers are reset to their initial values. If no information is to be transmitted, the write token is passed back onto the loop unimpeded. If, at arrival of the write token, the timers have not decremented to zero and information is queued for transmission, queued information may be transmitted for any priority class (other than Class 1) whose corresponding timer has a non-zero value. Thus, a station can transmit Class 2 (or Class 3) information as long as the time since the previous write token arrival is less than the Class 2 (or Class 3) target time. If the write token arrives later than a Class 2 (or Class 3) target time since its previous arrival, the station must refrain from transmitting any Class 2 (or Class 3) information onto the loop.
  • A station which simultaneously services multiple classes of information transmits lowest priority first and highest priority last. For example, in a station which has Class 1, Class 2 and Class 3 traffic, when the write token arrives, if the timer for Class 3 has not decremented to zero, the residual value in the Class 3 timer is loaded into a token holding timer, the Class 3 timer is simultaneously reset to its initial value, and the Class 3 timer and token holding timer immediately begin to decrement. Note that during this time the Class 2 timer and all timers in other stations are continuously decrementing. Multiple new frames may be sourced at Class 3 priority level onto the loop as long as the token holding timer has not decremented to zero.
  • When the token holding timer has decremented to zero, the current Class 3 frame in transmission is completed. At that time the residual value in the Class 2 timer is loaded into the token holding timer, the Class 2 timer is simultaneously reset to its initial value, and the Class 2 timer and token holding timer immediately begin to decrement. Note that during this time the Class 3 timer and all timers in other stations are continually decrementing. Transmission of Class 2 information then proceeds in the same manner as described for Class 3, the transmission of Class 2 information ceasing after completing transmission of the frame being transmitted when the token holding timer goes to zero.
  • Note that if at the time the write token arrives there is no Class 2 information to transmit, the Class 2 timer still would not be reset until after Class 3 is serviced.
  • After Class 2 transmission is ended, the station next transmits Class 1 information. Details of when Class 1 information may be transmitted will be discussed below. After all of the allowed Class 1 frames have been transmitted, the write token is retransmitted back onto the loop.
  • Note that in the above description, if at the arrival of the write token the C3 timer had already decremented to zero or there was no Class 3 information to transmit, the station would immediately reset the C3 timer to its initial value and begin with service to Class 2. If when the write token arrived both the Class 3 and Class 2 timers had decremented to zero or there was no Class 2 or Class 3 information to transmit, the station would immediately reset the C2 and C3 timers and transmission would begin with Class 1 information.
  • To improve the fairness within a class of service, a method of accumulating lateness is preferred. Such a method may be optionally implemented in the present invention as follows. Thus, after transmission of Class 2 (or Class 3) information, if on the next rotation of the write token the timer for a class that transmitted decrements to zero, it will cause a class lateness register (not shown) to increment until write token arrival. This lateness must be removed before transmission can occur for that class again. The measure of token earliness (the residual of the target timer normally transferred to the token holding timer) is subtracted from the lateness register. This continues until the lateness has been compensated for by earliness. Then transmission can resume either on the same rotation that lateness is completely removed or on the next rotation after lateness is completely removed.
  • When the network is configured, parameters must be chosen to allow for the quality of service desired for the classes of information. As previously mentioned, the amount of Class 1 information that may be transmitted upon each write token reception is limited by a value representing allocatable bandwidth. This value, ALLOC, is less than the target token rotation time. The amount that ALLOC differs from the target token rotation time is dependent on three factors. These three factors are the amount of bandwidth to be allocated for Class 2 devices to guarantee minimum throughput (C2POOL), the latency (LATEN) of the physical or logical ring, and any bandwidth for system administration (SYSADM). System ad- minstration would include functions required to construct a logical loop or for bandwidth allocation procedures. Latency (LATEN) is the amount of time it takes for the token to go around the loop with zero load. The sum of allocatable bandwidth (ALLOC), the Class 2 pool (C2POOL), latency (LATEN) and system administration (SYSADM) is equal to the target token rotation time. Thus, TTRT = ALLOC + C2POOL + LATEN + SYSADM. In practice, latency and system administration will be a small factor for most systems. thus, allocatable bandwidth (ALLOC) is selected primarily on how much Class 2 traffic is anticipated on the loop. By selecting the size of C2POOL, you determine the minimum throughput per Class 2 station. The remainder (ALLOC) is the bandwidth which is available for all Class 1 (C1) traffic.
  • Normally, the timer value for Class 3 and any lower priority classes will be less than the available bandwidth for Class 1 (C3TIMER < ALLOC). In such case, no minimum bandwidth is guaranteed for Class 3. If this is not the case, then the actual Class 2 pool (C2POOL) is C2POOL = TTRT - LATEN - (C3TIMER-ALLOC) = TTRT - LATEN - C3TIMER + ALLOC. Thus, if the Class 3 timer value is greater than the allocatable bandwidth, some minimum bandwidth has been guaranteed for Class 2 or Class 3.
  • Class 1 service is that of a minimum guaranteed bandwidth. Each Class 1 station that has received a portion of the allocatable bandwidth (ALLOC) guarantees it will be able to transmit some fixed amount of information corresponding to the size of its allocation for every rotation of the write token. Thus, if the write token is rotating faster than the target token rotation time, the bandwidth usable by Class 1 stations would be greater than the guaranteed minimum bandwidth available for Class 1 information.
  • The pool of bandwidth guaranteed to Class 2 stations (C2POOL) is shared by all stations designed to use Class 2 service. In addition, the timing of the write token allows any unused Class 1 bandwidth to be used by lower priority stations. This is accomplished by lower priority stations timing the write token and measuring load as previously described. Thus, when the write token arrives at a lower priority station, the token holding timer basically says how much bandwidth was not used on the last rotation. Note that this has no bearing on what is allocated or what was even allocatable; it is just what was used, and so by measuring the current load (via the C2 and C3 timers) lower priority stations are able to use that unused Class 1 bandwidth which is either not allocated to Class 1 or allocated and not used. In other words, the transmission algorithm used by Class 2 and 3 stations does not even look at ALLOC; only the allocation algorithm for Class 1 looks at ALLOC.
  • Class 3 and lower priority stations have no guaranteed pool of bandwidth available to them and hence have no guaranteed throughput. Thus, they may only transmit when the load falls below the arbitrary percentage established for that class. As previously discussed, Class 3 and lower priority stations make this determination based on the target time (or timer value) established for that class. For example, if the Class 2 target time is 8 milliseconds and the class 3 target time equated to 6 milliseconds, then whenever Class 2 load fell below 75 percent Class 3 would be able to transmit.
  • There are situations where a Class 1 station may want to increase the amount of Class 1 bandwidth allocated to it. For example, if a device such as a PBX is attached to a station, each time you establish a call or terminate a call the station would want to change the amount of allocated Class 1 bandwidth for that station to reflect the current load.
  • Those skilled in the art will appreciate that the allocation of bandwidth for Class 1 service can be accomplished in one of at least five ways:
    • - Through configuration limitation.
    • - Through a central device which controls the allocation of bandwidth.
    • - By including in the write token a field representing the current allocated bandwidth.
    • - By a special token which circulates around the loop and collects the currently allocated bandwidth from all stations.
    • - By a distributing message passing algorithm for determining the current allocation of bandwidth.
  • In the preferred embodiment of the present invention, the mechanism used for allocation of bandwidth for Class 1 service is to use a special token which is transmitted around the loop.
  • When a station desires to allocate additional Class 1 bandwidth, it captures the write token and transmits a bandwidth allocation token (FIG. 3). This bandwidth allocation token includes a field for accumulating the allocated bandwidth of all stations (ALLOCATED). This field is initialized to the current allocation of the station transmitting the bandwidth allocation token. Each Class 1 station on the loop takes the bandwidth allocation token, adds to the allocated field (ALLOCATED) the amount of bandwidth which is currently allocated by that station to Class 1, and forwards the bandwidth allocation token to the next station. When the bandwidth allocation token returns to the station attempting to allocate bandwidth, the write token is regenerated and passed on to the next station. If the current allocation of bandwidth returned in the bandwidth allocation token (ALLOCATED) field plus the desired additional allocation is less than or equal to the allocatable bandwidth (ALLOC), then the allocation is granted. In such case the additional bandwidth desired is then added to the total bandwidth currently allocated for that station.
  • As an example of the above operation, assume we have a loop as shown in FIG. 2 with all stations A, B ... , E being of Class 1, each station having the number of Class 1 units of bandwidth allocated to it as shown in the figure. Further assume that the loop has a capacity of 12 allocatable units of Class 1 bandwidth (= ALLOC). If station C wants to allocate additional bandwidth to itself, it captures the write token, and sends out a bandwidth allocation token with 0 in the allocation field ALLOCATED (since C currently has 0 units allocated to it). When the allocation token is received by station D, 5 units are added to the ALLOCATED field and the allocation token is transmitted to station E. This process continues until the bandwidth allocation token arrives back at station C with a value of 9 in the ALLOCATED field. Station C compares the value in the allocation field ALLOCATED against the loop capacity of 12 (as specified by ALLOC). Since there is a difference of 3 units between the value of the ALLOCATED field and ALLOC, station C may allocate up to three additional units of Class 1 bandwidth. If C was trying to allocate only one additional unit, it would change its current allocation register from 0 to 1. Subsequently, if station C received a bandwidth allocation token, it would add 1 unit to the ALLOCATED field; viz., its current allocation. Note that when station C is finished using its 1 unit of allocated Class 1 bandwidth, it will change its current allocation register back to 0 units. Similarly, when other Class 1 stations no longer require part or all of their currently allocated bandwidth, they will also reduce the value in their current allocation register accordingly.
  • Under one particular failure condition it is possible for a Class 1 station to receive a bandwidth allocation token wherein the value in the ALLOCATED field exceeds the total allocatable Class 1 bandwidth (ALLOC). Thus, for example, a loop having redundant transmission paths and using loopback for reliability will fragment into separate loops when multiple failures occur (FIG. 4A). A description of the loopback mechanism is contained in U.S. Patent 4,190,821, issued to Thomas R. Woodward on Feb. 26, 1980. Upon repair of one of the failures, the two separate loops will begin functioning as a single loop (FIG. 4B). Before repair, the two loop fragments operate using the same bandwidth allocation procedure. Hence both loop fragments in FIG. 4A have less than the ALLOC amount (= 12 units) of bandwidth allocated. But when repair of the fault between stations C and D rejoins the loops (FIG. 4B), the current allocation is larger than ALLOC.
  • As an example, assume in FIG. 4B that station C wanted to allocate additional bandwidth. When the allocation token arrived at station A, the ALLOCATED field would specify 11 units. In such case, station A would detect that the currently allocated Class 1 bandwidth exceeded ALLOC, and would respond by terminating all sessions since it could only have a current allocation of 1 unit. Since station A terminated all sessions, it would change its current allocation to 0 and when the allocation token arrived at station B the ALLOCATED field would still specify 11 units. Station B would not be required to terminate its sessions since it could still maintain its current allocation of 1 unit without the total current allocation exceeding ALLOC (= 12 units). However, the request for additional allocation made by station C could not be granted since if granted the total current allocation would exceed ALLOC.
  • Alternatively, station A could deallocate 1 unit of bandwidth and maintain a portion of its sessions. In such case, station A would add 1 unit to the ALLOCATED field of the allocation token. Thus, when the allocation token reached station B, the ALLOCATED field would specify 12 units. Station B would detect that the currently allocated Class 1 bandwidth exceeded ALLOC (if station B maintained its current allocation), and respond by terminating all of its sessions since it could no longer have a current allocation of 1 unit. Thus when the allocation token arrived at station C, the ALLOCATED field would specify 12 units, and the request made by station C could not be granted since ALLOCATED was already equal to ALLOC.
  • In the preferred embodiment of the present invention, under normal conditions only one write token circulates around the loop. Station failures or transmission errors may cause the loss of the write token. The determination of when the write token has been lost is quite simple in the present timed token loop because of the target token rotation time. Thus, the absolute worst case time for rotation of the write token is less than or equal to two times the target token rotation time (TTRT). This worst case time occurs under the extremely unlikely conditions that all of the bandwidth is currently allocated to Class 1 (no C2POOL) and all of the bandwidth is being used by Class 1 stations on one rotation and on the next rotation all stations cease to transmit.
  • Therefore, if the time since the previous arrival of a write token at a station (or any class or classes) is greater than two times the target token rotation time, the station knows that the write token has been lost. In response to detecting the loss of the write token, the station will initiate a bidding cycle to recover the token. The bidding cycle is initiated by the station transmitting a recovery token (FIG. 3) with its individual address in the destination address (DA) field. The next station receiving the recovery token passes it on if the destination address in the recovery token is greater than its own individual address, replaces the destination address with its own individual address if the destination address is smaller than its own individual address, or wins the bid and regenerates the write token when the destination address in the recovery token is equal to its own individual address. Thus, the station with the highest individual address wins the bid and regenerates the write token.
  • Those skilled in the art will appreciate that the bidding algorithm may easily be modified so that the station having the lowest individual address will win the bid and regenerate the write token.
  • It should be noted that the same bidding process used to regenerate a lost write token may also be utilized to generate a write token when the network is initialized.
  • The discussion will next briefly consider the formats of the tokens and data frame (FIG. 3) and the station's response upon the receipt of incoming information.
  • All stations on the loop look at all incoming information. If the destination addressed (DA) specified in a data frame equals the receiving station's individual address, the data frame will be passed on if there is no room in the station's buffer. The network allows for creation of status indications (in the EFD field) for error control and flow control on data frames. If a received data frame has a bad cyclic redundancy check (in the frame check sequence field), a status bit in the EFD field will be set to NAK. If the station has no room to buffer the frame, a status bit in the EFD field will be set to indicate the buffer full condition. On the other hand, if the frame is buffered a status bit in the EFD field will be set to ACK. If the destination address of a frame is not that of the station, the frame is repeated to the next station without change, except in the case described below.
  • Each station also looks at the source address of every received data frame. If the source address is equal to the station's individual address, the frame has made one complete revolution of the loop. The status indicated in the EFD field is captured and used to control retransmission. The station invalidates the frame by either placing an abort sequence in the frame or by removing the frame from the loop. This prohibits multiple receptions of the same frame by its continuing to rotate around the loop under very light load.
  • The following description describes the characteristics of the hardware used to implement a station. Although a detailed description of the hardware is not included, the description is sufficient to enable those skilled in the art to make and use the invention.
  • Referring to FIG. 3, information is carried on the loop (or ring) in frames which include unique identifiers for start of frame and end of frame. The start frame delimiter (SFD) indicates whether the frame is one of the tokens used for management of the loop or is a data frame. The end frame delimiter (EFD) includes a status field which is used to indicate positive or negative acknowledgment of the frame, buffer status and other status indications. The data frame has two addresses, the destination address (DA) and the source address (SA). User data and any user control information is carried in the information field (INFO) of the data frame. The frame check sequence field (FCS) is used to detect errors in transmission.
  • The various field in the token formats have functions similar to those described for correspondingly named fields in the data frame format. The exact positioning of the fields in the token and data formats and the meaning assigned to the various status bits is not critical to the operation of the present invention. Thus, those skilled in the art will appreciate that modifications to the formats shown in FIG. 3 may be made without departing from the spirit of the present invention.
  • In the preferred embodiment of the present invention, information transmitted on the loop is encoded in a dual frequency format which produces three values, "1", "0", and "violation". The violation value is used to define SFD and EFD. However, those skilled in the art will appreciate that other data transmission formats may be more appropriate to a particular application.
  • FIG. 5, shows a block diagram of the ring logic provided for each station on the loop. In FIG. 5, solid lines indicate actual data flow and broken lines indicate control information. The broken line entering the bottom of the transmit priority logic 32 is the control interface from the data device(s) (not shown) supported by and included in each station. The data lines leaving the bottom of the receive buffer logic 42 and entering the bottom of the transmit buffer logic 34 are data interfaces which allow the data device(s) (i.e., facsimile units, storage devices, etc.) to receive/transmit information from/to the ring logic. As will be obvious to those skilled in the art, these data interface lines are normally coupled to some logic on the data bus of the data device(s). Signals received from the loop are fed into a decoder 20 where a clock is extracted and the data is clocked into the first in/first out queuing unit (FIFO) 22. The choice of whether a centralized or decentralized clock is utilized is not important. In the preferred embodiment of the invention a decentralized clock is utilized; viz., each station runs off of an independent clock. In such a situation, the difference in rates between the received clock and a station's internal clock can cause the need to insert or delete bits between frames. This is accomplished by the FIFO 22. Thus, the FIFO 22 will add or delete bits between frames to compensate for rate disparities between crystals in different stations. The design of the FIFO 22 is dependent on the clocking system being used, the quality of crystals and other parameters. The design of a FIFO 22 to accommodate the particular network's characteristics will be obvious to those skilled in the art. It should be noted that the FIFO's 22 length is an important factor in determining the maximum frame length MAXFRAME. Thus, MAXFRAME is dependent on how many bits of padding the frame creation logic 36 inserts between frames, the length of the FIFO 22 and other factors such as how many stations are in the loop and the method of clocking used. The tradeoff between these variables will be apparent to those skilled in the art.
  • The data output from the FIFO 22 sources four parallel sections of logic: the token management logic 24; the frame synchronization logic 26; the address recognition logic 28; and the error detection logic 30. The frame synchronization logic 26 scans the data coming in from FIFO 22 looking for start frame delimiters (SFDs). Upon detection of a start frame delimiter, the frame synchronization logic determines whether the frame is a data frame or a token based on the coding of the start frame delimiter. The design of the frame synchronization logic is dependent on the coding scheme used to indicate start frame delimiters (SFD's) and end frame delimiters (EFDs). Thus for example, if a HDLC/BDLC type of zero insertion was used to create the unique patterns identifying SFD and EFD, the frame synchronization logic 26 would have to find those flag patterns and also remove the inserted zeros in non-flag fields. In the preferred embodiment, illegal coding sequences are used to indicate delimiters and identify whether a data frame or one of the three types of tokens has been received.
  • If the frame synchronization logic 26 detects.a token, the token management logic 24 is notified by the frame synchronization logic 26. The token can be one of three types: a write token, a recovery token, or a bandwidth allocation token. In response to the frame synchronization logic 26 notifying the token management logic 24 that a write token has been received, the token management logic 24 will reset an internal timer (not shown) which is doing timeouts for recovery of the write token. That is, the internal timer will be reset to its initial value of two times the TTRT. Note that this internal timer is also set to its initial value when a station joins the loop. If a write token is received, the transmit priority logic 32 is notified by the token management logic 24. The transmit priority logic 32 includes the C2 timer, C3 timer, token holding timer, the lateness register, none of which are shown. Upon the transmit priority logic 32 being notified of the receipt of a write token, the transmit priority logic 32 will load the token holding timer and reset the C2 and C3 timers in accordance with the procedure specified earlier. If information has been queued for transmission in the transmit buffer logic 34 and the timers for the classes queued have not decremented to zero, information will be taken from the buffers (not shown) in the transmit buffer logic 34 and run through the frame creation logic 36 where a start frame delimiter, the source address, the frame check sequence and end frame delimiter are appended.
  • The design of the frame creation logic 36 is dependent on the data structure used in the transmit buffer logic 34, the ordering of fields of the data frame, and the method used for creating frame delimiters. In the preferred embodiment, the only information stored in the transmit buffer logic 34 is the information field and the destination address. Thus, the frame creation logic 36 puts on a start frame delimiter (SFD), adds the source address (SA), generates the frame check sequence (FCS) and adds the end frame delimiter (EFD). With the functions performed by the frame creation logic 36 now understood, suffice to say that the design of the frame creation logic 36 will be obvious to those skilled in the art.
  • The frame constructed in the frame creation logic 36 is transferred to the output control logic 38 which in turn supplies the data frame to the encoder 40. The output control logic 38 is a multiplexor, responsive to inputted control signals, for gating to the encoder 40 one of the output control logic's 38 data inputs in accordance with the received control signals. Its design is well known to those skilled in the art. The encoder 40 encodes the data frame into whatever data transmission format is being utilized (i.e., NRZ, dual frequency) and transmits the encoded data frame onto the loop. The transmission of information continues until the allowed holding time for the write token (as indicated by the token holding timer) has expired or until all queues information in the transmit buffer logic 34 has been transmitted. The output control logic 38 then causes the write token to be regenerated by the token management logic 24, and the regenerated write token is gated from the token management logic 24 through the output control logic 38 to the encoder 40.
  • If the token received is a recovery token, the token management logic 24 uses the control signals from the address recognition logic 28 to determine whether the destination address (DA) in the recovery token is less than, equal to, or greater than the station's address. The address recognition logic 28 includes a simple comparator to perform the comparison and supplies the token. management logic 24 with control signals indicating the result of the comparison. If the destination address is greater than the station's address, the recovery token is gated through the output control logic 34 into the encoder 40 and back onto the loop unimpeded. If the destination address in the recovery token is less than the station's address, the recovery token's DA is replaced with the station's address and the modified recovery token is gated out onto the loop. If the destination address in the recovery token is equal to the station's address, the station has won the bid to recover the write token. In such case, a new write token is generated (by the same mechanism used to generate a write token after completing the transmission of data frames) and gated out onto the loop. As previously mentioned, this bid mechanism allows only the station with the highest address to regenerate a write token after it is lost.
  • If the token received is a bandwidth allocation token, the allocation field (ALLOCATED) in the token is added to the current allocation for the station (which is stored in the token management logic 24) by the token management logic 24. If the result of this calculation is greater than total amount of Class 1 bandwidth which is allowed to be allocated on the ring (ALLOC), the token management logic 24 notifies the transmit priority logic 32 and the unaltered bandwidth allocation token is immediately transmitted out on the ring through the output control logic 38. As previously discussed, the latter situation can occur under the anomaly when two loops are joined together. If the result of this calculation is less than or equal to the total allocatable Class 1 bandwidth, the bandwidth allocation token is forwarded out onto the loop with the new total in the ALLOCATED field.
  • If the frame coming out of the FIFO 22 is not a token (viz., it's a data frame or a frame fragment), the address recognition logic 28 will buffer the frame in the receive buffer logic 42 if the frame's destination address is equal to (one of) the address(es) of the station, or cause the frame to be aborted if the station was the source of the frame (SA- station address). Note that a station may recognize multiple addresses; viz., its station address, a broadcast address and (in some network implementations) a generic address. If the station's address is neither the source nor the destination specified in the frame, the frame is transmitted through the station unimpeded.
  • The address recognition logic 28 uses timing signals from the frame synchronization logic 26 to supply signals from the address recognition logic 28: to the token management logic 24 indicating the result of recovery token address comparison; to the frame creation logic 36 for aborting frames, and to the receive buffer logic 42 for frame and acknowledgement reception.
  • If the frame's destination address is equal to the station's address(es), the receive buffer logic 42 will attempt to store the frame. If the station was the source of the frame, the frame creation logic 36 inserts an abort sequence into the frame. The abort sequence in the preferred embodiment is a frame delimiter (not shown in FIG. 3). After modifying the frame to indicate an abort condition, the station retransmits the modified frame back onto the loop.
  • When comparing for destination addresses, the address recognition logic 28 will match both a unique station identifier as well as any broadcast addresses which the station has been conditioned to recognize. If the destination address of the frame matches the station's unique identifier or broadcast address, the received buffer logic 42 causes an update of the status field of the frame that is being received based on internal buffer conditions and control signals the receive buffer logic 42 receives from the error detection logic 30 (which computes the CRC). The receive buffer logic 42 accomplishes this status update by signaling the frame creation logic 36 to modify the end frame delimiter. In both the case of broadcast frames and non-broadcast frames, after updating the status the modified frame will be transmitted back onto the loop.
  • Those skilled in the art will appreciate that it is possible to implement all protocol functions (except token recovery) and bandwidth allocation) in 1 bit of delay from FIFO 22 output to encoder 40 input by performing functions in parallel.

Claims (28)

1. A method of allocating bandwidth in a loop communications network, said network including a loop-connected set (10, 12, 14, 16) of stations providing data flow unidirectionally from one of said stations (10, 12, 14, 16) to the next, each of said stations (10, 12, 14, 16) being operable to pass data (SFD, DA, SA, INFO, FCS, EFD, ALLOCATED) through itself along said loop, to extract data (SFD, DA, SA, INFO, FCS, EFD, ALLOCATED) from said loop and to inject data (SFD, DA, SA, INFO, FCS, EFD, ALLOCATED) into said loop, each of said stations having associated therewith at least one identifier address (in 28), each of said stations (10, 12, 14, 16) being assigned a Class 1 priority for synchronous data (C1), a Class 2 priority for asynchronous data (C2) or a mixture of Class 1 (C1) and Class 2 (C2) priorities, each of said stations (10, 12, 14, 16) being operable to become the source of new data into said network in response to the receipt of a write token (in SFD as detected by 24) from that one station (10, 12, 14, 16) next earlier in said loop and each station (10,12,14,16) being operable, having completed provision of data to said network, being operable to pass (via 24,38,32,40) said write token (in SFD) to that one of said stations (10, 12, 14, 16) next later in said loop, said method being characterised by including the steps of; each of said stations (10, 12, 14, 16) measuring the amount of time (ALLOCATED + C2POOL + LATEN + SYSADM) required for said write token (in SFD) to pass around said loop and return to said each of said stations (10, 12, 14, 16) and, each of said stations (10, 12, 14, 16) having Class 2 data to be provided to the loop using said measured time (ALLOCATED + C2POOL + LATEN + SYSADM) as a measure of the bandwidth available on the loop and providing said Class 2 data (C2) to said loop if said measured time is less than a first predetermined limit (TTRT - MAXFRAME).
2. A method according to Claim 1 further characterised by comprising the step of each of said stations (10, 12, 14, 16) having Class 1 (C1) data to be provided to said loop firstly allocating a first portion (ALLOCATED, UNITS) of the available bandwidth (ALLOC) for transmission of the Class 1 (C1) data and thereafter allocating any residue of available bandwidth for provision to said loop of any Class 2 (C2) data.
3. A method according to Claim 1 or Claim 2 wherein each of said stations (10, 12, 14, 16) is further operable to provide to said loop Class 3 (C3) data not requiring a guaranteed throughput rate, said method including the further step of each of said stations (10, 12, 14, 16) having said Class 3 (C3) data for provision to said loop providing said Class 3 (C3) data to said loop if said measured time (ALLOCATED + LATEN + C2POOL + SYSADM) is less than a second predetermined limit (0.6 TTRT - MAXFRAME).
4. A method according to any of the preceding claims wherein said loop is a logical loop comprising a set of stations (10, 12, 14, 16) on a common communication medium each station (10, 12, 14, 16) being free to communicate with any other station (10, 12, 14, 16) on said medium, the ordering of said stations (10,12,14,16) in said loop being enforced by passing said write token (in SFD) from one of said stations (10, 12, 14, 16) to another in a predictable order.
5. A method according to Claim 1 or Claim 2, or according to Claim 4 when dependent upon Claim 1 or Claim 2, further characterised by comprising the step of each of said stations (10, 12, 14, 16) having Class 2 data for provision to said loop being operable to provide said Class 2 (C2) data to said loop for a period equal to or less than the difference between said first predetermined period (TTRT - MAXFRAME) and said measured time for said passage of said write token (in SFD) around said loop.
6. A method according to Claim 3 or according to Claim 4 when dependent upon Claim 3 further characterised by comprising the step of each of said stations (10, 12, 14, 16) having Class 3 (C3) data for provision to said loop, if said measured time for said passage around said loop of said write token (in SFD) is less than said second predetermined period (0.6 TTRT - MAXFRAME), providing said Class 3 data (C3) to said loop for a period equal to or less than the difference between said second predetermined period (0.6 TTRT - MAXFRAME) and said measured time.
7. A method according to Claim 6 further characterised by those of said stations (10,12,14, 16) having provided said Class 3 (C3) data to said loop and still having Class 2 (C2) data to be provided to said loop, providing said Class 2 (C2) data to said loop for a period less than or equal to the difference between said first predetermined period (TTRT - MAXFRAME) and the sum of said measured time and the time during which said Class 3 (C3) data was provided to said loop.
8. A method according to Claims 2, 3, 6 or 7, or according to Claim 4 or Claim 5 when dependent upon Claim 2, further characterised by said each of said stations (10, 12, 14, 16) having Class 1 (C1) data to be provided to said loop, upon first appearance of said Class 1 (C1) data, requesting a reserved bandwidth for said Class 1 (C1) data on said loop, providing said Class 1 (C1) data to said loop if said reserved bandwidth is available from said loop, and abandoning said reserved bandwidth from said loop upon completion of provision of said Class 1 (C1) data to said loop.
9. A method according to Claim 8 further characterised by said requesting of said reserved bandwidth for said Class 1 (C1) data to be provided to said loop including the steps of; the particular station (10, 12, 14, 16) requesting said Class 1 reserved bandwidth passing a bandwidth allocation token into said loop; every other station (10, 12, 14, 16) already in possession of Class 1 reserved bandwidth summing its respective amount of reserved Class 1 bandwidth into said bandwidth allocation token, and said particular station (10, 12, 14, 16) requesting said reserved bandwidth establishing reserved bandwidth up to the difference between the actual amount of Class 1 bandwidth (ALLOCATED) summed in the bandwidth allocation token and a predetermined upper limit (ALLOC) to the Class 1 reserved bandwidth on said loop.
10. A method according to Claim 9 further characterised by the step of any station (10, 12, 14, 16) receiving from said loop a bandwidth allocation token where the sum of its currently reserved Class 1 bandwidth and the so far summed Class 1 reserved bandwidth (ALLOCATED) from said loop contained in said bandwidth allocation token would exceed said predetermined upper limit (ALLOC) to Class 1 reserved bandwidth, relinquishing said currently reserved Class 1 bandwidth.
11. A method according to any of the preceding claims further characterised by the steps of; each station (10, 12, 14, 16) having Class 2 (C2) data to be provided to said loop comparing said measured time with said first predetermined time (TTRT - MAXFRAME); if said measured time is greater than said first predetermined time (TTRT - MAXFRAME), accumulating a lateness time equal to the sum of the running amount by which said measured time has exceeded said first predetermined time (TTRT - MAXFRAME); if said measured time is less than said first predetermined time (TTRT - MAXFRAME); subtracting from said accumulated lateness time the amount by which said measured time was less than said first predetermined time (TTRT - MAXFRAME); and providing any Class 2 (C2) data to said loop if and only if said accumulated lateness time is equal to or less than zero.
12. A method according to any of the preceding claims further characterised by the steps of; each station (10, 12, 14, 16) measuring the elapsed time duration since last receipt of a write token (in SFD); each station (10, 12, 14, 16) comparing said elapsed time with a maximum time limit (2 x TTRT); each station (10, 12, 14, 16) detecting if said elapsed time exceeds said maximum time limit (2 x TTRT); and the first station (10, 12, 14, 16) to detect if said elapsed time exceeds said maximum time limit (2 x TTRT) initiating a bidding cycle for recovery and regeneration of the lost write token (in SFD) by generation of a recovery token (also in SFD) and passing of said recovery token to that station (10, 12, 14, 16) next later in said loop.
13. A method according to Claim 12 further characterised by said bidding cycle including the steps of; said first station (10, 12, 14, 16) to generate said recovery token (in SFD) providing its own identifier address as the destination address (DA) for said recovery token; each station (10,12,14,16) in said loop receiving said recovery token passing on said recovery token around said loop unmodified if said destination address (DA) in said recovery token is greater than its own identifier address but substituting its own identifier address as said destination address (DA) for said recovery token (in SFD) for passing into said loop if its own identifier address is greater than the destination address (DA) in said recovery token; and any station (10, 12, 14, 16) receiving said recovery token and detecting that the destination address (DA) in said recovery token is equal to its own identifier address suppressing said recovery token and providing in its place to said loop a new write token.
14. A method according to Claim 12 further characterised by said bidding cycle including the steps of; said first station (10, 12, 14, 16) to generate said recovery token (in SFD) providing its own identifier address as the destination address (DA) for said recovery token; each station (10,12,14,16) in said loop receiving said recovery token passing on said recovery token around said loop unmodified if said destination address (DA) in said recovery token is less than its own identifier address but substituting its own identifier address as said destination address (DA) for said recovery token (in SFD) for passing into said loop if its own identifier address is less than the destination address (DA) in said recovery token; and any station (10, 12, 14, 16) receiving said recovery token and detecting that the destination address (DA) in said recovery token is equal to its own identifier address suppressing said recovery token and providing in its place to said loop a new write token.
15. A station (10, 12, 14, 16) for use in a loop communication network, said network including a set of stations (10, 12, 14, 16) providing data (SFD, EFD, INFO, SA, DA, FCS) flow unidirectionally from one station to another (10, 12, 14,16) around a loop, said station comprising; a through-passing data path (20, 22, 24, 26, 28, 38, 40, 36) operable to receive data (SFD, EFD, INFO, SA DA FCS) from said loop and operable to pass the received data (SFD, EFD, INFO, SA DA FCS) unaltered back onto said loop; data extraction means (20, 22, 24, 26, 28, 42) operable to extract data (INFO) from said loop; data injection means (32, 38, 24, 26, 34) operable to inject data (SA, DA, SFD, EFD, FCS, INFO) onto said loop; address recognition logic (28) operable to compare an incoming destination address (DA) from said loop with at least one identifier address and to provide output indicative of the match found therebetween to control said through-passing data path (20, 22, 24, 26, 28, 38, 40, 36) and said data extraction means (20, 22, 24, 26, 28, 42); transmit priority logic (32) operable to control provision to said loop of either Class 1 (C1) priority data requiring a guaranteed bandwidth, or Class 2 (C2) priority data not requiring a guaranteed bandwidth, or a mixture of data having both said Class 1 (C1) priority and said Class 2 (C2) priority; a token detector (26) operable to detect receipt of a write token (in SFD) from said loop and operable to provide indication thereof to said data injection means (32, 38, 24, 26, 34) to cause said data injection means (32, 38, 24, 26, 34) to provide any available data (INFO) to said loop; and a token generator (36) operable subsequently to provision to said loop by said data injection means (32, 38, 24, 26, 34) of any available data (INFO) to provide a fresh write token (in SFD) to said loop; said station (10, 12, 14, 16) being characterised by comprising a first timer coupled to be reset on each instance of said token detector (26) detecting a write token received from said loop and operable to measure the amount of time (ALLOCATED + C2POOL + LATEN + SYSADM) required for a write token (in SFD) to reappear from said loop; and said station (10, 12, 14, 16) being further characterised by said transmit priority logic (32) being operable to permit said data injection means (32, 38, 24, 26, 34) to provide any available data of said Class 2 (C2) priority to said loop in response to detection by said token detector (26) of a write token (in SFD) if and only if said measured time (ALLOCATED + C2POOL + LATEN + SYSADM) by said first timer is less than a first predetermined time limit (TTRT - MAXFRAME).
16. A station (10, 12, 14, 16) according to Claim 15, wherein said data injection means (32, 38, 24, 26, 34) comprises management logic (24) operable, in the event of said station (10, 12, 14, 16) having Class 1 (C1) data to be provided to said loop, firstly to allocate a first portion (ALLOCATED, UNITS) of the available bandwidth (ALLOC) for transmission of said Class 1 (C1) data and thereafter operable to allocate any residue of available bandwidth for provision to said loop of any Class 2 (C2) data.
17. A station (10, 12, 14, 16) according to Claim 15 or Claim 16, wherein said transmit priority logic (32) is further operable to control provision to said loop of Class 3 (C3) data not requiring any guarantee of a throughput rate, said transmit priority logic (32), in the event of said station (10, 12, 14, 16) having available any of said Class 3 (C3) data for provision to said loop, being operable to control said data injection means (32, 38, 24,26,34) to prevent provision of said Class 3 (C3) data to said loop unless said measured time (ALLOCATED + LATEN + C2POOL + SYSADM) is greater than a second predetermined time limit (0.6 TTRT - MAXFRAME).
18. A station (10, 12, 14, 16) according to any of Claims 15, 16 or 17 for use where said loop is a logical loop comprising a set of stations (10, 12, 14, 16) on a common communication medium, each station (10, 12, 14, 16) being free to communicate with any other station (10, 12, 14, 16) on said medium, the ordering of said stations (10,12, 14, 16) in said loop being enforced by passing said write token (in SFD) from one of said stations (10, 12, 14, 16) to another in a predictable order.
19. A station according to Claim 17, or according to Claim 18 when dependent upon Claim 17, wherein said transmit priority logic (32) comprises a second time (C3 timer) coupled to be set to said second predetermined time limit (0.6TTRT - MAXFRAME) on each instance of said token detector (26) detecting said write token and to be decremented towards zero residual time with passage of time thereafter, and wherein said transmit priority logic (32) further comprises a token holding timer coupled to be loaded with said residual time from said second timer (C3 timer) at each instance of said token detector (26) detecting said write token and to be decremented towards zero residual time with passage of time thereafter, said transmit priority logic (32) being operable to control said data injection means (32, 38,24,26,34) to provide any available Class 3 (C3) data to said loop only during that period when said token holding timer has a residual time, resulting from decrementing of said residual time from said second timer (C3 timer), greater than zero.
20. A station (10, 12, 14, 16) according to Claim 19 wherein said transmit control logic (32) further comprises a third timer (C2 timer) coupled to be set to said first predetermined time limit (TTRT - MAXFRAME) on each instance of said token detector (26) detecting said write token, and to be decremented towards zero residual time with passage of time thereafter, said transmit control logic (32) being operable, upon completion of provision of any Class 3 (C3) data to said loop, or immediately upon receipt of said write token in the absence of there being any Class 3 (C3) data to be provided to said loop, to load said residual time from said third timer into said token holding timer and to decrement said token holding timer towards zero residual time thereafter, said transmit control logic (32) being operable to control said data injection means (32, 38, 24, 26, 34) to provide any available Class 2 (C2) data to said loop only during that time period when said token holding timer has a residual time greater than zero.
21. A station (10, 12, 14, 16) according to Claim 15 or Claim 16, or according to Claim 18 when not dependent upon Claim 17 wherein said transmit priority logic (32) comprises a third timer (C2 timer) coupled to be set to said first predetermined time limit (TTRT - MAXFRAME) on each instance of said token detector (26) detecting said write token and to be decremented towards zero residual time with passage of time thereafter, and wherein said transmit priority logic (32) further comprises a token holding timer coupled to be loaded with said residual time from said third timer (C2 timer) at each instance of said token detector (26) detecting said write token and to be decremented towards a zero residual time thereafter, said transmit priority logic (32) being operable to control said data injection means (32, 38, 24, 26, 34) to provide any available Class 2 (C2) data to said loop only during that period when said token holding timer has a residual time greater than zero.
22. A station (10, 12, 14, 16) according to Claims 16, 17, 19 or 20, or according to Claim 18 when dependent upon Claim 16, wherein said token generator (36), in the event of said station (10, 12, 14, 16) having Class 1 (C1) data for provision to said loop, upon first availability of said Class 1 (C1) data, being operable to generate a bandwidth allocation token for provision to said loop to request a reserved bandwidth allocation for said Class 1 (C1) data, said station (10, 12, 14, 16) being operable to abandon said reserved bandwidth allocation for said Class 1 (C1) data subsequently to provision of said Class 1 (C1) data to said loop.
23. A station (10, 12, 14, 16) according to Claim 22, wherein said token detector (26) is operable to detect bandwidth allocation token received from said loop, wherein said management logic (24) is operable to add to a sum (ALLOCATED) in said bandwidth allocation token an indication of the amount of reserved bandwidth (UNITS) for said Class 1 (C1) data at said station (10, 12, 14, 16), wherein said token generator (36) is operable to pass said bandwidth allocation token to said loop with said incremented sum of reserved Class 1 (C1) data bandwidth (ALLOCATED) in the event of said incremented sum of reserved Class 1 (C1) data bandwidth (ALLOCATED) being equal to or less than a predetermined bandwidth limit (ALLOC), and wherein said management logic (24) is operable to abandon any Class 1 (C1) data bandwidth allocation at said station and said token generator (36) is operable to pass on said bandwidth allocation token with said sum (ALLOCATED) unaltered back into said loop in the event of the sum of any Class 1 (C1) bandwidth reserved at said station and the amount of Class 1 (C1) bandwidth (UNITS) indicated in said bandwidth allocation token (ALLOCATED) exceeding said predetermined Class 1 (C1) data bandwidth limit (ALLOC).
24. A station (10, 12, 14, 16) according to Claims 22 or 23, wherein said address recognition logic (28) is operable to recognise a bandwidth allocation token as having returned after passage around said loop when a destination address (DA) in said bandwidth allocation token equals said identifier address, and wherein said management logic (24) is operable to allocate to said station an amount of bandwidth for said Class 1 (C1) data up to the difference between said sum (ALLOCATED) received from said returned bandwidth allocation token and said upper limit (ALLOC) of allocatable bandwidth for said Class 1 (C1) data.
25. A station (10, 12, 14, 16) according to any of Claims 15 to 24 wherein said transmit priority logic (32) comprises a lateness timer, wherein said transmit priority logic (32) is operable to compare said measured time from said first timer for return of a write token to said station (10, 12, 14, 16) with said first predetermined time limit (TTRT - MAXFRAME), wherein said transmit priority logic (32) is operable to add the difference between said measured time and said first predetermined time limit (TTRT - MAXFRAME) to the contents of said lateness timer if said measured time exceeds said first predetermined time limit (TTRT - MAXFRAME), wherein said transmit priority logic (32) is operable to subtract the difference between said measured time and said first predetermined time limit (TTRT - MAXFRAME) from said contents of said lateness times if said measured time is less than said first predetermined time limit (TTRT - MAXFRAME), and wherein said transmit priority logic is operable to control said data injection means (32, 38, 24, 26, 34) to prevent said data injection means (32, 38, 24, 26, 34) from providing any Class 2 (C2) data to said loop if said contents of said lateness timer are greater than zero.
26. A station (10, 12, 14, 16) according to any of the preceding claims wherein said management logic (24) comprises an internal timer coupled to be reset on each instance of said token detector (26) detecting receipt of a write token from said loop and operable to provide indication of the elapsed time since last receipt of a write token being in excess of a third predetermined time limit (2 x TTRT), and wherein said token generator (36) is operable in response to said internal timer providing said indication to provide a recovery token to said loop to commence a bidding cycle for recovery of said write token on said loop.
27. A station according to Claim 26 wherein said token detector (26) is operable to detect receipt of a recovery token from said loop and to provide indication thereof, wherein said address recognition logic (28) is operable to compare a destination address (DA) in said recovery token with said identifier address and to provide output indication of the nature of match or mismatch therebetween, and wherein, in response to receipt of said indications from said address recognition logic (28) and from said token detector (26), said management logic (24) is operable to cause provision to said loop of a fresh recovery token wherein the destination address (DA) in said recovery token is unaltered if said destination address (DA) received from said loop in said recovery token is greater than said identifier address, to cause provision to said loop of a fresh recovery token wherein the destination address (DA) received from said loop in said recovery token is replaced by said identifier address if said destination address (DA) received from said loop in said recovery token is less than said identifier address, and to cause provision to said loop of a fresh write token if said destination address (DA) received from said loop in said recovery token equals said identifier address.
28. A station (10, 12, 14, 16) according to Claim 26, wherein said token detector (26) is operable to detect receipt of a recovery token from said loop and to provide indication thereof, wherein said address recognition logic (28) is operable to compare a destination address (DA) in said recovery token with said identifier address and to provide output indication of the nature of match or mismatch therebetween, and wherein, in response to receipt of said indications from said address recognition logic (28) and from said token detector, said management logic (24) is operable to cause provision to said loop of a fresh recovery token wherein the destination address (DA) in said recovery token is unaltered if said destination address (DA) received from said loop in said recovery token is less than said identifier address, to cause provision to said loop of a fresh recovery token wherein the destination address (DA) received from said loop in said recovery token is replaced by said identifier address if said destination address (DA) received from said loop in said recovery token is greater than said identifier address, and to cause provision to said loop of a fresh write token if said destination address (DA) received from said loop in said recovery token equals said identifier address.
EP83301185A 1982-03-05 1983-03-04 Timed token ring with multiple priorities Expired EP0089159B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US355021 1982-03-05
US06/355,021 US4404557A (en) 1982-03-05 1982-03-05 Timed token ring with multiple priorities

Publications (2)

Publication Number Publication Date
EP0089159A1 EP0089159A1 (en) 1983-09-21
EP0089159B1 true EP0089159B1 (en) 1986-01-29

Family

ID=23395924

Family Applications (1)

Application Number Title Priority Date Filing Date
EP83301185A Expired EP0089159B1 (en) 1982-03-05 1983-03-04 Timed token ring with multiple priorities

Country Status (6)

Country Link
US (1) US4404557A (en)
EP (1) EP0089159B1 (en)
JP (2) JPS59500347A (en)
CA (1) CA1208735A (en)
DE (1) DE3361948D1 (en)
WO (1) WO1983003180A1 (en)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4454508A (en) * 1982-03-05 1984-06-12 Burroughs Corporation Timed token ring
FR2527401A1 (en) * 1982-05-18 1983-11-25 Philips Ind Commerciale METHOD AND DEVICE FOR EXPLICIT DETERMINISTIC ALLOCATION OF TOKEN IN A DISTRIBUTED LOCAL NETWORK OF PRIORITY TRANSMISSION
GB2125653B (en) * 1982-08-04 1986-08-13 Plessey Co Plc Improved time slot arrangements for local area network systems
CA1201784A (en) * 1982-12-03 1986-03-11 Hiroshi Shimizu Loop network system controlled by a simple clock station
US4567590A (en) * 1983-12-27 1986-01-28 International Business Machines Corp. Message stripping protocol for a ring communication network
US4665518A (en) * 1984-02-13 1987-05-12 Fmc Corporation Synchronous/asynchronous communication system
US4663748A (en) * 1984-04-12 1987-05-05 Unisearch Limited Local area network
US4701908A (en) * 1984-06-22 1987-10-20 Canon Kabushiki Kaisha Network system utilizing plural station addresses
GB8417910D0 (en) * 1984-07-13 1984-08-15 British Telecomm Communications network
JP2642332B2 (en) * 1985-04-15 1997-08-20 株式会社日立製作所 Priority level update control method
US4667323A (en) * 1985-09-03 1987-05-19 Allen-Bradley Company, Inc. Industrialized token passing network
GB8525591D0 (en) * 1985-10-17 1985-11-20 British Telecomm Communications network
CA1263721A (en) * 1985-10-18 1989-12-05 Owen Lloyd Nelson Communication system for the transfer of small digital message blocks and large digital message blocks
IT1203544B (en) * 1986-03-05 1989-02-15 Cselt Centro Studi Lab Telecom ACCESS PROCEDURE TO A LOCAL NETWORK WITH UNIDIRECTIONAL RING TRANSMISSION LINE AND LOCAL NETWORK USING SUCH ACCESS PROCEDURE
GB8605613D0 (en) * 1986-03-07 1986-04-16 Limb J O Traffic scheduler
GB8618118D0 (en) * 1986-07-24 1986-09-03 British Telecomm Communications system
US4805170A (en) * 1987-04-29 1989-02-14 American Telephone And Telegraph Company, At&T Bell Laboratories Data communication network
US5001472A (en) * 1988-02-11 1991-03-19 Datapoint Corporation Uneven token distribution technique for token based local area network
US4860284A (en) * 1988-04-20 1989-08-22 American Telephone And Telegraph Company, At&T Bell Laboratories Method and apparatus for identifying location of a lost token signal in a data communication network
US5377327A (en) * 1988-04-22 1994-12-27 Digital Equipment Corporation Congestion avoidance scheme for computer networks
US5142623A (en) * 1988-06-10 1992-08-25 Westinghouse Electric Corp. High performance memory imaging network for a real time process control system
DE68920662T2 (en) * 1988-08-10 1995-09-07 Omron Tateisi Electronics Co Local network systems.
US5163149A (en) * 1988-11-02 1992-11-10 International Business Machines Corporation Combining switch for reducing accesses to memory and for synchronizing parallel processes
JP2523882B2 (en) * 1989-07-13 1996-08-14 株式会社東芝 Data transmission equipment
US5193151A (en) * 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
US4964113A (en) * 1989-10-20 1990-10-16 International Business Machines Corporation Multi-frame transmission control for token ring networks
US5235593A (en) * 1989-12-01 1993-08-10 National Semiconductor Corporation Ring latency timer
US5051986A (en) * 1989-12-01 1991-09-24 National Semiconductor Corporation Asynchronous priority select logic
US5029164A (en) * 1990-04-13 1991-07-02 Digital Equipment Corporation Congestion avoidance in high-speed network carrying bursty traffic
EP0453863A2 (en) * 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
US5119374A (en) * 1990-05-29 1992-06-02 Advanced Micro Devices, Inc. Method of and system for implementing multiple levels of asynchronous priority in FDDI networks
US5341374A (en) * 1991-03-01 1994-08-23 Trilan Systems Corporation Communication network integrating voice data and video with distributed call processing
US5351242A (en) * 1992-04-14 1994-09-27 Marian Kramarczyk Method and apparatus for configuring and maintaining token ring networks
US5539727A (en) * 1992-04-14 1996-07-23 Kramarczyk; Marian Method and apparatus for configuring and maintaining token ring networks
JP3251640B2 (en) * 1992-06-18 2002-01-28 株式会社東芝 Data transmission method and device
CA2095755C (en) * 1992-08-17 1999-01-26 Mark J. Baugher Network priority management
GB2278258A (en) * 1993-05-17 1994-11-23 Ibm Token ring network
US6125398A (en) * 1993-11-24 2000-09-26 Intel Corporation Communications subsystem for computer-based conferencing system using both ISDN B channels for transmission
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
CN1127829C (en) * 1996-03-08 2003-11-12 西门子公司 Method and device for transmitting previous definite priority classification data packet using ethernet from first device to at least one other device
US6049549A (en) * 1997-08-14 2000-04-11 University Of Massachusetts Adaptive media control
JP3145083B2 (en) 1998-08-04 2001-03-12 松下電器産業株式会社 Transmission system, bandwidth management device, and bandwidth management method
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
JP4778056B2 (en) * 2006-06-30 2011-09-21 三菱電機株式会社 Communication node and communication system ring establishment confirmation method
FR3007916B1 (en) 2013-06-28 2016-11-25 Thales Sa INFORMATION TRANSMISSION SYSTEM USED IN PARTICULAR IN AVIONIC APPLICATIONS
US10205666B2 (en) * 2013-07-29 2019-02-12 Ampere Computing Llc End-to-end flow control in system on chip interconnects
US11211748B2 (en) * 2020-03-02 2021-12-28 Dell Products L.P. Network port connector ejection system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3903371A (en) * 1974-07-01 1975-09-02 Bell Telephone Labor Inc Common control framing detector
US4001504A (en) * 1975-06-09 1977-01-04 International Business Machines Corporation Automatic terminal data rate selection
SE393723B (en) * 1975-09-18 1977-05-16 Philips Svenska Ab WAY TO TRANSFER DATA BETWEEN A CENTRAL STATION AND A NUMBER OF TERMINAL STATIONS VIA A CLOSED SERIES TRANSMISSION LOOP AND FACILITIES FOR CARRYING OUT THE KIT
US4161719A (en) * 1977-10-04 1979-07-17 Ncr Corporation System for controlling synchronization in a digital communication system
US4346440A (en) * 1978-06-30 1982-08-24 Motorola, Inc. Advanced data link controller
US4251880A (en) * 1979-07-31 1981-02-17 Bell Telephone Laboratories, Incorporated Digital loop switch for controlling data information having differing transmission characteristics
US4344180A (en) * 1980-06-19 1982-08-10 Bell Telephone Laboratories, Incorporated Redundant word frame synchronization circuit
US4320520A (en) * 1980-06-27 1982-03-16 Rolm Corporation Transmitter/receiver for use on common cable communications system such as ethernet
US4316284A (en) * 1980-09-11 1982-02-16 Bell Telephone Laboratories, Incorporated Frame resynchronization circuit for digital receiver
JPS5860849A (en) * 1981-10-08 1983-04-11 Oki Electric Ind Co Ltd Control system for congestion of loop network
JPS58111454A (en) * 1981-12-24 1983-07-02 Oki Electric Ind Co Ltd Token controlling system in decentralized control type ring network

Also Published As

Publication number Publication date
CA1208735A (en) 1986-07-29
JPH0423855B2 (en) 1992-04-23
JPH0824303B2 (en) 1996-03-06
WO1983003180A1 (en) 1983-09-15
JPS59500347A (en) 1984-03-01
EP0089159A1 (en) 1983-09-21
JPH0750679A (en) 1995-02-21
US4404557A (en) 1983-09-13
DE3361948D1 (en) 1986-03-13

Similar Documents

Publication Publication Date Title
EP0089159B1 (en) Timed token ring with multiple priorities
US4445116A (en) Method for allocating bandwidth between stations in a local area network
US4593280A (en) Write token regeneration in a timed token ring
US4459588A (en) Timed token protocol for local area networks
US4454508A (en) Timed token ring
US4538147A (en) Bandwidth allocation in a token controlled loop communications network
EP0258604B1 (en) A method of transmitting a token in a communication ring
US4566097A (en) Token ring with secondary transmit opportunities
US4663748A (en) Local area network
US5487066A (en) Distributed intelligence network using time and frequency multiplexing
EP0463528B1 (en) Method for controlling the insertion of stations into a fiber distributed data interface network
EP0100662A2 (en) Digital communication system
van As et al. CRMA ll: A Gbitls MAC Protocol for Ring and Bus Networks with Immediate Access Capability
US5155725A (en) Adaptive token release mechanism for ring networks
CA2120542C (en) Cell relay transport mechanism
US4841523A (en) Method of accessing local area networks with a unidirectional ring-transmission line, and local area network using this method
Dupuy et al. Protocols for high-speed multimedia communications networks
US6104714A (en) Method and apparatus for allowing communication in an isochronous traffic of asynchronous transfer mode (ATM) cells in a ring network
GB2171880A (en) Local area network
Hutchison Local area networks: an introduction
AU3798693A (en) Accelerated token ring network
AU639665B2 (en) Distributed intelligence network
Cohen et al. A new scheme for dynamic management of isochronous channels in integrated rings
Nche et al. Implementing the Orwell protocol over a fibre-based high-speed ATM network
EP0758190A1 (en) Method and apparatus for communication of ATM cells in a ring network

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19830308

AK Designated contracting states

Designated state(s): BE DE FR GB NL SE

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Designated state(s): BE DE FR GB NL SE

ET Fr: translation filed
REF Corresponds to:

Ref document number: 3361948

Country of ref document: DE

Date of ref document: 19860313

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

RAP2 Party data changed (patent owner data changed or rights of a patent transferred)

Owner name: BURROUGHS CORPORATION (A DELAWARE CORPORATION)

BECN Be: change of holder's name

Effective date: 19860129

26N No opposition filed
NLT2 Nl: modifications (of names), taken from the european patent patent bulletin

Owner name: BURROUGHS CORPORATION TE DETROIT, MICHIGAN, VER. S

EAL Se: european patent in force in sweden

Ref document number: 83301185.1

REG Reference to a national code

Ref country code: FR

Ref legal event code: CD

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 20001222

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: SE

Payment date: 20010301

Year of fee payment: 19

Ref country code: FR

Payment date: 20010301

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: BE

Payment date: 20010417

Year of fee payment: 19

REG Reference to a national code

Ref country code: GB

Ref legal event code: IF02

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20020205

Year of fee payment: 20

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20020305

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20020327

Year of fee payment: 20

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20020331

BERE Be: lapsed

Owner name: *UNISYS CORP.

Effective date: 20020331

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20021001

EUG Se: european patent has lapsed

Ref document number: 83301185.1

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20021129

NLV4 Nl: lapsed or anulled due to non-payment of the annual fee

Effective date: 20021001

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20030303

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Effective date: 20030303