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

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

Info

Publication number
JP2019191910A
JP2019191910A JP2018083668A JP2018083668A JP2019191910A JP 2019191910 A JP2019191910 A JP 2019191910A JP 2018083668 A JP2018083668 A JP 2018083668A JP 2018083668 A JP2018083668 A JP 2018083668A JP 2019191910 A JP2019191910 A JP 2019191910A
Authority
JP
Japan
Prior art keywords
data
discard
memory controller
memory
physical block
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
Application number
JP2018083668A
Other languages
English (en)
Inventor
宗 広和
Hirokazu So
広和 宗
本多 利行
Toshiyuki Honda
利行 本多
重一 小来田
Shigekazu Kokita
重一 小来田
須藤 正人
Masato Sudo
正人 須藤
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 Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management 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 Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2018083668A priority Critical patent/JP2019191910A/ja
Priority to US16/379,124 priority patent/US20190335062A1/en
Publication of JP2019191910A publication Critical patent/JP2019191910A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/4446Hiding of documents or document information
    • H04N1/4473Destruction, e.g. shredding of documents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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
    • 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/7202Allocation control and policies
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Abstract

【課題】ホスト装置から不揮発性記憶装置の所定データを物理的に破棄する。【解決手段】メモリコントローラは、データ破棄制御部を備え、ホスト装置が論理アドレスで指定した破棄対象データに対して、物理アドレスを算出して破棄対象データ情報として登録する。データ破棄制御部は、ホスト装置からの所定コマンドに対して、現在の破棄対象データ情報をホスト装置に出力する。ホスト装置からのコマンド受信がない場合、データ破棄制御部は破棄対象データ情報に基づき、破棄対象データの物理消去を実行する。【選択図】図1

Description

