Patent ID: 9606927
Date: 2017-03-28
CPC Classifications: G06F

Claim:
1. A system, comprising: a set-associative storage container; and a processor configured to perform: generating a vector comprising a random number; applying two or more residue functions to the vector, the two or more residue functions each producing a state signal comprising a different number of states based on the vector, wherein the two or more residue functions are residues of modulo operations each having a different modulus; determining a set status of the set-associative storage container, the set status identifying whether each set of a plurality of sets of the set-associative storage container is enabled or disabled, wherein the set-associative storage container comprises a plurality of congruence classes, each of the congruence classes comprises a number of sets, and a number of the residue functions is one less than the number of sets per congruence class, wherein a maximum modulus of the residue functions is equal to the number of sets per congruence class, the vector is generated by a linear feedback shift register hashed down to a number of bits to support the maximum modulus, wherein a maximum number of disabled sets is one less than the number of sets per congruence class, and both an even and odd number of disabled sets are supported while maintaining random set selection; selecting one of the state signals as a selected state signal that has a same number of states as a number of the sets that are enabled; mapping the selected state signal to the sets that are enabled to assign each of the states of the selected state signal to a corresponding one of the sets that are enabled; and outputting a set selection of the set-associative storage container based on the mapping to randomly select one of the sets that are enabled from the set-associative storage container.