One-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations
One-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations is disclosed. PUF memory is configured to permanently one-time program an initial randomly generated PUF output from PUF MRAM bit cells accessed in an initial PUF read operation, to the same PUF MRAM bit cells accessed in the initial PUF read operation. In this manner, the initial PUF output is randomly generated due to process variations of the PUF MRAM bit cells to maintain an initial unpredictable memory state, but the PUF output will be reproduced for subsequent PUF read operations to the same PUF MRAM bit cells in the PUF memory array for reproducibility. The OTP of the PUF MRAM bit cells can be accomplished by applying breakdown voltage to the PUF MRAM bit cells during programming.
Latest QUALCOMM Incorporated Patents:
- Techniques for listen-before-talk failure reporting for multiple transmission time intervals
- Techniques for channel repetition counting
- Random access PUSCH enhancements
- Random access response enhancement for user equipments with reduced capabilities
- Framework for indication of an overlap resolution process
The technology of the disclosure relates generally to physically unclonable functions (PUFs), and more particularly to PUF cells employing a magnetic tunnel junction (MTJ) for generating a random output as a function of MTJ resistance.
II. BackgroundA physical unclonable function (PUF) (also called a physically unclonable function (PUF)) is a physical entity that is embodied in a physical structure, and is easy to evaluate but hard to predict. PUFs depend on the uniqueness of their physical microstructure. This microstructure depends on random physical factors introduced during manufacturing. For example, in the context of integrated circuits (ICs), an on-chip PUF is a chip-unique challenge-response mechanism exploiting manufacturing process variations inside the ICs. These manufacturing process variations are unpredictable and uncontrollable, which makes it virtually impossible to duplicate or clone the structure. When a stimulus is applied to a PUF cell, the PUF cell reacts and generates a response in an unpredictable but repeatable way due to the complex interaction of the stimulus with the physical microstructure of the IC employing the PUF cell. This exact microstructure of the IC depends on physical factors introduced during its manufacture, which are unpredictable. The applied stimulus is called the “challenge,” and the reaction of the PUF cell is called the “response.” A specific challenge and its corresponding response together form a challenge-response pair (CRP) or challenge-response behavior. The PUF's “unclonability” means that each IC employing the PUF cell has a unique and unpredictable way of mapping challenges to responses, even if one IC is manufactured with the same process as another seemingly identical IC. Thus, it is practically infeasible to construct a PUF cell with the same challenge-response behavior as another IC's PUF cell, because exact control over the manufacturing process is infeasible.
Because it is practically infeasible to construct a PUF cell with the same challenge-response behavior as another PUF cell, a PUF cell can be included in an IC to generate unique, random information based on the underlying physical characteristics of a device. For example, information generated by the PUF cell may be used to authenticate a device or may be used as a cryptographic key. As another example, a mobile device may include circuitry that is configured to generate a PUF output for use as a basis for a device identifier of the device. The device identifier may be used as part of an authentication process with a server that is programmed with the device identifier.
PUF cells can be implemented in several different technologies. As an example, a PUF cell can be provided in the form of a static random access memory (SRAM) cell. For example,
Ideally, the inverters 104(1), 104(2) will be symmetrically matched so that the SRAM bit cell 102 is not skewed to favor settling to one voltage state over the other. For example, length L and threshold voltages VTH of complementary pull-up PFETs 106P(1), 106P(2) and complementary pull-down NFETs 106N(1), 106N(2) can be sized to generate a same voltage noise VNOISE. As shown in
Thus, the SRAM PUF cell 100 in
Another technique to provide a PUF cell is to use a spin-transfer torque (STT) magnetic tunnel junction (MTJ). In STT-MTJ devices, the spin polarization of carrier electrons, rather than a pulse of a magnetic field, is used to program the state stored in an MTJ device (i.e., a ‘0’ or a ‘1’).
With continuing reference to
The idea behind employing a STT-MRAM bit cell, such as the MRAM bit cell 302 in
Because the PUF output from a PUF cell is often used for security-related applications and authorizations, it is desired to make a PUF memory to provide reproducible results, but to also not be susceptible to attack from the PUF cells being written with unauthorized data.
SUMMARY OF THE DISCLOSUREAspects disclosed herein include one-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations. In this regard, in aspects disclosed herein, a PUF MRAM is provided that includes an MRAM PUF array comprising a plurality of PUF MRAM bit cells organized in row and column format. For example, the PUF MRAM bit cells may each include a magnetic tunnel junction (MTJ) that can be programmed, such as by spin-transfer torque (STT), to change a magnetization state of a free layer to be in either a parallel (P) or anti-parallel (AP) state to designate the storage of a logic ‘0’ or ‘1’ memory state. An initial read operation to PUF MRAM bit cells in the MRAM PUF array will generate a random PUF output based on the process variation and other skew factors of the PUF MRAM bit cells. This PUF output may not be reproducible because of the random nature of the PUF output. However, it may be desirable for the PUF output from the same accessed PUF MRAM bit cells to be reproducible on subsequent PUF operations. In this regard, in aspects disclosed herein, the initial randomly generated PUF output from PUF MRAM bit cells accessed in an initial PUF read operation to the MRAM PUF array is subsequently used to OTP the same PUF MRAM bit cells into the same random read memory state permanently. In this manner, the initial PUF output is randomly generated due to the process variations of the PUF MRAM bit cells to maintain an initial unpredictable memory state, but the PUF output will be reproduced for subsequent PUF read operations to the same PUF MRAM bit cells in the MRAM PUF array for reproducibility. The OTP of the PUF MRAM bit cells to permanently program their memory state to their initial PUF output can be accomplished by applying a breakdown voltage to the PUF MRAM bit cells during their programming such that their respective MTJs are stressed and their respective tunnel barriers electrically breakdown and become short circuits. In this manner, the programmed state in the PUF MRAM bit cells is based on the process variations therein to maintain its initial unpredictable state, but such programming is made permanent.
In additional aspects disclosed herein, the MRAM PUF array can be integrated into an MRAM array that also contains an MRAM data memory for data operations. For example, certain MRAM bit cells in the MRAM array (e.g., one or more memory rows of MRAM bit cells) can be designated as PUF MRAM bit cells to form the MRAM PUF array in the MRAM array. For example, a programmer may configure certain MRAM bit cells in the MRAM array to be PUF MRAM bit cells for an MRAM PUF array. Thus, the MRAM PUF array can include one or more memory rows of both data MRAM bit cells and reference MRAM bit cells. The PUF MRAM bit cells in the MRAM PUF array can each be initially programmed to the same memory state (e.g., logic ‘0’ or ‘1’ memory state) in a configuration mode. Then, in response to a PUF read operation in the MRAM PUF array, the PUF MRAM bit cells and reference MRAM bit cells in the selected memory row in the MRAM PUF array activated by the PUF read operation are accessed. The resistance sensed from the PUF MRAM bit cells is compared to the reference resistance between the reference MRAM bit cells in the accessed memory row. The difference in sensed resistance between the PUF MRAM bit cells and the reference resistance of the PUF MRAM reference cells is used to generate a PUF output. This difference in resistances between the PUF MRAM bit cells and the reference MRAM bit cells will be unpredictable in nature since the PUF MRAM bit cells and the reference MRAM bit cells are all initially programmed to the same memory state. Thereafter, the PUF output can be used to OTP the PUF MRAM bit cells in the accessed memory row in the MRAM PUF array so that subsequent PUF read operations to the same PUF MRAM bit cells generate the same PUF output. Further, by integrating the MRAM PUF array into an MRAM array that also contains an MRAM data array, access circuitry, such as sense amplifiers, write drivers, and decoders, for example, can be shared to control access to the MRAM array for both memory read and PUF read operations, thus saving memory area as opposed to providing a PUF memory having its own dedicated access circuitry separate from a data memory.
In this regard, in one exemplary aspect, a memory access circuit for programming one or more PUF MRAM bit cells in an MRAM PUF array comprising at least one MRAM bit cell row circuit of PUF MRAM bit cells is provided. The memory access circuit comprises a data output circuit configured to, in response to a PUF read operation selecting an MRAM bit cell row circuit of PUF MRAM bit cells to be read, receive a PUF data signal representing a resistance of at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation. The data output circuit is configured to generate a PUF output indicating a memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal. The memory access circuit also comprises a write driver circuit coupled to the PUF output. The write driver circuit is configured to, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read, generate a program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on the memory state indicated by the PUF output.
In another exemplary aspect, a memory access circuit for programming one or more PUF MRAM bit cells in an MRAM PUF array comprising at least one MRAM bit cell row circuit of PUF MRAM bit cells is provided. The memory access circuit comprises a means for generating a program write signal to program at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array. In response to a PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read, the memory access circuit comprises a means for receiving a PUF data signal representing a resistance of the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation, a means for generating a PUF output based on the PUF data signal, and a means for generating a program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on a memory state indicated by the PUF output.
In another exemplary aspect, a method of programming at least one PUF MRAM bit cell in an MRAM PUF array in an MRAM for performing a PUF operation is provided. The MRAM PUF array comprises a plurality of MRAM bit cell row circuits each comprising a plurality of PUF MRAM bit cells, and a plurality of MRAM bit cell column circuits each comprising a PUF MRAM bit cell from an MRAM bit cell row circuit among the plurality of MRAM bit cell row circuits. The method comprises receiving a PUF data signal representing a resistance of at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit for a selected MRAM bit cell row circuit for a PUF read operation, and generating a PUF output indicating a memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal. The method further comprises generating a program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on the memory state indicated by the PUF output.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed herein include one-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations. In this regard, in aspects disclosed herein, a PUF MRAM is provided that includes an MRAM PUF array comprising a plurality of PUF MRAM bit cells organized in row and column format. For example, the PUF MRAM bit cells may each include a magnetic tunnel junction (MTJ) that can be programmed, such as by spin-transfer torque (STT), to change a magnetization state of a free layer to be in either a parallel (P) or anti-parallel (AP) state to designate the storage of a logic ‘0’ or ‘1’ memory state. An initial read operation to PUF MRAM bit cells in the MRAM PUF array will generate a random PUF output based on the process variation and other skew factors of the PUF MRAM bit cells. This PUF output may not be reproducible because of the random nature of the PUF output. However, it may be desirable for the PUF output from the same accessed PUF MRAM bit cells to be reproducible on subsequent PUF operations. In this regard, in aspects disclosed herein, the initial randomly generated PUF output from PUF MRAM bit cells accessed in an initial PUF read operation to the MRAM PUF array is subsequently used to OTP the same PUF MRAM bit cells into the same random read memory state permanently. In this manner, the initial PUF output is randomly generated due to the process variations of the PUF MRAM bit cells to maintain an initial unpredictable memory state, but the PUF output will be reproduced for subsequent PUF read operations to the same PUF MRAM bit cells in the MRAM PUF array for reproducibility. The OTP of the PUF MRAM bit cells to permanently program their memory state to their initial PUF output can be accomplished by applying a breakdown voltage to the PUF MRAM bit cells during their programming such that their respective MTJs are stressed and their respective tunnel barriers electrically breakdown and become short circuits. In this manner, the programmed state in the PUF MRAM bit cells is based on the process variations therein to maintain its initial unpredictable state, but such programming is made permanent.
In additional aspects disclosed herein, the MRAM PUF array can be integrated into an MRAM array that also contains an MRAM data memory for data operations. For example, certain MRAM bit cells in the MRAM array (e.g., one or more memory rows of MRAM bit cells) can be designated as PUF MRAM bit cells to form the MRAM PUF array in the MRAM array. For example, a programmer may configure certain MRAM bit cells in the MRAM array to be PUF MRAM bit cells for an MRAM PUF array. Thus, the MRAM PUF array can include one or more memory rows of both data MRAM bit cells and reference MRAM bit cells. The PUF MRAM bit cells in the MRAM PUF array can each be initially programmed to the same memory state (e.g., logic ‘0’ or ‘1’ memory state) in a configuration mode. Then, in response to a PUF read operation in the MRAM PUF array, the PUF MRAM bit cells and reference MRAM bit cells in the selected memory row in the MRAM PUF array activated by the PUF read operation are accessed. The resistance sensed from the PUF MRAM bit cells is compared to the reference resistance between the reference MRAM bit cells in the accessed memory row. The difference in sensed resistance between the PUF MRAM bit cells and the reference resistance of the PUF MRAM reference cells is used to generate a PUF output. This difference in resistances between the PUF MRAM bit cells and the reference MRAM bit cells will be unpredictable in nature since the PUF MRAM bit cells and the reference MRAM bit cells are all initially programmed to the same memory state. Thereafter, the PUF output can be used to OTP the PUF MRAM bit cells in the accessed memory row in the MRAM PUF array so that subsequent PUF read operations to the same PUF MRAM bit cells generate the same PUF output. Further, by integrating the MRAM PUF array into an MRAM array that also contains an MRAM data array, access circuitry, such as sense amplifiers, write drivers, and decoders, for example, can be shared to control access to the MRAM array for both memory read and PUF read operations, thus saving memory area as opposed to providing a PUF memory having its own dedicated access circuitry separate from a data memory.
Before discussing exemplary details on the one-time programming (OTP) of magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from their previous read operation to provide PUF operations, exemplary details of a memory system that includes an MRAM with an MRAM PUF array to control access to PUF MRAM bit cells for performing PUF operations is first discussed with regard to
In this regard,
With continuing reference to
With continuing reference to
As will also be discussed in more detail below, one or more of the MRAM bit cell column circuits 412(0)-412(N) may be dedicated to provided reference MRAM bit cells 408( )(0)-408( )(N) whose sensed memory state (e.g., as a function of voltage or resistance) can be compared to a sensed memory state of other PUF MRAM bit cells 408(0)(0)-408(M)(N) in the same selected memory row 0-M. In this manner, the comparison of the sensed memory state between the reference MRAM bit cells 408( )(0)-408( )(N) and other accessed PUF MRAM bit cells 408( )(0)-408( )(N) in the same memory row 0-M has the effect of cancelling or mitigating process variation in the PUF MRAM bit cells 408(0)(0)-408(M)(N). This is because the PUF MRAM bit cells 408(0)(0)-408(M)(N) and the reference MRAM bit cell(s) 408( )(0)-408( )(N) are fabricated in the same semiconductor die in this example and thus both experience the same or similar process variations that skew their memory state characteristic (e.g., resistance). Otherwise, memory state characteristics in the PUF MRAM bit cells 408(0)(0)-408(M)(N) may be skewed due to process variation, which will then result in the PUF output 426(0)-426(N) being skewed to a particular memory state and thus not random.
A product identifier (or an identification or authorization process using PUF challenges and responses), a cryptographic key, or both may include (or be generated based on) the PUF output 426(0)-426(N). Because the PUF output 426(0)-426(N) is based on process-dependent variations at components (e.g., MTJ devices and transistors) of the PUF MRAM bit cells 408(0)(0)-408(M)(N) in the MRAM PUF array 406, the device identifier or the cryptographic key may be difficult or impossible to generate at another device. For example, another device including an MRAM array of similarly configured PUF MRAM bit cells 408(0)(0)-408(M)(N) in the MRAM PUF array 406 will likely generate a different PUF output 426(0)-426(N) in response to a particular challenge due to device-specific differences in transistor strengths and process-dependent characteristics of the PUF MRAM bit cells 408(0)(0)-408(M)(N) (e.g., resistance). Thus, another MRAM with the same configuration as the MRAM PUF array 406 in the MRAM 400 in
In the example MRAM 400 in
As discussed above, the MRAM PUF array 406 in the MRAM 400 in
In this regard, an exemplary process 500 of one-time programming (OTP) to addressed PUF MRAM bit cells 408(0)(0)-408(M)(N) in breakdown in a PUF write operation to the memory state from a previous PUF read operation will now be discussed in reference to
With continued reference to
As an example, the one-time programming (OTP) of PUF MRAM bit cells 408(0)(0)-408(M)(N) to permanently program their memory state to their initial PUF output 426(0)-426(N) can be accomplished by applying a breakdown voltage between the respective bit line BL(0)-BL(N) and source line SL(0)-SL(N) of the programmed PUF MRAM bit cells 408(0)(0)-408(M)(N) during their programming, such that their respective MTJs 428(0)(0)-428(M)(N) are stressed and their respective tunnel barriers electrically breakdown and become short circuits. In this manner, the programmed state in the PUF MRAM bit cells 408(0)(0)-408(M)(N) is based on the process variations therein to maintain its initial unpredictable state, but such programming is made permanent. Breakdown voltage is the voltage at which a dielectric layer used as the tunnel barrier for the MTJ 428(0)(0)-428(M)(N) is stressed, such that it electrically breaks down and becomes a short. A dielectric breakdown condition is irreversible. For example, the PUF MRAM bit cells 408(0)(0)-408(M)(N) may have a breakdown voltage of 1.6 Volts (V) for example, which is higher than a write voltage that would be used to write a memory state to the PUF MRAM bit cells 408(0)(0)-408(M)(N) without breakdown such that the PUF MRAM bit cells 408(0)(0)-408(M)(N) could be subsequently overwritten with a new memory state.
With continuing reference to
With continuing reference to
With continuing reference to
As discussed above, the data output 640 is coupled to the write driver data input 616 of the write driver circuit 422. Thus, after a PUF read operation is performed, the PUF outputs 426(0)-426(N) generated by the data output circuit 633 are provided to the write driver data input 616 to be used to program the PUF MRAM bit cells 408(0)(0)-408(M)(N−1) for the selected MRAM bit cell row circuit 410(0)-410(M) accessed in the PUF read operation to the same sensed memory state. In one example, as discussed above, the write driver circuit 422 is configured to generate a higher voltage signal as the program write signal 612 on the write driver output 610 that is equal to or in excess of the breakdown voltage of the MTJs 428(0)(0)-428(M)(N−1) of the PUF MRAM bit cells 408(0)(0)-408(M)(N−1) for the selected MRAM bit cell row circuit 410(0)-410(M) to one-time program (OTP) such PUF MRAM bit cells 408(0)(0)-408(M)(N−1) to the memory states of the PUF outputs 426(0)-426(N) from the PUF read operation. In this manner, in a subsequent PUF read operation to the PUF MRAM bit cells 408(0)(0)-408(M)(N−1), the initial random memory state of the PUF MRAM bit cells 408(0)(0)-408(M)(N−1) will be repeatedly reproduced since the PUF MRAM bit cells 408(0)(0)-408(M)(N−1) were forced to the memory state in the PUF write operation based on the PUF outputs 426(0)-426(N).
The MRAM 400 in
Memory data write and read operations can also be performed in the MRAM data array 702 that are not PUF operations. In this regard, as previously discussed above, the write driver circuit 422 in the MRAM 700 in
Another aspect involves a memory access circuit for programming one or more PUF MRAM bit cells in an MRAM PUF array comprising at least one MRAM bit cell row circuit of PUF MRAM bit cells. In this regard, the memory access circuit comprises a means for generating a program write signal to program at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array. An example of the means for generating a program write signal to program at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array can include the memory access circuit 600, and more particularly, the write driver circuit 422 in
MRAMs that include an MRAM PUF array that includes PUF MRAM bit cells for supporting PUF operations, wherein a PUF memory system further supports one-time programming (OTP) of the PUF MRAM bit cells in breakdown to a memory state from their previous read operation may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc.), a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, an automobile, a vehicle component, avionics systems, a drone, and a multicopter.
In this regard,
In this example, the processor-based system 800 is provided in an IC 804. The IC 804 may be included in or provided as a system-on-a-chip (SoC) 806. The processor-based system 800 includes a processor 808 that includes one or more CPUs 810. The processor 808 may include a cache memory 812 coupled to the CPU(s) 810 for rapid access to temporarily stored data. The cache memory 812 may include MRAM PUF array that include one or more MRAMs that includes an MRAM PUF array that includes PUF MRAM bit cells for supporting PUF operations, wherein the PUF memory system further supports one-time programming (OTP) of the PUF MRAM bit cells in breakdown to a memory state from their previous read operation can include the MRAM 400, and/or MRAM PUF array 406 in
Other master and slave devices can be connected to the system bus 814. As illustrated in
The processor 808 may also be configured to access the display controller(s) 828 over the system bus 814 to control information sent to one or more displays 832. The display controller(s) 828 sends information to the display(s) 832 to be displayed via one or more video processors 834, which process the information to be displayed into a format suitable for the display(s) 832. The display controller(s) 828 and the video processor(s) 834 can include one or more MRAMs that includes an MRAM PUF array that includes PUF MRAM bit cells for supporting PUF operations, wherein the PUF memory system further supports one-time programming (OTP) of the PUF MRAM bit cells in breakdown to a memory state from their previous read operation can include the MRAM 400, and/or MRAM PUF array 406 in
The transmitter 908 or the receiver 910 may be implemented with a super-heterodyne architecture or a direct-conversion architecture. In the super-heterodyne architecture, a signal is frequency-converted between RF and baseband in multiple stages, e.g., from RF to an intermediate frequency (IF) in one stage, and then from IF to baseband in another stage for the receiver 910. In the direct-conversion architecture, a signal is frequency-converted between RF and baseband in one stage. The super-heterodyne and direct-conversion architectures may use different circuit blocks and/or have different requirements. In the wireless communications device 900 in
In the transmit path, the data processor 906 processes data to be transmitted and provides I and Q analog output signals to the transmitter 908. In the exemplary wireless communications device 900, the data processor 906 includes digital-to-analog converters (DACs) 912(1), 912(2) for converting digital signals generated by the data processor 906 into the I and Q analog output signals, e.g., I and Q output currents, for further processing.
Within the transmitter 908, lowpass filters 914(1), 914(2) filter the I and Q analog output signals, respectively, to remove undesired signals caused by the prior digital-to-analog conversion. Amplifiers (AMP) 916(1), 916(2) amplify the signals from the lowpass filters 914(1), 914(2), respectively, and provide I and Q baseband signals. An upconverter 918 upconverts the I and Q baseband signals with I and Q transmit (TX) local oscillator (LO) signals through mixers 920(1), 920(2) from a TX LO signal generator 922 to provide an upconverted signal 924. A filter 926 filters the upconverted signal 924 to remove undesired signals caused by the frequency upconversion as well as noise in a receive frequency band. A power amplifier (PA) 928 amplifies the upconverted signal 924 from the filter 926 to obtain the desired output power level and provides a transmit RF signal. The transmit RF signal is routed through a duplexer or switch 930 and transmitted via an antenna 932.
In the receive path, the antenna 932 receives signals transmitted by base stations and provides a received RF signal, which is routed through the duplexer or switch 930 and provided to a low noise amplifier (LNA) 934. The duplexer or switch 930 is designed to operate with a specific receive (RX)-to-TX duplexer frequency separation, such that RX signals are isolated from TX signals. The received RF signal is amplified by the LNA 934 and filtered by a filter 936 to obtain a desired RF input signal. Downconversion mixers 938(1), 938(2) mix the output of the filter 936 with I and Q RX LO signals (i.e., LO_I and LO_Q) from an RX LO signal generator 940 to generate I and Q baseband signals. The I and Q baseband signals are amplified by amplifiers (AMP) 942(1), 942(2) and further filtered by lowpass filters 944(1), 944(2) to obtain I and Q analog input signals, which are provided to the data processor 906. In this example, the data processor 906 includes ADCs 946(1), 946(2) for converting the analog input signals into digital signals to be further processed by the data processor 906.
In the wireless communications device 900 of
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer-readable medium and executed by a processor or other processing device, or combinations of both. The master devices and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flow chart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A memory access circuit for programming one or more physically unclonable function (PUF) magneto-resistive random access memory (MRAM) bit cells in an MRAM PUF array comprising at least one MRAM bit cell row circuit of PUF MRAM bit cells, the memory access circuit comprising:
- a data output circuit configured to, in response to a PUF read operation selecting an MRAM bit cell row circuit of PUF MRAM bit cells to be read: receive a PUF data signal representing a resistance of at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation; and generate a PUF output indicating a memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal; and
- a write driver circuit coupled to the PUF output, the write driver circuit configured to, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read: generate a first program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on the memory state indicated by the PUF output.
2. The memory access circuit of claim 1, wherein the write driver circuit is further configured to generate a second program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array.
3. The memory access circuit of claim 1, wherein the write driver circuit is configured to, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read, generate the first program write signal at or exceeding a breakdown voltage of the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to one-time program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to the permanent memory state based on the memory state indicated by the PUF output.
4. The memory access circuit of claim 1, wherein the write driver circuit comprises a write driver data input and a write driver data output coupled to at least one MRAM bit cell column circuit in the MRAM PUF array;
- the write driver circuit configured to: generate the first program write signal on the write driver data output to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to the permanent memory state based on the memory state indicated by the PUF output.
5. The memory access circuit of claim 4, wherein the write driver circuit is configured to generate the first program write signal on the write driver data output to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array.
6. The memory access circuit of claim 2, further comprising a program selector circuit configured to selectively pass a write signal among a data input signal and the first or the second program write signal in response to a PUF enable signal.
7. The memory access circuit of claim 6, wherein the program selector circuit comprises a program selector data input, a read data input coupled to the PUF output, and a program selector output coupled to the write driver circuit.
8. The memory access circuit of claim 6, further comprising a second program selector circuit configured to selectively pass a data output signal among the PUF data signal and a reference generator signal to the data output circuit, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read.
9. The memory access circuit of claim 1, wherein the data output circuit comprises at least one MRAM bit cell column input coupled to the at least one MRAM bit cell column circuit, at least one reference MRAM bit cell column input, and a data output;
- wherein, in response to a PUF write operation selecting an MRAM bit cell row circuit of the PUF MRAM bit cells to be written in the MRAM PUF array, the data output circuit is configured to: receive the PUF data signal representing the resistance of the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation on the at least one MRAM bit cell column input; and generate the PUF output on the data output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal.
10. The memory access circuit of claim 2, further comprising:
- a reference write driver circuit configured to generate a second reference write signal to program at least one reference MRAM bit cell in at least one reference MRAM bit cell column circuit to the reference memory state, in response to the PUF write operation selecting the MRAM bit cell row circuit to be written in the MRAM PUF array; and
- the data output circuit further configured to, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read: receive a reference signal representing a resistance of the at least one reference MRAM bit cell in the at least one reference MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation; compare the PUF data signal to the reference signal; and generate the PUF output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on a difference between the PUF data signal and the reference signal.
11. The memory access circuit of claim 10, wherein the reference write driver circuit comprises a reference input and a reference write driver output coupled to the at least one reference MRAM bit cell column circuit in the MRAM PUF array;
- the reference write driver circuit configured to generate the second reference write signal to program the at least one reference MRAM bit cell in the at least one reference MRAM bit cell column circuit to the reference memory state, in response to the PUF write operation selecting the MRAM bit cell row circuit to be written in the MRAM PUF array.
12. The memory access circuit of claim 10, wherein the data output circuit comprises at least one MRAM bit cell column input coupled to the at least one MRAM bit cell column circuit, at least one reference MRAM bit cell column input, and a data output;
- wherein, in response to the PUF write operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be written in the MRAM PUF array, the data output circuit is configured to: receive the PUF data signal representing the resistance of the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation on the at least one MRAM bit cell column input; receive the reference signal representing the resistance of the at least one reference MRAM bit cell in the at least one reference MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation on the at least one reference MRAM bit cell column input; compare the PUF data signal to the reference signal; and generate the PUF output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit on the data output, based on the difference between the PUF data signal and the reference signal.
13. A memory access circuit for programming one or more physically unclonable function (PUF) magneto-resistive random access memory (MRAM) bit cells in an MRAM PUF array comprising at least one MRAM bit cell row circuit of PUF MRAM bit cells, the memory access circuit comprising:
- a data output circuit comprising: a means to receive a PUF data signal representing a resistance of at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit for a selected MRAM bit cell row circuit for a PUF read operation; and a means to generate a PUF output indicating a memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal; and
- a write driver circuit coupled to the PUF output, the write driver circuit comprising: a means to generate a first program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on the memory state indicated by the PUF output.
14. A method of programming at least one physically unclonable function (PUF) magneto-resistive random access memory (MRAM) bit cell in an MRAM PUF array in an MRAM for performing a PUF operation, the MRAM PUF array comprising a plurality of MRAM bit cell row circuits each comprising a plurality of PUF MRAM bit cells, and a plurality of MRAM bit cell column circuits each comprising a PUF MRAM bit cell from an MRAM bit cell row circuit among the plurality of MRAM bit cell row circuits, the method comprising:
- receiving a PUF data signal representing a resistance of at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit for a selected MRAM bit cell row circuit for a PUF read operation;
- generating a PUF output indicating a memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal; and
- generating a first program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on the memory state indicated by the PUF output.
15. The method of claim 14, further comprising generating a second program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array.
16. The method of claim 14, wherein, in response to the PUF read operation selecting the MRAM bit cell row circuit of PUF MRAM bit cells to be read, generating the first program write signal comprises generating the first program write signal at or exceeding a breakdown voltage of the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to one-time program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to the permanent memory state based on the memory state indicated by the PUF output.
17. The method of claim 14, further comprising selectively passing a write signal among a data input signal and the first program write signal in response to a PUF enable signal.
18. The method of claim 17, further comprising selectively passing a data output signal among the PUF data signal and a reference generator signal to a data output circuit, in response to the PUF read operation selecting the MRAM bit cell row circuit of PUF MRAM bit cells to be read.
19. The method of claim 15, further comprising:
- generating a second reference write signal to program at least one reference MRAM bit cell in at least one reference MRAM bit cell column circuit to the reference memory state, in response to the PUF write operation selecting the MRAM bit cell row circuit to be written in the MRAM PUF array;
- receiving a reference signal representing a resistance of the at least one reference MRAM bit cell in the at least one reference MRAM bit cell column circuit to program the plurality of PUF MRAM bit cells in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation; and
- comparing the PUF data signal to the reference signal;
- wherein generating the PUF output comprises generating the PUF output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on a difference between the PUF data signal and the reference signal.
20. The method of claim 14, further comprising:
- in response to a data write operation selecting an MRAM bit cell row circuit to be written in an MRAM data array comprising one or more MRAM bit cell row circuits among the plurality of MRAM bit cell row circuits in the MRAM PUF array, wherein MRAM bit cells in the MRAM data array comprise a plurality of data MRAM bit cells: generating a write signal to program a data MRAM bit cell in at least one MRAM bit cell column circuit to a memory state, in response to the data write operation selecting the MRAM bit cell row circuit to be written in the MRAM data array; and
- in response to a data read operation selecting an MRAM bit cell row circuit to be read: receiving a data signal representing a resistance of at least one data MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the data read operation; and generating a data output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the data signal.
21. The method of claim 20, further comprising:
- in response to the data write operation selecting the MRAM bit cell row circuit to be written in the MRAM data array: generating a reference write signal to program at least one reference MRAM bit cell in at least one reference MRAM bit cell column circuit to a reference memory state; and
- in response to the data read operation selecting the MRAM bit cell row circuit to be read: receiving a data reference signal representing a resistance of the at least one reference MRAM bit cell in the at least one reference MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the data read operation; comparing the data signal to the data reference signal; and generating the data output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on a difference between the data signal and the data reference signal.
22. A magneto-resistive random access memory (MRAM), comprising:
- an MRAM array, comprising: a plurality of MRAM bit cell row circuits each comprising a plurality of MRAM bit cells; and a plurality of MRAM bit cell column circuits each comprising an MRAM bit cell from an MRAM bit cell row circuit among the plurality of MRAM bit cell row circuits;
- an MRAM physically unclonable function (PUF) array comprising one or more MRAM bit cell row circuits among the plurality of MRAM bit cell row circuits in the MRAM array not included in an MRAM data array, wherein MRAM bit cells in the MRAM PUF array comprise a plurality of PUF MRAM bit cells; and
- a memory access circuit, comprising: a data output circuit configured to, in response to a PUF read operation selecting an MRAM bit cell row circuit of PUF MRAM bit cells to be read: receive a PUF data signal representing a resistance of at least one PUF MRAM bit cell in at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation; and generate a PUF output indicating a memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the PUF data signal; and a write driver circuit coupled to the PUF output, the write driver circuit further configured to, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read: generate a first program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a permanent memory state based on the memory state indicated by the PUF output.
23. The MRAM of claim 22, wherein the write driver circuit is further configured to generate a second program write signal to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array.
24. The MRAM of claim 22, wherein the MRAM data array further comprises one or more MRAM bit cell row circuits among the plurality of MRAM bit cell row circuits in the MRAM array, wherein MRAM bit cells in the MRAM data array comprise a plurality of data MRAM bit cells.
25. The MRAM of claim 22, wherein:
- the write driver circuit is further configured to generate a write signal to program a data MRAM bit cell in at least one MRAM bit cell column circuit to a memory state, in response to a data write operation selecting an MRAM bit cell row circuit to be written in the MRAM data array; and
- the data output circuit is further configured to, in response to a data read operation selecting an MRAM bit cell row circuit to be read: receive a data signal representing a resistance of at least one data MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the data read operation; and generate a data output indicating the memory state in at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on the data signal.
26. The MRAM of claim 23, further comprising:
- a reference write driver circuit configured to generate a second reference write signal to program at least one reference MRAM bit cell in at least one reference MRAM bit cell column circuit to the reference memory state, in response to the PUF write operation selecting the MRAM bit cell row circuit to be written in the MRAM PUF array; and
- the data output circuit further configured to, in response to the PUF read operation selecting the MRAM bit cell row circuit of the PUF MRAM bit cells to be read: receive a reference signal representing a resistance of the at least one reference MRAM bit cell in the at least one reference MRAM bit cell column circuit for the selected MRAM bit cell row circuit for the PUF read operation; compare the PUF data signal to the reference signal; and generate the PUF output indicating the memory state in the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit for the selected MRAM bit cell row circuit, based on a difference between the PUF data signal and the reference signal.
27. The MRAM of claim 22, further comprising a plurality of read/write selector circuits, each read/write selector circuit among the plurality of read/write selector circuits coupled to an MRAM bit cell column circuit among the plurality of MRAM bit cell column circuits;
- the memory access circuit coupled to the plurality of read/write selector circuits; and
- wherein: the write driver circuit is configured to: generate a second program write signal to at least one read/write selector circuit among the plurality of read/write selector circuits coupled to the at least one MRAM bit cell column circuit to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to a reference memory state, in response to a PUF write operation selecting an MRAM bit cell row circuit to be written in the MRAM PUF array; and generate the first program write signal to the at least one read/write selector circuit among the plurality of read/write selector circuits coupled to the at least one MRAM bit cell column circuit to program the at least one PUF MRAM bit cell in the at least one MRAM bit cell column circuit to the permanent memory state based on the memory state indicated by the PUF output.
28. The MRAM of claim 22, wherein each PUF MRAM bit cell among the plurality of PUF MRAM bit cells comprises:
- a magnetic tunnel junction (MTJ) coupled to a bit line; and
- an access transistor coupled to the MTJ, the access transistor comprising a gate coupled to a word line and a source coupled to a source line.
29. The MRAM of claim 22 integrated into an integrated circuit (IC).
30. The MRAM of claim 22 integrated into a device selected from the group consisting of: a set top box; an entertainment unit; a navigation device; a communications device; a fixed location data unit; a mobile location data unit; a global positioning system (GPS) device; a mobile phone; a cellular phone; a smart phone; a session initiation protocol (SIP) phone; a tablet; a phablet; a server; a computer; a portable computer; a mobile computing device; a wearable computing device; a desktop computer; a personal digital assistant (PDA); a monitor; a computer monitor; a television; a tuner; a radio; a satellite radio; a music player; a digital music player; a portable music player; a digital video player; a video player; a digital video disc (DVD) player; a portable digital video player; an automobile; a vehicle component; avionics systems; a drone; and a multicopter.
9298946 | March 29, 2016 | Zhu et al. |
9343135 | May 17, 2016 | Zhu et al. |
9489999 | November 8, 2016 | Rosenberg et al. |
9712330 | July 18, 2017 | Smith |
9948471 | April 17, 2018 | Katoh |
20130073598 | March 21, 2013 | Jacobson |
20160373264 | December 22, 2016 | Katoh |
20170272258 | September 21, 2017 | Tanamoto |
- Zhang, Le et al., “Highly Reliable Memory-based Physical Unclonable Function Using Spin-Transfer Torque MRAM,” 2014 IEEE International Symposium on Circuits and Systems (ISCAS), 2014, IEEE, 4 pages (Year: 2014).
Type: Grant
Filed: Apr 5, 2018
Date of Patent: Jun 4, 2019
Assignee: QUALCOMM Incorporated (San Diego, CA)
Inventors: Sungryul Kim (San Diego, CA), Chando Park (Palo Alto, CA), Seung Hyuk Kang (San Diego, CA)
Primary Examiner: Xiaochun L Chen
Application Number: 15/946,209
International Classification: G06F 7/58 (20060101); G11C 11/16 (20060101); G11C 17/02 (20060101); H04L 9/32 (20060101);