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

半導体記憶装置 Download PDF

Info

Publication number
JP2008197981A
JP2008197981A JP2007033475A JP2007033475A JP2008197981A JP 2008197981 A JP2008197981 A JP 2008197981A JP 2007033475 A JP2007033475 A JP 2007033475A JP 2007033475 A JP2007033475 A JP 2007033475A JP 2008197981 A JP2008197981 A JP 2008197981A
Authority
JP
Japan
Prior art keywords
write
memory
data
stored
written
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
Application number
JP2007033475A
Other languages
English (en)
Inventor
Toshikatsu Hida
敏克 檜田
Shinichi Sugano
伸一 菅野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007033475A priority Critical patent/JP2008197981A/ja
Publication of JP2008197981A publication Critical patent/JP2008197981A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】実効的な書き込み速度を向上し、長寿命化を行える半導体記憶装置および半導体記憶装置の制御方法を提供する。
【解決手段】NAND型フラッシュメモリ100を含む半導体記憶装置10において、一時記憶部200を設け、外部から送信された書き込みデータを一時記憶部200に格納する。NAND型フラッシュメモリ100のどのブロックに書き込まれるかにより当該書き込みデータをエントリ単位に分類し、当該エントリごとのデータ量、書き込みが行われた順番により、どのエントリをNAND型フラッシュメモリ100へ書き込むか決定する。
【選択図】図1

Description

