Generation of random bit streams using magnetic tunnel junctions

文档序号:1316028 发布日期:2020-07-10 浏览:7次 中文

阅读说明:本技术 用磁性隧道结生成随机位流 (Generation of random bit streams using magnetic tunnel junctions ) 是由 W·H·崔 于 2019-03-20 设计创作,主要内容包括:本公开提出了采用磁性隧道结(MTJ)元件的真随机数生成(TRNG)电路,所述MTJ元件可以响应于电脉冲的施加而概率性改变磁化状态。一些实施方式包括脉冲发生器,所述脉冲发生器将扰动序列施加到所述MTJ元件。所述MTJ元件响应性产生与磁化状态的变化有关的随机化输出。包括了概率补偿器,所述概率补偿器监测所述随机化输出中的测量概率与目标概率的偏差。所述概率补偿器作出对所述扰动序列的调整,以影响所述MTJ元件的所述磁化状态的概率性变化并使所述测量概率在与所述目标概率的预先确定的偏差内。(The present disclosure presents a True Random Number Generation (TRNG) circuit employing a Magnetic Tunnel Junction (MTJ) element that can probabilistically change the magnetization state in response to application of an electrical pulse. Some embodiments include a pulse generator that applies a sequence of perturbations to the MTJ element. The MTJ element responsiveness produces a randomized output related to a change in magnetization state. A probability compensator is included that monitors the randomized output for a deviation of the measured probability from a target probability. The probability compensator makes adjustments to the sequence of perturbations to affect probabilistic changes in the magnetization state of the MTJ element and to bring the measured probability within a predetermined deviation from the target probability.)

1. A circuit, the circuit comprising:

a pulse generator having a pulse output terminal configured to generate a perturbation pulse;

a random bit stream generator, the random bit stream generator comprising:

a Magnetic Tunnel Junction (MTJ) element coupled to the pulse output terminal of the pulse generator at a free layer terminal and coupled to an adjustable reference node at a pinned layer terminal; and

an output node of the circuit coupled to the free layer terminal of the MTJ element; and

a probability compensator, the probability compensator comprising:

a probability calculator coupled to the output node and configured to determine a deviation from a target probability exhibited by the MTJ element in response to the perturbation pulse;

a voltage offset generator coupled to a probability output terminal of the probability calculator; and

a reference buffer coupled to an output terminal of the voltage offset generator, wherein the reference buffer comprises the adjustable reference node.

2. The circuit of claim 1, wherein the MTJ element is configured to probabilistically change a magnetization state in response to the perturbation pulse applied between the pulse output terminal and the adjustable reference node.

3. The circuit of claim 1, wherein the MTJ element comprises a memory bit in a Magnetic Random Access Memory (MRAM) array that is selectable as a memory storage element or a random bit generator element.

4. The circuit of claim 1, wherein the pulse generator comprises a bidirectional pulse generating element to selectively apply a reset pulse and a read pulse in a first direction through the MTJ element via the pulse output terminal and to selectively apply a perturbation pulse in a second direction through the MTJ element via the pulse output terminal.

5. The circuit of claim 1, further comprising:

an array comprising a plurality of random generators coupled to a plurality of reference adjustment modules to generate a random bit vector having a number of bits corresponding to a number of the plurality of random generators.

6. An apparatus, comprising:

a plurality of random bit generators comprising Magnetic Tunnel Junction (MTJ) elements configured to produce probabilistic changes in magnetization states in response to an applied sequence of perturbations;

a probability adjustment circuit configured to monitor the probabilistic change in the magnetization state for a deviation of a measured probability from a target probability and to initiate an adjustment of the perturbation sequence to affect the probabilistic change in the magnetization state of the MTJ element and to bring the measured probability within a predetermined deviation from the target probability;

one or more pulse generators configured to apply the perturbation sequence to the plurality of random bit generators at least in accordance with the adjustment initiated by the probability adjustment circuit; and

an output circuit configured to present a random bit vector comprised of the magnetization states of the plurality of random bit generators from at least one perturbation sequence.

7. The apparatus of claim 6, wherein the perturbation sequence comprises:

a reset phase that causes the plurality of pulse generators to apply a reset voltage pulse to the MTJ element to place the MTJ element in a predetermined magnetization state prior to application of a perturbation voltage pulse;

a perturbation phase that causes the plurality of pulse generators to apply the perturbation voltage pulses to the MTJ elements to generate the probabilistic change in the magnetization state; and

a read phase that causes the plurality of pulse generators to apply a read voltage pulse to the MTJ elements through the plurality of pulse generators to determine the magnetization state between the MTJ elements as a result of the application of the perturbation voltage pulse.

8. The apparatus of claim 6, wherein the probability adjustment circuit is configured to perform the adjustment of the sequence of perturbations by altering one or more of a pulse amplitude, a pulse width, and a reference voltage associated with application of a perturbation voltage pulse by the one or more pulse generators that produce the probabilistic change in the magnetization state.

9. The apparatus of claim 6, wherein the probability adjustment circuit monitors the magnetization states of the plurality of random bit generators across a predetermined number of sequences of perturbations to determine the deviation of the measured probability from the target probability.

10. The apparatus of claim 6, wherein each of the MTJ elements has an associated free layer terminal coupled to a corresponding pulse generator that generates and applies the sequence of perturbations; and is

Wherein each of the MTJ elements has an associated pinned layer terminal coupled to an adjustable reference node capable of changing an applied reference voltage in accordance with the adjustment to the perturbation sequence.

11. The apparatus of claim 6, wherein the target probability is selectable over a range of probabilities by altering the adjustment to the perturbation sequence.

12. The device of claim 6, wherein the perturbation sequence repeats in a cyclic manner to produce a series of random bit vector outputs; and is

Wherein the probability adjustment circuit initiates the adjustment of the perturbation sequence after monitoring a predetermined amount of random bit vectors.

13. A method of random number generation, comprising:

applying perturbation pulses to Magnetic Tunnel Junction (MTJ) elements included in a plurality of random bit stream generators;

applying a read pulse to the MTJ elements to determine a magnetization state between the MTJ elements after application of the perturbation pulse;

applying a reset pulse to the MTJ element to place the MTJ element in a predetermined magnetization state prior to application of the perturbation pulse; and

generating a random bit vector output comprised of each of the magnetization states of the plurality of random bit-stream generators after application of at least one corresponding read pulse; and

monitoring the deviation of the measured probability from a target probability in the magnetization state; and

making an adjustment to the perturbation pulse to affect a probabilistic change in the magnetization state of the MTJ element and to bring the measured probability within a predetermined deviation from the target probability.

14. The method of claim 13, further comprising:

repeating the application of the perturbation pulses alternating with the read pulses and corresponding reset pulses to produce a series of random bit vector outputs; and

the adjustment to the perturbation pulse is made after monitoring a predetermined amount of random bit vector output.

15. The method of claim 13, wherein making the adjustment to the perturbation pulse comprises altering one or more of a pulse amplitude, a pulse width, and a reference voltage associated with applying the perturbation pulse to the plurality of random bit stream generators.

16. The method of claim 13, further comprising:

applying the perturbation pulse and the read pulse as corresponding voltage pulses with a first polarity to a free layer terminal of the MTJ element;

applying the reset pulse to the free layer terminal of the MTJ element as a reset voltage pulse with a second polarity opposite the first polarity; and is

Wherein a pinned layer terminal of the MTJ element is coupled to an adjustable reference voltage used to make amplitude adjustments to the perturbation pulse to affect the probabilistic change in the magnetization state of the MTJ element.

17. The method of claim 13, wherein the target probability is selectable over a range of probabilities by altering the adjustment to the perturbation voltage pulse.

18. A system for generating random numbers, comprising:

a Magnetic Random Access Memory (MRAM) array formed from rows of data storage elements and including an address decoder circuit configured to assign a selected row to either a first group or a second group;

wherein a first group of the rows have associated data storage elements employed in data storage operations, and wherein a second group of the rows have selected data storage elements employed in random number generation circuitry; and

a control circuit for a random number generation circuit, the control circuit comprising:

a pulse generator configured to apply a sequence of perturbations across at least the selected data storage elements of the second group of the row to probabilistically affect the magnetization state of the data storage elements;

an output circuit configured to present an output bit vector comprised of indications of the magnetization states of selected data storage elements; and

a probability compensator configured to measure probabilities between the indications of the magnetization states due to the sequence of perturbations, detect deviations from a target probability between the probabilities, and indicate an adjustment to a reference voltage to be applied by the pulse generator to the selected data storage element, wherein the adjustment is selected such that the probabilities are within a predetermined deviation from the target probability.

19. The system of claim 18, wherein the control circuitry is configured to cycle the application of the perturbation sequence to produce a series of output bit vectors; and is

Wherein the perturbation sequences each comprise application of a reset pulse, a perturbation pulse and a read pulse;

wherein the pulse generator applies the reset pulse to place the selected data storage element in a predetermined magnetization state prior to application of the perturbation pulse;

wherein the pulse generator applies the perturbation pulse to probabilistically affect the magnetization state of the data storage element; and is

Wherein the pulse generator applies the read pulse to determine the indication of the magnetization state of the selected data storage element.

20. The system of claim 19, wherein the pulse generator has an input voltage that sets at least one of a pulse width and a pulse amplitude of the perturbation pulse to achieve an initial approximation of the target probability for the selected data storage element; and is

