(57)【要約】  メモリサブシステムは、誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラを含み得る。メモリコントローラは、マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンクECCパリティビットを埋め込むように構成され得る。メモリコントローラは、マスク書込み動作中にリンクECCパリティビットの少なくともロケーションを保護するようにも構成され得る。
2018535494.tif 000002
【特許請求の範囲】
【請求項１】
低電力メモリサブシステムにおけるリンク誤り訂正および保護の方法であって、
マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むステップと、
前記マスク書込み動作中に前記リンクECCパリティビットの少なくともロケーションを保護するステップと
を含む方法。
【請求項２】
前記リンクECCパリティビットの少なくとも前記ロケーションを保護するステップが、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するために、前記マスク書込み動作中にデータマスクECCパリティビットを送信するステップを含む、請求項1に記載の方法。
【請求項３】
前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記マスク書込み動作中にコマンド/アドレスバスを介して、前記データマスクECCパリティビット、および前記リンクECCパリティビットの前記ECCロケーションコードを送信するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記マスク書込み動作中に埋め込むステップが、
あらかじめ定められたバースト長の書込みデータがアサートされたデータマスクビットを含むかどうかを決定するステップと、
前記第1のアサートされたデータマスクビットに対応する、および前記第1のアサートされたデータマスクビット内の第1のマスク書込みデータバイトに前記リンクECCパリティビットを埋め込むステップと、
そうでない場合、前記リンクECCパリティビットを前記未使用データマスクビットに埋め込むステップと
を含む、請求項1に記載の方法。
【請求項６】
前記リンクECCパリティビットの少なくとも前記ロケーションを保護するステップが、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードを送信するステップを含む、請求項1に記載の方法。
【請求項７】
前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記マスク書込み動作中にコマンド/アドレスバスを介して前記ビートロケーションコードおよび前記ブロックロケーションコードを送信するステップをさらに含む、請求項7に記載の方法。
【請求項９】
読取り動作中に読取りデータを捕捉するためのタイミング情報を受信するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
前記低電力メモリサブシステムを、モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合するステップをさらに含む、請求項1に記載の方法。
【請求項１１】
メモリサブシステムであって、
誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラであり、マスク書込み動作中にリンクECCパリティビットを未使用データマスクビットおよび/またはマスク書込みデータに埋め込むように構成され、前記マスク書込み動作中に前記リンクECCパリティビットの少なくともロケーションを保護するように構成されたメモリコントローラ
を備えるメモリサブシステム。
【請求項１２】
前記メモリコントローラがさらに、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するために、前記マスク書込み動作中にデータマスクECCパリティビットを送信することと、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信することとを行うように構成される、請求項11に記載のメモリサブシステム。
【請求項１３】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記データマスクECCパリティビット、および前記リンクECCパリティビットの前記ECCロケーションコードを送信するように構成される、請求項12に記載のメモリサブシステム。
【請求項１４】
前記メモリコントローラがさらに、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードを送信することと、前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信することとを行うように構成される、請求項11に記載のメモリサブシステム。
【請求項１５】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記ビートロケーションコードおよび前記ブロックロケーションコードを送信するように構成される、請求項14に記載のメモリサブシステム。
【請求項１６】
前記メモリコントローラがさらに、前記あらかじめ定められたバースト長の書込みデータがアサートされたデータマスクビットを含むかどうかを決定することと、前記リンクECCパリティビットを、前記第1のアサートされたデータマスクビットに対応する、および前記第1のアサートされたデータマスクビット内の第1のマスク書込みデータバイトに埋め込むことと、そうでない場合、前記リンクECCパリティビットを前記未使用データマスクビットに埋め込むこととを行うように構成される、請求項15に記載のメモリサブシステム。
【請求項１７】
前記メモリコントローラがさらに、読取り動作中に読取りデータの捕捉を改善するためのタイミング情報を受信するように構成される、請求項11に記載のメモリサブシステム。
【請求項１８】
モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合される、請求項11に記載のメモリサブシステム。
【請求項１９】
メモリサブシステムであって、
マスク書込み動作中にリンクECCパリティビットを未使用データマスクビットおよび/またはマスク書込みデータに埋め込むように構成され、前記マスク書込み動作中に前記リンクECCパリティビットの少なくともロケーションを保護するように構成される、誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラと、
少なくともデータバスを介して前記メモリコントローラに結合されたメモリデバイスであり、
前記データバスを介した書込みデータの送信中のリンク誤りの検出および訂正のために構成された、書込みパス内のリンクECCデコーダおよび訂正ロジックと、
メモリECCパリティビットに従ってメモリアレイ内に記憶中の前記書込みデータのメモリ保護のために構成された、前記書込みパス内のメモリECCエンコーダロジックと
を備えるメモリデバイスと
を備えるメモリサブシステム。
【請求項２０】
前記メモリコントローラがさらに、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するために、前記マスク書込み動作中にデータマスクECCパリティビットを送信することと、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信することとを行うように構成される、請求項19に記載のメモリサブシステム。
【請求項２１】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記データマスクECCパリティビット、および前記リンクECCパリティビットのECCロケーションコードを送信するように構成される、請求項20に記載のメモリサブシステム。
【請求項２２】
前記メモリコントローラがさらに、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードを送信することと、前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信することとを行うように構成される、請求項19に記載のメモリサブシステム。
【請求項２３】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記ビートロケーションコードおよび前記ブロックロケーションコードを送信するように構成される、請求項22に記載のメモリサブシステム。
【請求項２４】
前記メモリコントローラがさらに、あらかじめ定められたバースト長の書込みデータがアサートされたデータマスクビットを含むかどうかを決定することと、前記リンクECCパリティビットを、前記第1のアサートされたデータマスクビットに対応する、および前記第1のアサートされたデータマスクビット内の第1のマスク書込みデータバイトに埋め込むことと、そうでない場合、前記ECCパリティビットを前記未使用データマスクビットに埋め込むこととを行うように構成される、請求項19に記載のメモリサブシステム。
【請求項２５】
前記メモリコントローラがさらに、読取り動作中に読取りデータの捕捉を改善するためのタイミング情報を受信するように構成される、請求項19に記載のメモリサブシステム。
【請求項２６】
モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合される、請求項19に記載のメモリサブシステム。
【請求項２７】
メモリサブシステムであって、
マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むための手段と、
前記マスク書込み動作中に前記リンクECCパリティビットの少なくともロケーションを保護するための手段と
を備えるメモリサブシステム。
【請求項２８】
前記マスク書込み動作中にコマンド/アドレスバスを介して、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するためのデータマスクECCパリティビット、およびあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信するための手段をさらに備える、請求項27に記載のメモリサブシステム。
【請求項２９】
前記マスク書込み動作中にコマンド/アドレスバスを介して、あらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードと、前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードとを送信するための手段をさらに備える、請求項27に記載のメモリサブシステム。
【請求項３０】
モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合される、請求項27に記載のメモリサブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2015年11月20日に出願された「PROTECTING AN ECC LOCATION WHEN TRANSMITTING CORRECTION DATA ACROSS A MEMORY LINK」という名称の米国仮特許出願第62/258,155号に対する利益を米国特許法第119条(e)の下に主張するものであり、この仮特許出願の開示全体が参照により本明細書に明確に組み込まれる。
【０００２】
本開示は、一般に集積回路(IC)に関する。より詳細には、本開示の一態様は、低電力メモリサブシステム内のメモリリンクを介して訂正データを送信するときの誤り訂正コード(ECC)ロケーションを保護することに関する。
【背景技術】
【０００３】
半導体メモリデバイスは、たとえば、スタティックランダムアクセスメモリ(SRAM)および動的ランダムアクセスメモリ(DRAM)を含む。DRAMメモリセルは概して、1つのトランジスタと1つのキャパシタとを含み、これにより、高度な統合が可能になる。キャパシタは、対応するビット値(たとえば、「0」または「1」)として情報を記憶するために充電または放電され得る。キャパシタは電荷をリークするので、キャパシタの電荷がリフレッシュされない限り、記憶された情報は最終的に消滅する。したがって、周期的なリフレッシュが行われる。リフレッシュ要件により、DRAMは、SRAMおよび他のスタティックメモリとは対照的にダイナミックメモリと呼ばれる。DRAMの連続的なリフレッシュは、概して、それの使用をコンピュータメインメモリに限定する。
【０００４】
DRAMスケーリングは、各DRAMチップの合計ビット数を増加させ続けている。残念ながら、DRAMスケーリングは、弱保持セル(たとえば、保持時間が低減されたセル)の数を増加させる。そのようなセルは、記憶された情報を維持するために追加のリフレッシュサイクルを伴う。高度なDRAMプロセスは、追加のリフレッシュサイクルまたは他のプロセスばらつきに起因して、メモリセルアレイ内のさらなるランダムビットリフレッシュ誤りに直面することがある。
【０００５】
いくつかの低電力メモリは、メモリセルアレイにおけるいかなるランダムビット誤りにも誤り訂正コード(ECC)を適用することによって、メモリの歩留まりおよび信頼性を高めるために、ECCを実装する。しかしながら、ECC復号および誤り訂正は、読取りアクセス時間の増加に起因してメモリのパフォーマンスを低下させる。さらに、メモリリンク(たとえば、インターフェース)は、ECCによって保護されず、全体的なメモリの信頼性は、高い信頼性および高いパフォーマンスのシステムメモリ要件を満たすには不十分である。
【発明の概要】
【課題を解決するための手段】
【０００６】
低電力メモリサブシステムにおけるリンク誤り訂正および保護の方法は、マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むステップを含み得る。この方法は、マスク書込み動作中にリンクECCパリティビットの少なくともロケーションを保護するステップも含み得る。
【０００７】
メモリサブシステムは、誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラを含み得る。メモリコントローラは、マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンクECCパリティビットを埋め込むように構成され得る。メモリコントローラは、マスク書込み動作中にリンクECCパリティビットの少なくともロケーションを保護するようにも構成され得る。
【０００８】
メモリサブシステムは、誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラを含み得る。ECCエンコーダ/デコーダロジックは、マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンクECCパリティビットを埋め込むように構成され得る。エンコーダ/デコーダロジックは、マスク書込み動作中にリンクECCパリティビットの少なくともロケーションを保護するようにも構成され得る。メモリサブシステムは、データバスを介してメモリコントローラに結合されたメモリデバイスも含み得る。メモリデバイスは、書込みパスにリンクECCデコーダおよび訂正ロジックを含み得る。リンクECCデコーダは、データバスを介した書込みデータの送信中のリンク誤りの検出および訂正のために構成され得る。メモリデバイスは、書込みパスにメモリECCエンコーダロジックを含み得る。メモリECCエンコーダロジックは、メモリECCパリティビットに従ってメモリアレイ内に記憶中の書込みデータのメモリ保護のために構成され得る。
【０００９】
メモリサブシステムは、マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むための手段を含み得る。低電力メモリサブシステムは、マスク書込み動作中にリンクECCパリティビットの少なくともロケーションを保護するための手段も含み得る。
【００１０】
上記では、後続の詳細な説明をより良く理解することができるように、本開示の特徴および技術的利点について、かなり大まかに概説してきた。本開示の追加の特徴および利点について以下において説明する。本開示が、本開示と同じ目的を果たすための他の構造を変更または設計するための基礎として容易に利用できることを、当業者は理解されたい。そのような同等な構成が、添付の特許請求の範囲に記載されるような本開示の教示から逸脱しないことも、当業者には理解されたい。本開示の構成と動作方法の両方に関して本開示の特徴になると考えられる新規の特徴が、さらなる目的および利点とともに、以下の説明を添付の図と併せて検討することからより十分に理解されるであろう。しかしながら、図の各々が、例示および説明のために提供されるにすぎず、本開示の範囲を定めるものではないことは明確に理解されたい。
【００１１】
本開示のより完全な理解が得られるように、ここで、添付の図面と併せて以下の説明が参照される。
【図面の簡単な説明】
【００１２】
【図１】本開示の態様による、低電力メモリデバイスに通信可能に結合されたホストシステムオンチップ(SoC)を示す低電力メモリサブシステムの平面図である。
【図２Ａ】本開示の態様による、通常の書込みコマンド中の誤り訂正コードパリティビットの通信を示すタイミング図である。
【図２Ｂ】本開示の態様による、通常の書込みコマンド中の誤り訂正コードパリティビットの通信を示すタイミング図である。
【図３Ａ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間でリンク誤り訂正コード(ECC)パリティビットを転送するためのオプションを示すタイミング図である。
【図３Ｂ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間でリンク誤り訂正コード(ECC)パリティビットを転送するためのオプションを示すタイミング図である。
【図３Ｃ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間でリンク誤り訂正コード(ECC)パリティビットを転送するためのオプションを示すタイミング図である。
【図４】本開示の態様による、バス内の読取り(RD)コマンド中の誤り訂正コード(ECC)パリティビットの通信を示すタイミング図である。
【図５Ａ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットの破損を示す図である。
【図５Ｂ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットの破損を示す図である。
【図６Ａ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットの保護を示す図である。
【図６Ｂ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットの保護を示す図である。
【図７Ａ】本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットのロケーション保護を示す図である。
【図７Ｂ】本開示の態様による、マスク書込みコマンド中にリンク誤り訂正コード(ECC)パリティビット保護情報またはECCロケーション情報を通信するためのタイミング図である。
【図８Ａ】本開示の態様による、マスク書込み(MWT)コマンドおよび通常の書込みコマンド中の誤り訂正コード(ECC)パリティビットの通信およびロケーション保護のための方法を示すフロー図である。
【図８Ｂ】本開示の態様による、読取り(RD)コマンド中の誤り訂正コード(ECC)パリティビットの通信およびロケーション保護のための方法を示すフロー図である。
【図９】本開示の構成が有利に採用され得るワイヤレス通信システムを示すブロック図である。
【発明を実施するための形態】
【００１３】
添付の図面に関連して以下に記載する詳細な説明は、様々な構成の説明とするものであり、本明細書で説明する概念が実施され得る唯一の構成を表すためのものではない。詳細な説明は、様々な概念の完全な理解をもたらすための具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践され得ることは、当業者には明らかであろう。場合によっては、そのような概念を曖昧にするのを回避するために、よく知られている構造および構成要素がブロック図の形態で示される。本明細書において説明されるときに、「および/または」という用語の使用は、「包含的論理和」を表すことが意図されており、「または」という用語の使用は、「排他的論理和」を表すことが意図されている。
【００１４】
半導体メモリデバイスは、たとえば、スタティックランダムアクセスメモリ(SRAM)および動的ランダムアクセスメモリ(DRAM)を含む。DRAMメモリセルは概して、1つのトランジスタと1つのキャパシタとを含み、これにより、高度な統合が可能になる。キャパシタは、対応するビット値(たとえば、「0」または「1」)として情報を記憶するために充電または放電され得る。キャパシタは電荷をリークするので、記憶された情報は最終的に消滅し、キャパシタの電荷が周期的にリフレッシュされる。リフレッシュ要件により、DRAMは、SRAMおよび他のスタティックメモリとは対照的にダイナミックメモリと呼ばれる。DRAMの連続的なリフレッシュは、概して、DRAMをコンピュータメインメモリとして使用することに限定する。
【００１５】
DRAMスケーリングは、各DRAMチップの合計ビット数を増加させ続けている。残念ながら、DRAMスケーリングは、弱保持セル(たとえば、保持時間が低減されたセル)の数を増加させる。そのようなセルは、記憶された情報を維持するために追加のリフレッシュサイクルを伴う。高度なDRAMプロセスは、追加のリフレッシュサイクルまたは他のプロセスばらつきに起因して、メモリセルアレイ内のさらなるランダムビットリフレッシュ誤りに直面することがある。いくつかの低電力メモリは、メモリセルアレイにおけるランダムビット誤りに誤り訂正コード(ECC)を適用することによって、メモリの歩留まりおよび信頼性を高めるために、ECCを実装する。
【００１６】
たとえば、サーバおよびコンピューティングシステムは、メモリリンクおよびメモリセルアレイの信頼性を高めるために、広い(たとえば、72ビット入力/出力(IO)幅の)メモリモジュールを使用し得る。サーバコンピューティングシステム内のメモリ障害は許容できないので、メモリ動作にECCを適用にすることによって、メモリリンクの信頼性が高められる。しかしながら、ECCの記憶は、追加のデバイスを伴う。たとえば、72ビットIO幅のメモリモジュールでは、8個のメモリデバイスの各64ビットデータブロックに8ビットECCが割り当てられる。各64ビットデータブロックに8ビットECCを割り当てることで、メモリインターフェースとメモリセルアレイの両方におけるビット誤りに対する保護を実現する。
【００１７】
しかしながら、72ビットIO幅のメモリモジュールでは、8個のメモリデバイスの各64ビットデータブロックに割り当てられた8ビットECCを記憶するために、9番目の64ビット(ECC)メモリデバイスが使用される。残念ながら、このメモリ構成は、メモリシステムコストおよびメモリ電力を増加させる。特に、このメモリ構成は、ECCメモリデバイスに起因してより広いメモリチャネルをサポートするための追加のプリント回路板(PCB)エリアおよびコストを伴う。ECCメモリデバイスはまた、スタンバイおよびアクティブ電力を伴い、これは、メモリ構成に関連するコストを増加させる。
【００１８】
メモリアレイとリンクの両方を保護するための1つの技法は、ホスト(たとえば、システムオンチップ(SoC))と低電力メモリとの間のECCビットの転送を含む。ECCビットは、データバースト長を拡張する(たとえば、16ビットバースト長を18ビットバースト長に拡張する)ことによって転送され得る。残念ながら、拡張されたバースト長は、正味メモリ帯域幅を低減することによって、著しいメモリパフォーマンスロスをもたらす。いくつかの低電力メモリは、メモリセルアレイにおけるランダムビット誤りにECCを適用することによって、メモリの歩留まりおよび信頼性を高めるために、ECCを実装する。しかしながら、メモリデバイス内のECC復号および誤り訂正は、読取りアクセス時間の増加に起因してメモリのパフォーマンスを低下させる。さらに、メモリリンク(たとえば、インターフェース)は、ECCによって保護されず、全体的なメモリの信頼性は、高い信頼性および高いパフォーマンスのシステムメモリ仕様を満たすには不十分である。
【００１９】
本開示の態様は、ホストシステムオンチップ(SoC)および複数のメモリデバイスを含むメモリサブシステムに関する。メモリコントローラは、メモリリンク誤りから書込みデータを保護するためのリンクECCビットを生成し、メモリリンクによって引き起こされる任意のデータ障害を訂正するための誤り訂正コード(ECC)符号化および復号ブロックを含む。メモリデバイスは各々、メモリデバイスのメモリアレイによって引き起こされる任意のランダムビット誤りを訂正するために、データ用のセルアレイと、メモリECCパリティビット用のECCアレイとを有する。これらのメモリECCパリティビットは、リンクECCパリティビットを生成するために使用されるホストSoCの非プロプライエタリな方法とは異なる、メモリデバイス製造業者のプロプライエタリな方法に基づいて生成される。
【００２０】
本開示の態様では、リンクECCパリティビットは、メモリリンク(たとえば、データバス)を介した送信中にリンク誤りから書込みデータを保護するために生成され、メモリECCパリティビットは、メモリデバイスのメモリセルアレイ内のランダムビット誤りからメモリデバイス内の書込みデータを保護するために生成される。本開示のいくつかの態様では、リンクECCパリティビットは、データマスクピンまたはマスク書込み(MWT)コマンドに関連するデータバイトを通じて、ホストとメモリデバイスとの間で転送され得る。マスク書込み動作の場合、メモリデバイスは、第1のアサートされたデータマスク(DM)ビット(たとえば、「H」)に関連するリンクECCパリティビットを復元し、マスク書込みコマンドビットフィールドが、「m」ビットデータパターンに関するDM活動を示す。通常の書込み動作の場合、メモリデバイスは、DMデータストリームからリンクECCビットを復元する。
【００２１】
本開示の態様は、リンクECCパリティビットが、マスク書込み動作中にデータ(DQ)ピンまたはデータマスク(DM)ピンを介して送信される技法を説明する。残念ながら、リンクECCパリティのロケーションをマーキングするDMビットにビット誤りが発生すると、ビット誤りにより、間違った列が復号され、リンクECCパリティビットの障害がもたらされる。本開示の態様では、リンクECCパリティビットを使用して書込みデータを保護するだけでなく、リンクECCパリティビットのロケーションも保護するように、マスク書込み動作が拡張される。通常の書込み動作では、リンクECCデータのロケーションは常に既知で予測可能である。読取り動作では、メモリコントローラは、メモリデバイスからDMデータストリーム内のメモリ/リンクECCパリティビットを復元し得る。
【００２２】
しかしながら、マスク書込み動作では、リンクECCパリティビットのロケーションは、マスキングされたバイトの数に基づいて変わる。本開示の一態様では、リンクECCパリティビットのロケーションに関する情報は、より低速のライン上で別々に保護され、または通信され得る。本開示のこの態様では、マスク書込みコマンドの後に、書込みデータバーストにおけるDMピンを保護するためのデータマスク(DM)ECCパリティビットが続く。本開示の別の態様では、ECCパリティビットのロケーションは、リンクECCパリティビットが書込みデータバーストに埋め込まれるロケーションを示すために、マスク書込みコマンドとともに送信される。
【００２３】
図1は、本開示の態様による、メモリデバイス140(140-1、...、140-N)に結合されたホストシステムオンチップ(SoC)100を示す低電力メモリサブシステムの平面図を示す。本開示のこの態様は、メモリリンクを介した送信中にランダムビット誤りからメモリリンク(たとえば、データバス)を保護するために、モバイルまたはコンピューティングシステムにおける低電力メモリサブシステムにリンク誤り訂正コード(ECC)パリティビットを適用する。より具体的には、本開示の態様は、メモリデバイスがプロプライエタリなメモリECCパリティビットを使用してランダムビット誤りからメモリセルアレイを保護する、モバイルまたはコンピューティングシステムチップセットにおける次世代の低電力ダブルデータレート(DDR)仕様およびメモリコントローラ実装を補い得る。
【００２４】
代表的に、ホストSoC100は、マルチスレッド動作をサポートする様々な処理ユニットを含む。図1に示す構成の場合、ホストSoC100は、デジタル信号プロセッサ(DSP)102と、グラフィックスプロセッサユニット(GPU)およびマルチメディアエンジン104と、マルチコア中央処理装置(CPU)106と、システムバス108と、メモリコントローラ110と、メモリ物理層(PHY)130とを含む。DSP102、GPUおよびマルチメディアエンジン104ならびにマルチコアCPU106は、ビデオ、オーディオ、グラフィックス、ゲーミングなどのような様々な機能をサポートする。マルチコアCPU106の各プロセッサコアは、縮小命令セットコンピューティング(RISC)マシン、マイクロプロセッサ、または何らかの他のタイプのプロセッサとすることができる。
【００２５】
本開示のこの態様では、ホストSoC100は、メモリPHY130を通じてメモリデバイス140(たとえば、低電力ダイナミックランダムアクセスメモリ(DRAM))に通信可能に結合される。この構成では、メモリコントローラ110は、メモリPHY130を通じて、まとめてメモリリンクと呼ばれ得るデータバス132(132-1、...、132-N)およびコマンド/アドレスバス134(134-1、...、134-N)に沿って、メモリデバイス140のうちの1つに通信されるデータ122(たとえば、読取り/書込みデータ)のためのリンクECCパリティビット124を生成するための誤り訂正コード(ECC)エンコーダ/デコーダロジック120を含む。ECCエンコーダ/デコーダロジック120によって生成されたリンクECCパリティビット124は、メモリデバイス140におけるメモリリンク(たとえば、データバス132)によって引き起こされたデータ障害の訂正を可能にする。
【００２６】
ホストSoC100がメモリリンクシリアルデータレートを、たとえば、3200メガビット毎秒(Mbps)から6400Mbpsに上昇させるのに伴って、メモリリンク誤りに対する保護が一層の懸念事項になる。この構成では、データバス132を介した送信中にランダムビット誤りからデータ122(たとえば、「m」ビット書込み)を保護するためにメモリコントローラ110によってリンクECCパリティビット124(「n」ビットECC)が生成される。リンクECCパリティビット124とデータ122の両方が書込みおよび読取り動作中にホストSoC100とメモリデバイス140との間で転送されるので、メモリリンク誤りは、リンクECCパリティビット124により検出され訂正され得る。また、メモリセルアレイ150からの送信中のランダムビット誤りは、メモリコントローラ110のECCエンコーダ/デコーダロジック120において訂正され得る。
【００２７】
この構成では、メモリデバイス140は、データ122を記憶するためのメモリセルアレイ150(たとえば、メモリバンク)と、メモリECCパリティビット154を記憶するためのECCアレイ152とを含む。本開示のこの態様では、メモリデバイス140は、データ122の記憶中にメモリデバイス140のメモリセルアレイ150によって引き起こされる任意のランダムビット誤りの検出および訂正を可能にするようにメモリECCパリティビット172を生成するように構成されたメモリECCエンコーダロジック170を含む。データ122は、メモリセルアレイ150(たとえば、メモリバンク)のうちの1つに記憶され、メモリECCパリティビット172は、ECCアレイ152に記憶される。また、メモリセルアレイ150内の任意のランダムビット誤りは、リンクECCパリティビット124を生成するために使用されるホストSoC100の非プロプライエタリアルゴリズムとは異なるメモリデバイス製造業者のプロプライエタリアルゴリズムに基づいて、メモリデバイス140のメモリECCデコーダおよび訂正ロジック180において訂正することができる。
【００２８】
メモリコントローラ110からのリンクECCパリティビット124は、マスク書込みコマンドに関連するデータバイトのデータマスクピンを通じて、メモリデバイス140によって受信され得る。リンクECCパリティビット124のロケーションは、ECCビットロケーション(EL)情報を使用してメモリデバイス140に通信され得る。このプロセスは、マスク書込み(MWT)動作中に実行され、メモリデバイス140は、第1のデータマスク(DM)ビットがアサート(たとえば、「H」)され、MWTコマンドビットフィールドがデータ122によるDM活動を示すときに、ECCパリティビット124を復元する。通常の書込み動作中、メモリデバイス140は、DMデータストリームからリンクECCパリティビット124を復元し得る。
【００２９】
この構成では、メモリデバイス140は、データバス132およびコマンド/アドレスバス134に通信可能に結合された入力/出力(IO)ブロック146を含む。動作中、ホストSoC100の非プロプライエタリな方法に従ってメモリコントローラ110によって生成されたリンクECCパリティビット124は、データ122内のリンク誤りを検出し訂正するために、メモリデバイス140のリンクECCデコーダおよび訂正ロジック160によって使用され得る。本開示のこの態様では、メモリデバイス140は、データ122の記憶中に任意のランダムビット誤りの検出および訂正を可能にするようにメモリECCパリティビット172を生成するように構成されたメモリECCエンコーダロジック170を含む。したがって、ひとたびデータ122が訂正され、および/または検証されると、記憶中にランダムビット誤りからデータ122を保護するために、メモリデバイス140の書込みパス142に沿ってメモリECCエンコーダロジック170内でメモリECCパリティビット172が生成される。
【００３０】
動作中、データ122は、メモリセルアレイ150(たとえば、メモリバンク)のうちの1つに記憶され、メモリECCパリティビット172は、ECCアレイ152に記憶される。この構成では、メモリセルアレイ150内の任意のランダムビット誤りは、ECCアレイ152内に記憶されるメモリECCパリティビット172を使用してメモリデバイス製造業者のプロプライエタリアルゴリズムに基づいて、メモリデバイス140のメモリECCデコーダおよび訂正ロジック180において訂正することができる。したがって、ひとたびデータ122が訂正され、および/または検証されると、データバス132を介した送信中にランダムビット誤りからデータ122を保護するために、メモリデバイス140の読取りパス144に沿ってリンクECCエンコーダロジック190内でリンクECCパリティビット124が生成される。
【００３１】
本開示のこの態様では、ホストSoC100は、(たとえば、3200Mbpsから6400Mbpsへの)メモリリンクシリアルデータレートの上昇によって引き起こされ得る任意のメモリリンク誤りを、リンクECCパリティビット124を使用して検出し訂正することが可能である。さらに、メモリセルアレイ150内の任意のランダムビット誤りは、メモリECCパリティビット172を使用して、メモリデバイス140のメモリECCデコーダおよび訂正ロジック180によって訂正することができる。メモリデバイス140の読取りパス144に沿ったメモリECCデコーダおよび訂正ロジック180およびリンクECCエンコーダロジック190の使用は、望ましくない読取りレイテンシを招く可能性がある。代替的に、読取りレイテンシを低減するために、メモリECCデコーダおよび訂正ロジック180、ならびに/またはリンクECCエンコーダロジック190の機能がメモリコントローラに組み込まれる。
【００３２】
図1に示すメモリデバイス140では、メモリライン全体(たとえば、256ビットワード)が一般に、書込み動作中にメモリアレイから読み取られる。マスク書込み動作中、メモリECCエンコーダロジック170は、読取りおよび書込みデータによりECC符号化を実行するために、メモリセルアレイ150のうちの1つの中で読取り-修正-書込み動作を実行する(マスキングされたデータバイトが、メモリセルアレイ150のうちの1つにおいて対応するデータバイトに置き換えられる)。すなわち、マスク書込み動作は、マスキングされたデータバイトがメモリセルアレイ150に書き込まれないような、メモリラインの選択されたバイトの更新を可能にする。動作中、無視される書込みデータバイトを指定することによって、指定された書込みデータを除去し、読取り-修正-書込み動作を限定するために、データ122とともに余剰ピン(たとえば、データマスクビット)が送られる。
【００３３】
図2Aは、たとえば、16に等しいバースト長を伴う関連する16ビットデータマスクを有する128ビット書込みデータバースト210のための、マスク書込み(MWT)コマンドを示すタイミング図200である。タイミング図200では、「D」は書込みデータを指し、「M」はデータマスクビットを指し、DQバイトごとに1つのデータマスクビットが割り当てられる。この例では、書込みデータD<16:23>に関連するDM0ピンのM2ビットがアサート(たとえば、「High」または「H」)される。結果として、マスク書込みデータ220(たとえば、書込みデータD<16:23>)は、メモリセルアレイ150(図1)のうちの対象とする1つに書き込まれない。マスク書込みコマンドに応答して、メモリデバイス140のうちの対象とする1つは、メモリセルアレイ150のうちの1つからの読取り動作を実行し、マスク書込みデータ220を読取りデータQ<16:23>に置き換えて、メモリECCエンコーダロジック170を使用するメモリECC符号化のための書込みデータ(たとえば、128ビット書込みデータ)を形成する。メモリECCエンコーダロジック170は、メモリセルアレイ150のうちの対象とする1つの中に128ビット書込みデータを書き込み、メモリECCパリティビット172がECCアレイ152のうちの対象とする1つに書き込まれる。
【００３４】
本開示の態様では、メモリコントローラからのECCパリティビットは、データマスクピンまたはマスク書込みコマンドに関連するデータバイトを通じて、ホストSoCと低電力メモリとの間で転送される。ECCパリティビットのロケーションは、ECCビットロケーション情報を使用してメモリデバイスに通信され得る。マスク書込み動作の場合、メモリは、第1のアサートされたデータマスク(DM)ビット(たとえば、「H」)に関連するECCビットを復元し、マスク書込みコマンドビットフィールドが、各「m」ビットデータパターンに関するDM活動を示す。通常の書込み動作の場合、メモリデバイスは、DMデータストリームからECCビットを復元する。
【００３５】
図2Bは、たとえば、16に等しいバースト長を伴う関連する16ビットデータマスクを有する128ビット書込みデータバースト210のための、通常の書込みコマンドを示すタイミング図250である。メモリデバイス140(図1)などの低電力メモリデバイスは、マスク書込みコマンドとは別個の通常の書込みコマンドを有する。通常の書込みコマンドの場合、128ビット書込みデータに関連するDM0ピンのすべてのビット(E0、...、E15)がデアサート(たとえば、「Low」)される。対照的に、マスク書込みコマンドの場合、少なくとも1つのDMビットがバーストデータストリーム(BL)中にアサート「High」される。結果として、DM0ピンのビットは、通常の書込みコマンド中に使用されない。通常の書込みコマンドのこの例では、リンクECCパリティビット(E0、...、E15)は、未使用DMビット260を通じてメモリデバイス140に転送され、「E」がリンクECCパリティビットを表す。結果として、メモリデバイス140は、DMピンを通じてメモリコントローラ110によって生成されたリンクECCパリティビット124を認識することができる。
【００３６】
一方、マスク書込みコマンド中、DMピンは、リンクECCパリティビット124を搬送するために利用可能ではない。本開示の態様では、メモリコントローラ110からのリンクECCパリティビット124は、マスク書込みコマンドに関連するマスク書込みデータバイトを通じて、ホストSoC100とメモリデバイス140との間で転送される。リンクECCパリティビット124のロケーションは、ECCビットロケーション情報を使用してメモリデバイス140に通信され得る。メモリデバイス140は、第1のアサートされたデータマスク(DM)ビット(たとえば、「H」)に関連するECCビットを復元し、マスク書込みコマンドビットフィールドが、各「m」ビットデータパターンに関するDM活動を示す。通常の書込み動作の場合、メモリデバイスは、DMデータストリームからECCビットを復元する。さらに、読取り動作中、リンクECCパリティビット124またはメモリECCパリティビット172がDMピンを通じて通信される。
【００３７】
本開示の態様では、計16個のリンクECCパリティビットが、128ビットデータチャンク(たとえば、DQバイトX16データビート)から入手可能である。代替実装形態では、128ビットデータチャンクごとのリンクECCパリティビットの16データビートは、リンクECCパリティビットよりも多くを含む。たとえば、16データビートは、8ビットリンクECCパリティビットのほか、データバス反転(DBI)ビットおよび他の同様のビットを含み得る。たとえば、メモリコントローラ110は、読取り動作中に読取りデータの取込みを改善するためのタイミング情報を受信し得る。このタイミング情報は、16データビートで提供されてもよく、または、代替的に、コマンド/アドレスバス134を介して提供されてもよい。
【００３８】
図3A〜図3Cは、本開示の態様による、マスク書込みコマンド中にホストSoC100とメモリデバイス140との間でリンクECCパリティビット124を転送するための様々なオプションを示すタイミング図である。
【００３９】
図3Aは、たとえば、16に等しいバースト長を伴う関連する16ビットデータマスクを有する128ビット書込みデータのための、マスク書込みコマンドを示すタイミング図300である。この構成では、128ビット書込みデータは、第1の書込みデータ310および第2の書込みデータ320(たとえば、第1の8ビットリンクECCパリティビットを有する第1の64ビットデータ部分および第2の8ビットリンクECCパリティビットを有する第2の64ビットデータ部分)に分割される。述べたように、マスク書込みコマンド場合、少なくとも1つのデータマスクビット(DM0)が(たとえば、64ビットバースト長を有する)バーストデータストリーム中にアサート「H」される。この例では、第1の8ビットリンクECC(たとえば、E0、...、E7)が第1のマスク書込みデータバイト312(たとえば、D<16:23>)内に埋め込まれる。さらに、第2の8ビットリンクECC(たとえば、E8、...、E15)が第2のマスク書込みデータバイト322(たとえば、D<64:71>)内に埋め込まれる。
【００４０】
図3Bは、第2の書込みデータ320のための通常の書込み動作と組み合わせられた第1の書込みデータ310のためのマスク書込み動作を示すタイミング図330である。この構成では、第1の8ビットリンクECC(たとえば、E0、...、E7)が第1のマスク書込みデータバイト312(たとえば、D<16:23>)内に埋め込まれる。第2の書込みデータ320では、DM0ピンのビットは、通常の書込み動作には使用されない。この例では、第2の8ビットリンクECC(たとえば、E8、...、E15)が、第2の未使用DMビット324を通じてメモリデバイス140に転送される。結果として、メモリデバイスは、第1の書込みデータ310のための第1のマスク書込みデータバイト312および第2の書込みデータ320のための第2の未使用DMビット324を通じて、メモリコントローラ110によって生成されたリンクECCパリティビット124を認識することができる。本開示のこの態様では、ホストSoC100は、ECCバイトが埋め込まれている場所、すなわち、データマスク活動に応じてマスク書込みデータバイトまたは未使用DMビットを示す拡張ビットフィールドを有するマスク書込みコマンドを発信する。
【００４１】
図3Cは、第2の書込みデータ320のためのマスク書込み動作と組み合わせられた第1の書込みデータ310のための通常の書込み動作を示すタイミング図350である。この構成では、DM0ピンのビットは、通常の書込み動作には使用されない。この例では、第1の8ビットリンクECC(たとえば、E0、...、E8)が、第1の未使用DMビット314を通じてメモリデバイス140に転送される。第2の書込みデータ320では、第2の8ビットリンクECC(たとえば、E8、...、E15)が第2のマスク書込みデータバイト322(たとえば、D<120:127>)内に埋め込まれる。結果として、メモリデバイスは、第1の書込みデータ310のための第1の未使用DMビット314および第2の書込みデータ320のための第2のマスク書込みデータバイト322を通じて、メモリコントローラ110によって生成されたリンクECCパリティビット124を認識することができる。本開示のこの態様では、ホストSoC100はまた、ECC情報が埋め込まれている場所、すなわち、データマスク活動に応じて未使用DMビットまたはマスク書込みデータバイトを示す拡張ビットフィールドを有するマスク書込みコマンドを発信する。
【００４２】
図4は、本開示の態様による、たとえば、128ビット入力/出力バス幅を有するバス内の、読取り(RD)コマンド中のリンク/メモリECCパリティビットの通信を示すタイミング図400である。タイミング図400は、クロック信号402、コマンド信号404およびアドレス信号406を示す。タイミング図400はまた、第1のデータ信号410と、第1のデータ信号410に関連し、関連する読取りレイテンシ414およびバーストデータ416を有する第1のデータマスク信号412とを示す。読取り(RD)コマンドの場合、128ビット読取りデータおよび各DQバイト(たとえば、D0、...、D15)に関する16ビットリンク/メモリECC(たとえば、E0、...、E15)が、未使用DMビット450を使用してメモリセルアレイ150からホストSoC100に転送される。
【００４３】
本開示の一態様では、読取り動作中のメモリリンク誤りは、図1に示す低電力メモリサブシステム構成による、未使用DMビット450からのリンクECCパリティビット124を使用してメモリコントローラ110のECCエンコーダ/デコーダロジック120において検出され訂正され得る。代替的に、メモリセルアレイ内の読取りデータのランダムビット誤りおよび/またはリンク誤りは、メモリECCパリティビット172を生成するために使用されるメモリデバイス製造業者のプロプライエタリな方法がホストSoC製造業者と共有される、低電力メモリサブシステム構成によるメモリECCパリティビット172を使用して検出され得る。第2のデータ信号420および関連する第2のデータマスク信号422、ならびに第4のデータ信号430および関連する第4のデータマスク信号432も示されている。
【００４４】
図5Aおよび図5Bは、本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットの破損を示す図である。図5Aは、リンクECCパリティビットがマスク書込み動作中にデータ(DQ)ピンまたはデータマスク(DM)ピンを介して送信される、32ビットバースト長(BL32)を有するマスク書込みデータバースト500を示す。この構成では、マスク書込みデータバースト500は、4象限(Q1、Q2、Q3、およびQ4)に配置される。代表的には、リンクECCパリティビット510は、象限Q1内のデータマスクビットDM0の第1の未使用バイトで送信される。象限Q3において、リンクECCパリティビット520は、第1のアサートされたデータマスクビット522に対応する第1のマスク書込みデータバイトで送信される。同様に、リンクECCパリティビット530は、象限Q2内の第1のアサートされたデータマスクビット532に対応する第1のマスク書込みデータバイトで送信され、リンクECCパリティビット540は、象限Q4内の第1のアサートされたデータマスクビット542に対応する第1のマスク書込みデータバイトで送信される。
【００４５】
残念ながら、リンクECCパリティビット(たとえば、520、530、または540)のロケーションをマークするDMビット(たとえば、522、532、または542)にビット誤りが発生した場合、間違った列がリンクECCパリティビットとしてメモリデバイスにおいて復号され、リンク保護に失敗する。本開示の態様では、マスク書込み動作は、リンクECCパリティビットを含むデータ自体を保護するだけでなく、マスク書込みデータバイトの数に基づいて変わり得るリンクECCパリティビットのロケーションも保護する。本開示の態様では、ECCパリティビットのロケーションは変わり得、そのロケーションに関する情報は低速ライン上で別々に保護または送信される。
【００４６】
図5Bは、リンクECCパリティビットがマスク書込み動作中にデータ(DQ)ピンまたはデータマスク(DM)ピンを介して送信される、16ビットバースト長を有するマスク書込みデータバースト500を示す。この構成では、マスク書込みデータバースト500は、2つの象限(Q1およびQ2)に配置される。代表的には、リンクECCパリティビット560は、象限Q1内の第1のアサートされたデータマスクビット562に対応する第1のマスク書込みデータバイトで送信される。象限Q2において、リンクECCパリティビット570は、データマスクビットDM1の第1の未使用バイトで送信される。残念ながら、リンクECCパリティビット(たとえば、560)のロケーションをマークするDMビット(たとえば、562)にビット誤りが発生した場合、間違った列がメモリデバイスにおいて復号され、リンク保護に失敗する。リンクECCパリティビット570におけるビット誤りによって、単に、メモリデバイス140(図1)のリンクECCデコーダおよび訂正ロジック160においてリンクECCパリティビット570が破棄される。
【００４７】
図6Aおよび図6Bは、本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットの保護を示す図である。図6Aは、マスク書込み動作中にデータ(DQ)ピンまたはデータマスク(DM)ピンを介して送信されるリンクECCパリティビットが保護される、32ビットバースト長(BL32)を有するマスク書込みデータバースト600を示す。バースト長BL32は、マスク書込みデータバースト600のあらかじめ定められたバースト長と呼ばれ得る。この構成では、リンクECCパリティビット610は、象限Q1内のデータマスクビットDM0の第1の未使用バイトで送信される。象限Q3において、リンクECCパリティビット620は、第1のアサートされたデータマスクビット622に対応する第1のマスク書込みデータバイトで送信される。同様に、リンクECCパリティビット630は、象限Q2内のデータマスクビットDM1の第1の未使用バイトで送信され、リンクECCパリティビット640は、象限Q4内のデータマスクビットDM1の第1の未使用バイトで送信される。
【００４８】
残念ながら、リンクECCパリティビット(たとえば、620)のロケーションをマークするDMビット(たとえば、622)にビット誤りが発生した場合、間違った列(書込みデータバイトまたはマスク書込みデータ)がメモリデバイスにおいて復号され、リンク保護に失敗する。未使用のデータマスクバイト(たとえば、610、630、および640)に埋め込まれたリンクECCパリティビット640におけるビット誤りによって、単に、メモリデバイス140(図1)のリンクECCデコーダおよび訂正ロジック160においてリンクECCパリティビットが破棄される。本開示のこの態様では、マスク書込み動作中、リンクECCパリティビット(およびDMビット)のロケーションは保護される。
【００４９】
本開示のこの態様では、マスク書込みコマンドは、コマンドアドレス(CA)バス(図1参照)を使用してDMピンの保護を可能にするために、2チック動作から4チック動作に拡張される。たとえば、拡張されたマスク書込みコマンドは、マスク書込みコマンド中に送信に利用可能な12の追加ビットを提供し得る。図6Aに示される32ビットバースト長(BL32)を有するマスク書込みデータバースト600の場合、送信されるDMビットが64(たとえば、2バイトについて32ビート)存在する。この構成では、64のDMピンは、マスク書込みコマンド中、コマンド/アドレスバス134(図1)上で、DM ECCパリティビットとして7ビットのシングル誤り訂正(SEC)シーケンスまたは8ビットのSECダブル誤り検出(SEC-DED)ビットシーケンスを送ることによって保護される。他の4ビットは、各64ビット象限(たとえば、Q1、Q2、Q3、またはQ4)がそのリンクECCパリティビットをDMピン上に有するか、DMハイビートにあるDQビット上に有するかを示す象限ロケーションコード(たとえば、ECCロケーションコード)を提供する。
【００５０】
たとえば、図6AのBL32のマスク書込みデータバースト600において、マスク書込みコマンドにより、CAバスを介して以下の12ビットが送られる。
【００５１】
【表１】
2018535494.tif 000003
【００５２】
図6Bは、マスク書込み動作中にデータピンまたはDMピン(たとえば、DM0、DM1)を介して送信されるリンクECCパリティビットが保護される、16ビットバースト長を有するマスク書込みデータバースト650を示す。この構成では、リンクECCパリティビット660は、象限Q1内の第1のアサートされたデータマスクビット662に対応する第1のマスク書込みデータバイトで送信される。象限Q2において、リンクECCパリティビット670は、第1のアサートされたデータマスクビット672に対応する第1のマスク書込みデータバイトで送信される。述べたように、リンクECCパリティビット(たとえば、660、670)のロケーションをマークするDMビット(たとえば、662、672)にビット誤りが発生することによって、メモリデバイスにおける間違った列の復号がもたらされ、リンク保護に失敗する。
【００５３】
本開示のこの態様では、リンクECCパリティビット(たとえば、660および670)は、コマンドアドレス(CA)バス(図1参照)を使用してDMピンの保護を可能にするために、マスク書込みコマンドを2チック動作から4チック動作に拡張することによって保護される。図6Bに示される16ビットバースト長(BL16)を有するマスク書込みデータバースト650の場合、送信されるDMビットが32(たとえば、1バイトについて16ビート)存在する。この構成では、32のDMピンは、マスク書込みコマンド中、コマンド/アドレスバス134(図1)上で、DM ECCパリティビットとして6ビットのSECシーケンスまたは7ビットのSEC-DEDビットシーケンスを送ることによって保護される。他の2ビットは、各128ビット象限(たとえば、Q1およびQ2)が、そのリンクECCパリティビット(たとえば、660および670)をDMピン上に有するか、DMハイビートにあるデータビット上に有するかを示す象限ロケーションコードを提供し得る。
【００５４】
たとえば、図6BのBL16のマスク書込みデータバースト650において、データマスク書込みコマンドにおいて、以下の12ビットが送られ、ここでは、「X」はDon't Careである。
【００５５】
【表２】
2018535494.tif 000004
【００５６】
図7Aは、本開示の態様による、マスク書込み(MWT)コマンド中にホストシステムオンチップ(SoC)と低電力メモリデバイスとの間で転送されるリンク誤り訂正コード(ECC)パリティビットのロケーション保護を示す図である。代表的には、第1のブロックBOおよび第2のブロックB1を有するBL32のマスク書込みデータバースト700が示されている。マスク書込み動作中に、データピンまたはDMピンを介して送信されるリンクECCパリティビット(たとえば、710、720)のロケーションが送信される。この構成では、リンクECCパリティビット710は、ブロックB0のリンク保護を提供するために、第1のマスク書込みデータバイトおよびブロックB0の対応するデータマスクビット712で送信される。本開示のこの態様では、リンクECCパリティビット710は、図6Aおよび図6Bに示すリンクECCパリティビットと比較して(たとえば、256ビットデータの場合には8ビットから9ビットに)拡張される。ブロックB1において、リンクECCパリティビット720は、第1の未使用データマスクビットで送信される。本開示のこの態様は、ブロックB0およびブロックB1内の埋込みリンクECCパリティビットの検出を可能にするために、リンクECCパリティビット(たとえば、710、720)のロケーションの通信を伴う。
【００５７】
本開示のこの態様では、マスク書込みコマンドも、CAバス(図1参照)を使用してリンクECCパリティビットロケーションの通信を可能にするために、2チック動作から4チック動作に拡張される。拡張されたマスク書込みコマンドは、マスク書込みコマンド中に通信に利用可能な12の追加ビットを含む。図7AのBL32のマスク書込みデータバースト700では、送信内のリンクECCパリティビット(たとえば、710、720)のビートロケーションは、5ビットのビートロケーションコード(BL32の場合。BL16の場合は4ビットコード)が与えられる。この5ビットのビートロケーションコードは、2バイト(最大10ビット)をサポートする。さらに、DMラインがDMバイトまたはECCパリティビット(たとえば、710、720)を保持するかどうかを示す(1バイトあたり)ために、ブロックロケーションコードとして2ビット(たとえばフラグ)が指定される。この例では、リンクECCパリティビット710はデータマスクビット712も占有するので、本開示のこの態様は、リンクECCパリティビットを検出するためのより複雑な実装を提供し得る。
【００５８】
たとえば、図7AのBL32のマスク書込みデータバースト700において、マスク書込みコマンドにより、CAバスを介して以下の12ビットが送られ、ここでは、「X」はDon't Careである。
【００５９】
【表３】
2018535494.tif 000005
【００６０】
この例では、バイナリビットシーケンス10011は、ブロックB0内のビット19(b19)を、ECCパリティビット(たとえば、710)を含むものとして識別する。逆に、12ビットストリーム内のDon't Careビット「X」およびB1のECCビット(ECC=「0」)は、ブロックB1においてDMビットが未使用であることを示しているので、ECCパリティビット(たとえば、720)は、最初の9個のDMパリティピンで通信される。対照的に、B0(DM=「1」)のDMビットは、ECCパリティビットがDMピンおよびマスク書込みデータバイトで通信されることを示す。
【００６１】
リンクECCパリティビットの保護とリンクECCパリティビットのロケーションの保護について説明したが、本開示の態様はこれらの構成に限定されないことを理解されたい。可能性のある他の実装形態が存在し得るが、それらはすべて、ECCデータが送信される(たとえば、どのビートで)ロケーションを提供する情報を保護する目的に役立つ。このロケーションは、データマスク動作ごとに異なり、予測できないので、情報は、より低速のライン上で別々に送信され得る。そうでない場合、(ECCが訂正できる前に)ビット誤りがリンクECCパリティビットのロケーションを損なわないことを確実にするために、何らかの他のタイプの保護方式が考案され得る。
【００６２】
図7Bは、本開示の態様による、マスク書込みコマンド中にリンクECCパリティビット保護情報またはECCロケーション情報を通信するためのタイミング図750を示す。タイミング図750は、クロック信号752、およびコマンド/アドレス信号754を示す。本開示のこの態様では、マスク書込み(MW)コマンドの後に、図7Aに示す構成に従って、データ122においてリンクECCパリティビット124が埋め込まれている場所を示すECCロケーションコマンド(たとえばELビット)が来る。代替構成では、ECCロケーションコマンドは、図6Aおよび図6Bに示す構成に従って、DM保護ビットならびに象限ごとのECCロケーション識別ビットを含む。
【００６３】
図8Aは、本開示の態様による、低電力メモリサブシステムにおけるメモリセルアレイおよびリンク誤り訂正の方法を示すフロー図である。方法800は、メモリコントローラが、書込みデータのためのリンクECCパリティビット(たとえば、64ビット/128ビット書込みデータのための8ビット/9ビットECCパリティビット)を生成するブロック802で開始する。ブロック804において、マスク書込み動作が実行されているかどうかが判断される。通常の書込み動作が実行されているとき、ブロック808において、データマスクバーストデータにリンクECCパリティビットが追加される。たとえば、図2Bに示すように、リンクECCパリティビット(E0、...、E15)が未使用DMビット(たとえば、260)を通じてメモリデバイス140に転送される。
【００６４】
マスク書込みコマンドの場合、ブロック806において、リンクECCパリティビットは、第1のアサートされたデータマスクビットに関連する第1のマスク書込みデータバイトを置き換える。たとえば、図3Aに示すように、第1の8ビットリンクECC(たとえば、E0、...、E7)が第1のマスク書込みデータバイト312(たとえば、D<16:23>)内に埋め込まれる。図6Aおよび図6Bに示す構成によれば、低電力メモリサブシステムにおけるリンク誤り訂正および保護の方法は、対応するマスク書込みデータバイトに埋め込まれたリンクECCパリティビットを識別する第1のアサートされたデータマスクビットを保護するために、マスク書込み動作中にデータマスクECCパリティビットを送信するステップを含み得る。この方法はまた、マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内のリンクECCパリティビットのECCロケーションコード(たとえば、象限ロケーションコード)を送信するステップも含む。図7Aに示す構成によれば、この方法は、マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内のリンクECCパリティビットのブロックロケーションを示すビートロケーションコードを送信するステップと、リンクECCパリティビットがあらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信するステップとを含み得る。
【００６５】
再び図8Aを参照すると、ブロック810において、ホスト(たとえば、SoC)は、対象メモリデバイスに書込みデータおよびデータマスクを送り出す。ブロック812において、対象メモリデバイスは、ホストから書込みデータおよびデータマスクを受信する。ブロック820において、マスク書込み動作が実行されているかどうかが判断される。通常の書込み動作が実行されているとき、通常の書込みコマンドを完了させるためにプロセスブロック830〜834が実行される。マスク書込みコマンドの場合、マスク書込みコマンドを完了させるためにプロセスブロック822〜828が実行される。本開示のこの態様では、メモリデバイス140は、通常の書込み動作中に未使用データマスクビット内、またはマスク書込み動作中にアサートされたデータマスクビットに対応するマスク書込みデータバイト内のリンク誤り訂正コード(ECC)パリティビットを読み取るために構成され得る。
【００６６】
図8Bは、本開示の態様による、低電力メモリサブシステムにおける読取り動作のための方法850を示すフロー図である。ブロック852において、メモリコントローラは、対象メモリデバイスに読取りコマンドを発行する。ブロック854において、対象メモリデバイスは、メモリセルアレイから読取りデータを、ECCアレイからメモリECCビットを読み取る。読取り動作では、随意に、メモリECC復号および読取りデータ誤り訂正のためのブロック856および858は、ブロック860および862においてECCエンコーダ/デコーダを使用してメモリセルアレイにおいて引き起こされたビット誤りをメモリコントローラが復元できるので、メモリ実装形態を簡素化するために、また読取り速度を速める(たとえば、読取りコマンドからの読取りレイテンシを低減する)ために省略されることがある。それは、メモリのパフォーマンス(レイテンシ)とメモリサブシステムの信頼性(メモリセルアレイのビット誤り+読取りリンク誤り)との間のトレードオフである。
【００６７】
一構成では、低電力メモリサブシステムは、マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むための手段を含み得る。低電力メモリサブシステムは、マスク書込み動作中にリンクECCパリティビットの少なくともロケーションを保護するための手段も含む。本開示の一態様では、埋込み手段は、埋込み手段によって列挙される機能を実行するように構成された図1のメモリコントローラ110である。本開示の一態様では、保護手段は、保護手段によって列挙される機能を実行するように構成された図1のECCエンコーダ/デコーダロジック120である。
【００６８】
図1のメモリコントローラ110は、マスク書込み動作中にコマンド/アドレスバスを介して、対応するマスク書込みデータバイトに埋め込まれたリンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するためのデータマスクECCパリティビット、およびあらかじめ定められたバースト長の書込みデータ内のリンクECCパリティビットのECCロケーションコード(たとえば、象限ロケーションコード)を送信するための手段も提供し得る。さらに、メモリコントローラ110は、マスク書込み動作中にコマンド/アドレスバスを介して、あらかじめ定められたバースト長の書込みデータ内のリンクECCパリティビットのブロックロケーションを示すビートロケーションコードと、リンクECCパリティビットがあらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、データマスク部分に埋め込まれているかを示すブロックロケーションコードとを送信するための手段も含み得る。別の態様では、上記の手段は、上記の手段によって列挙される機能を実行するように構成されたデバイスまたは任意の層であってよい。
【００６９】
本開示の態様は、リンクECCパリティビットが、マスク書込み動作中にデータ(DQ)ピンまたはデータマスク(DM)ピンを介して送信される技法を説明する。残念ながら、リンクECCパリティのロケーションをマーキングするDMビットにビット誤りが発生すると、ビット誤りにより、間違った列が復号され、リンクECCパリティビットの障害がもたらされる。本開示の態様では、リンクECCパリティビットを使用して書込みデータを保護するだけでなく、リンクECCパリティビットのロケーションも保護するように、マスク書込み動作が拡張される。通常の書込み動作では、リンクECCデータのロケーションは常に既知で予測可能である。読取り動作では、メモリコントローラは、メモリデバイスからDMデータストリーム内のメモリ/リンクECCパリティビットを復元し得る。
【００７０】
しかしながら、マスク書込み動作では、リンクECCパリティビットのロケーションは、マスキングされたバイトの数に基づいて変わる。本開示の一態様では、リンクECCパリティビットのロケーションに関する情報は、より低速の(または場合によってはより信頼性の高い)ライン上で別々に保護され、または通信され得る。本開示のこの態様では、マスク書込みコマンドの後に、書込みデータバーストにおけるDMピンを保護するためのデータマスク(DM)ECCパリティビットが続く。本開示の別の態様では、ECCパリティビットのロケーションは、リンクECCパリティビットが書込みデータバーストに埋め込まれるロケーションを示すために、マスク書込みコマンドとともに送信される。
【００７１】
図9は、本開示の一構成が有利に採用され得る例示的なワイヤレス通信システム900を示すブロック図である。例示のために、図9は、3つのリモートユニット920、930、および950と2つの基地局940とを示す。ワイヤレス通信システムはより多くのリモートユニットおよび基地局を有し得ることを理解されよう。リモートユニット920、930、および950は、開示する低電力メモリサブシステムを含む、ICデバイス925A、925B、および925Cを含む。また、基地局、スイッチングデバイス、およびネットワーク機器を含む、ICを含む任意のデバイスも、開示する低電力メモリサブシステムを含み得ることが認識されよう。図9は、基地局940からリモートユニット920、930、および950への順方向リンク信号980、ならびに、リモートユニット920、930、および950から基地局940への逆方向リンク信号990を示す。
【００７２】
図9では、リモートユニット920はモバイル電話として示され、リモートユニット930はポータブルコンピュータとして示され、リモートユニット950はワイヤレスローカルループシステム内の固定ロケーションリモートユニットとして示されている。たとえば、リモートユニットは、モバイルフォン、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、GPS対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メーター読取り機器などの固定ロケーションデータユニット、またはデータもしくはコンピュータ命令を記憶する、もしくは取り出す任意の他のデバイス、あるいはそれらの任意の組合せであってよい。たとえば、低電力メモリサブシステムを含むリモートユニットは、車両制御システム、サーバコンピューティングシステム、または重要なデータの完全性を明示する他の同様のシステムの中に統合され得る。図9は、開示する低電力メモリサブシステムを含むICデバイス925A、925B、および925Cを示すが、本開示はこれらの例示的な示されるユニットに限定されない。本開示の態様は、低電力メモリサブシステムを含む任意のデバイスにおいて適切に採用され得る。
【００７３】
ファームウェアおよび/またはソフトウェアの実装形態の場合、方法は、本明細書で説明した機能を実行するモジュール(たとえば、手順、関数など)を用いて実装され得る。命令を有形に具現化するいずれの機械可読媒体も、本明細書で説明した方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリに記憶され、プロセッサユニットによって実行され得る。メモリは、プロセッサユニット内でまたはプロセッサユニットの外部に実装され得る。本明細書で使用する「メモリ」という用語は、任意の種類の長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、または他のメモリを指し、いずれかの特定のタイプのメモリもしくはいずれかの特定のメモリ数に限定すべきではなく、また、メモリが記憶される媒体としていずれかの特定のタイプの媒体に限定すべきではない。
【００７４】
機能は、ファームウェアおよび/またはソフトウェアにおいて実装される場合、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶されてもよい。例には、データ構造を用いて符号化されたコンピュータ可読媒体、およびコンピュータプログラムを用いて符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスできる入手可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、所望のプログラムコードを命令もしくはデータ構造の形で記憶するために使用され得るとともに、コンピュータによってアクセスされ得る他の媒体を含むことができ、本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーを用いて光学的に再生する。上記の組合せはまた、コンピュータ可読媒体の範囲内に含まれるものとする。
【００７５】
コンピュータ可読媒体上のストレージに加えて、命令および/またはデータは、通信装置に含まれる伝送媒体上の信号として提供され得る。たとえば、通信装置は、命令およびデータを表す信号を有する送受信機を含んでもよい。命令およびデータは、1つまたは複数のプロセッサに、特許請求の範囲において概説される機能を実装させるように構成される。
【００７６】
本開示およびその利点について詳細に説明したが、添付の特許請求の範囲によって定義される本開示の技術から逸脱することなく、明細書において様々な変更、置換、および改変が行われてもよいことを理解されたい。たとえば、「上」および「下」などの関係性の用語が、基板または電子デバイスに関して使用される。当然、基板または電子デバイスが反転される場合、上は下に、下は上になる。加えて、横向きの場合、上および下は、基板または電子デバイスの側面を指し得る。さらに、本出願の範囲は、本明細書で説明したプロセス、機械、製造、組成物、手段、方法、およびステップの特定の構成に限定されることを意図していない。本開示から当業者が容易に諒解するように、本明細書で説明する対応する構成と実質的に同じ機能を実行するかまたは実質的にそれと同じ結果を達成する、現存するかまたは今後開発されるプロセス、機械、製造、組成物、手段、方法、またはステップが、本開示に従って利用されてもよい。したがって、添付の特許請求の範囲は、そのようなプロセス、機械、製造、組成物、手段、方法、またはステップをそれらの範囲内に含むことを意図する。
【００７７】
本明細書の開示に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装される場合があることを、当業者はさらに諒解されよう。ハードウェアとソフトウェアとのこの互換性を明瞭に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上では全般的にその機能に関して説明された。そのような機能がハードウェアまたはソフトウェアのどちらで実施されるのかは、特定の応用例と、システム全体に課せられる設計制約とに依存する。当業者は説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきでない。
【００７８】
本明細書の開示に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、本明細書で説明する機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、またはそれらの任意の組合せを用いて、実装または実行される場合がある。汎用プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてよい。
【００７９】
本開示に関連して説明した方法またはアルゴリズムのステップは、ハードウェアにおいて直接、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその2つの組合せにおいて実施されてもよい。ソフトウェアモジュールは、RAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在してもよい。プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるように、例示的な記憶媒体がプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化されてよい。プロセッサおよび記憶媒体は、ASICの中に存在してよい。ASICは、ユーザ端末に存在してもよい。代替として、プロセッサおよび記憶媒体は、個別構成要素としてユーザ端末内に存在してもよい。
【００８０】
1つまたは複数の例示的な設計では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つもしくは複数の命令もしくはコードとして、コンピュータ可読媒体上に記憶されてもよく、またはコンピュータ可読媒体を介して送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの伝達を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは、規定されたプログラムコード手段を命令またはデータ構造の形で搬送または記憶するために使用され得るとともに、汎用もしくは専用コンピュータまたは汎用もしくは専用プロセッサによってアクセスされ得る任意の他の媒体を含むことができる。また、任意の接続も厳密にはコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(「DSL」)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標) (disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーを用いて光学的に再生する。上記の組合せはまた、コンピュータ可読媒体の範囲内に含まれるものとする。
【００８１】
上述の説明は、本明細書で説明した様々な態様を当業者が実施できるようにするために提供される。これらの態様への様々な変更が当業者には容易に明らかになり、本明細書において規定された一般原理は他の態様に適用され得る。したがって、特許請求の範囲は、本明細書で示された態様に限定されるようには意図されておらず、特許請求の範囲の文言と矛盾しないすべての範囲に一致すべきであり、ここで、単数形の要素への参照は、特にそのように述べられていない限り、「唯一無二の」を意味するのではなく、「1つまたは複数の」を意味するように意図されている。その他の形で特に述べられない限り、「いくつかの」という用語は、1つまたは複数を指す。項目のリスト「のうちの少なくとも1つ」を指す句は、単一の部材を含む、これらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、aおよびb、aおよびc、bおよびc、ならびにa、bおよびcを包含することを意図している。当業者に知られているか、または後に知られることになる、本開示を通じて説明される様々な態様の要素に対するすべての構造的および機能的同等物は、参照により本明細書に明示的に組み込まれ、特許請求の範囲によって包含されることが意図される。さらに、本明細書で開示したものは、そのような開示が特許請求の範囲に明示的に列挙されているかどうかにかかわらず、公に供されるものではない。いかなるクレーム要素も、要素が「のための手段」という句を使用して明確に記載されていない限り、または、方法クレームの場合、要素が「のためのステップ」という句を使用して記載されていない限り、米国特許法第112条第6項の規定に基づいて解釈されるべきではない。
【符号の説明】
【００８２】
100  ホストシステムオンチップ(SoC)
102  デジタル信号プロセッサ(DSP)
104  グラフィックスプロセッサユニット(GPU)およびマルチメディアエンジン
106  マルチコア中央処理装置(CPU)
108  システムバス
110  メモリコントローラ
120  誤り訂正コード(ECC)エンコーダ/デコーダロジック
122  データ
124  リンクECCパリティビット
130  メモリ物理層(PHY)
132  データバス
134  コマンド/アドレスバス
140  メモリデバイス
142  書込みパス
144  読取りパス
146  入力/出力(IO)ブロック
150  メモリセルアレイ
152  ECCアレイ
154  メモリECCパリティビット
160  リンクECCデコーダおよび訂正ロジック
170  メモリECCエンコーダロジック
172  メモリECCパリティビット
180  メモリECCデコーダおよび訂正ロジック
190  メモリECCエンコーダロジック
210  128ビット書込みデータバースト
260  未使用DMビット
310  第1の書込みデータ
312  第1のマスク書込みデータバイト
320  第2の書込みデータ
322  第2のマスク書込みデータバイト
324  第2の未使用DMビット
402  クロック信号
404  コマンド信号
406  アドレス信号
410  第1のデータ信号
412  第1のデータマスク信号
414  読取りレイテンシ
416  バーストデータ
420  第2のデータ信号
422  第2のデータマスク信号
430  第4のデータ信号
432  第4のデータマスク信号
450  未使用DMビット
500  マスク書込みデータバースト
510  リンクECCパリティビット
520  リンクECCパリティビット
522  第1のアサートされたデータマスクビット
530  リンクECCパリティビット
532  第1のアサートされたデータマスクビット
540  リンクECCパリティビット
542  第1のアサートされたデータマスクビット
550  未使用DMビット
562  第1のアサートされたデータマスクビット
570  リンクECCパリティビット
600  マスク書込みデータバースト
610  リンクECCパリティビット
620  リンクECCパリティビット
622  第1のアサートされたデータマスクビット
630  リンクECCパリティビット
640  リンクECCパリティビット
650  マスク書込みデータバースト
660  リンクECCパリティビット
662  第1のアサートされたデータマスクビット
670  リンクECCパリティビット
672  第1のアサートされたデータマスクビット
700  マスク書込みデータバースト
710  リンクECCパリティビット
712  データマスクビット
720  リンクECCパリティビット
752  クロック信号
754  コマンド/アドレス信号
900  ワイヤレス通信システム
920  リモートユニット
925  ICデバイス
930  リモートユニット
940  基地局
950  リモートユニット
【図１】
2018535494.tif 000006
【図２Ａ】
2018535494.tif 000007
【図２Ｂ】
2018535494.tif 000008
【図３Ａ】
2018535494.tif 000009
【図３Ｂ】
2018535494.tif 000010
【図３Ｃ】
2018535494.tif 000011
【図４】
2018535494.tif 000012
【図５Ａ】
2018535494.tif 000013
【図５Ｂ】
2018535494.tif 000014
【図６Ａ】
2018535494.tif 000015
【図６Ｂ】
2018535494.tif 000016
【図７Ａ】
2018535494.tif 000017
【図７Ｂ】
2018535494.tif 000018
【図８Ａ】
2018535494.tif 000019
【図８Ｂ】
2018535494.tif 000020
【図９】
2018535494.tif 000021
【手続補正書】
【提出日】平成30年5月22日(2018.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
低電力メモリサブシステムにおけるリンク誤り訂正および保護の方法であって、
マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むステップと、
前記マスク書込み動作中にリンク誤りから前記リンクECCパリティビットの少なくともロケーションを保護するステップと
を含む方法。
【請求項２】
前記リンクECCパリティビットの少なくとも前記ロケーションを保護するステップが、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するために、前記マスク書込み動作中にデータマスクECCパリティビットを送信するステップを含む、請求項1に記載の方法。
【請求項３】
前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記マスク書込み動作中にコマンド/アドレスバスを介して、前記データマスクECCパリティビット、および前記リンクECCパリティビットの前記ECCロケーションコードを送信するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記マスク書込み動作中に埋め込むステップが、
あらかじめ定められたバースト長の書込みデータがアサートされたデータマスクビットを含むかどうかを決定するステップと、
前記第1のアサートされたデータマスクビットに対応する、および前記第1のアサートされたデータマスクビット内の第1のマスク書込みデータバイトに前記リンクECCパリティビットを埋め込むステップと、
そうでない場合、前記リンクECCパリティビットを前記未使用データマスクビットに埋め込むステップと
を含む、請求項1に記載の方法。
【請求項６】
前記リンクECCパリティビットの少なくとも前記ロケーションを保護するステップが、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードを送信するステップを含む、請求項1に記載の方法。
【請求項７】
前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記マスク書込み動作中にコマンド/アドレスバスを介して前記ビートロケーションコードおよび前記ブロックロケーションコードを送信するステップをさらに含む、請求項7に記載の方法。
【請求項９】
読取り動作中に読取りデータを捕捉するためのタイミング情報を受信するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
前記低電力メモリサブシステムを、モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合するステップをさらに含む、請求項1に記載の方法。
【請求項１１】
メモリサブシステムであって、
誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラであり、マスク書込み動作中にリンクECCパリティビットを未使用データマスクビットおよび/またはマスク書込みデータに埋め込むように構成され、前記マスク書込み動作中にリンク誤りから前記リンクECCパリティビットの少なくともロケーションを保護するように構成されたメモリコントローラ
を備えるメモリサブシステム。
【請求項１２】
前記メモリコントローラがさらに、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するために、前記マスク書込み動作中にデータマスクECCパリティビットを送信することと、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信することとを行うように構成される、請求項11に記載のメモリサブシステム。
【請求項１３】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記データマスクECCパリティビット、および前記リンクECCパリティビットの前記ECCロケーションコードを送信するように構成される、請求項12に記載のメモリサブシステム。
【請求項１４】
前記メモリコントローラがさらに、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードを送信することと、前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信することとを行うように構成される、請求項11に記載のメモリサブシステム。
【請求項１５】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記ビートロケーションコードおよび前記ブロックロケーションコードを送信するように構成される、請求項14に記載のメモリサブシステム。
【請求項１６】
前記メモリコントローラがさらに、前記あらかじめ定められたバースト長の書込みデータがアサートされたデータマスクビットを含むかどうかを決定することと、前記リンクECCパリティビットを、前記第1のアサートされたデータマスクビットに対応する、および前記第1のアサートされたデータマスクビット内の第1のマスク書込みデータバイトに埋め込むことと、そうでない場合、前記リンクECCパリティビットを前記未使用データマスクビットに埋め込むこととを行うように構成される、請求項15に記載のメモリサブシステム。
【請求項１７】
前記メモリコントローラがさらに、読取り動作中に読取りデータの捕捉を改善するためのタイミング情報を受信するように構成される、請求項11に記載のメモリサブシステム。
【請求項１８】
モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合される、請求項11に記載のメモリサブシステム。
【請求項１９】
メモリサブシステムであって、
マスク書込み動作中にリンクECCパリティビットを未使用データマスクビットおよび/またはマスク書込みデータに埋め込むように構成され、前記マスク書込み動作中にリンク誤りから前記リンクECCパリティビットの少なくともロケーションを保護するように構成される、誤り訂正コード(ECC)エンコーダ/デコーダロジックを有するメモリコントローラと、
少なくともデータバスを介して前記メモリコントローラに結合されたメモリデバイスであり、
前記データバスを介した書込みデータの送信中のリンク誤りの検出および訂正のために構成された、書込みパス内のリンクECCデコーダおよび訂正ロジックと、
メモリECCパリティビットに従ってメモリアレイ内に記憶中の前記書込みデータのメモリ保護のために構成された、前記書込みパス内のメモリECCエンコーダロジックと
を備えるメモリデバイスと
を備えるメモリサブシステム。
【請求項２０】
前記メモリコントローラがさらに、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するために、前記マスク書込み動作中にデータマスクECCパリティビットを送信することと、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信することとを行うように構成される、請求項19に記載のメモリサブシステム。
【請求項２１】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記データマスクECCパリティビット、および前記リンクECCパリティビットのECCロケーションコードを送信するように構成される、請求項20に記載のメモリサブシステム。
【請求項２２】
前記メモリコントローラがさらに、前記マスク書込み動作中にあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードを送信することと、前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードを送信することとを行うように構成される、請求項19に記載のメモリサブシステム。
【請求項２３】
前記メモリコントローラがさらに、前記マスク書込み動作中にコマンド/アドレスバスを介して、前記ビートロケーションコードおよび前記ブロックロケーションコードを送信するように構成される、請求項22に記載のメモリサブシステム。
【請求項２４】
前記メモリコントローラがさらに、あらかじめ定められたバースト長の書込みデータがアサートされたデータマスクビットを含むかどうかを決定することと、前記リンクECCパリティビットを、前記第1のアサートされたデータマスクビットに対応する、および前記第1のアサートされたデータマスクビット内の第1のマスク書込みデータバイトに埋め込むことと、そうでない場合、前記ECCパリティビットを前記未使用データマスクビットに埋め込むこととを行うように構成される、請求項19に記載のメモリサブシステム。
【請求項２５】
前記メモリコントローラがさらに、読取り動作中に読取りデータの捕捉を改善するためのタイミング情報を受信するように構成される、請求項19に記載のメモリサブシステム。
【請求項２６】
モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合される、請求項19に記載のメモリサブシステム。
【請求項２７】
メモリサブシステムであって、
マスク書込み動作中に未使用データマスクビットおよび/またはマスク書込みデータにリンク誤り訂正コード(ECC)パリティビットを埋め込むための手段と、
前記マスク書込み動作中にリンク誤りから前記リンクECCパリティビットの少なくともロケーションを保護するための手段と
を備えるメモリサブシステム。
【請求項２８】
前記マスク書込み動作中にコマンド/アドレスバスを介して、対応するマスク書込みデータバイトに埋め込まれた前記リンクECCパリティビットを識別する少なくとも第1のアサートされたデータマスクビットを保護するためのデータマスクECCパリティビット、およびあらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットのECCロケーションコードを送信するための手段をさらに備える、請求項27に記載のメモリサブシステム。
【請求項２９】
前記マスク書込み動作中にコマンド/アドレスバスを介して、あらかじめ定められたバースト長の書込みデータ内の前記リンクECCパリティビットの前記ブロックロケーションを示すビートロケーションコードと、前記リンクECCパリティビットが前記あらかじめ定められたバースト長の書込みデータのデータ部分に埋め込まれているか、前記データマスク部分に埋め込まれているかを示すブロックロケーションコードとを送信するための手段をさらに備える、請求項27に記載のメモリサブシステム。
【請求項３０】
モバイルフォン、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、固定ロケーションデータユニット、サーバコンピューティングシステムおよび/または車両制御システムの中に統合される、請求項27に記載のメモリサブシステム。
【国際調査報告】
2018535494.tif 000022
2018535494.tif 000023