CA1125405A - Method of rotating priorities between stations sharing a communication channel - Google Patents

Method of rotating priorities between stations sharing a communication channel

Info

Publication number
CA1125405A
CA1125405A CA348,921A CA348921A CA1125405A CA 1125405 A CA1125405 A CA 1125405A CA 348921 A CA348921 A CA 348921A CA 1125405 A CA1125405 A CA 1125405A
Authority
CA
Canada
Prior art keywords
station
channel
address
stations
count
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
CA348,921A
Other languages
French (fr)
Inventor
Robert G. Burke
Robert F. Martin
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.)
Control Data Corp
Original Assignee
Control Data 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 Control Data Corp filed Critical Control Data Corp
Application granted granted Critical
Publication of CA1125405A publication Critical patent/CA1125405A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot

Abstract

Abstract This disclosure relates to a method of rotating priorities among stations on a communication channel, and particularly on a contention channel where a plurality of active stations are provided, each capable of seizing use of the channel. A counter device at each station contains an indication rep-resentative of the station having highest priority to the channel. Each station establishes a priority rank for itself based upon the contents in the counter device. The indication is sequentially altered to provide priority to other stations. The priority indications in the counter device are synchro-nized each time a station seizes use of the channel, and may also be syn-chronized periodically if no station seizes use of the channel.

Description

i~Z5~)5 This invention relates to a method of eliminating conflicts on a communication channel, and particularly to a method of sequentially allocating priority to each of a plurality of stations sharing a communication channel.
This application is related to Canadian patent No. 1,097,763 for "Method and Apparatus for Eliminating Conflicts on a Communication Channel" by Eugene G. Blumke and Philip E. White granted March 17, 1981 and assigned to the same assignee as the present application.
; A contention channel is a communication channel providing shared communications among a plurality of stations. Typically, the stations comprise components of a data processing system, such as processors, device controllers, etc. Typically, the contention channel is shared by a plurality of "active"
stations, any of which can initiate communications; "passive" stations, namely ;those stations capable of responding when addressed but which cannot independ-ently initiate an exchange of communications, may also be included.
In a pure contention channel, an active station transmits onto the channel whenever it has a message to send. One problem with such pure channels resides in the fact that if two or more stations are ready to transmit over the same period of time, there will be a mutual garbling of messages as the messages overlap. While pure channels may be adequate for light traffic channels, the channels are not capable of being greatly expanded to serve more stations because the channels may not be capable of handling the increased traffic re-sulting from more stations. Further, the repeating of garbled messages tends to increase traffic on the channel, thereby increasing the liklihood of garbling messages.
To overcome some of the problems with pure contention channels it has been common to provide lock-out of all nontransmitting stations while the channel is active. Thus, "channel active" and "channel idle" signals are .,q~ ~

: ~ .. ...
.. :: ~ .

il~S~5 imposed on the channel, and any station ~eady to transmit will haye to wait until the channel is idle ~efore a tTansmission can be initiated. However, if two or more stations aTe awaiting a channel idle status, they will both seize the channel as soon as the channel becomes idle, thereby resulting in garbled messages and the necessity to repeat transmissions. To overcome this problem, it has been proposed to inhibit each station from seizing the channel for some predetermined period of time following channel idle status. By pro-viding a different time delay for each station, the likelihood of conflict between two or more stations becomes quite remote. In effect, by allocating different time delays to the several stations, the stations have fixed orders of priorities with those stations having shorter time delays having greater priority over stations with longer time delays. For a more detailed discus-sion concerning prior communication systems, reference may be had to the afore-mentioned Blumke and White applîcation. While for many applications it is possible to allocate less important stations to the lower priorities to there-by adequately serve all stations, such an arrangement may not be satisfactory in environments where some stations cannot be appreciably subordinate to other stations. In this respect, certain system designs may require each station to have substantially equal opportunity to seize use of the channel. Also, in extremely high traffic channels significant delays may occur before lower priority stations are able to seize the channel, as higher priority stations prevent such lower priority stations from being served.
It is, therefore~ desirable to rotate the allocation of priorities between the stations, and it is a primary object of the present invention to provide a technique whereby the allocation of priorities of stations on a communication channel may be altered.
~o~Cn ~
The aforementioned Blumke and White A~pi.eYrih~rovercomes the afore-said problems by allocating a time slot for each station while inhibiting all , , .. ~ ,, ~ . -.

