(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-28
(54)【発明の名称】メモリサブシステムにおけるプログラムされたビット数に基づいて読み出し電圧レベルを調整すること
(51)【国際特許分類】
G11C 16/08 20060101AFI20230421BHJP
G11C 16/26 20060101ALI20230421BHJP
G11C 29/50 20060101ALI20230421BHJP
【FI】
G11C16/08 120
G11C16/26 100
G11C29/50 100
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022555922
(86)(22)【出願日】2021-03-17
(85)【翻訳文提出日】2022-11-11
(86)【国際出願番号】 US2021022828
(87)【国際公開番号】W WO2021188720
(87)【国際公開日】2021-09-23
(32)【優先日】2020-03-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】マジェラス ダグラス イー.
【テーマコード(参考)】
5B225
5L206
【Fターム(参考)】
5B225BA19
5B225CA28
5B225DA10
5B225FA01
5L206AA10
(57)【要約】
プログラムされたビットの目標値が、メモリサブシステムのプログラミング分布のセットの各プログラミング分布に対して確立される。読み出し電圧レベルが、プログラミング分布のセットの1つまたは複数のプログラミング分布におけるプログラムされたビットの測定された値を決定するために印加される。プログラムされたビットの目標値が、比較結果を決定するために、プログラムされたビットの測定された値と比較され、アクションが、比較結果に鑑みて実行される。
【特許請求の範囲】
【請求項1】
処理デバイスによって、メモリサブシステムのプログラミング分布のセットの各プログラミング分布に対するプログラムされたビットの目標値を確立すること、
プログラミング分布の前記セットの1つまたは複数のプログラミング分布におけるプログラムされたビットの測定された値を決定するために、読み出し電圧レベルを印加すること、
比較結果を決定するために、プログラムされたビットの前記目標値を、プログラムされたビットの前記測定された値と比較すること、および、
前記比較結果に鑑みてアクションを実行することを含む、方法。
【請求項2】
前記比較結果は、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値と実質的に等しいことを示し、前記アクションは、前記読み出し電圧レベルを使用して読み出し動作を実行することを含む、請求項1に記載の方法。
【請求項3】
前記比較結果は、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値より大きいことを示し、前記アクションは、前記読み出し電圧レベルを、調整された読み出し電圧レベルに減少させることを含む、請求項1に記載の方法。
【請求項4】
プログラムされたビットの更新された測定された値を決定するために、前記調整された読み出し電圧レベルを印加すること、
更新された比較結果を決定するために、プログラムされたビットの前記更新された測定値を、プログラムされたビットの前記目標値と比較することであって、前記更新された比較結果は、プログラムされたビットの前記更新された測定された値が、プログラムされたビットの前記目標値と実質的に等しいことを示す、比較すること、および、
前記更新された比較結果に鑑みて後続のアクションを実行することであって、前記後続のアクションは、前記調整された読み出し電圧レベルを使用して読み出し動作を実行することを含む、実行することをさらに含む、請求項3に記載の方法。
【請求項5】
前記比較結果は、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値未満であることを示し、前記アクションは、前記読み出し電圧レベルを、調整された読み出し電圧レベルに増大させることを含む、請求項1に記載の方法。
【請求項6】
プログラムされたビットの更新された測定された値を決定するために、前記調整された読み出し電圧レベルを印加すること、
更新された比較結果を決定するために、プログラムされたビットの前記更新された測定値を、プログラムされたビットの前記目標値と比較することであって、前記更新された比較結果は、プログラムされたビットの前記更新された測定された値が、プログラムされたビットの前記目標値と実質的に等しいことを示す、比較すること、および、
前記更新された比較結果に鑑みて後続のアクションを実行することであって、前記後続のアクションは、前記調整された読み出し電圧レベルを使用して読み出し動作を実行することを含む、実行することをさらに含む、請求項5に記載の方法。
【請求項7】
第1のプログラミング分布に対するプログラムされたビットの前記目標値は、消去されたビットの第2の数に対する、前記第1のプログラミング分布におけるプログラムされたビットの第1の数の目標比率を含む、請求項1に記載の方法。
【請求項8】
合算機能が、前記読み出し電圧レベルに鑑みて、前記1つまたは複数のプログラミング分布に対応するプログラムされたビットの数を決定するために実行される、請求項1に記載の方法。
【請求項9】
処理デバイスによって実行されるとき、前記処理デバイスに、
処理デバイスによって、メモリサブシステムのプログラミング分布のセットに対するプログラムされたビットの目標値を確立することであって、プログラムされたビットの前記目標値は、プログラミング分布の前記セットの各プログラミング分布に対するプログラムされたビットの等しい数を含む、確立すること、
第1の読み出し電圧レベルを、前記メモリサブシステムのワードライン部分に印加すること、
前記第1の読み出し電圧レベルに対応する1つまたは複数のプログラミング分布におけるプログラムされたビットの累積的な数を決定するために、合算機能を実行すること、
プログラムされたビットの前記累積的な数に鑑みて、プログラムされたビットの測定された値を決定すること、
比較結果を決定するために、プログラムされたビットの前記目標値を、プログラムされたビットの前記測定された値と比較すること、
前記比較結果に鑑みて、調整された読み出し電圧レベルをセットすること、および、
前記調整された読み出し電圧レベルを、前記メモリサブシステムの前記ワードライン部分に印加することを含む動作を実施させる命令を含む、非一時的コンピュータ可読媒体。
【請求項10】
前記調整された読み出し電圧レベルは、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値より大きいことを前記比較結果が示すことに応答して、前記第1の読み出し電圧レベルを減少させることによって生み出される、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項11】
前記調整された読み出し電圧レベルは、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値未満であることを前記比較結果が示すことに応答して、前記第1の読み出し電圧レベルを増大させることによって生み出される、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記動作は、
前記調整された読み出し電圧レベルに対応するプログラムされたビットの更新された累積的な数に鑑みて、消去されたビットに対するプログラムされたビットの更新された測定された比率を決定すること、および、
消去されたビットに対するプログラムされたビットの前記更新された測定された割当量が、消去されたビットに対するプログラムされたビットの前記目標比率と実質的に等しいと決定することに応答して、読み出し動作を実行することをさらに含む、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項13】
第1のプログラミング分布に対するプログラムされたビットの前記目標値は、消去されたビットの第2の数に対する、前記第1のプログラミング分布におけるプログラムされたビットの第1の数の目標比率を含む、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項14】
メモリデバイスと、
メモリサブシステムのプログラミング分布のセットの各プログラミング分布に対するプログラムされたビットの目標値を確立すること、
プログラミング分布の前記セットの1つまたは複数のプログラミング分布におけるプログラムされたビットの測定された値を決定するために、読み出し電圧レベルを印加すること、
比較結果を決定するために、プログラムされたビットの前記目標値を、プログラムされたビットの前記測定された値と比較すること、および、
前記比較結果に鑑みてアクションを実行すること
を含む動作を実施するように、前記メモリデバイスと動作可能に結合される処理デバイスとを備える、システム。
【請求項15】
前記比較結果は、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値と実質的に等しいことを示し、前記アクションは、前記読み出し電圧レベルを使用して読み出し動作を実行することを含む、請求項14に記載のシステム。
【請求項16】
前記比較結果は、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値より大きいことを示し、前記アクションは、前記読み出し電圧レベルを、調整された読み出し電圧レベルに減少させることを含む、請求項14に記載のシステム。
【請求項17】
前記動作は、
プログラムされたビットの更新された測定された値を決定するために、前記調整された読み出し電圧レベルを印加すること、
更新された比較結果を決定するために、プログラムされたビットの前記更新された測定値を、プログラムされたビットの前記目標値と比較することであって、前記更新された比較結果は、プログラムされたビットの前記更新された測定された値が、プログラムされたビットの前記目標値と実質的に等しいことを示す、比較すること、および、
前記更新された比較結果に鑑みて後続のアクションを実行することであって、前記後続のアクションは、前記調整された読み出し電圧レベルを使用して読み出し動作を実行することを含む、実行することをさらに含む、請求項16に記載のシステム。
【請求項18】
前記比較結果は、プログラムされたビットの前記測定された値が、プログラムされたビットの前記目標値未満であることを示し、前記アクションは、前記読み出し電圧レベルを、調整された読み出し電圧レベルに増大させることを含む、請求項14に記載のシステム。
【請求項19】
前記動作は、
プログラムされたビットの更新された測定された値を決定するために、前記調整された読み出し電圧レベルを印加すること、
更新された比較結果を決定するために、プログラムされたビットの前記更新された測定値を、プログラムされたビットの前記目標値と比較することであって、前記更新された比較結果は、プログラムされたビットの前記更新された測定された値が、プログラムされたビットの前記目標値と実質的に等しいことを示す、比較すること、および、
前記更新された比較結果に鑑みて後続のアクションを実行することであって、前記後続のアクションは、前記調整された読み出し電圧レベルを使用して読み出し動作を実行することを含む、実行することをさらに含む、請求項18に記載のシステム。
【請求項20】
第1のプログラミング分布に対するプログラムされたビットの前記目標値は、消去されたビットの第2の数に対する、前記第1のプログラミング分布におけるプログラムされたビットの第1の数の目標比率を含む、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、一般に、メモリサブシステムに関し、より詳細には、メモリサブシステムにおけるプログラムされたビット数に基づいて読み出し電圧レベルを調整することに関する。
【背景技術】
【0002】
メモリサブシステムは、データを格納する1つまたは複数のメモリデバイスを含み得る。メモリデバイスは、例えば、不揮発性メモリデバイスおよび揮発性メモリデバイスであり得る。一般に、ホストシステムは、メモリデバイスにデータを格納するため、およびメモリデバイスからデータを取得するために、メモリサブシステムを利用し得る。
【0003】
本開示は、以下に提供される詳細な説明から、および本開示の様々な実施形態の添付の図面からより完全に理解される。しかしながら、図面は、本開示を特定の実施形態に限定すると見なされるべきではなく、単に解説および理解のためのものである。
【図面の簡単な説明】
【0004】
【
図1】本開示のいくつかの実施形態によるメモリサブシステムを含む例示的なコンピューティングシステムを図示する図である。
【
図2】いくつかの実施形態による、プログラミング分布におけるプログラムされたビットの目標値との、プログラミング分布におけるプログラムされたビットの測定された値の比較に鑑みて、読み出し電圧レベルを管理するための例示的な方法のフロー図である。
【
図3】いくつかの実施形態による、読み出しレベル調整コンポーネントによって確立されるプログラムされたビットの目標値を有する例示的なメモリデバイスのプログラミング分布の例示的なセットを図示する図である。
【
図4】いくつかの実施形態による、例示的な読み出しレベル調整コンポーネントおよび対応する機能性に対応する例示的な回路図を図示する図である。
【
図5】いくつかの実施形態による、印加されるセンシング電圧レベルに対応するプログラムされたビットの数のプロットを図示するグラフである。
【
図6】プログラムされたビットの測定された値およびプログラムされたビットの目標値の比較に鑑みて、印加される読み出し電圧レベルを調整し、所望の読み出し電圧レベルに確定するために、読み出しレベル調整コンポーネントによって使用され得る様々な技法を図示するグラフである。
【
図7】本開示の実装形態が動作することができる例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0005】
本開示の態様は、メモリサブシステムにおけるプログラムされたビット数に基づいて読み出しレベルを調整することを対象とする。メモリサブシステムは、ストレージデバイス、メモリモジュール、またはストレージデバイスおよびメモリモジュールのハイブリッドであり得る。ストレージデバイスおよびメモリモジュールの例は、
図1と併せて以下に説明される。一般に、ホストシステムは、データを格納するメモリデバイスなど、1つまたは複数のコンポーネントを含むメモリサブシステムを利用し得る。ホストシステムは、メモリサブシステムに格納されるべきデータを提供し得、メモリサブシステムから取得されるべきデータを要求し得る。
【0006】
メモリサブシステムは、データを格納するために、メモリセルの1つまたは複数のアレイを有する複数のメモリデバイスを含み得る。セルは、情報を格納する電子回路である。セルタイプに応じて、セルは、1つまたは複数のビットのバイナリ情報を格納することができ、格納されているビットの数に相関する様々な論理状態を有する。論理状態は、「0」および「1」など、バイナリ値、またはそのような値の組合せによって表され得る。メモリデバイスは、2次元グリッドをなして配置構成されるビットから編成され得る。メモリセルは、列(以後ビットラインとも称される)および行(以後ワードラインとも称される)のアレイをなしてシリコンウェハ上へとエッチングされる。ワードラインは、メモリセルの各々のアドレスを生み出すために、1つまたは複数のビットラインと共に使用される、メモリデバイスのメモリセルの1つまたは複数の行を指し得る。ビットラインおよびワードラインの交差部が、メモリセルのアドレスを構成する。ブロックは、以後、データを格納するために使用されるメモリデバイスの単位を指し、メモリセルのグループ、ワードライングループ、ワードライン、または個々のメモリセルを含み得る。
【0007】
メモリデバイスは、それぞれのデータ値と関連付けられた複数のプログラミング分布に対応するプログラミングレベル電圧または閾値電圧(Vt)に基づいて、ある量の電荷をメモリセルへと格納することができる。メモリデバイスは、メモリセルの各プログラミング分布に対する閾値電圧に対応する読み出しレベル電圧(「読み出しレベル」とも称される)を使用して、メモリセルに格納されるデータ値を読み出すまたは決定することができる。
【0008】
しかしながら、メモリセルが経時的にプログラミング、センシング、および消去サイクルを経るにしたがい、メモリセルのプログラミング分布に対応する閾値電圧が変化し得、これが、メモリセルの誤った読み出しをもたらし得る。すなわち、メモリセル上で実施される読み出し動作中のメモリセルの決定された状態は、メモリセルがプログラムされて至った状態以外の状態であり得る。
【0009】
本開示の態様は、メモリサブシステムのプログラミング分布に対応する読み出しレベル閾値電圧における変化に動的に順応するためのフィードバックシステムを含むメモリサブシステムを有することによって、上記のおよび他の欠陥に対処する。プログラミングプロセス中、システムは、メモリデバイスの各プログラミング分布についての消去されたビットに対するプログラムされたビットの固定されたまたは目標比率(本明細書内で「プログラムされたビットの目標比率」と称される)を確立する。プログラムされたビットの目標比率は、プログラミング分布の各々におけるプログラムされたビットの実質的に等しい数を含み得る。例えば、4つのプログラミング分布を有するMLCメモリデバイスに対して、各分布に対するプログラミングビットの目標比率は4分の1であり得る。
【0010】
読み出し動作中、分布状態と関連付けられた読み出し電圧レベルが印加され、合算機能が、印加される読み出し電圧レベルに対応するプログラムされたビットの累積数または総数を決定または測定するために実行される。プログラムされたビットの測定された総数は、プログラムされたビットの測定された比率を識別するために使用され、測定された比率は、比較結果を生成するために、プログラムされたビットの目標比率と比較される。比較結果は、印加される読み出し電圧レベルを目標読み出し電圧レベルに駆動するための信号として、システムによって使用される。例えば、比較結果を使用して、システムは、読み出し動作の実行のために目標読み出し電圧レベルを確立するために、印加される読み出し電圧レベルを調整(例えば、増大または減少)することができる。
【0011】
有利には、本開示の実施形態によるシステムは、メモリデバイス内の読み出しレベルを継続的に予測するためのコスト高の較正アルゴリズムを実装する必要性をなくする。これは、改善されたトリガ率(すなわち、デバイス誤り訂正が失敗し、要求されたデータを返すために追加の訂正の読み出しを必要とする率)をもたらす、より効率的な読み出し経路をもたらす。さらにまた、プログラミング分布の各々に対応する目標読み出しレベルは、ビット信号に基づいて所望の収束を反映するために、個々に調節される。本開示の利点は、追加のレイテンシを追加することなく、読み出し処理の実行において最適な読み出し値を確立することをさらに含む。さらにまた、読み出し動作は各読み出し内でフィードバックシステムを使用して内部的に較正されるため、読み出しレベルにおける動き(例えば、ディスターブ機序に起因する)が追跡される。したがって、動作または環境に関連するウェアまたは経時的な変化に起因する閾値電圧レベルにおける変化を予測するための、追加の較正スキームは必要とされない。
【0012】
図1は、本開示のいくつかの実施形態によるメモリサブシステム110を含む例示的なコンピューティングシステム100を図示する。メモリサブシステム110は、1つもしくは複数の揮発性メモリデバイス(例えば、メモリデバイス140)、1つもしくは複数の不揮発性メモリデバイス(例えば、メモリデバイス130)、またはそのようなものの組み合わせなどの媒体を含み得る。
【0013】
メモリサブシステム110は、ストレージデバイス、メモリモジュール、またはストレージデバイスおよびメモリモジュールのハイブリッドであり得る。ストレージデバイスの例としては、ソリッドステートドライブ(SSD)、フラッシュドライブ、ユニバーサルシリアルバス(USB)フラッシュドライブ、埋め込み型マルチメディアコントローラ(eMMC)ドライブ、ユニバーサルフラッシュストレージ(UFS)ドライブ、セキュアデジタル(SD)カード、およびハードディスクドライブ(HDD)が挙げられる。メモリモジュールの例としては、デュアルインラインメモリモジュール(DIMM)、スモールアウトラインDIMM(SO-DIMM)、および様々なタイプの不揮発性デュアルインラインメモリモジュール(NVDIMM)が挙げられる。
【0014】
コンピューティングシステム100は、デスクトップコンピュータ、ラップトップコンピュータ、ネットワークサーバ、モバイルデバイス、車両(例えば、航空機、ドローン、列車、自動車、または他の運輸機関)、モノのインターネット(IoT)が可能なデバイス、埋め込み型コンピュータ(例えば、車両、産業機器、またはネットワーク化された商用デバイスに含まれるもの)、またはメモリおよび処理デバイスを含むそのようなコンピューティングデバイスなどの、コンピューティングデバイスであり得る。
【0015】
コンピューティングシステム100は、1つまたは複数のメモリサブシステム110に結合されるホストシステム120を含み得る。いくつかの実施形態において、ホストシステム120は、異なるタイプのメモリサブシステム110に結合される。
図1は、1つのメモリサブシステム110に結合されたホストシステム120の一例を図示する。本明細書で使用される場合、「~に結合される」または「~と結合される」は、一般的に、コンポーネント間の接続を指し、これは、有線またはワイヤレスにしろ、電気、光学、磁気などの接続を含め、間接通信接続または直接通信接続(例えば、介在するコンポーネントなし)であり得る。
【0016】
ホストシステム120は、プロセッサチップセット、およびプロセッサチップセットによって実行されるソフトウェアスタックを含み得る。プロセッサチップセットは、1つまたは複数のコア、1つまたは複数のキャッシュ、メモリコントローラ(例えば、NVDIMMコントローラ)、およびストレージプロトコルコントローラ(例えば、PCIeコントローラ、SATAコントローラ)を含み得る。ホストシステム120は、例えば、メモリサブシステム110にデータを書き込み、メモリサブシステム110からデータを読み出すために、メモリサブシステム110を使用する。
【0017】
ホストシステム120は、物理的なホストインターフェースを介してメモリサブシステム110に結合され得る。物理的なホストインターフェースの例としては、限定されるものではないが、シリアルアドバンストテクノロジアタッチメント(SATA)インターフェース、PCIe(Peripheral Component Interconnect Express)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ファイバチャネル、シリアルアタッチドSCSI(SAS)、ダブルデータレート(DDR)メモリバス、スモールコンピュータシステムインターフェース(SCSI)、デュアルインラインメモリモジュール(DIMM)インターフェース(例えば、ダブルデータレート(DDR)をサポートするDIMMソケットインターフェース)などが挙げられる。物理的なホストインターフェースは、ホストシステム120とメモリサブシステム110との間でデータを送信するために使用され得る。ホストシステム120はさらに、メモリサブシステム110がPCIeインターフェースによってホストシステム120と結合されるとき、コンポーネント(例えば、メモリデバイス130)にアクセスするためにNVM Express(NVMe)インターフェースを利用し得る。物理的なホストインターフェースは、メモリサブシステム110とホストシステム120との間で制御信号、アドレス信号、データ信号、および他の信号を渡すためのインターフェースを提供し得る。
図1は、例としてメモリサブシステム110を図示する。一般に、ホストシステム120は、同じ通信接続、複数の別個の通信接続、および/または通信接続の組み合わせを介して、複数のメモリサブシステムにアクセスし得る。
【0018】
メモリデバイス130、140は、異なるタイプの不揮発性メモリデバイスおよび/または揮発性メモリデバイスの任意の組み合わせを含み得る。揮発性メモリデバイス(例えば、メモリデバイス140)は、限定されるものではないが、ダイナミックランダムアクセスメモリ(DRAM)およびシンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)であってもよい。
【0019】
不揮発性メモリデバイス(例えば、メモリデバイス130)のいくつかの例としては、否定論理積(NAND)タイプのフラッシュメモリ、および不揮発性メモリセルのクロスポイントアレイである3次元クロスポイント(「3Dクロスポイント」)メモリデバイスなど書き込みインプレイスメモリが挙げられる。不揮発性メモリのクロスポイントアレイは、積層可能なクロスグリッドデータアクセスアレイと併せて、バルク抵抗の変化に基づいてビット格納を実施し得る。加えて、多くのフラッシュベースのメモリと対照的に、クロスポイント不揮発性メモリは、書き込みインプレイス動作を実施することができ、ここでは、不揮発性メモリセルは、不揮発性メモリセルが先に消去されることなく、プログラムされ得る。NANDタイプのフラッシュメモリとしては、例えば、2次元NAND(2D NAND)、および3次元NAND(3D NAND)が挙げられる。
【0020】
メモリデバイス130の各々は、メモリセルの1つまたは複数のアレイを含み得る。メモリセルの1つのタイプ、例えば、単一レベルセル(SLC)は、セルあたり1ビットを格納することができる。多レベルセル(MLC)、3レベルセル(TLC)、4レベルセル(QLC)、および5レベルセル(PLC)などの他のタイプのメモリセルは、セルあたり複数ビットを格納することができる。いくつかの実施形態において、メモリデバイス130の各々は、SLC、MLC、TLC、QLC、またはそのようなものの任意の組み合わせなどのメモリセルの1つまたは複数のアレイを含み得る。いくつかの実施形態において、特定のメモリデバイスは、メモリセルのSLC部分、およびMLC部分、TLC部分、QLC部分、またはPLC部分を含み得る。メモリデバイス130のメモリセルは、データを格納するために使用されるメモリデバイスの論理単位を指し得るページとしてグループ化され得る。いくつかのタイプのメモリ(例えば、NAND)では、ページは、ブロックを形成するためにグループ化され得る。
【0021】
不揮発性メモリセルの3DクロスポイントアレイおよびNANDタイプのフラッシュメモリ(例えば、2D NAND、3D NAND)などの不揮発性メモリコンポーネントが説明されるが、メモリデバイス130は、リードオンリメモリ(ROM)、相変化メモリ(PCM)、自己選別メモリ、他のカルコゲナイドベースのメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、強誘電体ランダムアクセスメモリ(FeRAM)、磁気ランダムアクセスメモリ(MRAM)、スピントランスファトルク(STT)-MRAM、導電性ブリッジRAM(CBRAM)、抵抗ランダムアクセスメモリ(RRAM)、酸化物ベースのRRAM(OxRAM)、否定論理和(NOR)フラッシュメモリ、および電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)など、任意の他のタイプの不揮発性メモリに基づき得る。
【0022】
メモリサブシステムコントローラ115(または簡略のためコントローラ115)は、メモリデバイス130においてデータを読み出すこと、データを書き込むこと、またはデータを消去することなどの動作、および他のそのような動作を実施するために、メモリデバイス130と通信することができる。メモリサブシステムコントローラ115は、1つもしくは複数の集積回路および/または個別部品、バッファメモリ、またはそれらの組み合わせなどのハードウェアを含み得る。ハードウェアは、本明細書に説明される動作を実施するために専用(すなわち、ハードコードされた)論理を有するデジタル回路を含み得る。メモリサブシステムコントローラ115は、マイクロコントローラ、専用論理回路(例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)、または他の好適なプロセッサであり得る。
【0023】
メモリサブシステムコントローラ115は、ローカルメモリ119に格納された命令を実行するように構成される1つまたは複数のプロセッサ(例えば、プロセッサ117)を含む、処理デバイスであり得る。図示された例において、メモリサブシステムコントローラ115のローカルメモリ119は、メモリサブシステム110とホストシステム120との間の通信を処理することを含む、メモリサブシステム110の動作を制御する様々なプロセス、動作、論理フロー、およびルーチンを実施するための命令を格納するように構成される埋め込み型メモリを含む。
【0024】
いくつかの実施形態において、ローカルメモリ119は、メモリポインタ、取り出したデータなどを格納するメモリレジスタを含み得る。ローカルメモリ119は、マイクロコードを格納するためのリードオンリメモリ(ROM)も含み得る。
図1の例示的なメモリサブシステム110は、メモリサブシステムコントローラ115を含んで図示されているが、本開示の別の実施形態において、メモリサブシステム110は、メモリサブシステムコントローラ115を含まず、代わりに、外部制御(例えば、外部ホストによって、またはメモリサブシステムとは別個のプロセッサもしくはコントローラによって提供される)に依拠し得る。
【0025】
一般に、メモリサブシステムコントローラ115は、ホストシステム120からコマンドまたは動作を受信することができ、メモリデバイス130への所望のアクセスを達成するために、そのコマンドまたは動作を命令または適切なコマンドへと変換することができる。メモリサブシステムコントローラ115は、ウェアレベリング動作、ガベージコレクション動作、エラー検出および誤り訂正符号(ECC)動作、暗号化動作、キャッシング動作、ならびに、論理ブロックアドレス(例えば、論理ブロックアドレス(LBA)、名前空間)とメモリデバイス130と関連付けられる物理ブロックアドレス(例えば、物理ブロックアドレス)との間のアドレス変換など、他の動作を担当し得る。メモリサブシステムコントローラ115は、ホストインターフェース回路をさらに含み、この物理的なホストインターフェースを介してホストシステム120と通信し得る。ホストインターフェース回路は、ホストシステムから受信したコマンドを、メモリデバイス130にアクセスするためのコマンド命令へと変換し、ならびにメモリデバイス130と関連付けられた応答を、ホストシステム120のための情報へと変換し得る。
【0026】
メモリサブシステム110は、図示されない追加の回路またはコンポーネントも含み得る。いくつかの実施形態において、メモリサブシステム110は、キャッシュまたはバッファ(例えば、DRAM)、およびメモリサブシステムコントローラ115からアドレスを受信し、メモリデバイス130にアクセスするためにそのアドレスを復号することができるアドレス回路(例えば、行デコーダおよび列デコーダ)を含み得る。
【0027】
いくつかの実施形態において、メモリデバイス130は、メモリデバイス130の1つまたは複数のメモリセルに対して動作を実行するためにメモリサブシステムコントローラ115と併せて動作するローカルメディアコントローラ135を含む。外部コントローラ(例えば、メモリサブシステムコントローラ115)は、メモリデバイス130を外部から管理する(例えば、メモリデバイス130に対して媒体管理動作を実施する)ことができる。いくつかの実施形態において、メモリデバイス130は、被管理メモリデバイスであり、これは、同じメモリデバイスパッケージ内の媒体管理のためのローカルコントローラ(例えば、ローカルコントローラ135)と組み合わされた生のメモリデバイスである。被管理メモリデバイスの例は、被管理NAND(MNAND)デバイスである。
【0028】
メモリサブシステム110は、メモリデバイスの各プログラミング分布におけるプログラムされたビット(またはビットライン)の数に鑑みて、目標読み出し電圧レベル値に順応するために使用され得る読み出しレベル調整コンポーネント113を含む。実施形態において、書き込みまたはプログラムプロセス中、読み出しレベル調整コンポーネント113は、各プログラミング分布状態に対するプログラムされたビットの目標値を確立する。実施形態において、目標値は、任意のタイプのメモリサブシステム(例えば、SLCメモリデバイス、MLCメモリデバイス、QLCメモリデバイスなど)の各プログラミング分布状態に対する、消去されたビットに対するプログラムされたビットの比率に基づく。一例において、4つのプログラミング分布を有するMLCメモリサブシステムに対して、目標値または比率は、各プログラミング分布が、プログラムされたビットの総数の4分の1を含むように確立され得る。
【0029】
読み出し動作中、読み出しレベル調整コンポーネント113は、プログラミング分布におけるプログラムされたビットの測定された値を決定するために、初期読み出し電圧レベルを印加する。実施形態において、測定された値は、プログラミング分布についての消去されたビットに対するプログラミングビットの比率に基づき得る。読み出しレベル調整コンポーネント113は、プログラムされたビットの数、およびプログラムされたビットの対応する測定された比率を測定するために、合算機能を実行し得る。プログラムされたビットの測定された値は、比較結果を決定するために、プログラムされたビットの目標値と比較される。比較結果に鑑みて、読み出しレベル調整コンポーネント113は、対応するアクションを実行する。実施形態において、プログラムされたビットの測定された値が、プログラムされたビットの目標値と(例えば、所定の許容差または範囲内で)実質的に等しいことを比較結果が示すならば、読み出しレベル調整コンポーネント113は、読み出し動作を実行し、印加された読み出し電圧レベルを使用してデータを読み出す。実施形態において、プログラムされたビットの測定された値が、プログラムされたビットの目標値より大きいことを比較結果が示すならば、読み出しレベル調整コンポーネント113は、印加される読み出し電圧レベルを、調整された読み出し電圧レベルに減少させる。実施形態において、プログラムされたビットの測定された値が、プログラムされたビットの目標値未満であることを比較結果が示すならば、読み出しレベル調整コンポーネント113は、印加される読み出し電圧レベルを、調整された読み出し電圧レベルに増大させる。読み出しレベル調整コンポーネント113は、プログラムされたビットの測定された値が、プログラムされたビットの目標値と(例えば、許容差または閾値内で)実質的に等しくなるまで、調整された読み出し電圧レベルを反復的に印加することができる。
【0030】
図2は、メモリデバイスにおいてデータを読み出すための読み出し動作の実行中に読み出し電圧レベルを管理するための例示的な方法200のフロー図である。方法200は、ハードウェア(例えば、処理デバイス、回路、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で実行される(runまたはexecuted)命令)、またはそれらの組み合わせを含み得る処理論理によって実施され得る。いくつかの実施形態において、方法200は、
図1の読み出しレベル調整コンポーネント113によって実施される。特定のシーケンスまたは順序で示されるが、別段の記載のない限り、プロセスの順序は修正され得る。したがって、示された実施形態は、単に例として理解されるべきであり、示されたプロセスは、異なる順序で実施され得、いくつかのプロセスが並行して実施され得る。加えて、1つまたは複数のプロセスは、様々な実施形態において、省略され得る。したがって、全実施形態においてすべてのプロセスが必要とされるわけではない。他のプロセスフローが可能である。
【0031】
図2で図示されるように、動作210では、処理論理は、メモリサブシステムのプログラミング分布のセットの各プログラミング分布に対するプログラムされたビットの目標値を確立する。実施形態において、プログラムされたビットの目標値は、プログラミング分布の、消去されたビットに対するプログラムされたビットの比率であり得る。実施形態において、プログラミング分布の各々に対応するプログラムされたビットの目標値は、メモリサブシステムのプログラム時間中に確立され得る。
【0032】
例えば、4つのプログラミング分布を有するMLCメモリデバイスに対して、処理論理は、4つのプログラミング分布の各々が、プログラムされたビットの4分の1を含む、プログラムされたビットの目標値を確立することができる。
図3は、(例えば、
図2で図示されるプロセス200の動作210によって)読み出しレベル調整コンポーネント113によって確立されるプログラムされたビットの目標値を有する例示的なMLCメモリデバイスのプログラミング分布210の例示的なセット(例えば、プログラミング分布(PD)0、PD1、PD2、およびPD3)を図示する図である。図示されるように、プログラミングプロセス中、プログラミング分布(PD0、PD1、PD2、およびPD3)の各々に対するプログラムされたビットの目標値が確立される。この例において、4つのプログラミング分布の各々は、プログラムされたビットの総数の4分の1を含むようにプログラムされ得る。
【0033】
動作220では、処理論理は、プログラミング分布のセットの1つまたは複数のプログラミング分布に対応するプログラムされたビットの測定された値を決定するために、読み出し電圧レベルを印加する。実施形態において、測定値は、プログラミング分布における、消去されたビットに対するプログラムされたビットの比率であり得る。実施形態において、測定された値は、プログラミング分布に対応するプログラムされたビットラインの総数を合算または計数するための合算機能を実行することによって決定され得る。読み出し電圧レベルの印加、およびプログラムされたビットの測定値の合算は、
図4に対して以下により詳細に説明される。例えば、
図3で図示されるように、読み出し電圧レベル(RL2)が、プログラミング分布1(PD1)のプログラムされたビットの数を決定または測定するために印加され得る。
図3で図示されるように、PD1と関連付けられたプログラムされたビットの目標値は、プログラムされた(例えば、可読)ビットの総数の2分の1である。
【0034】
動作230では、処理論理は、比較結果を決定するために、プログラムされたビットの目標値を、プログラムされたビットの測定された値と比較する。実施形態において、比較は、プログラミング分布についての消去されたビットに対するプログラムされたビットの目標比率と、プログラミング分布についての消去されたビットに対するプログラムされたビットの測定された比率との間でなされ得る。
【0035】
動作240では、処理論理は、比較結果に鑑みてアクションを実行する。実施形態において、アクションは、プログラムされたビットの測定された値が、プログラムされたビットの目標値と実質的に等しいことを比較結果が示すと決定することに応答して、印加される読み出しレベル電圧を使用して読み出し動作を実行することを含み得る。実施形態において、プログラムされたビットの測定された値は、プログラムされたビットの目標値と実質的に等しいと決定されることが、2つの値が等しい、または既定の許容差もしくは範囲内であるならば行われる。実施形態において、アクションは、プログラムされたビットの測定された値が、プログラムされたビットの目標値より大きいことを比較結果が示すと決定することに応答して、印加される読み出し電圧レベルを、調整された読み出し電圧レベルに減少させることを含み得る。実施形態において、アクションは、プログラムされたビットの測定された値が、プログラムされたビットの目標値未満であることを比較結果が示すと決定することに応答して、印加される読み出し電圧レベルを、調整された読み出し電圧レベルに増大させることを含み得る。
【0036】
実施形態において、動作220、230、および240は、調整された読み出し電圧レベルが生み出されるたびに反復的に実施され得る。この点について、調整された読み出し電圧レベルは、(動作230で)プログラムされたビットの目標値と比較されるように、(動作220でのように)プログラムされたビットの更新された測定された値を決定するために印加され、そのことは、プログラムされたビットの更新された測定された値が、プログラムされたビットの目標値と実質的に等しいことを比較結果が示すまで行われる。
【0037】
図4は、本出願の例示的な読み出しレベル調整コンポーネント113に対応する例示的な回路
図400を図示する図である。読み出し電圧レベルが、メモリデバイス420のワードラインに印加され、合算機能410が、プログラムされたビットライン(例えば、BL1、BL2、BL3…BLN)の数の数を決定するために実行される。合算または累積値が、プログラムされたビットの測定された値(例えば、プログラムされたビットラインの数)を決定し、それをプログラムされたビットの目標値と比較するために、読み出しレベル調整コンポーネント113によって使用される。430では、読み出し電圧調整コンポーネント113は、プログラムされたビットの測定された値が、プログラムされたビットの目標値と実質的に等しいと決定することができる。この比較結果に基づいて、読み出し電圧調整コンポーネント113は、435で、印加される読み出し電圧レベルを使用して読み出し動作を実行する。
【0038】
実施形態において、440では、読み出し電圧調整コンポーネント113は、プログラムされたビットの測定された値が、プログラムされたビットの目標値より大きいことを決定し得る。この比較結果に基づいて、読み出し電圧調整コンポーネント113は、445で、印加される読み出し電圧レベルを、調整された(減少させられた)読み出し電圧レベルに減少させる。調整された読み出し電圧レベルは、フィードバックされ、420でワードラインに印加され、合算動作が、プログラムされたビットの更新された測定された値を識別するために繰り返される。
【0039】
実施形態において、450では、読み出し電圧調整コンポーネント113は、プログラムされたビットの測定された値が、プログラムされたビットの目標値未満であることを決定し得る。この比較結果に基づいて、読み出し電圧調整コンポーネント113は、455で、印加される読み出し電圧レベルを、調整された(減少された)読み出し電圧レベルに増大させる。調整された読み出し電圧レベルは、フィードバックされ、420でワードラインに印加され、合算機能が、プログラムされたビットの更新された測定された値を識別するために繰り返される。
【0040】
図5は、共通の印加される測定電圧に関する、独立したビットラインセットアップにおけるプログラムされたビットの数のプロットを図示するグラフである。図示されるように、読み出し電圧レベル調整コンポーネントは、読み出し閾値レベル(例えば、RL1、RL2、およびRL3)を、プログラムされたビットの測定値が、プログラムされたビットの目標値と実質的に等しい場合の値に駆動するために、比較結果を使用し得る。図示されるように、プログラムされたビットの目標値(または、目標のプログラムされたビットレベル)が、確立され、隣接するプログラミング分布間の谷に対応している。有利には、比較結果に鑑みてアクションを実行することによって、印加される読み出し電圧レベルは、調整され、プログラムされたビットの目標値が達成されるときに確定され得る。
図5で図示される例において、RL1に対する目標のプログラムされたビットレベルは、プログラムされたビット全体の4分の1であり、RL2に対する目標のプログラムされたビットレベルは、プログラムされたビット全体の2分の1であり、RL3に対する目標のプログラムされたビットレベルは、プログラムされたビット全体の4分の3である。
【0041】
図6は、印加される読み出し電圧レベルを調整し、所望の読み出し電圧レベル(例えば、プログラムされたビットの目標値と実質的に等しい、プログラムされたビットの測定された値を生成する読み出し電圧レベル)に確定するために、読み出しレベル調整コンポーネントによって使用され得る様々な技法を図示するグラフである。
図6で図示されるように、実施形態において、読み出しレベル調整コンポーネントは、ワードラインに印加される読み出し電圧レベルをダンプさせることができ、その場合、合算機能が、プログラムされたビットの測定された値を反復的にサンプリングし、プログラムされたビットの測定された値が、プログラムされたビットの目標値と実質的に等しいと決定すると、読み出し電圧レベルを続けて確定する。実施形態において、読み出し電圧レベルは、所望の読み出し電圧レベル(例えば、プログラムされたビットの測定された値が、プログラムされたビットの目標値と実質的に等しいことをもたらす読み出し電圧レベル)を決定するために、読み出し電圧レベルをオーバーシュートまたは飽和させ、次いで、飽和からバックオフするように、読み出しレベル調整コンポーネントによってオーバードライブされ得る。実施形態において、読み出しレベル調整コンポーネントは、メモリデバイスおよび上に説明されたフィードバックシステムの特性に応じて、オーバードライブすることなく(例えば、アンダーダンプ(underdamping))、収束点に接近するように読み出し電圧レベルを調整することができる。
【0042】
本出願の実施形態に従えば、プログラムされたビットの目標数に鑑みて、読み出し電圧レベルをセットすることは、プログラム状態からのアレイ条件における変化(例えば、過渡VT)、読み出しディスターブ、プログラムディスターブ、データリテンション、熱的補正などと同様のディスターブ機序に関する著しい同相除去を可能にする。特に、本明細書に説明されるシステムおよび方法は、置換ゲートメモリデバイス(例えば、NANDデバイス)に対して予想される電荷損失に対処するために有用である。
【0043】
加えて、読み出し電圧調整コンポーネントおよび対応する機能性は、読み出し電圧レベルの動的調整および内部監視に鑑みて、チップ複雑性および市場に出るまでの時間を低減する。したがって、読み出し電圧調整コンポーネントを含むメモリデバイスは、最適化されたまたは所望の読み出し点を決定するための内部信号を採用する。これは、メモリデバイスが、シフトまたはディスターブされたデータに動的に順応することを可能にする。
【0044】
有利には、中間状態を読み出すために、メモリデバイスは、プログラムされたビットの目標値に順応し、またはその目標値に駆動され、読み出しにおいてラッチし得る。本明細書に説明されるシステムおよび方法は、配置における違いを補償し、正しいデータを返す。加えて、読み出しリトライ経路が、読み出しレベル調整コンポーネントによって短くされる。これは、内部で提供される信号が、(例えば、不正確な初期読み出しレベルオフセットに応答して第2の読み出しを実行する必要性を軽減して)谷場所を決定するために能動的に使用されるからである。したがって、データリテンションまたは交差温度(cross temp)に対する特定のオフセットは必要とされない。
【0045】
加えて、本明細書に説明されるシステムおよび方法は、すべてのワードラインに対する同じ点における配置分布に対する制約を取り除く。読み出しプロセスは内部信号を制御入力データとして受け入れている(keying off)ため、谷場所における大幅な変動は、トリガ率への悪影響なしに目標とされ得る。これは、読み出し窓バジェットを創出するとき、追加の柔軟性を創出する。実施形態において、読み出し電圧レベルは、読み出されている各メモリセルに特異的に調節され得る。
【0046】
図7は、コンピュータシステム700の例示的なマシンを示し、このコンピュータシステム内で、本明細書内で論じられた方法論のうちの任意の1つまたは複数をマシンに実施させるための命令のセットが実行され得る。いくつかの実施形態において、コンピュータシステム700は、メモリサブシステム(例えば、
図1のメモリサブシステム110)を含むか、これに結合されるか、もしくはこれを利用するか、またはコントローラの動作を実施するために(例えば、
図1の読み出しレベル調整コンポーネント113に対応する動作を実施するためにオペレーティングシステムを実行するために)使用され得る、ホストシステム(例えば、
図1のホストシステム120)に対応し得る。代替の実施形態において、マシンは、LAN、イントラネット、エクストラネット、および/またはインターネット内の他のマシンに接続(例えば、ネットワーク化)され得る。マシンは、ピアツーピア(もしくは分散)ネットワーク環境内のピアマシンとして、またはクラウドコンピューティングインフラストラクチャもしくは環境内のサーバもしくはクライアントマシンとして、クライアント-サーバネットワーク環境内のサーバまたはクライアントマシンの能力内で動作することができる。
【0047】
マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブ電化製品、サーバ、ネットワークルータ、スイッチもしくはブリッジ、デジタルもしくは非デジタル回路、またはそのマシンによって取られるべきアクションを指定する命令のセットを実行することができる(順次またはその他の方法で)任意のマシンであってもよい。さらに、単一のマシンが示されるが、用語「マシン」はまた、本明細書で論じられる方法論のうちの任意の1つまたは複数を実施するために命令のセット(または複数のセット)を個々に、またはまとめて実行するマシンの任意の集合を含むと見なされるものとする。
【0048】
例示的なコンピュータシステム700は、バス730を介して互いと通信する、処理デバイス702、メインメモリ704(例えば、リードオンリメモリ(ROM)、フラッシュメモリ、シンクロナスDRAM(SDRAM)またはRambus DRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ706(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、およびデータストレージシステム718を含む。
【0049】
処理デバイス702は、マイクロプロセッサ、中央処理装置、または同様のものなどの1つまたは複数の汎用処理デバイスを表す。より詳細には、処理デバイスは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサであり得る。処理デバイス702はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、または同様のものなど、1つまたは複数の専用処理デバイスであり得る。処理デバイス702は、本明細書内で論じられる動作およびステップを実施するための命令726を実行するように構成される。コンピュータシステム700は、ネットワーク720を通じて通信するためにネットワークインターフェースデバイス708をさらに含み得る。
【0050】
データストレージシステム718は、命令726の1つもしくは複数のセット、または本明細書内に説明される方法論もしくは機能のうちの任意の1つまたは複数を具現化するソフトウェアが格納されるマシン可読記憶媒体724(コンピュータ可読媒体としても知られる)を含み得る。命令726はまた、コンピュータシステム700によるその実行中、メインメモリ704内に、および/または処理デバイス702内に、完全に、または少なくとも部分的に存在し得、メインメモリ704および処理デバイス702もまた、マシン可読記憶媒体を構成する。マシン可読記憶媒体724、データストレージシステム718、および/またはメインメモリ704は、
図1のメモリサブシステム110に対応し得る。
【0051】
1つの実施形態において、命令726は、データ保護コンポーネント(例えば、
図1の読み出しレベル調整コンポーネント113)に対応する機能性を実装するための命令を含む。マシン可読記憶媒体724は、例示的な実施形態においては単一の媒体であると示されるが、用語「マシン可読記憶媒体」は、命令の1つまたは複数のセットを格納する単一の媒体または複数の媒体を含むと見なされるものとする。用語「マシン可読記憶媒体」はまた、マシンによる実行のための命令のセットを格納または符号化することができる、および本開示の方法論のうちの任意の1つまたは複数をマシンに実施させる、任意の媒体を含むと見なされるものとする。用語「マシン可読記憶媒体」は、したがって、限定されるものではないが、ソリッドステートメモリ、光学媒体、および磁気媒体を含むと見なされるものとする。
【0052】
先行する詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号的表現に関して提示されている。これらのアルゴリズムの説明および表現は、データ処理技術における当業者によりその仕事の内容を他の当業者に最も効果的に伝えるために使用される方法である。アルゴリズムは、ここでは、および一般的には、所望の結果をもたらす動作の自己無撞着シーケンスであると考えられる。動作は、物理量の物理的処理を必要とするものである。通常、必須ではないが、これらの量は、格納される、組み合わされる、比較される、および別途処理されることができる電気または磁気信号の形態をとる。主として共通使用の理由から、これらの信号をビット、値、要素、符号、文字、項、数字、または同様のものと呼ぶことが時には簡便であることが証明されている。
【0053】
しかしながら、これらのすべておよび同様の用語は、適切な物理量と関連付けられるべきであり、これらの量に適用される簡便なラベルにすぎないということに留意しておくべきである。本開示は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを、操作して、コンピュータシステムメモリもしくはレジスタまたは他のそのような情報ストレージシステム内の物理量として同様に表される他のデータへと変換する、コンピュータシステム、または同様の電子コンピューティングデバイスのアクションおよびプロセスを指し得る。
【0054】
本開示はまた、本明細書内の動作を実施するための装置に関する。この装置は、意図した目的のために特別に構築され得るか、またはそれは、コンピュータに格納されるコンピュータプログラムによって選択的に起動または再構成される汎用コンピュータを含み得る。そのようなコンピュータプログラムは、限定されるものではないが、フロッピディスク、光学ディスク、CD-ROM、および光磁気ディスクを含む任意のタイプのディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光学カード、または電子命令を格納するのに好適な任意のタイプの媒体などのコンピュータ可読記憶媒体に格納され得、これらの各々がコンピュータシステムバスに結合される。
【0055】
本明細書内に提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関連するものではない。様々な汎用システムが、本明細書内の教示に従ってプログラムと共に使用され得るか、またはそれは、本方法を実施するためにより専門化された装置を構築するのに簡便であることを証明し得る。様々なこれらのシステムの構造は、以下の説明に明記されるように見える。加えて、本開示は、任意の特定のプログラミング言語に関連して説明されるものではない。様々なプログラミング言語が本明細書内に説明されるような本開示の教示を実装するために使用され得るということを理解されたい。
【0056】
本開示は、本開示に従ってプロセスを実施するようにコンピュータシステム(または他の電子デバイス)をプログラムするために使用され得る、命令が格納されているマシン可読媒体を含み得るコンピュータプログラム製品、またはソフトウェアとして提供され得る。マシン可読媒体は、マシン(例えば、コンピュータ)によって読むことが可能な形態で情報を格納するための任意の機序を含む。いくつかの実施形態において、マシン可読(例えば、コンピュータ可読)媒体は、リードオンリメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリコンポーネントなど、マシン(例えば、コンピュータ)可読記憶媒体を含む。
【0057】
先述の明細書において、本開示の実施形態は、それらの特定の例示的な実施形態に関して説明されている。様々な修正が、それらに対して、以下の請求項に明記されるような本開示の実施形態の幅広い趣旨および範囲から逸脱することなくなされ得ることは明らかである。したがって、本明細書および図面は、制限的意味よりもむしろ例示的意味と考えられるべきである。
【国際調査報告】