JP4884382B2 - メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 - Google Patents

メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 Download PDF

Info

Publication number
JP4884382B2
JP4884382B2 JP2007517793A JP2007517793A JP4884382B2 JP 4884382 B2 JP4884382 B2 JP 4884382B2 JP 2007517793 A JP2007517793 A JP 2007517793A JP 2007517793 A JP2007517793 A JP 2007517793A JP 4884382 B2 JP4884382 B2 JP 4884382B2
Authority
JP
Japan
Prior art keywords
address
memory
address range
management table
write
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
JP2007517793A
Other languages
English (en)
Other versions
JPWO2006126445A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007517793A priority Critical patent/JP4884382B2/ja
Publication of JPWO2006126445A1 publication Critical patent/JPWO2006126445A1/ja
Application granted granted Critical
Publication of JP4884382B2 publication Critical patent/JP4884382B2/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/7201Logical to physical mapping or translation of blocks or pages

Description

本発明は、フラッシュメモリを主記憶メモリとして具備する半導体メモリカード等の不揮発性記憶装置、それに内蔵されるメモリコントローラ、不揮発性記憶装置とアクセス装置を備えた不揮発性記憶システム、及びメモリ制御方法に関する。
書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。また半導体メモリカードを使用した不揮発性記憶システムは、デジタルスチルカメラやパーソナルコンピュータ等を中心にその需要が広まっている。
実用に供されている半導体メモリカードは、通常、内部に不揮発性メモリであるフラッシュメモリと、その制御回路であるコントローラLSIを内蔵している。近年、半導体メモリカードの大容量化のニーズに伴い、不揮発性メモリチップ自体も多値化による大容量が進んでいる。また実装技術の進歩により、半導体メモリカードに実装される不揮発性メモリのチップ数も増加しつつある。例えば半導体メモリカードのメモリ空間として1Gバイトを超えるものが実用化されている。
半導体メモリカードにおけるアドレス管理方法として、分散型管理方法が従来から利用されている。「分散型管理方法」とは、書き込み単位であるページの管理領域に論理アドレスやそのページの状態フラグを記憶し、初期化時に、論理アドレスやページの状態フラグに基づいてアドレス管理テーブルを生成し、コントローラLSI内のRAMに格納する方法である。以下、上記の論理アドレスやそのページの状態フラグを総称して「分散管理情報」と呼ぶ。
しかし、大容量メモリ空間を有する半導体メモリカードにおいて、初期化時に全メモリ空間の分散管理情報を読み出すには多大な時間を要してしまう。これでは半導体メモリカードの規格上の初期化時間上限値を超えてしまう等の規格違反が生じる。また特に規格が無い半導体メモリカードにおいては、規格違反ではないものの、アクセス可能になるまでの待ち時間の面でユーザにデメリットを強いていた。更にはアドレス管理テーブル等を一時記憶するRAMの容量が膨大となり、コスト面でも問題を有していた。
このような問題を回避する方法として「集中型管理方法」が提案されており、特許文献1にその内容が開示されている。特許文献1の不揮発性記憶装置は、半導体メモリカードに搭載されている不揮発性メモリのアドレス空間を複数のアドレス範囲に区分し、各アドレス範囲に対応した複数のアドレス管理テーブルを不揮発性メモリに記憶し、ホストからの所定の論理アドレスへの書き込みや消去命令に応じて、対応するアドレス管理テーブルをRAMに読み出している。
また、特許文献2には、分散型管理方法とアドレス管理テーブル自体を不揮発性メモリに一括して記憶する集中型管理方法との両方を併用する方法が開示されている。特許文献2に開示されている方法及び装置は、ホストなどのアクセス装置からの書き込みコマンド毎にアドレス管理テーブルを不揮発性メモリに書き戻すのではなく、電源OFF等のアクセスの無い所定タイミングにおいてアドレス管理テーブルを不揮発性メモリに書き戻し、初期化時にアドレス管理テーブルの有効性を判断し、有効ならばアドレス管理テーブルを使用し、有効でなければ分散型管理情報に基づいてアドレス管理テーブルを生成する。
特開2001−142774号公報 特開平11−73379号公報
特許文献1は、初期化時、アドレス管理テーブルを不揮発性メモリから読み出すだけで良いため、短時間で初期化処理が完了する。しかし、電源遮断等の障害対応のために、通常、ホストからの所定の論理アドレスへの書き込みや消去命令毎に、RAM上のアドレス管理テーブルを更新し、さらに更新されたアドレス管理テーブルをユーザデータの書き込みや消去の後に不揮発性メモリに書き戻す処理が必要であった。この方法は上述した分散型管理方法と比較すると、アドレス管理テーブルの書き戻し処理の時間分、アクセス速度が低下するといった問題を有していた。
特許文献2は、アクセスの無い所定のタイミングにおいてアドレス管理テーブルを不揮発性メモリに書き戻しているため、データの書き込み時のアクセス速度が低下することはない。しかし、電源遮断等により、アドレス管理テーブルが正しく不揮発性メモリに書き戻されない場合、初期化時に不揮発性メモリの全領域の分散管理情報に基づいてアドレス管理テーブルを生成する必要が生じる。よって、電源遮断等の障害が起きた場合に初期化時間が長くなるという問題を解決することはできない。
本発明はこのような従来の問題点に鑑みてなされたものであって、通常動作時におけるアドレス管理テーブルの書き戻し処理に起因するアクセス速度の低下を回避しつつ、電源遮断等の障害が起きた場合であっても初期化時におけるアドレス管理テーブルの作成時間を短縮することを目的とする。
本発明は、1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、前記メモリコントローラは、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶する読み書きメモリと、データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込む、メモリ制御部と、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成する、アドレス管理テーブル生成部と、を有する。
本発明によれば、初期化時において不揮発性メモリの全領域の分散管理情報を調べる必要がないため、初期化時におけるアドレス管理テーブルの作成時間を短縮することができる。さらに、アクセス装置からの書き込み指示毎にアドレス管理テーブルを不揮発性メモリに書き戻す必要がないため、通常動作時におけるアドレス管理テーブルの書き戻し処理に起因するアクセス速度低下を回避することができる。
前記アドレス範囲は、前記不揮発性メモリの記憶領域を所定サイズ毎に区分けした領域であり、アクセス装置により指定される複数の論理単位に対応した複数の物理ブロックを含み、前記アドレス管理テーブルは、前記アドレス範囲内に含まれる複数の論理単位をまとめて管理するテーブルであっても良い。
前記アドレス範囲は、アクセス装置から指定される論理単位毎に設けられた領域であり、前記アドレス管理テーブルが複数の前記アドレス範囲をまとめて管理するテーブルであっても良い。
前記メモリ制御部は、データの書き込み先の物理ブロックがあるアドレス範囲から他のアドレス範囲へ切り替わる時に、切り替わり先のアドレス範囲を特定するためのアドレス範囲特定情報を前記不揮発性メモリに書き込んでも良い。
前記メモリ制御部は、前記アドレス範囲特定情報を前記アドレス管理テーブルに組み込んだ形で前記不揮発性メモリに書き込んでも良い。
前記メモリ制御部は、初期化時に、前記アドレス範囲特定情報に基づいて、初期化前にアクセスしていた前記アドレス範囲を特定しても良い。
本発明の他のメモリコントローラは、1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、前記メモリコントローラは、1つの前記アドレス範囲内の物理ブロックの書き込み状態を管理する第1のテーブルと複数の前記アドレス範囲内の物理ブロックの状態を管理する第2のテーブルとを含むアドレス管理テーブルを一時記憶する読み書きメモリと、データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記不揮発性メモリに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込み、初期化時に、前記第2のテーブルを前記不揮発性メモリから読み出して、前記読み書きメモリに格納する、メモリ制御部と、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記第1のテーブルを生成して、前記読み書きメモリに格納する、アドレス管理テーブル生成部と、を有する。
本発明の不揮発性記憶装置は、1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、前記不揮発性メモリへのデータの書き込み又は読み出しを制御する、上記のメモリコントローラと、を有する。
本発明の不揮発性記憶システムは、1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリを含む、上記の不揮発性記憶装置と、前記アドレス範囲を指定して前記不揮発性メモリに対するデータの書き込み又は読み出しを制御するアクセス装置と、を有する。
本発明のメモリ制御方法は、1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶するための読み書きメモリと、を有する不揮発性記憶装置を制御するメモリ制御方法であって、前記メモリ制御方法は、データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込むステップと、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成するステップと、を有する。
本発明によれば、通常動作時におけるアドレス管理テーブルの書き戻し処理に起因するアクセス速度低下を回避しつつ、初期化時におけるアドレス管理テーブルの作成時間の短縮を実現できる。
以下本発明の実施をするための最良の形態を具体的に示した実施形態について、図面を参照して説明する。
(第1の実施形態)
図1に、本実施形態における不揮発性記憶システムの構成を示す。本実施形態の不揮発性記憶システムは、アクセス装置100と、アクセス装置100から送信されたユーザデータ(以下、単に「データ」という)の読み書き命令に基づいて動作する不揮発性記憶装置123とを有する。
不揮発性記憶装置123は、アクセス装置100から転送されたデータを格納する不揮発性メモリ115と、アクセス装置100から送信された読み書き命令と論理アドレスとに基づいて、不揮発性メモリ115を制御するメモリコントローラ114とを有する。不揮発性メモリ115の記憶領域は、複数のアドレス範囲に分割されている。
[メモリコントローラの内部構成]
メモリコントローラ114は、ホストインターフェース部(以下、「ホストI/F部」と呼ぶ)101、ワーク用RAM103、プログラムを格納したROM104、及びワーク用RAM103とROM104に格納されたプログラムを用いてメモリコントローラ114内全体を制御するCPU102、を有する。
メモリコントローラ114は、さらに、不揮発性メモリ115を制御するメモリ制御部122、アドレス管理テーブル112を生成するアドレス管理テーブル生成部107、及びアドレス管理テーブル112を一時的に格納する読み書きメモリ113を有する。
メモリ制御部122は、不揮発性メモリ115のアドレス範囲の切り替わりを判断するアドレス範囲制御部124、不揮発性メモリ115に対してデータの読み書き等を制御する不揮発性メモリアクセス部109、及び読み書きメモリ113に一時記憶されたアドレス管理テーブル112を不揮発性メモリアクセス部109を介して不揮発性メモリ115に書き込むアドレス管理テーブル制御部108を有する。
[不揮発性メモリの記憶領域の構成]
図2に、本実施形態の不揮発性メモリ115の記憶領域の構成を具体的に示す。図2において、不揮発性メモリ115は1GBであり、1Gビットのフラッシュメモリを8チップ実装している。不揮発性メモリ115は、複数の物理ブロック211により構成されている。ここで、物理ブロック211とは、選択的に消去できる最小単位のイレーズブロックのことであり、本実施形態では約4kBの大きさを持つ。
不揮発性メモリ115は、図2の縦方向にアドレス範囲0〜7の8つのアドレス範囲に分割されており、横方向にバンク0〜3の4バンクに分割されている。各アドレス範囲は、4kブロック個の物理ブロック211により構成される。各アドレス範囲は、データを格納するためのユーザデータ領域116と、アドレス管理テーブル112を格納するためのアドレス管理テーブル領域117とを有する。本実施形態において、各アドレス範囲に設けられたアドレス管理テーブル領域117は、各アドレス範囲に応じたアドレス管理テーブル112を記憶する。
アドレス管理テーブル領域117は、下位側(図2の上側)から順に、アドレス管理テーブル112を格納していく。その後、新しいアドレス管理テーブル112を記憶できるように、不要となった古いアドレス管理テーブル112は順に消去される。このように、アドレス管理テーブル領域117は巡回的に使用される。例えば、アクセス装置100からの書き込み命令がなされ、不揮発性メモリ115に有効データが書かれている状態において、アドレス範囲1の最新のアドレス管理テーブルが2047_a0〜2047_d0に書き込まれているとすると、それより下位側(図2の上側)の2046_a1〜2046_d1と2046_a0〜2046_d0に格納されているアドレス管理テーブルは、消去して、無効ブロックにしておく。そして、無効ブロックにした領域は後に使用する。
不揮発性メモリ115は、さらに、図8に示すアドレス範囲特定情報801(詳細は後述。)を格納するためのカレントアドレス範囲ナンバー記憶領域118を有する。本実施形態において、カレントアドレス範囲ナンバー記憶領域118は、アドレス範囲7の上位側に設けられている。アドレス範囲7のユーザデータ領域116とアドレス管理テーブル領域117のサイズの和は、他のアドレス範囲のサイズより小さくなっている。不揮発性メモリ115が未使用の時、カレントアドレス範囲ナンバー記憶領域118は、下位側(図2の上側)から順に、アドレス範囲特定情報801を格納していく。その後、新しいアドレス範囲特定情報801を記憶できるように、不要となった古いアドレス範囲特定情報801は順に消去される。このように、カレントアドレス範囲ナンバー記憶領域118は巡回的に使用される。
不揮発性メモリ115において、セキュリティ関係の情報やメーカコード等が書き込まれた所謂システム領域については、説明を省略する。
図3に、本実施形態における物理ブロック211の具体例を示す。物理ブロック211はページ0とページ1の2ページを有する。ページは書き込み単位であり、図2において、最大同時書き込み数は4バンクの各1ページ、即ち最大4ページ分である。各ページは、2048バイトのデータ領域212と64バイトの管理領域213を有する。1セクタは512バイトであり、データ領域212は4セクタにより構成される。データ領域212は、アクセス装置100から転送されるデータが書き込まれる領域である。ページ0の管理領域213には、分散管理情報214が格納される。分散管理情報214は、アクセス装置100が指定する論理ブロックナンバーと、物理ブロック211のステータスを示すブロックステータスとを含む。アクセス装置100から転送されたデータがページ0のデータ領域212に書き込まれるときに、分散管理情報214はページ0の管理領域213に書き込まれる。
[論理アドレスのフォーマット]
図4に、本実施形態におけるアクセス装置100が不揮発性記憶装置123に送信する論理アドレス400のフォーマットを示す。図4の論理アドレス400のフォーマットにおいて、ビット0〜ビット1(b0〜b1)がセクタナンバー401、ビット2〜ビット3(b2〜b3)がバンクナンバー402、ビット4(b4)がページナンバー403である。ビット5〜ビット14(b5〜b14)のナンバー404とバンクナンバー402を併せた12ビット分が論理ブロックナンバー411、ビット15〜ビット17(b15〜b17)がアドレス範囲ナンバー405である。3ビットのアドレス範囲ナンバー405により、不揮発性メモリ115のアドレス範囲0〜7が指定される。また、論理ブロックナンバー411に対応する12ビット分が物理ブロックナンバー412へのアドレス変換の対象となる。
[アドレス管理テーブルの構成]
図1に戻り、アドレス管理テーブル112は、アドレス変換テーブル110と物理領域管理テーブル111とを含む。
図5に、本実施形態におけるアドレス変換テーブル110を示す。アドレス変換テーブル110はアクセス装置100が指定した論理アドレス400に含まれる論理ブロックナンバー411を不揮発性メモリ115内の物理ブロックナンバー412に変換するテーブルである。アドレス変換テーブル110は、論理ブロックナンバー411毎に、対応する物理ブロックナンバー412を示す。本実施形態において、アドレス変換テーブル110は、アドレス範囲毎に生成されるため、4096個分の論理ブロックナンバー411で指定される物理ブロックナンバー412を含む。
図6に、本実施形態における物理領域管理テーブル111を示す。物理領域管理テーブル111は不揮発性メモリ115内の消去単位である物理ブロック211の状態、即ち有効なデータが物理ブロック211に記憶されているかどうか等のブロックステータスを記憶するテーブルである。物理領域管理テーブル111は、不揮発性メモリ115の物理ブロックナンバー412毎に、各物理ブロックの状態を示す。物理ブロックの状態を示すブロックステータスは、有効、無効、不良等を含む。2進数の「00」は、既に有効なデータが書き込まれている有効ブロックであること示し、2進数の「11」は消去済み又は書き込まれているデータが不要であることを示す無効ブロックを示す。2進数の「10」は、メモリセル上のソリッドエラー等により使用できなくなった不良ブロックを示す。このように、ブロックステータスは、少なくとも3つの状態を含む。本実施形態において、物理領域管理テーブル111は、アドレス範囲毎に生成されるため、4096個分の物理ブロックナンバー412に対するブロックステータスが格納される。
[アドレス管理テーブルの生成]
図1に示すアドレス管理テーブル生成部107は、電源ON等による初期化時に、ユーザデータ領域116に格納されている分散管理情報214に基づいてアドレス管理テーブル112を生成し、読み書きメモリ113上に記憶させる。本実施形態においては、カレントアドレス範囲ナンバー記憶領域118から読み出したアドレス範囲のユーザデータ領域116に記憶された分散管理情報214だけを読み出す。すなわち、初期化時に、アドレス範囲0〜7の中のいずれか1つのアドレス範囲についてのアドレス管理テーブル112が生成される。
読み書きメモリ113は、SRAMなどの揮発性メモリあるいは強誘電体メモリなどの不揮発性メモリであり、アドレス管理テーブル112を一時的に記憶する。アクセス装置100の指示によるデータの書き込み等は、読み書きメモリ113に格納されたアドレス管理テーブル112を参照し、更新しながら行われる。
メモリ制御部122は、アクセス装置100からの書き込み指示に応じてユーザデータ領域116にデータと分散管理情報214を書き込む。このとき、メモリ制御部122内のアドレス管理テーブル制御部108は、読み書きメモリ113に一時記憶されたアドレス管理テーブル112を更新する。アドレス管理テーブル制御部108は、アクセス装置100が指示した書き込み先アドレスが現在のアドレス範囲から他のアドレス範囲に切り替わる際に、読み書きメモリ113上に一時記憶されたアドレス管理テーブル112を、不揮発性メモリアクセス部109を介して、現在のアドレス範囲のアドレス管理テーブル領域117に書き込む。
[アドレス範囲特定情報の書き込み]
アドレス範囲特定情報801とは、切り替わり先のアドレス範囲を特定するための情報である。図8に、本実施形態におけるアドレス範囲特定情報801を示す。アドレス範囲特定情報801は、時間的な前後関係を識別する時刻情報711とアドレス範囲切り替え時における切り替え後のアドレス範囲ナンバー712を含む。下位側の27ビット分が時刻情報711を示し、上位3ビット分がアドレス範囲ナンバー712を示す。
図1に示すアドレス範囲制御部124は、アドレス範囲切替部105とアドレス範囲特定部106を有する。アドレス範囲特定部106は、現在アクセス中のアドレス範囲がどのアドレス範囲であるかを不揮発性メモリ115に記憶するために、すなわち電源立ち上げ時の初期化において、電源立ち上げ前又はリセット前にアクセスされていたアドレス範囲を特定できるようにするために、アドレス範囲が切り替わった直後、切り替わり後のアドレス範囲への書き込みを始める際に、不揮発性メモリアクセス部109を介して、アドレス範囲特定情報801を不揮発性メモリ115のカレントアドレス範囲ナンバー記憶領域118に格納する。さらに、アドレス範囲特定部106は、電源立ち上げ後の初期化時において、不揮発性メモリ115のカレントアドレス範囲ナンバー記憶領域118から最新の時刻情報711を持つアドレス範囲特定情報801を読み出して、アドレス範囲ナンバー712を特定する。これにより、例えば、電源遮断等の障害によって再起動された場合であっても、アドレス範囲特定部106は起動前にアクセスされていたアドレス範囲ナンバー712を特定できる。
図7に、本実施形態におけるアドレス範囲切替部105の構成を示す。アドレス範囲切替部105は、カウンタ701、レジスタ702、比較器703、及びレジスタ704を有する。レジスタ702は、アクセス装置100が転送した論理アドレス400に含まれるアドレス範囲ナンバー405をシステムクロックSCKに応じて一時記憶する。比較器703は、アクセス装置100が転送したアドレス範囲ナンバー405と、レジスタ702が一時記憶したアドレス範囲ナンバー405とを比較して、両者が異なる場合に、アドレス範囲切替信号をアクティブにして出力する。レジスタ704は、アドレス範囲切替信号がアクティブになったときに、アクセス装置100が転送したアドレス範囲ナンバー405を一時記憶する。レジスタ704の出力は、アドレス範囲切り替え時における、切り替え後のアドレス範囲ナンバー712となる。
カウンタ701には、起動時に、カレントアドレス範囲ナンバー記憶領域118に格納されている最新のアドレス範囲特定情報801の時刻情報711がプリセットされる。なお、工場出荷直後の不揮発性メモリ115の物理ブロック211は全て消去されているので、カレントアドレス範囲ナンバー記憶領域118の最下位の1ページのデータが読み込まれ、初期値0の時刻情報がカウンタ701にプリセットされる。カウンタ701は、アドレス範囲切替信号がアクティブになった時に値を1つインクリメントする。
本実施形態のカウンタ701のビット数について説明する。アクセス装置100からの1回の書き込みコマンドにおける平均的な書き込みデータ容量を4物理ブロック分(即ち、FAT16における1クラスタ分)の16kBとした場合、1つのアドレス範囲のユーザデータ領域116において、全ての物理ブロックを書き込むコマンド数は式(1)により、約1k回(2の10乗)となる。
(4kブロック個×4kB)÷16kB=1k (1)
不揮発性メモリ115の書換寿命、即ち保証良ブロック率を下回る書換回数を10万回(≒2の17乗)として、式(2)により、本実施形態のカウンタ701のビット数は27ビットとする。
17+10=27 (2)
なお、不揮発性メモリ115の書換寿命の違いや、設計余裕を鑑みてビット数を増やしても構わない。
上記のように構成されるアドレス範囲切替部105は、アクセス装置100が転送した論理アドレス400に基づいてアドレス範囲ナンバー405が切り替わったか否かを検出し、切り替わったことを検出すれば、切り替わり先のアドレス範囲ナンバー712を出力すると共に、アクセス装置100が転送した命令が何時の時点での命令かがわかるように、時間的前後関係を表す時刻情報711を出力する。
[初期化処理]
以上のように構成された不揮発性記憶システムにおける、不揮発性記憶装置123の初期化処理について説明する。アクセス装置100により不揮発性記憶装置123の電源がONされると、CPU102はROM104に記憶されたプログラムに基づいて初期化処理を行う。初期化処理は、電源ON時の他に、不揮発性記憶装置123のリセット時も行われる。
初期化処理において、アドレス範囲特定部106は、不揮発性メモリアクセス部109を介して不揮発性メモリ115のカレントアドレス範囲ナンバー記憶領域118をサーチし、カレントアドレス範囲ナンバー記憶領域118に格納されているアドレス範囲特定情報801のうち、時刻情報711の値が最も大きいものを、最新のアドレス範囲特定情報801として読み出す。これにより、電源立ち上げ前にアクセスされていたアドレス範囲ナンバー712を特定する。また、アドレス範囲特定情報801に含まれる時刻情報711をカウンタ701にプリセットする。但し、時刻情報711の全てのビットの値が1の場合は、工場出荷直後であると判断し、0の値をカウンタ701にプリセットする。
アドレス管理テーブル生成部107は、特定されたアドレス範囲内のユーザデータ領域116に格納されている分散管理情報214を読み出して、アドレス変換テーブル110と物理領域管理テーブル111を生成し、読み書きメモリ113に格納する。初期化処理が終了すると、不揮発性記憶装置123は、アクセス装置100からの読み書き等のコマンドの受付状態に入る。
[アドレス範囲内のデータの書き込み処理]
メモリコントローラ114は、アクセス装置100から任意のアドレス範囲内への書き込み指示、例えば「0」のアドレス範囲ナンバー405を指定する論理アドレス400を受信すると、アドレス範囲切替部105は、アクセス装置100が転送したアドレス範囲ナンバー405が、初期化処理時に特定したアドレス範囲ナンバー712と同一かどうかを判断する。同一であれば、アドレス管理テーブル112に基づいて、論理アドレス400に含まれる論理ブロックナンバー411を物理ブロックナンバー412に変換し、物理ブロックナンバー412で指定される物理ブロック211にデータを書き込む。
図9に、本実施形態におけるアドレス範囲の切り替えが発生しない場合の通常の書き込みシーケンスを示す。図9は、物理ブロック211のページ0にデータを書き込むデータライト期間TA0と、物理ブロック211のページ1にデータを書き込むデータライト期間TA1とを示す。本実施形態においては、バンク0〜3の4ページ分のページ0又はページ1を同時に書き込むマルチバンクライトにより、不揮発性メモリ115にデータを書き込む。データライト期間TA0及びTA1は、ライドコマンド及びアドレス/データ転送期間Ta1、イレーズビジー期間Ta2、プログラムビジー期間Ta3を含む。
データライト期間TA0において、メモリコントローラ114は、まず、ライトコマンド、ユーザデータ領域116内の物理ブロックナンバー412及びバンク0〜3の4ページ分のデータを不揮発性メモリ115に転送する(ライドコマンド及びアドレス/データ転送期間Ta1)。このとき、分散管理情報214も同時に不揮発性メモリ115に転送する。次に、物理ブロックナンバー412で指定される物理ブロック211を消去する(イレーズビジー期間Ta2)。最後に、バンク0〜3の物理ブロック211のページ0にデータと分散管理情報214を書き込み、読み書きメモリ113上のアドレス管理テーブル112を更新する(プログラムビジー期間Ta3)。
次に、データライト期間TA1において、データライト期間TA0と同様の処理がなされ、バンク0〜3の4ページ分の物理ブロック211のページ1にデータが書き込まれる。但し、分散管理情報214は、ページ1に書き込まれない。
図9に示す1回のデータライト期間TA0及びTA1により、例えば論理アドレス0_a0〜0_d0と0_a1〜0_d1の物理ブロック211にデータが書き込まれる。また、アドレス範囲0内において、データライト期間TA0及びTA1による動作が繰り返されることにより、例えば論理アドレス0_a0〜0_d0から1021_a1〜1021_d1の物理ブロック211にデータが書き込まれる。
FAT16を使用するアクセス装置100において、通常1クラスタは16kBであり、多くの製品において、アクセス装置100は16kB単位で書き込み指示を不揮発性記憶装置123に転送する。特許文献1に示す従来の半導体メモリ装置は、16kB分を書き込んだ後に読み書きメモリ113に一時記憶されたアドレス管理テーブル112を不揮発性メモリ115に書き戻しており、時間的オーバヘッドが処理速度を下げる要因となっていた。しかし、本実施形態の不揮発性記憶装置123は、アドレス範囲が切り替わらない場合、読み書きメモリ113に一時記憶されたアドレス管理テーブル112を不揮発性メモリ115に書き戻す処理を行わず、データの書き込み時に併せて分散管理情報214を書き込んでおり、オーバヘッドの合理化を行っている。
[アドレス範囲が切り替わる場合のデータの書き込み処理]
次に、アクセス装置100が転送したアドレス範囲ナンバーが切り替わった時の不揮発性記憶装置123の動作について説明する。図10に、アドレス範囲の切り替えが発生した場合の書き込みシーケンスを示す。アドレス範囲切替部105が、比較器703により、アドレス範囲が切り替わることを検知すると、メモリ制御部123は、アドレス管理テーブルライト期間(以下、「ATライト期間」と呼ぶ。)TB、アドレス管理テーブルリード期間(以下、「ATリード期間」と呼ぶ。)TC、及びアドレス範囲特定情報ライト期間TDの順に処理を行う。アクセス装置100の指定するアドレス範囲が0から1に切り替わった場合を例として以下に説明する。
アドレス範囲0の論理アドレス1021_a1〜1021_d1の物理ブロック211にデータが書き込まれた後、メモリコントローラ114はアクセス装置100からアドレス範囲1を指定する論理アドレス400を受け取ると、アドレス範囲切替部105は、比較器703により、アドレス範囲が0から1に切り替わることを検知する。すると、メモリコントローラ114は、まず旧アドレス範囲の後処理として、ATライト期間TBにおける処理を行う。
ATライト期間TBにおいて、メモリコントローラ114は、読み書きメモリ113に一時的に格納されているアドレス範囲0のアドレス管理テーブル112を不揮発性メモリ115のアドレス範囲0のアドレス管理テーブル領域117に最新のアドレス管理テーブルとして書き戻す。まず、メモリコントローラ114は、ライトコマンド、アドレス範囲0内のアドレス管理テーブル領域117内の物理ブロックナンバー412、及び読み書きメモリ113に格納されているアドレス管理テーブル112を不揮発性メモリ115に転送する(ライトコマンド及びアドレス/AT転送期間Tb1)。次に、物理ブロックナンバー412で指定される物理ブロック211を消去する(イレーズビジー期間Tb2)。最後に、消去した物理ブロック211に、アドレス管理テーブル112を書き込む(プログラムビジー期間Tb3)。
こうして、アドレス範囲0に対する書き込み処理は終了し、ATライト期間TBの終了時点とATリード期間TCの開始時点との間が実際のアドレス範囲切替時点TSとなる。次に、新アドレス範囲の前処理として、ATリード期間TCとアドレス範囲特定情報ライト期間TDにおける処理を行う。
ATリード期間TCにおいて、CPU102は、アドレス範囲1のアドレス管理テーブル112の読み込み指示を不揮発性メモリアクセス部109に対して発行し、不揮発性メモリアクセス部109は、アドレス範囲1のアドレス管理テーブル112をアドレス範囲1のアドレス管理テーブル領域117から読み出して、アドレス管理テーブル制御部108は読み出したアドレス管理テーブル112を読み書きメモリ113に記憶させる(リードコマンド及びアドレス/AT転送期間Tc1)。ここで読み込まれるアドレス管理テーブル112は、アドレス範囲1内のアドレス管理テーブル領域117内における最新のアドレス管理テーブルである。アドレス管理テーブル112が最新かどうかは、次のように判断する。まず、アドレス管理テーブル領域117内の物理ブロックのページの最上位アドレス、具体的には図2における論理アドレス2047_a1〜2047_d1の4ページ分(全8kB)をセットとして、消去されているか否かを判断する。消去されていなければ、論理アドレス2047_a1〜2047_d1のセットが最新のアドレス管理テーブルであると判断する。また、消去されていれば、図2の上位方向、すなわち不揮発性メモリ115の下位側にサーチしていき、消去されていない、即ち何らかの値が書き込まれた4ページ分を最新のアドレス管理テーブルとして選択する。
なお、不揮発性記憶装置123が出荷された直後は、不揮発性メモリ115の物理ブロックは全て消去された状態となっている。実際は、システム領域に所定の値が書き込まれているが、本実施形態ではこの状態を省略して説明する。その場合、最下位(図2において、上側)の4ページ、即ち2046_a0〜2046_d0をアドレス管理テーブル112として読み書きメモリ113に読み込むことになる。このとき、図6に示す物理領域管理テーブル111は全て無効ブロックの「11」を示し、有効なデータはアドレス範囲1に記憶されていない状態ということになる。
アドレス範囲特定情報ライト期間TDにおいて、メモリコントローラ114は、図8に示す切り替え後のアドレス範囲ナンバー712を含むアドレス範囲特定情報801を不揮発性メモリ115のカレントアドレス範囲ナンバー記憶領域118に格納する。まず、アドレス範囲特定部106内のカウンタ701はインクリメントすると共に、切り替え後のアドレス範囲ナンバー712がレジスタ704に格納される。アドレス範囲特定部106は、カウンタ701の時刻情報711とレジスタ704に格納されたアドレス範囲ナンバー712とを含むアドレス範囲特定情報801を生成する。不揮発性メモリアクセス部109は、ライトコマンド、不揮発性記憶装置115のカレントアドレス範囲ナンバー記憶領域118内の物理ブロックナンバー412及びアドレス範囲特定情報801を不揮発性メモリ115に転送する(ライトコマンド及びアドレス/アドレス範囲特定情報転送期間Td1)。次に、物理ブロックナンバー412で指定される物理ブロック211が消去される(イレーズビジー期間Td2)。最後に、消去された物理ブロック211にアドレス範囲特定情報801が書き込まれる(プログラムビジー期間Td3)。
アドレス範囲特定情報ライト期間TDの後のデータライト期間TA0において、アドレス範囲1の論理アドレス1024_a0〜1024_d0にデータが書き込まれる。
アドレス範囲特定情報ライト期間TDに、アドレス範囲特定情報801を不揮発性メモリ115のカレントアドレス範囲ナンバー記憶領域118に記憶することにより、次回起動時に、起動前にアクセスされていたアドレス範囲ナンバー712を特定できる。よって、電源遮断などの障害が発生した後の起動時であっても、アドレス範囲特定部106はどのアドレス範囲の処理中に電源遮断などの障害が起きたかを判別することができる。また、処理が途中中断されたアドレス範囲のアドレス管理テーブル領域117にアドレス管理テーブル112が書き戻しされていなくても、アドレス範囲特定情報801に記憶されたアドレス範囲についてのアドレス変換テーブル112は、初期化処理時に、分散管理情報214を用いて生成されるため、誤って古いアドレス変換テーブル112を使用することはない。
[初期化処理に要する時間]
本実施形態において、アドレス管理テーブル生成部107が不揮発性メモリアクセス部109を介して読み込む分散管理情報214は、1つのアドレス範囲内に限られる。例えば、不揮発性メモリ115がマルチバンクページリード機能を備え、各マルチバンクページリードの所要時間が100μ秒とすると、式(3)により、約100m秒で分散管理情報214の読み出しが完了する。
100μ秒×1k=100m秒 (3)
1GBの容量をもつ半導体メモリ装置(フラッシュメモリチップが8枚分)の場合は、式(4)により約800m秒となる。
100m秒×8枚=800m秒 (4)
これに対して、特許文献2に示すような従来の半導体メモリ装置は、全領域の分散管理情報を読み出すため、読み出し時間は、式(5)により、約6400m秒となる。
800m秒×8=6400m秒 (5)
特許文献2の不揮発性メモリ115は8区分に分割されていないため、式(5)の値は、式(4)に比べて、8倍の値になる。この値は、ユーザの起動時の待ち時間としては長時間になる。また、この式(5)の値は、不揮発性メモリの容量が大きくなればなる程、大きくなり、致命的な問題となる。
本実施形態の初期化処理に要する時間は、特許文献2の1/8となり、短時間で処理が行える。
[データの書き換えレート]
次に、本実施形態による書き込み速度の向上に関して、定量的に説明する。図9に示したデータライト期間TA0及びTA1と図10に示したATライト期間TB及びデータライト期間TA0を各々1.5m秒とする。
特許文献1に示す従来の半導体メモリ装置が、例えば論理アドレス0_a0〜0_d0と、0_a1〜0_d1の物理ブロック4個分にデータを書き込む場合、図9のデータライト期間TA1の後にATライト期間TBが必要であったため、式(6)により、4.5m秒を要していた。
1.5m秒×3=4.5m秒 (6)
一方、本実施形態において、アドレス範囲が変化しない場合、例えば論理アドレス0_a0〜0_d0と、論理アドレス0_a1〜0_d1の物理ブロック4個分にデータを書き込む場合、式(7)により、3m秒要する。
1.5m秒×2=3m秒 (7)
このように、アドレス範囲が変化しない場合、本実施形態の書き込み時間は特許文献1に示す書き込み時間より短い。
アドレス範囲が変化する場合、本実施形態は、図10に示すように、旧アドレス範囲の後処理を行うATライト期間TBと、新アドレス範囲の前処理を行うATリード期間TC及びアドレス範囲特定情報ライト期間TDが必要となり、特許文献1より余分に処理時間を要する。
これを踏まえて、1つの論理範囲全体を16kB単位で全て書き換えるレート値を基準にして、本実施形態と特許文献1とを比較する。まず、1つのアドレス範囲の容量は約16MB(簡単のため、アドレス管理テーブル領域分は誤差とする)であり、式(8)により16kB単位の書き込みで1つのアドレス範囲を書き換えるのに、アクセス装置100は1k回の書き込みを指示することになる。
16MB÷16kB=1k回 (8)
この場合、特許文献1に示す従来の半導体メモリ装置では、式(9)に示すように平均3.6MB/秒の書き換えレートとなる。
16MB÷(1k回×4.5m秒)≒3.6MB/秒 (9)
一方、本実施形態の不揮発性記憶装置123では、式(10)に示すように平均5.5MB/秒の書き換えレートとなり、本実施形態における不揮発性記憶装置123の方がより高速に1つのアドレス範囲を書き換えることができる。
16MB÷{(1k回×3m秒)+(2回×1.5m秒)}≒5.5MB/秒 (10)
なお、アドレス範囲切り替え時の瞬間的な速度劣化は、数m秒オーダであるので、アクセス装置100側が通常備えているバッファを使用することにより、十分吸収することができる。これにより処理が破綻することはない。
以上のように、本実施形態によれば、不揮発性メモリ115のメモリ容量が大きくなっても、起動時の初期化時間を極小化することができると共に、アドレス管理テーブル112の更新における時間的なオーバヘッドを合理化し、結果として書き換えレートを向上できる。すなわち、本発明によれば、通常動作時におけるアドレス管理テーブル112の書き戻し処理に起因するアクセス速度の低下を回避しつつ、電源遮断等の障害が起きた後の初期化時におけるアドレス管理テーブル112の作成時間を短縮することができる。
なお、図3における管理領域213は、分散管理情報214に加え、時刻情報711を格納しても良い。例えば、データをユーザデータ領域116のデータ領域212に書き込むときに、時刻情報711を管理領域213に書き込む。初期化処理時に、アドレス範囲を特定した後、アドレス範囲特定情報801の時刻情報711と一致する時刻情報711が書き込まれた物理ブロック211のみを読み出すことにより、アドレス管理テーブル領域117に記憶された最新のアドレス管理テーブル112を改訂しても良い。これにより、短時間で、アドレス管理テーブル領域117のアドレス管理テーブル112を更新でき、電源遮断等により処理が中断した後の初期化処理において有用である。
また、読み書きメモリ113は、比較的高速にアクセスできればRAM以外の読み書きメモリを使用しても構わない。また、不揮発性メモリ115は、複数の不揮発性メモリチップを内蔵しても構わない。また不揮発性メモリ115は、フラッシュメモリ以外の不揮発性メモリを用いても良い。
なお、不揮発性メモリ115は1つのフラッシュメモリチップを用いて構成してもよいし、また複数のフラッシュメモリチップを用いて構成してもよい。
本実施形態において、アドレス管理テーブル領域117は各アドレス範囲内に設けているが、アドレス範囲0〜7のアドレス管理テーブル領域117をまとめて、一つの範囲、例えば不揮発性メモリ115の最後尾の領域に設けても良い。
また、アドレス管理テーブル112の記憶位置を、本実施形態のアドレス管理テーブル領域117内のように、物理的に固定させなくても良い。例えば、アドレス管理テーブル領域117を設けずに、アドレス管理テーブル112をユーザデータ領域116の物理ブロック211に格納する。その際、アドレス管理テーブル112の格納先の物理アドレスを指し示すポインタ情報を不揮発性メモリ115内に記憶しておき、そのポインタ情報に応じて記憶位置をサーチできるようにすれば良い。
なお、カレントアドレス範囲ナンバー記憶領域118の位置は、アドレス範囲7の上位側に限定されない。また、本実施形態において、アドレス範囲特定情報801は不揮発性メモリ115のカレントアドレス範囲ナンバー記憶領域118に記憶されたが、不揮発性メモリ115以外の不揮発性メモリを別に設け、そこに記憶するようにしても構わない。
また、アドレス範囲特定情報801は、アドレス範囲が切り替わった際に、切り替え前のアドレス範囲に対応するアドレス管理テーブル112に組み込んだ形で、不揮発性メモリ115に書き戻すようにしても構わない。その場合、電源立ち上げ後の初期化において、全てのアドレス範囲0〜7に記憶された最新のアドレス管理テーブル112を調べて、最も直近の時刻情報711を含むアドレス管理テーブル112内に記憶されたアドレス範囲ナンバー712が、電源遮断がなされた時刻におけるアドレス範囲ナンバーと判断する。
(第2の実施形態)
図11に、本発明の第2の実施形態における不揮発性記憶システムを示す。第2の実施形態の不揮発性記憶システムは、不揮発性メモリ1115のアドレス範囲の大きさと、アドレス管理テーブル1112の初期化時の生成方法が第1の実施形態と異なる。
本実施形態の不揮発性記憶システムは、アクセス装置100と、アクセス装置100から送信されたデータの読み書き命令に基づいて動作する不揮発性記憶装置123とを有する。
不揮発性記憶装置123は、アクセス装置100から転送されたデータを格納する不揮発性メモリ1115と、アクセス装置100から送信されたデータの読み書き命令と論理アドレスとに基づいて、不揮発性メモリ1115を制御するメモリコントローラ114とを有する。不揮発性メモリ1115の記憶領域は、複数のアドレス範囲を有する。
[メモリコントローラの内部構成]
メモリコントローラ114は、ホストI/F部101、ワーク用RAM103、プログラムを格納したROM104、及びワーク用RAM103とROM104に格納されたプログラムを用いてメモリコントローラ114内全体の制御を行うCPU102を有する。
メモリコントローラ114は、さらに、不揮発性メモリ1115を制御するメモリ制御部122、アドレス管理テーブル1112を生成するアドレス管理テーブル生成部107、及びアドレス管理テーブル1112を一時的に格納する読み書きメモリ113を有する。
メモリ制御部122は、不揮発性メモリ1115のアドレス範囲の切り替わりを判断するアドレス範囲制御部124、不揮発性メモリ1115に対してデータの読み書き等を制御する不揮発性メモリアクセス部109、及び読み書きメモリ113に一時記憶されたアドレス管理テーブル1112を不揮発性メモリアクセス部109を介して不揮発性メモリ1115に書き込むアドレス管理テーブル制御部108を有する。
[不揮発性メモリの内部構成]
本実施形態において、不揮発性メモリ1115の記憶領域は、データを記憶するためのユーザデータ領域1116、アドレス管理テーブル1112を記憶するためのアドレス管理テーブル領域1117、及び図18に示すアドレス範囲特定情報1801を格納するためのカレントアドレス範囲ナンバー記憶領域118を有する。
図12に、本実施形態の不揮発性メモリ1115の記憶領域の構成を具体的に示す。図12において、不揮発性メモリ1115は1GBであり、1Gビットのフラッシュメモリを8チップ実装している。不揮発性メモリ1115は、複数の物理ブロック211により構成されている。ここで、物理ブロック211とは、選択的に消去できる最小単位のイレーズブロックのことであり、本実施形態では約4kBの大きさを持つ。
不揮発性メモリ1115は、横方向にバンク0〜3の4バンクに分割されている。本実施形態において、アドレス範囲1201は、ユーザデータ領域1116内の各バンクから1つずつ選択された、合計4つの物理ブロック211により構成される。例えば、論理アドレス0_a0と0_a1〜0_d0と0_d1を含む論理ブロックナンバー「0」の4つの物理ブロックが1つのアドレス範囲1201となる。すなわち、本実施形態において、論理ブロックナンバーは、アドレス範囲1201を指定するアドレス範囲ナンバーとなり、例えば論理ブロックナンバー「0」=アドレス範囲ナンバー「0」となる。図12において、ユーザデータ領域1116は、アドレス範囲0〜8188を有する。
本実施形態において、アドレス管理テーブル領域1117は、アドレス範囲1201内に設けられるのではなく、不揮発性メモリ1115の上位側の領域に設けられる。アドレス管理テーブル領域1117は、下位側(図12の上側)から順に、アドレス管理テーブル1112を格納していく。その後、新しいアドレス管理テーブル1112を記憶できるように、不要となった古いアドレス管理テーブル1112は順に消去される。このように、アドレス管理テーブル領域1117は巡回的に使用される。例えば、アクセス装置100からの書き込み命令がなされ、不揮発性メモリ1115に有効データが書かれている状態において、最新のアドレス管理テーブル1112が論理アドレス8190_a0〜8190_d0に格納されているとすると、それより下位(図12の上側)の8189_a1〜8189_d1と8189_a0〜8189_d0に格納されているアドレス管理テーブル1112は無効ブロックとして消去しておく。そしてこの領域は後々使用できるようにしておく。
不揮発性メモリ1115の記憶領域は、アドレス管理テーブル領域1117の上位側にカレントアドレス範囲ナンバー記憶領域118を有する。カレントアドレス範囲ナンバー記憶領域118は、アドレス範囲ナンバーを特定する情報を格納するための領域であり、図18に示すアドレス範囲特定情報1801を格納する。カレントアドレス範囲ナンバー記憶領域118を設けることにより、電源遮断等の障害によって再起動された際に、起動前にアクセスされていたアドレス範囲ナンバーを特定することができるようになる。カレントアドレス範囲ナンバー記憶領域118は、不要となった古いアドレス範囲特定情報1801が格納された物理ブロック211を消去しながら巡回的に使用される。
なお、不揮発性メモリ1115において、セキュリティ関係の情報やメーカコード等が書き込まれた所謂システム領域については、ここでは説明を省略する。
図13に、本実施形態における物理ブロック211の具体例を示す。物理ブロック211はページ0とページ1の2ページを有する。ページは書き込み単位であり、図12において、最大同時書き込み数は4バンクの各1ページ、即ち最大4ページ分である。各ページは、2048バイトのデータ領域212と64バイトの管理領域213を有する。1セクタは512バイトであり、データ領域212は4セクタにより構成される。データ領域212は、アクセス装置100から転送されるデータが書き込まれる領域である。ページ0の管理領域213には、分散管理情報214が格納される。分散管理情報214は、アクセス装置100が指定する論理ブロックナンバーと、物理ブロック211のステータスを示すブロックステータスとを含む。アクセス装置100から転送されたデータがページ0のデータ領域212に書き込まれるときに、分散管理情報214はページ0の管理領域213に書き込まれる。
[論理アドレスのフォーマット]
図14に、本実施形態におけるアクセス装置100が不揮発性記憶装置123に送信する論理アドレス1400のフォーマットを示す。論理アドレス1400は、下位ビットから順に、セクタナンバー401、バンクナンバー402、ページナンバー403、及びアドレス範囲ナンバー1405を有する。本実施形態において、アドレス範囲ナンバー1405は、論理ブロックナンバー1411である。論理ブロックナンバー1411に対応する13ビット分が物理ブロックナンバー1412へのアドレス変換の対象となる。
[アドレス管理テーブルの構成]
図11に示すように、本実施形態のアドレス管理テーブル1112は、アドレス変換テーブル1110と物理領域管理テーブル1111と書き込み管理テーブル1121とを含む。
図15に本実施形態におけるアドレス変換テーブル1110を示す。アドレス変換テーブル1110は、アクセス装置100が指定した論理アドレス1400に含まれる論理ブロックナンバー1411を不揮発性メモリ1115内の物理ブロックナンバー1412に変換するためのテーブルである。アドレス変換テーブル1110は、論理ブロックナンバー1411毎に対応する物理ブロックナンバー1412を示す。本実施形態において、アドレス変換テーブル1110は、不揮発性メモリ1115内の全ての論理ブロックナンバー1411に対する物理ブロックナンバー1412を含んでいる。さらに、アドレス変換テーブル1110は、アクセス装置100からの書き込み指示に応じて新規に確保した物理ブロックナンバーを最後尾に記憶する。
図16に、本実施形態における物理領域管理テーブル1111を示す。物理領域管理テーブル1111は、不揮発性メモリ1115内において消去単位である物理ブロック211の状態を示すテーブルであり、有効なデータが記憶されているかどうか等のブロックステータスを記憶する。物理領域管理テーブル1111は、アドレス変換テーブル1110に含まれる全ての物理ブロックナンバー1412に対してのブロックステータスを格納しており、本実施形態の物理領域管理テーブル1111の容量は、第1の実施形態の物理領域管理テーブル111の容量と異なる。容量以外については、本実施形態の物理領域管理テーブル1111は、第1の実施形態の物理領域管理テーブル111と同じである。
図17に、本実施形態における書き込み管理テーブル1121を示す。書き込み管理テーブル1121は、アドレス変換テーブル1110が管理する1単位である論理ブロックに対応する物理ブロックの書き込み状態を記憶するテーブルである。書き込み管理テーブル1121は、ページ0とページ1のバンク毎に、書き込み済みか否かの状態を1ビットで表し、書き込み未であれば「1」、書き込み済であれば「0」を記憶する。例えば、アクセス装置100からの書き込み指示に応じて、新規に4つの物理ブロックが確保された場合、書き込み管理テーブル1121の全てのビットは2進数の「1」にセットされる。次にデータが書き込まれると、書き込みが行われたページに対応するビットに2進数の「0」がセットされる。書き込み管理テーブル1121は、既に「0」がセットされているページにデータを書き込む場合に、再度新規に物理ブロックを確保する必要があるかどうかを判断するものである。
[アドレス管理テーブルの生成]
図11に示すアドレス管理テーブル制御部108は、初期化時に、アドレス変換テーブル1110と物理領域管理テーブル1111とを、不揮発性メモリ1115のアドレス管理テーブル領域1117から読み込む。
アドレス管理テーブル生成部107は、電源立ち上げ前にアクセスしていたアドレス範囲の物理ブロック211に記憶された分散管理情報214に基づいて書き込み管理テーブル1121を生成する。
読み書きメモリ113は、SRAMなどの揮発性メモリあるいは強誘電体メモリなどの不揮発性メモリであり、アドレス管理テーブル1112を一時的に記憶する。アクセス装置100の指示によるデータの書き込み等は、読み書きメモリ113に格納されたアドレス管理テーブル1112を参照し、更新しながら行われる。
メモリ制御部122は、アクセス装置100からの書き込み指示に応じてユーザデータ領域1116にデータと分散管理情報214を書き込む。このとき、メモリ制御部122内のアドレス管理テーブル制御部108は、読み書きメモリ113に一時記憶されたアドレス管理テーブル1112を更新する。アドレス管理テーブル制御部108は、アクセス装置100が指示した書き込み先アドレスが現在のアドレス範囲から他のアドレス範囲に切り替わる際に、読み書きメモリ113上に一時記憶されたアドレス管理テーブル1112を不揮発性メモリ1115のアドレス管理テーブル領域1117に書き込む。
[アドレス範囲特定情報の書き込み]
アドレス範囲特定情報1801とは、切り替わり先のアドレス範囲を特定するための情報である。図18に、本実施形態におけるアドレス範囲特定情報1801を示す。アドレス範囲特定情報1801は、時刻情報711と、切り替わり後のアドレス範囲を特定するためのアドレス範囲ナンバー1712を有する。アドレス範囲ナンバー1712のビット数は、第1の実施形態のアドレス範囲ナンバー712のビット数と異なる。
図11に示すアドレス範囲制御部124は、アドレス範囲切替部105とアドレス範囲特定部106を有する。
アドレス範囲切替部105の内部構成は、第1の実施形態の図7と同様である。アドレス範囲切替部105は、アクセス装置100が転送した論理アドレスに基づき、アドレス範囲ナンバー1712が切り替わったか否かを検出する。切り替わったことを検出すると、切り替わり後のアドレス範囲ナンバー1712を出力すると共に、アクセス装置100が転送した命令が何時の時点での命令かがわかるように、各命令の時間的前後関係を表す時刻情報711とを出力する。
アドレス範囲特定部106は、アドレス範囲が切り替わった直後、切り替わり後のアドレス範囲への書き込みを始める際に、アドレス範囲特定情報1801を不揮発性メモリアクセス部109を介して、不揮発性メモリ1115のカレントアドレス範囲ナンバー記憶領域118に記憶する。さらに、アドレス範囲特定部106は、電源立ち上げ後の初期化時において、カレントアドレス範囲ナンバー記憶領域118に記憶されたアドレス範囲特定情報1801に基づいて、電源立ち上げ前にアクセスされていたアドレス範囲1201を特定する。これにより、例えば、電源遮断等の障害によって再起動された場合であっても、アドレス範囲特定部106は起動前にアクセスされていたアドレス範囲ナンバー1712を特定できる。
[初期化処理]
以上のように構成された本実施形態の不揮発性記憶システムの初期化処理について説明する。電源ON後、CPU102はROM104に記憶されたプログラムに基づいて、不揮発性メモリアクセス部109にアドレス管理テーブル領域1117内のアドレス変換テーブル1110と物理領域管理テーブル1111の読み込み指示を発行する。初期化処理は、電源ON時の他に、不揮発性記憶装置123のリセット時も行われる。不揮発性メモリアクセス部109は、不揮発性メモリ1115のアドレス管理テーブル領域1117からアドレス変換テーブル1110と物理領域管理テーブル1111を読み出す。アドレス管理テーブル制御部108は、アドレス変換テーブル1110と物理領域管理テーブル1111を読み書きメモリ113に書き込む。
初期化処理時に読み込まれるアドレス変換テーブル1110と物理領域管理テーブル1111は、アドレス管理テーブル領域1117内における物理ブロック211に格納されている最新のアドレス変換テーブル1110と物理領域管理テーブル1111である。どれが最新であるかの判断については、アドレス管理テーブル領域1117に対応する物理ブロック211のページの最上位アドレス、具体的には図12における論理アドレス8190_a1〜8190_d1の4ページ分(全8kB)をセットとして消去されているか否かを判断基準とする。そして、図12の上位方向にサーチしていき、消去されていない、即ち何らかの値が書き込まれた4ページ分を最新のアドレス変換テーブル1110と物理領域管理テーブル1111として選択する。
さらに、CPU102は不揮発性メモリアクセス部109にアドレス範囲特定情報1801の読み込み指示を発行する。アドレス範囲特定部106は、不揮発性メモリアクセス部109を介して、不揮発性メモリ1115のカレントアドレス範囲ナンバー記憶領域118から、最も大きい時刻情報711を持つアドレス範囲特定情報1801を検索し、検索したアドレス範囲特定情報1801に含まれるアドレス範囲ナンバー1712をアドレス管理テーブル生成部107に転送する。アドレス管理テーブル生成部107は、電源立ち上げ前にアクセスしていたアドレス範囲の物理ブロック211の分散管理情報214に基づいて、書き込み管理テーブル1121を生成し、読み書きメモリ113上に格納する。但し、全てのビット値が1の時刻情報711については、アドレス範囲特定情報1801が書き込み未であると判断する。
なお、不揮発性記憶システムの記憶媒体である不揮発性記憶装置123が出荷された後、最初に使用される際は、不揮発性メモリ1115の物理ブロック211は全て消去された状態となっている。実際は、システム領域に所定の値が書き込まれているが、ここではこの状態を省略して説明する。工場出荷直後は、最下位(図12の上側)の8189_a0〜8189_d0の4ページを、アドレス管理テーブル1112として読み書きメモリ113に読み込む。このとき、有効なデータは不揮発性メモリ1115に記憶されていないため、図16に示す物理領域管理テーブル1111は全て無効ブロックの「11」を記憶している。また、図17に示す書き込み管理テーブル1121は、全て書き込み未の状態を示す「1」を記憶している。
上記のように、アドレス変換テーブル1110、物理領域管理テーブル1111及び書き込み管理テーブル1121を読み書きメモリ113に書き込んだあと、メモリコントローラ101は、アクセス装置100からの読み書き等のコマンドの受付状態に入る。
[アドレス範囲内のデータの書き込み処理]
図19に、アドレス範囲の切り替えが無い場合の書き込み処理を示す。なお、第1の実施形態においては不揮発性メモリ115へのアクセスは16kB単位であったが、第2の実施形態においては2kB単位である。図19においては、データライト期間TA0において、アドレス範囲0内の論理アドレス0_a0で示される物理ブロック211のページ0に2kBのデータが書き込まれ、次のデータライト期間TB1において、アドレス範囲0内の論理アドレス0_b0で示される物理ブロック211のページ0に2kB分のデータが書き込まれる。ライトコマンド及びアドレス/データ転送期間Ta1、イレーズビジー期間Ta2、及びプログラムビジー期間Ta3については、第1の実施形態の図9と同じである。
特許文献1に示すような従来の半導体メモリ装置は、2kB分のデータを書き込んだ後に、読み書きメモリ113に一時記憶されたアドレス管理テーブル1112を不揮発性メモリ1115に書き戻す処理がなされており、その時間的オーバヘッドが処理速度を下げる要因となっていた。一方、本発明の第2の実施形態においては、アドレス範囲が切り替わらない場合は、読み書きメモリ113に一時記憶されたアドレス管理テーブル1112を不揮発性メモリ1115に書き戻す処理は行わず、データの書き込みの時に併せて分散管理情報214をユーザデータ領域1116に書き込むことにより、上述したオーバヘッドの合理化を行っている。
[アドレス範囲が切り替わる場合のデータの書き込み処理]
図20に、アドレス範囲の切り替えがある場合の書き込み処理を示す。図20は、アドレス範囲1201が「3」から「4」に切り替わる場合を例としている。データライト期間TA3とデータライト期間TA0との間が、アドレス範囲切替時点TSである。
データライト期間TA3において、3_d1の物理ブロック211のページ1にデータが書き込まれた後、アドレス範囲切替部105は、アクセス装置100からアドレス範囲4を指定する論理アドレス1400を受け取ると、アドレス範囲が「3」から「4」に切り替わったことを検知する。これにより、アドレス範囲3に対する処理は終了し、データライト期間TA3とデータライト期間TA0との間が、アドレス範囲切替時点TSとなる。
次のデータライト期間TA0において、4_a0の物理ブロック211のページ0にデータが書き込まれる。このとき、アドレス管理テーブル制御部108は、アドレス範囲4へ書き込みを行うために確保した物理ブロックナンバー1412をアドレス変換テーブル1110の新規確保ブロックに書き込む。
その後、ATライト期間TBにおいて、読み書きメモリ113に一時的に記憶されたアドレス変換テーブル1110、物理領域管理テーブル1111及び書き込み管理テーブル1121が、不揮発性メモリ1115のアドレス管理テーブル領域1117に格納される。
次に、アドレス範囲特定情報ライト期間TDにおいて、アドレス範囲「4」を含むアドレス範囲特定情報1801が、不揮発性メモリ1115のカレントアドレス範囲ナンバー記憶領域118に書き込まれる。この処理を行うことにより、電源遮断などの障害が発生したとき、その直後の起動時に、どのアドレス範囲の処理中に電源遮断などの障害が起きたかを判別できる。
ライトコマンド及びアドレス/データ転送期間Ta1、Tb1、Td1、イレーズビジー期間Ta2、Tb2、Td2、及びプログラムビジー期間Ta3、Tb3、Td3、についての詳細は、第1の実施形態の図10と同じである。
本実施形態は、初期化処理時に、全ての論理ブロックナンバー1411に対するアドレス変換テーブル1110と、アドレス変換テーブル1110に含まれる全ての物理ブロックナンバー1412に対する物理領域管理テーブル1111とが読み書きメモリ113に格納されているため、図10のATリード期間TCを設けなくて良い。
上記のように、本実施形態の不揮発性記憶装置123は、データの書き込み毎にアドレス管理テーブル1112を不揮発性メモリ1115に書き戻さない。そのため、電源遮断等の障害が起きた場合の不揮発性メモリ1115上のアドレス管理テーブル1112は、最新のアドレス管理情報でない場合がある。そこで、アドレス範囲特定部106が電源遮断等の障害が起きた直後の起動時に、電源遮断等の障害が起きた時のアドレス範囲を特定し、そのアドレス範囲に記憶されている分散管理情報214に基づき、アドレス管理テーブル生成部107が読み書きメモリ113上に書き込み管理テーブル1121を生成している。
[初期化処理に要する時間]
アドレス管理テーブル生成部107が不揮発性メモリアクセス部109を介して読み込むデータ量は、アドレス範囲内の分散管理情報214に限るので、比較的少ない時間で読み込むことができる。例えば不揮発性メモリ1115がマルチバンクページリード機能を備え、各ページ毎のマルチバンクページリードの所要時間が100μ秒とすると、式(11)により、約0.8m秒で読み出しが完了する。
100μ秒×8=0.8m秒 (11)
1GBの容量をもつ半導体メモリ装置(フラッシュメモリチップが8枚分)の場合は、式(12)により、約6.4m秒となる。
0.8m秒×8枚=6.4m秒 (12)
一方、特許文献2に示すような従来の半導体メモリ装置は、全領域の分散管理情報の読み出し時間は式(13)により、約6400m秒となる。
100μ秒×8k×8=6400m秒 (13)
この値はユーザの起動時の待ち時間としては長時間であるといえる。このような問題は、半導体メモリ装置の容量が大きくなればなる程、致命的な問題となる。しかし、本実施形態によれば、短時間で初期化処理を行うことができる。
[データの書き換えレート]
次に、書き込み速度の向上に関して、以下定量的に説明する。図19に示したデータライト期間TA0、TA1及び図20に示したデータライト期間TA3、TA0、ATライト期間TB、アドレス範囲特定情報ライト期間TDを各々1.5m秒とする。
特許文献1に示すような従来の半導体メモリ装置では、図19のデータライト期間TA0、TA1の後にATライト期間TBが必要であったため、2ページ分のデータの書き込みは、式(14)により、4.5m秒を要していた。
1.5m秒×3=4.5m秒 (14)
一方、本実施形態におけるアドレス範囲が切り替わらない場合の2ページ分のデータの書き込みは、式(15)により3m秒である。
1.5m秒×2=3m秒 (15)
但し、本実施形態においては、図20に示すようにアドレス範囲が切り替わる場合、アドレス範囲特定情報ライト期間TDの分、従来例より余分に処理時間を要する。
これを踏まえて、1つのアドレス範囲を2kB単位で全て書き換えるレート値を基準にして、本実施形態と特許文献1とを比較する。本実施形態において、1つのアドレス範囲の容量は16kBである。2kB単位の書き込みで1つのアドレス範囲を書き換える場合、式(16)により、アクセス装置100は8回の書き込みを指示することになる。
16kB÷2kB=8回 (16)
特許文献1に示すような従来の半導体メモリ装置の書き換えレートは、式(17)に示すように、平均444kB/秒である。
16kB÷(8回×4.5m秒)≒444kB/秒 (17)
一方、本実施形態の不揮発性記憶装置123の書き換えレートは、式(18)に示すように、平均593kB/秒である。本実施形態における不揮発性記憶装置123の方が、従来の半導体メモリ装置より高速に書き換えることができる。
16kB÷{(8回×3m秒)+(2回×1.5m秒)}≒593kB/秒 (18)
なお、論理アドレス範囲切り替え時の瞬間的な速度劣化は、数m秒オーダであるので、アクセス装置100側が通常備えているバッファを使用することにより、十分吸収することができる。これにより処理が破綻することはない。
以上のように、本実施形態によれば、半導体装置のメモリ容量が大きくなっても、また電源遮断等の障害が発生した後においても起動時の初期化時間を極小化することができると共に、アドレス管理テーブル1112の更新における時間的なオーバヘッドを合理化し、結果として書き換えレートを向上できる。
なお、図20に代えて、図21に示す書き込みシーケンスを用いて、アドレス範囲が切り替わったときの処理を行っても良い。図21においては、ATライト期間TBはデータライト期間TA3の後に設けており、ATライト期間TBとデータライト期間TA0との間をアドレス範囲切替時点TSとしている。
なお、図13における管理領域213は、分散管理情報214等に加え、時刻情報711を記憶しても良い。これにより、図12のカレントアドレス範囲ナンバー記憶領域118に記憶されたアドレス範囲特定情報1801の時刻情報711と一致する物理ブロックのみの情報に基づき、アドレス管理テーブル領域に記憶された最新のアドレス管理テーブル1112を改訂することによって、真の最新のアドレス管理テーブル1112を生成することができる。
また、読み書きメモリ113は、比較的高速にアクセスできればRAM以外の読み書きメモリを使用しても構わない。
また、不揮発性メモリ1115は1つのフラッシュメモリチップを用いて構成してもよいし、複数のフラッシュメモリチップを用いて構成してもよい。また不揮発性メモリ1115は、フラッシュメモリ以外の不揮発性メモリを用いても良い。
また、本実施形態のアドレス管理テーブル領域1117のように、アドレス管理テーブル1112の記憶位置を物理的に固定させるのではなく、アドレス管理情報用の領域の物理アドレスを指し示すポインタ情報を別に設けて、ユーザデータ領域1116と同じ領域にアドレス管理テーブル1112を混在させ、ポインタ情報に応じて記憶位置を移動させるようにしてもよい。
また、時刻情報711等のアドレス範囲を特定する為のアドレス範囲特定情報1801を、不揮発性メモリ1115のカレントアドレス範囲ナンバー記憶領域118に記憶するようにしたが、不揮発性メモリ1115以外の不揮発性メモリを別に設け、そこに記憶するようにしても構わない。
また、アドレス範囲特定情報1801は、アドレス範囲が切り替わった際に、切り替え後のアドレス範囲に対応するアドレス管理テーブル1112に組み込んだ形で、不揮発性メモリ1115に書き戻すようにしても構わない。但し、その場合は電源立ち上げ後の初期化において、アドレス管理テーブル領域1117内の全てのアドレス範囲0〜8188に対応する最新のアドレス管理テーブル1112を調べ、最も直近の時刻情報711を含むアドレス管理テーブル1112内に記憶されたアドレス範囲ナンバー1712を電源遮断がなされた時刻におけるアドレス範囲ナンバー1712と判断する。そこに書かれている切替時のアドレス範囲ナンバー1712を、電源遮断などの障害が起きた時点でアクセス装置100からの書き込み指示等が転送されていたアドレス範囲ナンバー1712と特定することができる。
本発明の不揮発性記憶装置は、フラッシュメモリなどの不揮発性メモリを使用したメモリカード等の記憶媒体を用いて、高速書き込みと初期化時間短縮とを両立できるという効果を有し、静止画記録再生装置や動画記録再生装置等のポータブルAV機器、あるいは携帯電話等のポータブル通信機器の記録媒体として有益である。
本発明の第1の実施形態における不揮発性記憶システムの構成を示すブロック図 第1の実施形態における不揮発性メモリの内部構成を示す図 第1の実施形態における物理ブロックの構成を示す図 第1の実施形態における論理アドレスのフォーマットを示す図 第1の実施形態におけるアドレス変換テーブルを示す図 第1の実施形態における物理領域管理テーブルを示す図 第1の実施形態におけるアドレス範囲切替部の構成を示す回路図 第1の実施形態におけるアドレス範囲特定情報を示す図 第1の実施形態におけるアドレス範囲が切り替わらない場合の書込みシーケンスを示す図 第1の実施形態におけるアドレス範囲が切り替わる場合の書込みシーケンスを示す図 本発明の第2の実施形態における不揮発性記憶システムの構成を示すブロック図 第2の実施形態における不揮発性メモリの内部構成を示す図 第2の実施形態における物理ブロックを示す図 第2の実施形態における論理アドレスのフォーマットを示す図 第2の実施形態におけるアドレス変換テーブルを示す図 第2の実施形態における物理領域管理テーブルを示す図 第2の実施形態における書き込み管理テーブルを示す図 第2の実施形態におけるアドレス範囲特定情報を示す図 第2の実施形態におけるアドレス範囲が切り替わらない場合の書込みシーケンスを示す図 第2の実施形態におけるアドレス範囲が切り替わる場合の書込みシーケンスを示す図 第2の実施形態におけるアドレス範囲が切り替わる場合の別の書込みシーケンスを示す図
符号の説明
100 アクセス装置
101 ホストI/F部
102 CPU
103 RAM
104 ROM
105 アドレス範囲切替部
106 アドレス範囲特定部
107 アドレス管理テーブル生成部
108 アドレス管理テーブル制御部
109 不揮発性メモリアクセス部
110 アドレス変換テーブル
111 物理領域管理テーブル
112 アドレス管理テーブル
113 読み書きメモリ
114 メモリコントローラ
115 不揮発性メモリ
116 ユーザデータ領域
117 アドレス管理テーブル領域
118 カレントアドレス範囲ナンバー記憶領域
122 メモリ制御部
123 不揮発性記憶装置
124 アドレス範囲制御部
1110 アドレス変換テーブル
1111 物理領域管理テーブル
1112 アドレス管理テーブル
1115 不揮発性メモリ
1116 ユーザデータ領域
1117 アドレス管理テーブル領域
1121 書き込み管理テーブル