本開示は、データの書換えが可能な不揮発性メモリを制御するメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法に関する。
MFP(Multifunction Peripheral)などの電子機器では記憶装置に画像データなどの機密データを格納する。記憶装置への格納後に不要となった機密データは、セキュリティの観点から速やかに物理的に破棄されることが求められている。(例えば、非特許文献1参照)。
従来、MFPの記憶装置としては、大容量のデータを格納できるHDD(Hard Disk Drive)が用いられてきた。HDDに格納されたデータを物理的に破棄する手法としては、他のデータで1回もしくは複数回上書きするのが一般的であった。
近年はフラッシュメモリ(不揮発性メモリ)の大容量化・低価格化が急速に進んだことで、MFPの記憶装置はより高速で省電力なSSD(Solid State Device)などの不揮発性記憶装置に置き換わっていくことが予想される。
「ハードコピーデバイス(ディジタル複合機)のプロテクションプロファイル」情報処理推進機構著、2015年9月10日、p.26
不揮発性記憶装置に搭載されるフラッシュメモリには書換え回数制約があるため、不揮発性記憶装置は一般的にアドレス管理テーブルを備えており、データの書込みをフラッシュメモリ全域に分散させることで書換え寿命を改善している。
しかしながら、アドレス管理テーブルによって、MFPが指定するアドレス(論理アドレス)とフラッシュメモリのアドレス(物理アドレス)の紐付けは可変となる。そのため、MFPが論理アドレスを指定して書き込んだ機密データに対して、MFPが同じ論理アドレスを指定して他のデータで上書きしても、該機密データは物理的には上書きされず、フラッシュメモリ内に残存する場合がある。
従って、MFP(ホスト装置)はSSDに格納された機密データの状態を把握し、機密データを物理的に破棄するような制御ができないという課題があった。
本開示は、ホスト装置から機密データの状態を把握し、機密データを物理的に破棄するような制御を実施することが可能なメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法を提供する。
本開示におけるメモリコントローラは、物理ブロックを複数有する不揮発性メモリに対しデータの書込み及び読込みを行うメモリコントローラであって、外部装置が指定する論理アドレスと前記物理ブロックとの対応を管理するアドレス変換テーブルと、前記外部装置が前記論理アドレスで指定した破棄対象のデータを前記物理ブロックの情報に変換した破棄対象データ情報とを管理し、前記破棄対象データ情報に基づいてデータの破棄を行う制御部と、外部装置と接続し、データの送受信を行うホストインタフェース部と、を備え、前記制御部は、前記ホストインタフェース部から、データの破棄状況取得指示を受信したとき、前記破棄対象データ情報を参照し、未処理の破棄対象のデータに関する情報の出力を行う。
本開示におけるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法は、ホスト装置から機密データの状態を把握し、機密データを物理的に破棄するような制御を実施することができる。そのため、ホスト装置は、不要になった機密データを速やかに物理的に破棄するように、不揮発性記憶装置を制御することが可能となる。
実施の形態1における不揮発性記憶システムの構成を示す図 実施の形態1におけるアドレス変換テーブルの構成を示す図 実施の形態1における物理ブロック管理テーブルの構成を示す図 実施の形態1における破棄対象データ情報の構成を示す図 実施の形態1における不揮発性メモリの記録領域である物理ブロックの構成を示す図 実施の形態1における物理ブロックにおける物理ページの構成を示す図 実施の形態1におけるホスト装置の構成を示す図 実施の形態1における不揮発性記憶装置の電源オン後の動作を示すフローチャート 実施の形態1における不揮発性記憶装置の書込みコマンド受信時の動作を示すフローチャート 実施の形態1における、書込みコマンド受信時のアドレス変換テーブル、物理ブロック管理テーブル、破棄対象データ情報、物理ブロック#4、物理ブロック#5の状態の例を示す図 実施の形態1における、書込みコマンド処理後のアドレス変換テーブル、物理ブロック管理テーブル、破棄対象データ情報、物理ブロック#4、物理ブロック#5の状態の例を示す図 実施の形態1における破棄登録コマンド受信時の動作を示すフローチャート 実施の形態1における、破棄登録コマンド処理後の、アドレス変換テーブル、物理ブロック管理テーブル、破棄対象データ情報、物理ブロック#4、物理ブロック#5の状態の例を示す図 実施の形態1における破棄状況取得コマンド受信時の動作を示すフローチャート 実施の形態1における、GC/データ破棄処理前の、破棄状況取得コマンドの出力データの例を示す図 実施の形態1におけるGC/データ破棄処理の動作を示すフローチャート 実施の形態1における、GC/データ破棄処理のステップS1604後の、アドレス変換テーブル、物理ブロック管理テーブル、破棄対象データ情報、物理ブロック#4、物理ブロック#5の状態の例を示す図 実施の形態1における、GC/データ破棄処理後の、アドレス変換テーブル、物理ブロック管理テーブル、破棄対象データ情報、物理ブロック#4、物理ブロック#5の状態の例を示す図 実施の形態1における、GC/データ破棄処理後の、破棄状況取得コマンドの出力データの例を示す図 実施の形態1におけるホスト装置の電源オン後の動作を示すフローチャート 実施の形態1におけるホスト装置の画像印刷処理の動作を示すフローチャート 実施の形態1におけるホスト装置の電源オフ処理開始後の動作を示すフローチャート
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
(実施の形態1)
以下、図1〜22を用いて、実施の形態1を説明する。
[1−1.構成]
[1−1−1.不揮発性記憶システムの構成]
図1は、本実施の形態における不揮発性記憶システムの構成を示す図である。図1において、不揮発性記憶システム1は、不揮発性記憶装置100と、その上位装置であるホスト装置200とを含んでいる。
不揮発性記憶装置100は、例えば、半導体メモリデバイスであるSSDである。又は、不揮発性記憶装置100は、SDメモリカード、コンパクトフラッシュ(登録商標)、フラッシュドライブ、組込み用メモリデバイス、でもよい。不揮発性記憶装置100は、静止画、動画、音声、テキスト等の種々コンテンツのデジタルデータ(以下「コンテンツデータ」と称す)を格納することができる。不揮発性記憶装置100は、上位装置であるホスト装置200と接続可能である。ホスト装置200は、外部装置の一例である。
不揮発性記憶装置100は、メモリコントローラ110と、不揮発性メモリ120とを備える。
ホスト装置200は、コンテンツデータを不揮発性記憶装置100に記録し、また、不揮発性記憶装置100からコンテンツデータを読み出す。ホスト装置200は、例えば、MFPと呼ばれる複合機、デジタルカメラ、パーソナルコンピュータ、スマートフォン、タブレット端末、テレビ等の電子機器である。
不揮発性メモリ120は、電源供給がない状態でもコンテンツデータの保持が可能な記録素子である。不揮発性メモリ120は、例えば、NANDフラッシュメモリにより構成される。
[1−1−2.メモリコントローラの構成]
次に不揮発性記憶装置100のメモリコントローラ110の構成について詳細に説明する。メモリコントローラ110は、ホスト装置200からのコマンドと関連するアドレス情報を受信して不揮発性メモリ120に対するコンテンツデータの書込み及び読出しを制御する。
メモリコントローラ110は、CPU(Central Processing Unit)101と、ホストインタフェース部111と、ECC(Error Correcting Code)回路115と、メモリインタフェース部116と、制御情報記憶部117と、RAM(Random Access Memory)118と、ROM(Read Only Memory)119と、を含み、これらがバスを介して接続されている。
CPU101は、各種プログラム等を実行する演算ユニットである。
ホストインタフェース部111は、CPU101の制御によりホスト装置200との間でコマンドやコンテンツデータ等のデータの送受信を行うインタフェースである。
メモリインタフェース部116は、CPU101の制御により不揮発性メモリ120に対するデータの書込み、読込み、及び消去の制御を行うインタフェースである。
ECC回路115は、記憶するデータの符号化処理及び記憶されたデータの復号化処理を行う誤り訂正回路である。ECC回路115により機能する誤り訂正制御部115aは、不揮発性メモリ120に書込まれたコンテンツデータに生じた誤りを復元する。
制御情報記憶部117は、CPU101により処理される制御情報や不揮発性メモリ120の管理情報を記憶するメモリである。
RAM118は、CPU101の処理において実行されるプログラム、及びプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。ROM119は、CPU101が実行するプログラム、或いは演算パラメータとしての固定データを格納する。
CPU101は、書込み制御部112、読出し制御部(図示せず)、GC制御部113、及びデータ破棄制御部114を備える。
書込み制御部112は、ホストインタフェース部111で受信したコンテンツデータを不揮発性メモリ120へ書き込むための制御を行う。
読出し制御部(図示せず)は、不揮発性メモリ120に格納されたコンテンツデータをホストインタフェース部111経由でホスト装置200へ出力するための制御を行う。
GC制御部113は、不揮発性メモリ120に格納されたコンテンツデータのうち、上書きやデータ破棄などによって無効となったコンテンツデータを集約し、新たなコンテンツデータの格納のための領域として確保する処理(すなわち、ガベージコレクション処理)の制御を行う。
データ破棄制御部114は、不揮発性メモリ120に格納したコンテンツデータを物理消去などの手段によって物理的に破棄するための制御を行う。
制御情報記憶部117は、アドレス変換テーブル117aと、物理ブロック管理テーブル117bと、破棄対象データ情報117cとを格納する記憶領域である。
なお、制御情報記憶部117はメモリコントローラ110上ではなく、不揮発性メモリ120上に設けても良いし、メモリコントローラ110からアクセス可能なDRAM(Dynamic Random Access Memory)を用意して、そのDRAM上に設けても良い。
図2は、本実施の形態におけるアドレス変換テーブル117aの構成を示す図である。アドレス変換テーブル117aは、ホスト装置200が使用する論理アドレス301と、不揮発性メモリ120の物理アドレス(すなわち、物理ブロックアドレス302、及び、物理ページアドレス303)との対応を示す情報を格納するテーブルである。
図2において、アドレス変換テーブル117aは、論理アドレス「0」に対して、物理ブロックアドレス「39」、物理ページアドレス「63」であり、論理アドレス「1」に対して、物理ブロックアドレス「26」、物理ページアドレス「151」である。論理アドレス「2」以降についても、同様に、物理ブロックアドレスと物理ページアドレスの対応が格納されている。また、論理ブロック「7」や論理ブロック「9」に対しては物理アドレスが割当てられておらず、「未割当」を示す値が格納されている。
図3は、本実施の形態における物理ブロック管理テーブル117bの構成を示す図である。物理ブロック管理テーブル117bは、不揮発性メモリ120を構成する物理ブロック毎の使用状況を管理するために、物理ブロックアドレス302と物理ブロック用途304と有効データページ数305とを対応付けて格納する。
図3において、物理ブロック用途304は、物理ブロックアドレス302で示される物理ブロックの用途を格納する。
「システム」は、該物理ブロックに不揮発性記憶装置100が内部的に管理しているシステム情報(各種パラメータ情報、RAM118にロードするプログラム、制御情報記憶部にロードするアドレス変換テーブル117aや物理ブロック管理テーブル117bや破棄対象データ情報117cに関連する情報、等)を格納していることを示す。
「データ」は、該物理ブロックにホスト装置200が書き込んだデータを格納していることを示す。
「不可(不良)」は、該物理ブロックが先天的または後天的な不良ブロックであり、データ格納に使用されていないことを示す。
「空き」は、該物理ブロックが空き(未使用)であり、ホスト装置200からの新たなデータ書込みやガベージコレクション処理におけるデータ書込みに使用できることを示す。
図3において、有効データページ数305は、物理ブロックアドレス302で示される物理ブロックの物理ブロック用途304が「システム」または「データ」のときに、該物理ブロックに含まれる物理ページのうち、有効なデータが存在するページ数を格納する。物理ブロック用途304が「システム」の場合、有効なデータとは、システム情報を指す。物理ブロック用途304が「データ」の場合、有効なデータとは、ホスト装置200が同一の論理アドレスに対して書込んだデータのうち、最新データを指す。(例えば、ホスト装置200が同一の論理アドレスに対して、3回書込みをおこなった場合、3回目に書込んだデータのみが有効なデータであり、1回目及び2回目に書込んだデータは有効なデータではない(無効なデータである)。
図3において、物理ブロック管理テーブル117bは、物理ブロックアドレス「0」の物理ブロック用途は「システム」であり、有効データページ数「64」である。物理ブロックアドレス「1」の物理ブロック用途は「データ」であり、有効データページ数「6」である。物理ブロックアドレス「2」以降についても、同様に、物理ブロック用途と有効データページ数の情報が格納されている。
図4は、本実施の形態における破棄対象データ情報117cの構成を示す図である。破棄対象データ情報117cは、破棄すべきデータを含んでいる物理ブロック(破棄対象ブロック)の登録数である破棄対象ブロック登録数306と、各破棄対象ブロックの物理ブロックアドレス302である破棄対象ブロック#1アドレス3071、破棄対象ブロック#2アドレス3072、…(破棄対象ブロックの登録数分の繰り返し)、とを格納する。
図4において、破棄対象ブロック登録数306は「1」個であり、破棄対象ブロック#1のアドレスは「4」である。
[1−1−3.不揮発性メモリの構成]
次に不揮発性記憶装置100の不揮発性メモリ120の構成について説明する。図5は、本実施の形態における不揮発性メモリ120の記録領域である物理ブロックの構成を示す図である。
不揮発性メモリ120は、複数の物理ブロック121で構成される。物理ブロック121は消去単位であり、この単位でデータの物理的な消去が実行される。不揮発性メモリ120にデータを格納するためには、物理ブロック121の単位でデータの物理的な消去を行った後、データを書込む必要がある。物理ブロック121のデータを物理的に消去せずに新たなデータを書込むことはできない。
図6は、本実施の形態における物理ブロック121の構成を示す図である。
物理ブロック121は複数の物理ページ122で構成される。物理ページ122は物理ブロック121へのデータの書込み単位である。
本実施の形態では物理ページの単位を16kBとし、物理ブロックの単位を4MB(すなわち、(16kB×256ページ)とする。
[1−1−4.ホスト装置の構成]
次にホスト装置200の構成について説明する。図7は、本実施の形態におけるホスト装置を示した構成図である。
ホスト装置200は、不揮発性記憶装置100と接続可能な装置である。
ホスト装置200は、CPU211と、RAM212と、ROM213と、メモリインタフェース部214とを含み、これらがバスを介して接続されている。ホスト装置200はまた、入力部215と、表示部216と、記憶部217と、外部インタフェース部218と、スキャナ219と、印刷部220とを含み、これらが所定のインタフェースを介してバスを介して接続されている。
CPU211は、各種アプリケーションプログラム等を実行する演算ユニットである。RAM212は、CPU211の処理において実行されるプログラム、及びプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。ROM213は、CPU211が実行するプログラム、或いは演算パラメータとしての固定データを格納する。
メモリインタフェース部214は、CPU211の制御により不揮発性記憶装置100に対して、コマンドやコンテンツデータ等のデータの送受信を行うインタフェースである。
入力部215は、CPU211に各種の指令を入力するためにユーザにより操作されるキー、ボタン、タッチパネル、マウス、キーボード等である。
表示部216は、例えば液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイ等であり、各種情報をテキスト又はイメージ等により表示する。
記憶部217は、情報記憶媒体としての例えばフラッシュメモリ、ハードディスクを有する。
外部インタフェース部218は、パソコン等の別のホスト装置とコマンドやコンテンツデータ等の送受信を行うインタフェースで、イーサネット(登録商標)、無線LAN等である。
スキャナ219は、紙に記録された情報を電子データに変換して取込むための機能ブロックである。
印刷部220は、電子データを紙に印刷して出力するための機能ブロックである。
[1−2.動作]
以上のように構成された不揮発性記憶装置100の動作を以下に説明する。
[1−2−1−1.電源オン後の動作]
まず、不揮発性記憶装置100における電源オン後の動作について説明する。
図8は、本実施の形態における不揮発性記憶装置100の電源オン後の動作を示すフローチャートである。
ホスト装置200が不揮発性記憶装置100に対して、コンテンツデータの書込み、または、コンテンツデータの読出しを行う前に、不揮発性記憶装置100の電源をオンにする。
(S801)不揮発性記憶装置100は電源オン後にメモリコントローラ110の初期化処理を行い、ホスト装置200からの各種コマンドを受付け可能な状態にする。具体的には、ROM119に格納されたプログラムの実行、不揮発性メモリ120にアクセスするための初期化処理、不揮発性メモリ120に格納されたシステム情報の読出し、RAM118へのプログラムのロード、制御情報記憶部117への情報設定、などを行う。
(S802)次に、メモリコントローラ110はホスト装置200からコマンドを受信したかどうかを確認する。コマンドを受信している場合(Yesの場合)はステップS803に処理を進め、受信していない場合(Noの場合)はステップS804に処理を進める。
(S803)次に、メモリコントローラ110は受信したコマンドの種類を確認し、コマンドの種類に応じた処理を実施する。コマンドの種類毎の処理は後述する。
(S804)次に、メモリコントローラ110は制御情報記憶部117の破棄対象データ情報117cを参照し、破棄対象ブロック登録数306が1以上であるかを確認することで破棄対象ブロックの有無を判定する。破棄対象ブロック登録数306が1以上の場合(Yesの場合)はステップS805に処理を進め、破棄対象ブロック登録数306が0の場合(Noの場合)はステップS806に処理を進める。
(S805)次に、メモリコントローラ110は破棄対象ブロックに対するGC/データ破棄処理を実施する。GC/データ破棄処理の詳細は後述する。
(S806)次に、メモリコントローラ110は制御情報記憶部117の物理ブロック管理テーブル117bを参照し、物理ブロック用途304が「空き」となっている物理ブロックが所定数Nよりも小さいどうかを確認することで、空きブロック確保の要否を判定する。「空き」の物理ブロックの数が所定数Nよりも小さい場合(Yesの場合)はステップS807に処理を進め、「空き」の物理ブロックの数が所定数N以上の場合(Noの場合)はステップS802に処理を進める。
(S807)次に、メモリコントローラ110は制御情報記憶部117の物理ブロック管理テーブル117bを参照し、物理ブロック用途が「データ」となっているもののうち、有効データページ数305の値が最小のものをGC対象ブロックとして選択し、GC対象ブロックに対するGC/データ破棄処理を実施する。GC/データ破棄処理の詳細は後述する。
図8のフローチャートで示すように、本実施の形態ではGC/データ破棄処理の対象として、破棄対象ブロックを優先的に選択しており、これによって機密データ等が含まれる破棄対象ブロックを速やかに物理消去することが可能である。
[1−2−1−2.データの書込み動作]
次に、不揮発性記憶装置100におけるデータの書込み動作について説明する。すなわち、S803において、コマンドの種類がデータ書込みコマンドであった場合の動作について説明する。
図9は、本実施の形態における不揮発性記憶装置100のデータ書込みコマンド受信時の動作を示すフローチャートである。
本フローチャートの開始時点においては、図10に示す状態(アドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4は先頭ページから物理ページ#253までデータ書込み済、物理ブロック#5は全ページ消去済)であるものとして、以下説明する。
ホスト装置200がコンテンツデータを不揮発性記憶装置100に書込む際、ホスト装置200は、書込みコマンドを発行し、書込みアドレスを指定して不揮発性記憶装置100のメモリコントローラ110に通知する。
(S901)メモリコントローラ110のホストインタフェース部111は、書込みコマンドと書込み先の論理アドレスを受信する。例えば、書き込み先の論理アドレスが「3」から「4」までの2区間の場合について、以下の書き込み動作を説明する。本実施の形態では論理アドレスの1区間を16kBとし、1つの物理ページに1論理アドレスのデータが収まるものとする。
(S902)次に、CPU101において、書込み制御部112は書込みデータを格納するための空きブロックを確保する必要があるかを判定する。(A)物理ブロック管理テーブル117bの物理ブロック用途304が「データ」であり、物理ブロックの途中ページまでデータを書き込んだ状態で以降のページに追記できるような物理ブロックが存在する場合、あるいは、(B)物理ブロック管理テーブル117bに物理ブロック用途304が「空き」である物理ブロックが所定数M以上存在し、この中の1つをデータの書込み用に確保できる場合(Noの場合)はステップS906に処理を進める。(A)でも(B)でもない場合(Yesの場合)はステップ903に処理を進める。図10に示す状態では、(A)に相当する物理ブロック(物理ブロック#4)が存在するので、S906に処理を進める。
(S903)次に、CPU101において、制御情報記憶部117の破棄対象データ情報117cを参照し、破棄対象ブロック登録数306が1以上であるかを確認することで破棄対象ブロックの有無を判定する。破棄対象ブロック登録数306が1以上の場合(Yesの場合)はステップS904に処理を進め、破棄対象ブロック登録数306が0の場合(Noの場合)はステップS905に処理を進める。
(S904)次に、CPU101において、破棄対象ブロックに対するGC/データ破棄処理を実施する。GC/データ破棄処理の詳細は後述する。GC/データ破棄処理を実施することで、物理ブロック管理テーブル117bに物理ブロック用途304が「空き」である物理ブロックが所定数M以上存在する状態とし、この中の1つをデータの書込み用に確保してS906の処理に進む。
(S905)次に、CPU101において、制御情報記憶部117の物理ブロック管理テーブル117bを参照し、物理ブロック用途が「データ」となっているもののうち、有効データページ数305の値が最小のものをGC対象ブロックとして選択し、GC対象ブロックに対するGC/データ破棄処理を実施する。GC/データ破棄処理の詳細は後述する。GC/データ破棄処理を実施することで、物理ブロック管理テーブル117bに物理ブロック用途304が「空き」である物理ブロックが所定数M以上存在する状態とし、この中の1つをデータの書込み用に確保してS906の処理に進む。
(S906)次に、CPU101において、書込み制御部112は、ホストインタフェース部111経由で受信したホスト装置200からの書込みデータを、S902、S904、またはS905で確保した物理ブロックに書込む。図10に示す状態では、物理ブロック#4に書込む。S901で2区間の論理アドレスを受信しているので、物理ブロック#4には16kB×2区間で32kB、すなわち物理ページ2つ分のデータを書込む。
(S907)次に、CPU101において、書込み制御部112は、S906での書込みに応じて制御情報記憶部117のアドレス変換テーブル117a、物理ブロック管理テーブル117bを更新する。さらに、アドレス変換テーブル117a、物理ブロック管理テーブル117bの更新内容にあわせて、不揮発性メモリ120に格納しているシステム情報も更新し、書込みコマンド処理を終了する。
図11に、書込みコマンド処理実施後のアドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4、物理ブロック#5の状態を示す。ホスト装置200から受信した論理アドレス「3」および「4」の書込みデータは物理ブロック#4の物理ページ#254および#255に格納されている。
以降、ここで書き込んだ論理アドレス「3」および「4」のデータは、物理的に破棄することが必要となる機密データであるものとして、該機密データが物理的に破棄されるまでの動作を順に説明していく。
[1−2−1−3.データの破棄登録動作]
次に、不揮発性記憶装置100におけるデータの破棄登録動作について説明する。すなわち、S803において、コマンドの種類が破棄登録コマンドであった場合の動作について説明する。
図12は、本実施の形態における不揮発性記憶装置100の破棄登録コマンド受信時の動作を示すフローチャートである。
本フローチャートの開始時点においては、図11に示す状態(アドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4は全ページ書込み済、物理ブロック#5は全ページ消去済)であるものとして、以下説明する。
不揮発性記憶装置100に書き込んだ機密データを物理的に破棄するために、ホスト装置200は破棄登録コマンドを発行し、破棄対象データの論理アドレスを指定して不揮発性記憶装置100のメモリコントローラ110に通知する。
(S1201)メモリコントローラ110のホストインタフェース部111は、破棄登録コマンドとデータ破棄対象の論理アドレスを受信する。破棄対象データの論理アドレスが「3」から「4」までの2区間であった場合について、以下登録破棄動作を説明する。
(S1202)次に、CPU101において、データ破棄制御部114は、制御情報記憶部117のアドレス変換テーブル117aを参照し、指定された論理アドレスに対応する物理ブロックアドレス302を取得する。指定された論理アドレスである「3」および「4」に対応する物理ブロックアドレスは「4」である。
(S1203)次に、CPU101において、データ破棄制御部114は、制御情報記憶部117の破棄対象データ情報117cにS1202で取得した物理ブロックアドレス「4」を登録する。すなわち、破棄対象データ情報117cの破棄対象ブロック登録数306を「0」から「1」に更新し、破棄対象ブロック#1アドレス3071を「登録なし」から「4(すなわち、S1202で取得した物理ブロックアドレス)」に更新する。さらに、破棄対象データ情報117cの更新内容にあわせて、不揮発性メモリ120に格納しているシステム情報も更新する。
(S1204)次に、CPU101において、データ破棄制御部114は、制御情報記憶部117のアドレス変換テーブル117aにおいて、S1201で取得した論理ブロックアドレス「3」および「4」を無効化する。すなわち、アドレス変換テーブル117aの論理アドレス301が「3」および「4」に対応する物理ブロックアドレス302、および物理ページアドレス303を「未割当」に更新する。さらに、アドレス変換テーブル117aの更新内容にあわせて、不揮発性メモリ120に格納しているシステム情報も更新し、破棄登録コマンド処理を終了する。
図13に、破棄登録コマンド処理実施後のアドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4、物理ブロック#5の状態を示す。ホスト装置200から受信した論理アドレス「3」および「4」
に対応するデータを格納していた物理ブロック#4は、破棄対象データ情報117cに登録されている。アドレス変換テーブル117aにおいて、論理アドレス「3」および「4」には物理アドレスが未割当となっているため、物理ブロック#4の物理ページ#254および#255に格納されている機密データは論理的に無効となっているが、物理的には存在している状態である。
図13の状態でホスト装置200が論理アドレス「3」および「4」の読出しを行った場合、すなわち、S803において、コマンドの種類が読出しコマンドであった場合は、メモリコントローラ110のCPU101において、読出し制御部(図示せず)は、制御情報記憶部117のアドレス変換テーブル117aを参照し、指定された論理アドレスに対応する物理ブロックアドレス302が「未割当」となっていることを確認し、論理アドレス「3」および「4」のデータとして所定の固定値(例えば全て0xFF)をホストインタフェース部111経由でホストに出力する。従って、ホストインタフェース部111を介して物理ブロック#4の物理ページ#254および#255に格納されている機密データがホスト装置200に出力されることはない。
図12のフローチャートで示すように、本実施の形態では破棄対象データ情報117cを更新するときに、不揮発性メモリ120に格納されているシステム情報も更新している。これによって、破棄登録コマンドの処理中に意図しない電源遮断が発生したときにも、不揮発性記憶装置100は再度電源オンの動作を行ったときに、不揮発性メモリ120に格納されているシステム情報から破棄対象データ情報117cを復旧し、破棄対象ブロックに対するデータ破棄処理を着実に継続することができる。
また、図12のフローチャートで示すように、本実施の形態では破棄対象データ情報117cを更新した後にアドレス変換テーブル117aにおいて指定論理アドレスのデータを無効化している。これによって、破棄対象データ情報117cの更新が完了する前に意図しない電源遮断が発生したときには、ホスト装置200は指定論理アドレスを読出すことで機密データが残っていることを検出できるので、再度破棄登録の処理からやり直すことができ、データ破棄処理を着実に継続することができる。
[1−2−1−4.データの破棄状況取得動作]
次に、不揮発性記憶装置100におけるデータの破棄状況取得動作について説明する。
すなわち、S803において、コマンドの種類が破棄状況取得コマンドであった場合の動作について説明する。
図14は、本実施の形態における不揮発性記憶装置100の破棄状況取得コマンド受信時の動作を示すフローチャートである。
図15に破棄状況取得コマンドの出力データ400を示す。出力データ400は、少なくとも破棄対象ブロック登録数401、必要ウエイト時間402、累積破棄ブロック数403、累積破棄時間404を格納するテーブルである。
本フローチャートの開始時点においては、図13に示す状態(アドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4は全ページ書込み済、物理ブロック#5は全ページ消去済)であるものとし
て、以下説明する。
不揮発性記憶装置100に書き込んだ機密データの破棄状況を確認するために、ホスト装置200は、破棄状況取得コマンドを発行し、不揮発性記憶装置100のメモリコントローラ110に通知する。
(S1401)メモリコントローラ110のホストインタフェース部111は、破棄状況取得コマンドを受信したことをCPU101に通知する。CPU101において、データ破棄制御部114は、制御情報記憶部117の破棄対象データ情報117cを参照して破棄対象ブロック登録数306の値を取得し、出力値(破棄登録ブロック登録数401)とする。
さらに、データ破棄制御部114は、破棄対象ブロック#1のアドレス307の値を参照して破棄対象ブロックの物理ブロックアドレスを取得する。そして、物理ブロック管理テーブル117bを参照することで、破棄対象ブロックに含まれる有効データページ数を取得し、該破棄対象ブロックに対して後述するGC/データ破棄処理に必要となる時間を算出し、出力値(必要ウエイト時間402)とする。なお、GC/データ破棄処理に必要となる時間は(有効データページ数)×(1ページあたりのコピー時間[固定値])+(その他の処理時間[固定値])所定で算出する。
さらに、データ破棄制御部114は、制御情報記憶部117の破棄対象データ情報117cを参照して累積破棄ブロック数(図示せず)を取得し、出力値(累積破棄ブロック数403)とする。ここで、累積破棄ブロック数とは、破棄登録コマンドによって登録された破棄対象ブロックが後述するGC/データ破棄処理を実施された数であり、不揮発性記憶装置100が製造されてからの累積値である。
さらに、データ破棄制御部114は、制御情報記憶部117の破棄対象データ情報117cを参照して累積破棄時間(図示せず)を取得し、出力値(累積破棄時間404)とする。ここで、累積破棄時間とは、破棄登録コマンドによって登録された破棄対象ブロックが後述するGC/データ破棄処理を実施するときにかかった時間であり、不揮発性記憶装置100が製造されてからの累積値である。実際にかかった時間を測定して加算して決定してもよいし、各破棄対象ブロックで算出した必要ウエイト時間を加算してもよい。
(S1402)次に、ホストインタフェース部111は、ホスト装置200にステップS1401で準備した出力データ400の各値を出力する。
以上の処理を行うことにより、破棄状況取得コマンドの出力データ400は図15のようになる。破棄対象ブロック登録数401は「1」である。この「1」個の破棄対象ブロックのデータ破棄処理を実行するのに必要な待ち時間である必要ウエイト時間402は「500」msである。また、これまでにデータ破棄処理を実行した数である累積破棄ブロック数は「328」個であり、これらのデータ破棄処理に要した累積破棄時間404は「131200」msである。
ホスト装置200は、破棄対象ブロック登録数401および必要ウエイト時間402を参照することで、現時点で残っているデータ破棄処理の状態を確認でき、必要に応じて不揮発性記憶装置100に後述するGC/データ破棄処理を実行させることができる。
さらに、ホスト装置200は、累積破棄ブロック数403および累積破棄時間404を参照することで、データ破棄処理に要した処理量を把握することができる。ホスト装置200の開発中であれば、処理量を確認しつつデータ破棄処理の実施方法を調整する(例えば、複数の機密データを一括して破棄登録する、など)ことが可能となる。
[1−2−1−5.GC/データ破棄動作]
次に、不揮発性記憶装置100におけるGC/データ破棄動作について説明する。すなわち、S805、S807、S904、S905における動作の詳細について説明する。
図16は、本実施の形態におけるGC/データ破棄処理の動作を示すフローチャートである。
本フローチャートの開始時点においては、図13に示す状態(アドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4は全ページ書込み済、物理ブロック#5は全ページ消去済)であるものとし
て、以下説明する。
不揮発性記憶装置100に書き込んだ機密データの物理的な破棄を促すために、ホスト装置200は、一時的に不揮発性記憶装置100に対するコマンド発行を停止した状態で待ち、不揮発性記憶装置100のメモリコントローラ110にコマンド発行がないことを通知する。
(S1601)メモリコントローラ110のCPU101において、GC制御部113は、処理対象ブロックの物理ブロックアドレスを取得する。S805またはS904の処理であれば処理対象ブロックは破棄対象ブロックであり、制御情報記憶部117の破棄対象データ情報117cの破棄対象ブロック#1アドレス3071を参照して物理ブロックアドレス「4」を取得する。S807またはS905であれば処理対象ブロックはGC対象ブロックであり、制御情報記憶部117の物理ブロック管理テーブル117bを参照して物理ブロックアドレスを取得する。
(S1602)次に、CPU101において、GC制御部113は、物理ブロック管理テーブル117bを参照し、物理ブロック用途304が「空き」である物理ブロック#5を取得する。
(S1603)次に、CPU101において、GC制御部113は、処理対象ブロック(物理ブロック#4)に含まれる全ての有効データを空きブロック(物理ブロック#5)にコピーする。GC制御部113はアドレス変換テーブル117aを参照し、物理ブロックアドレス302が「4」になっているエントリを検索する。そして、物理ブロックアドレス302が「4」となっているエントリの物理ページアドレス303を参照し、該物理ページ(物理ページ#253)のデータを読出し、空きブロック(物理ブロック#5)の消去済ページに書込む(コピーする)。
(S1604)次に、CPU101において、GC制御部113は、ステップS1603で書込んだデータ(物理ブロック#5のデータ)を有効にするために、制御情報記憶部117のアドレス変換テーブル117a、物理ブロック管理テーブル117bを更新する。さらに、アドレス変換テーブル117a、物理ブロック管理テーブル117bの更新内容にあわせて、不揮発性メモリ120に格納しているシステム情報も更新する。
図17に、ステップS1604の処理実施後のアドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4、物理ブロック#5の状態を示す。アドレス変換テーブル117aにおいて論理アドレス#2047に対応する物理アドレスは物理ブロック#5の物理ページ#0に更新されている。物理ブロック管理テーブル117bにおいて、物理ブロック#4の用途は「空き」、物理ブロック#5の用途は「データ」で有効データページ数は「1」に更新されている。
(S1605)次に、CPU101において、データ破棄制御部114は、ステップS1604で「空き」となった物理ブロック#5を物理消去する。これにより、物理ブロック#5の物理ページ#254および物理ページ#255に存在していた機密データは物理的に破棄される。
(S1606)次に、CPU101において、データ破棄制御部114は、制御情報記憶部117の破棄対象データ情報117cを更新する。破棄対象ブロック登録数306を「1」から「0」に更新し、破棄対象ブロック#1アドレス3071を「4」から「登録なし」に更新する。さらに、破棄対象データ情報117cの更新内容にあわせて、不揮発性メモリ120に格納しているシステム情報も更新し、GC/データ破棄処理を終了する。
図18に、GC/データ破棄処理実施後のアドレス変換テーブル117a、物理ブロック管理テーブル117b、破棄対象データ情報117c、物理ブロック#4、物理ブロック#5の状態を示す。物理ブロック#5の物理ページ#254および物理ページ#255に存在していた機密データは物理消去によって物理的に破棄されている。
図16のフローチャートで示すように、本実施の形態では処理対象ブロックを物理消去した後に破棄対象データ情報117cを更新している。これによって、GC/データ破棄処理中に意図しない電源遮断が発生したときにも、不揮発性記憶装置100は再度電源オンの動作を行ったときに、不揮発性メモリ120に格納されているシステム情報から破棄対象データ情報117cを復旧し、破棄対象ブロックに対するデータ破棄処理を着実に継続することができる。
また、図16のフローチャートで示すように、処理対象が破棄対象ブロックではなくてGC対象ブロックであった場合にも、ステップS1605でコピー元の物理ブロックを物理消去している。これによって、不揮発性メモリ120に格納された機密データが破棄登録コマンドで登録される前に、不揮発性記憶装置100内部のガベージコレクション処理によって別物理ブロックに複製され、機密データが物理的に増殖していくことを防止することができる。
図19に、GC/データ破棄処理後に破棄状況取得コマンドが発行されたときの出力データの例を示す。出力データ400において、破棄対象ブロック登録数401は「0」に更新されている。また、破棄対象ブロックがないため、データ破棄処理の実行は不要であり、必要ウエイト時間402は「0」msとなっている。また、これまでにデータ破棄処理を実行した数である累積破棄ブロック数は1つ増加して「329」個に更新されており、これらのデータ破棄処理に要した累積破棄時間404も「131700」msに更新されている。
以上のように不揮発性記憶装置100は動作する。
次に、ホスト装置200の動作を以下に説明する。
[1−2−2−1.電源オン後の動作]
ホスト装置200における電源オン後の動作について説明する。
図20は、本実施の形態におけるホスト装置200の電源オン後の動作を示すフローチャートである。
(S2001)ホスト装置200は電源オン後に初期化処理(ROM213に格納されたプログラムの実行、記憶部217に格納された情報の読出し、RAM212へのプログラムのロード、メモリインタフェース部214の設定、等)を行い、不揮発性記憶装置100への各種コマンドを発行可能な状態にする。
(S2002)次に、ホスト装置200のCPU211は不揮発性記憶装置100に対して、破棄状況取得コマンドを発行する。
(S2003)次に、ホスト装置200のCPU211は破棄状況取得コマンドの出力データ400を参照し、不揮発性記憶装置100に破棄対象ブロックが残存しているかどうかを判定する。破棄対象ブロック登録数401が1以上である場合(Yesの場合)はステップS2004の処理を進め、破棄対象ブロック登録数401が0である場合(Noの場合)は初期化処理を終了して、ホスト装置200はユーザからの入力待ち状態に遷移する。
(S2004)次に、ホスト装置200のCPU211は破棄状況取得コマンドの出力データ400を参照し、必要ウエイト時間402に示される時間だけ(不揮発性記憶装置100にコマンドを発行せずに)待ち、ステップS2002の処理に進む。
図20のフローチャートで示すように、本実施の形態では、電源遮断等によって不揮発性記憶装置100に破棄対象ブロックが残存している場合であっても、電源オン直後に速やかにデータ破棄処理を実施することができる。
[1−2−2−2.画像印刷処理の動作]
ホスト装置200における画像印刷処理の動作について説明する。
図21は、本実施の形態におけるホスト装置の画像印刷処理の動作を示すフローチャートである。
(S2101)ホスト装置200のCPU211は、外部インタフェース部218を介して、別のホスト装置から印刷対象となる画像データを受信する。ここで、画像データは機密データであり、印刷後に速やかに破棄することが求められているものとする。
(S2102)次に、ホスト装置200のCPU211は不揮発性記憶装置100に対して、書込みコマンドを発行し、受信した画像データを不揮発性記憶装置100に格納する。
(S2103)次に、ホスト装置200はユーザからの画像データの印刷指示があるまで待つ。ユーザがホスト装置200の入力部215を介して、画像データの印刷を指示したら(Yesの場合)、ステップS2104の処理に進む。
(S2104)次に、ホスト装置200のCPU211は不揮発性記憶装置100に対して、読出しコマンドを発行して格納していた画像データを取得し、印刷部220にて印刷する。
(S2105)次に、ホスト装置200のCPU211は不揮発性記憶装置100に対して、格納していた画像データの論理アドレスを指定して破棄登録コマンドを発行する。
(S2106)次に、ホスト装置200のCPU211は不揮発性記憶装置100に対して、破棄状況取得コマンドを発行する。
(S2107)次に、ホスト装置200のCPU211は破棄状況取得コマンドの出力データ400を参照し、不揮発性記憶装置100に破棄対象ブロックが存在しているかどうかを判定する。破棄対象ブロック登録数401が1以上である場合(Yesの場合)はステップS2108の処理を進め、破棄対象ブロック登録数401が0である場合(Noの場合)は画像処理を終了する。
(S2108)次に、ホスト装置200のCPU211は破棄状況取得コマンドの出力データ400を参照し、必要ウエイト時間402に示される時間だけ(不揮発性記憶装置100にコマンドを発行せずに)待ち、ステップS2106の処理に進む。
図21のフローチャートで示すように、本実施の形態では、画像データ(機密データ)が不要となった直後に、画像データを物理的に破棄している。
[1−2−2−3.電源オフ処理の動作]
ホスト装置200における電源オフ処理の動作について説明する。
図22は、本実施の形態におけるホスト装置200の電源オフの動作を示すフローチャートである。
(S2201)ホスト装置200が入力部215を介してホスト装置200のユーザから電源オフの要求を受信すると、ホスト装置200のCPU211は不揮発性記憶装置100に対して、破棄状況取得コマンドを発行する。
(S2202)次に、ホスト装置200のCPU211は破棄状況取得コマンドの出力データ400を参照し、不揮発性記憶装置100の内部に破棄対象ブロックが残存しているかどうかを判定する。破棄対象ブロック登録数401が1以上である場合(Yesの場合)はステップS2003の処理を進め、破棄対象ブロック登録数401が0である場合(Noの場合)はステップS2004の処理に進む。
(S2203)次に、ホスト装置200のCPU211は破棄状況取得コマンドの出力データ400を参照し、必要ウエイト時間402に示される時間だけ(不揮発性記憶装置100にコマンドを発行せずに)待ち、ステップS2201に進む。
(S2204)ホスト装置200は終了処理(RAM212に生成された情報の記憶部217への格納、表示部216への通知情報表示、等)を行い、電源オフ可能な状態に遷移する。その後、電源オフにする。
図22のフローチャートで示すように、本実施の形態では、エラーによる処理中断等によって不揮発性記憶装置100に破棄対象ブロックが残存している場合であっても、電源オフ前に着実にデータ破棄処理を実施することができる。
[1−3.効果等]
従来の不揮発性記憶装置では、ホスト装置側から不揮発性記憶装置に格納された機密データの状態を把握し、物理的に破棄するような制御を実施することができなかった。
そこで、本実施の形態に係るメモリコントローラ110は、データ破棄制御部114を含み、ホスト装置側から破棄登録した機密データが残存しているか否かを確認できるようにした。さらに、ホスト装置側から破棄登録した機密データの物理消去を指示ことができるようにした。
また、本実施の形態に係るホスト装置200は、機密データが不要になった直後に機密データの物理消去を指示し、物理消去が完了したことを確認する。従って、不要な機密データを速やかに物理的に破棄するような、セキュリティに配慮した対応が可能である。
(他の実施の形態)
以上のように、本開示の技術の例示として、実施の形態1を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。
そこで、以下、他の実施の形態を例示する。
実施の形態1において、不揮発性記憶装置100はホスト装置200からのコマンド受信がない場合、直ちにデータ破棄動作を開始させたが、コマンド受信がない状態が所定時間継続したことを確認した後にデータ破棄の動作を開始させてもよい。これにより、ホスト装置200がデータ破棄動作よりも優先して実施したいコマンドがあった場合に、該コマンドをすぐに受信して処理することが可能となる。
実施の形態1において、ホスト装置200が不揮発性記憶装置100にデータ破棄動作を開始させるためのトリガとして、不揮発性記憶装置100に対してコマンドを発行せずにウエイトする方法を採用したが、この方法に限定されない。ホストが破棄実行コマンドを発行したときに、不揮発性記憶装置100がデータ破棄処理を実行するようにしてもよい。
実施の形態1において、メモリコントローラ110及びホスト装置200において、各ブロックは、LSI(Large―Scale Integration)などの半導体回路により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。半導体回路は、所定の機能をハードウェア構成のみで実現してもよいし、又はソフトウェアと協働して所定の機能を実現するように構成されてもよい。例えば、半導体回路は、ASIC(Application specific Integrated Circuit)、FPGA(Field Programable Gate Array)、CPU、MPU(Micro−Processing Unit)、マイクロコンピュータで構成される。
なお、ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGAや、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
実施の形態1おける処理方法の実行順序は、必ずしも、上記実施の形態の記載に制限されるものではなく、本開示の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
実施の形態1に係るメモリコントローラ110、メモリコントローラ110と不揮発性メモリ120とを含む不揮発性記憶装置100、不揮発性記憶装置100とホスト装置200とを含む不揮発性記憶システム1、実施の形態1において実行されるメモリ制御方法、かかるメモリ制御方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本開示の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto−Optical Disc)、DVD(Digital Versatile Disc)、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面及び詳細な説明を提供した。
したがって、添付図面及び詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲又はその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
本開示は、不揮発性メモリを組み込んだ記憶装置に適用可能である。具体的には、SSD、メモリカード、フラッシュドライブ、組込み用メモリデバイス等に適用可能である。
1 不揮発性記憶システム
100 不揮発性記憶装置
101 CPU
110 メモリコントローラ
111 ホストインタフェース部
112 書込み制御部
113 GC制御部
114 データ破棄制御部
115 ECC回路
115a 誤り訂正制御部
116 メモリインタフェース部
117 制御情報記憶部
117a アドレス変換テーブル
117b 物理ブロック管理テーブル
117c 破棄対象データ情報
118 RAM
119 ROM
120 不揮発性メモリ
121 物理ブロック
122 物理ページ
200 ホスト装置
211 CPU
212 RAM
213 ROM
214 メモリインタフェース部
215 入力部
216 表示部
217 記憶部
218 外部インタフェース部
219 スキャナ
220 印刷部
301 論理アドレス
302 物理ブロックアドレス
303 物理ページアドレス
304 物理ブロック用途
305 有効データページ数
306 破棄対象ブロック登録数
3071 破棄対象ブロック#1アドレス
3072 破棄対象ブロック#2アドレス
400 出力データ
401 破棄対象ブロック登録数
402 必要ウエイト時間
403 累積破棄ブロック数
404 累積破棄時間

Claims (9)

  1. 物理ブロックを複数有する不揮発性メモリに対しデータの書込み及び読込みを行うメモリコントローラであって、
    外部装置が指定する論理アドレスと前記物理ブロックとの対応を管理するアドレス変換テーブルと、前記外部装置が前記論理アドレスで指定した破棄対象のデータを前記物理ブロックの情報に変換した破棄対象データ情報とを管理し、前記破棄対象データ情報に基づいてデータの破棄を行う制御部と、
    外部装置と接続し、データの送受信を行うホストインタフェース部と、
    を備え、
    前記制御部は、
    前記ホストインタフェース部から、データの破棄状況取得指示を受信したとき、
    前記破棄対象データ情報を参照し、未処理の破棄対象のデータに関する情報の出力を行う、
    メモリコントローラ。
  2. 前記制御部は、前記外部装置からのコマンドを受信していないときに、前記破棄対象データ情報に基づいて、データの物理的な破棄を行う、
    請求項1に記載のメモリコントローラ。
  3. 前記制御部は、データの物理的な破棄のために前記物理ブロックの物理消去を行う、
    請求項2に記載のメモリコントローラ。
  4. 前記制御部は、
    前記ホストインタフェース部から、データの破棄状況取得指示を受信したとき、
    前記破棄対象データ情報を参照し、未処理の破棄対象データが格納されている物理ブロック数の出力を行う、
    請求項1に記載のメモリコントローラ。
  5. 前記制御部は、
    前記ホストインタフェース部から、データの破棄状況取得指示を受信したとき、
    前記破棄対象データ情報を参照し、未処理の破棄対象データを処理するために必要となる予測時間の出力を行う、
    請求項1に記載のメモリコントローラ。
  6. 請求項1に記載のメモリコントローラと、
    前記メモリコントローラに接続され、前記メモリコントローラによりデータが記録される不揮発性メモリと、
    を備える、不揮発性記憶装置。
  7. 請求項1に記載のメモリコントローラと、
    前記メモリコントローラに接続され、前記メモリコントローラによりデータが記録される不揮発性メモリと、
    前記メモリコントローラに接続され、前記メモリコントローラに対しデータの破棄状況取得指示を送信する外部装置と、
    を備える不揮発性記憶システム。
  8. 前記外部装置は、前記メモリコントローラから未処理の破棄対象のデータに関する情報を取得し、未処理の破棄対象データが存在する場合には前記メモリコントローラへのコマンド発信を一定時間停止する、
    請求項7に記載の不揮発性記憶システム。
  9. 物理ブロックを複数有する不揮発性メモリに対し、外部装置が指定する論理アドレスと前記物理ブロックとの対応を管理するアドレス変換テーブルと、前記外部装置が前記論理アドレスで指定した破棄対象のデータを前記物理ブロックの情報に変換した破棄対象データ情報とを保持するメモリを用いて、データの破棄を行うメモリ制御方法であって、
    外部装置からデータの破棄状況取得指示を受信したとき、
    前記破棄対象データ情報を参照し、未処理の破棄対象のデータに関する情報の出力を行う、
    メモリ制御方法。
JP2018083668A 2018-04-25 2018-04-25 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法 Pending JP2019191910A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018083668A JP2019191910A (ja) 2018-04-25 2018-04-25 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
US16/379,124 US20190335062A1 (en) 2018-04-25 2019-04-09 Memory controller, non-volatile storage device, non-volatile storage system, and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018083668A JP2019191910A (ja) 2018-04-25 2018-04-25 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2019191910A true JP2019191910A (ja) 2019-10-31

Family

ID=68291719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018083668A Pending JP2019191910A (ja) 2018-04-25 2018-04-25 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法

Country Status (2)

Country Link
US (1) US20190335062A1 (ja)
JP (1) JP2019191910A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7475989B2 (ja) 2020-06-26 2024-04-30 キオクシア株式会社 メモリシステムおよび制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328281B (zh) * 2021-11-30 2023-11-14 苏州浪潮智能科技有限公司 固态硬盘异常掉电处理方法、装置、电子设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI489466B (zh) * 2011-06-15 2015-06-21 Phison Electronics Corp 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
JP2015204073A (ja) * 2014-04-16 2015-11-16 キヤノン株式会社 情報処理装置、情報処理端末、情報処理方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7475989B2 (ja) 2020-06-26 2024-04-30 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
US20190335062A1 (en) 2019-10-31

Similar Documents

Publication Publication Date Title
JP5917163B2 (ja) 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US8687220B2 (en) Image forming apparatus, information processing device, and non-transitory computer readable medium storing program
JP2017174387A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
JP2012018501A (ja) 情報処理装置、情報処理装置の制御方法、プログラム
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP6875808B2 (ja) 情報処理装置
JP2019191910A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
JP2018156263A (ja) メモリシステム、メモリコントローラおよびメモリシステムの制御方法
US9442843B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP6389616B2 (ja) 情報処理装置と、その制御方法
JP4826610B2 (ja) 画像処理装置および画像消去プログラム
JP2010009553A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2018063676A (ja) 情報処理装置及びその制御方法、並びにプログラム
TWI769193B (zh) 記憶體系統的操作方法
JP2015204071A (ja) 情報処理装置、情報処理方法およびプログラム
JP2020004133A (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP2014138265A (ja) 画像形成装置
JP2020004134A (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP4562433B2 (ja) 画像処理装置
JP2012088937A (ja) 画像処理装置、画像処理装置のメモリ管理方法、画像処理装置のメモリ管理プログラム及び記録媒体
JP2010176399A (ja) Nand型フラッシュメモリデバイス及びnand型フラッシュメモリのデータ消去方法
JP2017027203A (ja) 記憶媒体制御装置、記憶媒体制御プログラム及び記憶媒体制御方法
JP2022139037A (ja) ログ保存システム、ログ保存方法、およびプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20190123