IP Library Granted Patent US 7,991,943
Granted Patent B2
US 7,991,943 · App. 11/924,826 · Granted Aug 2, 2011

Implementation of one time programmable memory with embedded flash memory in a system-on-chip

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,991,943
App. No.
11/924,826
Granted
Aug 2, 2011
Kind
B2
Abstract

System and method for implementing one time programmable (OTP) memory using embedded flash memory. A system-on-chip (SoC) includes a cleared flash memory array that includes an OTP block, including an OTP write inhibit field that is initially deasserted, a flash memory controller, and a controller. Data are written to the OTP block, including setting the OTP write inhibit field to signify prohibition of subsequent writes to the OTP block. The SoC is power cycled, and, in response, at least a portion of the OTP block is latched in a volatile memory, including asserting an OTP write inhibit bit based on the OTP write inhibit field, after which the OTP block is not writeable. In response to each subsequent power cycling, the controller is held in reset, the latching is performed, the controller is released from reset, and the flash array, now write protected, is configured to be controlled by the controller.

Claims (111)

1. A method for implementing one time programmable (OTP) memory functionality using erasable non-OTP flash memory in a system-on-chip (SoC), the method comprising:

providing an SoC, wherein the SoC comprises an erasable non-OTP flash memory array in a blank state, wherein the erasable non-OTP flash memory array comprises a first block comprising an OTP write inhibit field, and wherein the OTP write inhibit field is deasserted;

writing data to the first block, comprising setting the OTP write inhibit field to signify prohibition of subsequent writes to the first block;

power cycling the SoC after said writing data to the first block; and

latching at least a portion of the first block in a volatile memory, in response to said power cycling, including asserting an OTP write inhibit bit based on the OTP write inhibit field, after which the first block is not writeable, thereby implementing OTP memory functionality in the first block of the erasable non-OTP flash memory.

2. The method of claim 1 , wherein the SoC further comprises a first controller and a flash memory controller coupled to the flash memory array for reading from and writing to the flash memory array, wherein said power cycling comprises asserting and deasserting a system reset signal, and wherein said latching at least a portion of the first block comprises:

in response to said deasserting the system reset signal,

holding the first controller in reset;

sending an address of the first block to the flash memory array as input;

sequencing the flash memory array to read data from the first block at the address; and

latching the data read from the first block in the volatile memory, including said asserting the OTP write inhibit bit.

3. The method of claim 2 , further comprising:

in response to said latching the data,

releasing the first controller from reset; and

configuring the flash array to be controlled by the first controller, wherein the first block comprises OTP memory functionality.

4. The method of claim 3 , further comprising:

in response to any subsequent power cycling of the SoC, performing said latching at least a portion of the first block, said releasing the first controller from reset, and said configuring the flash array to be controlled by the first controller.

5. The method of claim 4 , wherein the SoC further comprises a first controller and a flash memory controller coupled to the flash memory array for reading from and writing to the flash memory array, and wherein the flash memory controller implements an OTP state machine comprising:

a first state, wherein:

the first controller is held in reset; and

the SoC is initialized for said latching;

a second state, wherein:

the first controller is held in reset;

data are read from the first block and latched; and

a third state, wherein:

the first controller is released from reset; and

the flash memory array is configured for use by the SoC, wherein the first block comprises OTP memory functionality.

6. The method of claim 5 ,

wherein, in initializing the SoC for said latching:

the flash memory controller is initialized for a read operation in the flash memory array;

an address input to the flash memory array is initialized for starting a read at the address of the first block;

the volatile memory is set to capture output of the flash memory array; and

wherein, in data being read from the first block and latched:

the flash memory array is sequenced to read the data at the address of the first block;

the volatile memory captures and holds the output of the flash memory array to perform said latching the data; and

wherein, in configuring the flash memory array for use by the SoC as OTP memory:

control and address signals for the flash memory array from the first controller or other components on the SoC are provided to the flash memory array by the flash memory controller;

the volatile memory retains the value captured during the second state;

the first controller is released from reset; and

the write inhibit bit is fed back to the flash memory controller to inhibit any writes to the first block.

7. The method of claim 6 , wherein, said performing said latching at least a portion of the first block, said releasing the first controller from reset, and said configuring the flash array to be controlled by the first controller, in response to any subsequent power cycling of the SoC, comprises:

in response to said asserting the system reset signal, setting the OTP state machine to the first state;

in response to said deasserting the system reset signal, setting the OTP state machine to the second state for a specified time interval, wherein the specified time interval is equal to or greater than a minimum required read time for the flash memory array; and

in response to the specified time interval elapsing, setting the OTP state machine to the third state.

8. The method of claim 7 ,

wherein the first state of the OTP state machine is an INIT state;

wherein the second state of the OTP state machine is a READ FLASH state; and

wherein the third state of the OTP state machine is an IDLE state.

9. The method of claim 7 , further comprising:

the first controller performing flash memory reads and writes for the SoC while the OTP state machine is in the IDLE state.

10. The method of claim 1 , wherein, after asserting the OTP write inhibit bit, the flash array cannot be erased.

