IP Library Granted Patent US 12,087,395
Granted Patent B2
US 12,087,395 · App. 17/558,847 · Granted Sep 10, 2024

Customizable backup and restore from nonvolatile logic array

Inventors: Steven Craig Bartling (Plano, TX); Sudhanshu Khanna (Richardson, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G11C7/22G06F1/3203G06F1/3234G06F1/3275G06F1/3287G06F3/0679G06F3/0688G06F9/4401G06F9/4406G06F11/1032G06F11/1438G06F11/1469G06F12/0238G06F13/00G11C14/00H03K3/3562Y02D10/00Y02D30/50
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 12,087,395
App. No.
17/558,847
Granted
Sep 10, 2024
Kind
B2
Abstract

Design and operation of a processing device is configurable to optimize wake-up time and peak power cost during restoration of a machine state from non-volatile storage. The processing device includes a plurality of non-volatile logic element arrays configured to store a machine state represented by a plurality of volatile storage elements of the processing device. A stored machine state is read out from the plurality of non-volatile logic element arrays to the plurality of volatile storage elements. During manufacturing, a number of rows and a number of bits per row in non-volatile logic element arrays are based on a target wake up time and a peak power cost. In another approach, writing data to or reading data of the plurality of non-volatile arrays can be done in parallel, sequentially, or in any combination to optimize operation characteristics.

Claims (46)

1. A computing apparatus, comprising:

a non-volatile logic element array;

a plurality of volatile storage elements coupled to the non-volatile logic element array; and

a non-volatile logic controller coupled to the non-volatile logic element array, the non-volatile logic controller configured to receive a configuration signal, wherein the configuration signal specifies a restoration sequence that specifies an order of transferring data from the plurality of volatile storage elements to the non-volatile logic element array;

wherein the order is based on a power requirement and a computing resource requirement.

2. The computing apparatus of claim 1 , further comprising:

a multiplexer including multiplexer inputs coupled to a set of the plurality of volatile storage elements, a multiplexer output coupled to the non-volatile logic element array, and a multiplexer select input coupled to the non-volatile logic controller.

3. The computing apparatus of claim 1 , further comprising:

a clock.

4. The computing apparatus of claim 3 , wherein:

the clock is held inactive for the one of the plurality of volatile storage elements during the restoration sequence.

5. The computing apparatus of claim 1 , wherein:

the non-volatile logic element array is configured to store a boot state representing a state of the computing apparatus after an amount of a boot process is completed.

6. The computing apparatus of claim 5 , wherein:

the boot state is loaded into one of the plurality of volatile storage elements in response to detecting a system reset or a power loss event for the computing apparatus.

7. The computing apparatus of claim 1 , wherein:

the non-volatile logic element array includes eight rows and thirty-two bit columns of bitcells.

8. The computing apparatus of claim 7 , wherein:

each of the bitcells is coupled to a set of input/output drivers.

9. A method, comprising:

receiving, by a non-volatile logic controller, a configuration signal that specifies a restoration sequence that specifies an order of transferring data from a plurality of volatile storage elements coupled to the non-volatile logic controller to a non-volatile logic element array coupled to the non-volatile logic controller; and

executing, using the plurality of volatile storage elements and the non-volatile logic element array, the restoration sequence;

wherein the order is based on a power requirement and a computing resource requirement.

10. The method of claim 9 , further comprising:

selecting, by the non-volatile logic controller, a set of the plurality of volatile storage elements using a multiplexer.

11. The method of claim 9 , further comprising:

receiving, by the non-volatile logic controller, a clock signal.

12. The method of claim 11 , wherein:

the clock signal is inactive for the one of the plurality of volatile storage elements during the restoration sequence.

13. The method of claim 9 , wherein:

the non-volatile logic element array is configured to store a boot state representing a state of a computing apparatus after an amount of a boot process is completed.

14. The method of claim 13 , wherein:

the boot state is loaded into one of the plurality of volatile storage elements in response to detecting a system reset or a power loss event.

15. The method of claim 9 , wherein:

the non-volatile logic element array includes eight rows and thirty-two bit columns of bitcells.

16. The method of claim 15 , wherein:

each of the bitcells is coupled to a set of input/output drivers.

17. A computing apparatus, comprising:

a non-volatile logic element array;

a plurality of volatile storage elements coupled to the non-volatile logic element array; and

a non-volatile logic controller coupled to the non-volatile logic element array, the non-volatile logic controller configured to receive a configuration signal, wherein the configuration signal specifies a restoration sequence that specifies an order of transferring data from the non-volatile logic element array to at least one of the plurality of volatile storage elements;

wherein the order is based on a power requirement and a computing resource requirement.

18. A method, comprising:

receiving, by a non-volatile logic controller, a configuration signal that specifies a restoration sequence that specifies an order of transferring data from a non-volatile logic element array coupled to the non-volatile logic controller to at least one of a plurality of volatile storage elements coupled to the non-volatile logic controller; and

executing, using the non-volatile logic element array and the plurality of volatile storage elements, the restoration sequence;

wherein the order is based on a power requirement and a computing resource requirement.

Continuity (4)
Continuation 15089607 · Apr 4, 2016
Continuation 13770448 · Feb 19, 2013
Provisional Application 61698906 · Sep 10, 2012
Related Publication 20220115048A1 · Apr 14, 2022