(57)【要約】      （修正有）【課題】複数のロケーションにデータを記憶するように構成された不揮発性（デバイス記憶）メモリを含む装置を提供する。【解決手段】不揮発性メモリ２２０に結合され、揮発性シャドウメモリ中の対応する複数のロケーションに不揮発性メモリの複数のロケーションのイメージを記憶するように構成された揮発性（デバイス記憶）シャドウメモリを含む、デバイスインターフェース２０２も含む。デバイスインターフェースが、バスコントローラからネットワークバスを渡ってコマンドを受信するように構成され、ネットワークバスからのデータを不揮発性メモリ中のロケーションに書き込むように構成される。この書き込みは、デバイスインターフェースが、揮発性シャドウメモリ中の対応するロケーションにデータを書き込み、その後、揮発性シャドウメモリ中の対応するロケーションから不揮発性メモリ中のロケーションにデータを書き込むように構成されることを含む。【選択図】図２
2014182815.tif 000002
【特許請求の範囲】
【請求項１】
デジタルネットワークバス（１０４）を経由してバスコントローラ（１０２）から遠隔デバイス（１０６）でコマンドを受信することであって、前記遠隔デバイス（１０６）が、複数のロケーションのデータを記憶するように構成された不揮発性メモリ（５０２）と、対応する複数のロケーションに前記不揮発性メモリ（５０２）の前記複数のロケーションのイメージを記憶するように構成された揮発性シャドウメモリ（５０４）とを含む、受信することと、
前記コマンドの受信に応答して、前記ネットワークバス（１０４）からのデータを前記不揮発性メモリ（５０２）中のロケーションに書き込むことであって、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションに前記データを書き込むことと、その後に前記揮発性シャドウメモリ（５０４）の前記対応するロケーションから前記不揮発性メモリ中（５０２）の前記ロケーションに前記データを書き込むこととを含む、書き込むことと
を含む、方法。
【請求項２】
コマンドを受信することが、書込みコマンドを受信することを含み、
前記対応するロケーションから前記データを書き込むことが、別の書込みコマンドを受信することなくタイムアウト時間を経過した後のみ、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むことを含む、請求項１に記載の方法。
【請求項３】
前記揮発性シャドウメモリ（５０４）から前記不揮発性メモリ（５０２）に書込みサイクルを遂行することであって、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むことを含む、書込みサイクルを遂行することをさらに含み、
前記書込みサイクルが、前記不揮発性メモリ（５０２）中の前記ロケーションの保護ステータスまたは非保護ステータスを検査することをさらに含み、前記ロケーションが非保護ロケーションである事例でのみ、前記データが、前記不揮発性メモリ（５０２）中の前記ロケーションに書き込まれる、請求項１に記載の方法。
【請求項４】
前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションの前記データが第２のデータであり、
前記書込みサイクルが、前記不揮発性メモリ（５０２）中の前記非保護ロケーションから第１のデータを読み出すことと、前記第１のデータを前記第２のデータと比較することとをさらに含み、前記第１のデータが前記第２のデータと異なる事例でのみ、前記第２のデータが、前記不揮発性メモリ（５０２）中の前記非保護ロケーションに書き込まれる、請求項３に記載の方法。
【請求項５】
前記検査することと書き込むこととを含む前記書込みサイクルが、前記不揮発性メモリ（５０２）の前記ロケーションの各々に対して遂行され、前記書込みサイクルのために前記揮発性シャドウメモリ（５０４）が、前記揮発性シャドウメモリ（５０４）の対応するロケーションのイメージを記憶するように構成される、請求項３に記載の方法。
【請求項６】
前記揮発性シャドウメモリ（５０４）から前記不揮発性メモリ（５０２）に書込みサイクルを遂行することであって、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むことを含み、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションの前記データが第２のデータである、書込みサイクルを遂行することをさらに含み、
前記書込みサイクルが、前記不揮発性メモリ（５０２）中の前記ロケーションから第１のデータを読み出すことと、前記第１のデータと前記第２のデータを比較することとをさらに含み、前記第１のデータが前記第２のデータと異なる事例でのみ、前記第２のデータが、前記不揮発性メモリ（５０２）中の前記ロケーションに書き込まれる、請求項１に記載の方法。
【請求項７】
前記読み出すことと、比較することと、書き込むこととを含む前記書込みサイクルが、前記不揮発性メモリの前記ロケーションの各々に対して遂行され、前記書込みサイクルのために前記揮発性シャドウメモリが、前記揮発性シャドウメモリの対応するロケーションにイメージを記憶するように構成される、請求項６に記載の方法。
【請求項８】
前記不揮発性メモリ（５０２）が、ベースメモリ（５０２ａ）と拡張メモリ（５０２ｂ）とを含み、前記揮発性シャドウメモリ（５０４）が、ベースシャドウメモリ（５０４ａ）と拡張シャドウメモリ（５０４ｂ）とを含み、
前記ベースシャドウメモリ（５０４ａ）が、前記ベースメモリ（５０２ａ）のイメージを記憶するように構成され、前記拡張シャドウメモリ（５０４ｂ）が、前記拡張メモリ（５０２ｂ）の唯一選択可能なサブセットのイメージを記憶するように構成される、請求項１に記載の方法。
【請求項９】
複数のロケーションにデータを記憶するように構成された不揮発性メモリ（５０２）と、
前記不揮発性メモリ（５０２）に結合され、対応する複数のロケーションに前記不揮発性メモリ（５０２）の複数のロケーションのイメージを記憶するように構成された揮発性シャドウメモリ（５０４）を含む、デバイスインターフェース（２０２）とを備え、
前記デバイスインターフェース（２０２）が、デジタルネットワークバス（１０４）を経由してバスコントローラ（１０２）に結合可能であり、請求項１ないし８のいずれか一項に記載の方法を遂行するように構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にネットワーク通信に関し、詳細には、揮発性シャドウメモリを介した不揮発性メモリへのアクセスに関する。
【背景技術】
【０００２】
航空宇宙、自動車および工業制御などの多くの用途で、マルチメディアエンタテイメント、通信、プロセス制御および診断システムなどのネットワークシステムが利用される。これらのシステムがより複合的になるにつれて、付加的なデバイスが互いにまたはセントラルコントローラなどと通信することが必要となってくる。ネットワークシステムは、ネットワークデバイス間に共通の通信路を提供するように開発されてきた。宇宙空間および自動車の用途では、例えば、ネットワークシステムは、種々の構成部品を監視し、歪み、加速度、圧力および／または温度に関する情報などの診断およびステータス情報を収集するために利用されうる。別の例では、ネットワークシステムは、宇宙空間または自動車の用途で、通信およびマルチメディア情報を乗員に伝えることをサポートするために、または車両などのシステムに適用されうるプロセス制御の用途での使用のために、利用されうる。
【０００３】
多くの伝統的なシステムは、望ましくないノイズおよび信号劣化を受けやすくなりうる長いアナログ配線を有する。アナログ配線を短くするように開発された現在のネットワークのシステムでさえも、高水準のプロセッサを必要とする複雑なプロトコルをいまだ使用しており、これが小型化を制約し、したがってデバイスの場所を制約し、これによりやはり長いアナログ配線となってしまう可能性がある。さらに、高水準のプロトコルが、バス上で伝送されうるデータサンプル数、データが伝送もしくは伝達されうるときのレイテンシ、またはデータのサンプリングおよび伝達の時間決定性を厳しく制約しうるオーバーヘッドをバス上のメッセージに導入する可能性がある。これらのネットワークは、一般に、取得および制御のサポートもしておらず、典型的に、比較的短い長さに延在するネットワークをサポートするだけである。さらに、これらのネットワークは、典型的に、ネットワークデバイスインターフェースがかさばり、ネットワークのデータレートが遅く、および／またはネットワークデバイスのカウントが低い。加えて、デジタルネットワークを含む多くのコンピュータシステムが、時間決定性の方式で動作せず、したがって、任意の正確なタイミングで反復しまたは翻訳され実行されるような、ネットワーク構成部品へのトリガコマンドをスケジュールする能力に欠ける。
【０００４】
プロトコルおよびデジタルネットワーク構造は、従来型のデジタルネットワークのいくつかの欠点に取り組むために開発されてきた。このプロトコルおよびデジタルネットワーク構造は、例えば、「Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｄｉｇｉｔａｌｌｙ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｄａｔａ  Ｃｈａｎｎｅｌｓ  ｔｏ  ａ  Ｃｏｎｔｒｏｌｌｅｒ  ｖｉａ  ａ  Ｎｅｔｗｏｒｋ」という名称の、２００４年３月１６日に発行された、米国特許第６，７０８，２３９号、および「Ｂｕｓ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  Ｄｉｇｉｔａｌｌｙ  Ｃｏｎｔｒｏｌｌｉｎｇ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅｓ  ｖｉａ  ａ  Ｃｏｍｍｏｎ  Ｂｕｓ」という名称の、２００２年８月１５日に公開された、米国特許出願公開第２００２／０１１２０７０号において説明されている。このプロトコルおよびネットワーク構造は、多くの従来型のデジタルネットワークに勝る多くの利点をもたらすが、典型的にはさらなる改良をすることが望まれる。
【発明の概要】
【０００５】
本開示の例示的実施は、一般に、揮発性シャドウメモリを介して不揮発性メモリにアクセスし、これにより、記憶したデータを、ネットワークバスがそのデータを受け取るのと同じ速さで入手可能にする、ための装置および方法を対象とする。例示的実施の一態様によれば、複数のロケーションにデータを記憶するように構成された不揮発性（デバイス記憶）メモリを含む装置が提供される。この装置は、不揮発性メモリに結合され、揮発性シャドウメモリ中の対応する複数のロケーションに不揮発性メモリの複数のロケーションのイメージを記憶するように構成された揮発性シャドウメモリを含む、デバイスインターフェースも含む。一例では、不揮発性メモリは、ベースメモリおよび拡張メモリを含むことができ、揮発性シャドウメモリは、ベースシャドウメモリおよび拡張シャドウメモリを含むことができる。この例では、ベースシャドウメモリが、ベースメモリのイメージを記憶するように構成され、拡張シャドウメモリは、拡張メモリの唯一選択可能なサブセットのイメージを記憶するように構成されうる。
【０００６】
例示的実施の前述の態様によれば、デバイスインターフェースは、デジタルネットワークバスを介してバスコントローラに結合可能であり、バスコントローラからネットワークバスを渡ってコマンドを受信するように構成され、それに応答して、デバイスインターフェースが、ネットワークバスからのデータを不揮発性メモリ中のロケーションに書き込むように構成される。この書込みは、デバイスインターフェースが、揮発性シャドウメモリ中の対応するロケーションにデータを書き込み、その後、揮発性シャドウメモリ中の対応するロケーションから不揮発性メモリ中のロケーションにデータを書き込むように構成されることを含む。
【０００７】
一例では、コマンドは、書込みコマンドである。この例では、デバイスインターフェースが、別の書込みコマンドを受信することなくタイムアウト時間を経過した後のみ、揮発性シャドウメモリ中の対応するロケーションから不揮発性メモリ中のロケーションにデータを書き込むように構成されうる。
【０００８】
一例では、デバイスインターフェースが、揮発性シャドウメモリから不揮発性メモリへの書込みサイクルを遂行するように構成され、それには、デバイスインターフェースが揮発性シャドウメモリ中の対応するロケーションから不揮発性メモリ中のロケーションにデータを書き込むように構成されることが含まれる。一例では、デバイスインターフェースが、不揮発性メモリのロケーションの各々に対して書込みサイクルを遂行し、この書込みサイクルのために、揮発性シャドウメモリが、揮発性シャドウメモリの対応するロケーションにイメージを記憶するように構成されうる。
【０００９】
一例では、書込みサイクルは、デバイスインターフェースが不揮発性メモリ中のロケーションの保護ステータスまたは非保護ステータスを検査するように構成され、かつロケーションが非保護ロケーションである事例でのみデバイスインターフェースが不揮発性メモリ中のロケーションにデータを書き込むように構成されることを、さらに含むことができる。
【００１０】
加えてまたはあるいは、例えば、揮発性シャドウメモリ中の対応するロケーションのデータが、第２のデータである。デバイスインターフェースが、不揮発性メモリ中の（非保護）ロケーションから第１のデータを読み取り、第１のデータを第２のデータと比較するように構成されることを、書込みサイクルがさらに含むことができる。次いで、第１のデータが第２のデータと異なる事例でのみ、デバイスインターフェースが、不揮発性メモリ中の（非保護）ロケーションに第２のデータを書き込むように構成されうる。
【００１１】
例示的実施の他の態様では、揮発性シャドウメモリを介して不揮発性メモリにアクセスするための方法が提供される。本明細書で検討された特徴、機能および利点については、種々の例示的実施で独立的に達成することができ、または、さらに他の例示的実施に組み込むことができ、さらにその詳細は、次の説明および図面を参照して理解されうる。
【００１２】
このように、本開示の例示的実施について概括的な表現で説明してきた。ここで、添付の図面を参照されたいが、これは必ずしも原寸に一致していない。
【図面の簡単な説明】
【００１３】
【図１】本開示の例示的実施が実施されうる概略的なネットワークシステムを示す図である。
【図２】本開示の種々の例示的実施で、図１に示す遠隔デバイスに対応することができる遠隔デバイスの概略的なブロック図である。
【図３】遠隔デバイスが、センサおよび／またはアクチュエータなどの周辺機器を含むことができるか、さもなければ結合されうる、一例示的実施による方法での種々のオペレーションを示す図である。
【図４】本開示の例示的実施による遠隔デバイスのメモリアーキテクチャを示す図である。
【図５】本開示の一例示的実施によるデバイス記憶メモリの概略的なブロック図である。
【発明を実施するための形態】
【００１４】
ここで、本開示のいくつかの実施については、これ以降添付の図面を参照してより十分に説明され、本開示の全てではないがいくつかの実施が示される。実際には、本開示の種々の実施については、多くの異なる形状で実現することができ、本明細書に明記された実施に限定されると解釈されるべきではなく、むしろ、本開示が、徹底かつ完成されていること、また本開示の範囲を当業者に十分に伝えるように、これらの例示的実施が、提供される。本開示の例示的実施によれば、用語「データ」「コンテンツ」「情報」および同様の用語は、送信、受信、操作、翻訳、記憶などができるデータを互換的に参照するように使用されうる。同様の参照番号は、全体を通して同様の要素を参照する。
【００１５】
始めに、本開示の例示的実施は、いずれのタイプのネットワークシステムでも使用されうることが重要である。ネットワークシステムは、航空機、宇宙機、車両、建築物、工場または任意の他のパッケージ、構造もしくは環境の中に常在することができる。例として、システム、ネットワークデバイスおよび方法は、回転翼航空機に常在するネットワークシステムで実施することができ、このネットワークは、共通のネットワークバスに接続されたバスコントローラおよび１つまたは複数の遠隔デバイスなどのネットワークデバイスを含む。遠隔デバイスの各々には、航空機の種々の構成部品に関わる性能、ステータスなどを判断するために、共通のネットワークを経由してバスコントローラと通信するように構成された、トランスデューサ（例えば、センサ、アクチュエータ）、サブシステムなどの１つまたは複数の周辺装置が含まれるか、さもなければ結合されうる。トランスデューサは、例えば航空機の主ロータシステムの歪み、加速度、および圧力を監視するためのセンサを含んでもよい。
【００１６】
本開示の例示的実施は、自動車などの車両のネットワークシステムでも実施することができ、このネットワークシステムは、車両の異なる構成部品に接続された周辺装置を含む。例えば、周辺装置には、いくつか挙げれば、スロットルの位置、油圧、水温、トランスミッション液圧、シート位置、アンチロックブレーキシステム、サスペンション、受動的安全システムおよびステアリングシステム、を監視するためのセンサが含まれうる。他の例では、周辺装置には、バスコントローラからのコマンドに応答して特定の機能を遂行するためのアクチュエータが含まれうる。自動車の用途では、例えば、周辺装置には、いくつか挙げれば、スロットルの位置、アンチロックブレーキシステム、サスペンション、受動的安全システムおよびアクティブサスペンションシステムを制御するためのアクチュエータが含まれうる。
【００１７】
さらに、周辺装置には、音声または映像ソースが含まれうる。例えば、周辺装置には、ラジオ受信機、テープカセットプレーヤ、ＣＤプレーヤ、ＭＰ３プレーヤ、携帯電話受信機、または、いくつかの事例ではストリーム音声信号を含む音声信号をネットワークバスに供給するための他の音声ソースが含まれうる。これに対応して、周辺装置には、音声信号をネットワークバスから受信するため、また対応する音声出力を供給するための、スピーカ、ヘッドフォンジャックなどが含まれうる。同様に、周辺装置には、テレビジョン受像機、映像カセットプレーヤ、ＤＶＤプレーヤ、または、ストリーム映像信号を含む映像信号をネットワークバスに供給するための他の映像ソースが含まれうる。これに対応して、周辺装置には、映像信号を受信するため、また映像信号に基づいてイメージを表示するための映像モニタなどが含まれうる。
【００１８】
本開示の例示的実施が、任意の特定のプロトコルおよびネットワーク構造に基づいてよいことも理解されよう。一例では、システム、ネットワークデバイスおよび方法が、前述の米国特許第６，７０８，２３９号および米国特許出願公開第２００２／０１１２０７０号で説明された、プロトコルおよびネットワーク構造に基づくことができる。他の関連資料には、米国特許第６，９３８，１０６号、第７，０８２，４８５号、第７，０９６，２８５号、第７，１１１，１００号、第７，１７４，４０２号、第７，２７７，９７０号、第７，３４６，７１９号、第７，５５２，２５６号、第７，５８１，０３１号、第７，６３０，４３１号および第７，８９４，５６２号が含まれる。
【００１９】
前述のプロトコルおよびネットワーク構造は、多くの従来型のデジタルネットワークに勝る多くの利点をもたらすことができる。背景の段落で解説した通り、以前の多くのデジタルネットワークは、各ネットワークデバイスが比較的高水準のプロセッサを有することが要求される複雑なプロトコルに従って動作する。これは、次にはネットワークデバイスのコストを増す恐れがある。さらに、高水準のプロトコルにより、バス上で伝送されうるデータサンプル数を厳しく制約しうるオーバーヘッドがバス上のメッセージに導かれる可能性がある。これらのネットワークはまた、一般に、取得および制御ともにサポートしておらず、典型的に、比較的短い長さに及ぶネットワークをサポートするだけである。さらに、これらのネットワークは、典型的に、ネットワークデバイスインターフェースがかさばり、ネットワークのデータレートが遅く、および／またはネットワークデバイスのカウントが低い。加えて、デジタルネットワークを含む多くのコンピュータシステムが、時間決定性の方式で動作せず、したがって、正確なタイミングで反復しまたは翻訳され実行されるような、ネットワーク構成部品へのトリガコマンドをスケジュールする能力に欠ける。
【００２０】
これらの欠点に照らして、前述の米国特許第６，７０８，２３９号および米国特許出願公開第２００２／０１１２０７０号のデジタルネットワーク構造およびプロトコルは、より複雑でないデバイスの実施を可能にする低水準の命令セットを使用する。このネットワーク構造およびプロトコルは、データレートの増大を可能にし、正確なタイミングのデータ取得またはネットワークバス上の他の活動を可能にするコマンド構造を使用することもできる。
【００２１】
本開示の例示的実施は、様々なネットワークアーキテクチャに基づくことができるが、例示的実施の機能は、先のネットワーク構造およびプロトコルの既存のコマンド構造に付加されうる。すなわち、本開示の種々の例は、米国特許第６，７０８，２３９号および米国特許出願公開第２００２／０１１２０７０号のデジタルネットワーク構造およびプロトコルに基づくことができる。具体的には、以下で説明するコマンドは、このプロトコルと同じまたは同様の構造を用いて実施することができ、また通信構造は、同じまたは同様とすることができる。
【００２２】
図１を参照すると、本開示の例示的実施が実施されうる概略的なネットワークシステムが示されている。具体的には、図１は、ホストコンピュータまたはバスコントローラ１０２を有するネットワークシステム１００、ネットワークバス１０４および１つまたは複数の遠隔デバイス１０６（例として２つ示す）を示し、これらは各々、センサ、アクチュエータなど（例として５つ示す）の１つまたは複数の周辺装置１０８を含むか、さもなければ結合されうる。この構成では、バスコントローラは、ネットワークシステムの構成および制御を提供することができる。個々の遠隔デバイスは、バス上の遠隔デバイスを一意に定義する割り当てられた識別子またはアドレスを含むことができる。一例では、各遠隔デバイスが、その１つまたは複数の周辺装置に対してそれぞれ１つまたは複数のデータチャネルを含むことができ、各データチャネルは、各データチャネルを経由して個別の通信を可能にするように個別にアドレス指定されうる。
【００２３】
オペレーション中に、バスコントローラ１０２は、ネットワークバス１０４を経由して１つまたは複数の遠隔デバイス１０６にアドレス指定したコマンドを送ることができる。アドレス（複数可）によってそれぞれ指定された遠隔デバイス（複数可）またはそれらの周辺装置（複数可）は、コマンドに関連する活動を遂行し、送られるべきネットワークバス上にデータを置くことによって、バスコントローラと１つまたは複数の他の遠隔デバイスのどちらかに応答することができる。加えてまたはあるいは、例えば、遠隔デバイス（複数可）は、センサなどの周辺装置の着信データ測定を開始することによってトリガコマンドなどのコマンドに応答し、またはアクチュエータなどの周辺装置の出力へ値を移動することができる。
【００２４】
いくつかの例では、遠隔デバイス１０６は、信号調節を提供することができ、周辺装置をバスコントローラ１０２とインターフェース接続するために組込み式のデバイスインターフェースを含むことができる。いくつかの例では、このデバイスインターフェース（ネットワークデバイスインターフェース、ＮＤＩと呼ばれることもある）は、そうでなければバスコントローラと直接通信できないような周辺装置と共に使用されうる。デバイスインターフェースは、バスコントローラからのコマンド、および、センサまたは動作中のアクチュエータからのデータの受信など、バスコントローラからのコマンドおよびデータに基づく制御信号調節を受信し翻訳することができる。
【００２５】
上で示唆したように、種々の例では、ネットワークシステム１００は、バスコントローラ１０２および／または遠隔デバイス１０６など、より複雑でないネットワークデバイスを可能にするような低水準の命令セットを使用するデータプロトコルと併せて動作することができる。これにより、コントローラがネットワークバス１０４を渡って一度に１つまたは複数の遠隔デバイスと通信することが可能となりうる。プロトコルが簡単になったため、ネットワークデバイスが、高水準のプロセッサを必要としない可能性もある。代わりに、種々の例で、ネットワークデバイスは、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの低水準プロセッサとして実施されうるハードウェアベースのステートマシンを含むことができる。種々の例でマイクロコントローラまたはプロセッサの代わりにステートマシンを使用することによって、例示的実施は、多くのプロセスの同時遂行を可能にすることができ、ネットワークデバイスの時間決定性および高速性能を補助する。
【００２６】
バスコントローラ１０２が、共通のネットワークバス１０４を経由して、遠隔デバイス１０６に接続することができるので、バスコントローラは、ネットワークシステム１００を制御するための、各遠隔デバイスまたはその周辺装置への専用の接続を必要としない可能性がある。代わりにバスコントローラは、遠隔デバイスおよびその周辺装置を、割り当て、制御するために、アドレッシングスキームを使用することができる。ネットワークシステムを操作するために、各遠隔デバイスまたは遠隔デバイスの各チャネルに対して、１つまたは複数の論理アドレス、グローバルアドレスおよび／またはグループアドレスを含む、１つまたは複数のアドレスを割り当てることができる。種々の例では、１つまたは複数のこれらの論理アドレス、グループアドレスおよび／またはグローバルアドレスは、各遠隔デバイスに関連するユニバーサルユニーク識別子（ＵＵＩＤ）を使用するプロセスに従って決定されうる。ＵＵＩＤコードは、各遠隔デバイスに固有の８０ビットコードであり、デバイスが製造された場所および日付に基づく。１つのこうした方法の例については、前述の米国特許出願公開第２００２／０１１２０７０号を参照されたい。
【００２７】
論理アドレスは、単一の遠隔デバイス１０６または遠隔デバイスの単一のデータチャネルによって認識することができ、バスコントローラ１０２が、この論理アドレスを、コマンド（またはリクエスト）を特定のネットワークデバイス／チャネルに向けるために使用することができる。他方でグローバルアドレスは、全ての遠隔デバイスによって認識することができ、バスコントローラが、このグローバルアドレスを、全ての遠隔デバイスを汎用的に初期化またはリセットするなど、汎用データおよびコマンドを交換するために使用することができる。グループアドレスは、ネットワーク上の遠隔デバイスの特定のグループによって認識することができ、バスコントローラが、このグループアドレスを、グループデータおよびコマンドを交換するために使用することができる。例えば、グループアドレススキームにより、バスコントローラが種々のサンプルレートで遠隔デバイスのグループ用の時間決定性トリガをセットアップすることが可能となる。別の例では、グループアドレススキームにより、遠隔デバイスのグループが、バスコントローラから禁止することなくネットワークバス１０４上のピアツーピア通信を確立することが可能となる。
【００２８】
図２に、本開示の種々の例示的実施において、図１に示す遠隔デバイス１０６に対応することができる、遠隔デバイス２００の概略的なブロック図を示す。示されるように、遠隔デバイスは、１つまたは複数の周辺装置のデータチャネル２０４に結合されかつこれを定義するデバイスインターフェース２０２（例えば、ＡＳＩＣ、ＦＰＧＡ）を含むことができる。デバイスインターフェースは、本開示の例示的実施に従って機能を遂行するための種々の構成部品を含むことができる。例えば、デバイスインターフェースは、デバイスインターフェースをデータチャネルにそれぞれ接続させることができ、ポート制御論理によってそれぞれ制御されうる、シリアルポートまたはパラレルポートなどのポートを含むことができる。デバイスインターフェースは、種々のタイプの揮発性メモリを含むことができ、これらの揮発性メモリのうち少なくともいくつかが、１つまたは複数のデータレジスタ、データレジスタのスタックなどからなりうる。デバイスインターフェースは、種々の他のレジスタ（例えば、スタック深さレジスタ、ステータスレジスタ、デバイスインベントリレジスタ、コンフィグレーションレジスタ、チャネルサービスレジスタ、パッケージ定義レジスタ）、マルチプレクサ（例えば、データセレクトマルチプレクサ、出力データマルチプレクサ）、デコーダ（例えば、アドレスデコーダ、コマンドデコーダ）、制御論理なども含むことができる。さらに、デバイスインターフェースのいくつかの適した構成部品に関する詳細は、前述の米国特許第６，７０８，２３９号で見出されうる。
【００２９】
示されるように、デバイスインターフェース２０２は、回路２０６をそれぞれ介してデータチャネル２０４に結合されうる。各データチャネル用に、この回路が、１つまたは複数の増幅器、フィルタ、減衰器など、周辺装置へのまたは周辺装置からのアナログ信号を調整するように構成された信号調整デバイス２０８を含むことができる。この回路は、適切なアナログ−デジタル変換器（ＡＤＣ）および／またはデジタル−アナログ変換器（ＤＡＣ）２１０も含むことができる。一例では、ＡＤＣは、デバイスインターフェース２０２とセンサとの間に接続することができ、デバイスインターフェースへの入力用に、センサチャネルからのアナログ信号をデジタルデータに変換するように構成されうる。同様に、例えば、ＤＡＣは、デバイスインターフェースとアクチュエータとの間に接続することができ、アクチュエータチャネルへの入力用に、デバイスインターフェースからのデジタルデータをアナログ信号に変換するように構成されうる。いくつかのセンサまたはアクチュエータが、デジタル信号を生成しまたは直接受け取ることができ、その結果、回路がＡＤＣまたはＤＡＣを必要としなくてもよい可能性がある。
【００３０】
デバイスインターフェース２０２は、図１のネットワークバス１０４などのネットワークバスに接続することができ、図１のバスコントローラ１０２などのバスコントローラと通信することができるように接続されうる。これに関して、遠隔デバイスは、バスコントローラにデータを送信するように構成された送信機２１２と、および／またはバスコントローラからコマンドおよびデータを受信するように構成された受信機２１４とを含むことができる。遠隔デバイス２００は、ネットワークが同期モードで操作される事例では、バスコントローラから選択的な同期クロック信号を受信するように構成された第２の受信機２１６も含むことができる。同じく、遠隔デバイスは、同期モードまたは非同期モードでネットワークのオペレーションをサポートすることができる、局部発振器２１８を含むことができる。さらになお遠隔デバイスは、不揮発性メモリ２２０を含むことができる。デバイスインターフェースに結合されるように示したが、デバイスインターフェースの異なる実施では、代わりに、１つまたは複数の受信機、送信機、局部発振器、メモリデバイスなどを集積化することができる。
【００３１】
図３は、一例示的実施による方法３００での種々のオペレーションを示す図であり、遠隔デバイス１０６（例えば、遠隔デバイス２００）が、センサおよび／またはアクチュエータなどの周辺装置を含むかさもなければ結合されうる。ブロック３０２に示すように、この方法は、バスコントローラ１０２がネットワークバス１０４を渡って遠隔デバイスにコマンドおよびデータをデジタル的に送ることを含むことができ、コマンドおよびデータは、遠隔デバイスの１つまたは複数のデータチャネルに対して指定されうる。ブロック３０４に示すように、コマンドおよびデータは、データプロトコルを使用してネットワークを渡って送信されてよく、遠隔デバイスが、データプロトコルの構造を使用してデータおよびコマンドを受信および翻訳をすることができる。
【００３２】
一例では、コマンドワードは、同期部、メッセージ本体およびパリティビットを含むことができるメッセージに反映されうる。メッセージ本体は、コマンドのアドレス指定用のアドレスフィールドと、遂行するべきコマンドまたはオペレーションを明示するためのオペレーションコード（オペコード：ｏｐｃｏｄｅ）フィールドとを含むことができる。一例では、構造上、メッセージが複数ビットを含むことができ、この複数ビットの各々は、ロー−ハイ遷移によって定義されるバイナリ「０」、およびハイ−ロー遷移によって定義されるバイナリ「１」などの、第１と第２の状態との間の遷移によって定義される値を有する。ブロック３０６に示すように、遠隔デバイス１０６は、コマンドおよびデータが、これら遠隔デバイスの任意のデータチャネルに対して指定されているかどうかを判断することができ、もしそうならば、ブロック３０８に示すように、遠隔デバイスがそれぞれ、（センサならば）指定されたデータチャネルからデータを取得するか、（アクチュエータならば）変換を遂行するためにデータチャネルにコマンドを出すことができる。ブロック３１０に示すように、センサチャネルから取り出したアナログデータは、デジタルデータに変換され、次いでデータプロトコルに従って適正なフォーマットに変換されうる。また、ブロック３１２に示すように、いずれの適切なデジタルデータもコントローラに送信されうる。
【００３３】
図２に示唆したように、遠隔デバイス１０６は、種々のタイプの揮発性および不揮発性メモリを含むことができる。図４に、遠隔デバイス４０２のメモリアーキテクチャ４００を示し、種々の例で、遠隔デバイス４０２は、図２の遠隔デバイス２００に対応することができる。一般に、遠隔デバイスは、チャネルベースメモリとデバイスベースメモリとを含むことができる。
【００３４】
図４に示すように、例えば、遠隔デバイス４０２は、各チャネル用の１つまたは複数のタイプの揮発性メモリなどのチャネルベースメモリを含むことができる。このチャネルベースメモリは、例えば、先入れ先出し（ＦＩＦＯ）メモリ４０４、および／またはテーブルメモリ４０６などのランダムアクセスメモリ（ＲＡＭ）、コンフィギュレーションメモリ４０８などを含むことができる。遠隔デバイスは、不揮発性メモリを用いたデバイス記憶メモリ４１０などのデバイスベースメモリも含むことができ、選択的に、デバイスコンフィギュレーションメモリ４１２などの揮発性ＲＡＭをさらに含むことができる。一例では、揮発性メモリは、デバイスインターフェース２０２によって、データレジスタ（複数可）またはデータレジスタのスタック（複数可）中で実施されてよく、不揮発性デバイス記憶メモリは、不揮発性メモリ２１８に対応することができる。
【００３５】
ＦＩＦＯメモリ４０４は、先入れ先出しでアクセス可能とすることができ、それによって、メモリにそれぞれ置かれた第１の値は、ＦＩＦＯメモリ４０４から取り出した第１の値とすることができる。チャネルのテーブルメモリ４０６およびコンフィギュレーションメモリ４０８は、チャネルの論理アドレスをそれぞれ使用して、アクセス可能とすることができ、図示した例では、チャネルごとに００００ｈでスタートすることができる。また、デバイス記憶メモリ４１０およびデバイスコンフィギュレーションメモリ４１２は、遠隔デバイス４０２内の任意のチャネルアドレスを使用してアクセス可能とすることができ、アドレス指定可能なチャネルベースのテーブルメモリおよびコンフィギュレーションメモリと同様に、アドレス指定可能なデバイスベースメモリは、００００ｈでスタートすることができる。すなわち、より概括的には、アドレス指定可能なチャネルベースメモリは、チャネルごとに同じ値を有し、アドレス指定可能なデバイスベースのメモリがスタートすることができるアドレスと同じ値を有する、アドレスでスタートすることができる。
【００３６】
簡単に言うと、ＦＩＦＯメモリ４０４およびテーブルメモリ４０６は、リアルタイムデータストリーミング（本明細書で定義される「リアルタイム」は「準リアルタイム」を含む）のためにバッファに入れる、データ取得などの種々の目的のために使用されうる。ＦＩＦＯメモリは、構成のためにも使用されうる。デバイス記憶メモリ４１０は、情報を記憶するものとしてよい。デバイスコンフィギュレーションメモリ４１２およびコンフィギュレーションメモリ４０８は、遠隔デバイス４０２内の揮発性デバイスおよびチャネルセットアップのためのものとしてよく、デバイス記憶メモリからポピュレートされるか、さもなければロードされうる。次いで、種々の例示的実施では、デバイス記憶メモリおよびほとんどのコンフィギュレーションメモリは、リアルタイムデータ取得および制御モードで使用されるものでない。
【００３７】
ＦＩＦＯメモリ４０４は、周辺装置へのまたは周辺装置からのデータのストリーミングを可能にし、種々の例では周辺装置データ取得または制御チャネルとネットワークバス（例えばバス１０４）との間の「ステージングエリア」を提供することができる。各ＦＩＦＯメモリは、ｉｎ−ＦＩＦＯ４０４ａとｏｕｔ−ＦＩＦＯ４０４ｂとを含むことができ、ｉｎ−バッファ４０４ｃをさらに含むことができる。ｉｎ−ＦＩＦＯは、周辺装置とネットワークバスとの間のデータをバッファに入れることができ、一方ｏｕｔ−ＦＩＦＯは、ネットワークバスと周辺装置との間のデータをバッファに入れることができる。種々の例では、ｉｎ−ＦＩＦＯかｏｕｔ−ＦＩＦＯのどちらかまたは両方が、データが周辺装置からそれぞれまたは周辺装置へそれぞれ転送される間に、ＦＩＦＯからそれぞれ読み出しまたはＦＩＦＯの中へそれぞれ受信されうるように、デュアルポートとすることができる。種々の例では、ｉｎ−ＦＩＦＯかｏｕｔ−ＦＩＦＯのどちらかまたは両方が、直接モードでまたはバッファモードで動作するように構成可能としてもよい。
【００３８】
直接モードでは、ｉｎ−バッファ４０４ａは、周辺装置から直接データを得ることができる。一例では、データが、ｉｎ−バッファ４０４ｃの中へ受信され、適切なコマンドを介して、取り出す準備ができたｉｎ−ＦＩＦＯへと直接渡すことができる。直接モードのｏｕｔ−ＦＩＦＯ４０４ｂは、バスからデータを受け取り、このデータを直ちに周辺装置に転送することができる。バッファモードでは、ｉｎ−ＦＩＦＯ４０４ａおよびｉｎ−バッファ４０４ｃは、個別に活動することができる。周辺装置から受信したデータは、ｉｎ−バッファに持ち込まれそこへ記憶されうる。次いでデータは、適切なコマンドで、ｉｎ−バッファからｉｎ−ＦＩＦＯへ移動することができる。バッファモードのｏｕｔ−ＦＩＦＯは、バスからのデータを記憶し、コマンドでｏｕｔ−ＦＩＦＯから周辺装置へデータを移動させることができる。
【００３９】
ＦＩＦＯメモリ４０４と同様に、個々のチャネルは、アドレス指定可能な方式で記憶された情報を包含するテーブルメモリ４０６を装備することができる。このメモリは、本来揮発性であり、多数の論理アドレスの値が動的に変化してもよい用途で使用されうる。種々の例では、このテーブルメモリは、カレントバリューテーブル（ｃｕｒｒｅｎｔ  ｖａｌｕｅ  ｔａｂｌｅ：ＣＶＴ）と呼ばれうる。このデータは、同期でまたは非同期でアップデートされうる。テーブルメモリ内に記憶されたメッセージは、１つまたは複数のアドレスロケーションに広がり、一例では、各ロケーションが、１ワード１６ビット幅とすることができる。一例では、テーブルメモリアドレス指定およびメッセージサイズは、デバイスの製造者によって定義されうる。
【００４０】
デバイス記憶メモリ４１０は、ＵＵＩＤ、プロトコルバージョン、データチャネルの番号、論理アドレス、グループマスク、デバイスおよび／またはチャネルの構成情報、デバイス記憶メモリポインタ、周辺装置のブート情報、製造者定義のデバイスおよびチャネル情報、並びに製造者またはユーザが規定できる任意の他のデータなどのデータを記憶するために、遠隔デバイス４０２によって使用されうる。さらになお、例えば、デバイス記憶メモリは、遠隔デバイスの設置場所、校正データなどのユーザ定義の情報を記憶するためにも使用されうる。種々の例では、このデータの少なくとも一部は、電子データシート（ＥＤＳ）を形成することができる。
【００４１】
上で解説した通りに、デバイス記憶メモリ４１０は、不揮発性メモリを含むことができる。一例では、デバイス記憶メモリが、不揮発性デバイス記憶メモリと、不揮発性デバイス記憶メモリの少なくとも一部のイメージを記憶するように構成された揮発性デバイス記憶シャドウメモリ（単にシャドウメモリと呼ばれることもある）の両方を含むことができる。他の揮発性メモリと同様に、シャドウメモリは、デバイスインターフェース２０２によって、データレジスタ（複数可）またはデータレジスタのスタック（複数可）で実施されうる。種々の例では、デバイスメモリコマンドが、揮発性シャドウメモリにアクセスするために使用され、それによって、不揮発性デバイス記憶メモリに間接的にアクセスすることができる。
【００４２】
図５に、一例示的実施によりデバイス記憶メモリ４１０に対応することができる、デバイス記憶メモリ５００を示す。示されるように、デバイス記憶メモリは、不揮発性デバイス記憶メモリ５０２と揮発性デバイス記憶シャドウメモリ５０４とを含むことができる。やはり示されるように、一例では、不揮発性デバイス記憶メモリ５０２は、いくつかの（Ｔｓ）小さな選択可能なメモリ部（セグメントと呼ばれる）に区分されうる。第１のセグメントからセグメントのいくつかの決定された番号（ｎ）までが、ベースメモリ５０２ａを形成することができ、（もしあれば）任意の残りのセグメント（Ｔｓ−ｎ）が、拡張メモリ５０２ｂを形成することができる。ベースメモリのサイズ（ＢＭＳ）は、各セグメントのサイズ（ＭＳＳ）の数整数倍とすることができる。これに関して、拡張メモリをスタートさせるセグメント番号は、ＢＭＳをＭＳＳで除すことによって決定することができ、この結果は整数解になりうる。
【００４３】
ベースメモリは、デバイスベースメモリアドレス００００ｈ（不揮発性メモリのアドレス００００＿００００ｈ）でスタートすることができ、また、ＵＵＩＤ、論理アドレス、ポインタ、メモリ属性、共通の構成、ＥＤＳ、校正係数、ブートコードなどのデータを記憶することができる。一例では、シャドウメモリ５０４は、ベースシャドウメモリ５０４ａを含むことができ、不揮発性デバイス記憶メモリ５０２のベースメモリ５０２ａが、完全にシャドウイングされうる。したがって、シャドウメモリひいてはベースシャドウメモリに記憶されたデータは、回線速度で利用可能とすることができる。
【００４４】
拡張メモリ５０２ｂは、追加の構成情報、デフォルト設定などのデータを記憶することができる。ベースメモリ５０２ａと同様に、拡張メモリが、メモリセグメントに分割され、このメモリセグメントのセグメント番号が、最後のベースメモリセグメントから次第にインクリメントすることができる。一例では、シャドウメモリ５０４が、拡張シャドウメモリ５０４ｂを含むことができ、この拡張メモリが、完全にシャドウイングされうる。別の例では、拡張メモリセグメントのサブセット（例えば、１つ）などの、拡張メモリの選択可能な部分のみが、任意の所与の時間で拡張シャドウメモリにシャドウイングされうる。これに関しては、ベースメモリセグメントが、ベースシャドウメモリ５０４ａに直接ロードされうる間、拡張メモリセグメントのサブセットが、コマンドによって選択され、拡張シャドウメモリにロードされうる。再度、シャドウメモリひいては拡張シャドウメモリに記憶されたデータが、回線速度で利用可能とすることができる。
【００４５】
種々の例では、不揮発性デバイス記憶メモリ５０２（電源が取り外されたときそのデータを維持する）は、オペレーションの際に揮発性シャドウメモリ５０４（電源が取り外されたときにそのデータを消失する）よりはるかに遅いことがある。これらの例では、不揮発性メモリは、回線速度で遂行する能力がないことがあり、ネットワークバス（例えば、バス１０４）へのまたはネットワークバスからのデータトラフィックに遅れないようにすることができない恐れがあることを意味する。次いで、例示的実施によれば、より速い速度で動作し、読み出しまたはプログラムされるデータを不揮発性メモリへ「ステージする」ことができる揮発性シャドウメモリの使用によって、不揮発性デバイス記憶メモリが、増強されうる。
【００４６】
図４を参照すると、遠隔デバイス４０２の電源投入またはリセットで、遠隔デバイスは、デバイス初期化フェーズと、デバイスおよび／またはチャネルの構成ブートフェーズとを含むことができるブートシーケンスを遂行することができる。デバイス初期化中、デバイス記憶メモリ４１０のデータが、リアルタイムでまたは準リアルタイムでアクセスされうるように、揮発性メモリ（例えば、テーブルメモリ４０６、コンフィギュレーションメモリ４０８、デバイスコンフィギュレーションメモリ４１２）または他のレジスタ空間へロードされうる。一例では、これは、ＵＵＩＤ、実施されるマスク、論理アドレスおよびグループアドレス、デバイス記憶メモリポインタなどのデバイス記憶メモリアイテムから読み出すことを含むことができる。次いで、ブートフェーズは、デバイス、チャネルおよび周辺装置それぞれをオペレーションのために構成するプロセスとすることができる。
【００４７】
例示的実施によれば、ネットワークシステムのプロトコルが、チャネルベースメモリおよびデバイスベースメモリ用のコマンドの異なる別個のセットを含むことができる。一例では、このプロトコルは、遠隔デバイス４０２のチャネルベースメモリにアクセスするためのチャネルコマンドのセット、および遠隔デバイスのデバイスベースメモリにアクセスするためのデバイスメモリコマンドの異なる別個のセットを含むことができる。
【００４８】
チャネルコマンドは、種々のＦＩＦＯと別個のチャネルメモリコマンドとを含むことができ、これらを介して、ＦＩＦＯメモリ４０４、テーブルメモリ４０６および／またはコンフィギュレーションメモリ４０８が、アクセス可能とすることができる。チャネルコマンドは、各チャネルとそのそれぞれのチャネルベースメモリとの間でデータをほぼ回線速度で移動するためにタイムベースコマンドを含む。これらのコマンドは、例えば、センサポートからデータを獲得して、アクチュエータポートにデータを提供するように設計され、および／または、効率的かつ「即時」の信号調整器（例えば、信号調整器２０８）の構成セットアップを提供するように設計されたコマンドを含むことができる。
【００４９】
デバイスメモリコマンドは、それを介してデバイス記憶メモリ４１０およびデバイスコンフィギュレーションメモリ４１２が、アクセス可能とすることができるようなコマンドを含むことができる。これらのコマンドは、概ね静的な情報、オペレーション情報、構成情報、校正情報およびカタログ情報へのアクセス、ならびに／または、マイクロプロセッサメモリがアクセスのためにシャドウイングされうる今後の用途のためのマッピングしたメモリアクセスを提供するものとしてよい。
【００５０】
ここで、種々のチャネルコマンドおよびデバイスメモリコマンドに関するさらなる情報が、以下で説明される。
【００５１】
１．例示的なチャネルコマンドの説明
１つまたは複数の遠隔デバイス４０２は、データ取得または制御の用途およびチャネル構成について時間決定性の活動を遂行するのを可能にするために装備されうる。こうしたデバイスは、いくつかのタイムベースコマンドのうち１つを使用して、ｏｕｔ−ＦＩＦＯ４０４ｂからｉｎ−ＦＩＦＯ４０４ａへ、テーブルメモリ４０６へもしくはそこから、または、チャネルコンフィギュレーションメモリ４０８へもしくはそこから、データを移動することができる。遠隔デバイス内の各アドレス指定可能チャネルは、１つまたは複数の異なる揮発性メモリオプションを包含することができる。チャネルコマンドは、本来、各コマンドおよび応答のための実行時間が、よく理解され、予測され、定義などされうるように、リアルタイムとしてよい。各チャネルコマンドおよびそれへの応答の実行時間は、各デバイスメモリコマンドの実行時間より予測可能であり、それによって、コマンドそれぞれのタイミングの要件が異なるようになりうる。
【００５２】
チャネルコマンドは、ＡＤＣまたはＤＡＣ（例えば、ＡＤＣ／ＤＡＣ２１０）からｉｎ−ＦＩＦＯメモリ４０４ａまたはｏｕｔ−ＦＩＦＯメモリ４０４ｂを介してなど、リアルタイムで継続的に取得したデータをそれぞれ移動させるためのチャネルＦＩＦＯコマンドを含むことができる。これらのＦＩＦＯコマンドは、単一のデータワードおよび／または明らかにして定義されたデータワードのブロックの転送をもたらすことができる。ＦＩＦＯコマンドは、遠隔デバイス４０２が、パッケージを使用してデータ転送サイズを事前定義することができる不揮発性デバイス記憶メモリ４１０内で事前構成されることを可能にすることもできる。こうしたパッケージコマンドを使用することで、読出しコマンドおよび書込みコマンド内のブロックサイズのワードをなくすことができる。パッケージサイズは、データブロックサイズを暗黙で定義してｉｎ−ＦＩＦＯおよびｏｕｔ−ＦＩＦＯから移動されうる。
【００５３】
チャネルコマンドは、リアルタイムで継続的に取得したデータをテーブルメモリ４０６を介して移動させ、または適したコンフィギュレーションメモリ４０８の各チャネル用の構成情報をキャッシュするための、チャネルメモリコマンドを含むこともできる。これに関しては、揮発性アドレス指定可能メモリロケーションに記憶したリアルタイムで継続的に取得したデータを移動させるために使用されうる、アドレス指定可能メモリ空間に、着信（データ取得）データまたは発信（制御）データを保管するために、テーブルメモリが、使用されうる。
【００５４】
コンフィギュレーションメモリ４０８は、チャネルのユーザ構成可能な属性を直ちにプログラムするために使用されうる。このメモリの値の変更は、一時的および揮発的とすることができる。デバイス記憶メモリ４１０は、揮発性チャネルメモリに構成設定を記憶しなくてもよい。ただし、種々の例では、設定が、遠隔デバイス４０２の電源再投入（ｐｏｗｅｒ  ｃｙｃｌｉｎｇ）またはリセットの後に望まれうる事例などで、揮発性チャネルメモリのいずれの変更も、デバイス記憶メモリ中の同等の空間になされることが必要となりうる。チャネル構成値が、デバイス記憶メモリに記憶され、チャネルブートスケジュールが、電源投入またはリセット上に存在する事例では、遠隔デバイスが、チャネルコンフィギュレーションメモリをロードすることができ、不揮発性デバイス記憶メモリ内に記憶された値を用いてチャネルを構成することができる。反対に、チャネル構成値が、デバイス記憶メモリに保存されない事例では、遠隔デバイスがリセットされるときまたは電源が再投入されるとき、チャネル構成値は、デバイス記憶メモリに記憶された値に置き換えられうる。
【００５５】
１．１．トリガ
トリガコマンドは、トリガコマンドワード内の遷移を使用して、遠隔デバイス４０２へのまたはそこからのデータを正確に保持するために使用されうる。この特徴は、グローバルタイムベースを確立するために使用されうる。
【００５６】
センサとして構成される遠隔デバイスチャネルは、ｉｎ−ＦＩＦＯ４０４ａを利用することができる。一例では、トリガコマンドが受信されると直ちに変換信号が発生し、これにより、周辺装置がサンプル変換を開始することができる。サンプルが周辺装置によって発生すると、ｉｎ−ＦＩＦＯは、事前にプログラムされたデータ量を取得することができる。
【００５７】
アクチュエータとして構成された遠隔デバイスチャネルは、ｏｕｔ−ＦＩＦＯ４０４ｂを利用することができる。一例では、トリガコマンドを受信すると直ちに変換信号が発生することができ、これにより、周辺装置（例えば、ＤＡＣ２１０）に対する出力コンポーネントがその出力をアップデートできるようになる。次いで、ｏｕｔ−ＦＩＦＯが、事前にプログラムされたデータ量を送り出すことができる。トリガオペレーションでは、ｏｕｔ−ＦＩＦＯが、常にバッファモード（直接モードは、データを受信すると直ちにデータを移動させてアクチュエータなどの周辺装置へ出す）としてよい。
【００５８】
１．２．同期
同期コマンドは、上述のトリガオペレーションと同様のトリガオペレーションの遂行に加えて遠隔デバイス４０２を正確に同期させるために使用されうる。このコマンドは、同期信号およびトリガ信号を同時に生成することができる。
【００５９】
一例では、同期コマンドは、等時性オペレーションとすることができ、同期トリガイベントは、同期コマンドメッセージのパリティビットのセンターエッジの変更時に発生することができる。同期信号の生成に加えて、同期コマンドは、遠隔デバイス４０２内で、前述のトリガコマンドと同じまたは同様のタイミングおよび挙動を有することができる。一例では、トリガ信号を用いた同期コマンドに対する応答は、強制とすることができるが、用途に応じて、同期信号の提供または使用は選択的としてもよい。
【００６０】
１．３．チャネルステータス獲得
チャネルステータス獲得コマンドは、単一チャネルでチャネルを介してチャネルのステータスを取り出すものとすることができる。一例では、ステータスは、マルチビットステータスレジスタに（例えば、デバイスインターフェース２０２に）反映されてよく、チャネルステータス獲得コマンドは、ステータスレジスタのコンテンツの取り出すものとしてよい。ステータスレジスタのコンテンツは、複数のビットを含むことができ、そのうち保持されうるものもあるが保持されないものもありうる。一例では、ステータスワードがこのコマンドによって読み出されると、保持されたビットが消去されうる。
【００６１】
チャネルステータス獲得コマンドに対する応答は、遠隔デバイス４０２のいくつかの異なる構成部品またはオペレーション能力のいずれのステータスも反映することができる。マルチビットステータスレジスタの場合では、例えば、各ビットは、設定時に特定のステータスを示すことができる。レジスタは、ｉｎ−ＦＩＦＯ４０４ａ、ｏｕｔ−ＦＩＦＯ４０４ｂまたはテーブルメモリ４０６へのアクセスを試みる間、および／またはメモリそれぞれに書込みを試みる間エラーを示すビットを含むことができる。
【００６２】
ステータスレジスタは、エラー、または、ｉｎ−ＦＩＦＯの尚早な消去、ｉｎ−ＦＩＦＯへの転送用のリクエストした周辺装置データの欠如、リクエストしたチャネル転送オペレーションに対する割込みもしくは一時停止などの、ＦＩＦＯ４０４ａ、４０４ｂへのもしくはそこからのデータの転送に関する他の通知を示す他のビットを含むことができる。レジスタは、チャネル用のマスタフォルトフラグを表すビット、および／または内部の論理状態、ビジー状態などを示すビットを含むことができる。レジスタは、外部の周辺デバイスそれぞれに結び付いたビット、およびデバイスそれぞれのステータスを示すビットを含むことができる。レジスタは、テストモードでチャネルを示す、またはチャネルビルトインテスト（ＢＩＴ）でエラーの発生を示すビットを含むことができる。チャネルが、マクロプロセスを行うことが可能にするさらなる例では、レジスタは、プロセスがイネーブルであることを示すビットを含むことができる。
【００６３】
１．４．チャネルサービスセット
チャネルサービス設定コマンドは、各チャネルのチャネルサービスレジスタ（例えば、デバイスインターフェース２０２）などを介して、出力離散型サービスおよびオペコードオペレーションを遂行するために使用されうる。種々の例では、チャネルサービス設定コマンドは、オペコードオペレーションを示すための一部分（例えば、最下位（ＬＳ）バイト）、およびサービスオペレーションを示すための別の部分（最上位（ＭＳ）バイト）を含むことができる。
【００６４】
チャネルサービスオペコードは、遠隔デバイス４０２を、ＢＩＴまたは別のテストモードなどのテストモードに一時的に設定することができる。チャネルサービスオペコードは、一般的にリセットまたはその標準オペレーションモードに対して（例えば、別のオペコードを介して）リセットされるまで、または電源が再投入されるまで、遠隔デバイスの別のオペレーションモードに優先することができる。これらのテストモードのいくつかは、全てのデバイスに適用されなくてもよい。チャネルは、オペコードをサポートしない場合、無視されうる。
【００６５】
サービスオペレーションを示すチャネルサービス設定コマンドの一部は、チャネル内の揮発性メモリおよび／または種々のレジスタをリセットするために使用されうるチャネルサービスリセットビットフィールドを含むことができる。一例では、フィールドは、マルチビットフィールドとすることができ、このフィールドの各ビットは、リセットまたはさもなければ消去するためのメモリを選択するために設定されうる。このフィールドは、チャネルのｉｎ−ＦＩＦＯ４０４ａおよび／またはｏｕｔ−ＦＩＦＯ４０４ｂを消去するためのビットを含むことができ、種々の例では、入力および／または出力ポートそれぞれに関連する他の任意のバッファも消去することができる。このフィールドは、選択したメモリのコンテンツを消去して００００ｈにすることなどによってチャネルのテーブルメモリ４０６を消去するためのビットも含むことができ、種々の例では、このビットが、任意のアキュムレータを消去、または任意のタイマーをリセットすることもできる。これは、選択したメモリのみをリセットすることができ、コンフィギュレーションメモリ４０８のコンテンツに作用しなくてもよい。遠隔デバイス４０２は、このコマンドを受信後直ちに新コマンドを受け取る準備をすることができる。いくつかのセレクションは、サポートしなくてもよい。チャネルが、ビットセレクションをサポートしない場合、ビットセレクションは無視されうる。
【００６６】
１．５．ｉｎ−ＦＩＦＯ／ｏｕｔ−ＦＩＦＯカウント獲得
ｉｎ−ＦＩＦＯカウント獲得コマンドは、バッファモードでｉｎ−ＦＩＦＯ４０４ａに、または直接モードでｉｎ−バッファ４０４ｃおよびｉｎ−ＦＩＦＯに包含するワード数を決定するために使用されうる。同様に、ｏｕｔ−ＦＩＦＯカウント獲得コマンドは、ｏｕｔ−ＦＩＦＯ４０４ｂに包含するワード数を決定するために使用されうる。このコマンドにより、遠隔デバイス４０２がｉｎ−ＦＩＦＯまたはｏｕｔ−ＦＩＦＯのそれぞれ１つに包含するワード数を表すマルチビット値を返すことができるようになりうる。
【００６７】
１．６．周辺装置、ＦＩＦＯ間の転送  
ＦＩＦＯ転送コマンドは、ｏｕｔ−ＦＩＦＯ４０４ｂから遠隔デバイス周辺装置へ、および／または周辺装置からｉｎ−バッファ４０４ｃへデータを移動させるために使用されうる。このコマンドは、ｏｕｔ−ＦＩＦＯから周辺装置へ転送されるバイト数を、および／または周辺装置からｉｎ−バッファへ転送されるバイト数を明示するそれぞれの引数を含むことができる。しかしながらどちらの引数もゼロとすることができる。種々の例では、このコマンドは、バイト数を明示することができるが、データは、ワード境界で転送されうる。例えば、奇数バイトがあるとき、ｏｕｔ−ＦＩＦＯから送られたまたはｉｎ−バッファ４０４ｃに受信された最後のワードは、有効下位バイトおよび有効上位バイトを包含することができる。
【００６８】
このコマンドを受信する遠隔デバイス４０２は、いくつかの異なる条件のためにいくつかの異なる方式で応答することができる。例えば、ｏｕｔ−ＦＩＦＯ４０４ｂからの転送については、遠隔デバイスが、ｏｕｔ−ＦＩＦＯ中に転送するべきワードがある限り、明示したバイト数を転送することができる。定義された転送が完結する前に、ｏｕｔ−ＦＩＦＯが、そのコンテンツを使い切る場合、コマンドは、強制終了することができる。ｉｎ−ＦＩＦＯ４０４ａが、単一のリクエストで生成する能力がありうるバイト数より、ｉｎ−バッファ引数が大きい場合、ＦＩＦＯが生成できる最大バイト数は、ｉｎ−バッファ４０４ｃに転送されてよく、残りのリクエストは、無視されうる。これにより、フォルトを避け、意図したデータのみが周辺装置に出力されることを確実にすることができる。
【００６９】
ｉｎ−バッファ引数がゼロより大きいとき、ｉｎ−ＦＩＦＯ４０４ａは直接モードで動作することができ、ｏｕｔ−ＦＩＦＯ引数がゼロより大きいとき、ｏｕｔ−ＦＩＦＯ４０４ｂはバッファモードに設定されうる。どちらの事例でも、直接／バッファモードオペレーションは、チャネルの設定に関わらず行われるが、このオペレーションは、チャネルの構成設定と異なれば一時的なものとなりうる。
【００７０】
ｏｕｔ−ＦＩＦＯ引数がｉｎ−バッファ引数より大きいとき、ｉｎ−バッファのコンテンツが、受信されて、引数間の差分後スタートすることができる。ｏｕｔ−ＦＩＦＯ引数が、ｉｎ−バッファ引数より小さいまたは等しいとき、他方では、転送がそれと同時に開始することができる。出力データが、全二重ＦＩＦＯ向けなど、明記したものをなお超えて要求されるならば、ＦＩＦＯ４０４は、定義済みの値を挿入してもよい。
【００７１】
１．７．ｉｎ−ＦＩＦＯワード／ブロック／パッケージの読出し
これらのｉｎ−ＦＩＦＯ読出しコマンドは、遠隔デバイス４０２チャネルのｉｎ−ＦＩＦＯ４０４ａから、データワード、ワードのブロックまたはいくつかのワードの定義済みパッケージを読み出し、ワード（複数可）をバス（例えば、バス１０４）上に転送するために使用されうる。一例では、データワード数は、コマンドに明示されうる。また一例では、１パッケージのワードにおいては、１パッケージのデータワード数は、遠隔デバイスのパッケージ定義レジスタ内で（例えば、デバイスインターフェース２０２で）事前に定義されうる。
【００７２】
１．８．ｏｕｔ−ＦＩＦＯワード／ブロック／パッケージの書込み
これらのｏｕｔ−ＦＩＦＯ書込みコマンドは、データワード、ワードのブロックまたはワードの定義済みパッケージをバス（例えば、バス１０４）から受信し、ｏｕｔ−ＦＩＦＯ４０４ｂにワード（複数可）を書き込むために使用されうる。読出しコマンドと同様に、一例では、データワード数は、コマンド中に明示されうる。同じく、例えば、１パッケージのデータワード数は、遠隔デバイスのパッケージ定義レジスタ内に事前に定義されうる。
【００７３】
１．９．取得中のｏｕｔ−ＦＩＦＯワード／ブロック／パッケージの書込み
これらの取得中ｏｕｔ−ＦＩＦＯ書込みコマンドは、データワード、ワードのブロックまたはワードの定義済みパッケージをバス（例えば、バス１０４）から受信し、ｏｕｔ−ＦＩＦＯ４０４ｂへワード（複数可）を書き込むために使用されうる。次いで、ｏｕｔ−ＦＩＦＯは、１つのデータワードを周辺装置からｉｎ−ＦＩＦＯ４０４ａへ直ちに取得しながら、周辺装置に直接データを送ることができる。前の記述と同様に、一例では、データワード数は、コマンド中に明示されてよく、パッケージについては、パッケージ定義レジスタに事前に定義されうる。ｉｎ−ＦＩＦＯおよびｏｕｔ−ＦＩＦＯは、直接モードまたはバッファモードのどちらにも設定されうる。ただし、これらのコマンドは、ｏｕｔ−ＦＩＦＯが直接モードに設定されるとき使用するものとしてよい。次いで、一例では、遠隔デバイス４０２が、ｏｕｔ−ＦＩＦＯがバッファモードである間にコマンドを受信した場合、遠隔デバイス４０２は、コマンドをｏｕｔ−ＦＩＦＯ書込みコマンドとしてみなしてもよい。
【００７４】
１．１０．チャネルメモリブロックの読出し／書込み
これらのコマンドは、データワードのブロックをデバイスのチャネルメモリからまたはそこへ読み出すまたは書き込むために使用されうる。このコマンドは、メモリロケーションポインタ値を示す引数を含むことができ、読出し／書込みオペレーションは、引数によってそれぞれ示されるチャネルメモリ中の位置でスタートすることができる。このコマンドは、遠隔デバイス４０２に、そのメモリからいくつのデータワードが、読み出されバス（例えば、バス１０４）上に転送されるべきか、または、バスからいくつのデータワードが受信され遠隔デバイスのメモリに書き込まれるべきかを知らせることができる、追加データの引数を含むことができる。遠隔デバイスは、渡したポインタ値でスタートしたデータを読出し／書込み、インクリメントするアドレスを逐次的に読み出し／書き込むことができる。
【００７５】
２．例示的なデバイスメモリコマンドの説明
チャネルコマンドに加えて、プロトコルは、デバイスメモリコマンドを含むことができる。これらのコマンドは、遠隔デバイス４０２を構成するために使用されるデバイスベースメモリをアドレス指定するためのコマンドを含むことができる。上に示したように、種々の例では、このメモリ空間は、リアルタイムデータ取得オペレーション用のものとしなくてもよい。
【００７６】
デバイスメモリコマンドは、一般に、構成を記憶するために使用される不揮発性デバイス記憶メモリ４１０、および初期化プロセスとランタイムオペレーションの両方のための制御情報をアドレス指定するが、揮発性デバイスコンフィギュレーションメモリ４１２もアドレス指定することができる。上で示唆したように、デバイス記憶メモリは、ユーザ提供情報と製造者記憶情報とを含むことができる。ユーザ提供情報は、例えば、デバイスおよびチャネルレベルでの遠隔デバイスの用途に固有の情報を含むことができ、チャネルパラメータ情報、校正係数などを含むことができる。製造者記憶情報は、例えば、ブートルーチンとデバイス固有の調整係数、他のユーザ変更不可情報などを含むことができる。種々の例では、デバイス記憶メモリ内の空間は、揮発性デバイスの不揮発性記憶部およびチャネルコンフィギュレーションメモリのために確保されうる。
【００７７】
メモリロケーションとの読出しおよび書込みがうまくできるかということは、遠隔デバイス４０２のハードウェアの実施によって決まりうる。種々の例では、不揮発性メモリからの読出しまたそこへの書込みの両方に必要とされうる、デバイスインターフェースを介した（例えば、デバイスインターフェース２０２中の）製造者のメモリアクセス時間が、明示されうる。いくつかの例では、不揮発性デバイス記憶メモリ５０２の一部分が、アドレス指定可能な揮発性シャドウメモリ５０４中にシャドウイングされうる。次いで、デバイスメモリコマンドが、不揮発性空間のイメージであるこの揮発性メモリ空間にアクセスすることができる。
【００７８】
例示的実施の遠隔デバイス４０２は、完全にまたは一部分のみシャドウイングされうる広いまたは限定された揮発性メモリ空間をサポートすることができる。いくつかの例では、デバイス記憶メモリ５００が、ベースメモリ５０２ａおよび拡張メモリ５０２ｂに分割されうるメモリセグメントに区分されうる。いくつかの例では、拡張メモリのセグメントのサブセットのみが、直接アドレス指定可能な拡張シャドウメモリ５０４ｂに同様にロードされうる間、ベースメモリ全体が、直接アドレス指定可能なベースシャドウメモリ５０４ａにロードされうる。よって、デバイス記憶メモリは、より広い不揮発性メモリ（より限られた揮発性メモリ）を収容することができる。
【００７９】
２．１．拡張メモリセグメントポインタの設定／獲得
これらのセグメントポインタコマンドは、遠隔デバイス４０２内のマルチビットデバイスメモリセグメントポインタを設定または読み出すことができる。設定コマンドについては、１つまたは複数の遠隔デバイスが、拡張メモリ５０２ｂの示したセグメントのコンテンツをもつ遠隔デバイスの拡張シャドウメモリ５０４ｂをそれぞれロードすることによって、このコマンドに応答することができる。次いで、他のデバイスメモリコマンドは、カレントのロードしたセグメントそれぞれに対して読み出しまたは書き込むことができる。獲得（読出し）コマンドについては、遠隔デバイスが、その拡張シャドウメモリからカレントのロードしたセグメントを用いて応答することができる。
【００８０】
２．２．デバイスメモリポインタ獲得
このデバイスメモリポインタコマンドは、遠隔デバイス４０２内のマルチビットデバイスメモリアドレスポインタを読み出すことができる。１つまたは複数の遠隔デバイスは、そのデバイスメモリアドレスポインタそれぞれのカレントロケーションを用いてこのコマンドに応答することができる。
【００８１】
２．３．デバイスメモリブロックの読出し／書込み
これらのコマンドは、データワードのブロックをデバイス記憶メモリ４１０からまたはそこへ読み出すまたは書き込むために使用されうる。このコマンドは、メモリロケーションポインタ値を示す引数を含むことができ、読出し／書込みオペレーションは、引数によってそれぞれ示されるデバイス記憶メモリ中の位置でスタートすることができる。このコマンドは、遠隔デバイス４０２に、そのデバイス記憶メモリからいくつのデータワードが、読み出されバス（例えば、バス１０４）上に転送されるべきか、または、バスからいくつのデータワードが受信され遠隔デバイスのデバイス記憶メモリに書き込まれるべきかを知らせることができる、追加データの引数を含むことができる。遠隔デバイスは、渡したポインタ値でスタートしたデータを読出し／書込み、インクリメントするアドレスを逐次的に読み出し／書き込むことができる。
【００８２】
２．４．メモリ保護モードの設定
このコマンドは、デバイス記憶メモリ４１０のセクションをアンロックまたはロックするために使用されうる。このコマンドは、適切なアンロックコードを含む引数を含むことができる。
【００８３】
再度図５の例に戻ると、デバイスメモリ読出しコマンドは、回線速度でデータを返すことができるシャドウメモリ５０４にアクセスすることができる。いくつかの例では、シャドウメモリのサイズが、不揮発性デバイス記憶メモリ５０２のサイズより小さくなりうる。これらの例では、シャドウメモリは、不揮発性デバイス記憶メモリから可能とされうるデバイスメモリ読出しコマンドの範囲およびブロックサイズを定義することができる。よって、ベースメモリ５０２ａのコンテンツは、ベースシャドウメモリ５０４ａ中のベースメモリのシャドウから直接読み出すことによって回線速度で読み出されうる。また、拡張メモリ５０２ｂのサブセットが、拡張シャドウメモリ５０４ｂに一旦ロードされると、サブセットそれぞれのコンテンツも、拡張シャドウメモリから直接読み出すことによって回線速度で読み出されうる。
【００８４】
一例では、遠隔デバイスの電源投入またはリセット時に、拡張シャドウメモリ５０４ｂが、（ベースメモリ５０２ａに続いて）拡張メモリ５０２ｂの第１の１つまたは複数のセグメントを含むサブセットで満たされる。セグメント（複数可）の別のサブセットを拡張シャドウメモリにロードするために、セグメントポインタ設定コマンドが、拡張シャドウメモリをセグメント（複数可）の他のサブセットで満たすために使用され、これにより、拡張シャドウメモリ中の以前のサブセットに上書きすることができる。セグメントを満たす時間は、遠隔デバイスが、適切なセグメントポインタ設定コマンドを受信後、拡張シャドウメモリを満たすことを要求することができる、時間を定義することができる。拡張シャドウメモリが一旦満たされると、このメモリは回線速度で読み出されうる。
【００８５】
デバイスメモリ書込みコマンドは、シャドウメモリ５０４（ベース５０４ａと拡張５０４ｂの両方）のデータをアップデートするために使用され、この書込みコマンドは、書込みスタートタイムアウト時間の後、不揮発性デバイス記憶メモリ５０２に戻る書込みサイクルをスタートすることができる。一例では、書込みスタートタイムアウト時間は、有効書込みの完了に続いてスタートすることができる。一例では、書込みスタートタイムアウト時間は、有効デバイスメモリ書込みコマンドの完了に続いてスタートすることができる。遠隔デバイスが（例えば、データワードを含まない）別の有効書込みコマンドを受信することなく、書込みスタートタイムアウト時間が経過する事例では、シャドウメモリから不揮発性デバイス記憶メモリへの書込みは、その書込みサイクルを開始することができる。一例では、データは、書き込まれる全てのデータが受信されるまで、シャドウメモリに書き込まれてもよく、タイムアウト時間は、データ受信が終了したことを示す。種々の例では、書込みサイクルが一旦開始すると、シャドウメモリ全体を不揮発性デバイス記憶メモリに書き込む試みが、開始することができる。一例では、不揮発性デバイス記憶メモリ５０２中の非保護（アンロックの）ロケーションのみが、おそらくさらに、コンテンツが変化したロケーションのみが、書き込まれうる。
【００８６】
種々の例では、遠隔デバイスは、セグメントポインタ設定コマンドの受信に続いて、いくらかの定義した遅延（例えば、１ワード時間の遅延）の後、拡張メモリ５０２ｂのセグメントのサブセットを拡張シャドウメモリ５０４ｂにロードすることを開始することができる。ただし、いくつかの例では、セグメントポインタ設定コマンドは、定義した遅延内にデバイス書込みコマンドに直ちに続くことができ、このコマンドは、拡張シャドウメモリに書き込まれる。これらの例では、拡張メモリからのロードが、中断されてよく、代わりにデバイス書込みコマンドからのデータが、拡張シャドウメモリに書き込まれうる。次いで、書込みスタートタイムアウト時間が、満了した後、シャドウメモリ５０４は、不揮発性デバイス記憶メモリ５０２への書込みサイクルを開始することができる。
【００８７】
シャドウメモリ５０４から不揮発性デバイス記憶メモリ５０２にデータを転送する最大書込みサイクル時間（Ｍａｘ  ＷＣＴ）は、書込みスタートタイムアウト時間（ＷＳＴＴ）、ワードの書込みページサイズ（ＷＰＳ）、書込みページサイクル時間（ＷＰＣＴ）およびシャドウメモリを作成するページ数の関数とすることができ、式は、
Ｍａｘ  ＷＣＴ＝ＷＳＴＴ＋（ＷＰＳ×ＷＰＣＴ×シャドウメモリページ数）
となる。種々の例では、書込みサイクル時間は、変更した「アンロックの」ロケーション数に応じて改善されてよく、変更のないロケーションが書き込まれず、したがって書込み時間を短縮することができる。一例では、デバイス記憶メモリ５００が書込みサイクル中であるとき、遠隔デバイスは、オフラインとされてよく、ネットワークバス（例えば、バス１０４）からコマンドを受信できなくともよい。
【００８８】
一般に、メモリコンテンツができる限り破損から保護されることが有利であり、このことは、いくつかの異なる方式のうちのいずれかで達成されうる。精緻なデータ伝達保護では、データ転送にエラーのないことが確実に保証されるように求められてよく、および／または他の機構が、メモリの破損のリスクを低減するように実施されうる。例えば、メモリは、書き込まれた後その正しさを確かめるために読み返され、および／または、メモリに書き込まれた適切な巡回冗長検査（ＣＲＣ）が、同じメモリ空間に対して計算されたＣＲＣと一致するかどうか決定するために検査することができる。
【００８９】
上に示唆したように、種々の例では、不揮発性デバイス記憶メモリ５０２中の保護メモリロケーション、またはシャドウメモリ５０４と不揮発性デバイス記憶メモリとの間で同じであるような不揮発性デバイス記憶メモリ５０２のコンテンツは、スキップされて、それによって書き込まれなくてもよい。次いで、書込みサイクルの間、遠隔デバイス（例えば、デバイスインターフェース２０２）は、まず、不揮発性デバイス記憶メモリ中のロケーションの保護ステータスをチェックすることができる。このロケーションがロックされる事例では、遠隔デバイスは、ロケーションにぞれぞれ書き込むことなくロケーションをそれぞれスキップすることができる。このロケーションがアンロックされる事例では、または保護ステータスの検査を含まない他の例では、遠隔デバイスは、まずロケーションからぞれぞれデータを読み出し、それぞれのロケーションの第１のデータとシャドウメモリ中の対応するロケーションの第２のデータを比較することができる。第１のデータが第２のデータと異なる事例では、遠隔デバイスは、シャドウメモリ中の第２のデータを不揮発性デバイス記憶メモリ中のロケーションにそれぞれ書き込むことができる。さもなければ、第１のデータが第２のデータと同じである事例では、遠隔デバイスは、シャドウメモリ中の第２のデータを不揮発性デバイス記憶メモリ中のロケーションにそれぞれ書き込まずにロケーションをそれぞれスキップすることができる。これは、書込みサイクルの間、不揮発性デバイス記憶メモリ中の各ロケーションに対して行われてよい。
【００９０】
本開示の例示的実施によれば、ネットワークシステム１００のホストコンピュータまたはバスコントローラ１０２と、ネットワークバス１０４と、１つまたは複数の遠隔デバイス１０６とを含むネットワークシステム１００は、種々の手段によって図４に示すようなオペレーションを行うことができる。これらの手段は、ハードウェア、単独またはデータの管理下で、プログラム命令、プログラムコード、コンピュータプログラムコード、コンピュータ可読プログラムコード、実行可能コンピュータ可読プログラムコードなど（一般的な「コンピュータプログラム」例えばソフトウェア、ファームウェア他）を含むことができる。上で解説した通りに、種々の例では、このハードウェアは、ＡＳＩＣ、ＦＰＧＡなどを含んで、ＦＩＦＯメモリ４０４、テーブルメモリ４０６、コンフィギュレーションメモリ４０８、デバイス記憶メモリ４１０および／またはデバイスコンフィギュレーションメモリ４１２などの、固定式コンピュータ可読記憶媒体に記憶されたコンピュータプログラムを実行することができる。
【００９１】
より概括的には、例示的実施によれば、任意の適したコンピュータプログラム（複数可）は、特定のマシンを作製するために、コンピュータ可読記憶媒体（例えば、ＦＩＦＯメモリ４０４、テーブルメモリ４０６、コンフィギュレーションメモリ４０８、デバイス記憶メモリ４１０、デバイスコンフィギュレーションメモリ４１２）から、コンピュータまたは他のプログラム可能装置（例えば、ＡＳＩＣ、ＦＰＧＡ）により広くロードされてよく、その結果、特定のマシンは、本明細書に明記した１つまたは複数の機能を実施するための手段となる。コンピュータプログラム（複数可）は、コンピュータ可読記憶媒体にも記憶されてよく、コンピュータ、プロセッサ、または他のプログラム可能装置を特定の方式で機能するように指示し、それによって、特定のマシンまたは特定の製品を作り出すことができる。コンピュータ可読記憶媒体に記憶した命令は、製品を作製することができ、製品は、本明細書で説明された機能を実施するための手段となる。プログラムコード命令は、コンピュータ可読記憶媒体から取り出され、コンピュータ、プロセッサまたは他のプログラム可能装置にロードされて、コンピュータ、プロセッサまたは他のプログラム可能装置を構成して、オペレーションを実行して、コンピュータ、プロセッサまたは他のプログラム可能装置上でまたはこれらによって遂行されうる。
【００９２】
プログラムコード命令の取出し、ロードおよび実行は、一命令が、一度に、取出し、ロードおよび実行されるように逐次的に遂行されうる。いくつかの例示的実施形態では、多数の命令が、一斉に、取出し、ロードおよび／または実行されるように、並行して、取出し、ロードおよび／または実行が遂行されうる。コンピュータ、プロセッサまたは他のプログラム可能装置によって実行されるプログラムコード命令が、本明細書で説明される機能を実施するためにオペレーションを提供するように、プログラムコード命令を実行することにより、コンピュータ実施プロセスを生成することができる。
【００９３】
プロセッサによる命令の実行またはコンピュータ可読記憶媒体の命令の記憶により、明示した機能を遂行するためにオペレーションの組合せがサポートされる。１つまたは複数の機能および機能の組合せが、明示した機能または特殊目的ハードウェアとプログラムコード命令との組合せを遂行する、特殊目的ハードウェアベースコンピュータシステムおよび／またはプロセッサによって、実施されうることも理解されよう。
【００９４】
さらに本開示は、次の項目による実施形態を備える。
【００９５】
第１項
複数のロケーションにデータを記憶するように構成された不揮発性メモリ（５０２）と、
前記不揮発性メモリ（５０２）に結合され、対応する複数のロケーションに前記不揮発性メモリの前記複数のロケーションのイメージを記憶するように構成された揮発性シャドウメモリ（５０４）を含む、デバイスインターフェース（２０２）とを備え、
前記デバイスインターフェース（２０２）が、デジタルネットワークバス（１０４）を経由してバスコントローラ（１０２）に結合可能であり、前記バスコントローラ（１０２）から前記ネットワークバス（１０４）を渡ってコマンドを受信するように構成され、それに応答して、前記デバイスインターフェース（２０２）が、前記ネットワークバスからのデータを前記不揮発性メモリ（５０２）中のロケーションに書き込むように構成され、前記デバイスインターフェース（２０２）が、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションに前記データを書き込み、その後、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むように構成されることを含む、装置。
【００９６】
第２項
コマンドを受信するように構成された前記デバイスインターフェース（２０２）が、書込みコマンドを受信するように構成されることを含み、
前記デバイスインターフェース（２０２）が、別の書込みコマンドを受信することなくタイムアウト時間を経過した後のみ、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むように構成される、第１項に記載の装置。
【００９７】
第３項
前記デバイスインターフェース（２０２）が、前記揮発性シャドウメモリ（５０４）から前記不揮発性メモリ（５０２）に書込みサイクルを遂行するように構成され、前記デバイスインターフェース（２０２）が、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むように構成されることを含み、
前記デバイスインターフェース（２０２）が、前記不揮発性メモリ（５０２）中の前記ロケーションの保護ステータスまたは非保護ステータスを検査するように構成されることを、前記書込みサイクルがさらに含み、前記ロケーションが非保護ロケーションである事例でのみ、前記デバイスインターフェース（２０２）が、前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むように構成される、第１項に記載の装置。
【００９８】
第４項
前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションの前記データが第２のデータであり、
前記デバイスインターフェース（２０２）が、前記不揮発性メモリ（５０２）中の前記非保護ロケーションから第１のデータを読み込み、前記第１のデータを前記第２のデータと比較するように構成されることを、前記書込みサイクルがさらに含み、前記第１のデータが前記第２のデータと異なる事例でのみ、前記デバイスインターフェース（２０２）が、前記不揮発性メモリ（５０２）中の前記非保護ロケーションに前記第２のデータを書き込むように構成される、第３項に記載の装置。
【００９９】
第５項
前記不揮発性メモリ（５０２）の前記ロケーションの各々に対して前記検査および書込みを含み、前記書込みサイクルのために前記揮発性シャドウメモリ（５０４）が、前記揮発性シャドウメモリ（５０４）の対応するロケーションにイメージを記憶するように構成された、前記書込みサイクルを遂行するように、前記デバイスインターフェース（２０２）が構成される、第３項に記載の装置。
【０１００】
第６項
前記デバイスインターフェース（２０２）が、前記揮発性シャドウメモリ（５０４）から前記不揮発性メモリ（５０２）に書込みサイクルを遂行するように構成され、前記デバイスインターフェース（２０２）が、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むように構成されることを含み、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションの前記データが第２のデータであり、
前記デバイスインターフェース（２０２）が、前記不揮発性メモリ（５０２）中の前記ロケーションから第１のデータを読み出し、前記第１のデータと前記第２のデータを比較するように構成されることを、前記書込みサイクルがさらに含み、前記第１のデータが前記第２のデータと異なる事例でのみ、前記デバイスインターフェース（２０２）が、前記不揮発性メモリ（５０２）中の前記ロケーションに前記第２のデータを書き込むように構成される、第１項に記載の装置。
【０１０１】
第７項
前記不揮発性メモリ（５０２）の前記ロケーションの各々に対して前記読出し、比較および書込みを含み、前記書込みサイクルのために前記揮発性シャドウメモリ（５０４）が、前記揮発性シャドウメモリ（５０４）の対応するロケーションにイメージを記憶するように構成された、前記書込みサイクルを遂行するように、前記デバイスインターフェース（２０２）が構成される、第６項に記載の装置。
【０１０２】
第８項
前記不揮発性メモリ（５０２）が、ベースメモリ（５０２ａ）と拡張メモリ（５０２ｂ）とを含み、前記揮発性シャドウメモリ（５０４）が、ベースシャドウメモリ（５０４ａ）と拡張シャドウメモリ（５０４ｂ）とを含み、
前記ベースシャドウメモリ（５０４ａ）が、前記ベースメモリ（５０２ａ）のイメージを記憶するように構成され、前記拡張シャドウメモリ（５０４ｂ）が、前記拡張メモリ（５０２ｂ）の唯一選択可能なサブセットのイメージを記憶するように構成される、第１項に記載の装置。
【０１０３】
第９項
デジタルネットワークバス（１０４）を経由してバスコントローラ（１０２）から遠隔デバイス（１０６）でコマンドを受信することであって、前記遠隔デバイス（１０６）が、複数のロケーションのデータを記憶するように構成された不揮発性メモリ（５０２）と、対応する複数のロケーションに前記不揮発性メモリ（５０２）の前記複数のロケーションのイメージを記憶するように構成された揮発性シャドウメモリ（５０４）とを含む、受信することと、
前記コマンドの受信に応答して、前記ネットワークバス（１０４）からのデータを前記不揮発性メモリ（５０２）中のロケーションに書き込むことであって、前記揮発性シャドウメモリ（５０４）の前記対応するロケーションに前記データを書き込むことと、その後に前記揮発性シャドウメモリ（５０４）の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むこととを含む、書き込むこととを含む、方法。
【０１０４】
第１０項
コマンドを受信することが、書込みコマンドを受信することを含み、
前記対応するロケーションから前記データを書き込むことが、別の書込みコマンドを受信することなくタイムアウト時間を経過した後のみ、前記揮発性シャドウメモリ（５０４）の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むことを含む、第９項に記載の方法。
【０１０５】
第１１項
前記揮発性シャドウメモリ（５０４）から前記不揮発性メモリ（５０２）に書込みサイクルを遂行することであって、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中のロケーションに前記データを書き込むことを含む、書込みサイクルを遂行することをさらに含み、
前記書込みサイクルが、前記不揮発性メモリ（５０２）中の前記ロケーションの保護ステータスまたは非保護ステータスを検査することをさらに含み、前記ロケーションが非保護ロケーションである事例でのみ、前記データが、前記不揮発性メモリ（５０２）中の前記ロケーションに書き込まれる、第９項に記載の方法。
【０１０６】
第１２項
前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションの前記データが第２のデータであり、
前記書込みサイクルが、前記不揮発性メモリ（５０２）中の前記非保護ロケーションから第１のデータを読み出すことと、前記第１のデータを前記第２のデータと比較することとをさらに含み、前記第１のデータが前記第２のデータと異なる事例でのみ、前記第２のデータが、前記不揮発性メモリ（５０２）中の前記非保護ロケーションに書き込まれる、第１１項に記載の方法。
【０１０７】
第１３項
前記検査することと書き込むこととを含む前記書込みサイクルが、前記不揮発性メモリ（５０２）の前記ロケーションの各々に対して遂行され、前記書込みサイクルのために前記揮発性シャドウメモリ（５０４）が、前記揮発性シャドウメモリ（５０４）の対応するロケーションのイメージを記憶するように構成される、第１１項に記載の方法。
【０１０８】
第１４項
前記揮発性シャドウメモリ（５０４）から前記不揮発性メモリ（５０２）に書込みサイクルを遂行することであって、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションから前記不揮発性メモリ（５０２）中の前記ロケーションに前記データを書き込むことを含み、前記揮発性シャドウメモリ（５０４）中の前記対応するロケーションの前記データが第２のデータである、書込みサイクルを遂行することをさらに含み、
前記書込みサイクルが、前記不揮発性メモリ（５０２）中の前記ロケーションから第１のデータを読み出すことと、前記第１のデータと前記第２のデータを比較することとをさらに含み、前記第１のデータが前記第２のデータと異なる事例でのみ、前記第２のデータが、前記不揮発性メモリ（５０２）中の前記ロケーションに書き込まれる、第９項に記載の方法。
【０１０９】
第１５項
前記読み出すことと、比較することと、書き込むこととを含む前記書込みサイクルが、前記不揮発性メモリ（５０２）の前記ロケーションの各々に対して遂行され、前記書込みサイクルのために前記揮発性シャドウメモリ（５０４）が、前記揮発性シャドウメモリ（５０４）の対応するロケーションにイメージを記憶するように構成される、第１４項に記載の方法。
【０１１０】
第１６項
前記不揮発性メモリ（５０２）が、ベースメモリ（５０２ａ）と拡張メモリ（５０２ｂ）とを含み、前記揮発性シャドウメモリ（５０４）が、ベースシャドウメモリ（５０４ａ）と拡張シャドウメモリ（５０４ｂ）とを含み、
前記ベースシャドウメモリ（５０４ａ）が、前記ベースメモリ（５０２ａ）のイメージを記憶するように構成され、前記拡張シャドウメモリ（５０４ｂ）が、前記拡張メモリ（５０２ｂ）の唯一選択可能なサブセットのイメージを記憶するように構成される、第９項に記載の方法。
【０１１１】
本明細書で明記された本開示の多くの改変および他の実施が、この開示に関係する当業者には想到され、先の説明および付属図面において提示された教示の利点を有するであろう。例えば、本明細書で明記された本開示の例示的実施形態は、超解像、ポストプロセッシング画像強調などの他の画像処理技術の代わりにまたは加えて使用されうる。したがって、本開示は、開示された具体的な実施に限定されず、改変および他の実施は、添付の特許請求の範囲に含まれるものであることが理解されたい。さらに、先の説明および付属図面では、要素および／または機能の一定の例示的組合せにおいて例示的実施について説明したが、要素および／または機能の異なる組合せは、添付の特許請求の範囲から逸脱することなく代替の実施によって提供されうることが理解されるべきである。これに関しては、例えば、上記で明確に説明してきた要素および／または機能との異なる組合せも、添付の特許請求の範囲のいくつかに明記されうるものとして考えられる。本明細書では具体的な用語が採用されているが、これらは包括的および叙述的な認識でのみ使用され、限定を目的とするものではない。
【符号の説明】
【０１１２】
１００  ネットワークシステム
１０２  バスコントローラ
１０４  ネットワークバス
１０６  遠隔デバイス
１０８  周辺装置
２００  遠隔デバイス
２０２  デバイスインターフェース
２０４  データチャネル
２０６  回路
２０８  信号調整デバイス
２１０  アナログ−デジタル変換器（ＡＤＣ）および／またはデジタル−アナログ変換器（ＤＡＣ）
２１２  送信機
２１４  受信機
２１６  第２の受信機
２１８  局部発振器、不揮発性メモリ
２２０  不揮発性メモリ
３００  方法
３０２  ブロック
３０４  ブロック
３０６  ブロック
３０８  ブロック
３１０  ブロック
３１２  ブロック
４００  メモリアーキテクチャ
４０２  遠隔デバイス
４０４  先入れ先出し（ＦＩＦＯ）メモリ
４０４ａ  ｉｎ−ＦＩＦＯ
４０４ｂ  ｏｕｔ−ＦＩＦＯ
４０６  テーブルメモリ
４０８  コンフィギュレーションメモリ
４１０  デバイス記憶メモリ
４１２  デバイスコンフィギュレーションメモリ
５００  デバイス記憶メモリ
５０２  不揮発性デバイス記憶メモリ
５０２ａ  ベースメモリ
５０２ｂ  拡張メモリ
５０４  揮発性デバイス記憶シャドウメモリ
５０４ａ  ベースシャドウメモリ
５０４ｂ  拡張シャドウメモリ
【図１】
2014182815.tif 000003
【図２】
2014182815.tif 000004
【図３】
2014182815.tif 000005
【図４】
2014182815.tif 000006
【図５】
2014182815.tif 000007
【外国語明細書】
2014182815000001.pdf
2014182815000002.pdf
2014182815000003.pdf
2014182815000004.pdf