CA1250648A - Variable length packet switching system - Google Patents

Variable length packet switching system

Info

Publication number
CA1250648A
CA1250648A CA000495005A CA495005A CA1250648A CA 1250648 A CA1250648 A CA 1250648A CA 000495005 A CA000495005 A CA 000495005A CA 495005 A CA495005 A CA 495005A CA 1250648 A CA1250648 A CA 1250648A
Authority
CA
Canada
Prior art keywords
data
packet
signal
responsive
bus
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
CA000495005A
Other languages
French (fr)
Inventor
Lloyd A. Hasley
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co 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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Application granted granted Critical
Publication of CA1250648A publication Critical patent/CA1250648A/en
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • 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/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator

Abstract

Abstract A packet switching system is disclosed for transmitting variable length packets between system ports.
Each byte of each packet has a special one-bit field for indicating whether the byte is the last byte of a packet.
A "1" in this field specifies that the byte is the last byte of a packet and activates port control circuitry that changes the potential on a system control conductor to indicate that the system data bus is now idle and free for use by other ports.

Description

VARIABLE LENGTH PACKET SWITC~IING SYSTEM

Technical Field This invention relates to a packet switching S system, and in particular, to a packet switching system for transmitting packets having a variable number o-E bytes~
Background of the Invention .
Packet switching sys-tems typicaily transmit packets containing a specified fixed number of data bytes between system ports. However~ it is rare that the data to be transmitted by a port at any given time can be formed into the number of bytes required to fill the specified size packet. Consequently, when a lesser amount of data is to be transmitted, such as a character or two, the transmitting port typically stuffs the remainder oE the packet with null data to form a packet containing the specified number of bytes. Conversely, the system breaks a large block of data up into a plurality of packets when the data to be transmitted exceeds the specified size of a single packet.
This mode of operation has a number of disadvantages. The stuffing of a packet with null data is wasteful of system resources since a corresponding amount of system through-put is wasted in transmitting the null data. The breaking up of a large block of data into a plurality of packets is also inefficient since the transmitting port must initiate and win a new data bus arbitration operation before each packet can be transmitted. Also, the last packet normally has to be stuffed with null data.
Packet switching systems using variable length packets are known. ~lowever, these systems are atypical and they implement the techniques of variable length packets in a specialized manner that is not suitable for use in typical packet switchin~ systems. For example, systems are known in which the header of each packet contains a byte in the beginning portion of the packet that specifies the
- 2 - ~ ~ S~

number of bytes in the remaining portion of the packet.
This is shown in the article entitled "Design and Use of Comflex-a ~ardware-Controlled Packet Switch" by J. A. McDermid, published in IEE PROC., Vol. 127, Pt.E, No.
6, November, 1980. The problem with this technique is that it is unduly costly and complex. Other specialized arrangements using timing and the like are known, but are not of generalized applicability~ Such systems are exemplified by U.S. Patent No. 4,412,326.
Summary of the Invention The present invention overcomes the above discussed problems by providing a packet switching system in which packets of variable length are transmitted between system ports. This is achieved without the use of complex or costly control facilities. As before, the data received by a port for transmission are organized into and transmitted as packets. However, unlike the prior systems wherein each packet contains a specified fixed number oE
bytes, packeks in this invention can be of any length as determined by the amount of data presently stored in a port that is waiting to transmit. If the amount of data to be sent is relatiqely small, the duration of the packet used to send it is relatively short. If the amount of data to be sent is relatively large, the duration of the packet is relatively longO
The duration of a packet is characterized by a framing signal applied by a transmitting port to a data bus control path termed a data frame line. In prior systems, the framing signal was of a fixed duration and was generated by subdividing the system clock. In this invention, the length of the framing signal is controlled by the transmitting port and varies with the length of the packet transmitted by the port.
A port begins the transmission of data over the system data bus by applying a low signal to the data frame line. This low advises all other ports that the data bus is busy. The transmitting port then applies the data it is storing, byte by byte, to the data bus. The port continues . . . . . .