Claims (10)

  1. 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、
    前記メモリコントローラは、
    前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶する読み書きメモリと、
    データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込む、メモリ制御部と、
    初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成する、アドレス管理テーブル生成部と、
    を有することを特徴とするメモリコントローラ。
  2. 前記アドレス範囲は、前記不揮発性メモリの記憶領域を所定サイズ毎に区分けした領域であり、アクセス装置により指定される複数の論理単位に対応した複数の物理ブロックを含み、
    前記アドレス管理テーブルは、前記アドレス範囲内に含まれる複数の論理単位をまとめて管理するテーブルである、ことを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記アドレス範囲は、アクセス装置から指定される論理単位毎に設けられた領域であり、前記アドレス管理テーブルが複数の前記アドレス範囲をまとめて管理するテーブルである、ことを特徴とする請求項1に記載のメモリコントローラ。
  4. 前記メモリ制御部は、データの書き込み先の物理ブロックがあるアドレス範囲から他のアドレス範囲へ切り替わる時に、切り替わり先のアドレス範囲を特定するためのアドレス範囲特定情報を前記不揮発性メモリに書き込む、ことを特徴とする請求項1に記載のメモリコントローラ。
  5. 前記メモリ制御部は、前記アドレス範囲特定情報を前記アドレス管理テーブルに組み込んだ形で前記不揮発性メモリに書き込むことを特徴とする請求項4に記載のメモリコントローラ。
  6. 前記メモリ制御部は、初期化時に、前記アドレス範囲特定情報に基づいて、初期化前にアクセスしていた前記アドレス範囲を特定する、ことを特徴とする請求項4に記載のメモリコントローラ。
  7. 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、
    前記メモリコントローラは、
    1つの前記アドレス範囲内の物理ブロックの書き込み状態を管理する第1のテーブルと複数の前記アドレス範囲内の物理ブロックの状態を管理する第2のテーブルとを含むアドレス管理テーブルを一時記憶する読み書きメモリと、
    データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記不揮発性メモリに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込み、初期化時に、前記第2のテーブルを前記不揮発性メモリから読み出して、前記読み書きメモリに格納する、メモリ制御部と、
    初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記第1のテーブルを生成して、前記読み書きメモリに格納する、アドレス管理テーブル生成部と、
    を有することを特徴とするメモリコントローラ。
  8. 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、
    前記不揮発性メモリへのデータの書き込み又は読み出しを制御する、請求項1に記載のメモリコントローラと、
    を有することを特徴とする不揮発性記憶装置。
  9. 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリを含む、請求項8に記載の不揮発性記憶装置と、
    前記アドレス範囲を指定して前記不揮発性メモリに対するデータの書き込み又は読み出しを制御するアクセス装置と、
    を有することを特徴とする不揮発性記憶システム。
  10. 1以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶するための読み書きメモリと、を有する不揮発性記憶装置を制御するメモリ制御方法であって、
    前記メモリ制御方法は、
    データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込むステップと、
    初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成するステップと、
    を有することを特徴とするメモリ制御方法。
