IP Library › Granted Patent US 12,650,814
Granted Patent B2
US 12,650,814 · App. 17/700,122 · Granted Jun 9, 2026

RAM true random number generator

Inventors: Lee-Lean Shu (Los Altos, CA); Dan Ilan (Herzliya, IL); Tomer Sery (Kochav Yair, IL); Avidan Akerib (Tel Aviv, IL)
Assignee: GSI Technology Inc.
G06F7/588G11C11/4085G11C11/4091G11C11/419
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,650,814
App. No.
17/700,122
Granted
Jun 9, 2026
Kind
B2
Abstract

A system to generate true random numbers includes a RAM array, a null-read controller and a hash generator. The RAM array has memory cells and a sense amplifier. The memory cells store data therein, the cells are connected in rows to word lines and in columns to pairs of bit lines, and the sense amplifier senses a differential input signal. The null-read controller implements a null-read operation by the sense amplifier of a portion of the RAM array. The hash generator receives a null-read result from the null-read operation and outputs a partial true random number based on the null-read result.

Claims (67)

1 . A true random number generator system, the system comprising:

a random access memory (RAM) array having memory cells for storing data therein, said memory cells being connected in rows to word lines and in columns to pairs of bit lines, and a sense amplifier to sense a differential input signal, wherein said differential input signal is on one of: said pairs of bit lines when connected to said sense amplifier, and a pair of local data lines when connected to said sense amplifier;

a null-read controller to implement at least one null-read operation by said sense amplifier of at least a portion of said RAM array; and

a hash generator to receive at least one null-read result from said at least one null-read operation and to output at least a partial true random number based on said at least one null read result,

wherein said null-read controller comprises:

a differential voltage conditioner (DVC) to minimize sense amplifier offset voltage in said sense amplifier during said at least one null-read operation; and

a word line overrider (WLO) to stop a row controller activating connected word lines during a null-read of said differential input signal on one of said pairs of bit lines, said connected word lines being connected to said rows of said memory cells.

2 . The system of claim 1 and said WLO to output a word line address disable (WLAD) signal to disable all word line activations by a row decoder.

3 . The system of claim 1 and said WLO to output an unconnected word line selection (UWLS) signal, to enable said row controller to activate only unconnected word lines, said unconnected word lines being not connected to said rows of said memory cells.

4 . The system of claim 1 wherein, prior to said at least one null-read operation, said DVC to condition one of said pairs of bit lines by at least one of equalizing a number of stored 0s and 1s per said one of said pairs of bit lines, performing at least one additional RAM no operation (No-OP) cycle, performing a valid-read operation, and, performing a valid-write of 0 followed by a valid-read operation.

5 . The system of claim 1 wherein said RAM array is an SRAM (static random access memory) array.

6 . The system of claim 1 wherein said RAM array is a DRAM (dynamic random access memory) array.

7 . The system of claim 1 wherein said at least one null-read operation is at least one of a single null read, a multiplicity of sequential null reads and a multiplicity of simultaneous null reads.

8 . The system of claim 1 and said RAM array to store said at least one null-read result.

9 . The system of claim 8 and said null-read controller to concatenate at least two of said at least one null-read result to form a concatenated null-read result.

10 . The system of claim 1 and said RAM array to store said at least a partial true random number.

11 . The system of claim 10 and said hash generator to concatenate at least two of said partial true random numbers to form a true random number.

12 . The system of claim 5 wherein said memory cells are at least one of 6T SRAM, 8T SRAM, dual-port SRAM and multi-port SRAM.

13 . The system of claim 1 wherein said RAM array is one of a multiplicity of RAM arrays arranged into at least one RAM bank.

14 . A true random number generator system, the system comprising:

a random access memory (RAM) array having memory cells for storing data therein, said memory cells being connected in rows to word lines and in columns to pairs of bit lines, and a sense amplifier to sense a differential input signal, wherein said differential input signal is on one of: said pairs of bit lines when connected to said sense amplifier, and a pair of local data lines when connected to said sense amplifier;

a null-read controller to implement at least one null-read operation by said sense amplifier of at least a portion of said RAM array; and

a hash generator to receive at least one null-read result from said at least one null-read operation and to output at least a partial true random number based on said at least one null read result,

wherein said null-read controller comprises:

a differential voltage conditioner (DVC) to minimize sense amplifier offset voltage in said at least one sense amplifier during said at least one null-read operation; and

a column controller to stop column pass gates connecting said one of said pairs of bit lines to said pair of local data lines during a null read of said differential input signal on said pairs of local data lines.

15 . The system of claim 14 wherein, prior to said at least one null-read operation, said DVC to condition said pair of local data lines by at least one of equalizing a number of stored 0s and 1s connected to said pair of local data lines, performing at least one additional RAM No-OP cycle, performing a valid-read operation, and, performing a valid-write of 0 followed by a valid-read operation.

16 . A method for a RAM (random access memory) array, the method comprising:

executing a null-read operation, wherein said executing a null-read operation comprises:

pre-charging a pair of differential lines in said RAM array to a predetermined voltage; and

differentially reading a differential signal on said pair of differential lines by a sense amplifier without receiving a second differential signal from a memory cell onto said pair of differential lines after said pre-charging,

wherein said pair of differential lines is one of: a pair of bit lines when attached to said sense amplifier, and a pair of local data lines when attached to said sense amplifier, and

wherein said differentially reading comprises one of: enabling a word line address disable (WLAD) signal to disable all word line activations by a row decoder, and enabling an unconnected word line selection (UWLS) signal such that a row controller activates only unconnected word lines which are said word lines that are not connected to rows of said memory cells.

