Low-pin-count non-volatile memory interface

Information

  • Patent Grant
  • 9281038
  • Patent Number
    9,281,038
  • Date Filed
    Tuesday, November 25, 2014
    9 years ago
  • Date Issued
    Tuesday, March 8, 2016
    8 years ago
Abstract
A low-pin-count non-volatile (NVM) memory to be provided in an integrated circuit. The low-pin-count non-volatile (NVM) memory can use only one external control signal and one internal clock signal to generate start, stop, device ID, read/program/erase pattern, starting address, and actual read/program/erase cycles. When programming or erasing begins, toggling of the control signal increments/decrements a program or erase address and a pulse width of the control signal determines the actual program or erase time. A data out of the low-pin-count non-volatile (NVM) memory can be multiplexed with the control signal. In some applications where only the integrated circuit can read the data, a second control signal internal to the integrated circuit generates start, stop, device ID, read pattern, starting address, and actual read cycles, while the first control signal external to the integrated circuit can do the same for the program or erase path. Since the clock signal can be derived and shared from the system clock of the integrated circuit, the NVM memory need only have one external control pin for I/O transactions to realize a low-pin-count interface.
Description
BACKGROUND OF THE INVENTION

Non-volatile memory (NVM) is able to retain data when the power supply of a memory is cut off. The memory can be used to store data such as parameters, configuration settings, long-term data storage, etc. Similarly, this kind of memory can be used to store instructions, or codes, for microprocessors, DSPs, or microcontrollers (MCU), etc. Non-volatile has three operations, read, write (or called program), and erase, for reading data, programming data, and erasing data before re-programming. Non-volatile memory can be a flash memory that can be programmed from 10K to 100K times, or Multiple-Time Programmable (MTP) that can be programmed from a few times to a few hundred times.


One-Time-Programmable (OTP) is a particular type of non-volatile memory that can be programmed only once. An OTP memory allows the memory cells being programmed once and only once in their lifetime. OTP is generally based on standard CMOS process and usually embedded into an integrated circuit that allows each die in a wafer to be customized. There are many applications for OTP, such as memory repair, device trimming, configuration parameters, chip ID, security key, feature select, and PROM, etc.



FIG. 1 shows a conventional OTP cell. The OTP cell 10 has an OTP element 11 and a program selector 12. The OTP element is coupled to a supply voltage V+ in one end and a program selector 12 at the other. The program selector 12 has the other end coupled to a second supply voltage V−. The program selector 12 can be turned on by asserting a control terminal Sel. The program selector 12 is usually constructed from a MOS device. The OTP element 11 is usually an electrical fuse based on polysilicon or silicided polysilicon, a floating gate to store charges, or an anti-fuse based on gate oxide breakdown, etc.



FIG. 2 shows a pin configuration of a conventional serial OTP memory 20. The OTP memory 20 has an OTP memory module 22 and a power-switch device 21 that couples to a high voltage supply VDDP and the OTP memory module 22. The OTP memory 22 has a chip enable, program, clock, power-switch select, and an output signal denoted as CS#, PGM, CLK, PSWS, and Q, respectively. CS# selects the OTP memory 22 for either read or program. PGM is for program or read control. CLK is for clocking the memory 22. PSWS is for turning on an optional device, power-switch device 21. The output signal Q is for outputting data. Since there are several I/O pins, the footprint of an OTP memory to be integrated into an integrated circuit the cost is relatively high.



FIG. 3(
a) shows a program timing waveform of a serial OTP memory with the I/O pin configurations as shown in FIG. 2. If the CLK is low and PGM is high when the CS# falls, the OTP goes into a program mode. Then, PGM toggles to high before the rising edges of CLK for those bits to be programmed. The high CLK period is the actual program time. Similarly, FIG. 3(b) shows a read timing waveform of a serial OTP memory with the I/O pin configurations shown in FIG. 2. If the CLK is high and PGM is low when CS# falls, the OTP goes into a read mode. The cell data are read out at the falling edges of CLK one by one. These timing waveforms in FIGS. 3(a) and 3(b) are relatively complicated.


Another similar low-pin-count I/O interface is the Serial Peripheral Interconnect (SPI) that has CSB, SCLK, SIN, and SO pins for chip select, serial clock, serial input, and serial output, respectively. The timing waveform of SPI is similar to that in FIGS. 3(a) and 3(b). Another two-pin serial I/O interface is I2C that has only two pins: SDA and SCL, for serial data and serial clock, respectively. This I/O interface is for an SRAM-like devices that have comparable read and write access time. The I2C for programming a byte or a page in a serial EEPROM is quite complicated: upon issuing a start bit, device ID, program bit, start address, and stop bit, the chip goes into hibernation so that an internally generated programming is performed for about 4 ms. A status register can be checked for completion before next program command can be issued again. In an OTP, the program time is several orders of magnitude higher than the read access and much lower than either the program or erase time of EEPROM, for example 1 us versus 50 ns for read and 1 us versus 4 ms for program/erase, such that I2C interface for OTP is not desirable because of high timing overhead.


As OTP memory sizes continue to be reduced, the number of external interface pins becomes a limitation to the OTP memory size. The current serial interfaces have about 2-4 pins and are not able to effectively accommodate read and program speed discrepancies. Accordingly, there is a need for a low-pin-count interface for non-volatile memory, such as OTP memory.


SUMMARY OF THE INVENTION

The invention relates to a low-pin-count non-volatile memory (NVM) having reduced area and footprint. In one embodiment, the low-pin-count non-volatile memory can use an interface that makes use of only one pin external to an integrated circuit. This interface not only can use only one external pin but also can share several internal pins with the rest of integrated circuit to thereby reduce area and footprint. Moreover, if desired, the one external pin can be further multiplexed with the other pins so that no additional pins are needed. In one embodiment the interface can pertain to a low-pin-count OTP interface for an OTP memory so that the OTP memory can be easily integrated into an integrated circuit.


In one embodiment, a non-volatile memory interface can uses only two signals, PGM and CLK for program control and clock, respectively. By comparing the relative phase between these two signals, the start and stop conditions can be detected. In addition, device ID, read/program/erase mode, and starting address can be determined. Thereafter, read, program, or erase sequences can be signaled. Program assertion and program time can be determined by the pulse width of PGM. So do the erase mode. Finally, the operations are ended with a stop condition. Since the CLK can be shared with the system clock of the integrated circuit, the additional pin for NVM is then the one external pin is PGM.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the following detailed descriptions in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:



FIG. 1 shows a conventional OTP cell.



FIG. 2 shows a pin configuration of a conventional serial OTP memory.



FIG. 3(
a) shows a program timing waveform of a serial OTP memory.



FIG. 3(
b) shows a read timing waveform of a serial OTP memory.



FIG. 4(
a) shows a one-pin NVM with hardware read/write (HW R/W) according to one embodiment.



FIG. 4(
b) shows a one-pin NVM with hardware write and software read (HW-W-SW-R) according to one embodiment.



FIG. 5(
a) shows a low-pin-count NVM I/O protocol according to one embodiment.



