(57)【要約】【課題】コマンドの認証手続を通じて書込み防止を設定又は解除するか、或いは書込み防止属性を変更できるストレージシステムを提供する。【解決手段】  本発明の実施形態による格納装置は、 第１メモリと、前記第１メモリのパーティションを識別するメモリパーティション識別子、第１メモリのパーティションでメモリ領域のための論理ブロックアドレスを表示する開始アドレス情報、及び第１メモリのパーティションでメモリ領域の大きさを表示する大きさ情報を格納する第２メモリと、を含み、第２メモリは、開始アドレス情報及び大きさ情報に関連された書込み可能情報を格納し、前記書込み可能情報は、前記メモリ領域に書込み防止を適用するか否かを表示する。【選択図】      図３
2015191670.tif 000002
【特許請求の範囲】
【請求項１】
第１メモリと、
前記第１メモリのパーティションを識別するメモリパーティション識別子、前記第１メモリのパーティションでメモリ領域のための論理ブロックアドレスを表示する開始アドレス情報、及び前記第１メモリのパーティションで前記メモリ領域の大きさを表示する大きさ情報を格納する第２メモリと、を含み、
前記第２メモリは、前記開始アドレス情報及び前記大きさ情報に関連された書込み可能情報を格納し、
前記書込み可能情報は、前記メモリ領域に書込み防止を適用するか否かを表示する格納装置。
【請求項２】
前記第２メモリは、前記開始アドレス情報及び前記大きさ情報に関連されたタイプ情報を格納し、
前記タイプ情報は、前記メモリ領域を提供するために書込み防止のタイプを表示する請求項１に記載の格納装置。
【請求項３】
格納装置の動作方法において、
要請メッセージ認証コード及び書込み防止情報を含む要請を受信する段階と、
開始アドレス情報と大きさ情報との中で少なくとも１つ及び前記格納装置に格納されたキー（Ｋｅｙ）に基づいてメッセージ認証コードを生成する段階と、
前記生成されたメッセージ認証コード及び前記要請メッセージ認証コードに基づいて前記要請を認証する段階と、
前記要請を認証する段階の結果に基づいて前記要請を処理する段階と、を含み、
前記書込み防止情報は、開始アドレス情報と前記大きさ情報との中で少なくとも１つを含み、
前記開始アドレス情報は、前記格納装置の不揮発性メモリでメモリ領域の開始に対応する論理ブロックアドレスを表示し、
前記大きさ情報は、前記メモリ領域の大きさを表示する動作方法。
【請求項４】
前記書込み防止情報は、前記開始アドレス情報及び前記大きさ情報を全て含み、
前記メッセージ認証コードを生成する段階は、前記開始アドレス情報、前記大きさ情報、及び前記キー（Ｋｅｙ）に基づいて前記メッセージ認証コードを生成する請求項３に記載の動作方法。
【請求項５】
前記書込み防止情報は、前記アドレス情報、前記大きさ情報、及び前記不揮発性メモリでパーティションを識別するパーティション識別子を含み、
前記メッセージ認証コードを生成する段階で、前記メッセージ認証コードが前記開始アドレス情報、前記大きさ情報、及び前記パーティション識別子に基づいて生成される請求項３に記載の動作方法。
【請求項６】
前記書込み防止情報は、前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、及び前記メモリ領域に書込み防止を適用するか否かを表示する書込み可能情報を含み、
前記メッセージ認証コードを生成する段階で、前記メッセージ認証コードが前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、前記書込み可能情報及び前記キー（Ｋｅｙ）に基づいて生成される請求項５に記載の動作方法。
【請求項７】
前記書込み防止情報は、前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、前記書込み可能情報、及び前記メモリ領域を提供するために書込み防止のタイプを表示するタイプ情報を含み、
前記メッセージ認証コードを生成する段階で、前記メッセージ認証コードが前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、前記書込み可能情報、前記タイプ情報、及び前記キー（Ｋｅｙ）に基づいて生成される請求項６に記載の動作方法。
【請求項８】
前記タイプ情報は、少なくとも第１タイプを含むグループから選択されたタイプを表示し、
前記第１タイプは、前記書込み可能情報が前記不揮発性メモリのパワーオン（Ｐｏｗｅｒ  ｏｎ）の後に１回変更されることと、前記書込み可能情報が前記不揮発性メモリのパワーオン（Ｐｏｗｅｒ  ｏｎ）の時に書込み防止を適用するように表示することと、を表示する請求項７に記載の動作方法。
【請求項９】
前記グループは、前記第１タイプ、第２タイプ、及び第３タイプを含み、
前記第２タイプは、前記書込み可能情報の変更の可否と、前記書込み可能情報が前記不揮発性メモリ装置のパワーオン（Ｐｏｗｅｒ  ｏｎ）の後に書込み防止の非適用と、を表示することを表示し、
前記第３タイプは、前記書込み可能情報の変更の可否を表示する請求項８に記載の動作方法。
【請求項１０】
前記メッセージ認証コードを生成する段階は、ＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を生成する請求項３に記載の動作方法。
【請求項１１】
前記要請を認証する段階は、前記メッセージ認証コードを前記要請メッセージ認証コードにはマッチングされる場合に前記要請を認証し、
前記要請を処理する段階は、前記要請が認証される場合に前記要請を処理する請求項３に記載の動作方法。
【請求項１２】
前記要請は、前記要請に含まれた情報と共に前記書込み防止情報をアップデートするように前記格納装置に要請する請求項３に記載の動作方法。
【請求項１３】
前記要請を処理する段階は、
前記要請が処理される場合、アップデートカウンタを増加させる段階と、
前記要請が処理される場合、前記アップデートカウンタのカウント値を含む応答メッセージを伝送する段階と、を含む請求項１２に記載の動作方法。
【請求項１４】
前記要請を処理する段階は、前記要請が処理される場合に前記要請に応答して応答メッセージを伝送する段階を含む請求項３に記載の動作方法。
【請求項１５】
前記要請を処理する段階は、前記書込み防止情報を格納する段階を含む請求項３に記載の動作方法。
【請求項１６】
格納装置の動作方法において、
前記格納装置内の不揮発性メモリの第１領域にデータを書き込むようにする書込みコマンドを受信する段階と、
前記第１領域によってカバーされる１つ以上のメモリ領域に対する格納された書込み防止情報に基づいて、各メモリ領域で前記書込みコマンドの処理の可否を決定する段階と、を含み、
前記書込み防止情報は、前記各メモリ領域の開始に対応する論理ブロックアドレスを表示する開始アドレス情報、前記各メモリ領域の大きさを表示する大きさ情報、及び前記各メモリ領域に対する書込み防止の適用の可否を表示する書込み可能情報を含む動作方法。
【請求項１７】
前記書込みコマンドの処理の可否を決定する段階で、前記第１領域が書込み防止を適用することを表示する書込み可能情報と連関された前記メモリ領域の中で１つと重なる場合、前記書込みコマンドは、処理されないように決定される請求項１６に記載の動作方法。
【請求項１８】
前記書込みコマンドの処理の可否を決定する段階で、前記書込みコマンドと連関されたアドレスが前記メモリ領域の中で１つ内に属する場合、前記第１領域は、前記メモリ領域の中で１つと重なるように決定される請求項１６に記載の動作方法。
【請求項１９】
前記書込み防止情報は、前記各メモリ領域に対して、前記不揮発性メモリで前記各メモリ領域を含むパーティションを識別するパーティション識別子をさらに含み、
前記大きさ情報が基準値で設定される場合、前記大きさ情報は、書込み防止されるように識別されたパーティションの全体を表示し、
前記書込みコマンドの処理の可否を決定する段階で、前記第１領域が前記基準値で設定された大きさ情報と連関された前記メモリ領域の中で１つと重なる場合、前記書込みコマンドは、処理されないように決定される請求項１６に記載の動作方法。
【請求項２０】
不揮発性メモリと、
要請メッセージ認証コード及び書込み防止情報を含む要請を受信するコントローラと、を含み、
前記書込み防止情報は、開始アドレス情報と前記大きさ情報との中で少なくとも１つを含み、
前記開始アドレス情報は、前記不揮発性メモリのメモリ領域の開始に対応する論理ブロックアドレスを表示し、
前記大きさ情報は、前記メモリ領域の大きさを表示し、
前記コントローラは、前記開始アドレス情報と前記大きさ情報との中で少なくとも１つ及び前記格納装置に格納されたキー（Ｋｅｙ）に基づいてメッセージ認証コードを生成し、
前記コントローラは、前記生成されたメッセージ認証コード及び前記要請メッセージ認証コードには基づいて前記要請を認証し、
前記コントローラは、前記認証結果に基づいて前記要請を処理する格納装置。
【請求項２１】
不揮発性メモリと、
前記不揮発性メモリの第１領域にデータを書き込むようにする書込みコマンドを受信し、前記第１領域によってカバーされる１つ以上のメモリ領域に対する格納された書込み防止情報に基づいて各メモリ領域で前記書込みコマンドの処理の可否を決定するコントローラと、を含み、
前記書込み防止情報は、前記各メモリ領域の開始に対応する論理ブロックアドレスを表示する開始アドレス情報、前記各メモリ領域の大きさを表示する大きさ情報、及び前記各メモリ領域に対する書込み防止の適用の可否を表示する書込み可能情報を含む格納装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムに係り、より詳細にはストレージシステム及びそれへの書込み防止遂行方法に関する。
【背景技術】
【０００２】
ストレージシステム（ｓｔｏｒａｇｅ  ｓｙｓｔｅｍ）はホスト（ｈｏｓｔ）と格納装置（ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）とで構成され、ＵＦＳ（ｕｎｉｖｅｒｓａｌ  ｆｌａｓｈ  ｓｔｏｒａｇｅ）、ＳＡＴＡ（ｓｅｒｉａｌ  ＡＴＡ）、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｍａｌｌ  ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ＳＣＳＩ）、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭＭＣ）等のような多様なインターフェイス標準を介して連結される。
【０００３】
従来の格納装置はホストから予め定められたコマンドを使用すれば、誰でも書込み防止を設定し、解除することができる。また、書込み防止属性も該当コマンドを使用して、ストレージの全体、パーティション（ｐａｒｔｉｔｉｏｎ）の全体、又はパーティションを一定の大きさに分けたグループ（ｇｒｏｕｐ）別に指定することができる。いずれも、書込み防止を設定しても誰でも書込み防止を解除するか、或いは書込み防止の構成を変更することができる。
【０００４】
また、従来は最初に特定パーティションを書込み防止属性適用を目的に分けて使用すると、以後のパーティションの大きさ変更が動的に不可能であるので、柔軟な書込み防止適用が難しかった。パーティションを定まった大きさに分けたグループ（ｇｒｏｕｐ）毎に属性を指定して使用すれば、動的な運営は可能であるが、格納装置の格納空間を浪費することになる。
例えば、アンドロイドシステムでは、ブートローダ（ｂｏｏｔ  ｌｏａｄｅｒ）やカーネルイメージ（ｋｅｒｎｅｌ  ｉｍａｇｅ）に書込み防止を設定することができる。しかし、誰でも書込み防止設定を解除し、構成を変更できるので、ルート化（ｒｏｏｔｉｎｇ）のような許可されない変更に曝される危険が存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８，２９６，４６７号公報
【特許文献２】米国特許第８，３９２，６８３号公報
【特許文献３】米国特許第８，６２１，６２０号公報
【特許文献４】米国特許公開第２０１２／０２５５０１７号明細書
【特許文献５】米国特許公開第２０１３／０２６８７７８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は上述した技術的問題点を解決するために提案されたものであって、本発明の目的はコマンドの認証手続を通じて書込み防止を設定又は解除するか、或いは書込み防止属性を変更できるストレージシステムを提供することにある。
本発明の他の目的は書込み防止領域をパーティションの全体又はパーティションを定められた大きさに分けたグループ単位に指定せず、ホストのＬＢＡ単位に指定するストレージシステムの動作方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の実施形態による格納装置は、第１メモリと、前記第１メモリのパーティションを識別するメモリパーティション識別子、前記第１メモリのパーティションでメモリ領域のための論理ブロックアドレスを表示する開始アドレス情報、及び前記第１メモリのパーティションで前記メモリ領域の大きさを表示する大きさ情報を格納する第２メモリと、を含み、前記第２メモリは、前記開始アドレス情報及び前記大きさ情報に関連された書込み可能情報を格納し、前記書込み可能情報は、前記メモリ領域に書込み防止を適用するか否かを表示する。
実施形態として、前記第２メモリは、前記開始アドレス情報及び前記大きさ情報に関連されたタイプ情報を格納し、前記タイプ情報は、前記メモリ領域を提供するために書込み防止のタイプを表示する。
【０００８】
本発明の実施形態による格納装置の動作方法は、要請メッセージ認証コード及び書込み防止情報を含む要請を受信する段階と、開始アドレス情報と大きさ情報との中で少なくとも１つ及び前記格納装置に格納されたキー（Ｋｅｙ）に基づいてメッセージ認証コードを生成する段階と、前記生成されたメッセージ認証コード及び前記要請メッセージ認証コードに基づいて前記要請を認証する段階と、前記要請を認証する段階の結果に基づいて前記要請を処理する段階と、を含み、前記書込み防止情報は、開始アドレス情報と前記大きさ情報との中で少なくとも１つを含み、前記開始アドレス情報は、前記格納装置の不揮発性メモリでメモリ領域の開始に対応する論理ブロックアドレスを表示し、前記大きさ情報は、前記メモリ領域の大きさを表示する。
【０００９】
実施形態として、前記書込み防止情報は、前記開始アドレス情報及び前記大きさ情報を全て含み、前記メッセージ認証コードを生成する段階は、前記開始アドレス情報、前記大きさ情報、及び前記キー（Ｋｅｙ）に基づいて前記メッセージ認証コードを生成する。
実施形態として、前記書込み防止情報は、前記アドレス情報、前記大きさ情報、及び前記不揮発性メモリでパーティションを識別するパーティション識別子を含み、前記メッセージ認証コードを生成する段階で、前記メッセージ認証コードが前記開始アドレス情報、前記大きさ情報、及び前記パーティション識別子に基づいて生成される。
【００１０】
実施形態として、前記書込み防止情報は、前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、及び前記メモリ領域に書込み防止を適用するか否かを表示する書込み可能情報を含み、前記メッセージ認証コードを生成する段階で、前記メッセージ認証コードが前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、前記書込み可能情報及び前記キー（Ｋｅｙ）に基づいて生成される。
【００１１】
実施形態として、前記書込み防止情報は、前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、前記書込み可能情報、及び前記メモリ領域を提供するために書込み防止のタイプを表示するタイプ情報を含み、前記メッセージ認証コードを生成する段階で、前記メッセージ認証コードが前記開始アドレス情報、前記大きさ情報、前記パーティション識別子、前記書込み可能情報、前記タイプ情報、及び前記キー（Ｋｅｙ）に基づいて生成される。
【００１２】
実施形態として、前記タイプ情報は、少なくとも第１タイプを含むグループから選択されたタイプを表示し、前記第１タイプは、前記書込み可能情報が前記不揮発性メモリのパワーオン（Ｐｏｗｅｒ  ｏｎ）の後に１回変更されることと、前記書込み可能情報が前記不揮発性メモリのパワーオン（Ｐｏｗｅｒ  ｏｎ）の時に書込み防止を適用するように表示することと、を表示する。
実施形態として、前記グループは、前記第１タイプ、第２タイプ、及び第３タイプを含み、前記第２タイプは、前記書込み可能情報の変更の可否と、前記書込み可能情報が前記不揮発性メモリ装置のパワーオン（Ｐｏｗｅｒ  ｏｎ）の後に書込み防止の非適用と、を表示することを表示し、前記第３タイプは、前記書込み可能情報の変更の可否を表示する。
【００１３】
実施形態として、前記メッセージ認証コードを生成する段階は、ＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を生成する。
実施形態として、前記要請を認証する段階は、前記メッセージ認証コードを前記要請メッセージ認証コードにはマッチングされる場合に前記要請を認証し、前記要請を処理する段階は、前記要請が認証される場合に前記要請を処理する。
実施形態として、前記要請は、前記要請に含まれた情報と共に前記書込み防止情報をアップデートするように前記格納装置に要請する。
【００１４】
実施形態として、前記要請を処理する段階は、前記要請が処理される場合、アップデートカウンタを増加させる段階と、前記要請が処理される場合、前記アップデートカウンタのカウント値を含む応答メッセージを伝送する段階と、を含む。
実施形態として、前記要請を処理する段階は、前記要請が処理される場合に前記要請に応答して応答メッセージを伝送する段階を含む。
実施形態として、前記要請を処理する段階は、前記書込み防止情報を格納する段階を含む。
【００１５】
本発明の実施形態による格納装置の動作方法は、前記格納装置内の不揮発性メモリの第１領域にデータを書き込むようにする書込みコマンドを受信する段階と、前記第１領域によってカバーされる１つ以上のメモリ領域に対する格納された書込み防止情報に基づいて、各メモリ領域で前記書込みコマンドの処理の可否を決定する段階と、を含み、前記書込み防止情報は、前記各メモリ領域の開始に対応する論理ブロックアドレスを表示する開始アドレス情報、前記各メモリ領域の大きさを表示する大きさ情報、及び前記各メモリ領域に対する書込み防止の適用の可否を表示する書込み可能情報を含む。
【００１６】
実施形態として、前記書込みコマンドの処理の可否を決定する段階で、前記第１領域が書込み防止を適用することを表示する書込み可能情報と連関された前記メモリ領域の中で１つと重なる場合、前記書込みコマンドは、処理されないように決定される。
実施形態として、前記書込みコマンドの処理の可否を決定する段階で、前記書込みコマンドと連関されたアドレスが前記メモリ領域の中で１つ内に属する場合、前記第１領域は、前記メモリ領域の中で１つと重なるように決定される。
【００１７】
実施形態として、前記書込み防止情報は、前記各メモリ領域に対して、前記不揮発性メモリで前記各メモリ領域を含むパーティションを識別するパーティション識別子をさらに含み、前記大きさ情報が基準値で設定される場合、前記大きさ情報は、書込み防止されるように識別されたパーティションの全体を表示し、前記書込みコマンドの処理の可否を決定する段階で、前記第１領域が前記基準値で設定された大きさ情報と連関された前記メモリ領域の中で１つと重なる場合、前記書込みコマンドは、処理されないように決定される。
【００１８】
本発明の実施形態による格納装置は、不揮発性メモリと、要請メッセージ認証コード及び書込み防止情報を含む要請を受信するコントローラと、を含み、前記書込み防止情報は、開始アドレス情報と前記大きさ情報との中で少なくとも１つを含み、前記開始アドレス情報は、前記不揮発性メモリのメモリ領域の開始に対応する論理ブロックアドレスを表示し、前記大きさ情報は、前記メモリ領域の大きさを表示し、前記コントローラは、前記開始アドレス情報と前記大きさ情報との中で少なくとも１つ及び前記格納装置に格納されたキー（Ｋｅｙ）に基づいてメッセージ認証コードを生成し、前記コントローラは、前記生成されたメッセージ認証コード及び前記要請メッセージ認証コードには基づいて前記要請を認証し、前記コントローラは、前記認証結果に基づいて前記要請を処理する。
【００１９】
本発明の実施形態による格納装置は不揮発性メモリ、及び前記不揮発性メモリの第１領域にデータを書き込むようにする書込みコマンドを受信し、前記第１領域によってカバーされる１つ以上のメモリ領域に対する格納された書込み防止情報に基づいて各メモリ領域で前記書込みコマンドの処理の可否を決定するコントローラを含み、
前記書込み防止情報は、不揮発性メモリと、前記不揮発性メモリの第１領域にデータを書き込むようにする書込みコマンドを受信し、前記第１領域によってカバーされる１つ以上のメモリ領域に対する格納された書込み防止情報に基づいて各メモリ領域で前記書込みコマンドの処理の可否を決定するコントローラと、を含み、前記書込み防止情報は、前記各メモリ領域の開始に対応する論理ブロックアドレスを表示する開始アドレス情報、前記各メモリ領域の大きさを表示する大きさ情報、及び前記各メモリ領域に対する書込み防止の適用の可否を表示する書込み可能情報を含む。
【発明の効果】
【００２０】
本発明は、Ｋｅｙ−ｅｄ  Ｃｒｙｐｔｏ  Ｈａｓｈ、秘密キー、及びＲｅｑｕｅｓｔ  Ｃｏｕｎｔ等を利用する認証を通じて書込み防止を設定し、ホストのＬＢＡ単位に書込み防止領域を設定する。本発明は認証されないホストの書込み防止設定を制限して意図しなかったデータの変更を防ぐことができる。また、本発明はＬＢＡ単位に書込み防止領域を変更することによって、ホストから動的に、かつ柔軟な書込み防止動作を遂行することができる。
【図面の簡単な説明】
【００２１】
【図１】ストレージシステムを示すブロック図。
【図２】フラッシュメモリに基づくＵＦＳシステムを示すブロック図。
【図３】本発明の実施形態によるメモリシステムを示すブロック図。
【図４】ホストの論理的ブロックアドレス（ＬＢＡ）単位に書込み防止領域を指定する例を示す概念図。
【図５】パーティションの全体に対して書込み防止が適用された例を示す概念図。
【図６】ＷＰデスクリプタがＮＶ−Ｐタイプに設定された例を示す概念図。
【図７】本発明の実施形態によるストレージシステムの書込み防止を設定するか、或いは解除するための要請（ｒｅｑｕｅｓｔ）と応答（ｒｅｓｐｏｎｓｅ）とを示すタイミング図。
【図８】ＨＭＡＣを計算する方法を説明するための概念図。
【図９】図３に図示されたストレージシステムのＨＭＡＣ認証方法を例示的に示す順序図。
【図１０】図３に図示されたストレージシステムの書込み防止遂行方法を説明するための順序図。
【図１１】本発明の実施形態によるストレージシステムに１つ又はそれ以上の書込み防止領域が設定された例を示す概念図。
【図１２】図３のフラッシュメモリ基盤のＵＦＳシステムに基づいた格納装置のハードウェア構成を示すブロック図。
【図１３】格納装置のメモリコントローラで中央処理装置によって実行されるソフトウェア階層構造を示すブロック図。
【図１４】本発明の実施形態による格納装置をソリッドステートドライブ（ＳＳＤ）に適用した例を示すブロック図。
【図１５】図１４に図示されたＳＳＤコントローラ４２１０の構成を例示的に示すブロック図。
【図１６】本発明の実施形態による格納装置を電子装置で具現した例を示すブロック図。
【図１７】本発明の実施形態による使用者装置の格納装置をメモリカードに適用した例を示す図。
【発明を実施するための形態】
【００２２】
以下で、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施できるよう詳細に説明するために、本発明の実施形態を添付した図面を参照して説明する。
図１はストレージシステムを示すブロック図である。図１を参照すれば、ストレージシステム１０００はホスト１１００と格納装置１２００とを含む。ホスト１１００と格納装置１２００とはＵＦＳ（ｕｎｉｖｅｒｓａｌ  ｆｌａｓｈ  ｓｔｏｒａｇｅ）、ＳＡＴＡ（ｓｅｒｉａｌ  ＡＴＡ）、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｍａｌｌ  ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ＳＣＳＩ）、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭＭＣ）等のような標準インターフェイスを介して連結することができる。
【００２３】
図１を参照すれば、ホストインターフェイス１１０１と装置インターフェイス１２０１とはデータや信号を通信するためのデータライン（ＤＩＮ、ＤＯＵＴ）と電源を提供するための電源ラインＰＷＲとに連結される。ホスト１１００はプロセッサ１１０５、ホストコントローラ１１３０、及びバッファメモリ１１４０を含む。プロセッサ１１０５はアプリケーションプログラム１１１０及び装置ドライバ１１２０を含む。アプリケーションプログラム１１１０はホスト１１００で実行される多様な応用プログラムの中の１つである。装置ドライバ１１２０はホスト１１００に連結されて使用される周辺装置を駆動するためのものであって、図１では格納装置１２００を駆動する。アプリケーションプログラム１１１０や装置ドライバ１１２０はバッファメモリ１１４０に格納されるか、或いはローディングされる分離されたソフトウェアモジュール（ｓｏｆｔｗａｒｅ  ｍｏｄｕｌｅ）である。
【００２４】
他の実施形態において、アプリケーションプログラム１１１０によって構成されたハードウェアロジック回路及びファームウェアとして装置ドライバ１１２０はプロセッサに１１０５に代替されてもよい。その他の実施形態として、プロセッサ及びハードウェアロジック回路の組合わせを使用してもよい。その他の実施形態として、プロセッサ１１０５又はハードウェアロジック回路はホストコントローラ１１３０に内装されてもよい。ホストコントローラ１１３０はホストインターフェイス１１０１を介して、データを格納装置１２００に提供するか、或いは格納装置１２００からデータを受信する。例えば、ホストコントローラ１１３０は１つ以上のプロセシングユニットＣＰＵを含んでもよい。他の例として、ホストコントローラ１１３０はファームウェアによって構成されるハードウェアロジック回路を含んでもよい。その他の例として、ホストコントローラ１１３０はＣＰＵ及びハードウェアロジック回路の組合わせであってもよい。
【００２５】
バッファメモリ１１４０はホスト１１００のメインメモリ（ｍａｉｎ  ｍｅｍｏｒｙ）又はキャッシュメモリとして使用される。また、バッファメモリ１１４０はアプリケーションプログラム１１１０や装置ドライバ１１２０のようなソフトウェアを駆動するための駆動メモリ（ｄｒｉｖｉｎｇ  ｍｅｍｏｒｙ）として使用されてもよい。
格納装置１２００は装置インターフェイス１２０１を介してホスト１１００と連結される。格納装置１２００は不揮発性メモリ１２１０、装置コントローラ１２３０、及びバッファメモリ１２４０を含む。不揮発性メモリ１２１０としてはフラッシュメモリ、ＭＲＡＭ、ＰＲＡＭ、ＦｅＲＡＭ等が含まれる。装置コントローラ１２３０は不揮発性メモリ１２１０の書込み、読出し、消去等のような全般的な動作を制御する。装置コントローラ１２３０は１つ以上のプログラムされたＣＰＵ、構成されたハードウェアロジック回路、又はこれらの結合を含む。装置コントローラ１２３０はアドレス又はデータバスを介して不揮発性メモリ１２１０又はバッファメモリ１２４０とデータを送受信する。
【００２６】
バッファメモリ１２４０は不揮発性メモリ１２１０に格納される又は不揮発性メモリ１２１０から読み出したデータを一時的に格納するのに使用される。バッファメモリ１２４０は揮発性メモリ又は不揮発性メモリで具現されてもよい。バッファメモリ１２４０は装置コントローラ１２３０内に含まれるか、或いは装置コントローラ１２３０と１つのチップで具現されてもよい。
【００２７】
図１に図示されたストレージシステム１０００はフラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）に基づくモバイル装置又は他の電子装置に適用することができる。以下ではＵＦＳ（Ｕｎｉｖｅｒｓａｌ  Ｆｌａｓｈ  Ｓｔｏｒａｇｅ）を例として、図１に図示されたストレージシステム１０００の構成や動作方法をさらに詳細に説明する。
【００２８】
図２はフラッシュメモリに基づくＵＦＳシステムを示すブロック図である。図２を参照すれば、ＵＦＳシステム２０００はＵＦＳホスト２１００とＵＦＳ装置２２００とを含む。
ＵＦＳホスト２１００はプロセッサ２１０５、ホストコントローラ２１３０、及びバッファＲＡＭ２１４０を含む。プロセッサ２１０５はアプリケーションプログラム２１１０及び装置ドライバ２１２０を実行する。アプリケーションプログラム２１１０はホスト２１００で実行される多様な応用プログラムの中の１つである。装置ドライバ２１２０はホスト２１００に連結されて使用される周辺装置を駆動するためのものであって、例えば、ＵＦＳ装置２２００を駆動する。アプリケーションプログラム２１１０や装置ドライバ２１２０はバッファＲＡＭ２１４０に格納されるか、或いはローディングされる分離されたソフトウェアモジュール（ｓｏｆｔｗａｒｅ  ｍｏｄｕｌｅ）である。
【００２９】
他の実施形態として、アプリケーションプログラム２１１０によって構成されたハードウェアロジック回路及びファームウェアとして装置ドライバ２１２０はプロセッサ２１０５に代替されてもよい。その他の実施形態として、プロセッサ及びハードウェアロジック回路の組合わせを使用してもよい。その他の実施形態として、プロセッサ２１０５又はハードウェアロジック回路はホストコントローラ２１３０に内装されてもよい。ホストコントローラ２１３０はホストインターフェイス２１０１を介して、データをＵＦＳ装置２２００に提供するか、或いはＵＦＳ装置２２００からデータを受信する。ホストコントローラ２１３０は、図１のホストコントローラ１１３０のように、１つ以上のＣＰＵ、ハードウェアロジック回路、又はこれらの組合わせを含む。図２に示したように、ホストコントローラ２１３０はコマンドキュー（ＣＭＤ  ｑｕｅｕｅ、２１３１）、ホストＤＭＡ２１３２、及び電源マネージャ２１３３を含む。
【００３０】
アプリケーションプログラム２１１０と装置ドライバ２１２０とを実行するホストコントローラ２１３０で生成されたコマンド（例えば、書込みコマンド）はホストコントローラ２１３０のコマンドキュー２１３１に入力される。コマンドキュー２１３１はＵＦＳ装置２２００に提供されるコマンドを順に格納する。コマンドキュー２１３１に格納されたコマンドはホストＤＭＡ２１３２に提供される。ホストＤＭＡ２１３２はコマンドをホストインターフェイス２１０１を介してＵＦＳ装置２２００へ送る。
【００３１】
続いて、図２を参照すれば、ＵＦＳ装置２２００はフラッシュメモリ２２１０、装置コントローラ２２３０、及びバッファＲＡＭ２２４０を含む。そして、装置コントローラ２２３０は１つ以上のプログラムされたＣＰＵ、構成されたハードウェアロジック回路又はこれらの組合わせを含む。装置コントローラ２２３０はコマンドマネージャ（ＣＭＤ  ｍａｎａｇｅｒ、２２３２）、フラッシュＤＭＡ２２３３、保安マネージャ（ｓｅｃｕｒｉｔｙ  ｍａｎａｇｅｒ、２２３４）、バッファマネージャ２２３５、フラッシュ変換階層（ＦＴＬ；Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ、２２３６）、及びフラッシュマネージャ２２３７を含む。
【００３２】
ＵＦＳホスト２１００からＵＦＳ装置２２００に入力されたコマンドは装置インターフェイス２２０１を介してコマンドマネージャ２２３２に提供される。コマンドマネージャ２２３２はＵＦＳホスト２１００から提供されたコマンドを解釈し、保安マネージャ２２３４を利用して入力されたコマンドを認証する。コマンドマネージャ２２３２はバッファマネージャ２２３５を介してデータが入力されるようにバッファＲＡＭ２２４０を割当する。コマンドマネージャ２２３２はデータ伝送準備が完了されれば、ＵＦＳホスト２１００へＲＴＴ（ＲＥＡＤＹ＿ＴＯ＿ＴＲＡＮＳＦＥＲ）  ＵＰＩＵを送る。ＵＦＳ標準（ｓｔａｎｄａｒｄ）に基づいたパケット（ｐａｃｋｅｔ）はＵＰＩＵに参照される。
【００３３】
ＵＦＳホスト２１００はＲＴＴ  ＵＰＩＵに応答してデータをＵＦＳ装置２２００へ伝送する。データはホストＤＭＡ２１３２とホストインターフェイス２１０１とを介してＵＦＳ装置２２００へ伝送される。ＵＦＳ装置２２００は提供されたデータをバッファマネージャ２２３５を介してバッファＲＡＭ２２４０に格納する。バッファＲＡＭ２２４０に格納されたデータはフラッシュＤＭＡ２２３３を介してフラッシュマネージャ２２３７に提供される。フラッシュマネージャ２２３７はフラッシュ変換階層２２３６のアドレスマッピング情報を参照して、フラッシュメモリ２２１０の選択されたアドレスにデータを格納する。
【００３４】
ＵＦＳ装置２２００はコマンドに必要であるデータ伝送とプログラムとが完了すれば、インターフェイスを介してＵＦＳホスト２１００に応答信号（ｒｅｓｐｏｎｓｅ）を送り、コマンド完了を通知する。ＵＦＳホスト２１００は応答信号を伝送されたコマンドに対する完了の可否をホストコントローラ２１３０で実行する装置ドライバ２１２０とアプリケーションプログラム２１１０とに通知し、該当コマンドに対する動作を終了する。
ＵＦＳシステム２０００がモバイル装置で使用される場合、信頼性及び保安性を提供することは書込み防止データを設定及び解除することを含む。本発明の実施形態によるＵＦＳシステム２０００はＫｅｙ−ｅｄ  Ｃｒｙｐｔｏ  Ｈａｓｈ、秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）、及び要請カウント（ｒｅｑｕｅｓｔ  ｃｏｕｎｔ）を使用してコマンドの認証手続を遂行する。
【００３５】
本発明は認証手続を通じて書込み防止（ｗｒｉｔｅ  ｐｒｏｔｅｃｔ）を設定又は解除するか、或いは書込み防止属性を変更することができる。また、本発明はホスト２１００の論理的ブロックアドレスＬＢＡ単位に書込み防止領域を指定することができる。
【００３６】
Ｉ．ＷＰ（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）デスクリプタ（Ｄｅｓｃｒｉｐｔｏｒ）構造
図３は本発明の他の実施形態を示すブロック図である。例えば、ホスト３１００は図２のＵＦＳホスト２１００と同一である。格納装置３２００は図２のＵＦＳ装置と同一である。他の例として、格納装置３２００は図１２に図示されたハードウェア構成を有してもよい。
図１２は図３のフラッシュメモリ基盤のＵＦＳシステムに基づいた格納装置のハードウェア構成を示すブロック図である。図１３は格納装置３２００のメモリコントローラ３２００ｂで中央処理装置３２１０によって実行されるソフトウェア階層構造を示すブロック図である。
【００３７】
図１２を参照すれば、格納装置３２００はフラッシュメモリ３２００ａ及びメモリコントローラ３２００ｂを含む。メモリコントローラ３２００ｂはホストインターフェイスコントローラ３２０１を介してホスト３１００と連結され、フラッシュインターフェイスコントローラ３２０２を介してフラッシュメモリ３２００ａと連結される。メモリコントローラ３２００ｂは中央処理装置３２１０、コードＲＡＭ３２２１、データＲＡＭ３２２２、バッファＲＡＭ３２２３、ＲＯＭ３２３０、メモリを直接アクセスするためのＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ、３２４０）、データ保安のためのＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ、３２５０）とＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、３２６０）、及びデータエラー訂正のためのＥＣＣ３２７０を含む。ＤＭＡ３２４０、ＨＭＡＣ３２５０、ＡＥＳ３２６０、及びＥＣＣ３２７０はハードウェアロジック回路であってもよい。
【００３８】
中央処理装置３２１０はメモリコントローラ３２００ｂの諸般動作を制御する。例えば、中央処理装置３２１０はブーティング動作の時にフラッシュメモリ３２００ａ又はＲＯＭ３２３０に格納されたブートコードをコードＲＡＭ３２２１にローディングすることによって、格納装置３２００のブーティング動作を制御する。
【００３９】
図１３を参照すれば、格納装置３２００のソフトウェア階層構造はホストインターフェイスレイヤ（ＨＩＬ；ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ  ｌａｙｅｒ、１１０）、保安レイヤ（ＳＥＬ；ｓｅｃｕｒｉｔｙ  ｌａｙｅｒ、１１５）、フラッシュ変換レイヤ（ＦＴＬ；ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ、１２０）、フラッシュインターフェイスレイヤ（ＦＩＬ；ｆｌａｓｈ  ｉｎｔｅｒｆａｃｅ  ｌａｙｅｒ、１３０）、及びフラッシュリカバリレイヤ（ＦＲＬ；ｆｌａｓｈ  ｒｅｃｏｖｅｒｙ  ｌａｙｅｒ、１４０）を含む。
【００４０】
中央処理装置３２１０はホストインターフェイスレイヤ（ＨＩＬ、１１０）を利用して、ホストインターフェイスコントローラ３２０１を介してホストからデータを受信し、データＲＡＭ３２２１に格納する動作を制御する。ホストインターフェイスレイヤ（ＨＩＬ、１１０）はコマンドマネージャ３２３２を含む。中央処理装置３２１０はホストとデータを送受信する時、保安レイヤ（ＳＥＬ、１１５）を利用して、ホストのコマンドを認証し、書込み防止領域を設定する。保安レイヤ（ＳＥＬ、１１５）は保安マネージャ３２３４を含む。
【００４１】
中央処理装置３２１０はフラッシュインターフェイスレイヤ（ＦＩＬ、１３０）を利用してデータＲＡＭ３２２２又はバッファＲＡＭ３２２３に格納されたデータをフラッシュインターフェイスコントローラ３２０２を介してフラッシュメモリ３２００ａに提供する。また、中央処理装置３２１０はフラッシュ変換レイヤ（ＦＴＬ、１２０）を利用して、フラッシュメモリ３２００ａのアドレスマッピング動作を管理する。そして、中央処理装置３２１０はフラッシュリカバリレイヤ（ＦＲＬ、１４０）を利用して、フラッシュメモリ３２００ａのリカバリ動作を管理する。
【００４２】
ＷＰデスクリプタはフラッシュメモリ２２１０又は３２００ａ又はＲＯＭ（図示せず）等のような不揮発性メモリに格納されており、パワーオン（ｐｏｗｅｒ  ｏｎ）の時にＤＲＡＭ又はＳＲＡＭ等（例えばバッファＲＡＭ、２２４０又は３２２３）のような揮発性メモリにアップロードされる。ＷＰデスクリプタは書込み防止を設定又は解除するか、或いは書込み防止属性を変更するのに使用される。
表１はＷＰデスクリプタの構造及び説明を例示的に示す。
【００４３】
【表１】
2015191670.tif 000003
【００４４】
表１を参照すれば、ＷＰデスクリプタはパーティションＩＤ（ＰＩＤ）、開始ＬＢＡ、大きさ（Ｌｅｎｇｔｈ）、書込み可能（ｗｒｉｔａｂｌｅ）、及びタイプ（ｔｙｐｅ）で構成される。パーティションＩＤ（ＰＩＤ）は書込み防止を適用するフラッシュメモリのパーティションを識別（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）するためのものである。開始ＬＢＡは書込み防止を適用する論理的ブロックの開始アドレスを意味する。大きさ（ｌｅｎｇｔｈ）は書込み防止を適用する大きさを意味する。
【００４５】
図４はホストの論理的ブロックアドレスＬＢＡ単位に書込み防止領域を指定した例を示す概念図である。図４を参照すれば、パーティションＩＤは１である。即ち、第１パーティション（ｐａｒｔｉｔｉｏｎ  １）が識別される。ＷＰデスクリプタの開始ＬＢＡは１００であり、大きさ（ｌｅｎｇｔｈ）は９００である。したがって、書込み防止領域はＬＢＡ１００で開始し、ＬＢＡ１０００で終了する。即ち、開始ＬＢＡ及び長さは、書込み防止される、パーティションのメモリ領域を定義する。
【００４６】
図５はパーティションの全体に対して書込み防止が適用された例を示す概念図である。表１を参照すれば、ＷＰデスクリプタの長さが０に設定されていれば、パーティションの全体に対して書込み防止（ｗｒｉｔｅ  ｐｒｏｔｅｃｔ）が適用される。図５の例で、ＷＰデスクリプタのパーティションＩＤは１であり、大きさ（ｌｅｎｇｔｈ）は０に設定されている。したがって、書込み防止は第１パーティション（ｐａｒｔｉｔｉｏｎ  １）の全体に適用される。
【００４７】
続いて、表１を参照すれば、書込み可能（ｗｒｉｔａｂｌｅ）は書込み防止を適用するか否かを示す。書込み可能（ｗｒｉｔａｂｌｅ）はＴｒｕｅ又はＦａｌｓｅに設定される。書込み可能がＴｒｕｅに設定されていれば、該当領域に書き込むことができる。即ち、書込み防止が適用されない。Ｆａｌｓｅに設定されていれば、該当領域に書き込むことができない。即ち該当領域に書込み防止が適用される。
【００４８】
続いて、表１を参照すれば、書込み防止は３つのタイプに区分される。Ｐタイプはパワーオフ（ｐｏｗｅｒ  ｏｆｆ）又はハードウェアリセット（ＨＷ  ｒｅｓｅｔ）の前までのみに書込み防止が維持される。パワーオン（ｐｏｗｅｒ  ｏｎ）の後には、書込み可能が常にＴｒｕｅに変更される。書込み可能がＦａｌｓｅに設定されれば、パワーオフ又はハードウェアリセットの前まで変更することができない。ＮＶタイプはホスト２１００又は３１００の要請によってのみ書込み可能を変更することができる。ＮＶ−Ｐタイプはホスト３１００の要請によって書込み可能を変更することができる。しかし、ＷＰデスクリプタがＮＶ−Ｐタイプに設定された場合には、パワーオフ又はハードウェアリセットの後に書込み可能は常にＦａｌｓｅに変更される。
【００４９】
図６はＷＰデスクリプタがＮＶ−Ｐタイプに設定された例を示す概念図である。図６を参照すれば、ＷＰデスクリプタのパーティションＩＤは１であり、開始ＬＢＡは１００であり、大きさ（ｌｅｎｇｔｈ）は９００であり、書込み可能はＴｒｕｅであり、タイプはＮＶ−Ｐに設定されている。ストレージシステム２０００又は３０００がパワーオフされるか、或いはハードウェアがリセットされれば、ＷＰデスクリプタがＮＶ−Ｐタイプに設定されて存在するので、書込み可能はＦａｌｓｅに変更される。即ち、書込み防止が適用されるので、該当領域ＬＢＡ１００〜ＬＢＡ１０００に書き込むことができなくなる。
表２は図３に図示されたＷＰデスクリプタの初期値を例示的に示す。ＷＰデスクリプタには表２のような値がデフォルト（ｄｅｆａｕｌｔ）として設定される。
【００５０】
【表２】
2015191670.tif 000004
【００５１】
表２を参照すれば、格納装置３２００の格納領域はｎ個のパーティション（ｐａｒｔｉｔｉｏｎ）に区分される。第１乃至第ｎパーティションＰＩＤ１〜ＰＩＤｎの開始ＬＢＡと大きさとは０に設定されている。書込み防止の大きさ（ｌｅｎｇｔｈ）が０に設定されているので、全体のパーティションに対して書込み防止が適用される。書込み可能は全てＴｒｕｅに設定されており、書込み防止タイプは全てＰに設定されている。
表３はストレージシステム２０００又は３０００が動作しているいずれかの始点のＷＰデスクリプタの構成を例示的に示す。
【００５２】
【表３】
2015191670.tif 000005
【００５３】
表３を参照すれば、第１パーティションＰＩＤ１の開始ＬＢＡは０であり、大きさは５０００である。書込み可能はＦａｌｓｅに設定されており、書込み防止タイプはＰである。第２パーティションＰＩＤ２の開始ＬＢＡは０であり、大きさは４０００である。書込み可能はＴｒｕｅに設定されており、書込み防止タイプはＮＶ−Ｐである。即ち、第２パーティションＰＩＤ２の書込み防止領域ＬＢＡ０〜ＬＢＡ４０００はホスト３１００の要請によって書込み可能を変更することができ、パワーオフ又はハードウェアリセットの後には書込み可能は常にＦａｌｓｅに変更される。
【００５４】
第３パーティションＰＩＤ３の開始ＬＢＡは９０００であり、大きさは１００００である。書込み可能はＴｒｕｅに設定されており、書込み防止タイプはＰである。第ｎパーティションＰＩＤｎの開始ＬＢＡは０であり、大きさは２０００である。書込み可能はＦａｌｓｅに設定されており、書込み防止タイプはＮＶである。第ｎパーティションＰＩＤｎの書込み可能（ｗｒｉｔａｂｌｅ）はホスト３１００の要請によってのみ変更される。
表４はパワーオフ（ｐｏｗｅｒ  ｏｆｆ）又はハードウェアリセット（ＨＷ  ｒｅｓｅｔ）の後にＷＰデスクリプタが変更された例を示す。
【００５５】
【表４】
2015191670.tif 000006
【００５６】
表４を参照すれば、第１パーティションＰＩＤ１の書込み可能は、表３と比較して、ＦａｌｓｅからＴｒｕｅに変更される。表３で、第２パーティションＰＩＤ２は書込み可能がＴｒｕｅに設定されている。書込み防止タイプがＮＶ−Ｐであるので、パワーオフ又はハードウェアのリセットが発生すれば、ＷＰデスクリプタの書込み可能（ｗｒｉｔａｂｌｅ）はＴｒｕｅからＦａｌｓｅに変更される。第３パーティションＰＩＤ３の書込み可能はＴｒｕｅを維持する。第ｎパーティションＰＩＤｎの書込み防止タイプはＮＶであるので、書込み可能（ｗｒｉｔａｂｌｅ）はホスト３１００の要請によって変更することができる。
【００５７】
II．書込み防止を構成するための要請（Ｒｅｑｕｅｓｔ）と応答（Ｒｅｓｐｏｎｓｅ）
本発明でホスト３１００と格納装置３２００とは秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）を安全な方法で互いに共有していると仮定する。
図７は本発明の実施形態によるストレージシステムの書込み防止を設定するか、或いは解除するための要請（ｒｅｑｕｅｓｔ）と応答（ｒｅｓｐｏｎｓｅ）とを示すタイミング図である。図７を参照すれば、ホスト３１００は格納装置３２００へ書込み防止の設定と解除のための要請（ｒｅｑｕｅｓｔ）を提供する。格納装置３２００はホスト３１００の要請（ｒｅｑｕｅｓｔ）を受けて、要請（ｒｅｑｕｅｓｔ）にしたがう応答（ｒｅｓｐｏｎｓｅ）を提供する。
【００５８】
図７を参照すれば、ホスト３１００は書込み防止（ｗｒｉｔｅ  ｐｒｏｔｅｃｔ）を設定と解除するために、４つのタイプの要請（ｒｅｑｕｅｓｔ）を格納装置３２００へ提供する。即ち、ホスト３１００は格納装置３２００にＷＰデスクリプタアップデートカウンタ読出し要請、ＷＰデスクリプタ読出し要請、ＷＰデスクリプタアップデート要請、及び結果読出し要請を提供する。
【００５９】
格納装置３２００はホスト３１００の要請に応答して、３つのタイプの応答（ｒｅｓｐｏｎｓｅ）をホスト３１００へ提供する。即ち、格納装置３２００はＷＰデスクリプタアップデートカウンタ読出し応答、ＷＰデスクリプタ読出し応答、及び結果読出し応答をホスト３１００へ提供する。ホスト３１００はＷＰデスクリプタアップデート要請を除外したすべての要請に対して格納装置３２００から応答（ｒｅｓｐｏｎｓｅ）を受ける。
表５は各々の要請及び応答を処理するためのＤａｔａ  Ｆｒａｍｅ構造を示す。
【００６０】
【表５】
2015191670.tif 000007
【００６１】
ホスト３１００は表５のようなデータフレーム（ｄａｔａ  ｆｒａｍｅ）を格納装置３２００に提供することによって、各々の要請（ｒｅｑｕｅｓｔ）にしたがう動作を遂行する。ここで、ＷＰデスクリプタアップデートカウンタ読出し要請とＷＰデスクリプタ読出し要請とは各々該当応答（ｒｅｓｐｏｎｓｅ）を通じて結果を確認することができる。一方、ＷＰデスクリプタアップデート要請は結果読出し要請を通じて結果を確認することができる。
【００６２】
表５を参照すれば、ＷＰデスクリプタアップデートカウンタは現在まで要請されたカウンタ値を意味する。Ｎｏｎｃｅはリプレイ攻撃（ｒｅｐｌａｙ  ａｔｔａｃｋ）を防止するための乱数である。ＷＰデスクリプタは適用しようとする又は適用されているＷＰデスクリプタを意味する。結果は要請に対する結果として、要請の成功又は失敗の可否と失敗の原因を提供する。ハッシュ基盤メッセージ認証コード（ＨＭＡＣ：Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）は要請（ｒｅｑｕｅｓｔ）を認証するためのものである。ホスト３１００はＷＰデスクリプタアップデート要請のためのＨＭＡＣをキー（ｋｅｙ）とメッセージ（ｍｅｓｓａｇｅ）とを利用して計算する。
【００６３】
図８はＨＭＡＣを計算する方法を説明するための概念図である。ＨＭＡＣは図１２に図示された保安マネージャ３２５０によって計算される。図８を参照すれば、保安マネージャ３２３４は秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）とメッセージ（ｍｅｓｓａｇｅ）とを利用してＨＭＡＣを計算する。メッセージ（ｍｅｓｓａｇｅ）には要請タイプ、ＷＰデスクリプタアップデートカウンタ、Ｎｏｎｃｅ、ＷＰデスクリプタ、結果を含む。保安マネージャ３２３４はＭＤ５、ＳＨＡ１、ＳＨＡ２５６等を利用してＨＭＡＣを計算する。
以下では図７に図示された各々の要請（ｒｅｑｕｅｓｔ）と応答（ｒｅｓｐｏｎｓｅ）とが詳細に説明される。
【００６４】
１．ＷＰデスクリプタアップデートカウンタ読出し要請／応答
ホスト３１００は書込み防止を設定するために、現在まで要請されたＷＰデスクリプタアップデートカウンタを要請する。ホスト３１００はＷＰデスクリプタのアップデート回数を要請するために、ＷＰデスクリプタアップデートカウンタ読出し要請を格納装置３２００へ提供する。
表６はＷＰデスクリプタアップデートカウンタ読出し要請のデータフレーム（ｄａｔａ  ｆｒａｍｅ）を例示的に示す。
【００６５】
【表６】
2015191670.tif 000008
【００６６】
表６を参照すれば、要請タイプ（ｒｅｑｕｅｓｔ  ｔｙｐｅ）は０ｘ１であり、ＷＰデスクリプタアップデートカウンタは０ｘ０であり、Ｎｏｎｃｅはホストが生成した乱数であり、ＷＰデスクリプタは０ｘ０であり、結果は０ｘ０であり、ＨＭＡＣは０ｘ０である。ホストの中央処理装置は乱数発生器を含む。
表６の要請に応答して、格納装置３２００は表７の応答（ｒｅｓｐｏｎｓｅ）をホスト３１００へ提供する。即ち、ホスト３１００は表７に図示されたデータフレームを読み出し、現在のＷＰデスクリプタアップデートカウンタを確認する。
【００６７】
【表７】
2015191670.tif 000009
【００６８】
表７を参照すれば、応答タイプ（ｒｅｓｐｏｎｓｅ  ｔｙｐｅ）は０ｘ５であり、ＷＰデスクリプタアップデートカウンタは格納装置３２００がＷＰデスクリプタが現在までアップデートされた回数である。保安マネージャ３２３４はＷＰデスクリプタがアップデートされる時ごとに増加されるカウンタを含む。Ｎｏｎｃｅはホストが生成した乱数であり、要請によって受信される。ＷＰデスクリプタは０ｘ０であり、結果は要請を遂行した結果であり、ＨＭＡＣは保安マネージャ３２３４によって計算された値である。
格納装置３２００は表７に図示されたデータフレーム（ｄａｔｅ  ｆｒａｍｅ）を生成する時、ＨＭＡＣ計算のために表８の値を使用する。
【００６９】
【表８】
2015191670.tif 000010
【００７０】
表８を参照すれば、秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）はホスト３１００と格納装置３２００とが共有したキーであり（即ち、製造過程でＲＯＭ３２３０に予め格納される）、応答タイプは０ｘ５であり、ＷＰデスクリプタアップデートカウンタは格納装置３２００がＷＰデスクリプタを現在までアップデートした回数であり、Ｎｏｎｃｅはホストが生成した乱数であり、ＷＰデスクリプタは０ｘ０であり、結果は要請を遂行した結果である。ホスト３１００はデータフレーム（ｄａｔａ  ｆｒａｍｅ）を読み出した後、ＨＭＡＣを計算する。ホスト３１００はＨＭＡＣを利用して応答（ｒｅｓｐｏｎｓｅ）を認証し、リプレイ攻撃（ｒｅｐｌａｙ  ａｔｔａｃｋ）を防止するためにＮｏｎｃｅ値を確認する。
【００７１】
２．ＷＰデスクリプタ読出し要請
ホスト３１００は書込み防止を設定するために、現在適用されているＷＰデスクリプタを読み出し、現在の設定と構成を確認する。ホスト３１００はＷＰデスクリプタ読出し要請を格納装置３２００へ提供する。表９はＷＰデスクリプタ読出し要請のデータフレームを示す。
【００７２】
【表９】
2015191670.tif 000011
【００７３】
表９を参照すれば、要請タイプは０ｘ２であり、ＷＰデスクリプタアップデートカウンタは０ｘ０であり、Ｎｏｎｃｅはホストが生成した乱数であり、ＷＰデスクリプタは０ｘ０であり、結果は０ｘ０であり、ＨＭＡＣは０ｘ０である。
表９に図示された要請に応答して、格納装置３２００は表１０に図示された応答（ｒｅｓｐｏｎｓｅ）をホスト３１００へ提供する。ホスト３１００は表１０に図示されたデータフレームを読み出し、ＷＰデスクリプタを確認する。
【００７４】
【表１０】
2015191670.tif 000012
【００７５】
表１０を参照すれば、応答タイプは０ｘ６であり、ＷＰデスクリプタアップデートカウンタは０ｘ０であり、Ｎｏｎｃｅはホストが生成した乱数であり、ＷＰデスクリプタは格納装置３２００の現在ＷＰデスクリプタ値であり、結果は要請を遂行した結果であり、ＨＭＡＣは保安マネージャ３２３４又は３２５０が計算した値である。
格納装置３２００は表１０に図示されたデータフレーム（ｄａｔｅ  ｆｒａｍｅ）を生成する時、ＨＭＡＣ計算のために表１１の値を使用する。
【００７６】
【表１１】
2015191670.tif 000013
【００７７】
表１１を参照すれば、秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）はホスト３１００と格納装置３２００とが共有したキーであり、応答タイプは０ｘ６であり、ＷＰデスクリプタアップデートカウンタは０ｘ０であり、Ｎｏｎｃｅはホストが生成した乱数であり、ＷＰデスクリプタは格納装置３２００の現在ＷＰデスクリプタ値であり、結果は要請を遂行した結果である。保安マネージャ３２３４又は３２５０は表１１のデータフレーム（ｄａｔａ  ｆｒａｍｅ）を読み出し、ＨＭＡＣを計算する。
【００７８】
３．ＷＰデスクリプタアップデート要請
ホスト３１００は新しい書込み防止設定を下記のために、適用しようとするＷＰデスクリプタを新しく構成し、これを利用して格納装置３２００にアップデートを要請する。ホスト３１００はＷＰデスクリプタのアップデートを要請するために、表１２のような入力値（ｉｎｐｕｔ  ｖａｌｕｅ）を使用してＨＭＡＣを生成する。
【００７９】
【表１２】
2015191670.tif 000014
【００８０】
表１２を参照すれば、秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）はホスト３１００と格納装置３２００とが共有したキーであり、要請タイプは０ｘ３であり、ＷＰデスクリプタアップデートカウンタは格納装置３２００がＷＰデスクリプタを現在までアップデートした回数であり、Ｎｏｎｃｅは０ｘ０であり、ＷＰデスクリプタは変更しようとするＷＰデスクリプタ値であり、結果は０ｘ０である。
表１３はＷＰデスクリプタアップデート要請のデータフレームを示す。ホスト３１００は表１３のようなデータフレームを格納装置３２００へ提供する。
【００８１】
【表１３】
2015191670.tif 000015
【００８２】
表１３を参照すれば、要請タイプは０ｘ３であり、ＷＰデスクリプタアップデートカウンタは格納装置３２００がＷＰデスクリプタを現在までアップデートした回数であり、Ｎｏｎｃｅは０ｘ０であり、ＷＰデスクリプタは変更しようするＷＰデスクリプタ値であり、結果は０ｘ０であり、ＨＭＡＣは表１２のデータフレームを利用して、ホスト３１００が計算した値である。
【００８３】
ホスト３１００は表１３のデータフレーム（ｄａｔａ  ｆｒａｍｅ）を格納装置３２００へ提供することによって、ＷＰデスクリプタをアップデートする。格納装置３２００はＷＰデスクリプタアップデート要請を受けて、正常的にＲｅｑｕｅｓｔを完了した後に、ＷＰデスクリプタアップデートカウンタを増加する。
【００８４】
４．結果読出し要請／応答
ホスト３１００はＷＰデスクリプタアップデートを要請した後に、その結果を確認するために、結果読出し要請を使用する。ホスト３１００は結果読出し要請のために、表１４のようなデータフレームを構成し、格納装置３２００へ提供する。
【００８５】
【表１４】
2015191670.tif 000016
【００８６】
表１４を参照すれば、要請タイプは０ｘ４であり、ＷＰデスクリプタアップデートカウンタは０ｘ０であり、Ｎｏｎｃｅは０ｘ０であり、ＷＰデスクリプタは０ｘ０であり、結果は０ｘ０であり、ＨＭＡＣは０ｘ０である。表１４に図示された要請に応答して、格納装置３２００は表１５に図示された応答（ｒｅｓｐｏｎｓｅ）をホスト３２１０へ提供する。ホスト３１００は表１５に図示されたデータフレームを読み出し、ＷＰデスクリプタアップデートを遂行した結果を確認する。
【００８７】
【表１５】
2015191670.tif 000017
【００８８】
表１５を参照すれば、応答タイプは０ｘ７であり、ＷＰデスクリプタアップデートカウンタは格納装置３２００がＷＰデスクリプタを現在までアップデートした回数であり、Ｎｏｎｃｅは０ｘ０であり、ＷＰデスクリプタは０ｘ０であり、結果は要請を遂行した結果であり、ＨＭＡＣは保安マネージャ３２３４が計算した値である。保安マネージャ３２３４又は３２５０は表１５に図示されたデータフレーム（ｄａｔｅ  ｆｒａｍｅ）を生成する時、ＨＭＡＣ計算のために表１６の値を使用する。
【００８９】
【表１６】
2015191670.tif 000018
【００９０】
表１６を参照すれば、秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）はホスト３１００と格納装置３２００とが共有したキーであり、応答タイプは０ｘ７であり、ＷＰデスクリプタアップデートカウンタは格納装置３２００がＷＰデスクリプタを現在までアップデートした回数であり、Ｎｏｎｃｅは０ｘ０であり、ＷＰデスクリプタは０ｘ０であり、結果は要請を遂行した結果である。 ホスト３１００は表１６のデータフレーム（ｄａｔａ  ｆｒａｍｅ）を読み出し、ＨＭＡＣを計算する。
【００９１】
III．ＷＰデスクリプタアップデート要請認証方法
図９は図３に図示されたストレージシステムのＨＭＡＣ認証方法を例示的に示す順序図である。例として、図９は格納装置３２００がＷＰデスクリプタアップデート要請を認証する方法を示す。
Ｓ１１０段階で、格納装置３２００のコマンドマネージャ３２３２はホスト３１００からＷＰデスクリプタアップデート要請を受信する。格納装置３２００はＷＰデスクリプタアップデート要請を受信し、書込み防止設定をアップデートする。即ち、格納装置３２００は適用しようとするＷＰデスクリプタを新しく構成する。
【００９２】
Ｓ１２０段階で、コマンドマネージャ３２３２はＷＰデスクリプタアップデート要請のデータフレームを解釈する。表１３はＷＰデスクリプタアップデート要請のデータフレームを例示的に示す。表１３を参照すれば、データフレームはｒｅｑｕｅｓｔ  ｔｙｐｅ、ＷＰデスクリプタアップデートカウンタ、ＷＰデスクリプタ、Ｎｏｎｃｅ、結果、及びＨＭＡＣを含む。
【００９３】
Ｓ１３０段階で、格納装置３２００の保安マネージャ３２３４は共有された秘密キーを利用してＨＭＡＣを計算する。ＨＭＡＣを計算する方法は図８で説明した通りである。即ち、保安マネージャ３２３４は秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）とメッセージ（ｍｅｓｓａｇｅ）とを利用してＨＭＡＣとを計算する。メッセージ（ｍｅｓｓａｇｅ）には要請タイプ、ＷＰデスクリプタアップデートカウンタ、Ｎｏｎｃｅ、ＷＰデスクリプタ、結果を含む。保安マネージャ３２３４はＭＤ５、ＳＨＡ１、ＳＨＡ２５６等を利用してＨＭＡＣを計算する。また、ＨＭＡＣ３２５０はＨＭＡＣを計算し、その結果を保安マネージャ３２３４へ提供する。
【００９４】
Ｓ１４０段階で、保安マネージャ３２３４はＷＰデスクリプタアップデート要請のデータフレームから得られたＨＭＡＣとＳ１３０段階で計算したＨＭＡＣとを比較する。表１３に示したように、ホスト３１００から提供されたデータフレーム（ｄａｔａ  ｆｒａｍｅ）はＨＭＡＣを含む。保安マネージャ３２３４はホスト３１００から提供されたＨＭＡＣと格納装置３２００内で計算したＨＭＡＣを比較することによって、ＷＰデスクリプタアップデート要請を認証する。
【００９５】
Ｓ１５０段階で、保安マネージャ３２３４はＳ１４０段階での比較結果を基づいて、ＷＰデスクリプタアップデート要請が有効であるか否かを判断する。保安マネージャ３２３４はホスト３１００から提供されたＨＭＡＣと格納装置３２００内で計算したＨＭＡＣとが一致すれば、ＷＰデスクリプタアップデート要請が有効（ｖａｌｉｄ）であると判断する。一致しなければ、ＷＰデスクリプタアップデート要請が有効でないと判断する。
【００９６】
Ｓ１６０段階で、ＷＰデスクリプタアップデート要請が有効な場合に、保安マネージャ３２３４はＷＰデスクリプタアップデート要請にしたがってＷＰデスクリプタをアップデートする。Ｓ１６５段階で、ＷＰデスクリプタアップデート要請が有効でない場合に、保安マネージャ３２３４はＷＰデスクリプタアップデート要請を拒絶（ｒｅｊｅｃｔ）する。
【００９７】
IV．書込み防止遂行方法
図１０は図３に図示されたストレージシステムの書込み防止遂行方法を説明するための順序図である。ホスト３１００から書込みコマンド（ｗｒｉｔｅ  ｃｏｍｍａｎｄ）又は消去コマンド（ｅｒａｓｅ  ｃｏｍｍａｎｄ）を受信した場合に、格納装置３２００は書込み防止機能の遂行の可否にしたがって該当アドレス領域にデータを書き込むか、或いは書込みを防止する。
【００９８】
Ｓ２１０段階で、格納装置３２００のコマンドマネージャ３２３２はホスト３１００から書込みコマンドを受信する。Ｓ２２０段階で、コマンドマネージャ３２３２は書込みコマンドのパラメータを解釈する。書込みコマンドのパラメータには開始ＬＢＡ、大きさ（Ｌｅｎｇｔｈ）、及びパーティションＩＤ（ＰＩＤ）が含まれる。Ｓ２３０段階で、格納装置３２００の保安マネージャ３２３４はＷＰデスクリプタからENTRYを獲得する。
【００９９】
Ｓ２４０段階で、保安マネージャ３２３４は書込みコマンドのパーティションＩＤ（ＰＩＤ＿ｈ）とＷＰデスクリプタのパーティションＩＤ（ＰＩＤ＿ｄ）とを比較する。ＰＩＤ＿ｈはホスト３１００から起因したものであり、ＰＩＤ＿ｄは格納装置３２００から起因したものである。保安マネージャ３２３４は書込みコマンドのＰＩＤ＿ｈがＷＰデスクリプタのＰＩＤ＿ｄと一致するか否かを判断する。
【０１００】
ＰＩＤ＿ｈがＰＩＤ＿ｄと一致しない場合に、Ｓ２４５段階で、ＷＰデスクリプタが最後のＷＰデスクリプタであるか否かを判断する。最後のＷＰデスクリプタではない場合にはＳ２３０段階が再び遂行され、次のＷＰデスクリプタが獲得される。最後のＷＰデスクリプタである場合には書込みコマンドが実行される（Ｓ２９５）。
Ｓ２５０段階で、ＰＩＤ＿ｈがＰＩＤ＿ｄと一致する場合に、保安マネージャ３２３４はＷＰデスクリプタの書込み可能（ｗｒｉｔａｂｌｅ）を確認する。例えば、保安マネージャ３２３４はＷＰデスクリプタの書込み可能がＦａｌｓｅに設定されているか否かを判断する。ＷＰデスクリプタの書込み可能（ｗｒｉｔａｂｌｅ）がＦａｌｓｅに設定されていない場合にＳ２４５段階が遂行される。
【０１０１】
Ｓ２６０段階で、ＷＰデスクリプタの書込み可能（ｗｒｉｔａｂｌｅ）がＦａｌｓｅに設定されている場合に、格納装置３２００はＷＰデスクリプタの大きさ（ｌｅｎｇｔｈ）を確認する。格納装置３２００はＷＰデスクリプタの大きさが０に設定されているか否かを判断する。ＷＰデスクリプタの大きさが０に設定されている場合に、格納装置３２００は書込みコマンドを拒絶（ｒｅｊｅｃｔ）する（Ｓ２９０）。表１で説明したように、ＷＰデスクリプタの大きさ（ｌｅｎｇｔｈ）が０に設定された場合にはパーティションの全体に対して書込み防止が適用される。
【０１０２】
Ｓ２７０段階で、ＷＰデスクリプタの大きさ（ｌｅｎｇｔｈ）が０に設定されていない場合に、保安マネージャ３２３４は開始ＬＢＡ及びＷＰデスクリプタの大きさによって表示される書込み防止範囲（ＷＰ  ｒａｎｇｅ）を調査する。
Ｓ２８０段階で、保安マネージャ３２３４は書込みコマンドで論理的ブロックアドレスＬＢＡが書込み防止範囲に含まれるか否かを判断する。書込みコマンドでＬＢＡが書込み防止範囲に含まれなかった場合に、Ｓ２４５段階が遂行される。
Ｓ２９０段階で、書込みコマンドのＬＢＡが書込み防止範囲に含まれる場合に、格納装置３２００は書込みコマンドを拒絶（ｒｅｊｅｃｔ）する。即ち、格納装置３２００はＬＢＡ及びＷＰデスクリプタの大きさに対応するメモリ領域に対して書込み防止（ｗｒｉｔｅ  ｐｒｏｔｅｃｔ）を遂行する。
【０１０３】
図１１は本発明の実施形態によるストレージシステムに１つ又はそれ以上の書込み防止領域が設定された例を示す概念図である。図３に図示されたストレージシステム３０００は１つのパーティションに１つ又はそれ以上の書込み防止領域が設定されてもよい。又は複数のパーティションに複数の書込み防止領域が設定されてもよい。図１１を参照すれば、第１パーティションＰＩＤ１には２つの書込み防止領域が設定されている。第１書込み防止領域ＷＰ１はＬＢＡ５００〜１０００であり、第２書込み防止領域ＷＰ２はＬＢＡ２０００〜３０００である。第２パーティションＰＩＤ２には１つの書込み防止領域が設定されている。第３書込み防止領域ＷＰ３はＬＢＡ１１００〜２２００である。第３パーティションＰＩＤ３には３つの書込み防止領域が設定されている。第４書込み防止領域ＷＰ１はＬＢＡ１００〜６００であり、第５書込み防止領域ＷＰ５はＬＢＡ１３００〜２０００であり、第６書込み防止領域ＷＰ６はＬＢＡ２９００〜３３００である。第ｎパーティションＰＩＤｎはパーティションの全体に対して書込み防止領域が設定されている。１つのパーティションに複数の書込み防止領域が設定されるために、ＷＰデスクリプタでＬＢＡ指定方式を変更することができる。
【０１０４】
本発明の実施形態によるストレージシステムはＫｅｙ−ｅｄ  Ｃｒｙｐｔｏ  Ｈａｓｈを利用する書込み防止方法に関する。例えば、ＨＭＡＣはＫｅｙ−ｅｄ  Ｃｒｙｐｔｏ  Ｈａｓｈから生成される。Ｋｅｙ−ｅｄ  Ｃｒｙｐｔｏ  Ｈａｓｈを利用してコマンドが認証されれば、格納装置と共有する秘密キー（ｐｒｉｖａｔｅ  ｋｅｙ）を知っているホストのみが書込み防止設定を変更することができる。したがって、本発明は認証されないホストからのデータ変更を防ぐことができる。また、本発明の実施形態によるストレージシステムはコマンド認証と同時に、書込み防止領域をホストのＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）単位に設定することができる。
【０１０５】
本発明はＫｅｙ−ｅｄ  Ｃｒｙｐｔｏ  Ｈａｓｈ、秘密キー、及びＲｅｑｕｅｓｔ  Ｃｏｕｎｔ等を利用する認証を通じて書込み防止を設定し、ホストのＬＢＡ単位に書込み防止領域を設定する。本発明は認証されないホストの書込み防止設定を制限して意図しなかったデータ変更を防ぐことができる。また、本発明はＬＢＡ単位に書込み防止領域を変更することによって、ホストから動的に、かつ柔軟な書込み防止動作を遂行することができる。
【０１０６】
一方、本発明の実施形態によるストレージシステムは様々な製品に適用又は応用することができる。本発明の実施形態によるストレージシステムはパーソナルコンピュータ、デジタルカメラ、カムコーダ、携帯電話、ＭＰ３、ＰＭＰ、ＰＳＰ、ＰＤＡ等のような電子装置で具現することができる。そして、ストレージシステムの格納媒体はメモリカード、ＵＳＢメモリ、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ、以下、ＳＳＤと称する）等のような格納装置で具現することができる。
【０１０７】
図１４は本発明の実施形態による格納装置をソリッドステートドライブ（ＳＳＤ）に適用した例を示すブロック図である。図１４を参照すれば、ＳＳＤシステム４０００はホスト４１００とＳＳＤ４２００とを含む。
ＳＳＤ４２００は信号コネクタ（ｓｉｇｎａｌ  ｃｏｎｎｅｃｔｏｒ、４２１１）を介してホスト４１００と信号を送受信し、電源コネクタ（ｐｏｗｅｒ  ｃｏｎｎｅｃｔｏｒ、４２２１）を介して電源が入力される。ＳＳＤ４２００は複数のフラッシュメモリ４２０１〜４２０ｎ、ＳＳＤコントローラ４２１０、及び補助電源装置４２２０を含む。
【０１０８】
複数のフラッシュメモリ４２０１〜４２０ｎはＳＳＤ４２００の格納媒体として使用される。ＳＳＤ４２００はフラッシュメモリ以外にもＰＲＡＭ、ＭＲＡＭ、ＲｅＲＡＭ、ＦＲＡＭ（登録商標）等の不揮発性メモリ装置を使用してもよい。複数のフラッシュメモリ４２０１〜４２０ｎは複数のチャンネルＣＨ１〜ＣＨｎを介してＳＳＤコントローラ４２１０と連結される。１つのチャンネルには１つ又はそれ以上のフラッシュメモリが連結される。１つのチャンネルに連結されるフラッシュメモリは同一のデータバスに連結される。
【０１０９】
ＳＳＤコントローラ４２１０は信号コネクタ４２１１を介してホスト４１００と信号ＳＧＬとを送受信する。ここで、信号ＳＧＬにはコマンド、アドレス、データ等を含んでもよい。ＳＳＤコントローラ４２１０はホスト４１００のコマンドにしたがって該当フラッシュメモリにデータを書き込むか、或いは該当フラッシュメモリからデータを読出す。ＳＳＤコントローラ４２１０の内部構成は図１５を参照して詳細に説明される。
補助電源装置４２２０は電源コネクタ４２２１を介してホスト４１００に連結される。補助電源装置４２２０はホスト４１００から電源ＰＷＲを受信し、充電する。一方、補助電源装置４２２０はＳＳＤ４２００の内に位置してもよく、ＳＳＤ４２００の外に位置してもよい。例えば、補助電源装置４２２０はメインボードに位置し、ＳＳＤ４２００へ補助電源を提供してもよい。
【０１１０】
図１５は図１４に図示されたＳＳＤコントローラ４２１０の構成を例示的に示すブロック図である。図１５を参照すれば、ＳＳＤコントローラ４２１０はＮＶＭインターフェイス４２１１、ホストインターフェイス４２１２、ＥＣＣ回路４２１３、中央処理装置（ＣＰＵ、４２１４）、及びバッファメモリ４２１５を含む。
ＮＶＭインターフェイス４２１１はバッファメモリ４２１５から伝達されたデータを各々のチャンネルＣＨ１〜ＣＨｎにスキャタリング（Ｓｃａｔｔｅｒｉｎｇ）する。そして、ＮＶＭインターフェイス４２１１はフラッシュメモリ４２０１〜４２０ｎから読み出したデータをバッファメモリ４２１５へ伝達する。ここで、ＮＶＭインターフェイス４２１１はフラッシュメモリのインターフェイス方式を使用する。即ち、ＳＳＤコントローラ４２１０はフラッシュメモリインターフェイス方式にしたがってプログラム、読出し、又は消去動作等を遂行する。
【０１１１】
ホストインターフェイス４２１２はホスト４１００のプロトコルに対応してＳＳＤ４２００とのインターフェイシングを提供する。ホストインターフェイス４２１２はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＰＣＩ  ｅｘｐｒｅｓｓ、ＡＴＡ、ＰＡＴＡ（Ｐａｒａｌｌｅｌ  ＡＴＡ）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）等を利用してホスト４１００と通信できる。また、ホストインターフェイス４２１２はホスト４１００がＳＳＤ４２００をハードディスクドライブ（ＨＤＤ）として認識するように支援するディスクエミュレーション（Ｄｉｓｋ  Ｅｍｕｌａｔｉｏｎ）機能を遂行することができる。
【０１１２】
ＥＣＣ回路４２１３はフラッシュメモリ４２０１〜４２０ｎへ伝送されるデータを利用して、エラー訂正コード（ＥＣＣ）を生成する。このように生成されたエラー訂正コード（ＥＣＣ）はフラッシュメモリ４２０１〜４２０ｎのスペア領域（ｓｐａｒｅ  ａｒｅａ）に格納される。ＥＣＣ回路４２１３はフラッシュメモリ４２０１〜４２０ｎから読み出したデータのエラーを検出する。仮に検出されたエラーが訂正容量内であれば、ＥＣＣ回路４２１３は検出されたエラーを訂正する。
【０１１３】
中央処理装置４２１４はホスト４１００（図１４参照）から入力された信号ＳＧＬを分析し、処理する。中央処理装置４２１４はホストインターフェイス４２１２やＮＶＭインターフェイス４２１１を介してホスト４１００やフラッシュメモリ４２０１〜４２０ｎを制御する。中央処理装置４２１４はＳＳＤ４２００を駆動するためのファームウェアにしたがってフラッシュメモリ４２０１〜４２０ｎの動作を制御する。
【０１１４】
バッファメモリ４２１５はホスト４１００から提供される書込みデータ又はフラッシュメモリから読み出したデータを一時的に格納する。また、バッファメモリ４２１５はフラッシュメモリ４２０１〜４２０ｎに格納されるメタデータやキャッシュデータを格納する。急なパワーオフ動作の時に、バッファメモリ４２１５に格納されたメタデータやキャッシュデータはフラッシュメモリ４２０１〜４２０ｎに格納される。バッファメモリ４２１５にはＤＲＡＭ、ＳＲＡＭ等が含まれる。
【０１１５】
図１６は本発明の実施形態による格納装置を電子装置で具現した例を示すブロック図である。ここで、電子装置５０００はパーソナルコンピュータ（ＰＣ）で具現されるか、或いはノート型コンピューターコンピュータ、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、及びカメラ等のような携帯用電子装置で具現される。
図１６を参照すれば、電子装置５０００はメモリシステム５１００、電源装置５２００、補助電源装置５２５０、中央処理装置５３００、ＤＲＡＭ５４００、及び使用者インターフェイス５５００を含む。メモリシステム５１００はフラッシュメモリ５１１０及びメモリコントローラ５１２０を含む。
【０１１６】
図１７は本発明の実施形態による使用者装置の格納装置をメモリカードに適用した例を示す。メモリカードシステム６０００はホスト６１００とメモリカード６２００とを具備する。ホスト６１００はホストコントローラ６１１０及びホスト接続ユニット６１２０を含む。メモリカード６２００はカード接続ユニット６２１０、カードコントローラ６２２０、及びフラッシュメモリ６２３０を含む。
【０１１７】
ホスト６１００はメモリカード６２００にデータを書き込むか、或いはメモリカード６２００に格納されたデータを読み出す。ホストコントローラ６１１０はコマンド（例えば、書込みコマンド）、ホスト６１００内のクロック発生器（図示せず）で発生したクロック信号ＣＬＫ及びデータＤＡＴをホスト接続ユニット６１２０を介してメモリカード６２００へ伝送する。
【０１１８】
カードコントローラ６２２０はカード接続ユニット６２１０を介して受信された書込みコマンドに応答して、カードコントローラ６２２０内に在るクロック発生器（図示せず）で発生したクロック信号に同期してデータをフラッシュメモリ６２３０に格納する。フラッシュメモリ６２３０はホスト６１００から伝送されたデータを格納する。例えば、ホスト６１００がデジタルカメラである場合には映像データを格納する。
【０１１９】
なお、本発明の詳細な説明では具体的な実施形態に関して説明したが、本発明の範囲を逸脱しない限度内で様々な変形が可能であるのは勿論である。例えば、本発明の範囲はフラッシュメモリ装置に限定されない。本発明は変換階層によるアドレス変換が使用されるすべての格納装置に適用することができる。したがって、本発明の範囲は上述した実施形態に限定されて定めてはならないし、後述する特許請求の範囲のみでなく、この発明の特許請求の範囲と均等なものによって定められる。
【符号の説明】
【０１２０】
１０００、２０００、３０００    ストレージシステム
１１００、２１００、３１００    ホスト
１２００、２２００、３２００    格納装置
【図１】
2015191670.tif 000019
【図２】
2015191670.tif 000020
【図３】
2015191670.tif 000021
【図４】
2015191670.tif 000022
【図５】
2015191670.tif 000023
【図６】
2015191670.tif 000024
【図７】
2015191670.tif 000025
【図８】
2015191670.tif 000026
【図９】
2015191670.tif 000027
【図１０】
2015191670.tif 000028
【図１１】
2015191670.tif 000029
【図１２】
2015191670.tif 000030
【図１３】
2015191670.tif 000031
【図１４】
2015191670.tif 000032
【図１５】
2015191670.tif 000033
【図１６】
2015191670.tif 000034
【図１７】
2015191670.tif 000035