to transmit until all oF the data stored in it has been transmitted. The last byte of each packet contains a special "end of packet" bit which is applied to the port when the last byte of the packet is applied to the data bus. The transmitting port responds to the application of the end oE packet signa] by applying a high potential to the data frarne line. This high signals the other ports that the data bus is idle and is therefore free to accept a transmission from another port.
This invention is advantageous in that it produces a data packet that varies in byte length with the amount of data to be sent. This invention overcomes the disadvanta~es of the prior arrangements since the use of a variable length data packet length obviates the need to send null data to fill a fixed length packet when transmitting a small amount of data or to use more than one packet to send a lar~e amount of data.
In accordance with an aspect oE the invention there is provided in a packet switching system having a plurality of ports interconnected by a communication cable comprising a data bus and arbitration conductor and arbitration frame conductor and data Erame conductor and control bus and a packet switch controller for initializing said ports via said control bus and each of said ports interconnected to a terminal controller that serves a plurality of customer terminals, each of said ports comprising: an address storage memory having been initialized by said packet switch controller via said control bus responsive to receipt of data from one of the customer terminals via the inter-connected terminal controller to be transmitted over said data bus to another port for accessin~ stored address information identifying said other port; a temporary memory for storing remaining data from said customer termina~; a first-in first-out memory responsive to the accessed address information and the remaining data for forming a packet; a ', 'I ~. `' .

- 3a -first detector circui~ responsive to the end of said data having heen stored in said first-in Eirst-out memory for generating a signal indicating said end of said data; an arbitration circuit responsive to said signal indicating said end of said data for requesting access to said data bus on behalf of said port by signal.ing on said arbitration conductoe; said arbitration circuit furthe:r responsive to a signal on said arbitration frame conductor indicating access granted to said data bus for generating a signal indicating said port selected to access said data bus; a gate circuit for determining the concurrence of said signal indicating said port selection and a signal ~eceived via said data framing conductor indicating that said data bus is idle; a control circuit responsive to the concurrence determination for applying a busy signal to said data frame conductor; a clock enable circuit responsive to said concurrence determination for transmitting clock signals to said first-in first-out memory; said first-in first-out memory responsive to said clock signals for transmitting the Eormed packet on said data bus; said clock enable circuit further responsive to the application of said busy signal by said control circuit to said data frame conductor for continuously applying said busy signal to said data frame conductor; a second detector circuit for determining the end of transmission of said packet on said data bus; and said clock enable circuit further responsive to the determina~ion of said end oE transmisslon of said packet or ceasing to apply said busy signal to said data frame conductor.
In accordance with another aspect of the invention there is provided a method of operating a packet switching system having a plurality of ports interconnected by a data bus and by a data frame line and by an arbitration line, said method comprising the steps of: 1) operating each port to receive data that is to be transmitted over said bus to - 3b -another port, 2) signalling an arbitration circuit within a port to request access to said data bus on behalf o said port in response to the reception of said data by said port,
3) applying signals to said arbitration line to determine whether said port can be granted access to said data bus, 4) operating said arbitration circuit to signal said port when said port is granted access to said data bus, 5) monitoring said data frame line to determine the current busy/idle state of said bus, 6) applying a control potential to said data frame line to indicate the busy state of said data bus in response to a concurrent determination of a data bus idle state and the reception of said signal from said arbitration circuit, 7) applying said received data from said port to said data bus, 8) maintaining said control potential on said data frame line to indicate the busy state of said data bus while said data is being applied to said bus, and 9) removing said control potential from said data frame line at end of the application of said data to indicate the idle state of said data bus.
~ Brief Description of the Drawing -FIG. 1 discloses the packet switching system of the subject invention;
FIG. 2 discloses the components of a port~
FIG. 3 discloses the data framing circuit;
FIGo 4 discloses the contents of FIFO 310;
FIG. 5 discloses the relationship among signals of various portions of the data framing circuit; and FIG. 6 discloses the transmitter circuit.
Detailed Description FIG. 1 discloses a packet switching system embodying the present invention. FIG. 1 discloses ports 101-1 through 101-n, packet switch controller (PSC) 107, data processor 102, terminal controller 104, terminals 105 and 106, clock 111, and paths interconnecting these components. Data bus 109a is one such path and comprises enough conductors to carry a parallel byte of data. Other paths include: control channel 103 which is used by packet switch controller (PSC) 107 to send control r ~J q ~

messages to the ports, arbitration line 11Oa which is used by ports to contend for access to data bus 109a, arbitration frame line 11Ob which is used by contending ports to prevent interruption oE the arbitration process, data frame line 109b which is used by a transmitting port to prevent interruption of packet transmission, and clock line 108 which carries synchronizing signals for the above-mentioned components.
The system of FIG. 1 is a distributed type packet switch in that packets are addressed to a destination port and station by a transmitting port rather than by a central switch. A user at terminal 105, for example r establishes a packet switch "call" to a destination, such as data processor 102, by dialing a called number associated ~ith processor 102. The called number, along with the address of calling terminal 105, are sent as a packet via terminal controller 104, port 101-n, and data bus 109a to packet switch controller PSC 107. PSC 107 receives the dialed number, translates it into the addresses of port 101-1 and data processor 102, and returns these addresses over control channel 103 to port 101-n. The address of port 101-1 and data processor 102 are then stored in port 101~n along with the address of calling terminal 105.
Subsequent data sent by a user at terminal 105 are formed into packets by terminal controller 104. Each packet contains the station ID of station 105 in the leading bytes. Port 101-n replaces the calling station ID
with the destination port and station ID and puts the packet onto the data bus 109a. The packetized data are then transmitted by port l01 n over data bus 109a to port 101-1. Port 101-1 recognizes its address in the first byte of the packet and then accep~s the subsequent bytes of the packet for transfer to data processor 102. In so doing, port 101-1 strips off its own address from the received packet and sends the remainder of the bytes over path 102a to data processor 102 which recognizes its address and reads the data in the remainder of the bytes.

This invention relates to the source and nature of the framing signal on the data frame line 109b. The framing signal denotes the duration of a data packet by remaining in high state during packet transmission and in a low state when a packet is not being transmitted. The packet duration is controlled by the transmitting port. In the prior art, the data framing signal, and hence the packet, was of fixed duration and was generated by a clock circuit that divided recurrent clock pulses so that a packet included a fixed number of bytes.
Data frame line 109b is controlled by a transmitting port 101 which holds it low during packet transmission and lets it go high at the end of transmission. In this way~ a presently transmitting port 101 signals all other ports when the data bus 109a is free for use by another port.
Generation_of Variable Length Packets As already described, a user at terminal 105 dials the number of processor 102 to establish a packet "call" thereto. Packets can then be transmitted to a destination port over bus 109a after packet switch control~er 107 enters the called port and station a~dress translation information into the sending port 101-n.
Assume that, terminal controller 104 subsequently receives data from terminal 105 that is to be sent to data processor 10~. Port 101-n receives and stores the data and contends for access to data bus 109a when it is ready to transmit a packet. When port 101-n wins access, it applies an address identifying the destination port and station as the first two bytes of a packet to data bus 109a.
Port 101-n then applies to bus 109a the data it has received from terminal 105 as the remaining bytes of the packet. The duration of the packet depends upon the amount of data port 101-n has to transmit.
Port 101--n holds low the signal on data frame line 109b during the duration of the packet transmission.
This duration is the time required for the transmission of S~3 the destination port and station addresses and the transmission of the data that port 101-n receives from terminal 105. Port 101-n lets data frame line 109b go high at the end of the packet transmission. This indicates that data bus 109a is idle and free to serve another port. The signal on line 109b remains high until a subsequently transmitting port draws it low.
The falling edge of the signal on data frame line 109b denotes that the accompanying byte on data bus 109a is the first byte of a new packet. Each port 101 examines this byte to determine whether the byte specifies its address. A receiver in the designated destination port 101-1 for the present call is enabled by the address of its port in the first byte of a packet. The receiver then receives and stores the address of data processor 102 followed by data for data processor 102.
Port 101 FIG. 2 discloses details of a port 101. Shown are arbitration circuit 201, receiving circuit 202, transmitter 203, and data framing circuit 300 along with paths connecting these elements to each other and to the rest of the system.
The arbitration and receiving circuits are conventional. Receiving circuit 202 tests the first byte of a received packet to determine whether it contains the address of the port 101 of which circuit 202 is a part.
If it's address is specified, the receiving circuit 202 then receives the station address byte and data bytes that follow. The reception of the rising edge of the data framing signal at the end of a packet causes receiving circuit 202 to transfer a received packet to its dedicated station. This packet includes the station address and the data bytes of the packet. These and other functions remain unchanged.
Arbitration circuit 201 contends in a conventional manner with other ports for use of data bus 109a. It sends a hi~h port-selected signal over .

; r~

line 301 when it wins contention. Tllis high enables data framing circuit 300 and causes transmitter 203 to transmit a packet.
The framing signal is provided by data framing circuit 300. It is connected to transmitter 203 by lines 315, 321 and 323. Line 321 is used to indicate the time at which the data frame signal on line 109b is to go high. The function of the other lines is subsequently described.
Data Framing Circuit 300 sefore the present invention, a port such as 101 created packets limited to the length of the framing signal. Transmission started as the framing signal went low. Data was then transmitted until the framing signal went high.
FIG. 3 discloses the data framing circuit 300 which comprises gates 302, 304, 306, 309 and 312. It also comprises buffer 305 and data flip-flops 303 and 308. Also shown on FIG. 3 for clarity is the output circuitry of transmitter circuit 203 comprising FIFO 310 and tri-state buffer 311.
Four signals provide system and port status information to data framing circuit 300 so it can frame the transmission of a packet. The purpose of these signals is generally described below. The action of all of these signals is subsequently described in detail.
First, a high port selected signal on line 301 indicates that the port's arbitration circuit 201 of FIG. 2 has been granted access to data bus 109a. Second, a high data frame signal on line 109b indicates that data bus 109a is idle and is therefore free to accept the present port's transmission. Third, a signal on line 321 is high during the transmission of the last byte of a packe~ by the port's transmitter circuit 203. And fourth, the system clock on line 108 provides a synchronizing signal for data framing circuit 300.
The high port selected signal on line 301 and the `:

