JP2015525916A - メモリ保護装置及び保護方法 - Google Patents

メモリ保護装置及び保護方法 Download PDF

Info

Publication number
JP2015525916A
JP2015525916A JP2015519342A JP2015519342A JP2015525916A JP 2015525916 A JP2015525916 A JP 2015525916A JP 2015519342 A JP2015519342 A JP 2015519342A JP 2015519342 A JP2015519342 A JP 2015519342A JP 2015525916 A JP2015525916 A JP 2015525916A
Authority
JP
Japan
Prior art keywords
memory
protection
area
processor
integrated circuit
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.)
Granted
Application number
JP2015519342A
Other languages
English (en)
Other versions
JP2015525916A5 (ja
JP6306578B2 (ja
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.)
Nordic Semiconductor ASA
Original Assignee
Nordic Semiconductor ASA
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 Nordic Semiconductor ASA filed Critical Nordic Semiconductor ASA
Publication of JP2015525916A publication Critical patent/JP2015525916A/ja
Publication of JP2015525916A5 publication Critical patent/JP2015525916A5/ja
Application granted granted Critical
Publication of JP6306578B2 publication Critical patent/JP6306578B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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]
    • 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
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】。【解決手段】プロセッサと、実行可能コードを格納するためのメモリと、メモリ保護論理回路と、を含む集積回路装置である。メモリ保護論理回路は、メモリの保護領域に対する読出保護フラグの状態を判定し、プロセッサによってメモリ読出要求を検出し、メモリ読出要求が、メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、メモリの保護領域に格納されているコードをプロセッサが実行している間に、プロセッサがメモリ読出要求を発行したかどうかを判定し、一つ以上のアクセス条件を一つも満たさないとき前記保護領域に対する前記読出保護フラグが設定されていれば、保護領域のアドレスに対する、読出要求を拒否し、複数のアクセス条件の少なくとも一つは、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行する。【選択図】図1

Description

本発明は、集積回路のメモリ保護に関する。
マイクロ・コントローラあるいはシステム・オン・チップ装置は、一般的には、メモリに実行可能コードを格納する。この装置は、メモリ内に、チップ製造者により記述されたコード(例えば、オペレーティング・システム、または、ファーム・ウェア)や、顧客・ユーザによって書かれたコード(例えば、ソフトウェア・アプリケーション)が格納しているであろう。
これらのコードは、EEPROMやフラッシュ・メモリのような不揮発メモリに格納される。
ユーザ・コード、あるいは、外部・デバッギング・インターフェースが、チップ製造者によって書かれたコードに対するメモリ・アクセスを制限することなく、チップ製造者によって書かれたコードを読み出し、あるいは、上書きできないようにすることが望まれるであろう。
この理由は、チップ製造者によって記述されたコードには、他者にはアクセスされたくない営業秘密が含まれているからであろう。
これはまた、ユーザ・コードのバグによって、チップ製造者のコードの不用意な破壊を防止するのを手伝う。
米国特許8051263号は、特定のメモリ領域に対する一群の設定可能なメモリ保護属性に従って、選択的にメモリ・アクセスに対する要求を承諾または拒否する、メモリ・保護ユニットが記載されている。その領域に対するアクセスは、特権モードまたは非特権モードの何れで実行ユニットが処理を行うのかに依存している。
そのような機構は、ユーザ・コードが非特権モードで実行されているならば、ユーザ・コードによる読込で損傷を受けやすいコードを含むメモリ領域を保護するために使用することができる。
しかし、処理が特権モードで実行されている場合、悪意のある攻撃者が、プロセッサにメモリから損傷を受けやすいコードを読み込ませ、それにより攻撃者に内容を出力させてしまうことが可能かもしれない。
さらに、全てのプロセッサが、実行の特権モード及び非特権モードをサポートしている訳ではない。
それ故に、本願発明では、上記の方法とは異なったアプローチを取る。
第1の構成として、本願発明は、プロセッサと実行可能コードを格納するためのメモリとメモリ保護論理回路とを含む集積回路装置であって、前記メモリ保護論理回路は、前記メモリの保護領域に対する読出保護フラグの状態を判定し、前記プロセッサによってメモリ読出要求を検出し、前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、一つ以上のアクセス条件を一つも満たさないとき前記保護領域に対する前記読出保護フラグが設定されている場合、前記保護領域のアドレスに対する、読出要求を拒否し、前記複数のアクセス条件の少なくとも一つは、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したことであることを特徴とする集積回路装置である。
第2の構成として、本願発明は、プロセッサと、実行可能コードを格納するためのメモリと、メモリ保護論理回路と、を含む集積回路装置のメモリ・アクセスを制御する方法であって、前記方法は、前記メモリの保護領域に対する読出保護フラグの状態を判定し、前記プロセッサによってメモリ読出要求を検出し、前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、一つ以上のアクセス条件を一つも満たさないとき前記保護領域に対する前記読出保護フラグが設定されている場合、前記保護領域のアドレスに対する、読出要求を拒否し、前記複数のアクセス条件の少なくとも一つは、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したことであることを特徴とするメモリ・アクセス方法である。
さらなる構成として、本願発明は、プロセッサと、実行可能コードを格納するためのメモリと、メモリ保護論理回路と、を含む集積回路装置のメモリ・アクセスを制御する方法であって、前記方法は、前記メモリの保護領域に対する読出保護フラグが設定されていることを判定し、前記プロセッサによってメモリ読出要求を検出し、前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、前記読出要求を許可することを特徴とするメモリ・アクセス方法である。
従って、当業者には、以下ことが分かるであろう。すなわち、本発明に従えば、メモリ保護領域に対する読込アクセスをプロセッサが要求したとき、要求を許可できるかどうか判定するために、このプロセッサにより実行されているコードのロケーションが利用できる。
保護領域外に格納されたコードから発せられた要求は、保護領域内に格納されたコードから発せられた要求が許可された場合でも、(読込保護フラグが、適切に設定されているならば)拒否することができる。
ARM(登録商標)のような、多くのプロセッサ・アーキテクチャに対して、コードが自身が格納されている領域に対するデータ読込要求を発行できることは重要なことであって、その結果プロセッサはコードに組み込まれている定数にアクセスできる。
メモリ保護はメモリ保護論理回路によって実施される。この回路は、プロセッサと独立して機能するように構成されることが好ましい。メモリ保護論理回路は、プロセッサと別体のハードウェア論理回路を含むことが好ましい。ハードウェア論理回路は、プロセッサ内に備わった特権モードによる依存する保護よりも、悪意のソフトウェア・コードによる迂回に対して影響されにくい。
チップ製造者は、チップ製造者自身のコードに対する無制限なメモリ・アクセスを維持しつつ、顧客のコードがチップ製造者のコードの読込を妨げるために、読込保護フラグを設定して、保護された領域にチップ製造者のコードを簡便に格納できる。
設定データのような、他の影響を受けやすい情報も、保護された領域に格納できる。
メモリ保護論理回路は、保護領域に対する読出保護フラグが設定されていないならば、保護領域のアドレスに対する読出要求を許可することが好ましい。この機能は、当該装置及びソフトウェアの初期開発期間において有用であろう。
同様に、メモリ保護論理回路は、書込保護フラグが設定されていない場合、保護領域のアドレスに対する書込要求を許可することが好ましい。
メモリ保護論理回路は、メモリの保護領域に格納されているコードをプロセッサが実行している間に、プロセッサがメモリ読出要求を発行しない場合(メモリ読出要求が発行されたなら、この場合は許可される)、保護領域に対する読出保護フラグが設定されているならば、保護領域のアドレスに対する読出要求を拒否することが好ましい。このような好ましい実施形態は、前述の唯一つのアクセス条件を満たす。
しかし、他の実施形態においては、それでもなお、複数のアクセス条件を備え、その何れも実際上保護フラグを覆すことができる。例えば、もし、ROMに格納されている製造者の作成したブート・ローダー・プログラムをプロセッサが実行している間に、プロセッサが読込要求を発行したら、保護領域への読込を許可する場合があるかもしれない。
メモリ保護論理回路は、同様にして、保護領域に対する書込保護フラグの状態を判定し、メモリの保護領域に格納されているコードをプロセッサが実行している間に、プロセッサがメモリ書込要求を発行しないとき保護領域に対する書込保護フラグが設定されている場合、保護領域のアドレスに対する書込要求を拒否することができる。
この場合、読出保護フラグを書込保護フラグとして機能させることもできるし、別々のフラグとすることもできる。
一組の好ましい実施形態の中には、上記のメモリを、フラッシュ・メモリのような不揮発メモリとしたものがある。
コードを実行するには、コード実行用の不揮発メモリから直接コードをフェッチ、あるいは、実施形態によっては、キャッシュできる(すなわち、揮発メモリに格納する)。
もし、当該装置がキャッシュのようなメモリを含むなら、保護領域に格納されている実行可能コードに対する当該記述は、そのような実行可能コードのキャッシュされたコピーに対しても及ぶものである。
他の実施形態において、メモリは、実行可能コードを保存しているRAMの一部のような揮発メモリであってもよく、保護領域が揮発メモリの領域であってもよい。
装置に電源が入ったとき、実行可能コードは、そのような揮発メモリにコピーされる。あるいは、装置を使っているときに、必要に応じて、コード・セクション、あるいは、個々の命令を(例えば、ROMまたはフラッシュから)揮発メモリの保護領域にコピーしてもよい。
プロセッサとメモリは、一つ以上のバスによって接続されている。メモリ保護論理回路も、少なくとも一つ以上のバスに接続している。
メモリ保護論理回路が、メモリに対する全てのアクセス(例えば、全ての読込、書込、命令フェッチ)をモニタする。
メモリ保護論理回路は、メモリ・アクセス要求の直前の命令フェッチ処理のアドレスが保護領域内のものであるかどうかを判定することで、メモリの保護領域に格納されている実行可能コードをプロセッサが実行している間に、プロセッサがメモリ読出要求を発行したかどうかを判定する。
また、フェッチされた命令のアドレスが保護領域にあるか否かに従って、命令フェッチ処理ごとに、レジスタを設定できる。
レジスタは、命令フェッチのアドレスが保護領域にあるか否かに従って設定される二値フラグを含むことができる。
メモリ保護論理回路は、命令フェッチ処理を特定する(例えば、読込要求と区別する)ため、メモリ・バス上の処理型情報を使うことができる。あるいは、プロセッサ・ピンの状態を判定すること、または、フェッチ命令を運ぶバスを特定すること(例えば、当該装置において、データをフェッチするバスと命令をフェッチするバスが分離すること)で、命令フェッチ処理を特定できる。
ARM(登録商標)から提供される Cortex(登録商標)-M0 プロセッサを使う場合、データ・アクセスとオペコード・フェッチを区別するために、メモリ保護論理回路は、Cortex(登録商標)-M0からのHPROT[0](データ/オペコード)信号を使用できる。
保護領域は、複数個の個別の領域(あるいはアドレス範囲)を含んでもよい。しかし、論理回路の実現が容易な、単一の連続したアドレス範囲で定義することが好ましい。
好ましい実施形態では、保護領域は、変更可能で、装置に格納されている一つ以上のアドレスによって定義される。例えば、不揮発メモリ上の設定データとして格納されている。
保護領域は、予め設定された定数アドレスと、メモリ領域内の変更可能なアドレスとの間に展開できる。定数アドレスは、メモリに対する、あるいは、当該装置のメモリ空間全体に対する、始端または終端にすれば便利である(例えば、ゼロ:0x00000000)。
従って、メモリ空間内の保護領域の変更可能な終端アドレスを定義すれば、保護領域は当該装置に格納された一つの値によって簡単に特定できる。
メモリ保護ユニットは、読出要求のアドレスが、予め設定された定数アドレスとメモリ領域内の変更可能なアドレスの間にあるかどうかを判定することによって、読出要求が、保護領域のアドレスに対するものであるか否かを判定する。
この処理は、比較的少ない論理ゲートを使うことで実装できる。
前述のメモリの保護領域が不揮発メモリ内にある実施形態において、当該装置がRAMのような揮発メモリを含んでもよい。
さらに、このメモリ保護論理回路は、不揮発メモリの保護領域に格納されているコードをプロセッサが実行している間に、プロセッサがメモリ読出要求を発行しない場合、揮発メモリの保護領域に対する読出保護フラグが設定されているならば、保護領域のアドレスに対する読出要求を拒否するように構成できる。
このようにすれば、不揮発メモリの保護領域(例えばヒープ領域)に格納されたコードによって、保護されたRAM領域が使用できる。一方で、保護領域外に格納されたコードによる読込アクセスからは保護される。
この方法は、チップ製造業者により書かれたコードがRAM上に格納されているような傷付く恐れのある情報を保護できる。
同様にして、さらに、このメモリ保護論理回路は、不揮発メモリの保護領域に格納されているコードをプロセッサが実行している間に、プロセッサがメモリ書込要求を発行しないとき揮発メモリの保護領域に対する書込保護フラグが設定されている場合、保護領域のアドレスに対する読出要求を拒否できる。
このようにすれば、保護領域の外側に格納された顧客コードが、不揮発メモリの保護領域にあるコードに属する揮発データが、不注意あるいは故意に、書き換えあるいは上書きされることを防ぐことができる。
不揮発メモリ保護フラグは、揮発メモリ保護フラグとして機能させることもできるし、揮発メモリフラグを一つ以上の別のフラグとすることもできる。
上述の実施形態の何れにおいても、当該装置は外部デバッガまたはソフトウェア・ローダによるメモリ・アクセスを許可するためのインターフェース(例えば、一つ以上のピン)を含むように構成できる。
本願発明の好ましい実施形態は、メモリ保護論理回路は、当該領域に対してデバッギング保護フラグが設定されている場合、揮発または不揮発メモリの全てまたは幾つかの保護領域のアドレスに対する、インターフェースを介して受信した複数の読出要求を拒否するようにしてよい。
同様に、上記保護は、保護領域からの命令フェッチに対する保護、揮発あるいは不揮発メモリの保護領域への書込アクセスに対する保護、の一方あるいは両方を提供できる。
メモリ保護論理回路は、デバッガが当該装置のメモリ・バスのためのバス・マスタとして機能する場合を判定することで、メモリ・アクセス要求がデバッギング・インターフェース由来のものであることを特定できる。
プロセッサがARM(登録商標)のCortex(登録商標)-M0である場合、プロセッサはCortex(登録商標)-M0からのHMASTER信号を使用して、プロセッサ・コアとデバッガ処理とを区別できる。
さらに、メモリ保護論理回路は、実行可能コード用のメモリのユーザ領域に対する読込保護フラグの状態を判定するように構成できる。
このユーザ領域は、アドレス空間の保護コード領域に隣接し、しかも当該保護コード領域を除いた、メモリの一部または全てを含む。
メモリ保護論理回路は、ユーザ領域に対する読込保護フラグが設定されているならば、デバッギング・インターフェースから受信したユーザ領域のアドレスに対する読込要求・書込要求の一方または両方を拒否するように構成できる。
このようにすれば、顧客または他のユーザは、例えば、機密保持の理由により、第三者による権限のないアクセスから、自身のユーザ・アプリケーション・コードを保護できる。
ある実施形態では、当該装置は、無線送信機・無線受信機の双方または一方(すなわち、オンチップ無線機)のような、集積された無線通信論理回路を含む。
無線プロトコル・スタックを実装したコードを含むファーム・ウェア・モジュールは、コード・メモリの保護領域に格納できる。
このファーム・ウェア・モジュールとインターフェースで接続しているソフトウェア・アプリケーションは、保護領域以外に格納できる。
本願発明の実施形態は、伝統的なオペレーティング・システムを持たずに、ユーザが直接プロセッサ上で実行できるネイティブコードを開発できる装置に、特に適している。
これはなぜなら、そのような装置は、装置製造者が当該装置に実装した機密ライブラリまたはモジュールを保護し、メモリ・アクセスを制御するオペレーティング・システムに依存させることができないからである。
本願発明の何れの実施形態でも、読込保護フラグ・書込保護フラグの双方または一方は、不揮発メモリに格納されることが好ましい。
使用に際して、勿論、フラグをレジスタやRAMにキャッシュしてもよい。
保護フラグは条件設定の大きな一群の一つの要素に過ぎない。これは、適当な方法で暗号化されてもよい。そのような保護フラグは、二値フラグまたはビットフィールドとして格納される。
一つ以上の保護フラグは、不揮発メモリの保護設定領域に格納される。
当該装置は、保護設定領域の何れかの部分が消去状態でない場合は、当該部分への書き込みを防ぐように構成された不揮発メモリ制御論理回路を、含むことが好ましい。
さらに、この不揮発メモリ制御論理回路は、不揮発メモリの保護領域が消去状態にあるときに限って、保護設定領域が消去されることを許可することが好ましい。
このようにすれば、不揮発メモリの保護領域に格納されている全てのデータを先ず消去しなければ、保護フラグは再設定できない。
保護領域に格納されている損傷を受けやすい実行可能コードは、常に不揮発メモリの読出保護フラグを再設定することによって、読み出すことができない。
このアイデアは、まぎれもなく新規性と進歩性がある。
他の構成として、本願発明は、プロセッサと、不揮発メモリと、不揮発メモリ制御論理回路と、メモリ保護論理回路と、を含む集積回路装置であって、メモリ保護論理回路は、不揮発メモリの保護設定領域に格納された保護設定データに依存して、不揮発メモリの保護可能領域に対するアクセスを制御し、不揮発メモリ制御論理回路は、保護設定領域の何れかが消去状態でない場合、不揮発メモリ制御論理回路が書込を防ぎ、保護可能領域が消去状態である場合に限って、保護設定領域を消去することを許可する。
別の構成として、本願発明は、プロセッサと、不揮発メモリと、を含む集積回路装置上でメモリ・アクセスを制御する方法であって、不揮発メモリの保護設定領域に格納された保護設定データに依存して、不揮発メモリの保護可能領域に対するアクセスを制御し、保護設定領域の何れかが消去状態でない場合は書込を防ぎ、保護可能領域が消去状態である場合に場合、保護設定領域を消去することを許可するメモリ・アクセスの制御方法である。
始めに示した構成の特徴や実施形態は、適当な場合には、上記構成による実施形態の付加的特徴にできる。
特に、保護可能領域は、前述のように、不揮発メモリの保護領域にできるし、保護設定データは、前述のように、一つ以上の保護フラグを含ませることができる。
不揮発メモリ制御論理回路はプロセッサとは独立に処理されることが好ましい。また、不揮発メモリ制御論理回路と保護論理回路の一方または双方がプロセッサとは別体の論理回路を含むことが好ましい。
米国特許公報6952778号は、規則群に従って、組込メモリのメモリ・ブロックに対する読出保護、書込保護の双方または一方を提供するマイクロ・コントローラを述べている。
これらの規則群は、複数のメモリ・ブロックに対して、各々にセキュリティ・レベルを割り当てており、監視不揮発メモリに格納されている。
一旦、最初に、エンド・ユーザの要求に適合するようにプログラミングされれば、監視不揮発メモリが消去され、マイクロ・コントローラが再初期化されない場合、各ブロックに対するセキュリティ・レベルは増加させることだけできる。
その結果として、ユーザがデフォルトで設定したセキュリティ・レベルが復活する。
しかし、そのような方法は、メモリ・ブロックを適切に保護するために、デフォルトのセキュリティ・レベルの再設定が成功するかどうかに依る。
もし、マイクロ・コントローラを再初期化するプロセスに攻撃者が攻撃できるならば、メモリの内容は、攻撃者によって、保護されず読出可能のままにされるであろう。
本願発明の好ましい実施形態では、これに対して、専用の不揮発メモリ制御論理回路と、全ての損傷を受けやすい情報を当該装置から最初に消去した場合、保護設定データを再設定できる。
不揮発メモリ制御論理回路によって提供される保護設定領域を消去する唯一の機構が、保護領域と保護設定領域の双方を消去する命令であるように、不揮発メモリ制御論理回路は構成できる。これは、当該装置の全ての不揮発メモリを消去できる命令である。
もし、保護設定領域と保護可能領域とが、異なる複数のページまたはメモリの消去可能ブロックを含むならば、保護設定領域の一部を形成するブロックあるいは何れかのページを消去する前に、全てのページあるいは保護可能領域を形成するブロックを、不揮発メモリ制御論理回路が消去する。
このようにすれば、消去処理が完了前に中断しても、保護可能領域の全ての消去が完了していなければ、保護設定データは存在する。従って、保護の提供は継続する。
保護設定領域が消去状態であるとき、保護可能領域に対するアクセスが、指定された一群の制限レベルが最高値のときに実行されるように、メモリ保護論理回路を構成できる。
これにより、例えばユーザが消去後に新しい設定データの設定を省略した場合などに、デフォルトで保護可能領域に対するアクセスを制限することで、付加的なセキュリティを提供できる。
消去状態のときに、保護設定領域に対する書込を許可することによって、製造中または試運転中や、当該装置の後の再プログラミングに際しても、保護設定情報を設定できる。
不揮発メモリ制御論理回路は、保護設定領域の部分に対する書込命令を受信し、これに応答して、書込を許可する前に、当該領域が消去された状態であることを検査することが好ましい。
不揮発メモリ型の自然消去状態にあることを判定し、当該部分を読み込むことにより、これを実行できる。
例えば、フラッシュ・メモリが、ページ消去後、全ビットを「1」にする。その結果、メモリ制御論理回路が、書込処理前に、当該領域の全ビットが「1」となっていることを検査できる。
別のメモリタイプなら、勿論「0」を読み込むこともできる。あるいは、別の自然消去状態を持つこともできる。
他の方法としては、不揮発メモリの領域が次のような消去状態フラグを含むこともできる。この消去状態フラグは、当該領域が消去されたときリセットされる。しかし、最初の書込処理が当該領域に実行されたとき不揮発メモリ制御論理回路によって設定される。
この場合、不揮発メモリ制御論理回路は、保護設定領域の一部に対して書込処理を許可する前に、一つ以上の消去状態フラグを検査する。
上述のように、不揮発メモリの保護可能領域を定義する値と、揮発メモリの保護領域を定義する値との、双方あるいは一方の値がメモリ保護設定領域で格納されている。
このようにすれば、最初に内容を破壊しなければ、保護領域の定義を変更できない。
ここで述べられた構成例または実施形態の付加的または好ましい特徴は、その適用が妥当なら、他の構成例や実施形態にも適用できる。
本願発明の好ましい実施形態を以下に示す。しかし、これは例示目的でのみ示されるものであり、添付の図面を参照して述べる。
本発明の実施形態のマイクロ・コントローラの構成図である。 本発明の実施形態のマイクロ・コントローラ・アーキテクチャ内の主要なソフトウェア・構成要素を示した構成図である。 本発明の実施形態のマイクロ・コントローラにおけるメモリ・マップである。
本発明の好ましい実施形態の一つを、単に例として、添付の図に関連して示す。
図1に、マイクロ・コントローラ集積回路1、または、1チップ・無線機を示す。
これは、クロック論理回路3(レジスタ・キャパシタ発振器を含むか、外付クリスタル発振子から入力を受信するかの、双方または一方)、電源管理回路5、プロセッサ7(例えば、ARM(登録商標)Cortex(登録商標)-M0)、メモリ保護ユニット9、RAM11、フラッシュ・メモリ・コントローラ20、フラッシュ・メモリ13、無線通信論理回路17、一つ以上の周辺回路15、及び、入出力回路19を含む。
これらの構成要素は、適当な配線やバス(図示せず)の双方または一方と内部接続している。マイクロ・コントローラ1は、ハーバード・アーキテクチャ、または、ノイマン型アーキテクチャを使うことができる。メモリ保護ユニット9は、プロセッサ7からRAM11とフラッシュ・メモリ・コントローラ20とに対する全てのメモリ・アクセス命令を阻止できるように構成されている。
マイクロ・コントローラ1は、フラッシュ・メモリ13にデータをロードするために、プロセッサ7をデバッグするために使用されるデバッギング・インターフェース18も、持つことができる。
これは、RAM11やフラッシュ13に対して、直接アクセスするのではなく、メモリ保護ユニット9やフラッシュ・メモリ・コントローラ20を介して当該メモリにアクセスしなければならない。
使用の際には、マイクロ・コントローラ1は、電源装置、無線アンテナ、水晶発振子、センサ、出力装置等、多数の外部機器に接続できる。
図2は、マイクロ・コントローラ1上に実装された、ソフトウェア構成要素を示す。
マイクロ・コントローラ1・ハードウェアとのインターフェースは、ARM(登録商標)Cortex マイクロ・コントローラ・ソフトウェア・インターフェースのような、選択的なハードウェア抽象化層である。
この上に、ファーム・ウェア・モジュール23と、各々独立したソフトウェア・アプリケーション27が配置されている。
ファーム・ウェア・モジュール23は、多数の組込ソフトウェア・ブロックを含む二値アプリケーションである。無線プロトコル・ブロック31は一つ以上のワイヤレス・プロトコル・スタックに実装される。無線イベント・マネージャは、無線通信論理回路17のためのアクセス・スケジューリングと、イベント多重化とを提供する。
ライブラリ35は、乱数生成、割込や優先権の設定処理、電源管理(例えば、周辺回路の有効化、無効化)、暗号化モジュール等々の各種関数と、共有ハードウェア・リソース管理機構とを提供する。
ファーム・ウェア・マネージャ37は、ファーム・ウェア・モジュールの有効化と無効化を行う機能をサポートし、無線プロトコル・スタックの有効化と無効化を行う。
ファーム・ウェア・モジュール23には、マルチ・スレッド機能やメモリ割当機能等を提供する必要がないため、オペレーティング・システムの全機能は必ずしも必要ない。
ファーム・ウェア・モジュール23のアプリケーション・インターフェース(API)29は、ソフトウェア・アプリケーション27が、ファーム・ウェア・モジュール23の各関数を呼び出すことを可能にする。これは専らシステム・コールを用いて実装される。
ARM(登録商標)プロセッサを使用する場合、各API関数プロトタイプは、それと関連付けられたスーパーバイザ・コール(SVC)の番号によって、ファーム・ウェア関数にマップされる(対応付けられる)。このマッピング(対応関係)は、ソフトウェア・アプリケーション27の開発者に提供され、開発者はそのAPI関数を正確に呼び出すことができる。
ファーム・ウェア・モジュール23は、ソフトウェアを中断して、複数のイベントを、ソフトウェア・アプリケーション27に伝達できる。イベントの内容は、ソフトウェア・アプリケーション27に読み込まれるまで、バッファに格納される。
当該読込は、APIコール(例えば、event_get())を介して実行される。
図3には、RAM11とフラッシュ13が、ファーム・ウェア23とソフトウェア・アプリケーション27の間で、どのように共有されるかを示す。
フラッシュ13は、ゼロ(0x0000 0000)から、実行可能コードが格納されているSizeOfProgMemまで割り当てられている。
それ自身のフラッシュ・ページ上に存在する、フラッシュ13の別の領域は、MemConfigStartから、MemConfigENDまで展開し、メモリ保護ユニット9により使用するための設定データを格納するために使用される。
ある一群の実施形態では、このページは0x1000 0000から0x1000 07ffに展開している。しかし、ここで述べた全てのアドレスと同様に、これらの値は与えられた実施形態において使用されるプロセッサのアーキテクチャに依存する。
RAM11は、0x2000 0000から0x2000 0000+SizeOfRAMまでのアドレスが割り当てられている。
フラッシュ13のプログラム領域は、アドレスCLENR0(領域0のコード長)の両側で区分される二つの領域を含む。
ゼロからCLENR0の間の領域0は、ファーム・ウェア23がロードされる。
ファーム・ウェア割込ベクタ・テーブルが、アドレス・ゼロに格納される。
領域0の上にCLENR0からSizeOfProgMemの間の範囲にわたり、展開している領域1は、ソフトウェア・アプリケーション27がロードされる。
アドレスCLENR0に割込ベクタ・テーブルを持つことも可能である。
RAM11は、同様に、ベース・アドレス0x2000 0000からRLENR0までの領域 0と、RLENR0から領域0の上側に展開している領域1を持つ。
RAM領域0が、ファーム・ウェア・モジュール23のヒープ領域を提供する一方で、RAM領域1が、ソフトウェア・アプリケーション27のヒープ領域を提供する。コール・スタックは、ファーム・ウェア・モジュール23と、ソフトウェア・アプリケーション27との間で共有され、0x2000 0000+SizeOfRAM から下に成長する。
コール・スタックに対して割当られるメモリは、ファーム・ウェア・モジュール23とソフトウェア・アプリケーション27に必要な量より十分に大きくなければならない。
CLENR0とRLENR0の値はフラッシュ・メモリ13のメモリ保護設定領域に格納される。
電源を入れたときに、フラッシュ・メモリ13のメモリ保護設定領域に格納されている関連データは、メモリ保護論理9に対してアクセス可能な複数のメモリ保護設定レジスタに、コピーされる。
これらのレジスタは、これらのレジスタの内容を変更することだけで、フラッシュ13のメモリ保護設定領域のデータを変更できるように、マイクロ・コントローラ1の電源が入っている間に限って実行されるハードウェア状態マシンからのみ書込可能である。
メモリ保護論理9は、プロセッサ7からフラッシュ13とRAM11へのメモリ・アクセス要求(例えば、データ・フェッチまたは命令フェッチ処理)を妨げることができる。
これは、メモリ・バス上の「処理タイプ」から命令フェッチ処理を同定する。
プロセッサ7がフラッシュ・メモリから行う命令フェッチ毎に、メモリ保護論理9は、フェッチされた命令のアドレスがCLENR0より小さければ「1」を、CLENR0より大きいか等しければ「0」を入れて、1ビットフラグを更新する。
全てのデータ・アクセス要求ごとに、メモリ保護論理回路9は、「ファーム・ウェア領域」レジスタの値を検査することによって、アクセス要求源がファーム・ウェア・モジュール23か、他の場所からのものかを判定する。
アクティブ・メモリ・バス・マスタを特定することによって、そのアクセス要求源が、デバッガ・インターフェースか、ダイレクト・メモリ・アクセス(DMA)ユニットかを検出できる。
これは、「ファーム・ウェア領域」レジスタの状態とバス・マスタの特定に基づいて、アクセス要求を許可するか拒否するかを判定するメモリ保護設定レジスタにアクセスすることもできる。
ある好ましい実施形態では、ソフトウェア・アプリケーション27は、フラッシュ領域 0とRAM領域0に対する読込アクセスと書込アクセスが拒否される。
これにより、ファーム・ウェア・モジュール23に対する秘密性を保護し、ファーム・ウェア・モジュール23に対して割り当てられたメモリ・ロケーションに対する、ソフトウェア・アプリケーション27による不注意なあるいは悪意のある書き込みを防ぐことができる。従って、安全性と頑強性を向上できる。
ソフトウェア・アプリケーション・フラッシュ領域1は、例えば外部デバッグ・インターフェース18を介して、リード・バックに対して保護するなど、読込アクセスされないように保護することもできる。
図4は、権限のないアクセスからフラッシュ・メモリ13の保護するために、マイクロ・コントローラ1に実装された決定表を示す。
他の実装であっても勿論可能である。
二つの二値フラグが、フラッシュ・メモリ13のメモリ保護設定領域に格納(さらに、ブート時にレジスタにコピー)される。
第一のフラグが設定時されたときは、デバッギング・インターフェース18介した、プログラム・フラッシュの全てに対するデータ読込・書込アクセスが妨げられる。
第二のフラグが設定時されたときは、領域0から実行されたコード以外のコードによる、フラッシュ・メモリの領域0自身に対するデータ読込・書込アクセスが妨げられる。
プロセッサ7による実行アクセス(すなわち、命令フェッチ)は、データ読込アクセスが拒絶されたときでも、未だ許可される。
もしも、攻撃者がフラッシュ・メモリ13のメモリ保護設定領域に格納されているデータを変更できるとするならば、保護機構がバイパスされるであろう。
しかし、フラッシュ・メモリ・コントローラ20は、消去状態でない場合、メモリ保護設定領域に対する書込を妨げる。
さらに、フラッシュ・メモリ・コントローラ20は、フラッシュ・メモリの領域0と領域1が最初に消去されていない場合、メモリ保護設定領域の消去が妨げられる。
これは、これらの条件を実行する有限状態マシンを実装するデジタル論理回路を使う。
フラッシュ・メモリ・コントローラ20が、メモリ保護設定領域のアドレスに対する1ワードのデータを書き込む命令を受信したなら、フラッシュ・メモリ・コントローラ20は、当該アドレスに存在する内容を読み出し、メモリ保護設定領域フラッシュ・メモリの消去以降、当該アドレスに書き込みされていないことを示している、内容が全て「1」である場合にのみ、書き込みを許可する。
検査できない場合、書込は拒絶され、プロセッサ7から例外処理が起動される。
フラッシュ・メモリ・コントローラ20がフラッシュ・メモリ13全体を消去する命令を受信したなら、メモリ保護設定領域を消去する前に、最初にフラッシュ領域 0と領域 1の内容を消去することによって応答する。
このような理由から、メモリ保護設定は、それ自身が消去可能なフラッシュ・ページに格納され、フラッシュ・メモリ13の何れのプログラム領域からも分離されることが好ましい。
フラッシュ・メモリ・コントローラ20は、メモリ保護設定領域を消去する何れかの命令を拒絶する。
当業者なら、マイクロ・コントローラ1が、フラッシュ・メモリ13の領域 0以外で実行されるコードが、無線通信論理回路17の低レベル関数と関係するレジスタ、電源制御論理回路5、ダイレクト・メモリ・コントローラ(DMA),複数の割込レジスタ、のような重要な特徴にアクセスすることを妨げるように構成できることは、理解されるであろう。

