ATM-based data transmitting and receiving device and method

A data transmitting and receiving device, which transmits and receives ATM cells between the calculation processing modules is described. The ATM-based data transmitting and receiving device includes a transmitting means and a data receiving means. The data receiving means includes a memory controller for controlling storage of successively received ATM cells in corresponding cell buffers, and a memory controlled by it. The memory includes a linked cell buffer, a free cell buffer identifier queue, a receiving state table and a receiving completion state queue. Accordingly, a separate device (e.g., ASIC chip) can be used to transmit and receive ATM cells instead of the conventional calculation processing module so that the transmission efficiency of the ATM cell can be increased and the load of the calculation processing device can be reduced.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a communication device, and more particularly, to an ATM-based data transmitting and receiving device.

2. Background of the Related Art

Generally, asynchronous transmission mode (ATM) is a packet-oriented transmission mode using an asynchronous time division multiplexing technology. A packet is called a cell and has a fixed size.

An example of an ATM cell is shown inFIG. 1. The ATM cell consists of 53 bytes. The header is 5 bytes and the remaining 48 bytes are a payload in which data to be transmitted is loaded. The header includes two quantities, a Virtual Path Identifier (VPI) and a Virtual Channel Identifier (VCI) that are used to recognize an ATM network connection in which cells are transmitted. The VPI represents a main path set between two exchange nodes and the VCI represents one specific connection portion on each main path.

Referring to a protocol standard model, ATM comprises a physical layer, ATM layer, ATM adaptation layer (AAL) and a higher layer. The ATM layer supports various kinds of services, which have different traffic characteristics and different system requirements. To accomplish this, applications of other classes are adapted. It is the AAL that performs this function.

The AAL is classified into four classes according to types of service. In other words, the classes are AAL1, AAL2, AAL3, AAL4 and AAL5. Among them, AAL3 and AAL4 are combined into AAL3/4. Referring to AAL3/4, this class is made for a service that needs variable speed for both of connection-oriented and non-connectional services. Originally, The AAL3/4 was divided into AAL3 and AAL4 but these two classes are combined into one AAL, i.e., AAL3/4.

AAL5 is a class that supports a connection-oriented service that has a variable transmission rate. The AAL5 is a simplified version of AAL3/4. In the AAL5, error correction and retransmission functions are omitted. Accordingly, the overhead portion of the bandwidth is reduced, process requirements are simplified and complexity of configuration is reduced.

The above-mentioned AAL is divided into a convergence sublayer (CS) and a segmentation and reassembly (SAR) sublayer. The CS is divided into common part CS (COCS) and service specific part CS (SSCS).

FIG. 2illustrates a related art ATM-based data transmitting and receiving device. Referring toFIG. 2, the related art data transmitting and receiving device includes a first calculation processing module10for dividing a message to generate and transmit ATM cells. An ATM switch module20is used for switching the ATM cells received from the first calculation processing module10to the corresponding path using the VPI/VCI. A second calculation processing module30is used for receiving the switched ATM cells and restoring a message. Each of the first and second calculation processing modules10and30can generate ATM cells from the message and restore the message from the ATM cells. Accordingly, the second calculation processing module30can also generate ATM cells from the message and transmit them to the ATM switch module20. Likewise, the first calculation processing module10can also restore the message from the ATM cells received from the ATM switch module20.

In this manner, each calculation processing module of the related art data transmitting and receiving device divides the message, generates ATM cells, and restores the message from the ATM cells. Accordingly, if these calculation processing modules are employed in a communication network, the calculation processing modules can be a bottleneck due to the limited processing capability and large processing load from receiving and processing messages from a large number of nodes.

SUMMARY OF THE INVENTION

Accordingly, an object of embodiments of the present invention is to reduce load on a processing module.

An object is to use separate means for transmitting and receiving ATM cells.