Wherein the actual probability of a change in the magnetization state of the selected data storage element in response to the perturbation pulse is affected by the adjustment to the reference voltage to at least compensate for manufacturing and temperature variations among the characteristics of the selected data storage element.

21. The system of claim 18, wherein the data storage element comprises a Magnetic Tunnel Junction (MTJ) element having a free layer terminal coupled to a bit line of the MRAM array and a pinned layer terminal coupled to a source line of the MRAM array through a selection element, and wherein a control terminal of the selection element is coupled to a word line of the MRAM array.

22. The system of claim 21, wherein the pulse generator applies the perturbation sequence as corresponding voltage pulses on an associated bit line and an associated source line.

23. The system of claim 18, wherein the adjustment of the reference voltage to be applied by the pulse generator to the selected data storage elements adjusts an amplitude of a perturbation pulse provided by the pulse generator to affect probabilistic magnetization state changes in the selected data storage elements.

24. A random circuit, comprising:

means for applying a reset pulse to a plurality of Magnetic Tunnel Junction (MTJ) elements to reset the MTJ elements into a predetermined magnetization state;

means for applying a perturbation pulse to the plurality of MTJ elements to affect magnetization states of the plurality of MTJ elements after application of the reset pulse;

means for applying a read pulse to the plurality of MTJ elements to indicate the magnetization state among the plurality of MTJ elements after application of the perturbation pulse;

means for presenting the magnetization state as a multi-bit number corresponding to a random output;

means for measuring a probability between changes in the magnetization state due to repeated sequential application of the reset pulse, the perturbation pulse, and the read pulse;

means for detecting a deviation between the probabilities from a target probability; and

means for indicating an adjustment to the perturbation pulse to bring the probability within a predetermined deviation from the target probability.

25. The random circuit of claim 24, further comprising:

means for selecting the target probability within a range of probabilities by altering the adjustment to the perturbation pulse.

Technical Field

Aspects of the present disclosure relate to the field of random number generation circuits and systems.

Background

Random number generation has become an important part of modern technology in terms of secure communications, encryption schemes, robust data storage, and other technical areas. Many systems that rely on random number generators actually employ so-called pseudo-random number generators. A pseudo-random number generator (PRNG), also known as a deterministic random number generator, produces a string of numbers that approximates true randomness. Although these schemes are not truly random, they are sufficient to meet the needs of many applications in the fields of security, encryption, etc. However, the numbers generated by these PRNGs are still somewhat deterministic, and therefore hardware-based random number generation circuits have been developed.

Hardware random number generators, also known as True Random Number Generators (TRNGs), rely on physical properties or processes that have natural random components. The random output generated from these hardware systems is closer to the true randomized output. Therefore, TRNG is used in applications where higher security and less deterministic random numbers are desired.

Attempts have been made to use Magnetic Tunnel Junction (MTJ) arrangements in hardware TRNG. The MTJ operates using Tunneling Magnetoresistance (TMR), which is a magnetoresistive effect. MTJs are typically composed of two ferromagnets separated by a thin insulator through which electrons can quantum-mechanically tunnel from one ferromagnet to the other. In the presence of thermal noise, it can be observed that the switching behavior of the MTJ due to the flow of the input current is random in nature. However, manufacturing variations and random behavior variations among MTJs may limit the performance of these elements in TRNG systems. Furthermore, the random bit stream may still require a long time frame to generate the multi-digit random number, resulting in a slower overall TRN process used in the various applications discussed above.

SUMMARY

Random number generation circuits are proposed that employ Magnetic Tunnel Junction (MTJ) elements that can probabilistically change the magnetization state in response to application of an electrical pulse. Some embodiments include a pulse generator that applies a sequence of perturbations to the MTJ element. The MTJ element responsiveness produces a randomized output related to the change in magnetization state. A probability compensator is included that monitors the randomized output for a deviation of the measured probability from a target probability. The probability compensator makes adjustments to the perturbation sequence to affect probabilistic changes in the magnetization state of the MTJ element and to bring the measured probability within a predetermined deviation from the target probability.

Drawings

Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the figures are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. While several embodiments are described in connection with these drawings, the disclosure is not limited to the embodiments disclosed herein. On the contrary, it is intended to cover all alternatives, modifications, and equivalents.

FIG. 1 illustrates an exemplary random number generation system.

FIG. 2 illustrates an exemplary operation of a random number generation system.

Fig. 3 illustrates an exemplary probability compensation in a random number generation system.

FIG. 4 illustrates an exemplary output of a random number generation system.

Fig. 5 shows an exemplary array of random number generation circuits.

Fig. 6 shows an exemplary control operation of the random number generation circuit.

FIG. 7 illustrates an exemplary state operation of a magnetic tunnel junction element.

Detailed Description

Various enhanced random number generator circuits and arrangements employing Magnetic Tunnel Junction (MTJ) elements with probabilistic magnetization state switching properties are discussed herein. Various enhanced support circuits, interconnects, and control systems are also discussed. In the random number generator circuit discussed herein, at least one MTJ element is included as well as circuitry for driving the MTJ element to produce a random bit value, a random bit stream, or a random bit vector. A probability compensator is employed that can compensate for differences between MTJ elements, as well as compensate for drift and other factors over time. The probability compensator also brings the random number generator circuit within the probability target, such as to form a random number generation configuration. When deployed with a probability compensator, the random number generation circuit generates independent, unpredictable, uncertain, and aperiodic random numbers. These random numbers may be used in various applications, such as generating encryption keys and ciphertexts for use in secure data storage operations and secure communications, among other applications. Moreover, a large parallel array of individual random number generator circuits (referred to herein as random bit stream generator circuits) may be formed, which advantageously provides faster random number generation than a single random number generator circuit.

As used herein, a magnetic tunnel junction element or MTJ element is each part of a circuit that is composed of at least two layers of ferromagnetic material separated by a thin insulator through which electrons can tunnel from one ferromagnetic layer into the other. One of the ferromagnetic layers of the MTJ element may be referred to as a pinned layer having a fixed magnetization state, while the other ferromagnetic layer of the MTJ element includes a free layer whose magnetization state is changeable. The intermediate layer, which comprises a thin insulator separating two ferromagnetic layers, may be formed of an oxide material or other suitable electrical insulator. Electrical terminals, referred to herein as free layer and pinned layer terminals, may be formed to interface the free and pinned layers of the MTJ element to other components in the circuit.

A Spin Transfer Torque (STT) MTJ element is one exemplary arrangement of MTJ elements that may be used in a random number generator circuit. STT herein refers to a device in which a spin-polarized current reversibly switches the magnetization state of a ferromagnetic layer, i.e., the magnetization state of the free layer described above. In the presence of thermal noise, it can be observed that the switching behavior of the free layer of the MTJ element due to the flow of an applied perturbation pulse through the associated pinned layer is random in nature, and the probability of switching magnetization states in the MTJ element increases with the magnitude or duration of the applied perturbation pulse. Both perpendicular or parallel arrangements of MTJ elements, which refer to a type of magnetic anisotropy associated with a preferred alignment direction of magnetic moments within the MTJ elements relative to a surface of a corresponding semiconductor substrate, may be employed.

The individual random bit stream generator circuits each produce a series of random bit values (referred to herein as a random bit stream). These separate random bit streams are generated in response to cyclically applying a sequence of perturbations to the associated MTJ elements of the separate random bit stream generator circuits. In an exemplary perturbation sequence for generating a single random number, the perturbation circuit applies an initial reset voltage that is large enough to force the MTJ element into a reset state. After the reset voltage, the perturbation circuit applies a smaller perturbation voltage in the opposite polarity, causing Spin Transfer Torque (STT) switching in the MTJ element with a target 50% probability. The disturb circuit then applies a small read voltage to the MTJ element in the same polarity as the reset voltage to produce a resolved state of readout of the MTJ element. An n-bit random number in the case of a single random bit stream generator circuit may require that "n" perturbation sequences be applied to the random bit stream generator circuit. Parallel circuit arrangements may also be formed to increase the random number generation speed. When the parallel random bit stream generator circuit of the'm' level is adopted, the random number generation speed is improved by'm' times. Thus, when a parallel arrangement is used to generate n-bit random numbers, "n"/"m" perturbation sequences may be employed.

However, in the presence of MTJ element variation, each perturbation pulse cannot guarantee a 50% probability over time for all or individual MTJ elements employed in the array. This may be the case even if each perturbation pulse employs similar characteristics, such as matching pulse width or pulse amplitude. Advantageously, in the examples herein, the probability compensation circuit acts as a control loop for each individual random bit stream generator circuit. The probability compensation circuit may adjust a reference potential provided to the MTJ element to calibrate the magnetization switching behavior of the MTJ element under the applied perturbation sequence.

The probability compensation process may be applied at various periodicities, such as one-time adjustment, periodic adjustment after a predetermined period of time, or adjustment in "real-time" to compensate for each random bit value generated. One adjustment may be made during the manufacturing test process and may compensate for manufacturing tolerances, manufacturability issues, and other characteristics that may vary in the associated circuit but remain relatively stable after the initial time frame. The periodic adjustment may be made at each power-up, start-up, or boot process of the random number generator circuit, and may account for various circuit degradations over time, such as MTJ cell degradations, due to inherent lifetime limitations of the integrated circuit. Real-time adjustments may be made with fast turnaround times, such as calibration turnaround times that are faster than single bit generation times. Real-time adjustments can compensate for short-term transient effects, such as thermal transients, ambient noise environments, and other rapidly changing transients. The real-time compensation may compensate for each random bit value generated, or for a predetermined amount of random bit values.

The random number generator circuits discussed herein may also employ a multi-channel array of individual random bit stream generator (RBG) circuits including corresponding MTJ elements, and provide enhanced operation and random number generator functionality while having scalable and selectable speed, ease of manufacture, and lower switching current than other previous approaches. Further, the random number generator circuits employing MTJ elements herein may be assembled into dense horizontal arrays and vertical stacks. These vertical stacks allow for deployment in a multi-layer Magnetic Random Access Memory (MRAM) configuration that can combine a data storage MTJ element with an MTJ element employed in a random number generator circuit. In this way, a high density stack of random number generator circuits embedded in an MRAM array may be built from a semiconductor substrate. Various interconnects and control logic may be formed on the same semiconductor substrate, allowing large integrated memory and random number generator circuits to be built in compact integrated circuits. Further, the MRAM array control circuitry (such as address decoders, sense amplifiers, bit lines, word lines, and other circuitry/interconnects) may be multifunctional to handle both the random number generator arrangement and the data storage arrangement.

Fig. 1 is presented as a first example of a random number generator system. Fig. 1 is a system diagram illustrating a random number generator system 100. The system 100 includes one or more random bit stream generator (RBG) circuits 110 and 112, a pulse generator 120, and an output circuit 150. The bit stream output from the random bit stream generator circuit 110 and 112 is output via an associated link 164 and 166, which may also be provided to the output element 150. When employed, the output element 150 transmits a random number output at the link 170, which comprises a combined bit vector output formed from the bit streams of the multiple parallel random bit stream generator circuits. Link 170 includes an electrical output node for presenting as a circuit of system 100.

As discussed herein, a random number may include a numeric or binary representation of a number consisting of one or more bits. As discussed herein, a bitstream includes a series of bits or a string of bits. When a bit stream is generated by an associated RBG circuit, the bit stream is referred to herein as a random bit stream. The bit streams from one or more RBG circuits may be combined to form a bit vector. Thus, the term random bit stream discussed herein refers to a series of bits or bit strings produced by a single RBG circuit, while the term random bit vector discussed herein refers to a multi-digit bit random number. The random bit vectors discussed herein are typically formed by combining the outputs of more than one RBG circuit or selected portions of a single bit stream.

Each random bit stream generator (RBG) circuit 110-112 (referred to herein as RBG 110-112) includes an MTJ element 130, a probability calculator 141, a voltage offset circuit 142, and a sense amplifier 143. The probability calculator 141 and the voltage offset circuit 142 include a probability compensator 140, which is included in each of the RBG circuits 110 and 112. The input of each RBG circuit is coupled to a pulse output terminal 121 of a pulse generator 120. The perturbation sequence is applied by the pulse generator to the associated MTJ element through the pulse output terminal 121, which is coupled to the free layer terminal 134 of the MTJ element 130. The free layer terminal 134 of the MTJ element 130 is also coupled to a sense input of a sense amplifier 143. The reference terminal of sense amplifier 143 is coupled to a reference voltage VRThe reference voltage may be equal to VOFFSETDifferent voltages. The pinned layer terminal 135 of the MTJ element 130 is coupled to a voltage offsetReference voltage output 163 of circuit 142. The reference voltage output 163 is referred to herein as VOFFSET

In operation, a plurality of random bit stream generators are disposed in a substantially parallel manner between the pulse generator 120 and the output element 150 to provide "m" parallel random bit stream generators. The plurality of random bit stream generators are referred to as RBG circuits 110 and 112 in the further RBG circuit (when employed). In the example of FIG. 1, the RBG circuits 110 and 112 each generate a random bit stream output. These bit stream outputs may be employed individually by additional circuits and systems, or may be combined by the output element 150 into a multi-digit random number for presentation over the link 170. An optional register or memory element may be included in output element 150 to store one or more random number outputs prior to transmission over link 170.

As described above, each of the RBG circuits 110 and 112 includes a corresponding MTJ element 130. These MTJ elements may change magnetization states in response to perturbation pulses applied by associated pulse generators 120. The magnetization state change of the MTJ element 130 can be viewed as a random or probabilistic process that is affected by at least the pulse width and pulse amplitude characteristics of the perturbation pulse. The pulse generators 120 each determine a perturbation sequence for the corresponding MTJ element 130 based on a target probability (such as a 50% probability for true random number generation). The perturbation sequence typically includes three phases or operations, namely a reset phase, a perturbation phase, and a read phase, each phase having an accompanying pulse signal applied to an associated MTJ element. The characteristics of the perturbation pulses applied during the perturbation phase are determined by the pulse generator 120 based on at least the target probability and characteristics of the MTJ element 130. In fig. 1, these pulses are shown for RBG circuit 110 to illustrate the pulses for any of RBG circuits 110 and 112. The read pulse and the reset pulse are applied to the MTJ element 130 in a first direction or polarity, while the perturbation pulse is applied to the MTJ element 130 in a second direction or polarity, which is opposite to the direction or polarity of the first direction.

Taking RBG circuit 110 as an example, a read pulse applied to MTJ element 130 by pulse generator 120 may indicate the current magnetization state on link 160. Sense amplifier 143 may sense the current magnetization state and generate an output reflecting the magnetization state of MTJ element 130 via link 164. Since the MTJ element 130 changes magnetization state according to at least both the applied perturbation pulse and the random nature of the MTJ element, the output generated for the MTJ element 130 may vary for each applied perturbation sequence. Thus, after applying at least one read pulse portion of the perturbation sequence, the bit stream output produced at link 164 corresponds to the magnetization state of MTJ element 130. As described above, the output element 150 may be configured to combine, cascade, or otherwise combine the bit-stream outputs from the many RBG circuits to produce a random number output comprising an n-bit vector over the link 170.

The repeated application of perturbation pulses alternating with read pulses and corresponding reset pulses produces a series of random bit outputs for each RBG circuit, and in some examples, the random bit vector output of system 100. However, the bit stream output of each MTJ element and corresponding RBG circuit may not achieve the target probability. Deviations from a target probability (such as a 50% probability) may result in non-random or deterministic output that is less effective for downstream applications. These deviations may be caused by variations in the pulses applied by pulse generator 120, thermal variations and noise, differences in characteristics between MTJ elements, manufacturing tolerances of each circuit element including MTJ elements, electrical or magnetic transient effects, or other factors. The actual measured probability of a magnetization state change of the MTJ element of the RBG circuit can be affected by making an adjustment to at least a reference voltage applied to the MTJ element.

To compensate for at least some of these deviations, a probability compensator is provided in fig. 1. The probability compensator 140 includes a feedback circuit that can monitor the bitstream output produced by the RBG circuit to determine a current probability of the bitstream output by the RBG circuit. The probability is calculated by probability calculator 141 which monitors the output of sense amplifier 143, which is indicative of the magnetization state of MTJ element 130, via link 161. Once the probability is determined, which may span several samples of the link 161 or the period of the bit stream output of the RBG circuit, the probability calculator 141 generates a probability deviation indication via the probability output terminal 162And (4) sign. The probability output terminal 162 includes an electrical link between the probability calculator 141 and the voltage offset circuit 142. The voltage offset circuit 142 receives the probability indicator through the probability output terminal 162 and generates a voltage offset (V)OFFSET) The voltage offset alters a reference potential applied to the pinned layer terminal 135 of the MTJ element 130 at node 163. VOFFSETBy altering the reference potential applied to the MTJ element 130, the effective amplitude of the perturbation pulse applied to the associated MTJ element is altered. Thus, VOFFSETThe probability of switching the magnetization state of the MTJ element 130 is adjusted. In some examples, the probability compensator 140 may be omitted to provide an uncompensated bitstream output or an uncompensated parallel bitstream output.

Although a 50% target probability is typically employed to form a true random number generator, other target probabilities may be selected using the circuits and systems discussed herein. The target probability may be selected within a range of probabilities. By altering the characteristics of the applied perturbation sequence or by making pairs VOFFSETTo adjust the target probability. A probability adjustment circuit, such as probability compensator 140, may monitor the deviation of the measured probability from the target probability in the magnetization state of the MTJ element. The probability compensator 140 may monitor a predetermined amount of random bit stream or bit vector output to determine a measurement probability. The probability compensator 140 then initiates an adjustment to the perturbation sequence. Once the measurement probabilities are determined, the probability compensator 140 may determine the applied perturbation sequences or V required to bring the current probability within a predetermined deviation of the target probabilityOFFSETAnd (4) adjusting. The probability compensator 140 may provide an indication of the adjustment to the voltage offset circuit 142 or to the pulse generator 120 to implement the adjustment.

When an adjustment to the perturbation sequence is indicated, the pulse generator 120 may make an adjustment to at least the perturbation pulse to affect the probabilistic change in the magnetization state of the MTJ element and to bring the measured probability within a predetermined deviation of the target probability. The pulse generator 120 makes adjustments to the perturbation pulses by at least altering one or more of a pulse amplitude and a pulse width associated with applying the perturbation pulses to the MTJ elements in the plurality of unit random bit stream generators. Although not shown in fig. 1 for clarity, pulse generator 120 may have an input terminal that may include an input voltage that sets at least one of a pulse width and a pulse amplitude of the perturbation pulse to achieve at least an initial approximation of the target probability of the corresponding MTJ element.