- 8 ~

high data Erame signal on line 109b combine to indicate that conditions are correct for packet transmission to begin. The data Eraming circuit then enables transmission by causing transmitter circuit 203 to transmit one byte of 5 data per clock pulse over data bus 109a. The signal on line 321 is high during the last byte oE a packet transmitted by transmitter 203. This signal causes data framing circuit 300 to signal the end of transmission by allowing data frame line 109b to go high.
Arbitration circuit 201 provides a high enabling signal over line 301 to AND gate 302 when its port 101 is selected for access to data bus 109a. A high signal on data frame line 109b indicates an idle data bus 109a. The present port 101 must win the arbitration and the data bus 15 must be idle before the present port 101 can transmit data. These conditions are fulfilled when AND gate 302 combines a high port selected signal on line 301 with a high signal on data frarne line 109b to apply a high signal to line 313. This high signal on path 313 indicates that 20 transmission from the present port 101 may begin. The next clock pulse on line 108 clocks the high on path 313 through data flip-flop 303 to line 314.
FIG. 5 illustrates the relationships between certain signals of FIG. 3 with respect to arbitrary units 25 of time shown at the top of FIG. 5O Line and bus numbers are on the left of the illustrated waveforms. A brief indication of their functions are on the right. Hexagrams indicate the presence of data on bus 109a. An "A" within a hexagram indicates address data. A numeral within a 30 hexagram indicates the byte number of data sent on bus 109a.
~ high signal on line 314 is passed through OR gate 304 over line 315, and through inverter 3û5 at the junction of times 0 and 1 to draw the signal on data frame 35 line 109b low. This low signal indicates the beginning of a transmission of a packet by a port that has won contention. The high on enable line 315 is passed through gate 309 by the clock pulse on line 103 that begins with time 1. The resulting pulse on line 323 causes FIFO 310 of transmitter 203 to shift out the first byte of a packet to tri-state buffer 311. The high signal at enable llne 315 enables buffer 311 of transmitter 203 so the byte just shifted out of FIFO 310 is applied by buffer 311 to data bus 109a. Thus, a high signal on enable line 315 both enables buffer 311 and enables the passage of clock pulses through gate 309 to line 323. The relationship, between the high gating signal on line 315 and the clocked gated signal on line 323 is shown on FIG. 5. Enabled gate 309 continues to transfer clock pulses from line 103 to FIFO 310 via line 323 as long as enable line 315 is high.
Each pulse on line 323 causes FIFO 310 to shift out a byte of data.
FIFO 310 comprises a number of cascaded registers made up of data flip-flops. The contents of FIFO 310 before transmission are shown on FIG~ 4. Each byte contains two fields. The right field contains byte of data to be applied to bus 109a. The left field contains a bit that is low for all but the last byte of a packet.
Output register 400 of the FIFO contains a byte indicated by X's. This is a remaining byte of data ~rom the previous transmission that is not to be transmitted again. This byte is disregarded, as subsequently explained, as the contents of register 401 are shifted out. FIFO register 401 contains the address of the port 101-1 that is the destination for the next packet to be transmitted. FIFO register 402 contains the address of the destination station. FIFO registers 403-05 contain bytes of data to be transmitted. Three bytes of data, bytes 0 through 2 are depicted in FIG. 4 for illustration purposes. There may be more or less data bytes in FIFO 310 depending on the size of the packet to be transmitted.
Before time 1, the unknown byte 400 is present at the output of FI~'O 310 and the input of buffer 311. The byte is not applied to data bus 109a because buffer 311 is disabled by the low on line 315 as illustrated on FIG~ 5 during time 0. At the junction of times 0 and 1, the rising edge of the shift pulse on line 323 causes FIFO 310 to shift one position and replace the unknown byte in register 400 with the port address byte o register 401.
Thus, by the time buffer 311 is enabled by the high signal on line 315, the port address byte 401 is already present at the buffer 311 input and it is the first byte of the packet that is applied to data bus 109a. The first byte of the packet in FIFO 310 applied to data bus 109a, therefore, i6 the destination port 101-1 address.
As the high signal on line 315 keeps gate 309 enabled, each subsequent clock signal on line 108 passes through gate 309 and causes one byte of data to be shifted out of FIFO 310 and through buffer 311 to data bus 109a.
Finally, the end of the packet is denoted as a high on line 321 as the "last byte" bit is shifted out by the FIFO
as next described.
Each register of FIFO 310 has a one bit field that stores a bit indicating whether the byte is the last byte o a packet. This last-byte bit is low in each FIFO
location except for the location containing the last byte of the packet to be transmitted. A high bit is shifted through the FIFO when the last byte of the packet is readout. This high bit is applied to line 321. It passes through NAND gate 312, is inverted, and is applied to line 322. It is shown for time 5 of FIG. 5, that the last-byte bit is applied to line 322 with the last shift pulse on line 323. This is the time at which the last byte of data in the current packet is applied to data bus 10~a.
Two actions end a transmission from the present port 101-1. Both actions result from the "last byte"
signal on line 322. It is necessary to consider earlier signals affecting gate 304 to understand how the low signal on line 322 from NAND gate 312 raises the data frame signal of line 109b and disables the transmitter by applying a low , signal to line 315.
The output of AND gate 302 goes Iow when data frame line 109b is drawn low by inverter 305 at the beginning of time 1. The next occurrence of a clock pulse on clock line 108, the beginning of time 2 of FIG. 5, clocks the low signal through data flip--Elop 303. Line 314 applies this low to gate 304. However the high signal on line 315 and, therefore, the low on data frame line 109b is unaffected because line 316, the other input to OR gate 304, has meanwhile been made high as Eollows.
The input to gate 304 on line 316 is controlled by latch 308. During time 1, while the low signal on data frame line 109b is applied to AND gate 302, OR gate 304 applies a high to AND gate 306 via line 315. As the pulse 15 on clock line 108 clocks the low signal from gate 302 through data flip-flop 303 between times 1 and 2, it clocks the high signal on line 315 and the output of gate 305 through data flip-flop 308 to line 316. Line 322 is high at this time. The high on line 316 keeps data Erame 20 line 109b low by way of OR gate 304, line 315, and inverti.ng buffer 305. These actions take place at the beginning of time 2 and the relationship between these signals is apparent from an inspection of that point in time on the waveforms of lines 314, 315, and 316.
This paragraph describes how data framing circuit raises the data frame signal on line 109b at the end of a packet. FIFO 310 applies a high signal via path 321 to ~AND gate 312 as it sends its last byte of a packet over data bus 109a during time 5. The high signal passes through gate 312 because of the high enable signal on line 315. Gate 312 inverts the high signal and applies a low to gate 306 via line 322. This low signal on line 322 is shown during time 5 on F~G. 5. Gate 306 applies the low signal to the data input of flip-flop 308. This low signal is clocked through data flip-flop 308 by the next pulse on clock line 108. This next pulse on line 108 is coincident with the end of the last data byte applied to data bus 109a . .~, :

