(57)【要約】【課題】フラッシュメモリでインクリメントし、消去頻度を減少させて寿命を長くする。【解決手段】カウンタは、１から０へのビット遷移を最小にする方法を使用してインプリメントされ、ｍ＋ｎビットでインプリメントされる。このカウンタのビットは、ｍビットカウンタのバイナリ部分と、ｎビットカウンタのユナリ部分にグループ化される。このカウンタのユナリ部分がまずインクリメントされ、このユナリ部分が特定の値に達したとき、このカウンタのバイナリ部分がインクリメントされる。これにより、１から０へのビット遷移が制限されるから、広範囲の一意の値が、このカウンタから読み取られる。【選択図】　　　　図３
2004038971.tif 000002
【特許請求の範囲】
【請求項１】
カウンタをインプリメントする方法において、
値をストアするステップと、
１から０へのビット遷移を最小にするインクリメント機能に従って前記値をインクリメントするステップと
を備えたことを特徴とする方法。
【請求項２】
請求項１において、前記カウンタが満了したか否かを示す前記カウンタのフラグ値をセットするステップをさらに備えたことを特徴とする方法。
【請求項３】
請求項１において、前記インクリメント機能は、前記カウンタが満了した時の前記値の最高限度値をストアすることを特徴とする方法。
【請求項４】
カウンタをインプリメントするコンピュータ装置において、
カウンタの値をストアするストレージと、
１から０へのビット遷移を最小にするカウンタインクリメント方法に従って前記値をインクリメントするカウンタインクリメンタと
を備えたことを特徴とするコンピュータ装置。
【請求項５】
請求項４において、前記カウンタ寿命が満了したか否かを示す前記カウンタのフラグ値をストアするストレージをさらに備えたことを特徴とするコンピュータ装置。
【請求項６】
請求項４において、前記カウンタインクリメンタは、前記カウンタが満了した時の前記ストレージの最高限度値をストアすることを特徴とするコンピュータ装置。
【請求項７】
値をストアするカウンタをインプリメントするコンピュータ実行可能命令を有するコンピュータ実行可能モジュールを含むコンピュータ可読媒体において、
前記モジュールは、
前記カウンタをインクリメントする要求を受け取るモジュールと、
１から０へのビット遷移を最小にするインクリメント方法に従って前記値をインクリメントするモジュールと
を備えたことを特徴とするコンピュータ可読媒体。
【請求項８】
請求項７において、前記モジュールは、前記カウンタ寿命が満了したか否かを示す前記カウンタのフラグ値をセットするモジュールをさらにを備えたことを特徴とするコンピュータ可読媒体。
【請求項９】
請求項７において、前記インクリメントするモジュールは、前記カウンタが満了した時の最高限度値をストアすることを特徴とするコンピュータ可読媒体。
【請求項１０】
カウンタをインプリメントする方法であって、前記カウンタは、第１値をストアするｎビットの第１サブセットと、第２値をストアするｍビットの第２サブセットとを備え、第１カウンタインクリメント方法による１から０へのビット遷移の頻度が、第２カウンタインクリメント方法による１から０へのビット遷移より少ない方法において、
前記カウンタをインクリメントする要求を受け取るステップと、
前記インクリメント要求の受け取りに応答して、前記第１インクリメント方法に従って前記第１値をインクリメントするステップと、
前記第１値が指定された値と等しいとき、前記第２インクリメント方法に従って前記第２値をインクリメントするステップと
を備えたことを特徴とする方法。
【請求項１１】
請求項１０において、前記第１インクリメント方法は、ユナリインクリメントであることを特徴とする方法。
【請求項１２】
請求項１１において、前記第２インクリメント方法は、バイナリインクリメントであることを特徴とする方法。
【請求項１３】
請求項１０において、前記ビットの第１サブセットは、前記カウンタの最下位ビットを備え、
前記ビットの第２サブセットは、前記カウンタの最上位ビットを備えた
ことを特徴とする方法。
【請求項１４】
請求項１０において、前記カウンタは、１から０へのｃ回のビット遷移の予測される寿命を有し、前記値ｍおよび値ｎが、ｃ×ｎ≒２ｍ（ｎ＋１）を満足する値であることを特徴とする方法。
【請求項１５】
請求項１０において、前記カウンタは、フラッシュメモリでインプリメントされることを特徴とする方法。
【請求項１６】
請求項１０において、前記指定された値は、０に等しいことを特徴とする方法。
【請求項１７】
カウンタをインプリメントするコンピュータ装置において、
第１値をストアするｎビットの第１サブセットを備えた第１カウンタと、
第２値をストアするｍビットの第２サブセットを備えた第２カウンタと、
カウンタインクリメント要求を受け取ったときに、第１カウンタインクリメント方法を使用して前記第１カウンタをインクリメントする第１カウンタインクリメンタと、
前記第１値が、指定された値と等しいときに、第２カウンタインクリメント方法を使用して前記第２カウンタをインクリメントする第２カウンタインクリメンタであって、前記第２カウンタインクリメント方法による１から０へのビット遷移の頻度が、前記第１カウンタインクリメント方法よる１から０へのビット遷移の頻度より少ない
ことを特徴とするコンピュータ装置。
【請求項１８】
請求項１７において、前記第１インクリメント方法は、ユナリインクリメントであることを特徴とするコンピュータ装置。
【請求項１９】
請求項１８において、前記第２インクリメント方法は、バイナリインクリメントであることを特徴とするコンピュータ装置。
【請求項２０】
請求項１７において、前記ビットの第１サブセットは、前記カウンタの最下位ビットを備え、
前記ビットの第２サブセットは、前記カウンタの最上位ビットを備えた
ことを特徴とするコンピュータ装置。
【請求項２１】
請求項１７において、前記カウンタは、１から０へのｃ回のビット遷移の予測される寿命を有し、前記値ｍおよび値ｎが、ｃ×ｎ≒２ｍ（ｎ＋１）を満足する値であることを特徴とするコンピュータ装置。
【請求項２２】
請求項１７において、前記カウンタは、フラッシュメモリでインプリメントされることを特徴とするコンピュータ装置。
【請求項２３】
請求項１８において、前記指定された値は、０に等しいことを特徴とするコンピュータ装置。
【請求項２４】
カウンタをインプリメントするコンピュータ実行可能命令を有するコンピュータ実行可能モジュールを含むコンピュータ可読媒体であって、前記カウンタは、第１値をストアするｎビットの第１サブセットと、第２値をストアするｍビットの第２サブセットとを備え、第１カウンタインクリメント方法による１から０へのビット遷移の頻度が、第２カウンタインクリメント方法よる１から０へのビット遷移の頻度より少ないコンピュータ可読媒体において、
前記カウンタをインクリメントする要求を受け取るモジュールと、
前記インクリメント要求の受け取りに応答して、前記第１インクリメント方法に従って前記第１値をインクリメントするモジュールと、
前記第１値は指定された値と等しいときに、前記第２インクリメント方法に従って前記第２値をインクリメントするモジュールと
を備えたことを特徴とするコンピュータ可読媒体。
【請求項２５】
請求項２４において、前記第１インクリメント方法は、ユナリインクリメントであることを特徴とするコンピュータ可読媒体。
【請求項２６】
請求項２５において、前記第２インクリメント方法は、バイナリインクリメントであることを特徴とするコンピュータ可読媒体。
【請求項２７】
請求項２４において、前記ビットの第１サブセットは、前記カウンタの最下位ビットを備え、
前記ビットの第２サブセットは、前記カウンタの最上位ビットを備えた
ことを特徴とするコンピュータ可読媒体。
【請求項２８】
請求項２４において、前記カウンタは、１から０へのｃ回のビット遷移の予測される寿命を有し、前記値ｍおよびｎが、ｃ×ｎ≒２ｍ（ｎ＋１）を満足する値であることを特徴とするコンピュータ可読媒体。
【請求項２９】
請求項２４において、前記カウンタは、フラッシュメモリでインプリメントされることを特徴とするコンピュータ可読媒体。
【請求項３０】
請求項２４において、前記指定された値は、０に等しいことを特徴とするコンピュータ可読媒体。
【請求項３１】
カウンタを読み取る方法において、
前記カウンタのｍビットの第１セットを読み取るステップと、
前記カウンタのｎビットの第２セットを読み取るステップと、
（ａ）前記第１セットから読み取られた値を（ｎ＋１）倍して得られた値と、
（ｂ）前記第２セットから読み取られた値と、を合計して得られた値を計算するステップと、
前記計算により得られた値を少なくとも１回使用するステップと
を備えたことを特徴とする方法。
【請求項３２】
カウンタをインプリメントする方法であって、前記カウンタのビットが、第１値をストアするビットの第１サブセットと、第２値をストアするビットの第２サブセットとを備えたサブセットに動的に分割され、インクリメント方法が、１から０へのビット遷移を最小にする方法において、
前記カウンタをインクリメントする要求を受け取るステップと、
前記インクリメント要求の受け取りに応答して前記インクリメント方法に従って前記第１値をインクリメントするステップと、
前記第１値が指定された値と等しいときに、前記ビットの第２サブセットにビットを追加し、前記ビットの第１サブセットからビットを除去し、前記インクリメント方法に従って前記第２値をインクリメントするステップと
を備えたことを特徴とする方法。
【請求項３３】
請求項３２において、前記インクリメント方法は、ユナリインクリメントであることを特徴とする方法。
【請求項３４】
請求項３２において、前記カウンタは、フラッシュメモリでインクリメントされることを特徴とする方法。
【請求項３５】
請求項３２において、前記指定された値は、０に等しいことを特徴とする方法。
【請求項３６】
カウンタをインプリメントするコンピュータ装置であって、インクリメント方法が、１から０へのビット遷移を最小にするコンピュータ装置において、
第１値をストアするビットの第１サブセットと、第２値をストアするビットの第２サブセットとを備えたサブセットに動的に分割されるビットを備えたカウンタと、
インクリメント要求の受け取りに応答して前記インクリメント方法に従って前記第１値をインクリメントする第１カウンタインクリメンタと、
前記第１値が指定された値と等しいときに、前記ビットの第２サブセットにビットを追加し、前記ビットの第１サブセットからビットを除去し、前記インクリメント方法に従って前記第２値をインクリメントする第２カウンタインクリメンタと
を備えたことを特徴とするコンピュータ装置。
【請求項３７】
請求項３６において、前記インクリメント方法は、ユナリインクリメントであることを特徴とするコンピュータ装置。
【請求項３８】
請求項３６において、前記カウンタは、フラッシュメモリでインプリメントされることを特徴とするコンピュータ装置。
【請求項３９】
請求項３６において、前記指定された値は、０に等しいことを特徴とするコンピュータ装置。
【請求項４０】
カウンタをインプリメントするコンピュータ実行可能命令を有するコンピュータ実行可能モジュールを含むコンピュータ可読媒体であって、前記カウンタが、第１値をストアするビットの第１サブセットと、第２値をストアするビットの第２サブセットとを備えたサブセットに動的に分割されるビットを備え、インクリメント方法が１から０へのビット遷移を最小にするコンピュータ可読媒体において、
前記モジュールは、
前記カウンタをインクリメントする要求を受け取るモジュールと、
インクリメント要求の受け取りに応答して前記インクリメント方法に従って前記第１値をインクリメントするモジュールと、
前記第１値が指定された値と等しいときに、前記ビットの第２サブセットにビットを追加し、前記ビットの第１サブセットからビットを除去し、前記インクリメント方法に従って前記第２値をインクリメントするモジュールと
を備えたことを特徴とするコンピュータ可読媒体。
【請求項４１】
請求項４０において、前記インクリメント方法は、ユナリインクリメントであることを特徴とするコンピュータ可読媒体。
【請求項４２】
請求項４０において、前記カウンタは、フラッシュメモリでインプリメントされることを特徴とするコンピュータ可読媒体。
【請求項４３】
請求項４０において、前記指定された値は、０に等しいことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カウンタに関し、具体的には、クラスタにおけるビット遷移を減少させるようなカウンタの使用に関する。
【０００２】
【従来の技術】
コンピュータシステムにおいて、カウンタは、データを保持し、インクリメントすることができ、要求があったときに、データの値を供給する。例えば、カウンタは、０から２５５までの数を保持するレジスタでインクリメントすることができる。要求があったときに、当該カウンタは、カウンタ値を１だけインクリメントし、２５５を法とする剰余をとる。要求があったときに、当該カウンタは、レジスタの数値を通知する。当該カウンタの用途に応じて、異なるインクリメントが好ましい場合がある。「インクリメント」は、加算以外の数学的演算とすることができ、例えば、乗算を実行することができる。一般に、カウンタは、カウンタデータについて通知し、カウンタデータを予めた方法で修正することができる。
【０００３】
幾つかのコンテキストにおいては、カウンタを修正しようとするアドバーサリ（ａｄｖｅｒｓａｒｙ）に、バリア（ｂａｒｒｉｅｒ）を提示するため、コンピュータシステムのハードウェアでカウンタをインプリメントすることが望ましい場合がある。カウンタは、フラッシュメモリでインクリメントされている。しかしながら、フラッシュメモリにおいては、フラッシュメモリのデータが変更されるとき、１から０に遷移する全てのビットによって、フラッシュメモリの消去および再書込が必要になる、という点に限界がある。仮に全てのビットが同一であるか、０から１に遷移する場合には、変更するために、消去は不要である。慣用的には、フラッシュメモリは、１万回から１００万回の消去に耐えられる。
【０００４】
ユーザは、コンピュータシステム構成要素の寿命が長いことを好む。加えて、コンピュータシステムの中には交換可能な部分があり、セキュリティのために、アドバーサリによる不正な使用と戦うために、フラッシュカウンタは、交換が困難か不可能にされる場合がある。したがって、カウンタの寿命はさらに重要である。フラッシュメモリカウンタにおいては寿命の改善に対するニーズがある。
【０００５】
【発明が解決しようとする課題】
したがって、適正に対処され、これまでに満たされていない当技術分野におけるニーズに適正に対処し満足するカウンタのインクリメントに対するニーズがある。
【０００６】
【課題を解決するための手段】
前述したことに照らすと、本発明は、カウンタ寿命を改善したカウンタのシステムおよび方法を提供する。本発明は、１から０へのビット遷移を減少させたカウンタを提供する。
【０００７】
一実施形態においては、（ｍ＋ｎ）ビットメモリを提供する。メモリのｍビットは、カウンタのバイナリ（ｂｉｎａｒｙ）部分に使用され、メモリのｎビットは、カウンタのユナリ（ｕｎａｒｙ）部分に使用される。カウンタのユナリ部分が、まずインクリメントされる。カウンタのユナリ部分が所定の値に達したとき、その度に、カウンタのバイナリ部分がインクリメントされる。カウンタのユナリ部分は、ｎ回のインクリメントごとの０から１へのビット遷移だけが使用されるので、１から０へのビット遷移が生じるインクリメントの回数が減少する。カウンタの一部でバイナリ数が使用されるので、スペース（ｓｐａｃｅ）が節約される。本発明の一実施形態においては、メモリのｍ個およびｎ個の値を選択する方法が提供される。
【０００８】
他の実施形態では、１から０へのビット遷移を減少させる他の技法が使用される。
【０００９】
本発明の他の特徴は、以下において説明する。
本発明によるカウンタをインプリメントするシステムおよび方法を、添付図面を参照して説明する。
【００１０】
【発明の実施の形態】
概要
カウンタを、ｍ＋ｎビットのメモリ内に設ける。これらのビットは、ｍビットのカウンタのバイナリ部分と、ｎビットのカウンタのユナリ部分にグループ化される。カウンタをインクリメントするため、カウンタのユナリ部分をインクリメントする。カウンタのユナリ部分が特定の値に達したとき、カウンタのバイナリ部分をインクリメントする。カウンタのユナリ部分においては、ｎ回のインクリメントごとに、１から０へのビット遷移のみが使用されるので、１から０へのビット遷移が生じるインクリメントの回数が減少する。カウンタの一部がバイナリなので、スペースが節約される。
【００１１】
他のカウンタ構成も可能である。例えば、代替のインクリメント技法を使用することにより、１から０へのビット遷移を減少させることもできる。ｐビットのカウンタは、ユナリで０からｐ−１までカウントする（ｐインクリメント）が、最初のビットを除く全てのビットに１をセットし、ユナリで、残りのビットを用いて、ｐから２ｐ−２までカウントし（ｐ−１インクリメント）、最初の２ビットを除く全てのビットに１をセットし、ユナリで、残りのビットを用いて、２ｐ−１から３ｐ−４までカウントし（ｐ−２インクリメント）、以下同様に動作し、これによりビット遷移が大幅に減少する。
【００１２】
一般に、本発明に係るシステムおよび方法によれば、カウンタごとまたは複数のセルの間で分割されるカウンタのセルごとの１から０へのビット遷移の回数を減少させるインクリメント技法を使用したカウンタが提供される。
【００１３】
コンピューティング環境の例
図１は、本発明をインクリメントすることができる適正ななコンピューティングシステム環境１００を示す。コンピューティングシステム環境１００は、適正なコンピューティング環境の１つの例にすぎず、本発明の使用の範囲または機能を限定するものではない。また、本発明は、例に過ぎないコンピューティング環境１００内にあるコンポーネントのどれに対しても、又はこれらコンポーネントを組み合わせたものに対しても、依存しないし要求しない。
【００１４】
当業者にとって当然のことであるが、コンピュータその他のクライアント装置またはサーバ装置を、コンピュータネットワークの一部において、又は分散コンピューティング環境においてディプロイ（ｄｅｐｌｏｙ）することができる。この点、本発明に係るコンピュータは、任意の数のメモリ又はストレージユニットを有し、ストレージユニット又はボリューム（ｖｏｌｕｍｅ）に現れる任意の数のアプリケーション及びプロセスを有する。本発明は、リモートストレージ又はローカルストレージを有する、ネットワーク環境又は分散コンピューティング環境においてディプロイされるサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明は、リモートサービス又はローカルサービスと協働して情報を生成し受信し送信するため、プログラミング言語機能と、解釈能力と、実行能力とを有するスタンドアローンコンピューティング装置にも適用することができる。本発明は、多数の他の汎用又は専用コンピューティングシステム環境又は構成と共にオペレートすることができる。周知のコンピューティングシステム、コンピューティング環境、及び／又はコンピューティング構成であって、本発明と共に使用するのに適している例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータが含まれるとともに、上記のシステム又は装置のうちの任意のものを含む分散コンピューティング環境、等々が含まれるが、これらに限定されるものではない。本発明は、コンピュータ実行可能命令、例えばコンピュータによって実行されるプログラムモジュールの一般的なコンテキストで説明することができる。一般的に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等であって、特定のタスクをパフォームするか、特定の抽象データ型をインプリメントしたものが含まれる。本発明は、通信ネットワークその他のデータ伝送媒体を介してリンクされているリモートプロセシング装置によって、タスクがパフォームされる分散コンピューティング環境においても実施することができる。分散コンピューティング環境においては、プログラムモジュール及び他のデータは、ローカル及びリモートのコンピュータ記憶媒体であって、メモリ記憶装置を含むものに位置させることができる。分散コンピューティングによれば、コンピューティング装置とコンピューティングシステムの間で直接交換することにより、コンピュータリソース及びサービスのシェアリング（ｓｈａｒｉｎｇ）が容易になる。これらリソース及びサービスには、情報の交換、キャッシュストレージ、及びファイルをディスクスにストアすることが含まれる。分散コンピューティングにおいては、ネットワーク接続が利用されるから、クライアントは、エンタプライズ全体の利益のため、集約させたパワーをレバレッジ（ｌｅｖｅｒａｇｅ）することができる。この点、種々の装置が、アプリケーション、オブジェクト、又はリソースであって、本発明に係る技術を利用できるものを有することができる。
【００１５】
図１を説明する。本発明をインプリメントしたシステムの例には、コンピュータ１１０の形態の汎用コンピューティング装置が含まれる。コンピュータ１１０の構成要素には、プロセシングユニット１２０、システムメモリ１３０が含まれるとともに、システムメモリを含む種々のシステム構成要素をプロセシングユニット１２０に結合するシステムバス１２１が含まれるが、これらに限定されるものではない。このシステムバス１２１は、幾つかのタイプのバス構造であって、メモリバス又はメモリコントローラと、ペリフェラルバスと、任意のバスアーキテクチャを使用するローカルバスとを含むバス構造とすることができる。例を挙げると、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バスと、ＭＣＡ（Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バスと、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バスと、ＶＥＳＡ（Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）ローカルバスと、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスともいう。）とが含まれるが、これらに限定されるものではない。
【００１６】
コンピュータ１１０には、典型的には、種々のコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータ１１０によってアクセスできる全ての利用可能な媒体とすることができ、コンピュータ可読媒体には、揮発性及び不揮発性の媒体と、リムーバブル及びノンリムーバブルの媒体とが含まれる。例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を備えるが、これらに限定されるものではない。コンピュータ記憶媒体には、揮発性及び不揮発性で、リムーバブル及びノンリムーバブルの媒体であって、情報、例えばコンピュータ可読命令、データ構造、プログラムモジュールその他のデータを記憶するための方法又は技術でインプリメントされた媒体か含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ　ｖｅｒｓａｔｉｌｅ　ｄｉｓｋｓ）その他の光学ディスク記憶媒体、磁気カセット、磁気テープ、磁気記憶媒体その他の磁気記憶装置、あるいは所望の情報をストアするために使用することができる媒体であって、コンピュータ１１０によってアクセスできる他の全ての媒体が含まれるが、これらに限定されるものではいない。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュールその他のデータであって、変調データ信号、例えば搬送波その他のトランスポートメカニズムで搬送されるものを具現化したものであり、この通信媒体には、情報供給媒体が含まれる。「変調データ信号」とは、１つ以上の特性セットを有する信号であって、情報を信号でエンコードするような方法で変化する信号を意味する。例を挙げると、通信媒体には、ワイヤード媒体、例えばワイヤードネットワーク又は直接ワイヤード接続が含まれ、ワイヤレス媒体、例えばアコースティック、ＲＦ、赤外線その他のワイヤレス媒体が含まれるが、これらに限定されるものではない。上記のものを任意に組み合わせたものも、コンピュータ可読媒体の範囲内のものである。
【００１７】
システムメモリ１３０には、揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータ記憶媒体、例えばＲＯＭ（ｒｅａｄ　ｏｎｌｙ　ｍｅｍｏｒｙ）１３１及びＲＡＭ（ｒａｎｄｏｍ　ａｃｃｅｓｓ　ｍｅｍｏｒｙ）１３２が含まれている。コンピュータ１１０内の要素の間での情報の転送、例えば起動中における情報の転送を助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ　ｉｎｐｕｔ　ｏｕｔｐｕｔ　ｓｙｓｔｅｍ）１３３が、典型的には、ＲＯＭ１３１にストアされる。ＲＡＭ１３２には、プロセシングユニット１２０により即時にアクセス可能であり、及び／又はプロセシングユニット１２０によって現在オペレートされている、データ及び／又はプログラムモジュールが含まれてるのが、典型的である。例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７を示すが、これらに限定されるものではない。
【００１８】
コンピュータ１１０には、他のリムーバブル／ノンリムーバブルの揮発性／不揮発性コンピュータ記憶媒体を含めることもできる。図１は、ノンリムーバブル不揮発性磁気媒体との間でリード及びライトする磁気ディスクドライブ１５１と、リムーバブル不揮発性磁気ディスク１５２との間でリード及びライトするハードディスクドライブ１４１と、リムーバブル不揮発性光ディスク１５６、例えばＣＤ−ＲＯＭその他の光媒体との間でリード及びライトする光ディスクドライブ１５５を示すが、これらは例にすぎない。他のリムーバブル／ノンリムーバブルの揮発性／不揮発性のコンピュータ記憶媒体であって、オペレーティング環境例で使用することができるものには、磁気テープカセット、フラッシュメモリカード、ＤＶＤ（ｄｉｇｉｔａｌ　ｖｅｒｓａｔｉｌｅ　ｄｉｓｋｓ）、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭ、等々が含まれるが、これらに限定されるものではない。ハードディスクドライブ１４１は、典型的には、インタフェース１４０のようなノンリムーバブルメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、典型的には、インタフェース１５０のようなリムーバブルメモリインタフェースによってシステムバス１２１に接続されている。
【００１９】
図１に示したドライブ及びそれに関連するコンピュータ記憶媒体であって上述したものは、コンピュータ１１０に対する、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータを記憶するものである。
【００２０】
図１において、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７をストアするためのものとして図示されている。次のことに留意されたい。すなわち、これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と、同一のもの又は異なるもののいずれかとすることができる。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７については、少なくともこれらが異なるものであることを示すため、異なる符号を付してある。ユーザは、コマンド及び情報を、入力装置、例えばキーボード１６２と、ポインティング装置１６１、いわゆるマウス、トラックボール、又はタッチパッドというものとを介して、コンピュータ１１０に入力することができる。他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信用パラボラアンテナ、スキャナ、等々を含めることができる。これら及び他の入力装置は、しばしば、システムバスに結合されているユーザ入力インタフェース１６０を介して、プロセシングユニット１２０に接続されているが、他のインタフェース及びバス構造、例えばパラレルポート、ゲームポート、又はＵＳＢ（ｕｎｉｖｅｒｓａｌ　ｓｅｒｉａｌ　ｂｕｓ）によって接続することができる。モニタ１９１その他のディスプレイ装置も、ビデオインタフェース１９０のようなインタフェースを介して、システムバス１２１に接続されている。コンピュータには、モニタに加えて、スピーカ１９７及びプリンタ１９６のような他のペリフェラル出力装置も含めることができ、これらのペリフェラル出力装置は、出力ペリフェラルインタフェース１９５を介して接続することができる。
【００２１】
コンピュータ１１０は、リモートコンピュータ１８０のような１つ以上のリモートコンピュータへの論理接続を使用して、ネットワーク環境においてオペレーションすることができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置その他の一般的的なネットワークノードとすることができ、リモートコンピュータ１８０には、典型的には、コンピュータ１１０に関して上述した要素の多数又は全てが含まれるが、図１にはメモリ記憶装置１８１のみを図示してある。図１に示した論理接続には、ＬＡＮ（ｌｏｃａｌ　ａｒｅａ　ｎｅｔｗｏｒｋ）１７１及び（ＷＡＮ（ｗｉｄｅ　ａｒｅａ　ｎｅｔｗｏｒｋ）１７３が含まれるが、他のネットワークを含めることもできる。このようなネットワーキング環境は、オフィス、ｅｎｔｅｒｐｒｉｓｅ−ｗｉｄｅコンピュータネットワーク、イントラネット、及びｔｈｅ　Ｉｎｔｅｒｎｅｔにおいてありふれたものである。
【００２２】
コンピュータ１１０は、ＬＡＮネットワーキング環境で使用されると、ネットワークインタフェース又はネットワークアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用されるとき、コンピュータ１１０には、典型的には、モデム１７２その他の手段であって、ｔｈｅ　ＩｎｔｅｒｎｅｔのようなＷＡＮ１７３を介する通信を確立するものが含まれる。モデム１７２は、内蔵又は外付けとすることができるが、ユーザ入力インタフェース１６０その他の適正な機構を介して、システムバス１２１に接続することができる。ネットワーク化された環境においては、コンピュータ１１０に関して図示したプログラムモジュール、又はその一部を、リモートメモリ記憶装置にストアすることができる。例として、図１に、メモリ装置１８１に駐在するものとして、リモートアプリケーションプログラム１８５を示すが、これに限定されるものではない。当然、図示のネットワーク接続は、例にすぎず、コンピュータ間で通信リンクを確立する他の手段を、使用することができる。
【００２３】
１から０へのビット遷移の回数を減少させたカウンタ
本発明の一実施形態によれば、フラッシュメモリでインクリメントされるカウンタは、１から０へのビット遷移回数を減少させるカウンタインクリメント機能を使用することになる。これによって、フラッシュメモリの消去回数と再書込回数とが減少するから、カウンタの寿命が長くなる。一実施形態においては、当該カウンタは、別々に消去可能で再書込可能であるフラッシュメモリの多くのセルでインクリメントされている。この場合に、使用されるカウンタインクリメント機能は、個別のフラッシュメモリセルが再書込される回数を減少させなければならない。
【００２４】
ユナリ部分およびバイナリ部分を使用する実施形態
ビット遷移の回数を減少させたカウンタをインプリメントするため、一実施形態においては、ユナリ部分およびバイナリ部分を有するカウンタが作成される。
【００２５】
バイナリカウントに代えてユナリカウントを使用すると、１から０へのビット遷移の回数が減少する。ユナリカウントは、簡単なカウント方法であり、これを表１に示す。
【００２６】
【表１】
2004038971.tif 000003
【００２７】
表１から分かるように、このカウント方法は、スペース集約型である。０から１５まで数えるのに、１５ビットが使用される。しかし、１から０へのビット遷移は発生しない。一般に、０からｎまで数えるのに、ｎビットが使用され、１から０へのビット遷移は０回発生する。バイナリでのカウントは、それほどスペース集約型ではなく、これを表２に示す。
【００２８】
【表２】
2004038971.tif 000004
【００２９】
バイナリでは、０から１５までの数を、４ビットで表すことができる。しかし、１から０へのビット遷移が、１つおきのインクリメントで発生する。一般に、ｍビットによって、２ｍ個の値を表すことができる。
【００３０】
発明に係る技法によれば、図２に示すように、カウンタ２００が、サイズｎ＋ｍのメモリに設けられる。好ましい実施形態では、当該メモリは単一のメモリユニットである。代替実施形態では、当該メモリは、多くのメモリユニットにより構成することができる。当該メモリは、２つの部分、すなわちｎビットのカウンタであるユナリ部分２１０と、ｍビットのカウンタであるバイナリ部分２２０とに分割される。好ましい実施形態では、最下位ビットからｎビットは、当該カウンタのユナリ部分を備え、最上位ビットからｍビットは、当該カウンタのバイナリ部分を備える。しかしながら、ビットグループ化は本発明の他の実施形態で見られる。一実施形態においては、最下位ビットからｍビットは、当該カウンタのバイナリ部分を備え、最上位ビットからｎビットは、当該カウンタのユナリ部分を備えている。一実施形態においては、各カウンタを構成するビットは、カウンタ内で連続していない。
【００３１】
加えて、本発明は、当該カウンタの第１部分のインクリメント方法としてのユナリインクリメントと、当該カウンタの第２部分のインクリメント方法としてのバイナリインクリメントに関して説明する。しかし、本発明の代替実施形態においては、他のインクリメント方法を、カウンタの第１部分および第２部分について使用することができる。本発明の効果を得るには、インクリメントごとの１から０へのビット遷移の回数（すなわち平均回数）は、第１カウンタ部分のインクリメント方法が、第２部分のインクリメント方法より少なくなければならない。
【００３２】
カウンタ値の計算
一実施形態においては、当該カウンタの値を読み取るため、当該カウンタのバイナリ部分２２０およびユナリ部分２１０が読み取られる。バイナリ部分２２０にストアされた値に、ｎ＋１を乗算する。その後、ユナリ部分２１０にストアされた値を読み取る。この２つの値の合計値により、当該カウンタにストアされた値が判定できる。本発明のこの実施形態によれば、カウンタの最初の３ビットにバイナリ部分がストアされ、カウンタの最後の４ビットにユナリ部分がストアされるカウンタの値は、表３に示すようになる。
【００３３】
【表３】
2004038971.tif 000005
【００３４】
Ａ．カウンタのインクリメント
図３に示すように、当該カウンタは、インクリメントの要求を受け取る（３００）。当該カウンタは、カウンタのユナリ部分をインクリメントする（３１０）。本発明の好ましい実施形態では、このインクリメントが、ユナリインクリメントのｎ＋１を法とする剰余であるから、ユナリ部分の全てのビットが１のとき、このユナリ部分をインクリメントすると、このユナリ部分の全てのビットに０がセットされることになる。当該カウンタのユナリ部分が、指定された値に達した場合に（判断ステップ３２０）、当該カウンタのバイナリ部分をインクリメントする（３３０）。本発明の好ましい実施形態では、このインクリメントが、バイナリインクリメントの２ｍを法とする剰余であるから、バイナリ部分の全てのビットが１であるとき、当該バイナリ部分をインクリメントすると、当該バイナリ部分の全てのビットが０にセットされることになる。当該カウンタのバイナリ部分がインクリメントされた場合も、そうでない場合も、当該カウンタは、インクリメントの要求があるまで待機する（３００）。
【００３５】
一実施形態において、仮に当該カウンタのユナリ部分と、当該カウンタのバイナリ部分の両方がインクリメントされた場合は、このインクリメントは、当該カウンタに対する１つのオペレーションにより生じる。一実施形態においては、当該カウンタのバイナリ部分のインクリメントは、当該カウンタのユナリ部分の「ロールオーバ」によってトリガされる。当該カウンタのユナリ部分の各ビット値に１がセットされ、しかもインクリメント要求が受け取られると、当該カウンタのユナリ部分のインクリメントが実行され（ｎを法とする剰余）、これによって、カウンタのユナリ部分の各ビットが０にセットされる。同時に、当該カウンタのバイナリ部分がインクリメントされる。この実施形態においては、当該カウンタのうち、このバイナリインクリメントをトリガするユナリ部分の指定値は、０である。
【００３６】
Ｂ．ｍおよびｎの値の計算
幾つかの応用例においては、当該カウンタは、当該カウンタが全ての値をとる１サイクルの間、存続するのが望ましい。これは、当該カウンタがセキュリティ目的に使用され、カウンタ値が重複するのが好ましくないからである。
【００３７】
当該カウンタの予測される寿命は、１から０へのビット遷移の回数で測定することができる。このビット遷移は、例えばフラッシュメモリで生じる。仮に当該カウンタのバイナリ部分が、当該カウンタのユナリ部分のロールオーバの際にインクリメントされる場合には、ビット遷移は、ｎ回のインクリメントごとに発生する。したがって、当該カウンタの寿命が、１から０へのビット遷移の回数で、ｃ回である場合には、この寿命の間に生じる可能性のあるインクリメントの回数は、ｃ×ｎとなる。
【００３８】
同時に、当該カウンタによって表すことができる値の個数は、当該カウンタのバイナリ部分によって表すことができる値の個数に、当該カウンタのユナリ部分によって表すことができる値の個数を乗算したものと等しい。当該カウンタのバイナリ部分は、０から２ｍ−１までの全ての数値を表すので、２ｍ個の数値を表すことができる。当該カウンタのユナリ部分は、０からｎまでの全ての値を表すので、ｎ＋１個の数値を表すことができる。したがって、表すことができる値の総数は、２ｍ（ｎ＋１）個である。
【００３９】
期待される寿命が、全ての可能な値の１サイクルに等しいカウンタを作るには、当該ユーザは、ｃ×ｎ≒２ｍ（ｎ＋１）を満足するｍおよびｎを選択しなければならない。
【００４０】
代替のカウンタインクリメント機能
当該カウンタインクリメント機能によって、１から０へのビット遷移の回数が減少する。本発明のもう１つの実施形態においては、異なるカウンタインクリメント機能が使用される。このカウンタインクリメント機能において、当該カウンタは、当該カウンタがインクリメントされるときサイズが変化する２つのユナリカウンタに、連続して分割される。ｐビットのカウンタにあっては、まず、当該カウンタは、最後のｐ−１ビットを使用して、０からｐ−１まで、ユナリにカウントし、ビットｐに０をストアする。当該カウンタがｐ−１に達すると、当該カウンタをインクリメントするため、ビットｐが１ビットユナリカウンタになり、ビットｐ−１が１ビットセパレータになり、ビット１からｐ−２までが、ユナリカウンタになる。そして、当該カウンタはｐから２ｐ−２までカウントする。当該カウンタが２ｐ−２に達すると、当該カウンタをインクリメントするため、ビットｐおよびｐ−１が２ビットユナリカウンタになり、ビットｐ−２が１ビットセパレータになり、ビット１からｐ−３がユナリカウンタになる。これは、セパレータがビット２になるまで、続けられる。（ｐ＋２）（ｐ−１）／２個の一意の値は、当該カウンタによりカウントすることができる。もう１つの実施形態においては、全てのビットに１がセットされていカウントが、当該パターンに追加され、その実施形態においては、当該カウンタを（ｐ−２）回消去するだけで、（ｐ＋２）（ｐ−１）／２＋１個の一意の値を表すことができる。
【００４１】
ｐ＝７のときのこの方法を表４に示す。ただし、セパレータビットは、太字で示してある。
【００４２】
【表４】
2004038971.tif 000006
【００４３】
この実施の形態は、０から１への遷移を最小にするインクリメント方式のもう１つの実施形態である。加えて、当該カウンタの左側にあるユナリカウンタが表す数値が大きくなるにつれて、当該カウンタ部分に含まれるビットが、１から０へ１回だけ遷移する。
【００４４】
図４に示すように、ステップ４００で、インクリメント要求を受け取る。ステップ４１０で、第１カウンタをインクリメントする。ステップ４２０で、当該カウンタの第１部分が、指定された値に達したか否かを判定する。達していない場合には、この方法は、新しいインクリメント要求を待つ。他方、当該カウンタの第１部分が指定された値に達した場合には、当該カウンタの第２部分に、１ビットを追加し、当該カウンタの第１部分から、１ビットを除去し、当該カウンタの第２部分をインクリメントする（４３０）。第１及び第２部分のインクリメントは同時に行われ、このインクリメントは、当該カウンタの第１及び第２部分の新しい値を含めて、新しいカウンタ値が判定されたとき、行なわれ、必要であれば、当該カウンタを保持するメモリに、当該新しい値が書き込まれる。
【００４５】
仮にこのスキーム（ｓｃｈｅｍｅ）が、２つ以上のセルを有するフラッシュメモリカウンタで使用され、しかもこれらセルが、異なる時点における当該カウンタの異なるエリアを表すために、割り当てられる場合には、当該フラッシュメモリの寿命を改善することができる。例えば、可能な値の数を、フラッシュメモリのセルの数で除算することにより、遷移カウントを判定することができ、しかも、遷移カウントごとに当該カウンタの異なる部分に割り当てられたセルを判定することができる。このようにすると、当該カウンタの右側にあるビットは、消去及び再書き込みの頻度が、当該カウンタの左側あるビットより大きくなければならないが、異なるセルに割り当てることができ、これによりセルの平均寿命が長くなる。
【００４６】
カウンタ満了の判定
仮にフラッシュセルの消去頻度が多過ぎる場合には、リライアブル（ｒｅｌｉａｂｌｅ）でなくなり、これら書き込みオペレーションにより、予想できなかった値が書き込まれる可能性がある。一般に、当該カウンタのユーザは、当該カウンタの寿命がつきたか否かを判定できることが望ましく、しかも、リライアブルでなくなったか否かを判定できることが望ましい。仮に当該カウンタの寿命において、周知の消去下限がある場合には、インクリメントロジックによって、ある値を超えるインクリメントを拒否することができる。当該カウンタのユーザは、この最高限度値（ｃｅｉｌｉｎｇ　ｖａｌｕｅ）を、当該カウンタ満了の証拠とすることができる。
【００４７】
仮にカウンタの寿命について決定的な原因があるか、より高い精度が望まれる場合には、代替実施形態において、インクリメントオペレータ（ｏｐｅｒａｔｏｒ）によって、当該カウンタ値をインクリメントし、その後、読み取る（ｉｎｃｒｅｍｅｎｔ−ｔｈｅｎ−ｒｅａｄ）ことができる。仮に当該カウンタ値が期待された値でない場合には、当該カウンタに関係付けをした個別の「サスペクト（ｓｕｓｐｅｃｔ）」フラグ又はビットをセットすることができる。当該カウンタのユーザは、「サスペクト」フラグ又はビットをコンサルト（ｃｏｎｓｕｌｔ）して、現在通知されている値の信頼性を判定することができる。
【００４８】
むすび
以上、カウンタインプリメンテーションのためのシステム及び方法を説明した。上述したように、本発明の実施形態を、種々のコンピューティング装置とネットワークアーキテクチャに関して説明したが、カウンタを作成することが望ましいコンピューティング装置又はコンピューティングシステムに、その基礎となる概念を適用することができる。したがって、本発明に係るカウンタを作成する技法を、種々の応用例及び装置に適用することができる。例えば、本発明に係る技法を、コンピューティング装置のオペレーティングシステムに適用することができ、また、かかる技法は、当該コンピューティング装置上の個別のオブジェクトとして、別のオブジェクトの一部として、サーバからのダウンロード可能なオブジェクトとして、装置又はオブジェクトとネットワークとの間の「仲介役」として、分散オブジェクト、等々として、供給することができる。名前及び例は、本明細書においては、種々の選択肢を表すものとして選択されたが、これらの名前及び例に、限定されるものではない。
【００４９】
本明細書で説明した種々の技法は、ハードウェア又はソフトウェアと協働させてインプリメントすることができ、あるいは、適正な場合に、ハードウェア及びソフトウェアを組み合せたものと協働させてインプリメントすることができる。したがって、本発明の方法及び装置、あるいはある態様又はその態様の部分は、有形の媒体、例えばフロッピディスク（登録商標）、ＣＤ−ＲＯＭ（登録商標）、ハードドライブその他のマシン（ｍａｃｈｉｎｅ）可読記憶媒体に具現化されたプログラムコード（すなわち命令）の形をとることができる。ここで、プログラムコードがマシン、例えばコンピュータにロードされ、このマシンによって実行されると、当該コンピュータは、本発明を実施する装置となる。プログラマブルコンピュータにおいてプログラムコードを実行する場合に、このコンピューティング装置には、一般的に、プロセッサ、このプロセッサが可読な記憶媒体（揮発性及び不揮発性のメモリ及び／又は記憶要素を含む）、少なくとも１つの入力装置、及び少なくとも１つの出力装置が含まれる。本発明に係る技法を使用できる１つ以上のプログラムであって、例えばデータ処理ＡＰＩ等を使用するプログラムは、コンピュータシステムと通信するため、高水準プロシージャ（ｐｒｏｃｅｄｕｒｅ）指向プログラミング言語、又は高水準オブジェクト指向プログラミング言語でインプリメントするのが、好ましい。しかし、当該プログラムは、必要であれば、アセンブリ言語又は機械語でインプリメントすることができる。いずれにせよ、当該言語は、コンパイル言語、又はインタプリタ言語とすることができ、しかもハードウェアでインプリメントしたものと組み合わせることができる。
【００５０】
本発明に係る方法及び装置は、プログラムコードの形態で具現化された通信を介して実施することができ、かかる通信においては、伝送媒体、例えば電気配線又はケーブリング、光ファイバを介して、伝送されるか又は他の形態の伝送が行なわれるから、プログラムコードが受信され、マシン、例えばＥＰＲＯＭ、ゲートアレイ、ＰＬＤ（ｐｒｏｇｒａｍｍａｂｌｅ　ｌｏｇｉｃ　ｄｅｖｉｃｅ）、クライアントコンピュータ、ビデオレコーダ等にロードされて実行されると、上記実施形態において述べた信号処理機能を有する受信側マシンは、本発明を実施する装置となる。汎用プロセッサにインプリメントされると、当該プログラムコードは、当該汎用プロセッサと組み合わされて、本発明の機能をインボークするためにオペレートする一意の装置を提供する。加えて、本発明とともに使用されるストレージ技法は、例外なく、ハードウェアとソフトウェアを組み合せたものとすることができる。
【００５１】
以上、本発明を、種々の図面の好ましい実施形態に関連して説明したが、当然、他の類似する実施形態を使用することができ、あるいは、本発明から逸脱せずに、本発明の同一の機能を実行するために説明された実施形態に対して修正又は追加を行うことができる。例えば、本発明に係るネットワーク環境の例を、ピアツーピアネットワーク環境のようなネットワーク環境のコンテクストで説明したが、本発明がこれに限定されないことは、当業者にとって当然のことであり、また、本明細書において説明したような方法は、コンピューティング装置又はコンピューティング環境、例えば、ゲーミングコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータ等であってワイヤード（ｗｉｒｅｄ）又はワイヤレス（ｗｉｒｅｌｅｓｓ）のものに適用することができ、さらに、通信ネットワークを介して接続され、しかもネットワークを介してインタラクト（ｉｎｔｅｒａｃｔ）されたコンピューティング装置に適用することができることは、当業者にとって当然のことである。さらに、これは強調すべきことであるが、特にワイヤレスネットワーク化された装置の数が激増するにつれて、ハンドヘルド装置オペレーティングシステムと、他のアプリケーションに特化されたオペレーティングシステムとを含むコンピュータプラットフォームが予想される。さらにまた、本発明は、複数のプロセシングチップ又は装置でインプリメントすることができ、同様に、複数の装置に亘って記憶（ｓｔｏｒａｇｅ）することができる。したがって、本発明は、単一の実施形態に限定されず、請求の範囲に従って解釈すべきである。
【図面の簡単な説明】
【図１】本発明の態様をインクリメントすることができるコンピューティング環境の例を示すブロック図である。
【図２】本発明の一実施形態に係るカウンタを示すブロック図である。
【図３】本発明の一実施形態係るカウンタの使用を示す流れ図である。
【図４】本発明の一実施形態に係るカウンタの使用を示す流れ図である。
【符号の説明】
１１０　コンピュータ
１２０　プロセシングユニット
１２１　システムバス
１３０　システムメモリ
１３１　ＲＯＭ
１３２　ＲＡＭ
１３３　ＢＩＯＳ
１３４　オペレーティングシステム
１３５　アプリケーションプログラム
１３６　他のプログラムモジュール
１３７　プログラムデータ
１４０　インタフェース
１４１　ハードディスクドライブ
１４４　オペレーティングシステム
１４５　アプリケーションプログラム
１４６　他のプログラムモジュール
１４７　プログラムデータ
１５０　インタフェース
１５１　磁気ディスクドライブ
１５２　リムーバブル不揮発性磁気ディスク
１５６　リムーバブル不揮発性光ディスク
１６０　ユーザ入力インタフェース
１６１　ポインティング装置
１６２　キーボード
１７０　ネットワークインタフェース
１７１　ＬＡＮ
１７２　モデム
１７３　ＷＡＮ
１８０　リモートコンピュータ
１８１　メモリ装置
１８５　リモートアプリケーションプログラム
１９０　ビデオインタフェース
１９１　モニタ
１９５　出力ペリフェラルインタフェース
１９６　プリンタ
１９７　スピーカ
【図１】
2004038971.tif 000007
【図２】
2004038971.tif 000008
【図３】
2004038971.tif 000009
【図４】
2004038971.tif 000010