(57)【要約】【課題】本発明の目的はコントローラから半導体メモリへのデータの書き込みにおいて、データの書き込み効率を向上させることである。【解決手段】上記の課題を解決するため、データを記憶する記憶部を有するメモリ装置は、データを入力する第一端子と、該データのエラーレートよりエラーレートが低いエラー訂正符号を入力する第二端子と、該第一端子と該第二端子から入力された該データと該エラー訂正符号とを一時記憶し、該データのエラー訂正を行うエラー訂正部と、該エラー訂正部によりエラー訂正された該データを該記憶部に記憶させる制御部とを有する。【選択図】図３
2010009383.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶部を有するメモリ装置において、
データを入力する第一端子と、
該データのエラーレートよりエラーレートが低いエラー訂正符号を入力する第二端子と、
該第一端子と該第二端子から入力された該データと該エラー訂正符号とを一時記憶し、該データのエラー訂正を行うエラー訂正部と、
該エラー訂正部によりエラー訂正された該データを該記憶部に記憶させる制御部と
を有することを特徴とするメモリ装置。
【請求項２】
該エラー訂正部は該データをエラー訂正した後に該エラー訂正部に一時記憶した該エラー訂正符号を削除することを特徴とする請求項１に記載のメモリ装置。
【請求項３】
該第二端子は該エラー訂正符号と異なるタイミングで該データの受信タイミングを通知するストローブ信号を入力する端子であることを特徴とする請求項１に記載のメモリ装置。
【請求項４】
該第二端子は該エラー訂正符号を差動信号として入力する端子であることを特徴とする請求項１に記載のメモリ装置。
【請求項５】
該エラー訂正部は受信した該データから生成した参照用エラー訂正符号と受信した該エラー訂正符号とを比較することを特徴とする請求項１に記載のメモリ装置。
【請求項６】
該データの送信元へ該データの状況を通知する生成部をさらに有し、
該エラー訂正部は該参照用エラー訂正符号と該エラー訂正符号との不一致を検出した場合にはエラー検出信号を該制御部に送信し、
該制御部は該エラー検出信号を該エラー訂正部から受信した場合に該生成部から該データの送信元へ該データの状況を通知させることを特徴とする請求項５に記載のメモリ装置。
【請求項７】
該エラー訂正部は該データの送信元から送信された動作通知信号に基づいてエラー訂正処理を有効にすることを特徴とする、請求項１に記載のメモリ装置。
【請求項８】
該制御部がデータの読み出し命令に応じて該記憶部から該データを読み出す際に、該データをエラー訂正するエラー訂正符号を生成する符号生成部をさらに有することを特徴とする請求項１に記載のメモリ装置。
【請求項９】
データを記憶させる情報処理システムにおいて、
データと該データのエラー訂正符号を出力するコントローラと、
該コントローラからの該データが入力される第一端子と、該コントローラからの情報伝搬において該データのエラーレートよりエラーレートが低いエラー訂正符号が入力される第二端子と、該データを記憶する記憶部と、該第一端子と該第二端子から入力された該データと該エラー訂正符号とを一時記憶し該データのエラー訂正を行うエラー訂正部と、該エラー訂正部によりエラー訂正された該データを該記憶部に記憶させる制御部とを備えたメモリ装置を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶させる情報処理システムに関する。
【背景技術】
【０００２】
データを一時的に記憶する揮発性のメモリ装置や不揮発性のメモリ装置が多様な用途で利用されている。揮発性のメモリ装置として典型的なものはダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＤＲＡＭ）であり、またスタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＳＲＡＭ）などもこの範疇に入る。また、不揮発性のメモリ装置として典型的なものはフラッシュメモリであり、またマグネットレジスティブラム（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ：ＭＲＡＭ）などもこの範疇に入る。
【０００３】
メモリ装置はセントラル  プロセッシング  ユニット（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）などのコントローラとの間でデータの転送処理を行いメモリ装置にデータを記憶させる情報処理システムを形成する。メモリ装置とコントローラとの間のデータ転送速度は年々高速化している。データ転送速度の高速化に伴いデータの電圧振幅は小さく設定される。電圧振幅が小さくなると転送されるデータは他の装置からの電磁波ノイズの影響を受けやすくなる。このためコントローラからメモリ装置へデータを書き込む場合にメモリ装置に書き込まれたデータがエラーとなる確率が高くなる。
【０００４】
データエラーが発生した場合、メモリ装置でこれを検知できれば、メモリ装置はコントローラにエラーの発生を通知することが出来る。エラー発生通知を受けたコントローラは再度同一データをメモリ装置に書き込むことでメモリ装置に正しいデータを記憶させることが出来る。以下の特許文献１および２には、データ受信装置とデータバスとの間に確認回路を設け、パリティビットをデータと共に転送することによりデータエラーの発生箇所を特定する技術が開示されている。
【０００５】
メモリ装置でエラーが検知されると、コントローラはメモリ装置に正しいデータを記憶させるため同一データを再度メモリ装置に書き込む。コントローラはメモリ装置からエラー通知を受けなくなるまでメモリ装置に同一データを何度も書き込む場合もある。このようなコントローラからメモリ装置への処理は書き込みデータ量の増大につながる。書き込みデータ量の増大はコントローラからメモリ装置へのデータの書き込み効率低下の原因となる。
【特許文献１】特開２００１−１４７２８号公報
【特許文献２】特開２００２−３５１６８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的はコントローラからメモリ装置へのデータの書き込みにおいて、データの書き込み効率を向上させることである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、データを記憶する記憶部を有するメモリ装置は、データを入力する第一端子と、該データのエラーレートよりエラーレートが低いエラー訂正符号を入力する第二端子と、該第一端子と該第二端子から入力された該データと該エラー訂正符号とを一時記憶し、該データのエラー訂正を行うエラー訂正部と、該エラー訂正部によりエラー訂正された該データを該記憶部に記憶させる制御部とを有する。
【発明の効果】
【０００８】
実施形態によれば、コントローラからメモリ装置にデータを書き込む場合、メモリ装置でデータのエラー訂正を行うことができる。コントローラはメモリ装置からエラー通知を受けなくなるまでメモリ装置に同一データを何度も書き込む必要がなくなる。すなわちコントローラからメモリ装置への書き込みデータ量を減らすことが出来る。これによりコントローラからメモリ装置へのデータの書き込みにおいて、データの書き込み効率を向上させることができ、しいてはメモリ装置の寿命が延び、メモリ装置への正確なデータの書き込みを実現することが出来る。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について説明する。なお、以下の実施例はプロセッサによるプログラムの処理でも実現可能である。
[情報処理システム]
以下に、図１と図２を用いて情報処理システムの実施形態を説明する。
【００１０】
図１はコントローラ１００がメモリ装置１０２へデータを書き込む場合の情報処理システム図である。コントローラ１００は第一制御部１５０を有する。第一制御部１５０はコントローラ１００のデータ送受信動作を制御する。メモリ装置１０２は第二制御部１６０を有する。第二制御部１６０はメモリ装置１０２のデータ送受信動作を制御する。第一制御部１５０は第二制御部１６０にクロック１１０、コマンド信号１１２、およびアドレス信号１１４を送信する。
【００１１】
ここでメモリ装置には揮発性のものと不揮発性のものとの両方が含まれる。揮発性のメモリ装置として典型的なものはダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＤＲＡＭ）であり、またスタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＳＲＡＭ）などもこの範疇に入る。また、不揮発性のメモリ装置として典型的なものはフラッシュメモリであり、またマグネットレジスティブラム（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ：ＭＲＡＭ）などもこの範疇に入る。
【００１２】
クロック１１０により第一制御部１５０と第二制御部１６０とは同一クロックで動作する。コマンド信号１１２により第一制御部１５０はデータの書き込み動作への切り替え、書き込みデータを記憶するアドレスを指定するためのアドレス信号１１４の読み込みタイミングなどの情報を第二制御部１６０に通知する。アドレス信号１１４により第一制御部１５０は書き込みたいデータを記憶するアドレス情報を第二制御部１６０に通知する。
【００１３】
コントローラ１００の第一書き込み処理部１５４はメモリ装置１０２の第二書き込み処理部１６４にデータ１１８およびデータ１１８から生成したエラーコレクティングコード（ＥＲＲＯＲ  ＣＯＲＲＥＣＴＩＮＧ  ＣＯＤＥ：ＥＣＣ）１２０を送信する。ここでＥＣＣ１２０はデータ１１８のエラー訂正を行うためのエラー訂正符号である。ＥＣＣ１２０はデータ１１８のエラー訂正処理に用いられる。
【００１４】
第二書き込み処理部１６４は受信したＥＣＣ１２０を用いてデータ１１８のエラー訂正処理を行う。第二書き込み処理部１６４はエラー訂正処理後、受信したＥＣＣ１２０を削除することもできる。第二制御部１６０はエラー訂正処理後のデータ１１８を記憶部１６６における通知されたアドレスに記憶する。一方、第二書き込み処理部１６４はエラー訂正処理によりデータ１１８のエラー訂正が出来なかった場合、その旨を第二制御部１６０に通知する。第二制御部１６０はメモリ装置１０２の第二書き込み処理部１６４にエラー通知信号を出力するよう指示する。
【００１５】
第二書き込み処理部１６４はコントローラ１００の第一読み出し処理部１５２にエラー通知信号１１６を送信する。第一読み出し処理部１５２は第一制御部１５０にエラー通知信号１１６を受信したことを通知する。第一制御部１５０は第一書き込み処理部１５４に再度データ１１８を送るよう通知する。第一書き込み処理部１５４は第一制御部１５０の通知を受け再度第二書き込み処理部１６４にデータ１１８およびＥＣＣ１２０を送信する。
【００１６】
以上、メモリ装置１０２はエラー訂正処理によりコントローラ１００とメモリ装置１０２との間のデータ転送レートを低下させることなく、メモリ装置へ１０２の正確なデータの書き込みを実現することが出来る。またメモリ装置１０２は記憶部１６６にＥＣＣ１２０を削除したデータ１１８のみを記憶することにより、データの記憶領域を拡大することが出来る。またＥＣＣ１２０を記憶部１６６に記憶しておき、データ１１８の読み出し時にＥＣＣ１２０を用いてエラー訂正処理することもできる。記憶したＥＣＣを用いることにより記憶部１６６に記憶中にエラーが生じたデータ１１８をエラー訂正することが出来る。
【００１７】
図２はコントローラ１００がメモリ装置１０２からデータを読み出す場合の情報処理システム図である。第一制御部１５０は第二制御部１６０にクロック１１０、コマンド信号１１２、およびアドレス信号１１４を送信する。
【００１８】
コマンド信号１１２により第一制御部１５０はデータの読み出し動作への切り替え、読み出しデータが記憶されたアドレスを指定するアドレス信号１１４の読み込みタイミングなどの情報を第二制御部１６０に通知する。アドレス信号１１４により第一制御部１５０は読み出したいデータを記憶するアドレス情報を第二制御部１６０に通知する。
【００１９】
第二制御部１６０はアドレス信号１１４に基づいて記憶部１６６からデータ２１８を読み出し、第二読み出し処理部１６２へ送る。第二読み出し処理部１６２は読み出したデータ２１８に基づいてＥＣＣ２２０を生成し、データ２１８およびＥＣＣ２２０をコントローラ１００の第一読み出し処理部１５２へ送信する。
【００２０】
第一読み出し処理部１５２は受信したＥＣＣ２２０を用いてデータ２１８のエラー訂正処理を行う。第一読み出し処理部１５２はエラー訂正後、受信したＥＣＣ２２０を削除し、エラー訂正後のデータのみをコントローラ１００の内部回路に転送することができる。
【００２１】
一方、第一読み出し処理部１５２はエラー訂正処理によりデータ２１８のエラー訂正が出来なかった場合、その旨を第一制御部１５０に通知する。第一制御部１５０はコントローラ１００の第一書き込み処理部１５４にエラー通知信号を出力するよう指示する。
【００２２】
第一書き込み処理部１５４はメモリ装置１０２の第二書き込み処理部１６４にエラー通知信号２１６を送信する。第二書き込み処理部１６４は第二制御部１６０にエラー通知信号２１６を受信したことを通知する。第二制御部１６０は第二読み出し処理部１６２に再度データ２１８を送るよう通知する。第二読み出し処理部１６２は通知を受け再度第一読み出し処理部１５２にデータ２１８およびＥＣＣ２２０を送信する。
【００２３】
以上、メモリ装置１０２は記憶部１６６にデータのみを記憶しておき、データの読み出し時にＥＣＣ２２０を生成し出力する。これによりデータの記憶領域を拡大し、かつメモリ装置１０２から読み出されるデータの信頼性をあげることが出来る。またメモリ装置１０２はエラー訂正処理によりコントローラ１００とメモリ装置１０２との間のデータ転送レートを低下させることなく、メモリ装置へ１０２の正確なデータの書き込みを実現することが出来る。
［メモリブロック図］
図３はメモリ装置１０２の詳細なブロック図である。メモリ装置１０２は第二制御部１６０、第二読み出し処理部１６２、第二書き込み処理部１６４、および記憶部１６６を有する。
【００２４】
メモリ装置１０２のデータ書き込み動作の詳細について以下に説明する。コマンド信号１１２に基づいて第二制御部１６０はメモリ装置１０２をデータ書き込みモードにする。第二制御部１６０はアドレス信号１１４により指定された記憶部１６６のアドレスを書き込み可能にする。
【００２５】
第二書き込み処理部１６４は受信部３２４、ファイフォ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ：ＦＩＦＯ）３２２、およびエラー訂正部３２０を有する。ＦＩＦＯはバッファの一種であり、ＦＩＦＯに入力されたデータをクロック１１０のタイミングで古い順に出力する。受信部３２４はデータ１１８およびライトデータストローブ信号（Ｗｒｉｔｅ  ＤＱＳ：ＷＤＱＳ）を受信する。データ１１８は端子１に、ＷＤＱＳは端子２にそれぞれ入力される。ＷＤＱＳはデータ１１８の書き込み時にデータとともに受信され、データ１１８を取り込むタイミングを調整するデータストローブ信号として用いられる。データ１１８を受信していないタイミングにおいてデータストローブ信号は不要なので、通常コントローラ１００におけるＷＤＱＳの出力はハイインピーダンスに固定されている。
【００２６】
受信部３２４はデータ１１８を受信する前にＷＤＱＳを用いて動作通知信号を受信する。動作通知信号はエラー訂正部３２０におけるエラー訂正処理を有効にするための信号である。受信部３２４は動作通知信号を受けたことを要求信号３４２によって第二制御部１６０に通知する。第二制御部１６０は要求信号３４２を受けてエラー訂正部３２０をＥＣＣチェック動作状態にする。また、後述のとおりメモリ装置１０２の電源投入時において、ＥＣＣ動作を無効にすることも出来る。このような動作モードであっても、動作通知信号を受信することにより一時的にＥＣＣ処理を有効にすることが出来る。これにより、ある特定のデータをメモリ装置１０２に書き込む場合などにそのデータの信頼性を向上させることが出来る。
【００２７】
受信部３２４はＷＤＱＳで送信されたデータストローブ信号に同期してデータ１１８を読み込む。本実施例においてデータ１１８の特定のビット長であるバースト長は８ビットであるとするが、他のバースト長であっても良い。データ１１８の受信が完了し一定時間経過後、受信部３２４はＷＤＱＳによりＥＣＣ１２０を受信する。データ１１８の受信完了からＥＣＣ１２０を受信するまでの時間は後述のとおりコマンド信号１１２およびアドレス信号１１４により設定される。これにより受信部３２４はＥＣＣ１２０を受信することが可能となる。
【００２８】
受信部３２４が受信するＷＤＱＳは差動配線により伝送される。差動配線は差動信号を伝送する配線である。差動信号は電磁波ノイズなどの外来ノイズの影響を受けにくいため、データ１１８よりもエラー発生率が低い。コントローラ１００はＥＣＣ１２０をＷＤＱＳによって送信することによりＥＣＣ１２０を外来ノイズから保護することが出来る。これによりメモリ装置１０２はエラー訂正の正確性を高めることが出来る。またＷＤＱＳを伝送する差動配線と異なり、データ１１８を伝送する配線よりもエラー発生率の低い信号が伝播する差動配線などによりコントローラ１００からメモリ装置１０２へＥＣＣ１２０を送信しても良い。この場合コントローラ１００はデータストローブ信号の有無にかかわらずＥＣＣ１２０をデータ１１８と同時にメモリ装置へ送信することも出来る。これによりメモリ装置１０２へのデータ書き込み効率をさらに向上させることが出来る。
【００２９】
受信部３２４は受信したデータ１１８およびＥＣＣ１２０をＦＩＦＯ３２２に送信する。ＦＩＦＯ３２２はクロック１１０に同期してデータ１１８およびＥＣＣ１２０をエラー訂正部３２０に送信する。
【００３０】
エラー訂正部３２０は受信したデータ１１８およびＥＣＣ１２０を一時記憶する。エラー訂正部３２０は一時記憶したデータ１１８から参照用エラー訂正符号を生成する。エラー訂正部３２０は参照用エラー訂正符号とＥＣＣ１２０とを比較する。比較した結果両者が一致していれば、エラー訂正部３２０はデータ１１８にエラーはないと判定することが出来る。比較した結果両者が異なっていればエラー訂正部３２０はデータ１１８にエラーがあると判定することが出来る。エラーがあると判定した場合、エラー訂正部３２０はＥＣＣ１２０を用いてデータ１１８のエラー訂正処理を行う。
【００３１】
エラー訂正処理が成功した場合、エラー訂正部３２０は記憶部１６６にエラー訂正後のデータ１１８を送信する。メモリ装置１０２はエラー訂正処理によりコントローラ１００とメモリ装置１０２との間のデータ転送レートを低下させることなく、メモリ装置へ１０２の正確なデータの書き込みを実現することが出来る。
【００３２】
エラー訂正処理が失敗した場合、エラー訂正部３２０はその旨をエラー検出信号３４４によって第二制御部１６０へ通知する。第二制御部１６０はエラーが訂正できなかったことをコントローラ１００に通知するため、リードデータストローブ信号（Ｒｅａｄ  ＤＱＳ：ＲＤＱＳ）生成部３０２に対し生成信号３４０を送信する。ＲＤＱＳ生成部３０２は生成信号３４０を受けてエラー通知信号１１６を生成し送信部３１０に送信する。送信部３１０はＲＤＱＳによりエラー通知信号１１６をコントローラ１００へ送信する。エラー通知信号１１６を受信したコントローラ１００は再度データ１１８をメモリ装置１０２に送信する。これにより、メモリ装置１０２に正常なデータ１１８を記憶させることができる。
【００３３】
ＥＣＣ１２０のビット数を多くするほどエラー訂正可能なデータ１１８のエラービット数は多くなるが、コントローラ１００からメモリ装置１０２へＥＣＣ１２０を送信する時間が長くなる。本実施例においてＥＣＣ１２０は２ビットとする。データ１１８のビット長は前述のとおり８ビットなので、２ビットのＥＣＣ１２０により１ビットのエラー訂正および２ビットのエラー検出が可能となる。
【００３４】
エラー訂正処理終了後、第二制御部１６０はエラー訂正部３２０に一時記憶されたＥＣＣ１２０を削除しデータ１１８のみを記憶部１６６に記憶させても良い。記憶部１６６にデータ１１８のみを記憶することにより、メモリ装置１０２はＥＣＣ１２０を併せて記憶する場合に比べてより多くのデータを記憶することが出来る。また、エラー訂正処理終了後、ＥＣＣ１２０をデータ１１８と共に記憶部１６６に記憶しても良い。データ１１８の読み出し時に記憶したＥＣＣ１１８を用いてエラー訂正することにより、記憶部１６６に記憶中にデータ１１８に発生したエラーを訂正することが出来る。これによりデータ１１８の信頼性をさらに向上させることが出来る。
【００３５】
メモリ装置１０２のデータ読み出し動作の詳細について以下に説明する。コマンド信号１１２に基づいて第二制御部１６０はメモリ装置１０２をデータ読み出しモードにする。第二制御部１６０はアドレス信号１１４により指定された記憶部１６６のアドレスを読み出し可能にする。
【００３６】
第二読み出し処理部１６２は送信部３１０、バス幅調整部３０８、符号生成部３０４、ＲＤＱＳ生成部３０２、およびディレイロックドループ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ：ＤＬＬ）３０６を有する。ＤＬＬはクロック１１０と送信部３１０から出力されるデータ２１８との同期を調整する。
【００３７】
送信部３１０はデータ２１８およびリードデータストローブ信号（Ｒｅａｄ  ＤＱＳ：ＲＤＱＳ）を出力とする。データ２１８は端子３から、ＲＤＱＳは端子４からそれぞれ出力される。ＲＤＱＳはデータ２１８の読み出し時にデータ２１８と共に送信され、データ２１８をコントローラ１００で取り込むタイミングを調整するデータストローブ信号として用いられる。データ２１８を送信していないタイミングにおいてデータストローブ信号は不要なので、通常メモリ装置１０２におけるＲＤＱＳの出力はハイインピーダンスに固定されている。
【００３８】
第二制御部１６０はデータ２１８とともにＥＣＣ２２０をコントローラ１００へ送信する場合は生成信号３４０をＲＤＱＳ生成部３０２に送信する。ＲＤＱＳ生成部３０２は動作通知信号を生成し送信部３１０に送信する。送信部３１０はＲＤＱＳとして動作通知信号をコントローラ１００に送信する。
【００３９】
ＲＤＱＳは差動配線により伝送される。差動配線は電磁波ノイズなどの外来ノイズの影響を受けにくい。メモリ装置１０２はＥＣＣ２２０をＲＤＱＳとして伝送することによりＥＣＣ２２０の信頼性を高めることが出来る。これによりコントローラ１００はエラー訂正の正確性を高めることが出来る。またＷＤＱＳを伝送する差動配線と異なり、データ１１８を伝送する配線よりもエラー発生率の低い配線によりコントローラ１００からメモリ装置１０２へＥＣＣ１２０を送信しても良い。コントローラ１００はデータストローブ信号の有無にかかわらずＥＣＣ１２０をデータ１１８と同時にメモリ装置へ送信することも出来る。これによりメモリ装置１０２へのデータ書き込み効率をさらに向上させることが出来る。
【００４０】
バス幅調整部３０８はラッチ回路とマルチプレクサを有しており、記憶部１６６から読み出したデータ２１８をあらかじめ設定されたデータのバス幅に調整する。バス幅調整部３０８はデータ２１８を送信部３１０に送信すると共に符号生成部３０４に送信する。符号生成部３０４はデータ２１８に基づいてＥＣＣ２２０を生成し送信部３１０に送信する。送信部３１０はデータ２１８およびＥＣＣ２２０をコントローラ１００に送信する。
【００４１】
コントローラ１００はエラー訂正処理に失敗した場合、再度メモリ装置１０２に対し同一データを送信するように要求しても良い。これによりコントローラ１００はメモリ装置１０２から正常なデータを読み出せる確率を高めることが出来る。
【００４２】
以上の通り、コントローラからメモリ装置にデータを書き込む場合、メモリ装置でデータのエラー訂正を行うことができる。コントローラはメモリ装置からエラー通知を受けなくなるまでメモリ装置に同一データを何度も書き込む必要がなくなる。すなわちコントローラからメモリ装置への書き込みデータ量を減らすことが出来る。これによりコントローラからメモリ装置へのデータの書き込みにおいて、データの書き込み効率を向上させることができ、しいてはメモリ装置の寿命が延び、メモリ装置への正確なデータの書き込みを実現することが出来る。
［コントローラブロック図］
図４はコントローラ１００の詳細なブロック図である。コントローラ１００は第一制御部１５０、第一読み出し処理部１５２、第一書き込み処理部１５４、および内部回路１５６を有する。クロック生成部４２０はクロック１１０を生成する。クロック１１０はコントローラ１００の外部から供給しても良い。
【００４３】
メモリ装置１０２へのデータ書き込み動作の詳細について以下に説明する。第一制御部１５０はコマンド信号１１２を送信しメモリ装置１０２をデータ書き込みモードにする。第一制御部１５０はアドレス信号１１４によりデータ１１８を書き込むアドレスを指定する。
【００４４】
第一書き込み処理部１５４は送信部４１８、ＦＩＦＯ４１６、符号生成部４１４、ＷＤＱＳ生成部４１２、およびＤＬＬ４１０を有する。送信部４１８はデータ１１８およびＷＤＱＳを出力とする。
【００４５】
コントローラ１００はデータ１１８を送信する前にＷＤＱＳを用いて動作通知信号を送信する。データ１１８は端子５から、ＷＤＱＳは端子６からそれぞれ出力される。第一制御部１５０はＷＤＱＳ４１２に対し生成信号４３０を送る。ＷＤＱＳ生成部４１２は動作通知信号を生成し送信部４１８に送る。送信部４１８は動作通知信号をＷＤＱＳとしてメモリ装置１０２に送信する。
【００４６】
動作通知信号を送信後、第一書き込み処理部１５４はＥＣＣ１２０およびデータ１１８をメモリ装置１０２に送信する。第一書き込み処理部１５４において、ＦＩＦＯ４１６は内部回路１５６から送信されたデータ１１８のタイミングをクロック１１０に同期させ送信部４１８に送信する。符号生成部４１４はデータ１１８からＥＣＣ１２０を生成し送信部４１８に送信する。送信部４１８はＤＬＬ４１０で位相調整されたタイミングに従いデータ１１８およびＥＣＣ１２０をメモリ装置１０２に送信する。
【００４７】
メモリ装置１０２はデータ１１８のエラー訂正処理に失敗した場合、エラー通知信号１１６を受信部４００に送信する。受信部４００は要求信号４３２を第一制御部１５０に送る。第一制御部１５０は要求信号４３２を受けると内部回路１５６に対し再度同一データ１１８を送信するよう要求する。メモリ装置１０２は再度同一データ１１８を受信することにより、正しいデータ１１８を記憶することが出来る。
【００４８】
メモリ装置１０２からのデータの読み出し動作の詳細について以下に説明する。第一制御部１５０はコマンド信号１１２を送信しメモリ装置１０２をデータ読み出しモードにする。また第一制御部１５０は読み出し対象のデータ２１８をアドレス信号１１４により指定する。
【００４９】
第一読み出し処理部１５２は受信部４００、ＦＩＦＯ４０２、およびエラー訂正部４０４を有する。受信部４００はデータ２１８およびＲＤＱＳを入力とする。データ２１８は端子７に、ＲＤＱＳは端子８にそれぞれ入力される。
【００５０】
受信部４００は動作通知信号を受けたことを第一制御部１５０に通知する。第一制御部１５０はエラー訂正部４０４をＥＣＣチェック動作状態にする。
【００５１】
受信部４００はＲＤＱＳで送信されたデータストローブ信号に同期してデータ２１８を読み込む。データ２１８の受信が完了し一定時間経過後、受信部４００はＷＤＱＳによりＥＣＣ２２０を受信する。データ２１８の受信完了からＥＣＣ２２０を受信するまでの時間は後述のとおりコマンド信号１１２およびアドレス信号１１４により設定される。これにより受信部４００はＥＣＣ１２０を受信することが可能となる。また、ＲＤＱＳは差動配線により伝送される。差動配線は電磁波ノイズなどの外来ノイズの影響を受けにくい。ＥＣＣ２２０をＲＤＱＳによって伝送することによりＥＣＣ２２０を外来ノイズから保護することが出来る。これによりコントローラ１００はエラー訂正の正確性を高めることが出来る。
【００５２】
受信部４００は受信したデータ２１８およびＥＣＣ２２０をＦＩＦＯ４０２に送信する。ＦＩＦＯ４０２はクロック１１０に同期してデータ２１８およびＥＣＣ２２０をエラー訂正部４０４に送信する。エラー訂正部４０４は受信したＥＣＣ２２０を用いてデータ２１８のエラー訂正を行う。本実施例においてＥＣＣ２２０は２ビットとする。データ２１８のビット長は前述のとおり８ビットなので、エラー訂正部４０４は２ビットのＥＣＣ２２０により１ビットのエラー訂正および２ビットのエラー検出が可能となる。
【００５３】
エラー訂正処理が成功すると、エラー訂正部４０４は内部回路１５６にエラー訂正後のデータ２１８を送信する。エラー訂正処理終了後、ＥＣＣ２２０は削除してもよい。
【００５４】
エラー訂正処理が失敗した場合、エラー訂正部４０４はその旨をエラー検出信号４３４によって第一制御部１５０へ通知する。第一制御部１５０はエラーが訂正できなかったことをメモリ装置１０２に通知するため、ＷＤＱＳ生成部４１２に対し生成信号４３０を送信する。ＷＤＱＳ生成部４１２は生成信号４３０を受けてエラー通知信号２１６を生成し送信部４１８に送信する。送信部４１８はＷＤＱＳによりエラー通知信号２１６をメモリ装置１０２へ送信する。エラー通知信号２１６を受信したメモリ装置１０２は再度データ２１８をコントローラ１００に送信する。これにより、メモリ装置１０２はコントローラ１００が正常なデータ２１８を受信する確率を高めることが出来る。
［タイムチャート］
図５はコントローラ１００からメモリ装置１０２へデータを書き込む場合のタイムチャート図である。波形５００はクロック１１０を表す。波形５０２はコマンド信号１１２を表す。波形５０２において、‘Ｗｒｉｔｅ’コマンドはメモリ装置１０２をデータ書き込み許可状態にする。波形５０４はＷＤＱＳを表す。波形５０４において、‘ＥＣＣ’信号はコントローラ１００からメモリ装置１０２に送信される動作通知信号である。
【００５５】
波形５０６においてＤＱ０〜ＤＱ７はメモリ装置１０２に書き込まれる８ビットのデータ１１８である。データ１１８の受信終了からＴ１時間後、メモリ装置１０２はＥＣＣ０、ＥＣＣ１を受信する。ＥＣＣ０、ＥＣＣ１はデータ１１８のエラー訂正符号であるＥＣＣ１２０である。
【００５６】
波形５０８はメモリ装置１０２でエラー検出された場合のＲＤＱＳを表す。波形５０８においてＥＣＣ受信からＴ２時間後のパルス波形はエラー通知信号１１６である。これに対し波形５１０はメモリ装置１０２でエラーが検出されない場合のＲＤＱＳを表す。エラーが検出されない場合、波形５１０の通りＥＣＣ受信からＴ２時間後にパルス波形は発生しない。
【００５７】
時間Ｔ１、Ｔ２はコントローラ１００の起動時にコントローラ１００からメモリ装置１０２に送信するコマンド信号１１２およびアドレス信号１１４によりメモリ装置１０２に設定する。これによりメモリ装置１０２はＷＤＱＳからＥＣＣ１２０を取得することが出来、コントローラ１００はＲＤＱＳからエラー通知信号１１６を取得することが出来る。時間Ｔ１、Ｔ２の設定方法については後述する。
【００５８】
図６はコントローラ１００がメモリ装置１０２からデータを読み出す場合のタイムチャート図である。波形６００はクロック１１０を表す。波形６０２はコマンド信号１１２を表す。波形６０２において、‘Ｒｅａｄ’コマンドはメモリ装置１０２をデータ読み出し許可状態にする。波形６０４はＲＤＱＳを表す。波形６０４において、‘ＥＣＣ’信号はメモリ装置１０２からコントローラ１００に送信される動作通知信号である。
【００５９】
波形６０６においてＤＱ０〜ＤＱ７はメモリ装置１０２から読み出す８ビットのデータ２１８である。データ２１８の送信終了からＴ３時間後、メモリ装置１０２はＥＣＣ０、ＥＣＣ１を送信する。ＥＣＣ０、ＥＣＣ１はデータ２１８のエラー訂正符号であるＥＣＣ２２０である。
【００６０】
波形６０８はコントローラ１００でエラー検出された場合のＷＤＱＳを表す。波形６０８においてＥＣＣ２２０の送信からＴ４時間後のパルス波形はエラー通知信号２１６である。これに対し波形６１０はコントローラ１００でエラーが検出されない場合のＲＤＱＳを表す。エラーが検出されない場合、波形６１０のとおりＥＣＣ２２０の送信からＴ４時間後にパルス波形は発生しない。
【００６１】
時間Ｔ３、Ｔ４はコントローラ１００の起動時にコントローラ１００からメモリ装置１０２に送信するコマンド信号１１２およびアドレス信号１１４によりメモリ装置１０２に設定する。これによりコントローラ１００はＲＤＱＳからＥＣＣ２２０を取得することが出来、メモリ装置１０２はＷＤＱＳからエラー通知信号２１６を取得することが出来る。時間Ｔ３、Ｔ４の設定方法については後述する。
【００６２】
図７は時間Ｔ１、Ｔ２、Ｔ３、およびＴ４を設定する場合にコントローラ１００からメモリ装置１０２へ送信するコマンド信号１１２およびアドレス信号１１４のタイムチャート図である。
【００６３】
波形７００はクロック１１０を表す。波形７０２はコマンド信号１１２を表す。波形７０２において‘ＭＲＳ’コマンドはメモリ装置１０２の動作モードを設定するためのコマンドである。‘ＭＲＳ’コマンドのビット列の内容によってメモリ装置１０２に設定される動作モードの種類が異なる。本実施例では‘ＭＲＳ’コマンドによりモードＥＭＲＳ３を設定する。
【００６４】
波形７０４はアドレス信号１１４を表す。波形７０４において‘Ｃｏｄｅ’コマンドは‘ＭＲＳ’コマンドで設定された動作モードに対応するビット列である。ビット列の並び方によって、時間Ｔ１〜Ｔ４の長さを設定することが出来る。
【００６５】
図８は動作モードを設定するコマンドの内容を表すテーブル図である。図８のＡは‘ＭＲＳ’コマンドおよび‘Ｃｏｄｅ’コマンドである。ＢＡ０〜ＢＡ２は‘ＭＲＳ’コマンドのビット列を表す。Ａ０〜Ａ１２は‘Ｃｏｄｅ’コマンドのビット列を表す。‘Ｃｏｄｅ’コマンドにおいて、Ａ９、Ａ８は時間Ｔ３の長さを決める。Ａ７、Ａ６は時間Ｔ４の長さを決める。Ａ４、Ａ３は時間Ｔ１の長さを決める。Ａ２、Ａ１は時間Ｔ２の長さを決める。図８のＢはＡ９、Ａ８の値と時間Ｔ３の長さとの関係を表すテーブルである。図８のＣはＡ７、Ａ６の値と時間Ｔ４の長さとの関係を表すテーブルである。図８のＤはＡ４、Ａ３と時間Ｔ１の長さとの関係を表すテーブルである。図８のＥはＡ２、Ａ１と時間Ｔ２の長さとの関係を表すテーブルである。Ｂ〜Ｅのテーブルの書式は同じであるので、Ｂのテーブルについて詳細に説明し、他のテーブルの説明を省略する。
【００６６】
図８のＢにおいて列８００はＡ９の値を表す。列８０２はＡ８の値を表す。列８０４はＡ９およびＡ８の値により決まる時間Ｔ３の長さを表す。時間の長さはクロック１１０のクロック数で表す。例えば列８００でＡ９の値が‘０’、列８０２でＡ８の値が‘１’に設定された場合、時間Ｔ３の長さは１すなわちクロック１周期分の長さとなる。同様に時間Ｔ４、Ｔ１、およびＴ２についてもＣ、Ｄ、およびＥに基づいて時間の長さを設定することが出来る。
【００６７】
図８のＦにおいて列８０６はＡ０の値を表す。列８０８はＡ０の値に対応するメモリ装置１０２の動作モードを表す。Ａ０が‘０’の場合、メモリ装置１０２はＥＣＣが無効、すなわち書き込みデータに対応するＥＣＣデータがないものとしてデータの書き込み処理を行う。Ａ０が‘１’の場合、メモリ装置１０２はＥＣＣが有効、すなわち書き込みデータに対応するＥＣＣデータがあるものとしてデータの書き込み処理を行う。Ａ０によりメモリ装置１０２の動作モードを電源投入時に設定することができ、ＷＤＱＳ５０４によりメモリに送信する動作通知信号を不要とすることが出来る。これによりメモリ装置１０２へのデータの書き込み速度を向上させることが出来る。
[メモリの動作フローチャート]
図９はコントローラ１００からメモリ装置１０２へのデータ書き込み処理におけるメモリ装置１０２の動作フローチャート図である。電源が投入されるとメモリ装置１０２の第二制御部１６０はコントローラ１００から受信したコマンド信号１１２に従いＥＣＣ処理を有効にするか等の動作モードを設定する（Ｓ１００）。第二制御部１６０はコントローラ１００から受信したアドレス信号１１４に従い記憶部１６６の特定のアドレスをアクセス可能状態にする（Ｓ１０２）。第二制御部１６０はコマンド信号１１２により書き込み命令を受けると記憶部１６６を書き込みモードに設定する（Ｓ１０４）。
【００６８】
受信部３２４は動作通知信号を受信した場合（Ｓ１０６、ＹＥＳ）、データを受信するとともに第二制御部１６０へＥＣＣ処理をする旨の要求信号３４２を送信する（Ｓ１１０）。エラー訂正部３２０は受信したデータに基づいてＥＣＣを計算する（Ｓ１１２）。また受信部３２４はＥＣＣデータを受信し、エラー訂正部３２０へ送信する（Ｓ１１４）。エラー訂正部３２０は受信したデータに基づいて生成したＥＣＣと受信したＥＣＣとを比較しエラー検出処理を行う（Ｓ１１６）。
【００６９】
エラー検出処理の結果エラーがあった場合（Ｓ１１８、ＹＥＳ）、そのエラーが訂正可能であれば（Ｓ１２０、ＹＥＳ）エラー訂正部３２０はデータのエラー訂正処理を行い、記憶部１６６にエラー訂正後のデータを送信する（Ｓ１２２）。エラー訂正後、エラー訂正部３２０はＥＣＣを削除する（Ｓ１３０）。第二制御部１６０は次のコマンド信号１１２およびアドレス信号１１４を受信するまで待機状態となる。ステップＳ１３０において、エラー訂正部３２０はＥＣＣを削除せずにデータと共に記憶部１６６に送信しても良い。
【００７０】
エラー検出処理の結果エラーがあった場合（Ｓ１１８、ＹＥＳ）、そのエラーが訂正不可能であれば（Ｓ１２０、ＮＯ）エラー訂正部３２０はエラー検出信号を第二制御部１６０に送信する（Ｓ１２４）。第二制御部１６０はＲＤＱＳ生成部３０２に生成信号３４０を送信する。ＲＤＱＳ生成部３０２はエラー通知信号を送信部３１０に送信する。送信部３１０はＲＤＱＳ信号によりエラー通知信号をコントローラ１００に送信する。エラー訂正部３２０はエラー訂正できなかったデータを削除する（Ｓ１２６）。またエラー訂正部３２０は受信したＥＣＣを削除する（Ｓ１３０）。
【００７１】
エラー検出処理の結果エラーがなかった場合（Ｓ１１８、ＮＯ）、エラー訂正部３２０はＥＣＣを削除すると共にデータを記憶部１６６に送信する（Ｓ１３０）。
【００７２】
受信部３２４は動作通知信号を受信しない場合（Ｓ１０６、ＮＯ）、データを受信する（Ｓ１０７）。動作モードの設定においてＥＣＣ処理を有効にしている場合（Ｓ１０８、ＹＥＳ）、エラー訂正部３２０はＥＣＣの計算を行う（Ｓ１１２）。メモリ装置１０２の動作モード設定時にＥＣＣ処理を有効にしておくことにより、エラー訂正部３２０は動作通知信号によらずＥＣＣ処理が可能となる。これにより動作通知信号が不要になりデータの書き込み処理速度を向上させることが出来る。また動作モード設定時にＥＣＣ処理を無効にしていても、動作通知信号をもちいることで特定のデータのみに対してＥＣＣ処理を実行することも可能となる。動作モードの設定においてＥＣＣ処理を無効にしている場合（Ｓ１０８、ＮＯ）、エラー訂正部３２０はＥＣＣ処理を行うことなく受信したデータを記憶部１６６に送信する。
【００７３】
図１０はコントローラ１００がメモリ装置１０２からデータを読み出す場合のメモリ装置１０２の処理を説明するフローチャート図である。電源が投入されるとメモリ装置１０２の第二制御部１６０はコントローラ１００から受信したコマンド信号１１２に従いＥＣＣ処理を有効にするか等の動作モードを設定する（Ｓ２００）。第二制御部１６０はコントローラ１００から受信したアドレス信号１１４に従い記憶部１６６の特定のアドレスをアクセス可能状態にする（Ｓ２０２）。第二制御部１６０はコマンド信号１１２により読み出し命令を受けると記憶部１６６を読み出しモードに設定する（Ｓ２０４）。
【００７４】
動作モードの設定においてＥＣＣ処理を有効にしている場合（Ｓ２０６、ＹＥＳ）、符号生成部３０４は記憶部１６６から読み出されバス幅調整部３０８から出力されたデータに基づいてＥＣＣの計算を行う（Ｓ２１２）。送信部３１０は生成したＥＣＣ２２０をコントローラ１００へ送信する（Ｓ２１４）。また送信部３１０はデータ２１８をコントローラ１００へ送信する（Ｓ２１８）。データの書き込み時にデータと共にＥＣＣを記憶部１６６に記憶している場合、符号生成部３０４は読み出したデータに対し記憶部１６６に記憶していたＥＣＣを用いてエラー訂正処理をすることもできる（Ｓ２１２）。
【００７５】
動作モードの設定においてＥＣＣ処理を無効にしている場合であっても（Ｓ２０６、ＮＯ）、動作通知信号を出力したい場合（Ｓ２１６，ＹＥＳ）、第二制御部１６０はＲＤＱＳ生成部３０２に生成信号３４０を送信する。また符合生成部３０４はＥＣＣ２２０の計算をおこない（Ｓ２１２）、ＥＣＣ２２０をコントローラへ送信する（Ｓ２１４）。送信部３１０は生成したＥＣＣ２２０をコントローラ１００へ送信する（Ｓ２１４）。また送信部３１０はデータ２１８をコントローラ１００へ送信する（Ｓ２１８）。動作通知信号を出力しない場合（Ｓ２１６、ＮＯ）、送信部３１０は記憶部１６６から受信したデータ２１８をコントローラ１００へ送信する（Ｓ２１８）。
【００７６】
メモリ装置１０２の動作モード設定時にＥＣＣ処理を有効にしておくことにより、動作通知信号によらずＥＣＣ処理が可能となる。これにより動作通知信号が不要になりデータの読み出し処理速度を向上させることが出来る。また動作モード設定時にＥＣＣ処理を無効にしていても、動作通知信号を出力することにより特定のデータのみに対してコントローラ１００でのＥＣＣ処理を実行することも可能となる。
[コントローラの動作フローチャート]
図１１はコントローラ１００からメモリ装置１０２へのデータ書き込み処理を説明するコントローラ１００の動作フローチャート図である。コントローラ１００の第一制御部１５０はメモリ装置１０２に対しＥＣＣ処理を有効にするか等の動作モードを設定するためのコマンド信号１１２を送信する（Ｓ３００）。第一制御部１５０はメモリ装置１０２に対しデータを書き込むアドレスを指定するアドレス信号１１４を送信する（Ｓ３０２）。第一制御部１５０はコマンド信号１１２によりメモリ装置１０２に書き込み命令を送信しメモリ装置１０２を書き込みモードに設定する（Ｓ３０４）。
【００７７】
動作モードの設定においてメモリ装置１０２でのＥＣＣ処理を有効にしている場合（Ｓ３０６、ＹＥＳ）、符号生成部４１４は内部回路１５６から読み出されたデータに基づいてＥＣＣの計算を行う（Ｓ３１２）。送信部４１８は生成したＥＣＣ１２０をメモリ装置１０２へ送信する（Ｓ３１４）。また送信部４１８はデータ１１８をメモリ装置１０２へ送信する（Ｓ３１８）。
【００７８】
動作モードの設定においてＥＣＣ処理を無効にしている場合であっても（Ｓ３０６、ＮＯ）、動作通知信号を出力したい場合（Ｓ３１６，ＹＥＳ）、第一制御部１５０はＷＤＱＳ生成部４１２に生成信号４３０を送信する。また符合生成部４１４はＥＣＣ１２０の計算をおこない（Ｓ３１２）、ＥＣＣ１２０をコントローラへ送信する（Ｓ３１４）。送信部４１８は生成したＥＣＣ１２０をメモリ装置１０２へ送信する（Ｓ３１４）。また送信部４１８はデータ１１８をメモリ装置１０２へ送信する（Ｓ３１８）。動作通知信号を出力しない場合（Ｓ３１６、ＮＯ）、送信部４１８は内部回路１５６から受信したデータ１１８をメモリ装置１０２へ送信する（Ｓ３１８）。
【００７９】
メモリ装置１０２の動作モード設定時にＥＣＣ処理を有効にしておくことにより、メモリ装置１０２は動作通知信号によらずＥＣＣ処理が可能となる。これにより動作通知信号が不要になりメモリ装置１０２からのデータの読み出し処理速度を向上させることが出来る。また動作モード設定時にＥＣＣ処理を無効にしていても、動作通知信号を出力することにより特定のデータのみに対してメモリ装置１０２でのＥＣＣ処理を実行することも可能となる。
【００８０】
図１２はメモリ装置１０２からコントローラ１００へのデータ読み出し処理を説明するコントローラ１００の動作フローチャート図である。コントローラ１００の第一制御部１５０はＥＣＣ処理を有効にするか等の動作モードを設定するコマンド信号１１２をメモリ装置１０２に送信する（Ｓ４００）。第一制御部１５０は読み出したいデータが記憶されたメモリ装置１０２のアドレスを指定するアドレス信号１１４を送信する（Ｓ４０２）。第一制御部１５０はメモリ装置１０２にコマンド信号１１２により読み出し命令を送信し、メモリ装置１０２を読み出しモードに設定する（Ｓ４０４）。
【００８１】
受信部４００は動作通知信号を受信した場合（Ｓ４０６、ＹＥＳ）、データを受信するとともに第一制御部１５０へＥＣＣ処理をする旨の要求信号４３２を送信する（Ｓ４１０）。エラー訂正部４０４は受信したデータに基づいてＥＣＣを計算する（Ｓ４１２）。また受信部４００はＥＣＣデータを受信し、エラー訂正部４０４へ送信する（Ｓ４１４）。エラー訂正部４０４は受信したデータに基づいて生成したＥＣＣと受信したＥＣＣとを比較しエラー検出処理を行う（Ｓ４１６）。
【００８２】
エラー検出処理の結果エラーがあった場合（Ｓ４１８、ＹＥＳ）、そのエラーが訂正可能であれば（Ｓ４２０、ＹＥＳ）エラー訂正部４０４はデータのエラー訂正処理を行い、内部回路１５６にエラー訂正後のデータを送信する（Ｓ４２２）。エラー訂正後、エラー訂正部４０４はＥＣＣを削除する（Ｓ４３０）。第一制御部１５０は次の読み出し命令を送信するまで待機状態となる。
【００８３】
エラー検出処理の結果エラーがあった場合（Ｓ４１８、ＹＥＳ）、そのエラーが訂正不可能であれば（Ｓ４２０、ＮＯ）エラー訂正部４０４はエラー検出信号を第一制御部１５０に送信する（Ｓ４２４）。これにより第一制御部１５０はエラーが訂正できなかったことを確認することが出来る。この場合、第一制御部１５０は再度メモリ装置１０２に対し読み出し命令を送ってもよい。エラー訂正部４０４はエラー訂正できなかったデータを削除する（Ｓ４２６）。またエラー訂正部４０４は受信したＥＣＣを削除する（Ｓ４３０）。
【００８４】
エラー検出処理の結果エラーがなかった場合（Ｓ４１８、ＮＯ）、エラー訂正部４０４はＥＣＣを削除すると共にデータを内部回路１５６に送信する（Ｓ４３０）。
【００８５】
受信部４００は動作通知信号を受信しない場合（Ｓ４０６、ＮＯ）、データを受信する（Ｓ４０７）。動作モードの設定においてＥＣＣ処理を有効にしている場合（Ｓ４０８、ＹＥＳ）、エラー訂正部４０４はＥＣＣの計算を行う（Ｓ４１２）。
【００８６】
メモリ装置１０２の動作モード設定時にＥＣＣ処理を有効にしておくことにより、メモリ装置１０２は動作通知信号によらずＥＣＣ処理が可能となる。この結果動作通知信号が不要になりデータの書き込み処理速度を向上させることが出来る。また動作モード設定時にＥＣＣ処理を無効にしていても、メモリ装置１０２は動作通知信号をもちいることで特定のデータのみに対してコントローラ１００にＥＣＣ処理を実行させることも可能となる。動作モードの設定においてＥＣＣ処理を無効にしている場合（Ｓ４０８、ＮＯ）、エラー訂正部４０４はＥＣＣ処理を行うことなく受信したデータを内部回路１５６に送信する。
【図面の簡単な説明】
【００８７】
【図１】メモリ装置へのデータ書き込みを表す情報処理システム図
【図２】メモリ装置からのデータ読み出しを表す情報処理システム図
【図３】メモリ装置のブロック図
【図４】コントローラのブロック図
【図５】メモリ装置へのデータ書き込みを表すタイムチャート図
【図６】メモリ装置からのデータ読み出しを表すタイムチャート図
【図７】メモリ装置に送信するコマンドおよびアドレスのタイムチャート図
【図８】メモリの動作モードを設定するコマンドの内容を表すテーブル図
【図９】メモリ装置へのデータ書き込みにおけるメモリ装置の動作フローチャート図
【図１０】メモリ装置からのデータ読み出しにおけるメモリ装置の動作フローチャート図
【図１１】メモリ装置へのデータ書き込みにおけるコントローラの動作フローチャート図
【図１２】メモリ装置からのデータ読み出しにおけるコントローラの動作フローチャート図
【符号の説明】
【００８８】
１００ コントローラ
１０２ メモリ装置
１１０ クロック
１１２ コマンド信号
１１４ アドレス信号
１１６、２１６       エラー通知信号
１１８、２１８       データ
１２０、２２０       ＥＣＣ
１５０ 第一制御部
１５２ 第一読み出し処理部
１５４ 第一書き込み処理部
１６０ 第二制御部
１６２ 第二読み出し処理部
１６４ 第二書き込み処理部
１６６ 記憶部
３２０ エラー訂正部
３２４ 受信部
３０２ ＲＤＱＳ生成部
３０４ 符号生成部
３０８  バス幅調整部
３１０ 送信部
３２０  エラー訂正部
３２４  受信部
３４０  生成信号
３４２  要求信号
３４４  エラー検出信号
１５６  内部回路
４００  受信部
４０４  エラー訂正部
４１２  ＷＤＱＳ生成部
４１４  符号生成部
４１８  送信部
４２０  クロック生成部
４３２ 要求信号
４３４  エラー検出信号
４３０  生成信号
【図１】
2010009383.tif 000003
【図２】
2010009383.tif 000004
【図３】
2010009383.tif 000005
【図４】
2010009383.tif 000006
【図５】
2010009383.tif 000007
【図６】
2010009383.tif 000008
【図７】
2010009383.tif 000009
【図８】
2010009383.tif 000010
【図９】
2010009383.tif 000011
【図１０】
2010009383.tif 000012
【図１１】
2010009383.tif 000013
【図１２】
2010009383.tif 000014