by FIFO 310 and buffer 311 at the juncture of times 5 and 6. This low signal on line 316 makes th~ signal on line 315 low by means of gate 304. The low on line 315 raises the data frame signal on line 109b by means of inverting buffer 305.
The rising edge of the signal on data frame line 109b marks the end of the present transmission over data bus 109a. The next port that has data to transmit and has won data bus arbitration is enabled by the high signal on data frame line 109b.
Transmitter Circuit The following describes the operation of transmitter 203 which is shown in detail on FIG 6. There are four steps to sending a packet of data regarding the transmitter 203 of port 101-n. Step 1. During initialization of the system, PSC 107 programs each port such as 101-n, over control channel 103, with information termed action ID numbers. Each such number is two bytes long and each is assigned to one of the stations associated with a port such as 101-n. Each number identifies port 101-n and the station to which the number is assigned. Each number is coded and later used as the address portibn of a packet that is directed to PSC 107O
This packet is applied to data bus 109a by port 101-n at the beginning of a call. Thus each action ID number serves: to address ~SC 107, to identify port 101-n, and to identlfy the number's associated station. Hereafter such a number is called an action ID.
Step 2. A call is established as follows. As station 105, for example, goes off-hook and dials the number of a destination station to set up a call, the off-hook stimulus and dialed destination station number are sent by calling station 105 to terminal controller 104.
Controller 104 responds and sends to port 101-n a two byte call-action command identifying calling station 10S
followed by a call-setup command that includes the dialed station number. Por~ 101-n translates tlle call-action : ,.

command into the appropriate action ID. This action ID
along with a subsequent call setup command is ~ormed into and applied as a packet to data bus 109a by port 101-n.
PSC 107 receives the packet and programs port 101-n with information over control channel 103 so port 101-n can thereafter translate the received station number of station 105 into the address of the destination port and station. PSC 107 also sends a packet to terminal controller 104 over data bus 109a to acknowledge receipt of the call-setup command.
Step 3. When station 105 subsequently sends data to terminal controller 104, terminal controllex 104~ in turn, sends the number of station 105 to port 101-n followed by the data that controller 104 has received from terminal 105. The calling station number 105 is translated by port 101 n into destination port and station addresses. The destination port and station addresses are assembled into the first two bytes of a packet. The data to be transmitted is inserted into the remaining bytes.
The formed packet is then applied by port 101-n to data bus 109a after the port wins arbi-tration.
Step 4. When station 105, in effect, goes on-hook at the end of its generation of data, an on-hook stimulus is sent by the station 105 to terminal controller 104. Controller 104 responds and sends to port 101-n a two byte call-action command followed by a call teardown command that includes the dialed station number. Port 101-n translates the call-action command into an action ID. This action ID along with the subsequent call teardown command is applied as a packet to data bus 109a by port 101-n. PSC 107 receives the packet and programs port 101-n over control channel 103 so port 101-n can no longer translate the station number o station 105 into the address of a destination port and station.
FIG~ 6 illustrates the circuitry of transmitter 203. A detailed descriptlon follows, but generally,, the follo~ing are the functions of ~$'~

