Implantable cardiac stimulating devices which provide electrical stimulation in response to a variety of pathological cardiac arrhythmias are known. Some implantable cardiac stimulating devices provide "tiered therapy," in which the type of electrical stimulation provided is determined in accordance with the severity of the arrhythmia, with more aggressive therapies being applied in response to more severe arrhythmias. For example, such devices may respond to relatively less severe forms of tachycardia by delivering antitachycardia pacing pulses of about 25 .mu.joules to about 30 .mu.joules in a sequence known to interrupt such episodes. In response to relatively more severe forms of tachycardia, the implantable cardiac stimulating device may deliver a low energy cardioversion shock on the order of about 2 joules to about 5 joules, either in combination with, or as an alternative to, antitachycardia pacing pulses. In response to an occurrence of an even more severe arrhythmia, for example, ventricular fibrillation, the implantable cardiac stimulating device may deliver a high energy defibrillation shock on the order of about 10 joules to about 40 joules.
Implantable cardiac stimulating devices which provide pacing pulses to cardiac tissue to maintain a heart rate at a physiologically acceptable rate (i.e., to provide "bradycardia pacing support") are also known. Bradycardia pacing support may be provided by a dedicated pacemaker, or by a device that is also capable of providing other forms of therapy, such as tiered therapy.
Implantable cardiac stimulating devices typically contain a microprocessor to control the administration of the various pacing therapies and cardioversion and defibrillation shocks. Implantable cardiac stimulating devices typically may store preprogrammed information, and physiological and electrophysiological information gathered from the patient's heart, in one or more memory devices contained within the device.
If data stored in a memory device are unexpectedly altered or corrupted, inappropriate pacing may be administered to the patient's heart with possible adverse effects. For example, corrupted data may cause the device to fail to provide pacing pulses, or may cause the device to deliver a defibrillation shock at an inappropriate time. Malfunction of the microprocessor may also cause an inappropriate form of therapy to be delivered.
Microprocessor malfunction and corruption of data stored in memory devices can occur for several reasons. For example, in an implantable cardiac stimulating device, power is supplied by a battery contained within the device. If the battery is unable to supply sufficient power, the memory devices or the microprocessor may not receive enough power to function correctly. This may cause data stored in memory devices to be lost or altered, or may cause the microprocessor to malfunction.
Memory devices in an implantable device also may not function properly if they are subjected to x-rays, microwave radiation, or magnetic fields while implanted within the patient. For example, a patient may receive x-rays which may cause data stored in memory devices to be altered. As another example, the patient may pass through a strong magnetic field which may cause data to be altered. Random access memory devices (RAM) may be particularly sensitive to these sources of errors.
Calfee et al. U.S. Pat. No. 4,390,022 ("the '022 patent") describes an implantable cardiac pacer that verifies the parity of a 7-bit instruction byte stored in RAM in order to detect a possible error in the instruction byte. The '022 patent describes an eighth bit in addition to the 7-bit instruction byte to indicate the parity of the instruction byte. However, the described method suffers from certain disadvantages. For example, the described method only checks the parity of the 7-bit instructions stored in RAM. The '022 patent does not describe checking the parity of other data stored in RAM. In view of this drawback, it would be advantageous to provide parity checking of all data stored in RAM so as to provide greater error protection and increase the safety of the patient.
The '022 patent also describes moving the program counter of the implantable device to a fixed rate pacing program when a parity error of an instruction byte is detected. Although this may prevent the parity error from causing inappropriate pacing to be administered, it suffers from disadvantages. For example, once a single parity error in an instruction byte is detected, the device can only utilize the fixed rate program, thus limiting the patient to fixed-rate pacing. Therefore, after only a single parity error in an instruction byte is detected, the device is unable to gather information from the patient's heart or use information preprogrammed into the device. However, a single parity error does not always indicate that the memory device is defective and no longer useful. In view of these disadvantages, it would be desirable to provide a mode of operation for the implantable device which would eliminate the source of error while still allowing the microprocessor to use the memory devices.
Furthermore, the '022 patent suffers from the disadvantage that fixed rate pacing is administered by a program. The program instructions for the fixed rate pacing may themselves become corrupted, or the microprocessor which executes the program may malfunction, thereby causing even the fixed rate pacing program to fail. In view of these drawbacks, it would be advantageous to provide a pacing mode which can operate independent of the microprocessor and associated memory devices. Such a pacing mode would increase the safety of the device and reduce the likelihood of inappropriate therapy being applied to the patient's heart.
Another source of errors in implantable cardiac stimulating devices are transient electrical signals which may be generated during the delivery of cardioversion and defibrillation shocks. These transient electrical signals may cause data to be altered. It would therefore be advantageous to provide error prevention methods and apparatus which would prevent these errors.