(57)【要約】  デイジーチェーンメモリ構成および使用について開示する。メモリシステムは、デイジーチェーン方式で結合されたコントローラ、および多数の連続メモリデバイスからなる対応するストリングを含む。コントローラは、直列制御リンクを介してコマンドを伝達して、第1のメモリデバイスを、チェーン中の第2のメモリデバイスにデータブロックを書き込むように構成する。たとえば、コントローラは、デイジーチェーン制御リンクを介して通信して、多数のメモリデバイスのうち第1のメモリデバイスを、データを出力するソースとなるように構成し、デイジーチェーン制御リンクを介して通信して、第2のメモリデバイスを、データを受信する移動先となるように構成し、デイジーチェーン制御リンクを介して通信して、第1のメモリデバイスから第2のメモリデバイスへのデータの転送を開始することによって、データブロックのコピーを開始する。
2010537326.tif 000002
【特許請求の範囲】
【請求項１】
第1のメモリデバイスおよび第2のメモリデバイスを含む複数のメモリデバイスと、
コントローラおよび前記複数のメモリデバイスが、前記メモリデバイスを経由するデータの伝播を可能にするように直列に接続されたコントローラと
を備えるメモリシステムであって、
前記コントローラは、
前記第1のメモリデバイスを、前記第1のメモリデバイスに格納されたデータを出力するソースとなるように動作させ、
前記第2のメモリデバイスを、前記データを受信する移動先となるように動作させ、
前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの転送を開始させる制御をする、メモリシステム。
【請求項２】
前記コントローラは、コマンドが前記第1のメモリデバイスの入力で受信されるように該コマンドを送信するように構成されており、
前記第1のメモリデバイスは、前記第2のメモリデバイスの入力に前記コマンドを出力するように構成されている、請求項1に記載のメモリシステム。
【請求項３】
前記第1のメモリデバイスから、前記第1のメモリデバイスと前記第2のメモリデバイスとの間の媒介メモリデバイスを通って、前記第2のメモリデバイスへの前記データの送信を可能にするリンクをさらに備える、請求項1または2に記載のメモリシステム。
【請求項４】
前記コントローラは、制御リンク上で第1のセットアップ命令を出力するように構成されており、前記第1のセットアップ命令は、前記コントローラによって指定された前記第1のメモリデバイスの記憶場所から前記データを読み取るように前記第1のメモリデバイスを動作させるために、前記第1のメモリデバイス宛に出され、
前記コントローラは、前記第1のメモリデバイスを通って前記第2のメモリデバイスへ伝送される第2のセットアップ命令を前記制御リンク上に出力するように構成されており、前記第2のセットアップ命令は、前記コントローラによって指定された前記第2のメモリデバイスの記憶場所への書き込み動作を該第2のメモリデバイスがするように、前記第2のメモリデバイス宛に出される、請求項1に記載のメモリシステム。
【請求項５】
前記コントローラが、前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの前記転送の後に、前記第2のメモリデバイスに関連づけられた記憶場所への前記データの書込みを開始するためのコマンドを、リンクを介して伝達するように構成される、請求項1に記載のメモリシステム。
【請求項６】
前記複数のメモリデバイスを通るデータリンクをさらに備え、
前記コントローラは、制御リンクを介した通信を開始して、前記第1のメモリデバイスから、前記第2のメモリデバイスを通って前記コントローラに戻る前記データリンク上での前記データの受渡しを可能にするように構成されている、請求項1に記載のメモリシステム。
【請求項７】
前記コントローラは、前記データが前記第1のメモリデバイスから前記第2のメモリデバイスに転送されるとき、前記データリンク上の前記データを監視および受信するように構成されている、請求項6に記載のメモリシステム。
【請求項８】
前記コントローラで受信される前記データにエラー訂正機能を適用するように構成されたエラー検出装置回路をさらに備え、前記エラー訂正機能は、前記第1のメモリデバイスから前記第2のメモリデバイスに転送される前記データにエラーがあるかどうか判断するように構成されている、請求項7に記載のメモリシステム。
【請求項９】
前記第2のメモリデバイスに関連づけられた記憶場所に前記データが格納されるのに先立って、前記データを一時的に格納するための、前記第2のメモリデバイス中のバッファをさらに備える、請求項8に記載のメモリシステム。
【請求項１０】
前記エラー検出装置回路は、前記制御リンクを介して通信して、前記バッファ中の前記データに対する、前記第2のメモリデバイスに関連づけられた前記記憶場所への書込みに先立って、前記エラーの検出に応答して前記バッファ中の前記データを修正するように構成されている、請求項9に記載のメモリシステム。
【請求項１１】
前記コントローラで受信された前記データにエラー訂正機能を適用するように構成されたエラー検出装置回路をさらに備える、請求項6または7に記載のメモリシステム。
【請求項１２】
前記複数のメモリデバイスを通るデータリンクをさらに備え、
前記複数のメモリデバイスが第3のメモリデバイスを含む、請求項1に記載のメモリシステム。
【請求項１３】
前記第3のメモリデバイスは、前記データを受信する別の移動先となるように構成可能である、請求項12に記載のメモリシステム。
【請求項１４】
前記第2のメモリデバイスは、前記データリンク上で受信された前記データを格納し、かつ前記データリンク上で前記第3のメモリデバイスに前記受信データを渡すように構成されている、請求項13に記載のメモリシステム。
【請求項１５】
前記コントローラは、前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの前記転送と同時に、前記第1のメモリデバイスから前記第3のメモリデバイスへの前記データリンク上での前記データの転送を開始させる、請求項14に記載のメモリシステム。
【請求項１６】
前記複数のメモリデバイスを通るリング接続データリンクをさらに備え、
前記複数のメモリデバイスが第3のメモリデバイスを含む、請求項1に記載のメモリシステム。
【請求項１７】
前記コントローラは、制御リンクを介して通信して、前記第1のメモリデバイスからの前記データリンク上での前記データの第1の部分の受渡しを、前記第2のメモリデバイスへの前記データの前記第1の部分の格納のために開始するように構成されている、請求項16に記載のメモリシステム。
【請求項１８】
前記コントローラは、前記制御リンクを介して通信して、前記第2のメモリデバイスからの前記データリンク上での前記データの第2の部分の受渡しを、前記第3のメモリデバイスへの前記データの前記第2の部分の格納のために開始するように構成されている、請求項17に記載のメモリシステム。
【請求項１９】
複数のメモリデバイスを通るリング接続リンクを介して通信して、前記複数のメモリデバイスのうち第1のメモリデバイスを、前記第1のメモリデバイスに格納されたデータを出力するソースとなるように構成する段階と、
前記リング接続リンクを介して通信して、前記複数のメモリデバイスのうち第2のメモリデバイスを、前記データを受信する移動先となるように構成する段階と、
前記リング接続リンクを介して通信して、前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの転送を開始する段階とを含む方法。
【請求項２０】
前記リング接続リンクを介して通信して、前記第1のメモリデバイスを構成する段階は、前記第1のメモリデバイスの入力にコマンドを送信し、それに対して前記第1のメモリデバイスが、前記リング接続の前記第2のメモリデバイスの入力に前記コマンドを出力する段階を含む、請求項19に記載の方法。
【請求項２１】
前記リング接続リンクを介して通信して、前記第1のメモリデバイスを構成する段階は、前記第1のメモリデバイスにアドレス指定される、少なくとも1つのセットアップ命令を、前記リング接続リンク上に出力して、前記第1のメモリデバイスを、前記第1のメモリデバイス中の記憶場所から前記データを読み込むように構成する段階を含み、
前記リング接続リンクを介して通信して、前記第2のメモリデバイスを構成する段階は、前記第2のメモリデバイスにアドレス指定される、少なくとも1つのセットアップ命令を、前記リング接続リンク上に出力して、前記第2のメモリデバイスの中の記憶場所への書込みの実施用に前記第2のメモリデバイスを構成する段階を含む、請求項19に記載の方法。
【請求項２２】
前記リング接続リンクを介して通信して、前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの前記転送を開始する段階は、
前記リング接続リンクを介して通信して、前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの前記転送の後で、前記第2のメモリデバイスに関連づけられた記憶場所への前記データの書込みを開始する段階を含む、請求項19から21のいずれか一項に記載の方法。
【請求項２３】
前記リング接続リンクを介して通信して、前記転送を開始する段階は、前記リング接続リンクを介して通信して、前記第1のメモリデバイスから、前記第1のメモリデバイスと前記第2のメモリデバイスとの間の媒介メモリデバイスを経由して前記第2のメモリデバイスまで、前記複数のメモリデバイスを通るデータリンク上での前記データの送信を開始する段階を含む、請求項19に記載の方法。
【請求項２４】
前記リング接続リンクを介して通信を開始して、前記複数のメモリデバイスを通過するデータリンク上での前記データの受渡しを可能にする段階と、
前記データリンクを監視して、前記複数のメモリデバイスを通過した前記データを受信する段階とをさらに含む、請求項19に記載の方法。
【請求項２５】
前記受信データにエラー訂正機能を適用して、前記第1のメモリデバイスから前記第2のメモリデバイスに転送される前記データにエラーがあるかどうか判断する段階をさらに含む、請求項24に記載の方法。
【請求項２６】
前記リング接続リンクを介して通信して、前記データの前記転送を開始する段階は、前記データを、前記第1のメモリデバイスから前記第2のメモリデバイスに関連づけられたバッファに転送させる、請求項22、24、25のいずれか一項に記載の方法。
【請求項２７】
前記リング接続リンクを介して通信して、前記データの前記転送を開始する段階は、前記データを、前記第1のメモリデバイスから前記第2のメモリデバイスに関連づけられたバッファに転送させ、前記方法は、
前記エラー訂正機能の適用に基づく、前記受信データに関する前記エラーの検出に応答して、前記バッファ中の前記データを前記第2のメモリデバイスに関連づけられた記憶場所に書き込むのに先立って、前記バッファ中の前記データの修正を開始する段階をさらに含む、請求項25に記載の方法。
【請求項２８】
前記リング接続リンクを介して通信して、前記複数のメモリデバイスのうち第3のメモリデバイスを、前記第1のメモリデバイスから前記データを受信する別の移動先となるように構成する段階をさらに含み、
前記リング接続リンクを介して通信して、前記転送を開始する段階は、前記第1のメモリデバイスから前記第3のメモリデバイスへの前記データの送信を開始する段階を含む、請求項19に記載の方法。
【請求項２９】
前記リング接続リンクを介して通信して、前記複数のメモリデバイスのうち第3のメモリデバイスを、前記第1のメモリデバイスから前記データを受信する別の移動先となるように構成する段階をさらに含み、
前記制御リンクを介して通信して、前記データの前記転送を開始する段階は、
前記リング接続リンクを介して通信して、前記第1のメモリデバイスから前記第2のメモリデバイス中の記憶場所への前記データの第1の部分の格納を開始する段階と、
前記リング接続リンクを介して通信して、前記第1のメモリデバイスから前記第3のメモリデバイス中の記憶場所への前記データの第2の部分の格納を開始する段階とを含む、請求項19に記載の方法。
【請求項３０】
データを格納するためのメモリと、
上流メモリデバイスからデータを受信する入力と、
下流メモリデバイスにデータを送信する出力と、
前記入力と前記出力との間の回路機構であって、遠隔ソースから構成コマンドを受信し、前記遠隔ソースによる対応するモードの選択に基づいて、前記メモリに格納された前記データを、前記下流メモリデバイスへの前記出力上での送信のために取り出すように構成された回路機構とを備えるメモリデバイス。
【請求項３１】
前記回路機構は、対応するモードの選択に基づいて、前記入力を監視し、前記下流メモリデバイスへの前記出力上での送信用に、前記上流メモリデバイスからデータを受信するように構成される、請求項30に記載のメモリデバイス。
【請求項３２】
前記入力が第1の入力であり、前記出力が第1の出力であり、前記メモリデバイスが、
前記上流メモリデバイスからコマンドを受信するように構成された第2の入力と、
前記受信コマンドを前記下流メモリデバイスに伝えるように構成された第2の出力と、
前記第2の入力と前記第2の出力との間のデコード回路機構であって、前記第2の入力から前記第2の出力に前記受信コマンドを伝え、前記受信コマンドのどれが実行用に前記メモリデバイスにアドレス指定されるか識別するように構成された回路機構とをさらに備える、請求項30に記載のメモリデバイス。
【請求項３３】
データを格納するためのメモリと、
バッファと、
上流メモリデバイスからデータを受信する入力と、
下流メモリデバイスにデータを送信する出力と、
前記入力と前記出力との間の回路機構であって、遠隔ソースから構成コマンドを受信し、前記遠隔ソースによる対応するモードの選択に基づいて、前記入力を監視し、前記バッファへの格納のために前記上流メモリデバイスからデータを受信するように構成された回路機構とを備えるメモリデバイス。
【請求項３４】
命令を格納したコンピュータ可読媒体であって、
複数のメモリデバイスを通るリング接続リンクを介して通信して、前記複数のメモリデバイスのうち第1のメモリデバイスを、前記第1のメモリデバイスに格納されたデータを出力するソースとなるように構成する命令と、
前記リンクを介して通信して、前記複数のメモリデバイスのうち第2のメモリデバイスを、前記データを受信する移動先となるように構成する命令と、
前記リング接続リンクを介して通信して、前記第1のメモリデバイスから前記第2のメモリデバイスへの前記データの転送を開始する命令とを含むコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関するものであり、特にデイジーチェーンメモリの構成および使用に関するものである。
【背景技術】
【０００２】
今日、多くの電子デバイスが、情報を格納するためのメモリシステムを含む。たとえば、一部のメモリシステムは、デジタル化された音声情報を、それぞれのメディアプレーヤによる再生用に格納する。それ以外のメモリシステムは、異なるタイプの処理機能を行うためのソフトウェアおよび関連情報を格納する。
【０００３】
電子デバイスの多くにおいて、メモリシステムはしばしば、コントローラおよび1つまたは複数の対応するメモリデバイスを備える。コントローラは通常、データの格納および取出しのためにメモリデバイスに信号を生成するように構成された回路機構を含む。
【０００４】
従来のいくつかのメモリシステムでは、プロセッサなどのコントローラは、アドレスバスおよびデータバスを使って、メモリに格納されたデータにアクセスする。しばしば、多くのワイヤーが、このようなバスを実装するのに使われ、メモリシステムのレイアウトに依存して、バス接続は、長距離用に拡張し、異なる多くのメモリデバイスそれぞれにプロセッサを直接接続する必要があるので、異なる多くの回路基板層を通ることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第11/779,587号明細書
【特許文献２】米国特許出願第11/959,996号明細書
【発明の概要】
【課題を解決するための手段】
【０００６】
次に、一例としての添付の図面を参照する。
【図面の簡単な説明】
【０００７】
【図１Ａ】本発明の実施形態に係るメモリシステムを示すブロック図例である。
【図１Ｂ】本発明の実施形態に係るメモリシステムを示すブロック図例である。
【図２】本発明の第1の実施形態に係るメモリシステムを示すブロック図例である。
【図３Ａ】本発明の実施形態に係るブロックコピーの実施を示すタイミング図の例である。
【図３Ｂ】本発明の実施形態に係るブロックコピーの実施を示すタイミング図の例である。
【図４】本発明の実施形態に係る、メモリコントローラによって実行される、1つのメモリデバイスから別のメモリデバイスにデータをコピーするための一連のステップを記述するフローチャート例である。
【図５】本発明の第2の実施形態に係るメモリシステムを示すブロック図例である。
【図６Ａ】本発明の実施形態に係る、メモリシステム例および1つのメモリデバイスから多数のメモリデバイスへのデータのコピーを示すブロック図である。
【図６Ｂ】本発明の実施形態に係る、メモリコントローラによって実行される、1つのメモリデバイスから多数のメモリデバイスにデータをコピーするための一連のステップを記述するフローチャート例である。
【図７】本発明の実施形態に係るパケットタイミング情報を示すタイミング図例である。
【図８】本発明の実施形態に係るパケットタイミング情報を示すタイミング図例である。
【図９】本発明の実施形態に係るパケットタイミング情報を示すタイミング図例である。
【図１０】本発明の実施形態に係るパケットタイミング情報を示すタイミング図例である。
【図１１】本発明の実施形態に係るコントローラを示すアーキテクチャ例である。
【図１２】本発明の実施形態に係る、データのコピーの方法を示すフローチャート例である。
【発明を実施するための形態】
【０００８】
メモリに格納されたデータにアクセスするための従来の並列バス実装に関連した技術には、いくつかの不都合がある。1つの不都合は、このようなシステムの実装に伴う複雑さに関するものである。たとえば、従来の並列バスはしばしば、多くのプリント回路基板層を通した多くの接続を必要とするので、回路およびトレースのレイアウトが難解な場合がある。
【０００９】
並列バスの別の不都合は、メモリシステムにおける信号品質に関するものである。たとえば、並列バスは、接続によって搬送される信号の品質に影響し得るクロストーク、信号スキュー、信号減衰およびノイズを受けやすい傾向にある。
【００１０】
並列バス設計に関連したさらに別の不都合は、電力消費に関するものである。たとえば、並列バスは、信号をバスの上に向かわせるために、膨大な電力量を必要とする傾向にある。電力消費は通常、さらに一層高いアクセス速度で動作する新規技術の場合に悪化する。
【００１１】
並列バスに関連した短所に対処するために、一部のメモリシステムでは、コントローラとそれぞれのメモリデバイスとの間でデータおよび制御信号を転送する従来の直列バス設計を組み込んでいる。従来の直列バス設計は、(データが並列ではなく直列に送信されるので)比較的少ない接続を使用する傾向にあり、したがって複雑ではなく、並列バス設計に関連したレイアウト問題の影響を受けにくい。
【００１２】
上述した従来のメモリシステムは、1つのメモリデバイスから別のメモリデバイスへのデータ転送をサポートするために使用することができる。たとえば、従来のメモリシステム内のメモリコントローラが、第1のメモリデバイスに格納されたデータブロックを第2のメモリデバイスにコピーするためのコマンドを受信すると仮定する。このような操作を行うために、コントローラは最初に、ソースメモリデバイスにアクセスして、コピーされるべきデータブロックを取り出す。その後、コントローラは次いで、そのローカルバッファに、アクセスされたデータを一時的に格納する。コントローラは次いで、バッファ中のデータの、ターゲットメモリデバイスへの書込みを開始する。メモリシステムが、偶然にも上述したプリント回路基板レイアウト問題を解消するための1つまたは複数の直列バスを有して構成されている場合であっても、データをコピーするこの従来技術は、かなり遅い。というのは、データは、メモリデバイスから取り出され、コントローラのバッファにローカルに格納され、ターゲットメモリデバイスへのデータの格納のために、コントローラからターゲットメモリデバイスにバスを介して送信されなければならないからである。遅いことに加えて、この例におけるコントローラは、コピーされるべき、アクセスされたデータをメモリに一時的に格納するのに十分に大きいバッファを有して構成されなければならない。したがって、従来のデータ転送は、それぞれのトランザクションを行うのに、過剰の時間および記憶資源を必要とする。
【００１３】
概して、本発明のいくつかの実施形態は、上述した欠点および/または当該分野において公知である他の欠点を克服するメモリシステムを含む。たとえば、本発明の一実施形態は、コントローラと、デイジーチェーン方式で結合された、対応する多数の連続メモリデバイスからなるストリングとを含むメモリシステムを含む。このような実施形態において、メモリシステムは、コントローラからメモリデバイス(たとえば、フラッシュベースのメモリデバイス)それぞれを通る、直列(デイジーチェーン)データリンクおよび/または直列(デイジーチェーン)制御リンクを含む。コントローラは、デイジーチェーン中のソースメモリデバイスからターゲットメモリデバイスへのデータの直接転送またはコピーを可能にするようにメモリシステムを構成するためのコマンドを、直列制御リンクおよび/または直列データリンクを介して伝達する。
【００１４】
本発明の実施形態に係るデータブロックのコピーは、多数のステップを含み得る。たとえば、コントローラは、多数の連続メモリデバイスを通るデイジーチェーンリンク(たとえば、直列リンク)を介して通信して、多数のメモリデバイスのうち第1のメモリデバイスを、第1のメモリデバイスに格納されたデータを出力するソースとなるように構成することができる。コントローラはまた、デイジーチェーンリンクを介して通信して、第2のメモリデバイスを、データを受信する移動先となるように構成する。第1のメモリデバイスをソースとなるように構成し、第2のメモリデバイスを移動先となるように構成した後、コントローラは、ソースメモリデバイスからターゲットメモリデバイスへのデイジーチェーンリンクを介したデータの転送を開始するための1つまたは複数の追加コマンドにより、デイジーチェーン制御リンクを介して通信する。
【００１５】
本発明の実施形態に係る、ソースメモリデバイスからターゲットメモリデバイスへの、コピーされるブロックデータの転送により、コントローラは、データを一時的に格納し移動先メモリデバイスに転送する必要がなくなる。上述したように、従来の方法は、コピー操作を実施するために、コントローラがデータをローカルに取り出し格納することを必要とする。したがって、本発明の実施形態に係るブロックコピーコマンドは、従来の方法より少ない時間で遂行することができる。さらに、本発明の実施形態に係るコントローラは、コピーされるデータブロックを一時的に格納するための大規模バッファを含むように構成される必要がない。というのは、データは、従来の方法でのケースでのように、コントローラに一時的に格納されないからである。言い換えると、1つのメモリデバイスからコピーされるデータは、必ずしもコントローラを通らずに、デイジーチェーンリンク上で別のメモリデバイスに転送することができる。
【００１６】
二地点間(たとえば、メモリチップからメモリチップへの)データ転送のサポートに加えて、本明細書において後でより詳しく論じるように、本発明の実施形態に係るコントローラは、デイジーチェーン中で、1つのメモリデバイス中のデータの、異なる多数のメモリデバイスへのブロックコピーを開始することができる。たとえば、コントローラは、異なる多数のメモリデバイスへの、同一データブロックのコピーを開始することができる。
【００１７】
さらに他の実施形態では、コントローラは、1つのメモリデバイスに格納されたデータ部分の、多数のメモリデバイスそれぞれへのコピーを開始することもできる。たとえば、コントローラは、デイジーチェーン制御リンクを介して通信を開始して、第1のメモリデバイスを、コピーされるべきデータブロックをもつソースとなるように、第2のメモリデバイスを、データブロックの第1の部分を受信するターゲットとなるように、第3のメモリデバイスを、データブロックの第2の部分を受信するターゲットとなるように、などの構成を行うことができる。追加コマンドの構成および発行の後、コントローラは、データブロックの部分を、1つのメモリデバイスから多数のメモリデバイスに転送する。したがって、単一メモリデバイスに格納されたデータブロックは、多数のメモリデバイスにコピーし分散することができる。
【００１８】
さらにそれ以外の実施形態では、コントローラは、(その中のデータがコピーされるべきである)ターゲットメモリデバイスが、ターゲットデバイス中のコアメモリへのデータの書込みに先立って、ソースメモリデバイスからデータを正しく受信するかどうか検査する、デイジーチェーン経路中に配置されるエラー検出回路を含むように構成することができる。必要な場合、コントローラ(たとえば、エラー訂正回路)は、ターゲットデバイスのメモリに書き込まれるデータにエラーがないように、データを修正し、または修復する。
【００１９】
こうしたおよび他の実施形態について、本明細書において後でより詳しく論じる。
【００２０】
上述したように、本発明の技法は、フラッシュ技術の利用をサポートするものなど、メモリシステムでの使用によく適している。ただし、本発明の実施形態は、このようなアプリケーションでの使用に限定されず、本明細書において論じる技法は、他のアプリケーションにもよく適していることに留意されたい。
【００２１】
さらに、本発明の異なる特徴、技法、構成などをそれぞれ、本開示の異なる箇所で論じている場合があるが、こうした概念はそれぞれ、互いとは別個に、または互いと組み合わせて実行し得ることを意図している。したがって、本発明は、異なる多くのやり方で実施し、実現することができる。
【００２２】
次に、より具体的には、図1A、1Bは、本発明の実施形態に係るメモリシステム例100を示す。図1Aの本例の状況では、メモリシステム100は、直列またはデイジーチェーン通信リンク162(たとえば、通信経路151)を介して多数のメモリデバイス110(たとえば、メモリデバイス110-1、メモリデバイス110-2、...、メモリデバイス110-M)にアクセスするコントローラ102を含む。図1Bに示すように、デイジーチェーンリンク162は、データリンク160および制御リンク150を含み得る。一実施形態では、データリンク160および制御リンク150は、本発明の実施形態に係るブロックコピーをサポートする資源の論理表現である。本明細書において後で論じるように、データリンク160および制御リンク150に関連した機能性は、コントローラ102からメモリデバイス110までの、およびそれを経由するデイジーチェーン経路を形成する多数の電子信号の使用により実現することができる。データリンクおよび制御リンクは、メモリデバイス110のストリングを通る物理リンクも示し得る。
【００２３】
直列通信リンクの使用により、メモリシステム100内の各ノード(たとえば、コントローラ102、メモリデバイス110-1、メモリデバイス110-2など)の間でのデータのコピーなどの操作が可能になる。
【００２４】
一実施形態では、メモリデバイス110を接続するデイジーチェーンリンクは、閉ループである。たとえば、図1Bに示すように、制御および/またはデータリンクは、メモリデバイス110それぞれを通ってコントローラ102に戻る。
【００２５】
コントローラ102は、アクセス制御モジュール140(たとえば、アクセス制御機能および他の処理機能をサポートする電子回路)とエラー検査モジュール109とを含む。コントローラ102に関連づけられたアクセス制御モジュール140は、異なるメモリコマンドまたはメモリ操作を生成し、伝達し、その実行を開始する。その名称が示唆するように、エラー検査モジュール109は、さらに後で論じるエラー検査およびエラー訂正などの機能をサポートする。
【００２６】
図示するように、メモリデバイス110(たとえば、フラッシュベースのメモリデバイス)はそれぞれ、データを格納するための対応する(コア)メモリ115を含み得る。さらに、メモリデバイス110はそれぞれ、インタフェース回路と、コントローラ102によって指定されたメモリトランザクションを実施する対応するバッファとを含み得る。たとえば、メモリデバイス110-1は、メモリ115-1(たとえば、コアメモリ)ならびに制御/データ処理(C.A.D.P.)回路125-1および対応するバッファ118-1(たとえば、一時記憶資源)を含む。メモリデバイス110-2は、メモリ115-2ならびに制御/データ処理回路125-2および対応するバッファ118-2を含む。メモリデバイス110-Mは、メモリ115-Mならびに制御/データ処理回路125-Mおよび対応するバッファ118-Mを含む。バッファ118-1、118-2、118-Mは、メモリから取り出されたデータを一時的に格納するのにも、メモリ115に書き込まれるべきデータを一時的に格納するのにも使うことができる。
【００２７】
メモリデバイス110に関連したアーキテクチャ例のこれ以上の詳細については、2007年7月18日に出願した「MEMORY WITH DATA CONTROL」という名称の米国特許出願第11/779,587号に見ることができる。メモリシステム100またはより詳細にはメモリデバイス110は、異なるタイプのメモリを使って実装され得ることに留意されたい。たとえば、本明細書に記載する概念は、NANDフラッシュメモリ、NORフラッシュメモリ、ANDフラッシュメモリ、直列フラッシュメモリ、分割ビット線NOR(DiNOR)フラッシュメモリ、動的ランダムアクセスメモリ(DRAM)、静的RAM(SRAM)、強誘電性RAM(FRAM)、磁気RAM(MRAM)、相変化RAM(PCRAM)、読出し専用メモリ(ROM)、電気的消去可能プログラム可能ROM(EEPROM)などのフラッシュ技術を含むが、それに限定されない異なる多くのタイプのメモリシステムおよびデバイスに適用することができる。
【００２８】
上で言及したように、デイジーチェーンリンク162は、コントローラ102が構成情報、命令、コマンドなどの情報を異なるメモリデバイス110にその上で伝達するための経路を提供する。制御リンク150は、本明細書において後で論じるコマンドストローブ信号(群)およびデータストローブ信号(群)を含み得る。
【００２９】
デイジーチェーンリンク162は、メモリデバイス110が互いおよび/またはコントローラ102とその上で通信するための経路を提供するように構成することもできることに留意されたい。
【００３０】
データリンク160は、コントローラ102および/またはメモリデバイス110が互いの間でデータをその上で伝達し得るための経路を提供する。
【００３１】
上で論じたように、本発明のいくつかの実施形態は、上述した欠点および/または当該分野において公知である他の欠点を克服するメモリシステム100に基づくものである。たとえば、メモリシステム100は、コピーまたはメモリ転送コマンドの実行を行うための、デイジーチェーン方式で結合されたコントローラ102および対応する多数の連続メモリデバイス110からなるストリングを含み得る。コピー操作中、コントローラ102は、デイジーチェーンリンク162を介して通信して、1つのメモリデバイス110から別のメモリデバイスへのデータのコピー用にメモリデバイス110を構成する。
【００３２】
制御リンク150およびデータリンク160などの通信リンクは各々、メモリシステム100内のノードを接続する多数の二地点間セグメントを含み得る。たとえば、制御リンク150の第1のセグメントは、アクセス制御モジュール140と制御/データ処理回路125-1との間の二地点間接続とすることができ、制御リンク150の第2のセグメントは、制御/データ処理回路125-1と制御/データ処理回路125-2との間の二地点間接続とすることができ、以下同様に続き、制御リンク150の第M+1のセグメントは、制御/データ処理回路125-Mとコントローラ102との間の、ループを閉じるための二地点間接続とすることができる。
【００３３】
各メモリデバイス110は、受信コマンドをデコードし、それぞれのメモリデバイスにアドレス指定されたコマンドの実行を開始するための制御/データ処理回路125を含み得る。さらに、各制御/データ処理回路125は、受信コマンドおよび/またはデータを、連続下流デバイス上に渡すことができる。たとえば、制御/データ処理回路125-1は、コントローラ102とメモリデバイス110-1との間の直列リンクの二地点間セグメント上で、コントローラ102から通信を受信し、かつ受信した通信を、制御/データ処理回路125-1と制御/データ処理回路125-2との間の二地点間セグメント上の直列経路151に向かって再送信することができる。他のメモリデバイスも、アクセス制御モジュール140がメモリデバイス110のいずれとも通信する(たとえば、情報を送り、受信する)ことができるように、同様に動作し得る。
【００３４】
コントローラ102は、通過または非通過モードに従ってメモリデバイス110それぞれを構成し得ることに留意されたい。通過モードでは、それぞれのメモリデバイスが、上流デバイス(たとえば、コントローラ102やメモリデバイス)から入力を受信し、受信した入力を下流ノード(たとえば、メモリデバイス110-2、...、メモリデバイス110-Mなどのメモリデバイス)に渡す。
【００３５】
コントローラ102は、デイジーチェーンリンクを介してメモリデバイス110-1などの第1のメモリデバイスの入力にコマンド(下流)を伝達すると仮定する。通過モードのとき、メモリデバイス110-1は、メモリデバイス110-2など、デイジーチェーン中の下流メモリデバイスの入力にコマンドを出力する。メモリシステム100内の各ノードが、通過モードにあるように構成されているとき、コントローラ102は、経路151を横切るコマンドを、コントローラ102に戻すように送信することができる。このようなモードにある間、メモリデバイス110は、経路151を横切るメッセージおよび/またはデータをコントローラ102に返送することができる。メモリシステム100内のメモリデバイスを通過モードに構成すると、各メモリデバイスが、デイジーチェーンリンク中の後続メモリデバイスの電力駆動入力を消費しなければならないので、電力消費が増大する。ただし、通過モードにより、コントローラ102は、後でより詳しく論じるエラー検査用のデータ受信などの機能を実施することが可能になる。
【００３６】
非通過モードでは、それぞれのメモリデバイスが、上流デバイス(たとえば、コントローラ102や他のメモリデバイス)から入力を受信し、受信した入力の、下流ノード(たとえば、別のメモリデバイス)への受渡しまたは送信を防止する。メモリシステム100内の1つまたは複数のノードを非通過モードに構成する1つの目的は、電力消費を削減することである。
【００３７】
一実施形態では、1つのメモリデバイスから別のメモリデバイスへのデータのデータ転送(たとえば、ブロックコピー)は、コントローラ102がデータをローカルに取り出し格納し、その後、データをターゲットメモリデバイスに書き込む必要なく起こる。むしろ、本発明の一実施形態によると、コントローラ102は、制御リンク150およびデータリンク160を介して通信して、ソースメモリ115-1からバッファ118-1へのデータの取出し(たとえば、読込み)、ソースメモリデバイスのバッファ118-1からターゲットメモリデバイス110-Mのバッファ118-Mへのデータの転送、およびバッファ118-M中の転送データの、ターゲットデバイス110-Mのコアメモリ115-Mへの格納(たとえば、書込み)を実施するようにメモリデバイスを構成する。したがって、本発明の実施形態は、デイジーチェーン制御リンクを介して通信して、選択された多数のメモリデバイス110それぞれを構成し、メモリデバイス110-1から、メモリデバイス110-2などの媒介メモリデバイスを経由して、メモリデバイス110-Mまで多数の連続メモリデバイスを通る直列またはデイジーチェーンデータリンク上でデータの送信を開始するように構成されたコントローラ102を含む。
【００３８】
したがって、本発明の一実施形態は、上流メモリデバイスからデータを受信する入力、下流メモリデバイスにデータを送信する出力、ならびに入力と出力との間の制御/データ処理回路125を含むようにそれぞれが構成された、1つまたは複数のメモリデバイスを含む。制御/データ処理回路125は、コントローラ102などの遠隔ソースから構成コマンドを受信し、遠隔ソースによる、対応するモードの選択に基づいて、コントローラ102によって指定された下流メモリデバイスへの、メモリデバイスの出力上での送信用に、対応するメモリ115に格納されたデータを取り出すように構成される。
【００３９】
上で言及したように、メモリデバイス110は、フラッシュベースのメモリデバイスとすることができ、バッファ118は、1ページの情報(たとえば、8キロデータバイト)を一度に格納して、多数のデータページのブロックコピー操作を行うことができる。したがって、ブロックコピーは、1つのメモリデバイス中の1つまたは複数の情報ページの、デイジーチェーン中の他の1つまたは複数のメモリデバイスへの転送を伴い得る。
【００４０】
データのコピーまたは移動を示すより具体的な例として、コントローラ102が、データブロック(たとえば、1つまたは多数のデータビットまたはページ)をメモリデバイス110-1(たとえば、ソース)からメモリデバイス110-M(たとえば、ターゲット)にコピーするなどの操作を行うためのリクエストを、ソース(たとえば、ユーザ、コンピュータシステムなど)から受信すると仮定する。このような事例において、コントローラ102は最初に、制御リンク150およびデータリンク160(たとえば、多数の連続メモリデバイス110を通るデイジーチェーンリンク)を介して通信して、このような操作向けにメモリデバイスを構成する。上述したように、この構成は、制御リンク150およびデータリンク160上で第1のメッセージを作成し、次いで送信して、メモリデバイス110-1をソースとなるように構成すること、制御リンク150およびデータリンク160上で第2のメッセージを作成し、次いで送信して、メモリデバイス110-Mをターゲットとなるように構成すること、ならびに制御リンク150およびデータリンク160上で追加メッセージを作成し、次いで送信して、メモリデバイス110-1からメモリデバイス110-Mへのデータの転送を開始することを含み得る。
【００４１】
制御リンク150およびデータリンク160上でメモリデバイス110に伝達される追加命令は、トランザクションに関連したより難解な詳細を示す。たとえば、コントローラ102は、ターゲットメモリデバイスと通信して、どの場所からデータを取り出すか、およびどれだけ大規模なブロックコピーを実施するかを指定することができる。コントローラ102は、ターゲットメモリデバイスと通信して、1つのターゲットメモリデバイス(または複数のターゲットメモリデバイス)のどの1つの場所(または複数の場所)に、対応するデータを格納するかを指定することもできる。
【００４２】
本例では、ソースメモリデバイスから、媒介メモリデバイスを経由して、ターゲットメモリデバイスへのデータ転送について論じているが、本発明の実施形態では、メモリデバイスのどれもが、メモリシステム100内の他のメモリデバイスにデータをコピーすることが可能になる。たとえば、コントローラ102は、メモリデバイス110-Mがソースとなるように、およびメモリデバイス110-1がデータを受信し格納するターゲットとなるように構成することができる。このような実施形態では、転送中、コントローラ102は、データを受信し、メモリデバイス110-Mからメモリデバイス110-1に渡す。したがって、デイジーチェーン制御リンク150およびデータリンク160を使用することにより、各メモリデバイスは、デイジーチェーン中の他のどのメモリデバイスにもデータを転送することが可能になる。
【００４３】
一実施形態では、通信を行うために、メモリデバイス110にはそれぞれ、一意のアドレス値が割り当てられる。コントローラ102は、対応するアドレス情報をもつメッセージ(たとえば、コマンドや命令)を送信し、そうすることによって、メッセージが、制御リンク150およびデータリンク160を介して送信される際に全メモリデバイス110によって受信された場合、メッセージ(たとえば、コマンド)のアドレス指定先であるメモリデバイスが、コマンドを受信し実行する。
【００４４】
したがって、メモリデバイス110にアドレス指定されたコマンドの発行に基づいて、メモリシステム100は、第1のメモリデバイスから第2のメモリデバイスへのデータの転送および直接コピーを可能にする。こうすることにより、コントローラ102は、メモリデバイスシーケンス中の第1のメモリデバイスからデータを一時的に取り出し、格納し、シーケンス中の移動先メモリデバイスに転送する必要がなくなる。したがって、ブロックコピーコマンドは、コントローラ102がデータにアクセスし、ローカルに格納することを必要とする従来の方法より少ない時間で遂行することができる。
【００４５】
本発明のいくつかの実施形態に係るコントローラ102は、コピーされたデータのブロックを一時的に格納するための大規模バッファを含むように構成される必要がないことにも留意されたい。というのは、データは、従来の方法のケースでのように、コントローラに一時的に格納される必要がないからである。ただし、コントローラ102は、後でさらに論じるエラー検査プロセスを助けるためのバッファを少なくとも含み得る。
【００４６】
さらにそれ以外の実施形態では、コントローラ102は、1つのメモリデバイスに格納された異なるデータ部分の、異なる多数のメモリデバイスそれぞれへのコピーおよび/または分散を開始することもできる。たとえば、コントローラ102は、デイジーチェーン制御リンク150およびデータリンク160を介して通信を開始して、第1のメモリデバイスを、コピーされるべきデータブロックをもつソースとなるように、第2のメモリデバイスを、データブロックの第1の部分を受信するターゲットとなるように、第3のメモリデバイスを、データブロックの第2の部分を受信するターゲットとなるように、さらに別のメモリデバイス110-2を、データブロックの第3の部分を受信するターゲットとなるように、および以下同様に構成することができる。したがって、1つまたは複数の構成命令およびコマンドにより、コントローラ102は、データブロックの部分を1つのメモリデバイスから多数のメモリデバイスに転送することができる。言い換えると、単一メモリデバイスに格納されたデータ部分は、コントローラ102に基づいて多数のメモリデバイスに分散し、コピーすることができる。すなわち、デイジーチェーンリンクを介して通信して、ソースメモリデバイスから第2のメモリデバイス中の記憶場所への第1のデータ部分の格納を開始し、デイジーチェーンリンクを介して通信して、ソースメモリデバイスから第3のメモリデバイス中の記憶場所への第2のデータ部分の格納を開始し、以下同様に続く。
【００４７】
さらにそれ以外の実施形態では、上で手短に言及したように、コントローラ102は、エラー検査モジュール109(たとえば、エラー検出回路)を含むように構成することができる。エラー検査モジュール109は、(データがコピーされるべき)ターゲットメモリデバイスが、ターゲットデバイス中のメモリへのデータの書込みに先立って、ソースメモリデバイスからデータを正しく受信するかどうかの検査用に、デイジーチェーン経路151中に配置することができる。必要な場合、コントローラ(たとえば、エラー訂正回路)は、ターゲットデバイスのメモリに書き込まれるデータにエラーがないように、データを修正し、または修復する。
【００４８】
一例として、コントローラ102が、上述したようにメモリデバイス110-1からメモリデバイス110-Mへのデータのコピーを開始すると仮定する。バッファ118-1からのデータの転送を受信すると、メモリデバイス110-Mは、データをバッファ118-Mに格納し、かつデータリンク160上でコントローラ102のエラー検査モジュール109にデータを渡す。通過モードにあるとき、データリンク160は、メモリデバイス110-1からメモリデバイス110-Mに、およびそれを経由してエラー検査モジュール109に多数のデータビットを同時に転送するデータバスになり得る。エラー検査モジュール109によって受信されるデータは、メモリデバイス110-Mによって受信されバッファ118-Mに格納されるデータと同じはずである。エラー検査アルゴリズムを適用することによって、エラー検査モジュール109は、バッファ118-M中のデータに関連づけられたエラーを検出し、このような事例では、バッファ118-M中のデータの、メモリ115-Mへの書込みを防止することができる。したがって、本発明の実施形態は、デイジーチェーン下方への「書込みデータパケット」(たとえば、ブロックコピーデータ)の受渡しを含むこととしてもよく、その結果、コントローラ102は、1つのメモリデバイスから別のメモリデバイスに送信されるデータパケットがエラーを含むかどうか検査するためのECC操作を実施することができるようになる。
【００４９】
一実施形態では、エラー検査モジュール109は、バッファ中のどのビットが修正される必要があるのか検出するためのアルゴリズムを実装する。バッファ118-M中のデータの、メモリ115-Mへの転送(たとえば、書込み)を開始するのに先立って、エラー検査モジュール109がエラーを検出すると仮定すると、コントローラ102は、制御リンクおよびデータリンクを介して通信して、バッファ118-Mの内容を修正することによってエラーを訂正する。
【００５０】
メモリシステム100および/またはメモリデバイス110(たとえば、フラッシュメモリデバイス)は、たとえば移動通信デバイス、ゲームセット、カメラなど、異なるタイプの電子システム内で使うことができる。メモリシステム100は、多数のホストシステムに挿入することができる取外し可能メモリカードとしても、ホストシステム内の固定型組込み記憶装置としても実装することができる。
【００５１】
対応するメモリデバイス110内のメモリ115は、1つまたは複数のトランジスタセルアレイからなるものとしてもよく、各セルは、1つまたは複数のデータビットの不揮発性または揮発性記憶が可能である。この実施形態に依存して、このようなメモリは、その中にプログラムされたデータを保持するための電力を必要とする場合もしない場合もある。
【００５２】
メモリ115が、フラッシュに基づくメモリである場合、セル(たとえば、データ記憶位置)は、新規データ値でプログラムし直され得る前に消去される必要があり得る。上述したように、コントローラ102は、メモリデバイス110と通信して、かつデバイス110を介して通信して、このような消去機能を行うことができる。
【００５３】
対応するメモリデバイス110中のメモリ115は、読込み、プログラム、消去機能の効率的実行を可能にするために、グループに区切られたセルアレイを含み得る。セルのグループ、すなわちいわゆるブロックは、読込みおよびプログラム機能のための基本単位である、アドレス指定可能な1つまたは複数のセクタにさらに区切ることができる。
【００５４】
フラッシュデバイスにデータを書き込むとき、データ管理の容易さ故に、通常、単一データバッチが1ブロックに書き込まれる。こうすることにより1ブロック中の空きエリアがかなり大きくなり、結果としてデータエリアの使用が効果的ではなくなる。したがって、NANDフラッシュメモリが使われる場合、ある特定のブロック中の1ページのデータは、書き込まれたことのあるデータから読み出すことができ、読込みデータは、センス/ラッチ回路によって一時的にラッチされる。センス/ラッチ回路によってラッチされたデータは次いで、データが読み出されたブロックとは異なるブロック中の空きエリアのページに書き込まれる。このような操作は、ページコピーと呼ばれ、メモリ空間の効果的使用を可能にする。
【００５５】
上述したように、メモリ115は、ページコピー操作(たとえば、コピーバック操作)をサポートすることができる。ページコピー操作は、第1のページのアドレスに格納されたデータを、第2のページの指定されたアドレスに転記することを伴う。ページコピー中、ソースメモリデバイスのページ(すなわち、ソースページ)に格納されたデータは、ページバッファに転送される。ページバッファに格納されたデータは次いで、書込みのためにデイジーチェーンまたは直列リンク中の別のメモリデバイスのバッファに転送される。上述したように、この操作は、コントローラ102にデータを格納することなく遂行することができる。効果的には、データは、コントローラ102がフラッシュメモリからデータを読み出すことなくコピーすることができる。上述したように、フラッシュデバイスは、直接「上書き」機能をサポートしないので、メモリシステム100のターゲットページの場所は、ターゲットの記憶場所に新規データを書き込むのに先立って消去される必要があり得る。
【００５６】
メモリデバイスに関連づけられたセルまたは場所の内容は、限られた数のP/E(プログラム/消去)周期にのみ耐えることができるので、限られた回数だけ修正することができる。いわゆるP/E周期制限は、SLC(単一レベルセル)よりも、MLC(マルチレベルセル)タイプのNANDフラッシュメモリにおいて、より厳しい場合があり、たとえば、SLCメモリデバイスは、デバイスの寿命により最大100,000回のP/E周期まで信頼できるが、MLC NANDフラッシュメモリデバイスは通常、約10,000回のP/E周期にのみ耐え得る。ただし、MLC NANDフラッシュデバイスにおける、費用効果の高い密度の利点(たとえば、MLCデバイスは、密度がSLCより2倍大きい)故に、より多くの製造元が、今日ではMLC NANDフラッシュメモリを生産している。
【００５７】
対応するメモリデバイス110の寿命を延長し、「バーンアウトする」場所またはセルを削減する1つのやり方は、時間をかけて、データの書込みを異なる場所に分散することである。異なる場所にデータを書き込むことにより、フラッシュメモリデバイスの一様な疲弊を維持する。メモリシステム100内のMLCフラッシュデバイスを使うとき、このようなデバイスは比較的高いP/E周期をサポートしないので、SLCフラッシュデバイスを使うのに比較して、格納プロセス中により多くの注意が払われ得る。
【００５８】
図2は、本発明の実施形態に係る、データのコピーを示すメモリシステム例200のブロック図である。
【００５９】
概して、メモリシステム200は、従来の方法より速いブロックコピーをサポートする。たとえば、メモリシステム200は、入出力ピン(たとえば、Dnは、データを受信する直列データ入力ポートであり、Qnは、データを出力する直列データ出力ポートである)の直列化高速リンク(たとえば、デイジーチェーン式データリンク経路323)を実装して、ブロックコピー操作を行う。データフロー例として、コントローラ30および/またはメモリデバイスは、次の連続下流デバイスの入力(たとえば、Dn)にデータを送信するために、データリンクQn上にデータを出力することができる。本明細書に記載するように、入力Dn上でデータを受信するデバイスは、受信データを処理し(たとえば、そのローカルページバッファにデータを格納し)、かつ/またはその対応するQn出力上にデータを出力するように構成することができる。
【００６０】
信号Dn、Qnは、1つまたは複数のデータビット幅とすることができ、コントローラ30およびそれぞれのメモリデバイスが多数のデータビットを他のメモリデバイスまで下流方向に同時に伝達することを可能にする。
【００６１】
図示するように、メモリコントローラ30は、CSO(たとえば、コマンドストローブ出力)、DSO(たとえば、データストローブ出力)およびQn信号を、それぞれの相互接続305、306、307上でメモリデバイス300に出力する。メモリデバイス300は、その対応するCSO、DSO、およびQn信号を生じ、それぞれの相互接続308、309、310上でメモリデバイス301に出力する。メモリデバイス301は、その対応するCSO、DSO、およびQn信号を生じ、それぞれの相互接続311、312、313上でメモリデバイス302に出力する。メモリデバイス302は、その対応するCSO、DSO、およびQn信号を生じ、それぞれの相互接続314、315、316上でメモリデバイス303に出力する。デイジーチェーンループを完了してコントローラ30に戻り、メモリデバイス303は、その対応するCSO、DSO、およびQn信号を生じ、それぞれの相互接続317、318、319上でコントローラ30に出力する。
【００６２】
本明細書に記載するように、この一連の相互接続により、コントローラ30からそれぞれのメモリデバイス、デイジーチェーン中の第1のメモリデバイスから第2のメモリデバイス、またはメモリデバイスからコントローラ30など、デバイスからデバイスにデータパケットおよび制御信号をその上で送信するためのデイジーチェーンフロー経路323がもたらされる。
【００６３】
CSIおよび/またはDSI信号は、実施形態に依存して、正論理でも負論理でもよいことに留意されたい。
【００６４】
図示した実施形態例では、コントローラ30は、デイジーチェーン中のメモリデバイスそれぞれを駆動する、(たとえば、コントローラ内のSDR/DDR/QDRクロックに基づく)クロック信号を出力する。クロックの使用により、デバイスの間の同期データ転送が可能になる。クロックは、差分信号としてもシングルエンド信号としても実装できることに留意されたい。
【００６５】
メモリシステム200は、制御リンクも含む。本例の制御リンクは、2つの専用の制御信号を含む。すなわち、i)コントローラ30からメモリデバイスにコマンド/アドレスパケット(たとえば、コマンド)を伝達するコマンドストローブ入力、すなわちCSI、およびii)メモリデバイスの間でデータパケット(たとえば、コピーされたデータ)の書込み&読込みを開始するデータストローブ信号、すなわちDSIである。したがって、コントローラ30によって生成される(かつデイジーチェーン上で下流に向かって他のデバイスに渡される)信号CSIおよび/またはDSIは、それぞれコマンド/アドレスパケットおよびデータパケットの転送を可能にし、不可にする。図1Bに関して上で論じた実施形態と同様の傾向として、図2のコントローラ30によるコマンドストローブ(CS)信号およびデータストローブ(DS)信号の制御は、メモリデバイスの直列接続デイジーチェーン中のノード(たとえば、メモリデバイス)の間でのパケットの送信およびブロックコピー操作の実行を可能にする。
【００６６】
したがって、メモリシステム200は、コピーおよび後で論じる関連機能を行うための、「コマンドおよびアドレスパケット(=CAP)」、「書込みデータパケット(=WDP)」ならびに「読込みデータパケット(=RDP)」という3タイプのパケットの生成および分散をサポートするパケット指向メモリシステムとみなすことができる。
【００６７】
コントローラ30によって生成される「コマンドおよびアドレスパケット」は、直列リンクを介してメモリデバイス300、301、302、303に送信されるコマンドおよびアドレス情報を含む。図示するように、「コマンドおよびアドレスパケット」は、直列データ入力ポート(群)、すなわちDnを通ってメモリデバイスに届き、ポートQn上で出力される。コマンドおよびアドレスパケットのエンドポイントは、コマンドストローブ信号、すなわちCSI(=コマンドストローブ入力)のエッジと一致し得る。
【００６８】
「書込みデータパケット」(たとえば、書き込まれるデータ、コピーされるデータ、転送データ、データ訂正情報など)は、直列データ入力ポート(群)、すなわちDnを通ってそれぞれのメモリデバイスに届き、ストローブ信号、すなわちDSI(=データストローブ入力)で区切られる。
【００６９】
「読込みデータパケット」は、直列リンク上でメモリコントローラ30に送信される、それぞれのメモリデバイスによって出力される読込みデータを含む。「読込みデータパケット」は、メモリデバイスから、それぞれの直列データ出力ポート(群)、すなわちQnを通って出力され、ストローブ信号、すなわちDSI(=データストローブ入力)で区切られる。
【００７０】
一実施形態では、「コマンドおよびアドレスパケット」、「書込みデータパケット」ならびに「読込みデータパケット」はそれぞれ、Qnに関連づけられた現在のI/O幅(1ビット、2ビット、4ビットなどの幅)に関わらず、整数バイト長である。
【００７１】
一実施形態では、ページバッファは8キロバイト幅である。相互接続307、310、313、316などは、4ビット幅である。1ページのデータの転送には、デイジーチェーン上での、メモリデバイス300からメモリデバイス301への多数の並列データ転送が必要である。
【００７２】
メモリデータ転送は、開始アドレス(たとえば、メモリデバイス中でデータが格納される場所)および転送長さ(たとえば、コピーされるべきデータの量)で指定され得ることに留意されたい。対応するストローブ信号(=DSI)の、上昇エッジから下降エッジまでの持続期間は、転送長さに依存する。
【００７３】
上述したように、メモリシステム200内の提案されているメモリデバイスは、CSI信号が「高」論理状態にセットされる(たとえば、CSIが活性化される)と、「パケット化された」コマンドおよびアドレス情報をDnポート(群)を通して受信する。DSIが「高」論理状態にセットされる(たとえば、DSIが活性化される)と、デバイスは、Dn/Qnポート(群)を通して入出力データパケットを受信/送信する。クロック信号(CK/CK#)の遷移エッジで参照されるCSI信号が活性化される(すなわち、高論理状態にセットされる)と、メモリデバイスは、コマンド&アドレスパケットを含む連続バイトを(Dnポート(群)を通して)受信し始める。「コマンド&アドレスパケット」中のコマンドは、実行されるべき命令を指定する。「コマンド&アドレスパケット」中のアドレス情報は、それぞれのメモリデバイスからの情報をそこに格納し、かつ/または取り出すべきメモリアドレス位置情報を指定することもできる。
【００７４】
CSI信号が不活性化された(たとえば、「低」状態にセットされた)場合、メモリデバイスは、Dnポート(群)を通してコマンド&アドレスパケットを受信するのを停止する。同様に、メモリデバイスが書込みモードにある間にDSI信号が活性化され、またはアサートされる(たとえば、DSIが「高」状態にセットされる)と、メモリデバイスは、Dnポート(群)を通して、クロック信号(CK/CK#)の遷移エッジで参照される「書込みデータパケット」を受信し始める。DSI信号が不活性化され、またはデアサートされた(すなわち、DSIが「低」状態にセットされた)場合、メモリデバイスは、Dnポート(群)を通して「書込みデータパケット」を受信するのを停止する。
【００７５】
メモリデバイスが読込みモードにある間にDSI信号が活性化され、またはアサートされる(たとえば、「高」状態にセットされる)と、読込みモードにあるメモリデバイスは、Qnポート(群)を通して「読込みデータパケット」を送信し始める。DSI信号がデアサートされ、または不活性化される(たとえば、DSIが「低」状態にセットされる)と、読込みモードにあるメモリデバイスは、Qnポート(群)を通した「読込みデータパケット」の送信を停止する。
【００７６】
図2に示すように、メモリコントローラ30は、エラー検出装置および/または訂正機能性を提供する「ECC&バッファメモリ」ブロック31を含み得る。メモリデバイスを通る直列接続(たとえば、1つまたは複数のデータおよび/または制御リンクからなるデイジーチェーン)は、コントローラ30に戻るフィードバックループを形成する。したがって、コントローラ30は、メモリデバイスのいずれからの経路324および入力Dn上のデータも監視し受信することができる。図示した実施形態例では、メモリコントローラ30は、最後のメモリデバイス(たとえば、メモリデバイス303)からDn、DSI、CSI信号を、それぞれの相互接続317、318、319を通して受信する。上述したように、コントローラ30は、経路325上でデータを出力して、メモリデバイスのいずれの中のデータの修正も(たとえば、エラーを訂正するために)開始することができる。
【００７７】
デイジーチェーン中のメモリデバイスの数は、実質的に無制限でよい。ただし、一実施形態では、いくつかのアプリケーションは、255個のメモリデバイスからなるストリングに制限され得る。ある特定のシステムが255個のメモリデバイスより多くのメモリを必要とする場合、Table 2(表2)におけるデバイスアドレス(=DA)バイト定義は、たとえば2バイトに拡張することができる。このようなケースでは、メモリデバイスの総数は65535=216-1になり得る。
【００７８】
一実施形態では、メモリシステム200は、プリント回路基板やマルチチップパッケージ(たとえば、MCP)など、それぞれの基板205上にある。MCP(マルチチップパッケージ)デバイスは、デイジーチェーン構成において使うことができ、ある単一MCP自体が、既に直列に相互接続された8個のメモリチップを内部に含む場合、現在のパケットプロトコルが用いられるのであれば63個のMCPデバイスが、単一チャネル内の最大数となり得る。
【００７９】
図2に示す実施形態例において、コントローラ30は、メモリデバイス300のメモリコアからメモリデバイス301のメモリコアへのデータのコピーを開始する。コピーされるデータブロックは、128ページを含む。128ページのコピーの記述は、例示の目的でのみ含まれ、ブロックコピーは、単一ビットのデータから多ビットのデータでよいことに留意されたい。
【００８０】
一実施形態では、メモリデバイスのページバッファは、一度に単一データページを格納することができる。したがって、メモリデバイス300からメモリデバイス301へのデータのコピーは、メモリデバイス300のページバッファからメモリデバイス301のページバッファへの多数のデータ転送を含む。
【００８１】
本例の状況において、メモリコントローラ30は、通常通りに接続されたメインクロック信号304を、デイジーチェーン中のメモリデバイスそれぞれに向かわせる。各メモリデバイスは、図に示すものと同じtIOL(クロック周期で表した、入力から出力までの待ち時間)をもち得る。この例では、メモリシステム200は、メモリデバイス300、メモリデバイス301、メモリデバイス302、およびメモリデバイス303(たとえば、HLNAND(商標)メモリデバイス)を含む、直列接続された4つのメモリデバイスを含む。ただし、上述したように、メモリシステム200は、255個のメモリデバイスまたはそれ以上など、より多くのメモリデバイスを、それぞれのデイジーチェーン中に含んでよい。
【００８２】
本発明の実施形態に係るメモリシステム200は、それぞれのデイジーチェーン中に異種の1組のメモリデバイスを含み得ることに留意されたい。たとえば、メモリシステム200は、たとえばDRAM、フラッシュメモリなど、異なるタイプのメモリデバイスからなるデイジーチェーンを備え得る。デイジーチェーン中の異なるタイプのメモリデバイスは、異なる目的のために使うことができる。
【００８３】
さらに他の実施形態では、メモリシステム200は、多数のデイジーチェーンを含むように構成することができる。たとえば、1つのデイジーチェーン(図示してある)は、図示するように、メモリデバイス300、メモリデバイス301、メモリデバイス302およびメモリデバイス303を含む多数のメモリデバイスからなるストリングを含み得る。コントローラ30から発する別の独立デイジーチェーンは、別の1組のメモリデバイスを含み得る。第2のデイジーチェーンを介した通信をサポートするために、コントローラ30は、第2のデイジーチェーン中でコピー操作を行うための第2組の制御およびデータ信号(たとえば、CSO、DSO、Qn)を生じることができる。
【００８４】
図3A、3Bは、本発明の実施形態に係る、ソースメモリデバイスからターゲットメモリデバイスへのデータのコピーに関連したタイミングを示す詳細なタイミング図である。図示するように、時間T0で、メモリデバイス300(たとえば、デバイス0)が、「書込み構成レジスタ」コマンドパケット(01h&FFh)および1h「書込みデータパケット」(01h)を受信する。コマンドパケット中のデバイスアドレス(DA=01h)が、メモリデバイス300のデバイスアドレスと合致しないので、メモリデバイス300は、受信したコマンドパケットを無視し、コマンドパケットを、相互接続308、310を通して次のメモリデバイス301にバイパスさせる。詳細なタイミング図を、図6に示す。書込みデータパケットもバイパスさせられる。以下のTable 1(表1)は、書込み構成レジスタの定義例である。
【００８５】
【表１】
2010537326.tif 000003
【００８６】
メモリデバイス300を通したコントローラ30からの「書込み構成レジスタ」(01h&FFh)コマンドパケットおよび「書込みデータパケット」(01h)606の受信に応答して、メモリデバイス301は、そのバイパス機能をローカルに活性化して、通過モードを可能にする。というのは、受信したデバイスアドレス(DA=01h)が、それ自体のデバイスアドレスと合致しているからである。ただし、メモリデバイス301が依然としてバイパス不可モードにあるので、「書込みデータパケット(01h)」606は、(たとえば、デバイス1のQn出力上の位置607にバイパスされない)位置607にバイパスされない。
【００８７】
デバイス301は、「書込みデータパケット」(01h)606を処理した後、「バイパスモード」になり得る。このようなコマンドを発行する前に、デバイス301は「バイパス不可モード」に入ることになる。
【００８８】
時間T1で、ソースメモリデバイス300は、「ページ読込み」コマンドパケット(00h&00h&RA)を受信し、図示するようにページ読込み動作を実施し始める。ページ読込み動作は、メモリデバイス300のメモリコアに格納されたデータの取出しを含む。一実施形態では、ページを取り出すためのこの期間は、20マイクロ秒である。
【００８９】
時間T3で、メモリコントローラ30は、メモリデバイス301を「書込みモード」にセットするために、メモリデバイス301に「バーストデータロード開始」コマンドパケット(01h&40h&CA)を発行して、メモリデバイス300からデータを受信する。
【００９０】
時間T5で、メモリデバイス300は、コントローラ30によって生成された「バーストデータ読込み」コマンドパケット(00h&20h&CA)を受信する。このコマンドは、経路321上での、メモリデバイス300のページバッファ中のデータの、メモリデバイス301のページバッファへの転送を開始する。したがって、ターゲットメモリデバイスへの、取り出されたデータの転送を試みる前に、20マイクロ秒というページ読込み時間要件が満たされる。
【００９１】
DSI信号がメモリコントローラ30からメモリデバイス300にアサートされる時間T7で、メモリデバイス300は、そのページバッファデータを、Qnピンを通してメモリデバイス301に出力し始める。メモリデバイス301のDSIおよびDnピンは、メモリデバイス300のDSOおよびQnピンに直接接続されるので、ターゲットメモリデバイス301は、着信データを、そのそれぞれのページバッファに格納するために受信する。転送中、同形データパケット601、602(たとえば、ページデータ)が、時間T8と時間T10の間にメモリデバイス300からメモリデバイス301に送信される。メモリデバイス300からのデータは、メモリデバイス301のページバッファに格納される。
【００９２】
時間T11で、メモリコントローラ30は、「ページプログラム」コマンドパケット(01h&60h&RA)をメモリデバイス301に伝達する。これにより、メモリデバイス301のページバッファからコア記憶デバイスに書き込まれるべき受信データの格納が開始される。
【００９３】
図3のタイミング図の上記説明は、メモリデバイス300からメモリデバイス301への単一データページの転送を示す。このプロセスは、ブロックコピー操作に関連した他の多数のページそれぞれに対して繰り返すことができる。
【００９４】
ソースメモリデバイスからターゲットメモリデバイスへのブロックコピー全体を完了した後、コントローラ30は、バイパス機能を不可状態にリセットするために、別の「書込み構成レジスタ」コマンドを発行すればよい。
【００９５】
図4は、本発明の実施形態に係るブロックコピー方法を示すフローチャート例499である。概して、上述したように、フローチャート499は、図2に示した、ソースメモリデバイス300からターゲットメモリデバイス301へのデータのブロックコピー例を示す。後で論じるように、コピー操作を行うために、コントローラ30は、デイジーチェーンリンク(たとえば、制御リンクおよびデータリンク)を介して通信して、メモリデバイスを構成し、ブロックコピーを開始する。以下のコマンドに関連づけられたすべての値は、16進値として列挙されていることに留意されたい。
【００９６】
ステップ700で、各ターゲットアドレス向けに、コントローラ30は、ターゲットメモリデバイス301のバイパス機能を可能にするために、対応する値(DA&FFh)をもつ「書込み構成レジスタ」コマンド、および対応する値01hをもつ「書込みデータパケット」コマンドを発行する。バイパス機能(たとえば、通過モード)は、Table 1(表1)中の値に従ってプログラムすることができる。上述したように、バイパスモード(たとえば、信号通過モード)は、省電力目的のために不可にしてよい。ただし、このブロックコピー例では、コントローラ30は、デイジーチェーン中の次のメモリデバイスに、および次のメモリデバイスを通して「書込みデータパケット」を送信するために、ターゲットメモリデバイス301をバイパス可能モード(たとえば、通過可能)にセットし、そうすることによって最終的に、前記「書込みデータパケット」(元々はソースメモリデバイス300からの「読込みデータパケット」)は、デイジーチェーンを経由してメモリコントローラ30に渡されることになる。いくつかのターゲットデバイスがある場合、コントローラ30は、ブロックコピーを開始するためにいくつかのターゲットデバイスにコマンドを発行することになることに留意されたい。
【００９７】
ステップ701で、メモリコントローラ30は、ソースメモリデバイス300に、対応する値(DA&00h)をもつ「ページ読込み」コマンドパケットを生成する。このようなコマンドの受信に基づいて、ソースメモリデバイス300は、そのメモリコアの指定された場所から、その対応するページバッファへのページデータの転送を開始する。一実施形態では、この操作は、転送を完了するのに20マイクロ秒かかり得る。
【００９８】
ステップ702で、ソースデバイス300がページ読込み動作を実施する間(または後)、メモリコントローラ30は、ターゲットメモリデバイス301に、対応する値(DA&40h)をもつ「バーストデータロード開始」コマンドパケットを発行し、その結果ターゲットメモリデバイス301は、「書込みモード」に入り、少なくとも「書込みデータパケット」(たとえば、ソースメモリデバイス300からのデータ)を受信する準備が整う。
【００９９】
一実施形態では、メモリコントローラ30は、ページ読込み動作が完了され、データ転送が現時点で可能であることを確かめるため、20マイクロ秒(または指定された他のある程度の時間量)だけ待つ。
【０１００】
ステップ703で、ソースメモリデバイス300中でページ読込み動作が完了した後、メモリコントローラ30は、第1のメモリデバイス300に、対応する値(DA&20h)をもつ「バーストデータ読込み」コマンドパケットを発行する。このコマンドの受信に基づいて、第1のメモリデバイス300は、「読込みモード」に入り、メモリデバイス300のページバッファ中のデータを出力するための信号通知であるDSIアサーションを受信する準備が整う。
【０１０１】
ステップ704で、メモリコントローラ30は次いで、メモリデバイス300からメモリデバイス301に転送されるページの長さ(たとえば、8キロバイト)だけDSIをアサートする。データ転送の長さは、単一ビットから多数のバイトまで、任意のビット数の情報でよいことに再度留意されたい。
【０１０２】
ステップ705で、DSI信号のアサーションまたは活性化に基づいて、メモリデバイス300は、「読込みデータパケット」の送信を開始して、メモリデバイス300のページバッファ中のデータを、ターゲットメモリデバイス301のページバッファに転送する。
【０１０３】
ステップ706で、ターゲットメモリデバイス301は、「読込みデータパケット」を「書込みデータパケット」として受信する。というのは、ターゲットメモリデバイス301は、「書込みモード」にセットされ、そのDSI入力信号に従った「書込みデータパケット」を予期していたからである。したがって、上記信号通信に基づいて、メモリデバイス300中のデータページは、単一バーストデータ転送期間中に、ソースメモリデバイス300から第2のメモリデバイス301に自動的に転送される。
【０１０４】
一実施形態によると、このように行われるデータの転送は、2つの異なるタイプのデータパケットが、実際には同じデータパケットフロー中で送信されるので、同形データパケットまたは同形データ転送として定義することができる。
【０１０５】
上述したのと同様の傾向として、この例において論じるデータのフローは、コントローラ30がソースメモリデバイスからデータを取り出し、取り出されたデータをターゲットメモリデバイスに格納する必要をなくすので、有益である。時間節約の例を、図2により具体的に示す。たとえば、総ブロックコピー時間は、本発明の実施形態によると39ミリ秒であり得るが、従来技術では、コントローラに、次いでコントローラからターゲットメモリデバイスにデータを転送するのに、さらに10ミリ秒を必要とし得る。
【０１０６】
1つのメモリデバイスから別のメモリデバイスにデータをコピーするための実際の転送時間(たとえば、39ミリ秒のコピー時間)は、それぞれのメモリシステムにおいて利用されるメモリデバイスの速度に依存して変わることに留意されたい。したがって、データ転送を完了するための時間は、メモリ速度ならびに当業者によって認識される追加要因に依存して変わり得るので、上述した転送速度例は、例示目的のために言及しただけである。
【０１０７】
図4のステップ707で、メモリコントローラ30は、ページの読出し中に起きた何らかのビットエラーがあったかどうか検査するために、デイジーチェーン上でのメモリデバイス300からターゲットメモリデバイス301へのデータの受渡しに、任意選択のECC(エラー訂正コード)操作を適用する。コントローラ30は、構成コマンドを使って、メモリデバイスを、ソースデバイスからターゲットデバイスにコピーされるデータが、検査のためにデイジーチェーンに沿ってコントローラ102に渡る通過モードにすることを思い起こされたい。
【０１０８】
ステップ708で、コントローラ30は、ソースメモリデバイスからターゲットメモリデバイスに転送されるデータにエラーがあるかどうか検査する。ECC操作が、転送データ中にエラーの存在を検出した場合、フローはステップ709で継続する。
【０１０９】
ステップ709で、コントローラ30は、ターゲットメモリデバイス301を、コントローラ30からデータを受信するように構成する。
【０１１０】
ステップ710で、コントローラ30は、(たとえば、コントローラ30内のECC機能からの)修正済みデータを、デイジーチェーンリンクを介してターゲットメモリデバイス301のページバッファに送る。したがって、コントローラ30は、ページバッファ中のデータを修正する。
【０１１１】
ステップ708で、ECC操作を完了し、ターゲットメモリデバイス301のページバッファに格納されたデータにエラーが最初からなかった、またはなくなったとみなした後、フローは、ステップ711で継続する。
【０１１２】
ステップ711で、メモリコントローラ30は、「ページプログラム」コマンドパケット(DA&60h)をターゲットメモリデバイス301に発行する。コマンドの受信に応答して、メモリデバイス301は、ページバッファ内のデータを、選択されたメモリページ場所に書き込み始める。
【０１１３】
ステップ712でコントローラ30は、ソースメモリデバイスからターゲットメモリデバイスにコピーされるべき追加データページがあるかどうか検査する。ページがある場合、メモリコントローラ30は、コピーされるべき各追加ページに対するステップ701〜712の繰返しを伴うステップ713を実行する。コピーされるべきページの数は、任意の値でよい。この例では、メモリデバイス300からメモリデバイス301にコピーされる128ページのデータがある。
【０１１４】
コントローラ30が、コピーされるべき追加ページがないと検出した場合、コントローラ30は、ステップ714に進む。
【０１１５】
ステップ714は、ブロックコピー操作例を終了する。一実施形態では、コントローラ102は、メモリデバイスをアイドルモードにするのを完了すると、メモリデバイスに関連づけられたそれぞれの構成レジスタへの1つまたは複数の書込みを開始する。
【０１１６】
図5は、本発明の第2の実施形態によって、コントローラ40によって出力されるクロックが、メモリデバイスのストリングを通して直列デイジーチェーン方式で接続されるメモリシステム図の例である。たとえば、コントローラ40は、それぞれのクロック信号でメモリデバイス400を駆動し、メモリデバイス400は、メモリデバイス401にクロック信号を出力し、以下同様に続く。
【０１１７】
デイジーチェーン中の各メモリデバイスは、受信したクロック信号を調整するためのクロック同期装置回路を含み得る。図示した実施形態例では、メモリデバイス400は同期装置回路510-1を含み、メモリデバイス401は同期装置回路510-2を含み、メモリデバイス402は同期装置回路510-3を含み、メモリデバイス403は同期装置回路510-3を含む。クロック同期装置回路510によって提供される機能性は、PLL(フェーズ固定ループ)デバイス、DLL(遅延固定ループ)デバイスなど、または他の適切な回路によって提供され得ることに留意されたい。クロック同期装置の使用により、アクセス回数が減少する。クロック同期装置(たとえば、外部調整PLL、DLLなど)に関連したより詳細は、2007年12月19日に出願した「METHODS AND APPARATUS FOR CLOCK SYNCHRONIZATION IN A CONFIGURATION OF SERIES-CONNECTED SEMICONDUCTOR DEVICES」という名称の関連米国特許出願第11/959,996号(代理人整理番号1251-02US-000-00)で論じられている。
【０１１８】
この実施形態例では、メモリデバイス400、メモリデバイス401、メモリデバイス402、メモリデバイス403およびメモリコントローラ40を含むメモリデバイスのストリングは、それぞれのデバイスの間で現実の二地点間直列方式(CKI、CKO)で接続される。コントローラ30(図2に示す)から各メモリデバイスへの一対多地点接続は、動作周波数が高過ぎる(たとえば、数GHz)場合、累積フェーズエラー問題を引き起こし得る。各メモリデバイス中に構築される特殊同期回路(たとえば、同期装置回路510-1、510-2、510-3、510-4)(図5に示す)の使用により、この問題が補償される。
【０１１９】
図5に示すメモリシステム500の全体的操作は、図2のものと同様である。ただし、上述したように、メモリシステム500内のメモリデバイスはそれぞれ、バーストデータ転送時間が図2のメモリシステム200によって実現されるよりもはるかに速くなるように、外部調整PLLブロックを利用する。たとえば、メモリシステム500の場合の算出されたブロックコピー時間は、図2に示すメモリシステム200の場合の39ミリ秒に比較して、わずか29ミリ秒になるはずである。
【０１２０】
メモリシステム500の本例の状況において、メインコントローラ40は、メモリデバイス400のCKI入力への相互接続404上にクロック信号CKOを出力する。メモリデバイス400は、受信クロックを調整し、メモリデバイス401への相互接続404-1上に出力クロック信号CKOを生じるための外部調整フェーズロックループモジュールを含む。メモリデバイス401は、受信クロック信号を調整し、メモリデバイス402への相互接続404-2上に出力クロック信号CKOを生じるための外部調整フェーズロックループモジュールを含む。メモリデバイス402は、受信クロックを調整し、メモリデバイス403への相互接続404-3上に出力クロック信号CKOを生じるための外部調整フェーズロックループモジュールを含む。メモリデバイス403は、受信クロックを調整し、コントローラ40への相互接続404-4上に出力クロック信号CKOを生じるための外部調整フェーズロックループモジュールを含む。
【０１２１】
図6Aは、本発明の実施形態に係る、ソースメモリデバイスから多数のターゲットメモリデバイスそれぞれへのデータの分散をサポートするメモリシステム600の図である。
【０１２２】
このブロックコピー方法において、ターゲットは、多数のメモリデバイスを含む。上述したのと同じように、コントローラ50によってメモリデバイスに向かって発行されるコマンドに基づいて、ソースメモリデバイスにある第1の情報ページが第1のターゲットメモリデバイスにコピーされ、ソースメモリデバイスにある第2の情報ページが第2のターゲットメモリデバイスにコピーされ、ソースメモリデバイスにある第3の情報ページが第3のターゲットメモリデバイスにコピーされ、以下同様に続く。分散ブロックコピーを行うために、コントローラ50は、メモリデバイスそれぞれと通信して、データ部分の分散を、異なるメモリデバイス中の特定の場所に正確に調節する。したがって、ブロックコピーは、デイジーチェーン中の、ソースメモリデバイスから多数のターゲットメモリデバイスそれぞれへのデータの転送を含み得る。
【０１２３】
一実施形態では、ブロック中のページは、連続情報ページである。コントローラ50は、データブロックの第1のページ(たとえば、ページ0)の、メモリデバイス501への、データブロックの第2のページ(たとえば、ページ1)の、メモリデバイス502へのコピーを開始し、以下同様に続ける。
【０１２４】
このような実施形態によると、1つのメモリデバイスから多数のメモリデバイスにブロックをコピーするのに要する時間は、ソースメモリデバイスから単一ターゲットメモリデバイスにデータブロックをコピーするのに要する時間より実質的に少なくなり得る。たとえば、コントローラ50が、図2、5に示すブロックコピーを完了するのに要する時間より実質的に少ない3.8ミリ秒で分散型ブロックコピー操作を完了し得ることが可能である。
【０１２５】
図6Bは、本発明の実施形態に係る、単一メモリデバイスから多数のメモリデバイスへのデータのコピーを示すフローチャート例699である。
【０１２６】
ステップ900で、ターゲットメモリデバイス501などの第1のターゲットアドレス向けに、コントローラ50は、所与のターゲットデバイスのバイパス機能を可能にするために、「書込み構成レジスタ」コマンドおよび「書込みデータパケット」コマンドを発行する。この発行は、ブロードキャストコマンドを送ることにより遂行することができる。
【０１２７】
ステップ901で、メモリコントローラ50は、所与のソースメモリデバイス(たとえば、メモリデバイス500)に「ページ読込み」コマンドパケットを発行する。
【０１２８】
ステップ902で、メモリコントローラ50は、ターゲットメモリデバイスに「バーストデータロード開始」コマンドパケットを発行する。
【０１２９】
ステップ903で、メモリコントローラ50は、ソースデバイス(たとえば、メモリデバイス500)に「バーストデータ読込み」コマンドパケットを発行する。
【０１３０】
ステップ904で、メモリコントローラ50は次いで、メモリデバイス500から所与のターゲットデバイスに転送されるページの長さ(たとえば、8キロバイト)だけDSIをアサートする。データ転送の長さは、単一ビットから多数のバイトまで、任意のビット数の情報でよいことに再度留意されたい。
【０１３１】
ステップ905で、DSI信号のアサーションまたは活性化に基づいて、メモリデバイス500は、「読込みデータパケット」の送信を開始して、メモリデバイス500のページバッファ中のデータをターゲットメモリデバイス(たとえば、メモリデバイス501)のページバッファに転送する。
【０１３２】
ステップ906で、ターゲットメモリデバイスは、「読込みデータパケット」を「書込みデータパケット」として受信し、ページバッファに書き込むと同時に、継続「読込みデータパケット」としてバイパスさせる。
【０１３３】
ステップ907で、メモリコントローラ50は、メモリデバイス500からターゲットメモリデバイスへのデイジーチェーン上でのデータ受渡しにECC(エラー訂正コード)操作を適用する。
【０１３４】
ステップ908で、コントローラ50は、ソースメモリデバイスからターゲットメモリデバイスに転送されるデータにエラーがあるかどうか検査する。ECC操作が、転送データ中にエラーの存在を検出した場合、フローは、ステップ709で継続する。
【０１３５】
ステップ909で、コントローラ50は、ターゲットデバイスにバーストデータロードコマンドを発行することによって、コントローラ50からデータを受信するようにターゲットメモリデバイスを構成する。
【０１３６】
ステップ910で、コントローラ50は、(たとえば、コントローラ50内のECC機能からの)修正済みデータを、デイジーチェーンリンクを介してターゲットメモリデバイスのページバッファに送る。したがって、コントローラ50は、ページバッファ中のデータを修正する。
【０１３７】
ステップ908で、ECC操作を完了し、ターゲットメモリデバイスのページバッファに格納されたデータにエラーは最初からなかった、またはなくなったとみなした後、フローは、ステップ911で継続する。
【０１３８】
ステップ911で、メモリコントローラ50は、ターゲットメモリデバイスに「ページプログラム」コマンドパケットを発行する。コマンドの受信に応答して、ターゲットメモリデバイスは、ページバッファ中のデータを、選択されたメモリページ場所に書き込み始める。
【０１３９】
ステップ912で、コントローラ50は、ソースメモリデバイスから他のターゲットメモリデバイスにコピーされるべき追加データページがあるかどうか検査する。ある場合、メモリコントローラ50は、コピーされるべき各追加ページに対するステップ901〜912の繰返しを伴うステップ913を実行する。このようにして、コントローラ50は、ソースメモリデバイスから連続ターゲットメモリデバイスへのページの連続コピーを開始することができる。コピーされるべきページの数は、任意の値でよい。この例では、メモリデバイス500から128個のターゲットメモリデバイスにコピーされる128ページのデータがある。
【０１４０】
コントローラ50が、コピーされるべき追加ページがないことを検出した場合、コントローラ50は、ステップ714に進む。
【０１４１】
図7は、本発明の実施形態に係る、コマンドおよびアドレスパケットの発行中の、それぞれのメモリデバイスにおける信号(たとえば、クロック、DSI、DSO、CSI、CSO、Dn、Qn)のズームイン図を示すタイミング例である。「コマンドおよびアドレスパケット」は、デバイスアドレス(DA)、コマンド(CMD)、および/またはアドレス(ADDR)情報を含むことに留意されたい。上で論じたように、メモリデバイスは、この情報をデコードして、コマンドが受信側メモリデバイスによって実行されるべきであるかどうか識別する。以下のTable 2(表2)は、コマンドおよびアドレスパケットに関連づけられたビット定義例である。
【０１４２】
【表２】
2010537326.tif 000004
【０１４３】
図8は、本発明の実施形態に係る、書込みデータパケットの発行中の、メモリデバイスにおける信号(たとえば、クロック、DSI、DSO、CSI、CSO、Dn、Qn)のズームイン図を示すタイミング図例である。この例におけるそれぞれのメモリデバイスは、電力節約のために非通過モード(たとえば、バイパスモード不可)にセットされることに留意されたい。したがって、データパケットは、デイジーチェーン式データリンク上を通過しない。
【０１４４】
図9は、本発明の実施形態に係る、書込みデータパケットの発行中の、メモリデバイスにおける信号(たとえば、クロック、DSI、DSO、CSI、CSO、Dn、Qn)のズームイン図を示すタイミング図例である。それぞれのメモリデバイスは、通過モード(たとえば、バイパスモード可能)にセットされ、そうすることによってそれぞれのメモリデバイスによって受信されるデータパケットは、データリンクを下って、連続メモリデバイスやコントローラなどの移動先に「渡る」ことに留意されたい。したがって、データパケットは、実際にデイジーチェーン式データリンクを(少なくともそれぞれのメモリデバイスに対して)下っていく。
【０１４５】
図10は、本発明の実施形態に係る、読込みデータリクエストの発行中の、メモリデバイスにおける信号(たとえば、クロック、DSI、DSO、CSI、CSO、Dn、Qn)のズームイン図を示すタイミング図例である。図示するように、それぞれのメモリデバイスが、DSIにより読込みモードに置かれると、メモリデバイスは、連続メモリデバイスへのデータの出力を開始する。
【０１４６】
上の図7〜10の考察に関連した追加情報は、2007年7月18日に出願した「MEMORY WITH DATA CONTROL」という名称の関連米国一般特許出願第11/779,587号に見られ得ることに留意されたい。
【０１４７】
図11は、本発明の実施形態に係る、アクセス制御モジュール140(たとえば、アクセス制御アプリケーション140-1および/またはアクセス制御プロセス140-2)を実装するそれぞれのコントローラ102のアーキテクチャ例のブロック図である。一実施形態では、アクセス制御アプリケーション140-1は、本明細書に記載するコピー操作を行うための、コントローラ102によって実行される一連の命令でよい。一実施形態では、アクセス制御プロセス140-2は、アクセス制御アプリケーション140-1を実行した結果としてコントローラ102によって提供される方法および/または機能性を表す。
【０１４８】
コントローラ102は、本明細書に記載する制御操作を行うための命令を実行する、デジタル信号プロセッサ、コンピュータなどのコンピュータ制御デバイスでよい。
【０１４９】
以下の説明では、アクセス制御モジュール140に関連づけられた機能性をどのようにして行うかを示す基本実施形態を挙げることに留意されたい。アクセス制御モジュール140を実施する実際の構成は、それぞれのアプリケーションに依存して変わり得ることに留意されたい。たとえば、コントローラ102および対応する機能性は、ハードウェア単独により、ソフトウェアとして、またはハードウェアおよびソフトウェアの組合せとして実装することができる。
【０１５０】
図示した実施形態例では、本例のコントローラ102は、メモリシステム1112をプロセッサ1113に結合する相互接続111を含む。通信インタフェース1131は、メモリデバイス110に対してブロックコピー操作を実施するためのリクエストなどの入力をコントローラ102が受信することを可能にする。
【０１５１】
図示するように、メモリシステム1112は、上述し、さらに後で論じるアクセス制御をサポートするアクセス制御アプリケーション140-1を有してエンコードされる。アクセス制御アプリケーション140-1は、本明細書に記載した異なる実施形態に係る処理機能性をサポートする、データおよび/または論理命令(たとえば、メモリ内またはディスクなどの別のコンピュータ可読媒体上に格納されたコード)などのソフトウェアコードとして実施することができる。一実施形態の動作中、プロセッサ1113は、アクセス制御アプリケーション140-1の論理命令を起動し、稼動し、実行し、翻訳し、あるいは実施するために、相互接続111の使用によりメモリシステム1112にアクセスする。アクセス制御アプリケーション140-1の実行により、アクセス制御プロセス140-2に処理機能性がもたらされる。言い換えると、アクセス制御プロセス140-2は、コントローラ102内のプロセッサ1113の内部または上で働くアクセス制御モジュール140の1つまたは複数の部分を表す。
【０１５２】
本明細書において論じた方法操作を行うアクセス制御プロセス140-2に加えて、本発明の他の実施形態は、アクセス制御アプリケーション140-1自体(すなわち、非実行型または非実施型の論理命令および/またはデータ)を含むことに留意されたい。アクセス制御アプリケーション140-1は、フロッピー（登録商標）ディスク、ハードディスクなどのコンピュータ可読媒体(たとえば、リポジトリ)上にも、光メディア内にもに格納することができる。他の実施形態によると、アクセス制御アプリケーション140-1は、ファームウェア、読出し専用メモリ(ROM)内に、またはこの例でのように、実行可能コードとしてメモリシステム1112内(たとえば、ランダムアクセスメモリすなわちRAM内)など、メモリタイプシステム内に格納することもできる。
【０１５３】
こうした実施形態に加えて、本発明の他の実施形態は、アクセス制御プロセス140-2としての、プロセッサ1113内でのアクセス制御アプリケーション140-1の実行を含むことにも留意されたい。したがって、コントローラ102は、ハードウェア資源の割振りおよび使用を制御するオペレーティングシステムなど、他のプロセスならびに/またはソフトウェアおよびハードウェア構成要素を含み得ることが、当業者には理解されよう。
【０１５４】
次に、アクセス制御モジュール140によってサポートされる機能性について、図12のフローチャートにより論じる。
【０１５５】
図12は、本発明の実施形態に係るブロックコピー操作を示すフローチャート例1200の図である。図12のフローチャート1200のステップの参照に加え、図1のメモリシステム100に対する参照を行う。
【０１５６】
ステップ1210で、コントローラ102は、デイジーチェーン制御リンク150を介して通信して、多数のデイジーチェーン式メモリデバイスのうち第1のメモリデバイス(たとえば、図1Bのメモリデバイス110-1)を、第1のメモリデバイスに格納されたデータを出力するソースとなるように構成する。
【０１５７】
本例の代替として、コントローラ102は、メモリデバイス110-Mをソースメモリデバイスとなるように、およびメモリデバイス110-1をターゲットメモリデバイスとなるように選んでよいことに留意されたい。このような実施形態において、データは、コントローラ102を通ってターゲットに転送されることになる。
【０１５８】
メモリデバイス110-1がソースであり、メモリデバイス110-Mがターゲットである本例を再度参照すると、ステップ1215で、コントローラ102は、デイジーチェーン制御リンク150と通信して、多数のメモリデバイス110のうち第2のメモリデバイス(たとえば、図1Bのメモリデバイス110-M)を、データを受信する移動先となるように構成する。
【０１５９】
ステップ1220で、コントローラ102は、制御リンク150を介して通信して、デイジーチェーン方式の多数の連続メモリデバイス110を通る、データリンク160上でのデータの受渡しを可能にする。たとえば、コントローラ102は、ソースメモリデバイスとターゲットメモリデバイスとの間の中間メモリデバイス110を通過モードにセットし、そうすることによって、メモリデバイス110-1からのデータは、データリンク160上でターゲットデバイスに送信することができる。メモリデバイス110-Mも、通過モードにセットすることができ、そうすることによってコントローラ102は、ソースメモリデバイスからターゲットメモリデバイスに転送されるデータを監視することができる。
【０１６０】
ステップ1225で、コントローラ102は、デイジーチェーン制御リンク150を介して通信して、ソースメモリデバイス110-1からターゲットメモリデバイス110-Mへのデータの転送を開始する。
【０１６１】
ステップ1230で、コントローラ102は、データリンクを監視して、ソースメモリデバイス110-1からターゲットメモリデバイス110-Mまで、多数の連続メモリデバイス110を通過したデータを受信する。
【０１６２】
ステップ1235で、コントローラ102は、受信データにエラー訂正機能を適用して、第1のメモリデバイスから第2のメモリデバイスに転送されるデータに関連エラーがあるかどうか識別する。
【０１６３】
ステップ1240で、エラー訂正機能の適用に基づく、受信データに関するエラーの検出に応答して、コントローラ102は、コアメモリへのデータの書込みに先立って、第2のメモリデバイスのバッファ中のデータの修正を開始する。
【０１６４】
ステップ1245で、バッファ中のデータを訂正した後、コントローラ102は、ターゲットメモリデバイス110-Mと通信して、それぞれのページバッファ中のデータを、ターゲットメモリデバイス110-Mに関連づけられたコアメモリの指定された記憶場所に書き込む。
【０１６５】
記載した実施形態の何らかの適合および修正を行うことができる。したがって、論じた上記実施形態は、例示的なものとみなされ、制約的なものではない。
【符号の説明】
【０１６６】
30  コントローラ
31  ECC&バッファメモリブロック
40  コントローラ
50  コントローラ
100  メモリシステム
102  コントローラ
109  エラー検査モジュール
110  メモリデバイス
115  コアメモリ
118  バッファ
125  制御/データ処理(C.A.D.P.)回路
140  アクセス制御モジュール
150  制御リンク
151  通信経路
160  データリンク
162  デイジーチェーン通信リンク
200  メモリシステム
205  基板
300  メモリデバイス
301  メモリデバイス
302  メモリデバイス
303  メモリデバイス
304  メインクロック信号
321  経路
323  デイジーチェーン式データリンク経路
324  経路
325  経路
400  メモリデバイス
401  メモリデバイス
402  メモリデバイス
403  メモリデバイス
500  メモリデバイス
501  メモリデバイス
502  メモリデバイス
510  同期装置回路
600  メモリシステム
601  同形データパケット
602  同形データパケット
606  書込みデータパケット
1112  メモリシステム
1113  プロセッサ
1131  通信インタフェース
【図１Ａ】
2010537326.tif 000005
【図１Ｂ】
2010537326.tif 000006
【図２】
2010537326.tif 000007
【図３Ａ】
2010537326.tif 000008
【図３Ｂ】
2010537326.tif 000009
【図４】
2010537326.tif 000010
【図５】
2010537326.tif 000011
【図６Ａ】
2010537326.tif 000012
【図６Ｂ】
2010537326.tif 000013
【図７】
2010537326.tif 000014
【図８】
2010537326.tif 000015
【図９】
2010537326.tif 000016
【図１０】
2010537326.tif 000017
【図１１】
2010537326.tif 000018
【図１２】
2010537326.tif 000019
【国際調査報告】
2010537326.tif 000020
2010537326.tif 000021