本発明は、フラッシュメモリを備える半導体記憶装置に関するものである。
携帯用音楽プレイヤーやデジタルカメラなどのデジタル機器の急速な普及に伴い、フラッシュメモリ、例えば、NAND型フラッシュメモリが広く使われるようになってきた。ここで、NAND型フラッシュメモリは、1回の消去ごとに1度だけデータを書き込むことができるが、ブロックと呼ばれるまとまった単位ごとにしかデータを消去できないという問題点がある。
ブロック消去の動作としては、書き込みのデータサイズよりも大きく、書き込みデータサイズ以上のブロック消去が行われることがある。消去対象のブロック内に有効なデータが保存されている場合には、ブロック消去の前に有効なデータを他のブロックに書き込み、有効な情報が消去されないように注意する必要がある。また、NAND型フラッシュメモリのブロック消去の回数には制限があるため、消去回数の増加を防ぎつつデータを書き込む方法が重要になる。
この問題を解決するために、消去回数の上限値がNAND型フラッシュメモリよりも十分に大きい不揮発性メモリとNAND型フラッシュメモリとを組み合わせて使用する方法が提案されている(例えば、特許文献1参照。)。
上記の特許文献1に記載される発明は、NAND型フラッシュメモリに書き込むデータを不揮発性メモリに蓄積し、NAND型フラッシュメモリへの書き込み回数を削減するというものである。しかしながら、不揮発性メモリに蓄積したデータのうちいずれをNAND型フラッシュメモリに書き込むかについては考慮されていない。
特開2005−301591号公報
NAND型フラッシュメモリでは、消去回数の増加を抑制しながらデータの書き込みを行えることが望ましい。
しかしながら、上述した特許文献1の方法では、不揮発性メモリに一定量のデータを一時的に蓄積させ、NAND型フラッシュメモリに対してデータの書き込みを行っているに過ぎない。
そのため、NAND型フラッシュメモリにおいて、消去回数の増加を十分に抑制できず、書き込み時のオーバーヘッドを効果的に削減できないという問題があった。
本発明は、上記問題点を解決するためになされたものであって、NAND型フラッシュメモリに対して行う書き込み動作のオーバーヘッドを効果的に削減可能な半導体記憶装置を提供することを目的とする。
本発明の第1の実施形態に係る半導体記憶装置は、1回のブロック消去ごとに1回だけデータを書き込むことができ、前記ブロック消去の最小サイズが書き込みデータの最小サイズよりも大きいフラッシュメモリと、外部装置から送信された複数の書き込みデータが一時的に記憶される第1のメモリと、前記第1のメモリに記憶された前記書き込みデータの記憶位置と、前記外部装置から前記フラッシュメモリに対して出力された記憶位置との対応関係が記憶される第2のメモリと、前記フラッシュメモリの消去ブロックに対応して前記第1のメモリに記憶された前記書き込みデータの量が記憶される第3のメモリと、前記フラッシュメモリの消去ブロックに対する、前記外部装置からの書き込み要求の順序が前記消去ブロック単位に記憶される第4のメモリと、前記第3のメモリに記憶される前記書き込みデータの量と前記第4のメモリに記憶される前記書き込み要求の順序とに基づいて前記第1のメモリから前記フラッシュメモリに書き込む前記書き込みデータを少なくとも1つ選択し、前記第2のメモリに記憶される前記対応関係に基づいて指定される前記フラッシュメモリの記憶位置に選択した前記書き込みデータを書き込む制御部とを有することを特徴とする。
本発明によれば、NAND型フラッシュメモリに対して行う書き込み動作のオーバーヘッドを効果的に削減可能な半導体記憶装置を提供することが可能となる。
以下、本発明に係る半導体装置の実施の形態について、図面に基づいて説明する。
図1は、本実施の形態に係る半導体記憶装置の構成に示すブロック図である。半導体記憶装置10は、NAND型フラッシュメモリ100と、外部装置11から送信された書き込みデータを一時的に記憶する一時記憶部200と、NAND型フラッシュメモリ100と一時記憶部200の制御を行うコントローラ300とを備えている。
NAND型フラッシュメモリ100は、1回の消去ごとに1度だけデータを書き込むことができる。消去回数には上限があり、上限回数を超過すると正しくデータが書き込めなくなる。消去処理を行う最小単位をブロック、書き込みおよび読み出し処理を行う最小単位をページと呼ぶ。
図2は、ブロックとページの関係を示した図である。本実施の形態では、1ブロックサイズを512kByte、1ページサイズを8kByteとした。
図3は、NAND型フラッシュメモリ100をアクセスするためのアドレス構成を示す図である。ここで、例えば、NAND型フラッシュメモリ100の記憶容量を8GByteとすると、外部装置11からの24bitのアドレスによってその記憶領域が指定される。そして、24bitのアドレスのうち、14bitのブロック番号、6bitのブロック内のページ番号、4bitのページ内のセクタ番号によって記憶領域が一意に決定される。
図1の説明に戻り、一時記憶部200には、DRAM、SRAMなどの揮発性メモリや、MRAM、FeRAMなどの不揮発性メモリが用いられる。一時記憶部200は、外部装置11から書き込み要求と共に送信されるデータを一時的に記憶する書き込み用バッファメモリ210と、外部装置11からの読み出し要求に対しNAND型フラッシュメモリ100のデータをキャッシュする読み出し用キャッシュメモリ220とを有する。
図4は、書き込み用バッファメモリ210と読み出し用キャッシュメモリ220の空き領域の構成を示す図である。書き込み用バッファメモリ210と読み出し用キャッシュメモリ220は、1ページ単位(例えば、16セクタ)で空き領域が割り当てられており、その空き領域にデータが格納される。
書き込み用バッファメモリ210は、外部装置11から半導体記憶装置10に対する書き込みの速度と、書き込み用バッファメモリ210からNAND型フラッシュメモリ100に対する書き込みの速度との差を吸収するためのものである。さらに、書き込み用バッファメモリ210は、外部装置11から半導体記憶装置10に対する書き込み要求時に出力された書き込みデータを記憶し、NAND型フラッシュメモリ100に対する効率的な書き込みを実現するためのものである。
読み出し用キャッシュメモリ220は、NAND型フラッシュメモリ100からの実効的な読み出し速度を向上させるために、NAND型フラッシュメモリ100からキャッシュしたデータを記憶する。読み出し用キャッシュメモリ220の記憶容量は1ブロックサイズと同じとする。これは、NAND型フラッシュメモリ100へのデータ書き込み時に使用するためである。
コントローラ300は、外部装置11から送信されるコマンド、アドレスを受信し、それらに応じた処理を行う。外部装置11から読み出し及び書き込みコマンド(以下、読み出し/書き込みと記載する)コマンドが送信される場合には、同時に転送データ長と読み出し/書き込みアドレスが供給される。
本実施の形態では、外部装置11からの読み出し/書き込み単位をセクタと呼び、1セクタサイズを例えば512Byteとした。ここで例えば、読み出しコマンドにおいて、読み出しアドレスが「0番地」で、転送データ長が「3」の場合には、NAND型フラッシュメモリ100の0番目の記憶位置から1.5kByteのデータの読み出し要求となる。
コントローラ300は、NAND型フラッシュメモリ100と一時記憶部200とに対する読み出し、書き込み、および消去を制御する制御部310と、書き込み用バッファメモリ210に格納されたデータの中からどのデータをNAND型フラッシュメモリ100に書き込むかを判断する判断部320とを有している。また制御部310は、書き込み用バッファ利用可能位置記憶部330と書き込みデータ情報記憶部350とを使用して書き込み用バッファメモリ210への書き込み処理を制御する。また判断部320は、書き込み順序記憶部360と書き込み情報量記憶部370とを使用して、書き込み用バッファメモリ210に格納されたデータの中からどのデータをNAND型フラッシュメモリ100に書き込むかを判断する。判断部320の判断結果は制御部310へと送信され、制御部310はその判断結果に基づいて動作する。
図5は、書き込み用バッファ利用可能位置記憶部330の構成を示すブロック図である。この書き込み用バッファ利用可能位置記憶部330には、書き込み用バッファメモリ210の空き領域(図4を参照)の先頭アドレスが順番に記憶されている。書き込み用バッファ利用可能位置記憶部330は、書き込み用バッファメモリ210の空き領域の先頭アドレスをFIFO構造で管理する。そして、書き込み用バッファメモリ210にデータを書き込む際の空き領域の割り当ては、書き込み用バッファ利用可能位置記憶部330の利用ポインタが示す位置から書き込み用バッファメモリ210の先頭アドレスを取得する。利用ポインタの位置は、割り当て動作後に更新(インクリメント)される。一方、書き込み用バッファメモリ210からNAND型フラッシュメモリ100に対してデータの書き込みが行われ、それにより不必要になった先頭アドレスは書き込み用バッファ利用可能位置記憶部330の登録ポインタが示す位置に書き込まれる。登録ポインタの位置は、登録動作の都度更新(インクリメント)される。これにより、書き込み用バッファ利用可能位置記憶部330には、書き込み用バッファメモリ210の先頭アドレスが常に確保されることになる。
図6は、書き込みデータ情報記憶部350の構成を示すブロック図である。書き込みデータ情報記憶部350には、書き込みデータの書き込み用バッファメモリ210での記憶位置とNAND型フラッシュメモリ100での記憶位置との対応関係を示す情報が記憶される。これにより、書き込み用バッファメモリ210に格納された書き込みデータを、アドレスの上位14bit(ブロック番号)ごとに分類する。ブロック番号ごとに分類された書き込みデータは、エントリ番号により管理される。
書き込みデータ情報記憶部350は、エントリ番号ごとに有効ビットフィールドと、ブロック番号フィールドと、書き込み用バッファアドレスフィールドと、ビットマップフィールドとを備える。図6に示すように、1行が1つのエントリ番号に対応する。
以下、4つのフィールドについて説明する。有効ビットフィールドには、各エントリの有効/無効が示す値が格納される。有効ビットフィールドが“1”であるエントリは有効であり、“0”であるエントリは無効である。ブロック番号フィールドには、NAND型フラッシュメモリ100のブロック番号が格納される。
書き込み用バッファアドレスフィールドには、ブロック番号によって指定されたNAND型フラッシュメモリ100のブロックに含まれる、ページ番号(0乃至63ページ)ごとに書き込み用バッファメモリ210の先頭アドレスが格納される。このエントリ番号ごとに格納された先頭アドレスを識別するページ番号とブロック番号フィールドのブロック番号により、NAND型フラッシュメモリ100の特定ブロックの特定ページが指定される。一方、対応する書き込み用バッファメモリ210の空きメモリ領域が存在しない場合、そのページには空きメモリ領域不存在を示す0xFFFFFFFFなどの値が格納される。
ビットマップフィールドには、ブロック番号によって指定されたNAND型フラッシュメモリ100の1ブロックに含まれるページ番号(0乃至63ページ)ごとにビットマップ情報が格納される。ここでビットマップ情報とは、書き込み用バッファメモリ210の1ブロックに含まれるページ番号(0乃至63ページ)ごとに書き込みデータの有無を、ページ内のセクタ単位(0乃至15セクタ)で示すものである。例えば、「書き込みデータあり」を“1”、「書き込みデータ無し」を“0”とする。本実施の形態では、1ページサイズが8kByte、1セクタサイズが512Byteであるため、ビットマップ格納領域は16bitのビットマップ情報として表すことができる。図6では、あるブロックのページ0のセクタ0、1、15は書き込みデータなし“0”が設定され、セクタ2乃至14は書き込みデータあり“1”が設定されていることを例示している。
図7は、読み出しデータ情報記憶部340の構成を示すブロック図である。読み出しデータ情報記憶部340は、読み出し用キャッシュメモリ220に記憶されるデータとNAND型フラッシュメモリ100の記憶位置の対応関係を示す情報を記憶する。読み出しデータ情報記憶部340は、読み出し用キャッシュメモリ220のエントリ番号ごとに有効ビットフィールドと、ページ番号フィールドとを備える。即ち、読み出しデータ情報記憶部340は、有効ビットフィールドおよびページ番号フィールドを、読み出し用キャッシュメモリ220に格納可能なエントリ(ページ)の数だけ記憶する。有効ビットフィールドには、読み出しキャッシュメモリ220に格納されるページ単位のデータが有効である場合“1”が、無効である場合“0”が格納される。ページ番号フィールドには、NAND型フラッシュメモリ100のページを一意に識別するためのフィールド番号(ブロック番号とページ番号とに対応する番号)が格納される。
図8は、書き込み順序記憶部360の構成を示すブロック図である。書き込み順序記憶部360には、書き込みデータ情報記憶部350と同一のエントリ番号ごとに、外部装置110から送信される書き込み要求の順序(書き込み順序)が記憶される。ここで書き込み順序は、書き込み要求における書き込み位置を示すアドレスの上位14bit(ブロック番号)と対応するエントリ番号を、順序番号ごとに格納することで記憶される。即ち、図8に示す例では、小さい順序番号に示される領域に格納されたエントリ番号ほど、新しい書き込み要求により書き込まれたことを意味する。ただし、書き込み順序を算出する上で同じエントリ番号を複数回カウントしない。そのため、書き込み順序記憶部360は、異なる順序番号が示す位置に同じエントリ番号が記憶されることはない。
ここで書き込み用バッファメモリ210に、エントリ番号:5に対応する書き込みデータが書き込まれたとする。その後、順次、エントリ番号:1、6、0、3、2、4、3の順番で、それぞれのエントリ番号に対応する書き込みデータが書き込み用バッファメモリ210に書き込まれたとする。この場合、書き込み順序記憶部360が保持する内容は図8に示す通りであり、順序番号0の領域にはエントリ番号:3が格納される。以下、同様に、書き込み順序記憶部360の順序番号1の領域にはエントリ番号:4、順序番号2の領域にはエントリ番号:2・・・が、それぞれ格納される。なお、同じエントリ番号を複数回カウントしないため、順序番号3の領域にエントリ番号:3は格納されない。また、格納するエントリ番号がない順序番号7の領域には、エントリ番号の対象なしを示す値が格納される。
図9は、書き込み情報量記憶部370の構成を示すブロック図である。書き込み情報量記憶部370には、書き込みデータ情報記憶部350と同一のエントリ番号ごとに、書き込み用バッファメモリ210に格納した書き込みデータ量が記憶される。ここで書き込みデータ量は、1つのエントリ番号に対応する64ページのうち、書き込みデータが存在するページの数(0乃至64)で表現される。例えば、エントリ番号:6のデータ量は2ページ、エントリ番号:5のデータ量は1ページ、‥エントリ番号:0のデータ量は25ページである。
ここで、書き込み用バッファ利用可能位置記憶部330、読み出しデータ情報記憶部340、書き込みデータ情報記憶部350、書き込み順序記憶部360、および書き込み情報量記憶部370は、DRAM、SRAMなどの揮発性メモリ、MRAM、FeRAMなどの不揮発性メモリが用いることができる。なお、制御部310や判断部320はハードウェア又はソフトウェアによって実現される。
次に、本実施の形態に係る半導体記憶装置の動作の説明を行う。
本実施の半導体記憶装置10の動作について、半導体記憶装置10からのデータの読み出し、書き込み用バッファメモリ210へのデータの書き込み、NAND型フラッシュメモリ100へのデータの書き込みの3つに分けて説明を行う。
(半導体記憶装置10からのデータの読み出し動作)
まず、半導体記憶装置10からのデータの読み出し動作について、図10のフローチャートを用いて説明する。
半導体記憶装置10からのデータ読み出し動作は、外部装置10からの読み出しコマンド、読み出しアドレス、転送データ長などを制御部310が受信することにより、開始される(ステップS101)。
制御部310は、受信したアドレスに対応するデータが、読み出し用キャッシュメモリ220にキャッシュされているかを判断する(ステップS102、S103)。キャッシュされているか否かの判断は、図7の読み出しデータ情報記憶装置340に格納されている情報を参照して行われる。
即ち、制御部310は、読み出しデータ情報記憶装置340に格納されているページ番号フィールドの内容と外部装置10から受信したアドレスが一致し、かつ有効ビットフィールドが有効“1”である場合、読み出し用キャッシュメモリ220に対応するデータがキャッシュされていると判断する。しかしながら、ページ番号フィールドの内容と外部装置10から受信したアドレスが一致しない場合や、一致しても有効ビットフィールドが無効“0”に設定されている場合は、読み出し用キャッシュメモリ220に対応するデータがキャッシュされていないと判断する。
制御部310は、読み出し用キャッシュメモリ220に対応するデータがキャッシュされていると判断した場合、読み出し用キャッシュメモリ220から当該データを読み出し、外部装置11に送信して動作を終了する(ステップS104)。
一方、読み出し用キャッシュメモリ220に対応するデータがキャッシュされていない場合、制御部310は、外部装置10から受信したアドレスをNAND型フラッシュメモリ100に転送し、NAND型フラッシュメモリ100から読み出したデータを外部装置11に送信して動作を終了する(ステップS105)。その際、制御部310は、読み出したデータを読み出し用キャッシュメモリ220に格納(コピー)すると同時に、それに対応して読み出しデータ情報記憶部340に読み出しアドレスを登録する。これにより、次に同じアドレスの読み出しが行われた場合、高速読み出しを可能とする。
(フラッシュメモリ100に対するデータ書き込み動作)
次に、外部装置11から書き込み用バッファメモリ210を介してNAND型フラッシュメモリ100に対するデータ書き込み動作を説明する。まず、外部装置11から書き込み用バッファメモリ210へのデータ書き込み動作を、図11のフローチャートを用いて説明する。
半導体記憶装置10に対するデータ書き込み動作は、外部装置11からの書き込みコマンド、書き込みアドレス、転送データ長などを制御部310が受信することにより、開始される(ステップS201)。
制御部310は、受信した書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域が既に確保されているか判断する(ステップS202)。領域が存在するか否かの判断は、図6の書き込みデータ情報記憶装置350に格納されている情報を参照して行われる。
即ち、制御部310は、書き込みデータ情報記憶部350に格納されているブロック番号フィールドの内容と外部装置10から受信したアドレスのブロック番号が一致し、かつ有効ビットフィールドが有効“1”であるエントリにおいて、受信した書き込みアドレスのブロック内ページ番号(図3の4bit目〜9bit目)で指定される書き込みデータ情報記憶部350の書き込み用バッファアドレスフィールドに有効なアドレスが格納されている場合に、受信した書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域が既に確保されていると判断する。
しかしながら、ブロック番号フィールドの内容と外部装置10から受信したアドレスのブロック番号が一致しない場合や、一致しても有効ビットフィールドが無効“0”に設定されている場合、書き込みデータ情報記憶部350の書き込み用バッファアドレスフィールドに有効なアドレスが格納されていない場合は、受信した書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域は確保されていないと判断する。
制御部310は、受信した書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域が既に確保されていると判断した場合、書き込み用バッファメモリ210に対する書き込みデータの書き込み処理を行う(ステップS207)。そして、書き込みデータ情報記憶部350、書き込み順序記憶部360、および書き込み情報量記憶部370の情報を更新する(ステップS208)。
一方、受信した書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域は確保されていないと判断した場合、次に、制御部310は、書き込みデータ情報記憶部350の有効ビットフィールドおよびブロック番号フィールドを参照して、受信したアドレスのブロック番号に対応する有効なエントリが存在するか判断する(ステップS203)。この判断は、図6の書き込みデータ情報記憶装置350を参照して同様に行われるため、その説明は省略する。
そして、受信したアドレスのブロック番号に対応する有効なエントリが書き込みデータ情報記憶部350に存在しない場合には、制御部310は、書き込みデータ情報記憶部350の有効ビットフィールドが無効“0”であるエントリを選択し、そのエントリを確保する(ステップS204)。即ち、制御部310は、書き込みデータ情報記憶部350の確保したエントリの有効ビットフィールドを有効“1”に設定し、またブロック番号フィールドには受信したアドレスの上位14bit(ブロック番号)を格納する。なお、ステップS204において、制御部310が書き込みデータ情報記憶部350の有効ビットフィールドが無効“0”であるエントリを発見できなかった場合には、書き込み用バッファメモリ210に記憶されたデータをNAND型フラッシュメモリ100に書き込み、書き込みデータ情報記憶部350の有効ビットフィールドが無効“0”であるエントリを作成してもよい。
ステップS203で、受信したアドレスのブロック番号に対応する有効なエントリが書き込みデータ情報記憶部350に存在すると判断した場合、あるいはステップS204で書き込みデータ情報記憶部350のエントリを新たに確保した場合、次に、制御部310は、書き込み用バッファメモリ210に空き領域が存在するかを判断する(ステップS205)。書き込み用バッファメモリ210に空き領域が存在するか否かの判断は、図5の書き込み用バッファ利用可能位置記憶部330に格納されている情報を参照して行われる。
即ち、制御部310は、書き込み用バッファ利用可能位置記憶部330の利用ポインタが示す位置に有効なアドレスが格納されている場合に、書き込み用バッファメモリ210に空き領域が存在すると判断する。
しかしながら、書き込み用バッファ利用可能位置記憶部330の利用ポインタが示す位置に有効なアドレスが格納されていない場合には、書き込み用バッファメモリ210に空き領域が存在しないと判断する。書き込み用バッファメモリ210に空き領域が存在しない場合には、制御部310は、書き込み用バッファメモリ210が保持するデータをNAND型フラッシュメモリ100に書き込み、書き込み用バッファメモリ210に空き領域を作成する(ステップS206)。
一方、書き込み用バッファメモリ210に空き領域が存在すると判断した場合、あるいは、書き込み用バッファメモリ210が保持するデータをNAND型フラッシュメモリ100に書き込み、書き込み用バッファメモリ210に空き領域を作成した場合、次に、制御部310は、外部装置11から受信した書き込みデータを書き込み用バッファメモリ210に書き込む(ステップS207)。
書き込み用バッファメモリ210への書き込み処理は、ステップS202で、書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域が既に確保されている場合は、その領域に対して行われる。一方、ステップS202で、書き込みデータを格納するための書き込み用バッファメモリ210のメモリ領域が確保されていない場合は、書き込み用バッファ利用可能位置記憶部330の利用ポインタの示す位置からアドレスを取得し、そのアドレスに指定される書き込み用バッファメモリ210の領域に書き込み処理が行われる。
ここで、書き込み用バッファ利用可能位置記憶部330から取得したアドレスは、上記書き込み処理を行った書き込みデータのエントリ番号とページ番号とによって指定される書き込みデータ情報記憶部350の書き込み用バッファアドレスフィールドに格納される。
その後、制御部310は、書き込み用バッファメモリ210に対して行った書き込み処理に応じて、書き込み順序記憶部360と、書き込み情報量記憶部370と、書き込みデータ情報記憶部350の内容を更新する(ステップS208)。
即ち、制御部310は、書き込みデータ情報記憶部350に対し、書き込み処理を行った領域(セクタ単位)に対応するビットマップフィールドに「書き込みデータ無し」“0”が格納されていた場合には、「書き込みデータ有り」“1”を格納する。
また、制御部310は、受信した書き込み要求に基づき、書き込み順序記憶部360に格納されている書き込み順序を更新する。即ち、書き込み処理を行った書き込みデータのエントリ番号を順序番号0が示す領域に格納する。そして、それまで順序番号0が示す領域に格納されていたエントリ番号を順序番号1が示す領域に移動する。さらに、それまで順序番号1が示す領域に格納されていたエントリ番号を順序番号2が示す領域に移動する。以下、同様にそれまで格納されていたエントリ番号を1つ大きい順序番号が示す領域に移動させる。なお、エントリ番号の移動は、順序番号0から順番に、「対象なし」あるいは「書き込み処理を行った書き込みデータのエントリ番号」と同じエントリ番号が格納されている順序番号まで行われる。
また、制御部310は、書き込み情報量記憶部370において、書き込みを行った書き込みデータのエントリ番号と対応する領域に格納されている値を、書き込み処理(ステップS207)後のメモリ領域を割り当てている総ページ数に更新する。
(書き込み用バッファメモリ210からフラッシュメモリ100への書き込み動作)
次に、書き込み用バッファメモリ210からNAND型フラッシュメモリ100へのデータの書き込み動作を図12のフローチャートを用いて説明する。
ここでは、書き込み用バッファメモリ210からNAND型フラッシュメモリ100へのデータの書き込み動作が開始され、判断部320が書き込みエントリを選択した後の動作(ステップS303〜S307)を先に説明する。
制御部310は、書き込み先であるブロックに格納されているデータの中で、書き込み対象となっていないデータ(即ち、書き込み用バッファメモリ210に格納されていないデータ)をNAND型フラッシュメモリ100から読み出し、読み出し用キャッシュメモリ220にコピーする(ステップS303)。当該ブロックに格納されているデータの中で、書き込み対象となっていないデータが存在するか否かの判断は、図6の書き込みデータ情報記憶装置350に格納されているビットマップを参照して行われる。
即ち、制御部310は、書き込みデータ情報記憶部350を参照して、書き込みを行うエントリ番号のビットマップフィールドの中で、16個のセクタすべてに「書き込みデータ有り」“1”が格納されているページ番号があれば、それを特定する。制御部310は、そのページ番号およびエントリ番号(ブロック番号)に指定される領域については、書き込みバッファメモリ210に書き込みデータが存在すると判断する。したがって、この領域のNAND型フラッシュメモリ100からは読み出しが行われず、読み出し用キャッシュメモリ220にはコピーされない。
一方、書き込みデータ情報記憶部350の書き込みを行うエントリ番号のビットマップフィールドの中で、16個のセクタのうち1つでも「書き込みデータ無し」“0”が格納されているページ番号があれば、それを特定する。制御部310は、そのページ番号およびエントリ番号(ブロック番号)に指定されるデータは書き込み対象となっておらず、書き込みバッファメモリ210にもデータが格納されていないと判断する。したがって、制御部310は、この領域のNAND型フラッシュメモリ100からデータを読み出し、読み出し用キャッシュメモリ220にコピーする。ここで、読み出し用キャッシュメモリ220に読み出されるデータの記憶容量は1ブロック分であるので、常にデータをコピーすることができる。
ステップS303において、読み出し用キャッシュメモリ220にデータをコピーした後、制御部310は読み出しデータ情報記憶部340のコピーした領域に対応する有効ビットフィールドを「無効」“0”に設定する(ステップS304)。
次に、制御部110は、NAND型フラッシュメモリ100の書き込み先である領域のブロック消去を行う(ステップS305)。
ブロック消去を行った領域に対して、制御部110は、読み出し用キャッシュメモリ220にコピーしたデータと書き込み用バッファメモリ210に格納した書き込みデータとをマージして書き込みを行う(ステップS306)。書き込み時におけるマージは、図6の書き込みデータ情報記憶装置350に格納されているビットマップフィールドを参照して行われる。
即ち、制御部110は、書き込みデータ情報記憶装置350のビットマップフィールドに「書き込みデータ有り」“1”が設定されているセクタについては書き込み用バッファメモリ210からのデータをNAND型フラッシュメモリ100に書き込む。一方、書き込みデータ情報記憶装置350のビットマップフィールドに「書き込みデータ無し」“0”が設定されているセクタについては読み出し用キャッシュメモリ220からのデータをNAND型フラッシュメモリ100に書き込む。
その後、制御部310は、NAND型フラッシュメモリ100に対して行った書き込み処理に応じて、書き込み用バッファ利用可能位置記憶部330と、書き込み順序記憶部360と、書き込み情報量記憶部370と、書き込みデータ情報記憶部350の内容を更新する(ステップS307)。
即ち、制御部310は、書き込みデータ情報記憶部350において、書き込みを行った書き込みデータのエントリ番号に指定されるエントリの有効ビットフィールドとビットマップフィールドとをすべて“0”に初期化する。
また、制御部310は、書き込みデータ情報記憶部350の前記エントリ番号に指定されるエントリの書き込み用バッファアドレスフィールドに格納されているアドレスを書き込み用バッファ利用可能位置記憶部330の登録ポインタの示す位置に再登録する。
また、制御部310は、書き込み順序記憶部360の書き込みを行った書き込みデータのエントリ番号を削除する。その際に、削除するエントリ番号が格納されていた順序番号の領域は空となる。そこで、制御部310は、空きになった順序番号よりも大きい順序番号に格納されているエントリ番号を、1つ小さい順序番号に指定される領域に移動させる。
また、制御部310は、書き込み情報量記憶部370の書き込みを行った書き込みデータのエントリ番号に対応する書き込み情報量を「0」に初期化する。
(書き込みエントリを選択)
次に、判断部320が書き込み順序記憶部360、書き込み情報量記憶部370に基づいて、NAND型フラッシュメモリ100に書き込むエントリを選択する動作(ステップS301)について、図8、図9を用いて説明する。なお、書き込み順序は図8に示す例、書き込み情報量は図9に示す例であるものとする。
第1の判断手法を説明する。判断部320は、書き込み順序記憶部360の順序番号が第1の既定値以上であるエントリ番号の中で、書き込み情報量が最大であるエントリ番号を選択する。ここで、例えば第1の既定値を「2」とする。
この場合、図8の書き込み順序記憶部360から書き込み順序の順序番号が2以上のエントリ番号は2、0、6、1、5である。それらのエントリ番号の中で書き込み情報量が最大であるエントリ番号は、図9の書き込み情報量記憶部370からエントリ番号:1の書き込み情報量「55」である。そのため、判断部320はエントリ番号:1が書き込みエントリとして選択する。
ここで、エントリ番号:3、4の書き込み情報量はそれぞれ「64」、「62」であり、これを書き込みエントリとして選択したほうが良いよいに思われる。しかし、メモリアクセスにおける参照の位置と時間の局所性により、エントリ番号:3、4のエントリは再び書き込みデータが追加される可能性が高く、後にNAND型フラッシュメモリ100に書き込みを行ったほうが効率がよいとの判断にて第1の既定値を「2」が設定されている。
以上のような、第1の判断手法を採用することにより、アクセスが頻発しているエントリを避けて、書き込み情報量が大きいエントリをNAND型フラッシュメモリ100に書き込むことができるため、実効的書き込み速度の向上と長寿命化を実現できる。
次に、第2の判断手法を説明する。判断部320は、書き込み順序記憶部360の順序番号が第1の既定値未満であり、かつ、書き込み情報量が第2の既定値以上であるエントリを選択する。ここで、例えば第1の既定値を「2」とし、例えば第2の既定値を「64」(最大)とする。
この場合、図8の書き込み順序記憶部360から書き込み順序の順序番号が2未満であるという条件より、エントリ番号:3、4が選択される。さらに図9の書き込み情報量記憶部370から、これら2つのエントリ番号の中で書き込み情報量が「64」以上であるエントリ番号:3が書き込みエントリとして選択される。
ここで、書き込み順序の順序番号が第1の既定値「2」よりも小さいエントリであっても、書き込み情報量が最大であるエントリはデータが追加される可能性が小さいと推測される。この第2の判断手法は、特に容量の大きなデータの書き込みを頻繁に行うシステムに良く適合する。
以上のような、第2の判断手法を採用することにより、順序番号は小さくても、データが追加される可能性が小さいエントリを書き込みエントリとして選択することができる。このため、データが追加される可能性が小さく、書き込み情報量が大きいエントリを選択することができるため、実効的書き込み速度の向上が実現できる。なお、第2の既定値を64(最大)としたが、上記の効果を実現するにあたり、システムの特性に応じて、第2の既定値を最適化することができる。
また、第2の判断手法はLRU(Least Recently Used)動作と併用することができる。LRU動作とは、書き込み順序記憶部360において順序番号が最大のエントリを選択する方式である。
LRU動作は、順序番号が最大であり、データの追加される可能性が小さいエントリを書き込みエントリとして選択するため、NAND型フラッシュメモリ100に対して効率的な書き込みを実現できるように思われる。しかし、LRU動作のみでNAND型フラッシュメモリ100に書き込みを行うと、順序番号が小さく書き込み情報量の大きいエントリは選択されない。その結果、選択されないエントリが書き込み用バッファメモリ210の領域を多く専有することになる。
そこで、まず第2の判断手法を実行し、条件を満足するエントリを選択する。そして、第2の判断手法の条件を満足するエントリがなければ、LRU動作をする構成をとる。ここで、例えば第1の既定値を「2」とし、例えば第2の既定値を「64」(最大)とすると、まず、第2の判断手法によりエントリ番号:3のエントリが書き込みエントリとして選択される。さらに、書き込みエントリの選択を行う場合には、LRU動作によりエントリ番号:5、1、6、0・・と順次書き込み順序番号の順序番号が最大であるエントリが書き込みエントリとして選択される。
以上のように、第2の判断手法とLRU動作を併用させると、順序番号が小さく、かつ、書き込み情報量が大きいエントリをNAND型フラッシュメモリ100に効率的に書き込みできる上、一時記憶手段200の領域を有効に活用し、NAND型フラッシュメモリ100に対する書き込みの効率を高く保持することができる。
また、第1の判断手法と第2の判断手法を併用することができる。即ち、第1の既定値を「2」、第2の規定値を「64」とし、1つ目の判断手法と第2の判断手法の効果を合わせて実現することが可能である。そして、最初に第2の判断手法を適用し、条件に満足するエントリ番号が無ければ、次に第1の判断出法を適用する構成とすると効果的である。
この場合、書き込みエントリとして選択されるエントリ番号は、最初にエントリ番号:3、次にエントリ番号:1、その次にエントリ番号:0となる。
以上のように、第1の判断手法と第2の判断手法を併用することにより、データが追加される可能性の小さいエントリ番号であって、書き込み情報量の大きいエントリ番号を選択できるため、実効的書き込み速度の向上と長寿命化が実現できる。
ここで、第1の判断手法において、例えば第1の既定値を「2」とすると、メモリアクセスで2つのエントリに対して書き込みが交互に行われる場合により実効的書き込み速度の向上と長寿命化という効果が強まる。即ち、2つのエントリに対する書き込みが交互に行われているとき、順序番号0と順序番号1のエントリ番号の書き込み情報量が増大する。ここで、順序番号0と順序番号1のエントリ番号は、データが再び書き込まれる可能性が極めて大きく書き込みエントリとして選択すべきではない。ここで、第1の判断手法において、第1の既定値が「2」と設定されていると、順序番号0と順序番号1のエントリ番号が書き込みエントリとして選択されることはない。よって、それらのエントリ番号の順序番号が「2」よりも大きな値となり、アクセスが一通り終了した後に第1の判断手法により書き込みエントリとして選択することができる。
同様の理由により、3つのエントリに対する書き込みが頻発するシステムでは第1の規定値を「3」とすると良い。4つのエントリに対する書き込みが頻発するシステムでは第1の既定値を「4」とすると良い。それ以降についても同様である。
また、書き込み用バッファメモリ210の空き領域が無いとき、および少ないときに、上記判断手法でエントリが選択されなかった場合には、書き込み情報量が最大のエントリを選択することとする。書き込み用バッファメモリ210の空き領域を迅速に作成することが必要だからである。
さらに、上記に示した判断部320が書き込みエントリを選択する手法を複数組み合わせることができる。
例えば、1番目に順序番号0、1、2、かつ、書き込み情報量が「64」であるエントリの書き込みを行う。この条件を満足するエントリが無ければ、2番目に順序番号3〜10、かつ、書き込み情報量が「40」以上のエントリの書き込みを行う。同様に条件を満足するエントリが無ければ、順序番号11以上、かつ、書き込み情報量が「10」以下および20以上のエントリを書き込む。以上のように、複数の場合わけと異なる条件を設定することが可能である。
このように、書き込みエントリを選択する判断手法を複数組み合わせることにより、それぞれの判断手法の効果をシステムの特性に合わせて発揮することができる。
次に、判断部320が書き込みエントリを選択し、制御部310が選択した書き込みエントリをNAND型フラッシュメモリ100に書き込む際に、制御部310が付随して行う動作について述べる。
制御部310は、書き込みブロックと隣接するブロック(隣接ブロック)に1つの連続するデータがまたがって格納されているか否かを判断する。制御部310は、連続するデータ(連続データ)の存在を確認したときは、連続データが格納されている隣接ブロックに対応するエントリについてもNAND型フラッシュメモリ100に書き込みを行う。
次に、連続データの存在の有無を判断する方法について以下に述べる。
第1の方法は、隣接ブロックに対応するエントリの書き込み情報量が一定以上の場合、連続データの存在有りと判断する。
第2の方法は、ブロック番号「書き込みを行うブロック番号+1」のページ番号0に対応するビットマップフィールドにおいて、「書き込みデータあり」“1”の数が一定以上ある場合、連続データの存在有りと判断する。また、ブロック番号「書き込みを行うブロック番号−1」のページ番号63(ページ番号最大)に対応するビットマップフィールドにおいて、「書き込みデータあり」“1”の数が一定以上ある場合、連続データの存在有りと判断する。
第3の方法は、ブロック番号「書き込みを行うブロック番号+1」のページ番号0の0番目のビットマップフィールドが「書き込みデータあり」“1”のとき、連続データの存在有りと判断する。また、ブロック番号「書き込みを行うブロック番号−1」のページ番号63(ページ番号最大)の15番目(最後の番号)のビットマップフィールドが「書き込みデータあり」“1”のとき、連続データの存在有りと判断する。
第4の方法は、ブロック番号「書き込みを行うブロック番号+1」のページ番号0の第1特定番号あるいは0〜第1特定番号までのすべてのビットマップフィールドが「書き込みデータあり」“1”のとき、連続データの存在有りと判断する。また、ブロック番号「書き込みを行うブロック番号−1」のページ番号63(ページ番号最大)の第2特定番号あるいは第2特定番号〜15番目(最後の番号)までのすべてのビットマップフィールドが「書き込みデータあり」“1”のとき、連続データの存在有りと判断する。
以上4種類の方法のいずれかの方法により複数のブロックにまたがって格納された連続データの有無の判断を行う。連続データが存在すると判断されたときに、連続データが格納されている隣接ブロックに対応するエントリの書き込みを行うことにより、当該連続データの一部が書き込まれているものの、その後データが追加される可能性が小さいエントリの書き込みを行うことができる。よって、書き込み用バッファメモリ210を効率的に使用できる。
次に、外部装置11からのコマンドを一定時間受信しなかった場合や、休止モードとするコマンドを受信した場合など、外部装置11からの書き込み/読み出し要求を一定期間受信しないと予想されるときの処理について説明する。
ここで、判断部320は、書き込み順序記憶部360における順序番号が第3の既定値以上であるエントリ番号のうち、書き込み情報量が最小であるものをNAND型フラッシュメモリ100に書き込む。ここで、第3の既定値を「4」とする。
この場合、書き込み順序の順序番号が「4」以上の条件より、図8の例ではエントリ番号:1、5、6が選択される。それらのエントリ番号の中で書き込み情報量が最小であるエントリは、エントリ番号:5の書き込み情報量「1」である。そのため、エントリ番号:5が書き込みエントリとして選択される。
ここで、書き込み情報量が「1」以上の他のエントリ番号を書き込みエントリとして選択したほうが良いように思われる。しかし、順序番号が第3の既定値以上であり、データが追加されてからの時間経過が大きく、再びデータが追加される可能性が小さい。しかも、エントリ番号:5の書き込み情報量は「1」であるため、書き込みエントリとして選択されにくい。その結果、エントリ番号:5のエントリは、一時記憶手段200に長期間記憶されることになり、一時記憶手段200の記憶領域に事実上使用不可能なデッドスペースが発生する。
さらに、上記のような書き込み用バッファメモリ210に長期間記憶されるエントリが多数蓄積し、書き込み用バッファメモリ210が事実上使用不可能なデッドスペースに埋め尽くされたとき、極めて深刻な問題を引き起こす。すなわち、書き込み用バッファメモリ210に書き込み情報量の小さいエントリしか存在しないために、データを書き込むための空き領域を作成するのに大きな時間がかかり、半導体記憶装置10全体に対する実効的な書き込み速度が極度に低下する問題である。
よって、外部装置11からの書き込み/読み出し要求を一定期間受信しないと予想されるときに、順序番号が第3の既定値以上であり、かつ、書き込み情報量が最小のエントリを書き込みエントリとして選択する。このような書き込み処理を行うことにより、順序番号が大きくデータの追加が行われる可能性が小さく、書き込み情報量も小さいエントリの蓄積を防止することができる。
次に、書き込み用バッファメモリ210からNAND型フラッシュメモリ100に対して書き込みを行うタイミング(ステップS302)について説明する。
まず、書き込み用バッファメモリ210の空き領域が無いあるいは少ないとき、また、書き込みデータ情報記憶部350に有効ビットフィールドが「0」であるエントリが存在しないときである。この場合は、第1の判断手法あるいは第2の判断手法など、書き込み情報量が一定値以上、あるいは最大であるエントリを選択する判断手法を用いる。書き込み用バッファメモリ210の空き領域を迅速に作成するためである。
次に、書き込み要求を受信したときである。この場合は、書き込み用バッファメモリ210の空き領域が無い、あるいは少ないときを除いて、任意の手法を採用できる。この場合、書き込み用バッファメモリ210からNAND型フラッシュメモリ100に対してデータの書き込みを行うことにより書き込み用バッファメモリ210に空き領域を作成しながら、同時に外部装置11からのデータを書き込み用バッファメモリ210に作成された空き領域に書き込むことができる。
そして、外部装置11からの書き込み/読み出し要求を一定期間受信しないと予想されるときである。この場合も、システムの特性に応じて任意の手法を採用することができる。
また、半導体記憶装置10に一時記憶部200を備えた場合、外部装置11がNAND型フラッシュメモリ100に直接書き込みを行う必要がなくなるので、インターフェースがシンプルとなる。加えて、一時記憶部200である書き込み用バッファメモリ210、読み込み用バッファメモリ、コントローラ300の一部である書き込み用バッファ利用可能位置記憶部330、読み出しデータ情報記憶部340、書き込みデータ情報記憶部350、書き込み順序記憶部360、書き込み情報量記憶部370、制御部310、判断部320が使用するプログラムやデータなどを記憶する記憶部を不揮発性メモリで作成することができる。
以上のような構成をとることにより、電源瞬断時などでも書き込み用バッファメモリ210に格納された情報やデータの記憶位置の対応関係などの情報を消失することがなく、耐久性が高い。また、電源立ち下げ時などに書き込み用バッファメモリ210に格納された情報を書き込む必要が無くなり、NAND型フラッシュメモリ100の書き換え回数を抑制できる。
さらに、本発明は以上の構成に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化可能である。また、本実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、本実施の形態に示される全構成要素からいくつかの要素を削除しても良い。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
本発明の実施の形態に係る半導体記憶装置の構成を示すブロック図。 実施形態に係るNAND型フラッシュメモリ100のブロックとページの関係を示す図。 実施形態に係るNAND型フラッシュメモリ100のアドレスを示す図。 実施形態に係る一時記憶部200の構成を示す図。 実施形態に係る書き込み用バッファ利用可能位置記憶部330の構成を示す図。 実施形態に係る書き込みデータ情報記憶部350の構成を示す図。 実施形態に係る読み出しデータ情報記憶部340の構成を示す図。 実施形態に係る書き込み順序記憶部360の構成を示す図。 実施形態に係る書き込み情報量記憶部370の構成を示す図。 実施形態に係る半導体記憶装置からのデータ読み出し動作を示すフローチャート。 実施形態に係る書き込み用バッファメモリ210に対するデータ書き込み動作を示すフローチャート。 実施形態に係るNAND型フラッシュメモリ100に対するデータ書き込み動作を示すフローチャート。
符号の説明
100 NAND型フラッシュメモリ
200 一時記憶手段
210 書き込み用バッファメモリ
220 読み出し用キャッシュメモリ
300 コントローラ
310 制御部
320 判断部
330 書き込み用バッファ利用可能位置記憶部
340 読み出しデータ情報記憶部
350 書き込みデータ情報記憶部
360 書き込み順序記憶部
370 書き込み情報量記憶部

