(57)【要約】      （修正有）【課題】ＥＣＣを付加したデータの転送時間を短縮し、高速かつ信頼性の高いデータ転送を実現する。【解決手段】メモリコントローラ１０１は、データを格納するデータ部と、前記データのＥＣＣを格納する拡張部を含む不揮発性メモリ１０７から、前記データ部のデータを読込み、読込んだデータを提供する読込み手段１０４と、前記読込み手段のデータの読み込みと並行して、前記読込まれたデータからＥＣＣを計算し、該計算結果を保持する計算手段１０５と、前記不揮発性メモリ１０７の前記拡張部に格納されたＥＣＣを読込み、読込んだＥＣＣと前記計算手段１０５の計算結果とを比較する比較手段と、前記比較手段の比較に不一致があった場合、ＥＣＣエラーの割り込み信号を出力する手段を具備する。【選択図】図１
2008090433.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するデータ部と、前記データのＥＣＣを格納する拡張部とを含む不揮発性メモリから、前記データ部のデータを読込み、読込んだデータを提供する読込み手段と、
前記読込み手段のデータの読み込みと並行して、前記読込まれたデータからＥＣＣを計算し、該計算結果を保持する計算手段と、
前記不揮発性メモリの前記拡張部に格納されたＥＣＣを読込み、読込んだＥＣＣと前記計算手段の計算結果とを比較する比較手段と、
前記比較手段の比較に不一致があった場合、ＥＣＣエラーの割り込み信号を出力する手段と、
を具備することを特徴とするメモリコントローラ。
【請求項２】
前記読込み手段は、前記読込んだデータを一時的に格納するＦＩＦＯメモリを具備することを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
データを格納するデータ部と、前記データのＥＣＣを格納する拡張部を含む不揮発性メモリと、
前記不揮発性メモリを制御するメモリコントローラと、
揮発性の汎用メモリと、
前記汎用メモリを制御する汎用メモリコントローラと、
前記メモリコントローラと前記汎用メモリコントローラ間のデータ転送を制御するＤＭＡコントローラと、
前記ＤＭＡコントローラを制御するプロセッサとを具備し、
前記メモリコントローラは、
前記不揮発性メモリから前記データ部のデータを読込み、読込んだデータを提供する読込み手段と、
前記読込み手段のデータの読み込みと並行して、前記読込まれたデータからＥＣＣを計算し、該計算結果を保持する計算手段と、
前記不揮発性メモリの前記拡張部に格納されたＥＣＣを読込み、読込んだＥＣＣと前記計算手段の計算結果とを比較する比較手段と、
前記比較手段の比較に不一致があった場合、ＥＣＣエラーの割り込み信号を出力する手段と、
を具備することを特徴とするメモリシステム。
【請求項４】
前記読込み手段は、前記読込んだデータを一時的に格納するＦＩＦＯメモリを具備することを特徴とする請求項３記載のメモリシステム。
【請求項５】
データを格納するデータ部と、前記データのＥＣＣを格納する拡張部を含む不揮発性メモリから、前記データ部のデータを読込み、読込んだデータを提供し、
前記提供されるデータを揮発性の汎用メモリに転送し、
前記データ部のデータ読み込みと並行して、前記読込まれたデータからＥＣＣを計算し該計算結果を保持し、
前記不揮発性メモリの前記拡張部に格納されたＥＣＣを読込み、読込んだＥＣＣと前記計算結果とを比較し、
前記比較において不一致があった場合、ＥＣＣエラーの割り込み信号を出力することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＥＣＣを付加したデータの通信技術に関し、特に半導体メモリ間のデータ転送技術に関する。
【背景技術】
【０００２】
近年、ＮＡＮＤフラッシュメモリに代表される、安価で大容量の不揮発性のメモリが普及し始めている。不揮発性メモリ上にあるデータのうち必要なデータを、より高速アクセスが可能な揮発性の汎用メモリに展開して使用するという手法が一般的に広く用いられている。
【０００３】
しかし、不揮発性メモリは大容量化に伴って、通信エラーが生じる可能性が高くなる。そのため、データに誤り訂正符合（ＥＣＣ：Error Correcting Code）を付加して不揮発性メモリに格納し、その後データを揮発性メモリに転送した際にエラーが発生したかチェックすることが一般に行われている（特許文献１）。
【特許文献１】特開２００４−１２６９１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記したようなメモリ間データ転送の際、あるいはＥＣＣを付加したデータの一般的な通信の際に、ＥＣＣに基づくデータエラーの確認に時間を要すると、その分データの総合的な転送時間が長くなってしまう。
【０００５】
本発明は、ＥＣＣを付加したデータの転送時間を短縮し、高速かつ信頼性の高いデータ転送を実現することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係るメモリコントローラは、データを格納するデータ部と、前記データのＥＣＣを格納する拡張部とを含む不揮発性メモリから、前記データ部のデータを読込み、読込んだデータを提供する読込み手段と、前記読込み手段のデータの読み込みと並行して、前記読込まれたデータからＥＣＣを計算し、該計算結果を保持する計算手段と、前記不揮発性メモリの前記拡張部に格納されたＥＣＣを読込み、読込んだＥＣＣと前記計算手段の計算結果とを比較する比較手段と、前記比較手段の比較に不一致があった場合、ＥＣＣエラーの割り込み信号を出力する手段と具備する。
【発明の効果】
【０００７】
ＥＣＣを付加したデータの転送時間を短縮し、高速かつ信頼性の高いデータ転送を実現することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施形態を説明する。
【０００９】
図１は本発明の一実施形態に係るメモリシステムの基本的な構成を示すブロック図である。
【００１０】
半導体集積回路１００は１チップで構成され、不揮発性メモリコントローラ１０１、プロセッサ１０２、ＤＭＡコントローラ１０３、汎用メモリコントローラ１０６を含む。不揮発性メモリコントローラ１０１、プロセッサ１０２、ＤＭＡコントローラ１０３、汎用メモリコントローラ１０６は、データバス９を介して互いに接続されている。
【００１１】
不揮発性メモリコントローラ１０１は、データバッファ１０４及びＥＣＣ計算回路１０５を含み、データバッファ１０４には半導体集積回路１００の外部に設けられたＮＡＮＤフラッシュメモリ等の不揮発性メモリ１０７が接続されている。汎用メモリコントローラ１０６には、半導体集積回路１００の外部に設けられたＤＲＡＭ等の揮発性汎用メモリ１０８が接続されている。
【００１２】
図２（ａ）は、不揮発性メモリ１０７の構成を示す図である。不揮発性メモリ１０７は複数のページの積み重ねで構成されており、１つのページ１０７ａはデータを格納するデータ部１０７ｂと、ＥＣＣが格納されている拡張部１０７ｃとで構成されている。１つのページ１０７ａは例えば５２８バイトのデータ容量を有し、その内５１２バイトがデータ部１０７ｂ、１６バイトが拡張部１０７ｃに割り振られている。
【００１３】
ＥＣＣは一般に、通信回路を経由してデータをやり取りする場合に、通信回路の雑音や信号の減衰が原因で発生するデータエラーを発見し訂正するために、目的のデータに追加される符号または符号化手法をいう。ＥＣＣは、一般的なパリティエラー等の手法を適用して、図２（ｂ）のようにデータの誤りを訂正することが可能である。
【００１４】
次に本発明に係るメモリシステムの動作の一実施形態を図１及び図２の構成ならびに図３に示すフローチャートを参照して説明する。
【００１５】
不揮発性メモリ１０７に格納されたデータを汎用メモリ１０８にコピーするために、プロセッサ１０２はＤＭＡコントローラ１０３に、不揮発性メモリコントローラ１０１から汎用メモリコントローラ１０６へのデータ転送を指示する。すなわちプロセッサ１０２は、データ転送方向、不揮発性メモリ１０７と汎用メモリ１０８の転送開始アドレス、データサイズをＤＭＡコントローラ１０３に設定する（Ｓ１０１）。ＤＭＡコントローラ１０３は、この指示に応じて不揮発性メモリコントローラ１０１に、不揮発性メモリ１０７から、指示されたデータを読み込むよう指令を出す。
【００１６】
不揮発性メモリコントローラ１０１は、この指令に応じて不揮発性メモリ１０７からデータの読み込みを順次実行する（Ｓ１０２）。不揮発性メモリコントローラ１０１は、読み込んだデータを内部のデータバッファ１０４に順次格納する。データバッファ１０４へのデータ格納と並行して、誤り訂正符号計算回路１０５は、データバッファ１０４に格納されたデータを入力してＥＣＣを計算していく（Ｓ１０３）。また誤り訂正符号計算回路１０５は、計算結果を計算結果格納部１０５ａに格納する。不揮発性メモリコントローラ１０１は、データバッファ１０４に格納されたデータを順次、データバス１０９に出力（転送）する。このように本実施形態では、不揮発性メモリコントローラ１０１においてＥＣＣの計算とデータ転送が並行して行われる。転送の所要時間は、ＥＣＣを計算しない場合と同一である。
【００１７】
尚、不揮発性メモリから読込んだデータを一時的に格納するデータバッファとしては、ＦＩＦＯメモリを使用することができる。その場合、ＦＩＦＯメモリのサイズは、システムのデータ転送の単位に応じて決定される。例えば、システムのデータ転送単位が８ビットの場合、ＦＩＦＯメモリのサイズは８ビット×２であり、システムのデータ転送単位が１６ビットの場合、１６ビット×２である。このようにＦＩＦＯメモリを使用することにより、不揮発性メモリコントローラ１０１に必要となるデータバッファ容量を削減できる。
【００１８】
図３の説明に戻り、ＤＭＡコントローラ１０３は、出力されたデータを汎用メモリコントローラ１０６に転送し、汎用メモリコントローラ１０６はそのデータを汎用メモリ１０８に書き込む（Ｓ１０４）。不揮発性メモリコントローラ１０１は、内部にカウンタを有しており、該カウンタを用いてデータ転送の回数を計数し、１ページ分のデータ部の転送が終了したか判断する（Ｓ１０５）。１ページ分のデータ部の転送が終了するまで、ステップＳ１０２〜Ｓ１０５の処理は繰り返される。
【００１９】
１ページ分のデータ部の転送が終了すると（Ｓ１０５のＹｅｓ）、不揮発性メモリコントローラ１０１は、ＥＣＣ計算回路１０５を停止させ、データ部に引き続き拡張部１０７ｃの読み込みを開始し、読み込んだ拡張部データすなわちＥＣＣをデータバッファ１０４に格納する（Ｓ１０６）。不揮発性メモリコントローラ１０１は、データバッファ内に読み込んだ拡張部データ（ＥＣＣ）と、計算結果格納部１０５ａに格納されているＥＣＣ計算回路１０５の計算結果とを比較する（Ｓ１０７）。
【００２０】
データバッファ内の拡張部データと、計算結果格納部１０５ａに格納されている計算結果が全て一致した場合（Ｓ１０７のＹｅｓ）、不揮発性メモリコントローラ１０１は、データバッファ１０４内の拡張部データを破棄する（Ｓ１０８）。さらに次のページのデータも読む場合は（Ｓ１０９のＮｏ）、不揮発性メモリコントローラ１０１は、不揮発性メモリ１０７のデータ読み込み領域を次のページ領域に移動（変更）し、引き続き次のページのデータ読み込みを開始する（Ｓ１１０、Ｓ１１１）。
【００２１】
データバッファ１０４内の拡張部データと、誤り訂正符号計算回路で計算した結果が不一致の場合は（Ｓ１０７のＮｏ）、不揮発性メモリコントローラ１０１はプロセッサ１０２にエラー割り込みを通知する（Ｓ１１２）。
【００２２】
プロセッサ１０２はエラー割り込みを受け取ると、ＤＭＡコントローラ１０３の動作をディセーブルとし（Ｓ１１３）、不揮発性メモリコントローラ１０１のデータバッファ １０４内にある拡張部データを読み込み、当該ページのデータが修正可能な誤りであるかを判断する（Ｓ１１４）。
【００２３】
修正可能な場合（Ｓ１１４のＹｅｓ）、プロセッサ１０２は汎用メモリコントローラ１０６を介して、汎用メモリ１０８内の該当するデータを修正する（Ｓ１１５）。必要な読み込みページ数分のデータを読込んだか判断し（Ｓ１０９）、読込んでいない場合は再度ＤＭＡコントローラ１０３を動作（イネーブル）させ、次のページから読み込みを再開させる（Ｓ１１０、Ｓ１１６、Ｓ１１１）。
【００２４】
修正不可能な場合も（Ｓ１１４のＮｏ）、プロセッサ１０２は再度ＤＭＡコントローラ１０３を動作させ、同一のページを再度読み込むようにＤＭＡコントローラの設定を変更して、読み込みを再開させる（Ｓ１１７、Ｓ１０２）。
【００２５】
以上説明したように本実施形態によれば、不揮発性メモリから汎用メモリへのデータ転送において、ＥＣＣの計算処理をデータ転送に並行して（同時に）行うため、従来に比べＥＣＣ計算処理の所要時間だけ時間が短縮できる。すなわち、ＥＣＣ計算処理を含めた総合的な転送処理の所要時間を短縮できる。また、ステップＳ１０７の説明のように、ＥＣＣエラーの確認はプロセッサ１０２ではなく不揮発性メモリコントローラ１０１が行うので、更に総合的な転送処理時間を短縮できる。
【００２６】
また、不揮発性メモリから汎用メモリへのデータ転送にＤＭＡ転送を導入することで、転送処理の高速化が可能となる。更に、ＥＣＣ通信エラーが無ければ、プロセッサ１０２は最初にＤＭＡコントローラ１０３の設定を行えば、あとはデータ転送終了まで転送処理を制御する必要がないため、プロセッサ１０２はデータ転送中に他の動作を実行することも出来る。また更に、通信エラーが生じた場合でも、ＥＣＣを用いてデータを修正できる場合、ステップＳ１１４、Ｓ１１５、Ｓ１０９、Ｓ１１０、Ｓ１１１のように、データ修正の間、プロセッサ１０２はＤＭＡコントローラ１０３を一時的に停止させるだけでよく、再度設定する必要がない。
【００２７】
以上、本発明を半導体メモリ間のデータ転送に適用した例を説明したが、本発明はＥＣＣを付加したデータの一般的な通信にも適用できることは明らかである。更に、上記説明はこの発明の実施の形態であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができるものである。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態に係るメモリシステムの基本的な構成を示すブロック図である。
【図２】不揮発性メモリ１０７の構成及び機能を示す図である。
【図３】本発明に係るメモリシステムの動作の一実施形態を示すフローチャートである。
【符号の説明】
【００２９】
１００…半導体集積回路、１０１…不揮発性メモリコントローラ、１０２…プロセッサ、１０３…ＤＭＡコントローラ、１０４…データバッファ、１０５…誤り訂正符号計算回路、１０６…汎用メモリコントローラ、１０７…不揮発性メモリ、１０８…汎用メモリ、１０９…データバス、
【図１】
2008090433.tif 000003
【図２】
2008090433.tif 000004
【図３】
2008090433.tif 000005