Búsqueda Imágenes Maps Play YouTube Noticias Gmail Drive Más »
Iniciar sesión
Usuarios de lectores de pantalla: deben hacer clic en este enlace para utilizar el modo de accesibilidad. Este modo tiene las mismas funciones esenciales pero funciona mejor con el lector.

Patentes

  1. Búsqueda avanzada de patentes
Número de publicaciónUS5644784 A
Tipo de publicaciónConcesión
Número de solicitudUS 08/398,439
Fecha de publicación1 Jul 1997
Fecha de presentación3 Mar 1995
Fecha de prioridad3 Mar 1995
TarifaPagadas
Número de publicación08398439, 398439, US 5644784 A, US 5644784A, US-A-5644784, US5644784 A, US5644784A
InventoresGregory A. Peek
Cesionario originalIntel Corporation
Exportar citaBiBTeX, EndNote, RefMan
Enlaces externos: USPTO, Cesión de USPTO, Espacenet
Linear list based DMA control structure
US 5644784 A
Resumen
Linear list based direct memory access (DMA) control structure for controlling a DMA processor through a linear list of DMA descriptors in memory. A descriptor entry is deposited at the end of the linear list. Each descriptor entry has an address associated with their location in the linear list. A pointer to the linear list points to a single location in the linear Fist. A next descriptor entry is accessed by decrementing the address corresponding to the single location. The descriptor entries are read from the linear list of DMA descriptors DMA transfers are performed.
Imágenes(7)
Previous page
Next page
Reclamaciones(21)
What is claimed:
1. A method for controlling a DMA controller through a linear list of DMA descriptors in memory, said method comprising the steps of:
writing descriptor entries in said linear list of DMA descriptors, each said descriptor entry being added at the end of said linear list in said memory; and
reading said descriptor entry from said linear list of DMA descriptors starting at an address pointed to by a descriptor list pointer, said reading being performed by the DMA controller, each descriptor entry being accessed by the DMA controller in the order said descriptor entries were written to said linear list.
2. The method of claim 1 wherein said step of reading further comprises the step of reading a descriptor control word associated with said descriptor entry.
3. The method of claim 1 further comprising the steps of:
reading a wrap bit; and
reading a new descriptor list pointer value from a descriptor list base pointer if said wrap bit is set to true.
4. The method of claim 3 further comprising the steps of:
reading a valid bit associated with said descriptor entry; and
reading a source address, a destination address and a length of data to be transferred associated with said descriptor entry if said valid bit is set to true.
5. The method of claim 4 further comprising the step of performing a DMA transfer.
6. An apparatus for controlling a DMA controller through a linear list of DMA descriptors in memory, said apparatus comprising:
a linear list of descriptor entries having a descriptor list pointer pointing to an address corresponding to one of said descriptor entries;
a CPU writing said descriptor entries in said linear list; and
a DMA controller reading said descriptor entries from said linear list, each said descriptor entry being accessed by said DMA controller in the order said descriptor entries were written to said linear list.
7. The apparatus of claim 6 wherein said descriptor entries comprises:
a control word;
a source address from which data is to be transferred; and
a destination address where said data is to be transferred.
8. The apparatus of claim 7 further comprising:
a valid bit to indicate whether said descriptor entries are valid;
a wrap bit to indicate whether there is a new beginning of said linear list; and
a length of said data to be transferred.
9. The apparatus of claim 6 wherein said DMA controller further comprises:
a descriptor list pointer pointing to an address in said linear list;
a comparator coupled to said descriptor list pointer, said comparator for monitoring new entries in said linear list;
a multiplexer coupled to said descriptor list pointer;
a length counter for holding length loaded from said descriptor entries;
a source address counter for holding source address loaded from said descriptor entries; and
a destination address counter for holding destination address loaded from said descriptor entries.
10. An apparatus for controlling a DMA controller through a linear list of DMA descriptors in memory, said apparatus comprising:
means for storing a linear list of descriptor entries having a descriptor list pointer pointing to an address corresponding to one of said descriptor entries;
means for writing said descriptor entries in said linear list; and
means for reading said descriptor entries from said linear list, each said descriptor entry being accessed by said DMA controller in the or linear list.
11. The apparatus of claim 10 wherein said descriptor entries comprises:
means for storing a control word;
means for storing a source address from which data is to be transferred; and
means for storing a destination address where said data is to be transferred.
12. The apparatus of claim 11 further comprising:
means for indicating whether said descriptor entries are valid;
means for indicating whether there is a new beginning of said linear list; and
means for storing a length of said data to be transferred.
13. The apparatus of claim 10 wherein said DMA controller further comprises:
means for pointing to an address in said linear list;
means for monitoring new entries in said linear list;
means for multiplexing coupled to said descriptor list pointer;
means for holding length loaded from said descriptor entries;
means for holding source address loaded from said descriptor
entries; and
means for holding destination address loaded from said descriptor entries.
14. A system for controlling a DMA controller through a linear list of DMA descriptors in memory, said system comprising:
a linear list of descriptor entries having a descriptor list pointer pointing to an address corresponding to one of said descriptor entries;
a CPU writing said descriptor entries in said linear list; and
a DMA controller reading said descriptor entries from said linear list, each said descriptor entry being accessed by said DMA controller in the order said descriptor entries were written to said linear list.
15. The system of claim 14 wherein said descriptor entries comprises:
a control word;
a source address from which data is to be transferred; and
a destination address where said data is to be transferred.
16. The system of claim 15 further comprising:
a valid bit to indicate whether said descriptor entries are valid;
a wrap bit to indicate whether there is a new beginning of said linear list; and
a length of said data to be transferred.
17. The system of claim 14 wherein said DMA controller further comprises:
a descriptor list pointer pointing to an address in said linear list;
a comparator coupled to said descriptor list pointer, said comparator for monitoring new entries in said linear list;
a multiplexer coupled to said descriptor list pointer;
a length counter for holding length loaded from said descriptor entries;
a source address counter for holding source address loaded from said descriptor entries; and
a destination address counter for holding destination address loaded from said descriptor entries.
18. A system for controlling a DMA controller through a linear list of DMA descriptors in memory, said system comprising:
means for storing a linear list of descriptor entries having a descriptor list pointer pointing to an address corresponding to one of said descriptor entries;
means for writing said descriptor entries in said linear list; and
means for reading said descriptor entries from said linear list, each said descriptor entry being accessed by said DMA controller in the order said descriptor entries were written to said linear list.
19. The system of claim 18 wherein said descriptor entries comprises:
means for storing a control word;
means for storing a source address from which data is to be transferred; and
means for storing a destination address where said data is to be transferred.
20. The system of claim 19 further comprising:
means for indicating whether said descriptor are valid;
means for indicating whether there is a new beginning of said linear list; and means for indicating a length of said data to be transferred.
21. The system of claim 18 wherein said DMA controller further comprises:
means for pointing to an address in said linear list;
means for monitoring new entries in said linear list;
means for multiplexing coupled to said descriptor list pointer;
means for holding length loaded from said descriptor entries;
means for holding source address loaded from said descriptor entries; and
means for holding destination address loaded from said descriptor entries.
Descripción
BACKGROUND OF THE INVENTION

