IP Library Granted Patent US 8,774,931
Granted Patent B2
US 8,774,931 · App. 13/954,774 · Granted Jul 8, 2014

Direct memory access (DMA) controlled medical devices

Inventor: Neil S. Sherman (San Bruno, CA)
Assignee: Spinal Modulation, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,774,931
App. No.
13/954,774
Granted
Jul 8, 2014
Kind
B2
Abstract

A sub-system for controlling a medical device comprises memory including a first table and a second table. The first table stores blocks of event data corresponding to events that are to be performed during a period of time (e.g., a 0.5 sec. or 1 sec. period of time). The second table stores blocks of time data corresponding to the period of time. The implantable stimulation system also includes a direct memory access (DMA) controller including a first DMA channel and a second DMA channel. The first DMA channel selectively transfers one of the blocks event data from the first table to one or more registers that are used to control events. The second DMA channel selectively transfers one of the blocks of time data from the second table to a timer that is used to control timing associated with the events.

Claims (68)

1. A sub-system for use in controlling a medical device, the sub-system comprising:

a central processing unit (CPU);

memory that stores

a plurality of blocks of event data, wherein each said block of event data corresponds to an event that is to occur during a period of time, and

a plurality of blocks of time data, wherein each said block of time data is used to specify when a next event is to occur during the period of time;

one or more registers that are used to control events that are to occur during the period of time;

a timer that is used to control timing associated with events that are to occur during the period of time; and

a direct memory access (DMA) controller including

a first DMA channel that, without CPU intervention, transfers one of the blocks of event data at a time from the memory to the one or more registers that are used to control events that are to occur during the period of time, and

a second DMA channel that, without CPU intervention, transfers one of the blocks of time data at a time from the memory to the timer.

2. The sub-system of claim 1 , wherein:

the timer includes

a count register that stores a count value and increments the count value in dependence on a clock signal, and

a compare register that stores a time value corresponding to one of the blocks of the time data, compares the time value to the count value of the count register, and generates a trigger when the time value equals the count value of the count register; and

the first DMA channel transfers one of the blocks of event data at a time, from the memory to the one or more registers that are used to control events that are to occur during the period of time, without CPU intervention, in dependence on the trigger generated by the compare register; and

the second DMA channel transfers one of the blocks of time data at a time, from the memory to the compare register of the timer, without CPU intervention, in dependence on the trigger generated by the compare register or in dependence on the first DMA channel starting or completing a transfer.

3. The sub-system of claim 1 , wherein the CPU, the timer, and the DMA controller are components of a same microcontroller unit (MCU).

4. The sub-system of claim 1 , wherein:

the CPU generates the blocks of event data and the blocks of time data that are stored in the memory; and

after the CPU generates the blocks of event data and the blocks of time data, the DMA controller controls the events for the period of time without CPU intervention, thereby enabling the CPU to perform other tasks unrelated to performing the events and/or to enter a low-power mode during the period of time.

5. The sub-system of claim 1 , wherein

the blocks of event data are stored in a first table in the memory; and

the blocks of time data are stored in a second table in the memory.

6. The sub-system of claim 1 , wherein the medical device that the sub-system is used for controlling is a neurostimulation device.

7. The sub-system of claim 1 , wherein the medical device that the sub-system is used for controlling is a cardiac stimulation device.

8. The sub-system of claim 1 , wherein the medical device that the sub-system is used for controlling is a drug pump.

9. A method for use in controlling a medical device, the method comprising:

storing a plurality of blocks of event data, wherein each said block of event data corresponds to an event that is to occur during a period of time;

storing a plurality of blocks of time data, wherein each said block of time data is used to specify when a next event is to occur during the period of time;

using a first direct memory access (DMA) channel to transfer one of the blocks of event data at a time from the memory to one or more registers of the medical device that are used to control events that are to occur during the period of time; and

using a second DMA channel to transfer one of the blocks of time data at a time from the memory to a timer of the medical device that is used to control timing associated with the events.

