IP Library Granted Patent US 8,625,621
Granted Patent B2
US 8,625,621 · App. 12/043,918 · Granted Jan 7, 2014

Method to support flexible data transport on serial protocols

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,625,621
App. No.
12/043,918
Granted
Jan 7, 2014
Kind
B2
Abstract

A serial buffer transports packets through queues capable of operating in a packet mode or a raw data mode. In packet mode, entire packets are stored in a queue. In raw data mode, packet header/delimiter information is not stored in the queue (only packet data is stored). Packets can be transferred out of a queue in response to a slave read request. The serial buffer constructs a packet header in response to the slave read request, and retrieves a specified amount of packet data from the selected queue. The serial buffer also transfers out packets as a bus master when a water level exceeds a water mark within a queue. The serial buffer constructs packet headers for these bus master transfers, which may be performed in a flush mode or a non-flush mode (in packet mode), or in a flush mode (in raw data mode).

Claims (54)

1. A serial buffer comprising:

one or more queues;

one or more queue configuration registers, each associated with a corresponding one of the one or more queues,

wherein each of the one or more queue configuration registers stores an access mode value that indicates whether the corresponding one of the one or more queues operates in a packet mode or a raw data mode,

wherein each of the one or more queues may operate in the packet mode and the raw data mode in response to the access mode value, and

wherein both a packet header and corresponding packet data are written to a queue identified in the packet header if the access mode value of the identified queue indicates that the identified queue operates in the packet mode, and only the corresponding packet data are written to the queue identified in the packet header if the access mode value of the identified queue indicates that the identified queue operates in the raw data mode.

2. The serial buffer of claim 1 , further comprising:

a first port that operates in accordance with a first serial protocol; and

a second port that operates in accordance with a second serial protocol, different than the first serial protocol, wherein the first port and the second port are coupled to the one or more queues.

3. The serial buffer of claim 1 , wherein each of the one or more queue configuration registers stores a read mode value that indicates whether the corresponding one of the one or more queues operates in a flush mode or a non-flush mode, wherein each of the one or more queues may operate in either the flush mode or the non-flush mode in response to the read mode value, and wherein all packet data below a water mark of the queue is read from each of the one or more queues that operate in the flush mode, and wherein packet data associated with a single packet is read from each of the one or more queues that operate in the non-flush mode.

4. The serial buffer of claim 1 , wherein each of the one or more configuration registers stores a priority value that indicates a priority with which the corresponding one of the one or more queues is accessed.

5. The serial buffer of claim 1 , wherein each of the one or more configuration registers stores a destination address used to access the corresponding one of the one or more queues during a write operation.

6. The serial buffer of claim 5 , wherein each of the one or more configuration registers further stores a source address used to access the corresponding one of the one or more queues during a read operation.

7. A method of operating a serial buffer comprising:

receiving an incoming packet that includes a packet header and packet data, wherein the packet header identifies a queue from among one or more queues of the serial buffer;

for each queue of the one or more queues, storing an access mode value that indicates whether the respective queue operates in a packet mode or a raw data mode, wherein the respective queue may operate in either the packet mode or the raw data mode depending on the access mode value;

writing the packet header and the packet data of the incoming packet to the identified queue if the corresponding access mode value indicates that the identified queue operates in the packet mode; and

writing the packet data, but not the packet header, to the identified queue if the corresponding access mode value indicates that the identified queue operates in the raw data mode.

8. The method of claim 7 , further comprising writing start-of-packet and end-of-packet delimiters to the identified queue if the corresponding access mode value indicates that the identified queue operates in the raw data mode.

9. The method of claim 7 , further comprising:

for each queue of the one or more queues, storing a read mode identification value that indicates whether the respective queue operates in a flush mode or a non-flush mode, wherein the respective queue may operate in either the flush mode or the non-flush data mode depending on the read mode identification value;

determining when a water level of a particular queue reaches a water mark assigned to the particular queue; and

if the corresponding access mode value indicates that the particular queue operates in the packet mode and the corresponding read mode identification value indicates that the particular queue operates in the flush mode, then reading all packet headers and packet data below the water mark assigned to the particular queue upon determining that the water level of the particular queue has reached the water mark assigned to the particular queue.

10. The method of claim 9 , further comprising:

if the corresponding access mode value indicates that the particular queue operates in the raw data mode and the corresponding read mode identification value indicates that the particular queue operates in the flush mode, then reading all packet data below the watermark assigned to the particular queue upon determining that the water level of the particular queue has reached the water mark assigned to the particular queue.

11. The method of claim 9 , further comprising:

if the corresponding access mode value indicates that the particular queue operates in the packet data mode and the corresponding read mode identification value indicates that the particular queue operates in the non-flush mode, then reading the packet header and packet data of one packet from the particular queue upon determining that the water level of the particular queue has reached the water mark assigned to the particular queue.

12. The method of claim 7 , further comprising:

receiving a slave read request packet from a processor, wherein the slave read request packet identifies a queue from among the one or more queues and includes a data size field that specifies an amount of data to be read from the queue identified by the slave read request packet;

accessing the corresponding access mode value to determine whether the queue identified by the slave read request packet operates in the packet mode or the raw data mode; and

transferring data from the queue identified by the slave read request packet to the processor in response to the slave read request packet,

wherein the data size field specifies a number of packets transferred from the queue identified by the slave read request packet to the processor when the queue identified by the slave read request packet operates in the packet mode, and

wherein the data size field specifies a number of data words transferred from the queue identified by the slave read request packet to the processor when the queue identified by the slave read request packet operates in the raw data mode.

13. The method of claim 7 , further comprising:

receiving a slave read request packet from a processor, wherein the slave read request packet identifies a queue from among the one or more queues of the serial buffer;

accessing the corresponding access mode value to determine whether the queue identified by the slave read request packet operates in the packet mode or the raw data mode; and

creating a constructed packet header from information included in the slave read request packet if the queue identified by the slave read request packet operates in the raw data mode.

14. The method of claim 13 , further comprising:

retrieving packet data from the queue identified by the slave read request packet; and

transmitting the retrieved packet data and the constructed packet header to the processor if the queue identified by the slave read request packet operates in the raw data mode.

15. A method of operating a serial buffer comprising:

receiving an incoming packet that includes a packet header and packet data;

identifying a queue specified by the packet header of the incoming packet from among one or more queues of the serial buffer, each of the one or more queues having a corresponding queue configuration register;

determining, based on an access mode value stored in the queue configuration register corresponding to the identified queue, whether the identified queue operates in a packet mode or a raw data mode, wherein the identified queue is capable of operating in both the packet mode and the raw data mode in response to the access mode value;

writing both the packet header and the packet data of the incoming packet to the identified queue if the identified queue operates in the packet mode; and

writing only the packet data of the incoming packet to the identified queue if the identified queue operates in the raw data mode.

16. The method of claim 15 , further comprising:

receiving a read request packet;

identifying a queue specified by the read request packet from among the one or more queues;

determining whether the queue specified by the read request packet operates in the packet mode or the raw data mode;

reading packet data from the queue specified by the read request packet; and

creating a constructed packet header using information included in the read request packet if the queue specified by the read request packet operates in the raw data mode.

17. The method of claim 16 , further comprising

transmitting the constructed packet header and the packet data read from the queue specified by the read request packet as a response to the read request packet.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2025
From: RENESAS ELECTRONICS AMERICA INC.
To: AXIRO SEMICONDUCTOR INC.
Reel/Frame 070864/0142 →
MERGER Recorded Apr 15, 2025
From: INTEGRATED DEVICE TECHNOLOGY, INC.
To: RENESAS ELECTRONICS AMERICA INC.
Reel/Frame 070851/0391 →
RELEASE OF SECURITY INTEREST Recorded Mar 29, 2019
From: JPMORGAN CHASE BANK, N.A.
To: INTEGRATED DEVICE TECHNOLOGY, INC.; GIGPEAK, INC.; CHIPX, INCORPORATED; ENDWAVE CORPORATION; MAGNUM SEMICONDUCTOR, INC.
Reel/Frame 048746/0001 →
SECURITY AGREEMENT Recorded Apr 5, 2017
From: INTEGRATED DEVICE TECHNOLOGY, INC.; GIGPEAK, INC.; MAGNUM SEMICONDUCTOR, INC.; ENDWAVE CORPORATION; CHIPX, INCORPORATED
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042166/0431 →