To achieve these objects and other advantages and in accordance with embodiments of the invention, as embodied and broadly described herein, an ATM-based data transmitting and receiving device includes a transmitting means including a transmission data storage unit for storing data received from a calculation processing module, a cell generator for dividing message stored in the transmission data storage unit into a predetermined amount of data, combining cell data made using VPI/VCI information attached to the message according to each of the data and generating at least one ATM cell, and a cell transmitter for transmitting at least one ATM cell generated at the cell generator to an ATM switch module; and a data receiving means including a cell receiver for receiving at least one ATM cell switched by the ATM switch module, a memory controller for controlling to store the at least one ATM cell received by the cell receiver to a corresponding cell buffer according to a cell buffer identifier, a memory for storing the at least one ATM cell according to control of the memory controller, a data restoring unit for successively withdrawing the at least one ATM cell using the cell buffer identifier and restoring the message, and a receiving data storage unit for storing the message restored by the data restoring unit.

The cell generator divides data using a read counter initialized according to message length information attached to the message. The memory includes: a linked cell buffer for storing one ATM cell and an identifier to a next linked cell buffer every cell buffer identifier; a free cell buffer identifier queue for storing at least one cell buffer identifier indicating an empty linked cell buffer; a receiving state table including information used in classifying and managing the ATM cell according to VPI/VCI; and a receiving completion state queue for copying some of information of the receiving state table updated when all the ATM cells to constitute one message are stored.

The memory controller ascertains whether or not to approve the reception of the at least one ATM cell using the receiving permission information of the receiving state table corresponding to VPI/VCI information attached to the at least one ATM cell, and stores the at least one ATM cell in the linked cell buffer using a cell buffer identifier withdrawn from a free cell buffer identifier queue. The data restoring unit withdraws a start cell buffer identifier from a receiving completion state queue, stores corresponding data stored in a cell buffer to which a start cell buffer identifier indicates in the receiving data storage unit, and decreases cell number information of a receiving completion state queue by one.

In another aspect of an embodiment of the present invention, an ATM-based data transmitting and receiving method includes the step of (a) whenever data are fetched one byte by one byte from a message received from a first calculation processing module, reducing a message length value included in the message one by one; (b) generating at least one ATM cell by repeatedly performing a process of combining a cell header made in 48-byte data using VPI/VCI information included in the message until the message length value gets to 0; (c) transmitting the at least one ATM cell to an ATM switch module to perform a switching; (d) receiving the at least one switched ATM cell successively and storing the at least one ATM cell in each cell buffer using a cell buffer identifier that was previously stored; (e) withdrawing the at least one ATM cell successively using the cell buffer identifier, restoring original message, and informing a second calculation module of the restoration.

The step (d) includes the steps of: (d-1) when a first ATM cell of the at least one ATM cell is received, ascertaining whether or not the reception of the first ATM cell is approved; (d-2) when the reception of the first ATM cell is approved, storing the first ATM cell in a cell buffer indicated by a cell buffer identifier withdrawn from a free cell buffer identifier queue, increasing a number of the cell by 1, and storing the number of the cell along with the one cell buffer identifier in a receiving state table; (d-3) when a PT information included in the first ATM cell is 0, storing a second ATM cell following the first ATM cell in a cell buffer indicated by another cell buffer identifier withdrawn from the free cell buffer identifier, increasing the number of the cell by 1, and storing the number of the cell and another cell buffer identifier in the receiving state table; and (d-4) repeatedly performing the step (d-3) until the ATM cell whose PT information is set to 1 exists.

The step (e) includes the steps of (e-1) when all the at least one ATM cell is stored, withdrawing a first ATM cell using the one cell buffer identifier, storing the withdrawn first ATM cell in a receiving data storage unit, reducing a number of the cell by 1, and returning the one cell buffer identifier to the free cell buffer identifier queue; (e-2) withdrawing a second cell using another cell buffer identifier stored in a next linked cell buffer identifier area which is provided to a cell buffer in which the first ATM cell is stored, storing the withdrawn second cell in the receiving data storage unit, reducing a number of the cell by 1, and returning the other cell buffer identifier to the free cell buffer identifier queue; and (e-3) repeatedly performing the step (e-2) until the number of the cell gets to 0.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 3illustrates an ATM-based data transmitting and receiving device according to an embodiment of the present invention.FIG. 4illustrates a configuration of the data transmitting unit shown inFIG. 3.FIG. 5illustrates a configuration of the data receiving unit shown inFIG. 3.FIG. 6illustrates a format of data stored in the transmitter data buffer shown inFIG. 3.

