(57)【要約】【課題】本発明の技術的課題はデータのエラーを訂正することができる半導体ストーリッジシステムおよびその制御方法を提供することにある。【解決手段】半導体ストーリッジシステムは、複数のセルを含むメモリ領域と、ライトするとき、入力データに対して１次ＥＣＣエンコーディングした後、該１次ＥＣＣエンコーディングされた結果を圧縮して２次ＥＣＣエンコーディングすることによって入力データがライトできるように制御し、リードするとき、メモリ領域のデータをリードして１次ＥＣＣデコーディングして、該１次ＥＣＣデコーディングされた結果を圧縮解除後、２次ＥＣＣデコーディングして、メモリ領域のデータがリードされるように制御するデータ制御部を含むメモリコントローラとを含む。【選択図】図２
2011134433.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルを含むメモリ領域と、
ライトするとき、入力データに対して１次ＥＣＣエンコーディングした後、該１次ＥＣＣエンコーディングされた結果を圧縮して２次ＥＣＣエンコーディングすることによって前記入力データがライトできるように制御し、リードするとき、前記メモリ領域のデータをリードして１次ＥＣＣデコーディングして、該１次ＥＣＣデコーディングされた結果を圧縮解除後、２次ＥＣＣデコーディングして前記メモリ領域のデータがリードされるように制御するデータ制御部を含むメモリコントローラとを含むことを特徴とする、半導体ストーリッジシステム。
【請求項２】
前記データ制御部は、
ライトするとき、前記入力データをエンコーディングして第１パリティを生成して、前記入力データと前記第１パリティを一緒に圧縮して再度エンコーディングすることによって第２パリティを生成するライト制御部と、
リードするとき、前記メモリ領域の前記データに対して前記第２パリティを用いてデコーディングすることによって１次誤り訂正して、該第１誤り訂正した結果に対して圧縮解除して前記第１パリティを用いて第２誤り訂正するリード制御部とを含むことを特徴とする、請求項１に記載の半導体ストーリッジシステム。
【請求項３】
前記ライト制御部は、
前記入力データをエンコーディングして前記第１パリティを提供する第１エンコーダーと、
該第１エンコーダーの出力結果を圧縮する圧縮部と、
該圧縮部の出力をエンコーディングして前記第２パリティを提供する第２エンコーダーとを含むことを特徴とする、請求項２に記載の半導体ストーリッジシステム。
【請求項４】
前記リード制御部は、
前記メモリ領域の前記データに対して前記第２パリティを用いてデコーディングする第１デコーダーと、
該第１デコーダーの出力結果を圧縮解除する圧縮解除部と、
該圧縮解除部の出力に対して前記第１パリティを用いてデコーディングする第２デコーダーとを含むことを特徴とする、請求項２に記載の半導体ストーリッジシステム。
【請求項５】
外部から提供された入力データに対して１次ＥＣＣエンコーディングして、該１次エンコーディングの結果を圧縮して、圧縮された結果に対して２次ＥＣＣエンコーディングして該当セルに前記入力データをライトするステップと、
前記該当セルのセルデータを１次ＥＣＣデコーディングして、該１次ＥＣＣデコーディングされた結果を圧縮解除して、圧縮解除された結果に対して２次ＥＣＣデコーディングすることで、前記２次デコーディングされたデータをリードするステップとを含むことを特徴とする、半導体ストーリッジシステムの制御方法。
【請求項６】
前記ライトするステップにおいて、
前記１次ＥＣＣエンコーディングするとき、第１パリティを生成して、
前記１次ＥＣＣエンコーディングした結果を圧縮するとき、前記入力データと前記第１パリティも一緒に圧縮することを特徴とする、請求項５に記載の半導体ストーリッジシステムの制御方法。
【請求項７】
前記ライトするステップにおいて、
前記２次エンコーディングするとき、第２パリティを生成することを特徴とする、請求項６に記載の半導体ストーリッジシステムの制御方法。
【請求項８】
前記リードするステップにおいて、
前記１次ＥＣＣデコーディングするとき、前記セルデータに対して１次誤り訂正して、
該１次誤り訂正されたデータに対して圧縮解除することを特徴とする、請求項５に記載の半導体ストーリッジシステムの制御方法。
【請求項９】
前記リードするステップにおいて、
前記２次ＥＣＣデコーディングするとき、前記圧縮解除されたデータに対して２次誤りを訂正することを特徴とする、請求項８に記載の半導体ストーリッジシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体ストーリッジシステム及びその制御方法に関するもので、より具体的にはＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  Ｃｏｒｒｅｃｔｉｏｎ、誤り検出訂正）回路を含む半導体ストーリッジシステム及びその制御方法に関するものである。
【背景技術】
【０００２】
一般的に非揮発性メモリは多くの携帯用情報機器の保存用メモリとして使われている。より一層、最近ではＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）においてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）の代わりにナンド（ＮＡＮＤ）フラッシュメモリを使ったＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）が市場に発表されて速い速度でＨＤＤ市場を蚕食することが見込まれている。
【０００３】
かかるＳＳＤのような半導体ストーリッジシステム（半導体記憶システム）はフラッシュメモリの特徴によりデータを更新しようとすると、まず、ライト（書き込み）する前に選択されたデータ保存領域で削除を行わなければならない。仮に、データ等の更新頻度が高ければ、これらの頻繁な削除及びライト動作によってメモリセルの老化（ａｇｉｎｇ）が早く進行させられる。これによって、データのサイズが大きければ老化領域もそれだけ大きくなるということを意味する。また、データサイズが大きいほどこれらに対するフラッシュメモリ領域でのライトビジータイム（Ｗｒｉｔｅ  Ｂｕｓｙ  Ｔｉｍｅ）が大きくなるのでデータ電送時間が増加する。また、ナンド（ＮＡＮＤ）フラッシュメモリを使った半導体ストーリッジシステムはメモリセルにデータをライトする場合、誤動作または隣接セルのライト影響により、既に保存されたセルの臨界値レベルが変化する場合がある。このように、臨界値レベルが変化した場合読み出したデータの精密度が低下させられる。
【０００４】
このような半導体ストーリッジシステムは、限定されたメモリ領域の資源により多くのデータを保存することができながらもより長く使用することができたり、正確なデータの電送方法等が強力に要求されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−００４５５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の技術的課題は、データのエラーを訂正することができる半導体ストーリッジシステムを提供することにある。
【０００７】
本発明の技術的課題は、データのエラーを訂正することができる半導体ストーリッジシステムの制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の技術的課題を達成するために、本発明の一態様に係る半導体ストーリッジシステムは、複数のセルを含むメモリ領域と、ライトするとき、入力データに対して１次ＥＣＣエンコーディングした後、該１次エンコーディングされた結果を圧縮して２次ＥＣＣエンコーディングすることで前記入力データがライトできるように制御し、リード（読み出し）するとき、前記メモリ領域のデータをリードして１次ＥＣＣデコーディングして、該１次ＥＣＣデコーディングされた結果を圧縮解除後、２次ＥＣＣデコーディングして前記メモリ領域のデータがリードできるように制御するデータ制御部を含むメモリコントローラとを含む。
【０００９】
本発明の他の技術的課題を達成するために、本発明の他の態様に係る半導体ストーリッジシステムの制御方法は、外部から提供された入力データに対して１次ＥＣＣエンコーディングして、該１次エンコーディングされた結果を圧縮して、圧縮された結果に対して２次ＥＣＣエンコーディングして該当セルに前記入力データをライトするステップと、前記該当セルのセルデータを1次ＥＣＣデコーディングして、該１次ＥＣＣデコーディングされた結果を圧縮解除して、圧縮解除された結果に対して２次ＥＣＣデコーディングすることで前記２次デコーディングされたデータをリードするステップとを含む。
【発明の効果】
【００１０】
本発明の一態様によると、データに対して１次ＥＣＣを行い、行われた結果物自体を圧縮して再度ＥＣＣを遂行することによって、データの訂正度を向上することができ、また、圧縮された結果物に対してＥＣＣを遂行することによって誤り訂正に対する負担を減らすことができる。また、圧縮されたデータを保存することによってメモリ領域の限定された資源の効率を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る半導体ストーリッジシステムのブロック図である。
【図２】図１に係るデータ制御部のブロック図である。
【図３】図２に係るデータ資料構造を概念的に示したブロック図である。
【図４】本発明の一実施形態に係る半導体ストーリッジシステムの制御方法を示したフローチャートである。
【図５】本発明の一実施形態に係る半導体ストーリッジシステムの制御方法を示したフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態に係る半導体ストーリッジシステム及び制御方法を説明するためのブロック図またはフローチャートなどを参考にして本発明について説明する。
【００１３】
また、各ブロック図は特定された論理的な機能を実行するための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を表すことができる。また、いくつかの他の実施形態ではブロック等で言及された機能などが順序を抜け出して発生することも可能であることに注目しなければならない。例えば、相次いで図示されている二つのブロックは事実、実質的に同時に遂行されることも可能であり、またはそのブロックらが時々該当する機能により逆順で遂行されることも可能である。
【００１４】
まず、図１を参照して、本実施形態に係る半導体ストーリッジシステムについて説明する。
【００１５】
図１は本実施形態に係る半導体ストーリッジシステム１００のブロック図である。ここで、半導体ストーリッジシステム１００はナンドフラッシュメモリを利用したシステムを例示する。
【００１６】
図１を参照すれば、半導体ストーリッジシステム１００はホストインターフェース１１０、バッファー部１２０、ＭＣＵ１３０、メモリコントローラ１４０及びメモリ領域１５０を含む。
【００１７】
まず、ホストインターフェース１１０はバッファー部１２０と連結される。ホストインターフェース１１０は、外部ホスト（図示略）とバッファー部１２０との間で制御命令、アドレス信号及びデータ信号を送受信する。ホストインターフェース１１０と外部ホスト（図示略）との間のインターフェース方式は、直列ＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ；ＳＡＴＡ）、並列ＡＴＡ（Ｐａｒａｌｌｅｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ；ＰＡＴＡ）及びＳＣＳＩ、エクスプレスカード（Ｅｘｐｒｅｓｓ  Ｃａｒｄ）、ＰＣＩ−エクスプレス（ＰＣＩ−Ｅｘｐｒｅｓｓ）方式のうち、いずれか一つを使うことができ、特別な制限はない。
【００１８】
バッファー部１２０は、ホストインターフェース１１０からの出力信号をバッファーリングしたり、論理的アドレス及び物理的アドレス間のマッピング情報及びメモリ領域のブロック割当情報、ブロックの削除回数及び外部から受信されたデータを臨時保存したりする。バッファー部１２０としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）またはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いたバッファーを採用することができる。
【００１９】
ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１３０は、ホストインターフェース１１０との間で制御命令、アドレス信号及びデータ信号などを送受信したり、このような信号などによってメモリコントローラ１４０を制御したりする。
【００２０】
一方、本実施形態に係るメモリコントローラ１４０はデータ制御部１４５を含む。まず、通常のコントローラのように、メモリコントローラ１４０は、ホストインターフェース１１０からの入力データとライト命令語とを受信して、入力データをメモリ領域１５０にライトできるように制御する。これと同じように、メモリコントローラ１４０は、ホストインターフェース１１０からのリード命令語を受信すると、メモリ領域１５０からのデータをリードして外部に出力するように制御する。
【００２１】
ライトする時、データ制御部１４５は、ホストインターフェース１１０から受信されたデータの誤りをチェックするためのパリティビット（ｐａｒｉｔｙ  ｂｉｔ）を生成して、その結果を圧縮して、圧縮されたデータに対して再度データ誤りをチェックするためのパリティビットを生成した後、メモリ領域１５０に記入をする。これに対し、リードする時、メモリ領域１５０からのデータに対してパリティビットを用いて誤りをチェックして、チェックされた結果を圧縮解除して再度データ誤りをチェックして外部ホストインターフェースに提供する。
【００２２】
より具体的に説明すれば、ライトする時、データ制御部１４５は１次ＥＣＣエンコーディング（ｅｎｃｏｄｉｎｇ）を行った後、１次ＥＣＣエンコーディング結果で生成されたパリティビットまで含んで圧縮して、これに対して２次ＥＣＣエンコーディングを行うようにする。
【００２３】
ライト過程に対して前述したが、リード過程はライト過程の逆順で説明できる。例えば、リード時にはデータ制御部１４５がメモリ領域１５０に保存されたデータとパリティビットを用いて１次ＥＣＣデコーディングをして誤りをチェックして、チェックされた結果を圧縮解除することによって、ライト時、圧縮される前のデータ形態通りに復元させることができる。圧縮解除されたデータに対して２次ＥＣＣデコーディングをして、誤りを再度チェックして外部ホストインターフェース１１０に提供することによって、信頼性が向上されたデータをリードすることができる。
【００２４】
このように、本実施形態によれば、２回のＥＣＣエンコーディング及びデコーディングを行うことによって、データの誤り訂正率（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｒａｔｅ）をより一層向上することができる。また、圧縮されたデータをメモリ領域１５０に提供することによって、ライトビジータイムを縮めることが出来ることはもちろん、限定されたメモリ領域１５０の資源により多くのデータを保存することができる。
【００２５】
メモリ領域１５０は、メモリコントローラ１４０により制御され、データのライト、削除及びリード動作が行われる。ここで、メモリ領域１５０としてはナンドフラッシュメモリを採用することができる。本実施形態では、ナンドフラッシュメモリのセルとしてはＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）またはＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）を採用することができる。
【００２６】
図２は図１に係るデータ制御部１４５を概念的に図示したブロック図であり、図３は図２に係るデータ制御部１４５とメモリ領域１５０との間のデータ資料構造関係を概念的に表したブロック図である。
【００２７】
図２及び図３を参照すると、本実施形態に係るデータ制御部１４５はライト制御部１４５４及びリード制御部１４５８を含む。
【００２８】
まず、ライト制御部１４５４は第１ＥＣＣエンコーダー１４５１、圧縮部１４５２及び第２ＥＣＣエンコーダー１４５３を含む。
【００２９】
第１ＥＣＣエンコーダー１４５１は、入力データ（ＤＩＮ）をエンコーディングして、図３に図示されるように、一緒にセルデータ（ｄａｔａ）及び第１パリティ（Ｐ１）を生成する。一般的に、ＥＣＣエンコーディングは、データ電送中発生し得る誤りをチェックするために符号化する技術である。すなわち、通信回線を通してデータを送る途中に信号が弱くなったり外部電波の影響で正しく受信することができない場合、このようなエラーを検出したり訂正するために本来のデータ以外に確認のために使用する情報、すなわちパリティ情報を付加するものである。ここで、１次（１ｓｔ）ＥＣＣエンコーディングアルゴリズムとしてはリードソロモン（Ｒｅｅｄ  Ｓｏｌｏｍｏｎ）を利用する場合を例示する。しかし、これに制限されるのではない。
【００３０】
圧縮部１４５２は、第１ＥＣＣエンコーダー１４５１でエンコーディングされた結果物であるセルデータ（ｄａｔａ）及び第１パリティ（Ｐ１）を一緒に圧縮して圧縮データ（ｃｏｍｐ）を提供する。圧縮するアルゴリズムとしては、連続する同じ字をその数字だけ記憶したり、特別に考案されたコーディング技法で頻度数が多い単語の長さを縮めたり、資料間の空間を減らすアルゴリズムなどがある。したがって、このような圧縮アルゴリズムにはデータを小さな大きさに変換させるための様々なアルゴリズムを全て含むことができる。これによってデータが圧縮されるだけでなく、データのエンコーディング結果物である第１パリティ（Ｐ１）も圧縮されることができる。
【００３１】
第２ＥＣＣエンコーダー１４５２は圧縮データ（ｃｏｍｐ）に対してエンコーディングを行って、図３に図示されるように、最終データ（ＤＡＴＡ）及び第２パリティ（Ｐ２）を生成する。ここで、２次（２ｎｄ）ＥＣＣエンコーディングアルゴリズムとしては、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）アルゴリズムを利用する場合を例示する。一方、生成された第２パリティ（Ｐ２）は、例えば、図示されていないが、データ制御部１４５の一部保存領域に保存される。
【００３２】
このように、データをライトする時、２回にわたってＥＣＣエンコーディングを行うことによってデータの電送信頼度を向上するだけではなく、圧縮データを提供することによってメモリ領域（図１の１５０参照）の限定された資源を效率的に利用することができる。
【００３３】
一方、リード制御部１４５８は、第１ＥＣＣデコーダー１４５７、圧縮解除部１４５６及び第２ＥＣＣデコーダー１４５５を含む。
【００３４】
第１ＥＣＣデコーダー１４５７はリードする時、圧縮データ（ｃｏｍｐ）及び第２パリティ（Ｐ２）を用いてデータの誤り有無をチェックして、チェック結果によってデータを訂正して訂正されたデータ（ｃｏｒ＿ｄａｔａ）を提供する。第１ＥＣＣデコーダー１４５７は、第２ＥＣＣエンコーダー１４５３に対応してデコーディングできるように備えられ、ＢＣＨアルゴリズムの復号技術を利用する場合を例示する。
【００３５】
圧縮解除部１４５６は、１次ＥＣＣデコーディングされた結果に対して、第１ＥＣＣエンコーダー１４５１の結果物形態の圧縮解除データ（ｄｅｃｏｍｐ）に、すなわち圧縮部１４５２により圧縮される前のデータ形態に復元するように圧縮を解除する。圧縮解除部１４５６の原理は、圧縮部１４５２の原理を逆に利用するようにすれば可能であり、これは当業者ならば理解可能な内容であるからこれに対する説明は省略する。
【００３６】
第２ＥＣＣデコーダー１４５５は、圧縮解除された結果に対して２次ＥＣＣデコーディングを行って、図３に示されるように、セルデータ（ｄａｔａ）及び第１パリティ（Ｐ１）を用いてデータの誤り有無をチェックして、チェック結果によってデータを訂正して出力データ（ＤＯＵＴ）を提供する。第２ＥＣＣデコーダー１４５５は第１ＥＣＣエンコーダー１４５１に対応してデコーディングできるように備えられ、リードソロモンの復号技術を利用すれば可能である。
【００３７】
図４及び図５は、図１の半導体ストーリッジシステムによりライト及びリードする時の半導体ストーリッジシステムの動作を表したフローチャートである。
【００３８】
図１乃至図４を参照すれば、ライトする時、入力データ（ＤＩＮ）に対して１次ＥＣＣエンコーディングを行う（Ｓ１０）。
【００３９】
１次ＥＣＣエンコーディングを行うことによってセルデータ（ｄａｔａ）及び第１パリティ（Ｐ１）を生成する。
【００４０】
１次ＥＣＣエンコーディングした結果を圧縮する（Ｓ２０）。
【００４１】
これによって、データが圧縮されるだけではなく、データのエンコーディング結果物である第１パリティ（Ｐ１）も圧縮されることができる。
【００４２】
圧縮された結果物に対して２次ＥＣＣエンコーディングを行う（Ｓ３０）。
【００４３】
２次ＥＣＣエンコーディングは、圧縮する時、発生し得る誤りをチェックするためと、実際にメモリセル領域（図１の１５０参照）にライトされるデータに対する誤り訂正率を高めるためである。
【００４４】
最終結果物のデータをライトする（Ｓ４０）。
【００４５】
次に、図１乃至図５を参照してリードする時の半導体ストーリッジシステムの動作を説明する。
【００４６】
リードする時、メモリセル領域（図１の１５０参照）からのデータに対して１次ＥＣＣデコーディングを行う（Ｓ５０）。
【００４７】
より詳細に説明すれば、メモリセル領域（図１の１５０参照）からのデータをリードして、データ制御部（図１の１４５参照）に保存された第２パリティ（Ｐ２）を用いてデータの誤りをチェックして、誤りがあればデータを訂正する。
【００４８】
１次デコーディング結果に対して圧縮解除を行う（Ｓ６０）。
【００４９】
すなわち、１次デコーディング結果によるデータに対して圧縮解除を行うことによって、圧縮される前のデータ形態に復元する。
【００５０】
圧縮解除された結果に対して２次ＥＣＣデコーディングを行う（Ｓ７０）。
【００５１】
圧縮解除されたデータの誤りをチェックして、誤りがあればデータを訂正する。
【００５２】
訂正されたデータまたは訂正されなかったデータを出力データ（ＤＯＵＴ）としてホストインターフェース（図１の１５０参照）に提供して、これによってデータリード動作を完了する（Ｓ８０）。
【００５３】
このように、本実施形態によると、データに対して１次ＥＣＣを行い、行った結果物自体を圧縮して再度ＥＣＣを行うことによって、データの訂正率を向上することができ、圧縮された結果物に対してＥＣＣを行うことによって誤り訂正に対する負担を減らすことができる。また、圧縮されたデータを保存することによって、メモリ領域の限定された資源の効率を向上することができる。
【００５４】
本発明が属する技術分野の当業者は、本発明をその技術的史上や必須特徴を変更することなく他の具体的な形態で実施できるので、以上で記述した一実施形態等はあらゆる面で例示的なものであり、これらに限定されるものでないこととして理解しなければならない。本発明の範囲は前記詳細な説明よりは、後述する特許請求の範囲によって表され、特許請求の範囲の意味及び範囲そしてその等価概念から想到されるあらゆる変更または変形を適応した形態が本発明の範囲に含まれると解析されなければならない。
【符号の説明】
【００５５】
１１０  ホストインターフェース
１２０  バッファー部
１３０  ＭＣＵ
１４０  メモリコントローラ
１４５  データ制御部
１５０  メモリ領域
１４５１  第１ＥＣＣエンコーダー（第１エンコーダー）
１４５２  圧縮部
１４５３  第２ＥＣＣエンコーダー（第２エンコーダー）
１４５４  ライト制御部
１４５５  第２ＥＣＣデコーダー（第２デコーダー）
１４５６  圧縮解除部
１４５７  第１ＥＣＣデコーダー（第１デコーダー）
１４５８  リード制御部
【図１】
2011134433.tif 000003
【図２】
2011134433.tif 000004
【図３】
2011134433.tif 000005
【図４】
2011134433.tif 000006
【図５】
2011134433.tif 000007