(57)【要約】ハードウエア／ファームウエアトラップのための方法および装置。少なくとも１組のファームウエアコードが装置を動作させるために実行される。その装置の動作に対する変更が実施される。その動作に対する変更は、パッチコードを受信すること、ファームウエアトラップを作成すること、ファームウエアトラップに応答して割込みを生成すること、および割込みに応答してパッチコードを実行することを含む。
2005508044.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを動作させる方法であって、
該デバイスの動作のための少なくとも１組のファームウエアコードを実行すること、および
前記デバイスの動作に対する変更を実施することであって、
パッチコードを受信すること、
ファームウエアトラップを作成すること、
前記ファームウエアトラップに応答して割込みを生成すること、および
前記割込みに応答して前記パッチコードを実行すること、を含む、前記デバイスの動作に対する変更を実施すること、
を含むデバイスを動作させる方法。
【請求項２】
前記デバイスの動作のための少なくとも１組のファームウエアコードを実行することは、埋め込み可能医療デバイスの動作のための少なくとも１組のファームウエアコードを実行することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項３】
前記埋め込み可能デバイスの動作のための少なくとも１組のファームウエアコードを実行することは、リードオンリーメモリ（ＲＯＭ）から前記１組のファームウエアコードを実行することをさらに含む請求項２に記載のデバイスを動作させる方法。
【請求項４】
前記デバイスの前記動作に対する変更を実施することは、前記ファームウエアに対するアップグレードを実施することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項５】
前記デバイスの前記動作に対する変更を実施することは、前記ファームウエアに対するパッチワーク修正を実施することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項６】
前記デバイスの前記動作に対する変更を実施することは、前記デバイスの動作に対する少なくとも１つの新しい機能を追加することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項７】
前記パッチコードを受信することは、前記デバイス内の不揮発性メモリロケーションに前記パッチコードを格納することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項８】
前記ファームウエアトラップを作成することは、プログラムカウンタの一致を判定するために前記ファームウエアの前記実行を監視することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項９】
前記ファームウエアトラップを作成することは、所定のイベントを調べるために前記ファームウエアの前記実行を監視することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項１０】
前記ファームウエアトラップを作成することは、前記デバイス内のメモリロケーションの所定の場所にフラグを立てることをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項１１】
前記ファームウエアトラップに応答して割込みを生成することは、マスク不可能割込みを生成することをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項１２】
前記ファームウエアトラップに応答して割込みを生成することは、不揮発性メモリからランダムアクセスメモリ（ＲＡＭ）に前記パッチコードを移動させることをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項１３】
前記パッチコードを実行することは、前記ランダムアクセスメモリ（ＲＡＭ）に格納される前記パッチコードを実行することをさらに含む請求項１２に記載のデバイスを動作させる方法。
【請求項１４】
前記パッチコードを実行することに応答して前記ファームウエアコードの前記実行に戻ることをさらに含む請求項１に記載のデバイスを動作させる方法。
【請求項１５】
スケジューリング機構を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いるコントローラを用いて埋め込み可能医療デバイスを制御することを含む方法であって、
前記コントローラは、
前記埋め込み可能医療デバイスの前記動作に対する前記変更を実施する動作のための少なくとも１組のファームウエアコードを実行できるようにするファームウエアアーキテクチャを有し、
前記動作に対する前記変更は、
パッチコードを受信すること、
ファームウエアトラップを作成すること、
前記ファームウエアトラップに応答して割込みを生成すること、および
前記割込みに応答して前記パッチコードを実行すること、
を含む、埋め込み可能医療デバイスを制御することを含む方法。
【請求項１６】
前記パッチコードを受信することは、前記デバイス内の不揮発性メモリロケーションに前記パッチコードを格納することをさらに含む請求項１５に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項１７】
前記ファームウエアトラップを作成することは、プログラムカウンタの一致を判定するために前記ファームウエアの前記実行を監視することをさらに含む請求項１５に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項１８】
前記ファームウエアトラップを作成することは、所定のイベントを調べるために前記ファームウエアの前記実行を監視することをさらに含む請求項１５に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項１９】
前記ファームウエアトラップを作成することは、前記デバイス内のメモリロケーションの所定の場所にフラグを立てることをさらに含む請求項１５に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項２０】
前記ファームウエアトラップに応答して割込みを生成することは、マスク不可能割込みを生成することをさらに含む請求項１５に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項２１】
前記ファームウエアトラップに応答して割込みを生成することは、不揮発性メモリからランダムアクセスメモリ（ＲＡＭ）に前記パッチコードを移動させることをさらに含む請求項１５に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項２２】
前記パッチコードを実行することは、前記ランダムアクセスメモリ（ＲＡＭ）に格納される前記パッチコードを実行することをさらに含む請求項２１に記載の埋め込み可能医療デバイスを制御することを含む方法。
【請求項２３】
少なくとも１組のファームウエアコードを実行するためのコントローラと、
前記コントローラと動作可能に接続されるハードウエア／ファームウエアトラップユニットと、
を備え、
前記ハードウエア／ファームウエアトラップは、該ハードウエア／ファームウエアトラップに応答して、前記ファームウエアコードの通常の実行を中断し、パッチコードを実行するファームウエアトラップを提供する装置。
【請求項２４】
ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）および不揮発性メモリをさらに備える請求項２３に記載の装置。
【請求項２５】
前記不揮発性メモリは、プログラマブルリードオンリーメモリ（ＰＲＯＭ）、電気的に消去可能なリードオンリーメモリ（ＥＥＰＲＯＭ）、およびフラッシュメモリのうちの少なくとも１つである請求項２３に記載の装置。
【請求項２６】
前記コントローラ、前記ハードウエア／ファームウエアトラップユニット、前記ランダムアクセスメモリ（ＲＡＭ）、前記リードオンリーメモリ（ＲＯＭ）、および前記不揮発性メモリは、埋め込み可能医療デバイスに一体化される請求項２４に記載の装置。
【請求項２７】
前記コントローラは中央処理ユニット（ＣＰＵ）を備える請求項２６に記載の装置。
【請求項２８】
前記ＣＰＵは、前記リードオンリーメモリ（ＲＯＭ）に格納されるファームウエアコードを実行する請求項２５に記載の装置。
【請求項２９】
前記装置内にプログラミングユニットからダウンロードされる前記パッチコードをさらに含み、前記プログラミングユニットは遠隔方式で前記装置に動作可能に接続される請求項２５に記載の装置。
【請求項３０】
前記不揮発性メモリから、前記ＲＡＭに転送されて、前記ＣＰＵによって実行される前記パッチコードをさらに含む請求項２９に記載の装置。
【請求項３１】
前記ハードウエア／ファームウエアトラップユニットは、前記ファームウエアの前記実行に関連するプログラムカウンタを所定の値に一致させることによりファームウエアトラップを作成する請求項２９に記載の装置。
【請求項３２】
前記ハードウエア／ファームウエアトラップユニットは、前記ファームウエアの前記実行を監視し、所定のイベントの発生を判定することによりファームウエアトラップを作成する請求項２３に記載の装置。
【請求項３３】
前記ハードウエア／ファームウエアトラップユニットは、前記装置のメモリロケーションにフラグを設定することによりファームウエアトラップを作成する請求項２３に記載の装置。
【請求項３４】
前記ハードウエア／ファームウエアトラップユニットは、前記ＣＰＵが前記ファームウェアの実行を実施するのを中断させ、前記パッチコードの実行を実施させるマスク不可能割込みを生成する請求項２３に記載の装置。
【請求項３５】
デバイスを動作させるための装置であって、
前記デバイスの動作のための少なくとも１組のファームウエアコードを実行する手段と、
前記デバイスの動作に対する変更を実施する手段と、
を備え、
前記デバイスの動作に対する前記変更を実施する手段は、
パッチコードを受信する手段と、
ファームウエアトラップを作成する手段と、
前記ファームウエアトラップに応答して割込みを生成する手段と、
前記割込みに応答して前記パッチコードを実行する手段と、
を含む、デバイスを動作させるための装置。
【請求項３６】
前記デバイスの動作のための少なくとも１組のファームウエアコードを実行すること、
前記デバイスの動作に対する変更を実施すること、
を含み、
前記動作に対する前記変更は、
パッチコードを受信すること、
ファームウエアトラップを作成すること、
前記ファームウエアトラップに応答して割込みを生成すること、および
前記割込みに応答して前記パッチコードを実行すること、
を含む、
コンピュータにより実行されるときに、デバイスを動作させる方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項３７】
前記デバイスの動作のための少なくとも１組のファームウエアコードを実行することは、埋め込み可能医療デバイスの動作のための少なくとも１組のファームウエアコードを実行することをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項３８】
前記埋め込み可能医療デバイスの動作のための少なくとも１組のファームウエアコードを実行することは、リードオンリーメモリ（ＲＯＭ）から前記１組のファームウエアコードを実行することをさらに含む、コンピュータにより実行されるときに、請求項２の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項３９】
前記デバイスの前記動作に対する変更を実施することは、前記ファームウエアに対するパッチワーク修正を実施することをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項４０】
ファームウエアトラップを作成することは、プログラムカウンタの一致を判定するために前記ファームウエアの前記実行を監視することをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項４１】
前記ファームウエアトラップを作成することは、所定のイベントを調べるために前記ファームウエアの前記実行を監視することをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項４２】
前記ファームウエアトラップを作成することは、前記デバイス内のメモリロケーションの所定の場所にフラグを立てることをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項４３】
前記ファームウエアトラップに応答して割込みを生成することは、不揮発性メモリからランダムアクセスメモリ（ＲＡＭ）に前記パッチコードを移動させることをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項４４】
前記パッチコードを実行することは、前記ランダムアクセスメモリ（ＲＡＭ）に格納される前記パッチコードを実行することをさらに含む、コンピュータにより実行されるときに、請求項１２の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【請求項４５】
前記パッチコードを実行することに応答して前記ファームウエアコードの前記実行に戻ることをさらに含む、コンピュータにより実行されるときに、請求項１の方法を実施する、命令でエンコードされるコンピュータ可読プログラム記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウエア／ファームウエアトラップのための方法および装置に関する。
【背景技術】
【０００２】
１９６０年代に最初の埋め込み可能ペースメーカが導入されて以来、エレクトロニクスおよび医療の分野は著しい進歩を遂げており、現在では、幅広い種類の体内埋め込み可能な電子医療デバイスが市販されている。現在、埋め込み可能医療デバイスの種類には、たとえば、ペースメーカ、埋め込み可能カーディオバータ、ディフィブリレータ、神経刺激器、薬物投与デバイスが含まれる。今日の最新式の埋め込み可能医療デバイスは、初期のものよりもはるかに精巧で、複雑である。今日の最新式の埋め込み可能医療デバイスは、非常に複雑なタスクを実施することができる。そのようなデバイスの治療面での利益は十分に証明されている。
【０００３】
埋め込み可能医療デバイスシステムは長年にわたって機能面で精巧かつ複雑になってきたので、ある埋め込み式デバイスと、別の埋め込み式デバイスあるいは外部のデバイス、たとえばプログラミングコンソール、監視システムなどとの間での通信を容易にするためのシステムを備えることが益々有用になってきている。最も初期のペースメーカが導入された直後に、医師が埋め込み式デバイスの動作状態に関する情報を非侵襲的に入手すること、および／またはそのデバイスに対して少なくともある程度の制御を行うこと、たとえば、埋め込んだ後に、装置をオンまたはオフすること、あるいはペーシングレートを調整することが望ましいことが明らかになった。新しく、より高度な特徴部(feature)が埋め込み可能デバイスに組み込まれてきたので、それに応じて、それらの特徴部の選択および制御に関するより多くの情報を装置との間でやりとりすることが益々有用になってきている。
【０００４】
特に、埋め込み可能ペースメーカによる治療は、数が増えており、複雑さの度も増している。従来のデバイスにおいて、種々の埋め込み可能ペースメーカによる治療がこのように数が増え、複雑さの度も増すことにより、特徴部が相互に作用し合うことが多くなってきた。これらの特徴部間の相互作用は、種々の埋め込み可能ペースメーカによる治療の有効性に悪影響を及ぼす場合もある。さらに、従来のデバイスは、ランダムアクセスメモリウエア（ＲＡＭウエア）としても知られている、ダウンロード可能なソフトウエアをサポートできるようにしてきたが、従来のデバイスのためのＲＡＭウエアデザインは通常製品仕様書、ファームウエア機能デザインおよびコード表において一律に提供されており、いわば「変えられない」。結果として、従来のデバイスのためのＲＡＭウエアデザインは通常立案し、および／または実施するのが難しく、プログラミングし直し、変更し、および／または改良するのに比較的柔軟性がなく、費用がかかる。たとえば、１組の「パッチポイント」、「パッチ」コードがあるか調べられ、ある場合には実行されるコード内の一定数のポイントが設けられる。
【０００５】
これらのパッチポイントは通常、特定のＲＡＭウエアアプリケーションの場合に最適な場所にはなく、結果として、そのＲＡＭウエアアプリケーションの機能(functionality)が制限されるようになる。このようにＲＡＭウエアアプリケーションの機能が制限されることにより、通常、ＲＡＭウエアが多くの複雑な特徴部の場合に実用的ではなくなり、ＲＡＭウエアの用途は主に短期間の研究手段に限定されてきた。所望の機能を果たすために、バイパスされたコードの大きなブロックが多くの場合に繰り返される必要があったので、ＲＡＭウエアアプリケーションにおけるこの機能の制限はパッチのサイズを膨らませる可能性があった。ＲＡＭウエアアプリケーションはエンベデッドファームウエア内の既存の「タスク」間に存在しなければならないので、ＲＡＭウエアアプリケーションはタイミングの問題も生み出す可能性があり、ファームウエアが、ファームウエアデッドラインの全てを達成するのを難しくした。さらに、通常、装置をリセットする際に、ＲＡＭウエアアプリケーションを保存および／またはバックアップする方法は存在しない。
【０００６】
たびたび、埋め込み式医療デバイスの標準的な動作を変更するのが望ましい場合がある。しかし、医療デバイスの標準的な動作の流れを中断することにより、その装置が不安定になる可能性がある。たとえば、ＲＡＭメモリにおいて多数の修正コードを実行することにより、ＲＡＭメモリのデータが失われることに起因して、埋め込み式医療デバイスの動作にエラーが生じる可能性がある。さらに、ＲＡＭメモリ内のデータは、リセット、あるいは他の電子的なイベントによって失われる可能性がある。それゆえ、現行の方法を用いて、埋め込み式医療デバイスの動作に対してパッチワーク修正、変更および／またはアップグレードを実行するのは難しく、効率が悪い。
【０００７】
本発明は、これまでに述べられた問題のうちの１つまたは複数の問題の影響を克服するか、少なくとも低らすことを対象とする。
［発明の概要］
本発明の一態様において、ハードウエア／ファームウエアトラップを実施するための方法が提供される。少なくとも１組のファームウエアコードがデバイスを動作させるために実行される。そのデバイスの動作に対する変更が実施される。その動作に対する変更は、パッチコードを受信すること、ファームウエアトラップを作成すること、ファームウエアトラップに応答して割込みを生成すること、割込みに応答してパッチコードを実行することを含む。
【０００８】
本発明の別の態様において、ハードウエア／ファームウエアトラップの装置が提供される。本発明の装置は、少なくとも１組のファームウエアコードを実行するためのコントローラと、コントローラと動作可能に接続されるハードウエア／ファームウエアトラップユニットとを含み、ハードウエア／ファームウエアトラップは、ファームウエアコードの通常の実行を中断し、ハードウエア／ファームウエアトラップに応答してパッチコードを実行させるファームウエアトラップを提供する。
【０００９】
本発明は、添付の図面とともに取り上げられる以下に記載される詳細な説明を参照することにより理解することができる。なお図面においては、参照符号の最も左側にある有効数字は、個々の参照符号が現れた最初の図面を示す。
【００１０】
本発明は種々の変更形態および代替形態が可能であるが、その具体的な実施形態が図面において例示されており、本明細書において詳細に説明される。しかし、本明細書に記載される具体的な実施形態の説明は、本発明を開示される特定の形態に限定しようとするものではなく、それどころか、本発明は、添付の特許請求項によって規定されるような本発明の精神および範囲に入る全ての変更形態、等価形態および代替形態を網羅することは理解されたい。
【発明を実施するための最良の形態】
【００１１】
本発明の例示的な実施形態が以下に記載される。明瞭にするために、本明細書には実際の実施態様の全ての特徴が記載されるとは限らない。任意のそのような実際の実施形態の開発において、開発者の具体的な目標を達成するためには、実施態様毎に変わることになる、システムに関連する制約および業務に関連する制約を遵守することなどの数多くの実施態様に特有の決定がなされなければならないことは当然理解されよう。さらに、そのような開発に向けての努力は複雑であり、時間がかかる場合もあろうが、それにもかかわらず、本開示の利益を享受した当業者であれば、決まりきった仕事になることが理解されるであろう。
【００１２】
本発明による装置およびその装置を動作させるための方法の例示的な実施形態が図１〜図１２に示される。図１は、埋め込み可能医療デバイス（ＩＭＤ）システム１０８を示しており、埋め込み可能医療デバイス（ＩＭＤ）システム１０８はたとえば、患者１１２に埋め込まれている埋め込み可能ペースメーカ１１０を備える。ペースメーカ１００は、気密に封止され、生物学的に不活性の外側容器あるいはハウジングに収容されており、ハウジングそのものは、ペースメーカのペーシング／検知回路部の電極として役立つように導電性であってよい。図１にまとめて参照符号１１４で特定される１つまたは複数のペースメーカリード線が、これまでと同じようにしてペースメーカ１１０に電気的に接続され、静脈１１８を経由して患者の心臓１１６の中に延びる。リード線１１４のほぼ遠位端近くには、電気的心臓信号を受信するか、あるいは心臓１１６に電気的ペーシング刺激を送出する１つまたは複数の露出された導電性電極が配置される。リード線１１４は、その遠位端が心臓１１６の心房あるいは心室のいずれかに位置するように埋め込まれてよい。
【００１３】
本発明は本明細書においてペースメーカを含む１つの実施形態で記載されるが、２つの物理的に離隔した部品間に通信リンクを設け、その中に格納されたデータを取り出すことが望ましい数多くの他のタイプの埋め込み可能医療デバイスにおいて有利に具現されてよい。
【００１４】
図１はまた、本発明を不必要に曖昧にするのを避けるために、本明細書においてはこれ以上詳細には記載されないが、従来のアップリンクおよびダウンリンク通信チャネルを介して、埋め込み式デバイス１１０と非侵襲的に通信する外部のプログラミングユニット１２０を示す。プログラミングユニット１２０には、ペースメーカ１１０とプログラマ１２０との間の双方向通信を容易にするための、従来の医療デバイスプログラミングシステムによるプログラミングヘッド１２２が結合されている。数多くの既知の埋め込み可能デバイスシステムでは、図１に示されるようなプログラミングヘッド１２２は、患者の体の上でデバイス１１０の埋め込み部位の上に位置決めされ（通常は皮膚接触部から約２〜約３インチ、言い換えると約５〜約８ｃｍ以内）、リード線１１４内の１つまたは複数のアンテナが、当技術分野における一般的なやり方に従って埋め込み式デバイス１１０の密封された格納部内に配置されるか、あるいはデバイス１１０のコネクタブロック１１１内に配置されるアンテナ（図示せず）に対して無線周波数（ＲＦ）信号を送信することができ、かつそのアンテナから無線周波数（ＲＦ）信号を受信することができるようにする。
【００１５】
図２は、ペースメーカ１１０を構成する電子回路部(circuitry)の全体的なブロック図を提供する。ペースメーカ１１０は、本発明のここに開示される実施形態に従って患者１１２に対する電気刺激治療の送出などの種々の機能を実施することができるデバイスである。図２は、ペースメーカ１１０が、デバイスのペーシングおよび検知機能を制御するための回路部を備えることを示す。ペースメーカ回路部の態様は、たとえば、Sivula他に発行された「Method and Apparatus for Implementing Activity Sensing in a Pulse Generator」と題する米国特許第５，０５２，３８８号に開示されるものに従って、従来どおりのデザインであってよい。米国特許第５，０５２，３８８号はその全体が参照によって本明細書に援用される。
【００１６】
ペースメーカ１１０の回路部の特定の部品がそのデザインおよび動作において従来どおりである限り、そのような部品のデザインおよび実施態様は当業者には日常やっていることであると思われるので、そのような部品は本明細書においてこれ以上詳細には記載されないであろう。たとえば、図２に示されるペースメーカ１１０の回路部は、検知増幅器回路部２２４と、刺激パルス出力回路部２２６と、水晶クロック２２８と、ランダムアクセスメモリおよびリードオンリーメモリ（ＲＡＭ／ＲＯＭ）ユニット２３０と、プログラム式中央処理ユニット（ＣＰＵ）２３２の形態のペーシングタイミングおよび制御回路部とを備えており、その全てが当技術分野においてよく知られている。
【００１７】
ペースメーカ１１０はアンテナ２３６に接続される内部テレメトリ通信回路部２３４も備えており、外部のプログラマ／制御ユニット１２０と通信できるようにする。外部プログラミングユニット１２０と埋め込み式ペースメーカ１１０との間にアップリンクおよびダウンリンク通信チャネルを設ける種々のテレメトリシステムが当技術分野において知られており、本発明の精神および範囲から逸脱することなく本明細書において用いることができる。たとえば、Calfee他に発行された「Method and Apparatus for Communicating With Implanted Body Function Stimulator」と題する米国特許第４，５３９，９９２号、Batty Jr.他に発行された「System and Process for Enabling a Predefined Function Within An Implanted Device」と題する米国特許第４，５５０，７３２号、Slocum他に発行された「Biomedical Implant With High Speed, Low Power Two-Way Telemetry」と題する米国特許第４，７５１，５８９号、Berntsonに発行された「Circuit for Controlling a Receiver in an Implanted Device」と題する米国特許第４，６７６，２４８号、Wyborny他に発行された「Telemetry Format for Implanted Medical Device」と題する米国特許第５，１２７，４０４号、Keller, Jr他に発行された「Programmer for Implanted Device」と題する米国特許第４，２１１，２３５号、先に引用されたMarkowitz第’３８２号特許およびThompson他に発行された「Telemetry System for a Medical Device」と題する米国特許第４，５５６，０６３号において、本発明において用いることができる通常の通信テレメトリシステムが開示される。Wyborny他の米国特許第５，１２７，４０４号およびThompson他の米国特許第４，５５６，０６３号はそれぞれその全体を参照して本明細書に援用される。
【００１８】
引き続き図２を参照すると、ペースメーカ１１０は１つまたは複数のリード線１１４に結合されており、リード線１１４は、埋め込み時に、図１を参照して先に記載されたように、ペースメーカ１１０の埋め込み部位と患者の心臓１１６との間に経静脈的に延びる。物理的には、リード線１１４とペースメーカ１１０の種々の内部部品との間の接続部は、図１には示されるが、図２には示されない従来のコネクタブロック組み立て品１１１によって容易に行われる。電気的には、リード線１１４とペースメーカ１１０の種々の内部電気部品との接続は、当業者にはよく知られているように、マルチプレクサのように機能して、たとえば、心房先端電極導体ＡＴＩＰおよびリング電極導体ＡＲＩＮＧならびに心室先端電極導体ＶＴＩＰおよびリング電極導体ＶＲＩＮＧを含むリード線１１４内の種々の導体と、ペースメーカ１１０の個々の電気部品との間に必要な接続を選択的かつ動的に確立するように機能するリード線インタフェース回路部２１９によって容易に行うことができる。明瞭にするために、リード線１１４とペースメーカ１１０の種々の部品との間の具体的な接続部は図２には示されないが、当業者には明らかであるように、たとえば、リード線１１４は一般的なやり方に従って、検知増幅器回路部２２４および刺激パルス出力回路部２２６に対して直接あるいは間接的に必ず結合されることになり、心臓電気信号が検知増幅器回路部２２４に伝達されることができるようにするとともに、リード線１１４を介して、刺激パルスが心臓組織に送出されることができるようにする。
【００１９】
検知増幅器回路部２２４によってリード線１１４上で受信される信号は、ＲＡＭ／ＲＯＭユニット２３０に格納されるソフトウエアの制御下で動作するＣＰＵ２３２によって収集され、同じくＲＡＭ／ＲＯＭユニット２３０に格納されてよいことが理解されるであろう。刺激パルス出力回路部２２６によって送出される信号のタイミングなどの付加的なデータもまたＲＡＭ／ＲＯＭユニット２３０に格納されてよい。この格納されたデータは後で取り出され、テレメトリ通信回路部２３４を経由してプログラミングユニット１２０に送出されてよい。
【００２０】
先に記載されたように、ペースメーカ１１０の回路部は中央処理ユニット（ＣＰＵ）２３２を含んでおり、中央処理ユニット（ＣＰＵ）２３２としては規格品ですぐ入手できるプログラム可能マイクロプロセッサあるいはマイクロコントローラを用いてもよいが、本発明のここに例示される実施形態では、カスタム集積回路部である。ＣＰＵ２３２とペースメーカ回路部の他の部品との間の具体的な接続部は図２には示されないが、ＣＰＵ２３２が、ＲＡＭ／ＲＯＭユニット２３０に格納された命令プログラムの制御下で、刺激用パルス出力回路部２２６および検知増幅器回路部２２４のタイミングをとった動作を制御するように働くことは当業者には明らかであろう。ここに示す実施形態の水晶クロック２２８は、主タイミングクロック信号を供給する水晶制御発振器である。再び、そのようなクロック信号がペースメーカ１１０の種々の部品（たとえば、ＣＰＵ２３２）に供給されるラインは、明瞭するために図２では省略されている。当業者であれば、そのような有効な配置構成に精通しているものと考えられる。
【００２１】
図２に示すペースメーカ１１０の種々の部品は電池（図示せず）によって駆動されており、電池は、当技術分野における一般的なやり方に従って、ペースメーカ１１０の密封された格納部内に収容される。図面を明瞭にするために、電池、および電池とペースメーカ１１０の他の部品との間の接続部は示されない。
【００２２】
ＣＰＵ２３２によって送られる信号の制御下で、心臓刺激を生成するように働く刺激用パルス出力回路部２２６は、たとえば、その全体が参照によって本明細書に援用される、Thompsonに発行された「Body Stimulator Output Circuit」と題する米国特許第４，４７６，８６８号に開示されるタイプであってよい。しかし、再び、当業者であれば、本発明を実施するのに相応しいであろう種々のタイプの従来技術のペーシング出力回路部の中から選択できるであろう、と信じられている。
【００２３】
検知増幅器回路部２２４は、たとえば、その全体が参照によって本明細書に援用される、Thompsonに発行された「Demand Cardiac Pacemaker Having Reduced Polarity Disparity」と題する米国特許第４，３５７，９４３号に開示されるタイプであってよい。一般的に、検知増幅器回路部２２４は、リード線１１４から電気心臓信号を受信し、そのような信号を処理して、心房収縮（Ｐ波）および心室収縮（Ｒ波）を含む、特定の心臓電気的イベントの発生を反映するイベント信号を導出するよう働く。これらのイベント指示信号はＣＰＵ２３２に供給され、当技術分野の一般的なやり方に従ってペースメーカ１１０の同期刺激動作の制御時にＣＰＵ２３２によって用いられる。さらに、先に説明されたように、これらのイベント表示信号は、保管および医師あるいは臨床医への視覚的表示のために、アップリンク通信チャネルを介して外部プログラミングユニット１２０に伝達されてよい。
【００２４】
ペースメーカ１１０が数多くの他の部品およびサブシステム、たとえば活動センサおよび関連する回路部を含んでよいことが当業者に理解されるであろう。しかし、ペースメーカ１１０内でのそのような追加の部品の有無は、本発明と直接関わりがあるとは考えられず、それらは一般的には、ペースメーカ１１０用のモジュール式の特徴部デザインを可能にする、ＲＡＭ／ＲＯＭユニット２３０の一部のファームウエアアーキテクチャと、このファームウエアアーキテクチャの動作方法とに関わっている。
【００２５】
図３は、本発明のここに開示される実施形態によるプログラミングユニット１２０の一実施形態の斜視図を示す。内部において、プログラマ１２０は処理ユニット（図示せず）を含んでおり、本発明のここに開示される実施形態によれば、処理ユニットは、パーソナルコンピュータタイプのマザーボード、たとえばインテル８０ｘ８６マイクロプロセッサなどと、デジタルメモリなどの関連する回路部とを含むコンピュータマザーボードである。
【００２６】
図３を参照すると、プログラミングユニット１２０は外側ハウジング３６０を備え、外側ハウジングは熱可塑性材料あるいは別の適当な耐久性はあるが、比較的軽量の材料から形成されることが好ましい。図３に全体として３６２で示される保持ハウジング３６０の前面に一体に形成される。ハンドル３６２を用いて、プログラミングユニット１２０はブリーフケースのように持ち運ぶことができる。
【００２７】
関節式の表示画面３６４がハウジング３６０の上面に配置される。表示画面３６４は、プログラミングユニット１２０の使用中以外には、折りたたんで閉じた状態（図示せず）になり、それによりプログラミングユニット１２０のサイズが小さくなり、その運搬および保管中にディスプレイ３６４の表示画面が保護される。
【００２８】
フロッピィディスクドライブがハウジング３６０内に配置され、ディスク挿入スロット（図示せず）を介してアクセス可能である。ハードディスクドライブもハウジング３６０内に配置されており、ハードディスクの起動を視覚的に表示するために、ハードディスクドライブ作動インジケータ（たとえばＬＥＤ、図示せず）を設けることができるものと考えられる。
【００２９】
当業者であれば理解されるであろうが、多くの場合に、プログラミングユニット１２０が、プログラミングされるべき埋め込み式デバイスのタイプに応じて動作モードを変える手段を設けることが望ましい。したがって、プログラミングユニット１２０を制御して、所与のタイプの埋め込み可能装置に対応する特定の方法で動作させるための、プログラム情報を格納するＥＰＲＯＭなどを含む拡張カートリッジを有することが望ましい場合がある。
【００３０】
本発明のここに示される実施形態によれば、プログラミングユニット１２０は内部プリンタ（図示せず）を備えており、患者の心電図（ＥＣＧ）のハードコピーあるいはプログラマの画像表示３６４上に表示されるグラフィックスのハードコピーを作成できるようにする。General Scanning社から入手できるＡＲ−１００プリンタなどのいくつかのタイプのプリンタが知られており、市販されている。
【００３１】
図３の斜視図には、関節式の表示画面３６４を複数の取り得る位置のうちの１つに持ち上げられ、その表示エリアがプログラミングユニット１２０の前面に位置するユーザから見えるようにしているプログラミング１２０が示される。関節式の表示画面３６４は、たとえば、陰極線管（ＣＲＴ）などと比べて比較的に薄いことを特徴とするＬＣＤあるいはエレクトロルミネ検知タイプであることが好ましい。表示画面３６４はハウジング３６０内に配置されるコンピュータ回路部に動作可能に結合され、内部コンピュータの制御下で、グラフィックスおよび／またはデータの視覚的表示を提供するようになっている。
【００３２】
図３を参照して本明細書に記載されるプログラミングユニット１２０の一実施形態が、その全体が参照によって本明細書に援用される、Thomas J. Winklerに発行された「Portable Computer Apparatus With Articulating Display Panel」と題する米国特許第５，３４５，３６２号にさらに詳細に記載される。また、本発明を都合よく実施することができる他の埋め込み可能装置プログラミングユニットにはＭｅｄｔｒｏｎｉｃ Ｍｏｄｅｌ ９７６０あるいは９７９０プログラマがある。
【００３３】
図４を参照すると、埋め込み可能医療デバイス（ＩＭＤ）４００およびその埋め込み可能医療デバイス４００を制御する埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０とを備える、本発明によるデバイスの種々の例示的な実施形態の全体的なブロック図が示される。埋め込み可能医療デバイス（ＩＭＤ）４００は、埋め込み可能抗徐脈ペースメーカおよび／または埋め込み可能抗頻脈ペースメーカなどの埋め込み可能ペースメーカ用の埋め込み可能パルス発生器（ＩＰＧ）を備えてよい。埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は上位レベルファームウエア４２０と、下位レベルファームウエア４３０とを有してもよい。埋め込み可能医療デバイス（ＩＭＤ）４００および埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０はカプラ４４０を介して通信してもよい。埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、プリエンプティブなリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる。埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、モジュール式の特徴部デザイン、モジュール式の特徴部実施態様、拡張可能な特徴部デザインおよび拡張可能な特徴部実施態様のうちの少なくとも１つを可能にするファームウエアアーキテクチャを有する。
【００３４】
図５に示されるように、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を有する埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、第１のモジュール特徴部５００および第２のモジュール特徴部５１０などの複数のモジュール式の特徴部を有することができる。埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のファームウエアアーキテクチャは、特徴部間で相互に作用し合うのを減らすために、第１のモジュール特徴部５００および第２のモジュール特徴部５１０などの複数のモジュール式の特徴部間を調整してよい。
【００３５】
埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０はまた、レート領域（毎分脈拍数あるいはＢＰＭ）で動作する少なくとも１つの識別可能な第１のモジュール特徴部、たとえば第１のモジュール特徴部５００と、間隔領域（通常はミリ秒あるいはｍｓｅｃ）で動作する少なくとも１つの識別可能な第２のモジュール特徴部、たとえば第２のモジュール特徴部５１０との間を効率的に変換できるようにする変換部（図示せず）も有してよい。変換部は、上位レベルファームウエア４２０および／または下位レベルファームウエア４３０に収容されてよい。別法として、および／またはさらに、変換部は、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０内の他のどこかに収容されてよい。いくつかのモジュール特徴部は所望のペーシングレートを出力し、上位レベルファームウエア「調停部(arbitrator)」（図５に示されるような、上位レベルファームウエア４２０内に配置されるファームウエア調停部５３０など）が、そのモジュール特徴部によって出力される所望のペーシングレートを用いるか、あるいは異なるモジュール特徴部からの別の値を用いることを決定してよい。
【００３６】
図６〜図８に示されるように、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０を用いて埋め込み可能医療デバイス（ＩＭＤ）４００を制御することは、ファームウエアにモジュール特徴部を追加すること、ファームウエアのモジュール特徴部を変更すること、およびファームウエアからモジュール特徴部を削除することのうちの少なくとも１つを含んでよい。図６に示されるように、たとえば、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０を用いて埋め込み可能医療デバイス（ＩＭＤ）４００を制御することは、追加されたモジュール特徴部５００のようなモジュール特徴部を下位レベルファームウエア４３０に追加することを含んでよい。図７に示されるように、たとえば、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０を用いて埋め込み可能医療デバイス（ＩＭＤ）４００を制御することは、下位レベルファームウエア４３０内の変更されたモジュール特徴部６００のようなモジュール特徴部を変更することを含んでもよい。図８に示されるように、たとえば、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０を用いて埋め込み可能医療デバイス（ＩＭＤ）４００を制御することは、下位レベルファームウエア４３０から、削除されたモジュール特徴部８００（破線で示される）のようなモジュール特徴部を削除することを含んでもよい。
【００３７】
以下にさらに詳細に記載される、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のファームウエアアーキテクチャによって、モジュール式の特徴部デザイン、モジュール式の特徴部実施態様、拡張可能な特徴部デザインおよび拡張可能な特徴部実施態様のうちの少なくとも１つが可能になる。種々の例示的な実施形態において、ファームウエアアーキテクチャそのものが、上位レベルファームウエア４２０がバス５２０を介して下位レベルファームウエア４３０と通信し、および／または下位レベルファームウエア４３０を指示するようにして、第１のモジュール特徴部５００および第２のモジュール特徴部５１０のような複数のモジュール式の特徴部間を調整し、特徴部間での相互作用を減らす。たとえば、そのファームウエアアーキテクチャは、第１のモジュール特徴部５００および／または第２のモジュール特徴部５１０を調べて、第１のモジュール特徴部５００および／または第２のモジュール特徴部５１０をデバッグすることにより、第１のモジュール特徴部５００と第２のモジュール特徴部５１０との間を調整し、特徴部間での相互作用を減らす。
【００３８】
図９に示されるように、プリエンプティブなリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、スケジューリング機構９００を有してもよい。埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、ダウンロード可能ソフトウエアインタフェース９１０および／または不揮発性メモリ９２０を有してもよい。
【００３９】
図１０に示されるように、プリエンプティブなリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、プライオリティ継承プロトコルを用いるスケジューリング機構１０００を有してもよい。プライオリティ継承プロトコルを用いるスケジューリング機構１０００を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、レート単調性解析を用いて解析されることができる。プライオリティ継承プロトコルを用いるスケジューリング機構１０００を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電力消費、中央処理ユニット（ＣＰＵ）帯域幅などのリソースに制約がある装置および／またはシステムにおいて用いられてもよい。プライオリティ継承プロトコルを用いるスケジューリング機構１０００を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、ダウンロード可能ソフトウエアインタフェース１０１０および／または不揮発性メモリ１０２０を有してもよい。
【００４０】
図１１に示されるように、プリエンプティブなリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、スケジューリング機構１１００を有することができる。埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、１つまたは複数の呼出しテーブルを備えるダウンロード可能ソフトウエアインタフェース１１１０および／または電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）不揮発性メモリ１１２０も有することができる。
【００４１】
図１２に示されるように、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、プライオリティ継承プロトコルを用いるスケジューリング機構１２００を有することができる。プライオリティ継承プロトコルを用いるスケジューリング機構１２００を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、レート単調性解析を用いて解析されることができる。プライオリティ継承プロトコルを用いるスケジューリング機構１２００を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電力消費、中央処理ユニット（ＣＰＵ）帯域幅などのリソースに制約があるデバイスおよび／またはシステムにおいて用いられてもよい。プライオリティ継承プロトコルを用いるスケジューリング機構１２００を有するプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０は、１つまたは複数の呼出しテーブルを備えるダウンロード可能ソフトウエアインタフェース１２１０および／または電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）不揮発性メモリ１２２０を有してもよい。
【００４２】
埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のファームウエアアーキテクチャはモジュール式に、かつ／または拡張可能なようにデザインされ、ＲＡＭウエアとしても知られているダウンロード可能ソフトウエアに対するサポートを改善する。種々の例示的な実施形態において、ファームウエアアーキテクチャの改善は、リアルタイムオペレーティングシステム（ＲＴＯＳ）を用いて、プリエンプティブスケジューリングを提供し、かつデッドロックおよび際限のないプライオリティの逆転を防ぐとともに、厳密なタイミング解析を支援できるようにすることを含む。
【００４３】
ダウンロード可能ソフトウエア（ＲＡＭウエア）は、テレメトリによって、たとえば上記のような、１つまたは複数の呼出しテーブルを備えるダウンロード可能ソフトウエアインタフェース１２１０を介して、新たなソフトウエア（パラメータ値ばかりでなく、実行可能コードも）を埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０にロードする能力である。このダウンロード可能コード（ＲＡＭウエア）はたとえば、電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）不揮発性メモリ１２２０内にバックアップされることができ、それにより、ダウンロード可能コード（ＲＡＭウエア）は埋め込み可能医療デバイス（ＩＭＤ）４００ための治療プログラムへの永続的な変更を可能にし、装置リセットを切り抜けることができるようになる。
【００４４】
種々の例示的な実施形態において、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のファームウエアアーキテクチャは強制排除を用いており、ダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションが、その自らの個別のタスクを作成できるようにする。これは上記のような従来の装置とは異なり、従来の装置では、ＲＡＭウエアアプリケーションは、エンベデッドファームウエア内の既存の「タスク」の間に存在しなければならず、その場合に、ＲＡＭウエアアプリケーションはタイミング問題を生み出すこともあり、ファームウエアがファームウエアデッドラインの全てを達成するのを難しくしていた。
【００４５】
種々の例示的な実施形態において、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のファームウエアアーキテクチャは、イベントによって駆動されるタスク間通信、呼出しテーブルおよびプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を利用する。結果として、これらの種々の例示的な実施形態では、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のファームウエアアーキテクチャによって、ダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは、リードオンリーメモリ（ＲＯＭ）常駐アプリケーションのデザインと同じようにして立案されるようになる。これらの種々の例示的な実施形態では、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは、全てのプリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）サービスを含む、埋め込み式ファームウエアにおいて提供される最大限の機能を利用することができる。ダウンロード可能ソフトウエア（ＲＡＭウエア）機能呼出しは、リードオンリーメモリ（ＲＯＭ）常駐機能呼出しテーブルに挿入され、かつ／または付加されることができる。別法として、および／またはさらに、ダウンロード可能ソフトウエア（ＲＡＭウエア）機能呼出しは、機能呼出しテーブル内のリードオンリーメモリ（ＲＯＭ）常駐エンティティの代わりに用いてよい。
【００４６】
これらの種々の例示的な実施形態において、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは、新たなフォアグラウンドタスクとして作成されてよい。同様に、これらの種々の例示的な実施形態において、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）不揮発性メモリ内にバックアップされることができるため、ダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは、装置リセットに起因して失われることを心配することなく、持続的な、命にかかわる重要な治療として提供されることができる。さらに、たとえば、研究志向の目的の場合の一時的なダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは、持続的なダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションの「上に」ダウンロードされてよく、それにより、永続的なダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションを有するデバイスが調査研究に含まれるようにする。
【００４７】
種々の例示的な実施形態において、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）がプライオリティ継承プロトコルを含むことに起因して、そのアーキテクチャが厳密なタイミング解析にかけられることができるので、埋め込み可能医療デバイス（ＩＭＤ）コントローラ４１０のダウンロード可能ソフトウエア（ＲＡＭウエア）アプリケーションは完全に解析され、リードオンリーメモリ（ＲＯＭ）常駐特徴部の正常な機能の破壊が起こり得るという心配を軽減することができる。
【００４８】
モジュール式の特徴部は「レート領域」において動作することができ、計算は毎分心拍数（ｂｐｍ）の単位で実施される。これらの計算のために８ビット値を用いることにより、０ｂｐｍ〜２５５ｂｐｍ（２８＝２５６）の範囲にわたって毎分１心拍数（１ｂｐｍ）のステップの分解能を提供することができ、それは徐脈および頻脈治療アプリケーションの場合の条件を満たしている。別の例示的な実施形態では、計算のために１６ビット値を用いて、０ｏｐｐｍ〜６５５３５ｏｐｐｍ（２１６＝６５５３６）の範囲にわたって毎分１動作（１ｏｐｐｍ）のステップの分解能を提供することができ、それは特定の神経学的治療アプリケーションの場合の条件を満たしている。
【００４９】
上記のように、いくつかのモジュール式の特徴部は所望のペーシングレートを出力し、上位レベルファームウエア「調停部」（図５に示されるような、上位レベルファームウエア４２０内に配置されるファームウエア調停部５３０など）が、そのモジュール式の特徴部によって出力される所望のペーシングレートを用いるか、あるいは異なるモジュール式の特徴部からの別の値を用いることを決定してもよい。最も簡単な形態では、最も高いペーシングレートが上位レベルファームウエア調停部によって選択される。より複雑な形態では、高い方のペーシングレートが、低い方のペーシングレートを有するいくつかのモジュール式の特徴部に対する優先度を失う可能性がある。いくつかのモジュール式の特徴部はオフセット値を出力し、房室（ＡＶ）適応(adaptation)の場合と同様に、上位レベルファームウエア動作がオフセット値のうちのいくつか、あるいは全てを組み合わせてよい。いくつかのモジュール式の特徴部は、検知房室（ＳＡＶ）パラメータ値がオート心室後心房不応アルゴリズム（Auto Post-Ventricular Atrial Refractory algorithm）を通過するように、無変更あるいは変更済みいずれかの１つまたは複数のパラメータ値を通過させることができる。
【００５０】
一時的な動作中に、モード、補充間隔、ペーシング房室（ＰＡＶ）間隔、検知房室（ＳＡＶ）間隔、心室後心房不応期（ＰＶＡＲＰ）などの重要なペーシング治療パラメータが固定値に保持され、治療の流れにおいてモジュール特徴部によって変更されない。結果として、モジュール特徴部は治療動作中に動作を停止される必要はない。
【００５１】
第１のモジュール特徴部５００および第２のモジュール特徴部５１０のような各モジュール特徴部は、たとえば、下位レベルファームウエア４３０内のファームウエアサブルーチンであってよい。各モジュール特徴部ファームウエアサブルーチンは、上位レベルファームウエア４２０によって呼び出されてよい。各モジュール特徴部が上位レベルファームウエア４２０によって呼び出されるとき、モジュール特徴部は最初に、その特定のモジュール特徴部が「オン」であるようにプログラミングされるか否かを判断するために調べ、その後、モードが適切であるかを調べる。全てのチェックに合格する（その特定のモジュール特徴部が「オン」であるようにプログラミングされており、かつ適切である）場合に限り、その特定のモジュール特徴部アルゴリズムが実行され続ける。そうでない場合には、その特定のモジュール特徴部は、適切なレートあるいはオフセット値、および／または無変更の値のような特有のデフォルト値を出力し、終了する。
【００５２】
さらに、本発明の別の実施形態では、埋め込み式医療デバイス４００の動作に対する変更を実施することができる。詳細には、本発明の実施形態は、埋め込み式医療デバイス４００内に存在するファームウエアコードの実行を効率的に変更できるようにする。本発明の実施形態は、遠隔方式で（すなわち、無線形式あるいは他の遠隔通信方法を用いて通信することにより）埋め込み式医療デバイス４００のファームウエアコードおよび機能にパッチを当て、それらを変更し、および／または更新するための方法および装置を提供する。一実施形態では、これらの変更は、埋め込み式医療デバイス４００の動作中に現場で行うことができる。
【００５３】
一実施形態では、埋め込み式医療デバイス４００内のソフトウエアコードの実行の通常のフローを中断し、付加的なトラップ／パッチソフトウエアコード（たとえば、プログラミングユニット１２０を介して埋め込み可能医療デバイス４００に追加される付加コード）を実行するための、ハードウエア／ファームウエアトラップ（ファームウエアトラップ）が供給される。一実施形態では、トラップ／パッチソフトウエアコード（パッチコード）が実行されるとき、埋め込み可能医療デバイス４００内の元のソフトウエアコード（ファームウエアコード）の実行フローが再開される。本発明の実施態様によって提供される少なくとも１つの利点は、埋め込み可能医療デバイス４００による通常のファームウエア実行が一時的に先取りされ、その後、事実上最小限の外部コードおよび労力で、分岐がなされたファームウエア内のポイントに戻されることができることである。
【００５４】
ここで図１３を参照すると、本発明の一実施形態による、ハードウエア／ファームウエアトラップを実施する一実施形態のブロック図が示される。一実施形態では、ＣＰＵ２３２は、埋め込み式医療デバイス４００内に格納されるファームウエアによって指示されるタスクを実施する。ファームウエアは、ＣＰＵ２３２が実行するためのプログラムを含んでおり、ＲＡＭ／ＲＯＭユニット２３０に格納されてよい。ＣＰＵ２３２は、バス５２０を介してＲＡＭ／ＲＯＭユニット２３０からプログラムデータを取得する。別の実施形態では、ファームウエアコードは不揮発性メモリ１０２０に格納されてもよい。一実施形態では、不揮発性メモリ１０２０は、ＥＥＰＲＯＭ、ＰＲＯＭ、フラッシュメモリユニットおよび／または他の不揮発性メモリ素子を含んでよい。
【００５５】
一実施形態では、ハードウエア／ファームウエアトラッピングシステム１３００は、ファームウエアコードの実行中に、ＣＰＵ２３２が中断され、別の場所で、追加の１組のコード（すなわち、トラップ／パッチコード）が実行され、その後、埋め込み可能医療デバイス４００の動作がファームウエアコードに呼び戻されるように実施されてよい。一実施形態では、１組のソフトウエアコード（すなわち、トラップ／パッチコード）が不揮発性メモリ１０２０から転送され、ＲＡＭ／ＲＯＭユニット２３０内のＲＡＭユニット２３１に移されて、その１組のコードの割込みが実行されてよい。一実施形態では、ＲＡＭユニット２３１は複数のＲＡＭ半導体チップから構成されてよい。トラップ／パッチコードの実行後に、ＣＰＵ２３２はファームウエアコードの通常の実行フローに戻されてよい。ＣＰＵ２３２によって実行される、ファームウエアコードの実行の通常のフローの割込みは、ハードウエア／ファームウエアトラップユニット１３１０によって実施されてよい。一実施形態では、ハードウエア／ファームウエアトラップユニット１３１０はバス５２０を介してＣＰＵ２３２と通信することができる。
【００５６】
ここで図１４を参照すると、本発明の一実施形態による、ＣＰＵ２３２とハードウエア／ファームウエアトラップユニット１３１０との間のやりとりのブロック図が示される。ＣＰＵ２３２は、実行されているプログラムコードの物理アドレスをハードウエア／ファームウエアトラップユニット１３１０に供給することができる。それゆえ、ハードウエア／ファームウエアトラップユニット１３１０は、トラップ／パッチソフトウエアコードを実行するための割込みポイントを判定するために、ファームウエアの実行フローと、埋め込み可能医療デバイス４００の動作フローとを監視することができる。
【００５７】
ハードウエア／ファームウエアトラップユニット１３１０は、ハードウエアユニット、ソフトウエアユニット、ファームウエアユニットおよび／またはその３つの組み合わせを含むことができる。ハードウエア／ファームウエアトラップユニット１３１０は、ＣＰＵ２３２から受信される物理アドレスを監視することができ、特定の物理アドレスを特定する識別子が受信されたか否かを判定する。一実施形態では、ハードウエア／ファームウエアトラップユニット１３１０内のトラッピングユニット１４１０が、実行されるファームウエアコードをトラップするために用いることができる特定のポインタに対して、ＣＰＵ２３２から受信される物理アドレスを調べる。一実施形態では、トラッピングユニット１４１０は、ポインタ、すなわちハードウエア／ファームウエアトラップがファームウエアコード内に呼び出されることになるイベントを検出するのに応答して、割込み信号をアサートすることができ、その割込み信号はＣＰＵ２３２に送られることができる。一実施形態では、トラッピングユニット１４１０によって生成される割込みは、ＣＰＵ２３２の動作フローを中断させるマスク不可能割込み（ＮＭＩ）であってよい。
【００５８】
ハードウエア／ファームウエアトラップユニット１３１０によって受信される物理アドレスには、個別のＲＯＭアドレス、ＲＡＭアドレス、メモリマップレジスタアドレス、不揮発性メモリ１０２０内のアドレスなどの複数のアドレスタイプのうちの１つであってよい。ライン１４２０上で割込み信号を受信するとすぐ、ＣＰＵ２３２はファームウエアコードの実行の通常のフローを中断し、別の場所にジャンプして、トラップ／パッチコードを実行する。トラップ／パッチコードがほぼ終了するとすぐ、ＣＰＵ２３２はジャンプしたポイントに戻り、ファームウエア実行の通常のフローに戻る。
【００５９】
ここで図１５を参照すると、本発明の一実施形態によるトラッピングユニット１４１０の一実施形態のブロック図が示される。トラッピングユニット１４１０は、第１の比較器ユニット１５１０、第２の比較器ユニット１５３０、第Ｎの比較器ユニット１５５０を備える。一実施形態では、Ｎは４に等しく、トラッピングユニット１４１０は４つの比較器ユニットを備えてよい。しかし、トラッピングユニット１４１０内に任意の数の複数の比較器ユニットが存在してよいことが理解されるべきである。一実施形態では、各比較器ユニット１５１０、１５３０、１５５０内に１つまたは複数の比較器回路部が存在してよい。
【００６０】
トラッピングユニット１４１０は、第１のトラップレジスタ１５２０、第２のトラップレジスタ１５４０、第Ｎのトラップレジスタ１５６０も備えており、それらのレジスタはそれぞれ、第１、第２ないし第Ｎの比較器ユニット１５１０、１５３０、１５５０に対応する。一実施形態では、各トラップレジスタ１５２０、１５４０、１５６０は、その対応する比較器ユニット１５１０、１５３０、１５５０に、１組のトラップ／パッチソフトウエアコードを指示するポインタアドレスを供給する。比較器ユニット１５１０、１５３０、１５５０は、ファームウエア実行フローを中断させるトラップまたはフックが確認されたか否かを判定するために、ポインタアドレスと物理アドレスとの比較を実施する。言い換えると、比較器ユニット１５１０、１５３０、１５５０はそれぞれ、ハードウエア／ファームウエアトラップ条件が満たされたか否かを判定するために、物理アドレスを、対応するトラップレジスタ１５２０、１５４０、１５６０内に格納されるデータと比較する。
【００６１】
一実施形態では、物理アドレスには１６ビットアドレスを用いてよく、トラップレジスタ内のデータも１６ビット値からなってよい。ハードウエア／ファームウエアトラップユニット１３１０は、命令が、ハードウエア／ファームウエアトラップであってよい４つの個別のＲＯＭアドレスのうちの１つにアクセスするときに、ハードウエアがＮＭＩ（マスク不可能割込み）を生成するための手段をサポートしてよい。言い換えると、ハードウエアはＮＭＩを介して実行中のファームウエアを「トラップ」するであろう。トラップされたアドレスは、トラップレジスタ１５２０、１５４０、１５６０に書き込まれる値によって判定されることができる。一実施形態では、トラップレジスタ１５２０、１５４０、１５６０に書き込まれるレジスタ値は、ＲＯＭ物理アドレスの１７ビットのうちの１６ビットを含んでよい。それゆえ、偶数および奇数アドレスは同じものであると見なすことができ、通常の２０ビット物理アドレスはＲＯＭインデックスから除去されてよい。
【００６２】
偶数アドレスと奇数アドレスとの間の二重性を減らすために、ロード命令（ＬＩ）信号およびチップセレクト（ＣＳ）も比較動作の一部としてよい。一実施形態では、ＮＭＩは、トラップレジスタ１５２０、１５４０、１５６０のうちの少なくとも１つへの書込みを実行するハードウエア／ファームウエアトラップユニット１３１０によってクリアされてよい。一実施形態では、トラップレジスタ１５２０、１５４０、１５６０への書込みは、ハードウエア／ファームウエアトラップユニット１３１０がＮＭＩベクトルをイネーブルする前に実施される。これは、ハードウエア／ファームウエアトラップが意図されない場所に呼び出される可能性を減らすことができる。さらに、ハードウエア／ファームウエアトラップは、リセット値をトラップレジスタ１５２０、１５４０、１５６０に（たとえば、トラップアドレスとして０ｘＦＦＦＦをトラップレジスタ１５２０、１５４０、１５６０に）ロードすることにより無効にされてよい。
【００６３】
比較器ユニット１５１０、１５３０、１５５０およびトラップレジスタ１５２０、１５４０、１５６０の組のうちの任意のものがライン１５６１、１５６２あるいは１５６３上でハードウエア／ファームウエアトラップ検出信号をアサートすることができ、それらのラインは、１つまたは複数のＯＲゲートを備えることができるＯＲ演算ユニット１５７０によって集めることができる。ライン１５６１、１５６２あるいは１５６３上のハードウエア／ファームウエアトラップ検出信号の任意のもののアサートによって、ＯＲ演算ユニット１５７０がライン１４２０上に割込み信号をアサートするようになるであろう。その後、ライン１４２０上の割込み信号はＣＰＵ２３２に送られ、トラップ／パッチコードによって指示される命令を実行するために、ファームウエア実行のフローが中断される。一実施形態においてＲＡＭユニット２３１から実行されるパッチコードが終了するとすぐ、プログラムフローはファームウエアコードから行われたジャンプの位置に戻される。
【００６４】
一実施形態では、ハードウエア／ファームウエアトラップが開始されたファームウエア実行フロー内の命令は一般的には実行されない。ＮＭＩは、ファームウエア内の現在の命令が実行される前に、割込みが、ＣＰＵ２３２によって取得されるように十分に早く開始される。さらに、ＲＴＩに先行してスタック上にある復帰アドレスが変更されてよい。それゆえ、その特定のハードウエア／ファームウエアトラップが再び開始されるのを避けることができる。ハードウエア／ファームウエアがトラップされたファームウエア命令を実行するために、一実施形態では、ファームウエア内のその特定の命令は、ＮＭＩによって立ち上がった割込みサービスルーチンの時間枠内で実行される。
【００６５】
一実施形態では、トラップ／パッチソフトウエアコードは、不揮発性メモリ１０２０内に格納され、実行する場合にＲＡＭユニット２３１に移される。一般的に、ファームウエアコードは、ＲＡＭユニット２３１から実行されることができるトラップ／パッチコードとは対照的に、ＲＡＭ／ＲＯＭユニット２３０内のＲＯＭ空間から実行される。したがって、ＲＡＭユニット２３１からのプログラム実行の全使用回数が減り、それにより埋め込み可能医療デバイス４００全体の安定性が増す。別の実施形態では、トラップ／パッチコードは、不揮発性メモリ１０２０のような他のメモリ素子から実行されてよい。トラッピングユニット１４１０は他の論理回路部／ソフトウエア／ファームウエアを含んでよく、数多くの方法を用いて、ハードウエア／ファームウエアトラップの状況を特定することに基づいてライン１４２０上に割込み信号をアサートすることができることが理解されるべきである。たとえば、ライン１５６１〜１５６３上のトラップ検出信号は、ファームウエアプログラムフロー内の特定の場所、特定のイベント（たとえば、ペーシング治療の終了）あるいは他の条件を特定するために用いられるプログラムカウンタに基づいて、ライン１４２０上でアサートされることができる。
【００６６】
ここで図１６を参照すると、本発明の一実施形態による、ハードウエア／ファームウエアトラップを呼び出す方法の流れ図が示される。一実施形態では、埋め込み可能医療デバイス４００のファームウエア動作の通常の実行に対してなされる変更が決定される（ブロック１６１０）。一実施形態では、医師あるいはオペレータは、ファームウエアコードへの変更を呼び出すことにより、埋め込み可能医療デバイス４００の動作を変更することができる。たとえば、心臓治療のために送出される電圧レベルを変更してよい。埋め込み可能医療デバイス４００の動作への変更は、１組のトラップ／パッチソフトウエアコードを変更あるいは追加することにより作成されてよい。埋め込み可能医療デバイス４００の動作への変更、修正および／またはアップグレードは、埋め込み可能医療デバイス４００にトラップ／パッチソフトウエアを追加することにより実行されてよい。より具体的には、埋め込み可能医療デバイス４００の動作への変更、修正および／またはアップグレードは、ファームウエアコードの実行フロー内で、特定の間隔でトラップ／パッチソフトウエアコードを実行することにより実施されてよい。
【００６７】
埋め込み可能医療デバイス４００が、ファームウエアコードを実行することにより、その動作を実施する（ブロック１６２０）。一実施形態では、ファームウエアはＣＰＵ２３２によって絶え間なく実行される。トラップ／パッチソフトウエアコードを、埋め込み式医療デバイス４００の動作に適用するために、ハードウエア／ファームウエアトラップが構成されるＣＰＵ２３２によって実施されるファームウエア実行フローを中断するようにする（ブロック１６３０）。一実施形態では、トラップは、特定の所定のイベントおよび／または他の条件を調べる、プログラムカウンタのような種々の技術を用いて構成されることができる。
【００６８】
ハードウエア／ファームウエアトラップは、特定のメモリロケーションにおいて構成されてよく、特定のメモリロケーションにアクセスする埋め込み可能医療デバイス４００内の任意のデバイスがトラップ／パッチソフトウエアコードに送られる、すなわちジャンプさせられるようにする。プログラムカウンタが、ファームウエアコードの実行のフローの数値的な記録を保持し、特定のプログラムカウンタに基づいてジャンプ状況に入ることができる。さらに、ペーシング治療送出の終了のようなイベントによって、埋め込み可能医療デバイス４００が、ファームウエアの実行位置から、トラップ／パッチソフトウエアコードの実行にジャンプできるようになる。
【００６９】
ファームウエア実行フローの割込み時に、埋め込み可能医療デバイス４００はさらに別のトラップ／パッチソフトウエアプログラムを実行してよい（ブロック１６４０）。さらに別のトラップ／パッチコードの実行を利用して、埋め込み可能医療デバイス４００の既存の動作が抱える問題を修正し、新たな機能を追加し、かつ／または埋め込み可能医療デバイス４００の動作あるいはソフトウエアなどをアップグレードしてよい。さらに別のトラップ／パッチソフトウエアプログラムを実行することにより、埋め込み可能医療デバイス４００に新たな機能を追加することができる。たとえば、さらに別のトラップ／パッチソフトウエアコードの実行に基づいて、新たな診断データを記録することができる。さらに、付加的なトラップ／パッチソフトウエアコードの実行に基づいて、特定のタスクを埋め込み可能医療デバイス４００に追加することができる。たとえば、埋め込み可能医療デバイス４００は、毎日午前３時に、特定のタスクを実施することができる。一実施形態では、トラップ／パッチソフトウエアコードは一般的にＲＡＭユニット２３１において実行される。
【００７０】
一旦、付加的なトラップ／パッチソフトウエアコードが実行されると、埋め込み可能医療デバイス４００はファームウエアプログラムの通常の実行に戻ってよい（ブロック１６５０）。言い換えると、トラップ／パッチソフトウエアコードが終了するとすぐ、ＣＰＵ２３２は、割込みが受信された実行順序のポイント（すなわち、ハードウエア／ファームウエアトラップが設定されたファームウエア実行フローの位置）に戻ってよい。さらに、プログラムカウンタの復帰アドレスを変更してもよい。一旦、ファームウエアコードの実行がその元の場所に戻ると、ＣＰＵ２３２はファームウエアコードを実行し続け、埋め込み可能医療デバイス４００の動作が通常どおりに続けられる（ブロック１６６０）。
【００７１】
ここで図１７を参照すると、本発明の一実施形態による、埋め込み可能医療デバイス４００の動作に対してなされることになる変更を決定／定義することに関する一実施形態の流れ図が示される。埋め込み可能医療デバイス４００の動作に対する変更（すなわち、パッチ／変更／アップグレード）を実行するためのソフトウエア、ハードウエアあるいはファームウエアが決定される（ブロック１７１０）。
【００７２】
その後、トラップ／パッチソフトウエアコード（パッチコード）が、埋め込み可能医療デバイス４００内の不揮発性メモリ１０２０に格納される（ブロック１７２０）。一実施形態では、トラップ／パッチソフトウエアコードは、プログラミングユニット１２０を介して、埋め込み可能医療デバイス４００内にダウンロードされてよい。別の実施形態では、トラップ／パッチソフトウエアコードは、プログラミングユニット１２０から受信される入力に基づいて、埋め込み可能医療デバイス４００で形成されてよい。
【００７３】
一実施形態では、トラップ／パッチコードは、ＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどの不揮発性メモリ１０２０に格納される。さらに、ＣＰＵ２３２がハードウエア／ファームウエアトラップの場所を探し、識別することを可能にするポインタ／アドレスが埋め込み可能医療デバイス４００に供給される（ブロック１７３０）。図１７に示すステップを実行することによって提供される情報を用いて、ハードウエア／ファームウエアトラップユニット１３１０およびＣＰＵ２３２は、ファームウエア実行フローを中断し、適切なトラップ／パッチソフトウエアコードを実行するためのハードウエア／ファームウエアトラップを作成することを可能にされてよい。図１７に示されるステップがほぼ終了することにより、図１６のブロック１６１０に示されるような、埋め込み可能医療デバイス４００の動作に対するパッチ／変更／アップグレードを決定／定義するステップがほぼ終了する。
【００７４】
ここで図１８を参照すると、図１６のブロック１６３０に記載される、ファームウエア実行フローを中断するためのハードウエア／ソフトウエアトラップの作成を実施することに関する一実施形態の流れ図が示される。ＣＰＵ２３２が、トラップ／パッチソフトウエアコードに導くポインタを識別するための方法および／または手段が構成され、ＣＰＵ２３２およびハードウエア／ファームウエアトラップユニット１３１０に供給される（ブロック１８１０）。一実施形態では、物理アドレスをトラップレジスタアドレスと比較して、ハードウエア／ファームウエアトラップに達したか否かを判定するトラッピングユニット１４１０が設けられる。ＣＰＵ２３２をトラップ／パッチソフトウエアに導くポインタ／アドレスには、ファームウエアにおいて実行されたプログラムのステップ数をカウントするのに用いられるプログラムカウンタであってよく、プログラムカウンタは、トラップ／パッチソフトウエアコードへのジャンプに導くことができる。別の実施形態では、ペーシング治療送出の終了などの、特定のイベントが、トラップ／パッチソフトウエアコードへのジャンプを開始させることができる。別法として、ハードウエア／ファームウエアトラップは、特定のメモリロケーション内に設定されることができ、その特定のメモリロケーションへの任意のアクセスによって、そのトラップ／パッチソフトウエアコードへのジャンプが引き起こされる。
【００７５】
ＣＰＵ２３２がハードウエア／ファームウエアトラップのためのポインタ／アドレスを識別するための手段が構成されると、ハードウエア／ファームウエアトラップユニット１３１０はファームウエアコードの実行を監視し、トラップ／パッチソフトウエアコードに導くことができる、特定のポインタを調べる（ブロック１８２０）。ハードウエア／ファームウエアトラップユニット１３１０が、特定のポインタが見つからなかったと判定するとき、トラップユニット１３１０はファームウエアコードの実行を監視し続ける（ブロック１８３０）。
【００７６】
ハードウエア／ファームウエアトラップユニット１３１０が、ポインタが見つかったと判定するとき、ハードウエア／ファームウエアトラップユニット１３１０は不揮発性メモリ１０２０からのトラップ／パッチコードを、実行用のＲＡＭユニット２３１にロードする（ブロック１８４０）。トラップ／パッチソフトウエアコードは一般的に、バス５２０を介して、不揮発性メモリ１０２０からＲＡＭユニット２３１に移動する。別の実施形態では、トラップ／パッチソフトウエアコードの移動は、より短い期間で起こってよい。その後、ＣＰＵ２３２は、ポインタ／アドレスに基づいて、ＲＡＭユニット２３１内のトラップ／パッチコードにジャンプする（ブロック１８５０）。この時点で、ＣＰＵ２３２は、見つけられ、ハードウエア／ファームウエアトラップユニット１３１０によって提示された１組のトラップ／パッチソフトウエアコードを実行することが可能になる。図１８に示すステップを終了することにより、ブロック１６３０に示されるようなファームウエアプログラムフローを中断するトラップを構成するステップがほぼ終了する。その後、埋め込み可能医療デバイス４００は、図１６に示すステップを実行し続ける。本発明の教示は、種々の電子デバイスに適用されることができ、それでも依然として本発明の精神の範囲内にある。
【００７７】
本発明による方法および装置のここまでに開示された実施形態のうちの任意のものによって、治療特徴部が、モジュール式で、および／または拡張可能であることが可能になり、埋め込み可能医療デバイス内の多くの特徴部間の相互作用が解決される。さらに、本発明による方法および装置のここまでに開示された実施形態のうちの任意のものによって、特徴部が、所与のデザインにおいて、容易にかつ迅速に、追加および／または変更および／または削除されることが可能になり、治療特徴部のための一時的な値が作成されることができ、それらの特徴部の開発および／または試験が簡略化される。さらに、本発明による方法および装置のここまでに開示された実施形態のうちの任意のものによって、特徴部が毎分心拍数（ｂｐｍ）の「レート領域」において動作することが可能になり、ハードウエアタイミング回路部にロードされるパラメータ値のための「間隔領域」に戦略上重要な変換を行うことができ、モジュール特徴部アルゴリズムがレート領域および／または間隔領域において動作している場所が明確に特定されることができ、レート領域と間隔領域の間の変換が効率的に利用できるようになる。
【００７８】
先に開示した特定の実施形態は例示にすぎず、本発明は、本明細書の教示の利益を享受する当業者には明らかな、異なるが等価な方法で変更され、実施されることができる。さらに、添付の特許請求の範囲に記載されている以外は、本明細書に示される構成あるいはデザインの細部に何の制限も意図されていない。それゆえ、先に開示した特定の実施形態は変更あるいは修正されてよく、全てのそのような変形形態が本発明の範囲および精神の範囲内にあると考えられることは明らかである。特に、本明細書に開示される値の全ての範囲（「約ａ〜約ｂ」、あるいは同じく、「約ａ〜ｂ」、あるいは同じく、「約ａ〜ｂ」の形を有する）は、ゲオルク・カントルの集合論の意味で、値の個々の範囲のベキ集合（全ての部分集合からなる集合）のことを言っていると理解されるべきである。したがって、本明細書において求められる保護は添付の特許請求の範囲に記載されるものである。
【図面の簡単な説明】
【００７９】
【図１】本発明による埋め込み可能医療デバイス（ＩＭＤ）の概略図である。
【図２】図１の埋め込み可能医療デバイス（ＩＭＤ）のための電子回路部の概略的な全体ブロック図である。
【図３】図１の埋め込み可能医療デバイス（ＩＭＤ）のためのプログラミングユニットの一実施形態の概略的な斜視図である。
【図４】埋め込み可能医療デバイス（ＩＭＤ）と、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラとを含み、コントローラが、モジュール式の特徴部デザイン、モジュール式の特徴部実施態様、拡張可能な特徴部デザインおよび拡張可能な特徴部実施態様のうちの少なくとも１つを可能にするファームウエアアーキテクチャを有する、本発明による方法および装置の種々の例示的な実施形態の概略的な全体ブロック図である。
【図５】複数のモジュール式の特徴部を有する埋め込み可能医療デバイス（ＩＭＤ）コントローラの概略図である。
【図６】下位レベルのファームウエアに１つのモジュール式の特徴部を追加することにより、埋め込み可能医療デバイス（ＩＭＤ）コントローラを用いて埋め込み可能医療デバイス（ＩＭＤ）を制御することを示す概略図である。
【図７】下位レベルのファームウエア内の１つのモジュール式の特徴部を変更することにより、埋め込み可能医療デバイス（ＩＭＤ）コントローラを用いて埋め込み可能医療デバイス（ＩＭＤ）を制御することを示す概略図である。
【図８】下位レベルのファームウエアから１つのモジュール式の特徴部を削除することにより、埋め込み可能医療デバイス（ＩＭＤ）コントローラを用いて埋め込み可能医療デバイス（ＩＭＤ）を制御することを示す概略図である。
【図９】スケジューリング機構、ダウンロード可能ソフトウエアインタフェースおよび不揮発性メモリを有する、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラを示す概略図である。
【図１０】プライオリティ継承プロトコルを用いるスケジューリング機構、ダウンロード可能ソフトウエアインタフェースおよび不揮発性メモリを有する、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラを示す概略図である。
【図１１】スケジューリング機構、呼出しテーブルを備えるダウンロード可能ソフトウエアインタフェースおよび電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）不揮発性メモリを有する、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラを示す概略図である。
【図１２】プライオリティ継承プロトコルを用いるスケジューリング機構、呼出しテーブルを備えるダウンロード可能ソフトウエアインタフェースおよび電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）不揮発性メモリを有する、プリエンプティブリアルタイムオペレーティングシステム（ＲＴＯＳ）を用いる埋め込み可能医療デバイス（ＩＭＤ）コントローラを示す概略図である。
【図１３】本発明の一実施形態が例示される、ハードウエア／ファームウエアトラップの一実施態様の概略的なブロック図である。
【図１４】本発明の一実施形態が例示される、図２のＣＰＵ間の相互作用と、図１３のハードウエア／ファームウエアトラップユニットとを示す概略的なブロック図である。
【図１５】本発明の一実施形態が例示される、図１４のトラッピングユニットの一実施形態の概略的なブロック図である。
【図１６】本発明の一実施形態による、ハードウエア／ファームウエアトラップを実装する方法の概略的な流れ図である。
【図１７】本発明の一実施形態による、図１６に示されるようなハードウエア／ファームウエアトラップを用いて、埋め込み式医療デバイスのファームウエアコードの実行に対する変更を決定する方法の概略的な流れ図である。
【図１８】本発明の一実施形態による、図１６に示されるようなハードウエア／ファームウエアトラップを構成する方法の概略的な流れ図である。
【図１】
2005508044.tif 000003
【図２】
2005508044.tif 000004
【図３】
2005508044.tif 000005
【図４】
2005508044.tif 000006
【図５】
2005508044.tif 000007
【図６】
2005508044.tif 000008
【図７】
2005508044.tif 000009
【図８】
2005508044.tif 000010
【図９】
2005508044.tif 000011
【図１０】
2005508044.tif 000012
【図１１】
2005508044.tif 000013
【図１２】
2005508044.tif 000014
【図１３】
2005508044.tif 000015
【図１４】
2005508044.tif 000016
【図１５】
2005508044.tif 000017
【図１６】
2005508044.tif 000018
【図１７】
2005508044.tif 000019
【図１８】
2005508044.tif 000020
【国際公開パンフレット】
2005508044.tif 000021
2005508044.tif 000022
2005508044.tif 000023
2005508044.tif 000024
2005508044.tif 000025
2005508044.tif 000026
2005508044.tif 000027
2005508044.tif 000028
2005508044.tif 000029
2005508044.tif 000030
2005508044.tif 000031
2005508044.tif 000032
2005508044.tif 000033
2005508044.tif 000034
2005508044.tif 000035
2005508044.tif 000036
2005508044.tif 000037
2005508044.tif 000038
2005508044.tif 000039
2005508044.tif 000040
2005508044.tif 000041
2005508044.tif 000042
2005508044.tif 000043
2005508044.tif 000044
2005508044.tif 000045
2005508044.tif 000046
2005508044.tif 000047
2005508044.tif 000048
2005508044.tif 000049
2005508044.tif 000050
2005508044.tif 000051
2005508044.tif 000052
2005508044.tif 000053
2005508044.tif 000054
2005508044.tif 000055
2005508044.tif 000056
2005508044.tif 000057
2005508044.tif 000058
2005508044.tif 000059
2005508044.tif 000060
2005508044.tif 000061
2005508044.tif 000062
2005508044.tif 000063
2005508044.tif 000064
2005508044.tif 000065
2005508044.tif 000066
2005508044.tif 000067
2005508044.tif 000068
2005508044.tif 000069
2005508044.tif 000070
【国際調査報告】
2005508044.tif 000071
2005508044.tif 000072