FIG. 5(
b) shows a simplified version of low-pin-count NVM protocol for READ according to one embodiment.



FIG. 5(
c) shows a simplified version of low-pin-count NVM protocol for PROGRAM according to one embodiment.



FIG. 5(
d) shows a simplified version of low-pin-count NVM protocol for ERASE according to one embodiment.



FIG. 6(
a) shows a start bit waveform according to one embodiment.



FIG. 6(
a) shows a stop bit waveform according to one embodiment.



FIG. 7(
a) shows a read timing waveform of a low-pin-count NVM in read mode according to one embodiment.



FIG. 7(
b) shows a program timing waveform of a low-pin-count NVM in program mode according to one embodiment.



FIG. 7(
c) shows a program timing waveform of a low-pin-count NVM in program mode according to another embodiment.



FIG. 8(
a) shows a block diagram of a HW R/W low-pin-count NVM according to one embodiment.



FIG. 8(
b) shows a block diagram of another embodiment of HW R/W low-pin-count NVM according to one embodiment.



FIG. 9(
a) shows one embodiment of a block diagram for HW-W-SW-R low-pin-count NVM according to one embodiment.



FIG. 9(
b) shows yet another embodiment of a block diagram for HW-W-SW-R low-pin-count NVM according to one embodiment.



FIG. 10 shows a soft program procedure for a low-pin-count NVM according to one embodiment.



FIG. 11(
a) shows a program procedure for a low-pin count NVM according to one embodiment.



FIG. 11(
b) shows an erase procedure for a low-pin count NVM according to one embodiment.



FIG. 12 shows a read procedure for a low-pin-count NVM according to one embodiment.



FIG. 13 shows an OTP cell using a diode as program selector according to one embodiment.





DETAILED DESCRIPTION OF THE INVENTION

The invention relates to a low-pin-count non-volatile memory (NVM) having reduced area and footprint. In one embodiment, the low-pin-count non-volatile memory can use an interface that makes use of only one pin external to an integrated circuit. This interface not only can use only one external pin but also can share several internal pins with the rest of integrated circuit to thereby reduce area and footprint. Moreover, if desired, the one external pin can be further multiplexed with the other pins so that no additional pins are needed. In one embodiment the interface can pertain to a low-pin-count OTP interface for an OTP memory so that the OTP memory can be easily integrated into an integrated circuit.


Simply employing a serial interface is not sufficient for an OTP memory because an OTP memory requires high voltage programming control and has a much longer program time than read time. Also, getting into a program mode at a specific address should be immune to noises and be secure to prevent corrupting data.


In one embodiment, a non-volatile memory interface can uses only two signals, PGM and CLK for program control and clock, respectively. By comparing the relative phase between these two signals, the start and stop conditions can be detected. In addition, device ID, read/program/erase mode, and starting address can be determined. Thereafter, read, program, or erase sequences can be signaled. Program assertion and program time can be determined by the pulse width of PGM in program mode. Similarly erase assertion and erase time can be determined by the pulse width of PGM in erase mode. Finally, the operations are ended with a stop condition or running through the whole memory. Since the CLK can be shared or derived from a system clock of the integrated circuit, the additional pin for NVM is then the one external pin denoted PGM.


This invention discloses a two-pin count NVM interface with PGM and CLK for program control and clock, respectively. The CLK can be derived from a system clock in an integrated circuit so that only one additional pin PGM is required for the NVM. In addition, the PGM pin can be further multiplexed with other pins in the integrated circuit to reduce external pins. In the NVM applications for chip ID, serial number, or inventory control, the data are written into and read out from the NVM by controlling the external pin, such as PGM. To further save pin count, the control pin PGM and data output pin Q can be shared in a bi-directional I/O, PGM/Q. This mode is called hardware read and write (HW R/W). In other NVM applications such as security key, PROM code, or configuration parameters, the data stored in NVMs can only be read internally for security reasons, though programming or erasing is still achieved by controlling the external pins. This mode is called hardware write and software read (HW-W-SW-R). The required I/O pins are CLK, PGM, Q, and PGMi. PGM is the only external pin needed for control programming, while PGMi is an internal pin for control reading.


The invention can be implemented in numerous ways, including as a method, system, device, or apparatus (including computer readable medium). Several embodiments of the invention are discussed below.



FIG. 4(
a) shows a one-pin NVM 30 with hardware read/write (HW R/W) according to one embodiment. An integrated circuit 31 has an NVM memory 32 and a power-switch device 33 coupled between a high voltage pin VDDP and the NVM memory 32. The NVM memory 32 has one pin, clk, internal to the integrated circuit 31 and another pin, PGM/Q, external to the integrated circuit 31. The clk pin can be obtained from an external system clock, CLK, with a buffer 34 and a frequency divider 35. The frequency divider 35, such as divided-by-2, can make phase alignment between PGM/Q and CLK much easier, and therefore this is one suitable embodiment. It is important to have CLK externally accessible, because generating PGM/Q timing should be aligned with the CLK. PGM/Q is a bi-directional I/O pin that can be used to set control signals as well as to get data out.



FIG. 4(
b) shows a one-pin NVM 40 with hardware write and software read (HW-W-SW-R) according to one embodiment. An integrated circuit 41 has an NVM memory 42 and a power-switch device 43 coupled between a high voltage pin VDDP and the NVM memory 42. The NVM memory 42 has three pins, pgmi, clk, and q internal to the integrated circuit 41 and one pin PGM external to the integrated circuit 41. The clk pin can be obtained from an external system clock, CLK, with a buffer 44 and a frequency divider 45. The frequency divider 45, such as a divided-by-2 or higher, can make the phase alignment between PGM and clk can be much easier. It is important to have CLK externally accessible, because generating PGM timing should be aligned with the CLK. Pgmi is a control signal for read, similar to PGM for program and erase. Data pin q is a data out to a multi-bit registers 46 so that the content of the NVM can be accessed by software reading the registers 46.



FIG. 5(
a) shows a low-pin-count NVM I/O protocol 50 according to one embodiment. The I/O transaction starts with a start bit 51 and ends with a stop bit 55. After detecting the start bit 51, there is a fixed 8-bit device ID code 52 to specify device names and types, such as SRAM, ROM, OTP or device 1, device 2, etc., to access. In one embodiment, device can grant access only when the requested device ID matches the target device ID. Then, there is multiple-bit pattern 53 to specify read, program, or erase. It is very important for an NVM to prevent accidental programming or erasing so that programming or erasing can happen only when detecting special data patterns. The special data pattern to unlock programming can be a log sequence of alternative zeros and ones such as 0101,0101,0101,0101 for read, 1010,1010,1010,10101 for program, and 0101,0101,1010,1010 for erase. The next field is a starting address 54. Sixteen bits in the address 54 allows memory capacity up to 64 K bits. This field can be extended by itself when detecting a device in field 52 that has capacity higher than 64 Kb or using more bits in the address 54. After knowing the device type, read, program, or erase operation, and starting address in fields 52, 53, and 54, respectively, the next step is the actual read, program, or erase. The data access ends when detecting a stop bit 55, or running through the whole memory. The R/P/E access patterns 53 as noted above are exemplary. It will be apparent to those skilled in the art that various modifications and variations can be made.


