JP2009064251A - 半導体記憶装置及び半導体記憶装置の制御方法 - Google Patents

半導体記憶装置及び半導体記憶装置の制御方法 Download PDF

Info

Publication number
JP2009064251A
JP2009064251A JP2007231640A JP2007231640A JP2009064251A JP 2009064251 A JP2009064251 A JP 2009064251A JP 2007231640 A JP2007231640 A JP 2007231640A JP 2007231640 A JP2007231640 A JP 2007231640A JP 2009064251 A JP2009064251 A JP 2009064251A
Authority
JP
Japan
Prior art keywords
data
page
unit
flash memory
memory controller
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.)
Granted
Application number
JP2007231640A
Other languages
English (en)
Other versions
JP5087347B2 (ja
Inventor
Eiga Mizushima
永雅 水島
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007231640A priority Critical patent/JP5087347B2/ja
Priority to EP08250224A priority patent/EP2034414A1/en
Priority to US12/017,615 priority patent/US8312203B2/en
Priority to CN200810098627XA priority patent/CN101382917B/zh
Publication of JP2009064251A publication Critical patent/JP2009064251A/ja
Application granted granted Critical
Publication of JP5087347B2 publication Critical patent/JP5087347B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【解決課題】性能悪化を抑制する半導体記憶装置を提供する。
【解決手段】メモリコントローラは、チップ内の各ブロックを、複数ページから成る第1ページ集合と、複数ページから成る第2ページ集合に分割し、論理アドレス空間を複数グループに分割し、各グループを複数ラインに分割する。そして、複数チップの各々から所定数のブロックを集めてブロックユニットを複数組作成し、このうち所定数のブロックユニットを標準ブロックユニット、それ以外を予備ブロックユニットとして管理する。各標準ブロックユニットには1つのグループを対応付け、標準ブロックユニットを構成する複数ブロックの第1ページ集合内のページに対応グループのデータを格納し、第2ページ集合内のページにそのグループデータの更新データを記録するための未書き込みページを設ける。
【選択図】図1

Description

本発明は、半導体記憶装置及び半導体記憶装置の制御方法に関し、特に、電気的に書き換え可能な不揮発性メモリを記憶媒体として使用した半導体記憶装置及び半導体記憶装置の制御方法に適用しても好適なものである。
1つの論理ブロック内のデータを複数のフラッシュメモリ物理ブロックへと分配して格納し、各物理ブロック内の格納データを更新する際には、当該物理ブロック内の空きページにその更新データを記録して、元の格納データを無効化し、また、当該物理ブロック内の空きページが不足したならば、当該物理ブロック内の最新の更新データを当該格納データにマージしながら別の物理ブロックにコピーし、新たな空きページを確保し、以後の更新データを記録するという半導体記憶装置が知られている(例えば、特許文献1参照)。なお、マージとは、古い箇所のデータを最新のデータで置き換えて最新の状態のデータを構築することである。
また、複数のフラッシュメモリチップを搭載し、各チップの物理ブロックを集めて仮想ブロックを形成し、それらの読み書きを並列処理させる半導体記憶装置について、仮想ブロックを管理する方法が知られている(例えば、特許文献2参照)。
米国特許7039788号公報 特開2006−127234号公報
特許文献2のように複数のフラッシュメモリチップを搭載し、性能を高めるためにそれらの複数チップを並列処理するように構成された半導体記憶装置において、特許文献1のように物理ブロック内に設けた空きページを利用して更新データを記録する制御方法を適用した場合、更新データの記録状態によっては複数チップの並列処理が非効率化し、ライト/リード性能が悪化するおそれがある。
本発明は、以上の点を考慮してなされたもので、性能悪化を抑制することができる半導体記憶装置及び半導体記憶装置の制御方法を提案しようとするものである。
本発明の半導体記憶装置は、メモリコントローラと複数のフラッシュメモリチップとを備える。それらのチップ内の各ブロックを、複数ページから成る第1ページ集合と、複数ページから成る第2ページ集合に分割する。そして、論理アドレス空間を複数グループに分割し、各グループを複数ラインに分割する。そして、複数チップの各々から所定数のブロックを集めてブロックユニットを複数組作成する。このうち所定数のブロックユニットを標準ブロックユニット、それ以外を予備ブロックユニットとして管理する。各標準ブロックユニットには1つのグループを対応付ける。そして、標準ブロックユニットを構成する複数ブロックの第1ページ集合内のページに対応グループのデータを格納し、第2ページ集合内のページ中にそのグループデータの更新データを記録するための未書き込みページを設ける。
この半導体記憶装置がライトコマンドに応じてライトアドレスとライトデータとを受信すると、メモリコントローラは、ライトアドレスを含むグループとラインとを特定し、複数チップの中から、第2ページ集合に関して所定の条件を満たすチップを1つ選択し、特定したグループ/ライン内データの更新データとして、そのライトデータを選択チップの第2ページ集合内の未書き込みページに書き込む。
前記の所定条件とは、特定グループに対応する標準ブロックユニットに属する第2ページ集合内に少なくとも1つの未書き込みページを有するフラッシュメモリチップのうち、特定ライン内データの更新データの記録ページ数が最も少ないフラッシュメモリチップという条件である。
この構成によれば、複数のフラッシュメモリチップを並列処理するように構成され、各チップの物理ブロック内の空きページを用いて更新データを記録するようにメモリ制御を行う半導体記憶装置において、当該装置外からのデータライト時に当該装置内で実施するデータマージコピー、または当該装置外へのデータリードで、並列処理されるメモリコマンドタスクがメモリチップ全体に均等に分配されることにより、それらのチップがアイドル状態にある時間が削減され、当該装置のライト/リード性能悪化が抑制されるという効果を奏する。
本発明によれば、性能悪化を抑制することができる半導体記憶装置及び半導体記憶装置の制御方法を提供できる。
以下、本発明の一実施の形態について図面を参照して説明する。
図1は、本発明を適用した半導体記憶装置1000の内部構造を簡単に示した図である。半導体記憶装置1000は、ホストインタフェース1010、メモリコントローラ1020、ホストデータバッファ1030、テンポラリデータバッファ1040、複数(例えば16枚)のフラッシュメモリチップ1100〜1115で構成される。
ホストインタフェース1010は外部のホスト(図示しない。)と接続されるインタフェース機構であり、ホストからリード/ライト要求コマンドに応答して、フラッシュメモリチップ1100〜1115に格納されたデータをホストに送信したり、フラッシュメモリチップ1100〜1115に格納すべきライトデータをホストから受信したりする。
なお、ホストは、リード/ライトを要求するデータの論理的な格納位置を論理アドレス(以下、LBA(Logical Block Address))によって指定する。この論理アドレスはフラッシュメモリチップ1100〜1115をメモリコントローラ1020がアクセスする時に用いる物理アドレスとは異なる仮想的なアドレスである。
ホストインタフェース1010の機構およびコマンドやデータの送受信のプロトコルについては、標準的なハードディスク装置と互換性のあるインタフェース仕様(例えば、パラレルATA、シリアルATA、SCSI)に準拠することが好ましい。
ホストデータバッファ1030は、主にRAM(Random Access Memory)により構成される揮発性メモリである。ホストからのライト要求によって受信したライトデータは、フラッシュメモリチップ1100〜1115に書き込まれる前に、フラッシュメモリチップに入力すべき所定量に達するまでホストデータバッファ1030に格納される。また、ホストからのリード要求に応答して送信すべきリードデータは、フラッシュメモリチップ1100〜1115から読み出された後に、ホストに出力すべき所定量に達するまでホストデータバッファ1030に格納される。
テンポラリデータバッファ1040は、主にRAMにより構成される揮発性メモリである。フラッシュメモリチップ1100〜1115のある物理アドレスに格納されたデータを別の物理アドレスに移動する必要が生じたときに、フラッシュメモリチップ1100〜1115から読み出した当該データを一時的にテンポラリデータバッファ1040に保持する。
メモリコントローラ1020は、ホストインタフェース1010、ホストデータバッファ1030、テンポラリデータバッファ1040、フラッシュメモリチップ1100〜1115と接続され、それらを制御するマイクロプロセッサである。
メモリコントローラ1020は、既述したように、ホストからのリード/ライト要求コマンドの解釈、ホストとの間のデータ送受信、ホストデータバッファ1030やテンポラリデータバッファ1040へのアクセス(リード/ライト)、フラッシュメモリチップ1100〜1115へのアクセス(リード/プログラム/消去)を実行する。また、メモリコントローラ1020は、ホストから指定されたLBAがどのフラッシュメモリチップのどの物理アドレスに対応するかのアドレスマップをテーブルによって管理している。メモリコントローラ1020は、RAMなどの揮発性メモリを内蔵し、半導体記憶装置1000の電源投入時にその中に当該テーブルを作成する。(どのようなテーブルかについては図9を用いて後述する。)さらに、各フラッシュメモリチップ1100〜1115に格納されるデータを保障するためのECC(エラー訂正コード)の計算や検証も実行する。なお、前記アドレスマップテーブルはメモリコントローラ1020内部でなくても、メモリコントローラ1020からアクセス可能な揮発性メモリ上であればどこに配置されてもよい。
図2は、フラッシュメモリチップ1100の構成を示す図である。なお、他のフラッシュメモリチップ1101〜1115もフラッシュメモリチップ1100と同様な構成であるため、図示及び説明を省略する。
フラッシュメモリチップ1100内の不揮発性メモリ領域は、複数(例えば、4096個)のブロック1300〜1311で構成される。格納されたデータはブロックを単位として消去される。各ブロックは、複数(例えば、64個)のページ1400〜1463で構成される。フラッシュメモリチップ1100に格納すべきデータはページを単位としてプログラムされる。
図3はブロック1307の構成を示す図である。なお、他のブロック1300〜1306,1308〜1311もブロック1307と同様な構成であるため、図示及び説明を省略する。
ブロック1307内の64個のページをプログラムする順序は固定されており、1400、1401、…、1463の順でプログラムしなければならない。また、プログラム済みのページは上書きが禁止されており、そのページが属するブロックを消去しなければ、再びそのページをプログラムすることができない。
図4は、ページ1400の構成を示す図である。なお、他のページ1401〜1463もページ1400と同様な構成であるため、図示及び説明を省略する。
ページ1400は複数(例えば、4個)のセクタデータ1510〜1513(各512バイト)を記憶するためのデータ部と、それらのセクタデータに関する情報1520〜1523(各16バイト)を記憶するための冗長部から成る。ページに格納されたデータはセクタを単位としてリードできる。メモリコントローラ1020は、これらの冗長部に、各セクタデータの内容を保障するための前記ECCや、各セクタデータのLBAなどを格納する。
図2に示すように、フラッシュメモリチップ1100においてブロックは0番から4095番までナンバリングされており、偶数番ブロックの集合と奇数番ブロックの集合はそれぞれプレイン0、プレイン1と呼ばれる。プレイン毎にページレジスタ(1200、1201)が備えられており、各プレイン内のブロックに含まれるページからリードしたデータ、またはそのページにプログラムするデータはそれぞれのページレジスタに一時的に格納される。各プレインは消去/プログラム回路を独立に持っており、隣接する2ブロック(すなわち、整数X=0〜2047について2X番と(2X+1)番の2ブロック)を同時に消去することができる。また、それら隣接2ブロック内の同一番号の2ページを同時にプログラムすることができる。ただし、リード回路は共通であるため、1ページずつでしかリードできない。
メモリコントローラ1020は、各ブロックを構成する64個のページを、データ管理上の用途として2種類に分ける。図3に示すように、前部60ページ(1400〜1459)をオリジナルデータ用ページ1470とし、後部4ページ(1460〜1463)を更新データ用ページ1480とする。なお、この分類は論理的なものであり、両者に含まれるページの物理構造に一切違いはない。
図5から図7は、メモリコントローラ1020が、LBAで示される論理空間のデータをフラッシュメモリチップ1100〜1115内のブロック・ページにどのように格納するかを説明するための図である。
図5に示すように、まず、1920ページを1グループとして、LBAで示される論理空間を複数のグループに分割する。例えば、0番から1999番の番号を付した2000個のグループ2000〜2010に分けることとする。次に、32ページを1ラインとして、各グループを64個のライン2100〜2163に分割する。それらのラインに0番から63番までナンバリングする。
そして、図6に示すように、各ライン2170を2ページ単位で16個(2200〜2215)に分割する。一方、16枚のチップそれぞれから隣接する2ブロックを選び、32ブロックからなるブロックユニット2300を構成する。図6では、一例として、第0チップから2a番と(2a+1)番の2ブロック、第1チップから2b番と(2b+1)番の2ブロック、第2チップから2c番と(2c+1)番の2ブロック、第15チップから2p番と(2p+1)番の2ブロックを選んだ場合を示している。この2300のようなブロックユニットを2000組作成し、0番から1999番の番号を付す。これらを標準ブロックユニットと呼ぶ。
また、標準ブロックユニット(2300など)に選ばれなかった隣接する2ブロックを16枚のチップからそれぞれ選び、32ブロックからなるブロックユニット2400を構成する。図7では、一例として、第0チップから2a’番と(2a’+1)番の2ブロック、第1チップから2b’番と(2b’+1)番の2ブロック、第2チップから2c’番と(2c’+1)番の2ブロック、第15チップから2p’番と(2p’+1)番の2ブロックを選んだ場合を示している。この2400のようなブロックユニットをできるだけ多く作成する。これらを予備ブロックユニットと呼ぶ。もし、16枚のチップに不良ブロックが1つも存在しなければ、予備ブロックユニット(2400など)は48組(最大数)作成できる。
次に、第Nグループ内のデータ格納先を第N標準ブロックユニット2300に割り当てる。ここで、N=0〜1999である。さらに、当該グループの第Mラインのデータ格納先を当該標準ブロックユニットの各隣接2ブロックの第Mページに割り当てる。ここで、M=0〜59である。当該ラインを16個(2200〜2215)に分割したデータの格納先をそれぞれチップ0〜15内の前記第Mページに割り当てる。すなわち、標準ブロックユニット2300の斜線部(1920ページ)がグループデータの格納先となる。これは図3のオリジナルデータ用ページ1470(60ページ)を2ブロック分×16チップ分集めたものに相当する。その結果、標準ブロックユニット2300には128ページの未書き込み領域が残される。これは図3の更新データ用ページ1480(4ページ)を2ブロック分×16チップ分集めたものに相当する。メモリコントローラ1020は、斜線部内のグループデータの一部が更新された時に、更新データの記録先としてこの未書き込み領域を利用する。
一方、予備ブロックユニット2400は、グループのデータ格納先として割り当てられておらず、全体的に未書き込みとなっている。メモリコントローラ1020は、ある標準ブロックユニット2300の未書き込み領域が更新データで満たされた場合に、予備ブロックユニット2400を1つ選び、その標準ブロックユニット2300内の有効データのみをその予備ブロックユニット2400のオリジナルデータ用ページ1470部分へとコピーする。そして、以後はそれを新たな標準ブロックユニット2300として利用する。その後、コピー元の標準ブロックユニット2300は消去されて新たな予備ブロックユニット2400としてリサイクルされる。
図8は、標準ブロックユニット2300内に格納されたグループデータの一部が更新された時に、更新データが記録されていく状況を示した図である。更新対象のグループデータはページ単位で管理する。更新対象グループデータのページアドレスをオリジナルアドレスと呼ぶ。第Xライン内で第Yチップ上のプレインZのページに格納されたデータのオリジナルアドレスWは、W=32X+2Y+Zで表される。その取り得る値の範囲は0〜127である。ここで、整数X=0〜59、整数Y=0〜15、整数Z=0又は1である。
図9は、グループデータに割り当てられた標準ブロックユニット2300を構成する16組の隣接2ブロックのアドレスを管理するブロックマップテーブル3200と、標準ブロックユニット2300内の未書き込み領域に記録された更新データを管理する更新データマップテーブル3300を示した図である。両テーブルともメモリコントローラ1020内に含まれる揮発性RAM上に構成される。
ブロックマップテーブル3200は、隣接2ブロックのアドレスを16枚のチップ(第0〜15)毎に記録するため、チップ番号3201とブロック番号3202の対応表として構成されている。メモリコントローラ1020は、このブロックマップテーブル3200を、標準ブロックユニット2300の総数、つまり2000個保持する。
更新データマップテーブル3300は、未書き込み領域内の更新先ページをインデックスとして、対応するオリジナルアドレスを管理するように構成されている。メモリコントローラ1020は、この更新データマップテーブル3300を、標準ブロックユニット2300の総数、つまり2000個保持する。
更新データマップテーブル3300は、128個存在する更新先ページを表すために、ページ番号3301、チップ番号3302、プレイン番号3303を用いる。そして、装置外部からのライト要求コマンドによって当該グループデータ内に更新データが発生する度に、その更新データを記録した更新先ページについて、更新対象セクタ3304、オリジナルアドレス3305、更新先ページ状態3306を記録する。
更新対象セクタ3304は、更新先ページ内に含まれる4つのセクタ(第0〜3セクタ)にそれぞれ更新データが格納されているか否かを0と1で示す。1は格納、0は非格納を意味する。例えば、0010は第2セクタのみ更新データとして格納していることを示す。オリジナルアドレス3305は、上式で示したWの値を示す。更新先ページ状態3306は、更新先ページが未書き込みならば「空き」、最新の更新データを記録していれば「有効」、古い更新データを記録していれば「無効」を示す。更新データが次々と記録されるにつれて、更新先ページ状態3306が「空き」の更新先ページが消費されていく。また、同じオリジナルアドレスのセクタが2回以上更新されると、最新でない更新データを記録している更新先ページの更新先ページ状態3306は「無効」になる。
図8において、例えば、W=1のページの第2セクタデータA0がA1に更新された時には、未書き込み領域内の1ページを選び、(ここでは、第60ページの第0チップのプレイン0とする。)その第2セクタにA1をプログラムする。W=1のページで更新されていない3セクタについては記録する必要がないため、A1以外の3セクタはプログラムしない。これにより、A1を記録している更新先ページの状態3306「有効」になる。
例えば、W=36のページの第1、第2セクタデータB0、C0がそれぞれB1、C1に更新された時には、未書き込み領域内の1ページを選び、(ここでは、第60ページの第0チップのプレイン1とする。)その第1、第2セクタにB1、C1をプログラムする。W=36のページで更新されていない2セクタについては記録する必要がないため、B1、C1以外の2セクタはプログラムしない。これにより、B1、C1を記録している更新先ページの状態3306は「有効」になる。
図8には、同様に、W=32のページの第2セクタD0がD1に更新され、W=35のページの第0、第1セクタデータE0、F0がそれぞれE1、F1に更新され、W=30のページの第2、第3セクタデータG0、H0がそれぞれG1、H1に更新される様子が示されている。
W=36のページの第1、第2セクタデータB1、C1がそれぞれB2、C2に更新された時には、未書き込み領域内の1ページを選び、(ここでは、第60ページの第2チップのプレイン1とする。)その第1、第2セクタにB2、C2をプログラムする。これにより、B2、C2を記録している更新先ページの状態3306は「有効」3310になり、B1、C1を記録している更新先ページの状態3306は「無効」3311になる。
なお、図4に示したように、フラッシュメモリチップの各ページには冗長部1520〜1523が含まれている。更新先ページをプログラムする際には、対応するオリジナルアドレスWを冗長部1520〜1523内に含ませてプログラムする。その情報は半導体記憶装置1000の起動時にメモリコントローラ1020によって読み出され、更新データマップテーブル3300を作成するために使用される。
図10の上側に示す図は、標準ブロックユニット2300において、未書き込みページが無くなるまで更新データが記録された状況を示した図である。図10中、オリジナルデータ用ページ1470内の「X」は更新されたセクタデータを表し、更新データ用ページ1480内の「X」は最新ではない更新セクタデータを表し、更新データ用ページ1480内の「O」は最新の更新セクタデータを表す。この標準ブロックユニット2300へ割り当てられているグループデータにさらなる更新データが発生した場合には、それを記録する場所がない。そこで、メモリコントローラ1020は、予備ブロックユニット2400を用いて新たな記録場所を確保する。すなわち、標準ブロックユニット2300のオリジナルデータ用ページ1470内のXで示された各データに対応する最新の更新データを、更新データマップテーブル3300を参照することによって、更新データ用ページ1480内のOで示されたデータから見つけ、そのXの部分を「O」で置き換えたページデータを作り、予備ブロックユニット2400の同一ページアドレスにコピーする。以下、この手続きをマージコピーと呼ぶ。また、Xの部分を含まない未更新ページはそのまま予備ブロックユニット2400の同一ページアドレスにコピーする。これらのコピーをグループデータの全ページに渡って実施する。
図10の下側に示す図は、予備ブロックユニット2400において、グループデータの全ページコピーが完了した状況を示した図である。同図中、オリジナルデータ用ページ1470内の「O」で示されたセクタは最新の更新データが格納されていることを表す。このとき、更新データ用ページ1480は全て未書き込みの状態である。ここが当該グループデータの新たな更新データの記録先となる。
図11は、以上のコピー手続きによる、当該グループのブロックマップテーブルと更新データマップテーブルの書き換え後の状態を示した図である。ブロックマップテーブル4200では、各チップについて、隣接2ブロックのアドレス4202を、予備ブロックユニット2400を構成するそれぞれのチップの隣接2ブロックのアドレスに書き換える。更新データマップテーブル4300では、128個のエントリ全体について、更新対象セクタ4304とオリジナルアドレス4305の項目をクリアし、更新先ページ状態4306を「空き」に設定する。
図12〜図15は、フラッシュメモリチップ1100〜1115内のあるページにおいて、上で述べたマージコピー処理が実行される時の詳細な手順を例示した図である。
本例では、第11チップの隣接2ブロック(番号は2xおよび2x+1)の第2ページに格納された2つのページデータ{J0、K0、L0、M0}および{S0、T0、U0、V0}において、セクタデータK0、L0の最新の更新データK1、L1が第3チップの第2w+1ブロックの第60ページに記録され、セクタデータU0、V0の最新の更新データU1、V1が第7チップの第2zブロックの第60ページに記録されている状態から、これら2ページを第11チップの別の隣接2ブロック(番号は2yおよび2y+1)の第2ページへとマージコピーする場合を示す。
まず、図12のように、メモリコントローラ1020が、K1、L1を含む第3チップのページ5110、およびU1、V1を含む第7チップのページ5120に対して“Read”というフラッシュメモリコマンドを発行すると、これら2ページのデータがそれぞれチップ内部のページレジスタ1201、1200へ読み出され、そこから必要なセクタデータK1、L1、U1、V1がテンポラリデータバッファ1040へと転送される。
次に、図13のように、メモリコントローラ1020が、{J0、K0、L0、M0}を格納したページ5130、および{S0、T0、U0、V0}を格納したページ5140に対して“Read_for_Copy_Back”というフラッシュメモリコマンドを発行すると、これら2ページのデータがそれぞれチップ内部のページレジスタ1200、1201へと順に読み出される。
次に、図14のように、メモリコントローラ1020が、ページレジスタ1200、1201に対して“Random_Data_Input”というフラッシュメモリコマンドを発行すると、テンポラリデータバッファ1040内のセクタデータK1、L1(5150)がページレジスタ1200内のK0、L0に上書きされ、続いてセクタデータU1、V1(5160)がページレジスタ1201内のU0、V0に上書きされる。このようにして各ページデータに更新データがマージされる。
最後に、図15のように、メモリコントローラ1020が、第2yブロックおよび第2y+1ブロックそれぞれの第2ページ(5170および5180)に対して“Two−Plane_Copy−Back_Program”というフラッシュメモリコマンドを発行すると、ページレジスタ1200、1201内のページデータ(つまりマージの結果)が当該それぞれの第2ページへと同時にプログラムされる。
このように、メモリコントローラ1020はページレジスタ1200、1201を利用したフラッシュメモリコマンドを使用することにより、テンポラリデータバッファ1040とチップ間のデータ転送を最低限に抑えることができる。この方法はマージコピー処理の中でデータ転送時間を最小化するため、半導体記憶装置1000に性能向上をもたらす効果がある。
ちなみに、グループデータ内で全く更新がないページを標準ブロックユニット2300から予備ブロックユニット2400へとコピーする場合には、図13、図15に示した2つの手順のみが行われる。
メモリコントローラ1020は、半導体記憶装置1000に搭載された16枚のフラッシュメモリチップに対して並列的にフラッシュメモリコマンドを発行して、以上に述べたコピー処理を実行する。このとき問題となるのは、実行すべきコマンドの量(コマンドタスク)があるチップに偏ってしまうと、その他のチップにアイドル状態が生じることである。ブロックユニット間のコピー全体にかかる処理時間はアイドル状態のチップ数およびその時間が多いほど長くなるため、このようなコマンドタスクの偏りは半導体記憶装置1000に性能悪化をもたらす。本コピー処理は半導体記憶装置1000へのライト要求コマンドに基づいて実行されるものであるため、これはすなわちライト性能の悪化となる。この問題を改善するためには、コマンドタスクがチップ全体にわたって均等に配分される必要がある。
以下、半導体記憶装置1000における本問題の分析について図16〜図18を用いて示し、それに対する解決方法について図19を用いて述べる。
図16は、標準ブロックユニット内の第N(ここで、N=0〜59)ページのマージコピーを実施する状況で、コマンドタスクが第0チップに偏ってしまう例を示している。図中、第Nページ内のXは更新されたセクタデータを表し、更新データ用ページ1480内のOは第Nページ内にオリジナルアドレスを持つ最新の更新データを表す。この図は、第0チップには“Read”コマンド(図12参照)で読み出すべき更新データを含むページが7ページも存在するが、その他のチップにはそのようなページが2、3ページしか存在しないような状況を示している。
図17は、上記第Nページのマージコピーを実施するときの各チップのコマンドタスクを時系列に示したものである。ここで、時間6210は更新データ用ページ1480から最新の更新データをテンポラリデータバッファ1040へと読み出すための処理時間である。このうち、6211などのように白抜きで示した時間(約25マイクロ秒)はページレジスタへのデータ読み出し時間である。6212などのように斜線で示した時間はテンポラリデータバッファ1040へのデータ転送時間である。これらは1セクタあたり約13マイクロ秒である。時間6220は標準ブロックユニットの第Nページのページデータをページレジスタに読み出すための処理時間(約50マイクロ秒)である。このうち、時間6221はプレイン0側ページのデータ読み出し時間(約25マイクロ秒)、時間6222はプレイン1側ページのデータ読み出し時間(約25マイクロ秒)である。時間6230はテンポラリデータバッファ1040内の更新データをページレジスタに転送してページデータにマージするための処理時間である。このうち、時間6231はプレイン0側のページレジスタへのデータ転送時間である。時間6232はプレイン1側のページレジスタへのデータ転送時間である。これらはともに1セクタあたり約13マイクロ秒である。時間6240はページレジスタ上のマージ結果を予備ブロックユニットの第Nページへ書き込むための処理時間(約200マイクロ秒)である。このように、第0チップ内の更新データをテンポラリデータバッファ1040へと読み出すための処理時間が、他のチップのそれよりも長いことで、他のチップにアイドル状態が生じている。これがライト性能悪化の原因となる。したがって、同一ライン内にオリジナルアドレスを持つような更新データの記録先がもしチップ全体に均等に分配されていれば、時間6210は短縮し、ライト性能悪化を抑制することができる。
なお、上例のように、標準ブロックユニット内の特定ページ(すなわち、論理アドレス空間内の特定ライン)内のセクタデータの最新の更新データがあるチップに偏って記録されていると、リード性能悪化の原因にもなることも示しておく。
図18は、図16のように記録された状態で、第Nライン全体(32ページ)のリード要求コマンドを半導体記憶装置1000に発行した場合に、各チップのコマンドタスクを時系列に示したものである。ここで、時間6310は更新データ用ページ1480から最新の更新データをホストデータバッファ1030へと読み出すための処理時間である。このうち、6311などのように白抜きで示した時間(約25マイクロ秒)はページレジスタへのデータ読み出し時間である。6312などのように斜線で示した時間はホストデータバッファ1030へのデータ転送時間である。これらは1セクタあたり約13マイクロ秒である。時間6320は標準ブロックユニットの第Nページのページデータ(ただし、更新されたセクタデータを除く)をホストデータバッファ1030へと読み出すための処理時間である。このうち、時間6321はプレイン0側のページレジスタへのデータ読み出し時間(約25マイクロ秒)、時間6322はそこからホストデータバッファ1030へのデータ転送時間である。時間6323はプレイン1側のページレジスタへのデータ読み出し時間(約25マイクロ秒)である。時間6324はそこからホストデータバッファ1030へのデータ転送時間である。時間6322および時間6324は1セクタあたり約13マイクロ秒である。このように、第0チップ内の更新データをホストデータバッファ1030へと読み出すための処理時間が、他のチップのそれよりも長いことで、他のチップにアイドル状態が生じている。これがリード性能悪化の原因にもなっている。したがって、同一ライン内にオリジナルアドレスを持つような更新データの記録先がもしチップ全体に均等に分配されていれば、時間6310は短縮し、リード性能悪化も抑制することができる。
図19は、メモリコントローラ1020が実行する処理の手順を示したものである。この処理は、半導体記憶装置1000がライト要求コマンドを受けて、そのライトデータを更新データ用ページ1480に更新データとして記録する際に行われる。
メモリコントローラ1020は、ライト要求コマンドを通じて、ライト先LBAとライトデータ(すなわち、更新データ)を受信する(7010)。そして、そのLBAの値から、数値計算によって、その更新元となるページを格納しているグループ番号とライン番号を特定する(7020)。次に、そのグループの更新データマップテーブル(3300や4300など)で「有効」状態のエントリ全体を参照し、16枚のチップが、そのライン内にオリジナルアドレスを持つ有効な更新データをそれぞれ何ページ記録しているかを調査する(7030)。
次に、整数Xを1に初期化する(7040)。ステップ7030の調査結果において、その記録ページ数がX番目に小さいチップを選択する(7050)。そのグループの更新データマップテーブルで「空き」状態のエントリを検索し、選択したチップ内に未記録の更新データ用ページが少なくとも1つあるかを判定する(7060)。もし未記録ページがないならば(7060:いいえ)、整数Xに1を加算して(7070)、ステップ7050に戻る。
ステップ7060で、もし未記録ページがあるならば(7060:はい)、そのグループのブロックマップテーブル(3200や4200など)を参照して、選択したチップのブロック番号を特定し、そのブロック内の未記録ページを1つ選択し、そこに今回の更新データを記録(プログラム)する(7080)。
最後に、そのグループの更新データマップテーブルにおいて、今回記録したページのエントリを「空き」状態から「有効」状態に設定し、更新対象セクタやオリジナルアドレスといった必要な情報を登録する(7090)。以上で、処理を終了する。
この実施の形態によれば、同一ライン内にオリジナルアドレスを持つような更新データの記録先をチップ全体に均等に分配することができる。その結果、データのライト/リード要求コマンドの処理中に並列動作する複数のフラッシュメモリチップにおいて、フラッシュメモリコマンドの待機状態にある時間(アイドル時間)が削減される。したがって、半導体記憶装置1000のライト/リード性能悪化を抑制することができる。
なお、以上の説明においては、装置外部からのライト要求コマンドによって受信した更新データのセクタサイズが1ページ内に収まるような場合を示してきたが、更新データのセクタサイズが複数ページに渡るような場合でも、それをページ単位(4セクタ単位)に分割し、個々の更新データについて上述のデータ更新処理を実施することが可能であり、本発明の効果を享受することは明白である。
また、上記実施の形態では、本発明を、メモリコントローラ1020と複数のフラッシュメモリチップ1100〜1115とを有する半導体記憶装置1000に適用している。
そのメモリコントローラ1020は、複数のフラッシュメモリチップ1100〜1115を制御するためにフラッシュメモリチップ1100〜1115にそれぞれ接続され、複数のフラッシュメモリチップ1100〜1115の各々は、メモリコントローラ1020の指示で一括消去可能なブロック1300〜1311を複数含み、ブロック1300〜1311の各々は、メモリコントローラ1020が書込単位とする複数のページ1400〜1463で構成されている。
また、メモリコントローラ1020は、各ブロック1300〜1311を、複数のページから成る第1ページ集合(ページ1400〜1459)と、複数のページから成る第2ページ集合(ページ1460〜1463)に分割して図3に示す状態にする第1の分割部と、論理アドレス空間を複数のグループ2000〜2010(グループNo.0〜No.1999の2000個のグループ)に分割し、グループ000〜2010の各々を複数のライン2100〜2163に分割して図4に示す状態にする第2の分割部と、複数のフラッシュメモリチップ1100〜1115の各々から、所定数のブロックを集めてブロックユニットを複数組作成し、所定数のブロックユニットを標準ブロックユニット2300、その標準ブロックユニット以外のブロックユニットを予備ブロックユニット2400として管理する管理部(図6,図7)と、標準ブロックユニット2300の各々に1つのグループを対応付け、標準ブロックユニット2300を構成する複数のブロックの第1ページ集合内のページに対応するグループのデータを格納する格納部(図9のテーブル3200,3300)を含んでいる。
そして、半導体記憶装置1000は、標準ブロックユニット2300を構成する複数のブロックの第2ページ集合内のページ中に、対応グループデータの更新データを記録するための未書き込みのページを有するものに適用した場合で説明したが、本発明が上記形態に限られるものではない。
また、メモリコントローラ1020は、半導体記憶装置1000が例えばホストから受信したライトコマンドに応じて、ライト先の論理アドレスとライトデータとを受信し、論理アドレスを含むグループとラインとを特定し、複数のフラッシュメモリチップ1100〜1115から、第2ページ集合に関する所定条件を満たす1つのフラッシュメモリチップを選択し、ライトデータを、特定グループの特定ライン内のデータの更新データとして、選択したフラッシュメモリチップの第2ページ集合内の未書き込みページに書き込む制御(図19)を行なう場合で説明したが、本発明は上記形態に限られるものではない。
さらに、記メモリコントローラ1020は、所定条件を評価するために、グループデータの更新データに関する情報を管理するテーブル3200,3300を含み、これらのテーブル3200,3300は、メモリコントローラ1020内の揮発性RAMに作成される場合で説明したが、これに限るものではない。
本発明は、半導体記憶装置及び半導体記憶装置の制御方法に広く適用することができる。
本発明に係わる半導体記憶装置の内部構造を簡単に示した図である。 本発明に係わるフラッシュメモリチップの構成を示す図である。 本発明に係わるブロックの構成を示す図である 本発明に係わるページ構成を示す図である。 本発明に係わる半導体記憶装置の論理アドレス空間をフラッシュメモリの物理アドレス空間へ配置する方法を示す図の1つである。 本発明に係わる半導体記憶装置の論理アドレス空間をフラッシュメモリの物理アドレス空間へ配置する方法を示す図の1つである。 本発明に係わる半導体記憶装置の論理アドレス空間をフラッシュメモリの物理アドレス空間へ配置する方法を示す図の1つである。 本発明に係わる標準ブロックユニット内の更新データ用ページに更新データを記録する方法を説明するための図である。 本発明に係わる標準ブロックユニット内の更新データ用ページに更新データを記録するときに、更新データを記録する状態を管理するテーブルを示す図である。 本発明に係わる標準ブロックユニットに記録された更新データをグループデータにマージし、それを予備ブロックにコピーする方法を説明するための図である。 本発明に係わる準ブロックユニットに記録された更新データをグループデータにマージし、それを予備ブロックにコピーするときに、予備ブロックにコピーする状態を管理するテーブルを示す図である。 本発明に係わる更新データのマージコピー処理において、フラッシュメモリチップに施されるリードコマンドの手続を示す図である。 本発明に係わる本発明に係わる更新データのマージコピー処理において、フラッシュメモリチップに施されるリードフォーコピーバックコマンドの手続を示す図である。 本発明に係わる本発明に係わる更新データのマージコピー処理において、フラッシュメモリチップに施されるランダムデータインプットコマンドの手続を示す図である。 本発明に係わる本発明に係わる更新データのマージコピー処理において、フラッシュメモリチップに施されるツープレインコピーバックプログラムコマンドの手続を示す図である。 本発明に係わる更新データの偏った記録状態によって発生するマージコピー性能の問題、リード性能の問題を説明するための図である。 本発明に係わる更新データの偏った記録状態によって発生するマージコピー性能の問題、リード性能の問題を説明するための図である。 本発明に係わる更新データの偏った記録状態によって発生するマージコピー性能の問題、リード性能の問題を説明するための図である。 本発明に係わるメモリコントローラが実行する更新データ記録処理を示すフローチャートである。
符号の説明
1000…半導体記憶装置、1020…メモリコントローラ、1030…ホストデータバッファ、1040…テンポラリデータバッファ、1100〜1115…フラッシュメモリチップ。

Claims (17)

  1. メモリコントローラと複数のフラッシュメモリチップとを有する半導体記憶装置であって、
    前記メモリコントローラは、前記複数のフラッシュメモリチップを制御するために前記フラッシュメモリチップに接続され、
    前記複数のフラッシュメモリチップの各々は、前記メモリコントローラの指示で一括消去可能なブロックを複数含み、
    前記ブロックの各々は、前記メモリコントローラが書込単位とする複数のページで構成され、
    前記メモリコントローラは、前記各ブロックを、複数の前記ページから成る第1ページ集合と、複数の前記ページから成る第2ページ集合に分割する第1の分割部と、
    論理アドレス空間を複数のグループに分割し、前記グループの各々を複数のラインに分割する第2の分割部と、
    前記複数のフラッシュメモリチップの各々から、所定数の前記ブロックを集めてブロックユニットを複数組作成し、所定数の前記ブロックユニットを標準ブロックユニット、その標準ブロックユニット以外の前記ブロックユニットを予備ブロックユニットとして管理する管理部と、
    前記標準ブロックユニットの各々に1つの前記グループを対応付け、前記標準ブロックユニットを構成する複数の前記ブロックの前記第1ページ集合内の前記ページに、対応する前記グループのデータを格納する格納部とを含み、
    前記標準ブロックユニットを構成する複数の前記ブロックの前記第2ページ集合内の前記ページ中に、前記対応グループデータの更新データを記録するための未書き込みの前記ページを有すること、
    を特徴とする半導体記憶装置。
  2. 前記メモリコントローラは、前記半導体記憶装置が受信したライトコマンドに応じて、ライト先の論理アドレスとライトデータとを受信する受信部と、
    前記論理アドレスを含む前記グループと前記ラインとを特定する特定部と、
    前記複数のフラッシュメモリチップから、前記第2ページ集合に関する所定条件を満たす1つの前記フラッシュメモリチップを選択する選択部と、
    前記ライトデータを、前記特定グループの前記特定ライン内のデータの更新データとして、前記選択したフラッシュメモリチップの前記第2ページ集合内の前記未書き込みページに書き込む書き込み部と
    さらに含むことを特徴とする半導体記憶装置。
  3. 前記メモリコントローラは、前記所定条件を評価するために、前記グループデータの更新データに関する情報を管理するテーブルを含むことを特徴とする請求項2記載の半導体記憶装置。
  4. 前記メモリコントローラは、揮発性記憶部を有し、
    前記テーブルは、前記揮発性記憶部に記憶されること、
    を特徴とする請求項3記載の半導体記憶装置。
  5. 前記揮発性記憶部は、揮発性RAMであること、
    を特徴とする請求項4記載の半導体記憶装置。
  6. 前記メモリコントローラは、前記第2ページ集合のページ内の冗長部に前記更新データに関する情報を記録すること、
    を特徴とする請求項3記載の半導体記憶装置。
  7. 前記メモリコントローラは、前記第2ページ集合のページ内の前記冗長部を読むことによって、前記テーブルを作成すること、
    を特徴とする請求項6に記載の半導体記憶装置。
  8. 前記作成部は、前記第2ページ集合内に記録された前記更新データを用いて、前記対応グループデータの最新データを作成し、
    前記選択部は、前記予備ブロックユニットの1つを選択し、
    前記メモリコントローラは、前記予備ブロックユニットの前記第1ページ集合内に前記最新グループデータをコピーするコピー部を含み、
    前記管理部は、前記予備ブロックユニットを、前記グループに対応する新しい前記標準ブロックユニットとして管理すること、
    を特徴とする請求項2記載の半導体記憶装置。
  9. 前記所定条件は、前記特定グループに対応する前記標準ブロックユニットに属する前記第2ページ集合内に少なくとも1つの前記未書き込みページを有する前記フラッシュメモリチップのうち、前記特定ライン内データの更新データの記録ページ数が最も少ない前記フラッシュメモリチップであること、
    を特徴とする請求項2記載の半導体記憶装置。
  10. メモリコントローラと複数のフラッシュメモリチップとを有する半導体記憶装置の制御方法であって、
    前記メモリコントローラは、前記複数のフラッシュメモリチップを制御するために前記フラッシュメモリチップに接続され、
    前記複数のフラッシュメモリチップの各々は、前記メモリコントローラの指示で一括消去可能なブロックを複数含み、
    前記ブロックの各々は、前記メモリコントローラが書込単位とする複数のページで構成され、
    前記メモリコントローラは、前記各ブロックを、複数の前記ページから成る第1ページ集合と、複数の前記ページから成る第2ページ集合に分割する第1の分割部と、
    論理アドレス空間を複数のグループに分割し、前記グループの各々を複数のラインに分割する第2の分割部と、
    前記複数のフラッシュメモリチップの各々から、所定数の前記ブロックを集めてブロックユニットを複数組作成し、所定数の前記ブロックユニットを標準ブロックユニット、その標準ブロックユニット以外の前記ブロックユニットを予備ブロックユニットとして管理する管理部と、
    前記標準ブロックユニットの各々に1つの前記グループを対応付ける対応付け、前記標準ブロックユニットを構成する複数の前記ブロックの前記第1ページ集合内の前記ページに、対応する前記グループのデータを格納する格納部とを含み、
    前記半導体記憶装置は、前記標準ブロックユニットを構成する複数の前記ブロックの前記第2ページ集合内の前記ページ中に、前記対応グループデータの更新データを記録するための未書き込みの前記ページを有し、
    前記メモリコントローラは、
    前記半導体記憶装置が受信したライトコマンドに応じて、ライト先の論理アドレスとライトデータとを受信するステップと、
    前記論理アドレスを含む前記グループと前記ラインとを特定するステップと、
    前記複数のフラッシュメモリチップから、前記第2ページ集合に関する所定条件を満たす1つの前記フラッシュメモリチップを選択するステップと、
    前記ライトデータを、前記特定グループの前記特定ライン内のデータの更新データとして、前記選択したフラッシュメモリチップの前記第2ページ集合内の前記未書き込みページに書き込むステップと、
    を有することを特徴とする半導体記憶装置の制御方法。
  11. 前記メモリコントローラは、前記所定条件を評価するために、前記グループデータの更新データに関する情報を管理するテーブルを含むことを特徴とする請求項10記載の半導体記憶装置の制御方法。
  12. 前記メモリコントローラは、揮発性記憶部を有し、
    前記テーブルは、前記揮発性記憶部に記憶されること、
    を特徴とする請求項10記載の半導体記憶装置の制御方法。
  13. 前記揮発性記憶部は、揮発性RAMであること、
    を特徴とする請求項12記載の半導体記憶装置の制御方法。
  14. 前記メモリコントローラは、前記第2ページ集合のページ内の冗長部に前記更新データに関する情報を記録するステップを有すること、
    を特徴とする請求項10記載の半導体記憶装置の制御方法。
  15. 前記メモリコントローラは、前記第2ページ集合のページ内の前記冗長部を読むことによって、前記テーブルを作成するステップを有すること、
    を特徴とする請求項14に記載の半導体記憶装置の制御方法。
  16. 前記作成するステップは、前記第2ページ集合内に記録された前記更新データを用いて、前記対応グループデータの最新データを作成するステップを含み、
    前記選択部は、前記予備ブロックユニットの1つを選択するステップを含み、
    前記メモリコントローラは、
    前記予備ブロックユニットの前記第1ページ集合内に前記最新グループデータをコピーするステップを有し、
    前記管理するステップは、前記予備ブロックユニットを、前記グループに対応する新しい前記標準ブロックユニットとして管理すること、
    を特徴とする請求項10記載の半導体記憶装置の制御方法。
  17. 前記所定条件は、前記特定グループに対応する前記標準ブロックユニットに属する前記第2ページ集合内に少なくとも1つの前記未書き込みページを有する前記フラッシュメモリチップのうち、前記特定ライン内データの更新データの記録ページ数が最も少ない前記フラッシュメモリチップであること、
    を特徴とする請求項10記載の半導体記憶装置の制御方法。
JP2007231640A 2007-09-06 2007-09-06 半導体記憶装置及び半導体記憶装置の制御方法 Expired - Fee Related JP5087347B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007231640A JP5087347B2 (ja) 2007-09-06 2007-09-06 半導体記憶装置及び半導体記憶装置の制御方法
EP08250224A EP2034414A1 (en) 2007-09-06 2008-01-17 Semiconductor storage device and method of controlling semiconductor storage device
US12/017,615 US8312203B2 (en) 2007-09-06 2008-01-22 Semiconductor storage device and method of controlling a semiconductor storage device by allocating a physical block composed of plural pages to a group of logical addresses
CN200810098627XA CN101382917B (zh) 2007-09-06 2008-06-03 半导体存储装置及半导体存储装置的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007231640A JP5087347B2 (ja) 2007-09-06 2007-09-06 半導体記憶装置及び半導体記憶装置の制御方法

Publications (2)

Publication Number Publication Date
JP2009064251A true JP2009064251A (ja) 2009-03-26
JP5087347B2 JP5087347B2 (ja) 2012-12-05

Family

ID=40000893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007231640A Expired - Fee Related JP5087347B2 (ja) 2007-09-06 2007-09-06 半導体記憶装置及び半導体記憶装置の制御方法

Country Status (4)

Country Link
US (1) US8312203B2 (ja)
EP (1) EP2034414A1 (ja)
JP (1) JP5087347B2 (ja)
CN (1) CN101382917B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011048738A1 (ja) * 2009-10-22 2011-04-28 株式会社日立製作所 半導体記憶装置および制御方法
JP2012033045A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 電子機器およびデータ読み出し方法
US8447915B2 (en) 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
US8539142B2 (en) 2011-09-30 2013-09-17 Hitachi, Ltd. Storage system comprising nonvolatile semiconductor storage media
WO2013171792A1 (en) 2012-05-16 2013-11-21 Hitachi, Ltd. Storage control apparatus and storage control method
KR20150095260A (ko) * 2014-02-13 2015-08-21 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법
JP2020170477A (ja) * 2019-04-05 2020-10-15 株式会社バッファロー 記憶装置、その制御方法、及びプログラム

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US20080028136A1 (en) * 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US7609567B2 (en) * 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8060774B2 (en) * 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
WO2007028109A2 (en) 2005-09-02 2007-03-08 Metaram, Inc. Methods and apparatus of stacking drams
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
JP4417994B2 (ja) * 2007-11-26 2010-02-17 株式会社東芝 素材データ記録装置及び、素材データ記録方法
TWI394161B (zh) * 2008-12-15 2013-04-21 Silicon Motion Inc 快閃記憶體裝置及其資料管理方法
US8732350B2 (en) * 2008-12-19 2014-05-20 Nvidia Corporation Method and system for improving direct memory access offload
US8694750B2 (en) * 2008-12-19 2014-04-08 Nvidia Corporation Method and system for data structure management
US9208108B2 (en) * 2008-12-19 2015-12-08 Nvidia Corporation Method and system for improved flash controller commands selection
JP2010282369A (ja) * 2009-06-03 2010-12-16 Toshiba Corp メモリシステム
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US8468419B2 (en) * 2009-08-31 2013-06-18 Lsi Corporation High-reliability memory
US9753847B2 (en) * 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
TWI421870B (zh) * 2009-10-30 2014-01-01 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
WO2011055407A1 (en) * 2009-11-04 2011-05-12 Hitachi, Ltd. Flash memory module
US8683293B2 (en) * 2009-12-16 2014-03-25 Nvidia Corporation Method and system for fast two bit error correction
US20110161553A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Memory device wear-leveling techniques
US9594675B2 (en) * 2009-12-31 2017-03-14 Nvidia Corporation Virtualization of chip enables
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US8868852B2 (en) * 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US9141538B2 (en) 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
WO2012039002A1 (en) * 2010-09-21 2012-03-29 Hitachi, Ltd. Semiconductor storage device and data control method thereof
JP5066241B2 (ja) 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
US9465728B2 (en) 2010-11-03 2016-10-11 Nvidia Corporation Memory controller adaptable to multiple memory devices
US9396106B2 (en) * 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
KR101959567B1 (ko) * 2012-05-14 2019-03-18 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
US9477558B2 (en) 2013-03-08 2016-10-25 Intel Corporation Hardware supported memory logging
US9755943B2 (en) * 2013-08-08 2017-09-05 Cisco Technology, Inc. Location based technique for detecting devices employing multiple addresses
KR20150062646A (ko) * 2013-11-29 2015-06-08 삼성전자주식회사 전자 시스템 및 이의 동작 방법
US9582205B2 (en) * 2014-04-17 2017-02-28 Sandisk Technologies Llc Protection scheme with dual programming of a memory system
US9471428B2 (en) * 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
US10261899B2 (en) * 2014-09-03 2019-04-16 Infineon Technologies Ag Method, device and system for data processing using dedicated mapping between logical and physical addresses
TWI556254B (zh) 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
CN106681652B (zh) * 2016-08-26 2019-11-19 合肥兆芯电子有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
CN107039076A (zh) * 2017-03-20 2017-08-11 北京握奇智能科技有限公司 一种延长可擦写芯片寿命的方法和装置
JP6912240B2 (ja) * 2017-03-29 2021-08-04 ラピスセミコンダクタ株式会社 メモリシステム及びメモリの管理方法
KR20200033625A (ko) * 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
KR20210076505A (ko) * 2019-12-16 2021-06-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058840A (ja) * 2005-07-29 2007-03-08 Sony Corp 記憶装置、コンピュータシステム、および記憶システム
JP2007094571A (ja) * 2005-09-27 2007-04-12 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318117B2 (en) * 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7680977B2 (en) * 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
JP4254930B2 (ja) 2004-10-29 2009-04-15 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
JP4410765B2 (ja) 2006-03-01 2010-02-03 新日本製鐵株式会社 道路用防護柵

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058840A (ja) * 2005-07-29 2007-03-08 Sony Corp 記憶装置、コンピュータシステム、および記憶システム
JP2007094571A (ja) * 2005-09-27 2007-04-12 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447915B2 (en) 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
WO2011048738A1 (ja) * 2009-10-22 2011-04-28 株式会社日立製作所 半導体記憶装置および制御方法
JP2011090496A (ja) * 2009-10-22 2011-05-06 Hitachi Ltd 半導体記憶装置および制御方法
JP2012033045A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 電子機器およびデータ読み出し方法
US8539142B2 (en) 2011-09-30 2013-09-17 Hitachi, Ltd. Storage system comprising nonvolatile semiconductor storage media
WO2013171792A1 (en) 2012-05-16 2013-11-21 Hitachi, Ltd. Storage control apparatus and storage control method
US9183136B2 (en) 2012-05-16 2015-11-10 Hitachi, Ltd. Storage control apparatus and storage control method
KR20150095260A (ko) * 2014-02-13 2015-08-21 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법
KR102195298B1 (ko) * 2014-02-13 2020-12-24 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법
JP2020170477A (ja) * 2019-04-05 2020-10-15 株式会社バッファロー 記憶装置、その制御方法、及びプログラム

Also Published As

Publication number Publication date
JP5087347B2 (ja) 2012-12-05
US8312203B2 (en) 2012-11-13
US20090070520A1 (en) 2009-03-12
EP2034414A1 (en) 2009-03-11
CN101382917B (zh) 2013-03-27
CN101382917A (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
JP5087347B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP3604466B2 (ja) フラッシュディスクカード
US6725321B1 (en) Memory system
US6865658B2 (en) Nonvolatile data management system using data segments and link information
WO2011048738A1 (ja) 半導体記憶装置および制御方法
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US8949515B2 (en) Storage device and memory controller
US20100318726A1 (en) Memory system and memory system managing method
JP2009245163A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2007334413A (ja) 記憶装置
JP4737223B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005115562A (ja) フラッシュrom制御装置
JP2008009614A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP4687720B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2008123241A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120719

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: 20120814

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: 20120910

R150 Certificate of patent or registration of utility model

Ref document number: 5087347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees