[go: up one dir, main page]

JP5959958B2 - 記憶装置及び記憶装置におけるデータ消去方法 - Google Patents

記憶装置及び記憶装置におけるデータ消去方法 Download PDF

Info

Publication number
JP5959958B2
JP5959958B2 JP2012144642A JP2012144642A JP5959958B2 JP 5959958 B2 JP5959958 B2 JP 5959958B2 JP 2012144642 A JP2012144642 A JP 2012144642A JP 2012144642 A JP2012144642 A JP 2012144642A JP 5959958 B2 JP5959958 B2 JP 5959958B2
Authority
JP
Japan
Prior art keywords
data
host device
flash memory
erase
specific area
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.)
Active
Application number
JP2012144642A
Other languages
English (en)
Other versions
JP2014010498A (ja
JP2014010498A5 (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.)
Buffalo Memory Co Ltd
Original Assignee
Buffalo Memory 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 Buffalo Memory Co Ltd filed Critical Buffalo Memory Co Ltd
Priority to JP2012144642A priority Critical patent/JP5959958B2/ja
Priority to US13/927,881 priority patent/US9223695B2/en
Priority to CN201310260163.9A priority patent/CN103513936B/zh
Publication of JP2014010498A publication Critical patent/JP2014010498A/ja
Publication of JP2014010498A5 publication Critical patent/JP2014010498A5/ja
Application granted granted Critical
Publication of JP5959958B2 publication Critical patent/JP5959958B2/ja
Active 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)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本発明は、NAND型フラッシュメモリを備え、SSD(Solid State Drive)として用いて好適な記憶装置及び記憶装置におけるデータ消去方法に関する。
近年、SSDは、HDD(Hard Disc Drive)と比較してアクセス速度が高速である、低消費電力であるとの利点があるため、PC(Personal Computer)における内部記憶装置としてHDDを置換する用途で採用されている。また、HDDはPCに限らず、組み込み型の機器の記憶装置としても用いられており、この組み込み型機器においてもSSDが採用される例が増えている。
このような組み込み型機器の一例として、マルチファンクションプリンタ(以下、適宜「MFP」と称することがある)が知られている。このマルチファンクションプリンタは、プリンタ、ファクシミリ、スキャナ、複写機等の機能を1台の装置にまとめたものである。MFPにおいては、ユーザが複写等を希望する原稿が原稿台に置かれ、この原稿台にある原稿がスキャナによりスキャンされ、スキャンされたデータは、その後の処理・加工のためにHDD等の記憶装置内に一時的に格納され、さらに、スキャンされたデータに基づいて印刷、ファクシミリ送信等のジョブが実行される。
このようなMFPでは、印刷等のジョブが終了して使用済みになったスキャンデータは、セキュリティ確保のためにHDDから消去する必要がある。HDDを記憶装置として用いた従来のMFPにおいては、このスキャンデータは、例えば全て「0」のデータ、全て「1」のデータ、あるいは乱数を含む所定パターンを有するデータなどの上書き用データが上書きされることにより消去される。
MFPに搭載されたHDDをSSDに換装した場合、MFP本体側は、上述のようにスキャンデータに対して上書き用データを上書き指示することでスキャンデータの消去指示を行う。しかしながら、SSDはその記憶媒体としてNAND型フラッシュメモリが用いられることが多く、このNAND型フラッシュメモリは、直接的な上書き動作が行えないために、スキャンデータが格納されたブロックに対して消去動作を行った後、このブロックに対して上書き用データを書き込む、という手間のかかる動作が必要になる。しかも、NAND型フラッシュメモリは、書き換え回数に一定の制限があるため、上述した動作を繰り返し行うことでNAND型フラッシュメモリの寿命を短縮してしまう可能性もあった。
かかる課題に鑑みて、MFP本体側からSSDに対して消去コマンドを発行し、この消去コマンドに基づいてスキャンデータが格納されたブロックに対して消去動作を行うMFPが提案されている(特許文献1参照)。
特許第4340327号公報
しかしながら、上述した従来のMFPにおいては、MFP本体がSSDの特定ブロックに対する独自の消去コマンドを用意し、SSDはこの消去コマンドがMFP本体から送出されたことを受けて、対応するブロックの消去動作を行っていた。一般的に、HDDにおいては特定領域を一括して消去する動作はできないので、データ消去のためには、上述した上書き用データを特定領域に上書きすることでデータ消去動作を行っている。従って、HDDとMFP本体等のホスト機器とを接続する汎用性のあるインタフェース、例えばATA(AT Attachment)やSCSI(Small Computer System Interface)においては、消去コマンドは用意されておらず、通常のデータ書き込みコマンドを用いて上書き消去することになる。このため、上述した従来のMFPにおいては、SSD消去動作のためにMFP特有の(ベンダー依存の)消去コマンドを用意する必要があり、従って、MFP本体に特別の仕様変更が必要となる。
本発明は、上述した課題に鑑みてなされたもので、ホスト機器に特別な仕様変更を施すことなく、汎用HDDを換装することの可能な記憶装置及び記憶装置におけるデータ消去方法を提供することにある。
本発明は、NAND型フラッシュメモリと、このNAND型フラッシュメモリに対するデータの書き込み/読み出しを制御する制御部とを備え、ホスト機器にインタフェースを介して接続された記憶装置に適用される。そして、本発明は、制御部に、ホスト機器から、インタフェースを介してホスト機器に接続されるインタフェース部と、NAND型フラッシュメモリ内の特定領域に対して上書き用データを上書きすることにより、この特定領域内に記憶された既存データの消去が、インタフェースが定める上書き命令によりホスト機器から指示されたか否かを判断する判断部と、判断部が、特定領域内に記憶されていた既存データの消去指示がされたと判断したら、この特定領域を含む物理ブロックに対してブロック消去を指示し、特定領域を含む物理ブロックのNAND型フラッシュメモリの電荷を除去することで既存データを消去する消去部とを設けることにより、上述の目的を達成している。
ホスト機器から上書き用データとともに上書き命令により特定領域内の既存データの消去指示がされると、判断部はかかる上書き命令を既存データ消去指示であると判断し、この判断部の判断に基づき、消去部は特定領域を含む物理ブロックのNAND型フラッシュメモリの電荷を除去することで既存データを消去する。消去部による消去動作のみでNAND型フラッシュメモリ内の特定領域に記憶されていた既存データは消去される。
ここで、NAND型フラッシュメモリは複数のパーティションに分割され、各々のパーティションは物理ブロックの先頭から開始されることが好ましい。
また、記憶装置は記憶媒体を備えることが好ましく、さらに、この記憶媒体には、好ましくは、特定領域内に記憶されていた既存データの消去指示がされる際にホスト機器から送信される上書き用データが保持される。そして、制御部は、ホスト機器から特定領域内のデータ読み出しが指示されたら、記憶媒体内の上書き用データをインタフェース部を介してホスト機器に転送する転送部を備えることが好ましい。
また、本発明は、NAND型フラッシュメモリと、このNAND型フラッシュメモリに対するデータの書き込み/読み出しを制御する制御部とを備え、ホスト機器にインタフェースを介して接続された記憶装置におけるデータ消去方法に適用される。そして、NAND型フラッシュメモリ内の特定領域に対して上書き用データを上書きすることにより、この特定領域内に記憶されていた既存データの消去が、インタフェースが定める上書き命令によりホスト機器から指示されたか否かを判断し、特定領域内に記憶された既存データへの消去指示がされたと判断したら、この特定領域を含む物理ブロックに対してブロック消去を指示し、特定領域を含む物理ブロックのNAND型フラッシュメモリの電荷を除去することで既存データを消去することにより、上述の目的を達成している。
本発明の記憶装置は、NAND型フラッシュメモリ内の特定領域に対して上書き用データを上書きすることにより、この特定領域内に記憶されていた既存データの消去が、インタフェースが定める上書き命令によりホスト機器から指示されたか否かを判断する判断部と、判断部が、特定領域内に記憶されていた既存データの消去指示がされたと判断したら、この特定領域を含む物理ブロックに対してブロック消去を指示し、特定領域を含む物理ブロックのNAND型フラッシュメモリの電荷を除去することで既存データを消去する消去部とを備えたので、この消去部による消去動作のみでNAND型フラッシュメモリ内の特定領域に記憶されていた既存データは消去される。従って、本発明によれば、インタフェースが定める上書き命令により既存データを確実に消去することができるので、ホスト機器に特別な仕様変更を施すことなく、汎用HDDを換装することの可能な記憶装置及び記憶装置におけるデータ消去方法を提供することが可能になる。
本発明の第1の実施形態であるSSD装置の概略構成を示すブロック図である。 第1の実施形態のSSD装置の機能を示す機能ブロック図である。 第1の実施形態のSSD装置の論理領域、論理アドレス及び物理ブロックの関係を示す図である。 第1の実施形態のSSD装置の動作を説明するための図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPの初期動作の一例を説明するためのシーケンス図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPのデータ書き込み動作の一例を説明するためのシーケンス図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPのデータ消去動作の一例を説明するためのシーケンス図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPのデータ書き込み動作の他の例を説明するためのシーケンス図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPのデータ読み出し動作の一例を説明するためのシーケンス図である。 第1の実施形態におけるパターン判定の動作の詳細を説明するためのフローチャートである。 第1の実施形態におけるパーティション領域確保の概要を説明するための図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPのパーティション更新動作の一例を説明するためのシーケンス図である。 第1の実施形態のSSD装置及びこのSSD装置が搭載されたMFPのデータ書き込み動作のまた他の例を説明するためのシーケンス図である。 本発明の第2の実施形態であるSSD装置におけるパターン判定の動作の詳細を説明するためのフローチャートである。 本発明の第3の実施形態であるSSD装置におけるパターン判定の動作の詳細を説明するためのフローチャートである。 本発明の第4の実施形態であるSSD装置におけるパターン判定の動作の詳細を説明するためのフローチャートである。 本発明の第5の実施形態であるSSD装置におけるパターン判定の動作の詳細を説明するためのフローチャートである。
(第1の実施形態)
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本発明の記憶装置をSSD装置に適用した第1の実施形態の概略構成を示すブロック図、図2は、第1の実施形態のSSD装置の機能を示す機能ブロック図である。
(SSD装置の概略構成)
これら図において、10は第1の実施形態であるSSD装置であり、このSSD装置10は、コントローラ11、RAM(Random Access Memory)12、ROM(Read Only Memory)13及びフラッシュメモリ14を備えている。本実施形態のSSD装置10は、例えば本実施形態ではMFPであるホスト機器20に接続され、ホスト機器20からの書き込み指令に応じて所定のデータを格納し、また、読み出し指令に応じて格納された所定のデータを送出するものである。
コントローラ11はSSD装置10全体の制御を行うもので、CPU(Central Processing Unit)15、ホストインタフェース(I/F)16、フラッシュインタフェース(I/F)17、RAMインタフェース(I/F)18及びROMインタフェース(I/F)19を備える。
CPU15は、ROM13内に格納されているファームウェアが電源投入時にRAM12に展開され、このファームウェアが実行されることでコントローラ11、ひいてはSSD装置10の制御を行うとともに、図2に示す各機能部に示す機能を備える。図2に示す各機能部については後述する。ホストI/F16は、所定の外部インタフェースを介してホスト機器20に接続され、CPU15の制御下において、このホスト機器20との間で、外部インタフェースが定めるプロトコル、コマンドに準拠してデータの送受信を行う。本実施形態では、ホストI/F16とホスト機器20とは、HDDなどで多用される汎用性を有するインタフェース、例えばATA、SCSIにより接続されている。フラッシュI/F17はフラッシュメモリ14に接続され、CPU15の制御下において、このフラッシュメモリ14に対してデータの書き込み/読み出し動作を行う。RAM I/F18はRAM12に接続され、CPU15の制御下において、このRAM12に対してデータの書き込み/読み出し動作を行う。ROM I/F19はROM13に接続され、CPU15の制御下において、このROM13に対してデータの読み出し動作を行う。
RAM12はコントローラ11のワークメモリとして用いられ、各種データが一時的に格納される。また、このRAM12には、ホスト機器20から送出される、フラッシュメモリ14の特定領域にあるスキャンデータ消去のための上書き用データ12aが格納されているとともに、フラッシュメモリ14の論理アドレスと物理ブロックとの対応関係が記述された論理アドレス−物理ブロック変換テーブル12bが格納されている。ホスト機器20がどのような上書き用データを用いて上書き消去を指令するかはホスト機器20により一意に定まるので、SSD装置10の立ち上げ時において、ホスト機器20から送出される上書き用データと同一パターンの上書き用データ12aがCPU15により生成され、RAM12内に格納される。また、変換テーブル12bの詳細については後述する。ROM13には、上述のようにSSD装置10の制御を行うファームウェアが格納されている。
(フラッシュメモリの論理領域等)
フラッシュメモリ14は、本実施例ではNAND型フラッシュメモリである。このフラッシュメモリ14は、図3に示すような論理領域、論理アドレス及び物理ブロックを有する。以下、図3を参照して、フラッシュメモリ14の論理領域、論理アドレス及び物理ブロックについて説明する。
図3に示すように、本実施形態のフラッシュメモリ14の論理領域は、MBR(マスターブートレコード:Master Boot Record)30及びパーティションA31〜C33に分割されている。本実施形態では、パーティションA31にはホスト機器20全体の制御を行うオペレーティングシステム(OS)310が、パーティションB32にはホスト機器20の各種動作を実行するためのアプリケーションプログラム320が、パーティションCには、ホスト機器20の各種動作時に一時的に使用されるデータが格納される。パーティションCに格納されるデータには、ホスト機器20によりスキャンされたスキャンデータ(既存データ)330が含まれる。また、本実施形態では、MBR30及びパーティションA31、B32は、ホスト機器20から消去指令があっても消去動作が拒否される非Erase領域とされ、パーティションC33は、ホスト機器からの消去指令により消去可能なErase領域とされている。なお、本明細書において、「パーティション」とは、ホスト機器20のOS310が管理してMBR30に記載する論理アドレスの区切りだけでなく、OS310が管理しない、ホスト機器20のアプリケーションプログラム320が書き込み先論理アドレスをデータの種類によって区別する、書き込みエリアの区切りをも含む。
MBR30には、パーティションテーブル30a及びブートローダ30bが格納されている。パーティションテーブル30aには、フラッシュメモリ14のパーティションに関する情報が格納されており、具体的には、パーティションの位置情報(開始セクタアドレス、終了セクタアドレス)、種類、サイズがパーティション毎に格納されている。
ブートローダ30bは、SSD装置10起動時に最初に読み込まれるコードである。具体的には、ホスト機器20に電源が投入されると、ホスト機器20に備えられる不図示のブートストラップが起動され、このブートストラップがフラッシュメモリ14内のMBR(パーティションテーブル30a及びブートローダ30b)をホスト機器20側に読み出す。そして、ブートローダ30bは、パーティションテーブル30aに記載された情報に基づき、パーティションA31に格納されたオペレーティングシステム310を読み出し、ホスト機器20に送出する。ホスト機器20は、不図示のメモリ内にこのオペレーティングシステム310を展開し、以降、このオペレーティングシステム310によりホスト機器20全体の制御が行われる。ここに、パーティションとは、フラッシュメモリ14が有する論理アドレスを複数の領域に分割した際の一つの領域であり、ホスト機器20からは各パーティションが1つの論理ドライブとして認識される。このようなパーティションは、HDDにおけるパーティションと同様の概念である。
また、本実施形態では、フラッシュメモリ14内の空間は論理アドレス(LBA:Logical Block Addressing)及び物理ブロックにより把握され、ホスト機器20はこの論理アドレスを直接指定することで特定領域に対するデータのアクセスを行うことが可能とされている。コントローラ11は、ホスト機器20から論理アドレスが直接指定されると、RAM13内に格納された論理アドレス−物理ブロック変換テーブル12bを参照して、実際にアクセスすべき物理ブロックを特定し、この物理ブロックに対するアクセスを行う。
なお、本実施形態では、MBR30及びパーティションA31、B32については、論理アドレスと物理ブロックとは略同一の領域が確保されている一方、パーティションC33については、論理アドレスの領域よりも物理ブロックの領域が小さくなるように、パーティションA31〜C33が設定されている。
また、図3には図示しないが、本実施形態のフラッシュメモリ14では、1つの物理ブロックは複数のページを有しており、データの書き込み動作はページ単位で、データの消去動作はブロック単位で行われる。また、各ページは複数のセクタからなる。
(SSD装置の機能構成)
次に、図2は、本実施形態のSSD装置10の機能を示すブロック図である。本実施形態のSSD装置10は、制御部40と、フラッシュメモリ14と、記憶媒体41とを備える。
制御部40は、フラッシュメモリ14に対するデータの読み出し/書き込みを制御するものであり、インタフェース部42、判断部43、消去部44及び転送部45を備える。インタフェース部42は、ホスト機器20と汎用性を有するインタフェース、例えばATAやSCSIを介して接続され、ホスト機器20との間で、外部インタフェースが定めるプロトコル、コマンドに準拠してデータの送受信を行う。判断部43は、インタフェース部42が受信したコマンドに応じて、このコマンドが上書き命令であった場合、フラッシュメモリ14内の特定領域内に記憶されていた既存データの消去がホスト機器20から指示されたか否かを判断する。消去部44は、判断部43により、フラッシュメモリ14内の特定領域内に記憶されていた既存データの消去がホスト機器20から指示されたと判断されたときに、この特定領域を含む物理ブロックに対してブロック消去を指示し、特定領域を含む物理ブロックのフラッシュメモリ14の電荷を除去することでデータを消去する。
また、記憶媒体41には、ホスト機器20から送信される上書き用データと同一パターンの上書き用データ12a(図1参照)が保持されている。転送部45は、フラッシュメモリ14の特定領域内のデータ読み出しがホスト機器20から指示されたら、記憶媒体41内の上書き用データ12aをインタフェース部42を介してホスト機器20に転送する。
以上の説明において、制御部40はコントローラ11、特にCPU15の動作により実現され、記憶媒体41はRAM12により実現され、インタフェース部42はホストI/F16及びCPU15により実現され、判断部43はCPU15により実現され、消去部44はフラッシュI/F17及びCPU15により実現され、転送部45はホストI/F16及びCPU15により実現される。
(SSD装置の動作の概要)
次に、図4を参照して、本実施形態のSSD装置10の動作の概要について説明する。本実施形態のSSD装置10では、まず、ホスト機器20から、スキャンデータをフラッシュメモリ14内の特定の論理アドレスで指定される特定領域51に書き込む指示がされる。汎用性のあるインタフェースでは、この書き込み指示は、データ書き込み用に用意されているWriteコマンド(Programコマンド)が発行されることにより行われる。
次に、ホスト機器20においてスキャンデータを利用したジョブが終了したことをトリガとして、このホスト機器20が、フラッシュメモリ14内の特定領域51に存在するスキャンデータを消去する指示がされる。上述のように、汎用性のあるインタフェースにおいては、データを直接消去するコマンドは用意されていないので、ホスト機器20は、この特定領域51に対して、スキャンデータ消去用の上書き用データを上書きする(汎用性のあるインタフェースでは削除(消去)という特別なコマンドがないことが多いので、単純にデータを書き込む)コマンドであるWriteコマンドによりスキャンデータ消去指示を行う。
SSD装置10は、スキャンデータ消去用の上書き用データによる書き込み指示がホスト機器20からされたことを検出すると、かかる書き込み指示はスキャンデータの消去指示であると判断、解釈し、フラッシュメモリ14の特定領域51を含む物理ブロックに対して消去動作を行う。これとともに、SSD装置10は、変換テーブル12bを更新し、消去動作が行われた特定領域51の論理アドレスと物理ブロックとの対応を、論理アドレスとRAM12内の上書き用データ12aが格納されたアドレスとに変更する。ここに、スキャンデータの消去指示であるか否かの判断は、Writeコマンドの到来及び書き込み指示がされたデータが上書き用データ、例えば全て「0」のデータ、全て「1」のデータ、あるいは乱数を含む所定パターンを有するデータであるか否かの判断により行う。かかる判断の詳細については後述する。また、NAND型フラッシュメモリ14における消去動作は、特定の物理ブロックを構成する複数のセルに対して電荷層から電荷を除去することにより行われる。
さらに、ホスト機器20が、上述したスキャンデータ消去指示の後、フラッシュメモリ14の特定領域51に格納されたスキャンデータが確実に消去されたか否かを確認する目的で、この特定領域51にその時点で格納されているデータの読み出し指示をReadコマンドにより行うことがある。SSD装置10は、かかるデータ読み出し指示がホスト機器20からされたことを検出すると、変換テーブル12bを参照して上書き用データ12aをRAM12から読み出し、この上書き用データ12aをホスト機器20に送出する。ホスト機器20は、特定領域51の特定を論理アドレスにより行うので、上述のように消去動作によって変換テーブル12bが更新されていることにより、この論理アドレスに対応するのは上書き用データ12aが格納されているRAM12のアドレスである。従って、SSD装置10は、変換テーブル12bを参照すれば、RAM12の上書き用データ12aにアクセスし、この上書き用データ12aを読み出してホスト機器20に送出することができる。
(SSD装置の動作)
次に、図5〜図9のシーケンス図及び図10のフローチャートを参照して、図4に概要を示した本実施形態のSSD装置10の動作について説明する。なお、図5〜図10の説明において、SSD装置10とホスト機器20とは、汎用性のあるインタフェースのうちATAインタフェースにより相互接続されているものとする。
図5は、SSD装置10を含むホスト機器20立ち上げ時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS1において、ホスト機器20は、ATAデバイスであるSSD装置10のモデル名や対応転送モードといったATAデバイス固有の情報を取得するために、これら情報をSSD装置10に要求するコマンドを送信する(Identify Deviceコマンド)。SSD装置10の制御部40は、ステップS1においてインタフェース部42がIdentify Deviceコマンドを受信すると、ステップS2においてインタフェース部42を介して自身の情報をホスト機器20に返送する。次いで、ホスト機器20は、ステップS3において、上述したMBRの送出をSSD装置10に要求する。SSD装置10の制御部40は、インタフェース部42がかかる要求を受信すると、ステップS4において、フラッシュメモリ14に格納されているMBR30(図3参照)の読み出しをこのフラッシュメモリ14に要求する。ステップS5では、制御部40はフラッシュメモリ14からMBR30のデータを受信する。ステップS6では、制御部40がフラッシュメモリ14から受信したMBR30を解析し、Erase領域(図3に示すように、本実施形態ではパーティションC33)のLBAを取得し、Erase領域の開始論理アドレス及び終了論理アドレスを抽出する。ステップS7では、制御部40がErase領域(パーティションC33)の開始論理アドレス及び終了論理アドレスをRAM12内に書き込む。そして、ステップS8では、制御部40がインタフェース部42を介してステップS5で取得したMBRのデータをホスト機器20に送出する。
次に、図6は、フラッシュメモリ14の非Erase領域へのデータ書き込み時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS10において、ホスト機器20からSSD装置10に対して、データを書き込むべき論理アドレスを指定して書き込み指令がされる。SSD装置10の制御部40は、インタフェース部42がかかる指令を受信すると、ステップS11において、図5のステップS6でRAM12内に書き込んだErase領域の開始論理アドレス等を参照して、データを書き込むべき論理アドレスがErase領域に存在するか否かを判断する。図6に示す例では、データを書き込むべき論理アドレスは非Erase領域(図3に示すように、本実施形態ではパーティションA31、B32のいずれか)にあるので、ステップS11ではErase領域でないとの判断になる。次いで、ステップS12では、制御部40はインタフェース部42を介してホスト機器20に対して書き込み動作の準備が完了した旨の通知をする。ステップS13では、ホスト機器20は、書き込むべきデータをSSD装置10に送出するので、ステップS14では、インタフェース部42がこの書き込むべきデータを受信し、制御部40はホスト機器20から送出されたデータをフラッシュメモリ14に対して書き込む。上述したように、このデータが書き込まれる領域は非Erase領域(パーティションA31、B32のいずれか)である。ステップS15では、フラッシュメモリ14からデータ書き込み完了通知が制御部40にされ、これを受けて、ステップS16では、制御部40がインタフェース部42を介してホスト機器20にデータ書き込み完了通知を送出する。
次に、図7は、フラッシュメモリ14のErase領域の特定領域51に格納されたスキャンデータ330(図3参照)の上書き消去動作時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS20において、ホスト機器20からSSD装置10に対して、データを書き込むべき論理アドレス、この場合はスキャンデータ330が存在する特定領域51のアドレスを指定して上書き指令がされる。SSD装置10の制御部40は、ステップS21において、インタフェース部42がかかる上書き指令を受信し、次いで、制御部40は、図5のステップS6でRAM12内に書き込んだErase領域の開始論理アドレス等を参照して、データを上書きすべき論理アドレスがErase領域に存在するか否かを判断する。図7に示す例では、データを書き込むべき論理アドレスはErase領域(図3に示すように、本実施形態ではパーティションC33)にあるので、ステップS21ではErase領域であるとの判断になる。次いで、ステップS22では、制御部40はインタフェース部42を介してホスト機器20に対して書き込み動作の準備が完了した旨の通知をする。ステップS23では、ホスト機器20は、上書き用データをSSD装置10に送出する。ステップS24では、制御部40の判断部43は、ホスト機器20から送出されてインタフェース部42が受信したデータが上書き用データであるかどうかを判断する。この、上書き用データであるかどうかの判断の詳細なルーチンについては後述する。図7に示す例では、ホスト機器20から送出された書き込み用データはスキャンデータ330消去のための上書き用データであるので、ステップS24では上書き用データであるとの判断になる。次いで、ステップS25では、制御部40の消去部44は特定領域51を含む物理ブロックに対して消去指示し、さらに、ステップS26において、制御部40は、ホスト機器20から送出された上書き用データ12a(図1参照)をRAM12に格納し、ステップS27において、制御部40はRAM12内の変換テーブル12b(図1参照)を更新し、消去指示を行った特定領域51の論理アドレスに対応する宛先を、消去動作を行った物理ブロックから上書き用データ12aが格納されたRAM12のアドレスに変更する。ステップS28では、フラッシュメモリ14から消去動作完了通知が制御部40にされ、これを受けて、ステップS29では、制御部40がインタフェース部42を介してホスト機器20にデータ書き込み完了通知を送出する。
次に、図8は、フラッシュメモリ14のErase領域へのデータ書き込み時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS30において、ホスト機器20からSSD装置10に対して、データを書き込むべき論理アドレス、この場合はスキャンデータ330が存在する特定領域51のアドレスを指定して書き込み指令がされる。SSD装置10の制御部40は、ステップS31において、インタフェース部42がかかる書き込み指令を受信し、次いで、制御部40は、図5のステップS6でRAM12内に書き込んだErase領域の開始論理アドレス等を参照して、データを書き込むべき論理アドレスがErase領域に存在するか否かを判断する。図8に示す例では、データを書き込むべき論理アドレスはErase領域(パーティションC33)にあるので、ステップS31ではErase領域であるとの判断になる。次いで、ステップS32では、制御部40はインタフェース部42を介してホスト機器20に対して書き込み動作の準備が完了した旨の通知をする。ステップS33では、ホスト機器20は、書き込み用データをSSD装置10に送出する。ステップS34では、制御部40の判断部43は、ホスト機器20から送出されてインタフェース部42が受信したデータが上書き用データであるかどうかを判断する。図8に示す例では、ホスト機器20から送出された書き込み用データは書き込み用データであるので、ステップS34では上書き用データでないとの判断になる。ステップS35では、制御部40はホスト機器20から送出されたデータをフラッシュメモリ14のErase領域(パーティションC33)に対して書き込む。ステップS36では、フラッシュメモリ14からデータ書き込み完了通知が制御部40にされ、これを受けて、ステップS37では、制御部40がインタフェース部42を介してホスト機器20にデータ書き込み完了通知を送出する。
次に、図9は、フラッシュメモリ14のErase領域の特定領域51に格納されたスキャンデータ330(図3参照)の上書き消去動作後に、正しくスキャンデータ330が上書き消去されたかどうかの確認のために、ホスト機器20がこの特定領域51に現在格納されているデータを読み出す時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS40において、ホスト機器20からSSD装置10に対して、スキャンデータ330が存在した特定領域51の論理アドレスを指定してデータ読み出し指令がされる。SSD装置10の制御部40は、ステップS41において、インタフェース部42がかかる読み出し指令を受信し、次いで、制御部40は、RAM12内の変換テーブル12bを参照して、ホスト機器20から指定された論理アドレスに対応する、実際に読み出しを行うべき領域を特定する。図9に示す例では、ホスト機器20はスキャンデータ330が存在した特定領域51の論理アドレスを指定しており、この論理アドレスに対応するのは、上述のようにRAM12に格納された上書き用データ12aのアドレスである。従って、ステップS42では、制御部40の転送部45は、図7のステップS26でRAM12内に格納した上書き用データ12aをRAM12から読み出し、ステップS43では、この上書き用データ12aがRAM12から制御部40に送出される。ステップS44では、制御部40はインタフェース部42を介してこの上書き用データ12aをホスト機器20に送出する。
次に、図10は、図7のステップS24等で行われる、判断部43により実施される、上書き用データであるかどうかの判定ルーチンを説明するためのフローチャートである。図10の説明において、ホスト機器20から送出される上書き用データは、全て「0」のデータであるものとする。まず、ステップS100において、ホスト機器20から転送(送出)されてきたデータのバイト数が取得される。次いで、ステップS101において、変数Cが初期化され、その値が0にされる。ステップS102において、この変数Cが転送バイト数より小さいか否かが判断され、変数Cが転送バイト数より小さい(ステップS102においてYES)ときはステップS103に進み、変数Cが転送バイト数以上である(ステップS102においてNO)ときはステップS105に進む。ステップS103では、転送されてきたデータが「0」(図10では16進数表示の「0x00」)であるか否かが判定され、転送されてきたデータが「0」である(ステップS103においてYES)場合はステップS104に進み、転送されてきたデータが「0」でない場合はステップS105に進む。ステップS104では変数Cが1つインクリメントされ、次の転送データが読み込まれる。ステップS105では、変数Cが転送バイト数に等しいか否かが判断され、変数Cが転送バイト数に等しい(ステップS105においてYES)場合はステップS106に進み、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断し、フラッシュメモリ14に対して消去動作が指示される。一方、変数Cが転送バイト数に等しくない(ステップS105においてNO)場合はステップS107に進み、通常のデータ書き込みであると判断し、フラッシュメモリ14に対してデータ書き込みが指示される。このように、図10のルーチンでは、個々のデータについて「0」であるかどうかの判断を行い、全てのデータが「0」であるときに、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断している。
(第1の実施形態の効果)
以上詳細に説明したように、本実施形態のSSD装置10は、フラッシュメモリ14の特定領域51に存在するスキャンデータ330消去のための上書き用データ12aがホスト機器20から送出されてきたことを判断し、この上書き用データ12aの代わりに特定領域51を含む物理ブロック51に対して消去指示を行うことで、このスキャンデータ330を消去している。従って、フラッシュメモリ14が1回の動作を行うだけでスキャンデータ330を確実に消去することができる。
加えて、本実施形態のSSD装置10では、ホスト機器20はATAインタフェース等の汎用性のあるインタフェースに準拠した上書き指示コマンド(Writeコマンド等)及び上書き用データ12aをSSD装置10に送出すれば、SSD装置10が上書き消去指示であるか否かを判断して、上書き消去指示であると判断した場合はフラッシュメモリ14に対して消去動作を指示するので、上述した従来のMFPのようにベンダー準拠の特殊コマンドを用意する必要がない。これにより、ホスト機器20に特別な仕様変更を施すことなく、汎用HDDを換装することの可能なSSD装置10を提供することが可能となる。
さらに、本実施形態のSSD装置10では、ホスト機器20から送出されてきた上書き用データ12aをRAM内に格納し、ホスト機器20からの読み出し指示に応じてこの上書き用データ12aを送出しているので、SSD装置10がフラッシュメモリ14の特定領域51に対して消去動作を行っても、ホスト機器20によるデータ消去確認動作に十分対応することが可能となる。
また、図3に示すように、本実施形態のSSD装置10では、非Erase領域であるパーティションA31、B32については論理アドレスと物理ブロックとで略同一の領域が確保されている一方、Erase領域であるパーティションC33については論理アドレスよりも物理ブロックの領域のほうが小さいように各パーティションA31〜C33が設定されている。従って、ホスト機器20から把握するSSD装置10の容量は確保されている論理アドレスに対応する容量である一方、実際のSSD装置10の容量は、物理ブロックに対応する容量であり、その分、SSD装置10の容量を削減することが可能となる。
そして、このように、論理アドレスに対応する容量よりも実際のSSD装置10の容量が小さくても、上述のように上書き用データ12aをRAM12内に保管してあるので、ホスト機器20からデータ消去確認のためのデータ読み出し指令が来てもこの上書き用データ12aをホスト機器20に送出すれば良く、スキャンデータ330が格納された領域を消去動作直後に解放することができ、新たなスキャンデータ330を直ちに書き込むことができる。このような動作により、Erase領域であるパーティションC33を有効活用することができ、パーティションC33について論理アドレスよりも物理ブロックの領域を小さくしても円滑動作が可能となる。
(第1の実施形態におけるパーティション更新動作の概要)
本実施形態のSSD装置10では、パーティション更新動作にも特徴がある。以下、図11〜図13を参照して本実施形態のSSD装置10におけるパーティション更新動作について説明する。
図11は、本実施形態のSSD装置10におけるパーティション更新動作の概要を説明する図である。通常、パーティション更新動作において、各パーティションは論理アドレスにより確保され、実際のデータ読み込み/書き出し動作は、上述した変換テーブル12bにより特定される物理ブロックに対して行われる。ここで、各パーティションの領域は、例えばセクタ単位で設定することが可能である。従って、物理ブロック単位で見ると、図11に示すように物理ブロックの中にパーティションの境界が来る可能性がある。本実施形態のSSD装置10では、図11に示すように物理ブロックの中にパーティションの境界が来た場合、次のパーティションの開始位置を次の物理ブロックの先頭にしている。
仮に、図11に示すように、非Erase領域のパーティションとErase領域のパーティションとが隣り合い、しかも、物理ブロックの中にパーティションの境界が存在する場合を考える。本実施形態のようにフラッシュメモリ14の物理ブロックに対して消去指示をすると、消去動作はブロック単位で行われるので、パーティション境界が存在する物理ブロックのうち、非Erase領域に存在する部分にあるデータを(そこにデータが書き込まれているか否かにかかわらず)一時的に待避させ、この物理ブロックに消去指示をした後、待避したデータを再度書き込むという面倒な動作が必要になる。この動作は、フラッシュメモリ14の書き換え回数を消費することにつながる。
一方、本実施形態のSSD装置10によれば、パーティションの開始位置は必ず物理ブロックの先頭になっているので、上述したデータ退避作業を行うことなく物理ブロックに対して消去指示を行うことができ、フラッシュメモリ14の書き換え回数を消費することを抑制することができる。
(第1の実施形態におけるパーティション更新動作)
図12は、パーティション更新動作時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS110において、ホスト機器20は、パーティション更新動作のために、フラッシュメモリ14内に格納されたMBRを更新する指示を行う。SSD装置10の制御部40は、ステップS111においてMBR更新作業の準備が完了したことをホスト機器20に通知し、ホスト機器20は、ステップS111におけるMBR更新作業の準備が完了したことの通知を受け、ステップS112においてMBR更新用のデータを送信する。次いで、ステップS113では、制御部40が、ステップS112においてホスト機器20から送出されたMBRを解析し、Erase領域(パーティションC33)のLBAを取得し、Erase領域の開始論理アドレス及び終了論理アドレスを抽出するとともに、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスを把握する。ステップS114では、制御部40がフラッシュメモリ14のMBRを更新する。ステップS115では、フラッシュメモリ14からMBRへの更新データ書き込み完了通知が制御部40にされ、これを受けて、ステップS116では、制御部40がMBR書き込み完了通知をホスト機器20に送出する。
次に、図13は、図11に示すパーティションの境界と次のパーティションの開始位置との間の論理アドレスに対してデータの書き込み/読み出し指示がされた時における、SSD装置10とホスト機器20との間のデータ送受信及びSSD装置10の動作を説明するためのシーケンス図である。まず、ステップS120において、ホスト機器20からSSD装置10に対して、データを書き込むべき論理アドレスを指定して書き込み指令がされる。ステップS120においてホスト機器20が指定した、データを書き込むべき論理アドレスは、非Erase領域のパーティションの境界と次のErase領域のパーティションの開始位置との間の論理アドレスに対応する。SSD装置10の制御部40は、ステップS121において、図12のステップS113で行ったMBR解析で得られた結果に基づき、データを書き込むべき論理アドレスが非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスであるか否かを判断する。図13に示す例では、データを書き込むべき領域は非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスであるので、ステップS121では、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスであるとの判断になる。次いで、ステップS122では、制御部40は、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスの分だけ、論理アドレスをオフセットしたフラッシュメモリ14の領域に、ホスト機器20から送出されたデータを書き込む。ここにいうオフセットとは、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスの分だけ進んだ値(大きな値)を有する論理アドレスの位置にデータを書き込む、あるいは読み出すことを意味する。ステップS123では、フラッシュメモリ14からデータ書き込み完了通知が制御部40にされ、これを受けて、ステップS124では、制御部40がホスト機器20にデータ書き込み完了通知を送出する。
続いて、ステップS125において、ホスト機器20からSSD装置10に対して、データを読み出すべき論理アドレスを指定して読み出し指令がされる。ステップS125においてホスト機器20が指定した、データを読み出すべき論理アドレスは、非Erase領域のパーティションの境界と次のErase領域のパーティションの開始位置との間の論理アドレスに対応する。SSD装置10の制御部40は、ステップS126において、データを読み出すべき論理アドレスが非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスであるか否かを判断する。図13に示す例では、データを書き込むべき領域は非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスであるので、ステップS126では、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスであるとの判断になる。次いで、ステップS127では、制御部40は、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスの分だけ、論理アドレスをオフセットしたフラッシュメモリ14の領域にあるデータを読み出す。ステップS128では、フラッシュメモリ14から読み出されたデータが制御部40に送出され、これを受けて、ステップS129では、制御部40が読み出されたデータをホスト機器20に送出する。
以上説明したように、本実施形態のSSD装置10では、パーティションの開始位置は必ず物理ブロックの先頭になっており、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する論理アドレスの分だけオフセットした位置にデータを書き込む、あるいは読み出しているので、非Erase領域のパーティションの境界とErase領域のパーティションの開始位置との間に存在する領域に対してデータの書き込み/読み出し動作はされない。従って、この領域には何もデータが書き込まれていないことが保証されるので、上述したデータ退避作業を行うことなく物理ブロックに対して消去指示を行うことができ、フラッシュメモリ14の書き換え回数を消費することを抑制することができる。
(第2の実施形態)
図14は、本発明の第2の実施形態であるSSD装置において、判断部43により実施される、上書き用データであるかどうかの判定ルーチンを説明するためのフローチャートである。本実施形態のSSD装置は、上書き用データであるかどうかのルーチン以外は上述した第1の実施形態のSSD装置と同一であり、従って、同一の構成要素については同一の符号を付し、その説明を簡略化する。また、以降の説明において、ホスト機器20から送出される上書き用データは、全て「0」のデータであるものとする。
まず、ステップS200において、ホスト機器20から転送(送出)されてきたデータのバイト数が取得される。次いで、ステップS201において、変数C及びSが初期化され、その値が0にされる。ステップS202において、この変数Cが転送バイト数より小さいか否かが判断され、変数Cが転送バイト数より小さい(ステップS202においてYES)ときはステップS203に進み、変数Cが転送バイト数以上である(ステップS202においてNO)ときはステップS205に進む。ステップS203では、変数Sに転送されてきたデータが加算される。ステップS204では変数Cが1つインクリメントされ、次の転送データが読み込まれる。ステップS205では、変数Sが「0」(図14では16進数表示の「0x0000」)に等しいか否かが判断され、変数Sが「0」に等しい(ステップS205においてYES)場合はステップS206に進み、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断し、フラッシュメモリ14に対して消去動作が指示される。一方、変数Sが「0」に等しくない(ステップS205においてNO)場合はステップS207に進み、通常のデータ書き込みであると判断し、フラッシュメモリ14に対してデータ書き込みが指示される。このように、図14のルーチンでは、個々のデータの加算値Sを算出し、この加算値が「0」であるときに、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断している。
従って、本実施例のSSD装置10によっても、上述の第1の実施形態と同様の効果を得ることができる。
(第3の実施形態)
図15は、本発明の第3の実施形態であるSSD装置において、判断部43により実施される、上書き用データであるかどうかの判定ルーチンを説明するためのフローチャートである。
まず、ステップS300において、ホスト機器20から転送(送出)されてきたデータのセクタ数が取得される。次いで、ステップS301において、変数Cが初期化され、その値が0にされる。ステップS302において、この変数Cが転送セクタ数より小さいか否かが判断され、変数Cが転送セクタ数より小さい(ステップS302においてYES)ときはステップS303に進み、変数Cが転送セクタ数以上である(ステップS302においてNO)ときはステップS306に進む。ステップS303では、転送されてきたデータのハッシュ値が算出される。ここで、ハッシュ値は既知のハッシュ関数、一例としてMD2(Message Digest Algorithm 2)により算出されればよい。ステップS304では、ステップS303で算出されたハッシュ値が期待値と等しいかどうかが判断され、ハッシュ値が期待値と等しい(ステップS304においてYES)場合はステップS305に進み、ハッシュ値が期待値と等しくない(ステップS304においてNO)場合はステップS306に進む。ここに、期待値は、データが「0」であった場合のハッシュ値である。ステップS305では変数Cが1つインクリメントされ、次の転送データが読み込まれる。ステップS306では、変数Cが転送セクタ数に等しいかどうかが判断され、変数Cが転送セクタ数に等しい(ステップS306においてYES)場合はステップS307に進み、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断し、フラッシュメモリ14に対して消去動作が指示される。一方、変数Cが転送セクタ数に等しくない(ステップS306においてNO)場合はステップS308に進み、通常のデータ書き込みであると判断し、フラッシュメモリ14に対してデータ書き込みが指示される。このように、図15のルーチンでは、個々のデータのハッシュ値を算出し、このハッシュ値が、データが「0」である時のハッシュ値である期待値と等しいときに、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断している。
従って、本実施例のSSD装置10によっても、上述の第1、第2の実施形態と同様の効果を得ることができる。
(第4の実施形態)
図16は、本発明の第4の実施形態であるSSD装置において、判断部43により実施される、上書き用データであるかどうかの判定ルーチンを説明するためのフローチャートである。
まず、ステップS400において、ホスト機器20から転送されてきたデータのCRC(Cyclic Redundancy Check)値が算出される。ステップS401では、ステップS400で算出されたCRC値が期待値と等しいかどうかが判断され、CRC値が期待値と等しい(ステップS401においてYES)場合はステップS402に進み、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断し、フラッシュメモリ14に対して消去動作が指示される。一方、ハッシュ値が期待値と等しくない(ステップS401においてNO)場合はステップS403に進み、通常のデータ書き込みであると判断し、フラッシュメモリ14に対してデータ書き込みが指示される。このように、図16のルーチンでは、データのCRC値を算出し、このCRC値が、データが「0」である時のCRC値である期待値と等しいときに、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断している。
従って、本実施例のSSD装置10によっても、上述の第1〜第3の実施形態と同様の効果を得ることができる。
(第5の実施形態)
図17は、本発明の第5の実施形態であるSSD装置において、判断部43により実施される、上書き用データであるかどうかの判定ルーチンを説明するためのフローチャートである。
まず、ステップS500において、ホスト機器20から転送(送出)されてきたデータのバイト数が取得される。次いで、ステップS501において、変数C及びSが初期化され、その値が0にされる。ステップS502において、この変数Cが転送バイト数より小さいか否かが判断され、変数Cが転送バイト数より小さい(ステップS502においてYES)ときはステップS503に進み、変数Cが転送バイト数以上である(ステップS502においてNO)ときはステップS506に進む。ステップS503では、変数Cが、ステップS502において取得した転送バイト数の最初の値か、真ん中の値か、あるいは最後の値かが判断され、変数Cが転送バイト数の最初の値か、真ん中の値か、あるいは最後の値である(ステップS503においてYES)場合はステップS504に進み、変数Cが転送バイト数の最初の値か、真ん中の値か、あるいは最後の値でない(ステップS503においてNO)場合はステップS505に進む。ステップS504では、転送されてきたデータが「0」(図17では16進数表示の「0x00」)であるか否かが判定され、転送されてきたデータが「0」である(ステップS504においてYES)場合はステップS505に進み、転送されてきたデータが「0」でない場合はステップS506に進む。ステップS505では変数Cが1つインクリメントされ、次の転送データが読み込まれる。ステップS506では、変数Cが転送バイト数に等しいか否かが判断され、変数Cが転送バイト数に等しい(ステップS506においてYES)場合はステップS507に進み、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断し、フラッシュメモリ14に対して消去動作が指示される。一方、変数Cが転送バイト数に等しくない(ステップS506においてNO)場合はステップS508に進み、通常のデータ書き込みであると判断し、フラッシュメモリ14に対してデータ書き込みが指示される。このように、図17のルーチンでは、転送されてきたデータの最初、真ん中及び最後の値を抽出し、抽出された値が全て「0」であるときに、ホスト機器20から転送、送出されてきたデータは上書き用データであると判断している。
従って、本実施例のSSD装置10によっても、上述の第1〜第4の実施形態と同様の効果を得ることができる。
(変形例)
本発明の記憶装置及び記憶装置におけるデータ消去方法は、その細部が上述した各実施形態に限定されず、種々の変形例が可能である。
一例として、上述の各実施形態では、ホスト機器から送出される上書き消去用の上書き用データは全て「0」のデータであるとして、上書き消去判断のルーチンを説明したが、ホスト機器から送出される上書き消去用の上書き用データが特定できる限り、ルーチンを適宜変更することで対応可能である。また、上書き消去判断のルーチンは上述の各実施形態に説明したものに限定されない。
また、上述の第1の実施形態において、Erase領域の論理アドレスは、図5に示すように起動時にフラッシュメモリのMBRを取得し、このMBRから取得していたが、これに限らず、例えば、記憶装置を組み込んだホスト機器の出荷時においてパーティションを作成した際に、Erase領域に対応するパーティションの論理アドレスを取得し、この論理アドレスを、ホスト機器から送出される記憶装置初期化コマンド内に設定しておけばよい。これにより、記憶装置初期化動作によって記憶装置はErase領域の論理アドレスを取得することができる。あるいは、ホスト機器特有の(ベンダー依存の)コマンドを用意し、このコマンド内にErase領域に対応するパーティションの論理アドレスを予め設定してもよい。
また、上述の第1の実施形態において、RAM内に格納されている上書き用データはSSD装置が自ら生成していたが、ホスト機器から上書き消去指示の際に送出されてきた上書き用データを都度RAM内に格納してもよい。
10 SSD装置
11 コントローラ
12 RAM
12a 上書き用データ
12b 変換テーブル
13 ROM
14 フラッシュメモリ
15 CPU
16 ホストインタフェース
17 フラッシュインタフェース
18 RAMインタフェース
19 ROMインタフェース
20 ホスト機器
40 制御部
41 記憶媒体
42 インタフェース部
43 判断部
44 消去部
45 転送部