Since each MTJ element may differ in characteristics, manufacturing tolerances, transient effects, and other factors, a single perturbation pulse width/amplitude selection or adjustment may not yield a target probability across all MTJ elements. Thus, the pulse generator 120 can produce a "coarse" adjustment for the target probability across all MTJ elements employed in the multiple unit random bit-stream generators. V herein can be usedOFFSETThe adjustment technique makes fine-tuning adjustments to individually adjust each MTJ element switching behavior to meet a target probability. When indicating the pair VOFFSETThe voltage offset circuit 142 may adjust the reference voltage applied to the MTJ elements in the plurality of unit random bit stream generators. Advantageously, this target probability is achieved for all MTJ elements despite the differences between MTJ elements.

Turning now to a further discussion of the elements of fig. 1, each of the control elements discussed herein may be comprised of discrete circuitry and logic or may comprise an integrated part incorporated into a processing system, microprocessor. However, for the examples herein, exemplary discrete circuits are discussed. The MTJ elements 130 are typically discrete elements or formed between an array of MTJ elements such as in an MRAM or other device.

The pulse generator 120 includes a bi-directional pulse generation and delivery circuit. The pulse generator 120 has an associated pulse output terminal 121 through which voltage or current pulses are transmitted. The pulse generator 120 includes processing or logic circuitry to determine the pulse width and pulse amplitude output through the pulse output terminal 121 based on the target probability. The target probability may be hard coded or hard wired into the pulse generator 120, or may alternatively include a control input to the pulse generator 120 (not shown in fig. 1 for clarity). The pulses generated by pulse generator 120 include voltage pulses or current pulses having a particular duration, amplitude, direction, or polarity. Various control signals may be presented to the pulse generator 120 to initiate a perturbation sequence including a reset pulse, a read pulse, and a perturbation pulse. One or more switching elements, such as transistors or pass gates, may be included in the pulse generator 120 to selectively provide various pulses during associated phases of operation.

Each Magnetic Tunnel Junction (MTJ) element 130 includes a Spin Transfer Torque (STT) MTJ element having a changeable magnetization state. Each MTJ element 130 includes a first ferromagnetic layer 131 and a second ferromagnetic layer 133 disposed on opposite sides of a thin insulating layer 132. The first ferromagnetic layer 131 of each MTJ element includes a free ferromagnetic layer (referred to herein as a free layer) composed of a ferromagnetic material that permits a magnetic moment of the corresponding ferromagnetic material to change orientation in response to an electromagnetic force. This change in magnetic moment orientation, referred to herein as the magnetization state, changes relative to the second ferromagnetic layer 133 of each MTJ element. This second ferromagnetic layer 133 is referred to herein as the pinned layer, but other generic terms may be used, such as a reference layer or a fixed layer. The pinned layer of each MTJ element is a layer of ferromagnetic material that maintains the magnetic moment of the corresponding ferromagnetic material in a predetermined or fixed state even under the influence of electromagnetic forces that may change the state of the free layer. When the free and pinned layers are in the same magnetization state, then the MTJ element is considered to be in a parallel state (P). When the free and pinned layers are in different magnetization states, then the MTJ element is considered to be in the anti-parallel state (AP). The alterable magnetization state of the MTJ elements discussed herein can be altered between two states (i.e., a parallel state and an anti-parallel state).

Due to the probabilistic behavior of the MTJ element, each specific application of a perturbation pulse to the MTJ element may (or may not) change the magnetization state of the perturbation element. The thermal noise present in the MTJ element and the associated thermal noise variations in the perturbation pulse current or voltage may add probabilistic or random variations to the magnetization state change behavior of the MTJ element. The properties of the perturbation pulse (such as amplitude/magnitude and duration/width) may affect the probabilistic or random switching behavior of the associated MTJ element. Thus, repeated perturbation or "write" attempts may be performed, followed by corresponding read and reset attempts to produce a series of magnetization state changes of the MTJ element. In the examples herein, the perturbation pulse width and amplitude are typically determined by the pulse generator 120 according to a target probability (such as a 50% probability), among other probabilities.

Each MTJ element 130 also has a corresponding terminal that an external circuit can use to apply the pulse and the reference voltage. In particular, each MTJ element 130 has a free layer terminal 134 that electrically couples the free layer 131 of the MTJ to an electrical node or circuit link. Each MTJ element 130 also has a pinned layer terminal 135 that electrically couples the pinned layer 133 of the MTJ to an electrical node or circuit link. Typically, the pinned layer terminal 135 is coupled to an adjustable reference node, while the free layer terminal 134 is coupled to a pulse generator to apply a voltage or current pulse.

May include a sense amplifier 143 that senses a voltage V relative to a corresponding reference voltageRVoltage or current changes. The sense terminal of sense amplifier 143 is coupled to link 160, and the reference terminal of sense amplifier 143 is coupled to VROr a ground voltage. Sense amplifier 143 generates a voltage that represents the magnetization state of MTJ element 130. In response to each read pulse generated by pulse generator 120, the signal on link 160 corresponds to the magnetization state of MTJ element 130. The magnetization state of the MTJ element 130 can be indicated by a change in voltage or current generated on the link 160 in response to a read pulse applied to the MTJ element 130 by the pulse generator 120. Sense amplifier 143 may detect these voltage or current changes, which may include voltage or current spikes, and generate an output in the selected signal format. The selected format may include a logic level or voltage range of a binary bit stream output representation indicative of the current magnetization state of MTJ element 130. The selected format may alternatively indicate only when the magnetization state changes, whereby a sense put is placed when the MTJ element 130 changes state from an initial state to a resulting stateAmplifier 143 may produce a bit stream output that changes logic levels.

The probability calculator 141 includes a probability calculation element and a probability output terminal 162. In this example, the probability computation element includes circuitry configured to monitor the bitstream output on link 161/164 and determine a probability corresponding to the bitstream output. The bitstream output may be monitored over a predetermined period of time, or a predetermined number of samples, among other durations. The probability calculator 141 may sum the changes indicated in the bitstream output and average the sum over a certain number of samples to determine the probability that the bitstream output exhibits. The probability calculator 141 may include an averaging element formed of a summing circuit, an averaging circuit, or an output result combining and storing circuit, among other elements. The summing circuit or summing element may include, among other circuits, a logical summing block, a logical adder, an arithmetic circuit, or a microprocessor circuit configured to produce a summed output. The probability calculator 141 may further include a binary counting circuit for the bit stream output, which may include various logic circuits such as logic gates, flip-flops, shift registers, and the like. Alternatively, the bit stream counter may comprise a microprocessor circuit or system with operational instructions for counting changes in the magnetization state of the MTJ element.

The voltage offset circuit 142 includes a voltage offset generator and an output terminal 163. The output terminal includes an electrical node that generates an adjustable reference potential. The voltage offset circuit 142 may include voltage level shifting circuits, voltage offset circuits, operational amplifiers, sense amplifiers, reference buffers, and other circuits. Voltage offset generator generates V for associated MTJ elementOFFSETAs a reference potential coupled to the MTJ element. An adjustable reference voltage may be provided on reference terminal 163. The voltage offset generator also includes logic or other processing circuitry to convert the probability indicator or probability deviation indicator presented on the probability output terminal 162 to a voltage offset. The voltage offset circuit 142 then implements a voltage offset on the link 163.

The output element 150 has one or more inputs coupled to the bitstream output of any number of RBG circuits (e.g., RBG circuit 110 and 112 of FIG. 1). Output element 150 also provides a digital output to system 100, indicated by link 170 in fig. 1. In some examples, the output element 150 includes a cascade element to present several parallel inputs as a combined output, or a serializer circuit to present several parallel inputs as a serial output. Output elements 150 may include storage circuits, registers, and memory elements in addition to elements that store multi-bit vectors representing one or more random number outputs to be presented over link 170. One or more levels or stages of registers or memory elements may be included to store multi-bit vectors corresponding to one or more random number generation cycles. The output node is also provided by an output element 150. As discussed herein, the output node comprises an electrical node that presents and transmits random numbers generated by one or more random bit stream generator circuits 110 and 112. In fig. 1, link 170 comprises an output node of system 100.

To further describe the operation of the elements of fig. 1, a flow diagram 200 is presented in fig. 2. Fig. 2 illustrates an exemplary operation of the random number generation circuit. Although the operations of fig. 2 are discussed in the context of fig. 1, similar operations may be applied to the systems and circuits present in other figures presented herein. The operations of fig. 2 may be controlled by separate elements of fig. 1, but a centralized or distributed control system may alternatively be employed.

In fig. 2, the pulse generator 120 applies 201 a perturbation sequence to a Magnetic Tunnel Junction (MTJ) element, such as the MTJ element 130 of fig. 1. The pulse generator 120 determines the characteristics of the perturbation sequence to be applied to the MTJ element in a repetitive or cyclic manner based on the target switching probability to be achieved for the MTJ element 130. In particular, the perturbation pulse width and amplitude may be selected based on a target probability (such as a 50% switching probability or other measure). Once the pulse width/duration and amplitude of the perturbation pulse are determined, the pulse generator 120 applies a perturbation sequence (which includes the perturbation pulse) to a random bit stream generator block, such as the RBG circuit 110 and 112, to produce the magnetization state change of the associated MTJ element 130. It should be noted that the pulse width can be chosen as the only characteristic for adjusting the perturbation pulse according to the target probability, while the pulse amplitude is generated at a fixed level. In other examples, the pulse amplitude, or a combination of pulse width and pulse amplitude, may be adjusted according to the target probability.

