Method and system for managing a cache memory

US12339787B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12339787-B2
Application numberUS-202218055202-A
CountryUS
Kind codeB2
Filing dateNov 14, 2022
Priority dateNov 15, 2021
Publication dateJun 24, 2025
Grant dateJun 24, 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 management system for managing a cache memory including a randomization module configured for generating a random value for each process of accessing the cache memory, and for transforming addresses of the cache memory with said random value into randomized addresses, a history table configured to store therein on each line an identification pair associating a random value corresponding to an access process, with an identifier of the corresponding access process, so forming identification pairs that are operative to dynamically partition the cache memory while registering the access to the cache memory, and a state machine configured to manage each process of accessing the cache memory according to the identification pairs stored in the history table.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for managing a cache memory provided to equip an electronic device comprising a processor and a main memory, wherein the managing cache memory comprises the following steps: generating a random value for each process of accessing the cache memory, transforming addresses of the cache memory with said random value into corresponding addresses, referred to as randomized addresses being configured to index the cache memory, associating each random value corresponding to an access process, with an identifier of said access process, forming pairs of identifications that are configured to dynamically partition the cache memory while registering the access to said cache memory, storing each identification pair composed of a random value and of a corresponding identifier in a history table, and managing each process of accessing the cache memory according to said identification pairs stored in said history table. 2. The method according to claim 1 , further comprising the following steps: receiving a current request comprising the current identifier of a current access process and a current access address to the cache memory, going through the lines of the history table to verify whether an identifier is present in the history table that matches the current identifier of the current access process, in the positive, calculating the randomized address of said current access address using the random value associated with the identifier found in the history table corresponding to the current identifier, and in the negative, triggering a cache fault giving rise to the generation of a current random value configured to be associated with the identifier of said current access process to form a current identification pair, and storing said current identification pair on an available line of the history table. 3. The method according to claim 1 , further comprising the step of storing, in a field of the cache memory, referred to as permission field, a permission vector of dimension equal to the number of lines of the history table, each component of said permission vector corresponding to one and only one line of said history table and whose value indicates legitimacy or non-legitimacy of the access process referenced by its identifier stored in said line. 4. The method according to claim 3 , further comprising the following steps: going through the lines of the history table sequentially to calculate, at each current line, the randomized address indexing the cache memory based on the random value stored in said current line and on the address indicated in the request, and verifying the validity of the current line of the cache memory defined by the corresponding randomized address. 5. The method according to claim 4 , wherein it comprises the step of triggering a cache fault if the end of the history table is reached while validating no line of the cache memory. 6. The method according to claim 5 , further comprising the following steps: verifying the matching between the current identifier and the identifier belonging to the pair relative to the current line, if the line of the cache memory is validated, verifying whether the current identifier is present in the history table in case of non-match between the current identifier and said identifier relative to said current line, noting the position of an identifier stored in the history table if that identifier is equal to the current identifier, triggering a cache hit if the legitimacy bit of the permission vector at a position corresponding to said noted position of said identifier stored in the history table, is valid, simulating the triggering of a cache fault if the legitimacy bit at said position of the permission vector is not valid. 7. The method according to claim 6 , wherein if a cache fault is triggered, said method comprises the step of withdrawing the legitimacy of a process of accessing a shared data item, without deleting said shared data item from the cache memory if said access process requires eviction of said shared data item from the cache memory or if it leaves the history table. 8. The method according to claim 6 , further comprising the step of writing back said shared data item in the main memory if it has been modified and a last access process having legitimacy to said shared data item evicts it from the cache memory or leaves the history table. 9. A system for managing a cache memory configured to equip an electronic device comprising a processor and a main memory, wherein said system comprises: a randomization module configured to generate a random value for each process of accessing the cache memory, and configured to transform addresses of the cache memory with said random value into corresponding addresses, referred to as randomized addresses configured to index the cache memory, a history table composed of a determined number of lines configured to store therein on each line an identification pair associating a random value corresponding to an access process, with an identifier of said corresponding access process, forming identification pairs that are configured to dynamically partition the cache memory while registering the access to said cache memory, and a state machine configured to access the history table and to manage each process of accessing the cache memory according to said identification pairs stored in said history table. 10. The system according to claim 9 , further comprising: a set of registers configured to receive a current request comprising the current identifier of a current access process and a current access address to the cache memory, and a state machine configured to: go through the lines of the history table to verify whether an identifier is present in the history table that matches the current identifier of the current access process, in the positive, calculate the randomized address of said current access address using the random value associated with the identifier found in the history table corresponding to the current identifier, and in the negative, trigger a cache fault giving rise to the generation of a current random value configured to be associated with the identifier of said current access process to form a current identification pair, and store said current identification pair on an available line of the history table. 11. The system according to claim 10 , wherein the cache memory is subdivided into several lines each of which comprises a permission field of the access process configured to store therein a permission vector of dimension equal to the number of lines of the history table, each component of said permission vector corresponding to one and only one line of said history table and whose value indicates legitimacy or non-legitimacy of the access process referenced by its identifier stored in said line. 12. The system according to claim 11 , wherein the state machine is configured to: go through the lines of the history table sequentially to calculate, at each current line, the randomized address indexing the cache memory based on the random value stored in said current line and on the address indicated in the request, and verify the validity of the current line of the cache memory defined by the corresponding randomized address. 13. The system according to claim 12 , wherein the state machine is configured to: verify the matching between the current identifier and the identifier belonging to the pair relative to the current line, if the line of the cache memory is validated, verify whether the current identifier is present in the history table in case of non-match between

Assignees

Inventors

Classifications

  • using an access-table, e.g. matrix or list · CPC title

  • Security improvement · CPC title

  • Latency reduction · CPC title

  • in semiconductor storage media, e.g. directly-addressable memories · CPC title

  • by using cryptography (for digital transmission H04L9/00) · 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 US12339787B2 cover?
A management system for managing a cache memory including a randomization module configured for generating a random value for each process of accessing the cache memory, and for transforming addresses of the cache memory with said random value into randomized addresses, a history table configured to store therein on each line an identification pair associating a random value corresponding to an…
Who is the assignee on this patent?
Commissariat Energie Atomique
What technology area does this patent fall under?
Primary CPC classification G06F12/1425. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 24 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).