Claims (3)

  1. NAND型フラッシュメモリと、このNAND型フラッシュメモリに対するデータの書き込み/読み出しを制御する制御部とを備え、ホスト機器にインタフェースを介して接続された記憶装置において、
    前記制御部は、
    前記ホスト機器から、前記インタフェースを介して前記ホスト機器に接続されるインタフェース部と、
    前記NAND型フラッシュメモリ内の特定領域に対して上書き用データを上書きすることにより、この特定領域内に記憶されていた既存データの消去が、前記インタフェースが定める上書き命令により前記ホスト機器から指示されたか否かを判断する判断部と、
    前記判断部が、前記特定領域内に記憶された前記既存データへの消去指示がされたと判断したら、この特定領域を含む物理ブロックに対してブロック消去を指示し、前記特定領域を含む物理ブロックの前記NAND型フラッシュメモリの電荷を除去することで前記既存データを消去する消去部と
    を備え
    前記記憶装置は記憶媒体を備え、
    この記憶媒体には、前記特定領域内に記憶されていた前記既存データの消去指示がされる際に前記ホスト機器から送信される前記上書き用データが保持され、
    前記制御部は、
    前記ホスト機器から前記特定領域内のデータ読み出しが指示されたら、前記記憶媒体内の上書き用データを前記インタフェース部を介して前記ホスト機器に転送する転送部
    を備えることを特徴とする記憶装置。
  2. 前記NAND型フラッシュメモリは複数のパーティションに分割され、各々の前記パーティションは物理ブロックの先頭から開始される
    ことを特徴とする請求項1記載の記憶装置。
  3. NAND型フラッシュメモリと、このNAND型フラッシュメモリに対するデータの書き込み/読み出しを制御する制御部と、記憶媒体とを備え、ホスト機器にインタフェースを介して接続された記憶装置におけるデータ消去方法であって、
    前記NAND型フラッシュメモリ内の特定領域に対して上書き用データを上書きすることにより、この特定領域内に記憶されていた既存データの消去が、前記インタフェースが定める上書き命令により前記ホスト機器から指示されたか否かを判断し、
    前記特定領域内に記憶された前記既存データへの消去指示がされたと判断したら、この特定領域を含む物理ブロックに対してブロック消去を指示し、前記特定領域を含む物理ブロックの前記NAND型フラッシュメモリの電荷を除去することで前記既存データを消去し、
    この記憶媒体に、前記特定領域内に記憶されていた前記既存データの消去指示がされる際に前記ホスト機器から送信される前記上書き用データを保持し、
    前記ホスト機器から前記特定領域内のデータ読み出しが指示されたら、前記記憶媒体内の上書き用データを前記インタフェース部を介して前記ホスト機器に転送する
    ことを特徴とする記憶装置におけるデータ消去方法。
