Patent EP0385654A2 successfully refreshed from Google Patents.
Patent US6243789B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6243789B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for executing a program stored in nonvolatile memory

Assignee: Intel Corp
•
Filing: 1998-02-23
•
Granted: 2001-06-05
•
Expires: 2018-02-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of executing a program includes the step of initiating execution of the program stored contiguously without code fragmentation in a nonvolatile memory. Execution of the program is halted if the program attempts to modify a page of the nonvolatile memory. The page of nonvolatile memory is then copied to a modifiable memory. The page of nonvolatile memory is then remapped to the modifiable memory. Execution of the program is then resumed. A computer system for execution of a program includes a nonvolatile memory storing a program contiguously without code fragmentation. The computer system includes a processor for executing the program. A memory management unit generates an interrupt in response to a request to modify a page of the nonvolatile memory. Execution of the program is halted and the processor copies the page of nonvolatile memory to a modifiable memory in response to the interrupt. The processor resumes execution of the program after updating an address translation table of the memory management unit to refer to the modifiable memory for subsequent program access requests to the page of nonvolatile memory.

Inventors

  • 👤 Robert N. Hasbun
  • 👤 David A. Edwards

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 15:28
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3812; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292; G06F12/06; G06F12/0638; G06F2212/00; G06F2212/20; G06F2212/202; G06F2212/2022

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 63 words
A method of executing a program, comprising: initiating execution of a program stored in a nonvolatile memory performing the following if the program attempts to modify a page of the nonvolatile memory: halting execution of the program; copying the page of nonvolatile memory to a modifiable memory; remapping the page of nonvolatile memory to the modifiable memory; and resuming execution of the program.
Claim 2
Independent Claim 63 words
A method of executing a program, comprising: initiating execution of a program stored in a nonvolatile memory performing the following if the program attempts to modify a page of the nonvolatile memory: halting execution of the program; copying the page of nonvolatile memory to a modifiable memory; remapping the page of nonvolatile memory to the modifiable memory; and resuming execution of the program.
Claim 3
Dependent Claim 15 words
The method of claim 1 further comprising: identifying the nonvolatile memory as a nonmodifiable memory.
Claim 4
Dependent Claim 18 words
The method of claim 1 wherein the nonvolatile memory is a flash electrically erasable programmable read only memory.
Claim 5
Dependent Claim 14 words
The method of claim 1 wherein the nonvolatile memory is a read only memory.
Claim 6
Dependent Claim 13 words
The method of claim 1 wherein the modifiable memory is a volatile memory.
Claim 7
Dependent Claim 14 words
The method of claim 1 wherein the modifiable memory is a random access memory.
Claim 8
Independent Claim 153 words
A method of executing a program, comprising: initiating execution of a program; wherein an executable code of the program is contiguously stored without being fragmented by non-executable portions of the program in a nonmodifiable memory having a bifurcated storage architecture, to permit program execution without address fix-ups; executing an instruction to modify a portion of the executable code of the program stored in the nonmodifiable memory; performing the following in response to the executed program instruction to modify the portion of the executable code of the program stored in a page of the nonmodifiable memory: halting execution of the program; copying the executable code portion stored in the page of nonmodifiable memory to a modifiable memory; remapping the address of the executable code portion stored in the page of nonmodifiable memory and copied to the modifiable memory; modifying the executable code portion stored in the modifiable memory; and resuming execution of the program.
Claim 9
Independent Claim 153 words
A method of executing a program, comprising: initiating execution of a program; wherein an executable code of the program is contiguously stored without being fragmented by non-executable portions of the program in a nonmodifiable memory having a bifurcated storage architecture, to permit program execution without address fix-ups; executing an instruction to modify a portion of the executable code of the program stored in the nonmodifiable memory; performing the following in response to the executed program instruction to modify the portion of the executable code of the program stored in a page of the nonmodifiable memory: halting execution of the program; copying the executable code portion stored in the page of nonmodifiable memory to a modifiable memory; remapping the address of the executable code portion stored in the page of nonmodifiable memory and copied to the modifiable memory; modifying the executable code portion stored in the modifiable memory; and resuming execution of the program.
Claim 10
Dependent Claim 15 words
The method of claim 1 further comprising: identifying a nonvolatile memory as the nonmodifiable memory.
Claim 11
Independent Claim 182 words
An apparatus for executing a program, comprising: a nonvolatile memory storing a program contiguously without code fragmentation; wherein an executable code of the program is contiguously stored without being fragmented by non-executable portions of the program in a nonvolatile memory having a bifurcated storage architecture, to permit program execution without address fix-ups; a memory management unit that generates an interrupt in response to an executed program instruction to modify a portion of the executable code of the program stored in a page of the nonvolatile memory; and a processor for executing the program, wherein execution of the program is halted and the processor copies the portion of the executable code of the program stored in the page of nonvolatile memory to a modifiable memory in response to the interrupt, wherein execution of the program is resumed after modifying the portion of the executable code stored in the modifiable memory and updating address translation tables of the memory management unit to refer to the modifiable memory for subsequent access requests to the modified executable code of the program stored in the modifiable memory.
Claim 12
Independent Claim 182 words
An apparatus for executing a program, comprising: a nonvolatile memory storing a program contiguously without code fragmentation; wherein an executable code of the program is contiguously stored without being fragmented by non-executable portions of the program in a nonvolatile memory having a bifurcated storage architecture, to permit program execution without address fix-ups; a memory management unit that generates an interrupt in response to an executed program instruction to modify a portion of the executable code of the program stored in a page of the nonvolatile memory; and a processor for executing the program, wherein execution of the program is halted and the processor copies the portion of the executable code of the program stored in the page of nonvolatile memory to a modifiable memory in response to the interrupt, wherein execution of the program is resumed after modifying the portion of the executable code stored in the modifiable memory and updating address translation tables of the memory management unit to refer to the modifiable memory for subsequent access requests to the modified executable code of the program stored in the modifiable memory.
Claim 13
Dependent Claim 18 words
The apparatus of claim 9 wherein the nonvolatile memory is a flash electrically erasable programmable read only memory.
Claim 14
Dependent Claim 14 words
The apparatus of claim 9 wherein the nonvolatile memory is a read only memory.
Claim 15
Dependent Claim 13 words
The apparatus of claim 9 wherein the modifiable memory is a volatile memory.
Claim 16
Dependent Claim 14 words
The apparatus of claim 9 wherein the modifiable memory is a random access memory.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-06-04 2004-12-04 2005-06-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-06-04 2008-12-04 2009-06-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-06-04 2012-12-04 2013-06-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag