JP2021068416A - 信頼性、利用可能性、およびスケーラビリティ(ras)の向上のためのメモリワードライン分離 - Google Patents

信頼性、利用可能性、およびスケーラビリティ(ras)の向上のためのメモリワードライン分離 Download PDF

Info

Publication number
JP2021068416A
JP2021068416A JP2020098957A JP2020098957A JP2021068416A JP 2021068416 A JP2021068416 A JP 2021068416A JP 2020098957 A JP2020098957 A JP 2020098957A JP 2020098957 A JP2020098957 A JP 2020098957A JP 2021068416 A JP2021068416 A JP 2021068416A
Authority
JP
Japan
Prior art keywords
memory
data
bits
ecc
memory device
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.)
Pending
Application number
JP2020098957A
Other languages
English (en)
Inventor
エス. ベインズ クルジット
S Bains Kuljit
エス. ベインズ クルジット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2021068416A publication Critical patent/JP2021068416A/ja
Pending legal-status Critical Current

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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリデバイスのエラー処理オーバヘッドを改善するためのアーキテクチャを提供する。【解決手段】内部ECC(エラー検査訂正)を実行するメモリデバイスは、Nビットチャネルを、ECCの適用のために2つのN/2ビットチャネルとして処理する。ECCの各N/2ビット部分は、2つのN/2ビット部分として処理される場合に個別に訂正可能である。メモリデバイスは、2つのサブチャネルとするチャネルに対するECCの適用のための追加のハードウェアを含む。メモリデバイスは、Nビットチャネルの2つのサブチャネルに対するECCの適用を可能にする内部ECCのためのECCビットを格納するべく追加サブアレイを含む。メモリデバイスは、適用される場合に追加サブアレイにアクセスするための追加ドライバを含む。【選択図】図1

Description