Referring toFIG. 3, the data transmitting and receiving device of an embodiment of the present invention includes calculation processing modules100and150, transmitting and receiving modules (or data communication modules)200and250, and an ATM switch module300for switching ATM cells received from the transmitting and receiving modules200and250using the VPI/VCI. The transmitting and receiving modules200and250restore the message from the ATM cell, which is provided from the ATM switch module300, and transmits the restored message to the calculation processing modules100and150, respectively.

The calculation processing modules100and150transmit/receive messages with predetermined size (for example, 476 bytes) to/from the transmitting and receiving modules200and250through a global bus. The global bus functions as a pathway to simultaneously transfer data (e.g., voice and CPU messages processed by the system), The global bus can be connected to a STM-1 SONET framer in a manner of utopia interface level1.

The transmitting and receiving modules200and250include data transmitting unit210and260, respectively, for dividing the message received from the calculation processing modules100and150by a predetermined size. Data units210and260also generate the ATM cell and transmit the ATM cell to the ATM switch module300and data receiving units220and270, respectively. Data receiving units220and270restore the original message from the ATM cell received from the ATM switch module300and transmit the restored message to the calculation processing modules100and150, respectively.

As illustrated inFIG. 4, each of the data transmitting units210and260includes a transmitter data buffer211, a cell generator212and a cell transmitter213. The transmitter data buffer211stores the message received from a calculation processing module100and150, respectively. The format of the message stored in the transmitter data buffer211includes VPI/VCI area, message length area and user data area as shown inFIG. 6.

The VPI/VCI is information representing the source and destination of the message. The message length information is a sum of the number of bytes corresponding to the size of the message length area and the number of bytes corresponding to size of the user data area. Accordingly, the VPI/VCI information, the message length information and the user data information of the message received from the calculation processing module100and150are stored in the VPI/VCI information area, the message length area and the user data area, respectively.

The cell generator212initializes a read counter value using the message length information stored in the message length area, divides the data stored in the user data area into 48-byte units, combines the cell header that is made using the VPI/VCI information, and generates at least one ATM cell. The cell generator212decreases the read counter value by 1, whenever one byte of data is read from the user data area, which is read one byte at a time. This operation is repeated until the read counter value goes to 0. Accordingly, The cell generator212divides the data read from the user data area into 48-byte units to generate cells, combines a cell header (CH) with the 48-byte units, generates ATM cells, and provides the ATM cells to the cell transmitter213.

FIG. 7illustrates a process of generating ATM cell from the message in the ATM-based data transmitting and receiving device according to an embodiment of the present invention. As shown inFIG. 7, the message format stored in the transmitter data buffer211includes a message header MH and a user data area. As described above, the message header includes VPI/VCI and a message length area as described above. The maximum message stored in the user data area is 476-bytes.

The cell generator212initializes a read counter value based on the message format stored in the transmitter data buffer using the message length information. The cell generator212fetches the data stored in the user data area one byte at a time. The cell generator212decreases the read counter value by 1, whenever one byte of data is fetched. The cell generator212generates cell data using VPI/VCI. The fetched data are divided into 48-byte units and 48-byte units are combined with the cell header CH, which is generated in advance, to form one ATM cell.

Additional ATM cells are generated continually until the read counter value goes to 0. Payload Type (PT) information is set in the cell header CH to determine payload type whenever ATM cells are generated. The PT information can be set to ‘0’ or ‘1’. For example, when the PT information is set to ‘0’, it represents that more cells for a message exist. However, when the PT information is set to ‘1’, it represents that the current cell is the last cell.

The PT information is a parameter that is variable whenever the ATM cell is generated. Accordingly, since the cell generator212can repeatedly use the cell header information as well as the PT information until the last cell of the message is transmitted, the cell header information can be stored in a cell header register. Likewise, the PT information can be combined with the cell header information stored in the cell header register to generate one ATM cell whenever the 48-byte cell is combined with the cell header CH.

If the read counter value becomes 0 before the data is divided into a 48-byte unit, the cell generator212adds some PAD data to form the 48-byte data unit and generates one ATM cell. For example, when PAD data is added the PT information is set to ‘1’ indicating the current cell is the last cell of the message, as illustrated inFIG. 7.

