(57)【要約】【課題】エラー訂正処理によるデータ処理時間の増加を最小限に抑える。【解決手段】実施形態に係わる半導体集積回路は、メモリ１１からの第１のデータDATA-aについてエラー訂正処理を実行し、エラー訂正処理された第２のデータDATA-b及び第１のデータDATA-aのエラーの発生の有無を示すフラグＦを出力するエラー訂正回路１３を備える。制御部１４は、ロジック部１２に第１のデータDATA-aについてデータ処理を実行させることに並行して、エラー訂正回路１３に第１のデータDATA-aについてエラー訂正処理を実行させ、フラグＦがエラーの発生が有ることを示しているとき、ロジック部１２における第１のデータDATA-aのデータ処理を中止し、ロジック部１２に第２のデータDATA-bについてデータ処理を実行させ、フラグＦがエラーの発生が無いことを示しているとき、ロジック部１２における第１のデータDATA-aのデータ処理を継続させる。【選択図】図１
2014052971.tif 000002
【特許請求の範囲】
【請求項１】
メモリから読み出される第１のデータについて第１のエラー訂正処理を実行し、前記第１のエラー訂正処理された第２のデータを出力する第１のエラー訂正回路と、
前記第２のデータについて第２のエラー訂正処理を実行し、前記第２のエラー訂正処理された第３のデータ及び前記第２のデータのエラーの発生の有無を示すフラグを出力する第２のエラー訂正回路と、
前記第２及び第３のデータのうちの１つについてデータ処理を実行するロジック部と、
前記ロジック部に前記第２のデータについて前記データ処理を実行させることに並行して、前記第２のエラー訂正回路に前記第２のデータについて前記エラー訂正処理を実行させ、
前記フラグが前記第２のデータのエラーの発生が有ることを示しているとき、前記ロジック部における前記第２のデータの前記データ処理を中止し、前記ロジック部に前記第３のデータについて前記データ処理を実行させ、
前記フラグが前記第２のデータのエラーの発生が無いことを示しているとき、前記ロジック部における前記第２のデータの前記データ処理を継続させる制御部と
を具備する半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
さらに、前記第２のデータのエラー発生頻度を記憶するエラー発生頻度チェック部を具備し、
前記制御部は、前記エラー発生頻度が所定値を超えたとき、前記ロジック部に常に前記第３のデータについて前記データ処理を実行させる
半導体集積回路。
【請求項３】
メモリから読み出される第１のデータについてエラー訂正処理を実行し、前記エラー訂正処理された第２のデータ及び前記第１のデータのエラーの発生の有無を示すフラグを出力するエラー訂正回路と、
前記第１及び第２のデータのうちの１つについてデータ処理を実行するロジック部と、
前記ロジック部に前記第１のデータについて前記データ処理を実行させることに並行して、前記エラー訂正回路に前記第１のデータについて前記エラー訂正処理を実行させ、
前記フラグが前記エラーの発生が有ることを示しているとき、前記ロジック部における前記第１のデータの前記データ処理を中止し、前記ロジック部に前記第２のデータについて前記データ処理を実行させ、
前記フラグが前記エラーの発生が無いことを示しているとき、前記ロジック部における前記第１のデータの前記データ処理を継続させる制御部と
を具備する半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路において、
前記ロジック部に前記第１のデータについて前記データ処理を実行後、一定時点で前記データ処理を中断させることを特徴とする半導体集積回路。
【請求項５】
請求項３又は請求項４に記載の半導体集積回路において、
さらに、前記第１のデータのエラー発生頻度を記憶するエラー発生頻度チェック部を具備し、
前記制御部は、前記エラー発生頻度が所定値を超えたとき、前記ロジック部に常に前記第２のデータについて前記データ処理を実行させる
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体集積回路に関する。
【背景技術】
【０００２】
ＮＡＮＤフラッシュメモリやＤＲＡＭなどのメモリを備えたメモリシステムにおいては、メモリに記憶するデータの一部にエラーが発生する場合がある。その対策として、例えば、メモリを制御するコントローラ内に、書き込み時にデータの一単位に冗長ビットを付加し、読み出し時にその冗長ビットに基づきエラーの訂正を行うエラー訂正回路（Error correction circuit）を搭載する。
【０００３】
ところで、メモリに記憶するデータについてエラーの訂正を行うことは、メモリシステムの信頼性を確保するうえでも必要なことであるが、近年、メモリセルの微細化などの要因により、メモリに記憶するデータにエラーが発生する確率が高くなっている。このため、そのエラーを訂正するために、エラー訂正回路のエラー訂正機能を強化せざるを得なくなっている。
【０００４】
しかし、エラー訂正機能の強化は、エラーを訂正するためのエラー訂正処理に多大な時間を要することを意味する。これは、見かけ上、メモリからのデータの読み出し時間を長くするため、例えば、コントローラ内でのデータ処理時間を長くするデメリットとなる。このようなデメリットは、高速動作を要求される最近の電子機器にとって望ましくはないため、この影響をできるだけ最小限に抑える技術の開発が必要である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２１６３０１号公報
【特許文献２】特開平７−８６９６３号公報
【特許文献３】特開２００９−２１１２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、エラー訂正処理によるデータ処理時間の増加を最小限に抑える技術を提案する。
【課題を解決するための手段】
【０００７】
実施形態によれば、半導体集積回路は、メモリから読み出される第１のデータについてエラー訂正処理を実行し、前記エラー訂正処理された第２のデータ及び前記第１のデータのエラーの発生の有無を示すフラグを出力するエラー訂正回路を備える。半導体集積回路は、前記第１及び第２のデータのうちの１つについてデータ処理を実行するロジック部を備える。半導体装置は制御部を備える。制御部は、前記ロジック部に前記第１のデータについて前記データ処理を実行させることに並行して、前記エラー訂正回路に前記第１のデータについて前記エラー訂正処理を実行させる。制御部は、前記フラグが前記エラーの発生が有ることを示しているとき、前記ロジック部における前記第１のデータの前記データ処理を中止し、前記ロジック部に前記第２のデータについて前記データ処理を実行さる。制御部は、前記フラグが前記エラーの発生が無いことを示しているとき、前記ロジック部における前記第１のデータの前記データ処理を継続させる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施例の半導体集積回路を示す図。
【図２】図１の回路内のロジック部を示す図。
【図３】図１の回路の動作を示すフローチャート。
【図４】データ処理時間の短縮に関する効果を示す図。
【図５】第２の実施例の半導体集積回路を示す図。
【図６】図５の回路内のロジック部を示す図。
【図７】図５の回路の動作を示すフローチャート。
【図８】データ処理時間の短縮に関する効果を示す図。
【図９】第３の実施例の半導体集積回路を示す図。
【図１０】図９の回路の動作を示すフローチャート。
【図１１】第４の実施例の半導体集積回路を示す図。
【図１２】図１１の回路の動作を示すフローチャート。
【図１３】第５の実施例の半導体集積回路を示す図。
【図１４】第６の実施例の半導体集積回路を示す図。
【図１５】第７の実施例の半導体集積回路を示す図。
【図１６】第８の実施例の半導体集積回路を示す図。
【図１７】図１３乃至図１６の回路の動作を示すフローチャート。
【図１８】第９の実施例の半導体集積回路を示す図。
【図１９】第１０の実施例の半導体集積回路を示す図。
【図２０】第１１の実施例の半導体集積回路を示す図。
【図２１】第１２の実施例の半導体集積回路を示す図。
【図２２】図１８乃至図２１の回路の動作を示すフローチャート。
【図２３】第１３の実施例の半導体集積回路を示す図。
【図２４】第１３の実施例の半導体集積回路を示す図。
【図２５】第１３の実施例の半導体集積回路を示す図。
【図２６】第１３の実施例の半導体集積回路を示す図。
【図２７】図２３乃至図２６の回路の動作を示すフローチャート。
【図２８】第１４の実施例の半導体集積回路を示す図。
【図２９】第１４の実施例の半導体集積回路を示す図。
【図３０】第１４の実施例の半導体集積回路を示す図。
【図３１】第１４の実施例の半導体集積回路を示す図。
【図３２】図２８乃至図３１の回路の動作を示すフローチャート。
【図３３】第１５の実施例の半導体集積回路を示す図。
【図３４】第１５の実施例の半導体集積回路を示す図。
【図３５】第１５の実施例の半導体集積回路を示す図。
【図３６】第１５の実施例の半導体集積回路を示す図。
【図３７】第１６の実施例の半導体集積回路を示す図。
【図３８】図３７の回路内のロジック部を示す図。
【図３９】図３７の回路の動作を示すフローチャート。
【図４０】第１７の実施例の半導体集積回路を示す図。
【図４１】図４０の回路の動作を示すフローチャート。
【図４２】適用例としてのメモリシステムを示す図。
【図４３】メモリシステムの実装例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態を説明する。
【００１０】
（概要）  
ＮＡＮＤフラッシュメモリやＤＲＡＭなどのメモリを備えるメモリシステムにエラー訂正回路を採用するとき、そのエラー訂正機能は、メモリに記憶するデータのエラー発生頻度に応じた最適な能力を有するのが望ましい。しかし、そのエラー発生頻度は、メモリシステムの使用期間（メモリに対するデータの書き込み／読み出し回数）や、メモリシステムが置かれる環境などによって変化する。
【００１１】
このように、メモリに記憶するデータのエラー発生頻度が変化するにもかかわらず、そのメモリシステムに採用されるエラー訂正機能が固定であるということは、メモリシステムのパフォーマンスを最大限に生かすに当たってデメリットとなる。即ち、エラー訂正機能が固定であるメモリシステムでは、エラーの発生の有無や、エラー発生頻度などに関係なく、エラー訂正回路におけるエラー訂正機能が動作する。
【００１２】
そこで、以下の実施例では、第一に、エラーの発生の有無に応じて、ロジック部におけるデータ処理を、エラー訂正前のデータ及びエラー訂正後のデータのうちの１つについて選択的に行うことができるメモリシステムを提案する。
【００１３】
即ち、メモリに記憶するデータにエラーが発生していないときは、エラー訂正処理されていないデータ、即ち、メモリから、直接、読み出されたデータを、ロジック部におけるデータ処理に使用し、かつ、メモリに記憶するデータにエラーが発生しているときは、エラー訂正処理されたデータを、ロジック部におけるデータ処理に使用する。
【００１４】
これにより、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【００１５】
また、第二に、エラー発生頻度に応じて、ロジック部におけるデータ処理を、高速動作優先（高速バージョン）のエラー訂正回路によるエラー訂正後のデータ、及び、エラー訂正動作優先（強化バージョン）のエラー訂正回路によるエラー訂正後のデータのうちの１つについて選択的に行うことができるメモリシステムを提案する。
【００１６】
即ち、メモリに記憶するデータのエラー発生頻度が所定値以下のときは、高速動作優先のエラー訂正回路によるエラー訂正後のデータを、ロジック部におけるデータ処理に使用し、かつ、メモリに記憶するデータのエラー発生頻度が所定値を超えているときは、エラー訂正動作優先のエラー訂正回路によるエラー訂正後のデータを、ロジック部におけるデータ処理に使用する。
【００１７】
これにより、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【００１８】
さらに、第三に、メモリの種類（ＮＡＮＤフラッシュメモリ、ＤＲＡＭ、２値メモリ、多値メモリなど）に応じて、ロジック部におけるデータ処理を、高速動作優先のエラー訂正回路によるエラー訂正後のデータ、及び、エラー訂正動作優先のエラー訂正回路によるエラー訂正後のデータのうちの１つについて選択的に行うことができるメモリシステムを提案する。
【００１９】
即ち、低いエラー発生頻度を有するメモリに対してデータの書き込み／読み出しを実行するときは、高速動作優先のエラー訂正回路によるエラー訂正後のデータを、ロジック部におけるデータ処理に使用し、かつ、高いエラー発生頻度を有するメモリに対してデータの書き込み／読み出しを実行するときは、エラー訂正動作優先のエラー訂正回路によるエラー訂正後のデータを、ロジック部におけるデータ処理に使用する。
【００２０】
これにより、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【００２１】
（実施例）  
・  エラー訂正前のデータを先行処理する技術（図１〜図１２）  
本技術は、エラーの発生の有無に応じて、ロジック部におけるデータ処理を、エラー訂正前のデータ及びエラー訂正後のデータのうちの１つについて選択的に行うことができるメモリシステムに関する。
【００２２】
本技術の特徴は、メモリからデータを読み出すと、そのデータ（エラー訂正前のデータ）について直ちにロジック部にてデータ処理を行う。即ち、エラー訂正前のデータを先行処理する。これに並行して、メモリからのデータについてエラー訂正処理を行い、エラーの発生が有るときは、エラー訂正前のデータの先行処理を中止し、再度、エラー訂正後のデータについてロジック部にてデータ処理を行う。また、エラーの発生が無いときは、エラー訂正前のデータの先行処理を継続する。
【００２３】
この場合、メモリからのデータにエラーの発生が無いときは、エラー訂正処理時間に関係なく、エラー訂正前のデータについてデータ処理を行うことができるため、例えば、コントローラ内におけるデータ処理時間を大幅に短縮できる。また、メモリからのデータにエラーの発生が有るときは、エラー訂正後のデータについてデータ処理を行うため、システム上、何ら問題が生じることはない。
【００２４】
以下、本技術に関し、第１乃至第４の実施例を説明する。
【００２５】
図１は、第１の実施例に係わる半導体集積回路を示している。
【００２６】
メモリ１１は、例えば、ＮＡＮＤフラッシュメモリなどの不揮発性メモリ、ＤＲＡＭなどの揮発性メモリである。エラー訂正回路１３は、メモリ１１から読み出される第１のデータDATA-aについてエラー訂正処理を実行し、エラー訂正処理された第２のデータDATA-b及び第１のデータDATA-aのエラーの発生の有無を示すフラグＦを出力する。
【００２７】
ロジック部１２は、第１及び第２のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する。
【００２８】
制御部１４は、ロジック部１２が、第１のデータDATA-aにエラーが発生していないときは、第１のデータDATA-aをデータ処理に使用し、かつ、第１のデータDATA-aにエラーが発生しているときは、第２のデータDATA-bをデータ処理に使用するように動作を制御する。
【００２９】
制御部１４は、例えば、第１のデータDATA-aについてのエラーの発生の有無を、エラー訂正回路１３が出力するフラグＦに基づいて判断し、第１及び第２のデータDATA-a, DATA-bのうちの１つを選択する選択信号Ｃφ、及び、第１のデータDATA-aの処理（先行処理）を中止するか否かを決定するリセット信号ＲＳを出力する。
【００３０】
図２は、図１のロジック部を示している。
【００３１】
ロジック部１２は、選択信号Ｃφに基づいて、第１及び第２のデータDATA-a, DATA-bのうちの１つを選択するマルチプレクサ１５、及び、第１及び第２のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する処理部１６を有する。
【００３２】
処理部１６は、リセット信号ＲＳによりリセットされる。例えば、処理部１６における第１のデータDATA-aのデータ処理（先行処理）は、リセット信号ＲＳがアクティブになったときに中止される。
【００３３】
図３は、図１の回路の動作を示している。
【００３４】
この動作は、図１の制御部１４により制御される。
【００３５】
まず、メモリ１１から第１のデータDATA-aが読み出されると、ロジック部１２において第１のデータDATA-aのデータ処理（先行処理）を開始する（ステップＳＴ１）。
【００３６】
この先行処理に並行して、エラー訂正回路１３において第１のデータDATA-aのエラー訂正処理を実行する（ステップＳＴ２）。
【００３７】
ここで、これら２つのステップＳＴ１，ＳＴ２は、互いに入れ替えてもよいし、１つのステップにまとめてもよい。
【００３８】
次に、第１のデータDATA-aのエラーの有無をチェックする（ステップＳＴ３）。
【００３９】
このチェックは、例えば、エラー訂正回路１３から出力されるフラグＦに基づいて行われる。そして、フラグＦがエラーの発生が有ることを示しているとき、ロジック部１２において、第１のデータDATA-aのデータ処理を中止し（処理部１６をリセットし）、これに代えて、第２のデータDATA-bのデータ処理を開始する（ステップＳＴ４）。
【００４０】
また、フラグＦがエラーの発生が無いことを示しているとき、ロジック部１２における第１のデータDATA-aのデータ処理を継続する（ステップＳＴ５）。
【００４１】
以上、第１の実施例によれば、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【００４２】
図４は、データ処理時間の短縮に関する効果を示している。
【００４３】
本例では、メモリ１１から第１のデータDATA-aを読み出すと、第１のデータ（エラー訂正前のデータ）DATA-aのデータ処理が直ちに開始される（Ａ点）。
【００４４】
これに並行して、第１のデータDATA-aのエラー訂正処理を行う。
【００４５】
そして、エラーの発生が有るときは、第１のデータDATA-aの先行処理を中止し、再度、エラー訂正後の第２のデータDATA-bのデータ処理を開始する。また、エラーの発生が無いときは、エラー訂正前の第１のデータDATA-aの先行処理を継続する（Ｂ点）。
【００４６】
この場合、第１のデータDATA-aにエラーの発生が無いときは、エラー訂正処理時間に関係なく、第１のデータDATA-aについてデータ処理を行うことができるため、例えば、Ｃ点からＤ点までの期間の短縮が可能であり、結果として、コントローラ内におけるデータ処理時間を大幅に短縮できる。
【００４７】
これに対し、比較例では、エラーの発生の有無に関係なく、常に、エラー訂正処理された第２のデータDATA-bについてデータ処理が行われるため、例えば、エラーの発生が無いときにおいても、エラー訂正処理時間（Ａ点からＢ点までの期間）後に、ロジック部でのデータ処理を開始しなければならない。
【００４８】
図５は、第２の実施例に係わる半導体集積回路を示している。
【００４９】
第２の実施例は、第１の実施例の変形例である。第２の実施例は、第１の実施例と比べると、制御部１４の構成に特徴を有する。制御部１４以外の構成については、図１（第１の実施例）と同じであるため、図１と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【００５０】
本例においては、制御部１４は、例えば、第１のデータDATA-aについてのエラーの発生の有無を、エラー訂正回路１３が出力するフラグＦに基づいて判断する。また、制御部１４は、第１及び第２のデータDATA-a, DATA-bのうちの１つを選択する選択信号Ｃφ、第１のデータDATA-aの処理（先行処理）を一定時点で中断するための一時停止信号ＳＰ、及び、第１のデータDATA-aの処理（先行処理）を中止するか否かを決定するリセット信号ＲＳを出力する。
【００５１】
図６は、図５のロジック部を示している。
【００５２】
ロジック部１２は、選択信号Ｃφに基づいて、第１及び第２のデータDATA-a, DATA-bのうちの１つを選択するマルチプレクサ１５、及び、第１及び第２のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する処理部１６を有する。
【００５３】
処理部１６におけるデータ処理は、一時停止信号ＳＰにより中断する。例えば、一時停止信号ＳＰがアクティブになったときに、第１のデータDATA-aのデータ処理が一時停止し、その後、一時停止信号ＳＰがノンアクティブになったときに、第１のデータDATA-aのデータ処理が再開される。
【００５４】
また、処理部１６は、リセット信号ＲＳによりリセットされる。例えば、処理部１６における第１のデータDATA-aのデータ処理は、リセット信号ＲＳがアクティブになったときに中止される。
【００５５】
図７は、図５の回路の動作を示している。
【００５６】
この動作は、図５の制御部１４により制御される。
【００５７】
まず、メモリ１１から第１のデータDATA-aが読み出されると、ロジック部１２において第１のデータDATA-aのデータ処理（先行処理）を開始する。このデータ処理は、一定時点で中断する（ステップＳＴ１１）。
【００５８】
また、この先行処理に並行して、エラー訂正回路１３において第１のデータDATA-aのエラー訂正処理を実行する（ステップＳＴ１２）。
【００５９】
ここで、これら２つのステップＳＴ１１，ＳＴ１２は、互いに入れ替えてもよいし、１つのステップにまとめてもよい。
【００６０】
次に、第１のデータDATA-aのエラーの有無をチェックする（ステップＳＴ１３）。
【００６１】
このチェックは、例えば、エラー訂正回路１３から出力されるフラグＦに基づいて行われる。そして、フラグＦがエラーの発生が有ることを示しているとき、ロジック部１２において、第１のデータDATA-aのデータ処理を中止し（処理部１６をリセットし）、これに代えて、第２のデータDATA-bのデータ処理を開始する（ステップＳＴ１４）。
【００６２】
また、フラグＦがエラーの発生が無いことを示しているとき、ロジック部１２における第１のデータDATA-aのデータ処理を再開する（ステップＳＴ１５）。
【００６３】
以上、第２の実施例においても、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【００６４】
図８は、データ処理時間の短縮に関する効果を示している。
【００６５】
本例では、メモリ１１から第１のデータDATA-aを読み出すと、第１のデータ（エラー訂正前のデータ）DATA-aのデータ処理が直ちに開始される（Ａ点）。
【００６６】
また、第１のデータDATA-aのデータ処理は、一定時点で中断する（Ａ’点）。
【００６７】
これに並行して、第１のデータDATA-aのエラー訂正処理を行う。
【００６８】
そして、エラーの発生が有るときは、第１のデータDATA-aの先行処理を中止し、再度、エラー訂正後の第２のデータDATA-bのデータ処理を開始する。また、エラーの発生が無いときは、エラー訂正前の第１のデータDATA-aの先行処理を再開する（Ｂ点）。
【００６９】
この場合、第１のデータDATA-aにエラーの発生が無いときは、エラー訂正処理時間に関係なく、第１のデータDATA-aについてデータ処理を行うことができるため、例えば、Ｃ点からＤ点までの期間の短縮が可能であり、結果として、コントローラ内におけるデータ処理時間を大幅に短縮できる。
【００７０】
これに対し、比較例では、エラーの発生の有無に関係なく、常に、エラー訂正処理された第２のデータDATA-bについてデータ処理が行われるため、例えば、エラーの発生が無いときにおいても、エラー訂正処理時間（Ａ点からＢ点までの期間）後に、ロジック部でのデータ処理を開始しなければならない。
【００７１】
図９は、第３の実施例に係わる半導体集積回路を示している。
【００７２】
第３の実施例は、第１の実施例の変形例である。第３の実施例は、第１の実施例と比べると、さらに、エラー発生頻度チェック部１７を有する点に特徴を有する。エラー発生頻度チェック部１７以外の構成については、図１（第１の実施例）と同じであるため、図１と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【００７３】
本例においては、エラー発生頻度チェック部１７は、例えば、第１のデータDATA-aについてのエラー発生頻度を累積記憶する。エラー発生頻度は、例えば、フラグＦに基づいて、エラー発生頻度チェック部１７に累積記憶される。この場合、フラグＦは、エラーの発生の有無を示す１ビットと、エラー発生頻度（エラービット数）を示す複数ビットとを含む。
【００７４】
そして、制御部１４は、メモリ１１のエラー発生頻度が所定値（エラービット数の許容値）を超えたとき、ロジック部１２に第２のデータDATA-bについてデータ処理を実行させる。例えば、制御部１４は、常に、第２のデータDATA-bを選択する選択信号Ｃφを出力し続ける。
【００７５】
尚、本例において、ロジック部１２内の構成は、図２（第１の実施例）と同じであるため、ここでの説明を省略する。
【００７６】
さらに、本例は、第１の実施例の変形例として説明したが、第２の実施例に対して本例のエラー発生頻度チェック部１７を設けることも可能である。
【００７７】
図１０は、図９の回路の動作を示している。
【００７８】
この動作は、図９の制御部１４により制御される。
【００７９】
まず、第１のデータDATA-aのエラーの有無に応じた処理、即ち、第１の実施例における処理Ａ（図３）又は第２の実施例における処理Ｂ（図７）を実行する。
【００８０】
この後、第１のデータDATA-aのエラー発生頻度が所定値を超えたか否かを判断する（ステップＳＴ２１）。
【００８１】
次に、エラー発生頻度が所定値を超えているとき、常に第２のデータDATA-bについてデータ処理を行う（ステップＳＴ２２）。このように一定の高いエラー発生頻度になった場合は、先行処理した第１のデータDATA-aを破棄する確率が増えてしまう。当初から破棄する確率が高い場合はデータ処理を先行せずに第２のデータDATA-bを待ってデータ処理を行う方が余分なデータ処理を行わずにすみ、ひいては回路の消費電力の増加を抑制することができる。
【００８２】
また、エラー発生頻度が所定値を超えていないとき、第１の実施例における処理Ａ（図３）又は第２の実施例における処理Ｂ（図７）を継続する（ステップＳＴ２３）。
【００８３】
図１１は、第４の実施例に係わる半導体集積回路を示している。
【００８４】
第４の実施例は、第１の実施例の変形例である。第４の実施例は、第１の実施例と比べると、外部制御信号ＣＮＴに基づいて、ロジック部１２でのデータ処理に使用するデータ（第１及び第２のデータDATA-a, DATA-bのうちの１つ）を選択できる点に特徴を有する。これ以外の構成については、図１（第１の実施例）と同じであるため、図１と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【００８５】
本例においては、外部制御信号ＣＮＴが所定値を示しているとき、ロジック部１２に第２のデータDATA-bのデータ処理を実行させる。外部制御信号ＣＮＴは、例えば、エラー訂正回路１３からのフラグＦに基づいて、その値を決定する。この場合、フラグＦは、エラーの発生の有無を示す１ビットと、エラー発生頻度（エラービット数）を示す複数ビットとを含む。
【００８６】
そして、外部制御信号ＣＮＴは、例えば、エラー発生頻度が所定値（エラービット数の許容値）を超えたときに、第２のデータDATA-bを選択するための所定値を示す。即ち、制御部１４は、常に、第２のデータDATA-bを選択する選択信号Ｃφを出力し続ける。
【００８７】
尚、外部制御信号ＣＮＴは、例えば、コントローラチップＸとは別のホスト（ＣＰＵ）により生成される。即ち、ホストは、例えば、ソフトウェアに基づいて、外部制御信号ＣＮＴを生成する。
【００８８】
本例において、ロジック部１２内の構成は、図２（第１の実施例）と同じであるため、ここでの説明を省略する。また、本例は、第１の実施例の変形例として説明したが、第２の実施例に対して本例を適用することも可能である。
【００８９】
図１２は、図１１の回路の動作を示している。
【００９０】
この動作は、図１１の制御部１４により制御される。
【００９１】
まず、第１のデータDATA-aのエラーの有無に応じた処理、即ち、第１の実施例における処理Ａ（図３）又は第２の実施例における処理Ｂ（図７）を実行する。
【００９２】
この後、外部制御信号ＣＮＴをチェックする（ステップＳＴ３１）。
【００９３】
次に、外部制御信号ＣＮＴが所定値（例えば、“Ｈ”）を示しているとき、第２のデータDATA-bについてデータ処理を行う（ステップＳＴ３２）。また、外部制御信号ＣＮＴが所定値以外の値（例えば、“Ｌ”）を示しているとき、第１の実施例における処理Ａ（図３）又は第２の実施例における処理Ｂ（図７）を実行する（ステップＳＴ３３）。
【００９４】
・  簡易エラー訂正後のデータを先行処理する技術（図１３〜図３２）  
本技術は、エラー発生頻度に応じて、ロジック部におけるデータ処理を、高速動作優先（高速バージョン）のエラー訂正回路によるエラー訂正後のデータ、及び、エラー訂正動作優先（強化バージョン）のエラー訂正回路によるエラー訂正後のデータのうちの１つについて選択的に行うことができるメモリシステムに関する。
【００９５】
本技術の特徴は、メモリからデータを読み出すと、まず、簡易エラー訂正処理を行い、簡易エラー訂正後のデータについてデータ処理を行う。即ち、簡易エラー訂正後のデータを先行処理する。これに並行して、メモリからのデータについて強化エラー訂正処理を行い、エラーの発生が有るときは、簡易エラー訂正後のデータの先行処理を中止し、再度、強化エラー訂正後のデータについてデータ処理を行う。また、エラーの発生が無いときは、簡易エラー訂正後のデータの先行処理を継続する。
【００９６】
この場合、強化エラー訂正処理の対象となるデータにエラーの発生が無いときは、エラー訂正回路（強化バージョン）によるエラー訂正処理時間に関係なく、簡易エラー訂正後のデータについてデータ処理を行うことができるため、例えば、コントローラ内におけるデータ処理時間を大幅に短縮できる。また、強化エラー訂正処理の対象となるデータにエラーの発生が有るときは、強化エラー訂正後のデータについてデータ処理を行うため、システム上、何ら問題が生じることはない。
【００９７】
尚、エラー訂正回路（高速バージョン）による簡易エラー訂正の速度は、エラー訂正回路（強化バージョン）による強化エラー訂正の速度よりも速い。また、エラー訂正回路（強化バージョン）によるエラー訂正機能は、エラー訂正回路（高速バージョン）によるエラー訂正機能よりも強化されている。
【００９８】
以下、本技術に関し、第５乃至第２０の実施例を説明する。
【００９９】
図１３は、第５の実施例に係わる半導体集積回路を示している。
【０１００】
メモリ１１は、例えば、ＮＡＮＤフラッシュメモリなどの不揮発性メモリ、ＤＲＡＭなどの揮発性メモリである。
【０１０１】
エラー訂正回路（高速バージョン）１３Ａは、メモリ１１から読み出される第１のデータDATAについて簡易エラー訂正処理を実行し、簡易エラー訂正処理された第２のデータDATA-aを出力する。また、エラー訂正回路（強化バージョン）１３Ｂは、第２のデータDATA-aについて強化エラー訂正処理を実行し、強化エラー訂正処理された第３のデータDATA-b及び第２のデータDATA-aのエラーの発生の有無を示すフラグＦを出力する。
【０１０２】
ロジック部１２は、第２及び第３のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する。
【０１０３】
制御部１４は、ロジック部１２が第２のデータDATA-aにエラーが発生していないときは、第２のデータDATA-aをデータ処理に使用し、かつ、第２のデータDATA-aにエラーが発生しているときは、第３のデータDATA-bをデータ処理に使用するように動作を制御する。
【０１０４】
制御部１４は、例えば、第２のデータDATA-aについてのエラーの発生の有無を、エラー訂正回路（強化バージョン）１３Ｂが出力するフラグＦに基づいて判断し、第２及び第３のデータDATA-a, DATA-bのうちの１つを選択する選択信号Ｃφ、及び、第２のデータDATA-aの処理（先行処理）を中止するか否かを決定するリセット信号ＲＳを出力する。
【０１０５】
尚、図１３のロジック部１２の構成は、例えば、図２（第１の実施例）と同じであるため、ここでの説明を省略する。
【０１０６】
図１４は、第６の実施例に係わる半導体集積回路を示している。
【０１０７】
第６の実施例は、第５の実施例の変形例である。第６の実施例は、第５の実施例と比べると、エラー訂正回路（強化バージョン）１３Ｂに入力されるデータに特徴を有する。それ以外の構成については、図１３（第５の実施例）と同じであるため、図１３と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１０８】
本例においては、メモリ１１から読み出される第１のデータDATAが、エラー訂正回路（強化バージョン）１３Ｂに入力される。
【０１０９】
図１５は、第７の実施例に係わる半導体集積回路を示している。
【０１１０】
第７の実施例も、第５の実施例の変形例である。第７の実施例は、第５の実施例と比べると、第２のデータDATA-aのエラーの発生の有無を示すフラグＦを、第２及び第３のデータDATA-a, DATA-bを比較する比較回路１８により生成する点に特徴を有する。比較回路１８以外の構成については、図１３（第５の実施例）と同じであるため、図１３と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１１１】
本例においては、第２及び第３のデータDATA-a, DATA-bは、それぞれ比較回路１８に入力される。そして、比較回路１８は、第２及び第３のデータDATA-a, DATA-bを比較することにより、第２のデータDATA-aのエラーの発生の有無を示すフラグＦを出力する。
【０１１２】
図１６は、第８の実施例に係わる半導体集積回路を示している。
【０１１３】
第８の実施例は、第６の実施例の変形例である。第８の実施例は、第６の実施例と比べると、第１のデータDATAのエラーの発生の有無を示すフラグＦを、第１及び第３のデータDATA, DATA-bを比較する比較回路１８により生成する点に特徴を有する。比較回路１８以外の構成については、図１４（第６の実施例）と同じであるため、図１４と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１１４】
本例においては、第１及び第３のデータDATA, DATA-bは、それぞれ比較回路１８に入力される。そして、比較回路１８は、第１及び第３のデータDATA, DATA-bを比較することにより、第１のデータDATAのエラーの発生の有無を示すフラグＦを出力する。
【０１１５】
図１７は、図１３乃至図１６の回路の動作を示している。
【０１１６】
この動作は、図１３乃至図１６の制御部１４により制御される。
【０１１７】
まず、メモリ１１から第１のデータDATAが読み出されると、エラー訂正回路（高速バージョン）１３Ａにおいて、第１のデータDATAの簡易エラー訂正処理を行う（ステップＳＴ４１）。
【０１１８】
次に、ロジック部１２において、簡易エラー訂正処理された第２のデータDATA-aのデータ処理（先行処理）を開始する（ステップＳＴ４２）。
【０１１９】
この先行処理に並行して、エラー訂正回路（強化バージョン）１３Ｂにおいて、第１のデータDATA（図１４及び図１６対応）又は第２のデータDATA-a（図１３及び図１５対応）の強化エラー訂正処理を行う（ステップＳＴ４３）。
【０１２０】
ここで、これら２つのステップＳＴ４２，ＳＴ４３は、互いに入れ替えてもよいし、１つのステップにまとめてもよい。
【０１２１】
次に、第１のデータDATA（図１４及び図１６対応）又は第２のデータDATA-a（図１３及び図１５対応）のエラーの有無をチェックする（ステップＳＴ４４）。
【０１２２】
このチェックは、例えば、エラー訂正回路（強化バージョン）１３Ｂ又は比較回路１８から出力されるフラグＦに基づいて行われる。そして、フラグＦがエラーの発生が有ることを示しているとき、ロジック部１２において、第２のデータDATA-aのデータ処理を中止し（処理部１６をリセットし）、これに代えて、第３のデータDATA-bのデータ処理を開始する（ステップＳＴ４５）。
【０１２３】
また、フラグＦがエラーの発生が無いことを示しているとき、ロジック部１２における第２のデータDATA-aのデータ処理を継続する（ステップＳＴ４６）。
【０１２４】
以上、第５乃至第８の実施例によれば、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。尚、第５乃至第８の実施例においても、図４に示すデータ処理時間の短縮に関する効果を得ることができる。
【０１２５】
図１８は、第９の実施例に係わる半導体集積回路を示している。
【０１２６】
第９の実施例は、第５の実施例の変形例である。第９の実施例は、第５の実施例と比べると、制御部１４の構成に特徴を有する。制御部１４以外の構成については、図１３（第５の実施例）と同じであるため、図１３と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１２７】
本例においては、制御部１４は、例えば、第２のデータDATA-aについてのエラーの発生の有無を、エラー訂正回路（強化バージョン）１３Ｂが出力するフラグＦに基づいて判断する。また、制御部１４は、第２及び第３のデータDATA-a, DATA-bのうちの１つを選択する選択信号Ｃφ、第２のデータDATA-aの処理（先行処理）を一定時点で中断するための一時停止信号ＳＰ、及び、第２のデータDATA-aの処理（先行処理）を中止するか否かを決定するリセット信号ＲＳを出力する。
【０１２８】
尚、図１８のロジック部１２の構成は、例えば、図６（第２の実施例）と同じであるため、ここでの説明を省略する。
【０１２９】
図１９は、第１０の実施例に係わる半導体集積回路を示している。
【０１３０】
第１０の実施例は、第９の実施例の変形例である。第１０の実施例は、第９の実施例と比べると、エラー訂正回路（強化バージョン）１３Ｂに入力されるデータに特徴を有する。それ以外の構成については、図１８（第９の実施例）と同じであるため、図１８と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１３１】
本例においては、メモリ１１から読み出される第１のデータDATAが、エラー訂正回路（強化バージョン）１３Ｂに入力される。
【０１３２】
図２０は、第１１の実施例に係わる半導体集積回路を示している。
【０１３３】
第１１の実施例も、第９の実施例の変形例である。第１１の実施例は、第９の実施例と比べると、第２のデータDATA-aのエラーの発生の有無を示すフラグＦを、第２及び第３のデータDATA-a, DATA-bを比較する比較回路１８により生成する点に特徴を有する。比較回路１８以外の構成については、図１８（第９の実施例）と同じであるため、図１８と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１３４】
本例においては、第２及び第３のデータDATA-a, DATA-bは、それぞれ比較回路１８に入力される。そして、比較回路１８は、第２及び第３のデータDATA-a, DATA-bを比較することにより、第２のデータDATA-aのエラーの発生の有無を示すフラグＦを出力する。
【０１３５】
図２１は、第１２の実施例に係わる半導体集積回路を示している。
【０１３６】
第１２の実施例は、第１０の実施例の変形例である。第１２の実施例は、第１０の実施例と比べると、第１のデータDATAのエラーの発生の有無を示すフラグＦを、第１及び第３のデータDATA, DATA-bを比較する比較回路１８により生成する点に特徴を有する。比較回路１８以外の構成については、図１９（第１０の実施例）と同じであるため、図１９と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１３７】
本例においては、第１及び第３のデータDATA, DATA-bは、それぞれ比較回路１８に入力される。そして、比較回路１８は、第１及び第３のデータDATA, DATA-bを比較することにより、第１のデータDATAのエラーの発生の有無を示すフラグＦを出力する。
【０１３８】
図２２は、図１８乃至図２１の回路の動作を示している。
【０１３９】
この動作は、図１８乃至図２１の制御部１４により制御される。
【０１４０】
まず、メモリ１１から第１のデータDATAが読み出されると、エラー訂正回路（高速バージョン）１３Ａにおいて、第１のデータDATAの簡易エラー訂正処理を行う（ステップＳＴ５１）。
【０１４１】
次に、ロジック部１２において、簡易エラー訂正処理された第２のデータDATA-aのデータ処理（先行処理）を開始する。このデータ処理は、一定時点で中断する（ステップＳＴ５２）。
【０１４２】
この先行処理に並行して、エラー訂正回路（強化バージョン）１３Ｂにおいて、第１のデータDATA（図１９及び図２１対応）又は第２のデータDATA-a（図１８及び図２０対応）の強化エラー訂正処理を行う（ステップＳＴ５３）。
【０１４３】
ここで、これら２つのステップＳＴ５２，ＳＴ５３は、互いに入れ替えてもよいし、１つのステップにまとめてもよい。
【０１４４】
次に、第１のデータDATA（図１９及び図２１対応）又は第２のデータDATA-a（図１８及び図２０対応）のエラーの有無をチェックする（ステップＳＴ５４）。
【０１４５】
このチェックは、例えば、エラー訂正回路（強化バージョン）１３Ｂ又は比較回路１８から出力されるフラグＦに基づいて行われる。そして、フラグＦがエラーの発生が有ることを示しているとき、ロジック部１２において、第２のデータDATA-aのデータ処理を中止し（処理部１６をリセットし）、これに代えて、第３のデータDATA-bのデータ処理を開始する（ステップＳＴ５５）。
【０１４６】
また、フラグＦがエラーの発生が無いことを示しているとき、ロジック部１２における第２のデータDATA-aのデータ処理を再開する（ステップＳＴ５６）。
【０１４７】
以上、第９乃至第１２の実施例においても、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。尚、第９乃至第１２の実施例においても、図８に示すデータ処理時間の短縮に関する効果を得ることができる。
【０１４８】
図２３乃至図２６は、第１３の実施例に係わる半導体集積回路を示している。
【０１４９】
第１３の実施例は、第５乃至第８の実施例の変形例である。
【０１５０】
第１３の実施例は、第５乃至第８の実施例と比べると、さらに、エラー発生頻度チェック部１７を有する点に特徴を有する。エラー発生頻度チェック部１７以外の構成については、図１３乃至図１６（第５乃至第８の実施例）と同じであるため、図１３乃至図１６と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１５１】
尚、図２３は、図１３に対応し、図２４は、図１４に対応し、図２５は、図１５に対応し、図２６は、図１６に対応する。
【０１５２】
本例においては、エラー発生頻度チェック部１７は、例えば、第１のデータDATA（図２４及び図２６対応）又は第２のデータDATA-a（図２３及び図２５対応）についてのエラー発生頻度を累積記憶する。エラー発生頻度は、例えば、フラグＦに基づいて、エラー発生頻度チェック部１７に累積記憶される。この場合、フラグＦは、エラーの発生の有無を示す１ビットと、エラー発生頻度（エラービット数）を示す複数ビットとを含む。
【０１５３】
そして、制御部１４は、エラー発生頻度が所定値（エラービット数の許容値）を超えたとき、ロジック部１２に第３のデータDATA-bについてデータ処理を実行させる。例えば、制御部１４は、常に、第３のデータDATA-bを選択する選択信号Ｃφを出力し続ける。
【０１５４】
尚、本例において、ロジック部１２内の構成は、図２（第１の実施例）と同じであるため、ここでの説明を省略する。
【０１５５】
さらに、本例は、第５乃至第８の実施例の変形例として説明したが、第９乃至第１２の実施例に対して本例のエラー発生頻度チェック部１７を設けることも可能である。
【０１５６】
図２７は、図２３乃至図２６の回路の動作を示している。
【０１５７】
この動作は、図２３乃至図２６の制御部１４により制御される。
【０１５８】
まず、第１のデータDATA（図２４及び図２６対応）又は第２のデータDATA-a（図２３及び図２５対応）のエラーの有無に応じた処理、例えば、第５乃至第８の実施例における処理Ｅ（図１７）又は第９乃至第１２の実施例における処理Ｆ（図２２）を実行する。
【０１５９】
この後、第１のデータDATA（図２４及び図２６対応）又は第２のデータDATA-a（図２３及び図２５対応）についてのエラー発生頻度が所定値を超えたか否かを判断する（ステップＳＴ６１）。
【０１６０】
次に、エラー発生頻度が所定値を超えているとき、第３のデータDATA-bについてデータ処理を行う（ステップＳＴ６２）。また、エラー発生頻度が所定値を超えていないとき、第５乃至第８の実施例における処理Ｅ（図１７）又は第９乃至第１２の実施例における処理Ｆ（図２２）を継続する（ステップＳＴ６３）。
【０１６１】
図２８乃至図３１は、第１４の実施例に係わる半導体集積回路を示している。
【０１６２】
第１４の実施例は、第５乃至第８の実施例の変形例である。
【０１６３】
第１４の実施例は、第５乃至第８の実施例と比べると、外部制御信号ＣＮＴに基づいて、ロジック部１２でのデータ処理に使用するデータ（第２及び第３のデータDATA-a, DATA-bのうちの１つ）を選択できる点に特徴を有する。これ以外の構成については、図１３乃至図１６（第５乃至第８の実施例）と同じであるため、図１３乃至図１６と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
【０１６４】
尚、図２８は、図１３に対応し、図２９は、図１４に対応し、図３０は、図１５に対応し、図３１は、図１６に対応する。
【０１６５】
本例においては、外部制御信号ＣＮＴが所定値を示しているとき、ロジック部１２に第３のデータDATA-bのデータ処理を実行させる。外部制御信号ＣＮＴは、例えば、エラー訂正回路１３からのフラグＦに基づいて、その値を決定する。この場合、フラグＦは、エラーの発生の有無を示す１ビットと、エラー発生頻度（エラービット数）を示す複数ビットとを含む。
【０１６６】
そして、外部制御信号ＣＮＴは、例えば、エラー発生頻度が所定値（エラービット数の許容値）を超えたときに、第３のデータDATA-bを選択するための所定値を示す。即ち、制御部１４は、常に、第３のデータDATA-bを選択する選択信号Ｃφを出力し続ける。
【０１６７】
尚、外部制御信号ＣＮＴは、例えば、コントローラチップＸとは別のホスト（ＣＰＵ）により生成される。即ち、ホストは、例えば、ソフトウェアに基づいて、外部制御信号ＣＮＴを生成する。
【０１６８】
本例において、ロジック部１２内の構成は、図２（第１の実施例）と同じであるため、ここでの説明を省略する。また、本例は、第５乃至第８の実施例の変形例として説明したが、第９乃至第１２の実施例に対して本例を適用することも可能である。
【０１６９】
図３２は、図２８乃至図３１の回路の動作を示している。
【０１７０】
この動作は、図２８乃至図３１の制御部１４により制御される。
【０１７１】
まず、第１のデータDATA（図２９及び図３１対応）又は第２のデータDATA-a（図２８及び図３０対応）のエラーの有無に応じた処理、例えば、第５乃至第８の実施例における処理Ｅ（図１７）又は第９乃至第１２の実施例における処理Ｆ（図２２）を実行する。
【０１７２】
この後、外部制御信号ＣＮＴをチェックする（ステップＳＴ７１）。
【０１７３】
次に、外部制御信号ＣＮＴが所定値（例えば、“Ｈ”）を示しているとき、第３のデータDATA-bについてデータ処理を行う（ステップＳＴ７２）。また、外部制御信号ＣＮＴが所定値以外の値（例えば、“Ｌ”）を示しているとき、第５乃至第８の実施例における処理Ｅ（図１７）又は第９乃至第１２の実施例における処理Ｆ（図２２）を実行する（ステップＳＴ７３）。
【０１７４】
・  メモリの種類／特性に応じてエラー訂正回路を切り替える技術（図３３〜図４１）
図３３乃至図３６は、第１５の実施例に係わる半導体集積回路を示している。
【０１７５】
第１５の実施例は、第１、第３、第４及び第５の実施例の変形例である。
【０１７６】
第１５の実施例は、これら第１、第３、第４及び第５の実施例と比べると、さらに、互いに異なる第１のメモリ１１Ａ及び第２のメモリ１１Ｂを共通に接続するインターフェイス部１９を有する点に特徴を有する。インターフェイス部１９以外の構成については、第１、第３、第４及び第５の実施例と同じであるため、その詳細な説明を省略する。
【０１７７】
尚、図３３は、図１（第１の実施例）に対応し、図３４は、図９（第３の実施例）に対応し、図３５は、図１１（第４の実施例）に対応し、図３６は、図１３（第５の実施例）に対応する。
【０１７８】
また、本例は、第２、第６乃至第１４の実施例に適用することも可能である。
【０１７９】
本例において、第１及び第２のメモリ１１Ａ，１１Ｂは、互いに異なる種類のメモリ（例えば、第１のメモリ１１ＡがＮＡＮＤフラッシュメモリであり、第２のメモリ１１ＢがＤＲＡＭである場合など）であってもよいし、同一種類のメモリ（例えば、ＮＡＮＤフラッシュメモリ）であるが、互いに異なる特性（例えば、第１のメモリ１１Ａが２値メモリであり、第２のメモリ１１Ｂが多値メモリである場合など）を有していてもよい。
【０１８０】
図３７は、第１６の実施例に係わる半導体集積回路を示している。
【０１８１】
メモリ１１Ａ，１１Ｂは、例えば、ＮＡＮＤフラッシュメモリなどの不揮発性メモリ、ＤＲＡＭなどの揮発性メモリである。メモリ１１Ａ，１１Ｂは、インターフェイス部１９に共通に接続される。
【０１８２】
エラー訂正回路（高速バージョン）１３Ａは、メモリ１１Ａ，１１Ｂから読み出される第１のデータDATAについてエラー訂正処理を実行し、エラー訂正処理された第２のデータDATA-aを出力する。また、エラー訂正回路（強化バージョン）１３Ｂは、メモリ１１Ａ，１１Ｂから読み出される第１のデータDATAについてエラー訂正処理を実行し、エラー訂正処理された第３のデータDATA-bを出力する。
【０１８３】
エラー訂正回路１３Ａにおけるエラー訂正速度は、エラー訂正回路１３Ｂにおけるエラー訂正速度よりも速く、かつ、エラー訂正回路１３Ｂにおけるエラー訂正機能は、エラー訂正回路１３Ａにおけるエラー訂正機能よりも強化されている。ここで、強化とは、例えば、エラー訂正可能なビット数が多いことをいう。
【０１８４】
ロジック部１２は、第１及び第２のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する。
【０１８５】
制御部１４は、例えば、低いエラー発生頻度を有するメモリ１１ＡからデータDATAを読み出すとき、エラー訂正回路（高速バージョン）１３Ａによりエラー訂正された第２のデータDATA-aをロジック部１２におけるデータ処理に使用する。また、制御部１４は、例えば、高いエラー発生頻度を有するメモリ１１ＢからデータDATAを読み出すとき、エラー訂正回路（強化バージョン）１３Ｂによりエラー訂正された第３のデータDATA-bをロジック部１２におけるデータ処理に使用する。
【０１８６】
エラー発生頻度チェック部１７は、例えば、メモリ１１Ａから読み出されるデータDATAのエラー発生頻度、及び、メモリ１１Ｂから読み出されるデータDATAのエラー発生頻度を、例えば、エラー訂正回路１３Ａから出力されるフラグＦに基づいて記憶する。ここで、エラー発生頻度とは、例えば、メモリ１１Ａ，１１Ｂから読み出されたデータ中に発生するエラービット数のことであり、フラグＦは、エラー訂正回路１３Ａでのエラー発生の有無又はエラー発生頻度を示す。
【０１８７】
図３８は、図３７のロジック部を示している。
【０１８８】
ロジック部１２は、選択信号Ｃφに基づいて、第２及び第３のデータDATA-a, DATA-bのうちの１つを選択するマルチプレクサ１５、及び、第２及び第３のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する処理部１６を有する。
【０１８９】
図３９は、図３７の回路の動作を示している。
【０１９０】
この動作は、図３７の制御部１４により制御される。
【０１９１】
まず、前提条件として、メモリ１１Ｂのエラー発生頻度は、メモリ１１Ａのエラー発生頻度よりも高いものとする。
【０１９２】
メモリ１１ＡからデータDATAを読み出すとき、制御部１４は、エラー発生頻度チェック部１７を参酌し、メモリ１１Ａのエラー発生頻度をチェックする。そして、メモリ１１Ａのエラー発生頻度が所定値を越えているか否かを確認する（ステップＳＴ８１）。
【０１９３】
メモリ１１Ａのエラー発生頻度は、所定値を越えていないため、メモリ１１ＡからデータDATAを読み出すときは、エラー訂正回路１３Ａを使用して高速エラー訂正処理し、高速エラー訂正処理された第２のデータDATA-aについてデータ処理を実行する（ステップＳＴ８２）。
【０１９４】
メモリ１１ＢからデータDATAを読み出すとき、制御部１４は、エラー発生頻度チェック部１７を参酌し、メモリ１１Ｂのエラー発生頻度をチェックする。そして、メモリ１１Ｂのエラー発生頻度が所定値を越えているか否かを確認する（ステップＳＴ８１）。
【０１９５】
メモリ１１Ｂのエラー発生頻度は、所定値を越えているため、メモリ１１ＢからデータDATAを読み出すときは、エラー訂正回路１３Ｂを使用して強化エラー訂正処理し、強化エラー訂正処理された第３のデータDATA-bについてデータ処理を実行する（ステップＳＴ８３）。
【０１９６】
以上、第１６の実施例によれば、メモリ１１Ａ，１１Ｂから読み出すデータのエラー発生頻度に応じて、エラー訂正処理に使用するエラー訂正回路の機能を選択可能である。従って、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【０１９７】
図４０は、第１７の実施例に係わる半導体集積回路を示している。
【０１９８】
メモリ１１Ａ，１１Ｂは、例えば、ＮＡＮＤフラッシュメモリなどの不揮発性メモリ、ＤＲＡＭなどの揮発性メモリである。メモリ１１Ａ，１１Ｂは、インターフェイス部１９に共通に接続される。
【０１９９】
エラー訂正回路（高速バージョン）１３Ａは、メモリ１１Ａ，１１Ｂから読み出される第１のデータDATAについてエラー訂正処理を実行し、エラー訂正処理された第２のデータDATA-aを出力する。また、エラー訂正回路（強化バージョン）１３Ｂは、メモリ１１Ａ，１１Ｂから読み出される第１のデータDATAについてエラー訂正処理を実行し、エラー訂正処理された第３のデータDATA-bを出力する。
【０２００】
エラー訂正回路１３Ａにおけるエラー訂正速度は、エラー訂正回路１３Ｂにおけるエラー訂正速度よりも速く、かつ、エラー訂正回路１３Ｂにおけるエラー訂正機能は、エラー訂正回路１３Ａにおけるエラー訂正機能よりも強化されている。ここで、強化とは、例えば、エラー訂正可能なビット数が多いことをいう。
【０２０１】
ロジック部１２は、第１及び第２のデータDATA-a, DATA-bのうちの１つについてデータ処理を実行する。
【０２０２】
制御部１４は、例えば、低いエラー発生頻度を有するメモリ１１ＡからデータDATAを読み出すとき、エラー訂正回路（高速バージョン）１３Ａによりエラー訂正された第２のデータDATA-aをロジック部１２におけるデータ処理に使用する。また、制御部１４は、例えば、高いエラー発生頻度を有するメモリ１１ＢからデータDATAを読み出すとき、エラー訂正回路（強化バージョン）１３Ｂによりエラー訂正された第３のデータDATA-bをロジック部１２におけるデータ処理に使用する。
【０２０３】
尚、図４０のロジック部１２は、図３８と同じであるため、ここでの説明を省略する。
【０２０４】
図４１は、図４０の回路の動作を示している。
【０２０５】
この動作は、図４０の制御部１４により制御される。
【０２０６】
まず、前提条件として、メモリ１１Ｂのエラー発生頻度は、メモリ１１Ａのエラー発生頻度よりも高いものとする。
【０２０７】
メモリ１１ＡからデータDATAを読み出すとき、制御部１４は、外部制御信号ＣＮＴをチェックする（ステップＳＴ９１）。
【０２０８】
外部制御信号ＣＮＴは、例えば、メモリ１１Ａのエラー発生頻度に基づいて生成される。そして、例えば、外部制御信号ＣＮＴが“Ｈ”のときは、エラー訂正回路１３Ａを使用して高速エラー訂正処理し、高速エラー訂正処理された第２のデータDATA-aについてデータ処理を実行する（ステップＳＴ９２）。
【０２０９】
また、メモリ１１ＢからデータDATAを読み出すとき、制御部１４は、外部制御信号ＣＮＴをチェックする（ステップＳＴ９１）。
【０２１０】
外部制御信号ＣＮＴは、例えば、メモリ１１Ｂのエラー発生頻度に基づいて生成される。そして、例えば、外部制御信号ＣＮＴが“Ｌ”のときは、エラー訂正回路１３Ｂを使用して強化エラー訂正処理し、強化エラー訂正処理された第３のデータDATA-bについてデータ処理を実行する（ステップＳＴ９３）。
【０２１１】
以上、第１７の実施例によれば、外部制御信号ＣＮＴの値に応じて、エラー訂正処理に使用するエラー訂正回路の機能を選択可能である。従って、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができ、メモリシステムのパフォーマンスを向上させることができる。
【０２１２】
・  その他  
以上、実施例の説明において、エラー訂正回路の数は、１個又は２個であったが、当然に、３個以上のエラー訂正回路を用いて本実施例を実行することも可能である。
【０２１３】
（適用例）  
図４２は、適用例としてのメモリシステムを示している。
【０２１４】
本例は、図３６の第２１の実施例に対応するが、当然に、それ以外の実施例についても、このメモリシステムを適用例として採用できる。
【０２１５】
このシステムは、ホスト２０、コントローラ２１及びＮＡＮＤフラッシュメモリ１１Ａ，１１Ｂ，…を備える。コントローラ２１は、第１乃至第２２の実施例に係わる半導体集積回路Ｘに相当する。
【０２１６】
コントローラ２１は、例えば、ロジック部１２、ＣＰＵ（第１乃至第２２の実施例に係わる制御部に相当）１４、エラー訂正回路１３Ａ，１３Ｂ、ホストホストインターフェイス２２、ＮＡＮＤインターフェイス２３、ＳＲＡＭ（Static random access memory）２４、及び、これらを接続するバス２５を備える。
【０２１７】
ＣＰＵ１４は、例えば、ホスト２０からの命令に基づき、ＮＡＮＤフラッシュメモリ１１Ａ，１１Ｂ，…に対するデータの書き込み／読み出し動作を制御する。ＮＡＮＤフラッシュメモリ１１Ａ，１１Ｂ，…は、１つのメモリセルに２値（１ビット）を記憶する２値メモリであってもよいし、１つのメモリセルに３値以上を記憶する多値メモリであってもよい。
【０２１８】
ホストホストインターフェイス２２は、ホスト２０に対するインターフェイスであり、例えば、ＵＳＢ（Universal serial bus）、ＳＡＴＡ（Serial Advanced Technology Attachment）などを使用可能である。ＮＡＮＤインターフェイス２３は、ＮＡＮＤフラッシュメモリ１１Ａ，１１Ｂ，…に対するインターフェイスである。
【０２１９】
ＳＲＡＭ２４は、コントローラ２１内でのデータ処理におけるキャッシュメモリとして機能する。エラー訂正回路１３Ａ，１３Ｂは、例えば、ＮＡＮＤフラッシュメモリ１１Ａ，１１Ｂ，…に対するデータの書き込み／読み出しにおいて、データのエラー訂正処理を実行する。
【０２２０】
図４３は、メモリシステムの実装例を示している。
【０２２１】
例えば、図４２のメモリシステムは、１つのパッケージ２６内に組み込むことが可能である。尚、パッケージの種類は、本例に限定されることはない。
【０２２２】
１つのパッケージ２６内には、コントローラチップ２１（Ｘ）及びメモリチップ１１Ａ，１１Ｂ，…が互いに積み重ねられて配置される。コントローラチップ２１は、図４２のコントローラ２１に相当する。また、メモリチップ１１Ａ，１１Ｂ，…は、図４２のＮＡＮＤフラッシュメモリ１１Ａ，１１Ｂ，…に相当する。
【０２２３】
コントローラチップ２１上に積み重ねるメモリチップ１１Ａ，１１Ｂ，…の数は、１つであってもよいし、複数であってもよい。
【０２２４】
また、コントローラチップ２１とメモリチップ１１Ａ，１１Ｂ，…とは、ボンディングワイヤや、ＴＳＶ（Through Silicon Via）などの配線技術により、互いに接続される。
【０２２５】
（むすび）  
実施形態によれば、エラー訂正処理によるデータ処理時間の増加を最小限に抑えることができる。
【０２２６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２２７】
１１，１１Ａ，１１Ｂ：  メモリ、  １２：  ロジック部、  １３，１３Ａ，１３Ｂ：  エラー訂正回路、  １４：  制御部、  １５：  マルチプレクサ、  １６：  処理部、  １７：  エラー発生頻度チェック部、  １８：  比較回路、  １９：  インターフェイス部。
【図１】
2014052971.tif 000003
【図２】
2014052971.tif 000004
【図３】
2014052971.tif 000005
【図４】
2014052971.tif 000006
【図５】
2014052971.tif 000007
【図６】
2014052971.tif 000008
【図７】
2014052971.tif 000009
【図８】
2014052971.tif 000010
【図９】
2014052971.tif 000011
【図１０】
2014052971.tif 000012
【図１１】
2014052971.tif 000013
【図１２】
2014052971.tif 000014
【図１３】
2014052971.tif 000015
【図１４】
2014052971.tif 000016
【図１５】
2014052971.tif 000017
【図１６】
2014052971.tif 000018
【図１７】
2014052971.tif 000019
【図１８】
2014052971.tif 000020
【図１９】
2014052971.tif 000021
【図２０】
2014052971.tif 000022
【図２１】
2014052971.tif 000023
【図２２】
2014052971.tif 000024
【図２３】
2014052971.tif 000025
【図２４】
2014052971.tif 000026
【図２５】
2014052971.tif 000027
【図２６】
2014052971.tif 000028
【図２７】
2014052971.tif 000029
【図２８】
2014052971.tif 000030
【図２９】
2014052971.tif 000031
【図３０】
2014052971.tif 000032
【図３１】
2014052971.tif 000033
【図３２】
2014052971.tif 000034
【図３３】
2014052971.tif 000035
【図３４】
2014052971.tif 000036
【図３５】
2014052971.tif 000037
【図３６】
2014052971.tif 000038
【図３７】
2014052971.tif 000039
【図３８】
2014052971.tif 000040
【図３９】
2014052971.tif 000041
【図４０】
2014052971.tif 000042
【図４１】
2014052971.tif 000043
【図４２】
2014052971.tif 000044
【図４３】
2014052971.tif 000045