Method and apparatus for managing multiple ATM cell queues

Multiplex communications – Pathfinding or routing – Switching a message which includes an address header

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C370S395430

Reexamination Certificate

active

06246682

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to Asynchronous Transfer Mode (ATM) telecommunications switching. More particularly, the invention relates to a method and apparatus for managing multiple ATM cell queues in a common memory where some of the ATM cells are to be multicast.
2. State of the Art
ATM switches typically include multiple buffers, queues, or FIFOs for managing the flow of ATM cells through the switch. The buffers may be at the entry to the switch, at the exit to the switch, or between the entry and the exit of the switch. It is known from co-owned allowed application Ser. No. 08/796,085 to utilize a common memory (RAM) in which multiple queues are realized. The method used for managing multiple queues in a common RAM is known as “link list”. According to the link list method of buffer management, each data element in a particular queue includes a pointer to the next consecutive element in the queue, thereby allowing a multiple queues (link lists) to be fragmented throughout a common RAM. For example, as shown in
FIG. 11
, a single block of RAM may contain “N” number of queues as link lists #
1
, #
2
, . . . #N. Each list may contain “n” number of data elements which are stored in the RAM in a non-contiguous manner. In order for each data element in a list to be properly associated with the other elements in the list, each element includes, in addition to the “m” number of contiguously stored words in the element, a pointer to the physical address in RAM of the next element in the list. As shown in connection with the second element of list #N in
FIG. 11
, elements other than the first element in the list also include a pointer to the physical address in RAM of the previous element in the list. The pointer to the previous element is used for testing or for the implementation of a LIFO buffer rather than the typical FIFO buffer.
The link list queues are managed by another list such as that shown in
FIG. 12
wherein for each queue (link list), three parameters are maintained: the memory address of the first data element in the queue (head pointer), the memory address of the last data element in the queue (tail pointer), and the depth of the queue (counter). In addition, a list of free space (free list) in RAM is also maintained by storing a head pointer, a tail pointer, and a counter for the unused blocks of RAM which are available for use in queuing data elements. It will be appreciated that the unused blocks of RAM, which are not necessarily contiguous, are indexed with previous and next pointers just as the used blocks are. In this manner, multiple queues may be set up, torn down, and managed in a single common memory.
One of the desirable features of ATM is its support for multicast data transmission. Multicast data transmission is particularly useful in efficiently implementing conference calls. One method of implementing multicasting is discussed in the previously incorporated U.S. Pat. No. 5,774,465. In general, each ATM cell which is to be multicast is copied multiple times with a different address header for each copy. In an ATM switch which utilizes discrete hardware queues at the exit of the switch, the multicast cell is copied to multiple queues. In a switch utilizing link list queues at the entrance to the switch, multicasting may be more complicated.
One simple method for managing multicasting in a link list system is analogous to the method described above, i.e., each multicast data element is copied to multiple link lists. This method is easy to implement, but it makes inefficient use of the memory used to implement the queues. A possible solution to managing multicasting in a link list system is to increase the overhead for each data element in the link lists. According to this method, each data element would be provided with a header which includes information about the multiple addresses to which the data element is to be multicast. This would make more efficient use of data storage since it would not be necessary to store multiple copies of the same data. However, management of the multicast data elements with expanded header information would be complex since the status of each multicast transmission must be constantly monitored and updated. It would be very difficult to determine when all the necessary copies of the multicast cell have been sent and thus when cell buffer space can be freed. Further, as the number of multicast destinations increases, the amount of overhead per data element may exceed the size of the data element.
SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide a method and apparatus for managing multiple ATM queues in a common memory.
It is also an object of the invention to provide a method and apparatus for managing multiple ATM queues in a common memory and which supports multicasting.
It is another object of the invention to provide a method and apparatus for managing multiple ATM queues in a common memory which supports multicasting and which makes efficient use of memory.
It is still another object of the invention to provide a method and apparatus for managing multiple ATM queues in a common memory, which supports multicasting, which makes efficient use of memory, and which is easily implemented.
In accord with these objects which will be discussed in detail below, the apparatus of the present invention includes a common memory for storing ATM cells and for storing at least one pointer to each ATM cell stored, wherein the pointers are kept in a plurality of linked lists in order to establish a plurality of queues, and a management memory for storing an index to the pointers stored in common memory, a table for each multicast session, and an index to the free space in common memory.
According to the presently preferred embodiment of the invention, the common memory is apportioned in blocks of sixty-four bytes (sixteen thirty-two bit words) for cell storage and pointer storage. Each ATM cell is stored in a single block together with some switch specific overhead and a one word count of the number of destinations waiting for the cell (i.e., the number of queues of which the cell is a part). The pointers which are kept in link lists in order to define queues, are also stored in contiguous sixty-four byte blocks which contain fifteen pointers and an additional word pointing to the next block of fifteen pointers. All of the pointers in a queue are indexed with a table entry (in management memory) which includes the addresses of the first and last pointers, a count of the number of cells in the queue, the queue limit (i.e., maximum queue size), and an indication of whether the queue is active. According to the presently preferred embodiment, each multicast session table in management memory includes a five bit counter indicating the total number of addresses in the multicast session and a list of each of the addresses. However, the counter could be a full 32-bit word.
The method of the present invention includes storing ATM cells in blocks common memory, with each ATM cell accompanied by a one word count of the number of destinations waiting for the cell, and storing pointers to the ATM cells as link lists. The pointers are stored in contiguous blocks, each block having a tail pointer to the next contiguous block of pointers. The method of the invention also includes organizing an index to each link list of pointers as a table entry, with each entry containing information about the first and last pointer referring to a queue of data elements; and for each multicast session, maintaining a list of all of the queues involved in the session.
According to the presently preferred method, cells entering the switch are examined, placed in shared RAM, and a pointer to the RAM location is written in another location in the shared RAM. Table entries in management RAM are updated each time a cell is added. When a multicast session is begun, a multicast table is created with all of the addresses in the multicast session. When a multicast cell is received,

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for managing multiple ATM cell queues does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for managing multiple ATM cell queues, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for managing multiple ATM cell queues will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2479197

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.