High clock-efficiency random number generation system and method
AssigneeCassy Holdings LLC
InventorPatrick D. Ross
Life of this patent
Estimating the term…
Abstract
A system and method of generating a series of random number; from a source of random numbers in a computing system. Steps includes: loading a data loop (a looped array of stored values with an index) with random data from a source of random data; then repeating the following: reading a value from the data loop in relation to the index; operating on the multi-bit value thereby outputting a derived random number; and moving the index in relation to the looped array. The data loop may be a simple feedback loop which may be a shift register loaded by direct memory access (DMA). The operation may be performed by one or more arithmetic logic units (ALU) which may be fed by one or more data feeds and may perform XOR, Mask Generator, Data MUX, and/or MOD.
Claims23
A method of quickly and efficiently generating a series of random numbers from a source of random numbers in a computing system, comprising the steps of:
- a. loading a data loop with random data from a source of random data, the data loop including:
- i. a looped array of stored values;
- and
- ii. an index;
- b. reading a multi-bit value from the data loop, wherein the multi-bit value read from the data loop is smaller than the size of the data loop, in relation to a location of the index within the looped array;
- c. performing a first data operation on the multi-bit value thereby deriving a derived random number from the multi-bit value;
- d. moving the index in relation to the looped array to a different location within the looped array;
- e. repeating steps b-d, thereby generating a series of derived random numbers.
A computerized system for efficiently generating a stream of random numbers, comprising:
- a. a data loop, including:
- i. a simple-feedback looped array of random data that is not an output of a PRNG function;
- ii. an index;
- and
- iii. an output port that reads values from the simple-feedback looped array based on a relative location of the index with respect to the simple-feedback looped array wherein the values read from the data loop are smaller than the size of the data loop;
- b. a data operator, having:
- i. an input;
- and
- ii. an output that provides access to output values from the data operator;
- wherein the data operator is functionally coupled to the output port such that values from the output port are fed as input values into the data operator;
- and
- c. an incrementor functionally coupled to the data loop that shifts the index relative to the simple-feedback looped array.
Dependencies are inferred from the claim text.