Patent Publication Number: US-8976616-B2

Title: Multi-time programmable memory

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a continuation of U.S. application Ser. No. 13/034,395, filed Feb. 24, 2011, now U.S. Pat. No. 8,462,575, which claims the benefit of U.S. Provisional Patent Application No. 61/364,248, tiled on Jul. 14, 2010, both of which are incorporated herein by reference in their entireties. 
    
    
     BACKGROUND 
     1. Field of the Invention 
     The present invention relates generally to memory elements. 
     2. Background Art 
     Conventional fuse and anti-fuse elements provide one-time programmable memory elements. In other words, the element starts in a default or initial state and can be programmed only once into a final state. Once programmed into the final state, the element cannot be re-programmed into a further state. 
     Conventionally, to enable multi-time programmability, the fuse or anti-fuse element is replicated based on the desired programmability. Thus, conventional fuse and anti-fuse elements can be area inefficient solutions when large memory is needed. 
     Accordingly, there is a need for multi-time programmable memory elements. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES 
       The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art to make and use the invention. 
         FIGS. 1-4  illustrate various one-time programmable memory elements. 
         FIG. 5  illustrates an example memory element according to an embodiment of the present invention. 
         FIGS. 6A-D  illustrate example programming states of a memory element according to an embodiment of the present invention. 
     
    
    
     The present invention will be described with reference to the accompanying drawings. Generally, the drawing in which an element first appears is typically indicated by the leftmost digit(s) in the corresponding reference number. 
     DETAILED DESCRIPTION OF EMBODIMENTS 
     Fuse and anti-fuse elements can be used as memory elements. Generally, an anti-fuse element is one that initially is in an open or high impedance state and which can be programmed once into a short or low impedance state. A fuse element is one that initially is in a short or low impedance state and which can be programmed once into an open or high impedance state. Thus, fuse and anti-fuse elements are generally one-time programmable memory elements. The initial or default state may correspond to a logic 0 or to a logic 1, with the subsequent programming state corresponding to a logic 1 or logic 0, respectively. 
       FIG. 1  illustrates an example NMOS anti-fuse element. The NMOS anti-fuse element is a gate oxide that starts in an open or high impedance state and which can be programmed into a short or low impedance state. Programming of the NMOS anti-fuse element is done by providing a high voltage across its terminals N 1  and N 2 . The high voltage breaks down the oxide, turning it into a resistive short between N 1  and N 2 . Further description of an NMOS anti-fuse element can be found in commonly-owned U.S. Pat. No. 7,649,798, which is incorporated herein by reference in its entirety. 
       FIG. 2  illustrates an example poly diode anti-fuse element. The poly diode anti-fuse element is a non-salicided poly silicon having a highly N-doped region and a highly P-doped region, which create a reverse biased junction (or effectively a diode). The poly diode anti-fuse starts in an open or high impedance state and can be programmed into a short or low impedance state. Programming of the poly diode anti-fuse is done by providing a high voltage across its terminals N 1  and N 2  to cause it into a highly reverse biased state, which ultimately shorts the element. 
       FIG. 3  illustrates an example 3T (three-transistor) anti-fuse. As with the NMOS anti-fuse and the poly diode anti-fuse, the 3T anti-fuse starts in an open state or high impedance state and can be programmed into a short or low impedance state. 
       FIG. 4  illustrates an example poly fuse element. The poly fuse element is a poly silicon resistor having a salicide (self-aligned silicide) top layer. The poly fuse element starts in a short or low impedance state and can be programmed into an open or high impedance state. Programming of the poly fuse element is done by applying a high current through it, which causes the melting of the salicide top layer, thereby creating a change in the impedance of the poly fuse element (from low impedance to a higher impedance). Further description of a programmable poly fuse element can be found in commonly-owned U.S. Pat. No. 7,561,456, which is incorporated herein by reference in its entirety. 
     Conventional fuse and anti-fuse elements, such as the ones illustrated in  FIGS. 1-4 , provide one-time programmable memory elements. In other words, the element starts in a default or initial state and can be programmed only once into a final state. Once programmed into the final state, the element cannot be re-programmed into a further state. 
     Conventionally, to enable multi-time programmability, the fuse or anti-fuse element is replicated based on the desired programmability. For example, to enable a two-time programmable k-bit anti-fuse memory structure, two k-bit banks of anti-fuse elements are needed, with the first bank corresponding to the initial state of the memory structure and the second bank corresponding to the final state. Thus, conventional fuse and anti-fuse elements can be area inefficient solutions when large memory is needed. Additionally, to enable multi-time programmability, control circuitry, including multiplexing and/or logic circuitry, for example, is needed to determine which bank of elements should be read at any given time and to enable the reading of the currently programmed bank. Further, because each additional programming state (after the first programming) of the memory structure corresponds to a separate bank of elements, even when a single bit of data of the k-bit memory structure is being modified (i.e., a single fuse or anti-fuse element is being programmed) the entire k-bit memory structure must be re-written into the bank corresponding to the additional programming state. 
     Embodiments extend the capability of fuse elements, anti-fuse elements, and combinations thereof to enable multi-time programmable memory elements. At the same time, embodiments significantly reduce area requirements and control circuitry complexity. Embodiments can be used in non-volatile memory storage, for example, and are suitable for use in system on chip (SoC) products. In the following, exemplary embodiments will be provided. As would be understood by a person skilled in the art based on the teachings herein, embodiments are not limited to the exemplary embodiments provided herein, but extend to any variations and/or improvements that would be apparent to a person skilled in the art. 
       FIG. 5  illustrates an example memory element according to an embodiment of the present invention. In particular,  FIG. 5  shows an example poly silicon element. The poly silicon element includes an N-doped and a P-doped region, which create a poly silicon diode, underlying a salicide top layer. 
     The poly silicon element, as further described below, is a multi-time programmable element. In an embodiment, the poly silicon element can be designed as a three-time programmable element. While the poly silicon element may be slightly larger than a conventional poly fuse or a conventional poly diode anti-fuse, by providing multi-time programmability (e.g., up to three times) significant area savings can still be achieved. Furthermore, when used in a memory structure (e.g., k-bit memory), the memory element can be re-programmed independently of other memory elements, thereby eliminating the need to re-write the entire k-bit memory structure each time that a memory element is re-programmed. Accordingly, re-writing of the k-bit memory structure is only needed when a given memory element has exhausted its re-programmability ability. 
     In an embodiment, the poly silicon element shown in  FIG. 5  provides a three-time programmable memory element, as further described with reference to  FIGS. 6A-D . As would be understood by a person of skill in the art based on the teachings herein, embodiments may be designed to have more than three programming states. 
     In its initial or default state (e.g., corresponds to logic 0), the poly silicon element can be schematically represented, as shown in  FIG. 6A , as a poly fuse element (the salicide layer) in parallel with a poly diode anti-fuse element (the N-doped and P-doped region). Because the poly fuse provides a very low impedance in parallel with the poly diode anti-fuse, the poly silicon element is effectively a short circuit. 
     The poly silicon element provides a first programming state (e.g., to re-program the element from a logic 0 to a logic 1) as shown in  FIG. 6B . To arrive at the first programming state, a high current is applied to the poly silicon element between its terminals N 1  and N 2  to open the salicide layer. With the salicide layer eliminated as a conduction path between N 1  and N 2 , a high impedance is created by the underlying poly diode anti-fuse. The low to high impedance change corresponds to a logic 0 to a logic 1 re-programming of the element, for example. 
     When further re-programming is needed, the poly silicon element provides a second programming state (e.g., to re-program the element from a logic 1 to a logic 0) as shown in  FIG. 6C . The second programming state is reached by providing a high voltage across the terminals N 1  and N 2  to cause the poly diode anti-fuse into a highly reversed biased state, effectively causing it to act as a resistive element with low impedance. 
     When further re-programming is needed, the poly silicon element provides a third and final programming state (e.g., to re-program the element from a logic 0 to a logic 1) as shown in  FIG. 6D . The third programming state is reached by providing a very high current through the n-p junction, effectively opening the junction to act as an open circuit or a high impedance between N 1  and N 2 . 
     Embodiments have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. 
     The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. it is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance. 
     The breadth and scope of embodiments of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.