JP2007517793A 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 Expired - Fee Related JP4884382B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007517793A JP4884382B2 (ja) 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005149047 2005-05-23
JP2005149047 2005-05-23
JP2007517793A JP4884382B2 (ja) 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
PCT/JP2006/309933 WO2006126445A1 (ja) 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JPWO2006126445A1 JPWO2006126445A1 (ja) 2008-12-25
JP4884382B2 true JP4884382B2 (ja) 2012-02-29

Family

ID=37451870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007517793A Expired - Fee Related JP4884382B2 (ja) 2005-05-23 2006-05-18 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Country Status (4)

Country Link
US (1) US8051270B2 (ja)
JP (1) JP4884382B2 (ja)
CN (1) CN100590608C (ja)
WO (1) WO2006126445A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921340B2 (en) * 2006-01-20 2011-04-05 Panasonic Corporation Nonvolatile memory device, nonvolatile memory system, and defect management method for nonvolatile memory device
JPWO2007105688A1 (ja) * 2006-03-16 2009-07-30 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
WO2008013229A1 (fr) * 2006-07-26 2008-01-31 Panasonic Corporation dispositif de stockage non volatil, système de stockage non volatil et unité d'hôte
US20100017557A1 (en) * 2006-07-26 2010-01-21 Panasonic Corporation Memory controller, nonvolatile memory device,access device, and nonvolatile memory system
WO2008013230A1 (fr) * 2006-07-26 2008-01-31 Panasonic Corporation dispositif de stockage non volatil, système de stockage non volatil et dispositif d'hôte
JP4551940B2 (ja) * 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
JP2010152517A (ja) * 2008-12-24 2010-07-08 Toshiba Corp 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法
US8554987B2 (en) * 2009-06-18 2013-10-08 Panasonic Corporation Nonvolatile memory system for improving stream data writing
JP5525605B2 (ja) * 2009-11-04 2014-06-18 株式会社日立製作所 フラッシュメモリモジュール
JP5592293B2 (ja) * 2010-03-12 2014-09-17 パナソニック株式会社 不揮発性記憶装置、アクセス装置及び不揮発性記憶システム
JP5391153B2 (ja) * 2010-06-01 2014-01-15 株式会社バッファロー ファイル管理装置およびファイル管理方法
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
US20130254463A1 (en) * 2012-03-23 2013-09-26 Kabushiki Kaisha Toshiba Memory system
US9411983B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Apparatus and method to protect digital content
US8838936B1 (en) * 2013-11-27 2014-09-16 NXGN Data, Inc. System and method for efficient flash translation layer
US9772781B2 (en) 2013-11-27 2017-09-26 Ngd Systems, Inc. System and method for supporting atomic writes in a flash translation layer
WO2015145932A1 (ja) * 2014-03-28 2015-10-01 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
CN105094689B (zh) * 2014-05-16 2018-06-15 华为技术有限公司 非易失性存储器nvm页框初始化方法、装置和系统
JP6119682B2 (ja) * 2014-06-27 2017-04-26 株式会社デンソー 電子制御装置
KR102504763B1 (ko) * 2016-02-05 2023-03-02 에스케이하이닉스 주식회사 데이터 저장 장치
US9936019B2 (en) * 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
KR20180042488A (ko) * 2016-10-17 2018-04-26 에스케이하이닉스 주식회사 메모리 장치
US10372351B2 (en) * 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
JP6890238B2 (ja) * 2017-04-07 2021-06-18 パナソニックIpマネジメント株式会社 使用回数を増大させた不揮発性メモリ
US10732896B2 (en) * 2017-06-12 2020-08-04 Western Digital Technologies, Inc. Method and system for reading data during control sync operations
JP6708762B1 (ja) * 2019-01-29 2020-06-10 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11294579B2 (en) * 2020-06-18 2022-04-05 Western Digital Technologies, Inc. Mode handling in multi-protocol devices
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173379A (ja) * 1997-06-20 1999-03-16 Sony Corp データ管理装置及びデータ管理方法並びに記憶媒体
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
JP2003296188A (ja) * 2002-03-18 2003-10-17 Samsung Electro Mech Co Ltd 高容量フラッシュメモリカードシステムにおけるデータ運営方法
JP2006509304A (ja) * 2002-12-09 2006-03-16 サンディスク コーポレイション 不揮発性メモリにおける欠陥のためのゾーン境界調整
JP2007517333A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション 不揮発性メモリおよび制御データ管理を伴う方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP3912355B2 (ja) * 2003-10-14 2007-05-09 ソニー株式会社 データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173379A (ja) * 1997-06-20 1999-03-16 Sony Corp データ管理装置及びデータ管理方法並びに記憶媒体
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
JP2003296188A (ja) * 2002-03-18 2003-10-17 Samsung Electro Mech Co Ltd 高容量フラッシュメモリカードシステムにおけるデータ運営方法
JP2006509304A (ja) * 2002-12-09 2006-03-16 サンディスク コーポレイション 不揮発性メモリにおける欠陥のためのゾーン境界調整
JP2007517333A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション 不揮発性メモリおよび制御データ管理を伴う方法

Also Published As

Publication number Publication date
CN101185067A (zh) 2008-05-21
JPWO2006126445A1 (ja) 2008-12-25
CN100590608C (zh) 2010-02-17
US20080168252A1 (en) 2008-07-10
US8051270B2 (en) 2011-11-01
WO2006126445A1 (ja) 2006-11-30

Similar Documents

Publication Publication Date Title
JP4884382B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JP4948793B2 (ja) バッドブロック管理部を含むフラッシュメモリシステム
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US8131911B2 (en) Data writing method, and flash storage system and controller using the same
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20100161885A1 (en) Semiconductor storage device and storage controlling method
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JPH1185609A (ja) 半導体記憶装置及びそのデータ管理方法
US20100042774A1 (en) Block management method for flash memory, and storage system and controller using the same
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
JPWO2006067923A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JPH11282765A (ja) フラッシュメモリを使用した外部記憶装置
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
TW202038100A (zh) 用於快閃記憶體的寫入管理機制
JP2005216042A (ja) 半導体メモリ装置
US20100217923A1 (en) Storage device with flash memory
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090421

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

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

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4884382

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees