(57)【要約】【課題】メモリコントローラと不揮発性メモリとの間のデータ送信に伴う消費電力を低減するメモリシステムを提供することである。【解決手段】実施形態に係るメモリシステムは、不揮発性メモリを具備する。さらに、第１のビット長と第１のトグル回数とを有する第１のデータを、第１のビット長よりも長い第２のビット長と第１のトグル回数より少ない第２のトグル回数とを有する第２のデータに符号化する第１のトグルエンコーダを有し、第２のデータを不揮発性メモリに送信するコントローラを具備する。【選択図】図３
2020198577.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
第１のビット長と第１のトグル回数とを有する第１のデータを、前記第１のビット長よりも長い第２のビット長と前記第１のトグル回数より少ない第２のトグル回数とを有する第２のデータに符号化する第１のトグルエンコーダを有し、
前記第２のデータを前記不揮発性メモリに送信するコントローラと、を具備する、
メモリシステム。
【請求項２】
前記コントローラは、前記不揮発性メモリに前記第２のデータを取り込むタイミングを指示する第１の同期信号を、前記不揮発性メモリへと送信する請求項１に記載のメモリシステム。
【請求項３】
前記第１の同期信号が送信される回数は、前記第２のビット長と対応する請求項２に記載のメモリシステム。
【請求項４】
前記第２のデータを前記第１のデータに復号する第１のトグルデコーダをさらに具備する請求項１に記載のメモリシステム。
【請求項５】
前記不揮発性メモリは、前記第１のトグルデコーダを有する請求項４に記載のメモリシステム。
【請求項６】
前記第１のトグルデコーダを有するインタフェースチップをさらに具備する請求項４に記載のメモリシステム。
【請求項７】
第３のビット長と第３のトグル回数を有する第３のデータを、前記第３のビット長よりも長い第４のビット長と前記第３のトグル回数より少ない第４のトグル回数とを有する第４のデータに符号化する第２のトグルエンコーダを、さらに具備する請求項１に記載のメモリシステム。
【請求項８】
前記第２のトグルエンコーダを有するインタフェースチップをさらに具備する請求項７に記載のメモリシステム。
【請求項９】
前記不揮発性メモリは、前記コントローラに前記第４のデータを取り込むタイミングを指示する第２の同期信号を、前記コントローラへと送信する請求項７に記載のメモリシステム。
【請求項１０】
前記第２の同期信号が送信される回数は、前記第４のビット長と対応する請求項９に記載のメモリシステム。
【請求項１１】
前記コントローラは、前記第４のデータを出力することを前記不揮発性メモリに指示する指示信号を、前記不揮発性メモリへと送信する請求項７に記載のメモリシステム。
【請求項１２】
前記指示信号が送信される回数は、前記第４のビット長と対応する請求項１１に記載のメモリシステム。
【請求項１３】
前記不揮発性メモリは、前記コントローラに前記第４のデータを取り込むタイミングを指示する第２の同期信号を、前記指示信号に応じて生成する請求項１１に記載のメモリシステム。
【請求項１４】
前記コントローラは、前記第４のデータを前記第３のデータに復号する第２のトグルデコーダを有する請求項７に記載のメモリシステム。
【請求項１５】
前記第２のデータをランダマイズして前記第２のビット長を有する第５のデータを生成するランダマイザをさらに具備する請求項１に記載のメモリシステム。
【請求項１６】
前記不揮発性メモリは、メモリセルアレイと前記ランダマイザを有し、前記第５のデータを前記メモリセルアレイに書き込む請求項１５に記載のメモリシステム。
【請求項１７】
不揮発性メモリと、
第１のビット長を有し、かつ、第１の平均トグル回数を有する第１のデータ群に属する第１のデータを、前記第１のビット長よりも長い第２のビット長を有し、かつ、前記第１の平均トグル回数より少ない第２の平均トグル回数を有する第２のデータ群に属する第２のデータに符号化する第１のトグルエンコーダを有し、
前記第２のデータを前記不揮発性メモリに送信するコントローラと、を具備する、
メモリシステム。
【請求項１８】
コントローラと、
メモリセルアレイから読み出された第１のビット長と第１のトグル回数とを有する第１のデータを、前記第１のビット長よりも長い第２のビット長と前記第１のトグル回数より少ない第２のトグル回数とを有する第２のデータに符号化する第１のトグルエンコーダを有し、
前記第２のデータを前記コントローラに送信する不揮発性メモリと、を具備する、
メモリシステム。
【請求項１９】
前記不揮発性メモリは、前記コントローラに前記第２のデータを取り込むタイミングを指示する前記第２のビット長と対応する数の第１の同期信号を、前記コントローラへと送信する請求項１８に記載のメモリシステム。
【請求項２０】
前記コントローラは、前記第２のデータを出力することを前記不揮発性メモリに指示する前記第２のビット長と対応する数の指示信号を、前記不揮発性メモリに送信し、
前記不揮発性メモリは、前記指示信号に応じて前記第１の同期信号を生成する、
請求項１９に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリのような不揮発性メモリと、メモリコントローラと、を備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１３７８３４号公報
【特許文献２】米国特許出願公開第２０１４／０１６９０９２号明細書
【特許文献３】米国特許出願公開第２０１６／０３２２９９０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、メモリコントローラと不揮発性メモリとの間のデータ送信に伴う消費電力を低減するメモリシステムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態に係るメモリシステムは、不揮発性メモリを具備する。さらに、第１のビット長と第１のトグル回数とを有する第１のデータを、第１のビット長よりも長い第２のビット長と第１のトグル回数より少ない第２のトグル回数とを有する第２のデータに符号化する第１のトグルエンコーダを有し、第２のデータを不揮発性メモリに送信するコントローラを具備する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係るホスト装置に接続されたメモリシステムの全体構成例を示すブロック図である。
【図２】第１の実施形態に係るメモリシステムのメモリコントローラおよびメモリチップの構成例を示すブロック図である。
【図３】第１の実施形態に係るメモリシステムの第１のトグルエンコーダによる第１のデータから第２のデータへの符号化の一例を示すブロック図である。
【図４】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の一例である。
【図５−Ａ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｂ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｃ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｄ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｅ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｆ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｇ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図５−Ｈ】第１の実施形態に係るメモリシステムの第１のデータから第２のデータへの変換表の別の一例である。
【図６】第１の実施形態に係るメモリシステムの第１のトグルデコーダによる第２のデータから第１のデータへの復号の一例を示すブロック図である。
【図７】第１の実施形態に係るメモリシステムの第２のトグルエンコーダによる第３のデータから第４のデータへの符号化の一例を示すブロック図である。
【図８】第１の実施形態に係るメモリシステムの第２のトグルデコーダによる第４のデータから第３のデータへの復号の一例を示すブロック図である。
【図９】第１の実施形態に係るメモリシステムの書き込み動作時の符号化を説明するタイミングチャートの一例である。
【図１０】第１の実施形態に係るメモリシステムの書き込み動作時の復号を説明するタイミングチャートの一例である。
【図１１】第１の実施形態に係るメモリシステムの読み出し動作時の符号化を説明するタイミングチャートの一例である。
【図１２】第１の実施形態に係るメモリシステムの読み出し動作時の復号を説明するタイミングチャートの一例である。
【図１３】第２の実施形態に係るメモリシステムのメモリコントローラおよびメモリチップの構成例を示すブロック図である。
【図１４】第３の実施形態に係るメモリシステムのメモリコントローラ、インタフェースチップおよびメモリチップの構成例を示すブロック図である。
【図１５−Ａ】第３の実施形態に係るメモリシステムのメモリコントローラ、インタフェースチップおよびメモリチップが同一のパッケージに実装される構成例を示すブロック図である。
【図１５−Ｂ】第３の実施形態に係るメモリシステムのインタフェースチップが、メモリコントローラが実装された第１パッケージとは独立した別の第２パッケージに、メモリチップとともに実装される構成例を示すブロック図である。
【図１５−Ｃ】第３の実施形態に係るメモリシステムのメモリコントローラ、インタフェースチップおよびメモリチップがいずれも別のパッケージに実装される構成例を示すブロック図である。
【図１６−Ａ】第３の実施形態に係るメモリシステムのメモリコントローラパッケージ、インタフェースパッケージおよびメモリパッケージが同一のプリント基板に実装される構成例を示すブロック図である。
【図１６−Ｂ】第３の実施形態に係るメモリシステムのインタフェースパッケージが、メモリコントローラパッケージが実装された第１プリント基板とは独立した別の第２プリント基板に、メモリパッケージとともに実装される構成例を示すブロック図である。
【図１７】第４の実施形態に係るメモリシステムの、ランダマイザを有するメモリコントローラ、およびメモリチップの構成例を示すブロック図である。
【図１８】第５の実施形態に係るメモリシステムのメモリコントローラおよびランダマイザを有するメモリチップの構成例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能および構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。
【０００８】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【０００９】
（第１の実施形態）
図１は、本実施形態に係るホスト装置に接続されたメモリシステム１０００の全体構成例を示すブロック図である。図１に示すように、メモリシステム１０００は、メモリコントローラ１００と不揮発性メモリ２００とがメモリバス３００で接続された構成を備える。メモリシステム１０００は、ホスト装置１５００と通信インタフェース３２０で接続され、ホスト装置１５００の外部記憶装置として機能する。
【００１０】
メモリシステム１０００は、メモリコントローラ１００と不揮発性メモリ２００が１つのパッケージとして構成されるメモリカードであってもよいし、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）であってもよい。
【００１１】
ホスト装置１５００は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
【００１２】
通信インタフェース３２０は、メモリシステム１０００とホスト装置１５００とを接続する。通信インタフェース３２０は、例えば、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）（登録商標）、ＮＶＭｅ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）（登録商標）に準拠する。
【００１３】
メモリコントローラ１００は、ホスト装置１５００からの要求に応じて不揮発性メモリ２００に対するデータの書き込み／読み出しを制御する。本実施形態において、要求とは、例えば、命令、コマンドである。メモリコントローラはコントローラとも称される。メモリコントローラ１００は、例えば、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）として構成される半導体集積回路である。以下で説明するメモリコントローラ１００の各構成要素の機能の一部又は全部は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がファームウェアを実行することによって実現されてもよいし、ハードウェアで実現されてもよい。
【００１４】
不揮発性メモリ２００は、データを不揮発に記憶できる半導体メモリである。不揮発性メモリ２００は、例えば、ＮＡＮＤ型フラッシュメモリである。ＮＡＮＤ型フラッシュメモリでは、ページ単位でデータの書き込みおよび読み出しが実行される。また、ＮＡＮＤ型フラッシュメモリでは、ブロック単位でデータの消去が実行される。ＮＡＮＤ型フラッシュメモリを不揮発性メモリ２００に用いた場合、そのメモリセルは、１ビットの記憶が可能なシングルレベルセルであってもよいし、２ビット以上の記憶が可能なマルチレベルセルであってもよい。
【００１５】
不揮発性メモリ２００は、例えば、互いに独立して動作可能な複数個のメモリチップ＃１  ２１０−１、メモリチップ＃２  ２１０−２、・・・、メモリチップ＃Ｎ  ２１０−Ｎを備えてもよい。なお、Ｎは任意の自然数である。
【００１６】
以下の説明において、複数のメモリチップ＃１  ２１０−１、メモリチップ＃２  ２１０−２、・・・、メモリチップ＃Ｎ  ２１０−Ｎのうち１つを特定する必要がある場合は符号２１０−１、２１０−２、・・・、２１０−Ｎを使用するが、任意のメモリチップを指す場合や、あるメモリチップを他のメモリチップと区別しない場合は、符号２１０を使用する。
【００１７】
なお、本実施形態においては、不揮発性メモリ２００としてＮＡＮＤ型フラッシュメモリを用いる例を説明するが、不揮発性メモリ２００として３次元構造フラッシュメモリ、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のＮＡＮＤ型フラッシュメモリ以外の記憶手段を用いてもよい。また、本実施形態においては、不揮発性メモリ２００として半導体メモリを用いる例を説明するが、半導体メモリ以外の記憶手段を用いてもよい。
【００１８】
図２は、本実施形態に係るメモリシステム１０００のメモリコントローラ１００およびメモリチップ２１０の構成例を示すブロック図である。
【００１９】
メモリコントローラ１００の各構成について説明する。図２に示すように、メモリコントローラ１００は、ＣＰＵ１１０と、ホストインタフェース（ホストＩ／Ｆ）１２０と、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）部１３０と、第１のバッファメモリ１４０と、メモリインタフェース（メモリＩ／Ｆ）１５０と、第１のトグルエンコーダ４００と、第２のトグルデコーダ４６０とが内部バス１６０を介して相互に接続された構成を備える。
本実施形態においては、メモリコントローラ１００が、第１のトグルエンコーダ４００と、第２のトグルデコーダ４６０とを有する場合について説明するが、第１のトグルエンコーダ４００と第２のトグルデコーダ４６０のうち片方がメモリコントローラ１００の外部、他方がメモリコントローラ１００の内部に存在していてもよいし、どちらもメモリコントローラ１００の外部に存在していてもよい。
【００２０】
ＣＰＵ１１０は、メモリシステム１０００の各構成要素を統括的に制御する。ＣＰＵ１１０は、メモリシステム１０００の起動時に、図示しないＲＯＭに格納されているファームウェア（制御プログラム）を第１のバッファメモリ１４０またはＣＰＵ１１０内の図示しないＲＡＭ上に読み出す。その後、ＣＰＵ１１０がファームウェアを実行することにより、各機能が実現される。
【００２１】
ＣＰＵ１１０は、ホスト装置１５００からホストインタフェース１２０経由で要求を受け付けると、その要求に従ってメモリコントローラ１００の各部を制御する。例えば、ＣＰＵ１１０は、ホスト装置１５００からの書き込み要求に従い、不揮発性メモリ２００へのデータの書き込みをメモリインタフェース１５０へ指示する。また、ＣＰＵ１１０は、ホスト装置１５００からの読み出し要求に従い、不揮発性メモリ２００からのデータの読み出しをメモリインタフェース１５０へ指示する。
【００２２】
また、ＣＰＵ１１０は、ホスト装置１５００から書き込み要求を受信した場合、書き込み要求で指定されたデータを第１のバッファメモリ１４０に保存し、このデータに対する不揮発性メモリ２００上の格納領域を決定する。すなわち、ＣＰＵ１１０は、データの書き込み先を決定し、管理する。ホスト装置１５００から受信したデータの論理アドレスと当該データが格納される不揮発性メモリ２００上の格納領域を示す物理アドレスとの対応関係はアドレス変換テーブルとして、例えば、第１のバッファメモリ１４０に格納される。
【００２３】
また、ＣＰＵ１１０は、ホスト装置１５００から読み出し要求を受信した場合、読み出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて不揮発性メモリ２００の物理アドレスに変換し、該物理アドレスからのデータの読み出しをメモリインタフェース１５０へ指示する。これにより不揮発性メモリ２００から読み出されたデータは、一時的に第１のバッファメモリ１４０に格納された後、ホストインタフェース１２０を介してホスト装置１５００へ送信される。
【００２４】
ホストインタフェース１２０は、ホスト装置１５００から受信した要求や書き込みデータなどを内部バス１６０に出力し、第１のバッファメモリ１４０に格納する。また、ホストインタフェース１２０は、不揮発性メモリ２００から読み出され、第１のバッファメモリ１４０に格納された読み出しデータや、ＣＰＵ１１０からの応答などをホスト装置１５００へ送信する。
【００２５】
ＥＣＣ部１３０は、例えば、誤り訂正機能を備えた符号化／復号回路であり、不揮発性メモリ２００へ書き込むデータをＢＣＨ（Ｂｏｓｅ  Ｃｈａｕｄｈｕｒｉ  Ｈｏｃｑｕｅｎｇｈｅｍ）符号などの誤り訂正符号で符号化する。また、不揮発性メモリ２００から読み出されたデータ中のエラーを訂正する。
【００２６】
ホストインタフェース１２０がホスト装置１５００から書き込みデータとして受信したデータは、一時的に第１のバッファメモリ１４０に格納される。ＣＰＵ１１０は、第１のバッファメモリ１４０に格納されたデータに対して不揮発性メモリ２００の格納領域を決定し、この決定された格納領域内にデータを書き込むことをメモリインタフェース１５０に指示する。
【００２７】
第１のバッファメモリ１４０には、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性メモリを用いることができる。また、第１のバッファメモリ１４０は、メモリコントローラ１００の内部に実装されてもよく、メモリコントローラ１００の外部に実装されてもよい。
【００２８】
メモリインタフェース１５０は、ＣＰＵ１１０からの指示に基づいて、不揮発性メモリ２００へデータ等を書き込む処理および不揮発性メモリ２００からデータ等を読み出す処理を制御する。
【００２９】
メモリインタフェース１５０は、ＣＰＵ１１０からの指示に基づいて、第１のバッファメモリ１４０から受け取った書き込みデータ等を第１のトグルエンコーダ４００を経由して不揮発性メモリ２００へ送信する。また、不揮発性メモリ２００から受け取った読み出しデータ等を第２のトグルデコーダ４６０を経由して第１のバッファメモリ１４０へ送信する。
【００３０】
内部バス１６０は、ＣＰＵ１１０、ホストインタフェース１２０、ＥＣＣ部１３０、第１のバッファメモリ１４０、メモリインタフェース１５０、第１のトグルエンコーダ４００および第２のトグルデコーダ４６０を接続している通信線である。
【００３１】
第１のトグルエンコーダ４００および第２のトグルデコーダ４６０の詳細については、後に説明する。
【００３２】
次に、メモリチップ２１０の構成について説明する。メモリチップ２１０は、例えば、ＮＡＮＤ型フラッシュメモリチップである。
【００３３】
図２に示されるように、メモリチップ２１０は、入出力回路２２０、周辺回路２４０、メモリセルアレイ２６０を含む。
【００３４】
入出力回路２２０は、メモリバス３００を介して、メモリコントローラ１００のメモリインタフェース１５０と接続されている。入出力回路２２０は、メモリバス３００を介して、メモリコントローラ１００から複数の制御信号を受け取り、受け取った制御信号に基づいて、種々の内部制御信号を周辺回路２４０に供給する。
【００３５】
入出力回路２２０は、メモリコントローラ１００から書き込みデータを受け取り、受け取った書き込みデータを周辺回路２４０に供給する。また、入出力回路２２０は、メモリセルアレイ２６０のセルトランジスタに格納されていたデータを周辺回路２４０から受け取り、メモリバス３００を介してメモリコントローラ１００に供給する。
【００３６】
周辺回路２４０は、第１のトグルデコーダ４２０、第２のトグルエンコーダ４４０、図示しないシーケンサ、ドライバ、センスアンプ、ロウデコーダ等を含む。周辺回路２４０は、入出力回路２２０から種々の信号を受け取り、受け取った信号に基づいて、メモリセルアレイ２６０のセルトランジスタにデータを書き込む。また、周辺回路２４０は、メモリセルアレイ２６０のセルトランジスタに格納されているデータを読み出す。
周辺回路２４０は、入出力回路２２０から受け取った書き込みデータ等を第１のトグルデコーダ４２０を経由してメモリセルアレイ２６０へ書き込む。また、メモリセルアレイ２６０から受け取った読み出しデータ等を第２のトグルエンコーダ４４０を経由して入出力回路２２０へ送信する。
本実施形態においては、周辺回路２４０に第１のトグルデコーダ４２０、第２のトグルエンコーダ４４０が含まれている場合について説明するが、第１のトグルデコーダ４２０と第２のトグルエンコーダ４４０のうち片方が周辺回路２４０の外部、他方が周辺回路２４０の内部に存在していてもよいし、どちらも周辺回路２４０の外部に存在していてもよい。
【００３７】
第１のトグルデコーダ４２０および第２のトグルエンコーダ４４０の詳細については、後に説明する。
【００３８】
メモリセルアレイ２６０は、書き込み時に周辺回路２４０からデータを受け取り、受け取ったデータをセルトランジスタに格納する。また、メモリセルアレイ２６０は、読み出し時にセルトランジスタに格納されていたデータを周辺回路２４０に供給する。
【００３９】
図３は、本実施形態に係るメモリシステム１０００の第１のトグルエンコーダ４００による第１のデータ７００から第２のデータ７２０への符号化の一例を示すブロック図である。なお、第１のデータ７００から第２のデータ７２０への符号化は、第１のデータ７００から第２のデータ７２０への変換とも称する。
【００４０】
図３に示すように、第１のトグルエンコーダ４００は、第１のビット長と第１のトグル回数とを有する第１のデータ７００を、第１のビット長よりも長い第２のビット長と第１のトグル回数より少ない第２のトグル回数とを有する第２のデータ７２０に符号化する。なお、図４を参照して後述するように、第２のデータ７２０のトグル回数が、必ず第１のデータ７００のトグル回数以下となるように符号化してもよい。また、図５−Ａ〜図５−Ｈを参照して後述するように、複数の第２のデータ７２０のトグル回数の平均が、複数の第１のデータ７００のトグル回数の平均よりも少なくなるように符号化してもよい。第１のビット長は、例えば９ビットであり、第２のビット長は、例えば１０ビットである。
なお、後述する信号ＤＱの幅に応じた数の第１のデータ７００が、第１のトグルエンコーダ４００にて、第２のデータ７２０へと符号化される。図３においては、信号ＤＱが８ビットの幅を有し、これに対応して８個の第１のデータ７００が、第１のトグルエンコーダ４００＿０〜４００＿７にて、８個の第２のデータ７２０へと符号化される場合が例示されている。
本実施形態において、第１のトグルエンコーダ４００により符号化される第１のデータ７００は、メモリコントローラ１００からメモリチップ２１０への書き込みデータである。なお、第１のデータ７００は、メモリコントローラ１００からメモリチップ２１０へ送信されるコマンドやアドレスなどであってもよい。また、第１のデータ７００は、ホスト装置１５００から書き込みデータとして受信したデータだけではなく、ガベージコレクション、ウェアレベリング、リフレッシュ等の内部処理に使用するデータでもよい。
【００４１】
第１のトグルエンコーダ４００は、第１のバッファメモリ１４０から受け取った第１のデータ７００を一時的に格納する図示しない第２のバッファメモリを備える。第２のバッファメモリに格納された第１のデータ７００は、第１のトグルエンコーダ４００により第２のデータ７２０に符号化された後、メモリインタフェース１５０によりメモリチップ２１０へと送信される。第２のバッファメモリには、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やレジスタなどの揮発性メモリを用いることができる。
【００４２】
図４は、第１の実施形態に係るメモリシステム１０００の第１のデータ７００から第２のデータ７２０への変換表の一例である。
【００４３】
図４においては、第１のデータ７００が４ビットのビット長で、第２のデータ７２０が５ビットのビット長である場合について説明する。例えば図４のＡに示すように、第１のトグルエンコーダ４００は、図４の変換表を用いて、４ビットのビット長でトグル回数が１回のデータ「００１１」を、５ビットのビット長でトグル回数が１回のデータ「１１０００」に、符号化する。別の一例としては、図４のＢに示すように、４ビットのビット長でトグル回数が２回のデータ「０１００」は、５ビットのビット長でトグル回数が１回のデータ「１１１１０」に、符号化される。さらに別の一例としては、図４のＣに示すように、４ビットのビット長でトグル回数が３回のデータ「０１０１」は、５ビットのビット長でトグル回数が２回のデータ「１０００１」に、符号化される。その他の場合についても同様であるが、いずれの場合も第２のデータ７２０のトグル回数が、必ず第１のデータ７００のトグル回数以下となるように符号化が行われる。なお、第１のデータ７００が４ビットのビット長で、第２のデータ７２０が５ビットのビット長である場合以外においても、同様の変換が行われる。
【００４４】
図５‐Ａ〜図５‐Ｈは、第１の実施形態に係るメモリシステム１０００の第１のデータ７００から第２のデータ７２０への変換表の別の一例である。図５‐Ａ〜図５‐Ｈにおいては、それぞれが９ビットのビット長を有する複数の第１のデータ７００からなる第１のデータ群は１０進数、それぞれが１０ビットのビット長を有する複数の第２のデータ７２０からなる第２のデータ群は２進数で表記されている。
【００４５】
図５‐Ａ〜図５‐Ｈにおいては、１０ビットのビット長により表される１０２４個のデータ（コード）のうちトグル回数が少ない方から５１２個のデータのみが第２のデータ群として記載されている。１０ビットのビット長により表される１０２４個のデータのうち、トグル回数が少ない方から５１２個のデータを、第２のデータ７２０として採用している。これにより、第２のデータ群に含まれる５１２個の第２のデータ７２０各々のトグル回数の平均は、例えば３．８回になる。また、第１のデータ群に含まれる５１２個の９ビットのビット長の第１のデータ７００各々のトグル回数の平均は、例えば４．５回である。このように、第２のデータ群に含まれる第２のデータ７２０各々のトグル回数の平均は、第１のデータ群に含まれる第１のデータ７００各々のトグル回数の平均よりも少なくなっている。
なお、第１のデータ群に含まれているある特定の第１のデータ７００については、符号化によりトグル回数が多くなるものがあってもよいが、第２のデータ群のトグル回数の平均は、第１のデータ群のトグル回数の平均よりも少なくなっている。さらに、この時の符号化は、９ビットから１０ビットへの変換に限られず、例えば、９ビットから１１ビットへの変換でもよい。
【００４６】
なお、第２のトグルエンコーダ４４０においても、図４または図５‐Ａ〜図５‐Ｈの変換表を用いて、同様に符号化を行う。また、第１のトグルデコーダ４２０および第２のトグルデコーダ４６０においては、図４または図５‐Ａ〜図５‐Ｈの変換表を用いて、復号を行う。
【００４７】
図６は、本実施形態に係るメモリシステムの第１のトグルデコーダ４２０による第２のデータ７２０から第１のデータ７００への復号の一例を示すブロック図である。
【００４８】
図６に示すように、第１のトグルデコーダ４２０は、第１のトグルエンコーダ４００により符号化された第２のデータ７２０を元の第１のデータ７００に復号する。図２および図３に示すように、第１のデータ７００は、第１のトグルエンコーダ４００にて第２のデータ７２０に符号化された後、メモリコントローラ１００からメモリチップ２１０に送信される。次に、第２のデータ７２０は、第１のトグルデコーダ４２０により、元の第１のデータ７００に復号される。その後、復号された第１のデータ７００は、メモリセルアレイ２６０に書き込まれる。
なお、後述する信号ＤＱの幅に応じた数の第２のデータ７２０が、第１のトグルデコーダ４２０にて、第１のデータ７００へと復号される。図６においては、信号ＤＱが８ビットの幅を有し、これに対応して８個の第２のデータ７２０が、第１のトグルデコーダ４２０＿０〜４２０＿７にて、８個の第１のデータ７００へと復号される場合が例示されている。
【００４９】
第１のトグルデコーダ４２０は、入出力回路２２０から受け取った第２のデータ７２０を一時的に格納する図示しない第３のバッファメモリを備える。第３のバッファメモリに格納された第２のデータ７２０は、第１のトグルデコーダ４２０により第１のデータ７００に復号された後、周辺回路２４０によりメモリセルアレイ２６０に書き込まれる。第３のバッファメモリには、例えば、ＳＲＡＭやレジスタなどの揮発性メモリを用いることができる。
【００５０】
図７は、本実施形態に係るメモリシステム１０００の第２のトグルエンコーダ４４０による第３のデータ７４０から第４のデータ７６０への符号化の一例を示すブロック図である。
【００５１】
図７に示すように、第２のトグルエンコーダ４４０は、第３のビット長と第３のトグル回数とを有する第３のデータ７４０を、第３のビット長よりも長い第４のビット長と第３のトグル回数より少ない第４のトグル回数とを有する第４のデータ７６０に符号化する。なお、図４を参照して前述したように、第４のデータ７６０のトグル回数が、必ず第３のデータ７４０のトグル回数以下となるように符号化してもよい。また、図５−Ａ〜図５−Ｈを参照して前述したように、複数の第４のデータ７６０のトグル回数の平均が、複数の第３のデータ７４０のトグル回数の平均よりも少なくなるように符号化してもよい。第３のビット長は、例えば９ビットであり、第４のビット長は、例えば１０ビットである。
なお、後述する信号ＤＱの幅に応じた数の第３のデータ７４０が、第２のトグルエンコーダ４４０にて、第４のデータ７６０へと符号化される。図７においては、信号ＤＱが８ビットの幅を有し、これに対応して８個の第３のデータ７４０が、第２のトグルエンコーダ４４０＿０〜４４０＿７にて、８個の第４のデータ７６０へと符号化される場合が例示されている。
本実施形態において、第２のトグルエンコーダ４４０により符号化される第３のデータ７４０は、メモリセルアレイ２６０から読み出されたデータである。第３のデータ７４０は、ガベージコレクション、ウェアレベリング、リフレッシュ等の内部処理に使用するデータでもよい。なお、第３のデータ７４０は、メモリチップ２１０からメモリコントローラ１００に送信されるステータス等であってもよい。
なお、第３のデータ７４０は、第１のデータ７００とビット長が同じでも異なっていてもよい。また、第３のデータ７４０は、第１のデータ７００とトグル回数が同じでも異なっていてもよい。特に、第１のデータ７００をメモリセルアレイ２６０に書き込み、第１のデータ７００を第３のデータ７４０として正しく読み出せた場合は、第１のデータ７００と第３のデータ７４０のビット長とトグル回数が同じである。
また、第４のデータ７６０は、第２のデータ７２０とビット長が同じでも異なっていてもよい。また、第４のデータ７６０は、第２のデータ７２０とトグル回数が同じでも異なっていてもよい。特に、第１のデータ７００をメモリセルアレイ２６０に書き込み、第１のデータ７００を第３のデータ７４０として正しく読み出せた場合は、第２のデータ７２０と第４のデータ７６０のビット長とトグル回数が同じである。
【００５２】
第２のトグルエンコーダ４４０は、メモリセルアレイ２６０から受け取った第３のデータ７４０を一時的に格納する図示しない第４のバッファメモリを備える。第３のデータ７４０をメモリセルアレイ２６０から読み出すように要求するコマンドが、メモリコントローラ１００からメモリチップ２１０へと出力される。第４のバッファメモリに格納された第３のデータ７４０は、第２のトグルエンコーダ４４０により第４のデータ７６０に符号化された後、周辺回路２４０によりメモリコントローラ１００へと送信される。第４のバッファメモリには、例えば、ＳＲＡＭやレジスタなどの揮発性メモリを用いることができる。
【００５３】
図８は、本実施形態に係るメモリシステム１０００の第２のトグルデコーダ４６０による第４のデータ７６０から第３のデータ７４０への復号の一例を示すブロック図である。
【００５４】
図８に示すように、第２のトグルデコーダ４６０は、第２のトグルエンコーダ４４０により符号化された第４のデータ７６０を元の第３のデータ７４０に復号する。図２および図７に示すように、第３のデータ７４０は、第２のトグルエンコーダ４４０にて第４のデータ７６０に符号化された後、メモリチップ２１０からメモリコントローラ１００に送信される。次に、第４のデータ７６０は、第２のトグルデコーダ４６０により、元の第３のデータ７４０に復号される。
なお、後述する信号ＤＱの幅に応じた数の第４のデータ７６０が、第２のトグルデコーダ４６０にて、第３のデータ７４０へと復号される。図８においては、信号ＤＱが８ビットの幅を有し、これに対応して８個の第４のデータ７６０が、第２のトグルデコーダ４６０＿０〜４６０＿７にて、８個の第３のデータ７４０へと復号される場合が例示されている。
【００５５】
第２のトグルデコーダ４６０は、メモリインタフェース１５０から受け取った第４のデータ７６０を一時的に格納する図示しない第５のバッファメモリを備える。第５のバッファメモリに格納された第４のデータ７６０は、第２のトグルデコーダ４６０により第３のデータ７４０に復号された後、メモリインタフェース１５０により第１のバッファメモリ１４０へと送信される。第５のバッファメモリには、例えば、ＳＲＡＭやレジスタなどの揮発性メモリを用いることができる。
【００５６】
図２に戻ってメモリバス３００を説明する。
【００５７】
メモリバス３００は、メモリコントローラ１００と不揮発性メモリ２００とを接続する。メモリインタフェース１５０と入出力回路２２０は、メモリバス３００を介して、データを送受信する。メモリバス３００は、例えば、Ｔｏｇｇｌｅ  ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）、ＯＮＦＩ（Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ）に準拠する。メモリバス３００は、例えば、信号ＤＱ、ＤＱＳ、ＤＱＳｎ、ＲＥおよびＲＥｎを送受信する。信号名に接尾辞として“ｎ”が付与される場合、当該信号は、負論理である。すなわち、当該信号は“Ｌ（Ｌｏｗ）”レベルでアサートされる信号であることを示す。
【００５８】
信号ＤＱ（ＤＱ０〜ＤＱ７）は、例えば、８ビットの幅を有し、データの実体であり、コマンド、メモリチップ２１０への書き込みデータまたはメモリチップ２１０からの読み出しデータ、アドレス、ステータス等を含む。
【００５９】
メモリチップ２１０内のメモリセルアレイ２６０へのデータ書き込み時、ホストインタフェース１２０で受けた第１のデータ７００は、第１のトグルエンコーダ４００により符号化され、メモリバス３００を介して第２のデータ７２０（＝信号ＤＱ０〜ＤＱ７）としてメモリチップ２１０の入出力回路２２０に入力される。入出力回路２２０に入力された第２のデータ７２０は、周辺回路２４０へと送信され、第１のトグルデコーダ４２０により第１のデータ７００に復号された後、メモリセルアレイ２６０に書き込まれる。データ読み出し時、メモリセルアレイ２６０に書き込まれた第３のデータ７４０は、第２のトグルエンコーダ４４０により第４のデータ７６０（＝信号ＤＱ０〜ＤＱ７）として符号化される。この第４のデータ７６０は、メモリバス３００を介してメモリコントローラ１００に送信され、第２のトグルデコーダ４６０により、第３のデータ７４０に復号される。なお、第３のデータ７４０は、メモリセルアレイ２６０に書き込まれた第１のデータ７００であってもよい。この場合、第１のデータ７００と第３のデータ７４０のビット長とトグル回数は同じである。
【００６０】
信号ＤＱＳおよびＤＱＳｎは、メモリコントローラ１００とメモリチップ２１０との双方向でやり取りされる同期信号である。メモリコントローラ１００からメモリチップ２１０へ向かう信号ＤＱＳおよびＤＱＳｎは、信号ＤＱを取り込むタイミングをメモリチップ２１０に指示する。信号ＤＱにより第２のデータ７２０が送信される場合、第１のトグルエンコーダ４００は、第２のビット長に対応する数のタイミングを、信号ＤＱＳおよびＤＱＳｎによって指示する。
【００６１】
一方、メモリチップ２１０からメモリコントローラ１００に向かう信号ＤＱＳおよびＤＱＳｎは、信号ＤＱを取り込むタイミングをメモリコントローラ１００に指示する。信号ＤＱにより第４のデータ７６０が送信される場合、第２のトグルエンコーダ４４０は、第４のビット長に対応する数のタイミングを、信号ＤＱＳおよびＤＱＳｎによって指示する。
【００６２】
データの読み出し時において、メモリコントローラ１００からメモリチップ２１０に向かう信号ＲＥおよびＲＥｎは、メモリチップ２１０に信号ＤＱを出力することを指示する。また、信号ＲＥおよびＲＥｎを受け取ったメモリチップ２１０は、信号ＲＥおよびＲＥｎに応じて出力される信号ＤＱに同期するように、信号ＤＱＳおよびＤＱＳｎを生成する。信号ＤＱに第４のデータ７６０を出力することを指示する場合、メモリインタフェース１５０は、信号ＲＥおよびＲＥｎによって指示される出力の数を、信号ＤＱＳおよびＤＱＳｎによって指示されるタイミングの数に対応する数とする。
【００６３】
メモリシステム１０００の書き込み動作について説明する。図９は、メモリシステム１０００の書き込み動作時の符号化を説明するタイミングチャートの一例である。図１０は、メモリシステム１０００の書き込み動作時の復号を説明するタイミングチャートの一例である。なお、図９と図１０において、第１のデータ７００のビット長は９ビット、第２のデータ７２０のビット長は１０ビットの場合が示されている。
【００６４】
図９および図１０において、９ビット長の第１のデータ７００は、ｏｒｉデータ０と表記され、１０ビット長の第２のデータ７２０は、ｅｎｃデータ０と表記される。
【００６５】
図９の８００に示すように、ｏｒｉデータ０は、Ｄａｔａ０＿０、Ｄａｔａ１＿０、…、Ｄａｔａ８＿０の９ビット長のデータである。
【００６６】
図９と図１０の８２０に示すように、ｅｎｃデータ０は、Ｄａｔａ０’＿０、Ｄａｔａ１’＿０、…、Ｄａｔａ９’＿０の１０ビット長のデータである。
【００６７】
図９の８１０に示すように、第２のバッファメモリに格納されていた９ビット長のｏｒｉデータ０は、第１のトグルエンコーダ４００＿０により、１０ビット長のｅｎｃデータ０に符号化される。ｅｎｃデータ０は、信号ＤＱ［０］によって送信される。
【００６８】
同様に、９ビット長の第１のデータ７００であるｏｒｉデータ１は、第１のトグルエンコーダ４００＿１により、１０ビット長の第２のデータ７２０であるｅｎｃデータ１に符号化される。ｅｎｃデータ１は、信号ＤＱ［１］によって送信される。
９ビット長の第１のデータ７００であるｏｒｉデータ２は、第１のトグルエンコーダ４００＿２により、１０ビット長の第２のデータ７２０であるｅｎｃデータ２に符号化される。ｅｎｃデータ２は、信号ＤＱ［２］によって送信される。
９ビット長の第１のデータ７００であるｏｒｉデータ３は、第１のトグルエンコーダ４００＿３により、１０ビット長の第２のデータ７２０であるｅｎｃデータ３に符号化される。ｅｎｃデータ３は、信号ＤＱ［３］によって送信される。
９ビット長の第１のデータ７００であるｏｒｉデータ４は、第１のトグルエンコーダ４００＿４により、１０ビット長の第２のデータ７２０であるｅｎｃデータ４に符号化される。ｅｎｃデータ４は、信号ＤＱ［４］によって送信される。
９ビット長の第１のデータ７００であるｏｒｉデータ５は、第１のトグルエンコーダ４００＿５により、１０ビット長の第２のデータ７２０であるｅｎｃデータ５に符号化される。ｅｎｃデータ５は、信号ＤＱ［５］によって送信される。
９ビット長の第１のデータ７００であるｏｒｉデータ６は、第１のトグルエンコーダ４００＿６により、１０ビット長の第２のデータ７２０であるｅｎｃデータ６に符号化される。ｅｎｃデータ６は、信号ＤＱ［６］によって送信される。
９ビット長の第１のデータ７００であるｏｒｉデータ７は、第１のトグルエンコーダ４００＿７により、１０ビット長の第２のデータ７２０であるｅｎｃデータ７に符号化される。ｅｎｃデータ７は、信号ＤＱ［７］によって送信される。
【００６９】
メモリコントローラ１００は、信号ＤＱとしてｅｎｃデータ０〜ｅｎｃデータ７を出力すると共に、信号ＤＱＳおよびＤＱＳｎをメモリチップ２１０へと出力する。
【００７０】
メモリチップ２１０は、信号ＤＱＳおよびＤＱＳｎによって指示されるタイミングの数に同期してｅｎｃデータ０〜ｅｎｃデータ７を取り込み、第１のトグルデコーダ４２０の第３のバッファメモリに格納する。
【００７１】
図１０の８３０に示すように、第３のバッファメモリに格納されていた１０ビット長のｅｎｃデータ０は、第１のトグルデコーダ４２０＿０により、９ビット長のｏｒｉデータ０に復号される。
同様に、１０ビット長の第２のデータ７２０であるｅｎｃデータ１は、第１のトグルデコーダ４２０＿１により、９ビット長のｏｒｉデータ１に復号される。
１０ビット長の第２のデータ７２０であるｅｎｃデータ２は、第１のトグルデコーダ４２０＿２により、９ビット長のｏｒｉデータ２に復号される。
１０ビット長の第２のデータ７２０であるｅｎｃデータ３は、第１のトグルデコーダ４２０＿３により、９ビット長のｏｒｉデータ３に復号される。
１０ビット長の第２のデータ７２０であるｅｎｃデータ４は、第１のトグルデコーダ４２０＿４により、９ビット長のｏｒｉデータ４に復号される。
１０ビット長の第２のデータ７２０であるｅｎｃデータ５は、第１のトグルデコーダ４２０＿５により、９ビット長のｏｒｉデータ５に復号される。
１０ビット長の第２のデータ７２０であるｅｎｃデータ６は、第１のトグルデコーダ４２０＿６により、９ビット長のｏｒｉデータ６に復号される。
１０ビット長の第２のデータ７２０であるｅｎｃデータ７は、第１のトグルデコーダ４２０＿７により、９ビット長のｏｒｉデータ７に復号される。
復号されたｏｒｉデータ０〜ｏｒｉデータ７は、周辺回路２４０により、メモリセルアレイ２６０に書き込まれる。
【００７２】
このようにして、メモリコントローラ１００は、メモリチップ２１０にデータを書き込むことが可能となる。
【００７３】
次に、メモリシステム１０００の読み出し動作について説明する。図１１は、メモリシステム１０００の読み出し動作時の符号化を説明するタイミングチャートの一例である。図１２は、メモリシステム１０００の読み出し動作時の復号を説明するタイミングチャートの一例である。なお、図１１と図１２において、第３のデータ７４０のビット長は９ビット、第４のデータ７６０のビット長は１０ビットの場合が示されている。
【００７４】
図１１および図１２において、９ビット長の第３のデータ７４０は、ｏｒｉデータ０と表記され、１０ビット長の第４のデータ７６０は、ｅｎｃデータ０と表記される。
【００７５】
図１１の９００に示すように、ｏｒｉデータ０は、Ｄａｔａ０＿０、Ｄａｔａ１＿０、…、Ｄａｔａ８＿０の９ビット長のデータである。
【００７６】
図１１と図１２の９２０に示すように、ｅｎｃデータ０は、Ｄａｔａ０’＿０、Ｄａｔａ１’＿０、…、Ｄａｔａ９’＿０の１０ビット長のデータである。
【００７７】
まず、メモリコントローラ１００は、ｏｒｉデータ０をメモリセルアレイ２６０から読み出すことを指示する図示しないコマンドをメモリチップ２１０に出力する。メモリチップ２１０は、メモリコントローラ１００から該コマンドを受信すると、メモリセルアレイ２６０内からｏｒｉデータ０を読み出す。メモリセルアレイ２６０から読み出されたｏｒｉデータ０は、第２のトグルエンコーダ４４０の第４のバッファメモリに格納される。
【００７８】
図示しないレディー／ビジー信号により、ｏｒｉデータ０が第４のバッファメモリに格納されたことを認識したメモリコントローラ１００は、信号ＲＥおよびＲＥｎを用いて、メモリチップ２１０から信号ＤＱ［０］としてｅｎｃデータ０を出力することを指示する。この時、メモリインタフェース１５０は、信号ＲＥおよびＲＥｎによって指示される数を、第４のビット長と対応する数、すなわち１０とする。
【００７９】
図１１の９１０に示すように、第４のバッファメモリに格納されていた９ビット長の第３のデータ７４０であるｏｒｉデータ０は、第２のトグルエンコーダ４４０＿０により、１０ビット長の第４のデータ７６０であるｅｎｃデータ０に符号化される。ｅｎｃデータ０は、信号ＤＱ［０］によって送信される。
【００８０】
同様に、９ビット長の第３のデータ７４０であるｏｒｉデータ１は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿１により、１０ビット長の第４のデータ７６０であるｅｎｃデータ１に符号化される。ｅｎｃデータ１は、信号ＤＱ［１］によって送信される。
９ビット長の第３のデータ７４０であるｏｒｉデータ２は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿２により、１０ビット長の第４のデータ７６０であるｅｎｃデータ２に符号化される。ｅｎｃデータ２は、信号ＤＱ［２］によって送信される。
９ビット長の第３のデータ７４０であるｏｒｉデータ３は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿３により、１０ビット長の第４のデータ７６０であるｅｎｃデータ３に符号化される。ｅｎｃデータ３は、信号ＤＱ［３］によって送信される。
９ビット長の第３のデータ７４０であるｏｒｉデータ４は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿４により、１０ビット長の第４のデータ７６０であるｅｎｃデータ４に符号化される。ｅｎｃデータ４は、信号ＤＱ［４］によって送信される。
９ビット長の第３のデータ７４０であるｏｒｉデータ５は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿５により、１０ビット長の第４のデータ７６０であるｅｎｃデータ５に符号化される。ｅｎｃデータ５は、信号ＤＱ［５］によって送信される。
９ビット長の第３のデータ７４０であるｏｒｉデータ６は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿６により、１０ビット長の第４のデータ７６０であるｅｎｃデータ６に符号化される。ｅｎｃデータ６は、信号ＤＱ［６］によって送信される。
９ビット長の第３のデータ７４０であるｏｒｉデータ７は、メモリセルアレイ２６０から読み出され、第２のトグルエンコーダ４４０＿７により、１０ビット長の第４のデータ７６０であるｅｎｃデータ７に符号化される。ｅｎｃデータ７は、信号ＤＱ［７］によって送信される。
【００８１】
メモリチップ２１０は、受け取った信号ＲＥおよびＲＥｎに応じて信号ＤＱＳおよびＤＱＳｎを生成する。生成された信号ＤＱＳおよびＤＱＳｎによって指示されるタイミングに同期してｅｎｃデータ０〜ｅｎｃデータ７がメモリコントローラ１００に取り込まれる。より具体的には、ｅｎｃデータ０〜ｅｎｃデータ７は、第２のトグルデコーダ４６０の第５のバッファメモリに格納される。
【００８２】
図１２の９３０に示すように、第５のバッファメモリに格納されていた１０ビット長の第４のデータ７６０であるｅｎｃデータ０は、第２のトグルデコーダ４６０＿０により、９ビット長の第３のデータ７４０であるｏｒｉデータ０に復号される。
同様に、１０ビット長の第４のデータ７６０であるｅｎｃデータ１は、第２のトグルデコーダ４６０＿１により、９ビット長の第３のデータ７４０であるｏｒｉデータ１に復号される。
１０ビット長の第４のデータ７６０であるｅｎｃデータ２は、第２のトグルデコーダ４６０＿２により、９ビット長の第３のデータ７４０であるｏｒｉデータ２に復号される。
１０ビット長の第４のデータ７６０であるｅｎｃデータ３は、第２のトグルデコーダ４６０＿３により、９ビット長の第３のデータ７４０であるｏｒｉデータ３に復号される。
１０ビット長の第４のデータ７６０であるｅｎｃデータ４は、第２のトグルデコーダ４６０＿４により、９ビット長の第３のデータ７４０であるｏｒｉデータ４に復号される。
１０ビット長の第４のデータ７６０であるｅｎｃデータ５は、第２のトグルデコーダ４６０＿５により、９ビット長の第３のデータ７４０であるｏｒｉデータ５に復号される。
１０ビット長の第４のデータ７６０であるｅｎｃデータ６は、第２のトグルデコーダ４６０＿６により、９ビット長の第３のデータ７４０であるｏｒｉデータ６に復号される。
１０ビット長の第４のデータ７６０であるｅｎｃデータ７は、第２のトグルデコーダ４６０＿７により、９ビット長の第３のデータ７４０であるｏｒｉデータ７に復号される。
復号されたｏｒｉデータ０〜ｏｒｉデータ７は、メモリインタフェース１５０により、第１のバッファメモリ１４０に格納される。
【００８３】
このようにして、メモリコントローラ１００は、メモリチップ２１０からデータを読み出すことが可能となる。
【００８４】
第１の実施形態に係るメモリシステム１０００においては、データのトグル回数が小さくなるようにデータを符号化した後、メモリコントローラ１００と不揮発性メモリ２００との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
さらに、第１の実施形態に係るメモリシステム１０００においては、符号化されたデータを取り込むべきタイミングを指示する同期信号が、符号化されたデータのビット長に応じて送信されるので、データのトグル回数を減らしてもデータの送受信を安定して行うことが可能である。
【００８５】
（第２の実施形態）
第２の実施形態に係るメモリシステム２０００は、基本的に第１の実施形態に係るメモリシステム１０００と同様に構成されているが、第１のトグルデコーダ４２０と第２のトグルエンコーダ４４０とを有していない点において異なっている。
【００８６】
図１３は、第２の実施形態に係るメモリシステム２０００のメモリコントローラ１００およびメモリチップ２１０の構成例を示すブロック図である。
【００８７】
データの書き込み時において、第１のトグルエンコーダ４００の第２のバッファメモリに格納されていた第１のデータ７００は、第１のトグルエンコーダ４００により、第２のデータ７２０に符号化される。その後、メモリインタフェース１５０により、第２のデータ７２０は、メモリバス３００を介して、メモリチップ２１０へと送信される。メモリチップ２１０に送信された第２のデータ７２０は、メモリセルアレイ２６０に書き込まれる。
【００８８】
データの読み出し時において、メモリセルアレイ２６０から読み出された第４のデータ７６０は、メモリバス３００を介して、メモリコントローラ１００に送信される。なお、第４のデータ７６０は、第２のデータ７２０とビット長が同じでも異なっていてもよい。また、第４のデータ７６０は、第２のデータ７２０とトグル回数が同じでも異なっていてもよい。特に、第２のデータ７２０をメモリセルアレイ２６０に書き込み、第２のデータ７２０を第４のデータ７６０として正しく読み出せた場合は、第２のデータ７２０と第４のデータ７６０のビット長とトグル回数が同じである。
メモリコントローラ１００に送信された第４のデータ７６０は、第２のトグルデコーダ４６０により、第３のデータ７４０に復号される。なお、第３のデータ７４０は、第１のデータ７００とビット長が同じでも異なっていてもよい。また、第３のデータ７４０は、第１のデータ７００とトグル回数が同じでも異なっていてもよい。特に、第２のデータ７２０をメモリセルアレイ２６０に書き込み、第２のデータ７２０を第４のデータ７６０として正しく読み出せた場合は、第１のデータ７００と第３のデータ７４０のビット長とトグル回数が同じである。
【００８９】
第２の実施形態に係るメモリシステム２０００においては、データのトグル回数が小さくなるようにデータを符号化した後、メモリコントローラ１００と不揮発性メモリ２００との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
さらに、第２の実施形態に係るメモリシステム２０００においては、第１のトグルデコーダ４２０と第２のトグルエンコーダ４４０とを有していない。そのため、従来例と比較してメモリチップ２１０の大きさを変更する必要が無いので、メモリチップ２１０のコストを抑えることが可能である。
【００９０】
（第３の実施形態）
第３の実施形態に係るメモリシステム３０００は、基本的に第１の実施形態に係るメモリシステム１０００と同様に構成されているが、インタフェース（Ｉ／Ｆ）チップ５００を具備する点において異なっている。
【００９１】
図１４は、第３の実施形態に係るメモリシステム３０００のメモリコントローラ１００、インタフェースチップ５００およびメモリチップ２１０の構成例を示すブロック図である。
【００９２】
図１４に示されるように、インタフェースチップ５００は、第１のトグルデコーダ４２０と、第２のトグルエンコーダ４４０とを有する。本実施形態においては、インタフェースチップ５００が、第１のトグルデコーダ４２０と、第２のトグルエンコーダ４４０とを有する場合について説明するが、第１のトグルデコーダ４２０と第２のトグルエンコーダ４４０のうち片方がインタフェースチップ５００の外部、他方がインタフェースチップ５００の内部に存在していてもよい。
【００９３】
データの書き込み時において、インタフェースチップ５００は、メモリコントローラ１００からメモリバス３００Ａを介して、符号化された第２のデータ７２０を受け取る。受け取った第２のデータ７２０は、第１のトグルデコーダ４２０にて、第１のデータ７００に復号される。その後、インタフェースチップ５００は、復号された第１のデータ７００をメモリバス３００Ｂを介してメモリチップ２１０に送信する。
メモリバス３００Ａは、メモリコントローラ１００とインタフェースチップ５００との間で、例えば、信号ＤＱ、ＤＱＳ、ＤＱＳｎ、ＲＥおよびＲＥｎを送受信する。メモリバス３００Ｂは、インタフェースチップ５００とメモリチップ２１０との間で、例えば、信号ＤＱ、ＤＱＳ、ＤＱＳｎ、ＲＥおよびＲＥｎを送受信する。
【００９４】
データの読み出し時において、インタフェースチップ５００は、メモリセルアレイ２６０のセルトランジスタに格納されていた第３のデータ７４０を、メモリチップ２１０からメモリバス３００Ｂを介して受け取る。受け取った第３のデータ７４０は、第２のトグルエンコーダ４４０にて、第４のデータ７６０に符号化される。
なお、第３のデータ７４０は、第１のデータ７００とビット長が同じでも異なっていてもよい。また、第３のデータ７４０は、第１のデータ７００とトグル回数が同じでも異なっていてもよい。特に、第１のデータ７００をメモリセルアレイ２６０に書き込み、第１のデータ７００を第３のデータ７４０として正しく読み出せた場合は、第１のデータ７００と第３のデータ７４０のビット長とトグル回数が同じである。
さらに、第４のデータ７６０は、第２のデータ７２０とビット長が同じでも異なっていてもよい。また、第４のデータ７６０は、第２のデータ７２０とトグル回数が同じでも異なっていてもよい。特に、第１のデータ７００をメモリセルアレイ２６０に書き込み、第１のデータ７００を第３のデータ７４０として正しく読み出せた場合は、第２のデータ７２０と第４のデータ７６０のビット長とトグル回数が同じである。
インタフェースチップ５００は、符号化された第４のデータ７６０をメモリバス３００Ａを介してメモリコントローラ１００に送信する。
【００９５】
図１５‐Ａは、第３の実施形態に係るメモリシステム３０００のメモリコントローラ１００、インタフェースチップ５００およびメモリチップ２１０が同一のパッケージ１１００に実装される構成例を示すブロック図である。
図１５‐Ｂは、第３の実施形態に係るメモリシステム３０００のインタフェースチップ５００が、メモリコントローラ１００が実装された第１パッケージ１１００Ａとは独立した別の第２パッケージ１１００Ｂに、メモリチップ２１０とともに実装される構成例を示すブロック図である。
図１５‐Ｃは、第３の実施形態に係るメモリシステム３０００のメモリコントローラ１００、インタフェースチップ５００およびメモリチップ２１０がいずれも別のパッケージ１１００に実装される構成例を示すブロック図である。
図１５‐Ａ〜図１５‐Ｃに示すように、インタフェースチップ５００は、メモリチップ２１０と同一のパッケージにあってもよく、違うパッケージにあってもよい。また、インタフェースチップ５００は、メモリチップ２１０と同一のチップに実装されてもよい。この場合、インタフェースチップ５００とメモリチップ２１０は、同一のプロセスを用いて製造されていてもよく、異なるプロセスを用いて製造されていてもよい。また、インタフェースチップ５００とメモリチップ２１０は、半導体基板に対して水平方向に並んでいてもよく、垂直方向に並んでいてもよい。なお、複数のメモリチップ２１０が一つのパッケージに実装されていてもよい。
図１６‐Ａは、第３の実施形態に係るメモリシステム３０００のメモリコントローラパッケージ１００Ａ、インタフェースパッケージ５００Ａおよびメモリパッケージ２１０Ａが同一のプリント基板１２００に実装される構成例を示すブロック図である。
図１６‐Ｂは、第３の実施形態に係るメモリシステム３０００のインタフェースパッケージ５００Ａが、メモリコントローラパッケージ１００Ａが実装された第１プリント基板１２００Ａとは独立した別の第２プリント基板１２００Ｂに、メモリパッケージ２１０Ａとともに実装される構成例を示すブロック図である。
メモリコントローラパッケージ１００Ａは、メモリコントローラ１００が設けられたパッケージである。メモリパッケージ２１０Ａは、メモリチップ２１０が設けられたパッケージである。インタフェースパッケージ５００Ａは、インタフェースチップ５００が設けられたパッケージである。
図１６‐Ａ〜図１６‐Ｂに示すように、インタフェースパッケージ５００Ａは、メモリパッケージ２１０Ａと同一のパッケージに実装されてもよく、違うパッケージに実装されてもよい。
【００９６】
第３の実施形態に係るメモリシステム３０００においては、データのトグル回数が小さくなるように符号化した後、メモリコントローラ１００とインタフェースチップ５００との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
さらに、第３の実施形態に係るメモリシステム３０００においては、メモリチップ２１０は第１のトグルデコーダ４２０と第２のトグルエンコーダ４４０とを有していない。そのため、従来例と比較してメモリチップ２１０の大きさを変更する必要が無いので、メモリチップ２１０のコストを抑えることが可能である。
【００９７】
（第４の実施形態）
第４の実施形態に係るメモリシステム４０００は、基本的に第１の実施形態に係るメモリシステム１０００と同様に構成されているが、メモリコントローラ１００が、ランダマイザ６００を有している点において異なっている。
【００９８】
図１７は、第４の実施形態に係るメモリシステム４０００のランダマイザ６００を有するメモリコントローラ１００およびメモリチップ２１０の構成例を示すブロック図である。
【００９９】
第１のバッファメモリ１４０から受け取った書き込みデータ等は、メモリインタフェース１５０により、ランダマイザ６００へ送信される。ランダマイザ６００は、第１のビット長を有する第５のデータをランダマイズし、第１のデータ７００を生成する。ランダマイズ後の第１のデータ７００は、第１のトグルエンコーダ４００により、第２のデータ７２０に符号化される。その後、第２のデータ７２０は、不揮発性メモリ２００へ送信される。
また、メモリセルアレイ２６０から受け取った第３のデータ７４０は、周辺回路２４０により、第２のトグルエンコーダ４４０へ送信される。第３のデータ７４０は、第２のトグルエンコーダ４４０により第４のデータ７６０に符号化される。第４のデータ７６０はメモリコントローラ１００へ送信される。第４のデータ７６０は、第２のトグルデコーダ４６０により、第３のデータ７４０に復号される。その後、第３のデータ７４０は、ランダマイザ６００へ送信される。ランダマイザ６００は、第３のデータ７４０のランダマイズを解除し、第１のビット長を有する第５のデータを生成する。
なお、第３のデータ７４０は、第１のデータ７００とビット長が同じでも異なっていてもよい。また、第３のデータ７４０は、第１のデータ７００とトグル回数が同じでも異なっていてもよい。特に、第１のデータ７００をメモリセルアレイ２６０に書き込み、第１のデータ７００を第３のデータ７４０として正しく読み出せた場合は、第１のデータ７００と第３のデータ７４０のビット長とトグル回数が同じである。
さらに、第４のデータ７６０は、第２のデータ７２０とビット長が同じでも異なっていてもよい。また、第４のデータ７６０は、第２のデータ７２０とトグル回数が同じでも異なっていてもよい。特に、第１のデータ７００をメモリセルアレイ２６０に書き込み、第１のデータ７００を第３のデータ７４０として正しく読み出せた場合は、第２のデータ７２０と第４のデータ７６０のビット長とトグル回数が同じである。
【０１００】
第４の実施形態に係るメモリシステム４０００においては、データのトグル回数が小さくなるように符号化した後、メモリコントローラ１００と不揮発性メモリ２００との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
【０１０１】
また、本実施形態においては、第１のデータ群に含まれている各第１のデータ７００が均等に出現すると期待される。従って、本実施形態においては、図５‐Ａ〜図５‐Ｈを用いて説明したように、第２のデータ群に含まれる第２のデータ７２０それぞれのトグル回数の平均が、第１のデータ群に含まれる第１のデータ７００それぞれのトグル回数の平均よりも少なくなるように変換を行うことにより、第１のデータ群に含まれる全部の第１のデータのトグル回数を必ずしも減らさなくても、データ送信に伴う消費電力を低減することが可能である。
【０１０２】
一方で、第１のデータ群に含まれている各第１のデータ７００が均等に出現しない場合は、各第１のデータ７００のそれぞれのトグル回数に対して出現頻度で重みづけを行い、それらの総和で比較することで、トグル回数が少なくなっていればよい。例えば、データ「０１００１００００」が他のデータよりも多く出現する場合には、データ「０１００１００００」を符号化したときに、出現頻度の少ない他のデータよりもトグル回数が少なくなるように符号化する。
【０１０３】
（第５の実施形態）
第５の実施形態に係るメモリシステム５０００は、基本的に第１の実施形態に係るメモリシステム１０００と同様に構成されているが、不揮発性メモリ２００が、ランダマイザ６００を有している点において異なっている。ランダマイザ６００は、読み出しデータの信頼性を向上させるために、書き込み対象のデータをランダマイズする。
【０１０４】
図１８は、第５の実施形態に係るメモリシステム５０００のメモリコントローラ１００およびランダマイザ６００を有するメモリチップ２１０の構成例を示すブロック図である。
【０１０５】
データの書き込み時において、第１のトグルエンコーダ４００の第２のバッファメモリに格納されていた第１のデータ７００は、第１のトグルエンコーダ４００により第２のデータ７２０に符号化される。その後、メモリインタフェース１５０により、第２のデータ７２０は、メモリバス３００を介して、メモリチップ２１０へと送信される。
メモリチップ２１０に送信された第２のデータ７２０はランダマイザ６００にて、第２のビット長を有する第５のデータにランダマイズされる。ランダマイズされた第５のデータはメモリセルアレイ２６０に書き込まれる。
【０１０６】
データの読み出し時において、メモリセルアレイ２６０から読み出された第６のデータは、ランダマイザ６００にて、ランダマイズ解除され、第４のビット長を有し、第４のトグル回数を有する第４のデータとなる。ランダマイズ解除された第４のデータは、メモリバス３００を介して、メモリコントローラ１００に送信される。メモリコントローラ１００に送信された第４のデータは、第２のトグルデコーダ４６０により、第４のビット長よりも短い第３のビット長と、第４のトグル回数よりも多い第３のトグル回数とを有する第３のデータに復号される。
なお、第４のデータ７６０は、第２のデータ７２０とビット長が同じでも異なっていてもよい。また、第４のデータ７６０は、第２のデータ７２０とトグル回数が同じでも異なっていてもよい。特に、第５のデータをメモリセルアレイ２６０に書き込み、第５のデータを第６のデータとして正しく読み出せた場合は、第２のデータ７２０と第４のデータ７６０のビット長とトグル回数が同じである。
また、第３のデータ７４０は、第１のデータ７００とビット長が同じでも異なっていてもよい。また、第３のデータ７４０は、第１のデータ７００とトグル回数が同じでも異なっていてもよい。特に、第５のデータをメモリセルアレイ２６０に書き込み、第５のデータを第６のデータとして正しく読み出せた場合は、第１のデータ７００と第３のデータ７４０のビット長とトグル回数が同じである。
さらに、第６のデータは、第５のデータとビット長が同じでも異なっていてもよい。また、第６のデータは、第５のデータとトグル回数が同じでも異なっていてもよい。特に、第５のデータをメモリセルアレイ２６０に書き込み、第５のデータを第６のデータとして正しく読み出せた場合は、第５のデータと第６のデータのビット長とトグル回数が同じである。
【０１０７】
第５の実施形態に係るメモリシステム５０００においては、データのトグル回数が小さくなるように符号化した後、メモリコントローラ１００と不揮発性メモリ２００との間でデータ送信を行っているため、データ送信に伴う消費電力を抑制することが可能である。また、不揮発性メモリ２００が、ランダマイザ６００を有しているので、メモリシステム５０００の信頼性を維持することが可能である。
【０１０８】
以上説明した少なくとも一つの実施形態に係るメモリシステムにおいては、データのトグル回数が小さくなるように符号化した後、メモリコントローラと不揮発性メモリとの間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
【０１０９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１０】
１００  メモリコントローラ
２００  不揮発性メモリ
２１０  メモリチップ
２６０  メモリセルアレイ
３００  メモリバス
３２０  通信インタフェース
４００  第１のトグルエンコーダ
４２０  第１のトグルデコーダ
４４０  第２のトグルエンコーダ
４６０  第２のトグルデコーダ
５００  インタフェースチップ
６００  ランダマイザ
７００  第１のデータ
７２０  第２のデータ
７４０  第３のデータ
７６０  第４のデータ
１０００  メモリシステム
１５００  ホスト装置
【図１】
2020198577.tif 000003
【図２】
2020198577.tif 000004
【図３】
2020198577.tif 000005
【図４】
2020198577.tif 000006
【図５−Ａ】
2020198577.tif 000007
【図５−Ｂ】
2020198577.tif 000008
【図５−Ｃ】
2020198577.tif 000009
【図５−Ｄ】
2020198577.tif 000010
【図５−Ｅ】
2020198577.tif 000011
【図５−Ｆ】
2020198577.tif 000012
【図５−Ｇ】
2020198577.tif 000013
【図５−Ｈ】
2020198577.tif 000014
【図６】
2020198577.tif 000015
【図７】
2020198577.tif 000016
【図８】
2020198577.tif 000017
【図９】
2020198577.tif 000018
【図１０】
2020198577.tif 000019
【図１１】
2020198577.tif 000020
【図１２】
2020198577.tif 000021
【図１３】
2020198577.tif 000022
【図１４】
2020198577.tif 000023
【図１５−Ａ】
2020198577.tif 000024
【図１５−Ｂ】
2020198577.tif 000025
【図１５−Ｃ】
2020198577.tif 000026
【図１６−Ａ】
2020198577.tif 000027
【図１６−Ｂ】
2020198577.tif 000028
【図１７】
2020198577.tif 000029
【図１８】
2020198577.tif 000030