JP2019525356A - メモリシステムにおけるリンクエラー訂正 - Google Patents

メモリシステムにおけるリンクエラー訂正 Download PDF

Info

Publication number
JP2019525356A
JP2019525356A JP2019510446A JP2019510446A JP2019525356A JP 2019525356 A JP2019525356 A JP 2019525356A JP 2019510446 A JP2019510446 A JP 2019510446A JP 2019510446 A JP2019510446 A JP 2019510446A JP 2019525356 A JP2019525356 A JP 2019525356A
Authority
JP
Japan
Prior art keywords
read
data
write
protection code
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.)
Granted
Application number
JP2019510446A
Other languages
English (en)
Other versions
JP2019525356A5 (ja
JP6630869B2 (ja
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 JP2019525356A publication Critical patent/JP2019525356A/ja
Publication of JP2019525356A5 publication Critical patent/JP2019525356A5/ja
Application granted granted Critical
Publication of JP6630869B2 publication Critical patent/JP6630869B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/31Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)

Abstract

メモリサブシステムにおける従来のリンクエラー訂正技法は、I/O幅を広げること、またはバースト長を延ばすことのいずれかを含む。しかし、どちらの技法も欠点を有する。1つまたは複数の態様では、従来の技法に関連する欠点に対処するためにホストとメモリデバイスの両方にリンクエラー訂正を組み込むことが提案される。提案されたメモリサブシステムは、従来のメモリシステムのインターフェースアーキテクチャを維持することができるという点で有利である。さらに、リンクエラー訂正機能は、I/O幅を大きくすることもなく、バースト長を延ばすこともなく、提案されたメモリサブシステムに設けられる。

Description

関連出願の相互参照
本特許出願は、本出願の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる、2016年8月26日に出願された「LINK ERROR CORRECTION IN MEMORY SYSTEM」という名称の米国仮出願第62/380,104号の利益を主張する。
本開示の1つまたは複数の態様は概して、メモリシステムに関し、詳細にはメモリシステムにおけるリンクエラー訂正に関する。
ホストとメモリデバイスとの間のデータ転送においてエラーが生じることがある。これらのリンクエラーが、検出される場合があり、誤り訂正コード(ECC)をデータ転送に組み込むことによって訂正されることが多い。従来、ECCを実装するために2つの技法が使用されている。第1の従来の技法では、データとECCの両方を受け入れるために入出力(I/O)幅が大きくされる。第2の従来の技法では、データバースト長を延ばすことによってホストとメモリとの間でECCビットが転送される。
第1の従来の技法では、従来のサーバおよびコンピューティングシステムは一般に、I/O幅が72ビットのメモリモジュール(64ビットのデータおよび対応する8ビットのECC)を使用してメモリリンクおよびメモリセルアレイの信頼性を向上させる。図1は、メモリアレイ140を有するホストシステムオンチップ(SOC)110を含む従来のメモリサブシステム100の簡略図を示す。ホストSOC110は、ECCエンコーダ/デコーダ125を有するメモリコントローラ120とPHYブロック130とを含む。メモリアレイ140は、9つの8ビットメモリデバイス150を含む。各64ビットデータに8ビットECCを割り当てて、ホストSOC110とメモリセルアレイ140の両方においてビット誤りがあれば保護することができる。データは最初の8つのメモリデバイス150に書き込むことができ、ECCは、9番目のメモリデバイス150に書き込むことができる。
図に見られるように、従来のメモリ構成では追加的なメモリデバイスコストがかかる。従来のメモリ構成ではまた、より広いメモリチャネルルーティングが必要になることによってプリント回路板(PCB)領域コストが増大するとともに、9番目のメモリデバイス150が追加されることに起因してメモリ待機電力コストおよびメモリ有効電力コストが増大する。この追加的なメモリ構成は、性能に直接影響を与える。メモリ帯域幅は、所与の時間量当たりにいくつの有効ビットが転送されるかに相当する。しかし、追加のECCビットは信頼性を向上させるが、これらのビット自体はデータとしての値を有さない。したがって、第1の従来の技法は、I/O幅全体が有効なデータを転送するために使用されるわけではないという点でメモリサブシステムの性能に直接影響を与える。
図2は、従来のメモリサブシステム100の簡略図を示すが、この場合、図を簡略化するために1つのデータ(DQ)バイトのみを示している。メモリデバイス150は、I/Oブロック260と複数のメモリバンク270とを含む。図に見られるように、信号線は、集合的にリンク290と呼ばれ、ホストSOC110とメモリデバイス150との間でデータを交換するために使用される。リンク290は、
・ DQ[0:7]線:メモリとSOCとの間でデータを転送するためのDQバイト双方向バスと、
・ DM線:書込みデータ用のデータマスクと、
・ データCK線:書込みデータのストローブのためのクロック入力と、
・ 読取りストローブCK線:読取りデータタイミングと整合すべきクロック出力(SOCへのクロック入力)と、
・ CA[0:n]線:コマンドおよびアドレスと、
・ CA CK線:CAをフェッチするためのコマンドおよびアドレスクロック入力とを含む。
DM線がデータマスク反転(DMI)ピン関数、すなわち、データ反転またはデータマスクのいずれであってもよいことに留意されたい。DMIピン関数は、モードレジスタ設定に依存する。しかし、図2では、DMIピン関数は、図を簡略化するためにDM線として示されている。
図3Aは、従来のマスク書込み動作のタイミング図を示す。メモリコントローラ120は、メモリデバイス150にWRITEコマンドを発行する。いくらかの遅延の後、16回のバーストサイクルの各々を介してホストSOC110からメモリデバイス150に1バイト(8ビット)のデータが転送される。言い換えれば、128ビット書込みデータ(8ビットDQ×バースト長16)が転送される。図3Aでは、D0〜DFの各々が、8ビット(1バイト)の書込みデータDQ[0:7]が1回のバーストサイクルにおいて転送されることを表す。書込みデータは、いくつかのデータマスク(DM)活動によって転送される。この例では、各DQバイトをマスクするために16ビットDMが使用される。従来、これは書込み動作であるので読取りストローブクロック線はアイドル状態である。
図3Bは、従来の読取り動作のタイミング図を示す。メモリコントローラ120は、メモリデバイス150にREADコマンドを発行する。いくらかの遅延の後で、メモリデバイス150は、ホストSOC110に128ビット読取りデータ(8ビットDQ×バースト長16)を送ることによって応答する。この場合も、D0〜DFの各々が、1バイトの読取りデータDQ[0:7]が1回のバーストサイクルにおいて転送されることを表す。メモリデバイス150からの読取りストローブクロックは、ホストSOC110への入力クロックとして読取りデータとトグルする。これは読取り動作なのでDM線はアイドル状態である。
第2の従来の技法では、ECCコードを送信するためにバースト長が延ばされる。たとえば、バースト長は、16から18に延ばすことができ(BL16→BL18)、ECCビットは、DQビットを転送するのに使用されないバーストサイクルにおいてホストSOC110とメモリデバイス150との間で転送することができる。この従来の拡張データバースト長技法はまた、あらゆるサイクルが有効なデータを転送するために使用されるわけではないという点で性能に直接影響を及ぼす。
この発明の概要は、いくつかの例示的な態様の特徴を特定するものであり、開示される主題の排他的または包括的な説明ではない。特徴または態様がこの発明の概要に含まれるか、またはこの発明の概要から省略されるかは、そのような特徴の相対的重要性を示すものとして意図されていない。以下の詳細な説明を読み、その一部を形成する図面を見ることによって、さらなる特徴および態様が記載され、当業者に明らかになるであろう。
例示的なメモリデバイスが開示される。メモリデバイスは、メモリバンクと、メモリ側インターフェースと、メモリ側エンコーダと、メモリ側デコーダとを備えてもよい。メモリ側インターフェースは、リンクを介してホストからWRITEコマンドを受信し、リンクを介してホストから書込みデータおよび書込み保護コードを受信し、WRITEコマンドに応答して書込みデータをメモリバンクに記憶するように構成されてもよい。メモリ側インターフェースはまた、リンクを介してホストからREADコマンドを受信し、READコマンドに応答してメモリバンクから読取りデータを取り出し、読取りデータおよび読取り保護コードをリンクを介してホストに送るように構成されてもよい。メモリ側デコーダは、書込み保護コードに基づいて書込みデータがエラーを有するかどうかを検出するように構成されてもよく、メモリ側エンコーダは、メモリバンクから取り出された読取りデータに基づいて読取り保護コードを生成するように構成されてもよい。リンクは、複数のデータ線と、データマスク線と、読取りストローブクロック線とを備えてもよい。データマスク線は、マスク書込み動作において使用されてもよく、読取りストローブクロック線は、読取り動作におけるタイミングを生成するためにメモリデバイスによって使用されてもよい。メモリ側インターフェースは、書込みデータを受信し、読取りデータを複数のデータ線を介して送り、読取りストローブクロック線を介して書込み保護コードを受信し、読取り保護コードをデータマスク線を介して送るようにさらに構成されてもよい。
例示的なホストが開示される。ホストは、メモリコントローラと、ホスト側インターフェースと、ホスト側エンコーダと、ホスト側デコーダとを備えてもよい。メモリコントローラは、READコマンドおよびWRITEコマンドを発行するように構成されてもよい。ホスト側インターフェースは、WRITEコマンドをリンクを介してメモリコントローラからメモリデバイスに送り、書込みデータおよび書込み保護コードをリンクを介してメモリデバイスに送るように構成されてもよい。ホスト側インターフェースはまた、READコマンドをリンクを介してメモリコントローラからメモリデバイスに送り、READコマンドが送られた後リンクを介してメモリデバイスから読取りデータおよび読取り保護コードを受信し、読取りデータをメモリコントローラに供給するように構成されてもよい。ホスト側エンコーダは、書込みデータに基づいて書込み保護コードを生成するように構成されてもよく、ホスト側デコーダは、読取り保護コードに基づいて、読取りデータがエラーを有するかどうかを検出するように構成されてもよい。リンクは、複数のデータ線と、データマスク線と、読取りストローブクロック線とを備えてもよい。データマスク線は、マスク書込み動作において使用されてもよく、読取りストローブクロック線は、読取り動作におけるタイミングを生成するためにメモリデバイスによって使用されてもよい。ホスト側インターフェースは、書込みデータを送って読取りデータを複数のデータ線を介して受信し、書込み保護コードを読取りストローブクロック線を介して送り、読取り保護コードをデータマスク線を介して受信するようにさらに構成されてもよい。
例示的な方法が開示される。この方法は、ホストが、WRITEコマンドをリンクを介してメモリデバイスに送ることと、ホストが、書込みデータに基づいて書込み保護コードを生成することと、ホストが、書込みデータおよび書込み保護コードをリンクを介してメモリデバイスに送ることとを含む。この方法はまた、メモリデバイスが、書込み保護コードに基づいて、書込みデータがエラーを有するかどうかを検出することと、メモリデバイスが、WRITEコマンドに応答して書込みデータをメモリデバイスのメモリバンクに記憶することとを含む。リンクは、複数のデータ線と、データマスク線と、読取りストローブクロック線とを備えてもよい。データマスク線は、マスク書込み動作において使用されてもよく、読取りストローブクロック線は、読取り動作におけるタイミングを生成するためにメモリデバイスによって使用されてもよい。ホストは、書込みデータを複数のデータ線を介してメモリデバイスに送ってもよく、書込み保護コードを読取りストローブクロック線を介してメモリデバイスに送ってもよい。
別の例示的な方法が開示される。この方法は、ホストが、READコマンドをリンクを介してメモリデバイスに送ることと、メモリデバイスが、READコマンドに応答してメモリデバイスのメモリバンクから読取りデータを取り出すことと、メモリデバイスが、読取りデータに基づいて読取り保護コードを生成することと、メモリデバイスが、読取りデータおよび読取り保護コードをリンクを介してホストに送ることとを含んでもよい。この方法はまた、ホストが、読取り保護コードに基づいて、読取りデータがエラーを有するかどうかを検出することを含んでもよい。リンクは、複数のデータ線と、データマスク線と、読取りストローブクロック線とを備えてもよい。データマスク線は、マスク書込み動作において使用されてもよく、読取りストローブクロック線は、読取り動作におけるタイミングを生成するためにメモリデバイスによって使用されてもよい。メモリデバイスは、読取りデータを複数のデータ線を介してホストに送ってもよく、読取り保護コードをデータマスク線を介してホストに送ってもよい。
例示的な装置が開示される。この装置は、リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備えてもよい。リンクは、複数のデータ線と、データマスク線と、読取りストローブクロック線とを備えてもよい。データマスク線は、マスク書込み動作において使用されてもよく、読取りストローブクロック線は、読取り動作におけるタイミングを生成するためにメモリデバイスによって使用されてもよい。メモリデバイスは、リンクを介してホストからREADコマンドを受信し、READコマンドに応答してメモリデバイスのメモリバンクから読取りデータを取り出し、読取りデータに基づいて読取り保護コードを生成し、読取り保護コードをデータマスク線を介してホストに送るように構成されてもよい。読取り保護コードは、読取りデータの保護のためのパリティコードであってもよい。ホストは、READコマンドをリンクを介してメモリデバイスに送り、複数のデータ線を介してメモリデバイスから読取りデータを受信し、データマスク線を介してメモリデバイスから読取り保護コードを受信し、読取り保護コードに基づいて、読取りデータがエラーを有するかどうかを検出するように構成されてもよい。
例示的な装置が開示される。この装置は、リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備えてもよい。リンクは、複数のデータ線と、データマスク線と、読取りストローブクロック線とを備えてもよい。データマスク線は、マスク書込み動作において使用されてもよく、読取りストローブクロック線は、読取り動作におけるタイミングを生成するためにメモリデバイスによって使用されてもよい。ホストは、WRITEコマンドをリンクを介してメモリデバイスに送り、書込みデータに基づいて書込み保護コードを生成し、書込みデータを複数のデータ線を介してメモリデバイスに送り、書込み保護コードを読取りストローブクロック線を介してメモリデバイスに送るように構成されてもよい。書込み保護コードは、書込みデータの保護のためのパリティコードであってもよい。メモリデバイスは、リンクを介してホストからWRITEコマンドを受信し、複数のデータ線を介してホストから書込みデータを受信し、読取りストローブクロック線を介してホストから書込み保護コードを受信し、書込み保護コードに基づいて、書込みデータがエラーを有するかどうかを検出するように構成されてもよい。
添付の図面は、開示される主題の1つまたは複数の態様の例について説明する助けとするために提示され、例の限定ではなく、もっぱら例の例示のために提供される。
エラー訂正コードを処理するための追加のメモリデバイスを有する従来のメモリサブシステムの図である。 信号がホストとメモリデバイスとの間で交換される従来のメモリサブシステムの図である。 従来のメモリサブシステムにおける書込み動作のタイミング図である。 従来のメモリサブシステムにおける読取り動作のタイミング図を示す。 信号がホストとメモリデバイスとの間で交換される例示的なメモリサブシステムの図である。 例示的なメモリサブシステムにおける書込み動作のタイミング図である。 例示的なメモリサブシステムにおける読取り動作のタイミング図を示す。 データおよび対応する保護コードの例を示す図である。 データおよび対応する保護コードの例を示す図である。 書込み動作を実行するための例示的な方法のフローチャートである。 読取り動作を実行するための例示的な方法のフローチャートである。 メモリサブシステムが集積されたデバイスの例を示す図である。
主題の態様が、開示される主題の特定の例を対象とする以下の説明および関連する図面において提示される。開示される主題の範囲から逸脱することなく、代替実施形態が考案されてもよい。さらに、関連する詳細を不明瞭にしないように、よく知られている要素については詳細に説明せず、またはそのような要素を省略する。
「例示的」という語は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。「例示的」として本明細書で説明するいかなる実施形態も、他の実施形態よりも好ましい、または有利であると必ずしも解釈されるべきでない。同様に、「実施形態」という用語は、開示される主題のすべての実施形態が、論じられる特徴、利点、または動作モードを含むことを必要とするわけではない。
本明細書で使用する用語は、特定の例について説明するためのものにすぎず、限定を意図するものではない。本明細書で使用される単数形「a」、「an」、および「the」は、文脈が別段に明確に示さない限り、複数形も含むものとする。「備える」および/または「含む」という用語は、本明細書で使用されるとき、記載の特徴、整数、プロセス、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、整数、プロセス、動作、要素、構成要素、および/またはそのグループの存在または追加を除外しないことをさらに理解されよう。
さらに、多くの例について、たとえば、コンピューティングデバイスの要素によって実行されるべきアクションのシーケンスの観点から説明する。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行可能であることが認識されよう。さらに、本明細書で説明するこれらのアクションのシーケンスは、実行されると、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されるものと見なすことができる。したがって、様々な態様は、すべてが請求される主題の範囲内に入ると考えられるいくつかの異なる形で具現化されてもよい。加えて、本明細書で説明する例ごとに、任意のそのような例の対応する形態は、本明細書では、たとえば、説明するアクションを実行する「ように構成された論理」として記載される場合がある。
本開示の1つまたは複数の態様は、エラー検出コードおよび/またはエラー訂正コードによって高速メモリリンク(インターフェース)を保護するためにモバイルシステムまたはコンピューティングシステムにおける低出力メモリサブシステムに適用されてもよい。たとえば、1つまたは複数の態様が、モバイルチップセットまたはコンピューティングチップセットにおける次世代低出力DDR SPECおよびDDR PHYに関連付けられてもよい。
1つまたは複数の態様では、ホストとメモリデバイスの両方に符号化機能および復号機能(たとえば、ECC機能)を組み込むことが提案される。メモリデバイスならびにホストにそのような機能を組み込むことによって、従来の技法に関連するいくつかの問題またはすべての問題が対処される場合がある。まず、提案された技法は、追加のメモリデバイスを必要としない。このことは、追加のデバイスのコストが回避され、それによって、消費されるダイ面積が狭くなり、必要とされる電力が少なくなる。したがって、より多くのメモリを、有効なデータを同じダイ面積内に記憶することに充てることができる。第2に、バースト長を延ばす必要がなく、すなわち、各バーストサイクルがデータを転送するために使用されてもよい。このことは、いくつかのバーストサイクルをECCの転送専用に使用することの性能損失も回避されることを意味する。第3に、ホストとメモリデバイスとの間のリンクへの変更が必要なくなる。
図4は、ホスト410とメモリデバイス450とを含む提案されたメモリサブシステム400の一例を示す。これは、1つのデータ(DQ)バイトに対する単一のメモリデバイス450が示されているという点で簡略図である。しかし、単一のホスト410は任意の数のメモリデバイス450と通信してもよい。ホスト410(たとえば、システムオンチップSOC)は、メモリコントローラ420と、ホスト側インターフェース430(たとえば、メモリPHYブロック)と、ホスト側エンコーダ432と、ホスト側デコーダ434とを含んでもよい。
メモリコントローラ420は、READコマンドおよびWRITEコマンドをホスト側インターフェース430を通してメモリデバイス450に発行してもよい。WRITEコマンドが発行されたときに、メモリコントローラ420はまた書込みデータをホスト側インターフェース430に供給してもよい。READコマンドが発行されたときに、メモリコントローラ420はホスト側インターフェース430から読取りデータを受信してもよい。
書込み動作時には、ホスト側インターフェース430は、WRITEコマンドおよび書込みデータをリンク490を介してメモリデバイス450に送ってもよい。ホスト側エンコーダ432(たとえば、ECCエンコーダ)は、書込みデータに基づいて、書込み保護コードを生成してもよく、ホスト側インターフェース430はまた、書込み保護コードをリンク490を介してメモリデバイス450に送ってもよい。書込み保護コードは、ECCおよび/または書込みデータを保護するための他の種類のパリティコードであってもよい。すなわち、書込み保護コードは、メモリデバイス450が書込みデータ中に存在する場合があるエラーを検出し、場合によっては訂正するのを可能にしてもよい。たとえば、書込みデータのホスト410からメモリデバイス450への送信においてエラーが発生する場合がある。
別の態様では、ホスト側エンコーダ432は、書込みデータおよびデータマスク(DM)データに基づいて書込み保護コードを生成してもよい。このようにして、書込み保護コードは、書込みデータを保護することに加えてデータマスク(DM)ビットを保護してもよい。この態様では、書込み動作がマスキングを含まない場合、書込み保護コードは、すべてがゼロで埋められたDMビットによって生成されてもよい。
読取り動作時には、ホスト側インターフェース430は、READコマンドをリンク490を介してメモリデバイス450に送ってもよい。続いて、ホスト側インターフェース430は、リンク490を介してメモリデバイス450から読取りデータを受信し、受信された読取りデータをメモリコントローラ420に供給する。
ホスト側インターフェース430はまた、リンク490を介してメモリデバイス450から、読取りデータとともに読取り保護コードを受信してもよい。読取り保護コードは、ECCおよび/または読取りデータを保護するのに使用することができる他の種類のパリティコードであってもよい。ホスト側デコーダ434は、読み取られた保護コードに基づいて、受信された読取りデータが有効であるどうかを判定してもよい。言い換えれば、ホスト側デコーダ434は、読取りデータがエラーを有するかどうかを検出してもよい。さらに、ホスト側デコーダ434は、エラーが検出されたときに読取りデータを訂正してもよく、ホスト側インターフェース430は、訂正された読取りデータをメモリコントローラ420に供給することができる。
図4において、ホスト側エンコーダ432およびホスト側デコーダ434は、ホスト側インターフェース430に組み込まれるように示されている。これは、一例にすぎず、限定と見なされるべきではない。ホスト側エンコーダ432および/またはホスト側デコーダ434は、独立していてもよく、またはメモリコントローラ420などのホスト410内の他の構成要素に組み込まれてもよいと考えられる。さらに、ホスト側エンコーダ432およびホスト側デコーダ434は個別に示されているが、この2つは単一のデバイス内に実装されてもよい。さらに、ホスト側エンコーダ432および/またはホスト側デコーダ434が複数のデバイス内に実装されることも考えられる。そればかりでなく、ある態様では、ホスト側エンコーダ432および/またはホスト側デコーダ434の実装が複数の構成要素の間で分散されてもよい。
メモリデバイス450は、メモリ側インターフェース460(たとえば、入出力(I/O)ブロック)と、メモリバンク470と、メモリ側エンコーダ462と、メモリ側デコーダ464とを含んでもよい。書込み動作時には、メモリ側インターフェース460は、リンク490を介してホスト410からWRITEコマンドを受信してもよい。メモリ側インターフェース460は、リンク490を介してホスト410から書込みデータを受信してもよく、WRITEコマンドに応答してメモリバンク470内に書込みデータを記憶してもよい。
メモリ側インターフェース460はまた、リンク490を介してホスト410から、書込みデータとともに書込み保護コードを受信してもよい。上述のように、書込み保護コードは、ECCおよび/または他の種類のパリティコードであってもよい。メモリ側デコーダ464は、書込み保護コードに基づいて、受信された書込みデータが有効であるどうかを判定してもよい。すなわち、メモリ側デコーダ464は、書込みデータにエラーがあるかどうかを検出してもよい。さらに、メモリ側デコーダ464は、エラーが検出されたときに書込みデータを訂正してもよく、メモリ側インターフェース460は、訂正された書込みデータをメモリバンク470内に記憶することができる。
提案された技法では、追加のメモリデバイスが必要とされないことを想起されたい。ECCを記憶するために第9のメモリデバイス150を有する、図1に示された従来のメモリシステムとは異なり、提案された技法ではいずれのメモリデバイス450に書込み保護コードを記憶することも必要とされない。そればかりでなく、一態様では、すべてのメモリデバイス450が有効なデータを記憶してもよい。
読取り動作時には、メモリ側インターフェース460は、リンク490を介してホスト410からREADコマンドを受信してもよい。READコマンドに応答して、メモリ側インターフェース460は、メモリバンク470から読取りデータを取り出し、取り出された読取りデータをリンク490を介してホスト410に送ってもよい。
メモリ側エンコーダ462は、メモリバンク470から取り出された読取りデータに基づいて読取り保護コードを生成してもよい。代替として、メモリ側エンコーダ462は、読取りデータならびにゼロで埋められてもよいDMデータに基づいて読取り保護コードを生成してもよい。上述のように、読取り保護コードは、ECCおよび/または他の種類のパリティコードであってもよい。メモリ側インターフェース460は、読取り保護コードを読取りデータとともにリンクを介してホスト410に供給してもよい。
図4において、メモリ側エンコーダ462およびメモリ側デコーダ464は、メモリ側インターフェース460に組み込まれるように示されている。これは、一例にすぎず、限定と見なされるべきではない。メモリ側エンコーダ462および/またはメモリ側デコーダ464は、独立していてもよく、またはメモリデバイス450内の他の構成要素に組み込まれてもよいと考えられる。さらに、メモリ側エンコーダ462およびメモリ側デコーダ464は個別に示されているが、この2つは単一のデバイス内に実装されてもよい。さらに、メモリ側エンコーダ462および/またはメモリ側デコーダ464が複数のデバイス内に実装されることも考えられる。そればかりでなく、ある態様では、メモリ側エンコーダ462および/またはメモリ側デコーダ464の実装が複数の構成要素の間で分散されてもよい。
一態様では、ホスト側エンコーダ432およびメモリ側エンコーダ462は、同一のデータを供給されたときに同一の書込み保護コードおよび読取り保護コード(たとえば、同じECC)を生成するように動作してもよい。別の態様では、書込み保護コードが読取り保護コードと異なってもよいことも考えられる。しかし、メモリ側デコーダ464およびホスト側デコーダ434がそれぞれホスト側エンコーダ432およびメモリ側エンコーダ462に対して相補的に動作する限り、適切なデータ交換を行うことができる。
図4の提案されたメモリサブシステム400と図2の従来のメモリサブシステム100を比較すると、リンク490とリンク290が同一であってもよく、すなわち、ホスト410とメモリデバイス450との間のリンク490の構成にはいかなる変更も必要とされないことがわかる。すなわち、同じ信号線DQ[0:7]、DM、データCK、読取りストローブCK、CA[0:n]、およびCA CKがホスト410とメモリデバイス450との間で情報を交換するために使用されてもよい。同じ信号線を使用することができるので、リンク490に対するアーキテクチャ変更は必要とされない。
リンクアーキテクチャを変更することもなく、I/O幅を大きくすることもなく、かつバースト長を延ばすこともなく、ホスト410とメモリデバイス450との間で書込み保護コードおよび読取り保護コードがなお伝達されることが望まれる。従来のメモリシステムでは、書込み動作の間読取りストローブクロック線がアイドル状態のままであり(図3A参照)、読取り動作の間DM線がアイドル状態のままであることを想起されたい(図3B参照)。したがって、一態様では、読取りストローブクロック線を利用して書込み動作の間に書込み保護コードを転送し、DM線を利用して読取り動作の間に読取り保護コードを転送することが提案される。読取りストローブクロック線およびDM線を利用することによって、ホスト410とメモリデバイス450との間で書込み保護コードおよび読取り保護コードを転送するうえで追加の信号線は必要とされない。読取りデータおよび書込みデータは依然としてデータ(DQ)線を介して転送されてもよい。
図5Aは、マスク書込み動作の一例のタイミング図を示す。この例示的な図では、128ビット書込みデータ(8ビットDQ×バースト長16)がDQ線を介してホスト410からメモリデバイス450に転送されるものと仮定されてもよい。D0〜DFの各々が、8ビット(1バイト)の書込みデータDQ[0:7]が1回のバーストサイクルにおいて転送されることを表してもよい。この例では、書込みデータは、いくつかのデータマスク(DM)活動によって転送されるものと仮定される。たとえば、DQバイトの書込みデータをマスクするために16ビットDMが使用されてもよい。たとえば、4番目および9番目のDQバイト(D3およびD8)をマスクするために4番目および9番目のDMビット(M3およびM8)がセットされてもよい。マスキングのない通常の書込み動作の場合、すべてのDMビットがアンセットされ、すなわち、ゼロで埋められることに留意されたい。
ホスト側エンコーダ432は、書込み保護コードを生成してもよく(たとえば8ビットECC)、書込み保護コードは次いで、ホスト側インターフェース430によって読取りストローブクロック線上で転送されてもよい。ホスト側エンコーダ432は、メモリコントローラ420から受信した書込みデータに基づいて書込み保護コードを生成してもよい。たとえば、128ビット書込みデータを保護するために8ビット書込み保護コードが生成されてもよい。別の態様では、ホスト側エンコーダ432は、書込みデータに加えて、書込み保護コードをDMビットに基づいて生成してもよい。たとえば、合計で144ビット(128ビット書込みデータおよび16ビットDM)を保護するために8ビットECCが生成されてもよい。
したがって、通常書込み動作(マスキングなし)では、書込み保護コードは、128ビット書込みデータのみに基づいてもよい。代替として、通常書込み動作では、書込み保護コードは128ビット書込みデータおよびゼロで埋められたDMビットに基づいてもよい。マスク書込み動作では、DMデータの保護が重要ではない場合、書込み保護コードは書込みデータのみに基づいてもよい。そうでない場合、マスク書込み動作では、書込み保護コードは書込みデータおよびDMデータに基づいてもよい。
図5Aに見られるように、8ビットE[0:7]書込み保護コードはバーストサイクル8〜15に一致するように送信されてもよい。より一般的には、書込み保護コードは、バーストサイクル終了位置(たとえば、バーストサイクル15)が書込み保護コードの最後のビット(たとえば、E7)の送信と一致するように、バーストサイクルの後半部の間に送信されてもよい。この理由は、書込み保護コードを生成するのに時間がかかる場合があるからである。読取りデータ転送終了位置が読取り保護コード転送終了位置と一致するように書込み保護コードをバーストサイクルの後半部の間に転送することによって、バースト長を延ばす必要なしに書込み保護データを生成することに最大時間量を充てることができる。
もちろん、書込み保護コードの転送は、個々の書込み保護コードビットが利用可能になった直後に開始することができる。したがって、書込み保護コードの転送はバーストサイクルが終了する前に完了することができる。しかし、それにもかかわらず、書込み保護コードの転送がバーストサイクルが終了するまでに完了してバースト長を延ばすのを回避することが一般に好ましい。
図5Bは、読取り動作の一例のタイミング図を示す。メモリコントローラ420がREADコマンドをメモリデバイス450に発行すると、メモリデバイス450は、読取りデータをホスト410に送ることによって応答してもよい。この例示的な図では、128ビット読取りデータ(8ビットDQ×バースト長16)がDQ線を介してメモリデバイス450からホスト410に転送されるものと仮定されてもよい。D0〜DFの各々が、8ビット(1バイト)の読取りデータDQ[0:7]が1回のバーストサイクルにおいて転送されることを表してもよい。
メモリ側エンコーダ462は、読取り保護コード(たとえば、8ビットECC)を生成してもよく、読取り保護コードは次いで、メモリ側インターフェース460によってDM線を通して転送されてもよい。メモリ側エンコーダ462は、メモリバンク470から取り出された読取りデータに基づいて読取り保護コードを生成してもよい。たとえば、8ビット読取り保護コードは、128ビット読取りデータを保護するために生成されてもよい。別の態様では、読取り保護コードは、合計で144ビット(128ビット書込みデータおよびゼロで埋められた16ビットDM)を保護するために生成されてもよい。
8ビットE[0:7]読取り保護コードはバーストサイクル8〜15に一致するように転送されてもよい。より一般的には、読取り保護コードは、バーストサイクル終了位置(たとえば、バーストサイクル15)が読取り保護コードの最後のビット(たとえば、E7)と一致するように、バーストサイクルの後半部の間に転送されてもよい。読取りデータ転送終了位置が読取り保護コード転送終了位置と一致するように読取り保護コードをバーストサイクルの後半部の間に転送することによって、バースト長を延ばす必要なしに読取り保護コードを生成することに最大時間を充てることができる。
読取り保護コードの転送は、個々の読取り保護コードビットが生成された直後に開始することができる。したがって、読取り保護コードの転送はバーストサイクルが終了する前に完了することができる。しかし、それにもかかわらず、読取り保護コードの転送がバーストサイクルが終了するまでに完了してバースト長を延ばすのを回避することが一般に好ましい。
図6Aは、データ(たとえば、読取り/書込みデータ)および対応する保護コード(たとえば、読取り/書込み保護コード)の一例を示す。この例では、144ビットデータ(128ビット読取り/書込みデータ(d0〜d7F)+16ビットDMデータ(M0〜MF))を保護するために8ビット保護コード(E0〜E7)(たとえば、ECCビット)が使用されると仮定されてもよい。上述のように、通常の読取り/書込み動作についてはDMビットはすべてゼロで埋められてもよい。これは、一例にすぎない。保護コードによって任意の数のデータビット(たとえば、読取り/書込みデータビットとマスキングビットの任意の組合せ)が保護されてもよい。
保護コード用のビットの数は、所望の保護のレベル(たとえば、エラー検出および訂正)に応じて変更することもできる。図6Bは、データ、DMデータ、および対応する保護コードの別の例を示す。この例では、9つのECCビットが128ビットデータ(たとえば、読取り/書込みデータ)を保護するためのものであってもよく、6つのECCビットが16ビットDMデータを保護するためのものであってもよい。したがって、この例では、15ビットECC(E0〜EE)コードが転送されてもよい。
図7は、書込み動作を実行するための例示的な方法700のフローチャートを示す。この方法700は、マスク書込みおよび/または通常書込みに適用されてもよい。この図では、ホスト410がブロック710〜730を実行してもよく、メモリデバイス450がブロック740〜780を実行してもよい。ホスト側では、ブロック710において、メモリコントローラ420はWRITEコマンドをホスト側インターフェース430を通してメモリ側に発行してもよい。ブロック720において、ホスト側エンコーダ432は、メモリコントローラ420によって供給された書込みデータに基づいて書込み保護コードを生成してもよい。代替として、ホスト側エンコーダ432は、書込みデータおよびDMデータを保護するために書込み保護コードを生成してもよい。ブロック730において、ホスト側インターフェース430は、書込みデータおよび書込み保護コード(たとえば、ECC)をメモリ側に送ってもよい。書込みデータは、DQ線を介して送られてもよく、書込み保護コードは、読取りストローブクロック線を介して送られてもよい。
メモリ側では、ブロック740において、メモリ側インターフェース460がホスト側からWRITEコマンドを受信してもよい。その後、ブロック750において、メモリ側インターフェース460はホスト側から(たとえば、DQ線を介して)書込みデータおよび(たとえば、読取りストローブクロック線を介して)書込み保護コードを受信してもよい。ブロック760において、メモリ側デコーダ464は、書込み保護コードに基づいて書込みデータにエラーがあるかどうかを検出してもよい。代替的に、メモリ側デコーダ464は、書込み保護コードに基づいて書込みデータおよび/またはDMデータにエラーがあるかどうかを検出してもよい。ブロック770において、メモリ側デコーダ464は、たとえば、何らかのビットエラーが検出されたときに、必要に応じて書込みデータを訂正してもよい。ブロック780において、メモリ側インターフェース460は、書込みデータをメモリバンク470内に記憶してもよい。メモリ側デコーダ464が書込みデータを訂正する場合、訂正された書込みデータはメモリバンク470内に記憶されてもよい。
図8は、読取り動作を実行するための例示的な方法800のフローチャートを示す。この図では、ホスト410がブロック810〜850を実行してもよく、メモリデバイス450がブロック850〜890を実行してもよい。メモリ側では、ブロック860において、メモリ側インターフェース460がホスト側からREADコマンドを受信してもよい。ブロック870において、メモリ側インターフェース460は、メモリバンク470から読取りデータを取り出してもよい。ブロック880において、メモリ側エンコーダ462は、取り出された読取りデータに基づいて読取り保護コードを生成してもよい。代替として、メモリ側エンコーダ462は、読取りデータおよびDMデータを保護するために読取り保護コードを生成してもよく、DMデータはゼロで埋められてもよい。ブロック890において、メモリ側インターフェース460は、読取りデータおよび読取り保護コード(たとえば、ECC)をホスト側に送ってもよい。読取りデータは、DQ線を介して送られてもよく、読取り保護コードは、DM線を介して送られてもよい。
ホスト側では、ブロック810において、メモリコントローラ420はREADコマンドをホスト側インターフェース430を通してメモリ側に発行してもよい。その後、ブロック820において、ホスト側インターフェース430はメモリ側から(たとえば、DQ線を介して)読取りデータおよび(たとえば、DM線を介して)読取り保護コードを受信してもよい。ブロック830において、ホスト側デコーダ434は、読取り保護コードに基づいて読取りデータにエラーがあるかどうかを検出してもよい。代替的に、ホスト側デコーダ434は、読取り保護コードに基づいて読取りデータおよび/またはDMデータにエラーがあるかどうかを検出してもよい。ブロック840において、ホスト側デコーダ434は、たとえば、何らかのビットエラーが検出されたときに、必要に応じて読取りデータを訂正してもよい。ブロック850において、ホスト側インターフェース430は、読取りデータをメモリコントローラ420に供給してもよい。ホスト側デコーダ434が読取りデータを訂正する場合、訂正された読取りデータはメモリコントローラ420に供給されてもよい。
具体的には示されていないが、ホスト410は、複数のメモリデバイス450と通信してもよい。方法700または方法800のすべてのブロックが実行される必要があるとは限らないことに留意されたい。また、方法700のブロックおよび/または方法800のブロックは、任意の特定の順序において実行される必要はない。
図9は、前述のメモリサブシステム400と統合される場合がある様々な電子デバイスを示す。たとえば、小さいフォームファクタ、極端なロープロファイルを必要とするモバイルフォンデバイス902、ラップトップコンピュータデバイス904、端末デバイス906、ならびにウェアラブルデバイス、ポータブルシステムは、本明細書で説明するメモリサブシステム400を組み込んだデバイス/パッケージ900を含んでもよい。デバイス/パッケージ900は、たとえば、本明細書で説明する集積回路、ダイ、集積デバイス、集積デバイスパッケージ、集積回路デバイス、デバイスパッケージ、集積回路(IC)パッケージ、パッケージオンパッケージデバイス、システムインパッケージデバイスのいずれかであってよい。図9に示されるデバイス902、904、906は例にすぎない。また、他の電子デバイスは、限定はしないが、モバイルデバイス、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、全地球測位システム(GPS)対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、メータ読取り機器などの定置データユニット、通信デバイス、スマートフォン、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、サーバ、ルータ、自動車車両(たとえば、自律走行車両)内に実装された電子デバイス、またはデータもしくはコンピュータ命令を記憶し、もしくは取り出す任意の他のデバイス、あるいはそれらの任意の組合せを含むデバイス(たとえば、電子デバイス)のグループを含むデバイス/パッケージ900を特徴とする場合がある。
提案されるメモリサブシステムの1つまたは複数の態様の利点の包括的でないリストは次の通りである。
・ メモリ帯域幅損失およびコストへの影響なしにデータ保護(たとえば、ECC)を高速メモリリンクに適用することの信頼性を向上させる。
・ 追加のメモリデバイスが必要とされない。
・ 低出力メモリピンカウントおよびパッケージ互換性を維持する。
当業者は、情報および信号が、様々な異なる技術および技法のいずれかを使用して表されてもよいことを諒解するであろう。たとえば、上記の説明全体にわたって言及されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
さらに、本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装されてもよいことを当業者は理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、および方法について、その機能の点で上記において全般的に説明した。そのような機能が、ハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例と、システム全体に課される設計制約とによって決まる。当業者は説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきでない。
本明細書で開示する例に関して説明する方法、シーケンス、および/またはアルゴリズムは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはその2つの組合せにおいて直接具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサと結合される。代替として、記憶媒体は、プロセッサと一体であることがある。
したがって、一態様は、上述のデバイスのいずれかを具体化するコンピュータ可読媒体を含むことができる。したがって、開示される主題の範囲は、示される例に限定されず、本明細書で説明する機能を実施するためのいずれの手段も含まれる。
上記の開示は例示的な例を示すが、本明細書では、添付の特許請求の範囲によって定義されるように、開示される主題の範囲から逸脱することなく、様々な変更および修正が行うことができることに留意されたい。本明細書で説明する例による方法クレームの機能、プロセス、および/または動作は、特定の順序で実行される必要はない。さらに、開示される主題の要素が単数形で説明または特許請求され得るが、単数形への限定が明示的に述べられるのでない限り、複数形が企図される。
100 従来のメモリサブシステム
110 ホストSOC
120 メモリコントローラ
125 ECCエンコーダ/デコーダ
130 PHYブロック
140 メモリアレイ
150 メモリデバイス
260 入出力ブロック
270 メモリバンク
290 リンク
400 メモリサブシステム
410 ホスト
420 メモリコントローラ
430 ホスト側インターフェース
432 ホスト側エンコーダ
434 ホスト側デコーダ
450 メモリデバイス
460 メモリ側インターフェース
462 メモリ側エンコーダ
464 メモリ側デコーダ
470 メモリバンク
490 リンク
902 モバイルフォンデバイス
904 ラップトップコンピュータデバイス
906 端末デバイス

Claims (30)

  1. メモリデバイスであって、
    メモリバンクと、
    リンクを介してホストからWRITEコマンドを受信し、
    前記リンクを介して前記ホストから書込みデータおよび書込み保護コードを受信し、
    前記WRITEコマンドに応答して前記書込みデータを前記メモリバンクに記憶し、
    前記リンクを介して前記ホストからREADコマンドを受信し、
    前記READコマンドに応答して前記メモリバンクから読取りデータを取り出し、
    前記読取りデータおよび読取り保護コードを前記リンクを介して前記ホストに送る
    ように構成されたメモリ側インターフェースと、
    前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出するように構成されたメモリ側デコーダと、
    前記メモリバンクから取り出された前記読取りデータに基づいて前記読取り保護コードを生成するように構成されたメモリ側エンコーダとを備え、
    前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
    前記メモリ側インターフェースは、
    前記書込みデータを受信し、前記読取りデータを前記複数のDQ線を介して送ることと、
    前記読取りストローブクロック線を介して前記書込み保護コードを受信することと、
    前記読取り保護コードを前記DM線を介して送ることと
    を行うように構成される
    メモリデバイス。
  2. 前記書込み保護コードおよび/または前記読取り保護コードはパリティコードを含む、請求項1に記載のメモリデバイス。
  3. 前記メモリ側デコーダは、前記書込みデータにおいて前記エラーが検出されたときに前記書込みデータを訂正するように構成され、それによって、前記メモリ側インターフェースが前記訂正された書込みデータを前記メモリバンクに記憶する、請求項1に記載のメモリデバイス。
  4. 前記メモリ側インターフェースは、前記DM線を介して前記ホストからDMデータを受信するように構成され、
    前記メモリ側デコーダは、前記書込み保護コードに基づいて前記書込みデータおよび/または前記DMデータが前記エラーを有するかどうかを検出するように構成される、請求項1に記載のメモリデバイス。
  5. 前記メモリ側エンコーダは、前記読取りデータに加えて、前記読取り保護コードをゼロで埋められたDMマスクに基づいて生成するように構成される、請求項1に記載のメモリデバイス。
  6. 前記メモリ側インターフェースは、前記読取りデータの転送終了位置が前記読取り保護コードの転送終了位置と一致するように前記読取りデータおよび前記読取り保護コードを送るように構成される、請求項1に記載のメモリデバイス。
  7. 前記書込み保護コードおよび前記読取り保護コードの一方または両方が誤り訂正コード(ECC)である、請求項1に記載のメモリデバイス。
  8. 前記書込み保護コードは前記メモリデバイスに記憶されない、請求項1に記載のメモリデバイス。
  9. 音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスからなるグループから選択されたデバイス内に組み込まれる、請求項1に記載のメモリデバイス。
  10. ホストであって、
    READコマンドおよびWRITEコマンドを発行するように構成されたメモリコントローラと、
    前記WRITEコマンドをリンクを介して前記メモリコントローラからメモリデバイスに送ることと、
    書込みデータおよび書込み保護コードを前記リンクを介して前記メモリデバイスに送ることと、
    前記READコマンドを前記リンクを介して前記メモリコントローラから前記メモリデバイスに送ることと、
    前記READコマンドが送られたことに続いて、前記リンクを介して前記メモリデバイスから読取りデータおよび読取り保護コードを受信することと、
    前記読取りデータを前記メモリコントローラに供給することと
    を行うように構成されたホスト側インターフェースと、
    前記書込みデータに基づいて前記書込み保護コードを生成するように構成されたホスト側エンコーダと、
    前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出するように構成されたホスト側デコーダとを備え、
    前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
    前記ホスト側インターフェースは、
    前記書込みデータを送り、前記複数のDQ線を介して前記読取りデータを受信することと、
    前記書込み保護コードを前記読取りストローブクロック線を介して送ることと、
    前記DM線を介して前記読取り保護コードを受信することと
    を行うように構成される
    ホスト。
  11. 前記書込み保護コードおよび/または前記読取り保護コードはパリティコードを含む、請求項10に記載のホスト。
  12. 前記ホスト側デコーダは、前記読取りデータにおいて前記エラーが検出されたときに前記読取りデータを訂正するように構成され、それによって、前記ホスト側インターフェースが前記訂正された読取りデータを前記メモリコントローラに供給する、請求項10に記載のホスト。
  13. 前記ホスト側インターフェースは、DMデータを前記DM線を介して前記メモリデバイスに送るように構成され、
    前記ホスト側エンコーダは、前記書込みデータおよび前記DMデータに基づいて前記書込み保護コードを生成するように構成される、請求項10に記載のホスト。
  14. 前記DM線を介して受信された前記読取り保護コードは、前記読取りデータおよびゼロで埋められたDMマスクに基づいて生成されたコードである、請求項10に記載のホスト。
  15. 前記ホスト側インターフェースは、前記書込みデータの転送終了位置が前記書込み保護コードの転送終了位置と一致するように前記書込みデータおよび前記書込み保護コードを送るように構成される、請求項10に記載のホスト。
  16. 前記書込み保護コードおよび前記読取り保護コードの一方または両方が誤り訂正コード(ECC)である、請求項10に記載のホスト。
  17. 音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスからなるグループから選択されたデバイス内に組み込まれる、請求項10に記載のホスト。
  18. ホストによって、WRITEコマンドをリンクを介してメモリデバイスに送るステップと、
    前記ホストによって、書込みデータに基づいて書込み保護コードを生成するステップと、
    前記ホストによって、前記書込みデータおよび前記書込み保護コードを前記リンクを介して前記メモリデバイスに送るステップと、
    前記メモリデバイスによって、前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出するステップと、
    前記メモリデバイスによって、前記WRITEコマンドに応答して前記書込みデータを前記メモリデバイスのメモリバンクに記憶するステップとを含み、
    前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
    前記書込みデータおよび前記書込み保護コードを送るステップは、
    前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送るステップと、
    前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送るステップと
    を含む
    方法。
  19. 前記メモリデバイスによって、前記書込みデータにおいて前記エラーが検出されたときに前記書込みデータを訂正し、それによって、前記訂正された書込みデータが前記メモリバンクに記憶されるステップをさらに含む、請求項18に記載の方法。
  20. 前記ホストによって、DMデータを前記DM線を介して送るステップをさらに含み、
    前記書込み保護コードを生成するステップは、前記書込みデータおよび前記DMデータに基づいて前記書込み保護コードを生成するステップを含み、
    前記エラーを検出するステップは、前記書込み保護コードに基づいて前記書込みデータおよび/または前記DMデータが前記エラーを有するかどうかを検出するステップを含む、請求項18に記載の方法。
  21. 前記書込みデータおよび前記書込み保護コードを送るステップは、前記書込みデータの転送終了位置が前記書込み保護コードの転送終了位置と一致するように前記書込みデータおよび前記書込み保護コードを送るステップを含む、請求項18に記載の方法。
  22. ホストによって、READコマンドをリンクを介してメモリデバイスに送るステップと、
    前記メモリデバイスによって、前記READコマンドに応答して前記メモリデバイスのメモリバンクから読取りデータを取り出すステップと、
    前記メモリデバイスによって、前記読取りデータに基づいて読取り保護コードを生成するステップと、
    前記メモリデバイスによって、前記読取りデータおよび前記読取り保護コードを前記リンクを介して前記ホストに送るステップと、
    前記ホストによって、前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出するステップとを含み、
    前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
    前記送るステップは、
    前記読取りデータを前記複数のDQ線を介して前記ホストに送るステップと、
    前記読取り保護コードを前記DM線を介して前記ホストに送るステップと
    を含む
    方法。
  23. 前記ホストによって、前記読取りデータにおいて前記エラーが検出されたときに前記読取りデータを訂正するステップをさらに含む、請求項22に記載の方法。
  24. 前記読取り保護コードを生成するステップは、前記読取りデータおよびゼロで埋められたDMマスクに基づいて前記読取り保護コードを生成するステップを含む、請求項22に記載の方法。
  25. 前記読取りデータおよび前記読取り保護コードを送るステップは、前記読取りデータの転送終了位置が前記読取り保護コードの転送終了位置と一致するように前記読取りデータおよび前記読取り保護コードを送るステップを含む、請求項22に記載の方法。
  26. リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備え、
    前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
    前記メモリデバイスは、
    前記リンクを介して前記ホストからREADコマンドを受信することと、
    前記READコマンドに応答して前記メモリデバイスのメモリバンクから読取りデータを取り出すことと、
    前記読取りデータに基づいて読取り保護コードを生成することであって、前記読取り保護コードが、前記読取りデータの保護のためのパリティコードである、生成することと、
    前記読取りデータを前記複数のDQ線を介して前記ホストに送ることと、
    前記読取り保護コードを前記DM線を介して前記ホストに送ることと
    を行うように構成され、
    前記ホストは、
    前記READコマンドを前記リンクを介して前記メモリデバイスに送ることと、
    前記読取りデータを前記複数のDQ線を介して前記メモリデバイスから受信することと、
    前記DM線を介して前記メモリデバイスから前記読取り保護コードを受信することと、
    前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出することと
    を行うように構成される
    装置。
  27. 前記ホストは、
    WRITEコマンドを前記リンクを介して前記メモリデバイスに送ることと、
    書込みデータに基づいて書込み保護コードを生成することであって、前記書込み保護コードが、前記書込みデータの保護のためのパリティコードである、生成することと、
    前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送ることと、
    前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送ることと
    を行うように構成され、
    前記メモリデバイスは、
    前記リンクを介して前記ホストから前記WRITEコマンドを受信することと、
    前記複数のDQ線を介して前記ホストから前記書込みデータを受信することと、
    前記読取りストローブクロック線を介して前記ホストから前記書込み保護コードを受信することと、
    前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出することと
    を行うように構成される
    請求項26に記載の装置。
  28. 音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスのうちの1つを備える、請求項26に記載の装置。
  29. リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備え、
    前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
    前記ホストは、
    WRITEコマンドを前記リンクを介して前記メモリデバイスに送ることと、
    書込みデータに基づいて書込み保護コードを生成することであって、前記書込み保護コードが、前記書込みデータの保護のためのパリティコードである、生成することと、
    前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送ることと、
    前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送ることと
    を行うように構成され、
    前記メモリデバイスは、
    前記リンクを介して前記ホストから前記WRITEコマンドを受信することと、
    前記複数のDQ線を介して前記ホストから前記書込みデータを受信することと、
    前記読取りストローブクロック線を介して前記ホストから前記書込み保護コードを受信することと、
    前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出することと
    を行うように構成される
    装置。
  30. 音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスのうちの1つを備える、請求項29に記載の装置。
JP2019510446A 2016-08-26 2017-07-07 メモリシステムにおけるリンクエラー訂正 Active JP6630869B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662380104P 2016-08-26 2016-08-26
US62/380,104 2016-08-26
US15/643,455 2017-07-06
US15/643,455 US10331517B2 (en) 2016-08-26 2017-07-06 Link error correction in memory system
PCT/US2017/041129 WO2018038813A1 (en) 2016-08-26 2017-07-07 Link error correction in memory system

Publications (3)

Publication Number Publication Date
JP2019525356A true JP2019525356A (ja) 2019-09-05
JP2019525356A5 JP2019525356A5 (ja) 2019-10-17
JP6630869B2 JP6630869B2 (ja) 2020-01-15

Family

ID=61242685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019510446A Active JP6630869B2 (ja) 2016-08-26 2017-07-07 メモリシステムにおけるリンクエラー訂正

Country Status (20)

Country Link
US (1) US10331517B2 (ja)
EP (1) EP3479241B1 (ja)
JP (1) JP6630869B2 (ja)
KR (1) KR102045712B1 (ja)
CN (1) CN109643257B (ja)
AU (2) AU2017315303B2 (ja)
BR (1) BR112019003473A2 (ja)
CA (1) CA3032278C (ja)
CO (1) CO2019001630A2 (ja)
ES (1) ES2829331T3 (ja)
IL (1) IL264303B (ja)
MX (1) MX2019002194A (ja)
MY (1) MY201067A (ja)
PH (1) PH12019500160A1 (ja)
RU (1) RU2710977C1 (ja)
SA (1) SA519401035B1 (ja)
SG (1) SG11201900375YA (ja)
TW (1) TWI684102B (ja)
WO (1) WO2018038813A1 (ja)
ZA (1) ZA201901194B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107039086A (zh) * 2017-05-17 2017-08-11 西安紫光国芯半导体有限公司 具有兼容不同数据长度的纠错功能的存储器和纠错方法
US10387242B2 (en) 2017-08-21 2019-08-20 Qualcomm Incorporated Dynamic link error protection in memory systems
US10725912B2 (en) 2018-12-19 2020-07-28 Micron Technology, Inc. Power loss protection in memory sub-systems
US11537464B2 (en) * 2019-06-14 2022-12-27 Micron Technology, Inc. Host-based error correction
US11372717B2 (en) * 2019-08-30 2022-06-28 Qualcomm Incorporated Memory with system ECC
CN110750406B (zh) * 2019-10-29 2023-10-31 湖南国科微电子股份有限公司 一种检测方法、装置和soc芯片
US11493949B2 (en) * 2020-03-27 2022-11-08 Qualcomm Incorporated Clocking scheme to receive data
US11728003B2 (en) 2020-05-12 2023-08-15 Qualcomm Incorporated System and memory with configurable error-correction code (ECC) data protection and related methods
US11157359B2 (en) * 2020-09-24 2021-10-26 Intel Corporation Techniques to implement a hybrid error correction code scheme
KR20230021409A (ko) 2021-08-05 2023-02-14 에스케이하이닉스 주식회사 트레이닝동작을 수행하기 위한 반도체시스템
US11687273B2 (en) * 2021-09-29 2023-06-27 Micron Technology, Inc. Memory controller for managing data and error information
CN114006819A (zh) * 2021-11-03 2022-02-01 北京天融信网络安全技术有限公司 一种检测策略生成及装置、数据传输方法及装置
US20230170037A1 (en) * 2021-11-30 2023-06-01 Qualcomm Incorporated Hybrid memory system with increased bandwidth
US20240126438A1 (en) * 2022-10-18 2024-04-18 Qualcomm Incorporated Metadata registers for a memory device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2154897C2 (ru) * 1995-04-03 2000-08-20 Матсусита Электрик Индастриал Ко., Лтд. Система передачи информации, устройство записи и воспроизведения информации, а также носитель записи, использующие формат представления данных на основе кода с исправлением ошибок
US7032056B2 (en) * 2003-05-08 2006-04-18 International Business Machines Corporation Encoding of message onto strobe signals
KR100978268B1 (ko) * 2004-07-15 2010-08-26 엘에스산전 주식회사 분산 제어 시스템의 고속 이중화 데이터 복사 보드
KR100755371B1 (ko) 2005-05-03 2007-09-04 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 데이터 스트로우브 신호발생방법
CN101060015A (zh) * 2007-05-23 2007-10-24 北京芯技佳易微电子科技有限公司 一种多比特闪存及其错误检测和纠正的方法
CN101903953B (zh) 2007-12-21 2013-12-18 莫塞德技术公司 具有功率节省特性的非易失性半导体存储器设备
US8255783B2 (en) 2008-04-23 2012-08-28 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits
US8341498B2 (en) * 2010-10-01 2012-12-25 Sandisk Technologies Inc. System and method of data encoding
US8707133B2 (en) * 2011-12-05 2014-04-22 Lsi Corporation Method and apparatus to reduce a quantity of error detection/correction bits in memory coupled to a data-protected processor port
CN102546755A (zh) * 2011-12-12 2012-07-04 华中科技大学 云存储系统的数据存储方法
US8990670B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Endurance aware error-correcting code (ECC) protection for non-volatile memories
US9064606B2 (en) 2012-12-20 2015-06-23 Advanced Micro Devices, Inc. Memory interface supporting both ECC and per-byte data masking
US9164834B2 (en) * 2013-05-06 2015-10-20 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems including the same and method of writing data in the same
CN105468292B (zh) * 2014-09-05 2019-04-23 群联电子股份有限公司 数据存取方法、存储器储存装置及存储器控制电路单元
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
KR102438552B1 (ko) * 2015-02-04 2022-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
US9965352B2 (en) * 2015-11-20 2018-05-08 Qualcomm Incorporated Separate link and array error correction in a memory system
US20180059976A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Storage System with Integrated Components and Method for Use Therewith

Also Published As

Publication number Publication date
NZ750205A (en) 2020-10-30
US20180060171A1 (en) 2018-03-01
ES2829331T3 (es) 2021-05-31
IL264303B (en) 2019-08-29
ZA201901194B (en) 2020-12-23
WO2018038813A1 (en) 2018-03-01
US10331517B2 (en) 2019-06-25
SG11201900375YA (en) 2019-03-28
AU2019222960A1 (en) 2019-09-26
RU2710977C1 (ru) 2020-01-14
CN109643257A (zh) 2019-04-16
IL264303A (en) 2019-02-28
AU2019222960B2 (en) 2020-10-15
CA3032278C (en) 2021-01-12
MX2019002194A (es) 2019-06-24
EP3479241A1 (en) 2019-05-08
AU2017315303B2 (en) 2020-06-18
AU2017315303A1 (en) 2019-02-07
KR102045712B1 (ko) 2019-11-15
CN109643257B (zh) 2020-07-03
JP6630869B2 (ja) 2020-01-15
CA3032278A1 (en) 2018-03-01
EP3479241B1 (en) 2020-08-19
CO2019001630A2 (es) 2019-05-10
TW201810056A (zh) 2018-03-16
SA519401035B1 (ar) 2021-11-06
PH12019500160A1 (en) 2019-11-11
MY201067A (en) 2024-02-01
TWI684102B (zh) 2020-02-01
BR112019003473A2 (pt) 2019-05-21
KR20190043540A (ko) 2019-04-26

Similar Documents

Publication Publication Date Title
JP6630869B2 (ja) メモリシステムにおけるリンクエラー訂正
CN108292248B (zh) 存储器系统中的单独链路和阵列纠错
CN108351820B (zh) 在跨存储器链路传送纠正数据时保护ecc位置
US8042023B2 (en) Memory system with cyclic redundancy check
US8135935B2 (en) ECC implementation in non-ECC components
US9015553B2 (en) Data integrity in memory controllers and methods
US8694860B2 (en) System and method for data read of a synchronous serial interface NAND
US10121532B2 (en) Apparatus, method and system for performing successive writes to a bank of a dynamic random access memory
KR20180021729A (ko) 저전력 메모리 서브-시스템의 메모리 어레이 및 링크 에러 정정
KR20180102268A (ko) 메모리 모듈 및 이를 포함하는 메모리 시스템
NZ750205B2 (en) Link error correction in memory system
JP2006119830A (ja) 記憶装置、データ処理システムおよび記憶制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190808

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190808

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191209

R150 Certificate of patent or registration of utility model

Ref document number: 6630869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250