If the capacity of the NVM is very low, such as 32 bits or 256 bits, a conventionally rather long LPC detection sequence may defeat the purpose of a simple and reliable I/O protocol. Hence, according to one aspect of embodiment of the invention, a simplified I/O protocol can be provided which has a substantially reduced LPC detection sequence.



FIGS. 5(
b), 5(c), and 5(d) show simplified versions of low-pin-count NVM protocols for read, program, and erase, respectively, according to one embodiment. FIG. 5(b) shows a low-pin-count read protocol 60 with a start bit 61, LPC detection field 62, LPC Read access 63, and stop bit 64. Similarly, FIG. 5(c) shows a low-pin-count program protocol 65 with a start bit 66, LPC detection field 67, LPC program access 68, and stop bit 69. FIG. 5(d) shows a low-pin-count erase protocol 75 with a start bit 76, LPC detection field 77, LPC erase access 78, and stop bit 79. A simple read, program, or erase sequence, such as 0101,0101, 1010,1010, or 1010,0101 respectively, grant read, program or erase access in a low capacity NVM. The device ID and starting address fields are omitted. The address starts with the lowest possible address and increments by one after each access. Those skilled in the art understand that the above descriptions are for illustrative purpose. The numbers of fields, number of bits in each field, the order of the fields, address increment/decrement, and actual R/P/E patterns may vary and that are still within the scope of this invention.



FIGS. 6(
a) and 6(b) show one embodiment of start and stop bit waveforms. When the I/O transaction is inactive, the control signal PGM always toggles at the low CLK period. If the PGM toggles at the high CLK period, this indicates a start or stop condition. The PGM going high during the high CLK period shows a start condition and the PGM going low during the high CLK period shows a stop condition. By using the relative phase between the PGM and the CLK, a chip select function can be provided and a chip select CS# pin can be saved.



FIG. 7(
a) shows a read timing waveform of a low-pin-count NVM in read mode according to one embodiment. Once a read transaction is detected, the data in the NVM can be read out one bit at a time at each falling CLK edge from the starting address. The starting address can be specified in the address field or can be implied as being the lowest possible address. The address can be auto-incremented by one after each access. In a bi-direction I/O, PGM/Q pin is left floating externally after LPC read stage so that the same pin can be used for outputting data.



FIG. 7(
b) shows a program timing waveform of a low-pin-count NVM in a program mode according to one embodiment. Once a program condition is detected, the I/O transaction goes into the actual programming cycles from the starting address. In one embodiment, the address increments at each falling edge of CLK and programming for each bit determined if the PGM is high at the rising edge of each CLK. For example, the PGM is high at the CLK rising edge of bit 0, 1, 2, and 3 so that bit 0, 1, 2, and 3 are programmed during the CLK high period. Since PGM is low at the CLK rising edge of bit 4, bit 4 is not programmed. By doing this way, each CLK toggling increments the bit address by one and the PGM high or low at each CLK rising edge determines that bit being programming or not. Actual programming time is the CLK high period.



FIG. 7(
c) shows a program timing waveform of a low-pin-count NVM in an program mode according to another embodiment. Once the program condition is detected, the I/O transaction goes into the actual programming cycles from the starting address. The program address increments after each low-to-high transition of PGM. The actual program timing depends on the number of whole CLK cycles within each PGM high pulse. For example, in bit 0 the PGM pulse width is larger than 3 CLK cycles to enable actual programming for 3 CLK cycles. In bit 1, the PGM pulse width is less than one CLK period so that bit 1 is not programmed. In bit 2, the PGM pulse width is greater than one CLK period so that bit 2 is programmed for 1 CLK cycle. By doing this way, the CLK frequency can be the same for both read and program, while the program period can be determined by the number of CLK high period in the PGM high pulse width. The actual program pulses can be delayed by one CLK period to make determining number of CLK cycles easier. The embodiments in FIGS. 7(b) and 7(c) can be applied to erase mode too. In some NVM, an erase operation happens on a page basis. In that case, the erase address can represent a page address, instead of a bit address.



FIG. 8(
a) shows a block diagram of a HW R/W low-pin-count NVM 80 according to one embodiment. A start bit detection block 81 detects if a starting condition is met by the relative phase between PGM and CLK as shown in FIGS. 6(a) and 6(b). If yes, a LPC Dev-RPE detection block 82 detects if a device ID and read/program/erase access pattern are met, and then obtains a starting address. With a valid read, program, or erase status and the starting address, a LPC access block 83 performs actual read, program, and erase cycles. If the I/O transaction is a read, a tri-state buffer 84 is asserted so that the output Q is re-directed into the same PGM pin (which can serve as a shared PGM/Q pin).



FIG. 8(
b) shows a block diagram of a HW R/W low-pin-count NVM 90 according to one embodiment. A start bit detection block 91 detects if a starting condition is met by the relative phase between PGM and CLK as shown in FIGS. 6(a) and 6(b). If yes, a LPC Dev-RPE detection block 92 further detects if a device ID and program, or erase access pattern are met, and then obtains a starting address. With a valid program, or erase status and the starting address, a LPC access block 93 performs actual program and erase cycles. Granting read access can be made simple by asserting a level or a pulse signal in another embodiment, since read is not a destructive operation. If the I/O transaction is a read, the tri-state buffer 94 is asserted so that the output Q is re-directed into the same PGM pin (which can serve as a shared PGM/Q pin).



FIG. 9(
a) shows one embodiment of a block diagram 100 for a HW-W-SW-R low-pin-count NVM according to one embodiment. Read and program/erase paths determined by PGM and PGMi go through start bit detection blocks 101 and 103, and LPC Dev-RW detection blocks 102 and 104, separately. These two paths are combined after each block's read and program/erase statuses are determined. The combined program/erase status is a program/erase in program/erase path but not in the read path as realized in gate 111. Similarly, the combined read status is a read in the read path but not in the erase/program path as realized in gate 113. The combined PGM is a program/erase if program/erase status in the program/erase path is asserted, or PGMi if the read status in the read path is asserted, as realized in gates 110, 114, and 112. The data in output Q from a LPC access circuit 105 are stored in internal registers (not shown). The PGMi is held low during program/erase and the PGM is held low during read to prevent interference of read and program/erase. The program/erase status can be two separate bits to indicate either program or erase condition, so are the gates 110 and 111 replicated for program/erase.