transmitter 203. uata from terminal controller 104 enter transmitter 203 over bus 104a. The calling station address received from terminal controller 104 on path 104a is translated into destination port and station addresses before transmission of data begins to the receiving station. Data from terminal 105 on path 104a bypass the translation circuitry. Finally, transmitter 203 applies the translated destination addresses ancl the data from terminal 105 to data bus 109a.
Calling station address data enter RAM 609 over path 104a, are translated as subsequently described, are delayed in latch 611, and stored in FIFO 310 for later transmission. Non address data received from station 105 bypass RAM 609 via buffer 604, they are delayed in 15 latch 611, and they are stored in FIFO 310 for later transmission over data bus 109a. Translation data received from PSC 107 at the set up of a call enter transmitter 203 on control channel 103 and write R~M 609 by means of elements 602 and 605 through 608.
In more detail, the transmitter circuit of FIG. 6 further comprises a write circuit for RAM 609 including latch 602 and tri-state buffers 607 and 608. The transmitter proper comprises idle code detector 603, AND
gate 605, RAM 609~ latch 611, FIFO 310~ and tri-state 25 buffers 604, 606, 610, and 311.
Before considering an example packet transmission, it should be understood how transmitter 203 detects the reception of a packet from terminal controller 104 over bus 104a. Transmitter 203 includes means for detecting the beginning and end of a packet received over bus 104a ~rom terminal controller 104. Idle codes consisting of bytes of null data are sent by terminal controller 104 over bus 104a when terminal controller 104 is not transmitting a packet on bus 104a. The end of these idle code bytes signifies the beginning of a packet transmission from terminal controller 104. The first idle code byte following the reception of a packet signifies the , .

~ 15 -end of a packet transmission from terminal controller 104.
All received bytes are sensed by idle code detector 603 which produces a first signal in response to the end of idle code bytes and a second signal in response to the beginning of idle code bytes. First, idle code detector 603 produces a high pulse on address enable line 614 during the reception of the first and second bytes of a packet received on bus 104a following the last byte of idle code. Second, idle code detector 603 produces a high pulse on line 615 during the reception of the first byte of idle code after the end of a packet received on bus 104a~
The pulse on address enable line 614 is high while an address is present on path 104a. It marks the irst two bytes of a data packet received from terminal controller 104. These two bytes comprise the address of the calling terminal 105 that is sending data through terminal controller 104. The puls~ on line 615 signals the end of the transmission of a packet over bus 104a from terminal controller 104.
An example call is set up as follows. Recall that terminal controller 104 initiates a call in response to an off-hook signal and the receipt of the dialed called station digits from calling station 105. Terminal controller 104 responds by sending over bus 104a a two-byte call-action command followed by a call-setup command that includes the dialed called station number. At the beginning of the call-action command, idle code detector 603 senses the end of the idle code and applies a high signal to address enable line 614. This signal disables buffer 604, enables buffer 610 and, via AND
gate 605, enables buffer 606.
The two bytes of the call~action command on path 104a enter R~M 609 on bus 620. The RAM translates the call-action command and applies an action ID number to bus 628. This action ID serves: to address PSC 107, to identify port 101-n, and to identify calling station 105.
The signal on line 614 goes low at the end the reception of ~ 16 -the two-byte address on bus 104a. This low turns on buffer 604 and turns off bufEers 610 and 606 so subsequently received hytes on path 104a bypass RAM 609 via buffer 604. Therefore, the action ID part of the incoming packet is applied to bus 617 via RAM 609 and buffers 60S
and 610~ The rest of the packet bytes arrive at bus 617 via buffer 604.
The last byte of each packet must be stored in FIFO 310 along with a bit indicating that it is the last byte. The source of this bit is idle code detector 603.
Recall, however, that the high "end-of-data" bit on line 615 immediately follows the last byte of valid data received. Therefore the packet just described on bus 617 must be delayed so tha-t the packet's final byte of data enters FIFO 310 at the same time as the "end of data" bit on line 615. The packet is delayed by latch 611 as follows.
A synchronizing clock pulse signaling the beginning of each byte is received over path 104a and enters transmitter 203 on path 104a from terminal controller 104. This signal is separated from path 104a on line 633. The data applied to latch 611 is delayed sligh~ly by the circuitry leading to latch 611. Since the pulse on line 633 is not delayed, it's leading edge arrives at latch 611 just before the beginning of the byte it originally synchronized. Therefore the previous data byte is still present at the input to latch 611 when the leading edge of the pulse for the next data byte arrives on line 6330 This previous byte is latched by latch 611 which is leading leading edge triggered on path 633.
Thus, when a current byte enters transmitter 203 on bus 104a, the previous byte received is applied under control of the sync signal for the current byte by latch 611 to bus 324. Thus, the data at the output oE the latch 611 on bus 324 are effectively delayed by the width of one byte with respect to data entering transmitter 203.
The high pulse on path 615 occurs when the first .3 `j/~l byte of null data appears on 104a following the last byte of packet da-ta. The purpose of the delay is achieved when the last byte of a packet is applied by latch 611 to the input of FIFO 310 at the same time the end-o~-data-input pulse is applied over path 615 by idle code detector 603 to the input of FIFO 310. This end-of-data~input pulse is stored along with the last byte o~ packet data in FIFO 310. This bit is used to indicate the last byte when FIFO 310 is read.
For the example call, a packet comprising the action ID and the call setup command is now in FIFO 310 along with the end of packet bit stored with the last byte of the pacXet. FIFO 310 applies these over data bus 109a to PSC 107.
PSC 107 sends an acknowledgement packet over data bus 109a to terminal controller 104 in response to receipt of the packet just described. PSC 107 also programs port 101-n over control channel 103 so port 101 n can translate its subsequent reception of the station number of station 105 into the addresses of the destination port and station.
Assume transmitter 203 of FIG. 6 is an element of port 101-n thus programmed by PSC 107. RAM 609 of transmitter 203 i5 written to program port 101-n for the subsequent reception of the data from station 105 that is to be sent to processor 102. The data necessary to progra~
the port are applied to bus 103 by PSC 107, latched by latch 602, and written into RAM 609 via buffers 607 and 608.
~his paragraph descri~es how the first and second halves of the number of calling station is now applied sequentially to RAM 6~9 by the PSC to write the destination port and station numbers into the addressed RAM locations.
A control pulse is transmitted on control channel 103 by PSC 107 along with the RAM addresses and data-to-be-written. This pulse appears on line 626 which is separated from control channel 103 and connected to the clock input of latch 602. This pulse causes latch 602 to apply the first half of the calling terminalls station number from bus 103 to bus 622. At the same time, latch 602 applies the destination port address from bus 103 to bus 627.
While these numbers are applied to their busses, and after they are stable, PSC 107 applies a low read/write pulse over control channel 103 and line 623 to AND
gate 605, tri-state buffers 606 through 608, and the read~write input of RAM 609. The low pulse on line 623 10 disables tri-state buffer 606 via AND gate 605.
~his action opens the connection between bus 104a and the input of ~AM 609. This is done to avoid interference to the writing process from any possible signal on bus 104a.
The low pulse on line 623 also enables tri-state 15 buffers 607 and 608. This actlon connects the address ~A~
and data (D) inputs of RAM 609, via busses 622 and 627 respectively, to their information source: the output of latch 602. The pulse puts RAM 609 in write mode for the instant that the pulse on line 623 is low. This causes the destination port address to be written at the address in RAM 609 ~orresponding to the first half of the calling terminal's station number.
The next data to appear on control channel 103 from PSC 107 are the destination station address and the second half of the calling terminal's station number. In the same way just described, the destination station address is written into RAM 609 at the RAM address corresponding to the second half of the calling terminal's sta.tion number. Therefore, when the two halves of the source terminal's station number are subsequently received over bus 104a and applied in sequence by buffer 606 to bus 620 at the beginning of a data transmission, RAM 609 uses the received data as address information and applies the destination port and station numbers in se~uence to bus 628.
Packet data are transmitted from a source station to a destination station as follows after RAM 609 has been ~o~ `"i,`,~3 - 19 ~