In the RBG circuit 110 of fig. 1, after being reset to an initial magnetization state, the MTJ element 130 stochastically changes the magnetization state in response to each cycle of perturbation pulse application. The MTJ element 130 may or may not change the magnetization state in response to each application of a perturbation pulse. Although the characteristics of the perturbation pulse affect the probabilistic switching behavior of the MTJ element 130, the MTJ element 130 still exhibits random behavior, with the probability of switching being affected by the characteristics of the perturbation pulse. Since the characteristics of the perturbation pulse are determined based in part on the target switching probability, the switching behavior of each MTJ element will exhibit a magnetization state change that is close to the target switching probability on average.

The sense amplifier 143 generates 202 a random bit stream output consisting of the magnetization state of the MTJ element 130. The magnetization state change is read from the MTJ element 130 during an associated read phase, and the sense amplifier 143 is configured to sense the magnetization state change of the MTJ element 130. In particular, indications of the magnetization state will be produced onto link 160 at free layer terminal 134 of MTJ element 130, and sense amplifier 143 may detect these indications. Sense amplifier 143 may produce additional indications on link 161/164 in a desired signal format, such as a desired logic level or voltage level.

Each state change may be indicated by a "bit" on link 161/164. In the first exemplary output type, only the change in the magnetization state is detected by the sense amplifier 143 in response to application of a read pulse to the MTJ element 130. Sense amplifier 143 may be configured to generate a first indication on link 161/164 when a change in magnetization state is detected and to remain in a previous output state when no change is detected. In this first exemplary output type, the random bit stream output includes an indication of a change in the magnetization state of the MTJ element 130 due to a perturbation sequence. In a second exemplary output type, the sense amplifier 143 or other support circuitry produces an output indicative of the current magnetization state of the MTJ element 130 after application of a read pulse. The first magnetization state (such as parallel or P) may correspond to a logic "0" level, while the second magnetization state (such as anti-parallel or AP) may correspond to a logic "1" level. Various other output levels may alternatively be employed. In this second exemplary output type, the random bit stream output includes both a change and no change in the magnetization state of the MTJ element 130. The first exemplary output type and the second exemplary output type may be employed to generate a random bitstream output.

When more than one RBG circuit is employed, similar operations as described herein for RBG circuit 110 may be performed. Further, the random number output may be presented over link 170 for delivery to any external circuitry or to other circuitry that may be integrated with system 100. The output element 150 may combine the bit stream outputs from more than one RBG circuit to produce a random number output. The random number output may comprise an "n" bit vector in binary format or some other equivalent format. Several RBG circuits may generate random bit outputs in parallel, and the output element 150 may combine bits from each RBG circuit to form a random number output. In some examples, the output element 150 takes more than one bit, or a portion of a bit stream, from each RBG circuit to produce a random number output. The random number output on link 170 may be provided to a control system or host system to further control system 100. When employed, the host system may include one or more computer systems, software elements, or other hardware/software control systems.

A plurality of RBG circuits (i.e., a number of "m" RBG circuits) may be employed, which may be tens, hundreds, or thousands. As described above, the output element 150 may combine the individual bit stream outputs received from each RBG circuit into a result to be presented as a random number output on the link 170. The random number output comprises a digital representation of the combined bit stream. To combine the bitstreams received from the various RBG circuits, the output element 150 may comprise various logic, cascaded circuits, combinational circuits, or processing systems that perform one or more operations on the bitstreams, or portions thereof. For example, a number "m" of RBG circuits are employed to generate the associated bit streams, and the individual bit streams indicate a change in state of the associated MTJ element. A function may be applied to determine a combination of predetermined portions of the bit stream for a number "m" of RBG circuits. Thus, the random number output may include an "n" bit vector consisting of selected portions of each bit stream generated by each RBG circuit over a period of time. Portions of each bit stream may be combined to form larger random numbers, such as an output number of "x" bits from each "m" parallel bit stream combined into (x m n) digital bits. In one example, the portion of each bitstream is a single bit, and thus "m" will be equal to "n". A larger portion of each bit stream may alternatively be combined to form a larger random number.

However, both the bit stream output by each RBG circuit individually and the combined random number output on link 170 may suffer from a deviation of the measured probability from the target probability. If the target probability of the true random number generator function is 50%, the deviation of the output of the RBG circuit may produce a 49% or 51% probability output rather than the target. Other arbitrary probabilistic targets may have similar deviations. The probability compensator 140 is used to compensate for these deviations and return the operation of the RBG circuits 110 and 112 to within a predetermined deviation of the target probability. During the application of the perturbation sequence and the associated sensing of the change in the magnetization state, the probability compensator 140 monitors (203) for a deviation of the measured probability from a target probability in the magnetization state. In response to a deviation from the target probability detected in the measured probability, the probability compensator 140 adjusts (204) a characteristic of the perturbation sequence to affect a probabilistic change in the magnetization state of the MTJ element 130 and to bring the measured probability within a predetermined deviation from the target probability.

In one exemplary operation of the probability compensator 140, the probability calculator 141 monitors the bit stream output produced on the link 161. For a predetermined time period or predetermined bit samples, probability calculator 141 monitors the bit stream and determines the measured or actual probability implemented by RBG circuit 110. One exemplary amount of bits comprises 1000 samples of the link 161, but other amounts of samples may be monitored. The probabilities may be calculated using various logic or processing circuits, such as circuits configured to calculate bit number variations in the total number of bits. When the probability is calculated to deviate from the target probability, the probability calculator 141 may output a probability deviation indicator through the probability output terminal 162. The probability deviation indicator may indicate an analog or digital voltage representation of the amount of deviation that needs to be corrected by the probability compensator 140 to return the measured probability of the bit stream to the target probability. For example, the probability deviation indicator may include the number of bits that there is a deviation within a predetermined time period, or a voltage indicating the magnitude and +/-direction of the deviation. Other representations may be provided through probability output terminal 162.

The target probabilities discussed herein may be hard-coded or hard-wired into elements of the system 100, such as in the pulse generator 120 or the probability compensator 140. The target probability may alternatively be selected via the target probability input 171, or a corresponding input to the pulse generator 120 (not shown in fig. 1). A range of probability targets may be employed, such as when the pulse generator 120 is configured to generate perturbation pulses for a "coarse" probability target, and the probability compensator 140 may make "fine" adjustments within a particular range of the coarse probability target. The target probability may be indicated to the system 100 using a digital or analog representation, a probability value of 0-1, or other representation of the target percentage value. In further examples, one or more configurable storage registers may be employed in system 100 that may hold current values of target probabilities. The user or operator may alter these target probabilities over time.

In response to receiving the probability deviation indicator through the probability output terminal 162, the voltage offset circuit 142 generates an adjustment to a reference node 163 coupled to the pinned layer terminal 135 of the MTJ element 130. Reference node 163 is an adjustable reference node that includes an electrical node from which a voltage may be referenced for a sequence of perturbations applied to MTJ element 130. These adjustments to the reference node 163 effectively alter the "ground" or reference potential experienced by the MTJ element 130 during application of at least the perturbation pulse during the perturbation sequence. The modification of the reference potential of the MTJ element 130 may affect the magnetization switching behavior under the influence of the perturbation pulse, which may ultimately return the magnetization switching behavior of the corresponding RBG circuit to the target probability. A reference buffer, analog voltage modification circuit, transistor circuit, or other circuit element may be included in the voltage offset circuit 142 to alter the reference potential provided to the MTJ element 130.

Returning to the discussion of the perturbation sequence, operations 201 and 202 are repeated in a cyclic manner to generate a random bitstream output, with the associated perturbation sequence applied in each cycle. One cycle through the sequence of reset, disturb and read phases includes a disturb sequence. The perturbation sequence may be repeated multiple times to produce a random bit stream of corresponding length. The random bit stream values noted above will correspond to the magnetization states occurring in each MTJ resulting from the applied perturbation sequence. After probabilistic compensation adjustments have been made to the reference voltages applied to the corresponding MTJ elements, operations 201 and 204 may be repeated.

The perturbation sequence indicated in operation 201 is now discussed in more detail below. As described above, the perturbation sequence includes various phases, which in this example include a reset phase, a perturbation phase, and a read phase. The reset phase occurs prior to the perturbation phase to initialize the MTJ element to a predetermined initial magnetization state. During the reset phase (210), pulse generator 120 generates a reset pulse having a relatively high pulse amplitude in a first polarity or first direction across the associated MTJ element. The pulse generator 120 generates a reset pulse as a voltage pulse or a current pulse introduced at the pulse output terminal 121. Although the reset pulse is applied in a similar direction/polarity as the read pulse, the reset pulse typically has a higher magnitude (amplitude and/or duration) than the read pulse. These reset pulses generally do not vary with the target switching probability, but are predetermined voltage or current pulses that place the respective MTJ element in an initial magnetization state. The initial magnetization state may be anti-parallel (AP) or parallel (P), but in the examples herein, the initial magnetization state of AP will be considered.

