(57)【要約】【課題】  読み出し要求から読み出しデータを出力するまでの遅延時間の短縮化が可能な誤り検出訂正処理を利用したメモリシステムを提供する。【解決手段】  記憶装置１０とメモリコントローラ２０と演算処理装置３１を備え、メモリコントローラ２０が、演算処理装置３１から主データの読み出し要求を受け付けると、記憶装置１０から主データ及び検査データからなる符号化データを読み出し、主データを演算処理装置３１に出力する出力処理と並行して或いはその後に、誤り検出訂正処理の内、符号化データを用いて主データの誤りを検出すると共に、訂正用データを生成して演算処理装置３１に出力する訂正予備処理を実行し、演算処理装置３１が、誤りが検出された主データについて、誤り検出訂正処理の内の訂正処理を実行するか否かを判定し、訂正処理を実行すると判定した主データに対し対応する訂正用データを用いて訂正処理を実行する。【選択図】        図１
2010140132.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットで構成された主データと前記主データの誤りを検出し訂正する誤り検出訂正処理の実行に用いる検査データとからなる符号化データを記憶するための記憶装置と、メモリコントローラと、演算処理装置を備えたメモリシステムであって、
前記メモリコントローラが、前記演算処理装置から前記主データの読み出し処理の実行を指示する読み出し要求を受け付けると、前記記憶装置から前記符号化データを読み出す読み出し処理を実行し、読み出された前記主データを前記演算処理装置に出力する出力処理を実行し、前記出力処理と並行して或いはその後に、前記誤り検出訂正処理の内、前記符号化データを用いて前記主データの誤りを検出すると共に、前記主データの誤りを訂正するための訂正用データを生成し、前記訂正用データを前記演算処理装置に出力する訂正予備処理を実行し、
前記演算処理装置が、所定の誤り訂正条件に基づき、誤りが検出された前記主データについて、前記誤り検出訂正処理の内、前記主データの誤りを訂正する訂正処理を実行するか否かを判定し、前記訂正処理を実行すると判定した前記主データに対し、対応する前記訂正用データを用いて前記訂正処理を実行することを特徴とするメモリシステム。
【請求項２】
前記記憶装置は、前記主データを記憶する主データ記憶領域と、前記検査データを記憶可能な冗長領域とからなるページ記憶領域を複数備えるＮＡＮＤ型不揮発性メモリであることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラが、前記ページ記憶領域毎に、前記主データ、前記検査データの順に前記符号化データを直接読み出す読み出し処理を実行し、前記符号化データから前記主データを抽出しながら前記出力処理を実行し、前記符号化データを順次読み出しながら前記訂正予備処理を実行することを特徴とする請求項２に記載のメモリシステム。
【請求項４】
所定の演算処理装置から複数ビットで構成された主データの読み出し処理の実行を指示する読み出し要求を受け付けると、前記主データと前記主データの誤りを検出し訂正する誤り検出訂正処理の実行に用いる検査データとからなる符号化データを記憶した記憶装置から前記符号化データを読み出す読み出し処理を実行し、
読み出された前記主データを前記演算処理装置に出力する出力処理を実行し、
前記出力処理と並行して或いはその後に、前記誤り検出訂正処理の内、前記符号化データを用いて前記主データの誤りを検出すると共に、前記主データの誤りを訂正するための訂正用データを生成し、前記訂正用データを前記演算処理装置に出力する訂正予備処理を実行することを特徴とするメモリコントローラ。
【請求項５】
前記符号化データを構成する各ビットのビットデータのビット単位での入力毎に、入力された前記ビットデータを用いて逐次処理し、前記主データの誤り検出及び前記訂正用データの生成を行うことを特徴とする請求項４に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリのアクセス動作を制御するメモリコントローラを備えるメモリシステム、及び、そのメモリコントローラに関する。
【背景技術】
【０００２】
不揮発性メモリには、例えば、比較的高速で大容量のＮＡＮＤフラッシュメモリがある。しかし、ＮＡＮＤフラッシュメモリは、特性上、データを書き込む書き込み処理時の書き込みエラーや、データを読み出す読み出し処理を同じアドレスに対して繰り返し実行した場合に発生するデータ化け（リードディスターブ）等の発生頻度が比較的高い。
【０００３】
このような書き込みエラーやリードディスターブに対応するため、従来は、例えば、データの誤りを検出して訂正する誤り検出訂正処理が行われている。誤り検出訂正処理には、例えば、ハミング符号やＢＣＨ（ＢＯＳＥ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号等が利用されている。
【０００４】
ここで、例えば、ハミング符号による誤り検出訂正処理は、複数ビットで構成された主データと、主データの誤りを検出し訂正する誤り検出訂正処理の実行に用いる検査データと、からなる符号化データを用いて行われる。特に、ハミング符号により１主データ当たり１ビットの誤り検出訂正を行う誤り検出訂正処理では、例えば、読み出した主データのデータ長が４ビットの場合、データ長が４ビットの主データとデータ長が３ビットの検査データからなる符号化データを復号化する。復号化により、読み出した符号化データの誤りを検出すると共に、誤りが検出された場合は、符号化データ中における誤りビットの位置を特定する。復号化で特定された位置のビットを反転させることで、読み出した符号化データの誤りを訂正することができる。
【０００５】
ここで、誤り検出訂正処理を、ＮＡＮＤフラッシュメモリ等の不揮発性メモリを搭載したホストコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で行うと、ＣＰＵの負荷が非常に大きくなることから、不揮発性メモリの読み出し処理を制御するメモリコントローラには、誤り検出訂正処理を行う機能を備えたものがある（例えば、特許文献１参照）。
【０００６】
ここで、図８は、上記特許文献１に記載のメモリコントローラ１２０を備えたメモリシステム１００の概略部分の構成例を示している。
【０００７】
メモリシステム１００は、図８に示すように、不揮発性メモリ１１０、メモリコントローラ１２０、ホストコンピュータ１３０を備えて構成されている。
【０００８】
不揮発性メモリ１１０は、主データを格納するユーザ領域と、ハミング符号等、誤り検出訂正処理に用いる検査データまたは検査データに相当するデータを格納可能な冗長領域とからなるメモリセルアレイ１１１を備えて構成されている。
【０００９】
メモリコントローラ１２０は、主データを記憶するバッファ１２１、誤り検出訂正処理を行う誤り訂正符号・復号器１２４、訂正符号・復号器１２４が生成した検査データに対し所定の可逆処理を施し、データＥＣＣ−Ｍを生成するマスク回路１２５、データＥＣＣ−Ｍを記憶するＥＣＣレジスタ１２２、管理データを記憶する管理データレジスタ１２３を備えている。
【００１０】
以下、メモリコントローラ１２０の処理動作について、簡単に説明する。
メモリコントローラ１２０は、ホストコンピュータ１３０から不揮発性メモリ１１０に対する主データの書き込み処理の実行を指示する書き込み要求を受け付けると、誤り訂正符号・復号器１２４が、バッファ１２１に入力された４０９６ビット（５１２バイト）の書き込みデータに４ビットのダミービットを付加して不揮発性メモリ１１０のユーザ領域に書き込むと共に、書き込みデータに基づいて検査データを生成し、検査データをマスク回路１２５に出力する。マスク回路１２５は、検査データに所定の可逆処理を施して生成した８０ビットのデータＥＣＣ−Ｍを不揮発性メモリ１１０の冗長領域に書き込む。
【００１１】
メモリコントローラ１２０は、ホストコンピュータ１３０から不揮発性メモリ１１０に対する主データの読み出し処理の実行を指示する読み出し要求を受け付けると、不揮発性メモリ１１０のユーザ領域から、４０９６ビットの主データ及び４ビットのダミービットを読み出すと共に、冗長領域から８０ビットのデータＥＣＣ−Ｍを読み出す。メモリコントローラ１２０は、バッファ１２１に主データを記憶する。マスク回路１２５は、データＥＣＣ−Ｍから元の検査データを復元する処理を行い、誤り訂正符号・復号器１２４に出力する。誤り訂正符号・復号器１２４は、４０９６ビットの主データ、４ビットのダミービット、マスク回路１２５が復元した検査データに基づいて、誤り検出訂正処理の内の復号化処理を実行する。誤り訂正符号・復号器１２４は、復号化処理において誤りが検出された場合、復号化処理で特定された位置の誤りビットの論理を反転させることにより、バッファ１２１の主データを訂正する。
【００１２】
【特許文献１】特開２００６−２２１３３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、誤り検出訂正処理を行うメモリコントローラでは、特に、複数の主データをまとめて読み出すページ読み出し処理を実行する場合には、誤り検出訂正処理のために、不揮発性メモリから１ページ分の主データと、当該主データに対応する検査データを読み出して内部レジスタに記憶し、誤り検出訂正処理を実行した後に、訂正後の主データをホストコンピュータに対して出力する。このため、ホストコンピュータから読み出し処理の実行を指示する読み出し要求を受け付けてから主データが出力されるまでの遅延時間（レイテンシ）が長くなるという問題があった。
【００１４】
本発明は上記の問題に鑑みてなされたものであり、その目的は、読み出し要求から読み出しデータを出力するまでの遅延時間を短縮化し、且つ、高い信頼性を必要とする主データの信頼性を損なうことのない誤り検出訂正処理を利用したメモリシステムを提供する点にある。読み出し要求から読み出しデータを出力するまでの遅延時間を短縮化できるメモリコントローラを提供する。
【課題を解決するための手段】
【００１５】
上記目的を達成するための本発明に係るメモリシステムは、複数ビットで構成された主データと前記主データの誤りを検出し訂正する誤り検出訂正処理の実行に用いる検査データとからなる符号化データを記憶するための記憶装置と、メモリコントローラと、演算処理装置を備えたメモリシステムであって、前記メモリコントローラが、前記演算処理装置から前記主データの読み出し処理の実行を指示する読み出し要求を受け付けると、前記記憶装置から前記符号化データを読み出す読み出し処理を実行し、読み出された前記主データを前記演算処理装置に出力する出力処理を実行し、前記出力処理と並行して或いはその後に、前記誤り検出訂正処理の内、前記符号化データを用いて前記主データの誤りを検出すると共に、前記主データの誤りを訂正するための訂正用データを生成し、前記訂正用データを前記演算処理装置に出力する訂正予備処理を実行し、前記演算処理装置が、所定の誤り訂正条件に基づき、誤りが検出された前記主データについて、前記誤り検出訂正処理の内、前記主データの誤りを訂正する訂正処理を実行するか否かを判定し、前記訂正処理を実行すると判定した前記主データに対し、対応する前記訂正用データを用いて前記訂正処理を実行することを第１の特徴とする。
【００１６】
上記特徴の本発明に係るメモリシステムは、前記記憶装置は、前記主データを記憶する主データ記憶領域と、前記検査データを記憶可能な冗長領域とからなるページ記憶領域を複数備えるＮＡＮＤ型不揮発性メモリであることを第２の特徴とする。
【００１７】
上記何れかの特徴の本発明に係るメモリシステムは、前記メモリコントローラが、前記ページ記憶領域毎に、前記主データ、前記検査データの順に前記符号化データを直接読み出す読み出し処理を実行し、前記符号化データから前記主データを抽出しながら前記出力処理を実行し、前記符号化データを順次読み出しながら前記訂正予備処理を実行することを第３の特徴とする。
【００１８】
上記目的を達成するための本発明に係るメモリコントローラは、所定の演算処理装置から複数ビットで構成された主データの読み出し処理の実行を指示する読み出し要求を受け付けると、前記主データと前記主データの誤りを検出し訂正する誤り検出訂正処理の実行に用いる検査データとからなる符号化データを記憶した記憶装置から前記符号化データを読み出す読み出し処理を実行し、読み出された前記主データを前記演算処理装置に出力する出力処理を実行し、前記出力処理と並行して或いはその後に、前記誤り検出訂正処理の内、前記符号化データを用いて前記主データの誤りを検出すると共に、前記主データの誤りを訂正するための訂正用データを生成し、前記訂正用データを前記演算処理装置に出力する訂正予備処理を実行することを第１の特徴とする。
【００１９】
上記特徴の本発明に係るメモリコントローラは、前記符号化データを構成する各ビットのビットデータのビット単位での入力毎に、入力された前記ビットデータを用いて逐次処理し、前記主データの誤り検出及び前記訂正用データの生成を行うことを第２の特徴とする。
【発明の効果】
【００２０】
上記特徴のメモリシステムによれば、メモリコントローラが、主データの出力処理と並行して、符号化データから主データの誤りを検出して訂正用データを生成する訂正予備処理を行うので、演算処理装置による読み出し要求から主データの出力までの遅延時間を短くすることが可能になる。
【００２１】
尚、主データには、プログラムデータのように、１ビットの誤りも許されず、応答速度より信頼性が重要視される主データや、映像や音楽等のストリーミングデータのように、誤りがあっても問題となる可能性が低く、信頼性より応答速度が重要視される主データがある。このような場合、上記特徴のメモリシステムにおいて、演算処理装置を、例えば、信頼性が重要視される主データについては誤り訂正処理を行い、応答速度が最重要視される主データについては誤り訂正処理を行わないように構成することにより、信頼性が重要視される主データの信頼性を損なうことなく、応答速度が最重要視される主データの遅延時間を短くすることができる。
【００２２】
更に、上記特徴のメモリシステムによれば、演算処理装置が、訂正処理が必要な主データに対してのみ訂正処理を行うように構成されているので、演算処理装置の負荷の増大を抑制することが可能になる。
【００２３】
上記特徴のメモリコントローラによれば、主データの出力処理と並行して、符号化データから主データの誤りを検出して訂正用データを生成する訂正予備処理を行うので、演算処理装置による読み出し要求から主データの出力までの遅延時間を短くすることが可能になる。
【００２４】
上記第２の特徴のメモリコントローラによれば、符号化データを構成する各ビットのビットデータのビット単位での入力毎に、入力されたビットデータを用いて逐次処理し、主データの誤り検出及び訂正用データの生成を行うので、誤り検出訂正処理の実行のために、主データや検査データを記憶するバッファを設ける必要がなくなる。
【００２５】
尚、従来技術のように、誤り検出訂正処理のために主データをバッファに記憶する構成の場合には、特に、複数の主データで構成されるページを一括して読み出すページ読み出し処理では、主データの容量が相当大きくなるため、相当容量のバッファが必要とされる。更に、誤り検出訂正処理のために主データをバッファに記憶する構成の場合には、相当容量のページを一度バッファに記憶してから演算処理装置に出力することから、バッファに記憶する書き込み時間分、読み出し要求から主データが出力されるまでの遅延時間が長くなる。
【００２６】
これに対し、上記第２の特徴のメモリコントローラは、上述したように、バッファを設けることなく誤り検出訂正処理を実行可能であることから、バッファを設けることによる回路面積の増大や製造コストの増大を抑制することが可能になる。また、上記第２の特徴のメモリコントローラは、主データの出力処理と誤り検出訂正処理の内の訂正予備処理を並行して行うので、ページ読み出しの場合でも、遅延時間が長くなるのを抑制できる。上記第２の特徴のメモリコントローラは、近年の主データ及びページ容量の増加に伴う遅延時間の増大を効果的に抑制できる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明に係るメモリシステム（以下、適宜「本発明システム」と称する）及びメモリコントローラの実施形態を図面に基づいて説明する。
【００２８】
〈第１実施形態〉
本発明システム及び本発明に係るメモリコントローラの第１実施形態について、図１〜図５を基に説明する。
【００２９】
本発明システム１は、本実施形態では、図１に示すように、複数ビットで構成された主データと主データの誤りを検出し訂正する誤り検出訂正処理の実行に用いる検査データとからなる符号化データを記憶するための不揮発性メモリ１０（記憶装置に相当）と、メモリコントローラ２０と、ホストコンピュータ３０の各機能を制御するＣＰＵ３１（演算処理装置に相当）及びＲＡＭ３２（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を備えて構成されるホストコンピュータ３０と、を備えて構成されている。本実施形態では、ホストコンピュータ３０のＣＰＵ３１は、メモリコントローラ２０を介して不揮発性メモリ１０に対する読み出し処理、書き込み処理及び消去処理を含むアクセス処理を実行可能に構成されている。
【００３０】
ここで、本実施形態では、誤り検出訂正処理として、ハミング符号を用いて１主データ当たり１ビットの誤り検出訂正を行う場合を想定して説明する。尚、誤り検出訂正処理としては、ＢＣＨ符号や拡張ハミング符号等、他の誤り検出訂正処理を利用しても良い。
【００３１】
不揮発性メモリ１０は、本実施形態では、ＮＡＮＤ型不揮発性メモリであり、メモリセルアレイ１１を備えて構成されている。ここで、図２は、不揮発性メモリ１０の記憶領域の概略構成例を示している。図２に示すように、本実施形態では、不揮発性メモリ１０は、主データを記憶するユーザ領域（主データ記憶領域に相当）と検査データを記憶可能な冗長領域とからなるページ記憶領域を複数備えて構成されている。
【００３２】
本実施形態のメモリセルアレイ１１には、ユーザ領域及び冗長領域が、夫々、（ｘ＋１）ページ分構成されている。また、ユーザ領域には２０４８バイトが、冗長領域には６４バイトが割り当てられている。
【００３３】
尚、本実施形態では、２０４８バイトのユーザ領域及び６４バイトの冗長領域が夫々（ｘ＋１）ページ分構成されている場合について説明したが、これに限るものではない。ページ数、即ち、ユーザ領域及び冗長領域の数、ユーザ領域及び冗長領域の１ページ当たりのデータ量は、不揮発性メモリ１０の用途等に応じて適切に設定する。また、冗長領域には、誤り検出訂正処理の実行に用いる検査データ以外の他のデータを記憶可能に構成しても良い。即ち、本実施形態の場合には、検査データのデータ量は、６４バイト以下であれば良く、利用する誤り訂正検出処理に応じて設定する。
【００３４】
メモリコントローラ２０は、本実施形態では、図１に示すように、不揮発性メモリ１０とアクセスするためのメモリインタフェース２１と、誤り検出訂正処理の内、符号化データを用いて、不揮発性メモリ１０から読み出した主データ（読み出しデータ）の誤りを検出すると共に、主データの誤りを訂正するための訂正用データを生成し、訂正用データをＣＰＵ３１に出力する訂正予備処理を実行する誤り検出・訂正用データ生成処理部２３と、ホストコンピュータ３０とデータ通信を行うためのホストインタフェース２２と、を備えて構成されている。
【００３５】
誤り検出・訂正用データ生成処理部２３は、本実施形態では、符号化データを構成する各ビットのビットデータのビット単位での入力毎に、入力されたビットデータを用いて逐次処理し、主データの誤り検出及び訂正用データの生成を行うように構成されている。
【００３６】
ここで、図３は、誤り検出・訂正用データ生成処理部２３の概略構成例を示している。図３では、説明のために、４ビットの主データと３ビットの検査データからなる巡回符号であるハミング符号（符号化データに相当）を用いる場合について説明する。図３に示す誤り検出・訂正用データ生成処理部２３は、３つのＤフリップフロップ回路Ｆ０〜Ｆ２と、入力データＤＩＮとＤフリップフロップ回路Ｆ２の出力データの排他的論理和を演算するＥＸＯＲ回路ＥＸ１と、Ｄフリップフロップ回路Ｆ２の出力データとＤフリップフロップ回路Ｆ０の出力データの排他的論理和を演算するＥＸＯＲ回路ＥＸ２と、を備えた割り算回路として構成されている。図３では、符号化データのＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から順に１ビットずつビットデータＤＩＮが入力される。
【００３７】
ホストコンピュータ３０は、本実施形態では、ＣＰＵ３１が、ホストコンピュータ３０の所定の機能を実現するプログラムの実行において、不揮発性メモリ１０に記憶された主データを読み出すために、メモリコントローラ２０に対し、主データの読み出し処理の実行を指示する読み出し要求を実行可能に構成されている。
【００３８】
ＣＰＵ３１は、本実施形態では、所定の誤り訂正条件に基づき、誤りが検出された主データについて、誤り検出訂正処理の内、主データの誤りを訂正する訂正処理を実行するか否かを判定し、訂正処理を実行すると判定した主データに対し、対応する訂正用データを用いて訂正処理を実行する。
【００３９】
本実施形態では、ＣＰＵ３１は、プログラム等、高い信頼性が必要とされるデータについては訂正処理を実行し、音楽や映像等のストリーミングデータ等、遅延時間の短縮が重要視されるデータについては訂正処理を実行しないように構成されている。
【００４０】
以下、本発明システム１の処理動作について、図４〜図７を基に説明する。ここで、図４は、本発明システム１の処理動作を示している。
【００４１】
尚、本実施形態では、本発明システム１が、ページ単位でデータを読み出すページ読み出しを行う場合を想定して説明するが、主データ単位でデータを読み出すデータ読み出し処理に適用しても良い。
【００４２】
メモリコントローラ２０は、ホストインタフェース２２がＣＰＵ３１から所定のページ（主データ）の読み出し要求を受け付けると（ステップ＃１０１）、メモリインタフェース２１が、不揮発性メモリ１０から読み出し対象のページ（符号化データ）を、主データ、冗長テータの順に直接読み出す読み出し処理を実行する（ステップ＃１０２）。メモリコントローラ２０は、メモリインタフェース２１により、読み出した主データをホストインタフェース２２と誤り検出・訂正用データ生成処理部２３に出力し、検査データを誤り検出・訂正用データ生成処理部２３に出力する。
【００４３】
メモリコントローラ２０は、メモリインタフェース２１が読み出した主データを、順次、ホストインタフェース２２を介してＣＰＵ３１に出力する出力処理を実行する（ステップ＃１０３）。
【００４４】
更に、メモリコントローラ２０は、メモリインタフェース２１により符号化データを順次読み出しながら、ホストインタフェース２２による出力処理と並行して、誤り検出・訂正用データ生成処理部２３により誤り検出訂正処理の内の訂正予備処理を実行する（ステップ＃１０４）。訂正予備処理では、誤り検出・訂正用データ生成処理部２３が、符号化データを用いて主データの誤りを検出すると共に、訂正用データを生成し、生成した訂正用データを、ホストインタフェース２２を介してＣＰＵ３１に出力する。
【００４５】
ここで、図５及び図６は、図３に示す誤り検出・訂正用データ生成処理部２３の訂正予備処理における動作を示している。
【００４６】
より詳細には、図５は、誤り検出・訂正用データ生成処理部２３における入力データＤＩＮとＤフリップフロップ回路Ｆ０〜Ｆ２のデータＤ０〜Ｄ２と出力データＤＯＵＴの値を夫々示している。図５では、符号化データが、主データ“００１０”と検査データ“１１０”で構成されている場合を想定している。図５の出力データＤＯＵＴは“０００”であり、これは、主データに誤りがないことを示している。
【００４７】
図６は、図５における主データの１ビット目に誤りがある場合の入力データＤＩＮとＤフリップフロップ回路Ｆ０〜Ｆ２のデータＤ０〜Ｄ２と出力データＤＯＵＴの値を夫々示している。図６では、符号化データが、読み出しデータ（主データ）“１０１０”と検査データ“１１０”で構成されている場合を想定している。図６の出力データＤＯＵＴは“１０１”であり、これは、符号化データに誤りがあることを示している。メモリコントローラ２０は、誤り検出・訂正用データ生成処理部２３が生成した出力データＤＯＵＴ“１０１”を訂正用データとして、ホストインタフェース２２を介してＣＰＵ３１に出力する。
【００４８】
ＣＰＵ３１は、メモリコントローラ２０から読み出しデータを受け付けると、受け付けた読み出しデータをＲＡＭ３２に記憶すると共に、読み出しデータに対応する訂正用データを取得する。読み出しデータが、訂正用データにより誤りが検出され、且つ、読み出しデータがプログラム等の高い信頼性の必要とされるデータ等、訂正処理が必要なデータであると判定された場合（ステップ＃１０５でＹＥＳ分岐）、訂正用データを用いて訂正処理を行う（ステップ＃１０６）。
【００４９】
ＣＰＵ３１は、訂正用データの値と誤りビットの位置の関係を示す誤り訂正テーブルを用い、メモリコントローラ２０から出力された訂正用データから誤りビットの位置を特定する。具体的には、例えば、図６では、訂正用データ“１０１”であり、図示しないが、当該訂正用データの値は１ビット目が誤りビットであることを示している。ＣＰＵ３１は、読み出しデータ“１０１０”の１ビット目を反転させて訂正し、誤りのない主データ“００１０”を得ることができる。
【００５０】
ＣＰＵ３１は、不揮発性メモリ１０から読み出した読み出しデータが、訂正用データにより誤りが検出されず（訂正用データが“０００”の場合）、或いは、読み出しデータが遅延時間の短縮が重要視されるデータ等、訂正処理が必要でないデータであると判定した場合（ステップ＃１０５でＮＯ分岐）、訂正処理は行わずに読み出し処理を終了する。
【００５１】
本発明システム１と従来技術に係るメモリシステムの遅延時間について、図７を基に説明する。
【００５２】
ここで、図７（ａ）は、本発明システム１における遅延時間を、図７（ｂ）は、従来技術に係るメモリシステムにおける遅延時間を夫々示している。尚、図７では、説明のために、ページ単位で読み出し処理を行うページ読み出し処理の場合について示している。また、図７では、各ページが、主データＤ０〜Ｄｎと検査データＤＲ０〜ＤＲｍで構成されている場合を想定している。
【００５３】
先ず、本発明システム１における遅延時間について説明する。
【００５４】
図７（ａ）に示すように、本発明システム１では、先ず、時間ｔ０において、ＣＰＵ３１が、メモリコントローラ２０に対し主データの読み出し要求ＣＲを行う。メモリコントローラ２０は、ＣＰＵ３１から主データの読み出し要求ＣＲを受け付けると、時間ｔ１において、不揮発性メモリ１０に対し符号化データの読み出し処理ＣＲ’を実行する。不揮発性メモリ１０は、メモリコントローラ２０から符号化データの読み出し処理ＣＲ’を受け付けると、時間ｔ３から、ページを構成する読み出しデータＤ０〜Ｄｎと検査データＤＲ０〜ＤＲｍを順次出力する。
【００５５】
メモリコントローラ２０は、不揮発性メモリ１０から読み出しデータＤｉ（ｉ＝０〜ｎ）を受け付けると、次のサイクルでＣＰＵ３１に対し読み出しデータＤｉを出力する。メモリコントローラ２０は、符号化データを全て受け付けると、即ち、検査データＤＲｍを受け付けた後、時間ｔ６において、訂正予備処理を実行し、時間ｔ７において、訂正用データＤＥを出力する。
【００５６】
図７（ａ）では、最初の読み出しデータＤ０は、時間ｔ５で出力される。従って、遅延時間（レイテンシ）は、読み出しデータＤ０〜Ｄｎ及び検査データＤＲ０〜ＤＲｍのデータ容量に拘わらず、４サイクルとなる。
【００５７】
次に、従来技術に係るメモリシステムの遅延時間について説明する。
【００５８】
図７（ｂ）に示すように、従来技術に係るメモリシステムでは、先ず、本発明システム１と同様に、時間ｔ０において、ＣＰＵ３１が、メモリコントローラに対し主データの読み出し要求ＣＲを行う。メモリコントローラは、ＣＰＵ３１から主データの読み出し要求ＣＲを受け付けると、時間ｔ１において、不揮発性メモリ１０に対し符号化データの読み出し処理ＣＲ’を実行する。不揮発性メモリ１０は、メモリコントローラから符号化データの読み出し処理ＣＲ’を受け付けると、時間ｔ３から、ページを構成する読み出しデータＤ０〜Ｄｎと検査データＤＲ０〜ＤＲｍを順次出力する。
【００５９】
メモリコントローラは、不揮発性メモリ１０から符号化データを全て受け付けた後、即ち、検査データＤＲｍを受け付けた後、時間ｔ６において、誤り検出訂正処理を実行し、時間ｔ７から、ＣＰＵ３１に対し読み出しデータＤ０〜Ｄｎを順次出力する。
【００６０】
図７（ｂ）では、最初の読み出しデータＤ０は、時間ｔ７で出力される。従って、遅延時間（レイテンシ）は、読み出しデータＤ０がメモリコントローラに出力されるまでの３サイクル、読み出しデータＤ０〜Ｄｎをメモリコントローラに出力するために必要な（ｎ＋１）サイクル、検査データＤＲ０〜ＤＲｍをメモリコントローラに出力するために必要な（ｍ＋１）サイクル、誤り検出訂正処理に係るサイクルの和となる。
【００６１】
図７に示すように、本発明システム１は、従来技術に係るメモリシステムに比べ、時間ｔ５〜時間ｔ７までの時間、遅延時間を短縮できることになる。
【００６２】
〈別実施形態〉
上記第１実施形態では、巡回符号を用いた割り算回路によって、訂正予備処理を出力処理と並行して行う場合について説明したが、これに限るものではない。検査データのビット毎にパリティチェックを行うように構成しても良い。
【図面の簡単な説明】
【００６３】
【図１】本発明に係るメモリシステム及びメモリコントローラの概略部分構成例を示す概略部分ブロック図
【図２】本発明に係るメモリシステムに搭載された記憶装置の記憶領域の構成例を示す概略ブロック図
【図３】本発明に係るメモリシステム及びメモリコントローラを構成する誤り検出・訂正用データ生成処理部の概略構成例を示す概略回路図
【図４】本発明に係るメモリシステム及びメモリコントローラの処理動作を示すフローチャート
【図５】本発明に係るメモリシステム及びメモリコントローラにおける訂正予備処理の処理動作を説明する概略ブロック図
【図６】本発明に係るメモリシステム及びメモリコントローラにおける訂正予備処理の処理動作を説明する概略ブロック図
【図７】本発明に係るメモリシステムと従来技術に係るメモリシステムの夫々における遅延時間を説明するタイミングチャート
【図８】従来技術に係るメモリシステムの概略部分構成例を示す概略部分ブロック図
【符号の説明】
【００６４】
１        本発明に係るメモリシステム
１０      不揮発性メモリ（記憶装置）
１１      メモリセルアレイ
２０      本発明に係るメモリコントローラ
２１      メモリインタフェース
２２      ホストインタフェース
２３      誤り検出・訂正用データ生成処理部
３０      ホストコンピュータ
３１      ＣＰＵ（演算処理装置）
３２      ＲＡＭ
１００    従来技術に係るメモリシステム
１１０    不揮発性メモリ
１１１    メモリセルアレイ
１２０    従来技術に係るメモリコントローラ
１２１    バッファ
１２２    ＥＣＣレジスタ
１２３    管理データレジスタ
１２４    誤り訂正符号・復号器
１２５    マスク回路
１３０    ホストコンピュータ
Ｆ１      Ｄフリップフロップ回路
Ｆ２      Ｄフリップフロップ回路
Ｆ３      Ｄフリップフロップ回路
ＥＸ１    排他的論理和回路
ＥＸ２    排他的論理和回路
【図１】
2010140132.tif 000003
【図２】
2010140132.tif 000004
【図３】
2010140132.tif 000005
【図４】
2010140132.tif 000006
【図５】
2010140132.tif 000007
【図６】
2010140132.tif 000008
【図７】
2010140132.tif 000009
【図８】
2010140132.tif 000010