High speed trunk interface with concurrent protocol handlers
TECHNICAL FIELD 
     My invention relates to packet switching and more particularly to a high speed trunk interface circuit for allowing a data access interface unit to be interconnected to a high speed packet switching network via a high speed trunk. 
     PROBLEM 
     It is desirable to interconnect data access interface (DAI) units to high speed packet switching networks such as described in U.S. Pat. No. 4,491,945 of J. S. Turner. DAI units statistically multiplex several digital data links interconnecting the DAI unit to customer terminals onto one high speed packet access link (PAL) or digital trunk. DAI units are well known and one such unit is described in U.S. Pat. No. 4,530,091 of J. Chu, et al. The DAI unit described in Chu attaches to a high speed trunk operating at 56 Kbs. However, the trunks which interconnect to the packet switching network disclosed in Turner must operate at 1.54 Mbs. It is known in the prior art to build trunk control interfaces/controllers to interface to trunks operating at such high speeds as 1.54 Mbs or greater; however, these trunk controllers have been designed using either custom very large scale integration (VLSI) or bit sliced microprocessors. One such trunk controller is disclosed in the aforementioned Turner patent. The problem with such trunk controllers is the cost and the complexity of design. 
     Protocol handlers exist in commercial intergrated circuit package form such as the Signetics, Inc. 68562 integrated circuit, universal synchronous asynchronous receiver transmitter (USART) and such protocol handlers are designed to work with commercial microprocessors and DMA controllers to handle a variety of protocol such as the popular X.25 protocol. Whereas, the commercially available USARTs are capable of operating at bit rates up to 4 Mbs, the problem arises in that packets arriving over a high speed digital trunk from a network such as described by Turner are often only separated by one or two flag characters. The result is that the microprocessor controlling the USART chip cannot respond to the end of one packet in sufficient time to set up a direct memory access, DMA, controller for the second packet. Hence an overrun of the DAI unit occurs at the high speed trunk interface. The reason for this overrun is that the microprocessor has certain administrative tasks to perform for the end of one packet and administrative tasks to perform before another packet can be received. These administrative tasks include such things as properly initializing the DMA controller and initiating and closing software buffers for the receipt and end of the packets. 
     SUMMARY OF THE INVENTION 
     The present invention solves the above described problems and deficiencies of the prior art and a technical advance is achieved by provision of a structural embodiment and method that include the concurrent use of two protocol handlers receiving information from the same high speed digital trunk with one of the protocol handlers being used to detect the start of a new packet and to signal a processor which then gathers the initial information necessary to perform administrative tasks for the receipt of the packet. The second protocol handler is responsive to the packet delayed by a fixed amount of time for communicating that packet through a direct memory controller to a customer interface facility. 
     Specifically, upon detecting the start of a new packet, the first protocol handler transmits an interrupt to a processor. The processor then performs the administrative tasks. In addition, the processor sets up the direct memory controller for the communication of the packet to a customer interface circuit designated by the information in the packet. When the second protocol handler has received the entire packet, it signals the processor via another interrupt. The processor is responsive to the other interrupt to perform the administrative tasks for a fully received packet which include informing the designated customer interface of the reception of the entire packet and the packet length. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     These and other advantages of the invention may be better understood from a reading of the following description taken in conjunction with the drawings in which: 
     FIG. 1 discloses a system embodying the principles of the present invention; 
     FIG. 2 illustrates the packet format used by packets of FIG. 1; 
     FIG. 3 illustrates, in flow chart form, the program routine used to control processor 101 of FIG. 1 when a receipt of a new packet is detected by USART 106 of FIG. 1; and 
     FIG. 4 illustrates, in flow chart form, the program routine used to control processor 101 of FIG. 1 when an entire packet has been received by USART 102 of FIG. 1. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 illustrates a DAI unit which receives and transmits information from high speed digital trunk 113 to and from a plurality of terminals connected to line circuit interfaces 109 through 110 also commonly referred to as customer interface units. When a packet is received from the digital trunk 113, digital facility 107 recovers the digital data and clock using well known techniques in the art. Trunk interface 120 is then responsive to the recovered packet to determine for which line circuit interface the packet is intended. The information to make this determination is contained in the logical link number, LLN, field of the header of the packet illustrated in FIG. 2. The packet illustrated in FIG. 2 is of a well known format. 
     Trunk interface 120 functions in the following manner. All packets being received are stored via a DMA operation in a dual port memory of the line circuit interface designated by the LLN field of the packet illustrated in FIG. 2. Upon receipt of a new packet, main processor 101 must allocate a software buffer in the dual port memory designated by the LLN field, set up a DMA channel in DMA controller 105, initiate multiplexer 104, and set up USART 102. Microprocessor 101 also has to perform certain administrative tasks to close a software buffer utilized by the previous packet plus additional other functions after that packet has been entirely received. If microprocessor 101 only had the time between the present packet and the previous packet, there would be insufficient time for microprocessor 101 to react when the spacing between packets was only one or two flag characters. To enable microprocessor 101 to handle packets that are spaced close together, shift register 103 and USART 106 are utilized. Shift register 103 delays the packet data for advantageously 128 bits before the data actually has to be stored in a dual port memory via USART 102, multiplexer 104, and DMA controller 105. Microprocessor 101 receives immediate notification of the receipt of the new packet by USART 106 interrupting microprocessor 101 upon receipt of the header information of the new packet. The delay between when microprocessor 101 is notified of the receipt of the packet and the time when the packet must be stored in a dual port memory is sufficient to allow microprocessor 101 to perform the necessary administrative tasks. 
     Consider now in greater detail the operations performed by microprocessor 101 upon receipt of a new packet from trunk 113. When the new packet is transferred via bus 114 from digital facility 107 to USART 106 and shift register 103, USART 106 is responsive to the header of this packet to indicate a start of a new packet and cause an interrupt to microprocessor 101. The latter microprocessor is responsive to read the LLN field which is the first two bytes of the header from USART 106. Microprocessor 101 then interrogates the contents of the LLN field and determines which line circuit interface is to receive the new packet. Microprocessor 101 then utilizes a table stored in memory 108 to determine which data buffer is to be utilized in the designated line circuit interface&#39;s dual port memory. In addition, main processor 101 sets up a DMA channel in DMA controller 105 with the information to access the new data buffer. The previous packet is still being received by USART 102 and is using another previously setup data channel in DMA controller 105. When the previous packet is entirely received by USART 102 via shift register 103, main processor 101 controls multiplexor 104 via control bus 112 to select the output of USART 102 for communication to DMA controller 105 on either bus 116 or 117 depending on which bus corresponds to the DMA channel setup for the new packet. Control bus 112 communicates address, data, and control information. Main processor 101 had previously informed the microprocessor of the designated circuit interface via control bus 112 of the data buffer that was going to become active. After the data channel of DMA controller 105 has started to process the new packet, microprocessor 101 inactivates the previous data channel that had been used by the previous packet and performs the necessary administrative functions to close the data buffer associated with that DMA channel. 
     FIG. 3 illustrates, in flow chart form, the operations performed by microprocessor 101 when a new packet is received by USART 106. Upon receipt of a new packet, USART 106 causes an interrupt to microprocessor 101 via control bus 112. In response to this interrupt, microprocessor 101 executes the program of FIG. 3. In block 302, microprocessor reads the LLN field of the new packet from the USART 106. Based on the contents of the LLN field, microprocessor indexes into a translation table stored in memory 108 to identify the destination line circuit interface such as line circuit interface 109 through 110. After identifying the line circuit interface, microprocessor 101 executes block 304 and obtains an empty memory buffer from the new port memory of the destination line circuit interface via control bus 112. In obtaining the empty buffer, microprocessor 101 also performs the necessary administrative operations to inform the microprocessor of the line circuit interface that a memory buffer has been obtained and that a new packet is going to be placed into that memory buffer. 
     Next, microprocessor 101 executes block 305. By interrogating internal control memory locations within memory 108, microprocessor 101 determines which of the two DMA channels of DMA controller 105 is active or was last active. After making this determination, microprocessor 101 executes block 306. Block 306 results in microprocessor 101 setting up the last active DMA channel to transfer data from the new packet to the previously obtained empty memory buffer in the new port memory of the designated line circuit interface. 
     After setting up the DMA channel, microprocessor 101 executes block 307 to activate this channel for transferring data upon requests made by USART 102. These requests will be made by USART 102 when the new packet is received by the latter USART. Finally, microprocessor 101 executes block 308 which performs a return from the interrupt. 
     FIG. 4 illustrates, in flow chart form, the operations performed by microprocessor 101 upon receiving an interrupt from USART 102 indicating the end of the packet presently being received by the latter USART. First, microprocessor 101 executes block 402. The execution of block 402 results in multiplexer 104 transferring data to the other DMA channel of DMA controller 105 rather than the channel used for the previous packet. The reason for switching DMA channels is to allow the utilization of the DMA channel that had been selected and activated by blocks 306 and 307 of FIG. 3 for reception of a new packet. 
     Next, block 403 is executed by microprocessor 101. If an error has incurred in the transmission of the new packet, then decision block 404 transfers control via path 406 to block 407. When microprocessor 101 executes block 407, the error recovery process is initiated to perform well known error recovery operations. If no error was detected for the previous packet, decision block 404 transfers control via path 405 to block 408. 
     By executing block 408, microprocessor 108 obtains the status of USART 102 and the length of the previous packet. Microprocessor 101 then informs the microprocessor of the destination line circuit of the previous packet that the memory buffer is full and the packet length of the previous packet. Finally, microprocessor executes block 410 which results in a return from the interrupt. 
     While a specific embodiment of the invention has been disclosed, variations in structural detail, within the scope of the appended claims, are possible and are contemplated. There is no intention of limitation to what is contained in the abstract or the exact disclosure as herein presented. The above-described arrangements are only illustrative of the application of the principles of the invention. Normally, other arrangements may be devised by those skilled in the art without departing from the spirit and the scope of the invention.