JP2017153117A - 暗号化トランスポート・ソリッドステート・ディスク・コントローラ - Google Patents

暗号化トランスポート・ソリッドステート・ディスク・コントローラ Download PDF

Info

Publication number
JP2017153117A
JP2017153117A JP2017075229A JP2017075229A JP2017153117A JP 2017153117 A JP2017153117 A JP 2017153117A JP 2017075229 A JP2017075229 A JP 2017075229A JP 2017075229 A JP2017075229 A JP 2017075229A JP 2017153117 A JP2017153117 A JP 2017153117A
Authority
JP
Japan
Prior art keywords
data
host
encryption
encrypted
ssd
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
JP2017075229A
Other languages
English (en)
Inventor
マイケル ラーム、ファーボッド
Michael Raam Farbod
マイケル ラーム、ファーボッド
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2017153117A publication Critical patent/JP2017153117A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】暗号化トランスポートSSDコントローラを提供する。【解決手段】暗号化トランスポートSSD(Solid-State Disk)コントローラは、コマンド、記憶アドレスを受け取り、フラッシュメモリなどの不揮発性メモリに圧縮(および任意選択で暗号化された)形式でデータを記憶する目的でホストとデータを交換するためのインターフェースを有する。ホストから受け取られた暗号化データは復号化され、且つ可逆的圧縮を使用して圧縮されてフラッシュメモリ書き込み増幅を有利に低減させる。圧縮されたデータは再暗号化され、フラッシュメモリに記憶される。記憶されたデータは、ホストに送信される前に読み出され、復号化、展開、および再暗号化される。単一の集積回路などのセキュアな物理境界内で実施されると、SSDコントローラは暗号化データを、ホストへの送出を含むフラッシュメモリ内の記憶を介した受け取りから保護する。【選択図】図3A

Description

関連出願の相互参照
本出願の優先権利益の主張を、(それがある場合には、適宜)添付の出願データシート
、請求、または送達状において行う。本出願の種類によって許容される範囲内で、本出願
はこの参照によりあらゆる目的で以下の出願を組み込むものであり、以下の出願はすべて
、発明がなされた時点において本出願と所有者を同じくするものである。
2011年4月29日付で出願された、Farbod Michael Raamを筆
頭発明者とする、「Encrypted−Transport Solid−State
Disk Controller」という名称の、米国仮出願(整理番号第SF−10
−08号および出願番号第61/480518号)。
分野:不揮発性格納技術の進歩が、使用の性能、効率、及び有用性の改善を提供するた
めに必要とされる。
関連技術:公知である、または周知であるものとして明記されない限り、コンテキスト
、定義、または比較を目的とするものを含む本明細書における技法および概念の言及は、
そのような技法または概念が以前から公知であり、あるいは先行技術の一部であることの
容認と解釈すべきではない。特許、特許出願、および出版物を含む、本明細書で引用され
るあらゆる参照文献は(それがある場合には)、具体的に組み込まれているか否かを問わ
ず、あらゆる目的で、この参照によりその全体が本明細書に組み込まれるものである。
本発明は多くの仕方で実施されてよく、これには、プロセス、製造品、装置、システム
、組成物としての仕方、ならびに、コンピュータ可読記憶媒体(ディスクといった光学的
大容量記憶装置および/または磁気的大容量記憶装置、フラッシュストレージといった不
揮発性記憶を有する集積回路など)や、プログラム命令が光通信リンクまたは電子通信リ
ンク上で送られるコンピュータネットワークといったコンピュータ可読媒体としての仕方
が含まれうる。本明細書では、これらの実施態様、または本発明が取りうる任意の他の形
態を、技法と呼ぶ場合もある。詳細な説明では、上記の分野における使用の性能、効率、
および有用性の改善を可能にする本発明の1若しくはそれ以上の実施形態の説明を提供す
る。詳細な説明は、詳細な説明の残りの部分のより迅速な理解を容易にするための導入部
を含む。導入部は、本明細書で説明する概念に従うシステム、方法、製造品、およびコン
ピュータ可読媒体のうちの1若しくはそれ以上の例示的実施形態を含む。結論の項でより
詳細に論じるように、本発明は、発行される特許請求の範囲内のあらゆる可能な改変形態
および変形形態を包含するものである。
図1Aは、不揮発性メモリ(Non−Volatile Memory:NVM)要素(フラッシュメモリなど)によって実施されるような不揮発性記憶を管理するための暗号化トランスポートの技法を使用するSSDコントローラを含むソリッドステートディスク(Solid−State Disk:SSD)の実施形態の選択された詳細を示す図である。 図1Bは、図1AのSSDの1つ若しくはそれ以上のインスタンスを含むシステムの様々な実施形態の選択された詳細を示す図である。 図2は、図1Aに示すような不揮発性記憶を管理するための暗号化トランスポートの技法を使用したSSDの具体的応用の一例を示す図である。 図3Aは、暗号化トランスポートSSDの書き込みデータパス機能であって、2段の圧縮後暗号化を含む書き込みデータパス機能の一実施形態の選択された詳細を示す図である。 図3Bは、図3Aの暗号化トランスポートSSDの読み取りデータパス機能であって、2段の展開前復号化を含む読み取りデータパス機能の一実施形態の選択された詳細を示す図である。 図4は、例えば暗号化トランスポートSSDのコンテキストで暗号化トランスポートデータ転送を実行するための、ホストとSSDコントローラとの間のセキュアな通信リンクの作成、使用、および放棄の一実施形態を示す流れ図である。 図5は、暗号化トランスポートSSDコントローラのデータパス制御および/または動作の一実施形態を示す流れ図である。
Figure 2017153117
Figure 2017153117
Figure 2017153117
本発明の1つ若しくはそれ以上の実施形態の詳細な説明を、以下で、本発明の選択され
た詳細を図示する添付の図を併用して行う。本発明を実施形態との関連で説明する。実施
形態は、本明細書では、単なる例示であると理解されるものであり、本発明は、明確に、
本明細書中の実施形態のいずれか若しくは全部に、またはいずれか若しくは全部によって
限定されるものではなく、本発明は、多数の代替形態、改変形態、および均等物を包含す
るものである。説明が単調にならないように、様々な言葉によるラベル(これに限定され
るものではないが、最初の、最後の、ある一定の、様々な、別の、他の、特定の、選択の
、いくつかの、目立ったなど)が実施形態のセットを区別するために適用される場合があ
る。本明細書で使用する場合、そのようなラベルは、明確に、質を伝えるためのものでも
、いかなる形の好みや先入観を伝えるためのものでもなく、単に、別々のセットを都合よ
く区別するためのものにすぎない。開示するプロセスのいくつかの動作の順序は本発明の
範囲内で変更可能である。多様な実施形態がプロセス、方法、および/またはプログラム
命令の各特徴の差異を説明するのに使用される場合は常に、所定の、または動的に決定さ
れる基準に従って、複数の多様な実施形態にそれぞれ対応する複数の動作モードの1つの
静的選択および/または動的選択を行う他の実施形態が企図されている。以下の説明では
、本発明の十分な理解を提供するために、多数の具体的詳細を示す。それらの詳細は例と
して示すものであり、本発明は、それらの詳細の一部または全部がなくても、特許請求の
範囲に従って実施されうる。わかりやすくするために、本発明に関連した技術分野で公知
の技術資料は、本発明が不必要に曖昧になることのないように詳細に説明していない。
概説
この概説は、詳細な説明のより迅速な理解を助けるために含まれるにすぎず、本発明は
、(それがある場合には、明示的な例を含む)この概説で提示される概念だけに限定され
るものではなく、どんな概説の段落も、必然的に、主題全体の縮約された見方であり、網
羅的な、または限定的な記述であることを意味するものではない。例えば、以下の概説は
、スペースおよび編成によりある一定の実施形態だけに限定される概要情報を提供するも
のである。特許請求の範囲が究極的にそこに導かれることになる実施形態を含む多くの他
の実施形態があり、それらを本明細書の残りの部分にわたって論じる。
頭字語
ここで定義される様々な縮めた表現の略語(例えば、頭字語)の少なくとも一部が本明
細書において使用される特定の要素を指す。
Figure 2017153117
Figure 2017153117
Figure 2017153117
ストレージ周辺装置の中には、トランスポート暗号化層を使用して、ホストからストレ
ージ周辺装置に送られるデータを保護することができるようになっているものがある。ホ
ストは、記憶媒体(NVMなど)に記憶されるべきストレージ周辺装置へのデータを送る
前に、内部でデータを暗号化する。同様に、ストレージ周辺装置から読み取られ、ホスト
に送られるデータも、そのデータが書き込まれたときに同じ暗号化を有するものと想定さ
れ、ホストは使用するためにデータを復号化する。ホストから見ると、データは記憶媒体
との間の全経路上で暗号化されている。
ある実施形態では、SSDといったストレージ周辺装置は、(NANDフラッシュチッ
プのアレイといった)記憶媒体にデータを記憶する前に、いわゆる「バックエンド」暗号
化により、データを内部で暗号化し、記憶媒体から暗号化データを読み取った後でデータ
を復号化する。SSDにおいて、バックエンド暗号化は、データを保護し、あるシナリオ
ではNANDフラッシュチップの耐久性を向上させるスクランブリング特性を提供するよ
うに働く。例えば、バックエンド暗号化は、ホストデータに使用されるあらゆる他の形の
暗号化から独立して、記憶媒体に記憶されたSSDのファームウェアを保護するのに使用
される。
あるストレージ周辺装置は、ストレージ・セキュリティ・サブシステム・クラス(TC
G Opalなど)といったセキュリティプロトコルに従って動作し、ホストから受け取
られる、記憶媒体に書き込まれるべきデータを暗号化することができるようになっており
、さらに、記憶媒体から読み取られるデータを復号化することができるようになっている
。ある実施形態では、セキュリティプロトコル暗号化/復号化は、記憶アドレス範囲とい
ったメタデータを使用して、暗号化鍵および復号化鍵を一部決定する。別の実施形態では
、1若しくはそれ以上のアドレス範囲があり、各範囲はそれぞれの鍵と関連付けられてい
る。別の実施形態では、アドレス範囲のうちのどれも一致しない場合には、グローバルな
「上記のどれでもない」鍵がある。様々な実施形態によれば、セキュリティプロトコル暗
号化/復号化は、トランスポート暗号化/復号化と同じ、トランスポート暗号化/復号化
と異なる、バックエンド暗号化/復号化と同じ、およびバックエンド暗号化/復号化と異
なる、のうちの1若しくはそれ以上である。
ある実施形態では、SSDといったストレージ周辺装置は、ホストから受け取ったデー
タを、(NANDフラッシュチップのアレイといった)記憶媒体にデータを記憶する前に
圧縮する。圧縮は、データの種類(例えばJPEGデータおよび/またはMPEGデータ
)に基づく不可逆的圧縮、局所的なやり方(LZ圧縮など)で行われる可逆的圧縮、デー
タ重複排除、および圧縮されるデータを表すのに必要とされる記憶を低減させる任意選択
の可逆変換のうちの1若しくはそれ以上を含む。記憶の前のデータの圧縮は、有利には、
書き込み増幅を低減させ、かつ/または様々なシナリオにおける見かけの記憶容量を増加
させる。しかし、(例えばトランスポート暗号化のために)暗号化されているデータは、
シナリオによっては、圧縮することができない。
ある実施形態では、SSDといったストレージ周辺装置は、ホストと鍵交換を行ってト
ランスポート暗号化層に使用される(1若しくはそれ以上の)鍵を決定し、任意選択で、
かつ/または選択的に、各鍵がどの条件の下で使用されるか決定する。ストレージ周辺装
置がホストからトランスポート暗号化データを受け取ると、ストレージ周辺装置は、任意
選択で、かつ/または選択的に、(1若しくはそれ以上の)鍵のうちの選択された1つを
使用して、トランスポート暗号化に従ってデータを復号化する。復号化されたデータは次
いで圧縮される。TCG Opalといったセキュリティプロトコルが使用される別の実
施形態では、圧縮されたデータは、任意選択で、かつ/または選択的に、セキュリティプ
ロトコルに従って暗号化される。セキュリティプロトコルと異なるバックエンド暗号化が
行われるさらに別の実施形態では、圧縮され、任意選択で、かつ/または選択的に、暗号
化されたデータは、データが記憶媒体への書き込みのために変調される前に、バックエン
ド暗号化によってさらに暗号化される。
他の実施形態では、TCG Opalではなく、トランスポート暗号化が再利用される
。すなわち、圧縮後に、圧縮されたデータは、(1若しくはそれ以上の)トランスポート
暗号化鍵/トランスポート暗号化アルゴリズムを使用して再暗号化される。
データが記憶媒体から読み戻され、ホストに返されるときには、元の暗号化データがホ
ストに返されるように、データを記憶するための前述の動作は事実上反転される。
暗号化アルゴリズムの例は、DES、トリプルDES、AES−128、AES−25
6、RSA、および他の公開鍵暗号化アルゴリズムである。
ある状況では、特定のサイズのホストストレージ書き込みがSSDのフラッシュメモリ
への(各々が、例えば、その特定のサイズの倍数などのサイズを有する)複数の書き込み
を生じるときに、書き込み増幅が生じる。複数の書き込みは、例えば、フラッシュメモリ
のある部分を書き込む(例えばプログラムする)前の当該部分の消去、ウェアレベリング
、不要部分の整理、およびシステムデータ書き込みを生じるフラッシュメモリ管理操作な
どから生じる。書き込み増幅の計算の一例は、(例えば、ホスト書き込みと関連付けられ
たホストデータの書き込みを完了するためのシステム書き込みなどを含む)ホスト書き込
みの特定の集合の代わりにフラッシュメモリに書き込まれたデータの量を、ホスト書き込
みのその特定の集合によって書き込まれたデータの量で割ったものである。ある使用シナ
リオでは、ホスト書き込みの特定の集合によって書き込まれたデータの圧縮は、ホスト書
き込みのその特定の集合の代わりにフラッシュメモリに書き込まれるデータの量を低減さ
せることを可能にする。ホスト書き込みのその特定の集合の代わりにフラッシュメモリに
書き込まれるデータの量が低減されるため、書き込み増幅はそれによって低減される。
一部の実施形態では、NVM内の様々なサイズの量の圧縮データにアクセスすることに
より、ある使用シナリオでは記憶効率が改善される。例えば、SSDコントローラは、コ
ンピューティングホストから(例えばディスク書き込みコマンドに関連した)(圧縮され
ていない)データを受け取り、データを圧縮し、データをフラッシュメモリへ記憶する。
コンピューティングホストからの(例えばディスク読み出しコマンドに関連した)その後
の要求に応答して、SSDコントローラはフラッシュメモリから圧縮データを読み出し、
圧縮データを解凍し、解凍されたデータをコンピューティングホストに提供する。圧縮デ
ータは、様々なサイズの量に従ってフラッシュメモリに記憶され、各量のサイズは、例え
ば、圧縮アルゴリズム、動作モード、様々なデータに関する圧縮有効性により変動する。
SSDコントローラは、一部は、含まれるマップ表を調べて(1つまたは複数の)ヘッダ
がフラッシュメモリのどこに記憶されているか確認することによってデータを解凍する。
SSDコントローラは、適切な(圧縮)データがフラッシュメモリのどこに記憶されてい
るか確認するためにフラッシュメモリから得た(1つまたは複数の)ヘッダをパースする
。SSDコントローラは、コンピューティングホストに提供すべき解凍データを生成する
ために、フラッシュメモリからの適切なデータを解凍する。
様々な実施形態では、SSDコントローラは、コンピューティングホストとインターフ
ェースするためのホストインターフェースと、フラッシュメモリといったNVMとインタ
ーフェースするためのインターフェースと、各インターフェースを制御し、圧縮および解
凍と共に、低レベル誤り訂正、高レベル誤り訂正、ならびに独立シリコン素子を用いた動
的高レベル冗長性モード管理を行う(かつ/または行うことの様々な態様を制御する)た
めの回路とを含む。
様々な実施形態によれば、あるホストインターフェースは、USBインターフェース規
格、CFインターフェース規格、MMCインターフェース規格、eMMCインターフェー
ス規格、サンダーボルトインターフェース規格、UFSインターフェース規格、SDイン
ターフェース規格、メモリ・スティック・インターフェース規格、xDピクチャ・カード
・インターフェース規格、IDEインターフェース規格、SATAインターフェース規格
、SCSIインターフェース規格、SASインターフェース規格、およびPCIeインタ
ーフェース規格のうちの1つ若しくはそれ以上と適合する。様々な実施形態によれば、コ
ンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコ
ンピュータ、ストレージサーバ、SAN、NASデバイス、DASデバイス、ストレージ
アプライアンス、PC、ラップトップコンピュータ、ノートブックコンピュータ、ネット
ブックコンピュータ、タブレット機器またはタブレットコンピュータ、ウルトラブックコ
ンピュータ、電子読み出し装置(e−readerなど)、PDA、ナビゲーションンシ
ステム、(ハンドヘルド型)GPS機器、自動通信路制御システム、自動車媒体制御シス
テムまたはコンピュータ、プリンタ、コピー機またはファックス機またはオールインワン
機器、POS機器、金銭登録機、メディアプレーヤ、テレビ、メディアレコーダ、DVR
、ディジタルカメラ、セルラハンドセット、コードレス電話機ハンドセット、および電子
ゲームのうちの全部または任意の部分である。一部の実施形態では、インターフェースホ
スト(SAS/SATAブリッジなど)は、コンピューティングホストおよび/またはコ
ンピューティングホストへのブリッジとして動作する。
様々な実施形態では、SSDコントローラは、1つ若しくはそれ以上のプロセッサを含
む。プロセッサは、SSDコントローラの動作を制御し、かつ/または行うためにファー
ムウェアを実行する。SSDコントローラは、コマンドおよび/または状況ならびにデー
タを送り、受け取るためにコンピューティングホストと通信する。コンピューティングホ
ストは、オペレーティングシステム、ドライバ、およびアプリケーションのうちの1つ若
しくはそれ以上を実行する。コンピューティングホストによるSSDコントローラとの通
信は、任意選択で、かつ/または選択的に、ドライバおよび/またはアプリケーションに
よるものである。第1の例では、SSDコントローラへのすべての通信がドライバによる
ものであり、アプリケーションは、ドライバに高レベルコマンドを提供し、ドライバがそ
れをSSDコントローラのための特定のコマンドに変換する。第2の例では、ドライバは
バイパスモードを実施し、アプリケーションは、ドライバを介してSSDコントローラに
特定のコマンドを送ることができるようになっている。第3の例では、PCIe SSD
コントローラが1つ若しくはそれ以上の仮想機能(Virtual Functions
:VFs)をサポートし、アプリケーションが、一度構成されると、ドライバをバイパス
してSSDコントローラを直接通信することを可能にする。
様々な実施形態によれば、あるSSDは、HDD、CDドライブ、DVDドライブとい
った磁気的不揮発性記憶および/または光学的不揮発性記憶によって使用されるフォーム
ファクタ、電気的インターフェース、および/またはプロトコルと適合する。様々な実施
形態では、SSDは、0以上のパリティ符号、0以上のRS符号、0以上のBCH符号、
0以上のビタビ符号または他のトレリス符号、および0以上のLDPC符号の様々な組み
合わせを使用する。
例示的実施形態
詳細な説明の概説を終えるにあたり、以下に、例示的実施形態をまとめて示す。これら
の例示的実施形態は、少なくとも一部は「EC」(Example Combinati
ons:ECs)として明示的に列挙されたものを有し、本明細書で説明する概念に従っ
た様々な種類の実施形態の詳細な説明を提供するものである。これらの例は、相互排他的
であることも、網羅的であることも、限定的であることも意図されておらず、本発明は、
これらの例示的実施形態だけに限定されるものではなく、発行される特許請求の範囲およ
びその均等物の範囲内のすべての可能な改変形態および変形形態を包含するものである。
EC1)方法であって、
1若しくはそれ以上の不揮発性メモリ(Non−Volatile Memories
:NVMs)からデータを受け取る工程と、
前記受け取ったデータを調整する工程と、
一連の動作に従って前記調整したデータを処理する工程と、
前記処理の結果をコンピューティングホストに提供する工程と
を有し、
前記一連の動作は、
前記調整したデータを復号化する工程と、
前記復号化したデータを展開する工程と、
前記展開したデータを再暗号化する工程と、
前記再暗号化したデータを前記結果として提供する工程と
を有し、
前記展開する工程は可逆的圧縮と対称をなす工程である
方法。
EC2)EC1記載の方法において、前記復号化する工程は第1の復号化する工程であ
り、前記調整する工程は第2の復号化する工程を有するものである方法。
EC3)EC1記載の方法において、前記処理する工程は複数のモードのうち選択され
た1つのモードに従って選択され、前記一連の動作は、前記複数のモードのうち第1のモ
ードに対応する第1の一連の動作である方法。
EC4)EC3記載の方法において、
第2の一連の動作は前記複数のモードのうち第2のモードに対応し、
前記第2の一連の動作は、前記展開したデータを前記結果として提供する工程を有する
ものである方法。
EC5)方法であって、
コンピューティングホストからデータを受け取る工程と、
一連の動作に従って受け取ったデータを処理する工程と、
前記処理の結果を調整して、1若しくはそれ以上の不揮発性メモリ(NVM)に記憶す
ることを可能にする工程と
を有し、
前記一連の動作は、
前記受け取ったデータを復号化する工程と、
前記復号化したデータを圧縮する工程と、
前記圧縮したデータを再暗号化する工程と、
前記再暗号化したデータを結果として提供する工程と
を有し、
前記圧縮する工程は可逆的である
方法。
EC6)EC5記載の方法において、前記調整する工程は暗号化する工程を有するもの
である方法。
EC7)EC5記載の方法において、前記処理する工程は複数のモードのうち選択され
た1つのモードに従って選択され、前記一連の動作は、前記複数のモードのうちの第1の
モードに対応する第1の一連の動作である方法。
EC8)EC7記載の方法において、
第2の一連の動作は前記複数のモードのうち第2のモードに対応し、
前記第2の一連の動作は、前記圧縮したデータを前記結果として提供する工程を有する
方法。
EC9)方法であって、
1若しくはそれ以上の不揮発性メモリ(NVM)からデータを受け取る工程と、
前記受け取ったデータを調整する工程と、
複数のモードのうち選択された1つのモードに従って前記調整したデータを処理する工
程と、
前記処理の結果をコンピューティングホストに提供する工程と
を有し、
前記複数のモードのうち第1のモードは、
前記調整したデータを復号化する工程と、
前記復号化したデータを第1の展開データとして展開する工程と、
前記第1の展開データを第1の再暗号化データとして再暗号化する工程と、
前記第1の再暗号化したデータを結果として提供する工程と
を有し、
前記複数のモードのうち第2のモードは、
前記調整したデータを第2の展開データとして展開する工程と、
前記第2の展開データを第2の再暗号化データとして再暗号化する工程と、
前記第2の再暗号化データを結果として提供する工程と
を有する方法。
EC10)EC9記載の方法において、前記調整する工程は復号化する工程を有するも
のである方法。
EC11)EC9記載の方法において、前記展開する工程は可逆的圧縮と対称をなす工
程である方法。
EC12)EC9記載の方法において、
前記複数のモードのうち第3のモードは、
前記第1の展開データを結果として提供する工程
を有する方法。
EC13)方法であって、
コンピューティングホストからデータを受け取る工程と、
複数のモードのうち選択された1つのモードに従って、前記受け取ったデータを処理す
る工程と、
前記処理の結果を調整して、1若しくはそれ以上の不揮発性メモリ(NVM)に記憶す
ることを可能にする工程と
を有し、
前記複数のモードのうち第1のモードは、
前記受け取ったデータを復号化する工程と、
前記復号化したデータを圧縮する工程と、
前記圧縮した復号化データを再暗号化する工程と、
前記再暗号化したデータを結果として提供する工程と
を有し、
前記複数のモードのうちの第2のモードは、
前記圧縮した復号化データを結果として提供する工程
を有する方法。
EC14)EC13記載の方法において、前記調整する工程は暗号化する工程を有する
方法。
EC15)EC13記載の方法において、前記再暗号化する工程は前記復号化する工程
と対称をなす工程である方法。
EC16)EC13記載の方法において、前記再暗号化する工程はセキュリティプロト
コルに準拠するものであり、前記復号化する工程はトランスポートプロトコルに準拠する
ものである方法。
EC17)EC13記載の方法において、さらに、
コンピューティングホストとトランスポートセッション暗号化鍵を安全に交換する工程
と、
前記復号化する工程において前記トランスポートセッション暗号化鍵の少なくとも一部
分を使用する工程と
を有するものである方法。
EC18)EC17記載の方法において、前記トランスポートセッション暗号化鍵を安
全に交換する工程は、
非対称鍵交換を使用してコンピューティングホストとソリッドステートディスク(SS
D)との間でセキュアなリンクを確立する工程と、
前記セキュアなリンク内でトランスポートセッション暗号化鍵を交換する工程と
を有する方法。
EC19)EC13記載の方法において、
前記複数のモードのうち第3のモードは、
前記受け取ったデータを圧縮する工程と、
前記圧縮したデータを暗号化する工程と、
前記圧縮した暗号化データを結果として提供する工程と
を有する方法。
EC20)EC19記載の方法において、前記暗号化する工程はセキュリティプロトコ
ルに準拠するものである方法。
EC21)EC19記載の方法において、
前記複数のモードのうち第4のモードは、
前記圧縮したデータを結果として提供する工程
を有する方法。
EC22)EC13記載の方法において、前記調整する工程は、前記結果をスクランブ
リングする工程、および/または前記結果を変調する工程を有する方法。
EC23)EC13記載の方法において、前記調整する工程は暗号化する工程を有する
方法。
EC24)EC13記載の方法において、さらに、
記憶する工程を有するものである方法。
EC25)EC24記載の方法において、前記記憶する工程は、フラッシュ・メモリ・
インターフェースを介したものである方法。
EC26)EC13記載の方法において、前記受け取る工程は、ストレージインターフ
ェース規格と適合するストレージインターフェースを介したものである方法。
EC27)EC13記載の方法において、さらに、
コンピューティングホストにより、データを暗号化したデータとして提供する工程を有
するものである方法。
EC28)EC13記載の方法において、前記復号化する工程、前記圧縮する工程、お
よび前記再暗号化する工程は、少なくとも部分的に、ソリッドステートディスク(SSD
)のコントローラによって実施される方法。
EC29)システムであって、
コンピューティングホストからデータを受け取る手段と、
複数の動作モードのうちの1つを選択的に使用可能にする手段であって、当該モードは

暗号化動作モードであって、少なくとも部分的に、
前記受け取られたデータを復号化する手段と、
前記復号化されたデータを圧縮する手段と、
前記圧縮、且つ復号化されたデータを再暗号化する手段と、
前記再暗号化されたデータを暗号化モード書き込みデータとして提供する手段と
によって実施されるものである、前記暗号化動作モードと、
非暗号化動作モードであって、少なくと部分的に、
前記受け取られたデータを圧縮する手段と、
前記圧縮、且つ受け取られたデータを非暗号化モード書き込みデータとして提供す
る手段と
によって実施されるものである、前記非暗号化動作モードと
を有するものである、前記選択的に使用可能にする手段と、
前記使用可能にされたモードの書き込みデータを選択する手段と、
前記選択されたモードの書き込みデータを暗号化する手段と、
前記暗号化、且つ選択されたモードの書き込みデータを書式設定して、1若しくはそれ
以上の不揮発性メモリ(NVM)に記憶する手段と
を有するシステム。
EC30)EC29記載のシステムにおいて、さらに、
トランスポートセッション暗号化鍵を安全に交換し、トランスポートセッション暗号化
鍵の少なくとも一部分を使用して前記受け取られたデータを受け取られた暗号化データと
して復号化する手段を有するものであるシステム。
EC31)EC29記載のシステムにおいて、前記圧縮する手段のうちの1若しくはそ
れ以上は、可逆的圧縮を実行して書き込み増幅を有利に低減させることが可能であるシス
テム。
EC32)EC29記載のシステムにおいて、前記復号化されたデータを圧縮する手段
および前記受け取られたデータを圧縮する手段は、少なくとも共通の一部分を有するもの
であるシステム。
EC33)EC29記載のシステムにおいて、前述の手段はソリッドステートディスク
(SSD)のコントローラを介した手段であり、前記不揮発性メモリはソリッドステート
ディスクに含まれるフラッシュメモリであるシステム。
EC34)EC33記載のシステムにおいて、さらに、
前記コントローラを前記コンピューティングホストとインターフェースさせる手段を有
するものであるシステム。
EC35)EC34記載のシステムにおいて、前記インターフェースさせる手段は、ス
トレージインターフェース規格と適合するものであるシステム。
EC36)EC34記載のシステムにおいて、さらに、
前記コンピューティングホストの全部または任意選択の部分を有するものであるシステ
ム。
EC37)EC29記載のシステムにおいて、さらに、
前記不揮発性メモリとインターフェースする手段を有するものであるシステム。
EC38)EC37記載のシステムにおいて、前記インターフェースする手段はフラッ
シュ・メモリ・インターフェースを有するものであるシステム。
EC39)EC29記載のシステムにおいて、さらに、
前記不揮発性メモリのうちの少なくとも1つを有するものであるシステム。
EC40)EC29記載のシステムにおいて、さらに、
前記コンピューティングホストからの要求をインターフェースする手段であって、当該
要求は前記不揮発性メモリに記憶された情報に関するものである、前記要求をインターフ
ェースする手段と、
前記不揮発性メモリとインターフェースする手段と
を有するものであるシステム。
EC41)EC40記載のシステムにおいて、前述の手段は単一の集積回路(IC)に
一括して実装されるものであるシステム。
EC42)EC40記載のシステムにおいて、前述の手段はソリッドステートディスク
(SSD)に含まれているものであるシステム。
EC43)EC30記載のシステムにおいて、前記トランスポートセッション暗号化鍵
を安全に交換する手段は、
非対称鍵交換を使用してホストとソリッドステートディスク(SSD)との間でセキュ
アなリンクを確立する手段と、
前記セキュアなリンク内でトランスポートセッション暗号化鍵を交換する手段と
を有するシステム。
EC44)命令のセットを格納する有形のコンピュータ可読媒体であって、当該命令セ
ットは記憶装置の処理要素によって実行されると、当該処理要素に、
コンピューティングホストからデータを受け取る工程と、
複数の動作モードのうちの1つを選択的に使用可能にする工程であって、当該モードは

