JP4762267B2 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP4762267B2
JP4762267B2 JP2008110346A JP2008110346A JP4762267B2 JP 4762267 B2 JP4762267 B2 JP 4762267B2 JP 2008110346 A JP2008110346 A JP 2008110346A JP 2008110346 A JP2008110346 A JP 2008110346A JP 4762267 B2 JP4762267 B2 JP 4762267B2
Authority
JP
Japan
Prior art keywords
data
block
write
memory
control circuit
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.)
Expired - Fee Related
Application number
JP2008110346A
Other languages
English (en)
Other versions
JP2008181670A (ja
Inventor
尚浩 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008110346A priority Critical patent/JP4762267B2/ja
Publication of JP2008181670A publication Critical patent/JP2008181670A/ja
Application granted granted Critical
Publication of JP4762267B2 publication Critical patent/JP4762267B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、半導体記憶装置に関し、特に、ブロック単位でデータの書換えが可能なフラッシュメモリを備えた半導体記憶装置に関する。
フラッシュメモリは、電気的にデータの消去および書換えができるROM(Read Only Memory)であり、現在、携帯電話、デジタルスチルカメラなどにおけるデータ記憶用のデバイスとして広く利用されている。フラッシュメモリのデータの書換えでは、通常では、フラッシュメモリ内の書換え対象となるデータを含むブロックが外部メモリに読出される。そして、この読出したブロックに、外部メモリの他の領域にあるデータが書込まれることによりブロックが更新され、その後、フラッシュメモリ内の読出しを行なったブロッックが消去され、消去されたブロックの位置に外部メモリ内の更新されたブロックが書込まれる。
このような通常のフラッシュメモリのデータの書込みに対して、たとえば、特許文献1では、データの書込みの高速化を図っている。すなわち、特許文献1では、EEPROM(Electrically Erasable Programmable Read Only Memory)を含むメモリカード装置において、バッファメモリを備える。データ書込み時に、外部からのデータがバッファメモリに送られ、その後、EEPROMのブロックがこのバッファメモリに読出される。バッファメモリでブロック内のデータの書換えが行なわれた後、このように更新が行なわれたブロックがEEPROMに戻される。
特開平5−46469号公報
しかしながら、上述の特許文献1では、外部からのデータがバッファメモリに送られた後、EEPROMのデータがバッファメモリに読出されるので、データの書込みの高速化がまだ十分に達成されない。
また、従来では、フラッシュメモリに対してのデータの読出しの高速化もまだ十分に達成されてない。
それゆえに、本発明の目的は、不揮発性メモリに対して高速にデータの書込みができる半導体記憶装置を提供することである。
また、本発明の他の目的は、不揮発性メモリに対して高速にデータの読出しができる半導体記憶装置を提供することである。
上記課題を解決するために、この発明に係わる半導体記憶装置は、複数のブロックを含み、ブロック単位でデータの書換えが可能な不揮発性メモリと、外部から送られてくる書込みデータを記憶するためのライトバッファと、少なくとも前記不揮発性メモリの1個分のブロックと同一の大きさのブロックを記憶するためのワークメモリと、前記ワークメモリと前記不揮発性メモリとを接続し、外部データバスよりもビット幅が広い内部データバスと、外部から書込み指示を示す制御信号と、アドレスと、書込みデータとが入力されたときには、前記ライトバッファへ書込みデータを取込ませる取込み制御と、前記取込み制御と並行して、前記アドレスで特定させる不揮発性メモリ内のブロックのすべてのデータを前記内部データバスを介して前記ワークメモリへ出力させ、前記不揮発性メモリ内の前記ブロックのすべてのデータを消去するとともに、前記ライトバッファ内の書込みデータを前記ワークメモリ内の前記ブロック内の前記アドレスに応じた位置に出力させ、その後、前記ワークメモリ内の前記ブロックのすべてのデータを前記内部データバスを介して前記不揮発性メモリ内の前記ブロックの位置へ出力させる書込み制御を行なう制御回路とを備える。
また、本発明に係わる半導体記憶装置は、複数のブロックを含み、ブロック単位でデータの書換えが可能な不揮発性メモリと、外部から送られてくるデータを記憶するためのライトバッファと、少なくとも前記不揮発性メモリの1個分のブロックと同一の大きさのブロックを記憶するためのワークメモリと、前記ワークメモリと前記不揮発性メモリとを接続し、外部データバスよりもビット幅が広い内部データバスと、不揮発性メモリのブロックのブロック番号を記憶する第1記憶部を含む制御回路とを備え、前記制御回路は、外部から書込み指示を示す制御信号と、アドレスと、書込みデータとが入力されたときには、前記ライトバッファへ書込みデータを取込ませ、前記アドレスで特定させる不揮発性メモリ内のブロックのすべてのデータを前記内部データバスを介して前記ワークメモリへ出力させ、前記不揮発性メモリ内の前記ブロックのすべてのデータを消去するとともに、前記ライトバッファ内の書込みデータを前記ワークメモリ内の前記ブロックの前記アドレスに応じた位置に出力させ、その後前記ワークメモリ内の前記ブロックのすべてのデータを前記内部データバスを介して前記不揮発性メモリ内の前記ブロックの位置へ出力させ、前記第1記憶部に前記ブロックの番号を格納させ、前記制御回路は、外部から読出し指示を示す制御信号とアドレスが入力されたときには、アドレスで特定されるブロックの番号と前記第1記憶部内のブロック番号が同一であるときには、前記ワークメモリ内の前記ブロック内の前記アドレスで特定されるデータを外部へ出力させ、同一でないときには、不揮発性メモリ内の前記アドレスで特定されるデータを外部へ出力させる。
この発明に係わる半導体記憶装置によれば、制御回路は、外部から書込み指示を示す制御信号と、アドレスと、書込みデータとが入力されたときには、ライトバッファへ書込みデータを取込ませる取込み制御と、この取込み制御と並行して、アドレスで特定させる不揮発性メモリ内のブロックのすべてのデータを内部データバスを介してワークメモリへ出力させ、不揮発性メモリ内の前記ブロックのすべてのデータを消去するとともに、ライトバッファ内の書込みデータをワークメモリ内の前記ブロック内のアドレスに応じた位置に出力させ、その後、ワークメモリ内の前記ブロックのすべてのデータを内部データバスを介して不揮発性メモリ内の前記ブロックの位置へ出力させる書込み制御を行なうので、書込みデータの不揮発性メモリへの書込みを高速に行なうことができる。
また、この発明に係わる半導体記憶装置によれば、制御回路は、外部から書込み指示を示す制御信号と、アドレスと、書込みデータとが入力されたときには、アドレスで特定させる不揮発性メモリ内のブロックのすべてのデータを内部データバスを介してワークメモリへ出力させ、第1記憶部に前記ブロックの番号を格納させ、制御回路は、外部から読出し指示を示す制御信号とアドレスが入力されたときには、アドレスで特定されるブロックの番号と第1記憶部内のブロック番号が同一であるときには、ワークメモリ内のブロック内のアドレスで特定されるデータを外部へ出力させ、同一でないときには、不揮発性メモリ内のアドレスで特定されるデータを外部へ出力させるので、不揮発性メモリからのデータの読出しを高速に行なうことができる。
以下、本発明の実施の形態について、図面を用いて説明する。
<第1の実施形態>
本実施の形態では、書込みデータのライトバッファへの取込みと並行して、フラッシュメモリ内のブロックのデータをワークメモリへ出力させる半導体記憶装置に関する。
(構成)
図1は、本実施の形態に係わる半導体記憶装置の構成を示す。同図を参照して、この半導体記憶装置100は、フラッシュメモリ10と、入出力バッファ11と、ライトバッファ12と、ワークメモリ13と、デコーダ14と、制御回路15と、データバス20と、アドレスバス21と、制御信号バス22と、高速バス16とを有する。
フラッシュメモリ10は、複数個のブロックで構成される。1個のブロックの大きさは、32Kワード(1ワードは32ビット)であり、m個のブロックにより、1つのバンクが構成される。
データバス20は、外部と入出力バッファ11との間で、書込みデータおよび読出しデータが流れるバスである。データバス20のバス幅は、たとえば32ビット幅である。
制御信号バス22は、外部と制御回路15との間で制御信号が流れるバスである。
高速バス16は、フラッシュメモリ10と、ワークメモリ13と、入出力バッファ11とをそれぞれ接続し、ライトバッファ12とワークメモリ13とを接続するバスである。高速バス16のバス幅は、たとえば128〜256ビット幅である。
入出力バッファ11は、データバス20から入力されるデータ(書込みデータ)、またはデータバス20へ出力されるデータ(読出しデータ)を一時的に記憶する。書込みデータおよび読出しデータの大きさは、たとえば32ビットである。
ライトバッファ12は、データバス20から入力されて入出力バッファ11に記憶されているデータ、つまり、書込みデータを記憶する。ライトバッファ12は、1つまたは複数の書込みデータを記憶する容量を有する。
入出力バッファ11およびライトバッファ12は、FIFO(First In First Out)形式でデータの入出力が行なわれる。
ワークメモリ13は、フラッシュメモリ10の1つのブロックのデータを記憶する容量を有する。ワークメモリ13は、フラッシュメモリ10から送られるブロックのデータを記憶する。ワークメモリ13は、ライトバッファ12から送られたデータを、上記記憶しているブロック内のデコードされたアドレスに応じた位置で記憶する。
デコーダ14は、アドレスバス21から入力されるアドレスをデコードする。
制御回路15は、書込み動作フラグ格納部17とブロック番号レジスタ18とを備える。
書込み動作フラグ格納部17は、外部から参照可能な書込み動作フラグを格納する。書込み動作フラグの値が「1」のときには、書込み動作が行なわれていることを示し、書込み動作フラグの値が「0」のときには、書込み動作が行なわれていないことを示す。
ブロック番号レジスタ18は、ワークメモリ13に格納されているブロックの番号を記憶する。
ここで、レジスタに格納されている値は、外部から参照および設定することが可能であり、フラグの値は、外部からは参照のみが可能であるものとする。これは、以下の実施形態でも同様であるものとする。
制御回路15は、制御信号バス22から入力される制御データに基づいて制御を行なう。
つまり、制御回路15は、書込み時に以下の制御を行なう。制御回路15は、書込み指示を示す制御信号を受けて、入出力バッファ11内のデータを、ライトバッファ12に出力させる。制御回路15は、このライトバッファへのデータの出力と並行して、デコーダ14によりデコードされたアドレスのデータを含むフラッシュメモリ10内のブロック(更新ブロック)を特定し、そのブロックのすべてのデータをフラッシュメモリ10から高速バス16を介して、ワークメモリ13へ取り出し、その後、この更新ブロックの番号をブロック番号レジスタ18に書込む。さらに、制御回路15は、制御回路15内の書込み動作フラグを「1」に設定し、その後、ライトバッファ12内のデータを、ワークメモリ13内のデコードされたアドレスに応じた位置に出力させ、フラッシュメモリ10内の更新ブロックのすべてのデータを消去する。そして、制御回路15は、ワークメモリ13内のすべてのデータを、高速バス16を介して、フラッシュメモリ10の更新ブロックに出力させる。制御回路15は、データの書込み終了後に、書込み動作フラグを「0」に設定する。
制御回路15は、読出し時において、以下の制御を行なう。制御回路15は、読出し指示を示す制御信号を受けて、デコーダ14によりデコードされたアドレスのデータを含むブロックを特定し、そのブロックのブロック番号と、ブロック番号レジスタ18に格納されているブロック番号とを比較する。制御回路15は、比較結果が一致であれば、ワークメモリ13内のデータを読出しデータとして、高速バス16を介して入出力バッファ11に出力させる。制御回路15は、比較結果が不一致であれば、デコードされたアドレスで特定されるフラッシュメモリ10内のブロックのデータを読出しデータとして、高速バス16を介して、入出力バッファ11へ出力させる。
(書込み処理の動作)
次に、この半導体記憶装置100の書込み処理の動作について説明する。図2は、書込み処理の動作手順を示すフローチャートである。
まず、外部より、書込み指示を示す制御信号と、書込みデータと、アドレスとが、それぞれ、制御回路15、入出力バッファ11、デコーダ14に入力される(ステップS301)。
制御回路15は、上記制御信号を受けて、入出力バッファ11内の書込みデータを、ライトバッファ12に出力させる。また、これと同時に、制御回路15は、デコーダ14でデコードされたアドレスのデータを含むフラッシュメモリ10内のブロックを更新ブロックとして特定し、更新ブロック内のすべてのデータを高速バス16を介してワークメモリ13へ出力させる。制御回路15は、この更新ブロックの番号をブロック番号レジスタ18に書込む(ステップS302)。
次に、制御回路15は、書込み動作フラグを「1」に設定し(ステップS303)、その後、ライトバッファ12内の書込みデータを、ワークメモリ13内のデコードされたアドレスに応じた位置に出力させる(ステップS304)。
制御回路15は、フラッシュメモリ10内の更新ブロック内のすべてのデータを消去する(ステップS305)。
次に、制御回路15は、ワークメモリ13に記憶されているすべてのデータを、フラッシュメモリ10の更新ブロックに出力させる(ステップS306)。
次に、制御回路15は、書込み動作フラグを「0」に設定する(ステップS307)。
(読出し処理の動作)
次に、この半導体記憶装置100の読出し処理の動作について説明する。図3は、読出し処理の動作手順を示すフローチャートである。
まず、外部より、読出し指示を示す制御信号と、アドレスとが、それぞれ、制御回路15、デコーダ14に入力される(ステップS401)。
制御回路15は、上記制御信号を受けて、デコーダ14でデコードされたアドレスのデータを含むブロックを特定し、そのブロックのブロック番号と、ブロック番号レジスタ18に格納されているブロックの番号とを比較する(ステップS402)。
制御回路15は、比較結果が一致であれば、ワークメモリ13に記憶されているデコードされたアドレスのデータを読出しデータとして、高速バス16を介して入出力バッファ11へ出力させる(ステップS403)。
制御回路15は、比較結果が不一致であれば、フラッシュメモリ10内のデコードされたアドレスのデータを、読出しデータとして、高速バス16を介して、入出力バッファ11へ出力させる(ステップS404)。
入出力バッファ11内の読出しデータは、データバス20を介して外部へ出力される(ステップS405)。
以上のように、本実施の形態に係わる半導体記憶装置では、制御回路15は、書込み指示を示す制御信号を受けると、入出力バッファ11内の書込みデータをライトバッファ12に出力させるのと同時に、デコードされたアドレスのデータを含むフラッシュメモリ10内のブロックを更新ブロックとして特定し、更新ブロック内のすべてのデータを高速バス16を介してワークメモリ13へ出力させるので、データの書込みを高速に行なうことができる。
また、制御回路15は、この更新ブロックの番号をブロック番号レジスタ18に書込み、制御回路15は、読出し指示を示す制御信号を受けて、デコードされたアドレスのデータを含むブロックを特定し、そのブロックのブロック番号とブロック番号レジスタ18に格納されているブロック番号とが一致していれば、ワークメモリ13内のデータを読出しデータとして、高速バス16を介して入出力バッファ11に出力させるので、データの読出しを高速に行なうことができる。
また、制御回路15は、書込みを指示する制御信号を受けると、ワークメモリ13に記憶されているすべてのデータがフラッシュメモリ10の更新ブロックに出力されるまで、書込み動作フラグの値を「1」に設定するので、外部では、この書込み動作フラグを参照して書込み動作フラグの値が「1」のときには、書込みを行なわないようにすることができる。
<第2の実施形態>
本実施の形態は、データの書込みに際して、フラッシュメモリ内のブロックのうち、有効なデータを含むブロックのみワークメモリへ出力させる半導体記憶装置に関する。
図4は、本実施の形態に係わる半導体記憶装置の構成を示す。同図の半導体記憶装置50の構成要素のうち、第1の実施形態に係わる半導体記憶装置100の構成要素と同一のものについては、同一の符号を付す。以下、第1の実施形態に係わる半導体記憶装置100と相違する点について説明する。
フラッシュメモリ56は、複数個のブロックを含み、有効性フラグ格納部57を含む。有効性フラグ格納部57は、ブロックごとに有効性フラグを格納する。有効性フラグの値が「1」のときには、対応するブロック内のデータが有効であることを示し、有効性フラグの値が「0」のときには、対応するブロック内のデータがすべて無効であることを示す。ここで、データが有効であるとは、そのデータが将来、使用される可能性のあるデータであることを意味し、データが無効であるとは、そのデータが将来、使用されることのないデータであることを意味し、上書きされてもよいことを意味する。フラッシュメモリ56のどのブロックにも未だ何も書込まれていないときには、すべてのブロックの有効性フラグは、「0」に設定されている。
制御回路55は、フラッシュメモリ56内のブロックにデータを書込んだときに、そのブロックの有効性フラグを「1」に設定する。
制御回路55は、フラッシュメモリ56内の更新ブロックの有効性フラグの値が「1」のときには、第1の実施形態と同様に書込みデータの書込みを行なう。
一方、制御回路55は、フラッシュメモリ56内の更新ブロックの有効性フラグの値が「0」のときには、フラッシュメモリ56内の更新ブロック内のすべてのデータを高速バス16を介してワークメモリ13へ出力させる処理を行なわず、フラッシュメモリ56内の更新ブロック内のすべてのデータを消去する処理を行なわない。
(書込み処理の動作)
次に、この半導体記憶装置50の書込み処理の動作について説明する。図5は、書込み処理の動作手順を示すフローチャートである。
まず、外部より、書込み指示を示す制御信号と、書込みデータと、アドレスとが、それぞれ、制御回路55、入出力バッファ11、デコーダ14に入力される(ステップS501)。
制御回路55は、上記制御信号を受けて、入出力バッファ11内の上記書込みデータを、ライトバッファ12に出力させる(ステップS502)。
制御回路55は、デコーダ14でデコードされたアドレスのデータを含むブロックを更新ブロックとして特定し、その更新ブロックの有効性フラグを調べる(ステップS503)。
制御回路55は、有効性フラグの値が「1」であれば、更新ブロック内のすべてのデータをフラッシュメモリ56から高速バス16を介して、ワークメモリ13へ出力させる(ステップS504)。
制御回路55は、更新ブロックの番号をブロック番号レジスタ18に書込む(ステップS505)。
次に、制御回路55は、書込み動作フラグを「1」に設定し(ステップS506)、その後、ライトバッファ12内の書込みデータを、ワークメモリ13内のデコードされたアドレスに応じた位置に出力させる(ステップS507)。
制御回路55は、フラッシュメモリ56内の更新ブロック内のすべてのデータを消去する(ステップS508)。
次に、制御回路55は、ワークメモリ13に記憶されているすべてのデータを、フラッシュメモリ56の更新ブロックに出力させる(ステップS509)。
次に、制御回路55は、書込み動作フラグを「0」に設定する(ステップS510)。
一方、制御回路55は、有効性フラグの値が「0」であれば、更新ブロックの番号をブロック番号レジスタ18に書込む(ステップS511)。
次に、制御回路55は、書込み動作フラグを「1」に設定し(ステップS512)、その後、ライトバッファ12内の書込みデータを、ワークメモリ13内のデコードされたアドレスに応じた位置に出力させる(ステップS513)。
次に、制御回路55は、ワークメモリ13に記憶されているすべてのデータを、フラッシュメモリ56の更新ブロックに出力させる(ステップS514)。
次に、制御回路55は、書込み動作フラグを「0」に設定する(ステップS515)。
次に、制御回路55は、更新ブロックに対応する有効性フラグを「1」に設定する(ステップS516)。
(読出し処理の動作)
この半導体記憶装置50の読出し処理の動作は、第1の実施形態に係わる半導体記憶装置100の読出し処理の動作と同様なので、ここでは、説明は繰返さない。
以上のように、本実施の形態に係わる半導体記憶装置では、データの書込みに際して、フラッシュメモリ内のブロックのうち、有効なデータを含むブロックのみがワークメモリへ出力させるので、将来使用されることのない無効なデータのみからなるブロックはワークメモリへ出力されないので、データの書込みの高速化を図ることができる。
<第3の実施形態>
本実施の形態は、1個以上のブロックのデータを記憶するライトバッファを備えた半導体記憶装置に関する。
図6は、本実施の形態に係わる半導体記憶装置の構成を示す。同図の半導体記憶装置200の構成要素のうち、第1の実施形態に係わる半導体記憶装置100の構成要素と同一のものについては、同一の符号を付す。以下、第1の実施形態に係わる半導体記憶装置100と相違する点について説明する。
半導体記憶装置200は、複数個のライトバッファ27a〜cを含む。各ライトバッファは、1つのブロックのデータを記憶する容量を有する。ライトバッファ27a〜cは、順序付けられている。ライトバッファ27aは、第1番目、ライトバッファ27bは、第2番目、ライトバッファ27cは、第3番目に順序付けられる。
制御回路25は、第1の実施形態と同様のブロック番号レジスタ18を含む。
制御回路25は、入出力バッファ11に入力される複数個の書込みデータを、次のようにして、ライトバッファ27a〜cに出力させる。
制御回路25は、まず、入力バッファ11に入力された書込みデータを第1番目のライトバッファ27aに出力させる。ライトバッファ27a内の先頭の書込みデータの格納位置は、アドレスに応じた位置とする。制御回路25は、ライトバッファ27aの末端の位置まで書込みデータが格納されたときには、書込みデータを第2番目のライトバッファ27bに出力させる。さらに、制御回路25は、ライトバッファ27bの末端まで書込みデータが格納されたときには、書込みデータを3番目のライトバッファ27cに出力させる。
制御回路25は、ライトバッファ27a〜cのうち、書込みデータが格納されているライトバッファであって、順序が先のライトバッファから順次、出力ライトバッファとして特定する。
制御回路25は、デコーダ14でデコードされたアドレスと、特定された出力ライトバッファの順序によって定まるフラッシュメモリ10内のブロックを更新ブロックとして特定する。すなわち、制御回路25は、出力ライトバッファが第1番目のライトバッファ27aのときには、デコードされたアドレスのデータを含むフラッシュメモリ10内のブロックを更新ブロックとして特定し、出力ライトバッファが2番目のライトバッファ27bのときには、デコードされたアドレスのデータを含むフラッシュメモリ10内のブロックに後続する1番目のブロックを更新ブロックとして特定し、出力ライトバッファが3番目のライトバッファ27cのときには、デコードされたアドレスのデータを含むフラッシュメモリ10内のブロックに後続する2番目のブロックを更新ブロックとして特定する。
制御回路25は、更新ブロックのすべてのデータを高速バス16を介してワークメモリ13へ出力させる。
制御回路25は、出力ライトバッファ内のすべてのデータをワークメモリ13に出力させる。ここで、出力ライトバッファからワークメモリ13へ書込みデータを出力する時点までに、外部からの書込みデータがその出力ライトバッファに取込まれることが保証されているものとする。
制御回路25は、フラッシュメモリ10内の更新ブロック内のすべてのデータを消去する。制御回路25は、ワークメモリ13に記憶されているすべてのデータを、フラッシュメモリ10の更新ブロックに出力させる。
(書込み処理の動作)
次に、この半導体記憶装置200の書込み処理の動作について説明する。図7は、書込み処理の動作手順を示すフローチャートである。
まず、外部より、書込み指示を示す制御信号と、アドレスと、複数個の書込みデータとが、それぞれ、制御回路25、デコーダ14、入出力バッファ11に入力される(ステップS601)。
制御回路25は、入出力バッファ11へ入力される書込みデータを、順序が先のライトバッファから順次、そのライトバッファへ出力させる(ステップS602)。
次に、制御回路25は、書込みデータが格納されているライトバッファであって、順序が最先のライトバッファを出力ライトバッファとして特定する。また、制御回路25は、デコーダ14でデコードされたアドレスと、特定された出力ライトバッファの順序によって定まるフラッシュメモリ10内のブロックを更新ブロックとして特定する(ステップS603)。
制御回路25は、更新ブロックのすべてのデータを高速バス16を介して、ワークメモリ13へ出力させる(ステップS604)。
制御回路25は、更新ブロックの番号をブロック番号レジスタ18に書込む(ステップS605)。
制御回路25は、出力ライトバッファ内のすべての書込みデータをワークメモリ13へ出力させる(ステップS606)。
制御回路25は、フラッシュメモリ10内の更新ブロック内のすべてのデータを消去する(ステップS607)。
次に、制御回路25は、ワークメモリ13に記憶されているすべてのデータを、フラッシュメモリ10の更新ブロックに出力させる(ステップS608)。
次に、制御回路25は、いずれかのライトバッファに書込みデータが格納されている場合には、書込み処理を続行し、いずれのライトバッファにも書込みデータが格納されていない場合には、書込み処理を中止する(ステップS609)。
(読出し処理の動作)
この半導体記憶装置200の読出し処理の動作は、第1の実施形態に係わる半導体記憶装置100の読出し処理の動作と同様なので、ここでは、説明は繰返さない。
以上のように、本実施の形態に係わる半導体記憶装置では、ライトバッファが1個以上のブロックのデータを記憶し、制御回路が順次、ライトバッファ内の各ブロックのデータをフラッシュメモリの対応するブロックへ出力させるので、外部から連続してデータの書込みを行なうことができる。
<第4の実施形態>
本実施の形態は、ワークメモリをミラーメモリとして利用する半導体記憶装置に関する。ここで、ミラーメモリとは、外部からのフラッシュメモリへのデータの書込みおよび読込みに対して、フラッシュメモリに代わって外部からのデータ書込みおよび読込みに応じるメモリを意味する。
(構成)
図8は、本実施の形態に係わる半導体記憶装置の構成を示す。同図の半導体記憶装置30の構成要素のうち、第1の実施形態に係わる半導体記憶装置100の構成要素と同一のものについては、同一の符号を付す。以下、第1の実施形態に係わる半導体記憶装置100と相違する点について説明する。
制御回路35は、書込み制御レジスタ36と、ワークメモリクリアレジスタ37と、読出し完了フラグ格納部38とを含む。
書込み制御レジスタ36の値が「1」のときには、ワークメモリレジスタ37の値が「0」であれば、ワークメモリ13内のデータのフラッシュメモリ10への出力が許可されている状態を示す。
書込み制御レジスタ36の値が「0」のときには、ワークメモリ13内のデータのフラッシュメモリ10への出力が禁止されている状態を示す。
ワークメモリクリアレジスタ37の値が「1」のときには、ワークメモリ13内のすべてのデータが「0」に初期化され、書込み制御レジスタ36の値が「1」であっても、ワークメモリ13内のデータのフラッシュメモリ10への出力が禁止されている状態を示す。
ワークメモリクリアレジスタ37の値が「0」のときには、書込み制御レジスタ36の値が「1」であれば、ワークメモリ内のデータのフラッシュメモリ10への出力が許可されている状態を示す。
読出し完了フラグ格納部38は、読出し完了フラグを格納する。読出し完了フラグの値が「1」のときには、ミラーメモリ設定が終了した状態、すなわち、フラッシュメモリ10のブロックのデータのワークメモリへの読出しが完了した状態を示す。読出し完了フラグの値が「0」のときには、ミラーメモリ設定が終了していない状態を示す。
制御回路35は、ミラーメモリ設定指示を示す制御信号が入力されると、デコードされたアドレスのデータを含むフラッシュメモリ10内のブロックを2重化ブロックとして特定し、この2重化ブロックのすべてのデータを高速バス16を介してワークメモリ13へ出力させる。そして、制御回路35は、読出し完了フラグを「1」に設定する。読出し完了フラグの値が「1」になった後に、外部より書込み指示を示す制御信号、または読出し指示を示す制御信号が入力される。制御回路35は、2重化ブロックの番号をブロック番号レジスタ18に書込み、書込み制御レジスタ36の値を「0」に設定する。書込み制御レジスタ36の値が「0」になると、ワークメモリ13からフラッシュメモリ10へのデータの出力が禁止される。
制御回路35は、書込み指示を示す制御信号が入力されると、入出力バッファ11内のデータを、ライトバッファ12に出力させる。そして、制御回路35は、デコードされたアドレスのデータを含むブロックのブロック番号と、ブロック番号レジスタ18に格納されているブロック番号とを比較し、比較結果が一致しているときのみ、ライトバッファ12内の書込みデータを、ワークメモリ13内のデコードされたアドレスに応じた位置に出力させる。
制御回路35は、読出し指示を示す制御信号が入力されると、第1の実施形態と同様の処理を行なう。すなわち、制御回路35は、デコーダ14によりデコードされたアドレスのデータを含むブロックを特定し、そのブロックのブロック番号と、ブロック番号レジスタ18に格納されているブロック番号とを比較する。制御回路35は、比較結果が一致であれば、ワークメモリ13内のデータを読出しデータとして、高速バス16を介して入出力バッファ11に出力させる。制御回路35は、比較結果が不一致であれば、デコードされたアドレスで特定されるフラッシュメモリ10内のブロックのデータを読出しデータとして、高速バス16を介して、入出力バッファ11へ出力させる。
制御回路35は、ミラーメモリのクリアを指示する制御信号が入力されると、ワークメモリクリアレジスタ37の値を「1」に設定する。制御回路35は、ワークメモリ内のデータを消去する。
制御回路35は、バックアップを指示する制御信号が入力されると、書込み制御レジスタ36の値を「1」に設定する。制御回路35は、書込み制御レジスタ36の値が「1」に設定され、かつワークメモリクリアレジスタ37の値が「0」に設定されている場合に、フラッシュメモリ10内の2重化ブロックのデータを消去し、ワークメモリ内のすべてのデータを高速バス16を介してフラッシュメモリ10の2重化ブロックに出力させる。
(ミラーメモリ設定処理の動作)
次に、この半導体記憶装置30のミラーメモリ設定処理の動作について説明する。図9は、ミラーメモリ設定処理の動作手順を示すフローチャートである。
まず、外部より、ミラーメモリ設定指示を示す制御信号と、アドレスとが、それぞれ、制御回路35、デコーダ14に入力される(ステップ701)。
次に、制御回路35は、上記制御信号を受けて、デコーダ14でデコードされたアドレスのデータを含むフラッシュメモリ10内のブロックを2重化ブロックとして特定し、この2重化ブロックのすべてのデータを高速バス16を介して、ワークメモリ13へ出力させる(ステップS702)。
制御回路35は、読出し完了フラグを「1」に設定する(ステップS703)。
制御回路35は、この2重化ブロックの番号をブロック番号レジスタ18に書込む(ステップS704)。
制御回路35は、書込み制御レジスタ36の値を「0」に設定する(ステップS705)。
(読出し処理の動作)
読出し完了フラグが「1」に設定された後、外部より、読出し指示を示す制御信号と、アドレスとが、それぞれ、制御回路35、デコーダ14に入力される。以下の読出し動作は、第1〜第3の実施形態と同様なので、説明は繰返さない。
(書込み処理の動作)
次に、この半導体記憶装置30の書込み処理の動作について説明する。図10は、書込み処理の動作手順を示すフローチャートである。
読出し完了フラグが「1」に設定された後、外部より、書込み指示を示す制御信号と、書込みデータと、アドレスとが、それぞれ、制御回路35、入出力バッファ11、デコーダ14に入力される(ステップS801)。
制御回路35は、上記制御信号を受けて、入出力バッファ11内のデータを、ライトバッファ12に出力させる(ステップS802)。
制御回路35は、上記制御信号を受けて、デコーダ14でデコードされたアドレスのデータを含むブロックのブロック番号と、ブロック番号レジスタ18に格納されているブロック番号とを比較する(ステップS803)。
制御回路35は、比較結果が一致しているときのみ、ライトバッファ12内の書込みデータを、ワークメモリ13内のデコードされたアドレスに応じた位置に出力させる(ステップS804)。
(バックアップ処理の動作)
次に、この半導体記憶装置30のバックアップ処理の動作について説明する。図11は、バックアップ処理の動作手順を示すフローチャートである。
外部より、ミラーメモリのクリアを指示する制御信号が、制御回路35に入力されると(ステップS901)、制御回路35は、ワークメモリクリアレジスタ37の値を「1」に設定する(ステップS902)。
制御回路35は、ワークメモリ内のデータを消去する(ステップS903)。
外部より、ワークメモリのフラッシュメモリへのバックアップを指示する制御信号が制御回路35に入力される(ステップS904)。
制御回路35は、上記制御信号を受けて、書込み制御レジスタ36の値を「1」に設定する(ステップS905)。
制御回路35は、書込み制御レジスタ36の値と、ワークメモリクリアレジスタ37の値を調べる(ステップS906)。
制御回路35は、書込み制御レジスタ36の値が「1」に設定され、かつワークメモリクリアレジスタ37の値が「0」に設定されている場合に、フラッシュメモリ10内の2重化ブロックのデータを消去する(ステップS907)。
そして、制御回路35は、ワークメモリ内のすべてのデータを高速バス16を介してフラッシュメモリ10の2重化ブロックに出力させる(ステップS908)。
以上のように、本実施の形態に係わる半導体記憶装置によれば、制御回路35は、ミラーメモリ設定指示を示す制御信号が入力されると、2重化ブロックのすべてのデータをワークメモリ13へ出力させる。制御回路35は、2重化ブロックの番号をブロック番号レジスタ18に書込み、ワークメモリ13からフラッシュメモリ10へのデータの出力が禁止する。
制御回路35は、書込み指示を示す制御信号が入力されると、デコードされたアドレスのデータを含むブロックのブロック番号と、ブロック番号レジスタ18に格納されているブロック番号とを比較し、比較結果が一致しているときのみ、ライトバッファ12内の書込みデータをワークメモリ13に出力させる。ワークメモリからフラッシュメモリへのデータの出力が常には行なわれることがないので、データの書込みを高速に行なうことができる。
制御回路35は、読出し指示を示す制御信号が入力されると、第1の実施形態と同様の処理を行なうので、データの読出しを高速に行なうことができる。
また、本実施の形態に係わる半導体記憶装置では、制御回路35は、バックアップを指示する制御信号が入力されると、ワークメモリ内のすべてのデータをフラッシュメモリ10の2重化ブロックに出力させるので、外部からのデータをフラッシュメモリへ書込むことができる。
<第5の実施形態>
本実施の形態では、フラッシュメモリ内のすべてのブロックと対応する複数個のブロックを含むワークメモリをミラーメモリとして利用する半導体記憶装置に関する。
(構成)
図12は、本実施の形態に係わる半導体記憶装置の構成を示す。同図の半導体記憶装置40の構成要素のうち、第1の実施形態に係わる半導体記憶装置100の構成要素と同一のものについては、同一の符号を付す。以下、第1の実施形態に係わる半導体記憶装置100と相違する点について説明する。
フラッシュメモリ56は、第2の実施形態と同様に、複数個のブロックを含み、有効性フラグ格納部57を含む。
有効性フラグ格納部57は、ブロックごとに有効性フラグを格納する。有効性フラグの値が「1」のときには、対応するブロック内のデータが有効であることを示し、有効性フラグの値が「0」のときには、対応するブロック内のデータが無効であることを示す。フラッシュメモリ56のどのブロックにも未だ何も書込まれていないときには、すべてのブロックの有効性フラグは、「0」に設定されている。
ワークメモリ47は、フラッシュメモリ56内のブロックと同数のブロックを含み、各ブロックは、それぞれフラッシュメモリ56内に対応するブロックを有する。ワークメモリ47は、有効性フラグ格納部48と、更新フラグ格納部49を備える。
有効性フラグ格納部48は、ブロックごとに有効性フラグを格納する。有効性フラグの値が「1」のときには、フラッシュメモリ56の対応するブロックから、ワークメモリ47内の対応するブロックにデータが出力されたことを示す。有効性フラグの値が「0」のときには、フラッシュメモリ56の対応するブロックから、ワークメモリ47内の対応するブロックにデータが出力されていないことを示す。
更新フラグ格納部49は、ブロックごとに更新フラグを格納する。更新フラグの値が「1」のときには、外部からの書込みデータが対応するブロックに出力されたことを示し、更新フラグの値が「0」のときには、外部からの書込みデータが対応するブロックに出力されていないことを示す。
制御回路45は、第4の実施形態と同様の読出し完了フラグ格納部38と、第1書込み制御レジスタ43と、第2書込み制御レジスタ41と、第1ワークメモリ設定レジスタ46と、第2ワークメモリ設定レジスタ42とを含む。
第1書込み制御レジスタ43の値が「1」のときには、ワークメモリ47内のデータのフラッシュメモリ56への出力が許可されている状態を示す。第1書込み制御レジスタ43の値が「0」のときには、ワークメモリ47内のデータのフラッシュメモリ56への出力が禁止されている状態を示す。
第2書込み制御レジスタ41は、複数のビットを格納する。先頭ビットの値が「1」のときには、ワークメモリ47内のデータのフラッシュメモリ56への出力が許可されている状態を示す。そして、先頭ビットの値が「1」のときには、後続するビットの値が、バックアップを行なうように指示されたブロックのブロック番号を示す。先頭ビットの値が「0」のときには、ワークメモリ47内のデータのフラッシュメモリ56への出力が禁止されている状態を示す。
第1ワークメモリ設定レジスタ46の値が「1」のときには、ミラーメモリ設定指示を受けた状態を示す。第1ワークメモリ設定レジスタ46の値が「0」のときには、ミラーメモリ設定指示を受けていない状態を示す。
第2ワークメモリ設定レジスタ42は、複数のビットを格納する。先頭ビットの値が「1」のときには、ミラーメモリ設定指示を受けた状態を示す。そして、先頭ビットの値が「1」のときには、後続するビットの値は、ミラーメモリ設定を行なうように指示されたブロックのブロック番号を示す。先頭ビットの値が「0」のときには、ミラーメモリ設定指示を受けていない状態を示す。
制御回路45は、ミラーメモリ設定指示を示す制御信号を受けると、第1ワークメモリ設定レジスタ46の値を「1」に設定し、フラッシュメモリ56内のブロックのうち、有効性フラグが「1」のブロックを特定する。制御回路45は、特定したフラッシュメモリ56内のブロックのすべてのデータを高速バス16を介してワークメモリ47へ出力させる。その後、制御回路45は、フラッシュメモリ56からデータを受け取ったワークメモリ47内のブロックの有効性フラグを「1」に設定し、読出し完了フラグを「1」に設定する。その後、制御回路45は、第1書込み制御レジスタ43の値および第2書込み制御レジスタ41の先頭ビットの値を「0」に設定する。
制御回路45は、読出し指示を示す制御信号を受けると、ワークメモリ47内のデコーダ14でデコードされたアドレスのデータを、読出しデータとして入出力バッファ11に出力させる。
制御回路45は、書込み指示を示す制御信号を受けると、入出力バッファ11内の書込みデータを、ワークメモリ47内のデコーダ14でデコードされたアドレスに応じた位置に出力させる。その後、制御回路45は、ワークメモリ47内の書込みデータを受け取ったブロックの更新フラグを「1」に設定する。
制御回路45は、ミラーメモリの部分的再設定を指示する制御信号を受けると、第2ワークメモリ設定レジスタ42の先頭ビットの値を「1」にするとともに、後続するビットの値をその指定ブロック番号にする。制御回路45は、指定ブロック番号のフラッシュメモリ56内のブロックの有効性フラグの値が「1」のときには、フラッシュメモリ56内の指定ブロック番号のブロックのすべてのデータを高速バス16を介してワークメモリ47の対応するブロック出力させ、フラッシュメモリ56からデータを受け取ったワークメモリ47内のブロックの有効性フラグを「1」に設定し、読出し完了フラグの値を「1」に設定する。その後、制御回路45は、第1書込み制御レジスタ43の値および第2書込み制御レジスタ41の先頭ビットの値を「0」に設定する。
制御回路45は、ワークメモリ47のフラッシュメモリ56へのバックアップを指示する制御信号を受けると、第1書込み制御レジスタ43の値を「1」に設定し、ワークメモリ47内のブロックのうち、有効性フラグが「1」で、かつ更新フラグが「1」のブロックを特定する。制御回路45は、ワークメモリ47内の特定したブロックに対応するフラッシュメモリ56内のブロックのすべてのデータを消去し、ワークメモリ47内の特定したブロックのすべてのデータを、フラッシュメモリ56内の対応するブロックに出力させ、データを受け取ったフラッシュメモリ56内の対応するブロックの有効性フラグを「1」に設定する。
制御回路45は、部分的バックアップを指示する制御信号を受けて、第2書込み制御レジスタ41の先頭ビットの値を「1」にするとともに、後続するビットの値を指定ブロック番号にする。制御回路45は、後続するビットで表わされる指定ブロック番号のワークメモリ47内のブロックの有効性フラグの値が「1」で、かつ更新フラグの値が「1」のときには、ワークメモリ47内の指定ブロック番号のブロックに対応するフラッシュメモリ56内のブロックのすべてのデータを消去し、ワークメモリ47内の指定ブロック番号のブロックのすべてのデータを、フラッシュメモリ56内の対応するブロックに出力させる。その後、制御回路45は、フラッシュメモリ56のブロックの有効性フラグを「1」に設定する。
(ミラーメモリ設定処理の動作)
次に、この半導体記憶装置40のミラーメモリ設定処理の動作について説明する。図13は、ミラーメモリ設定処理の動作手順を示すフローチャートである。
まず、外部より、ミラーメモリ設定指示を示す制御信号が、制御回路45に入力される(ステップS1001)。
制御回路45は、上記制御信号を受けて、第1ワークメモリ設定レジスタ46の値を「1」に設定する(ステップS1002)。
制御回路45は、第1ワークメモリ設定レジスタ46の値が「1」に設定されている場合に、フラッシュメモリ56内のブロックのうち、有効性フラグが「1」のブロックを特定する(ステップS1003)
制御回路45は、特定したフラッシュメモリ56内のブロックのすべてのデータを高速バス16を介してワークメモリ47へ出力させる(ステップS1004)。
制御回路45は、フラッシュメモリ56からデータを受け取ったワークメモリ47内のブロックの有効性フラグを「1」に設定する(ステップS1005)。
制御回路45は、読出し完了フラグを「1」に設定する(ステップS1006)。
制御回路45は、第1書込み制御レジスタ43の値および第2書込み制御レジスタ41の先頭ビットの値を「0」に設定する(ステップS1007)。
(読出し処理の動作)
次に、この半導体記憶装置40の読出し処理の動作について説明する。図14は、読出し処理の動作手順を示すフローチャートである。
読出し完了フラグが「1」に設定された後、外部より、読出し指示を示す制御信号と、アドレスとが、それぞれ、制御回路45、デコーダ14に入力される(ステップS1101)。
制御回路45は、上記制御信号を受けて、ワークメモリ47内のデコーダ14でデコードされたアドレスのデータを、読出しデータとして入出力バッファ11に出力させる(ステップS1102)。
入出力バッファ11内の読出しデータは、データバス20を介して外部へ出力される(ステップS1103)。
(書込み処理の動作)
次に、この半導体記憶装置40の書込み処理の動作について説明する。図15は、書込み処理の動作手順を示すフローチャートである。
読出し完了フラグが「1」に設定された後、外部より、書込み指示を示す制御信号と、アドレスと、書込みデータとが、それぞれ、制御回路45、デコーダ14、入出力バッファ11に入力される(ステップS1201)。
制御回路45は、上記制御信号を受けて、入出力バッファ11内の書込みデータを、ワークメモリ47内のデコーダ14でデコードされたアドレスに応じた位置に出力させる(ステップS1202)。
制御回路45は、ワークメモリ47内の書込みデータを受け取ったブロックの更新フラグを「1」に設定する(ステップS1203)。
(ミラーメモリの部分的再設定処理の動作)
次に、この半導体記憶装置40のミラーメモリ部分的再設定処理の動作について説明する。図16は、ミラーメモリ部分的再設定処理の動作手順を示すフローチャートである。
まず、外部より、ミラーメモリ部分的再設定を指示する制御信号と、再設定を行なうブロックを示す指定ブロック番号とが、制御回路45に入力される(ステップ1301)。
制御回路45は、上記制御信号を受けて、第2ワークメモリ設定レジスタ42の先頭ビットの値を「1」にするとともに、後続するビットの値を指定ブロック番号にする(ステップS1302)。
制御回路45は、第2ワークメモリ設定レジスタ42の先頭ビットが「1」のときに、後続するビットの値である指定ブロック番号のフラッシュメモリ56内のブロックの有効性フラグを調べる(ステップS1303)。
制御回路45は、有効性フラグの値が「1」のときには、フラッシュメモリ56内の指定ブロック番号のブロックのすべてのデータを高速バス16を介して、ワークメモリ47の対応するブロックへ出力させる(ステップS1304)。
制御回路45は、フラッシュメモリ56からデータを受け取ったワークメモリ47内のブロックの有効性フラグを「1」に設定する(ステップS1305)。
制御回路45は、読出し完了フラグの値を「1」に設定する(ステップS1306)。
制御回路45は、第1書込み制御レジスタ43の値および第2書込み制御レジスタ41の先頭ビットの値を「0」に設定する(ステップS1307)。
(バックアップ処理の動作)
次に、この半導体記憶装置40のバックアップ処理の動作について説明する。図17は、バックアップ処理の動作手順を示すフローチャートである。
外部より、ワークメモリ47のフラッシュメモリ56へのバックアップを指示する制御信号が、制御回路45に入力される(ステップS1401)。
制御回路45は、上記制御信号を受けて、第1書込み制御レジスタ43の値を「1」に設定する(ステップS1402)。
制御回路45は、第1書込み制御レジスタ43の値が「1」に設定されている場合に、ワークメモリ47内のブロックのうち、有効性フラグが「1」で、かつ更新フラグが「1」のブロックを特定する(ステップS1403)
制御回路45は、ワークメモリ47内の特定したブロックに対応するフラッシュメモリ56内のブロックのすべてのデータを消去する(ステップS1404)。
制御回路45は、ワークメモリ47内の特定したブロックのすべてのデータを、フラッシュメモリ56内の対応するブロックに出力させる(ステップS1405)。
制御回路45は、このようにしてデータを受け取ったフラッシュメモリ56内の対応するブロックの有効性フラグを「1」に設定する(ステップS1406)。
(部分的バックアップ処理の動作)
次に、この半導体記憶装置40の部分的バックアップ処理の動作について説明する。図18は、部分的バックアップ処理の動作手順を示すフローチャートである。
外部より、ミラーメモリの部分的バックアップを指示する制御信号と、バックアップを行なうブロックを示す指定ブロック番号とがが、制御回路45に入力される(ステップS1501)。
制御回路45は、上記制御信号を受けて、第2書込み制御レジスタ41の先頭ビットの値を「1」にするとともに、後続するビットの値を指定ブロック番号にする(ステップS1502)。
制御回路45は、第2書込み制御レジスタ41の先頭ビットの値が「1」のときに、後続するビットで表わされる指定ブロック番号のワークメモリ47内のブロックの有効性フラグと更新フラグを調べる(ステップS1503)。
制御回路45は、有効性フラグが「1」で、かつ更新フラグが「1」のときには、ワークメモリ47内の指定ブロック番号のブロックに対応するフラッシュメモリ56内のブロックのすべてのデータを消去する(ステップS1504)。
制御回路45は、ワークメモリ47内の指定ブロック番号のブロックのすべてのデータを、フラッシュメモリ56内の対応するブロックに出力させる(ステップS1505)。
制御回路45は、フラッシュメモリ56のブロックの有効性フラグを「1」に設定する(ステップS1506)。
以上のように、本実施の形態に係わる半導体記憶装置では、制御回路45は、ミラーメモリの設定指示を示す制御信号を受けると、フラッシュメモリ56内のブロックのうち、所定のブロックのすべてのデータをワークメモリ47へ出力させ、ワークメモリ47からフラッシュメモリ56へのデータの出力を禁止する。
制御回路45は、読出し指示を示す制御信号を受けると、ワークメモリ47内のデコードされたアドレスのデータを、読出しデータとして入出力バッファ11に出力させるので、データを高速に読み出すことができる。
制御回路45は、書込み指示を示す制御信号を受けると、書込みデータを、ワークメモリ47内のデコードされたアドレスに応じた位置に出力させるので、データを高速に書込みことができる。
また、本実施の形態に係わる半導体記憶装置では、制御回路45は、ワークメモリのフラッシュメモリへのバックアップを指示する制御信号を受けると、ワークメモリ47内のブロックのうち、更新されたデータを含むブロックのみ、そのブロック内のデータをフラッシュメモリ56内の対応するブロックに出力させるので、更新されたデータを含まないブロックのデータをフラッシュメモリへ出力する無駄を防止できる。
(変形例)
本発明は、上記実施の形態に限定されるものではなく、以下の変形例も当然ながら包含する。
(1) 不揮発性メモリ
本発明の実施形態におけるフラッシュメモリの代わりに、その他の電子的書換え可能な不揮発性メモリとしてもよい。
(2) 書込み動作フラグ
第1の実施形態において、制御回路15は、書込みを指示する制御信号を受けた後、更新ブロックの番号をブロック番号レジスタ18に書込みを行なってから、ステップS303において、書込み動作フラグを「1」に設定したが、これに限定するものではない。制御回路15は、書込みを指示する制御信号を受けた後、更新ブロックの番号をブロック番号レジスタ18に書込みを行なうまでの任意の時点で書込み動作フラグを「1」に設定するものとしてもよい。
(3) フラッシュメモリのブロックの有効性フラグ
第2および第5の実施形態において、フラッシュメモリのブロックの有効性フラグを2ビットの値として、1ビット目で、データが書込まれているブロックか否かを識別し、2ビット目で、データが消去可能か否かを識別するものとしてもよい。
(4) ライトバッファ
第3の実施形態では、半導体記憶装置は、複数個のライトバッファ27a〜cを含み、各ライトバッファは、1つのブロックのデータを記憶するものとしたが、これに限定するものではない。たとえば、1つのライトバッファが、1個または複数個のブロックのデータを記憶するものとしてもよい。
(5) ライトバッファから書込みデータを出力させるタイミング
第3の実施形態では、各ライトバッファからワークメモリへ書込みデータを出力する時点までに、外部からの書込みデータがそのライトバッファに取込まれることが保証されているものとした。
各ライトバッファからワークメモリへ書込みデータを出力する時点までに、外部からの書込みデータがそのライトバッファに取込まれることが保証されていない場合には、次のような制御を行なうことができる。
すなわち、書込み制御信号がアサートの期間は、外部から書込みデータが入力されている状態を示し、書込み制御信号がネゲートの期間は、外部から書込みデータが入力されていない状態を示すようにすれば、制御回路は、あるライトバッファの末端にまで書込みデータが格納されていないときには、書込み制御信号がネゲートになった後に、そのライトバッファからワークメモリへ書込みデータを出力させるようにすることができる。
また、書込みデータの入力を開始するときに、外部から制御回路内の所定のレジスタのビットを1に設定し、書込みデータの入力を終了したときには、外部から所定のレジスタのビットを0にすることにすれば、制御回路は、あるライトバッファの末端にまで書込みデータが格納されていないときには、所定のレジスタのビットが0になった後に、そのライトバッファからワークメモリへ書込みデータを出力させるようにすることができる。
あるいは、入力される書込みデータの個数が固定値のときには、制御回路は、あるライトバッファの末端にまで書込みデータが格納されていないときには、すべてのライトバッファに取込まれた書込みデータの総数がこの固定値になった後に、そのライトバッファからワークメモリへ書込みデータを出力させるようにすることができる。
(6) ワークメモリ
第3の実施形態では、ワークメモリは、フラッシュメモリ10の1つのブロックのデータを記憶する容量を有するものとしたが、これに限定するものではない。たとえば、ワークメモリが、ライトバッファ27a〜cに対応する第1〜第3の3個のブロック分の容量を備えるものとしてもよい。
この場合には、ライトバッファ27a内の書込みデータは、ワークメモリ内の第1ブロックに出力され、ライトバッファ27b内の書込みデータは、ワークメモリ内の第2ブロックに出力され、ライトバッファ27c内の書込みデータは、ワークメモリの第3ブロックに出力されるものとすることができる。
第3の実施形態では、1つのブロックについて、S603〜S607の処理を連続して行った後、次のブロックについて、同様にS603〜S607の処理を連続して行ったのに対して、ワークメモリが3つのブロックを有する場合には、各ステップの処理を3つのブロックについて連続して行なった後、次のステップの処理を3つのブロックについて連続して行なうようにすることができる。
第3の実施形態とこの変形例では、各処理を実行する順序においては相違するが、各ブロックについて、S603の処理と、S604の処理と、S605の処理と、S606の処理と、S607の処理とを行なうという点においては、同一である。
(7) ワークメモリの用途
第4および第5の実施形態では、ワークメモリをミラーメモリとして使用する例について説明したが、これに限定するものではない。ワークメモリを作業用のメモリや別のメモリとして使用するものとしてもよい。
第5の実施形態において、ワークメモリを別のメモリとして使用した場合には、2倍の容量のメモリとなる。
また、第5の実施形態において、ワークメモリを作業用のメモリとして使用した場合には、ワークメモリ内のブロックに対して移動やコピーなどを行なうことにより、外部メモリを使用せずにブロックに対する操作が可能となる。
(8) ワークメモリの容量
第4の実施形態において、ワークメモリは、1つのブロックを含むものとしたが、これに限定するものではなく、ワークメモリは、2以上の任意の数のブロックを含むものとしてもよい。
(9) 2ポートRAMを用いたワークメモリ
第1〜第5の実施形態において、ワークメモリとして2ポートRAMを用いることにより、ワークメモリへのデータの入力と、ワークメモリからのデータの出力を同時に行なうことができる。
(10) 入出力バッファ
第1〜第4の実施形態において、外部からの書込みデータを一旦入出力バッファに取込むものとしたが、これに限定するものではなく、外部からの書込みデータを直接ライトバッファに取込むものとしてもよい。
(11) ライトバッファへのデータの取込みと、フラッシュメモリからワークメモリへのデータの出力の同時実行
第2〜第4の実施形態においても、第1の実施形態と同様に、制御回路が、書込み指示を示す制御信号を受けると、入出力バッファ11内の書込みデータをライトバッファに出力させるのと同時に、デコードされたアドレスのデータを含むフラッシュメモリのブロックを更新ブロックとして特定し、更新ブロック内のすべてのデータをワークメモリへ出力させるものとしてもよい。
(12) 高速バス16
本発明の実施形態では、フラッシュメモリ10と、ワークメモリ13と、入出力バッファ11との間は、それぞれ高速バス16(128〜256ビット幅)で接続し、ライトバッファ12とワークメモリ13との間は、高速バス16(128〜256ビット幅)で接続するものとしたが、これに限定するものではない。ライトバッファ12とワークメモリ13との間は、フラッシュメモリ10とワークメモリ13との間を接続するバスよりも、低速なバスで接続するものとしてもよい。同様に、入出力バッファ11と、ワークメモリ13およびフラッシュメモリ10との間は、フラッシュメモリ10とワークメモリ13との間を接続するバスよりも、低速なバスで接続するものとしてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の第1の実施の形態に係わる半導体記憶装置の構成を示す図である。 書込み処理の動作手順を示すフローチャートである。 読出し処理の動作手順を示すフローチャートである。 本発明の第2の実施の形態に係わる半導体記憶装置の構成を示す図である。 書込み処理の動作手順を示すフローチャートである。 本発明の第3の実施の形態に係わる半導体記憶装置の構成を示す図である。 書込み処理の動作手順を示すフローチャートである。 本発明の第4の実施の形態に係わる半導体記憶装置を示す図である。 ミラーメモリ設定処理の動作手順を示すフローチャートである。 書込み処理の動作手順を示すフローチャートである。 バックアップ処理の動作手順を示すフローチャートである。 本発明の第5の実施の形態に係わる半導体記憶装置の構成を示す図である。 ミラーメモリ設定処理の動作手順を示すフローチャートである。 読出し処理の動作手順を示すフローチャートである。 書込み処理の動作手順を示すフローチャートである。 ミラーメモリ部分的再設定処理の動作手順を示すフローチャートである。 バックアップ処理の動作手順を示すフローチャートである。 部分的バックアップ処理の動作手順を示すフローチャートである。
符号の説明
10,56 フラッシュメモリ、11 入出力バッファ、12 ライトバッファ、13,47 ワークメモリ、14 デコーダ、15、55 制御回路、16 高速バス、17 書込み動作フラグ格納部、18 ブロック番号レジスタ、20 データバス、21 アドレスバス、22 制御信号バス、15,25,35,45,55 制御回路、26 ワークメモリ更新レジスタ、36 書込み制御レジスタ、37 ワークメモリクリアレジスタ、38 読出し完了フラグ格納部、41 第2書込み制御レジスタ、42 第2ワークメモリ設定レジスタ、43 第1書込み制御レジスタ、46 第1ワークメモリ設定レジスタ、57 有効性フラグ格納部、30,40,50,100,200 半導体記憶装置。

Claims (2)

  1. 複数のブロックを含み、ブロック単位でデータの書換えが可能な不揮発性メモリと、
    前記不揮発性メモリの1または複数のブロックに相当する容量を含むワークメモリと、
    前記ワークメモリと前記不揮発性メモリとを接続し、外部データバスよりもビット幅が広い内部データバスと、
    アドレス判定回路を有する制御回路とを備え、
    前記制御回路は、ワークメモリをミラーメモリとして使用することを指示する制御信号が入力されたときには、前記不揮発性メモリ内の所定のブロックのデータを前記内部データバスを介して前記ワークメモリ内の対応するブロックへ出力させ、
    前記制御回路は、読出しを指示する制御信号と読出しアドレスとが入力されたときには前記読出しアドレスで指定されるデータが前記ワークメモリに出力されているか否かの判定を前記読出しアドレスが前記所定のブロックに該当するか否かを前記アドレス判定回路が判定することによって行ない、前記ワークメモリにデータが出力されている場合は前記ワークメモリ内の前記読出しアドレスで特定されるブロック内の前記読出しアドレスで特定されるデータを外部へ出力させる制御を行ない、前記ワークメモリにデータが出力されていない場合は前記不揮発性メモリ内の前記読出しアドレスに対応するデータを外部へ出力させる制御を行ない、
    前記制御回路は、書込みを指示する制御信号と、書込みアドレスと、書込みデータとが入力されたときには前記書込みアドレスで指定されるデータが前記ワークメモリに出力されているか否かの判定を前記書込みアドレスが前記所定のブロックに該当するか否かを前記アドレス判定回路が判定することによって行ない、前記ワークメモリにデータが出力されている場合は前記書込みデータを前記ワークメモリ内の前記書込みアドレスで特定されるブロック内の前記書込みアドレスに応じた位置に出力させる制御を行ない、前記ワークメモリにデータが出力されていない場合は前記書込みを指示する制御信号に対応した動作を禁止させる制御を行ない
    前記制御回路は、ワークメモリ内のデータを不揮発性メモリへバックアップすることを指示する制御信号が入力されたときには、前記不揮発性メモリ内の所定のブロックのデータを消去し、前記不揮発性メモリ内の前記所定のブロックに対応する前記ワークメモリ内のブロックのすべてのデータを、前記不揮発性メモリ内の前記所定のブロックに出力させる制御を行なう、半導体記憶装置。
  2. 前記ワークメモリの各ブロックに対応させて、前記ブロック内のデータの更新の有無を示す更新フラグを記憶する記憶部を備え、
    前記制御回路は、前記書込みを指示する制御信号が入力されたときに、前記書込みデータを前記ワークメモリ内のブロックに出力させたときには、前記書込みデータを受け取ったブロックに対応する更新フラグを更新有りに設定し、
    前記制御回路は、前記ワークメモリ内のデータを不揮発性メモリへバックアップすることを指示する制御信号が入力されたときには、前記ワークメモリのブロックのうち、前記更新フラグが更新有りに設定されているブロックについてのみ、当該ブロックに対応する前記不揮発性メモリ内のブロックのデータを消去し、前記ワークメモリ内の前記ブロックのすべてのデータを前記不揮発性メモリ内の前記ブロックに出力させる、請求項1記載の半導体記憶装置。
JP2008110346A 2008-04-21 2008-04-21 半導体記憶装置 Expired - Fee Related JP4762267B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008110346A JP4762267B2 (ja) 2008-04-21 2008-04-21 半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008110346A JP4762267B2 (ja) 2008-04-21 2008-04-21 半導体記憶装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003108130A Division JP2004318933A (ja) 2003-04-11 2003-04-11 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2008181670A JP2008181670A (ja) 2008-08-07
JP4762267B2 true JP4762267B2 (ja) 2011-08-31

Family

ID=39725410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008110346A Expired - Fee Related JP4762267B2 (ja) 2008-04-21 2008-04-21 半導体記憶装置

Country Status (1)

Country Link
JP (1) JP4762267B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0281398A (ja) * 1988-09-19 1990-03-22 Hitachi Ltd 半導体記憶装置
JPH07153257A (ja) * 1993-11-29 1995-06-16 Sony Corp 半導体メモリ
JP3871184B2 (ja) * 2000-06-12 2007-01-24 シャープ株式会社 半導体記憶装置
JP4049297B2 (ja) * 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
JP2003036201A (ja) * 2001-07-24 2003-02-07 Sony Corp メモリアクセス管理装置

Also Published As

Publication number Publication date
JP2008181670A (ja) 2008-08-07

Similar Documents

Publication Publication Date Title
JP4999325B2 (ja) フラッシュメモリ
JP5024042B2 (ja) 半導体記憶装置
US6154808A (en) Method and apparatus for controlling data erase operations of a non-volatile memory device
US20080195800A1 (en) Flash Memory Device and Flash Memory System Including a Buffer Memory
KR20040023643A (ko) 플래시 메모리장치 및 그것에 기억된 데이터의 머지방법
JP2006277921A (ja) 複数のストリングを使用して状態情報を保存する方法及び不揮発性保存装置
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2008181399A (ja) メモリコントローラ
JPWO2006129780A1 (ja) シーケンシャル書込においてベリファイ処理を行う不揮発性メモリ
JP2007250101A (ja) 不揮発性メモリ装置および不揮発性メモリ装置の制御方法
JP4643315B2 (ja) 半導体集積回路装置
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
KR100598907B1 (ko) 연속적 읽기/쓰기가 가능한 플래쉬 메모리
US20170300408A1 (en) System and method for reducing stress on memory device
JP2006003966A (ja) フラッシュメモリの書込方法
JP2007094639A (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007164355A (ja) 不揮発性記憶装置、そのデータ読出方法及びそのデータ書込み方法
JP4762267B2 (ja) 半導体記憶装置
US8266417B2 (en) Device having shared memory and method for transferring code data
JP2004318933A (ja) 半導体記憶装置
JP2007199828A (ja) 不揮発性記憶装置およびそのアドレス管理方法
JP4640366B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2006277736A (ja) 不揮発性記憶装置の書込み方法
JP4670370B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4645043B2 (ja) メモリーコントローラ、不揮発性記憶装置および不揮発性メモリシステム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees