JP2021527890A - メモリデバイスの適応型ウォッチドッグ - Google Patents

メモリデバイスの適応型ウォッチドッグ Download PDF

Info

Publication number
JP2021527890A
JP2021527890A JP2020570550A JP2020570550A JP2021527890A JP 2021527890 A JP2021527890 A JP 2021527890A JP 2020570550 A JP2020570550 A JP 2020570550A JP 2020570550 A JP2020570550 A JP 2020570550A JP 2021527890 A JP2021527890 A JP 2021527890A
Authority
JP
Japan
Prior art keywords
memory
time
memory device
time interval
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2020570550A
Other languages
English (en)
Inventor
ナダブ グロース
デイビッド アーロン パーマー
Original Assignee
マイクロン テクノロジー,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2021527890A publication Critical patent/JP2021527890A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

メモリデバイス内の調整可能なウォッチドッグのためのデバイス及び技術が本明細書に開示されている。メモリ動作コマンドは、ホストからメモリデバイスで1回目に受信される。リセット信号は、ホストからメモリデバイスで、1回目に続いて2回目に受信される。1回目と2回目の間の時間間隔が測定される。ホストからさらにリセット信号を受信することとは無関係にメモリデバイスをリセットするためメモリデバイス内のタイマーの遅延間隔が、測定された時間間隔に基づいて確立される。

Description