Claims (11)

  1. 1回のブロック消去ごとに1回だけデータを書き込むことができ、前記ブロック消去の最小サイズが書き込みデータの最小サイズよりも大きいフラッシュメモリと、
    外部装置から送信された複数の書き込みデータが一時的に記憶される第1のメモリと、
    前記第1のメモリに記憶された前記書き込みデータの記憶位置と、前記外部装置から前記フラッシュメモリに対して出力された前記書き込みデータの記憶位置との対応関係が記憶される第2のメモリと、
    前記書き込みデータが書き込まれる前記フラッシュメモリの消去ブロックに対応づけて前記第1のメモリに記憶された前記書き込みデータの量が記憶される第3のメモリと、
    前記外部装置から前記フラッシュメモリへの書き込み要求の順序が前記消去ブロック単位に付与され記憶される第4のメモリと、
    前記第3のメモリに記憶される前記書き込みデータの量と前記第4のメモリに記憶される前記書き込み要求の順序とに基づいて前記第1のメモリから前記フラッシュメモリに書き込む前記書き込みデータを少なくとも1つ選択し、前記第2のメモリに記憶される前記対応関係に基づいて指定される前記フラッシュメモリの記憶位置へ選択した前記書き込みデータを書き込む制御部と
    を有することを特徴とする半導体記憶装置。
  2. 前記制御部は、前記第4のメモリに記憶される前記書き込み要求の順序が第1の規定順序である書き込み要求以前の書き込み要求により書き込まれ、かつ、前記第3のメモリに記憶される前記書き込みデータの量が最大である書き込みデータを前記第1のメモリから選択して前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の半導体記憶装置。
  3. 前記制御部は、前記第4のメモリに記憶される前記書き込み要求の順序が第1の規定順序である書き込み要求より新しい書き込み要求により書き込まれ、かつ、前記第3のメモリに記憶される前記書き込みデータの量が第2の既定値以上である前記書き込みデータを前記第1のメモリから選択して前記フラッシュメモリに書き込むこと特徴とする請求項1に記載の半導体記憶装置。
  4. 前記制御部は、前記第4のメモリに記憶される前記書き込み要求の順序が第1の規定順序である書き込み要求より新しい書き込み要求により書き込まれ、かつ、前記第3のメモリに記憶される前記書き込みデータの量が第2の既定値以上である前記書き込みデータ、および、前記第4のメモリに記憶される前記書き込み要求の順序の中で最も古い書き込み要求により書き込まれた前記書き込みデータを前記第1のメモリから選択して前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の半導体記憶装置。
  5. 前記制御部は、前記第4のメモリに記憶される前記書き込み要求の順序が第1の規定順序である書き込み要求以前の書き込み要求により書き込まれ、かつ、前記第3のメモリに記憶される前記書き込みデータの量が最大である前記書き込みデータ、および、前記第4のメモリに記憶される前記書き込み要求の順序が第1の規定順序である書き込み要求より新しい書き込み要求により書き込まれ、かつ、前記第3のメモリに記憶される前記書き込みデータの量が第2の既定値以上である前記書き込みデータを前記第1のメモリから選択して前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の半導体記憶装置。
  6. 前記第2の既定値が1つの前記消去ブロックに書き込み可能な最大のデータ量であることを特徴とする請求項3乃至請求項5のいずれか1項に記載の半導体記憶装置。
  7. 前記第1の既定順序が、前記第4のメモリに記憶される前記書き込み要求の順序の中で3番目に新しい書き込み要求を示すことを特徴とする請求項2乃至請求項6のいずれか1項に記載の半導体記憶装置。
  8. 前記制御部は、隣接する2つ以上の前記消去ブロックにまたがって格納すべき連続データの有無を判断し、前記連続データが存在すると判断した場合には、前記第1のメモリから当該連続データを選択して前記フラッシュメモリに書き込むことを特徴とする請求項1乃至請求項5のいずれか1項に記載の半導体記憶装置。
  9. 前記制御部は、前記第1のメモリに記憶された前記書き込みデータを前記フラッシュメモリに書き込む際に、当該書き込みデータの属する消去ブロックと隣接する消去ブロックとにまたがって格納すべき連続データの有無を判断し、前記連続データが存在すると判断した場合には、前記第1のメモリから当該連続データを選択して前記フラッシュメモリに書き込むことを特徴とする請求項1乃至請求項5のいずれか1項に記載の半導体記憶装置。
  10. 前記制御部は、前記外部装置からの書き込み/読み出し要求を一定期間受信しないと予測した場合に、前記第4のメモリに記憶される前記書き込み要求の順序が第3の既定値以上であり、前記第3のメモリに記憶される前記書き込みデータの量が最小である前記書き込みデータを前記第1のメモリから選択して前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の半導体記憶装置。
  11. 前記制御部は、前記外部装置から送信される書き込みデータを記憶する領域が前記第1のメモリに存在しない場合に、選択した前記書き込みデータを前記第1のメモリから前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の半導体記憶装置。