10. The method of claim 9 , wherein each of the blocks of time data comprises a value, which when transferred by the second DMA channel to the timer is stored in a compare register of the timer, and further comprising:

incrementing a count value in dependence on a clock signal;

comparing the value stored in the compare register to the count value;

generating a trigger when the value stored in the compare register equals the count value of the count register; and

in dependence on the trigger, using the first DMA channel to transfer a next block of the event data to the one or more registers that are used to control stimulation events.

11. The method of claim 9 , wherein:

the one or more registers that are used to control the stimulation events correspond to I/O ports of a microcontroller unit (MCU) of the medical device;

the MCU includes a DMA controller; and

the DMA controller includes the first and second DMA channels.

12. The method of claim 11 , wherein the MCU of the medical device also includes a central processing unit (CPU), and further comprising:

using the CPU to generate the blocks of event data and the blocks of time data that are stored; and

after using the CPU to generate the blocks of event data and the blocks of time data, using the DMA controller to control the events for the period of time without CPU intervention, thereby enabling the CPU to perform other tasks unrelated to performing the events and/or to enter a low-power mode during the period of time.

13. The method of claim 9 , wherein the medical device that is controlled is a neurostimulation device.

14. The method of claim 9 , wherein the medical device that is controlled is a cardiac stimulation device.

15. The method of claim 9 , wherein the medical device that is controlled is a drug pump.

16. A medical device, comprising:

a central processing unit (CPU);

a plurality of ports;

memory that stores

a plurality of blocks of event data, wherein each said block of event data corresponds to an event that is to occur during a period of time, and

a plurality of blocks of time data, wherein each said block of time data is used to specify when a next event is to occur during the period of time;

a timer including

a count register that stores a count value and increments the count value in dependence on a clock signal, and

a compare register that stores a time value corresponding to one of the blocks of the event time data, compares the time value to the count value of the count register, and generates a trigger when the time value equals the count value of the count register; and

a direct memory access (DMA) controller including

a first DMA channel that transfers one block of event data at a time, from the memory to the ports without CPU intervention, in dependence on the trigger generated by the compare register, and

a second DMA channel that transfers one block of time data at a time, from the memory to the compare register without CPU intervention, in dependence on the trigger generated by the first compare register or in dependence on the first DMA channel starting or completing a transfer.

17. The medical device of claim 16 , wherein:

the timer also includes a second compare register that stores a second value, compares the second value to the count value of the count register, and generates a second trigger when the stored second value equals the count value of the count register;

the second value specifies the period of time; and

the second trigger causes the count value stored by the count register to be reset.

18. The medical device of claim 16 , wherein:

the blocks of event data are stored in a first table in the memory; and

the blocks of time data are stored in a second table in the memory.

19. The medical device of claim 16 , wherein the medical device is a neurostimulation device.

20. The medical device of claim 16 , wherein the medical is a cardiac stimulation device.

21. The medical device of claim 16 , wherein the medical is a drug pump.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: ST. JUDE MEDICAL LUXEMBOURG HOLDINGS SMI S.A.R.L. ("SJM LUX SMI")
To: TC1 LLC
Reel/Frame 064903/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2015
From: SPINAL MODULATION LLC
To: ST. JUDE MEDICAL LUXEMBOURG HOLDINGS SMI S.A.R.L. ("SJM LUX SMI")
Reel/Frame 037199/0142 →
CHANGE OF NAME Recorded Nov 20, 2015
From: SPINAL MODULATION, INC.
To: SPINAL MODULATION LLC
Reel/Frame 037150/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2013
From: SHERMAN, NEIL S.
To: SPINAL MODULATION, INC.
Reel/Frame 031108/0766 →
Continuity (3)
Continuation 13023470 · Feb 8, 2011
Provisional Application 61423995 · Dec 16, 2010
Related Publication 20130318259A1 · Nov 28, 2013