(1) Field of the Invention

The invention relates to DMA (Direct Memory Access) control structures, more particularly, to the methods and apparatus for controlling a DMA processor through a linear list of DMA descriptors in memory.

(2) Prior Art

Advanced DMA controllers typically use a linked list in memory to chain together a sequence of DMA transfer descriptors. Although this makes efficient use of memory, this method requires a complex DMA controller capable of traversing a list. This method, therefore, can be a burden on the central processing unit (CPU) to update the list.

One simple method by which a DMA controller operates is where the microprocessor writes directly into the DMA controller using an input/output (I/O) access with a special command in the microprocessor's language. This method of controlling the DMA controller during an I/O transfer is fairly slow and requires the microprocessor to monitor and direct the DMA controller. Thus, the DMA controller sits in an idle state while the microprocessor is getting ready to give the DMA controller the next command.

FIG. 1 is a flow diagram illustrating the general steps followed by an exemplary prior art method. In this prior art method, a CPU takes direct control of the DMA. In step 100, the CPU reads a status register to determine if a DMA transfer Is complete. The CPU continues to read the status register until the DMA transfer is complete, then in step 102, the DMA controller is checked to see if it is an idle state. In step 104, the CPU writes a control word to the DMA's mode register which describes the set-up of the DMA controller such as the width of the data being transferred. In step 106, the CPU writes the source address from which the data is being transferred from to a source address register, and in step 108 the CPU writes the destination address to which the data is being transferred to a destination address register.

In step 110, the CPU writes to a length register and in step 112, the CPU writes a start command to the DMA controller. In step 114, the DMA controller begins performing a DMA transfer. In step 116, when the DMA controller completes its DMA transfer, the DMA controller clears the status register to indicate to the CPU that the DMA transfer is complete. In this prior art method, the CPU must continuously monitor the DMA start and end activities by polling the status register and must execute various commands to write registers creating an inefficient use of CPU time.

FIG. 2 illustrates a prior art method using a more advanced DMA controller. Linked descriptors in memory 200 are pointed to by first descriptor pointer/internal register 202. The DMA controller reads commands from the CPU which the CPU has deposited into the memory for the DMA controller to fetch. The deposited descriptors are entered in the linked list in the memory.

With advanced DMA controllers, the microprocessor creates a table of commands, typically a linked list. The microprocessor may write a starting address to the DMA controller which points into the memory where the microprocessor has chosen to insert a starting address, a length, a destination address and a source address. Thus, the commands are linked together, for example with a link to a memory space containing a zero to indicate the end of the list. A drawback to this method is that in order for the microprocessor to update this linked list, it must spend time calculating the offset to the next block of instructions. The microprocessor must then insert the new pointer to the next block of instructions.

There is a great need for a more efficient method of updating DMA controller entries in memory, which dispenses with the need for the CPU to continuously monitor and poll the DMA activities. In addition to saving CPU time, such a method should save the DMA controller time by allowing for a more efficient method of reading new descriptor entries.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a method for controlling a DMA process through a linear list of DMA descriptors in memory. The CPU writes descriptor entries into the linear list of DMA descriptors in the memory, and a DMA controller reads the descriptor entries from the linear list of DMA descriptors to perform DMA transfers. The present invention may be especially applicable with a CPU which supports burst memory transfers, such as the Intel i1960 Microprocessor.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary flow chart illustrating the general steps followed using a prior art method of direct CPU control of DMA.

FIG. 2 illustrates an exemplary prior art method of DMA control using a memory structure.

FIG. 3 is a flow diagram illustrating the general steps followed in an implementation of the DMA control structure of the present invention.

FIG. 4 illustrates a system block diagram with an exemplary DMA control structure used in the present invention.

FIG. 5 illustrates a block diagram of DMA controller 400 referenced in FIG. 4.

FIG. 6 is an exemplary linear list which may be used in the present invention.

FIG. 7 illustrates an additional feature which may be implemented in the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Apparatus and methods for controlling a DMA controller through a linear list of DMA descriptors in memory is disclosed. The present invention makes efficient use of CPU burst transfers such as provided by an Intel i960 Microprocessor, to update a linear list of DMA control entries in memory using a single, efficient memory transfer. The DMA controller is simplified, as it only has to decrement a pointer to read the next entry in the descriptor list, rather than follow a linked list as has been done in prior art methods. Further, the DMA controller of the present invention automatically detects updates to the list, eliminating CPU and/or bus overhead.

FIG. 3 is a flow diagram illustrating the general steps followed by the method of the present invention. In step 300, the DMA controller is in an idle state. When the CPU bursts a new descriptor entry to memory in step 302, the DMA controller detects this in step 304. In step 306, the DMA controller reads the memory location where the new descriptor entry has been deposited and reads the descriptor entry from the memory. In step 308, the DMA controller checks the descriptor entry to see if the descriptor entry has it's valid bit set.

If the descriptor entry has its valid bit set, then in step 310, the DMA controller decrements the descriptor pointer and reads the source address and the destination address for the DMA. The DMA controller continues to decrement the pointer pointing to various locations in memory, and continues therefore to point to the next descriptor entry. In step 312, once the descriptor entry is pointing to the control word of the next descriptor entry, the DMA transfer is executed. Once the DMA transfer is completed, the DMA controller reads the descriptor entry from a place in memory where it was last pointing to and checks to see if the descriptor entry is a valid descriptor entry (i.e. whether the valid bit is set).

Back in step 308, if the descriptor entry does not have its valid bit set, then the DMA controller returns to the idle state. If on the other hand, the CPU is queued up and several DMA's will be transferred, the valid bit is set. The DMA controller then fetches the next descriptor entry and performs another DMA transfer. The DMA controller continues through this loop as long as there is a valid bit set in the descriptor entry. At the end of the descriptor list, the valid bit will not be set and the DMA controller will return to idle state 300.

FIG. 4 illustrates a block diagram of the system of the present invention. DMA controller 400, CPU 402 and memory 404 are all coupled to system bus 406. DMA controller 400 includes descriptor pointer 408, length register 410, destination pointer 412, and source pointer 414. CPU 402 contains next descriptor register 416. Memory 404 contains descriptor list 418. In memory 404, for the sake of illustration, only descriptor list 418 is illustrated. For this example, descriptor list 418 begins at address 70025 and ends at address 70019 where the valid bit is set to false.

A CPU such as an Intel i960 can transfer a burst of four thirty-two-bit words using one instruction. The entries in the table of DMA transfer descriptors are arranged such that a complete descriptor entry plus the control word of the descriptor entry fall within four words. Thus, CPU 402 can fill an entry plus set a valid status bit for the current entry and invalid/false status bit for the next entry using one transfer instruction. The data and descriptor list 418 is ordered such that DMA controller 400 cannot mistake a partially completed descriptor entry for a valid entry. When DMA controller reaches the end of descriptor list 418, DMA controller 400 stops fetching from descriptor list 418 and snoops the address bus for a write to the current location of the linear list pointer. If DMA controller 400 sees a match and detects that a new entry may have been deposited, DMA controller 400 rereads that location and rechecks the valid bit.