JP2007033475A 2007-02-14 2007-02-14 半導体記憶装置 Pending JP2008197981A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007033475A JP2008197981A (ja) 2007-02-14 2007-02-14 半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007033475A JP2008197981A (ja) 2007-02-14 2007-02-14 半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2008197981A true JP2008197981A (ja) 2008-08-28

Family

ID=39756855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007033475A Pending JP2008197981A (ja) 2007-02-14 2007-02-14 半導体記憶装置

Country Status (1)

Country Link
JP (1) JP2008197981A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086107A (ja) * 2008-09-30 2010-04-15 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2010097333A (ja) * 2008-10-15 2010-04-30 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8214579B2 (en) 2008-09-30 2012-07-03 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
JP2014182792A (ja) * 2013-03-15 2014-09-29 Samsung Electronics Co Ltd メモリシステムの動作方法、メモリシステム、及びメモリコントローラ
US10248317B2 (en) 2007-12-28 2019-04-02 Toshiba Memory Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0955091A (ja) * 1995-08-07 1997-02-25 Fujitsu Ltd フラッシュメモリ装置
JP2004348342A (ja) * 2003-05-21 2004-12-09 Toshiba Corp Icカードとicカードの処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0955091A (ja) * 1995-08-07 1997-02-25 Fujitsu Ltd フラッシュメモリ装置
JP2004348342A (ja) * 2003-05-21 2004-12-09 Toshiba Corp Icカードとicカードの処理方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248317B2 (en) 2007-12-28 2019-04-02 Toshiba Memory Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US11960719B2 (en) 2007-12-28 2024-04-16 Kioxia Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US11513682B2 (en) 2007-12-28 2022-11-29 Kioxia Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US10845992B2 (en) 2007-12-28 2020-11-24 Toshiba Memory Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
JP4582232B2 (ja) * 2008-09-30 2010-11-17 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8200890B2 (en) 2008-09-30 2012-06-12 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US8214579B2 (en) 2008-09-30 2012-07-03 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
JP2010086107A (ja) * 2008-09-30 2010-04-15 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8239615B2 (en) 2008-09-30 2012-08-07 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US8219742B2 (en) 2008-10-15 2012-07-10 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
JP4632180B2 (ja) * 2008-10-15 2011-02-16 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2010097333A (ja) * 2008-10-15 2010-04-30 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2018198085A (ja) * 2013-03-15 2018-12-13 三星電子株式会社Samsung Electronics Co.,Ltd. メモリシステムの動作方法、メモリシステム、及びメモリコントローラ
US10318339B2 (en) 2013-03-15 2019-06-11 Samsung Electronics Co., Ltd. Method of operating a memory system, the memory system, and a memory controller
JP2014182792A (ja) * 2013-03-15 2014-09-29 Samsung Electronics Co Ltd メモリシステムの動作方法、メモリシステム、及びメモリコントローラ

Similar Documents

Publication Publication Date Title
US10331356B2 (en) Data writing processing into memory of a semiconductor memory device by using a memory of a host device
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US9026734B2 (en) Memory system and data deleting method
US8386714B2 (en) Reducing write amplification in a cache with flash memory used as a write cache
US8180955B2 (en) Computing systems and methods for managing flash memory device
JP5480913B2 (ja) 記憶装置、およびメモリコントローラ
US20110231598A1 (en) Memory system and controller
US9003099B2 (en) Disc device provided with primary and secondary caches
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
JP2008152464A (ja) 記憶装置
US8438325B2 (en) Method and apparatus for improving small write performance in a non-volatile memory
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2011145838A (ja) 記憶装置管理装置および記憶装置の管理方法
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
JP5570406B2 (ja) メモリコントローラ、及びデータ記録装置
JP2009037317A (ja) メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
JP2008197981A (ja) 半導体記憶装置
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2007334413A (ja) 記憶装置
JP5036078B2 (ja) 記憶装置
JP2005243000A (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP2008287398A (ja) 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置
JP4558054B2 (ja) メモリシステム
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120720

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121109