Packet cache system and method

US12216587B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12216587-B2
Application numberUS-202418583341-A
CountryUS
Kind codeB2
Filing dateFeb 21, 2024
Priority dateJun 7, 2022
Publication dateFeb 4, 2025
Grant dateFeb 4, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A packet cache system includes a cache memory allocator for receiving a memory address corresponding to a non-cache memory and allocated to a packet, and associating the memory address with a cache memory address; a hash table for storing the memory address and the cache memory address, with the memory address as a key and the cache memory address as a value; a cache memory for storing the packet at a location indicated by the cache memory address; and an eviction engine for determining one or more cached packets to remove from the cache memory and place in the non-cache memory when occupancy of the cache memory is high.

First claim

Opening claim text (preview).

The invention claimed is: 1. A packet cache system comprising: a cache memory allocator for receiving a memory address corresponding to a non-cache memory and allocated to a packet, and associating the memory address with a cache memory address; a hash table for storing the memory address and the cache memory address, with the memory address as a key and the cache memory address as a value; a cache memory for storing the packet at a location indicated by the cache memory address; an eviction engine for determining one or more cached packets to remove from the cache memory and place in the non-cache memory when occupancy of the cache memory is high; and a reorder engine for receiving a read request comprising a read address corresponding to the non-cache memory and allocated to a desired packet to be read from either the cache memory or the non-cache memory, and for storing the desired packet, upon reading from either the cache memory or the non-cache memory, into a reorder buffer such that the desired packet is supplied in response to the read request at a timing proper relative to a timing of other read requests. 2. The system according to claim 1 , wherein the reorder engine is operable, upon receiving the read request, to assign a continuous space in the reorder buffer for accommodating the desired packet. 3. The system according to claim 1 , further comprising a memory allocator for assigning the memory address to the packet. 4. The system according to claim 3 , wherein the memory allocator is operable to form the packet into one or more cells, the one or more cells comprising a control cell when the packet is formed into one cell, and comprising a control cell and one or more data cells when the packet is formed into more than one cell, wherein the memory allocator assigns the memory address to the control cell, and respectively assigns one or more additional memory addresses to the one or more data cells. 5. The system according to claim 4 , wherein when the packet is formed as more than one cell the control cell comprises one or more pointers to respective ones of the additional memory addresses. 6. The system according to claim 4 , wherein when the packet is formed as more than one cell the cache memory allocator is operable to receive the one or more additional memory addresses and associate the one or more additional memory addresses with respective one or more additional cache memory addresses. 7. The system according to claim 6 , wherein the hash table is operable to store the additional memory addresses and the additional cache memory addresses, with the additional memory addresses as keys and the additional cache memory addresses as respective values. 8. The system according to claim 6 , wherein the cache memory is operable to store a portion of the packet at the location indicated by the cache memory address, and to store respective other portions of the packet at respective locations indicated by the additional cache memory addresses. 9. The system according to claim 1 , wherein the eviction engine comprises a memory for storing a priority for each packet stored in the cache memory. 10. The system according to claim 1 , wherein the system is an integral part of an integrated circuit. 11. The system according to claim 10 , wherein the integrated circuit is an application-specific integrated circuit (ASIC). 12. The system according to claim 10 , wherein the cache memory is an integral part of the integrated circuit, and the non-cache memory is external to the integrated circuit. 13. The system according to claim 12 , wherein the cache memory is a static random-access memory (SRAM), and the non-cache memory is a dynamic random-access memory (DRAM). 14. A method for storing packets in memory and reading the packets from memory, comprising: allocating a memory address, corresponding to a non-cache memory, to a packet; associating the memory address with a cache memory address; storing the memory address and the cache memory address in a hash table, with the memory address as a key and the cache memory address as a value; storing the packet in cache memory at a location indicated by the cache memory address; when occupancy of the cache memory is high, determining one or more cached packets to remove from the cache memory and place in the non-cache memory; receiving a read request comprising a read address corresponding to the non-cache memory and allocated to a desired packet to be read from either the cache memory or the non-cache memory; and storing the desired packet, upon reading from either the cache memory or the non-cache memory, into a reorder buffer such that the desired packet is supplied in response to the read request at a timing proper relative to a timing of other read requests. 15. The method according to claim 14 , further comprising, upon receiving the read request, assigning a continuous space in the reorder buffer for accommodating the desired packet. 16. The method according to claim 14 , wherein the step of allocating the memory address comprises: forming the packet into one or more cells, the one or more cells comprising a control cell when the packet is formed into one cell, and comprising a control cell and one or more data cells when the packet is formed into more than one cell; and allocating the memory address to the control cell, and respectively allocating one or more additional memory addresses to the one or more data cells. 17. The method according to claim 16 wherein when the packet is formed as more than one cell the control cell comprises one or more pointers to respective ones of the additional memory addresses. 18. The method according to claim 16 , wherein when the packet is formed as more than one cell the method further comprises associating the one or more additional memory addresses with respective one or more additional cache memory addresses. 19. The method according to claim 18 , wherein the step of storing the memory address and the cache memory address in the hash table further comprises storing the additional memory addresses and the additional cache memory addresses in the hash table, with the additional memory addresses as keys and the additional cache memory addresses as respective values. 20. The method according to claim 19 , wherein the step of storing the packet in cache memory at a location comprises storing a portion of the packet at the location indicated by the cache memory address, and storing respective other portions of the packet at respective locations indicated by the additional cache memory addresses.

Assignees

Inventors

Classifications

  • using replacement algorithms · CPC title

  • using pseudo-associative means, e.g. set-associative or hashing · CPC title

  • with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title

  • Networked environment · CPC title

  • Performance improvement · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12216587B2 cover?
A packet cache system includes a cache memory allocator for receiving a memory address corresponding to a non-cache memory and allocated to a packet, and associating the memory address with a cache memory address; a hash table for storing the memory address and the cache memory address, with the memory address as a key and the cache memory address as a value; a cache memory for storing the pack…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0864. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 04 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).