Control of Dedicated Non-Volatile Arrays for Specific Function Availability
A device's configuration is controlled through control of its pre-boot process. Protected non-volatile logic element arrays store a machine state configuration of a processing device configured to backup data from volatile storage elements in a plurality of non-volatile logic element arrays. The machine state configuration is read in response to the processing device's entering a pre-boot process. The processing device's configuration is then set to the machine state configuration. This setting of the device configuration can be done by receiving instructions from the protected non-volatile logic element arrays to direct an order in which data for individual device functions are restored from non-volatile logic element arrays in response to the processing device's entering a wakeup or recovery mode. In one approach, the instructions arrange configuration bits that direct operation of a non-volatile logic controller during the wakeup or recovery mode to control the order of data restoration.
1 . A computing device apparatus providing non-volatile logic based computing, the apparatus comprising:
a plurality of non-volatile logic element arrays;
a plurality of volatile storage elements;
at least one non-volatile logic controller configured to control the plurality of non-volatile logic element arrays to store a machine state represented by the plurality of volatile storage elements and to read out a stored machine state from the plurality of non-volatile logic element arrays to the plurality of volatile storage elements;
wherein the at least one non-volatile logic controller is further configured to designate individual first ones of the plurality of non-volatile logic element arrays to restore first in response to the computing device apparatus's executing a pre-boot process, wherein the individual first ones of the plurality of non-volatile logic element arrays include instructions for an order in which other ones of the plurality of non-volatile logic element arrays are to be read next into corresponding ones of the plurality of volatile storage elements which set the computing device apparatus's configuration for operation after the pre-boot process.
2 . The computing device apparatus of claim 1 wherein the at least one non-volatile logic controller is further configured to associate individual one or more functions with individual ones of the plurality of non-volatile logic element arrays.
3 . The computing device apparatus of claim 2 wherein the individual ones of the at least one function comprise any one of a plurality of peripheral functions for the computing device apparatus.
4 . The computing device apparatus of claim 1 further comprising protected non-volatile logic element arrays storing data for the computing device apparatus's configuration.
5 . The computing device apparatus of claim 1 wherein the at least one non-volatile logic controller is configured to control the order in which other ones of the plurality of non-volatile logic element arrays are to be read including controlling reading of the data from the plurality of non-volatile logic element arrays in serial, in parallel, or in combinations thereof.
6 . A method comprising:
storing in protected one or more non-volatile logic element arrays a machine state configuration of a processing device configured to backup data from a plurality of volatile storage elements used to execute at least one function in a plurality of non-volatile logic element arrays;
reading the machine state configuration from the protected one or more non-volatile logic element arrays to corresponding volatile storage elements in response to the processing device's entering a pre-boot process;
setting the processing device's configuration to the machine state configuration in response to the reading the machine state configuration during the pre-boot process.
7 . The method of claim 6 further comprising associating individual functions with individual non-volatile logic element arrays of the processing device.
8 . The method of claim 7 wherein the associating the individual functions with individual non-volatile logic element arrays further comprises designating any one of a plurality of peripheral functions for the processing device.
9 . The method of claim 6 further comprising reading configuration bits to direct which of a plurality of non-volatile logic element array domains, wherein at least one of the non-volatile logic element array domains comprises two or more non-volatile logic element arrays, are enabled first in response to the processing device's entering a wakeup or backup mode.
10 . The method of claim 6 wherein the setting the processing device's configuration further comprises receiving instructions from the protected one or more non-volatile logic element arrays to direct an order in which data for individual functions of the at least one function are restored from a plurality of non-volatile logic element arrays in response to the processing device's entering a wakeup or recovery mode.
11 . The method of claim 10 further comprising arranging configuration bits that direct operation of at least one non-volatile logic controller during the wakeup or recovery mode to effect controlling the order in which the data for individual functions are restored from the plurality of non-volatile logic element arrays in response to the processing device's entering the wakeup or recovery mode.
12 . The method of claim 10 further comprising controlling the order of restoration by controlling restoration of the data from the plurality of non-volatile logic element arrays in serial, in parallel, or in combinations thereof.
13 . A method comprising:
storing in protected one or more non-volatile logic element arrays a machine state configuration of a processing device configured to backup data from a plurality of volatile storage elements used to execute at least one function in a plurality of non-volatile logic element arrays;
reading the machine state configuration from the protected one or more non-volatile logic element arrays to corresponding volatile storage elements in response to the processing device's entering a pre-boot process;
setting the processing device's configuration to the machine state configuration in response to the reading the machine state configuration during the pre-boot process by receiving instructions from the protected one or more non-volatile logic element arrays to direct an order in which data for individual functions are restored from a plurality of non-volatile logic element arrays in response to the processing device's entering a wakeup or recovery mode;
arranging configuration bits that direct operation of at least one non-volatile logic controller during the wakeup or recovery mode to effect controlling the order in which the data for individual functions of the at least one function are restored from the plurality of non-volatile logic element arrays in response to the processing device's entering the wakeup or recovery mode; and
after setting the processing device's configuration, reading configuration bits to direct an order in which a plurality of non-volatile logic element array domains, wherein at least one of the non-volatile logic element array domains comprises two or more non-volatile logic element arrays, are first restored or backed up in response to the computing device apparatus's entering a wakeup or backup mode;
after reading the configuration bits to direct the order in which the plurality of non-volatile logic element array domains are restored or backed up, reading configuration bits to direct an order of and whether and which individual ones of the two or more non-volatile logic element arrays in at least one of the restored or backed up non-volatile logic element array domains to restore or backup in parallel in response to the processing device's entering a wakeup or backup mode;
controlling the order of restoration by controlling restoration of the data from the plurality of non-volatile logic element arrays in serial, in parallel, or in combinations thereof.
14 . The method of claim 13 further comprising associating individual functions with individual non-volatile logic element arrays of the processing device.
15 . The method of claim 14 wherein the associating the individual functions with individual non-volatile logic element arrays further comprises designating any one of a plurality of peripheral functions for the processing device.