Abstract:
An apparatus is provided for configuring data cells received in a telecommunications process in a continuous stream of data cells of fixed length and each comprising a header and a user data part. The apparatus comprises a processing unit, adapted and configured so that it is able to check data cells for the presence of empty cells, discard the data cells consisting of empty cells and then check the user data parts of the data cells less the empty cells—without the need to buffer the same—as to whether they belong together, and then to assemble the user data parts of the data cells belonging together into a frame. The apparatus may be integrated in, a modem and is also particularly suitable for data cells existing as ATM cells for receiving by an ATM system. The invention relates in addition to a correspondingly sequencing method for configuring data cells.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   This application claims priority under 35 U.S.C. 119 of German Patent Application Number 10241718.0 filed Sep. 9, 2002. 
   FIELD OF THE INVENTION 
   The invention relates to an apparatus and a method for configuring data cells received in a telecommunications process in a continuous stream of data cells of fixed length and each comprising a header and a user data part. 
   BACKGROUND OF THE INVENTION 
   The wide-spread popularity of the Internet in both private and commercial applications has resulted in a sudden increase in the requirement for broadband data connections, the majority of which can be produced over an already existing cable so that furnishing the data line does not add to the costs involved. This technique is used by some telecommunications vendors in public networks of high bandwidth. Transmitting the user data part is done, for example, via the POTS line often already existing at the customer end. In this arrangement the user data can be transmitted in parallel to the so-called narrow-band services, e.g. digital or analog voice or fax communications. 
   For fast bidirectional data transmission, use is made, for example, of the asymmetrical digital subscriber line (ADSL) technology in which a modulated analog signal is transmitted via the copper pair of the POTS line. A demodulator circuit as may be a component of an ADSL modem of the customer converts the modulated analog signal into a stream of serial synchronized bits. Synchronizing the serial bit stream satisfactorily makes it necessary that the serial bit stream be permanently available. This is why, should no user data be transmitted at the time, empty data packets (so-called empty cells) are transmitted in a predefined format so that a continual data stream exists in the transmitting and receiving direction. 
   In achieving broadband public networks, asynchronous transfer mode (ATM) systems as standardized by the International Telecommunication Union (ITU) are finding increasing application for communicating data between subscribers. In this communication technology, the user data to be transmitted in a format in accordance with a network protocol of the local area network (LAN) is resolved into one or more ATM data cells of a fixed byte length, provided with a destination address and transmitted via packet switching exchanges to the destination address. The ATM data cells need to be converted back at the receiver end into user data in a data format in accordance with the network protocol. 
   In network terminology, the various protocol steps are usually termed “layers.” Involved in the case of ATM data communications as cited above are the so-called transmission convergence (TC) layer and the ATM adaption layer (AAL). 
   The TC layer represents a processing step controlling communication of the user data via the physical connection of the public network. In this processing step, the user data in the form of ATM cells is received as a serial data stream, checked for transmission errors, and empty cells serving to maintain synchronization are removed. When user data is transmitted, this processing step computes a checksum to be added to the ATM cells to be transmitted. If no user data needs to be transmitted, empty cells are transmitted in the direction of communication. 
   The AAL in ATM systems is the member linking cell-oriented transmission of the TC layer to the user data to be forwarded to a higher protocol layer. In ATM technology, various modes of communication are supported for the various applications, each of which is assigned a service type and its own data format of the interface of the AAL to a higher protocol layer. Provided for data transmission with the aid of a modem is the so-called AAL5 service type specially introduced for this application as part of the ATM specification. 
   The AAL handles substantially two tasks. For one thing, it provides an interface to the local area network (LAN); for another, ATM cells to be exchanged with the TC layer need to be converted into a suitable data format. This function is handled by the segmentation and reassembly (SAR) function. 
   Processing the functions of the TC layer and SAR function of the AAL is usually handled by a special apparatus as may be integrated in an ADSL modem, for example. It is in this apparatus that the received ATM data cells are configured and made available in a format compatible with the network protocol used (for example TCP/IP) for feeding into a LAN connecting the hardware of the net subscriber, e.g., a PC. 
   In previously known apparatus of the aforementioned kind, the processing functions of the TC layer and the SAR function of the ATM adaptation layer (AAL) are each implemented in two separate processing units. The two processing units may be achieved in the form of one or more processors in which various programs are handled. Since processing the data in two processing units is done with differing processing times or program priorities, a buffer storage, (e.g., a FIFO) needs to be inserted between the two processing units to hold the data until it is able to be processed by the other processing unit in each case. For reading the data in and out of the buffer storage, a separate interface to the two processing units is needed in each case. This makes the configuration of such apparatus complicated and expensive. 
   SUMMARY OF THE INVENTION 
   It is an object of the invention to provide an apparatus of the aforementioned kind which has a simple and inexpensive configuration as compared to existing apparatus. In addition, it is an object of the invention to provide a corresponding particularly simple method. 
   In accordance with one aspect of the invention, an apparatus is provided that comprises a processing unit, configured so that it is able to check data cells for the presence of empty cells, discard the data cells consisting of empty cells, then to check the user data parts of the data cells less the empty cells—without needing to buffer same—to determine whether they belong together, and then to assemble the user data parts of the data cells that belong together into a frame. 
   The invention provides a novel way for advantageously configuring data cells wherein user data parts of data cells belonging together of a lower protocol layer are assembled into frames in a single processing unit without buffering, resulting in a buffer storage no longer being needed for the ATM cells less the empty cells while likewise doing away with the interface between various processing units. In addition, empty data cells and data cells not intended for this apparatus are discarded. The processing unit can be configured in a simpler way because irrelevant data cells are discarded at an early stage so that the processing unit now needs to handle substantially fewer data cells. 
   In another aspect of the invention, a method is provided that comprises checking the data cells for the existence of empty cells, discarding data cells consisting of empty cells, checking—without buffering—the data cells less the empty cells to determine whether they belong together, and assembling the user data parts of the data cells belonging together into a frame. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Embodiments of the invention are discussed by way of example with reference to the accompanying drawings, in which: 
       FIG. 1  is a schematic block diagram of one embodiment of an apparatus in accordance with the invention; 
       FIG. 2  is an illustration of a configuration of a data cell as configured by an apparatus in accordance with the invention; 
       FIG. 3  is an illustration of a data unit including a frame comprising data cells as assembled by an apparatus in accordance with the invention; 
       FIG. 4  is a flow chart of one embodiment of a method in accordance with the invention; and 
       FIG. 5  is a flow chart of another embodiment of a method in accordance with the invention. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1  illustrates a first embodiment of an apparatus  10  in accordance with the invention for configuring data cells received as a continuous stream of data cells in a data transfer mode; the data transfer mode in this case being an asynchronous transfer mode (ATM). The apparatus  10  may be integrated for example in a modem. The apparatus  10  is connected to a local area network (LAN)  12  as well as to a broadband public network  14  and links the LAN  12  to the public network  14 . 
   The apparatus  10  comprises a processing unit  11  which may consist of one or more processors and a program storage  16  connected to the processing unit  11  for storing instructions configured so that they represent the steps of the embodiments of the methods in accordance with the invention such as described below. 
   The LAN  12  may comprise one or more computers  15  which, in making use of the network protocol, permit swapping data with the apparatus  10  in accordance with the invention. 
   The modem comprising the apparatus  10  is connected, for example, by a flex pair of copper conductors of a POTS connection to the public network  14  in accordance with ADSL technology, the data being communicated in the form of a stream of serial bits. 
   The processing unit  11  configures data cells received from the public network  14  so that the data cells are converted into frames configured so that they can be processed at a higher protocol layer. These frames can be communicated via a frame memory  18  connected to the apparatus  10  to the computers  15  which in this way are able to receive data stemming, for example, from a web server via the public network  14 . 
   In the case as described in the following, the data cells are communicated in the public network  14  in the form of ATM cells in a continuous stream to the apparatus  10  and the frame of the higher protocol layer represents an AAL5 data unit as an interface to the LAN  12 . The apparatus in accordance with the invention and the method in accordance with the invention can easily be modified, however, so that they are just as applicable for other data cell and frame formats specified differently from the present case as described. 
     FIG. 2  illustrates the configuration of an ATM cell having a fixed length of 53 bytes. The first five bytes form the ATM header and are used as control information, i.e., the actual user data is held in the subsequent 48 bytes. 
   The data fields identifying the virtual paths (VPI) and virtual channels (VCI) of the ATM header comprise one or two bytes and form together the destination address as dedicated to each receiver which may, for example, comprise a modem. In ATM, it is the destination address which controls communication of the individual ATM cells by means of the so-called virtual paths and virtual channels. 
   The payload type identifier (PTI) bit field of the ATM header consists of 3 bits and is used to distinguish ATM cells containing user data from cells containing system data. In addition, the PTI bit field marks by a predefined bit combination the last ATM cell belonging to a frame. 
   The header error control (HEC) field contains an 8-bit checksum defined by means of an error correction function from the first 4 bytes of the header. This so-called HEC value serves to identify headers including communication errors. It is also used for data cell synchronization, to permit ATM cell delineation in the continuous stream of serial bits. 
   The generic flow control (GFC) bit field comprising 3 bits and the cell loss priority (CLP) control bit are shown for the sake of completeness, but are not important to the understanding of the apparatus and method of the invention. 
     FIG. 3  illustrates the data format of the AAL5 data unit. Several data cells containing exclusively the user data part of the ATM cells are assembled into a frame, called the service data unit (SDU) frame in FIG.  3 . This SDU frame is then memorized for later communication to the next-highest protocol step for further processing. 
   Likewise illustrated in  FIG. 3  in the AAL5 data unit for ATM communication are further items of control information comprising a two-byte long control data field, of the same length as the SDU frame contained in the two-byte long LENGTH data format, and a four-byte long checksum computed from the value of the SDU frame and held in the CRC32 data field. In addition, filler bits are provided whose function is explained below. Since the control data field is not important for understanding the apparatus in accordance with the invention, no further details thereof are included. 
     FIG. 4  illustrates the steps in a program stored in the program storage unit  10  of the processor(s)  11  of the apparatus  10  for receiving a continuous stream of ATM cells from the public network  14 . 
   The flow chart of  FIG. 4  representing the steps in one embodiment of the method in accordance with the invention as recycled every time at the starting point of the program  30  for each ATM cell received by the apparatus  10  via the public network  14 . 
   Before configuration of the ATM cells can commence, the stream of serial bits received needs to be synchronized for ATM cell delineation. For this purpose four bytes each of the stream of serial bits received are used to form a checksum with the aid of the same error correction function used for computing the HEC value of an ATM cell. This checksum is compared to the HEC value communicated in an ATM cell as the fifth byte. When the computed value tallies with the value as communicated by the fifth byte, the position of the ATM cell header and thus cell delineation is identified. ATM cell synchronization is concluded when this agreement has been detected for a predefined number of ATM cells in sequence. 
   In accordance with the synchronization procedure just described, the HEC checksum is computed from the four byte long ATM header in step  32  of the program (see FIG.  4 ). In the subsequent interrogation step  34 , the check as described above is implemented to see whether the HEC value communicated in the header tallies with the value computed by way of the preceding byte. If a set number of errors in sequence is exceeded, the steps described above can be repeated for synchronizing the serial bit stream to the start of the ATM cell. 
   Should the HEC value not be correct, i.e. the computed value fail to tally with the HEC value taken over from the bit stream, a statistics function  36  is called which registers the faulty communication and then discontinues further processing of the ATM cell by jumping to the end of program  38 . If the two HEC checksums tally, the program branches to interrogation step  40 . 
   As previously mentioned, as in the majority of connecting techniques so too in the ATM method as described presently as an example, the stream of data cells needs to be communicated without interruptions. This is why, should no user data be communicated at the time, empty cells are transmitted in a predefined format. On interrogation  40 , a check is made as to whether the ATM cell just received is an empty cell or a cell including user data or control data of a system cell as detailed below. This is done by way of the HEC checksum of the ATM cell header which assumes a predefined value characteristic of empty cells being present if an empty cell is involved, the program branches to the end  38 , so that empty cells are not included in further processing. 
   Should the ATM cell being processed at the time not be an empty cell, the program jumps directly to interrogation step  42 —in which—without prior buffering of the remaining ATM cells less the empty cells the destination address contained in the VCI and VPI data fields of the ATM header of the remaining ATM cells is checked for correctness. Should the received ATM cell not be destined for the receiver, i.e. the apparatus  10  or a modem comprising the apparatus, the destination address fails to tally with a predefined address as memorized, for example, in a configuration register of the apparatus in accordance with the invention. In this case the ATM cell is discarded and processing discontinued at end  38  of the program. 
   The remaining steps in the program are thus implemented solely for ATM cells having no empty cells and a valid destination address. 
   On interrogation  44 , a check is made by analyzing the PTI bit field of the ATM header to see whether the ATM cell can be classified as a user cell or system cell. System cells—also termed network cells or operations and maintenance (OAM) cells—are used, for example, for testing data communications or to measure the response time of the receiver. 
   If the latest ATM cell is an OAM cell, the next step is its further processing in function block  46 . Here, the desired information is made available and the modified OAM cell can be transmitted back e.g. to the sender of the ATM cell. If user cells are being communicated at the time, the processor jumps to interrogation step  48 . 
   The data format of the AAL5 data unit provides a maximum length of 64 kbyte for the SDU frame (see FIG.  3 ). In this frame, which is substantially larger than the user data part of a single ATM cell shown in  FIG. 2 , the user data parts of several ATM cells are assembled into a larger frame, ignoring the ATM header. 
   On interrogation  48 , a check is then made by way of the PTI bit field in the ATM cell header to see whether all ATM cells belonging to a frame have already been communicated, i.e., whether the ATM cell being checked at the time is the last cell belonging to an SDU frame. The PTI bit can exhibit one of two predefined values, one value for the case that the ATM cell is not the last, and the other value for the case that the ATM cell is the last belonging to an SDU frame. Should the PTI bit indicate that the ATM cell is not the last belonging to the SDU frame being formed at the time, in routine  50  the user data part of the ATM cell is copied into the SDU frame memory  18 . 
   If the ATM cell being processed at the time is the last belonging to the SDU frame being formed at the time, in function  52  the additional control data of the AAL5 data unit as described above with reference to FIG.  3  and the filler bits are removed. The remaining user data part of the ATM cell is copied into the SDU frame memory  18 . 
   This concludes configuring of an ATM cell and the program is terminated by the end of program  38 . If the ATM cell happens to be the last cell in an SDU frame as just formed, this concludes formation of the SDU frame which is then made available in the frame memory  18  for further protocol layers of the communication protocol. Should the ATM cell not be the last cell in an SDU frame as just formed, the program is recommenced at step  30 . 
   In the embodiment of the method in accordance with the invention as described above, the ATM cells belonging to an SDU frame were received one after the other and then assembled into the SDU frame. In accordance with an alternative embodiment, the ATM cells belonging to various SDU frames may also be received interleaved. Then, from the VPI/VCI bit in the ATM cell header, it is evident to which SDU frame they belong in each case. In the frame memory  18 , a separate segment is then firstly allocated for each SDU frame to be commenced new, the various segments being simultaneously filled with the user data parts of the ATM cells arriving interleaved. 
   In addition to receiving and configuring the data cells, the apparatus  10  in accordance with the invention may also serve in a further embodiment to generate and transmit data cells as will now be briefly described. 
     FIG. 5  illustrates the steps in a program, in accordance with the invention, needed to transmit ATM cells to the public network  14  as may be likewise stored in the program storage  16  of the processor(s) of the apparatus. 
   The sequence in the part of the program for transmitting commences at point  60  in starting the program. 
   In the next step, a check is made on interrogration  62  as to whether a system cell as modified above (OAM cell) is to be transmitted. This has priority treatment over frames and is instantly transmitted as a complete ATM cell by means of the routine  64 . 
   If no OAM cells exist, in the next step a check is made on interrogation  66  as to whether a frame including user data is to be transmitted. If no user data is available, the program sequence branches to block  68  in which empty cells are generated in an ATM cell format. These empty cells are then likewise transmitted by being inserted into the continually transmitted stream of data cells (jump to point  80  of the program). 
   If an SDU frame for communication is made available from the higher protocol layer in the frame memory  18 , a program loop comprising a routine  70  and interrogation  72  is cycled until all user data of the SDU frame have been segmented into single user data fields of 48 bytes each and communicated in the form of ATM cells. The routine  70  generates and transmits the data of an ATM cell by making the header elements of the ATM cell being made available as shown in  FIG. 2 , the HEC value computed as described above and a 48 byte long user data field copied from the SDU frame into the user data part of the ATM cell. 
   On interrogation  72 , a check is made on the basis of the length of the SDU frame and the number of ATM cells already transmitted to see whether segmenting a complete SDU frame into the ATM cells has been concluded. If segmenting has not been concluded, the routine  70  is retrieved, otherwise the program branches to step  74 . 
   Since the SDU frames do not necessarily comprise a length corresponding to a whole number multiple of 48 bytes, i.e. the length of the user data (or control data) part of an ATM cell, filler bits are added to the bits for the last ATM cell belonging to a frame during step  74  in the program in addition to the remaining user data comprising the control data, the length field and the CRC32 field so as to achieve the specified length of 48 bytes. This ATM cell is then transmitted in concluding segmenting of the SDU frame to be transmitted. 
   The program then branches to end of program  80  which in turn instantly jumps to the start  60  in which a new ATM cell, OAM cell or empty cell is made available for data communication so that a continual stream of data cells is transmitted across the public network  14  to the receiver. 
   With the aid of the steps in the program as described above with reference to  FIG. 4 , configuring the user data part from belonging-together ATM cells into SDU frames can now be done in a single step without needing to buffer data before the SDU frames are formed. More particularly, this eliminates the need to save the ATM cells less the empty cells in a buffer, e.g., a FIFO. This likewise applies to composing ATM cells from segmenting SDU frames as described with reference to  FIG. 5  without necessitating a buffer. This now enables the functions, usually implemented in the TC layer and SAR function of the AAL to be implemented in a single processing means. 
   The steps in the method in accordance with the invention can be implemented by a processor which serves a program held in the program storage, for example in the form of interrupt routines. By discarding empty cells and incorrectly addressed data cells without prior buffering of the data before generating the frames, the memory capacity requirement as well as the memory access frequency are considerably reduced so that a relative simple processor can now be used in thus permitting cost-effective fabrication of the apparatus in accordance with the invention. 
   As evident to those persons skilled in the art, the steps in accordance with the invention may also be implemented by hardware logic as may be a component of the apparatus  10  for configuring the data cells and forming their processing means.