The present disclosure generally relates to the field of computer processors, and more particularly to a method for returning the processor to a previous state upon an error occurring.
Modern processors have a difficulty returning to a previous processor state once an error occurs or an incorrect instruction has been executed. If a problem is encountered and a previous state is to be entered before the problem occurred, instructions must be issued to back out of the results of the previously executed instructions. This requires coding within the application, such as the undo function in MS and Lotus applications. Also, it is very difficult to figure out which program should be “undone” when multiple programs are running simultaneously.
Additionally, if the operating system crashes, it may be possible to take a memory dump and data snapshot, but it may be impossible to revert to the previous state of the processor without a reboot. Furthermore, transaction backouts are possible and may be accomplished without journaling or excessive restorations based upon restore points where all values are recorded. However, additional steps may be required to restore the processor using a transaction backout, and in turn slowing the processor speed.
The present disclosure is directed toward a method for restoring a computer processor to a previous state. Described is a processor/memory architecture that may store successive instructions/data into a pushdown stack. As instructions are loaded and executed, the loading and executing of new instructions may be suspended. The instruction execution and memory stack then may be restored to a previous processor state in terms of instructions, processor memory state, register values, etc.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the present disclosure. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate subject matter of the disclosure. Together, the descriptions and the drawings serve to explain the principles of the disclosure.
The numerous advantages of the disclosure may be better understood by those skilled in the art by reference to the accompanying figures in which:
Reference will now be made in detail to the subject matter disclosed, which is illustrated in the accompanying drawings.
The present disclosure is directed toward a method for restoring a computer processor to a previous state. Described is a processor/memory architecture that may store successive instructions/data into a pushdown stack. As instructions are loaded and executed, the instructions may be placed in the pushdown stack. At any point, new instructions loading and executing may be suspended; and the instruction execution and memory stack restored to the processor state to a previous point in terms of instructions, processor memory state, register values, etc.
Referring toe
Referring to
A processor may be implemented with an instruction execution stack that is fed via pipelines or memory fetches. A preset number of instructions may be stored with the same number of memory locations, register values, instruction counts, etc. Whenever an instruction is executed, the various values may be stored in different memory areas either internal or external to the processor. Each succeeding instruction execution may cause the stack to be pushed down with the last value in the stack being lost.
Should an execution error occur, the user may be prompted to reverse the current processor state to a previous processor state that was present before the processor instruction that caused the execution error. The processor memory values and registers may be restored to the previous processor memory values and registers. The processor then may execute one instruction at a time, which may be useful in debugging, recreating a previous condition, or backing out a condition.
In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.
It is believed that the present disclosure and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction and arrangement of the components without departing from the disclosed subject matter or without sacrificing all of its material advantages. The form described is merely explanatory, and it is the intention of the following claims to encompass and include such changes.