After each reset phase, a perturbation phase (211) occurs. During the perturbation phase, the pulse generator 120 applies a perturbation pulse to the MTJ element through the pulse output terminal 121. The perturbation phase occurs before the read phase to probabilistically switch the magnetization state of the MTJ element using a perturbation pulse. Upon application of a perturbation pulse, the MTJ element may switch from an initial magnetization state established during the reset phase to a different magnetization state, or remain in the initial magnetization state. For example, if the initial magnetization state includes an anti-parallel (AP) magnetization state, the MTJ elements may individually change to a parallel (P) magnetization state or remain in the AP state.

The read phase (212) occurs after applying the perturbation pulse. During the read phase, pulse generator 120 applies a read pulse to the MTJ elements through pulse output terminal 121 to determine the change in magnetization state between the MTJ elements due to the previously applied perturbation pulse. When a change of state occurs in a particular MTJ element, a read pulse will generate a signal at the electrical terminal coupled to the free layer of the MTJ element, which signal is indicative of the change of magnetization state. The signal may include a voltage spike caused by applying a read pulse to the MTJ element. The voltage spike may include a short duration increase in voltage at an electrical terminal coupled to the free layer of the MTJ element due to a read current passing through the MTJ element. For the MTJ element 130 in fig. 1, the voltage spike may be provided to the sense amplifier 143 through the corresponding link 160 and then output as a bit stream on link 164.

Fig. 3 is now presented to further illustrate exemplary operation of the elements of fig. 1. FIG. 3 is a waveform diagram presented to illustrate an exemplary measured bit stream output over the range of probability adjustments 300 and 302. In FIG. 3, V established by the probability compensator 140 is usedOFFSETAdjustments are made, but other forms of adjustment may be employed. The single random bit stream generator of FIG. 1 generates 305 each sample bit stream 303, such as any one of the RBG circuits 110, 112. In FIG. 3 by TMEASUREDuring the indicated sample period, a series of perturbation sequences are applied to an exemplary random bit stream generator. Thus, at this TMEASUREWithin a cycle, a number of perturbation sequences are applied to the MTJ elements to generate a corresponding number of bits.

As applied to a ginseng is shown in fig. 3Three exemplary regulated voltages (V) from 0 volt (V) ground potential of the reference voltage output 163OFFSET) I.e., -0.020V (e.g., 300), +0.030V (e.g., 301), and +0.050V (e.g., 302). The bit stream waveform 303 is generated 305 in response to a disturbance sequence applied to the associated MTJ element, which may include conditioning or filtering of other circuitry by the associated sense amplifier. In the example of FIG. 3, multiple perturbation sequences are applied to the MTJ elements, with corresponding pulse trains representing the signals with a particular adjustment voltage VOFFSETProbability adjustment is performed.

In fig. 3, exemplary adjustment voltages are each presented at a reference voltage output 163 that responsively alters a reference potential of the MTJ element for the applied perturbation pulse. The regulated voltage is the regulation from an ideal "ground" voltage of 0 volts. As the pulse generator presents each perturbation pulse to the MTJ element, the MTJ element will probabilistically change the magnetization state or remain in the initial magnetization state. The bit stream waveforms 303-305 reflect the resulting magnetization state, where a "high" or "1" level indicates a change in magnetization state from an initial state, and a "low" or "0" level indicates no change in magnetization state from the initial state.

Each of the bit stream waveforms 303-305 has an AND pair VOFFSETThe adjustments made are probabilistically related to the corresponding amount of magnetization change. For output waveform 303 (V corresponding to-0.020VOFFSET) At TMEASUREThe magnetization state variation within a period indicates a 43.75% switching probability 311. For output waveform 304 (corresponding to V of + 0.030V)OFFSET) At TMEASUREThe magnetization state change over a period indicates a switching probability 312 of 50.00%. For output waveform 305 (corresponding to V of + 0.050V)OFFSET) At TMEASUREThe magnetization state variation within a period indicates a switching probability 313 of 56.25%. Therefore, if the target probability is set to 50%, V of +0.030VOFFSETOptimally corresponding to a target probability (e.g., 50.00% probability). Each bit stream generator circuit will have an individually determined VOFFSETA value to be applied to a corresponding reference voltage output. Thus, an exemplary V of +0.030V of FIG. 3OFFSETWill generallyOnly valid for a single MTJ element or bit stream generator circuit. As described above, V can be paired withOFFSETPeriodic adjustments are made to ensure that the target probability is achieved.

Once the individual bit stream generator circuits have been compensated in accordance with the enhancement processes and circuits discussed herein, the bit stream outputs may be further generated to create parallel outputs and multi-bit vectors corresponding to the multi-digital bit random numbers. A selected number "m" of parallel bit stream generator circuits may be employed, with each output combined to form a multi-bit vector output. Advantageously, each bit stream generator circuit may generate random bit values simultaneously, and thus each perturbation sequence may produce an "m" number of digital bits.

Fig. 4 is presented for the purpose of showing parallel bit stream generator circuitry with corresponding bit stream counts. FIG. 4 is a waveform diagram 400 presented to illustrate an exemplary output of the "m" digital bit parallel bit stream generator circuit scheme of FIG. 1, such as for the combined use of the RBG circuit 110 and 112. The example in fig. 4 shows the results from several perturbation sequences from four MTJ elements forming a four-channel bit-stream generator employed in a parallel arrangement. Although four parallel bit streams are shown in fig. 4, this arrangement may be scaled up or down to a number "m" of parallel bit stream generator circuits, which are applied with a number "n" of perturbation sequences. A selector or selection circuit may be employed to select a desired number of parallel bit stream generator circuits to form a multi-channel bit stream generator circuit.

In fig. 4, the pulse generator 120 generates a repetitive perturbation sequence having characteristics determined in part from the target probability. Specifically, the pulse amplitude or pulse width of the perturbation pulse is determined based on the target probability (such as by scaling or scaling a transition from the target probability to the pulse amplitude or pulse width of the perturbation pulse). As the pulse generator presents each perturbation pulse to the MTJ element, the MTJ element probabilistically changes or remains in the initial magnetization state. The resulting magnetization state is reflected by the output waveforms 401-404, where a "high" or "1" level indicates a change in magnetization state from an initial state, and a "low" or "0" level indicates no change in magnetization state.

The probability compensator 140 shifts the calibrated voltage (V) during the application of the repetitive perturbation sequenceOFFSET) Applied to the pinned layer terminal of each MTJ element. Specifically, V of +0.003V is applied to the para-stream 401OFFSETApplying a V of +0.030V to the para-flow 402OFFSETApplying a V of +0.010V to the bitstream 403OFFSETAnd applies a V of-0.020V to the bit stream 404OFFSET. Although sixteen (16) bits are generated for each exemplary bit stream, the individual bits of each bit stream may be combined to correspond to a random number (R)OUT) The output value 421. For example, output 411 is formed by the fourth bit in each 16-bit stream and has a value of 0x1000, or "8" with base 10. Output 412 is formed from the seventh bit in each 16-bit stream and has a value of 0x0011, or base 10 "3". The output 413 is formed by the eleventh bit in each 16-bit stream and has a value of 0x0001, or a base-10 "1". Thus, the separate output number is generated simultaneously with the number of bits in the output number corresponding to the amount of parallel bit stream generator circuitry.

Advantageously, the multi-channel or highly parallel bit-stream generator circuit and operation shown in fig. 1 and 4 provides faster random number generation time than the single-channel bit-stream generator circuit arrangement. A number of parallel bit stream generator circuits are combined to produce a digital output comprising a random number. When a single bit stream generator circuit arrangement is employed, obtaining n digital bit random numbers will require a number of n perturbation sequences. For example, to generate a 256-bit advanced encryption standard (AES-256) encryption key, 256 perturbation cycles would need to occur. Advantageously, when a multi-channel bit-stream generator circuit arrangement is employed as discussed herein, these 256 bits may be obtained in a single perturbation cycle if 256 parallel bit-stream generator circuits are employed, or a greater number of perturbation cycles may be obtained if fewer than 256 parallel bit-stream generator circuits are employed. The outputs of these parallel bit stream generator circuits are combined as discussed herein to produce an n-digital bit random number. Since each parallel bit stream generator circuit has a corresponding output that is probabilistically generated using MTJ elements,then the probability will vary between the measured bit streams for the target probability. This variation can be advantageously compensated for using an enhanced probability compensation circuit that will calibrate the voltage offset (V)OFFSET) Is applied separately to each MTJ element.

Fig. 5 is presented in order to show a further architecture and arrangement of a parallel bit stream generator circuit. Fig. 5 illustrates an exemplary array 500 of bit stream generator circuits formed between exemplary Magnetoresistive Random Access Memory (MRAM) arrays. The array 500 may be fabricated onto a semiconductor substrate with various control logic, interconnects, or other circuitry. In some examples, an MRAM array will have word lines and bit lines formed between MRAM devices that are horizontally spanned relative to a substrate. Other array configurations and arrangements of MRAM arrays and associated control/interconnect logic than that shown in fig. 5 may be formed, such as vertically stacked arrays.

The array 500 includes an MRAM sub-array 510 and a control circuit 530. the MRAM sub-array 510 is comprised of STT-MRAM cell rows and columns, a column address decoder 511, a row address decoder 512, and a word line (W L) driver 513. A plurality of rows, such as the illustrated row 516 and 517, are formed from a number of STT-MRAM cells that include MTJ elements, the rows of the MRAM sub-array 510 each have a corresponding bit line (B L) and source line (S L) that are controlled by the row address decoder 512. the columns of the MRAM sub-array 510 each have a corresponding word line (W L) that is controlled by the column address decoder 511 and W L driver 513. thus, the MRAM sub-array 510 forms an addressable array having a plurality of memory bits, each memory bit formed from a corresponding MTJ element within each row of the MRAM sub-array 510, the selected memory bits may be used for bit stream generation purposes, such as discussed herein with respect to random bit generators 513.

Although the cell 520 is shown as extending from the bit 514, the cell 520 may represent the structure/configuration of any of the memory bits included herein, whether used as a memory storage element or a random bit generator element, the cell 520 is comprised of an STT-type MTJ element 521, where the pinned layer (P), tunnel layer (T), and free layer (F) are shown, a switching element 525, which may include a transistor, selector, pass gate, or other selectable element, is coupled at a source terminal and a drain terminal between an exemplary source line (S L) 523 and the pinned layer terminal of the MTJ element 521, a control terminal of the switching element 525 is coupled to an exemplary word line (W L) 524, a free layer terminal of the MTJ element 521 is coupled to an exemplary bit line (B L) 522.

The selection and control circuit, which is comprised of portions of the control circuit 530 and portions of the MRAM sub-array 510, may selectively employ one of the memory bits in a storage application and another of the memory bits in a random bit generator application. Thus, an adjustable and dynamic configuration between memory and random bit generator functions may be implemented in MRAM sub-array 510, such as when a different number of random bit generator elements may be desired for a particular random bit generator task. Memory bits not used for the random bit generator task may be used to store the bitstream output of a separate random bit generator element or the digital output of a multi-channel bitstream generation system, such as by using a bit array formed from a plurality of memory bits of the MRAM sub-array 510. The amount of memory bits employed in the random bit generator application may be selected by control circuit 530 or other control circuit not shown in FIG. 5 to achieve the desired size of random numbers generated in each perturbation sequence. To implement larger random numbers, more memory bits may be employed. Conversely, to implement a smaller random number, fewer memory bits may be employed.

Turning now to the control circuit 530, the various circuits shown in FIG. 5 represent at least a portion of a control circuit or control system element for the MRAM sub-array 510 and the bit stream generation system. Additional elements may be included but are not shown in fig. 5 for clarity. These additional elements may include microprocessors, processing systems, host systems, and the like. The control circuit 530 includes a voltage offset circuit 531, a bidirectional pulse generator 532, a probability calculator circuit 533, a cascade element 534, a sense amplifier 535, and a reference buffer 536. The voltage offset circuit 531 further includes a probability selector 538 and a voltage offset generator 537. Portions of the control circuit 530 may be enabled/disabled via a corresponding bitstream enable link 560.

The adjustable target probability is selected using probability selection element 538. The target probability may be introduced to the probability selection element 538 using an input signal, data register, user interface, or other input mechanism. In some examples, such as a 50% probability true random generator (TRNG) example, the target probability may be hard coded or hard wired. Probability selection element 538 provides an indication of the target probability to the corresponding bidirectional pulse generator 532 via corresponding link 566-.

Each bidirectional pulser 532 is coupled to the bit line and source line for a particular memory bit of MRAM sub-array 510 for example, the first bidirectional pulser 532 is coupled to B L at link 5521And is coupled to S L at link 5541And a given "m" bi-directional pulse generator 532 is coupled to B L at link 553MAnd is coupled to S L at link 555M. The address decoder 512 may selectively couple the link 552 and 555 to any row of the MRAM sub-array 510, such as shown for the rows corresponding to bit 514 and bit 515 in FIG. 5. In this manner, each bidirectional pulse generator 532 may apply a pulse across the selected MTJ element. These pulses may have adjustable pulse widths and pulse amplitudes, as discussed herein. The bi-directional pulse generator 532 determines the amplitude or duration characteristics of the perturbation pulses in the perturbation sequence based at least on the target probability indicated from the probability selection element 538.

In addition, each bidirectional pulse generator 532 can adjust a reference potential applied to the MTJ element. The voltage offset generator 537 of the voltage offset circuit 531 indicates the voltage offset to the corresponding bi-directional pulse generator 532, which implements the voltage offset using the reference buffer 536. A reference buffer 536 may be included to modify a reference potential of a pinned layer terminal of the MTJ element (via a corresponding select element) coupled to the MTJ element at a corresponding source line. The reference buffer 536 enables an adjustable reference potential for each MTJ element, as controlled by the corresponding bi-directional pulse generator 532. In fig. 5, link 554 and 555 comprise an adjustable reference node for the bi-directional pulse generator 532.

To determine the voltage offset, a probability calculation circuit 533 and a voltage offset circuit 531 are included. The probability computation circuit 533 monitors the bit stream generated over the links 570-571 and measures the probability exhibited in the bit stream. When a deviation is measured between the target probability and the measured probability, then the probability calculation circuit 533 may indicate the probability deviation to the voltage offset circuit 531. The voltage offset circuit 531 determines a voltage offset that can correct or compensate for the deviation between the target probability and the measured probability. The voltage offset circuit 531 may use a lookup table to quickly calculate the voltage offset (V)OFFSET) Or alternatively using a mathematical/algorithmic relationship to calculate VOFFSET. Voltage offset circuit 531 then generates indicators of the voltage offsets via corresponding link 566-567, and the bidirectional pulse generator 532 can implement these voltage offsets using at least reference buffer 536.

During bit stream generation, the various MTJ elements in the MRAM sub-array 510 produce an output corresponding to the current magnetization state. Sense amplifier 535 detects the output of each MTJ element, such as through links 556 and 557 in fig. 5. These outputs of each MTJ element correspond to changes in the magnetization state of the MTJ element in response to a perturbation pulse and subsequent read pulse issued by the corresponding bidirectional pulse generator 532. Each sense amplifier 535 is coupled to a bit line (such as via links 556 and 557) at a sense input and to a reference voltage V at a reference inputR. In general, VRWill be set to ground potential or zero (0) volts, but in other examples the configuration may be different. Also, note the parameters of each sense amplifier 535Reference voltage VRMay be different from the reference potential applied to each MTJ element. A read enable signal is coupled to each sense amplifier to gate the sampling of the sense input to coincide with the application of a read pulse by the bidirectional pulse generator 532.

The bitstream output is provided to the cascade element 534 via link 564-565. Cascade element 534 takes these separate bit stream outputs as inputs and applies one or more combining processes to produce a digital output (D) at link 569OUT). As discussed herein, the combining process may include concatenation of bits, or may alternatively include a mathematical algorithm. DOUTA bit vector comprising a predetermined bit width corresponding to a desired amount of digital bits in the output number. In some examples, the amount of digital bits corresponds to the number of bit stream outputs employed. In other examples, more than one bit from each bitstream output is combined to form a larger output number. The output of the sense amplifier 535 may alternatively be provided over link 570-571 for direct bit stream readout. The direct bit stream readout may be coupled to an external system that is used to replace elements of the control circuit 530, such as a logic array, processing device, host system, or to convert to other forms of interface signaling.

Fig. 6 illustrates exemplary control operations 600 of a bit stream generation circuit, such as the control portion of the MRAM sub-array 510 and the control circuit 530. In FIG. 6, two functional modes are represented, namely the STT-MRAM mode in signal view 610 and the bit stream generation mode in view 620. The STT-MRAM mode corresponds to using the MRAM cell as a memory storage bit, while the bit stream generation mode corresponds to using the MRAM cell as a bit stream generation element. Any of the memory bits in the MRAM sub-array 510 may operate in a STT-MRAM mode or a bit stream generation mode, depending on the particular control signaling and connected control elements.

For the signal view 610 representing the STT-MRAM mode, the bit stream enable signal 611 is held at a logic low (or "0") level to ensure that the element coupled to the link 560 is inactive, the word line (W L) signal 612 indicates a low level, which is followed by a logic high (or "1") electrical levelFlat to achieve a particular selection element associated with the desired MTJ element, such as shown in the detailed view for cell 520 bit line (B L) signal 613 has a value at TWRITEV applied in cyclesWRITEFor a write process, the source line (S L) signal remains low to serve as a reference potential for the MTJ elementREADWithin a period will VREADA read voltage pulse is applied to B L to read the data bit as the MTJ magnetization state, as indicated by B L signal 613VREADHas a ratio VWRITELower relative voltage amplitude, and the exact value will vary depending on the implementation.

For the signal view 620 representing the bit stream generation mode, the bit stream enable signal 621 remains at a logic high (or "1") level to ensure that the element coupled to the link 560 is active the word line (W L) signal 622 indicates a low level followed by a logic "high" (or "1") level to achieve a particular select element associated with the desired MTJ element, such as shown for the detailed view of the cell 520 the bit line (B L) signal 623 has a signal at TRESETV applied in cyclesRESETA reset voltage pulse to reset the MTJ element to a pre-selected initial magnetization state, such as anti-parallel as indicated by the polarity of the applied reset pulse then a perturbation pulse (V) is applied by holding B L lowPERTURB) While at the same time at TPERTURBBriefly pulse the S L signal 524 to V for the duration ofPERTURB