11. The method of claim 1 , wherein, after asserting the OTP write inhibit bit, the first block cannot be erased without erasing the entire flash array.

12. The method of claim 1 , wherein, after asserting the OTP write inhibit bit, the first block cannot be erased, but other flash array blocks can be erased.

13. A system for implementing one time programmable (OTP) memory functionality using erasable non-OTP flash memory in a system on chip (SoC), comprising:

an erasable non-OTP flash memory array, wherein the flash memory array includes an first block comprising an OTP write inhibit field, and wherein the OTP write inhibit field is initially deasserted;

a latch, coupled to the flash memory, wherein the latch comprises volatile memory;

a flash memory controller, coupled to the flash memory and the latch; and

a first controller coupled to the flash memory array, the latch, and the flash memory controller;

wherein the first controller is configured to write data to the first block, comprising setting the OTP write inhibit field to signify prohibition of subsequent writes to the first block; and

wherein, in response to power cycling the SoC, the flash memory controller is configured to latch at least a portion of the first block in a volatile memory, including asserting an OTP write inhibit bit based on the OTP write inhibit field, after which the first block is not writeable, thereby implementing OTP memory functionality in the first block of the erasable non-OTP flash memory.

14. The system of claim 13 , wherein said power cycling comprises asserting and deasserting a system reset signal, and wherein to latch at least a portion of the first block the flash memory controller is configured to:

in response to said deasserting the system reset signal,

hold the first controller in reset;

send an address of the first block to the flash memory array as input;

sequence the flash memory array to read data from the first block at the address; and

latch the data read from the first block in the volatile memory, including said asserting the OTP write inhibit bit.

15. The system of claim 14 , wherein the flash memory controller is further configured to:

in response to said latching the data,

release the first controller from reset; and

configure the flash array to be controlled by the first controller, wherein the first block comprises OTP memory functionality.

16. The system of claim 15 , wherein the flash memory controller is further configured to:

in response to any subsequent power cycling of the SoC, perform said latching at least a portion of the first block, said releasing the first controller from reset, and said configuring the flash array to be controlled by the first controller.

17. The system of claim 16 , wherein the flash memory controller implements an OTP state machine comprising:

a first state, wherein:

the first controller is held in reset; and

the SoC is initialized for said latching;

a second state, wherein:

the first controller is held in reset;

data are read from the first block and latched; and

a third state, wherein:

the first controller is released from reset; and

the flash memory array is configured for use by the SoC, wherein the first block comprises OTP memory functionality.

18. The system of claim 17 ,

wherein, in initializing the SoC for said latching:

the flash memory controller is initialized for a read operation in the flash memory array;

an address input to the flash memory array is initialized for starting a read at the address of the first block;

the volatile memory is set to capture output of the flash memory array; and

wherein, in data being read from the first block and latched:

the flash memory array is sequenced to read the data at the address of the first block;

the volatile memory captures and holds the output of the flash memory array to perform said latching the data; and

wherein, in configuring the flash memory array for use by the SoC as OTP memory:

control and address signals for the flash memory array from the first controller or other components on the SoC are provided to the flash memory array by the flash memory controller;

the volatile memory retains the value captured during the second state;

the first controller is released from reset; and

the write inhibit bit is fed back to the flash memory controller to inhibit any writes to the first block.

19. The system of claim 18 , wherein, to perform said latching at least a portion of the first block, said releasing the first controller from reset, and said configuring the flash array to be controlled by the first controller, in response to any subsequent power cycling of the SoC, the flash memory controller is configured to:

in response to said asserting the system reset signal, set the OTP state machine to the first state;

in response to said deasserting the system reset signal, set the OTP state machine to the second state for a specified time interval, wherein the specified time interval is equal to or greater than a minimum required read time for the flash memory array; and

in response to the specified time interval elapsing, set the OTP state machine to the third state.

20. The system of claim 19 ,

wherein the first state of the OTP state machine is an INIT state;

wherein the second state of the OTP state machine is a READ FLASH state; and

wherein the third state of the OTP state machine is an IDLE state.

21. The system of claim 19 , wherein the first controller is configured to perform flash memory reads and writes for the SoC while the OTP state machine is in the IDLE state.

22. The system of claim 13 , wherein, after asserting the OTP write inhibit bit, the flash array cannot be erased.

23. The system of claim 13 , wherein, after asserting the OTP write inhibit bit, the first block cannot be erased without erasing the entire flash array.

24. The system of claim 13 , wherein, after asserting the OTP write inhibit bit, the first block cannot be erased, but other flash array blocks can be erased.

25. The system of claim 13 , wherein the first controller comprises one or more of:

at least one embedded controller;

at least one embedded processor; or

at least one direct memory access (DMA) controller.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 060894/0437 →
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059363/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
MERGER Recorded Dec 11, 2017
From: STANDARD MICROSYSTEMS CORPORATION
To: MICROCHIP TECHNOLOGY INCORPORATED
Reel/Frame 044824/0608 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2007
From: BERENBAUM, ALAN D.; WAHLER, RICHARD E.; WEISS, RAPHAEL
To: STANDARD MICROSYSTEMS CORPORATION
Reel/Frame 020020/0961 →