DEVICE FOR THE CONVERSION OF DATA BLOCKS, FRAME STRUCTURED, INTO ATM CELLS AND VICE VERSA

Abstract: The invention concerns a device for the conversion of data blocks or information packets frame structured into ATM cells and vice versa. The device is suitable for the integration in the VLSI technology. The device includes: frame handler transmission means (TXFH) able to receive framed data and to cause their transfer into a buffer unit (AAL*_BUFFER); protocol handler transmission means (TXPH) able to withdraw the data contained in said buffer unit (AAL*_BUFFER) and to cause its segmentation as well as to carry out predetermined protocol operations; protocol handler reception means (RXPH) able to receive segment type data and to cause their transfer into said buffer unit (AAL*_BUFFER); frame handler reception means (RXFH) able to withdraw the data contained in said buffer unit and to send framed data to the upper frame layers.

Description: DEVICE FOR THE CONVERSION OF DATA BLOCKS, FRAME STRUCTURED, INTO ATM CELLS AND VICE-VERSA Technical Field The present invention relates to a Broadband Integrated Service Digital Network or B-ISDN of the ATM type (Asynchronous Transfer Mode) and finds its application in the access parts of the networks (terminals, data concentrators, adaptors, Interworking Units) , as well as in switching nodes (servers, signal processors), and in particular it finds application in data transfer through said broadband networks. Figure 1 shows schematically a switching network ATM- S to which Customer Premises Networks CPNl, ...,CPNk and a connectionless server CS are linked. The data generated by any subscriber connected to the B-ISDN network (for example word processors or spreadsheets) is structured in frames or packets of a length varying from a few bytes to dozens of thousands of bytes. In order to be able to transmit such packets on ATM networks it is necessary to adapt the packet format to the format of the ATM cell consisting in 48 information bytes or payloads and in 5 headers bytes for a total of 53 bytes. The packets are then divided in segments to be included in the ATM cell payloads. In order to be able to carry out the typical verifications of the transmission networks (errors, sequence, etc.) some of the 48 available bytes are occupied by additional information while the remaining bytes will be occupied by message segments. Obviously the subscriber receiving the cells must perform the dual operation (reassembling) in order to be able to get the message again from the ATM payload. The conversion of the above mentioned frames in ATM cells to be forwarded in the line is carried out through a regular succession or stack of protocols schematically illustrated in figure 2 where the rectangles represent schematically the complex of the operations carried out on the data by the different protocol layers. The information transmission involves the execution of the protocols of different hierarchical layers from top to bottom, and the reception from bottom to top. The invention regards in particular the so called adaptation layer AAL (ATM Adaptation Layer) of the 3/4 class, that is the one foreseen for data transmission services for which transmitters and receivers do not need strict time restraints (for example constant transmission delay or inferior to a value limit) . On the other hand in the case of services using the broadband network and requiring said restraints (such as video and telephony) AALs of the class 1 and 2 are used. In figure 1 the functions of the ATM and AAL layers are put into evidence together with their locations in the different CPN blocks by countermarking by u and d the units connected on the up-stream and down-stream side, respectively. Moreover for completeness reasons it is necessary to point out that the Exchange Termination ET linked between the server CS and the switching network ATM- SW includes Cell Header Processors CHP and units User Parameter Control UPC suitable for the control of the traffic parameters linked to the different connections. The server CS includes on the other hand said ATM and AAL units as well as the protocols associated to the service (here supposed to be of the connectionless type) indicated in the figure by means of the SER block. As shown in the alleged figure 3 the protocol layer AAL of the class 3/4 is subdivided in two sublayers, and more precisely: the Convergence Sublayer (CS) and the Segmentation And Reassembly (SAR) . The CS sublayer is subdivided in SSCS (Specific Service Convergence Sublayer) and CPCS (Common Part Convergence Sublayer). Hereafter the operations carried out by the protocol sublayers making up the AAL layer in the transmission phase will be briefly described. The operations carried out during the reception phase are of the dual type and are not shown in details. The sublayer SSCS depends on the service and carries out different operations according to the structure it communicates with; the CPCS receives information blocks of a length within 1 byte to 64 kbytes and adds control informations to the header and the trailer of the received information block (SSCS-PDU). The structure set up in this way (CPCS-PDU) is then segmented in portions of 44 bytes by the SAR sublayer adding moreover two bytes to the header and two bytes to the trailer as control information. This structure of 48 bytes (SAR-PDU) will then pass on to the ATM layer including it as a payload in the ATM cell. Background of the Invention According to a known solution the implementation of these operations is performed by means of a programmed computer, but this solution involves drastic limitations to the performance of the protocol itself in terms of speed and the multiplexing capacity of several subscribers. In fact a software implementation would be able to serve only applications at a low bit rate, allowing the multiplexing of a very small number of subscribers since the sum of the bit rate of the different connections must anyhow be less than the value limit supported by the implementation itself. Objects of the Invention The object of this invention is to overcome the above described inconveniences and limitations by realizing the protocol functions AAL 3/4 Common Part (SAR + CPCS) by means of physical devices (hardware) ASIC (Application Specific Integrated Circuit) VLSI (Very Large Scale of Integration) , that is by means of devices guaranteeing a good cost/service relation, and which at the same time could be used indifferently in access points (Customer Premises Equipment) , multiplexers and servers present in the switching nodes (signal or service servers) in a so called connectionless environment as well as in connection oriented environments. Such devices make it possible to multiplex at the AAL layer several subscribers or several connections (in other words to share by several subscribers -connections- the protocol functions AAL 3/4 Common Part) up to a limit of 150 Mbit/s (sum of the bit rates of the different connections) . Summary of the Invention The invention consists of a device for the conversion of data blocks or information packets, frame structured, into ATM cells and vice versa, in which said frames are coupled with a set of parameters set up by terminal identifiers, service and connection identifiers, and the ATM cells with terminal and service identification parameters; said device being characterized in that it includes: a first bidirectional connection bus towards the upper layer from which it receives, or rather towards which it forwards, frame shaped data; frame handler transmission means suitable to receive, through said first bus, transmission requests of an information frame with variable length, and also suitable to define the transfer of data relating to this frame in a buffer unit after having organized them in logical queues, each one of which being identified by a predetermined identifier; protocol handler transmission means suitable to receive, from said frame handler transmission means, the identifier of the logical queues for which in said buffer unit a predetermined minimum number of bytes is available, and being also suitable to withdraw data belonging to said logical queues, to determine its segmentation in fixed length units and to carry out predetermined protocol operations; protocol handler reception means suitable to receive from the lower layers ATM cell payloads, and suitable also to define the transfer into said buffer unit after having organized them in logical queues, each of which being identified by a predetermined identifier; - frame handler reception means suitable to receive from said protocol handler reception means the identifier of the logical queues for which in said buffer unit all bytes relating to a message are available, and also suitable to withdraw said logical queues and to define their forwarding to the upper layers. Further advantageous characteristics are subject of the relating claims. Brief Description of the Drawings The structural and functional characteristics and the advantages in terms of performance of the device according to the present invention turn out to be better understandable from the illustrative and not limiting description given hereafter, together with the alleged figures, wherein: figure 1, already described, shows schematically an ATM switching node; figure 2, already described, shows the protocol reference model; figure 3, already described, shows the subdivision of the AAL protocol layer of the class 3/4 (the block countermarked by AAL* indicates the Common Part of an AAL 3/4); figure 4 shows the structure of the device AAL* according to the invention, foreseen for the control of the protocol layer AAL* (see figure 3) ; figures 5 to 8 show in a more detailed way some parts of the device of figure 4; and figure 9 shows in a more detailed way the structure of the buffer management MMU. Detailed Description of the Preferred Embodiment In the following description it is supposed that the protocol layer SSCS (not being part of the present invention) is realized by software, and that there will be a different SSCS for each type of service: that means that it includes a multiplicity of SSCSs insisting above the CPCS. The different SSCSs can be realized on several separate processors, and therefore on the AAL* device several processors may insist. The device according to the invention is realized through an integrated circuit, and in the scheme of figure 4 outside the panel countermarked by AAL* there are parts reported (typical buffer blocks which could not be advantageously integrated in an integrated circuit ASIC) , which even belonging functionally to the AAL* block, are physically set up by separate elements. Referring to the block scheme in figure 4 the functional units set before the control of the protocol sublayers setting up the AAL 3/4 Common Part are marked by AAL*. Said device AAL* according to the invention includes a bus structure BUS1 - preferentially set up by a VME bus - for the connection with the superior layers (SSCS). This shared structure must allow the data transfer in the two directions. The interface of the device AAL* towards the bus is - according to a preferred embodiment of the invention - consistent with the microprocessor interface Motorola of the 68000 family. The connection with the bus (VME) is realized through arbitration devices of the commercial type. The bus BUS1 is common for both data stream directions and works at double speed with respect to that of the ATM link (that is 310 Mbit/s). It is shared in reception and in transmission through a management (not illustrated) privileging the procedures on the reception side. To the bus BUS1 a frame handler transmission means TXFH (TX frame handler) are connected, which in its turn are connected to a protocol handler transmission means TXPH (TX_AAL_Protocol Handler) and to a couple of bus hereafter called I_BUS (Internal Bus) and AAL_BUS (AAL Data Bus). To these bus a memory management unit MMU is connected, which, in its turn, is connected through a data bus DATA and an address bus ADDR to a buffer AAL*_BUFFER. In the reception part the presence of protocol handler reception means RXPH (RX_AAL_Protocol Handler) are foreseen, which, in its turn, are connected to said pair of bus I_BUS and AAL_BUS and to frame handler reception means RXFH (RX_Frame Handler). Moreover figure 4 illustrates a list FEL (Free_Entry_List) lodging the data relating to the available logical queue identifiers ENTRY and the TMO block of the time outs T_0 defined by the protocol AAL. A TXET block (TX_ENTRY_TABLE) is connected to the TXPH block, the first being preferentially implemented by means of an associative buffer, and it is addressed by the indicators TERM (of the terminal type) SSCS (service type) and CONN (connection type) arriving from the upper layers (SSCS), and it supplies the TXPH with the logical queue identifier ENTRY and the MID parameter (negotiated end-to- end during the call-setup phase) , the data supplied by the TXFH unit refers to. To the TXPH block an RXET table (RX_ENTRY_TABLE) is analogically connected - also this being preferably implemented through an associative buffer - which is addressed by the indicators TERM (terminal type) SSCS (identifiers of the type of service) and by the MID parameter extracted from the SAR segments, and it supplies the logical queue identifier ENTRY and the connection identifier CONN which the segments arriving at the RXPH unit refer to. The detailed functioning of the above mentioned units will become clearer hereafter referring to the description of the figures 5 to 9. Figure 5 illustrates in details the structure of the TXFH handler including two main blocks: SET_SEND and READ_SEND. The SET_SEND block accepts (or rejects) the primitives INVOKE (TX_SSCS_IO) arriving from the SSCS; if a call is accepted all relating tables are updated and a new ENTRY is extracted from the FEL by means of the connection TX_N_ENTRY (TX_NEW_ENTRY) . The READ_SEND block reads the data supplied by the SSCSs and stores them in the memory AAL*_BUFFER. In other words the SET_SEND block receives from the hierarchical higher layers the transmission requests of an information frame (signal TX_SSCS_IO), carries out controls relating to the availability of free buffer space, and if the result of this verification is positive it accepts the request in question, and the data is transferred to the buffer AAL*_BUFFER by means of the unit MMU. The memory AAL*_BUFFER is a shared buffer organized in logical queues, each one of which being identified by the above mentioned ENTRY value (logical queues identifier). In the so memorized data protocol operations must be carried out by the protocol handler TXPH illustrated in details in figure 6, such as for example the addition of control fields, the segmentation of data with variable length in units of fixed length, etc. Once these above mentioned protocol operations are carried out the unit TXPH provides for the forwarding of the manipulated data as specified at the lower layers. The TXPH unit TXPH includes for this purpose two main blocks: KILL_SEND and R_SEND. The KILL_SEND block receives from the READ_SEND unit in figure 5 a transmission request TX_R (TX_Request) after the storage operation described above. In other words after the TXFH unit has defined the data storage in the buffer AAL*_BUFFER it provides to inform the TXPH unit that there is a message available in the memory on which all protocol operations have to be carried out in view of the forwarding to the lower layers. The transmission requests TX_Request are organized in a queue by means of a SEL unit (SEND_ENTRY_LIST) , and the KILL_SEND block analyzes these requests in sequences, and if there is data identified by each ENTRY (logical queue identifier) in sufficient quantity to set up an ATM cell, it forwards to the R_SEND block the ENTRYs R_S_E (WR_Send_Entry) satisfying these conditions. The verification of the quantity of data available in the buffer with reference to each ENTRY is carried out by the bus I_BUS and AAL_BUS with the aid of the MMU unit. If there is not enough data associated to a generic ENTRY to set up an ATM cell, the KILL_SEND unit provides for the reinsertion of such ENTRY into the Send_Entry_List SEL. In other words the KILL_SEND block reads the Send_Entry_List in order to extract the ENTRY on which R_SEND will be operating: it selects the first ENTRY of the list and verifies if there is enough data in the AAL*_BUFFER to set up a SAR segment. In case there is enough data the ENTRY is handed as a parameter to the processor R_SEND (Wr_Send_Entry) , otherwise two conditions can occur: or the message has been completely transmitted, or there is data missing: in the first case the Entry will be freed for later use TX_E_ENTRY (TX_Exhausted_Entry) reinserting it into the FEL (Free_Entry_List) , in the second case the ENTRY is recycled within the Send_Entry_List SEL. The WR_SEND block realizes in transmission the protocol sublayers CPCS and SAR; moreover it can generate cells ABORT_EOM (for the translation of the primitive TX ABORT arriving from an SSCS or after an excessive waiting period in the construction of the streaming mode message) . In other words the R_SEND unit having received from the KILL_SEND unit the ENTRYs for which there is a sufficient quantity of data available in the buffer to set up a cell, it provides for adding all control fields, segmenting the data in a suitable length, and transferring the cell to the lower layer (TX_SAR_Segment) together with the sending of control signals TX_SAR_IO to settle the exchange of data between the WR_SEND unit and the unit below. Figure 7 shows in a more detailed way the structure of the protocol handler RXPH including two main blocks: SET_RECEIVE and RD_RECEIVE. The SET_RECEIVE block receives the SAR segments through the connection RX_SAR_S (RX_SAR_Segment) , extracts the control signals RX_SAR_I0 and identifies the beginning of the message (BOM: Begin of Message) or the indication of an aborted message (ABORT_EOM) . In the case of BOM segments it reads the BA_SIZE field (specifying the entire length of the message), verifies the existence of sufficient space in the AAL*_BUFFER and the existence of at least one available ENTRY; if the result of the control is positive it acquires the RX_New_Entry and sets up the internal list in a suitable way. In the case of ABORT_EOM segments it sends an ABORT message to the receiving SSCS by means of the KILL_RECEIVE processor of figure 8. The RD_RECEIVE block realizes in reception the protocol sublayers SAR and CPCS reconstructing the message and memorizing it in the AAL*_BUFFER; moreover it takes care of the error handling. In other words the RXPH block receives from the lower ATM layer the payload of the ATM cell through the RX_SAR_S input as well as the control signals through the RX_SAR_IO input in order to settle the information exchange. The above mentioned inputs arrive at a SET_RECEIVE unit providing for the assignment to the data received at the input of a free ENTRY, supplied by the above mentioned FEL unit (Free_Entry_List) on the basis of the parameters SSCS (service class identifier), TERM (User terminal identifier) and MID (Multiplexing_Identification) . The ATM layer below defines in other words the data supplied to AAL* as belonging to a certain terminal or to a certain class of applications (e.g. file transfer). The SET_RECEIVE unit associates to the above mentioned parameters SSCS, TERM and MID an ENTRY value at the moment of reception of the first cell and maintains this association for all the cells belonging to the same message. Said cells are transferred into the AAL*_BUFFER by means of the MMU unit and the above mentioned bus AAL_BUS and I_BUS. When the SET_RECEIVE unit points out the accomplishment of the reception of all cells relating to a message it emits on the RX_R output (RX_Request) the ENTRY value identifying this message. To the SET_Receive unit an RD_RECEIVE unit is associated which provides for a verification if any error in the message reconstruction has been identified (e.g. the loss of a cell), and if this control points out whatever anomaly it provides for the emission of an abort message on the RX_A output (RX_ABORT). Figure 8 illustrates in details the RXFH unit including a KILL_RECEIVE unit which - in a dual way what has been carried out by the KILL_SEND unit - provides for the analysis in sequence of the ENTRYs stored in a REL unit (Receive_Entry_List) and for the determination of their liberation (if all data relating to a message have been transmitted) or their recycling (if not all data relating to a message has been transmitted). Moreover the KILL_RECEIVE unit receives the RX_A message (RX_Abort) emitted by the RXPH unit of figure 7 and T_A ( imeout_Abort) , these last ones being transmitted by the TMO unit of figure 5 if the elaboration of some procedures exceeds the preset times. The KILL_RECEIVE unit emits at the WR_R_E output (WR_Receive_Entry) the identifier of the ENTRYs for which all data relating to a message has been received (and for which no abort problems sidewise and/or of Timeout_Abort have been revealed), and these ENTRYs reach a WR_RECEIVE unit providing for the forwarding of the message contained in the AAL*_BUFFER to the higher layers by means of the output (RX_SSCS_F) - identified by said ENTRYs - together with the input/ output signals RX_SSCS_IO. In other words the KILL_RECEIVE block reads the REL (Receive_Entry_List) to obtain the Entry on which the WR_RECEIVE will operate: it selects the first ENTRY and sends an INVOKE (RX_SSCS_IO) towards the destination SSCS; if the SSCS accepts to receive the message the ENTRY becomes the WR_R_E (Wr_Receive_Entry) , and it is handed over to the operational procedure WR_RECEIVE; if the SSCS is not available the ENTRY will be send back to the Receive_Entry_List. Moreover this block sends the ERROR and ABORT messages towards the SSCS deriving from the translation of an RX_ABORT indication or from the deadline of a timeout. The WR_RECEIVE block reads the messages from the AAL*_BUFFER and transmits them to the destination SSCS. Summarizing the above mentioned the subblocks having been rendered explicit in the different macroblocks can be put together in the following categories: 1) operational processes: RD_SEND, WR_SEND, RD_RECEIVE, WR_RECEIVE 2) Set up processes: SET_SEND, SET_RECEIVE 3) Output control processes: KILL_SEND, KILL_RECEIVE 4) Timeout procedures: TMO This classification has been carried out to decide the modality and the time of execution of each process. The processes of the operational type are activated at each cell time; this later is divided in four slots which are assigned to the processes when they want to have access to shared resources (e.g. AAL*_BUFFER) according to the following timing: two slots are assigned or to a RD_SEND or to a WR_RECEIVE (mutually exclusive), one slot to WR_SEND, one slot to RD_RECEIVE. As a consequence the ATM transfer speed being equal to 150 Mbit/s the maximum transfer speed of RD_SEND and WR_RECEIVE is 300 Mbit/s while the maximum transfer speed of WR_SEND and RD_RECEIVE is 150 Mbit/s. The processes of the "setup" type are only activated when the manipulation of a message is requested, and they must occupy the lowest possible number of clock times. The processes of the output control type handle the queues; they are activated once each all period and must occupy the lowest possible number of clock periods. Figure 9 shows in a more detailed way the structure of the memory management MMU (Memory Management Unit); this management unit is suitable to define all pointer values, at the page and inside the page, which are necessary to write/read in/from the AAL*_BUFFER. The organization of the memory presents a functional/ technological problem which is important for the realization of a hardware protocol layer AAL. First of all the dimension of the message queues identified by the Entrys depends essentially on the load offered to the AAL, that is to say on the type and on the number of applications insisting on the AAL itself. It becomes therefore necessary to satisfy the following restraints, and that means: - the buffer dimensions must be adjustable according to the subscriber's necessities; the maximum acceptable dimensions of the buffer must be sufficiently high so that they can also serve with a correct QoS (Quality of Service) very heavy subscriber use; - the use of the buffer must be shared in order to optimize the occupation of the memory. Moreover the fact that the frames have variable dimensions (between 1 and 64 Kbytes) imposes a memory management to prevent from fragmentation. The invention splits up the buffer into pages managed by means of a linked list of pointers; this method as regards the use of garbage collection mechanisms makes it possible to solve the memory fragmentation problem without being obliged to interrupt the normal flow of operations to start off reorganization cycles for the unoccupied space in the memory itself. The number of pages composing the memory is fixed at 1024 pages: the maximum dimension of the RAM is equal to 4 Mbytes; the device can be equipped with multiple memory banks of 128 Kbytes depending on the applications. A detailed description of the MMU is given hereafter beginning with an input/output signal analysis: INTERNAL_BUS: the processes having access to the AAL*_BUFFER through the MMU enter into this BUS the identifier of the logical queue (USED_ENTRY) . - PAGE_LEN: this register contains the dimension of an AAL*_BUFFER page. RAMREG: in this register the physical address of the AAL*_BUFFER is included: this address is composed of a more significant part (ADDR_LIST) and of a less significant part (ADDR_PAGE). ADDR_LIST contains the value of the page having been actually addressed and been generated by the block LIST_MANAGER LS_M (about which we will talk hereafter), ADDR_PAGE contains the offset within the page and is generated by the PAGE_MANAGER PG_M block (we will talk about later). READ: a signal indicating to read a data double-word from the AAL*_BUFFER using the address contained in the RAMREG. WRITE: a signal indicating to write a data double-word into the AAL*_BUFFER using the address contained in the RAMREG. Moreover the MMU provides for the presence of the following lists and registers: MPL (MESSAGE_POINTER_LIST): this table contains a linked list of pointers for all ENTRY values used in a particular moment and a linked list including all unused pages (e.g. if there are 4 connections open in transmission and 3 in reception the maximum number of ENTRYs will be 7) . The value contained in a memory location is the address of the following location belonging to the same queue. - FPC (FREE_POINTER_COUNTER) : this register stores the maximum number of empty pages actually available within the MESSAGE_POINTER_LIST (and so within the MESSAGE_RAM) . It is decreased by the LIST_MANAGER when an empty page is needed and increased when a data page is read completely. - LMT (LIST_MEMORY_TABLE) : this table addressed by the USED_ENTRY is subdivided in two fields: WR_HEAD: this table contains for each admissible ENTRY the address inside the MESSAGE_POINTER_LIST of the head of the linked list identified by the ENTRY itself. - RD_HEAD: this table contains for each admissible ENTRY the address inside the MESSAGE_POINTER_LIST of the queue of the linked list identified by the ENTRY itself. PMT (PAGE_MEMORY_TABLE) : this table addressed by the USED_ENTRY is subdivided in two fields: - WR_DATA: this field stores for each active ENTRY the number of double-words which have been entered into the AAL*_BUFFER; this field is used by the PAGE_MANAGER for the calculation of the ADDR_PAGE. RD_DATA: this field stores for each active ENTRY the number of double-words which have been read by the AAL*_BUFFER; this field is used by the PAGE_MANAGER for the calculation of the ADDR_PAGE. Moreover the MMU provides for the presence of the following functional blocks: - PG_M (PAGE_MANAGER): it calculates the low part of the address (ADDR_PAGE) on the base of the values contained in the PAGE_MEMORY_TABLE: in case of reading the RD_DATA field is used, in case of writing the field WR_DATA filtered on the basis of the informations included in the PAGE_LEN. During the writing the value of the PAGE_MEMORY_TABLE.WR_DATA is increased; if a page is filled up during a writing operation the signal FULL_PAGE is generated. During the reading the value of the PAGE_MEMORY_TABLE.RD_DATA is increased; if the current page gets empty during the reading operation the signal EMPTY_PAGE is generated. The block interfaces with all other structures through the following signals: PAGE_LEN: a bus by which the page dimension is read. - READ: writing of a double_word in the AAL*_BUFFER. WRITE: reading of a double_word by the AAL*_BUFFER. RD_DATA: a bus containing the new value of the PAGE_MEMORY_TABLE.RD_DATA calculated after a reading. - WR_DATA: a bus containing the new value of the PAGE_MEMORY_TABLE.WR_DATA calculated after a writing. WR_PMT: data writing on the PAGE_MEMORY_TABLE. RD_PMT: data reading by the PAGE_MEMORY__TABLE. - FULL_PAGE: signal indicating the LIST_MANAGER, that the current page is full, that it is necessary to add a page to the linked list stored in the MESSAGE_POINTER_LIST and identified by USED_ENTRY, and that it is necessary to modify the LIST_MEMORY_TABLE.WR_HEAD. NO_SWAP: signal indicating the LIST_MANAGER that the current page can be used for the following writing or reading. EMPTY_PAGE: signal indicating the LIST_MANAGER that the current page is empty, that it is necessary to eliminate a page from the linked list memorized in the MESSAGE_POINTER_LIST and identified by USED_ENTRY, and that it is necessary to modify the LIST_MEMORY_TABLE.RD_HEAD. ADDR_PAGE: bus containing the RAMREG.ADDR_PAGE, that is the value of the offset within the current page valid for the actual reading cycle (or writing cycle) of the AAL*_BUFFER. - LS_M (LIST_MANAGER) : calculates the upper part of the address (LIST_PAGE) on the base of the values contained in the LIST_MEMORY_TABLE: in the case of reading the field RD_HEAD is used, in the case of writing the field WR_HEAD is used. When the signal FULL_PAGE is received during the writing phase one pointer at a page belonging to the list of empty pages is extracted and then linked to the list identified by the USED_ENTRY as a head (all linked lists are memorized in the MESSAGE_POINTER_LIST) ; the LIST_MEMORY_TABLE.WR_HEAD is updated by the value of this new pointer and the FREE_POINTER_COUNTER is decreased. When the signal EMPTY_PAGE is received during the reading phase a pointer at a page belonging to the list identified by the USED_ENTRY is extracted and then linked to the list of the empty pages; the LIST_MEMORY_TABLE.RD__HEAD is updated and the FREE_POINTER_COUNTER is increased. The block interfaces with the other structures through the following signals: READ: writing of a double_word in the AAL*_BUFFER - WRITE: reading of a double_word by the AAL*_BUFFER FULL_PAGE: a signal indicating the LIST_MANAGER that the current page is full, that it is necessary to add a page to the linked list stored in the MESSAGE_POINTER_LIST and stored by the USED_ENTRY and that it is necessary to modify the LIST_MEMORY_TABLE.WR_HEAD. NO_SWAP: a signal indicating a LIST_MANAGER that the current page can be used for the following writing or reading. EMPTY_PAGE: a signal indicating the LIST_MANAGER that the current page is empty, that it is necessary to eliminate a page from the linked list memorized in the MESSAGE_POINTER_LIST and identified by the USED_ENTRY , and that it is necessary to modify the LIST_MEMORY_TABLE.RD_HEAD. RD_HEAD: bus containing the new LIST_MEMORY_TABLE.RD_HEAD calculated after a EMPTY_PAGE signal WR_HEAD: bus containing the new LIST_MEMORY_TABLE.WR_HEAD value calculated after a FULL_PAGE signal - WR_LMT: data writing on the LIST_MEMORY_TABLE RD_LMT: data reading by the LIST_MEMORY_TABLE ADDR_LIST: bus containing the RAMREG.ADDR_LIST, that is the value of the page valid for the actual reading (or writing) cycle of the AAL*_BUFFER - WR_RAMREG: data writing on the RAMREG MPL_ADDR: bus MESSAGE_POINTER_LIST addresses MPL_DATA: MESSAGE_POINTER_LIST data bus RD_MPL: data reading by the MESSAGE_POINTER_LIST WR_MPL: data writing on the MESSAGE_POINTER_LIST - FPC_DATA: FREE_POINTER_COUNTER data bus RD_FPC: data reading by the FREE_POINTER_COUNTER WR_FPC: data writing on the FREE_POINTER_COUNTER The preceding description relates to the AAL of type 3, for the AAL of type 4 the only difference is given by the fact that the field value MID is generated runtime, that is every time a new frame is received by the AAL* component. While a particular embodiment of the present invention has been shown and described, it should be understood that the present invention is not limited thereto since other embodiments may be made by those skilled in the art without departing from the true spirit and scopo of the present invention. It is thus contemplated that the present invention encompasses any and all such embodiments covered by the following claims.

