referring to fig1 there is depicted a block diagram of an arrhythmia control system 10 . system 10 is designed to be implantable and includes a pulse module 11 and appropriate leads . more particularly , system 10 will generally include a cardiac lead or leads 12 extending to a patient &# 39 ; s heart 14 for the administration of therapy to the atrium or ventricle , or to both , of the patient &# 39 ; s heart for the administration of therapy thereto . system 10 generally also includes a pacemaker 15 for the detection of analog signals representing cardiac electrical activity and for the delivery of pacing pulses to the heart ; a microprocessor 16 which , in response to various inputs received from the pacemaker 15 as well as from a defibrillator 17 , performs various operations so as to generate different control and data outputs to both pacemaker 15 and defibrillator 17 ; and a power supply 18 for the provision of a reliable voltage level to pacemaker 15 , microprocessor 16 and defibrillator 17 by suitable electrical conductors ( not shown ). defibrillator 17 produces a high voltage to charge its capacitors ( not shown ) and then discharges the capacitors in response to control signals from microprocessor 16 . a defibrillator electrode lead 19 transfers the energy of a defibrillator shock 20 from the implanted pulse module 11 to the surface of the heart 14 . microprocessor 16 is connected to an external memory 21 by an address and data bus 22 . an end - of - life ( eol ) signal line 24 is used to provide , to microprocessor 16 , a logic signal indicative of the approach of battery failure in power supply 18 . as more fully described below , microprocessor 16 and pacemaker 15 are connected by a communication bus 25 , a sense line 26 , a pace control line 27 , a sensitivity control bus 28 , and a pacing energy control bus 29 . as also more fully described below , microprocessor 16 is connected to defibrillator 17 by a charge voltage level line 30 , a charge control bus 31 , a shock control bus 32 , and a dump control bus 34 . referring to fig2 pacemaker 15 comprises a pacing circuit 35 which includes a pacing pulse generator 36 , a sensing circuit 37 , and a telemetry circuit 38 . in addition , there is a control block 39 which includes an interface to microprocessor 16 . in operation , sensing circuit 37 detects analog signals 40 from the heart 14 in an internal qrs detector 37a and converts the detected signals to digital signals . furthermore , sensing circuit 37 receives an input sense control signal ( which determines the sensitivity of the detection circuits in sensing circuit 37 ) by way of a sense control bus 41 from control block 39 . as more fully described below , a change in this sensitivity will affect the voltage deviation required at the sensing electrode for a sense to be registered . pacing circuit 35 also receives inputs from control block 39 , including a pace control and a pacing energy control , by way of pacing control bus 42 , which carries the signals that arrive at block 39 via pace control line 27 and pacing energy control bus 29 . the pace control determines the type of pacing to occur while the magnitude of the pulse energy is determined by the pacing energy control . pacing circuit 35 causes pulse generator 36 to generate pacing pulses 44 which are delivered to the patient &# 39 ; s heart 14 by means of cardiac lead 12 . telemetry circuit 38 provides a bi - directional link between control block 39 of pacemaker 15 and an external device such as a programmer ( not shown ). it allows data such as the operating parameters to be read from or altered in the implanted pulse module 11 ( fig1 ). referring to fig3 microprocessor 16 comprises two 16 - bit timers 47 and 48 , a central processing unit or cpu 49 , a vectored interrupts block 50 , a random access memory or ram 54 , a read only memory or rom 55 , a ports interface 57 and an internal communications bus 58 . ram 54 acts as a scratch pad and active memory during execution of the various programs stored in rom 55 and used by microprocessor 16 . these programs include system supervisory programs , detection algorithms for detecting various arrhythmias , and programming implementing the logic flow diagram of fig4 as well as storage programs for storing , in external memory 21 , data concerning the functioning of module 11 and the electrogram provided by cardiac lead 12 ( fig1 ). timers 47 and 48 and associated control software implement some timing functions required by microprocessor 16 without resort entirely to software , thus reducing computational loads on and power dissipation by cpu 49 . signals received from telemetry circuit 38 ( fig2 ) permit an external programmer ( not shown ) to change the operating parameters of pacemaker 15 by supplying appropriate signals to control block 39 . communications bus 25 ( fig3 ) serves to provide signals indicative of such control to microprocessor 16 . thus , it is also possible for an external programmer to control operation of defibrillator 17 ( fig1 ) by means of signals provided to microprocessor 16 . appropriate telemetry commands may cause telemetry circuit 38 ( fig2 ) to transmit data to the external programmer . data stored is read out , by microprocessor 16 , on to communications bus 25 , through control block 39 in pacemaker 15 , and into telemetry circuit 38 for transmission to the external programmer by a transmitter in telemetry circuit 38 . microprocessor 16 ( fig3 ) receives various status and / or control inputs from pacemaker 15 and defibrillator 17 . during normal pacer operations the input signal to pacemaker 15 is a sense signal on sense line 26 which is used by microprocessor 16 to perform operations such as arrhythmia detection . microprocessor 16 produces outputs such as the pace control on pace control line 27 which determines the type of pacing to take place . other pacemaker control outputs generated by microprocessor 16 include a pacing energy control signal on pacing energy control bus 29 which determines the magnitude of the pulse energy , and a sensitivity control signal on sensitivity control bus 28 , which determines the sensitivity setting of the sensing circuit 37 . microprocessor 16 provides to defibrillator 17 a shock control signal on shock control bus 32 which indicates that a shock is to be delivered to the patient , a dump control signal on dump control bus 34 which indicates that a shock is to be dumped at an internal load within defibrillator 17 , and a charge control signal on charge control bus 31 which determines the voltage level of the shock to be delivered . charge voltage level line 33 provides a digital signal representative of charge voltage from an analog to digital converter within defibrillator 17 , thus providing a feedback loop which assures that a shock of proper energy level is delivered by defibrillator 17 . referring to fig4 there is illustrated a logic flow diagram which depicts generally at 60 the modular decomposition of the antitachyarrhythmia pacing software within the microprocessor 16 of fig1 . sensing inputs are delivered to the software via sensing line 26 . tachyarrhythmia classification and reconfirmation are provided by software at block 61 . if a tachyarrhythmia is detected and reconfirmed , a &# 34 ; tachy confirm &# 34 ; signal 62 passes to an antitachycardia pacing control block 64 . at the same time , a signal 63 , representing the average tachycardia cycle length of the reconfirmed tachyarrhythmia , is sent to a scan storage block 67 . from pacing control block 64 , either a &# 34 ; restore &# 34 ; signal 65 or a &# 34 ; save &# 34 ; signal 66 passes to scan storage block 67 , which interchanges a scan value 69 with a scanning algorithm block 70 . a &# 34 ; deliver train &# 34 ; signal 68 passes from antitachycardia pacing control block 64 to a scanning algorithm block 70 . from scanning algorithm block 70 , a train parameters signal 71 passes to a pacing train control block 72 , which issues pacing outputs to the patient via pace control line 27 . in the preferred embodiment of the invention , tachycardia cycle lengths are measured to a resolution of 4 milliseconds and are represented internally in multiples of 4 milliseconds . thus , one byte with a numerical range of 0 to 255 can represent cycle lengths from 0 to 1020 milliseconds . the device thereby limits the minimum tachycardia cycle length ( tclmin ) to greater than or equal to 0 milliseconds , and limits the maximum tachycardia cycle length ( tclmax ) to less than or equal to 1020 milliseconds . the actual values of tclmin and tclmax are programmed by the physician in accordance with the principles of antitachycardia pacing . the partitioning of tachycardia cycle lengths is achieved by the inherent resolution of the measured tachycardia cycle length . an array of 256 additional storage location units or bins is used to store the scanning parameter for each successful reversion by pacing . thus , a corresponding scanning parameter value can be stored for each unique , tachycardia reverting , cycle length value . after detection and reconfirmation of a tachyarrhythmia , the invention examines or indexes the contents of the scanning parameter storage array to arrive at the confirmed tachycardia cycle length bin . if there is a stored scanning parameter value for that cycle length , it is recalled and scanning is commenced at that value . if not , the array is searched both upwards and downwards until a filled cycle length bin is found . the stored scanning parameter value for the cycle length which is numerically closest to the newly confirmed cycle length is then recalled , and scanning is commenced at that value . the confirmed tachycardia cycle length is also held over in temporary storage in case it is needed at the time that the tachyarrhythmia is pace - terminated . when the tachyarrhythmia is reverted by pacing , the successful scanning parameter value is stored in the array location indexed by the tachycardia cycle length held over since the confirmation prior to delivery of the successful train . if an older successful scanning parameter happens to be stored in that location , it is overwritten by the newly successful value . for antitachyarrhythmia pacing algorithms utilizing more than one scanning parameter , the array &# 39 ; s storage units may be extended so as to accommodate additional parameters &# 39 ; values in each tachycardia cycle length bin , as will appear in greater detail hereinafter in connection with a discussion of the embodiment of fig7 . referring to fig5 a , if two stored parameter values ( e . g ., &# 34 ; sm &# 34 ; and &# 34 ; sn &# 34 ;) are at an equal distance from bin &# 34 ; i &# 34 ;, yet in opposite directions . that is , m - i = i - n , then the number of scan steps in going from &# 34 ; sm &# 34 ; to &# 34 ; sn &# 34 ; is measured , and if this is less than the number of scan steps in going from &# 34 ; sn &# 34 ; to &# 34 ; sm &# 34 ;, then &# 34 ; sm &# 34 ; is chosen . if the first measurement is greater than the second measurement , then &# 34 ; sn &# 34 ; is chosen . it should be noted that scanning steps proceed in a direction from lower numbered bins toward higher numbered bins ( i . e ., from bin &# 34 ; 0 &# 34 ; toward bin &# 34 ; 255 &# 34 ;), and when bin &# 34 ; 255 &# 34 ; is reached the next scan step is back to bin &# 34 ; 0 &# 34 ;. assuming that &# 34 ; m &# 34 ;= bin &# 34 ; 100 &# 34 ;, &# 34 ; i &# 34 ;= bin &# 34 ; 150 &# 34 ; and &# 34 ; n &# 34 ;= bin &# 34 ; 200 &# 34 ; in fig5 a , it will be seen that there are 200 - 100 = 100 scan steps involved in going from bin &# 34 ; m &# 34 ; to bin &# 34 ; n &# 34 ;, and ( 255 - 200 )+ 101 = 156 scan steps involved in going from bin &# 34 ; n &# 34 ; to bin &# 34 ; m &# 34 ;. accordingly , &# 34 ; sm &# 34 ; in bin &# 34 ; m &# 34 ; is chosen as the starting point . as is apparent from the example under discussion , if the first selection (&# 34 ; sm &# 34 ; stored in bin &# 34 ; m &# 34 ;) is not successful , continued scanning will by itself lead to the second selection (&# 34 ; sn &# 34 ; stored in bin &# 34 ; n &# 34 ;) more quickly than if the second selection were chosen first . if no filled bins are found in the array , then scanning is commenced at zero . referring to fig5 b , when the tachyarrhythmia is reverted by pacing , the successful scanning parameter value &# 34 ; sk &# 34 ; is stored in the array location &# 34 ; k &# 34 ; indexed by the latest reconfirmed tachycardia cycle length . if an older successful scanning parameter happens to be stored in that location , it is overwritten by the newly successful value . fig6 depicts an alternative embodiment of the invention in which fewer bins are used , saving storage space . where either or both of available storage space and search time are scarce , the number &# 34 ; n &# 34 ; of bins in the scanning parameter storage array can be reduced to less than 256 bins . the reduction in bins is preferably done by dividing the 256 bins of the preferred embodiment by an integral power of 2 to arrive at the number of bins &# 34 ; n &# 34 ; in the smaller array . the arrangement is in general more efficient in either hardware or software if the divisor is an integral power of 2 . in the example shown in fig6 a space efficient mapping algorithm is formed by dividing 256 by the divisor 4 , resulting in &# 34 ; n &# 34 ;= 64 . in this case , the reconfirmed tachycardia cycle length does not directly serve as an index into the array but rather must first be mapped onto a set of indices . the simplest such mapping consists of multiplying the reconfirmed tcl by the number ( 4 ) used as the divisor to arrive at the number of bins in the smaller array . accordingly , the embodiment of fig6 provides a scanning parameter storage array which comprises 64 bins which are indexed in increments of 16 milliseconds from 0 to 1008 milliseconds . fig7 shows an alternative embodiment wherein more than one scanning parameter is saved . the various scanning parameters are identified in fig7 as parameters 1 , 2 and 3 . this figure illustrates the use of the invention &# 39 ; s principle in a more complicated antitachycardia pacing algorithm wherein more than one parameter is scanned between pacing trains , the additional parameters being , for example , pulse burst rate and number of pulses . further details in regard to parameters that may be used for this embodiment of the invention are disclosed in the hereinbefore - mentioned u . s . pat . no . 4 , 406 , 287 to t . a . nappholz et al . in the present case , one scanning array is allocated for each independent scanning parameter . when the tachyarrhythmia is reverted by pacing , the value of each scanning parameter is stored in its associated array , the location in each array being indexed by the reconfirmed tachycardia cycle length . examples of other scanning parameters that may be stored are the initial interval &# 34 ; ii &# 34 ; and the coupled interval &# 34 ; ci &# 34 ;. the &# 34 ; ii &# 34 ; may be scanned as a % of the tcl and / or the ci as a % of the tcl . preferred examples would be scanning each of these parameters from 90 % to 60 % of the tcl . alternately , the &# 34 ; ii &# 34 ; and the &# 34 ; ci &# 34 ; may be scanned over an interval ranging from say 460 ms to 200 ms . an alternative data structure to the scanning parameter storage array described in the preferred embodiment would be a binary tree , or &# 34 ; heap &# 34 ;. for a sufficiently large number of bins , a binary tree offers faster &# 34 ; nearest neighbor &# 34 ; searching for accessing the closest previously successful scanning parameter than does the array . however , for a smaller number of bins , the greater storage space requirements of the binary tree method make it less efficient overall than the array method . ( for the 256 tachycardia cycle length bins of the preferred embodiment , the array method is more efficient than the binary tree method ). another alternative data structure would involve dynamic partitioning of the tachycardia cycle length range into a variable number of bins of differing widths . this method has one advantage over the static storage array disclosed in the preferred embodiment , in that the time taken to search for filled bins is always less than the time taken to search the array . however , the storage space required for the dynamic partitioning is equal to or greater than that for the array , and the algorithms to perform the partitioning are more complex than those for maintaining the array . in the preferred embodiment , search time is not critical ( for example , the worst case search time is always less than the minimum antitachycardia pacing interval ) and so the simpler array method is more appropriate . although the invention has been described with reference to particular embodiments , it is to be understood that such embodiments are merely illustrative of the application of the principles of the invention . for example , the principle of the invention applies equally to atrial and ventricular antitachycardia pacing , either with or without defibrillation therapy backup . furthermore , the parameters which may be incorporated in the invention are not limited to those disclosed herein either directly or by cross reference . hence numerous other modifications may be made therein and other arrangements may be devised without departing from the true spirit and scope of the invention .
a method and apparatus for treating tachycardias are disclosed which utilize tachycardia cycle lengths in connection with selecting the type of antitachycardia pacing to be used in such treatment . a range of tachycardia cycle lengths is selected for which antitachycardia pacing treatment is indicated . this range is divided into a plurality of sub - ranges of tachycardia cycle lengths , and corresponding storage locations are established for each of the tachycardia cycle length sub - ranges . antitachycardia pacing parameters which have been successful in reverting previous tachycardias are stored in their corresponding storage locations , and subsequent tachycardias are treated using antitachycardia pacing parameters selected from storage locations that correspond to , or are closest to correspondence with , the storage locations corresponding to the tachycardias to be treated .