US6920529B2

Transferring data between cache memory and a media access controller

Summary by NHIP

Direct Cache-to-MAC Data Transfer

The coprocessor transfers network packets between media access controllers and cache memory without accessing main memory. A streaming output engine moves data from the reception media access controller to cache, while a streaming input engine moves data from cache to the transmission media access controller in single operations.

Claim Score by NHIP

Read claim 29, the broadest

Abstract

A coprocessor transfers data between media access controllers and a set of cache memory without accessing main memory. The coprocessor includes a reception media access controller that receives data from a network and a transmission media access controller that transmits data to a network. A streaming output data transfer engine in the coprocessor transfers data from the reception media access controller to cache memory. A streaming input data transfer engine in the coprocessor transfers data from cache memory to the transmission media access controller. The coprocessor's data transfer engines transfer data between cache memory and the media access controllers in a single data transfer operation—eliminating the need to store data in an intermediary memory location between the cache memory and data transfer engines. In one implementation, the coprocessor is employed in a compute engine that performs different network services, including but not limited to: 1) virtual private networking; 2) secure sockets layer processing; 3) web caching; 4) hypertext mark-up language compression; 5) virus checking; 6) firewall support; and 7) web switching.

US6920529B2, drawing sheet 1
Sheet 1 of 26

Term

Term ended

Expired 16 April 2022, 4.4 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

55 claims: 7 independent, 48 dependent

  1. 1
    A method for transferring a network packet from a reception media access controller engine within a network device to a set of at least one cache memory within the network device, wherein a data transfer engine couples said reception media access controller engine to said set of cache memory, said method comprising the steps of:(a) receiving the packet with the reception media access controller engine from a packet-based network external to the network device;(b) transferring said network packet from said reception media access controller engine to said data transfer engine;and (c) transferring said network packet from said data transfer engine into said set of cache memory, wherein said data is received from said packet-based network and transferred from said reception media access controller engine to said data transfer engine and transferred to said set of cache memory in said steps (b) and (c) without said data being stored in a main memory prior to transfer to said set of cache memory.
  2. 18
    A method for transferring a network packet from a set of at least one cache memory within a network device to a transmission media access controller engine within the network device, wherein a data transfer engine couples said set of cache memory to said transmission media access controller engine, said method comprising the steps of:(a) transferring said network packet from said set of cache memory to said data transfer engine;and (b) transferring said network packet from said data transfer engine to said transmission media access controller engine for output to a packet-based network external to the network device in accordance with a network protocol, wherein said network packet in said set of cache memory is transferred from said set of cache memory to said data transfer engine in step (a) and transferred to said transmission media access controller engine in said step (b) without said data packet being stored in a main memory.
  3. 29
    Broadest claimClaim Score 54, average(NHIP)A network apparatus for transferring a network packet between a communications medium interface and a set of at least one cache memory, said apparatus comprising:media access controller means for receiving said network packet from a packet-based network via said communications medium interface;and data transfer means coupled to said set of cache memory and said media access controller means for receiving said network packet from said media access controller means and transferring said network packet from said data transfer means to said set of cache memory, wherein said data transfer means transfers data from said data transfer means to said set of cache memory in a single memory transfer wherein said data transfer means transfers said network packet from said data transfers means to said set of cache memory without said network packet being stored in a main memory.
  4. 36
    A network apparatus for transferring a network packet between a communications medium interface and a set of at least one cache memory, said apparatus comprising:media access controller means for transmitting said network packet to said communications medium interface for output to a packet-based network;and data transfer means coupled to said set of cache memory and said media access controller means for retrieving said network packet from said set of cache memory and transferring said network packet from said data transfer means to said media access controller means, wherein said data transfer means transfers data from said set of cache memory to said data transfer means in a single memory transfer operation, and wherein said data transfer means transfers said network packet in said set of cache memory from said set of cache memory to said data transfer means without said network packet being stored in any set of memory other than said set of cache memory.
  5. 41
    A processor readable storage medium having processor readable code embodied on said processor readable storage medium, said processor readable code for programming a processor to perform a method for transferring a network packet from a reception media access controller engine to at least one set of cache memory, wherein a data transfer engine couples said reception media access controller engine to said set of cache memory, said method comprising the steps of:(a) transferring said network packet from said reception media access controller engine coupled to a packet-based network to said data transfer engine;and (b) transferring said network packet from said data transfer engine into said set of cache memory, wherein said network packet is not transferred from said data transfer engine to any set of memory prior to said network packet being transferred to said set of cache memory.
  6. 47
    A processor readable storage medium having processor readable code embodied on said processor readable storage medium, said processor readable code for programming a processor to perform a method for transferring a network packet from a set of at least one cache memory to a transmission media access controller engine coupled to a packet-based network, wherein a data transfer engine couples said set of cache memory to said transmission media access controller engine, said method comprising the steps of:(a) transferring said network packet from said set of cache memory to said data transfer engine;and (b) transferring said network packet said data transfer engine to said transmission media access controller engine for output to said packet-based network in accordance with a network protocol, wherein said data in said set of cache memory is transferred from said set of cache memory to said data transfer engine in said step (a) without said data being stored in any set of memory other than said set of cache memory.
  7. 52
    A processor readable storage medium having processor readable code embodied on said processor readable storage medium, said processor readable code for programming a processor to perform a method for transferring first data for a first network packet from a reception media access controller engine to a set of at least one cache memory, wherein a first data transfer engine couples said reception media access controller engine to said set of cache memory and for transferring second data for a second packet from a set of cache memory to a transmission media access controller engine, said method comprising the steps of:(a) receiving said first network packet and said second network packet from a computer network via said reception media access controller engine in accordance with a network protocol;(b) transferring said first data of said first network packet from said reception media access controller engine to said first data transfer engine;(c) transferring said first data from said first data transfer engine into said set of cache memory;(d) transferring said second data of said second network packet from said set of cache memory to said second data transfer engine;and (e) transferring said second data from said second data transfer engine to said transmission media access controller engine, wherein said first data is transferred from said first data transfer engine to said set of cache memory in said step (c) without said first data being stored in any set of memory other than said set of cache memory, and wherein said second data is transferred from said second set of cache memory to said second data transfer engine in said step (d) without said second data being stored in any set of memory other than said set of cache memory.