優先権
本願は、非仮出願であり、2019年10月28日に出願された米国仮出願番号62/927,116の優先権の利益を請求する。
説明は、一般に、メモリデバイスに関し、より具体的には、説明は、エラー処理によってRAS(信頼性、利用可能性、およびスケーラビリティ)を改善するためのアーキテクチャに関する。
メモリチャネルにおいてエラー処理することを必要とされるオーバヘッドは、より狭いチャネルが用いられるほど、増加し続ける。エラー処理オーバヘッドは、RAS(信頼性、利用可能性、有用性)オーバヘッドと称されることができ、エラー処理がRAS見込みを満たすように用いられる事実を指す。RAS見込みは、多くの場合、最大限のデバイス障害によるエラーが訂正されることができる、最大限のSDDC(単一デバイスデータ訂正)能力に対する見込みを含む。
レガシーSDDCオペレーションは、64データビットごとに8個のECC(また多くの場合エラー訂正コーディングと称されるエラー検査訂正)ビットで、12.5%のオーバヘッドを有する。より狭いチャネルを有するより新しいメモリシステムはなお、SDDCオペレーションに対する8個のECCビットを必要とするが、32ビットチャネルで、オーバヘッドは25%になる。
以下の説明は、実装の例として与えられた図示を有する図の議論を含む。図面は例として理解されるべきであり、限定として解されるべきではない。本明細書で使用される場合、1又は複数の例への言及は、本発明の少なくとも1つの実装に含まれる特定の特徴、構造、又は特性を説明するものとして理解されるべきである。本明細書に現れる「一例では」又は「代替例では」のような文言は、本発明の実装の例を提供し、必ずしも全てが同じ実装を指すとは限らない。しかしながら、それらは必ずしも相互排他的であるというわけでもない。
従来のアーキテクチャに対してデータを分離するための追加ドライバを有するメモリアーキテクチャの例のブロック図である。
図1のメモリアーキテクチャのためのデータアーキテクチャの例のブロック図である。
ECCサブチャネル分離を有するシステムにおける読み出しコマンドのためにECCを適用するための処理の例のフロー図である。
ECCサブチャネル分離を有するシステムにおける書き込みコマンドのためにECCを適用するための処理の例のフロー図である。
ECCサブチャネル分離を実装するためのオンダイエラー検査訂正(ECC)サブシステムの例のブロック図である。
ECCサブチャネル分離が実装されることができるメモリサブシステムの例のブロック図である。
ECCサブチャネル分離が実装されることができるコンピューティングシステムの例のブロック図である。
ECCサブチャネル分離が実装されることができるモバイルデバイスの例のブロック図である。
一部の又は全ての例を示し得る図の非限定的な説明、ならびに他の可能な実装を含む、特定の詳細および実装の説明が続く。
本明細書で説明されるように、メモリデバイスは、内部又はオンダイECCの適用のためのECC(エラー検査訂正)分離のために、複数の個別の部分へ分割される。複数の異なる部分はなお、システムレベルにおいて、メモリコントローラによって、外部又はシステムレベルECCのための1つのセグメントとして処理されることができる。従って、内部ECCは、2つのサブチャネルを個別に訂正することができると同時に、システムレベルECCは、全体のチャネルを訂正するであろう。内部ECC分離は、メモリデバイスが、同じレベルのECCを提供するためにより少ないオーバヘッドを用いることを可能にする。利用可能な追加ECCビットは、追加のメタデータとして用いられることができる。
内部ECCを実行するメモリデバイスは、Nビットチャネルを、ECCの適用のために2つのN/2ビットチャネルとして処理することができる。Nビットチャネルの分割は、チャネルのN個の信号線のためのデータビットを、N/2ビットの2つのグループの各々又はN/2個の信号線の2つの部分として処理することを指すことができる。メモリデバイスは、ECCを、チャネルのN個の信号線に対応するECCデータのNビットに適用する。N/2ビットチャネルに対するECCは、Nビットに対するECCより簡易であり、従って、各N/2ビット部分は、2つのN/2ビット部分として処理される場合に個別に訂正可能であり得る。メモリデバイスは、2つのサブチャネルとしてチャネルにECCを適用するための追加のハードウェアを含むことができる。例えば、メモリデバイスは、Nビットチャネルの2つのサブチャネルに対するECCの適用を可能にする、内部ECCのためのECCビットを格納するべく追加サブアレイを含むことができる。メモリデバイスは、適用される場合に追加サブアレイにアクセスするための追加ドライバを含むことができる。
例えば、x4メモリデバイスは、内部では2つのx2デバイスとして扱われることができる。x2デバイスに対するエラーの訂正は、x4デバイスに対するよりも少ないRAS(信頼性、可用性、および保守性)オーバヘッドを必要とする。RASコードは、単一ビット、単一サブワードライン(SWL)ドライバ、又はSWLドライバの1つのアームのような、共通のメモリエラータイプを決定することを目標とすることができる。サブワードラインへの言及は、ドライバ負荷を低減するためにワードラインを細分化するアーキテクチャを指すことができ、ローカルワードライン(LWL)と称される場合がある。デバイス全体(例えばダイ全体)の障害が上記の障害に対して非常に珍しいということは実験が示してきた。提供されるアーキテクチャは、デバイス全体の障害の訂正をなお可能にすると同時に、より一般的な障害の低コストでの訂正を可能にする。
SWL又はLWLは、用いられる用語に応じて、マスタワードライン(MWL)又はグローバルワードライン(GWL)の一部とみなされることができる。一般には、MWL/GWLは、ドライバがメモリデバイスに対するレイテンシ要件を満たすことができるまで、メモリデバイス内でより小さいチャンクへ分割される。デバイスの分割は、メモリのタイプによって、メモリ製造業者によって、又はドライバデザインによって異なり得る。
全体のSDDC(単一デバイスデータ訂正)に対するRASオーバヘッドは、メモリシステムがより狭いチャネル又はチップキルソリューションを用いるにつれて、増加し続けている。RASオーバヘッドは、代替的に、ECC(エラー検査訂正)オーバヘッドと称されることができる。RASオーバヘッドという表現は、エラー訂正のための全体の目標を指し、同時に、ECCオーバヘッドという表現は、より具体的に、所望のRAS目標を達成するための訂正の機構を指す。
説明したECC分離は、内部ECCに対して半分にECCオーバヘッドを低減し、DIMM(デュアルインラインメモリモジュール)電力を低減することができる。ECC分離を実装するメモリデバイスは、限定された数のI/O(入力/出力)ピンに分離される障害モードを有すると説明されることができる。例えば、x4実装におけるDRAMデバイスは、全ての4DQ信号線の全域で障害を有する代わりに、2つのDQにおいて分離される障害モードを有することに限定されることができる。一例では、異なる実装は、デバイスごとに異なる分離グラニュラリティを有することができる。分離グラニュラリティは、規格によって定義され得る。
DDR5のためのチャネル幅は、DDR4のものの半分であり(例えば、32ビット対64ビット)、より高いスペードで外部へ転送する間に、メモリコアにおいて同じ内部サイクルタイムを保持することを可能にする。内部コアサイクルタイムを変更することは、I/Oサイクルタイムを調整することより著しく高いコストがかかる。DDR5は、BL18のバースト長を有し、デバイスごとに、ECCビットに加えて64ビットを送信する。全体のインタフェースは、x8実装のための4つのデバイス又はx4実装のための8つのデバイスの間で分割される32ビット幅のチャネルになるであろう。
一般に、SDDCを実行するために、システムは、デバイスインタフェースの2倍に等しいECCビットの数を必要とする。従って、x4実装は、チャネル上に8ECCビットを必要とし、x8インタフェースは、16ECCビットを必要とする。SDDCは、x8にとって非実用的になり得るが、x4実装にとってはより扱いやすい。チャネルは、64bデータ+8bECCから、32bデータ+8bECCに向かうと、追加ECCデバイスが、レガシシステムと同じRAS性能を満たすために必要とされるであろう。
図1は、従来のアーキテクチャに対して、データを分離するための追加ドライバを有するメモリアーキテクチャの例のブロック図である。メモリセグメント102は、メモリデバイスが接続されるデータチャネルに対してデータを提供するためのメモリアレイの一部を表す。DDR5(ダブルデータレートバージョン5)データチャネルは、ECCについて16bを有する32bデータバス幅を有し、これは、25%のRAS/ECCオーバヘッドをもたらすであろう。一方、DDR4(ダブルデータレートバージョン4)データチャネルは、ECCについて8ビットを有する64bのデータバス幅を有し、これは、12.5%のオーバヘッドをもたらす。
セグメント102は、各側面にデータの8ビットを駆動するサブワードライン(SWL)ドライバを含むことができる。示されたように、破線ボックスは、ビットの中央におけるドライバ(DRVR)によって駆動されるデータの16ビットを示す。ドライバの左側にあるビットは、ドライバの左サブアレイ又は左アームとみなされることができる。同様に、ドライバの右側にあるビットは、ドライバの右サブアレイ又は右アームとみなされることができる。右および左は、相対的な用語であり、図の向きのみを指すということは理解されるであろう。実際の実装では、左又は右とみなされるビットは、切り替わり得る。従って、左および右アームの説明は、ビットのグループ又はメモリセル又はメモリ位置の間のドライバが、ドライバ回路側のいずれかの物理的位置のビットを駆動し、ドライバ回路と、メモリセル又はメモリアレイのビットセルとの間で駆動される必要がある信号線の長さを低減するという事実のみを指す。ドライバのアクティブコンポーネントから各方向へ向けて駆動されるビットがある。示されるように、1つのアーム(SWLアーム)の障害は、1つのアームが障害を起こすことで、1つのサブアレイがアクセス不可能になるので、8b障害をもたらすということが理解されるであろう。ドライバの障害(SWLドライバ障害)は、両方のアームがアクセス不可能になるので16b障害をもたらす。
セグメント104は、セグメント102のためのチャネルと同様のチャネルを示すが、追加ドライバおよび追加サブアレイを有する。セグメント104は、サブチャネルの間に分離を有して、サブチャネルAおよびサブチャネルBへさらに分割又はパーティション化されるとみなされることができる。セグメント104における各ドライバは、少なくとも左サブアレイ又は右サブアレイを含み、ほとんどのドライバが左と右サブアレイの両方を有する。端部にあるドライバは、1つのアームだけを有してよい。中央における分離は、論理的分離とみなすことができ、ハードウェアの物理的分離でなくてよい。従って、例えば、分離とは、ECCの目的で、1つのECC回路が、1つのサブチャネルにECCを提供し、別個のECC回路が、他のサブチャネルにECCを提供するという事実を指すことができる。分離ハードウェアで、メモリは、全体のチャネルのECC保護を2つの別個のサブ部分として提供することができ、ECCオーバヘッドを簡略化する。
セグメント104は、メモリアレイからフェッチされるデータの分離を提供する。一例では、追加ドライバは、単一のチャネルが、2つの別個の部分として処理されることを可能にする。ドライバを追加することは、ECCオペレーションのための2つの別個の部分におけるデータのアクセスを可能にすることができる。追加ドライバは、チャネルが、内部ECCをデータのより小さな部分に適用する目的で細分化されることを可能にし、従って、全体のメモリインタフェースのサブ部分にエラーを限定する。106の図は、一方の側に左アームを有し、他方の側に右アームを有するドライバの更なる詳細を示す。右アームは、右サブアレイを駆動し、左アームは左サブアレイを駆動する。
一例では、メモリセグメント104は、共通ダイ実装を有するメモリデバイスの一部であることができる。共通ダイ実装は、x4又はx8デバイスのいずれかとして設定可能であるように設計されるメモリデバイスを指す。そのようなデバイスは、選択されたI/Oピンにビットをルーティングする内部ロジックを有するであろう。内部ロジックは、メモリのセグメントにビットをルーティングするためにハードウェア回路とともに、制御ロジックを含むことができる。共通ダイ実装において、一例では、追加ドライバは、ECC分離が例えばデバイスのx8実装において用いられない場合には必要とされない。メモリアレイは、アドレス指定可能メモリ空間の顕著な無駄なく、ECC分離のために追加ドライバの選択的利用を可能にするように設計されることができる。従って、追加サブアレイは、ドライバをアクティブにする必要なく、他の方法で用いられることができる。代替的に、選択されたドライバは、異なる実装のためのデュアルドライバとして設計され得、それは、2つのアームの代わりに1つのアームのみを駆動する。
図2は、図1のメモリアーキテクチャのためのデータアーキテクチャの例のブロック図である。図形202は、DDR5実装のような、コアメモリアーキテクチャを表す。示されたように、メモリコアは、128bの内部プリフェッチを実行し、内部ECCのための8bECCを含む。x8実装は、データの全ての128ビットを用いる一方で、x4実装は、128ビットをプリフェッチし、64ビットのみが、任意の所与のメモリアクセス(例えば、読み出し又は書き込み)オペレーションにおいて用いられることは理解されるであろう。x4実装は、図形202のアレイを有するメモリデバイスが4つのデータ信号線又はデータバスの4つのビットに対するインタフェースを含む実装を指し、それは、Mが信号線の数を表す場合にM=4である実装と言われ得る。x8実装は、図形202のアレイを有するメモリデバイスが8つのデータ信号線又はデータバスの8つのビットに対するインタフェースを含む実装を指し、それは、M=4である実装と言われ得る。
x8実装では、128ビットは、8×16=128であるので、16のバースト長(BL16)を有する8つの信号線に基づいて、各メモリアクセストランザクションのために、ホスト又は関連付けられたメモリコントローラと交換され得る。従って、示されるように、アレイの上半分とアレイの下半分の両方は、データの64bを各々提供する。上半分は、メモリのアーキテクチャおよびアドレス指定構造に基づくことができ、図形202に具体的には示されない。図形202の僅かに網掛け付きのブロックが、上半分を表す場合、非網掛け付きブロックは、下半分を表し、その逆もある。暗い網掛け付きのビットは、ECCビットを表す。x4実装のために、64ビットは、BL16を介して4つの信号線に基づいて(4×16=64)、各メモリアクセストランザクションのために、ホスト又は関連付けられたメモリコントローラと交換されることができる。示されたように、データの64bは、下半分からもしくは上半分からフェッチされることができ、又は、上半分と下半分との間で分割されることができる。複数の半分の分割は、サブアレイからの各8bの4bのみの利用を暗示する。そのような実装では、ECCは、SWLドライバ又はMWL障害を対象にはしないであろう。
図形204は、図形202と同様のアーキテクチャを示すが、分離を含む。図形204は、具体的に、4つのDQ(データ)信号線、DQ[3:0]とインタフェースするためのI/O回路250を有するメモリデバイス210の適用を示す。メモリデバイス210は、複数の異なるサブアレイへ分離されるプリフェッチ230において示されるメモリアレイ220を含む。
図形204は、図1のメモリセグメント104に対応することができる。示されるように、図形204は、プリフェッチのためにデータを提供するメモリアレイを含む。プリフェッチは、図形202と同様にデータの128ビットを含み、分離される部分ごとに、ECCデータの4ビット又は8ビットのいずれかを含む。示されるように、ECCデータの8ビットは、各サブ部分又はサブアレイについて示される。一例では、ECCの4ビットのみが、サブ部分ごとに提供される。一例では、追加ECCビットは、ディレクトリ情報、2レベルメモリ(2LM)メタデータ、データ完全性特徴、又はいくつか他の目的のような他の目的で用いられることができる。他の例では、ECCビットは、オンダイシングルビットエラー訂正のために用いられることができ、ホストには転送されない。そのような例では、データは、ホストにBL16を介して転送されることができる。
プリフェッチされたデータの全てが用いられるというわけではない場合に、プリフェッチされたデータの全ては、センスアンプに配置され、その後、選択されたデータのみが、メモリアクセスのために用いられることは理解されるであろう。従って、プリフェッチ230は、センスアンプにおけるデータを表し、選択240は、読み出しオペレーションのためにI/Oへ送信されるセンスアンプからのデータを表す。
例えば、データは、センスアンプへ配置され、次に、アドレス指定は、書き込みオペレーションのために書き込まれる又は読み出しオペレーションのため読み出される、データの特定の部分を選択するように動作する。アドレス指定は、データを、アーキテクチャのために意味をなす任意の態様で選択することができる。一例では、各バンク(例えばエッジサブワードラインドライバ)における分離のための追加のハードウェア(例えばドライバおよび他のロジック)は、およそ1−2パーセントのダイサイズのみを追加し得る。
一例では、プリフェッチされたデータの一部は、アクセスオペレーションのために選択される。示されるように、8ビットのうちの4ビットは、各サブアレイから選択される。サブアレイごとの選択は、内部ECCのオペレーションが、ドライバ並びにドライバアームにおいて生じるエラーを訂正することを可能にする。SWLアーム又はSWLドライバの障害は、DQビットのうちの2つ(上位又は下位の2DQのいずれか)に影響するのみであろう。そのような障害は、x4実装のためにバンクリソースにおける損失をもたらさない。
書き込みオペレーションのために、図形204における矢印は、逆向きであり得、ここで、選択されたデータは、I/O回路250から受信され、230において、I/O回路から、センスアンプ回路の選択された位置へ提供される。書き込みオペレーションのためにセンスアンプへプリフェッチされる代わりに、センスアンプアレイは、メモリアレイ220の対応する選択されたサブアレイに駆動されることができる。読み出しオペレーションと同様に、センスアンプ要素のアドレス指定は、メモリアレイに何が書き込まれるかを決定することができる。
一例では、専用のx4デバイスのためのメモリデバイス210のスパインにおけるルーティングは、共通のx4/x8デバイスについて、72b対136bであり、2−3%のダイ節約をもたらす。専用部分の実装は、従って、分離に対してダイ領域コストを相殺し得る。
図形204に示されるように、選択されたデータおよびECCビットは、メモリデバイス210のI/O回路250にルーティングされることができる。矢印は、図示された読み出しを下向きに示すが、書き込みについては、データは、メモリデバイス210へ、メモリアレイ220に戻るように書き込まれる選択されたビットになることは理解されるであろう。一例では、分離された面ごとの36ビットは、2つのDQ信号線ごとにBL18を介して転送される。BL18の図は、一例のみである。他の例では、システムは、BL16を介してビットを転送する。デバイスについての合計は、4DQ信号線を介した72ビットであり、2つのx2インタフェースとして内部で扱われる。具体的には示されないが、I/O回路は、ECC回路を含むことができ、又はECC回路は、センスアンプとI/O回路250との間の入/出力パス上に配置されることができる。図形204のアーキテクチャの結果は、BL18で利用可能なデータの64bごとの8bECCであり、レガシシステムと同様に、12.5%のRASオーバヘッドを有する。
具体例は、特定の数のデータおよび特定の数のI/O信号線のためのECCビットを備えることは理解されるであろう。これらの具体例は、制限無しに例示される。一般には、Nビットのチャネルは、2つのN/2ビットサブ部分又はサブチャネルのような、内部ECCのために異なる部分へ細分化されることができる。Nビットは、バースト長にわたって転送される全体のデータ量であることができる(例えば、ECCビットを除く純粋なデータビットである64ビット)。細分化は、代替的に、インタフェース幅に対するとみなされ得る(例えば、x4チャネルは、2つの個別のx2サブチャネルとして扱われる)。従って、Nビットチャネルは、一般に、バースト長にわたって複数のM信号線を介して送信されるNビットのデータを指す。一例では、チャネルインタフェースは、代替的に参照され、データビットが送信又は受信されるMビットインタフェースを指す。通常、ECCビットは、バースト長について全ての信号線を介して受信されるデータビットの全体のペイロードに適用し、チャネルに対するECCビットの適用についての言及は、一般に、ECCビットによってカバーされる全てのビットを指すものと理解されるであろう。
細分化は、複数の異なる部分が分離されるようにデータバスへのビット又はインタフェースを扱うことができ、これは、ECCオペレーションを実施する目的のための分離を指すことができる。関連付けられたメモリコントローラ又はホストによって実装されるシステムレベルECCは、図形204に示すように、ビット又は信号線を2つの個別の分離されたチャネルとして処理する代わりに、全てのビット又は信号線を、単一のチャネルとして処理することができる。従って、例えば、メモリデバイスは、Nビットを、個別のECCで、N/2ビットの2つの部分として処理することができ、同時に、ホストは、Nビットを、システムレベルECCのためにNビットとして処理する。そのようなアプローチは、チャネルの一部のメモリデバイス内での訂正を可能にし、より少ないECCオーバヘッドでデータを再構成することが可能となる。分離は、メモリデバイスが、より具体的には、ECC訂正の目的でエラーを分離することを可能にする。他の例として、メモリデバイスは、データバスインタフェースのN信号線を、個別のECCで、N/2信号線の2つの部分として処理することができ、同時に、ホストは、データバスインタフェースのN信号線を、システムレベルECCのためのNビットチャネルとして処理する。実装は、異なるインタフェースおよび内部アレイのサイズによって異なり得、しかし、結果は、より高い性能で内部ECCを実行する能力を提供すると同時に、システムレベルでのECCオーバヘッドの低減となるであろう。システムレベルECCは、ホスト又は関連付けられたメモリコントローラによって提供されるECCを指し、これは、並列に複数のメモリデバイスからのデータに対してECCオペレーションを提供する。
図3は、ECCサブチャネル分離を有するシステムにおける読み出しコマンドのためにECCを適用するための処理の例のフロー図である。処理300は、サブチャネル分離を含むECCを有するメモリデバイスで、読み出しオペレーションを実施する例を提供する。処理300は、例えば、図2の図形204のメモリデバイス210によって実装されることができる。
メモリデバイスは、ブロック302で、ホストからの読み出しコマンドを受信する。一例では、メモリデバイスは、ブロック304で、Nビットに等しい又はより大きいデータ量で、読み出しに役立つためにデータをプリフェッチする。一例では、ブロック306で、メモリデバイスは、読み出しオペレーションのためにプリフェッチされたデータの一部を選択し、ここで、選択されたデータの量は、Nビットである。
一例では、メモリデバイスは、ECCのためにサブチャネル分離を適用する、又はサブチャネル分離を適用しないのいずれかであるように構成されることができる。システムは、ブロック308で、メモリデバイスの構成を決定することができる。サブチャネル分離が、適用されない場合、ブロック310のNOの分岐で、メモリデバイスは、ブロック312で、Nビットチャネルとして、Nビットに対するECCを実行することができる。
サブチャネル分離が、適用される場合、ブロック310のYESの分岐で、メモリデバイスは、ブロック314で、2つのN/2ビットチャネルとして、Nビットに対するECCを実行することができる。上記で説明されたものと同様に、N/2ビットに対するECCの適用は、合計のビットのそれら自身に対する又はデータバスのビットの一部に対するものであり得る。
1つのチャネル又は2つのサブチャネルのいずれかとして、ECCが適用されると、メモリデバイスは、ブロック316で、ホストにデータを送信するために、I/O回路にデータを提供する。一例では、ホストは、ブロック318で、システムECCを、データのNビットに、単一のNビットチャネルとして適用する。
図4は、ECCサブチャネル分離を有するシステムにおける書き込みコマンドのためにECCを適用するための処理の例のフロー図である。処理400は、サブチャネル分離を含むECCを有するメモリデバイスで、書き込みオペレーションを実施する例を提供する。処理400は、例えば、図2の図形204のメモリデバイス210によって実装されることができる。
一例では、ホスト又は関連付けられたメモリコントローラは、ブロック402で、ECCを、メモリデバイスに対してアドレス指定されたデータのNビットに適用する。ホストは、ブロック404で、メモリデバイスによって受信される書き込みコマンドを送信する。書き込みコマンドとともに、又はそのコマンドの後のいくらかの時間遅延のいずれかで、メモリデバイスは、ブロック406で、書き込みコマンドに関連付けられたホストからのデータのNビットを受信する。
一例では、メモリデバイスは、ECCのためにサブチャネル分離を適用する、又はサブチャネル分離を適用しないのいずれかであるように構成されることができる。システムは、ブロック408で、メモリデバイスの構成を決定することができる。サブチャネル分離が、適用されない場合、ブロック410のNOの分岐で、メモリデバイスは、ブロック412で、Nビットチャネルとして、データのNビットに対するECCを算出することができる。
サブチャネル分離が、適用される場合、ブロック410のYESの分岐で、メモリデバイスは、ブロック414で、2つのN/2ビットチャネルとして、データのNビットに対するECCを算出することができる。上記で説明されたものと同様に、N/2ビットに対するECCの適用は、合計のビット自身に対する又はデータバスのビットの一部に対するものであり得る。1つのチャネル又は2つのサブチャネルのいずれかとして、ECCが算出されると、メモリデバイスは、ブロック418で、データおよび関連付けられたECCビットをメモリデバイスのメモリアレイに格納する。
図5は、ECCサブチャネル分離を実装するためのオンダイエラー検査訂正(ECC)サブシステムの例のブロック図である。システム500は、図形202と互換性のあるシステムに従ったシステムのためのオンダイECC回路の例を提供する。ホスト510は、メモリ520へのアクセスを管理する、メモリコントローラ又は等価物又は代替回路又はコンポーネントを含む。ホスト510は、外部のECCをメモリ520から読み出されたデータに対して実行する。メモリ520は、オンダイECCを実装し、ホスト510にデータを送信する前に、データを検査して訂正する。
システム500は、メモリ520における書き込みパス532を示し、これは、ホスト510からメモリ520に書き込まれるデータのパスを表す。ホスト510は、メモリアレイに書き込むために、メモリ520にデータ542を提供する。一例では、メモリ520は、メモリにデータとともに格納するために、チェックビット生成器522でチェックビット544を生成する。チェックビット544は、ECCビットと称され、メモリアレイへの書き込みおよびメモリアレイからの読み出しにおいて生じ得るエラーを、メモリ520が訂正することを可能にすることができる。データ542およびチェックビット544は、コードワード入力546として含まれることができ、これは、メモリリソースに書き込まれる。
読み出しパス534は、メモリ520からホスト510に読み出されるデータのためのパスを表す。一例では、書き込みパス532および読み出しパス534の少なくとも一定のハードウェアコンポーネントは、同じハードウェアである。一例では、メモリ520は、コードワード出力552を、ホスト510からの読み出しコマンドに応答してフェッチする。コードワードは、データ554およびチェックビット556を含むことができる。データ554およびチェックビット556は、それぞれ、書き込みパス532に書き込まれるデータ542およびチェックビット544に対応することができる。従って、読み出しはデータおよびECCビットにアクセスすることができる。読み出しパス534におけるエラー訂正は、エラーを検出し、エラーを選択的に訂正するために(シングルビットエラーの場合)、対応するH行列に対するXOR(排他的論理和)ツリーの適用を含むことができることは理解されるであろう。技術において理解されるように、H行列は、コードワードの桁の直線状の組み合わせが、どのようにゼロに等しくなるかを示すハミングコードパリティ検査行列を指す。従って、H行列の行は、コードワードの一部となるコンポーネント又は桁について満たされなければならないパリティ検査方程式の係数を特定する。一例では、メモリ520は、メモリがチェックビット556をデータ554に適用して読み出しデータにおけるエラーを検出することを可能にするシンドロームデコード524を含む。シンドロームデコード524は、読み出しデータについて適切なエラー情報を生成することに使用するためのシンドローム558を生成することができる。データ554はまた、検出されたエラーの訂正のためのエラー訂正528に転送されることができる。
一例では、シンドロームデコード524は、シンドローム558をシンドローム生成器526に渡して、エラーベクトルを生成する。一例では、チェックビット生成器522およびシンドローム生成器526は、メモリデバイスのための対応するH行列によって完全に特定される。一例では、読み出しデータにエラーが無い場合(例えばゼロシンドローム558)、シンドローム生成器526は、エラー信号562を生成しない。一例では、読み出しデータに複数のエラーがある場合(例えば、対応するH行列における列のいずれかと一致しない非ゼロシンドローム558)、シンドローム生成器526は、DUE(検出された未訂正エラー)信号564を生成し、これは、検出された未訂正エラーを示す。DUE信号564は、メモリ520が内部ECCによって訂正できなかったマルチビットエラーを示すことができる。
一例では、シングルビットエラーがある場合(例えば、対応するH行列の列の1つに一致する非ゼロシンドローム558)、シンドローム生成器526は、エラー位置560でCE(訂正されたエラー)信号を生成することができ、これはエラー訂正ロジック528に対する訂正されたエラー指標である。エラー訂正528は、訂正されたエラーを、データ554における特定された位置に適用し、ホスト510に出力するために訂正されたデータ566を生成することができる。一例では、エラー訂正528はまた、チェックビット568を生成し、これは、読み出しデータのためのチェックビットを含む。
チェックビット568は、ホスト510に送信される読み出しデータにおけるエラーの状態を示すエラーベクトルとみなされることができる。ゼロシンドローム(エラー無し562)条件、および訂正されたデータ566をもたらす訂正されたSBEは、ホスト510にエラー無しを示す、同じチェックビット568を有することは理解されるであろう。従って、チェックビット568は、メモリ520におけるSBEについての情報ではなく、マルチビットエラーのみを提供する。一例では、システム500は、メモリアレイに戻るように訂正されたデータを書き込む。
一例では、システム500は、アレイの各部分について、内部ECC書き込みパス532および内部ECC読み出しパス534を含む。図形202と互換性のあるシステムに従って、メモリデバイス520は、そのI/Oピンの半分のための1つのパスと、そのI/Oピンの他の半分のための第2のパスとを含むことができる。従って、メモリ520は、ハードウェアリソースでECC分離を実行し、メモリデバイスによって提供される全体のデータの個別のサブ部分に対するECCの適用を分離することができる。
図6は、ECCサブチャネル分離が実装されることができるメモリサブシステムの例のブロック図である。システム600は、コンピューティングデバイスにおけるメモリサブシステムの要素とプロセッサとを含む。システム600は、図形202と互換性のあるシステムを組み込むことができるシステムの一例である。
一例では、メモリデバイス640は、メモリアレイ660におけるECC分離680を含む。ECC分離680は、本明細書の任意の例によるチャネルの細分化内で、メモリデバイスの内部でECC分離を実装するためのハードウェアおよびロジックを表す。ECC分離は、内部ECCオペレーションの目的で個別のサブチャネルとしてメモリアレイの複数の部分を管理するためのより多くのドライバ回路を提供するために追加のハードウェアリソースを含む。ECC分離680は、オンダイECC回路によるECCの適用を制御することができる。
プロセッサ610は、オペレーティングシステム(OS)およびアプリケーションを実行し得るコンピューティングプラットフォームの処理ユニットを表し、処理ユニットは集合的にメモリのホスト又はユーザと称されることができる。OS及びアプリケーションは、メモリアクセスをもたらす動作を実行する。プロセッサ610は、1又は複数の個別のプロセッサを含むことができる。各個別のプロセッサは、単一の処理ユニット、マルチコア処理ユニット、又は組み合わせを含むことができる。処理ユニットは、CPU(中央処理装置)などのプライマリプロセッサ、GPU(グラフィクス処理装置)などの周辺プロセッサ、又はその組み合わせとすることができる。メモリアクセスはまた、ネットワークコントローラ又はハードディスクコントローラのようなデバイスによって開始され得る。このようなデバイスは、一部のシステムのプロセッサと統合され得るか、又はバス(例えば、PCIエクスプレス)、又はそれらの組み合わせを介してプロセッサに接続され得る。システム600は、SOC(システムオンチップ)として実装するか、又はスタンドアロンコンポーネントで実装できる。
メモリデバイスへの言及は、異なるメモリタイプに適用できる。メモリデバイスは、多くの場合、揮発性メモリ技術を指す。揮発性メモリは、デバイスへの電力が遮断されたならば、その状態(ひいては、それに格納されたデータ)が不定となるメモリである。不揮発性メモリは、デバイスへの電力が遮断された場合でさえも状態が確定しているメモリを指す。ダイナミック揮発性メモリは、状態を維持するためにデバイス内に格納されたデータをリフレッシュすることを必要とする。ダイナミック揮発性メモリの一例には、DRAM(ダイナミックランダムアクセスメモリ)、又はシンクロナスDRAM(SDRAM)のような何らかの変形例がある。本明細書で説明されたようなメモリサブシステムは、DDR4(ダブルデータレート(DDR)バージョン4、JESD79−4、JEDECによって2012年9月に当初公開)、LPDDR4(低電力DDRバージョン4、JESD209−4、JEDECによって2014年8月に当初公開)、WIO2(ワイドI/O2(WideIO2)、JESD229−2、JEDECによって2014年8月に当初公開)、HBM(高帯域幅メモリDRAM、JESD235A、JEDECによって2015年11月に当初公開)、DDR5(DDRバージョン5、JEDECによって現在議論されている)、LPDDR5(LPDDRバージョン5、JESD209−5、JEDECによって2019年2月に当初公開)、HBM2(HBMバージョン2、JEDECによって現在議論されている)、又は他、又はメモリ技術の組み合わせ、およびそのような仕様の派生物又は拡張物に基づく技術のような、多数のメモリ技術と互換性があり得る。
一例では、揮発性メモリに加えて、又は代替的に、メモリデバイスへの言及は、デバイスへの電力が遮断された場合でさえも状態が確定している不揮発性メモリデバイスを指すことができる。一例では、不揮発性メモリデバイスは、NAND又はNOR技術のようなブロックアドレス指定可能なメモリデバイスである。従って、メモリデバイスは、また、3次元のクロスポイントメモリデバイス、他のバイトアドレス指定可能不揮発性メモリデバイスのような、将来世代の不揮発性デバイスを含むことができる。メモリデバイスは、メモリセルの抵抗状態又はメモリセルのフェーズに基づいてデータを格納する不揮発性バイトアドレス指定可能媒体を含むことができる。一例では、メモリデバイスは、カルコゲニドフェーズ変化材料(例えばカルコゲニドガラス)を用いることができる。一例では、メモリデバイスは、多閾値レベルのNANDフラッシュメモリ、NORフラッシュメモリ、シングル又はマルチレベルの相変化メモリ(PCM)又はスイッチ付き相変化メモリ(PCMS)、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ(MRAM)メモリ、又はスピントランスファトルク(STT)−MRAM、又は上記のいずれかの組み合わせ、又はその他のメモリとすることができるか、あるいはそれらを含むことができる。
メモリコントローラ620は、システム600のための、1又は複数のメモリコントローラ回路又はデバイスを表す。 メモリコントローラ620は、プロセッサ610によるオペレーションの実行に応答して、メモリアクセスコマンドを生成する制御ロジックを表す。メモリコントローラ620は、1又は複数のメモリデバイス640にアクセスする。メモリデバイス640は、上記で参照されたいずれかによるDRAMデバイスとすることができる。一例では、メモリデバイス640は、異なるチャネルとして構成および管理され、各チャネルは、複数のメモリデバイスに並列に結合するバスおよび信号線に結合する。各チャネルは独立にオペレーション可能である。従って、各チャネルは独立してアクセスおよび制御され、タイミング、データ転送、コマンドおよびアドレス交換、およびその他のオペレーションはチャネルごとに個別である。結合とは、電気的結合、通信的結合、物理的結合、又はこれらの組み合わせを指すことができる。物理的結合は直接接触を含むことができる。電気的結合は、構成要素間の電気的な流れを可能にする、又は構成要素間の信号伝達を可能にする、又はその両方を可能にするインタフェース又は相互接続を含む。通信的結合は、コンポーネントがデータを交換することを可能にする、有線又は無線を含む接続を含む。
一例では、各チャネルの設定は、個別のモードレジスタ又はその他のレジスタ設定によって制御される。一例では、各メモリコントローラ620は個別のメモリチャネルを管理するが、システム600は単一のコントローラにより管理される複数のチャネルを有するように、又は単一のチャネル上に複数のコントローラを有するように構成すされることができる。一例では、メモリコントローラ620は、同じダイ上に実装されるか、又はプロセッサと同じパッケージ空間に実装されるロジックのような、ホストプロセッサ610の一部である。
メモリコントローラ620は、上記で言及したメモリチャネルのようなメモリバスに結合するためのI/Oインタフェースロジック622を含む。I/Oインタフェースロジック622(ならびにメモリデバイス640のI/Oインタフェースロジック642)は、ピン、パッド、コネクタ、信号線、トレース、又はワイヤ、又はデバイスを接続する他のハードウェア、又はこれらの組み合わせを含むことができる。I/Oインタフェースロジック622は、ハードウェアインタフェースを含むことができる。図示されているように、I/Oインタフェースロジック622は、少なくとも信号線用のドライバ/トランシーバを含む。一般に、集積回路インタフェース内のワイヤは、パッド、ピン、又はコネクタと結合して、デバイス間の信号線又はトレース又は他のワイヤをインタフェースする。I/Oインタフェースロジック622は、ドライバ、受信機、トランシーバ、又は終端部、又は他の回路又は回路の組み合わせを含み、デバイス間で信号線上の信号を交換することができる。信号の交換は、送信又は受信の少なくとも1つを含む。メモリコントローラ620からメモリデバイス640のI/O642にI/O622を結合するように示される一方、メモリデバイス640のグループが並列にアクセスされるシステム600の実装において、複数のメモリデバイスは、メモリコントローラ620の同じインタフェースに対するI/Oインタフェースを含み得ることが理解されるであろう。1又は複数のメモリモジュール670を含むシステム600の実装において、I/O642は、メモリデバイス自体上のインタフェースハードウェアに加えて、メモリモジュールのインタフェースハードウェアを含むことができる。他のメモリコントローラ620は、他のメモリデバイス640への個別のインタフェースを含む。
メモリコントローラ620およびメモリデバイス640の間のバスは、メモリコントローラ620をメモリデバイス640に結合する複数の信号線として実装されることができる。バスは、通常、少なくとも、クロック(CLK)632、コマンド/アドレス(CMD)634、書き込みデータ(DQ)および読み出しデータ(DQ)636、およびゼロ又はそれより多い他の信号線638を含む。一例では、メモリコントローラ620およびメモリの間のバス又は接続は、メモリバスと称されることができる。一例では、メモリバスは、マルチドロップバスである。CMDの信号線は、「C/Aバス」(又はADD/CMDバス、又はコマンド(C又はCMD)およびアドレス(A又はADD)情報)の転送を示す他の何らかの名称)と称され得、書き込みおよび読み出しDQの信号線は「データバス」と称されることができる。一例では、独立したチャネルは、異なるクロック信号、C/Aバス、データバス、およびその他の信号線を有する。したがって、システム600は、独立したインタフェースパスを個別のバスとみなされることができるという意味で、複数の「バス」を有するとみなされることができる。明示的に示された線に加えて、バスは、ストローブシグナリング線、警告線、補助線、又は他の信号線、又はそれらの組み合わせのうちの少なくとも1つを含むことができることが理解されるであろう。シリアルバス技術は、メモリコントローラ620およびメモリデバイス640の間の接続のために使用されることができることはまた理解されるであろう。シリアルバス技術の例は、各方向に信号の単一差分ペアを介した組み込まれたクロックを有する高スピードデータの8B10Bエンコーディングおよび送信である。一例では、CMD634は、複数のメモリデバイスと並列に共有される信号線を表す。一例では、複数のメモリデバイスは、CMD634のエンコーディングコマンド信号線を共有し、各々が、個々のメモリデバイスを選択するための個別のチップ選択(CS_n)信号線を有する。
システム600の例において、メモリコントローラ620およびメモリデバイス640の間のバスは、書き込みおよび読み出しデータ、DQ636を運ぶために従属コマンドバス(CMD634)および補助バスを含むことは理解されるであろう。一例では、データバスは、読み出しデータおよび書き込み/コマンドデータのための双方向線を含むことができる。他の例では、補助バスDQ636は、ホストからメモリへの書き込みおよびデータのための一方向書き込み信号線を含むことができ、メモリからホストへのデータの読み出しのための一方向線を含むことができる。選択されたメモリ技術およびシステムデザインに従って、他の信号638は、ストローブ線DQSのようなバス又はサブバスに付随し得る。システム600のデザイン又は実装に基づいて、デザインが複数の実装をサポートする場合、データバスは、メモリデバイス640ごとにより多く又はより少ない帯域幅を有することができる。例えば、データバスは、x4インタフェース、x8インタフェース、x16インタフェース、又は他のインタフェースのいずれかを有するメモリデバイスをサポートすることができる。約束事「xW」において、Wは、メモリデバイス640のインタフェースのインタフェースサイズ又は幅を指す整数であり、メモリコントローラ620とデータを交換するための信号線の数を表す。メモリデバイスのインタフェースサイズは、いくつのメモリデバイスが、システム600においてチャネルごとに同時に使用され、または同じ信号線に並列に結合されることができるかについての制御要因である。一例では、高帯域幅メモリデバイス、ワイドインタフェースデバイス、又は積層メモリ構成、又はそれらの組み合わせは、x128インタフェース、x256インタフェース、x512インタフェース、x1024インタフェース、又は他のデータバスインタフェース幅のような、より幅広いインタフェースを使用可能にすることができる。
一例では、メモリデバイス640およびメモリコントローラ620は、バーストで、又は連続する一連のデータ転送で、データバスを介してデータを交換する。バーストは、バス周波数に関連する転送サイクルの数に対応する。一例では、転送サイクルは、同じクロック又はストローブ信号エッジ(例えば、立ち上がりエッジ)で発生する転送の全クロックサイクルとすることができる。一例では、システムクロックのサイクルを指すすべてのクロックサイクルは、複数の単位間隔(UI)に分割され、各UIは転送サイクルである。例えば、ダブルデータレート転送は、クロック信号の両方のエッジ(例えば、立ち上がりおよび立ち下がり)でトリガする。バーストは、構成された数のUIの間持続でき、これは、レジスタに格納される構成でもよいし、オンザフライでトリガされる構成でもよい。例えば、一連の8つの連続する転送期間は、バースト長8(BL8)とみなされることができ、各メモリデバイス640は、各UI上でデータを転送することができる。したがって、BL8で動作するx8メモリデバイスは、64ビットのデータを転送することができる([8データ信号線]×[バーストを介して線ごとに転送される8データビット])。この簡易な例は単なる例示であり、限定するものではないことが理解されるであろう。
メモリデバイス640は、システム600のためのメモリリソースを表す。一例では、各メモリデバイス640は、個別のメモリダイである。一例では、各メモリデバイス640は、デバイスごと又はダイごとに複数の(例えば、2つの)チャネルとインタフェースすることができる。各メモリデバイス640は、デバイスの実装によって決定される帯域幅(例えば、x16又はx8又は他の何らかのインタフェース帯域幅)を有するI/Oインタフェースロジック642を含む。I/Oインタフェースロジック642は、メモリデバイスがメモリコントローラ620とインタフェースすることを可能にする。I/Oインタフェースロジック642は、ハードウェアインタフェースを含むことができ、メモリコントローラのI/O622に従って、しかし、メモリデバイスエンドにあってよい。一例では、複数のメモリデバイス640は、同じコマンドおよびデータバスと並列に接続される。他の例では、複数のメモリデバイス640は、同じコマンドバスに並列に接続され、異なるデータバスに接続される。例えば、システム600は、並列に結合された複数のメモリデバイス640で構成されることができ、各メモリデバイスはコマンドに応答し、各内部のメモリリソース660にアクセスする。書き込みオペレーションの場合、個々のメモリデバイス640は、データワード全体の一部を書き込むことができ、読み出しオペレーションの場合、個々のメモリデバイス640は、データワード全体の一部をフェッチすることができる。ワードの残りのビットは、他のメモリデバイスによって並列に提供又は受信される。
一例では、メモリデバイス640は、コンピューティングデバイスのマザーボード又はホストシステムプラットフォーム(例えば、プロセッサ610が配置されるPCB(プリント回路基板))上に直接配置される。一例では、メモリデバイス640は、メモリモジュール670へ構成されることができる。一例では、メモリモジュール670は、二重インラインメモリモジュール(DIMM)を表す。一例では、メモリモジュール670は、ホストシステムプラットフォームからの個別の回路、個別のデバイス、又は個別のボードとすることができる、アクセス又は制御回路の少なくとも一部を共有する複数のメモリデバイスの他の編成を表す。メモリモジュール670は、複数のメモリデバイス640を含むことができ、メモリモジュールは、それらに配置された包含済みのメモリデバイスへの複数の個別のチャネルのサポートを含むことができる。他の例では、メモリデバイス640は、マルチチップモジュール(MCM)、パッケージオンパッケージ、シリコン貫通ビア(TSV)、又は他の技術又はそれらの組み合わせなどの技術によって、メモリコントローラ620と同じパッケージに組み込まれ得る。同様に、一例では、複数のメモリデバイス640は、メモリモジュール670へ組み込まれ得るが、これら自身は、メモリコントローラ620と同じパッケージへ組み込まれ得る。これらのおよび他の実装の場合、メモリコントローラ620は、ホストプロセッサ610の一部であり得ることは理解されるであろう。
メモリデバイス640は、各々、1又は複数のメモリアレイ660を含む。メモリアレイ660は、データのためのアドレス指定可能メモリ位置又はストレージ位置を表す。通常、メモリアレイ660は、データの行として管理され、ワードライン(行)およびビットライン(行内の個々のビット)制御を介してアクセスされる。メモリアレイ660は、メモリの、個別のチャネル、ランク、およびバンクとして構成されることができる。チャネルは、メモリデバイス640内のストレージ位置に対する独立制御パスを指し得る。ランクは、並列な複数のメモリデバイス全域での共通の位置(例えば、異なるデバイス内の同じ行のアドレス)を指し得る。バンクは、メモリデバイス640内のメモリ位置のサブアレイを指し得る。一例では、メモリのバンクは、サブバンクのための共有回路の少なくとも一部(例えばドライバ、信号線、制御ロジック)を有するサブバンクへ分割され、個別のアドレス指定およびアクセスを可能にする。チャネル、ランク、バンク、サブバンク、バンクグループ、又はメモリ位置の他の構成、およびそれら構成の組み合わせは、物理的リソースへの適用において重複する可能性があることが理解されるであろう。例えば、同じ物理メモリの位置は、ランクに属することもできる、特定のバンクとして特定のチャネルを介してアクセスすることができる。従って、メモリリソースの構成は、排他的な方法ではなく、包括的な方法で理解されるであろう。
一例では、メモリデバイス640は、1又は複数のレジスタ644を含む。レジスタ644は、メモリデバイスのオペレーションのための構成又は設定を提供する、1又は複数のストレージデバイス又はストレージ位置を表す。一例では、レジスタ644は、制御又は管理オペレーションの一部として、メモリコントローラ620によるアクセスのためのデータを格納するメモリデバイス640のストレージ位置を提供することができる。一例では、レジスタ644は1又は複数のモードレジスタを含む。一例では、レジスタ644は1又は複数の多目的レジスタを含む。レジスタ644内の位置の構成は、異なる「モード」で動作するようにメモリデバイス640を構成することができ、コマンド情報は、モードに基づいてメモリデバイス640内の異なるオペレーションをトリガすることができる。追加的又は代替的に、異なるモードは、モードに応じてアドレス情報又は他の信号線から異なるオペレーションをトリガすることもできる。レジスタ644の設定は、I/O設定の構成(例えば、タイミング、ターミネーション又はODT(オンダイターミネーション)646、ドライバ構成、又は他のI/O設定)を示すことができる。
一例では、メモリデバイス640は、ODT646を、I/O642に関連付けられたインタフェースハードウェアの一部として含むことができる。ODT646は、上記のように構成されることができ、特定の信号線に対するインタフェースに適用されるインピーダンスのための設定を提供する。一例では、ODT646はDQ信号線に適用される。一例では、ODT646はコマンド信号線に適用される。一例では、ODT646はアドレス信号線に適用される。一例では、ODT646は上記の任意の組み合わせに適用されることができる。ODT設定は、メモリデバイスがアクセスオペレーションの選択されたターゲットであるか、非ターゲットデバイスであるかに基づいて変更されることができる。ODT646の設定は、終端回線でのシグナリングのタイミングおよび反射に影響を与える可能性がある。ODT646を慎重に制御することにより、適用されるインピーダンスおよび負荷の整合性を向上させ、高速動作を可能にすることができる。ODT646は、I/Oインタフェース642、622の特定の信号線(例えば、DQ線のためのODT又はCA線のためのODT)に適用されることができ、必ずしも全ての信号線には適用されない。
メモリデバイス640は、メモリデバイス内の内部オペレーションを制御するためのメモリデバイス内の制御ロジックを表すコントローラ650を含む。例えば、コントローラ650は、メモリコントローラ620によって送信されたコマンドをデコードし、コマンドを実行又は満たすための内部オペレーションを生成する。コントローラ650は、内部コントローラと称されることができ、ホストのメモリコントローラ620とは別個のものである。コントローラ650は、レジスタ644に基づいて、どのモードが選択されるかを決定し、選択されたモードに基づいてメモリリソース660へのアクセスのためのオペレーション又は他のオペレーションのための内部実行を構成することができる。コントローラ650は、メモリデバイス640内のビットのルーティングを制御する制御信号を生成して、選択されたモードに適切なインタフェースを提供し、コマンドを適切なメモリ位置又はアドレスに送る。コントローラ650は、コマンドおよびアドレス信号線で受信したコマンドエンコーディングをデコードすることができるコマンドロジック652を含む。したがって、コマンドロジック652は、コマンドデコーダとすることができるか、又はそれを含むことができる。コマンドロジック652を使用すると、メモリデバイスはコマンドを識別し、要求されたコマンドを実行するための内部オペレーションを生成することができる。
再びメモリコントローラ620を参照して、メモリコントローラ620は、コマンド(CMD)ロジック624を含み、これは、メモリデバイス640に送信するコマンドを生成するためのロジック又は回路を表す。コマンドの生成は、スケジューリングの前の又は送信準備ができたキューに入れられたコマンドの準備の前のコマンドを指す。一般に、メモリサブシステムにおけるシグナリングは、メモリデバイスがコマンドを実行すべき1又は複数のメモリ位置を指示又は選択するために、コマンド内又はコマンドに付随するアドレス情報を含む。メモリデバイス640のトランザクションのスケジューリングに応答して、メモリコントローラ620は、メモリデバイス640にコマンドを実行させるために、I/O622を介してコマンドを発行することができる。一例では、メモリデバイス640のコントローラ650は、メモリコントローラ620からI/O642を介して受信されたコマンドおよびアドレス情報を受信してデコードする。受信したコマンドおよびアドレス情報に基づいて、コントローラ650は、コマンドを実行するためのメモリデバイス640内のロジックおよび回路のオペレーションのタイミングを制御することができる。コントローラ650は、タイミングおよびシグナリング要件のような、メモリデバイス640内の規格又は仕様に準拠する役割を果たす。メモリコントローラ620は、アクセスのスケジューリングおよび制御により、規格又は仕様への準拠を実装することができる。
メモリコントローラ620は、スケジューラ630を含み、これは、メモリデバイス640に送信するためのトランザクションを生成して順序付けするためのロジック又は回路を表す。一つの観点から、メモリコントローラ620の主な機能は、メモリデバイス640へのメモリアクセスおよび他のトランザクションをスケジューリングすることであるといえる。そのようなスケジューリングは、トランザクション自体を生成し、プロセッサ610によるデータのリクエストを実装し、データの完全性を維持すること(例えば、リフレッシュに関連するコマンドを用いるような)を含むことができる。トランザクションには、1又は複数のコマンドを含めることができ、その結果、クロックサイクル又は単位間隔のような1又は複数のタイミングサイクルにわたってコマンド又はデータ、あるいはその両方が転送される。トランザクションは、読み出し又は書き込み、又は関連コマンド、又はそれらの組み合わせのようなアクセス用であり、他のトランザクションは、構成、設定、データ完全性、又は他のコマンド又はそれらの組み合わせのためのメモリ管理コマンドを含むことができる。
メモリコントローラ620は通常、システム600の性能を改善するためのトランザクションの選択および順序付けを可能にするスケジューラ630のようなロジックを含む。従って、メモリコントローラ620は、未処理のトランザクションのうちどれが、どういう順序で、メモリデバイス640に送信されるべきであるかを選択することができ、これは、簡略な先入れ先出しアルゴリズムよりはるかに複雑なロジックで通常達成される。メモリコントローラ620は、メモリデバイス640へのトランザクションの送信を管理し、トランザクションに関連付けられたタイミングを管理する。一例では、トランザクションは、メモリコントローラ620によって管理され、スケジューラ630を使用してトランザクションをスケジュールする方法を決定する際に使用できる、決定論的タイミングを有する。
一例では、メモリコントローラ620は、リフレッシュ(REF)ロジック626を含む。リフレッシュロジック626は、揮発性であり、確定状態を保持するためにリフレッシュされる必要があるメモリリソースのために用いられることができる。一例では、リフレッシュロジック626は、リフレッシュの位置、および実行するリフレッシュのタイプを示す。リフレッシュロジック626は、メモリデバイス640内のセルフリフレッシュをトリガするか、又はリフレッシュコマンドを送信することによる、(自動リフレッシュコマンドと称されることができる)外部リフレッシュを実行する、又はそれらの組み合わせとすることができる。一例では、メモリデバイス640内のコントローラ650は、メモリデバイス640内のリフレッシュを適用するためにリフレッシュロジック654を含む。一例では、リフレッシュロジック654は、メモリコントローラ620から受信した外部リフレッシュに従ってリフレッシュを実行するべく、内部オペレーションを生成することができる。リフレッシュロジック654は、リフレッシュがメモリデバイス640を対象とすること、およびどのメモリリソース660をコマンドに応答してリフレッシュするかを決定することができる。
図7は、ECCサブチャネル分離が実装されることができるコンピューティングシステムの例のブロック図である。システム700は、本明細書の任意の例に従ったコンピューティングデバイスを表し、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバ、ゲーム又はエンターテイメント制御システム、組み込まれたコンピューティングデバイス、又は他の電子デバイスとすることができる。システム700は、図形202と互換性のあるシステムを組み込むことができるシステムの例を提供する。
一例では、メモリサブシステム720は、メモリ730におけるECC分離790を含む。ECC分離は、本明細書の任意の例によるチャネルの細分化内で、メモリデバイスの内部でECC分離を実装するためのハードウェアおよびロジックを表す。ECC分離は、内部ECCオペレーションの目的で個別のサブチャネルとしてメモリアレイの複数の部分を管理するためのより多くのドライバ回路を提供するために追加のハードウェアリソースを含む。ECC分離790は、オンダイECC回路によるECCの適用を制御することができる。
システム700は、システム700のための命令の処理又は実行を提供するための、マイクロプロセッサ、中央処理装置(CPU)、グラフィクス処理装置(GPU)、処理コア、もしくは他のプロセッシングハードウェア、又はそれらの組み合わのうちの任意のタイプを含むプロセッサ710を有する。プロセッサ710は、システム700の動作全体を制御し、1又は複数のプログラマブルな汎用又は特定用途マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)等、又は、それらのようなデバイスの組み合わせであり得、又は、それを含み得る。
一例では、システム700は、プロセッサ710に結合されたインタフェース712を含み、それは、メモリサブシステム720又はグラフィクスインタフェースコンポーネント740のような、より高い帯域幅接続を要求するシステムコンポーネントのための、より高いスピードのインタフェース又は高いスループットのインタフェースを表すことができる。インタフェース712は、スタンドアロンコンポーネントであり得る又はプロセッサダイに統合され得るインタフェース回路を表す。インタフェース712は、回路としてプロセッサダイに統合されてもよいし、コンポーネントとしてシステムオンチップに統合されてもよい。有する場合は、グラフィクスインタフェース740は、システム700のユーザに視覚表示を提供するためにグラフィクスコンポーネントにインタフェースする。グラフィクスインタフェース740は、スタンドアロンコンポーネントであり得、又はプロセッサダイもしくはシステムオンチップに統合され得る。一例では、グラフィクスインタフェース740は、ユーザに出力を提供する、高精細(HD)ディスプレイ又はウルトラ高精細(UHD)ディスプレイを駆動することができる。一例では、ディスプレイはタッチスクリーンディスプレイを含むことができる。一例では、グラフィクスインタフェース740は、メモリ730に格納されたデータに基づいて、又はプロセッサ710によって実行されるオペレーションに基づいて、あるいは両方に基づいて表示を生成する。
メモリサブシステム720は、システム700のメインメモリを表し、プロセッサ710により実行されるべきコード、又は、ルーチンの実行に使用されるべきデータ値のためのストレージを提供する。メモリサブシステム720は、リードオンリメモリ(ROM)、フラッシュメモリ、DRAMのようなランダムアクセスメモリ(RAM)の1又は複数の変形、3DXP(3次元のクロスポイント)、もしくは他のメモリデバイス、又はそれらのようなデバイスの組み合わせのような、1又は複数のメモリデバイス730を含むことができる。メモリ730は、とりわけ、オペレーティングシステム(OS)732を格納して、そのホストとして働き、システム700内での命令の実行のためのソフトウェアプラットフォームを提供する。更に、アプリケーション734は、メモリ730から、OS732のソフトウェアプラットフォーム上で実行することができる。アプリケーション734は、1又は複数の機能の実行を実行するためのこれら自身のオペレーションロジックを有するプログラムを表す。プロセス736は、OS732又は1又は複数のアプリケーション734、又はこれらの組み合わせに補助的機能を提供するエージェント又はルーチンを表す。OS732、アプリケーション734、およびプロセス736は、システム700のための機能を提供するソフトウェアロジックを提供する。一例では、メモリサブシステム720は、メモリ730へのコマンドを生成及び発行するメモリコントローラであるメモリコントローラ722を含む。メモリコントローラ722は、プロセッサ710の物理的部分又はインタフェース712の物理的部分であり得ることは理解されるであろう。例えば、メモリコントローラ722は、統合されたメモリコントローラであり得、プロセッサダイ又はシステムオンチップに統合されるように、プロセッサ710を有する回路に統合され得る。
具体的には示されていないが、システム700は、メモリバス、グラフィクスバス、又はインタフェースバスなどのような1又は複数のバス又はバスシステムをデバイス間に含み得ることが理解されるであろう。バス又は他の信号線は、コンポーネントを互いに通信可能に又は電気的に結合するか、又はコンポーネントを通信可能にも電気的にも両方で結合することができる。バスは、物理通信回線、ポイントツーポイント接続、ブリッジ、アダプタ又はコントローラなどの回路、又はこれらの組み合わせを含み得る。バスには、例えば、システムバス、ペリフェラル コンポーネント インターコネクト(PCI)バス、ハイパートランスポート又は業界標準アーキテクチャ(ISA)バス、小型コンピュータシステムインタフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、又はその他のバス、あるいはそれらの組み合わせのうちの1又は複数を含むことができる。
一例では、システム700は、インタフェース712に結合され得るインタフェース714を含む。インタフェース714は、インタフェース712より低スピードのインタフェースであり得る。一例では、インタフェース714は、スタンドアロンコンポーネントおよび統合された回路を含むことができるインタフェース回路を表す。一例では、複数のユーザインタフェースコンポーネントもしくは周辺機器、又は両方は、インタフェース714に結合する。ネットワークインタフェース750は、1又は複数のネットワークを介してリモートデバイス(例えば、サーバ、又は他のコンピューティングデバイス)と通信する能力をシステム700に提供する。ネットワークインタフェース750は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、セルラネットワーク相互接続コンポーネント、USB(ユニバーサルシリアルバス)、又は他の有線又は無線規格に基づく又は専用のインタフェースを含むことができる。ネットワークインタフェース750は、メモリに格納されたデータを送信すること、又はメモリに格納されるデータを受信することを含むことができるリモートデバイスとデータを交換することができる。
一例では、システム700は、1又は複数の入/出力(I/O)インタフェース760を含む。I/Oインタフェース760は、ユーザがシステム700(例えばオーディオ、英数字、触覚/タッチ、又は他のインタフェース方式)とやり取りする1又は複数のインタフェースコンポーネントを含むことができる。周辺インタフェース770は、上記で具体的に言及されていない任意のハードウェアインタフェースを含むことができる。周辺機器は一般に、システム700に従属的に接続する複数のデバイスを指す。従属接続は、オペレーションが実行するおよびユーザがやり取りするソフトウェアプラットフォーム又はハードウェアプラットフォーム又は両方を、システム700が提供するものである。
一例では、システム700は、データを不揮発性方式で格納するためのストレージサブシステム780を含む。一例では、特定のシステム実装において、ストレージ780の少なくとも特定のコンポーネントは、メモリサブシステム720のコンポーネントと重なることができる。ストレージサブシステム780は、1又は複数の磁気、ソリッドステート、3DXP、もしくは光ベースディスク、又はそれらの組み合わせのような、大量のデータを不揮発性方式で格納するための任意の従来の媒体であり得る、又はそれを含むことができるストレージデバイス784を含む。ストレージ784は、コード又は命令およびデータ786を永続的な状態に保持する(すなわち、システム700への電力が遮断されても値が保持される)。メモリ730が通常、命令をプロセッサ710に提供するための実行又は動作するメモリであるが、ストレージ784は「メモリ」であると一般的にみなされ得る。ストレージ784は不揮発性であるが、メモリ730は揮発性メモリを含み得る(すなわち、データの値又は状態は、システム700への電力が遮断された場合には不確定である)。一例では、ストレージサブシステム780は、ストレージ784とインタフェースで接続するコントローラ782を含む。一例では、コントローラ782は、インタフェース714の物理的部分もしくはプロセッサ710であり、又は、プロセッサ710およびインタフェース714の両方における回路もしくはロジックを含むことができる。
電源702は、システム700のコンポーネントに電力を提供する。より具体的には、電源702は通常、システム700のコンポーネントに電力を提供するために、システム700における1又は複数の電源装置704にインタフェースする。一例では、電源装置704は、壁のコンセントへ接続するAC−DC(交流から直流へ)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電)電源702であり得る。一例では、電源702は、外部のAC−DC変換器のような、直流電源を含む。一例では、電源702又は電源装置704は、充電フィールドに近接して充電するための無線充電ハードウェアを含む。一例では、電源702は、内部バッテリ又は燃料電池電源を含むことができる。
図8は、ECCサブチャネル分離が実装されることができるモバイルデバイスの例のブロック図である。システム800は、コンピューティングタブレット、携帯電話又はスマートフォン、ウェアラブルコンピューティングデバイス、又は他のモバイルデバイス、あるいは組み込みコンピューティングデバイスなどのモバイルコンピューティングデバイスを表す。複数のコンポーネントのうちのいくつかが一般的にに示され、そのようなデバイスの全てのコンポーネントがシステム800中に示されるわけではないことが理解されよう。システム800は、図形202と互換性のあるシステムを組み込むことができるシステムの例を提供する。
一例では、メモリサブシステム860は、メモリ862におけるECC分離890を含む。ECC分離は、本明細書の任意の例によるチャネルの細分化内で、メモリデバイスの内部でECC分離を実装するためのハードウェアおよびロジックを表す。ECC分離は、内部ECCオペレーションの目的で個別のサブチャネルとしてメモリアレイの複数の部分を管理するためのより多くのドライバ回路を提供するために追加のハードウェアリソースを含む。ECC分離890は、オンダイECC回路によるECCの適用を制御することができる。
システム800は、システム800の主要な処理オペレーションを実行するプロセッサ810を含む。 プロセッサ810は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、又は他のプロセッシング手段のような1又は複数の物理的なデバイスを含み得る。プロセッサ810によって実行される処理オペレーションは、アプリケーションおよびデバイス機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。処理オペレーションは、人間のユーザもしくは他のデバイスとのI/O(入/出力)に関連するオペレーション、電力管理に関連するオペレーション、システム800を他のデバイスに接続することに関連するオペレーション、又はそれらの組み合わせを含む。処理オペレーションは、オーディオI/O、ディスプレイI/O、又はその他のインタフェース、あるいはそれらの組み合わせに関連するオペレーションも含み得る。プロセッサ810は、メモリに格納されたデータを実行し得る。プロセッサ810は、メモリに格納されたデータの書き込み又は編集を行い得る。
一例では、システム800は、1又は複数のセンサ812を含む。センサ812は、組み込みセンサもしくは外部のセンサに対するインタフェース、又はそれらの組み合わせを表す。センサ812は、システム800が実装される環境又はデバイスの1又は複数の状態を、システム800が監視又は検出することを可能にする。センサ812は、環境センサ(温度センサ、動作検出器、光検出器、カメラ、化学センサ(例えば、一酸化炭素センサ、二酸化炭素センサ、又は他の化学センサ)など)、圧力センサ、加速度計、ジャイロスコープ、医学又は生理学センサ(例えば、生理学的属性を検出するためのバイオセンサ、心拍数モニタ、又はその他のセンサ)、又はその他のセンサ、又はそれらの組み合わせを含むことができる。センサ812は、ユーザの特徴を検出又は認識する指紋認識システム、顔検出又は認識システム、又は他のシステムのような生体認証システム用のセンサも含むことができる。センサ812は、広く理解されるべきであり、システム800で実装され得る多くの異なるタイプのセンサに対して制限しない。一例では、1又は複数のセンサ812は、プロセッサ810に統合されるフロントエンド回路を介してプロセッサ810に結合する。一例では、1又は複数のセンサ812は、システム800の他のコンポーネントを介してプロセッサ810に結合する。
一例では、システム800は、オーディオ機能をコンピューティングデバイスに提供することに関連するハードウェア(例えば、オーディオハードウェアおよびオーディオ回路)およびソフトウェア(例えば、ドライバ、コーデック)コンポーネントを表すオーディオサブシステム820を含む。オーディオ機能は、スピーカー又はヘッドフォン出力、並びにマイク入力を含み得る。そのような機能のためのデバイスは、システム800内へ統合されるか、システム800に接続され得る。一例では、ユーザは、プロセッサ810によって受信及び処理されるオーディオコマンドを提供することによって、システム800とやり取りする。
ディスプレイサブシステム830は、ユーザに提示するための視覚表示を提供するハードウェアコンポーネント(例えば、ディスプレイデバイス)およびソフトウェアコンポーネント(例えば、ドライバ)を表す。一例では、ディスプレイは、ユーザがコンピューティングデバイスとやり取りするための触覚コンポーネント又はタッチスクリーン要素を含む。ディスプレイサブシステム830は、ディスプレイインタフェース832を含み、これは、ユーザに対する表示を提供するために使用される特定のスクリーン又はハードウェアデバイスを含む。一例によると、ディスプレイインタフェース832は、表示に関連する少なくともいくつかの処理を実行するための、プロセッサ810(グラフィクスプロセッサなど)とは別個のロジック回路を含む。一例では、ディスプレイサブシステム830は、出力および入力の両方をユーザに提供するタッチスクリーンデバイスを含む。一例では、ディスプレイサブシステム830は、出力をユーザに提供する高精細(HD)又は超高精細(UHD)ディスプレイを含む。一例では、ディスプレイサブシステムは、タッチスクリーンディスプレイを含むか、それを駆動する。一例では、ディスプレイサブシステム830は、メモリに格納されたデータに基づいて、又はプロセッサ810によって実行されるオペレーションに基づいて、あるいはその両方に基づいて、表示情報を生成する。
I/Oコントローラ840は、ユーザとのやり取りに関連するハードウェアデバイスおよびソフトウェアコンポーネントを表す。I/Oコントローラ840は、オーディオサブシステム820又はディスプレイサブシステム830又はその両方の一部であるハードウェアを管理するよう動作し得る。更に、I/Oコントローラ840は、ユーザがシステムとやり取りすることができるシステム800に接続する追加のデバイスのための接続ポイントを示す。例えば、システム800に取り付けられ得るデバイスは、マイクデバイス、スピーカ又はステレオシステム、ビデオシステム、又は他のディスプレイデバイス、キーボード又はキーパッドデバイス、ボタン/スイッチ、若しくは、カードリーダ又はその他のデバイスのような特定のアプリケーションと共に用いるための他のI/Oデバイスを含み得る。
上述したように、I/Oコントローラ840は、オーディオサブシステム820又はディスプレイサブシステム830又はその両方とやり取りすることができる。例えば、マイク又は他のオーディオデバイスを通じた入力は、システム800の1又は複数のアプリケーション又は機能に対する入力又はコマンドを提供し得る。更に、ディスプレイ出力の代わり、又はこれに加えてオーディオ出力が提供され得る。 他の例において、ディスプレイサブシステムがタッチスクリーンを含む場合には、ディスプレイデバイスはまた、I/Oコントローラ840によって少なくとも部分的に管理され得る入力デバイスとして動作する。I/Oコントローラ840によって管理されたI/O機能を提供するために、また、追加ボタン又はスイッチがシステム800上に存在し得る。
一例では、I/Oコントローラ840は、加速度計、カメラ、光センサもしくは他の環境センサ、ジャイロスコープ、全地球測位システム(GPS)、又はシステム800に含まれ得る他のハードウェアのような、デバイス、又はセンサ812を管理する。入力は、直接的なユーザ対話の一部であり得るとともに、システムに対する環境入力をそのオペレーション(ノイズのフィルタリング処理、輝度検出に関するディスプレイを調節すること、カメラに関するフラッシュを適用すること、又は他の特徴など)に影響を及ぼすように提供し得る。
一例では、システム800は、バッテリ電力使用量、バッテリの充電、および省電力オペレーションに関連する機能を管理する電力管理850を含む。電力管理850は、電源852からの電力を管理し、システム800のコンポーネントへ電力を提供する。一例では、電源852は、壁のコンセントへ接続するAC−DC(交流から直流へ)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電、モーションベース電力)であり得る。一例では、電源852は、外部のAC−DC変換器のような、直流電源によって提供され得る直流電源のみを含む。一例では、電源852は、充電フィールドに近接して充電するための無線充電ハードウェアを含む。一例では、電源852は、内部バッテリ又は燃料電池電源を含むことができる。
メモリサブシステム860は、システム800内で情報を格納するためのメモリデバイス862を含む。メモリサブシステム860は、不揮発性(メモリデバイスへの電力が遮断される場合に状態が変化しない)又は揮発性(メモリデバイスへの電力が遮断される場合に状態が不定である)メモリデバイス又はそれらの組み合わせを含むことができる。メモリ860は、システム800の複数のアプリケーションおよび複数の機能の実行に関するシステムデータ(長期又は一時のいずれにせよ)と同様に、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータを格納し得る。一例では、メモリサブシステム860は、メモリコントローラ864(システム800の制御の一部ともみなされ得、プロセッサ810の一部と潜在的にみなされ得る)を含む。メモリコントローラ864は、メモリデバイス862へのアクセスを制御するコマンドを生成および発行するためのスケジューラを含む。
接続機能870は、システム800が外部デバイスと通信することを可能にするためのハードウェアデバイス(例えば、無線又は有線コネクタおよび通信ハードウェア、又は有線および無線ハードウェアの組み合わせ)およびソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイント又は基地局のような個別のデバイス、および、ヘッドセットプリンタ又は他のデバイスのような周辺機器であり得る。一例によると、システム800は、メモリに格納するために、又は、ディスプレイデバイスに表示するために、外部デバイスとデータを交換する。交換されるデータは、データの読み出し、書き込み又は編集をするためにメモリに格納されるべきデータ、又は、メモリに既に格納されたデータを含み得る。
接続機能870は、複数の異なるタイプの接続機能を含むことができる。一般化すると、システム800は、セルラ接続機能872および無線接続機能874とともに示される。セルラ接続機能872は、概して、GSM(登録商標)(global system for mobile communications:モバイル通信のためのグローバルシステム)もしくは変形もしくは派生物、CDMA(code division multiple access:コード分割多重アクセス)もしくは変形もしくは派生物、TDM(time division multiplexing:時間分割多重化)もしくは変形もしくは派生物、LTE(long term evolution:ロングタームエボリューション―「4G」とも称される)、5G、又は他のセルラーサービス規格を介して提供されたもの等、無線キャリアによって提供されたセルラーネットワーク接続性を指す。無線接続機能874は、セルラーではない無線接続機能を指し、パーソナルエリアネットワーク(Bluetooth(登録商標)など)、ローカルエリアネットワーク(WiFiなど)、ワイドエリアネットワーク(WiMaxなど)、又はその他の無線通信、あるいはそれらの組み合わせを含めることができる。無線通信は、非固体媒体を介した変調された電波放射の使用を通じたデータの転送を指す。有線通信は固体通信媒体を介して行われる。
周辺接続880は、ハードウェアインタフェースおよびコネクタ、ならびに周辺接続を行うためのソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。システム800は、他のコンピューティングデバイスへの(「外へ」882)周辺デバイスとすることも、システム800に接続される周辺デバイス(「外から」884)を有することもできることが理解されるであろう。システム800は、一般に、システム800上でコンテンツを管理(例えば、ダウンロード、アップロード、変更、同期)するような目的のために他のコンピューティングデバイスに接続するための「ドッキング」コネクタを有する。更に、ドッキングコネクタは、例えば、オーディオビジュアル又は他のシステムへと出力されるコンテンツをシステム800が制御することを可能にする特定の周辺機器に、システム800が接続することを可能にし得る。
専用ドッキングコネクタ又は他の専用接続ハードウェアに加えて、システム800は、一般的な又は規格に基づくコネクタを介して周辺接続880を行うことができる。一般的なタイプには、ユニバーサルシリアルバス(USB)コネクタ(複数の異なるハードウェアインタフェースのいずれかを含むことがきる)、ミニディスプレイポート(MDP)を含むディスプレイポート、高精細度マルチメディアインタフェース(HDMI(登録商標))、又はその他のタイプが含まれ得る。
一般に本明細書の説明に関して、一例では、メモリデバイスは、チャネルごとに、追加ドライバおよび追加サブアレイを含み、チャネルは、システムレベルで全体としてチャネル上で、メモリデバイスの内部のサブ部分ごとのエラー検査訂正によって、2つのサブチャネルとして、処理される。
一例では、追加サブアレイは、追加ECC(エラー検査訂正)データを格納する。一例では、データバスは、x4又はx8であり、追加サブアレイおよび追加ドライバはx4実装のみのためのものである。一例では、チャネルは、バースト長にわたって64ビットである。一例では、128ビットは、プリフェッチされ、64ビットのみが、I/O(入/出力)回路に転送される。一例では、メモリデバイスは、ダイナミックランダムアクセスメモリ(DRAM)デバイスを含む。一例では、DRAMデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスDRAM(SDRAM)デバイスを含む。
一般に本明細書の説明に関して、一例では、システムは、コントローラと、チャネルごとに、追加ドライバおよび追加サブアレイを含むメモリデバイスとを有し、チャネルは、システムレベルで全体としてチャネル上で、メモリデバイスの内部のサブ部分ごとのエラー検査訂正により、2つのサブチャネルとして処理される。
一例では、追加サブアレイは、追加ECC(エラー検査訂正)データを格納する。一例では、データバスは、x4又はx8であり、追加サブアレイおよび追加ドライバはx4実装のみのためのものである。一例では、チャネルは、バースト長にわたって64ビットである。一例では、128ビットは、プリフェッチされ、64ビットのみが、I/O(入/出力)回路に転送される。一例では、メモリデバイスは、ダイナミックランダムアクセスメモリ(DRAM)デバイスを含む。一例では、DRAMデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスDRAM(SDRAM)デバイスを含む。一例では、システムはさらに、メモリデバイスに結合されるホストプロセッサデバイス、ホストプロセッサに通信可能に結合されるディスプレイ、ホストプロセッサに通信可能に結合されるネットワークインタフェース、又はシステムに電力を供給するバッテリの1又は複数を含む。
一般に本明細書の説明に関して、一例では、メモリデバイスは、ホストとデータを交換するためのデータ信号線に結合するハードウェアインタフェースと、メモリデバイスの内部で、ECCを、N個のデータビットにN/2ビットの2つのグループとして適用するためのエラー検査訂正(ECC)ハードウェアとを備える。
一例では、Nは64に等しい。一例では、メモリデバイスは、データの128ビットをプリフェッチし、データの64ビットのみをハードウェアインタフェースのI/O(入/出力)回路に転送するためのハードウェアを含む。一例では、メモリデバイスはさらに、メモリアレイを含み、メモリアレイは、N個のデータビットを提供するための複数のサブアレイを含み、メモリアレイは、追加ECCデータを格納するためにN個のデータビットを越える追加サブアレイを含む。一例では、メモリデバイスは、サブアレイに関連付けられたドライバを含み、メモリデバイスは、追加サブアレイへのアクセスを制御するための追加ドライバを含む。一例では、ハードウェアインタフェースは、x4又はx8であるデータバスに結合するためのものであり、ハードウェアインタフェースがx4データバスに結合する場合にのみ、追加サブアレイおよび追加ドライバが適用される。一例では、N個のデータビットは、チャネルを含み、ECCハードウェアは、チャネルを、各々がN/2ビットを有する2つのサブチャネルとして処理し、ホストは、チャネルを、システムレベルECCのためにNビットチャネルとして処理する。一例では、N個のデータビットは、チャネルを含み、ECCハードウェアは、各々がN/2ビットを有する2つのサブチャネルとしてチャネルを処理し、各サブチャネルは個別に訂正可能である。一例では、メモリデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む。
一般に本明細書の説明に関して、一例では、システムは、複数のメモリデバイスであって、メモリデバイスは、ホストとデータを交換するためのデータ信号線に結合するためのハードウェアインタフェースと、メモリデバイスの内部で、ECCを、N個のデータビットにN/2ビットの2つのグループとして適用するためのエラー検査訂正(ECC)ハードウェアを有する、複数のメモリデバイスと、メモリデバイスに結合されるメモリコントローラとを備え、メモリコントローラは、メモリデバイスから受信したデータビットに対して、システムレベルECCを提供する。
一例では、Nは64に等しい。一例では、メモリデバイスは、データの128ビットをプリフェッチし、データの64ビットのみをハードウェアインタフェースのI/O(入/出力)回路に転送するためのハードウェアを含む。一例では、メモリデバイスは、メモリアレイを含み、メモリアレイは、N個のデータビットを提供するための複数のサブアレイを含み、メモリアレイは、追加ECCデータを格納するためにN個のデータビットを越える追加サブアレイを含む。一例では、メモリデバイスは、サブアレイに関連付けられたドライバを含み、メモリデバイスは、追加サブアレイへのアクセスを制御するための追加ドライバを含む。一例では、ハードウェアインタフェースは、x4又はx8であるデータバスに結合するためのものであり、ハードウェアインタフェースがx4データバスに結合する場合にのみ、追加サブアレイおよび追加ドライバが適用される。一例では、N個のデータビットは、チャネルを含み、ECCハードウェアは、チャネルを、各々がN/2ビットを有する2つのサブチャネルとして処理し、メモリコントローラは、N個のデータビットに対するシステムレベルECCを提供する。一例では、N個のデータビットは、チャネルを含み、ECCハードウェアは、各々がN/2ビットを有する2つのサブチャネルとしてチャネルを処理し、各サブチャネルは個別に訂正可能である。一例では、メモリデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む。一例では、システムはさらに、メモリコントローラに結合されるホストプロセッサデバイス、ホストプロセッサに通信可能に結合されるディスプレイ、ホストプロセッサに通信可能に結合されるネットワークインタフェース、又はシステムに電力を供給するバッテリの1又は複数を含む。
一般に本明細書の説明に関して、一例では、方法は、メモリデバイスのメモリアレイのN個のデータビットへのアクセスのためのデータアクセスコマンドを受信する段階と、エラー検査訂正(ECC)を、メモリデバイスの内部で,N個のデータビットに、N/2ビットの2つのグループとして適用する段階とを備える。
一例では、Nは64に等しい。一例では、ECCを内部でN個のデータビットに適用する段階は、読み出しコマンドに応答して送信するN個のデータビットにECCを適用する段階を含み、N/2ビットの個々のグループに対してエラー訂正を実行する段階を含む。一例では、内部でN個のデータビットにECCを適用する段階は、書き込みコマンドとともに受信されたN個のデータビットにECCを適用する段階を含み、N/2ビットの個別のグループに対してエラーコードを書き込む段階を含む。一例では、データの128ビットをプリフェッチして、データの64ビットのみをメモリデバイスのI/O(入/出力)回路に転送する。一例では、メモリアレイは、Nビットを提供するための複数のサブアレイを含み、メモリアレイは、追加ECCデータを格納するためにNビットを越える追加サブアレイを含む。一例では、メモリデバイスは、サブアレイに関連付けられたドライバを含み、メモリデバイスは、追加サブアレイへのアクセスを制御するための追加ドライバを含む。一例では、メモリデバイスは、x4又はx8であるデータバスに結合するハードウェアインタフェースを含み、ハードウェアインタフェースがx4データバスに結合する場合にのみ、追加サブアレイおよび追加ドライバが適用される。一例では、N個のデータビットは、チャネルを含み、ECCを適用する段階は、チャネルを、各々がN/2ビットを有する2つのサブチャネルとして処理する段階を含み、メモリデバイスに結合されたホストは、チャネルをシステムレベルECCのためにNビットチャネルとして処理する。一例では、N個のデータビットは、チャネルを含み、ECCハードウェアは、各々がN/2ビットを有する2つのサブチャネルとしてチャネルを処理し、各サブチャネルは個別に訂正可能である。一例では、メモリデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む。
本明細書に示されているフロー図は、一連の様々な処理動作の例を提供している。フロー図は、ソフトウェア又はファームウェアのルーチンにより実行されるべきオペレーションと、物理的なオペレーションとを示し得る。フロー図は、ハードウェア及び/又はソフトウェアで実装できる、有限状態機械(FSM)の状態の実装の例を示すことができる。特定の順番又は順序で示されてはいるが、別段の定めがない限り、動作の順序は修正され得る。したがって、図示された図表は単なる例として理解されるべきであり、処理は異なる順序で実行でき、いくつかのアクションは並列に実行することができる。更に、1又は複数の動作を省略でき、したがって、全ての実装が全ての動作を実行するわけではない。
様々な動作又は機能が本明細書に記載されている限り、それらはソフトウェアコード、命令、コンフィグレーション、及び/又はデータとして記載又は定義することができる。コンテンツは、直接実行可能なもの(「オブジェクト」又は「実行可能」な形態)、ソースコード、又は差分コード(「デルタ」又は「パッチ」コード)であり得る。本明細書に記載されているソフトウェアコンテンツは、コンテンツが格納された製品を介して、又は通信インタフェースを介してデータを送信するための通信インタフェースを動作させる方法を介して提供することができる。機械可読記憶媒体は、説明されている機能又は動作を機械に実行させることができ、機械(例えば、コンピューティングデバイス、電子システムなど)からアクセスできる形態の情報を格納する、記録可能/記録不可能媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスなど)などの任意の機構を含む。通信インタフェースは、配線で接続された媒体、無線媒体、光媒体などのうちの何れかとインタフェースして他のデバイスと通信する、メモリバスインタフェース、プロセッサバスインタフェース、インターネット接続、ディスクコントローラなどといった任意の機構を含む。通信インタフェースは、複数の構成パラメータを提供すること、及び/又は信号を送信して、通信インタフェースがソフトウェアコンテンツを記述するデータ信号を提供するように準備することにより構成され得る。通信インタフェースは、通信インタフェースに送信された1又は複数のコマンド又は信号を介してアクセスされ得る。
本明細書で説明されている様々なコンポーネントは、説明されている動作又は機能を実行するための手段であり得る。本明細書で説明されている各コンポーネントは、ソフトウェア、ハードウェア又はこれらの組み合わせを含む。当該コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア(例えば、特定用途向けハードウェア、特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)など)、組み込みコントローラ、配線で接続された回路などとして実装され得る。
本明細書に記載される内容に加えて、開示される内容および本発明の実装に対して、それらの範囲から逸脱することなく様々な修正を行うことができる。従って、本明細書における図示例および実施例は例示の意味で解釈されるべきであって、限定の意味で解釈されるべきではない。本発明の範囲は、以下の請求項を参照することによってのみ判断されるべきである。
他の可能な請求項
[項目1]
メモリデバイスであって、
ホストとデータを交換するためにデータ信号線に結合されたハードウェアインタフェースと、
前記メモリデバイスの内部で、ECCをN個のデータビットにN/2ビットの2つのグループとして適用するエラー検査訂正(ECC)ハードウェアと、を備える
メモリデバイス。
[項目2]
Nは、64に等しい
項目1に記載のメモリデバイス。
[項目3]
前記メモリデバイスは、データの128ビットをプリフェッチし、前記データの64ビットのみを前記ハードウェアインタフェースのI/O(入/出力)回路に転送するためのハードウェアを含む
項目2に記載のメモリデバイス。
[項目4]
前記メモリデバイスはさらに、メモリアレイを含み、前記メモリアレイは、前記N個のデータビットを提供するための複数のサブアレイを含み、前記メモリアレイは、追加ECCデータを格納するために前記N個のデータビットを越える追加サブアレイを含む
項目1に記載のメモリデバイス。
[項目5]
前記メモリデバイスは、前記サブアレイに関連付けられたドライバを含み、前記メモリデバイスは、前記追加サブアレイへのアクセスを制御するための追加ドライバを含む
項目4に記載のメモリデバイス。
[項目6]
前記ハードウェアインタフェースは、x4又はx8であるデータバスに結合するためのものであり、前記ハードウェアインタフェースがx4データバスに結合する場合にのみ、前記追加サブアレイおよび追加ドライバが適用される
項目5に記載のメモリデバイス。
[項目7]
前記N個のデータビットはチャネルを含み、前記ECCハードウェアは、ECCを、前記チャネルに、各々がN/2データビットであるサブチャネルで適用し、各サブチャネルは個別に訂正可能である
項目1に記載のメモリデバイス。
[項目8]
前記メモリデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスダイナミックランダムアクセスメモリ(SDRAM)デバイスを備える
項目1に記載のメモリデバイス。
[項目9]
複数のメモリデバイスであって、前記メモリデバイスは、ホストとデータを交換するためのデータ信号線に結合するためのハードウェアインタフェースと、
前記メモリデバイスの内部で、ECCを、N個のデータビットにN/2ビットの2つのグループとして適用するためのエラー検査訂正(ECC)ハードウェアと、を有する、前記複数のメモリデバイスと、
前記メモリデバイスに結合されるメモリコントローラであって、前記メモリコントローラは、前記メモリデバイスから受信したデータビットに対して、システムレベルECCを提供する、前記メモリコントローラと、を備える
システム。
[項目10]
Nは、64に等しい
項目9に記載のシステム。
[項目11]
前記メモリデバイスは、データの128ビットをプリフェッチし、前記データの64ビットのみを、前記ハードウェアインタフェースのI/O(入/出力)回路に転送するためのハードウェアを含む
項目10に記載のシステム。
[項目12]
前記メモリデバイスは、メモリアレイを含み、前記メモリアレイは、前記N個のデータビットを提供するための複数のサブアレイを含み、前記メモリアレイは、追加ECCデータを格納するために前記N個のデータビットを越える追加サブアレイを含む
項目9に記載のシステム。
[項目13]
前記メモリデバイスは、前記サブアレイに関連付けられたドライバを含み、前記メモリデバイスは、前記追加サブアレイへのアクセスを制御するための追加ドライバを含む
項目12に記載のシステム。
[項目14]
前記ハードウェアインタフェースは、x4又はx8であるデータバスに結合するためのものであり、前記ハードウェアインタフェースがx4データバスに結合する場合にのみ、前記追加サブアレイおよび追加ドライバが適用される
項目13に記載のシステム。
[項目15]
前記N個のデータビットはチャネルを含み、前記ECCハードウェアは、ECCを、前記チャネルに、各々がN/2データビットである2つのサブチャネルで適用し、各サブチャネルは個別に訂正可能である
項目9に記載のシステム。
[項目16]
前記メモリデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む
項目9に記載のシステム。
[項目17]
前記メモリコントローラに結合されるホストプロセッサデバイス、ホストプロセッサに通信可能に結合されるディスプレイ、前記ホストプロセッサに通信可能に結合されるネットワークインタフェース、又は前記システムに電力を供給するバッテリのうちの1又は複数をさらに備える
項目9に記載のシステム。
[項目18]
メモリデバイスのメモリアレイのN個のデータビットへのアクセスのためのデータアクセスコマンドを受信する段階と、
エラー検査訂正(ECC)を、メモリデバイスの内部で,N個のデータビットに、N/2ビットの2つのグループとして適用する段階と、を備える
方法。
[項目19]
ECCを内部で前記N個のデータビットに適用する段階は、読み出しコマンドに応答して送信するべく、前記N個のデータビットにECCを適用する段階を有し、N/2ビットの個々のグループに対してエラー訂正を実行する段階を含む
項目18に記載の方法。
[項目20]
前記N個のデータビットに内部でECCを適用する段階は、書き込みコマンドとともに受信された前記N個のデータビットにECCを適用する段階を有し、N/2ビットの個別のグループのためにエラーコードを書き込む段階を含む
項目18に記載の方法。