FIG. 9(
b) shows another embodiment of a block diagram 120 for a HW-W-SW-R low-pin-count NVM according to one embodiment. Program/erase and read paths are merged after each path detecting a start bit in 121 and 122, respectively, so that some hardware can be shared. Then the start bits are OR'd to generate a combined start bit as realized in gate 133. The combined PGM at the output of gate 133 indicates a program/erase if a start bit is detected in the program/erase path, or indicates a read if a start bit is detected in the read path, as realized by gates 130, 131, and 132. Then, a single LPC Dev-RW detection block 123 detects device ID, R/P/E pattern, and starting address, if any. A program/erase status detected in the single LPC Dev-RW detection block 123 with a start bit detected in the program/erase path is considered a valid program/erase condition as realized by gate 134. Similarly, a read status detected by the single LPC Dev-RW detection block 123 with a start bit detected in the read path is considered a valid read condition as realized by gate 135. The valid program/erase and read conditions trigger the follow on LPC access circuit 124. Output Q from the LPC access circuit 124 are stored in internal registers (not shown). The block diagram in FIG. 9(b) is the preferred embodiment over that in FIG. 9(a) because the implementation cost is lower. The PGMi is held low during program/erase and the PGM is held low during read to prevent interference of read and program/erase. The program/erase status can be two separate bits to indicate either program or erase condition, so is the gate 134 replicated for program/erase.


In most applications, the NVM data are for device trimming, configuration parameters, memory repair, or MCU code. Normally, data is loaded into registers to test if they function properly before actually programming which can prevent false programming. This technique is called soft program. FIG. 10 shows a soft-program procedure 200 for a low-pin-count NVM. The procedure 200 starts with loading the intended NVM data into output registers in 210. Then, the registers are tested to check if they function as expected at 220. If not, no programming would occur. If yes, proceed to start programming the content into the NVM at 230 and stop after finishing. Soft programming is especially useful for OTP because such devices can be only programmed once.



FIG. 11(
a) shows a program procedure 230 for a low-pin-count NVM according to one embodiment. The procedure 230 starts with detecting a start bit at 231. If a start bit is detected, proceed to detect a valid device ID at 232, if not detected the procedure 230 ends. Then, the procedure 230 proceeds to detect a program pattern at 233, if not detected the procedure 230 ends. The procedure 230 continues to obtain a starting address in 234. After the start bit, device ID, write pattern, and starting address are checked and obtained, the next step provides an adequate program waveform based on the data for the corresponding address at 235 and auto increment the address after each programming. The programming progresses until a stop bit is detected in 236, then the procedure 230 finishes at 237. The above discussion is for illustration purposes. For those skilled in the art understand that some steps can be omitted, the number of bits in each bit field can be different, the bit field order can be interchangeable and that are still within the scope of this invention.



FIG. 11(
b) shows an erase procedure 330 for a low-pin-count NVM according to one embodiment. The procedure 330 starts with detecting a start bit at 331. If a start bit is detected, proceed to detect a valid device ID at 332, if not detected the procedure 330 ends. Then, the procedure 330 proceeds to detect an erase pattern at 333, if not detected the procedure 330 ends. The procedure 330 continues to obtain a starting address at 334. After the start bit, device ID, write pattern, and starting address are checked and obtained, the next step provides an adequate erase waveform based on the data for the corresponding address at 335 and auto increment the address after each erasing. The erasing progresses until a stop bit is detected at 336, then the procedure 330 finishes at 337. The above discussion is for illustration purposes. For those skilled in the art understand that some steps can be omitted, the number of bits in each bit field can be different, the bit field order can be interchangeable and that are still within the scope of this invention.



FIG. 12 shows a read procedure 400 for a low-pin-count NVM according to one embodiment. The procedure 400 starts with detecting a start bit at 410. If a start bit is detected, proceed to detect a device ID at 420, if not detected, end procedure 430. Then, proceeds to detect a read pattern at 430. The procedure 430 continues obtaining a starting address at 440. After the start bit, device ID, read pattern, and starting address are checked and obtained, the next step is to read data bit by bit at the rising or falling edge of each clock cycle at 460 and auto increment the address after each access. The read progresses until a stop bit is detected at 470, then the procedure 400 finishes with an end at 480. The above discussion is for illustration purposes. For those skilled in the art understand that some steps can be omitted, the number of bits in each bit field can be different, the bit field order can be interchangeable and that are still within the scope of this invention.


The block diagrams shown in FIGS. 8(a), 8(b), 9(a), and 9(b) are for illustrative purpose. The actual circuit and logic implementations may vary. Similarly, the procedures described in FIGS. 10, 11(a), 11(b), and 12 are for exemplifying purposes. The detailed implementation in the procedures may vary. For example, some steps may be skipped if simplified versions of read, program, or erase protocols in FIG. 5(b), 5(c), or 5(d) are employed. There can be many embodiments of the circuit, logic, block diagram, and procedures and that are still within the scope of this invention for those skilled in the art.



FIG. 13 shows an OTP cell 15 as a particular NVM cell using a diode as program selector according to one embodiment. The OTP cell 15 has an OTP element 16 and a program selector 17. The OTP element 16 is coupled to a supply voltage V+ in one end and a program selector 17 at the other. The program selector 17 has the other end coupled to a second supply voltage V−. The program selector is constructed from a diode that can be embodied as a junction diode with a P+ active region on N-well, or a polysilicon diode with P+ and N+ implants on two ends of the polysilicon to constitute a diode. The OTP elements 16 are commonly electrical fuse based on polysilicon or silicided polysilicon, or anti-fuse based on gate oxide breakdown. The low-pin-count NVM interface is readily applicable to the OTP cell 15.


To further reduce the footprint, the one-pin NVM circuit can be built under the bonding pad of PGM, in the so-called Circuit-Under-Pad (CUP) technology. The Electrostatic Discharge (ESD) protection can be integrated into the one-pin NVM as well. The output driver of a bi-directional I/O can act as ESD protection for the external pin PGM.


It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.