programmed as just described. First a path is established from bus 104a, through buffer 606 so that the number of calling station 105 can he translated by R~M 609 into destination port and station addresses. The following describes how the path is established.
Recall that idle code from terminal controller 104 ends and station numbers begin on bus 104a coincident with the beginning of a high signal on line 614. Recall too, that tri-state buffers 605 and 610 are enabled and tri-state buffer 604 is disabled by the resulting high on line 614. secause of these actions, the station number of station 105 that appears in the first two bytes of a transmission on bus 104a is applied to the address (A) input of RAM 609 via bus 620. Having been programmed as described earlier, RAM 609 applies destination port and station addresses to bus 617 in response to its receipt of the two halves of this station number.
After the destination addresses have been thus applied to bus 617, RAM 609 is bypassed so data bytes subsequently received by transmitter 203 on bus 104a pass via element 604 to bus 617 unaltered by RAM 609. After R~M 609 has performed its translation, the signal changes on line 614 to low as already described in connection with the operation of idle code detector 603. This low signal disables tri-state buffers 606 and 610 and enables tri-state buffer 604. Subsequent data bytes bypass RAM 609 via bus 616 and buffer 604 and appear unaltered at bus 617.
Recall that bytes on b~s 617 are delayed in latch 611. Recall too, that at the end of the transmission, a high bit is sent by idle code detector 603 via line 615 ~o FIFO 310 to indicate the last byte o the transmission. The packet, is loaded into FIFO 310 after being thus delayed with its last byte marked by the bit just mentioned. FIFO 310's contents at this point are indicated in FIG. 4.

- 20 ~ 4~

Flip-flop 637 is set by the high signal on line 615 when the last byte of a packet is applied to FIFO 310. Therefore, the signal on line 338 is high from the time FIFO 310 is loaded with a packet until the beginning of the process oF shifting out data. This signal on line 338 is used to indicate that the transmitter has a full set of data. Line 338 is connected to arbitration circuit 201 and the high on line 338 provides the stimulus to activate the arbitration process for its port. Flip-flop 637 is reset by the first shift pulse on line 323.This is a pulse that is received from the data framing circuit and it shifts the first byte of data out of FIFO 310. A low-going signal on line 338 as flip-flop 637 resets, indicates the beginning of transmission over data 15 bus 1 O9a. This low signal is used to prevent further arbitration by port 101-n until FIFO 310 is again loaded with a full packet.
Return to the example transmission, wherein FIFO 310 contains a full packet and line 338 is high.
After arbitration and when the present port 101 n wins access to data bus 109a, data framing circuit 300 of FIG. 2 sends signals over lines 323 and 315 that cause FIFO 310 to shift out its contents via buffer 311 and data bus 109a. Data framing circuit 300 sends a high signal over line 315 to enable buffer 311 and, while that signal is high, a series of pulses is sent over line 323 to shift data out of FIFO 310.
The bit indicating the last byte of data to be transmitted is shifted out on line 321 as the last byte of the current set of data is transmitted over line 109a.
This bit causes data framing circuit 300 of ~IG. 2 to end the transmission by ending the pulse train on line 3~-3 and by bringing low both signals on lines 323 and 315 to end the example transmission. At the same time, data framing circuit 203 raises the logic level on data frame line 109b.
Station 105 of FIG. 1 continues to send data to -; r~ r~

