(57)【要約】【課題】メモリコントローラの部分データ（ｐａｒｔｉａｌ  ｄａｔａ）を変更する方法を提供する。【解決手段】ホストから部分データを変更するための要求信号を受信する段階と、エラー検出コード（ＥＤＣ）を利用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、メモリ装置から読み取られた部分データにエラーがない場合、ホストから提供される新しいデータＤｎｅｗとメモリ装置から読み取られた部分データ（Ｄｏｌｄ、既存のデータと言う）との差を求め、データの差Ｄｄｉｆとメモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して、新しいパリティＰｎｅｗを計算する段階と、新しいデータと新しいパリティをメモリ装置に保存する段階を含む。本発明によれば、変更しようとする一部のデータにエラーがある場合にエラーを早期に検出し、訂正することによって新しいパリティのエラーが発生することを防止する。【選択図】      図２０
2014099174.tif 000002
【特許請求の範囲】
【請求項１】
ホストから部分データを変更するための要求信号を受信する段階と、
エラー検出コード（ＥＤＣ）を利用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、
前記メモリ装置から読み取られた部分データにエラーがない場合には、前記ホストから提供される新しいデータＤｎｅｗと前記メモリ装置から読み取られた部分データ（Ｄｏｌｄ、既存のデータと言う）との差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して、新しいパリティＰｎｅｗを計算する段階と、
前記新しいデータと前記新しいパリティを前記メモリ装置に保存する段階を含むことを特徴とするメモリコントローラの部分データを変更する方法。
【請求項２】
前記既存のデータにエラーがある場合には、前記メモリ装置から全データの読み取りを実行し、エラー訂正コード（ＥＣＣ）を使用して、前記既存のデータのエラーを訂正する段階をさらに含み、
前記既存のデータのエラーはエラー検出コードを使用して、検出され、前記データの差を計算する段階は前記既存のデータにエラーが無い場合に遂行されることを特徴とする請求項１に記載のメモリコントローラの部分データを変更する方法。
【請求項３】
前記既存のデータのエラーを訂正した後に、前記ホストから提供される新しいデータと前記エラーを訂正した既存のデータとの差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを利用して、新しいパリティＰｎｅｗを計算することを特徴とする請求項２に記載のメモリコントローラの部分データを変更する方法。
【請求項４】
前記メモリ装置に保存される全データを複数の部分データに分割し、それぞれの部分データのＥＤＣのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階とをさらに含むことを特徴とする請求項３に記載のメモリコントローラの部分データを変更する方法。
【請求項５】
前記部分データのエンコード段階を実行した後に、部分符号化データ全体のＥＣＣのためのパリティを生成する全データのエンコード段階をさらに含むことを特徴とする請求項４に記載のメモリコントローラの部分データを変更する方法。
【請求項６】
前記メモリ装置に保存される全データのＥＣＣのためのパリティを生成する全データのエンコード段階をさらに含むことを特徴とする請求項２に記載のメモリコントローラの部分データを変更する方法。
【請求項７】
前記全データのエンコード段階を実行した後に、前記メモリ装置に保存される全データを複数の部分データに分割し、全データのＥＤＣのためのパリティを生成する段階をさらに含むことを特徴とする請求項６に記載のメモリコントローラの部分データを変更する方法。
【請求項８】
それぞれの部分データのＥＤＣのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階をさらに含むことを特徴とする請求項７に記載のメモリコントローラの部分データを変更する方法。
【請求項９】
前記部分データのエンコード段階で、前記全データのエンコード段階で生成された全データの符号化パリティを生成することを特徴とする請求項８に記載のメモリコントローラの部分データを変更する方法。
【請求項１０】
ホストから部分データを変更するための要求信号を受信する段階と、
エラー訂正コード（ＥＣＣ）を使用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、
検出の結果、前記メモリ装置から読み取られた部分データにエラーがある場合にエラーを訂正し、前記ホストから提供される新しいデータＤｎｅｗと前記エラーが訂正された部分データ（Ｄｏｌｄ、既存のデータと言う）との差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して、新しいパリティＰｎｅｗを計算する段階を含むことを特徴とするメモリコントローラの部分データを変更する方法。
【請求項１１】
前記新しいデータと前記新しいパリティを前記メモリ装置に保存する段階を含むことを特徴とする請求項１０に記載のメモリコントローラの部分データを変更する方法。
【請求項１２】
前記メモリ装置に保存される全データを複数の部分データに分割し、それぞれの部分データのＥＣＣのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階と、
前記部分データのエンコード段階を実行した後に、部分符号化データ全体のＥＣＣのためのパリティを生成する全データのエンコード段階とをさらに含むことを特徴とする請求項１０に記載のメモリコントローラの部分データを変更する方法。
【請求項１３】
前記メモリ装置に保存される全データのＥＣＣのためのパリティを生成する全データのエンコード段階と、
前記全データのエンコード段階を実行した後に、前記メモリ装置に保存される全データを複数の部分データに分割し、全データのＥＣＣのためのパリティを生成する段階とをさらに含むことを特徴とする請求項１０に記載のメモリコントローラの部分データを変更する方法。
【請求項１４】
それぞれの部分データのＥＣＣのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階をさらに含むことを特徴とする請求項１３に記載のメモリコントローラの部分データを変更する方法。
【請求項１５】
前記部分データのエンコード段階で、前記全データのエンコード段階で生成された全データの符号化パリティを生成することを特徴とする請求項１４に記載のメモリコントローラの部分データを変更する方法。
【請求項１６】
検出結果、前記メモリ装置から読み取られた部分データにエラーがない場合に、前記ホストから提供される新しいデータＤｎｅｗと前記メモリ装置から読み取られた部分データＤｏｌｄとの差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して、新しいパリティＰｎｅｗを計算する段階をさらに含むことを特徴とする請求項１０に記載のメモリコントローラの部分データを変更する方法。
【請求項１７】
前記メモリ装置は、揮発性メモリ装置であることを特徴とする請求項１０に記載のメモリコントローラの部分データを変更する方法。
【請求項１８】
前記メモリ装置は、不揮発性メモリ装置であることを特徴とする請求項１０に記載のメモリコントローラの部分データを変更する方法。
【請求項１９】
メモリ装置のデータの一部が変更される場合に新しいパリティを生成するメモリコントローラにおいて、
前記変更される一部のデータの位置を識別するためのデータの位置識別器と、
前記データの位置識別器から前記変更される一部のデータの位置情報を受信して、ホストから入力される新しいデータＤｎｅｗと前記メモリ装置から入力される既存のデータＤｏｌｄとのデータの差Ｄｄｉｆを計算するデータ差の計算機と、
前記メモリ装置に保存されている既存のパリティＰｏｌｄと前記データの差Ｄｄｉｆとを利用して、新しいパリティＰｎｅｗを計算するパリティ計算機を含むことを特徴とするメモリコントローラ。
【請求項２０】
前記データの位置識別器、前記データ差の計算機、前記パリティ計算機は新しいパリティジェネレータを構成することを特徴とする請求項１９に記載のメモリコントローラ。
【請求項２１】
前記データ差の計算機は前記メモリ装置に保存されたデータのうち変更されていないデータをすべて０として処理し、前記新しいデータＤｎｅｗと前記既存のデータＤｏｌｄとのデータの差Ｄｄｉｆを計算することを特徴とする請求項１９に記載のメモリコントローラ。
【請求項２２】
前記データ差の計算機は前記変更される一部のデータを複数の領域に分割し、各領域からの新しいデータと既存のデータとのデータの差を計算することを特徴とする請求項１９に記載のメモリコントローラ。
【請求項２３】
前記データ差の計算機は前記新しいデータと前記既存のデータとのデータの差をＸＯＲ演算で計算することを特徴とする請求項１９に記載のメモリコントローラ。
【請求項２４】
データとパリティＰｏｌｄを保存するメモリ装置と、
前記メモリ装置に保存されたデータの一部を変更するための新しいデータＤｎｅｗと位置情報を提供するホストと、
前記ホストから新しいデータと位置情報を受信して、前記ホストから提供される新しいデータと前記メモリ装置から入力される既存のデータとのデータの差Ｄｄｉｆを計算し、前記メモリ装置に保存されている既存のパリティＰｏｌｄと前記データの差Ｄｄｉｆとを利用して、新しいパリティＰｎｅｗを生成するメモリコントローラを含むことを特徴とするメモリシステム。
【請求項２５】
前記メモリコントローラは、
前記変更される一部のデータの位置を識別するためのデータの位置識別器と、
前記データの位置識別器から前記変更される一部のデータの位置情報を受信して、前記ホストから入力される新しいデータＤｎｅｗと前記メモリ装置から入力される既存のデータＤｏｌｄとのデータの差Ｄｄｉｆを計算するデータ差の計算機と、
前記既存のパリティＰｏｌｄと前記データの差Ｄｄｉｆとを利用して、新しいパリティＰｎｅｗを計算するパリティ計算機を備えることを特徴とする請求項２４に記載のメモリシステム。
【請求項２６】
前記データ差の計算機は前記メモリ装置に保存されたデータのうち変更されていないデータをすべて０として処理し、前記新しいデータＤｎｅｗと前記既存のデータＤｏｌｄとのデータの差Ｄｄｉｆを計算することを特徴とする請求項２４に記載のメモリシステム。
【請求項２７】
前記データ差の計算機は前記変更される一部のデータを複数の領域に分割し、各領域からの新しいデータと既存のデータとのデータの差を計算することを特徴とする請求項２４に記載のメモリシステム。
【請求項２８】
メモリコントローラで第１パリティを決定し、前記第１パリティはメモリ装置に格納された第１データの全体に該当するパリティであり、前記第１データは第１及び第２部分を含む段階と、
前記第１部分を新しいデータに取り替えるように要請される段階と、
前記メモリコントローラで、前記新しいデータと前記第１部分とに基づいたデータ差値を生成する段階と、
前記メモリコントローラで、前記データ差と前記第１パリティに基づいて、前記第１データの新しいパリティを生成することによって、前記第１パリティをアップデートする段階と、
前記メモリ装置で前記新しいデータと前記新しいパリティとを格納することによって、前記第１データの第１部分を前記新しいデータに取り替える段階とを含むメモリコントローラパリティ情報をアップデートするためのメモリコントローラの動作方法。
【請求項２９】
前記メモリコントローラは前記データ差を発生する動作を遂行し、前記新しいパリティを生成することは前記第２部分を使用しなく遂行され、前記新しいパリティは前記新しいデータと前記第２部分とを含む前記第１データの全体に該当する請求項２８に記載のメモリコントローラパリティ情報をアップデートするためのメモリコントローラの動作方法。
【請求項３０】
前記第１部分は前記第１データの隣接するビットを含み、前記第２部分は前記第１データの隣接するビットを含み、前記第１及び第２部分は互いにオーバーラップされない請求項２８に記載のメモリコントローラパリティ情報をアップデートするためのメモリコントローラの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリシステムに係り、さらに詳しくは、メモリ装置に保存された部分データを変更するメモリコントローラ及びその部分データを変更する方法に関する。
【背景技術】
【０００２】
半導体メモリ装置（ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ｍｅｍｏｒｙ  ｄｅｖｉｃｅ）はシリコン（Ｓｉ、ｓｉｌｉｃｏｎ）、ゲルマニウム（Ｇｅ、Ｇｅｒｍａｎｉｕｍ）、ガリウム砒素（ＧａＡｓ、ｇａｌｌｉｕｍ  ａｒｓｅｎｉｄｅ）、リン化インジウム（ＩｎＰ、ｉｎｄｉｕｍ  ｐｈｏｓｐｈｉｄｅ）などの半導体を使用して具現される記憶装置である。
半導体メモリ装置は、ＤＲＡＭやＳＲＡＭなどの揮発性メモリ装置（Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ）とフラッシュメモリやＭＲＡＭ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）のような不揮発性メモリ装置（Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ）を含む。
【０００３】
メモリ装置にデータを保存し、保存されたデータの読み取りのときエラーが発生することがある。これらのエラーを検出及び訂正するためにさまざまなエラー訂正コードが使用される。エラー訂正コードはＲＳ（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）コード、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）コード、ＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ）コードなどがある。
メモリ装置にデータを保存するとき、エラー訂正のためのパリティ（ｐａｒｉｔｙ）もデータと共にメモリ装置に保存される。メモリ装置に保存されたデータの一部が変更された場合、新たなパリティを生成するためにはパリティと共に保存されたすべてのデータの読み取りをしなければならない。これは、データの読み取り時間と消費電力が増加する原因になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開第２０１２／００１７１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は上述した技術的な課題を解決するためのもので、メモリ装置に保存されたデータの一部が変更されて新しいパリティを生成する場合、データの読み取り時間と消費電力を削減することができるメモリコントローラ及びメモリシステムを提供する。
また、本発明はメモリ装置に保存された部分データ（ｐａｒｔｉａｌ  ｄａｔａ）のエラーを検出または訂正し、新たなパリティを生成するメモリコントローラの部分データを変更する方法を提供する。
【課題を解決するための手段】
【０００６】
本発明は、メモリコントローラの部分データ（ｐａｒｔｉａｌ  ｄａｔａ）を変更する方法に関するもので、ホストから部分データを変更するための要求信号を受信する段階と、エラー検出コード（ＥＤＣ）を利用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、前記メモリ装置から読み取られた部分データにエラーがない場合には、前記ホストから提供される新しいデータＤｎｅｗと前記メモリ装置から読み取られた部分データ（Ｄｏｌｄ、以下では既存のデータと言う）との差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して新しいパリティＰｎｅｗを計算する段階と、前記新しいデータと前記新しいパリティとを前記メモリ装置に保存する段階を含む。
【０００７】
実施形態として、本発明は、前記既存のデータにエラーがある場合には、前記メモリ装置から全データ（ｗｈｏｌｅ  ｄａｔａ）の読み取りを実行し、エラー訂正コード（ＥＣＣ）を使用して前記既存のデータのエラーを訂正する段階をさらに含む。前記既存のデータのエラーを訂正した後に、前記ホストから提供される新しいデータと前記エラーを訂正した既存のデータとの差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを利用して、新しいパリティＰｎｅｗを計算する。
【０００８】
他の実施形態として、本発明は、前記メモリ装置に保存される全データを複数の部分データに分割し、それぞれの部分データのＥＤＣのためのパリティを生成し、部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ｄａｔａ）を作成する部分データのエンコード段階と、前記部分データのエンコード段階を実行した後に、部分符号化データ全体のＥＣＣのためのパリティを生成する全データのエンコード段階とをさらに含む。
【０００９】
また他の実施形態として、本発明は、前記メモリ装置に保存される全データのＥＣＣのためのパリティを生成する全データのエンコード段階と、前記全データのエンコード段階を実行した後に、前記メモリ装置に保存される全データを複数の部分データに分割し、全データのＥＤＣのためのパリティを生成する段階と、それぞれの部分データのＥＤＣのためのパリティを生成し、部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ｄａｔａ）を作成する部分データのエンコード段階とを含む。前記部分データのエンコード段階で、前記全データのエンコード段階で生成された全データのＥＤＣのためのパリティに応じた符号化パリティを生成する。
【００１０】
本発明の他の一面は、メモリコントローラの部分データ（ｐａｒｔｉａｌ  ｄａｔａ）を変更する方法に関するもので、ホストから部分データを変更するための要求信号を受信する段階と、エラー訂正コード（ＥＣＣ）を使用してメモリ装置から読み取られた部分データのエラーを検出する段階と、検出の結果、前記メモリ装置から読み取られた部分データにエラーがある場合にエラーを訂正し、前記ホストから提供される新しいデータＤｎｅｗと前記エラーが訂正された部分データ（Ｄｏｌｄ、以下では既存のデータと言う）との差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して新しいパリティＰｎｅｗを計算する段階と、前記新しいデータと前記新しいパリティを前記メモリ装置に保存する段階とを含む。
【００１１】
実施形態として、本発明は、前記メモリ装置に保存される全データを複数の部分データに分割し、それぞれの部分データのＥＣＣのためのパリティを生成し、部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ｄａｔａ）を作成する部分データのエンコード段階と、前記部分データのエンコード段階を実行した後に、部分符号化データ全体のＥＣＣのためのパリティを生成する全データのエンコード段階とをさらに含む。
【００１２】
他の実施形態として、本発明は、前記メモリ装置に保存される全データのＥＣＣのためのパリティを生成する全データのエンコード段階と、前記全データのエンコード段階を実行した後に、前記メモリ装置に保存される全データを複数の部分データに分割し、全データのＥＣＣのためのパリティを生成する段階と、それぞれの部分データのＥＣＣのためのパリティを生成し、部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ｄａｔａ）を作成する部分データのエンコード段階とをさらに含む。前記部分データのエンコード段階で、前記全データのエンコード段階で生成された全データのＥＣＣのためのパリティに応じた符号化パリティを生成する。
【００１３】
また他の実施形態として、本発明は、検出の結果、前記メモリ装置から読み取られた部分データにエラーがない場合には、前記ホストから提供される新しいデータＤｎｅｗと前記メモリ装置から読み取られた部分データＤｏｌｄとの差を求め、前記データの差Ｄｄｉｆと前記メモリ装置から読み取られた既存のパリティＰｏｌｄとを使用して新しいパリティＰｎｅｗを計算する段階をさらに含む。
【発明の効果】
【００１４】
本発明はメモリ装置に保存されるデータの一部が変更された場合、変更されていないデータの読み取りを実行せず、変更された一部のデータを利用して新しいパリティを生成する。本発明によれば、変更されたデータのみを使用して新しいパリティを生成するのでデータの読み取り時間と消費電力を削減することができる。また、本発明は変更しようとする一部のデータにエラーが生じる場合、エラーを早期に検出し、訂正することによって新しいパリティのエラーが発生することを防止する。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態によるメモリシステムを示すブロック図。
【図２】図１に示したメモリ装置１１００を示すブロック図。
【図３】図２に示したメモリセルアレイの実施形態を示す回路図。
【図４】図２に示したメモリセルアレイの実施形態を示す回路図。
【図５】図１に示したメモリコントローラを示すブロック図。
【図６】図５に示した新しいパリティジェネレータを例示的に示すブロック図。
【図７】図６に示した新しいパリティジェネレータの動作を例示的に説明するための図表。
【図８】図６に示した新しいパリティジェネレータの動作を例示的に説明するためのブロック図。
【図９】図６に示した新しいパリティジェネレータの動作を例示的に説明するための図表。
【図１０】図６に示した新しいパリティジェネレータの動作を例示的に説明するためのブロック図。
【図１１】図６に示した新しいパリティジェネレータの動作を例示的に説明するための図表。
【図１２】本発明の実施形態によるメモリシステムの新しいパリティを生成する方法を示すフローチャート。
【図１３】パリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の例を示す図。
【図１４】図１３に示したパリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の最初の１バイトのデータが変更された場合を示す図表。
【図１５】図１３に示したパリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の領域ごとに、新しいパリティ生成処理を実行する例を示す図表。
【図１６】部分データのエラー検出または訂正のためのデータ構造を示す図表。
【図１７】部分データのエラー検出または訂正のためのデータ構造を示す図表。
【図１８】部分データのエンコード（ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ）と全データのエンコード（ｗｈｏｌｅ  ｄａｔａ  ｅｎｃｏｄｉｎｇ）の順序を示す概念図。
【図１９】部分データのエンコード（ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ）と全データのエンコード（ｗｈｏｌｅ  ｄａｔａ  ｅｎｃｏｄｉｎｇ）の順序を示す概念図。
【図２０】本発明の実施形態によるメモリシステムのエラー検出または訂正の動作を実行する新しいパリティを生成する方法を示すフローチャート。
【図２１】本発明の実施形態によるメモリシステムのエラー検出または訂正の動作を実行する新しいパリティを生成する方法を示すフローチャート。
【図２２】図１に示したメモリシステムの応用例を示すブロック図。
【図２３】本発明の実施形態によるメモリシステムがメモリカードに適用された例を示す図。
【図２４】本発明の実施形態によるメモリシステムがソリッドステートドライブ（ＳＳＤ、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）に適用された例を示す図。
【図２５】本発明の実施形態によるメモリシステムがコンピューティングシステムに適用された例を示すブロック図。
【発明を実施するための形態】
【００１６】
以下に、本発明の属する技術の分野において、通常の知識を有する者が本発明の技術的な思想を容易に具現できるように、本発明の実施形態を添付図面を参照して説明する。
【００１７】
Ｉ．ＥＣＣエンコーダを含むメモリシステム。
図１は本発明の実施形態によるメモリシステムを示すブロック図である。図１を参照すると、メモリシステム１０００はメモリ装置１１００、メモリコントローラ１２００、ホスト１３００を備える。
【００１８】
メモリ装置１１００は揮発性メモリ装置（Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ）と不揮発性メモリ装置（Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ）を含む。揮発性メモリ装置は電源供給が遮断されると保存されたデータを失うメモリ装置である。揮発性メモリ装置はＳＲＡＭやＤＲＡＭなどがある。不揮発性メモリ装置は電源供給が遮断されても保存されているデータを保持するメモリ装置である。不揮発性メモリ装置はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、フラッシュメモリ装置、ＰＲＡＭ（登録商標）（Ｐｈａｓｅ−ｃｈａｎｇｅ  ＲＡＭ）、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）、ＲＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、ＦＲＡＭ（登録商標）（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）などがある。メモリ装置１１００は使用中にビットエラー（ｂｉｔ  ｅｒｒｏｒ）が発生することがあり、エラーを訂正するための様々な方法が使用されている。
【００１９】
メモリコントローラ１２００はメモリ装置１１００とホスト１３００との間に接続される。メモリコントローラ１２００はホスト１３００の要求に応答してメモリ装置１１００をアクセスする。メモリコントローラ１２００はホスト１３００からデータＤＡＴＡを受信して、符号化されたデータ（ＤＡＴＡ＿Ｃ；ｃｏｄｅｄ  ｄａｔａ）を生成する。メモリコントローラ１２００はメモリ装置１１００にコマンドＣＭＤ、アドレスＡＤＤＲ、符号化データＤＡＴＡ＿Ｃ及び制御信号ＣＴＲＬを提供する。
【００２０】
一方、メモリコントローラ１２００はメモリ装置１１００から符号化データＤＡＴＡ＿Ｃを受信し、これを復号化して元のデータ（ＤＡＴＡ、ｏｒｉｇｉｎａｌ  ｄａｔａ）を復元する。メモリコントローラ１２００は復元されたデータＤＡＴＡをホスト１３００に伝達する。
続いて、図１を参照すると、メモリコントローラ１２００はＥＣＣエンコーダ１２７０を有する。ＥＣＣエンコーダ１２７０はメモリ装置１１００に提供されるデータに対してＥＣＣエンコード（ｅｎｃｏｄｉｎｇ）を実行してパリティ（ｐａｒｉｔｙ）が付加された符号化データＤＡＴＡ＿Ｃを生成する。ＥＣＣエンコーダ１２７０はパリティを使用してエラーを訂正する。
【００２１】
ＥＣＣエンコーダ１２７０はＬＤＰＣ（ｌｏｗ  ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ）コード、ＢＣＨコード、ｔｕｒｂｏコード、リード−ソロモンコード（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ  ｃｏｄｅ）、ｃｏｎｖｏｌｕｔｉｏｎコード、ＲＳＣ（ｒｅｃｕｒｓｉｖｅ  ｓｙｓｔｅｍａｔｉｃ  ｃｏｄｅ）、ＴＣＭ（ｔｒｅｌｌｉｓ−ｃｏｄｅｄ  ｍｏｄｕｌａｔｉｏｎ）、ＢＣＭ（Ｂｌｏｃｋ  ｃｏｄｅｄ  ｍｏｄｕｌａｔｉｏｎ）などの符号化変調（ｃｏｄｅｄ  ｍｏｄｕｌａｔｉｏｎ）を使用してエラーを訂正する。
【００２２】
一方、ＥＣＣエンコーダ１２７０はメモリ装置１１００に保存されたデータの一部が変更された場合、変更された一部のデータを利用して、新しいパリティを生成する。本発明の実施形態によるメモリシステム１０００は新しいパリティを生成するときに変更されていないデータを使用していないので、データの読み取り時間と消費電力を削減することができる。
【００２３】
図２は図１に示したメモリ装置１１００を示すブロック図である。図２を参照すると、メモリ装置１１００はメモリセルアレイ１１１０、アドレスデコーダ１１２０、データ入出力回路１１３０及び制御ロジック１１４０を備える。
メモリセルアレイ１１１０は、ワード線ＷＬを介してアドレスデコーダ１１２０に接続され、ビット線ＢＬを介してデータ入出力回路１１３０に接続される。メモリセルアレイ１１１０は複数のメモリセルを備える。行（ｒｏｗ）方向に配列されるメモリセルはワード線ＷＬに接続される。列（ｃｏｌｕｍｎ）方向に配列されるメモリセルはビット線ＢＬに接続される。１つのメモリセルに１つ以上のデータを保存できる。
【００２４】
アドレスデコーダ１１２０はワード線ＷＬを介してメモリセルアレイ１１１０に接続される。アドレスデコーダ１１２０はメモリコントローラ（図１参照、１２００）からアドレスＡＤＤＲを受信する。アドレスＡＤＤＲは行アドレス（ｒｏｗ  ａｄｄｒｅｓｓ）と列アドレス（ｃｏｌｕｍｎ  ａｄｄｒｅｓｓ）を備える。アドレスデコーダ１１２０は行アドレスを利用して単一または複数のワード線ＷＬを選択し、列アドレス（ＣＡ；Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ）をデータ入出力回路１１３０に伝送する。
【００２５】
データ入出力回路１１３０はビット線ＢＬを介してメモリセルアレイ１１１０に接続され、メモリコントローラ１２００と符号化データＤＡＴＡ＿Ｃを交換する。データ入出力回路１１３０は制御ロジック１１４０の制御に応答して動作する。データ入出力回路１１３０はアドレスデコーダ１１２０から列アドレスＣＡを受信して、１つ以上のビット線ＢＬを選択する。
【００２６】
データ入出力回路１１３０は外部から符号化データＤＡＴＡ＿Ｃを受信し、受信したデータＤＡＴＡ＿Ｃをメモリセルアレイ１１１０に提供する。データ入出力回路１１３０はメモリセルアレイ１１１０からの符号化データＤＡＴＡ＿Ｃを読み取り、その読み取りデータＤＡＴＡ＿Ｃをメモリコントローラ１２００に出力する。
制御ロジック１１４０はアドレスデコーダ１１２０とデータ入出力回路１１３０に接続される。制御ロジック１１４０はメモリコントローラ１２００からコマンドＣＭＤと制御信号ＣＴＲＬが受信され、メモリ装置１１００の諸動作（例えば、読み取りや書き込みの動作など）を制御する。
【００２７】
図３及び図４は、図２に示したメモリセルアレイの実施形態を示す回路図である。図３はＮＡＮＤ型フラッシュメモリの例を示し、図４はＳＴＴ−ＭＲＡＭ（Ｓｐｉｎ  ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ｍａｇｎｅｔｏ  Ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）の例を示す。
【００２８】
図３を参照すると、メモリセルアレイ１１１０ａは複数のフラッシュメモリセルを備える。行方向に沿って提供されているメモリセルＭＣ１〜ＭＣｍはワード線ＷＬ１〜ＷＬｍに接続される。同じ行のメモリセルＭＣは同じワード線ＷＬに接続される。列方向に沿って提供されているメモリセルＭＣ１〜ＭＣｍはビット線ＢＬ１〜ＢＬｎに対応する。同じ列のメモリセルＭＣ１〜ＭＣｍは同じビット線ＢＬに接続される。
ビット線ＢＬ１〜ＢＬｎとメモリセルＭＣ１〜ＭＣｍとの間にストリング選択トランジスタＳＳＴが接続されている。ストリング選択トランジスタＳＳＴはストリング選択ラインＳＳＬに接続される。共通ソースラインＣＳＬとメモリセルＭＣ１〜ＭＣｍとの間に接地選択トランジスタＧＳＴが接続される。接地選択トランジスタＧＳＴは接地選択ラインＧＳＬに接続される。
【００２９】
図４を参照すると、メモリセルアレイ１１１０ｂは複数のワード線ＷＬ１〜ＷＬｍ、複数のビット線ＢＬ１〜ＢＬｎ、ワード線ＷＬ１〜ＷＬｍとビット線のＢＬ１〜ＢＬｎが交差する領域に配置されている複数のメモリセルを備える。
メモリセルがＳＴＴ−ＭＲＡＭ（Ｓｐｉｎ  ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ｍａｇｎｅｔｏ  Ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）セルで具現されている場合、セルトランジスタ及び磁性体を有する磁気トンネル接合素子（ｍａｇｎｅｔｉｃ  ｔｕｎｎｅｌ  ｊｕｎｃｔｉｏｎ、以下にＭＴＪ素子と称する）を備える。ＭＴＪ素子は相変化物質を利用するＰＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、複合金属酸化物（Ｃｏｍｐｌｅｘ  Ｍｅｔａｌ  ｏｘｉｄｅ）などの可変抵抗物質を利用したＲＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの抵抗素子に代替できる。
【００３０】
再び図１を参照すると、本発明の実施形態によるメモリシステム１０００はメモリコントローラ１２００内にＥＣＣエンコーダ１２７０を具備する。本発明の実施形態によるＥＣＣエンコーダ１２７０はメモリ装置１１００に保存されたデータの一部が変更された場合、変更された一部のデータを利用して新しいパリティを生成する。本発明によれば、変更された一部のデータのみを利用して、新しいパリティを生成するのでデータの読み取り時間と消費電力を削減することができる。
【００３１】
II．一部のデータが変更される場合に新しいパリティを生成する方法。
図５は図１に示したメモリコントローラを示すブロック図である。図５を参照すると、メモリコントローラ１２００は、システムバス１２１０、制御ユニット１２２０、ＲＡＭ１２３０、ホストインターフェース１２４０、メモリインターフェース１２５０、そしてＥＣＣエンコーダ１２７０を備える。
【００３２】
システムバス１２１０は制御ユニット１２２０、ＲＡＭ１２３０、ホストインターフェース１２４０、メモリインターフェース１２５０、そしてＥＣＣエンコーダ１２７０の間にチャンネルを提供する。制御ユニット１２２０はメモリコントローラ１２００の諸動作を制御する。ラム１２３０は制御ユニット１２２０の動作メモリ、キャッシュメモリ及びバッファメモリなどを使用できる。
【００３３】
ホストインターフェース１２４０は特定の通信規格に応じてホスト１３００と通信する。例示的に、メモリコントローラ１２００はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）、ＰＣＩ−Ｅ（ＰＣＩ−ｅｘｐｒｅｓｓ）、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）、Ｓｅｒｉａｌ−ＡＴＡ、Ｐａｒａｌｌｅｌ−ＡＴＡ、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）、ＥＳＤＩ（ｅｎｈａｎｃｅｄ  ｓｍａｌｌ  ｄｉｓｋ  ｉｎｔｅｒｆａｃｅ）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）及びファイヤーワイヤ（Ｆｉｒｅｗｉｒｅ）などのさまざまな通信規格のうち少なくとも１つを介してホスト（１３００、図１参照）と通信する。
【００３４】
メモリインターフェース１２５０はメモリ装置（１１００、図１参照）とインターフェースする。例えば、メモリインターフェース１２５０はＮＡＮＤ型フラッシュインターフェースまたはＭＲＡＭインターフェースなどを含む。
ＥＣＣエンコーダ１２７０はホスト１３００から受信されるデータをＥＣＣエンコード（ＥＣＣ  ｅｎｃｏｄｉｎｇ）して、符号化データ（ＤＡＴＡ＿Ｃ；ｃｏｄｅｄ  ｄａｔａ）とパリティをメモリ装置１１００に提供する。ここで、符号化データはＥＣＣデータとも呼ばれる。メモリ装置１１００に保存されるデータをＤ１、Ｄ２、Ｄ３、Ｄ４と仮定すると、パリティＰは、数式１によって計算できる。
【００３５】
【数１】
2014099174.tif 000003
【００３６】
数式１で加算演算はＸＯＲ演算またはｍｏｄ２演算である。非バイナリコード、非線形コードではそれに該当する演算になる。
【００３７】
続いて、図５を参照すると、ＥＣＣエンコーダ１２７０は新しいパリティジェネレータ１２６０を具備する。ＥＣＣエンコーダ１２７０は新しいパリティジェネレータ１２６０を使用して、メモリ装置１１００に保存されたデータの中から一部が変更された場合、変更された一部のデータを利用して新しいパリティを生成する。図５において、新しいパリティジェネレータ１２６０はＥＣＣエンコーダ１２７０の外部に位置しても良い。
【００３８】
図６は図５に示した新しいパリティジェネレータを例示的に示すブロック図である。図６を参照すると、新しいパリティジェネレータ１２６０はデータの位置識別器１２６１、データ差の計算機１２６２パリティ計算機１２６３を備える。
データの位置識別器１２６１はホスト１３００から入力される新しいデータＤｎｅｗの位置を識別し、位置信号ＬＯＣをデータ差の計算機１２６２とパリティ計算機１２６３に提供する。ここで、新しいデータの位置はメモリ装置１１００に保存されたデータの中から新しいデータに変更されるデータの位置を意味する。
【００３９】
例えば、パリティ（Ｐ；Ｐａｒｉｔｙ）が４つのデータＤ１、Ｄ２、Ｄ３、Ｄ４を通じて生成されると仮定する。このとき、データＤ１〜Ｄ４はそれぞれｄ１〜ｄ４の位置にある。Ｄ１とＤ２が新しいデータに変更される場合、新しいデータの位置はｄ１とｄ２である。以下では、ｄ１の位置の既存のデータ（ｏｌｄ  ｄａｔａ）はＤ１ｏｌｄで表記し、新しいデータはＤ１ｎｅｗと表記する。ｄ１の位置の既存のデータＤ１ｏｌｄが新しいデータＤ１ｎｅｗに変更される場合、データの位置識別器１２６１はｄ１を示す位置信号ＬＯＣを提供する。
【００４０】
データ差の計算機１２６２はデータの位置識別器１２６１から新しいデータの位置信号ＬＯＣを受信し、ホスト１３００から入力された新しいデータＤｎｅｗとメモリ装置１１００に保存された既存のデータＤｏｌｄの差を計算する。データ差の計算機１２６２は新しいデータＤｎｅｗと既存のデータＤｏｌｄのデータの差Ｄｄｉｆをパリティ計算機１２６３に提供する。データ差の計算機１２６２の動作は図８及び図９を参照してより詳しく説明する。
【００４１】
パリティ計算機１２６３は新しいデータの位置信号ＬＯＣを受信し、データ差の計算機１２６２から入力されたデータの差Ｄｄｉｆとメモリ装置１１００に保存された既存のパリティＰｏｌｄを利用して新しいパリティＰｎｅｗを計算する。パリティ計算機１２６３の動作は図１０及び図１１を参照してより詳細に説明する。
一方、図６に示された新しいパリティジェネレータの構成と動作原理は次のような数学的な原理に基づいている。メモリ装置１１００にデータＤ１ｏｌｄ、Ｄ２ｏｌｄ、Ｄ３ｏｌｄ、Ｄ４ｏｌｄとパリティＰｏｌｄが保存されていると仮定する。
【００４２】
既存のパリティＰｏｌｄは数式１によって次のように計算される。
Ｐｏｌｄ＝Ｄ１ｏｌｄ＋Ｄ２ｏｌｄ＋Ｄ３ｏｌｄ＋Ｄ４ｏｌｄ  ・・・・式（１）
ここで、Ｄ１ｏｌｄとＤ２ｏｌｄがＤ１ｎｅｗとＤ２ｎｅｗに変わると、Ｐｏｌｄも変わることになる。メモリ装置１１００に保存されたデータの中から一部のデータが変わると、従来のメモリシステムはメモリ装置１１００からのすべてのデータＤ１ｏｌｄ、Ｄ２ｏｌｄ、Ｄ３ｏｌｄ、Ｄ４ｏｌｄを読み取りし、データを変更した後に新しいパリティＰｎｅｗを生成しなければならない。
【００４３】
新しいパリティＰｎｅｗは数式１によって次のように計算される。
Ｐｎｅｗ＝Ｄ１ｎｅｗ＋Ｄ２ｎｅｗ＋Ｄ３ｏｌｄ＋Ｄ４ｏｌｄ  ・・・・式（２）
式（２）から式（１）を減算すると、次のようになる。
Ｐｎｅｗ−Ｐｏｌｄ＝（Ｄ１ｏｌｄ＋Ｄ２ｏｌｄ＋Ｄ３ｏｌｄ＋Ｄ４ｏｌｄ）
−（Ｄ１ｎｅｗ＋Ｄ２ｎｅｗ＋Ｄ３ｏｌｄ＋Ｄ４ｏｌｄ）。
Ｐｎｅｗは次のように計算することができる。
Ｐｎｅｗ＝Ｐｏｌｄ＋（Ｄ１ｎｅｗ＋Ｄ２ｎｅｗ＋Ｄ３ｏｌｄ＋Ｄ４ｏｌｄ）
−（Ｄ１ｏｌｄ＋Ｄ２ｏｌｄ＋Ｄ３ｏｌｄ＋Ｄ４ｏｌｄ）。
Ｐｎｅｗ＝Ｐｏｌｄ＋（Ｄ１ｎｅｗ＋Ｄ２ｎｅｗ）−
（Ｄ１ｏｌｄ＋Ｄ２ｏｌｄ）。
Ｐｎｅｗ＝Ｐｏｌｄ＋（Ｄ１ｎｅｗ−Ｄ１ｏｌｄ）＋
（Ｄ２ｎｅｗ−Ｄ２ｏｌｄ）                  ・・・・式（３）
【００４４】
式（３）を求める過程を見ると、変更されていないデータＤ３ｏｌｄ、Ｄ４ｏｌｄが演算のときに除去されたことが分かる。これは、メモリ装置１１００に保存されたデータの一部が変更された場合、変更されていないデータは不要であることを示す。
【００４５】
従来のメモリシステムは変更されないデータＤ３ｏｌｄ、Ｄ４ｏｌｄを含むすべてのデータを読み取りして新しいパリティを演算する。従来のメモリシステムはＥＣＣデータのサイズが大きく、変更されるデータのサイズが小さい場合にも、新しいパリティを生成するためにすべてのデータを読み取る必要があるので、データの読み取りに時間がかかり、多くの電力を消費することになる。
【００４６】
本発明の実施形態によるメモリシステム１０００は図６に示された新しいパリティジェネレータ１２６０を利用してメモリ装置１１００に保存されているデータの中から一部が変更された場合に、すべてのデータを読み取りせずに変更された一部のデータのみを利用して新しいパリティを生成することができる。本発明の実施形態によるメモリシステムは変更されたデータのみを使用して新しいパリティを生成するのでデータの読み取り時間と消費電力を削減することができる。
【００４７】
図７〜図１１は、図６に示された新しいパリティジェネレータの動作を例示的に説明するための図表またはブロック図である。
図７の図表を参照すると、メモリ装置１１００には４つの既存のデータＤｏｌｄと１つの既存のパリティＰが保存されていると仮定する。ｄ１〜ｄ４の位置にある既存のデータＤｏｌｄはそれぞれ０、０、１、１である。即ち、Ｄ１ｏｌｄは０であり、Ｄ２ｏｌｄは０であり、Ｄ３ｏｌｄは１であり、Ｄ４ｏｌｄは１である。式（１）にＤ１ｏｌｄ〜Ｄ４ｏｌｄを代入するとＰｏｌｄはＸＯＲ演算によって０になる。
【００４８】
既存のデータＤ１ｏｌｄとＤ２ｏｌｄが新しいデータＤ１ｎｅｗとＤ２ｎｅｗに変更されると仮定する。図７に示すように、Ｄ１ｎｅｗは０であり、Ｄ２ｎｅｗは１である。図７で変更されているデータＤ１ｎｅｗ、Ｄ２ｎｅｗは斜線で示されている。図６に示された新しいパリティジェネレータ１２６０は変更されていないデータＤ３ｏｌｄ、Ｄ４ｏｌｄがなくても新しいパリティＰｎｅｗを生成することができる。以下では、Ｄ３ｏｌｄとＤ４ｏｌｄがなくても新しいパリティＰｎｅｗを生成する方法を説明する。
【００４９】
図８は図６に示されたデータ差の計算機を示すブロック図である。図８を参照すると、データ差の計算機１２６２は新しいデータの位置信号ＬＯＣを受信し、新しいデータＤｎｅｗと既存のデータＤｏｌｄの差を計算する。データの差Ｄｄｉｆは数式２によって計算される。
【００５０】
【数２】
2014099174.tif 000004
【００５１】
数式２から減算演算はＸＯＲ演算またはｍｏｄ２演算である。非バイナリコード、非線形コードではそれに対応する演算になる。
【００５２】
式（３）で、データ差の計算機１２６２は位置信号ｄ１が入力され、新しいデータＤ１ｎｅｗと既存のデータＤ１ｏｌｄの差Ｄ１ｄｉｆを計算した後に位置信号ｄ２が入力され、新しいデータＤ２ｎｅｗと既存のデータＤ２ｏｌｄの差Ｄ２ｄｉｆを計算する。ここで、Ｄ１ｄｉｆはｄ１の位置にある新しいデータＤ１ｎｅｗと既存のデータＤ１ｏｌｄのデータの差を意味する。データ差の計算機１２６２は位置信号ｄ１、ｄ２が入力され、データの差Ｄ１ｄｉｆ、Ｄ２ｄｉｆを同時に計算することもできる。データの差Ｄ１ｄｉｆ、Ｄ２ｄｉｆはパリティ計算機１２６３に提供される。
【００５３】
図９は、図８に示されたデータ差の計算機の動作を例示的に説明するための図表である。前述したように、既存のデータＤ１ｏｌｄ、Ｄ２ｏｌｄが新しいデータＤ１ｎｅｗ、Ｄ２ｎｅｗに変更されるとＤ１ｎｅｗとＤ１ｏｌｄはすべて０であるので数式２によるとＤ１ｄｉｆは０となる。そしてＤ２ｏｌｄは０であり、Ｄ２ｎｅｗは１であるのでＤ２ｄｉｆは１となる。
【００５４】
図１０は、図６に示されたパリティ計算機を示すブロック図である。図１０を参照すると、パリティ計算機１２６３は新しいデータの位置信号ＬＯＣが入力され、データ差の計算機１２６２から入力されたデータの差Ｄｄｉｆとメモリ装置１１００に保存された既存のパリティＰｏｌｄを利用して新しいパリティＰｎｅｗを計算する。新しいパリティＰｎｅｗは数式３によって計算される。
【００５５】
【数３】
2014099174.tif 000005
【００５６】
前記例で、ＤｄｉｆはＤ１ｄｉｆとＤ２ｄｉｆの合計である。そしてＤ１ｄｉｆはＤ１ｎｅｗとＤ１ｏｌｄの差であり、Ｄ２ｄｉｆはＤ２ｎｅｗとＤ２ｏｌｄの差である。即ち、数式３は前述した式（３）のように表現することができる。
Ｐｎｅｗ＝Ｐｏｌｄ＋Ｄ１ｄｉｆ＋Ｄ２ｄｉｆ＝Ｐｏｌｄ＋（Ｄ１ｎｅｗ−
Ｄ１ｏｌｄ）＋（Ｄ２ｎｅｗ−Ｄ２ｏｌｄ）    ・・・・式（３）
【００５７】
図１１は、図１０に示されたパリティ計算機の動作を説明するための図表である。図９の例で計算したように、Ｄ１ｄｉｆは０であり、Ｄ２ｄｉｆが１とすると、全データの差Ｄｄｉｆは１となる。Ｐｏｌｄは０であり、Ｄｄｉｆは１であるので新しいパリティＰｎｅｗは１となる。
【００５８】
数式３を参照すると、新しいパリティＰｎｅｗは既存のパリティＰｏｌｄと変更されるデータの差Ｄｄｉｆの関数形態で表れることが分かる。ここで、新しいパリティＰｎｅｗを取得する関数は変更されないデータ（例えば、Ｄ３ｏｌｄ、Ｄ４ｏｌｄ）とは無関係であることを分かる。これは一般的な非線形コードまたは非バイナリコードにも拡張できる。
【００５９】
本発明の実施形態によるメモリシステムは、変更されたデータのみを使用して新しいパリティを生成するので、データの読み取り時間と消費電力を削減することができる。特に、本発明の実施形態によるメモリシステムは小さな単位のデータを変更する場合に有効に活用することができる。
【００６０】
図１２は、本発明の実施形態によるメモリシステムの新しいパリティを生成する方法を示すフローチャートである。
Ｓ１１０段階で、メモリコントローラ（図１参照、１２００）はメモリ装置（図１参照、１１００）から既存のデータＤｏｌｄと既存のパリティＰｏｌｄを読み取る。Ｓ１２０段階で、メモリコントローラ１２００はホスト（図１参照、１３００）から新しいデータＤｎｅｗを受信する。Ｓ１３０段階で、メモリコントローラ１２００は新しいデータＤｎｅｗと、既存のデータＤｏｌｄの差Ｄｄｉｆを計算する。Ｓ１４０段階で、メモリコントローラ１２００は既存のパリティＰｏｌｄとデータの差Ｄｄｉｆを利用して新しいパリティＰｎｅｗを計算する。
【００６１】
図１３は、パリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の例を示す図表である。図１３を参照すると、メモリ装置（図１参照、１１００）に保存されたデータの符号長（ｃｏｄｅ  ｌｅｎｇｔｈ）は７２であり、データの長さ（ｄａｔａ  ｌｅｎｇｔｈ）は６４である。図１３は、７２、６４シングルエラー訂正−二重エラー検出（ＳＥＣ−ＤＥＤ；ｓｉｎｇｌｅ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ−ｄｏｕｂｌｅ  ｅｒｒｏｒ  ｄｅｔｅｃｔｉｏｎ）のパリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の例である。ここで、シングルエラー訂正−二重エラー検出ＳＥＣ−ＤＥＤは１つのエラーを訂正し、２つのエラーを検出することを意味する。
【００６２】
図１３で１つの行（ｒｏｗ）は１つのパリティチェック式（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｅｑｕａｔｉｏｎ）で表すことができる。パリティは１つの行で１に該当する位置の符号ビットが加算されて生成される。たとえば、第１行Ｒ１からパリティＰ０は式（４）により求めることができる。
Ｐ０＝ｄ０＋ｄ１＋ｄ２＋ｄ３＋．．．＋ｄ５３＋ｄ５６＋ｄ５７＋ｄ５８
・・・・式（４）
式（４）と同様の方法で、第２から第８行Ｒ２〜Ｒ８でのパリティＰ１〜Ｐ７を求めることができる。下記の表１は各行のパリティを求める式を示す。
【００６３】
【表１】
2014099174.tif 000006
【００６４】
本発明の実施形態によるメモリシステム（図１参照、１０００）は複数の行に対して新しいパリティを生成する。図１３に示すように、第１行から第８行に対して所定の大きさの単位で新しいパリティを生成する。この場合にも前述したように、一部のデータだけが変更された場合にすべてのデータの読み取りは実行せず、変更された一部のデータのみを利用して新しいパリティを生成する。
【００６５】
図１４は、図１３に示されたパリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の最初の１バイトのデータが変更される場合を示す図表である。図１４から変更されないデータ、即ち、新しいパリティＰｎｅｗを取得するために利用されないデータはＸが表示されている。
【００６６】
メモリ装置１１００に保存されているデータのうち最初の１バイトのデータが変更されると、既存のメモリシステムは図１３に示されたすべてのデータの読み取りを実行して新しいパリティを生成する。しかし、本発明の実施形態によるメモリシステム（図１参照、１０００）は最初の１バイトのデータと１バイトのパリティだけ読み取りを実行して新しいパリティを生成することができる。即ち、数式３のように本発明の実施形態によるメモリシステム１０００は１バイトの新しいデータＤｎｅｗと１バイトの既存のデータＤｏｌｄの差を求め、データの差Ｄｄｉｆと既存のパリティＰｏｌｄを利用して新しいパリティＰｎｅｗを生成する。本発明によれば、変更されたデータのみを使用して新しいパリティを生成するのでデータの読み取り時間と消費電力を削減することができる。
【００６７】
一方、図１４に示すように、メモリ装置の一部のデータ（例えば、最初の１バイトのデータ）のみを使用して新しいパリティを生成する場合には様々な方法でＥＣＣエンコードを行うことができる。たとえば、変更されないデータをすべて０とみなして、ＥＣＣエンコードを行うことができる。すなわち、図１４のＸが表示されているデータをすべて０とみなして、変更されるデータの差Ｄｄｉｆと既存のパリティＰｏｌｄを利用して新しいパリティＰｎｅｗを生成する。他の方法としては、メモリ装置（図１参照、１１００）に保存されたデータを一定の大きさの領域（ｓｅｃｔｉｏｎ）に分け、領域ごとに新しいパリティ生成動作を実行することができる。
【００６８】
図１５は、図１３に示されたパリティチェックマトリックス（ｐａｒｉｔｙ  ｃｈｅｃｋ  ｍａｔｒｉｘ）の領域ごとに新しいパリティ生成動作を実行する例を示す図表である。領域ごとに新しいパリティ生成動作を実行するために、ＥＣＣエンコーダ（図５参照、１２７０）は領域ごとに新しいパリティジェネレータを備える。
【００６９】
第１領域（ｓｅｃｔｉｏｎ１）のデータが変更される場合に、新しいパリティＰ０ｎｅｗは数式３によって次のように計算される。
Ｐ０ｎｅｗ＝Ｐ０ｏｌｄ＋Ｄ０ｄｉｆ＋Ｄ１ｄｉｆ＋Ｄ２ｄｉｆ＋Ｄ３ｄｉｆ＋Ｄ４ｄｉｆ＋Ｄ５ｄｉｆ＋Ｄ６ｄｉｆ＋Ｄ７ｄｉｆ・・・・式（４）
ここで、Ｄ１ｄｉｆ＝Ｄ１ｎｅｗ−Ｄ１ｏｌｄである。領域別に新しいパリティジェネレータは式（４）を通じて設計される。図１５に示すように、領域別にパリティ生成動作がバイト単位で実行されるとＥＣＣエンコーダ１２７０はバイトマスキング動作（ｂｙｔｅ−ｍａｓｋｉｎｇ  ｏｐｅｒａｔｉｏｎ）を実行する。
【００７０】
前記のように、本発明は変更されたデータのみを使用して新しいパリティを生成するのでデータの読み取り時間と消費電力を削減することができる。また本発明は、新しいパリティ生成の動作を領域別に分けて実行することができる。特に、本発明の実施形態によるメモリシステムは小さな単位のデータを変更する場合に有効に活用することができる。
【００７１】
III．エラー検出及び訂正動作を含む部分データを変更する方法。
前述した式（４）を再び参照すると、第１領域（ｓｅｃｔｉｏｎ１）のデータが変更される場合、新しいパリティＰ０ｎｅｗは次のようになる。
Ｐ０ｎｅｗ＝Ｐ０ｏｌｄ＋Ｄ０ｄｉｆ＋Ｄ１ｄｉｆ＋Ｄ２ｄｉｆ＋Ｄ３ｄｉｆ＋Ｄ４ｄｉｆ＋Ｄ５ｄｉｆ＋Ｄ６ｄｉｆ＋Ｄ７ｄｉｆ・・・・式（４）
式（４）で変更しようとする第１領域（ｓｅｃｔｉｏｎ１）のデータにエラーがあれば新しいパリティＰ０ｎｅｗにもエラーが発生する。
【００７２】
本発明は変更しようとする一部のデータにエラーがある場合、エラーを早期に検出し、訂正することによって新しいパリティのエラーの発生を防止する。このため、本発明はデータをエンコードするとき、各領域ごとにエラーの検出や訂正のためのパリティを生成する。以下では、各領域のデータは部分データ（ｐａｒｔｉａｌ  ｄａｔａ）と称する。
図１６及び図１７は、部分データのエラー検出や訂正のためのデータ構造を示す図表である。図１６は部分データのエラーを検出するためのデータ構造であり、図１７は部分データのエラーを訂正するためのデータ構造である。
【００７３】
図１６を参照すると、全データ（ｗｈｏｌｅ  ｄａｔａ）はｎ個の部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１〜ｐａｒｔｉａｌ  ＤＡＴＡｎ）に分けられる。データのエンコードのときそれぞれの部分データのエラーを検出するためのパリティと全データのエラーを訂正するためのパリティを生成する。図１７を参照すると、それぞれの部分データのエラーを訂正するためのパリティと全データのエラーを訂正するためのパリティを生成する。
【００７４】
図１８及び図１９は、部分データのエンコード（ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ）と全データのエンコード（ｗｈｏｌｅ  ｄａｔａ  ｅｎｃｏｄｉｎｇ）の順序を示す概念図である。図１８は、部分データのエンコードを先に実行した後、全データのエンコードを実行する方法を示す。
図１８を参照すると、全データ（ｗｈｏｌｅ  ｄａｔａ、１１０）は、ｎ（ｎは自然数）個の部分データ領域（ｐａｒｔｉａｌ  ＤＡＴＡ１〜ｐａｒｔｉａｌ  ＤＡＴＡｎ）に分けられる。それぞれの部分データに対して部分データのエンコード動作が実行される。ここで、部分データのエンコードのときエラー検出及び訂正のためのパリティが生成される。
【００７５】
ｎ個の部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１〜ｐａｒｔｉａｌ  ＤＡＴＡｎ）で構成される全データ１１０は、ＥＤＣ、ＥＣＣのための部分データのエンコード動作（ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）を通じて部分的に符号化される全データ（ｐａｒｔｉａｌｌｙ  ｅｎｃｏｄｅｄ  ｗｈｏｌｅ  ｄａｔａ、１２０）になる。部分的に符号化された全データ（ｐａｒｔｉａｌｌｙ  ｅｎｃｏｄｅｄ  ｗｈｏｌｅ  ｄａｔａ）はｎ個の部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ＤＡＴＡ１〜ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ＤＡＴＡｎ）で構成される。それぞれの部分符号化データは部分データとパリティを含む。
【００７６】
例えば、第１部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１）はＥＤＣまたはＥＣＣのための部分データのエンコード動作により第１部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ＤＡＴＡ１）となる。第１部分符号化データは第１部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１）と第１パリティＰ１で構成される。同様に、第ｎ部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ＤＡＴＡｎ）は第ｎ部分データ（ｐａｒｔｉａｌ  ＤＡＴＡｎ）と第ｎパリティＰｎで構成される。
【００７７】
続いて、部分的に符号化された全データ（ｐａｒｔｉａｌｌｙ  ｅｎｃｏｄｅｄ  ｗｈｏｌｅ  ｄａｔａ、１２０）はＥＣＣのための全データのエンコード動作（ｗｈｏｌｅ  ｄａｔａ  ｅｎｃｏｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）を通じて最終符号化データ（ｆｉｎａｌ  ｅｎｃｏｄｅｄ  ｄａｔａ、１３０）となる。最終符号化データ１３０は部分的に符号化された全データ１３１とパリティ１３２とで構成される。ここで、パリティ１３２は部分的に符号化された全データ１３１に対するパリティである。
【００７８】
図１９は、全データのエンコードを実行した後に部分データのエンコードを実行する方法を示す。図１９を参照すると、全データ（ｗｈｏｌｅ  ｄａｔａ、２１０）はＥＣＣのための全データのエンコード動作（ｗｈｏｌｅ  ｄａｔａ  ｅｎｃｏｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）を通じて全体的に符号化されたデータ（ｅｎｔｉｒｅｌｙ  ｅｎｃｏｄｅｄ  ｄａｔａ、２２０）となる。
【００７９】
全体的に符号化されたデータ（ｅｎｔｉｒｅｌｙ  ｅｎｃｏｄｅｄ  ｄａｔａ、２２０）は全データ２２１とこれに対応するパリティ２２２で構成される。図１９の点線２１１、２２１は部分データの領域（ｐａｒｔｉａｌ  ｄａｔａ  ｓｅｃｔｉｏｎ）に分けられる前の全データ（ｗｈｏｌｅ  ｄａｔａ）を示す。そして、パリティ２２２は全データのエラーを訂正するためのものである。
【００８０】
図１９を参照すると、全データ２２１は第１〜第ｎ部分データの領域（ｐａｒｔｉａｌ  ＤＡＴＡ１〜ｐａｒｔｉａｌ  ＤＡＴＡｎ）に分けられる。それぞれの部分データに対してＥＤＣまたはＥＣＣのための部分データのエンコード動作（Ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）が実行される。ここで、部分データのエンコードのときエラー検出または訂正のためのパリティが生成される。
【００８１】
ｎ個の部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１〜ｐａｒｔｉａｌ  ＤＡＴＡｎ）で構成される全データ２２１はＥＤＣまたはＥＣＣのための部分データのエンコード動作を通じて部分的に符号化されたデータ（ｐａｒｔｉａｌｌｙ  ｅｎｃｏｄｅｄ  ｄａｔａ）となる。例えば、第１部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１）は第１部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ＤＡＴＡ１、２３１）となる。第１部分符号化データ（ｐａｒｔｉａｌ  ｅｎｃｏｄｅｄ  ＤＡＴＡ１、２３１）は第１部分データ（ｐａｒｔｉａｌ  ＤＡＴＡ１）と第１パリティＰ１で構成される。
【００８２】
一方、全データのパリティ２２２はＥＤＣまたはＥＣＣのための部分データのエンコード動作を通じて符号化パリティ（ｅｎｃｏｄｅｄ  ｐａｒｉｔｙ）となる。ここで、符号化パリティ（ｅｎｃｏｄｅｄ  ｐａｒｉｔｙ、２３２）は全データのパリティ２２２を符号化したものである。
【００８３】
図２０及び図２１は、本発明の実施形態によるメモリシステムのエラー検出または訂正を実行する部分データの変更方法を示すフローチャートである。図２０はＥＤＣのための部分データのエンコード動作（ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）を実行し、図２１はＥＣＣのための部分データのエンコード処理動作を実行する。
【００８４】
図２０を参照すると、Ｓ２１０段階で、ホスト（図１参照、１３００）からメモリコントローラ（図１参照、１２００）に部分データ（ｐａｒｔｉａｌ  ｄａｔａ）を変更するための要求（ｒｅｑｕｅｓｔ）信号が入力される。
Ｓ２２０段階で、メモリコントローラ１２００はメモリ装置（図１参照、１１００）から読み取った部分データのためのＥＤＣを使用してエラーを検査する。ここで、メモリ装置１１００から読み取った部分データは既存のデータ（Ｄｏｌｄ、ｏｌｄｄａｔａ）である。メモリ装置１１００には既存のデータＤｏｌｄとＥＤＣのためのパリティＰｏｌｄが保存されている。
【００８５】
Ｓ２３０段階で、メモリコントローラ１２００はメモリ装置１１００から読み取った部分データにエラーがあるか否かを判断する。判断の結果、エラーがあれば（ＹＥＳ）、メモリコントローラ１２００は全データ（ｗｈｏｌｅ  ｄａｔａ）の読み取りを実行し（Ｓ２４０）、全データのためのＥＣＣを使用してエラーデータを訂正する（Ｓ２４５）。
Ｓ２４０段階でエラーがないか、Ｓ２４５段階でエラーが訂正された場合、Ｓ２５０段階でメモリコントローラ１２００は部分データの読み取りを実行し、新しいパリティＰｎｅｗを生成する。すなわち、図１２で説明したように、新しいデータＤｎｅｗと既存のデータＤｏｌｄのデータの差Ｄｄｉｆと既存のパリティＰｏｌｄを利用して新しいパリティＰｎｅｗを生成する。
Ｓ２６０段階で、新しい部分データ（ｎｅｗ  ｐａｒｔｉａｌ  ｄａｔａ）と新しいパリティＰｎｅｗをメモリ装置１１００に保存する。
【００８６】
図２１は、ＥＣＣのための部分データのエンコード動作（ｐａｒｔｉａｌ  ｄａｔａ  ｅｎｃｏｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）を示す。図２１を参照すると、Ｓ３１０段階で、部分データ（ｐａｒｔｉａｌ  ｄａｔａ）を変更するための要求（ｒｅｑｕｅｓｔ）信号が入力される。
Ｓ３２０段階で、メモリ装置１１００から読み取った部分データのためのＥＣＣを使用してエラーを検査する。メモリ装置１１００には既存のデータＤｏｌｄとＥＣＣのためのパリティＰｏｌｄが保存されている。
【００８７】
Ｓ３３０段階で、メモリコントローラ１２００はメモリ装置１１００から読み取った部分データにエラーがあるか否かを判断する。判断の結果、エラーがあれば（ＹＥＳ）、メモリコントローラ１２００は部分データのためのＥＣＣを利用してエラーデータを訂正する（Ｓ３４０）。
Ｓ３３０段階でエラーがないか、Ｓ３４０段階でエラーが訂正された場合、Ｓ３５０段階で、メモリコントローラ１２００は部分データの読み取りを実行し、新しいパリティを生成する。Ｓ３６０段階で、新しい部分データ（ｎｅｗ  ｐａｒｔｉａｌ  ｄａｔａ）と新しいパリティＰｎｅｗをメモリ装置１１００に保存する。
【００８８】
前記のように本発明は、変更されたデータのみを使用して新しいパリティを生成するので、データの読み取り時間と消費電力を削減することができる。本発明は新しいパリティ生成の動作を領域別に分けて行う。本発明は変更しようとする一部のデータにエラーがある場合、エラーを早期に検出し、訂正することによって、新しいパリティにエラーが発生することを防止する。
【００８９】
IV．本発明の適用例。
図２２は、図１に示されたメモリシステムの応用例を示すブロック図である。図２２を参照すると、メモリシステム２０００はメモリ装置２１００とコントローラ２２００を備える。メモリ装置２１００は複数のメモリチップを備える。複数のメモリチップは複数のグループに分割される。複数のメモリチップの各グループは１つの共通チャネルを介してコントローラ２２００と通信できるように構成される。例示的に、複数のメモリチップは第１から第ｋチャンネルＣＨ１〜ＣＨｋを介してコントローラ２２００と通信できる。
【００９０】
図２３は、本発明の実施形態によるメモリシステムがメモリカードに適用された例を示す。図２３を参照すると、メモリカード３０００はメモリ装置３１００、コントローラ３２００及びコネクタ３３００を備える。
コネクタ３３００はメモリカード３０００とホストを電気的に接続する。メモリカード３０００はＰＣカード（ＰＣＭＣＩＡ、ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ  ｍｅｍｏｒｙ  ｃａｒｄ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ａｓｓｏｃｉａｔｉｏｎ）、コンパクトフラッシュ（登録商標）カード（ＣＦ）、スマートメディアカード（ＳＭ、ＳＭＣ）、メモリスティック、マルチメディアカード（ＭＭＣ、ＲＳ−ＭＭＣ、ＭＭＣｍｉｃｒｏ）、ＳＤカード（ＳＤ、ｍｉｎｉＳＤ、ｍｉｃｒｏＳＤ、ＳＤＨＣ）、ユニバーサルフラッシュメモリ（ＵＦＳ）などのメモリカードで構成される。
【００９１】
図２４は、本発明の実施形態によるメモリシステムがソリッドステートドライブ（ＳＳＤ、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）に適用された例を示す。図２４を参照すると、ソリッドステートドライブ４０００は複数のメモリ装置４１００、コントローラ４２００、及びコネクタ４３００を備える。コネクタ４３００はソリッドステートドライブ５０００とホストを電気的に接続する。
【００９２】
図２５は、本発明の実施形態によるメモリシステムがコンピューティングシステムに適用された例を示すブロック図である。図２５を参照すると、コンピューティングシステム５０００はバス５１００、プロセッサ５２００、メモリシステム５３００、モデム５４００そしてユーザーインターフェース５５００を備える。
バス５１００はコンピューティングシステム５０００の構成要素の間にチャンネルを提供する。プロセッサ５２００はコンピューティングシステム５０００の諸動作を制御し、論理演算を実行する。メモリシステム５３００は本発明の実施形態によるメモリシステム１０００または２０００を備える。
【００９３】
メモリシステム５３００はコンピューティングシステム５０００の動作メモリまたはストレージに提供される。動作メモリはプロセッサ５２００がコンピューティングシステム５０００を制御するために使用されるストレージ領域である。ストレージはコンピューティングシステム５０００がデータの長期的な保存のために使用されるストレージ領域である。
メモリシステム５３００が動作メモリとして提供されるとき、コンピューティングシステム５０００は他のストレージをさらに備えることができる。メモリシステム５３００がストレージとして提供されるとき、コンピューティングシステム５０００は他の動作メモリをさらに備えることができる。モデム５４００は外部と有線または無線通信を行う。
【００９４】
ユーザーインターフェース５５００はカメラ、キーボード、マウス、マイク、タッチパッド、タッチパネル、ボタン、センサーなどのユーザー入力インターフェース、ディスプレイ、スピーカー、ランプ、モーターなどのユーザー出力インターフェースを含む。
コンピューティングシステム５０００はスマートフォン、スマートパッドなどのモバイルマルチメディア機器、スマートテレビ、スマートモニタ、コンピュータ、ラップトップコンピュータなどのマルチメディアデバイスで構成される。
【００９５】
本発明の詳細な説明では具体的な実施形態について説明したが、本発明の範囲と技術的思想から逸脱しない範囲内で様々な変形が可能である。そのため、本発明の範囲は上述した実施形態に限定されず、本発明の特許請求の範囲及び特許請求の範囲と均等なものにより定められるべきである。
【符号の説明】
【００９６】
１０００、２０００・・・メモリシステム
１１００、２１００・・・メモリ装置
１２００、２２００・・・コントローラ
１１１０・・・メモリセルアレイ
１１２０・・・アドレスデコーダ
１１３０・・・読み取りと書き込み回路
１１４０・・・制御ロジック
１２１０・・・システムバス
１２２０・・・制御ユニット
１２３０・・・ランダムアクセスメモリ
１２４０・・・ホストインターフェース
１２５０・・・メモリインターフェース
１２６０・・・ＥＣＣエンコーダ
【図１】
2014099174.tif 000007
【図２】
2014099174.tif 000008
【図３】
2014099174.tif 000009
【図４】
2014099174.tif 000010
【図５】
2014099174.tif 000011
【図６】
2014099174.tif 000012
【図７】
2014099174.tif 000013
【図８】
2014099174.tif 000014
【図９】
2014099174.tif 000015
【図１０】
2014099174.tif 000016
【図１１】
2014099174.tif 000017
【図１２】
2014099174.tif 000018
【図１３】
2014099174.tif 000019
【図１４】
2014099174.tif 000020
【図１５】
2014099174.tif 000021
【図１６】
2014099174.tif 000022
【図１７】
2014099174.tif 000023
【図１８】
2014099174.tif 000024
【図１９】
2014099174.tif 000025
【図２０】
2014099174.tif 000026
【図２１】
2014099174.tif 000027
【図２２】
2014099174.tif 000028
【図２３】
2014099174.tif 000029
【図２４】
2014099174.tif 000030
【図２５】
2014099174.tif 000031