Claims (17)

  1. メモリデバイスであって、
    ホストとデータを交換するためにN個のデータ信号線に結合されたハードウェアインタフェースと、
    前記メモリデバイスの内部で、ECCを前記N個のデータビットにN/2ビットの2つのグループとして適用するエラー検査訂正ハードウェア(ECCハードウェア)と、を備える
    メモリデバイス。
  2. Nは、64に等しい
    請求項1に記載のメモリデバイス。
  3. 前記メモリデバイスは、データの128ビットをプリフェッチし、前記データの64ビットのみを前記ハードウェアインタフェースのI/O(入力/出力)回路に転送するためのハードウェアを含む
    請求項2に記載のメモリデバイス。
  4. 前記メモリデバイスはさらに、メモリアレイを含み、前記メモリアレイは、前記N個のビットを提供するための複数のサブアレイを含み、前記メモリアレイは、追加ECCデータを格納するために前記N個のビットを越える追加サブアレイを含む
    請求項1から3のいずれか一項に記載のメモリデバイス。
  5. 前記メモリデバイスは、前記サブアレイに関連付けられたドライバを含み、前記メモリデバイスは、前記追加サブアレイへのアクセスを制御するための追加ドライバを含む
    請求項4に記載のメモリデバイス。
  6. 前記ハードウェアインタフェースは、x4又はx8であるデータバスに結合するためのものであり、前記ハードウェアインタフェースがx4データバスに結合する場合にのみ、前記追加サブアレイおよび追加ドライバが適用される
    請求項5に記載のメモリデバイス。
  7. 前記N個のデータビットはチャネルを含み、前記ECCハードウェアは、前記チャネルを、各々がN/2データビットを有する2つのサブチャネルとして処理し、前記ホストは、前記チャネルを、システムレベルECCのためにNビットチャネルとして処理する
    請求項1から6のいずれか一項に記載のメモリデバイス。
  8. 前記メモリデバイスは、ダブルデータレート(DDR)規格と互換性のあるシンクロナスダイナミックランダムアクセスメモリ(SDRAM)デバイスを備える
    請求項1から7のいずれか一項に記載のメモリデバイス。
  9. メモリを有するシステムであって、前記システムは、
    複数のメモリデバイスであって、前記メモリデバイスは、ホストとデータを交換するためのN個のデータ信号線に結合するためのハードウェアインタフェースと、前記メモリデバイスの内部で、ECCを、前記N個のデータビットにN/2ビットの2つのグループとして適用するためのエラー検査訂正ハードウェア(ECCハードウェア)と、を有する、前記複数のメモリデバイスと、
    前記メモリデバイスに結合されるメモリコントローラであって、前記メモリコントローラは、前記メモリデバイスから受信したデータビットに対して、システムレベルECCを提供する、前記メモリコントローラと、を備える
    システム。
  10. 前記メモリデバイスは、メモリアレイを含み、前記メモリアレイは、前記N個のビットを提供するための複数のサブアレイを含み、前記メモリアレイは、追加ECCデータを格納するために前記N個のビットを越える追加サブアレイを含む
    請求項9に記載のシステム。
  11. 前記メモリデバイスは、前記サブアレイに関連付けられたドライバを含み、前記メモリデバイスは、前記追加サブアレイへのアクセスを制御するための追加ドライバを含む
    請求項10に記載のシステム。
  12. 前記N個のデータビットはチャネルを含み、前記ECCハードウェアは、前記チャネルを、各々がN/2ビットを有する2つのサブチャネルとして処理し、前記ホストは、前記チャネルを、システムレベルECCのためにNビットチャネルとして処理する
    請求項9から11のいずれか一項に記載のシステム。
  13. 前記メモリコントローラに結合されるホストプロセッサデバイス、ホストプロセッサに通信可能に結合されるディスプレイ、前記ホストプロセッサに通信可能に結合されるネットワークインタフェース、又は前記システムに電力を供給するバッテリのうちの1又は複数をさらに備える
    請求項9から12のいずれか一項に記載のシステム。
  14. メモリデバイスのための方法であって、
    メモリコントローラからのメモリアクセスコマンドを受信する段階であって、前記メモリデバイスは、N個のデータ信号線によって前記メモリコントローラに結合される、段階と、
    前記メモリアクセスコマンドに応答して、前記メモリデバイスの内部でハードウェアによってエラー検査訂正(ECC)を適用する段階であって、前記N個のデータビットに、N/2ビットの2つのグループとして前記ECCを適用する段階を含む、段階と、を備える
    方法。
  15. 前記N個のデータビットに、N/2ビットの2つのグループとしてECCを適用する段階は、複数のサブアレイからの前記N個のビットにアクセスする段階であって、N/2+1個より多くのドライバで、前記N個のビットを駆動する段階を含む、段階を有する
    請求項14に記載の方法。
  16. 前記N個のデータビットは、チャネルを含み、
    前記ECCを、前記N個のデータビットに、N/2ビットの2つのグループとして適用する段階は、ECCを、前記チャネルに、各々がN/2ビットを有する2つのサブチャネルとして適用する段階を有し、
    前記メモリコントローラは、ECCを、前記チャネルに、システムレベルECCのためにNビットチャネルとして適用する
    請求項14または15に記載の方法。
  17. Nは、64に等しく、前記方法は、
    データの128ビットをプリフェッチする段階と、
    前記メモリコントローラへ、前記データの64ビットのみを転送する段階と、をさらに備える
    請求項14から16のいずれか一項に記載の方法。
