(57)【特許請求の範囲】
【請求項１】
複数のメモリチップを含むメモリと、
前記複数のメモリチップにデータブロックを並列に書き込み、前記複数のメモリチップに書き込まれた前記データブロックを並列に読み出すメモリコントローラと、
を具備し、
前記メモリコントローラは、
前記データブロックに対して、各メモリチップに書き込まれる第２データ単位毎に第２ＥＣＣ符号を付加する第２ＥＣＣ符号化部と、
前記第２ＥＣＣ符号が付加された前記データブロックに対して、前記複数のメモリチップに並列に書き込まれる第１データ単位毎に第１ＥＣＣ符号を付加する第１ＥＣＣ符号化部と、
前記第１ＥＣＣ符号が付加された前記データブロックに対して、前記第１データ単位毎に前記第１ＥＣＣ符号に基づいて第１エラー訂正を行う第１復号化部と、
前記第１エラー訂正が行われた前記データブロックに対して、前記第２データ単位毎に前記第２ＥＣＣ符号に基づいて第２エラー訂正を行う第２復号化部と、
を備えることを特徴とするビデオサーバ装置。
【請求項２】
前記第１データ単位は、並列する前記複数のメモリチップに書き込まれる１列のデータ単位に対応することを特徴とする請求項１のビデオサーバ装置。
【請求項３】
前記第１データ単位は、並列する前記複数のメモリチップに書き込まれる複数列のデータ単位に対応することを特徴とする請求項１のビデオサーバ装置。
【請求項４】
複数のメモリチップにデータブロックを並列に書き込み、前記複数のメモリチップに書き込まれた前記データブロックを並列に読み出すデータ書き込み／読み出し方法であって、
前記データブロックに対して、各メモリチップに書き込まれる第２データ単位毎に第２ＥＣＣ符号を付加し、
前記第２ＥＣＣ符号が付加された前記データブロックに対して、前記複数のメモリチップに並列に書き込まれる第１データ単位毎に第１ＥＣＣ符号を付加し、
前記第１ＥＣＣ符号が付加された前記データブロックに対して、前記第１データ単位毎に前記第１ＥＣＣ符号に基づいて第１エラー訂正を行い、
前記第１エラー訂正が行われた前記データブロックに対して、前記第２データ単位毎に前記第２ＥＣＣ符号に基づいて第２エラー訂正を行う
ことを特徴とするデータ書き込み／読み出し方法。
【請求項５】
前記第１データ単位は、並列する前記複数のメモリチップに書き込まれる１列のデータ単位に対応することを特徴とする請求項４のデータ書き込み／読み出し方法。
【請求項６】
前記第１データ単位は、並列する前記複数のメモリチップに書き込まれる複数列のデータ単位に対応することを特徴とする請求項４のデータ書き込み／読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、複数のメモリチップに映像データを並列に書き込み、前記複数のメモリチップに書き込まれた映像データを並列に読み出すビデオサーバ装置およびデータ書き込み／読み出し方法に関する。
【背景技術】
【０００２】
ビデオサーバ装置は、複数のメモリチップを含み、複数のメモリチップは並列に接続される。これら複数のメモリチップに、実データとこれに付加されたＥＣＣ（Error Check and Correction）符号とが並列に書き込まれる。すなわち、並列する複数のメモリチップ間のデータ単位でＥＣＣが行われる。これにより、複数のメモリチップのいずれかが故障した場合であっても、その故障によるデータエラーを、並列する複数のメモリチップ間のデータ単位でのＥＣＣによって訂正することができる。
【０００３】
しかしながら、各メモリチップ内においても所定量のデータエラーが生じる。従来のビデオサーバ装置では、メモリチップ単位でのＥＣＣは行われていない。このため、メモリチップの信頼性情報として提供されている書き換え回数、データリテンション、およびリードディスターブ等の問題に対する改善の余地がある。
【０００４】
今後、メモリチップにおいて、微細化や３次元化による大容量化が進む可能性がある。また、ＭＬＣ（Multi Level Cell）、さらにはＴＬＣ（Triple Level Cell）のシェアが高まる。これらは、原価低減を図る一方、メモリチップの信頼性を低下させてしまう。
【０００５】
このように、今後もメモリチップの信頼性の低下が懸念されるため、ＥＣＣ等によってこの問題を解決することが求められる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１９２２０６号公報
【特許文献２】特開２０１２−１２３８８０号公報
【特許文献３】特開平１１−１４３７８７号公報
【特許文献４】特開平０５−２４１９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上のように、従来のビデオサーバ装置では、複数のメモリチップのいずれかが故障した場合のデータエラーを訂正することができるが、メモリチップ単位でのＥＣＣ仕様が不十分であり、メモリチップの信頼性を改善する余地があった。
【０００８】
実施形態では、複数のメモリチップのいずれかが故障した場合のデータエラーを訂正しつつ、メモリチップ単位でのＥＣＣ仕様を十分に保証するビデオサーバ装置およびデータ書き込み／読み出し方法を提供する。
【課題を解決するための手段】
【０００９】
実施形態によるビデオサーバ装置は、複数のメモリチップを含むメモリと、前記複数のメモリチップにデータブロックを並列に書き込み、前記複数のメモリチップに書き込まれた前記データブロックを並列に読み出すメモリコントローラと、を具備する。前記メモリコントローラは、前記データブロックに対して、各メモリチップに書き込まれる第２データ単位毎に第２ＥＣＣ符号を付加する第２ＥＣＣ符号化部と、前記第２ＥＣＣ符号が付加された前記データブロックに対して、前記複数のメモリチップに並列に書き込まれる第１データ単位毎に第１ＥＣＣ符号を付加する第１ＥＣＣ符号化部と、前記第１ＥＣＣ符号が付加された前記データブロックに対して、前記第１データ単位毎に前記第１ＥＣＣ符号に基づいて第１エラー訂正を行う第１復号化部と、前記第１エラー訂正が行われた前記データブロックに対して、前記第２データ単位毎に前記第２ＥＣＣ符号に基づいて第２エラー訂正を行う第２復号化部と、を備える。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係るビデオサーバ装置を示すブロック図。
【図２】第１実施形態に係るメモリコントローラおよびメモリをより詳細に示す図。
【図３】第１実施形態に係るＥＣＣ回路の構成を示すブロック図
【図４】第１実施形態に係るバッファの構成を示す図であり、ＥＣＣ符号化工程を示す図。
【図５】第１実施形態に係るバッファの構成を示す図であり、図４に続くＥＣＣ符号化工程を示す図。
【図６】第１実施形態に係るバッファの構成を示す図であり、図５に続くＥＣＣ符号化工程を示す図。
【図７】第１実施形態に係るバッファの構成を示す図であり、図６に続くＥＣＣ符号化工程を示す図。
【図８】第１実施形態に係るバッファの構成を示す図であり、図７に続くＥＣＣ符号化工程を示す図。
【図９】第１実施形態に係るバッファの構成を示す図であり、図８に続くＥＣＣ符号化工程を示す図。
【図１０】第１実施形態に係る書き込み方法を示すフローチャート。
【図１１】第１実施形態に係る読み出し方法を示すフローチャート。
【図１２】第２実施形態に係るＥＣＣ回路の構成を示すブロック図。
【図１３】第２実施形態に係るバッファの構成を示す図であり、ＥＣＣ符号化工程を示す図。
【図１４】第２実施形態に係るバッファの構成を示す図であり、図１３に続くＥＣＣ符号化工程を示す図。
【図１５】第２実施形態に係るバッファの構成を示す図であり、図１４に続くＥＣＣ符号化工程を示す図。
【図１６】第２実施形態に係るバッファの構成を示す図であり、図１５に続くＥＣＣ符号化工程を示す図。
【図１７】第２実施形態に係る書き込み方法を示すフローチャート。
【図１８】第２実施形態に係る読み出し方法を示すフローチャート。
【図１９】第３実施形態に係るバッファの構成を示す図であり、ＥＣＣ符号化工程を示す図。
【図２０】第３実施形態に係る書き込み方法を示すフローチャート。
【図２１】第３実施形態に係る読み出し方法を示すフローチャート。
【発明を実施するための形態】
【００１１】
本実施形態を以下に図面を参照して説明する。図面において、同一部分には同一の参照符号を付す。
【００１２】
＜第１実施形態＞
以下に図１乃至図１１を用いて、第１実施形態に係るビデオサーバ装置について説明する。
【００１３】
（第１実施形態における構成）
図１は、第１実施形態に係るビデオサーバ装置１０を示すブロック図である。
【００１４】
図１に示すように、ビデオサーバ装置１０は、収録部１００、メインコントローラ２００、再生部３００、メモリコントローラ４００、およびメモリ５００を備える。
【００１５】
メインコントローラ２００は、装置全体の制御を行う。収録部１００は、カメラやビデオデッキ等から入力される映像信号を映像データに符号化し、収録処理を実行する。メモリコントローラ４００は、収録部１００からの映像データをメモリ５００に書き込む。また、メモリコントローラ４００は、メモリ５００に記憶された映像データを読み出す。メモリ５００は、不揮発性メモリであり、例えばＮＡＮＤフラッシュメモリ等である。再生部３００は、メモリ５００から読み出された映像データを映像信号に復号化し、映像信号を出力する。
【００１６】
図２は、第１実施形態に係るメモリコントローラ４００およびメモリ５００をより詳細に示す図である。
【００１７】
図２に示すように、メモリ５００は、複数のメモリチップ群Ｇ１，Ｇ２，…を含む。各メモリチップ群Ｇは、複数のメモリチップ１〜Ｍを有する。複数のメモリチップ１〜Ｍは、メモリインターフェース４４０に並列に接続される。このため、書き込み動作および読み出し動作において、各メモリチップ群Ｇにおける複数のメモリチップ１〜Ｍは並列にアクセスされる。
【００１８】
メモリコントローラ４００は、外部からの書き込みコマンドに従ってメモリ５００への書き込みを制御する。また、メモリコントローラ４００は、外部からの読み出しコマンドに従ってメモリ５００からの読み出しを制御する。メモリコントローラ４００は、例えばＦＰＧＡ（Field Programmable Gate Array）であり、ＥＣＣ回路４３０およびメモリインターフェース４４０を備える。ＥＣＣ回路４３０およびメモリインターフェース４４０は、互いに内部バス４５０で接続される。また、ＥＣＣ回路４３０およびメモリインターフェース４４０は、内部バス４５０を介してメモリコントローラ４００外のＣＰＵ４１０およびバッファ４２０に接続される。なお、ＣＰＵ４１０は、メモリコントローラ４００内に設けられてもよい。
【００１９】
バッファ４２０は、外部から受信した映像データをメモリ５００に書き込むまで一時格納したり、メモリ５００から読み出した映像データを外部へ送信するまでに一時格納したりする。バッファ４２０は、ＲＡＭ（Random Access Memory）であり、例えばＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、またはＭＲＡＭ（Magnetic Random Access Memory）などの汎用メモリである。
【００２０】
バッファ４２０は、外部からの映像データをデータブロックとして、所定の容量分蓄積する。ここで、所定の容量とは、１個のメモリチップ群Ｇにおけるメモリチップ１〜Ｍの並列数に応じて設定される容量である。例えば、所定の容量は、１個のメモリチップ群Ｇにおけるメモリチップ１〜Ｍの総容量から付加されるＥＣＣ符号の容量を差し引いた容量である。すなわち、所定の容量分のデータブロックにＥＣＣ符号が付加されることで、メモリチップ１〜Ｍの総容量となる。
【００２１】
ＥＣＣ回路４３０は、バッファ４２０に格納されたデータブロック（映像データ）にＥＣＣ符号を付加する（ＥＣＣ符号化）。ＥＣＣ符号の方式は任意であり、例えばＢＣＨ（Bose Chaudhuri Hocquenghem）、ＲＳ（Reed Solomon）、およびＬＤＰＣ（Low Density Parity Check）等が挙げられる。また、ＥＣＣ回路４３０は、ＥＣＣ符号が付加されたデータブロックに対してＥＣＣ符号に基づいてエラー訂正する（ＥＣＣ復号化）。ＥＣＣ回路４３０の詳細については、後述する。
【００２２】
ＣＰＵ４１０は、メモリコントローラ４００を統括的に制御する。ＣＰＵ４１０は、外部からコマンドを受けた場合に、そのコマンドに従った制御を行う。例えば、ＣＰＵ４１０は、外部からの書き込みコマンドに従って、メモリ５００への映像データの書き込みをメモリインターフェース４４０へ指示する。また、ＣＰＵ４１０は、外部からの読み出しコマンドに従って、メモリ５００からの映像データの読み出しを、メモリインターフェース４４０へ指示する。
【００２３】
メモリインターフェース４４０は、ＣＰＵ４１０の指示に基づいて、映像データ等をメモリ５００へ書き込み、またはメモリ５００から読み出す。このとき、メモリインターフェース４４０は、映像データを各メモリチップ群Ｇにおける複数のメモリチップ１〜Ｍに並列に書き込む。また、メモリインターフェース４４０は、映像データを各メモリチップ群Ｇにおける複数のメモリチップ１〜Ｍから並列に読み出す。
【００２４】
図３は、第１実施形態に係るＥＣＣ回路４３０の構成を示すブロック図である。図４乃至図９は、第１実施形態に係るバッファ４２０の構成を示す図であり、ＥＣＣ符号化工程を示す図である。
【００２５】
図３に示すように、ＥＣＣ回路４３０は、書き込み回路４３１および読み出し回路４３２を備える。
【００２６】
書き込み回路４３１は、並列チップＥＣＣ符号化部４３１Ａ、およびチップ単位ＥＣＣ符号化部４３１Ｂを有する。
【００２７】
並列チップＥＣＣ符号化部４３１Ａは、バッファ４２０に受信されたデータブロックに対して、第１ＥＣＣ符号を付加する。第１ＥＣＣ符号は、バッファ４２０のデータブロックのうち、第１データ単位毎に付加される。第１データ単位は、複数のメモリチップに並列に書き込まれる１列分のデータ単位に対応する。チップ単位ＥＣＣ符号化部４３１Ｂは、第１ＥＣＣ符号が付加されたデータブロックに対して、第２ＥＣＣ符号を付加する。第２ＥＣＣ符号は、バッファ４２０のデータブロックのうち、第２データ単位毎に付加される。第２データ単位は、各メモリチップに書き込まれるデータ単位に対応する。以下に、第１ＥＣＣ符号および第２ＥＣＣ符号の詳細について詳説する。
【００２８】
図４に示すように、バッファ４２０は、１個のメモリチップ群Ｇにおける複数のメモリチップ１〜Ｍと同程度のメモリ容量を有する。ここでは、各メモリチップが１〜Ａ列（例えば、１列は１ｂｙｔｅ（８ｂｉｔ））の記憶領域を含む場合を示す。
【００２９】
まず、図５に示すように、バッファ４２０は、外部からの映像データをデータブロックとして、所定の容量分蓄積する。ここで、所定の容量は、メモリチップ１〜Ｍ−Ｐの１〜Ａ−Ｂ列までの容量である。
【００３０】
次に、図６に示すように、並列チップＥＣＣ符号化部４３１Ａは、データブロックのうち第１データ単位毎に第１ＥＣＣ符号を付加する。ここで、第１データ単位は、Ｍ−Ｐ個のメモリチップの１列分のデータ（Ｍ−Ｐｂｙｔｅ）に対応する。また、第１ＥＣＣ符号は、Ｐ個のメモリチップの１列分のデータ（Ｐｂｙｔｅ）に対応する。すなわち、第１データ単位と第１ＥＣＣ符号とで、並列に書き込まれるＭ個のメモリチップの１列分のデータ（Ｍｂｙｔｅ）となる。したがって、まず、図６に示すように、並列チップＥＣＣ符号化部４３１Ａは、メモリチップ１〜Ｍ−Ｐの１列のデータに対して、メモリチップＭ−Ｐ＋１〜Ｍの１列に第１ＥＣＣ符号を付加する。
【００３１】
その後、図７に示すように、同様に、並列チップＥＣＣ符号化部４３１Ａは順次、データブロックのうち第１データ単位毎に第１ＥＣＣ符号を付加していく。最終的に、並列チップＥＣＣ符号化部４３１Ａは、メモリチップ１〜Ｍ−ＰのＡ−Ｂ列のデータに対して、メモリチップＭ−Ｐ＋１〜ＭのＡ−Ｂ列に第１ＥＣＣ符号を付加する。
【００３２】
次に、図８に示すように、チップ単位ＥＣＣ符号化部４３１Ｂは、データブロックのうち第２データ単位毎に第２ＥＣＣ符号を付加する。ここで、第２データ単位は、１個のメモリチップのＡ−Ｂ列分のデータ（Ａ−Ｂｂｙｔｅ）に対応する。また、第２ＥＣＣ符号は、１個のメモリチップのＢ列分のデータ（Ｂｂｙｔｅ）に対応する。すなわち、第２データ単位と第２ＥＣＣ符号とで、１個のメモリチップのＡ列分のデータ（Ａｂｙｔｅ）となる。したがって、まず、図８に示すように、チップ単位ＥＣＣ符号化部４３１Ｂは、メモリチップ１の１〜Ａ−Ｂ列のデータに対して、メモリチップ１のＡ−Ｂ＋１〜Ａ列に第２ＥＣＣ符号を付加する。
【００３３】
その後、図９に示すように、同様に、チップ単位ＥＣＣ符号化部４３１Ｂは順次、データブロックのうち第２データ単位毎に第２ＥＣＣ符号を付加していく。最終的に、チップ単位ＥＣＣ符号化部４３１Ｂは、メモリチップＭの１〜Ａ−Ｂ列のデータに対して、メモリチップＭのＡ−Ｂ＋１〜Ａ列に第２ＥＣＣ符号を付加する。
【００３４】
このように、バッファ４２０において、メモリチップ１〜Ｍ−Ｐの１〜Ａ−Ｂ列がデータ領域、メモリチップＭ−Ｐ＋１〜Ｍの１〜Ａ−Ｂ列が第１ＥＣＣ領域、メモリチップ１〜ＭのＡ−Ｂ＋１〜Ａ列が第２ＥＣＣ領域となる。
【００３５】
メモリインターフェース４４０は、ＣＰＵ４１０の指示に基づいて、第１ＥＣＣ符号および第２ＥＣＣ符号が付加されたデータブロックをメモリチップ１〜Ｍの１列に対応するデータから順に並列に書き込む。
【００３６】
再度、図３に示すように、読み出し回路４３２は、チップ単位ＥＣＣ復号化部４３２Ｂおよび並列チップＥＣＣ復号化部４３２Ａを有する。
【００３７】
チップ単位ＥＣＣ復号化部４３２Ｂは、バッファ４２０に読み出されたデータブロックに対して、第２ＥＣＣ符号に基づいて第２エラー訂正を行う。第２エラー訂正は、バッファ４２０のデータブロックのうち、第２データ単位毎に行われる。並列チップＥＣＣ復号化部４３２Ａは、第２エラー訂正が行われたバッファ４２０のデータブロックに対して、第１ＥＣＣ符号に基づいて第１エラー訂正を行う。第１エラー訂正は、バッファ４２０のデータブロックのうち、第１データ単位毎に行われる。ＣＰＵ４１０は、第１エラー訂正および第２エラー訂正が行われたデータブロックを外部に送信する。
【００３８】
（第１実施形態におけるデータ書き込み方法）
図１０は、第１実施形態に係る書き込み方法を示すフローチャートである。
【００３９】
図１０に示すように、まず、ステップＳ１１において、バッファ４２０により、外部からの映像データが受信され、データブロックとして所定の容量分蓄積される。このとき、データブロックは、バッファ４２０においてメモリチップ１〜Ｍ−Ｐの１〜Ａ−Ｂ列に対応する容量まで蓄積される。
【００４０】
次に、ステップＳ１２において、並列チップＥＣＣ符号化部４３１Ａにより、並列チップＥＣＣ符号化が行われる。すなわち、データブロックのうち第１データ単位毎に第１ＥＣＣ符号が付加される。このとき、第１データ単位は、Ｍ−Ｐ個のメモリチップの１列分のデータ（Ｍ−Ｐｂｙｔｅ）に対応する。また、第１ＥＣＣ符号は、Ｐ個のメモリチップの１列分のデータ（Ｐｂｙｔｅ）に対応する。
【００４１】
その後、ステップＳ１３において、並列チップＥＣＣ符号化がＡ−Ｂ列まで終了したか否かが判断される。
【００４２】
ステップＳ１３において並列チップＥＣＣ符号化がＡ−Ｂ列まで終了していない場合、ステップＳ１２に戻って並列チップＥＣＣ符号化部４３１Ａにより、並列チップＥＣＣ符号化が行われる。
【００４３】
ステップＳ１３において並列チップＥＣＣ符号化がＡ−Ｂ列まで終了している場合、ステップＳ１４においてチップ単位ＥＣＣ符号化部４３１Ｂにより、チップ単位ＥＣＣ符号化が行われる。すなわち、データブロックのうち第２データ単位毎に第２ＥＣＣ符号が付加される。このとき、第２データ単位は、１個のメモリチップのＡ−Ｂ列分のデータ（Ａ−Ｂｂｙｔｅ）に対応する。また、第２ＥＣＣ符号は、１個のメモリチップのＢ列分のデータ（Ｂｂｙｔｅ）に対応する。
【００４４】
その後、ステップＳ１５において、チップ単位ＥＣＣ符号化がメモリチップＭまで終了したか否かが判断される。
【００４５】
ステップＳ１５においてチップ単位ＥＣＣ符号化がメモリチップＭまで終了していない場合、ステップＳ１４に戻ってチップ単位ＥＣＣ符号化部４３１Ｂにより、チップ単位ＥＣＣ符号化が行われる。
【００４６】
ステップＳ１５においてチップ単位ＥＣＣ符号化がメモリチップＭまで終了している場合、ステップＳ１６においてメモリインターフェース４４０により、映像データがメモリチップ１〜Ｍに書き込まれる。すなわち、第１ＥＣＣ符号および第２ＥＣＣ符号が付加されたデータブロックが、メモリチップ１〜Ｍの１列に対応するデータから順に並列に書き込まれる。
【００４７】
（第１実施形態におけるデータ読み出し方法）
図１１は、第１実施形態に係る読み出し方法を示すフローチャートである。
【００４８】
図１１に示すように、まず、ステップＳ２１において、メモリインターフェース４４０により、映像データがメモリチップ１〜Ｍから読み出される。すなわち、第１ＥＣＣ符号および第２ＥＣＣ符号が付加されたデータブロックが、メモリチップ１〜Ｍの１列のデータから順にバッファ４２０に並列に読み出される。
【００４９】
次に、ステップＳ２２においてチップ単位ＥＣＣ復号化部４３２Ｂにより、チップ単位ＥＣＣ復号化が行われる。すなわち、データブロックに対して、第２ＥＣＣ符号に基づいて第２エラー訂正が行われる。第２エラー訂正は、バッファ４２０のデータブロックのうち、第２データ単位毎に行われる。
【００５０】
その後、ステップＳ２３において、チップ単位ＥＣＣ復号化がメモリチップＭまで終了したか否かが判断される。
【００５１】
ステップＳ２３においてチップ単位ＥＣＣ復号化がメモリチップＭまで終了していない場合、ステップＳ２２に戻ってチップ単位ＥＣＣ復号化部４３２Ｂにより、チップ単位ＥＣＣ復号化が行われる。
【００５２】
ステップＳ２３においてチップ単位ＥＣＣ復号化がメモリチップＭまで終了している場合、ステップＳ２４において並列チップＥＣＣ復号化部４３２Ａにより、並列チップＥＣＣ復号化が行われる。すなわち、データブロックに対して、第１ＥＣＣ符号に基づいて第１エラー訂正が行われる。第１エラー訂正は、バッファ４２０のデータブロックのうち、第１データ単位毎に行われる。
【００５３】
その後、ステップＳ２５において、並列チップＥＣＣ復号化がＡ−Ｂ列まで終了したか否かが判断される。
【００５４】
ステップＳ２５において並列チップＥＣＣ復号化がＡ−Ｂ列まで終了していない場合、ステップＳ２４に戻って並列チップＥＣＣ復号化部４３１Ａにより、並列チップＥＣＣ復号化が行われる。
【００５５】
ステップＳ２５において並列チップＥＣＣ復号化がＡ−Ｂ列まで終了している場合、ステップＳ２６においてＣＰＵ４１０により、第１エラー訂正および第２エラー訂正が行われた映像データ（データブロック）が外部に送信される。
【００５６】
（第１実施形態における効果）
上記第１実施形態によれば、ＥＣＣ回路４３０は、並列チップＥＣＣ符号化部４３１Ａ、チップ単位ＥＣＣ符号化部４３１Ｂを備える。そして、並列チップＥＣＣ符号化部４３１Ａが、受信したデータブロックに対して、第１ＥＣＣ符号を付加する。第１ＥＣＣ符号は、複数のメモリチップに並列に書き込まれるデータ単位毎に付加される。すなわち、並列する複数のメモリチップ間で第１ＥＣＣ符号が付加される。これにより、複数のメモリチップのいずれかが故障した場合であっても、他のメモリチップでこれを補うことができ、その故障によるデータエラーを訂正することができる。
【００５７】
一方、チップ単位ＥＣＣ符号化部４３１Ｂが、データブロックに対して、第２ＥＣＣ符号を付加する。第２ＥＣＣ符号は、各メモリチップに書き込まれるデータ単位毎に付加される。これにより、メモリチップ単位でのＥＣＣ仕様を十分に保証することができる。
【００５８】
＜第２実施形態＞
以下に図１２乃至図１８を用いて、第２実施形態に係る半導体記憶装置について説明する。第２実施形態では、第１実施形態に対して、第１ＥＣＣ符号および第２ＥＣＣ符号の付加の順番が異なる。以下に、第２実施形態について詳説する。
【００５９】
なお、第２実施形態において、上記第１実施形態と同様の点については説明を省略し、主に異なる点について説明する。
【００６０】
（第２実施形態における構成）
図１２は、第２実施形態に係るＥＣＣ回路４３０の構成を示すブロック図である。図１３乃至図１６は、第２実施形態に係るバッファ４２０の構成を示す図であり、ＥＣＣ符号化工程を示す図である。
【００６１】
図１２に示すように、第２実施形態では、チップ単位ＥＣＣ符号化部４３１Ｂは、バッファ４２０に受信されたデータブロックに対して、第２ＥＣＣ符号を付加する。並列チップＥＣＣ符号化部４３１Ａは、第２ＥＣＣ符号が付加されたデータブロックに対して、第１ＥＣＣ符号を付加する。以下に、第１ＥＣＣ符号および第２ＥＣＣ符号の詳細について詳説する。
【００６２】
まず、第１実施形態と同様、図５に示すように、バッファ４２０は、外部からの映像データをデータブロックとして、所定の容量分蓄積する。
【００６３】
次に、図１３に示すように、チップ単位ＥＣＣ符号化部４３１Ｂは、データブロックのうち第２データ単位毎に第２ＥＣＣ符号を付加する。より具体的には、まず、チップ単位ＥＣＣ符号化部４３１Ｂは、メモリチップ１の１〜Ａ−Ｂ列のデータに対して、メモリチップ１のＡ−Ｂ＋１〜Ａ列に第２ＥＣＣ符号を付加する。
【００６４】
その後、図１４に示すように、同様に、チップ単位ＥＣＣ符号化部４３１Ｂは順次、データブロックのうち第２データ単位毎に第２ＥＣＣ符号を付加していく。最終的に、チップ単位ＥＣＣ符号化部４３１Ｂは、メモリチップＭ−Ｐの１〜Ａ−Ｂ列のデータに対して、メモリチップＭ−ＰのＡ−Ｂ＋１〜Ａ列に第２ＥＣＣ符号を付加する。
【００６５】
次に、図１５に示すように、並列チップＥＣＣ符号化部４３１Ａは、データブロックのうち第１データ単位毎に第１ＥＣＣ符号を付加する。より具体的には、まず、並列チップＥＣＣ符号化部４３１Ａは、メモリチップ１〜Ｍ−Ｐの１列のデータに対して、メモリチップＭ−Ｐ＋１〜Ｍの１列の第１ＥＣＣ符号を付加する。
【００６６】
その後、図１６に示すように、同様に、並列チップＥＣＣ符号化部４３１Ａは順次、データブロックのうち第１データ単位毎に第１ＥＣＣ符号を付加していく。最終的に、並列チップＥＣＣ符号化部４３１Ａは、メモリチップ１〜Ｍ−ＰのＡ列のデータに対して、メモリチップＭ−Ｐ＋１〜ＭのＡ列に第１ＥＣＣ符号を付加する。
【００６７】
このように、バッファ４２０において、メモリチップ１〜Ｍ−Ｐの１〜Ａ−Ｂ列がデータ領域、メモリチップＭ−Ｐ＋１〜Ｍの１〜Ａ列が第１ＥＣＣ領域、メモリチップ１〜Ｍ−ＰのＡ−Ｂ＋１〜Ａ列が第２ＥＣＣ領域となる。
【００６８】
再度、図１２に示すように、並列チップＥＣＣ復号化部４３２Ａは、バッファ４２０に読み出されたデータブロックに対して、第１ＥＣＣ符号に基づいて第１エラー訂正を行う。チップ単位ＥＣＣ復号化部４３２Ｂは、第１エラー訂正が行われたバッファ４２０のデータブロックに対して、第２ＥＣＣ符号に基づいて第２エラー訂正を行う。ＣＰＵ４１０は、第１エラー訂正および第２エラー訂正が行われたデータブロックを外部に送信する。
【００６９】
（第２実施形態におけるデータ書き込み方法）
図１７は、第２実施形態に係る書き込み方法を示すフローチャートである。
【００７０】
図１７に示すように、まず、ステップＳ３１において、バッファ４２０により、外部からの映像データが受信され、データブロックとして所定の容量分蓄積される。
【００７１】
次に、ステップＳ３２において、チップ単位ＥＣＣ符号化部４３１Ｂにより、チップ単位ＥＣＣ符号化が行われる。すなわち、データブロックのうち第２データ単位毎に第２ＥＣＣ符号が付加される。
【００７２】
その後、ステップＳ３３において、チップ単位ＥＣＣ符号化がメモリチップＭ−Ｐまで終了したか否かが判断される。
【００７３】
ステップＳ３３においてチップ単位ＥＣＣ符号化がメモリチップＭ−Ｐまで終了していない場合、ステップＳ３２に戻ってチップ単位ＥＣＣ符号化部４３１Ｂにより、チップ単位ＥＣＣ符号化が行われる。
【００７４】
ステップＳ３３においてチップ単位ＥＣＣ符号化がメモリチップＭまで終了している場合、ステップＳ３４において並列チップＥＣＣ符号化部４３１Ａにより、並列チップＥＣＣ符号化が行われる。すなわち、データブロックのうち第１データ単位毎に第１ＥＣＣ符号が付加される。このとき、第１データ単位は、Ｍ−Ｐ個のメモリチップの１列分のデータ（Ｍ−Ｐｂｙｔｅ）に対応する。また、第１ＥＣＣ符号は、Ｐ個のメモリチップの１列分のデータ（Ｐｂｙｔｅ）に対応する。
【００７５】
その後、ステップＳ３５において、並列チップＥＣＣ符号化がＡ列まで終了したか否かが判断される。
【００７６】
ステップＳ３５において並列チップＥＣＣ符号化がＡ列まで終了していない場合、ステップＳ３４に戻って並列チップＥＣＣ符号化部４３１Ａにより、並列チップＥＣＣ符号化が行われる。
【００７７】
ステップＳ３５において並列チップＥＣＣ符号化がＡ列まで終了している場合、ステップＳ３６においてメモリインターフェース４４０により、映像データがメモリチップ１〜Ｍに書き込まれる。すなわち、第１ＥＣＣ符号および第２ＥＣＣ符号が付加されたデータブロックが、メモリチップ１〜Ｍの１列に対応するデータから順に並列に書き込まれる。
【００７８】
（第２実施形態におけるデータ読み出し方法）
図１８は、第２実施形態に係る読み出し方法を示すフローチャートである。
【００７９】
図１８に示すように、まず、ステップＳ４１において、メモリインターフェース４４０により、映像データがメモリチップ１〜Ｍから読み出される。すなわち、第１ＥＣＣ符号および第２ＥＣＣ符号が付加されたデータブロックが、メモリチップ１〜Ｍの１列のデータから順にバッファ４２０に並列に読み出される。
【００８０】
次に、ステップＳ４２において、並列チップＥＣＣ復号化部４３２Ａにより、並列チップＥＣＣ復号化が行われる。すなわち、データブロックに対して、第１ＥＣＣ符号に基づいて第１エラー訂正が行われる。第１エラー訂正は、バッファ４２０のデータブロックのうち、第１データ単位毎に行われる。
【００８１】
その後、ステップＳ４３において、並列チップＥＣＣ復号化がＡ列まで終了したか否かが判断される。
【００８２】
ステップＳ４３において並列チップＥＣＣ復号化がＡ列まで終了していない場合、ステップＳ４２に戻って並列チップＥＣＣ復号化部４３１Ａにより、並列チップＥＣＣ復号化が行われる。
【００８３】
ステップＳ４３において並列チップＥＣＣ復号化がＡ列まで終了している場合、ステップＳ４４においてチップ単位ＥＣＣ復号化部４３２Ｂにより、チップ単位ＥＣＣ復号化が行われる。すなわち、データブロックに対して、第２ＥＣＣ符号に基づいて第２エラー訂正が行われる。第２エラー訂正は、バッファ４２０のデータブロックのうち、第２データ単位毎に行われる。
【００８４】
その後、ステップＳ４５において、チップ単位ＥＣＣ復号化がメモリチップＭ−Ｐまで終了したか否かが判断される。
【００８５】
ステップＳ４５においてチップ単位ＥＣＣ復号化がメモリチップＭ−Ｐまで終了していない場合、ステップＳ４４に戻ってチップ単位ＥＣＣ復号化部４３２Ｂにより、チップ単位ＥＣＣ復号化が行われる。
【００８６】
ステップＳ４５においてチップ単位ＥＣＣ復号化がメモリチップＭ−Ｐまで終了している場合、ステップＳ４６においてＣＰＵ４１０により、第１エラー訂正および第２エラー訂正が行われた映像データ（データブロック）が外部に送信される。
【００８７】
（第２実施形態における効果）
上記第２実施形態によれば、チップ単位ＥＣＣ符号化部４３１Ｂがデータブロックに対して第２ＥＣＣ符号を付加した後に、並列チップＥＣＣ符号化部４３１Ａが受信したデータブロックに対して第１ＥＣＣ符号を付加する。すなわち、第１実施形態に対して、第１ＥＣＣ符号および第２ＥＣＣ符号の付加の順番が逆である。これにより、第１実施形態と同様の効果を得ることができる。
【００８８】
＜第３実施形態＞
以下に図１９乃至図２１を用いて、第３実施形態に係る半導体記憶装置について説明する。第３実施形態では、上記第１実施形態に対して、第１データ単位を大きくする。これにより、読み出し時および書き込み時のデータエラーについてエラー訂正不能となる確率を小さくすることができ、さらなる信頼性の向上を図ることができる。以下に、第３実施形態について詳説する。
【００８９】
なお、第３実施形態において、上記第１実施形態と同様の点については説明を省略し、主に異なる点について説明する。
【００９０】
（第３実施形態における構成）
図１９は、第３実施形態に係るバッファ４２０の構成を示す図であり、ＥＣＣ符号化工程を示す図である。
【００９１】
第３実施形態では、第１データ単位は、複数のメモリチップに並列に書き込まれるＮ列分のデータ単位に対応する。
【００９２】
以下に、第１ＥＣＣ符号および第２ＥＣＣ符号の詳細について詳説する。
【００９３】
まず、第１実施形態と同様、図５に示すように、バッファ４２０は、外部からの映像データをデータブロックとして、所定の容量分蓄積する。
【００９４】
次に、図１９に示すように、並列チップＥＣＣ符号化部４３１Ａは、データブロックのうち第１データ単位毎に第１ＥＣＣ符号を付加する。ここで、第１データ単位は、Ｍ−Ｐ個のメモリチップのＮ列分のデータ（（Ｍ−Ｐ）×Ｎｂｙｔｅ）に対応する。また、第１ＥＣＣ符号は、Ｐ個のメモリチップのＮ列分のデータ（Ｐ×Ｎｂｙｔｅ）に対応する。すなわち、第１データ単位と第１ＥＣＣ符号とで、並列に書き込まれるＭ個のメモリチップのＮ列分のデータ（Ｍ×Ｎｂｙｔｅ）となる。したがって、まず、図１９に示すように、並列チップＥＣＣ符号化部４３１Ａは、メモリチップ１〜Ｍ−Ｐの１〜Ｎ列のデータに対して、メモリチップＭ−Ｐ＋１〜Ｍの１〜Ｎ列に第１ＥＣＣ符号を付加する。
【００９５】
その後、同様に、並列チップＥＣＣ符号化部４３１Ａは順次、データブロックのうち第１データ単位毎に第１ＥＣＣ符号を付加していく。最終的に、並列チップＥＣＣ符号化部４３１Ａは、メモリチップ１〜Ｍ−ＰのＡ−Ｂ列のデータに対して、メモリチップＭ−Ｐ＋１〜ＭのＡ−Ｂ列に第１ＥＣＣ符号を付加する。
【００９６】
その後は、第１実施形態と同様の動作が行われる。すなわち、チップ単位ＥＣＣ符号化部４３１Ｂがデータブロックのうち第２データ単位毎に第２ＥＣＣ符号を付加し、メモリインターフェース４４０がＣＰＵ４１０の指示に基づいて第１ＥＣＣ符号および第２ＥＣＣ符号が付加されたデータブロックをメモリチップ１〜Ｍの１〜Ｎ列に対応するデータから順に並列に書き込む。
【００９７】
（第３実施形態におけるデータ書き込み方法）
図２０は、第３実施形態に係る書き込み方法を示すフローチャートである。
【００９８】
図２０に示すように、まず、第１実施形態と同様に、ステップＳ５１において、バッファ４２０により、外部からの映像データが受信され、データブロックとして所定の容量分蓄積される。
【００９９】
次に、ステップＳ５２において、並列チップＥＣＣ符号化部４３１Ａにより、並列チップＥＣＣ符号化が行われる。すなわち、データブロックのうち第１データ単位毎に第１ＥＣＣ符号が付加される。このとき、第１データ単位は、Ｍ−Ｐ個のメモリチップのＮ列分のデータ（（Ｍ−Ｐ）×Ｎｂｙｔｅ）に対応する。また、第１ＥＣＣ符号は、Ｐ個のメモリチップのＮ列分のデータ（Ｐ×Ｎｂｙｔｅ）に対応する。
【０１００】
その後、ステップＳ５３において、並列チップＥＣＣ符号化がＡ−Ｂ列まで終了したか否かが判断される。
【０１０１】
ステップＳ５３において並列チップＥＣＣ符号化がＡ−Ｂ列まで終了していない場合、ステップＳ５２に戻って並列チップＥＣＣ符号化部４３１Ａにより、第１データ単位（（（Ｍ−Ｐ）×Ｎｂｙｔｅ）単位）で並列チップＥＣＣ符号化が行われる。
【０１０２】
ステップＳ５３において並列チップＥＣＣ符号化がＡ−Ｂ列まで終了している場合、その後、ステップＳ５４〜Ｓ５６において第１実施形態と同様の動作が行われる。すなわち、チップ単位ＥＣＣ符号化部４３１Ｂによりチップ単位ＥＣＣ符号化が行われ、メモリインターフェース４４０により映像データがメモリチップ１〜Ｍに書き込まれる。
【０１０３】
（第３実施形態におけるデータ読み出し方法）
図２１は、第３実施形態に係る読み出し方法を示すフローチャートである。
【０１０４】
図２１に示すように、まず、ステップＳ６１〜Ｓ６３において、第１実施形態と同様の動作が行われる。すなわち、バッファ４２０により外部からの映像データが受信され、チップ単位ＥＣＣ符号化部４３１Ｂによりチップ単位ＥＣＣ符号化が行われる。
【０１０５】
次に、ステップＳ６４において、並列チップＥＣＣ復号化部４３２Ａにより、並列チップＥＣＣ復号化が行われる。すなわち、データブロックに対して、第１ＥＣＣ符号に基づいて第１エラー訂正が行われる。第１エラー訂正は、バッファ４２０のデータブロックのうち、第１データ単位（（（Ｍ−Ｐ）×Ｎｂｙｔｅ）単位）毎に行われる。
【０１０６】
その後、ステップＳ６５において、並列チップＥＣＣ復号化がＡ−Ｂ列まで終了したか否かが判断される。
【０１０７】
ステップＳ６５において並列チップＥＣＣ復号化がＡ−Ｂ列まで終了していない場合、ステップＳ２４に戻って並列チップＥＣＣ復号化部４３１Ａにより、第１データ単位（（（Ｍ−Ｐ）×Ｎｂｙｔｅ）単位）で並列チップＥＣＣ復号化が行われる。
【０１０８】
ステップＳ６５において並列チップＥＣＣ復号化がＡ−Ｂ列まで終了している場合、ステップＳ６６において、第１実施形態と同様、ＣＰＵ４１０により第１エラー訂正および第２エラー訂正が行われた映像データ（データブロック）が外部に送信される。
【０１０９】
（第３実施形態における効果）
上記第３実施形態によれば、第１実施形態に対して、第１データ単位を大きくする。より具体的には、第１データ単位は、Ｍ−Ｐ個のメモリチップのＮ（２≦Ｎ≦Ａ−Ｂ）列分のデータに対応する。また、第１ＥＣＣ符号は、Ｐ個のメモリチップのＮ列分のデータに対応する。このように、第１ＥＣＣ符号が付加される第１データ単位を大きくすることで、第１実施形態よりも読み出し時および書き込み時のデータエラーについてエラー訂正不能となる確率を小さくすることができ、さらなる信頼性の向上を図ることができる。
【０１１０】
なお、上記第３実施形態と第２実施形態とを組み合わせてもよい。
【０１１１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１２】
４００…メモリコントローラ、５００…メモリ、４３１Ａ…並列チップＥＣＣ符号化部、４３１Ｂ…チップ単位ＥＣＣ符号化部、４３２Ａ…並列チップＥＣＣ復号化部、４３２Ｂ…チップ単位ＥＣＣ復号化部。
【図１】
0006479638.tif 000002
【図２】
0006479638.tif 000003
【図３】
0006479638.tif 000004
【図４】
0006479638.tif 000005
【図５】
0006479638.tif 000006
【図６】
0006479638.tif 000007
【図７】
0006479638.tif 000008
【図８】
0006479638.tif 000009
【図９】
0006479638.tif 000010
【図１０】
0006479638.tif 000011
【図１１】
0006479638.tif 000012
【図１２】
0006479638.tif 000013
【図１３】
0006479638.tif 000014
【図１４】
0006479638.tif 000015
【図１５】
0006479638.tif 000016
【図１６】
0006479638.tif 000017
【図１７】
0006479638.tif 000018
【図１８】
0006479638.tif 000019
【図１９】
0006479638.tif 000020
【図２０】
0006479638.tif 000021
【図２１】
0006479638.tif 000022