優先権出願
本願は、参照によりその全体が本明細書に組み込まれる、2018年6月18日に出願された米国特許出願第16/010,940号に対する優先権の利益を主張するものである。
メモリデバイスは典型的には、コンピュータまたは他の電子デバイスの内部の、半導体、集積回路として設けられる。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。フラッシュメモリは、広範囲な電子的用途のために不揮発性メモリとして利用される。フラッシュメモリデバイスは通常、高メモリ密度、高信頼性、及び低消費電力を可能にするフローティングゲートまたはチャージトラップメモリセルの1つ以上のグループを含む。
フラッシュメモリアレイアーキテクチャの2つの一般的なタイプには、NANDアーキテクチャとNORアーキテクチャがあり、それぞれの基本的なメモリセル構成が配置されている論理形式にちなんで名付けられている。メモリアレイのメモリセルは、通常、マトリックスに配置される。一例では、アレイの行内の各フローティングゲートメモリセルのゲートは、アクセスライン(例えば、ワードライン)に結合されている。NORアーキテクチャでは、アレイの列にある各メモリセルのドレインは、データライン(例えば、ビットライン)に結合される。NANDアーキテクチャでは、アレイのストリング内の各メモリセルのドレインは、ソースラインとビットラインの間で、ソースからドレインに直列に結合される。各グループの選択されていないメモリセルのゲートに結合されたワードラインは、指定された通過電圧(例えば、Vpass)で駆動されて、各グループの選択されていないメモリセルをパストランジスタとして動作させる(例えば、保存されたデータ値により制限されない方法で電流を流す)。
メモリアレイまたはデバイスを組み合わせて、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS(商標))デバイス、マルチメディアカード(MMC)ソリッドステート記憶デバイス、組み込みMMCデバイス(eMMC(商標))及び類似の物などのメモリシステムの記憶ボリュームを形成できる。SSDは、とりわけ、コンピュータまたはモバイルデバイス(例えば、スマートフォン)のメイン記憶デバイスとして使用でき、例えば、パフォーマンス、サイズ、重量、耐久性、動作温度範囲、及び消費電力の点で、可動部品を備えた従来のハードドライブよりも優れている。例えば、SSDは、磁気ディスクドライブ(例えば、電気機械など)に関連付けられたシーク時間、待ち時間、またはその他の遅延を減らすことができる。SSDは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部バッテリ供給要件を不要にし、ドライブをより用途が広くすること及びコンパクトにすることができる。
多くの従来型メモリデバイスは、通常、デッドロックまたはクラッシュ状態を回避し、それによってメモリデバイスの信頼性を向上させるために、事前設定された一定期間後にメモリデバイスをリセットするウォッチドッグタイマーを含む。メモリデバイスに関連付けられたホストは、場合によっては、ホストによって発行された特定のコマンドがタイムアウトするか、ホストのタイムアウト値を超えると、メモリデバイスをリセットする場合がある。このような従来型メモリウォッチドッグタイマーは、通常、固定間隔に基づいて動作し、これは、メモリデバイスが組み込まれているさまざまなシステムのコンテキストで理想的とは言えないパフォーマンスを提供する場合がある。
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字の接尾辞を有する類似数字は、類似構成要素の異なる事例を表し得る。図面は、概して、限定ではなく実施例として、本明細書で論じられている様々な実施形態を示す。
1つまたは複数の実施形態を実装することができるメモリデバイスを含む環境の例を示している。 1つまたは複数の実施形態を実装することができる適応型ウォッチドッグモジュールの例を示すブロック図である。 1つまたは複数の実施形態を実装することができるメモリモジュールの例示的なブロック図を示している。 1つまたは複数の実施形態を実施することができる適応型ウォッチドッグモジュールのパラメータを確立するためのプロセスのフローチャートである。 1つまたは複数の実施形態を実施することができるホストタイムアウトイベント及びメモリ待ち時間に基づいて適応型ウォッチドッグモジュールのパラメータを確立するためのプロセスのフローチャートである。 1つまたは複数の実施形態を実装することができるマシンの例を示すブロック図である。
本明細書は、メモリが組み込まれているシステムの動作に応じて、1つまたは複数のメモリデバイス内の、または1つまたは複数のメモリデバイスに関連付けられた適応型ウォッチドッグモジュールのタイマー値(タイムアウト値)を確立するために、メモリウォッチドッグタイマーを構成及び動作するためのさまざまな手法を対象とする。本明細書では、メモリ動作コマンドの受信に関連してホストタイムアウトイベント(例えば、ホストがメモリデバイスをリセットするとき)を監視して、適応型ウォッチドッグモジュールの可能なより低い(または最も低いもしくは最も小さい)タイムアウト値(例えば、ホストのタイムアウト間隔よりも小さい閾値であるタイマー値)を識別するためのさまざまな手法について論じる。本明細書では、1つまたは複数のメモリ動作コマンドを実施または実行する際のメモリ待ち時間を監視して、適応型ウォッチドッグモジュールのより低い(または最も低いもしくは最も小さい)可能なタイムアウト値(例えば、最大のメモリ動作待ち時間より大きい閾値であるタイマー値)を識別するためのさまざまな手法について論じる。本明細書で言及されるように、メモリデバイスは、メモリアレイセル、バスのラッチを含むバスライン、メモリコントローラ、メモリアレイ及び他のメモリ構成要素が実装されるダイ、及び情報を格納または検索するために使用される、あるいは記憶または取得動作を実行する記憶要素を支援する任意の他の構成要素を含み得る。
適応型ウォッチドッグモジュール(複数化)は、メモリデバイス、メモリデバイスダイの外部及び/または外側であり得るか、またはメモリデバイスダイ、または、例えば、メモリダイに物理的に関連付けられた論理ダイ上に含まれ得る。場合によっては、各メモリデバイスに対して、またはいくつかの例では、特定のダイ上のメモリデバイスの各部分に対して個別の適応型ウォッチドッグモジュールが存在する場合がある。適応型ウォッチドッグモジュールは、適応型ウォッチドッグモジュールタイマーがタイムアウトしたとき(特定の適応型ウォッチドッグモジュールタイマー値に到達したとき)に、1つまたは複数のメモリデバイスへのリセット信号をトリガするように構成することができる。これにより、メモリデバイスは、リセット信号を発行するホストとは無関係に(または関与せずに)リセットされる。
いくつかの実装形態では、単一の適応型ウォッチドッグモジュールが複数のメモリデバイスに結合され、様々なメモリデバイスに対して複数のウォッチドッグタイマー(それぞれが異なる値を有する)を実装することができる。例えば、1つのメモリデバイスは、1つのアプリケーションまたはアプリケーションのタイプ(例えば、画像処理アプリケーション)に対して所与の一連の動作を実行することに専用であり得るか、または1つのホストプロセッサ(例えば、マルチコアプロセッサの1つのコア)と通信するように構成され得る。第2のメモリデバイスは、第2のアプリケーションまたはアプリケーションのタイプ(例えば、電子メールアプリケーション)に対して所与の一連の動作を実行することに専用であり得るか、または第2のホストプロセッサ(例えば、マルチコアプロセッサの第2のコア)と通信するように構成され得る。このような状況では、ウォッチドッグモジュールはメモリデバイスごとに異なるタイマー値で構成できる。以下の説明は、特定のウォッチドッグモジュールのタイマー値の調整または確立に関係し、複数のウォッチドッグモジュールのタイマー値の調整または確立にも同様に適用される。
適応型ウォッチドッグモジュールのタイムアウト値は、特定のメモリデバイスまたは適応型ウォッチドッグモジュールが製造されているときに確立されるか、メモリデバイスの製造後に構成、変更、または調整され得る。例えば、適応型ウォッチドッグモジュールは、特定のメモリデバイスの仕様に対応するプリセットタイマー値(例えば、メモリデバイスの最悪の場合の待ち時間条件またはメモリデバイスの平均待ち時間を可能にする安全な時間)で最初に設定され得る。メモリデバイスの動作中に、適応型ウォッチドッグモジュールは、メモリデバイス内及びメモリデバイスと外部構成要素(例えば、プロセッサ)との間の相互作用を監視して、適応型ウォッチドッグモジュールのタイマー値を動的に調整することができる。
いくつかの実装形態では、適応型ウォッチドッグモジュールは、ホスト(メモリデバイスに結合されたプロセッサ)からメモリデバイス動作コマンドを受信するメモリデバイスを表す信号を受信することができる。適応型ウォッチドッグモジュールは、受信したメモリデバイス動作コマンドのタイムスタンプを格納できる。あるいは、適応型ウォッチドッグモジュールは、メモリデバイス動作コマンドがそれぞれのタイムスタンプとともに格納されているメモリキューにアクセスすることができる。メモリデバイス動作コマンドのタイムスタンプは、メモリデバイス動作コマンドがホストから受信された時刻を識別し得る。メモリデバイス動作コマンドがメモリデバイスによって正常に実行された後、メモリデバイスは、適応型ウォッチドッグモジュールのタイマーをリセットすることができる。
場合によっては、ホストからリセット信号を受信する前に、メモリデバイス動作コマンドの実行が終了しないか、正常に実行されないことがあり得る。例えば、ホストは、ホストによってメモリデバイスに発行された各コマンドのホストタイムアウト値にタイマーを関連付けることができ、所与のコマンドがホストのタイムアウト値の前に(例えば、ホストがタイムアウトする前に)メモリデバイスによって正常に実行されない場合、ホストはリセット信号をメモリデバイスに送信する場合がある。そのような状況では、適応型ウォッチドッグモジュールは、メモリデバイスがホストからリセット信号を受信した時間を表すタイムスタンプを生成することができる(例えば、ホストタイムアウトイベントのために)。適応型ウォッチドッグモジュールは、ホストがタイムアウトする前にホストから最初または最後に受信したメモリデバイス動作コマンドのタイムスタンプを取得する場合がある。適応型ウォッチドッグモジュールは、メモリデバイス動作コマンドのタイムスタンプとホストタイムアウトリセット信号のタイムスタンプとの差を計算して、ホストタイムアウトイベント期間(例えば、ホストタイムアウトタイマー)を推定する時間間隔を決定することができる。適応型ウォッチドッグモジュールは、適応型ウォッチドッグモジュールのタイマー値を、決定された時間間隔から閾値量(例えば、デルタ値)を引いた値に設定することができる。時間間隔から閾値量を引いた値は、調整された時間間隔または調整された推定ホストタイムアウト値と呼ばれてもよい。閾値量は、事前定義された時間単位であってもよく、調整されるタイマー値のパーセンテージ値であってもよい。例えば、閾値量は、所与のパーセンテージ値(例えば、1パーセント)に設定され得、そのような状況では、決定された時間間隔から閾値を引いたものを設定することは、タイマー値を決定された時間間隔の99%(すなわち、決定された時間間隔から決定された時間間隔の1パーセントを引いたもの)に設定することに対応し得る。
その結果、適応型ウォッチドッグモジュールは、その後ホストから受信したメモリ動作コマンドがホストタイムアウト値に近づくと、メモリデバイスをセルフリセットする場合がある。すなわち、適応型ウォッチドッグモジュールは、ホストがタイムアウトする前にメモリデバイスをリセットすることができる。場合によっては、適応型ウォッチドッグモジュールがメモリデバイスをリセットすると、メモリデバイスまたは適応型ウォッチドッグモジュールは、ウォッチドッグが開始したリセットについてホストに通知して、ホストタイムアウトタイマーをリセットし、タイムアウト時にホストがリセット信号を送信しないようにする。「タイムアウトする」、「タイムアウト」、または「タイムアウトしている」という用語は、実行中のタイマーが事前設定された値または量に達することを指すと理解されるべきである。閾値量は、ホストの特性(例えば、プロセッサのタイプ、またはホストで実行されているアプリケーションのタイプもしくは数)に基づいて事前定義できる。
いくつかの実装形態では、適応型ウォッチドッグモジュールは、メモリデバイスがメモリ動作を実行するのにかかる時間を追跡し、適応型ウォッチドッグモジュールのタイマー値を最長時間プラス閾値(例えば、デルタ値)に設定することができる。閾値量は、ホストの推定タイムアウト値から差し引く際に上記で使用した閾値量と同じでも異なっていてもよい。閾値量は、ホストの特性(例えば、プロセッサのタイプ、またはホストで実行されているアプリケーションのタイプもしくは数)に基づいて事前定義できる。閾値量は、事前定義された時間単位であってもよく、調整されるタイマー値のパーセンテージ値であってもよい。例えば、閾値量は、所与のパーセンテージ値(例えば、1パーセント)に設定され得、そのような状況では、タイマー値を最長時間プラス閾値に設定することは、タイマー値を最長時間の101%(つまり、最長時間に最長時間の1パーセントを加えたもの)に設定することに対応し得る。
例えば、適応型ウォッチドッグモジュールは、ホストから受信した特定のメモリデバイス動作のタイムスタンプを生成または取得できる。メモリデバイスの動作が完了した後、適応型ウォッチドッグモジュールは別のタイムスタンプを生成し、コマンドが受信されたときとコマンドが完了したときのタイムスタンプの差に基づいて、適応型ウォッチドッグモジュールがコマンドの待ち時間を決定することができる。適応型ウォッチドッグモジュールは、閾値数のメモリデバイス動作コマンドに対する待ち時間値を生成することができる。閾値数のメモリデバイス動作コマンドが実行された後、適応型ウォッチドッグモジュールは、生成された待ち時間値を取得し、そのような値の平均を計算して、メモリ待ち時間期間を決定することができる。あるいは、適応型ウォッチドッグモジュールは、生成されたすべての待ち時間値の最大値を識別し、識別された最大待ち時間値としてメモリ待ち時間期間を決定することができる。適応型ウォッチドッグモジュールは、適応型ウォッチドッグモジュールのタイマー値を、決定されたメモリ待ち時間に閾値を加えたもの(例えば、デルタ値)に設定することができる。決定されたメモリ待ち時間に閾値を加えたものは、調整されたメモリ待ち時間と呼ばれてもよい。結果として、適応型ウォッチドッグモジュールは、その後に受信されたメモリ動作コマンドが、メモリデバイスに発行された前のコマンドの最長または平均待ち時間期間の前に完了しない場合、メモリデバイスをセルフリセットすることができる。
いくつかの実装形態では、適応型ウォッチドッグモジュールは、異なるクラスのメモリ動作に対して異なるメモリ待ち時間を決定することができる。例えば、適応型ウォッチドッグモジュールは、書き込み動作を実行する最大または平均の待ち時間を表す第1のメモリ待ち時間を決定することができる。同様に、適応型ウォッチドッグモジュールは、読み取り動作を実行する最大または平均の待ち時間を表す第2のメモリ待ち時間を決定することができる。具体的には、あるクラスのコマンドは単一の読み取り動作に対応し、別のクラスのコマンドはブロックの読み取り動作に対応し、別のクラスのコマンドは単一の書き込み動作に対応し、別のクラスのコマンドはブロックの書き込み動作に対応し、別のクラスはブロック消去または単一消去に対応し、別のクラスは、所与の間隔(例えば、コマンドの1つ以上のタイプの頻度)内に受信された書き込み動作のセットに対応し得る。適応型ウォッチドッグモジュールは、異なるクラスのコマンドに優先順位を設定し、適応型ウォッチドッグモジュールのタイマー値の調整を、最も優先度の高いコマンドのクラスの待ち時間(閾値量によって調整される)に基づいて行うことができる。例えば、適応型ウォッチドッグモジュールは、書き込みコマンドの優先度が読み取りコマンドよりも高いと判断してもよい。このような状況では、適応型ウォッチドッグモジュールは、第2のメモリ待ち時間値の代わりに第1のメモリ待ち時間値を取得し、第1のメモリ待ち時間値に閾値量を追加してウォッチドッグタイマー値を調整された第1のメモリ待ち時間値に設定することによって第1のメモリ待ち時間値を調整することができる。いくつかの実装形態では、適応型ウォッチドッグモジュールは、ホストによって実行されている特定のアプリケーションに対して最もアクティビティが多いコマンドのクラスを識別する場合がある。このような状況では、適応型ウォッチドッグモジュールは、識別されたコマンドのクラスに関連付けられた優先度を上げてもよい。そのため、第2のクラスよりも第1のクラスの動作を多く実行する特定のアプリケーションは、適応型ウォッチドッグモジュールに、第2のクラスのコマンド待ち時間ではなく第1のクラスのコマンド待ち時間に基づいて適応型ウォッチドッグモジュールのタイマー値を調整するように影響を与えるか、またはそのように調整させることができる。
いくつかの実装形態では、適応型ウォッチドッグモジュールは、調整された推定ホストタイムアウト値(例えば、メモリ動作の受信と、ホストリセットの受信から閾値量を引いたものとの間の時間)を調整されたメモリ待ち時間(例えば、メモリ動作の受信と、メモリ動作の完了に閾値を加えたものとの間の平均または最大時間)と比較し得る。適応型ウォッチドッグモジュールは、ウォッチドッグタイマー値を2つの期間の最小値に設定することができる。具体的には、調整された推定ホストタイムアウト値が調整されたメモリ待ち時間よりも大きい場合、適応型ウォッチドッグモジュールは、ウォッチドッグタイマーを調整されたメモリ待ち時間になるように設定することができる。調整された推定ホストタイムアウト値が調整されたメモリ待ち時間以下である場合、適応型ウォッチドッグモジュールは、ウォッチドッグタイマーを調整された推定ホストタイムアウト値に設定することができる。
いくつかの実装形態では、適応型ウォッチドッグモジュールは、上記及び以下で説明する方法で、ホストタイムアウトリセット間隔及びメモリ動作待ち時間を継続的に監視及び決定することができる。適応型ウォッチドッグモジュールは、ホストタイムアウトリセット信号を受信するたびに、または閾値数のホストタイムアウトリセット信号の後に、適応型ウォッチドッグモジュールのタイマー値を適応させることができる。適応型ウォッチドッグモジュールは、閾値数のコマンドが実行されるたびにタイマー値を適応させることができる。いくつかの実装形態では、適応型ウォッチドッグモジュールは、適応型ウォッチドッグモジュールのタイマー値が最後に更新されてからの閾値期間の後にタイマー値を適応させることができる。いくつかの実装形態では、閾値期間の後(例えば、1週間または1回の完全なバッテリサイクル後、またはアプリケーションが閉じられた後)、適応型ウォッチドッグモジュールは、適応型ウォッチドッグモジュールのタイマー値をデフォルト値にリセットすることができる。デフォルト値は、適応型ウォッチドッグモジュールが製造されたときに適応型ウォッチドッグモジュールに設定された値に対応する場合がある。いくつかの実装形態では、適応型ウォッチドッグモジュールは、ホストに対して新しいソフトウェアアップデートが受信されたか、または新しいファームウェアがホストにインストールされたと判断することができ、それに応じて、適応型ウォッチドッグモジュールは、適応型ウォッチドッグモジュールのタイマー値をデフォルト値にリセットし得る。
モバイル電子デバイス(例えば、スマートフォン、タブレットなど)、自動車アプリケーションで使用する電子デバイス(例えば、自動車センサ、制御ユニット、運転支援システム、乗客の安全または快適システムなど)などの電子デバイス、及びインターネットに接続されたアプライアンスまたはデバイス(例えば、モノのインターネット(IoT)デバイスなど)は、とりわけ、電子デバイスのタイプ、使用環境、パフォーマンスの期待、及びそれに類するものに基づいて、さまざまな記憶のニーズを持っている。これらの電子デバイスは、それぞれが異なる記憶デバイスのニーズと動作を持つさまざまなアプリケーションを実行できる。一部のアプリケーションでは、記憶デバイス(例えば、メモリデバイス)に頻繁にアクセスする必要があり得る。このようなアプリケーションが記憶動作を実行する際に見られる待ち時間は、他のアプリケーションが見られる待ち時間を超える場合がある。待ち時間の違いにより、メモリデバイスウォッチドッグのタイムアウト値を固定すると、非効率的で不安定な動作になる可能性がある。具体的には、多くのメモリ動作があるアプリケーションの待ち時間が長くなる場合、ウォッチドッグタイマーの値が短すぎると、エラー状態がないときにメモリデバイスがセルフリセットを実行する可能性がある。一方、メモリ動作がほとんどないアプリケーションの待ち時間が短い場合、ウォッチドッグタイマーの値が長すぎると、メモリデバイスが障害またはクラッシュ状態を検出する前に、ホストがメモリデバイスをリセットする必要が生じる可能性がある。ホストがメモリデバイスをリセットするのを待つことは非効率的であり、ホストに負担をかける。いくつかの実施形態によれば、適応型ウォッチドッグモジュールは、メモリデバイスに結合された特定のホスト及びホスト上で実行される1つまたは複数のアプリケーションの特定のメモリニーズに応じて、ウォッチドッグモジュールのタイムアウト値を適応させることができる。これは、そのような固定ウォッチドッグタイマー値に起因する非効率性を低減することにより、典型的な固定ウォッチドッグタイマー値を超える技術的改善を提供する技術的解決策をもたらす。具体的には、適応型ウォッチドッグモジュールは、いくつかの実施形態によれば、ホストがタイムアウトしてデバイスをリセットする前に、それとは無関係に、メモリデバイスをセルフリセットまたはリセットする。すなわち、適応型ウォッチドッグモジュールは特定のホスト及びメモリデバイスの動作待ち時間に適応し、ホストが関与する前にメモリデバイスをリセットできるため、ホストはメモリデバイスのリセットに関与する必要はない。
この技術的改善により、デバイスが安全な動作状態にあるときにウォッチドッグがセルフリセットを実行する誤ったウォッチドッグ起動イベント(セルフリセットトリガー)を最小限に抑え、ホストがウォッチドッグの前にエラーを検出し、ウォッチドッグの前にリセット信号を発行するホスト検出型ウォッチドッグイベントを最小限に抑える。この技術的改善により、メモリデバイスが結合されるホストまたはターゲットの組み込みデバイスのプラットフォームに応じて、製造中に固定のウォッチドッグタイマー値を設定する必要もなくなる。
図1は、通信インターフェースを介して通信するように構成されたホスト105及びメモリデバイス110を含む環境100の例を示している。ホスト105またはメモリデバイス110は、IoTデバイス(例えば、冷蔵庫または他の機器、センサ、モータまたはアクチュエータ、移動通信デバイス、自動車、携帯電話、ドローンなど)などの様々な製品150に含まれて、製品150の処理、通信、または制御をサポートすることができる。
メモリデバイス110は、メモリコントローラ115と、例えば、1つまたは複数の個別のメモリダイ(例えば、3次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャの半導体メモリテクノロジでは、垂直構造が複数の層に積み重ねられ、結合されて物理ページを形成し、特定のフットプリント(つまりフォームファクタ)でメモリデバイス(例えば、記憶デバイス)の記憶密度を高める。一例では、メモリデバイス110は、ホスト105のディスクリートメモリまたは記憶デバイス構成要素であり得る。他の例では、メモリデバイス110は、集積回路(例えば、システムオンチップ(SOC)、ダイなど)の一部であり得、積み重ねられるか、そうでなければ、ホスト105の他の1つまたは複数の構成要素に含まれ得る。
1つまたは複数の通信インターフェースを使用して、メモリデバイス110と、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、ペリフェラル構成要素インターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、UFSインターフェース、eMMC(商標)インターフェース、または1つまたは複数の他のコネクタもしくはインターフェースなどのホスト105の他の1つまたは複数の構成要素との間でデータを転送することができる。ホスト105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダー、またはメモリデバイス110の外部にある1つまたは複数の他の電子デバイスを含むことができる。いくつかの例では、ホスト105は、図6のマシン600を参照して論じられる構成要素の一部または全部を有するマシンであり得る。データは、データが転送されている間(例えば、メモリアレイとの間での読み取りまたは書き込みの前に)データを一時的に格納するための1つまたは複数のラッチを含み得る入力/出力(I/O)バスを介して、メモリデバイス110と他の構成要素との間で転送され得る。
メモリコントローラ115は、ホスト105から命令を受信でき、メモリアレイのメモリセル、プレーン、サブブロック、ブロック、またはページのうちの1つ以上へのデータ転送(例えば、書き込みまたは消去)またはそれらからのデータ転送(例えば、読み取り)など、メモリアレイと通信できる。メモリコントローラ115は、とりわけ、1つまたは複数の構成要素または集積回路を含む回路またはファームウェアを含むことができる。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホスト105とメモリデバイス110との間に変換層を提供するように構成された1つまたは複数のメモリ制御ユニット、回路、制御回路、または構成要素を含むことができる。メモリコントローラ115は、メモリアレイ120との間でデータを転送するための1つまたは複数のI/O回路(及び対応するラッチ)、ライン、またはインターフェースを含むことができる。メモリコントローラ115は、メモリマネージャ125及びアレイコントローラ135を含むことができる。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つ以上のメモリセルへのデータの書き込み、メモリセルからのデータの読み取り、またはメモリセルの消去に関連付けられたメモリ動作を制御するように構成された回路または構成要素を含むことができる。メモリ動作は、例えば、ホスト105から受信された、または(例えば、摩耗レベリング、エラー検出または訂正などに関連して)メモリマネージャ125によって内部的に生成されたホストコマンドに基づくことができる。
アレイコントローラ135は、エラー訂正コード(ECC)構成要素140を含むことができ、これは、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つ以上のメモリセルへのデータの書き込みまたはメモリセルからのデータの読み取りに関連付けられたエラーを検出または訂正するように構成されたECCエンジンまたは他の回路を含むことができる。例えば、ECC構成要素140は、複数のメモリ動作の実行に関連付けられたビット誤り率(BER)を検出または計算することができる。BERは、I/Oバスのラッチで発生するビットエラー、コントローラ115の内部エラー、NANDアレイの1つ以上で発生するエラー、またはメモリデバイス110のマルチレベルセル(MLC)の任意の1つ以上に対応する場合がある。メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの完全性を維持し、または格納されたデータの完全性を維持(例えば、冗長RAIDストレージを使用するなど)しながら、データの様々な動作または記憶に関連付けられたエラー発生(例えば、ビットエラー、動作エラー、クラッシュ状態、ストール、ハングアップなど)を能動的に検出してそれから回復するように構成することができ、障害のあるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロックなど)を除去(例えば、廃棄)して将来のエラーを防ぐことができる。アレイコントローラ135は、検出されたBER情報を記憶及び追跡のためにメモリマネージャ125に送信することができる。メモリコントローラ115は、ホストから受信したメモリコマンドを追跡するコマンドキュー(図示せず)を含み得る。キュー内のコマンドは、先入れ先出し(FIFO)方式、スタック方式、順不同、優先順位に従って、または他の任意の適切な順序で、コントローラ115によって実行され得る。
説明されたメモリデバイス110は、メモリアレイ120に関連付けられた適応型ウォッチドッグモジュール160を含む。図2を参照してより詳細に論じられるように、適応型ウォッチドッグモジュールは、ウォッチドッグタイマー(図2の210)を含む。いくつかの実装形態では、メモリデバイス110のコントローラ115は、適応型ウォッチドッグモジュール160の機能を実装するように構成された制御回路を含み得る。他の実装形態では、適応型ウォッチドッグモジュール160は、説明された機能を実装するための独立した制御回路を含み得る。さらに他の実装形態では、制御回路は、適応型ウォッチドッグモジュール160とコントローラ115との間で分割されて、適応型ウォッチドッグモジュール160の説明された機能を実装することができる。図示の例では、アレイコントローラ135はメモリコントローラ115の一部を形成し、適応型ウォッチドッグモジュール160はアレイコントローラの一部を形成する。他の実装形態では、適応型ウォッチドッグモジュール160は、アレイコントローラ135の外部、及び/または外側であり得る。例えば、適応型ウォッチドッグモジュール160(またはその任意の個々の構成要素)は、環境100内の1つまたは複数の構成要素に結合された独立した構成要素であり得る。例えば、適応型ウォッチドッグモジュール160は、メモリデバイス110が実装されているものとは別のダイ上の別のデバイスであり得る。適応型ウォッチドッグモジュール160がアレイコントローラ135の外側に実装される場合、適応型ウォッチドッグモジュール160は、メモリデバイス上の構成要素(例えば、コマンドキュー)と通信して、メモリデバイス110からメモリ動作コマンドステータス情報を取得することができる。しかしながら、物理的に配置されたウォッチドッグタイマー210、及び存在する場合、適応型ウォッチドッグモジュール160の追加機能を提供する構造は、一部の従来型メモリデバイスと同様に、メモリアレイを制御し、ホストによって独立して実装されるものとは別個のウォッチドッグタイマー構造及び機能を提供するように機能する。適応型ウォッチドッグモジュール160の例示的な実装は、図2に関連して以下に説明される。
いくつかの実装形態では、適応型ウォッチドッグモジュール160は、メモリデバイス110とのホスト相互作用及びメモリデバイス110内のメモリコマンド待ち時間を監視することができる。適応型ウォッチドッグモジュール160は、適応型ウォッチドッグモジュール160のタイマーが適応型ウォッチドッグモジュール160のタイマー値に達すると、コントローラ135またはメモリデバイス110の他の任意の構成要素をリセットすることができる。いくつかの実装形態では、適応型ウォッチドッグモジュール160は、コントローラ135によって受信されるホストリセット信号を検出し得、それに応じて、適応型ウォッチドッグモジュール160は、コントローラ135のコマンドキューに格納された最も早いまたは最も遅いコマンドのタイムスタンプを検索し得る。適応型ウォッチドッグモジュール160は、ホストリセット信号のタイムスタンプと検索されたタイムスタンプとの間の差を計算して、ホストタイムアウト期間を推定することができる。適応型ウォッチドッグモジュール160は、推定ホストタイムアウト期間を閾値量だけ減らすことによって推定ホストタイムアウト期間を調整し、適応型ウォッチドッグモジュール160のタイマー値を調整された推定ホストタイムアウト期間に設定することができる。いくつかの実装形態では、適応型ウォッチドッグモジュール160は、閾値数のホストリセット信号が検出された後にそのような調整を実行することができる。
いくつかの実装形態では、適応型ウォッチドッグモジュール160は、所与のコマンドが完了した(コントローラ135のコマンドキューを終了した)ことを検出することができる。それに応じて、適応型ウォッチドッグモジュール160は、そのコマンドがいつキューに入った(ホストから受信された)かを表すタイムスタンプを取得し、そのタイムスタンプを所与のコマンドが完了した現在の時刻と比較して、コマンドの待ち時間を決定することができる。適応型ウォッチドッグモジュール160は、同様の方法で、他の多くのコマンドまたは閾値数のコマンドの待ち時間を計算し続けることができる。適応型ウォッチドッグモジュール160は、計算された待ち時間の中の平均または最大を識別して、メモリデバイス110の待ち時間(例えば、メモリデバイス上で動作する所与のアプリケーションの待ち時間)を決定することができる。適応型ウォッチドッグモジュール160は、決定された待ち時間を閾値量だけ増加させることによって決定された待ち時間を調整し、適応型ウォッチドッグモジュール160のタイマー値を調整された待ち時間に設定することができる。いくつかの実装形態では、適応型ウォッチドッグモジュール160は、コマンドのクラスに基づいて、または異なるコマンドのクラスに関連付けられた優先順位に基づいて、メモリ待ち時間を決定することができる。
いくつかの実装形態では、適応型ウォッチドッグモジュール160は、閾値時間が経過した後、新しいファームウェアがインストールされた後、新しいアプリケーションが起動された後、または他の任意の適切な期間にそのような調整を実行することができる。いくつかの実装形態では、適応型ウォッチドッグモジュール160は、調整された待ち時間を調整された推定ホストタイムアウト期間と比較し、適応型ウォッチドッグモジュール160のタイマー値を2つの期間の最小値(例えば、調整された待ち時間と調整された推定ホストタイムアウト期間のいずれか低い方の値)に設定することができる。
メモリマネージャ125は、とりわけ、様々なメモリ管理機能に関連付けられた複数の構成要素または集積回路などの回路またはファームウェアを含むことができる。本説明の目的のために、例示的なメモリ動作及び管理機能は、NANDメモリの文脈で説明される。当業者は、他の形態の不揮発性メモリが類似のメモリ動作または管理機能を有し得ることを認識するであろう。このようなNAND管理機能には、摩耗レベリング(例えば、ガベージコレクションや再生)、エラー検出(例えば、BER監視)または訂正、ブロックリタイアメント、または1つまたは複数の他のメモリ管理機能が含まれる。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信したコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連付けられたコマンドなど)に解析またはフォーマットするか、またはアレイコントローラ135もしくはメモリデバイス110の1つ以上の他の構成要素のためにデバイスコマンドを生成することができる(例えば、様々なメモリ管理機能を達成するために)。
メモリマネージャ125は、メモリデバイス110の1つ以上の構成要素に関連付けられた様々な情報(例えば、メモリコントローラ115に結合されたメモリアレイまたは1つまたは複数のメモリセルに関連付けられた様々な情報)を保持するように構成された一組の管理テーブル130を含むことができる。例えば、管理テーブル130は、メモリコントローラ115に結合されたメモリセルの1つ以上のブロックに対するブロックエイジ、ブロック消去カウント、エラー履歴、エラーパラメータ情報、ホストリセットタイムアウト値、メモリ動作コマンド待ち時間、または1つまたは複数のエラーカウント(例えば、書き込み動作エラーカウント、読み取りビットエラーカウント、読み取り動作エラーカウント、消去エラーカウントなど)に関する情報を含むことができる。特定の例では、エラーカウントの1つ以上の検出されたエラー(例えば、エラーパラメータ)の数が、閾値(例えば、許容エラー閾値)を超えている場合、ビットエラーは修正不可能なビットエラーと呼ばれることがある。管理テーブル130は、とりわけ、修正可能または修正不可能なビットエラーのカウントを保持することができる。管理テーブル130はまた、適応型ウォッチドッグモジュール160のタイマーの値が変更された回数、値が最後に変更された時刻、及び1つまたは複数のコマンドまたはリセット信号のタイムスタンプを記録、格納、及び監視することができる。
メモリアレイ120は、例えば、複数のデバイス、プレーン、サブブロック、ブロック、またはページに配置された複数のメモリセルを含むことができる。一実施例として、48GB TLC NANDメモリデバイスには、ページあたり18,592バイト(16,384+2208バイト)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。別の実施例として、32GB MLCメモリデバイス(セル当たり2ビットのデータを格納する(すなわち、4プログラマブル状態))には、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1024ページ、プレーンあたり548ブロック、デバイスあたり4プレーンを含むことができるが、対応するTLCメモリデバイスと同様に、必要な書き込み時間は半分で、プログラム/消去(P/E)サイクルは2倍である。他の例には、他の数または配置を含めることができる。いくつかの例では、メモリデバイスまたはその一部は、SLCモードで、または所望のMLCモード(TLC、QLCなど)で選択的に動作され得る。
動作中、データは通常、ページ単位でメモリデバイス110に書き込まれるか、またはメモリデバイス110から読み取られ、ブロック単位で消去される。しかし、1つまたは複数のメモリ動作(例えば、読み取り、書き込み、消去など)は、必要に応じて、より大きなまたはより小さなメモリセルのグループに対して実行することができる。メモリデバイス110のデータ転送サイズは通常ページと呼ばれ、一方でホストのデータ転送サイズは通常セクタと呼ばれる。
異なるタイプのメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができ、またはそれに関連付けられた異なる量のメタデータを必要とし得る。例えば、メモリデバイスタイプが異なればビットエラーレートも異なる可能性があり、このことにより、データページの整合性を確保するために必要なメタデータの量が異なる可能性がある(例えば、ビットエラーレートが高いメモリデバイスでは、ビットエラーレートが低いメモリデバイスよりもより多くのエラー訂正コードのバイトが必要になる場合がある)。例として、MLC NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりもビットエラーレートが高い場合がある。そのため、MLCデバイスは、対応するSLCデバイスよりも多くのメタデータバイトをエラーデータに必要とする場合がある。
NANDデバイスのメモリセルのブロックは、動作中にSLCモード(例えば、必ずしもキャッシュとしてではない)または複数のMLCモードのいずれかで動作するように再構成できる。その結果、さまざまなメモリ動作に関連付けられた待ち時間が、デバイスの動作中に変化する可能性がある。具体的には、所与のメモリデバイスの異なる動作モードは、ウォッチドッグタイマー値に影響を与える異なる待ち時間を有する可能性がある。なぜなら、所与のモードのメモリデバイスは、別のモードよりも大きいかまたは小さいコマンド待ち時間を許容できるはずだからである。具体的には、あるモードでは、メモリ動作コマンドの待ち時間が、別のモードのメモリ動作コマンドの待ち時間よりも長くなる場合がある。したがって、第1のモードの適応型ウォッチドッグモジュール160のウォッチドッグタイマー値は、第2のモードの適応型ウォッチドッグモジュール160のウォッチドッグタイマー値よりも大きくてもよい。適応型ウォッチドッグモジュール160は、現在の動作モードに関する指示をメモリデバイスから受信することができ、所与のモードに関連付けられた確立されたタイムアウト値に基づいてタイムアウト値を構成することができる。動作中、適応型ウォッチドッグモジュール160のタイムアウト値は、メモリデバイスが所与のモードで動作するときの1つまたは複数のアプリケーションのメモリ動作コマンド待ち時間の分析に基づいて変化し得る。
図2は、1つまたは複数の実施形態を実装することができる適応型ウォッチドッグモジュール160の例を示すブロック図である。適応型ウォッチドッグモジュール160は、ウォッチドッグタイマー210、メモリデバイスコマンドインデックス260、ホストタイムアウト記憶デバイス250、及び制御回路220を含み得る。ウォッチドッグタイマー210は、フリーランニングタイマー回路を含み得るか、またはタイマーがリセットされるかもしくは目標値に達するたびに、0または他のプリセット値から別の目標値へのカウントを開始するフリーランニングタイマーの機能を実装し得る。ウォッチドッグタイマー210のタイマーの設定は、目標値の値の設定を含む。インデックス260及びデバイス250は、任意の適切なメモリまたは記憶回路によって実装することができ、任意選択で、同じ物理的記憶デバイスに組み合わせることができる。制御回路220は、任意の適切な専用回路、プログラマブルデバイス、または汎用プロセッサなどのプロセッサによって実装され得、図4及び図5で論じられるプロセスに従って適応型ウォッチドッグモジュール160の機能を実行するように構成され得る。
適応型ウォッチドッグモジュール160は、ホストリセット信号240及びメモリデバイス動作コマンド242を受信することができる。ホストリセット信号240は、ホストデバイスから直接受信され得るか、またはホストリセット信号がホストから受信されたことを示すメモリコントローラまたはそのようなホストリセット信号に関連付けられたタイムスタンプによって提供され得る。メモリデバイス動作コマンド242は、適応型ウォッチドッグモジュール160に直接提供され得るか、またはコントローラもしくはメモリデバイスのコマンドキューによって提供され得る。コマンド242は、(データまたはコマンド自体ではなく)所与のコマンドのタイムスタンプ及びクラス、ならびにコマンドがホストから新たに受信されたか、またはメモリデバイスによって完了されたかの表示のみを含み得る。コマンド242は、ホストから受信されたコマンドのすべての内容を含み得、そのような状況では、適応型ウォッチドッグモジュール160は、コマンドを処理して、コマンドのクラスを抽出し、コマンドのタイムスタンプを生成し得る。
ウォッチドッグタイマー210は、フリーランニングタイマー回路及びタイマー値を含み得る。ウォッチドッグタイマー210は、制御回路220からリセット信号を受信するたびに、新しいコマンドを受信するたびに、またはコマンドがメモリデバイスによって実行されるのを完了するたびに、ゼロから時間をカウントし始めることができる。タイマー値に達すると、ウォッチドッグタイマー210は、制御回路220への信号または割り込みを生成することができる。それに応じて、制御回路220は、1つまたは複数のデバイスに、ウォッチドッグセルフリセット信号230を送信して、メモリコントローラ及び/または関連付けられたメモリデバイス110をリセットすることができる。いくつかの実装形態では、複数のウォッチドッグタイマー210が、適応型ウォッチドッグモジュール160に含まれ得る。そのような状況では、各ウォッチドッグタイマー210は、ウォッチドッグタイマー210に関連付けられたメモリデバイスのためのセルフリセット信号を生成することができる。複数のウォッチドッグタイマー210のそれぞれは、開示された方法で調整可能な同じまたは異なるウォッチドッグタイマー値を使用して動作することができる。
いくつかの実装形態では、コマンド242の受信に応じて、制御回路220は、コマンドのタイムスタンプを取得し、タイムスタンプとともにコマンドをメモリデバイスコマンドインデックス260に格納することができる。いくつかの実装形態では、制御回路220は、受信したコマンドの一意の識別子を生成し、その識別子を、インデックス260に記憶するために生成されたタイムスタンプに関連付けることができる。制御回路220は、閾値数のコマンドがインデックス260に格納されるまで、同様の方法でコマンド242を処理し続けることができる。制御回路220は、コマンド242を介して、所与のコマンド(または特定の識別子に関連付けられたコマンド)がメモリデバイスによる処理を完了したことを受信または検出すると、制御回路220は、完了したコマンドの新しいタイムスタンプを生成し、一致するコマンドのインデックス260を検索し、インデックス260に格納されている(コマンドが最初にホストから受信されたときの)タイムスタンプを新しいタイムスタンプと比較して、コマンドのコマンド待ち時間を計算することができる。制御回路220は、値を閾値量だけ増加させ、決定された待ち時間をインデックス260に格納することによって、計算された待ち時間を調整することができる。いくつかの実装形態では、制御回路220は、決定された待ち時間に関連付けられたコマンドのクラスを決定し、そのコマンドのクラスについてインデックス260に格納された待ち時間を更新することができる。例えば、制御回路220は、インデックス260に格納された待ち時間と、完了した最後のコマンドの決定された待ち時間との間の平均または最大を計算することができる。
いくつかの実装形態では、制御回路220は、コマンド242を分類し、インデックス260に格納されたそのクラスのコマンドに関連付けられた待ち時間を更新または変更することができる。いくつかの実装形態では、コマンドの各クラスは、インデックス260に格納された異なる優先度に関連付けられ得る。いくつかの実装形態では、制御回路220は、ホストによって実行されている異なるアプリケーションに応じて、異なるクラスに関連付けられた優先順位を変更することができる。
いくつかの実装形態では、制御回路220は、受信されているリセット信号240を検出することができる。リセット信号の検出に応じて、制御回路220は、適応型ウォッチドッグモジュール160を調整するためのプロセスを開始するために、閾値数の前のリセット信号が受信されたかどうかを判定することができる。いくつかの実装形態では、適応型ウォッチドッグモジュール160は、リセット信号240が受信されるたびに、適応型ウォッチドッグモジュール160タイマーを調整することができる。いずれの場合でも、制御回路220は、インデックス260を検索して、インデックス260に格納されている最も古いかまたは最も新しいコマンド(例えば、最も古いかまたは最も新しいタイムスタンプを有するコマンド)を識別することができる。制御回路220は、リセット信号240の新しいタイムスタンプを計算し、計算された新しいタイムスタンプを、インデックス260に格納された識別された最も古いかまたは最も新しいコマンドと比較することができる。この比較に基づいて、制御回路220は、ホストの推定ホストタイムアウト期間を決定することができる。制御回路220は、推定タイムアウト期間を閾値量だけ減少させることによって推定ホストタイムアウト期間を調整し、調整された推定ホストタイムアウト期間をホストタイムアウト記憶デバイス250に格納することができる。
いくつかの実装形態では、制御回路220は、デバイス250に格納された調整された推定ホストタイムアウト値またはインデックス260に格納された調整されたメモリデバイス待ち時間に基づいて、ウォッチドッグタイマー210のタイマー値を設定することができる。いくつかの実装形態では、制御回路220は、最も優先度の高いインデックス260に格納された待ち時間に基づいてタイマー値を設定することができる。いくつかの実装形態では、制御回路220は、タイマー値を、デバイス250に格納された調整された推定ホストタイムアウト値とインデックス260に格納された調整されたメモリデバイス待ち時間(または最も優先度の高い調整されたメモリデバイス待ち時間)との間の最小値に設定することができる。
図3は、複数のメモリセル304を有するメモリアレイ302、及びメモリアレイ302との通信を提供するか、またはメモリアレイ302上で1つまたは複数のメモリ動作を実行する1つまたは複数の回路または構成要素を含むメモリデバイス300の例示的なブロック図を示す。メモリデバイス300は、行デコーダ312、列デコーダ314、センスアンプ320、ページバッファ322、セレクタ324、入力/出力(I/O)回路326、及びメモリ制御ユニット330を含むことができる。
メモリアレイ302のメモリセル304は、第1のブロック302A及び第2のブロック302Bなどのブロックに配置することができる。各ブロックは、サブブロックを含むことができる。例えば、第1のブロック302Aは、第1のサブブロック302A及び第2のサブブロック302Aを含むことができ、第2のブロック302Bは、第1のサブブロック302B及び第2のサブブロック302Bを含むことができる。各サブブロックは、複数の物理ページを含むことができ、各ページは、複数のメモリセル304を含む。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックは複数のメモリセル304を有するとして示されているが、他の例では、メモリアレイ302は、より多いかまたはより少ないブロック、サブブロック、メモリセルなどを含むことができる。他の例では、メモリセル304は、複数の行、列、ページ、サブブロック、ブロックなどに配置され得、例えば、アクセスライン306、第1のデータライン310、あるいは1つまたは複数の選択ゲート、ソースラインなどを使用してアクセスされ得る。
メモリ制御ユニット330は、例えば、所望の動作(例えば、書き込み、読み取り、消去など)を示す1つまたは複数のクロック信号もしくは制御信号、あるいは1つまたは複数のアドレスライン316で受信されたアドレス信号(A0〜AX)を含む、制御ライン332で受信された1つまたは複数の信号もしくは命令に従って、メモリデバイス300のメモリ動作を制御できる。メモリデバイス300の外部の1つまたは複数のデバイス(例えば、図1に関して論じられたホスト)は、制御ライン332上の制御信号の値、またはアドレスライン316上のアドレス信号の値を制御できる。メモリデバイス300の外部のデバイスの例は、限定されないが、ホスト、メモリコントローラ、プロセッサ、あるいは図3に示されていない1つまたは複数の回路もしくは構成要素を含むことができる。
いくつかの実装形態では、メモリ制御ユニット330は、適応型ウォッチドッグモジュール160を含み得る。メモリ制御ユニット330は、メモリコントローラ115(図1)の機能の一部またはすべてを実装することができる。適応型ウォッチドッグモジュール160は、ウォッチドッグタイマー値に達したときに、メモリ制御ユニット330及びメモリデバイス300の任意の他の適切な構成要素においてセルフリセットをトリガするように構成され得る。
メモリデバイス300は、アクセスライン306及び第1のデータライン310を使用して、メモリセル304の1つ以上にデータの転送(例えば、書き込みまたは消去)またはメモリセル304の1つ以上からデータの転送(例えば、読み取り)をすることができる。行デコーダ312及び列デコーダ314は、アドレスライン316からアドレス信号(A0〜AX)を受信及びデコードでき、どのメモリセル304にアクセスするかを決定でき、上述したような、アクセスライン306(例えば、複数のワードライン(WL0〜WLm)の1つ以上)または第1のデータライン310(例えば、複数のビットライン(BL0〜BLn)の1つ以上)の1つ以上に信号を提供できる。
メモリデバイス300は、第1のデータライン310を使用してメモリセル304上のデータの値を決定する(例えば、読み取る)か、または書き込まれるデータの値を決定するように構成される、センスアンプ320などのセンス回路網を含むことができる。例えば、メモリセル304の選択されたストリングで、センスアンプ320の1つ以上は、メモリアレイ302内を選択されたストリングを通ってデータライン310に流れる読み取り電流に応じて、選択されたメモリセル304の論理レベルを読み取ることができる。
メモリデバイス300の外部の1つまたは複数のデバイスは、I/Oライン(DQ0〜DQN)308、アドレスライン316(A0〜AX)、または制御ライン332を使用してメモリデバイス300と通信できる。入力/出力(I/O)回路326は、例えば、制御ライン332及びアドレスライン316に従って、I/Oライン308を使用して、ページバッファ322またはメモリアレイ302の内外など、メモリデバイス300の内外にデータの値を転送できる。例えば、I/O回路326は、メモリアレイ302に書き込まれるデータ及びメモリアレイ302から1つまたは複数の外部デバイスによって読み取られるデータを一時的に格納するための1つまたは複数のラッチ328を含み得る。ページバッファ322は、データがメモリアレイ302の関連部分にプログラムされる前に、メモリデバイス300の外部の1つまたは複数のデバイスから受信したデータを格納できるか、または、データがメモリデバイス300の外部の1つまたは複数のデバイスに送信される前に、メモリアレイ302から読み取られたデータを格納できる。
列デコーダ314は、アドレス信号(A0〜AX)を受信して、1つまたは複数の列選択信号(CSEL1〜CSELn)にデコードできる。セレクタ324(例えば、選択回路)は、列選択信号(CSEL1〜CSELn)を受信し、メモリセル304から読み取られるか、またはメモリセル304にプログラムされるデータの値を表すページバッファ322内のデータを選択できる。選択されたデータは、第2のデータライン318を使用して、ページバッファ322とI/O回路326との間で転送できる。
メモリ制御ユニット330は、外部ソースまたは電源(例えば、内部または外部バッテリ、AC−DCコンバータなど)から、供給電圧(Vcc)334及び負の電源(Vss)336(例えば、地電位)などの正及び負の電源信号を受信できる。特定の実施例では、メモリ制御ユニット330は、正または負の電源信号を内部的に提供するためのレギュレータ328を含むことができる。
図4は、1つまたは複数の実施形態を実装することができる適応型ウォッチドッグモジュールのパラメータを確立するためのプロセス400のフローチャートである。410で、メモリ動作コマンドは、1回目にホストからメモリデバイスで受信される。例えば、適応型ウォッチドッグモジュール160は、メモリデバイスコマンド242を受信することができる。適応型ウォッチドッグモジュール160は、受信したコマンドのタイムスタンプを生成し、生成されたタイムスタンプをコマンドに関連してインデックス260(図2)に格納することができる。
420で、リセット信号は、ホストからメモリデバイスで1回目に続いて2回目に受信される。例えば、適応型ウォッチドッグモジュール160は、ホストから(直接的または間接的に)リセット信号240を受信することができる。適応型ウォッチドッグモジュール160は、リセット信号がいつ受信されたかを示すリセット信号のタイムスタンプを生成することができる。
430で、時間間隔が1回目と2回目との間で測定される。例えば、適応型ウォッチドッグモジュール160は、リセット信号に関連付けられた対応するコマンド(例えば、コマンドキューまたはインデックス260に格納された最も古いかまたは最も新しいコマンド)を識別し得る。適応型ウォッチドッグモジュール160は、識別されたコマンドのタイムスタンプとリセット信号のタイムスタンプとの間の差を計算して、ホストのタイムアウト間隔を推定することができる。
440で、ホストからリセット信号を受信することとは無関係に、メモリデバイスをその後リセットするためのタイマーが、測定された時間間隔に基づいて確立される。例えば、適応型ウォッチドッグモジュール160は、ウォッチドッグタイマー210の値(例えば、タイマー210がセルフリセット信号をトリガするタイマー210のフリーランニングカウンタによって到達される値)を、測定された時間間隔から閾値量を引いたものとして確立することができる。
図5は、1つまたは複数の実施形態を実装することができるホストタイムアウトイベント及びメモリ待ち時間に基づいて適応型ウォッチドッグモジュールのパラメータを確立するためのプロセス500のフローチャートである。510で、メモリ動作コマンドの完了待ち時間が識別される。例えば、適応型ウォッチドッグモジュール160は、コマンドが受信されたときに、タイムスタンプをメモリデバイスコマンドまたはコマンドのクラスに関連付けることができる。コマンドまたはコマンドのクラスが完了したと判定した後、適応型ウォッチドッグモジュール160は、別のタイムスタンプを生成し、新しいタイムスタンプを古いタイムスタンプと比較して、コマンドまたはコマンドのクラスのメモリ待ち時間を決定することができる。適応型ウォッチドッグモジュール160は、決定されたメモリ待ち時間を閾値量だけ増加させて、調整されたメモリ動作コマンド完了待ち時間を識別することによって、決定されたメモリ待ち時間を調整することができる。
520で、調整された推定ホストリセット時間間隔及び調整されたメモリ動作コマンド完了待ち時間が生成される。例えば、適応型ウォッチドッグモジュール160は、デバイス250から(コマンドが受信されたときとホストタイムアウトリセット信号が検出されたときとの差に基づいて以前に生成された)推定ホストタイムアウトを取得し、推定ホストタイムアウト値を閾値量だけ減らして、調整された推定ホストリセット時間間隔を生成することができる。適応型ウォッチドッグモジュール160は、決定されたメモリ動作コマンド完了待ち時間を閾値量だけ増加させて、調整されたメモリ動作コマンド完了待ち時間を生成することができる。
530で、調整された推定ホストリセット時間間隔は、調整されたメモリ動作コマンド完了待ち時間と比較される。
540で、調整された推定ホストリセット時間間隔が調整されたメモリ動作コマンド完了待ち時間よりも大きいかどうかに関して決定がなされる。調整されたホストリセット時間間隔が調整されたメモリ動作コマンド完了待ち時間よりも大きいと判断したことに応じて、プロセスは550に進み、それ以外の場合、プロセスは560に進む。
550で、メモリデバイスウォッチドッグタイマーは、調整されたメモリ動作コマンド完了待ち時間に設定される。例えば、適応型ウォッチドッグモジュール160は、調整されたメモリ動作コマンド完了待ち時間に基づいて、ウォッチドッグタイマー210のタイマー値を更新または変更することができる。
560で、メモリデバイスウォッチドッグタイマーは、調整された推定ホストリセット時間間隔に設定される。例えば、適応型ウォッチドッグモジュール160は、調整された推定ホストリセット時間間隔に基づいて、ウォッチドッグタイマー210のタイマー値を更新または変更することができる。
プロセス400及び500は、任意の制御回路によって実行され得るか、または専用回路(例えば、制御回路220(図2))によって実行され得る。プロセス400及び500の任意のステップは、図4及び図5に表される順序通りに実行されなくてもよく、または完全に省略されてもよい。
図6は、本明細書で論じられる技術(例えば、方法論)の任意の1つ以上が実行され得る例示的なマシン600のブロック図を示す。代替の実施形態では、マシン600は、スタンドアロンデバイスとして動作し得るか、または他のマシンに接続(例えば、ネットワーク化)され得る。ネットワーク化配備では、マシン600は、サーバクライアントネットワーク環境で、サーバマシン、クライアントマシン、またはその両方の能力で動作し得る。一実施例では、マシン600は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能し得る。マシン600は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによって実行されるアクションを指定する命令を(シーケンシャルにまたはその他の方法で)実行することが可能な任意のマシンであり得る。さらに単一のマシンしか示していないが、用語「マシン」は、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成などの本明細書に説明する方法論の任意の1つまたは複数の方法論を実行するために命令のセット(または複数のセット)を個別にまたは共同で実行するマシンの任意の集合体を含むと解釈されるものとする。
本明細書に記載される例は、論理、構成要素、デバイス、パッケージ、または機構を含み得るか、またはそれらによって動作し得る。回路網(circuitry)は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。回路網の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。回路網は、単独でまたは組み合わせて、動作時に特定のタスクを実行できる構成要素が含まれる。一実施例では、回路網のハードウェアは、特定の動作(例えば、ハードワイヤード)を実行するように不変に設計され得る。一実施例では、回路網のハードウェアは、特定の動作の命令をエンコードするために、物理的に修正された(例えば、磁気的、電気的、不変質量粒子の可動配置など)コンピュータ可読媒体を含む、可変的に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路など)を含み得る。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。この命令により、関係するハードウェア(例えば、実行ユニットまたはロード機構)は、可変接続を介してハードウェア内に回路網の構成要素を作成し、動作中に特定のタスクの一部を実行できる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他の構成要素に通信可能に結合される。一実施例では、物理的構成要素のいずれかが、複数の回路網の複数の構成要素で使用され得る。例えば、動作中、実行ユニットは、ある時点で第1の回路網の第1の回路で使用され、別の時点で第1の回路網の第2の回路によって、または第2の回路網の第3の回路によって再利用され得る。
マシン(例えば、コンピュータシステム)600(例えば、ホスト105、メモリデバイス110など)は、ハードウェアプロセッサ602(例えば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはメモリコントローラ115などのそれらの任意の組み合わせ)、メインメモリ604、及びスタティックメモリ606を含んでもよく、その一部またはすべてが、インターリンク(例えば、バス)608を介して互いに通信し得る。マシン600は、ディスプレイユニット610、英数字入力デバイス612(例えば、キーボード)、及びユーザインターフェース(UI)ナビゲーションデバイス614(例えば、マウス)をさらに含み得る。一実施例では、ディスプレイユニット610、入力デバイス612、及びUIナビゲーションデバイス614は、タッチスクリーンディスプレイである場合がある。マシン600は、記憶デバイス(例えば、ドライブユニット)621、信号生成デバイス618(例えば、スピーカ)、ネットワークインターフェースデバイス620、グローバルポジショニングシステム(GPS)センサ、コンパス、加速度計、もしくは他のセンサなどの1つまたは複数のセンサ616、及び1つまたは複数の適応型ウォッチドッグモジュール160をさらに含む場合がある。マシン600は、1つまたは複数の周辺デバイス(例えば、プリンタ、カードリーダなど)と通信するまたはそれらを制御するためのシリアル(例えば、ユニバーサルシリアルバス(USB)、パラレル、または他の有線または無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラ628を含み得る。
記憶デバイス621は、本明細書に説明する技術または機能の任意の1つ以上を実施するか、またはそれによって利用されるデータ構造または命令624(例えば、ソフトウェア)の1つ以上のセットが格納される、機械可読媒体622を含み得る。命令624はまた、マシン600によるその実行中に、メインメモリ604内、スタティックメモリ606内、またはハードウェアプロセッサ602内に、完全にまたは少なくとも一部が存在し得る。一実施例では、ハードウェアプロセッサ602、メインメモリ604、スタティックメモリ606、または記憶デバイスの1つまたは任意の組み合わせは、機械可読媒体622を構成する場合がある。
機械可読媒体622は、単一の媒体として示されているが、用語「機械可読媒体」は、1つまたは複数の命令624を格納するように構成された単一の媒体または複数の媒体(例えば、集中型もしくは分散型のデータベース、ならびに関連付けられたキャッシュ及びサーバ)を含む場合がある。
用語「機械可読媒体」は、マシン600による実行のための一時的または非一時的命令を格納、符号化、または運ぶことができ、マシン600に、本開示の技術のいずれか1つ以上を実行させる、またはそのような命令によって使用される、もしくはそのような命令と関連付けられるデータ構造を格納、符号化、または運ぶことができる任意の一時的または非一時的媒体を含む場合がある。非限定的な機械可読媒体の例には、固体メモリ、ならびに光学及び磁気媒体が含まれ得る。一実施例では、大容量の機械可読媒体は不変(例えば、静止)質量を有する複数の粒子を有する機械可読媒体を含む。したがって、大容量の機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な例は、半導体メモリデバイス(例えば、電気的プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM))などの不揮発性メモリ、及びフラッシュメモリデバイス、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROM及びDVD−ROMディスクを含み得る。
記憶デバイス621に格納された命令624(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、プロセッサ602が使用するためにメモリ604によってアクセスできる。メモリ604(例えば、DRAM)は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期記憶に適している記憶デバイス621(例えば、SSD)とは異なるタイプの記憶装置である。ユーザまたはマシン600が使用する命令624またはデータは、典型的には、プロセッサ602が使用するためにメモリ604にロードされる。メモリ604が一杯になると、メモリ604を補うために、記憶デバイス621からの仮想空間を割り当てることができるが、記憶デバイス621は、典型的には、メモリ604よりも遅く、書き込み速度は、典型的には、読み取り速度の少なくとも2倍遅いので、仮想メモリの使用は、(メモリ604、例えば、DRAMとは対照的に)記憶デバイスの待ち時間に起因するユーザ体験を大幅に低下させる可能性がある。さらに、仮想メモリのための記憶デバイス621の使用は、記憶デバイス621の使用可能な寿命を大幅に短縮する可能性がある。
仮想メモリとは対照的に、仮想メモリ圧縮(例えば、Linux(登録商標)カーネル機能「ZRAM」)は、記憶デバイス621へのページングを回避するために、メモリの一部を圧縮ブロックストレージとして使用する。ページングは、そのようなデータを記憶デバイス621に書き込む必要があるまで、圧縮されたブロックで行われる。仮想メモリ圧縮は、記憶デバイス621の摩耗を低減しながら、メモリ604の使用可能なサイズを増加させる。
モバイル電子デバイスまたはモバイル記憶用に最適化された記憶デバイスには、従来、MMCソリッドステート記憶デバイス(例:micro Secure Digital(microSD(商標))カードなど)が含まれる。MMCデバイスには、ホストデバイスとの複数のパラレルインターフェース(例えば、8ビットパラレルインターフェース)が含まれており、多くの場合、取り外し可能で、ホストデバイスから構成要素を分離する。対照的に、eMMC(商標)デバイスは回路基板に接続され、ホストデバイスの構成要素と見なされ、シリアルATA(商標)(シリアルAT(アドバンストテクノロジー)アタッチメント、またはSATA)ベースのSSDデバイスに匹敵する読み取り速度を備えている。ただし、仮想デバイスまたは拡張現実デバイスを完全に有効にする、ネットワーク速度の向上を利用するなど、モバイルデバイスのパフォーマンスに対する要求は増え続けている。この要求に応じて、記憶デバイスはパラレル通信インターフェースからシリアル通信インターフェースに移行した。コントローラやファームウェアを含むUFSデバイスは、専用の読み取り/書き込みパスを備えた低電圧差動信号(LVDS)シリアルインターフェースを使用してホストデバイスと通信し、読み取り/書き込み速度をさらに向上させる。
命令624はさらに、複数の転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)の任意の1つを利用するネットワークインターフェースデバイス620を介して伝送媒体を使用して通信ネットワーク626上で送信または受信され得る。通信ネットワークの実施例は、とりわけ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi−Fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11ファミリの規格、WiMax(登録商標)として知られるIEEE802.16ファミリの規格)、IEEE802.15.4ファミリの規格、ピアツーピア(P2P)ネットワークを含み得る。一実施例では、ネットワークインターフェースデバイス620は、通信ネットワーク626に接続するために1つまたは複数の物理的なジャック(例えば、Ethernet、同軸ジャック、もしくは電話ジャック)または1つまたは複数のアンテナを含み得る。一実施例では、ネットワークインターフェースデバイス620は、単一入力複数出力(SIMO)技術、複数入力複数出力(MIMO)技術、または複数入力単一出力(MISO)技術のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。用語「伝送媒体」は、マシン600による実行のための命令を格納、符号化、または運ぶことができる任意の無形媒体を含むと解釈されるものとし、そのようなソフトウェアの通信を容易にするためにデジタル通信信号またはアナログ通信信号もしくは他の無形媒体を含む。
上記の詳細な説明は、詳細な説明の一部を形成する添付図面に対する参照を含む。図面は、例示として、本発明を実施できる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも呼ばれる。そのような実施例は、図示または説明された要素に加えて要素を含む場合がある。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者らは、本明細書に図示または説明された特定の実施例(またはその1つまたは複数の態様)に関して、または他の実施例(またはその1つまたは複数の態様)に関して、図示または説明されたそれらの要素(またはその1つまたは複数の態様)の任意の組み合わせまたは変形を使用する実施例も企図する。
様々な実施例で、本明細書に記載の構成要素、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに格納された物理回路またはファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックプロセッサ、制御回路、デジタルシグナルプロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサまたは処理回路などの任意のタイプの計算回路を意味する。
本明細書に記載のいくつかの実施形態では、異なるドーピング構成を、ソース側選択ゲート(SGS)、制御ゲート(CG)、及びドレイン側選択ゲート(SGD)に適用することができ、これらのそれぞれは、この例では、ポリシリコンで形成されているか、少なくともポリシリコンを含み、その結果、これらの層(例えば、ポリシリコンなど)は、エッチング溶液にさらされたときに異なるエッチング速度を有する可能性がある。例えば、3D半導体デバイスにおいてモノリシックピラーを形成するプロセスでは、SGS及びCGは、凹みを形成し得るが、SGDは、凹みが少ないままであるか、または凹んでさえいない場合がある。したがって、これらのドーピング構成は、エッチング溶液(例えば、テトラメチルアンモニウムヒドロキシド(TMCH))を使用することによって、3D半導体デバイス内の別個の層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
本明細書で使用されるメモリセルの動作またはメモリ(またはメモリデバイス)動作の実行は、メモリセルまたはメモリ(またはメモリデバイス)からの読み取り、それへの書き込み、または消去を含む。メモリセルを意図された状態に置く動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
要素が別の要素の「上にある(on)」、別の要素に「接続している(connected to)」、または別の要素と「結合している(coupled with)」と呼ばれる場合、その要素は、他の要素の上に直接あり得るか、直接接続し得るか、または直接結合し得るか、あるいは介在する要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある(directly on)」、別の要素に「直接接続している(directly connected to)」、または別の要素と「直接結合している(directly coupled with)」と呼ばれる場合、介在する要素または層は存在しない。2つの要素がそれらを結ぶ線で図面に示されている場合、別段の指示がない限り、2つの要素は結合するか、または直接結合することができる。
モジュール(例えば、適応型ウォッチドッグモジュール)という用語は、説明された機能を実行するか、または実行するように構成されたソフトウェア及び回路の任意の組み合わせを指すことができることが理解されよう。モジュールは、プログラマブルデバイス、非プログラマブルデバイス、ASIC、PLD、FGPA、または説明された機能を実行するように構成された他の専用または特定の回路またはハードウェア要素を指すことができる。モジュールは、説明された機能を実行するように構成されたソフトウェア(例えば、コンピュータ可読命令、コード、またはコンピュータまたはプロセッサまたは制御回路上で実行するプログラム)を指すことができる。
本明細書に説明する方法の例は、少なくとも部分的に機械またはコンピュータに実装することが可能である。一部の実施例は、上記の例実施に説明したように方法を実施するために電子デバイスを構成するように動作可能な一時的または非一時的命令で符号化された一時的または非一時的コンピュータ可読媒体あるいは機械可読媒体を含み得る。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、様々な方法を実施するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つまたは複数の揮発性あるいは不揮発性の有形のコンピュータ可読媒体に有形に格納できる。これらの有形のコンピュータ可読媒体の例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、SSD、UFSデバイス、eMMCデバイスなどを含むことができる。
実施例
主題(例えば、方法またはシステム)の例(例えば、「実施例1」)は、1回目にメモリデバイスで、ホストからメモリ動作コマンドを受信することと、1回目に続いて2回目にメモリデバイスで、ホストからリセット信号を受信することと、1回目と2回目との間の時間間隔を測定することと、測定された時間間隔に基づいて、ホストからさらなるリセット信号を受信することとは無関係に、メモリデバイスをリセットするため、メモリデバイスのタイマーの遅延間隔を確立することと、を行う方法を含み得る。
実施例2では、実施例1の主題は、タイマーを時間間隔よりも小さい値に設定することによってタイマーを確立するように任意に構成することができる。
実施例3では、実施例1の主題は、時間間隔が第1の時間間隔であり、複数の時間間隔を測定することであって、該複数の時間間隔のそれぞれが所与のメモリ動作コマンドを受信するメモリデバイスと、所与のメモリ動作コマンドを完了するメモリデバイスとの間の時間を表す、該複数の時間間隔を測定することと、該複数の時間間隔の中で最も長いものを第2の時間間隔として識別することと、第1及び第2の時間間隔に基づいてタイマーを確立することと、を行うように任意に構成することができる。
実施例4では、実施例3の主題は、タイマーが第1及び第2の時間間隔に基づいて確立され、第1及び第2の時間間隔を調整することと、調整された第1及び第2の時間間隔のうちの最小時間間隔を決定することと、最小の時間間隔に基づいてタイマーを確立することと、を行うように任意に構成することができる。
実施例5では、実施例4の主題は、第1及び第2の時間間隔は、第1の時間間隔を第1の閾値量だけ減らすことと、第2の時間間隔を第2の閾値量だけ増やすことによって調整されるように任意に構成することができる。第1及び第2の閾値量は、同じでも異なっていてもよい。
実施例6では、実施例5の主題は、第1及び第2の閾値量のうちの少なくとも1つが、ホストの特性に基づいて決定されるように任意に構成することができる。
実施例7では、実施例3の主題は、異なるクラスのメモリ動作コマンドに関連付けられた待ち時間を表すインデックスを保持することと、異なるクラスのメモリ動作コマンドのそれぞれに優先順位を設定することと、最も優先度の高いメモリ動作コマンドに関連付けられた複数の時間間隔のうちの、ある時間間隔を第2の時間間隔として識別することと、を行うように任意に構成することができる。
実施例8では、実施例1の主題は、タイマーがメモリデバイスに関連付けられたウォッチドッグタイマーを含むように任意に構成することができる。
実施例9では、実施例1の主題は、閾値期間の後、またはホストへの変更の検出に応じて、タイマーをデフォルト値に設定するように任意に構成することができる。
実施例10では、実施例1の主題は、メモリ動作コマンドが、読み取り、書き込み、プログラム、及び消去のうちの少なくとも1つを含むように任意に構成することができる。
主題の実施例11は、タイマーと、制御回路とを備える、メモリデバイスであって、該制御回路は、1回目にメモリデバイスで、ホストからのメモリ動作コマンドを受信することと、1回目に続いて2回目にメモリデバイスで、ホストからリセット信号を受信することと、1回目と2回目の間の時間間隔を測定することと、測定された時間間隔に基づいて、ホストからさらにリセット信号を受信することとは無関係にメモリデバイスをリセットするためメモリデバイスのタイマーの遅延間隔を確立することと、を行うように構成されたメモリデバイスを含むことができる。
実施例12では、実施例11の主題は、制御回路が、タイマーを時間間隔よりも小さい値に設定することによってタイマーを確立するように任意に構成することができる。
実施例13では、実施例11の主題は、時間間隔が第1の時間間隔であり、制御回路が、複数の時間間隔を測定することであって、該複数の時間間隔のそれぞれが、所与のメモリ動作コマンドを受信するメモリデバイスと、所与のメモリ動作コマンドを完了するメモリデバイスとの間の時間を表す、該複数の時間間隔を測定することと、複数の時間間隔のうちの最も長いものを第2の時間間隔として識別することと、第1と第2の時間間隔に基づいてタイマーを確立することと、を行うように任意に構成することができる。
実施例14では、実施例13の主題は、タイマーが第1及び第2の時間間隔に基づいて確立され、制御回路が第1及び第2の時間間隔を調整することと、調整された第1及び第2の時間間隔のうちの最小または最短時間を決定することと、最小の時間間隔に基づいてタイマーを確立することと、を行うように任意に構成することができる。
実施例15では、実施例14の主題は、第1の時間間隔を第1の閾値量だけ減らすことと、第2の時間間隔を第2の閾値量だけ増やすことによって、第1及び第2の時間間隔が調整されるように任意に構成することができる。
実施例16では、実施例15の主題は、第1及び第2の閾値量のうちの少なくとも1つが、ホストの特性に基づいて決定されるように任意に構成することができる。
実施例17では、実施例13の主題は、制御回路が、異なるクラスのメモリ動作コマンドに関連付けられた待ち時間を表すインデックスを保持することと、異なるクラスのメモリ動作コマンドのそれぞれに優先順位を設定することと、最も優先度の高いメモリ動作コマンドに関連付けられた複数の時間間隔のうちの、ある時間間隔を第2の時間間隔として識別するように任意に構成することができる。
実施例18では、実施例11の主題は、タイマーがメモリデバイスに関連付けられたウォッチドッグタイマーを含むように任意に構成することができる。
実施例19では、実施例11の主題は、制御回路が、閾値期間の後、またはホストへの変更の検出に応じて、タイマーをデフォルト値に設定するように任意に構成することができる。
実施例20では、実施例11の主題は、メモリ動作コマンドが、読み取り、書き込み、プログラム、及び消去のうちの少なくとも1つを含むように任意に構成することができる。
主題(例えば、システムまたは装置)の実施例(例えば、「実施例21」)は、実施例1〜20のうちの任意の1つ以上における任意の部分の、任意の部分またはその組み合わせを、任意に組み合わせて、実施例1〜20の機能または方法のうちの任意の1つ以上における任意の部分を実行するための「手段」、またはマシンによって実行されたときに、実施例1〜20の機能または方法のうちの任意の1つ以上における任意の部分をマシンに実行させる命令を含む「機械可読媒体」(例えば、非一時的など)を含むことができる。
上記の説明は、例示を意図したものであり、限定的なものではない。本発明の範囲は、添付された特許請求の範囲に関して、そのような特許請求の範囲によって権利が与えられる均等物の全範囲とともに定められるべきである。

