(57)【要約】【課題】  電子機器から取り外されたことを検出できるストレージ装置及び方法を提供すること。【解決手段】  実施形態によるストレージ装置は、メモリと、前記メモリのアクセスを制御するコントローラ回路と、電子機器に接続され得るコネクタ部と、を具備するストレージ装置であって、前記コントローラ回路は前記コネクタ部の信号線の状態に基づいて、前記電子機器からの前記コネクタ部の取り外しを検出する。【選択図】  図３
2020144689.tif 000002
【特許請求の範囲】
【請求項１】
第１メモリと、
前記第１メモリのアクセスを制御するコントローラ回路と、
電子機器に接続され得るコネクタ部と、
を具備し、
前記コントローラ回路は前記コネクタ部の信号線の状態に基づいて、前記電子機器からの前記コネクタ部の取り外しを検出するストレージ装置。
【請求項２】
前記コントローラ回路は、検出した前記コネクタ部の取り外しの履歴を記録する請求項１記載のストレージ装置。
【請求項３】
前記履歴は前記取り外しの検出タイミングに関する情報を含む請求項２記載のストレージ装置。
【請求項４】
前記コントローラ回路は、前記コネクタ部の取り外しを検出すると、前記第１メモリに格納されているデータを削除する請求項１記載のストレージ装置。
【請求項５】
前記データを削除するかしないかを示す情報を保存する第２メモリをさらに具備する請求項４記載のストレージ装置。
【請求項６】
前記コントローラ回路は、前記コネクタ部の取り外しを検出した後に接続された新たな電子機器から前記第１メモリの或るデータのリードコマンドを受信すると、前記或るデータと異なるデータを前記新たな電子機器へ供給する請求項１記載のストレージ装置。
【請求項７】
前記或るデータと異なる前記データを前記新たな電子機器へ供給するかしないかを示す情報を保存する第２メモリをさらに具備する請求項６記載のストレージ装置。
【請求項８】
前記コントローラ回路が前記コネクタ部の取り外しを検出した後に接続された新たな電子機器から送信された前記第１メモリ内のデータへのアクセス要求を許可するかしないかを示す情報を保存する第２メモリ、
をさらに具備する請求項１記載のストレージ装置。
【請求項９】
前記コントローラ回路は、前記コネクタ部の取り外しを検出した後前記新たな電子機器から送信された前記アクセス要求が前記情報により許可されないアクセス要求である場合、前記アクセス要求を拒否する請求項８記載のストレージ装置。
【請求項１０】
前記コントローラ回路は、電子機器への前記コネクタ部の取り付けも検出する請求項１記載のストレージ装置。
【請求項１１】
前記コントローラ回路は検出した前記コネクタ部の取り外し及び前記コネクタ部の取り付けの履歴を記録する請求項１０記載のストレージ装置。
【請求項１２】
前記履歴は前記取り外しの検出タイミングに関する情報及び前記取り付けの検出タイミングに関する情報を含む請求項１１記載のストレージ装置。
【請求項１３】
前記コントローラ回路は、記録した前記コネクタ部の取り外しの履歴及び前記コネクタ部の取り付けの履歴を電子機器へ通知する請求項１１記載のストレージ装置。
【請求項１４】
メモリと、前記メモリのアクセスを制御するコントローラ回路と、電子機器に接続され得るコネクタ部とを具備するストレージ装置の制御方法であって、
前記コネクタ部の信号線の状態に基づいて、前記電子機器からの前記コネクタ部の取り外しを前記コントローラ回路により検出するストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はＨＤＤ（ハードディスクドライブ）やＳＳＤ（ソリッドステートドライブ）等を含むストレージ装置及び当該ストレージ装置の制御方法に関する。
【背景技術】
【０００２】
ストレージ装置の容量が増えており、ストレージ装置が格納しているデータの保護の重要性が増している。データ保護の一例は、ストレージ装置がパーソナルコンピュータ等の電子機器から取り外された場合、データを保護することである。従来のストレージ装置はパーソナルコンピュータから取り外されたことを検出する機能を備えていない。そのため、ストレージ装置の取り外しを検出してデータ保護動作を実行する機能をパーソナルコンピュータ及びストレージ装置に組み込むことが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２―６９１５９号公報
【特許文献２】特開２０１０―１４６５００号公報
【特許文献３】特開２０１２―５３５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、電子機器から取り外されたことを検出できるストレージ装置及び当該ストレージ装置の制御方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態によるストレージ装置は、メモリと、前記メモリのアクセスを制御するコントローラ回路と、電子機器に接続され得るコネクタ部と、を具備するストレージ装置であって、前記コントローラ回路は前記コネクタ部の信号線の状態に基づいて、前記電子機器からの前記コネクタ部の取り外しを検出する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るストレージ装置を含むシステム全体の構成の一例を示す図である。
【図２】第１実施形態に係るストレージ装置の構成の一例を示す図である。
【図３】第１実施形態に係るストレージ装置の接続検出器の一例を示す図である。
【図４】第２実施形態に係るストレージ装置のログ記録動作の一例を示すフローチャートである。
【図５】第２実施形態に係る接続検出ログの一例を示す図である。
【図６】第２実施形態に係るストレージ装置のログ通知動作の一例を示すフローチャートである。
【図７】第３実施形態に係るストレージ装置のログ記録動作の一例を示すフローチャートである。
【図８】第３実施形態に係るストレージ装置のログ記憶領域の一例を示す図である。
【図９】第３実施形態に係るストレージ装置のログの一例を示す図である。
【図１０】第４実施形態に係るストレージ装置の管理テーブルの更新動作の一例を示すフローチャートである。
【図１１】第４実施形態に係る管理テーブルの一例を示す図である。
【図１２】第６実施形態に係るストレージ装置の制御方法の一例を示すフローチャートである。
【図１３】第６実施形態に係るストレージ装置の動作モード指定コマンドの一例を示す図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介して接続されることも意味する。
【０００８】
［第１実施形態］
図１は第１実施形態によるストレージ装置を含む情報処理システムの構成の一例を示すブロック図である。情報処理システムは、ホスト１０とストレージ装置２０とを含む。ストレージ装置２０はＨＤＤ又はＳＳＤ等の大容量の不揮発性記憶装置であり、情報処理システムのメインストレージとして使用され得る。第１実施形態では、ストレージ装置２０はＳＳＤであるとする。以下、ストレージ装置２０をＳＳＤ２０と称する。ＳＳＤ２０は、不揮発性半導体メモリ、例えばＮＡＮＤ型フラッシュメモリを備え、フラッシュメモリにデータが書き込まれ、フラッシュメモリからデータが読み出される。第１実施形態では、不揮発性半導体メモリとしてＮＡＮＤ型フラッシュメモリを用いるが、ＮＯＲ型フラッシュメモリ等の他の不揮発性半導体メモリを用いてもよい。
【０００９】
ホスト１０は、パーソナルコンピュータやサーバであってもよいが、ここでは、パーソナルコンピュータであるとする。ＳＳＤ２０は内蔵タイプでも外付けタイプでも良いが、第１実施形態では、ＳＳＤ２０は内蔵タイプであるとする。ＳＳＤ２０はホスト１０の筐体に内蔵されている。
【００１０】
ホスト１０とＳＳＤ２０とを電気的に相互接続するためのインターフェースとしては、例えばSerial Advanced Technology Attachment（ＳＡＴＡ）（登録商標）、PCI Express（登録商標）（ＰＣＩｅ（登録商標）とも称する）、Serial Attached SCSI（ＳＡＳ）（登録商標）等がある。ＳＡＴＡの規格では、基板の形状に関してＵ．２、Ｍ．２、ｍＳＡＴＡ等の種類を含む。ＰＣＩｅの規格では、基板の形状に関してＡＩＣ、Ｍ．２、Ｕ．２等の種類を含む。ＳＡＳの規格では、基板の形状に関してＵ．２等の種類を含む。本実施形態は、インターフェースについては制限がなく、どのインターフェースを用いても良い。ＳＳＤ２０はホスト１０から供給される電源により駆動される。
【００１１】
ＳＳＤ２０は、フラッシュメモリ２４−１，２４−２（フラッシュメモリ２４と総称することもある）及びコントローラ回路２２を備える。コントローラ回路２２はフラッシュメモリ２４のリード及びライトを制御する。各フラッシュメモリ２４はメモリチップとして形成されている。ここでは、一例として２つのフラッシュメモリ２４−１，２４−２が備えられているが、フラッシュメモリの数は２に限定されず、より多数でも良い。各フラッシュメモリ２４は、メモリセル当たり１ビット又は複数ビットを格納可能に構成されている。また、フラッシュメモリ２４は、後述する接続検出ログ、アクセスログ、管理テーブルも格納する。
【００１２】
コントローラ回路２２は、互いにバスライン４２により相互に接続されているＣＰＵ３２、ホストＩ／Ｆ回路３４、ＮＡＮＤ  Ｉ／Ｆ回路３６、ＤＲＡＭ  Ｉ／Ｆ回路３８及びリアルタイムクロック（ＲＴＣ）４０を備える電子回路部品である。コントローラ回路２２は、System-on-a-chip（ＳｏＣ）のようなハードウェアによって実現され得る。ＳＳＤ２０は、揮発性メモリであるランダムアクセスメモリ、例えばＤＲＡＭ２６をコントローラ回路２２の外部に備えていてもよい。あるいは、ＤＲＡＭ２６の代わりに、より高速アクセスが可能なランダムアクセスメモリ、例えばＳＲＡＭがコントローラ回路２２に内蔵されていてもよい。なお、第１実施形態では、ＲＴＣ４０は必須の構成ではなく、ＲＴＣ４０が省略されていても良い。
【００１３】
ＤＲＡＭ２６（又はＳＲＡＭ）には、フラッシュメモリ２４に書き込まれるデータを一時的に格納するためのバッファ領域であるライトバッファと、フラッシュメモリ２４から読み出されたデータを一時的に格納するためのバッファ領域であるリードバッファと、アドレス変換テーブル（論理アドレス／物理アドレス変換テーブルとも称する）として機能するルックアップテーブル（ＬＵＴと称する）のキャッシュ領域と、ＳＳＤ２０の処理中に用いられる各種の値や各種のシステム管理情報の格納領域が設けられていてもよい。ＬＵＴは、ホスト１０が指定する論理アドレスとフラッシュメモリ２４の物理アドレスとの間のマッピングを管理し、システムがシャットダウンする前にＤＲＡＭ２６（又はＳＲＡＭ）から読み出され、フラッシュメモリ２４に書き込まれる。システムが立ち上がると、フラッシュメモリ２４からＬＵＴが読み出され、ＤＲＡＭ２６（又はＳＲＡＭ）に書き込まれる。
【００１４】
ＳＳＤ２０は、電源回路２８も備える。電源回路２８はホスト１０から供給される単一の電源電圧からＳＳＤ２０で必要な複数の電源電圧を生成する。電源回路２８はＩＣ化されていても良い。ホスト１０から電源が供給されない場合でもストレージ装置２０の一部の機能を実現させるための内部電源４４が電源回路２８に内蔵される。内部電源４４は電源回路２８により充電されるバッテリ又はキャパシタからなる。バッテリの例はリチウムイオン電池があり、キャパシタの例はスーパーキャパシタと呼ばれる大容量の電気二重層キャパシタ、アルミ電解コンデンサ、又はセラミックコンデンサ、がある。電源回路２８は、さらに、ＳＳＤ２０とホスト１０との接続状態を検出する接続検出回路４６も内蔵する。図３を参照して後述するが、接続検出回路４６は内部電源４４の電力により駆動され、ＳＳＤ２０がホスト１０に取り付けられたこと及びＳＳＤ２０がホスト１０から取り外されたことを検出する。内部電源４４と接続検出回路４６は電源回路２８に内蔵されるのではなく、電源回路２８の外部に配置されても良い。
【００１５】
図２はＳＳＤ２０の外観の一例を示す平面図である。ＳＳＤ２０は、ホスト１０に内蔵されてホスト１０の回路基板（図示しない）に固定される。ＳＳＤ２０は、略矩形形状の実装基板５２を備える。近年、実装基板５２の規格として、コンピュータの内蔵拡張カードのフォームファクタと接続端子について定められたＭ．２規格があり、図２はＭ．２規格のＳＳＤ２０の例である。実装基板５２は、単層構造でもよいが、エポキシ樹脂等の合成樹脂を重ねて形成された多層構造になっていてもよい。各層の表面には、様々な形状の配線パターンが形成されている。例えば、信号の送受信を行う信号層、グランド層、電源層等が形成されていてもよい。実装基板５２の一方の短辺側の側端５２ａには、コネクタ部５４が設けられる。コネクタ部５４は、ホスト１０の回路基板上のコネクタ（図示しない）に直接に接続又はケーブルを介して接続される。これにより、ＳＳＤ２０がホスト１０に電気的に接続される。
【００１６】
実装基板５２に形成された配線パターン（図示しない）がコネクタ部５４の所定の端子ピンに電気的に接続される。側端５２ａの特定の位置、例えば、側端５２ａの中央からずれた位置にスリット５６が形成され、ホスト１０の回路基板に設けられた突起（図示しない）等と嵌合するようになっている。これにより、ＳＳＤ２０（すなわち実装基板５２）がホスト１０の回路基板に対して表裏逆に取り付けられることが防止される。また、側端５２ａの反対側の側端の中央からずれた任意の位置にも切欠き５８が形成される。この切欠き５８の位置によってもＳＳＤ２０（すなわち実装基板５２）の向きが認識できる。
【００１７】
エンドユーザはＳＳＤ２０が筐体内に組み込まれたホスト１０を使用しているとする。この場合、エンドユーザは、筐体を分解すると、ＳＳＤ２０はホスト１０から取り外すことができる。あるいは、エンドユーザは、外付けのＳＳＤ２０を購入し、ホスト１０に外付けのＳＳＤ２０を取り付けた状態でホスト１０を使用しているとする。エンドユーザが所有・管理するホスト１０は「真正なホスト」と称する。
【００１８】
ＳＳＤ２０がホスト１０から取り外され、その後、ホスト１０とは異なる他のホストに取り付けられると、ＳＳＤ２０に格納されているデータは他のホストによりアクセスされる。他のホストは、真正なホストである場合もあるし、真正なホストではない場合もある。そのため、ＳＳＤ２０が真正ではないホストに取り付けられると、ＳＳＤ２０に格納されているデータは不正にアクセスされ得る。
【００１９】
外付けタイプのＳＳＤ２０はどのホストにも取り付けられ得るので、ＳＳＤ２０が真正なホストから取り外され、真正なホスト以外の他のホストに取り付けられると、ＳＳＤ２０は他のホストにより不正にアクセスされる可能性がある。内蔵タイプのＳＳＤ２０も、筐体を分解すると、回路基板から取り外すことができ、外付けタイプと同様に他のホストによりＳＳＤ２０に格納されているデータが不正にアクセスされる可能性がある。実施形態はこの不正アクセスを防止するために、接続検出回路４６を備える。
【００２０】
図３は、接続検出回路４６の回路図の一例を示す。ＳＳＤ２０のコネクタ部５４は複数（例えば２つ）の第１端子６２ａ、第２端子６４ａを含み、第１端子６２ａ、第２端子６４ａは、ホスト１０のグランドに接続され得る。コネクタ部５４の第１端子６２ａ、第２端子６４ａは信号線６６、６８を介してホスト１０のコネクタ内の第３端子６２ｂ、第４端子６４ｂに接続され得る。信号線６６、６８はＳＳＤ２０の実装基板５２とホスト１０の回路基板とを接続する信号線である。実装基板５２がケーブルを使用しないで直接に回路基板に接続される場合は、信号線６６、６８は省略され、第１端子６２ａ、第２端子６４ａが直に第３端子６２ｂ、第４端子６４ｂに接続される。接続検出回路４６は電圧検出器４６ａと抵抗４６ｂを含む。
【００２１】
図３（ａ）はＳＳＤ２０（実装基板５２）がホスト１０の回路基板に取り付けられている状態の回路図を示し、図３（ｂ）はＳＳＤ２０（実装基板５２）がホスト１０の回路基板から取り外されている状態の回路図を示す。ホスト１０のコネクタ内の第３端子６２ｂ、第４端子６４ｂは接地される。コネクタ部５４の第１端子６２ａはＳＳＤ２０内の接地端子に接続される。コネクタ部５４の第２端子６４ａは抵抗４６ｂを介して内部電源４４に接続される。内部電源４４は微小な電流を出力する。第２端子６４ａには電圧検出器４６ａも接続される。図３（ａ）に示すように、ＳＳＤ２０（実装基板５２）がホスト１０に取り付けられている場合、内部電源４４から出力される電流は、第２端子６４ａ、第４端子６４ｂを介して接地に流れるので、電圧検出器４６ａが検出する第２端子６４ａの電圧はローレベルとなる。一方、図３（ｂ）に示すように、ＳＳＤ２０（実装基板５２）がホスト１０から取り外されると、ＳＳＤ２０側の第２端子６４ａとホスト１０側の第４端子６４ｂとの接続が絶たれるので、内部電源４４から出力される電流は接地に流れず、電圧検出器４６ａが検出する第２端子６４ａの電圧はローレベルからハイレベルに変化する。この電圧変化を電圧検出器４６ａが検出することにより、ＳＳＤ２０のホスト１０への取り付け及びＳＳＤ２０のホスト１０からの取り外しを検出することができる。
【００２２】
電圧検出器４６ａは第２端子６４ａの電圧がローレベルからハイレベルに変化すると、ＳＳＤ２０がホスト１０から取り外されたことを検出する。電圧検出器４６ａは第２端子６４ａの電圧がハイレベルからローレベルに変化すると、ＳＳＤ２０がホスト１０に取り付けられたことを検出する。電圧検出器４６ａの検出結果は、コントローラ回路２２に送られ、ＤＲＡＭ２６又はフラッシュメモリ２４に格納される。コントローラ回路２２は、電圧検出器４６ａの検出結果（取り付け検出結果や取り外し検出結果）に応じて、ＳＳＤ２０の動作を制御することができる。
【００２３】
第１実施形態によれば、ＳＳＤ２０は内部電源４４を備え、内部電源４４によりＳＳＤ２０とホスト１０との接続状態を検出する接続検出回路４６が動作し、ＳＳＤ２０はＳＳＤ２０がホスト１０から取り外されたこと及びＳＳＤ２０がホスト１０に取り付けられたことを検出することができる。ＳＳＤ２０がホスト１０から取り外されたことを検出することに応じて種々のデータ保護を行うシステムを構築したい場合、ホスト１０を変更することなく、実施形態のＳＳＤ２０を使用することにより、データ保護システムを構築することができる。
【００２４】
第１実施形態では、電圧検出器４６ａはコネクタ部５４の第２端子６４ａの電圧を監視して、ＳＳＤ２０のホスト１０への取り付け及びＳＳＤ２０のホスト１０からの取り外しを検出したが、他の端子の電圧を利用して取り付け及び取り外しを検出しても良い。
【００２５】
以下、第１実施形態にかかるＳＳＤ２０による、検出した取り付け及び取り外しに基づいてデータ保護の堅牢性を高める手法を説明する。ＳＳＤ２０のハードウェア構成は第１実施形態と同じであるので、ハードウェア構成に関する説明は省略する。
【００２６】
［第２実施形態］
ＳＳＤ２０がホスト１０への取り付け及びホスト１０からの取り外しの検出結果の履歴（接続検出ログとも称する）をホスト１０に送信する第２実施形態を説明する。ホスト１０は、取り付け及び取り外しの接続検出ログが通知されると、接続検出ログに応じた制御を行うことができ、データ保護の堅牢性を高めることができる。ＳＳＤ２０は、接続検出ログをホスト１０に通知するために接続検出ログを記録する。
【００２７】
図４は第２実施形態に係るストレージ装置の接続検出ログの記録動作の一例を示すフローチャートである。
【００２８】
ブロック１２２に示すように、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。接続検出回路４６が取り付けを検出しない場合（ブロック１２２のＮＯ）、コントローラ回路２２はブロック１２２の判定を繰り返す。接続検出回路４６が取り付けを検出した場合（ブロック１２２のＹＥＳ）、ブロック１２４に示すように、コントローラ回路２２は接続検出ログに「取り付け」を記録する。
【００２９】
接続検出ログの一例は、図５に示すように、検出時刻に関する情報と取り付け又は取り外しの検出結果とを検出毎に記録するフラッシュメモリ２４内のテーブルである。検出時刻はＲＴＣ４０が計時するハードウェアクロックでも良いし、システムの起動時からの経過時間であるシステムクロックでも良い。
【００３０】
ＳＳＤ２０がホスト１０に取り付けられている状態で、ブロック１２６に示すように、コントローラ回路２２は接続検出回路４６がホスト１０からのＳＳＤ２０の取り外しを検出したか否かを判定する。接続検出回路４６が取り外しを検出しない場合（ブロック１２６のＮＯ）、コントローラ回路２２はブロック１２６の判定を繰り返す。接続検出回路４６が取り外しを検出した場合（ブロック１２６のＹＥＳ）、ブロック１２８に示すように、コントローラ回路２２は接続検出ログに「取り外し」を記録する。この後、処理フローはブロック１２２に戻り、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かの判定を行う。上述したように、ＳＳＤ２０は、ホスト１０への取り付け及びホスト１０からの取り外しの検出結果を記憶することができる。
【００３１】
図６は接続検出ログの通知動作の一例を示すホスト１０のフローチャートである。ＳＳＤ２０がホスト１０に取り付けられている状態で、ブロック１３２に示すようにホスト１０の電源がオンされるとする。ホスト１０は電源がオンされると、ブート処理を行い、ブロック１３４に示すように、ホスト１０はＳＳＤ２０を認識したか否かを判定する。ホスト１０は、ＳＳＤ２０を認識しない場合（ブロック１３４のＮＯ）、ブロック１３４の判定を繰り返す。ホスト１０は、ＳＳＤ２０を認識した場合（ブロック１３４のＹＥＳ）、ブロック１３６に示すように、ＳＳＤ２０に接続検出ログの通知要求コマンドを送る。
【００３２】
接続検出ログの通知要求コマンドの一例はＳＡＳ規格のセンスデータコマンドがある。センスデータコマンドにより、ホスト１０は、ＳＳＤ２０からホスト１０に送信して貰いたいデータ（ここでは、接続検出ログ）を指定することができる。ＳＳＤ２０は、センスデータコマンドを受信すると、コマンドで指定されたデータである接続検出ログをホスト１０に送信する。
【００３３】
ブロック１３８に示すように、ホスト１０はセンスデータコマンドに応答してＳＳＤ２０から送信された接続検出ログを受信する。ホスト１０は、ブロック１４０に示すように、接続検出ログに応じた処理を行う。接続検出ログに応じた処理の一例は、ＳＳＤ２０が一度取り外されたことを画面に表示することや、ＳＳＤ２０の動作モードを切り替えることを含む。動作モードは通常のリード、ライトを行う通常モードと、データ保護を目的とし、リード、ライトに制限を加える保護モードを含む。
【００３４】
第２実施形態によれば、ホスト１０のユーザにＳＤＤ２０が不正アクセスされた可能性があることを知らせることができ、ユーザが必要に応じて適切な対処をすることができる。なお、ホスト１０がセンスデータコマンドを送信するタイミングは、図６のブロック１３４のＳＳＤ２０の認識タイミングに限らず、システムの立ち上げ時でも良い。センスデータコマンドの代わりにＨＤＤの自己診断機能であるＳ．Ｍ．Ａ．Ｒ．Ｔ．（Self-Monitoring, Analysis and Reporting Technology）機能を利用して、ＳＳＤ２０から接続検出ログを受信しても良い。
【００３５】
［第３実施形態］
ＳＳＤ２０に対するアクセスログを記録する第３実施形態を説明する。アクセスログは第２実施形態の接続検出ログより広い概念のログであり、接続検出ログも含む。図７はアクセスログの記録動作の一例を示すフローチャートである。図８はフラッシュメモリ２４のアクセスログ記憶領域の一例を示す。
【００３６】
ブロック１５２に示すように、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。接続検出回路４６が取り付けを検出しない場合（ブロック１５２のＮＯ）、コントローラ回路２２はブロック１５２の判定を繰り返す。接続検出回路４６が取り付けを検出した場合（ブロック１５２のＹＥＳ）、ブロック１５４に示すように、コントローラ回路２２はホスト１０から一定時間以内に解除コマンドを受信したか否かを判定する。真正なホスト１０はＳＳＤ２０が取り付けられた時、一定時間以内に解除コマンドを発行するように構成されている。すなわち、解除コマンドは真正ではないホスト１０からは発行されない。そのため、ＳＳＤ２０は解除コマンドを受信するか否かに基づいてホスト１０が真正なホストか否かを判断することができる。
【００３７】
解除コマンドはアクセスログ記録モードを通常モードに設定するためのコマンドである。解除コマンドにはＮＶＭｅ規格のset-featureコマンドやＳＡＳ規格のMode Selectコマンドを利用することができる。
【００３８】
取り付け検出から一定時間以内に解除コマンドを受信した場合（ブロック１５４のＹＥＳ）、ブロック１５６に示すように、コントローラ回路２２はアクセスログ記録モードを通常モードに設定する。アクセスログ記録モードが通常モードに設定されている場合、コントローラ回路２２は通常ログを通常ログ記憶領域２４ｃ（図８）に記録する。
【００３９】
取り付け検出から一定時間以内に解除コマンドを受信しない場合（ブロック１５４のＮＯ）、ブロック１５８に示すように、コントローラ回路２２はアクセスログ記録モードを詳細モードに設定する。アクセスログ記録モードが詳細モードに設定されている場合、コントローラ回路２２は詳細ログを詳細ログ記憶領域２４ｄ（図８）に記録する。
【００４０】
図８に示すように、フラッシュメモリ２４は通常データ記憶領域２４ａとアクセスログ記憶領域２４ｂを備え、アクセスログがアクセスログ記憶領域２４ｂに記憶される。アクセスログ記憶領域２４ｂは通常ログ記憶領域２４ｃと詳細ログ記憶領域２４ｄとを含む。通常ログは、図９（ａ）に示すように、電源オン／オフ回数、温度等の情報を含む。詳細ログは、図９（ｂ）に示すように、取り付け／取り外しの時刻（接続検出ログ）、ＳＳＤ２０に対してホスト１０から発行されたアクセスコマンドの種類と発行時刻（ハードウェクロックでもシステムクロックでも良い）とアドレスとデータ等の情報を含む。通常ログはデータサイズが小さいので、常時記録することができるが、詳細ログはアクセス回数に応じてデータサイズが大きくなるので、常時記録することができない。そのため、アクセスログ記録モードとして通常モードと詳細モードが定義される。アクセスログ記録モードが通常モードの場合、コントローラ回路２２は通常ログのみを通常ログ記憶領域２４ｃに記録する。アクセスログ記録モードが詳細モードの場合、コントローラ回路２２は通常ログを通常ログ記憶領域２４ｃに記録するとともに、詳細ログも詳細ログ記憶領域２４ｄに記録する。
【００４１】
ブロック１６０に示すように、コントローラ回路２２は接続検出回路４６がホスト１０からのＳＳＤ２０の取り外しを検出したか否かを判定する。接続検出回路４６が取り外しを検出しない場合（ブロック１６０のＮＯ）、コントローラ回路２２はブロック１６０の判定を繰り返す。接続検出回路４６が取り外しを検出した場合（ブロック１６０のＹＥＳ）、ブロック１６２に示すように、コントローラ回路２２はアクセスログ記録モードを詳細モードに設定する。ただし、ホスト１０から取り外された状態では、ＳＳＤ２０はコマンドを受信しないので、アクセスログは生じない。この後、ブロック１５２が再度実行され、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。
【００４２】
このようにＳＳＤ２０の真正なホスト１０への取り付けが検出されると、ブロック１５６に示すようにアクセスログ記録モードは通常モードとされ、ＳＳＤ２０のホスト１０からの取り外しが検出されると、ブロック１６２に示すようにアクセスログ記録モードは通常モードから詳細モードに変更される。アクセスログ記録モードが詳細モードに設定されているＳＳＤ２０が、真正ではないホストに取り付けられても、アクセスログ記録モードは詳細モードのままであり、通常モードに変更されない。アクセスログ記録モードを詳細モードから通常モードに変更する権限は真正なホスト１０に与えられている。ＳＳＤ２０がホスト１０に取り付けられた時ホスト１０から解除コマンドが発行されないと、アクセスログ記録モードは詳細モードから通常モードに変更されない。
【００４３】
このように、第３実施形態によれば、ＳＳＤ２０がホスト１０から取り外され、真正ではないホストに取り付けられた場合、通常ログに加えて詳細ログも記録される。その後にＳＳＤ２０が真正なホスト１０に接続され、真正なホスト１０がこの詳細ログを調べることにより、ＳＳＤ２０がホスト１０から取り外され、他のホストに取り付けられていた間、ＳＳＤ２０内のデータが不正にアクセスされた否かを判断することができる。データの不正な書き換えが行われた場合、書き換えられたことがホスト１０に判らないようにすることもできてしまうことがある。しかし、第３実施形態では、ＳＳＤ２０側でアクセスログを記録することにより、ホスト１０はＳＳＤ２０内のどのデータが書き換えられたのか及びどのデータが読まれたのかを把握することができる。
【００４４】
このようなアクセスログが記録されていないと、ホスト１０から一度取り外され、ホスト１０とは異なる他のホストに取り付けられた可能性のあるＳＳＤがホスト１０に再び取り付けられた場合、そのＳＳＤ２０を使用することは危険である。その場合、新品のＳＳＤを用意して、バックアックファイルからＳＳＤ全体を復元しなければならない。しかし、第３実施形態によれば、他のホストによりアクセスされた部分（書き換えられた部分）が判るので、その部分だけを復元すれば、他のホストに取り付けられた可能性のあるＳＳＤも使用することができる。また、部分的な復元なので、復旧時間が短くなる。さらに、リードコマンドの履歴を確認すれば、開かれたファイルを特定することができ、流出された可能性のあるデータを推測することもできる。
【００４５】
これによって、ホスト１０からＳＳＤ２０が取り外され、ＳＳＤ２０内のデータの読み出しや書き換えが行われても、ＳＳＤ２０に保存されたアクセスログに基づいて、読み出された情報や書き換えられた情報を迅速に特定することができ、情報流出のリスク把握や修復時の復旧作業の時間短縮が可能となる。
【００４６】
なお、ＳＳＤ２０がホスト１０から取り外され、当該ホスト１０に取り付けられた場合は、詳細ログは記録されない。
【００４７】
第２実施形態の図６の通知処理フローを一部変形すれば、第２実施形態の接続検出ログと同様に第３実施形態のアクセスログもホスト１０に通知することができる。例えば、ブロック１３６で、ホスト１０はＳＳＤ２０にアクセスログの通知要求コマンドとしてセンスデータコマンドを送る。ＳＳＤ２０は、センスデータコマンドを受信すると、アクセスログ記憶領域２４ｂ内の通常ログと詳細ログをホスト１０に送信する。ブロック１３８で、ホスト１０はセンスデータコマンドに応答してＳＳＤ２０から送信された通常ログと詳細ログを受信する。ホスト１０は、ブロック１４０で、通常ログと詳細ログに応じた処理を行う。
【００４８】
［第４実施形態］
ＳＳＤ２０が真正なホスト１０から取り外され他のホストに取り付けられ、他のホストによりデータが書き換えられた場合、書き換え前のデータをアクセスログに基づいて探し、ＳＳＤ２０の状態を書き換え前の状態に復元することは可能である。しかし、書き換え前のデータを探すためには、全てのアクセスログを時間順に辿る必要があり、非常に時間が係る作業である。また、ＳＳＤ２０が真正なホスト１０から取り外されホスト１０とは異なる他のホストに取り付けられ、他のホストによりデータが読み出された場合、読み出されたデータをアクセスログに基づいて探すことは可能であるが、これも同様に時間が係る作業である。データが不正に書き換えられた場合、ＳＳＤ２０の状態を書き換え前の状態に簡単に戻すことができる第４実施形態を説明する。
【００４９】
第４実施形態はデータの書き換えを管理する管理テーブルを備える。管理テーブルはアドレスとデータとの関係を示すものであり、データが書き換えられる毎に更新される。第４実施形態は管理テーブルを２種類（第１管理テーブルと第２管理テーブル）備える。第２管理テーブルはデータが書き換えられる毎に更新されるが、第１管理テーブルは第２管理テーブルとは異なり更新が中断される期間がある。
【００５０】
図１０は第４実施形態の管理テーブルの更新動作の一例を示すフローチャートである。
【００５１】
ブロック１７２に示すように、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。接続検出回路４６が取り付けを検出しない場合（ブロック１７２のＮＯ）、コントローラ回路２２はブロック１７２の判定を繰り返す。接続検出回路４６が取り付けを検出した場合（ブロック１７２のＹＥＳ）、ブロック１７４に示すように、コントローラ回路２２はホスト１０から一定時間以内に解除コマンドを受信したか否かを判定する。上述したように真正なホスト１０はＳＳＤ２０が取り付けられた時、一定時間以内に解除コマンドを発行するように構成されるので、ＳＳＤ２０は解除コマンドを受信するか否かに基づいてホスト１０が真正なホストか否かを判断する。
【００５２】
取り付け検出から一定時間以内に解除コマンドを受信した場合（ブロック１７４のＹＥＳ）、ブロック１７６に示すように、コントローラ回路２２は第２管理テーブルの内容を第１管理テーブルにコピーすることにより、第２管理テーブルを第１管理テーブルに統合する。後述するように、ＳＳＤ２０がどのようなホスト１０に取り付けられていても、第２管理テーブルは更新されるが、ＳＳＤ２０が真正ではないホスト１０に取り付けられていると、第１管理テーブルは更新されず、第１管理テーブルは真正なホスト１０から取り外された時の状態に維持される。このため、データが不正に書き換えられた場合、第１管理テーブルに基づいてＳＳＤ２０の状態を書き換え前の状態に簡単に戻すことができる。そのため、真正なホスト１０に取り付けられた時、第１、第２管理テーブルの内容を一致させるために、ブロック１７６で第１、第２管理テーブルの統合が行われる。
【００５３】
ブロック１７８に示すように、コントローラ回路２２は第１、第２管理テーブルの更新を許可する。すなわち、ＳＳＤ２０が真正なホスト１０に取り付けられている場合は、データが書き換えられる毎に第１、第２管理テーブルは更新される。
【００５４】
取り付け検出から一定時間以内に解除コマンドを受信しない場合（ブロック１７４のＮＯ）、ブロック１８０に示すように、コントローラ回路２２は第１管理テーブルの更新を禁止し、第２管理テーブルの更新を許可する。すなわち、ＳＳＤ２０が真正ではないホストに取り付けられている場合は、真正ではないホスト１０によりデータが書き換えられる毎に第２管理テーブルは更新されるが、第１管理テーブルは更新されない。第１管理テーブルの内容は真正なホスト１０から取り外された時の状態に維持される。
【００５５】
図１１（ａ）、（ｂ）はそれぞれ第１管理テーブル、第２管理テーブルの一例を示す。図１１に示すように第１、第２管理テーブルはともに論理アドレスと物理アドレスとデータの対応を示す。真正なホスト１０から書き込みアドレス（論理アドレス）と書き込みデータを指定するライトコマンドが供給されると、ライトコマンドで指定される論理アドレスと、それに対応する物理アドレスと、ＳＳＤ２０に書き込まれた書き込みデータが第１、第２管理テーブルともに登録される。ライトコマンドにより既にデータが書き込まれ管理テーブルに登録されている書き込みアドレスに対するさらなるライトコマンドが供給されると、管理テーブル内の当該書き込みアドレスに対するデータが更新される。このようにＳＳＤ２０が真正なホスト１０に取り付けられている状態では、第１、第２管理テーブルは同一の内容のテーブルである。
【００５６】
真正ではないホスト１０から書き込みアドレス（論理アドレス）と書き込みデータを指定するライトコマンドが供給されると、ライトコマンドで指定される論理アドレスと、それに対応する物理アドレスと、ＳＳＤ２０に書き込まれた書き込みデータが第２管理テーブルのみに登録される。例えば、論理アドレス“１００”のデータが“ＨＨＨ”に書き換えられると、第１管理テーブルは更新されず、第２管理テーブルのみ更新される。
【００５７】
ブロック１８２に示すように、コントローラ回路２２は接続検出回路４６がホスト１０からのＳＳＤ２０の取り外しを検出したか否かを判定する。接続検出回路４６が取り外しを検出しない場合（ブロック１８２のＮＯ）、コントローラ回路２２はブロック１８２の判定を繰り返す。
【００５８】
接続検出回路４６が取り外しを検出した場合（ブロック１８２のＹＥＳ）、ＳＳＤ２０はもはやホストからコマンドを受信することはないが、ブロック１８４に示すように、コントローラ回路２２は第１管理テーブルの更新を禁止し、第２管理テーブルの更新を許可する。この後、ブロック１７２が再度実行され、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。
【００５９】
このため、ＳＳＤ２０が真正なホスト１０から取り外された後、真正なホスト１０以外のホストによりデータが不正に書き換えられたとしても、アクセスログを辿ることなく、第１管理テーブルの内容に基づいて不正な書き換え前の状態にＳＳＤ２０を簡単に復元することができる。これにより、ＳＳＤ２０が不正な書き換えの影響を受けることを防止することができる。また、真正なホスト以外のホストにより書き換えられたアドレスが判るので、他のホストにより書き換えられたアドレスに記憶されているデータへのアクセスを禁止することもできる。これにより、不正に書き換えられたデータによりシステムが影響を受けることも防止できる。
【００６０】
第４実施形態によれば、真正なホストから取り外された後に他のホストに取り付けられた後、書き換えられたデータを専用の第２管理テーブルで管理し、真正なホストから取り外される前のデータを第１管理テーブルで管理する。これにより、真正なホスト以外のホストにより不正に書き換えられたデータを書き換え前のデータに簡単に戻すことができるとともに、不正に書き換えられたデータへのアクセスを禁止することもでき、不正に書き換えられたデータによりホスト１０が影響を受けることも防止できる。
【００６１】
さらに、管理テーブルはライトコマンドによるデータの書き換えのみならず、リードコマンドによるデータの読み出しについても管理しても良い。すなわち、管理テーブルは、ホスト１０から読み出しアドレス（論理アドレス）を指定するリードコマンドが供給されると、リードコマンドで指定される論理アドレスと、それに対応する物理アドレスと、ＳＳＤ２０から読み出された読み出しデータが第１、第２管理テーブルに登録されても良い。これにより、不正に読み出されたデータが特定されるので、流出されたデータに応じた対策を実行することができる。
【００６２】
［第５実施形態］
第１実施形態から第４実施形態ではＲＴＣ４０は省略可能であったが、第５実施形態ではＲＴＣ４０は必須の構成要件である。すなわち、第５実施形態によるＳＳＤ２０は、ＳＳＤ２０の取り付け及び取り外し時刻をＲＴＣ４０によるリアルタイムクロックで管理する。第５実施形態では、図５に示す接続検出ログの時刻がシステムクロックではなく、リアルタイムクロックである点が第２実施形態と異なり、他は第２実施形態と同様である。
【００６３】
ＳＳＤ２０にＲＴＣ４０を実装し、ＳＳＤ２０がホスト１０に取り付けられた時刻とＳＳＤ２０がホスト１０から取り外された時刻とを記録することにより、ＳＳＤ２０のメンテナンスが予定通り行われたか又は不正な着脱が行われたかをホスト１０が判断することができる。さらに、不正な着脱が行われた場合、着脱を行った人物の特定に活用できる場合がある。
【００６４】
［第６実施形態］
接続検出回路４６がホスト１０への取り付け及びホスト１０からの取り外しを検出すると、ＳＳＤ２０は動作モードを通常モード又はデータ保護モードに設定する第６実施形態を説明する。
【００６５】
図１２は第６実施形態に係るストレージ装置の動作モード設定処理の一例を示すフローチャートである。ブロック２０２に示すように、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。接続検出回路４６が取り付けを検出しない場合（ブロック２０２のＮＯ）、コントローラ回路２２はブロック２０２の判定を繰り返す。接続検出回路４６が取り付けを検出した場合（ブロック２０２のＹＥＳ）、ブロック２０４に示すように、コントローラ回路２２はホスト１０から一定時間以内に解除コマンドを受信したか否かを判定する。
【００６６】
取り付け検出から一定時間以内に解除コマンドを受信した場合（ブロック２０４のＹＥＳ）、ブロック２０６に示すように、コントローラ回路２２はＳＳＤ２０の動作モードを通常モードに設定する。ＳＳＤ２０の動作モードが通常モードの場合、コントローラ回路２２はホスト１０からの全てのコマンドを実行する。
【００６７】
取り付け検出から一定時間以内に解除コマンドを受信しない場合（ブロック２０４のＮＯ）、ブロック２０８に示すように、コントローラ回路２２はＳＳＤ２０の動作モードをデータ保護モードに設定する。ＳＳＤ２０の動作モードがデータ保護モードの場合、コントローラ回路２２はホスト１０からのコマンドの一部の実行を禁止する等のデータ保護動作を行う。データ保護動作の例は、ＳＳＤ２０側でデータにアクセスできなくする処置、データを消去する処置等を含む。さらに、データ保護動作の例は、ＳＳＤ２０に格納されているデータのリスクに応じた対処を予めＳＳＤ２０に登録しておき、ＳＳＤ２０全体のアクセスを禁止する処置や、個人情報が含まれる情報のみを削除する等、ホスト１０の用途に応じた対処を含んでも良い。
【００６８】
ブロック２１０に示すように、コントローラ回路２２は接続検出回路４６がホスト１０からのＳＳＤ２０の取り外しを検出したか否かを判定する。接続検出回路４６が取り外しを検出しない場合（ブロック２１０のＮＯ）、コントローラ回路２２はブロック２１０の判定を繰り返す。
【００６９】
接続検出回路４６が取り外しを検出した場合（ブロック２１０のＹＥＳ）、ＳＳＤ２０はもはやホストからコマンドを実行することはないが、ブロック２１２に示すように、コントローラ回路２２はＳＳＤ２０の動作モードをデータ保護モードに設定する。この後、ブロック２０２が再度実行され、コントローラ回路２２は接続検出回路４６がホスト１０へのＳＳＤ２０の取り付けを検出したか否かを判定する。
【００７０】
このようにＳＳＤ２０がいずれかのホスト１０から取り外されると、動作モードはデータ保護モードに設定される。動作モードがデータ保護モードに設定されているＳＳＤ２０が真正ではないホストに取り付けられても、動作モードはデータ保護モードのままで、通常モードに変更されない。動作モードをデータ保護モードから通常モードに変更する権限は真正なホスト１０に与えられている。動作モードがデータ保護モードに設定されているＳＳＤ２０が真正なホスト１０に取り付けられ、真正なホスト１０から解除コマンドを受信すると、動作モードはデータ保護モードから通常モードに変更される。
【００７１】
このように解除コマンドは動作モードをデータ保護モードから通常モードに戻すためのコマンドである。ＳＳＤ２０が真正なホストから一時的に取り外された後、真正なホストに再び取り付けられることもあり、このような場合は動作モードをデータ保護モードに維持する必要が無く、ブロック２０６に示すように、動作モードは通常モードに設定される。
【００７２】
上述の説明では、複数のデータ保護動作が定義され、それらの中の実際に実行する動作はＳＳＤ２０側で予め決められているとしたが、ホスト１０がデータ保護動作を指定しても良い。例えば、第２実施形態の図６のブロック１３４、１３６のように、ホスト１０がＳＳＤ２０を認識すると、ホスト１０はＳＳＤ２０へデータ保護動作指定コマンドを送信しても良い。データ保護動作指定コマンドとしては、ＮＶＭｅ規格のset-featureコマンドやＳＡＳ規格のMode Selectコマンドを利用することができる。指定されたデータ保護動作はＳＳＤ２０に設定される。
【００７３】
データ保護動作指定コマンドの一例を図１３に示す。図１３はベンダーが定義できるベンダーコマンドの例である。
【００７４】
このコマンドは１５バイトであり、バイト０のビット７がＳＰであり、ビット６がＳＰＦ（０ｂ）であり、ビット５〜ビット０の６ビットがＰａｇｅ  Ｃｏｄｅ（３６ｈ）である。バイト１はＰａｇｅ  Ｌｅｎｇｔｈ（０Ｅｈ）である。バイト２のビット７がデータＰｕｌｌ＿Ｏｕｔ＿Ｐｒｏｔｅｃｔ＿Ｅｎであり、バイト２のビット６〜ビット０の７ビットがＤａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．である。
【００７５】
Ｐｕｌｌ＿Ｏｕｔ＿Ｐｒｏｔｅｃｔ＿Ｅｎは接続検出回路４６による取り付け／取り外し検出及びデータ保護の可否を次のように設定する。
【００７６】
０ｂ：保護無効
１ｂ：保護有効
すなわち、ＳＳＤ２０は接続検出回路４６を備えるが、Ｐｕｌｌ＿Ｏｕｔ＿Ｐｒｏｔｅｃｔ＿Ｅｎが０ｂの場合は、コントローラ回路２２は接続検出回路４６による取り付け／取り外し検出結果に応じた動作をせず、ＳＳＤ２０は接続検出回路４６が無いＳＳＤと見なされる。Ｐｕｌｌ＿Ｏｕｔ＿Ｐｒｏｔｅｃｔ＿Ｅｎが１ｂの場合は、コントローラ回路２２は接続検出回路４６による取り付け／取り外し検出結果に応じた動作を行う。
【００７７】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．は、取り外し検出時のデータ保護の振る舞い変更とモード切替を示す。取り外し検出時のデータ保護の振る舞い変更に関しては、次のように設定される。
【００７８】
０１ｈ：全データの削除
０２ｈ：全データの読み書き拒否
０３ｈ：全データの読み込みのみ許可
０４ｈ：読み書き許可（データ保護無し）
０５ｈ：パーティションの切り替え
０６ｈ：偽情報出力
０７ｈ：コマンド履歴（詳細ログ）の保存
０８ｈ：第２管理テーブルへ切り替え
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０１ｈの場合、ＳＳＤ２０がホスト１０から取り外されると、全データが削除されるので、ＳＳＤ２０のデータが完全に保護される。
【００７９】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０２ｈの場合、ＳＳＤ２０がホスト１０から取り外されると、ＳＳＤ２０の全データへの読み書きが拒否されるので、ＳＳＤ２０のデータが不正に流出されることが禁止されるとともに、ＳＳＤ２０のデータが不正に書き換えられることが禁止される。
【００８０】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０３ｈの場合、ＳＳＤ２０のデータが不正に書き換えられることが禁止される。
【００８１】
データ保護のため、ＳＳＤ２０のデータ保存領域は第１パーティションと第２パーティションに分割されても良い。コマンドで指定されるアドレスは第１パーティションのアドレスとし、第２パーティションのアドレスは真正なホストからは指定されるが、真正なホスト以外のホストからのコマンドでは指定されない。通常、データは第１パーティションに保存される。ＳＳＤ２０がホスト１０から取り外されると、データはコマンドの指定とは異なり第２パーティションに保存される。第２パーティションに保存されたデータは真正なホスト以外のホストからはアクセス不可となり、保護される。Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０５ｈの場合、データの保存領域が第１パーティションから第２パーティションに切り替えられる。
【００８２】
データ保護のため、ＳＳＤ２０はリードコマンドを受信した場合、リードコマンドで指定されるデータではない偽情報をホスト１０に返送することもできる。そのため、ＳＳＤ２０のデータ領域は通常のデータ領域と偽情報領域に分割されてもよい。Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０６ｈの場合、リードコマンドを受信した場合、ＳＳＤ２０は偽情報をホスト１０に返送することもできる。なお、偽情報は専用の領域に予め格納しておくのではなく、リードコマンドを受信した時に偽情報を生成して、ホスト１０に返送しても良い。
【００８３】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０７ｈの場合、ＳＳＤ２０のホスト１０からの取り外しが検出されると、第３実施形態のように通常ログに加えて詳細ログも記録される。
【００８４】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０８ｈの場合、第１管理テーブルに加え第２管理テーブルが作成され、ＳＳＤ２０のホスト１０からの取り外しが検出されると、第４実施形態のように第１管理テーブルの更新が禁止される。
【００８５】
取り外し検出時のモード切替に関しては、次のように設定される。
【００８６】
０９ｈ：第１パーティションへ切り替え
０Ａｈ：第２パーティションへ切り替え
０Ｂｈ：管理テーブル統合
０Ｃｈ：第１管理テーブルへ切り替え
０Ｄｈ：第２管理テーブルへ切り替え
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０９ｈの場合、データ保存領域は第１保存領域とされ、データ保護はされない。
【００８７】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０Ａｈの場合、Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０５ｈの場合と同様に、データの保存領域が第１保存領域から第２保存領域に切り替えられ、第２保存領域のデータが真正なホスト以外のホストから読み出されることが防止される。
【００８８】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０Ｂｈの場合、第４実施形態のブロック１７６に示すように、第２管理テーブルの内容が第１管理テーブルに統合（第１管理テーブルの内容が最新の状態を示す第２管理テーブルの内容に更新）される。
【００８９】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０Ｃｈの場合、第１管理テーブルの内容が参照される。すなわち、取り外し後に変更されたデータは参照されず、取り外し前のデータが読み出される。
【００９０】
Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０Ｄｈの場合、第１管理テーブルと第２管理テーブルが作成され、ＳＳＤ２０のホスト１０からの取り外しが検出されると、第４実施形態のように第１管理テーブルの更新が中止される。なお、Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０８ｈの場合の第２管理テーブルへの切り替えはＳＳＤ２０の取り外し検出時に発動する事前設定内容であり、Ｄａｔａ＿Ｐｒｏｔｅｃｔｉｏｎ＿Ｃｏｎｆ．が０８ｈのコマンドは単なる切り替えコマンドである。
【００９１】
第６実施形態によれば、ホスト１０からの取り外しが検出されると、種々のデータ保護動作の中から選択された１つまたは複数の保護動作を実行することができる。実行する保護動作は予めＳＳＤ２０において設定しておいても良いし、ホスト１０に取り付けられた時にホスト１０から指定しても良い。
【００９２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００９３】
１０…ホスト、２０…ＳＳＤ、２２…コントローラ回路、２４…フラッシュメモリ、２８……電源回路、４４…内部電源、４６…接続検出回路。
【図１】
2020144689.tif 000003
【図２】
2020144689.tif 000004
【図３】
2020144689.tif 000005
【図４】
2020144689.tif 000006
【図５】
2020144689.tif 000007
【図６】
2020144689.tif 000008
【図７】
2020144689.tif 000009
【図８】
2020144689.tif 000010
【図９】
2020144689.tif 000011
【図１０】
2020144689.tif 000012
【図１１】
2020144689.tif 000013
【図１２】
2020144689.tif 000014
【図１３】
2020144689.tif 000015