JP2021507369A - 透過的に取り付けられたフラッシュメモリセキュリティ - Google Patents

透過的に取り付けられたフラッシュメモリセキュリティ Download PDF

Info

Publication number
JP2021507369A
JP2021507369A JP2020532611A JP2020532611A JP2021507369A JP 2021507369 A JP2021507369 A JP 2021507369A JP 2020532611 A JP2020532611 A JP 2020532611A JP 2020532611 A JP2020532611 A JP 2020532611A JP 2021507369 A JP2021507369 A JP 2021507369A
Authority
JP
Japan
Prior art keywords
command
memory
monitor
flash memory
selection signal
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
JP2020532611A
Other languages
English (en)
Inventor
ジェイ マーリー、ブライアン
ジェイ マーリー、ブライアン
イー ワーレル、リチャード
イー ワーレル、リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JP2021507369A publication Critical patent/JP2021507369A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Burglar Alarm Systems (AREA)
  • Telephone Function (AREA)

Abstract

インターフェース回路と、インターフェース回路に通信可能に結合されたモニタ回路と、を含む装置。前記モニタ回路は、インターフェース回路を介してモニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別することと、コマンドが許可されているか否かを決定することと、コマンドが許可されていないという決定に基づいて、コマンドをキャンセルすることと、を行うように構成されている。【選択図】 図1

Description

(優先権出願)
本出願は、2017年12月15日に提出された米国特許仮出願第62/599,288号の優先権を主張し、その出願の内容は、参照によりその全体が本明細書に組み込まれる。
(発明の分野)
本開示は、電子デバイス用のフラッシュメモリの制御及びセキュリティに関し、より具体的には、透過的に取り付けられたフラッシュメモリセキュリティに関する。
フラッシュメモリは、コンピューティングデバイスとその要素との間でデータを記憶及び転送するために使用される不揮発性メモリである。フラッシュメモリは、電子的に再プログラムされ、消去される能力を有する。フラッシュメモリは、ユニバーサルシリアルバス(universal serial bus、「USB」)ドライブ、ポータブル音楽プレーヤ、スマートフォン、デジタルカメラ、又はソリッドステートドライブなどの電子デバイス又はコンピューティングデバイス内に実装され得る。
フラッシュメモリは、電子的に消去可能なプログラマブル読み出し専用メモリ(electronically erasable programmable read only memory、「EEPROM」)の一種であり得る。フラッシュメモリは、USBジャンプドライブなどのスタンドアロンメモリ記憶デバイスを実装し得る。EEPROMは、電子デバイスを使用してデジタルデータを消去又は書き込むデータメモリデバイスの一種である。フラッシュメモリは、大きいブロックでプログラムされ、消去される、EEPROMの別個のサブタイプであってもよい。
EEPROMの内容は、無許可の読み出し又は書き込み操作を受け易い場合がある。例えば、ウイルスが、無許可の書き込みで、EEPROM上に記憶されたファームウェア中に改変をインストールし得る。別の例では、ウイルスが、無許可の読み出しで機密内容にアクセスし得る。EEPROMの一般的な例として、フラッシュメモリ又はフラッシュメモリコントローラは、そのような無許可の読み出し又は書き込み操作に対抗するネイティブハードウェアベースの保護又はリアルタイム保護を欠く場合がある。本開示の実施形態は、無許可の読み出し又は書き込み操作に対抗するハードウェアベースの保護又はリアルタイム保護を提供し得る。
本開示の実施形態は、装置を含む。該装置は、インターフェース回路と、インターフェース回路に通信可能に結合されたモニタ回路と、を含む。モニタ回路は、インターフェース回路を介してモニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別することと、コマンドが許可されているか否かを決定することと、コマンドが許可されていないという決定に基づいて、コマンドをキャンセルすることと、を行うように構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、モニタ回路に、受信されたチップ選択信号を修正して、修正されたチップ選択信号を生成することと、修正されたチップ選択信号をメモリに送信することと、を行わせるように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、修正されたチップ選択信号の完了前に、メモリによって使用されるクロックバスにクロックパルスを加えるように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、メモリによって使用されるクロックバスにクロックパルスが加えられる前に、コマンドのソースをリセットするように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、修正されたチップ選択信号の完了前に、コマンドのソースをリセットするように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、受信されたチップ選択信号の完了後に、修正されたチップ選択信号を完了するように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、コマンドが書き込みコマンド又は消去コマンドであるという決定に応答して、修正されたチップ選択信号を完了するように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、コマンドのソースから後のチップ選択信号が受信される前に、修正されたチップ選択信号を完了するように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために、コマンドが読み出しコマンドであるという決定に基づいて、コマンドのソースから後のチップ選択信号を受信する前に、修正されたチップ選択信号を完了するように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、モニタ回路に通信可能に結合されたメモリに発行された読み出しコマンドを識別することと、メモリからの内容を信頼されたコピーと比較して、メモリからの内容及び信頼されたコピーが同一であるか否かを決定することと、メモリからの内容が信頼されたコピーと同じではないという決定に基づいて、是正措置を講じることと、を行うように更に構成され得る。上記実施形態のいずれかと組み合わせて、モニタ回路は、プロセッサ及び非一時的な機械可読媒体を含み得る。媒体は、命令を含み得、命令は、プロセッサによって読み込まれて実行されると、モニタ回路に、モニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別することと、コマンドが許可されているか否かを決定することと、コマンドをキャンセルすることと、を行わせる。
本開示の実施形態は、上記の実施形態のモニタ回路のうちのいずれかによって実施される方法を含み得る。
本開示の実施形態による、透過的に取り付けられたフラッシュメモリセキュリティを提供するためのシステムの例示である。 本開示の実施形態による、透過的に取り付けられたフラッシュメモリセキュリティを提供するためのシステムの一部分のより詳細な例示である。 本開示の実施形態による、コントローラからメモリへの例示的なコマンドのタイミングの例示である。 本開示の実施形態による、標的フラッシュメモリ108の無許可アクセスに対する是正措置を講じるための、完了チップ選択信号の発行を禁止するシステムの操作の例示である。 本開示の実施形態による、メモリの無許可アクセスに対する是正措置を講じるための、完了チップ選択信号の発行を禁止するシステムの更なる操作の例示である。 本開示の実施形態による、フラッシュメモリの無許可アクセスに対する是正措置を講じるための、完了チップ選択信号の発行を禁止するシステムの更に別の操作の例示である。 本開示の実施形態による、標的フラッシュメモリの無許可アクセスに対する是正措置を講じるための、チップ選択信号の完了を加速するシステムの操作の例示である。 本開示の実施形態による、透過的に取り付けられたフラッシュメモリセキュリティを実施するための例示的な方法の例示である。 本開示の実施形態による、メモリの内容を監視する例示的な構成を例示する。 本開示の実施形態による、メモリの内容を監視する例示的な構成を例示する。 本開示の実施形態による、メモリの内容を監視するための例示的な方法を例示する。
図1は、本開示の実施形態による、透過的に取り付けられたフラッシュメモリセキュリティを提供するためのシステム100の例示である。システム100は、保護を受けるメモリに透過的に取り付けられるか、又は通信可能に結合されるように構成されたモニタ102を含み得る。モニタ102は、保護を受けるメモリのセキュリティを実施するために、アナログ回路、デジタル回路、組み合わせ論理、命令若しくはハードウェア記述言語によって顕在化される回路、プロセッサによる実行のための命令、又はそれらの任意の組み合わせによる実施態様を含む、半導体デバイス、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、モジュール、又は他の回路として実装され得る。モニタ102は、それ自体の内部に処理ハードウェアを含んでもよく、又はシステム100の他の箇所の他の処理ハードウェアに依存してもよい。一実施形態では、モニタ102は、プロセッサ120及びメモリ122を含み得る。実行用命令は、プロセッサ120による実行のためにメモリ122内に読み込まれ得、実行されると、モニタ102に、本開示に説明されるモニタ102の操作及び構成を実施させる。モニタ102は、メモリへのインターフェース101、103を含み得る。モニタ102によるメモリへの通信又はメモリからの通信は、インターフェース101、103を通じて実施され得る。インターフェース101、103は、アナログ回路、デジタル回路、ファームウェア、又はそれらの任意の好適な組み合わせを有する回路によって実装され得る。
モニタ102は、保護される任意の好適なメモリに対するメモリセキュリティを提供するように構成され得る。そのようなメモリは、データがブロック内でアクセスされるか、又はデータがチップイネーブル、チップ選択、又は他の選択若しくはイネーブル信号を介してアクセスされる、任意のメモリを含み得る。このようなメモリは、例えば、フラッシュメモリ、USBメモリ、パラレルメモリ、又はシリアルペリフェラルインターフェース(serial peripheral interface、「SPI」)メモリデバイスを含み得る。保護されるメモリは、取り付けられたメモリであり得、メモリは、システム100の他の要素などの別のコンピューティングデバイス又は電子デバイスの外部周辺機器として取り付けられる。例えば、モニタ102は、標的フラッシュメモリ108のメモリセキュリティを提供するように構成され得る。システム100は、モニタ102によって保護され得る任意の好適な組み合わせ、数、及び種類のメモリを含み得る。具体的には、システム100は、複数のフラッシュメモリを含んでもよく、業界標準SPIバスを使用してシステム100の残りの部分に通信可能に結合され得る。一実施形態では、モニタ102の単一インスタンスは、標的フラッシュメモリ108の複数のインスタンスへのアクセスを保護し得る。別の実施形態では、システム100は、標的フラッシュメモリ108の各インスタンスを保護するためにモニタ102のインスタンスを含み得る。
システム100は、コンピュータ、タブレット、ラップトップ、サーバ、サーバアプリケーション、スマートフォン、アプライアンス、マイクロコントローラ、又は消費者電子機器などの、任意の好適なコンピューティングデバイス又は電子デバイスを、完全に又は部分的に実装し得る。システム100は、システム中央処理装置(central processing unit、「CPU」)106などのプロセッサを含み得る。システムCPU106は、任意の好適な数及び種類の処理コアを有する任意の好適なプロセッサによって実装され得る。システム100の要素は、SPI、拡張SPI(enhanced SPI、「eSPI」)、スレーブアタッチドフラッシュシェアリング(slave attached flash sharing、「SAFS」)、I2C、アドバンストマイクロコントローラバスアーキテクチャ(アドバンスト・マイクロコントローラ・バス・アーキテクチャ、「AMBA」)、又は汎用入力及び出力(general purpose input and output、「GPIO」)などの任意の好適なバス又はプロトコルを通じて互いに通信可能に結合され得る。
システム100は、標的フラッシュメモリ108などのメモリにアクセスし得る任意の好適な数及び種類の要素を含み得る。そのような要素は、システムCPU106、標的フラッシュメモリ108に独立してアクセスし得る他の要素、又はシステムCPU106からシステム100の一部の管理をオフロードするように構成された要素を含み得る。標的フラッシュメモリ108にアクセスするように構成された要素は、コントローラ110によって表される。コントローラ110は、プロセッサ124、メモリ126、集積回路デバイス、アナログ回路、デジタル回路、又はそれらの任意の好適な組み合わせによって実装され得る。コントローラ110は、例えば、ベースボード管理コントローラ(baseboard management controller、「BMC」)を実装し得る。コントローラ110は、標的フラッシュメモリ108の試行されたアクセスを、例えば、それ自体、システムCPU106、又は他の要素(図示せず)の代わりに、実施し得る。
標的フラッシュメモリ108の書き込み又は読み出しなどの試行されたアクセスは、図1に示されているか否かにかかわらず、任意の実体によって行われ得る。標的フラッシュメモリ108の無許可の試行されたアクセスは、例えば、システムCPU106上で動作するソフトウェアによって、コントローラ110によって、又はコントローラ110の要求を行う他の要素によって、行われ得る。試行されたアクセスのソースにかかわらず、モニタ102は、標的フラッシュメモリ108の試行されたアクセスを監視するように構成され得る。例えば、ブート時及び定期的に、コントローラ110は、標的フラッシュ108内のコントローラコード128にアクセスすることを試行して、メモリ126内に読み込み、次いで、プロセッサ124を用いてコントローラコード128を実行し得る。コントローラコード128は、例えば、実行するためのコンパイルされたオブジェクトコード、又はコントローラ110用の他の命令若しくはソフトウェアを含み得る。コントローラ110用のブートコードは、メモリ126内に記憶され得、そのようなブートコードは、プロセッサ124によって実行されると、コントローラ110に、標的フラッシュ108内のコントローラコード128にアクセスすることを試行させ得る。コントローラ110は、プロセッサ124によって実行されるメモリ126に実行のための命令をコピーするために、標的フラッシュ108内のコントローラコード128を読み出すことを試行するように構成され得る。
一実施形態では、モニタ102は、透過的な様式で標的フラッシュメモリ108の保護を提供し得る。モニタ102によって提供されるセキュリティ、又はモニタ102自体も、モニタ102又はその操作がシステム100の他の部分又は第三者に対して観察されないという点で、透過的であり得る。システム100の他の部分又は第三者は、モニタ102によって標的フラッシュメモリ108に実装されたセキュリティ機構及び対策を認識することができない。
一実施形態では、コントローラ110は、SPIバスを使用して標的フラッシュメモリ108にアクセスすることを試行し得る。SPIバスが使用されると、チップ選択(chip select、「CS」)信号が、試行された読み出し又は書き込みのためにアクセスされるべき特定のメモリデバイスを識別するために使用され得る。CS信号はまた、チップイネーブル信号としても知られ得る。様々な他のバスは、そのようなメモリデバイスが、試行されたアクセスのために使用されるべきメモリデバイスのグループを識別するために、CS信号、チップイネーブル信号、又は等価物を使用し得る。そのようなフラッシュメモリデバイスのグループからの所与のフラッシュメモリデバイスが使用されることになる場合、アクティブCS信号は、所与のフラッシュメモリデバイスに送られ得るが、他のフラッシュメモリデバイスへのCS信号は、非アクティブに保持され得る。CS信号は、アクティブハイであってもよく、又はアクティブローであってもよい。本開示の例では、CS信号は、アクティブローであり得る。CS信号は、任意の好適なスイッチ又は構造(図示せず)を介して適切なフラッシュメモリデバイスに送られ得る。
一実施形態では、モニタ102は、標的フラッシュメモリ108に送信されるべきCS信号を傍受するように構成され得る。モニタ102は、任意の好適な様式で、そのようなCS信号(図1でマスターCSと示される)を傍受するように構成され得る。一実施形態では、モニタ102は、コントローラ110又は標的フラッシュメモリ108にアクセスする他の要素と標的フラッシュメモリ108との間のインターフェース内に実装され得る。別の実施形態では、コントローラ110によって発行されたCS信号は、標的フラッシュメモリ108に転送される前に、モニタ102にデイジーチェーン接続され得る。コントローラ110は、CS信号がモニタ102を介して送られることを認識しない間、CS信号を発行し得る。モニタ102は、必要に応じてCS信号を修正し、結果的に得られた修正された信号(図1でフラッシュCSと示される)を送るように構成され得る。コントローラ110は、CS信号が最初にモニタ102を介して送られることになるという任意の他の指示を認識又は受信せずに、CS信号を標的フラッシュメモリ108に発行し得る。図2に示されるように、他の信号は、コントローラ110から標的フラッシュメモリ108に直接送られ得る。そのような他の信号は、モニタ102にコピーされ得る。システムCPU106若しくはコントローラ110にリセット若しくは抹消信号を発行することによって、標的フラッシュメモリ108にコントローラ110から送信されたクロックを修正することによって、又は他の技術によって、標的フラッシュメモリ108に送信されたときのCS信号の修正を介して、モニタ102は、標的フラッシュメモリ108を無許可アクセスから保護するように構成され得る。
モニタ102は、別のフラッシュメモリデバイス又は他の種類のメモリデバイスに通信可能に結合され得る。そのようなメモリデバイスは、基本入力/出力システム(basic input/output system、「BIOS」)フラッシュ104として表され得る。メモリ104は、任意の好適な数及び種類のデータを含み得る。更に、メモリ104の内容は、標的フラッシュ108などの他のメモリ内で複製され得る。メモリ104は、例えば、モニタコード116を含み得る。モニタコード116は、命令、実行テーブル、スクリプト、オブジェクトコード、又はモニタ102に操作させる他の情報を含み得る。メモリ104は、メモリ104を操作するために、ユニファイドエクステンシブルファームウェアインターフェイス(Unified Extensible Firmware Interface、「UEFI」)BIOS114を含み得る。更に、メモリ104は、ゴールデンイメージとしても既知の信頼されたコードイメージ112を含み得る。信頼されたコードイメージ112は、システム100内の他の箇所でアクセスされ得る情報の既知の、安全な、又は信頼されたコピーを含み得る。例えば、信頼されたコードイメージ112は、UEFI BIOS114のコピー、モニタコード116のコピー、及びコントローラコード128のコピーを含み得る。モニタ102は、システム100内のそのような内容の他のインスタンスに対するチェックのために、システム100内のそのような内容のそのような他のインスタンスの読み出しコピーに対するチェックのために、及び内容が損なわれたと決定された場合にシステム100内のそのような内容のインスタンスを復元するために、信頼されたコードイメージ112内の内容を使用するように構成され得る。
モニタ102は、標的フラッシュメモリ108の試行されたアクセスを評価するように構成され得る。試行されたアクセスは、標的アドレス、試行されたコマンド、試行元のアドレス、又は任意の他の好適な基準に基づいて監視され得る。
例えば、フラッシュメモリに対する特定のコマンドは、標的フラッシュメモリ108の特定の状態で無条件に禁止されると考えられ得る。例えば、チップ消去操作は、標的フラッシュメモリ108が重要な情報を有するとして指定されているときに、無許可であり得る。別の例では、標的フラッシュメモリ108が読み出し専用として指定されている場合、読み出し操作のみが許可され得る。書き込み及び消去コマンドは、抑止され得る。モニタ102は、標的フラッシュメモリ108のアドレス空間全体にわたって標的フラッシュメモリ108内の特定の機密アドレスを監視するように構成され得る。特定のコマンドが、標的フラッシュメモリ108の所与の領域内で禁止され得る。領域は、マルウェアの、重要なデータの、又はメモリデバイス全体にわたる、予想される標的に従って定義され得る。
モニタ102は、標的フラッシュメモリ108の試行されたアクセスが無許可である場合、是正措置を講じるように構成され得る。モニタ102によって講じられる是正措置は、以下で更に詳細に論じられるように、試行されたアクセスに対する標的フラッシュメモリ108又はシステム100の他の要素の応答を扱う際に顕在化され得る。モニタ102によって講じられる是正措置は、標的フラッシュメモリ108上でのコマンドの試行された実行の際に行われ得る。他のセキュリティ解決策は、標的フラッシュメモリ108自体、又は標的フラッシュメモリ108と通信するマスターデバイスなどの、メモリアクセスの終了時に是正措置を講じることを含む。多くのそのようなマスターデバイスに関して、マスターデバイスが、セキュリティ解決策のための一貫した、標準化された、又は均一な様式で再設計されることを期待することは困難である。フラッシュメモリにアクセスし得るそのようなデバイスの多くの作成者及びソースが存在する。更に、フラッシュもマスターデバイスも、特に、フラッシュ空間全体にわたるアドレス又は領域の保護のために、十分なハードウェアベース又はリアルタイムセーフガードを有していない。
一実施形態では、モニタ102によって講じられる是正措置は、コントローラ110から受信され、次いで、標的フラッシュメモリ108に渡される、CS信号の修正を含み得る。CS信号の修正は、エラー条件を引き起こし得る。別の実施形態では、モニタ102によって講じられる是正措置は、標的フラッシュメモリ108、システムCPU106、及びコントローラ110のうちの1つ以上に発行されたリセット又は抹消信号を含み得る。リセット信号は、受信者に、リセット、ソフトリブート、又は電源遮断及び電源投入サイクルの実施を行わせ得る。更に別の実施形態では、是正措置は、標的フラッシュメモリ108とコントローラ110との間の双方向SPIクロックの取り扱いを含み得る。双方向SPIクロックの取り扱いは、実行されるコマンドのキャンセルを引き起こし得る。是正措置は、悪意のないアクセスには影響を与えず、コントローラ110又はターゲットフラッシュメモリ108の実装に変更を必要としない場合がある。
図2は、本開示の実施形態による、システム100の一部分のより詳細な例示である。
コントローラ110は、任意の好適な数のバスを介して標的フラッシュメモリ108に通信可能に結合され得る。例えば、コントローラ110は、標的フラッシュメモリ108にCS信号を発行するように構成され得る。しかしながら、上述のように、このCS信号は、転送され、かつ場合によっては修正される前に、モニタ102を介して標的フラッシュメモリ108に送られ得る。標的フラッシュメモリ108及びコントローラ110は、それらが同じCS信号「CS」を受信及び送信することを各々認識し得る。しかしながら、CS信号は、インターフェース103(図示せず)を介して、モニタ102の代わりに、「マスターCS」として送られてもよい。モニタ102は、受信した際のマスターCS信号、修正された際のマスターCS信号、又は遅延した際のマスターCS信号を、インターフェース101(図示せず)を介して標的フラッシュメモリ108に転送し得る。標的フラッシュ108に送信されるCS信号は、「フラッシュCS」として示され得る。標的フラッシュメモリ108は、そのCS入力が低くなるとコマンドを処理し、そのCS入力が高くなるとコマンドを終了するように構成され得る。他の実施態様では、標的フラッシュメモリ108は、そのCS入力が高くなるとコマンドを開始し、そのCS入力が低くなるとコマンドを終了してもよい。
標的フラッシュメモリ108は、コントローラ110からインターフェース103(図示せず)を介してクロック信号(「clk」)を受信するように構成され得る。クロック信号は、標的フラッシュメモリ108とコントローラ110との間のコマンド及びデータを含む情報の転送を順序付けるように構成され得る。標的フラッシュメモリ108及びコントローラ110は、クロック信号バスによって直接接続され得る。一実施形態では、モニタ102もまた、クロック信号バスに接続され得る。したがって、モニタ102は、クロック信号バス上で送信された、コントローラ110からのクロック信号を受信し、また、標的フラッシュメモリ108とコントローラ110との間のクロック信号バス上でクロック信号を発行するように構成され得る。
標的フラッシュメモリ108は、標的フラッシュメモリ108とコントローラ110との間のデータバス(「IO[3:0]」)上でデータを受信及び送信するように構成され得る。したがって、所与のクロックサイクルでは、4ビットの情報が標的フラッシュメモリ108とコントローラ110との間で転送され得る。標的フラッシュメモリ108のコマンドは、コントローラ110から標的フラッシュメモリ108へのデータバス上で指定され得る。標的フラッシュメモリ108に書き込まれるデータは、コントローラ110から標的フラッシュメモリ108へのデータバス上で指定され得る。標的フラッシュメモリ108から読み出されるデータは、標的フラッシュメモリ108からコントローラ110へのデータバス上で指定され得る。一実施形態では、モニタ102はまた、コントローラ110と標的フラッシュメモリ108との間でどの情報が共有されているかを確認するために、インターフェース103(図示せず)を介してデータバスに接続され得る。
一実施形態では、標的フラッシュ108及びコントローラ108は、特定の動作モードの間、互いに選択的に分離され得る。例えば、モニタ102がクロックバス上でクロック信号を発行するとき、又はモニタ102がデータバス上でデータを発行するとき、これらの信号は、標的フラッシュ108で受信されるが、コントローラ110では受信されないことを意図され得る。更に、コントローラ110は、コントローラ110がリセットに保持されている間、又は標的フラッシュ108がリセット状態に保持されたときに、標的フラッシュ108をインターフェースするために使用される、コントローラ110のピンを浮遊させるように構成され得る。システム100は、リセット中、又はモニタ102がコントローラ110と共有されるバス上でデータを書き込んでいる間、コントローラ110のピンを分離するための任意の好適な要素を含み得る。例えば、システム100は、分離論理230を含み得る。分離論理230は、リセット中、又はモニタ102が、例えば、クロックバス又はデータバスにデータを書き込んでいるときに、コントローラ110のピンを分離するように構成され得る。分離論理230は、デジタル回路、アナログ回路、又はそれらの任意の好適な組み合わせによって実装され得る。例えば、分離論理230は、クロックバス上のスイッチ232、及びデータバスのスイッチ234を含み得る。スイッチ232、234の操作は、例えば、モニタ102によって発行された分離制御信号によって制御され得る。スイッチ232は、コントローラ110のクロックピンと、モニタ102のクロックピン及び標的フラッシュ108のクロックピンへのバスラインの接続点との間のクロックバス上に配置され得る。スイッチ234は、コントローラ110のデータピンと、モニタ102のデータピン及び標的フラッシュ108のデータピンへのバスラインの接続点との間のデータバス上に配置され得る。モニタ102によって発行された分離制御信号は、コントローラ110が標的フラッシュ108にデータを書き込むか、又はそこからデータを受信するときに、スイッチ232、234を閉じ得る。そのような場合、コントローラ110は、標的フラッシュ108から分離されなくてもよい。モニタ102によって発行された分離制御信号は、コントローラ110がリセットされたとき、又はモニタ102が標的フラッシュ108にデータを書き込むときに、スイッチ232、234を開き得る。そのような場合、コントローラ110は、標的フラッシュ108から分離され得る。
いくつかの実施形態では、標的フラッシュメモリ108は、リセットピンを含まなくてもよい。標的フラッシュメモリ108は、標的フラッシュメモリ108の操作に電力供給するVccのための電力入力を有し得る。システム100は、Vccと標的フラッシュメモリ108との間に接続されたスイッチ212を含み得る。スイッチ212は、トランジスタによるなどの任意の好適な様式で実装され得る。モニタ202は、リセット信号を介してスイッチ212を制御するように構成され得る。リセット信号は、持続的ではなくてもよいが、スイッチ212を開き、続いてスイッチ212を閉じて、標的フラッシュメモリ108を電力サイクルするのに十分であり得る。リセット信号の長さは、スイッチ212に、標的フラッシュメモリ108を電力サイクルさせるための任意の好適な長さであり得る。したがって、標的フラッシュメモリ108へのVcc送達を制御するスイッチ212は、標的フラッシュメモリ108のリセット機構を実装し得るが、任意の他の好適な実施態様が使用されてもよい。
一実施形態では、モニタ102は、コントローラ110によって発行されたコマンドを終了することによって是正措置を実施するように構成され得る。コマンドは、標的フラッシュメモリ108がコマンドを完了し終える前に終了され得る。更なる実施形態では、コマンドは、コントローラ110をリセットすることによって終了され得る。更なる実施形態では、コマンドは、標的フラッシュメモリ108をリセットすることによって終了され得る。様々な実施形態では、標的フラッシュメモリ108、コントローラ110のうちの1つがリセットされ得る。様々な他の実施形態では、標的フラッシュメモリ108及びコントローラ110の両方がリセットされ得る。リセット信号は、コントローラ110に、電力サイクリング、ハードリブート、ソフトリブート、又はコントローラ110に固有の他のリセット操作を介してコントローラ110自体をリセットさせる任意の好適な持続時間を有し得る。更に、リセット信号は、スイッチ212に、Vccを標的フラッシュメモリ108に対して接続解除及び再接続させて、電力サイクルを引き起こさせる任意の好適な持続時間を有し得る。
一実施形態では、モニタ102は、標的フラッシュメモリ108にコマンドを破棄させる様式で、コントローラ110によって発行されたコマンドの実行を破損させることによって、是正措置を実施するように構成され得る。更なる実施形態では、モニタ102は、クロックバス上に予期せぬ量のクロックパルスを挿入することによってコントローラ110によって発行されたコマンドの実行を破損させるように構成され得る。別の更なる実施形態では、モニタ102は、コントローラ110がクロックバス上に一定量のクロックパルスを発行したときにCS信号を完了することによってコントローラ110によって発行されたコマンドの実行を破損させるように構成され得、このとき、標的フラッシュメモリ104は、完了したCS信号を予期しないことになる。予期せぬ量のクロックパルスは、所与の通信位相について、標的フラッシュメモリ108でのクロックパルスの予期される量を超え得る。予期せぬ量のクロックパルスは、例えば、奇数のクロック信号を含み得るが、任意の好適な追加のクロック信号が使用されてもよい。別の更なる実施形態では、モニタ102は、コントローラ110がコマンドの完了時に送信することになる、コントローラ110から受信されたCS信号のインスタンスを遅延させることによって、コントローラ110によって発行されたコマンドの実行を破損させるように構成され得る。これは、コマンドの操作を延長させ得る。更に別の更なる実施形態では、モニタ102は、コントローラ110がCS信号を実際に完了したときよりも早く、コントローラ110から受信されたCS信号のインスタンスを完了することによって、コントローラ110によって発行されたコマンドの実行を破損させるように構成され得る。これは、例えば、読み出し又は書き込みコマンドを遮断し得る。
図3は、本開示の実施形態による、コントローラ110から標的フラッシュメモリ108への例示的なコマンドのタイミングの例示である。図3は、モニタ102が是正措置を講じないシステム100の操作を例示する。図3には、コントローラ110から標的フラッシュメモリ108へのCS信号、クロック信号、及びデータバスのタイミング図が例示される。コントローラ110は、マスター又はマスターデバイスとして参照され得、コントローラ110からの信号は、マスター信号として参照され得る。
302において、CS信号は、アクティブローになり得、標的フラッシュメモリ108が操作を実施することを合図し得る。CS信号は、304でのコマンドの完了までアクティブローであり得る。304において、CS信号の立ち上がりエッジが非アクティブハイになると、措置は、標的フラッシュメモリ108によって完了され得る。そのような措置は、書き込み又は消去の完了であり得る。CS信号がアクティブローである間、コマンドの識別情報が、データバスを介して通信され得る。コマンドの第1のビットは、コントローラ110が第1のクロックパルスを発行する前にコントローラ110によって発行され得る。更に、データバスは、読み出し操作において、標的フラッシュメモリ108から読み出されたデータをコントローラ110に通信し得る。書き込まれるデータは、他の機構を介して通信されてもよい。加えて、クロック信号パルスは、コントローラ110から標的フラッシュメモリ108に発行され得る。情報は、そのようなクロックパルス毎に、標的フラッシュメモリ108とコントローラ110との間で読み出されるか、又は書き込まれ得る。
306は、CS信号がアクティブローになった後、かつ第1のクロックパルスの前に、コマンドの実行のための準備を実施するためにコントローラ110に典型的に必要とされる時間の長さを例示する。308は、CS信号がアクティブローになった後、かつ第1のクロックパルスの前に、コマンドの実行のための準備を実施するために標的フラッシュメモリ108に必要とされる時間の長さを例示する。310は、最後のクロックパルスの後、かつCS信号が非アクティブハイになる前に、コントローラ110に対する保持時間に典型的に必要とされる時間の長さを例示する。312は、最後のクロックパルスの後、かつCS信号が非アクティブハイになる前に、標的フラッシュメモリ108に対する保持時間に典型的に必要とされる時間の長さを例示する。図3に示されるように、準備及び保持要件は、コントローラ110と比較して、標的フラッシュメモリ108の時間がより短い場合がある。一実施形態では、モニタ102は、第1のクロックパルスの前、かつコントローラ110から標的フラッシュメモリ108に発行される最後のクロックパルスの後に、制御装置110の準備及び保持時間の間、是正措置を適用する否かの決定を行い、かつそのような是正措置を講じるように構成され得る。
標的フラッシュメモリ108は、常時生成され、かつコントローラ110に提供される状態信号出力を含まなくてもよい。コントローラ110が、大量の時間を要するコマンド(書き込み又は消去など)を発行すると、コントローラ110は、標的フラッシュメモリ108にポーリングコマンドを発行し得る。そのようなコマンドは、「読み出し状態」を含み得る。このコマンドは、標的フラッシュメモリ108によって生成された応答のビット位置0で「ビジー」と呼ばれるビットを検査し得る。応答は、元の読み出し又は書き込みコマンドに応答して、標的フラッシュメモリ108によって生成され得る。書き込みコマンドは、典型的には、フラッシュ参照データシートで「プログラム」と呼ばれ得るが、本開示は、「書き込み」という用語を使用し得る。
図4は、本開示の実施形態による、標的フラッシュメモリ108の無許可アクセスに対する是正措置を講じるための、完了CS信号の発行を禁止するシステム100の操作の例示である。モニタ102は、CS信号を発行することによって是正措置を行うように構成され得、CS信号の完了は、コントローラ110によって生成されたマスターCS信号と比較して遅延される。モニタ102は、コントローラ110によって生成されたマスターCS信号と比較して、コマンドの完了時に、標的フラッシュメモリ108によって受信されたCS信号を非アクティブハイに戻すことを禁止するか、又は遅延させるように構成され得る。これは、CS信号がコントローラ110の通常操作を超えてアクティブローである時間を引き延ばすか、又は延長するため、「引き延ばし(stretch)」技術と称され得る。引き延ばし技術は、無許可の書き込み、消去、又はチップ消去コマンドに対する是正措置を講じるために使用され得る。引き延ばし技術は、CS信号の立ち上がりエッジ時に作用する標的フラッシュメモリ108の利点を利用し得る。CS信号がアクティブローである時間を引き延ばすことによって、モニタ102は、措置をキャンセルするために他の対策を講じることを可能にされ得る。
図4には、コントローラ110によって生成され、モニタ102に提供されるマスターCS信号が例示されている。また、モニタ102によっても観察される、コントローラ110から標的フラッシュメモリ108に送信されるクロック及びデータ信号も例示されている。加えて、図4は、修正されたままのマスターCS信号(モニタ102が信号を修正した場合)であり、標的フラッシュメモリ108に提供される、フラッシュCS信号を例示している。
402では、マスターCS信号は、アクティブローに遷移し得、アクティブローCS信号は、フラッシュCSを介して、モニタ102から標的フラッシュメモリ108への僅かな遅延の後に転送され得る。モニタ102は、実施されるべきコマンドが、404で無許可であるか、又は不良な書き込み若しくは消去コマンドであると決定し得、したがって是正措置を講じ得る。406では、マスターCS信号は、非アクティブハイに戻り得る。しかしながら、モニタ102は、マスターCS信号がフラッシュCSとして出力されることを抑止し得る。代わりに、モニタ102は、フラッシュCS信号をアクティブローとして保持し続け得る。
408では、コントローラ110は、マスターCS信号をアクティブローに設定し、標的フラッシュメモリ108が以前のコマンドを用いて終了しているかどうかを確認するためにポーリングコマンドを発行し得る。しかしながら、以前のコマンドは、フラッシュCS信号がアクティブローである時間を延長することによって、モニタ102によって効果的に抑止されている。モニタ102は、標的フラッシュメモリ108に無効応答を生成させ得る。例えば、標的フラッシュメモリ108は、コマンドを完了するために非アクティブハイCS信号を受信する前に偶数クロックサイクルを予期し得る。予期せぬ量のクロックサイクルは、書き込み又は消去を実施せずに、エラー条件を生じさせるか、又は別様に無効応答を生成し得る。例えば、モニタ102は、410で奇数クロックサイクルの際にフラッシュCS用の非アクティブハイ立ち上がりエッジを発行し得る。奇数クロック信号は、例えば、ポーリングのために奇数クロック信号を発行するコントローラ110と併せて立ち上がり得る。奇数クロック信号は、モニタ102によって挿入されてもよい。続いて、標的フラッシュメモリ108は、そのCS信号入力上での立ち上がりエッジと組み合わせて奇数クロックサイクルを確認し、コントローラ110に無効又はエラー応答を生成し得る。標的フラッシュメモリ108は、任意の他の量の予期せぬクロック信号に対する無効又はエラー応答を生成し得る。したがって、コントローラ110は、その標的フラッシュメモリ108の無許可の試行されたアクセスに応答して、エラー又は無効条件のみを確認し得る。したがって、コントローラ110による無許可試行は、モニタ102によってブロックされ得る。無許可試行のコマンドは、コントローラ110によるポーリング操作の際に効果的にキャンセルされ得る。
この引き延ばし技術は、コントローラ110が、標的フラッシュメモリ108に更なるコマンドを発行する前に追跡ポーリングコマンドを通常必要とする消去又は書き込みコマンドを発行するように構成されている状況で使用され得る。この技術は、標的フラッシュメモリ108又はコントローラ110をリセットする必要がない場合がある。引き延ばし技術の結果として、ポーリング結果は、完全に失敗するか、破損されるか、又は誤っている可能性がある。ポーリングコマンドに対する適切な応答の代わりに、コントローラ110は、標的フラッシュメモリ108からポーリングコマンドへの応答の代わりに、標的フラッシュメモリ108の「ビジー」状態を認識し得る。これは、コントローラ110に再びポーリングを試させ得る。第2の試行されたポーリングの際、引き延ばし技術が、チップ選択信号が完了することを可能にした後、標的フラッシュメモリ108は、ポーリングに応答することができ、もはや「1」の「ビジー」状態を有するように見えなくなる可能性がある。そのような後続のポーリングでは、標的フラッシュメモリ108は、コマンドが完了しなかったとしても、コマンドが完了したことのエラー又は指示に応じ得る。そのような指示は、完了したコマンドとしてコントローラ110によって解釈され得る、更なる処理が試行されていない、ヌル応答又は応答を含み得る。
図5は、本開示の実施形態による、標的フラッシュメモリ108の無許可アクセスに対する是正措置を講じるための、完了CS信号の発行を禁止するシステム100の更なる操作の例示である。図5は、モニタ102によって実施され得る追加の引き延ばし技術を例示する。図5では、モニタ102は、標的フラッシュメモリ108がCS信号の立ち上がりエッジを受信する前に偶数クロックパルスを受信する要件を再び使用することによって是正措置を講じ得る。図4では、モニタ102は、コントローラ110によって標的フラッシュメモリ108に送信されるべき、奇数クロックサイクルなどの予期せぬ量のクロックサイクルを待機することによってそのような要件を使用した。対照的に、図5では、モニタ102は、余剰クロックサイクルを生成し、それを標的フラッシュメモリ108に送信し得る。
図5には、コントローラ110によって生成され、モニタ102に提供されるマスターCS信号が例示されている。また、モニタ102によっても観察される、コントローラ110から標的フラッシュメモリ108に送信されるデータ信号も例示されている。図5はまた、モニタ102によって観察され、変更可能である、コントローラ110から標的フラッシュメモリ108に送信されるクロック信号も例示している。加えて、図5は、修正されたままのマスターCS信号(モニタ102が信号を修正した場合)を表し、標的フラッシュメモリ108に提供される、フラッシュCS信号を例示している。また、図5には、モニタ102からコントローラ110に発行され得るリセット又は抹消信号が例示されている。
502では、マスターCS信号は、アクティブローに遷移し得、アクティブローCS信号は、フラッシュCSを介して、モニタ102から標的フラッシュメモリ108への僅かな遅延後に転送され得る。モニタ102は、実施されるべきコマンドが、504で無許可であるか、又は不良な書き込み若しくは消去コマンドであると決定し得、したがって是正措置を講じ得る。506では、マスターCS信号は、非アクティブハイに戻り得る。しかしながら、モニタ102は、マスターCS信号がフラッシュCSとして出力されることを抑止し得る。代わりに、モニタ102は、フラッシュCS信号をアクティブローとして保持し続け得る。506の後、マスターCS信号は、514まで無視され得る。
508では、余剰クロックパルスが標的フラッシュメモリ108に到達するように、余剰クロックパルスがモニタ102によってクロックバス中に挿入され得る。標的フラッシュメモリ108は、CS信号の立ち上がりエッジを非アクティブハイに遷移させる前に、正確な数のクロック信号を予期している場合がある。CS信号の立ち上がりエッジが非アクティブハイに遷移する前に、正しい数よりも多い、又はそれよりも少ないクロック信号が到着する場合、標的フラッシュメモリ108はエラーを生成するか、又はコマンドを破棄し得る。
510では、モニタ102は、リセット信号をコントローラ110に送信し得る。512では、モニタ102は、フラッシュCSを非アクティブハイに遷移させ得る。標的フラッシュメモリ108は、非アクティブハイCS信号の立ち上がりエッジを受信する際、及びCS信号の立ち上がりエッジの前に誤った数のクロックサイクルを受信した際、エラー又は無効条件に入り得る。条件は、標的フラッシュメモリ108のリセットを必要としない場合がある。したがって、コントローラ110は、その標的フラッシュメモリ108の無許可の試行されたアクセスに応答して、エラー又は無効条件のみを確認し得る。したがって、コントローラ110による無許可試行は、モニタ102によってブロックされ得る。無許可試行のコマンドは、効果的にキャンセルされ得る。514では、通常操作は、追加のトラフィックを用いて再開し得る。
図5の引き延ばし技術は、消去又は書き込みコマンドが正確な数のクロックパルスを有しなければならない、いくつかのフラッシュデバイスの要件を利用する。誤った数のクロックパルスが受信された場合、コマンドは、標的フラッシュメモリ108によって実行されない場合がある。例えば、チップ消去コマンドは、厳密に1バイトの長さであることが必要とされ得る。追加のクロックパルスがクロックバス中に挿入された場合、標的フラッシュメモリ108は、クロック余剰パルスに基づいて追加のデータビットを読み出し得る。ブロック又はセクタ消去コマンドは、厳密に1つのコマンドバイト、及び正しい数のアドレスバイトを有することを必要とされ得る。追加のクロックパルスがクロックバス中に挿入された場合、標的フラッシュメモリ108は、クロック余剰パルスに基づいてコマンド又はアドレス内の追加のデータビットを読み出し得る。書き込みコマンドが、整数バイトの書き込みを試行するために必要とされる場合があり、部分バイトが端に含められる場合に廃棄されることになる。それゆえに、これらのタイプの任意のコマンドは、単一余剰クロックなどの予期せぬ量のクロックパルスを標的フラッシュメモリ108によって確認させることによってキャンセルされ得る。
更に、図5の引き延ばし技術は、違反コントローラ110をリセットするが、標的フラッシュメモリ108を電力サイクリングせずに、どのようにコマンドがキャンセルされ得るかを例示している。コントローラ110がリセットされている間、コントローラ110は、クロックラインをそれがリセットされている間に浮遊し得(又は単に抵抗的に引き込む)、モニタ102がクロックバス中に追加のクロックパルスを挿入することを可能にする。したがって、リセット信号は、モニタ102がクロックパルスを挿入し、フラッシュCSが非アクティブハイに遷移することを可能にする前に、マスターデバイスをリセットし得る。そのような構成は、標的フラッシュメモリ108をリセットする必要なく、進行中のコマンドが標的フラッシュメモリ108によって破棄されることの保証を提供し得る。
図6は、本開示の実施形態による、フラッシュメモリの無許可アクセスに対する是正措置を講じるための、完了CS信号の発行を禁止するシステム100の更に別の操作の例示である。図6は、モニタ102によって実施され得る更に追加の引き延ばし技術を例示する。図6では、モニタ102は、標的フラッシュメモリ108をリセットすることによって是正措置を講じ得る。更に、モニタ102は、コントローラ110をリセットすることによって是正措置を講じ得る。
図6には、コントローラ110によって生成され、モニタ102に提供されるマスターCS信号が例示されている。また、モニタ102によっても観察される、コントローラ110から標的フラッシュメモリ108に送信されるデータ及びクロック信号も例示されている。加えて、図6は、修正されたままのマスターCS信号(モニタ102が信号を修正した場合)を表し、標的フラッシュメモリ108に提供される、フラッシュCS信号を例示している。また、図6には、モニタ102からコントローラ110及びスイッチ212に発行され得るリセット信号が例示されている。
602では、マスターCS信号は、アクティブローに遷移し得、アクティブローCS信号は、フラッシュCSを介して、モニタ102から標的フラッシュメモリ108に僅かな遅延後に転送され得る。モニタ102は、実施されるべきコマンドが、604で無許可であるか、又は不良な書き込み若しくは消去コマンドであると決定し得、したがって是正措置を講じ得る。606では、マスターCS信号は、非アクティブハイに戻り得る。しかしながら、モニタ102は、マスターCS信号がフラッシュCSに送られることを抑止し得る。代わりに、モニタ102は、フラッシュCS信号をアクティブローとして保持し続け得る。606の後、マスターCS信号は、610まで無視され得る。
608では、リセット信号は、標的フラッシュメモリ108の電力サイクルリセットを引き起こすために、モニタ102によってスイッチ212に発行され得る。更に、リセット信号は、モニタ102によってコントローラ110に発行され得る。クロック、データ及びマスターCSの中間状態は、608の終了時のリセットのクリア後まで無視され得る。したがって、コントローラ110は、その標的フラッシュメモリ108の無許可の試行されたアクセスに応答して、リセットのみを確認し得る。したがって、コントローラ110による無許可試行は、モニタ102によってブロックされ得る。無許可試行のコマンドは、効果的にキャンセルされ得る。追加のコマンドの形態の新しいトラフィックは、610でコントローラ110によって発行され得る。そのような新しいトラフィックを取り扱うとき、モニタ102は、別の不良又は無許可コマンドが検出されるまで、コントローラ110からのマスターCS信号を伝搬又はそれに追従し得る。
図6の引き延ばし技術は、是正措置が講じられる多種多様な状況に使用され得る。しかしながら、是正措置は、コントローラ110のリセットが実施され得るため、比較的極端な対策であり得る。図6の引き延ばし技術は、例えば、コマンドが実際に達成されたことを確実にするためにその後にポーリングを伴わない、短いコマンドに使用され得る。これらは、いくつかのモード設定コマンドを含み得る。
図7は、本開示の実施形態による、標的フラッシュメモリ108の無許可アクセスに対する是正措置を講じるための、CS信号の完了を加速するシステム100の操作の例示である。モニタ102は、CS信号を発行することによって是正措置を行うように構成され得、CS信号の完了は、コントローラ102によって生成されたCS信号と比較して加速される。モニタ102は、コントローラ110がCS信号を実際に終了しようと試行する前に、標的フラッシュメモリ108に対する有効なCS信号を終了するように構成され得る。結果は、標的フラッシュメモリ108で受信されたCS信号が、コマンドの完了前に非アクティブハイに戻り、コマンドを完了させないようにすることをもたらし得る。これは、CS信号がアクティブローである時間を、コントローラ110によって通常使用されることになる時間よりも短い時間に短縮するか、又は減らすため、「短縮(shrink)」技術と呼ばれ得る。短縮技術は、無許可の読み出しコマンドに対して補正措置を講じるために使用され得る。短縮技術は、CS信号の立ち上がりエッジ時に作用する標的フラッシュメモリ108の利点を利用し得る。CS信号がアクティブローである時間を短縮することによって、モニタ102は、コマンドを割り込み、無許可措置をキャンセルし得る。
図7には、コントローラ110によって生成され、モニタ102に提供されるマスターCS信号が例示されている。また、モニタ102によっても観察される、コントローラ110から標的フラッシュメモリ108に送信されるクロック及びデータ信号も例示されている。加えて、図7は、修正されたままのマスターCS信号(モニタ102が信号を修正した場合)を表し、標的フラッシュメモリ108に提供される、フラッシュCS信号を例示している。リセット信号は、この技術では使用されなくてもよい。
702では、マスターCS信号は、アクティブローに遷移し得、アクティブローCS信号は、マスターCSを介して、モニタ102から標的フラッシュメモリ108への僅かな遅延後に転送され得る。704では、読み出しコマンドは、コントローラ110によって発行され得る。706では、コントローラ110は、内容が読み出されることになるアドレスを指定し得る。モニタ102は、コントローラ110によって読み出されることから保護されたアドレスとして、アドレスが無許可又は不良アドレスであると決定し得る。したがって、モニタ102は、コマンドが無許可の読み出しコマンドであると決定し得る。モニタ102は、それに応じて是正措置を講じ得る。
708では、モニタ102は、マスターCS上の非アクティブハイ信号を標的フラッシュメモリ108に発行することによって、コマンドの操作を終了し得る。非アクティブハイへの遷移を受信する標的フラッシュメモリ108は、コマンドが終了したものとして作用し得る。コントローラ110又はモニタ102は、以下で更に詳細に論じられる、「ターンアラウンド」又は「ダミー」クロックサイクルを発行し得る。そのようなダミークロックサイクルの後、コントローラ110は、標的フラッシュメモリ108からの返信を予期し得る。しかしながら、データバスの内容は、マスターCS上の信号が非アクティブハイであることに応答して無効であるか、又は浮遊し得る。したがって、コントローラ110によって受信されたデータは、無用であり得る。710では、コントローラ110は、CS_IN上での非アクティブハイへの遷移を発行し得る。これは、モニタ102によって抑止され、標的フラッシュメモリ108に転送されなくてもよい。
この短縮技術は、読み出しコマンドの実行内の遅延の必要性を利用し得る。そのような遅延は、初期アクセス時間及び双方向データバス上での伝送方向の変更の両方に必要とされ得る。双方向データバス上の伝送方向を変更するために必要とされるサイクルは、「ターンアラウンド」サイクルと呼ばれ得る。この遅延は、より低速のクロック速度、又は最大速度での特定の数の人工又は「ダミー」クロックサイクルのいずれかによって提供される。
図8は、本開示の実施形態による、透過的に取り付けられたフラッシュメモリセキュリティを実施するための例示的な方法800の例示である。方法800は、モニタ102などの任意の好適な機構によって実施され得る。方法800のステップは、任意の好適な順番で実施されてもよく、ステップ805などの任意のステップで開始されてもよい。方法800の様々なステップは、繰り返されるか、省略されるか、又は再帰的に実施されてもよい。方法800の複数のインスタンスは、並列又は再帰的に実施されてもよい。方法800は、完全に又は部分的に、アナログ回路、デジタル回路、組み合わせ論理、命令若しくはハードウェア記述言語によって顕在化される回路、プロセッサによる実行のための命令、又はそれらの任意の組み合わせで具現化され得る。命令は、非一時的な機械可読媒体上にあってもよい。命令は、プロセッサによって読み込まれて実行されると、プロセッサに、モニタ102などのシステム100の様々な部分の機能を実施させ得る。
ステップ805では、モニタがブート又は初期化され得る。ステップ810では、メモリにアクセスし得るマスター要素が、リセット信号をマスター要素に発行及び保持することによってリセット状態に保持され得る。ステップ815では、モニタの内容が有効性をチェックされ得る。内容が有効ではない場合、それらは、メモリ内の信頼されたイメージから復元され得る。ステップ820では、マスター要素によってアクセスされるメモリの内容が有効性をチェックされ得る。内容が有効ではない場合、それらは、メモリ内の信頼されたイメージから復元され得る。ステップ825では、メモリの保護の定義が読み込まれ得る。マスター要素は、リセットから解放され得る。
ステップ830では、メモリの試行されたアクセスが行われたか否かを決定し得る。そうである場合、方法800は、ステップ835に進み得る。そうでない場合、方法800は、ステップ875に進み得る。
ステップ835では、メモリの試行されたアクセスが許可されたか否かを決定し得る。例えば、全てのチップ消去コマンドは、許容されない場合がある。所与のアドレスへの読み出し又は書き込みは、アドレス及び読み出し又は書き込みに基づいて可能にされるか、又は禁止され得る。試行されたアクセスが許可された場合、アクセスが可能にされ得、方法800は、ステップ875に進み得る。試行されたアクセスが許可されなかった場合、方法800は、ステップ840に進み得る。
ステップ840では、好適な是正措置が決定され得る。是正措置は、試行されたアクセスの性質に基づき得る。試行されたアクセスが読み出し操作であった場合、方法800は、ステップ845に進み得る。試行されたアクセスが書き込み操作であった場合、方法800は、ステップ850に進み得る。
ステップ845では、アクセスされたメモリに送信されたCS信号は、コマンドが依然として実行されている間に完了され得る。これは、短縮操作であり得、メモリに無効情報を提供させ得る。方法800は、ステップ875に進み得る。
ステップ850〜ステップ870では、好適な書き込みコマンドキャンセルが決定され得る。ステップ850では、書き込みコマンドが追跡ポーリングを必要とするか否かを決定し得る。そうである場合、方法800は、855に進み得る。そうでない場合、方法800は、ステップ860に進み得る。
ステップ855では、CS信号が、アクセスされたメモリに送信され得る。CS信号の完了は、アクセスされたメモリに対して一時的に防止され得る。奇数クロックサイクル、又は予期せぬクロックサイクルが、メモリのクロックバスに送信されることが可能にされるか、又は奇数若しくは予期せぬクロックサイクルが、メモリのクロックバス中に挿入され得る。CSの完了は、受信されたCS信号と比較して、抑止又は遅延され得るが、奇数又は予期せぬクロックサイクルは、メモリに対して可視である。その後、メモリに対して発行されたCS信号が完了され得る。方法800は、ステップ875に進み得る。
ステップ860では、コマンドが、例えば、コマンド、オペランド、又は標的アドレスにおいて、正確な数のビットを必要とするか否かが決定され得る。そうである場合、方法800は、ステップ865に進み得る。そうでない場合、方法800は、ステップ870に進み得る。
ステップ865では、CS信号が、アクセスされたメモリに送信され得る。マスターは、リセットされ得る。余剰又は予期せぬクロックサイクルは、マスターからのCS信号の完了を防止又は抑止しながら、モニタによってメモリへのクロック信号バス中に挿入され得る。その後、メモリに対して発行されたCS信号が完了され得る。方法800は、ステップ875に進み得る。
ステップ870では、CS信号が、アクセスされたメモリに送信され得る。マスター及びメモリは、マスターから受信されたCS信号の完了を防止又は抑止しながら、リセットし得る。メモリは、メモリに電力ダウン及び電力アップサイクルに入らせることによってリセットされ得る。余剰又は予期せぬクロックサイクルは、マスターからのCS信号の完了を防止又は抑止しながら、モニタによってメモリへのクロック信号バス中に挿入され得る。その後、メモリに対して発行されたCS信号が完了され得る。方法800は、ステップ875に進み得る。
ステップ875では、方法800が繰り返すか否かが決定され得る。決定は、構成設定、リセット信号若しくは入力、又はユーザ入力、あるいは任意の他の好適な基準に基づき得る。方法800が繰り返す場合、方法800は、例えば、ステップ830で繰り返し得る。そうでなければ、ステップ880で、方法800は、終了してもよい。
図1に戻ると、モニタ102は、コントローラ110などの要素が標的フラッシュメモリ108へのアクセスを試行する際、標的フラッシュメモリ108の保護をリアルタイムで提供するように構成され得る。更に、モニタ102は、それ自体が様々なセキュリティ対策によって保護され得る。加えて、モニタ102は、標的フラッシュメモリ108のリアルタイム保護を提供するために、様々なリソースを利用するように構成され得る。
一実施形態では、モニタコード116は、メモリ104内に記憶され得る。モニタ102の起動時に、モニタコード116が、システム100のメモリ内に読み込まれ、実行され得る。ブート時に、モニタ102は、メモリ104からモニタコード116を読み込み得る。モニタ102は、モニタコード116が、モニタコード116を読み込む前に正しく署名されていることをチェックするように構成され得る。モニタコード116が正しく署名されていないか、又は別様に認証に失敗した場合、モニタ102は、信頼されたコードイメージ112からモニタコードをコピーするように構成され得る。デジタル署名及び認証は、例えば、Rivest−Shamir−Adleman(「RSA」)鍵などの暗号鍵、共有秘密暗号化技術、又は公開秘密鍵対などの任意の好適な様式で実施され得る。更に、モニタ102は、コントローラコード128が標的フラッシュ108から読み出される際、UEFI BIOS 114及びコントローラコード128などのシステム100の他の要素を検証するように構成され得る。認証は、デジタル署名をチェックすること、又は要素の実質を、信頼されたコードイメージ112に記憶された既知の真値と比較することを含み得る。モニタ102が、任意のそのような要素が認証されていないと決定した場合、モニタ102は、信頼されたコードイメージ112から要素をコピーするように構成され得る。
一実施形態では、ランタイム中、モニタ102は、標的フラッシュメモリ108にアクセスする全ての試行をフィルタリングするように構成され得る。モニタ102は、標的フラッシュメモリ108の保護を、その上のメモリのアドレス又は領域に基づいて、施行するように構成され得る。どのアドレス又はメモリの領域が保護されるべきかの定義、及びそのようなアドレス又はメモリの領域を保護するための基準は、アクセス設定134によって定義され得る。アクセス設定134は、メモリ104内又は信頼されたコードイメージ112内などの任意の好適な場所に記憶され得る。アクセス設定134は、暗号化され得る。
上述されたように、モニタ102は、モニタコードを読み込む前にブートする際、モニタコード116を認証するように構成され得、他の内容をチェックするように構成され得る。モニタ102は、そのような要素を、例えば、信頼されたコードイメージ112と比較するように構成され得る。モニタ102は、例えば、要素の各々のビット毎若しくはバイト毎の内容、署名、又はチェックサムを、信頼されたコードイメージ112内の信頼されたバージョンのものと比較することによって、そのような内容を比較するように構成され得る。モニタ102によってチェックされるべき標的フラッシュメモリ108の内容は、標的フラッシュメモリ108の利用可能な内容又は記憶の特定のサブセット又はアドレス範囲であり得る。特定のサブセット又はアドレス範囲は、アクセス設定134内で定義され得る。標的フラッシュメモリ108の内容が破損し、予期される内容と一致しない場合、モニタ102は、信頼されたコードイメージ112を用いてそのような内容を復元するように構成され得る。モニタ102は、メモリ104の一部分又は標的フラッシュ108の他のインスタンスなどの、他のフラッシュメモリのためのそのようなチェックを実施するように構成され得る。例えば、モニタ102は、UEFI BIOS 114の認証をチェックし、UEFI BIOS 114が破損した場合、信頼されたコードイメージ112からUEFI BIOS 114を復元するように構成され得る。
一実施形態では、モニタ102のブート中、モニタ102は、リセット信号を発行することによって、システムCPU106及びコントローラ110をリセットモードに保持するように構成され得る。別の実施形態では、ランタイム中、モニタ102は、システムCPU106によるメモリ104のアクセスを監視するように構成され得る。コントローラ110によって標的フラッシュメモリ108に対して試行されたアクセスのモニタ102による施行と同様に、モニタ102は、メモリ104上で実施されることになるシステムCPU106によるコマンドが許可されているか否かを評価するように構成され得る。モニタ102は、上記のように任意の好適な様式で是正措置を実施するように構成され得る。
モニタ102は、任意の好適な基準に従って、メモリ104のシステムCPU106によって、又は標的フラッシュメモリ108のコントローラ110によって、試行されたアクセスを評価するように構成され得る。例えば、モニタ102は、所与のフラッシュメモリにアクセスし得る各実体の許容可能な又は許容不可能な読み出し、書き込み、又は他のアクセス領域を画定するように構成され得る。モニタ102は、メモリ領域又はキャッシュが書き込まれているか、又は更新を必要としていることを示す、いわゆる「ダーティビット」の消去又は書き込みの試行を評価するように構成され得る。モニタ102は、無効ブロックサイズに対する消去サイズエラーを生成するか、又は保護レジスタ設定の違反などの違反にアクセスすることになるか、無効若しくは範囲外のアドレスに対するものであるか、又はタイムアウトを引き起こすことになる、試行を評価するように構成され得る。大量消去コマンドは、標的アドレスにかかわらず、モニタ102によってキャンセルされ得る。
コントローラ110と標的フラッシュメモリ108との間のものなどのSPIバスについて、大量消去コマンドは、モニタ102によって防止され得る。境界外又は保護領域への書き込み、読み出し、又は消去が防止され得る。標的フラッシュメモリ108の内容が破損した場合、内容は、信頼されたコードイメージ112からモニタ102によって復元され得る。
試行された読み出しが標的フラッシュメモリ108の有効アドレスになされた場合、モニタ102は、読み出しコマンドを更に評価するように構成され得る。更なる評価は、例えば、信頼されたコードイメージ112内に記憶され得る既知の信頼された内容に対して標的フラッシュメモリ108の内容をチェックすることを含み得る。標的フラッシュメモリ108上で実施される読み出しコマンド、及び結果的に得られたデータは、モニタ102によって捕捉され得る。モニタ102は、シフトレジスタ、先入れ先出し(first-in-first-out、FIFO)メモリ、又はモニタ102の他の好適なデータ構造内に読み出したデータを配置し得る。読み出しコマンドは、同様のコマンド又は操作が信頼されたコードイメージ112上で実施され得るように変換され得る。読み出しコマンドは、メモリ104などの別のメモリ内の信頼されたコードイメージ112上で実施され得る。モニタ102は、これらのソースの各々からのデータを比較し得る。データが同じでない場合、コントローラ110などの標的フラッシュメモリ108の試行された読み出しを行う要素は、リセットされ得る。他の是正措置が、必要に応じて講じられ得る。
図9A及び図9Bは、本開示の実施形態による、標的フラッシュ108の内容をチェックするモニタ102の例示的な構成を例示する。モニタ102は、任意の好適な時間で標的フラッシュ108の内容をチェックするように構成され得る。図9A及び図9Bでは、コントローラ110は、フラッシュメモリ902及びフラッシュメモリ904などのいくつかの異なるフラッシュメモリにアクセスするように構成され得る。フラッシュメモリ904は、図9A及び図9Bの特定の例ではアクセスされない場合がある。読み出されることになる特定のフラッシュメモリは、例えば、マルチプレクサ906、又は任意の他の好適なスイッチ、接続、若しくは選択機構を用いて選択され得る。フラッシュ902は、コントローラコード112などの内容を含み得る。内容はまた、信頼されたコードイメージ112中にメモリ104内に記憶され得る。
図9Aでは、モニタ102は、ブートアップでフラッシュメモリ902から内容を読み出し得る。モニタ102は、フラッシュメモリ902内の内容を、信頼されたコードイメージ112からのそのような内容の信頼された既知のコピーコードと比較し得る。比較は、ビット毎、バイト毎、又は署名若しくはチェックサムに基づいて実施され得る。フラッシュメモリ902の内容が信頼されたコードイメージ112中に記憶されたものと同じである場合、モニタ102は、フラッシュメモリ902の内容を認証し得る。そうでなければ、モニタ102は、フラッシュメモリ902内の内容を、信頼されたコードイメージ112からの信頼されたコピーで置換するなどの、是正措置を講じ得る。メモリのチェックは、定期的に、ユーザからの要求に応じて、又は任意の他の好適な時間で実施され得る。
図9Bでは、モニタ102は、コントローラ110によって行われる試行された読み出し操作中に内容を認証し得る。コントローラ110は、フラッシュメモリ902内に記憶された内容を読み出すことを試行し得る。しかしながら、マルウェア又は別の悪意のあるエージェントは、フラッシュメモリ906などの異なるフラッシュメモリを、フラッシュメモリ902の代わりに不正に読み出させる場合があった。これは、マルチプレクサ906への選択信号になりすまして、フラッシュメモリ902の代わりにフラッシュメモリ906から読み出しを行わせるなどによって、様々な攻撃を介して実施され得る。フラッシュメモリ906は、コントローラ110によって読み出されるアドレスにマルウェア内容を含み得る。モニタ102は、フラッシュメモリ902内に内容を記憶するように指定されたアドレスから試行された読み出しを確認することで、読み出しトランザクションを認証し得る。読み出し中、モニタ102は、メモリ104から信頼されたイメージ112を読み出し、それをフラッシュ(モニタ102がフラッシュ902であると考える)から読み出されたデータと比較し得る。この比較は、ビット毎、バイト毎、又は署名若しくはチェックサムに基づき得る。モニタ102は、読み出し操作の内容が信頼されたコードイメージ112の内容と同じではないと決定することで、内容が損なわれているか、又は破損しているかを決定し得る。モニタ102は、警報を発するなどの是正措置を講じ得る。図9Bに示されるマルウェア攻撃は、データをブート又は始動時に単に認証するのではなく、メモリの指定された領域から読み出されたデータを継続的にリアルタイムで監視するモニタ102の利益を例示する。マルウェア攻撃は、第1の認証チェック後に生じ得る。
図10は、本開示の実施形態による、メモリ内に記憶された内容を認証するための例示的な方法1000の例示である。方法1000は、モニタ102などの任意の好適な機構によって実施され得る。方法1000のステップは、任意の好適な順番で実施されてもよく、ステップ1005などの任意のステップで開始されてもよい。方法1000の様々なステップは、繰り返されるか、省略されるか、又は再帰的に実施されてもよい。方法1000の複数のインスタンスは、並列又は再帰的に実施されてもよい。方法1000は、完全に又は部分的に、アナログ回路、デジタル回路、組み合わせ論理、命令若しくはハードウェア記述言語によって顕在化される回路、プロセッサによる実行のための命令、又はそれらの任意の組み合わせによって具現化され得る。命令は、非一時的な機械可読媒体上にあってもよい。命令は、プロセッサによって読み込まれて実行されると、プロセッサに、モニタ102などのシステム100の様々な部分の機能を実施させ得る。
ステップ1005では、認証のためにチェックされることになるメモリ内の内容が読み出され得る。ステップ1010では、内容が真正であるか否かが決定され得る。決定は、内容を、他の箇所に記憶された内容の信頼されたコピーと比較することによって行われ得る。比較は、例えば、ビット毎、バイト毎、署名、又はチェックサム比較で実施され得る。内容が認証された場合、方法1000は、ステップ1020に進み得る。内容が認証されない場合、方法1000は、ステップ1015に進み得る。
ステップ1015では、正しい内容が、信頼されたコピーから、不正な内容が記憶されたメモリにコピーされ得る。方法1000は、ステップ1020に進み得る。
ステップ1020では、内容の試行された読み出しがメモリ内の保護された場所から行われたか否かが決定され得る。そうでない場合、方法1000は、ステップ1045に進み得る。そうである場合、方法1000は、ステップ1025に進み得る。
ステップ1025では、内容は、メモリ内の保護された場所から読み出され得る。ステップ1030では、メモリから読み出されたときの内容が、信頼されたイメージ内の内容の既知の信頼されたコピーとのメモリ内の保護された場所の内容の比較に基づいて真正であるか否かが決定され得る。比較は、ビット毎、バイト毎、署名、又はチェックサム比較などの任意の好適な比較によって実施され得る。内容が認証された場合、方法1000は、ステップ1035に進み得る。内容が認証されない場合、方法1000は、ステップ1040に進み得る。
ステップ1035では、読み出し内容へのアクセスが可能にされ得る。方法1000は、ステップ1045に進み得る。ステップ1040では、任意の好適な是正措置が、読み出された内容へのアクセスを防止し得る。例えば、読み出し内容が真正ではないと決定すると、リセット信号が、内容にアクセスしようと試行した実体に送信され得る。内容の真正コピーが、メモリ内のアクセスされた場所にコピーされ得る。警報が、発せられてもよい。方法1000は、ステップ1045に進み得る。
ステップ1045では、方法1000が繰り返すか否かが決定され得る。決定は、構成設定、リセット信号若しくは入力、又はユーザ入力、あるいは任意の他の好適な基準に基づき得る。方法1000が繰り返す場合、方法1000は、例えば、ステップ1020で繰り返し得る。そうでなければ、ステップ1050で、方法1000は、終了してもよい。
本開示の実施形態は、装置を含み得る。装置は、インターフェース回路と、インターフェース回路に通信可能に結合されたモニタ回路と、を含む。インターフェース回路は、アナログ回路、デジタル回路、又はプロセッサによる実行のための命令のうちの任意の好適な組み合わせによって実装され得る。モニタ回路は、アナログ回路、デジタル回路、又はプロセッサによる実行のための命令のうちの任意の好適な組み合わせによって実装され得る。モニタ回路は、インターフェース回路を介してモニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別するように構成される。コマンドは、例えば、読み出し、書き込み、又は消去コマンドを含み得る。メモリは、フラッシュメモリ、又は任意の他の好適なメモリを含み得る。コマンドは、任意の好適な実体から発信され得る。モニタ回路は、コマンドが許可されているか否かを決定するように更に構成される。モニタ回路は、任意の好適な基準を介してコマンドが許可されているか否かを決定するように構成され得る。基準は、コマンドの性質(読み出し、書き込み、若しくは消去のいずれか)、又はコマンドの宛先若しくはアドレスに基づき得る。所与のアドレスに対する異なるアドレス又は異なるコマンドは、異なる基準によって保護され得る。モニタ回路は、コマンドが許可されているか否かを決定するように構成される。モニタ回路は、コマンドが許可されている場合にコマンドを可能にし、コマンドが許可されていない場合に是正措置を講じるように構成されている。モニタ回路は、コマンドをキャンセルすること、メモリ若しくはコマンドを発行した実体にリセットを発行すること、又は警報フラグ若しくはビットをユーザ若しくはシステムに発するなどの、任意の好適な是正措置を講じるように構成され得る。
上記の実施形態のいずれかと組み合わせて、モニタ回路は、メモリにアクセスするコマンドを作製する実体とメモリとの間を透過的な様式で操作するように構成され得る。コマンドを傍受及び評価するためのモニタ回路の透過的な操作は、コマンドを作製する実体に対して透過的であってもよい。コマンドを傍受及び評価するためのモニタ回路の透過的な操作は、メモリに対して透過的であってもよい。モニタ回路は、例えば、デイジーチェーン配置によるか、又は実体とメモリとの間のバスを調べることによるなどの任意の好適な様式でコマンドを受信するように構成され得る。
上記の実施形態のいずれかと組み合わせて、モニタ回路は、コマンドをキャンセルするために任意の好適な措置を講じるように更に構成され得る。コマンドをキャンセルするために、モニタ回路は、受信されたチップ選択信号を修正して、修正されたチップ選択信号を生成することと、修正されたチップ選択信号をメモリに送信することと、を行うように構成され得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、修正されたチップ選択信号の完了前に、メモリによって使用されるクロックバスに予期せぬ数のクロックパルスを追加又は許容するように構成され得る。予期せぬ数のクロックパルスは、単独で、又はコマンドをキャンセルする上記の例のうちのいずれかと組み合わせて、奇数クロックパルス、又はメモリによって予期されるクロックパルスよりも多い数のクロックパルスであり得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、メモリによって使用されるクロックバスにクロックパルスが追加される前に、コマンドのソースをリセットするように構成され得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、修正されたチップ選択信号の完了前に、コマンドのソースをリセットするように構成され得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、受信されたチップ選択信号の完了後、修正されたチップ選択信号を完了するように構成され得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、コマンドが書き込みコマンド又は消去コマンドであるという決定に応答して、コマンドを修正されたチップ選択信号を完了するように構成され得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、コマンドのソースからの後のチップ選択信号が受信される前に、修正されたチップ選択信号を完了するように構成され得る。コマンドをキャンセルするために、モニタ回路は、単独で、又はコマンドをキャンセルする上記の例のいずれかと組み合わせて、コマンドが読み出しコマンドであるという決定に基づいて、コマンドのソースからの後のチップ選択信号を受信する前に、修正されたチップ選択信号を完了するように構成され得る。
上記実施形態のいずれかと組み合わせて、モニタ回路は、モニタ回路に通信可能に結合されたメモリに発行された読み出しコマンドを識別することと、メモリからの内容を信頼されたコピーと比較して、メモリからの内容及び信頼されたコピーが同一であるか否かを決定することと、メモリからの内容が信頼されたコピーと同じではないという決定に基づいて、是正措置を講じることと、を行うように更に構成され得る。
上記実施形態のいずれかと組み合わせて、モニタ回路は、プロセッサ及び非一時的な機械可読媒体を含み得る。媒体は、命令を含み得、命令は、プロセッサによって読み込まれて実行されると、モニタ回路に、モニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別することと、コマンドが許可されているか否かを決定することと、コマンドをキャンセルすることと、を行わせる。
本開示の実施形態は、上記の実施形態のモニタ回路のうちのいずれかによって実施される方法を含み得る。
本開示は、1つ以上の実施形態に関して記述されており、特に明言されたものとは別に、多くの等価物、代替物、変形物、及び修正が可能であり、本開示の範囲内にあることが認識されるべきである。本開示は様々な修正及び代替の形態が可能である一方で、それらの特定の実施形態の例が、図で示され、本明細書で詳細に記述される。しかしながら、特定の実施形態の例の本明細書の記述は、本明細書で開示された特定の形態に開示を限定する意図はないことが理解されるべきである。