Claims (15)

  1. 1回目にメモリデバイスで、ホストからメモリ動作コマンドを受信することと、
    前記1回目に続いて2回目に前記メモリデバイスで、前記ホストからリセット信号を受信することと、
    前記1回目と前記2回目との間の時間間隔を測定することと、
    前記測定された時間間隔に基づいて、前記ホストからさらにリセット信号を受信することとは無関係に前記メモリデバイスをリセットするため前記メモリデバイスのタイマーの遅延間隔を確立することと、
    を含む、方法。
  2. 前記タイマーを確立することは、前記タイマーを前記時間間隔よりも小さい値に設定することを含む、請求項1に記載の方法。
  3. 前記時間間隔が第1の時間間隔であり、
    複数の時間間隔を測定することであって、前記複数の時間間隔のそれぞれは、所与のメモリ動作コマンド要求を受信する前記メモリデバイスと、前記所与のメモリ動作コマンドを完了する前記メモリデバイスとの間の時間を表す、前記測定することと、
    前記複数の時間間隔のうちの最も長いものを第2の時間間隔として識別することと、
    前記第1及び前記第2の時間間隔に基づいて前記タイマーを確立することと、
    をさらに含む、請求項1に記載の方法。
  4. 前記第1及び前記第2の時間間隔に基づいて前記タイマーを確立することは、
    前記第1及び前記第2の時間間隔を調整することと、
    前記調整された第1及び第2の時間間隔のうちの最小時間間隔を決定することと、
    前記最小時間間隔に基づいて前記タイマーを確立することと、
    を含む、請求項3に記載の方法。
  5. 前記第1及び第2の時間間隔を調整することは、
    前記第1の時間間隔を第1の閾値量だけ減らすことと、
    前記第2の時間間隔を第2の閾値量だけ増やすことと、
    を含む、請求項4に記載の方法。
  6. 前記第1及び第2の閾値量のうちの少なくとも1つが、前記ホストの特性に基づいて決定される、請求項5に記載の方法。
  7. 異なるクラスのメモリ動作コマンドに関連付けられた待ち時間を表すインデックスを保持することと、
    前記異なるクラスのメモリ動作コマンドのそれぞれに優先順位を設定することと、
    最も優先度の高い前記メモリ動作コマンドに関連付けられた前記複数の時間間隔のうちの、ある時間間隔を前記第2の時間間隔として識別することと、
    をさらに含む、請求項3に記載の方法。
  8. 前記タイマーが、前記メモリデバイスに関連付けられたウォッチドッグタイマーを含む、請求項1に記載の方法。
  9. 閾値期間の後、または前記ホストへの変更の検出に応じて、前記タイマーをデフォルト値に設定することをさらに含む、請求項1に記載の方法。
  10. 前記メモリ動作コマンドは、読み取り、書き込み、プログラム、及び消去のうちの少なくとも1つを含む、請求項1に記載の方法。
  11. タイマーと、
    制御回路と、
    を備える、メモリデバイスであって、
    前記制御回路は、
    1回目に前記メモリデバイスで、ホストからメモリ動作コマンドを受信することと、
    前記1回目に続いて2回目に前記メモリデバイスで、前記ホストからリセット信号を受信することと、
    前記1回目と前記2回目との間の時間間隔を測定することと、
    前記測定された時間間隔に基づいて、前記ホストからさらにリセット信号を受信することとは無関係に前記メモリデバイスをリセットするため前記メモリデバイスのタイマーの遅延間隔を確立することと、
    を行うように構成される、前記メモリデバイス。
  12. 前記タイマーを確立するように構成された前記制御回路は、前記タイマーを前記時間間隔よりも短い値に設定するようにさらに構成されている、請求項11に記載のメモリデバイス。
  13. 前記時間間隔は第1の時間間隔であり、前記制御回路は、
    複数の時間間隔を測定することであって、前記複数の時間間隔のそれぞれが、所与のメモリ動作コマンド要求を受信する前記メモリデバイスと、前記所与のメモリ動作コマンドを完了する前記メモリデバイスとの間の時間を表す、前記複数の時間間隔を測定することと、
    前記複数の時間間隔のうちの最も長いものを第2の時間間隔として識別することと、
    前記第1及び前記第2の時間間隔に基づいて前記タイマーを確立することと、
    を行うようにさらに構成される、請求項11に記載のメモリデバイス。
  14. 前記制御回路は、
    前記第1及び前記第2の時間間隔を調整することと、
    前記調整された第1及び第2の時間間隔のうちの最小時間間隔を決定することと、
    前記最小時間間隔に基づいて前記タイマーを確立することと、
    によって前記第1及び前記第2の時間間隔に基づいて前記タイマーを確立するように構成される、請求項13に記載のメモリデバイス。
  15. 前記制御回路は、
    前記第1の時間間隔を第1の閾値量だけ減らすことと、
    前記第2の時間間隔を第2の閾値量だけ増やすことと、
    によって、前記第1及び前記第2の時間間隔を調整するように構成され、
    前記調整された第1の時間間隔が前記調整された第2の時間間隔よりも小さいと判断したことに応じて、前記タイマーを前記調整された第1の時間間隔に設定し、
    前記調整された第2の時間間隔が前記調整された第1の時間間隔よりも小さいと判断したことに応じて、前記タイマーを前記調整された第2の時間間隔に設定する、
    請求項14に記載のメモリデバイス。
