US6088745A - Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space - Google Patents
Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space Download PDFInfo
- Publication number
- US6088745A US6088745A US09/040,170 US4017098A US6088745A US 6088745 A US6088745 A US 6088745A US 4017098 A US4017098 A US 4017098A US 6088745 A US6088745 A US 6088745A
- Authority
- US
- United States
- Prior art keywords
- queue
- buffers
- storage area
- data unit
- contiguous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/064—Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
Definitions
- the present invention relates to a system for transferring data between storage areas and, more particularly, to a data transfer system in which pointers to "free" buffers are allocated repetitively to transfer protocol data units from one data storage area into contiguous address spaces in another data storage area in a data communication switch.
- Data communication switches receive packets from one network and switch them to other networks. Packets must be stored in data storage areas within such switches while switching information is processed and to avoid contention among packets competing for switching resources. Such transfers are often accomplished in hard-wired logic using direct memory access (DMA) transfer.
- DMA direct memory access
- DMA transfer describes a process in which packets are transferred directly between a source and destination area of data storage instead of transferring them to a central processing unit and then from the central processing unit to the destination data storage area.
- DMA transfer can often be accomplished faster than in processor-dependent data transfer.
- DMA transfer's reliance on hard-wired logic as the transfer mechanism places practical constraints on how such transfers are effectuated.
- One constraint inherent in many DMA transfer systems requires that each packet be transferred into a contiguous address space within the destination area of data storage.
- a technical challenge arising in DMA transfer systems requiring contiguity is how to buffer packets efficiently.
- efficiency is achieved by allocating to packets pointers which address available, or "free", constant-byte buffers in a destination storage area in a repetitive cycle on an "as needed" basis. This results in relatively small packets being allocated a single buffer pointer and relatively large packets being allocated multiple buffer pointers. Because every packet is allocated the approximate amount of address space it needs, the destination storage area may be provided using a relatively small memory.
- Unfortunately, however, such efficient conventional systems fail to provide contiguity for multi-buffer packets because buffer pointers are inevitably returned and real-located in a different order than the order of original allocation.
- the "system maximum" buffer size would be dictated by the protocol-specific packet size limitation which is the highest among all such limitations for the various protocols operative within the system. Selecting such a "system maximum" buffer size as a universal buffer size for the sake of maintaining contiguity would result in most packets being allocated substantially more address space in the destination data storage area than is actually required. Such an over-allocation of address space would create memory requirements for the destination storage area which are unacceptably high.
- the present invention provides a DMA transfer system which allocates contiguous address spaces tailored to fit packets being buffered by maintaining a plurality of free buffer pointer lists from which contiguous address spaces are allocated in different amounts and selecting from among the plurality of free lists on a packet-by-packet basis based on known or presumed characteristics of inbound packets.
- a DMA transfer system which allocates contiguous address spaces tailored to fit packets being buffered by maintaining a plurality of free buffer pointer lists from which contiguous address spaces are allocated in different amounts and selecting from among the plurality of free lists on a packet-by-packet basis based on known or presumed characteristics of inbound packets.
- the plurality of free lists provide contiguous address space in different amounts by supplying pointers to contiguous standard-sized buffers in different multiples.
- Pointers to contiguous standard-sized buffers are allocated to inbound packets from the list from which buffer pointers are allocated in the multiple estimated, based on the governing packet-specific characteristic, to provide, without risking under-allocation, the lowest over-allocation of address space to the inbound packet.
- Inbound packets are DMA-transferred to the contiguous buffers addressed by the allocated buffer pointers and are eventually DMA-transferred out of the contiguous buffers to output ports.
- Pointers to contiguous buffers which have been read to output ports are always returned to the free lists from which they were originally allocated in the same multiples in which they were originally allocated.
- the governing packet-specific characteristic for making pointer allocation decisions is packet protocol type.
- the standard buffer size and the different multiples in which buffer pointers are allocated from the plurality of free lists are selected such that the allocated contiguous address spaces are at least as large but not substantially larger than necessary to buffer a maximum size packet of different protocol types operative in the system.
- Pointers to contiguous standard-sized buffers are allocated to each inbound packet from the free list from which pointers are allocated in the multiple which would provide the lowest over-allocation of address space to a theoretical maximum size packet of the same protocol type as the inbound packet.
- FIG. 1 is a block diagram of a DMA transfer system
- FIG. 2 is a diagram illustrating the free buffer pointer lists in the DMA transfer system according to FIG. 1;
- FIG. 3 is a diagram illustrating the manner in which packets are buffered in the packet queue in the DMA transfer system according to FIG. 1;
- FIG. 4 is a diagram illustrating the format of a buffer header in the DMA transfer system according to FIG. 1;
- FIG. 5 is a diagram illustrating the manner in which linked buffer headers are consulted to effectuate a read of packets from the packet queue to the output ports in the DMA transfer system of FIG. 1;
- FIG. 6 is a diagram illustrating the manner in which packets are read from the packet queue to output ports in the DMA transfer system according to FIG. 1;
- FIG. 7 is a flow diagram illustrating DMA processing and transfer of inbound packets from the FIFOs to the packet queue in a DMA transfer system.
- FIG. 8 is a flow diagram illustrating DMA processing and transfer of packets from the packet queue to the output ports in a DMA transfer system.
- FIG. 1 a DMA transfer system in which the present invention is operative is shown.
- Inbound packets are received at FIFOs 110 and are switched to output ports 150. Packets are stored temporarily in logical output queues within packet queue 120 to avoid contention in the system. Contiguous address space in packet queue 120 is provided to each inbound packet by allocating to the inbound packet a group of buffer pointers from a selected one of free buffer pointer lists 140.
- Free lists 140 are shown in greater detail in FIG. 2. Each free list defines a linked list of groups of one or more pointers which address buffers in packet queue 120. Each pointer belongs to exactly one group and each group in the same free list has the same number of pointers. Pointer groups in different free lists have different numbers of pointers. Pointers in the same pointer group address contiguous space in packet queue 120; however, consecutive groups of pointers in the same free list do not necessarily address contiguous space in packet queue 120. The pointers are always pulled-off of the front of a free list in their defined pointer group.
- All buffers in packet queue 120 addressed by pointers are the same size and the number of pointers in the groups allocated by free lists 140 are selected such that the contiguous address spaces allocated are at least as large but not substantially larger than the maximum size for packets of different communication protocol types occurring in the DMA transfer system.
- packets arrive at a plurality of FIFOs 110 in constant-byte segments. Consecutive segments arriving at a particular FIFO may belong to the same packet or may belong to different packets.
- the protocol type is learned for each inbound packet. The protocol type may be learned by parsing the packet or, depending on the system, may be presumed from the known traffic pattern on the FIFO on which the inbound packet arrived. A pointer group from the appropriate free list is selected for the inbound packet based on the known or presumed protocol type.
- the selected pointer group is allocated from the one of free lists 140 which supplies pointers in the multiple which would result in the lowest over allocation of address space to a maximum size packet of the known or presumed protocol type of the inbound packet.
- the known or presumed protocol type of the inbound packet is ten megabit Ethernet having a maximum packet length of 1518 bytes, and the buffer size is 2K bytes
- a pointer group would be selected from the free list from which pointers are allocated in groups of one.
- packet queue transfer controller 160 starts a DMA transfer of "chunks" of the segments of the packet into the buffer addressed by the first pointer in the selected pointer group.
- Pointer groups are made available by the free pointer manager 180, which always pulls pointer groups from the front of free lists 140.
- an arbitration is conducted to grant time-multiplexed control of packet queue 120 to the competing FIFOs for delivering chunks of packet segments.
- FIG. 3 Chunks are written from FIFO 310 to the buffer addressed by the first pointer in the selected pointer group, represented in FIG. 3 by buffer 322. If buffer 322 is filled before the entire packet has been written, chunks are written to the buffer addressed by the second pointer in the pointer group, represented by buffer 324. If buffer 324 is filled before the entire packet is written, chunks are written to the buffer addressed by the third pointer in the pointer group, and so on, until the entire packet has been written to packet queue 120.
- pointer groups will include different numbers of pointers depending upon the free list from which they were allocated.
- Packet queue 120 may be implemented in random access memory (RAM).
- switching logic 190 is implemented in hard-wired logic including content-addressable memory (CAM) logic for performing associative comparisons on identifiers in inbound packets and for resolving such identifiers to switching instructions stored in a switching database.
- CAM content-addressable memory
- the switching instructions provide, at a minimum, information required to assign a logical output queue for inbound packets. It will be appreciated, however, that other logic, such as a random access memory (RAM) with bit-hashing capabilities, or processor-implemented software, may be used as alternatives to CAM logic for resolving identifiers in inbound packets to switching information.
- RAM random access memory
- processor-implemented software may be used as alternatives to CAM logic for resolving identifiers in inbound packets to switching information.
- Headers are constructed in packet queue 120 to link groups of buffers assigned by switching logic 190 to the same logical output queue. Headers are written into address spaces in packet queue 120 to form counterparts to the buffers in which data are awaiting release to output ports 150.
- a representative header 400 is shown to include "next buffer” field 410, "next packet” field 420, a free list identifier field 430 and a buffer group count 440.
- "Next buffer” field 410 holds a pointer which addresses the next buffer in the logical output queue with which header 400 is associated.
- “Next packet” field 420 holds a pointer which addresses the first buffer for the next packet in the logical output queue with which the header 400 is associated.
- Free list identifier field 430 holds a value which identifies the one of free lists 140 from which the pointer stored in "next buffer” field 410 was allocated.
- Buffer group count 440 holds information sufficient to identify the number of buffers in the buffer group with which header 400 is associated.
- header 400 also includes routing information (not shown) for use at subsequent "hops" to which the packet in the corresponding buffer will be switched after being read from packet queue 120 and unicast/flood queue status information which allows output ports 150 to alternate reads between unicast and flood queues to ensure that packets are transferred to output ports 150 in the same order in which they were transferred to packet queue 120.
- Head/tail pointer stores 175 are maintained to track the heads and tails of the logical output queues. Head/tail pointer stores 175 have stored, for each logical output queue, a head pointer which addresses the buffer whose header has a pointer to the buffer at the front of the output queue. Head/tail pointer stores 175 also include, for each logical output queue, a tail pointer which addresses the buffer at the back of the output queue. The tail pointer for a logical output queue is updated whenever a packet has been added to the back of the logical output queue. The head pointer for a logical output queue is updated whenever a packet has been read from the logical output queue. Each output port maintains its own head pointer for the flood queue to enable output ports to read from the flood queue at different paces.
- Dequeueing from packet queue 120 is triggered by the updating of tail pointers.
- Output port transfer controller 170 issues an interrupt command to output ports whose unicast queue tail pointers have been updated. If the flood queue tail pointer has been updated, controller 170 issues an interrupt command to all output ports 150. Interrupted output ports start a DMA transfer of chunks of packet segments from packet queue 120. If two or more of output ports have been interrupted, an arbitration is conducted to grant time-multiplexed control of packet queue 120 to the competing output ports for transferring the chunks of packet segments.
- FIG. 5 The manner in which chunks of outbound packets are read from packet queue 120 is shown in FIG. 5.
- head pointer store 540 for the logical output queue is consulted.
- the pointer stored in store 540 addresses buffer 510 whose header holds a pointer to buffer 522 at the front of the logical output queue.
- the pointer is used to address buffer 522 at the front of the output queue and chunks are read from buffer 522 to output port 550.
- a pointer in the header in buffer 522 is used to address the next buffer 524 in the logical output queue. Chunks are read from buffer 524 to output port 550.
- a pointer in the header of buffer 524 is used to address the next buffer 526 in the output queue and chunks are read from buffer 526 to output port 550, and so on, until the data from all buffers in the output queue have been read to output port 550.
- the transfer from the next three buffers in the output queue, buffers 532, 534, 536, is illustrated in FIG. 5.
- buffers in a output queue are not necessarily contiguous, and in the example illustrated in FIG. 5 are not contiguous, because a output queue may at any given time include buffers associated with different pointer groups or pointer groups allocated from different free lists. Naturally, a output queue may at any given time include one or more buffers.
- packet queue 120 is a shared resource, the read operation from a particular output queue may be interrupted to accommodate reads from other logical output queues.
- Headers are constructed judiciously to link the buffers assigned to a common logical output queue into a chain 600 is shown to include buffer 610, buffers 622, 624, 626 associated with packet 620 and buffers 632, 634, 636 associated with packet 630.
- Packet 620 is at the front of chain 600 and packet 630 is the next packet in chain 600.
- Buffers 622, 624, 626 are linked together as a packet by pointers written in the "next buffer” pointer fields of buffers 622 and 624.
- Buffers 632, 634, 636 are linked together as a packet by pointers written in the "next buffer” pointer fields of buffers 632 and 634.
- Front packet 620 and next packet 630 are linked as consecutive packets in the same output queue by the pointer written in the "next packet" pointer field of buffer 622.
- Head store 640 for the logical output queue is linked to front packet 620 by the pointer written the "next packet" pointer field of buffer 610.
- Buffer 610 is the last buffer from which data was read for the logical output queue, unless no buffers from the logical output queue have yet been read, in which event buffer 610 is a placeholder having an address to which the pointer in head queue 640 is initialized to point at start-up.
- head store 640 is consulted and the pointer therein is used to address buffer 610.
- "Next packet" field in buffer 610 is consulted and the pointer therein is used to address buffer 622.
- the buffer group count in buffer 622 is consulted to determine how many buffers are linked in the packet.
- Data are read from buffer 622. After all data have been read from buffer 622, "next buffer” field in buffer 622 is consulted and the pointer therein is used to address buffer 624. After all data have been read from buffer 624, the "next buffer” field in buffer 624 is consulted and the buffer pointer therein is used to address buffer 626.
- next pointer field in buffer 622 is consulted and the pointer therein is used to address buffer 632.
- the buffer group count in buffer 632 is consulted to determine how many buffers are linked in the packet.
- Data are read from buffer 632.
- "next buffer” field in buffer 632 is consulted and the pointer therein addresses buffer 634.
- the remaining buffers in the output queue, buffers 636, 636, etc. are "walked down” in similar fashion to read the data in the remaining buffers in the output queue to the output port.
- packets in a output queue need not be stored in the same number of buffers, but may span different numbers of buffers depending upon the system configuration and the protocol type of the packets.
- the output port selects between those output queues to the extent required to read packets to the output port in the same order they were written to packet queue 120.
- the order is maintained with the assistance of unicast/flood queue status information stored in "flood write” and "flood read” counters.
- a “flood read” counter is kept for each output port.
- the “flood write” counter is incremented whenever a packet is written in the flood queue.
- the "flood read” counter for a particular output port is incremented whenever a packet is read from the flood queue to the output port.
- the current value in the "flood write” counter is written in a field in the buffer header of the packet.
- the flood queue is selected and a packet is read from the flood queue to the output port. If, on the other hand, the current value in the "flood read" counter is not less than the "flood write” value from the packet, it is known that the packet at the head of the unicast queue was not written after the packet at the head of the flood queue. Therefore, the unicast queue is selected and a packet is read from the unicast queue to the output port.
- packets are read to each output port from its two competing logical output queues in the same order in which the packets were written to packet queue 120.
- Pointers are returned to the back of the same free list from which they were originally allocated.
- Pointers associated with the same packet in a unicast queue are returned as a group after the pointer in the "next packet" field has been used as described in FIG. 6 to address the next packet in the output queue.
- the return operation is accomplished by consulting the identifier in the free list identifier field in the same header as the pointer in the "next packet” field and returning the pointers to the back of the identified free list. Pointers associated with the same packet in the flood queue are not returned until the pointer in the "next packet" field has been used by all output ports to address the next packet in the output queue.
- the number of output port reads from the flood queue is monitored by a "yet-to-read" value which indicates, for each packet in the output queue, how many output ports have yet to complete a read of the data in the packet.
- the "yet-to-read” value is initially set equal to the number of output ports 150. Whenever an output port has completed its read of the packet, the value is decremented by one. When the "yet-to-read" value has been decremented to zero, the pointer held in the "next packet" field of the header is returned after the next use of the pointer to address the next packet in the output queue.
- FIG. 7 a flow diagram illustrates DMA processing and transfer of inbound packets from FIFOs to a packet queue in a preferred embodiment.
- a pointer group from the appropriate one of the free lists is selected (710) and the first pointer in the selected pointer group is used (720) to transfer the first chunk of the packet to the buffer addressed by the pointer (730). If there are more chunks in the current packet for transfer (740) and the buffer is not full (750), the next chunk is always written to the same buffer (730). If there are more chunks in the current packet (740) and the buffer is full (750), the next pointer in the selected group is always used (720) to transfer the next chunk of the packet to the buffer addressed by the pointer (730). When there are no more chunks in the current packet (760), the process is repeated anew on the next packet, if any.
- FIG. 8 a flow diagram illustrates DMA processing and transfer of packets from the packet queue to output ports in a preferred embodiment.
- the appropriate queue is selected (810) and the "next packet" pointer in the header associated with the last-read buffer or the placeholder buffer, whichever the case may be, for the selected output queue is used to address the buffer at the front of the selected queue, i.e., the first buffer of the current packet (820).
- the first buffer's data are transferred to the output port (830).
- the "next packet" pointer which was used to address the front buffer is returned to the free list from which it was allocated along with other pointers for the last-read packet (850). If the current output queue is the flood queue, a further inquiry is made to determine if the last-read packet has been transferred to all output ports (860) and the pointers are returned to the appropriate free list only if this condition has been satisfied. Regardless, if there is another pointer for the current packet (870) the "next buffer” pointer is always used to address the next buffer (875) and the buffer's data are transferred to the output port (830).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/040,170 US6088745A (en) | 1998-03-17 | 1998-03-17 | Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/040,170 US6088745A (en) | 1998-03-17 | 1998-03-17 | Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space |
Publications (1)
Publication Number | Publication Date |
---|---|
US6088745A true US6088745A (en) | 2000-07-11 |
Family
ID=21909511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/040,170 Expired - Fee Related US6088745A (en) | 1998-03-17 | 1998-03-17 | Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space |
Country Status (1)
Country | Link |
---|---|
US (1) | US6088745A (en) |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001059585A1 (en) * | 2000-02-08 | 2001-08-16 | Clearwater Networks, Inc. | Queueing system for processors in packet routing operations |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US20020016883A1 (en) * | 2000-02-08 | 2002-02-07 | Enrique Musoll | Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memory management |
US20020018486A1 (en) * | 2000-02-08 | 2002-02-14 | Enrique Musoll | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrrupts |
US20020018463A1 (en) * | 2000-06-06 | 2002-02-14 | Broadcom Corporation | Delay reduction method for telephony systems with multiple packet generators |
US20020021707A1 (en) * | 2000-02-08 | 2002-02-21 | Nandakumar Sampath | Method and apparatus for non-speculative pre-fetch operation in data packet processing |
US20020037011A1 (en) * | 2000-06-23 | 2002-03-28 | Enrique Musoll | Method for allocating memory space for limited packet head and/or tail growth |
US20020054603A1 (en) * | 2000-02-08 | 2002-05-09 | Enrique Musoll | Extended instruction set for packet processing applications |
US20020071393A1 (en) * | 2000-02-08 | 2002-06-13 | Enrique Musoll | Functional validation of a packet management unit |
US20020083173A1 (en) * | 2000-02-08 | 2002-06-27 | Enrique Musoll | Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing |
US20030043833A1 (en) * | 2001-06-29 | 2003-03-06 | Jonathon Evered | DMA controller system |
US6532501B1 (en) * | 1999-09-30 | 2003-03-11 | Silicon Graphics, Inc. | System and method for distributing output queue space |
US6574231B1 (en) * | 1999-05-21 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and apparatus for queuing data frames in a network switch port |
US20030147385A1 (en) * | 2002-01-28 | 2003-08-07 | Armando Montalvo | Enterprise switching device and method |
US6618390B1 (en) * | 1999-05-21 | 2003-09-09 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining randomly accessible free buffer information for a network switch |
US20030235189A1 (en) * | 2002-06-04 | 2003-12-25 | Mathews Gregory S. | Pointer allocation by prime numbers |
US20040049613A1 (en) * | 2002-09-10 | 2004-03-11 | Broadcom Corporation | Balanced linked lists for high performance data buffers in a network device |
US20040131069A1 (en) * | 2003-01-06 | 2004-07-08 | Jing Ling | Virtual output queue (VoQ) management method and apparatus |
US20040156377A1 (en) * | 2003-02-08 | 2004-08-12 | Walls Jeffrey Joel | Apparatus and method for communicating with a network |
US20050076144A1 (en) * | 2003-10-02 | 2005-04-07 | Internet Associates, Llc | Methods, computer systems, and computer readable media for controlling the status of network address space |
US20050141418A1 (en) * | 2003-12-08 | 2005-06-30 | Samsung Electronics Co., Ltd. | Ring buffer management system and ring buffer management method |
US20050198361A1 (en) * | 2003-12-29 | 2005-09-08 | Chandra Prashant R. | Method and apparatus for meeting a given content throughput using at least one memory channel |
US20060036705A1 (en) * | 2000-02-08 | 2006-02-16 | Enrique Musoll | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US7032226B1 (en) | 2000-06-30 | 2006-04-18 | Mips Technologies, Inc. | Methods and apparatus for managing a buffer of events in the background |
US7046687B1 (en) * | 2002-01-16 | 2006-05-16 | Tau Networks | Configurable virtual output queues in a scalable switching system |
US7058065B2 (en) | 2000-02-08 | 2006-06-06 | Mips Tech Inc | Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing |
US20060187941A1 (en) * | 2005-02-23 | 2006-08-24 | Broadcom Corporation | Self-correcting memory system |
US7301954B1 (en) * | 1999-09-24 | 2007-11-27 | United States Of America As Represented By The Secretary Of The Navy | Multiple-buffer queueing of data packets with high throughput rate |
US20080288738A1 (en) * | 2006-12-22 | 2008-11-20 | Parag Gokhale | Systems and methods of data storage management, such as pre-allocation of storage space |
US7502876B1 (en) | 2000-06-23 | 2009-03-10 | Mips Technologies, Inc. | Background memory manager that determines if data structures fits in memory with memory state transactions map |
CN101339541B (en) * | 2008-08-11 | 2012-06-06 | 无锡中星微电子有限公司 | DMA data-transmission method and DMA controller |
US8650278B2 (en) | 2003-08-15 | 2014-02-11 | Internet Associates, Llc | Generating displays of networking addresses |
US9063938B2 (en) | 2012-03-30 | 2015-06-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9535776B2 (en) | 2014-02-27 | 2017-01-03 | Commvault Systems, Inc. | Dataflow alerts for an information management system |
US9639297B2 (en) | 2012-03-30 | 2017-05-02 | Commvault Systems, Inc | Shared network-available storage that permits concurrent data access |
US9658951B1 (en) | 2011-11-02 | 2017-05-23 | Marvell Israel (M.I.S.L) Ltd. | Scalable high bandwidth memory in a network device |
US9996468B1 (en) * | 2011-11-02 | 2018-06-12 | Marvell Israel (M.I.S.L) Ltd. | Scalable dynamic memory management in a network device |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10901887B2 (en) | 2018-05-17 | 2021-01-26 | International Business Machines Corporation | Buffered freepointer management memory system |
US10996866B2 (en) | 2015-01-23 | 2021-05-04 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a data storage management system using media agent resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US5602841A (en) * | 1994-04-07 | 1997-02-11 | International Business Machines Corporation | Efficient point-to-point and multi-point routing mechanism for programmable packet switching nodes in high speed data transmission networks |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
US5815097A (en) * | 1996-05-23 | 1998-09-29 | Ricoh Co. Ltd. | Method and apparatus for spatially embedded coding |
US5841990A (en) * | 1992-05-12 | 1998-11-24 | Compaq Computer Corp. | Network connector operable in bridge mode and bypass mode |
-
1998
- 1998-03-17 US US09/040,170 patent/US6088745A/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US5841990A (en) * | 1992-05-12 | 1998-11-24 | Compaq Computer Corp. | Network connector operable in bridge mode and bypass mode |
US5602841A (en) * | 1994-04-07 | 1997-02-11 | International Business Machines Corporation | Efficient point-to-point and multi-point routing mechanism for programmable packet switching nodes in high speed data transmission networks |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
US5815097A (en) * | 1996-05-23 | 1998-09-29 | Ricoh Co. Ltd. | Method and apparatus for spatially embedded coding |
Cited By (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618390B1 (en) * | 1999-05-21 | 2003-09-09 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining randomly accessible free buffer information for a network switch |
US6574231B1 (en) * | 1999-05-21 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and apparatus for queuing data frames in a network switch port |
US20080104313A1 (en) * | 1999-09-24 | 2008-05-01 | Tam-Anh Chu | Multiple-Buffer Queueing of Data Packets with High Throughput Rate |
US7301954B1 (en) * | 1999-09-24 | 2007-11-27 | United States Of America As Represented By The Secretary Of The Navy | Multiple-buffer queueing of data packets with high throughput rate |
US8072996B2 (en) | 1999-09-24 | 2011-12-06 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-buffer queueing of data packets with high throughput rate |
US6532501B1 (en) * | 1999-09-30 | 2003-03-11 | Silicon Graphics, Inc. | System and method for distributing output queue space |
US20070168748A1 (en) * | 2000-02-08 | 2007-07-19 | Mips Technologies, Inc. | Functional validation of a packet management unit |
US20060036705A1 (en) * | 2000-02-08 | 2006-02-16 | Enrique Musoll | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US20020054603A1 (en) * | 2000-02-08 | 2002-05-09 | Enrique Musoll | Extended instruction set for packet processing applications |
US20020071393A1 (en) * | 2000-02-08 | 2002-06-13 | Enrique Musoll | Functional validation of a packet management unit |
US20020083173A1 (en) * | 2000-02-08 | 2002-06-27 | Enrique Musoll | Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing |
US7644307B2 (en) | 2000-02-08 | 2010-01-05 | Mips Technologies, Inc. | Functional validation of a packet management unit |
US20020021707A1 (en) * | 2000-02-08 | 2002-02-21 | Nandakumar Sampath | Method and apparatus for non-speculative pre-fetch operation in data packet processing |
US20070074014A1 (en) * | 2000-02-08 | 2007-03-29 | Mips Technologies, Inc. | Extended instruction set for packet processing applications |
US7551626B2 (en) | 2000-02-08 | 2009-06-23 | Mips Technologies, Inc. | Queueing system for processors in packet routing operations |
US20020018486A1 (en) * | 2000-02-08 | 2002-02-14 | Enrique Musoll | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrrupts |
US7649901B2 (en) | 2000-02-08 | 2010-01-19 | Mips Technologies, Inc. | Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing |
US20100103938A1 (en) * | 2000-02-08 | 2010-04-29 | Mips Technologies, Inc. | Context Sharing Between A Streaming Processing Unit (SPU) and A Packet Management Unit (PMU) In A Packet Processing Environment |
WO2001059585A1 (en) * | 2000-02-08 | 2001-08-16 | Clearwater Networks, Inc. | Queueing system for processors in packet routing operations |
US20060159104A1 (en) * | 2000-02-08 | 2006-07-20 | Mario Nemirovsky | Queueing system for processors in packet routing operations |
US20010043610A1 (en) * | 2000-02-08 | 2001-11-22 | Mario Nemirovsky | Queueing system for processors in packet routing operations |
US7197043B2 (en) | 2000-02-08 | 2007-03-27 | Mips Technologies, Inc. | Method for allocating memory space for limited packet head and/or tail growth |
US8081645B2 (en) | 2000-02-08 | 2011-12-20 | Mips Technologies, Inc. | Context sharing between a streaming processing unit (SPU) and a packet management unit (PMU) in a packet processing environment |
US20020016883A1 (en) * | 2000-02-08 | 2002-02-07 | Enrique Musoll | Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memory management |
US7877481B2 (en) | 2000-02-08 | 2011-01-25 | Mips Technologies, Inc. | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US7165257B2 (en) | 2000-02-08 | 2007-01-16 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US20060153197A1 (en) * | 2000-02-08 | 2006-07-13 | Nemirovsky Mario D | Queueing system for processors in packet routing operations |
US7042887B2 (en) | 2000-02-08 | 2006-05-09 | Mips Technologies, Inc. | Method and apparatus for non-speculative pre-fetch operation in data packet processing |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US7058065B2 (en) | 2000-02-08 | 2006-06-06 | Mips Tech Inc | Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing |
US7058064B2 (en) | 2000-02-08 | 2006-06-06 | Mips Technologies, Inc. | Queueing system for processors in packet routing operations |
US20070256079A1 (en) * | 2000-02-08 | 2007-11-01 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US7076630B2 (en) | 2000-02-08 | 2006-07-11 | Mips Tech Inc | Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memo management |
US7280548B2 (en) | 2000-02-08 | 2007-10-09 | Mips Technologies, Inc. | Method and apparatus for non-speculative pre-fetch operation in data packet processing |
US7715410B2 (en) | 2000-02-08 | 2010-05-11 | Mips Technologies, Inc. | Queueing system for processors in packet routing operations |
US7082552B2 (en) | 2000-02-08 | 2006-07-25 | Mips Tech Inc | Functional validation of a packet management unit |
US7765554B2 (en) | 2000-02-08 | 2010-07-27 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US7155516B2 (en) | 2000-02-08 | 2006-12-26 | Mips Technologies, Inc. | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US20070110090A1 (en) * | 2000-02-08 | 2007-05-17 | Mips Technologies, Inc. | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US7139901B2 (en) | 2000-02-08 | 2006-11-21 | Mips Technologies, Inc. | Extended instruction set for packet processing applications |
US7106723B2 (en) * | 2000-06-06 | 2006-09-12 | Broadcom Corporation | Delay reduction method for telephony systems with multiple packet generators |
US20070070986A1 (en) * | 2000-06-06 | 2007-03-29 | Broadcom Corporation | Delay reduction method for telephony systems with multiple packet generators |
US8189592B2 (en) | 2000-06-06 | 2012-05-29 | Broadcom Corporation | Delay reduction method for telephony systems with multiple packet generators |
US20020018463A1 (en) * | 2000-06-06 | 2002-02-14 | Broadcom Corporation | Delay reduction method for telephony systems with multiple packet generators |
US20020037011A1 (en) * | 2000-06-23 | 2002-03-28 | Enrique Musoll | Method for allocating memory space for limited packet head and/or tail growth |
US20060225080A1 (en) * | 2000-06-23 | 2006-10-05 | Mario Nemirovsky | Methods and apparatus for managing a buffer of events in the background |
US7502876B1 (en) | 2000-06-23 | 2009-03-10 | Mips Technologies, Inc. | Background memory manager that determines if data structures fits in memory with memory state transactions map |
US7661112B2 (en) | 2000-06-23 | 2010-02-09 | Mips Technologies, Inc. | Methods and apparatus for managing a buffer of events in the background |
US7065096B2 (en) | 2000-06-23 | 2006-06-20 | Mips Technologies, Inc. | Method for allocating memory space for limited packet head and/or tail growth |
US7032226B1 (en) | 2000-06-30 | 2006-04-18 | Mips Technologies, Inc. | Methods and apparatus for managing a buffer of events in the background |
US20030043833A1 (en) * | 2001-06-29 | 2003-03-06 | Jonathon Evered | DMA controller system |
US7046687B1 (en) * | 2002-01-16 | 2006-05-16 | Tau Networks | Configurable virtual output queues in a scalable switching system |
US20030147385A1 (en) * | 2002-01-28 | 2003-08-07 | Armando Montalvo | Enterprise switching device and method |
US7327748B2 (en) | 2002-01-28 | 2008-02-05 | Alcatel Lucent | Enterprise switching device and method |
US7733888B2 (en) * | 2002-06-04 | 2010-06-08 | Alcatel-Lucent Usa Inc. | Pointer allocation by prime numbers |
US20030235189A1 (en) * | 2002-06-04 | 2003-12-25 | Mathews Gregory S. | Pointer allocation by prime numbers |
US6754744B2 (en) * | 2002-09-10 | 2004-06-22 | Broadcom Corporation | Balanced linked lists for high performance data buffers in a network device |
EP1398922A2 (en) | 2002-09-10 | 2004-03-17 | Broadcom Corporation | Balanced linked lists for high performance data buffers in a network device |
US20040049613A1 (en) * | 2002-09-10 | 2004-03-11 | Broadcom Corporation | Balanced linked lists for high performance data buffers in a network device |
EP1398922A3 (en) * | 2002-09-10 | 2009-11-11 | Broadcom Corporation | Balanced linked lists for high performance data buffers in a network device |
US7295564B2 (en) * | 2003-01-06 | 2007-11-13 | Intel Corporation | Virtual output queue (VoQ) management method and apparatus |
US20040131069A1 (en) * | 2003-01-06 | 2004-07-08 | Jing Ling | Virtual output queue (VoQ) management method and apparatus |
US7450599B2 (en) * | 2003-02-08 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Apparatus and method for communicating with a network |
US20040156377A1 (en) * | 2003-02-08 | 2004-08-12 | Walls Jeffrey Joel | Apparatus and method for communicating with a network |
US8650278B2 (en) | 2003-08-15 | 2014-02-11 | Internet Associates, Llc | Generating displays of networking addresses |
US20090248897A1 (en) * | 2003-10-02 | 2009-10-01 | Dennis Joseph Boylan | Controlling The Status Of Network Address Space |
US7558881B2 (en) * | 2003-10-02 | 2009-07-07 | Internet Associates, Llc | Methods, computer systems, and computer readable media for controlling the status of network address space |
US9338128B2 (en) | 2003-10-02 | 2016-05-10 | Infoblox Inc. | Controlling the status of network address space |
US8825903B1 (en) | 2003-10-02 | 2014-09-02 | Infoblox Inc. | Controlling the status of network address space |
US20080140843A1 (en) * | 2003-10-02 | 2008-06-12 | Dennis Joseph Boylan | Methods, computer systems, and computer readable media for controlling the status of network address space |
US7330907B2 (en) * | 2003-10-02 | 2008-02-12 | Internet Associates, Llc | Methods, computer systems, and computer readable media for controlling the status of network address space |
US7739406B2 (en) | 2003-10-02 | 2010-06-15 | Internet Associates, Llc | Controlling the status of network address space |
US20050076144A1 (en) * | 2003-10-02 | 2005-04-07 | Internet Associates, Llc | Methods, computer systems, and computer readable media for controlling the status of network address space |
US20050141418A1 (en) * | 2003-12-08 | 2005-06-30 | Samsung Electronics Co., Ltd. | Ring buffer management system and ring buffer management method |
US20050198361A1 (en) * | 2003-12-29 | 2005-09-08 | Chandra Prashant R. | Method and apparatus for meeting a given content throughput using at least one memory channel |
US9256606B2 (en) | 2004-11-15 | 2016-02-09 | Commvault Systems, Inc. | Systems and methods of data storage management, such as dynamic data stream allocation |
US7802148B2 (en) * | 2005-02-23 | 2010-09-21 | Broadcom Corporation | Self-correcting memory system |
US20060187941A1 (en) * | 2005-02-23 | 2006-08-24 | Broadcom Corporation | Self-correcting memory system |
US8468538B2 (en) | 2006-12-22 | 2013-06-18 | Commvault Systems, Inc. | Systems and methods of data storage management, such as dynamic data stream allocation |
US20080288738A1 (en) * | 2006-12-22 | 2008-11-20 | Parag Gokhale | Systems and methods of data storage management, such as pre-allocation of storage space |
US20080288948A1 (en) * | 2006-12-22 | 2008-11-20 | Attarde Deepak R | Systems and methods of data storage management, such as dynamic data stream allocation |
US8832706B2 (en) | 2006-12-22 | 2014-09-09 | Commvault Systems, Inc. | Systems and methods of data storage management, such as dynamic data stream allocation |
US7831766B2 (en) * | 2006-12-22 | 2010-11-09 | Comm Vault Systems, Inc. | Systems and methods of data storage management, such as pre-allocation of storage space |
US20080288947A1 (en) * | 2006-12-22 | 2008-11-20 | Parag Gokhale | Systems and methods of data storage management, such as dynamic data stream allocation |
CN101339541B (en) * | 2008-08-11 | 2012-06-06 | 无锡中星微电子有限公司 | DMA data-transmission method and DMA controller |
US9658951B1 (en) | 2011-11-02 | 2017-05-23 | Marvell Israel (M.I.S.L) Ltd. | Scalable high bandwidth memory in a network device |
US9996468B1 (en) * | 2011-11-02 | 2018-06-12 | Marvell Israel (M.I.S.L) Ltd. | Scalable dynamic memory management in a network device |
US9063938B2 (en) | 2012-03-30 | 2015-06-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US10963422B2 (en) | 2012-03-30 | 2021-03-30 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9773002B2 (en) | 2012-03-30 | 2017-09-26 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9367548B2 (en) | 2012-03-30 | 2016-06-14 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US10108621B2 (en) | 2012-03-30 | 2018-10-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US10268402B2 (en) | 2012-03-30 | 2019-04-23 | Commvault Systems, Inc. | Shared network-available storage that permits concurrent data access |
US11494332B2 (en) | 2012-03-30 | 2022-11-08 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US11347408B2 (en) | 2012-03-30 | 2022-05-31 | Commvault Systems, Inc. | Shared network-available storage that permits concurrent data access |
US10895993B2 (en) | 2012-03-30 | 2021-01-19 | Commvault Systems, Inc. | Shared network-available storage that permits concurrent data access |
US9639297B2 (en) | 2012-03-30 | 2017-05-02 | Commvault Systems, Inc | Shared network-available storage that permits concurrent data access |
US9535776B2 (en) | 2014-02-27 | 2017-01-03 | Commvault Systems, Inc. | Dataflow alerts for an information management system |
US11513696B2 (en) | 2015-01-23 | 2022-11-29 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a data storage management system using media agent resources |
US10996866B2 (en) | 2015-01-23 | 2021-05-04 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a data storage management system using media agent resources |
US11323373B2 (en) | 2015-02-24 | 2022-05-03 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10938723B2 (en) | 2015-02-24 | 2021-03-02 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US11303570B2 (en) | 2015-02-24 | 2022-04-12 | Commvault Systems, Inc. | Dynamic management of effective bandwidth of data storage operations |
US10812387B2 (en) | 2015-02-24 | 2020-10-20 | Commvault Systems, Inc. | Dynamic management of effective bandwidth of data storage operations |
US10594610B2 (en) | 2015-02-24 | 2020-03-17 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US11711301B2 (en) | 2015-02-24 | 2023-07-25 | Commvault Systems, Inc. | Throttling data streams from source computing devices |
US10901887B2 (en) | 2018-05-17 | 2021-01-26 | International Business Machines Corporation | Buffered freepointer management memory system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6088745A (en) | Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space | |
US7058057B2 (en) | Network switch port traffic manager having configurable packet and cell servicing | |
US7058751B2 (en) | Packet switch | |
EP0622922B1 (en) | Method and device of multicasting data in a communications system | |
US5923660A (en) | Switching ethernet controller | |
US8401027B2 (en) | Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network | |
US7313142B2 (en) | Packet processing device | |
EP1421739B1 (en) | Transmitting multicast data packets | |
US5790545A (en) | Efficient output-request packet switch and method | |
JP5640234B2 (en) | Layer 2 packet aggregation and fragmentation in managed networks | |
US6791992B1 (en) | Earliest-deadline-first queuing cell switching architecture and method | |
US7649885B1 (en) | Network routing system for enhanced efficiency and monitoring capability | |
US7346067B2 (en) | High efficiency data buffering in a computer network device | |
US20130034098A1 (en) | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability | |
US7082104B2 (en) | Network device switch | |
US20050195845A1 (en) | Low cost implementation for a device utilizing look ahead congestion management | |
EP1061695B1 (en) | Method and apparatus for maintaining packet order integrity in a parallel switching engine | |
US7110405B2 (en) | Multicast cell buffer for network switch | |
WO2007113474A1 (en) | A method for congestion management of a network, a switch, and a network | |
AU2003218229B2 (en) | Packet scheduling mechanism | |
US7404058B2 (en) | Method and apparatus for avoiding collisions during packet enqueue and dequeue | |
US20040218592A1 (en) | Method and apparatus for fast contention-free, buffer management in a multi-lane communication system | |
WO2003055156A1 (en) | Adressing sequential data packets | |
USRE39026E1 (en) | Bus protocol | |
CN112615796A (en) | Queue management system considering storage utilization rate and management complexity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: XYLAN CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERTAGNA, DREW;NARSINH, ANEES;REEL/FRAME:010737/0531 Effective date: 19980317 |
|
AS | Assignment |
Owner name: ALCATEL, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALCATEL INTERNETWORKING, INC.;REEL/FRAME:013484/0292 Effective date: 20020102 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20080711 |