The calculation processing modules100and150and the cell generator212each have authority to access the transmitter data buffer simultaneously. For example, the priority to access the transmitter data buffer211can be determined using a flag. In other words, if the flag is set to 0, the calculation processing modules100and150can access the transmitter data buffer211. However, if the flag is set to 1, the cell generator212can access the transmitter data buffer211. Accordingly, if the message is first stored in the transmitter data buffer, the flag will be set to 0. The calculation processing modules100and150can check the flag to determine whether the flag is set to 0. If the flag is set to 0, the calculation processing module stores the message in the transmitter data buffer and the flag is set to 1.

Then, the cell generator212determines whether the message is stored in the transmitting buffer. In other words, if the flag is set to 1, the cell generator212recognizes that the message is stored in the transmitter data buffer, and generates the ATM cells successively using the stored message. When the last message cell is processed, the cell generator212sets the flag to 0 so that the calculation processing module stores the message in the transmitter data buffer.

Referring toFIG. 4, the cell transmitter213uses a physical layer for successively transmitting a 53-byte ATM cell generated by the cell generator to an ATM switch module300. The cell transmitter213can comprise an equalizer, a synchronizing circuit and a line decoding circuit.

Referring toFIG. 3, the ATM switch module300allocates an output port to the ATM cells received from the transmitting and receiving modules200and250according to VPI/VCI information, and switches each of the cells to desired destination at ATM level.

Each of the data receivers220and270comprises a cell receiver221, a memory controller222, a memory223, a data restoring unit224and a receiver data buffer225as shown inFIG. 5. The cell receiver221receives ATM cells switched by the ATM switch module300and provides them to the memory controller222. The cell receiver221is a physical layer as is the cell transmitter213ofFIG. 4. The memory controller222controls the memory according to the VPI/VCI information that exists in the cell header of the received ATM cell. In other words, the memory controller222divides the ATM cell received from the ATM switch module300into the cell header and data, fetches a cell buffer identifier using VPI/VCI information that exists in the cell header, and stores the 48-byte data in the linked cell buffer indicated by the cell buffer identifier. Then, the memory controller222accesses a receiving state table and updates the contents of the receiving state table. If the received current cell is the last cell of the message, the updated contents are copied to a receiving completion state queue.

To accomplish the above-described operation, the memory223can include a linked cell buffer410, a free cell buffer identifier queue420, a receiving state table430and a receiving completion state queue440as illustrated inFIG. 8. The memory shown inFIG. 8will be described in detail with reference toFIGS. 9 to 12.

The linked cell buffer410is an area in which data of the received ATM cell are stored. The linked cell buffer can have 2048 blocks, each of which includes 64 bytes for storing a cell. Accordingly, in this configuration, a maximum of 2048 cells containing data can be stored. Here, the 64-byte block includes a payload area in which data are stored, and a next linked cell buffer identifier. The next linked buffer identifier indicates the cell buffer in which the next data connected to the current data is being stored. The next linked cell buffer identifier is information that connects ATM cells constituting one message, and corresponds to a cell buffer identifier indicating the block in which the data following the data stored in the block indicated by one cell buffer identifier are stored.

For example, if the cell buffer identifier of the block of the cell buffer in which the current data are stored is ‘13’ and the next linked cell buffer identifier is ‘15’, the next received cell data are stored in the block of the cell buffer indicated by the next linked cell buffer identifier ‘15’. A cell buffer identifier indicates each of the blocks. The cell buffer identifier is stored in the free cell buffer identifier queue420. The memory controller222withdraws the cell buffer identifier and the data are stored in the linked cell buffer indicated by the corresponding cell buffer identifier.

The free cell buffer identifier queue420stores cell buffer identifiers in each block of an empty linked cell buffer as shown inFIG. 10. The free cell buffer identifier queue420can store as many cell buffer identifiers as the number of the blocks of the linked cell buffer. In other words, 2048 cell buffer identifiers can be stored in the free cell buffer identifier queue.

The memory controller222withdraws the cell buffer identifiers stored in the free cell buffer identifier queue one at a time and stores data of each cell in the linked cell buffer410whenever the ATM cells are received. If the data restoring unit224restores one message from data stored in the linked cell buffer, the corresponding cell buffer identifiers is returned to the free cell buffer identifier queue.

