System and method for storing firmware in a human-implantable medical treatment device
First Claim
1. A system for storing control software in a human-implantable medical treatment device, the system comprising:
- a read only memory (“
ROM”
) storing a plurality of ROM-based tasks to be performed by the medical treatment device;
a random access memory (“
RAM”
) storing a plurality of respective ROM-based task pointers pointing to the ROM-based tasks;
a programmer and telemetry link for downlinking to the RAM at least one RAM-based task thereby producing at least one downlinked RAM-based task, at least one RAM-based task pointer thereby producing at least one downlinked RAM-based task point, so that the medical treatment device uses at least one of the ROM-based task pointers to execute at least one of the ROM-based tasks and uses at least one of the downlinked RAM-based task pointers to execute at least one of the downlinked RAM-based tasks; and
means for storing the at least one downlinked RAM-based task and the at least one RAM-based task pointer in an electrically erasable programmable read only memory (“
EEPROM”
).
3 Assignments
0 Petitions
Accused Products
Abstract
In a medical treatment device implanted within the body of a patient, a system and method for organizing storage of the device'"'"'s firmware in ROM, RAM, and EEPROM such that a ROM-based system is implemented initially using pointers stored in RAM, which RAM-based pointers point to ROM-based functions. When revisions to the functionality of the treatment device are desired, code is downlinked via an external programmer and telemetry to link to RAM, and one or more pointers, as appropriate, which pointers point to the downlinked code in RAM, are downlinked to RAM. In this manner, revisions to the firmware of an implanted medical treatment device can be downlinked to the device thereby eliminating the need to explant the device in certain circumstances. The amount of code placed in ROM is maximized, with only pointers to functions and new or revised code segments stored in RAM as needed.
-
Citations
15 Claims
-
1. A system for storing control software in a human-implantable medical treatment device, the system comprising:
-
a read only memory (“
ROM”
) storing a plurality of ROM-based tasks to be performed by the medical treatment device;
a random access memory (“
RAM”
) storing a plurality of respective ROM-based task pointers pointing to the ROM-based tasks;
a programmer and telemetry link for downlinking to the RAM at least one RAM-based task thereby producing at least one downlinked RAM-based task, at least one RAM-based task pointer thereby producing at least one downlinked RAM-based task point, so that the medical treatment device uses at least one of the ROM-based task pointers to execute at least one of the ROM-based tasks and uses at least one of the downlinked RAM-based task pointers to execute at least one of the downlinked RAM-based tasks; and
means for storing the at least one downlinked RAM-based task and the at least one RAM-based task pointer in an electrically erasable programmable read only memory (“
EEPROM”
).- View Dependent Claims (2, 3, 4, 5)
-
-
6. A hybrid random access memory (“
- RAM”
) and read only memory (“
ROM”
) system for use in a medical treatment device that is implantable within the body of a patient, the system comprising;a ROM containing a function defaults module for storing functions in the ROM, a function pointer defaults module for storing pointers to the functions stored in the function defaults module of the ROM, an executive/task scheduler for executing functions pointed to by stored function pointers, and a task order defaults module for defining the initial order in which ROM-based tasks are executed;
a RAM containing a function pointer table for storing pointers to the functions executed by the executive/task scheduler, the function pointer table being initialized by copying the contents of the function pointer defaults module from the ROM and, a downlinked functions module for storing downlinked functions, and a task order table for storing downlinked definitions of the order in which ROM-based tasks or RAM-based tasks, or both ROM-based tasks and RAM-based tasks are executed, the task order table being initialized by copying the contents of the task order defaults module of the ROM; and
a programmer and telemetry link for downlinking the functions stored in the downlinked functions module of the RAM. - View Dependent Claims (7, 8, 9, 10)
a function pointer changes module for storing a back-up copy of the contents of the function table pointer of the RAM, a function changes module for storing a back-up copy of the downlinked functions module of the RAM, and a task order changes module for storing a back-up copy of the task order table of the RAM.
- RAM”
-
8. The system as in claim 7 further comprising means for restoring the contents of at least one module of the RAM, upon a RAM failure, by copying the contents of the corresponding back-up module from the EEPROM.
-
9. The system as in claim 8, further comprising means for terminating execution of at least one RAM-based function upon failure of copying the contents of the corresponding back-up module from EEPROM to cure the RAM failure.
-
10. The system as in claim 9, further comprising means for executing at least one ROM-based function corresponding to the at least one terminated RAM-based function.
-
11. A method of storing control software in a human-implantable medical treatment device comprising the steps of:
-
storing in a read only memory (“
ROM”
) a task scheduler and a plurality of ROM-based tasks to be performed by the medical treatment device;
storing in a random access memory (“
RAM”
) a plurality of ROM-based task pointers pointing to the ROM-based tasks;
downlinking to the RAM at least one RAM-based task thereby producing at least one downlinked RAM-based task;
downlinking to the RAM at least one RAM-based task pointer thereby producing at least one downlinked RAM-based task pointer pointing to at least one of the at least one downlinked RAM-based tasks such that the medical treatment device uses at least one of the ROM-based task pointer to execute at least one of the ROM-based tasks and uses at least one of the downlinked RAM-based task pointers to execute at least one of the downlinked RAM-based tasks; and
storing the at least one downlinked RAM-based task and the at least one downlinked RAM-based task pointer in an electrically erasable programmable read only memory (“
EEPROM”
).- View Dependent Claims (12, 13, 14, 15)
-
Specification