Claims (29)

  1. プロセッサと、実行可能コードを格納するためのメモリと、メモリ保護論理回路と、を含む集積回路装置であって、
    前記メモリ保護論理回路は、
    前記メモリの保護領域に対する読出保護フラグの状態を判定し、
    前記プロセッサによるメモリ読出要求を検出し、
    前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、
    一つ以上のアクセス条件を一つも満たさないとき前記保護領域に対する前記読出保護フラグが設定されている場合、前記保護領域のアドレスに対する読出要求を拒否し、
    前記アクセス条件の少なくとも一つは、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行する
    ことを特徴とする集積回路装置。
  2. 前記メモリ保護論理回路は、前記プロセッサとは別体のハードウェア論理回路を含む
    請求項1に記載の集積回路装置。
  3. 前記メモリ保護論理回路は、前記保護領域に対する前記読出保護フラグが設定されていないならば、前記保護領域のアドレスに対する読出要求を許可する
    請求項1または2に記載の集積回路装置。
  4. 前記メモリ保護論理回路は、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行しないとき前記保護領域に対する前記読出保護フラグが設定されている場合、前記保護領域のアドレスに対する読出要求を拒否する
    請求項1〜3の何れか一項に記載の集積回路装置。
  5. 前記メモリ保護論理回路は、
    前記保護領域に対する書込保護フラグの状態をさらに判定し、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ書込要求を発行しないとき前記保護領域に対する前記書込保護フラグが設定されている場合、前記保護領域のアドレスに対する書込要求を拒否する
    請求項1〜4の何れか一項に記載の集積回路装置。
  6. 前記メモリが不揮発メモリである
    請求項1〜5の何れか一項に記載の集積回路装置。
  7. 前記メモリ保護論理回路が、前記メモリに対する全てのアクセスをモニタする
    請求項1〜6の何れか一項に記載の集積回路装置。
  8. 前記メモリ保護論理回路が、
    前記フェッチされた命令が前記保護領域にあるか否かに対応して、命令フェッチ処理ごとに、レジスタを設定する
    請求項1〜7の何れか一項に記載の集積回路装置。
  9. 前記メモリ保護論理回路が、
    前記メモリ・アクセス要求の直前の命令フェッチ処理のアドレスが、前記保護領域内のものであるかどうかを判定することで、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定する、
    請求項1〜8の何れか一項に記載の集積回路装置。
  10. 前記メモリ保護論理回路は、
    変更可能であり、前記集積回路装置に格納されている一つ以上のアドレスによって定義される
    請求項1〜9の何れか一項に記載の集積回路装置。
  11. 前記メモリの前記保護領域が、
    予め設定された定数アドレスと、前記メモリのアドレス領域内で指定される変更可能なポイントと、の間に及び、
    前記メモリ保護ユニットは、
    前記読出要求のアドレスが、予め設定された定数アドレスと、前記メモリのアドレス領域内で指定される変更可能な前記ポイントと、の間にあるかどうかを決定することによって、
    前記読出要求が、前記保護領域のアドレスに対するものであるか否かを判定する
    請求項1〜10の何れか一項に記載の集積回路装置。
  12. 実行可能コードを格納するための前記メモリが不揮発メモリで、
    前記装置は、さらに、揮発メモリを含み、
    前記メモリ保護論理回路が、さらに、
    前記不揮発メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行しないとき前記揮発メモリの前記保護領域に対する前記読出保護フラグが設定されている場合、
    前記保護領域のアドレスに対する読出要求を拒否する
    請求項1〜11の何れか一項に記載の集積回路装置。
  13. 外部デバッガあるいはソフトウェア・ローダによるメモリ・アクセスを許可するためのインターフェースを、さらに含み、
    前記メモリ保護論理回路は、
    前記領域に対するデバッギング保護フラグが設定されているならば、
    揮発メモリまたは不揮発メモリの何れか一つ以上の保護領域のアドレスに対して、前記インターフェースを介して受信した複数の読出要求を拒否する、
    請求項1〜12の何れか一項に記載の集積回路装置。
  14. 前記装置が、集積された無線通信論理回路を含み、
    無線プロトコル・スタックを実装したコードを含むファーム・ウェア・モジュールが、コード・メモリの保護領域に格納され、
    前記ファーム・ウェア・モジュールとインターフェースしているソフトウェア・アプリケーションが、前記保護領域の外側の前記メモリに、選択的に格納されている
    請求項1〜13の何れか一項に記載の集積回路装置。
  15. 不揮発メモリを含み、前記不揮発メモリの保護設定領域の前記保護フラグを格納した集積回路装置であって、
    当該領域が消去状態でない場合、不揮発メモリ制御論理回路が、前記保護設定領域の何れかの領域に対する書込を防ぐ
    請求項1〜14の何れか一項に記載の集積回路装置。
  16. 前記不揮発メモリ制御論理回路は、さらに、
    前記不揮発メモリの保護領域が消去状態にあるときに限って、
    前記保護設定領域が消去されることを許可する
    請求項1〜15の何れか一項に記載の集積回路装置。
  17. プロセッサと、実行可能コードを格納するためのメモリと、メモリ保護論理回路と、を含む集積回路装置のメモリ・アクセスを制御する方法であって、
    前記方法は、
    前記メモリの保護領域に対する読出保護フラグの状態を判定し、
    前記プロセッサによってメモリ読出要求を検出し、
    前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、
    一つ以上のアクセス条件を一つも満たさないとき前記保護領域に対する前記読出保護フラグが設定されていれば、前記保護領域のアドレスに対する読出要求を拒否し、
    前記複数のアクセス条件の少なくとも一つは、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したことである
    ことを特徴とするメモリ・アクセス方法。
  18. プロセッサと、実行可能コードを格納するためのメモリと、メモリ保護論理回路と、を含む集積回路装置のメモリ・アクセスを制御する方法であって、
    前記方法は、
    前記メモリの保護領域に対する読出保護フラグが設定されていることを判定し、
    前記プロセッサによってメモリ読出要求を検出し、
    前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、
    前記読出要求を許可する
    ことを特徴とするメモリ・アクセス方法。
  19. プロセッサと、不揮発メモリと、不揮発メモリ制御論理回路と、メモリ保護論理回路と、を含む集積回路装置であって、
    前記メモリ保護論理回路は、
    前記不揮発メモリの保護設定領域に格納された保護設定データに依存して、前記不揮発メモリの保護可能領域に対するアクセスを制御し、
    前記不揮発メモリ制御論理回路は、
    前記保護設定領域の何れかが消去状態でないとき、前記不揮発メモリ制御論理回路が書込を防ぎ、
    前記保護可能領域が消去状態であるときに限って、前記保護設定領域を消去することを許可する
    ことを特徴とする集積回路装置。
  20. 前記不揮発メモリ制御論理回路と前記保護論理回路の一方または双方が、前記プロセッサとは別体の論理ゲートを含む、
    請求項19に記載の集積回路装置。
  21. 前記不揮発メモリ制御論理回路が、
    前記保護設定領域を消去するための前記不揮発メモリ制御論理回路によって提供される唯一の機構が、前記保護領域と前記保護設定領域の双方を消去する命令である
    請求項19または20に記載の集積回路装置。
  22. 前記保護設定領域と前記保護可能領域とは異なる複数のページあるいは消去可能メモリブロックを含み、
    前記保護設定領域の一部を形成するブロックあるいは何れかのページを消去する前に、
    前記不揮発メモリ制御論理回路が、全てのページあるいは前記保護可能領域を形成するブロックを消去する
    請求項19〜21の何れか一項に記載の集積回路装置。
  23. 前記メモリ保護論理回路は、
    前記保護設定領域が消去された状態であるとき、
    前記保護可能領域に対するアクセスが、指定された一群の制限レベルが最高であるときに実行される
    請求項19〜22の何れか一項に記載の集積回路装置。
  24. 前記不揮発メモリ制御論理回路は、前記保護設定領域の部分に対して、書込命令を受信し、
    これに応答して、書込を許可する前に、当該領域が消去された状態であることを検査する
    請求項19〜23の何れか一項に記載の集積回路装置。
  25. 前記不揮発メモリは自然消去状態を有する型のものであり、
    前記不揮発メモリ制御論理回路は、
    当該部分を読み込み、自然消去状態であるかどうかを判定することによって、前記領域が消去された状態であることを検査する
    請求項24に記載の集積回路装置。
  26. 前記不揮発メモリは、消去状態フラグを含む領域を含み、
    前記装置は、各領域が消去されたとき、個別消去状態フラグを再設定し、
    前記不揮発メモリ制御論理回路は、第1の書込処理が各領域に対して実行されたとき、前記個別消去状態フラグを設定し、前記保護設定領域の一部に対する書き込み処理を許可する前に、一つ以上の消去状態フラグを検査する
    請求項19〜25の何れか一項に記載の集積回路装置。
  27. 前記メモリ保護設定領域で、
    不揮発メモリの前記保護可能領域を定義する値と、揮発メモリの保護された領域を定義する値の、双方あるいは何れか一方の値が格納されている
    請求項19〜26の何れか一項に記載の集積回路装置。
  28. 前記保護設定データが、前記不揮発メモリの前記保護可能領域に対する読込保護フラグを含み、
    前記メモリ保護論理回路は、
    前記メモリの保護領域に対する読出保護フラグの状態を判定し、
    前記プロセッサによってメモリ読出要求を検出し、
    前記メモリ読出要求が、前記メモリの前記保護領域のアドレスに対するものであるかどうかを判定し、
    前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したかどうかを判定し、
    一つ以上のアクセス条件を一つも満たさないとき前記保護領域に対する前記読出保護フラグが設定されていれば、前記保護領域のアドレスに対する、読出要求を拒否し、
    前記複数のアクセス条件の少なくとも一つは、前記メモリの前記保護領域に格納されているコードをプロセッサが実行している間に、前記プロセッサが前記メモリ読出要求を発行したことである
    請求項19〜27の何れか一項に記載の集積回路装置。
  29. プロセッサと、不揮発メモリと、を含む集積回路装置上でメモリ・アクセスを制御する方法であって、
    前記方法は、
    前記不揮発メモリの保護設定領域に格納された保護設定データに依存して、前記不揮発メモリの保護可能領域に対するアクセスを制御し、
    前記保護設定領域の何れかが消去状態でない場合は書込を防ぎ、
    前記保護可能領域が消去状態である場合に限って、前記保護設定領域を消去することを許可する
    ことを特徴とするメモリ・アクセスを制御する方法。
