(57)【特許請求の範囲】
【請求項１】
メモリをアクセスするためのインターリーブ比を選択する、コンピュータにより実施される方法であって、
それぞれが複数のフラッシュメモリセルを有する複数のフラッシュメモリを備えたフラッシュメモリデバイスにおいて、前記複数のフラッシュメモリセルのメモリ動作を実行する要求を受信し、
前記要求が受信されたときに前記フラッシュメモリデバイスにより使用されている１つまたは複数の現在の動作設定を特定し、前記現在の動作設定は、前記フラッシュメモリデバイスの動作中に可変であり、前記複数のフラッシュメモリセルの少なくとも一つまたは前記フラッシュメモリデバイスに関連し、
前記要求されたメモリ動作が書込み動作または読出し動作のいずれであるかを判断し、該判断に基づいて、
（ｉ）前記フラッシュメモリデバイスにより、前記要求の受信に応じて、予め定義された基準のセットを用いて、前記現在の動作設定と動作温度を含む現在の動作状態に基づいて書込みインターリーブ比を動的に計算し、前記書込みインターリーブ比は書込み動作において同時にアクセスされるフラッシュメモリセルの数を示し、前記予め定義された基準のセットは、現在の動作設定のもとで読出し動作のための予め定められた基準のセットにより選択される読出しのインターリーブ比と異なる書込みインターリーブ比の選択に帰結し、
前記選択された書込みインターリーブ比を用いて前記複数のフラッシュメモリセルへ要求されたデータを書き込むこと、または
（ｉｉ）前記フラッシュメモリデバイスにより、前記要求の受信に応じて、予め定義された基準のセットを用いて、前記現在の動作設定と動作温度を含む現在の動作状態に基づいて読出しインターリーブ比を動的に計算し、前記読出しインターリーブ比は読出し動作において同時にアクセスされるフラッシュメモリセルの数を示し、前記予め定義された基準のセットは、現在の動作設定のもとで読出し動作のための予め定められた基準のセットにより選択される書込みのインターリーブ比と異なる読出しインターリーブ比の選択に帰結し、
前記選択された読出しインターリーブ比を用いて前記複数のフラッシュメモリセルから要求されたデータを読み出すこと、
のいずれかを行ない、
前記複数のフラッシュメモリセルの少なくとも一つまたは前記フラッシュメモリデバイスに関連した前記現在の動作設定は、前記複数のフラッシュメモリセルに関連した予め定義された最小動作電圧と、電源からの前記フラッシュメモリデバイスのために利用可能な電圧を含み、
前記予め定義された最小動作電圧は前記複数のフラッシュメモリの各々から読み出されることを特徴とする方法。
【請求項２】
前記複数のフラッシュメモリセルから前記要求されたデータを読み出すのに用いられる前記読出しインターリーブ比は、読み出されている前記データを書き込むのに用いられた書込みインターリーブ比と異なる、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のメモリセルまたは前記フラッシュメモリデバイスに関連する前記現在の動作設定は、前記フラッシュメモリデバイスの動作の現在のモードを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記フラッシュメモリデバイスの動作の前記現在のモードは電力節約モードを含み、前記電力節約モードの間は前記フラッシュメモリデバイスは電力消費を最小化するオプションを選択するように構成される、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記フラッシュメモリデバイスは、外部電源からポータブル電源に切り替えられたことの検出に応じて、前記電力節約モードに移行する、ことを特徴とする請求項４に記載の方法。
【請求項６】
前記ポータブル電源はバッテリを備える、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記フラッシュメモリデバイスへ電源により供給される電圧が電源レベルの閾値を下回ったことに応じて、前記フラッシュメモリデバイスは前記電力節約モードへ移行することを特徴とする請求項４に記載の方法。
【請求項８】
前記電源はポータブル電源であることを特徴とする請求項７に記載の方法。
【請求項９】
前記フラッシュメモリデバイスの動作の前記現在のモードは最小遅延モードを含み、前記最小遅延モードの間は、前記フラッシュメモリデバイスは、少なくともメモリベースの動作について実行時間を最小化するオプションを選択する、ことを特徴とする請求項３に記載の方法。
【請求項１０】
前記フラッシュメモリデバイスがポータブル電源から外部電源へ切り替えられたことを検出したことに応じて、前記フラッシュメモリデバイスは前記最小遅延モードへ移行する、ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記複数のフラッシュメモリセルまたは前記フラッシュメモリデバイスと関連した前記現在の動作設定は、前記フラッシュメモリデバイスのディスプレイのための現在の表示設定を含む、ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記現在の表示設定は高輝度設定を含み、前記高輝度設定の間、前記ディスプレイは、最小輝度レベルもしくはそれよりも高い輝度レベルで動作する、ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記予め定義された最小動作電圧の各々は、前記複数のメモリセルが配置される１つまたは複数のフラッシュメモリダイに関連している、ことを特徴とする請求項１に記載の方法。
【請求項１４】
フラッシュメモリをアクセスするための読出しおよび書込みインターリーブ比を選択するシステムであって、
複数のフラッシュメモリセルをそれぞれが有する複数のフラッシュメモリを含むフラッシュメモリデバイスと、
前記複数のフラッシュメモリセルに対するデータの読出しおよびデータの書込みを行うための要求を受信するインターフェースと、
前記フラッシュメモリデバイスに接続された電源と、
前記要求の受信に応じて、前記要求を受信したときの前記フラッシュメモリデバイスにより用いられている１つまたは複数の現在の動作設定と前記システムの現在の動作温度に基づいて、読出しおよび書込みのインターリーブ比を動的に計算するプロセッサと、前記現在の動作設定は前記フラッシュメモリデバイスの動作中に可変であり、前記複数のフラッシュメモリセルの少なくとも一つまたは前記複数のフラッシュメモリの少なくとも一つに関連し、読出しおよび書込みインターリーブ比はそれぞれ読出しおよび書込みの間に同時にアクセスされるフラッシュメモリの数を示し、
前記読出しインターリーブ比と書込みインターリーブ比をそれぞれ選択して用いて、前記複数のフラッシュメモリセルに対するデータの読出しおよびデータの書込みを行うメモリコントローラと、を備え、
同じ現在の動作設定に対して、前記メモリコントローラにより選択される前記読出しインターリーブ比は、前記選択される書込みインターリーブ比と異なり、
前記複数のフラッシュメモリセルの少なくとも一つまたは前記複数のフラッシュメモリの少なくとも一つに関連した前記現在の動作設定は、前記複数のフラッシュメモリに関連した予め定義された最小動作電圧と、前記フラッシュメモリデバイスに接続された前記電源からの利用可能な電圧を含み、
前記予め定義された最小動作電圧は前記複数のフラッシュメモリの各々から読み出されることを特徴とするシステム。
【請求項１５】
フラッシュメモリデバイスであって、
複数のフラッシュメモリセルをそれぞれが有する複数のフラッシュメモリと、
命令を格納する不揮発性メモリと、
前記格納された命令を実行するプロセッサと、を有し、前記格納された命令を実行することにより、
前記フラッシュメモリデバイスにおいて、複数のフラッシュメモリセルにデータを書き込むための要求を受信し、
前記要求が受信されたときに前記フラッシュメモリデバイスにより使用されている１つまたは複数の現在の動作設定を特定し、前記現在の動作設定は前記フラッシュメモリデバイスの動作中に可変であり、前記複数のフラッシュメモリセルの少なくとも一つまたは前記複数のフラッシュメモリの少なくとも一つに関連し、
前記フラッシュメモリデバイスにより前記受信された書込み要求に応じて、前記現在の動作設定と動作温度を含む現在の動作状態に基づいて書込みインターリーブ比を動的に計算し、前記書込みインターリーブ比は書込み動作において同時にアクセスされるフラッシュメモリセルの数を示し、
計算された前記書込みインターリーブ比を用いて前記複数のフラッシュメモリセルにデータを書込み、
前記フラッシュメモリデバイスにおいて前記複数のフラッシュメモリセルからデータを読み出すための要求を受信し、
前記フラッシュメモリデバイスにより前記受信された読出し要求に応じて、前記現在の動作設定と動作温度を含む現在の動作状態に基づいて読出しインターリーブ比を動的に計算し、前記読出しインターリーブ比は読出し動作において同時にアクセスされるフラッシュメモリセルの数を示し、計算された前記読出しインターリーブ比は計算された前記書込みインターリーブ比と異なり、
計算された前記読出しインターリーブ比を用いて前記複数のフラッシュメモリセルから要求されたデータを読み出す
ことを含む動作を前記プロセッサが実行し、
前記複数のフラッシュメモリセルの少なくとも一つまたは前記複数のフラッシュメモリの少なくとも一つに関連した前記現在の動作設定は、前記複数のフラッシュメモリに関連した予め定義された最小動作電圧と、前記フラッシュメモリデバイスに接続された電源からの利用可能な電圧を含み、
前記予め定義された最小動作電圧は前記複数のフラッシュメモリの各々から読み出されることを特徴とするフラッシュメモリデバイス。
【請求項１６】
インターリーブされたメモリを使用してデータを処理するためのシステムであって、
複数のメモリ素子と、
前記複数のメモリ素子への同時アクセスのインターリーブ比を選択的に制御するメモリコントローラと、ここで、前記インターリーブ比は、同時にアクセスされる複数のメモリ素子の数を定義し、前記複数のメモリ素子へのアクセスは、前記複数のメモリ素子からの読出しおよび前記複数のメモリ素子への書込みからなるグループから選択され、
命令を受け取るプロセッサと、を備え、該命令は、実行されると、前記プロセッサに、
前記メモリ素子へのアクセス要求を受け取り、ここで、前記メモリ素子へのアクセス要求は前記メモリ素子に含まれている複数のメモリセルからの読出しの要求を含み、前記複数のメモリセルは選択された書込みインターリーブ比を用いて書き込まれたデータを格納しており、
前記複数のメモリ素子をアクセスするのに使用される、前記複数のメモリ素子に動作可能に接続された電源の種類を特定し、
前記電源が第１のタイプの電源であると特定された場合に、前記複数のメモリセルに対する読出し要求を実行するときの第１のインターリーブ比を選択し、
前記電源が第２のタイプの電源であると特定された場合に、前記複数のメモリセルに対する読出し要求を実行するときの、前記第１のインターリーブ比とは異なる第２のインターリーブ比を選択し、前記複数のメモリセルから読出しを行うための前記第２のインターリーブ比は、前記複数のメモリセルにデータを書き込むのに用いられる前記選択された書込みインターリーブ比とは独立して選択され、
前記選択されたインターリーブ比を前記メモリコントローラに対して決定し、
前記第２のインターリーブ比を選択することは、前記複数のメモリ素子の少なくとも１つに関連する、前記複数のメモリ素子の各々から読み出された予め決められた最小動作電圧と、前記第２のタイプの電源からの利用可能な電圧と、温度センサから取得された前記システムの現在の動作温度とに基づいて実行されることを特徴とするシステム。
【請求項１７】
前記複数のメモリ素子は、フラッシュメモリを備えることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記第２のタイプの電源は、携帯型の蓄積エネルギー源を備えることを特徴とする請求項１６に記載のシステム。
【請求項１９】
前記第２のインターリーブ比の選択は、使用可能な最大インターリーブ比未満のインターリーブ比を選択することを含むことを特徴とする請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのアクセスに関するものであり、特に、メモリにアクセスするためのインターリーブポリシーに関する方法およびシステムに関する。
【背景技術】
【０００２】
コンピューティングデバイスの能力と機能が向上するに従って、データ記憶装置の需要が高まっている。データ記憶装置は、例えばプロセッサによって実行され得るプログラム命令（すなわちコード）を記憶するのに使用されている。データ記憶装置は、例えばオーディオ、画像、および／またはテキスト情報を含めた他のタイプのデータを記憶するのにも使用されている。近年、携帯型デバイスでは、大量のデータコンテンツ（例えば、曲や音楽ビデオなど）を記憶することが可能なデータ記憶装置を有するシステムが、広く使用可能となっている。
【０００３】
かかる携帯型デバイスとしては、小さい形状因子（form factor）を有し、バッテリなどの携帯型電源を基に動作可能なデータ記憶装置が挙げられる。携帯型デバイスのいくつかのデータ記憶装置は、電源から切断されたときもデータを保持することが可能な不揮発性メモリを提供することができる。携帯型デバイスは、ハードディスクドライブ、ＥＥＰＲＯＭ（電気的消去およびプログラム可能な読取り専用メモリ）、フラッシュメモリなどの様々な不揮発性データ記憶装置を使用している。
【０００４】
フラッシュメモリは、広範に使用されるようになったタイプの半導体メモリである。フラッシュメモリは、例えば携帯型電子デバイスおよび民生アプリケーションの不揮発性メモリを提供することができる。
【０００５】
フラッシュメモリには、ＮＯＲフラッシュとＮＡＮＤフラッシュの２つのタイプが存在する。一般に、ＮＯＲフラッシュは、ある点でＮＡＮＤフラッシュと異なる可能性がある。例えば、ＮＯＲフラッシュは典型的には、その場でコードを実行する容量を提供し、ランダムアクセスが可能なもの（すなわちＲＡＭと同様）である。例えば、ＮＯＲフラッシュは、携帯型電子デバイス、セル電話、およびＰＤＡ内にコードを記憶し、それを直接実行することができる。
【０００６】
これとは対照的に、ＮＡＮＤフラッシュは典型的には、データをより迅速に消去し、バースト単位（例えば、５１２バイト単位(chunks)）のデータにアクセスすることができ、これと比較可能なＮＯＲフラッシュよりも長い寿命の消去サイクルを提供する。ＮＡＮＤフラッシュは一般に、例えばデジタルカメラやＭＰ３プレーヤなどの民生デバイス向けの高密度ファイル記憶媒体として、低コスト／ビットの不揮発性記憶域を提供することができる。ＮＡＮＤフラッシュは、カメラ付きセル電話におけるデータ記憶などの応用例に使用されることもある。
【０００７】
いくつかのデータ記憶システムでは、メモリアクセスが、複数のメモリ位置にわたってインターリーブされることもある。例えば、ＲＡＩＤ−０タイプのシステムでは、データがＮ個のブロックに分割され、それらのブロックは、Ｎ個のメモリ位置に同時に書き込まれ、または同時に読み出されることになる。８ｋが１つのメモリ位置に書き込まれる間システムが強制的に待機状態となる代わりに、インターリーブ型システムは、２ｋのブロックをそれぞれ４つの異なるメモリ位置に同時に書き込むことができる。
【発明の概要】
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、
インターリーブされたメモリを使用してデータを処理するためのシステムであって、
電源と、
前記電源と接続されて動作可能な複数のメモリ素子と、
前記複数のメモリ素子へのアクセスのインターリーブ比を選択的に制御するメモリコントローラと、
命令を受け取るプロセッサとを備え、該命令は、前記プロセッサに前記メモリコントローラに対して前記インターリーブ比を特定させる処理を実施させ、前記処理が、
前記メモリ素子に対するアクセス要求を受け取り、
受け取られた前記アクセス要求を処理するための前記電源から前記メモリに引き出されるピーク電流を、前記アクセス要求を実施すべきインターリーブ比を選択することによって制御することを含むシステムが提供される。
【０００９】
また、本発明の他の態様によれば、
インターリーブされたデータを記憶するように構成されたフラッシュメモリにアクセスするためのインターリーブポリシーを選択する方法であって、
インターリーブされたフラッシュメモリの読出しの要求を受け取り、
第１の基準セットに基づいて、前記フラッシュメモリからの読出しのための読出しインターリーブ比を特定し、
前記フラッシュメモリへの書込みの要求を受け取り、
第２の基準セットに基づいて、前記フラッシュメモリへの書込みのための書込みインターリーブ比を特定することを含み、特定される前記読出しインターリーブ比と書込みインターリーブ比とが異なる方法が提供される。
【００１０】
種々の実施形態において、製品ならびに関連する方法およびシステムは、読出しインターリーブポリシー（read interleaving policiy）の選択と、書込みインターリーブポリシー（write interleaving policiy）の選択とを独立して行うことに関する。様々な実施形態では、動作中の選択は、静的であることも動的であることもある。読出しインターリーブポリシーおよび書込みインターリーブポリシーを動的に選択する実施形態においては、選択は、温度、電源、バッテリ電圧、動作モードなど様々な動作状態に基づくことができる。動作モードの例としては、（１）外部電源に接続されたときにフラッシュメモリの読出しまたは書込みを行うもの、（２）携帯型電源（例えば、バッテリ）から給電されたときにフラッシュメモリの読出しを行うもの、および（３）携帯型電源から給電されたときにフラッシュメモリへの書込みを行うものを挙げることができる。
【００１１】
いくかの実施形態は、１つまたは複数の利点をもたらす。例えば、携帯型電源の応用例では、バッテリ寿命が延長される。読出しおよび書込みインターリーブポリシーは、許容可能な電力消費（例えばピーク電流）特徴を有し、メモリアクセス時間が最小限に抑えられる所望の性能を達成するように、独立して設定または選択することができる。読出しおよび書込みインターリーブポリシーの選択は、様々な動作状態に従って適合され得る。いくかの実施形態では、例えば温度情報、電源の使用可能度、バッテリ電圧、および／または動作モードなどの動作状態に基づいて、アクセス時間を短縮することとピーク電流を最小限に抑えることとを動的に選択することができる。
【００１２】
添付の図面および以下の説明では、本発明の１つまたは複数の実施形態の詳細が詳しく記載される。本発明のその他の特徴、目的、および利点は、以下の説明および添付の図面ならびに添付の特許請求の範囲を読めば明らかとなるであろう。
【００１３】
様々な図面において、同様の参照符号は同様の要素を指す。
【図面の簡単な説明】
【００１４】
【図１】フラッシュメモリを含むシステムの一例を示すブロック図である。
【図２】図１のシステム内の読出しおよび書込みインターリーブポリシーを選択するための方法を示す流れ図である。
【図３】メモリアクセス処理が要求されるときに、選択済みのインターリーブポリシーを適用するための方法を示す流れ図である。
【発明を実施するための形態】
【００１５】
図１は、フラッシュメモリを使用してデータを記憶および検索することが可能なシステム１００の一例を示している。システム１００は、例えばＭＰ３プレーヤ、形態電話、ＰＤＡ（携帯情報端末）、全地球測位システム、携帯型処理デバイス、携帯型オーディオ／ビジュアル記録デバイス、携帯型ビデオプレーヤなどのハンドヘルド式携帯型デバイスであってよい。システム１００は、読出し動作に適したインターリーブポリシーと、書込み動作に適したインターリーブポリシーとを使用および／または選択することが可能である。いくつかの実施形態では、選択される読出しインターリーブポリシーは、選択される書込みインターリーブポリシーとは異なることもある。いくつかの実施形態では、読出しおよび書込みインターリーブポリシーは、動的にかつ／または互いに独立して選択され得る。
【００１６】
システム１００は、マイクロプロセッサ１０２と、メモリコントローラ１０４と、１つまたは複数のフラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄとを含む。マイクロプロセッサ１０２は、読出しまたは書込みインターリーブポリシーを選択した後に、読出しまたは書込み動作を実施することができる。例えば、マイクロプロセッサ１０２は、選択済みの読出しインターリーブポリシーおよび読出しコマンドをメモリコントローラ１０４に送ることによって、フラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄの読出しを開始することができる。こうして、メモリコントローラ１０４は、選択済みの読出しインターリーブポリシーに従って読出しコマンドを実行する。同様に、マイクロプロセッサ１０２は、選択済みの書込みインターリーブポリシーおよび書込みコマンドをメモリコントローラ１０４に送ることによって、フラッシュメモリへの書込みを開始することができる。こうして、メモリコントローラ１０４は、選択済みの書込みインターリーブポリシーに従って書込みコマンドを実行する。システム１００は、例えば電源、バッテリ電圧、温度、および／または動作モードなど現在の動作状態に適したインターリーブポリシーを選択するように構成され得る。
【００１７】
選択済みの読出しおよび／または書込みインターリーブポリシーは、フラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、および１０６ｄへの同時アクセス数を決定する。メモリコントローラ１０４はインターリーブを使用することによって、複数のメモリデバイスにわたってインターリーブされたデータを同時に読み出すことも書き込むこともできる。インターリーブポリシーは、動作状態に適したインターリーブ比を選択するように定義され得る。例えば、４：１のインターリーブ比は、システム１００が単一の動作で４ワードのデータをメモリに書き込むこと、すなわち、フラッシュメモリ１０６ａ〜１０６ｄの異なる位置に各ワードが同時に書き込まれることに対応する。また、２：１のインターリーブ比は、システム１００が２回の動作を使用して４ワードのデータをメモリに書き込むこと、すなわち、２ワードが同時に書き込まれることに対応する。１：１のインターリーブ比は、システム１００が４回の動作を使用して４ワードのデータをメモリに書き込むこと、すなわち、一度に１ワードずつが書き込まれることに対応する。
【００１８】
インターリーブ比が高くなるほど、フラッシュメモリのデータの読出しまたは書込みに掛かる時間が短くなるが、メモリ動作に関連するピーク電流が高くなる。一方、インターリーブ比が低くなるほど、フラッシュメモリのデータの読出しまたは書込みに掛かる時間が長くなるが、メモリ動作に関連するピーク電流は低くなる。いくつかの動作状態では、システム１００は、ピーク電流と最小メモリアクセス時間のいずれかを制限または最小化するように構成される。例えば、システム１００は、バッテリ電圧が閾値を下回った場合には、読出し動作に関してより低いインターリーブ比を選択するように構成され得る。
【００１９】
メモリコントローラ１０４は、読出しコマンドまたは書込みコマンドを受け取ると、マイクロプロセッサによって選択された読出しまたは書込みインターリーブポリシーに従って当該コマンドを実行することになる。いくつかの実施形態においては、マイクロプロセッサ１０２およびメモリコントローラ１０４は、別個のデバイス（例えば、独立した集積回路）とすることができる。また、別の実施形態では、マイクロプロセッサ１０２およびメモリコントローラ１０４は、単一のデバイス（例えば、ＡＳＩＣ、マイクロコントローラ）に統合され得る。この例では、メモリコントローラ１０４は、メディアインターフェイス１０８を含む。メディアインターフェイス１０８は、４つのレジスタ１１０ａ、１１０ｂ、１１０ｃ、および１１０ｄを含む。４つの各レジスタ１１０ａ〜１１０ｄは、それぞれフラッシュメモリ１０６ａ〜１０６ｄに送られる、または、そこから受け取られたワード（またはバイト、ロングワード、クワッドワードなど）のデータを一時的に記憶することができる。
【００２０】
一例において、システム１００は、読出しおよび書込みコマンドに関するインターリーブポリシーを次のように選択し使用することができる。例えば、マイクロプロセッサ１０２は、書込みコマンドを開始し、これに続いて読出しコマンドを開始する場合を説明する。書込みコマンドは、４ワードのデータを４つのフラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄの４つの位置に書き込むことを含む。読出しコマンドは、４ワードのデータを４つのフラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄの４つの位置から読み出すことを含む。マイクロプロセッサ１０２は、まず、書込みコマンドおよび選択済みの書込みインターリーブポリシーをメモリコントローラ１０４に送る。本例では、選択済みの書込みインターリーブポリシーは、４：１であるとする。次いで、書込みコマンドの実行を完了させるために、メモリコントローラ１０４は、レジスタ１１０ａ、１１０ｂ、１１０ｃ、１１０ｄに記憶されているデータをフラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄに同時に書き込む。
【００２１】
書込みコマンドが完了した後に、マイクロプロセッサ１０２は、読出しコマンドおよび選択済みの読出しインターリーブポリシーをメモリコントローラ１０４に送る。本例では、選択済みの読出しインターリーブポリシーは、１：１であるとする。読出しコマンドの実行を完了させるために、メモリコントローラ１０４は、４回のメモリ動作を使用して、フラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄから、レジスタ１１０ａ、１１０ｂ、１１０ｃ、１１０ｄに記憶されたデータを１つずつ読み出すことができる。例えば、メモリコントローラ１０４はまず、フラッシュメモリ１０６ａに記憶されているデータをレジスタ１１０ａに転送させる。次いで、メモリコントローラ１０４は、フラッシュメモリ１０６ｂに記憶されているデータをレジスタ１１０ｂに転送させる。その後、メモリコントローラ１０４は、フラッシュメモリ１０６ｃに記憶されているデータをレジスタ１１０ｃに転送させる。最後に、メモリコントローラ１０４は、フラッシュメモリ１０６ｄに記憶されているデータをレジスタ１１０ｄに転送させる。
【００２２】
この例では、各フラッシュメモリ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄは、４つのフラッシュメモリダイと、コントローラと、レジスタ１１２とを含む。レジスタ１１２は、各フラッシュメモリ１０６ａ〜１０６ｄの最小動作電圧を記憶することができる。各フラッシュメモリ１０６ａ〜１０６ｄの最小動作電圧は、インターリーブポリシーの選択に影響を及ぼし得る。例えば、書込み動作中にバッテリ電圧が、各フラッシュメモリ１０６ａ〜１０６ｄの最小動作電圧よりも高い閾値マージンを下回った場合は、マイクロプロセッサは、低いインターリーブ比を有する書込みインターリーブポリシーを選択することができる。書込み動作に関する閾値マージン情報は、書込みインターリーブポリシー１３０と関連付けてＮＶＭ１２４に記憶することができ、読出し動作に関する閾値マージン情報は、読出しインターリーブポリシー１３０と関連付けてＮＶＭ１２４に記憶することができる。
【００２３】
図示の一例では、最小動作電圧は、３．１ボルトであり、電圧マージンは、書込みインターリーブポリシーについては、０．５ボルトにセットされ（閾値は３．６ボルトとなる）、読出しインターリーブポリシーについては、０．２ボルトにセットされているものとする（閾値は３．３ボルトとなる）。マイクロプロセッサ１０２は、バッテリ電圧が３．６ボルトを下回ったときは、書込みインターリーブ比を例えば２：１から１：１に減少させる。また、マイクロプロセッサ１０２は、バッテリ電圧が３．３ボルトを下回った場合には、読出しインターリーブ比を例えば４：１から２：１に減少させる。尚、これらの値は単なる例示に過ぎず、バッテリ電圧の範囲を限定するものではない。いくつかの実施形態では、電圧の閾値にヒステリシスバンド（hysteresis band）が適用され得る。
【００２４】
システム１００の電力は、外部電力入力１１４またはバッテリ（蓄積エネルギー源）１１６から供給され得る。外部電力入力１１４およびバッテリ１１６は、電圧レギュレータ１１８に電力を引き渡す。電圧レギュレータ１１８としては、線形レギュレータ、スイッチモードＤＣ／ＤＣ変換器、および／または低ドロップアウトレギュレータ（図示せず）を挙げることができ、システム１００の電気状態１２２に関するリストを記憶する電力マネージャ１２０を含んでいる。監視される状態情報としては、例えば外部電力入力１１４が電源に接続されているかどうか、バッテリが存在するかどうか、およびバッテリ電圧情報を挙げることができる。いくつかの実施形態では、マイクロプロセッサ１０２は、電気状態１２２に応じてインターリーブポリシーを選択することができる。例えば、マイクロプロセッサ１０２は、システム１００が外部電源に接続されているときは、それによってピーク電流を比較的高くすることが可能になり、メモリアクセス時間を短縮するために、最大インターリーブ比を有するインターリーブポリシーを選択するように構成することができる。
【００２５】
マイクロプロセッサ１０２は、不揮発性メモリ１２４と通信することができる。不揮発性メモリ（ＮＶＭ）１２４は、試験コード１２６と、制御コード１２８と、読出しインターリーブポリシーおよび書込みインターリーブポリシーを含めたインターリーブポリシー１３０とを記憶する。マイクロプロセッサ１０２は、試験コード１２６を実行してシステム１００内の様々な状態をチェックする。試験コード１２６は、例えば電源、バッテリ電圧、温度、および／または動作モードをチェックするコードを含み得る。次いで、マイクロプロセッサ１０２は、制御コード１２８を実行する。制御コード１２８は、読出しインターリーブポリシーおよび書込みインターリーブポリシーを選択するためのルールを含み得る。選択の後、マイクロプロセッサ１０２は、選択済みのインターリーブポリシーをＮＶＭ１２４に記憶させることができる。インターリーブポリシー情報１３０は、現在選択されている読出しインターリーブポリシーと、現在選択されている書込みインターリーブポリシーとを含む。
【００２６】
マイクロプロセッサ１０２は、データインターフェイス１３２を介して外部デバイスにデータを送ることも、そこからのデータを受け取ることもできる。データインターフェイス１３２とマイクロプロセッサ１０２との間で転送されるデータは、バッファ１３４に一時的に記憶することができる。
【００２７】
データインターフェイス１３２の動作モードは、インターリーブポリシーの選択に影響を及ぼすことがある。例えば、データインターフェイス１３２が外部ソースからデータを受け取っている場合、マイクロプロセッサ１０２は、より高いインターリーブ比を有する読出しインターリーブポリシーを選択する。また、例えば、システム１００がフラッシュメモリに関するデータを受け取る携帯型デバイスとして動作している場合、マイクロプロセッサ１０２は、より低いインターリーブ比を有する書込みインターリーブポリシーを選択する。
【００２８】
システム１００は、現在の動作状態を監視することもできる。例えば、システム１００は、システム１００内の温度を測定する温度センサ１３６を含む。マイクロプロセッサ１０２は、例えばシステム１００の温度が選択済みの閾値温度を超えた場合に、より低いインターリーブポリシーを選択することができる。
【００２９】
システム１００はまた、ユーザインターフェイス１３８と、オーディオ出力デバイス１４０と、ディスプレイ１４２とを含む。ユーザは、例えばタッチパッド、キーボード、Apple Click Wheel（商標）入力（Apple Computer,Inc.社から市販されている）などのユーザインターフェイス１３８を使用して、システム１００に命令を供給することができる。ユーザ選択されるインターリーブポリシーは、少なくとも部分的にユーザ入力に基づくようにしてもよい。例えば、ユーザは、バッテリ寿命を最大化するように設計されたバッテリ節約モードを選択することができる。バッテリ寿命を拡大させるには、例えば、読出しおよび／または書込みインターリーブポリシーについてのインターリーブ比をより低くすることが考えられる。別の例では、ユーザは、メモリアクセス処理に掛かる時間を最小限に抑えるように設計された最小遅延モードを選択することができる。メモリアクセス時間を短縮するには、例えば、読出しインターリーブポリシーについてのインターリーブ比をより高くすることが考えられる。
【００３０】
また、いくつかの実施形態において、このようにユーザ選択された入力がオーバーライドされ得るようにしてもよい。例えば、外部電力が外部電力入力１１４に接続されている場合、マイクロプロセッサ１０２は、例えばユーザが最大バッテリ寿命モードを選択していても、達成可能な最大インターリーブ比を選択することができる。また、別の例では、システム１００の温度が事前に設定された閾値を超えた場合に、マイクロプロセッサ１０２は、例えばユーザが最小遅延時間モードを選択しており、外部電源が外部電力入力１１４に接続されている場合にも、達成可能な最小インターリーブ比を選択することができる。
【００３１】
様々な実施形態において、オーディオ出力デバイス１４０は、内部スピーカ、ブザー、および／または他のオーディオインジケータであってもよい。いくつかの実施形態では、オーディオ情報を含む信号（この信号は外部で増幅されることもある）を１組または複数組のヘッドフォンまたは外部スピーカに供給するように適合された出力コネクタに、増幅器が結合される。また、いくつかの実施形態では、システム１００と外部オーディオトランスデューサデバイスとの間に、有線または無線（例えば、Bluetoothや他のＲＦ）インターフェイスを設けることができる。
【００３２】
いくつかの実施形態において、ディスプレイ１４２は、例えばテキストベースインターフェイスおよび／またはグラフィカルインターフェイスをユーザに提供するＬＣＤまたはＴＦＴディスプレイとすることができる。ディスプレイ１４２の明度（brightness）および／または輝度（intensity）は、調整可能とすることができる。いくつかの実施形態では、ディスプレイ１４２が高い明度および／または輝度で動作しているときに、マイクロプロセッサ１０２は、バッテリ寿命を保存するために、より低いインターリーブポリシーを選択する。
【００３３】
システム１００はまた、それぞれ画像およびオーディオ情報をマイクロプロセッサ１０２に供給するカメラ１５０と、マイクロフォン１５２とを含む。いくつかの実施形態では、オーディオおよび／またはビデオ情報は、MPEG、JPEG、.wav、ビットマップ、他の広く採用されるデータフォーマットなどの標準フォーマットに符号化される。カメラ１５０は、例えば画像圧縮の技術分野の当業者に知られている各種技法を使用して圧縮および／または符号化が可能な静止画像および／または動画像（例えば、フレーム）情報を取り込むように構成される。マイクロフォン１５２は、画像情報と同期されることも同期されないこともあるオーディオ情報を取り込むように操作される。カメラ１５０およびマイクロフォン１５２から受け取られたオーディオおよび／または画像情報は、書込みインターリーブポリシーに従ってフラッシュメモリ１０６ａ〜１０６ｄに記憶される。
【００３４】
例えば、カメラ１５０および／またはマイクロフォン１５２がデータストリーミングを行い、システムがバッテリからの給電を受ける動作モードにおいては、マイクロプロセッサ１０２は、最大データ転送速度を処理するのに十分なインターリーブ比を有する書込みインターリーブポリシーを選択することができる。尚、十分なインターリーブ比とは、例えば、オーディオとビデオ情報との組合せであれば４：１、ビデオ情報単独であれば２：１、静止画像またはオーディオ情報であれば１：１とすることができる。
【００３５】
別の例を挙げれば、フラッシュ１０６ａ〜１０６ｄの読出しを行う間、システム１００がバッテリ１１６を基に動作する動作モードでは、マイクロプロセッサ１０２は、バッテリ寿命を最大化するために、より低い読出しインターリーブポリシーを選択する。このような動作モードは、例えばフラッシュメモリ１０６ａ〜１０６ｄに記憶されているビデオ、オーディオ、および／または他の（例えば、テキスト）情報を再生する携帯型デバイスとしての使用の際に発生し得る。
【００３６】
別の例として、フラッシュメモリ１０６ａ〜１０６ｄからの読出しまたはそこへの書込みを行う間、システム１００が外部電源から給電される動作モードでは、マイクロプロセッサ１０２は、アクセス時間を最小限に抑える読出しおよび／または書込みインターリーブポリシーを選択することができる。ある１つの応用例では、転送動作を完了させるのに必要な時間を最小限に抑えるために、データ（例えば、曲、ビデオ）を達成可能な最大データ転送速度でフラッシュメモリ１０６ａ〜１０６ｄに転送したり、そこから転送されるようにしたりすることができる。
【００３７】
或いは、読出しおよび書込みインターリーブポリシーは、バッテリ電圧、温度、または動作モードに従って、動的調整を行うことなく独立して決定され、記憶され、あるいは他の方法で事前に設定されるようにしてもよい。
【００３８】
マイクロプロセッサ１０２は、例えば図２〜３を参照しながらそれぞれ説明するような、様々な方法に従って、試験コード１２６や制御コード１２８などの命令プログラムを実行することができる。
【００３９】
図２において、流れ図２００は、試験コード１２６を実行したときにマイクロプロセッサ１０２が実行し得る動作の一例を示している。図１の例では、マイクロプロセッサ１０２によって実行される試験コード１２６の単一のブロックがＮＶＭ１２４に記憶されている様子が示されているが、他のプロセッサまたは論理回路が、これらの動作の一部または全部を実施するようにしてもよいし、ＲＡＭ（図示せず）内など、ＮＶＭ１２４以外の位置に記憶されている命令を使用するようにしてもよい。
【００４０】
この例では、図示の方法は、マイクロプロセッサ１０２がインターリーブポリシー１３０の更新を要求することにより、ステップ２０５から開始される。以下では図２を参照しながら、マイクロプロセッサにインターリーブポリシー１３０の更新を開始させる条件についてより詳しく説明する。
【００４１】
ステップ２１０において、マイクロプロセッサ１０２は、温度センサ１３６に対するポーリングを行うことによって、または他の方法で、温度センサ１３６を読み出すことによって温度をチェックする。ステップ２１５で、温度が事前に設定された閾値温度を超えている場合には、ステップ２２０で、マイクロプロセッサ１０２は、読出しと書込みの両方に関して、最小インターリーブ比、例えば１：１などの比を有するインターリーブポリシーを選択する。そして、ステップ２２５において、マイクロプロセッサ１０２は、選択済みの読出しおよび書込みインターリーブポリシー１３０をＮＶＭ１２４に記憶させ、ステップ２３０で本処理を終了する。
【００４２】
ステップ２１５で、温度が事前設定された閾値温度を超えていない場合には、ステップ２３５において、マイクロプロセッサ１０２は、電源をチェックする。ステップ２４０において、システム１００が外部電源を使用している場合には、ステップ２４５において、マイクロプロセッサ１０２は、読出しと書込みの両方に関して、最大インターリーブ比、例えば４：１などの比を有するインターリーブポリシーを選択する。次に、ステップ２２５で、マイクロプロセッサ１０２は、選択済みの読出しおよび書込みインターリーブポリシー１３０をＮＶＭ１２４に記憶し、ステップ２３０にて本処理を終了する。
【００４３】
ステップ２４０において、システム１００がバッテリ１１６を電源として使用している場合には、処理はステップ２５０に進む。ステップ２５０において、マイクロプロセッサ１０２は、電圧レギュレータ１１８内の電力マネージャ１２０の状態レジスタ１２２を読み出すことによって、バッテリ電圧をチェックする。次に、ステップ２５５において、マイクロプロセッサ１０２は、システム１００の動作モードをチェックする。動作モードとしては、例えばシステム１００が現在実施している動作や、最大バッテリ寿命モードや最小遅延モードなどユーザ選択された動作モードなどを挙げることができる。また、別の例として、マイクロプロセッサ１０２は、データインターフェイス１３２内のデータフロー、ディスプレイ１４２の動作状態、およびオーディオ出力デバイス１４０内の出力をチェックすることができる。そして、これらのデバイスが大量の電流を取り入れている場合は、マイクロプロセッサ１０２は、低いインターリーブ比を有するインターリーブポリシーを選択する。バッテリ電圧および動作モードがチェックされた後に、マイクロプロセッサ１０２は、ステップ２６０において書込みインターリーブポリシーを、ステップ２６５において読出しインターリーブポリシーを、それぞれ独立して選択する。次に、ステップ２２５において、マイクロプロセッサ１０２は、選択済みの読出しおよび書込みインターリーブポリシー１３０をＮＶＭ１２４に記憶し、ステップ２３０にて本処理を終了する。
【００４４】
図３において、流れ図３００は、制御コード１２８が実行されたときにマイクロプロセッサ１０２が実施できる動作の一例を示している。マイクロプロセッサ１０２は、制御コード１２８を実行して適切なインターリーブポリシーを選択し、選択済みのインターリーブポリシーをメモリコントローラ１０４に送ることができる。この例では、図示の方法は、マイクロプロセッサ１０２がフラッシュメモリ１０６ａ〜１０６ｄにアクセスすることを求めるコマンドを受け取ることにより、ステップ３０５から開始する。ステップ３１０で、マイクロプロセッサ１０２は、書込みまたは読出しコマンドを受け取る。例えば、ユーザがデータインターフェイス１３２を介してフラッシュメモリ１０６ａ〜１０６ｄにデータをダウンロードするときは、マイクロプロセッサ１０２は、書込みコマンドを受け取ることになる。また、別の例として、ユーザがユーザインターフェイス１３８を使用して、フラッシュメモリ１０６ａ〜１０６ｄに記憶されているビデオを再生するようシステム１００に命令するときは、マイクロプロセッサ１０２は、読出しコマンドを受け取ることになる。
【００４５】
次いで、ステップ３１５で、マイクロプロセッサ１０２は、インターリーブポリシーを更新する必要があるかどうか判定する。マイクロプロセッサ１０２は、インターリーブポリシーを更新する必要があると判定した場合には、ステップ３５０において、流れ図２００に示されるように、試験コード１２６を実行してインターリーブポリシーを選択し、記憶する。例えば、温度、電源、バッテリ電圧、および／または動作モードの内のいずれかが変更されたときは、インターリーブポリシーを変更する必要が生じる可能性がある。また、別の例では、インターリーブポリシーは、スケジュールに従って周期的に（例えば、１時間毎、１日毎、１週間毎などに）更新され得る。
【００４６】
ステップ３１５でインターリーブポリシーを更新する必要がないと判定した場合にはステップ３２０に進む。ステップ３２０において、マイクロプロセッサ１０２は、当該コマンドが読出しコマンドであるのかそれとも書込みコマンドであるのかチェックする。受け取られたコマンドが書込みコマンドである場合は、ステップ３２５において、マイクロプロセッサ１０２は、書込みインターリーブポリシーをメモリコントローラ１０４に送る。そして、ステップ３３０において、マイクロプロセッサ１０２は、書込みコマンドをメモリコントローラ１０４に送る。その後、ステップ３３５で本処理を終了する。
【００４７】
一方、ステップ３２０で、当該コマンドが読出しコマンドである場合、ステップ３４０において、マイクロプロセッサ１０２は、読出しインターリーブポリシーをメモリコントローラ１０４に送る。そして、ステップ３４５において、マイクロプロセッサ１０２は、読出しコマンドをメモリコントローラ１０４に送る。その後、ステップ３３５で本処理を終了する。
【００４８】
マイクロプロセッサ１０２がインターリーブポリシーを選択し記憶した後は、処理はステップ３２０に戻る。
【００４９】
以上、本方法の一実施形態について説明してきたが、他の実施形態は、上記のステップを異なる順序で実施することも、上記のステップを、フラッシュメモリの読出しおよび書込みに適したインターリーブポリシーを選択する同じ主要機能を達成するように修正された構成で実施することもできる。
【００５０】
また、図１を参照しながら携帯型であってもよいシステムの一例について説明したが、他の実施形態として、デスクトップやネットワーク環境などのような他の処理応用例に展開されても良い。
【００５１】
いくつかのシステムは、本発明の諸実施形態と共に使用され得るコンピュータシステムとして実施され得る。例えば、様々な実施形態は、デジタル回路および／またはアナログ回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せを含むことができる。装置は、情報キャリア内に有形に実装されるコンピュータプログラムの形で実施することができ、例えば機械読取り可能な記憶装置の形で、あるいはプログラマブルプロセッサによって実行される伝搬信号の形で実施することができ、また、方法は、入力データを操作し、出力を生成することによって本発明の諸機能を実施する命令プログラムを実行する、プログラマブルプロセッサによって実施することができる。本発明は有利なことに、データ記憶システムとの間でデータおよび命令を送受信するように結合された少なくとも１つのプログラマブルプロセッサ、少なくとも１つの入力デバイス、および／または少なくとも１つの出力デバイスを含むプログラマブルシステム上で実行可能な１つまたは複数のコンピュータプログラムの形で実施することができる。コンピュータプログラムは、ある種の活動を実施しまたはある種の結果をもたらすためにコンピュータ内で直接的にまたは間接的に使用され得る１組の命令である。コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含めた任意の形態のプログラミング言語で書くことができ、また、スタンドアロンプログラム、あるいはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適した他のユニットを含めた任意の形態で配備することもできる。
【００５２】
命令プログラムの実行に適したプロセッサとしては、例えば、任意の種類のコンピュータの単一のプロセッサまたは複数のプロセッサの内の１つを含んでよい汎用マイクロプロセッサと専用マイクロプロセッサの両方が挙げられる。プロセッサは一般に、読取り専用メモリまたはランダムアクセスメモリあるいはそれらの両方から命令およびデータを受け取る。コンピュータの本質的な要素は、命令を実行するプロセッサと、命令およびデータを記憶する１つまたは複数のメモリである。また、コンピュータは一般に、データファイルを記憶する１つまたは複数の大容量記憶装置を含み、またはそれらと通信するように動作可能に結合されるが、かかるデバイスとしては、内部ハードディスクや取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、および光ディスクが挙げられる。コンピュータプログラム命令およびデータを有形に実装するのに適した記憶装置としては、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクや取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含めた全ての形式の不揮発性メモリが挙げられる。プロセッサおよびメモリは、ＡＳＩＣ（特定用途向け集積回路）によって補完することも、その内部に組み込むこともできる。
【００５３】
いくつかの実施形態では、各システム１００は、同じまたは同様の情報を用いてプログラムされ、かつ／または揮発性メモリおよび／または不揮発性メモリに記憶されている実質的に同一の情報を用いて初期化され得る。例えば、１つのデータインターフェイスは、デスクトップコンピュータやサーバなど該当するホストデバイスに結合されたときに、自動コンフィギュレーション機能、自動ダウンロード機能、および／または自動更新機能を実施するように構成され得る。
【００５４】
いくつかの実施形態では、１つまたは複数のユーザインターフェイス機能は、特定の機能を実施するようにカスタム構成され得る。本発明は、グラフィカルユーザインターフェイスおよび／またはインターネットブラウザを含むコンピュータシステム内で実施され得る。ユーザとの対話を実現するために、いくつかの実施形態は、ユーザに情報を表示するＣＲＴ（陰極線管）やＬＣＤ（液晶ディスプレイ）モニタなどの表示デバイスと、キーボードと、ユーザがコンピュータへの入力を行うことができるようになるマウスやトラックボールなどのポインティングデバイスとを有するコンピュータ上で実施され得る。
【００５５】
様々な実施形態では、システム１００は、適当な通信方法、通信機器、および通信技法を使用して通信することができる。例えば、システム１００は、専用物理リンク（例えば、光ファイバリンク、２地点間配線、およびデイジーチェーン）を経てソースから受信機にメッセージが直接移送される２地点間通信を使用して、互換性のあるデバイス（例えば、システム１００にデータを転送し、かつ／またはシステム１００からデータを転送することが可能なデバイス）と通信することができる。システムの各構成部品は、通信ネットワーク上のパケットベースメッセージを含めた任意の形態または媒体のアナログまたはデジタルデータ通信によって情報を交換することができる。通信ネットワークの例としては、例えばＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、ＭＡＮ（メトロポリタンエリアネットワーク）、無線および／または光ネットワーク、ならびにインターネットを形成するコンピュータおよびネットワークが挙げられる。他の実施形態は、通信ネットワークによって互いに結合された全てのまたは実質的に全てのデバイスに対して、例えば無指向性無線周波数（ＲＦ）信号を使用した同報通信を行うことによってメッセージを移送することができる。他の実施形態は、任意選択でフォーカス光学系と共に使用され得る指向性（すなわちナロービーム）アンテナまたは赤外線信号を使用して送信される、高指向性の特徴を有するＲＦ信号などのメッセージを移送することができる。それだけに限らないが、例えばＵＳＢ２．０、Ｆｉｒｅｗｉｒｅ、ＡＴＡ／ＩＤＥ、ＲＳ−２３２、ＲＳ−４２２、ＲＳ−４８５、８０２．１１ａ／ｂ／ｇ、Ｗｉ−Ｆｉ、イーサネット（登録商標）、ＩｒＤＡ、ＦＤＤＩ（ファイバ分散データインターフェイス）、トークンリングネットワーク、周波数分割、時分割、または符号分割に基づく多重化技法など、適切なインターフェイスおよびプロトコルを使用した他の実施形態も可能である。いくつかの実施形態は任意選択で、データの整合性に関する誤り検査訂正（ＥＣＣ）や、暗号化（例えばＷＥＰ）やパスワード保護などのセキュリティ対策などの機能を組み込むこともできる。
【００５６】
以上、本発明のいくつかの実施形態について説明した。しかしながら、本発明の趣旨および範囲を逸脱することなく、様々な修正を加えることができることが理解されるであろう。例えば、本明細書に開示の技法の各工程が異なる順序で実施された場合、開示のシステムの各構成要素が異なる様式で組み合わされた場合、あるいは、各構成要素が他の構成要素によって置き換えられまたは補完された場合にも、有利な結果が達成され得る。上記の各機能および処理（アルゴリズムを含む）は、ハードウェアの形で実施されてもソフトウェアの形で実施されてもそれらの組合せの形で実施されてもよく、いくつかの実施形態は、本明細書に記載されるものと同一でないモジュール上またはハードウェア上で実施することができる。したがって、他の実施形態も添付の特許請求の範囲に含まれる。
【図１】
0005551136.tif 000002
【図２】
0005551136.tif 000003
【図３】
0005551136.tif 000004