JP2012144642A 2012-06-27 2012-06-27 記憶装置及び記憶装置におけるデータ消去方法 Active JP5959958B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012144642A JP5959958B2 (ja) 2012-06-27 2012-06-27 記憶装置及び記憶装置におけるデータ消去方法
US13/927,881 US9223695B2 (en) 2012-06-27 2013-06-26 Information processing apparatus
CN201310260163.9A CN103513936B (zh) 2012-06-27 2013-06-26 存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012144642A JP5959958B2 (ja) 2012-06-27 2012-06-27 記憶装置及び記憶装置におけるデータ消去方法

Publications (3)

Publication Number Publication Date
JP2014010498A JP2014010498A (ja) 2014-01-20
JP2014010498A5 JP2014010498A5 (ja) 2015-05-14
JP5959958B2 true JP5959958B2 (ja) 2016-08-02

Family

ID=49779433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012144642A Active JP5959958B2 (ja) 2012-06-27 2012-06-27 記憶装置及び記憶装置におけるデータ消去方法

Country Status (3)

Country Link
US (1) US9223695B2 (ja)
JP (1) JP5959958B2 (ja)
CN (1) CN103513936B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160117179A1 (en) * 2014-10-24 2016-04-28 Advanced Micro Devices, Inc. Command replacement for communication at a processor
US20160291887A1 (en) * 2015-03-30 2016-10-06 Kabushiki Kaisha Toshiba Solid-state drive with non-volatile random access memory
WO2016174729A1 (ja) * 2015-04-28 2016-11-03 株式会社日立製作所 ストレージ装置
JP6821475B2 (ja) * 2016-03-15 2021-01-27 株式会社服部商店 修飾セルロースナノファイバーの製造方法
US10402092B2 (en) * 2016-06-01 2019-09-03 Western Digital Technologies, Inc. Resizing namespaces for storage devices
JP6767653B2 (ja) * 2016-07-13 2020-10-14 株式会社バッファロー 記憶装置、情報処理システム、記憶装置の起動方法及びプログラム
CN109947660B (zh) * 2017-12-21 2023-03-14 建兴储存科技(广州)有限公司 固态储存装置及其相关计算机系统
US11288007B2 (en) * 2019-05-16 2022-03-29 Western Digital Technologies, Inc. Virtual physical erase of a memory of a data storage device
JP2021175018A (ja) * 2020-04-20 2021-11-01 コニカミノルタ株式会社 画像形成装置
TWI845896B (zh) * 2022-02-18 2024-06-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI805231B (zh) 2022-02-18 2023-06-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI802279B (zh) 2022-02-18 2023-05-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3419270B2 (ja) * 1997-09-05 2003-06-23 松下電器産業株式会社 カードリーダ
JP2003100020A (ja) * 2001-09-25 2003-04-04 Ricoh Co Ltd 相変化型光記録媒体及びその記録再生装置
JP2006031268A (ja) 2004-07-14 2006-02-02 Sharp Corp 情報処理装置、及び記憶制御装置
JP2007279816A (ja) 2006-04-03 2007-10-25 Fuji Xerox Co Ltd データ処理装置およびデータ処理方法とプログラム
JP2009064238A (ja) * 2007-09-06 2009-03-26 Hitachi Ulsi Systems Co Ltd メモリシステム
JP4340327B1 (ja) 2009-01-29 2009-10-07 株式会社ハギワラシスコム マルチファンクションプリンタ
JP2011022760A (ja) * 2009-07-15 2011-02-03 Hagiwara Sys-Com:Kk データ消去方法及び情報機器
CN102511044B (zh) * 2011-09-06 2013-10-02 华为技术有限公司 一种数据删除方法及装置
JP2013222435A (ja) * 2012-04-19 2013-10-28 Toshiba Corp 半導体記憶装置及びその制御方法

