(57)【要約】ローカルメモリを有するコントローラを備えたメモリ装置を動作させるメモリ装置、システム、及び、方法の実施形態を一般的に本明細書に記載する。ある実施形態においては、コントローラは、メモリ要求（例えば、読み取り、書き込み）をメモリ装置の適切なモジュールメモリに分配することができ、ローカルメモリに記憶されたＥＣＣデータを用いた検出及び訂正を含む、メモリ装置からホストへの応答を編成できる。ローカルメモリは、また、任意の欠陥モジュールメモリ位置に冗長メモリを提供できる。【選択図】図１
2017514263.tif 000002
【特許請求の範囲】
【請求項１】
基板と、
前記基板に結合された複数のモジュールメモリ装置と、
前記基板に結合されたコントローラであって、前記複数のモジュールメモリ装置とは別個のローカルメモリであって、前記複数のモジュールメモリの欠陥位置に関連付けられた冗長メモリと、前記複数のモジュールメモリ装置に関連付けられたエラー訂正コードメモリとを含む前記ローカルメモリを備える、前記コントローラと、
を備える、メモリ構成体。
【請求項２】
前記複数のモジュールメモリ装置は、シリコン貫通電極によって互いに結合される、請求項１に記載のメモリ構成体。
【請求項３】
前記複数のモジュールメモリ装置は、前記基板のインタフェースを通して前記コントローラに結合される、請求項２に記載のメモリ構成体。
【請求項４】
前記ローカルメモリは、前記コントローラに接続されたローカルメモリスタックを含む、請求項１に記載のメモリ構成体。
【請求項５】
前記ローカルメモリは、複数の不揮発性メモリダイ及び／または複数の揮発性メモリダイを含む、請求項４に記載のメモリ構成体。
【請求項６】
前記複数のモジュールメモリ装置は、複数の不揮発性メモリダイまたは複数の揮発性メモリダイのうちの１つである、請求項１に記載のメモリ構成体。
【請求項７】
前記コントローラは、エラー訂正コード（ＥＣＣ）データ及びユーザデータを含むデータを前記メモリ装置に結合されたホストから受信し、前記ユーザデータを前記複数のモジュールメモリ装置に記憶し、前記ＥＣＣデータを前記ローカルメモリに記憶するように構成される、請求項１に記載のメモリ構成体。
【請求項８】
前記コントローラは、前記ユーザデータを前記複数のモジュールメモリ装置から読み取り、前記ローカルメモリに記憶された前記ＥＣＣデータに基づいて、前記読み取ったユーザデータがエラーを含むか否かを判断し、前記ＥＣＣデータを用いて、あらゆる検出したエラーの訂正を試みるように構成された、請求項７に記載のメモリ構成体。
【請求項９】
前記コントローラは、前記メモリ装置に結合されて、ホストからの要求を前記複数のモジュールメモリ装置に分配し、前記複数のモジュールメモリ装置から前記ホストへの応答を編成するように構成される、請求項１に記載のメモリ構成体。
【請求項１０】
前記複数のモジュールメモリ装置は、冗長メモリ領域もエラー訂正データ領域も備えていない、請求項１に記載のメモリ構成体。
【請求項１１】
コントローラを有するメモリ構成体を動作させる方法であって、
ホストからの書き込みコマンドであって、ユーザデータ及びエラー訂正コード（ＥＣＣ）データを含む、前記書き込みコマンドを受信することと、
前記コントローラのローカルメモリに前記ＥＣＣデータを記憶することと、
前記メモリ構成体のモジュールメモリに前記ユーザデータを記憶することと、
を含み、前記モジュールメモリは、前記ローカルメモリとは別個である、前記方法。
【請求項１２】
読み取りコマンドを前記ホストから受信することと、
前記モジュールメモリからユーザデータを読み取ることと、
前記ローカルメモリの関連するＥＣＣデータを用いて、前記読み取ったユーザデータのあらゆるエラーを検出することと、
前記検出したエラーを前記ローカルメモリの前記ＥＣＣデータを用いて訂正しようと試みることと、
をさらに含む、請求項１１に記載の方法。
【請求項１３】
前記読み取りコマンドに応答して、訂正したデータを前記ホストに送信することをさらに含む、請求項１２に記載の方法。
【請求項１４】
エラーが検出されたユーザデータに関連付けられたアドレスをログすることをさらに含む、請求項１２に記載の方法。
【請求項１５】
前記エラーが検出された前記ユーザデータに関連付けられた前記アドレスに位置するメモリセルを、前記コントローラのアイドル時間中に、修復するように試みることをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記エラーが検出された前記ユーザデータに関連付けられた前記アドレスを、前記アドレスに関連付けられた前記モジュールメモリのアイドル時間中に、修復するように試みることをさらに含む、請求項１４に記載の方法。
【請求項１７】
コントローラを有するメモリ構成体を動作させる方法であって、
読み取りコマンドであって、前記コントローラのローカルメモリとは別個のモジュールメモリから読み取るデータに関連付けられたアドレスを含む前記読み取りコマンドをホストから受信することと、
前記読み取ったデータに関連付けられたエラー訂正コード（ＥＣＣ）データを前記ローカルメモリから読み取ることと、
前記ローカルメモリからの前記ＥＣＣデータに応答して、前記読み取ったデータがエラーを含むか否かを検出することと、
前記読み取ったデータの前記エラーを前記ローカルメモリからの前記ＥＣＣデータを用いて訂正しようと試みることと、
を含む、前記方法。
【請求項１８】
前記読み取ったデータが前記エラーを含む時、前記モジュールメモリの前記アドレスへのアクセスを前記ローカルメモリに再マップすることをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記アドレスに関連付けられた前記モジュールメモリを修復することと、
前記アドレスに関連付けられた前記モジュールメモリの修復後、前記アドレスへのアクセスを前記ローカルメモリから前記モジュールメモリに再マップすることと、
をさらに含む、請求項１８に記載の方法。
【請求項２０】
前記読み取ったデータを前記ホストに送信することをさらに含む、請求項１７に記載の方法。
【請求項２１】
前記モジュールメモリがそれ以上データを記憶できない時、前記モジュールメモリの前記アドレスへのアクセスを前記ローカルメモリに再マップすることをさらに含む、請求項１７に記載の方法。
【請求項２２】
前記コントローラが前記ホストからの要求を前記モジュールメモリに分配することと、
前記コントローラが前記モジュールメモリから前記ホストへの応答を編成することと、
前記応答を前記ホストに送信することと、
をさらに含む、請求項１７に記載の方法。
【請求項２３】
ホストと、
前記ホストに結合されたメモリ構成体と、
を備えるシステムであって、前記メモリ構成体は、
基板と、
前記基板に結合されたモジュールメモリ装置と、
前記基板に結合されたコントローラであって、前記モジュールメモリ装置とは別個のローカルメモリであって、前記モジュールメモリの欠陥位置に関連付けられた冗長メモリと、前記モジュールメモリ装置に記憶されたユーザデータに関連付けられたＥＣＣデータを記憶するエラー訂正コード（ＥＣＣ）メモリとを含む前記ローカルメモリを含む前記コントローラと、を備える前記メモリ構成体である、
前記システム。
【請求項２４】
前記メモリ構成体は、ハイブリッドメモリキューブを含む、請求項２３に記載のシステム。
【請求項２５】
前記コントローラは、前記基板に結合された特定用途向け集積回路（ＡＳＩＣ)またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の一部である、請求項２３に記載のシステム。
【請求項２６】
前記ＡＳＩＣまたは前記ＦＰＧＡと、前記モジュールメモリ装置とは、前記基板でインタフェースを介して互いに結合される、請求項２５に記載のシステム。
【請求項２７】
前記モジュールメモリ装置及び前記ローカルメモリは、ダイナミックランダムアクセスメモリを含む、請求項２３に記載のシステム。
【請求項２８】
前記ホストは、シリアルリンクを介して前記メモリ構成体に結合される、請求項２３に記載のシステム。
【請求項２９】
前記ホスト及び前記コントローラは、前記基板に結合された単体の特定用途向け集積回路である、請求項２３に記載のシステム。
【請求項３０】
前記モジュールメモリ装置は、一層である、請求項２３に記載のシステム。
【請求項３１】
メモリ構成体とは別個のホストからコマンドを受信することであって、前記メモリ構成体は、基板に結合されたコントローラと、前記コントローラとは別個のモジュールメモリとを有し、前記コントローラが、ユーザデータを含む前記コマンドを前記受信することと、
前記コントローラまたはメモリ回路からエラー訂正コード（ＥＣＣ）データを受信することと、
前記コントローラの一部であるローカルメモリに前記ＥＣＣデータを記憶することと、
前記ユーザデータを前記モジュールメモリに記憶することと、
を含む、方法。
【請求項３２】
前記モジュールメモリに前記ユーザデータを記憶することは、前記コントローラが、前記基板でシリアルリンクを介して前記モジュールメモリと通信することを含む、請求項３１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２０１５年２月１２日出願のＵＳ出願第１４／６２０，８５２号の優先権の利益を主張し、ＵＳ出願第１４／６２０，８５２号は、２０１４年４月８日出願のＵＳ仮特許出願第６１／９７６，７３２号の優先権の利益を主張し、引用により、その全体を本明細書に組み込むものとする。
【背景技術】
【０００２】
メモリ帯域幅は、高性能の計算、高性能サーバ、グラフィックス、及び、中レベルのサーバにおいて、システム性能のボトルネックとなる。マイクロプロセッサイネーブラは、作業セットをより小さいブロックに分配、かつ、数が増加している作業要素（例えば、コア）間に分配することによって、コア及びコアあたりのスレッドを増加させて、性能及び作業負荷能力を大きく向上させている。プロセッサの各コンピュータ要素がメモリを必要とするので、各プロセッサが複数のコンピュータ要素を有すると、各プロセッサに必要なメモリ量を増加させる必要がある。この結果、これらの課題に対処するために、プロセッサに密に結合したメモリ帯域幅及びメモリ密度の必要性が大きくなる。現在のメモリ技術ロードマップは、中央処理装置（ＣＰＵ）とグラフィックスプロセッシングユニット（ＧＰＵ）のメモリ帯域幅の目標に見合う性能を提供していないかもしれない。
【０００３】
プロセッサに密に結合したメモリ帯域幅及びメモリ密度の必要性に対処するために、ハイブリッドメモリキューブ（ＨＭＣ）を実施することによってコントローラと同じ基板にメモリを配置してよく、メモリシステムが、その意図するタスクをより最適に行うことができるようにする。ＨＭＣは、シリコン貫通電極（ＴＳＶ）等の内部の垂直導体によって接続された個々のモジュールメモリダイ（例えば、メモリ装置）のスタックを特徴としてよい。ＴＳＶは、個々のメモリダイのスタックをコントローラと電気的に接続できる垂直導体である。ＨＭＣによって、ビットあたりのデータ転送するためより少ないエネルギーを使用しながら、より少ないフォームファクタを提供することができ、帯域幅及び効率性を配達することができる。ＨＭＣの一実施形態においては、コントローラは、ＴＳＶを用いて接続されるメモリ装置の垂直スタックとインタフェースをとる高速の論理層を備える。メモリは、データを扱うことができ、論理層は、ＨＭＣ内のメモリ制御を扱うことができる。ＨＭＣの改良に対する一般的な必要性が存在する。
【図面の簡単な説明】
【０００４】
【図１】システムの実施形態のブロック図である。
【図２】メモリ装置の実施形態のブロック図である。
【図３Ａ】図１のメモリ装置の実施形態の垂直断面図と正射影図である。
【図３Ｂ】図１のメモリ装置の実施形態の垂直断面図と正射影図である。
【図４】ローカルメモリを備えたメモリマネージャを有するメモリ装置に書き込む方法の実施形態を示すフローチャートである。
【図５】ローカルメモリを備えたメモリマネージャを有するメモリ装置から読み取る方法の実施形態を示すフローチャートである。
【図６Ａ】図１のメモリ装置の実施形態の垂直断面図と正射影図である。
【図６Ｂ】図１のメモリ装置の実施形態の垂直断面図と正射影図である。
【発明を実施するための形態】
【０００５】
ＨＭＣ上にスタックされたメモリダイは、それぞれ、自身の冗長メモリ領域を有する完全なメモリ装置である。ＨＭＣ構成体は、論理層を備えるので、エラーの検知と訂正を行うことができる。よって、ＨＭＣを複数のメモリ装置のコントローラとして使用する機会が存在する。ＨＭＣの背後にメモリ装置があると、冗長アレイを必要とせず、エラー訂正データを記憶する必要がなく、不良メモリセルを再マップする必要がないので、より速くなる。ホストは、メモリ装置からＨＭＣを介してエラーが訂正されたデータを受信する。ＨＭＣの背後のメモリ装置でビットに異常があると、ＨＭＣローカルメモリを用いて、検出、訂正される。ＨＭＣ装置、または、記載のような論理機能及びメモリ機能の両方を有する類似の構成体は、複雑さを減らし、品質を向上させ、システム性能を改良する。
【０００６】
図１は、システム１００の実施形態のブロック図を示す。ホスト１０１（例えば、中央処理装置（ＣＰＵ））は、双方向データリンク１０３を介してメモリ構成体１０２に結合される。双方向データリンク１０３は、シリアライズ／デシリアライズ（ＳＥＲＤＥＳ）データリンクまたは並列データリンクを含み得る。
【０００７】
メモリ構成体１０２は、特定用途向け集積回路（ＡＳＩＣ）１０５またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１０５のいずれかで実施されるコントローラ１１０等のコントローラ１１０を備える。ＡＳＩＣ／ＦＰＧＡ１０５は、メモリ制御及びホスト１０１との通信に対応する他の論理ブロックを備えることができる。ＡＳＩＣ／ＦＰＧＡ１０５を用いて、特定用途のためにカスタマイズを有効にしてもよく、プロセッサ（ＣＰＵ）であってもよい。コントローラ１１０は、プロセッサ（ＣＰＵ）、ＡＳＩＣ、または、他の制御回路を含んでよい。ＡＳＩＣ／ＦＰＧＡ１０５及びコントローラ１１０は、固有の基板１９９に接着されてよい。基板１９９、ＡＳＩＣ／ＦＰＧＡ１０５、コントローラ１１０、及び、ローカルメモリの組み合わせは、ハイブリッドメモリキューブ(ＨＭＣ)メモリ装置の一部であってよい。基板１９９を必要としないＨＭＣの構成体もある。以下、コントローラ１１０に言及する場合は、ＡＳＩＣ／ＦＰＧＡ１０５を含んでよい。
【０００８】
メモリ構成体１０２は、複数のモジュールメモリ１２０〜１２７（例えば、メモリダイ）をさらに備える。モジュールメモリ１２０〜１２７は、図３Ａ、３Ｂを参照して以下に示すスタックされたメモリダイの形態であってよい。モジュールメモリ１２０〜１２７は、揮発性メモリ（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ））、または、不揮発性メモリ（例えば、フラッシュ、相変化メモリ（ＰＣＭ））を含むが、それらに限らない、任意の種類のメモリ装置であってよい。図１に示すモジュールメモリ１２０〜１２７は、スタックの一部として、信号編成及び／またはバッファリングのための追加の層を備えてよい。
【０００９】
モジュールメモリ１２０〜１２７は、各モジュールメモリ１２０〜１２７がメモリバス１３０を介してコントローラ１１０と通信するためにメモリ装置に典型的に関連付けられた任意の入力／出力（Ｉ／Ｏ）回路を備えることができる。従って、及び／または、コントローラ１１０は、バスを介して特定のモジュールメモリ１２０に記憶するためにデータを書き込むことができ、その特定のモジュールメモリ１２０は、自身に関連付けられたＩ／Ｏ回路を用いて、データを受け取り、そのデータをモジュールメモリ１２０に記憶できる。同様に、及び／または、コントローラ１１０は、その特定のモジュールメモリ１２０からデータを読み取ることができ、そのモジュールメモリ１２０のＩ／Ｏ回路は、メモリアレイにアクセスして、アドレス指定されたメモリ位置（単数または複数）を検索できる。
【００１０】
図２は、図１のメモリ構成体１０２のモジュールメモリ装置の１つ１２０のブロック図を示す。他のメモリ装置１２１〜１２７は、ほぼ同様である。ブロック図は、例示の目的で、ＤＲＡＭを使用しているが、本実施形態は、どの１つのメモリ種類に限らない。
【００１１】
メモリ装置は、複数のメモリセル２００（例えば、メモリセルのアレイ）を備え、各メモリセル２００は、アクセス線（例えば、ワード線）２０３とデータ線（例えば、ディジット線）２０４間に結合されている。
【００１２】
データ線２０４は、メモリセル２００の状態を検出できるセンス回路／ドライバ２０５に結合されている。メモリセルキャパシタが、その各々の有効にされた作動装置を通してデータ線に結合されると、センス回路２０５を通して検出を行うことができる。
【００１３】
行デコーダ２０６は、図１のコントローラ１１０からの行アドレスに応答して、アクセス線２０３に結合されてアクセス線信号を生成する。列デコーダ２０７は、センス回路／ドライバ２０５に結合され、コントローラ１１０からの列アドレスに応答して、データ線２０４上へのドライバを通して列アドレスを生成する。列デコーダ２０７は、また、メモリセル２００からの検出状態を出力し、メモリセル２００に記憶するデータを受け取る。
【００１４】
列デコーダ２０７からの出力は、入力／出力（Ｉ／Ｏ）回路２１０に入力される。Ｉ／Ｏ回路２１０は、データパッドＩ／Ｏ回路を含み得る。
【００１５】
図１のシステム１００を再び参照する。典型的なメモリダイのサイズよりモジュールメモリ１２０〜１２７のサイズを小さくするために、モジュールメモリ１２０〜１２７は、通常の冗長メモリ領域を必要とせず、また、どのモジュールメモリ１２０〜１２７もエラー訂正データの記憶専用の領域を必要としない。これらの詳細は両方とも、先行技術のメモリダイ及びモジュール構成体に一般的に見られる。モジュールメモリ１２０〜１２７における冗長メモリ領域の必要性は、ローカルメモリ１１１によって満たすことができ、エラー訂正データの記憶に必要なメモリ領域もローカルメモリ１１１によって提供できる。ＥＣＣ回路は、コントローラ１１０に配置され、これによって、ホスト上にＥＣＣ回路が必要なくなる。
【００１６】
コントローラ１１０は、モジュールメモリ１２０〜１２７の冗長メモリ及びＥＣＣメモリとして使用できるローカルメモリ１１１を含む。ローカルメモリ１１１は、図３Ａ及び３Ｂに示すようなスタックメモリであってよく、任意の種類のメモリ技術、または、異なる種類のメモリ技術の組み合わせを含み得る。例えば、ローカルメモリ１１１は、不揮発性メモリ（例えば、ＤＲＡＭ、ＳＲＡＭ）、及び／または、揮発性メモリ（例えば、フラッシュ、ＰＣＭ）であってよい。ローカルメモリ１１１は、スタックメモリである必要はなく、１つのメモリ層として存在してもよい。ローカルメモリ１１１は、コントローラ１１０の一部であってよい。
【００１７】
図６Ａ及び６Ｂは、システム１００の実施形態の図を示し、ここで、ホスト１０１は、コントローラ１１０の機能性を併せ持つ。このような場合、ローカルメモリ１１１は、コントローラ１１０を備えたホスト１０１上にスタックされてよい。従って、マルチチップメモリ（ＭＣＭ）のメモリスタック６３０は、コントローラ１１０の機能性を併せ持つホスト１０１に直接、データを伝送してよい。ＭＣＭメモリスタック６３０は、スタックメモリである必要はなく、１つのメモリ層として存在してもよい。
【００１８】
ＭＣＭメモリスタック６３０は、シリコン貫通電極（ＴＳＶ）６３８を用いて積層された複数のメモリダイ１２０〜１２７を含んでもよい。ＡＳＩＣ／ＦＰＧＡ１０５の接続部６１２とＭＣＭメモリスタック６３０の接続部６３２からの信号は、ＭＣＭ基板６２０に特有のトレース６８０とビア６４０に流れ込み、それらを通る。はんだボール６２２を通してコンピュータシステムに接続する必要のあるＡＳＩＣ／ＦＰＧＡ１０５またはＭＣＭメモリスタック６３０からの他の信号は、ＭＣＭ基板６２０に特有のトレース６８０及びビア６４０を使用できる。メモリ構成体１０２は、統合された基板に複数の集積回路（ＩＣ）、半導体ダイ、または、他の個別部品がパッケージ化された特定の電子パッケージを提供することができ、それによって、それらを（例えば、１つの大きなＩＣのように見える）一部品として使用することを容易にする。ＡＳＩＣ／ＦＰＧＡ１０５は、ホスト（例えば、図１のホスト１０１）とＭＣＭメモリスタック６３０との間の信号を処理するホストインタフェース論理と、ＭＣＭメモリスタック６３０を制御する制御論理とを提供する論理も含み得る。
【００１９】
図３Ａ及び３Ｂは、メモリ構成体１０２の実施形態の図を示し、ここで、コントローラ１１０及びローカルメモリ１１１（ハイブリッドメモリキューブに特有の構成体)は、基板３２０上でＭＣＭメモリ３３０全てと組み合わされて、（ＭＣＭ）モジュール３９９を形成し、それらは、メインボードに配置されて双方向データリンク１０３を介してホスト１０１とデータをやりとりする（talk）前に、個々にテストされ、適格とすることができる。
【００２０】
ローカルメモリ１１１は、コントローラ１１０と共に、ＭＣＭメモリ３３０のデータ及びメモリ制御を扱ってよい。ＴＳＶ３３８は、高レベルの同時接続を提供できる。コントローラ１１０によるメモリアクセスは、相対的に高い転送速度（例えば、１Ｔｂ/秒より大きい）をサポートできるＭＣＭメモリ３３０とＡＳＩＣ／ＦＰＧＡ１０５との間でインタフェース３８０を介して行うことができる。例えば、インタフェース３８０は、高速シリアルバスであってよい。ＴＳＶ３３８は、層と層の間の相互接続部３９８を用いて結合されてよい。
【００２１】
ＭＣＭメモリスタック３３０は、複数のモジュールメモリ１２０〜１２７を表してよい。ＭＣＭメモリスタック３３０は、複数の自律したパーティション（例えば、１６のパーティション）でできているように見えるかもしれない。各パーティションは、複数の独立したメモリバンク（例えば、２〜８）を含み得る。各パーティションは、通常の動作中、データ移動及びコマンド／アドレス指定に関して、他のパーティションから独立、自律してよい。他の実施形態においては、図３Ａ、３Ｂ、６Ａ、及び、６Ｂに示すＭＣＭメモリスタック３３０は、信号編成及び／またはバッファリングのための追加の層をスタックの一部として備えてよい。
【００２２】
図４は、ローカルメモリを備えたコントローラを有するメモリ装置に書き込み（例えば、プログラミング）を行う方法の実施形態のフローチャートを示す。１つまたは複数のアドレス（例えば、論理アドレス）を有するデータは、メモリ装置に結合されたホスト（例えば、ＣＰＵ）から書き込みコマンドと共に受信できる（４００）。例えば、ホストは、１つのアドレスを有するデータ、複数のアドレスを有するデータ、または、モジュールメモリの複数の連続した位置に記憶させる開始アドレスを有するデータの突発を送信してよい。
【００２３】
データは、エラー訂正コード（ＥＣＣ）データを含むデータパケット（例えば、ユーザデータ）のペイロードであってよい。ＥＣＣデータは、ＥＣＣアルゴリズム（例えば、Ｈａｍｍｉｎｇ、Ｒｅｅｄ‐Ｓｏｌｏｍｏｎ、Ｖｉｔｅｒｂｉ）を用いてホストによって生成でき、生じるＥＣＣデータをペイロードデータに添付してデータパケットを形成できる。そうすると、ホストは、データパケットをメモリ装置に送信できる。ＥＣＣデータは、メモリ装置上のコントローラ、ＡＳＩＣ、ＦＰＧＡ、及び／または、回路によって生成されてもよい。
【００２４】
コントローラは、モジュールメモリのデータパケットの宛先アドレスに関連付けられたローカルメモリの位置にＥＣＣデータを記憶する（４０１）。コントローラは、ホストからのデータパケット（ユーザデータ）を受信したアドレス（単数または複数）が示す適切なモジュールメモリに記憶する（４０３）。
【００２５】
ローカルメモリにＥＣＣデータを記憶することによって、モジュールメモリを開放して、より多くのデータを保持できる。別の実施形態においては、ローカルメモリにＥＣＣデータを記憶することによって、モジュールメモリダイを小さくすることができる。
【００２６】
コントローラは、ホストから受信した論理アドレスを用いてデータパケットをモジュールメモリに書き込むことができ、モジュールメモリにデータの物理アドレスを判断させることができる。どのようにモジュールメモリが論理アドレスを物理アドレスに再マップするかをコントローラ１１０が知っていることも役に立つ。別の実施形態においては、コントローラは、論理アドレスに関連付けられる物理アドレスを判断することができ、データを物理アドレスに書き込むことができる。コントローラ１１０に物理アドレスを理解させることによって、欠陥メモリ位置をローカルメモリの物理アドレスにマップする能力をコントローラ１１０に与える。コントローラは、モジュールメモリ冗長性に使用されているローカルメモリのメモリマップを保持できる。
【００２７】
図５は、ローカルメモリを備えたコントローラを有するメモリ装置から読み取る方法の実施形態のフローチャートを示す。モジュールメモリまたは冗長メモリとしてのローカルメモリから読み取る一方、コントローラは、ローカルメモリに記憶されたＥＣＣデータを用いて、エラー検出とエラー訂正を行うことができる。エラーが多すぎてＥＣＣデータによって訂正できないデータもある。この場合、データに使用不可とマーク付けしてもよく、エラーメッセージを生成してもよく、または、データは単に使用されなくてもよい。
【００２８】
読み取りコマンドが、最初、ホストから受信される（５００）。読み取りコマンドは、アクセスすべきアドレス（例えば、論理アドレス）を含む。コントローラは、次に、受信された論理アドレスに関連付けられた物理アドレスからユーザデータを読み取ることができる（５０１）。従って、メモリモジュールが、その論理アドレスに関連付けられたモジュールメモリに最初にデータを書き込んだ場合、コントローラは、モジュールメモリ内の物理アドレスからデータを読み取ることができる。コントローラは、(欠陥モジュールメモリ位置が原因で)冗長メモリとして働くローカルメモリに論理アドレスを再マップした場合、ローカルメモリの物理アドレスにアクセスできる。
【００２９】
モジュールメモリからのデータ検索は時間がかかる。業界標準のモジュールメモリにおいては、モジュールメモリに、不良メモリ位置を識別、デコード、及び、ブロックさせ、かつ、モジュールメモリ内の冗長メモリ領域からデータを回復させることによって、データの検索がさらに遅れるのが一般的である。本発明の一実施形態においては、モジュールメモリは、不良メモリ位置を識別、デコード、または、ブロックする必要はなく、冗長モジュールメモリ領域からデータを検索する必要もない。モジュールメモリは、その最大速度で動作して、良好なデータ及び不良データを持ち出すことができる。冗長モジュールメモリデータをローカルメモリから検索するのにかかる時間は、モジュールメモリが最大速度で動作しながら、良好なデータ及び不良データで応答する時間よりも短い。最大速度で動作するモジュールメモリから良好なデータ及び不良データが到着する前に、コントローラ１１０が、モジュールメモリ冗長性として機能するローカルメモリデータを準備し、その結果、有用なモジュールメモリデータが遅延なく結合できて、ホストに対する可能な最速の応答を生じる。
【００３０】
コントローラ１１０は、また、ローカルメモリに記憶されたＥＣＣデータを読み取ることができ（５０３）、読み取られたデータが、１つまたは複数のエラーを含むか否かを検知するために、モジュールメモリから読み取られたユーザデータにＥＣＣデータを適用できる（５０５）。コントローラ１１０は、ＥＣＣデータを使用して、１つまたは複数のエラーの訂正を試みることができる。コントローラ１１０は、前述したのと同じＥＣＣアルゴリズム（例えば、Ｈａｍｍｉｎｇ、Ｒｅｅｄ‐Ｓｏｌｏｍｏｎ、Ｖｉｔｅｒｂｉ）を使用できる。
【００３１】
コントローラ１１０またはＡＳＩＣ／ＦＰＧＡ１０５は、モジュールメモリから読み取られたユーザデータが１つまたは複数のエラーを含むことを検出した場合、将来、参照するためにそのエラーをログする（５０７）。そして、コントローラ１１０またはＡＳＩＣ／ＦＰＧＡ１０５は、ホスト５０９に正確なデータを渡すことができる。
【００３２】
コントローラ１１０は、特定のモジュールメモリまたはローカルメモリの欠陥位置へのさらなるアクセスをいずれもローカルメモリ１１１内の冗長メモリ位置にマップすることができる。コントローラ１１０、ローカルメモリ１１１、ＡＳＩＣ／ＦＰＧＡ１０５、または、モジュールメモリのいずれかが、欠陥位置のリストを保持できる。アイドル時間中、ホスト（ＣＰＵ）１０１、コントローラ１１０、または、ＡＳＩＣ／ＦＰＧＡ１０５は、修復機能を実行して、メモリ要素（すなわち、冗長行、冗長列、冗長ＴＳＶ、冗長ブロック等）を用いて不良なモジュールメモリまたはローカルメモリの要素を置き換えることができる。あるいは、ホスト（ＣＰＵ）１０１、コントローラ１１０、または、ＡＳＩＣ／ＦＰＧＡ１０５は、修復手順をトリガできる。欠陥要素が修復されると、コントローラは、使用可能な冗長要素にさらなるアクセスを再マップできる。
【００３３】
ローカルメモリは、モジュールメモリのオーバーブローメモリとしても使用できる。例えば、モジュールメモリがいっぱいになると、コントローラは、モジュールメモリ内の位置が空くまで、バックアップとしてローカルメモリに受信データを再マップできる。
【００３４】
結論
開示の実施形態は、メモリ装置とホストとの間のインタフェースとして機能し得るローカルメモリをコントローラに提供する。コントローラ１１０は、メモリ要求（例えば、読み取り、書き込み）を適切なモジュールメモリに分配することができ、メモリ装置からホストへの応答（例えば、エラー検出／訂正）を編成できる。コントローラ１１０は、書き込み動作中、受信したＥＣＣデータをローカルメモリに記憶することができ、読み込み動作中、記憶されたＥＣＣデータを使用して、モジュールメモリから生じるデータエラーを検出及び／または訂正できる。ローカルメモリは、また、複数のモジュールメモリの欠陥位置に関連付けられた冗長メモリと、複数のモジュールメモリに関連付けられエラー訂正コードメモリとを提供することができる。
【図１】
2017514263.tif 000003
【図２】
2017514263.tif 000004
【図３Ａ】
2017514263.tif 000005
【図３Ｂ】
2017514263.tif 000006
【図４】
2017514263.tif 000007
【図５】
2017514263.tif 000008
【図６Ａ】
2017514263.tif 000009
【図６Ｂ】
2017514263.tif 000010
【手続補正書】
【提出日】平成28年12月8日(2016.12.8)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図６Ａ
【補正方法】変更
【補正の内容】
【図６Ａ】
2017514263.tif 000011
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図６Ｂ
【補正方法】変更
【補正の内容】
【図６Ｂ】
2017514263.tif 000012
【国際調査報告】
2017514263.tif 000013
2017514263.tif 000014