(57)【特許請求の範囲】
【請求項１】
ある期間に実施される刺激イベントに対応する刺激イベントデータのブロックを保存する第１テーブルと、
当該期間に対応する次の刺激イベントタイムデータのブロックを保存する第２テーブルと、を含む、メモリと、
刺激イベントデータのブロックの１つを、第１テーブルから刺激イベントを制御するために用いられる１又は複数のレジスタへ選択的に転送する第１ＤＭＡチャンネルと、
次の刺激イベントタイムデータのブロックの１つを、第２テーブルから刺激イベントと連動するタイミングを制御するために用いられるタイマーへ選択的に転送する第２ＤＭＡチャンネルと、を含む、ダイレクトメモリアクセス（ＤＭＡ）コントローラーと、を備える、埋め込み型刺激システム。
【請求項２】
カウントレジスタと第１比較レジスタを有するタイマーをさらに備え、
次の刺激イベントタイムデータの各ブロックは、第２ＤＭＡチャンネルによりタイマーに転送されるときにタイマーの第１比較レジスタに保存される値を有しており、
タイマーのカウントレジスタは、カウント値を保存し、かつ、第１クロック信号に依存したカウント値をインクリメントし、
第１比較レジスタは、第１比較レジスタに保存された値とカウントレジスタのカウント値とを比較し、第１比較レジスタに保存された値とカウントレジスタのカウント値とが等しいとき、第１トリガーを発生させ、
第１ＤＭＡチャンネルは、刺激イベントデータの次のブロックを、第１テーブルから第１比較レジスタにより発生された第１トリガーに従った刺激イベントを制御するために用いられる１又は複数のレジスタへ転送する、請求項１に記載の埋め込み型刺激システム。
【請求項３】
第２ＤＭＡチャンネルは、次の刺激イベントタイムデータの次のブロックを、次の１つ
、
第１比較レジスタにより発生される第１トリガーの信号、
転送を開始する第１ＤＭＡチャンネルに反応して発生するトリガー信号、又は
転送を完了する第１ＤＭＡチャンネルに反応して発生するトリガー信号、
に従って、第２テーブルから第１比較レジスタに転送する、請求項２に記載の埋め込み型刺激システム。
【請求項４】
タイマーは、リセット値を保存し、かつ、リセット値とカウントレジスタのカウント値とを比較する第２比較レジスタを含んでおり、
保存されたリセット値がカウントレジスタの値と等しくなるときに、カウントレジスタがリセットされる、請求項３に記載の埋め込み型刺激システム。
【請求項５】
刺激イベントを制御するために用いられる１又は複数のレジスタは、ＤＭＡコントローラーとメモリを含むマイクロコントローラーユニット（ＭＣＵ）の入力/出力ポートに対応する、請求項１〜４のいずれか一項に記載の埋め込み型刺激システム。
【請求項６】
刺激イベントデータの各ブロックは、刺激イベントに対応し、かつ、
刺激イベントのために選択された複数の導線の一つを特定する第１グループのビットと、
刺激イベント中に選択された導線の電極とどのように接続するかを特定する第２グループのビットと、が含まれており、
第１グループのビットは、第１ＤＭＡチャンネルにより、導線選択を制御する回路に接続された入力/出力ポートに対応する１又は複数のレジスタの第１部分に転送され、
第２グループのビットは、第１ＤＭＡチャンネルにより、電極構成を制御する回路に接続された入力/出力ポートに対応するレジスタの第２部分に転送される、請求項５に記載の埋め込み型刺激システム。
【請求項７】
１又は複数の導線を介して伝達される刺激信号を定める刺激データを受信、又はアクセスする中央処理装置（ＣＰＵ）をさらに備え、
刺激データにもとづき、ＣＰＵはメモリに保存されている第１テーブルと第２テーブルを生じさせ、
ＣＰＵが第１テーブルと第２テーブルを生じさせた後、ＤＭＡコントローラーはＣＰＵの割り込みなしに前記期間に刺激イベントを制御し、これによりＣＰＵは刺激イベントを行うことに関連しない他のタスクを行うこと、及び/又は、前記期間の間低電力モードに入ることを可能とする、請求項２〜４のいずれか一項に記載の埋め込み型刺激システム。
【請求項８】
ＣＰＵは、刺激データにもとづきパルスの潜在的衝突を特定し、
ＤＭＡコントローラーが、第１テーブルと第２テーブルに従って、刺激イベントをある期間制御するとき、ＣＰＵは特定された潜在的パルス衝突を避けるように第１テーブルと第２テーブルを生成する、請求項７に記載の埋め込み型刺激システム。
【請求項９】
カウント値をインクリメントするためにカウントレジスタにより用いられる前記第１クロック信号を発生させる第１クロック回路と、
ＣＰＵが低電力モードにないときにＣＰＵにより用いられる第２クロック信号を発生させる第２クロック回路と、をさらに備え、
第２クロック回路により発生された第２クロック信号は、第１クロック回路により発生された前記第１クロック信号より高い周波数を有し、第２クロック回路は第１クロック回路より多くの電力を使用し、
ＣＰＵが低電力モードにあるとき、第２クロック回路は少なくとも部分的に不作動になっている、請求項７に記載の埋め込み型刺激システム。
【請求項１０】
第１周波数を有するクロック信号を発生させる第１クロック回路と、
ＣＰＵが低電力モードにないときに前記ＣＰＵにより用いられる、第１周波数より高い第２周波数のクロック信号を発生させる第２クロック回路と、をさらに備え、
第２クロック回路は、第１クロック回路よりも多くの電力を消費し、
ＣＰＵにより受領され、または、アクセスされた刺激データに基づき、ＣＰＵは、第１クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる前記第１クロック信号として充分な分解能を有しているかどうか、または、第２クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる前記第１クロック信号として用いる必要があるかどうかを決定し、
第１クロック回路により発生されたクロック信号がカウント値をインクリメントさせるためにカウントレジスタが用いる前記第１クロック信号として充分な分解能を有していれば、第１クロック回路により発生されたクロック信号が前記第１クロック信号として用いられ、かつ、第２クロック回路は少なくとも部分的に不作動となり、
第２クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる前記第１クロック信号として用いる必要があるならば、第２クロック回路により発生されたクロック信号が前記第１クロック信号として用いられ、かつ、第１クロック回路は少なくとも部分的に不作動となる、請求項７に記載の埋め込み型刺激システム。
【請求項１１】
第１テーブルと第２テーブルは、第１周波数を有するクロック信号と第２周波数を有するクロック信号のいずれが前記第１クロック信号として用いられているかに従って、ＣＰＵにより作成される、請求項１０に記載の埋め込み型刺激システム。
【請求項１２】
各電極が陽極、陰極または中性電極として接続可能とされている複数の電極をそれぞれ有する複数の導線と、
導線の選択を制御する回路に接続された複数の入力／出力ポートと、
電極構成を制御する回路に接続された複数の入力/出力ポートと、をさらに備える、請求項１〜６のいずれか一項に記載の埋め込み型刺激システム。
【請求項１３】
埋め込み型刺激システムの制御方法であり、
中央処理装置（ＣＰＵ）が、ある期間に実施される刺激イベントに対応する刺激イベントデータのブロックを第１テーブルに保存すること、
前記ＣＰＵが、前記期間に対応する次の刺激イベントタイムデータのブロックを第２テーブルに保存すること、
ＤＭＡコントローラーが、第１テーブルから、刺激イベントを制御するために用いられる１又は複数のレジスタへ刺激イベントデータのブロックの１つを選択的に転送するために、ＤＭＡコントローラーの第１ダイレクトメモリアクセス（ＤＭＡ）チャンネルを用いること、
ＤＭＡコントローラーが、第２テーブルから、刺激イベントと連動するタイミングを制御するために用いられるタイマーへ次の刺激イベントタイムデータのブロックの１つを選択的に転送するために、ＤＭＡコントローラーの第２ＤＭＡチャンネルを用いること、を備える、埋め込み型刺激システムの制御方法。
【請求項１４】
次の刺激イベントタイムデータの各ブロックは、タイマーに転送されたときにタイマーの第１比較レジスタに保存される値を有しており、この方法はさらに、
前記タイマーが、第１クロック信号に従ってカウント値をインクリメントすること、
前記タイマーが、前記第１比較レジスタに保存された値とカウント値とを比較すること、
前記タイマーが、前記第１比較レジスタに保存された値とカウントレジスタのカウント値とが等しいときに、第１トリガーを発生させること、
前記第１ＤＭＡチャンネルが、刺激イベントデータの次のブロックを、第１テーブルから、第１トリガーに従って刺激イベントを制御するために用いられる１又は複数のレジスタへ転送すること、を備える請求項１３に記載の方法。
【請求項１５】
刺激イベントを制御するために用いられる１又は複数のレジスタが、ＤＭＡコントローラーを含むマイクロコントローラーユニット（ＭＣＵ）の入力/出力ポートに対応する、請求項１３又は１４に記載の方法。
【請求項１６】
刺激イベントデータの各ブロックは、刺激イベントに対応し、下記の
刺激イベントのために複数の導線のどれが選択されたかを特定する第１グループのビットと、
刺激イベントの間、選択された導線の電極がどのように接続されているかを特定する第２グループのビットと、を含んでおり、
第１グループのビットは、導線の選択を制御する回路に接続された入力/出力ポートに対応する１又は複数のレジスタの第１部分に第１ＤＭＡチャンネルにより転送され、
第２グループのビットは、電極構成を制御する回路に接続された入力/出力ポートに対応する１又は複数のレジスタの第２部分に第１ＤＭＡチャンネルにより転送される、請求項１３〜１５のいずれか一項に記載の方法。
【請求項１７】
前記ＣＰＵが、１又は複数の導線を介して伝達される刺激信号を定める刺激データにもとづき第１テーブルと第２テーブルを作成すること、
前記ＣＰＵが第１テーブルと第２テーブルを作成した後、ＤＭＡコントローラーが、ＣＰＵの割り込みなしに前記期間に刺激イベントを制御し、これによりＣＰＵが、刺激イベントに関連しないタスクを処理、及び/又は、前記期間低電力モードに入ることを可能とすること、をさらに備える請求項１４に記載の方法。
【請求項１８】
前記ＣＰＵが、
刺激データに基づき潜在的パルス衝突を特定すること、
前記ＣＰＵが第１テーブルと第２テーブルを作成するとき、ＤＭＡコントローラーが第１テーブルと第２テーブルに従って前記期間刺激イベントを制御するときに特定された潜在的パルス衝突を避けるように第１テーブルと第２テーブルを作成すること、をさらに備える請求項１７に記載の方法。
【請求項１９】
第１クロック回路が、第１周波数を有するクロック信号を発生すること、
第１クロック回路よりも多くの電力を消費する第２クロック回路が、ＣＰＵが低電力モードにないときにＣＰＵにより使用され、第１周波数より高い第２周波数を有するクロック信号を発生すること、
刺激データに基づき、前記ＣＰＵが、第１クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる前記第１クロック信号として用いられるに充分な分解能を有しているかどうか、または、第２ロック回路により生成したクロック信号が、カウント値をインクリメントするために用いられる前記第１クロック信号として用いる必要があるかを決定すること、をさらに備え、
第１クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる前記第１クロック信号として用いられるに充分な分解能を有していることを前記ＣＰＵが決定すれば、第１クロック回路により生成されたクロック信号を前記第１クロック信号として用い、少なくとも部分的に第２クロック回路を不作動とし、
第２クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる前記第１クロック信号として用いられる必要があることを前記ＣＰＵが決定すれば、第２クロック回路により生成されたクロック信号を前記第１クロック信号として用い、少なくとも部分的に第１クロック回路を不作動とする、請求項１７に記載の方法。
【請求項２０】
第１テーブルと第２テーブルは、ＣＰＵにより、第１周波数を有するクロック信号または第２周波数を有するクロック信号のいずれが前記第１クロック信号として用いられているかに従って生成される、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、２０１１年２月８日付けで出願された米国特許出願第１３／０２３，４７０号、発明の名称「ダイレクトメモリアクセス（ＤＭＡ）制御刺激」と、２０１１年１２月１６日付けで出願された米国仮特許出願第６１／４２３，９９５号、発明の名称「ダイレクトメモリアクセス（ＤＭＡ）制御刺激」に対する優先権を主張する。
【０００２】
本発明の実施例は、痛みや他の症状を治療するための神経刺激、これに限定されるものではないが、このような刺激を提供するために一般に用いられる方法、装置およびシステムに関する。
【背景技術】
【０００３】
背中及び/又は肢部に慢性的な痛みを感じ、これまでの方法では痛みを和らげなかった患者にとって、神経刺激による治療は受け入れられてきた。一般に、神経刺激は、慢性的痛みの経路にある神経組織に対し電流を加えることを有している。これにより、先に知覚した痛みを感じる脳の能力を遮断する感覚を生じさせる。これまで、慢性的な痛みに通常用いられる電気的刺激を加える方式として２つの方法、脊髄への刺激（SCS）と末梢神経領域への刺激（PNFS）がある。脊髄への刺激（SCS）では、電気導線（リード）が脊髄に沿って配置される。プログラムされた埋め込み型神経刺激装置（INS）では、臀部の上部又は腹部（皮下）に埋め込まれ、導線の電極を介して脊髄へ電流を出力する。末梢神経領域への刺激では、先の脊髄への刺激と類似しているが、末梢神経領域への刺激では、痛みが発生している末梢神経に近い皮膚の直下に導線を配置している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラム制御されるＩＮＳは、神経刺激を行うために一般に必要とされる無数の機能を制御する電気回路と、神経刺激信号を発生させるために必要な電力を提供すると共に、このような電気回路を駆動するためのバッテリーを必要とする。例えば、プログラムされたＩＮＳは、無数の機能を制御するための応用特殊集積回路（application specific integrated circuit（ASIC））を含むことができる。しかしながら、ＡＳＩＣは、設計することが比較的高価となり、特徴が変更、及び/又は、追加されたときに、典型的に重大な再設計が要求される。他の例では、プログラムされたＩＮＳは、無数の機能を制御することが可能とするために既成の中央処理装置(ＣＰＵ)を含んでいる。これは、既成品により解決できるため有利といえる。しかしながら、ＩＮＳで消費される電力を最小限としてＩＮＳの使用寿命を延ばそうとすることを考慮すると、仮にＣＰＵが電力効率的に使用されていないときは、ＣＰＵの使用は実際よりも著しく多量の電力を消費する。
【課題を解決するための手段】
【０００５】
本発明の特定の実施例は、一般的に、ダイレクトメモリアクセス（ＤＭＡ）制御刺激を含む埋め込み型の刺激システムおよびその使用方法に関する。
【０００６】
本実施例によれば、埋め込み型刺激システム（例えば、埋め込み型神経刺激装置（INS））は、第１テーブルと第２テーブルを含むメモリを備えている。第１テーブルは、ある期間（例えば、０.５秒または１秒の期間）に実施される刺激イベントに対応する刺激イベントデータのブロックを保存する。第２テーブルは、ある期間に対応する次の刺激イベントタイムデータのブロックを保存する。埋め込み型刺激システムはまた、第１ＤＭＡチャンネルと第２ＤＭＡチャンネルとを含むダイレクトメモリアクセス（ＤＭＡ）コントローラーを含んでいる。第１ＤＭＡチャンネルは、刺激イベントデータのブロックの一つを、第１テーブルから刺激イベントを制御するために用いられる１又は複数のレジスタに選択的に転送する。このように、ＤＭＡコントローラーは、刺激イベントを制御するために使うことができる。刺激イベントを制御するために使用される１又は複数のレジスタは、ＤＭＡコントローラーとメモリを含むマイクロコントロラーユニット（ＭＣＵ）の入力/出力ポートに対応することができる。
【０００７】
第２ＤＭＡチャンネルは、次の刺激イベントタイムデータのブロックを、第２テーブルから刺激イベントと連動するタイミングを制御するために用いられるタイマーに選択的に転送する。
【０００８】
埋め込み型刺激システムは、また、カウントレジスタと第１比較レジスタを含むタイマーを備えている。次の刺激イベントタイムデータのブロックの各々は、ＤＭＡチャンネルによりタイマーに転送されたときに、タイマーの第１比較レジスタに保存される値を備えている。タイマーのカウントレジスタは、カウント値を保存し、クロック信号に従ってカウント値をインクリメントする。第１比較レジスタは、第１比較レジスタに保存されている値とカウントレジスタのカウント値を比較し、第１比較レジスタに保存されている値とカウントレジスタのカウント値とが等しいときに第１トリガーを発生する。第１ＤＭＡチャンネルは、次の刺激イベントデータのブロックを第１テーブルから、第１比較レジスタにより発生された第１トリガーに従って刺激イベントを制御するために用いられる１又は複数のレジスタに転送する。
【０００９】
第２ＤＭＡチャンネルは、次の刺激イベントタイムデータの次のブロックを、第２テーブルから、第１比較レジスタにより発生された第１トリガー、第１ＤＭＡチャンネルの転送開始に応じて発生するトリガー信号、又は第１ＤＭＡチャンネルの転送完了に応じて発生するトリガー信号に従って第１比較レジスタに転送する。
【００１０】
実施例では、タイマーは、また、リセット値を保存する第２比較レジスタをも含んでいる。タイマーは、リセット値とカウントレジスタのカウント値を比較する。保存されたリセット値が、カウントレジスタのカウント値と等しいとき、カウントレジスタのカウント値がリセットされる。
【００１１】
実施例によれば、刺激イベントデータの各ブロックは刺激イベントに対応しており、少なくとも第１グループのビットと第２グループのビットを含んでいる。第１グループのビットは、複数の導線のどれが刺激イベントのために選択されているかを特定する。第２グループのビットは、刺激イベントの間に、選択された導線の電極がどのように接続されているかを特定する。実施例では、第１グループのビットは、第１ＤＭＡチャンネルにより、導線の選択を制御する回路に接続されている入力/出力ポートに対応する１又は複数のレジスタの第１部分に転送される。同時に、第２グループのビットは、電極構成を制御する回路に接続されている入力/出力ポートに対応する１又は複数のレジスタの第２部分へ、第１ＤＭＡチャンネルにより転送される。
【００１２】
実施例によれば、埋め込み型刺激システムは、また、中央処理装置（ＣＰＵ）を含んでいる。ＣＰＵは、１又は複数の導線を介して伝達される神経刺激信号を規定する神経刺激データを受領し、又はアクセスする。神経刺激データにもとづき、ＣＰＵは、メモリに保存される第１テーブルと第２テーブルを生成する。ＣＰＵが第１テーブルと第２テーブルを生成した後、ＤＭＡコントローラーは、ＣＰＵの干渉なしにある期間（例えば、０.５秒または１秒）刺激イベントを制御し、これによりＣＰＵが刺激イベントを行うことと関連しない他のタスクを実行したり、及び/又は、ある期間の間、低電力モードに入ることを可能とする。
【００１３】
実施例によれば、ＣＰＵは、神経刺激データにもとづき潜在的パルス衝突を特定し、そして、ＣＰＵは、ＤＭＡコントローラーが第１テーブルと第２テーブルに従ってある期間刺激イベントを制御するときに、特定された潜在的パルスの衝突が避けられるように、第１テーブルと第２テーブルを生成する。
【００１４】
実施例によれば、埋め込み型刺激システムは、第１クロック回路と第２クロック回路とを含み、第２クロック回路は、第１クロック回路よりも高周波のクロック信号を発生し、第１クロック回路よりも多くの電力を消費する。第１クロック回路により発生されたクロック信号は、例えば、カウントレジスタ（タイマーの）により、カウント値をインクリメントするために用いられる。第２クロック回路により発生された高周波クロック信号は、ＣＰＵが低電力モードにないときにＣＰＵにより用いられ、及び/又は、カウントレジスタによりカウント値をインクリメントするために用いてもよい。実施例によれば、電力を節約するために、より低い電力の第２クロック回路により発生したクロック信号がカウントレジスタをインクリメントするために用いられると、ＣＰＵが低電力モードにあるとき、第１クロック回路は少なくとも部分的に不作動状態にある。
【００１５】
実施例によれば、ＣＰＵにより受領されまたはアクセスされた神経刺激データにもとづき、ＣＰＵは、第１クロック回路により発生されたクロック信号が、カウントレジスタ（タイマーの）がカウント値をインクリメントするために使用するクロック信号として充分な分解能（resolution）を有しているかどうか、または、第２クロック回路に発生されたクロック信号が、カウントレジスタがカウント値をインクリメントするために用いるクロック信号として用いられる必要があるかを決定する。第１クロック回路により発生されたクロック信号が、充分な分解能を有していれば、第１クロック回路により発生されたクロック信号が用いられ、第２クロック回路は少なくとも部分的に不作動の状態となる。一方、第２クロック回路により発生された高周波のクロック信号を用いることが必要なときは、第２クロック回路により発生されたクロック信号が用いられ、低周波の第１クロック回路は少なくとも部分的に不作動の状態となる。さらに、ＣＰＵにより発生された第１テーブルと第２テーブルは、第１周波数を有するクロック信号と第２周波数を有するクロック信号のどちらがカウントレジスタをインクリメントするために用いられているかに従って生成される。
【００１６】
この要旨は、本発明の実施例の全てを要約することを意図するものではない。さらなるまた他の実施例、そして、本発明の実施例の特徴、アスペクト、及び利点は、以下に記載する詳細な説明、図面およびクレーム（特許請求の範囲）によりより明らかとなる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例の神経刺激システムの一例を示す。
【図２】図１に示された埋め込み型神経刺激装置（INS）の電子回路の高レベルのブロック図である。
【図３】神経刺激を制御するために用いられる、図２に示されたマイクロコントロラー（ＭＣＵ）の代表的な構成要素を示す。
【図４Ａ】図２で示された充電駆動回路と刺激駆動回路の代表的な詳細を示す。
【図４Ｂ】図２で示された充電駆動回路と刺激駆動回路の代表的な詳細を示す。
【図５】本発明において、図２で示されたＤＭＡコントローラーがどのように神経刺激信号を発生するために用いることができるかを示す。
【図６】本発明の実施例に用いて発生することができる代表的な神経刺激信号を示す。
【発明を実施するための形態】
【００１８】
本発明の実施例による神経刺激システムが図１に示されている。本実施例において、システム１１０は埋め込み型神経刺激装置（INS）１１２を含み、埋め込み型パルス発生器（IPG）と時折称されることもある。ＩＮＳ１１２は、典型的には、患者の体内の皮下ポケットに埋め込まれる。一または複数の導線１１４は、ＩＮＳ１１２に接続されており、各導線には一つまたは複数の電極１１６を有している。例えば、４本の導線１１４がＩＮＳ１１２に接続されることができ、各導線には４個の電極１１６が含まれている。あるいは、多くのまたは少ない電極付きの、多くのまたは少ない本数の導線を使用してもよい。ＩＮＳ１１２は、ハウジング１１３（ケースまたはカンと称することがある）内に収容された電子回路１１８を備えている。電極１１６は、ＩＮＳ１１２のコネクタ１２０に導線１１４を接続することにより、電子回路１１８に電気的に接続されている。これに限定するものではなく、一つまたは複数の導線１１４は、電極が背根または背根の神経節の上または近傍に配置されるように位置決めすることができる。このような刺激に関するさらなる詳細は、米国特許番号７,４５０,９９３, 発明の名称「神経節への選択的刺激法」や、米国特許出願番号１２/６０７,００９, 発明の名称「医学的条件に対する選択的刺激システムと信号パラメータ」に提供されており、いずれも本書に含まれる。
【００１９】
電子回路１１８は、電気的に刺激信号（神経刺激信号、神経刺激波形、また単に刺激信号と呼ぶことがある）を発生させ、少なくとも電極の１つは陽極に接続されており、少なくとも電極の一つは陰極に接続されている、少なくとも２つの電極１１６を介して神経組織へ提供するために用いることができる。ＩＮＳ１１２のハウジング１１３は、電導性であり、電極として作動することができる。外部のプログラマー１２２又は１２６は、様々な刺激パラメータ及び/又は電子回路１１８への他の指示をプログラムするために使用することができる。プログラマーには、プロセッサー（または他のタイプのコントローラー）、および一つまたは複数のコードモジュールを保存することができるメモリが含まれる。プロセッサーまたは他のコントローラーは、プログラムのプロトコル中の患者からのフィードバックにもとづき、ＩＮＳ１１２のプログラミングを行うために、一つまたは複数のコードモジュールを実行することができる。例えば、外部のプログラマー１２２又は１２６は、特定の神経刺激パラメータをテストしたり、あるパラメータを調整したり、及び/又は、慢性的な痛みの処置のためにＩＮＳで用いられるパラメータをプログラムするために、ＩＮＳ１１２に指示を伝達することができる。外部のプログラマー１２２又は１２６は、ラジオ周波数または他のワイヤレス信号により電子回路１１８と通信できる遠隔測定装置を保有していてもよい（または結合されていても良い）。遠隔測定装置がプログラマーの内部又は結合されているかにかかわらず、プログラマーは遠隔測定回路を含んでいても良い。ＩＮＳ１１２には、同様に、ＩＮＳのメモリに保存されたコードモジュールを実行することができるプロセッサー（または他のタイプのコントローラー）を含んでいてもよい。
【００２０】
一般に二つのタイプのプログラマーがあるが、いずれもＩＮＳ１１２とワイヤレスで通信及び操作可能である。ブロック１２２で表示されたプログラマーは、「臨床医プログラマー」としばしば言及されることがあるが、ＩＮＳの製造メーカの代表者、臨床医、内科医及び/又は医療関係者（これらを総称して「プログラミング関係者」と称する）によって使用することができる。ブロック１２６は、他のタイプのプログラマーを表示しており、ＩＮＳ１１２が埋め込まれた患者により主に制御されるものであり、「患者プログラマー」としばしば言及される。
【００２１】
神経刺激（単に刺激と称することがある）を特定の導線を使用してどのように伝達されるかを規定する刺激パラメータのセットは、このセットが導線を介して患者に伝達される刺激療法を決めることになることから「導線セット」と称することができる。一つ又は複数の導線セットが、刺激パラメータのセットのグループにともにグループ化され、これを「シミュレーションセット」と称することができる。刺激パラメータの一つのセット（すなわち、導線セット）は、患者の体内患部に処置を施すために有益であり、刺激パラメータの第２のセット（すなわち、第２の導線セット）は、体内の第２の位置における条件を処置するときに有益である。もしこれらの導線セットが同じ刺激セットにグループ化されている場合、その刺激セットが選択されていると、体内の第１の位置と第２の位置に刺激が伝達される。同じ刺激セットにグループ化された一つ以上の導線セットが、体の共通の位置に処置を施すことができるようにすることも可能である。
【００２２】
各導線セットのデータには、導線情報、電極構成情報および刺激波形情報が含まれる。より詳細に実施例では、各導線セットは、導線の一つ、導線の複数の電極（例えば、４電極）がどのように構成（すなわち、陽極、陰極または不活性電極）を特定し、また、その導線を用いて伝達される刺激波形の大きさ、パルス幅および繰返比率を特定する。実施例では、各刺激セット用のデータは、一つまたは複数の導線セット（例えば、４つの導線セットまで）のどのセットが、刺激セットに含まれるかを特定する。例えば、１２個の導線セット（すなわち、導線セット１、導線セット２、…導線セット１２）があるとき、１つの刺激セットは導線セット２、導線セット５、導線セット７および導線セット１１を含むことができる。その刺激セットが選択され/活性化されている期間の間、刺激は４つのすべての導線（その時間内に刺激が複数の導線の一つを通じてのみ伝達されてもよいが）を用いて伝達される。一つ以上の導線セットが同じ導線（すなわち、同じ導線情報を有することができる）を特定することができ、また、異なる電極構成情報及び/又は異なる刺激波形情報を有することができる。例えば、導線セット１、導線セット２および導線セット３は、同じ導線を用いて刺激が伝達される異なる方法を明記することができる。いくつかの実施例では、同じ導線を特定する二つの導線セットが同じ刺激セットにグループ化することはできない。
【００２３】
実施例によれば、外部プログラマー（例えば、臨床医プログラマー１２２）は、ワイヤレスで複数の導線セット（例えば、１２導線セットまで）用の情報と刺激セット（例えば、４つの刺激セットまで）用の情報をＩＮＳ１１２に送信する。一つまたは複数の導線セット用のデータは、導線セットデータと称することがあり、また、一つまたは複数の刺激セット用のデータは、神経セットデータと称することがある。より一般的に、外部プログラマーからＩＮＳ１１２に伝達されるデータは、ＩＮＳにより用いられ刺激信号を発生するが、神経刺激データと称することがある。そのような神経刺激データは、導線セットデータと神経セットデータを含むことができるが、これに限定するものではない。いいかえれば、上記に説明した以外の方法により、ＩＮＳに伝達される神経刺激に関する情報をまとめることが可能であり、そのような他の方法により、神経刺激データを発生して用いることができ、これらのものは本発明の範囲に含まれるものである。それにもかかわらず、この説明の残りの部分では、外部プログラマー１２２または１２６が、複数の導線セット（例えば、１２導線セットまで）と複数の刺激セット（例えば、４つの刺激セットまで）をＩＮＳ１１２へプログラムするために用いられるものとする。
【００２４】
ＩＮＳ１１２が、導線セットデータと刺激セットデータを外部プログラマーから受領すると、ＩＮＳ１１２は、不揮発性メモリ（例えば、フラッシュ）（これに限定するものではないが）のようなメモリ（例えば、３２０）の一部に導線セットデータと刺激セットデータを保存する。また、メモリ（例えば、３２０）には、どの刺激セットが現在、活性化／選択されているかを示す、電流刺激セットのパラメータが保存される。ＩＮＳ１１２により神経刺激信号を生成するために使用される神経刺激データ（例えば、導線セットデータや刺激セットデータ）がどのようにＩＮＳ１１２に保存されるかに関する詳細は、以下の通り提供される。
【００２５】
電子回路１１８（Electronic Circuitry １１８）
図２は、本発明の実施例において、ＩＮＳ１１２の電子回路１１８の詳細を示すために用いられる。図２において、ＩＮＳ１１２には、マイクロコントローラーユニット（ＭＣＵ）２１０、電力管理回路２２０、充電駆動回路２３０、刺激駆動回路２４０、測定回路２５０および遠隔測定回路２６０が含まれている。ＭＣＵ２１０は、中央処理装置（ＣＰＵ）を含んでいるが、例えば、以下、図３と図４にてさらなる詳細が記載されているように、ＩＮＳの多くの機能を制御することができる。
【００２６】
電力管理回路２２０は、バッテリー２２２に接続するように図示されており、様々な他の回路に電力を供給するため、適切な電圧及び/又は電流レベルを発生するように用いられる。従って、電力管理回路２２０は、これに限定されるのではないが、昇圧形及び/又は降圧形コンバータのような、ＤＣ−ＤＣ変換器（DC-DCコンバータ）を含むことができる。さらに、またはその代わりに、電力管理回路２２０は、他のタイプの電圧発生器を含むことができる。電力管理回路２２０は、バッテリー２２２を交換したり再充電が必要となったときに、患者及び/又は医療関係者に知らせるため、バッテリー２２２の残量バッテリー寿命をモニターすることもできる。
【００２７】
図１や図２に示されてはいないが、ＩＮＳ１１２は、患者の組織に刺激を伝えるために用いられる治療出力コンデンサに保存されている充電を維持、調整及び/又は制御するための制御コンデンサを含むことができる。充電駆動回路２３０は、そのような制御コンデンサを含むことができ、また充電するために用いることができる。充電駆動回路２３０は、また、適切な充電に維持、及び/又は、必要に応じて変化されることを確保するために、治療出力コンデンサに保存されている電圧をサンプリングするために用いることができる。充電駆動回路２３０の代表的なものの詳細が、図４Ａに図示されており、記載されている。
【００２８】
刺激駆動回路２４０は、一つまたは複数の導線１１４に電気的に接続されているように図示されており、各導線は少なくとも２つの電極１１６が含んでいる。これからの説明では、他に述べられていない限り、埋込型システム１１０は、４本の導線を有し、各導線は４つの電極を含んでいる。しかしながら、本発明の範囲内において、多くのまたは少ない導線、また多くのまたは少ない電極も可能である。刺激駆動回路２４０では、特定の導線を選択し、選択された導線の電極を構成することができる。刺激駆動回路２４０の代表的なものの詳細は、図４Ｂに図示されており、記載されている。
【００２９】
遠隔測定回路２５０は、例えば、導線のインピーダンス、導線の出力電流、導線の出力電圧、バッテリーの電圧、バッテリーの電流、これらに限定されるものではないが、を測定するために用いられることができる。
【００３０】
遠隔測定回路２６０は、アンテナ２６２は、例えば同軸ケーブル又は他の通信線により電気的に接続された無線周波数（RF）送受信機であってもよい。遠隔測定回路２６０は、臨床医プログラマー及び/又は患者プログラマー（例えば、１２２及び/又は１２６）の遠隔送受信機との間でアンテナ２６２を介して信号を送受信するための周知の回路を含むことができる。
【００３１】
以下にさらに詳細が記載されているとおり、電子回路１１８は、神経刺激信号を発生させ、また、選択された導線の選択された電極に刺激エネルギを結びつけるために、スイッチ（電子回路１１８のスイッチ）を制御することができる。刺激パルスは、メモリ（例えば、図３のメモリ３２０）に保存された神経刺激データにより特定されたパラメータに従って発生される。上述したように、特定することができる代表的なプログラム可能なパラメータは、神経刺激用波形（神経刺激信号としても知られている）のための、パルスの大きさ、パルス幅およびパルス比率（繰返比率や周波数としても知られている）を含んでいる。さらに、電子回路１１８は、刺激の伝達をおこなうための異なる電極構成を選択するために、スイッチを制御することができる。
【００３２】
ＭＣＵ２１０
図３は、本発明の実施例で用いられるマイクロコントローラーユニット（ＭＣＵ）２１０の代表的な構成要素を図示しており、例えば、これに限定されるものではないが、患者の脊髄にまたはその近傍に、またはその部分に、伝達される刺激を制御し、また例えばこれに限定されるものではないが背根または背根神経節の刺激を制御する。図３を参照すると、ＭＣＵ２１０には、アドレスバス３１２とデータバス３１４に接続された中央処理装置（ＣＰＵ）３１０が含まれている。アドレスバス３１２は、２４ビットバスとできるが、これに限定されるものではない。データバスは、１６ビットバスとできるが、これに限定されるものではない。また、アドレスバス３１２とデータバス３１４に接続されているのが、メモリ３２０、ダイレクトメモリアクセス（ＤＭＡ）コントローラー３３０、タイマー３４０、及び入力/出力（Ｉ／Ｏ）ポート３５０である。ＤＭＡコントローラーは、しばしばデータ転送コントローラーと称されることがある。また、図３で示されるように、ＣＰＵ３１０やＭＣＵの他の構成要素、及び/又は電子回路１１８の他の構成要素に提供される異なる周波数を有するクロック信号を発生させることができるクロックシステムが３６０設けられている。さらに、電力制御器３７０は、ＣＰＵ３１０が低出力モードに入るときに制御を行い、及び/又は、クロックシステム３６０のある部分を（電力を節約するために）少なくとも部分的にいつどのように不作動にするかを制御することができる。電力制御器３７０は、電力管理モジュール（PMM）とも称されることがある。
【００３３】
メモリ３２０は、これらに限定するものではないが、ＲＡＭ、ＲＯＭ、ＮＶＲＡＭ、ＥＥＰＲＯＭ、フラッシュメモリ等を含む揮発性及び/又は不揮発性メモリでよい。図５に示すとおり、メモリ３２０は、多数のテーブルのデータを保存することができる。このようなテーブルは、例えば、コードモジュールに保存された指示にもとづき、また外部プログラマーから受領した神経刺激データにもとづき、ＣＰＵ３１０により作成される。さらに、図５に示されるように、テーブルがＣＰＵ３１０により作成され、メモリ３２０に保存された後は、ＤＭＡコントローラー３３０が、ＣＰＵ３１０の干渉なしに、あったとしても極めて少なく、テーブルからタイマー３４０や入力/出力ポート３５０の１つにデータを転送することができる。
【００３４】
図２で示されるすべての構成要素を１つのＭＣＵ内に有する長所は、このようなすべての要素が単一の集積回路（IC）チップによりまかなうことができる点にある。それにもかかわらず、図３で示された構成要素のすべてまたはある部分がＭＣＵチップに配置されていないものであっても、本発明の範囲内のものである。例えば、ＣＰＵ３１０が一つのチップに備えられ、ＤＭＡコントローラー３４０が他のチップに備えられてもよい。
【００３５】
本発明の特定の実施例によれば、少なくともいくつかの入力/出力(Ｉ／Ｏ)ポート３５０は、出力ポート（入力ポートに相対する）と構成されており、刺激制御のために使用されており、これらのポートは、刺激制御ポート３５０と称されることもできる。このような実施例では、一つまたは多くのレジスタ、またはその部分は、Ｉ／Ｏポートと関連づけられ、Ｉ／Ｏポートに接続された回路を制御するために使用されるビット（すなわち、高または低ロジックレベルのビット）を保存する。Ｉ／Ｏポートに接続されることができる（これにより、ポートに書かれるビットにより制御される）回路の例には、充電制御駆動回路２３０や刺激駆動回路２４０が含まれても良いが、これらに限定するものではない。
【００３６】
上記に説明した通り、クロックシステム３６０は、ＣＰＵ３１０やＭＣＵ２１０の他の構成要素に提供される、異なる周波数を有するクロック信号を発生する。例えば、クロックシステム３６０は、比較的高い周波数（例えば、１００kHz）のクロック信号を発生するメインクロック回路３６２を有している。クロックシステム３６０は、比較的低い周波数（例えば、３２.７６８kHz）のクロック信号を発生する副クロック回路３６４を有しており、これによりメインクロック回路３６２よりも少ない電力を消費する。メインクロック回路により発生した高周波数のクロック信号は、例えば、ＣＰＵができるだけ速く演算される処理を実行しているときに、ＣＰＵ３１０により使用されている。電力を節約するため、メインクロック回路３６２は、適当なときは少なくとも部分的に不作動とされ、一方、副クロック回路３６４により発生された低周波数のクロック信号が、例えば、時間を維持するためのタスクや、低周波数のクロック信号の使用が性能をそこなわないタスクを行うために用いられている。電力を節約するために、低周波数のクロック信号が必要とされないときは、副クロック回路３６４を少なくとも部分的に無不作動にしておくことも可能である。電力制御器３７０は、電力管理モジュール（PMM）と称されることがあるが、クロック回路の部分的な不作動を制御することができる。
【００３７】
メモリ３２０、ＤＭＡコントローラー３３０、タイマー３４０および刺激制御ポート３５０についてのさらなる詳細は、図５に記載されている。しかしながら、本実施例における充電駆動回路２３０、刺激制御回路２４０については、先に図４Ａと図４Ｂにもとづいて記述されている。
【００３８】
充電駆動２３０（Charge Engine ２３０）
充電駆動回路２３０（単に充電駆動と称することもある）の代表的な例の詳細は、図４Ａに記載されている。図４Ａにおいて、充電駆動は、複数（本実施例では、４個）のデジタル−アナログ変換器（ＤＡＣｓ）４１４を含んで示され、各デジタル−アナログ変換器（ＤＡＣｓ）は対応するレジスタ４１２により駆動される。実施例では、レジスタ４１２の各々は、導線を介して伝達するための二相性パルスの各フェーズの大きさを規定するために使用されるデジタル振幅値を保存する。二相性パルスの例は、図６に示されている。
【００３９】
レジスタ４１２に保存されるデジタル振幅値は、臨床医プログラマー１２２により特定される導線セット情報により規定することができ、患者プログラマー１２６とのユーザインターフェース（例えば、アップ/ダウン・ボタン等）を用いて後で調整することができる。以下に説明するとおり、例えば、刺激セットが活性化/選択されること（例えば、メモリに保存された電流刺激セットのパラメータによる特定）にもとづき、ＣＰＵ３１０は振幅値を振幅レジスタ４１２に書き込む。
【００４０】
図４Ａにおいて、Ｌ１振幅レジスタ４１２、Ｃｏｎｔ．ＤＡＣ１ ４１４および対応するサンプルホールド（S/H）回路４１６は、第１の充電制御チャンネルと考えることができる。したがって、図４Ａでは、導線Ｌ１,Ｌ２,Ｌ３およびＬ４の４つの充電制御チャンネルが図示されている。
【００４１】
使用可能になると、各ＤＡＣ４１４は、対応するレジスタ４１２によりＤＡＣの入力に提供されるデジタル値に比例するアナログ出力電圧を発生させる。各ＤＡＣの出力には、ＤＡＣを下流にある回路と隔離させるためのバッファー４１６が配置されている。充電制御ビットのサンプルビットが活性のとき、サンプルスイッチ（S/H回路４１６の）が閉じており、制御コンデンサ４１８は充電され、対応するＤＡＣ４１４の出力に従った電圧を保存するようになる。
【００４２】
充電駆動回路２３０は、また、導線Ｌ１,Ｌ２,Ｌ３およびＬ４の各々のための治療出力コンデンサ４３０を含むように示されている。さらに以下に詳細を説明するように、各治療出力コンデンサ４３０に保存された電圧は、導線用２相シミュレーションパルスを生じさせることに用いることができる。
【００４３】
充電駆動回路２３０は、また、制御コンデンサ４１８の一つに保存された電圧と、対応する治療出力コンデンサ４３０の一つに保存されている電圧とを選択的に比較する比較器４２０を含むように示されている。比較器４２０の出力は、閉じると治療出力コンデンサ４３０への充電を増加させ、開くと治療出力コンデンサ４３０からゆっくりと放電が行われるスイッチ（Ｓ_charge）を制御するために用いられる。図４Ａに示された電圧発生器４４０は、電力管理回路２２０の一部を構成するものと考えることができる。
【００４４】
レジスタ４１２は、図３に示されるアドレスバス３１２とデータバス３１４に接続することができ、これにより、ＣＰＵがレジスタ４１２に書き込むことができるようになっている。これに代えて、レジスタ４１２は、レジスタとＣＰＵの間に接続されるシリアルバスを用いて書き込まれてもよい。レジスタ４１２に保存されているデジタル振幅値は、ユーザインターフェース、例えば、上述したように、臨床医プログラマー１２２または患者プログラマー１２６のアップ/ダウン・ボタン等を介して変更することもできる。このようなユーザインターフェースはユーザにより制御されるものであり、プログラマーは無線で指示をＩＮＳ１１２に送り、レジスタ４１２にある値を増加させたり、減少させたりすることができる。実施例では、一つまたは複数の充電制御ビットが、ＣＰＵがレジスタ４１２に保存されているデジタル振幅値を変更させる割り込みを生じさせることができる。
【００４５】
刺激駆動回路２４０ （Stimulation Engine ２４０）
刺激駆動回路２４０（単に刺激駆動と称することがある）の詳細は、図４Ｂを参照して説明する。図４Ｂにおいて、刺激駆動２４０は、刺激イベントデータの電極構成ビット（例えば、８ビット）により制御される電極スイッチＳＥＬ１−ＳＥＬ８を含むように示されている。図４Ｂの右下側のコーナーに、刺激イベントデータの導線選択ビット（例えば、４ビット）により制御される各導線（それぞれの導線が選択されるか否かを制御することに用いられる）のための４つの一群のスイッチを含むように示されている。実施例では、刺激信号の刺激パルスを発生させるために、導線Ｌ１,Ｌ２,Ｌ３およびＬ４のいずれかが（導線選択ビットを用いて）選択され、少なくとも電極の一つはスイッチＳＥＬ１−ＳＥＬ４を用いて治療出力コンデンサ４３０の一つに接続することで陽極として構成され、少なくとも電極の一つはスイッチＳＥＬ５−ＳＥＬ８を用いて陰極VEと接続することで陰極として構成される。
【００４６】
以下の説明から明らかなとおり、ＤＭＡ制御された神経刺激に関連する本発明の多くの実施例が、充電駆動２３０や刺激駆動２４０の機能を果たす代替回路を用いて実施することができる。いいかえれば、ＤＭＡ制御された神経刺激に関連する本発明の実施例は、図４Ａと図４Ｂに示された回路に限定されるものではない。
【００４７】
ＤＭＡ制御された神経刺激（ＤＭＡ Controlled Neurostimulation）
上記で説明したとおり、特定の実施例においては、ＩＮＳ１１２には複数(例えば、１２まで)の導線セットと複数（例えば、４つまで）の刺激セットをメモリ（例えば、３２０）に保存することができる。各導線セットは、複数（例えば、４つ）の導線の一つと関連付けることができ、どの導線を作動可能にするかどうか、導線（導線が作動可能とされたとき）の４つの電極のうちのどの電極をどのように構成（すなわち、陽極として、陰極として、または不活性）するか、また導線を介して伝達される刺激の振幅値、パルス幅および繰り返し比率をどのように設定するかを特定することができる。各刺激セットは、一つ以上の導線セットが同一期間（例えば、それらは、ある期間多重送信されている）に活性化されるように、複数（例えば、４つまで）の導線セットをグループ化できる。また、刺激セットが現在、活性化/選択されているかを特定する電流刺激セットのパラメータがメモリに保存されていてもよい。
【００４８】
本実施例によれば、メモリ３２０（例えば、フラッシュ）に保存された導線セットデータと刺激セットデータ（より一般的には、神経刺激データ）は、ＩＮＳ１１２のＭＣＵ２１０のＣＰＵ３１０によりアクセスされる。どの刺激セットが活性化/選択されたかにもとづき（現在の刺激セットパラメータにより特定される）、ＣＰＵ３１０は刺激イベントデータと次の刺激イベントタイムデータを生成して保存する。これらは、メモリ３２０（例えば、RAM）の中に二つの参照テーブル(LUTs）として保存される。このようなLUTの例は、図５の５２２、５２４と表示されたものである。実施例によれば、異なる刺激セットが（例えば、外部のプログラマーを介して）活性化/選択される毎に、新しく活性化/選択された刺激セットに対応するために２つの参照テーブルが再作成される。刺激セットが活性化/選択されることにもとづき（例えば、電流刺激セットのパラメータで特定される）、ＣＰＵ３１０も振幅値を振幅値レジスタ４１２（図４Ａを参照）に書き込むことができる。
【００４９】
本発明の実施例において、ＤＭＡコントローラー３３０がどのように神経刺激信号を発生させているかの詳細について説明する。図５の模式図において、メモリ３２０は、刺激イベントデータを保存するメモリ５２２の一部と、次の刺激イベントタイムデータを保存するメモリ５２４の一部を含んでいる。メモリ５２２の部分に保存されている刺激イベントデータは、Ｎ刺激イベントを定義するために使うことができる。実施例によれば、Ｎ刺激イベントのそれぞれは、導線選択ビット（例えば、４ビット）、電極構成ビット（例えば、８ビット）および充電制御ビット（例えば、４ビット）により規定される。したがって、例えば、各刺激イベントは２バイト（すなわち、４＋８＋４＝１６ビット＝２バイト）により規定されるため、メモリ５２２の部分に保存されている刺激イベントデータは２＊Ｎバイトのデータとなる。メモリ５２４の部分に保存されている次の刺激イベントタイムデータは、Ｎ刺激イベントのタイミングを規定するために用いられ、例えば、次の刺激イベントタイミングデータは１６ビット（すなわち、２バイト）により規定される。このため、例えば、メモリ５２４の部分に保存されている次の刺激イベントタイムデータは、２＊Ｎバイトのデータとなる。刺激イベントデータのさらなる詳細は、導線選択ビット、電極構成ビットおよび充電制御ビットを含めて、以下で説明する。
【００５０】
刺激イベントデータを保存するメモリ５２２の部分は、第１テーブル、例えば、データブロックをそれぞれ有する複数のＮ刺激イベントエントリーを含む参照テーブル（LUT）とすることができる。同様に、次の刺激イベントタイムデータを保存するメモリ５２４の部分は、第２テーブル、例えば、データブロックをそれぞれ有するＮの次の刺激イベントタイムエントリーを含む第２参照テーブルとすることができる。
【００５１】
ＤＭＡコントローラー３３０は、ＤＭＡチャンネル５３２（刺激イベントＤＭＡチャンネルと称されることがある）とＤＭＡチャンネル５３４（次の刺激イベントタイムＤＭＡチャンネルと称されることがある）を含む、少なくとも２つのＤＭＡチャンネルを含んでいる。各ＤＭＡチャンネルは、ＣＰＵ３１０がコピー/転送を担うときは、ＣＰＵ３１０に過剰な負担をかけないように、メモリのブロックをある場所から他の場所へコピー（転送）するために用いられる。
【００５２】
タイマー３４０は、タイマーカウントレジスタ５４２と２つのタイマー比較レジスタ５４４、５４６（取り込み比較レジスタとしても知られている）を含むように図示されている。タイマー比較レジスタ５４４は、刺激イベントをトリガーすることから、イベントタイマー比較レジスタと称されることがある。タイマー比較レジスタ５４６は、タイマーカウントレジスタ５４２をリセットすることから、リセットタイマー比較レジスタと称されることがある。タイマーカウントレジスタ５４２は、クロック（CLK）信号を受信し、クロック信号１サイクル毎にインクリメントされる。タイマーカウントレジスタ５４２の内容は、イベントタイマー比較レジスタ５４４の内容、及び、リセットタイマー比較レジスタ５４６の内容と比較される。本発明の実施例によれば、タイマーカウントレジスタ５４２の内容とイベントタイマー比較レジスタ５４４の内容が等しいときは、タイマー３４０はＤＭＡチャンネル５３２、５３４（破線５４７、５４８で表示される）をトリガーさせる。あるいは、タイマー３４０は、タイマーカウントレジスタ５４２の内容とイベントタイマー比較レジスタ５４４の内容が等しいとき（破線５４７で示される）、ＤＭＡチャンネル５３２をトリガーすることができ、ＤＭＡチャンネル５３２（転送開始次第、又は、転送完了次第）は、ＤＭＡチャンネル５３４をトリガーすることができる。
【００５３】
本発明の実施例によれば、タイマーカウントレジスタ５４２の内容とリセットタイマー比較レジスタ５４４の内容が等しいときは、タイマーカウントレジスタ５４２は、破線５４９で示されるように、ゼロ（または、他の設定値）にリセットされる。実施例によれば、タイマーカウントレジスタ５４２がリセットされると、割り込みがＣＰＵ３１０に送信される。他の実施例では、ＤＭＡチャンネル５３２が、刺激イベントデータを保存するメモリ５２２の最後のブロックデータを転送すると、タイマーカウントレジスタ５４２はゼロ（または、他の設定値）にリセットされ、割り込みがＣＰＵ３１０に送信される。
【００５４】
ＤＭＡチャンネル５３２は、トリガーされると、メモリ５２２の部分（刺激イベントデータを保存）からメモリのブロックを刺激コントロールポート３５０と関連するレジスタに移転（コピー）する。ＤＭＡチャンネル５３２と関連するポインターは、ＤＭＡチャンネル５３２がトリガーされるたびにインクリメントされ、次にＤＭＡチャンネル３３２がトリガーされると、刺激イベントデータの次のブロックが刺激コントロールポート３５０に関連するレジスタに転送される。ポインターは、刺激イベントを規定するために用いられるデータの量だけインクリメントされるが、この例では２バイトとなっている。ポインターが、メモリ５２２（例えば、図５の刺激イベントＮ-１）を示した後、ポインターは、メモリ５２２（すなわち、図５の刺激イベント０）の最初のブロックを再び示すようにリセットされる。
【００５５】
刺激イベントデータの各ブロックは、一つまたは複数の刺激イベントを規定するために用いられる。ここで用いられる刺激イベントは、ある時点において発生するようにコントロールされる回路の状態の変更をいう。例えば、刺激イベントは、複数の導線からどの導線を選択するか、選択された導線のどの電極を陽極と接続させるか、選択された導線のどの電極を陰極と接続させるか、選択された導線のどの電極を不活性すなわち中立又はオフにするかを制御する回路の状態を変更することができる。他の例では、刺激イベントは、一つまたは複数の特定のコンデンサを充電したり放電させたりすることができる。実施及び特定の刺激イベントによるが、刺激イベントが開始すると、刺激イベントはそれ自身で休止してもよいし、次の刺激イベントが開始するときに終了してもよい。複数の刺激イベントは、例えば、導線が選択されると同時にその銅線の電極が構成されたときに、同時に開始することもできる。
【００５６】
トリガーされると、ＤＭＡチャンネル５３４が、メモリ５２４の部分（次の刺激イベントタイムデータを保存している）からタイマー３４０のイベントタイマー比較レジスタ５４４へ、メモリのブロックを転送（コピー）する。ＤＭＡチャンネル５３４と関連するポインターは、ＤＭＡチャンネル５３４がトリガーされるたびにインクリメントされ、次にＤＭＡチャンネル３３４がトリガーされると、次の刺激イベントタイムデータの次のブロックが転送される。ポインターは、次の刺激イベント時間を定めるために用いられるデータの量によりインクリメントされ、この例では２バイトである。ポインターが、メモリ５２４の最後のブロック（例えば、図５でタイム０）を示すと、ポインターは、メモリ５２４の最初のブロック（すなわち、図５でタイム１）を再び示すようにリセットされる。
【００５７】
メモリ５２４の部分（次の刺激イベントタイムデータを保存する）について言及すると、タイムN-１の値は、タイムN-２の値よりも大であり、・・・タイム４の値より大であり、タイム３の値より大であり、タイム２の値より大であり、タイム１の値より大である。したがって、ポインターがあるブロックから次のブロックに変化すると、タイマー比較レジスタの内容は、タイム０に到達するまで、増加するように維持される。この方法では、タイマー３４０が次のトリガー信号を発生する時間（タイマー比較レジスタ５４４に保存されている）が繰返しアップデートされる。他の実施例では、メモリ５２４の部分（例えば、テーブル５２４）は、次のイベントまでの時間の長さを示すデルタ・タイム値を保存することができ、新しい次の刺激イベントタイムデータ値がイベントタイム比較レジスタ５４４にＤＭＡコントローラー５３０によりコピーされるたびに、タイムカウントレジスタ５２２は、リセットされる（または、タイムカウントレジスタ５２２をリセットする代わりに、次の刺激イベントタイムデータ値がイベントタイム比較レジスタの値に追加されることができる）。
【００５８】
ＣＬＫ信号（タイマーカウントレジスタ５４２に提供される）が５０ｋHzクロック信号であり、５０,０００の値がリセットタイマー比較レジスタ５４６に保存されていると単純化する。この例では、タイマーカウントレジスタ５４２は、１秒間に０から５０,０００（２進法ビットで００００００００００００００００から２進法ビットで１１１１０１００００１００１０００００）をカウントし、その終わりにくるとタイマーカウントレジスタ５４２は０にリセットされ、１秒毎に０から５０,０００へのカウントを繰り返す。したがって、この例では、刺激イベントデータを保存するメモリ５２２の部分と、次の刺激イベントタイムデータを保存するメモリ５２４の部分は、１秒間に相当する刺激情報を保存する。この時間間隔は、タイマーリセットレジスタ５４６に保存されている値を変更すること、及び/又は、クロック信号の周波数を変更することにより、増減することが可能である。例えば、０.５秒間に相当する刺激情報は、刺激イベントデータを保存するメモリ５２２と、次の刺激イベントタイムデータを保存するメモリ５２４に保存することができ、５０,０００の値はタイマーリセットレジスタ５４６に保存することができ、１００ｋHzのクロック信号を、タイマーカウントレジスタ４５２をインクリメントするために用いることができる。これらは、リセットタイマー比較レジスタ５４６に保存することができる値やクロック周波数を単に例示したものにすぎなく、限定するために意味するものではない。この説明から認識されるように、リセットタイマー比較レジスタ５４６及び/又はクロック周波数に保存されている値を選択することにより、ほとんどのいかなる時間に相当するデータもメモリ５２２とメモリ５２４の部分に保存することができる。実施例では、各時間に相当する期間の終わり（例えば、１秒間に相当する終わり）でタイマーカウントレジスタ５４２を積極的にリセットするよりは、刺激イベントデータと次の刺激イベントタイムデータ（メモリ５２２と５２４に保存されている）がある期間に発生し、これにより各期間の終わりでタイマーカウントレジスタ５４２を最初のゼロ０に戻るようにすることができる。例えば、タイマーカウントレジスタが１６ビットカウンターであるとすると、タイマーカウントレジスタ５４２が、２進法ビット００００００００００００００００から２進法ビット１１１１１１１１１１１１１１１１（１０進法の６５５３５に対応する）をカウントすると、タイマーカウントレジスタ５４２の次の値は自動的に００００００００００００００００となる。タイムカウントレジスタに提供されるクロック信号を６５,５３５Hzと単純化して仮定すると、１６ビットタイマーカウントレジスタ５４２は、各１秒間に相当する時間の終わりで自動的にリセットされる。このような実施例では、ＣＰＵ３１０が各時間ごとにＤＭＡチャンネルを再開する必要がない。今後の説明では簡単にするために、ＣＬＫ信号は５０ｋHzのクロック信号であり、５０,０００の値がリセットタイマーレジスタ５４６に保存され、これにより、メモリ５２２と５２４の部分に保存される刺激情報は１秒間に相当する時間となる。
【００５９】
上記に説明したとおり、メモリ５２２と５２４の部分は、ある期間（例えば、１秒間）に相当する神経刺激信号を発生するように用いることができる。実施例によれば、神経刺激信号の時間は、繰り返し可能であり、神経刺激は所望された時間だけ、伝達することができる。いいかえれば、神経刺激の時間の長さ（例えば、１秒間）は、例えば、患者またはプログラムを行う人によりスイッチが切れるまで、異なる刺激セットが患者またはプログラムを行う人により選択され/または活性化されるまで、または、プログラム処置スケジュールにより変更されるまで、無期限に繰返すことができる。もしメモリ５２２と５２４が１秒間の刺激イベントを発生させるデータのブロックを保存しており、ＣＬＫ信号の周波数が整数のHzであれば、刺激イベントは、１秒間ごとに正確に繰り返されることができる。もしメモリ５２２と５２４が、０.５秒相当の刺激イベントを発生させるためのデータブロックを保存していれば、ＣＬＫ信号の周波数は、刺激イベントが正確に０.５秒相当の時間で繰り返すようにするために偶数のHzである必要がある。いいかえれば、ＣＬＫ周波数を選択するときに、メモリ５２２と５２４に保存されているデータに相当する時間を考慮しなければならない。
【００６０】
図５に示されるように、メモリ５２２に刺激イベントデータのブロックＮが保存されており、同様に、次の刺激イベントタイムデータのブロックＮは、メモリ５２４に保存されている。メモリ５２２にブロックＮを保存する順番は、刺激イベント０、刺激イベント１、刺激イベント２、刺激イベント３・・・刺激イベントN-２、最後のエントリがN-１となっており、メモリ５２４に保存されているブロックNの順番は、次の刺激イベントタイム１、次の刺激イベントタイム２、次の刺激イベントタイム３、次の刺激イベントタイム４・・・次の刺激イベントタイムN-１,最後のエントリは、次の刺激イベントタイム０となる。現在のイベントデータが転送されると（イベントトリガータイムは到達しているため）、このようにテーブルは記憶され、次のトリガータイムは、同時にまたはほぼ同時にイベントタイム比較器に読み込まれる。
【００６１】
一つのＤＭＡチャンネルは、データをある行先にのみ転送できることから、実施例では、２つのテーブルと２つのＤＭＡチャンネルが刺激イベントデータと次の刺激イベントタイミングデータの両者を転送できるようになっており、ＤＭＡチャンネルの一つは刺激イベントデータを入力/出力ポート３５０に転送するために用いられており、他のほうは次の刺激イベントタイミングデータをタイマー３４０のレジスタ５４４に転送するために用いられている。
【００６２】
要するに、実施例によれば、ＤＭＡコントローラー３３０は、LUT５２２、５２４にアクセスし、導線の選択、電極の構成および刺激信号波形を制御する。ＤＭＡチャンネル５３２は、刺激イベントデータLUT５２２からＭＣＵの入力/出力ポート３５０へ刺激イベントデータをコピーするために用いられ、ＤＭＡチャンネル５３４は、次の刺激イベントタイミングデータを、次のイベントタイミングデータLUT５２４からＭＣＵ２１０のタイマー３４０の比較レジスタ５４４へコピーするために用いられる。入力/出力ポート３５０へコピーされたデータは、スイッチの制御や、導線の選択、電極構成および波形増幅を制御する論理回路を制御するために使われる。このような回路の例は、図４Ａと図４Ｂに示されている。タイマー３４０の比較レジスタ５４４にコピーされたタイミングデータは、次の刺激イベントタイミングデータの次のブロックが、次の刺激イベントタイミングデータLUT５２４からタイマー３４０の比較レジスタ５４４にコピーされるタイミングと、刺激イベントデータの次のブロックが、刺激イベントデータLUT５２２からＭＣＵ２１０の入力/出力ポート３５０へコピーされるタイミングを制御するために用いられる。ソフトウエアポインターは、トリガーにもとづきインクリメントされ、ＤＭＡチャンネル５３２と５３４を用いてLUTのどのブロックをコピーするかを特定するために用いられる。上述した通り、刺激は、選択/活性化された刺激セットに対応するように伝達される。
【００６３】
実施例によれば、ＣＰＵ３１０は、パルス衝突が発生しないように（例えば、パルスは一つの導線を通じてのみ伝達されるように）、ＬＵＴ５２２、５２４を作成する。例えば、一つの導線を用いて伝達される刺激周波数（パルス繰返し比率とも称される）が４０Hzであり、他の導線を用いて伝達される刺激周波数が４２Hzとしたとき、両導線が、まったく同じ時間に刺激駆動回路２４０からパルスを受け取るときがある。刺激駆動回路２４０がある時間に一つのパルスを一つの導線にのみ伝達できることができるのであれば、ＣＰＵ３１０は、どの導線が最初のパルスを受け取るか、そしてどの導線が次のパルスを受け取るかを決定する必要があり、これにより、衝突を避けることになる。ＣＰＵ３１０は、事前に（例えば、デバイスがスイッチオンになっているか、または新しい刺激セットが活性化/選択されているか）決定しているので、ＣＰＵ３１０は、潜在的衝突がまさに発生するときに急いで（リアルタイムで）決定する必要はない。このことは、ＣＰＵ３１０が他のタスクをより速く処理できるようにし、著しく電力消費を減少させることができる。ＣＰＵ３１０は、パルスが各導線を介していつ伝達されるかを決定するために、ソフトウエアモデュールで定義されたスケジュールアルゴリズムを用いることができる。ある導線を用いて伝達される刺激周波数が４０Hzであり、他の導線を用いて伝達される刺激周波数が依然として４２Hzであるとした例を続けると、導線は依然１秒間に４０パルスと４２パルスをそれぞれ伝達し、あるパルスは衝突を避けるために、少し後方か前方へ移動するかもしれない。
【００６４】
ある期間（例えば、１秒間）に対応する衝突は、期間毎（例えば、次の１秒間）に繰り返す。従って、ある期間（例えば、１秒間）について衝突が処理される（避ける）と、ＣＰＵの処理に負担をかけることなくすべての繰り返しの期間に対して処理がなされる。
【００６５】
なお、ある刺激イベント（メモリ３２０に保存されている）は、コンデンサの充電、コンデンサ及び/又はこれに類するものに保存された充電のサンプリングを起こすことができる。このような充電及び/又は刺激イベントのサンプリングは、実際の刺激パルスを伝達するよりは、刺激波形の次の刺激パルスを伝達するための準備に用いられる。このような充電及び/又は刺激イベントのサンプリングがなされているとき、これらは充電コントロールビットを用いて制御されることができ、実際の刺激パルスの伝達間に生じることがあり、導線のいずれもが選択されない（すなわち、導線選択ビットがどの導線も選択されていない）こともありうる。また、このような充電及び/又は刺激イベントのサンプリングがなされているとき、どの電極も陽極として接続されておらず、また、どの電極も陰極として接続されていなくてもよい（例えば、すべての電極が中立、すなわち、不活性であってもよい）。他の特定の実施例では、刺激イベントデータテーブル５２２には、どの導線も選択されない４導線選択ビット（例えば、ビット００００）、全ての電極が陽極として接続されておらず、全ての電極が陰極として接続されていない８電極選択ビット（例えば、ビット００００００００）や、充電コントロールコンデンサ（例えば、図４Ａの４１８）によりサンプルされ、かつ、保持されるための充電を生じさせる４充電コントロールビット（例えば、００１０）を含んでいる。いいかえれば、刺激イベントは、あるレベルから他のレベルへ波形の転移を生じさせ、及び/又は、サンプリングを生じさせ、及び/又は、波形のレベルを他のレベルへ変化させるために用いられるコンデンサに保存される電荷を充電させる。
【００６６】
逆に、導線選択ビットと電極構成ビットが、実際の刺激パルスを患者の組織に伝えるために用いられるときは、充電コントロールビットが充電及び/又はサンプリングを引き起こさないことが可能となる。他の具体例では、刺激イベントデータテーブル５２２には、最初の導線（L１）が選択されている４導線選択ビット（例えば、ビット０００１）、導線のもっとも離れた電極を陽極として接続し、かつ、導線の最も近い電極を陰極として接続した（他の二つの中間の電極は中性となる）８電極選択ビット（例えば、ビット１０００００１１）と、充電及び/又はサンプリングがなされてない４充電コントロールビット（例えば、００００）を含むことができる。
【００６７】
上述したとおり、実施例によれば、各刺激イベントは、導線選択ビット（例えば、４ビット）、電極構成ビット（例えば、８ビット）および充電コントロールビット（例えば、４ビット）から規定される。例えば、図１で説明したとおり、脊髄刺激システムは、４つの埋め込み型導線を含み、各導線は４つの電極を含むことができる。導線選択ビットが、４つの導線のどれが刺激を伝達するために用いられるかを特定するために用いられている。ある実施例では、一つの導線のみが一度に刺激を伝達することができるようになっている。ある実施例では、ビット０００１が最初の導線（L１）を選択でき、ビット００１０が第２の導線（L２）を選択でき、ビット０１００が第３の導線（L３）を選択でき、および、ビット１０００が第４の導線（L４）を選択できるようになっている。他の実施例では、ビット０００１が最初の導線（L１）を選択でき、ビット００１０が第２の導線（L２）を選択でき、ビット００１１が第３の導線（L３）を選択でき、ビット０１００が第４の導線（L４）を選択できるようになっている。ここで記載された実施例では、刺激イベントデータに相当する２バイトの最初の４ビット（すなわち、４つの最も有効なビット（MSBｓ））は導線を選択するために用いられることが考えられるし、しかし、そのようなケース（すなわち、多かれ少なかれ、ビットが導線の選択に用いられたり、そのようなビットは、刺激イベントデータのブロックのMSBｓである必要はない）である必要はない。他の実施例では、３つの導線選択ビットが４つの導線のどの導線が刺激を伝達するために用いられているかを特定するために用いることができる。例えば、ビット００が第１の導線（L１）を選択でき、ビット０１が第２の導線（L２）を選択でき、ビット１０が第３の導線（L３）を選択でき、ビット１１が第４の導線（L４）を選択でき、第３のビットが導線を通電させるビットの役割を担う。たった一つの導線のみを同時に可能としたいのであれば、この後の実施例は同時に一つの導線以上を作動させることを不可能（瑕疵により）としている。他の変形例は、本発明の範囲内において可能である。
【００６８】
電極構成ビット（例えば、８ビット）は、どの電極を陽極（正極を有し）、陰極（負極を有し）、または中性の電極（電極は刺激エネルギを伝達するために使用されていない、すなわち、不活性の状態）とするかを特定するために用いることができる。各導線に４つの電極があると仮定すると、本実施例によれば、一組のビット（２ビット）が、各電極の構成を特定するために用いられている。例えば、８つの電極構成ビットの２最下位のビット（LSBｓ）が最も離れた電極の構成を特定するために用いられ、次の２つのLSBｓが次に最も離れた電極の構成を特定するために用いられており、次の２つのLSBｓが次に最も離れた電極の構成を特定するために用いられており、２最上位のビット（MSBｓ）が最も近い電極の構成を特定するために用いられる。ここで用いられている近いまたは遠いという文言は、導線が接続されているINS１１２に対してである。実施例では、一対の電極構成ビットの一つが電極が活性または中性であるかを特定するために用いられ、当該一対の電極構成ビットの他の一つは、活性化された電極が陽極かまたは陰極として接続されているかを特定するために用いられる。例えば、適当なビット位置のa１は電極が活性化していることを特定でき、a０は電極が中性（または、逆）であることを特定でき、適当なビット位置のa１は活性電極が陽極であることを特定でき、a０は活性電極が陰極（または、逆）であることを特定できる。他の実施例では、一対の電極構成ビットの一つは、電極が陽極として接続されているかどうかを特定するために用いられ、一対の電極構成ビットの他の一つは、電極が陰極として接続されているかどうかを特定するために用いられる。例えば、ビット１０は電極が陽極として接続されていることを特定でき、ビット０１は、電極が陰極として接続されていることを特定でき、ビット００は、電極が中性であることを特定できる。これらの説明は、電極構成ビットが導線用の電極構成を決めるためにどのように用いられるかを示すいくつかの実施例であり、これらに限定されるものではない。他の変形例は、本発明の範囲内で可能である。
【００６９】
実施例によれば、充電コントロールビットは、治療出力コンデンサに蓄えられた電荷を維持、調整及び/又は制御する制御コンデンサ（例えば、図４Ａの４１８）を充電したりサンプリングするために用いられ、治療出力コンデンサは刺激を患者の組織に伝達するために用いられる。制御コンデンサ（例えば、図４Ａの４１８）に保存された電荷は、複数のデジタル・アナログ変換器（ＤＡＣｓ）（例えば、図４Ａの４１４）を用いて発生される。実施例では、充電コントロールビット（例えば、４ビット）は、複数のＤＡＣｓを含むチップを選択的に作動させるワンビット（例えば、ＤＡＣチップが（CS）ビットを選択する）と、ＤＡＣｓを作動させるために用いられるワンビット（例えば、ＤＡＣ ENビット）と、ＤＡＣｓの出力をサンプル−ホールドするために用いられるスイッチを制御するワンビット（例えば、サンプルビット）と、治療出力コンデンサ（例えば、図４Ａの４３０）を適切に充電するために用いられるワンビット（例えば、充電ビット）が含まれている。他の変形例は、本発明の範囲内で可能である。
【００７０】
上述のとおり、トリガーされると、ＤＭＡチャンネル５３２は、刺激コントロールポート３５０と連動するレジスタへ刺激イベントデータを転送し、ＤＭＡチャンネル５３４は、次の刺激イベントタイムデータをタイマー比較レジスタ５４４に転送する。まさに説明したとおり、導線を選択したり、選択された導線の電極を構成したり、刺激出力の振幅を維持するために、刺激イベントデータが用いられる。
【００７１】
図５において、メモリ５２２、５２４（LUT）のデータを入力/出力ポート、レジスタ等にコピーするために、２つのＤＭＡチャンネル５３２、５３４が用いられるように図示されている。一つまたは複数の追加のＤＭＡチャンネルと、一つまたは複数の追加のメモリ（LUT）が他の機能をコントロールするために使用されるものも、本発明の範囲内である。例えば、第３のＤＭＡチャンネルが、保存された波形振幅値をメモリからＤＡＣｓ（と連動するレジスタ）の入力にコピーするために用いられてもよい。このような第３のＤＭＡチャンネルは、例えばイベントデータの各ブロック内にある充電コントロールビットによりトリガーされてもよい。他の変形例は、本発明の範囲内で可能である。
【００７２】
上記実施例によれば、マルチビットレジスタ、入力/出力ポート等（データはＤＭＡチャンネルにより転送される）にはデータビットのパラレルの転送を受け取るパラレル入力を含まれると解釈される。しかしながら、構成要素（ＤＭＡチャンネルがデータを転送する）がシリアルデータインプット（パラレルデータインプットに相対する）を有している例でも良い。そのような構成要素は、例えば、シリアルクロック入力（SCLK）とシリアルデータインプット（SDI）を有することができる。ＤＭＡチャンネルを用いて、そのような構成要素にデータを提供するとき、テーブルに保存されたデータの各ブロックには、ＤＭＡチャンネルによりシリアルクロック入力（例えば、a１ビットが低から高への変化を示し、a０ビットが高から低への変化を示す、又はその反対）に提供されるシリアルクロック変化を示すシリアルクロックビットと、シリアルクロック入力の低から高への変化（または、高から低への変化）のときにシリアルデータインプットに連続的に転送されるデータを示すデータビットとを含むことができる。例えば、構成要素が、シリアルクロック入力とシリアルデータインプットを含む１６ビットＤＡＣであることを考えると、テーブルは、ＤＡＣに連続的に転送される各１６ビットワード向けの３２セパレート２ビットブロックを含むことができる。
【００７３】
刺激信号波形例 （Exemplary Stimulation Waveform）
図６に、４本の導線の第１の導線（導線１またはL１）を介して伝達される刺激信号波形例が示されている。図６において、刺激信号波形は、イベントタイム０で、正の振幅値（amp１）を有している。実施例によれば、メモリ５２２、５２４にそれぞれ保存されている刺激イベントデータのブロックと次の刺激イベントタイムデータのブロックは、この波形の変化を定めるために用いられる。例えば、図４と図５を参照すると、イベントタイム０のデータは、イベントが生じる時を示しており、刺激イベント０のデータは、この時に何が生じるかを示している。より具体的には、刺激イベントデータ０には、導線L１（例えば、図５において、スイッチL１を閉じることにより）を選択する導線選択ビットと、導線L１の一つまたは複数の電極を陽極（例えば、図５のスイッチSEL１−SEL４の一つまたは複数のスイッチを閉じることにより）として構成し、導線L１の一つまたは複数の電極を陰極（図５のスイッチSEL５−SEL８の一つまたは複数のスイッチを閉じることにより）として構成する電極形成ビットとを含む。
【００７４】
図６をさらに参照すると、イベントタイム０とイベントタイム１の間は、イベントタイム０とイベントタイム１の間でコンデンサが放電するため多少の減衰を除き、概して正の振幅値（amp１）である。イベントタイム１にて、刺激イベント１のデータが正の振幅値からゼロに波形を変化させる。より具体的には、刺激イベント１のデータの電極構成ビットは、導線L１のすべての電極が不活性である（すなわち、陽極又は陰極として接続されていない）ことを示している。
【００７５】
図６をさらに参照すると、イベントタイム２において、波形は負の値(-amp１）に変位するように図示されている。特に、刺激イベント２のデータの導線選択ビットは、導線L１が選択されていることを特定でき、（刺激イベント０により）陽極として構成された電極が陰極として構成され、（刺激イベント０により）陰極として構成された電極が陽極として構成されることを特定している。いいかえれば、正の振幅値（amp１）をなすために用いられていた陽極/陰極構成を反転させることにより、負の振幅値（-amp１）が得られる。
【００７６】
イベントタイム２とイベントタイム３の間において、イベントタイム２とイベントタイム３の間でコンデンサが放電するための多少の減衰を除き、概して負の振幅値（-amp１）である。イベントタイム３にて、刺激イベント１のデータは、負の振幅値からゼロへ波形を変化させる。特に、刺激イベント３のデータの電極構成ビットが、導線L１のすべての電極が不活性（すなわち、接続されていない）であることを特定している。
【００７７】
イベントタイム３にて、波形はゼロに戻り、少なくともイベントタイム４までゼロのままである。刺激イベント３のデータは、導線L１がイベントタイム３で選択され、弛緩期間の開始となる。弛緩期間中は、電極構成ビット（刺激イベント３のデータにより形成）は、２相の刺激パルスを伝達するために用いられた導線L１の電極は、こらの電極に残る電荷を放電するためグラウンドに接続されている。さらに、イベントタイム３からイベントタイム４の間の弛緩期間は、導線L１用治療出力コンデンサは再充電されることができる。この再充電を行うために、刺激イベント３の導線選択ビットは導線L１を選択し、充電コントロールビットの充電ビットは活性化されなければならない。
【００７８】
図６をさらに参照すると、イベントタイム４は、弛緩期間の終わりを示している。図６に示される通り、導線L１を介して伝達される次の２相の刺激パルスは、イベントタイム４＋Xまで開始しない。イベントタイム４とイベントタイム４＋Xの間、メモリ５２２、５２４に保存されている刺激イベントデータと次の刺激イベントタイムデータに従い、一つまたは複数の導線（例えば、L２,L３及び/又はL４）を介して刺激パルスが伝達されることができる。さらに、及び/又は、この代わりに、イベントタイム４とイベントタイム４＋Xの間で、刺激イベントデータと次の刺激イベントタイムデータは、サンプルされている他の導線に対応する充電コントロールコンデンサ４１８を充電できるし、及び/又は、充電されている他の導線に対応する治療出力コンデンサ４３０を充電することができる。
【００７９】
クロック省電力の特徴（Clock Power Saving Features）
図３で説明したように、クロックシステム３６０は、ＭＣＵ２１０の構成要素と電子回路１１８の他の構成要素に提供される異なる周波数を有するクロック信号を発生する。例えば、クロックシステム３６０は、比較的高い周波数（例えば、１００ｋHz）のクロック信号を発生させるメインクロック回路３６２と、比較的低い周波数（例えば、３２.７６８ｋHz）のクロック信号を発生させる共に、メインクロック回路より電力を少なく消費する副クロック回路３６４が含まれている。メインクロック回路３６２により発生された高い周波数のクロック信号は、例えば、ＣＰＵができるだけ急いでタスクを処理するときに、ＣＰＵ３１０により用いられてもよい。
【００８０】
上記で説明したとおり、実施例では、ＣＰＵ３１０は、メモリ３２０に保存されている神経刺激データにアクセスし、そのときにどの刺激セットが活性化/選択されているかにもとづき、ＣＰＵ３１０は、刺激イベントデータや次の刺激イベントタイムデータを生成し、図５の２つのルックアップテーブルLUT（早見表）５２２、５２４として保存される。メモリ３２０に保存された神経刺激データは、これらは外部のプログラマーから受領されるが、上述したとおり、電極構成情報と刺激波形情報を含むことができる。刺激波形情報は、例えば、伝達される刺激波形の振幅、パルス幅、パルスの繰返し率を特定することができる。
【００８１】
図５に記載したとおり、タイマーカウントレジスタ５４２は、クロック（CLK）信号によりインクリメントされるが、イベントタイマー比較レジスタ５４４と比較され、ＤＭＡチャンネルの少なくとも一つがいつトリガーされるかを決定する。このクロック信号の周波数は、神経刺激信号の最小パルス幅の増加を特定することで達成され、小パルス幅の増加により高パルス幅の分解能を可能とする。
【００８２】
実施例では、刺激イベントデータと次の刺激イベントタイムデータが発生すると、ＣＰＵ３１０が、特定のクロック信号周波数（例えば、１００ｋHz）が図５のタイマーカウントレジスタ５４２を増加するようなデータを発生する。例えば、１００ｋHzクロック信号が１０ usecパルス幅の増加（すなわち、１秒/１００ｋ＝１０.０ usec）を提供する一方、３２.７６８ｋHzクロックが３０.５ usecパルス幅の増加（すなわち、１秒/３２.７６８ｋ＝３０.５ usec）を提供する。より一般的には、クロック信号が高くなれば、パルス幅増加は小さくなり、パルス幅の分解能は大きくなる。しかしながら、同様のクロック回路が異なるクロック信号周波数を発生させることを考えると、クロック信号が高くなると、電力消費が高くなる。したがって、実施例では、電力は、特定のパルス幅分解能を達成するために、最も遅いクロック信号を用いて変換することができる。
【００８３】
特定の実施例では、刺激イベントデータと次の刺激イベントタイムデータが発生すると、ＣＰＵ３１０は最初に、保存された神経刺激データにより定められた神経刺激を行うに必要な最小のパルス幅増加量を決定する。この決定にもとづき、低電力消費の副クロック回路３６４により発生するクロック信号が、図５のタイマーカウントレジスタ５４２をインクリメントするクロック信号として用いられるに充分な分解を有しているか否かや、高電力消費のメインクロック回路３６２により発生するクロック信号がタイマーカウンターレジスタ５４２をインクリメントするため用いることが必要かどうかを、ＣＰＵ３１０は決定する。
【００８４】
副クロック回路３６４により発生するクロック信号が使用するに充分な分解能を有していれば、ＣＰＵ３１０は、副クロック回路３６４により発生する低クロック信号がタイマーカウントレジスタ５４２をインクリメントするために用いられると考え、刺激イベントデータと次の刺激イベントタイムデータを生成する。これにより、ＤＭＡコントローラー３３０が神経刺激を制御しているときに、メインクロック回路３６２（他の目的のために必要とされない限り）は少なくとも部分的に不作動状態とすることができる。これに反して、副クロック回路３６４により発生するクロック信号を用いて充分な分解能を有していないときは（すなわち、メインクロック回路により発生するクロック信号が必要とされるとき）、メインクロック回路３６２により発生する高クロック信号がタイマーカウントレジスタ５４２をインクリメントするために用いられると考え、刺激イベントデータと次の刺激イベントタイムデータを、ＣＰＵ３１０が発生する。後の例では、副クロック回路３６４は、省電力のために、用いられていないときは少なくとも部分的に不作動状態とすることができる。
【００８５】
他の実施例では、副クロック回路３６４により発生するクロック信号の周波数は、調整可能であり、選択された刺激セットと連動する刺激波形の伝達を制御するように最適なまたは最適に近い周波数が選択される。例えば、副クロック回路３６４の周波数は、所望の信号を生成することが必要となる他のイベント、及び、所望の信号分解能を提供するために、最も遅いクロック信号周波数になるようにプログラムされている。ＣＰＵ３１０は、この周波数を決定し、この決定された周波数にもとづき、刺激イベントデータと次の刺激イベントタイムデータを生成する。
【００８６】
図１−６にて示された実施例では、第１ＤＭＡチャンネルが（メモリの最初の部分に保存された）刺激イベントデータを入力/出力ポート又はレジスタに転送し、これにより回路の状態を変化させ、第２ＤＭＡチャンネルが（メモリの第２の部分に保存された）次の刺激イベントタイミングデータを、刺激イベントと関連するタイミングを制御するために用いられるタイマーに転送するために用いられている。他の実施例では、２以上のＤＭＡチャンネルチャンネルを用いられることができる。例えば、刺激波形の振幅をコントロールするために用いられる振幅値（メモリの第３の部分に保存されている）を転送するために第３ＤＭＡチャンネルが用いることができる。
【００８７】
上述のとおり、本発明の実施例は、慢性痛を有する患者に対し、神経刺激をコントロールために用いることができる。例えば、本発明の実施例は、以下の症状に適用されるものであり、これらに限定されるものでない。腰椎手術に起因する神経因性疼痛、診断ブロックにより診断された腰部の側面への慢性難治性腰痛、診断ブロックにより診断された仙腸関節の間接病、脊椎管窄症、神経根衝突‐非外科的候補、未知の病因による椎間板起因の痛み、複合性局所疼痛、帯状疱疹後神経痛、糖尿病性神経痛、難治性痛みを伴う末梢血管疾患、レーノー現象、幻肢痛、全般的な求心路遮断痛、慢性難治性アンギナ、外傷性後頭痛、さまざまな内臓痛（例えば、膵炎等）、ポスト乳房切除痛、外陰部痛、精巣痛、痛みを伴う自己免疫不全、限られた痛い分布によるポスト脳卒中痛、反復局所的鎌状赤血球危機、腰髄神経根障害、胸部神経根神経病、頸部神経根症、頸部軸の首痛、むちうち、限定痛を有する多発性硬化症。
【００８８】
本発明の実施例は、これらに限定されるものでないが、パーキンソン病、多発性硬化症、奥部障害を脱髄すること、身体的および作業療法によって援助された神経刺激、脊髄損傷、神経再生によって援助される療法、ぜんそく、慢性心不全、肥満、急性虚血のような発作のような痛みを伴わない疾病に用いることができる。
【００８９】
上述のとおり、神経刺激は、後根または後根神経節の刺激を含み、これに限定されるものではないが、患者の脊髄にまたはその近傍に伝達される。神経刺激は、これに限定されるものでないが、頭蓋の経頭蓋、皮質の、皮質下、小脳または深部脳に例示されるような脳タイプ神経刺激であっても良い。
【００９０】
本発明の実施例は、これに限定されるものではないが、心臓に刺激を施すような神経刺激以外のタイプに適用されても良い。例えば、刺激イベントデータと次の刺激イベントタイミングデータは、ＤＭＡチャンネルにより適切な回路に転送され、先のR波またはペースイベント（または他の心臓イベント）に続くウインドウタイム内にR波（または、他のタイプの波形）が検出されないときに実施される心臓ペーシングタイプの刺激をコントロールすることができる。これは、単なる例を示したものであり、限定されるものではない。
【００９１】
本発明の実施例は、薬ポンプや他の埋め込み型、非埋め込み型、または部分的に埋め込み型の医療機器にも適用可能である。
【００９２】
本発明の実施例は、特定の機能や相互関係を図示するブロック図を用いて説明している。これらのブロックの機能の境界は、説明の便宜上、示しているものである。特定の機能や相互関係が適切に実施する限り、他の境界を設定することができる。このような他の境界は、本発明の範囲や趣旨に入るものである。
【００９３】
上述の発明は、明確性や理解のために、図や例を用いて説明したが、様々な代替例、変形例及び均等物が用いることができることは明らかであり、上述の説明は本発明の範囲を限定するものであってはならない。
なお、下記の記載は、出願時の請求項の記載であり、新規事項を追加するものではない。
（項目１）
ある期間に実施される刺激イベントに対応する刺激イベントデータのブロックを保存する第１テーブルと、
当該期間に対応する次の刺激イベントタイムデータのブロックを保存する第２テーブルと、を含む、メモリと、
刺激イベントデータのブロックの１つを、第１テーブルから刺激イベントを制御するために用いられる１又は複数のレジスタへ選択的に転送する第１ＤＭＡチャンネルと、
次の刺激イベントタイムデータのブロックの１つを、第２テーブルから刺激イベントと連動するタイミングを制御するために用いられるタイマーへ選択的に転送する第２ＤＭＡチャンネルと、を含む、ダイレクトメモリアクセス（ＤＭＡ）コントローラーと、を備える、埋め込み型刺激システム。
（項目２）
カウントレジスタと第１比較レジスタを有するタイマーをさらに備え、
次の刺激イベントタイムデータの各ブロックは、第２ＤＭＡチャンネルによりタイマーに転送されるときにタイマーの第１比較レジスタに保存される値を有しており、
タイマーのカウントレジスタは、カウント値を保存し、かつ、クロック信号に依存したカウント値をインクリメントし、
第１比較レジスタは、第１比較レジスタに保存された値とカウントレジスタのカウント値とを比較し、第１比較レジスタに保存された値とカウントレジスタのカウント値とが等しいとき、第１トリガーを発生させ、
第１ＤＭＡチャンネルは、刺激イベントデータの次のブロックを、第１テーブルから第１比較レジスタにより発生された第１トリガーに従った刺激イベントを制御するために用いられる１又は複数のレジスタへ転送する、項目１に記載の埋め込み型刺激システム。
（項目３）
第２ＤＭＡチャンネルは、次の刺激イベントタイムデータの次のブロックを、次の１つ
、
第１比較レジスタにより発生される第１トリガーの信号、
転送を開始する第１ＤＭＡチャンネルに反応して発生するトリガー信号、又は
転送を完了する第１ＤＭＡチャンネルに反応して発生するトリガー信号、
に従って、第２テーブルから第１比較レジスタに転送する、項目２に記載の埋め込み型刺激システム。
（項目４）
タイマーは、リセット値を保存し、かつ、リセット値とカウントレジスタのカウント値とを比較する第２比較レジスタを含んでおり、
保存されたリセット値がカウントレジスタの値と等しくなるときに、カウントレジスタがリセットされる、項目３に記載の埋め込み型刺激システム。
（項目５）
刺激イベントを制御するために用いられる１又は複数のレジスタは、ＤＭＡコントローラーとメモリを含むマイクロコントローラーユニット（ＭＣＵ）の入力/出力ポートに対応する、項目１〜４のいずれか一項に記載の埋め込み型刺激システム。
（項目６）
刺激イベントデータの各ブロックは、刺激イベントに対応し、かつ、
刺激イベントのために選択された複数の導線の一つを特定する第１グループのビットと、
刺激イベント中に選択された導線の電極とどのように接続するかを特定する第２グループのビットと、が含まれており、
第１グループのビットは、第１ＤＭＡチャンネルにより、導線選択を制御する回路に接続された入力/出力ポートに対応する１又は複数のレジスタの第１部分に転送され、
第２グループのビットは、第１ＤＭＡチャンネルにより、電極構成を制御する回路に接続された入力/出力ポートに対応するレジスタの第２部分に転送される、項目５に記載の埋め込み型刺激システム。
（項目７）
１又は複数の導線を介して伝達される刺激信号を定める刺激データを受信、又はアクセスする中央処理装置（ＣＰＵ）をさらに備え、
刺激データにもとづき、ＣＰＵはメモリに保存されている第１テーブルと第２テーブルを生じさせ、
ＣＰＵが第１テーブルと第２テーブルを生じさせた後、ＤＭＡコントローラーはＣＰＵの割り込みなしに前記期間に刺激イベントを制御し、これによりＣＰＵは刺激イベントを行うことに関連しない他のタスクを行うこと、及び/又は、前記期間の間低電力モードに入ることを可能とする、項目１〜６のいずれか一項に記載の埋め込み型刺激システム。
（項目８）
ＣＰＵは、刺激データにもとづきパルスの潜在的衝突を特定し、
ＤＭＡコントローラーが、第１テーブルと第２テーブルに従って、刺激イベントをある期間制御するとき、ＣＰＵは特定された潜在的パルス衝突を避けるように第１テーブルと第２テーブルを生成する、項目７に記載の埋め込み型刺激システム。
（項目９）
カウント値をインクリメントするためにカウントレジスタにより用いられる第１クロック信号を発生させる第１クロック回路と、
ＣＰＵが低電力モードにないときにＣＰＵにより用いられる第２クロック信号を発生させる第２クロック回路と、をさらに備え、
第２クロック回路により発生された第２クロック信号は、第１クロック回路により発生された第１クロック信号より高い周波数を有し、第２クロック回路は第１クロック回路より多くの電力を使用し、
ＣＰＵが低電力モードにあるとき、第２クロック回路は少なくとも部分的に不作動になっている、項目７に記載の埋め込み型刺激システム。
（項目１０）
第１周波数を有するクロック信号を発生させる第１クロック回路と、
ＣＰＵが低電力モードにないときに前記ＣＰＵにより用いられる、第１周波数より高い第２周波数のクロック信号を発生させる第２クロック回路と、をさらに備え、
第２クロック回路は、第１クロック回路よりも多くの電力を消費し、
ＣＰＵにより受領され、または、アクセスされた刺激データに基づき、ＣＰＵは、第１クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる第１クロック信号として充分な分解能を有しているかどうか、または、第２クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる第１クロック信号として用いる必要があるかどうかを決定し、
第１クロック回路により発生されたクロック信号がカウント値をインクリメントさせるためにカウントレジスタが用いる第１クロック信号として充分な分解能を有していれば、第１クロック回路により発生されたクロック信号が第１クロック信号として用いられ、かつ、第２クロック回路は少なくとも部分的に不作動となり、
第２クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる第１クロック信号として用いる必要があるならば、第２クロック回路により発生されたクロック信号が第１クロック信号として用いられ、かつ、第１クロック回路は少なくとも部分的に不作動となる、項目７に記載の埋め込み型刺激システム。
（項目１１）
第１テーブルと第２テーブルは、第１周波数を有するクロック信号と第２周波数を有するクロック信号のいずれが第１クロック信号として用いられているかに従って、ＣＰＵにより作成される、項目１０に記載の埋め込み型刺激システム。
（項目１２）
埋め込み型刺激システムを用いた使用方法であり、
ある期間に実施される刺激イベントに対応する刺激イベントデータのブロックを第１テーブルに保存すること、
前記期間に対応する次の刺激イベントタイムデータのブロックを第２テーブルに保存すること、
第１テーブルから、刺激イベントを制御するために用いられる１又は複数のレジスタへ刺激イベントデータのブロックの１つを選択的に転送すること、
第２テーブルから、刺激イベントと連動するタイミングを制御するために用いられるタイマーへ次の刺激イベントタイムデータのブロックの１つを選択的に転送すること、を備える、埋め込み型刺激システムを用いた使用方法。
（項目１３）
ＤＭＡコントローラーの第１ダイレクトメモリアクセス（ＤＭＡ）チャンネルは、刺激イベントデータのブロックの１つを、第１テーブルから刺激イベントを制御するために用いられる１又は複数のレジスタへ選択的に転送するために用いられ、
ＤＭＡコントローラーの第２ＤＭＡチャンネルは、次の刺激イベントタイムデータのブロックの１つを、第２テーブルから刺激イベントと連動するタイミングを制御するために用いられるタイマーへ選択的に転送するために用いられる、項目１２に記載の方法。
（項目１４）
次の刺激イベントタイムデータの各ブロックは、タイマーに転送されたときにタイマーの第１比較器に保存される値を有しており、この方法はさらに、
クロック信号に従ってカウント値をインクリメントすること、
第１比較レジスタに保存された値とカウント値とを比較すること、
第１比較レジスタに保存された値とカウントレジスタのカウント値とが等しいときに、第１トリガーを発生させること、
刺激イベントデータの次のブロックを、第１テーブルから、第１トリガーに従って刺激イベントを制御するために用いられるレジスタへ転送すること、を備える項目１３に記載の方法。
（項目１５）
刺激イベントを制御するために用いられる１又は複数のレジスタが、ＤＭＡコントローラーを含むマイクロコントローラーユニット（ＭＣＵ）の入力/出力ポートに対応する、項目１３に記載の方法。
（項目１６）
刺激イベントデータの各ブロックは、刺激イベントに対応し、下記の
刺激イベントのために複数の導線のどれが選択されたかを特定する第１グループのビットと、
刺激イベントの間、選択された導線の電極がどのように接続されているかを特定する第２グループのビットと、を含んでおり、
第１グループのビットは、導線の選択を制御する回路に接続された入力/出力ポートに対応する１又は複数のレジスタの第１部分に第１ＤＭＡチャンネルにより転送され、
第２グループのビットは、電極構成を制御する回路に接続された入力/出力ポートに対応する１又は複数のレジスタの第２部分に第１ＤＭＡチャンネルにより転送される、項目１５に記載の方法。
（項目１７）
１又は複数の導線を介して伝達される刺激信号を定める刺激データにもとづき第１テーブルと第２テーブルを作成するためにＣＰＵを使用すること、
第１テーブルと第２テーブルを作成するためにＣＰＵを使用した後、ＣＰＵの割り込みなしに前記期間に刺激イベントを制御するためにＤＭＡチャンネルを使用し、これによりＣＰＵが、刺激イベントに関連しないタスクを処理、及び/又は、前記期間低電力モードに入ることを可能とすること、をさらに備える項目１３に記載の方法。
（項目１８）
刺激データに基づき潜在的パルス衝突を特定すること、
第１テーブルと第２テーブルを作成するためにＣＰＵを使用するとき、ＤＭＡコントローラが第１テーブルと第２テーブルに従って前記期間刺激イベントを制御するときに特定された潜在的パルス衝突を避けるように第１テーブルと第２テーブルを作成すること、をさらに備える項目１７に記載の方法。
（項目１９）
第１周波数を有するクロック信号を発生させるために第１クロック回路を使用すること、
ＣＰＵが低電力モードにないときにＣＰＵにより使用され、第１周波数より高い第２周波数を有するクロック信号を発生させるために、第１クロック回路よりも多くの電力を消費する第２クロック回路を使用すること、
刺激データに基づき、第１クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる第１クロック信号として用いられるに充分な分解能を有しているかどうか、または、第２ロック回路により生成したクロック信号が、カウント値をインクリメントするために用いられる第１クロック信号として用いる必要があるかを決定すること、をさらに備え、
第１クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる第１クロック信号として用いられるに充分な分解能を有していれば、第１クロック回路により生成されたクロック信号を第１クロック信号として用い、少なくとも部分的に第２クロック回路を不作動とし、
第２クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる第１クロック信号として用いられる必要があれば、第２クロック回路により生成されたクロック信号を第１クロック信号として用い、少なくとも部分的に第１クロック回路を不作動とする、項目１７に記載の方法。
（項目２０）
第１テーブルと第２テーブルは、ＣＰＵにより、第１周波数を有するクロック信号または第２周波数を有するクロック信号のいずれが第１クロック信号として用いられているかに従って生成される、項目１９に記載の方法。
（項目２１）
埋め込み型刺激システムであり、
各電極が陽極、陰極または中性電極として接続可能とされている複数の電極をそれぞれ有する複数の導線と、
中央処理ユニット（ＣＰＵ）と、
複数のポートと、
メモリと、
タイマーと、
ダイレクトメモリアクセス（ＤＭＡ）コントローラーと、を備え、
メモリは、
予め設定された期間に生じさせる複数の刺激イベントのそれぞれのための刺激イベントデータのブロックであって、各刺激イベントデータのブロックは、
どの導線が刺激イベント用に選択されるか、
刺激イベントの間、選択された導線の電極がどのように接続されるか、
を特定する刺激イベントデータブロックと、
前記予め設定された期間に生じさせる複数の刺激イベントのための次の刺激イベントタイムデータのブロックであって、次の刺激イベントタイムデータのそれぞれは、複数の刺激イベントの次のイベントをいつ開始するかを特定する、次の刺激イベントタイムデータブロックと、を保存し、
タイマーは、
カウント値を保存し、第１クロック信号に従ってカウント値をインクリメントするカウントレジスタと、
次の刺激イベントタイムデータのブロックの１つに対応するタイム値を保存し、タイム値とカウントレジスタの値とを比較し、タイム値がカウントレジスタの値と等しいときに第１トリガーを発生させる第１比較レジスタと、を有し、
ダイレクトメモリアクセス（ＤＭＡ）コントローラーは、
第１比較レジスタにより生成された第１トリガーに従って、ＣＰＵに干渉されることなくメモリからポートに、刺激イベントデータの１つのブロックを転送する第１ＤＭＡチャンネルと、
第１比較レジスタにより生成される第１トリガーに従って、または、第１ＤＭＡチャンネルが転送開始又は転送完了に従って、ＣＰＵに干渉されることなくメモリからポートに、次の刺激イベントデータの１つのブロックを一度に転送する第２ＤＭＡチャンネルと、を含む、埋め込み型刺激システム。
（項目２２）
タイマーは、第２の値を保存し、第２の値とカウントレジスタのカウント値とを比較し、保存された第２の値がカウントレジスタの値と等しいときに第２のトリガーを発生する第２比較レジスタを含んでおり、
第２の値は、前記予め設定された期間を特定し、
第２のトリガーは、カウントレジスタに保存されたカウント値をリセットする、項目２１に記載の埋め込み型刺激システム。
（項目２３）
メモリは、
前記予め設定された期間に発生させる複数の刺激イベントのそれぞれのための刺激イベントデータを保存する第１テーブルと、
前記予め設定された期間に発生させる複数の刺激イベントのそれぞれのための次の刺激イベントタイムデータを保存する第２テーブルと、を備える、項目２２に記載の埋め込み型刺激システム。
（項目２４）
第１と第２ＤＭＡチャンネルは、次のイベントの少なくとも一つに応じて再初期化される、
（１）第１ＤＭＡチャンネルが、第１テーブルに保存された最後の刺激イベントデータをポートに転送したとき
（２）第２ＤＭＡチャンネルが、第２テーブルに保存された最後の次の刺激イベントデータを第１比較レジスタに転送したとき
（３）第２トリガーがカウントレジスタに保存されたカウント値をリセットしたとき、
項目２２に記載の埋め込み型刺激システム。
（項目２５）
ＣＰＵ、ポート、メモリ、タイマー、ＤＭＡコントローラーが同じマイクロコントローラー（ＭＣＵ）の構成要素である、項目２１〜２４のいずれか一項に記載の埋め込み型刺激システム。
【図１】
0005969500.tif 000002
【図２】
0005969500.tif 000003
【図３】
0005969500.tif 000004
【図４Ａ】
0005969500.tif 000005
【図４Ｂ】
0005969500.tif 000006
【図５】
0005969500.tif 000007
【図６】
0005969500.tif 000008