US 11,854,588 B2
Multiple time programmable memory using one time programmable memory and error correction codes
Vesa Törnqvist, Helsinki (FI); and Teemu Salo, Riihimäki (FI)
Assigned to MURATA MANUFACTURING CO., LTD., Nagaokakyo (JP)
Filed by MURATA MANUFACTURING CO., LTD., Nagaokakyo (JP)
Filed on Mar. 16, 2022, as Appl. No. 17/696,475.
Claims priority of application No. 20215298 (FI), filed on Mar. 18, 2021.
Prior Publication US 2022/0301631 A1, Sep. 22, 2022
Int. Cl. G11C 11/34 (2006.01); G11C 16/10 (2006.01); G11C 16/08 (2006.01); G11C 16/26 (2006.01); G11C 17/12 (2006.01); G11C 17/18 (2006.01); H03M 13/11 (2006.01)
CPC G11C 16/102 (2013.01) [G11C 16/08 (2013.01); G11C 16/26 (2013.01); G11C 17/12 (2013.01); G11C 17/18 (2013.01); H03M 13/1174 (2013.01)] 20 Claims
OG exemplary drawing
 
1. Multiple-time programmable memory (MTP) comprising one-time programmable (OTP) memory and a plurality of virtual MTP memory blocks, the OTP memory comprising a plurality of OTP memory blocks, wherein:
a plurality of the OTP memory blocks are reserved for each virtual MTP memory block;
at any given time, each virtual MTP memory block is associated with one of the plurality of OTP memory blocks that are reserved for the virtual MTP memory block, wherein the current data of the virtual MTP memory block is stored in the associated OTP memory block;
for each virtual MTP memory block, a pointer that identifies the OTP memory block that is associated with the virtual MTP memory block is stored elsewhere in the OTP memory; and
the MTP memory is configured to program a first virtual MTP memory block of the plurality of virtual MTP memory blocks with new data by:
programming a previously unprogrammed OTP memory block of the OTP memory blocks that are reserved for the first virtual MTP memory block with the new data; and
updating the pointer of the OTP memory block that is associated with the first virtual MTP memory block to identify the newly programmed OTP memory block;
wherein the pointers of the OTP memory blocks that are associated with the virtual MTP memory blocks are stored with an error correcting code, and wherein the encoding scheme of the pointers is such that incrementing the pointer requires only bit changes in both the pointer data and the error correcting code from one of 0 to 1 or 1 to 0 depending on the type of OTP memory.