Claims
  • 1. A low-pin-count non-volatile memory (NVM) integrated in an integrated circuit comprises: a plurality of NVM cells;a clock signal internal to the integrated circuit coupled to a system clock of the integrated circuit; anda control signal external to the integrated circuit to generate start, stop, read, program, or erase conditions with timing related to the clock signal for read, program, or erase condition; wherein the program or erase period being determined by the pulse width of the clock signal and whether an NVM cell being programmed or not determined by the control signal when the clock toggles after the program or erase begins.
  • 2. A low-pin-count NVM as recited in claim 1, wherein start or stop bit is determined by toggling the control signal related to high or low period of the clock signal.
  • 3. A low-pin-count NVM as recited in claim 1, wherein the program address or erase page address increments or decrements when the clock signal rises or falls after actual programming or erasing begins.
  • 4. A low-pin-count NVM as recited in claim 1, wherein the read data are multiplexed and output to the same control signal for external access.
  • 5. A low-pin-count One-Time-Programmable (OTP) non-volatile memory integrated in an integrated circuit comprises: a plurality of OTP cells, at least one of the cells including at least an OTP element coupled to a first supply voltage line, and a program selector coupled to the OTP element and to a second supply voltage line;a clock signal internal to the integrated circuit and coupled to a system clock of the integrated circuit; anda control signal external provided to the integrated circuit to generate start, stop, read or program conditions with timing related to the clock signal for read or program, wherein a program period for programming the OTP element is determined based on a pulse width of the clock signal and whether an OTP cell is programmed or not is determined based on the control signal at the toggling of each clock signal after the program condition begins.
  • 6. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein start or stop bit is determined by toggling the control signal related to a high or low period of the clock signal.
  • 7. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein a read or program address for programming increments or decrements when the clock signal toggles after the read or program condition is determined.
  • 8. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein a plurality of bits to specific a starting address are detected before proceeding to read or program.
  • 9. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein a plurality of bits for valid device identity are detected before proceeding to read or program.
  • 10. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein the read data are multiplexed and output to the same control signal for external access.
  • 11. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein the OTP is built under a bonding pad of a pin of the integrated circuit for the control signal.
  • 12. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein the OTP is integrated with an Electro-Static Discharge (ESD) device for a bonding pad.
  • 13. A low-pin-count OTP non-volatile memory as recited in claim 5, wherein the program selector of the OTP cell includes at least a diode or MOS constructed from source or drain of a CMOS on a CMOS well.
  • 14. A method for providing a low-pin-count OTP memory in an integrated circuit comprises: providing a plurality of OTP cells, at least one of the cells including an OTP element coupled to a first supply voltage line, and a program selector coupled to the OTP element and to a second supply voltage line;receiving a clock signal internal to the integrated circuit coupled to a system clock of the integrated circuit; andreceiving a control signal external to the integrated circuit to generate start, stop, read or program conditions with timing related to the clock signal for program or read, wherein a program period is determined by a pulse width of the clock signal and whether an OTP cell is programmed or not is determined by the control signal when the clock toggles after the program condition begins.
  • 15. A method as recited in claim 14, wherein the program address increments or decrements when the clock signal toggles after actual programming or reading begins.
  • 16. A method as recited in claim 14, wherein a plurality of bits to specific a starting address are detected before proceeding to read or program.
  • 17. A method as recited in claim 14, wherein a plurality of bits for valid device identity are detected before proceeding to read or program.
  • 18. A method as recited in claim 14, wherein read data are multiplexed and output to the same control signal for external access.
  • 19. An electronic device provides at least one integrated circuit, which integrated circuit comprises: a low-pin-count One-Time Programmable (OTP) integrated circuitry comprises including a plurality of OTP cells;a clock input configured to receive a system clock of the electronic device;a control input configured to receive a control signal for controlling operation of the low-pin-count OTP integrated circuitry; andcontrol logic coupled to the control input and the low-pin-count OTP integrated circuit, and configured to generate start, stop, read, or program conditions for read, or program operation with respect to the OTP cells, wherein a program period is determined by a pulse width of the clock signal and whether the OTP cells are programmed depending on the control signal when the clock signal toggles after program condition begins.
  • 20. An electronic device as recited in claim 19, wherein the start, stop, read, or program condition depends on the timing of the control signal related to the clock signal.
CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 13/288,843, filed on Nov. 3, 2011 and entitled “Low-In-Count Non-Volatile Memory Interface,” which is hereby incorporated herein by reference, which in turn claims priority benefit of: U.S. Provisional Patent Application No. 61/409,539, filed on Nov. 3, 2010 and entitled “Circuit and System of A Low Pin Count One-Time-Programmable Memory,” which is hereby incorporated herein by reference.

