(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】インメモリポストパッケージ修復(PPR)のためのインラインバッファ
(51)【国際特許分類】
G11C 29/00 20060101AFI20241112BHJP
G06F 12/06 20060101ALI20241112BHJP
G11C 29/44 20060101ALI20241112BHJP
【FI】
G11C29/00 422
G06F12/06 515Q
G11C29/44 110
【外国語出願】
(21)【出願番号】P 2020157946
(22)【出願日】2020-09-18
【審査請求日】2023-09-07
(32)【優先日】2019-12-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ジョンウォン リー
(72)【発明者】
【氏名】クルジット エス.ベインズ
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2015-207329(JP,A)
【文献】米国特許出願公開第2015/0287480(US,A1)
【文献】特表2017-502386(JP,A)
【文献】米国特許出願公開第2017/0169905(US,A1)
【文献】特開2005-243183(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 29/00
G06F 12/00
G06F 12/06
G11C 29/18
(57)【特許請求の範囲】
【請求項1】
メモリデバイスであって、
論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイと、
前記複数のメモリ行のうちの1つの行の障害(「障害行」)
のポストパッケージ修復(PPR)モードを実行するコントローラとを備え、
前記PPRモードは、前記障害行の前記論理アドレスを前記障害行の物理アドレスから前記予備行の物理アドレスにマッピングし、
前記障害行から前記メモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、
前記内部スクラッチパッドメモリから前記予備行に前記データ内容を転送することを含
み、
前記内部スクラッチパッドメモリは、プリフェッチバッファを含み、
前記プリフェッチバッファは、センスアンプ回路を含む、メモリデバイス。
【請求項2】
前記PPRモードは、ソフトPPR(sPPR)モードを含む、請求項1に記載のメモリデバイス。
【請求項3】
前記PPRモードは、前記メモリデバイスの組込み自己テスト(BIST)に応答したPPRモードを含む、請求項1または2に記載のメモリデバイス。
【請求項4】
前記内部スクラッチパッドメモリは、内部レジスタを含む、請求項1または2に記載のメモリデバイス。
【請求項5】
前記メモリアレイは、複数のメモリバンクを含み、前記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、請求項1~
4のいずれか一項に記載のメモリデバイス。
【請求項6】
メモリデバイスであって、
論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイと、
前記複数のメモリ行のうちの1つの行の障害(「障害行」)のポストパッケージ修復(PPR)モードを実行するコントローラとを備え、
前記PPRモードは、前記障害行の前記論理アドレスを前記障害行の物理アドレスから前記予備行の物理アドレスにマッピングし、
前記障害行から前記メモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、
前記内部スクラッチパッドメモリから前記予備行に前記データ内容を転送することを含み、
前記メモリアレイは、複数のメモリバンクを含み、前記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、メモリデバイス。
【請求項7】
前記障害行から前記内部スクラッチパッドメモリへの前記データ内容の前記転送は、ホストコントローラによってホスト制御され、前記ホストコントローラは、前記データ内容を前記内部スクラッチパッドメモリへ、かつ前記内部スクラッチパッドメモリから前記予備行へ転送させるためのコマンドを提供する、請求項1~
6のいずれか一項に記載のメモリデバイス。
【請求項8】
前記障害行から前記内部スクラッチパッドメモリへの前記データ内容の前記転送は、自律的であり、前記メモリデバイスは、前記メモリデバイスに関連付けられたホストコントローラが前記データ内容を転送するコマンドを送信することなく、内部的に前記データ内容を前記内部スクラッチパッドメモリへ、かつ前記内部スクラッチパッドメモリから前記予備行へ転送する、請求項1~
6のいずれか一項に記載のメモリデバイス。
【請求項9】
前記メモリデバイスは、ダブルデータレート(DDR)規格と互換性のある、同期ダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む、請求項1~
8のいずれか一項に記載のメモリデバイス。
【請求項10】
メモリコントローラと、
前記メモリコントローラに結合されたダイナミックランダムアクセスメモリ(DRAM)デバイスであって、論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイを含むダイナミックランダムアクセスメモリ(DRAM)デバイスと、
前記複数のメモリ行のうちの1つの行の障害(「障害行」)
のポストパッケージ修復(PPR)モードを実行するコントローラとを備え、
前記PPRモードは、前記障害行の前記論理アドレスを前記障害行の前記物理アドレスから前記予備行の前記物理アドレスにマッピングし、前記障害行から前記DRAMデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、前記内部スクラッチパッドメモリから前記予備行に前記データ内容を転送することを含
み、
前記内部スクラッチパッドメモリは、プリフェッチバッファを含み、
前記プリフェッチバッファは、センスアンプ回路を含む、システム。
【請求項11】
メモリコントローラと、
前記メモリコントローラに結合されたダイナミックランダムアクセスメモリ(DRAM)デバイスであって、論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイを含むダイナミックランダムアクセスメモリ(DRAM)デバイスと、
前記複数のメモリ行のうちの1つの行の障害(「障害行」)のポストパッケージ修復(PPR)モードを実行するコントローラとを備え、
前記PPRモードは、前記障害行の前記論理アドレスを前記障害行の前記物理アドレスから前記予備行の前記物理アドレスにマッピングし、前記障害行から前記DRAMデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、前記内部スクラッチパッドメモリから前記予備行に前記データ内容を転送することを含み、
前記メモリアレイは、複数のメモリバンクを含み、前記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、システム。
【請求項12】
前記PPRモードは、ソフトPPR(sPPR)モードを含む、請求項
10または11に記載のシステム。
【請求項13】
前記内部スクラッチパッドメモリは、プリフェッチバッファを含む、請求項11に記載のシステム。
【請求項14】
前記プリフェッチバッファは、センスアンプ回路を含む、請求項13に記載のシステム。
【請求項15】
前記内部スクラッチパッドメモリは、内部レジスタを含む、請求項
10または11に記載のシステム。
【請求項16】
前記コントローラは、前記DRAMデバイスの内部にある、請求項
10または11に記載のシステム。
【請求項17】
前記メモリアレイは、複数のメモリバンクを含み、前記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、請求項
10に記載のシステム。
【請求項18】
前記障害行から前記内部スクラッチパッドメモリへの前記データ内容の前記転送は、前記メモリコントローラによってホスト制御され、前記メモリコントローラは、前記データ内容を前記内部スクラッチパッドメモリへ、かつ前記内部スクラッチパッドメモリから前記予備行へ転送させるためのコマンドを提供する、請求項
10または11に記載のシステム。
【請求項19】
前記障害行から前記内部スクラッチパッドメモリへの前記データ内容の前記転送は、自律的であり、前記DRAMデバイスは、前記DRAMデバイスに関連付けられた前記メモリコントローラが前記データ内容を転送するコマンドを送信することなく、内部的に前記データ内容を前記内部スクラッチパッドメモリへ転送し、かつ前記内部スクラッチパッドメモリから前記予備行へ転送する、請求項
10または11に記載のシステム。
【請求項20】
前記メモリコントローラに結合されたホストプロセッサデバイスと、
ホストプロセッサに通信的に結合されたディスプレイと、
ホストプロセッサに通信的に結合されたネットワークインターフェースと、
前記システムに電力を供給するためのバッテリのうちの1つまたは複数をさらに含む、請求項
10または11に記載のシステム。
【請求項21】
メモリの修復方法であって、
論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイにおいて、前記複数のメモリ行のうちの1つの行の障害(「障害行」)
のポストパッケージ修復(PPR)モードを実行することを含み、前記PPRモードは、
前記障害行の前記論理アドレスを前記障害行の物理アドレスから前記予備行の物理アドレスにマッピングすることと、
前記障害行からメモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送することと、
前記内部スクラッチパッドメモリから前記予備行に前記データ内容を転送することとを含
み、
前記内部スクラッチパッドメモリは、プリフェッチバッファを含み、
前記プリフェッチバッファは、センスアンプ回路を含む、方法。
【請求項22】
メモリの修復方法であって、
論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイにおいて、前記複数のメモリ行のうちの1つの行の障害(「障害行」)のポストパッケージ修復(PPR)モードを実行することを含み、前記PPRモードは、
前記障害行の前記論理アドレスを前記障害行の物理アドレスから前記予備行の物理アドレスにマッピングすることと、
前記障害行からメモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送することと、
前記内部スクラッチパッドメモリから前記予備行に前記データ内容を転送することとを含み、
前記メモリアレイは、複数のメモリバンクを含み、前記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、方法。
【請求項23】
前記障害行から前記内部スクラッチパッドメモリへの前記データ内容の前記転送は、ホストにより制御された転送を含み、メモリコントローラは、前記データ内容を前記内部スクラッチパッドメモリへ、かつ前記内部スクラッチパッドメモリから前記予備行へ転送させるためのコマンドを提供する、請求項21
または22に記載の方法。
【請求項24】
前記障害行から前記内部スクラッチパッドメモリへの前記データ内容の前記転送は、自律的であり、前記メモリデバイスは、関連付けられたメモリコントローラが前記データ内容を転送するコマンドを送信することなく、内部的に前記データ内容を前記内部スクラッチパッドメモリへ転送し、かつ前記内部スクラッチパッドメモリから前記予備行へ転送する、請求項21
または22に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、一般に、コンピュータメモリシステムに関するものであり、より具体的には、本明細書は、ポストパッケージ修復(PPR)のためのメカニズムに関する。
【背景技術】
【0002】
メモリデバイスは障害を受けることがあるが、その障害発生率は、ジオメトリの小型化、及び高密度化に伴い上昇する。エラーが頻発する場合、RAS(信頼性、アクセス可能性、及び保守性)が損なわれることがある。メモリシステムは、通常、修正不可能な状況(例えば、ハードエラーなど)または一時的な問題(例えば、ソフトエラーなど)により発生し得る障害に対処する、1つまたは複数のメカニズムを含む。
【0003】
障害に対処するメカニズムの1つとして、ポストパッケージ修復(PPR)があり、ここでは、メモリシステムがメモリアレイ内のエラーを検出し、障害行を冗長行にマッピングすることができる。PPRは、システムを再起動する必要なく、修復を行うことが可能である。ソフトPPR(sPPR)では、DRAM(ダイナミックランダムアクセスメモリ)デバイスの障害行を予備行に動的にマッピングすることができる。かかるアドレスのマッピングによれば、古い行にアクセス可能となるのを防ぎ、古い行にアクセス不能としながらも、データを古い行に未だ記憶可能とすることができる。
【0004】
sPPRの実装は、従来、メモリコントローラが障害行からすべてのデータを読み込み、それをメモリコントローラ内に一時的に記憶することを含んでいる。メモリコントローラは、障害行を予備行にマッピングした後、メモリデバイスにデータを書き戻してそれを予備行に記憶する必要がある。
【図面の簡単な説明】
【0005】
以下の記載では、実装の一例として付与された例示を有する図面について説明するものとする。図面は、限定としてではなく、一例として理解されるべきものである。本明細書に記載の、1つまたは複数の実施例への言及は、本発明の少なくとも1つの実装に含まれる特定の特徴、構造、または特性を説明するものとして理解されるべきである。本明細書に表される「一実施例では」または「代替的な実施例では」などの語句は、本発明の実装の実施例を提供するものであり、必ずしもすべてが同じ実装を指すとは限らない。ただし、これらは必ずしも相互に排他的ではない。
【0006】
【
図1】ポストパッケージ修復(PPR)のための内部バッファを有するメモリシステムの一例のブロック図である。
【0007】
【
図2】プリフェッチバッファを介してPPRデータを転送するメモリデバイスの一例のブロック図である。
【0008】
【
図3】予備行を有するメモリアレイと、PPR用の内部スクラッチパッドの信頼性とを有するメモリシステムの一例を示すブロック図である。
【0009】
【
図4】プリフェッチバッファアレイを有するメモリデバイスの一例のブロック図である。
【0010】
【
図5】ホスト駆動型PPRの処理の一例のフロー図である。
【0011】
【
図6A】メモリデバイスの自律的なPPRの処理の一例のフロー図を表す。
【
図6B】メモリデバイスの自律的なPPRの処理の一例のフロー図を表す。
【0012】
【
図7】内部スクラッチパッドメモリを有するメモリ内のPPRが実装可能なメモリサブシステムの一例のブロック図である。
【0013】
【
図8】内部スクラッチパッドメモリを有するメモリ内のPPRが実装可能なコンピューティングシステムの一例のブロック図である。
【0014】
【
図9】内部スクラッチパッドメモリを有するメモリ内のPPRが実装可能なモバイルデバイスの一例のブロック図である。
【0015】
以下、一部またはすべての例を示し得る図面の非限定的な説明、および他の可能な実装を含む、特定の詳細及び実装の説明を示す。
【発明を実施するための形態】
【0016】
メモリシステムにおいて、メモリデバイスは、各々の物理アドレスにマッピングされた論理アドレスを有する複数のメモリ行と、その物理アドレスにマッピングされた論理アドレスを有しない少なくとも1つの予備行とを有するメモリアレイを有する。物理アドレスにマッピングされている論理アドレスを有する行は、メモリアレイのアクティブな行である。物理アドレスにマッピングされた論理アドレスを有しない行は、予備行または冗長行である。ポストパッケージ修復(PPR)操作、特にソフトPPR(sPPR)で使用するための1つまたは複数の冗長行を有することができる。
【0017】
メモリシステムは、アクティブなメモリ行のうちの1つの行の障害(「障害行」)を検出する操作を実行し、それを修復するためにPPRモードを実行するコントローラを含む。一実施例では、コントローラは、メモリデバイスの内部にあり、メモリ内でエラー検出及びPPR操作を可能にする。一実施例では、コントローラは、メモリデバイスの外部にあり、例えば、メモリサブシステムコントローラまたはメモリモジュールコントローラであり得る。外部コントローラは、エラーを検出して、PPR操作用のメモリ内で少なくともいくつかの内部操作を行わせることができる。
【0018】
結果的に、PPRは障害行を予備行または冗長行にマッピングさせる。このマッピングは、障害行から予備行への論理アドレスのマッピングを含む。論理アドレスは、メモリアクセス操作を実行するためにホストによって認識及び使用されるアドレスである。論理アドレスを異なる物理リソースに内部マッピングすることは、異なる物理リソースがアクセス可能である場合でも、ホストがメモリデバイスとどのようにインターフェース接続するかに影響しない。
【0019】
メモリデバイスは、障害行の内容を一時的に記憶するための内部バッファまたは内部スクラッチパッドメモリを含み、障害行の内容をローカルに記憶し、障害行から予備行にデータ内容を転送することを可能とする。スクラッチパッドメモリは、ある操作で使用するためのデータを記憶する一時的な記憶構成要素または中間的な記憶構成要素として理解することができ、典型的には、その操作の完了後にアクセスされることはない。スクラッチパッドメモリは、エラーを検出するコントローラ内ではなく、メモリ内にあるため、内部と称することができる。一実施例では、スクラッチパッドメモリは、メモリデバイス内のレジスタデバイスであり得る。一実施例では、スクラッチパッドメモリは、メモリデバイスのプリフェッチバッファである。一実施例では、スクラッチパッドメモリは、プリフェッチバッファとして、またはPPR転送バッファとして使用することができる追加的なセンスアンプである。
【0020】
図1は、ポストパッケージ修復(PPR)のための内部バッファを有するメモリシステムの一例のブロック図である。システム100は、データを記憶するためのメモリデバイス120と、メモリデバイス120へのアクセスを制御するためのメモリコントローラ110とを含むメモリシステムの一例を提供する。メモリデバイス120は、バス140を介してメモリコントローラ110に結合する。
【0021】
一実施例では、メモリデバイス120は、複数のメモリバンクに論理的に編成されたメモリセルアレイ130を含む。
システム100は、N個のバンク、バンク[0]~バンク[N-1]を例示しており、ここで、Nは、任意の整数1以上をとり得る。典型的には、Nは2進数となるが、必ずしも2進数である必要はない。メモリバンクとは、個別にアドレス指定される列の群を指し、ここで、異なるバンクは同じ行アドレス、列アドレス、または行と列のアドレスを用いることができるが、異なるメモリセルにアクセスするための異なるバンクアクセスを有する。行または列への参照とは、一般に、メモリセルアレイ130の1つまたは複数の特定のセルにアドレス情報をデコードするのに用いられるアドレス指定メカニズムを指す。行及び列とは、一般に、メモリセルアレイ130のアレイまたはマトリックスレイアウトを指すが、すべてのセルが物理的に直線的な行または直線的な列に配置されていることを必ずしも意味しない。
【0022】
メモリセルアレイ130は、1箇所(例えば、シングルビットまたはマルチビットセル)あたり1つまたは複数のビットを記憶することができるメモリセルまたはビットセルを含む。一実施例では、メモリセルアレイ130は、システム100のためのメインメモリまたは揮発性メモリを表す。冗長WL(ワードライン)132は、メモリセルアレイ130から障害したワードラインをマップアウトすることができる1つまたは複数の予備ワードラインを表す。一実施例では、冗長WL132は、特定のバンクに限定された予備WLを表す。冗長WL132を特定のバンクに限定することで、別のバンクがメモリコントローラ110によってアクセスされることを可能にしながらも、1つのバンクに対するPPR操作の実行を可能にすることができる。
【0023】
メモリデバイス120は、メモリコントローラ110からのコマンドをデコードし、コマンドに応答してメモリセルアレイ130へのアクセスを管理するためのロジック126を含む。一実施例では、ロジック126はステートマシンとして実装され、状態遷移はコマンドの様々な入力制御信号に基づく。一実施例では、ロジック126は、データの1つまたは複数のラインまたは行をインラインバッファアレイ122にフェッチし、メモリセルアレイ130の障害行から冗長ワードライン132の予備行へのデータの転送を可能にするように構成されている。
【0024】
一実施例では、メモリコントローラ110は、システム100のプロセッサデバイス(図示せず)の一部である。メモリコントローラ110は、システム100のためのメモリデバイス120へのアクセスを制御し、ホストと称することができる。一実施例では、メモリデバイス120は、メモリダイまたはメモリマルチチップパッケージを表す。
一実施例では、メモリデバイス120は、1つまたは複数のメモリセルアレイ130が組み込まれるモジュール(例えば、デュアルインラインメモリモジュール(DIMM))またはボードを表す。
【0025】
一実施例では、メモリデバイス120は、インラインバッファアレイ122を含む。インラインバッファアレイ122は、メモリデバイス120がPPR手順またはPPR操作の一部として障害したワードラインの内容を冗長WL132に転送するために使用する内部レジスタまたは内部バッファまたは他のスクラッチパッドメモリデバイスを表す。代わりに、障害したワードラインまたは障害した行は、障害行または障害WLとも称することができ、複数のエラーを有する行/ワードラインを指している。一実施例では、行はワードラインと等価である。
一実施例では、ワードラインは、1ページのデータを表す。行は、行内のエラー数の結果として、修正不可能なエラーにつながる場合に、マップアウトすることができる。
【0026】
一実施例では、メモリデバイス120は、冗長WLレジスタ124を含む。
冗長WLレジスタ124は、メモリデバイス120が障害行を冗長WL132にマップアウトするのに用いることができるレジスタを表している。
より具体的には、冗長WLレジスタ124は、障害WLの物理アドレスに関連付けられた論理アドレスを冗長WL132の物理アドレスにマッピング可能とするために、障害WLのアドレスを記憶するための位置を提供する。メモリ120は、障害WLに関連付けられた論理アドレスを予備WLの物理アドレスにマッピングすることができると言える。障害WLの予備WLへのマップアウトは、ソフトPPR(sPPR)またはハードPPR(hPPR)などのPPR手順で行うことができる。一実施例では、hPPRの異なる転送メカニズムは、インラインバッファアレイ122なしでデータ内容の転送を可能にする。しかしながら、インラインバッファアレイ122は、利用可能な場合には、依然として、hPPRによる転送に用いられ得る。sPPRのための転送は、メモリデバイスの操作中にデータ内容の転送のための一時的な記憶を要する場合がある。
【0027】
しかしながら、sPPR機能を実装するためのデータ転送またはデータマイグレーションは、結果的にあるアドレスを別のアドレスにマップアウトすることになり、一度マップアウトされるとアドレス指定ができないメモリの位置に元の内容を残すことになる。sPPRは、時間がかかるが行アドレスの永続的な的な修復であるhPPRと比較して、障害行のアドレスをより迅速だが一時的に修復する。
【0028】
JEDEC(Joint Electron Device Engineering Council)は、DDR4(ダブルデータレート(DDR)バージョン4、JESD79-4、元々JEDECにより2012年9月に発表されたもの)、DDR5(DDRバージョン5、JEDECにより現在検討中のもの)、およびHBM(高帯域幅メモリDRAM、JESD235A、元々JEDECにより2015年11月に発表されたもの)について、sPPRモードを定義している。sPPRモードの定義にもかかわらず、一時的にデータを記憶するためのスペースが不足しているため、業界ではその特徴はほとんどあるいは全く利用されていない。
【0029】
本明細書に記載されているように、メモリデバイスは、sPPRなどのPPRで用いるための内部一時ストレージまたは内部メモリを含む。内部一時ストレージは、ある位置から別の位置へのデータの転送のために一時的に使用され、転送完了後にデータの使用が完了するので、スクラッチパッドメモリとみなすことができる。一実施例では、内部メモリはインラインプリフェッチバッファアレイで実装される。インラインプリフェッチバッファアレイは、メモリデバイスのデータパスにインライン化されたバッファ要素のアレイを指し得る。バッファ要素は、I/O(入出力)ハードウェアとメモリアレイとの間に位置する場合、データ要素のパス内にあることができる。一実施例では、インラインプリフェッチバッファは、データパス回路の典型的なセンスアンプ要素で選択可能な別のセンスアンプ回路層として実装できる。一例を
図4に示す。
【0030】
一実施例では、メモリデバイス120は、PPRの適用に関係なく、プリフェッチ操作のためのプリフェッチバッファを含む。
プリフェッチバッファを一時ストレージとして適用し、PPRフローのためのインラインバッファアレイ122を実装することで、PPRフローを簡略化することができる。特に、メモリコントローラが転送されるデータを記憶する必要がなく、これにより、メモリデバイス120とメモリコントローラ110がデータを交換する必要をなくすことができるという点で、メモリコントローラ110の関与はPPRフローのために減少させることができる。インラインバッファアレイ122は、必要なすべてのデータをメモリデバイス120にローカライズ可能にする。このように、メモリコントローラ110は、例えば、障害WLを検出した後、障害WLのアドレスを送信することにより、PPRフローを開始することができる。
【0031】
図2は、プリフェッチバッファを介してPPRデータを転送するメモリデバイスの一例のブロック図である。デバイス200は、PPR操作またはPPRフローで用いるための内部ストレージを含むメモリデバイスの要素を表している。デバイス200は、
図1のメモリデバイス120に準拠したメモリデバイスの一例を提供する。一実施例では、デバイス200は、メモリダイなどの単一のメモリデバイスを表す。一実施例では、デバイス200は、複数の異なるメモリダイを含むモジュールまたはデバイスを表す。
【0032】
デバイス200は、メモリアレイ210を含み、これは、N個のバンク(バンク[(N-1):0])として編成されたメモリリソースを図示しており、ここで、Nは、0より大きい任意の整数をとり得る。メモリの各バンクは、メモリセル224にアクセスするためのデコード回路222を含む。一実施例では、メモリアレイ210のバンクのメモリセルは、センスアレイ(SA)回路がメモリセルの異なる部分間に物理的にあるように配置することができる。図示されているように、SA回路226は、メモリセル224の2つのセグメント間にある。
【0033】
デコード回路222は、行デコード回路及び列デコード回路を表すために、メモリセル224の上方および側方に図示される。デコード回路の位置は、必ずしもメモリセルアレイの「外側」である必要はない。デコード回路222は、メモリアクセスコマンドのアドレスに従って、メモリセル224の特定の部分をアドレス指定する。デコード回路222は、センスアンプがアドレスに基づいて選択可能であること、例えば、ビットの一部のみを選択することができることを表すために、SA回路226に隣接して図示される。
【0034】
一実施例では、デバイス200は、プリフェッチバッファ(PB)回路228を含む。
PB回路228は、インライン一時メモリの構成要素としてメモリアレイ210内に図示される。
PB回路228は、PB回路228がセンスアンプ回路の別の層である例を表すために、SA回路226に隣接するメモリセル224の2つのセグメント間に図示される。一実施例では、PB回路228は、SA回路226と同様にアドレス指定され得るため、デコード回路222は、プリフェッチバッファの選択性を表すために、PB回路に隣接して図示される。
【0035】
一実施例では、PB回路228のプリフェッチバッファは、メモリデバイス内のページまたはその倍数と同じサイズの一時的空間を提供する。このため、一実施例では、PB回路228は ページサイズまたは行サイズのデータ量を保持することができる。したがって、PB回路228は、スクラッチパッドメモリデバイスとして使用することができる。
【0036】
コントローラ230は、デバイス200のコントローラまたは制御ロジックを表す。コントローラ230は、メモリデバイス上のコントローラを表す。コントローラ230は、ホストコントローラまたはホストの一部であるメモリコントローラとは別個のものであることが理解されるであろう。デバイス200が単一のメモリダイを表す一実施例では、コントローラ230は、メモリがデコード回路222を含むドライバ回路を制御可能とするメモリダイ上のロジックを表すことができる。
コントローラ230は、メモリアクセスコマンドに関連付けられたメモリアクセス要求を供給するために、デバイス200内で操作を生成することができる。デバイス200が複数のメモリダイを有するメモリを表す一実施例では、コントローラ230は、個々のメモリダイ内の制御回路と同様に、モジュール上のコントローラを表すことができる。
【0037】
一実施例では、メモリコントローラ(特に図示せず)がsPPRフローをトリガする場合、コントローラ230は、障害アドレスWLのメモリセルからPB回路228にデータを移動させる。一実施例では、データがPB回路228に移動された後、コントローラ230は、修復フローまたはPPR操作を開始することができる(これは、ホストまたはメモリコントローラからの1つ以上のコマンドに応答して生じ得る)。一実施例では、PB回路228は、単一のメモリバンクにローカライズされる。したがって、デバイス200は、メモリアレイ210の各バンクにローカライズされたスクラッチパッドメモリを含むことができる。
【0038】
一実施例では、コントローラ230は、PPRロジック232に基づいてPPR操作を実装する。PPRロジック232は、デバイス200がエラーを修復するためのPPR操作を実行可能とするための、コントローラ230内のロジックを表す。一実施例では、PPRロジック232は、1つまたは複数のPPRレジスタを含む。レジスタは、コントローラ230が、障害行を冗長行にマッピングするためのアドレス情報を記憶可能にする。冗長行または予備行は、デバイス200において特に図示されていない。予備行は、メモリセル224の一部であり得ることが理解されるであろう。初期状態では、行はコントローラ230によってアドレス指定されない。PPR操作の後、障害行の代わりに予備行がアクセスのためにアドレス指定される。
【0039】
コントローラ230が、sPPRフローの完了などのPPR操作を完了すると、コントローラ230は、PB回路228から予備行にデータを復元することができる。一実施例では、データの復元は、ホストからの1つまたは複数のコマンドに応答して生じる。
一実施例では、プリフェッチバッファは、典型的に複数のページからのデータを含む。一実施例では、プリフェッチバッファが典型的に複数のページからデータを記憶するか、または1ページのみからデータを記憶するかにかかわらず、PPRのために使用される場合、プリフェッチバッファは、障害行から予備行に転送される1ページのみを記憶する。
【0040】
一実施例では、ホストは、新しいデータをアドレスに書き込む前に、書き込みターゲットアドレスからデータを読み出すためにPB回路228を用いることができる。
障害WLを予備WLでマップアウトした後、ホストが障害ワードラインに関連付けられていた論理アドレスにメモリアクセスコマンドを発行すると、コントローラ230は、アクセスコマンドを予備WLに向けることができる。最終的には、パワーダウン後にsPPRレジスタがデータを失うと想定すると、ホストコントローラは、パワーダウンまでに予備WLを通常のWLとして使用することができる。したがって、sPPRは、障害WLをより永続的にマップアウトするために、hPPRルーチンによってフォローアップされる必要があり得る。
【0041】
図3は、予備行を有するメモリアレイと、PPR用の内部スクラッチパッドとを有するメモリシステムの一例のブロック図である。
システム300は、
図1のシステム100に従ったシステムの一例を提供する。システム300は、メモリデバイスが組み込まれたハードウェアプラットフォームを表すホスト310を含み、プロセッサと、メモリデバイスへのアクセスを制御するためのアクセス制御ロジックとを含む。
【0042】
ホスト310は、ホストオペレーティングシステム(OS)であるか、またはこれを含むことができるシステム300の制御ロジックを実行するためのプロセッサ314を含む。
ホスト310は、メモリデバイス330へのアクセスを制御するためのメモリコントローラ320を含む。
一実施例では、メモリコントローラ320は、メモリ内の障害ワードラインを検出し、修復操作を行うようにメモリデバイス330をトリガするためのホスト側ロジックを含むことができるPPRロジック324を含む。
【0043】
ホスト310は、メモリデバイス330とインターフェースするための1つもしくは複数の信号線、または1つもしくは複数のバスを有し得るI/O312を含む。
I/O312は、1つまたは複数の信号線を介して情報を交換するためのドライバもしくはレシーバ、またはドライバ及びレシーバを含むハードウェアインターフェースを備え得る。メモリデバイス330は、ホスト310がメモリに結合する信号線にメモリデバイスをインターフェース可能とするI/O332を含む。
【0044】
メモリデバイス330は、システム300内にデータを記憶するためのメモリセルの1つまたは複数のアレイを表すアレイ340を含む。アレイ340は、サブアレイに分割することができる。アレイまたはサブアレイは、別個にアドレス指定可能なユニットを指すことができる。
アレイは、ホスト310から受信したアドレス情報に基づいて分割することができ、サブアレイは、ドライバアーキテクチャに基づいてメモリデバイス330内により小さなユニットを提供する。
【0045】
アレイ340は、メモリ行を例示する。
一実施例では、行はワードラインである。
メモリデバイスアレイは、典型的に、ローカルワードライン(LWL)またはサブワードライン(SWL)と同様に、グローバルワードライン(GWL)またはマスターワードライン(MWL)に分離されていることが理解されるであろう。
メモリのアドレス指定可能な「行」は、アーキテクチャに応じて、物理ワードラインと等価であってもよいし、そうでなくてもよい。しかしながら、メモリ行と、一緒にアドレス指定される1つまたは複数の物理ワードラインまたはワードラインの一部との間には関係がある。説明の目的のために、行は、コマンドでアドレス指定されるであろうユニットとみなすことができ、これは、典型的にはワードラインに対応する。
システムアーキテクチャに応じて実施例は変形可能であることが理解されるであろう。一実施例では、アクセスコマンド(例えば、書き込みコマンドまたは読み取りコマンド)は、メモリのページを書き込むかまたは読み出すように、メモリデバイス330をトリガする。メモリのページは、ワードライン全体を指してもよく、ここで、全ワードラインまたはワードラインの一部のデータは、アクセスコマンドに応答してアクセスされ得る。
【0046】
一実施例では、アレイ340は、予備行344を含む。予備行は、障害行の一時的なマップアウト(例えば、sPPRを介して)または障害行の永続的ななマップアウト(例えば、hPPRを介して)に利用可能である。一実施例では、アレイ340は、アレイ340内の予備行の合計行数よりも、sPPRのために利用可能な予備行の行数が少ない。
【0047】
メモリデバイス330は、メモリコントローラ320とは別個の、メモリデバイス内のコントローラまたは制御ロジックを表すコントローラ350を含む。一実施例では、コントローラ350は、BIST(組込み自己テスト)352を含む。BIST352は、エラーを検出するためにアレイ340内の行をテスト可能にする。一実施例では、メモリデバイス330は、ホスト310によって制御されたBISTテストに応答するためのハードウェアロジックを含む。ホスト310は、メモリコントローラ320内にBISTロジック322を含む。一実施例では、メモリコントローラ320は、アレイ340内のエラーを検出するために自己テストを実行するためのロジックを含み、ここでホスト310は、メモリ内の特定の位置にアクセスすることによってテストを制御する。
【0048】
コントローラ350は、メモリデバイス330がPPR操作を行うことを可能にするための制御ロジックを表すPPRロジック354を含む。ホスト制御のPPRの実装においては、PPRロジック354によって行われるPPR操作は、障害行342の物理アドレスを予備行344にリマッピングすることに限定され得る。自律的なPPRの実装においては、PPRロジック354は、障害行342のデータ内容を予備行344に追加的に転送することができる。
【0049】
メモリデバイス330は、本明細書の任意の実施例に従って、内部一時ストレージを表す内部スクラッチパッド334を含む。一実施例では、内部スクラッチパッド334は、障害行から予備行に転送するための1ページのデータを記憶する、プリフェッチバッファとして実装される。一実施例では、内部スクラッチパッド334は、PPRを行うのに用いられるレジスタデバイスを表し、PPRを可能にするために障害行のデータ内容を一時的に記憶する。
【0050】
メモリコントローラ320がBISTテストを実行し、行342の障害を検出する例を検討する。一実施例では、障害の検出に応答して、コントローラ350は、マップアウトされたアドレスを記憶するレジスタ(特に図示せず)に、障害行342のアドレスを記憶する。一実施例では、コントローラ350は、行342の内容を内部スクラッチパッド334に読み出し、その後、PPR操作(例えば、sPPR)を行う。
PPR操作が完了した後、コントローラ350は、内部スクラッチパッド334から障害行の内容を予備行344に記憶することができ、障害行342の論理アドレスに向けられたアクセスコマンドは、障害行342の物理アドレスではなく、予備行344の物理アドレスにマッピングされる。
【0051】
図4は、プリフェッチバッファアレイを有するメモリデバイスの一例を示すブロック図である。回路400は、内部スクラッチパッドメモリを含むメモリデバイスの要素を表す。メモリデバイスは、本明細書のメモリデバイスの任意の記述に従って実装され得る一例を提供する。より具体的には、回路400は、インラインスクラッチパッドメモリデバイスとして操作する、プリフェッチバッファを有するデバイスを例示する。
【0052】
回路400は、回路400のメモリアレイのワードラインを駆動するためのWLドライバ410を含む。
一実施例では、回路400は、第1のセルアレイ420及び第2のセルアレイ440内にビットセルを含む。
回路400は、ビットライン(BL)センスアンプ(BLSA)アレイと称することができるセンスアレイ430を含む。一実施例では、回路400は、データをプリフェッチするためのバッファアレイとしてプリフェッチバッファ(PB)アレイ450を含む。一実施例では、PBアレイ450は、書き込み操作のターゲットであるセルアレイ420、440の部分についてのデータをプリフェッチするためのバッファとして主に用いられる。一実施例では、セルアレイ420、440は、DRAMセルアレイとして実装され得る。一実施例では、PBアレイ450は、SRAM(同期ランダムアクセスメモリ)セルのアレイとして実装され得る。
【0053】
図示されているように、センスアレイ430は、M個のアレイ、すなわちArray[(m-1):0]を含む。各アレイは、N個のセンスアンプSA[(n-1):0]を含むことができる。
N個のセンスアンプは、一方の側ではN個のビットライン信号BL_T[(m-1):0]]に、他方の側ではN個のビットライン補数信号BL_C[(m-1):0]]にそれぞれ結合することができる。
一実施例では、M個のアレイは、Array[0]へのアクセスを制御するためのY_SEL[0]と、Array[1]へのアクセスを制御するためのY_SEL[1]など、M列の選択信号Y_SEL[(m-1):0]によって制御される。
【0054】
一実施例では、PBアレイ450は、センスアレイ430と同様に、M個のキャッシュアレイ、すなわちCache_Array[(m-1):0]を有して構成されている。各キャッシュアレイは、N個のセンスアンプSA[(n-1):0]を含むことができる。
N個のセンスアンプは、一方の側ではN個のビットライン信号BL_T[(m-1):0]]に、他方の側ではN個のビットライン補数信号BL_C[(m-1):0]]にそれぞれ結合することができる。一実施例では、Mアレイは、Array[0]へのアクセスを制御するY_SEL[0]及びArray[1]へのアクセスを制御するY_SEL[1]など、M列の選択信号Y_SEL[(m-1):0]によって制御される。一実施例では、PBアレイ450のM列の選択ラインは、センスアレイ430のセンスアンプを制御する列選択ラインに結合されている。
アレイ450の列選択ラインは、Y_SEL[0]にはアライナ[0]、Y_SEL[1]にはアライナ[1]などを有する、アライナ回路を介して結合されている。アライナは、センスアレイ430の各Y_SEL信号についてPBアレイ450に図示された対応するY_SEL_DELAYED信号によって示されるように、センスアレイ430のための列選択に対して列選択信号をオフセットすることができる。
【0055】
回路400は、I/O回路460を含む。
I/O回路460は、N個のグローバルI/O(GIO)回路GIO[(n-1):0]を含むことができる。
GIO回路は、読み出し操作のためのI/Oラインセンスアンプ(IOSA)と書き込み操作のための書き込みドライバ(WRDR)とを有する、入力及び出力の両方の多重化(MUX)を含むことができる。一実施例では、各GIO回路は、一方はセンスアレイ430からの信号線及びもう一方はPBアレイ450からの信号線からなる対の信号線に接続する。回路400は、センスアレイまたはPBアレイのいずれかに結合するように、アドレス指定を介して構成することができる。
【0056】
I/O回路460は、シリアライザ/デシリアライザ回路(SERDES)470を含む。SERDES470は、送信の複数のユニット間隔(UI)にわたって送信するための発信データをシリアライズするか、またはセルアレイに記憶するための着信データをデシリアライズすることができる。I/O回路460は、回路400のメモリデバイスのためのDQインターフェースを表すDQ[x]480を含む。DQ[x]480は、例えば、データバスのデータ信号線に結合するためのデータパッドであり得る。
【0057】
回路400に図示された簡略化されたセルアレイアーキテクチャでは、メモリデバイスは、メモリアクセスコマンドに関連付けられた特定のアドレスを受信する。一実施例として、このアドレスが、WLとラベル付けされたセルアレイ420内のワードラインに対するものであると想定する。代替的に、このコマンドは、セルアレイ440内のワードラインに対してアドレス指定され得る。
【0058】
行アクセスの場合、WLドライバ410は、センスアレイ430に接続されるWLに接続されたWLセルのデータを開放する。SA回路は、ビットセルから読み出されたアナログ信号をデジタル出力に変換してデータを増幅して保持する。特定のタイミングの指定(例えば、行アドレスストローブ(RAS)から列アドレスストローブ(CAS)遅延(tRCD))の後に、メモリコントローラは、対応する読み出しまたは書き込みコマンドのための列アクセスを開始することができる。データパケットサイズ、アクセスあたりの仕様(図示例ではN)に基づいて、列選択信号Y_SEL[(m-1):0]のうちの1つは、N個のSA回路をローカルI/O信号(LIO[(n-1):0])に接続する。ローカルI/O信号は、センスアレイ430のためのLIOと、PBアレイ450のためのCACHE_LIOである。N個のLIOは、N組のI/Oラインセンスアンプ(IOSA)及び書き込みドライバ(WRDR)に接続されている。
【0059】
書き込みモードでは、コントローラが上述した行アクセスに続いてWLを開放した後、回路400は、DQ[x]480を介してメモリコントローラからデータパケットを受信することができる。SERDES470は、I/O回路460の各GIOに接続されたWRDRにデータを割り当てて駆動する。WRDRは、Y_SEL信号による接続に基づいて、センスアレイ430及びPBアレイ450のセンス要素にデータを書き込む。一方、センスアレイは、開放WLを介してセルにデータを書き込むことができる。
【0060】
読み出しモードでは、同様に、コントローラによってWLが開放された後、セルデータは増幅され、センスアレイ430に保持される。
回路400は、コントローラから読み出しコマンドを受信する。回路400は、コマンドに応答して、Y_SEL信号を開放し、センスアレイ430をN個のLIOに接続する。
センスアレイ430は、データをN個の対応するLIOに接続されたN個のIOSAに書き込む。
各IOSAは、データを増幅し、N個のGIO回路を介してSERDES470にそのデータを駆動する。
SERDES470は、DQ[x]480を通じてデータをメモリコントローラにむけて駆動する。
【0061】
一実施例では、PBアレイ450は、提供される任意の実施例に従って、PPR操作のためのスクラッチパッドメモリまたは一時ストレージとして操作することができる。一実施例では、PBアレイ450は、通常の列選択信号と同期して制御され、従来のIOSA/WRDR回路を介して読み書きされ得る。例えば、sPPRフローにおける対応するコピー機能のために、障害WLがアクティブ化され、セルデータがセンスアレイによって増幅される。
その後、データは、各IOSA/WRDR対に転送され得る。一実施例では、IOSAはデータを増幅し、WRDRは、双方向マルチプレクサ(mux)またはマルチプレクサ(multiplexer)「MUX」を介して同じ列にアドレス指定されたPBアレイにデータを書き込む。全てのコピーが終了し、障害行のアドレスを冗長WLレジスタを用いて冗長WLにリマッピングした後、上述した書き込みフローと同様に、修復したWLに接続されたセルにデータを書き込むことができる。
【0062】
図5は、ホスト駆動のPPRのためのプロセスの一例のフロー図である。ホスト駆動のPPR処理のためのプロセス500は、本明細書の任意の説明に従って、障害WLから冗長WLにデータを転送するために内部一時メモリを使用して修復手順を行うプロセスの一例とし得る。
【0063】
プロセス500は、コンピューティングシステムの異なる部分の異なる操作を例示する。
一実施例では、ホストシステム510は、ホストBIST530およびホストPPR540を含む。
ホストBIST530は、障害WLを識別するためのテストを表す。ホストPPR540は、ホストシステム510における修復手順操作を表す。メモリデバイスPPR550は、ホストシステム510に結合されたメモリデバイスにおける修復手順操作を表す。
【0064】
一実施例では、ブロック512にて、ホストシステム510に電源投入する。
システムは、ブロック514にて、初期化し、ブロック516にて、通常操作を開始する。
ホストシステム510が障害データを検出しない場合、つまりブロック518にてNOとなる分岐である場合、ホストシステムは、ブロック520にて、通常操作の稼働を継続する。ホストシステムの電源を切ることが想定される場合(例えば、パワーダウントリガに応答して)、つまりブロック522にてYESとなる分岐である場合、ブロック524にて、システムの電源を切る。
システムの電源が切られることが想定されない場合、つまりブロック522にてNOとなる分岐である場合、ブロック516にて、システムは通常の操作で継続する。システムは、通常操作中に障害データを再度チェックするため、再度「通常操作」を開始するといえる。
【0065】
一実施例では、ホストシステム510が障害データを検出した場合、つまりブロック518にてYESとなる分岐である場合、ホストシステム510は、ブロック532にて、通常の操作を停止し、BISTモードを開始する。
発生する可能性のあるエラーのタイプには、メモリアクセスを再度試みることによって修正可能なソフトエラーと、修正不可能だが障害ワードラインのために表示され続けるハードエラーとがある。一実施例では、検出されたエラーがハードエラーでない場合、つまりブロック534にてNOとなる分岐である場合、システムは、ブロック516にて、ホストBIST530を終了し、通常操作に戻ることができる。
【0066】
一実施例では、検出された障害がハードエラーを示す場合、つまりブロック534にてYESとなる分岐である場合、一実施例では、ホストは、メモリデバイスに送信する障害WLのアドレスを特定する。一実施例では、システムがPPR操作でハードエラーをマップアウトするのに利用可能な予備または冗長WLの数は限られている。すべての予備行が使用される場合、つまりブロック542にてYESとなる分岐である場合、一実施例では、ホストシステム510は、ブロック544にて、障害WLのアドレスをメモリコントローラスケジューラからブロックする。アドレスをブロックすることにより、ホストがそのアドレスへのアクセス操作を指示することを防止し、システムは、ブロック520にて、通常操作の稼働を継続することに再び戻ることができる。
【0067】
すべての予備行が使用されている場合、つまりブロック542にてNOとなる分岐である場合、一実施例では、システムは、ブロック546にて、障害WLからのデータを内部スクラッチパッドに移動させる。一実施例では、内部メモリは、障害WLとページサイズが一致するプリフェッチバッファである。
データの移動は、本明細書の任意の記述に従って生じ得る。一実施例では、ホスト駆動のPPRでは、ホストPPR540は、メモリデバイス内のデータの移動を引き起こすためのコマンドを生成する。一実施例では、ホストPPR540は、ブロック548にて、障害WLのアドレスを有するメモリデバイス内のPPRフローを起動する。
【0068】
メモリデバイスPPR550は、メモリデバイスの操作を表す。
メモリデバイスは、ブロック552にて、そのPPR操作を開始する。一実施例では、ブロック554にて、メモリデバイスは、PPRレジスタによって、障害WLのアドレスを利用可能な予備WLにコントローラを介してリマップすることができる。PPRレジスタは、メモリデバイスが、修復を可能にするために、修正不可能なエラーを有するWLのアドレスを受信することを可能にする。メモリデバイスは、ブロック556にて、PPR操作を終了し、制御をホストシステム510に戻すことができる。
【0069】
一実施例では、メモリデバイスは、ホストシステム510のホストPPR540のフロー制御に対してステータスの更新を提供する。
システムは、任意に、修復されたWLを復元することができる。
修復されたWLとは、予備の物理アドレスにマップアウトされたWLを指す。復元とは、障害WLから修復されたWLへの内容の転送を指すことができる。
【0070】
一実施例では、ホストPPR540が、修復されたWLを復元する場合、つまりブロック562にてYESとなる分岐である場合、一実施例では、ホストは、ブロック564にて、メモリデバイス内の内部スクラッチパッドから修復されたWLへのデータの移動を駆動し、ブロック516にて、通常操作の開始操作に戻る。
【0071】
一実施例では、システムが修復されたWLにデータを復元しない場合、つまりブロック562にてNOとなる分岐である場合、システムは、ブロック566にて、修復されたWLのアドレストラッカーを有効化することができる。
一実施例では、修復されたWLのアドレストラッカーを有効にすることは、ホストが特定のタスクを行うことを含む。
【0072】
修復されたアドレスWLのセルへの書き込みがある場合、ホストコントローラは、そのアドレスのWLをアクティブ化して、アドレス指定されたセルにデータを書き込むことができる。書き込み後、ホストコントローラは、すべてのsPPRレジスタがその書き込まれた値を失って電源が切れるまでに、書き込まれたデータをセルから読み出すべきである。アドレスに新しいデータを書き込む前に修復されたアドレスからの読み取りが要求される場合、一実施例では、ホストコントローラは、新しいデータがアドレス指定されたセルに書き込まれるまでに、プリフェッチされたバッファアレイからデータを読み出す。ホストコントローラは、プリフェッチされたバッファアレイ内の全てのデータが修復されたWLのセルに書き込まれるまでに、これらのタスクの実行を継続することができる。一実施例では、ホストコントローラは、すべてのデータが書き込まれた後、修復されたWLのアドレストラッカーを無効にする。
【0073】
マップアウトされたWLについては、sPPRレジスタが電源が切れた後にデータを失うので、ホストコントローラは、電源が切れるまでの操作中に冗長WLを通常のWLとして使用することができる。ブロック564にてデータを移動させるか、ブロック566にてデータを移動させない場合であっても、システムは、ブロック516にて通常操作に戻ることができる。
【0074】
図6A及び
図6Bは、メモリデバイスの自律的なPPRのためのプロセスの一例を示すフロー図である。
図6Aを参照して、自律的なPPRプロセスのためのプロセス600は、本明細書の任意の記述に従って、障害WLから冗長WLにデータを転送するために内部一時メモリを使用して修復手順を行うためのプロセスの一例となり得る。自律的なPPRプロセスにより、メモリデバイスは、障害行から内部スクラッチパッドメモリへのデータ内容の転送と、内部スクラッチパッドメモリから修復された行へのデータ内容の転送とを内部的に行うことができる。
メモリデバイスは、ホストコントローラからコンテンツの転送を引き起こすためのコマンドを発生させることなく、内部スクラッチパッドメモリとの間でデータ内容を転送することができ、むしろ、メモリデバイスは、障害行のデータコンテンツの転送を制御することができる。
【0075】
プロセス600は、コンピューティングシステムの異なる部分のための異なる操作を例示する。一実施例では、ホストシステム610は、ホストBIST630及びホストPPR640を含む。ホストBIST630は、障害WLを特定するためのテストを表す。ホストPPR640は、ホストシステム610内の修復手順操作を表す。メモリデバイスPPR650は、ホストシステム610に結合されたメモリデバイスにおける修理手順操作を表す。
【0076】
一実施例では、ブロック612にて、ホストシステム610を電源投入する。システムは、ブロック614にて、初期化を行い、ブロック616にて、通常操作または通常機能を開始する。ホストシステム610が障害データを検出しない場合、つまりブロック618にてNOとなる分岐である場合、ホストシステムは、ブロック620にて、通常操作の稼働を継続する。ホストシステムの電源が切れることが想定される場合(例えば、パワーダウントリガに応答して)、つまりブロック622にてYESとなる分岐である場合、ブロック624にてシステムの電源が切れる。システムの電源が切れることが想定されない場合、つまりブロック622にてNOとなる分岐である場合、システムは、ブロック616にて、通常操作を継続する。
【0077】
一実施例では、ホストシステム610が障害データを検出すると、つまりブロック618にてYESとなる分岐である場合、ホストシステム610は、ブロック632にて通常操作を停止し、BISTモードを開始する。BISTモードは、ホストコントローラが障害を修復することを可能にすることができる。発生する可能性のあるエラーのタイプには、メモリアクセスを再度試みることによって修正可能なソフトエラーと、修正不可能だが障害ワードラインのために表示され続けるハードエラーとがある。一実施例では、検出されたエラーがハードエラーでない場合、つまりブロック634にてNOとなる分岐である場合、システムは、ブロック616にて、ホストBIST630を終了し、通常操作に戻ることができる。
【0078】
一実施例では、検出された障害がハードエラーを示す場合、つまりブロック634にてYESとなる分岐である場合、一実施例では、ホストは、メモリデバイスに送信する障害WLのアドレスを特定する。一実施例では、システムがPPR操作でハードエラーをマップアウトするのに利用可能な予備または冗長WLの数は限られている。すべての予備行が使用される場合、つまりブロック642にてYESとなる分岐である場合、一実施例では、ホストシステム610は、ブロック644にて、障害WLのアドレスをメモリコントローラスケジューラからブロックする。アドレスをブロックすることにより、ホストがそのアドレスへのアクセス操作を指示することを防止し、システムは、ブロック620にて、通常操作の稼働を継続することに再び戻ることができる。一実施例では、すべての予備行が使用されない場合、つまりブロック642にてNOとなる分岐である場合、ホストは、ブロック646にて、障害WLのアドレスをメモリデバイスPPRに送信し、PPR操作を開始することができる。
【0079】
プロセス600は、メモリデバイスPPR650が開始され、メモリデバイスが障害WLのアドレス情報を受信した後、
図6Bで継続する。メモリデバイスは、ブロック652にて、PPR操作を開始する。一実施例では、メモリデバイスは、ブロック654にて、障害WLが属するユニットを検索する。
ユニットとは、障害である障害と検出されたWLのグループを指し、検出された全ての障害WLに対して修復手順が発生し得る。
【0080】
一実施例では、メモリデバイスは、ブロック656にて、全バンクのリフレッシュを行い、ブロック658にて、障害WLのアドレスであるWL[k]をアクティブ化する。
WL[k]は、障害WLのアドレスを示す。
一実施例では、メモリデバイスは、ブロック660にて、列[n]のセルデータを読み出し、その列のデータを内部スクラッチパッドの同じ列に書き込む。n=MAX_COL_ADDR-1の場合、メモリデバイスは、ブロック668にて、WL[k]をプリチャージし、リフレッシュタイマが設定されているかどうかを判断し続ける。一実施例では、MAX_COL_ADDRとは、列の最大アドレスを指す。
【0081】
最大列に達していない場合、つまりブロック662にてNOとなる分岐である場合、一実施例では、メモリデバイスは、ブロック664にて、nをインクリメントし、リフレッシュタイマがセットされているかどうかを判断する。リフレッシュタイマがセットされていない場合、つまりブロック664にてNOとなる分岐である場合、メモリデバイスは、次の列の読み出しを繰り返し、スクラッチパッド660に書き込む。リフレッシュタイマが設定されている場合、つまりブロック664にてYESとなる分岐である場合、一実施例では、メモリデバイスは、ブロック666にてWL[k]をプリチャージし、ブロック656にて全バンクリフレッシュを実行するために戻る。ブロック656へ戻ることにより、メモリデバイスがリフレッシュ操作のカレントを維持することが可能となる。列データをコピーする操作は、障害WLと結合されたデータを、内部スクラッチパッドメモリ(プリフェッチバッファアレイなど)を介して、未読の冗長WLに移動させるプロセスである。
【0082】
nが最大列アドレスに達する場合、つまりブロック662にてYESとなる分岐である場合、データの移動が終了したことになる。全てのデータを移動した後、メモリデバイスは、障害アドレスで冗長WL制御レジスタを更新し、sPPRモードを終了することができる。一実施例では、データの移動が完了した後、メモリデバイスは、リフレッシュタイマが設定されているかどうかを分かるように確認することができる。リフレッシュタイマが設定されている場合、つまりブロック670にてYESとなる分岐である場合、メモリデバイスは、ブロック672にて、リフレッシュ操作を行うことができる。
リフレッシュタイマが設定されていない場合、つまりブロック670にてNOとなる分岐である場合、一実施例では、メモリデバイスは、ブロック674にて、予備WLユニットのWL[k]をアクティブ化する。
【0083】
一実施例では、メモリデバイスは、ブロック676にて、列[n]のスクラッチパッドデータから、修復されたWL[k]内の同じ列にアドレス指定されたセルにデータを書き込む。これらの操作は、スクラッチパッドからのデータを、障害WLの論理アドレスにマッピングされたWLに移動させる。メモリデバイスは、すべてのデータが転送されるまでデータを転送し続けることができる。
【0084】
mが最大列数に達していない場合、つまりブロック680にてNOとなる分岐である場合、一実施例では、メモリデバイスは、ブロック682にて、mをインクリメントし、リフレッシュタイマがセットされているかどうかを判断する。リフレッシュタイマがセットされていない場合、つまりブロック682にてNOとなる分岐である場合、メモリデバイスは、ブロック676にて、次の列の読み出しを繰り返し、スクラッチパッドに書き込む。リフレッシュタイマが設定されている場合、つまりブロック682にてYESとなる分岐である場合、一実施例では、メモリデバイスは、ブロック684にてWL[k]をプリチャージし、ブロック672にて全バンクのリフレッシュを行う。
【0085】
mが最大列数に達したとき、つまりブロック680にてYESとなる分岐である場合、一実施例では、メモリデバイスは、ブロック686にて、現在データを保持し、リフレッシュのために監視する必要があるワードラインである予備WL[k]をプリチャージする。一実施例では、kがWLユニットアドレスのWLの最大数に達していない場合、つまりブロック688にてNOとなる分岐である場合、一実施例では、メモリデバイスは、kをインクリメントして次のワードラインに進み、ブロック658に戻って、検出された他の障害WLのための修復操作を繰り返す。
【0086】
一実施例では、kがWLユニット内のWLの最大数に達した場合、つまりブロック688にてYESとなる分岐である場合、メモリデバイスは、ブロック690にて、PPRレジスタを介して、障害WLのアドレスを予備WLにリマップする。PPRレジスタとは、WLの論理アドレスに対する要求を障害WLの物理アドレスから予備WLの物理アドレスへリダイレクトするためにコントローラが用いることができるレジスタを指す。その後、メモリデバイスは、ブロック692にてPPRを終了し、
図6Aのブロック616にて、ホストの通常操作に戻ることができる。
【0087】
一実施例では、ホストコントローラは、障害WLアドレスをコントローラ内に保存し、システムがビジー状態でないときにhPPRを使用するという付加的な特徴を含むことができる。
sPPRは、hPPRよりも実行が速く、ランタイム中に行うことができる。しかしながら、メモリの電源がオフになり、レジスタへの電力が遮断されると、リマッピングが消滅し、その内容が不確定となるため、リマッピングは一時的なものである。ホストコントローラがメモリパワーレールをオフにする前に障害WLに対してhPPRを行う場合、障害WLは、永続的に正常なWLに修復することができる。
【0088】
図7は、内部スクラッチパッドメモリを有するメモリ内のPPRが実装され得るメモリサブシステムの一例のブロック図である。システム700は、コンピューティングデバイス内のプロセッサ及びメモリサブシステムの要素を含む。システム700は、システム100またはシステム300に従ったシステムの一例を提供する。
【0089】
一実施例では、システム700は、メモリアレイ760内、またはそうでなければメモリデバイス740内において内部スクラッチパッドメモリ782を含む。スクラッチパッド782は、メモリデバイス740が、障害行のデータ内容をメモリコントローラ720に移動させる必要を生じることなく、内部ストレージでPPRを行うことを可能にする。一実施例では、メモリコントローラ720は、スクラッチパッド782による障害行のリマッピングをサポートするためにPPR操作を行うためのPPRロジック(特に図示せず)を含む。一実施例では、メモリデバイス740のコントローラ750は、本明細書の任意の実施例に従って、スクラッチパッド782を用いて障害行のデータ内容を新しい行に移動させて、障害行をリマップするための操作を実行するためのPPRロジックを含む。
【0090】
PPRロジック780は、本明細書の任意の実施例に従って、メモリデバイス内でPPR操作を行うためのメモリデバイス740内のロジックを表す。PPRロジック728は、本明細書の任意の実施例に従って、ホスト側のPPR操作を行うためのメモリコントローラ720内のロジックを表す。PPRロジック784は、複数のメモリデバイスダイに対するPPR操作を行うために、モジュールコントローラ(特に図示せず)、例えば、モジュール上のRCD(登録クロックドライバ)または他のコントローラに実装され得るロジックを表す。
【0091】
プロセッサ710は、オペレーティングシステム(OS)及びアプリケーションを実行し得るコンピューティングプラットフォームの処理ユニットを表し、これらは総称してメモリのホストまたはユーザと称することができる。OS及びアプリケーションは、メモリアクセスをもたらす操作を実行する。
プロセッサ710は、1つまたは複数の別個のプロセッサを含むことができる。
各別個のプロセッサは、単一の処理ユニット、マルチコア処理ユニット、またはその組み合わせを含むことができる。処理ユニットは、CPU(中央処理装置)などの一次プロセッサ、GPU(グラフィック処理装置)などの周辺プロセッサ、またはそれらの組み合わせであってもよい。メモリアクセスはまた、ネットワークコントローラまたはハードディスクコントローラなどのデバイスによって開始されてもよい。このようなデバイスは、いくつかのシステムではプロセッサと統合されていてもよいし、バス(例えば、PCIエクスプレス)を介してプロセッサに取り付けられていてもよいし、またはその組み合わせであってもよい。システム700は、SOC(システムオンチップ)として実装可能であり、またはスタンドアロンコンポーネントとともに実装可能である。
【0092】
メモリデバイスの参照は、異なるメモリタイプのデバイスに適用することができる。メモリデバイスは、多くの場合、揮発性メモリ技術を指す。揮発性メモリは、デバイスへの電力が遮断された場合、その状態(及びよってそれに保存されているデータ)が不確定なメモリである。不揮発性メモリとは、デバイスへの電力が遮断されてもその状態が確定しているメモリを指す。ダイナミック揮発性メモリは、状態を維持するためにデバイスに記憶されたデータをリフレッシュする必要がある。ダイナミック揮発性メモリの一例としては、DRAM(ダイナミックランダムアクセスメモリ)や同期DRAM(SDRAM)などのいくつかの変形がある。本明細書に記載されているようなメモリサブシステムは、DDR4(DDR(ダブルデータレート)バージョン4、JESD79-4、当初JEDEC(Joint Electron Device Enginering Council))によって2012年9月に発行された)、LPDDR4(低消費電力DDRバージョン4、JESD209-4、当初JEDECによって2014年8月に発行された)、WIO2(ワイドI/O2(WideIO2)、JESD229-2、もともとはJEDECによって2014年8月に発行された)、HBM(高帯域幅メモリDRAM、JESD235A、当初2015年11月にJEDECにより発行された)、DDR5(DDRバージョン5、現在JEDECにより検討中)、LPDDR5(LPDDRバージョン5、JESD209-5、当初2019年2月にJEDECにより発行された)、HBM2((HBMバージョン2、現在JEDECにより検討中))などの多数のメモリ技術、またはその他のメモリ技術、またはメモリ技術の組み合わせ、及びそのような仕様の派生物または拡張物に基づく技術と互換性を有していてもよい。
【0093】
揮発性メモリに加えて、またはこれに代えて、一実施例では、メモリデバイスの参照は、メモリデバイスへの電力が遮断されても、その状態が確定される不揮発性メモリデバイスを参照することができる。一実施例では、不揮発性メモリデバイスは、NANDまたはNOR技術などのブロックアドレス可能なメモリデバイスである。このように、メモリデバイスは、将来世代の不揮発性デバイス、例えば三次元クロスポイントメモリデバイス、他のバイトアドレス可能な不揮発性メモリデバイスを含むこともできる。メモリデバイスは、メモリセルの抵抗状態に基づいて、またはメモリセルの位相に基づいて、データを記憶する、バイトアドレス可能な不揮発性媒体を含むことができる。一実施例では、メモリデバイスは、カルコゲナイド相変化材料(例えば、カルコゲナイドガラス)を用いることができる。一実施例では、メモリデバイスは、マルチスレッショルドレベルのNANDフラッシュメモリ、NORフラッシュメモリ、シングルレベルまたはマルチレベルの位相変化メモリ(PCM)またはスイッチ付き位相変化メモリ(PCMS)、抵抗性メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、磁気抵抗性ランダムアクセスメモリ(MRAM)、メモリスタ技術を組み込んだメモリ、またはスピン伝達トルク(STT)-MRAM、あるいは上記のいずれかまたは他のメモリの組み合わせであるか、それらを含むことができる。
【0094】
メモリコントローラ720は、システム700のための1つまたは複数のメモリコントローラ回路またはデバイスを表す。メモリコントローラ720は、プロセッサ710による操作の実行に応答して、メモリアクセスコマンドを生成する制御ロジックを表す。メモリコントローラ720は、1つまたは複数のメモリデバイス740にアクセスする。メモリデバイス740は、上記で言及したいずれかに従って、DRAMデバイスであり得る。一実施例では、メモリデバイス740は、異なるチャネルとして編成及び管理され、ここで、各チャネルは、並列に複数のメモリデバイスに結合するバス及び信号線に結合する。各チャネルは独立して操作可能である。したがって、各チャネルは独立してアクセス及び制御され、タイミング、データ転送、コマンド及びアドレス交換、ならびに他の操作は、各チャネルごとに個別に行われる。結合は、電気的結合、通信的結合、物理的結合、またはこれらの組み合わせを指すことができる。物理的結合は、直接接触を含み得る。電気的結合は、構成要素間の電気的な流れを可能にする、または構成要素間の信号伝達を可能にする、またはその両方を可能にするインターフェースまたは相互接続を含む。通信的結合は、構成要素がデータを交換することを可能にする、有線または無線を含む接続を含む。
【0095】
一実施例では、各チャネルに対する設定は、別個のモードレジスタまたは他のレジスタ設定によって制御される。一実施例では、システム700は単一のコントローラによって管理される複数のチャネルを有するように構成されるか、または単一のチャネルに複数のコントローラを有するように構成され得るが、各メモリコントローラ720は個別のメモリチャネルを管理する。一実施例では、メモリコントローラ720は、ホストプロセッサまたはホストプロセッサデバイスと同じダイ上に実装されているか、または同じパッケージ空間に実装されているロジックなどのホストプロセッサ710の一部である。
【0096】
メモリコントローラ720は、上記にて言及したようなメモリチャネルなどのメモリバスに結合するためのI/Oインターフェースロジック722を含む。I/Oインターフェースロジック722(メモリデバイス740のI/Oインターフェースロジック742と同様に)は、ピン、パッド、コネクタ、信号線、トレース、またはワイヤ、またはデバイスを接続するための他のハードウェア、またはこれらの組み合わせを含むことができる。I/Oインターフェースロジック722は、ハードウェアインターフェースを含むことができる。図示されているように、I/Oインターフェースロジック722は、少なくとも信号線用のドライバ/トランシーバを含む。集積回路インターフェース内のワイヤは、一般に、パッド、ピン、またはコネクタと結合して、デバイス間で信号線またはトレースまたは他のワイヤをインターフェースする。I/Oインターフェースロジック722は、デバイス間の信号線上で信号を交換するためのドライバ、レシーバ、トランシーバ、または終端、または他の回路または回路の組み合わせを含むことができる。信号の交換は、送信または受信の少なくとも1つを含む。メモリコントローラ720からのI/O722をメモリデバイス740のI/O742へ結合するように示されているが、メモリデバイス740のグループが並行してアクセスされるシステム700の実装では、複数のメモリデバイスは、メモリコントローラ720の同じインターフェースとのI/Oインターフェースを含むことができることが理解されるであろう。1つまたは複数のメモリモジュール770を含むシステム700の実装では、I/O742は、メモリデバイス自体上のハードウェアインターフェースに加えて、メモリモジュールのハードウェアインターフェースを含むことができる。他のメモリコントローラ720は、他のメモリデバイス740への別個のインターフェースを含むであろう。
【0097】
メモリコントローラ720とメモリデバイス740との間のバスは、メモリコントローラ720をメモリデバイス740と結合する複数の信号線として実装され得る。バスは、典型的には、少なくともクロック(CLK)732と、コマンド/アドレス(CMD)734と、書き込みデータ(DQ)及び読み出しデータ(DQ)736と、ゼロ個以上の他の信号線738とを含んでもよい。一実施例では、メモリコントローラ720とメモリとの間のバスまたは接続をメモリバスと称することができる。一実施例では、メモリバスはマルチドロップバスである。CMD用の信号線は、"C/Aバス"(またはADD/CMDバス、またはコマンド(CまたはCMD)及びアドレス(AまたはADD)情報の転送を示すいくつかの他の名称)と称することができ、書き込み及び読み出しDQ用の信号線は、"データバス"と称することができる。一実施例では、独立したチャネルは、異なるクロック信号、C/Aバス、データバス、および他の信号線を有する。このため、システム700は、独立したインターフェース経路が別個のバスとみなされ得るという意味で、複数の「バス」を有するものとみなすことができる。明確に示されたラインに加えて、バスは、ストロボ信号ライン、警告ライン、補助ライン、または他の信号線のうちの少なくとも1つ、またはその組み合わせを含むことができることが理解されるであろう。シリアルバス技術は、メモリコントローラ720とメモリデバイス740との間の接続に使用され得ることも理解されるであろう。シリアルバス技術の一例は、各方向の単一の差動対の信号を介して、埋め込まれたクロックを有する高速データを符号化及び伝送する8B10Bである。一実施例では、CMD734は、複数のメモリデバイスと並列に共有される信号線を表す。一実施例では、複数のメモリデバイスは、CMD734のエンコードコマンド信号線を共有し、各メモリデバイスは個々のメモリデバイスを選択するための別個のチップセレクト(CS_n)信号線を有する。
【0098】
システム700の例では、メモリコントローラ720とメモリデバイス740との間のバスは、補助コマンドバスCMD734と、書き込みデータ及び読み出しデータを伝送するための補助バスDQ736とを含むことが理解されるであろう。一実施例では、データバスは、読み出しデータのための双方向ラインと、書き込み/コマンドデータのための双方向ラインとを含むことができる。別の実施例では、補助バスDQ736は、書き込みデータ用の単方向書き込み信号線とホストからメモリへのデータを含むことができ、またメモリからホストへのデータ読み出し用の単方向線を含むことができる。選択されたメモリ技術及びシステム設計に従って、他の信号738は、ストローブ線DQSなどのバスまたはサブバスに付随してもよい。
システム700の設計に基づいて、または設計が複数の実装をサポートする場合に実装に基づいて、データバスは、メモリデバイス740あたりの帯域幅を多かれ少なかれ有することができる。例えば、データバスは、x4インターフェース、x8インターフェース、x16インターフェース、または他のインターフェースのいずれかを有するメモリデバイスをサポートすることができる。規則「xW」は、ここでWがメモリコントローラ720とデータを交換するための信号線の数を表す、メモリデバイス740のインターフェースのインターフェースサイズまたは幅を表す整数である。メモリデバイスのインターフェースサイズは、システム700内でチャネルあたりに同時に使用することができる、または同じ信号線に並列に結合することができるメモリデバイスの数に関する制御因子である。一実施例では、高帯域幅メモリデバイス、幅広インターフェースデバイス、または積層メモリ構成、またはそれらの組み合わせは、x128インターフェース、x256インターフェース、x512インターフェース、x1024インターフェース、または他のデータバスインターフェース幅などの幅広インターフェースを可能にすることができる。
【0099】
一実施例では、メモリデバイス740及びメモリコントローラ720は、バースト、または連続したデータ転送のシーケンスでデータバス上でデータを交換する。バーストは,バス周波数に関連する多数の転送サイクルに対応する。一実施例では、転送サイクルは、同じクロックまたはストローブ信号エッジ(例えば、立ち上がりエッジ)で発生する転送のための全クロックサイクルとすることができる。一実施例では、システムクロックのサイクルを指す、各クロックサイクルは、複数の単位間隔(UI)に分離され、各UIは転送サイクルである。例えば、ダブルデータレート転送は、クロック信号の両エッジでトリガされる(例えば、立ち上がりと立ち下がり)。バーストは、構成された多数のUIの間持続することができ、レジスタに記憶された構成、またはその場でトリガされた構成とすることができる。例えば、連続する8つの転送期間のシーケンスは、バースト長8(BL8)とみなすことができ、各メモリデバイス740は、各UI上のデータを転送することができる。したがって、BL8上で操作するx8メモリデバイスは、64ビットデータを転送することができる(8本のデータ信号線に、バーストを介してライン毎に転送される8ビットデータをかけたもの)。この単純な例は単なる例示であり、限定的ではないことが理解されるであろう。
【0100】
メモリデバイス740は、システム700用のメモリリソースを表す。一実施例では、各メモリデバイス740は、別個のメモリダイである。一実施例では、各メモリデバイス740は、デバイスまたはダイごとに複数(例えば、2個)のチャネルとインターフェースすることができる。各メモリデバイス740は、デバイスの実装によって決定される帯域幅(例えば、x16またはx8またはいくつかの他のインターフェース帯域幅)を有するI/Oインターフェースロジック742を含む。I/Oインターフェースロジック742は、メモリデバイスがメモリコントローラ720とインターフェースすることを可能にする。I/Oインターフェースロジック742は、ハードウェアインターフェースを含むことができ、メモリコントローラのI/O722に従いつつ、メモリデバイスの端部にすることができる。一実施例では、複数のメモリデバイス740は、同じコマンドバス及びデータバスに並列して接続される。別の実施例では、複数のメモリデバイス740は、同じコマンドバスに並列に接続され、かつ異なるデータバスに接続される。例えば、システム700は、並列に結合された複数のメモリデバイス740を備え、各メモリデバイスがコマンドに応答し、かつそれぞれの内部にあるメモリリソース760にアクセスするように構成することができる。書き込み操作の場合、個々のメモリデバイス740は、全体のデータワードの一部を書き込むことができ、読み出し操作の場合、個々のメモリデバイス740は、全体のデータワードの一部をフェッチすることができる。ワードの残りのビットは、他のメモリデバイスによって並列に提供されるか、または受信される。
【0101】
一実施例では、メモリデバイス740は、コンピューティングデバイスのマザーボードまたはホストシステムプラットフォーム(例えば、プロセッサ710が配置されているPCB(プリント回路基板))上に直接配置される。一実施例では、メモリデバイス740は、メモリモジュール770に編成することができる。一実施例では、メモリモジュール770は、デュアルインラインメモリモジュール(DIMM)を表す。一実施例では、メモリモジュール770は、アクセスまたは制御回路の少なくとも一部を共有する複数のメモリデバイスの他の組織を表し、これは、ホストシステムプラットフォームとは別個の回路、別個のデバイス、または別個のボードとすることができる。メモリモジュール770は、複数のメモリデバイス740を含むことができ、メモリモジュールは、複数の別個のチャネルを、それらの上に配置された上記含まれたメモリデバイスに対してサポートすることを含むことができる。別の実施例では、メモリデバイス740は、マルチチップモジュール(MCM)、パッケージオンパッケージ、スルーシリコンビア(TSV)、あるいは他の技術または組み合わせなどの技術によって、メモリコントローラ720と同じパッケージに組み込まれてもよい。同様に、一実施例では、複数のメモリデバイス740は、メモリモジュール770に組み込まれてもよく、それ自体は、メモリコントローラ720と同じパッケージに組み込まれてもよい。これら及び他の実装の場合、メモリコントローラ720は、ホストプロセッサ710の一部であってもよいことが理解されるであろう。
【0102】
複数のメモリデバイス740はそれぞれ、1つまたは複数のメモリアレイ760を含む。メモリアレイ760は、アドレス指定可能なメモリ位置またはデータの記憶位置を表す。典型的には、メモリアレイ760は、ワードライン(行)及びビットライン(行内の個々のビット)制御を介してアクセスされるデータの行として管理される。メモリアレイ760は、メモリの別個のチャネル、ランク、及びバンクとして編成することができる。チャネルは、メモリデバイス740内の記憶位置への独立制御パスを指すものであってもよい。ランクは、並列の複数のメモリデバイス間にわたって共通の位置(例えば、異なるデバイス内の同じ行アドレス)を指すものであってもよい。バンクは、メモリデバイス740内のメモリの位置のサブアレイを指すものであってもよい。一実施例では、メモリバンクは、複数のサブバンク用の共有回路(例えば、ドライバ、信号線、制御ロジック)の少なくとも一部を有する複数のサブバンクに分割され、個別にアドレス指定及びアクセスを可能にする。チャネル、ランク、バンク、サブバンク、バンクグループ、またはメモリ位置の他の組織、及びこれら編成の組み合わせは、物理リソースへの適用において重複し得ることが理解されるであろう。例えば、ランクに属することもできる特定のバンクとして、特定のチャネルを介して同じ物理メモリ位置にアクセスできる。したがって、メモリリソースの編成は、排他的ではなく包括的に理解される。
【0103】
一実施例では、メモリデバイス740は、1つまたは複数のレジスタ744を含む。レジスタ744は、メモリデバイスの操作のための構成または設定を提供する1つまたは複数の記憶デバイスまたは記憶位置を表す。一実施例では、レジスタ744は、メモリデバイス740が制御または管理操作の一部としてメモリコントローラ720によるアクセスのためのデータを記憶するための記憶位置を提供することができる。一実施例では、レジスタ744は、1つまたは複数のモードレジスタを含む。一実施例では、レジスタ744は、1つまたは複数の多目的レジスタを含む。レジスタ744内の位置の構成は、異なる「モード」で操作するようにメモリデバイス740を構成することができ、ここで、コマンド情報は、モードに基づいてメモリデバイス740内の異なる操作をトリガすることができる。加えてまたは代替的に、異なるモードは、そのモードに応じて、アドレス情報または他の信号線から異なる操作をトリガすることもできる。レジスタ744の設定は、I/O設定(例えば、タイミング、ターミネーションまたはODT(オンダイターミネーション)746、ドライバ構成、または他のI/O設定)のための構成を示すことができる。
【0104】
一実施例では、メモリデバイス740は、I/O742に関連付けられるインターフェースハードウェアの一部としてODT746を含む。ODT746は上記のように構成することができ、指定した信号線へのインターフェースに適用されるインピーダンスの設定を提供する。一実施例では、ODT746は、DQ信号線に適用される。一実施例では、ODT746は、コマンド信号線に適用される。一実施例では、ODT746は、アドレス信号線に適用される。一実施例では、ODT746は、前述のものの任意の組み合わせに適用することができる。
ODT設定は、メモリデバイスがアクセス操作の選択されたターゲットであるか、非ターゲットデバイスであるかに基づいて変更できる。
ODT746の設定は、終端ライン上のシグナリングのタイミングと反射に影響を与えることができる。ODT746を注意深く制御すると、適用されるインピーダンスと負荷のマッチングが改善されて、より高速な操作が可能になる。
ODT746は、I/Oインターフェース742、722の特定の信号線(例えば、DQ線用のODTまたはCA線用のODT)に適用することができ、必ずしもすべての信号線に適用されるわけではない。
【0105】
メモリデバイス740は、メモリデバイス内の内部操作を制御するためのメモリデバイス内の制御ロジックを表すコントローラ750を含む。例えば、コントローラ750は、メモリコントローラ720によって送信されたコマンドをデコードし、コマンドを実行または満足させるための内部操作を生成する。コントローラ750は、内部コントローラと称することができ、ホストのメモリコントローラ720とは別個である。コントローラ750は、レジスタ744に基づいて、どのモードが選択されているかを判断することができ、かつ選択されたモードに基づいて、メモリリソース760や他の操作へのアクセスのための操作を内部的に実行するように構成することができる。コントローラ750は、選択されたモードに適切なインターフェースを提供し、適切なメモリ位置またはアドレスにコマンドを指示するために、メモリデバイス740内のビットのルーティングを制御するための制御信号を生成する。コントローラ750は、コマンド信号線及びアドレス信号線で受信したコマンド符号化をデコードすることができるコマンドロジック752を含む。このため、コマンドロジック752は、コマンドデコーダであるか、またはコマンドデコーダを含むことができる。コマンドロジック752により、メモリデバイスは、コマンドを識別し、要求されたコマンドを実行するための内部操作を生成することができる。
【0106】
再びメモリコントローラ720を参照すると、メモリコントローラ720は、メモリデバイス740に送信するためのコマンドを生成するためのロジックまたは回路を表すコマンド(CMD)ロジック724を含む。コマンドの生成には、スケジューリング前のコマンド、または送信準備の整ったキューイングされたコマンドの準備を参照することができる。一般に、メモリサブシステムにおけるシグナリングは、メモリデバイスがコマンドを実行すべき1つまたは複数のメモリ位置を示すかまたは選択するために、コマンド内の、またはコマンドに付随するアドレス情報を含む。メモリデバイス740のトランザクションのスケジューリングに応答して、メモリコントローラ720は、I/O722を介してコマンドを発行し、メモリデバイス740にコマンドを実行させることができる。一実施例では、メモリデバイス740のコントローラ750は、メモリコントローラ720からI/O742を介して受信したコマンドおよびアドレス情報を受信し、デコードする。コントローラ750は、受信したコマンドおよびアドレス情報に基づいて、メモリデバイス740内のロジック及び回路の操作のタイミングを制御しコマンドを実行することができる。
コントローラ750は、タイミング及びシグナリング要件などのメモリデバイス740内の規格または仕様に準拠することを担う。メモリコントローラ720は、アクセススケジューリングおよび制御によって、規格または仕様に準拠することを実施することができる。
【0107】
メモリコントローラ720は、メモリデバイス740に送信するトランザクションを生成し、命令するためのロジックまたは回路を表すスケジューラ730を含む。ある観点から、メモリコントローラ720の第1の機能は、メモリデバイス740へのメモリアクセス及び他のトランザクションをスケジュールすることであると言える。そのようなスケジューリングは、プロセッサ710によるデータの要求を実装し、データ完全性を維持するために(例えば、リフレッシュに関連するコマンドなどで)トランザクション自体を生成することを含むことができる。トランザクションは、1つまたは複数のコマンドを含むことができ、クロックサイクルまたは単位間隔などの1つまたは複数のタイミングサイクルにわたってコマンドまたはデータまたはその両方の転送をもたらす。トランザクションは、読み取りや書き込み、関連コマンドなどのアクセス、またはそれらの組み合わせに対するものであり、他のトランザクションには、構成、設定、データ完全性のためのメモリ管理コマンド、またはその他のコマンド、またはそれらの組み合わせを含み得る。
【0108】
メモリコントローラ720は、典型的には、トランザクションの選択および順序付けを可能にしてシステム700のパフォーマンスを向上させるスケジューラ730などのロジックを含む。したがって、メモリコントローラ720は、未処理のトランザクションのどれをメモリデバイス740にどの順序で送信すべきかを選択することができ、これは典型的に単純な先入れ先出しアルゴリズムよりもはるかに複雑なロジックで達成される。メモリコントローラ720は、メモリデバイス740へのトランザクションの送信を管理し、トランザクションに関連付けられたタイミングを管理する。一実施例では、トランザクションは、確定的タイミングを有し、これは、メモリコントローラ720によって管理され、スケジューラ730でトランザクションをスケジュールする方法を決定する際に使用され得る。
【0109】
一実施例では、メモリコントローラ720は、リフレッシュ(REF)ロジック726を含む。リフレッシュロジック726は、揮発性であり、確定的な状態を保持するためにリフレッシュされる必要があるメモリリソースに用いることができる。一実施例では、リフレッシュロジック726は、リフレッシュのための位置、及び実行するリフレッシュのタイプを示す。リフレッシュロジック726は、メモリデバイス740内で自己リフレッシュをトリガすることができ、またはリフレッシュコマンドを送信することによって外部リフレッシュ(オートリフレッシュコマンドと称することができる)を実行することができ、またはその組み合わせが可能である。一実施例では、メモリデバイス740内のコントローラ750は、メモリデバイス740内でリフレッシュを適用するためのリフレッシュロジック754を含む。一実施例では、リフレッシュロジック754は、メモリコントローラ720から受信した外部リフレッシュに応じてリフレッシュを行うための内部演算を生成する。リフレッシュロジック754は、リフレッシュがメモリデバイス740に向けられているかどうか、かつコマンドに応答してどんなメモリリソース760をリフレッシュするべきかを決定することができる。
【0110】
図8は、内部スクラッチパッドメモリを有するメモリ内のPPRを実装することができるコンピューティングシステムの一例のブロック図である。システム800は、本明細書の任意の実施例に従ったコンピューティングデバイスを表し、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバ、ゲームまたはエンターテイメント制御システム、組込みコンピューティングデバイス、または他の電子デバイスであり得る。システム800は、システム100またはシステム300に従ったシステムの例を提供する。
【0111】
一実施例では、システム800は、メモリ830内に内部スクラッチパッドメモリ892を含む。スクラッチパッド892は、障害行のデータ内容をメモリコントローラ822に移動させる必要がなく、メモリ830が内部ストレージでPPRを行うことを可能にする。一例では、メモリサブシステム820は、スクラッチパッド892で障害行をリマッピングすることをサポートするためにPPR操作を実行するためのPPRロジック890を含む。一実施例では、PPRロジック890は、メモリコントローラ822に少なくとも部分的に含まれる。一実施例では、PPRロジック890は、メモリ830の少なくとも一部に含まれる。PPRロジック890により、メモリサブシステム820は、本明細書の任意の実施例に従って、スクラッチパッド892を用いて障害行のデータ内容を新しい行に移動させ、障害行を再マッピングする操作を実行することができる。
【0112】
システム800は、システム800のための処理または指示の実行を提供するために、任意のタイプのマイクロプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、処理コア、または他の処理ハードウェア、またはそれらの組み合わせを含み得るプロセッサ810を含む。プロセッサ810は、システム800の全体的な操作を制御し、1つまたは複数のプログラム可能な汎用または専用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラム可能なコントローラ、特定用途向け集積回路(ASIC)、プログラム可能な論理デバイス(PLD)、またはそのようなデバイスの組み合わせであるか、あるいは含み得る。
【0113】
一実施例では、システム800は、プロセッサ810に結合されたインターフェース812を含み、このインターフェースは、メモリサブシステム820またはグラフィックインターフェースコンポーネント840などのより高い帯域幅接続を必要とするシステムコンポーネント用の高速インターフェースまたは高スループットインターフェースを表すことができる。インターフェース812は、スタンドアロンコンポーネントであるか、またはプロセッサダイ上で統合させることができるインターフェース回路を表す。インターフェース812は、回路としてプロセッサダイ上で統合させるか、またはチップ上でシステムのコンポーネントとして統合させることができる。グラフィックインターフェース840は、存在する場合、システム800のユーザに視覚的ディスプレイを提供するためのグラフィックコンポーネントにインターフェースする。グラフィックインターフェース840は、スタンドアロンコンポーネントであるか、プロセッサダイまたはチップ上のシステムに統合 させることができる。一実施例では、グラフィックインターフェース840は、ユーザに出力を提供する高精細(HD)ディスプレイまたは超高精細(UHD)ディスプレイを駆動することができる。一実施例では、ディスプレイは、タッチスクリーンディスプレイを含むことができる。一実施例では、グラフィックインターフェース840は、メモリ830に記憶されたデータに基づいて、またはプロセッサ810によって実行された操作に基づいて、またはその両方に基づいて、表示を生成する。
【0114】
メモリサブシステム820は、システム800のメインメモリを表し、プロセッサ810によって実行されるコード、またはルーチンを実行する際に用いられるデータ値のためのストレージを提供する。メモリサブシステム820は、1つまたは複数のメモリデバイス830を含み、例えば、リードオンリーメモリ(ROM)、フラッシュメモリ、DRAMや3DXP(3次元クロスポイント)などのランダムアクセスメモリ(RAM)の1種または複数種の変形、または他のメモリデバイス、あるいはこれらデバイスの組み合わせが挙げられる。メモリ830は、システム800における命令の実行のためのソフトウェアプラットフォームを提供するために、とりわけ、オペレーティングシステム(OS)832を記憶し、ホストする。加えて、アプリケーション834は、メモリ830からOS832のソフトウェアプラットフォーム上で実行することができる。アプリケーション834は、1つまたは複数の機能を実行するための独自の操作ロジックを有するプログラムを表す。プロセス836は、OS832または1つ以上のアプリケーション834あるいはその組み合わせに補助機能を提供するエージェントまたはルーチンを表す。OS832、アプリケーション834、およびプロセス836は、システム800のための機能を提供するためにソフトウェアロジックを提供する。一実施例では、メモリサブシステム820は、メモリ830にコマンドを生成して発行するためのメモリコントローラである、メモリコントローラ822を含む。メモリコントローラ822は、プロセッサ810の物理的部分、またはインターフェース812の物理的部分であり得ることが理解されるであろう。例えば、メモリコントローラ822は、プロセッサダイ上、またはチップ上のシステム上で統合されたような、プロセッサ810と回路上で統合された、統合メモリコントローラであってもよい。
【0115】
特に図示されていないが、システム800は、メモリバス、グラフィックバス、インターフェースバスなどのデバイス間の1つまたは複数のバスまたはバスシステムを含むことができることが理解されるであろう。バスまたは他の信号線は、構成要素を通信的または電気的に結合することができ、あるいは構成要素を通信的及び電気的に結合することができる。バスには、物理的な通信回線、ポイントツーポイント接続、ブリッジ、アダプタ、コントローラ、その他の回路、またはそれらの組み合わせを含めることができる。バスは、例えば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス、ハイパートランスポートまたは業界規格アーキテクチャ(ISA)バス、小型コンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、または他のバス、あるいはそれらの組み合わせのうちの1つまたは複数を含むことができる。
【0116】
一実施例では、システム800は、インターフェース812に結合され得るインターフェース814を含む。インターフェース814は、インターフェース812よりも低速のインターフェースであり得る。一例では、インターフェース814はインターフェース回路を表し、スタンドアロンコンポーネントおよび集積回路を含むことができる。一実施例では、複数のユーザインターフェースコンポーネントまたは周辺コンポーネント、あるいはその両方がインターフェース814に結合される。ネットワークインターフェース850は、システム800に、1つまたは複数のネットワークを介してリモートデバイス(例えば、サーバまたは他のコンピューティングデバイス)と通信する能力を提供する。
ネットワークインターフェース850は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、セルラーネットワーク相互接続コンポーネント、USB(ユニバーサルシリアルバス)、あるいは他の有線または無線の規格に基づくまたは独自のインターフェースを含むことができる。ネットワークインターフェース850は、リモートデバイスとデータを交換することができ、このことは、メモリに記憶されたデータを送信すること、またはメモリに記憶されるべきデータを受信することを含み得る。
【0117】
一実施例では、システム800は、1つまたは複数の入出力(I/O)インターフェース860を含む。I/Oインターフェース860は、ユーザがシステム800と相互作用する1つまたは複数のインターフェースコンポーネント(例えば、オーディオ、英数字、触覚/タッチ、または他のインターフェーシング)を含むことができる。周辺インターフェース870は、上記で特に言及されていない、任意のハードウェアインターフェースを含むことができる。周辺機器とは、一般に、システム800に依存的に接続するデバイスを指す。依存的接続とは、システム800が、操作が実行されるソフトウェアプラットフォームまたはハードウェアプラットフォーム、あるいはその両方を提供し、ユーザが相互作用するものである。
【0118】
一実施例では、システム800は、不揮発性の方法でデータを記憶するためのストレージサブシステム880を含む。一実施例では、特定のシステム実装では、ストレージサブシステム880の少なくとも特定の構成要素は、メモリサブシステム820の構成要素と重複することができる。ストレージサブシステム880は、ストレージデバイス(複数可)884を含み、これは、1つまたは複数の磁気ディスク、ソリッドステートディスク、3DXPディスク、または光学ベースのディスク、あるいはそれらの組み合わせなどの、不揮発性の方法で大量のデータを記憶するための任意の従来の媒体であり得るか、またはそれらを含み得る。ストレージ884は、コードまたは支持及びデータ886を永続的な状態で保持する(すなわち、システム800への電力が中断されたにもかかわらず、値が保持される)。メモリ830は、典型的にはプロセッサ810に指示を提供するための実行または稼働メモリであるが、ストレージ884は、一般的に「メモリ」であるとみなすことができる。ストレージ884が不揮発性であるのに対し、メモリ830は揮発性メモリを含むことができる(すなわち、システム800への電力が遮断された場合、データの値または状態は不確定である)。一実施例では、ストレージサブシステム880は、ストレージ884とインターフェースするためのコントローラ882を含む。一実施例では、コントローラ882は、インターフェース814またはプロセッサ810の物理的部分であるか、またはプロセッサ810とインターフェース814の両方に回路またはロジックを含むことができる。
【0119】
電源802は、システム800の構成要素に電力を供給する。より具体的には、電源802は、典型的には、システム800内の構成要素に電力を供給するために、システム800内の1つまたは複数の電力供給装置804にインターフェースする。一実施例では、電力供給装置804は、壁コンセントに差し込むためのAC-DC(交流から直流)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電)の電源802であり得る。一実施例では、電源802は、外部AC-DCコンバータなどのDC電源を含む。一実施例では、電源802または電力供給装置804は、充電フィールドの近くを介して充電するためのワイヤレス充電ハードウェアを含む。一実施例では、電源802は、内部バッテリまたは燃料電池源を含むことができる。
【0120】
図9は、内部スクラッチパッドメモリを有するメモリ内のPPRが実装され得る、モバイルデバイスの一例のブロック図である。システム900は、コンピューティングタブレット、携帯電話またはスマートフォン、ウェアラブルコンピューティングデバイス、または他のモバイルデバイスなどのモバイルコンピューティングデバイス、あるいは組込みコンピューティングデバイスを表す。特定の構成要素が一般的に示されており、そのようなデバイスのすべての構成要素がシステム900に示されているわけではないことが理解されるであろう。
システム900は、システム100またはシステム300に従ったシステムの一例を提供する。
【0121】
一実施例では、システム900は、メモリ962に内部スクラッチパッドメモリ992を含む。スクラッチパッド992は、メモリコントローラ964に障害行のデータ内容を移動する必要なく、メモリ962が内部ストレージでPPRを実行することを可能にする。一実施例では、メモリサブシステム960は、スクラッチパッド992で障害行をリマッピングすることを助長するためにPPR操作を行うためのPPRロジック990を含む。一実施例では、PPRロジック990は、メモリコントローラ964の少なくとも一部に含まれる。
一実施例では、PPRロジック990は、メモリ962に少なくとも部分的に含まれる。PPRロジック990は、メモリサブシステム960が、本明細書の任意の実施例に従って、スクラッチパッド992で障害行のデータ内容を新しい行に移動させて、障害行をリマップするための操作を実行することを可能にする。
【0122】
システム900は、システム900の一次処理操作を実行するプロセッサ910を含む。
プロセッサ910は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、または他の処理手段などの1つまたは複数の物理デバイスを含むことができる。
プロセッサ910によって実行される処理操作は、アプリケーション及びデバイス機能が実行されるオペレーティングプラットフォームまたはオペレーティングシステムの実行を含む。処理操作は、人間のユーザや他のデバイスとのI/O(入出力)に関する操作、電源管理に関する操作、システム900と他のデバイスとの接続に関する操作、またはそれらの組み合わせを含まれる。また、処理操作には、音声入出力I/Oに関する操作、ディスプレイ入出力に関する操作、その他のインターフェーシングに関する操作、またはそれらの組み合わせを含むことができる。プロセッサ910は、メモリに記憶されたデータを実行することができる。プロセッサ910は、メモリに記憶されたデータを書き込みまたは編集することができる。
【0123】
一実施例では、システム900は、1つまたは複数のセンサ912を含む。センサ912は、組込みセンサまたは外部センサへのインターフェース、あるいはその組み合わせを表す。センサ912は、システム900が実装される環境またはデバイスの1つまたは複数の状態をシステム900が監視または検出することを可能にする。センサ912は、環境センサ(例えば、温度センサ、動き検出器、光検出器、カメラ、化学センサ(例えば、一酸化炭素、二酸化炭素、または他の化学センサ))、圧力センサ、加速度メータ、ジャイロスコープ、医療または生理学センサ(例えば、バイオセンサ、心拍モニタ、または生理学的属性を検出する他のセンサ)、または他のセンサ、あるいはそれらの組み合わせを含むことができる。センサ912はまた、指紋認識システム、顔検出または認識システム、またはユーザの特徴を検出または認識する他のシステムなどの生体認証システムのためのセンサを含むことができる。
センサ912は、システム900と共に実装され得る多くの異なるタイプのセンサに限定されるものではなく、広く理解されるべきである。
一実施例では、1つまたは複数のセンサ912は、プロセッサ910と統合されたフロントエンド回路を介してプロセッサ910に結合する。
一実施例では、1つまたは複数のセンサ912は、システム900の別のコンポーネントを介してプロセッサ910に結合する。
【0124】
一実施例では、システム900は、オーディオ機能をコンピューティングデバイスに提供することに関連付けられるハードウェア(例えば、オーディオハードウェア及びオーディオ回路)及びソフトウェア(例えば、ドライバ、コーデック)コンポーネントを表す、オーディオサブシステム920を含む。オーディオ機能は、マイク入力とともに、スピーカまたはヘッドフォンの出力を含むことができる。そのような機能のためのデバイスは、システム900に統合されたり、またはシステム900に接続されることができる。一実施例では、ユーザは、プロセッサ910によって受信され処理される音声コマンドを提供することによって、システム900と相互作用を行う。
【0125】
ディスプレイサブシステム930は、ユーザに提示するための視覚的なディスプレイを提供するハードウェア(例えば、ディスプレイデバイス)及びソフトウェアコンポーネント(例えば、ドライバ)を表す。一実施例では、ディスプレイは、ユーザがコンピューティングデバイスと相互作用を行う触覚コンポーネントまたはタッチスクリーン要素を含む。ディスプレイサブシステム930は、ディスプレイをユーザに提供するために使用される特定のスクリーンまたはハードウェアデバイスを含むディスプレイインターフェース932を含む。一実施例では、ディスプレイインターフェース932は、ディスプレイに関連する少なくともいくつかの処理を行うために、プロセッサ910(グラフィックプロセッサなど)とは別個のロジックを含む。一実施例では、ディスプレイサブシステム930は、ユーザに出力と入力の両方を提供するタッチスクリーンデバイスを含む。一実施例では、ディスプレイサブシステム930は、ユーザに出力を提供する高精細(HD)または超高精細(UHD)ディスプレイを含む。一実施例では、ディスプレイサブシステムは、タッチスクリーンディスプレイを含むか、または駆動する。一実施例では、ディスプレイサブシステム930は、メモリに記憶されたデータに基づいて、またはプロセッサ910によって実行された操作に基づいて、またはその両方に基づいて、ディスプレイ情報を生成する。
【0126】
I/Oコントローラ940は、ユーザとの相互作用に関連するハードウェアデバイス及びソフトウェアコンポーネントを表す。I/Oコントローラ940は、オーディオサブシステム920、またはディスプレイサブシステム930、またはその両方の一部であるハードウェアを管理するように動作することができる。さらに、I/Oコントローラ940は、ユーザがシステムと相互作用し得るシステム900に接続する追加的なデバイスのための接続点を例示する。例えば、システム900に取り付け可能なデバイスは、マイクロフォンデバイス、スピーカまたはステレオシステム、ビデオシステムまたは他のディスプレイデバイス、キーボードまたはキーパッドデバイス、ボタン/スイッチ、またはカードリーダまたは他のデバイスのような特定のアプリケーションで使用するための他のI/Oデバイスを含み得る。
【0127】
上述したように、I/Oコントローラ940は、オーディオサブシステム920またはディスプレイサブシステム930、あるいはその両方と相互作用することができる。
例えば、マイクまたは他のオーディオデバイスを介した入力は、システム900の1つまたは複数のアプリケーションまたは機能のための入力またはコマンドを提供することができる。さらに、オーディオ出力は、ディスプレイの出力の代わりに、またはディスプレイ出力に加えて提供されることができる。別の実施例では、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスは、I/Oコントローラ940によって少なくとも部分的に管理され得る、入力デバイスとしても機能する。また、I/Oコントローラ940によって管理されるI/O機能を提供するために、システム900上に追加のボタンまたはスイッチを設けることもできる。
【0128】
一実施例では、I/Oコントローラ940は、加速度計、カメラ、光センサまたは他の環境センサ、ジャイロスコープ、全地球測位システム(GPS)、またはシステム900に含まれ得る他のハードウェア、またはセンサ912などのデバイスを管理する。入力は、システムの動作に影響を与えるために環境入力をシステムに提供する(ノイズのためのフィルタリング、明るさの検出のためのディスプレイの調整、カメラのためのフラッシュの適用、または他の特徴など)とともに、直接的なユーザインタラクションの一部であってもよい。
【0129】
一実施例では、システム900は、バッテリの電力使用量、バッテリの充電、および省電力動作に関連する特徴を管理する電力管理部950を含む。電力管理部950は、システム900の構成要素に電力を供給する電源952からの電力を管理する。一実施例では、電源952は、壁コンセントに差し込むためのAC-DC(交流から直流)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電、動力ベースの電力)であり得る。一実施例では、電源952は、外部のAC-DCコンバータなどのDC電源によって提供され得るDC電力のみを含む。一実施例では、電源952は、充電フィールドへの近くを介して充電するためのワイヤレス充電ハードウェアを含む。一実施例では、電源952は、内部バッテリまたは燃料電池源を含むことができる。
【0130】
メモリサブシステム960は、システム900内に情報を記憶するためのメモリデバイス(複数可)962を含む。メモリサブシステム960は、不揮発性(メモリデバイスへの電力が遮断されても状態は変化しない)メモリデバイス、または揮発性(メモリデバイスへの電力が遮断されると状態は不確定)メモリデバイス、あるいはそれらの組み合わせを含むことができる。メモリ960は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、または他のデータ、およびシステム900のアプリケーションおよび機能の実行に関連するシステムデータ(長期的または一時的のいずれであっても)を記憶することができる。一実施例では、メモリサブシステム960は、メモリコントローラ964(これは、システム900の制御の一部であると考えられ、かつプロセッサ910の一部であると考えられる可能性もある)を含む。メモリコントローラ964は、メモリデバイス962へのアクセスを制御するためのコマンドを生成し、発行するためのスケジューラを含む。
【0131】
接続性970は、システム900が外部デバイスと通信することを可能にするためのハードウェアデバイス(例えば、無線または有線コネクタ及び通信ハードウェア、または有線及び無線ハードウェアの組み合わせ)ならびにソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイントまたは基地局のような別個のデバイス、およびヘッドセット、プリンタ、または他のデバイスのような周辺機器であり得る。一実施例では、システム900は、メモリに記憶するため、またはディスプレイデバイスに表示するための外部デバイスと、データを交換する。交換されたデータは、メモリに記憶されるべきデータ、または既にメモリに記憶されているデータを含み、データを読み取ったり、書き込んだり、または編集したりすることができる。
【0132】
接続性970は、複数の異なるタイプの接続性を含むことができる。一般化するために、システム900は、セルラー接続性972及び無線接続性974で図示されている。セルラー接続性972とは、一般に、GSM(登録商標)(移動体通信のためのグローバルシステム)またはそのバリエーションまたは派生物、CDMA(符号分割多重アクセス)またはそのバリエーションまたは派生物、TDM(時分割多重化)またはそのバリエーションまたは派生物、LTE(長期進化、「4G」とも称される)、5G、または他のセルラーサービス規格を介して提供されるような無線通信事業者によって提供されるセルラーネットワーク接続性を指す。無線接続性974は、セルラーではない無線接続性を指し、パーソナルエリアネットワーク(ブルートゥース(登録商標)など)、ローカルエリアネットワーク(WiFiなど)、または広域ネットワーク(WiMaxなど)、または他の無線通信、またはその組み合わせを含むことができる。無線通信とは、非固体媒体を介して変調された電磁放射を使用してデータを転送することを指す。有線通信は、固体の通信媒体を介して生じる。
【0133】
周辺接続980は、周辺の接続を行うためのソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)と同様に、ハードウェアインターフェース及びコネクタを含む。システム900は、他のコンピューティングデバイスに対する周辺デバイス(「へ」982」)であり、またそれに接続された周辺デバイス(「から」984)を有し得ることが理解されるであろう。システム900は、システム900上のコンテンツの管理(例えば、ダウンロード、アップロード、変更、同期化)などの目的のために、他のコンピューティングデバイスに接続するための「ドッキング」コネクタを一般的に有する。さらに、ドッキングコネクタは、例えばオーディオビジュアルまたは他のシステムへのコンテンツ出力をシステム900が制御することを可能にする特定の周辺機器にシステム900が接続することを可能にする。
【0134】
独自のドッキングコネクタまたは他の独自の接続ハードウェアに加えて、システム900は、共通または規格ベースのコネクタを介して周辺接続980を構成することができる。共通のタイプは、ユニバーサルシリアルバス(USB)コネクタ(これは、多数の異なるハードウェアインターフェースのいずれかを含むことができ)、MiniDisplayPort(MDP)を含むDisplayPort、高精細マルチメディアインターフェース(HDMI(登録商標))、または他のタイプを含むことができる。
【0135】
一般的に、本明細書の記述に関して、一実施例では、メモリデバイスは、論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイと、複数のメモリ行のうちの1つの行の障害(「障害行」)を検出し、ポストパッケージ修復(PPR)モードを実行するコントローラとを含み、PPRモードは、障害行の論理アドレスを障害行の物理アドレスから予備行の物理アドレスにマッピングし、障害行からメモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、内部スクラッチパッドメモリから予備行にそのデータ内容を転送することを含む。
【0136】
一実施例では、PPRモードは、ソフトPPR(sPPR)モードを含む。一実施例では、PPRモードは、メモリデバイスの組込み自己テスト(BIST)に応答したPPRモードを含む。一実施例では、内部スクラッチパッドメモリは、プリフェッチバッファを含む。一実施例では、プリフェッチバッファは、センスアンプ回路を含む。一実施例では、内部スクラッチパッドメモリは、内部レジスタを含む。一実施例では、メモリアレイは、複数のメモリバンクを含み、 内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む。一実施例では、障害行から内部スクラッチパッドメモリへのデータ内容の転送は、ホストコントローラによってホスト制御され、ホストコントローラは、データ内容を内部スクラッチパッドメモリへ、かつ内部スクラッチパッドメモリから予備行へ転送させるためのコマンドを提供する。一実施例では、障害行から内部スクラッチパッドメモリへのデータ内容の転送は、自律的であり、メモリデバイスは、メモリデバイスに関連付けられたホストコントローラがデータ内容を転送するコマンドを送信することなく、内部的にデータ内容を内部スクラッチパッドメモリへ、かつ内部スクラッチパッドメモリから予備行へ転送する。一実施例では、メモリデバイスは、ダブルデータレート(DDR)規格と互換性のある、同期ダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む。
【0137】
一般的に、本明細書の記載に関して、一実施例では、システムは、メモリコントローラと、メモリコントローラに結合されたダイナミックランダムアクセスメモリ(DRAM)デバイスであって、論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイを含むDRAMデバイスと、複数のメモリ行のうちの1つの行の障害(「障害行」)を検出し、ポストパッケージ修復(PPR)モードを実行するコントローラとを備え、PPRモードは、障害行の論理アドレスを障害行の物理アドレスから予備行の物理アドレスにマッピングし、障害行からメモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、内部スクラッチパッドメモリから予備行にそのデータ内容を転送することを含む。
【0138】
一実施例では、PPRモードは、ソフトPPR(sPPR)モードを含む。一実施例では、内部スクラッチパッドメモリは、プリフェッチバッファを含む。一実施例では、プリフェッチバッファは、センスアンプ回路を含む。一実施例では、内部スクラッチパッドメモリは、内部レジスタを含む。一実施例では、コントローラは、メモリデバイスの内部にある。一実施例では、メモリアレイは、複数のメモリバンクを含み、内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む。一実施例では、障害行から内部スクラッチパッドメモリへのデータ内容の転送は、メモリコントローラによってホスト制御され、メモリコントローラは、データ内容を内部スクラッチパッドメモリへ、かつ内部スクラッチパッドメモリから予備行へ転送させるためのコマンドを提供するものである。一実施例では、障害行から内部スクラッチパッドメモリへのデータ内容の転送は、自律的であり、メモリデバイスは、メモリデバイスに関連付けられたメモリコントローラがデータ内容を転送するコマンドを送信することなく、内部的にデータ内容を内部スクラッチパッドメモリへ、かつ内部スクラッチパッドメモリから予備行へ転送する。一実施例では、システムは、メモリコントローラに結合されたホストプロセッサデバイス、ホストプロセッサに通信的に結合されたディスプレイ、ホストプロセッサに通信的に結合されたネットワークインターフェース、またはシステムに電力を供給するためのバッテリのうちの1つまたは複数をさらに含む。
【0139】
一般的に、本明細書の記載に関して、一実施例では、方法は、論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイにおいて複数のメモリ行のうちの1つの行の障害(「障害行」)を検出することと、ポストパッケージ修復(PPR)モードを実行することとを含み、ポストパッケージ修復モードは、障害行の論理アドレスを障害行の物理アドレスから予備行の物理アドレスにマッピングし、障害行からメモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、内部スクラッチパッドメモリから予備行にそのデータ内容を転送することを含む。
【0140】
一実施例では、PPRモードは、ソフトPPR(sPPR)モードを含む。一実施例では、PPRモードは、メモリデバイスの組込み自己テスト(BIST)に応答したPPRモードを含む。一実施例では、内部スクラッチパッドメモリは、プリフェッチバッファを含む。一実施例では、プリフェッチバッファは、センスアンプ回路を含む。一実施例では、内部スクラッチパッドメモリは、内部レジスタを含む。一実施例では、メモリアレイは、複数のメモリバンクを含み、内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む。一実施例では、障害行から内部スクラッチパッドメモリへのデータ内容の転送は、ホストコントローラによってホスト制御され、ホストコントローラは、データ内容を内部スクラッチパッドメモリへ、かつ内部スクラッチパッドメモリから予備行へ転送させるためのコマンドを提供する。一実施例では、障害行から内部スクラッチパッドメモリへのデータ内容の転送は、自律的であり、メモリデバイスは、メモリデバイスに関連付けられたホストコントローラがデータ内容を転送するコマンドを送信することなく、内部的にデータ内容を内部スクラッチパッドメモリへ、かつ内部スクラッチパッドメモリから予備行へ転送する。一実施例では、メモリデバイスは、ダブルデータレート(DDR)規格と互換性のある、同期ダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む。
【0141】
本明細書に例示されるフロー図は、様々なプロセス動作のシーケンスの例を提供する。フロー図は、物理的操作だけでなく、ソフトウェアまたはファームウェアルーチンによって実行される操作を示すことができる。フロー図は、ハードウェア及び/またはソフトウェアで実装され得る有限状態機械(FSM)の状態の実装の例を示すことができる。特定のシーケンスまたは順序で示されているが、特に指定がない限り、動作の順序は変更可能である。
したがって、例示された図面は、例としてのみ理解されるべきであり、プロセスは、異なる順序で実行され得、いくつかの動作は、並列に実行され得る。加えて、1つまたは複数のアクションを省略することができ、つまりすべての実装によりすべての動作を行うとは限らない。
【0142】
様々な操作または機能は、本明細書に記載されている程度で、ソフトウェアコード、指示、構成、及び/またはデータとして記載または定義することができる。内容は、直接実行可能(「オブジェクト」または「実行可能」形態)、ソースコード、または差分コード(「デルタ」または「パッチ」コード)であり得る。本明細書に記載されていることのソフトウェアの内容は、コンテンツが記憶されている製造品を介して、または通信インターフェースを通してデータを送信するために通信インターフェースを操作する方法を介して提供することが可能である。機械可読記憶媒体は、機械に記載された機能または操作を実行させることができ、記録可能/非記録可能媒体(例えば、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなど)などの機械(例えば、コンピューティングデバイス、電子システムなど)によってアクセス可能な形態で情報を記憶する任意のメカニズムを含む。通信インターフェースは、メモリバスインターフェース、プロセッサバスインターフェース、インターネット接続、ディスクコントローラなどの、別のデバイスと通信するために、ハードワイヤード、ワイヤレス、光などの媒体のいずれかにインターフェースする任意のメカニズムを含む。通信インターフェースは、ソフトウェアの内容を記載したデータ信号を提供するための通信インターフェースを準備するために、構成パラメータを提供すること、及び/または信号を送信することによって構成することができる。通信インターフェースは、通信インターフェースに送信された1つまたは複数のコマンドまたは信号を介してアクセス可能である。
【0143】
本明細書に記載された様々な構成要素は、記載された操作または機能を実行するための手段であり得る。
本明細書に記載される各構成要素は、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む。
構成要素は、ソフトウェアモジュール、ハードウェアモジュール、特殊目的のハードウェア(例えば、アプリケーション固有のハードウェア、アプリケーション固有の集積回路(ASIC)、デジタル信号プロセッサ(DSP)など)、組込みコントローラ、ハードワイヤード回路などとして実装することができる。
【0144】
本明細書に記載されている内容の他に、本発明に開示されている内容及び実施形態には、その範囲から逸脱することなく、様々な変更を加えることができる。したがって、本明細書の図示及び実施例は、例示的な意味で解釈されるべきであり、制限的な意味で解釈されるべきではない。本発明の範囲は、後述の特許請求の範囲を参照することによってのみ判断されるべきである。
[考えられる他の項目]
[項目1]
メモリデバイスであって、
論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイと、
上記複数のメモリ行のうちの1つの行の障害(「障害行」)を検出し、ポストパッケージ修復(PPR)モードを実行するコントローラとを備え、
上記PPRモードは、上記障害行の上記論理アドレスを上記障害行の物理アドレスから上記予備行の物理アドレスにマッピングし、
上記障害行から前記メモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、
上記内部スクラッチパッドメモリから上記予備行に上記データ内容を転送することを含む、メモリデバイス。
[項目2]
上記PPRモードは、ソフトPPR(sPPR)モードを含む、項目1に記載のメモリデバイス。
[項目3]
上記PPRモードは、上記メモリデバイスの組込み自己テスト(BIST)に応答したPPRモードを含む、項目1に記載のメモリデバイス。
[項目4]
上記内部スクラッチパッドメモリは、プリフェッチバッファを含む、項目1に記載のメモリデバイス。
[項目5]
上記プリフェッチバッファは、センスアンプ回路を含む、項目4に記載のメモリデバイス。
[項目6]
上記内部スクラッチパッドメモリは、内部レジスタを含む、項目1に記載のメモリデバイス。
[項目7]
上記メモリアレイは、複数のメモリバンクを含み、上記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、項目1に記載のメモリデバイス。
[項目8]
上記障害行から上記内部スクラッチパッドメモリへの上記データ内容の転送は、ホストコントローラによってホスト制御され、上記ホストコントローラは、上記データ内容を上記内部スクラッチパッドメモリへ、かつ上記内部スクラッチパッドメモリから上記予備行へ転送させるためのコマンドを提供する、項目1に記載のメモリデバイス。
[項目9]
上記障害行から上記内部スクラッチパッドメモリへの上記データ内容の転送は、自律的であり、上記メモリデバイスは、上記メモリデバイスに関連付けられたホストコントローラが上記データ内容を転送するコマンドを送信することなく、内部的に上記データ内容を上記内部スクラッチパッドメモリへ、かつ上記内部スクラッチパッドメモリから上記予備行へ転送する、項目1に記載のメモリデバイス。
[項目10]
上記メモリデバイスは、ダブルデータレート(DDR)規格と互換性のある、同期ダイナミックランダムアクセスメモリ(SDRAM)デバイスを含む、項目1に記載のメモリデバイス。
[項目11]
メモリコントローラと、
上記メモリコントローラに結合されたダイナミックランダムアクセスメモリ(DRAM)デバイスであって、論理アドレスが各々の物理アドレスにマッピングされている複数のメモリ行と論理アドレスが物理アドレスにマッピングされていない少なくとも1つの予備行とを有するメモリアレイを含むダイナミックランダムアクセスメモリデバイスと、
上記複数のメモリ行のうちの1つの行の障害(「障害行」)を検出し、ポストパッケージ修復(PPR)モードを実行するコントローラとを備え、
上記PPRモードは、上記障害行の上記論理アドレスを上記障害行の上記物理アドレスから上記予備行の上記物理アドレスにマッピングし、上記障害行から上記メモリデバイスの内部にある内部スクラッチパッドメモリにデータ内容を転送し、上記内部スクラッチパッドメモリから上記予備行に上記データ内容を転送することを含む、システム。
[項目12]
上記PPRモードは、ソフトPPR(sPPR)モードを含む、項目11に記載のシステム。
[項目13]
上記内部スクラッチパッドメモリは、プリフェッチバッファを含む、項目11に記載のシステム。
[項目14]
上記プリフェッチバッファは、センスアンプ回路を含む、項目13に記載のシステム。
[項目15]
上記内部スクラッチパッドメモリは、内部レジスタを含む、項目11に記載のシステム。
[項目16]
上記コントローラは、上記メモリデバイスの内部にある、項目11に記載のシステム。
[項目17]
上記メモリアレイは、複数のメモリバンクを含み、上記内部スクラッチパッドメモリは、単一のメモリバンクにローカライズされた内部スクラッチパッドを含む、項目11に記載のシステム。
[項目18]
上記障害行から上記内部スクラッチパッドメモリへの上記データ内容の前記転送は、前記メモリコントローラによってホスト制御され、上記メモリコントローラは、上記データ内容を上記内部スクラッチパッドメモリへ、かつ上記内部スクラッチパッドメモリから上記予備行へ転送させるためのコマンドを提供する、項目11に記載のシステム。
[項目19]
上記障害行から上記内部スクラッチパッドメモリへの上記データ内容の転送は、自律的であり、上記メモリデバイスは、上記メモリデバイスに関連付けられた上記メモリコントローラが上記データ内容を転送するコマンドを送信することなく、内部的に上記データ内容を上記内部スクラッチパッドメモリへ、かつ上記内部スクラッチパッドメモリから上記予備行へ転送する、項目11に記載のシステム。
[項目20]
上記メモリコントローラに結合されたホストプロセッサデバイスと、
上記ホストプロセッサに通信的に結合されたディスプレイと、
ホストプロセッサに通信的に結合されたネットワークインターフェースと、
上記システムに電力を供給するためのバッテリのうちの1つまたは複数をさらに含む、項目11に記載のシステム。