(57)【要約】【課題】メモリに格納されたデータの変更に要する時間の増大を抑制できるメモリコントローラを提供する。【解決手段】メモリ２から読み出されるデータＤＡに対する誤り訂正符号を算出する過程で、データＤＡの先頭バイトから指定バイトＢＡまでを用いてその誤り訂正符号ＳＡの中間算出値ＤＭを算出する第１算出回路１１と、中間算出値ＤＭを格納するデータ格納回路１２と、データＤＡのうちの指定バイトの後続部のデータを変更する変更回路１６と、中間算出値ＤＭ及び変更されたデータを含む後続部のデータを用いてもう１つの誤り訂正符号ＳＢを算出する第２算出回路１３と、変更されたデータ及び第２算出回路１３で算出された誤り訂正符号ＳＢをメモリ２に転送するデータ転送回路１７とを備える。【選択図】図１
2007305105.tif 000002
【特許請求の範囲】
【請求項１】
メモリに接続され、該メモリに格納されたデータとその第１の誤り訂正符号を読み出し、読み出した前記データを変更するメモリコントローラであって、
前記データに対する第２の誤り訂正符号を算出する過程で、前記データの先頭バイトから指定バイトまでを用いて前記第２の誤り訂正符号の中間算出値を算出する第１算出回路と、
前記中間算出値を格納するデータ格納回路と、
前記データのうちの前記指定バイトの後続部のデータを変更する変更回路と、
前記中間算出値と前記変更されたデータを含む前記後続部のデータとを用いて第３の誤り訂正符号を算出する第２算出回路と、
前記変更されたデータ及び前記第３の誤り訂正符号を前記メモリに転送するデータ転送回路と
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記第１の誤り訂正符号を用いて、前記データの誤り訂正処理を行う訂正回路を更に備えることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記メモリは、メモリセルとページバッファを備える一方、前記メモリセルに含まれるブロック間でデータがコピー可能とされ、前記ページバッファを用いてページ単位でデータコピーが実行されるページコピー機能を備え、
前記メモリコントローラは、前記メモリセルの第１のブロックの所定のページから読み出されたデータの一部を変更する場合は、一旦前記ページバッファに格納されたデータを該メモリコントローラにページ単位で読み出して変更し、変更後のデータを前記メモリセルの第２のブロックの所定のページに書き込む機能を備えたことを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記メモリから読み出されたデータは、実データとその実データに関する管理データとで構成され、
前記変更されるデータが、前記管理データであることを特徴とする請求項１乃至３のいずれか１つに記載のメモリコントローラ。
【請求項５】
前記管理データが、データコピーの回数であることを特徴とする請求項４に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに係り、特に誤り訂正機能を有するメモリコントローラに関する。
【背景技術】
【０００２】
メモリカード等への利用により、ＮＡＮＤ型フラッシュメモリの需要が年々高まっている。用途が拡大するにつれ、より大容量かつ高速に動作するメモリカードが求められている。その要求に応えるため、より微細なプロセスを使用したＮＡＮＤ型フラッシュメモリが開発されている。しかし、プロセスの微細化に伴い、“ブロック”と呼ばれるＮＡＮＤ型フラッシュメモリの消去単位の容量（ブロックサイズ）も増加している。
【０００３】
同一物理アドレスでのデータの上書きができないＮＡＮＤ型フラッシュメモリにおいては、一部のメモリ領域を書き換えるために、そのメモリ領域を含むブロック全体のデータコピーが必要である。そのため、ブロックサイズの増大は、データコピーに要する時間を増大させ、結果的にメモリの書き込み速度の低下につながる。
【０００４】
上記問題に対応するために、近年のＮＡＮＤ型フラッシュメモリはページコピー機能を備えている（例えば、特許文献１参照）。ページコピー機能は、コピー元ページアドレスとコピー先ページアドレスを指定し、ＮＡＮＤ型フラッシュメモリが内蔵するバッファ（ページバッファ）を介して、ブロック間のデータコピーをページ単位で実行する機能である。ここで、ページは、ブロックより小さいデータの単位であり、ページ単位のデータをページデータという。ページコピー機能を使うことにより、ＮＡＮＤ型フラッシュメモリの内部でブロック間のデータコピーが実行される。そのため、コピー元のブロックからデータをホスト機器或いはメモリコントローラに読み出し、読み出したデータをコピー先のブロックに書き込む必要がない。つまり、ページコピー機能を使用することによって、ＮＡＮＤ型フラッシュメモリのブロック間でのデータコピーの高速化を達成できる。
【０００５】
一般に、ＮＡＮＤ型フラッシュメモリを使用する場合は、メモリセルの劣化等によるデータ化けを考慮して誤り訂正が行われる。例えば、ＮＡＮＤ型フラッシュメモリから読み出されたデータに誤りがないかを、メモリコントローラがリードソロモン符号等を用いた誤り検査機能により検査する。ホスト機器によってデータが読み出された時、データに訂正可能な誤りが存在する場合はデータの誤り訂正が行われ、訂正されたデータがメモリコントローラからホスト機器へ出力される。又、ブロック間でデータコピーする場合は、ＮＡＮＤ型フラッシュメモリからメモリコントローラにデータを読み出し、読み出されたデータに訂正可能な誤りがある場合は誤り訂正が行われ、訂正されたデータがメモリコントローラからＮＡＮＤ型フラッシュメモリに転送される。データの誤り訂正が行われなかった場合は、ページバッファに格納されたデータがＮＡＮＤ型フラッシュメモリに書き込まれる。つまり、ＮＡＮＤ型フラッシュメモリから読み出されたデータに誤りがない場合に、ページコピー機能によって、メモリコントローラからＮＡＮＤ型フラッシュメモリヘのデータ転送が行われずブロック間のデータコピーがページバッファを介して実行される結果、データ転送時間が省略される。
【０００６】
ただし、ＮＡＮＤ型フラッシュメモリから読み出されたデータに誤りがない場合も、各ページに含まれる、実データを記憶するデータ部以外の冗長部に格納された管理データを変更する場合がある。
【０００７】
ＮＡＮＤ型フラッシュメモリは、データ部及び冗長部に格納されたページデータの一部が変更された場合に、ページバッファの変更された部分だけを書き換える機能を備える。そのため、変更されたデータ、例えば管理データのみを書き換える場合に、ＮＡＮＤ型フラッシュメモリのデータ書き換えに要する時間の短縮が可能である。しかし、冗長部にデータの誤り訂正符号を格納するメモリシステムでは、ページデータの一部を変更する場合にも、メモリコントローラにページデータを読み出して変更し、変更したページデータに対してメモリコントローラが誤り訂正符号をデータの先頭バイトから順次算出する必要がある。一般に、データの誤り訂正符号の算出時間とメモリコントローラがデータをＮＡＮＤ型フラッシュメモリに書き込む時間とは同等程度である。つまり、データの一部を変更した後のデータの誤り訂正符号を算出する場合にも、データ部及び冗長部に格納された全データを書き換える場合と同等の時間が必要となる。
【特許文献１】特開２００５−７８３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、メモリに格納されたデータの変更に要する時間の増大を抑制できるメモリコントローラを提供する。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、メモリに接続され、該メモリに格納されたデータとその第１の誤り訂正符号を読み出し、読み出した前記データを変更するメモリコントローラであって、前記データに対する第２の誤り訂正符号を算出する過程で、前記データの先頭バイトから指定バイトまでを用いて前記第２の誤り訂正符号の中間算出値を算出する第１算出回路と、前記中間算出値を格納するデータ格納回路と、前記データのうちの前記指定バイトの後続部のデータを変更する変更回路と、前記中間算出値と前記変更されたデータを含む前記後続部のデータとを用いて第３の誤り訂正符号を算出する第２算出回路と、前記変更されたデータ及び前記第３の誤り訂正符号を前記メモリに転送するデータ転送回路とを備えるメモリコントローラが提供される。
【発明の効果】
【００１０】
本発明によれば、メモリに格納されたデータの変更に要する時間の増大を抑制できるメモリコントローラを提供できる。
【発明を実施するための最良の形態】
【００１１】
図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。  
図１は本発明の一実施の形態のメモリコントローラの構成を示している。図２はメモリのページ構成を示している。
【００１２】
本発明の実施の形態に係るメモリコントローラは、メモリ２から読み出されたデータＤＡを変更する回路系（１５，１６）と、メモリ２から読み出されたデータＤＡに基づいて変更後のデータＤＢの誤り訂正符号ＳＢを算出する回路系（１１〜１４）と、データＤＢの変更部分とデータＤＢの誤り訂正符号ＳＢとをメモリ２に転送する回路系（１７）と、を備えている。回路系（１７）での転送動作により、データＤＢの変更部分とデータＤＢの誤り訂正符号ＳＢのみを転送するので、データＤＡを変更した結果の全てのデータＤＢとその誤り訂正符号ＳＢをメモリ２に転送してメモリ２内のデータＤＡとその誤り訂正符号を書き換えるのに比べて、メモリ２へのデータ書き換えに要する時間を短縮できる。
【００１３】
以上の構成のほか、本実施形態では、メモリ２に記憶した、データ（例えばページデータ）ＤＡの一部を変更する場合に、メモリコントローラ１がその変更後のページデータに対して付加する誤り訂正符号を算出する際、誤り訂正符号を効率的に算出できる構成を実現している。なお、以下の説明で、誤り訂正符号とは、実データやそれに関する管理データを含まない誤り訂正用のパリティ符号のみを意味している。
【００１４】
本発明の実施の形態に係るメモリコントローラ１は、図１に示すように、メモリ２に接続され、そのメモリ２に格納された、データＤＡとその第１の誤り訂正符号を読み出し、読み出されたデータＤＡを変更するメモリコントローラである。メモリコントローラ１は、データＤＡに対する第２の誤り訂正符号ＳＡを算出する過程で、データＤＡの先頭バイトから指定バイトＢＡまでを用いて第２の誤り訂正符号ＳＡの中間算出値ＤＭを算出する第１算出回路１１と、データＤＡのうちの指定バイトＢＡの後続部のデータを変更する変更回路１６と、中間算出値ＤＭと変更されたデータを含む後続部のデータとを用いて第３の誤り訂正符号ＳＢを算出する第２算出回路１３と、変更されたデータ及び第３の誤り訂正符号ＳＢをメモリ２に転送するデータ転送回路１７とを備える。データＤＡの「後続部」とは、指定バイトＢＡより時間的に後にメモリ２から読み出されるデータＤＡの部分である。
【００１５】
図２はメモリ２の指定バイトを説明するためのページ構成を示している。  
指定バイトＢＡとして、データＤＡの変更される部分よりも前に、メモリ２から読み出されるバイトが設定される。つまり、図２に示すように、データＤＡの変更部分が、指定バイトＢＡより時間的に後にメモリ２から読み出される後続部に含まれるように、指定バイトＢＡは設定される。指定バイトＢＡの情報は、図１に示した指定回路１４に格納される。指定回路１４は、第１算出回路１１及び第２算出回路１３に指定バイトＢＡの情報を転送する。尚、指定バイトＢＡの情報をメモリコントローラ１の外部の図示しない制御部から指定回路１４に入力するように、メモリコントローラ１を設計することが可能である。
【００１６】
第１算出回路１１及び第２算出回路１３は、データを先頭バイトから順に用いて誤り訂正符号を算出する。具体的には、第１算出回路１１及び第２算出回路１３は、データの任意のバイトにおける中間算出値を、そのバイトの直前のバイトにおける中間算出値を初期値として、そのバイトの値及び初期値を用いて逐次算出する。つまり、中間算出値ＤＭは、データＤＡの先頭バイトから指定バイトＢＡまでに対するパリティ符号である。第１の誤り訂正符号は、メモリ２からデータＤＡを読み出した際にデータＤＡと共にメモリ２から読み出されるデータＤＡのパリティ符号である。第２の誤り訂正符号ＳＡは、メモリ２から読み出されたデータＤＡについて新たに算出されるデータＤＡのパリティ符号である。第１算出回路１１では、メモリ２２から読み出されたデータＤＡについて新たに第２の誤り訂正符号ＳＡを算出する過程において、先頭バイトから指定バイトＢＡまでの第２の誤り訂正符号の中間算出値ＤＭを算出する。この算出された中間算出値ＤＭは後段の第２算出回路１３で第３の誤り訂正符号ＳＢを算出するのに用いられる。しかしながら、第２の誤り訂正符号ＳＡそのものは他の回路等で使用されることはない。第１算出回路１１及び第２算出回路１３は、例えばリードソロモン符号等の、データを先頭バイトから順に用いて算出される誤り訂正符号を算出する。
【００１７】
図１に示したメモリコントローラ１は、データ格納回路１２及び訂正回路１５を更に備える。データ格納回路１２は、第１算出回路１１からの中間算出値ＤＭを格納する。訂正回路１５は、メモリ２から読み出されたデータＤＡと第１の誤り訂正符号であるパリティ符号とを用いてデータＤＡの誤り訂正を行う。
【００１８】
メモリ２は、ページコピー機能を用いたブロック間のデータコピーが可能なメモリであり、格納するデータの一部が変更された場合に、変更された部分だけを書き換える機能を備える。メモリ２に、例えばＮＡＮＤ型フラッシュメモリ等が採用可能である。
【００１９】
図３に、メモリ２の構成例を示す。メモリ２は、複数のブロックを含むメモリセル２１とページバッファ２２を備える。既に述べたように、メモリ２に格納されたデータはブロック単位で消去される。又、メモリセル２１に含まれるブロック間でデータがコピーされる場合、ページバッファ２２を用いてページ単位でデータコピーが実行される。例えば、ブロックＡに含まれるページＰＡから読み出されたデータがページバッファ２２に格納される。そして、ページバッファ２２に格納されたデータがブロックＢに含まれるページＰＢに書き込まれる。これによってデータコピーが行われる。ページＰＡから読み出されたデータの一部が変更される場合は、一旦メモリコントローラ１にページ単位で読み出されて、メモリコントローラ１によりページバッファ２２に格納されたデータが変更され、変更後のデータがページＰＢに書き込まれる。なお、メモリコントローラ１は、メモリ２からデータを読み出す際には、ページバッファ２２に格納されたデータを読み出す。
【００２０】
図４に、メモリ２のページ構成例を示す。図４は図２に対応している。図４に示した例では、メモリ２の各ページは５１２バイトのデータ部Ｄ１と１６バイトの冗長部Ｄ２を有する。つまり、先頭バイトである１バイト目から５１２バイト目までがデータ部Ｄ１であり、５１３バイト目から５２８バイト目までが冗長部Ｄ２である。実データがデータ部Ｄ１に格納され、データ部Ｄ１に格納された実データに関する管理データが冗長部Ｄ２に格納される。図４に示したページ構成の場合、データ部Ｄ１、冗長部Ｄ２の順に先頭バイトからデータが読み出される。なお、各ページのパリティ符号が冗長部Ｄ２に格納される。データ部Ｄ１に格納された実データと冗長部Ｄ２に格納された管理データとが、データＤＡに対応する。このデータＤＡに対するパリティ符号は、例えば冗長部Ｄ２の最後尾に格納される。誤り訂正符号としては、例えばリードソロモン符号等の、データを先頭バイトから順に用いて算出される誤り訂正符号が採用可能である。
【００２１】
以下に、図１に示したメモリコントローラ１により、メモリ２のデータコピーを制御する方法を説明する。ここで、メモリ２が図３及び図４に示した構成を有するＮＡＮＤ型フラッシュメモリであるとする。以下では、ブロック間のデータコピーを行う際に、冗長部Ｄ２に格納された管理データが変更される場合を例示的に説明する。つまり、以下の例では、冗長部Ｄ２がページデータの後続部（図２参照）に含まれるように、指定回路１４において指定バイトＢＡとして５１２バイトが設定される。なお、データコピー時に管理データを更新する例としては、冗長部にデータのコピー回数を格納し、データがコピーされる度に、冗長部に格納されたコピー回数を記録する管理データをカウントアップする場合が考えられる。ただし、冗長部にコピー回数を記録するための管理データはどのメモリシステムにも必ず必要なものではなく、必要としないメモリシステムもある。また、管理データを、別の理由から、随時変更しなければならない場合もある。
【００２２】
図３に示したブロックＡのページＰＡに格納されたデータＤＡとその第１の誤り訂正符号がページバッファ２２に転送される。図１に示した第１算出回路１１が、ページバッファ２２からデータＤＡを読み出しながら、データＤＡの各バイトにおける中間算出値を逐次算出しながら、データＤＡの第２の誤り訂正符号ＳＡの中間算出値ＤＭを算出する。即ち、第１算出回路１１は、指定回路１４から転送される指定バイトＢＡの情報を参照し、第２の誤り訂正符号ＳＡを算出する過程で得られる、データＤＡの先頭バイトから５１２バイト目までを用いて算出される中間算出値ＤＭをデータ格納回路１２に転送する。換言すれば、データＤＡの５１１バイト目が読み出された時点で算出される中間算出値を初期値として、５１２バイト目までの中間算出値ＤＭは算出される。データ格納回路１２は、中間算出値ＤＭを格納する。
【００２３】
メモリ２から読み出されたデータＤＡとその第１の誤り訂正符号は、訂正回路１５に転送される。訂正回路１５は、第１の誤り訂正符号を用いて、データＤＡに誤りがある場合にデータＤＡの誤り訂正処理を行う。
【００２４】
変更回路１６は、訂正回路１５から転送されるデータＤＡ（実データと管理データを含む）のうちの指定バイトＢＡの後続部に含まれるデータの少なくとも一部を変更する（図２参照）。例えば、データＤＡのデータコピー回数を記録する、冗長部Ｄ２に格納される管理データが更新される。データＤＡを変更回路１６によって変更した結果を、以下にデータＤＢとする。従って、データＤＢには、パリティ符号は含まれていない。変更回路１６は、第２算出回路１３及びデータ転送回路１７にデータＤＢの変更部分を転送する。
【００２５】
第２算出回路１３は、データ格納回路１２から中間算出値ＤＭを読み出す。更に、第２算出回路１３は、指定回路１４から転送される指定バイトＢＡの情報を参照し、中間算出値ＤＭを用いてデータＤＢの誤り訂正符号として第３の誤り訂正符号ＳＢを算出する。具体的には、第２算出回路１３は、中間算出値ＤＭを初期値として、指定バイトＢＡの次のバイト、即ちデータＤＢの５１３バイト目以降を用いて第３の誤り訂正符号ＳＢを算出する。中間算出値ＤＭを初期値として第３の誤り訂正符号ＳＢを算出することにより、データＤＢの全データを用いて誤り訂正符号を算出する場合に比べて、第３の誤り訂正符号ＳＢを算出する時間が短縮される。例えば、誤り訂正符号を算出するために１バイト当り１クロックサイクルを要する場合、指定バイトＢＡを５１２バイト目に設定することによって、第３の誤り訂正符号ＳＢを算出するために要するクロックサイクル数が５１２クロックサイクル短縮される。第２算出回路１３は、第３の誤り訂正符号ＳＢをデータ転送回路１７に転送する。ただし、データＤＡに誤りがあることが訂正回路１５で検出された場合は、第２算出回路１３は、図示しない制御部の制御によって中間算出値ＤＭを使用せずデータＤＢを先頭バイトから順に用いて第３の誤り訂正符号ＳＢを算出する（これについては後述する）。
【００２６】
データ転送回路１７は、データＤＡの変更部分の情報と第３の誤り訂正符号ＳＢとを転送データＤＴとしてメモリ２に転送する。例えば、更新されたデータコピー回数を記録する管理データ、及び第３の誤り訂正符号ＳＢがメモリ２に転送される。データＤＢの変更部分のみをメモリコントローラ１からメモリ２に転送することにより、データＤＢ全体を転送する場合に比べて、データ転送時間を短縮できる。
【００２７】
メモリ２に転送された転送データＤＴによって、図３に示したページバッファに格納されたデータＤＡの一部を変更したデータ、例えばデータＤＡ内のデータコピー回数を記録する管理データと、データＤＡ（実データと管理データを含む）に対する変更された誤り訂正符号とがページＰＢに書き込まれる。
【００２８】
以上では、指定バイトＢＡを５１２バイト目に設定して、データＤＡに含まれる管理データを変更する例を説明した。データＤＡのデータ部Ｄ１に格納された実データを変更する場合も同様にして、第３の誤り訂正符号ＳＢの算出に要する時間の増大を抑制可能である。
【００２９】
例えば、メモリ２が不良メモリセルを含む場合を考える。ここで、「不良メモリセル」とは、データ記憶機能に欠陥がある可能性を有するメモリセルである。不良メモリセルに格納されたデータの信頼性は低く、誤り訂正が行われる可能性が高い。不良メモリセルの情報は、例えばメモリ２が電源投入時の自己チェック等によって不良メモリセルを検知して得られる。不良メモリセルの情報は、メモリ２からメモリコントローラ１に通知される。
【００３０】
メモリ２から読み出されたデータＤＡの実データが不良メモリセルに格納されていたデータを含む場合、データＤＡの実データについて誤り訂正が行われる可能性がある。そこで、メモリ２から通知される不良メモリセルの情報に基づいて、不良メモリセルに格納されたデータよりも時間的に前にメモリ２から読み出されるデータを用いて中間算出値ＤＭを算出するように、指定バイトＢＡが設定される。不良メモリセルに格納されたデータを含まないデータを用いて算出される中間算出値ＤＭを初期値にすることによって、第３の誤り訂正符号ＳＢの算出に要する時間を短縮できる。
【００３１】
なお、図１で、第１算出回路１１は、メモリ２からのデータＤＡを入力し、第２の誤り訂正符号を算出する過程で先頭バイトから指定バイトまでの中間算出値ＤＭを算出する入力側の算出回路であり、また、第２算出回路１３は、第１算出回路１１からの中間算出値ＤＭをデータ格納回路１２を介して受け取り、中間算出値ＤＭと一部変更後のデータＤＢ（実データと管理データを含む）を用いて第３の誤り訂正符号を効率的に算出する出力側の算出回路であるから、第１算出回路１１とデータ格納回路１２と第２算出回路１３とを、一部変更後のデータＤＢの誤り訂正符号を算出する１つの算出回路として扱うこともできる。その場合、算出回路１１と第２算出回路１３は、演算内容がほぼ同じであり、また、同時には動作しない事から、大部分の回路を共用する事ができる。
【００３２】
上記ではメモリ２がＮＡＮＤ型フラッシュメモリである例を説明した。本発明の実施の形態に係るメモリコントローラ１は、格納されたデータの一部を変更する機能を有する種々のメモリの制御に適用可能である。
【００３３】
以上説明したように、本発明の実施の形態に係るメモリコントローラ１では、変更される部分よりも前の部分のデータを用いて、第２の誤り訂正符号ＳＡの中間算出値ＤＭが算出される。そして、中間算出値ＤＭを初期値として一部変更後のデータＤＢについて第３の誤り訂正符号ＳＢが算出される。つまり、一部変更後のデータＤＢについては、出力側の算出回路で指定バイトＢＡ以降のデータに対してのみ誤り訂正符号を算出すればよい。その結果、データＤＢの全データに対して誤り訂正符号を算出する場合に比べて、第３の誤り訂正符号ＳＢを算出する時間を短縮できる。
【００３４】
以上の動作の説明は、メモリ２から読み出されるデータＤＡにおける、先頭バイトから指定バイトＢＡまでのデータに誤りがなく、先頭バイトから指定バイトＢＡまでのデータを用いて算出される第２の誤り訂正符号の中間算出値ＤＭには信頼性がある場合に、この中間算出値ＤＭを後段の第２算出回路１３で初期値として用いて第３の誤り訂正符号を少ない時間で効率的に算出することが可能となるものである。しかしながら、メモリ２から読み出されるデータＤＡにおける、先頭バイトから指定バイトＢＡまでのデータに誤りが検出されたり（訂正回路１５にて検出される）、或いは、訂正回路１５で訂正できない誤りがあった場合には、第１算出回路１１にて算出される第２の誤り訂正符号の中間算出値ＤＭには信頼性がなく（即ち中間算出値ＤＭ自体に誤りが存在する可能性があり）、この中間算出値ＤＭを第２算出回路１３で使用することはできない。そこで、データＤＡにおける、先頭バイトから指定バイトＢＡまでのデータに誤りが訂正回路１５で検出されたり、或いは、訂正回路１５で訂正できない誤りがあった場合には、図示しない制御部が訂正回路１５からの情報を受け、第２算出回路１３での中間算出値ＤＭの使用を停止すると同時に指定回路１４を制御して指定回路１４による第２算出回路１３へのバイト指定の動作を停止させる。このバイト指定の動作の停止により、第２算出回路１３が変更回路１６からのデータＤＢに関して先頭バイトから最終バイトまでの誤り訂正符号の算出を順次に行って第３の誤り訂正符号ＳＢを算出する。データ転送回路１７は、この第３の誤り訂正符号ＳＢとデータＤＢの変更部分とを転送データＤＴとしてメモリ２へ転送する。
【００３５】
＜変形例＞
図５は本発明の実施の形態の変形例に係るメモリコントローラ１Ｂを示している。図５に示したメモリコントローラ１Ｂでは、指定回路１４から第１算出回路１１に指定バイトＢＡが転送されない構成となっている。又、図１に示したメモリコントローラ１では、データＤＡの先頭バイトから予め設定された指定バイトＢＡまでのデータを用いて算出される中間算出値ＤＭがデータ格納回路１２に格納される。これに対して、図５に示したメモリコントローラ１Ｂでは、第２の誤り訂正符号ＳＡを算出する過程で得られる、データＤＡの先頭バイトからそれ以降（先頭バイアスを含む）の各バイトまでの中間算出値ＤＭがそれぞれ第１算出回路１１からデータ格納回路１２に転送される。その結果、データ格納回路１２は、データＤＡのバイト数分の個数の中間算出値ＤＭを格納する。
【００３６】
つまり、データＤＡの各バイトを指定バイトＢＡとする複数の中間算出値ＤＭがデータ格納回路１２に格納される。その他の構成については、図１に示す第１の実施の形態と同様である。
【００３７】
データＤＡの各バイトまでの中間算出値ＤＭを図５に示したデータ格納回路１２に格納することによって、任意に指定される指定バイトＢＡまでの中間算出値ＤＭを使用して、第２３の誤り訂正符号ＳＢを算出できる。具体的には、第２算出回路１３は、指定回路１４から通知される指定バイトＢＡまでの中間算出値ＤＭをデータ格納回路１２から読み出す。第２算出回路１３は、データ格納回路１２から読み出した中間算出値ＤＭとデータＤＢの指定バイトＢＡの後続部のデータとを用いて、第３の誤り訂正符号ＳＢを算出する。データ格納回路１２に、例えばランダムアクセスメモリ（ＲＡＭ）等が採用可能である。
【００３８】
図５に示したメモリコントローラ１Ｂでは、データＤＡの各バイトにおける中間算出値ＤＭがそれぞれデータ格納回路１２に格納される。そして、データＤＢの任意のバイトの中間算出値ＤＭを初期値として、データＤＢの第３の誤り訂正符号ＳＢが算出される。そのため、図５に示したメモリコントローラ１Ｂにおいては、データＤＢの先頭から任意のバイトまでの誤り訂正符号の算出時間を省略できる。
【００３９】
尚、既に述べた実施の形態の説明においては、指定回路１４が指定バイトＢＡの情報を格納する例を示したが、第１算出回路１１及び第２算出回路１３がそれぞれ指定バイトＢＡの情報を格納してもよい。
【００４０】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施の形態に係るメモリコントローラの構成を示すブロック図。
【図２】本発明の実施の形態に係るメモリコントローラによって制御されるメモリの指定バイトを説明するためのページ構成の模式図。
【図３】本発明の実施の形態に係るメモリコントローラによって制御されるメモリの構成例を示す模式図。
【図４】本発明の実施の形態に係るメモリコントローラによって制御されるメモリのページ構成の例を示す模式図。
【図５】本発明の実施の形態の変形例に係るメモリコントローラの構成を示すブロック図。
【符号の説明】
【００４２】
１，１Ｂ…メモリコントローラ
２…メモリ
１１…第１算出回路
１２…データ格納回路
１３…第２算出回路
１４…指定回路
１５…訂正回路
１６…変更回路
１７…データ転送回路
【図１】
2007305105.tif 000003
【図２】
2007305105.tif 000004
【図３】
2007305105.tif 000005
【図４】
2007305105.tif 000006
【図５】
2007305105.tif 000007