JP2020570550A 2018-06-18 2019-06-14 メモリデバイスの適応型ウォッチドッグ Ceased JP2021527890A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/010,940 US10990319B2 (en) 2018-06-18 2018-06-18 Adaptive watchdog in a memory device
US16/010,940 2018-06-18
PCT/US2019/037298 WO2019245917A1 (en) 2018-06-18 2019-06-14 Adaptive watchdog in a memory device

Publications (1)

Publication Number Publication Date
JP2021527890A true JP2021527890A (ja) 2021-10-14

Family

ID=68839943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020570550A Ceased JP2021527890A (ja) 2018-06-18 2019-06-14 メモリデバイスの適応型ウォッチドッグ

Country Status (6)

Country Link
US (2) US10990319B2 (ja)
EP (1) EP3807882A4 (ja)
JP (1) JP2021527890A (ja)
KR (2) KR102432930B1 (ja)
CN (1) CN112437960A (ja)
WO (1) WO2019245917A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990319B2 (en) 2018-06-18 2021-04-27 Micron Technology, Inc. Adaptive watchdog in a memory device
US10891179B2 (en) * 2018-10-22 2021-01-12 Western Digital Technologies, Inc. Data storage device with deadlock recovery capabilities
EP3742295A1 (en) * 2019-05-23 2020-11-25 NXP USA, Inc. Automatic firmware rollback
CN112231942B (zh) * 2020-12-15 2021-03-16 长沙树根互联技术有限公司 物模型处理方法、装置和电子设备
US11983423B2 (en) * 2021-03-17 2024-05-14 Micron Technology, Inc. Host recovery for a stuck condition
US20220374150A1 (en) * 2021-05-20 2022-11-24 Micron Technology, Inc. Adjustable timer component for semiconductor devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165415A (ja) * 2003-11-28 2005-06-23 Toshiba Corp 情報処理装置、システム起動方法、およびシステム起動プログラム
JP2007018177A (ja) * 2005-07-06 2007-01-25 Seiko Epson Corp 処理状態監視方法、処理状態監視プログラム、記録媒体および画像表示装置
WO2011128936A1 (ja) * 2010-04-14 2011-10-20 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP2015043237A (ja) * 2010-09-29 2015-03-05 株式会社東芝 メモリシステム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE140324T1 (de) * 1988-03-29 1996-07-15 Advanced Micro Devices Inc Zeitüberwachungseinrichtung
JPH11194963A (ja) * 1997-12-26 1999-07-21 Fujitsu Ltd コマンド実行監視方法、及び、コマンド実行監視装置
US6347084B1 (en) * 1998-05-28 2002-02-12 U.S. Philips Corporation Method of timestamp synchronization of a reservation-based TDMA protocol
US6048075A (en) * 1998-12-09 2000-04-11 Lai; Ten-Ta Sign box frame having cover board parallel rails, and plurality of transparent lamp holders and lamps for mounting on a wall
US6728911B1 (en) * 2000-11-16 2004-04-27 Utstarcom, Inc. System and method for testing memory systems
FR2844892B1 (fr) 2002-09-24 2005-05-27 St Microelectronics Sa Horloge de surveillance de microcontroleur
KR100566209B1 (ko) 2003-06-17 2006-03-29 삼성전자주식회사 이동통신 시스템에서 호 착신 방법
JP2005310244A (ja) * 2004-04-20 2005-11-04 Seiko Epson Corp 半導体集積回路装置、マイクロコンピュータ及び電子機器
JP4508732B2 (ja) 2004-06-11 2010-07-21 三菱電機株式会社 電子制御装置
US7167400B2 (en) 2004-06-22 2007-01-23 Micron Technology, Inc. Apparatus and method for improving dynamic refresh in a memory device
JP4393954B2 (ja) 2004-09-09 2010-01-06 Okiセミコンダクタ株式会社 マイクロコンピュータ
US8171192B2 (en) * 2005-09-20 2012-05-01 Qualcomm Incorporated Hardware-assisted device configuration detection
US8364860B2 (en) * 2007-09-27 2013-01-29 Nxp B.V. Data-processing system and data-processing method
KR20090053164A (ko) * 2007-11-22 2009-05-27 재단법인서울대학교산학협력재단 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법
KR20100010390A (ko) * 2008-07-22 2010-02-01 엘지전자 주식회사 마이크로컴퓨터와 마이크로컴퓨터의 제어방법
KR101949671B1 (ko) * 2012-06-28 2019-04-25 삼성전자 주식회사 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법
US9483325B2 (en) * 2012-09-28 2016-11-01 Hewlett Packard Enterprise Development Lp Synchronizing timestamp counters
US9564877B2 (en) 2014-04-11 2017-02-07 Qualcomm Incorporated Reset scheme for scan chains with asynchronous reset signals
US9093160B1 (en) * 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
KR101673303B1 (ko) * 2014-11-12 2016-11-22 현대자동차주식회사 와치독 제어 방법 및 장치
US20160155491A1 (en) * 2014-11-27 2016-06-02 Advanced Micro Devices, Inc. Memory persistence management control
US9569118B2 (en) * 2014-12-30 2017-02-14 International Business Machines Corporation Promoting consistent response times in a data storage system having multiple data retrieval mechanisms
US10019174B2 (en) * 2015-10-27 2018-07-10 Sandisk Technologies Llc Read operation delay
KR102560229B1 (ko) * 2016-06-29 2023-07-27 삼성전자주식회사 전자 시스템 및 이의 동작 방법
CN106933690A (zh) * 2017-02-27 2017-07-07 北京博纳电气股份有限公司 一种基于mcu的硬件看门狗实现方法
US10990319B2 (en) 2018-06-18 2021-04-27 Micron Technology, Inc. Adaptive watchdog in a memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165415A (ja) * 2003-11-28 2005-06-23 Toshiba Corp 情報処理装置、システム起動方法、およびシステム起動プログラム
JP2007018177A (ja) * 2005-07-06 2007-01-25 Seiko Epson Corp 処理状態監視方法、処理状態監視プログラム、記録媒体および画像表示装置
WO2011128936A1 (ja) * 2010-04-14 2011-10-20 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP2015043237A (ja) * 2010-09-29 2015-03-05 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
KR20220119509A (ko) 2022-08-29
WO2019245917A1 (en) 2019-12-26
CN112437960A (zh) 2021-03-02
US20210247936A1 (en) 2021-08-12
KR102432930B1 (ko) 2022-08-18
US20190384528A1 (en) 2019-12-19
KR20210008923A (ko) 2021-01-25
EP3807882A4 (en) 2022-03-30
US10990319B2 (en) 2021-04-27
US11537327B2 (en) 2022-12-27
EP3807882A1 (en) 2021-04-21

Similar Documents

Publication Publication Date Title
US11250918B2 (en) Preemptive idle time read scans
US11625176B2 (en) Managed NVM adaptive cache management
US11635899B2 (en) SLC cache management
US11520524B2 (en) Host adaptive memory device optimization
US11537327B2 (en) Adaptive watchdog in a memory device
US11348659B2 (en) Adjustable voltage drop detection threshold in a memory device
US11756638B2 (en) End of life performance throttling to prevent data loss
US10599362B2 (en) NAND flash thermal alerting
US20200356472A1 (en) Synchronizing nand logical-to-physical table region tracking
US11656794B2 (en) Host timeout avoidance in a memory device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221101

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230328