Claims (23)

  1. インターフェース回路と、
    前記インターフェース回路に通信可能に結合されたモニタ回路と、を備えた装置であって、
    前記モニタ回路が、
    前記インターフェース回路を介して前記モニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別することと、
    前記コマンドが許可されているか否かを決定することと、
    前記コマンドが許可されていないという決定に基づいて、前記コマンドをキャンセルすることと、を行うように構成されている装置。
  2. 前記モニタ回路は、前記コマンドをキャンセルするために、
    前記モニタ回路に、受信されたチップ選択信号を修正させて、修正されたチップ選択信号を生成させることと、
    前記修正されたチップ選択信号を前記メモリに送信することと、を行うように更に構成されている、請求項1に記載の装置。
  3. 前記モニタ回路は、前記コマンドをキャンセルするために、前記修正されたチップ選択信号の完了前に、前記メモリによって使用されるクロックバスにクロックパルスを加えるように更に構成されている、請求項2に記載の装置。
  4. 前記モニタ回路は、前記コマンドをキャンセルするために、前記メモリによって使用される前記クロックバスに前記クロックパルスが加えられる前に、前記コマンドのソースをリセットするように更に構成されている、請求項3に記載の装置。
  5. 前記モニタ回路は、前記コマンドをキャンセルするために、前記修正されたチップ選択信号の完了前に、前記コマンドのソースをリセットするように更に構成されている、請求項2〜4のいずれか一項に記載の装置。
  6. 前記モニタ回路は、前記コマンドをキャンセルするために、前記受信されたチップ選択信号の完了後に、前記修正されたチップ選択信号を完了するように更に構成されている、請求項2〜5のいずれか一項に記載の装置。
  7. 前記モニタ回路は、前記コマンドをキャンセルするために、前記コマンドが書き込みコマンド又は消去コマンドであるという決定に応答して、前記修正されたチップ選択信号を完了するように更に構成されている、請求項2〜6のいずれか一項に記載の装置。
  8. 前記モニタ回路は、前記コマンドをキャンセルするために、前記コマンドのソースから後のチップ選択信号が受信される前に、前記修正されたチップ選択信号を完了するように更に構成されている、請求項2〜7のいずれか一項に記載の装置。
  9. 前記モニタ回路は、前記コマンドをキャンセルするために、前記コマンドが読み出しコマンドであるという決定に基づいて、前記コマンドの前記ソースから後のチップ選択信号を受信する前に、前記修正されたチップ選択信号を完了するように更に構成されている、請求項2〜8のいずれか一項に記載の装置。
  10. 前記モニタ回路が、
    前記モニタ回路に通信可能に結合されたメモリに発行された読み出しコマンドを識別することと、
    前記メモリからの内容を信頼されたコピーと比較して、前記メモリからの前記内容及び前記信頼されたコピーが同一であるか否かを決定することと、
    前記メモリからの前記内容が前記信頼されたコピーと同じではないという決定に基づいて、是正措置を講じることと、を行うように更に構成されている、請求項1〜9のいずれか一項に記載の装置。
  11. 前記モニタ回路が、
    プロセッサと、
    命令を含む非一時的な機械可読媒体と、を含み、前記命令は、前記プロセッサによって読み込まれて実行されると、前記モニタ回路に、前記モニタ回路に通信可能に結合されたメモリに発行された前記コマンドを識別することと、前記コマンドが許可されているか否かを決定することと、前記コマンドをキャンセルすることと、を行わせる、請求項1〜10のいずれか一項に記載の装置。
  12. インターフェース回路を介してモニタ回路に通信可能に結合されたメモリに発行されたコマンドを識別するステップと、
    前記コマンドが許可されているか否かを決定するステップと、
    前記コマンドが許可されていないという決定に基づいて、前記コマンドをキャンセルするステップと、を含む方法。
  13. 前記コマンドをキャンセルするステップは、
    受信されたチップ選択信号を修正して、修正されたチップ選択信号を生成するステップと、
    前記修正されたチップ選択信号を前記メモリに送信するステップと、を含む、請求項12に記載の方法。
  14. 前記コマンドをキャンセルするステップは、前記修正されたチップ選択信号の完了前に、前記メモリによって使用されるクロックバスにクロックパルスを加えることを含む、請求項13に記載の方法。
  15. 前記コマンドをキャンセルするステップは、前記メモリによって使用される前記クロックバスに前記クロックパルスが加えられる前に、前記コマンドのソースをリセットするステップを更に含む、請求項14に記載の方法。
  16. 前記コマンドをキャンセルするステップは、前記修正されたチップ選択信号の完了前に、前記コマンドのソースをリセットするステップを含む、請求項13又は14に記載の方法。
  17. 前記コマンドをキャンセルするステップは、前記受信されたチップ選択信号の完了後に、前記修正されたチップ選択信号を完了するステップを含む、請求項13〜16のいずれか一項に記載の方法。
  18. 前記コマンドをキャンセルするステップは、前記コマンドが書き込みコマンド又は消去コマンドであるという決定に応答して、前記修正されたチップ選択信号を完了するステップを含む、請求項13〜17のいずれか一項に記載の方法。
  19. 前記コマンドをキャンセルするステップは、前記コマンドのソースから後のチップ選択信号が受信される前に、前記修正されたチップ選択信号を完了するステップを含む、請求項13〜18のいずれか一項に記載の方法。
  20. 前記コマンドをキャンセルするステップは、前記コマンドが読み出しコマンドであるという決定に基づいて、前記コマンドの前記ソースから後のチップ選択信号を受信する前に、前記修正されたチップ選択信号を完了するステップを含む、請求項13〜19のいずれか一項に記載の方法。
  21. 前記モニタ回路が、
    前記モニタ回路に通信可能に結合されたメモリに発行された読み出しコマンドを識別するステップと、
    前記メモリからの内容を信頼されたコピーと比較して、前記メモリからの前記内容及び前記信頼されたコピーが同一であるか否かを決定するステップと、
    前記メモリからの前記内容が前記信頼されたコピーと同じではないという決定に基づいて、是正措置を講じるステップと、を行うように更に構成されている、請求項12に記載の方法。
  22. 請求項1〜11に記載の装置のいずれかを備える、マイクロコントローラ。
  23. マイクロコントローラと、メモリと、請求項1〜11に記載の装置のいずれかと、を備える、システム。
