Self-modifying copier for downloading executable code in a non-disruptive manner
Abstract
A method and apparatus for achieving a non-disruptive code load in a digital electronic device utilizes a copier that modifies itself as it executes. A fixed data section might be left unmodified to preserve a trusted system state. The copier has two parts, a bootstrapper and a dynamic part. As a minimum, the bootstrapper copies the new dynamic part into the runtime area and initiates execution of the new dynamic part. Through the dynamic part, the desired new runtime area configuration for data and code modules is achieved. The bootstrapper is typically static through upgrades, but instruction cache associated with the processor can make self-modification of even the bootstrapper more convenient.
Claims
exact text as granted — not AI-modified1 . An apparatus for upgrading the content of a runtime area in a digital system, comprising:
a) a source area containing a new copier that includes a new copier dynamic code; and b) an old copier within the runtime area, the old copier including an old copier dynamic code and an old bootstrapper, the old bootstrapper containing logic to cause a processor to:
(i) copy the new copier dynamic code into the runtime area, thereby overwriting an instruction of the old copier dynamic code, and
(ii) thereafter execute the new copier dynamic code from the runtime area.
2 . The apparatus of claim 1 , the source area further containing a new runtime content version, and the new dynamic copier code containing logic to copy the new runtime content version into the runtime area.
3 . The apparatus of claim 2 , the new runtime content version being partitioned into at least one module, each module containing code, data, or some combination of code and data.
4 . The apparatus of claim 3 , the new dynamic copier code containing further logic to perform an operation upon a module in the new runtime content version, said operation in the group consisting of compression, decompression, encryption, decryption, encoding, decoding, compilation, and assembly.
5 . The apparatus of claim 4 , wherein the logic causes said operation to be performed while the module is being copied without altering content of the source area.
6 . The apparatus of claim 1 , the runtime area containing a fixed content module that remains unaltered during upgrading.
7 . The apparatus of claim 6 , the fixed content module containing a trusted system state.
8 . The apparatus of claim 1 , wherein the old bootstrapper remains unaltered during upgrading.
9 . The apparatus of claim 1 , wherein the old bootstrapper includes a set of instructions and is overwritten during upgrading with a new bootstrapper, contained within the new copier, including a set of instructions identical to those of the old bootstrapper.
10 . The apparatus of claim 1 , wherein the old bootstrapper includes a set of instructions and is overwritten during upgrading with a new bootstrapper including a set of instructions distinct in at least one respect from the instructions of the old bootstrapper.
11 . The apparatus of claim 1 , further comprising:
c) an instruction cache containing a copy of the old bootstrapper, the processor executing the copy of the old bootstrapper contained in the instruction cache.
12 . A method for upgrading the content of a runtime area in a digital system, comprising:
a) receiving in a source area a new copier that includes a new copier dynamic code; b) executing an old bootstrapper in the runtime area, said bootstrapper included within an old copier that also includes an old copier dynamic code; c) copying, by the old bootstrapper, the new copier dynamic code into the runtime area, thereby overwriting an instruction within the old copier dynamic code; and d) initiating, by the old bootstrapper, execution of the new copier dynamic code that has been copied into the runtime area.
13 . The method of claim 12 , further comprising:
e) copying by the new dynamic copier code a new runtime content version from the source area into the runtime area.
14 . The method of claim 13 , the new runtime content version being partitioned into at least one module, each module containing code, data, or some combination of code and data.
15 . The method of claim 14 , further comprising:
f) performing an operation by the new dynamic copier code upon a module in the new runtime content version, said operation in the group consisting of compression, decompression, encryption, decryption, encoding, decoding, compilation, and assembly.
16 . The method of claim 15 , wherein the operation is performed while the module is being copied and without altering content of the source area.
17 . The method of claim 12 , the copying step leaving a fixed content module in the runtime area unaltered during copying.
18 . The method of claim 17 , the fixed content module containing a trusted system state.
19 . The method of claim 12 , wherein the old bootstrapper remains unaltered during upgrading.
20 . The method of claim 12 , wherein the old bootstrapper includes a set of instructions and is overwritten during upgrading with a new bootstrapper, contained within the new copier, including a set of instructions identical to those of the old bootstrapper.
21 . The method of claim 12 , wherein the old bootstrapper includes a set of instructions and is overwritten during upgrading with a new bootstrapper including a set of instructions distinct in at least one respect from the instructions of the old bootstrapper.
22 . The method of claim 12 , further comprising:
e) before executing the old bootstrapper, creating a copy of the old bootstrapper instructions into an instruction cache, the step of executing the old bootstrapper being performed by a processor using the copy of the old bootstrapper instructions in the instruction cache.Join the waitlist — get patent alerts
Track US2007094656A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.