Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for managing a cache memory of an electronic computer, this method comprising the following steps during the execution, by this computer, of a process designed to process a word: a) receipt of a request containing an address of the word to be read or to be written, this address comprising: a line tag, a set address, this set address belonging to a first set of s different values, where the value s is an integer greater than two, b) transformation of the set address received into a transformed set address by means of a bijective transformation function which permutes at least two values from the first set, c) selection of one or more line tags stored in the cache memory at the transformed set address, d) comparison of the line tag received with the line tag or tags selected as a function of the transformed set address, in order to determine whether one of these line tags selected corresponds to the received line tag, e) when none of the tags selected corresponds to the received line tag, triggering of a miss and a supply of the word from a memory of higher rank, and when, on the contrary, one of the selected line tags corresponds to the received line tag, reading or writing in the cache memory of the word inside of a line associated with the line tag which corresponds to the received line tag, f) modification of the transformation function, this modification of the transformation function being repeated several times during the execution of the process such that, during the same execution of the process, the transformation function associates, successively over time, with a same set address able to be received, several different transformed set addresses, in which: the transformation function is parameterized by a parameter q such that the transformed set address obtained during the step f) depends both on the set address received and on a value of this parameter q, and for all non-zero values of the parameter q, the transformation function permutes at least 50% of the set addresses, and during each execution of the step f), a new value of the parameter q is generated for modifying the transformation function.
2. The method according to claim 1 , in which: a modification counter is incremented at each modification of the transformation function, each time that a new line is stored in the cache memory, a current value of the modification counter is stored in a line counter associated only with this line, when one of the selected line tags corresponds to the received line tag, then the method comprises: comparison of a value of the line counter of the line comprising this line tag with the value of the modification counter, when the value of the line counter is less than C m −M, then reading or writing of the word in the cache memory is inhibited and a miss is triggered, and conversely, when the value of the line counter is greater than or equal to C m −M, then the miss is not triggered and the reading or the writing of the word in the cache memory goes ahead, where: C m is the value of the modification counter at the time when the value of the line counter is compared with the value of the modification counter, and M is an integer number in the range between 1 and 50.
3. The method according to claim 2 , in which the method comprises: marking of the set of lines of the cache memory as being invalid in response to the exceeding by the modification counters of a predetermined threshold, and inhibition of a use of each line marked as being invalid until its replacement by a new line loaded from the memory of higher rank.
4. The method according to claim 2 , in which: at each modification of the transformation function, a preceding value of the Parameter q is stored in a file containing R preceding values of the parameter q, where R is an integer number in the range between 1 and 50, when none of the line tags selected corresponds to the received line tag and before triggering a miss and before supplying the word from the memory of higher rank, one of the preceding values of the parameter q is selected in the file and the steps b) to e) are executed once again using the preceding value selected for the parameter q in place of the current value of this parameter q, and in which the number M is equal to the number R.
5. The method according to claim 1 , in which: at each modification of the transformation function, a preceding value of the parameter q is stored in a file containing R preceding values of the parameter q, where R is an integer number in the range between 1 and 50, when none of the line tags selected corresponds to the received line tag and before triggering a miss and before supplying the word from the memory of higher rank, one of the preceding values of the parameter q is selected in the file and the steps b) to e) are executed once again using the preceding value selected for the parameter q in place of the current value of this parameter q.
6. The method according to claim 5 , in which, when a line tag corresponding to the received line tag is found in the cache memory using one of the preceding values of the parameter q, the method comprises the replacement of one of the lines of the set situated at the transformed set address obtained based on a most recent value of the parameter q, by the line associated with this line tag corresponding to the received line tag.
7. The method according to claim 5 , in which the number R is in the range between 4 and 16.
8. The method according to claim 1 , in which: a counter of accesses to the cache memory is incremented upon each access to the cache memory, and when this counter of accesses to the cache memory reaches a predetermined limit, a new execution of the step f) is automatically triggered and the counter of accesses to the cache memory is reset, the predetermined limit being equal to a number of accesses to the cache memory in the range between 100 and 1000.
9. The method according to claim 1 , in which each new value of the parameter q is generated by randomly or pseudo-randomly drawing this new value from a set of 2 p different possible values for the parameter q, where the exponent p is an integer number greater than or equal to 4, 8 or 16.
10. The method according to claim 1 , in which the method comprises, during a simultaneous execution by the computer of a first and of a second process which process a first and a second word, respectively: execution of the step f) for, respectively, the first and second process and thus obtain a first value of the parameter q for the first process and a second value of the parameter q for the second process, these first and second values of the parameter q being stored and respectively associated with the first and second processes, when the first process reads or writes the first word, the execution of the steps a) to e) using, for this purpose, the first value of the parameter q, when the second process reads or writes the second word, the execution of the steps a) to e) using, for this purpose, the second value for the parameter q.
11. The method according to claim 1 , in which the method also comprises: each time that a new value of the parameter q is generated, generation of a new value of a key k u , then, for as long as the value of the parameter q is not modified again, scrambling of each word to be written in the cache memory by means of this new value of the key k u in order to obtain a cryptogram of this word and the storage of the cryptogram in the cache memory in place of the word, and in response to the request containing the address of the word to be read or to be written and if a line comprising a line tag corresponding to the received line tag could be found in the cache memory, the unscrambling of the cryptogram of this line by means of the value of the key k u generated at the same time as the value of the parameter q used to obtain the transformed set address which has allowed the selection of this line.
12. A management unit for managing a cache memory of an electronic computer, this unit being configured for carrying out the following steps during the execution by this computer of a process which is intended to process a word: a) reception of a request containing an address of the word to be read or to be written, this address comprising: a line tag, a set address, this set address belonging to a first set of s different values, where the value s is an integer greater than two, b) transformation of the set address received into a transformed set address by means of a bijective transformation function which permutes at least two values from the first set, c) selection of one or more line tags stored in the cache memory at the transformed set address, d) comparison of the line tag received with the line tag or line tags selected as a function of the transformed set address, in order to determine whether one of these line tags selected corresponds to the received line tag, e) when none of the selected tags corresponds to the received line tag, triggering of a miss and a supply of the word from a memory of higher rank, and when, on the contrary, one of the line tags selected corresponds to the received line tag, reading or writing in the cache memory of the word inside of a line associated with the line tag which corresponds to the received line tag, f) modification of the transformation function, this modification of the transformation function being repeated several times during the execution of the process such that, during the same execution of the process, the transformation function associates, successively over time, with a same set address able to be received, several different transformed set addresses, in which: the management unit comprises a transformation function parameterized by a parameter q such that the transformed set address obtained during the step f) depends both on the received set address and on a value of this parameter q, and for all non-zero values of the parameter q, the transformation function permutes at least 50% of the set addresses, and the management unit is configured for, during each execution of the step f), generating a new value of the parameter q for modifying the transformation function.
Unknown
October 12, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.