(57)【要約】  メモリサブシステムにおける従来のリンクエラー訂正技法は、I/O幅を広げること、またはバースト長を延ばすことのいずれかを含む。しかし、どちらの技法も欠点を有する。1つまたは複数の態様では、従来の技法に関連する欠点に対処するためにホストとメモリデバイスの両方にリンクエラー訂正を組み込むことが提案される。提案されたメモリサブシステムは、従来のメモリシステムのインターフェースアーキテクチャを維持することができるという点で有利である。さらに、リンクエラー訂正機能は、I/O幅を大きくすることもなく、バースト長を延ばすこともなく、提案されたメモリサブシステムに設けられる。
2019525356.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
メモリバンクと、
リンクを介してホストからWRITEコマンドを受信し、
前記リンクを介して前記ホストから書込みデータおよび書込み保護コードを受信し、
前記WRITEコマンドに応答して前記書込みデータを前記メモリバンクに記憶し、
前記リンクを介して前記ホストからREADコマンドを受信し、
前記READコマンドに応答して前記メモリバンクから読取りデータを取り出し、
前記読取りデータおよび読取り保護コードを前記リンクを介して前記ホストに送る
ように構成されたメモリ側インターフェースと、
前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出するように構成されたメモリ側デコーダと、
前記メモリバンクから取り出された前記読取りデータに基づいて前記読取り保護コードを生成するように構成されたメモリ側エンコーダとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記メモリ側インターフェースは、
前記書込みデータを受信し、前記読取りデータを前記複数のDQ線を介して送ることと、
前記読取りストローブクロック線を介して前記書込み保護コードを受信することと、
前記読取り保護コードを前記DM線を介して送ることと
を行うように構成される
メモリデバイス。
【請求項２】
前記書込み保護コードおよび/または前記読取り保護コードはパリティコードを含む、請求項1に記載のメモリデバイス。
【請求項３】
前記メモリ側デコーダは、前記書込みデータにおいて前記エラーが検出されたときに前記書込みデータを訂正するように構成され、それによって、前記メモリ側インターフェースが前記訂正された書込みデータを前記メモリバンクに記憶する、請求項1に記載のメモリデバイス。
【請求項４】
前記メモリ側インターフェースは、前記DM線を介して前記ホストからDMデータを受信するように構成され、
前記メモリ側デコーダは、前記書込み保護コードに基づいて前記書込みデータおよび/または前記DMデータが前記エラーを有するかどうかを検出するように構成される、請求項1に記載のメモリデバイス。
【請求項５】
前記メモリ側エンコーダは、前記読取りデータに加えて、前記読取り保護コードをゼロで埋められたDMマスクに基づいて生成するように構成される、請求項1に記載のメモリデバイス。
【請求項６】
前記メモリ側インターフェースは、前記読取りデータの転送終了位置が前記読取り保護コードの転送終了位置と一致するように前記読取りデータおよび前記読取り保護コードを送るように構成される、請求項1に記載のメモリデバイス。
【請求項７】
前記書込み保護コードおよび前記読取り保護コードの一方または両方が誤り訂正コード(ECC)である、請求項1に記載のメモリデバイス。
【請求項８】
前記書込み保護コードは前記メモリデバイスに記憶されない、請求項1に記載のメモリデバイス。
【請求項９】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスからなるグループから選択されたデバイス内に組み込まれる、請求項1に記載のメモリデバイス。
【請求項１０】
ホストであって、
READコマンドおよびWRITEコマンドを発行するように構成されたメモリコントローラと、
前記WRITEコマンドをリンクを介して前記メモリコントローラからメモリデバイスに送ることと、
書込みデータおよび書込み保護コードを前記リンクを介して前記メモリデバイスに送ることと、
前記READコマンドを前記リンクを介して前記メモリコントローラから前記メモリデバイスに送ることと、
前記READコマンドが送られたことに続いて、前記リンクを介して前記メモリデバイスから読取りデータおよび読取り保護コードを受信することと、
前記読取りデータを前記メモリコントローラに供給することと
を行うように構成されたホスト側インターフェースと、
前記書込みデータに基づいて前記書込み保護コードを生成するように構成されたホスト側エンコーダと、
前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出するように構成されたホスト側デコーダとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記ホスト側インターフェースは、
前記書込みデータを送り、前記複数のDQ線を介して前記読取りデータを受信することと、
前記書込み保護コードを前記読取りストローブクロック線を介して送ることと、
前記DM線を介して前記読取り保護コードを受信することと
を行うように構成される
ホスト。
【請求項１１】
前記書込み保護コードおよび/または前記読取り保護コードはパリティコードを含む、請求項10に記載のホスト。
【請求項１２】
前記ホスト側デコーダは、前記読取りデータにおいて前記エラーが検出されたときに前記読取りデータを訂正するように構成され、それによって、前記ホスト側インターフェースが前記訂正された読取りデータを前記メモリコントローラに供給する、請求項10に記載のホスト。
【請求項１３】
前記ホスト側インターフェースは、DMデータを前記DM線を介して前記メモリデバイスに送るように構成され、
前記ホスト側エンコーダは、前記書込みデータおよび前記DMデータに基づいて前記書込み保護コードを生成するように構成される、請求項10に記載のホスト。
【請求項１４】
前記DM線を介して受信された前記読取り保護コードは、前記読取りデータおよびゼロで埋められたDMマスクに基づいて生成されたコードである、請求項10に記載のホスト。
【請求項１５】
前記ホスト側インターフェースは、前記書込みデータの転送終了位置が前記書込み保護コードの転送終了位置と一致するように前記書込みデータおよび前記書込み保護コードを送るように構成される、請求項10に記載のホスト。
【請求項１６】
前記書込み保護コードおよび前記読取り保護コードの一方または両方が誤り訂正コード(ECC)である、請求項10に記載のホスト。
【請求項１７】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスからなるグループから選択されたデバイス内に組み込まれる、請求項10に記載のホスト。
【請求項１８】
ホストによって、WRITEコマンドをリンクを介してメモリデバイスに送るステップと、
前記ホストによって、書込みデータに基づいて書込み保護コードを生成するステップと、
前記ホストによって、前記書込みデータおよび前記書込み保護コードを前記リンクを介して前記メモリデバイスに送るステップと、
前記メモリデバイスによって、前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出するステップと、
前記メモリデバイスによって、前記WRITEコマンドに応答して前記書込みデータを前記メモリデバイスのメモリバンクに記憶するステップとを含み、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記書込みデータおよび前記書込み保護コードを送るステップは、
前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送るステップと、
前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送るステップと
を含む
方法。
【請求項１９】
前記メモリデバイスによって、前記書込みデータにおいて前記エラーが検出されたときに前記書込みデータを訂正し、それによって、前記訂正された書込みデータが前記メモリバンクに記憶されるステップをさらに含む、請求項18に記載の方法。
【請求項２０】
前記ホストによって、DMデータを前記DM線を介して送るステップをさらに含み、
前記書込み保護コードを生成するステップは、前記書込みデータおよび前記DMデータに基づいて前記書込み保護コードを生成するステップを含み、
前記エラーを検出するステップは、前記書込み保護コードに基づいて前記書込みデータおよび/または前記DMデータが前記エラーを有するかどうかを検出するステップを含む、請求項18に記載の方法。
【請求項２１】
前記書込みデータおよび前記書込み保護コードを送るステップは、前記書込みデータの転送終了位置が前記書込み保護コードの転送終了位置と一致するように前記書込みデータおよび前記書込み保護コードを送るステップを含む、請求項18に記載の方法。
【請求項２２】
ホストによって、READコマンドをリンクを介してメモリデバイスに送るステップと、
前記メモリデバイスによって、前記READコマンドに応答して前記メモリデバイスのメモリバンクから読取りデータを取り出すステップと、
前記メモリデバイスによって、前記読取りデータに基づいて読取り保護コードを生成するステップと、
前記メモリデバイスによって、前記読取りデータおよび前記読取り保護コードを前記リンクを介して前記ホストに送るステップと、
前記ホストによって、前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出するステップとを含み、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記送るステップは、
前記読取りデータを前記複数のDQ線を介して前記ホストに送るステップと、
前記読取り保護コードを前記DM線を介して前記ホストに送るステップと
を含む
方法。
【請求項２３】
前記ホストによって、前記読取りデータにおいて前記エラーが検出されたときに前記読取りデータを訂正するステップをさらに含む、請求項22に記載の方法。
【請求項２４】
前記読取り保護コードを生成するステップは、前記読取りデータおよびゼロで埋められたDMマスクに基づいて前記読取り保護コードを生成するステップを含む、請求項22に記載の方法。
【請求項２５】
前記読取りデータおよび前記読取り保護コードを送るステップは、前記読取りデータの転送終了位置が前記読取り保護コードの転送終了位置と一致するように前記読取りデータおよび前記読取り保護コードを送るステップを含む、請求項22に記載の方法。
【請求項２６】
リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記メモリデバイスは、
前記リンクを介して前記ホストからREADコマンドを受信することと、
前記READコマンドに応答して前記メモリデバイスのメモリバンクから読取りデータを取り出すことと、
前記読取りデータに基づいて読取り保護コードを生成することであって、前記読取り保護コードが、前記読取りデータの保護のためのパリティコードである、生成することと、
前記読取りデータを前記複数のDQ線を介して前記ホストに送ることと、
前記読取り保護コードを前記DM線を介して前記ホストに送ることと
を行うように構成され、
前記ホストは、
前記READコマンドを前記リンクを介して前記メモリデバイスに送ることと、
前記読取りデータを前記複数のDQ線を介して前記メモリデバイスから受信することと、
前記DM線を介して前記メモリデバイスから前記読取り保護コードを受信することと、
前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出することと
を行うように構成される
装置。
【請求項２７】
前記ホストは、
WRITEコマンドを前記リンクを介して前記メモリデバイスに送ることと、
書込みデータに基づいて書込み保護コードを生成することであって、前記書込み保護コードが、前記書込みデータの保護のためのパリティコードである、生成することと、
前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送ることと、
前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送ることと
を行うように構成され、
前記メモリデバイスは、
前記リンクを介して前記ホストから前記WRITEコマンドを受信することと、
前記複数のDQ線を介して前記ホストから前記書込みデータを受信することと、
前記読取りストローブクロック線を介して前記ホストから前記書込み保護コードを受信することと、
前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出することと
を行うように構成される
請求項26に記載の装置。
【請求項２８】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスのうちの1つを備える、請求項26に記載の装置。
【請求項２９】
リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記ホストは、
WRITEコマンドを前記リンクを介して前記メモリデバイスに送ることと、
書込みデータに基づいて書込み保護コードを生成することであって、前記書込み保護コードが、前記書込みデータの保護のためのパリティコードである、生成することと、
前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送ることと、
前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送ることと
を行うように構成され、
前記メモリデバイスは、
前記リンクを介して前記ホストから前記WRITEコマンドを受信することと、
前記複数のDQ線を介して前記ホストから前記書込みデータを受信することと、
前記読取りストローブクロック線を介して前記ホストから前記書込み保護コードを受信することと、
前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出することと
を行うように構成される
装置。
【請求項３０】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスのうちの1つを備える、請求項29に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、本出願の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる、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  端末デバイス
【図１】
2019525356.tif 000003
【図２】
2019525356.tif 000004
【図３Ａ】
2019525356.tif 000005
【図３Ｂ】
2019525356.tif 000006
【図４】
2019525356.tif 000007
【図５Ａ】
2019525356.tif 000008
【図５Ｂ】
2019525356.tif 000009
【図６Ａ】
2019525356.tif 000010
【図６Ｂ】
2019525356.tif 000011
【図７】
2019525356.tif 000012
【図８】
2019525356.tif 000013
【図９】
2019525356.tif 000014
【手続補正書】
【提出日】平成31年2月27日(2019.2.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
メモリバンクと、
リンクを介してホストからWRITEコマンドを受信することと、
前記リンクを介して前記ホストから書込みデータおよび書込み保護コードを受信することであって、前記書込み保護コードが、前記書込みデータの保護のためのコードである、受信することと、
前記WRITEコマンドに応答して前記書込みデータを前記メモリバンクに記憶することと、
前記リンクを介して前記ホストからREADコマンドを受信することと、
前記READコマンドに応答して前記メモリバンクから読取りデータを取り出すことと、
前記読取りデータおよび読取り保護コードを前記リンクを介して前記ホストに送ることであって、前記読取り保護コードが、前記読取りデータの保護のためのコードである、送ることと
を行うように構成されたメモリ側インターフェースと、
前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出するように構成されたメモリ側デコーダと、
前記メモリバンクから取り出された前記読取りデータに基づいて前記読取り保護コードを生成するように構成されたメモリ側エンコーダとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において前記ホストによって使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記メモリ側インターフェースは、
書込み動作時に前記書込みデータを受信し、読取り動作時に前記読取りデータを前記複数のDQ線を介して送ることと、
前記書込み動作時に前記読取りストローブクロック線を介して前記書込み保護コードを受信することと、
前記読取り動作時に前記読取り保護コードを前記DM線を介して送ることと
を行うように構成される
メモリデバイス。
【請求項２】
前記書込み保護コードおよび/または前記読取り保護コードはパリティコードを含む、請求項1に記載のメモリデバイス。
【請求項３】
前記メモリ側デコーダは、前記書込みデータにおいて前記エラーが検出されたときに前記書込みデータを訂正するように構成され、それによって、前記メモリ側インターフェースが前記訂正された書込みデータを前記メモリバンクに記憶する、請求項1に記載のメモリデバイス。
【請求項４】
前記メモリ側インターフェースは、前記DM線を介して前記ホストからDMデータを受信するように構成され、
前記メモリ側デコーダは、前記書込み保護コードに基づいて前記書込みデータおよび/または前記DMデータが前記エラーを有するかどうかを検出するように構成される、請求項1に記載のメモリデバイス。
【請求項５】
前記メモリ側エンコーダは、前記読取りデータに加えて、前記読取り保護コードをゼロで埋められたDMマスクに基づいて生成するように構成される、請求項1に記載のメモリデバイス。
【請求項６】
前記メモリ側インターフェースは、前記読取りデータの転送終了位置が前記読取り保護コードの転送終了位置と一致するように前記読取りデータおよび前記読取り保護コードを送るように構成される、請求項1に記載のメモリデバイス。
【請求項７】
前記書込み保護コードおよび前記読取り保護コードの一方または両方が誤り訂正コード(ECC)である、請求項1に記載のメモリデバイス。
【請求項８】
前記書込み保護コードは前記メモリデバイスに記憶されない、請求項1に記載のメモリデバイス。
【請求項９】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスからなるグループから選択されたデバイス内に組み込まれる、請求項1に記載のメモリデバイス。
【請求項１０】
ホストであって、
READコマンドおよびWRITEコマンドを発行するように構成されたメモリコントローラと、
前記WRITEコマンドをリンクを介して前記メモリコントローラからメモリデバイスに送ることと、
書込みデータおよび書込み保護コードを前記リンクを介して前記メモリデバイスに送ることであって、前記書込み保護コードが、前記書込みデータの保護のためのコードである、送ることと、
前記READコマンドを前記リンクを介して前記メモリコントローラから前記メモリデバイスに送ることと、
前記READコマンドが送られたことに続いて、前記リンクを介して前記メモリデバイスから読取りデータおよび読取り保護コードを受信することであって、前記読取り保護コードが、前記読取りデータの保護のためのコードである、受信することと、
前記読取りデータを前記メモリコントローラに供給することと
を行うように構成されたホスト側インターフェースと、
前記書込みデータに基づいて前記書込み保護コードを生成するように構成されたホスト側エンコーダと、
前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出するように構成されたホスト側デコーダとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において前記ホストによって使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記ホスト側インターフェースは、
書込み動作時に前記書込みデータを送り、読取り動作時に前記複数のDQ線を介して前記読取りデータを受信することと、
前記書込み動作時に前記書込み保護コードを前記読取りストローブクロック線を介して送ることと、
前記読取り動作時に前記DM線を介して前記読取り保護コードを受信することと
を行うように構成される
ホスト。
【請求項１１】
前記書込み保護コードおよび/または前記読取り保護コードはパリティコードを含む、請求項10に記載のホスト。
【請求項１２】
前記ホスト側デコーダは、前記読取りデータにおいて前記エラーが検出されたときに前記読取りデータを訂正するように構成され、それによって、前記ホスト側インターフェースが前記訂正された読取りデータを前記メモリコントローラに供給する、請求項10に記載のホスト。
【請求項１３】
前記ホスト側インターフェースは、DMデータを前記DM線を介して前記メモリデバイスに送るように構成され、
前記ホスト側エンコーダは、前記書込みデータおよび前記DMデータに基づいて前記書込み保護コードを生成するように構成される、請求項10に記載のホスト。
【請求項１４】
前記DM線を介して受信された前記読取り保護コードは、前記読取りデータおよびゼロで埋められたDMマスクに基づいて生成されたコードである、請求項10に記載のホスト。
【請求項１５】
前記ホスト側インターフェースは、前記書込みデータの転送終了位置が前記書込み保護コードの転送終了位置と一致するように前記書込みデータおよび前記書込み保護コードを送るように構成される、請求項10に記載のホスト。
【請求項１６】
前記書込み保護コードおよび前記読取り保護コードの一方または両方が誤り訂正コード(ECC)である、請求項10に記載のホスト。
【請求項１７】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスからなるグループから選択されたデバイス内に組み込まれる、請求項10に記載のホスト。
【請求項１８】
ホストによって、WRITEコマンドをリンクを介してメモリデバイスに送るステップと、
前記ホストによって、書込みデータに基づいて書込み保護コードを生成するステップであって、前記書込み保護コードが、前記書込みデータの保護のためのコードである、ステップと、
前記ホストによって、前記書込みデータおよび前記書込み保護コードを前記リンクを介して前記メモリデバイスに送るステップと、
前記メモリデバイスによって、前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出するステップと、
前記メモリデバイスによって、前記WRITEコマンドに応答して前記書込みデータを前記メモリデバイスのメモリバンクに記憶するステップとを含み、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において前記ホストによって使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記書込みデータおよび前記書込み保護コードを送るステップは、
前記ホストによって、書込み動作時に前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送るステップと、
前記ホストによって、前記書込み動作時に前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送るステップと
を含む
方法。
【請求項１９】
前記メモリデバイスによって、前記書込みデータにおいて前記エラーが検出されたときに前記書込みデータを訂正し、それによって、前記訂正された書込みデータが前記メモリバンクに記憶されるステップをさらに含む、請求項18に記載の方法。
【請求項２０】
前記ホストによって、DMデータを前記DM線を介して送るステップをさらに含み、
前記書込み保護コードを生成するステップは、前記書込みデータおよび前記DMデータに基づいて前記書込み保護コードを生成するステップを含み、
前記エラーを検出するステップは、前記書込み保護コードに基づいて前記書込みデータおよび/または前記DMデータが前記エラーを有するかどうかを検出するステップを含む、請求項18に記載の方法。
【請求項２１】
前記書込みデータおよび前記書込み保護コードを送るステップは、前記書込みデータの転送終了位置が前記書込み保護コードの転送終了位置と一致するように前記書込みデータおよび前記書込み保護コードを送るステップを含む、請求項18に記載の方法。
【請求項２２】
ホストによって、READコマンドをリンクを介してメモリデバイスに送るステップと、
前記メモリデバイスによって、前記READコマンドに応答して前記メモリデバイスのメモリバンクから読取りデータを取り出すステップと、
前記メモリデバイスによって、前記読取りデータに基づいて読取り保護コードを生成するステップであって、前記読取り保護コードが、前記読取りデータの保護のためのコードである、ステップと、
前記メモリデバイスによって、前記読取りデータおよび前記読取り保護コードを前記リンクを介して前記ホストに送るステップと、
前記ホストによって、前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出するステップとを含み、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において前記ホストによって使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記読取りデータおよび前記読取り保護コードを送るステップは、
前記メモリデバイスによって、読取り動作時に前記読取りデータを前記複数のDQ線を介して前記ホストに送るステップと、
前記メモリデバイスによって、前記読取り動作時に前記読取り保護コードを前記DM線を介して前記ホストに送るステップとを含む方法。
【請求項２３】
前記ホストによって、前記読取りデータにおいて前記エラーが検出されたときに前記読取りデータを訂正するステップをさらに含む、請求項22に記載の方法。
【請求項２４】
前記読取り保護コードを生成するステップは、前記読取りデータおよびゼロで埋められたDMマスクに基づいて前記読取り保護コードを生成するステップを含む、請求項22に記載の方法。
【請求項２５】
前記読取りデータおよび前記読取り保護コードを送るステップは、前記読取りデータの転送終了位置が前記読取り保護コードの転送終了位置と一致するように前記読取りデータおよび前記読取り保護コードを送るステップを含む、請求項22に記載の方法。
【請求項２６】
リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において前記ホストによって使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記メモリデバイスは、読取り動作時に、
前記リンクを介して前記ホストからREADコマンドを受信することと、
前記READコマンドに応答して前記メモリデバイスのメモリバンクから読取りデータを取り出すことと、
前記読取りデータに基づいて読取り保護コードを生成することであって、前記読取り保護コードが、前記読取りデータの保護のためのパリティコードである、生成することと、
前記読取りデータを前記複数のDQ線を介して前記ホストに送ることと、
前記読取り保護コードを前記DM線を介して前記ホストに送ることと
を行うように構成され、
前記ホストは、前記読取り動作時に、
前記READコマンドを前記リンクを介して前記メモリデバイスに送ることと、
前記読取りデータを前記複数のDQ線を介して前記メモリデバイスから受信することと、
前記DM線を介して前記メモリデバイスから前記読取り保護コードを受信することと、
前記読取り保護コードに基づいて前記読取りデータがエラーを有するかどうかを検出することと
を行うように構成される
装置。
【請求項２７】
前記ホストは、
WRITEコマンドを前記リンクを介して前記メモリデバイスに送ることと、
書込みデータに基づいて書込み保護コードを生成することであって、前記書込み保護コードが、前記書込みデータの保護のためのパリティコードである、生成することと、
前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送ることと、
前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送ることと
を行うように構成され、
前記メモリデバイスは、
前記リンクを介して前記ホストから前記WRITEコマンドを受信することと、
前記複数のDQ線を介して前記ホストから前記書込みデータを受信することと、
前記読取りストローブクロック線を介して前記ホストから前記書込み保護コードを受信することと、
前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出することと
を行うように構成される
請求項26に記載の装置。
【請求項２８】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスのうちの1つを備える、請求項26に記載の装置。
【請求項２９】
リンクを介して互いに通信するように構成されたホストとメモリデバイスとを備え、
前記リンクは、複数のデータ(DQ)線と、マスク書込み動作において前記ホストによって使用されるデータマスク(DM)線と、読取り動作におけるタイミングを生成するために前記メモリデバイスによって使用される読取りストローブクロック線とを備え、
前記ホストは、書込み動作時に、
WRITEコマンドを前記リンクを介して前記メモリデバイスに送ることと、
書込みデータに基づいて書込み保護コードを生成することであって、前記書込み保護コードが、前記書込みデータの保護のためのパリティコードである、生成することと、
前記書込みデータを前記複数のDQ線を介して前記メモリデバイスに送ることと、
前記書込み保護コードを前記読取りストローブクロック線を介して前記メモリデバイスに送ることと
を行うように構成され、
前記メモリデバイスは、前記書込み動作時に、
前記リンクを介して前記ホストから前記WRITEコマンドを受信することと、
前記複数のDQ線を介して前記ホストから前記書込みデータを受信することと、
前記読取りストローブクロック線を介して前記ホストから前記書込み保護コードを受信することと、
前記書込み保護コードに基づいて前記書込みデータがエラーを有するかどうかを検出することと
を行うように構成される
装置。
【請求項３０】
音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、モバイルデバイス、携帯電話、スマートフォン、携帯情報端末、固定位置端末、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、ラップトップコンピュータ、サーバ、および自動車両内のデバイスのうちの1つを備える、請求項29に記載の装置。
【国際調査報告】
2019525356.tif 000015
2019525356.tif 000016