In the illustration, DMA controller 400 has Its descriptor pointer 408 pointing to address 70025. DMA controller 400 will therefore fetch that location and the valid bit will be set to true in address 70025. The length count in address 70025 is then inserted into length register 410 of DMA controller 400. DMA controller 400 then decrements its descriptor pointer 408 to 70024 and fetches source pointer 414. Next, DMA controller 400 decrements its descriptor pointer 408 to 70023 and fetches destination pointer 412. DMA controller 400 decrements its descriptor pointer 408 to 70022 so that it will be prepared for the next set of descriptor fetches. DMA controller 400 then proceeds to execute the DMA transfer as specified in its length counter 410, destination pointer 412, and source pointer 414. When this DMA transfer has completed, DMA controller 400 begins to fetch the next descriptor beginning at the location in its descriptor pointer, address 70022.

If CPU 402 has a new descriptor entry it wants to insert into memory, the valid bit of address 70016 is set to false to create a new end of the table. CPU 402 then fills in addresses 70017 and 70018 with the source and destination pointers. At address 70019, CPU 402 writes a new control word with the length of 11 bits and a valid bit set to true. Thus, when the DMA is at address 70019, DMA controller 400 sees the valid bit set to true, and DMA controller 400 performs the DMA transfer.

FIG. 5 illustrates a block diagram of DMA controller 400 referenced in FIG. 4. Descriptor list pointer down counter 504 (descriptor list pointer) is coupled to descriptor list base pointer 505, comparator 500 and MUX 506. Length down counter 510, source address up counter 512 and destination address up counter 514 are coupled to data bus 508.

Descriptor list pointer 504 is written with an initial value by the CPU 402 which represents the address of the start of the descriptor list 418 in memory 404. Descriptor list pointer down counter 504 is coupled to comparator 500. When the address pointed to by pointer 504 matches the address in address bus 502, comparator 500 determines that CPU 402 is depositing a new descriptor entry in descriptor list 418 and comparator 500 has a snoop hit. With this snoop hit, DMA controller 400 begins fetching a descriptor entry from memory 404.

Descriptor list pointer down counter 504 is also coupled to multiplexer (MUX) 506. The address held in description list pointer down counter 504 is loaded onto address bus 502 through MUX 506. Memory 404 then responds with a control word containing a valid bit and a length on data bus 508. If this valid bit is true, the length count is loaded into length counter 510 from data bus 508. If the valid bit is false, DMA controller 400 stops fetching and waits for comparator 500 to detect a snoop hit. Once data bus 508 loads length counter 510, descriptor list pointer 504 is decremented. The decremented address, is loaded onto address bus 502 through MUX 506. Memory 404 then responds with a source address which is loaded in source address counter 512. Descriptor list pointer down counter 504 is decremented again, and the address in descriptor list pointer 504 is then loaded onto address bus 502. Memory 504 responds with loading data on data bus 508 which goes to destination address up counter 514. Descriptor list pointer down counter 504 is then decremented once more and is now pointing to the next descriptor entry. The length, source and destination addresses have now been loaded and DMA controller may commence its normal standard DMA operation.

FIG. 6 illustrates an exemplary linear list which may be implemented in the present invention. Each descriptor entry N, N+1 . . . in linear list (descriptor list) 418 contains source address 420, destination address 422 and a control word which contains length count 424 and valid bit 426. Each time CPU 402 writes a descriptor to memory 404, the first word written is the control word 424 for the next descriptor with the valid bit 426 equaled to false. The next two words are destination address 422 and source address 420.

The last word written is the control word for the current descriptor entry, this control word contains command information, such as the type of the DMA transfer and length count 424 plus valid bit 426 set to true. CPU 402 writes descriptor entries from some address X to X+1, X+2, X+3 and so on. For example, a thirty-two-bit Intel® processor with a CPU burst cycle writes entries into memory in that order.

At address X, for example, CPU 402 sets a valid bit to false to mark the end of the list. DMA control 400 reads from a high address, for example, in this case from address X+9 down toward the low address one after another in a linear fashion but in reverse order fetching descriptor information straight from the high addresses towards the low addresses. Typically, memory systems do not burst in reverse, therefore DMA controller 400 reads words one at a time.

The DMA method of the present invention may be used in an intelligent 100 Mb/second Network PCI bus adapter to transfer data between host memory and local adapter memory. Through-put is a very important criteria of for example, 100 Mb Network adapters or embedded controllers. By using this method, overall throughput of a card over classic DMA control methods may be improved.

FIG. 7 illustrates an additional feature which may be implemented in the present invention. In this embodiment of the present invention, linear list 418 may also have wrap bit 427 along with valid bit 426. Wrap bit 427 indicates the end of the list when it is set to true. If the list is at its end when the DMA reads the control word, instead of fetching for more information and executing the DMA, a descriptor list pointer from descriptor list base pointer 409 is reloaded. This descriptor list pointer contains the address which becomes the new beginning of the list.

What has been described is a method and apparatus for controlling a DMA controller through a linear list of DMA descriptors in memory. The present invention reduces the overhead required of the CPU, simplifies the DMA controller and improves bus bandwidth utilization.

While certain exemplary embodiments have been described in detail and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention is not to be limited to the specific arrangements and constructions shown and described, since various other modifications may occur to those with ordinary skill in the art.

