TECHNICAL FIELD

Embodiments relate to methods and devices that utilize register sets to implement operating parameters. More particularly, embodiments relate to methods and devices that utilize hardware to move blocks of operating parameter data from a memory device to a set of registers.

BACKGROUND

Active devices such as active implantable medical devices that generate electrical stimulation signals utilize a set of registers to hold operating parameter data that is implemented by a given component of the device. For instance, an implantable medical device may include a stimulation engine that creates stimulation waveforms based on waveform parameters that are stored in registers of the stimulation engine.

In order to control the operation of the component, such as a stimulation engine, in many cases the parameter data present in the registers is changed according to a prescribed sequence. For example, for a stimulation engine, the pattern of stimulation pulses may be changed in order to ramp up stimulation amplitudes and then ramp them back down. Other examples include changing the rate and/or pulse width of stimulation pulses, controlling active recharge pulses, and so on.

An active device often utilizes firmware to implement device programming. Firmware is conventionally responsible for changing the operating parameters in the set of registers in order to control the component of interest such as the stimulation engine. However, for circumstances such as controlling the generation of waveforms, the firmware must synchronize the effort to change the parameter values with the operation of the component being controlled so that the changes are able to be implanted by the component at the appropriate time. This creates a significant amount of overhead for the firmware that may overburden the firmware and prevent the firmware from performing other desired functions.

SUMMARY

Embodiments address issues such as these and others by providing a block moving hardware based controller that moves a block of operating parameter data from memory to a set of registers. The block moving hardware based controller receives a trigger that causes the operating parameters to be moved. Each block of data in memory may include data that is indicative of the block size to cause the block moving hardware based controller to move the proper block size to the set of registers. Each block of data in memory may also include data that specifies a number of triggers to skip before moving a next block, such as where the current operating parameters are to be maintained for a particular number of triggering events.

Embodiments provide a method of controlling parameters of an active device. The method involves writing a plurality of block navigation data and corresponding parameter data and address value pairs to locations within a memory device of a block moving hardware-based controller, each block navigation datum and corresponding parameter data and address value pairs defining a block. The method further involves receiving a trigger at the block moving hardware-based controller and in response to receiving the trigger, reading the block navigation datum from the memory device for a first block of the memory device and reading a number of parameter data and address value pairs corresponding to the block navigation datum. The method further involves, upon reading the number of parameter data and address value pairs, writing the parameter data values that have been read from memory to a set of registers corresponding to the address values.

Embodiments provide an active device. The active device includes a block moving hardware based controller comprising a block mover device and a memory device, the block mover having a trigger input. The active device further includes a set of registers, wherein a plurality of block navigation data and corresponding parameter data and address value pairs are present in locations within the memory device, each block navigation datum and corresponding parameter data and address value pairs defining a block. The block mover device receives a trigger, and in response to receiving the trigger, the block mover reads the block navigation datum from the memory device for a first block of the memory device and reads a number of parameter data and address value pairs corresponding to the block navigation datum. The block mover device, upon reading the number of parameter data and address value pairs, writes the parameter data values that have been read from memory to the set of registers corresponding to the address values.