In this case, when the cell buffer identifier stored in the free cell buffer identifier queue is withdrawn, a read pointer can be used. When the cell buffer identifier stored in the free cell buffer identifier queue is returned, a write pointer can be used, for example, as illustrated inFIG. 10.

The receiving state table430stores information for classifying and managing the cells to be transmitted from nodes according to the transmitting nodes as shown inFIG. 11. This information includes receiving approval information (APV), payload type (PT) information, cell number information (Cell_Cnt), and a cell buffer identifier information (Start CB ID) for a linked cell buffer in which a first cell is stored. Additionally, the information includes cell buffer identifier information (Last CB ID) for a linked cell buffer in which a last cell is stored. The receiving approval information tells whether the current cell can be approved to be received. The PT information tells whether the current cell follows a previous cell or is the last cell.

The cell number information Cell_Cnt tells the order number of the current cell among the cells received for one message. The start cell buffer identifier Start CB ID is the cell buffer identifier indicating the linked cell buffer in which the first cell is stored for one message. The last cell buffer identifier Last CB ID is the cell buffer identifier indicating the linked cell buffer in which the last cell is stored for one message. The start cell buffer identifier Start CB ID and the last cell buffer identifier Last CB ID are the cell buffer identifiers fetched from the free cell buffer identifier queue when the first cell and the last cell are received.

When one message is completely received, the receiving completion state queue440copies and stores some of the information of the receiving state table430in which information is updated and stored as shown inFIG. 12. In other words, the receiving completion state queue440includes the cell number information (Cell_Cnt), as illustrated inFIG. 12of items of the receiving state table and the start cell buffer identifier information (Start CB ID) as illustrated inFIG. 12. The receiving completion state queue440is used when the message is restored by the data restoring unit324.

Accordingly, when one ATM cell is received by the cell receiver221, the memory controller222divides the 53-byte ATM cell into a 5-byte cell header and 48-byte data, checks the cell header, refers to VPI/VCI information, and accesses items of the receiving state table430corresponding to VPI/VCI information in memory223. If there is not an item corresponding to the VPI/VCI information in the receiving state table430, the corresponding data are discarded.

The memory controller222determines whether the corresponding data can be received using the receiving approval information APV of items corresponding to the VPI/VCI information. For example, if APV is set to ‘0’, the corresponding data are not approved to be received. If APV is set to ‘1’, the corresponding data are approved to be received.

When APV is set to ‘1’ and the corresponding data are approved to be received, the memory controller222fetches one empty cell buffer identifier from the free cell buffer identifier queue420of the memory223, and stores the corresponding data in the cell buffer indicated by the corresponding cell buffer identifier in the linked cell buffer410. Then, the read pointer of the free cell buffer identifier queue420increases by 1.

The memory controller222determines whether the current received data follows the previous received data according to the PT information of the cell header of the received ATM cell. In other words, if the PT information is ‘0’, the current received data is a continuing part of one message. On the contrary, if the PT information is ‘1’, the current received data is the last data of the message.

As a result of this determination, if the PT information is ‘0’, memory controller222records the corresponding cell buffer identifier and PT information in the corresponding item of the receiving state table430. The cell number Cell_Cnt of the receiving state table430is increased by 1 and stored.

The memory controller222divides the next received ATM cell into a cell header and data as described above, fetches a second cell buffer identifier from the free cell buffer identifier queue420, and stores data in the linked cell buffer410indicated by the corresponding cell buffer identifier. Then, the second cell buffer identifier is recorded on the next linked cell buffer identifier area provided to the cell buffer in which the previous data is stored. The memory controller222updates each item of the receiving state table430using the second cell buffer identifier and the PT information of the cell header. The second cell identifier is stored in the last cell buffer identifier area of the receiving state table430.

As described above, when ATM cells are received successively, each of the cells is stored in the corresponding cell buffers and PT information, cell number information and last cell buffer identifier information are updated in the receiving state table. This process continues until the corresponding PT information is 1.

If the corresponding cell is the last cell of a message, the cell number information and start cell buffer identifier information of the information updated in the receiving state table queue430are copied to items indicated by the write pointer of the receiving completion state queue440. Accordingly, the receiving completion state queue440increases by 1. As described above, when the PT information is set to 1 and the last cell of one message is stored in the linked cell buffer410, the write pointer of the receiving completion state queue440also increases by 1.