JP2015519342A 2012-06-27 2013-06-26 メモリ保護装置及び保護方法 Active JP6306578B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1211422.9 2012-06-27
GB1211422.9A GB2503470B (en) 2012-06-27 2012-06-27 Memory protection
PCT/GB2013/051694 WO2014001803A2 (en) 2012-06-27 2013-06-26 Memory protection

Publications (3)

Publication Number Publication Date
JP2015525916A true JP2015525916A (ja) 2015-09-07
JP2015525916A5 JP2015525916A5 (ja) 2017-12-07
JP6306578B2 JP6306578B2 (ja) 2018-04-04

Family

ID=46704312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015519342A Active JP6306578B2 (ja) 2012-06-27 2013-06-26 メモリ保護装置及び保護方法

Country Status (8)

Country Link
US (2) US9430409B2 (ja)
EP (2) EP2867776B1 (ja)
JP (1) JP6306578B2 (ja)
KR (1) KR102095614B1 (ja)
CN (1) CN104412242B (ja)
GB (3) GB2503470B (ja)
TW (1) TWI581099B (ja)
WO (1) WO2014001803A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020095410A1 (ja) * 2018-11-08 2020-05-14 ソニー株式会社 通信装置

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140316873A1 (en) * 2013-04-22 2014-10-23 Codecard, Inc. Apparatus, system and methods to issue a prize to a user of a credit account based on user purchase activities
EP2808818B1 (en) * 2013-05-29 2016-07-13 Nxp B.V. Processing system
GB2521607B (en) * 2013-12-23 2016-03-23 Nordic Semiconductor Asa Integrated-Circuit Radio
US20150351999A1 (en) * 2014-01-15 2015-12-10 Getting in the Mood, LLC Heating and vibrating personal massager with accompanying cover
US20160180092A1 (en) * 2014-12-23 2016-06-23 Mcafee, Inc. Portable secure storage
CN104598402B (zh) * 2014-12-30 2017-11-10 北京兆易创新科技股份有限公司 一种闪存控制器和闪存控制器的控制方法
CN104573421B (zh) 2014-12-30 2017-12-22 北京兆易创新科技股份有限公司 一种基于若干分区的mcu芯片信息保护方法和装置
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support
US10157008B2 (en) * 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
JP2018514868A (ja) 2015-04-30 2018-06-07 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated 改良された命令セットを有する中央処理ユニット
GB2539455A (en) 2015-06-16 2016-12-21 Nordic Semiconductor Asa Memory watch unit
WO2017061153A1 (ja) * 2015-10-09 2017-04-13 ソニー株式会社 メモリ、メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
US20170139844A1 (en) * 2015-11-17 2017-05-18 Silicon Laboratories Inc. Asymmetric memory
JP6742831B2 (ja) * 2016-06-14 2020-08-19 ルネサスエレクトロニクス株式会社 情報処理装置、読み出し制御方法、及びプログラム
US11416421B2 (en) 2016-07-19 2022-08-16 Cypress Semiconductor Corporation Context-based protection system
GB2557305A (en) * 2016-12-05 2018-06-20 Nordic Semiconductor Asa Memory protection logic
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US10409981B2 (en) 2017-04-21 2019-09-10 International Business Machines Corporation In-process stack memory protection
US10353815B2 (en) 2017-05-26 2019-07-16 Microsoft Technology Licensing, Llc Data security for multiple banks of memory
US10587575B2 (en) * 2017-05-26 2020-03-10 Microsoft Technology Licensing, Llc Subsystem firewalls
US10346345B2 (en) 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
RU2677366C1 (ru) * 2017-10-27 2019-01-16 Юрий Алексеевич Шашлюк Устройство хранения данных и способ его работы
US10318438B1 (en) * 2017-12-07 2019-06-11 Nuvoton Technology Corporation Secure memory access using memory read restriction
US11132134B2 (en) * 2017-12-21 2021-09-28 Apple Inc. Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
TWI650648B (zh) * 2018-02-09 2019-02-11 慧榮科技股份有限公司 系統晶片及存取系統晶片中記憶體的方法
US11036654B2 (en) 2018-04-14 2021-06-15 Microsoft Technology Licensing, Llc NOP sled defense
GB201807257D0 (en) 2018-05-02 2018-06-13 Nordic Semiconductor Asa Cryptographic key distribution
GB201810533D0 (en) * 2018-06-27 2018-08-15 Nordic Semiconductor Asa Hardware protection of files in an intergrated-circuit device
FR3087020A1 (fr) * 2018-10-09 2020-04-10 Stmicroelectronics (Grenoble 2) Sas Procede d'acces a une memoire
US11210238B2 (en) * 2018-10-30 2021-12-28 Cypress Semiconductor Corporation Securing data logs in memory devices
US11036887B2 (en) * 2018-12-11 2021-06-15 Micron Technology, Inc. Memory data security
TWI682400B (zh) * 2019-03-04 2020-01-11 新唐科技股份有限公司 半導體裝置與資料保護方法
JP2021111112A (ja) * 2020-01-09 2021-08-02 キヤノン株式会社 画像形成装置、及びその制御方法
CN111625784B (zh) * 2020-05-29 2023-09-12 重庆小雨点小额贷款有限公司 一种应用的反调试方法、相关装置及存储介质
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant
JP7408593B2 (ja) * 2021-03-23 2024-01-05 株式会社東芝 制御装置、情報処理装置、および情報処理システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
JP2004240536A (ja) * 2003-02-04 2004-08-26 Matsushita Electric Ind Co Ltd 情報処理装置
WO2006040798A1 (ja) * 2004-10-08 2006-04-20 Renesas Technology Corp. 半導体集積回路装置および電子システム
US20090210644A1 (en) * 2008-02-14 2009-08-20 Sandrine Batifoulier Access Rights on a Memory Map
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
JPS6382534A (ja) 1986-09-26 1988-04-13 Matsushita Electric Ind Co Ltd メモリ保護装置
US5001670A (en) 1987-02-06 1991-03-19 Tektronix, Inc. Nonvolatile memory protection
US5469557A (en) * 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
US5564030A (en) * 1994-02-08 1996-10-08 Meridian Semiconductor, Inc. Circuit and method for detecting segment limit errors for code fetches
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
JP3489708B2 (ja) * 1996-10-23 2004-01-26 シャープ株式会社 不揮発性半導体記憶装置
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6446184B2 (en) * 1998-04-28 2002-09-03 International Business Machines Corporation Address re-mapping for memory module using presence detect data
JP2001051904A (ja) * 1999-08-11 2001-02-23 Hitachi Ltd 不揮発性半導体メモリを用いた外部記憶装置
US6895508B1 (en) 2000-09-07 2005-05-17 International Business Machines Corporation Stack memory protection
US6952778B1 (en) 2000-10-26 2005-10-04 Cypress Semiconductor Corporation Protecting access to microcontroller memory blocks
US6615329B2 (en) * 2001-07-11 2003-09-02 Intel Corporation Memory access control system, apparatus, and method
US7093097B2 (en) * 2001-11-27 2006-08-15 International Business Machines Corporation Dynamic self-tuning memory management method and system
US6883075B2 (en) 2002-01-17 2005-04-19 Silicon Storage Technology, Inc. Microcontroller having embedded non-volatile memory with read protection
US7739516B2 (en) * 2004-03-05 2010-06-15 Microsoft Corporation Import address table verification
JP4563707B2 (ja) * 2004-03-25 2010-10-13 ルネサスエレクトロニクス株式会社 メモリ保護装置
US7210014B2 (en) 2004-05-27 2007-04-24 Microsoft Corporation Alternative methods in memory protection
US7343496B1 (en) 2004-08-13 2008-03-11 Zilog, Inc. Secure transaction microcontroller with secure boot loader
US7516902B2 (en) 2004-11-19 2009-04-14 Proton World International N.V. Protection of a microcontroller
US7673345B2 (en) 2005-03-31 2010-03-02 Intel Corporation Providing extended memory protection
JP4584044B2 (ja) * 2005-06-20 2010-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP4818793B2 (ja) 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
US8438365B2 (en) * 2006-10-06 2013-05-07 Calos Fund Limited Liability Company Efficient data loading in a data-parallel processor
EP1978447B1 (en) * 2007-04-05 2011-02-16 STMicroelectronics (Research & Development) Limited Integrated circuit with restricted data access
US8051263B2 (en) 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
US7917716B2 (en) 2007-08-31 2011-03-29 Standard Microsystems Corporation Memory protection for embedded controllers
US7836226B2 (en) * 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8001357B2 (en) * 2008-04-30 2011-08-16 Microsoft Corporation Providing a single drive letter user experience and regional based access control with respect to a storage device
US20100106926A1 (en) * 2008-10-25 2010-04-29 International Business Machines Corporation Second failure data capture problem determination using user selective memory protection to trace application failures
JP5793712B2 (ja) * 2010-03-01 2015-10-14 パナソニックIpマネジメント株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
JP2004240536A (ja) * 2003-02-04 2004-08-26 Matsushita Electric Ind Co Ltd 情報処理装置
WO2006040798A1 (ja) * 2004-10-08 2006-04-20 Renesas Technology Corp. 半導体集積回路装置および電子システム
US20090210644A1 (en) * 2008-02-14 2009-08-20 Sandrine Batifoulier Access Rights on a Memory Map
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020095410A1 (ja) * 2018-11-08 2020-05-14 ソニー株式会社 通信装置
JPWO2020095410A1 (ja) * 2018-11-08 2021-09-24 ソニーグループ株式会社 通信装置
US11422949B2 (en) 2018-11-08 2022-08-23 Sony Group Corporation Communication device

