JP2010152517A - 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 - Google Patents
不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 Download PDFInfo
- Publication number
- JP2010152517A JP2010152517A JP2008328074A JP2008328074A JP2010152517A JP 2010152517 A JP2010152517 A JP 2010152517A JP 2008328074 A JP2008328074 A JP 2008328074A JP 2008328074 A JP2008328074 A JP 2008328074A JP 2010152517 A JP2010152517 A JP 2010152517A
- Authority
- JP
- Japan
- Prior art keywords
- data
- semiconductor memory
- nonvolatile semiconductor
- address
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】コストアップ等を招くことなくデータ再配置に伴うアドレステーブルの更新を速やかに実行することを実現した不揮発性半導体メモリドライブ装置を提供する。
【解決手段】論理/物理アドレス管理部2031は、データをNANDメモリ204A〜204Hに書き込む際、書き込み先として指定された論理アドレスと書き込み先を示す物理アドレスとを対応づけるためのクラスタテーブルの更新を行うと共に、その論理アドレスを当該データを書き込むページの冗長領域に格納する処理を行う。そして、コンパクション処理部2032によってコンパクションが実施された際、論理/物理アドレス管理部2031は、再配置対象となったデータの論理アドレスを再配置前のページの冗長領域から取得することで、クラスタテーブルの更新を効率的かつ経済的に実行する。
【選択図】 図3
【解決手段】論理/物理アドレス管理部2031は、データをNANDメモリ204A〜204Hに書き込む際、書き込み先として指定された論理アドレスと書き込み先を示す物理アドレスとを対応づけるためのクラスタテーブルの更新を行うと共に、その論理アドレスを当該データを書き込むページの冗長領域に格納する処理を行う。そして、コンパクション処理部2032によってコンパクションが実施された際、論理/物理アドレス管理部2031は、再配置対象となったデータの論理アドレスを再配置前のページの冗長領域から取得することで、クラスタテーブルの更新を効率的かつ経済的に実行する。
【選択図】 図3
Description
この発明は、例えばソリッドステートドライブ(SSD:Solid-State Drive)等の不揮発性半導体メモリドライブ装置におけるアドレス管理技術に関する。
近年、バッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータが広く普及している。モバイルノートPCなどと称される、この種のパーソナルコンピュータの多くは、無線通信機能を備え、または、無線通信モジュールをUSB(Universal Serial Bus)コネクタに接続したりPCカードスロットに装着することによって無線通信機能を必要に応じて増設することが可能である。従って、このモバイルノートPCを携帯すれば、ユーザは、外出先や移動中などにおいても、文書を作成して送信したり、各種情報を適宜に入手したりすることが可能となる。
また、この種のパーソナルコンピュータは、持ち運び易く、衝撃に強く、バッテリで長時間利用できることが要求されるので、小型軽量化、耐衝撃性の強化、省電力化のための検討が日々なされている。このようなことから、最近では、磁気ディスク駆動装置(HDD:Hard disk drive)に代えて、フラッシュメモリを用いるSSDを搭載したモバイルノートPCが製造・販売され始めている。
そして、このフラッシュメモリを用いた装置については、データの書き込み効率を維持することを目的とした、記憶領域を適切に管理するための仕組みが、これまで種々提案されている(例えば特許文献1等参照)。
特許第3195988号公報
データの書き込み効率を維持することを目的とした記憶領域の管理手法として、コンパクションが良く知られている。コンパクションは、記憶領域の管理単位として複数のグループが構成されると想定した場合、(追記でデータを更新する際に発生する)無効化データの容量が多くなった例えば2つのグループを選択し、これら2つのグループ上の有効データを1つのグループに纏めることによって、1つ分のグループを未使用状態に戻す処理をいう。このコンパクションを適宜に実行して未使用状態のフリーグループを確保することによって、データの書き込み効率を維持することができる。
ところで、このSSDを含むいわゆる外部記憶装置では、データの書き込みや読み出しの要求を、論理アドレス空間内での位置を示す論理アドレスと共に受け付け、この論理アドレスを物理アドレス空間内での位置を示す物理アドレスに変換して、当該物理アドレスで示される位置にデータを書き込み、または、当該物理アドレスで示される位置に格納されているデータを読み出す。この論理アドレスから物理アドレスへの変換のために、外部記憶装置は、アドレステーブル(クラスタテーブル)を管理している。従って、上記コンパクションのようなデータの再配置を実行する場合には、このアドレステーブルの更新を併せて実行する必要がある。
しかしながら、アドレステーブルは、論理アドレスから物理アドレスを取得することを目的として作成されているので、再配置対象とするデータの格納位置、つまり物理アドレスから論理アドレスを取得するためには、当該アドレステーブルのエントリを先頭から1つずつ参照していく必要があり、上記コンパクション等の処理負荷や所要時間を増加させる要因となっている。
また、物理アドレスから論理アドレスを取得するための逆アドレステーブルを作成しようとすると、アドレステーブルを一時的に保持するためのキャッシュメモリの容量を、当該逆アドレステーブル分さらに確保しなければならず、アドレステーブルの規模が大きくなる大容量のSSDでは、大幅なコストアップを招いてしまう。
この発明は、このような事情を考慮してなされたものであり、コストアップ等を招くことなくデータ再配置に伴うアドレステーブルの更新を速やかに実行することを実現した不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法を提供することを目的とする。
前述の目的を達成するために、この発明の不揮発性半導体メモリドライブ装置は、不揮発性半導体メモリと、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラと、を具備し、前記コントローラは、前記不揮発性半導体メモリへのデータの書き込みおよび前記不揮発性半導体メモリからのデータの読み出し単位であるページ毎に、当該ページに格納される前記不揮発性半導体メモリ上におけるデータの管理単位として定義されるクラスタサイズの各データに割り当てられた、前記不揮発性半導体メモリの論理アドレス空間内における格納位置を示す論理アドレスを、当該ページの冗長領域に格納する論理アドレス格納手段と、前記不揮発性半導体メモリ上においてデータの再配置を実行する場合に、前記再配置されるデータを格納するページの冗長領域に格納された当該データに割り当てられた論理アドレスを用いて、前記不揮発性半導体メモリの論理アドレス空間内での位置を示す論理アドレスと物理アドレス空間内での位置を示す物理アドレスとを対応づけるアドレステーブルを更新するアドレステーブル管理手段と、を有することを特徴とする。
この発明によれば、コストアップ等を招くことなくデータ再配置に伴うアドレステーブルの更新を速やかに実行することを実現できる。
以下、図面を参照して本発明の一実施形態を説明する。
図1は、本実施形態に係る情報処理装置の外観を示す図である。本情報処理装置は、例えば、モバイルノートPCなどと称される、バッテリ駆動可能なノートブックタイプのパーソナルコンピュータ1として実現されている。
本コンピュータ1は、コンピュータ本体2と、ディスプレイユニット3とから構成されている。ディスプレイユニット3には、LCD(Liquid Crystal Display)4で構成される表示装置が組み込まれている。
ディスプレイユニット3は、コンピュータ本体2に対し、コンピュータ本体2の上面が露出される開放位置とコンピュータ本体2の上面を覆う閉塞位置との間を回動自由に取り付けられている。コンピュータ本体2は薄い箱形の筐体を有しており、その上面には、電源スイッチ5、キーボード6、タッチパッド7等が配置されている。
また、コンピュータ本体2の前面には、LED(Light Emitting Diode)8が配置され、その右側面には、DVD(Digital Versatile Disc)等に対するデータの書き込みおよび読み出しが可能なODD(Optical disc drive)9、PCカードを取り外し自在に収容するPCカードスロット10、USB機器を接続するためのUSBコネクタ11等が配置されている。そして、本コンピュータ1では、起動ドライブとする外部記憶装置として、コンピュータ本体2の内部に、不揮発性半導体メモリドライブ装置であるSSD12を搭載する。
図2は、本コンピュータ1のシステム構成を示す図である。
本コンピュータ1は、図2に示すように、前述のLCD4、電源スイッチ5、キーボード6、タッチパッド7、LED8、ODD9、PCカードスロット10、USBコネクタ11およびSSD12のほかに、CPU101、ノースブリッジ102、メインメモリ103、GPU(Graphic Processing Unit)104、サウスブリッジ105、フラッシュメモリ106、EC/KBC(Embedded Controller/KeyBoard Controller)107、ファン108等を備えている。
CPU101は、本コンピュータ1の動作を制御するプロセッサであり、SSD12からメインメモリ103にロードされる、オペレーティングシステムや、ユーティリティを含む各種アプリケーションプログラムを実行する。また、CPU101は、フラッシュメモリ106に格納されたBIOS(Basic Input/Output System)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ105との間を接続するブリッジデバイスである。ノースブリッジ102は、バスを介してGPU104との通信を実行する機能を有しており、また、メインメモリ103をアクセス制御するメモリコントローラも内蔵されている。GPU104は、本コンピュータ1の表示装置として使用されるLCD4を制御する。
サウスブリッジ105は、SSD12、ODD9、PCカードスロット10に収容されたPCカード、USBコネクタ11に接続されたUSB機器、フラッシュメモリ106等の各種デバイスを制御するコントローラである。
EC/KBC107は、電力管理のための組み込みコントローラと、キーボード6およびタッチパッド7を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC107は、LED8および冷却用のファン108の制御も実行する。
また、図3は、以上のようなシステム構成を持つ本コンピュータ1に起動ドライブとする外部記憶装置として搭載されるSSD12の概略構成を示すブロック図である。
図示のように、SSD12は、温度センサ201、コネクタ202、制御部203、NANDメモリ204A〜204H、DRAM205、電源回路206等によって構成されており、電源が供給されなくても記憶が消えない(NANDメモリ204A〜204H上のプログラムを含むデータが失われない)不揮発性の外部記憶装置である。また、SSD12は、HDDのようにディスクやヘッド等の駆動機構を持たない、耐衝撃性の強い、低消費電力タイプの外部記憶装置である。
メモリコントローラとしてNANDメモリ204A〜204Hに対するデータの書き込みおよび読み出しを制御する制御部203は、コネクタ202、NANDメモリ204A〜204H、DRAM205、電源回路206にそれぞれ接続されている。本SSD12がコンピュータ本体2の内部に搭載された時、制御部203は、コネクタ202を介してホスト装置、即ちコンピュータ本体2のサウスブリッジ105と接続される。また、本SSD12が単体で存在する時には、制御部203は、必要に応じて、例えばRS−232C規格のシリアルインタフェースを介してデバッグ用機器と接続することができる。
また、図示のように、制御部203は、論理/物理アドレス管理部2031およびコンパクション処理部2032を有しており、これらについては後述する。
NANDメモリ204A〜204Hは、各々が例えば16Gバイトの記憶容量をもつ不揮発性の半導体メモリであって、例えば1つのメモリセルに2ビットを記録可能なMLC(Multi Level Cell)−NANDメモリ(多値NANDメモリ)である。MLC−NANDメモリは、SLC(Single Level Cell)−NANDメモリに比較して、一般に書き換え可能回数は劣るが、記憶容量の大容量化は容易である。
DRAM205は、制御部203によってNANDメモリ204A〜204Hに対するデータの書き込みおよび読み出しが行われる際に一時的にデータが格納されるキャッシュメモリとして利用されるメモリデバイスである。そして、電源回路206は、コネクタ202を介してサウスブリッジ105経由でEC/KBC107から供給される電力を電源として、制御部203の動作用の電力を生成・供給する。
図4は、本SSD12に設置されるNANDメモリ204A〜204Hの概略構成を示す概念図である。
NANDメモリ204A〜204Hが構成する物理アドレス空間に対しては、物理的な使用最小単位とされるセクタa3として512バイトが定義され、また、データの管理単位とされるクラスタa2として8個分のセクタa3を纏めたデータサイズ、即ち、512バイト×8セクタ=4,096バイトが定義される。これに対して、本SSD12は、このNANDメモリ204A〜204Hの物理的なデータの書き込みおよび読み出し単位であるページサイズが4,314バイトを有している。つまり、本SSD12では、1つのページに1つのクラスタa2を格納し、各ページ毎に218バイトの冗長領域を設けるようにしている(4,314バイト−4,096バイト=218バイト)。なお、このページサイズの設定は単なる一例であり、1つのページに2以上のクラスタa2を格納するようにページサイズを設定することも当然に可能である。
また、NANDメモリ204A〜204Hは、独立して動作可能な複数のNANDブロックa1からそれぞれ構成されており、各NANDブロックa1は128ページで構成されている。つまり、1つのNANDグループa1には、128個のクラスタa2が格納される。そして、本SSD12では、16個のNANDブロックで1つのNANDグループを構成し、このNANDグループ(16×128=2,048クラスタ)単位で、データ消去を一括して行う等の記憶領域の管理を実行する。
図5は、本SSD12の動作原理を説明するための概念図である。
図5に示すように、キャッシュメモリとして利用されるDRAM205には、管理データ格納部2051、ライトキャッシュ2052およびリードキャッシュ2053が設けられる。一方、NANDメモリ204A〜204H上の各記憶領域は、管理データ領域2041、プライマリバッファ領域2042、メインストレージ領域2043、フリーグループ領域2044およびコンパクションバッファ領域2045のいずれかとして動的に割り当てられる。
管理データ領域2041は、論理的なクラスタアドレス(LBA:Logical Block Address)と物理的なNANDメモリ204A〜204H上の位置とを対応づけるクラスタテーブルを格納する領域であり、制御部203は、本SSD12の起動時に、このクラスタテーブルをDRAM205上の管理データ格納部2051に取り込み、このDRAM205上のクラスタテーブルを使って、NANDメモリ204A〜204Hに対するアクセスを実行する。このクラスタテーブルの管理のために、制御部203は、論理/物理アドレス管理部2031を備えている。
DRAM205上のクラスタテーブルは、例えば本SSD12の停止時などに発行される所定のコマンドを受けた際、NANDメモリ204A〜204H上に書き戻される。また、この管理データ格納部2051および管理データ領域2041には、プライマリバッファ領域2042内やコンパクションバッファ領域2045内における書き込み位置を示すポインタ情報なども格納される。
ホスト装置からデータの書き込みが要求されると、制御部203は、そのデータをDRAM205上のライトキャッシュ2052に一時的に蓄えながら、プライマリバッファ領域2042内の書き込み位置に書き込み、その書き込み位置と指定されたクラスタアドレスとを対応づけるべくDRAM205上のクラスタテーブルを更新する。もし、このデータの書き込みによって、プライマリバッファ領域2042として割り当てられているNANDグループが満杯になったならば、制御部203は、管理上、このNANDグループをメインストレージ領域2043に移行させ、フリーグループ領域2044として残存する未使用状態のNANDフリーグループの1つを新たにプライマリバッファ領域2042として割り当てる。
なお、本SSD12は、データを追記していくタイプの記憶装置であり、いわゆるデータの更新時には、更新前のデータを無効化し、更新後のデータを新たにプライマリバッファ領域2042内に書き込むことを内部的に実行する。つまり、例えばメインストレージ領域2043のNANDグループにおいてデータの置き換えが発生することはない。制御部203の論理/物理アドレス管理部2031は、データの更新時、この更新前のデータの無効化および更新後のデータの新たな書き込みに伴うクラスタテーブルの更新を併せて実行する。
一方、ホスト装置からデータの読み出しが要求されると、制御部203は、そのデータがDRAM205上のリードキャッシュ2053に存在しない場合、指定されたクラスタアドレスのNANDメモリ204A〜204H上における位置をDRAM205上のクラスタテーブルを参照して取得し、その位置に格納されたデータをリードキャッシュ2053に読み出して、ホスト装置に返却する。要求されたデータがリードキャッシュ2053に存在したならば、制御部203は、NANDメモリ204A〜204Hへのアクセスを行うことなく、そのデータを即座にホスト装置に返却する。
以上のような流れでデータの書き込みおよびデータの読み出しを実行する本SSD12においては、データの書き込み効率を維持するために、フリーグループ領域2044として残存する未使用状態のNANDフリーグループの数を一定の水準以上に常時保っていることが好ましい。そのために、制御部203は、コンパクション処理部2032を備えている。NANDフリーグループの数が予め定められた値以下となった場合、制御部203は、コンパクション処理部2032によるコンパクションを実行する。
コンパクション処理部2032は、まず、フリーグループ領域2044として残存する未使用状態のNANDフリーグループの1つをコンパクションバッファ領域2045として割り当てる。次に、コンパクション処理部2032は、メインストレージ領域2043のNANDグループの中から有効なデータ(有効クラスタ)の最も少ない、即ち、無効化されたデータ(無効化クラスタ)の最も多いNANDグループを選択し、その選択したNANDグループ内の有効クラスタのみをコンパクションバッファ領域2045に再配置していく。
選択したNANDグループ内のすべての有効クラスタを再配置し終えたら、このNANDグループをフリーグループ領域2044に返却する。続いて、2番目に有効クラスタの少ないNANDグループを選択して、同じく有効クラスタのみをコンパクションバッファ領域2045に再配置した後、フリーグループ領域2044に返却する。この処理を繰り返していき、もし、コンパクションバッファ領域2045として割り当てたNANDグループが満杯になったならば、コンパクション処理部2032は、このNANDグループをメインストレージ領域2043に移行させ、新たなNANDフリーグループを、コンパクションバッファ領域2045として割り当てる。例えば所定数のNANDフリーグループを新たに確保できた場合に、コンパクション処理部2032は、このコンパクションを終了する。
つまり、コンパクション処理部2032は、(最も無効化クラスタの多い順の)n個のNANDグループに点在する有効クラスタをn−1個以下のNANDグループに再配置することにより、最大n−1個のNANDフリーグループを確保する。
ところで、このコンパクションは、あるNANDグループ上の有効クラスタを別のNANDグループ上に移動させる、つまりデータの再配置を行うものであるので、論理/物理アドレス管理部2031によるクラスタテーブルの更新が当然に発生する。クラスタテーブルは、論理アドレスから物理アドレスを取得することを目的として作成されている。よって、逆に、再配置対象のデータに割り当てられた論理アドレスを再配置前の物理アドレスから取得するためには、クラスタテーブルのエントリを先頭から1つずつ参照していく必要があり、負荷の増加等を招く。また、物理アドレスから論理アドレスを取得するための逆クラスタテーブルを作成しようとすると、DRAM205上の管理データ格納部2051用の容量を、この逆クラスタテーブル分さらに確保しなければならず、コストアップを招く。
そこで、本SSD12は、制御部203の論理/物理アドレス管理部2031が、物理アドレスから論理アドレスを効率的かつ経済的に取得するための仕組みを備え、データ再配置に伴うアドレステーブルの更新を速やかに行えるようにしたものであり、以下、この点について詳述する。
図6は、この論理/物理アドレス管理部2031が実行する、本SSD12のNANDメモリ204A〜204Hの論理アドレス空間と物理アドレス空間との対応づけの管理を説明するための概念図である。
図6に示すように、NANDメモリ204A〜204Hの論理アドレス空間と物理アドレス空間とは、クラスタ単位で動的に割り当てが行われる。クラスタテーブルは、1つの論理アドレスに対して1つのエントリを設け、このエントリを論理アドレス順に並べ、各々の論理アドレスに対応づけられた物理アドレスを格納することで、論理アドレスを検索キーとして物理アドレスを取得できるように作成される。そこで、論理/物理アドレス管理部2031は、データの書き込み時、その書き込み位置を示す物理アドレスを指定された論理アドレスのエントリに格納する処理を実行する。
また、このクラスタテーブルに対する処理に加えて、論理/物理アドレス管理部2031は、データの書き込み時、その書き込み位置を示す物理アドレスが対応づけられた論理アドレス(図6のLBA)を、当該データが書き込まれたページの冗長領域に格納する処理を実行する。
各ページの冗長領域に対応する論理アドレスを格納しておくことにより、論理/物理アドレス管理部2031は、コンパクション処理部2032によってコンパクションが行われた場合、再配置対象のデータに割り当てられた論理アドレスを、再配置前のページの冗長領域から即座に取得できる。よって、論理/物理アドレス管理部2031は、例えば逆クラスタテーブルを必要とすることなく、クラスタテーブルの目的のエントリを再配置後の物理アドレスに更新する処理を速やかに実行することを実現する。
なお、図6においては、1つのページに1クラスタ分の実データが格納される例を示したが、前述したように、1つのページに2以上のクラスタを格納するようにページサイズを設定することも可能であるので、その場合には、格納した2以上の実データの論理アドレスを冗長領域に格納するようにすればよい。
図7は、本SSD12の制御部203が実行するデータ書き込みの動作手順を示すフローチャートである。
制御部203は、データの書き込み要求を受けると、そのデータをNANDメモリ204A〜204Hのプライマリバッファ領域2042に書き込むと共に(ステップA1)、指定された論理アドレス(クラスタアドレス)を、当該データを書き込んだページの冗長領域に書き込む(ステップA2)。
また、制御部203は、当該データの書き込み位置を示す物理アドレスを、指定されたクラスタアドレスのエントリに格納するためのクラスタテーブルの更新を実行する(ステップA3)。
図8は、本SSD12の制御部203が実行するコンパクションの動作手順を示すフローチャートである。
制御部203は、フリーグループ領域2044として残存する未使用状態のNANDフリーグループの数が予め定められた値以下となった場合(ステップB1のYES)、メインストレージ領域2043のNANDグループの中から最も無効化クラスタが多い順にn個のNANDグループを選択し(ステップB2)、この選択したNANDグループに点在する有効クラスタをn−1個以下のNANDグループに再配置するコンパクションを実行して、最大n−1個のNANDフリーグループを確保する(ステップB3)。
また、制御部203は、コンパクションにより再配置されたデータのクラスタアドレスを、再配置前のデータが格納されていたページの冗長領域から取得し、この取得したクラスタアドレスのエントリに再配置後のデータの格納位置を示す物理アドレスを格納するためのクラスタテーブルの更新を実行する(ステップB3)。
なお、以上では、コンパクションのために行われるデータの再配置に伴うクラスタテーブルの更新について説明したが、コンパクションに限らず、いずれを要因とするデータの再配置においても、本発明の手法は当然に有効である。例えば、NANDグループ毎に実行されるデータ消去の回数を平均化するためのいわゆるウェアレベリングのために行われるデータの再配置時においても、再配置対象のデータのクラスタアドレスをページの冗長領域から取得することで、クラスタテーブルを速やかに更新することができる。
また、各ページの冗長領域に、当該ページに格納したデータのクラスタアドレスを格納しておくことにより、制御部203は、仮に、クラスタテーブルが破壊してしまった場合であっても、すべてのページを辿っていくことで、クラスタテーブルを復旧することが可能となる。
以上のように、本SSD12においては、ページの冗長領域に、当該ページが保持しているデータの論理アドレスを記録しておくことにより、クラスタテーブルのエントリを1つずつ参照していったり、物理アドレスから論理アドレスを求める逆クラスタテーブルを設けることを行うことなしに、コンパクション等によるデータ再配置に伴うクラスタテーブルの更新を速やかに実行することを実現する。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
1…パーソナルコンピュータ、2…コンピュータ本体、3…ディスプレイユニット、4…LCD、5…電源スイッチ、6…キーボード、7…タッチパッド、8…LED、9…ODD、10…PCカードスロット、11…USBコネクタ、12…SSD、101…CPU、102…ノースブリッジ、103…メインメモリ、104…GPU、105…サウスブリッジ、106…フラッシュメモリ、107…EC/KBC、108…ファン、201…温度センサ、202…コネクタ、203…制御部、204A〜204H…NANDメモリ、205…DRAM、206…電源回路、2031…論理/物理アドレス管理部、2032…コンパクション処理部、2041…管理データ領域、2042…プライマリバッファ領域、2043…メインストレージ領域、2044…フリーグループ領域、2045…コンパクションバッファ領域、2051…管理データ格納部、2052…ライトキャッシュ、2053…リードキャッシュ。
Claims (5)
- 不揮発性半導体メモリと、
前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラと、
を具備し、
前記コントローラは、
前記不揮発性半導体メモリへのデータの書き込みおよび前記不揮発性半導体メモリからのデータの読み出し単位であるページ毎に、当該ページに格納される前記不揮発性半導体メモリ上におけるデータの管理単位として定義されるクラスタサイズの各データに割り当てられた、前記不揮発性半導体メモリの論理アドレス空間内における格納位置を示す論理アドレスを、当該ページの冗長領域に格納する論理アドレス格納手段と、
前記不揮発性半導体メモリ上においてデータの再配置を実行する場合に、前記再配置されるデータを格納するページの冗長領域に格納された当該データに割り当てられた論理アドレスを用いて、前記不揮発性半導体メモリの論理アドレス空間内での位置を示す論理アドレスと物理アドレス空間内での位置を示す物理アドレスとを対応づけるアドレステーブルを更新するアドレステーブル管理手段と、
を有することを特徴とする不揮発性半導体メモリドライブ装置。 - 前記コントローラは、
前記不揮発性半導体メモリ上における記憶領域の管理単位として構成される複数のグループ中に残存する、未使用状態にあるフリーグループの数が予め定められた数以下となった場合に、n個のグループ上に点在する有効データをn−1個以下のグループ上に再配置することによってフリーグループを確保するコンパクション制御手段をさらに具備し、
前記アドレステーブル管理手段は、前記コンパクション制御手段によって前記不揮発性半導体メモリ上におけるデータの再配置が実行される場合に、前記ページの冗長領域に格納される論理アドレスを用いたアドレステーブルの更新を実行する、
ことを特徴とする請求項1記載の不揮発性半導体メモリドライブ装置。 - 前記コントローラは、
前記不揮発性半導体メモリ上における記憶領域の管理単位として構成される複数のグループ毎に実行されるデータ消去の回数を平均化するためのデータ再配置を行うウェアレベリング制御手段をさらに具備し、
前記アドレステーブル管理手段は、前記ウェアレベリング制御手段によって前記不揮発性半導体メモリ上におけるデータの再配置が実行される場合に、前記ページの冗長領域に格納される論理アドレスを用いたアドレステーブルの更新を実行する、
ことを特徴とする請求項1記載の不揮発性半導体メモリドライブ装置。 - 前記アドレステーブル管理手段は、前記不揮発性半導体メモリの各ページの冗長領域に格納された論理アドレスを用いて、前記アドレステーブルを復旧するアドレステーブル復旧手段を含むことを特徴とする請求項1記載の不揮発性半導体メモリドライブ装置。
- 不揮発性半導体メモリと、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラとを有する不揮発性半導体メモリドライブ装置のアドレス管理方法であって、
前記コントローラが、
前記不揮発性半導体メモリへのデータの書き込みおよび前記不揮発性半導体メモリからのデータの読み出し単位であるページ毎に、当該ページに格納される前記不揮発性半導体メモリ上におけるデータの管理単位として定義されるクラスタサイズの各データに割り当てられた、前記不揮発性半導体メモリの論理アドレス空間内における格納位置を示す論理アドレスを、当該ページの冗長領域に格納するステップと、
前記不揮発性半導体メモリ上においてデータの再配置を実行する場合に、前記再配置されるデータを格納するページの冗長領域に格納された当該データに割り当てられた論理アドレスを用いて、前記不揮発性半導体メモリの論理アドレス空間内での位置を示す論理アドレスと物理アドレス空間内での位置を示す物理アドレスとを対応づけるアドレステーブルを更新するステップと、
を具備することを特徴とするアドレス管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008328074A JP2010152517A (ja) | 2008-12-24 | 2008-12-24 | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008328074A JP2010152517A (ja) | 2008-12-24 | 2008-12-24 | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010152517A true JP2010152517A (ja) | 2010-07-08 |
Family
ID=42571561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008328074A Pending JP2010152517A (ja) | 2008-12-24 | 2008-12-24 | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010152517A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11928361B2 (en) | 2020-12-17 | 2024-03-12 | Kioxia Corporation | Memory system and control method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006126445A1 (ja) * | 2005-05-23 | 2006-11-30 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 |
JP2007018499A (ja) * | 2005-06-06 | 2007-01-25 | Sony Corp | 記憶装置 |
JP2008181204A (ja) * | 2007-01-23 | 2008-08-07 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 |
-
2008
- 2008-12-24 JP JP2008328074A patent/JP2010152517A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006126445A1 (ja) * | 2005-05-23 | 2006-11-30 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 |
JP2007018499A (ja) * | 2005-06-06 | 2007-01-25 | Sony Corp | 記憶装置 |
JP2008181204A (ja) * | 2007-01-23 | 2008-08-07 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11928361B2 (en) | 2020-12-17 | 2024-03-12 | Kioxia Corporation | Memory system and control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4439578B1 (ja) | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法 | |
JP4461187B1 (ja) | 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法 | |
JP5317689B2 (ja) | メモリシステム | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
JP5198245B2 (ja) | メモリシステム | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
KR100771519B1 (ko) | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 | |
JP5907739B2 (ja) | 不揮発性記憶装置 | |
CN109408417B (zh) | 存储装置的地址映射方法和操作方法 | |
JP2012008651A (ja) | 半導体記憶装置、その制御方法および情報処理装置 | |
JP2011128998A (ja) | 半導体記憶装置 | |
JP2010049586A (ja) | フラッシュメモリ搭載ストレージ装置 | |
KR20170087043A (ko) | 저속 메모리를 이용하여 페이지 리맵핑 방식으로 바이트 어드레스 지정 능력 및 근-dram 성능을 달성하는 메커니즘 | |
US8112589B2 (en) | System for caching data from a main memory with a plurality of cache states | |
KR101842321B1 (ko) | 세그먼트화된 캐시 | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
CN114442914B (zh) | 存储器系统 | |
JP2011070365A (ja) | メモリシステム | |
KR20130024271A (ko) | 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템 | |
JP2011090460A (ja) | データ記憶装置およびデータ記憶装置における制御方法 | |
US20100082903A1 (en) | Non-volatile semiconductor memory drive, information processing apparatus and data access control method of the non-volatile semiconductor memory drive | |
JP5025670B2 (ja) | 情報処理装置およびデータ記憶装置 | |
JP2012038212A (ja) | ストレージ装置及びその制御方法 | |
JP2010152517A (ja) | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 | |
JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100713 |