Claims: CLAIMS 1. Device for the conversion of data blocks, frame structured, into ATM cells and vice-versa, wherein said data blocks frame structured are coupled with a set of parameters set up by terminal identifiers, service or connection identifiers (TERM, SSCS, CONN) and the cells with terminal or service identification parameters (TERM, SSCS); said device being characterized in that it includes: a first bidirectional connection bus (BUS1) toward the upper layer from where it receives or rather towards which it forwards, frame structured data; - frame handler transmission means (TXFH) suitable to receive by means of said first bus (BUS1) transmission requests of an informative frame with variable length, and also suitable to define the transfer of the data relating to such frame in a buffer unit (AAL*_BUFFER) after having organized them in logical queues, each one of them being identified by a predetermined identifier (ENTRY); - protocol handler transmission means (TXPH) suitable to receive from said frame handler transmission means the identifier (ENTRY) of the logical queues for which in said buffer unit (AAL*_BUFFER) a predetermined minimum number of bytes is available, and also suitable to withdraw data belonging to these logical queues to define their segmentation in units with fixed length and to carry out predetermined protocol operations; - protocol handler reception means (RXPH) suitable to receive from the lower layers ATM cell payloads and suitable also to define the transfer into said buffer unit after having organized them in logical queues each of which being identified by a predetermined identifier; - frame handler reception means (RXFH) suitable to receive from said protocol handler reception means (RXPH) the identifier (ENTRY) of the logical queues for which all bytes relating to a message are available in said buffer unit, and suitable also to withdraw these logical queues and to define their forwarding to the upper layers (SSCS). 2. Device as claimed in claim 1, characterized in that said frame handlers means (TXPH and RXPH) and said protocol handlers means (TXPH and RXPH) are connected to said buffer (AAL*_BUFFER) via a second and third bus (I_BUS and AAL_BUS) and a management unit of said buffer. 3. Device as claimed in claims 1 and 2, characterized in that said logical queue identifiers (ENTRY) are stored in a first list (FEL) supplying said frame handler transmission means (TXFH) and said protocol handler reception means(RXPH) with the available identifiers (TX_N_ENTRY and RX_N_ENTRY) and receiving from said protocol handler transmission means (TXPH) and from said frame handler reception means (RXFH) the logical queue identifiers made available (TX_E_ENTRY and RX_E_ENTRY). 4. Device as claimed in claim 1, characterized in that to said protocol handler transmission means (TXPH) a second table (TXET) is associated which is suitable to receive in input said identifier of terminal, service and connection (TERM, SSCS, CONN) and to supply in output the logical queue identification (TX_N_ENTRY) the data in transmission refers to, and the value of the identification MID (Multiplexing_Identification) making it possible to multiplex several connections in a single ATM connection (or channel) . 5. Device according to claim 1 , characterized in that to said protocol handler reception means (RXPH) a third table (RXET) is associated, suitable to receive in input said terminal and service identifiers (TERM, and SSCS), as well as a parameter (MID) arranged in the call-setup phase and to supply in output the logical queue identification (RX_N_ENTRY) the data in reception refers to. 6. Device according to claim 1, characterized in that to said frame handler reception means (RXFH) a fourth table (TMO) is associated where the timeouts relating to the different connections in accordance with the AAL protocol operations are located. 7. Device according to the claims from 1 to 6, characterized in that said frame handler transmission means (TXFH) includes a first block (SET_SEND) accepting or rejecting the transmission requests (TX_SSCS_IO) arriving from the upper layers (SSCS) and updating the relating tables when a call is accepted determining also the extraction of a new identifier (ENTRY) by said first list (FEL), and a second block (READ_SEND) reading the data supplied by the upper layers (TX_SSCS_F), and storing them in said buffer (AAL*_BUFFER) in the location identified by the identifier (ENTRY) obtained as specified above. 8. Device according to the claims from 1 to 6, characterized in that said protocol handler transmission means (TXPH) includes a first (KILL_SEND) block suitable to receive the identifiers (ENTRY) emitted by said frame handler transmission means (TXFH) via a fifth list (SEL) operating in FIFO discipline, as well as to verify if there is enough data identified by each identifier (ENTRY) to set up an ATM cell determining the reinsertion of the identifier (ENTRY) in said fifth list (SEL), if the result of the verification is negative, or rather the liberation bf the identifier (TX_E_ENTRY) , if the result of the verification is positive, and includes also a (WR_SEND) block suitable to realize the protocol sublayers CPCS and SAR of AAL 3/4 on the data coded by identifiers for which the result of the above mentioned verification was positive. 9. Device according to the claims from 1 to 6, characterized in that said protocol handler reception means (RXPH) includes a first (SET_RECEIVE) block suitable to receive in input the segments SAR (RX_SAR_S) and to verify the existence of an available identifier (ENTRY) determining the transfer of the segments SAR into said buffer (AAL*_BUFFER) in the buffer location identified by the identifier obtained as specified before, as well as to emit a reception request (RX_R) when in said buffer there is all data present relating to a message and including also a second (RD_RECEIVE) block suitable to emit an abort message (RX_A) if an error is revealed in the reconstruction of the message. 10. Device according to the claims from 1 to 6, characterized in that said frame handler transmission means (TXFH) includes a first (KILL_RECEIVE) block suitable to receive the identifiers (ENTRY) emitted by said protocol handler reception means (RXPH) via a sixth list (REL) operating in FIFO discipline, as well as to verify if there is enough data identified by each one of the identifiers (ENTRY) to set up a frame, determining the reinsertion of the identifier (ENTRY) in said sixth list (REL) if the result of the verification is negative, or rather the liberation of the identifier (RX_E_ENTRY) if the result of the verification is positive, and including also a second block (WR_RECEIVE) suitable to forward to the upper layers (SSCS) the data coded by identifiers for which the result of the verification was positive. 11. Device according to claim 2, characterized in that said management unit (MMU) of the memory is shaped in such a way to determine the decomposition of said buffer (AAL*_BUFFER) in pages managed through linked pointer lists. 12. Device according to the claims from 2 to 11, characterized in that the memory management unit (MMU) is shaped in a way that it includes: - a seventh list (MPL) containing a linked list of pages for all identifier values (ENTRY) used in an predetermined moment, and a linked list in which all unused pages are included; - a first register (FPC) suitable to store the maximum number of empty pages in a predetermined instant within said seventh list (MPL); - an eighth list (LMT) subdivided in two fields, the first of which (WR_HEAD) contains for each admissible identifier (ENTRY) the address inside said seventh list (MPL) of the head of the linked list identified by the identifier (ENTRY) itself, the second field (RD_HEAD) containing on the other hand for each admissible identifier (ENTRY) the address inside said seventh list (MPL) of the queue of the linked list identified by the identifier (ENTRY) itself; - a ninth list (PMT), also this one subdivided in two fields, the first of them (WR_DATA) is suitable to store for each identifier (ENTRY) the number of double-words having been written into said buffer (AAL*_BUFFER) , the second field (RD_DATA) on the other hand is containing for each active identifier (ENTRY) the number of double-words which have been read by said buffer (AAL*_BUFFER) ; - a first elaboration unit (PG_M) suitable to calculate the lower part of the address (ADDR_PAGE) of said memory (AAL*_BUFFER) on the basis of the values contained in said ninth table (PMT); a second elaboration unit (LS_M) suitable to calculate the upper part of the address (LIST_PAGE) of said buffer (AAL*_BUFFER) on the basis of the values contained in said eighth table (LMT).

Inventors: MERLI EDOARDO, PAVESI MARCO, MERLI, EDOARDO, PAVESI, MARCO
Applicants: ITALTEL SPA, MERLI EDOARDO, PAVESI MARCO, ITALTEL SOCIETA' ITALIANA TELECOMUNICAZIONI S.P.A., MERLI, EDOARDO, PAVESI, MARCO
Application year: 1993
Main classification: H04Q11
IPC codes: H04L12, H04Q11