5;4~15 other stations. The present inventi~on conce~ns alterin~ the time delays for each station to thereby alter the allocation of priorities.
It is- there~ore another object of the present invention to provide, for a contention channel having a plurality of active stations, each of which is capable of seizing use of the channel, a technique of altering the alloc-ation of the priority of the stations by periodically changing the time delays for each station.
In certain communication channels the problems associated with priority allocation are overcome through use of interrogation and responding techniques whereby a central station interrogates (polls) each peripheral station in sequence to enable the polled station to transmit if ready. How-ev~r, such arrangements are not well suited to situations where the peripheral stations themselves will exchange messages without interference or control from a central station. Further, the polling of the peripheral stations requires that each peripheral station respond to the interrogation of the central station, as opposed to peripheral stations seizing the channel when the station is ready to transmit and the channel is inactive. Accordingly, it is a further object of the pres0nt invention to provide a technique whereby priority between stations is allocated and the allocation of priority is sequentially altered, all without the control of interference of a central station.
In accordance with the present invention, conflicts on a communi-cation or contention channel shared by a plurality of stations, each capable of seizing use of the channel, are minimized by providing a different time delay for each station after which that station is enabled to seize use of the channel. The time delay is provided by cyclic counter means which is con-tinuously advanced in count. Register means is provided by storing a rep-resentation ~e.g., address) of the identity of the one station having the . `

- l~'Z54tU5 highest priorIty. Means in each station es*ahlishes a unique priority rank for that station based on the representation stored in the register, the priority rank being related to a unique count. When the counter means ad-vances to the count associated with that station's priority rank~ the station is enabled to seize use of the channel.
One feature of the present invention resides in synchronizing the representation in all of said register means each time a station seizes use of the channel.
Another feature of the present invention resides in synchronizing the representation in all of said register means when one of the stations has been enabled a predetermined number of times without any of the stations actually seizing use of the channel.
Another feature of the present invention resides in the resetting of all of the counter means each time that a station seizes use of the channel, thereby assuring s~lchronism of the counter means.
In accordance with another feature of the present invention, the system can be operated with or without idle channel conflict suppression.
When using idle channel conflict suppression, each station will be accorded a time slot, at a time dependent upon the priority rank, during which that station may seize use of the channel to the exclusion of all other stations.
When operated without idle channel conflict suppression, a station may seize use of the channel any time after completion of its time delay.
Thus, in accordance with one aspect of the invention, there is provided apparatus for allocating use of a communication channel shared by a plurality of stations, each station having a respective address and each station having a controller responsive to an enable signal to enable the station to seize use of the channel, said apparatus comprising, at each station: register means for storing a representation of the address of the :

,. ' . `

5~5 station having the highest priority; means-responsive to the representation stored in said register means and to the address associated with the respect-ive station for establishing a priority number for the respective station;
cyclic counter means for storing a count number; clock means for continuously advancing the count number in said counter means^and compare means responsive to a comparison between said count number and said priority number for pro-viding said enable signal to said controller.
In accordance wi~h another aspect of the invention there is provided the method of reducing conflicts on a communications channel shared by a plurality of stations, each station having controller means responsive to an enable signal to enable the station to seize use of the channel, said method comprising: determining, for each station, a mutually exclusive priority number; advancing a count in a counter means from a number not larger than said priority number, and pro~iding said enable signal when the count reaches said priority number.
The above and other features of this invention will be more fully understood from the following detailed description and the accompanying draw-ing, in which:
Figure 1 is a block circuit diagram of the priority allocation and control unit for a station of a contention channel in accordance with appara-tus for carrying out the present invention; and Figure 2 is a block circuit diagram of a modification of the appara-tus shown in Figure 1.
With reference to the drawings which illustrate block circuit dia-grams of the priority allocation and control unit for a single station of a contention or communication channel, a typical contention channel will include the communication channel and a plurality of stations, at least some of which are active stations; that is, stations which can initiate communications. A

:: .

11;~5~5 typical station may include, for example, a peripheral device, such as a mem-ory or a disc drive for a data processing system as well as a device control-ler. The device controlleT provides the interface between the peripheral device and the contention channel. The controller has a unique address which, for ex~nple, may be represented in binary code (and in the example to be here-in given it will be assumed that the address comprises a four-bit code, there-by permitting up to sixteen unique addresses). Since the peripheral devices, device controllers and communication channel are well known in the art, they are not shown in the drawings.
In accordance with the present inYention, each station includes apparatus for priority allocation and control, an exa~ple of such apparatus being shown in the drawing and constituting the presently preferred embodi-ment of such apparatus.
As shown in Figure l there is illustrated a counter 10 having an input from a clock and a carry output to cyclic counter 12. Counters 10 and 12 have reset inputs from OR gate 14 which in turn receives a channel active signal from the station controller and a signal from compare circuit 16.
Counter 12 also provides a 4-bit output to compare circuit 16, whose other 4-bit input is received from register 18 which contains an indication of the maximum address (that is, the address of the station having the highest address).
Register 20 receives a 4-bit input from the controller to store the address or representation of the indication of the station having the highest priority. Register 22 contains the 4-bit address of the particular station.
Subtract circuit 24 receives its inputs from registers 18, 20 and 22 and provides a 4-bit output to one input of compare circuit 26. The other input of compare circuit 26 is received from counter 12. Compare circuit 26 pro-vides outputs to cycle counter 28 and to the AND input of NAND gate 30. NAND

