1. A method of operating a computing device to perform memoization, the method including determining whether or not a result of a function is stored in a cache and, if so, retrieving the result from the cache and, if not, calculating the result and storing it in the cache, characterised in that the method includes:
transforming by the computing device at least one selected from the group composed of the input parameters and the output parameters of the function, the transforming being based on an analysis of the function and its input arguments to establish whether or not there is a possible relationship among and between the input parameters and output parameters of the function, the relationship reflecting redundancy.
2. A method as claimed in claim 1, which includes transforming the output parameters only.
3. A method as claimed in claim 1, which includes transforming the input parameters only.
4. A method as claimed in claim 1, which includes transforming both the input parameters and the output parameters.
5. A method as claimed in claim 4, in which transforming the output parameters compensates for the transformation of the input parameters.
6. A method as claimed in any of claims 3 to 5 inclusive, in which transforming the input parameters includes pre-processing of the input parameters.
7. A method as claimed in any of claims 3 to 6 inclusive, in which transforming the input parameters includes at least one selected from the group composed of utilisationapplication of symmetry, scaling, linear shift, interchanging of variables, inversion, polynomial andor trigonometric transformations, and spectral transformations, logical transformations, fuzzy transformations, data compression and decompression.
8. A method as claimed in any of claims 3 to 7 inclusive, in which transforming the parameters includes bringing the parameters to a desired systematic arrangement.
9. A method as claimed in any of claims 3 to 8 inclusive, which includes storing in the cache an indication of how the input parameters were transformed.
10. A method as claimed in claim 2 or claim 4, in which transforming the output parameters includes at least one selected from the group composed of utilisationapplication of symmetry, scaling, linear shift, interchanging of variables, inversion, polynomial andor trigonometric transformations, and spectral transformations, logical transformations, fuzzy transformations, data compression and decompression.
11. A method as claimed in claim 2, claim 4, or claim 10, which includes storing in the cache an indication of how the output parameters can be transformed.
12. A method as claimed in any of the preceding claims, which includes storing in the cache an indication of the relationship between the input parameters and the output parameters.
13. A method as claimed in any of the preceding claims, which includes storing in the cache additional information, including a time stamp.
14. A method as claimed in any of the preceding claims, in which:
the function is used to calculate a system of equations, matrix, tensor or vector elements; and
transforming the input parameters andor the output parameters includes defining a specific order in which the equations or elements of the matrix, vector or tensor are calculated, thereby to optimise memoization.
15. A method as claimed in any of the preceding claims, which includes the prior step of:
analysing input parameters of the function to establish whether or not there is a possible relationship reflecting redundancy among the input parameters andor output parameters.
16. A system for memoization, the system including:
a computing device; and
a computer-readable medium defining a cache and having stored thereon a set of instructions configured to direct the operation of the computing device such that the computing device is operable to determine whether or not a result of a function is stored in the cache and, if so, to retrieve the result from the cache and, if not, to calculate the result and store it in the cache, characterised in that the computing device is further operable to:
transform at least one selected from the group composed of the input parameters and the output parameters of the function, the transforming being based on an analysis of the function and its input arguments to establish whether or not there is a possible relationship among and between the input parameters and output parameters of the function, the relationship reflecting redundancy.
17. A computer-readable medium having stored thereon a set of instructions which, when executed by a computer, causes the computer to perform a method as claimed in any of claims 1 to 15 inclusive.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for verifying a basic inputoutput system (BIOS) of a computing platform, the method comprising:
executing a processor initialization module in response to a reset, wherein the processor initialization module is included in a processor in the computing platform and the processor initialization module comprises an initialization firmware verification module;
attempting to verify initialization firmware stored in non-volatile memory in a processor package in the computing platform using the initialization firmware verification module;
attempting to verify the BIOS using the initialization firmware wherein the BIOS is included in a reprogrammable non-volatile memory; and
initiating at least one response if at least one of the initialization firmware and the BIOS fails to verify.
2. The method of claim 1, further comprising passing control of the computing platform to the BIOS, wherein the at least one response comprises configuring the computing platform for operation in quarantine mode with limited platform functionality.
3. The method of claim 1, wherein the at least one response is selected from a plurality of responses comprising preventing the initialization firmware from executing, preventing the BIOS from executing, initiating recovery, reporting the verification failure using a model-specific register, halting the processor, shutting down the computing platform and configuring the computing platform for operation in quarantine mode with limited platform functionality.
4. The method of claim 1, further comprising updating the initialization firmware in response to a verification failure of the initialization firmware.
5. The method of claim 1, wherein the at least one response comprises updating the BIOS over a network using out-of-band communication via a microprocessor subsystem of the computing platform.
6. The method of claim 1, further comprising triggering execution of the initialization firmware verification module and the initialization firmware in response to writing a candidate BIOS firmware update to a model-specific register.
7. A computing platform comprising:
a processor package comprising:
a processor comprising processor initialization module wherein the processor initialization module comprises an initialization firmware verification module, and
an off-die non-volatile memory having initialization firmware stored therein; and
a reprogrammable non-volatile memory having basic inputoutput system (BIOS) firmware stored therein;
the processor configured to:
execute the processor initialization module in response to a reset of the computing platform,
attempt to verify the initialization firmware using the initialization firmware verification module,
attempt to verify the BIOS firmware using the initialization firmware and
initiate at least one response if at least one of the initialization firmware and the BIOS firmware fails verification.
8. The computing platform of claim 7, wherein the processor is further configured to pass control of the computing platform to the BIOS and the at least one response comprises configuring the computing platform for operation in quarantine mode with limited platform functionality.
9. The computing platform of claim 7, wherein the at least one response is selected from a plurality of responses comprising preventing the initialization firmware from executing, preventing the BIOS from executing, initiating recovery, reporting the verification failure using a model-specific register, halting the processor, shutting down the computing platform and configuring the computing platform for operation in quarantine mode with limited platform functionality.
10. The computing platform of claim 7, wherein the processor is further configured to update the initialization firmware in response to a verification failure of the initialization firmware.
11. The computing platform of claim 7, further comprising a microprocessor subsystem configured to update the BIOS firmware over a network using out-of-band communication.
12. The computing platform of claim 7, further comprising a model-specific register wherein the processor is configured to execute the initialization firmware verification module and the initialization firmware in response to a candidate BIOS firmware being written to the model-specific register.
13. A tangible computer-readable medium including instructions stored thereon which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
executing processor initialization module in response to a reset, wherein the processor initialization module is configured to be included in a processor in a computing platform and the processor initialization module comprises an initialization firmware verification module;
attempting to verify, using the initialization firmware verification module, initialization firmware configured to be stored in non-volatile memory in a processor package in the computing platform;
attempting to verify the BIOS using the initialization firmware wherein the BIOS is configured to be included in a reprogrammable non-volatile memory; and
initiating at least one response if at least one of the initialization firmware and the BIOS fails to verify.
14. The computer readable medium of claim 13, wherein the operations further comprise passing control of the computing platform to the BIOS, wherein the at least one response comprises configuring the computing platform for operation in quarantine mode with limited platform functionality.
15. The computer readable medium of claim 13, wherein the at least one response is selected from a plurality of responses comprising preventing the initialization firmware from executing, preventing the BIOS from executing, initiating recovery, reporting the verification failure using a model-specific register, halting the processor, shutting down the computing platform and configuring the computing platform for operation in quarantine mode with limited platform functionality.
16. The computer readable medium of claim 13, wherein the operations further comprise updating the initialization firmware in response to a verification failure of the initialization firmware.
17. The computer readable medium of claim 13, wherein said at least one response comprises updating the BIOS over a network using out-of-band communication via a microprocessor subsystem of the computing platform.
18. The computer readable medium of claim 13, wherein the operations further comprise triggering execution of the initialization firmware verification module and the initialization firmware in response to writing a candidate BIOS firmware update to a model-specific register.