説明

情報処理装置及び不揮発性半導体メモリドライブ

不揮発性半導体メモリドライブの制御部は、論理ブロックアドレスそれぞれと不揮発性半導体メモリの物理アドレスそれぞれとの対応関係を示すアドレス管理テーブルを初期化して不揮発性半導体メモリの記憶領域をユーザデータが書き込まれていない状態に設定する第1消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロック以外の各ブロックをイレーズする第2消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロックを含むブロックそれぞれをイレーズする第3消去モードとを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び不揮発性半導体メモリドライブに関する。
【背景技術】
【0002】
近年、ハードディスクのようなデータ記憶装置が広く使用されている。
【0003】
特許文献1には、スクランブル/デスクランブ機能を有するデータ記憶装置が開示されている。このデータ記憶装置は、送受信手段と、スクランブラ手段と、ハードディスクと、デスクランブラ手段と、メモリと、初期値変更手段とを備えている。送受信手段は、外部からの情報を受信すると共に、データ記憶装置内部の情報を外部に送信する。スクランブラ手段は、送受信手段が受信した外部からの情報を乱数化する。スクランブラ手段の出力信号がハードディスクに記録される。デスクランブラ手段はハードディスクから読み出された信号をデスクランブルする。メモリは、スクランブラ手段とデスクランブラ手段とに初期値を出力する。初期値変更手段は、ハードディスクに記録されたデータを消去するときに、初期値を変更する。
【0004】
このデータ記憶装置においては、ハードディスクのデータの消去が送受信手段を介して指示されると、初期値変更手段は、スクランブラ手段及びデスクランブラ手段に対して新たな初期値を生成する。新たに記録されるデータについては、新たな初期値に基づいてスクランブル処理及びデスクランブラ処理される。
【0005】
一方、初期値の変更前に既にハードディスクに記録されていたデータは、変更前の初期値とは異なる初期値に基づいてデスクランブル処理されたのち再生される。そのため、初期値の変更前に既にハードディスクに記録されていたデータは、当該データが記録されたときとは、全く異なる初期値によってデスクランブル処理されるので、異なる値のデータが読出される。
【0006】
よって、初期値の変更以前に記憶したデータは正常に読出しを行うことができなくなるので、初期値の変更は、ハードディスクを仮想的に消去したことになる。そのためデータ記憶装置のハードディスクに消去データを上書き記録することなく、瞬時に仮想的にデータを消去することが可能となる。これにより、ハードディスクの再利用や廃棄にかかる作業時間を大幅に短縮することが可能となる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−196135号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、従来のデータ記憶装置によると、スクランブル処理されたデータの解読は困難であるが、スクランブル処理されたデータの取出しを行うことは簡単にできるため、復号化技術の進歩により解読されてしまう可能性は否定できない。
【0009】
本発明の目的は、書込みが行われた情報の消去を確実に行い、情報の漏洩を確実に防止することができる情報処理装置及び不揮発性半導体メモリドライブを提供することにある。
【課題を解決するための手段】
【0010】
本発明の一態様によれば、情報処理装置本体と、前記情報処理装置本体に収容される不揮発性半導体メモリドライブであって、複数のブロックを含む記憶領域を有する不揮発性半導体メモリと、論理ブロックアドレスそれぞれと前記不揮発性半導体メモリの物理アドレスそれぞれとの対応関係を示すアドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定する第1消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロック以外の各ブロックをイレーズする第2消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロックを含むブロックそれぞれをイレーズする第3消去モードとを有し、前記第1消去モード、前記第2消去モード、および前記第3消去モードを選択的に使用して、前記記憶領域に対する消去動作を実行する制御手段とを具備する情報処理装置が提供される。
【発明の効果】
【0011】
この情報処理装置によれば、書込みが行われた情報の消去を確実に行い、情報の漏洩を確実に防止することができる。
【図面の簡単な説明】
【0012】
【図1】図1は、本発明の一実施形態に係る情報処理装置の外観を示す斜視図である。
【図2】図2は、同実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図3】図3は、同実施形態に係る情報処理装置に設けられるSSDの概略構成を示すブロック図である。
【図4】図4は、図3に示すSSDの記憶容量及び記憶領域を示す概略図である。
【図5】図5は、図3に示すSSDに設けられるNANDメモリの概略構成図である。
【図6】図6は、図3に示すSSDが実行可能な3種類の消去方法を説明するための模式図である。
【図7】図7は、図3に示すSSDによって実行される疑似消去の手順の例を示すフローチャートである。
【図8】図8は、図3に示すSSDによって実行される通常消去の手順の例を示すフローチャートである。
【図9】図9は、図3に示すSSDによって実行される拡張消去の手順の例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の実施形態を説明する。
【0014】
<情報処理装置の構成>
図1は、本発明の一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置1は、図1に示すように、本体2と、本体2に取り付けられた表示ユニット3とから構成されている。
【0015】
本体2は、箱状の筐体4を有し、その筐体4は、上壁4a、周壁4b及び下壁4cを備える。筐体4の上壁4aは、情報処理装置1を操作するユーザに近い側から順にフロント部40、中央部41及びバック部42を有する。下壁4cは、この情報処理装置1が置かれる設置面に対向する。周壁4bは、前壁4ba、後壁4bb及び左右の側壁4bc、4bdを有する。
【0016】
フロント部40は、ポインティングデバイスであるタッチパッド20と、パームレスト21と、情報処理装置1の各部の動作に連動して点灯する発光ダイオード(LED)22とを備える。
【0017】
中央部41は、文字情報等を入力可能なキーボード23aが取り付けられるキーボード載置部23を備える。
【0018】
バック部42は、着脱可能に取り付けられたバッテリパック24を備えている。バッテリパック24の右側には、情報処理装置1の電源を投入するための電源スイッチ25が設けられている。バッテリパック24の左右には、表示ユニット3を回転可能に支持する一対のヒンジ部26a、26bが設けられている。
【0019】
筐体4の左の側壁4bcには、筐体4内から外部に対して風を排出する排出口(図示せず)が設けられている。また、右の側壁4bdには、例えば、DVD等の光記憶媒体にデータを読み書き可能なODD(光ディスクドライブ)27と、各種のカードが出し入れされるカードスロット28とが配置されている。
【0020】
筐体4は、周壁4bの一部及び上壁4aを含む筐体カバーと、周壁4bの一部及び下壁4cを含む筐体ベースとにより形成されている。筐体カバーは、筐体ベースに対して着脱自在に組み合わされ、筐体ベースとの間に収容空間を形成する。この収容空間には、不揮発性半導体メモリドライブとして機能するSSD(ソリッドステートドライブ)10が収容される。なお、SSD10の詳細は後述する。
【0021】
表示ユニット3は、開口部30aを有するディスプレイハウジング30と、表示画面31aに画像を表示可能なLCD等からなる表示装置31とを備える。表示装置31はディスプレイハウジング30に収容され、表示画面31aは開口部30aを通じてディスプレイハウジング30の外部に露出している。
【0022】
筐体4内には、上述のSSD10、バッテリパック24、ODD27及びカードスロット28の他に、図示しないメイン回路基板、拡張モジュール及びファン等が収容されている。
【0023】
図2は、情報処理装置1のシステム構成を概略的に示すブロック図である。
【0024】
この情報処理装置1は、図2に示すように、上述のSSD10、拡張モジュール12、ファン13、タッチパッド20、LED22、キーボード23a、電源スイッチ25、ODD27、カードスロット28及び表示装置31の他に、EC(組み込みコントローラ)111と、BIOS(Basic Input Output System)112aを格納するフラッシュメモリ112と、サウスブリッジ113と、ノースブリッジ114と、CPU(中央処理装置)115と、GPU(Graphic Processing Unit)116と、メインメモリ117とを備えている。
【0025】
EC(組み込みコントローラ)111は各部を制御する組込システムである。ノースブリッジ114は、CPU115、GPU116、メインメモリ117及び各種バスそれぞれとの間の接続を制御するLSIである。CPU115は各種信号を演算処理するプロセッサであり、SSD10からメインメモリ117にロードされるオペレーティングシステムおよび各種アプリケーションプログラムを実行する。GPU116は映像信号を演算処理して表示制御を実行する表示コントローラである。
【0026】
拡張モジュール12は、拡張回路基板と、この拡張回路基板に設けられたカードソケットと、このカードソケットに挿入された拡張モジュール基板とを備える。カードソケットは、例えば、Mini−PCI等の規格に対応している。拡張モジュール基板の例としては、3G(第3世代)モジュール、テレビチューナー、GPSモジュール、及びWimax(登録商標)モジュール等が挙げられる。
【0027】
ファン13は、筐体4内を送風に基づいて冷却する冷却部であり、筐体4内の空気を排出口(図示せず)を介して風として外部に排出する。
【0028】
なお、EC111、フラッシュメモリ112、サウスブリッジ113、ノースブリッジ114、CPU115、GPU116及びメインメモリ117は、メイン回路基板に実装された電子部品である。
【0029】
<SSDの構成>
図3は、本実施形態の情報処理装置に適用されるSSDの概略構成を示すブロック図である。SSD10は、ハードディスクの代わりに本情報処理装置1の外部記憶装置として使用される不揮発性半導体メモリドライブである。このSSD10は、図3に示すように、コネクタ102と、制御部103と、NANDメモリ(NAND型フラッシュEEPROM)104A〜104Hと、DRAM(メモリ)105と、電源回路106と、を備えて概略構成されている。SSD10は、データやプログラムを格納し、且つ電源を供給しなくても記憶内容が消えない外部記憶装置である。SSD10は、ハードディスクドライブとは異なり、磁気ディスクやヘッド等の駆動機構を持たないが、不揮発性半導体メモリであるNANDメモリの記憶領域に、OS(オペレーティングシステム)等のプログラムと、ユーザやソフトウエアに基づいて作成されたデータとを、読み書き可能に長期的に保存でき、情報処理装置1の起動ドライブとして動作することのできるドライブである。
【0030】
制御部103は、コネクタ102、8つのNANDメモリ104A〜104H、DRAM105、及び電源回路106にそれぞれ接続されている。また、制御部103は、コネクタ102を介してホスト装置8に接続され、必要に応じて外部装置9に接続される。
【0031】
電源7は、バッテリパック24又は図示しないACアダプタであり、例えば、DC3.3Vがコネクタ102を介して電源回路106に供給される。また、電源7は、情報処理装置1全体に対して電力を供給する。
【0032】
ホスト装置8は、本実施形態においては、情報処理装置本体2(本体2のメイン回路基板)である。メイン回路基板に実装されたサウスブリッジ113はコネクタ102を介して制御部103に接続される。サウスブリッジ113と制御部103との間は、例えば、シリアルATA等の規格に基づいてデータの送受信が行われる。
【0033】
外部装置9は、情報処理装置1とは異なる他の情報処理装置である。外部装置9は、情報処理装置1から取り外されたSSD10に対して、例えば、RS−232C等の規格に基づいて制御部103に接続され、NANDメモリ104A〜104Hに記憶されたデータを読み出す機能を有する。
【0034】
SSD10が実装される基板は、例えば、1.8インチタイプ又は2.5インチタイプのHDD(ハードディスクドライブ)と同等の外形サイズを有する。なお、本実施の形態では、1.8インチタイプと同等である。
【0035】
制御部103は、NANDメモリ104A〜104Hに対するデータのリードおよびライトを制御する。具体的には、制御部103は、ホスト装置8として機能する情報処理装置本体2からの要求(リードコマンド、ライトコマンド、等)に応じて、NANDメモリ104A〜104Hに対するデータのリードおよびライトの実行を制御する。各NANDメモリは複数のセクタを有している。NANDメモリ104A〜104Hのセクタそれぞれに対するデータのリードおよびライトの実行の制御は、クラスタと称される所定数のセクタ群の単位で実行される。データの転送速度は、例えば、データ読出し時で100MB/Sec、書込み時で40MB/Secである。
【0036】
NANDメモリ104A〜104Hの各々は、例えば記憶容量が16GBの不揮発性半導体メモリである。NANDメモリ104A〜104Hの各々は、例えば、1つのメモリセルに2ビットを記録可能なMLC(マルチレベルセル)−NANDメモリ(多値NANDメモリ)から構成されている。MLC−NANDメモリは、SLC(シングルレベルセル)−NANDメモリに比較して書き換え可能回数は少ないが、SLC(シングルレベルセル)−NANDメモリよりも記憶容量の大容量化は容易であるという特徴を有している。
【0037】
DRAM105は、制御部103の制御によりNANDメモリ104A〜104Hに対するデータの読出し、書込みが行われる際に一時的にデータが格納されるバッファである。このDRAM105は、ホスト装置8として機能する情報処理装置本体2からのライトデータを一時的に格納するライトキャッシュとして機能する。
【0038】
コネクタ102は、シリアルATA等の規格に基づいた形状を有する。なお、制御部103及び電源回路106は、別々のコネクタによりホスト装置8及び電源7にそれぞれ接続されていてもよい。
【0039】
電源回路106は、電源7から供給されたDC3.3Vを、例えば、DC1.8V、1.2V等に変換するとともに、それら3種類の電圧をSSD10の各部の駆動電圧に合わせて各部に供給する。
【0040】
<SSDの記憶容量>
図4は、SSD10の記憶容量及び記憶領域を示す概略図である
。SSD10の制御部103は、図4に示す、7種類の記憶容量104a〜104gを管理する。
【0041】
記憶容量104aは、NAND Capacityであり、すべてのNANDメモリ104A〜104Hの記憶領域を用いた最大の記憶容量である。つまり、記憶容量104aは、NANDメモリ104A〜104Hそれぞれの物理記憶容量の合計値である。例えば、NANDメモリ104A〜104Hの記憶容量がそれぞれ16GBであるとき、記憶容量104aは、128GBである。記憶容量104a、つまりNAND Capacityは、例えば、UART(Universal Asynchronous Receiver Transmitter)の製造情報書込みコマンドのNAND構成情報で与えられる。
【0042】
記憶容量104bは、Max Logical Capacityであり、論理ブロックアドレス(LBA)でアクセスできる最大記憶容量である。
【0043】
記憶容量104cは、S.M.A.R.Tログ領域開始LBAであり、記憶容量104bと以下に説明する記憶容量104dとを分割するために設けられる。S.M.A.R.Tログ領域開始LBAは、ログデータを格納する記憶領域の先頭LBAを示す。
【0044】
記憶容量104dは、Vender Native Capacityであり、ユーザ使用領域として与えられる最大の記憶容量である。記憶容量104dは、例えば、ATA特殊コマンドの初期Identify Deviceデータで与えられる。また、記憶容量104dは、IDEMA(The International Disk Drive Equipment and Materials Association)標準に基づき、製造元(Vender)においてSSD10の設計段階で決定され、以下の式で表される。
【0045】
LBA = 97,696,368 + (1,953,504,× ((Capacity in GB) - 50))
記憶容量104eは、OEM Native Capacityであり、OEM(Original Equipment Manufacturer)の要求により製造時に決定する記憶容量である。記憶容量104eは、例えば、ATA特殊コマンドの固有情報書込みで与えられる。また、記憶容量104eは、Device Configuration Overlay Feature Setがサポートされたとき、Device Configuration Identifyコマンドで返される値である。
【0046】
記憶容量104fは、Native Capacityであり、初期値は記憶容量104eと同値である。Feature setがサポートされたときは、Device Configuration Setコマンドで変更することができる値である。また、記憶容量104fは、Read Native Max Address(EXT)コマンドで返される値である。
【0047】
記憶容量104gは、Current Capacityであり、ユーザの使用中における記憶容量で、初期値は記憶容量104fと同値である。Set Max Addressコマンドで変更することができる。Identify DeviceコマンドのWord61:60、Word103:100で返される値である。
【0048】
また、SSD10の記憶領域は、各記憶容量104a〜104gの間にそれぞれ存在する。
【0049】
記憶容量104aと104bとの間の記憶領域(管理領域)には、SSD10を動作させるための管理データ107aと、アドレス変換テーブル(論理/物理テーブル)108aとが格納される。アドレス変換テーブル(論理/物理テーブル)108aは、論理ブロックアドレスLBAをNANDメモリ104A〜104Hの記憶単位であるセクタに対応する物理アドレスに変換するためのアドレス管理テーブルである。このアドレス変換テーブル(論理/物理テーブル)108aは、論理ブロックアドレスLBAそれぞれとNANDメモリ104A〜104Hの物理アドレスそれぞれとの対応関係を示す。例えば、アドレス変換テーブル(論理/物理テーブル)108aにおいては、クラスタ単位で論理ブロックアドレスLBAとNANDメモリ104A〜104Hの物理アドレスとの対応関係が管理される。各クラスタは、上述したように所定数のセクタ群から構成されている。NANDメモリ104A〜104Hの各々は複数のセクタを有している。
【0050】
管理データ107a、論理/物理テーブル108aの各々は、NANDメモリ104A〜104H内の固定領域に記録されるデータである。管理データ107a、論理/物理テーブル108aの各々には、LBAは割り当てられていない。したがって、管理データ107a、論理/物理テーブル108aの各々を、LBAをキーとしてアクセスすることはできない。制御部103は管理データ107a、論理/物理テーブル108aの各々をアクセスするための固定アクセスパスを有しており、この固定アクセスパスを介して管理データ107aおよび論理/物理テーブル108aの各々に対するアクセスを実行する。
【0051】
記憶容量104bと記憶容量104cとの間の記憶領域には、S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)ログデータ107bが格納される。S.M.A.R.T.ログデータ107bは、例えば、温度情報等の統計情報である。また、S.M.A.R.T.ログデータ107bに割り当てられたLBAは、制御部103内で実行されるファームウエアがS.M.A.R.T.ログデータ107bをアクセスするためにローカルに使用されるものである。制御部103内で実行されるファームウエアはS.M.A.R.T.ログデータ107bをLBAをキーにしてアクセスことができるが、ホスト装置8は通常のRead又はWriteコマンドでS.M.A.R.T.ログデータ107bをアクセスすることはできない。
【0052】
記憶容量104cと104dとの間の記憶領域には、例えば、記憶容量2MBの未使用の記憶領域が設定される。これは、LBAの最小記憶単位が8セクタであり、4KBに相当する記憶単位(大きな記憶単位は1MB)であるのに対して、実際のデータの最小記録単位は当然1セクタであるため、記憶容量104cと104dとの間に1MB以上の記憶容量の空き記憶領域を設けることで、S.M.A.R.T.ログデータ107bと、記憶容量104d以下に記録されるデータとをそれぞれ独立して扱うためである。
【0053】
記憶容量104dと104eとの間の記憶領域は、未使用であり特別な場合を除いて記憶容量104dと104eは同値である。
【0054】
記憶容量104eと104fとの間の記憶領域は、OEMによって使用される記憶領域であり、上述したようにOEMの要求で決定される固有情報107eが書き込まれる。
【0055】
記憶容量104fと104gとの間の記憶領域は、OEM又はユーザによって使用される記憶領域であり、OEM又はユーザの設定によりデータの書込みが行われる。
【0056】
記憶容量104gの記憶領域は、ユーザによって使用される記憶領域であり、ユーザの設定によりデータの書込みが行われる。
【0057】
なお、記憶容量104a〜104gは、以下の式で表される関係を満たす。
【0058】
記憶容量104a>記憶容量104b>記憶容量104c>記憶容量104d≧記憶容量104e≧記憶容量104f≧記憶容量104g
製造元(Vender)からの出荷時、記憶容量104d〜104gは同値となる。
【0059】
<NANDメモリの構成>
図5は、本実施形態で用いられるNANDメモリの概略構成図であり、図6は本実施形態で用いられる3種類の消去方法を説明するための模式図である。NANDメモリ104A〜104Hは、同じ機能及び構成を有しているので以下ではNANDメモリ104Aについて説明する。なお、クラスタ(記憶単位)1041及びセクタ1042の左に付された0〜7の番号は、クラスタ番号及びセクタ番号を示すものとする。また、図6に示すFree1070とは、データの書込みが可能なブロック1040の集まり(第1の記憶領域)を模式的に表しており、Active1071とは、データの書込みが既に行われている書込済ブロック1040aの集まり(第2の記憶領域)を模式的に表しており、Bad Block1072とは、後述する誤り訂正ができなかった不良ブロック1043の集まり(第3の記憶領域)を模式的に表しており、Free1070、Active1071及びBad Block1072は、各ブロック1040の状態を示すパラメータとして管理データ107aに記憶されている。また、図6における斜線は、データが記憶されていることを示している。
【0060】
NANDメモリ104Aは、複数のブロック1040から構成されている。また、各ブロック1040は、1024個のクラスタ1041から構成されており、各クラスタ1041は、8のセクタ1042から構成されている。
【0061】
1つのクラスタ1041のデータサイズに満たないライトデータの書込みを行うとき、制御部103は、管理データ107aに基づいて、クラスタ1041を構成する所定数(例えば8つ)のセクタ1042の読出しを行ってそれらセクタのデータを一時的にDRAM105に格納する。そして、制御部103は、DRAM105上において、読出しを行ったクラスタにライトデータの書込みを行い、ライトデータが書き込まれたクラスタをDRAM105から該当するNANDメモリのクラスタ1041に書込む。
【0062】
図5において、斜線で示す不良ブロック1043とは、データの書き込みまたはデータの読み出し時にエラーが発生するブロックである。一例としては、例えば、SSD10の消去又はエラーが発生したブロック1040のことを示している。
【0063】
<動作>
以下に、本実施形態における情報処理装置1の動作を、各図を参照しつつ、3種類の消去方法に着目して説明する。
【0064】
まず、3種類の消去方法の概要について説明する。
【0065】
制御部103は、論理/物理テーブル108aを用いて、NANDメモリ104A〜104Hの記憶領域(NAND記憶領域)に対するデータの書き込みおよび読み出しを制御する。制御部103は、NAND記憶領域に格納された全てのユーザデータを消去するためのセキュリティーイレーズ機能を有している。
【0066】
制御部103は、NAND記憶領域に格納された全てのユーザデータを消去するための消去動作のモードとして、疑似消去モード、通常消去モード、拡張消去モードを有している。制御部103は、これら疑似消去モード、通常消去モード、拡張消去モードを選択的に使用して、NAND記憶領域に対する消去動作を実行する。
【0067】
疑似消去モードは、論理/物理テーブル108aを初期化して、複数のブロック1040を含むNAND記憶領域をユーザデータが書き込まれていない状態に設定する第1消去モードである。論理/物理テーブル108aを初期化する処理は、論理/物理テーブル108aを、各論理ブロックアドレスLBAに対応する物理アドレスが論理/物理テーブル108aに書き込まれていない状態に設定する処理である。論理/物理テーブル108aを初期化する処理では、制御部103は、例えば、各LBAに対応する物理アドレスを論理/物理テーブル108aから削除する処理、または論理/物理テーブル108aに格納された各LBAに対して、当該LBAに対応する記憶領域が未書き込み状態であること示すフラグをセットする処理を実行する。このように、論理/物理テーブル108aを初期化することにより、ユーザデータが書き込まれている各ブロックは、結果的にユーザデータが未書き込みの状態、つまり未使用のフリーブロックとなる。このように、疑似消去モードにおいては、各ブロックを実際にイレーズする処理または各ブロックにゼロデータを書き込む処理は実行されず、その代わりに、論理/物理テーブル108aが初期化される。これにより、すべてのブロックにゼロデータを書き込む処理等を行う場合に比し、高速にユーザデータを消去することが出来る。
【0068】
ホスト装置8から疑似消去モードを指定するコマンド(特殊コマンド)を受信した時、制御部103は、論理/物理テーブル108aを初期化して、各ブロックをユーザデータが未書き込みの状態に設定する。但し、S.M.A.R.T.ログデータに対応する物理アドレスは論理/物理テーブル108aから削除されない。
【0069】
ホスト装置8からのリードコマンドを受信した時、制御部103は、論理/物理テーブル108aを参照して、リードコマンドに含まれるLBAによって指定される記憶領域が未書き込み状態であるか否かを判別する。LBAによって指定される記憶領域が未書き込み状態であるならば、制御部103は、LBAによって指定される記憶領域が消去されていることを示す所定値(例えばゼロデータ)をホスト装置8に送出する。
【0070】
通常消去モードは、論理/物理テーブル108aを初期化して、複数のブロック1040を含むNAND記憶領域をユーザデータが書き込まれていない状態に設定し、且つNAND記憶領内に含まれる、不良ブロック以外の各ブロックをイレーズする第2消去モードである。すなわち、通常消去モードでは、論理/物理テーブル108aを初期化することによって、ユーザデータが書き込まれている各ブロックをフリーブロックにする処理に加え、各フリーブロックをイレーズする処理(ブロックイレーズ処理)が実行される。通常消去モードでは、不良ブロックはイレーズ処理対象から除外される。不良ブロックはデータの書き込みまたはデータの読み出し時にエラーが発生するブロックである。
【0071】
ホスト装置8から通常消去モードを指定するコマンドを受信した時、制御部103は、論理/物理テーブル108aを初期化して、管理データ(S.M.A.R.T.ログデータも含む)以外のデータ(ユーザデータ)を格納している各ブロックをユーザデータが未書き込みの状態(フリーブロック)に設定する。そして、制御部103は、全てのフリーブロックに対してブロックイレーズ処理を実行する。
【0072】
拡張消去モードは、通常消去モードの消去動作に加え、各不良ブロックの消去を行う消去モードである。換言すれば、拡張消去モードは、論理/物理テーブル108aを初期化してNAND記憶領域をユーザデータが書き込まれていない状態に設定し、且つNAND記憶領域内に含まれる、不良ブロックを含むブロックそれぞれをイレーズする第3消去モードである。
【0073】
ホスト装置8から拡張消去モードを指定するコマンドを受信した時、制御部103は、論理/物理テーブル108aを初期化して、管理データ(S.M.A.R.T.ログデータも含む)以外のデータ(ユーザデータ)を格納している各ブロックをユーザデータが未書き込みの状態(フリーブロック)に設定する。そして、制御部103は、全てのフリーブロックと、各不良ブロックに対してブロックイレーズ処理を実行する。
【0074】
以下、情報処理装置1の動作の一例について説明する。
【0075】
ユーザが電源スイッチ25を押下すると、その電源スイッチ25の押下を検出したEC111は、電源7から情報処理装置1の各部に電力の供給を開始する。そして、EC111は、BIOS112aに基づいて情報処理装置1の起動を行う。
【0076】
情報処理装置1の起動が完了すると、ユーザは表示装置31の表示画面31aを視認しながら、タッチパッド20及びキーボード23aを用いて情報処理装置1に対する操作を行う。
【0077】
情報処理装置1は、ユーザによる操作を受け付けると、その操作に応じて所定の動作を行う。例えば、情報処理装置1のCPU15が、SSD10に記憶されたデータを表示装置31に表示する操作を受け付けた場合には、CPU115は、データの読出しを命令するリードコマンドをSSD10に送る。次に、SSD10の制御部103は、NANDメモリ104A〜104Hからデータの読出しを行い、そのデータをサウスブリッジ113及びノースブリッジ114を介して、GPU116に送る。そして、GPU116は、そのデータを表示装置31に画像として表示する。
【0078】
<疑似消去>
図7は、本実施形態で用いられる第1消去モードとしての疑似消去モードの例を示すフローチャートである。まず、疑似消去10Aの方法の例について図7のフローチャートに従って説明する。
【0079】
ユーザは、例えばアプリケーションの操作によって表示装置31の表示画面31aに表示
された画像に対してタッチパッド20及びキーボード23aを介して操作を行い、SSD10に保存された例えば書類の消去をタッチパッド20及びキーボード23aを用いて指示し(ステップS1)、CPU115は、SSD10に対して消去指示された書類のデータ(所定の情報)の消去を命令する。
【0080】
SSD10の制御部103は、CPU115からの命令をコネクタ102を介して受信すると、各NANDメモリ104A〜104Hの管理データ107aを参照し、書類のデータが記憶されているNANDメモリを検索する。制御部103は、管理データ107aに基づいて、例えば、消去対象となる書類のデータが、図6に示す、状態がActive1071であるブロック1044に含まれるセクタ(例えば、図5に示すブロック1040に含まれるセクタ1042a)に記憶されているか否かを判定する。消去対象となる書類のデータが、状態がActive1071であるブロック1044に含まれるセクタに記憶されているならば、制御部103は、このブロック1044に対応する管理データ107aの状態をActive1071からFree1070へと更新する(ステップS2)。なお、ブロック1044は、消去対象となる書類のデータのみを記憶するものとする。
【0081】
上記した消去の方法を疑似消去10Aと呼び、消去対象であった書類のデータの管理データ107aの状態の更新を行うだけであり、書類のデータそのものを消去しないので、高速に行うことができる。この消去方法では、例えば、機密性の高いデータが記憶されているSSD10を廃棄する場合、データそのものはSSD10に残っているため、データを読み出される可能性がある。
【0082】
なお、ここでは、疑似消去10Aを特定の一つのブロックに対する消去に適用した場合を説明したが、疑似消去10Aは、管理データ以外のデータ(ユーザデータ)が書き込まれている全てのブロックに対して適用し得る。すなわち、CPU115から疑似消去モードを指定するコマンド(特殊コマンド)を受信した時、制御部103は、論理/物理テーブル108aを初期化して、ユーザデータが書き込まれている各ブロック(アクティブ状態の各ブロック)をユーザデータが未書き込みの状態(フリーブロック)に設定する。これにより、S.M.A.R.T.ログデータを格納しているブロック等以外の他のほとんど全てのブロックはフリーブロックとなる。
【0083】
<通常消去>
図8は、本実施形態に係る第2の消去としての通常消去についてのフローチャートである。続いて、通常消去10Bの方法について図8のフローチャートに従って説明する。なお、以下における説明において、疑似消去10Aと共通の動作は省略するものとする。
【0084】
上記した疑似消去10Aと同様に、ユーザによって書類の消去が指示されたとき(ステップS3)、制御部103は、管理データ107aに基づいて、例えば、消去対象となる書類のデータが、図6に示す、状態がActive1071であるブロック1045のセクタ(書込済セクタ)1042aに記憶されているとき、ブロック1045をブロック消去することによってブロック1045に記憶されたデータを消去し、ブロック1045に対応する管理データ107aの状態をActive1071からFree1070へと更新する(ステップS4)。なお、ブロック1045は、消去対象となる書類のデータのみを記憶するのもとする。
【0085】
上記した消去の方法を通常消去10Bと呼び、消去対象であった書類のデータの消去を行い、管理データ107aを更新する。この通常消去10Bは、例えば、機密性の高いデータが記憶されているSSD10を廃棄する場合、疑似消去10Aに比べて確実な消去が行える。しかし、このBad Block1072の状態にある不良ブロック1043に記憶されたデータの消去を行わないため、機密性の高いデータの読み出しを不可能にする完全消去が行われたとはいえない。
【0086】
なお、ここでは、通常消去10Bを特定の一つのブロックに対する消去に適用した場合を説明したが、通常消去10Bは、管理データ以外のデータ(ユーザデータ)が書き込まれている全てのブロックに対して適用し得る。すなわち、CPU115から通常消去モードを指定するコマンドを受信した時、制御部103は、まず、論理/物理テーブル108aを初期化して、ユーザデータが書き込まれている各ブロック(アクティブ状態の各ブロック)をユーザデータが未書き込みの状態(フリーブロック)に設定する。この後、制御部103は、NAND記憶領内に含まれる、不良ブロック以外の各ブロック、つまり全てのフリーブロックの各々をブロック消去によってイレーズする。
【0087】
次に、機密性の高いデータの読み出しを不可能にする完全消去の方法である拡張消去10Cについて説明する。
【0088】
<拡張消去>
図9は、第3の消去としての拡張消去についてのフローチャートである。
【0089】
拡張消去10Cは、SSD10の全てのデータ(ユーザデータ)の削除を行う。一例として、情報処理装置1の起動に必要なオペレーティングシステムが記憶された光ディスクをODD27に挿入し、この光ディスクから情報処理装置1を起動し、SSD10の拡張消去10Cが実行可能なアプリケーションを起動する場合を想定する。
【0090】
ユーザは、一例として、表示画面31aに表示された消去項目を見ながらタッチパッド20及びキーボード23aを用いて拡張消去10Cを指示し(ステップS5)、CPU115は、SSD10に対して拡張消去10Cを命令する。
【0091】
ユーザによってSSD10の拡張消去10Cが指示されたとき、制御部103は、Free1070、Active1071及びBad Block1072に記憶されたすべてのデータの消去、及び管理データ107aの更新を行う(ステップS6)。管理データ107aの更新とは、Active1071及びBad Block1072の状態にあるブロック1043及びブロック1040をFree1070の状態へと更新することである。
【0092】
上記した消去方法を拡張消去10Cと呼び、Bad Block1072を含めた消去であるから、他の消去方法に比べてデータを確実に消去できる。この拡張消去10Cは、例えば、機密性の高いデータが記憶されているSSD10を廃棄する場合に適している。
【0093】
なお、拡張消去10Cの実行については上記した光ディスクに格納されたアプリケーションの起動によるものでなく、コマンド操作等によって行うものであっても良い。
【0094】
ステップS6においては、例えば、以下の処理が実行される。すなわち、ホスト装置8から拡張消去モードを指定するコマンドを受信した時、制御部103は、論理/物理テーブル108aを初期化して、管理データ(S.M.A.R.T.ログデータも含む)以外のデータ(ユーザデータ)を格納している各ブロックをユーザデータが未書き込みの状態(フリーブロック)に設定する。そして、制御部103は、全てのフリーブロックと、各不良ブロックに対してブロックイレーズ処理を実行する。
【0095】
上記した実施の形態によれば、疑似消去10Aは各ブロックを高速にデータ未書き込み状態に設定することが出来る。通常消去10Bは、各ブロック内のデータも実際に消去するので、疑似消去10Aに比べて、データ消去の確実性に優れる。また、拡張消去10Cは、通常消去10Bにおいて消去されなかったBad Block1072をも消去されるので、例えば、機密性の高いデータが記憶された情報処理装置1又はSSD10からの情報の漏洩を防止し、情報処理装置1又はSSD10を安全に廃棄することができる。
【0096】
したがって、本実施形態では、これら疑似消去モード、通常消去モード、拡張消去モードを用途に応じて選択的に使用することが出来る。
【0097】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。