~ 21 ~

terminal controller 104. Terminal controller 104 continues to prepare packets consisting of the number of station 105 and the data generated by station 105. Terminal controller 104 sends each such packet to port 101-n.
Port 101-n continues to translate the number oE
station 105 into the address of the destination port 101-1 and the destination station 102. For each packet received from terminal controller 104, port 101-n goes through the entire arbitration process already described. ~aving determined that it has won contention for use of data bus 109a, port 101-n transmits the data from calling station 105 to destination station 102 by means of packets addressed to that station.
When the call is completed, station 105 sends the equivalent of an on-hook signal to terminal controller 104. In response, terminal controller 104 sends a call-action command to port 101-n as it did to set up the call. The call-action command is followed, however, by a call-teardown command in this case. The call-teardown command includes the dialed station number. Again, port 101-n translates the call-action command into the action ID. Port 101-n again makes up a packet o the action ID and the associated data: in this case~ the call-teardown command. Port 101-n sends this packet to PSC 107. In response to receipt oE the action ID and call-teardown command, PSC 107 programs port 101-n via control channel 103 as it did to set up the call. To tear down the call, however~ the number of station 105 is associated with an fictitious station address when port 101-n is again programmed.

Claims (8)

Claims
1. In a packet switching system having a plurality of ports interconnected by a communication cable comprising a data bus and arbitration conductor and arbitration frame conductor and data frame conductor and control bus and a packet switch controller for initializing said ports via said control bus and each of said ports interconnected to a terminal controller that serves a plurality of customer terminals, each of said ports comprising:
an address storage memory having been initialized by said packet switch controller via said control bus responsive to receipt of data from one of the customer terminals via the interconnected terminal controller to be transmitted over said data bus to another port for accessing stored address information identifying said other port;
a temporary memory for storing remaining data from said customer terminal;
a first-in first-out memory responsive to the accessed address information and the remaining data for forming a packet;
a first detector circuit responsive to the end of said data having been stored in said first-in first-out memory for generating a signal indicating said end of said data;
an arbitration circuit responsive to said signal indicating said end of said data for requesting access to said data bus on behalf of said port by signaling on said arbitration conductor;
said arbitration circuit further responsive to a signal on said arbitration frame conductor indicating access granted to said data bus for generating a signal indicating said port selected to access said data bus;
a gate circuit for determining the concurrence of said signal indicating said port selection and a signal received via said data framing conductor indicating that said data bus is idle;

a control circuit responsive to the concurrence determination for applying a busy signal to said data frame conductor;
a clock enable circuit responsive to said concurrence determination for transmitting clock signals to said first-in first-out memory;
said first-in first-out memory responsive to said clock signals for transmitting the formed packet on said data bus;
said clock enable circuit further responsive to the application of said busy signal by said control circuit to said data frame conductor for continuously applying said busy signal to said data frame conductor;
a second detector circuit for determining the end of transmission of said packet on said data bus; and said clock enable circuit further responsive to the determination of said end of transmission of said packet for ceasing to apply said busy signal to said data frame conductor.
2. The system of claim 1 wherein said control circuit comprises:
a first flip-flop responsive to the concurrence determination for switching from a first to a second state;
an OR circuit responsive to said first flip-flop being in said second state for generating said busy signal; and a bus driver circuit responsive to the generated busy signal for transmitting said generated busy signal on said data frame conductor.
3. The system of claim 2 wherein said second detector further responsive to a portion of said packet remaining in said first-in first-out memory for generating a signal indicating that the transmission of said packet is still continuing;
said clock enable circuit comprises a first AND gate responsive to the signal indicating the continuation of transmission of said packet and the transmission of said busy signal for generating a flip-flop control signal;
a second flip-flop responsive to said flip-flop control signal for switching from a first to a second state to control the application of said busy signal to said data frame conductor via said OR gate; and a second AND gate responsive to said transmission of said busy signal and clock signals for retransmitting said clock signals to said first-in first-out memory.
4. The system of claim 2 wherein said OR gate circuit responsive to said second flip-flop being in said second state for continuously applying said busy signal to said data frame conductor via said bus driver circuit.
5. The system of claim 4 wherein said first detector circuit comprises a subcircuit for determining the end of data from said terminal controller; and a third flip-flop responsive to the determination of the end of data from said terminal controller for switching from a first to a second state thereby generating said signal indicating said end of said data.
6. In a packet switching system having a plurality of ports interconnected by a communication cable comprising a data bus and arbitration conductor and arbitration frame conductor and data frame conductor and control bus and a packet switch controller for initializing said ports via said control bus and each of said ports interconnected to a terminal controller that serves a plurality of customer terminals/ each of said ports comprising:
an address storage memory for storing address memory identifying ports on said system;
said packet switch controller responsive to an initialization of said system for writing said address information into said address storage memory;

said address storage memory responsive to receipt of of data from one of the customer terminals via the interconnected terminal controller to be transmitted over said data bus to another port for accessing said stored address information identifying said other port;
each of said ports further comprising a temporary memory for storing remaining data from said customer terminal;
a first-in first-out memory responsive to the accessed address information and the remaining data for forming a packet;
a first detector circuit for determining the end of data from said terminal controller;
a first flip-flop responsive to the determination of the end of data from said terminal controller for switching from a first to a second state thereby generating a signal indicating the end of said data;
an arbitration circuit responsive to said signal indicating said end of said data for requesting access to said data bus on behalf of said port by signaling via said arbitration conductor;
said arbitration circuit further responsive to a signal received via said arbitration frame conductor indicating access granted to said data bus for generating a signal indicating said port selected to access said data bus;
a gate circuit for determining the concurrence of said signal indicating said port selected and a signal received via said data framing conductor indicating that said data bus is idle;
a second flip-flop responsive to the concurrence determination for switching from a first to a second state;
an OR circuit responsive to said second flip-flop being in said second state for generating a busy signal;