`
' 1~2~ 35 gate 32 recei~es its AND input f~om the channel active signal and its NOT
input from the station transmitter controller. NAND gate 32 p~ovides its out-put to the NOT input of NAND gate 30. NAND gate 30 provides a transmit enable output to the station controller, and counter 28 provides an all call signal output to the station controller.
For purposes of illustration, co-mter 10 may be a 9-bit counter and counter 12 may be a 4-bit counter. Alternatively, counters 10 and 12 may be replaced with a single 13-bit counter having only its four most significant bits providing inputs to compare circuit 16. Station address 22 and maximum address 18 may be contained in registers, but it is preferred that they are embodied in 4-bit hexadecimal manual switches to provide binary outputs rep-resentative of the local station address and the maximum number of stations on the channel, respectively. For example, if there are twelve active stations on the channel with addresses of 0000 through 1011, the maximum address 18 set in all stations will be 1100, whereasthe local station address will be that of the respective local station.
For purposes of explanation, it will be assumed there are twelve active stations associated with the communication channel having addresses of 0000 through lOll (0-11). ~herefore, binary twelve (1100) is set in all max-imum addresses 18. It is further assumed that all counters 10 and 12 are set to zero and that all registers 20 contain the address of the eighth station, which is binary 7 (0111). It will also be assumed that the seventhl eighth and ninth stations are not ready to transmit (nor will be ready to transmit when accorded the opportunity to seize use of the channel), but that the tenth station is ready to use the channel.
Under the conditions as stated, and assuming the channel is in-active, subtract circuit 24 in station eight will note a zero difference between the contents of register 20 and the local address ~all other subtract .

: . :

.:

S~t5 circuits will note dif~erent result)A ? 50 subtract circuit 24 of the eigllth unit will provide a zero binary signal to compare circuit 26 of the eighth station. In station nine, subtract circuit 24 subtracts the binary count in register 20 (assumed to be 0111) ~rom the address of station nine (1000) and notes a plus-one count. The binary signal (0001) is forwarded to compare circuit 26 of the ninth station. Likewise, in station ten, subtract circuit 24 notes a plus two difference and forwards a binary 0010 to its compare circuit 26. It will be appreciated that the subtract circuit 24 in each station produces a unique priority number j based upon the difference between the contents of register 20 ~which contains the current displacement number d or address of the station currently having the highest priority) and the local station address i in hexadecimal switch 22. Thus, subtract circuit 24 deter-mines j by j = i - d (where i ~ d) and by n - ~d - i) (where d > i) where n is the number of stations on the channel. Thus, subtract circuit 24 determines j by j - ¦i - d¦ mod n.
The module n count is supplied by the binary signal from maximum address 18.
It will be appreciated that under the conditions stated, station seven has a priority number of zero (0000), station eight has a priority number of one (0001), station nine has a priority number of two ~0010), station ten has a priority number of three (0011) and so on through station six which has a priority number of eleven ~1011).
The priority number j is forwarded to one input of compare circuit 26, whose other input is received from counter 12 (or the four most signifi-cant bits of a counter combining counters 10 and 12). It has been assumed that both counters 10 and 12 are set to zero (0000). Under these conditions, the count, x, in all counters 12 is forwarded to the respective compare cir-cuit 26. However, since only station seven has a priority number, j, which -. '`;
`~

11~5~

matches the count x from register 12, only compare circuit 26 of station seven will pass a signal to cyclic counter 28 and to NAND gate 30.
It will be appreciated by those skilled in logic design that NAND
gates 30 and 32 are connected as an INHIBITED AND-NOT gate 34, providing an output whenever a signal is present from compare circuit 26 and no signal is present from the channel active bus, or whenever all three input signals are present. More particularly, if the signal from compare circuit 26 is signal A, the signal from the channel active bus is signal B, and the transmitter active bus is signal CJ gate 34 provides a logical output of AB + ABC. Gate 34 provides a transmit enable signal to the station controller to enable the station to seize use of the channel. (As will be more fully explained herein-after, the channel active signal is present whenever any station has seized use of the channel, and the transmitter active signal is present whenever the particular local station has already seized use of the channel.) Since only station seven contains a priority numberJ jJ which mat-ches the countJ XJ in counter 12, only station seven sends a signal to counter 28 and gate 34. Since the channel is assumed not to be activeJ no channel active signal is presentJ so NAND gate 30 is activated to provide a transmit enable signal to station seven. Since it has been assumed that station seven is not ready to seize use of the channel, nothing further occurs.
The clocks connected to co~mters 10 are each preferably free run-ning crystal controlled clocks at each station providing a 50 Megahertz out-put. (AlternativelyJ the clock signals could be provided via the communi-cation channelJ but that arrangement is not as preferable.) As a resultJ
counter 10 advances in count at the rate of 50 Megabits per second. Counter 10 is a 9-bit counter whose carry output is connected to counter 12. AS a resultJ counter 10 provides a carry bit output at the end of each 256 cycles of the clock. Upon each carry output from clock 1OJ the count in clock 12 , g _ ..

5~S

advances by one count. Hence, in the case where the count in counter 12 was 0000~ upon a carry output from counter 10, the count in counter 12 advances to 0001, which matches the priority number, j, of station eight. ~lence, the com-pare circuit 26 in station eight notes a comparison between the count x in its register 12 and the priority number j from its subtract circuit to cause gate 30 to provide a transmit enable signal to the station eight controller. Since station eight is not ready to seize use of the channel, nothing further occurs and the clock continues to advance registers 10 and 12 in count until counter 12 advances in count to 0010, which matches the priority number, j~ of the ninth station. Since the ninth station is not ready to transmit, the process continues until the count in counters 12 advances to 0011, which matches the priority number of the tenth station.
Since the tenth station is ready to seize use of the channel, the tenth station controller responds to the transmit enable signal to impose a message and message carrier signal onto the channel. The carrier signal is received by all controllers to impose a "channel active" signal on the res-pective OR gates 14 to reset all counters 10 and 12 to zero. Counters 10 and 12 are held to a zero count as long as the channel active signal is present.
All stations, other than the one whose priority number, j, is zero will be prevented from being enabled by virtue of a non-comparison by their respective compare circuits 26. Upon seizing the channel, station ten will provide a "set count" signal for insertion into current displacement register 20. As will be seen hereinafter, the "set count" signal may be the address of the station seizing use of the channel (station ten, in this case), in which case only station ten will continue to receive a transmit enable signal. ~As will be more fully understood hereinafter, station ten can be programmed to insert a different station address into all registers 20, in which case the gate circuit 34 will inhibit a transmit enable to the station having priority.) ~s It is evident that upon seizing use of the channel, the resetting of counters 10 and 12 assure synchronization of all counters. When a seizing station discontinues use of the channel, the channel active signal is dropped thereby permitting the clock to again advance the counts in counters 10 and 12 as herein described. Hence the process will continue.
It will be readily appreciated that once a station seizes use of the channel, the channel is entirely dedicated to that station, but only for so long as that station requires use of the channel. A seizing station might, for example, transmit a message to another station, hold the channel until the receiving station transmits a reply, and continue to hold the channel until the reply message is verified for accuracy, all as well-known in the art. Thus, if a seizing station initiates communication with another station, the second station does not impose its address onto the channel to cause any change in the contents in counters 16. ~In this respect, the res-ponding station may be an active or a passive station and may or may not have an address. Further, if the responding station is a passive station, it would not have the apparatus described above.) When the tenth station has completed its use of the channel ~for example by successfully receiving a reply from an interrogated station), it drops the message carrier signal from the channel, thereby reverting the channel to a channel idle status. Thus counters 10 and 12 are permitted to restart their resp0ctive counts. In the example given wherein station ten placed its own address in all registers 20, station ten will have the highest priority, station eleven will have the next highest priority, etc., with station nine having the lowest priority.
~ hen the counts in counters 12 reach that of the total number of stations on the channel ~indicative of the total number of devices on the channel - which in the example is assumed to be 1100), comparator 16 notes .

. 11 -::

11;~5~(~5 the comparison with the value set by maximum address 18 so as to reset all counters 10 and 12 to 0000. This assures that time will not be wasted giving priority to nonexistent stations. (If there are sixteen stations on the channel, compare circuit 16 and maximum address 18 may be eliminated, as synchronization of the counters will be assured as hereinafter explained.) Each time a particular station detects a compare between counter 12 and the priority number, the count in the associated cycle counter 28 advances by one. Each time a station seizes use of the channel, all con-trollers impose a "cycle clear" signal onto counters 28 to thereby reset all counters 28 to zero. However, if all stations are inactive and therefore are given the opportunity to seize the channel but do not, each counter 28 is advanced by one each time the corresponding station was enabled. If the count in one of the counters 28 advances to three ~indicative of no activity on the channel for two full cycles of allocation of priority to each station), ; the counter 28 reaching two initiates an "all call" signal to the peripheral device controller associated with that counter 28 forcing that controller to ~ seize use of the channel. The station seizing the channel will transmit its ; address via the "set count" lines to all registers 20 to synchronize the ad-dresses in registers 20 and will force all counters 10 and 12 to the reset to zero as heretofore described. Thus, the synchronization of the counts in counters 10 and 12 are assured. Therefore, it will be appreciated that re-synchronization of the counts in all counters 10 and 12 occurs each time a station seizes the channel, and in no event less often than every third prin-cipal cycle.
It will be appreciated to those skilled in the art that the number of stations can be increased above sixteen given in the example by increasing the size of counters 12 and by increasing the capacity of compare units 16 and 26 and registers 20. For exa~lple, up to 32 stations can be accommodated J

' ~ ` '' ' i~L25~5 by a five-bit code or 64 stations by a six-bit code.
It will be appreciated that the clock associated with each counter 10 may be a local clock unit at each station, or may be a master clock for the entire channel. Preferably, however, there is a separate clock for each station contained in the station's control unit. In any case, the clock pulses provided to the counters 10 should be substantially synchronized and at the same rate.
Compare circuit 26 may be operated in either of two ~odes: one in which an output signal is provided only when a comparison is detected ~i.e., when x = j), and the other in which an output signal is provided whenever the number in counter 12 equals or exceeds the priority number (x ~ j). In the case where compare circuits 26 are arranged to provide an output only when x = j, the arrangement is such as to provide idle channel conflict suppres-sion, and there can be no conflict between stations. In essence, when operated in this mode, each station can seize use of the channel only when the number in its counter 12 equals the priority number. As a result, each station has its own unique time slot during which it can seize use of the channel. In the case where compare circuits 26 are arranged to provide out-puts whenever x ~ j, the arrangement is such as to not provide idle channel conflict suppression. In this case a station may seize use of the channel anytime after its priority number is reached in counter 12. Thus, conflicts are possible on an idle channel only in the unlikely event that two stations, which have already been accorded priority, happen to be made ready to seize use of the channel simultaneously. Idle channel conflict suppression offers the assurance of no conflicts on the channel, but requires dedication of the channel to the successive stations. Without idle channel conflict suppres-sion, priorities are allocated and rotated, and any station can, after a time delay dictated by counter 12, be accorded use of the channel, but conflicts ':

l~Z5~

can occur as herein described. However, the present invention permits com-munication with or without idle channel conflict suppression, in accordance with the design of the system.
Figure 2 illustrates a modification of the present invention and, particularly, it illustrates the presently preferred embodiment of the pre-sent invention. The apparatus shown in Figure 2 is essentially the same as that shown in Figure 1, except for the inclusion of gates 40 and 42, the sub-stitution of flip-flop 44, switch 46 and OR gate 48 for gate circuit 34, and the connection of the reset of cycle counter 28 to the channel action signal rather than the cycle clear signal. Also, instead of compare circuits 26 providing a steady output ~i.e., by setting a flip-flop) for the mode without idle channel conflict suppression, compare circuits 26 provide outputs only when a comparison is made and gated by gate circuit 42.
Gate 40 is connected to the carry output of counter 10 and enables compare circuit 16 to compare maximum address n with count x only when a carry output occurs from counter 10 (i.e., when counter 10 is zero). Also, gate 42 is connected to counter 10 to enable compare circuit 26 to compare count x with subtract result j only when counter 10 contains all binary ones.
Hence, there can be no conflict between the comparators, and the risk of error occurring as the counts in counter 12 changes is minimi~ed.
As shown in Fi~ure 2, counter 36 may be reset to zero by the channel active signal, thereby affectuating reset of all counters 36 whenever the channel is active. If reset of counters 36 are affectuated in this manner, the cycle clear signal may be eliminated.
As shown in association with OR gate 48, the transmitter active sig-nal from the station's transmitter is fed through the OR gate 48 to provide the station's transmit enable. Thus, as long as the station is transmitting, the transmit enable signal is provided. The circuitry associated with flip-_ 14 -: .

