JP2004126911A - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- JP2004126911A JP2004126911A JP2002289769A JP2002289769A JP2004126911A JP 2004126911 A JP2004126911 A JP 2004126911A JP 2002289769 A JP2002289769 A JP 2002289769A JP 2002289769 A JP2002289769 A JP 2002289769A JP 2004126911 A JP2004126911 A JP 2004126911A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- program
- ecc
- cpu
- control device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、CPUがエラーの無いプログラムをメモリ30から直接読み込み、これを実行することを可能とする制御装置を提供する。
【解決手段】制御装置20は、CPU10が実行するプログラムデータと該プログラムデータに対応する基準のECCとを予め格納したメモリ30から該プログラムデータを受信し、該プログラムデータに基づいて対象のECCを計算するECC計算回路25と、基準のECCと対象のECCとを比較するECC比較器27と、基準のECCと対象のECCとの比較結果に基づいてプログラムデータのうちエラーデータを訂正するエラー訂正回路29とを備え、訂正後のプログラムデータをCPU10へ送信する。
【選択図】 図2
【解決手段】制御装置20は、CPU10が実行するプログラムデータと該プログラムデータに対応する基準のECCとを予め格納したメモリ30から該プログラムデータを受信し、該プログラムデータに基づいて対象のECCを計算するECC計算回路25と、基準のECCと対象のECCとを比較するECC比較器27と、基準のECCと対象のECCとの比較結果に基づいてプログラムデータのうちエラーデータを訂正するエラー訂正回路29とを備え、訂正後のプログラムデータをCPU10へ送信する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は制御装置に関する。
【0002】
【従来の技術】
従来からデジタルカメラの画像データ用記憶媒体、メモリカード、音声録音用の半導体メモリ等に、NAND型フラッシュメモリやNOR型フラッシュメモリが使用されている。近年、デジタル画像の高画質化等により、ますます大容量の半導体メモリが要求されている。
【0003】
一般に、NAND型フラッシュメモリはNOR型フラッシュメモリに比べ高集積化に優れているので、NAND型フラッシュメモリはNOR型フラッシュメモリよりも単位面積内に大きな容量を有し得る。また、NAND型フラッシュメモリは、NOR型フラッシュメモリに比べ、メモリセルへの書換えに要する消費電力が少なく、書換え速度も速い。従って、今後、NAND型フラッシュメモリの需要がますます高まるものと予想される。
【0004】
【発明が解決しようとする課題】
しかし、NOR型メモリやDRAMは従来からプログラムメモリおよびデータメモリとして使用されているが、NAND型フラッシュメモリはプログラムメモリではなくデータメモリとしてしか使用されなかった。これは、NAND型フラッシュメモリが主にエラービットを有することを前提として用いられているからである。
【0005】
NAND型フラッシュメモリは、各ページ毎に、データを格納するデータ領域のほかに、冗長メモリ領域を予め備える。この冗長メモリ領域には、例えば、エラーを検出しさらにエラーを訂正するECC(Error Correcting Code)が格納される。典型的には、1ページは、512バイトのデータ領域および16バイトの冗長メモリ領域で構成される。
【0006】
このようなNAND型フラッシュメモリに格納されたプログラムを実行するときには、1ページ分のデータの読み出しと同時に冗長メモリに格納されたECCも読み出され、一旦、揮発性メモリであるSRAMへ書き込まれる。このSRAMは、CPUに付随するメモリ、例えば、キャッシュメモリなどである。次に、ECCがチェックされ、エラー検出およびエラー訂正が実行された後、CPUがSRAMからプログラムコードを読み出して実行する。これらの読み出し動作並びにエラー検出および訂正は総てCPUが他のプログラムを実行することによって行われる。よって、NAND型フラッシュメモリに格納されたプログラムをCPUが実行するためには、NAND型フラッシュメモリからSRAMへプログラムデータを書き込む段階、SRAM上のデータのエラー検出・訂正を行う段階およびCPUがSRAMからプログラムデータを読み出す段階の3段階が必要であった。
【0007】
一般に、SRAMは、NAND型フラッシュメモリよりも集積度が低い。従って、プログラマは、NAND型フラッシュメモリに格納されているプログラムを如何にSRAMに格納するかを考慮する必要があった。即ち、プログラマは、SRAMのメモリ構成などのハードウェアを意識してプログラムを作成しなければならないという問題があった。
【0008】
また、NAND型フラッシュメモリからSRAMへプログラムコードを転送するためには前記の転送用のプログラムが必要である。この転送用プログラムを格納するために不揮発性メモリがさらに必要となり、コストを増加させてしまうという問題があった。
【0009】
一方で、データメモリおよびプログラムメモリに互いに異なる種類のメモリを使用することは製造コストを増加させる。従って、データメモリとしてNAND型フラッシュメモリを用い、尚且つ、プログラムメモリとしてNOR型フラッシュメモリを用いることはコストの観点から好ましくない。
【0010】
そこで、本発明の目的は、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、CPUがエラーの無いプログラムコードをメモリ30から直接読み込み、これを実行することを可能とする制御装置を提供することである。
【0011】
また、本発明の目的は、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、プログラマがハードウェアを意識することなくプログラムを作成することを可能とする制御装置を提供することである。
【0012】
【課題を解決するための手段】
本発明に従った実施の形態による制御装置は、CPUが実行するプログラムデータと該プログラムデータに対応する第1のエラー修正用コードとを予め格納したメモリから該プログラムデータを受信し、該プログラムデータに基づいて第2エラー修正用コードを計算するエラー修正用コード計算回路と、前記第1のエラー修正用コードと前記第2のエラー修正用コードとを比較するエラー修正用コード比較器と、前記第1のエラー修正用コードと前記第2のエラー修正用コードとの比較結果に基づいて前記プログラムデータのうちエラーデータを訂正するエラー訂正回路とを備え、訂正後の前記プログラムデータを前記CPUへ送信する。
【0013】
【発明の実施の形態】
以下、図面を参照し、本発明による実施の形態を説明する。尚、本実施の形態は本発明を限定するものではない。
【0014】
図1は、本発明に従った実施の形態によるNAND型フラッシュメモリ制御装置20を用いたプログラム処理システムのブロック図である。CPU10とNAND型フラッシュメモリ30(以下単に、メモリ30ともいう)との間にNAND型フラッシュメモリ制御装置20(以下単に、制御装置20ともいう)が通信可能に接続されている。
【0015】
CPU10は、実行しようとするプログラムが格納されているアドレスを発信し、そのアドレスをもとに受信したプログラムを処理する。
【0016】
メモリ30は、NAND型フラッシュメモリであるので、プログラムデータのほかに、プログラムデータのエラービットを訂正するために用いられるECC(Error Correcting Code)を予め格納する。ここで、メモリ30に予め格納されているECCは、プログラムデータのエラービットを検出するときに比較の基準となるので、以下、“基準のECC”ともいう。
【0017】
制御装置20は、メモリ30からプログラムデータをバッファリングし、プログラムデータのエラービットを訂正し、その後、CPU10へ訂正後のプログラムデータを送信する。
【0018】
CPU10と制御装置20との間には、内部アドレスバス、内部データバス、内部ステータスバスおよび内部ウェイト要求バスが接続されている。内部アドレスバスはCPU10が制御装置20へアドレスを出力するために用いられる。内部データバスは、制御装置20がCPU10へプログラムデータを送信するために用いられる。内部ステータスバスは、CPU10の内部ステータスを制御装置20へ出力するために用いられる。内部ウェイト要求バスは、制御装置20からCPU10を待機させるための信号を出力するために用いられる。
【0019】
制御装置20とメモリ30との間には、外部データバスおよび外部制御バスが接続されている。外部データバスは、制御装置20がメモリ30からプログラムデータを受信するために用いられる。外部制御バスは、制御装置20がメモリ30の所定のアドレスからデータを読み出す場合に制御装置20がメモリ30を制御するために用いられる。
【0020】
図2は、NAND型フラッシュメモリ制御装置20の第1の実施形態である制御装置20aのブロック図である。制御装置20aは、インタフェース回路21、データバッファ23、ECCコード計算回路25、ECCコード比較器27、並びに、エラー判定および訂正場所計算回路29を備える。
【0021】
インタフェース回路21は、プログラムを実行するCPU10が出力するアドレスを受信し、制御装置20aへそのアドレス値を送信する。データバッファ23は、アドレス値に従ってメモリ30からプログラムデータおよびECCを読み込み、これらを格納する。
【0022】
ECC計算回路25は、メモリ30からプログラムデータを受信し、このプログラムデータに基づいてECCを計算する。ここで、ECC計算回路25によって計算されたECCは、プログラムデータのエラービットを検出するときに比較の対象となるので、以下、“対象のECC”ともいう。
【0023】
ECC比較器27は、データバッファ23から基準のECCを獲得し、ECC計算回路25から対象のECCを獲得し、基準のECCと対象のECCとを比較する。
【0024】
エラー判定および訂正場所計算回路29は、ECC比較器27から比較結果を獲得し、エラーを判定し、そのエラービットの場所を計算する。データバッファ23に格納されているプログラムデータのうち、エラー判定および訂正場所計算回路29によって計算された場所のデータが訂正される。
【0025】
データバッファ23は、例えば、SRAMなどによって形成され得る。インタフェース回路21、ECCコード計算回路25、ECCコード比較器27、並びに、エラー判定および訂正場所計算回路29は、デジタルロジック回路として構成されている。
【0026】
図3は、制御装置20aの動作を示すタイミングチャートである。図2および図3を参照しつつ、制御装置20aの動作を説明する。
【0027】
まず、制御装置20aは、内部アドレスバスおよび内部ステータスバスを介して、CPU10が出力するアドレスおよびステータスを確認する。それにより、制御装置20aは、CPU10が実行しようとするプログラムがメモリ30に格納されているプログラムデータか否かを判断する。CPU10が実行しようとするプログラムがメモリ30に格納されていると判断した場合には、CPU10を待機させるために、インタフェース回路21がCPU10へ内部ウエイト要求バスを介して内部ウエイト要求をアサートする(S0)。
【0028】
次に、インタフェース回路10は、CPU10が出力したアドレス値に基づいたアドレス入力コマンドを実行する(S1)。これによって、制御装置20aは、CPU10が出力したアドレスに従ってメモリ30からCPU10が要求するプログラムを獲得することができる。
【0029】
次に、制御装置20aが、メモリ30から最初の1ページ分のプログラムデータを連続的に読み込み、データバッファ23へこれを格納する(S2)。
【0030】
プログラムデータがデータバッファ23へ格納される動作と並行して、ECC計算回路25は、このプログラムデータに基づいて“対象のECC”を算出する(S2)。このとき、ECC計算回路25は対象のECCを論理演算回路とラッチにより求める。好ましくは、ECC計算回路25は、データバッファ23を介することなく、プログラムデータをメモリ30から直接読み込んで、“対象のECC”を算出する。ただし、ECC計算回路25は、データバッファ23に一旦格納されたプログラムデータを読み込んで“対象のECC”を算出してもよい。
【0031】
次に、制御装置20aは、最初の1ページ分の“基準のECC”をメモリ30から読み込む(S3)。基準のECCはデータバッファ23へ格納される。最初の1ページのアドレス値は、図3に示すように、例えば、1000Hである。
【0032】
基準のECCはデータバッファ23からECC比較器27へ送信され、対象のECCはECC計算回路25からECC比較器27へ送信される。ECC比較器27は基準のECCと対象のECCとを比較する。好ましくは、ECC比較器27によるこの比較動作は、“基準のECC”をデータバッファ23へ格納する動作と並行して実行される。
【0033】
次に、エラー判定および訂正場所計算回路29がエラービットの検出およびその訂正を行う(S4)。エラー判定および訂正場所計算回路29は、ECC比較器27から基準のECCと対象のECCとの比較結果を獲得する。続いて、エラー判定および訂正場所計算回路29は、基準のECCに対して対象のECCが異なる場合にはそのページのデータにエラービットが在ると判定し、エラービットが在る場所を計算する。その計算結果に基づいて、データバッファ23に格納されているプログラムデータのうち、エラー判定および訂正場所計算回路29によって計算された場所のデータが訂正される。一方、基準のECCと対象のECCとが一致する場合には、エラー判定および訂正場所計算回路29はデータバッファ23に格納されているプログラムデータにエラービットが無いと判定する。
【0034】
次に、制御装置20aは、内部ウエイト要求をデアサートすると共に、CPU10に対しプログラムデータを送信し、CPU10がこのプログラムデータを処理する(S5)。
【0035】
CPU10が最初の1ページ目のプログラムデータ以外のアドレスを出力したときには、制御装置20aは該ページのプログラムデータを同様に読み込む。該ページのアドレス値は、例えば、3000Hである。該ページも1ページ目と同様に上述したステップS1からステップS5に従って処理される。尚、一般的な単位ページのデータ量を上述したが、本発明において単位ページのデータ量は特に限定しない。
【0036】
従来、プログラムデータの転送やエラービットの検出および訂正はCPUが転送用プログラムやエラー検出および訂正用のプログラムを実行することによって処理されていた。即ち、従来は、ソフトウェアを利用して、プログラムデータのエラービットの検出および訂正が行われていた。
【0037】
しかし、本実施の形態によれば、このエラービットの検出および訂正は、ECC計算回路25、ECC比較器27、並びに、エラー判定および訂正場所計算回路29によって処理される。ECC計算回路25、ECC比較器27、並びに、エラー判定および訂正場所計算回路29はいずれも論理演算回路である。よって、制御装置20aは、ソフトウェアを用いることなく、ハードウェアを用いてエラービットの検出および訂正を行う。それによって、CPU10はエラービットの検出および訂正のためのソフトウェアを処理する必要がなくなる。また、このようなソフトウェアを格納するための追加の格納部が不要となる。よって、本実施の形態によれば、プログラム処理システムのコストを低減することができる。
【0038】
図4は、NAND型フラッシュメモリ制御装置20の第2の実施形態である制御装置20bのブロック図である。本実施の形態は、専用のデータバッファを有さず、DMA(Direct Memory Access)コントローラ22を備えている点で第1の実施の形態と異なる。本実施の形態は、専用のデータバッファを有していないので、外部メモリ40(例えば、CPUに付随する外部SRAM)をバッファとして利用する。
【0039】
DMAコントローラ22は、CPUを介することなく、メモリ30内のプログラムデータを外部メモリ40へ転送することができる。よって、本実施の形態において、転送用プログラムは不要である。
【0040】
制御装置20bの動作を説明する。制御装置20bの動作のタイミングチャートは、図3に示したタイミングチャートと同様である。従って、図3および図4を参照して制御装置20bの動作を説明する。
【0041】
制御装置20bのステップS0における動作は、制御装置20aのステップS0における動作と同様である。
【0042】
次に、インタフェース回路10は、CPU10が出力したアドレス値に基づいたアドレス入力コマンドを実行する(S1)。これによって、DMAコントローラ22は、CPU10が出力したアドレスに従ってメモリ30から外部メモリ40へプログラムを転送することができる。
【0043】
次に、DMAコントローラ22は、メモリ30から最初の1ページ分のプログラムデータを連続的に外部メモリ40へ転送する(S2)。外部メモリ40へ転送されたプログラムデータは、随時、外部データバスを介して外部メモリ40からECC計算回路25へ送信される。ECC計算回路25は、外部メモリ40へのプログラムデータ転送に並行して、プログラムデータに基づいて“対象のECC”を計算する。
【0044】
次に、DMAコントローラ22は、最初の1ページ分の“基準のECC”をメモリ30から外部メモリ40へ転送する(S3)。基準のECCが外部メモリ40へ転送されたときに、随時、この基準のECCは、外部データバスを介して外部メモリ40からECC比較器27へ送信される。最初の1ページのアドレス値は、図3に示すように、例えば、1000Hである。
【0045】
対象のECCはECC計算回路25からECC比較器27へ送信される。ECC比較器27は基準のECCと対象のECCとを比較する。好ましくは、ECC比較器27によるこの比較動作は、“基準のECC”を外部メモリ40へ転送する動作と並行して実行される。
【0046】
次に、エラー判定および訂正場所計算回路29がエラービットの検出およびその訂正を行う(S4)。エラー判定および訂正場所計算回路29は、ECC比較器27から基準のECCと対象のECCとの比較結果を獲得する。続いて、エラー判定および訂正場所計算回路29は、基準のECCに対して対象のECCが異なる場合にはそのアドレスバスにエラービットが在ると判定し、エラービットが在る場所を計算する。その計算結果に基づいて、外部メモリ40に格納されているプログラムデータのうち、エラーと判定された場所のデータが訂正される。一方、基準のECCと対象のECCとが一致する場合には、エラー判定および訂正場所計算回路29は外部メモリ40に格納されているプログラムデータにエラービットが無いと判定する。
【0047】
次に、制御装置20bは、内部ウエイト要求をデアサートすると共に、外部メモリ40からCPU10へプログラムデータを送信し、CPU10がこのプログラムデータを処理する(S5)。
【0048】
本実施の形態によれば、第1の実施の形態と同様の効果を得ることができる。さらに、本実施の形態は、制御装置20b内にデータバッファを有しないので、第1の実施の形態よりも小型化され、コストが低下し得る。
【0049】
【発明の効果】
本発明に従った制御装置によれば、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、CPUがエラーの無いプログラムをメモリ30から直接読み込み、これを実行することができる。
【0050】
本発明に従った制御装置によれば、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、プログラマがハードウェアを意識することなくプログラムを作成することができる。
【図面の簡単な説明】
【図1】本発明に従った実施の形態によるNAND型フラッシュメモリ制御装置20を用いたプログラム処理システムのブロック図。
【図2】NAND型フラッシュメモリ制御装置20の第1の実施形態である制御装置20aのブロック図。
【図3】制御装置20aの動作を示すタイミングチャート。
【図4】NAND型フラッシュメモリ制御装置20の第2の実施形態である制御装置20bのブロック図。
【符号の説明】
10 CPU
20、20a、20b NAND型フラッシュメモリ制御装置
30 NAND型フラッシュメモリ
21 インタフェース回路
22 DMAコントローラ
23 データバッファ
25 ECCコード計算回路
27 ECCコード比較器
29 エラー判定および訂正場所計算回路
40 外部メモリ
【発明の属する技術分野】
本発明は制御装置に関する。
【0002】
【従来の技術】
従来からデジタルカメラの画像データ用記憶媒体、メモリカード、音声録音用の半導体メモリ等に、NAND型フラッシュメモリやNOR型フラッシュメモリが使用されている。近年、デジタル画像の高画質化等により、ますます大容量の半導体メモリが要求されている。
【0003】
一般に、NAND型フラッシュメモリはNOR型フラッシュメモリに比べ高集積化に優れているので、NAND型フラッシュメモリはNOR型フラッシュメモリよりも単位面積内に大きな容量を有し得る。また、NAND型フラッシュメモリは、NOR型フラッシュメモリに比べ、メモリセルへの書換えに要する消費電力が少なく、書換え速度も速い。従って、今後、NAND型フラッシュメモリの需要がますます高まるものと予想される。
【0004】
【発明が解決しようとする課題】
しかし、NOR型メモリやDRAMは従来からプログラムメモリおよびデータメモリとして使用されているが、NAND型フラッシュメモリはプログラムメモリではなくデータメモリとしてしか使用されなかった。これは、NAND型フラッシュメモリが主にエラービットを有することを前提として用いられているからである。
【0005】
NAND型フラッシュメモリは、各ページ毎に、データを格納するデータ領域のほかに、冗長メモリ領域を予め備える。この冗長メモリ領域には、例えば、エラーを検出しさらにエラーを訂正するECC(Error Correcting Code)が格納される。典型的には、1ページは、512バイトのデータ領域および16バイトの冗長メモリ領域で構成される。
【0006】
このようなNAND型フラッシュメモリに格納されたプログラムを実行するときには、1ページ分のデータの読み出しと同時に冗長メモリに格納されたECCも読み出され、一旦、揮発性メモリであるSRAMへ書き込まれる。このSRAMは、CPUに付随するメモリ、例えば、キャッシュメモリなどである。次に、ECCがチェックされ、エラー検出およびエラー訂正が実行された後、CPUがSRAMからプログラムコードを読み出して実行する。これらの読み出し動作並びにエラー検出および訂正は総てCPUが他のプログラムを実行することによって行われる。よって、NAND型フラッシュメモリに格納されたプログラムをCPUが実行するためには、NAND型フラッシュメモリからSRAMへプログラムデータを書き込む段階、SRAM上のデータのエラー検出・訂正を行う段階およびCPUがSRAMからプログラムデータを読み出す段階の3段階が必要であった。
【0007】
一般に、SRAMは、NAND型フラッシュメモリよりも集積度が低い。従って、プログラマは、NAND型フラッシュメモリに格納されているプログラムを如何にSRAMに格納するかを考慮する必要があった。即ち、プログラマは、SRAMのメモリ構成などのハードウェアを意識してプログラムを作成しなければならないという問題があった。
【0008】
また、NAND型フラッシュメモリからSRAMへプログラムコードを転送するためには前記の転送用のプログラムが必要である。この転送用プログラムを格納するために不揮発性メモリがさらに必要となり、コストを増加させてしまうという問題があった。
【0009】
一方で、データメモリおよびプログラムメモリに互いに異なる種類のメモリを使用することは製造コストを増加させる。従って、データメモリとしてNAND型フラッシュメモリを用い、尚且つ、プログラムメモリとしてNOR型フラッシュメモリを用いることはコストの観点から好ましくない。
【0010】
そこで、本発明の目的は、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、CPUがエラーの無いプログラムコードをメモリ30から直接読み込み、これを実行することを可能とする制御装置を提供することである。
【0011】
また、本発明の目的は、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、プログラマがハードウェアを意識することなくプログラムを作成することを可能とする制御装置を提供することである。
【0012】
【課題を解決するための手段】
本発明に従った実施の形態による制御装置は、CPUが実行するプログラムデータと該プログラムデータに対応する第1のエラー修正用コードとを予め格納したメモリから該プログラムデータを受信し、該プログラムデータに基づいて第2エラー修正用コードを計算するエラー修正用コード計算回路と、前記第1のエラー修正用コードと前記第2のエラー修正用コードとを比較するエラー修正用コード比較器と、前記第1のエラー修正用コードと前記第2のエラー修正用コードとの比較結果に基づいて前記プログラムデータのうちエラーデータを訂正するエラー訂正回路とを備え、訂正後の前記プログラムデータを前記CPUへ送信する。
【0013】
【発明の実施の形態】
以下、図面を参照し、本発明による実施の形態を説明する。尚、本実施の形態は本発明を限定するものではない。
【0014】
図1は、本発明に従った実施の形態によるNAND型フラッシュメモリ制御装置20を用いたプログラム処理システムのブロック図である。CPU10とNAND型フラッシュメモリ30(以下単に、メモリ30ともいう)との間にNAND型フラッシュメモリ制御装置20(以下単に、制御装置20ともいう)が通信可能に接続されている。
【0015】
CPU10は、実行しようとするプログラムが格納されているアドレスを発信し、そのアドレスをもとに受信したプログラムを処理する。
【0016】
メモリ30は、NAND型フラッシュメモリであるので、プログラムデータのほかに、プログラムデータのエラービットを訂正するために用いられるECC(Error Correcting Code)を予め格納する。ここで、メモリ30に予め格納されているECCは、プログラムデータのエラービットを検出するときに比較の基準となるので、以下、“基準のECC”ともいう。
【0017】
制御装置20は、メモリ30からプログラムデータをバッファリングし、プログラムデータのエラービットを訂正し、その後、CPU10へ訂正後のプログラムデータを送信する。
【0018】
CPU10と制御装置20との間には、内部アドレスバス、内部データバス、内部ステータスバスおよび内部ウェイト要求バスが接続されている。内部アドレスバスはCPU10が制御装置20へアドレスを出力するために用いられる。内部データバスは、制御装置20がCPU10へプログラムデータを送信するために用いられる。内部ステータスバスは、CPU10の内部ステータスを制御装置20へ出力するために用いられる。内部ウェイト要求バスは、制御装置20からCPU10を待機させるための信号を出力するために用いられる。
【0019】
制御装置20とメモリ30との間には、外部データバスおよび外部制御バスが接続されている。外部データバスは、制御装置20がメモリ30からプログラムデータを受信するために用いられる。外部制御バスは、制御装置20がメモリ30の所定のアドレスからデータを読み出す場合に制御装置20がメモリ30を制御するために用いられる。
【0020】
図2は、NAND型フラッシュメモリ制御装置20の第1の実施形態である制御装置20aのブロック図である。制御装置20aは、インタフェース回路21、データバッファ23、ECCコード計算回路25、ECCコード比較器27、並びに、エラー判定および訂正場所計算回路29を備える。
【0021】
インタフェース回路21は、プログラムを実行するCPU10が出力するアドレスを受信し、制御装置20aへそのアドレス値を送信する。データバッファ23は、アドレス値に従ってメモリ30からプログラムデータおよびECCを読み込み、これらを格納する。
【0022】
ECC計算回路25は、メモリ30からプログラムデータを受信し、このプログラムデータに基づいてECCを計算する。ここで、ECC計算回路25によって計算されたECCは、プログラムデータのエラービットを検出するときに比較の対象となるので、以下、“対象のECC”ともいう。
【0023】
ECC比較器27は、データバッファ23から基準のECCを獲得し、ECC計算回路25から対象のECCを獲得し、基準のECCと対象のECCとを比較する。
【0024】
エラー判定および訂正場所計算回路29は、ECC比較器27から比較結果を獲得し、エラーを判定し、そのエラービットの場所を計算する。データバッファ23に格納されているプログラムデータのうち、エラー判定および訂正場所計算回路29によって計算された場所のデータが訂正される。
【0025】
データバッファ23は、例えば、SRAMなどによって形成され得る。インタフェース回路21、ECCコード計算回路25、ECCコード比較器27、並びに、エラー判定および訂正場所計算回路29は、デジタルロジック回路として構成されている。
【0026】
図3は、制御装置20aの動作を示すタイミングチャートである。図2および図3を参照しつつ、制御装置20aの動作を説明する。
【0027】
まず、制御装置20aは、内部アドレスバスおよび内部ステータスバスを介して、CPU10が出力するアドレスおよびステータスを確認する。それにより、制御装置20aは、CPU10が実行しようとするプログラムがメモリ30に格納されているプログラムデータか否かを判断する。CPU10が実行しようとするプログラムがメモリ30に格納されていると判断した場合には、CPU10を待機させるために、インタフェース回路21がCPU10へ内部ウエイト要求バスを介して内部ウエイト要求をアサートする(S0)。
【0028】
次に、インタフェース回路10は、CPU10が出力したアドレス値に基づいたアドレス入力コマンドを実行する(S1)。これによって、制御装置20aは、CPU10が出力したアドレスに従ってメモリ30からCPU10が要求するプログラムを獲得することができる。
【0029】
次に、制御装置20aが、メモリ30から最初の1ページ分のプログラムデータを連続的に読み込み、データバッファ23へこれを格納する(S2)。
【0030】
プログラムデータがデータバッファ23へ格納される動作と並行して、ECC計算回路25は、このプログラムデータに基づいて“対象のECC”を算出する(S2)。このとき、ECC計算回路25は対象のECCを論理演算回路とラッチにより求める。好ましくは、ECC計算回路25は、データバッファ23を介することなく、プログラムデータをメモリ30から直接読み込んで、“対象のECC”を算出する。ただし、ECC計算回路25は、データバッファ23に一旦格納されたプログラムデータを読み込んで“対象のECC”を算出してもよい。
【0031】
次に、制御装置20aは、最初の1ページ分の“基準のECC”をメモリ30から読み込む(S3)。基準のECCはデータバッファ23へ格納される。最初の1ページのアドレス値は、図3に示すように、例えば、1000Hである。
【0032】
基準のECCはデータバッファ23からECC比較器27へ送信され、対象のECCはECC計算回路25からECC比較器27へ送信される。ECC比較器27は基準のECCと対象のECCとを比較する。好ましくは、ECC比較器27によるこの比較動作は、“基準のECC”をデータバッファ23へ格納する動作と並行して実行される。
【0033】
次に、エラー判定および訂正場所計算回路29がエラービットの検出およびその訂正を行う(S4)。エラー判定および訂正場所計算回路29は、ECC比較器27から基準のECCと対象のECCとの比較結果を獲得する。続いて、エラー判定および訂正場所計算回路29は、基準のECCに対して対象のECCが異なる場合にはそのページのデータにエラービットが在ると判定し、エラービットが在る場所を計算する。その計算結果に基づいて、データバッファ23に格納されているプログラムデータのうち、エラー判定および訂正場所計算回路29によって計算された場所のデータが訂正される。一方、基準のECCと対象のECCとが一致する場合には、エラー判定および訂正場所計算回路29はデータバッファ23に格納されているプログラムデータにエラービットが無いと判定する。
【0034】
次に、制御装置20aは、内部ウエイト要求をデアサートすると共に、CPU10に対しプログラムデータを送信し、CPU10がこのプログラムデータを処理する(S5)。
【0035】
CPU10が最初の1ページ目のプログラムデータ以外のアドレスを出力したときには、制御装置20aは該ページのプログラムデータを同様に読み込む。該ページのアドレス値は、例えば、3000Hである。該ページも1ページ目と同様に上述したステップS1からステップS5に従って処理される。尚、一般的な単位ページのデータ量を上述したが、本発明において単位ページのデータ量は特に限定しない。
【0036】
従来、プログラムデータの転送やエラービットの検出および訂正はCPUが転送用プログラムやエラー検出および訂正用のプログラムを実行することによって処理されていた。即ち、従来は、ソフトウェアを利用して、プログラムデータのエラービットの検出および訂正が行われていた。
【0037】
しかし、本実施の形態によれば、このエラービットの検出および訂正は、ECC計算回路25、ECC比較器27、並びに、エラー判定および訂正場所計算回路29によって処理される。ECC計算回路25、ECC比較器27、並びに、エラー判定および訂正場所計算回路29はいずれも論理演算回路である。よって、制御装置20aは、ソフトウェアを用いることなく、ハードウェアを用いてエラービットの検出および訂正を行う。それによって、CPU10はエラービットの検出および訂正のためのソフトウェアを処理する必要がなくなる。また、このようなソフトウェアを格納するための追加の格納部が不要となる。よって、本実施の形態によれば、プログラム処理システムのコストを低減することができる。
【0038】
図4は、NAND型フラッシュメモリ制御装置20の第2の実施形態である制御装置20bのブロック図である。本実施の形態は、専用のデータバッファを有さず、DMA(Direct Memory Access)コントローラ22を備えている点で第1の実施の形態と異なる。本実施の形態は、専用のデータバッファを有していないので、外部メモリ40(例えば、CPUに付随する外部SRAM)をバッファとして利用する。
【0039】
DMAコントローラ22は、CPUを介することなく、メモリ30内のプログラムデータを外部メモリ40へ転送することができる。よって、本実施の形態において、転送用プログラムは不要である。
【0040】
制御装置20bの動作を説明する。制御装置20bの動作のタイミングチャートは、図3に示したタイミングチャートと同様である。従って、図3および図4を参照して制御装置20bの動作を説明する。
【0041】
制御装置20bのステップS0における動作は、制御装置20aのステップS0における動作と同様である。
【0042】
次に、インタフェース回路10は、CPU10が出力したアドレス値に基づいたアドレス入力コマンドを実行する(S1)。これによって、DMAコントローラ22は、CPU10が出力したアドレスに従ってメモリ30から外部メモリ40へプログラムを転送することができる。
【0043】
次に、DMAコントローラ22は、メモリ30から最初の1ページ分のプログラムデータを連続的に外部メモリ40へ転送する(S2)。外部メモリ40へ転送されたプログラムデータは、随時、外部データバスを介して外部メモリ40からECC計算回路25へ送信される。ECC計算回路25は、外部メモリ40へのプログラムデータ転送に並行して、プログラムデータに基づいて“対象のECC”を計算する。
【0044】
次に、DMAコントローラ22は、最初の1ページ分の“基準のECC”をメモリ30から外部メモリ40へ転送する(S3)。基準のECCが外部メモリ40へ転送されたときに、随時、この基準のECCは、外部データバスを介して外部メモリ40からECC比較器27へ送信される。最初の1ページのアドレス値は、図3に示すように、例えば、1000Hである。
【0045】
対象のECCはECC計算回路25からECC比較器27へ送信される。ECC比較器27は基準のECCと対象のECCとを比較する。好ましくは、ECC比較器27によるこの比較動作は、“基準のECC”を外部メモリ40へ転送する動作と並行して実行される。
【0046】
次に、エラー判定および訂正場所計算回路29がエラービットの検出およびその訂正を行う(S4)。エラー判定および訂正場所計算回路29は、ECC比較器27から基準のECCと対象のECCとの比較結果を獲得する。続いて、エラー判定および訂正場所計算回路29は、基準のECCに対して対象のECCが異なる場合にはそのアドレスバスにエラービットが在ると判定し、エラービットが在る場所を計算する。その計算結果に基づいて、外部メモリ40に格納されているプログラムデータのうち、エラーと判定された場所のデータが訂正される。一方、基準のECCと対象のECCとが一致する場合には、エラー判定および訂正場所計算回路29は外部メモリ40に格納されているプログラムデータにエラービットが無いと判定する。
【0047】
次に、制御装置20bは、内部ウエイト要求をデアサートすると共に、外部メモリ40からCPU10へプログラムデータを送信し、CPU10がこのプログラムデータを処理する(S5)。
【0048】
本実施の形態によれば、第1の実施の形態と同様の効果を得ることができる。さらに、本実施の形態は、制御装置20b内にデータバッファを有しないので、第1の実施の形態よりも小型化され、コストが低下し得る。
【0049】
【発明の効果】
本発明に従った制御装置によれば、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、CPUがエラーの無いプログラムをメモリ30から直接読み込み、これを実行することができる。
【0050】
本発明に従った制御装置によれば、プログラムメモリとしてNAND型フラッシュメモリを使用しながらも、プログラマがハードウェアを意識することなくプログラムを作成することができる。
【図面の簡単な説明】
【図1】本発明に従った実施の形態によるNAND型フラッシュメモリ制御装置20を用いたプログラム処理システムのブロック図。
【図2】NAND型フラッシュメモリ制御装置20の第1の実施形態である制御装置20aのブロック図。
【図3】制御装置20aの動作を示すタイミングチャート。
【図4】NAND型フラッシュメモリ制御装置20の第2の実施形態である制御装置20bのブロック図。
【符号の説明】
10 CPU
20、20a、20b NAND型フラッシュメモリ制御装置
30 NAND型フラッシュメモリ
21 インタフェース回路
22 DMAコントローラ
23 データバッファ
25 ECCコード計算回路
27 ECCコード比較器
29 エラー判定および訂正場所計算回路
40 外部メモリ
Claims (6)
- CPUが実行するプログラムデータと該プログラムデータに対応する第1のエラー修正用コードとを予め格納したメモリから該プログラムデータを受信し、該プログラムデータに基づいて第2エラー修正用コードを計算するエラー修正用コード計算回路と、
前記第1のエラー修正用コードと前記第2のエラー修正用コードとを比較するエラー修正用コード比較器と、
前記第1のエラー修正用コードと前記第2のエラー修正用コードとの比較結果に基づいて前記プログラムデータのうちエラーデータを訂正するエラー訂正回路とを備え、
訂正後の前記プログラムデータを前記CPUへ送信する制御装置。 - 前記CPUから前記メモリへ所定のアドレス値を送信するインタフェース回路と、
当該CPU制御装置が前記所定のアドレス値に従って前記メモリから読み込んだ前記プログラムデータおよび前記第1のエラー修正用コードを格納する格納部とをさらに備え、
前記格納部が前記プログラムを格納するときに並行して、前記エラー修正用コード計算回路が、前記メモリから該プログラムを受信して前記第2のエラー修正用コードを計算することを特徴とする請求項1に記載の制御装置。 - 前記CPUから前記メモリへ所定のアドレス値を送信するインタフェース回路と、
前記所定のアドレス値に従って前記メモリから前記プログラムおよび前記第1のエラー修正用コードを外部に設けられた格納部へ転送するDMAコントローラとをさらに備え、
前記エラー修正用コード計算回路が、前記格納部から前記プログラムを受信して第2のエラー修正用コードを計算し、
前記格納部から前記CPUへ訂正後の前記プログラムを送信することを特徴とする請求項1に記載の制御装置。 - 前記インタフェース回路は、前記CPUから最初に読み込むページのプログラムデータのアドレス値を受け取るときに前記CPUへ待機命令を発し、前記CPUへ該ページの訂正後のプログラムデータを送信した後に該CPUへ実行命令を発することを特徴とする請求項2または請求項3に記載の制御装置。
- 前記メモリはNAND型フラッシュメモリであることを特徴とする請求項1から請求項4のいずれかに記載の制御装置。
- 前記格納部はSRAMであることを特徴とする請求項2または請求項3に記載の制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002289769A JP2004126911A (ja) | 2002-10-02 | 2002-10-02 | 制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002289769A JP2004126911A (ja) | 2002-10-02 | 2002-10-02 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004126911A true JP2004126911A (ja) | 2004-04-22 |
Family
ID=32281834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002289769A Pending JP2004126911A (ja) | 2002-10-02 | 2002-10-02 | 制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004126911A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008287492A (ja) * | 2007-05-17 | 2008-11-27 | Murata Mach Ltd | 電子機器 |
WO2009121022A3 (en) * | 2008-03-28 | 2010-01-07 | Intel Corporation | Systems, methods, and apparatuses to save memory self-refresh power |
US7689895B2 (en) | 2005-05-24 | 2010-03-30 | Samsung Electronics Co., Ltd. | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory |
JP2011100156A (ja) * | 2004-08-17 | 2011-05-19 | Kpbo Co Ltd | アコースティック/エレクトリックギターの自動演奏及び録音装置 |
-
2002
- 2002-10-02 JP JP2002289769A patent/JP2004126911A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011100156A (ja) * | 2004-08-17 | 2011-05-19 | Kpbo Co Ltd | アコースティック/エレクトリックギターの自動演奏及び録音装置 |
US7689895B2 (en) | 2005-05-24 | 2010-03-30 | Samsung Electronics Co., Ltd. | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory |
JP2008287492A (ja) * | 2007-05-17 | 2008-11-27 | Murata Mach Ltd | 電子機器 |
WO2009121022A3 (en) * | 2008-03-28 | 2010-01-07 | Intel Corporation | Systems, methods, and apparatuses to save memory self-refresh power |
US8161356B2 (en) | 2008-03-28 | 2012-04-17 | Intel Corporation | Systems, methods, and apparatuses to save memory self-refresh power |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824499B2 (en) | Memory system architectures using a separate system control path or channel for processing error information | |
TWI658464B (zh) | 記憶體裝置以及記憶體模組 | |
US7836378B2 (en) | System to detect and identify errors in control information, read data and/or write data | |
US8365031B2 (en) | Soft error correction method, memory control apparatus and memory system | |
US8234463B2 (en) | Data processing apparatus, memory controller, and access control method of memory controller | |
US8127205B2 (en) | Error correction code generation method and memory control device | |
JP2007304781A (ja) | 半導体装置、及び起動方法 | |
US7689895B2 (en) | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory | |
CN105373345B (zh) | 存储器设备和模块 | |
JP2008090433A (ja) | メモリコントローラ、メモリシステム及びデータ転送方法 | |
US7752527B2 (en) | Microcontroller and RAM | |
US6680870B2 (en) | Memory device, data processing method and data processing program | |
KR102334739B1 (ko) | 메모리 모듈, 시스템, 및 그것의 에러 정정 방법 | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
JP2004126911A (ja) | 制御装置 | |
US11520719B2 (en) | Memory controller, memory system, and control method of memory system | |
US20090210758A1 (en) | Method for reducing data error when flash memory storage device using copy back command | |
JP3962853B2 (ja) | メモリデータ誤り訂正方法 | |
JP2007048090A (ja) | シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ | |
US10127107B2 (en) | Method for performing data transaction that selectively enables memory bank cuts and memory device therefor | |
TWI827138B (zh) | 半導體儲存裝置 | |
KR20080013316A (ko) | 메모리 제어 장치, 이를 가지는 메모리 시스템 및 메모리의오류 탐색 제어 방법 | |
JPH04115340A (ja) | 二重化記憶回路 | |
JPH06149685A (ja) | メモリエラー回復装置 | |
US20100107038A1 (en) | Cache controller and cache controlling method |