Citas de patentes
Patente citada Fecha de presentación Fecha de publicación Solicitante Título
US5155830 *23 May 198913 Oct 1992Kabushiki Kaisha ToshibaData processing system capable of performing a direct memory access transfer of data stored in a physical area in a memory
US5251303 *13 Ene 19895 Oct 1993International Business Machines CorporationSystem for DMA block data transfer based on linked control blocks
US5367639 *30 Dic 199122 Nov 1994Sun Microsystems, Inc.Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
US5448702 *2 Mar 19935 Sep 1995International Business Machines CorporationAdapters with descriptor queue management capability
Citada por
Patente citante Fecha de presentación Fecha de publicación Solicitante Título
US5911054 *29 Abr 19978 Jun 1999Hewlett Packaged CompanySingle-operation list entry update method in mixed bus environments
US5920564 *30 Abr 19976 Jul 1999International Business Machines CorporationMethod and apparatus for direct memory access on transmit complete
US5930480 *10 Oct 199627 Jul 1999Apple Computer, Inc.Method of controlling a data stream in a computer system
US6058438 *6 Feb 19982 May 2000Hewlett-Packard CompanyMethod and apparatus for performing high speed data transfers between a host memory and a geometry accelerator of a graphics machine
US6185634 *27 Sep 19966 Feb 2001Emc CorporationAddress triggered DMA controller with an indicative signal including circuitry for calculating a new trigger address value based on the sum of the current trigger address and the descriptor register data with a trigger address register
US620210719 Nov 199813 Mar 2001Sun Microsystems, Inc.Host controller interface descriptor fetching unit
US6324597 *11 Ene 200127 Nov 2001Sun Microsystems, Inc.Host controller interface descriptor fetching unit
US633593230 Jun 19991 Ene 2002Broadcom CorporationHigh performance self balancing low cost network switching architecture based on distributed hierarchical shared memory
US633593530 Jun 19991 Ene 2002Broadcom CorporationNetwork switching architecture with fast filtering processor
US643018819 Jul 20006 Ago 2002Broadcom CorporationUnified table for L2, L3, L4, switching and filtering
US6449666 *31 Dic 199810 Sep 2002Lsi Logic CorporationOne retrieval channel in a data controller having staging registers and a next pointer register and programming a context of a direct memory access block
US6499077 *30 Dic 199924 Dic 2002Intel CorporationBus interface unit for reflecting state information for a transfer request to a requesting device
US653551019 Jun 200118 Mar 2003Broadcom CorporationSwitch fabric with path redundancy
US656022930 Jun 19996 May 2003Broadcom CorporationNetwork switching architecture with multiple table synchronization, and forwarding of both IP and IPX packets
US656741719 Jun 200120 May 2003Broadcom CorporationFrame forwarding in a switch fabric
US6601116 *26 Jul 199929 Jul 2003Marvell Semiconductor Israel Ltd.Network switch having descriptor cache and method thereof
US66432612 Nov 20014 Nov 2003Broadcom CorporationHigh performance self balancing low cost network switching architecture based on distributed hierarchical shared memory
US666575623 Dic 200216 Dic 2003Intel CorporationBus interface unit for reflecting state information for a transfer request to a requesting device
US66786788 Mar 200113 Ene 2004Braodcom CorporationMethod and apparatus for high speed table search
US673883315 May 200218 May 2004Broadcom CorporationNetwork device having a flexible EEPROM for setting configuration settings
US67388386 Jun 200318 May 2004Marvell International, Ltd.Network switch having descriptor cache and method thereof
US675474410 Sep 200222 Jun 2004Broadcom CorporationBalanced linked lists for high performance data buffers in a network device
US677223721 Nov 20013 Ago 2004Sun Microsystems, Inc.Host controller interface descriptor fetching unit
US678189830 Oct 200224 Ago 2004Broadcom CorporationSelf-repairing built-in self test for linked list memories
US678246520 Oct 199924 Ago 2004Infineon Technologies North America CorporationLinked list DMA descriptor architecture
US679544719 Mar 200221 Sep 2004Broadcom CorporationHigh performance self balancing low cost network switching architecture based on distributed hierarchical shared
US681362027 Feb 20022 Nov 2004Broadcom CorporationBinary search engine and method
US681691810 Abr 20029 Nov 2004Broadcom CorporationFlexible apparatus for setting configurations using an EEPROM
US682656122 May 200130 Nov 2004Broadcom CorporationMethod and apparatus for performing a binary search on an expanded tree
US68393497 Dic 20004 Ene 2005Broadcom CorporationMirroring in a stacked network switch configuration
US68505423 Ago 20011 Feb 2005Broadcom CorporationLinked network switch configuration
US685100016 Mar 20011 Feb 2005Broadcom CorporationSwitch having flow control management
US685945415 Nov 200022 Feb 2005Broadcom CorporationNetwork switch with high-speed serializing/deserializing hazard-free double data rate switching
US68740397 Sep 200129 Mar 2005Intel CorporationMethod and apparatus for distributed direct memory access for systems on chip
US687665319 Ago 20025 Abr 2005Broadcom CorporationFast flexible filter processor based architecture for a network device
US691754820 Jul 200412 Jul 2005Broadcom CorporationSelf-repairing built-in self test for linked list memories
US694139228 Abr 20046 Sep 2005Marvell Semiconductor Israel Ltd.Buffer switch having descriptor cache and method thereof
US69504306 Nov 200227 Sep 2005Broadcom CorporationSwitch fabric with path redundancy
US698817716 May 200117 Ene 2006Broadcom CorporationSwitch memory management using a linked list structure
US699302717 Mar 200031 Ene 2006Broadcom CorporationMethod for sending a switch indicator to avoid out-of-ordering of frames in a network switch
US69935989 Oct 200331 Ene 2006International Business Machines CorporationMethod and apparatus for efficient sharing of DMA resource
US699945529 Jun 200114 Feb 2006Broadcom CorporationHardware assist for address learning
US700996811 Jun 20017 Mar 2006Broadcom CorporationGigabit switch supporting improved layer 3 switching
US700997328 Feb 20017 Mar 2006Broadcom CorporationSwitch using a segmented ring
US701053518 Oct 20047 Mar 2006Broadcom CorportionBinary search engine and method
US702013723 Oct 200128 Mar 2006Broadcom CorporationNetwork switching architecture with fast filtering processor
US702013911 Jun 200128 Mar 2006Broadcom CorporationTrunking and mirroring across stacked gigabit switches
US702016615 Mar 200128 Mar 2006Broadcom CorporationSwitch transferring data using data encapsulation and decapsulation
US7028023 *26 Sep 200211 Abr 2006Lsi Logic CorporationLinked list
US703130229 Jun 200018 Abr 2006Broadcom CorporationHigh-speed stats gathering in a network switch
US70352553 Ago 200125 Abr 2006Broadcom CorporationLinked network switch configuration
US703528631 Ago 200125 Abr 2006Broadcom CorporationLinked network switch configuration
US704667911 Jun 200116 May 2006Broadcom CorporationGigabit switch with frame forwarding and address learning
US705043011 Jun 200123 May 2006Broadcom CorporationGigabit switch with fast filtering processor
US705043115 Dic 200423 May 2006Broadcom CorporationLinked network switch configuration
US7058735 *2 Jun 20036 Jun 2006Emulex Design & Manufacturing CorporationMethod and apparatus for local and distributed data memory access (“DMA”) control
US707288515 Oct 20044 Jul 2006Broadcom CorporationMethod and apparatus for performing a binary search on an expanded tree
US707593911 Jun 200111 Jul 2006Broadcom CorporationFlexible header protocol for network switch
US70821331 Sep 200025 Jul 2006Broadcom CorporationApparatus and method for enabling voice over IP support for a network switch
US709931711 Jun 200129 Ago 2006Broadcom CorporationGigabit switch with multicast handling
US710305325 Abr 20015 Sep 2006Broadcom CorporationGigabit switch on chip architecture
US710305518 Jun 20025 Sep 2006Broadcom CorporationUnified table for L2, L3, L4, switching and filtering
US710673418 Abr 200312 Sep 2006Broadcom CorporationNetwork switching architecture with multiple table synchronization, and forwarding of both IP and IPX packets
US710673611 Jun 200112 Sep 2006Broadcom CorporationGigabit switch supporting multiple stacking configurations
US712011729 Ago 200010 Oct 2006Broadcom CorporationStarvation free flow control in a shared memory switching device
US71201556 Abr 200110 Oct 2006Broadcom CorporationSwitch having virtual shared memory
US712694722 Jun 200124 Oct 2006Broadcom CorporationSwitch having external address resolution interface
US713100111 Oct 200031 Oct 2006Broadcom CorporationApparatus and method for secure filed upgradability with hard wired public key
US713638119 Jun 200114 Nov 2006Broadcom CorporationMemory management unit architecture for switch fabric
US713694318 Mar 200414 Nov 2006International Business Machines CorporationMethod and apparatus for managing context switches using a context switch history table
US713926911 Jun 200121 Nov 2006Broadcom CorporationCascading of gigabit switches
US714329411 Oct 200028 Nov 2006Broadcom CorporationApparatus and method for secure field upgradability with unpredictable ciphertext
US715554114 Ene 200526 Dic 2006Intel CorporationTables with direct memory access descriptor lists for distributed direct memory access
US719459318 Sep 200320 Mar 2007Micron Technology, Inc.Memory hub with integrated non-volatile memory
US7219170 *4 Dic 200315 May 2007Intel CorporationBurst transfer register arrangement
US722219724 Feb 200522 May 2007Micron Technology, Inc.Apparatus and method for direct memory access in a hub-based memory system
US7225278 *15 Abr 200429 May 2007Xilinx, Inc.Method and apparatus for controlling direct access to memory circuitry
US722786218 Sep 20015 Jun 2007Broadcom CorporationNetwork switch having port blocking capability
US72605655 Ene 200421 Ago 2007Broadcom CorporationMethod and apparatus for high speed table search
US726068815 Abr 200421 Ago 2007Xilinx, Inc.Method and apparatus for controlling access to memory circuitry
US727470517 May 200125 Sep 2007Broadcom CorporationMethod and apparatus for reducing clock speed and power consumption
US73155527 May 20031 Ene 2008Broadcom CorporationFrame forwarding in a switch fabric
US732450926 Feb 200229 Ene 2008Broadcom CorporationEfficient optimization algorithm in memory utilization for network applications
US73399388 Dic 20044 Mar 2008Broadcom CorporationLinked network switch configuration
US73559705 Oct 20018 Abr 2008Broadcom CorporationMethod and apparatus for enabling access on a network switch
US736620813 Ene 200529 Abr 2008BroadcomNetwork switch with high-speed serializing/deserializing hazard-free double data rate switch
US738936422 Jul 200317 Jun 2008Micron Technology, Inc.Apparatus and method for direct memory access in a hub-based memory system
US741502231 Jul 200619 Ago 2008Broadcom CorporationNetwork switching architecture with multiple table synchronization, and forwarding of both IP and IPX packets
US742097724 May 20012 Sep 2008Broadcom CorporationMethod and apparatus of inter-chip bus shared by message passing and memory access
US742401231 Ago 20019 Sep 2008Broadcom CorporationLinked network switch configuration
US742455315 Abr 20049 Sep 2008Xilinx, Inc.Method and apparatus for communicating data between a network transceiver and memory circuitry
US742864420 Jun 200323 Sep 2008Micron Technology, Inc.System and method for selective memory module power management
US743757911 May 200614 Oct 2008Micron Technology, Inc.System and method for selective memory module power management
US746419714 Ene 20059 Dic 2008Intel CorporationDistributed direct memory access for systems on chip
US7480310 *23 Nov 200420 Ene 2009Broadcom CorporationFlexible DMA descriptor support
US748074115 Oct 200420 Ene 2009Broadcom CorporationFlexible apparatus for setting configurations using an EEPROM
US74902113 May 200610 Feb 2009Micron Technology, Inc.Memory hub with integrated non-volatile memory
US751905912 Abr 200614 Abr 2009Broadcom CorporationSwitch fabric with memory management unit for improved flow control
US7523284 *10 Ago 200421 Abr 2009American Megatrends, Inc.Method and apparatus for providing memory management within a system management mode
US75292529 Mar 20045 May 2009Broadcom CorporationWeighted queuing scheme for managing datagrams within a network device using single port double buffer (ping-pong) memory
US7529904 *31 Mar 20045 May 2009International Business Machines CorporationStoring location identifier in array and array pointer in data structure for write process management
US753913413 Nov 200026 May 2009Broadcom CorporationHigh speed flow control methodology
US757714815 May 200618 Ago 2009Broadcom CorporationApparatus and method for enabling Voice Over IP support for a network switch
US759340321 Sep 200422 Sep 2009Broadcom CorporationStacked network switch configuration
US759395317 Nov 200022 Sep 2009Broadcom CorporationTable lookup mechanism for address resolution
US761027110 Sep 200427 Oct 2009Broadcom CorporationMethod and apparatus for performing a binary search on an expanded tree
US7610413 *3 Feb 200527 Oct 2009Solarflare Communications, Inc.Queue depth management for communication between host and peripheral device
US76138768 Jun 20063 Nov 2009Bitmicro Networks, Inc.Hybrid multi-tiered caching storage system
US7620748 *6 Abr 200617 Nov 2009Bitmicro Networks, Inc.Hardware assisted non-volatile memory-to-input/output direct memory access (DMA) transfer
US763466511 Oct 200615 Dic 2009Broadcom CorporationApparatus and method for secure field upgradability with unpredictable ciphertext
US764348125 Feb 20055 Ene 2010Broadcom CorporationNetwork switch having a programmable counter
US765690716 Ago 20072 Feb 2010Broadcom CorporationMethod and apparatus for reducing clock speed and power consumption
US767592421 Jul 20069 Mar 2010Broadcom CorporationGigabit switch on chip architecture
US7698473 *5 Ene 200513 Abr 2010Sony Computer Entertainment Inc.Methods and apparatus for list transfers using DMA transfers in a multi-processor system
US77109547 Jun 20064 May 2010Broadcom CorporationCascading of gigabit switches
US77153282 Nov 200411 May 2010Broadcom CorporationMirroring in a stacked network switch configuration
US771638917 Mar 200611 May 2010Bitmicro Networks, Inc.Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions
US77200559 Mar 200418 May 2010Broadcom CorporationMethod for handling IP multicast packets in network switch
US772101422 Mar 200418 May 2010Broadcom CorporationNetwork device having a flexible EEPROM for setting configuration settings
US774685423 Feb 200529 Jun 2010Broadcom CorporationFast flexible filter processor based architecture for a network device
US778289129 Oct 200724 Ago 2010Broadcom CorporationNetwork switch memory interface configuration
US779210430 Jul 20087 Sep 2010Broadcom CorporationLinked network switch configuration
US779661221 Dic 200514 Sep 2010Broadcom CorporationGigabit switch with frame forwarding and address learning
US781853323 Mar 200919 Oct 2010International Business Machines CorporationStoring location identifier in array and array pointer in data structure for write process management
US784077313 Mar 200923 Nov 2010American Megatrends, Inc.Providing memory management within a system management mode
US785601527 Abr 200721 Dic 2010Broadcom CorporationNetwork switch having port blocking capability
US78694111 Jun 200611 Ene 2011Broadcom CorporationCompact packet operation device and method
US7894094 *22 Sep 200422 Feb 2011Xerox CorporationSystem and method for image rotation
US796643030 Abr 200821 Jun 2011Round Rock Research, LlcApparatus and method for direct memory access in a hub-based memory system
US797096111 Nov 200828 Jun 2011Intel CorporationMethod and apparatus for distributed direct memory access for systems on chip
US797428424 Jun 20045 Jul 2011Broadcom CorporationSingle and double tagging schemes for packet processing in a network device
US797512228 Ene 20095 Jul 2011Round Rock Research, LlcMemory hub with integrated non-volatile memory
US802734121 Jul 200627 Sep 2011Broadcom CorporationSwitch having external address resolution interface
US802815231 Oct 200727 Sep 2011The Invention Science Fund I, LlcHierarchical multi-threading processor for executing virtual threads in a time-multiplexed fashion
US803728831 Oct 200711 Oct 2011The Invention Science Fund I, LlcHybrid branch predictor having negative ovedrride signals
US808157021 May 200920 Dic 2011Broadcom CorporationHigh speed flow control methodology
US80865715 Ago 200927 Dic 2011Broadcom CorporationTable lookup mechanism for address resolution
US81653014 Abr 200624 Abr 2012Bitmicro Networks, Inc.Input-output device and storage controller handshake protocol using key exchange for data security
US820944520 Jun 201126 Jun 2012Round Rock Research, LlcApparatus and method for direct memory access in a hub-based memory system
US826641231 Oct 200711 Sep 2012The Invention Science Fund I, LlcHierarchical store buffer having segmented partitions
US82749717 Abr 200925 Sep 2012Broadcom CorporationSwitch fabric with memory management unit for improved flow control
US827597631 Oct 200725 Sep 2012The Invention Science Fund I, LlcHierarchical instruction scheduler facilitating instruction replay
US829655031 Oct 200723 Oct 2012The Invention Science Fund I, LlcHierarchical register file with operand capture ports
US838666528 Jun 201126 Feb 2013Intel CorporationMethod and apparatus for distributed direct memory access for systems on chip
US841157430 Ago 20062 Abr 2013Broadcom CorporationStarvation free flow control in a shared memory switching device
US856080414 Sep 201015 Oct 2013Bitmicro Networks, Inc.Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US858964322 Dic 200519 Nov 2013Round Rock Research, LlcArbitration system and method for memory responses in a hub-based memory system
US871946530 Ene 20136 May 2014Intel CorporationMethod and apparatus for distributed direct memory access for systems on chip
US87887258 May 201322 Jul 2014Bitmicro Networks, Inc.Multilevel memory bus system for solid-state mass storage
WO2000031649A1 *10 Nov 19992 Jun 2000Sun Microsystems IncHost controller interface descriptor fetching unit
WO2001001724A2 *30 Jun 20004 Ene 2001Broadcom CorpMethod and network switch for constructing an address table in a network switch
WO2001029656A2 *20 Oct 200026 Abr 2001Infineon Technologies CorpLinked list dma descriptor architecture
WO2003023625A1 *30 Ago 200220 Mar 2003Intel CorpMethod and apparatus for distributed direct memory access for systems on chip
WO2004109432A2 *7 May 200416 Dic 2004Emulex Design & Mfg CorpMethod and apparatus for local and distributed data memory access ('dma') control
Clasificaciones
Clasificación de EE.UU.710/24, 710/35
Clasificación internacionalG06F13/28
Clasificación cooperativaG06F13/28
Clasificación europeaG06F13/28
Eventos legales
FechaCódigoEventoDescripción
24 Dic 2008FPAYFee payment
Year of fee payment: 12
3 Ene 2005FPAYFee payment
Year of fee payment: 8
23 Ene 2001REMIMaintenance fee reminder mailed
29 Dic 2000FPAYFee payment
Year of fee payment: 4
8 Dic 1998CCCertificate of correction
3 Mar 1995ASAssignment
Owner name: INTEL CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PEEK, GREGORY A.;REEL/FRAME:007370/0142
Effective date: 19950301