a bus driver circuit responsive to the generated busy signal for transmitting said generated busy signal on said data frame conductor;
a second detector circuit responsive to a portion of said packet remaining in said first-in first-out memory for generating a signal indicating that the transmission of said packet is still continuing;
a first AND gate responsive to the signal indicating the continuation of transmission of said packet and the transmission of said busy signal for generating a flip-flop control signal;
a third flip-flop responsive to said flip-flop control signal for switching from a first to a second state;
said OR gate further responsive to said third flip-flop being in said second state for continuously applying said busy signal to said data frame conductor;
a second AND gate responsive to said transmission of said busy signal by said OR gate and clock signals for retransmitting said clock signals to said first-in first-out memory; and said first-in first-out memory responsive to said clock signals for transmitting the formed packet to said data bus.
7. The system of claim 6 wherein said second detector circuit further responsive to the end of transmission of said packet for generating a signal indicating said end of transmission of said packet on said data bus;
said first AND circuit further responsive to said signal indicating said end of said packet for generating another flip-flop control signal; and said third flip-flop being further responsive to said other flip-flop control signal for switching from said second state to said first state.
8. A method of operating a packet switching system having a plurality of ports interconnected by a communi-cation cable comprising a data bus and an arbitration conductor and arbitration frame conductor and data frame conductor and control bus and a packet switch controller for initializing said ports via said control bus and each of said ports interconnected to a terminal controller that serves a plurality of customer terminals and each of said ports comprises an address storage memory and a temporary memory and a first-in first-out memory and a first detector circuit and an arbitration circuit and a gate circuit and a control circuit and a clock enable circuit and a second detector circuit, said method comprises the steps of:
accessing from said address storage memory stored address information identifying another port in response to receipt of data from one of the customer terminals via the interconnected terminal controller to be transmitted over said bus to said other port with said accessed information having been stored by said packet switch controller via said control bus during an initialization of said system;
storing remaining data from said customer terminal in said temporary memory;
forming a packet by said first-in first-out memory in response to said accessed address information and the remaining data;
generating a signal by said first detector circuit indicating the end of said data in response to the end of said data having been stored in said first-in first-out memory;
requesting access to said data bus on behalf of said port by said arbitration circuit by signaling on said arbitration conductor in response to said signal indicating said end of said data;

generating a signal indicating said port selected to access said data bus by said arbitration circuit in response to a signal on said arbitration frame conductor indicating access granted to said data bus;
determining by said gate circuit the concurrence of said signal indicating said port selection and signal received via said data framing conductor indicating that said data bus is idle;
applying a busy signal to said data frame conductor by said control circuit in response to the concurrence determination;
transmitting clock signals to said first-in first-out memory by said clock enable circuit in response to said concurrence determination;
transmitting the formed packet on said data bus by said first-in first-out memory in response to said clock signals;
continuously applying said busy signal to said data frame conductor by said clock enable circuit in response to the application of said busy signal by said control circuit to data frame conductor;
determining the end of transmission of said packet on said data bus by said second detector circuit; and ceasing to apply said busy signal to said data frame conductor by said clock enable circuit in response to the determination of said end of said packet.
CA000495005A 1984-11-13 1985-11-12 Variable length packet switching system Expired CA1250648A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67098284A 1984-11-13 1984-11-13
US670,982 1984-11-13

Publications (1)

Publication Number Publication Date
CA1250648A true CA1250648A (en) 1989-02-28

Family

ID=24692678

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000495005A Expired CA1250648A (en) 1984-11-13 1985-11-12 Variable length packet switching system

Country Status (5)

Country Link
EP (1) EP0201561A1 (en)
JP (1) JPS62500832A (en)
KR (1) KR870700277A (en)
CA (1) CA1250648A (en)
WO (1) WO1986003083A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01259651A (en) * 1988-04-08 1989-10-17 Fujitsu Ltd Communication system utilizing packet exchange network
US6023478A (en) * 1996-03-29 2000-02-08 Hewlett-Packard Method and apparatus for communicating data byte streams

Also Published As

Publication number Publication date
WO1986003083A1 (en) 1986-05-22
EP0201561A1 (en) 1986-11-20
JPS62500832A (en) 1987-04-02
KR870700277A (en) 1987-08-20

Similar Documents

Publication Publication Date Title
US4704606A (en) Variable length packet switching system
EP0203111B1 (en) Distributed packet switching system
US4532626A (en) Collision avoiding system and protocol for a two path multiple access digital communications system
US4354263A (en) Computer-communications concentrator for transmission and switching of packetized data
CA1193702A (en) End-to-end information memory arrangement in a line controller
US4439763A (en) Collision avoiding system and protocol for a multiple access digital communications system
US4412326A (en) Collision avoiding system, apparatus and protocol for a multiple access digital communications system including variable length packets
EP0202299B1 (en) Multiphase packet switching system
CA1167171A (en) Communication system concentrator for connecting a plurality of asynchronous data processing terminals
EP0614323B1 (en) Method and apparatus for transmitting a high bit rate data flow over N independent digital communication channels
US7006498B2 (en) System for transmitting local area network (LAN) data frames through an asynchronous transfer mode (ATM) crossbar switch
CA1250648A (en) Variable length packet switching system
US4119805A (en) Line-control unit for telecommunication system
US4550401A (en) Delivery information packet switching system
EP0243563B1 (en) Non coded information and companion data switching mechanism
US6301259B1 (en) Switch and switching method
KR100212936B1 (en) Circuit switch including providing idle codes
EP0405041B1 (en) Terminal adapter having a multiple HDLC communication channels receiver for processing control network management frames
US5751974A (en) Contention resolution for a shared access bus
CN1353914A (en) Internal ATM-based multi-terminal client installation
JPS62295536A (en) Token passing network system
JPH06261057A (en) Line concentrator for local area network
KR980013083A (en) Multi-Protocol Implementation of ATI Virtual Channel Switching System
JPH06334679A (en) Adaptation processor
JPH0683231B2 (en) Parallel data transfer method

Legal Events

Date Code Title Description
MKEX Expiry