# US 2014/0153582 A1 · Method and apparatus for providing a packet buffer random access memory

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0153582 A1
- Document ID: US20140153582A1
- Status: Published application
- Kind: A1
- Application number: 14/175,142
- Filed: 2014-02-07
- Published: 2014-06-05
- Earliest claimed: 1998-04-01
- Assignees: Mosaid Technologies Incorporated
- Applicants: MOSAID Technologies Incorporated
- Inventors: David E. JONES
- Web page: https://patentgrep.com/patent/US20140153582A1

## CPC

- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/6215: {Individual queue per QOS, rate or priority}
- H04L 47/6275: based on priority
- H04L 49/90: Buffering arrangements
- H04L 49/901: using storage descriptor, e.g. read or write pointers
- H04L 49/9021: {Plurality of buffers per packet}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present invention generally provides a packet buffer random access memory (PBRAM) device including a memory array, a plurality of input ports, and a plurality of serial registers associated with the input ports. The plurality of input ports permit multiple devices to concurrently access the memory in a non-blocking manner. The serial registers enable receiving data from the input ports and concurrently packet data to the memory array. The memory performs all management of network data queues so that all port requests can be satisfied within the real-time constraints of network packet switching.

## Claims

### Claim 1

A method of packet switching, comprising:
receiving a packet at a media access control (MAC) controller;
writing the packet to a packet buffer memory,
reading a subset of the packet at a classifier to determine an output port and a service priority level;
selecting an output queue from a plurality of output queues;
selecting a sub-queue from a plurality of sub-queues of the selected output queue; and
causing the packet buffer memory to write a pointer associated with the packet to a selected sub-queue of a selected output queue;
the selected output queue being associated with the determined output port; and
the selected sub-queue being associated with the determined service priority level.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
sending a command from the MAC controller indicative of a desired operation to be performed by the packet buffer memory.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
the command is a write command.

### Claim 4 (depends on 3)

The method of claim 3, wherein:
the write command identifies one of the plurality of output queues as the selected queue.

### Claim 5 (depends on 4)

The method of claim 4, wherein:
the write command identifies one of the plurality of sub-queues as the selected sub-queue.

### Claim 6 (depends on 2)

The method of claim 2, wherein:
the command is a timing reference command causing the packet buffer memory to adjust a phase difference between an output port clock signal and a received clock signal.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the packet includes a header; and
reading a subset of the packet comprises reading the header.

### Claim 8 (depends on 1)

The method of claim 1, wherein:
writing the packet includes sending an end-of-packet signal from the MAC controller to the packet buffer memory.

### Claim 9 (depends on 1)

The method of claim 1, wherein:
causing the packet buffer memory to transfer a pointer to a selected sub-queue of a selected output queue comprises sending a transfer queue command to the packet buffer memory.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
reading a packet from the output sub-queue having the highest priority level that stores data.