US Referenced Citations (213)
Number Name Date Kind
3198670 Nissim Aug 1965 A
3715242 Daniel Feb 1973 A
4148046 Hendrickson et al. Apr 1979 A
4192059 Khan et al. Mar 1980 A
4642674 Schoofs Feb 1987 A
5192989 Matsushita et al. Mar 1993 A
5389552 Iranmanesh Feb 1995 A
5447876 Moyer et al. Sep 1995 A
5635742 Hoshi et al. Jun 1997 A
5637901 Beigel et al. Jun 1997 A
5723890 Fujihira et al. Mar 1998 A
5757046 Fujihira et al. May 1998 A
5761148 Allan et al. Jun 1998 A
5962903 Sung et al. Oct 1999 A
6008092 Gould Dec 1999 A
6034882 Johnson et al. Mar 2000 A
6054344 Liang et al. Apr 2000 A
6140687 Shimormura et al. Oct 2000 A
6243864 Odani et al. Jun 2001 B1
6249472 Tamura et al. Jun 2001 B1
6346727 Ohtomo Feb 2002 B1
6400540 Chang Jun 2002 B1
6405160 Djaja et al. Jun 2002 B1
6461934 Nishida et al. Oct 2002 B2
6483734 Sharma et al. Nov 2002 B1
6597629 Raszka et al. Jul 2003 B1
6611043 Takiguchi Aug 2003 B2
6731535 Ooishi et al. May 2004 B1
6770953 Boeck et al. Aug 2004 B2
6803804 Madurawe Oct 2004 B2
6813705 Duesterwald et al. Nov 2004 B2
6944083 Pedlow Sep 2005 B2
6967879 Mizukoshi Nov 2005 B2
7009182 Kannan et al. Mar 2006 B2
7211843 Low et al. May 2007 B2
7212432 Ferrant et May 2007 B2
7224598 Perner May 2007 B2
7263027 Kim et al. Aug 2007 B2
7294542 Okushima Nov 2007 B2
7391064 Tripsas et al. Jun 2008 B1
7411844 Nitzan et al. Aug 2008 B2
7439608 Arendt Oct 2008 B2
7461371 Luo et al. Dec 2008 B2
7573762 Kenkare et al. Aug 2009 B2
7589367 Oh et al. Sep 2009 B2
7660181 Kumar et al. Feb 2010 B2
7696017 Tripsas et al. Apr 2010 B1
7701038 Chen et al. Apr 2010 B2
7764532 Kurjanowicz et al. Jul 2010 B2
7802057 Iyer et al. Sep 2010 B2
7808815 Ro et al. Oct 2010 B2
7830697 Herner Nov 2010 B2
7833823 Klersy Nov 2010 B2
7859920 Jung Dec 2010 B2
7889204 Hansen et al. Feb 2011 B2
7910999 Lee et al. Mar 2011 B2
8008723 Nagai Aug 2011 B2
8050129 Liu et al. Nov 2011 B2
8089137 Lung et al. Jan 2012 B2
8115280 Chen et al. Feb 2012 B2
8119048 Nishimura Feb 2012 B2
8168538 Chen et al. May 2012 B2
8174063 Liu et al. May 2012 B2
8174922 Naritake May 2012 B2
8179711 Kim et al. May 2012 B2
8183665 Bertin et al. May 2012 B2
8217490 Bertin et al. Jul 2012 B2
8233316 Liu et al. Jul 2012 B2
8339079 Tamada Dec 2012 B2
8369166 Kurjanowicz et al. Feb 2013 B2
8373254 Chen et al. Feb 2013 B2
8380768 Hoefler Feb 2013 B2
8415764 Chung Apr 2013 B2
8482972 Chung Jul 2013 B2
8488359 Chung Jul 2013 B2
8488364 Chung Jul 2013 B2
8514606 Chung Aug 2013 B2
8526254 Kurjanowicz et al. Sep 2013 B2
8559208 Chung Oct 2013 B2
8570800 Chung Oct 2013 B2
8576602 Chung Nov 2013 B2
8643085 Pfirsch Feb 2014 B2
8644049 Chung Feb 2014 B2
8648349 Masuda et al. Feb 2014 B2
8649203 Chung Feb 2014 B2
8699259 Zhang et al. Apr 2014 B2
8760904 Chung Jun 2014 B2
8817563 Chung Aug 2014 B2
8830720 Chung Sep 2014 B2
8854859 Chung Oct 2014 B2
8861249 Chung Oct 2014 B2
8913415 Chung Dec 2014 B2
8913449 Chung Dec 2014 B2
8923085 Chung Dec 2014 B2
8988965 Chung Mar 2015 B2
20020168821 Williams et al. Nov 2002 A1
20020196659 Hurst et al. Dec 2002 A1
20030104860 Cannon et al. Jun 2003 A1
20030135709 Niles et al. Jul 2003 A1
20030169625 Hush et al. Sep 2003 A1
20040057271 Parkinson Mar 2004 A1
20040113183 Karpov et al. Jun 2004 A1
20040130924 Ma et al. Jul 2004 A1
20050060500 Luo et al. Mar 2005 A1
20050062110 Dietz et al. Mar 2005 A1
20050110081 Pendharkar May 2005 A1
20050124116 Hsu et al. Jun 2005 A1
20050146962 Schreck Jul 2005 A1
20060072357 Wicker Apr 2006 A1
20060092689 Braun et al. May 2006 A1
20060104111 Tripsas et al. May 2006 A1
20060120148 Kim et al. Jun 2006 A1
20060129782 Bansal et al. Jun 2006 A1
20060215440 Cho et al. Sep 2006 A1
20060244099 Kurjanowicz Nov 2006 A1
20070057323 Furukawa et al. Mar 2007 A1
20070081377 Zheng et al. Apr 2007 A1
20070133341 Lee et al. Jun 2007 A1
20070138549 Wu et al. Jun 2007 A1
20070223266 Chen Sep 2007 A1
20070279978 Ho et al. Dec 2007 A1
20080025068 Scheuerlein et al. Jan 2008 A1
20080028134 Matsubara et al. Jan 2008 A1
20080044959 Cheng et al. Feb 2008 A1
20080067601 Chen Mar 2008 A1
20080105878 Ohara May 2008 A1
20080151612 Pellizzer et al. Jun 2008 A1
20080170429 Bertin et al. Jul 2008 A1
20080175060 Lie et al. Jul 2008 A1
20080220560 Klersy Sep 2008 A1
20080225567 Burr et al. Sep 2008 A1
20080280401 Burr et al. Nov 2008 A1
20090055617 Bansal et al. Feb 2009 A1
20090168493 Kim et al. Jul 2009 A1
20090172315 Iyer et al. Jul 2009 A1
20090180310 Shimomura et al. Jul 2009 A1
20090194839 Bertin et al. Aug 2009 A1
20090213660 Pikhay et al. Aug 2009 A1
20090219756 Schroegmeier et al. Sep 2009 A1
20090309089 Hsia et al. Dec 2009 A1
20100027326 Kim et al. Feb 2010 A1
20100085798 Lu et al. Apr 2010 A1
20100091546 Liu et al. Apr 2010 A1
20100142254 Choi et al. Jun 2010 A1
20100157651 Kumar et al. Jun 2010 A1
20100171086 Lung et al. Jul 2010 A1
20100232203 Chung et al. Sep 2010 A1
20100238701 Tsukamoto et al. Sep 2010 A1
20100246237 Borot et al. Sep 2010 A1
20100277967 Lee et al. Nov 2010 A1
20100301304 Chen et al. Dec 2010 A1
20110022648 Harris et al. Jan 2011 A1
20110062557 Bandyopadhyay et al. Mar 2011 A1
20110128772 Kim et al. Jun 2011 A1
20110145777 Iyer et al. Jun 2011 A1
20110175199 Lin et al. Jul 2011 A1
20110222330 Lee et al. Sep 2011 A1
20110260289 Oyamada Oct 2011 A1
20110297912 Samachisa et al. Dec 2011 A1
20110310655 Kreupl et al. Dec 2011 A1
20110312166 Yedinak et al. Dec 2011 A1
20120032303 Elkareh et al. Feb 2012 A1
20120044736 Chung Feb 2012 A1
20120044737 Chung Feb 2012 A1
20120044738 Chung Feb 2012 A1
20120044739 Chung Feb 2012 A1
20120044740 Chung Feb 2012 A1
20120044743 Chung Feb 2012 A1
20120044744 Chung Feb 2012 A1
20120044745 Chung Feb 2012 A1
20120044746 Chung Feb 2012 A1
20120044747 Chung Feb 2012 A1
20120044748 Chung Feb 2012 A1
20120044753 Chung Feb 2012 A1
20120044756 Chung Feb 2012 A1
20120044757 Chung Feb 2012 A1
20120044758 Chung Feb 2012 A1
20120047322 Chung Feb 2012 A1
20120074460 Kitagawa Mar 2012 A1
20120106231 Chung May 2012 A1
20120147653 Chung Jun 2012 A1
20120147657 Sekar et al. Jun 2012 A1
20120209888 Chung Aug 2012 A1
20120224406 Chung Sep 2012 A1
20120256292 Yu et al. Oct 2012 A1
20120287730 Kim Nov 2012 A1
20120314472 Chung Dec 2012 A1
20120314473 Chung Dec 2012 A1
20120320656 Chung Dec 2012 A1
20120320657 Chung Dec 2012 A1
20130148409 Chung Jun 2013 A1
20130161780 Kizilyalli et al. Jun 2013 A1
20130189829 Mieczkowski et al. Jul 2013 A1
20130200488 Chung Aug 2013 A1
20130201745 Chung Aug 2013 A1
20130201746 Chung Aug 2013 A1
20130201748 Chung Aug 2013 A1
20130201749 Chung Aug 2013 A1
20130215663 Chung Aug 2013 A1
20130235644 Chung Sep 2013 A1
20130268526 Johns et al. Oct 2013 A1
20140010032 Seshadri et al. Jan 2014 A1
20140016394 Chung et al. Jan 2014 A1
20140071726 Chung Mar 2014 A1
20140124871 Ko et al. May 2014 A1
20140124895 Salzman et al. May 2014 A1
20140131710 Chung May 2014 A1
20140131711 Chung May 2014 A1
20140131764 Chung May 2014 A1
20140133056 Chung May 2014 A1
20140211567 Chung Jul 2014 A1
20140269135 Chung Sep 2014 A1
20150021543 Chung Jan 2015 A1
Foreign Referenced Citations (11)
Number Date Country
1469473 Jan 2004 CN
1691204 Nov 2005 CN
101057330 Oct 2007 CN
101083227 Dec 2007 CN
101188140 May 2008 CN
101271881 Sep 2008 CN
101483062 Jul 2009 CN
101728412 Jun 2010 CN
1367596 Dec 2003 EP
03-264814 Nov 1991 JP
I309081 Oct 2007 TW
Non-Patent Literature Citations (168)
Entry
U.S. Appl. No. 13/471,704, filed May 15, 2012.
U.S. Appl. No. 13/026,650, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,656, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,664, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,678, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,692, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,704, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,717, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,725, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,752, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,771, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,783, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,835, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,840, filed Feb. 14, 2011.
U.S. Appl. No. 13/026,852, filed Feb. 14, 2011.
U.S. Appl. No. 13/214,198, filed Aug. 21, 2011.
U.S. Appl. No. 13/590,044, filed Aug. 20, 2012.
U.S. Appl. No. 13/590,047, filed Aug. 20, 2012.
U.S. Appl. No. 13/590,049, filed Aug. 20, 2012.
U.S. Appl. No. 13/590,050, filed Aug. 20, 2012.
U.S. Appl. No. 13/214,183, filed Aug. 20, 2011.
U.S. Appl. No. 13/288,843, filed Nov. 3, 2011.
U.S. Appl. No. 13/314,444, filed Dec. 8, 2011.
U.S. Appl. No. 13/397,673, filed Feb. 15, 2012.
U.S. Appl. No. 13/571,797, filed Aug. 10, 2012.
U.S. Appl. No. 13/678,539, filed Nov. 15, 2012.
U.S. Appl. No. 13/678,544, filed Nov. 15, 2012.
U.S. Appl. No. 13/678,541, filed Nov. 15, 2012.
U.S. Appl. No. 13/678,543, filed Nov. 15, 2012.
Notice of Allowance for U.S. Appl. No. 13/026,664 mailed Sep. 18, 2012.
Office Action for U.S. Appl. No. 13/471,704, mailed Jul. 31, 2012.
Notice of Allowance for U.S. Appl. No. 13/471,704 mailed Oct. 18, 2012.
Notice of Allowance for U.S. Appl. No. 13/026,678 mailed Sep. 19, 2012.
Office Action for U.S. Appl. No. 13/026,783 mailed Sep. 27, 2012.
Office Action for U.S. Appl. No. 13/026,717 mailed Oct. 25, 2012.
Office Action for U.S. Appl. No. 13/026,650 mailed Nov. 9, 2012.
Office Action for U.S. Appl. No. 13/026,692 mailed Nov. 9, 2012.
Office Action for U.S. Appl. No. 13/026,752 mailed Nov. 9, 2012.
Office Action for U.S. Appl. No. 13/026,656 mailed Nov. 13, 2012.
Office Action for U.S. Appl. No. 13/026,704 mailed Nov. 23, 2012.
Office Action for U.S. Appl. No. 13/397,673, mailed Dec. 18, 2012.
Office Action for U.S. Appl. No. 13/026,840, mailed Dec. 31, 2012.
Office Action for U.S. Appl. No. 13/026,852, mailed Jan. 14, 2013.
Office Action for U.S. Appl. No. 13/026,783, mailed Sep. 27, 2012.
Restriction Requirement for U.S. Appl. No. 13/026,835, mailed Dec. 12, 2012.
Notice of Allowance for U.S. Appl. No. 13/026,717, mailed Feb. 12, 2013.
Office Action for U.S. Appl. No. 13/471,704, mailed Jan. 25, 2013.
U.S. Appl. No. 13/761,048, filed Feb. 6, 2013.
U.S. Appl. No. 13/761,057, filed Feb. 6, 2013.
U.S. Appl. No. 13/761,097, filed Feb. 6, 2013.
U.S. Appl. No. 13/761,045, filed Feb. 6, 2013.
Office Action for U.S. Appl. No. 13/026,678, mailed Feb. 20, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,783, mailed Mar. 4, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,692, mailed Mar. 15, 2013.
Office Action for U.S. Appl. No. 13/026,704, mailed Nov. 23, 2012.
Notice of Allowance for U.S. Appl. No. 13/026,835, mailed Mar. 20, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,664, mailed Apr. 22, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,656, mailed Apr. 22, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,835, Mailed Apr. 18, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,704, mailed Apr. 30, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,852, mailed May 10, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,717, mailed May 15, 2013.
Notice of Allowance for U.S. Appl. No. 13/471,704, mailed May 22, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,678, mailed May 28, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,650, mailed May 30, 2013.
Restriction Requirement for U.S. Appl. No. 13/314,444, mailed Jun. 7, 2013.
Restriction Requirement for U.S. Appl. No. 13/214,198, mailed Jun. 13, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,840, mailed Jun. 13, 2013.
Restriction Requirement for U.S. Appl. No. 13/026,771, mailed Jun. 13, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,752, mailed Jul. 1, 2013.
Restriction Requirement for U.S. Appl. No. 13/678,543, mailed Jul. 8, 2013.
Office Action for U.S. Appl. No. 13/026,725, mailed Jul. 19, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,664, mailed Jul. 22, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,692, mailed Jul. 23, 2013.
Notice of Allowance for U.S. Appl. No. 13/397,673, mailed Jul. 30, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,704, mailed Aug. 2, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,783, mailed Aug. 5, 2013.
Office Action for U.S. Appl. No. 13/214,198, mailed Aug. 6, 2013.
Office Action for U.S. Appl. No. 13/026,783, mailed Sep. 9, 2013.
Office Action for U.S. Appl. No. 13/314,444, mailed Sep. 9, 2013.
Office Action for U.S. Appl. No. 13/026,771, mailed Sep. 9, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,852, mailed Sep. 18, 2013.
Office Action (Ex Parte) for U.S. Appl. No. 13/678,543, mailed Sep. 20, 2013.
Office Action for U.S. Appl. No. 13/835,308, mailed Sep. 27, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,717, mailed Oct. 1, 2013.
Office Action for U.S. Appl. No. 13/954,831, mailed Oct. 1, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,656, mailed Oct. 4, 2013.
Office Action for U.S. Appl. No. 13/214,183, mailed Oct. 25, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,852, mailed Nov. 15, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,835, mailed Nov. 22, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,725, mailed Dec. 10, 2013.
Office Action for U.S. Appl. No. 13/026,783, mailed Dec. 23, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,771, mailed Jan. 15, 2014.
Restriction Requirement for U.S. Appl. No. 13/678,541, mailed Feb. 28, 2014.
Notice of Allowance for U.S. Appl. No. 13/026,840, mailed Mar. 6, 2014.
Notice of Allowance for U.S. Appl. No. 13/026,840, mailed Mar. 10, 2014.
Notice of Allowance of U.S. Appl. No. 13/678,543, mailed Dec. 13, 2013.
Notice of Allowance for U.S. Appl. No. 13/835,308, mailed Mar. 14, 2014.
Notice of Allowance for U.S. Appl. No. 13/026,835, mailed Mar. 14, 2014.
Notice of Allowance for U.S. Appl. No. 13/026,725, mailed Mar. 31, 2014.
Notice of Allowance for U.S. Appl. No. 13/026,852, mailed Mar. 20, 2014.
Notice of Allowance for U.S. Appl. No. 13/026,771, mailed Mar. 18, 2014.
Final Office Action for U.S. Appl. No. 13/214,183, mailed Apr. 17, 2014.
Notice of Allowance for U.S. Appl. No. 13/761,097, mailed Jul. 15, 2014.
Office Action for U.S. Appl. No. 13/571,797, mailed Apr. 24, 2014.
Notice of Allowance for U.S. Appl. No. 13/590,044, mailed Apr. 29, 2014.
Notice of Allowance for U.S. Appl. No. 13/954,831, mailed May 27, 2014.
Notice of Allowance of U.S. Appl. No. 13/833,044, mailed May 29, 2014.
Notice of Allowance for U.S. Appl. No. 13/761,048, mailed Jun. 10, 2014.
Office Action for U.S. Appl. No. 13/072,783, mailed Nov. 7, 2013.
Notice of Allowance for U.S. Appl. No. 13/026,840, mailed Jun. 24, 2014.
Notice of Allowance for U.S. Appl. No. 13/214,198, mailed Jun. 23, 2014.
Notice of Allowance for U.S. Appl. No. 13/590,044, mailed Jun. 23, 2014.
Notice of Allowance for U.S. Appl. No. 13/840,965, mailed Jun. 25, 2014.
Office Action for U.S. Appl. No. 13/970,562, mailed Jun. 27, 2014.
Office Action for U.S. Appl. No. 13/835,308, mailed Jun. 27, 2014.
Notice of Allowance for U.S. Appl. No. 13/288,843, mailed Jul. 8, 2014.
Restriction Requirement for U.S. Appl. No. 13/678,539, mailed Jul. 1, 2014.
Notice of Allowance for U.S. Appl. No. 14/231,413, mailed Jul. 18, 2014.
Notice of Allowance for U.S. Appl. No. 13/590,044, mailed Jul. 23, 2014.
Restriction Requirement for U.S. Appl. No. 13/833,067, mailed Jul. 11, 2014.
Notice of Allowance for U.S. Appl. No. 13/954,831, mailed Aug. 4, 2014.
Restriction Requirement for U.S. Appl. No. 13/678,544, mailed Aug. 1, 2014.
Notice of Allowance for U.S. Appl. No. 13/761,097, mailed Jul. 25, 2014.
Ex parte Quayle for U.S. Appl. No. 13/761,057, mailed Aug. 8, 2014.
Final Office Action for U.S. Appl. No. 13/314,444, mailed May 14, 2014.
Corrected Notice of Allowability for U.S. Appl. No. 13/288,843, mailed Aug. 19, 2014.
Office Action for U.S. Appl. No. 13/590,049, mailed Aug. 29, 2014.
Ex Parte Quayle for U.S. Appl. No. 13/590,047, mailed Aug. 29, 2014.
Ex Parte Quayle for U.S. Appl. No. 13/590,050, mailed Sep. 3, 2014.
Office Action for U.S. Appl. No. 13/678,544, mailed Sep. 12, 2014.
Office Action for U.S. Appl. No. 13/678,539, mailed Sep. 10, 2014.
Notice of Allowance for U.S. Appl. No. 13/288,843, mailed Sep. 18, 2014.
Notice of Allowance for U.S. Appl. No. 13/761,057, mailed Sep. 26, 2014.
Notice of Allowance for U.S. Appl. No. 13/833,044, mailed Sep. 24, 2014.
Notice of Allowance for U.S. Appl. No. 13/314,444, mailed Sep. 24, 2014.
Office Action for U.S. Appl. No. 13/761,045, mailed Sep. 30, 2014.
Notice of Allowance for U.S. Appl. No. 13/835,308, mailed Oct. 10, 2014.
Notice of Allowance for U.S. Appl. No. 13/571,797, mailed Oct. 14, 2014.
Office Action for U.S. Appl. No. 13/833,067, mailed Oct. 20, 2014.
Notice of Allowance for U.S. Appl. No. 14/085,228, mailed Oct. 23, 2014.
Office Action for U.S. Appl. No. 13/842,824, mailed Oct. 29, 2014.
Notice of Allowance for U.S. Appl. No. 13/590,049, mailed Nov. 25, 2014.
Notice of Allowance for U.S. Appl. No. 13/590,047, mailed Nov. 24, 2014.
Office Action for U.S. Appl. No. 13/590,044, mailed Dec. 9, 2014.
Notice of Allowance for U.S. Appl. No. 13/590,050, mailed Dec. 18, 2014.
Office Action for U.S. Appl. No. 14/042,392, mailed Dec. 31, 2014.
Office Action for U.S. Appl. No. 14/071,957, mailed Dec. 29, 2014.
Office Action for U.S. Appl. No. 14/493,083, mailed Jan. 8, 2015.
Notice of Allowance for U.S. Appl. No. 13/970,562, mailed Jan. 23, 2015.
Notice of Allowance for U.S. Appl. No. 14/493,069, mailed Feb. 17, 2015.
Notice of Allowance for U.S. Appl. No. 14/085,228, mailed Feb. 18, 2015.
Notice of Allowance for U.S. Appl. No. 13/761,045, mailed Feb. 18, 2015.
Notice of Allowance for U.S. Appl. No. 14/231,404, mailed Jan. 22, 2015.
Notice of Allowance for U.S. Appl. No. 14/021,990, mailed Dec. 9, 2014.
Final Office Action for U.S. Appl. No. 13/678,544, mailed Feb. 15, 2015.
Office Action for U.S. Appl. No. 14/101,125, mailed Mar. 6, 2015.
Office Action for U.S. Appl. No. 13/026,783, mailed on Mar. 5, 2015.
Final Office Action for U.S. Appl. No. 13/678,539, mailed Apr. 1, 2015.
Office Action for U.S. Appl. No. 14/636,155, mailed on Apr. 10, 2015.
Notice of Allowance for U.S. Appl. No. 14/021,990, mailed Apr. 14, 2015.
Notice of Allowance for U.S. Appl. No. 13,842,824, mailed Apr. 14, 2015.
Notice of Allowance for U.S. Appl. No. 14/071,957, mailed Apr. 14, 2014.
Notice of Allowance for U.S. Appl. No. 14/231,404, mailed Apr. 17, 2015.
Notice of Allowance for U.S. Appl. No. 13/590,444, mailed May 12, 2015.
Notice of Allowance for U.S. Appl. No. 13/072,783, mailed May 13, 2015.
Notice of Allowance for U.S. Appl. No. 13/833,067, mailed Jun. 5, 2015.
Office Action for U.S. Appl. No. 13/314,444, mailed Dec. 10, 2014.
Related Publications (1)
Number Date Country
20150078060 A1 Mar 2015 US
Provisional Applications (1)
Number Date Country
61409539 Nov 2010 US
Continuations (1)
Number Date Country
Parent 13288843 Nov 2011 US
Child 14553874 US