As discussed herein, the perturbation voltage/amplitude (V)PERTURB) And duration (T)PERTURB) Varying according to the target probability. The perturbation pulse stochastically changes the magnetization state of the associated MTJ element according to the characteristics and other random properties of the perturbation pulse. Additionally, the voltage offset circuit 531 provides voltage offset information over link 556 and 567 to the bidirectional pulse generator 532, which acts in a bidirectional manner to offset the corresponding voltage (V)OFFSET) Applied at least across each particular MTJ elementThe generated perturbation pulse of B L/S L in some examples, this voltage offset may be applied to the S L line 554-555, or using considerations of V when applied across the B L/S L pairOFFSETThe amplitude of the small pulse is adjusted.

At a later time in signal view 620, the signal may be passed by at TREADWithin a period will VREADA voltage pulse is applied to B L to sense the MTJ magnetization state, as indicated in the B L signal 613 at TREADDuring the period, the S L signal 624 remains lowREADHas a ratio VRESETAnd VPERTURBLower relative voltage amplitude, and the exact value will vary depending on the implementation. In this example, the perturbation pulse (V) is applied in a different polarity or direction than the reset pulse and subsequent read pulsePERTURB) Thus, bidirectional pulser 532 acts in a bidirectional manner to apply a corresponding voltage pulse across the B L/S L pair of each particular MTJ element.

Each bitstream generation element comprising a single channel bitstream generator is controlled in a similar manner as described for the operation in the signal view 620 of fig. 6, where VPERTURBThe value is set in proportion to the target probability. The selector may be configured to enable a selected number of the plurality of single-channel bit-stream generators to implement a random number having a desired number of digital bits to produce an output via link 569. The digital output produced by link 569 is based on the target probability and includes a bit vector having a number of "n" bits. The selector may select "m" number of single-channel bit-stream generators of the plurality of single-channel bit-stream generators to be included in the multi-channel bit-stream generation system to provide m bits simultaneously, which may be combined by the concatenation element 534 to form the n-bit number. The selector as discussed herein may include elements of the address decoder 511 and 512 as directed by the associated control system or host system. Alternatively, the selector may include a switching element, a multiplexer, and a logic circuit to control the selection operation.

Advantageously, a large array of parallel operating bit stream generating elements may be employed by the array 500 to form a multi-channel bit stream generating system, which may include a True Random Number Generator (TRNG) process when a 50% target probability is selected. As discussed herein, the array of single channel bit-stream generators forms the array 500. The array comprises 1- "m" single channel bit-stream generators, which are schematically represented in FIG. 1 as individual RNG circuits 110 and 112. In fig. 5, these single channel bit-stream generators are formed by selected MRAM rows with corresponding MTJ elements. These MTJ elements are each incorporated into a single channel bit-stream generator formed by the MTJ elements, portions of address decoder 511 and 512, bidirectional pulse generator 523, voltage offset circuit 531, probability calculation circuit 533, sense amplifier 535, and associated interconnects. Although coupled in a substantially parallel manner, each single channel bit-stream generator may have associated connection circuitry, interface logic, or other interworking elements to couple the single channel bit-stream generators to form the array. The output of each bit stream generator may be presented individually via links 570-571 or combined by the concatenation element 534 to form a multi-bit combined number presented on output link 569.

To further illustrate the magnetization state change between MTJ elements, fig. 7 is presented. Fig. 7 illustrates an operation of the MTJ element to switch states between an anti-parallel (AP) state and a parallel (P) state. An exemplary MTJ element configuration is shown having a pinned layer, a tunnel barrier layer, and a free layer. The pinned layer typically has a magnetization that is fixed in a particular orientation, such as shown in FIG. 7. The free layer can change orientation depending on the applied current or voltage pulse. When both the pinned and free layers are in the same magnetic orientation, then the two layers can be considered to be in a "parallel" state. When the pinned and free layers are in different magnetic orientations, then the two layers can be considered to be in an "antiparallel" state. The MTJ element configuration may be schematically represented as a state-modifiable resistor element as shown in configuration 700.

To change the state between the MTJ elements, such as by changing the relative magnetic orientation between the pinned and free layers, a current or voltage pulse may be applied to the MTJ elements. Graph 701 shows an exemplary state change arrangement. Graph 701 showsHow to apply the disturbance current (I)PERTURB) How the MTJ element can enter the subsequent P-state from the initial AP-state, and how it can enter the subsequent AP-state from the initial P-state. Exhibits hysteresis-like behavior in which a sufficient magnitude (pulse amplitude) and duration (pulse width) of the perturbation current is required to change the state of the MTJ element once the MTJ element has changed to another state. The various P-states and AP-states have associated resistances (R) associated therewithMTJ) The associated resistance is indicated by the vertical axis in graph 701. In graph 701, the AP-state has an associated resistance (R) that is high relative to the P-stateAP) And the P-state has a low associated resistance (R) relative to the AP-stateP). These resistance changes may be used to generate an output in response to a read pulse, as discussed herein.

As described above, the characteristics (such as magnitude and duration) of the perturbation pulses may affect the state change. Typically, a pulse or pulse train is applied to the MTJ element to attempt to change the state of the MTJ element. As shown in graph 703, the pulse may have a pulse width and a pulse amplitude. The pulse width may be expressed in seconds (or nanoseconds in fig. 7) and the pulse amplitude may be expressed in voltages or amps. Fig. 7 shows the voltage amplitude that may induce a current for the MTJ element. Insufficient pulse width or pulse amplitude may result in an inability to switch the state of the MTJ element because the associated magnetization begins to leak once the applied pulse is removed. A sufficient pulse width or pulse amplitude, or a sufficient series of pulses, may cause the MTJ element to switch states. Therefore, the MTJ element exhibits probabilistic or random behavior. Random thermal fluctuations in the MTJ element can be used to generate random bit values. The switching probability is a strong function of the characteristics of the applied perturbation pulse. Once the MTJ element changes magnetization state, the MTJ element must be reset back to the initial state. Thus, the operation of the MTJ element can be broken down into three cycles, a "perturbation" phase, followed by a "read" phase and a "reset" phase.

Graph 703 of fig. 7 provides an illustration of a characterization of the behavior of the MTJ element at various pulse widths (in nanoseconds) along the vertical axis and various pulse amplitudes (in voltages) along the horizontal axis. The 50% contour line 704 is shown to illustrate an exemplary characteristic behavior of a True Random Number Generator (TRNG) behavior of the MTJ element over a range of pulse widths and pulse amplitudes. Each outline shading indicates a region of associated switching probability of the MTJ element from the AP-state to the P-state. Various probability compensation circuits discussed herein adjust the characteristics of the perturbation pulse and thereby affect the switching probability of the MTJ element, as shown in graph 703. The switching probability may vary from the 50% contour 704 and probability compensation circuitry is provided herein to return the probability presented to within the target probability of the 50% contour. Thus, the MTJ elements discussed herein may be used to produce true randomness in the output number that compensates for drift and manufacturing variations. Also, a faster random number generation time can be achieved in fewer perturbation cycles with a parallel circuit arrangement than with a separate random number generation circuit.

In some embodiments of the systems, circuits, and elements discussed herein, random circuits may be established. The random circuit may include, among other circuits, a random number generator circuit. The random circuit may include means for applying a reset pulse to a plurality of Magnetic Tunnel Junction (MTJ) elements to reset the MTJ elements into a predetermined magnetization state. The random circuit may include means for applying a perturbation pulse to the plurality of MTJ elements to affect magnetization states of the plurality of MTJ elements after application of the reset pulse. The random circuit may include means for applying a read pulse to the plurality of MTJ elements to indicate a magnetization state among the plurality of MTJ elements after application of the perturbation pulse. The random circuit may comprise means for presenting the magnetization state as a multi-bit number corresponding to a random output, and means for measuring the probability between changes in the magnetization state due to repeated sequential application of a reset pulse, a perturbation pulse and a read pulse. The stochastic circuit may include means for detecting a deviation between the probabilities from a target probability, and means for indicating an adjustment to the perturbation pulse to bring the probability within a predetermined deviation from the target probability. The stochastic circuit may further comprise means for selecting a target probability within the probability range by altering the adjustment to the perturbation pulse.

In addition to the elements discussed herein, the means for applying a reset pulse, the means for applying a perturbation pulse, and the means for applying a read pulse may each comprise a pulse generator 120, a pulse output terminal 121, a link 160, 163, an RBG circuit 110, an MTJ element 130, a probability compensator 140, a probability calculator 141, a voltage offset circuit 142, a subarray 510, a control circuit 530, a bi-directional pulse generator 532, a link 551, 555, a link 560, an address decoder 511, a W L driver 513, an address decoder 512, and any of the associated bit line, source line, and word line, in addition to the elements discussed herein, the means for measuring the probability between changes in magnetization state due to repeated application of reset pulse, perturbation pulse, and read pulse may comprise an RBG circuit 110, a link 130, a probability compensator 140, a probability calculator 141, a voltage offset circuit 142, a sense amplifier 143, a link 160, a link 166, a control circuit 530, a control circuit 533, a link 166, a control circuit 530, a control circuit 533, a link 166, a link 530, a control circuit 530, a buffer circuit 533, a buffer circuit for sensing a link 166, a buffer circuit for sensing a buffer circuit for sensing a signal, a buffer circuit for sensing signal, a.

The description and drawings are included to depict specific embodiments that teach those skilled in the art how to make and use the best mode. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these embodiments that fall within the scope of the disclosure. Those skilled in the art will also appreciate that the above-described features may be combined in various ways to form multiple embodiments. Accordingly, the invention is not to be limited by the specific embodiments described above, but only by the claims and their equivalents.

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于协作处理计算任务的平台

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类