17 . The method of claim 16 and comprising conditioning said pair of differential lines prior to said pre-charging by at least one of equalizing a number of stored 0s and 1s per said pair of differential lines, performing at least one additional RAM no operation (No-OP) cycle, performing a valid-read operation, and performing a valid-write of 0 followed by a valid-read operation.

18 . The method of claim 16 wherein said RAM array is an SRAM (static random access memory) array.

19 . The method of claim 16 wherein said RAM array is a DRAM (dynamic random access memory) array.

20 . A method for a RAM (random access memory) array, the method comprising:

executing a null-read operation, wherein said executing a null-read operation comprises:

pre-charging a pair of differential lines in said RAM array to a predetermined voltage; and

differentially reading a differential signal on said pair of differential lines by a sense amplifier without receiving a second differential signal from a memory cell onto said pair of differential lines after said pre-charging,

wherein said pair of differential lines is one of: a pair of bit lines when attached to said sense amplifier, and a pair of local data lines when attached to said sense amplifier, and

wherein said differentially reading comprises stopping column pass gates connecting pairs of bit lines to a pair of local data lines, said pairs of bit lines also being connected to said columns of said memory cells.

21 . A method to generate a true random number, the method comprising:

pre-charging at least one pair of differential lines in at least a portion of a RAM array to a predetermined voltage;

null-reading a differential signal on said at least one pair of differential lines;

receiving at least one null-read result from said null-reading; and

generating at least a partial true random number based on said at least one null-read result,

wherein said at least one pair of differential lines is one of: a pair of bit lines when attached to a sense amplifier, and a pair of local data lines when attached to said sense amplifier,

wherein said null-reading comprises differentially reading the differential signal on said at least one pair of differential lines by said sense amplifier, without receiving a second differential signal from a memory cell onto said at least one pair of differential lines after said pre-charging, and

wherein said differentially reading comprises one of: enabling a word line address disable (WLAD) signal to disable all word line activations by a row decoder, and enabling an unconnected word line selection (UWLS) signal such that a row controller activates only unconnected word lines which are said word lines that are not connected to rows of said memory cells.

22 . A method to generate a true random number, the method comprising:

pre-charging at least one pair of differential lines in at least a portion of a RAM array to a predetermined voltage;

null-reading a differential signal on said at least one pair of differential lines;

receiving at least one null-read result from said null-reading; and

generating at least a partial true random number based on said at least one null-read result,

wherein said at least one pair of differential lines is one of: a pair of bit lines when attached to a sense amplifier, and a pair of local data lines when attached to said sense amplifier,

wherein said null-reading comprises differentially reading the differential signal on said at least one pair of differential lines by said sense amplifier, without receiving a second differential signal from a memory cell onto said at least one pair of differential lines after said pre-charging, and

wherein said differentially reading comprises stopping column pass gates connecting pairs of bit lines to a pair of local data lines, said pairs of bit lines also being connected to said columns of said memory cells.

23 . The method of claim 22 wherein said null-reading is at least one of a single null read, a multiplicity of sequential null reads and a multiplicity of simultaneous null reads.

24 . The method of claim 22 and comprising first storing said at least one null-read result in at least one RAM array.

25 . The method of claim 22 and comprising first concatenating at least two of said at least one null-read result to form a concatenated null-read result.

26 . The method of claim 22 and comprising storing said at least a partial true random number in said RAM array.

27 . The method of claim 22 and comprising concatenating at least two said partial true random numbers to form a true random number.

28 . The method of claim 22 and comprising conditioning said at least one pair of differential lines prior to said pre-charging by at least one of equalizing a number of stored 0s and 1s per differential line pair, performing at least one additional RAM no operation (No-OP) cycle, performing a valid-read operation, and performing a valid-write of 0 followed by a valid-read operation.

29 . The method of claim 22 wherein said RAM array is an SRAM (static random access memory) array.

30 . The method of claim 29 wherein said RAM array is one of a 6T SRAM, 8T SRAM, dual-port SRAM and multi-port SRAM array.

31 . The method of claim 22 wherein said RAM array is a DRAM (dynamic random access memory) array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2022
From: SHU, LEE-LEAN; ILAN, DAN; SERY, TOMER; AKERIB, AVIDAN
To: GSI TECHNOLOGY INC.
Reel/Frame 062006/0354 →
Continuity (2)
Provisional Application 63163892 · Mar 21, 2021
Related Publication 20220300255A1 · Sep 22, 2022
References Cited (14)
US 4694205A · Shu · 1987 [cited by applicant]
US 5355343A · Shu · 1994 [cited by applicant]
US 8593860B2 · Shu · 2013 [cited by applicant]
US 10838726B1 · Peng · 2020 [cited by applicant]
US 11049555B1 · Tsai · 2021 [cited by examiner]
US 20100191903A1 · Rao · 2010 [cited by applicant]
US 20140334238A1 · Ware · 2014 [cited by applicant]
US 20150381113A1 · Price · 2015 [cited by applicant]
US 20160329092A1 · Akerib · 2016 [cited by applicant]
US 20180039484A1 · La Fratta · 2018 [cited by examiner]
US 20180286486A1 · Tiwari · 2018 [cited by examiner]
US 20210028935A1 · Wu · 2021 [cited by examiner]
US 20220051711A1 · Ayyapureddi · 2022 [cited by examiner]
International Search Report for corresponding application PCT/IB2022/052572 mailed on Jun. 27, 2022. [cited by applicant]