暗号化動作モードであって、少なくとも部分的に、
前記受け取ったデータを復号化する工程と、
前記復号化したデータを圧縮する工程と、
前記圧縮した復号化データを再暗号化する工程と、
前記再暗号化したデータを暗号化モード書き込みデータとして提供する工程と
によって実施されるものである、前記暗号化動作モードと、
非暗号化動作モードであって、少なくとも部分的に、
前記受け取ったデータを圧縮する工程と、
前記圧縮、且つ受け取ったデータを非暗号化モード書き込みデータとして提供する
工程と
によって実施されるものである、前記非暗号化動作モードと
を有するものである、前記選択的に使用可能にする工程と、
前記使用可能となったモードの書き込みデータを選択する工程と、
前記選択したモードの書き込みデータを暗号化する工程と、
前記暗号化した選択モードの書き込みデータを書式設定して、1若しくはそれ以上の不
揮発性メモリ(NVM)に記憶する工程と
を有する動作を実行させ、および/または制御させるものである、
有形のコンピュータ可読媒体。
EC45)EC44記載の有形のコンピュータ可読媒体において、当該コンピュータ可
読媒体および前記処理要素はソリッドステートディスク(SSD)に含まれるものである
有形のコンピュータ可読媒体。
EC46)EC45記載の有形のコンピュータ可読媒体において、前記不揮発性メモリ
のうちの少なくとも1つはソリッドステートディスクに含まれるものである有形のコンピ
ュータ可読媒体。
EC47)前記復号化する工程と、前記再暗号化する工程とを有するか、または当該工
程に言及している前述のECのいずれか1つにおいて、前記復号化する工程および前記再
暗号化する工程のうちのいずれか1つ若しくはそれ以上はセキュアな物理境界内で実行さ
れるものであるEC。
EC48)前記復号化する工程と、前記再暗号化する工程と、前記圧縮する工程と、前
記展開する工程とを有するか、または当該工程に言及している前述のECのいずれか1つ
において、前記復号化する工程、前記再暗号化する工程、前記圧縮する工程、および前記
展開する工程のうちのいずれか1つ若しくはそれ以上は、セキュアな物理境界内で実行さ
れるものであるEC。
EC49)セキュアな物理境界を有するか、または当該物理境界に言及している前述の
ECのいずれか1つにおいて、前記セキュアな物理境界は単一の集積回路(IC)によっ
て実装されるEC。
EC50)前記トランスポートセッション暗号化鍵を有するか、または当該暗号化鍵に
言及している前述のECのいずれか1つにおいて、前記トランスポートセッション暗号化
鍵は、対称鍵暗号化/復号化と適合するものであるEC。
EC51)対称鍵暗号化/復号化を有し、またはこれに言及している前述のECのいず
れか1つにおいて、対称鍵暗号化/復号化は、
AES128、
AES192、および
AES256
のうちの1若しくはそれ以上と適合するものであるEC。
EC52)可逆的圧縮を有するか、または当該可逆的圧縮に言及している前述のECの
いずれか1つにおいて、当該可逆的圧縮はラムペル−ジフ(Lempel−Ziv:LZ
)圧縮を有するEC。
EC53)可逆的圧縮を有するか、または当該可逆的圧縮に言及している前述のECの
いずれか1つにおいて、当該可逆的圧縮は辞書コーダLZ77圧縮を有するEC。
EC54)ソリッドステートディスクコントローラを有するか、または当該コントロー
ラに言及している前述のECのいずれか1つにおいて、当該ソリッドステートディスクコ
ントローラは単一の集積回路(IC)に実装されるものであるEC。
EC55)ソリッドステートディスクコントローラと不揮発性メモリとを有するか、ま
たはこれらに言及している前述のECのいずれか1つにおいて、当該ソリッドステートデ
ィスクコントローラおよび不揮発性メモリはソリッドステートディスクに含まれるEC。
EC56)不揮発性メモリを有するか、または当該メモリに言及している前述のECの
いずれか1つにおいて、当該不揮発性メモリのうちの少なくとも1つは1若しくはそれ以
上のフラッシュメモリを有するEC。
EC57)ストレージインターフェース規格を有し、またはこれに言及している前述の
ECのいずれかにおいて、ストレージインターフェース規格は、
ユニバーサル・シリアル・バス(Universal Serial Bus:USB
)インターフェース規格と、
コンパクトフラッシュ(登録商標)(Compact Flash:CF)インターフ
ェース規格と、
マルチメディアカード(MultiMediaCard:MMC)インターフェース規
格と、
組み込み型MMC(eMMC)インターフェース規格と、
サンダーボルトインターフェース規格と、
UFSインターフェース規格と、
セキュアデジタル(Secure Digital:SD)インターフェース規格と、
メモリ・スティック・インターフェース規格と、
xDピクチャ・カード・インターフェース規格と、
内蔵ドライブエレクトロニクス(Integrated Drive Electro
nics:IDE)インターフェース規格と、
シリアル・アドバンスト・テクノロジー・アタッチメント(Serial Advan
ced Technology Attachment:SATA)インターフェース規
格と、
エクスターナルSATA(eSATA)インターフェース規格と、
スモール・コンピュータ・システム・インターフェース(SCSI)インターフェース
規格と、
シリアル接続スモール・コンピュータ・システム・インターフェース(SAS)インタ
ーフェース規格と、
ファイバー・チャンネル・インターフェース規格と、
イーサネット(登録商標)インターフェース規格と、
ペリフェラル・コンポーネント・インターコネクト・エキスプレス(Peripher
al Component Interconnect express:PCIe)イ
ンターフェース規格と
のうちの1若しくはそれ以上のものを有するものであるEC。
EC58)フラッシュ・メモリ・インターフェースを有するか、または当該インターフ
ェースに言及している前述のECのいずれか1つにおいて、当該フラッシュ・メモリ・イ
ンターフェースは、
オープンNANDフラッシュインターフェース(ONFI)、
トグルモードインターフェース、
ダブルデータレート(DDR)同期インターフェース、
DDR2同期インターフェース、
同期インターフェース、および
非同期インターフェース
のうちの1若しくはそれ以上と適合するものであるEC。
EC59)コンピューティングホストを有し、またはこれに言及している前述のECの
いずれかにおいて、コンピューティングホストは、
コンピュータと、
ワークステーションコンピュータと、
サーバコンピュータと、
ストレージサーバと、
ストレージ・アタッチト・ネットワーク(Storage Attached Net
work:SAN)と、
ネットワーク・アタッチト・ストレージ(Network Attached Sto
rage:NAS)デバイスと、
ダイレクト・アタッチト・ストレージ(Direct Attached Stora
ge:DAS)デバイスと、
ストレージアプライアンスと、
パーソナルコンピュータ(Personal Computer:PC)と、
ラップトップコンピュータと、
ノートブックコンピュータと、
ネットブックコンピュータと、
タブレットデバイス又はタブレットコンピュータと、
ウルトラブックコンピュータと、
電子書籍端末(電子読み出し機)と、
携帯端末(Personal Digital Assistant:PDA)と、
ナビゲーションシステムと、
(ハンドヘルド)グローバル・ポジショニング・システム(Global Posit
ioning System:GPS)デバイスと、
自動車制御システムと、
自動車媒体制御システム及び自動車媒体制御コンピュータと、
プリンタ、コピー機、若しくはFAX機、又はオールインワンデバイスと、
販売時点情報管理POSデバイスと、
金銭登録機と、
メディアプレイヤと、
テレビと、
メディアレコーダと、
デジタル・ビデオ・レコーダ(Digital Video Recorder:DV
R)と、
デジタルカメラと、
セル方式送受話器と、
コードレス電話の送受話器と、
電子ゲームと
のうちの1若しくはそれ以上のものを有するものであるEC。
EC60)少なくとも1つのフラッシュメモリを有するか、または当該フラッシュメモ
リに言及している前述のECのいずれか1つにおいて、少なくとも1つのフラッシュメモ
リの少なくとも一部分は、
NANDフラッシュ技術記憶セル、および
NORフラッシュ技術記憶セル
のうちの1若しくはそれ以上を有するEC。
EC61)少なくとも1つのフラッシュメモリを有するか、または当該フラッシュメモ
リに言及している前述のECのいずれか1つにおいて、当該フラッシュメモリの少なくと
も一部分は、
シングルレベルセル(SLC)フラッシュ技術記憶セル、および
マルチレベルセル(MLC)フラッシュ技術記憶セル
のうちの1若しくはそれ以上を有するEC。
EC62)少なくとも1つのフラッシュメモリを有するか、または当該フラッシュメモ
リに言及している前述のECのいずれか1つにおいて、当該フラッシュメモリの少なくと
も一部分は、
多結晶シリコン技術ベースの電荷蓄積セル、および
シリコン窒化膜技術ベースの電荷蓄積セル
のうちの1若しくはそれ以上を有するEC。
EC63)少なくとも1つのフラッシュメモリを有するか、または当該フラッシュメモ
リに言及している前述のECのいずれかにおいて、当該フラッシュメモリの少なくとも一
部分は、
2次元技術ベースのフラッシュメモリ技術、および
3次元技術ベースのフラッシュメモリ技術
のうちの1若しくはそれ以上を有するEC。
システム
図1Aは、NVM要素(フラッシュメモリなど)によって実施されるような不揮発性記
憶を管理するためのトランスポート暗号化層を使用するSSDコントローラを含むSSD
(101)の実施形態の選択された詳細を図示する。SSDコントローラはNVM要素(
例えば、フラッシュメモリ)を介して実装される不揮発性ストレージなどの不揮発性スト
レージを管理するためのものである。SSDコントローラ100は1若しくはそれ以上の
外部インターフェース110を介してホスト(図示せず)に通信するように結合される。
様々な実施形態に従って、外部インターフェース110は、SATAインターフェース、
SASインターフェース、PICeインターフェース、ファイバー・チャンネル・インタ
ーフェース、イーサネット(登録商標)インターフェース(例えば、10ギガビットのイ
ーサネット(登録商標))、上記のインターフェースのうちのいずれかの規格外版、若し
くは特注のインターフェース、又はストレージ及び/又は通信機器及び/又は計算デバイ
スを相互接続するために使用されるその他任意の種類のインターフェースのうちの1若し
くはそれ以上である。例えば、一部の実施形態において、SSDコントローラ100はS
ATAインターフェースとPCIeインターフェースとを含む。
SSDコントローラ100は、さらに、1つ若しくはそれ以上のデバイスインターフェ
ース190を介して、1つ若しくはそれ以上のフラッシュデバイス192といった、1つ
若しくはそれ以上の記憶デバイスを含むNVM199に通信可能に結合されている。様々
な実施形態によれば、デバイスインターフェース190は、非同期インターフェース、同
期インターフェース、シングルデータレート(SDR)インターフェース、ダブルデータ
レート(DDR)インターフェース、DRAM互換DDR若しくはDDR2同期インター
フェース、ONFI2.2やONFI3.0互換インターフェースといったONFI互換
インターフェース、トグルモード互換フラッシュインターフェース、上記のインターフェ
ースのいずれかの非標準バージョン、カスタムインターフェース、または記憶デバイスに
接続するのに使用される任意の他の種類のインターフェースのうちの1つ若しくはそれ以
上である。
各フラッシュデバイス192は、一部の実施形態では、1つ若しくはそれ以上の個々の
フラッシュダイ194を有する。フラッシュデバイス192のうちの特定のフラッシュデ
バイスの種類に従って、特定のフラッシュデバイス192内の複数のフラッシュダイ19
4に、並列に、任意選択で、かつ/または選択的にアクセスすることができる。フラッシ
ュデバイス192は、単に、SSDコントローラ100に通信可能に結合することができ
るようにした記憶デバイスの一種を表しているにすぎない。様々な実施形態では、SLC
NANDフラッシュメモリ、MLC NANDフラッシュメモリ、NORフラッシュメ
モリ、多結晶シリコン若しくはシリコン窒化膜技術ベースの電荷蓄積セルを使用したフラ
ッシュメモリ、2次元若しくは3次元技術ベースのフラッシュメモリ、読み出し専用メモ
リ、スタティック・ランダム・アクセス・メモリ、ダイナミック・ランダム・アクセス・
メモリ、強磁性メモリ、相変化メモリ、レーストラックメモリ、または任意の他の種類の
メモリデバイス若しくは記憶媒体といった、任意の種類の記憶デバイスを使用することが
できる。
様々な実施形態によれば、デバイスインターフェース190は、1つのバスにつき1つ
若しくはそれ以上のフラッシュデバイス192を有する1つ若しくはそれ以上のバス;グ
ループ内のバスにおおむね並列にアクセスさせる、1つのバスにつき1つ若しくはそれ以
上のフラッシュデバイス192を有する1つ若しくはそれ以上のバスグループ;またはデ
バイスインターフェース190上へのフラッシュデバイス192の1つ若しくはそれ以上
のインスタンスの任意の他の編成として編成される。
引き続き図1Aにおいて、SSDコントローラ100は、ホストインターフェース11
1、データ処理121、バッファ131、マップ141、リサイクラ151、ECC16
1、デバイスインターフェース論理191、CPU171といった1つ若しくはそれ以上
のモジュールを有する。図1Aに図示する具体的なモジュールおよび相互接続は、単に、
一実施形態を表すにすぎず、これらのモジュールの一部または全部、および図示されてい
ないさらに別のモジュールの多くの配置および相互接続が考えられる。第1の例として、
一部の実施形態では、デュアルポーティングを提供するための2つ以上のホストインター
フェース111がある。第2の例として、一部の実施形態では、データ処理121および
/またはECC161がバッファ131と組み合わされている。第3の例として、一部の
実施形態では、ホストインターフェース111がバッファ131に直接結合されており、
データ処理121が、バッファ131に記憶されたデータに任意選択で、かつ/または選
択的に作用する。第4の例として、一部の実施形態では、デバイスインターフェース論理
191がバッファ131に直接結合されており、ECC161が、バッファ131に記憶
されたデータに任意選択で、かつ/または選択的に作用する。
ホストインターフェース111は、外部インターフェース110を介してコマンドおよ
び/またはデータを送受信し、一部の実施形態では、タグ追跡113によって個々のコマ
ンドの進捗を追跡する。例えば、コマンドは、読み出すべきアドレス(LBAなど)およ
びデータの量(LBA量、例えばセクタの数など)を指定する読み出しコマンドを含み、
これに応答してSSDは、読み出し状況および/または読み出しデータを提供する。別の
例として、コマンドは、書き込むべきアドレス(LBAなど)およびデータの量(LBA
量、例えばセクタの数など)を指定する書き込みコマンドを含み、これに応答してSSD
は、書き込み状況を提供し、かつ/または書き込みデータを要求し、任意選択でその後に
書き込み状況を提供する。さらに別の例として、コマンドは、もはや割り当てられる必要
のなくなった1つ若しくはそれ以上のアドレス(1つ若しくはそれ以上のLBAなど)を
指定する割り当て解除コマンド(trimコマンドなど)を含み、これに応答してSSD
は、マップをしかるべく変更し、任意選択で割り当て解除状況を提供する。あるコンテキ
ストでは、ATA互換TRIMコマンドが割り当て解除コマンドの例である。さらに別の
例として、コマンドは、超コンデンサ・テスト・コマンドまたはデータハーデニング成功
問い合わせを含み、これに応答してSSDは、適切な状況を提供する。一部の実施形態で
は、ホストインターフェース111は、SATAプロトコルと適合し、NCQコマンドを
使用して、最高32までの未処理のコマンドを有することができるようになっており、各
コマンドは0から31までの数として表された一意のタグを有する。一部の実施形態では
、タグ追跡113は、外部インターフェース110を介して受け取ったコマンドのための
外部タグを、SSDコントローラ100による処理の間にコマンドを追跡するのに使用さ
れる内部タグと関連付けることができるようになっている。
様々な実施形態によれば、データ処理121は、任意選択で、かつ/または選択的に、
バッファ131と外部インターフェース110との間で送られる一部または全部のデータ
を処理する、およびデータ処理121は、任意選択で、かつ/または選択的に、バッファ
131に記憶されたデータを処理する、以下のうちの1つ若しくはそれ以上が行われる。
一部の実施形態では、データ処理121は、1つ若しくはそれ以上のエンジン123を使
用して、書式設定、書式設定の変更、符号変換、ならびに他のデータ処理および/または
操作タスクのうちの1つ若しくはそれ以上を行う。
バッファ131は、外部インターフェース110からデバイスインターフェース190
へ/デバイスインターフェース190から外部インターフェース110へ送られたデータ
を記憶する。一部の実施形態では、バッファ131は、さらに、SSDコントローラ10
0によって1つ若しくはそれ以上のフラッシュデバイス192を管理するのに使用される
、一部または全部のマップ表といったシステムデータも記憶する。様々な実施形態では、
バッファ131は、データの一時記憶に使用されるメモリ137、バッファ131への、
かつ/またはバッファ131からのデータの移動を制御するのに使用されるDMA133
、ならびに高レベル誤り訂正および/または冗長性機能と、他のデータ移動および/また
は操作機能とを提供するのに使用されるECC−X135のうちの1つ若しくはそれ以上
を有する。高レベル冗長性機能の一例がRAID様の能力であり、ディスクレベルではな
く、フラッシュ・デバイス(フラッシュデバイス192のうちの複数のものなど)レベル
および/またはフラッシュダイ(フラッシュダイ194など)レベルの冗長性を備える。
様々な実施形態によれば、以下のうちの1つ若しくはそれ以上である。ECC161は
、任意選択で、かつ/または選択的に、バッファ131とデバイスインターフェース19
0との間で送られる一部または全部のデータを処理する;およびECC161は、任意選
択で、かつ/または選択的に、バッファ131に記憶されたデータを処理する。一部の実
施形態では、ECC161は、例えば1つ若しくはそれ以上のECC技法に従った低レベ
ル誤り訂正および/または冗長性機能を提供するのに使用される。一部の実施形態では、
ECC161は、CRC符号、ハミング符号、RS符号、BCH符号、LDPC符号、ビ
タビ符号、トレリス符号、硬判定符号、軟判定符号、消去ベースの符号、任意の誤り検出
および/または訂正符号、ならびに上記の任意の組み合わせのうちの1つ若しくはそれ以
上を実施する。一部の実施形態では、ECC161は、1つ若しくはそれ以上の復号器(
LDPC復号器など)を含む。
デバイスインターフェース論理191は、デバイスインターフェース190を介してフ
ラッシュデバイス192のインスタンスを制御する。デバイスインターフェース論理19
1は、フラッシュデバイス192のプロトコルに従ってフラッシュデバイス192のイン
スタンスへ/からデータを送ることができるようになっている。デバイスインターフェー
ス論理191は、デバイスインターフェース190を介したフラッシュデバイス192の
インスタンスの制御を選択的に配列するスケジューリング193を含む。例えば、一部の
実施形態では、スケジューリング193は、フラッシュデバイス192のインスタンスへ
の操作を待ち行列に入れ、フラッシュデバイス192(またはフラッシュダイ194)の
インスタンスの個々のインスタンスへの操作を、フラッシュデバイス192(またはフラ
ッシュダイ194)のインスタンスの個々のインスタンスが利用可能になるに従って選択
的に送ることができるようになっている。
マップ141は、外部インターフェース110上で使用されるデータアドレス指定と、
デバイスインターフェース190上で使用されるデータアドレス指定との間の変換を行い
、表143を使用して外部データアドレスからNVM199内の位置へマップする。例え
ば、一部の実施形態では、マップ141は、外部インターフェース110上で使用される
LBAを、表143によって提供されるマッピングにより、1つ若しくはそれ以上のフラ
ッシュダイ194を対象とするブロックおよび/またはページアドレスに変換する。ドラ
イブ製造または割り当て解除以来一度も書き込まれていないLBAでは、マップは、LB
Aが読み取出された場合に返すべきデフォルト値を指し示す。例えば、割り当て解除コマ
ンドを処理するときに、マップは、割り当て解除されたLBAに対応するエントリがデフ
ォルト値のうちの1つを指し示すように変更される。様々な実施形態では、様々なデフォ
ルト値があり、各々が対応するポインタを有する。複数のデフォルト値は、ある(例えば
第1の範囲内の)割り当て解除されたLBAを1つのデフォルト値として読み出し、ある
(例えば第2の範囲内の)割り当て解除されたLBAを別のデフォルト値として読み出す
ことを可能にする。デフォルト値は、様々な実施形態では、フラッシュメモリ、ハードウ
ェア、ファームウェア、コマンドおよび/若しくはプリミティブ引数および/若しくはパ
ラメータ、プログラマブルレジスタ、またはそれらの様々な組み合わせによって定義され
る。
一部の実施形態では、マップ141は、表143を使用して、外部インターフェース1
10上で使用されるアドレスと、デバイスインターフェース190上で使用されるデータ
アドレス指定との間の変換を行い、かつ/またはルックアップする。様々な実施形態によ
れば、表143は、1レベルマップ、2レベルマップ、マルチレベルマップ、マップキャ
ッシュ、圧縮マップ、あるアドレス空間から別のアドレス空間への任意の種類のマッピン
グ、および上記の任意の組み合わせのうちの1つ若しくはそれ以上である。様々な実施形
態によれば、表143は、スタティック・ランダム・アクセス・メモリ、ダイナミック・
ランダム・アクセス・メモリ、NVM(フラッシュメモリなど)、キャッシュメモリ、オ
ンチップメモリ、オフチップメモリ、および上記の任意の組み合わせのうちの1つ若しく
はそれ以上を含む。
一部の実施形態では、リサイクラ151は、ガーベジコレクションを行う。例えば、一
部の実施形態では、フラッシュデバイス192のインスタンスは、ブロックが書き換え可
能になる前に消去されなければならないブロックを含む。リサイクラ151は、例えば、
マップ141によって維持されるマップをスキャンすることによって、フラッシュデバイ
ス192のインスタンスのどの部分が実際に使用されているか(例えば、割り当て解除さ
れているのではなく割り当てられていること)を決定し、フラッシュデバイス192のイ
ンスタンスの未使用の(例えば割り当て解除された)部分を消去することによって書き込
みに利用できるようにすることができるようになっている。別の実施形態では、リサイク
ラ151は、フラッシュデバイス192のインスタンスのより大きい連続した部分を書き
込みに利用できるようにするために、フラッシュデバイス192のインスタンス内に記憶
されたデータを移動することができるようになっている。
一部の実施形態では、フラッシュデバイス192のインスタンスは、異なる種類および
/または属性のデータを記憶するための1つ若しくはそれ以上のバンドを保持するように
、選択的に、かつ/または動的に構成され、管理され、かつ/または使用される。バンド
の数、配置、サイズ、および種類は、動的に変更可能である。例えば、コンピューティン
グホストからのデータはホット(アクティブな)バンドに書き込まれ、リサイクラ151
からのデータはコールド(あまりアクティブではない)バンドに書き込まれる。ある使用
シナリオでは、コンピューティングホストが長い順次のストリームを書き込む場合には、
ホットバンドのサイズが増加し、コンピューティングホストがランダムな書き込みを行い
、またはわずかな書き込みしか行わない場合には、コールドバンドのサイズが増加する。
CPU171は、SSDコントローラ100の様々な部分を制御する。CPU171は
、CPUコア172を含む。CPUコア172は、様々な実施形態によれば、1つ若しく
はそれ以上のシングルコアプロセッサまたはマルチコアプロセッサである。CPUコア1
72内の個々のプロセッサコアは、一部の実施形態では、マルチスレッド化されている。
CPUコア172は、命令および/またはデータのキャッシュおよび/またはメモリを含
む。例えば、命令メモリは、CPUコア172が、SSDコントローラ100を制御する
ためのプログラム(ファームウェアとも呼ばれるソフトウェアなど)を実行することを可
能にする命令を含む。一部の実施形態では、CPUコア172によって実行されるファー
ムウェアの一部または全部が、(例えば、図1BのNVM199のファームウェア106
として図示されている)フラッシュデバイス192のインスタンス上に記憶される。
様々な実施形態では、CPU171は、外部インターフェース110を介して受け取ら
れるコマンドを、コマンドが進行している間に追跡し、制御するコマンド管理173、バ
ッファ131の割り当ておよび使用を制御するバッファ管理175、マップ141を制御
する変換管理177、データアドレス指定の整合性を制御し、例えば、外部データアクセ
スと再利用データアクセスとの間の矛盾を回避するコヒーレンシ管理179、デバイスイ
ンターフェース論理191を制御するデバイス管理181、識別情報の変更および通信を
制御する識別情報管理182、ならびに、任意選択で、他の管理部をさらに含む。CPU
171によって果たされる管理機能は、そのいずれか、若しくは全部が、ハードウェア、
ソフトウェア(CPUコア172上や、外部インターフェース110を介して接続された
ホスト上で実行されるファームウェアなど)、またはそれらの任意の実施形態によって制
御され、かつ/または管理され、あるいは、そのどれも、制御も管理もされないものであ
る。
一部の実施形態では、CPU171は、性能統計の収集および/または報告、SMAR
Tの実施、電源逐次開閉機構の制御、電力消費の制御および/または調整、電源障害への
応答、クロック速度の制御および/またはモニタリングおよび/または調整、ならびに他
の管理タスクのうちの1つ若しくはそれ以上といった、他の管理タスクを行うことができ
るようになっている。
様々な実施形態は、SSDコントローラ100と同様の、例えば、ホストインターフェ
ース111および/または外部インターフェース110の適応による、様々なコンピュー
ティングホストを用いた動作と適合するコンピューティングホスト・フラッシュ・メモリ
・コントローラを含む。様々なコンピューティングホストは、コンピュータ、ワークステ
ーションコンピュータ、サーバコンピュータ、ストレージサーバ、SAN、NASデバイ
ス、DASデバイス、ストレージアプライアンス、PC、ラップトップコンピュータ、ノ
ートブックコンピュータ、ネットブックコンピュータ、タブレット機器またはタブレット
コンピュータ、ウルトラブックコンピュータ、電子読み出し装置(e−readerなど
)、PDA、ナビゲーションンシステム、(ハンドヘルド型)GPS機器、自動通信路制
御システム、自動車媒体制御システムまたはコンピュータ、プリンタ、コピー機またはフ
ァックス機またはオールインワン機器、POS機器、金銭登録機、メディアプレーヤ、テ
レビ、メディアレコーダ、DVR、ディジタルカメラ、セルラハンドセット、コードレス
電話機ハンドセット、および電子ゲームのうちの1つまたはそれらの任意の組み合わせを
含む。
様々な実施形態では、SSDコントローラ(またはコンピューティングホスト・フラッ
シュ・メモリ・コントローラ)の全部または任意の部分が、単一のIC、マルチダイIC
の単一のダイ、マルチダイICの複数のダイ、または複数のIC上で実施される。例えば
、バッファ131は、SSDコントローラ100の他の要素と同じダイ上に実施される。
別の例では、バッファ131は、SSDコントローラ100の他の要素と異なるダイ上に
実施される。
図1Bに、図1AのSSDの1つ若しくはそれ以上のインスタンスを含むシステムの様
々な実施形態の選択された詳細を図示する。SSD101は、デバイスインターフェース
190を介してNVM199に結合されたSSDコントローラ100を含む。図には、様
々な種別の実施形態、すなわち、ホストに直接結合された単一のSSD、各々がそれぞれ
の外部インターフェースを介してホストに直接それぞれ結合されている複数のSSD、お
よび様々な相互接続要素を介してホストに間接的に結合された1つ若しくはそれ以上のS
SDが示されている。
ホストに直接結合された単一のSSDの例示的実施形態としては、SSD101の1つ
のインスタンスが、外部インターフェース110を介してホスト102に直接結合される
(例えば、スイッチ/ファブリック/中間コントローラ103が省かれ、バイパスされ、
またはパススルーされる)。各々がそれぞれの外部インターフェースを介してホストに直
接結合されている複数のSSDの例示的実施形態としては、SSD101の複数のインス
タンスの各々が、外部インターフェース110のそれぞれのインスタンスを介してホスト
102に直接それぞれ結合される(例えば、スイッチ/ファブリック/中間コントローラ
103が省かれ、バイパスされ、またはパススルーされる)。様々な相互接続要素を介し
てホストに間接的に結合された1つ若しくはそれ以上のSSDの例示的実施形態としては
、SSD101の1つ若しくはそれ以上のインスタンスの各々が、ホスト102に間接的
にそれぞれ結合される。各間接結合は、スイッチ/ファブリック/中間コントローラ10
3に結合された外部インターフェース110のそれぞれのインスタンス、およびホスト1
02に結合する中間インターフェース104を介したものである。
スイッチ/ファブリック/中間コントローラ103を含む実施形態の一部は、メモリイ
ンターフェース180を介して結合された、SSDによってアクセス可能なカードメモリ
112Cも含む。様々な実施形態では、SSD、スイッチ/ファブリック/中間コントロ
ーラ、および/またはカードメモリのうちの1つ若しくはそれ以上が、物理的に識別可能
なモジュール、カード、または差し込み可能な要素(入出力カード116など)上に含ま
れる。一部の実施形態では、SSD101(またはその変形)は、ホスト102として動
作するイニシエータ(開始プログラム)に結合されたSASドライブまたはSATAドラ
イブに対応する。
ホスト102は、OS105、ドライバ107、アプリケーション109、マルチデバ
イス管理ソフトウェア114の様々な組み合わせといった、ホストソフトウェア115の
様々な要素を実行することができるようになっている。点線矢印107Dは、ホストソフ
トウェア←→入出力装置通信、例えば、SSD101のインスタンスのうちの1つ若しく
はそれ以上から/へ、ドライバ107を介したOS105、ドライバ107、および、ド
ライバ107を介して、またはVFとして直接アプリケーション109のうちの任意の1
つ若しくはそれ以上へ/から送られ/受け取られるデータを表す。
OS105は、SSDとインターフェースするための(概念的にはドライバ107によ
って図示されている)ドライバを含み、かつ/またはそのようなドライバを用いて動作す
ることができるようになっている。Windows(登録商標)の様々なバージョン(9
5、98、ME、NT、XP、2000、サーバ、Vista、および7など)、Lin
ux(登録商標)の様々なバージョン(Red Hat、Debian、およびUbun
tuなど)、ならびにMacOSの様々なバージョン(8、9およびXなど)がOS10
5の例である。様々な実施形態では、ドライバは、SATA、AHCI、NVM Exp
ressといった標準のインターフェースおよび/またはプロトコルを用いて動作する標
準のドライバおよび/または汎用のドライバ(「シュリンクラップされた(市販の)」ま
たは「プリインストールされた」ともいう)であり、あるいは、任意選択で、SSD10
1に特有のコマンドの使用を可能にするようにカスタマイズされており、かつ/またはベ
ンダ特有のものである。あるドライブおよび/またはドライバは、アプリケーションレベ
ルのプログラム、例えば最適化NANDアクセス(Optimized NAND Ac
cess)(ONAともいう)または直接NANDアクセス(Direct NAND
Access)(DNAともいう)の各技法によるアプリケーション109などが、コマ
ンドをSSD101に直接伝えることを可能にするパススルーモードを有し、カスタマイ
ズされたアプリケーションが、汎用ドライバとでさえもSSD101に特有のコマンドを
使用することを可能にする。ONAの技法は、非標準変更子(hints)の使用、ベン
ダ特有のコマンドの使用、非標準の統計の通信、例えば圧縮可能性に従った実際のNVM
の使用、および他の技法のうちの1つ若しくはそれ以上を含む。DNAの技法は、NVM
へのマップされていない読み出し、書き込み、および/または消去アクセスを提供する非
標準のコマンドまたはベンダ特有の(コマンド)の使用、例えば、入出力装置が通常は行
うはずのデータの書式設定をバイパスすることによる、NVMへのより直接的なアクセス
を提供する非標準の、またはベンダ特有のコマンドの使用、および他の技法のうちの1つ
若しくはそれ以上を含む。ドライバの例は、ONAまたはDNAサポートなしのドライバ
、ONA使用可能ドライバ、DNA使用可能ドライバ、ONA/DNA使用可能ドライバ
である。ドライバの別の例は、ベンダ提供ドライバ、ベンダ開発ドライバ、および/また
はベンダ拡張ドライバ、ならびにクライアント提供ドライバ、クライアント開発ドライバ
、および/またはクライアント拡張ドライバである。
アプリケーションレベルのプログラムの例は、ONAまたはDNAサポートなしのアプ
リケーション、ONA使用可能アプリケーション、DNA使用可能アプリケーション、お
よびONA/DNA使用可能アプリケーションである。点線矢印109Dは、アプリケー
ション←→入出力装置通信(ドライバによるバイパスや、アプリケーションのためのVF
によるバイパスなど)、例えば、OSを仲介として使用するアプリケーションなしでSS
Dと通信するONA使用可能アプリケーションおよびONA使用可能ドライバなどを表す
。点線矢印109Vは、アプリケーション←→入出力装置通信(アプリケーションのため
のVFによるバイパスなど)、例えば、OSまたはドライバを仲介として使用するアプリ
ケーションなしでSSDと通信するDNA使用可能アプリケーションおよびDNA使用可
能ドライバなどを表す。
NVM199の1つ若しくはそれ以上の部分が、一部の実施形態では、ファームウェア
記憶、例えばファームウェア106に使用される。ファームウェア記憶は、1つ若しくは
それ以上のファームウェアイメージ(またはその部分)を含む。ファームウェアイメージ
は、例えばSSDコントローラ100のCPUコア172によって実行される、例えばフ
ァームウェアの1つ若しくはそれ以上のイメージを有する。ファームウェアイメージは、
別の例では、例えばファームウェア実行時にCPUコアによって参照される、定数、パラ
メータ値、NVMデバイス情報の1つ若しくはそれ以上のイメージを有する。ファームウ
ェアのイメージは、例えば、現在のファームウェアイメージおよび0以上の(ファームウ
ェア更新に対して)前のファームウェアイメージに対応する。様々な実施形態では、ファ
ームウェアは、汎用動作モード、標準動作モード、ONA動作モード、および/またはD
NA動作モードを提供する。一部の実施形態では、ファームウェア動作モードのうちの1
つ若しくはそれ以上が、ドライバによって任意選択で伝えられ、かつ/または提供される
、鍵または様々なソフトウェア技法によって使用可能とされる(例えば、1つ若しくはそ
れ以上のAPIが「ロック解除」される)。
スイッチ/ファブリック/中間コントローラを欠く一部の実施形態では、SSDは、外
部インターフェース110を介して直接ホストに結合される。様々な実施形態では、SS
Dコントローラ100は、RAIDコントローラといった他のコントローラの1つ若しく
はそれ以上の中間レベルを介してホストに結合される。一部の実施形態では、SSD10
1(またはその変形)は、SASドライブまたはSATAドライブに対応し、スイッチ/
ファブリック/中間コントローラ103は、イニシエータにさらに結合されたエキスパン
ダに対応し、あるいは、スイッチ/ファブリック/中間コントローラ103は、エキスパ
ンダを介してイニシエータに間接的に結合されたブリッジに対応する。一部の実施形態で
は、スイッチ/ファブリック/中間コントローラ103は、1つ若しくはそれ以上のPC
Ieスイッチおよび/またはファブリックを含む。
様々な実施形態、例えば、コンピューティングホストとしてのホスト102(コンピュ
ータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、SA
N、NASデバイス、DASデバイス、ストレージアプライアンス、PC、ラップトップ
コンピュータ、ノートブックコンピュータ、および/またはネットブックコンピュータな
ど)を有する実施形態のあるものでは、コンピューティングホストは、任意選択で、1つ
若しくはそれ以上のローカルサーバおよび/またはリモートサーバ(例えば、任意選択の
サーバ118)と(例えば、任意選択の入出力装置/リソースおよび記憶装置/リソース
117および任意選択のLAN/WAN119を介して)通信することができるようにな
っている。通信は、例えば、SSD101要素のうちの任意の1つ若しくはそれ以上のロ
ーカルおよび/またはリモートのアクセス、管理、および/または使用を可能にする。一
部の実施形態では、通信は、全部または一部がイーサネット(登録商標)(Ethern
et(登録商標))によるものである。一部の実施形態では、通信は、全部または一部が
ファイバチャネルによるものである。LAN/WAN119は、様々な実施形態では、1
つ若しくはそれ以上のローカル・エリア・ネットワークおよび/または広域ネットワーク
、例えば、サーバファーム内のネットワーク、サーバファームを結合するネットワーク、
メトロエリアネットワーク、およびインターネットのうちの任意の1つ若しくはそれ以上
を表す。
様々な実施形態では、1つ若しくはそれ以上のNVMと組み合わされたSSDコントロ
ーラおよび/またはコンピューティングホスト・フラッシュ・メモリ・コントローラが、
USB記憶コンポーネント、CF記憶コンポーネント、MMC記憶コンポーネント、eM
MC記憶コンポーネント、サンダーボルト記憶コンポーネント、UFS記憶コンポーネン
ト、SD記憶コンポーネント、メモリスティック記憶コンポーネント、xDピクチャカー
ド記憶コンポーネントといった不揮発性記憶コンポーネントとして実施される。
様々な実施形態では、SSDコントローラ(またはコンピューティングホスト・フラッ
シュ・メモリ・コントローラ)の全部またはいずれかの部分、またはその機能が、コント
ローラが結合されるべきホスト(図1Bのホスト102など)において実施される。様々
な実施形態では、SSDコントローラ(若しくはコンピューティングホスト・フラッシュ
・メモリ・コントローラ)の全部またはいずれかの部分、またはその機能が、ハードウェ
ア(論理回路など)、ソフトウェアおよび/若しくはファームウェア(ドライバソフトウ
ェア若しくはSSD制御ファームウェアなど)、またはそれらの任意の組み合わせによっ
て実施される。例えば、(例えば図1AのECC161および/またはECC−X135
と同様の)ECC部の、またはECC部と関連付けられた機能が、一部はホスト上のソフ
トウェアによって、一部はSSDコントローラ内のファームウェアとハードウェアとの組
み合わせによって実施される。別の例として、(例えば図1Aのリサイクラ151と同様
の)リサイクラ部の、またはリサイクラ部と関連付けられた機能が、一部はホスト上のソ
フトウェアによって、一部はコンピューティングホスト・フラッシュ・メモリ・コントロ
ーラ内のハードウェアによって実施される。
トランスポート暗号化の使用法および動作の例
図2に、図1Aに示すような不揮発性記憶を管理するための暗号化トランスポートの技
法を使用した暗号化トランスポートSSD200の具体的応用の一例を示す。コンピュー
タ202は、後でインターネット経由でリモートサーバ204からダウンロードされ、暗
号化トランスポートSSD200上に一時的に記憶され、閲覧するためのVGAディスプ
レイ206に送られるペイパービュー映画を選択し、そのレンタル料の支払いを行うのに
使用される。よって、映画は、サーバから移行している間、VGAディスプレイを制御す
るVGAビデオ信号208としてコンピュータから出てくるまで、(盗難などから)保護
される。
映画は、暗号化形式でサーバからトランスポートされ、暗号化形式でSSD内に記憶さ
れ、暗号化形式でVGAコントローラ210に送られる。状況によっては、VGAビデオ
信号208は高品質ビデオ記録に適さず、よって、映画がVGAビデオ信号として盗まれ
ることになる可能性が低減される。
コンピュータは、映画の暗号化トランスポートを、リモートサーバと暗号化トランスポ
ートSSD200との間で(破線212で概念的に図示されている)セキュアな通信リン
クを確立することにより開始する。セキュアな通信リンクが確立されると、ホストとして
働くリモートサーバは、SSDと暗号化鍵を交換する。リモートサーバは、交換した鍵に
従って映画を暗号化し、暗号化した映画を、セキュアな通信リンクを介して、閲覧を待つ
間の一時的記憶のために暗号化トランスポートSSD200に転送する。
暗号化トランスポートSSD200は、フラッシュメモリ214に記憶するためにダウ
ンロードされた映画を圧縮する。ある実施形態および/または使用シナリオでは、圧縮は
、例えば、フラッシュメモリ書き込み増幅を最小化すること、および/または見かけの記
憶容量を増加させることを可能にする。しかし、状況によっては、暗号化された映画は効
果的に圧縮されない場合もある。したがって、(例えば、単一の集積回路として実施され
た)セキュアな物理境界(SSDコントローラ)216内で、SSDは、交換した暗号化
鍵を使用してダウンロードされた映画を復号化する。復号化された映画は圧縮され、次い
で、記憶のためにセキュアな物理境界(SSDコントローラ)216からフラッシュメモ
リ214にエクスポートされる前に再暗号化される。ダウンロードが完了すると、リモー
トサーバはセキュアな通信リンクを切断する。
映画の閲覧を開始するために、コンピュータは、VGAコントローラ210と暗号化ト
ランスポートSSD200との間に(破線218で概念的に示されている)セキュアな通
信リンクを確立し、ダウンロードされた映画の記憶アドレスを提供する。暗号化鍵交換が
、ホストとして働くVGAコントローラと暗号化トランスポートSSD200との間で行
われる。暗号化トランスポートSSD200は、フラッシュメモリ214から記憶された
映画を読み出し、セキュアな物理境界(SSDコントローラ)216内で読み出した映画
を復号化し、その結果を展開し、交換した暗号化鍵を使用して再暗号化し、次いで、再暗
号化した映画をVGAコントローラ210にエクスポートする。VGAコントローラは、
暗号化された映画を受け取り、VGAコントローラ210のセキュアな物理境界(VGA
コントローラ)220内で、交換した暗号化鍵を使用して映画を復号化し、VGA制御信
号208を提供して、VGAディスプレイ206による映画の閲覧を可能にする。セキュ
アな物理境界(SSDコントローラ)216およびセキュアな物理境界(VGAコントロ
ーラ)220の外部のいかなる点においても、非暗号化形式で利用可能な映画が改ざんま
たは盗難の対象となることはない。
ある実施形態では、リモートサーバとSSDとの間のセキュアな通信リンクは、複数の
要素、すなわち、リモートサーバとコンピュータとの間の結合222、コンピュータを介
したトランスポート、およびコンピュータとSSDとの間の結合224を使用する。リモ
ートサーバとコンピュータとの間の結合222は、例えば、リモートサーバ204および
インターネットへの結合(図示せず)、インターネットを介したトランスポート、ならび
にコンピュータ202のネットワーキングインターフェースを介してインターネットへの
別の結合などによるものである。コンピュータとSSDとの間の結合224は、例えば、
コンピュータ202のストレージインターフェース(図示せず)および暗号化トランスポ
ートSSD200の外部インターフェースなどによるものである。ある実施形態では、V
GAコントローラとSSDとの間のセキュアな通信リンクは、複数の要素、すなわち、コ
ンピュータを介したトランスポート、およびコンピュータとSSDとの間の結合224を
使用する。
様々な実施形態において、暗号化トランスポートSSD200は、図1Aに示す1若し
くはそれ以上の要素に従って実施される。例えば、フラッシュメモリ214は図1AのN
VM199に対応し、および/またはSSDとコンピュータとの間の結合224は図1A
の1若しくはそれ以上の外部インターフェース110に対応する。様々なコンテキストに
おいて、図2に示す具体的応用は、図1Bに示す1若しくはそれ以上の要素に従って実施
される。例えば、暗号化トランスポートSSD200は図1BのSSD101のインスタ
ンスに対応し、コンピュータ202は図1Bのホスト102に対応する。
トランスポート暗号化層の実施形態
上記の例では、リモートサーバ204は、ペイパービュー映画のダウンロードおよび記
憶の間はホストであった。次いで、閲覧中は、VGAコントローラ210がホストの役割
を果たした。「ホスト」の一例は、この用語が図2、図3A、図3B、図4、および図5
に関連して使用される場合には、暗号化トランスポートSSDの具体的実施形態を用いた
データの暗号化トランスポートの間の暗号化鍵交換およびデータ暗号化/復号化を実行す
るシステムプラットフォームである。
図3A、図3B、図4、および図5に、暗号化トランスポートSSDの機能の具体的実
施形態の詳細を示す。図3Aには、2段の圧縮後データ暗号化を含む書き込みデータパス
機能が示されている。図3Bには、図3Aの書き込みデータパス機能の「反転」と合致す
る、2段の展開前復号化を含む読み取りデータパス機能が示されている。図4には、暗号
化鍵および復号化鍵の交換と、ホストと暗号化トランスポートSSDとの間のデータ転送
とのためのセキュアな通信リンクを確立するのに使用されるハンドシェーキングが示され
ている。図5には、図3Aおよび図3Bに示すようなデータパスを含む、ホストと暗号化
トランスポートSSDとの間の書き込みデータ転送動作および読み取りデータ転送動作が
示されている。
図3Aのブロック図には、暗号化鍵を交換し、フラッシュメモリ306に記憶するため
の暗号化データ304をトランスポートするために暗号化トランスポートSSD302と
通信可能に結合されたホスト300が示されている。暗号化トランスポートSSD302
は、フラッシュメモリ306とSSDコントローラ308とを含む。様々な実施形態およ
び/または使用シナリオにおいて、暗号化トランスポートSSD302、SSDコントロ
ーラ308、およびフラッシュメモリ306は、それぞれ、図1Aのソリッドステートデ
ィスク101、SSDコントローラ100、およびNVM199に対応する。
一具体的実施形態では、SSDコントローラ308は、ホスト300とフラッシュメモ
リ306との間の暗号化データのトランスポートを処理するための書き込みデータパス3
10を含む。書き込みデータパス310は、セッション復号化層314、可逆的圧縮層3
16、内部暗号化層318、バックエンド暗号化層320、および書き込み−書式設定層
322を含む。書き込みデータパス310は、暗号化データ304を受け取り、フラッシ
ュメモリ306に記憶するために暗号化書式設定データ312をエクスポートする。
ある実施形態では、書き込みデータパス310の1若しくはそれ以上の動作の任意選択
の部分は、図1AのSSD101の1若しくはそれ以上の要素の部分によって実行される
。例えば、データ処理121の部分は、バッファ131、ECC161、デバイスインタ
ーフェース論理191、およびデバイスインターフェース190と連携して、書き込みデ
ータパス310の動作を実行する。他の実施形態では、前述の層のうちの1若しくはそれ
以上は、1若しくはそれ以上の専用ハードウェア論理回路ブロックならびに/または1若
しくはそれ以上の組み込みプロセッサおよび関連付けられたファームウェアで実施される
。SSDコントローラ308が単一の集積回路内で実施されるときに、単一の集積回路は
、復号化データ326および圧縮データ328内の復号化情報、ならびに任意選択の交換
された鍵が(例えば改ざんや盗難などから)保護されていることを保証するセキュアな物
理境界(図示せず)を提供する。
ある実施形態では、暗号化データがフラッシュメモリ306に書き込まれる前に、ホス
ト300と暗号化トランスポートSSD302とは、セキュアな接続を確立し、セッショ
ン暗号化鍵および復号化鍵を交換する。あるシナリオでは、ホストは、書き込みコマンド
、記憶アドレスを発行し、次いで、(図3AにKで示されている)セッション暗号化鍵
を使用したデータの暗号化を開始し、結果304をエクスポートする。
SSDコントローラ308は暗号化データ304を受け取り、受け取ったデータを、(
図3AにKで示されている)セッション復号化鍵を使用してセッション復号化層314
で復号化し、復号化データ326を生成する。復号化データ326は、可逆的圧縮層31
6によって圧縮され、圧縮データ328を生成する。ある実施形態および/または使用シ
ナリオでは、可逆的圧縮は、有利には、書き込み増幅率を低減させ、かつ/または記憶さ
れなければならないデータの量を低減させることによってフラッシュメモリに書き込まれ
るデータの見かけの記憶容量を増加させる。一具体的実施形態では、圧縮の技法は、LZ
可逆的圧縮(例えば、LZ77といった辞書コーダ)である。
圧縮データ328は、内部暗号化層318によって暗号化され、暗号化圧縮データ33
0を生成する。一具体的実施形態では、内部暗号化層318は、ホスト300によって使
用されたセッション暗号化の技法(例えば、K=Kである同じ暗号化アルゴリズム)
を使用して暗号化データ304を生成する。別の実施形態では、内部暗号化層318の暗
号化の技法は、例えば、TCG Opalといったセキュリティプロトコルによって決定
される。そのようなセキュリティプロトコルの一具体的実施形態では、内部暗号化層31
8によって使用される暗号化鍵Kは、少なくとも一部は、記憶アドレス範囲といったメ
タデータによって決定される。別の実施形態では、複数のアドレス範囲があり、各範囲は
それぞれの暗号化鍵と関連付けられている。別の実施形態では、アドレス範囲のうちのど
れも一致しない場合には、グローバルな「上記のどれでもない」鍵がある。
ある実施形態では、暗号化圧縮データ330は、バックエンド暗号化層320で、暗号
化鍵Kを使用して2度目の暗号化を施され、バックエンド暗号化データ332を生成す
る。別の具体的実施形態では、バックエンド暗号化層320は、暗号化の技法および/ま
たは内部暗号化層318によって使用された鍵とは異なる(1若しくはそれ以上の)鍵(
例えばK!=K)を使用する。さらに別の実施形態では、暗号化の代わりにスクラン
ブラが使用される。
バックエンド暗号化データ332は、記憶アドレスマッピング、誤り訂正のための符号
化、変調といった技法により、書き込み−書式設定層322によって処理され、フラッシ
ュメモリ306にエクスポートされる暗号化書式設定データ312を生成する。
書き込みデータパス310の別の実施形態(図示せず)では、内部暗号化層318は存
在せず、バックエンド暗号化層320への圧縮データ328の直接入力を可能にする。様
々な実施形態において、単一段の圧縮後暗号化書き込みデータパスは、(a)バックエン
ド暗号化、(b)ホスト300によって使用されたトランスポートセッション暗号化、お
よび(c)セキュリティプロトコルによって決定される暗号化のうちの1つを用いる。
書き込みデータパス310の別の実施形態(図示せず)では、ホストによって送られる
データは暗号化されず、平文として送られる。セッション復号化層314は存在せず、ホ
ストから可逆的圧縮層316へのデータの直接入力を可能にする。内部暗号化鍵Kの値
はセキュリティプロトコルによって決定される。バックエンド暗号化層320は鍵K
使用してバックエンド暗号化を行う。
書き込みデータパス310の別の実施形態(図示せず)では、セッション復号化層31
4も内部暗号化層318も存在しない。ホストからの平文データ入力は可逆的圧縮層31
6に直接適用され、圧縮データ328はバックエンド暗号化層320に直接適用される。
バックエンド暗号化鍵Kの値は、(a)バックエンド暗号化鍵値、および(b)セキュ
リティプロトコルによって決定される値のうちの1つである。
図3Bに示すブロック図には、暗号化鍵を交換し、暗号化トランスポートSSD302
内の記憶からホスト300に暗号化データ304をトランスポートするために暗号化トラ
ンスポートSSD302と通信可能に結合されたホスト300が示されている。図3Bに
は、図3Aに示されている暗号化トランスポートSSDの書き込みデータパス機能と適合
する読み取りデータパス機能の一実施形態の選択された詳細が示されており、読み取りデ
ータパス機能は2段の展開前復号化を含む。
一具体的実施形態では、SSDコントローラ308は、フラッシュメモリ306とホス
ト300との間の暗号化データのトランスポートを処理するための読み取りデータパス3
46を含む。読み取りデータパス346は、読み取り書式解除層336、バックエンド復
号化層338、内部復号化層340、読み取り展開層342、およびセッション暗号化層
344を含む。読み取りデータパス346は、フラッシュメモリ306内の記憶から暗号
化書式設定データ312をインポートし、ホスト300に暗号化データ304を出力する
ある実施形態では、読み取りデータパス346の1若しくはそれ以上の動作の任意選択
の部分は、図1AのSSD101の1若しくはそれ以上の要素の部分によって実行される
。例えば、データ処理121の部分は、バッファ131、ECC161、デバイスインタ
ーフェース論理191、およびデバイスインターフェース190と連携して、読み取りデ
ータパス346の動作を実行する。他の実施形態では、前述の層のうちの1若しくはそれ
以上は、1若しくはそれ以上の専用ハードウェア論理回路ブロックならびに/または1若
しくはそれ以上の組み込みプロセッサおよびファームウェアで実施される。SSDコント
ローラ308が単一の集積回路内で実施されるときに、単一の集積回路は、復号化データ
326および圧縮データ328内の復号化情報、ならびに任意選択の交換された鍵が(例
えば、改ざんや盗難などから)保護されていることを保証するセキュアな物理境界(図示
せず)を提供する。
ある実施形態では、暗号化書式設定データ312がフラッシュメモリ306から読み取
られる前に、ホスト300と暗号化トランスポートSSD302とは、セキュアな接続を
確立し、セッション暗号化鍵および復号化鍵を交換する。あるシナリオでは、ホストは、
読み取りコマンド、および読み出しアドレスを発行し、次いで、暗号化トランスポートS
SD302による暗号化データ304の送出を待つ。ホスト300は(図3BにKとし
て図示されている)セッション復号化鍵を使用して受け取ったデータを復号化する。
SSDコントローラ308は、フラッシュメモリ306から暗号化書式設定データ31
2をインポートする。SSDコントローラ308は読み取り書式解除層336でインポー
トしたデータを書式解除し、記憶アドレスマッピング、誤り訂正のための復号、復調とい
った技法により、バックエンド暗号化データ332を生成する。バックエンド暗号化デー
タ332は、バックエンド復号化層338で復号化され、暗号化圧縮データ330を生成
する。暗号化圧縮データ330は、内部復号化層340で復号化され、圧縮データ328
を生成する。圧縮データ328は読み取り展開層342で展開され、復号化データ326
を生成する。復号化データ326は、セッション暗号化層344によってセッション暗号
化鍵Kを使用して暗号化され、暗号化データ304を生成する。読み取り動作は、書き
込み動作の逆相似動作である。読み取り書式解除層336、復号化層338および340
、読み取り展開層342、ならびにセッション暗号化層344は、データをフラッシュメ
モリ306に記憶させた書き込み動作の結果を反転させる。
書き込み時に内部暗号化層318によって使用された暗号化鍵Kが、少なくとも一部
は、記憶アドレス範囲といったメタデータによって決定されているとき、またはそれぞれ
の暗号化鍵が複数のアドレス範囲によって決定されている場合、またはアドレス範囲のど
れも一致しないために「上記のどれでもない」鍵が使用された場合には、対応する復号化
鍵が、内部復号化層340によって圧縮データ328を生成するのに使用される。
読み取りデータパス346の別の実施形態(図示せず)では、内部復号化層340は存
在せず、読み取り展開層342へのバックエンド復号化データの直接入力を可能にする。
様々な実施形態において、単一段の展開前復号化読み取りデータパスは、(a)バックエ
ンド復号化、(b)ホスト300によって使用されたトランスポートセッション復号化、
および(c)セキュリティプロトコルによって決定される復号化のうちの1つを用いる。
読み取りデータパス346の別の実施形態(図示せず)では、ホストによって受け取ら
れるデータは暗号化されず、平文として送られる。セッション暗号化層344は存在せず
、読み取り展開層342がホストに直接データを提供することを可能にする。内部復号化
鍵Kの値はセキュリティプロトコルによって決定される。バックエンド復号化層338
は、鍵Kを使用して、フラッシュメモリへのデータ書き込み時に使用されたバックエン
ド暗号化を反転させる。
読み取りデータパス346の別の実施形態(図示せず)では、内部復号化層340もセ
ッション暗号化層344も存在せず、読み取り展開層342へのバックエンド復号化デー
タの直接入力を可能にし、読み取り展開層342がデータを平文としてホストに直接提供
することを可能にする。バックエンド復号化層338は、(a)バックエンド暗号化鍵値
、および(b)セキュリティプロトコルによって決定される値のうちの1つを使用して、
フラッシュメモリへのデータ書き込み時に使用されたバックエンド暗号化を反転させる。
さらに別の実施形態(図示せず)では、ホストと暗号化トランスポートSSDとの間で
送られるデータは、選択的に、暗号化されて伝えられ、さもなければ、平文として伝えら
れる。例えば、ホストデータの1若しくはそれ以上のアドレス範囲は、暗号化形式で(例
えばTCG Opalなどのようにそれぞれの鍵に従って)伝えられ、他のアドレス範囲
は平文形式で伝えられる。別の例では、ホストからのある種のコマンドは、データが暗号
化して伝えられるか、それとも平文として伝えられるか(暗号化されたコマンドを読み取
り、または書き込む、平文コマンドを読み取り、または書き込むなど)を指定する。
様々な実施形態では、SSDコントローラにおいて、(書き込みデータパス310とい
った)ホストからフラッシュへの書き込みデータパスおよび(読み取りデータパス346
といった)フラッシュからホストへの読み取りデータパスの同時の、非干渉の動作を可能
にするのに十分なリソースが実装され、ホストと暗号化トランスポートSSDとの間の同
時の、非干渉双方向の書き込み動作および読み取り動作を可能にする。他の実施形態では
、書き込みデータパスおよび読み取りデータパスの任意選択の部分またはすべての部分は
共用され、ホストと暗号化トランスポートSSDとの間の同時の、かつ/または非干渉の
書き込み動作および読み取り動作を妨げるが、ハードウェアの低減を可能にする(例えば
、ある状況では、コストを有利に低減させる)。
図4は、図2、図3A、および図3Bに関連して図示し、説明したような、例えば暗号
化トランスポートSSDのコンテキストでの、暗号化トランスポートデータ転送を実行す
るためのホストとSSDコントローラとの間のセキュアな通信リンクの作成、使用、およ
び放棄の一実施形態を示す流れ図である。ホスト動作409は右側に図示されており、コ
ントローラ動作419は左側に図示されている。
要約すると、セキュアな通信リンクが確立され、ホストとコントローラとが各々相手側
の識別情報を認証し、対称暗号化鍵および復号化鍵が交換され、暗号化データの転送が行
われ、完了すると、通信リンクは切断され、コントローラは、対称暗号化鍵および復号化
鍵のコントローラ側のコピーを破壊する。
開始401で、ホストはコントローラを「チャネルを開く」受諾412に進ませる「チ
ャネルを開く」要求402を行う。「チャネルを開く」受諾412はホストによって確認
され、ホスト側の認証403に進む。コントローラはコントローラ側の認証413に進む
。あるシナリオでは、両方の側が相手側の識別情報を認証した後で、各々の側は相手側に
公開暗号化鍵を送り、セキュアな通信リンクの作成を完了する。
セキュアな通信リンクを使用して、双方が対称暗号化鍵および復号化鍵を交換する(コ
ントローラ側の鍵交換414およびホスト側の鍵交換404)。ある実施形態では、AE
S128、AES192、AES256といったAES暗号化の技法が使用される。その
ような実施形態では、単一の鍵が双方によって暗号化と復号化の両方に使用される(K
=K
セキュアなトラフィック交換が行われ(コントローラ側のトラフィック交換415およ
びホスト側のトラフィック交換405)、その間に、例えば図3Aについて説明した暗号
化データ書き込み動作、例えば図3Bについて説明した暗号化データ読み取り動作、また
はその両方が行われる。例えば、対称暗号化鍵および復号化鍵の交換によって決定される
鍵Kは、図3Aのセッション復号化層314および図3Bのセッション暗号化層344
の鍵Kに対応する。ホストからコントローラに送られるデータは、参照番号508(ホ
スト側のコントローラ側へのトラフィック508)で指示されており、コントローラから
ホストに送られるデータは、参照番号510(コントローラ側のホスト側へのトラフィッ
ク510)で指示されている。
ある実施形態では、概念的にはセキュアなトラフィック交換の「下で」動作するセキュ
リティプロトコルが任意選択で用いられる。コントローラは、内部暗号化鍵および復号化
鍵を決定するのに使用される情報、および/または、コントローラ側のTCG Ops/
ストレージアクセス415Xで図示される、コントローラ側のセキュリティプロトコルに
基づくアクセスを可能にするプロトコル情報を受け取り、記憶する。ホストは、内部暗号
化鍵および復号化鍵を決定するのに使用される対応する情報、および/または、ホスト側
のTCG Ops/ストレージアクセス405Xで図示される、ホスト側のセキュリティ
プロトコルに基づくアクセスを可能にするプロトコル情報を決定し、かつ/または受け取
り、次いで記憶する。任意選択のセキュリティプロトコルとのセキュアなトラフィック交
換は、内部暗号化鍵および復号化鍵および/またはコントローラ側のTCG Ops/ス
トレージアクセス415Xと関連付けられたプロトコル情報を使用して、内部暗号化層3
18(図3Aに示されているホスト書き込み)および内部復号化層340(図3Bに示さ
れているホスト読み取り)に鍵情報を提供する。ある実施形態、例えば、セキュリティプ
ロトコルとしてのTCG Opalに基づくある実施形態では、内部暗号化/復号化層の
ための鍵情報は、ホスト要求と関連付けられた1若しくはそれ以上のアドレス範囲に依存
する。
セキュアなトラフィック交換が完了すると、ホスト側は「チャネルを閉じる」要求40
6に進み、コントローラ側は「チャネルを閉じる」受諾416に進む。セキュアな通信リ
ンクは放棄され、コントローラは、対称暗号化鍵および復号化鍵Kのコントローラ側の
コピーを破壊する(鍵を破壊する417)。
図5は、(図2、図3A、図3B、および図4に関連して図示し、説明したような)暗
号化トランスポートSSDコントローラのデータパス制御および/または動作の一実施形
態を示す流れ図である。図5で、書き込みデータパス制御動作501〜507は左側にあ
り、読み取りデータパス制御動作517〜511は右側にある。データパス制御および/
または動作は、図3Aおよび図3Bに示すように、2段の圧縮後暗号化データパスに適用
され、図4のコントローラ側のセキュアなトラフィック交換415の間に発生するイベン
トに対応する。図5に適用可能な動作コンテキストの一例は図1Bであり、図1Bでは、
概念的に、ホスト102はSSDコントローラ100を介してNVM199に暗号化デー
タを書き込み、SSDコントローラを介してNVM199から暗号化データを読み取る。
書き込み操作の間に、SSDコントローラは、(例えばホストから)暗号化書き込みデ
ータを受け取り(書き込みデータを受け取る501)、(例えば図3Aの314により)
交換された暗号化鍵および復号化鍵K(K=K)(鍵=K522K)を使用して
暗号化書き込みデータを復号化する(書き込みデータを復号化する502)。復号化され
たデータは(例えば図3Aの316によって)圧縮される(復号化したデータを圧縮する
503)。圧縮されたデータは、内部暗号化鍵Kを使用して、内部暗号化層によって(
例えば図3Aの318によって)暗号化される(圧縮したデータを暗号化する504)。
暗号化された圧縮されたデータは、バックエンド暗号化層によって(例えば図3Aの32
0によって)バックエンド暗号化鍵K(鍵=K525K)を使用して(再)暗号化さ
れる(暗号化したデータを(再)暗号化する505)。バックエンド暗号化データは(例
えば図3Aの322によって)変調され((再)暗号化したデータを変調する506)、
NVM199に記憶される(変調したデータを記憶する507)。ある実施形態では、内
部暗号化鍵Kは、書き込みデータを受け取るのに使用された鍵と別個のものである(K
!=K)(鍵=K524K)。他の実施形態では、Kの値はセキュリティプロト
コルによって決定され、一具体的実施形態では、K=Kである。参照番号508(ホ
スト側のコントローラ側へのセキュアなトラフィック508)は、ホストからSSDコン
トローラに転送されるデータを表し、参照番号510(コントローラ側のホスト側へのセ
キュアなトラフィック510)は、SSDコントローラからホストに転送されるデータを
表す。
読み取り操作の間に、SSDコントローラはNVM199から暗号化書式設定データを
インポートし(データを読み取る517)、(例えば図3Bの336によって)読み取っ
たデータを復調する(読み取ったデータを復調する516)。復調されたデータは(例え
ば図3Bの338によって)復号化され(復調したデータを復号化する515)、結果は
(例えば図3Bの340によって)再度復号化される(復号化したデータを復号化する5
14)。結果は(例えば図3Bの342によって)展開され((再)復号化したデータを
展開する513)、次いで(例えば図3Bの344によって)暗号化され(展開したデー
タを暗号化する512)、結果として得られる暗号化データはホスト102に提供される
(暗号化したデータを提供する511)。
実施技法の例
ある実施形態では、(例えばフラッシュメモリを有する)暗号化トランスポートSSD
コントローラ、コンピューティングホスト・フラッシュ・メモリ・コントローラ、および
/またはSSDコントローラ(例えば図1AのSSDコントローラ100)、ならびにプ
ロセッサ、マイクロプロセッサ、システム・オン・チップ、特定用途向け集積回路、ハー
ドウェアアクセラレータ、または前述の動作の全部または部分を提供する他の回路によっ
て行われる動作の全部またはいずれかの部分の様々な組み合わせが、コンピュータシステ
ムによる処理と適合する仕様によって指定される。仕様は、様々な記述、例えば、ハード
ウェア記述言語、回路記述、ネットリスト記述、マスク記述、またはレイアウト記述に従
ったものである。記述の例には、Verilog、VHDL、SPICE、SPICEの
変形、例えば、PSpice、IBIS、LEF、DEF、GDS−II、OASIS、
または他の記述が含まれる。様々な実施形態では、処理は、1若しくはそれ以上の集積回
路上に含めるのに適する論理および/または回路を生成し、検証し、または指定するため
の解釈、コンパイル、シミュレーション、および合成の任意の組み合わせを含む。各集積
回路は、様々な実施形態によれば、様々な技法に従って設計することができ、かつ/また
は製造することができる。技法には、プログラマブルな技法(例えば、フィールド若しく
はマスク・プログラマブル・ゲート・アレイ集積回路)、セミカスタムの技法(例えば、
全部若しくは一部がセルベースの集積回路)、およびフルカスタムの技法(例えば、実質
的に専門化された集積回路)、それらの任意の組み合わせ、または集積回路の設計および
/若しくは製造と適合する任意の他の技法が含まれる。
ある実施形態では、命令のセットを記憶しているコンピュータ可読媒体によって記述さ
れる動作の全部または部分の様々な組み合わせが、1若しくはそれ以上のプログラム命令
の実行および/若しくは解釈によって、1若しくはそれ以上のソースおよび/若しくはス
クリプト言語命令文の解釈および/若しくはコンパイルによって、または、プログラミン
グおよび/若しくはスクリプティング言語命令文で表現された情報をコンパイルし、変換
し、かつ/または解釈することによって生成されるバイナリ命令の実行によって実行され
る。命令文は任意の標準のプログラミングまたはスクリプティング言語(例えば、C、C
++、Fortran、Pascal、Ada、Java(登録商標)、VBscrip
t、Shell)と適合する。プログラム命令、言語命令文、またはバイナリ命令のうち
1若しくはそれ以上が、任意選択で、1若しくはそれ以上のコンピュータ可読記憶媒体要
素上に記憶される。様々な実施形態では、プログラム命令の一部、全部、または様々な部
分が、1若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロ
シージャ、マクロ、またはそれらの部分として実現される。
結論
ある特定の選択が、説明において、テキストおよび図面を作成するに際の単なる便宜の
ためになされており、別の指示がない限り、それらの選択は、それ自体で、前述の実施形
態の構造または動作に関する追加情報を伝えるものと解釈すべきではない。選択の例には
、図の符番に使用される呼称の特定の編成または割り当て、および実施形態の特徴および
要素を識別し、参照するのに使用される要素識別子(コールアウトや数値識別子など)の
特定の編成または割り当てが含まれる。
「includes」または「including」という語は、開放型範囲の論理集
合を記述する抽象概念として解釈されるべきことが明確に意図されており、後に続けて「
within」という語が明示されない限り物理的包含を伝えるためのものではない。
前述の実施形態は、説明および理解の明確さのためにある程度詳細に説明されているが
、本発明は提示した詳細だけに限定されるものではない。本発明の多くの実施形態がある
。開示の実施形態は例示であり、限定ではない。
説明と整合性を有する、構成、配置、および使用における多くの変形が可能であり、そ
れらの変形は、発行される特許の特許請求の範囲内にあることが理解されるであろう。例
えば、相互接続および機能ユニットのビット幅、クロック速度、および使用される技術の
種類は、各構成要素ブロックにおける様々な実施形態に従って変わりうる。相互接続およ
び論理に与えられた名称は、単なる例であり、説明した概念を限定するものと解釈すべき
ではない。フローチャートおよび流れ図のプロセス、動作、および機能要素の順序および
配置は、様々な実施形態に従って変わりうる。また、特に別に指定しない限り、指定され
る値範囲、使用される最大値および最小値、または他の特定の仕様(例えば、フラッシュ
メモリ技術の種類、レジスタおよびバッファ内のエントリまたは段の数)は、単に前述の
実施形態のものにすぎず、実施技術の改善および変更を追跡することが見込まれるもので
あり、限定として解釈すべきではない。
当分野で公知の機能的に等価の技法を、様々なコンポーネント、サブシステム、動作、
関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはそ
れらの部分を実施するのに、前述の技法の代わりに用いることができる。また、実施形態
の多くの機能的態様を、より高速な処理(以前にハードウェアにあった機能のソフトウェ
アへの移行を円滑化する)およびより高い集積密度(以前にソフトウェアにあった機能の
ハードウェアへの移行を円滑化する)の実施形態に依存する設計制約条件および技術傾向
に応じて、選択的に、ハードウェア(おおむね専用の回路など)で、またはソフトウェア
で(例えば、プログラムされたコントローラ若しくはプロセッサのある方式によって)実
現できることも理解される。様々な実施形態の具体的な変形は、これに限定されるもので
はないが、分割の違い、フォームファクタおよび構成の違い、異なるオペレーティングシ
ステムおよび他のシステムソフトウェアの使用、異なるインターフェース規格、ネットワ
ークプロトコル、または通信リンクの使用、本明細書で説明した概念を、特定の用途の固
有の技術的業務的制約条件に従って実施するときに予期されるべき他の変形を含む。
各実施形態は、前述の各実施形態の多くの態様の最小限の実施に必要とされるものを大
きく超えた詳細および環境的コンテキストと共に説明されている。ある実施形態は、残り
の要素間での基本的協働を変更せずに開示の構成要素または機能を割愛することを当業者
は理解するであろう。よって、開示の詳細の多くが前述の実施形態の様々な態様を実施す
るのに必要ではないことが理解される。残りの要素が先行技術と区別できる範囲内で、割
愛される構成要素および特徴は本明細書で説明した概念を限定するものではない。
設計におけるすべてのそのような変形は、前述の実施形態によって伝えられる教示に対
する実質的な変更ではない。また、本明細書で説明した実施形態は、他のコンピューティ
ング用途およびネットワーキング用途に幅広い適用性を有し、前述の実施形態の特定の用
途または産業だけに限定されるものではないことも理解される。よって本発明は、発行さ
れる特許の特許請求の範囲内に包含されるあらゆる可能な改変形態および変形形態を含む
ものと解釈すべきである。
関連技術:公知である、または周知であるものとして明記されない限り、コンテキスト、定義、または比較を目的とするものを含む本明細書における技法および概念の言及は、そのような技法または概念が以前から公知であり、あるいは先行技術の一部であることの容認と解釈すべきではない。特許、特許出願、および出版物を含む、本明細書で引用されるあらゆる参照文献は(それがある場合には)、具体的に組み込まれているか否かを問わず、あらゆる目的で、この参照によりその全体が本明細書に組み込まれるものである。
(先行技術文献)
(特許文献)
(特許文献1)米国特許出願公開第2011/0055664号明細書
(特許文献2)米国特許第7,706,538号明細書
(特許文献3)米国特許出願公開第2008/0205635号明細書
(特許文献4)米国特許出願公開第2008/0072070号明細書

Claims (21)

  1. システムであって、
    ホストから暗号化データおよび記憶アドレスを受け取る手段と、
    前記受け取る手段からの結果の少なくとも一部を復号化する手段と、
    前記復号化する手段からの結果の少なくとも一部を圧縮して書き込み増幅を有利に低減
    させる手段と、
    前記圧縮する手段からの結果の少なくとも一部を暗号化する手段と、
    前記暗号化する手段からの結果の少なくとも一部を書式設定(formatting)
    する手段と、
    前記書式設定する手段からの結果の少なくとも一部を、前記記憶アドレスに従って1若
    しくはそれ以上の不揮発性メモリ(Non−Volatile Memories:NV
    Ms)に記憶する手段と
    を有し、
    前記受け取る手段、前記復号化する手段、前記圧縮する手段、前記暗号化する手段、お
    よび前記書式設定する手段は、各々、少なくとも部分的にソリッドステートディスク(S
    olid−State Disk:SSD)のコントローラに含まれており、前記ソリッ
    ドステートディスクは前記不揮発性メモリと前記コントローラとを有するものである
    システム。
  2. 請求項1記載のシステムにおいて、さらに、
    前記ホストと1若しくはそれ以上の暗号化鍵および復号化鍵を交換する手段
    を有するものであり、
    前記復号化する手段は、前記交換された鍵の少なくとも一部分を使用して前記受け取ら
    れた暗号化データを復号化するものであるシステム。
  3. 請求項2記載のシステムにおいて、前記復号化する手段、前記圧縮する手段、および前
    記暗号化する手段はセキュアな物理境界内にあるシステム。
  4. 請求項3記載のシステムにおいて、前記セキュアな物理境界は単一の集積回路を含むも
    のであるシステム。
  5. 請求項3記載のシステムにおいて、さらに、
    前記交換された鍵の少なくとも一部分を前記セキュアな物理境界内に保存する手段を有
    するものであるシステム。
  6. 請求項1記載のシステムにおいて、前記圧縮する手段は可逆的圧縮を実施するものであ
    るシステム。
  7. 請求項1記載のシステムにおいて、前記暗号化データはセキュリティプロトコルに従っ
    て暗号化されるものであるシステム。
  8. 請求項7記載のシステムにおいて、前記セキュリティプロトコルはメタデータを使用し
    て暗号化鍵および復号化鍵を決定するシステム。
  9. 請求項8記載のシステムにおいて、前記セキュリティプロトコルはトラステッド・コン
    ピューティング・グループ(Trusted Computing Group:TCG
    )Opalであるシステム。
  10. 請求項8記載のシステムにおいて、前記暗号化鍵および復号化鍵は、少なくとも一部は
    、前記メタデータの記憶アドレス範囲によって決定されるシステム。
  11. 請求項10記載のシステムにおいて、前記暗号化鍵および復号化鍵のうちの1つ1つは
    、少なくとも一部は、前記メタデータのそれぞれの記憶アドレス範囲によって決定される
    システム。
  12. 請求項1記載のシステムにおいて、前記暗号化する手段は内部暗号化の手段であり、シ
    ステムはさらに、前記内部暗号化の手段と前記書式設定する手段との間で動作するバック
    エンド暗号化の手段を有するものであるシステム。
  13. 方法であって、
    ホストから記憶アドレスを受け取る工程と、
    前記記憶アドレスに従って、1若しくはそれ以上の不揮発性メモリ(Non−Vola
    tile Memories:NVMs)から、書式付き暗号化圧縮データをインポート
    する工程と、
    前記インポートしたデータの少なくとも一部を書式解除(unformatting)
    する工程と、
    前記書式解除したデータの少なくとも一部を復号化する工程と、
    前記復号化したデータの少なくとも一部を展開する工程と、
    前記展開したデータの少なくとも一部を暗号化する工程と、
    前記暗号化したデータの少なくとも一部を前記ホストにエクスポートする工程と
    を有し、
    前記インポートする工程、前記書式解除する工程、前記復号化する工程、前記展開する
    工程、前記暗号化する工程、および前記エクスポートする工程は、各々少なくとも部分的
    にソリッドステートディスク(Solid−State Disk:SSD)のコントロ
    ーラにより実行され、前記ソリッドステートディスクは前記不揮発性メモリと前記コント
    ローラとを有するものである方法。
  14. 請求項13記載の方法において、さらに、
    前記ホストと暗号化鍵および復号化鍵を交換する工程
    を有するものであり、
    前記暗号化する工程は、前記交換した鍵の少なくとも一部分を使用して前記展開したデ
    ータを暗号化する方法。
  15. 請求項13記載の方法において、さらに、
    前記復号化する工程、前記展開する工程、および前記暗号化する工程をセキュアな物理
    境界内で実行する工程を有するものである方法。
  16. システムであって、
    ホストから暗号化データを受け取ることができるようになっているホストインターフェ
    ースと、
    少なくとも一部はセッション復号化鍵を使用して、前記暗号化データの少なくとも一部
    分を復号化することができるようになっている復号化ハードウェア層と、
    前記復号化ハードウェア層の結果の少なくとも一部分を可逆的に圧縮することができる
    ようになっている可逆的圧縮ハードウェア層と、
    前記可逆的圧縮ハードウェア層の結果の少なくとも一部分を暗号化することができるよ
    うになっている内部暗号化ハードウェア層と、
    前記内部暗号化ハードウェア層の結果の少なくとも一部分を暗号化することができるよ
    うになっているバックエンド暗号化ハードウェア層と、
    前記バックエンド暗号化ハードウェア層の結果の少なくとも一部分を受け取るように結
    合された、前記バックエンド暗号化ハードウェアの結果の前記少なくとも一部分を1若し
    くはそれ以上のフラッシュメモリに書き込むことができるようになっているフラッシュ・
    メモリ・インターフェースと
    を有し、
    前記内部暗号化ハードウェア層は選択的にバイパス可能であり、
    前記ハードウェア層はソリッドステートディスク(SSD)に具備されており、
    前記ホストインターフェースはストレージインターフェース規格と適合するシステム。
  17. 請求項16記載のシステムにおいて、さらに、
    前記フラッシュメモリを有するものであるシステム。
  18. 請求項16記載のシステムにおいて、前記ホストは平文を暗号化して前記暗号化データ
    を生成することができるようになっており、さらに、
    前記ホストを有するものであるシステム。
  19. 記憶装置の処理要素によって実行されると、前記処理要素に動作を実行させ、かつ/ま
    たは制御させる命令のセットが記憶されている有形のコンピュータ可読媒体であって、前
    記動作は、
    コンピューティングホストからデータを受け取る動作と、
    複数の動作モードのうちの1つを選択的に使用可能にする動作であって、前記モードは

    暗号化動作モードであって、
    前記受け取ったデータの少なくとも一部分を復号化する動作と、
    前記復号化したデータの少なくとも一部分を圧縮する動作と、
    前記圧縮した復号化データの少なくとも一部分を再暗号化する動作と、
    前記再暗号化したデータの少なくとも一部分を暗号化モード書き込みデータとして
    提供する動作と
    を有する前記暗号化動作モードと、
    非暗号化動作モードであって、
    前記受け取ったデータの少なくとも一部分を圧縮する動作と、
    前記圧縮した受け取ったデータの少なくとも一部分を非暗号化モード書き込みデー
    タとして提供する動作と
    を有する前記非暗号化動作モードと
    を有する、前記選択的に使用可能にする動作と、
    前記暗号化動作モードで、前記暗号化モード書き込みデータを選択したモードの書き込
    みデータとして選択する動作と、
    前記非暗号化動作モードで、前記非暗号化モード書き込みデータを前記選択したモード
    の書き込みデータとして選択する動作と、
    前記選択したモードの書き込みデータを、1若しくはそれ以上の不揮発性メモリ(NV
    M)に記憶するために書式設定する動作と
    を有し、
    有形のコンピュータ可読媒体および前記処理要素はソリッドステートディスク(SSD
    )に具備されている、有形のコンピュータ可読媒体。
  20. 請求項19記載の有形のコンピュータ可読媒体において、前記NVMのうちの少なくと
    も1つは前記SSDに具備されている有形のコンピュータ可読媒体。
  21. 請求項19記載の有形のコンピュータ可読媒体において、前記書式設定する動作は、前
    記選択したモードの書き込みデータを選択的に暗号化する動作を有する有形のコンピュー
    タ可読媒体。
JP2017075229A 2011-04-29 2017-04-05 暗号化トランスポート・ソリッドステート・ディスク・コントローラ Pending JP2017153117A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161480518P 2011-04-29 2011-04-29
US61/480,518 2011-04-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014508446A Division JP2014513484A (ja) 2011-04-29 2012-04-20 暗号化トランスポート・ソリッドステート・ディスク・コントローラ

Publications (1)

Publication Number Publication Date
JP2017153117A true JP2017153117A (ja) 2017-08-31

Family

ID=47073006

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014508446A Pending JP2014513484A (ja) 2011-04-29 2012-04-20 暗号化トランスポート・ソリッドステート・ディスク・コントローラ
JP2017075229A Pending JP2017153117A (ja) 2011-04-29 2017-04-05 暗号化トランスポート・ソリッドステート・ディスク・コントローラ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014508446A Pending JP2014513484A (ja) 2011-04-29 2012-04-20 暗号化トランスポート・ソリッドステート・ディスク・コントローラ

Country Status (7)

Country Link
US (2) US9069703B2 (ja)
EP (1) EP2702592A4 (ja)
JP (2) JP2014513484A (ja)
KR (2) KR101451369B1 (ja)
CN (1) CN103620690A (ja)
TW (1) TWI492088B (ja)
WO (1) WO2012148812A2 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013016496A1 (en) 2011-07-27 2013-01-31 Lsi Corporation Techniques for secure storage hijacking protection
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9626517B2 (en) * 2013-01-23 2017-04-18 Seagate Technology Llc Non-deterministic encryption
TWI514834B (zh) * 2013-02-01 2015-12-21 Ju Long Wei 機敏資料加密演算儲存裝置
US9379738B2 (en) * 2013-03-13 2016-06-28 Marvell World Trade Ltd. Systems and methods for decoding using partial reliability information
JP6139010B2 (ja) 2013-03-15 2017-05-31 インテル・コーポレーション デバイス
US8996889B2 (en) * 2013-03-29 2015-03-31 Dropbox, Inc. Portable computing device with methodologies for client-side analytic data collection
US9058295B2 (en) * 2013-04-25 2015-06-16 Hewlett-Packard Development Company, L.P. Encrypt data of storage device
US9379892B2 (en) * 2013-05-30 2016-06-28 Toshiba America Electronic Components, Inc. Trusted manager bridge
US10078754B1 (en) * 2013-09-24 2018-09-18 Amazon Technologies, Inc. Volume cryptographic key management
US11182284B2 (en) 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
CN105934747B (zh) * 2013-11-07 2020-03-06 奈特力斯股份有限公司 混合内存模块以及操作混合内存模块的系统和方法
KR20160000697A (ko) 2014-06-25 2016-01-05 (주)수도프리미엄엔지니어링 동결방지용 음수대
CN104598843A (zh) * 2015-02-06 2015-05-06 浪潮集团有限公司 一种加密ssd认证方法
CN104598399A (zh) * 2015-02-06 2015-05-06 浪潮集团有限公司 一种加密固态硬盘
US10255200B2 (en) * 2015-02-25 2019-04-09 Western Digital Technologies, Inc. Data storage device and method of operation using multiple security protocols
US20160259754A1 (en) * 2015-03-02 2016-09-08 Samsung Electronics Co., Ltd. Hard disk drive form factor solid state drive multi-card adapter
US9984238B1 (en) * 2015-03-30 2018-05-29 Amazon Technologies, Inc. Intelligent storage devices with cryptographic functionality
US10148761B2 (en) 2015-04-09 2018-12-04 Web Sensing, Llc System-on-chip data security appliance and methods of operating the same
US10938913B2 (en) 2015-04-09 2021-03-02 Web Sensing, Llc Hardware turnstile
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
WO2017034642A2 (en) * 2015-06-05 2017-03-02 Nutanix, Inc. Optimizable full-path encryption in a virtualization environment
US10613756B2 (en) * 2015-09-03 2020-04-07 Qualcomm Incorporated Hardware-accelerated storage compression
KR101699955B1 (ko) * 2015-09-21 2017-01-26 주식회사 텔레칩스 Dram 데이터 변조 자동 탐지 시스템 및 방법
CN105868642A (zh) * 2015-09-28 2016-08-17 深圳创久科技有限公司 数据加密的闪存控制器以及写入或读取数据加密方法
US10361714B2 (en) * 2015-12-16 2019-07-23 International Business Machines Corporation Reading and writing compressed data using long-term storage
US10592110B2 (en) 2016-02-19 2020-03-17 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
CN105790932B (zh) * 2016-02-25 2018-08-14 四川长虹电器股份有限公司 一种通过使用机器码为基础的加密方法
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US9852025B2 (en) 2016-03-29 2017-12-26 Alibaba Group Holding Limited Protecting data stored on a solid state drive
CN109690681B (zh) * 2016-06-24 2021-08-31 华为技术有限公司 处理数据的方法、存储装置、固态硬盘和存储系统
US20180034787A1 (en) * 2016-08-01 2018-02-01 Vormetric, Inc. Data encryption key sharing for a storage system
US10476846B2 (en) * 2016-08-05 2019-11-12 The Boeing Company Data-at-rest (DAR) encryption for integrated storage media
CN108073353B (zh) 2016-11-15 2020-04-14 华为技术有限公司 一种数据处理的方法及装置
US10373528B2 (en) 2016-12-14 2019-08-06 Western Digital Technologies, Inc. Cell-level realization of burn after reading for NAND flash
US10387661B2 (en) * 2017-01-09 2019-08-20 Pure Storage, Inc. Data reduction with end-to-end security
CN106599735B (zh) * 2017-02-13 2023-10-24 珠海格力电器股份有限公司 数据保护装置、方法以及存储控制器
US11030118B2 (en) * 2017-03-07 2021-06-08 Rambus Inc. Data-locking memory module
US10542089B2 (en) * 2017-03-10 2020-01-21 Toshiba Memory Corporation Large scale implementation of a plurality of open channel solid state drives
GB2560585A (en) * 2017-03-17 2018-09-19 Digi Me Ltd Data processing apparatus and methods
US20180314629A1 (en) * 2017-04-27 2018-11-01 British Cayman Islands Intelligo Technology Inc. Managing parallel access to a plurality of flash memories
TWI648741B (zh) 2017-06-05 2019-01-21 慧榮科技股份有限公司 資料儲存裝置之控制器以及進階資料抹除的方法
CN107341405A (zh) * 2017-06-30 2017-11-10 记忆科技(深圳)有限公司 一种数据传输过程的加密方法
US10540198B2 (en) 2017-07-01 2020-01-21 Intel Corporation Technologies for memory replay prevention using compressive encryption
US10564890B2 (en) * 2017-07-07 2020-02-18 Seagate Technology Llc Runt handling data storage system
GB2566265B (en) * 2017-09-01 2020-05-13 Trustonic Ltd Post-manufacture generation of device certificate and private key for public key infrastructure
GB2566263A (en) 2017-09-01 2019-03-13 Trustonic Ltd Post-manufacture certificate generation
JP6789906B2 (ja) * 2017-09-20 2020-11-25 キオクシア株式会社 データ蓄積装置
US10540505B2 (en) * 2017-09-29 2020-01-21 Intel Corporation Technologies for protecting data in an asymmetric storage volume
JP7048411B2 (ja) * 2018-05-22 2022-04-05 キオクシア株式会社 メモリシステムおよび制御方法
JP7109992B2 (ja) * 2018-05-22 2022-08-01 キオクシア株式会社 メモリシステムおよび制御方法
CN110568992A (zh) * 2018-06-06 2019-12-13 华为技术有限公司 一种数据处理装置及方法
CN108874971B (zh) * 2018-06-07 2021-09-24 北京赛思信安技术股份有限公司 一种应用于海量标签化实体数据存储的工具和方法
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US10659437B1 (en) * 2018-09-27 2020-05-19 Xilinx, Inc. Cryptographic system
US11080409B2 (en) * 2018-11-07 2021-08-03 Ngd Systems, Inc. SSD content encryption and authentication
CN109656476B (zh) * 2018-12-05 2022-10-18 镕铭微电子(济南)有限公司 一种硬件加速模块及视频处理设备
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
KR102659832B1 (ko) * 2019-03-05 2024-04-22 삼성전자주식회사 데이터 저장 장치 및 시스템
US11372983B2 (en) * 2019-03-26 2022-06-28 International Business Machines Corporation Employing a protected key in performing operations
US11201730B2 (en) 2019-03-26 2021-12-14 International Business Machines Corporation Generating a protected key for selective use
US11061612B2 (en) * 2019-05-20 2021-07-13 Micron Technology, Inc. Internal communication interface management
CN113853588A (zh) * 2019-05-21 2021-12-28 美光科技公司 用于非易失性存储器的总线加密
TWI808229B (zh) 2019-07-29 2023-07-11 宜鼎國際股份有限公司 可遠端控制電子設備執行程序的系統及方法
US11106521B2 (en) * 2019-08-19 2021-08-31 Micron Technology, Inc. Fatal error logging in a memory device
KR20210041159A (ko) 2019-10-04 2021-04-15 삼성전자주식회사 정정 가능한 독출 오류가 발생한 데이터를 복구하는 메모리 시스템 및 호스트의 동작 방법
CN110908600B (zh) * 2019-10-18 2021-07-20 华为技术有限公司 数据访问方法、装置和第一计算设备
TWI728635B (zh) * 2020-01-02 2021-05-21 系微股份有限公司 相容不同儲存規範的儲存裝置資訊管理方法
US11526618B2 (en) 2020-01-29 2022-12-13 Samsung Electronics Co., Ltd. Methods and apparatus for offloading encryption
CN111400735B (zh) * 2020-03-17 2023-06-16 阿波罗智联(北京)科技有限公司 数据传输方法、装置、电子设备及计算机可读存储介质
CN111737773A (zh) * 2020-06-10 2020-10-02 深圳欣迪军融科技有限公司 具有se安全模块功能的嵌入式安全存储器
US11709785B2 (en) 2020-06-26 2023-07-25 Western Digital Technologies, Inc. Just-in-time post-processing computation capabilities for encrypted data
US11709729B2 (en) * 2020-09-30 2023-07-25 Micron Technology, Inc. Performing error checking operations on encrypted write data in a memory sub-system
US11907539B2 (en) 2020-11-20 2024-02-20 Samsung Electronics Co., Ltd. System and method for stream based data placement on hybrid SSD
US11500587B2 (en) 2020-11-20 2022-11-15 Samsung Electronics Co., Ltd. System and method for in-SSD data processing engine selection based on stream IDs
CN112487380B (zh) * 2020-12-16 2024-04-05 江苏国科微电子有限公司 一种数据交互方法、装置、设备及介质
US11720715B2 (en) * 2021-03-21 2023-08-08 Western Digital Technologies, Inc. Secure data storage device and method of encryption
US11775434B2 (en) * 2021-04-20 2023-10-03 Meta Platforms, Inc. Systems and methods for pre-processing and post-processing coherent host-managed device memory
TWI773395B (zh) * 2021-06-22 2022-08-01 慧榮科技股份有限公司 記憶體控制器與連結識別方法
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN113569272B (zh) * 2021-09-27 2022-01-11 深圳市永达电子信息股份有限公司 一种安全计算机实现方法和安全计算机
CN114327281B (zh) * 2021-12-30 2023-12-05 深圳忆联信息系统有限公司 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219802A (ja) * 2006-02-16 2007-08-30 Hitachi Global Storage Technologies Netherlands Bv 記憶装置、そのコントローラ、および、その制御方法
US20110055664A1 (en) * 2009-09-01 2011-03-03 Gregory Burd Systems and methods for compressing data in non-volatile semiconductor memory drives

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (ja) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6367019B1 (en) * 1999-03-26 2002-04-02 Liquid Audio, Inc. Copy security for portable music players
KR20040077446A (ko) * 2002-02-05 2004-09-04 소니 가부시끼 가이샤 데이터 기록 장치 및 기록 방법
US20040117642A1 (en) 2002-12-17 2004-06-17 Mowery Keith R. Secure media card operation over an unsecured PCI bus
DE10345385B4 (de) 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
US7734932B2 (en) 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
EP1777628A4 (en) * 2004-06-30 2008-12-17 Panasonic Corp RECORDING MEDIUM AND DEVICE AND METHOD FOR RECORDING INFORMATION ON A RECORDING MEDIUM
US8832458B2 (en) 2005-03-22 2014-09-09 Seagate Technology Llc Data transcription in a data storage device
CN1808457B (zh) * 2006-02-24 2010-05-26 上海方正信息安全技术有限公司 可远程动态管理的便携式可信装置
US7814316B1 (en) 2006-04-14 2010-10-12 Oracle America, Inc. System, method and data storage device for encrypting data
US7706538B1 (en) * 2006-04-14 2010-04-27 Oracle America, Inc. System, method and data storage device for encrypting data
US20080072070A1 (en) 2006-08-29 2008-03-20 General Dynamics C4 Systems, Inc. Secure virtual RAM
US20080205635A1 (en) * 2007-02-27 2008-08-28 Glen Alan Jaquette Apparatus, system, and method for self-describing heterogeneous magnetic tape formatting
US7912986B2 (en) * 2008-02-25 2011-03-22 Simdesk Technologies Secure block read and write protocol for remotely stored files
CN101763485A (zh) * 2008-12-26 2010-06-30 英业达股份有限公司 数据保护方法
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US20100306175A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. File policy enforcement
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
WO2011082387A2 (en) * 2009-12-31 2011-07-07 Intellisysgroup, Inc. Methods and apparatus for sharing, transferring and removing previously owned digital media
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219802A (ja) * 2006-02-16 2007-08-30 Hitachi Global Storage Technologies Netherlands Bv 記憶装置、そのコントローラ、および、その制御方法
US20110055664A1 (en) * 2009-09-01 2011-03-03 Gregory Burd Systems and methods for compressing data in non-volatile semiconductor memory drives

Also Published As

Publication number Publication date
KR20130136008A (ko) 2013-12-11
KR101451369B1 (ko) 2014-10-16
WO2012148812A3 (en) 2013-01-10
KR101457451B1 (ko) 2014-11-05
CN103620690A (zh) 2014-03-05
EP2702592A4 (en) 2014-11-19
US20140040639A1 (en) 2014-02-06
TW201250515A (en) 2012-12-16
KR20140093283A (ko) 2014-07-25
US9760502B2 (en) 2017-09-12
EP2702592A2 (en) 2014-03-05
US20150293858A1 (en) 2015-10-15
WO2012148812A2 (en) 2012-11-01
US9069703B2 (en) 2015-06-30
TWI492088B (zh) 2015-07-11
WO2012148812A8 (en) 2013-12-05
JP2014513484A (ja) 2014-05-29

Similar Documents

Publication Publication Date Title
JP2017153117A (ja) 暗号化トランスポート・ソリッドステート・ディスク・コントローラ
EP3314441B1 (en) Efficient solid state drive data compression scheme and layout
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
US9043549B2 (en) Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
US9152825B2 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
US20080320209A1 (en) High Performance and Endurance Non-volatile Memory Based Storage Systems
US8504898B2 (en) Storage apparatus, controller and data accessing method thereof
JP2014167790A (ja) 不揮発性メモリへの書き込みの管理および領域選択
TW201337554A (zh) 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
CN110929261B (zh) 存储器系统及其操作方法
JP2022522595A (ja) ホストベースのフラッシュメモリメンテナンス技術
US8898807B2 (en) Data protecting method, mobile communication device, and memory storage device
US20200402426A1 (en) Method and apparatus for encrypting and decrypting user data
US20050259458A1 (en) Method and system of encrypting/decrypting data stored in one or more storage devices
US11644983B2 (en) Storage device having encryption
US9058295B2 (en) Encrypt data of storage device
US20230144135A1 (en) Trusted computing device and operating method thereof
US8544424B2 (en) System, controller and method thereof for transmitting and distributing data stream
KR20230056920A (ko) 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170410

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190605

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20190605

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20190618

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190719

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20190723

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190920

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20191001

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200407

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20200616

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20200721

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20200721