Also Published As

Publication number Publication date
US20140006695A1 (en) 2014-01-02
JP2014010498A (ja) 2014-01-20
CN103513936A (zh) 2014-01-15
CN103513936B (zh) 2016-11-16
US9223695B2 (en) 2015-12-29

Similar Documents

Publication Publication Date Title
JP5959958B2 (ja) 記憶装置及び記憶装置におけるデータ消去方法
JP2014010498A5 (ja)
JP4422652B2 (ja) 漸進的マージ方法及びそれを利用したメモリシステム
JP5721344B2 (ja) システム、システムの制御方法、及び、プログラム
JP4884041B2 (ja) 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP6543122B2 (ja) 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム
JP4924645B2 (ja) ストレージ制御装置、ストレージシステム及びコピー方法。
JP6875808B2 (ja) 情報処理装置
JP6004923B2 (ja) 情報処理装置及びその制御方法とプログラム
JP2015219602A (ja) 情報処理装置、情報処理方法及びプログラム
JP2011022760A (ja) データ消去方法及び情報機器
JP4340327B1 (ja) マルチファンクションプリンタ
JP6271939B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP4567966B2 (ja) エミュレーションシステムおよびエミュレーション方法
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
JP2018063676A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP6767653B2 (ja) 記憶装置、情報処理システム、記憶装置の起動方法及びプログラム
JP5074676B2 (ja) デバイスコントローラ
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
JP2015069241A (ja) 画像処理装置、制御装置、それらの制御方法、及びプログラム
JP2015204071A (ja) 情報処理装置、情報処理方法およびプログラム
JP6817242B2 (ja) ディスクアレイ装置、ディスクアレイ装置の制御方法、及びディスクアレイ装置の制御プログラム
JP5350077B2 (ja) 情報処理装置及びこれを備えた画像形成装置
JP2010176399A (ja) Nand型フラッシュメモリデバイス及びnand型フラッシュメモリのデータ消去方法
JP4575112B2 (ja) ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150326

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160622

R150 Certificate of patent or registration of utility model

Ref document number: 5959958

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111