JP2020098957A 2019-10-28 2020-06-05 信頼性、利用可能性、およびスケーラビリティ(ras)の向上のためのメモリワードライン分離 Pending JP2021068416A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962927116P 2019-10-28 2019-10-28
US62/927,116 2019-10-28
US16/722,969 2019-12-20
US16/722,969 US11210167B2 (en) 2019-10-28 2019-12-20 Memory wordline isolation for improvement in reliability, availability, and scalability (RAS)

Publications (1)

Publication Number Publication Date
JP2021068416A true JP2021068416A (ja) 2021-04-30

Family

ID=70326734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020098957A Pending JP2021068416A (ja) 2019-10-28 2020-06-05 信頼性、利用可能性、およびスケーラビリティ(ras)の向上のためのメモリワードライン分離

Country Status (3)

Country Link
US (2) US11210167B2 (ja)
JP (1) JP2021068416A (ja)
KR (1) KR20210050431A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314589B2 (en) 2020-05-15 2022-04-26 Intel Corporation Read retry to selectively disable on-die ECC
NL2025650B1 (en) * 2020-05-22 2021-12-07 Microsoft Technology Licensing Llc Implementing fault isolation in dram
WO2022099531A1 (en) * 2020-11-12 2022-05-19 Intel Corporation Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules
US20210141692A1 (en) * 2021-01-22 2021-05-13 Intel Corporation Distribution of error checking and correction (ecc) bits to allocate ecc bits for metadata
EP4167091B1 (en) * 2021-10-12 2024-03-20 Samsung Electronics Co., Ltd. Memory module, memory system, and operation method of memory controller
WO2023208231A1 (zh) * 2022-04-29 2023-11-02 华为技术有限公司 一种内存数据读写方法、系统以及内存控制器

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164944A (en) * 1990-06-08 1992-11-17 Unisys Corporation Method and apparatus for effecting multiple error correction in a computer memory
US6792567B2 (en) * 2001-04-30 2004-09-14 Stmicroelectronics, Inc. System and method for correcting soft errors in random access memory devices
US8117519B2 (en) * 2008-01-15 2012-02-14 Micron Technology, Inc. Memory apparatus and method using erasure error correction to reduce power consumption
WO2011080768A1 (en) 2009-12-29 2011-07-07 Ferdinando Bedeschi Memory devices comprising partitions with particular ecc attributes
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
JP2013522779A (ja) * 2010-03-22 2013-06-13 モサイド・テクノロジーズ・インコーポレーテッド 誤り訂正を有する複合半導体メモリデバイス
US9384128B2 (en) * 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
CN105206411B (zh) * 2014-06-23 2018-03-30 乾坤科技股份有限公司 具有分散式气隙的磁芯部件的制作方法
US9886341B2 (en) * 2014-12-31 2018-02-06 Sandisk Technologies Llc Optimizing reclaimed flash memory
US9606865B2 (en) * 2015-02-23 2017-03-28 Sandisk Technologies Llc Method and apparatus for configuring a memory device
US10061645B2 (en) 2015-06-30 2018-08-28 Qualcomm Incorporated Memory array and link error correction in a low power memory sub-system
JP2017027388A (ja) 2015-07-23 2017-02-02 株式会社東芝 メモリシステムおよび不揮発性メモリの制御方法
JP6158265B2 (ja) 2015-09-16 2017-07-05 株式会社東芝 キャッシュメモリシステム
US10049006B2 (en) * 2015-12-08 2018-08-14 Nvidia Corporation Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands
US9823964B2 (en) * 2015-12-08 2017-11-21 Nvidia Corporation Method for memory scrub of DRAM with internal error correcting code (ECC) bits during either memory activate and/or precharge operation
US10176040B2 (en) 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
CN109074851B (zh) 2016-05-02 2023-09-22 英特尔公司 利用额外系统位的内部错误校验和校正(ecc)
US10268541B2 (en) * 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
EP3305980B1 (en) * 2016-10-05 2019-01-30 Valmet S.p.A. A system and a method for collecting and handling dust in a paper-making environment
KR20180042624A (ko) 2016-10-18 2018-04-26 에스케이하이닉스 주식회사 반도체 메모리 장치
US10628343B2 (en) * 2017-02-03 2020-04-21 Futurewei Technologies, Inc. Systems and methods for utilizing DDR4-DRAM chips in hybrid DDR5-DIMMs and for cascading DDR5-DIMMs
EP3370152B1 (en) * 2017-03-02 2019-12-25 INTEL Corporation Integrated error checking and correction (ecc) in memory devices with fixed bandwidth interfaces
US10482943B2 (en) 2017-06-28 2019-11-19 Qualcomm Incorporated Systems and methods for improved error correction in a refreshable memory
KR102362229B1 (ko) 2017-08-10 2022-02-11 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
US10606696B2 (en) * 2017-12-04 2020-03-31 International Business Machines Corporation Internally-generated data storage in spare memory locations
US20190243566A1 (en) 2018-02-05 2019-08-08 Infineon Technologies Ag Memory controller, memory system, and method of using a memory device