JP2020532611A 2017-12-15 2018-12-14 透過的に取り付けられたフラッシュメモリセキュリティ Pending JP2021507369A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762599288P 2017-12-15 2017-12-15
US62/599,288 2017-12-15
US16/218,773 US10877673B2 (en) 2017-12-15 2018-12-13 Transparently attached flash memory security
US16/218,773 2018-12-13
PCT/US2018/065616 WO2019118810A1 (en) 2017-12-15 2018-12-14 Transparently attached flash memory security

Publications (1)

Publication Number Publication Date
JP2021507369A true JP2021507369A (ja) 2021-02-22

Family

ID=66814400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020532611A Pending JP2021507369A (ja) 2017-12-15 2018-12-14 透過的に取り付けられたフラッシュメモリセキュリティ

Country Status (6)

Country Link
US (2) US10877673B2 (ja)
JP (1) JP2021507369A (ja)
CN (2) CN111226215B (ja)
DE (1) DE112018006401T5 (ja)
TW (1) TWI801468B (ja)
WO (1) WO2019118810A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
US10877673B2 (en) 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security
US11520940B2 (en) * 2020-06-21 2022-12-06 Nuvoton Technology Corporation Secured communication by monitoring bus transactions using selectively delayed clock signal
US11341081B1 (en) * 2021-03-10 2022-05-24 Texas Instruments Incorporated Propagation delay compensation for SPI interfaces
US20240184735A1 (en) * 2021-04-23 2024-06-06 Google Llc Secure Serial Peripheral Interface Communication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773110A (ja) * 1992-01-28 1995-03-17 Tokimec Inc データ記憶システム
US20080282017A1 (en) * 2007-05-09 2008-11-13 Microsoft Corporation Serial Peripheral Interface Switch

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10315726A1 (de) * 2003-04-04 2004-11-04 Infineon Technologies Ag Programmgesteuerte Einheit
JP4742498B2 (ja) * 2004-01-09 2011-08-10 ソニー株式会社 データ通信システム、データ処理装置、そのプログラムおよびその方法
CA2496849A1 (en) * 2004-02-12 2005-08-12 Divinity Data Security Inc. Method and apparatus for preventing un-authorized computer data access
GB0425113D0 (en) * 2004-11-13 2004-12-15 Ibm A method of determining access rights to IT resources
EP2033145B1 (en) * 2006-06-15 2011-04-06 Kabushiki Kaisha Toshiba Portable electronic device and control method thereof
US7836269B2 (en) * 2006-12-29 2010-11-16 Spansion Llc Systems and methods for access violation management of secured memory
US8370261B2 (en) * 2007-01-10 2013-02-05 Amnon Nissim System and a method for access management and billing
CN101055613A (zh) * 2007-05-25 2007-10-17 东南大学 一种芯片数据输出信号的保护方法及其电路
US9164925B2 (en) * 2008-01-15 2015-10-20 Samsung Electronics Co., Ltd. Method and apparatus for authorizing host to access portable storage device
BRPI0822164B1 (pt) * 2008-05-16 2019-09-10 Hewlett Packard Development Co método para prover um comando de gerenciamento de sistema e dispositivo eletrônico
JP4856208B2 (ja) * 2009-03-30 2012-01-18 株式会社東芝 半導体装置
CN102449631B (zh) * 2009-05-26 2016-01-20 惠普开发有限公司 用于执行管理操作的系统和方法
WO2011143628A2 (en) * 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
CN102541469B (zh) * 2011-12-13 2015-01-21 华为技术有限公司 固件存储系统中数据保护的方法、设备及系统
US8669607B1 (en) 2012-11-01 2014-03-11 Taiwan Semiconductor Manufacturing Company, Ltd. Methods and apparatus for non-volatile memory cells with increased programming efficiency
US9111401B2 (en) * 2012-11-29 2015-08-18 Hid Global Gmbh Interactive reader commander
KR101821633B1 (ko) * 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US9690720B2 (en) * 2014-06-03 2017-06-27 Qualcomm Incorporated Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US10210339B2 (en) * 2014-09-30 2019-02-19 Hewlett-Packard Development Company, L.P. Cancellation requests
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
CN106295381B (zh) * 2015-05-19 2019-05-07 澜起科技股份有限公司 用于监控对内部存储器的数据访问的装置以及内部存储器
US10318193B2 (en) * 2015-09-14 2019-06-11 Sandisk Technologies Llc Systems and methods of command authorization
US9673208B2 (en) 2015-10-12 2017-06-06 Silicon Storage Technology, Inc. Method of forming memory array and logic devices
US9503922B1 (en) * 2015-10-16 2016-11-22 Sprint Communications Company L.P. Wireless network abstract maintenance command execution framework
WO2017131671A1 (en) 2016-01-27 2017-08-03 Hewlett Packard Enterprise Development Lp Securing a memory device
US10606773B2 (en) * 2017-01-04 2020-03-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for low latency access of memory between computing devices
US20190034910A1 (en) * 2017-07-26 2019-01-31 Value Payment Systems, Llc Transaction process for smart chip card transactions
US10162406B1 (en) * 2017-08-31 2018-12-25 Micron Technology, Inc. Systems and methods for frequency mode detection and implementation
US10877673B2 (en) 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773110A (ja) * 1992-01-28 1995-03-17 Tokimec Inc データ記憶システム
US20080282017A1 (en) * 2007-05-09 2008-11-13 Microsoft Corporation Serial Peripheral Interface Switch

Also Published As

Publication number Publication date
US10877673B2 (en) 2020-12-29
CN118132000A (zh) 2024-06-04
US20210117109A1 (en) 2021-04-22
US20190187922A1 (en) 2019-06-20
WO2019118810A1 (en) 2019-06-20
DE112018006401T5 (de) 2020-08-27
CN111226215A (zh) 2020-06-02
TWI801468B (zh) 2023-05-11
TW201928991A (zh) 2019-07-16
US12001689B2 (en) 2024-06-04
CN111226215B (zh) 2024-03-08

Similar Documents

Publication Publication Date Title
JP6404283B2 (ja) 安全な環境を初期化する命令を実行するシステムおよび方法
US12001689B2 (en) Transparently attached flash memory security
JP4708414B2 (ja) ランタイム・セキュリティ保証用の自律型メモリ・チェッカ
CN109918919B (zh) 认证变量的管理
US8583908B2 (en) Enhanced network and local boot of Unified Extensible Firmware Interface images
US9600291B1 (en) Secure boot using a field programmable gate array (FPGA)
US9740887B2 (en) Methods and systems to restrict usage of a DMA channel
US9208292B2 (en) Entering a secured computing environment using multiple authenticated code modules
US10783250B2 (en) Secured master-mediated transactions between slave devices using bus monitoring
CN113039545A (zh) 设备的安全引导辅助及相关系统、方法和设备
EP1843250B1 (en) System and method for checking the integrity of computer program code
EP1465038A1 (en) Memory security device for flexible software environment
US11675587B2 (en) Enhanced protection of processors from a buffer overflow attack
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
TW202139040A (zh) 安全裝置、安全方法、安全系統以及安全設備

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230808