Also Published As

Publication number Publication date
CN104412242B (zh) 2018-01-19
TW201409236A (zh) 2014-03-01
GB2503470A (en) 2014-01-01
GB2503583B (en) 2015-06-17
GB2503470B (en) 2014-08-13
GB2513727B (en) 2015-06-24
GB201312526D0 (en) 2013-08-28
GB2513727A (en) 2014-11-05
US20160299720A1 (en) 2016-10-13
KR102095614B1 (ko) 2020-04-01
EP3702923A1 (en) 2020-09-02
GB2503470A9 (en) 2014-01-15
WO2014001803A3 (en) 2014-03-20
GB201405811D0 (en) 2014-05-14
KR20150033695A (ko) 2015-04-01
US20140006692A1 (en) 2014-01-02
EP2867776A2 (en) 2015-05-06
WO2014001803A2 (en) 2014-01-03
TWI581099B (zh) 2017-05-01
GB2503583A (en) 2014-01-01
GB201211422D0 (en) 2012-08-08
EP3702923B1 (en) 2023-06-21
US9430409B2 (en) 2016-08-30
EP2867776B1 (en) 2020-04-29
CN104412242A (zh) 2015-03-11
JP6306578B2 (ja) 2018-04-04

Similar Documents

Publication Publication Date Title
JP6306578B2 (ja) メモリ保護装置及び保護方法
US9904631B2 (en) Microcomputer and method for controlling memory access
JP4939387B2 (ja) データ処理装置及びアドレス空間保護方法
US20080046762A1 (en) Protecting system control registers in a data processing apparatus
TWI688861B (zh) 資料處理裝置及其資料保護方法
JP2001256460A (ja) 1チップマイクロコンピュータ及びそれを用いたicカード
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
TW201821998A (zh) 記憶體保護邏輯
US9891908B2 (en) Updatable integrated-circuit radio
JP2009009232A (ja) コンピュータとカーネル保護方法並びにコンピュータソフトウエア
JP2011222055A (ja) マイクロコンピュータ及びメモリアクセスの制御方法
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法
CN110569205A (zh) 安全系统单芯片及其操作方法
JP2012119012A (ja) プロセッサ、バスインターフェース装置、およびコンピュータシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170725

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20171025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180308

R150 Certificate of patent or registration of utility model

Ref document number: 6306578

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250