WO1989010667A1 - High capacity communication system utilizing or-type channels - Google Patents

High capacity communication system utilizing or-type channels Download PDF

Info

Publication number
WO1989010667A1
WO1989010667A1 PCT/US1989/001668 US8901668W WO8910667A1 WO 1989010667 A1 WO1989010667 A1 WO 1989010667A1 US 8901668 W US8901668 W US 8901668W WO 8910667 A1 WO8910667 A1 WO 8910667A1
Authority
WO
WIPO (PCT)
Prior art keywords
lines
bit
collections
stations
message
Prior art date
Application number
PCT/US1989/001668
Other languages
French (fr)
Inventor
Shuo-Yen Robert Li
Original Assignee
Bell Communications Research, Inc.
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 Bell Communications Research, Inc. filed Critical Bell Communications Research, Inc.
Publication of WO1989010667A1 publication Critical patent/WO1989010667A1/en

Links

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

Definitions

  • This invention relates generally to a multiple access communication network wherein a plurality of transmission channels interconnect numerous distributed stations and, more specifically, to a methodology and associated systems for effecting high capacity and low delay interstation communication over OR-type channels.
  • a conventional configuration for a communication network is one wherein a plurality of stations are interconnected by a common transmission medium or channel, and messages are exchanged among the stations on a time- shared basis over the channel.
  • a so-called conflict situation arises whenever multiple stations require use of the channel at the same instant.
  • methods and concomitant arrangements exist for dealing with conflicts and these vary in complexity from simple, fixed priority techniques to sophisticated code division multiple access procedures.
  • the type of communication network is referred to as a Carrier Sensed Multiple Access (CSMA) network.
  • CSMA Carrier Sensed Multiple Access
  • CSMA/CD CSMA with Collision Detection
  • the CSMA/CD method is discussed in detail in the text entitled “Carrier Sensed Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", published by The Institute of Electrical and Electronic Engineers, Inc. ' in 1985) .
  • CSMA/CD Carrier Sensed Multiple Access with Collision Detection
  • each transmitting station intentionally sends additional bits to ensure propagation of the collision throughout the system.
  • the stations then deactivate for a random time period, called the backoff time, before attempting to transmit again. This process continues until only a " single message propagates collision-free over the channel.
  • this technique is somewhat inefficient due to station deactivation during the backoff periods and the random nature of the retry process. From another 0 viewpoint, if a normalized efficiency per transmission period is defined as the ratio of the time utilized for information-bearing message transfer to the total time period, then the efficiency is less than unity for conventional contention resolving systems.
  • each device compares the bus content bit-by-bit and then either terminates or continues its transmission according to the results of the comparison.
  • the time required to resolve a contention is fixed by the number of bits assigned to the interrupt numbers.
  • this time is deterministic, there is still a period in which no actual information-bearing messages may be transmitted and the normalized efficiency is less than one.
  • None of the conventional techniques disclose or suggest a methodology for always achieving the optimum normalized throughput efficiency as defined above. Moreover, none of the conventional methods suggest the utilization of more than one channel or bus to resolve or even eliminate contention situations.
  • the general method for a given bit interval commences by identifying candidate messages and assigning each of the candidates to selected ones of the lines.
  • a candidate message is defined by the prefix or initial bit positions of the message, that is, only the revealed portion of the message up to the given bit interval under consideration.
  • An encoding algorithm for this dynamic allocation process is used to effect the identification and assignment steps.
  • a logic signal emanates from each of the active stations according to the logic level of the bit in the given interval.
  • the logic signal from each station is associated with only one of the selected lines.
  • each station monitors the composite signal levels on all the lines. This composite signal serves as input to the algorithm so that new collections for the next succeeding bit interval may be prepared.
  • the candidates existing after the last bit interval has been processed determine the transmitted messages.
  • a seminal feature of the communication system in accordance with the invention is that its throughput achieves 100 per cent of the combined channel capacity in the sense of the following two properties. If L denotes the number of channels or parallel lines, then:
  • FIG. 1 is a representation of a multiple access communication system wherein a plurality of OR-type channels interconnect numerous, geographically-disbursed stations;
  • FIG. 2 depicts an exemplary set of frames prepared as candidate messages for propagation over the plurality of channels shown in FIG. 1;
  • FIG. 3 indicates how both the opening and closing phases overlay on the present and next frame messages in order to minimize system throughput delay;
  • FIGS. 4-11 summarize, for an illustrative example, the assignment of the prefixes to the various communication lines during consecutive bit intervals in the opening phase of the transmission process in accordance with the present invention
  • FIG. 12 summarizes the assignment of candidate messages to the various lines during the first bit interval in the closing phase of the illustrative example
  • FIGS. 13 summarizes the assignment of candidate messages to the various lines during the last bit interval in the closing phase of the the illustrative example
  • FIGS. 14 summarizes the prefixes tested and dropped during illustrative bit intervals in the transmission process
  • FIG. 16 is a snapshot of the memory layout of FIG. 15 for bit interval 11 of the illustrative example;
  • FIG. 17 is a flow diagram showing the processing steps executed by the encoder in accordance with the present invention.
  • FIGS. 18 and 19 are flow diagrams showing the processing steps executed by the decoder in accordance with the present invention. Detailed Description
  • FIG. 1 An illustrative embodiment in accordance with the present invention may be represented in general form by the block diagram of FIG. 1.
  • an OR-type channel will be simply called a line.
  • the article entitled "Performance Comparison of Explicit and Implicit Token-Passing Networks,” by O. C. Ibe as published in Performance, Vol. 10, No. 2, April, 1987 is incorporated herein by reference.
  • FIG. 1 it is supposed that nine synchronized stations S.-Sg are coupled to eight lines 111-118; S.
  • each station communicates via ten-bit message frames; an exemplary set of frames for the stations is shown in FIG. 2.
  • the frame size is designated by F and the number of lines is given by L.
  • the messages shown in FIG. 2 are first arranged in ascending order according to their binary values and then the stations are assigned accordingly. This simplifies the description but is not required in general.
  • the decimal value corresponding to the binary representation of each of the frames is also given in FIG. 2.
  • a short hand notation is to refer to a frame message by its decimal equivalent value.
  • the transmission process comprises two phases, designated the opening phase and closing phase, respectively.
  • the opening phase encompasses all F bits in a frame.
  • the closing phase requires log 2 L-l additional NOT TAKEN INTO CONSIDERATION
  • bit position log,L up through bit position F
  • certain encoding activities such as WRITE and then immediate READ activities as discussed shortly, occur within each bit propagation interval.
  • each station monitors the composite state of each line and determines whether a logic 0 or a logic 1 appears on each line.
  • a 'Y' in the READ column means a logic 1 signal is on the line, whereas a 'N' indicates a logic 0 state.
  • Lines 0, 3 and 5 have logic 1 states for this example.
  • Line 0 carries the prefix of messages '34' and '56';
  • Line 3 captured the prefix of messages '386', '402' and '438'; and
  • Line 5 propagates the prefix for messages '650', '652', '709' and '733'.
  • collection C Q _ is composed of the prefix 000;
  • collection C- 3 has prefix Oil;
  • collection C» 3 has prefix 101.
  • prefix 000 of the first collection engenders the two prefixes 0000 and 0001. If any station has a message with the prefix 0000, the station writes a logic 1 on Line 0. ' Similarly, any station having a message with prefix 0001 writes a logic 1 on Line 1.
  • the other two collections of prefixes are processed in a similar manner simultaneously with the first collection. It should be noted that the collections may be assigned to different lines than the lines upon which the collections were originally detected. The algorithm to effect this reassignment is known by all stations and will be discussed shortly.
  • Lines 6 and 7 had no messages assigned to them because the number of collections at the start of the fourth bit interval was less than one-half the number of lines, and the collections were only split in half.
  • FIG. 6 summarizes the unfolding process during the propagation of the fifth bit.
  • prefix 0000 from the last detected bit position gives rise to prefixes 00000 and 00001.
  • the other prefixes fostered by the prior collections are also depicted on FIG. 6.
  • the association of the prefixes with their assigned lines is also identified. Because there are four collections at the beginning of the bit propagation interval, and each is split into two parts, all eight lines are utilized at this stage of the process. Any station with a message having the corresponding prefix places a logic 1 on the appropriate line and then monitors for the status of all the lines. At the end of the monitoring process, five collections have been identified.
  • the message chosen to be traced is message '650' (1010001010) transmitted by station S g . From FIG. 7 it may readily be deduced that message '650' is in collection C_ 5 at the start of the sixth bit interval. Since the number of collections is more than half the number of lines, each collection is assigned to only one line. Thus collection C Q5 is assigned to Line 0, collection C 15 is assigned to Line 1, and so on. Finally, the pool is assigned to the remaining lines, namely. Lines 5, 6 and 7.
  • the prefix 10100 in collection C 35 engenders the two prefixes 101000 and 101001. In order to distinguish between these two prefixes, only those messages having the latter prefix write a logic 1 on the assigned line, namely. Line 3. In this case, no message has a prefix 101001, so during the READ interval, this line yields a 'N' . Since it is already known that there is a message with prefix 10100 and Line 3 yielded a 'N', this implies that there is a collection consisting of the prefix 101000 at the end of the sixth bit interval. (A case where a logic 1 is written on a line is exemplified by collection C Q5 on Line 0.
  • Message '56' has prefix 000011, so a logic 1 is written on Line 0 during the WRITE phase of bit interval 6. It is also possible that some prefixes neither belong to any collection nor are eliminated. Such prefixes are lumped into the special collection or pool, which is denoted a P g at the end of the sixth bit interval.
  • the prefix 000010 from collection C Qt - is connected to Line 0 via a dotted line, even though messages with this prefix do not write a logic 1 on Line 0. This only serves to indicate that, had Line 0 yielded an 'N', it would have determined a collection that included 000010 instead of 000011 on Line 0. However, Line 0 yielded a 'Y', so message '34', with prefix 00010, NOT TAKEN INTO CONSIDERATION
  • the pool collection is ignored as soon as L collections are identified.
  • the system is defined by a status vector ⁇ a Q ,a. , ... ,a ⁇ _ 1 ;b j _>, i being the number of collections 0 ⁇ i ⁇ .
  • P 0 ,p 1 , ... r P n _ 1 in increasing order, be those that show logic 1. Further, let p, be the line just written on by the station.
  • Bit position log ⁇ L 3 (start of decision process) (FIG. 4)
  • Prefix 10.
  • m 2 (binary value of the prefix 10) .
  • New bit b l.
  • the closing phase requires an additional log 2 L-l bit positions to resolve completely the L messages.
  • the general strategy of the closing phase is first presented and then the strategy is applied to the exemplary message frames discussed in the opening phase.
  • a sequence ⁇ c ⁇ is defined wherein each element of the sequence is given by a rn./' ⁇ n-
  • WRITE' (The prime notation is used to differentiate a WRITE in the closing phase from a WRITE in the opening phase.) If j ⁇ i and e «>0, then the integer division of member number of collection j by c. is performed to obtain the quotient q and the remainder r. If r ⁇ c.-l or i ⁇ L, then a logic 1 is written on line e Q +...+e. _+r. Otherwise, no signal propagation occurs.
  • the bound on the size of collection j shrinks from a. to 1 in the following sequence: log 2 L-2 log 2 L-3 a., min a. ,d. , min a. ,d. , ...,
  • Lines 3,4,5,6,7 are monitored to determine which have a logic 1. From FIG. 12, Lines 4 and 6 have a logic 1.
  • This example is typical in that more than one message is conveyed by some of the lines (for instance, Lines 0, 1 and 4 each convey two of the eight messages) whereas other lines do not convey any of the messages (Lines 5 , 6 and 7 do not provide any successfully transmitted messages) ; the other two messages are transmitted by Lines 2 and 3.
  • the dynamic allocation process in which all lines are utilized collectively during each bit interval leads to this result.
  • a transmitting station keeps track of just three numbers for its intended message, namely: the number of collections; the collection identifier; and the membership identifier.
  • each station actually has the capability to determine the collection and membership identifiers for any intended message. It is this algorithmic capability that enables every station to decode all the successfully transmitted messages.
  • the manner in which each station manages data for decoding is as follows.
  • the decoding function maps each eligible pair of the two identifiers to the bit pattern of the message, that is, to its corresponding prefix as the message unfolds. Eventually, there are up to L collections each containing only one message; each message is the one successfully transmitted.
  • a data structure for the decoding function generally is composed of two tables having an identical format.
  • the two tables serve alternately to store contending prefixes.
  • each prefix stored in the active table is used to construct 0, 1 or 2 prefixes for the next bit interval.
  • the new prefixes are then stored into the standby table and then the two tables interchange their roles as active and standby tables.
  • a table comprises a 0 +...+a_ , entries, with every entry containing one activity bit and F data bits. Each entry stores one particular member of one particular collection/pool. Collection 0 occupies the first a Q entries in the table, collection 1 occupies the next a. entries, and so forth. In general, collection j starts at entry a Q +...+a.
  • the initial pool contains L/2 predetermined members and requires no memory. Thereafter when there is a pool, it is treated as collection i (i ⁇ L) .
  • This addressing scheme is fixed throughout the transmission session. An 'ON' activity bit of an entry indicates that the entry contains a contending prefix, while an 'OFF' bit indicates that the entry is currently serving only the purpose of padding. To exemplify this, the entry at the address a_+...+a.
  • the degenerate case existing when there is a pool has not been shown but, illustratively, the pool could occupy the bottom portion of memory layout until all non-pool collections have been identified.
  • FIG. 16 shows a snapshot of the memory contents of the active table for bit interval 11 of the illustrative example; FIG. 16 corresponds to the candidate, messages shown on the left-hand side of FIG. 12.
  • FIG. 17 depicts the processing during any bit interval between log 2 L and F + log 2 L-l bit time positions; this arbitrary interval is designated by t in FIG. 17.
  • the processing begins with decision process 201, which determines the bit position under consideration. If the interval is the first bit in the opening phase for which the lines are to be tested, the steps described by process block 203 are executed. These steps are basically the initialization steps to prepare the parameters i, j and m for the encoding algorithm. If the result of testing by block 201 indicates that bits other than the log 2 L bit are ready for processing, then decision step 205 is entered.
  • Block 207 is also entered after initialization in block 203.
  • the processing by block 207 causes the next bit in the message to be selected and this next bit serves as input information to the encoding algorithm.
  • Processing block 209 depicts in general form the WRITE (WRITE') [in FIGS.
  • both WRITE and WRITE' are designated by 'WRITE', and the appropriate one to use in a given situation is conveyed by the context; similar comments apply to READ and READ' as well as UPDATE and UPDATE', which follow] READ (READ') and UPDATE (UPDATE') algorithmic steps set forth in detail in the discussion of the function theoretic basis.
  • decision block 213 is performed. This is the point of the process wherein unsuccessful candidate messages are dropped. If the candidate message is not dropped, then decision block 215 tests if both the opening and closing phases have been completed. If both phases are completed, then the transmission is successful. If the process is still in either the opening or closing phases, then the next bit interval is considered. This is depicted by processing block 217 wherein the next bit interval replaces the present interval and processing block 201 is again entered.
  • FIG. 18 is first considered. Again, the process is described for any bit interval between log_L and F-+ log 2 L-l bit intervals; the particular bit interval is denoted by t.
  • the two possible values for the next succeeding bit are serially processed by the subroutine shown in flow diagram in FIG. 19, which will be discussed shortly.
  • the processing represented by block 315 is invoked. Briefly, this processing clears the activity bit of each active table entry (as discussed with reference to FIG. 15) and then interchanges the roles of the active and standby tables.
  • decision block 317 is entered to determine the exact bit interval under consideration. If all bit intervals have been processed, block 319 is invoked to extract the transmitted messages from the then active table. If there are remaining bit intervals to be processed, the bit interval is incremented via block 319 and block 301 is again entered.
  • Block 305 indicates that a READ (READ') operation is performed on the lines.
  • READ READ
  • Each station executes the same encoding algorithm, so each decoder embedded in the station may be coupled to its corresponding encoder and may monitor the results of the encoding process. Thus, each decoder has access to the value of i as it is determined.
  • the station may UPDATE (UPDATE') the number of collections parameter i.
  • decision block 307 is entered to determine if the opening phase or the closing phase is being processed.
  • processing block 311 is entered.
  • the main processing performed by the steps represented by block 311 is to prepare the appropriate information for subsequent calls to the subroutine depicted in FIG. 19.
  • the processing is essentially the same as that performed by processing block 309.
  • the branches available for traversal upon exiting the block are the same options existing upon exiting block 309.
  • the final processing block in FIG. 18, namely, block 313, is invoked for the bit intervals corresponding to the closing phase.
  • the value of i is known prior to entry into block 313, and a DO loop ranging over the active table entries is again executed.
  • the values for j and m are obtained from the knowledge of i and the memory address information.
  • Block 313 feeds block 315 and the processing then continues as described above.
  • the entry point is processing block 351.
  • the WRITE (WRITE') action required in either the opening or closing phases, as appropriate is identified.
  • decision block 353 is invoked to determine if a logic 1 is to be propagated on any line. If 'YES', then follow-up decision processing in invoked for that line.
  • a determination is made whether a logic 1 is READ (READ') from that line. If not, there is a Return from the subroutine. If so, then processing block 357 is entered; this block is also entered upon a 'NO' response to the processing by the steps of block 353.
  • the encoding algorithm is used to identify the UPDATE (UPDATE') action required. Once identified, decision block 359 is entered to determine whether or not the UPDATE (UPDATE') action is to drop the candidated message. If so, there is a Return from the subroutine. If not, then the prefix is entered into the standby table as depicted by the processing of block 361. Upon completion of this processing, there is a normal Return form the processing subroutine.
  • the status vector in the last bit interval may possibly become ⁇ 1,1,1,6> following the regular rules. It is undesirable to have the ⁇ 1,1,1;6> vector at the end of the opening phase because the closing phase may not be capable of determining the proper messages. Therefore, special rules are designed to change the above situation into
  • n 0-19, 20-24, 25-27, 28-29, 30, 31
  • n 0-37, 38-55, 56-58, 59-60, 61, 62, 63

Abstract

A methodology is disclosed for effecting contention-free communication over a plurality of OR-type lines (111, ..., 118) interconnecting numerous synchronized stations (101-103). In broad terms, each station (e.g., 101) having a message to transmit executes a prescribed encoding/decoding algorithm. Each station also monitors the states of all the lines, collectively rather than individually, and prepares a station response each bit interval in correspondence to the collective states. During each bit interval, message candidates corresponding to the set of messages are identified and then assigned to selected ones of the lines. Based on the assignment, logic signals are propagated from each station over one of the assigned lines. By monitoring, each station senses the composite line signal on each of the lines and then generates new message candidates for the next bit interval. The processing algorithm repeats these steps through all bit intervals and the candidates remaining at the completion of the process yield successfully transmitted messages.

Description

HIGH CAPACITY COMMUNICATION SYSTEM UTILIZING OR-TYPE CHANNELS
Cross-Reference to Related Application
The following U.S. Application, which is assigned to the same assignee as the instant application and which is filed concurrently therewith, contains related subject matter: "High Capacity Communication System Using Collision-type Channels", Serial No. , B. Gopinath and S.-Y. R. Li (Case 3-3) . Field of the Invention
This invention relates generally to a multiple access communication network wherein a plurality of transmission channels interconnect numerous distributed stations and, more specifically, to a methodology and associated systems for effecting high capacity and low delay interstation communication over OR-type channels. Background of the Invention
A conventional configuration for a communication network is one wherein a plurality of stations are interconnected by a common transmission medium or channel, and messages are exchanged among the stations on a time- shared basis over the channel. A so-called conflict situation arises whenever multiple stations require use of the channel at the same instant. For these contention periods, methods and concomitant arrangements exist for dealing with conflicts and these vary in complexity from simple, fixed priority techniques to sophisticated code division multiple access procedures. When the stations are arranged to sense a conflict on the channel, the type of communication network is referred to as a Carrier Sensed Multiple Access (CSMA) network.
As a specific example illustrative of the art for arbitrating contentions in a CSMA environment, the CSMA with Collision Detection (CSMA/CD) media access method is briefly described. (The CSMA/CD method is discussed in detail in the text entitled "Carrier Sensed Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", published by The Institute of Electrical and Electronic Engineers, Inc. ' in 1985) . To transmit, each station monitors for a quiet period on the channel by detecting that no other stations are transmitting, and then emits the intended message in bit-serial form. If, after commencing transmission, the message collides with that of other stations, then each transmitting station intentionally sends additional bits to ensure propagation of the collision throughout the system. The stations then deactivate for a random time period, called the backoff time, before attempting to transmit again. This process continues until only a " single message propagates collision-free over the channel. However, as is quite discernible even from this brief overview, this technique is somewhat inefficient due to station deactivation during the backoff periods and the random nature of the retry process. From another 0 viewpoint, if a normalized efficiency per transmission period is defined as the ratio of the time utilized for information-bearing message transfer to the total time period, then the efficiency is less than unity for conventional contention resolving systems. 5 Other, more specialized techniques have been disclosed to deal with contention on a more deterministic basis. Representative of these techniques is the disclosure in Great Britain Patent No. 1,365,838. In this reference, the particular system considered is one in 0 which a number of data handling devices (slave stations) are in communication with a common controller (master station) over a bus and any one of the devices may require service from the controller at any given time. At system initialization, each data handling device is assigned a ,5 fixed interrupt number indicative of the device address. The: controller solicits interrupt requests by transmitting a coded message. Each device, if requesting use of the bus, responds by serially transmitting its interrupt number simultaneously with other devices. Then each device compares the bus content bit-by-bit and then either terminates or continues its transmission according to the results of the comparison. With such a technique, the time required to resolve a contention is fixed by the number of bits assigned to the interrupt numbers. However, even though this time is deterministic, there is still a period in which no actual information-bearing messages may be transmitted and the normalized efficiency is less than one.
As suggested by the above discussion, there have been many protocols introduced for dealing with conflicts in CSMA networks, and there have been numerous studies of their performance. With an offered load equal to the channel capacity, the throughput efficiency of all previous protocols is no more than 70 percent. Moreover, when the offered load exceeds a certain level in a given system, an overload condition referred to as "jamming" occurs, and the efficiency drops off, often significantly, above this threshold level.
None of the conventional techniques disclose or suggest a methodology for always achieving the optimum normalized throughput efficiency as defined above. Moreover, none of the conventional methods suggest the utilization of more than one channel or bus to resolve or even eliminate contention situations.
Summary of the Invention
The above disadvantages and other limitations of conventional contention resolution methods and arrangements are obviated, in accordance with the present invention, by interconnecting all stations with a plurality of OR-type channels or lines and by arranging each of the stations to monitor the states of all lines, collectively rather than individually, and appropriately determine the station response each bit interval in correspondence to the collective states.
Briefly, for station messages partitioned into a number of bit intervals, the general method for a given bit interval commences by identifying candidate messages and assigning each of the candidates to selected ones of the lines. A candidate message is defined by the prefix or initial bit positions of the message, that is, only the revealed portion of the message up to the given bit interval under consideration. An encoding algorithm for this dynamic allocation process is used to effect the identification and assignment steps. In response to these initial steps, a logic signal emanates from each of the active stations according to the logic level of the bit in the given interval. The logic signal from each station is associated with only one of the selected lines. Following the signal propagation, each station monitors the composite signal levels on all the lines. This composite signal serves as input to the algorithm so that new collections for the next succeeding bit interval may be prepared. The candidates existing after the last bit interval has been processed determine the transmitted messages.
A seminal feature of the communication system in accordance with the invention is that its throughput achieves 100 per cent of the combined channel capacity in the sense of the following two properties. If L denotes the number of channels or parallel lines, then:
(1) if there are at least L contending messages, then at least L are successfully transmitted; (2) if there are less than L contending messages, then all are successfully transmitted.
The organization and operation of the invention will be better understood from a consideration of the detailed description of the illustrative embodiment thereof, which follows, when taken in conjunction with the accompanying drawing. Brief Description of the Drawing
FIG. 1 is a representation of a multiple access communication system wherein a plurality of OR-type channels interconnect numerous, geographically-disbursed stations;
FIG. 2 depicts an exemplary set of frames prepared as candidate messages for propagation over the plurality of channels shown in FIG. 1; FIG. 3 indicates how both the opening and closing phases overlay on the present and next frame messages in order to minimize system throughput delay;
FIGS. 4-11 summarize, for an illustrative example, the assignment of the prefixes to the various communication lines during consecutive bit intervals in the opening phase of the transmission process in accordance with the present invention;
FIG. 12 summarizes the assignment of candidate messages to the various lines during the first bit interval in the closing phase of the illustrative example; FIGS. 13 summarizes the assignment of candidate messages to the various lines during the last bit interval in the closing phase of the the illustrative example; FIGS. 14 summarizes the prefixes tested and dropped during illustrative bit intervals in the transmission process;
FIG. 15 is the general memory contents for the case of L=8 indicating the positions for storing the prefixes and activity bit as the transmission unfolds; FIG. 16 is a snapshot of the memory layout of FIG. 15 for bit interval 11 of the illustrative example;
FIG. 17 is a flow diagram showing the processing steps executed by the encoder in accordance with the present invention; and
FIGS. 18 and 19 are flow diagrams showing the processing steps executed by the decoder in accordance with the present invention. Detailed Description
An illustrative embodiment in accordance with the present invention may be represented in general form by the block diagram of FIG. 1. However, in order to describe the principles in an expeditious manner, a specific example is first elucidated. This also aids in introducing terminology and notation. Hereafter, an OR-type channel will be simply called a line. For a general background on how the lines may be arranged to effect parallel, OR-type communication, the article entitled "Performance Comparison of Explicit and Implicit Token-Passing Networks," by O. C. Ibe as published in Performance, Vol. 10, No. 2, April, 1987 is incorporated herein by reference. With reference to FIG. 1, it is supposed that nine synchronized stations S.-Sg are coupled to eight lines 111-118; S. corresponds to element 101 and transmits on lines 121-128 and receives on lines 131-138, whereas S_ (Sfc generally) corresponds to element 103 with associated transmit and receive lines. In the example, each station communicates via ten-bit message frames; an exemplary set of frames for the stations is shown in FIG. 2. Generally, the frame size is designated by F and the number of lines is given by L. To demonstrate concisely the message transmission process, the messages shown in FIG. 2 are first arranged in ascending order according to their binary values and then the stations are assigned accordingly. This simplifies the description but is not required in general. The decimal value corresponding to the binary representation of each of the frames is also given in FIG. 2. A short hand notation is to refer to a frame message by its decimal equivalent value.
Broadly, the transmission process comprises two phases, designated the opening phase and closing phase, respectively. The opening phase encompasses all F bits in a frame. The closing phase requires log2L-l additional NOT TAKEN INTO CONSIDERATION
FOR THE PURPOSES OF INTERNATIONAL PROCESSING
remaining time positions in the opening phase, corresponding to bit position log,L up through bit position F, certain encoding activities, such as WRITE and then immediate READ activities as discussed shortly, occur within each bit propagation interval.
Applying these principles to the example, with reference to FIG. 4, a summary of the state of the system is presented after the first three bits (here, log,L = l°_-28 = 3) have propagated. As depicted, the pool prior to the transmission of the third bit is P_ and it is composed of prefixes 00, 01, 10, and 11. Two-bit prefix 00 engenders three-bit prefixes 000 and 001; "similarly prefix 01 gives rise to prefixes 010 and 011; and so forth. If a station message has a prefix of 000, then the station WRITES a logic 1 signal on line ill of FIG. 1 but redefined as Line 0 in FIG. 4; similarly, a station WRITES a logic 1 signal on Line 1 (line 112) if it has a message with the 001 prefix; and so forth. This is depicted by the PREFIXES column of FIG. 4. Basically, since there are 2 10=1024 possible message values and eight lines available for propagation, 128 messages are initially allocated to each line.
Since an OR line system is presumed, one or more logic 1 signals on any particular line produces a composite logic 1 signal level on that line. During the READ interval, as also depicted in FIG. 4, each station monitors the composite state of each line and determines whether a logic 0 or a logic 1 appears on each line. A 'Y' in the READ column means a logic 1 signal is on the line, whereas a 'N' indicates a logic 0 state. Lines 0, 3 and 5 have logic 1 states for this example. Line 0 carries the prefix of messages '34' and '56'; Line 3 captured the prefix of messages '386', '402' and '438'; and Line 5 propagates the prefix for messages '650', '652', '709' and '733'. Finally, as shown on FIG. 4, the collections resulting from the encoding process are summarized. In particular: collection CQ_ is composed of the prefix 000; collection C-3 has prefix Oil; and collection C»3 has prefix 101. These collections are produced as a result of the detected logic 1 level on the corresponding Lines 0, 3 and 5, respectively. Next, attention is focussed on the fourth bit propagation interval, and a summary of the status of the system is shown in FIG. 5. At the commencement of this bit interval, the three collections identified as a result of the detection process during the last bit interval are available for further refinement. Thus, prefix 000 of the first collection engenders the two prefixes 0000 and 0001. If any station has a message with the prefix 0000, the station writes a logic 1 on Line 0. ' Similarly, any station having a message with prefix 0001 writes a logic 1 on Line 1. The other two collections of prefixes are processed in a similar manner simultaneously with the first collection. It should be noted that the collections may be assigned to different lines than the lines upon which the collections were originally detected. The algorithm to effect this reassignment is known by all stations and will be discussed shortly.
Following the concurrent WRITE operations, the READ part of the cycle again commences. As summarized in Fig. 5, Lines 0, 2, 4 and 5 have captured messages, giving rise to four new collections. The collections are defined in terms of the prefixes that fostered them, namely, prefixes 0000, 0110, 1010 and 1011. Comparison of these prefixes to the first four bit positions of FIG. 2 indicates that messages '709' and '733' have been separated from messages '650 and '652' of the previous collection, which had prefix 101. Now, the prefix of messages '709' and '733' is in a fourth collection, and the other two remain grouped in the third collection. The first two collections, at this juncture, have not had any messages "separated out." It should also be noted that
Lines 6 and 7 had no messages assigned to them because the number of collections at the start of the fourth bit interval was less than one-half the number of lines, and the collections were only split in half.
FIG. 6 summarizes the unfolding process during the propagation of the fifth bit. As the description has established, prefix 0000 from the last detected bit position gives rise to prefixes 00000 and 00001. The other prefixes fostered by the prior collections are also depicted on FIG. 6. Moreover, the association of the prefixes with their assigned lines is also identified. Because there are four collections at the beginning of the bit propagation interval, and each is split into two parts, all eight lines are utilized at this stage of the process. Any station with a message having the corresponding prefix places a logic 1 on the appropriate line and then monitors for the status of all the lines. At the end of the monitoring process, five collections have been identified. These collections have the prefixes 00001, 01100, 01101, 10100 and 10110, respectively. The added collection results from separating out messages '386' and '402' from message '438', as evidenced by comparing the prefixes determined at this stage of the detection process with the contents of the frame messages of FIG. 2.
The next stage of the process is summarized in FIG. 7. However, since the number of collections is now more than half the number of lines, there is a transition in the manner in which collections are assigned to lines. In addition, a pool of untested candidate messages is now brought into the process. For the bit position under consideration, the pool is a "dummy" pool in the sense that only NULL messages are assigned to the pool. The detailed reason for this will be explained shortly; basically, the NULL messages are "place-takers" in that they reserve places in the selection process to be discussed shortly.
Until the function theoretic basis is described later in this section, it is difficult to fully elucidate - li ¬
the processing during the remaining bit intervals. However, it is possible to trace the path of a particular message and thereby provide a motivational heuristic basis leading to the theoretic basis. The message chosen to be traced is message '650' (1010001010) transmitted by station Sg. From FIG. 7 it may readily be deduced that message '650' is in collection C_5 at the start of the sixth bit interval. Since the number of collections is more than half the number of lines, each collection is assigned to only one line. Thus collection CQ5 is assigned to Line 0, collection C15 is assigned to Line 1, and so on. Finally, the pool is assigned to the remaining lines, namely. Lines 5, 6 and 7.
The prefix 10100 in collection C35 engenders the two prefixes 101000 and 101001. In order to distinguish between these two prefixes, only those messages having the latter prefix write a logic 1 on the assigned line, namely. Line 3. In this case, no message has a prefix 101001, so during the READ interval, this line yields a 'N' . Since it is already known that there is a message with prefix 10100 and Line 3 yielded a 'N', this implies that there is a collection consisting of the prefix 101000 at the end of the sixth bit interval. (A case where a logic 1 is written on a line is exemplified by collection CQ5 on Line 0. Message '56' has prefix 000011, so a logic 1 is written on Line 0 during the WRITE phase of bit interval 6. It is also possible that some prefixes neither belong to any collection nor are eliminated. Such prefixes are lumped into the special collection or pool, which is denoted a Pg at the end of the sixth bit interval. For example, the prefix 000010 from collection CQt- is connected to Line 0 via a dotted line, even though messages with this prefix do not write a logic 1 on Line 0. This only serves to indicate that, had Line 0 yielded an 'N', it would have determined a collection that included 000010 instead of 000011 on Line 0. However, Line 0 yielded a 'Y', so message '34', with prefix 00010, NOT TAKEN INTO CONSIDERATION
FOR THE PURPOSES OF INTERNATIONAL PROCESSING
where . is the "next largest integer" operator. For instance, in the example for L=8, the a.'s are:
a0 = aι = * * a ~ ^
and a5 = 4, ag = 9 and a.. = 36.
Those candidates outside the collections CQ, ,
C lk' an(* so ^orth tnat are not yet eliminated form the pool of candidates. The pool at the end of the bit interval k, denoted as P. , consists of a number (possibly zero) of prefixes of length k. Initially when k=log2L-l, the pool consists of all the L/2 possible prefixes of the length k. Thereafter in the opening phase, i.e., when log2L<k<F, the size of the pool is bounded by
(a) 0, if the number of collections <--,
(b) aQ+...+a. , , if the number of collections is i, where 2"<i<L.
The pool collection is ignored as soon as L collections are identified.
To aid the description, the a.'s are grouped to define a so-called status vector:
<ag,a^, ... f a_.-l ' ao+* * "+ai-i>*
Generally then there are i collections whose sizes are respectively bounded by aQ,a1, ... ,a^_1 (the first i entries in the vector) . The size of the pool is bounded by aQ+...+a. -=b. (the last entry in the vector). By padding collections with NULL candidates, it may be assumed that the sizes of collections are exactly aQ,a1, ... ,a. ., and that the size of the pool is exactly b.. When the number of collections reaches L, the pool is ignored and therefore the status vector can be truncated NOT TAKEN INTO CONSIDERATION
FOR THE PURPOSES OF INTERNATIONAL PROCESSING
frame.
By way of reiteration, at each stage of the process, the system is defined by a status vector <aQ,a. , ... ,a^_1;bj_>, i being the number of collections 0<i< . the collection identifier is j,0<j£i. and the membership number is m,θ m<a.. (Note the convention that when j=i, this means the message belongs to the pool) .
Initialization
Before the bit interval log_L starts, i=0, j=0 and m equals the binary value of the (log-L-1) bit prefix of the message.
A bit b=0 or 1 is to be revealed by each station during the succeeding transmission intervals and each is processed according to the following algorithm, which is subdivided into a number of cases (exceptional rules for the situation where L=4 for the final bit interval of the opening phase are listed in Appendix A) :
Case A. 0<^-2
Accordingly 0<j<i, which means there is no pool.
WRITE: logic 1 on line (2j+b)
READ: let p0,plf ... ,pn_1, in increasing order, be those lines that have a logic 1
(P0<P1<- • •<Pn-i) ' Further let p. be the line just written on by the station.
UPDATE: i <— n (Note it is guaranteed that j <— k n<L in this case) . m <— 0
Case B. i=j (including the case i=0 and part of the case τr<i<L)
First, divide 2m+b by L-i and obtain the quotient q and remainder r.
WRITE: logic 1 on line (i+r)
5 READ: among lines i,i+l, ... ,L-1, let
P0,p1, ... rPn_1, in increasing order, be those that show logic 1. Further, let p, be the line just written on by the station.
10 UPDATE: j <— i+k (if j>L, drop message) i <— min (i+n,L) m <— q
Case C. i 2 and i>j
WRITE: logic 1 on line j if b=l
-15 READ: among lines i,i+1, ... ,L-1, let p0,p.,...,p ,, in increasing order, be those that show a logic 1. In the case that i=L, then n=0 by default.
Let line j return the bit b'.
20 UPDATE: i <~ min (i+n,L) ; if b'>b and i=L, drop the message; .if b'>b and i<L, then m <— aQ+...+a. .+m, j <— i; 25 if b'=b, no change in j and m.
Example
Message '650' (1010001010) is now traced to follow its traversal through the encoding process.
(1) Bit position log^L = 3 (start of decision process) (FIG. 4) Prefix = 10. Vector = <;4>. i=0 (no collections) . j=0 (this identifies the pool since j=i) . m=2 (binary value of the prefix 10) . New bit b=l.
Case B:
Divide 2m+b=5 by L-i=8, so q=0,r=5.
WRITE: logic 1 on line (i+r)=Line 5.
READ: Lines 0, 3 and 5 show logic 1, so n=3, p =0, p,=3, P2 =5 and k=2.
UPDATE: j <— i+k = 0+2 = 2 i <— min (i+n,L) = min (0+3,8)=3 m <— q=0
(2) Bit position 4 (FIG. 5) Prefix = 101. Vector = <1,1,1;0>. i=3. j=2. m=0. New bit b=0.
Case A:
WRITE: logic 1 on line (2j+b) = Line 4.
READ: Lines 0, 2, 4 and 5 show logic 1, so n=4, pQ=0,p1=2,p2=4,p3=5 and k=2.
UPDATE: i <— n=4. j <— k=2. m <— 0.
(3) Bit position 5 (FIG. 6) Prefix = 1010. Vector = <1,1,1,1;0>. i=4. j=2. m=0. New bit b=0.
Case A:
WRITE: logic 1 on line (2j+b) = Line 4.
READ: Lines 1, 2, 3, 4 and 6 show logic 1, so n=5,'pQ=l, pχ=2, P2=3, P3=4, p =6 and k=3.
UPDATE: i <— n=5. j <— k=3. m <— 0.
(4) Bit position 6 (FIG. 7) Prefix = 10100. Vector = <1,1,1,1,1;5>. i=5. j=3. m=0. New bit b=0.
Case C: WRITE: no writing since b=0.
READ: Lines 5, 6 and 7 all show logic 0, so n=0. Also, b'=0.
UPDATE: i <— min (5+0,8)=5; Since b'=b, no change in m or j .
(5) Bit position 7 (FIG. 8) Prefix = 101000. Vector = <1,1,1,1,1;5> i=5. j=3. m=0. New bit b=l.
Case C:
WRITE: logic 1 on line j = Line 3.
READ: Lines 5 and 7 show logic 1, so n=2.
Also, b'=l.
UPDATE: i <— min (5+2,8) = 7.
Since b'=b, no change in j or m.
(6) Bit position 8 (FIG. 9) Prefix = 1010001.
Vector = <1,1,1,1,1,4,9;18>. i=7. j=3. m=0. New bit b=0.
Case C:
WRITE: no writing on Line 3 since b=0. READ: Line 7 does not show a logic 1, so n=0, Also, b'=l.
UPDATE: i <— min (7+0,8) = 7.
Since b'>b and i<L, then <— aQ+...+a._1+m=3 j <~ i=7
(implies prefix is to become a member of the pool) .
(7) Bit position 9 (FIG. 10) Prefix = 10100010.
Vector - <1,1,1,1,1,4,9,36;>. i=7.
J-7. m=3. New bit b=l.
Case B:
Divide 2m+b=7 by L-i=l, so q=7, r=0.
WRITE: logic 1 on line (i+r) = Line 7.
READ: Line 7 shows a logic 1, so n=l; P0=7, so k=0.
UPDATE: j <— i+k = 7 i <— min (i+n,L) = 8 m <— q = 7.
(8) Bit position 10 (FIG. 11) (end of opening phase) Prefix = 101000101
Vector = <1,1,1,1,1,4,9,36;> i=8. j=7. m=7. New bit b=0.
Case C:
WRITE: no writing since b=0.
READ: n=0 by default. Also, b'=0.
UPDATE: i <— min (i+n,L) = min (8,8) = 8.
Since b'=b, j and m are unchanged.
Closing Phase
As indicated earlier, the closing phase requires an additional log2L-l bit positions to resolve completely the L messages. The general strategy of the closing phase is first presented and then the strategy is applied to the exemplary message frames discussed in the opening phase.
Initially, a sequence {c } is defined wherein each element of the sequence is given by
Figure imgf000023_0001
Figure imgf000023_0002
arn./'άn-
where 0<:n<L and d is an element of another sequence (d ).
The sequence {d } is fixed for each L. For the case of
L=8, for example, dQ=d1=d2=d3=d4=l,d5=2,d6=3 and d7=6.
(Values of d for L a power of 2 are given in the Appendix B) . Then the c elements for L=8 are given by
Figure imgf000023_0003
unusual in that
Figure imgf000023_0004
in general, this relation is not true)
During the first bit interval in the closing
_h*H phase, the j collection, 0 j<i, will be partitioned into c. "equal parts", that is, as equal as possible. Then either c. lines, or c.-l lines when i=L or c.=l, are used to check for the existence of messages in these partitioned parts. If a pool exists, it will be divided into as many parts as there are lines remaining and the existence of messages in the resulting parts will be checked by the remaining lines. At the conclusion of this bit interval, there will no longer be- a pool and, moreover, the size of collection j becomes bounded log2L-2 by d. . In each of the remaining log,L-2 bit intervals, the bound on the size of collection j will be reduced by the factor d.. Each time either d. or d.-l lines are used to check parts of collection j.
First Bit in Closing Phase:
ck~l if c. = 1 or i=L
Define e, = c^ otherwise.
WRITE' : (The prime notation is used to differentiate a WRITE in the closing phase from a WRITE in the opening phase.) If j<i and e«>0, then the integer division of member number of collection j by c. is performed to obtain the quotient q and the remainder r. If r<c.-l or i<L, then a logic 1 is written on line eQ+...+e. _+r. Otherwise, no signal propagation occurs.
If j=i (i.e., the "pool"), then the integer division of member number m of collection j by L- (eQ+.. •+e._1) is performed to obtain the quotient q and the remainder r. A logic 1 level is then written on line eQ+.. •+e._1+r.
READ': If j<i, e->0 and either r<c.-l or i<L, let lines p_,...,p , be those among lines eQ+...+e. -
to eQ+...+e.-l that show a logic 1. Also, let p, be the line that a given station has just written on in this interval. If j=i, let Po', ' ,' n_ι be. those among lines e_+...+e. to L-l that show a. logic 1. Again, let p, be the line written on by a given station.
UPDATE': For 0<k<i, let fk=max(gk,1) .
i <— min (fQ+—+fi-x,L) .
If j<i and e.=0, then j <— fQ+...f._1 and m is unchanged.
If j<i, e.>0 and either r<c.-l or i<L, j <— fQ+...+f•_1+k and m <— q. If it turns out j>L, the message is dropped.
If j<i, e.>0, r=c.-l and i=L, the actions depend upon the value g.. If g_i>0, the message is dropped; otherwise, for g.=0, j <— fQ+...+f._ and m <— q. (If j>L, the message is dropped.)
If j=i, j <— fQ+...f._1+k and m <— q. (If j>_L, the message is dropped) .
Subsequent Bit Intervals in Closing Phase:
The same WRITE', READ' and UPDATE' actions occur as in the first bit interval of the closing phase, except c. is replaced by d. for all k and there is no pool after one bit interval of the closing phase.
Through the closing phase, the bound on the size of collection j shrinks from a. to 1 in the following sequence: log2L-2 log2L-3 a., min a. ,d. , min a. ,d. , ...,
min a- »d- !•
Continuation of Example At the initiation of the closing phase (FIG. 12), message '650' (1010001010) is in collection C_, and is member number 7.
First Bit of Closing Phase Since the number of collections at the end of the opening phase is i=8=L, then
eQ=e =e2= 3=e4=0, e5=l, eg=2 and e?=5.
Also, since collection C_ is under consideration, j=7.
WRITE': Since j<i (7<8) and e.=e7=5>0, the integer division of member number 7 by c_=6 yields quotient q=l, remainder r=l. Since l=r<c.-l=5, a logic 1 is written Line (eQ+...+eg+r) = Line (0+...+1+2+1)= Line 4.
READ': Since j<i (7<8) , e.=e7=5>0 and r=l<c.-1=5, lines eQ+...+e. - to eQ+...+e.-l are considered. In particular, eQ+...+e. 1 = 3 and eQ+...+e--l = 7, so Lines 3, 4, 5, 6 and 7 are studied to find those having a logic 1.
From FIG. 12, under the 'READ' heading, only Line 4 has a logic 1. Thus, P0=4, which means g._j=g7=l. Moreover, k=0.
UPDATE': It can be shown that fk=l for 0<k<8 (e.g., f7 = max (g?,l) = 1 from READ step) , so i <— min (f_+...+f. -,L) = min (8,8)=8.
Since j<i (7<8) and e.=e7=5>0 and r=Kc.-l=5, < — fQ+ . . . +f6+k=l+ . . . +1+0=7 and
m < — 1.
Next (Last) Bit of Closing Phase
For this interval, dk replaces ck (for L=8, these are equal). At the start of this interval, i=8, j=7 and m=l (FIG. 13). Accordingly, the ck's remain the same as in first bit of the closing phase.
WRITE': Since j<i (7<8) and e.=e7=5>0, the integer division of member number 1 by d?=6 yields quotient q=0, remainder r=l. Since l=r<c.-1=5, a logic 1 is written on Line 4.
READ Since j<i (7<8) , e.=e?=5>0 and r=l<c.-1=5, lines eQ+...+e. , to eQ+...+e.-l, namely,
Lines 3,4,5,6,7 are monitored to determine which have a logic 1. From FIG. 12, Lines 4 and 6 have a logic 1.
Since this is the last bit interval processed in this frame, the messages associated with Lines 4 and 6 are transmitted messages. However, since only L=8 messages are accepted per each frame, and the messages on Lines 4 and 6 represent the eighth and ninth revealed messages, the message on Line 6, namely, message '386", is dropped. It is true in general that when the number of messages is greater than or equal to L, then at least L messages are revealed by this technique, so the normalized throughput efficiency is at least one. This example is typical in that more than one message is conveyed by some of the lines (for instance, Lines 0, 1 and 4 each convey two of the eight messages) whereas other lines do not convey any of the messages (Lines 5 , 6 and 7 do not provide any successfully transmitted messages) ; the other two messages are transmitted by Lines 2 and 3. The dynamic allocation process in which all lines are utilized collectively during each bit interval leads to this result.
B. Decoding During the bit-by-bit encoding process, a transmitting station keeps track of just three numbers for its intended message, namely: the number of collections; the collection identifier; and the membership identifier. However, by monitoring the composite logic level on the channels (e.g., via lines 131-138 of FIG. 1 for station S.) and by computing with a single but universal algorithm known to all the stations, each station actually has the capability to determine the collection and membership identifiers for any intended message. It is this algorithmic capability that enables every station to decode all the successfully transmitted messages. The manner in which each station manages data for decoding is as follows. Instead of mapping every possible message to the two identifiers (collection and membership) , the decoding function maps each eligible pair of the two identifiers to the bit pattern of the message, that is, to its corresponding prefix as the message unfolds. Eventually, there are up to L collections each containing only one message; each message is the one successfully transmitted.
A data structure for the decoding function generally is composed of two tables having an identical format. The two tables serve alternately to store contending prefixes. In each bit interval, each prefix stored in the active table is used to construct 0, 1 or 2 prefixes for the next bit interval. The new prefixes are then stored into the standby table and then the two tables interchange their roles as active and standby tables. A table comprises a0+...+a_ , entries, with every entry containing one activity bit and F data bits. Each entry stores one particular member of one particular collection/pool. Collection 0 occupies the first aQ entries in the table, collection 1 occupies the next a. entries, and so forth. In general, collection j starts at entry aQ+...+a. , regardless its size, which may be different from a. either when collection j identifies the pool, i.e. when j=l, or when the size of the collection shrinks during the closing phase. At the beginning of the transmission session, the initial pool contains L/2 predetermined members and requires no memory. Thereafter when there is a pool, it is treated as collection i (i<L) . This addressing scheme is fixed throughout the transmission session. An 'ON' activity bit of an entry indicates that the entry contains a contending prefix, while an 'OFF' bit indicates that the entry is currently serving only the purpose of padding. To exemplify this, the entry at the address a_+...+a. ,+m, with j<i and 0<m<a- or with j=i, is regarded as out-of-bound, if is greater than or equal to the ongoing size of the collection j. Contents of an out-of-bound entry are ignored by the decoding process. On the other hand, if this entry is not out-of-bound but has it activity bit off, that means no contending prefix is the member m of the collection j. The activity bits of every entry is updated in every bit interval except for those out-of- bound entries.
The memory layout shown in FIG. 15 depicts the general format for either the active or standby table for the case L=8 in accordance with the above description. The degenerate case existing when there is a pool has not been shown but, illustratively, the pool could occupy the bottom portion of memory layout until all non-pool collections have been identified. In addition, FIG. 16 shows a snapshot of the memory contents of the active table for bit interval 11 of the illustrative example; FIG. 16 corresponds to the candidate, messages shown on the left-hand side of FIG. 12.
Process Flow Diagrams
The processing.by an encoder embedded in each station in accordance with the present invention is shown in flow diagram form in FIG. 17. In particular, FIG. 17 depicts the processing during any bit interval between log2L and F + log2L-l bit time positions; this arbitrary interval is designated by t in FIG. 17. The processing begins with decision process 201, which determines the bit position under consideration. If the interval is the first bit in the opening phase for which the lines are to be tested, the steps described by process block 203 are executed. These steps are basically the initialization steps to prepare the parameters i, j and m for the encoding algorithm. If the result of testing by block 201 indicates that bits other than the log2L bit are ready for processing, then decision step 205 is entered. If the encoding algorithm is still in the opening phase, i.e., all bit positions through the F bit position, then the step represented by block 207 is performed. Block 207 is also entered after initialization in block 203. The processing by block 207 causes the next bit in the message to be selected and this next bit serves as input information to the encoding algorithm. Processing block 209 depicts in general form the WRITE (WRITE') [in FIGS. 17-19, both WRITE and WRITE' are designated by 'WRITE', and the appropriate one to use in a given situation is conveyed by the context; similar comments apply to READ and READ' as well as UPDATE and UPDATE', which follow] READ (READ') and UPDATE (UPDATE') algorithmic steps set forth in detail in the discussion of the function theoretic basis. After processing by block 209, the step represented by decision block 213 is performed. This is the point of the process wherein unsuccessful candidate messages are dropped. If the candidate message is not dropped, then decision block 215 tests if both the opening and closing phases have been completed. If both phases are completed, then the transmission is successful. If the process is still in either the opening or closing phases, then the next bit interval is considered. This is depicted by processing block 217 wherein the next bit interval replaces the present interval and processing block 201 is again entered.
With respect to decoding by a given station, FIG. 18 is first considered. Again, the process is described for any bit interval between log_L and F-+ log2L-l bit intervals; the particular bit interval is denoted by t. Decision block 301 determines if the bit interval under consideration is the first bit or any of the other bits to be processed. If the first bit is to be processed, there is an initialization phase represented by the steps in processing block 303. The active table is established and both the number of collections i and the collection identifier j are set to zero. After this initialization, processing block 309 is invoked. Basically, a DO loop based on the member number m is executed. The loop ranges from m=0,1, ... ,L/2-l. In the loop, the two possible values for the next succeeding bit are serially processed by the subroutine shown in flow diagram in FIG. 19, which will be discussed shortly. Upon completion of the loop, the processing represented by block 315 is invoked. Briefly, this processing clears the activity bit of each active table entry (as discussed with reference to FIG. 15) and then interchanges the roles of the active and standby tables. Next, decision block 317 is entered to determine the exact bit interval under consideration. If all bit intervals have been processed, block 319 is invoked to extract the transmitted messages from the then active table. If there are remaining bit intervals to be processed, the bit interval is incremented via block 319 and block 301 is again entered.
The focus is now on the activity after the branch from block 301 to block 305, which occurs for all bit intervals other than the log2L bit for each frame message. Block 305 indicates that a READ (READ') operation is performed on the lines. Each station executes the same encoding algorithm, so each decoder embedded in the station may be coupled to its corresponding encoder and may monitor the results of the encoding process. Thus, each decoder has access to the value of i as it is determined. Based on the READ (READ'), the station may UPDATE (UPDATE') the number of collections parameter i. After the update, decision block 307 is entered to determine if the opening phase or the closing phase is being processed. Assuming initially that the opening phase is active, then processing block 311 is entered. The main processing performed by the steps represented by block 311 is to prepare the appropriate information for subsequent calls to the subroutine depicted in FIG. 19. The processing is represented by a DO loop which ranges over the active table entries. From the number of collections i and the address of the entry, there is sufficient information to obtain the j and m identifiers. For instance, from FIG. 16, if the address selected corresponds to the seventh row of the memory layout, then it is known that the collection identifier j=5 and the member number m=l. In the loop, the processing is essentially the same as that performed by processing block 309. Moreover, after processing by block 311, the branches available for traversal upon exiting the block are the same options existing upon exiting block 309.
The final processing block in FIG. 18, namely, block 313, is invoked for the bit intervals corresponding to the closing phase. The value of i is known prior to entry into block 313, and a DO loop ranging over the active table entries is again executed. The values for j and m are obtained from the knowledge of i and the memory address information. There is one call to the subroutine of FIG. 19 for each active entry. Block 313 feeds block 315 and the processing then continues as described above.
With respect to FIG. 19, the entry point is processing block 351. Using the encoding algorithm, the WRITE (WRITE') action required in either the opening or closing phases, as appropriate, is identified. Once identified, decision block 353 is invoked to determine if a logic 1 is to be propagated on any line. If 'YES', then follow-up decision processing in invoked for that line. In block 355, a determination is made whether a logic 1 is READ (READ') from that line. If not, there is a Return from the subroutine. If so, then processing block 357 is entered; this block is also entered upon a 'NO' response to the processing by the steps of block 353. In block 357, the encoding algorithm is used to identify the UPDATE (UPDATE') action required. Once identified, decision block 359 is entered to determine whether or not the UPDATE (UPDATE') action is to drop the candidated message. If so, there is a Return from the subroutine. If not, then the prefix is entered into the standby table as depicted by the processing of block 361. Upon completion of this processing, there is a normal Return form the processing subroutine.
It is to be understood that the above-described embodiment is simply illustrative of the application of the principles in accordance with the present invention. Other embodiments may be readily devised by those skilled in the art which may embody the principles in spirit and scope in accordance with the claims. APPENDIX A
Exceptional Rules When L=4 for the Final Bit in the Opening Phase
At the end of the next-to-last bit interval in the opening phase, if the status vector is either
<1,1,1;3> or <1,1,1;6>, then the status vector in the last bit interval may possibly become <1,1,1,6> following the regular rules. It is undesirable to have the <1,1,1;6> vector at the end of the opening phase because the closing phase may not be capable of determining the proper messages. Therefore, special rules are designed to change the above situation into
<1,1,1;3> —> <1,1,1;4> or —> <1,1,1;5>
and <1,1,1;6> —> <1,1,1;4>.
Then all regular rules apply except for the following:
If i=3, j=3 and m=5, then no write occurs. If Line 3 returns logic 1, drop message. If Line 3 returns logic 0, j <— 3 and m <— 3.
If i=4, j=2, then no write occurs; moreover, i and j are unchanged.
If i=4, j=3:
WRITE: Divide m by 3 and obtain quotient q and remainder r. If r=0, write logic 1 on line 2. If r=l, write logic 1 on Line 3. READ and UPDATE:
If Line 2 shows logic 1, and if r=0, j <— 3 and <— q. If r=l or 2, drop message.
If Line 2 shows logic 0 and Line 3 shows logic 1, and if r=l, j <— 3 and m <— q. If r=2, drop message.
If both Lines 2 and 3 show logic 0, then r=2 and j <— 3 and m <— q.
SPECIAL VALUE of a2.
Set a2 = 2 instead of 1.
APPENDIX B
Definition of {d }, 0<n<L for L a power of 2.
L=4 case: n = 0-2, 3 dn = 1 4
L=8 case: n = 0-4, 5, 6, 7 dn = 1 2 3 6
L=16 case: n = 0-8, 9-11, 12-13, 14, 15
Figure imgf000036_0001
L=32 case: n = 0-19, 20-24, 25-27, 28-29, 30, 31
Figure imgf000036_0002
L=64 case: n = 0-37, 38-55, 56-58, 59-60, 61, 62, 63
< _ - 1 2 3 4 5 6 7
L=128 case: 27
Figure imgf000036_0003
L = 256 case: n = 0-148 , 149-227, 228-255 a. - i 22 , aan 1 7
L>512 case: n = 0 to X, X+l to L-1
1/(log L-1) n n L-2 l/(log2L-l) where X = max ( a. ,L)/2 i=L/2+l

Claims

What is claimed is:
1. A method for transmitting a multiplicity of messages over a plurality of OR-type lines interconnecting numerous synchronized stations, wherein each message is prepared by a corresponding station and is partitioned into a number of bit intervals, the method for any arbitrary bit interval comprising the steps of identifying message candidates corresponding to the messages and assigning each of said candidates to selected ones of the lines, propagating a logic signal from each of the stations as determined by its bit value in the arbitrary interval over a corresponding one of the lines, and sensing by each of the stations a composite logic signal propagated on each of the lines to generate subsequent message candidates for identification in the succeeding bit interval, wherein said subsequent candidates determined for the last of the message bit intervals yield successfully transmitted messages.
2. A method for communicating a plurality of message frames among synchronized stations interconnected by a parallel arrangement of OR-type lines, wherein an individual frame is generated by a corresponding station and is partitioned into a number of bit intervals, the method for each given bit in a frame comprising the steps of identifying within each of the stations a set of prefixes, corresponding to the frame messages, as determined by a prescribed encoding algorithm, associating each of said prefixes with predetermined ones of the lines using said algorithm, emitting a logic level by each of the stations to a corresponding one of the lines as determined by both the station bit level of the given bit and said algorithm, and detecting within each of the stations the logic level on each of the lines so as to provide input information to said algorithm and produce new prefixes for identification in the next bit interval, wherein the prefixes remaining upon completion of processing of all the bit intervals in one of the frames yield at least some of the messages.
3. A method for communicating among synchronized stations interconnected by a plurality of OR-type lines messages generated by the stations, wherein one message per station is produced and each message is partitioned into a number of bit intervals, the method for each given bit interval comprising the steps of identifying collections of candidate messages generated by a predetermined encoding algorithm, assigning each of said collections to prescribed ones of the lines using said algorithm, applying a signal level by each of the stations to a corresponding one of said assigned lines as determined by said algorithm, monitoring a signal response on each of the lines by each of the stations so as to provide input information to said algorithm, and generating new collections using said information and said algorithm for identification in the succeeding bit interval, wherein the new collections produced after all bit intervals are processed contains successfully communicated ones of the messages.
4. The method as recited in claim 3 wherein the number of lines is L and the number of bit intervals is F and wherein said algorithm includes an opening phase encompassing the F bit intervals, said opening phase executed in each of the stations and comprising an initialization phase completed by the (log2L-l)-bit interval wherein the number of said collections, a collection identifier and a collection member number m are initialized, and. for each of the bit intervals from log,L to F, a sequence of WRITE, READ and UPDATE steps according to said algorithm for determining new values for the number of said collections, said collection identifier and said member number and thereby to identify said collections of said candidate messages and to assign said each of said collections to said prescribed ones of the lines, and wherein said step of applying a signal level includes said WRITE step, said step of monitoring each of the lines includes said READ step, and said step of generating new collections includes said UPDATE step.
5. The method as recited in claim 4 wherein the number of said collections is i, said collection identifier is j and said member number is m, and wherein said WRITE, READ and UPDATE steps are divided into three cases for L>4 depending on the i and j values and their relationship to each other, said three cases summarized as follows with b equal to the 0 or 1 value of the bit in the
Figure imgf000040_0001
WRITE: logic 1 on line (2j+b)
READ: let p0,p-, ... rP^± r n increasing order, be those lines that have a logic 1
(P0<P1<« • -^n-i) ' further, let pk be the line just written on by the station
UPDATE: i <— n j <— n m <— 0
Case B. i=j First, divide 2m+b by L-i and obtain the quotient q and remainder r
WRITE: logic 1 on line (i+r)
READ:, among lines i,i+1, ... ,L-1, let p0,p1, ... ,p ., in increasing order, be those that show logic 1; further, let pk be the line just written on by the station
UPDATE: j <— i+k (if j L, drop message) i <— min (i+n,L) m <— q
Case C. i>2" and i>j
WRITE: logic 1 on line j if b=l
READ: among lines i,i+1, ... ,L-1, let p0,p., ... ,p ., in increasing order, be those that show a logic 1; in the case that i=L, then n=0 by default; let line j return the bit b'
UPDATE: i <— min (i+n,L) ; if b'>b and i=L, drop the message; if b'>b and i<L, then m <— aQ+...+a•_1+m, j <— i; if b'=b, no change in j and m.
6. The method as recited in claim 4 wherein said algorithm includes a closing phase encompassing an additional log2L-l bit intervals, said closing phase executed in each of the stations and comprising: for each of the (F+log2L-l)-bit intervals, a sequence of WRITE', READ' and UPDATE' steps for determining new values for the number of said collections, said collection identifier and said member number and thereby to identify said collections of said candidate messages and to assign said each of said collections to said prescribed ones of the lines, and wherein said step of applying a signal level includes said WRITE' step, said step of monitoring each of the lines includes said READ' step and said step of generating new collections includes said UPDATE' step.
7. The method as recited in claim 6 wherein the number of said collections is i, said collection identifier is j and said member number is m and wherein said WRITE', READ' and UPDATE' steps are executed in the closing phase as follows: First Bit in Closing Phase.
ck-l if ck = 1 or i=L
Define ek = ck otherwise, where ck are given constants.
WRITE': If j<i and e->0, then the integer division of member number m of collection j by c. is performed to obtain the quotient q and the remainder r. If r<c.-1 or i<L, then a logic 1 is written on line eQ+...+e. ,+r. Otherwise, no signal propagation occurs.
If j=i, then the integer division of member number m of collection j by L-(eQ+...+e. .) is performed to obtain the quotient q and the remainder r. A logic 1 level is then written on line eQ+...+e._1 +
READ': If j<i, e->0 and either r<c_ι-l or i<L, let lines p0,...,p , be those among lines eQ+...+e. .
to eQ+...+e.-l that show a logic 1. Also, let pk be the line that a given station has just written on in this interval.
If j=i, let Pn', , ,'Pn-l ^e those among lines eQ+...+e. to L-1 that show a logic 1. Again, let p, be the line written on by a given station.
UPDATE': For 0<k<i, let fk=max(gk,l) .
i <— min (fQ+...+fi_1,L) .
If j<i and e.=0, then j <— fQ+...f._1 and m is unchanged.
If j<i, e.>0 and either r<c--l or i<L, j <— fQ+...+f. ,+k and m <— q. If it turns out j>L, the message is dropped.
If j<i, e.>0, r=c.-1 and i=L, the actions depend upon the value g.. If. g.>0, the message is dropped; otherwise, for g.=0, j <— fQ+...+f. , and m <— q. (If j__L, the message is dropped.)
If j=i, j <— fQ+...fi_1+k and m <— q. (If j>L, the message is dropped) .
Subseguent Bit Intervals in Closing Phase. The same WRITE', READ' and UPDATE' actions occur as in the first bit interval of the closing phase, except dk replaces ck where dk are given constants.
8. A method for interchanging messages among synchronized stations interconnected by a plurality of OR-type lines, wherein one message is produced per station and each message is partitioned into a number of bit intervals, the method comprising the steps of
(a) an initialization step wherein initial collections of candidate messages are generated using a predetermined encoding algorithm,
(b) assigning each of said collections to prescribed ones of the lines using said algorithm, (c) applying a signal level by each of the stations to a corresponding one of said assigned lines as determined by said algorithm,
(d) monitoring each of the lines by each of the stations so as to provide input information to said algorithm,
(e) generating new collections using said information and said algorithm, and
(f) repeating steps (b)-(e) for all of the bit intervals, wherein the collections determined by step (e) after all bit intervals are processed contain successfully interchanged ones of the messages.
9. The method as recited in claim 8 wherein the number of lines is L and the number of bit intervals per message is F and wherein said algorithm includes and opening phase encompassing the F successive bit intervals and a closing phase encompassing the next log2L-l bit positions, said opening phase executed in each of the stations and comprising: said initialization step further including an initialization stage completed by the (log2L-l)-bit interval wherein the number of collections, a collection identifier and a collection member number m are ini ialized; and for each of the bit intervals within the range log2L to F, a sequence of WRITE, READ and UPDATE steps for determining new values for the number of collections, said collection identifier and said member number and thereby to generate said new collections and to assign said each of said collections to said prescribed ones of the lines, and wherein said step (c) includes said WRITE step, said step (d) includes said READ step and said step (e) includes said UPDATE step, and said closing phase executed in each of the stations and comprising, for each of the bit intervals in the range (F+l) to (F+log2L-l) , a sequence of WRITE', READ' and UPDATE' steps for determining new values for the number of said collections, said collection identifier and said member number and thereby to generate said new collections and to assign said each of said collections to said prescribed ones of the lines, and wherein said step (c) includes said WRITE' step, said step (d) includes said READ' step and said step (e) includes said UPDATE' step.
10. A method for communicating among synchronized stations messages emitted by the stations, the messages being partitioned into a number of bit intervals, the method comprising the steps of interconnecting the stations with a plurality of OR-type lines, and for each given bit interval selecting collections derived according to a prescribed algorithm, each of said collections defining candidate messages, associating each of said collections with a subset of said lines, conveying a signal level by each of the stations over a corresponding one of said assigned lines, said signal level determined by the value of the bit in said given interval emitted by said each of said stations, and monitoring each of the lines by each of said stations to provide input information to said algorithm for generating the next collections associated with the succeeding bit interval .
PCT/US1989/001668 1988-04-21 1989-04-19 High capacity communication system utilizing or-type channels WO1989010667A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US184,331 1988-04-21
US07/184,331 US4852091A (en) 1988-04-21 1988-04-21 High capacity communication system utilizing OR-type channels

Publications (1)

Publication Number Publication Date
WO1989010667A1 true WO1989010667A1 (en) 1989-11-02

Family

ID=22676457

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1989/001668 WO1989010667A1 (en) 1988-04-21 1989-04-19 High capacity communication system utilizing or-type channels

Country Status (4)

Country Link
US (1) US4852091A (en)
EP (1) EP0412991A1 (en)
JP (1) JPH03505954A (en)
WO (1) WO1989010667A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695677B2 (en) * 1988-11-16 1994-11-24 株式会社日立製作所 Network transmission system with multiple channels
US5311512A (en) * 1992-12-14 1994-05-10 At&T Bell Laboratories Multiple-master digital communication technique utilizing a dedicated contention bus
US7106728B1 (en) 2000-05-01 2006-09-12 Industrial Technology Research Institute Switching by multistage interconnection of concentrators
US6591285B1 (en) 2000-06-16 2003-07-08 Shuo-Yen Robert Li Running-sum adder networks determined by recursive construction of multi-stage networks
US7609695B2 (en) * 2001-06-15 2009-10-27 Industrial Technology Research Institute Optimizing switching element for minimal latency
US7103059B2 (en) * 2001-06-15 2006-09-05 Industrial Technology Research Institute Scalable 2-stage interconnections
US6934876B1 (en) 2002-06-14 2005-08-23 James L. Holeman, Sr. Registration system and method in a communication network
US7400615B2 (en) * 2003-10-15 2008-07-15 Holeman Sr James L System and method for deterministic registration for communication networks

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4871547A (en) * 1971-12-27 1973-09-27 Hitachi Ltd
GB1365838A (en) * 1972-04-21 1974-09-04 Ibm Data handling system
US4281380A (en) * 1978-12-27 1981-07-28 Harris Corporation Bus collision avoidance system for distributed network data processing communications system
US4359731A (en) * 1980-08-22 1982-11-16 Phillips Petroleum Company Communication link contention resolution system
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
US4376278A (en) * 1980-12-22 1983-03-08 Honeywell Information Systems Inc. Apparatus and method for collision avoidance
US4383314A (en) * 1981-01-12 1983-05-10 Burroughs Corporation Circular access linkage loop configuration for system communication
US4481626A (en) * 1982-05-05 1984-11-06 Xerox Corporation Transceiver multiplexor
US4476467A (en) * 1982-06-08 1984-10-09 Cromemco Inc. Random entry intercomputer network with collision prevention
US4536877A (en) * 1983-01-21 1985-08-20 E-Systems, Inc. Tack-on acknowledgment in computer networks
US4584679A (en) * 1983-01-21 1986-04-22 E-Systems, Inc. Tack-on acknowledgement in computer networks
US4586175A (en) * 1984-04-30 1986-04-29 Northern Telecom Limited Method for operating a packet bus for transmission of asynchronous and pseudo-synchronous signals
US4768189A (en) * 1987-06-17 1988-08-30 Bell Communications Research, Inc. High capacity communication utilizing static, OR-type channels

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE/IEICE Global Telecommunications Conference 1987, 15-18 November 1987, Tokyo, Japan, Conference Record, Volume 3 of 3, IEEE, (New York, US), H. OKADA et al.: "Priority Schemes of Multi-Channel CSMA/CD for Advanced Multi-Media Networks", pages 1607-1611 *
Proceedings IEEE INFOCOM '86, Fifth Annual Conference "Computers and Communications Integration Design, Analysis, Management", 8-10 April 1986, Miami, Florida, IEEE, (New York, US), J.-Y. JUANG et al.: "Channel Allocation in Multiple Contention Bus Networks", pages 189-195 *

Also Published As

Publication number Publication date
EP0412991A1 (en) 1991-02-20
JPH03505954A (en) 1991-12-19
US4852091A (en) 1989-07-25

Similar Documents

Publication Publication Date Title
US5313582A (en) Method and apparatus for buffering data within stations of a communication network
CN100580639C (en) Method and system for controlling memory accesses to memory modules having memory hub architecture
US4910655A (en) Apparatus for transferring signals and data under the control of a host computer
US4918598A (en) Method for selectively activating and deactivating devices having same first address and different extended addresses
US4313196A (en) Priority system with low speed request bus
WO1992015162A1 (en) Method and apparatus for controlling data communication operations within stations of a local area network
JPS61108287A (en) Method of simultaneously transmitting data of both isochronism and anisochronism on communication network
JPS6096940A (en) Method of initializing token passing local area netowrk
JPS60500195A (en) Method and device for smoothly interrupting digital communication links
US4912627A (en) Method for storing a second number as a command address of a first peripheral device and a third number as a command address of a second peripheral device
US4345325A (en) Message-interchange circuitry for microprocessors linked by synchronous communication network
WO1989010667A1 (en) High capacity communication system utilizing or-type channels
US4875158A (en) Method for requesting service by a device which generates a service request signal successively until it is serviced
EP0108672B1 (en) Content induced transaction overlap communication system
US4855997A (en) Priority queuing technique for content induced transaction overlap (CITO) communication system
US4899143A (en) High capacity communication system over collision-type channels
JPH0143499B2 (en)
US7546135B2 (en) Extended addressing for a digital trunked radio system
CN104134052A (en) RFID anti-collision method based on self-adaptive dividing mechanism
US7161950B2 (en) Systematic memory location selection in Ethernet switches
JPH0225579B2 (en)
US3274560A (en) Message handling system
JPS5848593A (en) Polling transmission system
GB2217561A (en) Data transfer method
CA1180075A (en) Local area contention network data communication system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1989905503

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1989905503

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1989905503

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1989905503

Country of ref document: EP