5~

flop 44 and switch 46 provide selective operation between the modes of with and w:ithout idle channel conflict suppression. As heretofore explained, idle channel conflict suppression occurs only when compare circuit 26 determines that x= j and the station's transmitter is enabled only when x = j. If the station transmitter is enabled and held enabled when and after compare circuit 26 detects x = j (that is, whenever x 2 j), there is no idle channel conflict suppression.
With switch 46 in the position shown in the drawing, the station is in the mode without idle channel conflict suppression. If no station seizes use of the channel before a particular station's comparator 26 detects x = j, that station's flip-flop 44 is set (s~ore) to provide a continuous output through switch 46 to OR gate 48 to provide a transmit enable signal. The transmit enable signal holds the station enabled to transmit until the channel subsequently becomes active and flip-flop 44 is reset to the opposite con-dition. It is possible, in idle channels, for many or all stations to become enabled so that the first which subsequently becomes ready to transmit im-mediately seizes use of the channel. When the channel becomes active, the channel active signal resets flip-flops 44 to remove the signal from OR gate 48.
With switch 46 in the position opposite that shown in Figure 2, the unit is in the mode with idle channel conflict suppression. Thus, compare circuit 26 provides an output to OR gate 48 through switch 46 when x = j, thereby providing a transmit enable signal only when x ~ j.
If it is desired to remove the selectibili~y feature of switch 46, a unit to be operated in the mode with idle channel conflict suppression could have a direct connection between the output of compare circuit 26 and the input of OR gate 48, and flip-flop 44 and switch 46 could be eliminated.
A unit permanently operated in the mode without idle channel conflict sup-. .

5~6)S

pression could have switch 46 eliminated and a direct connection between the set side of flip-flop 44 and OR gate 48 be substituted (electrically identical to the switch position shown in Figure 2).
One feature of the present invention resides in the fact that when a station seizes use of the channel, it inserts an address into all displace-ment registers 20. While the foregoing description has been directed to the situation wherein the address inserted into the register 20 is the address of the seizing station ~in which case the gate circuit 34 may be eliminated as described above), the address to be inserted in registers 20 may be any ad-dress desirable. For example, in the case where the address in registers 20was that of the seventh station, when a station seizes use of the channel, it can be programmed to insert the next station address ~i.e., that of the eighth station) into the register 20. Thus in the example given where the tenth station seized use of the channel, it could be programmed to insert the next higher address of that previously in register 20, so station ten would add one to the address of station seven ~which was in register 20) and transmit the new address ~that of station eight) onto the channel for input into all registers via the set count input. In this case, since when station ten seized use of the channel the counters 12 were reset to zero, it is possible for station eight ~which will have the highest priority when the channel is relinquished~ to attempt to seize use of the channel. This is prohiblted by NAND gate 30 being inhibited from operation by the presence of the channel active signal.
Another feature concerning insertion of different addresses into registers 20 resides in retransmit features. In this respect, if instead of inserting its own address in all registers 20 the seizing station inserts the next smaller address (i - 1) into all registers 20, the seizing station will have second priority upon relinquishment of the channel. Hence, in the :
:

