LOGIC GATES AND STATEFUL LOGIC USING PHASE CHANGE MEMORY
20230155590 · 2023-05-18
Assignee
Inventors
- Shahar KVATINSKY (Haifa, IL)
- Barak HOFFER (Haifa, IL)
- Eilam YALON (Haifa, IL)
- Nicolas WAINSTEIN (Haifa, IL)
Cpc classification
International classification
Abstract
An electronic memory block comprises phase change memory cells for memory storage and further phase change memory cells forming logic gates, to provide in-memory data processing.
Claims
1. A logic gate comprising at least two phase change memory—PCM—cells, said at least two PCM cells having a high resistance phase and a low resistance phase, said at least two PCM cells being connected at a common connection and further having at least one input for an input logic state, wherein a logic output for the gate comprises a phase of an output one of said at least two phase change memory cells following provision of said input logic state.
2. The logic gate of claim 1, configured for a predetermined logic operation by switching said output one of said at least two PCM cells to a predetermined one of said high resistance and said low resistance phases.
3. The logic gate of claim 1, configured for a predetermined logic operation by presetting said input logic state to a specified member of the group consisting of a set pulse and a reset pulse.
4. The logic gate of claim 3, wherein said set pulse and said reset pulse each have a duration and a level, and wherein the duration of the set pulse is longer than the duration of the reset pulse and the level of the set pulse is lower than the level of the reset pulse.
5. The logic gate of claim 4, wherein the set pulse is configured to raise a temperature of the cell to a crystallization temperature and the reset pulse is configured to raise the temperature of the cell to a melting temperature.
6. The logic gate of claim 1, comprising two of said at least two PCM cells connected between a word line and respective bit lines, which said at least two PCM cells serve as inputs to the gate, a third PCM cell being connected between said word line and ground serving as the output for the gate.
7. The logic gate of claim 6, wherein the output is preswitched to the low resistance phase, and wherein said input logic state is set to a reset pulse to provide a NOR or a NAND gate.
8. The logic gate of claim 6, wherein the output is preswitched to the high resistance phase, and the input logic pulse is set to a set pulse to provide an OR gate.
9. The logic gate of claim 1, comprising two of said at least two PCM cells.
10. The logic gate of claim 9, wherein the output is preswitched to the low resistive state and the input logic pulse is set to a reset pulse, the gate thereby providing a NOT gate.
11. The logic gate of claim 9, wherein the output is preswitched to the high resistive state and the input logic pulse is set to a set pulse, to provide a copy function.
12. The logic gate of claim 9, wherein the output is preswitched to the low resistive state and the input logic pulse is set to a reset pulse.
13. The logic gate of claim 9, wherein the output is preswitched to the high resistive state and the input logic pulse is set to a set pulse, thereby to provide an OR gate.
14. The logic gate of claim 1, comprising two of said at least two PCM cells connected at a common node to a resistor.
15. The logic gate of claim 14, wherein the input logic pulse is set to a reset pulse, to provide a NIMP function.
16. The logic gate of claim 14, wherein the input logic pulse is set to a set pulse to provide IMP or NOR functions.
17. The logic gate of claim 1, wherein three of said at least two PCM cells are connected between respective inputs and a common node, the common node being connected to a resistance.
18. The logic gate of claim 17, wherein the output is initialized to the low resistive state and the input logic pulse is set to a reset pulse, to provide NAND and NOR functionality.
19. The logic gate of claim 17, wherein the output is initialized to the high resistive state and the input logic pulse is set to a set pulse, to provide NAND, NOR and XOR functionality.
20. The logic gate of claim 17, wherein the output is initialized to the high resistive state and the input logic pulse is set to a set pulse, to provide NIMP functionality.
21. An electronic data storage device comprising phase change memory cells, some of said phase change memory cells comprising logic gates according to claim 1.
22. An electronic memory block comprising phase change memory cells for memory storage and further phase change memory cells forming logic gates.
23. A method of carrying out a logic function using at least two phase change memory cells connected at a common connection and having predetermined set and reset pulses, the method comprising: placing one of the memory cells in a predetermined one of first and second phases; and selecting one of said predetermined set and reset pulses as a logic input pulse.
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)
[0032] Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
[0033] In the drawings:
[0034]
[0035]
[0036]
DESCRIPTION OF SPECIFIC EMBODIMENTS OF THE INVENTION
[0037] The present invention, in some embodiments thereof, relates to logic gates and stateful logic using phase change memory, and, more particularly, but not exclusively, to the use of phase change memory to produce processing in memory (PIM).
[0038] Phase Change Memory (usually called in short PCM or, in the Intel/Micron jargon 3D Xpoint) is another emerging technology that is used today for fast SSD, persistent memories and other applications. To date, PCM has been used only for data storage without computation.
[0039] The present embodiments use several techniques to use PCM cells for computation and enable stateful logic. In these techniques the memory cells are used as inputs and outputs of logic gates and by applying different voltage pulses across several memory cells, the output is written to a value that is the result of a logical operation. The present embodiments include different structures that support many different logic functions (NAND, NOR, OR, NOT, IMP, NIMP). All of those gates are crossbar array compatible and therefore can be implemented within the memory array and by that enable real in-memory processing.
[0040] Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
[0041] As discussed in the background, the memory wall is perhaps the main problem in computing systems today. It means that data movement between memory and CPU is the dominant factor in terms of performance and energy of computing systems. One attractive approach to deal with this problem is to move some of the computation into the memory by adding processing units close to the memory (in the same package or even the same die) or, even better, use the memory cells to compute. The latter is almost impossible with DRAM and SRAM, but is possible with some emerging memory technologies (RRAM for example). Phase Change Memory (usually called in short PCM or PCRAM or 3D Xpoint or PCMS) is another emerging technology that is used today for fast SSD, persistent memories and other applications.
[0042] Since the physical mechanism and the switching behavior of RRAM and PCM are very different, logic gate approaches that are used in RRAM are incompatible and a new logic technique is required. In RRAM, due to the filamentary switching mechanism, the change in its resistance depends on both the voltage polarity and magnitude. Thus, switching to the low resistance state requires a positive voltage and switching from the low resistance state back to the high resistance state uses a negative voltage. In PCM, on the other hand, thermal energy changes the phase of the material, typically chalcogenide glass, between amorphous and crystalline states, where the amorphous state is high resistance and the crystalline state is low resistance, and in order to switch between amorphous and crystalline states, different voltage pulses are used. Specifically, heat produced by the passage of an electric current through a heating element generally made for example of titanium nitride may b used to either quickly heat and quench the glass, making it amorphous, or to hold it in its crystallization temperature range for some time, thereby switching it to the crystalline state. A notable feature is that, in contrast to RRAM, the pulses for setting and resetting have the same polarity. To switch to the low resistance, crystalline, phase, a long and low voltage pulse is used, while a high and short pulse is used to switch to the high resistive, amorphous, state, as explained in greater detail in respect of
[0043] To date, PCM has been used only for data storage without computation. The different switching mechanisms for PCM and RRAM as explained above, are illustrated in
[0044] State-of-the-art solutions either rely on non-PCM technologies (i.e., cannot be used for memories) or separate completely the computation from the memory and by that suffer from the memory wall phenomenon.
[0045] Processing-In-Memory (PIM), suggests putting computation capabilities inside the memory. This enables intrinsic computation parallelism, avoiding the need for costly chip-to-chip transfers (in terms of performance and energy), thus yielding massively parallel, high-performance, energy-efficient processing.
[0046] The present embodiments deal with computation using PCM to enable PIM. The present embodiments entail several techniques to use PCM cells for computation and enable stateful logic. In these logic techniques, the memory cells are used as inputs and outputs of logic gates and by applying different voltage pulses across several memory cells, the output is written to a value that is the result of a logical operation. The present embodiments may provide different structures that support many different logic functions (including NAND, NOR, OR, NOT, IMP, NIMP). These gates can be crossbar array compatible and therefore can be implemented within the memory array (as part of the main memory, storage, storage class memory or any other memory type) and by that enable real in-memory processing. Alternatively, they can be used as standalone logic gates.
[0047] The described gates are the building blocks to enable processing-in-memory for PCM devices (a unit such as the memristive memory processing unit, or any memory that has computing capabilities). It is possible to take existing products such as Intel Optane and transfer them with minor changes into such a memristive memory processing unit using the present embodiments.
[0048] Certain features that the present embodiments may provide include:
[0049] 1. Allowing parallel processing of data in PCM memories, including in existing products.
[0050] 2. Requiring only minor changes to an existing PCM memory to be operational.
[0051] 3. PCM is an attractive and mature technology, the only resistive memory that is already in mass production and is projected to be in large volumes.
[0052] 4. PCM logic, as with PCM for memory applications, relies only on the pulse width and magnitude with no dependence on polarity.
[0053] 5. Massive parallelism and no data transfer may be a path to performance improvement for many applications.
The Logic Techniques:
[0054] The inputs of the gates may include the initial resistance, that is the stored logical value in the cell, of the PCM cells making up the gate. The output, or result, of the gate is the resistance of the output PCM cell at the end of operation. The initial resistance of the output PCM cell may either be defined prior to the computation, in an initialization step, or alternatively, the existing output may be used as one of the inputs.
[0055] The inputs and outputs may be connected via a shared node, which may be a wire, bitline, wordline, selectline or any other connection, and a pulse or a voltage or pulses or voltages are applied to the gate. The pulse(s) may create a SET operation, that is switching the output cell from a high resistive state to a low resistive state, or a RESET operation, which is switching the output cell from a low resistive state to a high resistive state. The specific width and magnitude of the pulse determines whether a SET or a RESET operation, or for that matter, no operation at all, is carried out, as illustrated in
[0056] Depending on the specific connection, the specific pulse and the logical states of the inputs, the output will either change its value (switch) or not, and this is the logical operation.
[0057] The present embodiments provide several different circuits and apply to each of the circuits different pulses, to produce a range of logic gates. Specifically, several of the circuits provide multiple logic gates depending on the pulses applied, and the different logic gate truth tables may be provided in different ways with several of the circuits. Hence more than one option is provided for many of the commonly used logic circuits.
[0058] Considering now
[0059] A first circuit 10 according to the present embodiments is shown schematically in
[0060] Two PCM devices 12 and 14 are connected between op amp 16 of a word line and op amps 18 and 20 of respective bit lines, and serve as inputs to the gate. A third PCM device 22 is connected between word line op amp 16 and an op amp 24 leading to ground. The third PCM device serves as the output for the gate.
[0061] As shown, pulse 26 with the width of T.sub.reset is applied via op amps 18 and 20 at voltages V.sub.G, V.sub.G/2 and V.sub.G/3. The output is initialized to logical 1, which is the low resistive state, in each case.
[0062] The op amps generally serve to set the voltage level of the line and are mentioned for completeness. They are not discussed further in the below.
[0063] Different magnitudes determine the specific operation between NOR and NAND as detailed in the table below. Specifically, when VG>2VR the circuit acts as a NOR gate. All inputs flip the output except for 0,0. When 3Vr/2<VG<2Vr then the circuit acts as a NAND gate and no inputs flip the output except for (1,1). The NOR gate operation loses the inputs. NAND gate operation retains the input states IN1 and IN2, although obviously not OUT_0.
TABLE-US-00001 NAND NOR IF(3 Vr/2 < VG > Vreset IN1 IN2 OUT_0 V_IN V_OUT IF(VG > 2 VR) VG < 2 Vr) T = Treset 0 0 1 VG 0 1 1 0 1 1 VG/2 VG/2 0 1 1 0 1 VG/2 VG/2 0 1 1 1 1 VG/3 2 VG/3.sup. 0 0 Comments Destructive inputs (VG/2 will change Non-destructive the inputs
[0064] A second circuit 30 according to the present embodiments is shown schematically in
[0065] Two PCM devices 32 and 34 are connected between op amp 36 of a word line and op amps 38 and 40 of respective bit lines, and serve as inputs to the gate. A third PCM device 42 is connected between word line op amp 36 and an op amp 44 leading to ground. The third PCM device serves as the output for the gate.
[0066] As shown, pulse 46 with the width of T.sub.reset is applied via op amps 38 and 40 at voltage V.sub.G/3. The output is initialized to logical 0, which is the high resistive state, in each case.
[0067] The specific operation is OR as detailed in the table below. The condition V.sub.set<V.sub.G<1.5V.sub.set<V.sub.reset is applied.
TABLE-US-00002 OR Vset < VG < 1.5 Vset < Vreset IN1 IN2 OUT_0 V_IN V_OUT OUT T = Tset 0 0 0 VG/3 2 VG/3 0 0 1 0 0 VG 1 1 0 0 0 VG 1 1 1 0 0 VG 1
[0068] In
[0069] A pulse 56 with the width of T.sub.reset is applied at voltage V.sub.G. The output is initialized to logical 1 (low resistive state).
[0070] The specific operation is NOT as detailed in the table below. With the condition that V.sub.G>2V.sub.reset, the input is inverted at the output.
TABLE-US-00003 VG > 2 Vreset IN OUT_0 V_IN V_OUT NOT T = Treset 0 1 VG 0 1 1 1 VG/2 VG/2 0 Comments Destructive inputs (VG/2 will change the input to 0 as well)
[0071] Reference is now made to
[0072] PCM device 62 is the input and second PCM device 64 is the output.
[0073] A pulse 66 with the width of T.sub.set is applied at voltage V.sub.G or V.sub.G/2. The output is initialized to logical 0, which is the high resistive state.
[0074] The specific operation is Copy (or move) as detailed in the table below. The condition V.sub.set<V.sub.G<2V.sub.set<V.sub.reset is observed and the input is copied to the output.
TABLE-US-00004 Vset < VG < COPY 2Vset < V reset IN OUT_0 V_IN V_OUT OUT T = Tset 0 0 VG/2 VG/2 0 1 0 0 VG 1
[0075] Reference is now made to
[0076] Two PCM devices 70 and 72 are the inputs and one of them 72 also serves as the output.
[0077] A pulse with the width of T.sub.reset is applied to V.sub.G. The output is initialized to logical 1 (low resistive state).
[0078] The specific operation is detailed in the table below. The condition VG>2Vreset is observed.
TABLE-US-00005 VG > 2 Vreset IF(VG > 2 Vr) T = IN1 IN2 (OUT) V_IN V_OUT IN1′ IN2′ Treset 0 0 VG/2 VG/2 0 0 0 1 VG 0 0 1 1 0 0 VG 1 0 1 1 VG/2 VG/2 0 0
[0079] Reference is now made to
[0080] Two PCM devices 80 and 82 are the inputs and one of them 82 also serves as the output.
[0081] A pulse with the width of T.sub.set is applied at a voltage of V.sub.G or V.sub.G/2. The output is initialized to logical 0 which is the high resistive state.
[0082] The specific operation is OR as detailed in the table below.
TABLE-US-00006 IF(VG > Vset, IF(VG/2 > Vset)==> VG/2 < Vset)==> 2 Vset < VG < Vreset Vset < VG < 2 Vset, Vreset IN1 IN2 (OUT) V IN V_OUT IN1′ IN2′ IN1′ IN2′ 0 0 VG/2 VG/2 1 1 0 0 0 1 VG 0 1 1 1 1 1 0 0 VG 1 1 1 1 1 1 VG/2 VG/2 1 1 1 1 Meaningless OR OR
[0083] Reference is now made to
[0084] Two voltages are applied to the gate, V.sub.COND 96 and V.sub.APP 98 where V.sub.APP>V.sub.COND and the voltages are pulsed at a width of T.sub.reset.
[0085] Different magnitudes determine the specific operation as detailed in the table below, where the output is the value at the end of computation in each input IN.sub.i′. The result is destructive of the inputs.
TABLE-US-00007 IN1 IN2 (OUT) INT′ IN2′ 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 Comments Destructive
[0086] Reference is now made to
[0087] Two voltages are applied to the gate, V.sub.COND 106 and V.sub.APP 108 where V.sub.APP>V.sub.COND and the voltages are pulsed at a width of T.sub.set. Different magnitudes and ratios between the voltages determine the specific operation as detailed in the table below and the output is the value at the end of computation in each input IN.sub.i′.
TABLE-US-00008 Option 1 Option 2 IN1 IN2 (OUT) IN1′ IN2′ IN1′ IN2′ T = Tset 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 Destructive IMP Non-destructive OR Non-destructive OR, parameter sensitive
[0088] Reference is now made to
[0089] The output is initialized to the low resistive state, a logical 1.
[0090] Two voltages, are applied to the gate, V.sub.COND 120 and V.sub.APP 122 under the condition that V.sub.APP>V.sub.COND, using pulses with the width of T.sub.reset.
[0091] Different magnitudes and ratios between the voltages determine the specific operation as detailed in the table below to give either a NAND or a NOR output.
TABLE-US-00009 Option 1 Option 2 IN1 IN2 (OUT) OUT OUT 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 Comments NAND NOR
[0092] Reference is now made to
[0093] The output is initialized to a high resistive state (logical 0).
[0094] Two voltages are applied to the gate, V.sub.COND 140 and V.sub.APP 142 under the condition that V.sub.APP>V.sub.COND and the pulses are of width T.sub.set.
[0095] Different magnitudes and ratios between the voltages determine the specific operation as detailed in the table below.
TABLE-US-00010 Option 1 Option 2 Option 3 IN1 IN2 (OUT) OUT OUT OUT 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 NOR XOR NAND
[0096] Reference is now made to
[0097] Two voltages are applied to the gate, V.sub.G and a portion of V.sub.G (here V.sub.G/3 as an example) in pulses 158 and 160 with the width of T.sub.set.
[0098] Different magnitudes and ratios between the voltages determine the specific operation as detailed in the table below.
TABLE-US-00011 NIMP IN1 IN2 OUT_0 VJN1 V_IN2 V_OUT OUT 0 0 0 5 VG/9 VG/9 4 VG/9 0 0 1 0 2 VG/3 0 .sup. VG/3 0 1 0 0 0 2 VG/3.sup. VG 1 1 1 0 .sup. VG/3 VG/3 2 VG/3 0 Non- destructive
[0099] Reference is now made to
[0100] It is expected that during the life of a patent maturing from this application many relevant logic gates and memory circuits will be developed and the scopes of the corresponding and other terms are all intended to include all such new technologies a priori.
[0101] The terms “comprises”, “comprising”, “includes”, “including”, “having” and their conjugates mean “including but not limited to”.
[0102] The term “consisting of” means “including and limited to”.
[0103] The term “consisting essentially of” means that the composition, method or structure may include additional ingredients, steps and/or parts, but only if the additional ingredients, steps and/or parts do not materially alter the basic and novel characteristics of the claimed composition, method or structure.
[0104] As used herein, the singular form “a”, “an” and “the” include plural references unless the context clearly dictates otherwise.
[0105] It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment and the present description is to be construed as if such embodiments are explicitly set forth herein. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or may be suitable as a modification for any other described embodiment of the invention and the present description is to be construed as if such separate embodiments, subcombinations and modified embodiments are explicitly set forth herein. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
[0106] Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.
[0107] All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting. In addition, any priority document(s) of this application is/are hereby incorporated herein by reference in its/their entirety.