【特許請求の範囲】
【請求項1】
情報処理装置本体と、
前記情報処理装置本体に収容される不揮発性半導体メモリドライブであって、複数のブロックを含む記憶領域を有する不揮発性半導体メモリと、論理ブロックアドレスそれぞれと前記不揮発性半導体メモリの物理アドレスそれぞれとの対応関係を示すアドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定する第1消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロック以外の各ブロックをイレーズする第2消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロックを含むブロックそれぞれをイレーズする第3消去モードとを有し、前記第1消去モード、前記第2消去モード、および前記第3消去モードを選択的に使用して、前記記憶領域に対する消去動作を実行する制御手段とを含む不揮発性半導体メモリドライブとを具備する情報処理装置。
【請求項2】
前記制御手段は、前記情報処理装置本体からのコマンドに応じて、前記第1消去モード、前記第2消去モード、および前記第3消去モードの一つを選択する請求項1記載の情報処理装置。
【請求項3】
前記不良ブロックは、データの書き込みまたはデータの読み出し時にエラーが発生するブロックである請求項1記載の情報処理装置。
【請求項4】
前記アドレス管理テーブルを初期化する処理は、前記アドレス管理テーブルを、前記各論理ブロックアドレスに対応する物理アドレスが前記アドレス管理テーブルに書き込まれていない状態に設定する処理を含む請求項1記載の情報処理装置。
【請求項5】
情報処理装置の外部記憶装置として使用される不揮発性半導体メモリドライブであって、
複数のブロックを含む記憶領域を有する不揮発性半導体メモリと、
論理ブロックアドレスそれぞれと前記不揮発性半導体メモリの物理アドレスそれぞれとの対応関係を示すアドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定する第1消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロック以外の各ブロックをイレーズする第2消去モードと、前記アドレス管理テーブルを初期化して前記記憶領域をユーザデータが書き込まれていない状態に設定し、且つ前記記憶領内に含まれる、不良ブロックを含むブロックそれぞれをイレーズする第3消去モードとを有し、前記第1消去モード、前記第2消去モード、および前記第3消去モードを選択的に使用して、前記記憶領域に対する消去動作を実行する制御手段とを具備する不揮発性半導体メモリドライブ。
【請求項6】
前記制御手段は、前記情報処理装置からのコマンドに応じて、前記第1消去モード、前記第2消去モード、および前記第3消去モードの一つを選択する請求項5記載の不揮発性半導体メモリドライブ。
【請求項7】
前記不良ブロックは、データの書き込みまたはデータの読み出し時にエラーが発生するブロックである請求項5記載の不揮発性半導体メモリドライブ。
【請求項8】
前記アドレス管理テーブルを初期化する処理は、前記アドレス管理テーブルを、前記各論理ブロックアドレスに対応する物理アドレスが前記アドレス管理テーブルに書き込まれていない状態に設定する処理を含む請求項5記載の不揮発性半導体メモリドライブ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2010−512560(P2010−512560A)
【公表日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2009−503773(P2009−503773)
【出願日】平成20年11月7日(2008.11.7)
【国際出願番号】PCT/JP2008/070717
【国際公開番号】WO2009/107283
【国際公開日】平成21年9月3日(2009.9.3)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】