The data restoring unit224checks the state of the receiving completion state queue440. In other words, the data restoring unit224compares a read pointer of the receiving completion state queue440with a write pointer of the receiving completion state queue440and determines whether the read pointer matches the write pointer. If the read pointer matches the write pointer, the receiving completion state queue440is empty. If the read pointer does not match the write pointer, the receiving completion state queue440is not empty. Thus, the cell number information and the start cell buffer identifier for one message that is completely received are recorded.

If the receiving completion state queue440is not empty, the data restoring unit224fetches a start cell buffer identifier from the receiving completion state queue440, and stores the data stored in the linked cell buffer410indicated by the start cell buffer identifier in the receiver data buffer225. The data restoring unit224returns the start cell buffer identifier to the free cell buffer identifier queue420and decrease the cell number information of the receiving completion state queue440by 1. When the start cell buffer identifier is stored in the free cell buffer identifier queue420, the corresponding write pointer increases by 1.

The data restoring unit224determines whether the cell number information is 0. If the cell number information is not 0, the next linked cell buffer identifier is fetched from the linked cell buffer indicated by the start cell buffer identifier. The data restoring unit224fetches the corresponding data from the linked cell buffer indicated by the next linked cell buffer identifier, and stores the corresponding data in the receiver data buffer225.

The data restoring unit224returns the next linked cell buffer identifier to the free cell buffer identifier queue420, and decreases the cell number information by 1. Also, the write pointer of the free cell buffer identifier queue420increases by 1. As described above, the process to withdraw the corresponding data from the linked cell buffer410and store the corresponding data in the receiver data buffer225is repeated until the cell number information goes to 0.

If the cell number information is 0, all the data included in one message is withdrawn from the linked cell buffer410. Thus, the message is stored in the receiver data buffer225as illustrated inFIG. 13. Thus, the data restoring unit224generates an interrupt or sets the register representing whether a message exists to 1 in order to inform the calculation processing module100and150that a new message is stored in the receiver data buffer.

The calculation processing modules100and150recognize that new data is stored in the receiver data buffer225using the interrupt signal provided from the data restoring unit224or the register set to ‘1’. Then, the calculation processor modules100and150fetch the message length information from the receiver data buffer225, which is illustrated inFIG. 13. The calculation Process modules100and150decrease the byte number corresponding to the size of the message length area. In other words, the decreased byte number corresponding to the size of the message length area in the message length information is the remaining byte size of the message.

Accordingly, the calculation processing modules100and150read out data corresponding to the number of bytes of the message (e.g., message size). Then, the calculation processing modules100and150send a response signal for the interrupt to the data restoring unit224or set the register to ‘0’. The calculation processing modules100and150and the data restoring unit224can determine whether they have the authority to access to the receiver data buffer using a flag.

As described above, the ATM-based data transmitting and receiving device and method of embodiments the present invention reduce load on a calculation processing module by using separate means for transmitting and receiving ATM cells. In contrast, the related art has a calculation processing module that divides a message, generates the cell and restores one message using received cells. To reduce the load of the calculation processing module, a data transmitting and receiving device including additional devices (e.g. an ASIC) can be provided between the calculation processing modules100and150, in embodiments of the present invention. Accordingly, the load of the calculation processing device can be reduced so that the transmission efficiency of the ATM cell is improved.

For example, the invention has been described in connection with a number of exemplary embodiments. To facilitate an understanding of the invention, many aspects previously described in terms of sequences of actions to be performed can be performed by specialized circuits (e.g., ASIC, discrete logic gates interconnected to perform a specialized function, and the like), by program instructions being executed by one or more processors, or by a combination of both. Thus, the various aspects of the invention may be embodied in many different forms, and all such forms are contemplated to be within the scope of the invention.

Additionally, those skilled in the art will appreciate that although the calculation processing modules and transmitting and receiving modules (or data communication modules) are illustrated as separate block diagrams, these modules can be integrated into one physical unit. For example, a transmitting and receiving module can be added as a daughter board that shares some resources with the calculation processing module or integrated directly into the calculation processing module. Accordingly, the foregoing description should not be construed to limit the invention. Therefore, the features of the appended claims and their equivalents define the scope of the invention.