Also Published As

Publication number Publication date
US11210167B2 (en) 2021-12-28
US20220075689A1 (en) 2022-03-10
US11704194B2 (en) 2023-07-18
US20200133769A1 (en) 2020-04-30
KR20210050431A (ko) 2021-05-07

Similar Documents

Publication Publication Date Title
EP3453022B1 (en) Internal error checking and correction (ecc) with extra system bits
EP3370152B1 (en) Integrated error checking and correction (ecc) in memory devices with fixed bandwidth interfaces
US20220075689A1 (en) Memory wordline isolation for improvement in reliability, availability, and scalability (ras)
EP3910475B1 (en) Read retry to selectively disable on-die ecc
KR102501147B1 (ko) 메모리에서 에러 체킹 및 정정 코드의 확장된 적용
US20210141692A1 (en) Distribution of error checking and correction (ecc) bits to allocate ecc bits for metadata
US20210224155A1 (en) Reduction of latency impact of on-die error checking and correction (ecc)
US11657889B2 (en) Error correction for dynamic data in a memory that is row addressable and column addressable
US11200113B2 (en) Auto-increment write count for nonvolatile memory
WO2022256067A1 (en) Double fetch for long burst length memory data transfer
US20220012173A1 (en) Flexible configuration of memory module data width
US20220093202A1 (en) Adaptive dram (dynamic random access memory) burst length for inline ecc (error checking and correction)
EP4155953A1 (en) Enabling logic for flexible configuration of memory module data width

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240417