11 25~)5 example, station ten will insert the address of station nine into all regis-ters 20 so that upon relinquishing the channel station ten will again be en-abled to use the channel immediately ~unless, of course~ if station nine be-comes ready to use the channel).
As one skilled in logic design can readily determine from an inspec-tion of Figure 1, gate 34 may be replaced with a NAND gate whose NOT input is connected to the channel active signal. However, if it is desirable to permit some stations to tr~msmit their own address for insertion into registers 20 and permit other stations to transmit other addresses, the gate circuit 34 shown in the drawing provides the greatest versatility. In the case where the seizing station transmits some other address, all stations are inhibited by virtue of either a lack of compare signal from the comparator ~6 or an inhibit by virtue of the presence of a channel active signa]. ~Since only that non-transmitting station whose address was transmitted has highest priority, NAND
gate 32 will be operated by the channel active signal in all but the seizing station to provide an inhibit signal to gate 30. ~hen the channel becomes de-active, the station whose address was inserted into the registers 20 will have the highest priority.) In the case where the seizing station transmits its own address ~so it is the only station capable of being enabled after reset of counter 12), the transmit enable signal is held by virtue of a signal from the seizing station's transmitter to the NOT side of its own gate 32 to in-hibit gate 32, thereby permitting gate 30 to continue to operate. Additional-ly, it may be desirable to eliminate the "clear cycle" reset of counter 28 and permit it to be reset by direct operation of a transmitter active signal.
It will be recognized that the distance between stations connected to a channel may be quite large ~e.g., on the order of several thousand feet).
Therefore, signal propagation delays must be accounted for in the design of the system. Further, since the channel active signal from a seizing station 11'~54~5 may be received at different times by the other stations (due to signal pro-pagation delays), there must be sufficient time between changing the priority allocation to permit all stations to receive transmissions on the channel before allocating the channel to another station.
It is evident that during start-up, the counters in the stations synchronized to the station employed in the start-up lag the counters in the initiating station by a time delay representative of the propagation delay.
Further, when a station seizes use of the channel or initiates an "all call"
signal, as heretofore described, the counters in the other stations lag that of the seizing station by the propagation delay. Therefore, it is apparent that the maximum delay on the channel between transmission by one station and reception by another is 2t where t is the propagation time between the two "worst case" stations. (This occurs because the seizing station's counters might already lag that of the receiving station by the propagation delay, t, so that when the message carrier or "all call" signal is received by the re-ceiving station, it "sees" a delay of 2t.) Therefore, the time period between priority allocation should be greater than 2t, and hence the time periods be-tween successive priority allocations should be 2t plus the maximum amount of drift which may occur over the maximum time period between "all call"
sequences.
It is possible to shorten the delay by having each station sense the channel active status and the station which generated it. Each station could, for example, calculate the probable propagation delay in receiving the carrier signal and reset its counter accordingly.
The present invention thus provides a system for allocating priorit-ies between stations of a communication channel whereby the priority allo-cation is sequentially altered, all without the control of or necessity for, a central station. The technique is effective in operation and overcomes many , ~ '' , ;
,.-. ' .:
- , . , ~ .

1i~25~VS

of the difficulties associated with prior contention channels. Particularly, with the present invention, it is now possible to provide contention channels with greater traffic density without the risk of garbled messages and without fixed priorities which might tend to subordinate certain stations to low priorities.
If it is desired that certain stations have a fixed priority over other stations, it is possible to accord such priority by fixing a shortened predetermined time delay with such stations and permitting the time delays of the lower priority stations to be rotated (allocated) with the longer time delays.
This invention is not to be limited by the embodiment shown in the drawing or described in the description, which is given by way of example and not of limitation, but only in accordance with the scope of the appended claims.

: .

Claims (14)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. Apparatus for allocating use of a communication channel shared by a plurality of stations, each station having a respective address and each station having a controller responsive to an enable signal to enable the station to seize use of the channel, said apparatus comprising, at each station: register means for storing a representation of the address of the station having the highest priority; means responsive to the representation stored in said register means and to the address associated with the respect-ive station for establishing a priority number for the respective station;
cyclic counter means for storing a count number; clock means for continuously advancing the count number in said counter means; and compare means responsive to a comparison between said count number and said priority number for pro-viding said enable signal to said controller.
2. Apparatus according to claim 1 wherein said controller is operable to store a predetermined station address in all of said register means when-ever the respective station seizes use of the channel.
3. Apparatus according to either claim 1 or 2 further including means for resetting said counter means whenever a station seizes use of the channel.
4. Apparatus according to claim 1 wherein said compare means includes store means for maintaining said enable signal after said comparison has been made whereby said apparatus does not have idle channel conflict suppression.
5. Apparatus according to claim 4 further including select means for selectively operating said store means whereby said apparatus is selectively operable in a mode with or without idle channel conflict suppression.
6. The method of reducing conflicts on a communications channel shared by a plurality of stations, each station having controller means responsive to an enable signal to enable the station to seize use of the channel, said method comprising: determining, for each station, a mutually exclusive priority number; advancing a count in a counter means from a number not lar-ger than said priority number, and providing said enable signal when the count reaches said priority number.
7. The method according to claim 6 wherein each station has a respect-ive address and register means at each station for storing the address of the one station having the lowest priority number, said method further including establishing the priority number for each station from the relationship j = mod n¦i-d¦
where n is the number of stations on the channel, i is the local station ad-dress, and d is the address stored in said register means.
8. The method according to claim 7 wherein the address stored in each of said register means is changed by a station seizing use of the channel.
9. The method according to claim 8 wherein whenever a station seizes use of the channel, it causes its own address to be stored in all of said register means.
10. The method according to claim 8 wherein whenever a station seizes use of the channel, it causes a predetermined address to be inserted in all of said register means.
11. The method according to claim 7, 8 or 9, wherein said enable signal is provided whenever x = j, where x is the count in said counter means.
12. The method according to claim 7, 8 or 9, wherein said enable signal is provided whenever x ? j, where x is the count in said counter means.
13. The method according to claim 10 wherein said enable signal is pro-vided whenever x = j, where x is the count in said counter means.
14. The method according to claim 10 wherein said enable signal is pro-vided whenever x ? j, where x is the count in said counter means.
CA348,921A 1979-04-30 1980-04-01 Method of rotating priorities between stations sharing a communication channel Expired CA1125405A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US034,236 1979-04-30
US06/034,236 US4232294A (en) 1979-04-30 1979-04-30 Method and apparatus for rotating priorities between stations sharing a communication channel

Publications (1)

Publication Number Publication Date
CA1125405A true CA1125405A (en) 1982-06-08

Family

ID=21875136

Family Applications (1)

Application Number Title Priority Date Filing Date
CA348,921A Expired CA1125405A (en) 1979-04-30 1980-04-01 Method of rotating priorities between stations sharing a communication channel

Country Status (7)

Country Link
US (1) US4232294A (en)
JP (1) JPS55147853A (en)
AU (1) AU528573B2 (en)
CA (1) CA1125405A (en)
DE (1) DE3009962A1 (en)
FR (1) FR2455821A1 (en)
GB (1) GB2048619B (en)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3009308A1 (en) * 1980-03-11 1981-10-01 Siemens AG, 1000 Berlin und 8000 München METHOD AND ARRANGEMENT FOR TRANSMITTING DATA SIGNALS
JPS5745758A (en) * 1980-09-03 1982-03-15 Hitachi Ltd Loop type data transmission controller
IT1129371B (en) * 1980-11-06 1986-06-04 Cselt Centro Studi Lab Telecom MESSAGE SWITCH WITH STRUCTURE DISTRIBUTED ON A CHANNEL WITH RANDOM ACCESS FOR INTERVIEW WITH MESSAGES BETWEEN PROCESSING UNITS
US4395710A (en) * 1980-11-26 1983-07-26 Westinghouse Electric Corp. Bus access circuit for high speed digital data communication
US4494113A (en) * 1981-03-13 1985-01-15 Hitachi, Ltd. Method and apparatus for self-control in distributed priority collision
US4472787A (en) * 1981-08-12 1984-09-18 Rockwell International Corporation System for transferring words on a bus with capability to intermix first attempts and retrys
US4488232A (en) * 1981-10-02 1984-12-11 Hughes Aircraft Company Self-adjusting, distributed control, access method for a multiplexed single-signal data bus
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
GB2117939A (en) * 1982-03-29 1983-10-19 Ncr Co Data communication network and method of communication
US4560985B1 (en) * 1982-05-07 1994-04-12 Digital Equipment Corp Dual-count, round-robin ditributed arbitration technique for serial buses
US4513370A (en) * 1982-07-19 1985-04-23 Amdahl Corporation Data transfer control system and method for a plurality of linked stations
US4493074A (en) * 1982-11-03 1985-01-08 The Bendix Corporation Content induced transaction overlap communication system
US4787033A (en) * 1983-09-22 1988-11-22 Digital Equipment Corporation Arbitration mechanism for assigning control of a communications path in a digital computer system
FR2552609B1 (en) * 1983-09-27 1985-10-25 Cit Alcatel METHOD AND DEVICE FOR SELECTING A STATION FROM A SET OF STATIONS DIALOGUING WITH A MAIN STATION
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
US4628311A (en) * 1983-10-19 1986-12-09 International Business Machines Corporation Carrier sense multiple access with collision avoidance utilizing rotating time staggered access windows
DE3402076A1 (en) * 1984-01-21 1985-08-01 Philips Patentverwaltung Gmbh, 2000 Hamburg METHOD AND ARRANGEMENT FOR DATA TRANSFER
DE3477072D1 (en) * 1984-09-05 1989-04-13 Siemens Ag Arrangement for priority allocation
US4646082A (en) * 1984-09-14 1987-02-24 Motorola, Inc. Inbound acknowledgement stack
US4926324A (en) * 1985-02-28 1990-05-15 Hitachi, Ltd. I/O control system and method
US4926419A (en) * 1985-03-15 1990-05-15 Wang Laboratories, Inc. Priority apparatus
US4755792A (en) * 1985-06-13 1988-07-05 Black & Decker Inc. Security control system
US4663756A (en) * 1985-08-29 1987-05-05 Sperry Corporation Multiple-use priority network
US4994960A (en) * 1986-01-16 1991-02-19 Jupiter Technology, Inc. Interrupt system for transmitting interrupt request signal and interrupt vector based upon output of synchronized counters representing selected priority value
US4858173A (en) * 1986-01-29 1989-08-15 Digital Equipment Corporation Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system
US4809164A (en) * 1986-03-26 1989-02-28 Tandem Computers Incorporated Processor controlled modifying of tabled input/output priority
US5051946A (en) * 1986-07-03 1991-09-24 Unisys Corporation Integrated scannable rotational priority network apparatus
US4812968A (en) * 1986-11-12 1989-03-14 International Business Machines Corp. Method for controlling processor access to input/output devices
US4974148A (en) * 1987-07-06 1990-11-27 Motorola Computer X, Inc. Bus arbiter with equitable priority scheme
CA1302584C (en) * 1987-07-30 1992-06-02 Alliant Computer Systems Corporation Parallel processing computer in which memory access priorities are varied
US5193197A (en) * 1987-09-24 1993-03-09 Digital Equipment Corporation Apparatus and method for distributed dynamic priority arbitration for access to a shared resource
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
JP2633900B2 (en) * 1988-04-22 1997-07-23 株式会社日立製作所 Common bus control method
US5257382A (en) * 1988-09-19 1993-10-26 Unisys Corporation Data bank priority system
US5088024A (en) * 1989-01-31 1992-02-11 Wisconsin Alumni Research Foundation Round-robin protocol method for arbitrating access to a shared bus arbitration providing preference to lower priority units after bus access by a higher priority unit
US5077733A (en) * 1989-02-28 1991-12-31 Wang Laboratories, Inc. Priority apparatus having programmable node dwell time
US5131007A (en) * 1989-06-09 1992-07-14 General Electric Company Digital voter for multiple site PST R trunking system
US5131010A (en) * 1989-10-12 1992-07-14 General Electric Company Voice guard digital voter for multiple site PST RF trunking system
US5072363A (en) * 1989-12-22 1991-12-10 Harris Corporation Multimode resource arbiter providing round robin arbitration or a modified priority arbitration
US5304992A (en) * 1990-11-16 1994-04-19 Kabushiki Kaisha Toshiba Method of allocating identifiers and apparatus for the same
US5233346A (en) * 1990-12-10 1993-08-03 Xerox Corporation Apparatus and method for electronically programming nodal identifications
US5467266A (en) * 1991-09-03 1995-11-14 Lutron Electronics Co., Inc. Motor-operated window cover
US5301283A (en) * 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
JP2716911B2 (en) * 1992-06-05 1998-02-18 三菱電機株式会社 Priority selection circuit
US5428796A (en) * 1992-08-26 1995-06-27 International Business Machines Corporation System and method for regulating access to direct access storage devices in data processing systems
US5440299A (en) * 1993-10-01 1995-08-08 Motorola, Inc. Method and apparatus for equalizing battery life in a selective call communication system
US6061599A (en) * 1994-03-01 2000-05-09 Intel Corporation Auto-configuration support for multiple processor-ready pair or FRC-master/checker pair
US5515516A (en) * 1994-03-01 1996-05-07 Intel Corporation Initialization mechanism for symmetric arbitration agents
US6813260B1 (en) 2000-03-16 2004-11-02 Ericsson Inc. Systems and methods for prioritized access in a contention based network
JP3659484B2 (en) * 2000-09-01 2005-06-15 光洋電子工業株式会社 Multi-station memory data sharing system by cyclic automatic communication
US6795871B2 (en) * 2000-12-22 2004-09-21 General Electric Company Appliance sensor and man machine interface bus
WO2005107175A1 (en) * 2004-04-28 2005-11-10 Freescale Semiconductor, Inc An arbiter for a serial bus system
TW200717246A (en) * 2005-06-24 2007-05-01 Koninkl Philips Electronics Nv Self-synchronizing data streaming between address-based producer and consumer circuits
EP2891372B1 (en) * 2012-08-31 2017-06-28 Nokia Technologies OY Positioning devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3553656A (en) * 1969-06-03 1971-01-05 Gen Electric Selector for the dynamic assignment of priority on a periodic basis
US3573856A (en) * 1969-06-24 1971-04-06 Texas Instruments Inc Distributed priority of access to a computer unit
JPS4871547A (en) * 1971-12-27 1973-09-27 Hitachi Ltd
US3821706A (en) * 1973-03-29 1974-06-28 Interactive Syst Inc Computer system
US3866175A (en) * 1974-04-24 1975-02-11 Ncr Co Data communication system between a central computer and a plurality of data terminals
US4009470A (en) * 1975-02-18 1977-02-22 Sperry Rand Corporation Pre-emptive, rotational priority system
JPS53123601A (en) * 1977-04-04 1978-10-28 Mitsubishi Electric Corp Data transmission system
US4148011A (en) * 1977-06-06 1979-04-03 General Automation, Inc. Asynchronous priority circuit for controlling access to a bus
US4199661A (en) * 1978-05-05 1980-04-22 Control Data Corporation Method and apparatus for eliminating conflicts on a communication channel

Also Published As

Publication number Publication date
AU5779980A (en) 1980-11-06
FR2455821B1 (en) 1983-02-04
DE3009962C2 (en) 1989-07-27
GB2048619A (en) 1980-12-10
GB2048619B (en) 1983-06-15
DE3009962A1 (en) 1980-11-13
AU528573B2 (en) 1983-05-05
FR2455821A1 (en) 1980-11-28
JPS55147853A (en) 1980-11-18
US4232294A (en) 1980-11-04
JPH0128547B2 (en) 1989-06-02

Similar Documents

Publication Publication Date Title
CA1125405A (en) Method of rotating priorities between stations sharing a communication channel
US4199661A (en) Method and apparatus for eliminating conflicts on a communication channel
EP0046203B1 (en) Multiprocessor arrangement with a common bus
CA1193688A (en) Circuitry for allocating access to a demand-shared bus
US4320502A (en) Distributed priority resolution system
US4223380A (en) Distributed multiprocessor communication system
US4750168A (en) Channel allocation on a time division multiplex bus
US4463445A (en) Circuitry for allocating access to a demand-shared bus
US4458314A (en) Circuitry for allocating access to a demand shared bus
EP0140077B1 (en) Method for controlling access to the communications medium in a carrier sense multiple access system with collision avoidance
EP0202299B1 (en) Multiphase packet switching system
US4799052A (en) Method for communicating data on a communication network by token passing
US4560985A (en) Dual-count, round-robin distributed arbitration technique for serial buses
US4320467A (en) Method and apparatus of bus arbitration using comparison of composite signals with device signals to determine device priority
US3761884A (en) Arrangement for synchronizing a number of co-operating computers
US3618037A (en) Digital data communication multiple line control
US4470110A (en) System for distributed priority arbitration among several processing units competing for access to a common data channel
EP0383475A2 (en) Shared resource arbitration
US4313196A (en) Priority system with low speed request bus
US4744023A (en) Processor access control arrangement in a multiprocessor system
EP0152013A2 (en) Synchronous/asynchronous communication system
CA1147865A (en) Message interchange system among microprocessors connected by a synchronous transmitting means
EP0220536B1 (en) Method of arbitrating access to a shared resource among a plurality of uniquely identified processors
EP0137609B1 (en) Multi-master communication bus
US4376975A (en) Arbitration controller providing for access of a common resource by a plurality of central processing units

Legal Events

Date Code Title Description
MKEX Expiry