Browse Prior Art Database

Ethernet Controller With Zero System Memory Requirement

IP.com Disclosure Number: IPCOM000022019D
Publication Date: 2004-Feb-18
Document File: 4 page(s) / 224K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for an Ethernet Media Access Controller (MAC) interface and a software algorithm to access the controller. Benefits include a solution that transmits and receives Ethernet packets with zero RAM (i.e. memory) overhead.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 54% of the total text.

Ethernet Controller With Zero System Memory Requirement

Disclosed is a method for an Ethernet Media Access Controller (MAC) interface and a software algorithm to access the controller. Benefits include a solution that transmits and receives Ethernet packets with zero RAM (i.e. memory) overhead.

Background

Currently, all MACs require a set of data structures to be stored in main memory. Typically, an Ethernet stack requires multiple sets of data structures (e.g. lists or queues): one maintained by the protocol stack, one maintained for the MAC by the driver, and one internal to the MAC itself. In addition, these data structures are typically duplicated for both transmit and receive functionality.

General Description

The disclosed method consists of a MAC that requires no MAC-specific data structures in memory. This is an advantage for low memory applications, such as DOS drivers, pre-boot environments, and embedded applications. The disclosed method also removes the need for the driver-maintained data structures, as well as the executable code needed to maintain these structures.

For this method, the MAC maintains nine hardware registers—five for transmit and four for receive:

 

  • Transmit Packet Address
  • Transmit Packet Tag
  • Transmit Packet Length and End-Of-Packet Flag
  • Transmit Complete Packet Address
  • Transmit Complete Tag
  • Receive Buffer Address
  • Receive Buffer Tag
  • Receive Complete Address
  • Receive Complete Tag

For these register definitions, the term “Address” refers to the physical address of a packet buffer maintained by the operating system. For transmit, this is a complete packet, ready for transmit, or a fragment of a packet. For receive, this is an empty buffer large enough to contain a complete Ethernet packet.

The Tag registers can be used for any arbitrary value. These are not used by the MAC at all, but are given back to the driver when the MAC operation is complete. The Transmit Packet Length and End-Of-Packet Flag are used to tell the MAC the length of the transmit packet or packet fragment. If the packet is contained in multiple fragments, the End-Of-Packet flag is used to indicate which fragment is the last one in the packet.

To transmit a packet, the driver first writes values into the Transmit Packet Tag and Transmit Packet Length registers. The driver writes the address of the packet into the Transmit Packet Address register last. When the MAC detects this write, it saves the register values and begins to process the fragment. If the End-Of-Packet (EOP) flag is not set in the len...